1(function(scope){ 2'use strict'; 3 4function F(arity, fun, wrapper) { 5 wrapper.a = arity; 6 wrapper.f = fun; 7 return wrapper; 8} 9 10function F2(fun) { 11 return F(2, fun, function(a) { return function(b) { return fun(a,b); }; }) 12} 13function F3(fun) { 14 return F(3, fun, function(a) { 15 return function(b) { return function(c) { return fun(a, b, c); }; }; 16 }); 17} 18function F4(fun) { 19 return F(4, fun, function(a) { return function(b) { return function(c) { 20 return function(d) { return fun(a, b, c, d); }; }; }; 21 }); 22} 23function F5(fun) { 24 return F(5, fun, function(a) { return function(b) { return function(c) { 25 return function(d) { return function(e) { return fun(a, b, c, d, e); }; }; }; }; 26 }); 27} 28function F6(fun) { 29 return F(6, fun, function(a) { return function(b) { return function(c) { 30 return function(d) { return function(e) { return function(f) { 31 return fun(a, b, c, d, e, f); }; }; }; }; }; 32 }); 33} 34function F7(fun) { 35 return F(7, fun, function(a) { return function(b) { return function(c) { 36 return function(d) { return function(e) { return function(f) { 37 return function(g) { return fun(a, b, c, d, e, f, g); }; }; }; }; }; }; 38 }); 39} 40function F8(fun) { 41 return F(8, fun, function(a) { return function(b) { return function(c) { 42 return function(d) { return function(e) { return function(f) { 43 return function(g) { return function(h) { 44 return fun(a, b, c, d, e, f, g, h); }; }; }; }; }; }; }; 45 }); 46} 47function F9(fun) { 48 return F(9, fun, function(a) { return function(b) { return function(c) { 49 return function(d) { return function(e) { return function(f) { 50 return function(g) { return function(h) { return function(i) { 51 return fun(a, b, c, d, e, f, g, h, i); }; }; }; }; }; }; }; }; 52 }); 53} 54 55function A2(fun, a, b) { 56 return fun.a === 2 ? fun.f(a, b) : fun(a)(b); 57} 58function A3(fun, a, b, c) { 59 return fun.a === 3 ? fun.f(a, b, c) : fun(a)(b)(c); 60} 61function A4(fun, a, b, c, d) { 62 return fun.a === 4 ? fun.f(a, b, c, d) : fun(a)(b)(c)(d); 63} 64function A5(fun, a, b, c, d, e) { 65 return fun.a === 5 ? fun.f(a, b, c, d, e) : fun(a)(b)(c)(d)(e); 66} 67function A6(fun, a, b, c, d, e, f) { 68 return fun.a === 6 ? fun.f(a, b, c, d, e, f) : fun(a)(b)(c)(d)(e)(f); 69} 70function A7(fun, a, b, c, d, e, f, g) { 71 return fun.a === 7 ? fun.f(a, b, c, d, e, f, g) : fun(a)(b)(c)(d)(e)(f)(g); 72} 73function A8(fun, a, b, c, d, e, f, g, h) { 74 return fun.a === 8 ? fun.f(a, b, c, d, e, f, g, h) : fun(a)(b)(c)(d)(e)(f)(g)(h); 75} 76function A9(fun, a, b, c, d, e, f, g, h, i) { 77 return fun.a === 9 ? fun.f(a, b, c, d, e, f, g, h, i) : fun(a)(b)(c)(d)(e)(f)(g)(h)(i); 78} 79 80console.warn('Compiled in DEV mode. Follow the advice at https://elm-lang.org/0.19.0/optimize for better performance and smaller assets.'); 81 82 83var _JsArray_empty = []; 84 85function _JsArray_singleton(value) 86{ 87 return [value]; 88} 89 90function _JsArray_length(array) 91{ 92 return array.length; 93} 94 95var _JsArray_initialize = F3(function(size, offset, func) 96{ 97 var result = new Array(size); 98 99 for (var i = 0; i < size; i++) 100 { 101 result[i] = func(offset + i); 102 } 103 104 return result; 105}); 106 107var _JsArray_initializeFromList = F2(function (max, ls) 108{ 109 var result = new Array(max); 110 111 for (var i = 0; i < max && ls.b; i++) 112 { 113 result[i] = ls.a; 114 ls = ls.b; 115 } 116 117 result.length = i; 118 return _Utils_Tuple2(result, ls); 119}); 120 121var _JsArray_unsafeGet = F2(function(index, array) 122{ 123 return array[index]; 124}); 125 126var _JsArray_unsafeSet = F3(function(index, value, array) 127{ 128 var length = array.length; 129 var result = new Array(length); 130 131 for (var i = 0; i < length; i++) 132 { 133 result[i] = array[i]; 134 } 135 136 result[index] = value; 137 return result; 138}); 139 140var _JsArray_push = F2(function(value, array) 141{ 142 var length = array.length; 143 var result = new Array(length + 1); 144 145 for (var i = 0; i < length; i++) 146 { 147 result[i] = array[i]; 148 } 149 150 result[length] = value; 151 return result; 152}); 153 154var _JsArray_foldl = F3(function(func, acc, array) 155{ 156 var length = array.length; 157 158 for (var i = 0; i < length; i++) 159 { 160 acc = A2(func, array[i], acc); 161 } 162 163 return acc; 164}); 165 166var _JsArray_foldr = F3(function(func, acc, array) 167{ 168 for (var i = array.length - 1; i >= 0; i--) 169 { 170 acc = A2(func, array[i], acc); 171 } 172 173 return acc; 174}); 175 176var _JsArray_map = F2(function(func, array) 177{ 178 var length = array.length; 179 var result = new Array(length); 180 181 for (var i = 0; i < length; i++) 182 { 183 result[i] = func(array[i]); 184 } 185 186 return result; 187}); 188 189var _JsArray_indexedMap = F3(function(func, offset, array) 190{ 191 var length = array.length; 192 var result = new Array(length); 193 194 for (var i = 0; i < length; i++) 195 { 196 result[i] = A2(func, offset + i, array[i]); 197 } 198 199 return result; 200}); 201 202var _JsArray_slice = F3(function(from, to, array) 203{ 204 return array.slice(from, to); 205}); 206 207var _JsArray_appendN = F3(function(n, dest, source) 208{ 209 var destLen = dest.length; 210 var itemsToCopy = n - destLen; 211 212 if (itemsToCopy > source.length) 213 { 214 itemsToCopy = source.length; 215 } 216 217 var size = destLen + itemsToCopy; 218 var result = new Array(size); 219 220 for (var i = 0; i < destLen; i++) 221 { 222 result[i] = dest[i]; 223 } 224 225 for (var i = 0; i < itemsToCopy; i++) 226 { 227 result[i + destLen] = source[i]; 228 } 229 230 return result; 231}); 232 233 234 235// LOG 236 237var _Debug_log_UNUSED = F2(function(tag, value) 238{ 239 return value; 240}); 241 242var _Debug_log = F2(function(tag, value) 243{ 244 console.log(tag + ': ' + _Debug_toString(value)); 245 return value; 246}); 247 248 249// TODOS 250 251function _Debug_todo(moduleName, region) 252{ 253 return function(message) { 254 _Debug_crash(8, moduleName, region, message); 255 }; 256} 257 258function _Debug_todoCase(moduleName, region, value) 259{ 260 return function(message) { 261 _Debug_crash(9, moduleName, region, value, message); 262 }; 263} 264 265 266// TO STRING 267 268function _Debug_toString_UNUSED(value) 269{ 270 return '<internals>'; 271} 272 273function _Debug_toString(value) 274{ 275 return _Debug_toAnsiString(false, value); 276} 277 278function _Debug_toAnsiString(ansi, value) 279{ 280 if (typeof value === 'function') 281 { 282 return _Debug_internalColor(ansi, '<function>'); 283 } 284 285 if (typeof value === 'boolean') 286 { 287 return _Debug_ctorColor(ansi, value ? 'True' : 'False'); 288 } 289 290 if (typeof value === 'number') 291 { 292 return _Debug_numberColor(ansi, value + ''); 293 } 294 295 if (value instanceof String) 296 { 297 return _Debug_charColor(ansi, "'" + _Debug_addSlashes(value, true) + "'"); 298 } 299 300 if (typeof value === 'string') 301 { 302 return _Debug_stringColor(ansi, '"' + _Debug_addSlashes(value, false) + '"'); 303 } 304 305 if (typeof value === 'object' && '$' in value) 306 { 307 var tag = value.$; 308 309 if (typeof tag === 'number') 310 { 311 return _Debug_internalColor(ansi, '<internals>'); 312 } 313 314 if (tag[0] === '#') 315 { 316 var output = []; 317 for (var k in value) 318 { 319 if (k === '$') continue; 320 output.push(_Debug_toAnsiString(ansi, value[k])); 321 } 322 return '(' + output.join(',') + ')'; 323 } 324 325 if (tag === 'Set_elm_builtin') 326 { 327 return _Debug_ctorColor(ansi, 'Set') 328 + _Debug_fadeColor(ansi, '.fromList') + ' ' 329 + _Debug_toAnsiString(ansi, elm$core$Set$toList(value)); 330 } 331 332 if (tag === 'RBNode_elm_builtin' || tag === 'RBEmpty_elm_builtin') 333 { 334 return _Debug_ctorColor(ansi, 'Dict') 335 + _Debug_fadeColor(ansi, '.fromList') + ' ' 336 + _Debug_toAnsiString(ansi, elm$core$Dict$toList(value)); 337 } 338 339 if (tag === 'Array_elm_builtin') 340 { 341 return _Debug_ctorColor(ansi, 'Array') 342 + _Debug_fadeColor(ansi, '.fromList') + ' ' 343 + _Debug_toAnsiString(ansi, elm$core$Array$toList(value)); 344 } 345 346 if (tag === '::' || tag === '[]') 347 { 348 var output = '['; 349 350 value.b && (output += _Debug_toAnsiString(ansi, value.a), value = value.b) 351 352 for (; value.b; value = value.b) // WHILE_CONS 353 { 354 output += ',' + _Debug_toAnsiString(ansi, value.a); 355 } 356 return output + ']'; 357 } 358 359 var output = ''; 360 for (var i in value) 361 { 362 if (i === '$') continue; 363 var str = _Debug_toAnsiString(ansi, value[i]); 364 var c0 = str[0]; 365 var parenless = c0 === '{' || c0 === '(' || c0 === '[' || c0 === '<' || c0 === '"' || str.indexOf(' ') < 0; 366 output += ' ' + (parenless ? str : '(' + str + ')'); 367 } 368 return _Debug_ctorColor(ansi, tag) + output; 369 } 370 371 if (typeof DataView === 'function' && value instanceof DataView) 372 { 373 return _Debug_stringColor(ansi, '<' + value.byteLength + ' bytes>'); 374 } 375 376 if (typeof File !== 'undefined' && value instanceof File) 377 { 378 return _Debug_internalColor(ansi, '<' + value.name + '>'); 379 } 380 381 if (typeof value === 'object') 382 { 383 var output = []; 384 for (var key in value) 385 { 386 var field = key[0] === '_' ? key.slice(1) : key; 387 output.push(_Debug_fadeColor(ansi, field) + ' = ' + _Debug_toAnsiString(ansi, value[key])); 388 } 389 if (output.length === 0) 390 { 391 return '{}'; 392 } 393 return '{ ' + output.join(', ') + ' }'; 394 } 395 396 return _Debug_internalColor(ansi, '<internals>'); 397} 398 399function _Debug_addSlashes(str, isChar) 400{ 401 var s = str 402 .replace(/\\/g, '\\\\') 403 .replace(/\n/g, '\\n') 404 .replace(/\t/g, '\\t') 405 .replace(/\r/g, '\\r') 406 .replace(/\v/g, '\\v') 407 .replace(/\0/g, '\\0'); 408 409 if (isChar) 410 { 411 return s.replace(/\'/g, '\\\''); 412 } 413 else 414 { 415 return s.replace(/\"/g, '\\"'); 416 } 417} 418 419function _Debug_ctorColor(ansi, string) 420{ 421 return ansi ? '\x1b[96m' + string + '\x1b[0m' : string; 422} 423 424function _Debug_numberColor(ansi, string) 425{ 426 return ansi ? '\x1b[95m' + string + '\x1b[0m' : string; 427} 428 429function _Debug_stringColor(ansi, string) 430{ 431 return ansi ? '\x1b[93m' + string + '\x1b[0m' : string; 432} 433 434function _Debug_charColor(ansi, string) 435{ 436 return ansi ? '\x1b[92m' + string + '\x1b[0m' : string; 437} 438 439function _Debug_fadeColor(ansi, string) 440{ 441 return ansi ? '\x1b[37m' + string + '\x1b[0m' : string; 442} 443 444function _Debug_internalColor(ansi, string) 445{ 446 return ansi ? '\x1b[36m' + string + '\x1b[0m' : string; 447} 448 449function _Debug_toHexDigit(n) 450{ 451 return String.fromCharCode(n < 10 ? 48 + n : 55 + n); 452} 453 454 455// CRASH 456 457 458function _Debug_crash_UNUSED(identifier) 459{ 460 throw new Error('https://github.com/elm/core/blob/1.0.0/hints/' + identifier + '.md'); 461} 462 463 464function _Debug_crash(identifier, fact1, fact2, fact3, fact4) 465{ 466 switch(identifier) 467 { 468 case 0: 469 throw new Error('What node should I take over? In JavaScript I need something like:\n\n Elm.Main.init({\n node: document.getElementById("elm-node")\n })\n\nYou need to do this with any Browser.sandbox or Browser.element program.'); 470 471 case 1: 472 throw new Error('Browser.application programs cannot handle URLs like this:\n\n ' + document.location.href + '\n\nWhat is the root? The root of your file system? Try looking at this program with `elm reactor` or some other server.'); 473 474 case 2: 475 var jsonErrorString = fact1; 476 throw new Error('Problem with the flags given to your Elm program on initialization.\n\n' + jsonErrorString); 477 478 case 3: 479 var portName = fact1; 480 throw new Error('There can only be one port named `' + portName + '`, but your program has multiple.'); 481 482 case 4: 483 var portName = fact1; 484 var problem = fact2; 485 throw new Error('Trying to send an unexpected type of value through port `' + portName + '`:\n' + problem); 486 487 case 5: 488 throw new Error('Trying to use `(==)` on functions.\nThere is no way to know if functions are "the same" in the Elm sense.\nRead more about this at https://package.elm-lang.org/packages/elm/core/latest/Basics#== which describes why it is this way and what the better version will look like.'); 489 490 case 6: 491 var moduleName = fact1; 492 throw new Error('Your page is loading multiple Elm scripts with a module named ' + moduleName + '. Maybe a duplicate script is getting loaded accidentally? If not, rename one of them so I know which is which!'); 493 494 case 8: 495 var moduleName = fact1; 496 var region = fact2; 497 var message = fact3; 498 throw new Error('TODO in module `' + moduleName + '` ' + _Debug_regionToString(region) + '\n\n' + message); 499 500 case 9: 501 var moduleName = fact1; 502 var region = fact2; 503 var value = fact3; 504 var message = fact4; 505 throw new Error( 506 'TODO in module `' + moduleName + '` from the `case` expression ' 507 + _Debug_regionToString(region) + '\n\nIt received the following value:\n\n ' 508 + _Debug_toString(value).replace('\n', '\n ') 509 + '\n\nBut the branch that handles it says:\n\n ' + message.replace('\n', '\n ') 510 ); 511 512 case 10: 513 throw new Error('Bug in https://github.com/elm/virtual-dom/issues'); 514 515 case 11: 516 throw new Error('Cannot perform mod 0. Division by zero error.'); 517 } 518} 519 520function _Debug_regionToString(region) 521{ 522 if (region.start.line === region.end.line) 523 { 524 return 'on line ' + region.start.line; 525 } 526 return 'on lines ' + region.start.line + ' through ' + region.end.line; 527} 528 529 530 531// EQUALITY 532 533function _Utils_eq(x, y) 534{ 535 for ( 536 var pair, stack = [], isEqual = _Utils_eqHelp(x, y, 0, stack); 537 isEqual && (pair = stack.pop()); 538 isEqual = _Utils_eqHelp(pair.a, pair.b, 0, stack) 539 ) 540 {} 541 542 return isEqual; 543} 544 545function _Utils_eqHelp(x, y, depth, stack) 546{ 547 if (x === y) 548 { 549 return true; 550 } 551 552 if (typeof x !== 'object' || x === null || y === null) 553 {
554 typeof x === 'function' && _Debug_crash(5); 555 return false; 556 } 557 558 if (depth > 100) 559 { 560 stack.push(_Utils_Tuple2(x,y)); 561 return true; 562 } 563 564 /**/ 565 if (x.$ === 'Set_elm_builtin') 566 { 567 x = elm$core$Set$toList(x); 568 y = elm$core$Set$toList(y); 569 } 570 if (x.$ === 'RBNode_elm_builtin' || x.$ === 'RBEmpty_elm_builtin') 571 { 572 x = elm$core$Dict$toList(x); 573 y = elm$core$Dict$toList(y); 574 } 575 //*/ 576 577 /**_UNUSED/ 578 if (x.$ < 0) 579 { 580 x = elm$core$Dict$toList(x); 581 y = elm$core$Dict$toList(y); 582 } 583 //*/ 584 585 for (var key in x) 586 { 587 if (!_Utils_eqHelp(x[key], y[key], depth + 1, stack)) 588 { 589 return false; 590 } 591 } 592 return true; 593} 594 595var _Utils_equal = F2(_Utils_eq); 596var _Utils_notEqual = F2(function(a, b) { return !_Utils_eq(a,b); }); 597 598 599 600// COMPARISONS 601 602// Code in Generate/JavaScript.hs, Basics.js, and List.js depends on 603// the particular integer values assigned to LT, EQ, and GT. 604 605function _Utils_cmp(x, y, ord) 606{ 607 if (typeof x !== 'object') 608 { 609 return x === y ? /*EQ*/ 0 : x < y ? /*LT*/ -1 : /*GT*/ 1; 610 } 611 612 /**/ 613 if (x instanceof String) 614 { 615 var a = x.valueOf(); 616 var b = y.valueOf(); 617 return a === b ? 0 : a < b ? -1 : 1; 618 } 619 //*/ 620 621 /**_UNUSED/ 622 if (typeof x.$ === 'undefined') 623 //*/ 624 /**/ 625 if (x.$[0] === '#') 626 //*/ 627 { 628 return (ord = _Utils_cmp(x.a, y.a)) 629 ? ord 630 : (ord = _Utils_cmp(x.b, y.b)) 631 ? ord 632 : _Utils_cmp(x.c, y.c); 633 } 634 635 // traverse conses until end of a list or a mismatch 636 for (; x.b && y.b && !(ord = _Utils_cmp(x.a, y.a)); x = x.b, y = y.b) {} // WHILE_CONSES 637 return ord || (x.b ? /*GT*/ 1 : y.b ? /*LT*/ -1 : /*EQ*/ 0); 638} 639 640var _Utils_lt = F2(function(a, b) { return _Utils_cmp(a, b) < 0; }); 641var _Utils_le = F2(function(a, b) { return _Utils_cmp(a, b) < 1; }); 642var _Utils_gt = F2(function(a, b) { return _Utils_cmp(a, b) > 0; }); 643var _Utils_ge = F2(function(a, b) { return _Utils_cmp(a, b) >= 0; }); 644 645var _Utils_compare = F2(function(x, y) 646{ 647 var n = _Utils_cmp(x, y); 648 return n < 0 ? elm$core$Basics$LT : n ? elm$core$Basics$GT : elm$core$Basics$EQ; 649}); 650 651 652// COMMON VALUES 653 654var _Utils_Tuple0_UNUSED = 0; 655var _Utils_Tuple0 = { $: '#0' }; 656 657function _Utils_Tuple2_UNUSED(a, b) { return { a: a, b: b }; } 658function _Utils_Tuple2(a, b) { return { $: '#2', a: a, b: b }; } 659 660function _Utils_Tuple3_UNUSED(a, b, c) { return { a: a, b: b, c: c }; } 661function _Utils_Tuple3(a, b, c) { return { $: '#3', a: a, b: b, c: c }; } 662 663function _Utils_chr_UNUSED(c) { return c; } 664function _Utils_chr(c) { return new String(c); } 665 666 667// RECORDS 668 669function _Utils_update(oldRecord, updatedFields) 670{ 671 var newRecord = {}; 672 673 for (var key in oldRecord) 674 { 675 newRecord[key] = oldRecord[key]; 676 } 677 678 for (var key in updatedFields) 679 { 680 newRecord[key] = updatedFields[key]; 681 } 682 683 return newRecord; 684} 685 686 687// APPEND 688 689var _Utils_append = F2(_Utils_ap); 690 691function _Utils_ap(xs, ys) 692{ 693 // append Strings 694 if (typeof xs === 'string') 695 { 696 return xs + ys; 697 } 698 699 // append Lists 700 if (!xs.b) 701 { 702 return ys; 703 } 704 var root = _List_Cons(xs.a, ys); 705 xs = xs.b 706 for (var curr = root; xs.b; xs = xs.b) // WHILE_CONS 707 { 708 curr = curr.b = _List_Cons(xs.a, ys); 709 } 710 return root; 711} 712 713 714 715var _List_Nil_UNUSED = { $: 0 }; 716var _List_Nil = { $: '[]' }; 717 718function _List_Cons_UNUSED(hd, tl) { return { $: 1, a: hd, b: tl }; } 719function _List_Cons(hd, tl) { return { $: '::', a: hd, b: tl }; } 720 721 722var _List_cons = F2(_List_Cons); 723 724function _List_fromArray(arr) 725{ 726 var out = _List_Nil; 727 for (var i = arr.length; i--; ) 728 { 729 out = _List_Cons(arr[i], out); 730 } 731 return out; 732} 733 734function _List_toArray(xs) 735{ 736 for (var out = []; xs.b; xs = xs.b) // WHILE_CONS 737 { 738 out.push(xs.a); 739 } 740 return out; 741} 742 743var _List_map2 = F3(function(f, xs, ys) 744{ 745 for (var arr = []; xs.b && ys.b; xs = xs.b, ys = ys.b) // WHILE_CONSES 746 { 747 arr.push(A2(f, xs.a, ys.a)); 748 } 749 return _List_fromArray(arr); 750}); 751 752var _List_map3 = F4(function(f, xs, ys, zs) 753{ 754 for (var arr = []; xs.b && ys.b && zs.b; xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES 755 { 756 arr.push(A3(f, xs.a, ys.a, zs.a)); 757 } 758 return _List_fromArray(arr); 759}); 760 761var _List_map4 = F5(function(f, ws, xs, ys, zs) 762{ 763 for (var arr = []; ws.b && xs.b && ys.b && zs.b; ws = ws.b, xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES 764 { 765 arr.push(A4(f, ws.a, xs.a, ys.a, zs.a)); 766 } 767 return _List_fromArray(arr); 768}); 769 770var _List_map5 = F6(function(f, vs, ws, xs, ys, zs) 771{ 772 for (var arr = []; vs.b && ws.b && xs.b && ys.b && zs.b; vs = vs.b, ws = ws.b, xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES 773 { 774 arr.push(A5(f, vs.a, ws.a, xs.a, ys.a, zs.a)); 775 } 776 return _List_fromArray(arr); 777}); 778 779var _List_sortBy = F2(function(f, xs) 780{ 781 return _List_fromArray(_List_toArray(xs).sort(function(a, b) { 782 return _Utils_cmp(f(a), f(b)); 783 })); 784}); 785 786var _List_sortWith = F2(function(f, xs) 787{ 788 return _List_fromArray(_List_toArray(xs).sort(function(a, b) { 789 var ord = A2(f, a, b); 790 return ord === elm$core$Basics$EQ ? 0 : ord === elm$core$Basics$LT ? -1 : 1; 791 })); 792}); 793 794 795 796// MATH 797 798var _Basics_add = F2(function(a, b) { return a + b; }); 799var _Basics_sub = F2(function(a, b) { return a - b; }); 800var _Basics_mul = F2(function(a, b) { return a * b; }); 801var _Basics_fdiv = F2(function(a, b) { return a / b; }); 802var _Basics_idiv = F2(function(a, b) { return (a / b) | 0; }); 803var _Basics_pow = F2(Math.pow); 804 805var _Basics_remainderBy = F2(function(b, a) { return a % b; }); 806
807// https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/divmodnote-letter.pdf 808var _Basics_modBy = F2(function(modulus, x) 809{ 810 var answer = x % modulus; 811 return modulus === 0 812 ? _Debug_crash(11) 813 : 814 ((answer > 0 && modulus < 0) || (answer < 0 && modulus > 0)) 815 ? answer + modulus 816 : answer; 817}); 818 819 820// TRIGONOMETRY 821 822var _Basics_pi = Math.PI; 823var _Basics_e = Math.E; 824var _Basics_cos = Math.cos; 825var _Basics_sin = Math.sin; 826var _Basics_tan = Math.tan; 827var _Basics_acos = Math.acos; 828var _Basics_asin = Math.asin; 829var _Basics_atan = Math.atan; 830var _Basics_atan2 = F2(Math.atan2); 831 832 833// MORE MATH 834 835function _Basics_toFloat(x) { return x; } 836function _Basics_truncate(n) { return n | 0; } 837function _Basics_isInfinite(n) { return n === Infinity || n === -Infinity; } 838 839var _Basics_ceiling = Math.ceil; 840var _Basics_floor = Math.floor; 841var _Basics_round = Math.round; 842var _Basics_sqrt = Math.sqrt; 843var _Basics_log = Math.log; 844var _Basics_isNaN = isNaN; 845 846 847// BOOLEANS 848 849function _Basics_not(bool) { return !bool; } 850var _Basics_and = F2(function(a, b) { return a && b; }); 851var _Basics_or = F2(function(a, b) { return a || b; }); 852var _Basics_xor = F2(function(a, b) { return a !== b; }); 853 854 855 856var _Bitwise_and = F2(function(a, b) 857{ 858 return a & b; 859}); 860 861var _Bitwise_or = F2(function(a, b) 862{ 863 return a | b; 864}); 865 866var _Bitwise_xor = F2(function(a, b) 867{ 868 return a ^ b; 869}); 870 871function _Bitwise_complement(a) 872{ 873 return ~a; 874}; 875 876var _Bitwise_shiftLeftBy = F2(function(offset, a) 877{ 878 return a << offset; 879}); 880 881var _Bitwise_shiftRightBy = F2(function(offset, a) 882{ 883 return a >> offset; 884}); 885 886var _Bitwise_shiftRightZfBy = F2(function(offset, a) 887{ 888 return a >>> offset; 889}); 890 891 892 893// TASKS 894 895function _Scheduler_succeed(value) 896{ 897 return { 898 $: 0, 899 a: value 900 }; 901} 902 903function _Scheduler_fail(error) 904{ 905 return { 906 $: 1, 907 a: error 908 }; 909} 910 911function _Scheduler_binding(callback) 912{ 913 return { 914 $: 2, 915 b: callback, 916 c: null 917 }; 918} 919 920var _Scheduler_andThen = F2(function(callback, task) 921{ 922 return { 923 $: 3, 924 b: callback, 925 d: task 926 }; 927}); 928 929var _Scheduler_onError = F2(function(callback, task) 930{ 931 return { 932 $: 4, 933 b: callback, 934 d: task 935 }; 936}); 937 938function _Scheduler_receive(callback) 939{ 940 return { 941 $: 5, 942 b: callback 943 }; 944} 945 946 947// PROCESSES 948 949var _Scheduler_guid = 0; 950 951function _Scheduler_rawSpawn(task) 952{ 953 var proc = { 954 $: 0, 955 e: _Scheduler_guid++, 956 f: task, 957 g: null, 958 h: [] 959 }; 960 961 _Scheduler_enqueue(proc); 962 963 return proc; 964} 965 966function _Scheduler_spawn(task) 967{ 968 return _Scheduler_binding(function(callback) { 969 callback(_Scheduler_succeed(_Scheduler_rawSpawn(task))); 970 }); 971} 972 973function _Scheduler_rawSend(proc, msg) 974{ 975 proc.h.push(msg); 976 _Scheduler_enqueue(proc); 977} 978 979var _Scheduler_send = F2(function(proc, msg) 980{ 981 return _Scheduler_binding(function(callback) { 982 _Scheduler_rawSend(proc, msg); 983 callback(_Scheduler_succeed(_Utils_Tuple0)); 984 }); 985}); 986 987function _Scheduler_kill(proc) 988{ 989 return _Scheduler_binding(function(callback) { 990 var task = proc.f; 991 if (task.$ === 2 && task.c) 992 { 993 task.c(); 994 } 995 996 proc.f = null; 997 998 callback(_Scheduler_succeed(_Utils_Tuple0)); 999 }); 1000} 1001 1002 1003/* STEP PROCESSES 1004 1005type alias Process = 1006 { $ : tag 1007 , id : unique_id 1008 , root : Task 1009 , stack : null | { $: SUCCEED | FAIL, a: callback, b: stack } 1010 , mailbox : [msg] 1011 } 1012 1013*/ 1014 1015 1016var _Scheduler_working = false; 1017var _Scheduler_queue = []; 1018 1019 1020function _Scheduler_enqueue(proc) 1021{ 1022 _Scheduler_queue.push(proc); 1023 if (_Scheduler_working) 1024 { 1025 return; 1026 } 1027 _Scheduler_working = true; 1028 while (proc = _Scheduler_queue.shift()) 1029 { 1030 _Scheduler_step(proc); 1031 } 1032 _Scheduler_working = false; 1033} 1034 1035 1036function _Scheduler_step(proc) 1037{ 1038 while (proc.f) 1039 { 1040 var rootTag = proc.f.$; 1041 if (rootTag === 0 || rootTag === 1) 1042 { 1043 while (proc.g && proc.g.$ !== rootTag) 1044 { 1045 proc.g = proc.g.i; 1046 } 1047 if (!proc.g) 1048 { 1049 return; 1050 } 1051 proc.f = proc.g.b(proc.f.a); 1052 proc.g = proc.g.i; 1053 } 1054 else if (rootTag === 2) 1055 { 1056 proc.f.c = proc.f.b(function(newRoot) { 1057 proc.f = newRoot; 1058 _Scheduler_enqueue(proc); 1059 }); 1060 return; 1061 } 1062 else if (rootTag === 5) 1063 { 1064 if (proc.h.length === 0) 1065 { 1066 return; 1067 } 1068 proc.f = proc.f.b(proc.h.shift()); 1069 } 1070 else // if (rootTag === 3 || rootTag === 4) 1071 { 1072 proc.g = { 1073 $: rootTag === 3 ? 0 : 1, 1074 b: proc.f.b, 1075 i: proc.g 1076 }; 1077 proc.f = proc.f.d; 1078 } 1079 } 1080} 1081 1082 1083 1084function _Char_toCode(char) 1085{ 1086 var code = char.charCodeAt(0); 1087 if (0xD800 <= code && code <= 0xDBFF) 1088 { 1089 return (code - 0xD800) * 0x400 + char.charCodeAt(1) - 0xDC00 + 0x10000 1090 } 1091 return code; 1092} 1093 1094function _Char_fromCode(code) 1095{ 1096 return _Utils_chr( 1097 (code < 0 || 0x10FFFF < code) 1098 ? '\uFFFD' 1099 : 1100 (code <= 0xFFFF) 1101 ? String.fromCharCode(code) 1102 : 1103 (code -= 0x10000, 1104 String.fromCharCode(Math.floor(code / 0x400) + 0xD800, code % 0x400 + 0xDC00) 1105 ) 1106 ); 1107} 1108 1109function _Char_toUpper(char) 1110{
1111 return _Utils_chr(char.toUpperCase()); 1112} 1113 1114function _Char_toLower(char) 1115{ 1116 return _Utils_chr(char.toLowerCase()); 1117} 1118 1119function _Char_toLocaleUpper(char) 1120{ 1121 return _Utils_chr(char.toLocaleUpperCase()); 1122} 1123 1124function _Char_toLocaleLower(char) 1125{ 1126 return _Utils_chr(char.toLocaleLowerCase()); 1127} 1128 1129 1130 1131var _String_cons = F2(function(chr, str) 1132{ 1133 return chr + str; 1134}); 1135 1136function _String_uncons(string) 1137{ 1138 var word = string.charCodeAt(0); 1139 return !isNaN(word) 1140 ? elm$core$Maybe$Just( 1141 0xD800 <= word && word <= 0xDBFF 1142 ? _Utils_Tuple2(_Utils_chr(string[0] + string[1]), string.slice(2)) 1143 : _Utils_Tuple2(_Utils_chr(string[0]), string.slice(1)) 1144 ) 1145 : elm$core$Maybe$Nothing; 1146} 1147 1148var _String_append = F2(function(a, b) 1149{ 1150 return a + b; 1151}); 1152 1153function _String_length(str) 1154{ 1155 return str.length; 1156} 1157 1158var _String_map = F2(function(func, string) 1159{ 1160 var len = string.length; 1161 var array = new Array(len); 1162 var i = 0; 1163 while (i < len) 1164 { 1165 var word = string.charCodeAt(i); 1166 if (0xD800 <= word && word <= 0xDBFF) 1167 { 1168 array[i] = func(_Utils_chr(string[i] + string[i+1])); 1169 i += 2; 1170 continue; 1171 } 1172 array[i] = func(_Utils_chr(string[i])); 1173 i++; 1174 } 1175 return array.join(''); 1176}); 1177 1178var _String_filter = F2(function(isGood, str) 1179{ 1180 var arr = []; 1181 var len = str.length; 1182 var i = 0; 1183 while (i < len) 1184 { 1185 var char = str[i]; 1186 var word = str.charCodeAt(i); 1187 i++; 1188 if (0xD800 <= word && word <= 0xDBFF) 1189 { 1190 char += str[i]; 1191 i++; 1192 } 1193 1194 if (isGood(_Utils_chr(char))) 1195 { 1196 arr.push(char); 1197 } 1198 } 1199 return arr.join(''); 1200}); 1201 1202function _String_reverse(str) 1203{ 1204 var len = str.length; 1205 var arr = new Array(len); 1206 var i = 0; 1207 while (i < len) 1208 { 1209 var word = str.charCodeAt(i); 1210 if (0xD800 <= word && word <= 0xDBFF) 1211 { 1212 arr[len - i] = str[i + 1]; 1213 i++; 1214 arr[len - i] = str[i - 1]; 1215 i++; 1216 } 1217 else 1218 { 1219 arr[len - i] = str[i]; 1220 i++; 1221 } 1222 } 1223 return arr.join(''); 1224} 1225 1226var _String_foldl = F3(function(func, state, string) 1227{ 1228 var len = string.length; 1229 var i = 0; 1230 while (i < len) 1231 { 1232 var char = string[i]; 1233 var word = string.charCodeAt(i); 1234 i++; 1235 if (0xD800 <= word && word <= 0xDBFF) 1236 { 1237 char += string[i]; 1238 i++; 1239 } 1240 state = A2(func, _Utils_chr(char), state); 1241 } 1242 return state; 1243}); 1244 1245var _String_foldr = F3(function(func, state, string) 1246{ 1247 var i = string.length; 1248 while (i--) 1249 { 1250 var char = string[i]; 1251 var word = string.charCodeAt(i); 1252 if (0xDC00 <= word && word <= 0xDFFF) 1253 { 1254 i--; 1255 char = string[i] + char; 1256 } 1257 state = A2(func, _Utils_chr(char), state); 1258 } 1259 return state; 1260}); 1261 1262var _String_split = F2(function(sep, str) 1263{ 1264 return str.split(sep); 1265}); 1266 1267var _String_join = F2(function(sep, strs) 1268{ 1269 return strs.join(sep); 1270}); 1271 1272var _String_slice = F3(function(start, end, str) { 1273 return str.slice(start, end); 1274}); 1275 1276function _String_trim(str) 1277{ 1278 return str.trim(); 1279} 1280 1281function _String_trimLeft(str) 1282{ 1283 return str.replace(/^\s+/, ''); 1284} 1285 1286function _String_trimRight(str) 1287{ 1288 return str.replace(/\s+$/, ''); 1289} 1290 1291function _String_words(str) 1292{ 1293 return _List_fromArray(str.trim().split(/\s+/g)); 1294} 1295 1296function _String_lines(str) 1297{ 1298 return _List_fromArray(str.split(/\r\n|\r|\n/g)); 1299} 1300 1301function _String_toUpper(str) 1302{ 1303 return str.toUpperCase(); 1304} 1305 1306function _String_toLower(str) 1307{ 1308 return str.toLowerCase(); 1309} 1310 1311var _String_any = F2(function(isGood, string) 1312{ 1313 var i = string.length; 1314 while (i--) 1315 { 1316 var char = string[i]; 1317 var word = string.charCodeAt(i); 1318 if (0xDC00 <= word && word <= 0xDFFF) 1319 { 1320 i--; 1321 char = string[i] + char; 1322 } 1323 if (isGood(_Utils_chr(char))) 1324 { 1325 return true; 1326 } 1327 } 1328 return false; 1329}); 1330 1331var _String_all = F2(function(isGood, string) 1332{ 1333 var i = string.length; 1334 while (i--) 1335 { 1336 var char = string[i]; 1337 var word = string.charCodeAt(i); 1338 if (0xDC00 <= word && word <= 0xDFFF) 1339 { 1340 i--; 1341 char = string[i] + char; 1342 } 1343 if (!isGood(_Utils_chr(char))) 1344 { 1345 return false; 1346 } 1347 } 1348 return true; 1349}); 1350 1351var _String_contains = F2(function(sub, str) 1352{ 1353 return str.indexOf(sub) > -1; 1354}); 1355 1356var _String_startsWith = F2(function(sub, str) 1357{ 1358 return str.indexOf(sub) === 0; 1359}); 1360 1361var _String_endsWith = F2(function(sub, str) 1362{ 1363 return str.length >= sub.length && 1364 str.lastIndexOf(sub) === str.length - sub.length; 1365}); 1366 1367var _String_indexes = F2(function(sub, str) 1368{ 1369 var subLen = sub.length; 1370 1371 if (subLen < 1) 1372 { 1373 return _List_Nil; 1374 } 1375 1376 var i = 0; 1377 var is = []; 1378 1379 while ((i = str.indexOf(sub, i)) > -1) 1380 { 1381 is.push(i); 1382 i = i + subLen; 1383 } 1384 1385 return _List_fromArray(is); 1386}); 1387 1388 1389// TO STRING 1390 1391function _String_fromNumber(number) 1392{ 1393 return number + ''; 1394} 1395 1396 1397// INT CONVERSIONS 1398 1399function _String_toInt(str) 1400{ 1401 var total = 0; 1402 var code0 = str.charCodeAt(0); 1403 var start = code0 == 0x2B /* + */ || code0 == 0x2D /* - */ ? 1 : 0; 1404 1405 for (var i = start; i < str.length; ++i) 1406 { 1407 var code = str.charCodeAt(i); 1408 if (code < 0x30 || 0x39 < code) 1409 { 1410 return elm$core$Maybe$Nothing; 1411 } 1412 total = 10 * total + code - 0x30; 1413 } 1414 1415 return i == start 1416 ? elm$core$Maybe$Nothing 1417 : elm$core$Maybe$Just(code0 == 0x2D ? -total : total); 1418} 1419 1420 1421// FLOAT CONVERSIONS 1422
1423function _String_toFloat(s) 1424{ 1425 // check if it is a hex, octal, or binary number 1426 if (s.length === 0 || /[\sxbo]/.test(s)) 1427 { 1428 return elm$core$Maybe$Nothing; 1429 } 1430 var n = +s; 1431 // faster isNaN check 1432 return n === n ? elm$core$Maybe$Just(n) : elm$core$Maybe$Nothing; 1433} 1434 1435function _String_fromList(chars) 1436{ 1437 return _List_toArray(chars).join(''); 1438} 1439 1440 1441 1442 1443/**/ 1444function _Json_errorToString(error) 1445{ 1446 return elm$json$Json$Decode$errorToString(error); 1447} 1448//*/ 1449 1450 1451// CORE DECODERS 1452 1453function _Json_succeed(msg) 1454{ 1455 return { 1456 $: 0, 1457 a: msg 1458 }; 1459} 1460 1461function _Json_fail(msg) 1462{ 1463 return { 1464 $: 1, 1465 a: msg 1466 }; 1467} 1468 1469function _Json_decodePrim(decoder) 1470{ 1471 return { $: 2, b: decoder }; 1472} 1473 1474var _Json_decodeInt = _Json_decodePrim(function(value) { 1475 return (typeof value !== 'number') 1476 ? _Json_expecting('an INT', value) 1477 : 1478 (-2147483647 < value && value < 2147483647 && (value | 0) === value) 1479 ? elm$core$Result$Ok(value) 1480 : 1481 (isFinite(value) && !(value % 1)) 1482 ? elm$core$Result$Ok(value) 1483 : _Json_expecting('an INT', value); 1484}); 1485 1486var _Json_decodeBool = _Json_decodePrim(function(value) { 1487 return (typeof value === 'boolean') 1488 ? elm$core$Result$Ok(value) 1489 : _Json_expecting('a BOOL', value); 1490}); 1491 1492var _Json_decodeFloat = _Json_decodePrim(function(value) { 1493 return (typeof value === 'number') 1494 ? elm$core$Result$Ok(value) 1495 : _Json_expecting('a FLOAT', value); 1496}); 1497 1498var _Json_decodeValue = _Json_decodePrim(function(value) { 1499 return elm$core$Result$Ok(_Json_wrap(value)); 1500}); 1501 1502var _Json_decodeString = _Json_decodePrim(function(value) { 1503 return (typeof value === 'string') 1504 ? elm$core$Result$Ok(value) 1505 : (value instanceof String) 1506 ? elm$core$Result$Ok(value + '') 1507 : _Json_expecting('a STRING', value); 1508}); 1509 1510function _Json_decodeList(decoder) { return { $: 3, b: decoder }; } 1511function _Json_decodeArray(decoder) { return { $: 4, b: decoder }; } 1512 1513function _Json_decodeNull(value) { return { $: 5, c: value }; } 1514 1515var _Json_decodeField = F2(function(field, decoder) 1516{ 1517 return { 1518 $: 6, 1519 d: field, 1520 b: decoder 1521 }; 1522}); 1523 1524var _Json_decodeIndex = F2(function(index, decoder) 1525{ 1526 return { 1527 $: 7, 1528 e: index, 1529 b: decoder 1530 }; 1531}); 1532 1533function _Json_decodeKeyValuePairs(decoder) 1534{ 1535 return { 1536 $: 8, 1537 b: decoder 1538 }; 1539} 1540 1541function _Json_mapMany(f, decoders) 1542{ 1543 return { 1544 $: 9, 1545 f: f, 1546 g: decoders 1547 }; 1548} 1549 1550var _Json_andThen = F2(function(callback, decoder) 1551{ 1552 return { 1553 $: 10, 1554 b: decoder, 1555 h: callback 1556 }; 1557}); 1558 1559function _Json_oneOf(decoders) 1560{ 1561 return { 1562 $: 11, 1563 g: decoders 1564 }; 1565} 1566 1567 1568// DECODING OBJECTS 1569 1570var _Json_map1 = F2(function(f, d1) 1571{ 1572 return _Json_mapMany(f, [d1]); 1573}); 1574 1575var _Json_map2 = F3(function(f, d1, d2) 1576{ 1577 return _Json_mapMany(f, [d1, d2]); 1578}); 1579 1580var _Json_map3 = F4(function(f, d1, d2, d3) 1581{ 1582 return _Json_mapMany(f, [d1, d2, d3]); 1583}); 1584 1585var _Json_map4 = F5(function(f, d1, d2, d3, d4) 1586{ 1587 return _Json_mapMany(f, [d1, d2, d3, d4]); 1588}); 1589 1590var _Json_map5 = F6(function(f, d1, d2, d3, d4, d5) 1591{ 1592 return _Json_mapMany(f, [d1, d2, d3, d4, d5]); 1593}); 1594 1595var _Json_map6 = F7(function(f, d1, d2, d3, d4, d5, d6) 1596{ 1597 return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6]); 1598}); 1599 1600var _Json_map7 = F8(function(f, d1, d2, d3, d4, d5, d6, d7) 1601{ 1602 return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7]); 1603}); 1604 1605var _Json_map8 = F9(function(f, d1, d2, d3, d4, d5, d6, d7, d8) 1606{ 1607 return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7, d8]); 1608}); 1609 1610 1611// DECODE 1612 1613var _Json_runOnString = F2(function(decoder, string) 1614{ 1615 try 1616 { 1617 var value = JSON.parse(string); 1618 return _Json_runHelp(decoder, value); 1619 } 1620 catch (e) 1621 { 1622 return elm$core$Result$Err(A2(elm$json$Json$Decode$Failure, 'This is not valid JSON! ' + e.message, _Json_wrap(string))); 1623 } 1624}); 1625 1626var _Json_run = F2(function(decoder, value) 1627{ 1628 return _Json_runHelp(decoder, _Json_unwrap(value)); 1629}); 1630 1631function _Json_runHelp(decoder, value) 1632{ 1633 switch (decoder.$) 1634 { 1635 case 2: 1636 return decoder.b(value); 1637 1638 case 5: 1639 return (value === null) 1640 ? elm$core$Result$Ok(decoder.c) 1641 : _Json_expecting('null', value); 1642 1643 case 3: 1644 if (!_Json_isArray(value)) 1645 { 1646 return _Json_expecting('a LIST', value); 1647 } 1648 return _Json_runArrayDecoder(decoder.b, value, _List_fromArray); 1649 1650 case 4: 1651 if (!_Json_isArray(value)) 1652 { 1653 return _Json_expecting('an ARRAY', value); 1654 } 1655 return _Json_runArrayDecoder(decoder.b, value, _Json_toElmArray); 1656 1657 case 6: 1658 var field = decoder.d; 1659 if (typeof value !== 'object' || value === null || !(field in value)) 1660 { 1661 return _Json_expecting('an OBJECT with a field named `' + field + '`', value); 1662 } 1663 var result = _Json_runHelp(decoder.b, value[field]); 1664 return (elm$core$Result$isOk(result)) ? result : elm$core$Result$Err(A2(elm$json$Json$Decode$Field, field, result.a)); 1665 1666 case 7: 1667 var index = decoder.e; 1668 if (!_Json_isArray(value)) 1669 { 1670 return _Json_expecting('an ARRAY', value); 1671 } 1672 if (index >= value.length) 1673 { 1674 return _Json_expecting('a LONGER array. Need index ' + index + ' but only see ' + value.length + ' entries', value); 1675 } 1676 var result = _Json_runHelp(decoder.b, value[index]); 1677 return (elm$core$Result$isOk(result)) ? result : elm$core$Result$Err(A2(elm$json$Json$Decode$Index, index, result.a)); 1678 1679 case 8: 1680 if (typeof value !== 'object' || value === null || _Json_isArray(value)) 1681 { 1682 return _Json_expecting('an OBJECT', value); 1683 } 1684 1685 var keyValuePairs = _List_Nil; 1686 // TODO test perf of Object.keys and switch when support is good enough 1687 for (var key in value) 1688 { 1689 if (value.hasOwnProperty(key)) 1690 { 1691 var result = _Json_runHelp(decoder.b, value[key]); 1692 if (!elm$core$Result$isOk(result)) 1693 { 1694 return elm$core$Result$Err(A2(elm$json$Json$Decode$Field, key, result.a)); 1695 }
1696 keyValuePairs = _List_Cons(_Utils_Tuple2(key, result.a), keyValuePairs); 1697 } 1698 } 1699 return elm$core$Result$Ok(elm$core$List$reverse(keyValuePairs)); 1700 1701 case 9: 1702 var answer = decoder.f; 1703 var decoders = decoder.g; 1704 for (var i = 0; i < decoders.length; i++) 1705 { 1706 var result = _Json_runHelp(decoders[i], value); 1707 if (!elm$core$Result$isOk(result)) 1708 { 1709 return result; 1710 } 1711 answer = answer(result.a); 1712 } 1713 return elm$core$Result$Ok(answer); 1714 1715 case 10: 1716 var result = _Json_runHelp(decoder.b, value); 1717 return (!elm$core$Result$isOk(result)) 1718 ? result 1719 : _Json_runHelp(decoder.h(result.a), value); 1720 1721 case 11: 1722 var errors = _List_Nil; 1723 for (var temp = decoder.g; temp.b; temp = temp.b) // WHILE_CONS 1724 { 1725 var result = _Json_runHelp(temp.a, value); 1726 if (elm$core$Result$isOk(result)) 1727 { 1728 return result; 1729 } 1730 errors = _List_Cons(result.a, errors); 1731 } 1732 return elm$core$Result$Err(elm$json$Json$Decode$OneOf(elm$core$List$reverse(errors))); 1733 1734 case 1: 1735 return elm$core$Result$Err(A2(elm$json$Json$Decode$Failure, decoder.a, _Json_wrap(value))); 1736 1737 case 0: 1738 return elm$core$Result$Ok(decoder.a); 1739 } 1740} 1741 1742function _Json_runArrayDecoder(decoder, value, toElmValue) 1743{ 1744 var len = value.length; 1745 var array = new Array(len); 1746 for (var i = 0; i < len; i++) 1747 { 1748 var result = _Json_runHelp(decoder, value[i]); 1749 if (!elm$core$Result$isOk(result)) 1750 { 1751 return elm$core$Result$Err(A2(elm$json$Json$Decode$Index, i, result.a)); 1752 } 1753 array[i] = result.a; 1754 } 1755 return elm$core$Result$Ok(toElmValue(array)); 1756} 1757 1758function _Json_isArray(value) 1759{ 1760 return Array.isArray(value) || (typeof FileList !== 'undefined' && value instanceof FileList); 1761} 1762 1763function _Json_toElmArray(array) 1764{ 1765 return A2(elm$core$Array$initialize, array.length, function(i) { return array[i]; }); 1766} 1767 1768function _Json_expecting(type, value) 1769{ 1770 return elm$core$Result$Err(A2(elm$json$Json$Decode$Failure, 'Expecting ' + type, _Json_wrap(value))); 1771} 1772 1773 1774// EQUALITY 1775 1776function _Json_equality(x, y) 1777{ 1778 if (x === y) 1779 { 1780 return true; 1781 } 1782 1783 if (x.$ !== y.$) 1784 { 1785 return false; 1786 } 1787 1788 switch (x.$) 1789 { 1790 case 0: 1791 case 1: 1792 return x.a === y.a; 1793 1794 case 2: 1795 return x.b === y.b; 1796 1797 case 5: 1798 return x.c === y.c; 1799 1800 case 3: 1801 case 4: 1802 case 8: 1803 return _Json_equality(x.b, y.b); 1804 1805 case 6: 1806 return x.d === y.d && _Json_equality(x.b, y.b); 1807 1808 case 7: 1809 return x.e === y.e && _Json_equality(x.b, y.b); 1810 1811 case 9: 1812 return x.f === y.f && _Json_listEquality(x.g, y.g); 1813 1814 case 10: 1815 return x.h === y.h && _Json_equality(x.b, y.b); 1816 1817 case 11: 1818 return _Json_listEquality(x.g, y.g); 1819 } 1820} 1821 1822function _Json_listEquality(aDecoders, bDecoders) 1823{ 1824 var len = aDecoders.length; 1825 if (len !== bDecoders.length) 1826 { 1827 return false; 1828 } 1829 for (var i = 0; i < len; i++) 1830 { 1831 if (!_Json_equality(aDecoders[i], bDecoders[i])) 1832 { 1833 return false; 1834 } 1835 } 1836 return true; 1837} 1838 1839 1840// ENCODE 1841 1842var _Json_encode = F2(function(indentLevel, value) 1843{ 1844 return JSON.stringify(_Json_unwrap(value), null, indentLevel) + ''; 1845}); 1846 1847function _Json_wrap(value) { return { $: 0, a: value }; } 1848function _Json_unwrap(value) { return value.a; } 1849 1850function _Json_wrap_UNUSED(value) { return value; } 1851function _Json_unwrap_UNUSED(value) { return value; } 1852 1853function _Json_emptyArray() { return []; } 1854function _Json_emptyObject() { return {}; } 1855 1856var _Json_addField = F3(function(key, value, object) 1857{ 1858 object[key] = _Json_unwrap(value); 1859 return object; 1860}); 1861 1862function _Json_addEntry(func) 1863{ 1864 return F2(function(entry, array) 1865 { 1866 array.push(_Json_unwrap(func(entry))); 1867 return array; 1868 }); 1869} 1870 1871var _Json_encodeNull = _Json_wrap(null); 1872 1873 1874 1875function _Process_sleep(time) 1876{ 1877 return _Scheduler_binding(function(callback) { 1878 var id = setTimeout(function() { 1879 callback(_Scheduler_succeed(_Utils_Tuple0)); 1880 }, time); 1881 1882 return function() { clearTimeout(id); }; 1883 }); 1884} 1885 1886 1887 1888 1889// PROGRAMS 1890 1891 1892var _Platform_worker = F4(function(impl, flagDecoder, debugMetadata, args) 1893{ 1894 return _Platform_initialize( 1895 flagDecoder, 1896 args, 1897 impl.init, 1898 impl.update, 1899 impl.subscriptions, 1900 function() { return function() {} } 1901 ); 1902}); 1903 1904 1905 1906// INITIALIZE A PROGRAM 1907 1908 1909function _Platform_initialize(flagDecoder, args, init, update, subscriptions, stepperBuilder) 1910{ 1911 var result = A2(_Json_run, flagDecoder, _Json_wrap(args ? args['flags'] : undefined)); 1912 elm$core$Result$isOk(result) || _Debug_crash(2 /**/, _Json_errorToString(result.a) /**/); 1913 var managers = {}; 1914 var initPair = init(result.a); 1915 var model = initPair.a; 1916 var stepper = stepperBuilder(sendToApp, model); 1917 var ports = _Platform_setupEffects(managers, sendToApp); 1918 1919 function sendToApp(msg, viewMetadata) 1920 { 1921 var pair = A2(update, msg, model); 1922 stepper(model = pair.a, viewMetadata); 1923 _Platform_enqueueEffects(managers, pair.b, subscriptions(model)); 1924 } 1925 1926 _Platform_enqueueEffects(managers, initPair.b, subscriptions(model)); 1927 1928 return ports ? { ports: ports } : {}; 1929} 1930 1931 1932 1933// TRACK PRELOADS 1934// 1935// This is used by code in elm/browser and elm/http 1936// to register any HTTP requests that are triggered by init. 1937// 1938 1939 1940var _Platform_preload; 1941 1942 1943function _Platform_registerPreload(url) 1944{ 1945 _Platform_preload.add(url); 1946} 1947 1948 1949 1950// EFFECT MANAGERS 1951 1952 1953var _Platform_effectManagers = {}; 1954 1955 1956function _Platform_setupEffects(managers, sendToApp) 1957{ 1958 var ports; 1959 1960 // setup all necessary effect managers 1961 for (var key in _Platform_effectManagers) 1962 { 1963 var manager = _Platform_effectManagers[key]; 1964 1965 if (manager.a) 1966 { 1967 ports = ports || {}; 1968 ports[key] = manager.a(key, sendToApp); 1969 } 1970 1971 managers[key] = _Platform_instantiateManager(manager, sendToApp); 1972 } 1973 1974 return ports; 1975} 1976 1977 1978function _Platform_createManager(init, onEffects, onSelfMsg, cmdMap, subMap) 1979{ 1980 return { 1981 b: init, 1982 c: onEffects, 1983 d: onSelfMsg, 1984 e: cmdMap, 1985 f: subMap 1986 }; 1987} 1988 1989 1990function _Platform_instantiateManager(info, sendToApp) 1991{ 1992 var router = { 1993 g: sendToApp, 1994 h: undefined 1995 }; 1996 1997 var onEffects = info.c; 1998 var onSelfMsg = info.d; 1999 var cmdMap = info.e; 2000 var subMap = info.f;
2001 2002 function loop(state) 2003 { 2004 return A2(_Scheduler_andThen, loop, _Scheduler_receive(function(msg) 2005 { 2006 var value = msg.a; 2007 2008 if (msg.$ === 0) 2009 { 2010 return A3(onSelfMsg, router, value, state); 2011 } 2012 2013 return cmdMap && subMap 2014 ? A4(onEffects, router, value.i, value.j, state) 2015 : A3(onEffects, router, cmdMap ? value.i : value.j, state); 2016 })); 2017 } 2018 2019 return router.h = _Scheduler_rawSpawn(A2(_Scheduler_andThen, loop, info.b)); 2020} 2021 2022 2023 2024// ROUTING 2025 2026 2027var _Platform_sendToApp = F2(function(router, msg) 2028{ 2029 return _Scheduler_binding(function(callback) 2030 { 2031 router.g(msg); 2032 callback(_Scheduler_succeed(_Utils_Tuple0)); 2033 }); 2034}); 2035 2036 2037var _Platform_sendToSelf = F2(function(router, msg) 2038{ 2039 return A2(_Scheduler_send, router.h, { 2040 $: 0, 2041 a: msg 2042 }); 2043}); 2044 2045 2046 2047// BAGS 2048 2049 2050function _Platform_leaf(home) 2051{ 2052 return function(value) 2053 { 2054 return { 2055 $: 1, 2056 k: home, 2057 l: value 2058 }; 2059 }; 2060} 2061 2062 2063function _Platform_batch(list) 2064{ 2065 return { 2066 $: 2, 2067 m: list 2068 }; 2069} 2070 2071 2072var _Platform_map = F2(function(tagger, bag) 2073{ 2074 return { 2075 $: 3, 2076 n: tagger, 2077 o: bag 2078 } 2079}); 2080 2081 2082 2083// PIPE BAGS INTO EFFECT MANAGERS 2084// 2085// Effects must be queued! 2086// 2087// Say your init contains a synchronous command, like Time.now or Time.here 2088// 2089// - This will produce a batch of effects (FX_1) 2090// - The synchronous task triggers the subsequent `update` call 2091// - This will produce a batch of effects (FX_2) 2092// 2093// If we just start dispatching FX_2, subscriptions from FX_2 can be processed 2094// before subscriptions from FX_1. No good! Earlier versions of this code had 2095// this problem, leading to these reports: 2096// 2097// https://github.com/elm/core/issues/980 2098// https://github.com/elm/core/pull/981 2099// https://github.com/elm/compiler/issues/1776 2100// 2101// The queue is necessary to avoid ordering issues for synchronous commands. 2102 2103 2104// Why use true/false here? Why not just check the length of the queue? 2105// The goal is to detect "are we currently dispatching effects?" If we 2106// are, we need to bail and let the ongoing while loop handle things. 2107// 2108// Now say the queue has 1 element. When we dequeue the final element, 2109// the queue will be empty, but we are still actively dispatching effects. 2110// So you could get queue jumping in a really tricky category of cases. 2111// 2112var _Platform_effectsQueue = []; 2113var _Platform_effectsActive = false; 2114 2115 2116function _Platform_enqueueEffects(managers, cmdBag, subBag) 2117{ 2118 _Platform_effectsQueue.push({ p: managers, q: cmdBag, r: subBag }); 2119 2120 if (_Platform_effectsActive) return; 2121 2122 _Platform_effectsActive = true; 2123 for (var fx; fx = _Platform_effectsQueue.shift(); ) 2124 { 2125 _Platform_dispatchEffects(fx.p, fx.q, fx.r); 2126 } 2127 _Platform_effectsActive = false; 2128} 2129 2130 2131function _Platform_dispatchEffects(managers, cmdBag, subBag) 2132{ 2133 var effectsDict = {}; 2134 _Platform_gatherEffects(true, cmdBag, effectsDict, null); 2135 _Platform_gatherEffects(false, subBag, effectsDict, null); 2136 2137 for (var home in managers) 2138 { 2139 _Scheduler_rawSend(managers[home], { 2140 $: 'fx', 2141 a: effectsDict[home] || { i: _List_Nil, j: _List_Nil } 2142 }); 2143 } 2144} 2145 2146 2147function _Platform_gatherEffects(isCmd, bag, effectsDict, taggers) 2148{ 2149 switch (bag.$) 2150 { 2151 case 1: 2152 var home = bag.k; 2153 var effect = _Platform_toEffect(isCmd, home, taggers, bag.l); 2154 effectsDict[home] = _Platform_insert(isCmd, effect, effectsDict[home]); 2155 return; 2156 2157 case 2: 2158 for (var list = bag.m; list.b; list = list.b) // WHILE_CONS 2159 { 2160 _Platform_gatherEffects(isCmd, list.a, effectsDict, taggers); 2161 } 2162 return; 2163 2164 case 3: 2165 _Platform_gatherEffects(isCmd, bag.o, effectsDict, { 2166 s: bag.n, 2167 t: taggers 2168 }); 2169 return; 2170 } 2171} 2172 2173 2174function _Platform_toEffect(isCmd, home, taggers, value) 2175{ 2176 function applyTaggers(x) 2177 { 2178 for (var temp = taggers; temp; temp = temp.t) 2179 { 2180 x = temp.s(x); 2181 } 2182 return x; 2183 } 2184 2185 var map = isCmd 2186 ? _Platform_effectManagers[home].e 2187 : _Platform_effectManagers[home].f; 2188 2189 return A2(map, applyTaggers, value) 2190} 2191 2192 2193function _Platform_insert(isCmd, newEffect, effects) 2194{ 2195 effects = effects || { i: _List_Nil, j: _List_Nil }; 2196 2197 isCmd 2198 ? (effects.i = _List_Cons(newEffect, effects.i)) 2199 : (effects.j = _List_Cons(newEffect, effects.j)); 2200 2201 return effects; 2202} 2203 2204 2205 2206// PORTS 2207 2208 2209function _Platform_checkPortName(name) 2210{ 2211 if (_Platform_effectManagers[name]) 2212 { 2213 _Debug_crash(3, name) 2214 } 2215} 2216 2217 2218 2219// OUTGOING PORTS 2220 2221 2222function _Platform_outgoingPort(name, converter) 2223{ 2224 _Platform_checkPortName(name); 2225 _Platform_effectManagers[name] = { 2226 e: _Platform_outgoingPortMap, 2227 u: converter, 2228 a: _Platform_setupOutgoingPort 2229 }; 2230 return _Platform_leaf(name); 2231} 2232 2233 2234var _Platform_outgoingPortMap = F2(function(tagger, value) { return value; }); 2235 2236 2237function _Platform_setupOutgoingPort(name) 2238{ 2239 var subs = []; 2240 var converter = _Platform_effectManagers[name].u; 2241 2242 // CREATE MANAGER 2243 2244 var init = _Process_sleep(0); 2245 2246 _Platform_effectManagers[name].b = init; 2247 _Platform_effectManagers[name].c = F3(function(router, cmdList, state) 2248 { 2249 for ( ; cmdList.b; cmdList = cmdList.b) // WHILE_CONS 2250 { 2251 // grab a separate reference to subs in case unsubscribe is called 2252 var currentSubs = subs; 2253 var value = _Json_unwrap(converter(cmdList.a)); 2254 for (var i = 0; i < currentSubs.length; i++) 2255 { 2256 currentSubs[i](value); 2257 } 2258 } 2259 return init; 2260 }); 2261 2262 // PUBLIC API 2263 2264 function subscribe(callback) 2265 { 2266 subs.push(callback); 2267 } 2268 2269 function unsubscribe(callback) 2270 { 2271 // copy subs into a new array in case unsubscribe is called within a 2272 // subscribed callback 2273 subs = subs.slice(); 2274 var index = subs.indexOf(callback); 2275 if (index >= 0) 2276 { 2277 subs.splice(index, 1); 2278 } 2279 } 2280 2281 return { 2282 subscribe: subscribe, 2283 unsubscribe: unsubscribe 2284 }; 2285} 2286 2287 2288 2289// INCOMING PORTS 2290 2291 2292function _Platform_incomingPort(name, converter) 2293{ 2294 _Platform_checkPortName(name); 2295 _Platform_effectManagers[name] = { 2296 f: _Platform_incomingPortMap, 2297 u: converter, 2298 a: _Platform_setupIncomingPort 2299 }; 2300 return _Platform_leaf(name); 2301} 2302 2303 2304var _Platform_incomingPortMap = F2(function(tagger, finalTagger) 2305{ 2306 return function(value) 2307 { 2308 return tagger(finalTagger(value)); 2309 }; 2310}); 2311 2312 2313function _Platform_setupIncomingPort(name, sendToApp) 2314{ 2315 var subs = _List_Nil; 2316 var converter = _Platform_effectManagers[name].u; 2317 2318 // CREATE MANAGER 2319 2320 var init = _Scheduler_succeed(null); 2321 2322 _Platform_effectManagers[name].b = init; 2323 _Platform_effectManagers[name].c = F3(function(router, subList, state) 2324 { 2325 subs = subList; 2326 return init; 2327 }); 2328 2329 // PUBLIC API 2330 2331 function send(incomingValue) 2332 { 2333 var result = A2(_Json_run, converter, _Json_wrap(incomingValue)); 2334 2335 elm$core$Result$isOk(result) || _Debug_crash(4, name, result.a); 2336 2337 var value = result.a; 2338 for (var temp = subs; temp.b; temp = temp.b) // WHILE_CONS 2339 { 2340 sendToApp(temp.a(value)); 2341 } 2342 } 2343 2344 return { send: send }; 2345} 2346 2347 2348 2349// EXPORT ELM MODULES 2350//
2351// Have DEBUG and PROD versions so that we can (1) give nicer errors in 2352// debug mode and (2) not pay for the bits needed for that in prod mode. 2353// 2354 2355 2356function _Platform_export_UNUSED(exports) 2357{ 2358 scope['Elm'] 2359 ? _Platform_mergeExportsProd(scope['Elm'], exports) 2360 : scope['Elm'] = exports; 2361} 2362 2363 2364function _Platform_mergeExportsProd(obj, exports) 2365{ 2366 for (var name in exports) 2367 { 2368 (name in obj) 2369 ? (name == 'init') 2370 ? _Debug_crash(6) 2371 : _Platform_mergeExportsProd(obj[name], exports[name]) 2372 : (obj[name] = exports[name]); 2373 } 2374} 2375 2376 2377function _Platform_export(exports) 2378{ 2379 scope['Elm'] 2380 ? _Platform_mergeExportsDebug('Elm', scope['Elm'], exports) 2381 : scope['Elm'] = exports; 2382} 2383 2384 2385function _Platform_mergeExportsDebug(moduleName, obj, exports) 2386{ 2387 for (var name in exports) 2388 { 2389 (name in obj) 2390 ? (name == 'init') 2391 ? _Debug_crash(6, moduleName) 2392 : _Platform_mergeExportsDebug(moduleName + '.' + name, obj[name], exports[name]) 2393 : (obj[name] = exports[name]); 2394 } 2395} 2396 2397 2398 2399 2400// HELPERS 2401 2402 2403var _VirtualDom_divertHrefToApp; 2404 2405var _VirtualDom_doc = typeof document !== 'undefined' ? document : {}; 2406 2407 2408function _VirtualDom_appendChild(parent, child) 2409{ 2410 parent.appendChild(child); 2411} 2412 2413var _VirtualDom_init = F4(function(virtualNode, flagDecoder, debugMetadata, args) 2414{ 2415 // NOTE: this function needs _Platform_export available to work 2416 2417 /**_UNUSED/ 2418 var node = args['node']; 2419 //*/ 2420 /**/ 2421 var node = args && args['node'] ? args['node'] : _Debug_crash(0); 2422 //*/ 2423 2424 node.parentNode.replaceChild( 2425 _VirtualDom_render(virtualNode, function() {}), 2426 node 2427 ); 2428 2429 return {}; 2430}); 2431 2432 2433 2434// TEXT 2435 2436 2437function _VirtualDom_text(string) 2438{ 2439 return { 2440 $: 0, 2441 a: string 2442 }; 2443} 2444 2445 2446 2447// NODE 2448 2449 2450var _VirtualDom_nodeNS = F2(function(namespace, tag) 2451{ 2452 return F2(function(factList, kidList) 2453 { 2454 for (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS 2455 { 2456 var kid = kidList.a; 2457 descendantsCount += (kid.b || 0); 2458 kids.push(kid); 2459 } 2460 descendantsCount += kids.length; 2461 2462 return { 2463 $: 1, 2464 c: tag, 2465 d: _VirtualDom_organizeFacts(factList), 2466 e: kids, 2467 f: namespace, 2468 b: descendantsCount 2469 }; 2470 }); 2471}); 2472 2473 2474var _VirtualDom_node = _VirtualDom_nodeNS(undefined); 2475 2476 2477 2478// KEYED NODE 2479 2480 2481var _VirtualDom_keyedNodeNS = F2(function(namespace, tag) 2482{ 2483 return F2(function(factList, kidList) 2484 { 2485 for (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS 2486 { 2487 var kid = kidList.a; 2488 descendantsCount += (kid.b.b || 0); 2489 kids.push(kid); 2490 } 2491 descendantsCount += kids.length; 2492 2493 return { 2494 $: 2, 2495 c: tag, 2496 d: _VirtualDom_organizeFacts(factList), 2497 e: kids, 2498 f: namespace, 2499 b: descendantsCount 2500 }; 2501 }); 2502}); 2503 2504 2505var _VirtualDom_keyedNode = _VirtualDom_keyedNodeNS(undefined); 2506 2507 2508 2509// CUSTOM 2510 2511 2512function _VirtualDom_custom(factList, model, render, diff) 2513{ 2514 return { 2515 $: 3, 2516 d: _VirtualDom_organizeFacts(factList), 2517 g: model, 2518 h: render, 2519 i: diff 2520 }; 2521} 2522 2523 2524 2525// MAP 2526 2527 2528var _VirtualDom_map = F2(function(tagger, node) 2529{ 2530 return { 2531 $: 4, 2532 j: tagger, 2533 k: node, 2534 b: 1 + (node.b || 0) 2535 }; 2536}); 2537 2538 2539 2540// LAZY 2541 2542 2543function _VirtualDom_thunk(refs, thunk) 2544{ 2545 return { 2546 $: 5, 2547 l: refs, 2548 m: thunk, 2549 k: undefined 2550 }; 2551} 2552 2553var _VirtualDom_lazy = F2(function(func, a) 2554{ 2555 return _VirtualDom_thunk([func, a], function() { 2556 return func(a); 2557 }); 2558}); 2559 2560var _VirtualDom_lazy2 = F3(function(func, a, b) 2561{ 2562 return _VirtualDom_thunk([func, a, b], function() { 2563 return A2(func, a, b); 2564 }); 2565}); 2566 2567var _VirtualDom_lazy3 = F4(function(func, a, b, c) 2568{ 2569 return _VirtualDom_thunk([func, a, b, c], function() { 2570 return A3(func, a, b, c); 2571 }); 2572}); 2573 2574var _VirtualDom_lazy4 = F5(function(func, a, b, c, d) 2575{ 2576 return _VirtualDom_thunk([func, a, b, c, d], function() { 2577 return A4(func, a, b, c, d); 2578 }); 2579}); 2580 2581var _VirtualDom_lazy5 = F6(function(func, a, b, c, d, e) 2582{ 2583 return _VirtualDom_thunk([func, a, b, c, d, e], function() { 2584 return A5(func, a, b, c, d, e); 2585 }); 2586}); 2587 2588var _VirtualDom_lazy6 = F7(function(func, a, b, c, d, e, f) 2589{ 2590 return _VirtualDom_thunk([func, a, b, c, d, e, f], function() { 2591 return A6(func, a, b, c, d, e, f); 2592 }); 2593}); 2594 2595var _VirtualDom_lazy7 = F8(function(func, a, b, c, d, e, f, g) 2596{ 2597 return _VirtualDom_thunk([func, a, b, c, d, e, f, g], function() { 2598 return A7(func, a, b, c, d, e, f, g); 2599 }); 2600}); 2601 2602var _VirtualDom_lazy8 = F9(function(func, a, b, c, d, e, f, g, h) 2603{ 2604 return _VirtualDom_thunk([func, a, b, c, d, e, f, g, h], function() { 2605 return A8(func, a, b, c, d, e, f, g, h); 2606 }); 2607}); 2608 2609 2610 2611// FACTS 2612 2613 2614var _VirtualDom_on = F2(function(key, handler) 2615{ 2616 return { 2617 $: 'a0', 2618 n: key, 2619 o: handler 2620 }; 2621}); 2622var _VirtualDom_style = F2(function(key, value) 2623{ 2624 return { 2625 $: 'a1', 2626 n: key, 2627 o: value 2628 }; 2629}); 2630var _VirtualDom_property = F2(function(key, value) 2631{ 2632 return { 2633 $: 'a2', 2634 n: key, 2635 o: value 2636 }; 2637}); 2638var _VirtualDom_attribute = F2(function(key, value) 2639{ 2640 return { 2641 $: 'a3', 2642 n: key, 2643 o: value 2644 }; 2645}); 2646var _VirtualDom_attributeNS = F3(function(namespace, key, value) 2647{ 2648 return { 2649 $: 'a4', 2650 n: key, 2651 o: { f: namespace, o: value } 2652 }; 2653}); 2654 2655 2656 2657// XSS ATTACK VECTOR CHECKS 2658// 2659// For some reason, tabs can appear in href protocols and it still works. 2660// So '\tjava\tSCRIPT:alert("!!!")' and 'javascript:alert("!!!")' are the same
2661// in practice. That is why _VirtualDom_RE_js and _VirtualDom_RE_js_html look 2662// so freaky. 2663// 2664// Pulling the regular expressions out to the top level gives a slight speed 2665// boost in small benchmarks (4-10%) but hoisting values to reduce allocation 2666// can be unpredictable in large programs where JIT may have a harder time with 2667// functions are not fully self-contained. The benefit is more that the js and 2668// js_html ones are so weird that I prefer to see them near each other. 2669 2670 2671var _VirtualDom_RE_script = /^script$/i; 2672var _VirtualDom_RE_on_formAction = /^(on|formAction$)/i; 2673var _VirtualDom_RE_js = /^\s*j\s*a\s*v\s*a\s*s\s*c\s*r\s*i\s*p\s*t\s*:/i; 2674var _VirtualDom_RE_js_html = /^\s*(j\s*a\s*v\s*a\s*s\s*c\s*r\s*i\s*p\s*t\s*:|d\s*a\s*t\s*a\s*:\s*t\s*e\s*x\s*t\s*\/\s*h\s*t\s*m\s*l\s*(,|;))/i; 2675 2676 2677function _VirtualDom_noScript(tag) 2678{ 2679 return _VirtualDom_RE_script.test(tag) ? 'p' : tag; 2680} 2681 2682function _VirtualDom_noOnOrFormAction(key) 2683{ 2684 return _VirtualDom_RE_on_formAction.test(key) ? 'data-' + key : key; 2685} 2686 2687function _VirtualDom_noInnerHtmlOrFormAction(key) 2688{ 2689 return key == 'innerHTML' || key == 'formAction' ? 'data-' + key : key; 2690} 2691 2692function _VirtualDom_noJavaScriptUri(value) 2693{ 2694 return _VirtualDom_RE_js.test(value) 2695 ? /**_UNUSED/''//*//**/'javascript:alert("This is an XSS vector. Please use ports or web components instead.")'//*/ 2696 : value; 2697} 2698 2699function _VirtualDom_noJavaScriptOrHtmlUri(value) 2700{ 2701 return _VirtualDom_RE_js_html.test(value) 2702 ? /**_UNUSED/''//*//**/'javascript:alert("This is an XSS vector. Please use ports or web components instead.")'//*/ 2703 : value; 2704} 2705 2706function _VirtualDom_noJavaScriptOrHtmlJson(value) 2707{ 2708 return (typeof _Json_unwrap(value) === 'string' && _VirtualDom_RE_js_html.test(_Json_unwrap(value))) 2709 ? _Json_wrap( 2710 /**_UNUSED/''//*//**/'javascript:alert("This is an XSS vector. Please use ports or web components instead.")'//*/ 2711 ) : value; 2712} 2713 2714 2715 2716// MAP FACTS 2717 2718 2719var _VirtualDom_mapAttribute = F2(function(func, attr) 2720{ 2721 return (attr.$ === 'a0') 2722 ? A2(_VirtualDom_on, attr.n, _VirtualDom_mapHandler(func, attr.o)) 2723 : attr; 2724}); 2725 2726function _VirtualDom_mapHandler(func, handler) 2727{ 2728 var tag = elm$virtual_dom$VirtualDom$toHandlerInt(handler); 2729 2730 // 0 = Normal 2731 // 1 = MayStopPropagation 2732 // 2 = MayPreventDefault 2733 // 3 = Custom 2734 2735 return { 2736 $: handler.$, 2737 a: 2738 !tag 2739 ? A2(elm$json$Json$Decode$map, func, handler.a) 2740 : 2741 A3(elm$json$Json$Decode$map2, 2742 tag < 3 2743 ? _VirtualDom_mapEventTuple 2744 : _VirtualDom_mapEventRecord, 2745 elm$json$Json$Decode$succeed(func), 2746 handler.a 2747 ) 2748 }; 2749} 2750 2751var _VirtualDom_mapEventTuple = F2(function(func, tuple) 2752{ 2753 return _Utils_Tuple2(func(tuple.a), tuple.b); 2754}); 2755 2756var _VirtualDom_mapEventRecord = F2(function(func, record) 2757{ 2758 return { 2759 message: func(record.message), 2760 stopPropagation: record.stopPropagation, 2761 preventDefault: record.preventDefault 2762 } 2763}); 2764 2765 2766 2767// ORGANIZE FACTS 2768 2769 2770function _VirtualDom_organizeFacts(factList) 2771{ 2772 for (var facts = {}; factList.b; factList = factList.b) // WHILE_CONS 2773 { 2774 var entry = factList.a; 2775 2776 var tag = entry.$; 2777 var key = entry.n; 2778 var value = entry.o; 2779 2780 if (tag === 'a2') 2781 { 2782 (key === 'className') 2783 ? _VirtualDom_addClass(facts, key, _Json_unwrap(value)) 2784 : facts[key] = _Json_unwrap(value); 2785 2786 continue; 2787 } 2788 2789 var subFacts = facts[tag] || (facts[tag] = {}); 2790 (tag === 'a3' && key === 'class') 2791 ? _VirtualDom_addClass(subFacts, key, value) 2792 : subFacts[key] = value; 2793 } 2794 2795 return facts; 2796} 2797 2798function _VirtualDom_addClass(object, key, newClass) 2799{ 2800 var classes = object[key]; 2801 object[key] = classes ? classes + ' ' + newClass : newClass; 2802} 2803 2804 2805 2806// RENDER 2807 2808 2809function _VirtualDom_render(vNode, eventNode) 2810{ 2811 var tag = vNode.$; 2812 2813 if (tag === 5) 2814 { 2815 return _VirtualDom_render(vNode.k || (vNode.k = vNode.m()), eventNode); 2816 } 2817 2818 if (tag === 0) 2819 { 2820 return _VirtualDom_doc.createTextNode(vNode.a); 2821 } 2822 2823 if (tag === 4) 2824 { 2825 var subNode = vNode.k; 2826 var tagger = vNode.j; 2827 2828 while (subNode.$ === 4) 2829 { 2830 typeof tagger !== 'object' 2831 ? tagger = [tagger, subNode.j] 2832 : tagger.push(subNode.j); 2833 2834 subNode = subNode.k; 2835 } 2836 2837 var subEventRoot = { j: tagger, p: eventNode };
2838 var domNode = _VirtualDom_render(subNode, subEventRoot); 2839 domNode.elm_event_node_ref = subEventRoot; 2840 return domNode; 2841 } 2842 2843 if (tag === 3) 2844 { 2845 var domNode = vNode.h(vNode.g); 2846 _VirtualDom_applyFacts(domNode, eventNode, vNode.d); 2847 return domNode; 2848 } 2849 2850 // at this point `tag` must be 1 or 2 2851 2852 var domNode = vNode.f 2853 ? _VirtualDom_doc.createElementNS(vNode.f, vNode.c) 2854 : _VirtualDom_doc.createElement(vNode.c); 2855 2856 if (_VirtualDom_divertHrefToApp && vNode.c == 'a') 2857 { 2858 domNode.addEventListener('click', _VirtualDom_divertHrefToApp(domNode)); 2859 } 2860 2861 _VirtualDom_applyFacts(domNode, eventNode, vNode.d); 2862 2863 for (var kids = vNode.e, i = 0; i < kids.length; i++) 2864 { 2865 _VirtualDom_appendChild(domNode, _VirtualDom_render(tag === 1 ? kids[i] : kids[i].b, eventNode)); 2866 } 2867 2868 return domNode; 2869} 2870 2871 2872 2873// APPLY FACTS 2874 2875 2876function _VirtualDom_applyFacts(domNode, eventNode, facts) 2877{ 2878 for (var key in facts) 2879 { 2880 var value = facts[key]; 2881 2882 key === 'a1' 2883 ? _VirtualDom_applyStyles(domNode, value) 2884 : 2885 key === 'a0' 2886 ? _VirtualDom_applyEvents(domNode, eventNode, value) 2887 : 2888 key === 'a3' 2889 ? _VirtualDom_applyAttrs(domNode, value) 2890 : 2891 key === 'a4' 2892 ? _VirtualDom_applyAttrsNS(domNode, value) 2893 : 2894 ((key !== 'value' && key !== 'checked') || domNode[key] !== value) && (domNode[key] = value); 2895 } 2896} 2897 2898 2899 2900// APPLY STYLES 2901 2902 2903function _VirtualDom_applyStyles(domNode, styles) 2904{ 2905 var domNodeStyle = domNode.style; 2906 2907 for (var key in styles) 2908 { 2909 domNodeStyle[key] = styles[key]; 2910 } 2911} 2912 2913 2914 2915// APPLY ATTRS 2916 2917 2918function _VirtualDom_applyAttrs(domNode, attrs) 2919{ 2920 for (var key in attrs) 2921 { 2922 var value = attrs[key]; 2923 typeof value !== 'undefined' 2924 ? domNode.setAttribute(key, value) 2925 : domNode.removeAttribute(key); 2926 } 2927} 2928 2929 2930 2931// APPLY NAMESPACED ATTRS 2932 2933 2934function _VirtualDom_applyAttrsNS(domNode, nsAttrs) 2935{ 2936 for (var key in nsAttrs) 2937 { 2938 var pair = nsAttrs[key]; 2939 var namespace = pair.f; 2940 var value = pair.o; 2941 2942 typeof value !== 'undefined' 2943 ? domNode.setAttributeNS(namespace, key, value) 2944 : domNode.removeAttributeNS(namespace, key); 2945 } 2946} 2947 2948 2949 2950// APPLY EVENTS 2951 2952 2953function _VirtualDom_applyEvents(domNode, eventNode, events) 2954{ 2955 var allCallbacks = domNode.elmFs || (domNode.elmFs = {}); 2956 2957 for (var key in events) 2958 { 2959 var newHandler = events[key]; 2960 var oldCallback = allCallbacks[key]; 2961 2962 if (!newHandler) 2963 { 2964 domNode.removeEventListener(key, oldCallback); 2965 allCallbacks[key] = undefined; 2966 continue; 2967 } 2968 2969 if (oldCallback) 2970 { 2971 var oldHandler = oldCallback.q; 2972 if (oldHandler.$ === newHandler.$) 2973 { 2974 oldCallback.q = newHandler; 2975 continue; 2976 } 2977 domNode.removeEventListener(key, oldCallback); 2978 } 2979 2980 oldCallback = _VirtualDom_makeCallback(eventNode, newHandler); 2981 domNode.addEventListener(key, oldCallback, 2982 _VirtualDom_passiveSupported 2983 && { passive: elm$virtual_dom$VirtualDom$toHandlerInt(newHandler) < 2 } 2984 ); 2985 allCallbacks[key] = oldCallback; 2986 } 2987} 2988 2989 2990 2991// PASSIVE EVENTS 2992 2993 2994var _VirtualDom_passiveSupported; 2995 2996try 2997{ 2998 window.addEventListener('t', null, Object.defineProperty({}, 'passive', { 2999 get: function() { _VirtualDom_passiveSupported = true; } 3000 })); 3001} 3002catch(e) {} 3003 3004 3005 3006// EVENT HANDLERS 3007 3008 3009function _VirtualDom_makeCallback(eventNode, initialHandler) 3010{ 3011 function callback(event) 3012 { 3013 var handler = callback.q; 3014 var result = _Json_runHelp(handler.a, event); 3015 3016 if (!elm$core$Result$isOk(result)) 3017 { 3018 return; 3019 } 3020 3021 var tag = elm$virtual_dom$VirtualDom$toHandlerInt(handler); 3022 3023 // 0 = Normal 3024 // 1 = MayStopPropagation 3025 // 2 = MayPreventDefault 3026 // 3 = Custom 3027 3028 var value = result.a; 3029 var message = !tag ? value : tag < 3 ? value.a : value.message; 3030 var stopPropagation = tag == 1 ? value.b : tag == 3 && value.stopPropagation; 3031 var currentEventNode = ( 3032 stopPropagation && event.stopPropagation(), 3033 (tag == 2 ? value.b : tag == 3 && value.preventDefault) && event.preventDefault(), 3034 eventNode 3035 ); 3036 var tagger; 3037 var i; 3038 while (tagger = currentEventNode.j) 3039 { 3040 if (typeof tagger == 'function') 3041 { 3042 message = tagger(message); 3043 } 3044 else 3045 { 3046 for (var i = tagger.length; i--; ) 3047 { 3048 message = tagger[i](message); 3049 } 3050 } 3051 currentEventNode = currentEventNode.p; 3052 } 3053 currentEventNode(message, stopPropagation); // stopPropagation implies isSync 3054 } 3055 3056 callback.q = initialHandler; 3057 3058 return callback; 3059} 3060 3061function _VirtualDom_equalEvents(x, y) 3062{ 3063 return x.$ == y.$ && _Json_equality(x.a, y.a); 3064} 3065 3066 3067 3068// DIFF 3069 3070 3071// TODO: Should we do patches like in iOS? 3072// 3073// type Patch 3074// = At Int Patch 3075// | Batch (List Patch) 3076// | Change ... 3077// 3078// How could it not be better? 3079// 3080function _VirtualDom_diff(x, y) 3081{ 3082 var patches = []; 3083 _VirtualDom_diffHelp(x, y, patches, 0); 3084 return patches; 3085} 3086 3087
3088function _VirtualDom_pushPatch(patches, type, index, data) 3089{ 3090 var patch = { 3091 $: type, 3092 r: index, 3093 s: data, 3094 t: undefined, 3095 u: undefined 3096 }; 3097 patches.push(patch); 3098 return patch; 3099} 3100 3101 3102function _VirtualDom_diffHelp(x, y, patches, index) 3103{ 3104 if (x === y) 3105 { 3106 return; 3107 } 3108 3109 var xType = x.$; 3110 var yType = y.$; 3111 3112 // Bail if you run into different types of nodes. Implies that the 3113 // structure has changed significantly and it's not worth a diff. 3114 if (xType !== yType) 3115 { 3116 if (xType === 1 && yType === 2) 3117 { 3118 y = _VirtualDom_dekey(y); 3119 yType = 1; 3120 } 3121 else 3122 { 3123 _VirtualDom_pushPatch(patches, 0, index, y); 3124 return; 3125 } 3126 } 3127 3128 // Now we know that both nodes are the same $. 3129 switch (yType) 3130 { 3131 case 5: 3132 var xRefs = x.l; 3133 var yRefs = y.l; 3134 var i = xRefs.length; 3135 var same = i === yRefs.length; 3136 while (same && i--) 3137 { 3138 same = xRefs[i] === yRefs[i]; 3139 } 3140 if (same) 3141 { 3142 y.k = x.k; 3143 return; 3144 } 3145 y.k = y.m(); 3146 var subPatches = []; 3147 _VirtualDom_diffHelp(x.k, y.k, subPatches, 0); 3148 subPatches.length > 0 && _VirtualDom_pushPatch(patches, 1, index, subPatches); 3149 return; 3150 3151 case 4: 3152 // gather nested taggers 3153 var xTaggers = x.j; 3154 var yTaggers = y.j; 3155 var nesting = false; 3156 3157 var xSubNode = x.k; 3158 while (xSubNode.$ === 4) 3159 { 3160 nesting = true; 3161 3162 typeof xTaggers !== 'object' 3163 ? xTaggers = [xTaggers, xSubNode.j] 3164 : xTaggers.push(xSubNode.j); 3165 3166 xSubNode = xSubNode.k; 3167 } 3168 3169 var ySubNode = y.k; 3170 while (ySubNode.$ === 4) 3171 { 3172 nesting = true; 3173 3174 typeof yTaggers !== 'object' 3175 ? yTaggers = [yTaggers, ySubNode.j] 3176 : yTaggers.push(ySubNode.j); 3177 3178 ySubNode = ySubNode.k; 3179 } 3180 3181 // Just bail if different numbers of taggers. This implies the 3182 // structure of the virtual DOM has changed. 3183 if (nesting && xTaggers.length !== yTaggers.length) 3184 { 3185 _VirtualDom_pushPatch(patches, 0, index, y); 3186 return; 3187 } 3188 3189 // check if taggers are "the same" 3190 if (nesting ? !_VirtualDom_pairwiseRefEqual(xTaggers, yTaggers) : xTaggers !== yTaggers) 3191 { 3192 _VirtualDom_pushPatch(patches, 2, index, yTaggers); 3193 } 3194 3195 // diff everything below the taggers 3196 _VirtualDom_diffHelp(xSubNode, ySubNode, patches, index + 1); 3197 return; 3198 3199 case 0: 3200 if (x.a !== y.a) 3201 { 3202 _VirtualDom_pushPatch(patches, 3, index, y.a); 3203 } 3204 return; 3205 3206 case 1: 3207 _VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKids); 3208 return; 3209 3210 case 2: 3211 _VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKeyedKids); 3212 return; 3213 3214 case 3: 3215 if (x.h !== y.h) 3216 { 3217 _VirtualDom_pushPatch(patches, 0, index, y); 3218 return; 3219 } 3220 3221 var factsDiff = _VirtualDom_diffFacts(x.d, y.d); 3222 factsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff); 3223 3224 var patch = y.i(x.g, y.g); 3225 patch && _VirtualDom_pushPatch(patches, 5, index, patch); 3226 3227 return; 3228 } 3229} 3230 3231// assumes the incoming arrays are the same length 3232function _VirtualDom_pairwiseRefEqual(as, bs) 3233{ 3234 for (var i = 0; i < as.length; i++) 3235 { 3236 if (as[i] !== bs[i]) 3237 { 3238 return false; 3239 } 3240 } 3241 3242 return true; 3243} 3244 3245function _VirtualDom_diffNodes(x, y, patches, index, diffKids) 3246{ 3247 // Bail if obvious indicators have changed. Implies more serious 3248 // structural changes such that it's not worth it to diff. 3249 if (x.c !== y.c || x.f !== y.f) 3250 { 3251 _VirtualDom_pushPatch(patches, 0, index, y); 3252 return; 3253 } 3254 3255 var factsDiff = _VirtualDom_diffFacts(x.d, y.d); 3256 factsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff); 3257 3258 diffKids(x, y, patches, index); 3259} 3260 3261 3262 3263// DIFF FACTS 3264 3265 3266// TODO Instead of creating a new diff object, it's possible to just test if 3267// there *is* a diff. During the actual patch, do the diff again and make the 3268// modifications directly. This way, there's no new allocations. Worth it? 3269function _VirtualDom_diffFacts(x, y, category) 3270{ 3271 var diff; 3272 3273 // look for changes and removals 3274 for (var xKey in x) 3275 { 3276 if (xKey === 'a1' || xKey === 'a0' || xKey === 'a3' || xKey === 'a4') 3277 { 3278 var subDiff = _VirtualDom_diffFacts(x[xKey], y[xKey] || {}, xKey); 3279 if (subDiff) 3280 { 3281 diff = diff || {}; 3282 diff[xKey] = subDiff; 3283 } 3284 continue; 3285 } 3286 3287 // remove if not in the new facts 3288 if (!(xKey in y)) 3289 { 3290 diff = diff || {}; 3291 diff[xKey] = 3292 !category 3293 ? (typeof x[xKey] === 'string' ? '' : null) 3294 : 3295 (category === 'a1') 3296 ? '' 3297 : 3298 (category === 'a0' || category === 'a3') 3299 ? undefined 3300 : 3301 { f: x[xKey].f, o: undefined }; 3302 3303 continue; 3304 } 3305 3306 var xValue = x[xKey]; 3307 var yValue = y[xKey]; 3308 3309 // reference equal, so don't worry about it 3310 if (xValue === yValue && xKey !== 'value' && xKey !== 'checked' 3311 || category === 'a0' && _VirtualDom_equalEvents(xValue, yValue)) 3312 {
3313 continue; 3314 } 3315 3316 diff = diff || {}; 3317 diff[xKey] = yValue; 3318 } 3319 3320 // add new stuff 3321 for (var yKey in y) 3322 { 3323 if (!(yKey in x)) 3324 { 3325 diff = diff || {}; 3326 diff[yKey] = y[yKey]; 3327 } 3328 } 3329 3330 return diff; 3331} 3332 3333 3334 3335// DIFF KIDS 3336 3337 3338function _VirtualDom_diffKids(xParent, yParent, patches, index) 3339{ 3340 var xKids = xParent.e; 3341 var yKids = yParent.e; 3342 3343 var xLen = xKids.length; 3344 var yLen = yKids.length; 3345 3346 // FIGURE OUT IF THERE ARE INSERTS OR REMOVALS 3347 3348 if (xLen > yLen) 3349 { 3350 _VirtualDom_pushPatch(patches, 6, index, { 3351 v: yLen, 3352 i: xLen - yLen 3353 }); 3354 } 3355 else if (xLen < yLen) 3356 { 3357 _VirtualDom_pushPatch(patches, 7, index, { 3358 v: xLen, 3359 e: yKids 3360 }); 3361 } 3362 3363 // PAIRWISE DIFF EVERYTHING ELSE 3364 3365 for (var minLen = xLen < yLen ? xLen : yLen, i = 0; i < minLen; i++) 3366 { 3367 var xKid = xKids[i]; 3368 _VirtualDom_diffHelp(xKid, yKids[i], patches, ++index); 3369 index += xKid.b || 0; 3370 } 3371} 3372 3373 3374 3375// KEYED DIFF 3376 3377 3378function _VirtualDom_diffKeyedKids(xParent, yParent, patches, rootIndex) 3379{ 3380 var localPatches = []; 3381 3382 var changes = {}; // Dict String Entry 3383 var inserts = []; // Array { index : Int, entry : Entry } 3384 // type Entry = { tag : String, vnode : VNode, index : Int, data : _ } 3385 3386 var xKids = xParent.e; 3387 var yKids = yParent.e; 3388 var xLen = xKids.length; 3389 var yLen = yKids.length; 3390 var xIndex = 0; 3391 var yIndex = 0; 3392 3393 var index = rootIndex; 3394 3395 while (xIndex < xLen && yIndex < yLen) 3396 { 3397 var x = xKids[xIndex]; 3398 var y = yKids[yIndex]; 3399 3400 var xKey = x.a; 3401 var yKey = y.a; 3402 var xNode = x.b; 3403 var yNode = y.b; 3404 3405 var newMatch = undefined; 3406 var oldMatch = undefined; 3407 3408 // check if keys match 3409 3410 if (xKey === yKey) 3411 { 3412 index++; 3413 _VirtualDom_diffHelp(xNode, yNode, localPatches, index); 3414 index += xNode.b || 0; 3415 3416 xIndex++; 3417 yIndex++; 3418 continue; 3419 } 3420 3421 // look ahead 1 to detect insertions and removals. 3422 3423 var xNext = xKids[xIndex + 1]; 3424 var yNext = yKids[yIndex + 1]; 3425 3426 if (xNext) 3427 { 3428 var xNextKey = xNext.a; 3429 var xNextNode = xNext.b; 3430 oldMatch = yKey === xNextKey; 3431 } 3432 3433 if (yNext) 3434 { 3435 var yNextKey = yNext.a; 3436 var yNextNode = yNext.b; 3437 newMatch = xKey === yNextKey; 3438 } 3439 3440 3441 // swap x and y 3442 if (newMatch && oldMatch) 3443 { 3444 index++; 3445 _VirtualDom_diffHelp(xNode, yNextNode, localPatches, index); 3446 _VirtualDom_insertNode(changes, localPatches, xKey, yNode, yIndex, inserts); 3447 index += xNode.b || 0; 3448 3449 index++; 3450 _VirtualDom_removeNode(changes, localPatches, xKey, xNextNode, index); 3451 index += xNextNode.b || 0; 3452 3453 xIndex += 2; 3454 yIndex += 2; 3455 continue; 3456 } 3457 3458 // insert y 3459 if (newMatch) 3460 { 3461 index++; 3462 _VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts); 3463 _VirtualDom_diffHelp(xNode, yNextNode, localPatches, index); 3464 index += xNode.b || 0; 3465 3466 xIndex += 1; 3467 yIndex += 2; 3468 continue; 3469 } 3470 3471 // remove x 3472 if (oldMatch) 3473 { 3474 index++; 3475 _VirtualDom_removeNode(changes, localPatches, xKey, xNode, index); 3476 index += xNode.b || 0; 3477 3478 index++; 3479 _VirtualDom_diffHelp(xNextNode, yNode, localPatches, index); 3480 index += xNextNode.b || 0; 3481 3482 xIndex += 2; 3483 yIndex += 1; 3484 continue; 3485 } 3486 3487 // remove x, insert y 3488 if (xNext && xNextKey === yNextKey) 3489 { 3490 index++; 3491 _VirtualDom_removeNode(changes, localPatches, xKey, xNode, index); 3492 _VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts); 3493 index += xNode.b || 0; 3494 3495 index++; 3496 _VirtualDom_diffHelp(xNextNode, yNextNode, localPatches, index); 3497 index += xNextNode.b || 0; 3498 3499 xIndex += 2; 3500 yIndex += 2; 3501 continue; 3502 } 3503 3504 break; 3505 } 3506 3507 // eat up any remaining nodes with removeNode and insertNode 3508 3509 while (xIndex < xLen) 3510 { 3511 index++; 3512 var x = xKids[xIndex]; 3513 var xNode = x.b; 3514 _VirtualDom_removeNode(changes, localPatches, x.a, xNode, index); 3515 index += xNode.b || 0; 3516 xIndex++; 3517 } 3518 3519 while (yIndex < yLen) 3520 { 3521 var endInserts = endInserts || []; 3522 var y = yKids[yIndex]; 3523 _VirtualDom_insertNode(changes, localPatches, y.a, y.b, undefined, endInserts); 3524 yIndex++; 3525 } 3526 3527 if (localPatches.length > 0 || inserts.length > 0 || endInserts) 3528 { 3529 _VirtualDom_pushPatch(patches, 8, rootIndex, { 3530 w: localPatches, 3531 x: inserts, 3532 y: endInserts 3533 }); 3534 } 3535} 3536 3537 3538 3539// CHANGES FROM KEYED DIFF 3540 3541 3542var _VirtualDom_POSTFIX = '_elmW6BL'; 3543 3544 3545function _VirtualDom_insertNode(changes, localPatches, key, vnode, yIndex, inserts) 3546{ 3547 var entry = changes[key]; 3548 3549 // never seen this key before
3550 if (!entry) 3551 { 3552 entry = { 3553 c: 0, 3554 z: vnode, 3555 r: yIndex, 3556 s: undefined 3557 }; 3558 3559 inserts.push({ r: yIndex, A: entry }); 3560 changes[key] = entry; 3561 3562 return; 3563 } 3564 3565 // this key was removed earlier, a match! 3566 if (entry.c === 1) 3567 { 3568 inserts.push({ r: yIndex, A: entry }); 3569 3570 entry.c = 2; 3571 var subPatches = []; 3572 _VirtualDom_diffHelp(entry.z, vnode, subPatches, entry.r); 3573 entry.r = yIndex; 3574 entry.s.s = { 3575 w: subPatches, 3576 A: entry 3577 }; 3578 3579 return; 3580 } 3581 3582 // this key has already been inserted or moved, a duplicate! 3583 _VirtualDom_insertNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, yIndex, inserts); 3584} 3585 3586 3587function _VirtualDom_removeNode(changes, localPatches, key, vnode, index) 3588{ 3589 var entry = changes[key]; 3590 3591 // never seen this key before 3592 if (!entry) 3593 { 3594 var patch = _VirtualDom_pushPatch(localPatches, 9, index, undefined); 3595 3596 changes[key] = { 3597 c: 1, 3598 z: vnode, 3599 r: index, 3600 s: patch 3601 }; 3602 3603 return; 3604 } 3605 3606 // this key was inserted earlier, a match! 3607 if (entry.c === 0) 3608 { 3609 entry.c = 2; 3610 var subPatches = []; 3611 _VirtualDom_diffHelp(vnode, entry.z, subPatches, index); 3612 3613 _VirtualDom_pushPatch(localPatches, 9, index, { 3614 w: subPatches, 3615 A: entry 3616 }); 3617 3618 return; 3619 } 3620 3621 // this key has already been removed or moved, a duplicate! 3622 _VirtualDom_removeNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, index); 3623} 3624 3625 3626 3627// ADD DOM NODES 3628// 3629// Each DOM node has an "index" assigned in order of traversal. It is important 3630// to minimize our crawl over the actual DOM, so these indexes (along with the 3631// descendantsCount of virtual nodes) let us skip touching entire subtrees of 3632// the DOM if we know there are no patches there. 3633 3634 3635function _VirtualDom_addDomNodes(domNode, vNode, patches, eventNode) 3636{ 3637 _VirtualDom_addDomNodesHelp(domNode, vNode, patches, 0, 0, vNode.b, eventNode); 3638} 3639 3640 3641// assumes `patches` is non-empty and indexes increase monotonically. 3642function _VirtualDom_addDomNodesHelp(domNode, vNode, patches, i, low, high, eventNode) 3643{ 3644 var patch = patches[i]; 3645 var index = patch.r; 3646 3647 while (index === low) 3648 { 3649 var patchType = patch.$; 3650 3651 if (patchType === 1) 3652 { 3653 _VirtualDom_addDomNodes(domNode, vNode.k, patch.s, eventNode); 3654 } 3655 else if (patchType === 8) 3656 { 3657 patch.t = domNode; 3658 patch.u = eventNode; 3659 3660 var subPatches = patch.s.w; 3661 if (subPatches.length > 0) 3662 { 3663 _VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode); 3664 } 3665 } 3666 else if (patchType === 9) 3667 { 3668 patch.t = domNode; 3669 patch.u = eventNode; 3670 3671 var data = patch.s; 3672 if (data) 3673 { 3674 data.A.s = domNode; 3675 var subPatches = data.w; 3676 if (subPatches.length > 0) 3677 { 3678 _VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode); 3679 } 3680 } 3681 } 3682 else 3683 { 3684 patch.t = domNode; 3685 patch.u = eventNode; 3686 } 3687 3688 i++; 3689 3690 if (!(patch = patches[i]) || (index = patch.r) > high) 3691 { 3692 return i; 3693 } 3694 } 3695 3696 var tag = vNode.$; 3697 3698 if (tag === 4) 3699 { 3700 var subNode = vNode.k; 3701 3702 while (subNode.$ === 4) 3703 { 3704 subNode = subNode.k; 3705 } 3706 3707 return _VirtualDom_addDomNodesHelp(domNode, subNode, patches, i, low + 1, high, domNode.elm_event_node_ref); 3708 } 3709 3710 // tag must be 1 or 2 at this point 3711 3712 var vKids = vNode.e; 3713 var childNodes = domNode.childNodes; 3714 for (var j = 0; j < vKids.length; j++) 3715 { 3716 low++; 3717 var vKid = tag === 1 ? vKids[j] : vKids[j].b; 3718 var nextLow = low + (vKid.b || 0); 3719 if (low <= index && index <= nextLow) 3720 { 3721 i = _VirtualDom_addDomNodesHelp(childNodes[j], vKid, patches, i, low, nextLow, eventNode); 3722 if (!(patch = patches[i]) || (index = patch.r) > high) 3723 { 3724 return i; 3725 } 3726 } 3727 low = nextLow; 3728 } 3729 return i; 3730} 3731 3732 3733 3734// APPLY PATCHES 3735 3736 3737function _VirtualDom_applyPatches(rootDomNode, oldVirtualNode, patches, eventNode) 3738{ 3739 if (patches.length === 0) 3740 { 3741 return rootDomNode; 3742 } 3743 3744 _VirtualDom_addDomNodes(rootDomNode, oldVirtualNode, patches, eventNode); 3745 return _VirtualDom_applyPatchesHelp(rootDomNode, patches); 3746} 3747 3748function _VirtualDom_applyPatchesHelp(rootDomNode, patches) 3749{ 3750 for (var i = 0; i < patches.length; i++) 3751 { 3752 var patch = patches[i]; 3753 var localDomNode = patch.t 3754 var newNode = _VirtualDom_applyPatch(localDomNode, patch); 3755 if (localDomNode === rootDomNode) 3756 { 3757 rootDomNode = newNode; 3758 } 3759 } 3760 return rootDomNode; 3761} 3762 3763function _VirtualDom_applyPatch(domNode, patch) 3764{ 3765 switch (patch.$) 3766 { 3767 case 0: 3768 return _VirtualDom_applyPatchRedraw(domNode, patch.s, patch.u); 3769 3770 case 4: 3771 _VirtualDom_applyFacts(domNode, patch.u, patch.s); 3772 return domNode; 3773 3774 case 3:
3775 domNode.replaceData(0, domNode.length, patch.s); 3776 return domNode; 3777 3778 case 1: 3779 return _VirtualDom_applyPatchesHelp(domNode, patch.s); 3780 3781 case 2: 3782 if (domNode.elm_event_node_ref) 3783 { 3784 domNode.elm_event_node_ref.j = patch.s; 3785 } 3786 else 3787 { 3788 domNode.elm_event_node_ref = { j: patch.s, p: patch.u }; 3789 } 3790 return domNode; 3791 3792 case 6: 3793 var data = patch.s; 3794 for (var i = 0; i < data.i; i++) 3795 { 3796 domNode.removeChild(domNode.childNodes[data.v]); 3797 } 3798 return domNode; 3799 3800 case 7: 3801 var data = patch.s; 3802 var kids = data.e; 3803 var i = data.v; 3804 var theEnd = domNode.childNodes[i]; 3805 for (; i < kids.length; i++) 3806 { 3807 domNode.insertBefore(_VirtualDom_render(kids[i], patch.u), theEnd); 3808 } 3809 return domNode; 3810 3811 case 9: 3812 var data = patch.s; 3813 if (!data) 3814 { 3815 domNode.parentNode.removeChild(domNode); 3816 return domNode; 3817 } 3818 var entry = data.A; 3819 if (typeof entry.r !== 'undefined') 3820 { 3821 domNode.parentNode.removeChild(domNode); 3822 } 3823 entry.s = _VirtualDom_applyPatchesHelp(domNode, data.w); 3824 return domNode; 3825 3826 case 8: 3827 return _VirtualDom_applyPatchReorder(domNode, patch); 3828 3829 case 5: 3830 return patch.s(domNode); 3831 3832 default: 3833 _Debug_crash(10); // 'Ran into an unknown patch!' 3834 } 3835} 3836 3837 3838function _VirtualDom_applyPatchRedraw(domNode, vNode, eventNode) 3839{ 3840 var parentNode = domNode.parentNode; 3841 var newNode = _VirtualDom_render(vNode, eventNode); 3842 3843 if (!newNode.elm_event_node_ref) 3844 { 3845 newNode.elm_event_node_ref = domNode.elm_event_node_ref; 3846 } 3847 3848 if (parentNode && newNode !== domNode) 3849 { 3850 parentNode.replaceChild(newNode, domNode); 3851 } 3852 return newNode; 3853} 3854 3855 3856function _VirtualDom_applyPatchReorder(domNode, patch) 3857{ 3858 var data = patch.s; 3859 3860 // remove end inserts 3861 var frag = _VirtualDom_applyPatchReorderEndInsertsHelp(data.y, patch); 3862 3863 // removals 3864 domNode = _VirtualDom_applyPatchesHelp(domNode, data.w); 3865 3866 // inserts 3867 var inserts = data.x; 3868 for (var i = 0; i < inserts.length; i++) 3869 { 3870 var insert = inserts[i]; 3871 var entry = insert.A; 3872 var node = entry.c === 2 3873 ? entry.s 3874 : _VirtualDom_render(entry.z, patch.u); 3875 domNode.insertBefore(node, domNode.childNodes[insert.r]); 3876 } 3877 3878 // add end inserts 3879 if (frag) 3880 { 3881 _VirtualDom_appendChild(domNode, frag); 3882 } 3883 3884 return domNode; 3885} 3886 3887 3888function _VirtualDom_applyPatchReorderEndInsertsHelp(endInserts, patch) 3889{ 3890 if (!endInserts) 3891 { 3892 return; 3893 } 3894 3895 var frag = _VirtualDom_doc.createDocumentFragment(); 3896 for (var i = 0; i < endInserts.length; i++) 3897 { 3898 var insert = endInserts[i]; 3899 var entry = insert.A; 3900 _VirtualDom_appendChild(frag, entry.c === 2 3901 ? entry.s 3902 : _VirtualDom_render(entry.z, patch.u) 3903 ); 3904 } 3905 return frag; 3906} 3907 3908 3909function _VirtualDom_virtualize(node) 3910{ 3911 // TEXT NODES 3912 3913 if (node.nodeType === 3) 3914 { 3915 return _VirtualDom_text(node.textContent); 3916 } 3917 3918 3919 // WEIRD NODES 3920 3921 if (node.nodeType !== 1) 3922 { 3923 return _VirtualDom_text(''); 3924 } 3925 3926 3927 // ELEMENT NODES 3928 3929 var attrList = _List_Nil; 3930 var attrs = node.attributes; 3931 for (var i = attrs.length; i--; ) 3932 { 3933 var attr = attrs[i]; 3934 var name = attr.name; 3935 var value = attr.value; 3936 attrList = _List_Cons( A2(_VirtualDom_attribute, name, value), attrList ); 3937 } 3938 3939 var tag = node.tagName.toLowerCase(); 3940 var kidList = _List_Nil; 3941 var kids = node.childNodes; 3942 3943 for (var i = kids.length; i--; ) 3944 { 3945 kidList = _List_Cons(_VirtualDom_virtualize(kids[i]), kidList); 3946 } 3947 return A3(_VirtualDom_node, tag, attrList, kidList); 3948} 3949 3950function _VirtualDom_dekey(keyedNode) 3951{ 3952 var keyedKids = keyedNode.e; 3953 var len = keyedKids.length; 3954 var kids = new Array(len); 3955 for (var i = 0; i < len; i++) 3956 { 3957 kids[i] = keyedKids[i].b; 3958 } 3959 3960 return { 3961 $: 1, 3962 c: keyedNode.c, 3963 d: keyedNode.d, 3964 e: kids, 3965 f: keyedNode.f, 3966 b: keyedNode.b 3967 }; 3968} 3969 3970 3971 3972 3973// ELEMENT 3974 3975 3976var _Debugger_element; 3977 3978var _Browser_element = _Debugger_element || F4(function(impl, flagDecoder, debugMetadata, args) 3979{ 3980 return _Platform_initialize( 3981 flagDecoder, 3982 args, 3983 impl.init, 3984 impl.update, 3985 impl.subscriptions, 3986 function(sendToApp, initialModel) { 3987 var view = impl.view; 3988 /**_UNUSED/ 3989 var domNode = args['node']; 3990 //*/ 3991 /**/ 3992 var domNode = args && args['node'] ? args['node'] : _Debug_crash(0); 3993 //*/ 3994 var currNode = _VirtualDom_virtualize(domNode); 3995 3996 return _Browser_makeAnimator(initialModel, function(model) 3997 { 3998 var nextNode = view(model); 3999 var patches = _VirtualDom_diff(currNode, nextNode); 4000 domNode = _VirtualDom_applyPatches(domNode, currNode, patches, sendToApp); 4001 currNode = nextNode; 4002 }); 4003 } 4004 ); 4005}); 4006 4007 4008 4009// DOCUMENT 4010 4011 4012var _Debugger_document; 4013 4014var _Browser_document = _Debugger_document || F4(function(impl, flagDecoder, debugMetadata, args) 4015{ 4016 return _Platform_initialize( 4017 flagDecoder, 4018 args, 4019 impl.init, 4020 impl.update, 4021 impl.subscriptions, 4022 function(sendToApp, initialModel) { 4023 var divertHrefToApp = impl.setup && impl.setup(sendToApp) 4024 var view = impl.view; 4025 var title = _VirtualDom_doc.title; 4026 var bodyNode = _VirtualDom_doc.body; 4027 var currNode = _VirtualDom_virtualize(bodyNode); 4028 return _Browser_makeAnimator(initialModel, function(model) 4029 { 4030 _VirtualDom_divertHrefToApp = divertHrefToApp; 4031 var doc = view(model); 4032 var nextNode = _VirtualDom_node('body')(_List_Nil)(doc.body); 4033 var patches = _VirtualDom_diff(currNode, nextNode); 4034 bodyNode = _VirtualDom_applyPatches(bodyNode, currNode, patches, sendToApp); 4035 currNode = nextNode; 4036 _VirtualDom_divertHrefToApp = 0; 4037 (title !== doc.title) && (_VirtualDom_doc.title = title = doc.title); 4038 }); 4039 } 4040 ); 4041}); 4042 4043 4044 4045// ANIMATION 4046 4047 4048var _Browser_cancelAnimationFrame = 4049 typeof cancelAnimationFrame !== 'undefined' 4050 ? cancelAnimationFrame 4051 : function(id) { clearTimeout(id); }; 4052 4053var _Browser_requestAnimationFrame = 4054 typeof requestAnimationFrame !== 'undefined' 4055 ? requestAnimationFrame 4056 : function(callback) { return setTimeout(callback, 1000 / 60); }; 4057 4058 4059function _Browser_makeAnimator(model, draw) 4060{ 4061 draw(model); 4062 4063 var state = 0; 4064 4065 function updateIfNeeded() 4066 { 4067 state = state === 1 4068 ? 0 4069 : ( _Browser_requestAnimationFrame(updateIfNeeded), draw(model), 1 ); 4070 } 4071 4072 return function(nextModel, isSync) 4073 { 4074 model = nextModel; 4075 4076 isSync 4077 ? ( draw(model), 4078 state === 2 && (state = 1) 4079 ) 4080 : ( state === 0 && _Browser_requestAnimationFrame(updateIfNeeded), 4081 state = 2 4082 ); 4083 }; 4084} 4085 4086 4087 4088// APPLICATION 4089 4090 4091function _Browser_application(impl) 4092{ 4093 var onUrlChange = impl.onUrlChange; 4094 var onUrlRequest = impl.onUrlRequest; 4095 var key = function() { key.a(onUrlChange(_Browser_getUrl())); }; 4096 4097 return _Browser_document({ 4098 setup: function(sendToApp) 4099 { 4100 key.a = sendToApp; 4101 _Browser_window.addEventListener('popstate', key); 4102 _Browser_window.navigator.userAgent.indexOf('Trident') < 0 || _Browser_window.addEventListener('hashchange', key); 4103 4104 return F2(function(domNode, event) 4105 { 4106 if (!event.ctrlKey && !event.metaKey && !event.shiftKey && event.button < 1 && !domNode.target && !domNode.hasAttribute('download')) 4107 { 4108 event.preventDefault(); 4109 var href = domNode.href; 4110 var curr = _Browser_getUrl(); 4111 var next = elm$url$Url$fromString(href).a; 4112 sendToApp(onUrlRequest( 4113 (next 4114 && curr.protocol === next.protocol 4115 && curr.host === next.host 4116 && curr.port_.a === next.port_.a 4117 ) 4118 ? elm$browser$Browser$Internal(next) 4119 : elm$browser$Browser$External(href) 4120 )); 4121 } 4122 }); 4123 }, 4124 init: function(flags) 4125 { 4126 return A3(impl.init, flags, _Browser_getUrl(), key); 4127 }, 4128 view: impl.view, 4129 update: impl.update, 4130 subscriptions: impl.subscriptions 4131 }); 4132} 4133 4134function _Browser_getUrl() 4135{ 4136 return elm$url$Url$fromString(_VirtualDom_doc.location.href).a || _Debug_crash(1); 4137} 4138 4139var _Browser_go = F2(function(key, n) 4140{ 4141 return A2(elm$core$Task$perform, elm$core$Basics$never, _Scheduler_binding(function() { 4142 n && history.go(n); 4143 key(); 4144 })); 4145}); 4146 4147var _Browser_pushUrl = F2(function(key, url) 4148{ 4149 return A2(elm$core$Task$perform, elm$core$Basics$never, _Scheduler_binding(function() { 4150 history.pushState({}, '', url); 4151 key(); 4152 })); 4153}); 4154 4155var _Browser_replaceUrl = F2(function(key, url) 4156{ 4157 return A2(elm$core$Task$perform, elm$core$Basics$never, _Scheduler_binding(function() { 4158 history.replaceState({}, '', url); 4159 key(); 4160 })); 4161}); 4162 4163 4164 4165// GLOBAL EVENTS 4166 4167 4168var _Browser_fakeNode = { addEventListener: function() {}, removeEventListener: function() {} }; 4169var _Browser_doc = typeof document !== 'undefined' ? document : _Browser_fakeNode; 4170var _Browser_window = typeof window !== 'undefined' ? window : _Browser_fakeNode; 4171 4172var _Browser_on = F3(function(node, eventName, sendToSelf) 4173{ 4174 return _Scheduler_spawn(_Scheduler_binding(function(callback) 4175 { 4176 function handler(event) { _Scheduler_rawSpawn(sendToSelf(event)); } 4177 node.addEventListener(eventName, handler, _VirtualDom_passiveSupported && { passive: true }); 4178 return function() { node.removeEventListener(eventName, handler); }; 4179 })); 4180}); 4181 4182var _Browser_decodeEvent = F2(function(decoder, event) 4183{ 4184 var result = _Json_runHelp(decoder, event); 4185 return elm$core$Result$isOk(result) ? elm$core$Maybe$Just(result.a) : elm$core$Maybe$Nothing; 4186}); 4187 4188 4189 4190// PAGE VISIBILITY 4191 4192 4193function _Browser_visibilityInfo() 4194{ 4195 return (typeof _VirtualDom_doc.hidden !== 'undefined') 4196 ? { hidden: 'hidden', change: 'visibilitychange' } 4197 : 4198 (typeof _VirtualDom_doc.mozHidden !== 'undefined') 4199 ? { hidden: 'mozHidden', change: 'mozvisibilitychange' } 4200 : 4201 (typeof _VirtualDom_doc.msHidden !== 'undefined') 4202 ? { hidden: 'msHidden', change: 'msvisibilitychange' } 4203 : 4204 (typeof _VirtualDom_doc.webkitHidden !== 'undefined') 4205 ? { hidden: 'webkitHidden', change: 'webkitvisibilitychange' } 4206 : { hidden: 'hidden', change: 'visibilitychange' }; 4207} 4208 4209 4210 4211// ANIMATION FRAMES 4212 4213 4214function _Browser_rAF() 4215{ 4216 return _Scheduler_binding(function(callback) 4217 { 4218 var id = _Browser_requestAnimationFrame(function() {
4219 callback(_Scheduler_succeed(Date.now())); 4220 }); 4221 4222 return function() { 4223 _Browser_cancelAnimationFrame(id); 4224 }; 4225 }); 4226} 4227 4228 4229function _Browser_now() 4230{ 4231 return _Scheduler_binding(function(callback) 4232 { 4233 callback(_Scheduler_succeed(Date.now())); 4234 }); 4235} 4236 4237 4238 4239// DOM STUFF 4240 4241 4242function _Browser_withNode(id, doStuff) 4243{ 4244 return _Scheduler_binding(function(callback) 4245 { 4246 _Browser_requestAnimationFrame(function() { 4247 var node = document.getElementById(id); 4248 callback(node 4249 ? _Scheduler_succeed(doStuff(node)) 4250 : _Scheduler_fail(elm$browser$Browser$Dom$NotFound(id)) 4251 ); 4252 }); 4253 }); 4254} 4255 4256 4257function _Browser_withWindow(doStuff) 4258{ 4259 return _Scheduler_binding(function(callback) 4260 { 4261 _Browser_requestAnimationFrame(function() { 4262 callback(_Scheduler_succeed(doStuff())); 4263 }); 4264 }); 4265} 4266 4267 4268// FOCUS and BLUR 4269 4270 4271var _Browser_call = F2(function(functionName, id) 4272{ 4273 return _Browser_withNode(id, function(node) { 4274 node[functionName](); 4275 return _Utils_Tuple0; 4276 }); 4277}); 4278 4279 4280 4281// WINDOW VIEWPORT 4282 4283 4284function _Browser_getViewport() 4285{ 4286 return { 4287 scene: _Browser_getScene(), 4288 viewport: { 4289 x: _Browser_window.pageXOffset, 4290 y: _Browser_window.pageYOffset, 4291 width: _Browser_doc.documentElement.clientWidth, 4292 height: _Browser_doc.documentElement.clientHeight 4293 } 4294 }; 4295} 4296 4297function _Browser_getScene() 4298{ 4299 var body = _Browser_doc.body; 4300 var elem = _Browser_doc.documentElement; 4301 return { 4302 width: Math.max(body.scrollWidth, body.offsetWidth, elem.scrollWidth, elem.offsetWidth, elem.clientWidth), 4303 height: Math.max(body.scrollHeight, body.offsetHeight, elem.scrollHeight, elem.offsetHeight, elem.clientHeight) 4304 }; 4305} 4306 4307var _Browser_setViewport = F2(function(x, y) 4308{ 4309 return _Browser_withWindow(function() 4310 { 4311 _Browser_window.scroll(x, y); 4312 return _Utils_Tuple0; 4313 }); 4314}); 4315 4316 4317 4318// ELEMENT VIEWPORT 4319 4320 4321function _Browser_getViewportOf(id) 4322{ 4323 return _Browser_withNode(id, function(node) 4324 { 4325 return { 4326 scene: { 4327 width: node.scrollWidth, 4328 height: node.scrollHeight 4329 }, 4330 viewport: { 4331 x: node.scrollLeft, 4332 y: node.scrollTop, 4333 width: node.clientWidth, 4334 height: node.clientHeight 4335 } 4336 }; 4337 }); 4338} 4339 4340 4341var _Browser_setViewportOf = F3(function(id, x, y) 4342{ 4343 return _Browser_withNode(id, function(node) 4344 { 4345 node.scrollLeft = x; 4346 node.scrollTop = y; 4347 return _Utils_Tuple0; 4348 }); 4349}); 4350 4351 4352 4353// ELEMENT 4354 4355 4356function _Browser_getElement(id) 4357{ 4358 return _Browser_withNode(id, function(node) 4359 { 4360 var rect = node.getBoundingClientRect(); 4361 var x = _Browser_window.pageXOffset; 4362 var y = _Browser_window.pageYOffset; 4363 return { 4364 scene: _Browser_getScene(), 4365 viewport: { 4366 x: x, 4367 y: y, 4368 width: _Browser_doc.documentElement.clientWidth, 4369 height: _Browser_doc.documentElement.clientHeight 4370 }, 4371 element: { 4372 x: x + rect.left, 4373 y: y + rect.top, 4374 width: rect.width, 4375 height: rect.height 4376 } 4377 }; 4378 }); 4379} 4380 4381 4382 4383// LOAD and RELOAD 4384 4385 4386function _Browser_reload(skipCache) 4387{ 4388 return A2(elm$core$Task$perform, elm$core$Basics$never, _Scheduler_binding(function(callback) 4389 { 4390 _VirtualDom_doc.location.reload(skipCache); 4391 })); 4392} 4393 4394function _Browser_load(url) 4395{ 4396 return A2(elm$core$Task$perform, elm$core$Basics$never, _Scheduler_binding(function(callback) 4397 { 4398 try 4399 { 4400 _Browser_window.location = url; 4401 } 4402 catch(err) 4403 { 4404 // Only Firefox can throw a NS_ERROR_MALFORMED_URI exception here. 4405 // Other browsers reload the page, so let's be consistent about that. 4406 _VirtualDom_doc.location.reload(false); 4407 } 4408 })); 4409} 4410 4411 4412 4413 4414// STRINGS 4415 4416 4417var _Parser_isSubString = F5(function(smallString, offset, row, col, bigString) 4418{ 4419 var smallLength = smallString.length; 4420 var isGood = offset + smallLength <= bigString.length; 4421 4422 for (var i = 0; isGood && i < smallLength; ) 4423 { 4424 var code = bigString.charCodeAt(offset); 4425 isGood = 4426 smallString[i++] === bigString[offset++] 4427 && ( 4428 code === 0x000A /* \n */ 4429 ? ( row++, col=1 ) 4430 : ( col++, (code & 0xF800) === 0xD800 ? smallString[i++] === bigString[offset++] : 1 ) 4431 ) 4432 } 4433
4434 return _Utils_Tuple3(isGood ? offset : -1, row, col); 4435}); 4436 4437 4438 4439// CHARS 4440 4441 4442var _Parser_isSubChar = F3(function(predicate, offset, string) 4443{ 4444 return ( 4445 string.length <= offset 4446 ? -1 4447 : 4448 (string.charCodeAt(offset) & 0xF800) === 0xD800 4449 ? (predicate(_Utils_chr(string.substr(offset, 2))) ? offset + 2 : -1) 4450 : 4451 (predicate(_Utils_chr(string[offset])) 4452 ? ((string[offset] === '\n') ? -2 : (offset + 1)) 4453 : -1 4454 ) 4455 ); 4456}); 4457 4458 4459var _Parser_isAsciiCode = F3(function(code, offset, string) 4460{ 4461 return string.charCodeAt(offset) === code; 4462}); 4463 4464 4465 4466// NUMBERS 4467 4468 4469var _Parser_chompBase10 = F2(function(offset, string) 4470{ 4471 for (; offset < string.length; offset++) 4472 { 4473 var code = string.charCodeAt(offset); 4474 if (code < 0x30 || 0x39 < code) 4475 { 4476 return offset; 4477 } 4478 } 4479 return offset; 4480}); 4481 4482 4483var _Parser_consumeBase = F3(function(base, offset, string) 4484{ 4485 for (var total = 0; offset < string.length; offset++) 4486 { 4487 var digit = string.charCodeAt(offset) - 0x30; 4488 if (digit < 0 || base <= digit) break; 4489 total = base * total + digit; 4490 } 4491 return _Utils_Tuple2(offset, total); 4492}); 4493 4494 4495var _Parser_consumeBase16 = F2(function(offset, string) 4496{ 4497 for (var total = 0; offset < string.length; offset++) 4498 { 4499 var code = string.charCodeAt(offset); 4500 if (0x30 <= code && code <= 0x39) 4501 { 4502 total = 16 * total + code - 0x30; 4503 } 4504 else if (0x41 <= code && code <= 0x46) 4505 { 4506 total = 16 * total + code - 55; 4507 } 4508 else if (0x61 <= code && code <= 0x66) 4509 { 4510 total = 16 * total + code - 87; 4511 } 4512 else 4513 { 4514 break; 4515 } 4516 } 4517 return _Utils_Tuple2(offset, total); 4518}); 4519 4520 4521 4522// FIND STRING 4523 4524 4525var _Parser_findSubString = F5(function(smallString, offset, row, col, bigString) 4526{ 4527 var newOffset = bigString.indexOf(smallString, offset); 4528 var target = newOffset < 0 ? bigString.length : newOffset + smallString.length; 4529 4530 while (offset < target) 4531 { 4532 var code = bigString.charCodeAt(offset++); 4533 code === 0x000A /* \n */ 4534 ? ( col=1, row++ ) 4535 : ( col++, (code & 0xF800) === 0xD800 && offset++ ) 4536 } 4537 4538 return _Utils_Tuple3(newOffset, row, col); 4539}); 4540 4541 4542// CREATE 4543 4544var _Regex_never = /.^/; 4545 4546var _Regex_fromStringWith = F2(function(options, string) 4547{ 4548 var flags = 'g'; 4549 if (options.multiline) { flags += 'm'; } 4550 if (options.caseInsensitive) { flags += 'i'; } 4551 4552 try 4553 { 4554 return elm$core$Maybe$Just(new RegExp(string, flags)); 4555 } 4556 catch(error) 4557 { 4558 return elm$core$Maybe$Nothing; 4559 } 4560}); 4561 4562 4563// USE 4564 4565var _Regex_contains = F2(function(re, string) 4566{ 4567 return string.match(re) !== null; 4568}); 4569 4570 4571var _Regex_findAtMost = F3(function(n, re, str) 4572{ 4573 var out = []; 4574 var number = 0; 4575 var string = str; 4576 var lastIndex = re.lastIndex; 4577 var prevLastIndex = -1; 4578 var result; 4579 while (number++ < n && (result = re.exec(string))) 4580 { 4581 if (prevLastIndex == re.lastIndex) break; 4582 var i = result.length - 1; 4583 var subs = new Array(i); 4584 while (i > 0) 4585 { 4586 var submatch = result[i]; 4587 subs[--i] = submatch 4588 ? elm$core$Maybe$Just(submatch) 4589 : elm$core$Maybe$Nothing; 4590 } 4591 out.push(A4(elm$regex$Regex$Match, result[0], result.index, number, _List_fromArray(subs))); 4592 prevLastIndex = re.lastIndex; 4593 } 4594 re.lastIndex = lastIndex; 4595 return _List_fromArray(out); 4596}); 4597 4598 4599var _Regex_replaceAtMost = F4(function(n, re, replacer, string) 4600{ 4601 var count = 0; 4602 function jsReplacer(match) 4603 { 4604 if (count++ >= n) 4605 { 4606 return match; 4607 } 4608 var i = arguments.length - 3; 4609 var submatches = new Array(i); 4610 while (i > 0) 4611 { 4612 var submatch = arguments[i]; 4613 submatches[--i] = submatch 4614 ? elm$core$Maybe$Just(submatch) 4615 : elm$core$Maybe$Nothing; 4616 } 4617 return replacer(A4(elm$regex$Regex$Match, match, arguments[arguments.length - 2], count, _List_fromArray(submatches))); 4618 } 4619 return string.replace(re, jsReplacer); 4620}); 4621 4622var _Regex_splitAtMost = F3(function(n, re, str) 4623{ 4624 var string = str; 4625 var out = []; 4626 var start = re.lastIndex; 4627 var restoreLastIndex = re.lastIndex; 4628 while (n--) 4629 { 4630 var result = re.exec(string); 4631 if (!result) break; 4632 out.push(string.slice(start, result.index)); 4633 start = re.lastIndex; 4634 } 4635 out.push(string.slice(start)); 4636 re.lastIndex = restoreLastIndex; 4637 return _List_fromArray(out); 4638}); 4639 4640var _Regex_infinity = Infinity; 4641 4642 4643function _Url_percentEncode(string) 4644{ 4645 return encodeURIComponent(string); 4646} 4647 4648function _Url_percentDecode(string) 4649{ 4650 try 4651 { 4652 return elm$core$Maybe$Just(decodeURIComponent(string)); 4653 } 4654 catch (e) 4655 { 4656 return elm$core$Maybe$Nothing; 4657 } 4658}var dtwrks$elm_book$ElmBook$Internal$Book$BookBuilder = function (a) { 4659 return {$: 'BookBuilder', a: a}; 4660}; 4661var elm$core$Basics$False = {$: 'False'}; 4662var dtwrks$elm_book$ElmBook$Internal$Chapter$defaultOptions = {hiddenTitle: false}; 4663var dtwrks$elm_book$ElmBook$Internal$ComponentOptions$Card = {$: 'Card'}; 4664var dtwrks$elm_book$ElmBook$Internal$ComponentOptions$defaultOptions = {background: '', display: dtwrks$elm_book$ElmBook$Internal$ComponentOptions$Card, fullWidth: false, hiddenLabel: false}; 4665var elm$core$Basics$identity = function (x) { 4666 return x; 4667}; 4668var elm$core$Maybe$Nothing = {$: 'Nothing'}; 4669var elm$core$Basics$EQ = {$: 'EQ'}; 4670var elm$core$Basics$LT = {$: 'LT'}; 4671var elm$core$Elm$JsArray$foldr = _JsArray_foldr; 4672var elm$core$Array$foldr = F3( 4673 function (func, baseCase, _n0) { 4674 var tree = _n0.c; 4675 var tail = _n0.d; 4676 var helper = F2( 4677 function (node, acc) { 4678 if (node.$ === 'SubTree') { 4679 var subTree = node.a; 4680 return A3(elm$core$Elm$JsArray$foldr, helper, acc, subTree); 4681 } else { 4682 var values = node.a; 4683 return A3(elm$core$Elm$JsArray$foldr, func, acc, values); 4684 } 4685 }); 4686 return A3( 4687 elm$core$Elm$JsArray$foldr, 4688 helper, 4689 A3(elm$core$Elm$JsArray$foldr, func, baseCase, tail), 4690 tree); 4691 }); 4692var elm$core$List$cons = _List_cons; 4693var elm$core$Array$toList = function (array) { 4694 return A3(elm$core$Array$foldr, elm$core$List$cons, _List_Nil, array); 4695}; 4696var elm$core$Basics$GT = {$: 'GT'}; 4697var elm$core$Dict$foldr = F3( 4698 function (func, acc, t) { 4699 foldr: 4700 while (true) { 4701 if (t.$ === 'RBEmpty_elm_builtin') { 4702 return acc; 4703 } else { 4704 var key = t.b; 4705 var value = t.c; 4706 var left = t.d; 4707 var right = t.e; 4708 var $temp$func = func, 4709 $temp$acc = A3( 4710 func, 4711 key, 4712 value, 4713 A3(elm$core$Dict$foldr, func, acc, right)), 4714 $temp$t = left; 4715 func = $temp$func; 4716 acc = $temp$acc; 4717 t = $temp$t; 4718 continue foldr; 4719 } 4720 } 4721 }); 4722var elm$core$Dict$toList = function (dict) { 4723 return A3( 4724 elm$core$Dict$foldr, 4725 F3( 4726 function (key, value, list) { 4727 return A2( 4728 elm$core$List$cons, 4729 _Utils_Tuple2(key, value), 4730 list); 4731 }), 4732 _List_Nil, 4733 dict); 4734}; 4735var elm$core$Dict$keys = function (dict) { 4736 return A3( 4737 elm$core$Dict$foldr, 4738 F3( 4739 function (key, value, keyList) {
4740 return A2(elm$core$List$cons, key, keyList); 4741 }), 4742 _List_Nil, 4743 dict); 4744}; 4745var elm$core$Set$toList = function (_n0) { 4746 var dict = _n0.a; 4747 return elm$core$Dict$keys(dict); 4748}; 4749var dtwrks$elm_book$ElmBook$Internal$StatefulOptions$defaultOptions = { 4750 initialState: elm$core$Maybe$Nothing, 4751 onDarkModeChange: function (_n0) { 4752 return elm$core$Basics$identity; 4753 }, 4754 subscriptions: _List_Nil 4755}; 4756var dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultAccent = '#ffffff'; 4757var dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultBackgroundEnd = '#56cfff'; 4758var dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultBackgroundStart = '#0087cf'; 4759var dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultNavAccent = '#bdecff'; 4760var dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultNavAccentHighlight = '#ffffff'; 4761var dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultNavBackground = '#ffffff'; 4762var elm$core$Basics$append = _Utils_append; 4763var dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultTheme = {accent: dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultAccent, background: 'linear-gradient(150deg, ' + (dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultBackgroundStart + (' 0%, ' + (dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultBackgroundEnd + ' 100%)'))), fontMonospace: 'Fira Code', fontSans: 'IBM Plex Sans', fontSerif: 'IBM Plex Serif', globals: elm$core$Maybe$Nothing, hashBasedNavigation: false, header: elm$core$Maybe$Nothing, logo: elm$core$Maybe$Nothing, navAccent: dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultNavAccent, navAccentHighlight: dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultNavAccentHighlight, navBackground: dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultNavBackground, preferDarkMode: false, routePrefix: '', subtitle: elm$core$Maybe$Nothing}; 4764var dtwrks$elm_book$ElmBook$Custom$customBook = F2( 4765 function (toHtml, title) { 4766 return dtwrks$elm_book$ElmBook$Internal$Book$BookBuilder( 4767 {chapterOptions: dtwrks$elm_book$ElmBook$Internal$Chapter$defaultOptions, componentOptions: dtwrks$elm_book$ElmBook$Internal$ComponentOptions$defaultOptions, statefulOptions: dtwrks$elm_book$ElmBook$Internal$StatefulOptions$defaultOptions, themeOptions: dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultTheme, title: title, toHtml: toHtml}); 4768 }); 4769var dtwrks$elm_book$ElmBook$book = dtwrks$elm_book$ElmBook$Custom$customBook(elm$core$Basics$identity); 4770var elm$core$Basics$apR = F2( 4771 function (x, f) { 4772 return f(x); 4773 }); 4774var elm$core$Maybe$withDefault = F2( 4775 function (_default, maybe) { 4776 if (maybe.$ === 'Just') { 4777 var value = maybe.a; 4778 return value; 4779 } else { 4780 return _default; 4781 } 4782 }); 4783var dtwrks$elm_book$ElmBook$Internal$Application$extractPath = F2( 4784 function (hashBasedNavigation, url) { 4785 return hashBasedNavigation ? A2(elm$core$Maybe$withDefault, '/', url.fragment) : url.path; 4786 }); 4787var elm$core$Array$branchFactor = 32; 4788var elm$core$Basics$ceiling = _Basics_ceiling; 4789var elm$core$Basics$fdiv = _Basics_fdiv; 4790var elm$core$Basics$logBase = F2( 4791 function (base, number) { 4792 return _Basics_log(number) / _Basics_log(base); 4793 }); 4794var elm$core$Basics$toFloat = _Basics_toFloat; 4795var elm$core$Array$shiftStep = elm$core$Basics$ceiling( 4796 A2(elm$core$Basics$logBase, 2, elm$core$Array$branchFactor)); 4797var elm$core$Basics$sub = _Basics_sub; 4798var elm$core$Bitwise$shiftRightZfBy = _Bitwise_shiftRightZfBy; 4799var elm$core$Array$bitMask = 4294967295 >>> (32 - elm$core$Array$shiftStep); 4800var elm$core$Basics$apL = F2( 4801 function (f, x) { 4802 return f(x); 4803 }); 4804var elm$core$Bitwise$and = _Bitwise_and; 4805var elm$core$Elm$JsArray$unsafeGet = _JsArray_unsafeGet; 4806var elm$core$Array$getHelp = F3( 4807 function (shift, index, tree) { 4808 getHelp: 4809 while (true) { 4810 var pos = elm$core$Array$bitMask & (index >>> shift); 4811 var _n0 = A2(elm$core$Elm$JsArray$unsafeGet, pos, tree); 4812 if (_n0.$ === 'SubTree') { 4813 var subTree = _n0.a; 4814 var $temp$shift = shift - elm$core$Array$shiftStep, 4815 $temp$index = index, 4816 $temp$tree = subTree; 4817 shift = $temp$shift; 4818 index = $temp$index; 4819 tree = $temp$tree; 4820 continue getHelp; 4821 } else { 4822 var values = _n0.a; 4823 return A2(elm$core$Elm$JsArray$unsafeGet, elm$core$Array$bitMask & index, values); 4824 } 4825 } 4826 }); 4827var elm$core$Bitwise$shiftLeftBy = _Bitwise_shiftLeftBy; 4828var elm$core$Array$tailIndex = function (len) { 4829 return (len >>> 5) << 5; 4830}; 4831var elm$core$Basics$ge = _Utils_ge; 4832var elm$core$Basics$lt = _Utils_lt; 4833var elm$core$Basics$or = _Basics_or; 4834var elm$core$Maybe$Just = function (a) { 4835 return {$: 'Just', a: a}; 4836}; 4837var elm$core$Array$get = F2( 4838 function (index, _n0) { 4839 var len = _n0.a; 4840 var startShift = _n0.b; 4841 var tree = _n0.c; 4842 var tail = _n0.d; 4843 return ((index < 0) || (_Utils_cmp(index, len) > -1)) ? elm$core$Maybe$Nothing : ((_Utils_cmp( 4844 index, 4845 elm$core$Array$tailIndex(len)) > -1) ? elm$core$Maybe$Just( 4846 A2(elm$core$Elm$JsArray$unsafeGet, elm$core$Array$bitMask & index, tail)) : elm$core$Maybe$Just( 4847 A3(elm$core$Array$getHelp, startShift, index, tree))); 4848 }); 4849var elm$core$Basics$compare = _Utils_compare; 4850var elm$core$Dict$get = F2( 4851 function (targetKey, dict) { 4852 get: 4853 while (true) { 4854 if (dict.$ === 'RBEmpty_elm_builtin') { 4855 return elm$core$Maybe$Nothing; 4856 } else { 4857 var key = dict.b; 4858 var value = dict.c; 4859 var left = dict.d; 4860 var right = dict.e;
4861 var _n1 = A2(elm$core$Basics$compare, targetKey, key); 4862 switch (_n1.$) { 4863 case 'LT': 4864 var $temp$targetKey = targetKey, 4865 $temp$dict = left; 4866 targetKey = $temp$targetKey; 4867 dict = $temp$dict; 4868 continue get; 4869 case 'EQ': 4870 return elm$core$Maybe$Just(value); 4871 default: 4872 var $temp$targetKey = targetKey, 4873 $temp$dict = right; 4874 targetKey = $temp$targetKey; 4875 dict = $temp$dict; 4876 continue get; 4877 } 4878 } 4879 } 4880 }); 4881var elm$core$Maybe$andThen = F2( 4882 function (callback, maybeValue) { 4883 if (maybeValue.$ === 'Just') { 4884 var value = maybeValue.a; 4885 return callback(value); 4886 } else { 4887 return elm$core$Maybe$Nothing; 4888 } 4889 }); 4890var dtwrks$elm_book$ElmBook$Internal$Book$chapterFromUrl = F2( 4891 function (config, url) { 4892 return A2( 4893 elm$core$Maybe$andThen, 4894 function (i) { 4895 return A2(elm$core$Array$get, i, config.chapters); 4896 }, 4897 A2(elm$core$Dict$get, url, config.chapterByUrl)); 4898 }); 4899var elm$core$Basics$and = _Basics_and; 4900var dtwrks$elm_book$ElmBook$Internal$Chapter$chapterNavUrl = F2( 4901 function (hashBasedNavigation, _n0) { 4902 var url = _n0.a.url; 4903 var internal = _n0.a.internal; 4904 return (internal && hashBasedNavigation) ? ('#' + url) : url; 4905 }); 4906var dtwrks$elm_book$ElmBook$Internal$Chapter$init = function (_n0) { 4907 var chapter = _n0.a; 4908 return chapter.init; 4909}; 4910var dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultOverrides = {accent: elm$core$Maybe$Nothing, background: elm$core$Maybe$Nothing, navAccent: elm$core$Maybe$Nothing, navAccentHighlight: elm$core$Maybe$Nothing, navBackground: elm$core$Maybe$Nothing}; 4911var dtwrks$elm_book$ElmBook$Internal$ThemeOptions$hashBasedNavigation = function ($) { 4912 return $.hashBasedNavigation; 4913}; 4914var elm$browser$Browser$External = function (a) { 4915 return {$: 'External', a: a}; 4916}; 4917var elm$browser$Browser$Internal = function (a) { 4918 return {$: 'Internal', a: a}; 4919}; 4920var elm$browser$Browser$Dom$NotFound = function (a) { 4921 return {$: 'NotFound', a: a}; 4922}; 4923var elm$core$Basics$never = function (_n0) { 4924 never: 4925 while (true) { 4926 var nvr = _n0.a; 4927 var $temp$_n0 = nvr; 4928 _n0 = $temp$_n0; 4929 continue never; 4930 } 4931}; 4932var elm$core$Basics$True = {$: 'True'}; 4933var elm$core$Result$isOk = function (result) { 4934 if (result.$ === 'Ok') { 4935 return true; 4936 } else { 4937 return false; 4938 } 4939}; 4940var elm$core$Task$Perform = function (a) { 4941 return {$: 'Perform', a: a}; 4942}; 4943var elm$core$Task$succeed = _Scheduler_succeed; 4944var elm$core$Task$init = elm$core$Task$succeed(_Utils_Tuple0); 4945var elm$core$Basics$add = _Basics_add; 4946var elm$core$Basics$gt = _Utils_gt; 4947var elm$core$List$foldl = F3( 4948 function (func, acc, list) { 4949 foldl: 4950 while (true) { 4951 if (!list.b) { 4952 return acc; 4953 } else { 4954 var x = list.a; 4955 var xs = list.b; 4956 var $temp$func = func, 4957 $temp$acc = A2(func, x, acc), 4958 $temp$list = xs; 4959 func = $temp$func; 4960 acc = $temp$acc; 4961 list = $temp$list; 4962 continue foldl; 4963 } 4964 } 4965 }); 4966var elm$core$List$reverse = function (list) { 4967 return A3(elm$core$List$foldl, elm$core$List$cons, _List_Nil, list); 4968}; 4969var elm$core$List$foldrHelper = F4( 4970 function (fn, acc, ctr, ls) { 4971 if (!ls.b) { 4972 return acc; 4973 } else { 4974 var a = ls.a; 4975 var r1 = ls.b; 4976 if (!r1.b) { 4977 return A2(fn, a, acc); 4978 } else { 4979 var b = r1.a; 4980 var r2 = r1.b; 4981 if (!r2.b) { 4982 return A2( 4983 fn, 4984 a, 4985 A2(fn, b, acc)); 4986 } else { 4987 var c = r2.a; 4988 var r3 = r2.b; 4989 if (!r3.b) { 4990 return A2( 4991 fn, 4992 a, 4993 A2( 4994 fn, 4995 b, 4996 A2(fn, c, acc))); 4997 } else { 4998 var d = r3.a; 4999 var r4 = r3.b; 5000 var res = (ctr > 500) ? A3( 5001 elm$core$List$foldl, 5002 fn, 5003 acc, 5004 elm$core$List$reverse(r4)) : A4(elm$core$List$foldrHelper, fn, acc, ctr + 1, r4); 5005 return A2( 5006 fn, 5007 a, 5008 A2( 5009 fn, 5010 b, 5011 A2( 5012 fn, 5013 c, 5014 A2(fn, d, res)))); 5015 } 5016 } 5017 } 5018 } 5019 }); 5020var elm$core$List$foldr = F3( 5021 function (fn, acc, ls) { 5022 return A4(elm$core$List$foldrHelper, fn, acc, 0, ls); 5023 }); 5024var elm$core$List$map = F2( 5025 function (f, xs) { 5026 return A3( 5027 elm$core$List$foldr, 5028 F2( 5029 function (x, acc) { 5030 return A2( 5031 elm$core$List$cons, 5032 f(x), 5033 acc); 5034 }), 5035 _List_Nil, 5036 xs); 5037 }); 5038var elm$core$Task$andThen = _Scheduler_andThen; 5039var elm$core$Task$map = F2( 5040 function (func, taskA) { 5041 return A2( 5042 elm$core$Task$andThen, 5043 function (a) { 5044 return elm$core$Task$succeed( 5045 func(a)); 5046 }, 5047 taskA); 5048 }); 5049var elm$core$Task$map2 = F3( 5050 function (func, taskA, taskB) { 5051 return A2( 5052 elm$core$Task$andThen, 5053 function (a) { 5054 return A2( 5055 elm$core$Task$andThen, 5056 function (b) { 5057 return elm$core$Task$succeed( 5058 A2(func, a, b)); 5059 }, 5060 taskB); 5061 }, 5062 taskA); 5063 }); 5064var elm$core$Task$sequence = function (tasks) { 5065 return A3( 5066 elm$core$List$foldr, 5067 elm$core$Task$map2(elm$core$List$cons), 5068 elm$core$Task$succeed(_List_Nil), 5069 tasks); 5070}; 5071var elm$core$Array$Array_elm_builtin = F4( 5072 function (a, b, c, d) {
5073 return {$: 'Array_elm_builtin', a: a, b: b, c: c, d: d}; 5074 }); 5075var elm$core$Elm$JsArray$empty = _JsArray_empty; 5076var elm$core$Array$empty = A4(elm$core$Array$Array_elm_builtin, 0, elm$core$Array$shiftStep, elm$core$Elm$JsArray$empty, elm$core$Elm$JsArray$empty); 5077var elm$core$Array$Leaf = function (a) { 5078 return {$: 'Leaf', a: a}; 5079}; 5080var elm$core$Array$SubTree = function (a) { 5081 return {$: 'SubTree', a: a}; 5082}; 5083var elm$core$Elm$JsArray$initializeFromList = _JsArray_initializeFromList; 5084var elm$core$Array$compressNodes = F2( 5085 function (nodes, acc) { 5086 compressNodes: 5087 while (true) { 5088 var _n0 = A2(elm$core$Elm$JsArray$initializeFromList, elm$core$Array$branchFactor, nodes); 5089 var node = _n0.a; 5090 var remainingNodes = _n0.b; 5091 var newAcc = A2( 5092 elm$core$List$cons, 5093 elm$core$Array$SubTree(node), 5094 acc); 5095 if (!remainingNodes.b) { 5096 return elm$core$List$reverse(newAcc); 5097 } else { 5098 var $temp$nodes = remainingNodes, 5099 $temp$acc = newAcc; 5100 nodes = $temp$nodes; 5101 acc = $temp$acc; 5102 continue compressNodes; 5103 } 5104 } 5105 }); 5106var elm$core$Basics$eq = _Utils_equal; 5107var elm$core$Tuple$first = function (_n0) { 5108 var x = _n0.a; 5109 return x; 5110}; 5111var elm$core$Array$treeFromBuilder = F2( 5112 function (nodeList, nodeListSize) { 5113 treeFromBuilder: 5114 while (true) { 5115 var newNodeSize = elm$core$Basics$ceiling(nodeListSize / elm$core$Array$branchFactor); 5116 if (newNodeSize === 1) { 5117 return A2(elm$core$Elm$JsArray$initializeFromList, elm$core$Array$branchFactor, nodeList).a; 5118 } else { 5119 var $temp$nodeList = A2(elm$core$Array$compressNodes, nodeList, _List_Nil), 5120 $temp$nodeListSize = newNodeSize; 5121 nodeList = $temp$nodeList; 5122 nodeListSize = $temp$nodeListSize; 5123 continue treeFromBuilder; 5124 } 5125 } 5126 }); 5127var elm$core$Basics$floor = _Basics_floor; 5128var elm$core$Basics$max = F2( 5129 function (x, y) { 5130 return (_Utils_cmp(x, y) > 0) ? x : y; 5131 }); 5132var elm$core$Basics$mul = _Basics_mul; 5133var elm$core$Elm$JsArray$length = _JsArray_length; 5134var elm$core$Array$builderToArray = F2( 5135 function (reverseNodeList, builder) { 5136 if (!builder.nodeListSize) { 5137 return A4( 5138 elm$core$Array$Array_elm_builtin, 5139 elm$core$Elm$JsArray$length(builder.tail), 5140 elm$core$Array$shiftStep, 5141 elm$core$Elm$JsArray$empty, 5142 builder.tail); 5143 } else { 5144 var treeLen = builder.nodeListSize * elm$core$Array$branchFactor; 5145 var depth = elm$core$Basics$floor( 5146 A2(elm$core$Basics$logBase, elm$core$Array$branchFactor, treeLen - 1)); 5147 var correctNodeList = reverseNodeList ? elm$core$List$reverse(builder.nodeList) : builder.nodeList; 5148 var tree = A2(elm$core$Array$treeFromBuilder, correctNodeList, builder.nodeListSize); 5149 return A4( 5150 elm$core$Array$Array_elm_builtin, 5151 elm$core$Elm$JsArray$length(builder.tail) + treeLen, 5152 A2(elm$core$Basics$max, 5, depth * elm$core$Array$shiftStep), 5153 tree, 5154 builder.tail); 5155 } 5156 }); 5157var elm$core$Basics$idiv = _Basics_idiv; 5158var elm$core$Elm$JsArray$initialize = _JsArray_initialize; 5159var elm$core$Array$initializeHelp = F5( 5160 function (fn, fromIndex, len, nodeList, tail) { 5161 initializeHelp: 5162 while (true) { 5163 if (fromIndex < 0) { 5164 return A2( 5165 elm$core$Array$builderToArray, 5166 false, 5167 {nodeList: nodeList, nodeListSize: (len / elm$core$Array$branchFactor) | 0, tail: tail}); 5168 } else { 5169 var leaf = elm$core$Array$Leaf( 5170 A3(elm$core$Elm$JsArray$initialize, elm$core$Array$branchFactor, fromIndex, fn)); 5171 var $temp$fn = fn, 5172 $temp$fromIndex = fromIndex - elm$core$Array$branchFactor, 5173 $temp$len = len, 5174 $temp$nodeList = A2(elm$core$List$cons, leaf, nodeList), 5175 $temp$tail = tail; 5176 fn = $temp$fn; 5177 fromIndex = $temp$fromIndex; 5178 len = $temp$len; 5179 nodeList = $temp$nodeList; 5180 tail = $temp$tail; 5181 continue initializeHelp; 5182 } 5183 } 5184 }); 5185var elm$core$Basics$le = _Utils_le; 5186var elm$core$Basics$remainderBy = _Basics_remainderBy; 5187var elm$core$Array$initialize = F2( 5188 function (len, fn) { 5189 if (len <= 0) { 5190 return elm$core$Array$empty; 5191 } else { 5192 var tailLen = len % elm$core$Array$branchFactor; 5193 var tail = A3(elm$core$Elm$JsArray$initialize, tailLen, len - tailLen, fn);
5194 var initialFromIndex = (len - tailLen) - elm$core$Array$branchFactor; 5195 return A5(elm$core$Array$initializeHelp, fn, initialFromIndex, len, _List_Nil, tail); 5196 } 5197 }); 5198var elm$core$Result$Err = function (a) { 5199 return {$: 'Err', a: a}; 5200}; 5201var elm$core$Result$Ok = function (a) { 5202 return {$: 'Ok', a: a}; 5203}; 5204var elm$json$Json$Decode$Failure = F2( 5205 function (a, b) { 5206 return {$: 'Failure', a: a, b: b}; 5207 }); 5208var elm$json$Json$Decode$Field = F2( 5209 function (a, b) { 5210 return {$: 'Field', a: a, b: b}; 5211 }); 5212var elm$json$Json$Decode$Index = F2( 5213 function (a, b) { 5214 return {$: 'Index', a: a, b: b}; 5215 }); 5216var elm$json$Json$Decode$OneOf = function (a) { 5217 return {$: 'OneOf', a: a}; 5218}; 5219var elm$core$Char$toCode = _Char_toCode; 5220var elm$core$Char$isLower = function (_char) { 5221 var code = elm$core$Char$toCode(_char); 5222 return (97 <= code) && (code <= 122); 5223}; 5224var elm$core$Char$isUpper = function (_char) { 5225 var code = elm$core$Char$toCode(_char); 5226 return (code <= 90) && (65 <= code); 5227}; 5228var elm$core$Char$isAlpha = function (_char) { 5229 return elm$core$Char$isLower(_char) || elm$core$Char$isUpper(_char); 5230}; 5231var elm$core$Char$isDigit = function (_char) { 5232 var code = elm$core$Char$toCode(_char); 5233 return (code <= 57) && (48 <= code); 5234}; 5235var elm$core$Char$isAlphaNum = function (_char) { 5236 return elm$core$Char$isLower(_char) || (elm$core$Char$isUpper(_char) || elm$core$Char$isDigit(_char)); 5237}; 5238var elm$core$List$length = function (xs) { 5239 return A3( 5240 elm$core$List$foldl, 5241 F2( 5242 function (_n0, i) { 5243 return i + 1; 5244 }), 5245 0, 5246 xs); 5247}; 5248var elm$core$List$map2 = _List_map2; 5249var elm$core$List$rangeHelp = F3( 5250 function (lo, hi, list) { 5251 rangeHelp: 5252 while (true) { 5253 if (_Utils_cmp(lo, hi) < 1) { 5254 var $temp$lo = lo, 5255 $temp$hi = hi - 1, 5256 $temp$list = A2(elm$core$List$cons, hi, list); 5257 lo = $temp$lo; 5258 hi = $temp$hi; 5259 list = $temp$list; 5260 continue rangeHelp; 5261 } else { 5262 return list; 5263 } 5264 } 5265 }); 5266var elm$core$List$range = F2( 5267 function (lo, hi) { 5268 return A3(elm$core$List$rangeHelp, lo, hi, _List_Nil); 5269 }); 5270var elm$core$List$indexedMap = F2( 5271 function (f, xs) { 5272 return A3( 5273 elm$core$List$map2, 5274 f, 5275 A2( 5276 elm$core$List$range, 5277 0, 5278 elm$core$List$length(xs) - 1), 5279 xs); 5280 }); 5281var elm$core$String$all = _String_all;
5282var elm$core$String$fromInt = _String_fromNumber; 5283var elm$core$String$join = F2( 5284 function (sep, chunks) { 5285 return A2( 5286 _String_join, 5287 sep, 5288 _List_toArray(chunks)); 5289 }); 5290var elm$core$String$uncons = _String_uncons; 5291var elm$core$String$split = F2( 5292 function (sep, string) { 5293 return _List_fromArray( 5294 A2(_String_split, sep, string)); 5295 }); 5296var elm$json$Json$Decode$indent = function (str) { 5297 return A2( 5298 elm$core$String$join, 5299 '\n ', 5300 A2(elm$core$String$split, '\n', str)); 5301}; 5302var elm$json$Json$Encode$encode = _Json_encode; 5303var elm$json$Json$Decode$errorOneOf = F2( 5304 function (i, error) { 5305 return '\n\n(' + (elm$core$String$fromInt(i + 1) + (') ' + elm$json$Json$Decode$indent( 5306 elm$json$Json$Decode$errorToString(error)))); 5307 }); 5308var elm$json$Json$Decode$errorToString = function (error) { 5309 return A2(elm$json$Json$Decode$errorToStringHelp, error, _List_Nil); 5310}; 5311var elm$json$Json$Decode$errorToStringHelp = F2( 5312 function (error, context) { 5313 errorToStringHelp: 5314 while (true) { 5315 switch (error.$) { 5316 case 'Field': 5317 var f = error.a; 5318 var err = error.b; 5319 var isSimple = function () { 5320 var _n1 = elm$core$String$uncons(f); 5321 if (_n1.$ === 'Nothing') { 5322 return false; 5323 } else { 5324 var _n2 = _n1.a; 5325 var _char = _n2.a; 5326 var rest = _n2.b; 5327 return elm$core$Char$isAlpha(_char) && A2(elm$core$String$all, elm$core$Char$isAlphaNum, rest); 5328 } 5329 }(); 5330 var fieldName = isSimple ? ('.' + f) : ('[\'' + (f + '\']')); 5331 var $temp$error = err, 5332 $temp$context = A2(elm$core$List$cons, fieldName, context); 5333 error = $temp$error; 5334 context = $temp$context; 5335 continue errorToStringHelp; 5336 case 'Index': 5337 var i = error.a; 5338 var err = error.b; 5339 var indexName = '[' + (elm$core$String$fromInt(i) + ']'); 5340 var $temp$error = err, 5341 $temp$context = A2(elm$core$List$cons, indexName, context); 5342 error = $temp$error; 5343 context = $temp$context; 5344 continue errorToStringHelp; 5345 case 'OneOf': 5346 var errors = error.a; 5347 if (!errors.b) { 5348 return 'Ran into a Json.Decode.oneOf with no possibilities' + function () { 5349 if (!context.b) { 5350 return '!'; 5351 } else { 5352 return ' at json' + A2( 5353 elm$core$String$join, 5354 '', 5355 elm$core$List$reverse(context)); 5356 } 5357 }(); 5358 } else { 5359 if (!errors.b.b) { 5360 var err = errors.a; 5361 var $temp$error = err, 5362 $temp$context = context; 5363 error = $temp$error; 5364 context = $temp$context; 5365 continue errorToStringHelp; 5366 } else { 5367 var starter = function () { 5368 if (!context.b) { 5369 return 'Json.Decode.oneOf'; 5370 } else { 5371 return 'The Json.Decode.oneOf at json' + A2( 5372 elm$core$String$join, 5373 '', 5374 elm$core$List$reverse(context)); 5375 } 5376 }(); 5377 var introduction = starter + (' failed in the following ' + (elm$core$String$fromInt( 5378 elm$core$List$length(errors)) + ' ways:')); 5379 return A2( 5380 elm$core$String$join, 5381 '\n\n', 5382 A2( 5383 elm$core$List$cons, 5384 introduction, 5385 A2(elm$core$List$indexedMap, elm$json$Json$Decode$errorOneOf, errors))); 5386 } 5387 } 5388 default: 5389 var msg = error.a; 5390 var json = error.b; 5391 var introduction = function () { 5392 if (!context.b) { 5393 return 'Problem with the given value:\n\n'; 5394 } else { 5395 return 'Problem with the value at json' + (A2( 5396 elm$core$String$join, 5397 '', 5398 elm$core$List$reverse(context)) + ':\n\n '); 5399 } 5400 }(); 5401 return introduction + (elm$json$Json$Decode$indent( 5402 A2(elm$json$Json$Encode$encode, 4, json)) + ('\n\n' + msg)); 5403 } 5404 } 5405 }); 5406var elm$core$Platform$sendToApp = _Platform_sendToApp; 5407var elm$core$Task$spawnCmd = F2( 5408 function (router, _n0) { 5409 var task = _n0.a; 5410 return _Scheduler_spawn( 5411 A2( 5412 elm$core$Task$andThen, 5413 elm$core$Platform$sendToApp(router), 5414 task)); 5415 }); 5416var elm$core$Task$onEffects = F3( 5417 function (router, commands, state) { 5418 return A2( 5419 elm$core$Task$map, 5420 function (_n0) { 5421 return _Utils_Tuple0; 5422 }, 5423 elm$core$Task$sequence( 5424 A2( 5425 elm$core$List$map, 5426 elm$core$Task$spawnCmd(router), 5427 commands))); 5428 }); 5429var elm$core$Task$onSelfMsg = F3( 5430 function (_n0, _n1, _n2) { 5431 return elm$core$Task$succeed(_Utils_Tuple0); 5432 }); 5433var elm$core$Task$cmdMap = F2( 5434 function (tagger, _n0) { 5435 var task = _n0.a; 5436 return elm$core$Task$Perform( 5437 A2(elm$core$Task$map, tagger, task)); 5438 }); 5439_Platform_effectManagers['Task'] = _Platform_createManager(elm$core$Task$init, elm$core$Task$onEffects, elm$core$Task$onSelfMsg, elm$core$Task$cmdMap); 5440var elm$core$Task$command = _Platform_leaf('Task'); 5441var elm$core$Task$perform = F2( 5442 function (toMessage, task) { 5443 return elm$core$Task$command( 5444 elm$core$Task$Perform( 5445 A2(elm$core$Task$map, toMessage, task))); 5446 }); 5447var elm$json$Json$Decode$map = _Json_map1; 5448var elm$json$Json$Decode$map2 = _Json_map2; 5449var elm$json$Json$Decode$succeed = _Json_succeed; 5450var elm$virtual_dom$VirtualDom$toHandlerInt = function (handler) { 5451 switch (handler.$) { 5452 case 'Normal': 5453 return 0; 5454 case 'MayStopPropagation': 5455 return 1; 5456 case 'MayPreventDefault': 5457 return 2; 5458 default: 5459 return 3; 5460 } 5461}; 5462var elm$core$String$length = _String_length; 5463var elm$core$String$slice = _String_slice; 5464var elm$core$String$dropLeft = F2( 5465 function (n, string) { 5466 return (n < 1) ? string : A3( 5467 elm$core$String$slice, 5468 n, 5469 elm$core$String$length(string), 5470 string); 5471 }); 5472var elm$core$String$startsWith = _String_startsWith; 5473var elm$url$Url$Http = {$: 'Http'}; 5474var elm$url$Url$Https = {$: 'Https'}; 5475var elm$core$String$indexes = _String_indexes; 5476var elm$core$String$isEmpty = function (string) { 5477 return string === ''; 5478}; 5479var elm$core$String$left = F2( 5480 function (n, string) { 5481 return (n < 1) ? '' : A3(elm$core$String$slice, 0, n, string); 5482 }); 5483var elm$core$String$contains = _String_contains;
5484var elm$core$String$toInt = _String_toInt; 5485var elm$url$Url$Url = F6( 5486 function (protocol, host, port_, path, query, fragment) { 5487 return {fragment: fragment, host: host, path: path, port_: port_, protocol: protocol, query: query}; 5488 }); 5489var elm$url$Url$chompBeforePath = F5( 5490 function (protocol, path, params, frag, str) { 5491 if (elm$core$String$isEmpty(str) || A2(elm$core$String$contains, '@', str)) { 5492 return elm$core$Maybe$Nothing; 5493 } else { 5494 var _n0 = A2(elm$core$String$indexes, ':', str); 5495 if (!_n0.b) { 5496 return elm$core$Maybe$Just( 5497 A6(elm$url$Url$Url, protocol, str, elm$core$Maybe$Nothing, path, params, frag)); 5498 } else { 5499 if (!_n0.b.b) { 5500 var i = _n0.a; 5501 var _n1 = elm$core$String$toInt( 5502 A2(elm$core$String$dropLeft, i + 1, str)); 5503 if (_n1.$ === 'Nothing') { 5504 return elm$core$Maybe$Nothing; 5505 } else { 5506 var port_ = _n1; 5507 return elm$core$Maybe$Just( 5508 A6( 5509 elm$url$Url$Url, 5510 protocol, 5511 A2(elm$core$String$left, i, str), 5512 port_, 5513 path, 5514 params, 5515 frag)); 5516 } 5517 } else { 5518 return elm$core$Maybe$Nothing; 5519 } 5520 } 5521 } 5522 }); 5523var elm$url$Url$chompBeforeQuery = F4( 5524 function (protocol, params, frag, str) { 5525 if (elm$core$String$isEmpty(str)) { 5526 return elm$core$Maybe$Nothing; 5527 } else { 5528 var _n0 = A2(elm$core$String$indexes, '/', str); 5529 if (!_n0.b) { 5530 return A5(elm$url$Url$chompBeforePath, protocol, '/', params, frag, str); 5531 } else { 5532 var i = _n0.a; 5533 return A5( 5534 elm$url$Url$chompBeforePath, 5535 protocol, 5536 A2(elm$core$String$dropLeft, i, str), 5537 params, 5538 frag, 5539 A2(elm$core$String$left, i, str)); 5540 } 5541 } 5542 }); 5543var elm$url$Url$chompBeforeFragment = F3( 5544 function (protocol, frag, str) { 5545 if (elm$core$String$isEmpty(str)) { 5546 return elm$core$Maybe$Nothing; 5547 } else { 5548 var _n0 = A2(elm$core$String$indexes, '?', str); 5549 if (!_n0.b) { 5550 return A4(elm$url$Url$chompBeforeQuery, protocol, elm$core$Maybe$Nothing, frag, str); 5551 } else { 5552 var i = _n0.a; 5553 return A4( 5554 elm$url$Url$chompBeforeQuery, 5555 protocol, 5556 elm$core$Maybe$Just( 5557 A2(elm$core$String$dropLeft, i + 1, str)), 5558 frag, 5559 A2(elm$core$String$left, i, str)); 5560 } 5561 } 5562 }); 5563var elm$url$Url$chompAfterProtocol = F2( 5564 function (protocol, str) { 5565 if (elm$core$String$isEmpty(str)) { 5566 return elm$core$Maybe$Nothing; 5567 } else { 5568 var _n0 = A2(elm$core$String$indexes, '#', str); 5569 if (!_n0.b) { 5570 return A3(elm$url$Url$chompBeforeFragment, protocol, elm$core$Maybe$Nothing, str); 5571 } else { 5572 var i = _n0.a; 5573 return A3( 5574 elm$url$Url$chompBeforeFragment, 5575 protocol, 5576 elm$core$Maybe$Just( 5577 A2(elm$core$String$dropLeft, i + 1, str)), 5578 A2(elm$core$String$left, i, str)); 5579 } 5580 } 5581 }); 5582var elm$url$Url$fromString = function (str) { 5583 return A2(elm$core$String$startsWith, 'http://', str) ? A2( 5584 elm$url$Url$chompAfterProtocol, 5585 elm$url$Url$Http, 5586 A2(elm$core$String$dropLeft, 7, str)) : (A2(elm$core$String$startsWith, 'https://', str) ? A2( 5587 elm$url$Url$chompAfterProtocol, 5588 elm$url$Url$Https, 5589 A2(elm$core$String$dropLeft, 8, str)) : elm$core$Maybe$Nothing); 5590}; 5591var elm$browser$Browser$Navigation$replaceUrl = _Browser_replaceUrl; 5592var elm$core$Basics$composeL = F3( 5593 function (g, f, x) { 5594 return g( 5595 f(x)); 5596 }); 5597var elm$core$Maybe$map = F2( 5598 function (f, maybe) { 5599 if (maybe.$ === 'Just') { 5600 var value = maybe.a; 5601 return elm$core$Maybe$Just( 5602 f(value)); 5603 } else { 5604 return elm$core$Maybe$Nothing; 5605 } 5606 }); 5607var elm$core$Maybe$map2 = F3( 5608 function (func, ma, mb) { 5609 if (ma.$ === 'Nothing') { 5610 return elm$core$Maybe$Nothing; 5611 } else { 5612 var a = ma.a; 5613 if (mb.$ === 'Nothing') { 5614 return elm$core$Maybe$Nothing; 5615 } else { 5616 var b = mb.a; 5617 return elm$core$Maybe$Just( 5618 A2(func, a, b)); 5619 } 5620 } 5621 }); 5622var elm$core$Platform$Cmd$batch = _Platform_batch; 5623var elm$core$Platform$Cmd$none = elm$core$Platform$Cmd$batch(_List_Nil); 5624var elm$core$Tuple$mapFirst = F2( 5625 function (func, _n0) { 5626 var x = _n0.a; 5627 var y = _n0.b; 5628 return _Utils_Tuple2( 5629 func(x), 5630 y); 5631 }); 5632var dtwrks$elm_book$ElmBook$Internal$Application$init = F4( 5633 function (config, _n0, url_, navKey) { 5634 var url = A2(dtwrks$elm_book$ElmBook$Internal$Application$extractPath, c
5634onfig.themeOptions.hashBasedNavigation, url_); 5635 var hashBasedNavigation_ = dtwrks$elm_book$ElmBook$Internal$ThemeOptions$hashBasedNavigation(config.themeOptions); 5636 var darkMode = config.themeOptions.preferDarkMode; 5637 var initialState = A2( 5638 elm$core$Maybe$map, 5639 config.statefulOptions.onDarkModeChange(darkMode), 5640 config.statefulOptions.initialState); 5641 var activeChapter = A2( 5642 dtwrks$elm_book$ElmBook$Internal$Book$chapterFromUrl, 5643 config, 5644 A2(dtwrks$elm_book$ElmBook$Internal$Application$extractPath, hashBasedNavigation_, url_)); 5645 var _n1 = A2( 5646 elm$core$Maybe$withDefault, 5647 _Utils_Tuple2(initialState, elm$core$Platform$Cmd$none), 5648 A2( 5649 elm$core$Maybe$andThen, 5650 function (chapter) { 5651 return A2( 5652 elm$core$Maybe$map, 5653 elm$core$Tuple$mapFirst(elm$core$Maybe$Just), 5654 A3( 5655 elm$core$Maybe$map2, 5656 F2( 5657 function (state_, chapterInit) { 5658 return chapterInit(state_); 5659 }), 5660 initialState, 5661 dtwrks$elm_book$ElmBook$Internal$Chapter$init(chapter))); 5662 }, 5663 activeChapter)); 5664 var initialState_ = _n1.a; 5665 var cmd = _n1.b; 5666 return _Utils_Tuple2( 5667 {actionLog: _List_Nil, actionLogModal: false, backCompatibility: elm$core$Maybe$Nothing, chapterPreSelected: 0, darkMode: darkMode, isMenuOpen: false, isMetaPressed: false, isSearching: false, isShiftPressed: false, navKey: navKey, search: '', state: initialState_, themeOverrides: dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultOverrides, url: url}, 5668 function () { 5669 if (activeChapter.$ === 'Just') { 5670 return cmd; 5671 } else { 5672 return A2( 5673 elm$core$Maybe$withDefault, 5674 A2(elm$browser$Browser$Navigation$replaceUrl, navKey, '/'), 5675 A2( 5676 elm$core$Maybe$map, 5677 A2( 5678 elm$core$Basics$composeL, 5679 elm$browser$Browser$Navigation$replaceUrl(navKey), 5680 dtwrks$elm_book$ElmBook$Internal$Chapter$chapterNavUrl(hashBasedNavigation_)), 5681 A2(elm$core$Array$get, 0, config.chapters))); 5682 } 5683 }()); 5684 }); 5685var dtwrks$elm_book$ElmBook$Internal$Msg$DoNothing = {$: 'DoNothing'}; 5686var dtwrks$elm_book$ElmBook$Internal$Msg$KeyArrowDown = {$: 'KeyArrowDown'}; 5687var dtwrks$elm_book$ElmBook$Internal$Msg$KeyArrowUp = {$: 'KeyArrowUp'}; 5688var dtwrks$elm_book$ElmBook$Internal$Msg$KeyEnter = {$: 'KeyEnter'}; 5689var dtwrks$elm_book$ElmBook$Internal$Msg$KeyK = {$: 'KeyK'}; 5690var dtwrks$elm_book$ElmBook$Internal$Msg$KeyMetaOn = {$: 'KeyMetaOn'}; 5691var dtwrks$elm_book$ElmBook$Internal$Msg$KeyShiftOn = {$: 'KeyShiftOn'}; 5692var elm$core$String$toLower = _String_toLower; 5693var elm$json$Json$Decode$field = _Json_decodeField; 5694var elm$json$Json$Decode$string = _Json_decodeString; 5695var dtwrks$elm_book$ElmBook$Internal$Application$keyDownDecoder = A2( 5696 elm$json$Json$Decode$map, 5697 function (string) { 5698 var _n0 = elm$core$String$toLower(string); 5699 switch (_n0) { 5700 case 'arrowdown': 5701 return dtwrks$elm_book$ElmBook$Internal$Msg$KeyArrowDown; 5702 case 'arrowup': 5703 return dtwrks$elm_book$ElmBook$Internal$Msg$KeyArrowUp; 5704 case 'shift': 5705 return dtwrks$elm_book$ElmBook$Internal$Msg$KeyShiftOn; 5706 case 'meta': 5707 return dtwrks$elm_book$ElmBook$Internal$Msg$KeyMetaOn; 5708 case 'enter': 5709 return dtwrks$elm_book$ElmBook$Internal$Msg$KeyEnter; 5710 case 'k': 5711 return dtwrks$elm_book$ElmBook$Internal$Msg$KeyK; 5712 default: 5713 return dtwrks$elm_book$ElmBook$Internal$Msg$DoNothing; 5714 } 5715 }, 5716 A2(elm$json$Json$Decode$field, 'key', elm$json$Json$Decode$string)); 5717var dtwrks$elm_book$ElmBook$Internal$Msg$KeyMetaOff = {$: 'KeyMetaOff'}; 5718var dtwrks$elm_book$ElmBook$Internal$Msg$KeyShiftOff = {$: 'KeyShiftOff'}; 5719var dtwrks$elm_book$ElmBook$Internal$Application$keyUpDecoder = A2( 5720 elm$json$Json$Decode$map, 5721 function (string) { 5722 var _n0 = elm$core$String$toLower(string); 5723 switch (_n0) { 5724 case 'shift': 5725 return dtwrks$elm_book$ElmBook$Internal$Msg$KeyShiftOff; 5726 case 'meta': 5727 return dtwrks$elm_book$ElmBook$Internal$Msg$KeyMetaOff; 5728 default: 5729 return dtwrks$elm_book$ElmBook$Internal$Msg$DoNothing; 5730 } 5731 }, 5732 A2(elm$json$Json$Decode$field, 'key', elm$json$Json$Decode$string)); 5733var dtwrks$elm_book$ElmBook$Internal$Application$updateThemeOverrides = F2( 5734 function (model, fn) { 5735 return _Utils_Tuple2( 5736 _Utils_update( 5737 model, 5738 { 5739 themeOverrides: fn(model.themeOverrides) 5740 }), 5741 elm$core$Platform$Cmd$none); 5742 }); 5743var dtwrks$elm_book$ElmBook$Internal$Chapter$chapterInternal = function (_n0) { 5744 var internal = _n0.a.internal; 5745 return internal; 5746}; 5747var dtwrks$elm_book$ElmBook$Internal$Chapter$chapterTitle = function (_n0) { 5748 var title = _n0.a.title; 5749 return title; 5750}; 5751var dtwrks$elm_book$ElmBook$Internal$Chapter$chapterUrl = function (_n0) { 5752 var url = _n0.a.url; 5753 return url; 5754}; 5755var elm$browser$Browser$Dom$focus = _Browser_call('focus'); 5756var elm$browser$Browser$Dom$setViewportOf = _Browser_setViewportOf; 5757var elm$browser$Browser$Navigation$load = _Browser_load; 5758var elm$browser$Browser$Navigation$pushUrl = _Browser_pushUrl; 5759var elm$core$Array$length = function (_n0) { 5760 var len = _n0.a; 5761 return len; 5762}; 5763var elm$core$Basics$modBy = _Basics_modBy; 5764var elm$core$Basics$not = _Basics_not; 5765var elm$core$String$replace = F3( 5766 function (before, after, string) { 5767 return A2( 5768 elm$core$String$join, 5769 after, 5770 A2(elm$core$String$split, before, string)); 5771 }); 5772var elm$core$Task$onError = _Scheduler_onError; 5773var elm$core$Task$attempt = F2( 5774 function (resultToMessage, task) { 5775 return elm$core$Task$command( 5776 elm$core$Task$Perform( 5777 A2( 5778 elm$core$Task$onError, 5779 A2( 5780 elm$core$Basics$composeL, 5781 A2(elm$core$Basics$composeL, elm$core$Task$succeed, resultToMessage),
5782 elm$core$Result$Err), 5783 A2( 5784 elm$core$Task$andThen, 5785 A2( 5786 elm$core$Basics$composeL, 5787 A2(elm$core$Basics$composeL, elm$core$Task$succeed, resultToMessage), 5788 elm$core$Result$Ok), 5789 task)))); 5790 }); 5791var elm$url$Url$addPort = F2( 5792 function (maybePort, starter) { 5793 if (maybePort.$ === 'Nothing') { 5794 return starter; 5795 } else { 5796 var port_ = maybePort.a; 5797 return starter + (':' + elm$core$String$fromInt(port_)); 5798 } 5799 }); 5800var elm$url$Url$addPrefixed = F3( 5801 function (prefix, maybeSegment, starter) { 5802 if (maybeSegment.$ === 'Nothing') { 5803 return starter; 5804 } else { 5805 var segment = maybeSegment.a; 5806 return _Utils_ap( 5807 starter, 5808 _Utils_ap(prefix, segment)); 5809 } 5810 }); 5811var elm$url$Url$toString = function (url) { 5812 var http = function () { 5813 var _n0 = url.protocol; 5814 if (_n0.$ === 'Http') { 5815 return 'http://'; 5816 } else { 5817 return 'https://'; 5818 } 5819 }(); 5820 return A3( 5821 elm$url$Url$addPrefixed, 5822 '#', 5823 url.fragment, 5824 A3( 5825 elm$url$Url$addPrefixed, 5826 '?', 5827 url.query, 5828 _Utils_ap( 5829 A2( 5830 elm$url$Url$addPort, 5831 url.port_, 5832 _Utils_ap(http, url.host)), 5833 url.path))); 5834}; 5835var dtwrks$elm_book$ElmBook$Internal$Application$update = F3( 5836 function (config, msg, model) { 5837 var logAction_ = F2( 5838 function (context, action) { 5839 return _Utils_Tuple2( 5840 _Utils_update( 5841 model, 5842 { 5843 actionLog: A2( 5844 elm$core$List$cons, 5845 _Utils_Tuple2(context, action), 5846 model.actionLog) 5847 }), 5848 elm$core$Platform$Cmd$none); 5849 }); 5850 var hashBasedNavigation_ = dtwrks$elm_book$ElmBook$Internal$ThemeOptions$hashBasedNavigation(config.themeOptions); 5851 var activeChapter = A2(dtwrks$elm_book$ElmBook$Internal$Book$chapterFromUrl, config, model.url); 5852 var defaultLogContext = A2( 5853 elm$core$Maybe$withDefault, 5854 '', 5855 A2( 5856 elm$core$Maybe$map, 5857 function (s) { 5858 return s + ' / '; 5859 }, 5860 A2(elm$core$Maybe$map, dtwrks$elm_book$ElmBook$Internal$Chapter$chapterTitle, activeChapter))); 5861 switch (msg.$) { 5862 case 'OnUrlRequest': 5863 var request = msg.a; 5864 if (request.$ === 'External') { 5865 var url = request.a; 5866 return _Utils_Tuple2( 5867 model, 5868 elm$browser$Browser$Navigation$load(url)); 5869 } else { 5870 var url = request.a; 5871 return A2(elm$core$String$contains, '/logAction', url.path) ? A2( 5872 logAction_, 5873 defaultLogContext, 5874 'Navigate to: ' + A3(elm$core$String$replace, '/logAction', '', url.path)) : _Utils_Tuple2( 5875 model, 5876 A2( 5877 elm$browser$Browser$Navigation$pushUrl, 5878 model.navKey, 5879 elm$url$Url$toString(url))); 5880 } 5881 case 'OnUrlChange': 5882 var url_ = msg.a; 5883 var url = A2(dtwrks$elm_book$ElmBook$Internal$Application$extractPath, hashBasedNavigation_, url_); 5884 if (url === '/') { 5885 return A2( 5886 elm$core$Maybe$withDefault, 5887 _Utils_Tuple2( 5888 _Utils_update( 5889 model, 5890 {url: '/'}), 5891 elm$core$Platform$Cmd$none), 5892 A2( 5893 elm$core$Maybe$map, 5894 function (fallback) { 5895 return _Utils_Tuple2( 5896 model, 5897 A2( 5898 elm$browser$Browser$Navigation$pushUrl, 5899 model.navKey, 5900 dtwrks$elm_book$ElmBook$Internal$Chapter$chapterUrl(fallback))); 5901 }, 5902 A2(elm$core$Array$get, 0, config.chapters))); 5903 } else { 5904 var urlChapter = A2( 5905 elm$core$Maybe$andThen, 5906 function (i) { 5907 return A2(elm$core$Array$get, i, config.chapters); 5908 }, 5909 A2(elm$core$Dict$get, url, config.chapterByUrl)); 5910 if (urlChapter.$ === 'Just') { 5911 var chapter = urlChapter.a; 5912 var _n4 = A2( 5913 elm$core$Maybe$withDefault, 5914 _Utils_Tuple2(model.state, elm$core$Platform$Cmd$none), 5915 A2( 5916 elm$core$Maybe$map, 5917 elm$core$Tuple$mapFirst(elm$core$Maybe$Just), 5918 A3( 5919 elm$core$Maybe$map2, 5920 F2( 5921 function (state_, chapterInit) { 5922 return chapterInit(state_); 5923 }), 5924 model.state, 5925 dtwrks$elm_book$ElmBook$Internal$Chapter$init(chapter)))); 5926 var state = _n4.a; 5927 var cmd = _n4.b; 5928 return _Utils_Tuple2( 5929 _Utils_update( 5930 model, 5931 {isMenuOpen: false, state: state, url: url}), 5932 elm$core$Platform$Cmd$batch( 5933 _List_fromArray( 5934 [ 5935 cmd, 5936 A2( 5937 elm$core$Task$attempt, 5938 function (_n5) { 5939 return dtwrks$elm_book$ElmBook$Internal$Msg$DoNothing; 5940 }, 5941 A3(elm$browser$Browser$Dom$setViewportOf, 'elm-book-main', 0, 0
5941)) 5942 ]))); 5943 } else { 5944 return _Utils_Tuple2( 5945 _Utils_update( 5946 model, 5947 {isMenuOpen: false, url: url}), 5948 A2( 5949 elm$browser$Browser$Navigation$replaceUrl, 5950 model.navKey, 5951 hashBasedNavigation_ ? '#/' : '/')); 5952 } 5953 } 5954 case 'ToggleDarkMode': 5955 var darkMode = !model.darkMode; 5956 return _Utils_Tuple2( 5957 _Utils_update( 5958 model, 5959 { 5960 darkMode: darkMode, 5961 state: A2( 5962 elm$core$Maybe$map, 5963 config.statefulOptions.onDarkModeChange(darkMode), 5964 model.state) 5965 }), 5966 elm$core$Platform$Cmd$none); 5967 case 'UpdateState': 5968 var fn = msg.a; 5969 return A2( 5970 elm$core$Maybe$withDefault, 5971 _Utils_Tuple2(model, elm$core$Platform$Cmd$none), 5972 A2( 5973 elm$core$Maybe$map, 5974 elm$core$Tuple$mapFirst( 5975 function (s) { 5976 return _Utils_update( 5977 model, 5978 { 5979 state: elm$core$Maybe$Just(s) 5980 }); 5981 }), 5982 A2(elm$core$Maybe$map, fn, model.state))); 5983 case 'LogAction': 5984 var context = msg.a; 5985 var action = msg.b; 5986 return A2(logAction_, context, action); 5987 case 'ActionLogShow': 5988 return _Utils_Tuple2( 5989 _Utils_update( 5990 model, 5991 {actionLogModal: true}), 5992 elm$core$Platform$Cmd$none); 5993 case 'ActionLogHide': 5994 return _Utils_Tuple2( 5995 _Utils_update( 5996 model, 5997 {actionLogModal: false}), 5998 elm$core$Platform$Cmd$none); 5999 case 'SearchFocus': 6000 return _Utils_Tuple2( 6001 _Utils_update( 6002 model, 6003 {chapterPreSelected: 0, isSearching: true}), 6004 elm$core$Platform$Cmd$none); 6005 case 'SearchBlur': 6006 return _Utils_Tuple2(model, elm$core$Platform$Cmd$none); 6007 case 'Search': 6008 var value = msg.a; 6009 return _Utils_Tuple2( 6010 _Utils_update( 6011 model, 6012 {chapterPreSelected: 0, search: value}), 6013 elm$core$Platform$Cmd$none); 6014 case 'ToggleMenu': 6015 return _Utils_Tuple2( 6016 _Utils_update( 6017 model, 6018 {isMenuOpen: !model.isMenuOpen}), 6019 elm$core$Platform$Cmd$none); 6020 case 'KeyArrowDown': 6021 return _Utils_Tuple2( 6022 _Utils_update( 6023 model, 6024 {chapterPreSelected: model.chapterPreSelected + 1}), 6025 elm$core$Platform$Cmd$none); 6026 case 'KeyArrowUp': 6027 return _Utils_Tuple2( 6028 _Utils_update( 6029 model, 6030 {chapterPreSelected: model.chapterPreSelected - 1}), 6031 elm$core$Platform$Cmd$none); 6032 case 'KeyShiftOn': 6033 return _Utils_Tuple2( 6034 _Utils_update( 6035 model, 6036 {isShiftPressed: true}), 6037 elm$core$Platform$Cmd$none); 6038 case 'KeyShiftOff': 6039 return _Utils_Tuple2( 6040 _Utils_update( 6041 model, 6042 {isShiftPressed: false}), 6043 elm$core$Platform$Cmd$none); 6044 case 'KeyMetaOn': 6045 return _Utils_Tuple2( 6046 _Utils_update( 6047 model, 6048 {isMetaPressed: true}), 6049 elm$core$Platform$Cmd$none); 6050 case 'KeyMetaOff': 6051 return _Utils_Tuple2( 6052 _Utils_update( 6053 model, 6054 {isMetaPressed: false}), 6055 elm$core$Platform$Cmd$none); 6056 case 'KeyK': 6057 return model.isMetaPressed ? _Utils_Tuple2( 6058 model, 6059 A2( 6060 elm$core$Task$attempt, 6061 function (_n6) { 6062 return dtwrks$elm_book$ElmBook$Internal$Msg$DoNothing; 6063 }, 6064 elm$browser$Browser$Dom$focus('elm-book-search'))) : _Utils_Tuple2(model, elm$core$Platform$Cmd$none); 6065 case 'KeyEnter': 6066 if (!model.isSearching) { 6067 return _Utils_Tuple2(model, elm$core$Platform$Cmd$none); 6068 } else { 6069 var preSelectedIndex = A2( 6070 elm$core$Basics$modBy, 6071 elm$core$Array$length(config.chapters), 6072 model.chapterPreSelected); 6073 var targetChapter = A2(elm$core$Array$get, preSelectedIndex, config.chapters); 6074 if (targetChapter.$ === 'Just') { 6075 var chapter_ = targetChapter.a; 6076 return dtwrks$elm_book$ElmBook$Internal$Chapter$chapterInternal(chapter_) ? _Utils_Tuple2( 6077 model, 6078 A2( 6079 elm$browser$Browser$Navigation$pushUrl, 6080 model.navKey, 6081 A2(dtwrks$elm_book$ElmBook$Internal$Chapter$chapterNavUrl, hashBasedNavigation_, chapter_))) : _Utils_Tuple2( 6082 model, 6083 elm$browser$Browser$Navigation$load( 6084 dtwrks$elm_book$ElmBook$Internal$Chapter$chapterUrl(chapter_))); 6085 } else { 6086 return _Utils_Tuple2(model, elm$core$Platform$Cmd$none); 6087 } 6088 }
6089 case 'SetThemeBackgroundGradient': 6090 var startColor = msg.a; 6091 var endColor = msg.b; 6092 return A2( 6093 dtwrks$elm_book$ElmBook$Internal$Application$updateThemeOverrides, 6094 model, 6095 function (t) { 6096 return _Utils_update( 6097 t, 6098 { 6099 background: elm$core$Maybe$Just('linear-gradient(150deg, ' + (startColor + (' 0%, ' + (endColor + ' 100%)')))) 6100 }); 6101 }); 6102 case 'SetThemeBackground': 6103 var background = msg.a; 6104 return A2( 6105 dtwrks$elm_book$ElmBook$Internal$Application$updateThemeOverrides, 6106 model, 6107 function (t) { 6108 return _Utils_update( 6109 t, 6110 { 6111 background: elm$core$Maybe$Just(background) 6112 }); 6113 }); 6114 case 'SetThemeAccent': 6115 var accent = msg.a; 6116 return A2( 6117 dtwrks$elm_book$ElmBook$Internal$Application$updateThemeOverrides, 6118 model, 6119 function (t) { 6120 return _Utils_update( 6121 t, 6122 { 6123 accent: elm$core$Maybe$Just(accent) 6124 }); 6125 }); 6126 case 'SetThemeNavBackground': 6127 var navBackground = msg.a; 6128 return A2( 6129 dtwrks$elm_book$ElmBook$Internal$Application$updateThemeOverrides, 6130 model, 6131 function (t) { 6132 return _Utils_update( 6133 t, 6134 { 6135 navBackground: elm$core$Maybe$Just(navBackground) 6136 }); 6137 }); 6138 case 'SetThemeNavAccent': 6139 var navAccent = msg.a; 6140 return A2( 6141 dtwrks$elm_book$ElmBook$Internal$Application$updateThemeOverrides, 6142 model, 6143 function (t) { 6144 return _Utils_update( 6145 t, 6146 { 6147 navAccent: elm$core$Maybe$Just(navAccent) 6148 }); 6149 }); 6150 case 'SetThemeNavAccentHighlight': 6151 var navAccentHighlight = msg.a; 6152 return A2( 6153 dtwrks$elm_book$ElmBook$Internal$Application$updateThemeOverrides, 6154 model, 6155 function (t) { 6156 return _Utils_update( 6157 t, 6158 { 6159 navAccentHighlight: elm$core$Maybe$Just(navAccentHighlight) 6160 }); 6161 }); 6162 default: 6163 return _Utils_Tuple2(model, elm$core$Platform$Cmd$none); 6164 } 6165 }); 6166var elm$virtual_dom$VirtualDom$text = _VirtualDom_text; 6167var elm$html$Html$text = elm$virtual_dom$VirtualDom$text; 6168var dtwrks$elm_book$ElmBook$Internal$Application$componentView = F3( 6169 function (toHtml, state_, componentView_) { 6170 if (componentView_.$ === 'ChapterComponentViewStateless') { 6171 var html = componentView_.a; 6172 return toHtml(html); 6173 } else { 6174 var html = componentView_.a; 6175 return A2( 6176 elm$core$Maybe$withDefault, 6177 elm$html$Html$text(''), 6178 A2( 6179 elm$core$Maybe$map, 6180 A2(elm$core$Basics$composeL, toHtml, html), 6181 state_)); 6182 } 6183 }); 6184var elm$core$Array$fromListHelp = F3( 6185 function (list, nodeList, nodeListSize) { 6186 fromListHelp: 6187 while (true) { 6188 var _n0 = A2(elm$core$Elm$JsArray$initializeFromList, elm$core$Array$branchFactor, list); 6189 var jsArray = _n0.a; 6190 var remainingItems = _n0.b; 6191 if (_Utils_cmp( 6192 elm$core$Elm$JsArray$length(jsArray), 6193 elm$core$Array$branchFactor) < 0) { 6194 return A2( 6195 elm$core$Array$builderToArray, 6196 true, 6197 {nodeList: nodeList, nodeListSize: nodeListSize, tail: jsArray}); 6198 } else { 6199 var $temp$list = remainingItems, 6200 $temp$nodeList = A2( 6201 elm$core$List$cons, 6202 elm$core$Array$Leaf(jsArray), 6203 nodeList), 6204 $temp$nodeListSize = nodeListSize + 1; 6205 list = $temp$list; 6206 nodeList = $temp$nodeList; 6207 nodeListSize = $temp$nodeListSize; 6208 continue fromListHelp; 6209 } 6210 } 6211 }); 6212var elm$core$Array$fromList = function (list) { 6213 if (!list.b) { 6214 return elm$core$Array$empty; 6215 } else { 6216 return A3(elm$core$Array$fromListHelp, list, _List_Nil, 0); 6217 } 6218}; 6219var elm$core$Array$filter = F2( 6220 function (isGood, array) { 6221 return elm$core$Array$fromList( 6222 A3( 6223 elm$core$Array$foldr, 6224 F2( 6225 function (x, xs) { 6226 return isGood(x) ? A2(elm$core$List$cons, x, xs) : xs; 6227 }), 6228 _List_Nil, 6229 array)); 6230 });
6231var dtwrks$elm_book$ElmBook$Internal$Application$searchChapters = F2( 6232 function (search, chapters) { 6233 if (search === '') { 6234 return chapters; 6235 } else { 6236 var searchLowerCase = elm$core$String$toLower(search); 6237 var titleMatchesSearch = function (_n1) { 6238 var title = _n1.a.title; 6239 return A2( 6240 elm$core$String$contains, 6241 searchLowerCase, 6242 elm$core$String$toLower(title)); 6243 }; 6244 return A2(elm$core$Array$filter, titleMatchesSearch, chapters); 6245 } 6246 }); 6247var dtwrks$elm_book$ElmBook$Internal$Chapter$chapterBreadcrumb = function (_n0) { 6248 var chapter = _n0.a; 6249 return function (t) { 6250 return _Utils_ap(t, chapter.title); 6251 }( 6252 A2( 6253 elm$core$Maybe$withDefault, 6254 '', 6255 A2( 6256 elm$core$Maybe$map, 6257 function (t) { 6258 return t + ' / '; 6259 }, 6260 chapter.groupTitle))); 6261}; 6262var dtwrks$elm_book$ElmBook$Internal$Chapter$toValidOptions = F2( 6263 function (valid, _n0) { 6264 var options = _n0.a; 6265 return { 6266 hiddenTitle: A2(elm$core$Maybe$withDefault, valid.hiddenTitle, options.hiddenTitle) 6267 }; 6268 }); 6269var dtwrks$elm_book$ElmBook$Internal$ComponentOptions$toValidOptions = F2( 6270 function (validSettings, _n0) { 6271 var settings = _n0.a; 6272 return { 6273 background: A2(elm$core$Maybe$withDefault, validSettings.background, settings.background), 6274 display: A2(elm$core$Maybe$withDefault, validSettings.display, settings.display), 6275 fullWidth: A2(elm$core$Maybe$withDefault, validSettings.fullWidth, settings.fullWidth), 6276 hiddenLabel: A2(elm$core$Maybe$withDefault, validSettings.hiddenLabel, settings.hiddenLabel) 6277 }; 6278 }); 6279var dtwrks$elm_book$ElmBook$Internal$Msg$ActionLogHide = {$: 'ActionLogHide'}; 6280var dtwrks$elm_book$ElmBook$Internal$Msg$ActionLogShow = {$: 'ActionLogShow'}; 6281var dtwrks$elm_book$ElmBook$Internal$Msg$Search = function (a) { 6282 return {$: 'Search', a: a}; 6283}; 6284var dtwrks$elm_book$ElmBook$Internal$Msg$SearchBlur = {$: 'SearchBlur'}; 6285var dtwrks$elm_book$ElmBook$Internal$Msg$SearchFocus = {$: 'SearchFocus'}; 6286var dtwrks$elm_book$ElmBook$Internal$Msg$ToggleDarkMode = {$: 'ToggleDarkMode'}; 6287var dtwrks$elm_book$ElmBook$Internal$Msg$ToggleMenu = {$: 'ToggleMenu'}; 6288var dtwrks$elm_book$ElmBook$Internal$ThemeOptions$applyOverrides = F2( 6289 function (theme, overrides) { 6290 return _Utils_update( 6291 theme, 6292 { 6293 accent: A2(elm$core$Maybe$withDefault, theme.accent, overrides.accent), 6294 background: A2(elm$core$Maybe$withDefault, theme.background, overrides.background), 6295 navAccent: A2(elm$core$Maybe$withDefault, theme.navAccent, overrides.navAccent), 6296 navAccentHighlight: A2(elm$core$Maybe$withDefault, theme.navAccentHighlight, overrides.navAccentHighlight), 6297 navBackground: A2(elm$core$Maybe$withDefault, theme.navBackground, overrides.navBackground) 6298 }); 6299 }); 6300var dtwrks$elm_book$ElmBook$Internal$ThemeOptions$subtitle = function (theme) { 6301 return theme.subtitle; 6302}; 6303var elm$html$Html$div = _VirtualDom_node('div'); 6304var elm$html$Html$p = _VirtualDom_node('p'); 6305var elm$json$Json$Encode$string = _Json_wrap; 6306var elm$html$Html$Attributes$stringProperty = F2( 6307 function (key, string) { 6308 return A2( 6309 _VirtualDom_property, 6310 key, 6311 elm$json$Json$Encode$string(string)); 6312 }); 6313var elm$html$Html$Attributes$class = elm$html$Html$Attributes$stringProperty('className'); 6314var dtwrks$elm_book$ElmBook$UI$ActionLog$item = F2( 6315 function (index, _n0) { 6316 var preffix = _n0.a; 6317 var label = _n0.b; 6318 return A2( 6319 elm$html$Html$div, 6320 _List_fromArray( 6321 [ 6322 elm$html$Html$Attributes$class('elm-book-wrapper elm-book-action-log-item-wrapper elm-book-monospace') 6323 ]), 6324 _List_fromArray( 6325 [ 6326 A2( 6327 elm$html$Html$p, 6328 _List_fromArray( 6329 [ 6330 elm$html$Html$Attributes$class('elm-book-action-log-item-index') 6331 ]), 6332 _List_fromArray( 6333 [ 6334 elm$html$Html$text( 6335 '(' + (elm$core$String$fromInt(index + 1) + ')')) 6336 ])), 6337 A2( 6338 elm$html$Html$div, 6339 _List_fromArray( 6340 [ 6341 elm$html$Html$Attributes$class('elm-book-action-log__main') 6342 ]), 6343 _List_fromArray( 6344 [ 6345 A2( 6346 elm$html$Html$p, 6347 _List_fromArray( 6348 [ 6349 elm$html$Html$Attributes$class('elm-book-action-log-item-preffix') 6350 ]), 6351 _List_fromArray( 6352 [ 6353 elm$html$Html$text(preffix) 6354 ])), 6355 A2( 6356 elm$html$Html$p, 6357 _List_fromArray( 6358 [ 6359 elm$html$Html$Attributes$class('elm-book-action-log-item-label') 6360 ]), 6361 _List_fromArray( 6362 [ 6363 elm$html$Html$text(label) 6364 ])) 6365 ])) 6366 ])); 6367 });
6368var dtwrks$elm_book$ElmBook$UI$Helpers$themeBackgroundVar = '--elm-book-background'; 6369var dtwrks$elm_book$ElmBook$UI$Helpers$var_ = function (v) { 6370 return 'var(' + (v + ')'); 6371}; 6372var dtwrks$elm_book$ElmBook$UI$Helpers$themeBackground = dtwrks$elm_book$ElmBook$UI$Helpers$var_(dtwrks$elm_book$ElmBook$UI$Helpers$themeBackgroundVar); 6373var elm$html$Html$li = _VirtualDom_node('li'); 6374var elm$html$Html$ul = _VirtualDom_node('ul'); 6375var elm$virtual_dom$VirtualDom$style = _VirtualDom_style; 6376var elm$html$Html$Attributes$style = elm$virtual_dom$VirtualDom$style; 6377var dtwrks$elm_book$ElmBook$UI$ActionLog$list = function (props) { 6378 return A2( 6379 elm$html$Html$div, 6380 _List_fromArray( 6381 [ 6382 elm$html$Html$Attributes$class('elm-book elm-book-action-log-list-wrapper') 6383 ]), 6384 _List_fromArray( 6385 [ 6386 A2( 6387 elm$html$Html$p, 6388 _List_fromArray( 6389 [ 6390 elm$html$Html$Attributes$class('elm-book elm-book-action-log-list-header elm-book-sans'), 6391 A2(elm$html$Html$Attributes$style, 'background', dtwrks$elm_book$ElmBook$UI$Helpers$themeBackgroun
6391d) 6392 ]), 6393 _List_fromArray( 6394 [ 6395 elm$html$Html$text('Action log') 6396 ])), 6397 A2( 6398 elm$html$Html$ul, 6399 _List_fromArray( 6400 [ 6401 elm$html$Html$Attributes$class('elm-book elm-book-action-log-list') 6402 ]), 6403 A2( 6404 elm$core$List$map, 6405 function (item_) { 6406 return A2( 6407 elm$html$Html$li, 6408 _List_fromArray( 6409 [ 6410 elm$html$Html$Attributes$class('elm-book elm-book-action-log-list-item') 6411 ]), 6412 _List_fromArray( 6413 [item_])); 6414 }, 6415 elm$core$List$reverse( 6416 A2(elm$core$List$indexedMap, dtwrks$elm_book$ElmBook$UI$ActionLog$item, props)))) 6417 ])); 6418}; 6419var elm$html$Html$button = _VirtualDom_node('button'); 6420var elm$virtual_dom$VirtualDom$Normal = function (a) { 6421 return {$: 'Normal', a: a}; 6422}; 6423var elm$virtual_dom$VirtualDom$on = _VirtualDom_on; 6424var elm$html$Html$Events$on = F2( 6425 function (event, decoder) { 6426 return A2( 6427 elm$virtual_dom$VirtualDom$on, 6428 event, 6429 elm$virtual_dom$VirtualDom$Normal(decoder)); 6430 }); 6431var elm$html$Html$Events$onClick = function (msg) { 6432 return A2( 6433 elm$html$Html$Events$on, 6434 'click', 6435 elm$json$Json$Decode$succeed(msg)); 6436}; 6437var dtwrks$elm_book$ElmBook$UI$ActionLog$preview = function (props) { 6438 return A2( 6439 elm$html$Html$div, 6440 _List_fromArray( 6441 [ 6442 elm$html$Html$Attributes$class('elm-book-action-log-preview-wrapper') 6443 ]), 6444 _List_fromArray( 6445 [ 6446 A2( 6447 elm$html$Html$button, 6448 _List_fromArray( 6449 [ 6450 elm$html$Html$Attributes$class('elm-book-action-log-preview'), 6451 elm$html$Html$Events$onClick(props.onClick) 6452 ]), 6453 _List_fromArray( 6454 [ 6455 A2(dtwrks$elm_book$ElmBook$UI$ActionLog$item, props.lastActionIndex, props.lastAction) 6456 ])) 6457 ])); 6458}; 6459var dtwrks$elm_book$ElmBook$UI$ActionLog$previewEmpty = A2( 6460 elm$html$Html$div, 6461 _List_fromArray( 6462 [ 6463 elm$html$Html$Attributes$class('elm-book-monospace elm-book-action-log-preview-empty-wrapper') 6464 ]), 6465 _List_fromArray( 6466 [ 6467 A2( 6468 elm$html$Html$div, 6469 _List_fromArray( 6470 [ 6471 elm$html$Html$Attributes$class('elm-book-action-log-preview-empty') 6472 ]), 6473 _List_fromArray( 6474 [ 6475 elm$html$Html$text('Your logged actions will appear here.') 6476 ])) 6477 ])); 6478var dillonkearns$elm_markdown$Whitespace$isLineEnd = function (_char) { 6479 switch (_char.valueOf()) { 6480 case '\n': 6481 return true; 6482 case '\r': 6483 return true; 6484 default: 6485 return false; 6486 } 6487}; 6488var elm$parser$Parser$Advanced$Parser = function (a) { 6489 return {$: 'Parser', a: a}; 6490}; 6491var elm$core$Basics$negate = function (n) { 6492 return -n; 6493}; 6494var elm$parser$Parser$Advanced$Good = F3( 6495 function (a, b, c) { 6496 return {$: 'Good', a: a, b: b, c: c}; 6497 }); 6498var elm$parser$Parser$Advanced$isSubChar = _Parser_isSubChar; 6499var elm$parser$Parser$Advanced$chompWhileHelp = F5( 6500 function (isGood, offset, row, col, s0) { 6501 chompWhileHelp: 6502 while (true) { 6503 var newOffset = A3(elm$parser$Parser$Advanced$isSubChar, isGood, offset, s0.src); 6504 if (_Utils_eq(newOffset, -1)) { 6505 return A3( 6506 elm$parser$Parser$Advanced$Good, 6507 _Utils_cmp(s0.offset, offset) < 0, 6508 _Utils_Tuple0, 6509 {col: col, context: s0.context, indent: s0.indent, offset: offset, row: row, src: s0.src}); 6510 } else { 6511 if (_Utils_eq(newOffset, -2)) { 6512 var $temp$isGood = isGood, 6513 $temp$offset = offset + 1, 6514 $temp$row = row + 1, 6515 $temp$col = 1, 6516 $temp$s0 = s0; 6517 isGood = $temp$isGood; 6518 offset = $temp$offset; 6519 row = $temp$row; 6520 col = $temp$col; 6521 s0 = $temp$s0; 6522 continue chompWhileHelp; 6523 } else { 6524 var $temp$isGood = isGood, 6525 $temp$offset = newOffset, 6526 $temp$row = row, 6527 $temp$col = col + 1, 6528 $temp$s0 = s0; 6529 isGood = $temp$isGood; 6530 offset = $temp$offset; 6531 row = $temp$row; 6532 col = $temp$col; 6533 s0 = $temp$s0; 6534 continue chompWhileHelp; 6535 } 6536 } 6537 } 6538 }); 6539var elm$parser$Parser$Advanced$chompWhile = function (isGood) { 6540 return elm$parser$Parser$Advanced$Parser( 6541 function (s) { 6542 return A5(elm$parser$Parser$Advanced$chompWhileHelp, isGood, s.offset, s.row, s.col, s); 6543 }); 6544}; 6545var dillonkearns$elm_markdown$Helpers$chompUntilLineEndOrEnd = elm$parser$Parser$Advanced$chompWhile( 6546 A2(elm$core$Basics$composeL, elm$core$Basics$not, dillonkearns$elm_markdown$Whitespace$isLineEnd)); 6547var elm$parser$Parser$Expecting = function (a) { 6548 return {$: 'Expecting', a: a}; 6549}; 6550var elm$parser$Parser$Advanced$Bad = F2( 6551 function (a, b) { 6552 return {$: 'Bad', a: a, b: b}; 6553 }); 6554var elm$parser$Parser$Advanced$AddRight = F2( 6555 function (a, b) { 6556 return {$: 'AddRight', a: a, b: b}; 6557 }); 6558var elm$parser$Parser$Advanced$DeadEnd = F4( 6559 function (row, col, problem, contextStack) { 6560 return {col: col, contextStack: contextStack, problem: problem, row: row}; 6561 }); 6562var elm$parser$Parser$Advanced$Empty = {$: 'Empty'}; 6563var elm$parser$Parser$Advanced$fromState = F2( 6564 function (s, x) { 6565 return A2( 6566 elm$parser$Parser$Advanced$AddRight, 6567 elm$parser$Parser$Advanced$Empty, 6568 A4(elm$parser$Parser$Advanced$DeadEnd, s.row, s.col, x, s.context)); 6569 }); 6570var elm$parser$Parser$Advanced$end = function (x) { 6571 return elm$parser$Parser$Advanced$Parser( 6572 function (s) { 6573 return _Utils_eq( 6574 elm$core$String$length(s.src), 6575 s.offset) ? A3(elm$parser$Parser$Advanced$Good, false, _Utils_Tuple0, s) : A2( 6576 elm$parser$Parser$Advanced$Bad, 6577 false, 6578 A2(elm$parser$Parser$Advanced$fromState, s, x)); 6579 }); 6580}; 6581var dillonkearns$elm_markdown$Helpers$endOfFile = elm$parser$Parser$Advanced$end( 6582 elm$parser$Parser$Expecting('the end of the input')); 6583var elm$parser$Parser$Advanced$Token = F2( 6584 function (a, b) { 6585 return {$: 'Token', a: a, b: b}; 6586 }); 6587var dillonkearns$elm_markdown$Parser$Token$carriageReturn = A2( 6588 elm$parser$Parser$Advanced$Token, 6589 '\r', 6590 elm$parser$Parser$Expecting('a carriage return')); 6591var dillonkearns$elm_markdown$Parser$Token$newline = A2( 6592 elm$parser$Parser$Advanced$Token, 6593 '\n', 6594 elm$parser$Parser$Expecting('a newline')); 6595var elm$core$Basics$always = F2( 6596 function (a, _n0) { 6597 return a; 6598 }); 6599var elm$parser$Parser$Advanced$map2 = F3( 6600 function (func, _n0, _n1) { 6601 var parseA = _n0.a; 6602 var parseB = _n1.a; 6603 return elm$parser$Parser$Advanced$Parser( 6604 function (s0) { 6605 var _n2 = parseA(s0); 6606 if (_n2.$ === 'Bad') { 6607 var p = _n2.a; 6608 var x = _n2.b; 6609 return A2(elm$parser$Parser$Advanced$Bad, p, x); 6610 } else { 6611 var p1 = _n2.a; 6612 var a = _n2.b; 6613 var s1 = _n2.c; 6614 var _n3 = parseB(s1); 6615 if (_n3.$ === 'Bad') { 6616 var p2 = _n3.a; 6617 var x = _n3.b; 6618 return A2(elm$parser$Parser$Advanced$Bad, p1 || p2, x); 6619 } else { 6620 var p2 = _n3.a; 6621 var b = _n3.b; 6622 var s2 = _n3.c; 6623 return A3( 6624 elm$parser$Parser$Advanced$Good, 6625 p1 || p2, 6626 A2(func, a, b), 6627 s2); 6628 } 6629 } 6630 }); 6631 }); 6632var elm$parser$Parser$Advanced$ignorer = F2( 6633 function (keepParser, ignoreParser) { 6634 return A3(elm$parser$Parser$Advanced$map2, elm$core$Basics$always, keepParser, ignoreParser); 6635 }); 6636var elm$parser$Parser$Advanced$Append = F2( 6637 function (a, b) { 6638 return {$: 'Append', a: a, b: b}; 6639 }); 6640var elm$parser$Parser$Advanced$oneOfHelp = F3( 6641 function (s0, bag, parsers) { 6642 oneOfHelp: 6643 while (true) { 6644 if (!parsers.b) { 6645 return A2(elm$parser$Parser$Advanced$Bad, false, bag); 6646 } else { 6647 var parse = parsers.a.a; 6648 var remainingParsers = parsers.b; 6649 var _n1 = parse(s0); 6650 if (_n1.$ === 'Good') { 6651 var step = _n1; 6652 return step; 6653 } else { 6654 var step = _n1; 6655 var p = step.a; 6656 var x = step.b; 6657 if (p) { 6658 return step; 6659 } else { 6660 var $temp$s0 = s0, 6661 $temp$bag = A2(elm$parser$Parser$Advanced$Append, bag, x), 6662 $temp$parsers = remainingParsers; 6663 s0 = $temp$s0; 6664 bag = $temp$bag; 6665 parsers = $temp$parsers; 6666 continue oneOfHelp; 6667 } 6668 } 6669 } 6670 } 6671 }); 6672var elm$parser$Parser$Advanced$oneOf = function (parsers) { 6673 return elm$parser$Parser$Advanced$Parser( 6674 function (s) { 6675 return A3(elm$parser$Parser$Advanced$oneOfHelp, s, elm$parser$Parser$Advanced$Empty, parsers); 6676 }); 6677}; 6678var elm$parser$Parser$Advanced$succeed = function (a) { 6679 return elm$parser$Parser$Advanced$Parser( 6680 function (s) { 6681 return A3(elm$parser$Parser$Advanced$Good, false, a, s); 6682 }); 6683}; 6684var elm$parser$Parser$Advanced$isSubString = _Parser_isSubString; 6685var elm$parser$Parser$Advanced$token = function (_n0) { 6686 var str = _n0.a; 6687 var expecting = _n0.b; 6688 var progress = !elm$core$String$isEmpty(str); 6689 return elm$parser$Parser$Advanced$Parser( 6690 function (s) { 6691 var _n1 = A5(elm$parser$Parser$Advanced$isSubString, str, s.offset, s.row, s.col, s.src); 6692 var newOffset = _n1.a; 6693 var newRow = _n1.b; 6694 var newCol = _n1.c; 6695 return _Utils_eq(newOffset, -1) ? A2( 6696 elm$parser$Parser$Advanced$Bad, 6697 false, 6698 A2(elm$parser$Parser$Advanced$fromState, s, expecting)) : A3( 6699 elm$parser$Parser$Advanced$Good, 6700 progress, 6701 _Utils_Tuple0, 6702 {col: newCol, context: s.context, indent: s.indent, offset: newOffset, row: newRow, src: s.src}); 6703 }); 6704}; 6705var dillonkearns$elm_markdown$Whitespace$lineEnd = elm$parser$Parser$Advanced$oneOf( 6706 _List_fromArray( 6707 [ 6708 elm$parser$Parser$Advanced$token(dillonkearns$elm_markdown$Parser$Token$newline), 6709 A2( 6710 elm$parser$Parser$Advanced$ignorer, 6711 elm$parser$Parser$Advanced$token(dillonkearns$elm_markdown$Parser$Token$carriageReturn), 6712 elm$parser$Parser$Advanced$oneOf( 6713 _List_fromArray( 6714 [ 6715 elm$parser$Parser$Advanced$token(dillonkearns$elm_markdown$Parser$Token$newline), 6716 elm$parser$Parser$Advanced$succeed(_Utils_Tuple0) 6717 ]))) 6718 ])); 6719var dillonkearns$elm_markdown$Helpers$lineEndOrEnd = elm$parser$Parser$Advanced$oneOf( 6720 _List_fromArray( 6721 [dillonkearns$elm_markdown$Whitespace$lineEnd, dillonkearns$elm_markdown$Helpers$endOfFile])); 6722var dillonkearns$elm_markdown$HtmlParser$Cdata = function (a) { 6723 return {$: 'Cdata', a: a}; 6724}; 6725var dillonkearns$elm_markdown$HtmlParser$Element = F3( 6726 function (a, b, c) {
6727 return {$: 'Element', a: a, b: b, c: c}; 6728 }); 6729var dillonkearns$elm_markdown$HtmlParser$Text = function (a) { 6730 return {$: 'Text', a: a}; 6731}; 6732var dillonkearns$elm_markdown$HtmlParser$expectTagNameCharacter = elm$parser$Parser$Expecting('at least 1 tag name character'); 6733var dillonkearns$elm_markdown$HtmlParser$tagNameCharacter = function (c) { 6734 switch (c.valueOf()) { 6735 case ' ': 6736 return false; 6737 case '\r': 6738 return false; 6739 case '\n': 6740 return false; 6741 case '\t': 6742 return false; 6743 case '/': 6744 return false; 6745 case '<': 6746 return false; 6747 case '>': 6748 return false; 6749 case '\"': 6750 return false; 6751 case '\'': 6752 return false; 6753 case '=': 6754 return false; 6755 default: 6756 return true; 6757 } 6758}; 6759var elm$parser$Parser$Advanced$chompIf = F2( 6760 function (isGood, expecting) { 6761 return elm$parser$Parser$Advanced$Parser( 6762 function (s) { 6763 var newOffset = A3(elm$parser$Parser$Advanced$isSubChar, isGood, s.offset, s.src); 6764 return _Utils_eq(newOffset, -1) ? A2( 6765 elm$parser$Parser$Advanced$Bad, 6766 false, 6767 A2(elm$parser$Parser$Advanced$fromState, s, expecting)) : (_Utils_eq(newOffset, -2) ? A3( 6768 elm$parser$Parser$Advanced$Good, 6769 true, 6770 _Utils_Tuple0, 6771 {col: 1, context: s.context, indent: s.indent, offset: s.offset + 1, row: s.row + 1, src: s.src}) : A3( 6772 elm$parser$Parser$Advanced$Good, 6773 true, 6774 _Utils_Tuple0, 6775 {col: s.col + 1, context: s.context, indent: s.indent, offset: newOffset, row: s.row, src: s.src})); 6776 }); 6777 }); 6778var elm$parser$Parser$Advanced$mapChompedString = F2( 6779 function (func, _n0) { 6780 var parse = _n0.a; 6781 return elm$parser$Parser$Advanced$Parser( 6782 function (s0) { 6783 var _n1 = parse(s0); 6784 if (_n1.$ === 'Bad') { 6785 var p = _n1.a; 6786 var x = _n1.b; 6787 return A2(elm$parser$Parser$Advanced$Bad, p, x); 6788 } else { 6789 var p = _n1.a; 6790 var a = _n1.b; 6791 var s1 = _n1.c; 6792 return A3( 6793 elm$parser$Parser$Advanced$Good, 6794 p, 6795 A2( 6796 func, 6797 A3(elm$core$String$slice, s0.offset, s1.offset, s0.src), 6798 a), 6799 s1); 6800 } 6801 }); 6802 }); 6803var dillonkearns$elm_markdown$HtmlParser$tagName = A2( 6804 elm$parser$Parser$Advanced$mapChompedString, 6805 F2( 6806 function (name, _n0) { 6807 return elm$core$String$toLower(name); 6808 }), 6809 A2( 6810 elm$parser$Parser$Advanced$ignorer, 6811 A2(elm$parser$Parser$Advanced$chompIf, dillonkearns$elm_markdown$HtmlParser$tagNameCharacter, dillonkearns$elm_markdown$HtmlParser$expectTagNameCharacter), 6812 elm$parser$Parser$Advanced$chompWhile(dillonkearns$elm_markdown$HtmlParser$tagNameCharacter))); 6813var dillonkearns$elm_markdown$HtmlParser$attributeName = dillonkearns$elm_markdown$HtmlParser$tagName; 6814var elm$parser$Parser$ExpectingSymbol = function (a) { 6815 return {$: 'ExpectingSymbol', a: a}; 6816}; 6817var dillonkearns$elm_markdown$HtmlParser$symbol = function (str) { 6818 return elm$parser$Parser$Advanced$token( 6819 A2( 6820 elm$parser$Parser$Advanced$Token, 6821 str, 6822 elm$parser$Parser$ExpectingSymbol(str))); 6823}; 6824var elm$core$Dict$RBEmpty_elm_builtin = {$: 'RBEmpty_elm_builtin'}; 6825var elm$core$Dict$empty = elm$core$Dict$RBEmpty_elm_builtin; 6826var elm$core$Dict$Black = {$: 'Black'}; 6827var elm$core$Dict$RBNode_elm_builtin = F5( 6828 function (a, b, c, d, e) { 6829 return {$: 'RBNode_elm_builtin', a: a, b: b, c: c, d: d, e: e}; 6830 }); 6831var elm$core$Dict$Red = {$: 'Red'}; 6832var elm$core$Dict$balance = F5( 6833 function (color, key, value, left, right) { 6834 if ((right.$ === 'RBNode_elm_builtin') && (right.a.$ === 'Red')) { 6835 var _n1 = right.a; 6836 var rK = right.b; 6837 var rV = right.c; 6838 var rLeft = right.d; 6839 var rRight = right.e; 6840 if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) { 6841 var _n3 = left.a; 6842 var lK = left.b; 6843 var lV = left.c; 6844 var lLeft = left.d; 6845 var lRight = left.e; 6846 return A5( 6847 elm$core$Dict$RBNode_elm_builtin, 6848 elm$core$Dict$Red, 6849 key, 6850 value, 6851 A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, lK, lV, lLeft, lRight), 6852 A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, rK, rV, rLeft, rRight)); 6853 } else { 6854 return A5( 6855 elm$core$Dict$RBNode_elm_builtin, 6856 color, 6857 rK, 6858 rV, 6859 A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, key, value, left, rLeft), 6860 rRight); 6861 } 6862 } else { 6863 if ((((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) && (left.d.$ === 'RBNode_elm_builtin')) && (left.d.a.$ === 'Red')) { 6864 var _n5 = left.a; 6865 var lK = left.b; 6866 var lV = left.c; 6867 var _n6 = left.d; 6868 var _n7 = _n6.a; 6869 var llK = _n6.b; 6870 var llV = _n6.c; 6871 var llLeft = _n6.d; 6872 var llRight = _n6.e; 6873 var lRight = left.e; 6874 return A5( 6875 elm$core$Dict$RBNode_elm_builtin, 6876 elm$core$Dict$Red, 6877 lK, 6878 lV, 6879 A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, llK, llV, llLeft, llRight), 6880 A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, key, value, lRight, right)); 6881 } else { 6882 return A5(elm$core$Dict$RBNode_elm_builtin, color, key, value, left, right); 6883 } 6884 } 6885 }); 6886var elm$core$Dict$insertHelp = F3( 6887 function (key, value, dict) { 6888 if (dict.$ === 'RBEmpty_elm_builtin') { 6889 return A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, key, value, elm$core$Dict$RBEmpty_elm_builtin, elm$core$Dict$RBEmpty_elm_builtin); 6890 } else { 6891 var nColor = dict.a; 6892 var nKey = dict.b; 6893 var nValue = dict.c; 6894 var nLeft = dict.d; 6895 var nRight = dict.e; 6896 var _n1 = A2(elm$core$Basics$compare, key, nKey); 6897 switch (_n1.$) { 6898 case 'LT': 6899 return A5( 6900 elm$core$Dict$balance, 6901 nColor, 6902 nKey, 6903 nValue, 6904 A3(elm$core$Dict$insertHelp, key, value, nLeft), 6905 nRight); 6906 case 'EQ': 6907 return A5(elm$core$Dict$RBNode_elm_builtin, nColor, nKey, value, nLeft, nRight); 6908 default: 6909 return A5( 6910 elm$core$Dict$balance, 6911 nColor, 6912 nKey, 6913 nValue, 6914 nLeft, 6915 A3(elm$core$Dict$insertHelp, key, value, nRight)); 6916 } 6917 } 6918 }); 6919var elm$core$Dict$insert = F3( 6920 function (key, value, dict) { 6921 var _n0 = A3(elm$core$Dict$insertHelp, key, value, dict); 6922 if ((_n0.$ === 'RBNode_elm_builtin') && (_n0.a.$ === 'Red')) { 6923 var _n1 = _n0.a; 6924 var k = _n0.b; 6925 var v = _n0.c; 6926 var l = _n0.d; 6927 var r = _n0.e; 6928 return A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, k, v, l, r); 6929 } else { 6930 var x = _n0; 6931 return x; 6932 } 6933 }); 6934var elm$core$Dict$fromList = function (assocs) { 6935 return A3( 6936 elm$core$List$foldl, 6937 F2( 6938 function (_n0, dict) { 6939 var key = _n0.a; 6940 var value = _n0.b; 6941 return A3(elm$core$Dict$insert, key, value, dict); 6942 }), 6943 elm$core$Dict$empty, 6944 assocs); 6945}; 6946var dillonkearns$elm_markdown$HtmlParser$entities = elm$core$Dict$fromList( 6947 _List_fromArray( 6948 [ 6949 _Utils_Tuple2( 6950 'amp', 6951 _Utils_chr('&')), 6952 _Utils_Tuple2( 6953 'lt', 6954 _Utils_chr('<')), 6955 _Utils_Tuple2( 6956 'gt', 6957 _Utils_chr('>')), 6958 _Utils_Tuple2( 6959 'apos', 6960 _Utils_chr('\'')), 6961 _Utils_Tuple2( 6962 'quot', 6963 _Utils_chr('\"')) 6964 ])); 6965var elm$core$Char$fromCode = _Char_fromCode; 6966var elm$core$Result$fromMaybe = F2( 6967 function (err, maybe) { 6968 if (maybe.$ === 'Just') { 6969 var v = maybe.a; 6970 return elm$core$Result$Ok(v); 6971 } else { 6972 return elm$core$Result$Err(err); 6973 } 6974 }); 6975var elm$core$Result$map = F2( 6976 function (func, ra) { 6977 if (ra.$ === 'Ok') { 6978 var a = ra.a; 6979 return elm$core$Result$Ok( 6980 func(a)); 6981 } else { 6982 var e = ra.a; 6983 return elm$core$Result$Err(e); 6984 } 6985 }); 6986var elm$core$Result$mapError = F2( 6987 function (f, result) { 6988 if (result.$ === 'Ok') { 6989 var v = result.a; 6990 return elm$core$Result$Ok(v); 6991 } else { 6992 var e = result.a; 6993 return elm$core$Result$Err( 6994 f(e)); 6995 } 6996 }); 6997var elm$parser$Parser$Problem = function (a) { 6998 return {$: 'Problem', a: a}; 6999}; 7000var elm$core$List$tail = function (list) { 7001 if (list.b) { 7002 var x = list.a; 7003 var xs = list.b; 7004 return elm$core$Maybe$Just(xs); 7005 } else { 7006 return elm$core$Maybe$Nothing; 7007 } 7008};
7009var elm$core$String$foldr = _String_foldr; 7010var elm$core$String$toList = function (string) { 7011 return A3(elm$core$String$foldr, elm$core$List$cons, _List_Nil, string); 7012}; 7013var elm$core$Basics$pow = _Basics_pow; 7014var elm$core$String$cons = _String_cons; 7015var elm$core$String$fromChar = function (_char) { 7016 return A2(elm$core$String$cons, _char, ''); 7017}; 7018var rtfeldman$elm_hex$Hex$fromStringHelp = F3( 7019 function (position, chars, accumulated) { 7020 fromStringHelp: 7021 while (true) { 7022 if (!chars.b) { 7023 return elm$core$Result$Ok(accumulated); 7024 } else { 7025 var _char = chars.a; 7026 var rest = chars.b; 7027 switch (_char.valueOf()) { 7028 case '0': 7029 var $temp$position = position - 1, 7030 $temp$chars = rest, 7031 $temp$accumulated = accumulated; 7032 position = $temp$position; 7033 chars = $temp$chars; 7034 accumulated = $temp$accumulated; 7035 continue fromStringHelp; 7036 case '1': 7037 var $temp$position = position - 1, 7038 $temp$chars = rest, 7039 $temp$accumulated = accumulated + A2(elm$core$Basics$pow, 16, position); 7040 position = $temp$position; 7041 chars = $temp$chars; 7042 accumulated = $temp$accumulated; 7043 continue fromStringHelp; 7044 case '2': 7045 var $temp$position = position - 1, 7046 $temp$chars = rest, 7047 $temp$accumulated = accumulated + (2 * A2(elm$core$Basics$pow, 16, position)); 7048 position = $temp$position; 7049 chars = $temp$chars; 7050 accumulated = $temp$accumulated; 7051 continue fromStringHelp; 7052 case '3': 7053 var $temp$position = position - 1, 7054 $temp$chars = rest, 7055 $temp$accumulated = accumulated + (3 * A2(elm$core$Basics$pow, 16, position)); 7056 position = $temp$position; 7057 chars = $temp$chars; 7058 accumulated = $temp$accumulated; 7059 continue fromStringHelp; 7060 case '4': 7061 var $temp$position = position - 1, 7062 $temp$chars = rest, 7063 $temp$accumulated = accumulated + (4 * A2(elm$core$Basics$pow, 16, position)); 7064 position = $temp$position; 7065 chars = $temp$chars; 7066 accumulated = $temp$accumulated; 7067 continue fromStringHelp; 7068 case '5': 7069 var $temp$position = position - 1, 7070 $temp$chars = rest, 7071 $temp$accumulated = accumulated + (5 * A2(elm$core$Basics$pow, 16, position)); 7072 position = $temp$position; 7073 chars = $temp$chars; 7074 accumulated = $temp$accumulated; 7075 continue fromStringHelp; 7076 case '6': 7077 var $temp$position = position - 1, 7078 $temp$chars = rest, 7079 $temp$accumulated = accumulated + (6 * A2(elm$core$Basics$pow, 16, position)); 7080 position = $temp$position; 7081 chars = $temp$chars; 7082 accumulated = $temp$accumulated; 7083 continue fromStringHelp; 7084 case '7': 7085 var $temp$position = position - 1, 7086 $temp$chars = rest, 7087 $temp$accumulated = accumulated + (7 * A2(elm$core$Basics$pow, 16, position)); 7088 position = $temp$position; 7089 chars = $temp$chars; 7090 accumulated = $temp$accumulated; 7091 continue fromStringHelp; 7092 case '8': 7093 var $temp$position = position - 1, 7094 $temp$chars = rest, 7095 $temp$accumulated = accumulated + (8 * A2(elm$core$Basics$pow, 16, position)); 7096 position = $temp$position; 7097 chars = $temp$chars; 7098 accumulated = $temp$accumulated; 7099 continue fromStringHelp; 7100 case '9': 7101 var $temp$position = position - 1, 7102 $temp$chars = rest, 7103 $temp$accumulated = accumulated + (9 * A2(elm$core$Basics$pow, 16, position)); 7104 position = $temp$position; 7105 chars = $temp$chars; 7106 accumulated = $temp$accumulated; 7107 continue fromStringHelp; 7108 case 'a': 7109 var $temp$position = position - 1, 7110 $temp$chars = rest, 7111 $temp$accumulated = accumulated + (10 * A2(elm$core$Basics$pow, 16, position)); 7112 position = $temp$position; 7113 chars = $temp$chars; 7114 accumulated = $temp$accumulated; 7115 continue fromStringHelp; 7116 case 'b': 7117 var $temp$position = position - 1, 7118 $temp$chars = rest, 7119 $temp$accumulated = accumulated + (11 * A2(elm$core$Basics$pow, 16, position)); 7120 position = $temp$position; 7121 chars = $temp$chars; 7122 accumulated = $temp$accumulated; 7123 continue fromStringHelp; 7124 case 'c': 7125 var $temp$position = position - 1, 7126 $temp$chars = rest, 7127 $temp$accumulated = accumulated + (12 * A2(elm$core$Basics$pow, 16, position)); 7128 position = $temp$position; 7129 chars = $temp$chars; 7130 accumulated = $temp$accumulated; 7131 continue fromStringHelp; 7132 case 'd': 7133 var $temp$position = position - 1, 7134 $temp$chars = rest, 7135 $temp$accumulated = accumulated + (13 * A2(elm$core$Basics$pow, 16, position)); 7136 position = $temp$position; 7137 chars = $temp$chars; 7138 accumulated = $temp$accumulated; 7139 continue fromStringHelp; 7140 case 'e': 7141 var $temp$position = position - 1, 7142 $temp$chars = rest, 7143 $temp$accumulated = accumulated + (14 * A2(elm$core$Basics$pow, 16, position)); 7144 position = $temp$position; 7145 chars = $temp$chars; 7146 accumulated = $temp$accumulated; 7147 continue fromStringHelp; 7148 case 'f': 7149 var $temp$position = position - 1, 7150 $temp$chars = rest, 7151 $temp$accumulated = accumulated + (15 * A2(elm$core$Basics$pow, 16, position)); 7152 position = $temp$position; 7153 chars = $temp$chars; 7154 accumulated = $temp$accumulated; 7155 continue fromStringHelp; 7156 default: 7157 var nonHex = _char; 7158 return elm$core$Result$Err( 7159 elm$core$String$fromChar(nonHex) + ' is not a valid hexadecimal character.'); 7160 } 7161 } 7162 } 7163 }); 7164var rtfeldman$elm_hex$Hex$fromString = function (str) { 7165 if (elm$core$String$isEmpty(str)) { 7166 return elm$core$Result$Err('Empty strings are not valid hexadecimal strings.'); 7167 } else { 7168 var result = function () { 7169 if (A2(elm$core$String$startsWith, '-', str)) { 7170 var list = A2( 7171 elm$core$Maybe$withDefault, 7172 _List_Nil, 7173 elm$core$List$tail( 7174 elm$core$String$toList(str))); 7175 return A2( 7176 elm$core$Result$map, 7177 elm$core$Basics$negate, 7178 A3( 7179 rtfeldman$elm_hex$Hex$fromStringHelp, 7180 elm$core$List$length(list) - 1, 7181 list, 7182 0)); 7183 } else { 7184 return A3( 7185 rtfeldman$elm_hex$Hex$fromStringHelp, 7186 elm$core$String$length(str) - 1, 7187 elm$core$String$toList(str), 7188 0); 7189 } 7190 }(); 7191 var formatError = function (err) { 7192 return A2( 7193 elm$core$String$join, 7194 ' ', 7195 _List_fromArray( 7196 ['\"' + (str + '\"'), 'is not a valid hexadecimal string because', err])); 7197 }; 7198 return A2(elm$core$Result$mapError, formatError, result); 7199 } 7200}; 7201var dillonkearns$elm_markdown$HtmlParser$decodeEscape = function (s) { 7202 return A2(elm$core$String$startsWith, '#x', s) ? A2( 7203 elm$core$Result$mapError, 7204 elm$parser$Parser$Problem, 7205 A2( 7206 elm$core$Result$map, 7207 elm$core$Char$fromCode, 7208 rtfeldman$elm_hex$Hex$fromString( 7209 A2(elm$core$String$dropLeft, 2, s)))) : (A2(elm$core$String$startsWith, '#', s) ? A2( 7210 elm$core$Result$fromMaybe, 7211 elm$parser$Parser$Problem('Invalid escaped character: ' + s), 7212 A2( 7213 elm$core$Maybe$map, 7214 elm$core$Char$fromCode, 7215 elm$core$String$toInt( 7216 A2(elm$core$String$dropLeft, 1, s)))) : A2( 7217 elm$core$Result$fromMaybe, 7218 elm$parser$Parser$Problem('No entity named \"&' + (s + ';\" found.')), 7219 A2(elm$core$Dict$get, s, dillonkearns$elm_markdown$HtmlParser$entities))); 7220}; 7221var elm$core$Basics$neq = _Utils_notEqual; 7222var elm$parser$Parser$Advanced$andThen = F2( 7223 function (callback, _n0) { 7224 var parseA = _n0.a; 7225 return elm$parser$Parser$Advanced$Parser( 7226 function (s0) { 7227 var _n1 = parseA(s0); 7228 if (_n1.$ === 'Bad') { 7229 var p = _n1.a; 7230 var x = _n1.b; 7231 return A2(elm$parser$Parser$Advanced$Bad, p, x); 7232 } else { 7233 var p1 = _n1.a; 7234 var a = _n1.b; 7235 var s1 = _n1.c; 7236 var _n2 = callback(a); 7237 var parseB = _n2.a; 7238 var _n3 = parseB(s1); 7239 if (_n3.$ === 'Bad') { 7240 var p2 = _n3.a; 7241 var x = _n3.b; 7242 return A2(elm$parser$Parser$Advanced$Bad, p1 || p2, x); 7243 } else { 7244 var p2 = _n3.a; 7245 var b = _n3.b; 7246 var s2 = _n3.c; 7247 return A3(elm$parser$Parser$Advanced$Good, p1 || p2, b, s2); 7248 } 7249 } 7250 }); 7251 }); 7252var elm$parser$Parser$Advanced$getChompedString = function (parser) { 7253 return A2(elm$parser$Parser$Advanced$mapChompedString, elm$core$Basics$always, parser); 7254}; 7255var elm$parser$Parser$Advanced$keeper = F2( 7256 function (parseFunc, parseArg) { 7257 return A3(elm$parser$Parser$Advanced$map2, elm$core$Basics$apL, parseFunc, parseArg); 7258 }); 7259var elm$parser$Parser$Advanced$problem = function (x) { 7260 return elm$parser$Parser$Advanced$Parser( 7261 function (s) { 7262 return A2( 7263 elm$parser$Parser$Advanced$Bad, 7264 false, 7265 A2(elm$parser$Parser$Advanced$fromState, s, x)); 7266 }); 7267}; 7268var dillonkearns$elm_markdown$HtmlParser$escapedChar = function (end_) { 7269 var process = function (entityStr) { 7270 var _n0 = dillonkearns$elm_markdown$HtmlParser$decodeEscape(entityStr); 7271 if (_n0.$ === 'Ok') { 7272 var c = _n0.a; 7273 return elm$parser$Parser$Advanced$succeed(c); 7274 } else { 7275 var e = _n0.a; 7276 return elm$parser$Parser$Advanced$problem(e); 7277 } 7278 }; 7279 var isEntityChar = function (c) { 7280 return (!_Utils_eq(c, end_)) && (!_Utils_eq( 7281 c, 7282 _Utils_chr(';'))); 7283 }; 7284 return A2( 7285 elm$parser$Parser$Advanced$keeper, 7286 A2( 7287 elm$parser$Parser$Advanced$ignorer, 7288 elm$parser$Parser$Advanced$succeed(elm$core$Basics$identity), 7289 dillonkearns$elm_markdown$HtmlParser$symbol('&')), 7290 A2( 7291 elm$parser$Parser$Advanced$ignorer, 7292 A2( 7293 elm$parser$Parser$Advanced$andThen, 7294 process, 7295 elm$parser$Parser$Advanced$getChompedString( 7296 A2( 7297 elm$parser$Parser$Advanced$ignorer, 7298 A2( 7299 elm$parser$Parser$Advanced$chompIf, 7300 isEntityChar, 7301 elm$parser$Parser$Expecting('an entity character')), 7302 elm$parser$Parser$Advanced$chompWhile(isEntityChar)))), 7303 dillonkearns$elm_markdown$HtmlParser$symbol(';'))); 7304}; 7305var elm$parser$Parser$Advanced$Done = function (a) { 7306 return {$: 'Done', a: a}; 7307}; 7308var elm$parser$Parser$Advanced$Loop = function (a) { 7309 return {$: 'Loop', a: a}; 7310}; 7311var elm$parser$Parser$Advanced$map = F2( 7312 function (func, _n0) { 7313 var parse = _n0.a; 7314 return elm$parser$Parser$Advanced$Parser( 7315 function (s0) { 7316 var _n1 = parse(s0); 7317 if (_n1.$ === 'Good') { 7318 var p = _n1.a; 7319 var a = _n1.b; 7320 var s1 = _n1.c; 7321 return A3( 7322 elm$parser$Parser$Advanced$Good, 7323 p, 7324 func(a), 7325 s1); 7326 } else { 7327 var p = _n1.a; 7328 var x = _n1.b; 7329 return A2(elm$parser$Parser$Advanced$Bad, p, x); 7330 } 7331 }); 7332 }); 7333var dillonkearns$elm_markdown$HtmlParser$textStringStep = F3( 7334 function (closingChar, predicate, accum) { 7335 return A2( 7336 elm$parser$Parser$Advanced$andThen, 7337 function (soFar) { 7338 return elm$parser$Parser$Advanced$oneOf( 7339 _List_fromArray( 7340 [ 7341 A2( 7342 elm$parser$Parser$Advanced$map, 7343 function (escaped) { 7344 return elm$parser$Parser$Advanced$Loop( 7345 _Utils_ap( 7346 accum, 7347 _Utils_ap( 7348 soFar,
7349 elm$core$String$fromChar(escaped)))); 7350 }, 7351 dillonkearns$elm_markdown$HtmlParser$escapedChar(closingChar)), 7352 elm$parser$Parser$Advanced$succeed( 7353 elm$parser$Parser$Advanced$Done( 7354 _Utils_ap(accum, soFar))) 7355 ])); 7356 }, 7357 elm$parser$Parser$Advanced$getChompedString( 7358 elm$parser$Parser$Advanced$chompWhile(predicate))); 7359 }); 7360var elm$parser$Parser$Advanced$loopHelp = F4( 7361 function (p, state, callback, s0) { 7362 loopHelp: 7363 while (true) { 7364 var _n0 = callback(state); 7365 var parse = _n0.a; 7366 var _n1 = parse(s0); 7367 if (_n1.$ === 'Good') { 7368 var p1 = _n1.a; 7369 var step = _n1.b; 7370 var s1 = _n1.c; 7371 if (step.$ === 'Loop') { 7372 var newState = step.a; 7373 var $temp$p = p || p1, 7374 $temp$state = newState, 7375 $temp$callback = callback, 7376 $temp$s0 = s1; 7377 p = $temp$p; 7378 state = $temp$state; 7379 callback = $temp$callback; 7380 s0 = $temp$s0; 7381 continue loopHelp; 7382 } else { 7383 var result = step.a; 7384 return A3(elm$parser$Parser$Advanced$Good, p || p1, result, s1); 7385 } 7386 } else { 7387 var p1 = _n1.a; 7388 var x = _n1.b; 7389 return A2(elm$parser$Parser$Advanced$Bad, p || p1, x); 7390 } 7391 } 7392 }); 7393var elm$parser$Parser$Advanced$loop = F2( 7394 function (state, callback) { 7395 return elm$parser$Parser$Advanced$Parser( 7396 function (s) { 7397 return A4(elm$parser$Parser$Advanced$loopHelp, false, state, callback, s); 7398 }); 7399 }); 7400var dillonkearns$elm_markdown$HtmlParser$textString = function (closingChar) { 7401 var predicate = function (c) { 7402 return (!_Utils_eq(c, closingChar)) && (!_Utils_eq( 7403 c, 7404 _Utils_chr('&'))); 7405 }; 7406 return A2( 7407 elm$parser$Parser$Advanced$loop, 7408 '', 7409 A2(dillonkearns$elm_markdown$HtmlParser$textStringStep, closingChar, predicate)); 7410}; 7411var dillonkearns$elm_markdown$HtmlParser$attributeValue = elm$parser$Parser$Advanced$oneOf( 7412 _List_fromArray( 7413 [ 7414 A2( 7415 elm$parser$Parser$Advanced$keeper, 7416 A2( 7417 elm$parser$Parser$Advanced$ignorer, 7418 elm$parser$Parser$Advanced$succeed(elm$core$Basics$identity), 7419 dillonkearns$elm_markdown$HtmlParser$symbol('\"')), 7420 A2( 7421 elm$parser$Parser$Advanced$ignorer, 7422 dillonkearns$elm_markdown$HtmlParser$textString( 7423 _Utils_chr('\"')), 7424 dillonkearns$elm_markdown$HtmlParser$symbol('\"'))), 7425 A2( 7426 elm$parser$Parser$Advanced$keeper, 7427 A2( 7428 elm$parser$Parser$Advanced$ignorer, 7429 elm$parser$Parser$Advanced$succeed(elm$core$Basics$identity), 7430 dillonkearns$elm_markdown$HtmlParser$symbol('\'')), 7431 A2( 7432 elm$parser$Parser$Advanced$ignorer, 7433 dillonkearns$elm_markdown$HtmlParser$textString( 7434 _Utils_chr('\'')), 7435 dillonkearns$elm_markdown$HtmlParser$symbol('\''))) 7436 ])); 7437var dillonkearns$elm_markdown$HtmlParser$keepOldest = F2( 7438 function (_new, mValue) { 7439 if (mValue.$ === 'Just') { 7440 var v = mValue.a; 7441 return elm$core$Maybe$Just(v); 7442 } else { 7443 return elm$core$Maybe$Just(_new); 7444 } 7445 }); 7446var dillonkearns$elm_markdown$HtmlParser$isWhitespace = function (c) { 7447 switch (c.valueOf()) { 7448 case ' ': 7449 return true; 7450 case '\r': 7451 return true; 7452 case '\n': 7453 return true; 7454 case '\t': 7455 return true; 7456 default: 7457 return false; 7458 } 7459}; 7460var dillonkearns$elm_markdown$HtmlParser$whiteSpace = elm$parser$Parser$Advanced$chompWhile(dillonkearns$elm_markdown$HtmlParser$isWhitespace); 7461var elm$core$Dict$getMin = function (dict) { 7462 getMin: 7463 while (true) { 7464 if ((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) { 7465 var left = dict.d; 7466 var $temp$dict = left; 7467 dict = $temp$dict; 7468 continue getMin; 7469 } else { 7470 return dict; 7471 } 7472 } 7473}; 7474var elm$core$Dict$moveRedLeft = function (dict) { 7475 if (((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) && (dict.e.$ === 'RBNode_elm_builtin')) { 7476 if ((dict.e.d.$ === 'RBNode_elm_builtin') && (dict.e.d.a.$ === 'Red')) { 7477 var clr = dict.a; 7478 var k = dict.b; 7479 var v = dict.c; 7480 var _n1 = dict.d; 7481 var lClr = _n1.a; 7482 var lK = _n1.b; 7483 var lV = _n1.c; 7484 var lLeft = _n1.d; 7485 var lRight = _n1.e; 7486 var _n2 = dict.e; 7487 var rClr = _n2.a; 7488 var rK = _n2.b; 7489 var rV = _n2.c; 7490 var rLeft = _n2.d; 7491 var _n3 = rLeft.a; 7492 var rlK = rLeft.b; 7493 var rlV = rLeft.c; 7494 var rlL = rLeft.d; 7495 var rlR = rLeft.e; 7496 var rRight = _n2.e; 7497 return A5( 7498 elm$core$Dict$RBNode_elm_builtin, 7499 elm$core$Dict$Red, 7500 rlK, 7501 rlV, 7502 A5( 7503 elm$core$Dict$RBNode_elm_builtin, 7504 elm$core$Dict$Black, 7505 k, 7506 v, 7507 A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, lK, lV, lLeft, lRight), 7508 rlL), 7509 A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, rK, rV, rlR, rRight)); 7510 } else { 7511 var clr = dict.a; 7512 var k = dict.b; 7513 var v = dict.c; 7514 var _n4 = dict.d; 7515 var lClr = _n4.a; 7516 var lK = _n4.b; 7517 var lV = _n4.c; 7518 var lLeft = _n4.d; 7519 var lRight = _n4.e; 7520 var _n5 = dict.e; 7521 var rClr = _n5.a; 7522 var rK = _n5.b; 7523 var rV = _n5.c; 7524 var rLeft = _n5.d; 7525 var rRight = _n5.e; 7526 if (clr.$ === 'Black') { 7527 return A5( 7528 elm$core$Dict$RBNode_elm_builtin, 7529 elm$core$Dict$Black, 7530 k, 7531 v, 7532 A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, lK, lV, lLeft, lRight), 7533 A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, rK, rV, rLeft, rRight)); 7534 } else { 7535 return A5( 7536 elm$core$Dict$RBNode_elm_builtin, 7537 elm$core$Dict$Black, 7538 k, 7539 v, 7540 A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, lK, lV, lLeft, lRight), 7541 A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, rK, rV, rLeft, rRight)); 7542 } 7543 } 7544 } else { 7545 return dict; 7546 } 7547}; 7548var elm$core$Dict$moveRedRight = function (dict) { 7549 if (((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) && (dict.e.$ === 'RBNode_elm_builtin')) { 7550 if ((dict.d.d.$ === 'RBNode_elm_builtin') && (dict.d.d.a.$ === 'Red')) { 7551 var clr = dict.a; 7552 var k = dict.b; 7553 var v = dict.c; 7554 var _n1 = dict.d; 7555 var lClr = _n1.a; 7556 var lK = _n1.b; 7557 var lV = _n1.c; 7558 var _n2 = _n1.d; 7559 var _n3 = _n2.a; 7560 var llK = _n2.b; 7561 var llV = _n2.c; 7562 var llLeft = _n2.d; 7563 var llRight = _n2.e; 7564 var lRight = _n1.e; 7565 var _n4 = dict.e; 7566 var rClr = _n4.a; 7567 var rK = _n4.b; 7568 var rV = _n4.c; 7569 var rLeft = _n4.d; 7570 var rRight = _n4.e; 7571 return A5( 7572 elm$core$Dict$RBNode_elm_builtin, 7573 elm$core$Dict$Red, 7574 lK, 7575 lV, 7576 A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, llK, llV, llLeft, llRight), 7577 A5( 7578 elm$core$Dict$RBNode_elm_builtin, 7579 elm$core$Dict$Black, 7580 k, 7581 v, 7582 lRight, 7583 A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, rK, rV, rLeft, rRight))); 7584 } else { 7585 var clr = dict.a; 7586 var k = dict.b; 7587 var v = dict.c; 7588 var _n5 = dict.d; 7589 var lClr = _n5.a; 7590 var lK = _n5.b; 7591 var lV = _n5.c; 7592 var lLeft = _n5.d; 7593 var lRight = _n5.e; 7594 var _n6 = dict.e; 7595 var rClr = _n6.a; 7596 var rK = _n6.b; 7597 var rV = _n6.c; 7598 var rLeft = _n6.d; 7599 var rRight = _n6.e; 7600 if (clr.$ === 'Black') { 7601 return A5( 7602 elm$core$Dict$RBNode_elm_builtin, 7603 elm$core$Dict$Black, 7604 k, 7605 v, 7606 A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, lK, lV, lLeft, lRight), 7607 A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, rK, rV, rLeft, rRight)); 7608 } else { 7609 return A5( 7610 elm$core$Dict$RBNode_elm_builtin, 7611 elm$core$Dict$Black, 7612 k, 7613 v, 7614 A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, lK, lV, lLeft, lRight), 7615 A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, rK, rV, rLeft, rRight)); 7616 } 7617 } 7618 } else { 7619 return dict; 7620 } 7621}; 7622var elm$core$Dict$removeHelpPrepEQGT = F7( 7623 function (targetKey, dict, color, key, value, left, right) { 7624 if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) { 7625 var _n1 = left.a; 7626 var lK = left.b; 7627 var lV = left.c; 7628 var lLeft = left.d; 7629 var lRight = left.e; 7630 return A5( 7631 elm$core$Dict$RBNode_elm_builtin, 7632 color, 7633 lK, 7634 lV, 7635 lLeft, 7636 A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Red, key, value, lRight, right)); 7637 } else { 7638 _n2$2: 7639 while (true) { 7640 if ((right.$ === 'RBNode_elm_builtin') && (right.a.$ === 'Black')) { 7641 if (right.d.$ === 'RBNode_elm_builtin') { 7642 if (right.d.a.$ === 'Black') { 7643 var _n3 = right.a; 7644 var _n4 = right.d; 7645 var _n5 = _n4.a; 7646 return elm$core$Dict$moveRedRight(dict); 7647 } else { 7648 break _n2$2; 7649 } 7650 } else { 7651 var _n6 = right.a; 7652 var _n7 = right.d; 7653 return elm$core$Dict$moveRedRight(dict); 7654 } 7655 } else { 7656 break _n2$2; 7657 } 7658 } 7659 return dict; 7660 } 7661 }); 7662var elm$core$Dict$removeMin = function (dict) { 7663 if ((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) { 7664 var color = dict.a; 7665 var key = dict.b; 7666 var value = dict.c; 7667 var left = dict.d; 7668 var lColor = left.a; 7669 var lLeft = left.d; 7670 var right = dict.e; 7671 if (lColor.$ === 'Black') { 7672 if ((lLeft.$ === 'RBNode_elm_builtin') && (lLeft.a.$ === 'Red')) { 7673 var _n3 = lLeft.a; 7674 return A5( 7675 elm$core$Dict$RBNode_elm_builtin, 7676 color, 7677 key, 7678 value, 7679 elm$core$Dict$removeMin(left), 7680 right); 7681 } else { 7682 var _n4 = elm$core$Dict$moveRedLeft(dict); 7683 if (_n4.$ === 'RBNode_elm_builtin') { 7684 var nColor = _n4.a; 7685 var nKey = _n4.b; 7686 var nValue = _n4.c; 7687 var nLeft = _n4.d; 7688 var nRight = _n4.e; 7689 return A5( 7690 elm$core$Dict$balance, 7691 nColor, 7692 nKey, 7693 nValue, 7694 elm$core$Dict$removeMin(nLeft), 7695 nRight); 7696 } else { 7697 return elm$core$Dict$RBEmpty_elm_builtin; 7698 } 7699 } 7700 } else { 7701 return A5( 7702 elm$core$Dict$RBNode_elm_builtin, 7703 color, 7704 key, 7705 value, 7706 elm$core$Dict$removeMin(left), 7707 right); 7708 } 7709 } else { 7710 return elm$core$Dict$RBEmpty_elm_builtin; 7711 } 7712}; 7713var elm$core$Dict$removeHelp = F2( 7714 function (targetKey, dict) { 7715 if (dict.$ === 'RBEmpty_elm_builtin') { 7716 return elm$core$Dict$RBEmpty_elm_builtin; 7717 } else { 7718 var color = dict.a; 7719 var key = dict.b; 7720 var value = dict.c; 7721 var left = dict.d; 7722 var right = dict.e;
7723 if (_Utils_cmp(targetKey, key) < 0) { 7724 if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Black')) { 7725 var _n4 = left.a; 7726 var lLeft = left.d; 7727 if ((lLeft.$ === 'RBNode_elm_builtin') && (lLeft.a.$ === 'Red')) { 7728 var _n6 = lLeft.a; 7729 return A5( 7730 elm$core$Dict$RBNode_elm_builtin, 7731 color, 7732 key, 7733 value, 7734 A2(elm$core$Dict$removeHelp, targetKey, left), 7735 right); 7736 } else { 7737 var _n7 = elm$core$Dict$moveRedLeft(dict); 7738 if (_n7.$ === 'RBNode_elm_builtin') { 7739 var nColor = _n7.a; 7740 var nKey = _n7.b; 7741 var nValue = _n7.c; 7742 var nLeft = _n7.d; 7743 var nRight = _n7.e; 7744 return A5( 7745 elm$core$Dict$balance, 7746 nColor, 7747 nKey, 7748 nValue, 7749 A2(elm$core$Dict$removeHelp, targetKey, nLeft), 7750 nRight); 7751 } else { 7752 return elm$core$Dict$RBEmpty_elm_builtin; 7753 } 7754 } 7755 } else { 7756 return A5( 7757 elm$core$Dict$RBNode_elm_builtin, 7758 color, 7759 key, 7760 value, 7761 A2(elm$core$Dict$removeHelp, targetKey, left), 7762 right); 7763 } 7764 } else { 7765 return A2( 7766 elm$core$Dict$removeHelpEQGT, 7767 targetKey, 7768 A7(elm$core$Dict$removeHelpPrepEQGT, targetKey, dict, color, key, value, left, right)); 7769 } 7770 } 7771 }); 7772var elm$core$Dict$removeHelpEQGT = F2( 7773 function (targetKey, dict) { 7774 if (dict.$ === 'RBNode_elm_builtin') { 7775 var color = dict.a; 7776 var key = dict.b; 7777 var value = dict.c; 7778 var left = dict.d; 7779 var right = dict.e; 7780 if (_Utils_eq(targetKey, key)) { 7781 var _n1 = elm$core$Dict$getMin(right); 7782 if (_n1.$ === 'RBNode_elm_builtin') { 7783 var minKey = _n1.b; 7784 var minValue = _n1.c; 7785 return A5( 7786 elm$core$Dict$balance, 7787 color, 7788 minKey, 7789 minValue, 7790 left, 7791 elm$core$Dict$removeMin(right)); 7792 } else { 7793 return elm$core$Dict$RBEmpty_elm_builtin; 7794 } 7795 } else { 7796 return A5( 7797 elm$core$Dict$balance, 7798 color, 7799 key, 7800 value, 7801 left, 7802 A2(elm$core$Dict$removeHelp, targetKey, right)); 7803 } 7804 } else { 7805 return elm$core$Dict$RBEmpty_elm_builtin; 7806 } 7807 }); 7808var elm$core$Dict$remove = F2( 7809 function (key, dict) { 7810 var _n0 = A2(elm$core$Dict$removeHelp, key, dict); 7811 if ((_n0.$ === 'RBNode_elm_builtin') && (_n0.a.$ === 'Red')) { 7812 var _n1 = _n0.a; 7813 var k = _n0.b; 7814 var v = _n0.c; 7815 var l = _n0.d; 7816 var r = _n0.e; 7817 return A5(elm$core$Dict$RBNode_elm_builtin, elm$core$Dict$Black, k, v, l, r); 7818 } else { 7819 var x = _n0; 7820 return x; 7821 } 7822 }); 7823var elm$core$Dict$update = F3( 7824 function (targetKey, alter, dictionary) { 7825 var _n0 = alter( 7826 A2(elm$core$Dict$get, targetKey, dictionary)); 7827 if (_n0.$ === 'Just') { 7828 var value = _n0.a; 7829 return A3(elm$core$Dict$insert, targetKey, value, dictionary); 7830 } else { 7831 return A2(elm$core$Dict$remove, targetKey, dictionary); 7832 } 7833 }); 7834var dillonkearns$elm_markdown$HtmlParser$attributesStep = function (attrs) { 7835 var process = F2( 7836 function (name, value) { 7837 return elm$parser$Parser$Advanced$Loop( 7838 A3( 7839 elm$core$Dict$update, 7840 elm$core$String$toLower(name), 7841 dillonkearns$elm_markdown$HtmlParser$keepOldest(value), 7842 attrs)); 7843 }); 7844 return elm$parser$Parser$Advanced$oneOf( 7845 _List_fromArray( 7846 [ 7847 A2( 7848 elm$parser$Parser$Advanced$keeper, 7849 A2( 7850 elm$parser$Parser$Advanced$keeper, 7851 elm$parser$Parser$Advanced$succeed(process), 7852 A2( 7853 elm$parser$Parser$Advanced$ignorer, 7854 A2( 7855 elm$parser$Parser$Advanced$ignorer, 7856 A2(elm$parser$Parser$Advanced$ignorer, dillonkearns$elm_markdown$HtmlParser$attributeName, dillonkearns$elm_markdown$HtmlParser$whiteSpace), 7857 dillonkearns$elm_markdown$HtmlParser$symbol('=')), 7858 dillonkearns$elm_markdown$HtmlParser$whiteSpace)), 7859 A2(elm$parser$Parser$Advanced$ignorer, dillonkearns$elm_markdown$HtmlParser$attributeValue, dillonkearns$elm_markdown$HtmlParser$whiteSpace)), 7860 elm$parser$Parser$Advanced$succeed( 7861 elm$parser$Parser$Advanced$Done(attrs)) 7862 ])); 7863}; 7864var elm$core$Dict$foldl = F3( 7865 function (func, acc, dict) { 7866 foldl: 7867 while (true) { 7868 if (dict.$ === 'RBEmpty_elm_builtin') { 7869 return acc; 7870 } else { 7871 var key = dict.b; 7872 var value = dict.c; 7873 var left = dict.d; 7874 var right = dict.e; 7875 var $temp$func = func, 7876 $temp$acc = A3( 7877 func, 7878 key, 7879 value, 7880 A3(elm$core$Dict$foldl, func, acc, left)), 7881 $temp$dict = right; 7882 func = $temp$func; 7883 acc = $temp$acc; 7884 dict = $temp$dict; 7885 continue foldl; 7886 } 7887 } 7888 }); 7889var dillonkearns$elm_markdown$HtmlParser$attributes = A2( 7890 elm$parser$Parser$Advanced$map, 7891 A2( 7892 elm$core$Dict$foldl, 7893 F3( 7894 function (key, value, accum) { 7895 return A2( 7896 elm$core$List$cons, 7897 {name: key, value: value}, 7898 accum); 7899 }), 7900 _List_Nil), 7901 A2(elm$parser$Parser$Advanced$loop, elm$core$Dict$empty, dillonkearns$elm_markdown$HtmlParser$attributesStep)); 7902var elm$parser$Parser$Advanced$chompUntilEndOr = function (str) { 7903 return elm$parser$Parser$Advanced$Parser( 7904 function (s) { 7905 var _n0 = A5(_Parser_findSubString, str, s.offset, s.row, s.col, s.src); 7906 var newOffset = _n0.a; 7907 var newRow = _n0.b; 7908 var newCol = _n0.c; 7909 var adjustedOffset = (newOffset < 0) ? elm$core$String$length(s.src) : newOffset; 7910 return A3( 7911 elm$parser$Parser$Advanced$Good, 7912 _Utils_cmp(s.offset, adjustedOffset) < 0, 7913 _Utils_Tuple0, 7914 {col: newCol, context: s.context, indent: s.indent, offset: adjustedOffset, row: newRow, src: s.src}); 7915 }); 7916}; 7917var dillonkearns$elm_markdown$HtmlParser$cdata = A2( 7918 elm$parser$Parser$Advanced$keeper, 7919 A2( 7920 elm$parser$Parser$Advanced$ignorer, 7921 elm$parser$Parser$Advanced$succeed(elm$core$Basics$identity), 7922 dillonkearns$elm_markdown$HtmlParser$symbol('<![CDATA[')), 7923 A2( 7924 elm$parser$Parser$Advanced$ignorer, 7925 elm$parser$Parser$Advanced$getChompedString(
7926 elm$parser$Parser$Advanced$chompUntilEndOr(']]>')), 7927 dillonkearns$elm_markdown$HtmlParser$symbol(']]>'))); 7928var dillonkearns$elm_markdown$HtmlParser$childrenStep = F2( 7929 function (options, accum) { 7930 return A2( 7931 elm$parser$Parser$Advanced$map, 7932 function (f) { 7933 return f(accum); 7934 }, 7935 elm$parser$Parser$Advanced$oneOf(options)); 7936 }); 7937var dillonkearns$elm_markdown$HtmlParser$fail = function (str) { 7938 return elm$parser$Parser$Advanced$problem( 7939 elm$parser$Parser$Problem(str)); 7940}; 7941var dillonkearns$elm_markdown$HtmlParser$closingTag = function (startTagName) { 7942 var closingTagName = A2( 7943 elm$parser$Parser$Advanced$andThen, 7944 function (endTagName) { 7945 return _Utils_eq(startTagName, endTagName) ? elm$parser$Parser$Advanced$succeed(_Utils_Tuple0) : dillonkearns$elm_markdown$HtmlParser$fail('tag name mismatch: ' + (startTagName + (' and ' + endTagName))); 7946 }, 7947 dillonkearns$elm_markdown$HtmlParser$tagName); 7948 return A2( 7949 elm$parser$Parser$Advanced$ignorer, 7950 A2( 7951 elm$parser$Parser$Advanced$ignorer, 7952 A2( 7953 elm$parser$Parser$Advanced$ignorer, 7954 A2( 7955 elm$parser$Parser$Advanced$ignorer, 7956 dillonkearns$elm_markdown$HtmlParser$symbol('</'), 7957 dillonkearns$elm_markdown$HtmlParser$whiteSpace), 7958 closingTagName), 7959 dillonkearns$elm_markdown$HtmlParser$whiteSpace), 7960 dillonkearns$elm_markdown$HtmlParser$symbol('>')); 7961}; 7962var dillonkearns$elm_markdown$HtmlParser$Comment = function (a) { 7963 return {$: 'Comment', a: a}; 7964}; 7965var dillonkearns$elm_markdown$HtmlParser$toToken = function (str) { 7966 return A2( 7967 elm$parser$Parser$Advanced$Token, 7968 str, 7969 elm$parser$Parser$Expecting(str)); 7970}; 7971var dillonkearns$elm_markdown$HtmlParser$comment = A2( 7972 elm$parser$Parser$Advanced$keeper, 7973 A2( 7974 elm$parser$Parser$Advanced$ignorer, 7975 elm$parser$Parser$Advanced$succeed(dillonkearns$elm_markdown$HtmlParser$Comment), 7976 elm$parser$Parser$Advanced$token( 7977 dillonkearns$elm_markdown$HtmlParser$toToken('<!--'))), 7978 A2( 7979 elm$parser$Parser$Advanced$ignorer, 7980 elm$parser$Parser$Advanced$getChompedString( 7981 elm$parser$Parser$Advanced$chompUntilEndOr('-->')), 7982 elm$parser$Parser$Advanced$token( 7983 dillonkearns$elm_markdown$HtmlParser$toToken('-->')))); 7984var dillonkearns$elm_markdown$HtmlParser$Declaration = F2( 7985 function (a, b) { 7986 return {$: 'Declaration', a: a, b: b}; 7987 }); 7988var dillonkearns$elm_markdown$HtmlParser$expectUppercaseCharacter = elm$parser$Parser$Expecting('at least 1 uppercase character'); 7989var dillonkearns$elm_markdown$HtmlParser$allUppercase = elm$parser$Parser$Advanced$getChompedString( 7990 A2( 7991 elm$parser$Parser$Advanced$ignorer, 7992 A2(elm$parser$Parser$Advanced$chompIf, elm$core$Char$isUpper, dillonkearns$elm_markdown$HtmlParser$expectUppercaseCharacter), 7993 elm$parser$Parser$Advanced$chompWhile(elm$core$Char$isUpper))); 7994var dillonkearns$elm_markdown$HtmlParser$oneOrMoreWhiteSpace = A2( 7995 elm$parser$Parser$Advanced$ignorer, 7996 A2( 7997 elm$parser$Parser$Advanced$chompIf, 7998 dillonkearns$elm_markdown$HtmlParser$isWhitespace, 7999 elm$parser$Parser$Expecting('at least one whitespace')), 8000 elm$parser$Parser$Advanced$chompWhile(dillonkearns$elm_markdown$HtmlParser$isWhitespace)); 8001var dillonkearns$elm_markdown$HtmlParser$docType = A2( 8002 elm$parser$Parser$Advanced$keeper, 8003 A2( 8004 elm$parser$Parser$Advanced$keeper, 8005 A2( 8006 elm$parser$Parser$Advanced$ignorer, 8007 elm$parser$Parser$Advanced$succeed(dillonkearns$elm_markdown$HtmlParser$Declaration), 8008 dillonkearns$elm_markdown$HtmlParser$symbol('<!')), 8009 A2(elm$parser$Parser$Advanced$ignorer, dillonkearns$elm_markdown$HtmlParser$allUppercase, dillonkearns$elm_markdown$HtmlParser$oneOrMoreWhiteSpace)), 8010 A2( 8011 elm$parser$Parser$Advanced$ignorer, 8012 elm$parser$Parser$Advanced$getChompedString( 8013 elm$parser$Parser$Advanced$chompUntilEndOr('>')), 8014 dillonkearns$elm_markdown$HtmlParser$symbol('>'))); 8015var dillonkearns$elm_markdown$HtmlParser$ProcessingInstruction = function (a) { 8016 return {$: 'ProcessingInstruction', a: a}; 8017}; 8018var dillonkearns$elm_markdown$HtmlParser$processingInstruction = A2( 8019 elm$parser$Parser$Advanced$keeper, 8020 A2( 8021 elm$parser$Parser$Advanced$ignorer, 8022 elm$parser$Parser$Advanced$succeed(dillonkearns$elm_markdown$HtmlParser$ProcessingInstruction), 8023 dillonkearns$elm_markdown$HtmlParser$symbol('<?')), 8024 A2( 8025 elm$parser$Parser$Advanced$ignorer, 8026 elm$parser$Parser$Advanced$getChompedString( 8027 elm$parser$Parser$Advanced$chompUntilEndOr('?>')), 8028 dillonkearns$elm_markdown$HtmlParser$symbol('?>'))); 8029var dillonkearns$elm_markdown$HtmlParser$isNotTextNodeIgnoreChar = function (c) { 8030 switch (c.valueOf()) { 8031 case '<': 8032 return false;
8033 case '&': 8034 return false; 8035 default: 8036 return true; 8037 } 8038}; 8039var dillonkearns$elm_markdown$HtmlParser$textNodeStringStepOptions = _List_fromArray( 8040 [ 8041 A2( 8042 elm$parser$Parser$Advanced$map, 8043 function (_n0) { 8044 return elm$parser$Parser$Advanced$Loop(_Utils_Tuple0); 8045 }, 8046 A2( 8047 elm$parser$Parser$Advanced$ignorer, 8048 A2( 8049 elm$parser$Parser$Advanced$chompIf, 8050 dillonkearns$elm_markdown$HtmlParser$isNotTextNodeIgnoreChar, 8051 elm$parser$Parser$Expecting('is not & or <')), 8052 elm$parser$Parser$Advanced$chompWhile(dillonkearns$elm_markdown$HtmlParser$isNotTextNodeIgnoreChar))), 8053 A2( 8054 elm$parser$Parser$Advanced$map, 8055 function (_n1) { 8056 return elm$parser$Parser$Advanced$Loop(_Utils_Tuple0); 8057 }, 8058 dillonkearns$elm_markdown$HtmlParser$escapedChar( 8059 _Utils_chr('<'))), 8060 elm$parser$Parser$Advanced$succeed( 8061 elm$parser$Parser$Advanced$Done(_Utils_Tuple0)) 8062 ]); 8063var dillonkearns$elm_markdown$HtmlParser$textNodeStringStep = function (_n0) { 8064 return elm$parser$Parser$Advanced$oneOf(dillonkearns$elm_markdown$HtmlParser$textNodeStringStepOptions); 8065}; 8066var dillonkearns$elm_markdown$HtmlParser$textNodeString = elm$parser$Parser$Advanced$getChompedString( 8067 A2(elm$parser$Parser$Advanced$loop, _Utils_Tuple0, dillonkearns$elm_markdown$HtmlParser$textNodeStringStep)); 8068var dillonkearns$elm_markdown$HtmlParser$children = function (startTagName) { 8069 return A2( 8070 elm$parser$Parser$Advanced$loop, 8071 _List_Nil, 8072 dillonkearns$elm_markdown$HtmlParser$childrenStep( 8073 dillonkearns$elm_markdown$HtmlParser$childrenStepOptions(startTagName))); 8074}; 8075var dillonkearns$elm_markdown$HtmlParser$childrenStepOptions = function (startTagName) { 8076 return _List_fromArray( 8077 [ 8078 A2( 8079 elm$parser$Parser$Advanced$map, 8080 F2( 8081 function (_n1, accum) { 8082 return elm$parser$Parser$Advanced$Done( 8083 elm$core$List$reverse(accum)); 8084 }), 8085 dillonkearns$elm_markdown$HtmlParser$closingTag(startTagName)), 8086 A2( 8087 elm$parser$Parser$Advanced$andThen, 8088 function (text) { 8089 return elm$core$String$isEmpty(text) ? A2( 8090 elm$parser$Parser$Advanced$map, 8091 F2( 8092 function (_n2, accum) { 8093 return elm$parser$Parser$Advanced$Done( 8094 elm$core$List$reverse(accum)); 8095 }), 8096 dillonkearns$elm_markdown$HtmlParser$closingTag(startTagName)) : elm$parser$Parser$Advanced$succeed( 8097 function (accum) { 8098 return elm$parser$Parser$Advanced$Loop( 8099 A2( 8100 elm$core$List$cons, 8101 dillonkearns$elm_markdown$HtmlParser$Text(text), 8102 accum)); 8103 }); 8104 }, 8105 dillonkearns$elm_markdown$HtmlParser$textNodeString), 8106 A2( 8107 elm$parser$Parser$Advanced$map, 8108 F2( 8109 function (_new, accum) { 8110 return elm$parser$Parser$Advanced$Loop( 8111 A2(elm$core$List$cons, _new, accum)); 8112 }), 8113 dillonkearns$elm_markdown$HtmlParser$cyclic$html()) 8114 ]); 8115}; 8116var dillonkearns$elm_markdown$HtmlParser$elementContinuation = function (startTagName) { 8117 return A2( 8118 elm$parser$Parser$Advanced$keeper, 8119 A2( 8120 elm$parser$Parser$Advanced$keeper, 8121 A2( 8122 elm$parser$Parser$Advanced$ignorer, 8123 elm$parser$Parser$Advanced$succeed( 8124 dillonkearns$elm_markdown$HtmlParser$Element(startTagName)), 8125 dillonkearns$elm_markdown$HtmlParser$whiteSpace), 8126 A2(elm$parser$Parser$Advanced$ignorer, dillonkearns$elm_markdown$HtmlParser$attributes, dillonkearns$elm_markdown$HtmlParser$whiteSpace)), 8127 elm$parser$Parser$Advanced$oneOf( 8128 _List_fromArray( 8129 [ 8130 A2( 8131 elm$parser$Parser$Advanced$map, 8132 function (_n0) { 8133 return _List_Nil; 8134 }, 8135 dillonkearns$elm_markdown$HtmlParser$symbol('/>')), 8136 A2( 8137 elm$parser$Parser$Advanced$keeper, 8138 A2( 8139 elm$parser$Parser$Advanced$ignorer, 8140 elm$parser$Parser$Advanced$succeed(elm$core$Basics$identity), 8141 dillonkearns$elm_markdown$HtmlParser$symbol('>')), 8142 dillonkearns$elm_markdown$HtmlParser$children(startTagName)) 8143 ]))); 8144}; 8145function dillonkearns$elm_markdown$HtmlParser$cyclic$html() { 8146 return elm$parser$Parser$Advanced$oneOf( 8147 _List_fromArray( 8148 [ 8149 A2(elm$parser$Parser$Advanced$map, dillonkearns$elm_markdown$HtmlParser$Cdata, dillonkearns$elm_markdown$HtmlParser$cdata), 8150 dillonkearns$elm_markdown$HtmlParser$processingInstruction, 8151 dillonkearns$elm_markdown$HtmlParser$comment, 8152 dillonkearns$elm_markdown$HtmlParser$docType,
8153 dillonkearns$elm_markdown$HtmlParser$cyclic$element() 8154 ])); 8155} 8156function dillonkearns$elm_markdown$HtmlParser$cyclic$element() { 8157 return A2( 8158 elm$parser$Parser$Advanced$keeper, 8159 A2( 8160 elm$parser$Parser$Advanced$ignorer, 8161 elm$parser$Parser$Advanced$succeed(elm$core$Basics$identity), 8162 dillonkearns$elm_markdown$HtmlParser$symbol('<')), 8163 A2(elm$parser$Parser$Advanced$andThen, dillonkearns$elm_markdown$HtmlParser$elementContinuation, dillonkearns$elm_markdown$HtmlParser$tagName)); 8164} 8165try { 8166 var dillonkearns$elm_markdown$HtmlParser$html = dillonkearns$elm_markdown$HtmlParser$cyclic$html(); 8167 dillonkearns$elm_markdown$HtmlParser$cyclic$html = function () { 8168 return dillonkearns$elm_markdown$HtmlParser$html; 8169 }; 8170 var dillonkearns$elm_markdown$HtmlParser$element = dillonkearns$elm_markdown$HtmlParser$cyclic$element(); 8171 dillonkearns$elm_markdown$HtmlParser$cyclic$element = function () { 8172 return dillonkearns$elm_markdown$HtmlParser$element; 8173 }; 8174} catch ($) { 8175throw 'Some top-level definitions from `HtmlParser` are causing infinite recursion:\n\n âââââââ\n â children\n â â\n â childrenStepOptions\n â â\n â html\n â â\n â element\n â â\n â elementContinuation\n âââââââ\n\nThese errors are very tricky, so read https://elm-lang.org/0.19.0/halting-problem to learn how to fix it!';} 8176var dillonkearns$elm_markdown$Markdown$Block$BlockQuote = function (a) { 8177 return {$: 'BlockQuote', a: a}; 8178}; 8179var dillonkearns$elm_markdown$Markdown$Block$Cdata = function (a) { 8180 return {$: 'Cdata', a: a}; 8181}; 8182var dillonkearns$elm_markdown$Markdown$Block$CodeBlock = function (a) { 8183 return {$: 'CodeBlock', a: a}; 8184}; 8185var dillonkearns$elm_markdown$Markdown$Block$CodeSpan = function (a) { 8186 return {$: 'CodeSpan', a: a}; 8187}; 8188var dillonkearns$elm_markdown$Markdown$Block$CompletedTask = {$: 'CompletedTask'}; 8189var dillonkearns$elm_markdown$Markdown$Block$Emphasis = function (a) { 8190 return {$: 'Emphasis', a: a}; 8191}; 8192var dillonkearns$elm_markdown$Markdown$Block$HardLineBreak = {$: 'HardLineBreak'}; 8193var dillonkearns$elm_markdown$Markdown$Block$Heading = F2( 8194 function (a, b) { 8195 return {$: 'Heading', a: a, b: b}; 8196 }); 8197var dillonkearns$elm_markdown$Markdown$Block$HtmlBlock = function (a) { 8198 return {$: 'HtmlBlock', a: a}; 8199}; 8200var dillonkearns$elm_markdown$Markdown$Block$HtmlComment = function (a) { 8201 return {$: 'HtmlComment', a: a}; 8202}; 8203var dillonkearns$elm_markdown$Markdown$Block$HtmlDeclaration = F2( 8204 function (a, b) { 8205 return {$: 'HtmlDeclaration', a: a, b: b}; 8206 }); 8207var dillonkearns$elm_markdown$Markdown$Block$HtmlElement = F3( 8208 function (a, b, c) { 8209 return {$: 'HtmlElement', a: a, b: b, c: c}; 8210 }); 8211var dillonkearns$elm_markdown$Markdown$Block$HtmlInline = function (a) { 8212 return {$: 'HtmlInline', a: a}; 8213}; 8214var dillonkearns$elm_markdown$Markdown$Block$Image = F3( 8215 function (a, b, c) { 8216 return {$: 'Image', a: a, b: b, c: c}; 8217 }); 8218var dillonkearns$elm_markdown$Markdown$Block$IncompleteTask = {$: 'IncompleteTask'}; 8219var dillonkearns$elm_markdown$Markdown$Block$Link = F3( 8220 function (a, b, c) { 8221 return {$: 'Link', a: a, b: b, c: c}; 8222 }); 8223var dillonkearns$elm_markdown$Markdown$Block$ListItem = F2( 8224 function (a, b) { 8225 return {$: 'ListItem', a: a, b: b}; 8226 }); 8227var dillonkearns$elm_markdown$Markdown$Block$NoTask = {$: 'NoTask'}; 8228var dillonkearns$elm_markdown$Markdown$Block$OrderedList = F3( 8229 function (a, b, c) { 8230 return {$: 'OrderedList', a: a, b: b, c: c}; 8231 }); 8232var dillonkearns$elm_markdown$Markdown$Block$Paragraph = function (a) { 8233 return {$: 'Paragraph', a: a}; 8234}; 8235var dillonkearns$elm_markdown$Markdown$Block$ProcessingInstruction = function (a) { 8236 return {$: 'ProcessingInstruction', a: a}; 8237}; 8238var dillonkearns$elm_markdown$Markdown$Block$Strikethrough = function (a) { 8239 return {$: 'Strikethrough', a: a}; 8240}; 8241var dillonkearns$elm_markdown$Markdown$Block$Strong = function (a) { 8242 return {$: 'Strong', a: a}; 8243}; 8244var dillonkearns$elm_markdown$Markdown$Block$Table = F2( 8245 function (a, b) { 8246 return {$: 'Table', a: a, b: b}; 8247 }); 8248var dillonkearns$elm_markdown$Markdown$Block$Text = function (a) { 8249 return {$: 'Text', a: a}; 8250}; 8251var dillonkearns$elm_markdown$Markdown$Block$ThematicBreak = {$: 'ThematicBreak'}; 8252var dillonkearns$elm_markdown$Markdown$Block$UnorderedList = F2( 8253 function (a, b) { 8254 return {$: 'UnorderedList', a: a, b: b}; 8255 }); 8256var dillonkearns$elm_markdown$Markdown$CodeBlock$CodeBlock = F2( 8257 function (language, body) { 8258 return {body: body, language: language}; 8259 }); 8260var elm$core$String$trim = _String_trim; 8261var dillonkearns$elm_markdown$Markdown$CodeBlock$infoString = function (fenceCharacter) { 8262 var toInfoString = F2( 8263 function (str, _n2) { 8264 var _n1 = elm$core$String$trim(str); 8265 if (_n1 === '') { 8266 return elm$core$Maybe$Nothing; 8267 } else { 8268 var trimmed = _n1; 8269 return elm$core$Maybe$Just(trimmed); 8270 } 8271 }); 8272 var _n0 = fenceCharacter.kind; 8273 if (_n0.$ === 'Backtick') { 8274 return A2( 8275 elm$parser$Parser$Advanced$mapChompedString, 8276 toInfoString, 8277 elm$parser$Parser$Advanced$chompWhile( 8278 function (c) { 8279 return (!_Utils_eq( 8280 c, 8281 _Utils_chr('`'))) && (!dillonkearns$elm_markdown$Whitespace$isLineEnd(c)); 8282 })); 8283 } else { 8284 return A2( 8285 elm$parser$Parser$Advanced$mapChompedString, 8286 toInfoString, 8287 elm$parser$Parser$Advanced$chompWhile( 8288 A2(elm$core$Basics$composeL, elm$core$Basics$not, dillonkearns$elm_markdown$Whitespace$isLineEnd))); 8289 } 8290}; 8291var dillonkearns$elm_markdown$Markdown$CodeBlock$Backtick = {$: 'Backtick'}; 8292var dillonkearns$elm_markdown$Parser$Token$backtick = A2( 8293 elm$parser$Parser$Advanced$Token, 8294 '`', 8295 elm$parser$Parser$Expecting('a \'`\'')); 8296var dillonkearns$elm_markdown$Markdown$CodeBlock$backtick = { 8297 _char: _Utils_chr('`'), 8298 kind: dillonkearns$elm_markdown$Markdown$CodeBlock$Backtick, 8299 token: dillonkearns$elm_markdown$Parser$Token$backtick 8300}; 8301var dillonkearns$elm_markdown$Markdown$CodeBlock$colToIndentation = function (_int) { 8302 switch (_int) { 8303 case 1: 8304 return elm$parser$Parser$Advanced$succeed(0); 8305 case 2: 8306 return elm$parser$Parser$Advanced$succeed(1); 8307 case 3: 8308 return elm$parser$Parser$Advanced$succeed(2); 8309 case 4: 8310 return elm$parser$Parser$Advanced$succeed(3); 8311 default: 8312 return elm$parser$Parser$Advanced$problem( 8313 elm$parser$Parser$Expecting('Fenced code blocks should be indented no more than 3 spaces')); 8314 } 8315}; 8316var elm$core$List$repeatHelp = F3( 8317 function (result, n, value) { 8318 repeatHelp: 8319 while (true) { 8320 if (n <= 0) { 8321 return result; 8322 } else { 8323 var $temp$result = A2(elm$core$List$cons, value, result), 8324 $temp$n = n - 1, 8325 $temp$value = value; 8326 result = $temp$result; 8327 n = $temp$n; 8328 value = $temp$value; 8329 continue repeatHelp; 8330 } 8331 } 8332 }); 8333var elm$core$List$repeat = F2( 8334 function (n, value) { 8335 return A3(elm$core$List$repeatHelp, _List_Nil, n, value); 8336 }); 8337var dillonkearns$elm_markdown$Markdown$CodeBlock$fenceOfAtLeast = F2( 8338 function (minLength, fenceCharacter) { 8339 var builtTokens = A3( 8340 elm$core$List$foldl, 8341 F2( 8342 function (t, p) { 8343 return A2(elm$parser$Parser$Advanced$ignorer, p, t); 8344 }), 8345 elm$parser$Parser$Advanced$succeed(_Utils_Tuple0), 8346 A2( 8347 elm$core$List$repeat, 8348 minLength, 8349 elm$parser$Parser$Advanced$token(fenceCharacter.token))); 8350 return A2( 8351 elm$parser$Parser$Advanced$mapChompedString, 8352 F2( 8353 function (str, _n0) { 8354 return _Utils_Tuple2( 8355 fenceCharacter, 8356 elm$core$String$length(str)); 8357 }), 8358 A2( 8359 elm$parser$Parser$Advanced$ignorer, 8360 builtTokens, 8361 elm$parser$Parser$Advanced$chompWhile( 8362 elm$core$Basics$eq(fenceCharacter._char)))); 8363 }); 8364var dillonkearns$elm_markdown$Markdown$CodeBlock$Tilde = {$: 'Tilde'}; 8365var dillonkearns$elm_markdown$Parser$Token$tilde = A2( 8366 elm$parser$Parser$Advanced$Token, 8367 '~', 8368 elm$parser$Parser$Expecting('a `~`')); 8369var dillonkearns$elm_markdown$Markdown$CodeBlock$tilde = { 8370 _char: _Utils_chr('~'), 8371 kind: dillonkearns$elm_markdown$Markdown$CodeBlock$Tilde, 8372 token: dillonkearns$elm_markdown$Parser$Token$tilde 8373}; 8374var dillonkearns$elm_markdown$Parser$Token$space = A2( 8375 elm$parser$Parser$Advanced$Token, 8376 ' ', 8377 elm$parser$Parser$Expecting('a space')); 8378var dillonkearns$elm_markdown$Whitespace$space = elm$parser$Parser$Advanced$token(dillonkearns$elm_markdown$Parser$Token$space); 8379var dillonkearns$elm_markdown$Whitespace$upToThreeSpaces = elm$parser$Parser$Advanced$oneOf( 8380 _List_fromArray( 8381 [ 8382 A2( 8383 elm$parser$Parser$Advanced$ignorer, 8384 A2( 8385 elm$parser$Parser$Advanced$ignorer, 8386 dillonkearns$elm_markdown$Whitespace$space, 8387 elm$parser$Parser$Advanced$oneOf( 8388 _List_fromArray( 8389 [ 8390 dillonkearns$elm_markdown$Whitespace$space, 8391 elm$parser$Parser$Advanced$succeed(_Utils_Tuple0) 8392 ]))), 8393 elm$parser$Parser$Advanced$oneOf( 8394 _List_fromArray( 8395 [ 8396 dillonkearns$elm_markdown$Whitespace$space, 8397 elm$parser$Parser$Advanced$succeed(_Utils_Tuple0) 8398 ]))), 8399 elm$parser$Parser$Advanced$succeed(_Utils_Tuple0) 8400 ])); 8401var elm$parser$Parser$Advanced$getCol = elm$parser$Parser$Advanced$Parser( 8402 function (s) { 8403 return A3(elm$parser$Parser$Advanced$Good, false, s.col, s); 8404 }); 8405var dillonkearns$elm_markdown$Markdown$CodeBlock$openingFence = A2( 8406 elm$parser$Parser$Advanced$keeper, 8407 A2( 8408 elm$parser$Parser$Advanced$keeper, 8409 A2( 8410 elm$parser$Parser$Advanced$ignorer, 8411 elm$parser$Parser$Advanced$succeed( 8412 F2( 8413 function (indent, _n0) { 8414 var character = _n0.a; 8415 var length = _n0.b; 8416 return {character: character, indented: indent, length: length}; 8417 })), 8418 dillonkearns$elm_markdown$Whitespace$upToThreeSpaces), 8419 A2(elm$parser$Parser$Advanced$andThen, dillonkearns$elm_markdown$Markdown$CodeBlock$colToIndentation, elm$parser$Parser$Advanced$getCol)), 8420 elm$parser$Parser$Advanced$oneOf( 8421 _List_fromArray( 8422 [ 8423 A2(dillonkearns$elm_markdown$Markdown$CodeBlock$fenceOfAtLeast, 3, dillonkearns$elm_markdown$Markdown$CodeBlock$backtick), 8424 A2(dillonkearns$elm_markdown$Markdown$CodeBlock$fenceOfAtLeast, 3, dillonkearns$elm_markdown$Markdown$CodeBlock$tilde) 8425 ]))); 8426var dillonkearns$elm_markdown$Whitespace$isSpace = elm$core$Basics$eq( 8427 _Utils_chr(' ')); 8428var dillonkearns$elm_markdown$Markdown$CodeBlock$closingFence = F2( 8429 function (minLength, fenceCharacter) { 8430 return A2( 8431 elm$parser$Parser$Advanced$ignorer, 8432 A2( 8433 elm$parser$Parser$Advanced$ignorer, 8434 A2( 8435 elm$parser$Parser$Advanced$ignorer, 8436 A2( 8437 elm$parser$Parser$Advanced$ignorer, 8438 elm$parser$Parser$Advanced$succeed(_Utils_Tuple0), 8439 dillonkearns$elm_markdown$Whitespace$upToThreeSpaces), 8440 A2(dillonkearns$elm_markdown$Markdown$CodeBlock$fenceOfAtLeast, minLength, fenceCharacter)), 8441 elm$parser$Parser$Advanced$chompWhile(dillonkearns$elm_markdown$Whitespace$isSpace)), 8442 dillonkearns$elm_markdown$Helpers$lineEndOrEnd); 8443 }); 8444var dillonkearns$elm_markdown$Parser$Extra$upTo = F2( 8445 function (n, parser) { 8446 var _n0 = A2(elm$core$List$repeat, n, parser); 8447 if (!_n0.b) { 8448 return elm$parser$Parser$Advanced$succeed(_Utils_Tuple0); 8449 } else { 8450 var firstParser = _n0.a; 8451 var remainingParsers = _n0.b; 8452 return A3( 8453 elm$core$List$foldl, 8454 F2( 8455 function (p, parsers) { 8456 return elm$parser$Parser$Advanced$oneOf( 8457 _List_fromArray( 8458 [ 8459 A2(elm$parser$Parser$Advanced$ignorer, p, parsers), 8460 elm$parser$Parser$Advanced$succeed(_Utils_Tuple0) 8461 ])); 8462 }), 8463 elm$parser$Parser$Advanced$oneOf( 8464 _List_fromArray( 8465 [ 8466 firstParser, 8467 elm$parser$Parser$Advanced$succeed(_Utils_Tuple0) 8468 ])), 8469 remainingParsers); 8470 } 8471 }); 8472var elm$parser$Parser$Advanced$getOffset = elm$parser$Parser$Advanced$Parser( 8473 function (s) { 8474 return A3(elm$parser$Parser$Advanced$Good, false, s.offset, s); 8475 }); 8476var dillonkearns$elm_markdown$Markdown$CodeBlock$codeBlockLine = function (indented) { 8477 return A2( 8478 elm$parser$Parser$Advanced$keeper, 8479 A2( 8480 elm$parser$Parser$Advanced$ignorer, 8481 elm$parser$Parser$Advanced$succeed(elm$core$Basics$identity), 8482 A2(dillonkearns$elm_markdown$Parser$Extra$upTo, indented, dillonkearns$elm_markdown$Whitespace$space)), 8483 A2( 8484 elm$parser$Parser$Advanced$ignorer, 8485 A2(elm$parser$Parser$Advanced$ignorer, elm$parser$Parser$Advanced$getOffset, dillonkearns$elm_markdown$Helpers$chompUntilLineEndOrEnd), 8486 dillonkearns$elm_markdown$Helpers$lineEndOrEnd)); 8487}; 8488var elm$parser$Parser$ExpectingEnd = {$: 'ExpectingEnd'}; 8489var elm$parser$Parser$Advanced$backtrackable = function (_n0) { 8490 var parse = _n0.a; 8491 return elm$parser$Parser$Advanced$Parser( 8492 function (s0) { 8493 var _n1 = parse(s0); 8494 if (_n1.$ === 'Bad') { 8495 var x = _n1.b; 8496 return A2(elm$parser$Parser$Advanced$Bad, false, x); 8497 } else { 8498 var a = _n1.b; 8499 var s1 = _n1.c; 8500 return A3(elm$parser$Parser$Advanced$Good, false, a, s1); 8501 } 8502 }); 8503}; 8504var elm$parser$Parser$Advanced$getSource = elm$parser$Parser$Advanced$Parser( 8505 function (s) { 8506 return A3(elm$parser$Parser$Advanced$Good, false, s.src, s); 8507 }); 8508var dillonkearns$elm_markdown$Markdown$CodeBlock$remainingBlockHelp = function (_n0) { 8509 var fence = _n0.a; 8510 var body = _n0.b; 8511 return elm$parser$Parser$Advanced$oneOf( 8512 _List_fromArray( 8513 [ 8514 A2( 8515 elm$parser$Parser$Advanced$ignorer, 8516 elm$parser$Parser$Advanced$succeed( 8517 elm$parser$Parser$Advanced$Done(body)), 8518 elm$parser$Parser$Advanced$end(elm$parser$Parser$ExpectingEnd)), 8519 A2( 8520 elm$parser$Parser$Advanced$mapChompedString, 8521 F2( 8522 function (lineEnd, _n1) { 8523 return elm$parser$Parser$Advanced$Loop( 8524 _Utils_Tuple2( 8525 fence, 8526 _Utils_ap(body, lineEnd))); 8527 }), 8528 dillonkearns$elm_markdown$Whitespace$lineEnd), 8529 elm$parser$Parser$Advanced$backtrackable( 8530 A2( 8531 elm$parser$Parser$Advanced$ignorer, 8532 elm$parser$Parser$Advanced$succeed( 8533 elm$parser$Parser$Advanced$Done(body)), 8534 A2(dillonkearns$elm_markdown$Markdown$CodeBlock$closingFence, fence.length, fence.character))), 8535 A2( 8536 elm$parser$Parser$Advanced$keeper, 8537 A2( 8538 elm$parser$Parser$Advanced$keeper, 8539 A2( 8540 elm$parser$Parser$Advanced$keeper, 8541 elm$parser$Parser$Advanced$succeed( 8542 F3( 8543 function (start, end, source) { 8544 return elm$parser$Parser$Advanced$Loop( 8545 _Utils_Tuple2( 8546 fence, 8547 _Utils_ap( 8548 body, 8549 A3(elm$core$String$slice, start, end, source)))); 8550 })), 8551 dillonkearns$elm_markdown$Markdown$CodeBlock$codeBlockLine(fence.indented)), 8552 elm$parser$Parser$Advanced$getOffset), 8553 elm$parser$Parser$Advanced$getSource) 8554 ])); 8555}; 8556var dillonkearns$elm_markdown$Markdown$CodeBlock$remainingBlock = function (fence) { 8557 return A2( 8558 elm$parser$Parser$Advanced$loop, 8559 _Utils_Tuple2(fence, ''), 8560 dillonkearns$elm_markdown$Markdown$CodeBlock$remainingBlockHelp); 8561}; 8562var dillonkearns$elm_markdown$Markdown$CodeBlock$parser = A2( 8563 elm$parser$Parser$Advanced$andThen, 8564 function (fence) { 8565 return A2( 8566 elm$parser$Parser$Advanced$keeper, 8567 A2( 8568 elm$parser$Parser$Advanced$keeper, 8569 elm$parser$Parser$Advanced$succeed(dillonkearns$elm_markdown$Markdown$CodeBlock$CodeBlock), 8570 A2( 8571 elm$parser$Parser$Advanced$ignorer, 8572 dillonkearns$elm_markdown$Markdown$CodeBlock$infoString(fence.character), 8573 dillonkearns$elm_markdown$Helpers$lineEndOrEnd)), 8574 dillonkearns$elm_markdown$Markdown$CodeBlock$remainingBlock(fence)); 8575 }, 8576 dillonkearns$elm_markdown$Markdown$CodeBlock$openingFence); 8577var elm$core$String$dropRight = F2( 8578 function (n, string) { 8579 return (n < 1) ? string : A3(elm$core$String$slice, 0, -n, string); 8580 }); 8581var elm$core$String$endsWith = _String_endsWith; 8582var dillonkearns$elm_markdown$Markdown$Heading$dropTrailingHashes = function (headingString) { 8583 return A2(elm$core$String$endsWith, '#', headingString) ? dillonkearns$elm_markdown$Markdown$Heading$dropTrailingHashes( 8584 A2(elm$core$String$dropRight, 1, headingString)) : headingString; 8585};
8586var elm$core$String$trimRight = _String_trimRight; 8587var dillonkearns$elm_markdown$Markdown$Heading$dropClosingSequence = function (headingString) { 8588 var droppedTrailingHashesString = dillonkearns$elm_markdown$Markdown$Heading$dropTrailingHashes(headingString); 8589 return (A2(elm$core$String$endsWith, ' ', droppedTrailingHashesString) || elm$core$String$isEmpty(droppedTrailingHashesString)) ? elm$core$String$trimRight(droppedTrailingHashesString) : headingString; 8590}; 8591var dillonkearns$elm_markdown$Markdown$Heading$isHash = function (c) { 8592 if ('#' === c.valueOf()) { 8593 return true; 8594 } else { 8595 return false; 8596 } 8597}; 8598var dillonkearns$elm_markdown$Markdown$RawBlock$Heading = F2( 8599 function (a, b) { 8600 return {$: 'Heading', a: a, b: b}; 8601 }); 8602var dillonkearns$elm_markdown$Markdown$RawBlock$UnparsedInlines = function (a) { 8603 return {$: 'UnparsedInlines', a: a}; 8604}; 8605var dillonkearns$elm_markdown$Parser$Token$hash = A2( 8606 elm$parser$Parser$Advanced$Token, 8607 '#', 8608 elm$parser$Parser$Expecting('a `#`')); 8609var dillonkearns$elm_markdown$Parser$Token$tab = A2( 8610 elm$parser$Parser$Advanced$Token, 8611 '\t', 8612 elm$parser$Parser$Expecting('a tab')); 8613var elm$parser$Parser$Advanced$spaces = elm$parser$Parser$Advanced$chompWhile( 8614 function (c) { 8615 return _Utils_eq( 8616 c, 8617 _Utils_chr(' ')) || (_Utils_eq( 8618 c, 8619 _Utils_chr('\n')) || _Utils_eq( 8620 c, 8621 _Utils_chr('\r'))); 8622 }); 8623var elm$parser$Parser$Advanced$symbol = elm$parser$Parser$Advanced$token; 8624var dillonkearns$elm_markdown$Markdown$Heading$parser = A2( 8625 elm$parser$Parser$Advanced$keeper, 8626 A2( 8627 elm$parser$Parser$Advanced$keeper, 8628 A2( 8629 elm$parser$Parser$Advanced$ignorer, 8630 A2( 8631 elm$parser$Parser$Advanced$ignorer, 8632 elm$parser$Parser$Advanced$succeed(dillonkearns$elm_markdown$Markdown$RawBlock$Heading), 8633 A2( 8634 elm$parser$Parser$Advanced$andThen, 8635 function (startingSpaces) { 8636 var startSpace = elm$core$String$length(startingSpaces); 8637 return (startSpace >= 4) ? elm$parser$Parser$Advanced$problem( 8638 elm$parser$Parser$Expecting('heading with < 4 spaces in front')) : elm$parser$Parser$Advanced$succeed(startSpace); 8639 }, 8640 elm$parser$Parser$Advanced$getChompedString(elm$parser$Parser$Advanced$spaces))), 8641 elm$parser$Parser$Advanced$symbol(dillonkearns$elm_markdown$Parser$Token$hash)), 8642 A2( 8643 elm$parser$Parser$Advanced$andThen, 8644 function (additionalHashes) { 8645 var level = elm$core$String$length(additionalHashes) + 1; 8646 return (level >= 7) ? elm$parser$Parser$Advanced$problem( 8647 elm$parser$Parser$Expecting('heading with < 7 #\'s')) : elm$parser$Parser$Advanced$succeed(level); 8648 }, 8649 elm$parser$Parser$Advanced$getChompedString( 8650 elm$parser$Parser$Advanced$chompWhile(dillonkearns$elm_markdown$Markdown$Heading$isHash)))), 8651 elm$parser$Parser$Advanced$oneOf( 8652 _List_fromArray( 8653 [ 8654 A2( 8655 elm$parser$Parser$Advanced$ignorer, 8656 elm$parser$Parser$Advanced$succeed( 8657 dillonkearns$elm_markdown$Markdown$RawBlock$UnparsedInlines('')), 8658 elm$parser$Parser$Advanced$symbol(dillonkearns$elm_markdown$Parser$Token$newline)), 8659 A2( 8660 elm$parser$Parser$Advanced$keeper, 8661 A2( 8662 elm$parser$Parser$Advanced$ignorer, 8663 elm$parser$Parser$Advanced$succeed(elm$core$Basics$identity), 8664 elm$parser$Parser$Advanced$oneOf( 8665 _List_fromArray( 8666 [ 8667 elm$parser$Parser$Advanced$symbol(dillonkearns$elm_markdown$Parser$Token$space), 8668 elm$parser$Parser$Advanced$symbol(dillonkearns$elm_markdown$Parser$Token$tab) 8669 ]))), 8670 A2( 8671 elm$parser$Parser$Advanced$mapChompedString, 8672 F2( 8673 function (headingText, _n0) { 8674 return dillonkearns$elm_markdown$Markdown$RawBlock$UnparsedInlines( 8675 dillonkearns$elm_markdown$Markdown$Heading$dropClosingSequence( 8676 elm$core$String$trim(headingText))); 8677 }), 8678 dillonkearns$elm_markdown$Helpers$chompUntilLineEndOrEnd)) 8679 ]))); 8680var dillonkearns$elm_markdown$Markdown$Helpers$isEven = function (_int) { 8681 return !A2(elm$core$Basics$modBy, 2, _int); 8682}; 8683var dillonkearns$elm_markdown$Markdown$Inline$Emphasis = F2( 8684 function (a, b) { 8685 return {$: 'Emphasis', a: a, b: b}; 8686 }); 8687var dillonkearns$elm_markdown$Markdown$Inline$CodeInline = function (a) { 8688 return {$: 'CodeInline', a: a}; 8689}; 8690var dillonkearns$elm_markdown$Markdown$Inline$HardLineBreak = {$: 'HardLineBreak'}; 8691var dillonkearns$elm_markdown$Markdown$Inline$HtmlInline = function (a) { 8692 return {$: 'HtmlInline', a: a}; 8693}; 8694var dillonkearns$elm_markdown$Markdown$Inline$Image = F3( 8695 function (a, b, c) {
8696 return {$: 'Image', a: a, b: b, c: c}; 8697 }); 8698var dillonkearns$elm_markdown$Markdown$Inline$Link = F3( 8699 function (a, b, c) { 8700 return {$: 'Link', a: a, b: b, c: c}; 8701 }); 8702var dillonkearns$elm_markdown$Markdown$Inline$Strikethrough = function (a) { 8703 return {$: 'Strikethrough', a: a}; 8704}; 8705var dillonkearns$elm_markdown$Markdown$Inline$Text = function (a) { 8706 return {$: 'Text', a: a}; 8707}; 8708var dillonkearns$elm_markdown$Markdown$InlineParser$matchToInline = function (_n0) { 8709 var match = _n0.a; 8710 var _n1 = match.type_; 8711 switch (_n1.$) { 8712 case 'NormalType': 8713 return dillonkearns$elm_markdown$Markdown$Inline$Text(match.text); 8714 case 'HardLineBreakType': 8715 return dillonkearns$elm_markdown$Markdown$Inline$HardLineBreak; 8716 case 'CodeType': 8717 return dillonkearns$elm_markdown$Markdown$Inline$CodeInline(match.text); 8718 case 'AutolinkType': 8719 var _n2 = _n1.a; 8720 var text = _n2.a; 8721 var url = _n2.b; 8722 return A3( 8723 dillonkearns$elm_markdown$Markdown$Inline$Link, 8724 url, 8725 elm$core$Maybe$Nothing, 8726 _List_fromArray( 8727 [ 8728 dillonkearns$elm_markdown$Markdown$Inline$Text(text) 8729 ])); 8730 case 'LinkType': 8731 var _n3 = _n1.a; 8732 var url = _n3.a; 8733 var maybeTitle = _n3.b; 8734 return A3( 8735 dillonkearns$elm_markdown$Markdown$Inline$Link, 8736 url, 8737 maybeTitle, 8738 dillonkearns$elm_markdown$Markdown$InlineParser$matchesToInlines(match.matches)); 8739 case 'ImageType': 8740 var _n4 = _n1.a; 8741 var url = _n4.a; 8742 var maybeTitle = _n4.b; 8743 return A3( 8744 dillonkearns$elm_markdown$Markdown$Inline$Image, 8745 url, 8746 maybeTitle, 8747 dillonkearns$elm_markdown$Markdown$InlineParser$matchesToInlines(match.matches)); 8748 case 'HtmlType': 8749 var model = _n1.a; 8750 return dillonkearns$elm_markdown$Markdown$Inline$HtmlInline(model); 8751 case 'EmphasisType': 8752 var length = _n1.a; 8753 return A2( 8754 dillonkearns$elm_markdown$Markdown$Inline$Emphasis, 8755 length, 8756 dillonkearns$elm_markdown$Markdown$InlineParser$matchesToInlines(match.matches)); 8757 default: 8758 return dillonkearns$elm_markdown$Markdown$Inline$Strikethrough( 8759 dillonkearns$elm_markdown$Markdown$InlineParser$matchesToInlines(match.matches)); 8760 } 8761}; 8762var dillonkearns$elm_markdown$Markdown$InlineParser$matchesToInlines = function (matches) { 8763 return A2(elm$core$List$map, dillonkearns$elm_markdown$Markdown$InlineParser$matchToInline, matches); 8764}; 8765var dillonkearns$elm_markdown$Markdown$InlineParser$Match = function (a) { 8766 return {$: 'Match', a: a}; 8767}; 8768var dillonkearns$elm_markdown$Markdown$InlineParser$prepareChildMatch = F2( 8769 function (parentMatch, childMatch) { 8770 return dillonkearns$elm_markdown$Markdown$InlineParser$Match( 8771 {end: childMatch.end - parentMatch.textStart, matches: childMatch.matches, start: childMatch.start - parentMatch.textStart, text: childMatch.text, textEnd: childMatch.textEnd - parentMatch.textStart, textStart: childMatch.textStart - parentMatch.textStart, type_: childMatch.type_}); 8772 }); 8773var dillonkearns$elm_markdown$Markdown$InlineParser$addChild = F2( 8774 function (parentMatch, childMatch) { 8775 return dillonkearns$elm_markdown$Markdown$InlineParser$Match( 8776 { 8777 end: parentMatch.end, 8778 matches: A2( 8779 elm$core$List$cons, 8780 A2(dillonkearns$elm_markdown$Markdown$InlineParser$prepareChildMatch, parentMatch, childMatch), 8781 parentMatch.matches), 8782 start: parentMatch.start, 8783 text: parentMatch.text, 8784 textEnd: parentMatch.textEnd, 8785 textStart: parentMatch.textStart, 8786 type_: parentMatch.type_ 8787 }); 8788 }); 8789var elm$core$List$sortBy = _List_sortBy; 8790var dillonkearns$elm_markdown$Markdown$InlineParser$organizeChildren = function (_n4) { 8791 var match = _n4.a; 8792 return dillonkearns$elm_markdown$Markdown$InlineParser$Match( 8793 { 8794 end: match.end, 8795 matches: dillonkearns$elm_markdown$Markdown$InlineParser$organizeMatches(match.matches), 8796 start: match.start, 8797 text: match.text, 8798 textEnd: match.textEnd, 8799 textStart: match.textStart, 8800 type_: match.type_ 8801 }); 8802}; 8803var dillonkearns$elm_markdown$Markdown$InlineParser$organizeMatches = function (matches) { 8804 var _n2 = A2( 8805 elm$core$List$sortBy, 8806 function (_n3) { 8807 var match = _n3.a; 8808 return match.start; 8809 }, 8810 matches); 8811 if (!_n2.b) { 8812 return _List_Nil; 8813 } else { 8814 var first = _n2.a; 8815 var rest = _n2.b; 8816 return A3(dillonkearns$elm_markdown$Markdown$InlineParser$organizeMatchesHelp, rest, first, _List_Nil); 8817 } 8818}; 8819var dillonkearns$elm_markdown$Markdown$InlineParser$organizeMatchesHelp = F3( 8820 function (remaining, _n0, matchesTail) { 8821 organizeMatchesHelp: 8822 while (true) { 8823 var prevMatch = _n0.a; 8824 if (!remaining.b) { 8825 return A2( 8826 elm$core$List$cons, 8827 dillonkearns$elm_markdown$Markdown$InlineParser$organizeChildren( 8828 dillonkearns$elm_markdown$Markdown$InlineParser$Match(prevMatch)), 8829 matchesTail); 8830 } else { 8831 var match = remaining.a.a; 8832 var rest = remaining.b; 8833 if (_Utils_cmp(prevMatch.end, match.start) < 1) { 8834 var $temp$remaining = rest, 8835 $temp$_n0 = dillonkearns$elm_markdown$Markdown$InlineParser$Match(match), 8836 $temp$matchesTail = A2( 8837 elm$core$List$cons, 8838 dillonkearns$elm_markdown$Markdown$InlineParser$organizeChildren( 8839 dillonkearns$elm_markdown$Markdown$InlineParser$Match(prevMatch)), 8840 matchesTail); 8841 remaining = $temp$remaining; 8842 _n0 = $temp$_n0; 8843 matchesTail = $temp$matchesTail; 8844 continue organizeMatchesHelp; 8845 } else { 8846 if ((_Utils_cmp(prevMatch.start, match.start) < 0) && (_Utils_cmp(prevMatch.end, match.end) > 0)) { 8847 var $temp$remaining = rest, 8848 $temp$_n0 = A2(dillonkearns$elm_markdown$Markdown$InlineParser$addChild, prevMatch, match), 8849 $temp$matchesTail = matchesTail; 8850 remaining = $temp$remaining; 8851 _n0 = $temp$_n0; 8852 matchesTail = $temp$matchesTail; 8853 continue organizeMatchesHelp; 8854 } else { 8855 var $temp$remaining = rest, 8856 $temp$_n0 = dillonkearns$elm_markdown$Markdown$InlineParser$Match(prevMatch), 8857 $temp$matchesTail = matchesTail; 8858 remaining = $temp$remaining; 8859 _n0 = $temp$_n0; 8860 matchesTail = $temp$matchesTail; 8861 continue organizeMatchesHelp; 8862 } 8863 } 8864 } 8865 } 8866 }); 8867var elm$regex$Regex$Match = F4( 8868 function (match, index, number, submatches) { 8869 return {index: index, match: match, number: number, submatches: submatches}; 8870 }); 8871var elm$regex$Regex$fromStringWith = _Regex_fromStringWith; 8872var elm$regex$Regex$fromString = function (string) { 8873 return A2( 8874 elm$regex$Regex$fromStringWith, 8875 {caseInsensitive: false, multiline: false}, 8876 string); 8877}; 8878var elm$regex$Regex$never = _Regex_never; 8879var dillonkearns$elm_markdown$Markdown$Entity$decimalRegex = A2( 8880 elm$core$Maybe$withDefault, 8881 elm$regex$Regex$never, 8882 elm$regex$Regex$fromString('&#([0-9]{1,8});')); 8883var dillonkearns$elm_markdown$Markdown$Entity$isBadEndUnicode = function (_int) { 8884 var remain_ = A2(elm$core$Basics$modBy, 16, _int); 8885 var remain = A2(elm$core$Basics$modBy, 131070, _int); 8886 return (_int >= 131070) && ((((0 <= remain) && (remain <= 15)) || ((65536 <= remain) && (remain <= 65551))
8886) && ((remain_ === 14) || (remain_ === 15))); 8887}; 8888var dillonkearns$elm_markdown$Markdown$Entity$isValidUnicode = function (_int) { 8889 return (_int === 9) || ((_int === 10) || ((_int === 13) || ((_int === 133) || (((32 <= _int) && (_int <= 126)) || (((160 <= _int) && (_int <= 55295)) || (((57344 <= _int) && (_int <= 64975)) || (((65008 <= _int) && (_int <= 65533)) || ((65536 <= _int) && (_int <= 1114109))))))))); 8890}; 8891var dillonkearns$elm_markdown$Markdown$Entity$validUnicode = function (_int) { 8892 return (dillonkearns$elm_markdown$Markdown$Entity$isValidUnicode(_int) && (!dillonkearns$elm_markdown$Markdown$Entity$isBadEndUnicode(_int))) ? elm$core$String$fromChar( 8893 elm$core$Char$fromCode(_int)) : elm$core$String$fromChar( 8894 elm$core$Char$fromCode(65533)); 8895}; 8896var dillonkearns$elm_markdown$Markdown$Entity$replaceDecimal = function (match) { 8897 var _n0 = match.submatches; 8898 if (_n0.b && (_n0.a.$ === 'Just')) { 8899 var first = _n0.a.a; 8900 var _n1 = elm$core$String$toInt(first); 8901 if (_n1.$ === 'Just') { 8902 var v = _n1.a; 8903 return dillonkearns$elm_markdown$Markdown$Entity$validUnicode(v); 8904 } else { 8905 return match.match; 8906 } 8907 } else { 8908 return match.match; 8909 } 8910}; 8911var elm$regex$Regex$replace = _Regex_replaceAtMost(_Regex_infinity); 8912var dillonkearns$elm_markdown$Markdown$Entity$replaceDecimals = A2(elm$regex$Regex$replace, dillonkearns$elm_markdown$Markdown$Entity$decimalRegex, dillonkearns$elm_markdown$Markdown$Entity$replaceDecimal); 8913var dillonkearns$elm_markdown$Markdown$Entity$entitiesRegex = A2( 8914 elm$core$Maybe$withDefault, 8915 elm$regex$Regex$never, 8916 elm$regex$Regex$fromString('&([0-9a-zA-Z]+);')); 8917var dillonkearns$elm_markdown$Markdown$Entity$entities = elm$core$Dict$fromList( 8918 _List_fromArray( 8919 [ 8920 _Utils_Tuple2('quot', 34), 8921 _Utils_Tuple2('amp', 38), 8922 _Utils_Tuple2('apos', 39), 8923 _Utils_Tuple2('lt', 60), 8924 _Utils_Tuple2('gt', 62), 8925 _Utils_Tuple2('nbsp', 160), 8926 _Utils_Tuple2('iexcl', 161), 8927 _Utils_Tuple2('cent', 162), 8928 _Utils_Tuple2('pound', 163), 8929 _Utils_Tuple2('curren', 164), 8930 _Utils_Tuple2('yen', 165), 8931 _Utils_Tuple2('brvbar', 166), 8932 _Utils_Tuple2('sect', 167), 8933 _Utils_Tuple2('uml', 168), 8934 _Utils_Tuple2('copy', 169), 8935 _Utils_Tuple2('ordf', 170), 8936 _Utils_Tuple2('laquo', 171), 8937 _Utils_Tuple2('not', 172), 8938 _Utils_Tuple2('shy', 173), 8939 _Utils_Tuple2('reg', 174), 8940 _Utils_Tuple2('macr', 175), 8941 _Utils_Tuple2('deg', 176), 8942 _Utils_Tuple2('plusmn', 177), 8943 _Utils_Tuple2('sup2', 178), 8944 _Utils_Tuple2('sup3', 179), 8945 _Utils_Tuple2('acute', 180), 8946 _Utils_Tuple2('micro', 181), 8947 _Utils_Tuple2('para', 182), 8948 _Utils_Tuple2('middot', 183), 8949 _Utils_Tuple2('cedil', 184), 8950 _Utils_Tuple2('sup1', 185), 8951 _Utils_Tuple2('ordm', 186), 8952 _Utils_Tuple2('raquo', 187), 8953 _Utils_Tuple2('frac14', 188), 8954 _Utils_Tuple2('frac12', 189), 8955 _Utils_Tuple2('frac34', 190), 8956 _Utils_Tuple2('iquest', 191), 8957 _Utils_Tuple2('Agrave', 192), 8958 _Utils_Tuple2('Aacute', 193), 8959 _Utils_Tuple2('Acirc', 194), 8960 _Utils_Tuple2('Atilde', 195), 8961 _Utils_Tuple2('Auml', 196), 8962 _Utils_Tuple2('Aring', 197), 8963 _Utils_Tuple2('AElig', 198), 8964 _Utils_Tuple2('Ccedil', 199), 8965 _Utils_Tuple2('Egrave', 200), 8966 _Utils_Tuple2('Eacute', 201), 8967 _Utils_Tuple2('Ecirc', 202), 8968 _Utils_Tuple2('Euml', 203), 8969 _Utils_Tuple2('Igrave', 204), 8970 _Utils_Tuple2('Iacute', 205), 8971 _Utils_Tuple2('Icirc', 206), 8972 _Utils_Tuple2('Iuml', 207), 8973 _Utils_Tuple2('ETH', 208), 8974 _Utils_Tuple2('Ntilde', 209), 8975 _Utils_Tuple2('Ograve', 210), 8976 _Utils_Tuple2('Oacute', 211), 8977 _Utils_Tuple2('Ocirc', 212), 8978 _Utils_Tuple2('Otilde', 213), 8979 _Utils_Tuple2('Ouml', 214), 8980 _Utils_Tuple2('times', 215), 8981 _Utils_Tuple2('Oslash', 216), 8982 _Utils_Tuple2('Ugrave', 217), 8983 _Utils_Tuple2('Uacute', 218), 8984 _Utils_Tuple2('Ucirc', 219), 8985 _Utils_Tuple2('Uuml', 220), 8986 _Utils_Tuple2('Yacute', 221), 8987 _Utils_Tuple2('THORN', 222), 8988 _Utils_Tuple2('szlig', 223), 8989 _Utils_Tuple2('agrave', 224), 8990 _Utils_Tuple2('aacute', 225), 8991 _Utils_Tuple2('acirc', 226), 8992 _Utils_Tuple2('atilde', 227), 8993 _Utils_Tuple2('auml', 228), 8994 _Utils_Tuple2('aring', 229), 8995 _Utils_Tuple2('aelig', 230), 8996 _Utils_Tuple2('ccedil', 231), 8997 _Utils_Tuple2('egrave', 232), 8998 _Utils_Tuple2('eacute', 233), 8999 _Utils_Tuple2('ecirc', 234), 9000 _Utils_Tuple2('euml', 235), 9001 _Utils_Tuple2('igrave', 236), 9002 _Utils_Tuple2('iacute', 237), 9003 _Utils_Tuple2('icirc', 238), 9004 _Utils_Tuple2('iuml', 239), 9005 _Utils_Tuple2('eth', 240), 9006 _Utils_Tuple2('ntilde', 241), 9007 _Utils_Tuple2('ograve', 242), 9008 _Utils_Tuple2('oacute', 243), 9009 _Utils_Tuple2('ocirc', 244), 9010 _Utils_Tuple2('otilde', 245), 9011 _Utils_Tuple2('ouml', 246), 9012 _Utils_Tuple2('divide', 247), 9013 _Utils_Tuple2('oslash', 248), 9014 _Utils_Tuple2('ugrave', 249), 9015 _Utils_Tuple2('uacute', 250), 9016 _Utils_Tuple2('ucirc', 251), 9017 _Utils_Tuple2('uuml', 252), 9018 _Utils_Tuple2('yacute', 253), 9019 _Utils_Tuple2('thorn', 254), 9020 _Utils_Tuple2('yuml', 255), 9021 _Utils_Tuple2('OElig', 338),
9022 _Utils_Tuple2('oelig', 339), 9023 _Utils_Tuple2('Scaron', 352), 9024 _Utils_Tuple2('scaron', 353), 9025 _Utils_Tuple2('Yuml', 376), 9026 _Utils_Tuple2('fnof', 402), 9027 _Utils_Tuple2('circ', 710), 9028 _Utils_Tuple2('tilde', 732), 9029 _Utils_Tuple2('Alpha', 913), 9030 _Utils_Tuple2('Beta', 914), 9031 _Utils_Tuple2('Gamma', 915), 9032 _Utils_Tuple2('Delta', 916), 9033 _Utils_Tuple2('Epsilon', 917), 9034 _Utils_Tuple2('Zeta', 918), 9035 _Utils_Tuple2('Eta', 919), 9036 _Utils_Tuple2('Theta', 920), 9037 _Utils_Tuple2('Iota', 921), 9038 _Utils_Tuple2('Kappa', 922), 9039 _Utils_Tuple2('Lambda', 923), 9040 _Utils_Tuple2('Mu', 924), 9041 _Utils_Tuple2('Nu', 925), 9042 _Utils_Tuple2('Xi', 926), 9043 _Utils_Tuple2('Omicron', 927), 9044 _Utils_Tuple2('Pi', 928), 9045 _Utils_Tuple2('Rho', 929), 9046 _Utils_Tuple2('Sigma', 931), 9047 _Utils_Tuple2('Tau', 932), 9048 _Utils_Tuple2('Upsilon', 933), 9049 _Utils_Tuple2('Phi', 934), 9050 _Utils_Tuple2('Chi', 935), 9051 _Utils_Tuple2('Psi', 936), 9052 _Utils_Tuple2('Omega', 937), 9053 _Utils_Tuple2('alpha', 945), 9054 _Utils_Tuple2('beta', 946), 9055 _Utils_Tuple2('gamma', 947), 9056 _Utils_Tuple2('delta', 948), 9057 _Utils_Tuple2('epsilon', 949), 9058 _Utils_Tuple2('zeta', 950), 9059 _Utils_Tuple2('eta', 951), 9060 _Utils_Tuple2('theta', 952), 9061 _Utils_Tuple2('iota', 953), 9062 _Utils_Tuple2('kappa', 954), 9063 _Utils_Tuple2('lambda', 955), 9064 _Utils_Tuple2('mu', 956), 9065 _Utils_Tuple2('nu', 957), 9066 _Utils_Tuple2('xi', 958), 9067 _Utils_Tuple2('omicron', 959), 9068 _Utils_Tuple2('pi', 960), 9069 _Utils_Tuple2('rho', 961), 9070 _Utils_Tuple2('sigmaf', 962), 9071 _Utils_Tuple2('sigma', 963), 9072 _Utils_Tuple2('tau', 964), 9073 _Utils_Tuple2('upsilon', 965), 9074 _Utils_Tuple2('phi', 966), 9075 _Utils_Tuple2('chi', 967), 9076 _Utils_Tuple2('psi', 968), 9077 _Utils_Tuple2('omega', 969), 9078 _Utils_Tuple2('thetasym', 977), 9079 _Utils_Tuple2('upsih', 978), 9080 _Utils_Tuple2('piv', 982), 9081 _Utils_Tuple2('ensp', 8194), 9082 _Utils_Tuple2('emsp', 8195), 9083 _Utils_Tuple2('thinsp', 8201), 9084 _Utils_Tuple2('zwnj', 8204), 9085 _Utils_Tuple2('zwj', 8205), 9086 _Utils_Tuple2('lrm', 8206), 9087 _Utils_Tuple2('rlm', 8207), 9088 _Utils_Tuple2('ndash', 8211), 9089 _Utils_Tuple2('mdash', 8212), 9090 _Utils_Tuple2('lsquo', 8216), 9091 _Utils_Tuple2('rsquo', 8217), 9092 _Utils_Tuple2('sbquo', 8218), 9093 _Utils_Tuple2('ldquo', 8220), 9094 _Utils_Tuple2('rdquo', 8221), 9095 _Utils_Tuple2('bdquo', 8222), 9096 _Utils_Tuple2('dagger', 8224), 9097 _Utils_Tuple2('Dagger', 8225), 9098 _Utils_Tuple2('bull', 8226), 9099 _Utils_Tuple2('hellip', 8230), 9100 _Utils_Tuple2('permil', 8240), 9101 _Utils_Tuple2('prime', 8242), 9102 _Utils_Tuple2('Prime', 8243), 9103 _Utils_Tuple2('lsaquo', 8249), 9104 _Utils_Tuple2('rsaquo', 8250), 9105 _Utils_Tuple2('oline', 8254), 9106 _Utils_Tuple2('frasl', 8260), 9107 _Utils_Tuple2('euro', 8364), 9108 _Utils_Tuple2('image', 8465), 9109 _Utils_Tuple2('weierp', 8472), 9110 _Utils_Tuple2('real', 8476), 9111 _Utils_Tuple2('trade', 8482), 9112 _Utils_Tuple2('alefsym', 8501), 9113 _Utils_Tuple2('larr', 8592), 9114 _Utils_Tuple2('uarr', 8593), 9115 _Utils_Tuple2('rarr', 8594), 9116 _Utils_Tuple2('darr', 8595), 9117 _Utils_Tuple2('harr', 8596), 9118 _Utils_Tuple2('crarr', 8629), 9119 _Utils_Tuple2('lArr', 8656), 9120 _Utils_Tuple2('uArr', 8657), 9121 _Utils_Tuple2('rArr', 8658), 9122 _Utils_Tuple2('dArr', 8659), 9123 _Utils_Tuple2('hArr', 8660), 9124 _Utils_Tuple2('forall', 8704), 9125 _Utils_Tuple2('part', 8706), 9126 _Utils_Tuple2('exist', 8707), 9127 _Utils_Tuple2('empty', 8709), 9128 _Utils_Tuple2('nabla', 8711), 9129 _Utils_Tuple2('isin', 8712), 9130 _Utils_Tuple2('notin', 8713), 9131 _Utils_Tuple2('ni', 8715), 9132 _Utils_Tuple2('prod', 8719), 9133 _Utils_Tuple2('sum', 8721), 9134 _Utils_Tuple2('minus', 8722), 9135 _Utils_Tuple2('lowast', 8727), 9136 _Utils_Tuple2('radic', 8730), 9137 _Utils_Tuple2('prop', 8733), 9138 _Utils_Tuple2('infin', 8734), 9139 _Utils_Tuple2('ang', 8736), 9140 _Utils_Tuple2('and', 8743), 9141 _Utils_Tuple2('or', 8744), 9142 _Utils_Tuple2('cap', 8745), 9143 _Utils_Tuple2('cup', 8746), 9144 _Utils_Tuple2('int', 8747), 9145 _Utils_Tuple2('there4', 8756), 9146 _Utils_Tuple2('sim', 8764), 9147 _Utils_Tuple2('cong', 8773), 9148 _Utils_Tuple2('asymp', 8776), 9149 _Utils_Tuple2('ne', 8800), 9150 _Utils_Tuple2('equiv', 8801), 9151 _Utils_Tuple2('le', 8804), 9152 _Utils_Tuple2('ge', 8805), 9153 _Utils_Tuple2('sub', 8834), 9154 _Utils_Tuple2('sup', 8835), 9155 _Utils_Tuple2('nsub', 8836), 9156 _Utils_Tuple2('sube', 8838),
9157 _Utils_Tuple2('supe', 8839), 9158 _Utils_Tuple2('oplus', 8853), 9159 _Utils_Tuple2('otimes', 8855), 9160 _Utils_Tuple2('perp', 8869), 9161 _Utils_Tuple2('sdot', 8901), 9162 _Utils_Tuple2('lceil', 8968), 9163 _Utils_Tuple2('rceil', 8969), 9164 _Utils_Tuple2('lfloor', 8970), 9165 _Utils_Tuple2('rfloor', 8971), 9166 _Utils_Tuple2('lang', 9001), 9167 _Utils_Tuple2('rang', 9002), 9168 _Utils_Tuple2('loz', 9674), 9169 _Utils_Tuple2('spades', 9824), 9170 _Utils_Tuple2('clubs', 9827), 9171 _Utils_Tuple2('hearts', 9829), 9172 _Utils_Tuple2('diams', 9830) 9173 ])); 9174var dillonkearns$elm_markdown$Markdown$Entity$replaceEntity = function (match) { 9175 var _n0 = match.submatches; 9176 if (_n0.b && (_n0.a.$ === 'Just')) { 9177 var first = _n0.a.a; 9178 var _n1 = A2(elm$core$Dict$get, first, dillonkearns$elm_markdown$Markdown$Entity$entities); 9179 if (_n1.$ === 'Just') { 9180 var code = _n1.a; 9181 return elm$core$String$fromChar( 9182 elm$core$Char$fromCode(code)); 9183 } else { 9184 return match.match; 9185 } 9186 } else { 9187 return match.match; 9188 } 9189}; 9190var dillonkearns$elm_markdown$Markdown$Entity$replaceEntities = A2(elm$regex$Regex$replace, dillonkearns$elm_markdown$Markdown$Entity$entitiesRegex, dillonkearns$elm_markdown$Markdown$Entity$replaceEntity); 9191var dillonkearns$elm_markdown$Markdown$Entity$hexadecimalRegex = A2( 9192 elm$core$Maybe$withDefault, 9193 elm$regex$Regex$never, 9194 elm$regex$Regex$fromString('&#[Xx]([0-9a-fA-F]{1,8});')); 9195var elm$core$String$foldl = _String_foldl; 9196var dillonkearns$elm_markdown$Markdown$Entity$hexToInt = function (string) { 9197 var folder = F2( 9198 function (hexDigit, _int) { 9199 return ((_int * 16) + A2( 9200 elm$core$Basics$modBy, 9201 39, 9202 elm$core$Char$toCode(hexDigit))) - 9; 9203 }); 9204 return A3( 9205 elm$core$String$foldl, 9206 folder, 9207 0, 9208 elm$core$String$toLower(string)); 9209}; 9210var dillonkearns$elm_markdown$Markdown$Entity$replaceHexadecimal = function (match) { 9211 var _n0 = match.submatches; 9212 if (_n0.b && (_n0.a.$ === 'Just')) { 9213 var first = _n0.a.a; 9214 return dillonkearns$elm_markdown$Markdown$Entity$validUnicode( 9215 dillonkearns$elm_markdown$Markdown$Entity$hexToInt(first)); 9216 } else { 9217 return match.match; 9218 } 9219}; 9220var dillonkearns$elm_markdown$Markdown$Entity$replaceHexadecimals = A2(elm$regex$Regex$replace, dillonkearns$elm_markdown$Markdown$Entity$hexadecimalRegex, dillonkearns$elm_markdown$Markdown$Entity$replaceHexadecimal); 9221var dillonkearns$elm_markdown$Markdown$Helpers$containsAmpersand = function (string) { 9222 return A2(elm$core$String$contains, '&', string); 9223}; 9224var dillonkearns$elm_markdown$Markdown$Helpers$escapableRegex = A2( 9225 elm$core$Maybe$withDefault, 9226 elm$regex$Regex$never, 9227 elm$regex$Regex$fromString('(\\\\+)([!\"#$%&\\\'()*+,./:;<=>?@[\\\\\\]^_`{|}~-])')); 9228var elm$core$Bitwise$shiftRightBy = _Bitwise_shiftRightBy; 9229var elm$core$String$repeatHelp = F3( 9230 function (n, chunk, result) { 9231 return (n <= 0) ? result : A3( 9232 elm$core$String$repeatHelp, 9233 n >> 1, 9234 _Utils_ap(chunk, chunk), 9235 (!(n & 1)) ? result : _Utils_ap(result, chunk)); 9236 }); 9237var elm$core$String$repeat = F2( 9238 function (n, chunk) { 9239 return A3(elm$core$String$repeatHelp, n, chunk, ''); 9240 }); 9241var dillonkearns$elm_markdown$Markdown$Helpers$replaceEscapable = A2( 9242 elm$regex$Regex$replace, 9243 dillonkearns$elm_markdown$Markdown$Helpers$escapableRegex, 9244 function (regexMatch) { 9245 var _n0 = regexMatch.submatches; 9246 if (((_n0.b && (_n0.a.$ === 'Just')) && _n0.b.b) && (_n0.b.a.$ === 'Just')) { 9247 var backslashes = _n0.a.a; 9248 var _n1 = _n0.b; 9249 var escapedStr = _n1.a.a; 9250 return _Utils_ap( 9251 A2( 9252 elm$core$String$repeat, 9253 (elm$core$String$length(backslashes) / 2) | 0, 9254 '\\'), 9255 escapedStr); 9256 } else { 9257 return regexMatch.match; 9258 } 9259 }); 9260var dillonkearns$elm_markdown$Markdown$Helpers$formatStr = function (str) { 9261 var withEscapes = dillonkearns$elm_markdown$Markdown$Helpers$replaceEscapable(str); 9262 return dillonkearns$elm_markdown$Markdown$Helpers$containsAmpersand(withEscapes) ? dillonkearns$elm_markdown$Markdown$Entity$replaceHexadecimals( 9263 dillonkearns$elm_markdown$Markdown$Entity$replaceDecimals( 9264 dillonkearns$elm_markdown$Markdown$Entity$replaceEntities(withEscapes))) : withEscapes; 9265}; 9266var dillonkearns$elm_markdown$Markdown$InlineParser$NormalType = {$: 'NormalType'}; 9267var dillonkearns$elm_markdown$Markdown$InlineParser$normalMatch = function (text) { 9268 return dillonkearns$elm_markdown$Markdown$InlineParser$Match( 9269 { 9270 end: 0, 9271 matches: _List_Nil, 9272 start: 0, 9273 text: dillonkearns$elm_markdown$Markdown$Helpers$formatStr(text), 9274 textEnd: 0, 9275 textStart: 0, 9276 type_: dillonkearns$elm_markdown$Markdown$InlineParser$NormalType 9277 }); 9278}; 9279var dillonkearns$elm_markdown$Markdown$InlineParser$parseTextMatch = F3( 9280 function (rawText, _n2, parsedMatches) { 9281 var matchModel = _n2.a; 9282 var updtMatch = dillonkearns$elm_markdown$Markdown$InlineParser$Match( 9283 { 9284 end: matchModel.end, 9285 matches: A3(dillonkearns$elm_markdown$Markdown$InlineParser$parseTextMatches, matchModel.text, _List_Nil, matchModel.matches), 9286 start: matchModel.start, 9287 text: matchModel.text, 9288 textEnd: matchModel.textEnd, 9289 textStart: matchModel.textStart, 9290 type_: matchModel.type_ 9291 }); 9292 if (!parsedMatches.b) { 9293 var finalStr = A2(elm$core$String$dropLeft, matchModel.end, rawText); 9294 return elm$core$String$isEmpty(finalStr) ? _List_fromArray( 9295 [updtMatch]) : _List_fromArray( 9296 [ 9297 updtMatch, 9298 dillonkearns$elm_markdown$Markdown$InlineParser$normalMatch(finalStr) 9299 ]); 9300 } else { 9301 var matchHead = parsedMatches.a.a; 9302 var matchesTail = parsedMatches.b; 9303 var _n4 = matchHead.type_; 9304 if (_n4.$ === 'NormalType') { 9305 return A2(elm$core$List$cons, updtMatch, parsedMatches); 9306 } else { 9307 return _Utils_eq(matchModel.end, matchHead.start) ? A2(elm$core$List$cons, updtMatch, parsedMatches) : ((_Utils_cmp(matchModel.end, matchHead.start) < 0) ? A2( 9308 elm$core$List$cons, 9309 updtMatch, 9310 A2( 9311 elm$core$List$cons, 9312 dillonkearns$elm_markdown$Markdown$InlineParser$normalMatch( 9313 A3(elm$core$String$slice, matchModel.end, matchHead.start, rawText)), 9314 parsedMatches)) : parsedMatches); 9315 } 9316 } 9317 }); 9318var dillonkearns$elm_markdown$Markdown$InlineParser$parseTextMatches = F3( 9319 function (rawText, parsedMatches, matches) { 9320 parseTextMatches: 9321 while (true) { 9322 if (!matches.b) { 9323 if (!parsedMatches.b) { 9324 return elm$core$String$isEmpty(rawText) ? _List_Nil : _List_fromArray( 9325 [ 9326 dillonkearns$elm_markdown$Markdown$InlineParser$normalMatch(rawText) 9327 ]); 9328 } else { 9329 var matchModel = parsedMatches.a.a; 9330 return (matchModel.start > 0) ? A2( 9331 elm$core$List$cons, 9332 dillonkearns$elm_markdown$Markdown$InlineParser$normalMatch( 9333 A2(elm$core$String$left, matchModel.start, rawText)), 9334 parsedMatches) : parsedMatches; 9335 } 9336 } else { 9337 var match = matches.a; 9338 var matchesTail = matches.b; 9339 var $temp$rawText = rawText, 9340 $temp$parsedMatches = A3(dillonkearns$elm_markdown$Markdown$InlineParser$parseTextMatch, rawText, match, parsedMatches), 9341 $temp$matches = matchesTail; 9342 rawText = $temp$rawText; 9343 parsedMatches = $temp$parsedMatches; 9344 matches = $temp$matches; 9345 continue parseTextMatches; 9346 } 9347 } 9348 }); 9349var dillonkearns$elm_markdown$Markdown$InlineParser$angleBracketLToken
9349Regex = A2( 9350 elm$core$Maybe$withDefault, 9351 elm$regex$Regex$never, 9352 elm$regex$Regex$fromString('(\\\\*)(\\<)')); 9353var dillonkearns$elm_markdown$Markdown$InlineParser$AngleBracketOpen = {$: 'AngleBracketOpen'}; 9354var dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToAngleBracketLToken = function (regMatch) { 9355 var _n0 = regMatch.submatches; 9356 if ((_n0.b && _n0.b.b) && (_n0.b.a.$ === 'Just')) { 9357 var maybeBackslashes = _n0.a; 9358 var _n1 = _n0.b; 9359 var delimiter = _n1.a.a; 9360 var backslashesLength = A2( 9361 elm$core$Maybe$withDefault, 9362 0, 9363 A2(elm$core$Maybe$map, elm$core$String$length, maybeBackslashes)); 9364 return dillonkearns$elm_markdown$Markdown$Helpers$isEven(backslashesLength) ? elm$core$Maybe$Just( 9365 {index: regMatch.index + backslashesLength, length: 1, meaning: dillonkearns$elm_markdown$Markdown$InlineParser$AngleBracketOpen}) : elm$core$Maybe$Nothing; 9366 } else { 9367 return elm$core$Maybe$Nothing; 9368 } 9369}; 9370var elm$core$List$maybeCons = F3( 9371 function (f, mx, xs) { 9372 var _n0 = f(mx); 9373 if (_n0.$ === 'Just') { 9374 var x = _n0.a; 9375 return A2(elm$core$List$cons, x, xs); 9376 } else { 9377 return xs; 9378 } 9379 }); 9380var elm$core$List$filterMap = F2( 9381 function (f, xs) { 9382 return A3( 9383 elm$core$List$foldr, 9384 elm$core$List$maybeCons(f), 9385 _List_Nil, 9386 xs); 9387 }); 9388var elm$regex$Regex$find = _Regex_findAtMost(_Regex_infinity); 9389var dillonkearns$elm_markdown$Markdown$InlineParser$findAngleBracketLTokens = function (str) { 9390 return A2( 9391 elm$core$List$filterMap, 9392 dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToAngleBracketLToken, 9393 A2(elm$regex$Regex$find, dillonkearns$elm_markdown$Markdown$InlineParser$angleBracketLTokenRegex, str)); 9394}; 9395var dillonkearns$elm_markdown$Markdown$InlineParser$angleBracketRTokenRegex = A2( 9396 elm$core$Maybe$withDefault, 9397 elm$regex$Regex$never, 9398 elm$regex$Regex$fromString('(\\\\*)(\\>)')); 9399var dillonkearns$elm_markdown$Markdown$InlineParser$AngleBracketClose = function (a) { 9400 return {$: 'AngleBracketClose', a: a}; 9401}; 9402var dillonkearns$elm_markdown$Markdown$InlineParser$Escaped = {$: 'Escaped'}; 9403var dillonkearns$elm_markdown$Markdown$InlineParser$NotEscaped = {$: 'NotEscaped'}; 9404var dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToAngleBracketRToken = function (regMatch) { 9405 var _n0 = regMatch.submatches; 9406 if ((_n0.b && _n0.b.b) && (_n0.b.a.$ === 'Just')) { 9407 var maybeBackslashes = _n0.a; 9408 var _n1 = _n0.b; 9409 var backslashesLength = A2( 9410 elm$core$Maybe$withDefault, 9411 0, 9412 A2(elm$core$Maybe$map, elm$core$String$length, maybeBackslashes)); 9413 return elm$core$Maybe$Just( 9414 { 9415 index: regMatch.index + backslashesLength, 9416 length: 1, 9417 meaning: dillonkearns$elm_markdown$Markdown$Helpers$isEven(backslashesLength) ? dillonkearns$elm_markdown$Markdown$InlineParser$AngleBracketClose(dillonkearns$elm_markdown$Markdown$InlineParser$NotEscaped) : dillonkearns$elm_markdown$Markdown$InlineParser$AngleBracketClose(dillonkearns$elm_markdown$Markdown$InlineParser$Escaped) 9418 }); 9419 } else { 9420 return elm$core$Maybe$Nothing; 9421 } 9422}; 9423var dillonkearns$elm_markdown$Markdown$InlineParser$findAngleBracketRTokens = function (str) { 9424 return A2( 9425 elm$core$List$filterMap, 9426 dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToAngleBracketRToken, 9427 A2(elm$regex$Regex$find, dillonkearns$elm_markdown$Markdown$InlineParser$angleBracketRTokenRegex, str)); 9428}; 9429var dillonkearns$elm_markdown$Markdown$InlineParser$asteriskEmphasisTokenRegex = A2( 9430 elm$core$Maybe$withDefault, 9431 elm$regex$Regex$never, 9432 elm$regex$Regex$fromString('(\\\\*)([^*])?(\\*+)([^*])?')); 9433var dillonkearns$elm_markdown$Markdown$InlineParser$EmphasisToken = F2( 9434 function (a, b) { 9435 return {$: 'EmphasisToken', a: a, b: b}; 9436 }); 9437var dillonkearns$elm_markdown$Markdown$InlineParser$isPunctuation = function (c) { 9438 switch (c.valueOf()) { 9439 case '!': 9440 return true; 9441 case '\"': 9442 return true; 9443 case '#': 9444 return true; 9445 case '%': 9446 return true; 9447 case '&': 9448 return true; 9449 case '\'': 9450 return true; 9451 case '(': 9452 return true; 9453 case ')': 9454 return true; 9455 case '*': 9456 return true; 9457 case ',': 9458 return true; 9459 case '-': 9460 return true; 9461 case '.': 9462 return true; 9463 case '/': 9464 return true; 9465 case ':': 9466 return true; 9467 case ';': 9468 return true; 9469 case '?': 9470 return true; 9471 case '@': 9472 return true; 9473 case '[': 9474 return true; 9475 case ']': 9476 return true; 9477 case '_': 9478 return true; 9479 case '{': 9480 return true; 9481 case '}': 9482 return true; 9483 case '~': 9484 return true; 9485 default: 9486 return false;
9487 } 9488}; 9489var dillonkearns$elm_markdown$Markdown$InlineParser$containPunctuation = A2( 9490 elm$core$String$foldl, 9491 F2( 9492 function (c, accum) { 9493 return accum || dillonkearns$elm_markdown$Markdown$InlineParser$isPunctuation(c); 9494 }), 9495 false); 9496var dillonkearns$elm_markdown$Markdown$InlineParser$isWhitespace = function (c) { 9497 switch (c.valueOf()) { 9498 case ' ': 9499 return true; 9500 case '\u000c': 9501 return true; 9502 case '\n': 9503 return true; 9504 case '\r': 9505 return true; 9506 case '\t': 9507 return true; 9508 case '\u000b': 9509 return true; 9510 case '\u00a0': 9511 return true; 9512 case '\u2028': 9513 return true; 9514 case '\u2029': 9515 return true; 9516 default: 9517 return false; 9518 } 9519}; 9520var dillonkearns$elm_markdown$Markdown$InlineParser$containSpace = A2( 9521 elm$core$String$foldl, 9522 F2( 9523 function (c, accum) { 9524 return accum || dillonkearns$elm_markdown$Markdown$InlineParser$isWhitespace(c); 9525 }), 9526 false); 9527var dillonkearns$elm_markdown$Markdown$InlineParser$getFringeRank = function (mstring) { 9528 if (mstring.$ === 'Just') { 9529 var string = mstring.a; 9530 return (elm$core$String$isEmpty(string) || dillonkearns$elm_markdown$Markdown$InlineParser$containSpace(string)) ? 0 : (dillonkearns$elm_markdown$Markdown$InlineParser$containPunctuation(string) ? 1 : 2); 9531 } else { 9532 return 0; 9533 } 9534}; 9535var dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToEmphasisToken = F3( 9536 function (_char, rawText, regMatch) { 9537 var _n0 = regMatch.submatches; 9538 if ((((_n0.b && _n0.b.b) && _n0.b.b.b) && (_n0.b.b.a.$ === 'Just')) && _n0.b.b.b.b) { 9539 var maybeBackslashes = _n0.a; 9540 var _n1 = _n0.b; 9541 var maybeLeftFringe = _n1.a; 9542 var _n2 = _n1.b; 9543 var delimiter = _n2.a.a; 9544 var _n3 = _n2.b; 9545 var maybeRightFringe = _n3.a; 9546 var rFringeRank = dillonkearns$elm_markdown$Markdown$InlineParser$getFringeRank(maybeRightFringe); 9547 var leftFringeLength = function () { 9548 if (maybeLeftFringe.$ === 'Just') { 9549 var left = maybeLeftFringe.a; 9550 return elm$core$String$length(left); 9551 } else { 9552 return 0; 9553 } 9554 }(); 9555 var mLeftFringe = (regMatch.index && (!leftFringeLength)) ? elm$core$Maybe$Just( 9556 A3(elm$core$String$slice, regMatch.index - 1, regMatch.index, rawText)) : maybeLeftFringe; 9557 var backslashesLength = function () { 9558 if (maybeBackslashes.$ === 'Just') { 9559 var backslashes = maybeBackslashes.a; 9560 return elm$core$String$length(backslashes); 9561 } else { 9562 return 0; 9563 } 9564 }(); 9565 var isEscaped = ((!dillonkearns$elm_markdown$Markdown$Helpers$isEven(backslashesLength)) && (!leftFringeLength)) || function () { 9566 if ((mLeftFringe.$ === 'Just') && (mLeftFringe.a === '\\')) { 9567 return true; 9568 } else { 9569 return false; 9570 } 9571 }(); 9572 var delimiterLength = isEscaped ? (elm$core$String$length(delimiter) - 1) : elm$core$String$length(delimiter); 9573 var lFringeRank = isEscaped ? 1 : dillonkearns$elm_markdown$Markdown$InlineParser$getFringeRank(mLeftFringe); 9574 if ((delimiterLength <= 0) || (_Utils_eq( 9575 _char, 9576 _Utils_chr('_')) && ((lFringeRank === 2) && (rFringeRank === 2)))) { 9577 return elm$core$Maybe$Nothing; 9578 } else { 9579 var index = ((regMatch.index + backslashesLength) + leftFringeLength) + (isEscaped ? 1 : 0); 9580 return elm$core$Maybe$Just( 9581 { 9582 index: index, 9583 length: delimiterLength, 9584 meaning: A2( 9585 dillonkearns$elm_markdown$Markdown$InlineParser$EmphasisToken, 9586 _char, 9587 {leftFringeRank: lFringeRank, rightFringeRank: rFringeRank}) 9588 }); 9589 } 9590 } else { 9591 return elm$core$Maybe$Nothing; 9592 } 9593 }); 9594var dillonkearns$elm_markdown$Markdown$InlineParser$findAsteriskEmphasisTokens = function (str) { 9595 return A2( 9596 elm$core$List$filterMap, 9597 A2( 9598 dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToEmphasisToken, 9599 _Utils_chr('*'), 9600 str), 9601 A2(elm$regex$Regex$find, dillonkearns$elm_markdown$Markdown$InlineParser$asteriskEmphasisTokenRegex, str)); 9602}; 9603var dillonkearns$elm_markdown$Markdown$InlineParser$codeTokenRegex = A2( 9604 elm$core$Maybe$withDefault, 9605 elm$regex$Regex$never, 9606 elm$regex$Regex$fromString('(\\\\*)(\\`+)')); 9607var dillonkearns$elm_markdown$Markdown$InlineParser$CodeToken = function (a) { 9608 return {$: 'CodeToken', a: a}; 9609}; 9610var dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToCodeToken = function (regMatch) { 9611 var _n0 = regMatch.submatches; 9612 if ((_n0.b && _n0.b.b) && (_n0.b.a.$ === 'Just')) { 9613 var maybeBackslashes = _n0.a; 9614 var _n1 = _n0.b; 9615 var backtick = _n1.a.a; 9616 var backslashesLength = A2( 9617 elm$core$Maybe$withDefault, 9618 0, 9619 A2(elm$core$Maybe$map, elm$core$String$length, maybeBackslashes)); 9620 return elm$core$Maybe$Just( 9621 { 9622 index: regMatch.index + backslashesLength,
9623 length: elm$core$String$length(backtick), 9624 meaning: dillonkearns$elm_markdown$Markdown$Helpers$isEven(backslashesLength) ? dillonkearns$elm_markdown$Markdown$InlineParser$CodeToken(dillonkearns$elm_markdown$Markdown$InlineParser$NotEscaped) : dillonkearns$elm_markdown$Markdown$InlineParser$CodeToken(dillonkearns$elm_markdown$Markdown$InlineParser$Escaped) 9625 }); 9626 } else { 9627 return elm$core$Maybe$Nothing; 9628 } 9629}; 9630var dillonkearns$elm_markdown$Markdown$InlineParser$findCodeTokens = function (str) { 9631 return A2( 9632 elm$core$List$filterMap, 9633 dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToCodeToken, 9634 A2(elm$regex$Regex$find, dillonkearns$elm_markdown$Markdown$InlineParser$codeTokenRegex, str)); 9635}; 9636var dillonkearns$elm_markdown$Markdown$InlineParser$hardBreakTokenRegex = A2( 9637 elm$core$Maybe$withDefault, 9638 elm$regex$Regex$never, 9639 elm$regex$Regex$fromString('(?:(\\\\+)|( {2,}))\\n')); 9640var dillonkearns$elm_markdown$Markdown$InlineParser$HardLineBreakToken = {$: 'HardLineBreakToken'}; 9641var dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToHardBreakToken = function (regMatch) { 9642 var _n0 = regMatch.submatches; 9643 _n0$2: 9644 while (true) { 9645 if (_n0.b) { 9646 if (_n0.a.$ === 'Just') { 9647 var backslashes = _n0.a.a; 9648 var backslashesLength = elm$core$String$length(backslashes); 9649 return (!dillonkearns$elm_markdown$Markdown$Helpers$isEven(backslashesLength)) ? elm$core$Maybe$Just( 9650 {index: (regMatch.index + backslashesLength) - 1, length: 2, meaning: dillonkearns$elm_markdown$Markdown$InlineParser$HardLineBreakToken}) : elm$core$Maybe$Nothing; 9651 } else { 9652 if (_n0.b.b && (_n0.b.a.$ === 'Just')) { 9653 var _n1 = _n0.b; 9654 return elm$core$Maybe$Just( 9655 { 9656 index: regMatch.index, 9657 length: elm$core$String$length(regMatch.match), 9658 meaning: dillonkearns$elm_markdown$Markdown$InlineParser$HardLineBreakToken 9659 }); 9660 } else { 9661 break _n0$2; 9662 } 9663 } 9664 } else { 9665 break _n0$2; 9666 } 9667 } 9668 return elm$core$Maybe$Nothing; 9669}; 9670var dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToSoftHardBreakToken = function (regMatch) { 9671 var _n0 = regMatch.submatches; 9672 _n0$2: 9673 while (true) { 9674 if (_n0.b) { 9675 if (_n0.a.$ === 'Just') { 9676 var backslashes = _n0.a.a; 9677 var backslashesLength = elm$core$String$length(backslashes); 9678 return dillonkearns$elm_markdown$Markdown$Helpers$isEven(backslashesLength) ? elm$core$Maybe$Just( 9679 {index: regMatch.index + backslashesLength, length: 1, meaning: dillonkearns$elm_markdown$Markdown$InlineParser$HardLineBreakToken}) : elm$core$Maybe$Just( 9680 {index: (regMatch.index + backslashesLength) - 1, length: 2, meaning: dillonkearns$elm_markdown$Markdown$InlineParser$HardLineBreakToken}); 9681 } else { 9682 if (_n0.b.b) { 9683 var _n1 = _n0.b; 9684 var maybeSpaces = _n1.a; 9685 return elm$core$Maybe$Just( 9686 { 9687 index: regMatch.index, 9688 length: elm$core$String$length(regMatch.match), 9689 meaning: dillonkearns$elm_markdown$Markdown$InlineParser$HardLineBreakToken 9690 }); 9691 } else { 9692 break _n0$2; 9693 } 9694 } 9695 } else { 9696 break _n0$2; 9697 } 9698 } 9699 return elm$core$Maybe$Nothing; 9700}; 9701var dillonkearns$elm_markdown$Markdown$InlineParser$softAsHardLineBreak = false; 9702var dillonkearns$elm_markdown$Markdown$InlineParser$softAsHardLineBreakTokenRegex = A2( 9703 elm$core$Maybe$withDefault, 9704 elm$regex$Regex$never, 9705 elm$regex$Regex$fromString('(?:(\\\\+)|( *))\\n')); 9706var dillonkearns$elm_markdown$Markdown$InlineParser$findHardBreakTokens = function (str) { 9707 return dillonkearns$elm_markdown$Markdown$InlineParser$softAsHardLineBreak ? A2( 9708 elm$core$List$filterMap, 9709 dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToSoftHardBreakToken, 9710 A2(elm$regex$Regex$find, dillonkearns$elm_markdown$Markdown$InlineParser$softAsHardLineBreakTokenRegex, str)) : A2( 9711 elm$core$List$filterMap, 9712 dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToHardBreakToken, 9713 A2(elm$regex$Regex$find, dillonkearns$elm_markdown$Markdown$InlineParser$hardBreakTokenRegex, str)); 9714}; 9715var dillonkearns$elm_markdown$Markdown$InlineParser$linkImageCloseTokenRegex = A2( 9716 elm$core$Maybe$withDefault, 9717 elm$regex$Regex$never, 9718 elm$regex$Regex$fromString('(\\\\*)(\\])')); 9719var dillonkearns$elm_markdown$Markdown$InlineParser$SquareBracketClose = {$: 'SquareBracketClose'}; 9720var dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToLinkImageCloseToken = function (regMatch) { 9721 var _n0 = regMatch.submatches; 9722 if ((_n0.b && _n0.b.b) && (_n0.b.a.$ === 'Just')) { 9723 var maybeBackslashes = _n0.a; 9724 var _n1 = _n0.b; 9725 var backslashesLength = A2( 9726 elm$core$Maybe$withDefault, 9727 0, 9728 A2(elm$core$Maybe$map, elm$core$String$length, maybeBackslashes)); 9729 return dillonkearns$elm_markdown$Markdown$Helpers$isEven(backslashesLength) ? elm$core$Maybe$Just( 9730 {index: regMatch.index + backslashesLength, length: 1, meaning: dillonkearns$elm_markdown$Markdown$InlineParser$SquareBracketClose}) : elm$core$Maybe$Nothing; 9731 } else { 9732 return elm$core$Maybe$Nothing; 9733 } 9734}; 9735var dillonkearns$elm_markdown$Markdown$InlineParser$findLinkImageCloseTokens = function (str) { 9736 return A2( 9737 elm$core$List$filterMap, 9738 dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToLinkImageCloseToken, 9739 A2(elm$regex$Regex$find, dillonkearns$elm_markdown$Markdown$InlineParser$linkImageCloseTokenRegex, str)); 9740}; 9741var dillonkearns$elm_markdown$Markdown$InlineParser$linkImageOpenToken
9741Regex = A2( 9742 elm$core$Maybe$withDefault, 9743 elm$regex$Regex$never, 9744 elm$regex$Regex$fromString('(\\\\*)(\\!)?(\\[)')); 9745var dillonkearns$elm_markdown$Markdown$InlineParser$Active = {$: 'Active'}; 9746var dillonkearns$elm_markdown$Markdown$InlineParser$ImageOpenToken = {$: 'ImageOpenToken'}; 9747var dillonkearns$elm_markdown$Markdown$InlineParser$LinkOpenToken = function (a) { 9748 return {$: 'LinkOpenToken', a: a}; 9749}; 9750var dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToLinkImageOpenToken = function (regMatch) { 9751 var _n0 = regMatch.submatches; 9752 if (((_n0.b && _n0.b.b) && _n0.b.b.b) && (_n0.b.b.a.$ === 'Just')) { 9753 var maybeBackslashes = _n0.a; 9754 var _n1 = _n0.b; 9755 var maybeImageOpen = _n1.a; 9756 var _n2 = _n1.b; 9757 var backslashesLength = A2( 9758 elm$core$Maybe$withDefault, 9759 0, 9760 A2(elm$core$Maybe$map, elm$core$String$length, maybeBackslashes)); 9761 var isEscaped = !dillonkearns$elm_markdown$Markdown$Helpers$isEven(backslashesLength); 9762 var index = isEscaped ? ((regMatch.index + backslashesLength) + 1) : (regMatch.index + backslashesLength); 9763 if (isEscaped) { 9764 if (maybeImageOpen.$ === 'Just') { 9765 return elm$core$Maybe$Just( 9766 { 9767 index: index, 9768 length: 1, 9769 meaning: dillonkearns$elm_markdown$Markdown$InlineParser$LinkOpenToken(dillonkearns$elm_markdown$Markdown$InlineParser$Active) 9770 }); 9771 } else { 9772 return elm$core$Maybe$Nothing; 9773 } 9774 } else { 9775 if (maybeImageOpen.$ === 'Just') { 9776 return elm$core$Maybe$Just( 9777 {index: index, length: 2, meaning: dillonkearns$elm_markdown$Markdown$InlineParser$ImageOpenToken}); 9778 } else { 9779 return elm$core$Maybe$Just( 9780 { 9781 index: index, 9782 length: 1, 9783 meaning: dillonkearns$elm_markdown$Markdown$InlineParser$LinkOpenToken(dillonkearns$elm_markdown$Markdown$InlineParser$Active) 9784 }); 9785 } 9786 } 9787 } else { 9788 return elm$core$Maybe$Nothing; 9789 } 9790}; 9791var dillonkearns$elm_markdown$Markdown$InlineParser$findLinkImageOpenTokens = function (str) { 9792 return A2( 9793 elm$core$List$filterMap, 9794 dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToLinkImageOpenToken, 9795 A2(elm$regex$Regex$find, dillonkearns$elm_markdown$Markdown$InlineParser$linkImageOpenTokenRegex, str)); 9796}; 9797var dillonkearns$elm_markdown$Markdown$InlineParser$StrikethroughToken = function (a) { 9798 return {$: 'StrikethroughToken', a: a}; 9799}; 9800var dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToStrikethroughToken = function (regMatch) { 9801 var _n0 = regMatch.submatches; 9802 if ((_n0.b && _n0.b.b) && (_n0.b.a.$ === 'Just')) { 9803 var maybeBackslashes = _n0.a; 9804 var _n1 = _n0.b; 9805 var tilde = _n1.a.a; 9806 var backslashesLength = A2( 9807 elm$core$Maybe$withDefault, 9808 0, 9809 A2(elm$core$Maybe$map, elm$core$String$length, maybeBackslashes)); 9810 var _n2 = dillonkearns$elm_markdown$Markdown$Helpers$isEven(backslashesLength) ? _Utils_Tuple2( 9811 elm$core$String$length(tilde), 9812 dillonkearns$elm_markdown$Markdown$InlineParser$StrikethroughToken(dillonkearns$elm_markdown$Markdown$InlineParser$NotEscaped)) : _Utils_Tuple2( 9813 elm$core$String$length(tilde), 9814 dillonkearns$elm_markdown$Markdown$InlineParser$StrikethroughToken(dillonkearns$elm_markdown$Markdown$InlineParser$Escaped)); 9815 var length = _n2.a; 9816 var meaning = _n2.b; 9817 return elm$core$Maybe$Just( 9818 {index: regMatch.index + backslashesLength, length: length, meaning: meaning}); 9819 } else { 9820 return elm$core$Maybe$Nothing; 9821 } 9822}; 9823var dillonkearns$elm_markdown$Markdown$InlineParser$strikethroughTokenRegex = A2( 9824 elm$core$Maybe$withDefault, 9825 elm$regex$Regex$never, 9826 elm$regex$Regex$fromString('(\\\\*)(~{2,})([^~])?')); 9827var dillonkearns$elm_markdown$Markdown$InlineParser$findStrikethroughTokens = function (str) { 9828 return A2( 9829 elm$core$List$filterMap, 9830 dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToStrikethroughToken, 9831 A2(elm$regex$Regex$find, dillonkearns$elm_markdown$Markdown$InlineParser$strikethroughTokenRegex, str)); 9832}; 9833var dillonkearns$elm_markdown$Markdown$InlineParser$underlineEmphasisTokenRegex = A2( 9834 elm$core$Maybe$withDefault, 9835 elm$regex$Regex$never, 9836 elm$regex$Regex$fromString('(\\\\*)([^_])?(\\_+)([^_])?')); 9837var dillonkearns$elm_markdown$Markdown$InlineParser$findUnderlineEmphasisTokens = function (str) { 9838 return A2( 9839 elm$core$List$filterMap, 9840 A2( 9841 dillonkearns$elm_markdown$Markdown$InlineParser$regMatchToEmphasisToken, 9842 _Utils_chr('_'), 9843 str), 9844 A2(elm$regex$Regex$find, dillonkearns$elm_markdown$Markdown$InlineParser$underlineEmphasisTokenRegex, str)); 9845}; 9846var dillonkearns$elm_markdown$Markdown$InlineParser$mergeByIndex = F2( 9847 function (left, right) { 9848 if (left.b) { 9849 var lfirst = left.a; 9850 var lrest = left.b; 9851 if (right.b) { 9852 var rfirst = right.a; 9853 var rrest = right.b; 9854 return (_Utils_cmp(lfirst.index, rfirst.index) < 0) ? A2( 9855 elm$core$List$cons, 9856 lfirst, 9857 A2(dillonkearns$elm_markdown$Markdown$InlineParser$mergeByIndex, lrest, right)) : A2( 9858 elm$core$List$cons, 9859 rfirst, 9860 A2(dillonkearns$elm_markdown$Markdown$InlineParser$mergeByIndex, left, rrest)); 9861 } else { 9862 return left; 9863 } 9864 } else { 9865 return right; 9866 } 9867 }); 9868var dillonkearns$elm_markdown$Markdown$InlineParser$tokenize = function (rawText) { 9869 return A2( 9870 dillonkearns$elm_markdown$Markdown$InlineParser$mergeByIndex, 9871 dillonkearns$elm_markdown$Markdown$InlineParser$findAngleBracketRTokens(rawText), 9872 A2( 9873 dillonkearns$elm_markdown$Markdown$InlineParser$mergeByIndex, 9874 dillonkearns$elm_markdown$Markdown$InlineParser$findAngleBracketLTokens(rawText), 9875 A2( 9876 dillonkearns$elm_markdown$Markdown$InlineParser$mergeByIndex, 9877 dillonkearns$elm_markdown$Markdown$InlineParser$findHardBreakTokens(rawText), 9878 A2( 9879 dillonkearns$elm_markdown$Markdown$InlineParser$mergeByIndex, 9880 dillonkearns$elm_markdown$Markdown$InlineParser$findLinkImageCloseTokens(rawText), 9881 A2( 9882 dillonkearns$elm_markdown$Markdown$InlineParser$mergeByIndex, 9883 dillonkearns$elm_markdown$Markdown$InlineParser$findLinkImageOpenTokens(rawText), 9884 A2( 9885 dillonkearns$elm_markdown$Markdown$InlineParser$mergeByIndex, 9886 dillonkearns$elm_markdown$Markdown$InlineParser$findStrikethroughTokens(rawText), 9887 A2( 9888 dillonkearns$elm_markdown$Markdown$InlineParser$mergeByIndex, 9889 dillonkearns$elm_markdown$Markdown$InlineParser$findUnderlineEmphasisTokens(rawText), 9890 A2( 9891 dillonkearns$elm_markdown$Markdown$InlineParser$mergeByIndex, 9892 dillonkearns$elm_markdown$Markdown$InlineParser$findAsteriskEmphasisTokens(rawText), 9893 dillonkearns$elm_markdown$Markdown$InlineParser$findCodeTokens(rawText))))))))); 9894};
9895var dillonkearns$elm_markdown$Markdown$Helpers$cleanWhitespaces = function (original) { 9896 return original; 9897}; 9898var dillonkearns$elm_markdown$Markdown$Helpers$ifError = F2( 9899 function (_function, result) { 9900 if (result.$ === 'Ok') { 9901 return result; 9902 } else { 9903 var err = result.a; 9904 return _function(err); 9905 } 9906 }); 9907var dillonkearns$elm_markdown$Markdown$InlineParser$CodeType = {$: 'CodeType'}; 9908var dillonkearns$elm_markdown$Markdown$InlineParser$EmphasisType = function (a) { 9909 return {$: 'EmphasisType', a: a}; 9910}; 9911var dillonkearns$elm_markdown$Markdown$InlineParser$HtmlType = function (a) { 9912 return {$: 'HtmlType', a: a}; 9913}; 9914var dillonkearns$elm_markdown$Markdown$InlineParser$ImageType = function (a) { 9915 return {$: 'ImageType', a: a}; 9916}; 9917var dillonkearns$elm_markdown$Markdown$InlineParser$Inactive = {$: 'Inactive'}; 9918var dillonkearns$elm_markdown$Markdown$InlineParser$LinkType = function (a) { 9919 return {$: 'LinkType', a: a}; 9920}; 9921var dillonkearns$elm_markdown$Markdown$InlineParser$StrikethroughType = {$: 'StrikethroughType'}; 9922var dillonkearns$elm_markdown$Markdown$InlineParser$AutolinkType = function (a) { 9923 return {$: 'AutolinkType', a: a}; 9924}; 9925var dillonkearns$elm_markdown$Markdown$InlineParser$decodeUrlRegex = A2( 9926 elm$core$Maybe$withDefault, 9927 elm$regex$Regex$never, 9928 elm$regex$Regex$fromString('%(?:3B|2C|2F|3F|3A|40|26|3D|2B|24|23|25)')); 9929var elm$core$Basics$composeR = F3( 9930 function (f, g, x) { 9931 return g( 9932 f(x)); 9933 }); 9934var elm$url$Url$percentDecode = _Url_percentDecode; 9935var elm$url$Url$percentEncode = _Url_percentEncode; 9936var dillonkearns$elm_markdown$Markdown$InlineParser$encodeUrl = A2( 9937 elm$core$Basics$composeR, 9938 elm$url$Url$percentEncode, 9939 A2( 9940 elm$regex$Regex$replace, 9941 dillonkearns$elm_markdown$Markdown$InlineParser$decodeUrlRegex, 9942 function (match) { 9943 return A2( 9944 elm$core$Maybe$withDefault, 9945 match.match, 9946 elm$url$Url$percentDecode(match.match)); 9947 })); 9948var dillonkearns$elm_markdown$Markdown$InlineParser$urlRegex = A2( 9949 elm$core$Maybe$withDefault, 9950 elm$regex$Regex$never, 9951 elm$regex$Regex$fromString('^([A-Za-z][A-Za-z0-9.+\\-]{1,31}:[^<>\\x00-\\x20]*)$')); 9952var elm$regex$Regex$contains = _Regex_contains; 9953var dillonkearns$elm_markdown$Markdown$InlineParser$autolinkToMatch = function (_n0) { 9954 var match = _n0.a; 9955 return A2(elm$regex$Regex$contains, dillonkearns$elm_markdown$Markdown$InlineParser$urlRegex, match.text) ? elm$core$Result$Ok( 9956 dillonkearns$elm_markdown$Markdown$InlineParser$Match( 9957 _Utils_update( 9958 match, 9959 { 9960 type_: dillonkearns$elm_markdown$Markdown$InlineParser$AutolinkType( 9961 _Utils_Tuple2( 9962 match.text, 9963 dillonkearns$elm_markdown$Markdown$InlineParser$encodeUrl(match.text))) 9964 }))) : elm$core$Result$Err( 9965 dillonkearns$elm_markdown$Markdown$InlineParser$Match(match)); 9966}; 9967var dillonkearns$elm_markdown$Markdown$Helpers$insideSquareBracketRegex = '[^\\[\\]\\\\]*(?:\\\\.[^\\[\\]\\\\]*)*'; 9968var dillonkearns$elm_markdown$Markdown$InlineParser$refLabelRegex = A2( 9969 elm$core$Maybe$withDefault, 9970 elm$regex$Regex$never, 9971 elm$regex$Regex$fromString('^\\[\\s*(' + (dillonkearns$elm_markdown$Markdown$Helpers$insideSquareBracketRegex + ')\\s*\\]'))); 9972var dillonkearns$elm_markdown$Markdown$Helpers$prepareRefLabel = A2(elm$core$Basics$composeR, dillonkearns$elm_markdown$Markdown$Helpers$cleanWhitespaces, elm$core$String$toLower); 9973var dillonkearns$elm_markdown$Markdown$InlineParser$prepareUrlAndTitle = F2( 9974 function (rawUrl, maybeTitle) { 9975 return _Utils_Tuple2( 9976 dillonkearns$elm_markdown$Markdown$InlineParser$encodeUrl( 9977 dillonkearns$elm_markdown$Markdown$Helpers$formatStr(rawUrl)), 9978 A2(elm$core$Maybe$map, dillonkearns$elm_markdown$Markdown$Helpers$formatStr, maybeTitle)); 9979 }); 9980var elm$core$List$head = function (list) { 9981 if (list.b) { 9982 var x = list.a; 9983 var xs = list.b; 9984 return elm$core$Maybe$Just(x); 9985 } else { 9986 return elm$core$Maybe$Nothing; 9987 } 9988}; 9989var dillonkearns$elm_markdown$Markdown$InlineParser$refRegexToMatch = F3( 9990 function (matchModel, references, maybeRegexMatch) { 9991 var refLabel = function (str) { 9992 return elm$core$String$isEmpty(str) ? matchModel.text : str; 9993 }( 9994 A2( 9995 elm$core$Maybe$withDefault, 9996 matchModel.text, 9997 A2( 9998 elm$core$Maybe$withDefault, 9999 elm$core$Maybe$Nothing, 10000 A2( 10001 elm$core$Maybe$andThen, 10002 A2( 10003 elm$core$Basics$composeR, 10004 function ($) { 10005 return $.submatches; 10006 }, 10007 elm$core$List$head), 10008 maybeRegexMatch)))); 10009 var _n0 = A2( 10010 elm$core$Dict$get, 10011 dillonkearns$elm_markdown$Markdown$Helpers$prepareRefLabel(refLabel), 10012 references); 10013 if (_n0.$ === 'Nothing') { 10014 return elm$core$Maybe$Nothing; 10015 } else { 10016 var _n1 = _n0.a; 10017 var rawUrl = _n1.a; 10018 var maybeTitle = _n1.b; 10019 var type_ = function () { 10020 var _n3 = matchModel.type_; 10021 if (_n3.$ === 'ImageType') { 10022 return dillonkearns$elm_markdown$Markdown$InlineParser$ImageType( 10023 A2(dillonkearns$elm_markdown$Markdown$InlineParser$prepareUrlAndTitle, rawUrl, maybeTitle)); 10024 } else { 10025 return dillonkearns$elm_markdown$Markdown$InlineParser$LinkType( 10026 A2(dillonkearns$elm_markdown$Markdown$InlineParser$prepareUrlAndTitle, rawUrl, maybeTitle)); 10027 } 10028 }(); 10029 var regexMatchLength = function () { 10030 if (maybeRegexMatch.$ === 'Just') { 10031 var match = maybeRegexMatch.a.match; 10032 return elm$core$String$length(match); 10033 } else { 10034 return 0; 10035 } 10036 }(); 10037 return elm$core$Maybe$Just( 10038 dillonkearns$elm_markdown$Markdown$InlineParser$Match( 10039 _Utils_update( 10040 matchModel, 10041 {end: matchModel.end + regexMatchLength, type_: type_}))); 10042 } 10043 }); 10044var elm$regex$Regex$findAtMost = _Regex_findAtMost; 10045var dillonkearns$elm_markdown$Markdown$InlineParser$checkForInlineReferences = F3( 10046 function (remainText, _n0, references) { 10047 var tempMatch = _n0.a; 10048 var matches = A3(elm$regex$Regex$findAtMost, 1, dillonkearns$elm_markdown$Markdown$InlineParser$refLabelRegex, remainText); 10049 return A3( 10050 dillonkearns$elm_markdown$Markdown$InlineParser$refRegexToMatch, 10051 tempMatch, 10052 references, 10053 elm$core$List$head(matches)); 10054 }); 10055var dillonkearns$elm_markdown$Markdown$Helpers$whiteSpaceChars = ' \\t\\f\\v\\r\\n'; 10056var dillonkearns$elm_markdown$Markdown$Helpers$titleRegex = '(?:[' + (dillonkearns$elm_markdown$Markdown$Helpers$whiteSpaceChars + (']+' + ('(?:\'([^\'\\\\]*(?:\\\\.[^\'\\\\]*)*)\'|' + ('\"([^\"\\\\]*(?:\\\\.[^\"\\\\]*)*)\"|' + '\\(([^\\)\\\\]*(?:\\\\.[^\\)\\\\]*)*)\\)))?')))); 10057var dillonkearns$elm_markdown$Markdown$Helpers$lineEndChars = '\\f\\v\\r\\n'; 10058var dillonkearns$elm_markdown$Markdown$InlineParser$hrefRegex = '(?:<([^<>' + (dillonkearns$elm_markdown$Markdown$Helpers$lineEndChars + (']*)>|([^' + (dillonkearns$elm_markdown$Markdown$Helpers$whiteSpaceChars + ('\\(\\)\\\\]*(?:\\\\.[^' + (dillonkearns$elm_markdown$Markdown$Helpers$whiteSpaceChars + '\\(\\)\\\\]*)*))'))))); 10059var dillonkearns$elm_markdown$Markdown$InlineParser$inlineLinkTypeOrImageTypeRegex = A2( 10060 elm$core$Maybe$withDefault, 10061 elm$regex$Regex$never, 10062 elm$regex$Regex$fromString('^\\(\\s*' + (dillonkearns$elm_markdown$Markdown$InlineParser$hrefRegex + (dillonkearns$elm_markdown$Markdown$Helpers$titleRegex + '\\s*\\)')))); 10063var dillonkearns$elm_markdown$Markdown$Helpers$returnFirstJust = function (maybes) { 10064 var process = F2( 10065 function (a, maybeFound) { 10066 if (maybeFound.$ === 'Just') { 10067 var found = maybeFound.a; 10068 return elm$core$Maybe$Just(found); 10069 } else { 10070 return a; 10071 } 10072 }); 10073 return A3(elm$core$List$foldl, process, elm$core$Maybe$Nothing, maybes); 10074}; 10075var dillonkearns$elm_markdown$Markdown$InlineParser$inlineLinkTypeOrImageTypeRegexToMatch = F2( 10076 function (matchModel, regexMatch) { 10077 var _n0 = regexMatch.submatches; 10078 if ((((_n0.b && _n0.b.b) && _n0.b.b.b) && _n0.b.b.b.b) && _n0.b.b.b.b.b) { 10079 var maybeRawUrlAngleBrackets = _n0.a; 10080 var _n1 = _n0.b; 10081 var maybeRawUrlWithoutBrackets = _n1.a; 10082 var _n2 = _n1.b; 10083 var maybeTitleSingleQuotes = _n2.a; 10084 var _n3 = _n2.b; 10085 var maybeTitleDoubleQuotes = _n3.a; 10086 var _n4 = _n3.b; 10087 var maybeTitleParenthesis = _n4.a; 10088 var maybeTitle = dillonkearns$elm_markdown$Markdown$Helpers$returnFirstJust( 10089 _List_fromArray( 10090 [maybeTitleSingleQuotes, maybeTitleDoubleQuotes, maybeTitleParenthesis])); 10091 var toMatch = function (rawUrl) { 10092 return dillonkearns$elm_markdown$Markdown$InlineParser$Match( 10093 _Utils_update( 10094 matchModel, 10095 { 10096 end: matchModel.end + elm$core$String$length(regexMatch.match), 10097 type_: function () { 10098 var _n5 = matchModel.type_; 10099 if (_n5.$ === 'ImageType') { 10100 return dillonkearns$elm_markdown$Markdown$InlineParser$ImageType; 10101 } else { 10102 return dillonkearns$elm_markdown$Markdown$InlineParser$LinkType; 10103 } 10104 }()( 10105 A2(dillonkearns$elm_markdown$Markdown$InlineParser$prepareUrlAndTitle, rawUrl, maybeTitle)) 10106 })); 10107 }; 10108 var maybeRawUrl = dillonkearns$elm_markdown$Markdown$Helpers$returnFirstJust( 10109 _List_fromArray( 10110 [maybeRawUrlAngleBrackets, maybeRawUrlWithoutBrackets])); 10111 return elm$core$Maybe$Just( 10112 toMatch( 10113 A2(elm$core$Maybe$withDefault, '', maybeRawUrl))); 10114 } else { 10115 return elm$core$Maybe$Nothing; 10116 } 10117 }); 10118var dillonkearns$elm_markdown$Markdown$InlineParser$checkForInlineLinkTypeOrImageType = F3( 10119 function (remainText, _n0, refs) { 10120 var tempMatch = _n0.a; 10121 var _n1 = A3(elm$regex$Regex$findAtMost, 1, dillonkearns$elm_markdown$Markdown$InlineParser$inlineLinkTypeOrImageTypeRegex, remainText); 10122 if (_n1.b) { 10123 var first = _n1.a; 10124 var _n2 = A2(dillonkearns$elm_markdown$Markdown$InlineParser$inlineLinkTypeOrImageTypeRegexToMatch, tempMatch, first); 10125 if (_n2.$ === 'Just') { 10126 var match = _n2.a; 10127 return elm$core$Maybe$Just(match); 10128 } else { 10129 return A3( 10130 dillonkearns$elm_markdown$Markdown$InlineParser$checkForInlineReferences, 10131 remainText, 10132 dillonkearns$elm_markdown$Markdown$InlineParser$Match(tempMatch), 10133 refs); 10134 } 10135 } else { 10136 return A3( 10137 dillonkearns$elm_markdown$Markdown$InlineParser$checkForInlineReferences, 10138 remainText, 10139 dillonkearns$elm_markdown$Markdown$InlineParser$Match(tempMatch), 10140 refs); 10141 } 10142 }); 10143var elm$core$List$filter = F2( 10144 function (isGood, list) { 10145 return A3( 10146 elm$core$List$foldr, 10147 F2( 10148 function (x, xs) { 10149 return isGood(x) ? A2(elm$core$List$cons, x, xs) : xs; 10150 }), 10151 _List_Nil, 10152 list); 10153 }); 10154var elm$core$List$isEmpty = function (xs) { 10155 if (!xs.b) { 10156 return true; 10157 } else { 10158 return false;
10159 } 10160}; 10161var dillonkearns$elm_markdown$Markdown$InlineParser$checkParsedAheadOverlapping = F2( 10162 function (_n0, remainMatches) { 10163 var match = _n0.a; 10164 var overlappingMatches = elm$core$List$filter( 10165 function (_n1) { 10166 var testMatch = _n1.a; 10167 return (_Utils_cmp(match.end, testMatch.start) > 0) && (_Utils_cmp(match.end, testMatch.end) < 0); 10168 }); 10169 return (elm$core$List$isEmpty(remainMatches) || elm$core$List$isEmpty( 10170 overlappingMatches(remainMatches))) ? elm$core$Maybe$Just( 10171 A2( 10172 elm$core$List$cons, 10173 dillonkearns$elm_markdown$Markdown$InlineParser$Match(match), 10174 remainMatches)) : elm$core$Maybe$Nothing; 10175 }); 10176var dillonkearns$elm_markdown$Markdown$InlineParser$emailRegex = A2( 10177 elm$core$Maybe$withDefault, 10178 elm$regex$Regex$never, 10179 elm$regex$Regex$fromString('^([a-zA-Z0-9.!#$%&\'*+\\/=?^_`{|}~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*)$')); 10180var dillonkearns$elm_markdown$Markdown$InlineParser$emailAutolinkTypeToMatch = function (_n0) { 10181 var match = _n0.a; 10182 return A2(elm$regex$Regex$contains, dillonkearns$elm_markdown$Markdown$InlineParser$emailRegex, match.text) ? elm$core$Result$Ok( 10183 dillonkearns$elm_markdown$Markdown$InlineParser$Match( 10184 _Utils_update( 10185 match, 10186 { 10187 type_: dillonkearns$elm_markdown$Markdown$InlineParser$AutolinkType( 10188 _Utils_Tuple2( 10189 match.text, 10190 'mailto:' + dillonkearns$elm_markdown$Markdown$InlineParser$encodeUrl(match.text))) 10191 }))) : elm$core$Result$Err( 10192 dillonkearns$elm_markdown$Markdown$InlineParser$Match(match)); 10193}; 10194var dillonkearns$elm_markdown$Markdown$InlineParser$findTokenHelp = F3( 10195 function (innerTokens, isToken, tokens) { 10196 findTokenHelp: 10197 while (true) { 10198 if (!tokens.b) { 10199 return elm$core$Maybe$Nothing; 10200 } else { 10201 var nextToken = tokens.a; 10202 var remainingTokens = tokens.b; 10203 if (isToken(nextToken)) { 10204 return elm$core$Maybe$Just( 10205 _Utils_Tuple3( 10206 nextToken, 10207 elm$core$List$reverse(innerTokens), 10208 remainingTokens)); 10209 } else { 10210 var $temp$innerTokens = A2(elm$core$List$cons, nextToken, innerTokens), 10211 $temp$isToken = isToken, 10212 $temp$tokens = remainingTokens; 10213 innerTokens = $temp$innerTokens; 10214 isToken = $temp$isToken; 10215 tokens = $temp$tokens; 10216 continue findTokenHelp; 10217 } 10218 } 10219 } 10220 }); 10221var dillonkearns$elm_markdown$Markdown$InlineParser$findToken = F2( 10222 function (isToken, tokens) { 10223 return A3(dillonkearns$elm_markdown$Markdown$InlineParser$findTokenHelp, _List_Nil, isToken, tokens); 10224 }); 10225var dillonkearns$elm_markdown$Markdown$InlineParser$HtmlToken = F2( 10226 function (a, b) { 10227 return {$: 'HtmlToken', a: a, b: b}; 10228 }); 10229var dillonkearns$elm_markdown$Markdown$InlineParser$NotOpening = {$: 'NotOpening'}; 10230var elm$parser$Parser$Advanced$bagToList = F2( 10231 function (bag, list) { 10232 bagToList: 10233 while (true) { 10234 switch (bag.$) { 10235 case 'Empty': 10236 return list; 10237 case 'AddRight': 10238 var bag1 = bag.a; 10239 var x = bag.b; 10240 var $temp$bag = bag1, 10241 $temp$list = A2(elm$core$List$cons, x, list); 10242 bag = $temp$bag; 10243 list = $temp$list; 10244 continue bagToList; 10245 default: 10246 var bag1 = bag.a; 10247 var bag2 = bag.b; 10248 var $temp$bag = bag1, 10249 $temp$list = A2(elm$parser$Parser$Advanced$bagToList, bag2, list); 10250 bag = $temp$bag; 10251 list = $temp$list; 10252 continue bagToList; 10253 } 10254 } 10255 }); 10256var elm$parser$Parser$Advanced$run = F2( 10257 function (_n0, src) { 10258 var parse = _n0.a; 10259 var _n1 = parse( 10260 {col: 1, context: _List_Nil, indent: 1, offset: 0, row: 1, src: src}); 10261 if (_n1.$ === 'Good') { 10262 var value = _n1.b; 10263 return elm$core$Result$Ok(value); 10264 } else { 10265 var bag = _n1.b; 10266 return elm$core$Result$Err( 10267 A2(elm$parser$Parser$Advanced$bagToList, bag, _List_Nil)); 10268 } 10269 }); 10270var dillonkearns$elm_markdown$Markdown$InlineParser$htmlToToken = F2( 10271 function (rawText, _n0) { 10272 var match = _n0.a; 10273 var consumedCharacters = A2( 10274 elm$parser$Parser$Advanced$keeper, 10275 A2( 10276 elm$parser$Parser$Advanced$keeper, 10277 A2( 10278 elm$parser$Parser$Advanced$keeper, 10279 elm$parser$Parser$Advanced$succeed( 10280 F3( 10281 function (startOffset, htmlTag, endOffset) { 10282 return {htmlTag: htmlTag, length: endOffset - startOffset}; 10283 })), 10284 elm$parser$Parser$Advanced$getOffset), 10285 dillonkearns$elm_markdown$HtmlParser$html), 10286 elm$parser$Parser$Advanced$getOffset); 10287 var parsed = A2( 10288 elm$parser$Parser$Advanced$run, 10289 consumedCharacters, 10290 A2(elm$core$String$dropLeft, match.start, rawText)); 10291 if (parsed.$ === 'Ok') { 10292 var htmlTag = parsed.a.htmlTag; 10293 var length = parsed.a.length; 10294 var htmlToken = A2(dillonkearns$elm_markdown$Markdown$InlineParser$HtmlToken, dillonkearns$elm_markdown$Markdown$InlineParser$NotOpening, htmlTag); 10295 return elm$core$Maybe$Just( 10296 {index: match.start, length: length, meaning: htmlToken}); 10297 } else { 10298 return elm$core$Maybe$Nothing; 10299 } 10300 }); 10301var dillonkearns$elm_markdown$Markdown$InlineParser$isCloseToken = F2( 10302 function (htmlModel, token) { 10303 return false;
10304 }); 10305var dillonkearns$elm_markdown$Markdown$InlineParser$isCodeTokenPair = F2( 10306 function (closeToken, openToken) { 10307 var _n0 = openToken.meaning; 10308 if (_n0.$ === 'CodeToken') { 10309 if (_n0.a.$ === 'Escaped') { 10310 var _n1 = _n0.a; 10311 return _Utils_eq(openToken.length - 1, closeToken.length); 10312 } else { 10313 var _n2 = _n0.a; 10314 return _Utils_eq(openToken.length, closeToken.length); 10315 } 10316 } else { 10317 return false; 10318 } 10319 }); 10320var dillonkearns$elm_markdown$Markdown$InlineParser$isLinkTypeOrImageOpenToken = function (token) { 10321 var _n0 = token.meaning; 10322 switch (_n0.$) { 10323 case 'LinkOpenToken': 10324 return true; 10325 case 'ImageOpenToken': 10326 return true; 10327 default: 10328 return false; 10329 } 10330}; 10331var dillonkearns$elm_markdown$Markdown$InlineParser$isOpenEmphasisToken = F2( 10332 function (closeToken, openToken) { 10333 var _n0 = openToken.meaning; 10334 if (_n0.$ === 'EmphasisToken') { 10335 var openChar = _n0.a; 10336 var open = _n0.b; 10337 var _n1 = closeToken.meaning; 10338 if (_n1.$ === 'EmphasisToken') { 10339 var closeChar = _n1.a; 10340 var close = _n1.b; 10341 return _Utils_eq(openChar, closeChar) ? ((_Utils_eq(open.leftFringeRank, open.rightFringeRank) || _Utils_eq(close.leftFringeRank, close.rightFringeRank)) ? (A2(elm$core$Basics$modBy, 3, closeToken.length + openToken.length) || ((!A2(elm$core$Basics$modBy, 3, closeToken.length)) && (!A2(elm$core$Basics$modBy, 3, openToken.length)))) : true) : false; 10342 } else { 10343 return false; 10344 } 10345 } else { 10346 return false; 10347 } 10348 }); 10349var dillonkearns$elm_markdown$Markdown$InlineParser$isStrikethroughTokenPair = F2( 10350 function (closeToken, openToken) { 10351 var _n0 = function () { 10352 var _n1 = openToken.meaning; 10353 if (_n1.$ === 'StrikethroughToken') { 10354 if (_n1.a.$ === 'Escaped') { 10355 var _n2 = _n1.a; 10356 return _Utils_Tuple2(true, openToken.length - 1); 10357 } else { 10358 var _n3 = _n1.a; 10359 return _Utils_Tuple2(true, openToken.length); 10360 } 10361 } else { 10362 return _Utils_Tuple2(false, 0); 10363 } 10364 }(); 10365 var openTokenIsStrikethrough = _n0.a; 10366 var openTokenLength = _n0.b; 10367 var _n4 = function () { 10368 var _n5 = closeToken.meaning; 10369 if (_n5.$ === 'StrikethroughToken') { 10370 if (_n5.a.$ === 'Escaped') { 10371 var _n6 = _n5.a; 10372 return _Utils_Tuple2(true, closeToken.length - 1); 10373 } else { 10374 var _n7 = _n5.a; 10375 return _Utils_Tuple2(true, closeToken.length); 10376 } 10377 } else { 10378 return _Utils_Tuple2(false, 0); 10379 } 10380 }(); 10381 var closeTokenIsStrikethrough = _n4.a; 10382 var closeTokenLength = _n4.b; 10383 return closeTokenIsStrikethrough && (openTokenIsStrikethrough && _Utils_eq(closeTokenLength, openTokenLength)); 10384 }); 10385var dillonkearns$elm_markdown$Markdown$InlineParser$HardLineBreakType = {$: 'HardLineBreakType'}; 10386var dillonkearns$elm_markdown$Markdown$InlineParser$tokenToMatch = F2( 10387 function (token, type_) { 10388 return dillonkearns$elm_markdown$Markdown$InlineParser$Match( 10389 {end: token.index + token.length, matches: _List_Nil, start: token.index, text: '', textEnd: 0, textStart: 0, type_: type_}); 10390 }); 10391var dillonkearns$elm_markdown$Markdown$InlineParser$lineBreakTTM = F5( 10392 function (remaining, tokens, matches, refs, rawText) { 10393 lineBreakTTM: 10394 while (true) { 10395 if (!remaining.b) { 10396 return matches; 10397 } else { 10398 var token = remaining.a; 10399 var tokensTail = remaining.b; 10400 var _n1 = token.meaning; 10401 if (_n1.$ === 'HardLineBreakToken') { 10402 var $temp$remaining = tokensTail, 10403 $temp$tokens = tokens, 10404 $temp$matches = A2( 10405 elm$core$List$cons, 10406 A2(dillonkearns$elm_markdown$Markdown$InlineParser$tokenToMatch, token, dillonkearns$elm_markdown$Markdown$InlineParser$HardLineBreakType), 10407 matches), 10408 $temp$refs = refs, 10409 $temp$rawText = rawText; 10410 remaining = $temp$remaining; 10411 tokens = $temp$tokens; 10412 matches = $temp$matches; 10413 refs = $temp$refs; 10414 rawText = $temp$rawText; 10415 continue lineBreakTTM; 10416 } else { 10417 var $temp$remaining = tokensTail, 10418 $temp$tokens = A2(elm$core$List$cons, token, tokens), 10419 $temp$matches = matches, 10420 $temp$refs = refs, 10421 $temp$rawText = rawText; 10422 remaining = $temp$remaining; 10423 tokens = $temp$tokens; 10424 matches = $temp$matches; 10425 refs = $temp$refs; 10426 rawText = $temp$rawText; 10427 continue lineBreakTTM; 10428 } 10429 } 10430 } 10431 }); 10432var dillonkearns$elm_markdown$Markdown$InlineParser$removeParsedAheadTokens = F2( 10433 function (_n0, tokensTail) { 10434 var match = _n0.a; 10435 return A2( 10436 elm$core$List$filter, 10437 function (token) { 10438 return _Utils_cmp(token.index, match.end) > -1; 10439 }, 10440 tokensTail); 10441 }); 10442var dillonkearns$elm_markdown$Markdown$InlineParser$angleBracketsToMatch = F6( 10443 function (closeToken, escaped, matches, references, rawText, _n46) { 10444 var openToken = _n46.a; 10445 var remainTokens = _n46.c; 10446 var result = A2( 10447 dillonkearns$elm_markdown$Markdown$Helpers$ifError, 10448 dillonkearns$elm_markdown$Markdown$InlineParser$emailAutolinkTypeToMatch, 10449 dillonkearns$elm_markdown$Markdown$InlineParser$autolinkToMatch( 10450 A7( 10451 dillonkearns$elm_markdown$Markdown$InlineParser$tokenPairToMatch, 10452 references, 10453 rawText, 10454 function (s) { 10455 return s; 10456 }, 10457 dillonkearns$elm_markdown$Markdown$InlineParser$CodeType, 10458 openToken, 10459 closeToken, 10460 _List_Nil))); 10461 if (result.$ === 'Err') { 10462 var tempMatch = result.a; 10463 if (escaped.$ === 'NotEscaped') { 10464 var _n49 = A2(dillonkearns$elm_markdown$Markdown$InlineParser$htmlToToken, rawText, tempMatch); 10465 if (_n49.$ === 'Just') { 10466 var newToken = _n49.a; 10467 return elm$core$Maybe$Just( 10468 _Utils_Tuple2( 10469 A2(elm$core$List$cons, newToken, remainTokens), 10470 matches)); 10471 } else { 10472 return elm$core$Maybe$Nothing; 10473 } 10474 } else { 10475 return elm$core$Maybe$Nothing; 10476 } 10477 } else { 10478 var newMatch = result.a; 10479 return elm$core$Maybe$Just( 10480 _Utils_Tuple2( 10481 remainTokens, 10482 A2(elm$core$List$cons, newMatch, matches))); 10483 } 10484 }); 10485var dillonkearns$elm_markdown$Markdown$InlineParser$codeAutolinkTypeHtmlTagTTM = F5( 10486 function (remaining, tokens, matches, references, rawText) { 10487 codeAutolinkTypeHtmlTagTTM: 10488 while (true) { 10489 if (!remaining.b) { 10490 return A5( 10491 dillonkearns$elm_markdown$Markdown$InlineParser$htmlElementTTM, 10492 elm$core$List$reverse(tokens), 10493 _List_Nil, 10494 matches, 10495 references, 10496 rawText); 10497 } else { 10498 var token = remaining.a; 10499 var tokensTail = remaining.b; 10500 var _n38 = token.meaning; 10501 switch (_n38.$) { 10502 case 'CodeToken': 10503 var isEscaped = _n38.a; 10504 var _n39 = A2( 10505 dillonkearns$elm_markdown$Markdown$InlineParser$findToken, 10506 dillonkearns$elm_markdown$Markdown$InlineParser$isCodeTokenPair(token), 10507 tokens); 10508 if (_n39.$ === 'Just') { 10509 var code = _n39.a; 10510 var _n40 = A5(dillonkearns$elm_markdown$Markdown$InlineParser$codeToMatch, token, matches, references, rawText, code); 10511 var newTokens = _n40.a; 10512 var newMatches = _n40.b; 10513 var $temp$remaining = tokensTail, 10514 $temp$tokens = newTokens, 10515 $temp$matches = newMatches, 10516 $temp$references = references, 10517 $temp$rawText = rawText; 10518 remaining = $temp$remaining; 10519 tokens = $temp$tokens; 10520 matches = $temp$matches; 10521 references = $temp$references; 10522 rawText = $temp$rawText; 10523 continue codeAutolinkTypeHtmlTagTTM; 10524 } else { 10525 var $temp$remaining = tokensTail, 10526 $temp$tokens = A2(elm$core$List$cons, token, tokens), 10527 $temp$matches = matches, 10528 $temp$references = references, 10529 $temp$rawText = rawText; 10530 remaining = $temp$remaining; 10531 tokens = $temp$tokens; 10532 matches = $temp$matches; 10533 references = $temp$references; 10534 rawText = $temp$rawText; 10535 continue codeAutolinkTypeHtmlTagTTM; 10536 } 10537 case 'AngleBracketClose': 10538 var isEscaped = _n38.a; 10539 var isAngleBracketOpen = function (_n45) { 10540 var meaning = _n45.meaning; 10541 if (meaning.$ === 'AngleBracketOpen') { 10542 return true; 10543 } else { 10544 return false;
10545 } 10546 }; 10547 var _n41 = A2(dillonkearns$elm_markdown$Markdown$InlineParser$findToken, isAngleBracketOpen, tokens); 10548 if (_n41.$ === 'Just') { 10549 var found = _n41.a; 10550 var _n42 = A6(dillonkearns$elm_markdown$Markdown$InlineParser$angleBracketsToMatch, token, isEscaped, matches, references, rawText, found); 10551 if (_n42.$ === 'Just') { 10552 var _n43 = _n42.a; 10553 var newTokens = _n43.a; 10554 var newMatches = _n43.b; 10555 var $temp$remaining = tokensTail, 10556 $temp$tokens = A2( 10557 elm$core$List$filter, 10558 A2(elm$core$Basics$composeL, elm$core$Basics$not, isAngleBracketOpen), 10559 newTokens), 10560 $temp$matches = newMatches, 10561 $temp$references = references, 10562 $temp$rawText = rawText; 10563 remaining = $temp$remaining; 10564 tokens = $temp$tokens; 10565 matches = $temp$matches; 10566 references = $temp$references; 10567 rawText = $temp$rawText; 10568 continue codeAutolinkTypeHtmlTagTTM; 10569 } else { 10570 var $temp$remaining = tokensTail, 10571 $temp$tokens = A2( 10572 elm$core$List$filter, 10573 A2(elm$core$Basics$composeL, elm$core$Basics$not, isAngleBracketOpen), 10574 tokens), 10575 $temp$matches = matches, 10576 $temp$references = references, 10577 $temp$rawText = rawText; 10578 remaining = $temp$remaining; 10579 tokens = $temp$tokens; 10580 matches = $temp$matches; 10581 references = $temp$references; 10582 rawText = $temp$rawText; 10583 continue codeAutolinkTypeHtmlTagTTM; 10584 } 10585 } else { 10586 var $temp$remaining = tokensTail, 10587 $temp$tokens = A2( 10588 elm$core$List$filter, 10589 A2(elm$core$Basics$composeL, elm$core$Basics$not, isAngleBracketOpen), 10590 tokens), 10591 $temp$matches = matches, 10592 $temp$references = references, 10593 $temp$rawText = rawText; 10594 remaining = $temp$remaining; 10595 tokens = $temp$tokens; 10596 matches = $temp$matches; 10597 references = $temp$references; 10598 rawText = $temp$rawText; 10599 continue codeAutolinkTypeHtmlTagTTM; 10600 } 10601 default: 10602 var $temp$remaining = tokensTail, 10603 $temp$tokens = A2(elm$core$List$cons, token, tokens), 10604 $temp$matches = matches, 10605 $temp$references = references, 10606 $temp$rawText = rawText; 10607 remaining = $temp$remaining; 10608 tokens = $temp$tokens; 10609 matches = $temp$matches; 10610 references = $temp$references; 10611 rawText = $temp$rawText; 10612 continue codeAutolinkTypeHtmlTagTTM; 10613 } 10614 } 10615 } 10616 }); 10617var dillonkearns$elm_markdown$Markdown$InlineParser$codeToMatch = F5( 10618 function (closeToken, matches, references, rawText, _n34) { 10619 var openToken = _n34.a; 10620 var remainTokens = _n34.c; 10621 var updatedOpenToken = function () { 10622 var _n35 = openToken.meaning; 10623 if ((_n35.$ === 'CodeToken') && (_n35.a.$ === 'Escaped')) { 10624 var _n36 = _n35.a; 10625 return _Utils_update( 10626 openToken, 10627 {index: openToken.index + 1, length: openToken.length - 1}); 10628 } else { 10629 return openToken; 10630 } 10631 }(); 10632 var match = A7(dillonkearns$elm_markdown$Markdown$InlineParser$tokenPairToMatch, references, rawText, dillonkearns$elm_markdown$Markdown$Helpers$cleanWhitespaces, dillonkearns$elm_markdown$Markdown$InlineParser$CodeType, updatedOpenToken, closeToken, _List_Nil); 10633 return _Utils_Tuple2( 10634 remainTokens, 10635 A2(elm$core$List$cons, match, matches)); 10636 }); 10637var dillonkearns$elm_markdown$Markdown$InlineParser$emphasisTTM = F5( 10638 function (remaining, tokens, matches, references, rawText) { 10639 emphasisTTM: 10640 while (true) { 10641 if (!remaining.b) { 10642 return A5( 10643 dillonkearns$elm_markdown$Markdown$InlineParser$strikethroughTTM, 10644 elm$core$List$reverse(tokens), 10645 _List_Nil, 10646 matches, 10647 references, 10648 rawText); 10649 } else { 10650 var token = remaining.a; 10651 var tokensTail = remaining.b; 10652 var _n29 = token.meaning; 10653 if (_n29.$ === 'EmphasisToken') { 10654 var _char = _n29.a; 10655 var leftFringeRank = _n29.b.leftFringeRank; 10656 var rightFringeRank = _n29.b.rightFringeRank; 10657 if (_Utils_eq(leftFringeRank, rightFringeRank)) { 10658 if (rightFringeRank && ((!_Utils_eq( 10659 _char, 10660 _Utils_chr('_'))) || (rightFringeRank === 1))) { 10661 var _n30 = A2( 10662 dillonkearns$elm_markdown$Markdown$InlineParser$findToken, 10663 dillonkearns$elm_markdown$Markdown$InlineParser$isOpenEmphasisToken(token), 10664 tokens); 10665 if (_n30.$ === 'Just') { 10666 var found = _n30.a; 10667 var _n31 = A5(dillonkearns$elm_markdown$Markdown$InlineParser$emphasisToMatch, references, rawText, token, tokensTail, found); 10668 var newRemaining = _n31.a; 10669 var match = _n31.b; 10670 var newTokens = _n31.c; 10671 var $temp$remaining = newRemaining, 10672 $temp$tokens = newTokens, 10673 $temp$matches = A2(elm$core$List$cons, match, matches), 10674 $temp$references = references, 10675 $temp$rawText = rawText; 10676 remaining = $temp$remaining; 10677 tokens = $temp$tokens; 10678 matches = $temp$matches; 10679 references = $temp$references; 10680 rawText = $temp$rawText; 10681 continue emphasisTTM; 10682 } else { 10683 var $temp$remaining = tokensTail, 10684 $temp$tokens = A2(elm$core$List$cons, token, tokens), 10685 $temp$matches = matches, 10686 $temp$references = references, 10687 $temp$rawText = rawText; 10688 remaining = $temp$remaining; 10689 tokens = $temp$tokens; 10690 matches = $temp$matches; 10691 references = $temp$references; 10692 rawText = $temp$rawText; 10693 continue emphasisTTM; 10694 } 10695 } else { 10696 var $temp$remaining = tokensTail, 10697 $temp$tokens = tokens, 10698 $temp$matches = matches, 10699 $temp$references = references, 10700 $temp$rawText = rawText; 10701 remaining = $temp$remaining; 10702 tokens = $temp$tokens; 10703 matches = $temp$matches; 10704 references = $temp$references; 10705 rawText = $temp$rawText; 10706 continue emphasisTTM; 10707 } 10708 } else { 10709 if (_Utils_cmp(leftFringeRank, rightFringeRank) < 0) { 10710 var $temp$remaining = tokensTail, 10711 $temp$tokens = A2(elm$core$List$cons, token, tokens), 10712 $temp$matches = matches, 10713 $temp$references = references, 10714 $temp$rawText = rawText; 10715 remaining = $temp$remaining; 10716 tokens = $temp$tokens; 10717 matches = $temp$matches; 10718 references = $temp$references; 10719 rawText = $temp$rawText; 10720 continue emphasisTTM; 10721 } else { 10722 var _n32 = A2( 10723 dillonkearns$elm_markdown$Markdown$InlineParser$findToken, 10724 dillonkearns$elm_markdown$Markdown$InlineParser$isOpenEmphasisToken(token), 10725 tokens); 10726 if (_n32.$ === 'Just') { 10727 var found = _n32.a; 10728 var _n33 = A5(dillonkearns$elm_markdown$Markdown$InlineParser$emphasisToMatch, references, rawText, token, tokensTail, found); 10729 var newRemaining = _n33.a; 10730 var match = _n33.b; 10731 var newTokens = _n33.c; 10732 var $temp$remaining = newRemaining, 10733 $temp$tokens = newTokens, 10734 $temp$matches = A2(elm$core$List$cons, match, matches), 10735 $temp$references = references, 10736 $temp$rawText = rawText; 10737 remaining = $temp$remaining; 10738 tokens = $temp$tokens; 10739 matches = $temp$matches; 10740 references = $temp$references; 10741 rawText = $temp$rawText; 10742 continue emphasisTTM; 10743 } else { 10744 var $temp$remaining = tokensTail, 10745 $temp$tokens = tokens, 10746 $temp$matches = matches, 10747 $temp$references = references, 10748 $temp$rawText = rawText; 10749 remaining = $temp$remaining; 10750 tokens = $temp$tokens; 10751 matches = $temp$matches; 10752 references = $temp$references; 10753 rawText = $temp$rawText; 10754 continue emphasisTTM; 10755 } 10756 } 10757 } 10758 } else { 10759 var $temp$remaining = tokensTail, 10760 $temp$tokens = A2(elm$core$List$cons, token, tokens), 10761 $temp$matches = matches, 10762 $temp$references = references, 10763 $temp$rawText = rawText; 10764 remaining = $temp$remaining; 10765 tokens = $temp$tokens; 10766 matches = $temp$matches; 10767 references = $temp$references; 10768 rawText = $temp$rawText; 10769 continue emphasisTTM; 10770 } 10771 } 10772 } 10773 }); 10774var dillonkearns$elm_markdown$Markdown$InlineParser$emphasisToMatch = F5( 10775 function (references, rawText, closeToken, tokensTail, _n27) { 10776 var openToken = _n27.a; 10777 var innerTokens = _n27.b; 10778 var remainTokens = _n27.c; 10779 var remainLength = openToken.length - closeToken.length; 10780 var updt = (!remainLength) ? {closeToken: closeToken, openToken: openToken, remainTokens: remainTokens, tokensTail: tokensTail} : ((remainLength > 0) ? { 10781 closeToken: closeToken, 10782 openToken: _Utils_update( 10783 openToken, 10784 {index: openToken.index + remainLength, length: closeToken.length}), 10785 remainTokens: A2( 10786 elm$core$List$cons, 10787 _Utils_update( 10788 openToken, 10789 {length: remainLength}), 10790 remainTokens), 10791 tokensTail: tokensTail 10792 } : { 10793 closeToken: _Utils_update( 10794 closeToken, 10795 {length: openToken.length}), 10796 openToken: openToken, 10797 remainTokens: remainTokens, 10798 tokensTail: A2( 10799 elm$core$List$cons, 10800 _Utils_update( 10801 closeToken, 10802 {index: closeToken.index + openToken.length, length: -remainLength}), 10803 tokensTail) 10804 }); 10805 var match = A7( 10806 dillonkearns$elm_markdown$Markdown$InlineParser$tokenPairToMatch, 10807 references, 10808 rawText, 10809 function (s) { 10810 return s; 10811 }, 10812 dillonkearns$elm_markdown$Markdown$InlineParser$EmphasisType(updt.openToken.length), 10813 updt.openToken, 10814 updt.closeToken, 10815 elm$core$List$reverse(innerTokens)); 10816 return _Utils_Tuple3(updt.tokensTail, match, updt.remainTokens); 10817 }); 10818var dillonkearns$elm_markdown$Markdown$InlineParser$htmlElementTTM = F5( 10819 function (remaining, tokens, matches, references, rawText) { 10820 htmlElementTTM: 10821 while (true) { 10822 if (!remaining.b) { 10823 return A5( 10824 dillonkearns$elm_markdown$Markdown$InlineParser$linkImageTypeTTM, 10825 elm$core$List$reverse(tokens), 10826 _List_Nil, 10827 matches, 10828 references, 10829 rawText); 10830 } else { 10831 var token = remaining.a; 10832 var tokensTail = remaining.b; 10833 var _n23 = token.meaning; 10834 if (_n23.$ === 'HtmlToken') { 10835 var isOpen = _n23.a; 10836 var htmlModel = _n23.b; 10837 if (isOpen.$ === 'NotOpening') { 10838 var $temp$remaining = tokensTail, 10839 $temp$tokens = tokens, 10840 $temp$matches = A2( 10841 elm$core$List$cons, 10842 A2( 10843 dillonkearns$elm_markdown$Markdown$InlineParser$tokenToMatch, 10844 token, 10845 dillonkearns$elm_markdown$Markdown$InlineParser$HtmlType(htmlModel)), 10846 matches), 10847 $temp$references = references, 10848 $temp$rawText = rawText; 10849 remaining = $temp$remaining; 10850 tokens = $temp$tokens; 10851 matches = $temp$matches; 10852 references = $temp$references; 10853 rawText = $temp$rawText; 10854 continue htmlElementTTM; 10855 } else {
10856 var _n25 = A2( 10857 dillonkearns$elm_markdown$Markdown$InlineParser$findToken, 10858 dillonkearns$elm_markdown$Markdown$InlineParser$isCloseToken(htmlModel), 10859 tokensTail); 10860 if (_n25.$ === 'Nothing') { 10861 var $temp$remaining = tokensTail, 10862 $temp$tokens = tokens, 10863 $temp$matches = A2( 10864 elm$core$List$cons, 10865 A2( 10866 dillonkearns$elm_markdown$Markdown$InlineParser$tokenToMatch, 10867 token, 10868 dillonkearns$elm_markdown$Markdown$InlineParser$HtmlType(htmlModel)), 10869 matches), 10870 $temp$references = references, 10871 $temp$rawText = rawText; 10872 remaining = $temp$remaining; 10873 tokens = $temp$tokens; 10874 matches = $temp$matches; 10875 references = $temp$references; 10876 rawText = $temp$rawText; 10877 continue htmlElementTTM; 10878 } else { 10879 var _n26 = _n25.a; 10880 var closeToken = _n26.a; 10881 var innerTokens = _n26.b; 10882 var newTail = _n26.c; 10883 var newMatch = A7( 10884 dillonkearns$elm_markdown$Markdown$InlineParser$tokenPairToMatch, 10885 references, 10886 rawText, 10887 function (s) { 10888 return s; 10889 }, 10890 dillonkearns$elm_markdown$Markdown$InlineParser$HtmlType(htmlModel), 10891 token, 10892 closeToken, 10893 innerTokens); 10894 var $temp$remaining = newTail, 10895 $temp$tokens = tokens, 10896 $temp$matches = A2(elm$core$List$cons, newMatch, matches), 10897 $temp$references = references, 10898 $temp$rawText = rawText; 10899 remaining = $temp$remaining; 10900 tokens = $temp$tokens; 10901 matches = $temp$matches; 10902 references = $temp$references; 10903 rawText = $temp$rawText; 10904 continue htmlElementTTM; 10905 } 10906 } 10907 } else { 10908 var $temp$remaining = tokensTail, 10909 $temp$tokens = A2(elm$core$List$cons, token, tokens), 10910 $temp$matches = matches, 10911 $temp$references = references, 10912 $temp$rawText = rawText; 10913 remaining = $temp$remaining; 10914 tokens = $temp$tokens; 10915 matches = $temp$matches; 10916 references = $temp$references; 10917 rawText = $temp$rawText; 10918 continue htmlElementTTM; 10919 } 10920 } 10921 } 10922 }); 10923var dillonkearns$elm_markdown$Markdown$InlineParser$linkImageTypeTTM = F5( 10924 function (remaining, tokens, matches, references, rawText) { 10925 linkImageTypeTTM: 10926 while (true) { 10927 if (!remaining.b) { 10928 return A5( 10929 dillonkearns$elm_markdown$Markdown$InlineParser$emphasisTTM, 10930 elm$core$List$reverse(tokens), 10931 _List_Nil, 10932 matches, 10933 references, 10934 rawText); 10935 } else { 10936 var token = remaining.a; 10937 var tokensTail = remaining.b; 10938 var _n18 = token.meaning; 10939 if (_n18.$ === 'SquareBracketClose') { 10940 var _n19 = A2(dillonkearns$elm_markdown$Markdown$InlineParser$findToken, dillonkearns$elm_markdown$Markdown$InlineParser$isLinkTypeOrImageOpenToken, tokens); 10941 if (_n19.$ === 'Just') { 10942 var found = _n19.a; 10943 var _n20 = A6(dillonkearns$elm_markdown$Markdown$InlineParser$linkOrImageTypeToMatch, token, tokensTail, matches, references, rawText, found); 10944 if (_n20.$ === 'Just') { 10945 var _n21 = _n20.a; 10946 var x = _n21.a; 10947 var newMatches = _n21.b; 10948 var newTokens = _n21.c; 10949 var $temp$remaining = x, 10950 $temp$tokens = newTokens, 10951 $temp$matches = newMatches, 10952 $temp$references = references, 10953 $temp$rawText = rawText; 10954 remaining = $temp$remaining; 10955 tokens = $temp$tokens; 10956 matches = $temp$matches; 10957 references = $temp$references; 10958 rawText = $temp$rawText; 10959 continue linkImageTypeTTM; 10960 } else { 10961 var $temp$remaining = tokensTail, 10962 $temp$tokens = tokens, 10963 $temp$matches = matches, 10964 $temp$references = references, 10965 $temp$rawText = rawText; 10966 remaining = $temp$remaining; 10967 tokens = $temp$tokens; 10968 matches = $temp$matches; 10969 references = $temp$references; 10970 rawText = $temp$rawText; 10971 continue linkImageTypeTTM; 10972 } 10973 } else { 10974 var $temp$remaining = tokensTail, 10975 $temp$tokens = tokens, 10976 $temp$matches = matches, 10977 $temp$references = references, 10978 $temp$rawText = rawText; 10979 remaining = $temp$remaining; 10980 tokens = $temp$tokens; 10981 matches = $temp$matches; 10982 references = $temp$references; 10983 rawText = $temp$rawText; 10984 continue linkImageTypeTTM; 10985 } 10986 } else { 10987 var $temp$remaining = tokensTail, 10988 $temp$tokens = A2(elm$core$List$cons, token, tokens), 10989 $temp$matches = matches, 10990 $temp$references = references, 10991 $temp$rawText = rawText; 10992 remaining = $temp$remaining; 10993 tokens = $temp$tokens; 10994 matches = $temp$matches; 10995 references = $temp$references; 10996 rawText = $temp$rawText; 10997 continue linkImageTypeTTM; 10998 } 10999 } 11000 } 11001 }); 11002var dillonkearns$elm_markdown$Markdown$InlineParser$linkOrImageTypeToMatch = F6( 11003 function (closeToken, tokensTail, oldMatches, references, rawText, _n8) { 11004 var openToken = _n8.a; 11005 var innerTokens = _n8.b; 11006 var remainTokens = _n8.c; 11007 var removeOpenToken = _Utils_Tuple3( 11008 tokensTail, 11009 oldMatches, 11010 _Utils_ap(innerTokens, remainTokens)); 11011 var remainText = A2(elm$core$String$dropLeft, closeToken.index + 1, rawText); 11012 var inactivateLinkOpenToken = function (token) { 11013 var _n16 = token.meaning; 11014 if (_n16.$ === 'LinkOpenToken') { 11015 return _Utils_update( 11016 token, 11017 { 11018 meaning: dillonkearns$elm_markdown$Markdown$InlineParser$LinkOpenToken(dillonkearns$elm_markdown$Markdown$InlineParser$Inactive) 11019 }); 11020 } else { 11021 return token; 11022 } 11023 }; 11024 var findTempMatch = function (isLinkType) { 11025 return A7( 11026 dillonkearns$elm_markdown$Markdown$InlineParser$tokenPairToMatch, 11027 references, 11028 rawText, 11029 function (s) { 11030 return s; 11031 }, 11032 isLinkType ? dillonkearns$elm_markdown$Markdown$InlineParser$LinkType( 11033 _Utils_Tuple2('', elm$core$Maybe$Nothing)) : dillonkearns$elm_markdown$Markdown$InlineParser$ImageType( 11034 _Utils_Tuple2('', elm$core$Maybe$Nothing)), 11035 openToken, 11036 closeToken, 11037 elm$core$List$reverse(innerTokens)); 11038 }; 11039 var _n9 = openToken.meaning; 11040 switch (_n9.$) { 11041 case 'ImageOpenToken': 11042 var tempMatch = findTempMatch(false); 11043 var _n10 = A3(dillonkearns$elm_markdown$Markdown$InlineParser$checkForInlineLinkTypeOrImageType, remainText, tempMatch, references); 11044 if (_n10.$ === 'Nothing') { 11045 return elm$core$Maybe$Just(removeOpenToken); 11046 } else { 11047 var match = _n10.a; 11048 var _n11 = A2(dillonkearns$elm_markdown$Markdown$InlineParser$checkParsedAheadOverlapping, match, oldMatches); 11049 if (_n11.$ === 'Just') { 11050 var matches = _n11.a; 11051 return elm$core$Maybe$Just( 11052 _Utils_Tuple3( 11053 A2(dillonkearns$elm_markdown$Markdown$InlineParser$removeParsedAheadTokens, match, tokensTail), 11054 matches, 11055 remainTokens)); 11056 } else { 11057 return elm$core$Maybe$Just(removeOpenToken); 11058 } 11059 } 11060 case 'LinkOpenToken': 11061 if (_n9.a.$ === 'Active') { 11062 var _n12 = _n9.a; 11063 var tempMatch = findTempMatch(true); 11064 var _n13 = A3(dillonkearns$elm_markdown$Markdown$InlineParser$checkForInlineLinkTypeOrImageType, remainText, tempMatch, references); 11065 if (_n13.$ === 'Nothing') { 11066 return elm$core$Maybe$Just(removeOpenToken); 11067 } else { 11068 var match = _n13.a; 11069 var _n14 = A2(dillonkearns$elm_markdown$Markdown$InlineParser$checkParsedAheadOverlapping, match, oldMatches); 11070 if (_n14.$ === 'Just') { 11071 var matches = _n14.a; 11072 return elm$core$Maybe$Just( 11073 _Utils_Tuple3( 11074 A2(dillonkearns$elm_markdown$Markdown$InlineParser$removeParsedAheadTokens, match, tokensTail), 11075 matches, 11076 A2(elm$core$List$map, inactivateLinkOpenToken, remainTokens))); 11077 } else { 11078 return elm$core$Maybe$Just(removeOpenToken); 11079 } 11080 } 11081 } else { 11082 var _n15 = _n9.a; 11083 return elm$core$Maybe$Just(removeOpenToken); 11084 } 11085 default: 11086 return elm$core$Maybe$Nothing; 11087 } 11088 }); 11089var dillonkearns$elm_markdown$Markdown$InlineParser$strikethroughTTM = F5( 11090 function (remaining, tokens, matches, references, rawText) { 11091 strikethroughTTM: 11092 while (true) { 11093 if (!remaining.b) { 11094 return A5( 11095 dillonkearns$elm_markdown$Markdown$InlineParser$lineBreakTTM, 11096 elm$core$List$reverse(tokens), 11097 _List_Nil, 11098 matches, 11099 references, 11100 rawText); 11101 } else { 11102 var token = remaining.a; 11103 var tokensTail = remaining.b; 11104 var _n5 = token.meaning; 11105 if (_n5.$ === 'StrikethroughToken') { 11106 var isEscaped = _n5.a; 11107 var _n6 = A2( 11108 dillonkearns$elm_markdown$Markdown$InlineParser$findToken, 11109 dillonkearns$elm_markdown$Markdown$InlineParser$isStrikethroughTokenPair(token), 11110 tokens); 11111 if (_n6.$ === 'Just') { 11112 var content = _n6.a; 11113 var _n7 = A5(dillonkearns$elm_markdown$Markdown$InlineParser$strikethroughToMatch, token, matches, references, rawText, content); 11114 var newTokens = _n7.a; 11115 var newMatches = _n7.b; 11116 var $temp$remaining = tokensTail, 11117 $temp$tokens = newTokens, 11118 $temp$matches = newMatches, 11119 $temp$references = references, 11120 $temp$rawText = rawText; 11121 remaining = $temp$remaining; 11122 tokens = $temp$tokens; 11123 matches = $temp$matches; 11124 references = $temp$references; 11125 rawText = $temp$rawText; 11126 continue strikethroughTTM; 11127 } else { 11128 var $temp$remaining = tokensTail, 11129 $temp$tokens = A2(elm$core$List$cons, token, tokens), 11130 $temp$matches = matches, 11131 $temp$references = references, 11132 $temp$rawText = rawText; 11133 remaining = $temp$remaining; 11134 tokens = $temp$tokens; 11135 matches = $temp$matches; 11136 references = $temp$references; 11137 rawText = $temp$rawText; 11138 continue strikethroughTTM; 11139 } 11140 } else { 11141 var $temp$remaining = tokensTail, 11142 $temp$tokens = A2(elm$core$List$cons, token, tokens), 11143 $temp$matches = matches, 11144 $temp$references = references, 11145 $temp$rawText = rawText; 11146 remaining = $temp$remaining; 11147 tokens = $temp$tokens; 11148 matches = $temp$matches; 11149 references = $temp$references; 11150 rawText = $temp$rawText; 11151 continue strikethroughTTM; 11152 } 11153 } 11154 } 11155 }); 11156var dillonkearns$elm_markdown$Markdown$InlineParser$strikethroughToMatch = F5( 11157 function (closeToken, matches, references, rawText, _n1) { 11158 var openToken = _n1.a; 11159 var remainTokens = _n1.c; 11160 var updatedOpenToken = function () { 11161 var _n2 = openToken.meaning; 11162 if ((_n2.$ === 'StrikethroughToken') && (_n2.a.$ === 'Escaped')) { 11163 var _n3 = _n2.a; 11164 return _Utils_update( 11165 openToken, 11166 {index: openToken.index + 1, length: openToken.length - 1}); 11167 } else { 11168 return openToken; 11169 } 11170 }(); 11171 var match = A7(dillonkearns$elm_markdown$Markdown$InlineParser$tokenPairToMatch, references, rawText, dillonkearns$elm_markdown$Markdown$Helpers$cleanWhitespace
11171s, dillonkearns$elm_markdown$Markdown$InlineParser$StrikethroughType, updatedOpenToken, closeToken, _List_Nil); 11172 return _Utils_Tuple2( 11173 remainTokens, 11174 A2(elm$core$List$cons, match, matches)); 11175 }); 11176var dillonkearns$elm_markdown$Markdown$InlineParser$tokenPairToMatch = F7( 11177 function (references, rawText, processText, type_, openToken, closeToken, innerTokens) { 11178 var textStart = openToken.index + openToken.length; 11179 var textEnd = closeToken.index; 11180 var text = processText( 11181 A3(elm$core$String$slice, textStart, textEnd, rawText)); 11182 var start = openToken.index; 11183 var end = closeToken.index + closeToken.length; 11184 var match = {end: end, matches: _List_Nil, start: start, text: text, textEnd: textEnd, textStart: textStart, type_: type_}; 11185 var matches = A2( 11186 elm$core$List$map, 11187 function (_n0) { 11188 var matchModel = _n0.a; 11189 return A2(dillonkearns$elm_markdown$Markdown$InlineParser$prepareChildMatch, match, matchModel); 11190 }, 11191 A4(dillonkearns$elm_markdown$Markdown$InlineParser$tokensToMatches, innerTokens, _List_Nil, references, rawText)); 11192 return dillonkearns$elm_markdown$Markdown$InlineParser$Match( 11193 {end: end, matches: matches, start: start, text: text, textEnd: textEnd, textStart: textStart, type_: type_}); 11194 }); 11195var dillonkearns$elm_markdown$Markdown$InlineParser$tokensToMatches = F4( 11196 function (tokens, matches, references, rawText) { 11197 return A5(dillonkearns$elm_markdown$Markdown$InlineParser$codeAutolinkTypeHtmlTagTTM, tokens, _List_Nil, matches, references, rawText); 11198 }); 11199var dillonkearns$elm_markdown$Markdown$InlineParser$parse = F2( 11200 function (refs, rawText_) { 11201 var rawText = elm$core$String$trim(rawText_); 11202 var tokens = dillonkearns$elm_markdown$Markdown$InlineParser$tokenize(rawText); 11203 return dillonkearns$elm_markdown$Markdown$InlineParser$matchesToInlines( 11204 A3( 11205 dillonkearns$elm_markdown$Markdown$InlineParser$parseTextMatches, 11206 rawText, 11207 _List_Nil, 11208 dillonkearns$elm_markdown$Markdown$InlineParser$organizeMatches( 11209 A4(dillonkearns$elm_markdown$Markdown$InlineParser$tokensToMatches, tokens, _List_Nil, refs, rawText)))); 11210 }); 11211var dillonkearns$elm_markdown$Parser$Extra$chompOneOrMore = function (condition) { 11212 return A2( 11213 elm$parser$Parser$Advanced$ignorer, 11214 A2( 11215 elm$parser$Parser$Advanced$chompIf, 11216 condition, 11217 elm$parser$Parser$Problem('Expected one or more character')), 11218 elm$parser$Parser$Advanced$chompWhile(condition)); 11219}; 11220var dillonkearns$elm_markdown$Parser$Token$greaterThan = A2( 11221 elm$parser$Parser$Advanced$Token, 11222 '>', 11223 elm$parser$Parser$Expecting('a `>`')); 11224var dillonkearns$elm_markdown$Parser$Token$lessThan = A2( 11225 elm$parser$Parser$Advanced$Token, 11226 '<', 11227 elm$parser$Parser$Expecting('a `<`')); 11228var dillonkearns$elm_markdown$Whitespace$isWhitespace = function (_char) { 11229 switch (_char.valueOf()) { 11230 case ' ': 11231 return true; 11232 case '\n': 11233 return true; 11234 case '\t': 11235 return true; 11236 case '\u000b': 11237 return true; 11238 case '\u000c': 11239 return true; 11240 case '\r': 11241 return true; 11242 default: 11243 return false; 11244 } 11245}; 11246var elm$parser$Parser$Advanced$findSubString = _Parser_findSubString; 11247var elm$parser$Parser$Advanced$fromInfo = F4( 11248 function (row, col, x, context) { 11249 return A2( 11250 elm$parser$Parser$Advanced$AddRight, 11251 elm$parser$Parser$Advanced$Empty, 11252 A4(elm$parser$Parser$Advanced$DeadEnd, row, col, x, context)); 11253 }); 11254var elm$parser$Parser$Advanced$chompUntil = function (_n0) { 11255 var str = _n0.a; 11256 var expecting = _n0.b; 11257 return elm$parser$Parser$Advanced$Parser( 11258 function (s) { 11259 var _n1 = A5(elm$parser$Parser$Advanced$findSubString, str, s.offset, s.row, s.col, s.src); 11260 var newOffset = _n1.a; 11261 var newRow = _n1.b; 11262 var newCol = _n1.c; 11263 return _Utils_eq(newOffset, -1) ? A2( 11264 elm$parser$Parser$Advanced$Bad, 11265 false, 11266 A4(elm$parser$Parser$Advanced$fromInfo, newRow, newCol, expecting, s.context)) : A3( 11267 elm$parser$Parser$Advanced$Good, 11268 _Utils_cmp(s.offset, newOffset) < 0, 11269 _Utils_Tuple0, 11270 {col: newCol, context: s.context, indent: s.indent, offset: newOffset, row: newRow, src: s.src}); 11271 }); 11272}; 11273var elm$parser$Parser$Advanced$Located = F3( 11274 function (row, col, context) { 11275 return {col: col, context: context, row: row}; 11276 }); 11277var elm$parser$Parser$Advanced$changeContext = F2( 11278 function (newContext, s) { 11279 return {col: s.col, context: newContext, indent: s.indent, offset: s.offset, row: s.row, src: s.src}; 11280 }); 11281var elm$parser$Parser$Advanced$inContext = F2( 11282 function (context, _n0) { 11283 var parse = _n0.a; 11284 return elm$parser$Parser$Advanced$Parser( 11285 function (s0) { 11286 var _n1 = parse( 11287 A2( 11288 elm$parser$Parser$Advanced$changeContext, 11289 A2( 11290 elm$core$List$cons, 11291 A3(elm$parser$Parser$Advanced$Located, s0.row, s0.col, context),
11292 s0.context), 11293 s0)); 11294 if (_n1.$ === 'Good') { 11295 var p = _n1.a; 11296 var a = _n1.b; 11297 var s1 = _n1.c; 11298 return A3( 11299 elm$parser$Parser$Advanced$Good, 11300 p, 11301 a, 11302 A2(elm$parser$Parser$Advanced$changeContext, s0.context, s1)); 11303 } else { 11304 var step = _n1; 11305 return step; 11306 } 11307 }); 11308 }); 11309var dillonkearns$elm_markdown$Markdown$LinkReferenceDefinition$destinationParser = A2( 11310 elm$parser$Parser$Advanced$inContext, 11311 'link destination', 11312 elm$parser$Parser$Advanced$oneOf( 11313 _List_fromArray( 11314 [ 11315 A2( 11316 elm$parser$Parser$Advanced$keeper, 11317 A2( 11318 elm$parser$Parser$Advanced$ignorer, 11319 elm$parser$Parser$Advanced$succeed(elm$url$Url$percentEncode), 11320 elm$parser$Parser$Advanced$symbol(dillonkearns$elm_markdown$Parser$Token$lessThan)), 11321 A2( 11322 elm$parser$Parser$Advanced$ignorer, 11323 elm$parser$Parser$Advanced$getChompedString( 11324 elm$parser$Parser$Advanced$chompUntil(dillonkearns$elm_markdown$Parser$Token$greaterThan)), 11325 elm$parser$Parser$Advanced$symbol(dillonkearns$elm_markdown$Parser$Token$greaterThan))), 11326 elm$parser$Parser$Advanced$getChompedString( 11327 dillonkearns$elm_markdown$Parser$Extra$chompOneOrMore( 11328 A2(elm$core$Basics$composeL, elm$core$Basics$not, dillonkearns$elm_markdown$Whitespace$isWhitespace))) 11329 ]))); 11330var dillonkearns$elm_markdown$Parser$Token$closingSquareBracket = A2( 11331 elm$parser$Parser$Advanced$Token, 11332 ']', 11333 elm$parser$Parser$Expecting('a `]`')); 11334var dillonkearns$elm_markdown$Parser$Token$openingSquareBracket = A2( 11335 elm$parser$Parser$Advanced$Token, 11336 '[', 11337 elm$parser$Parser$Expecting('a `[`')); 11338var dillonkearns$elm_markdown$Markdown$LinkReferenceDefinition$labelParser = A2( 11339 elm$parser$Parser$Advanced$keeper, 11340 A2( 11341 elm$parser$Parser$Advanced$ignorer, 11342 elm$parser$Parser$Advanced$succeed(dillonkearns$elm_markdown$Markdown$Helpers$prepareRefLabel), 11343 elm$parser$Parser$Advanced$symbol(dillonkearns$elm_markdown$Parser$Token$openingSquareBracket)), 11344 A2( 11345 elm$parser$Parser$Advanced$ignorer, 11346 elm$parser$Parser$Advanced$getChompedString( 11347 elm$parser$Parser$Advanced$chompUntil(dillonkearns$elm_markdown$Parser$Token$closingSquareBracket)), 11348 elm$parser$Parser$Advanced$symbol( 11349 A2( 11350 elm$parser$Parser$Advanced$Token, 11351 ']:', 11352 elm$parser$Parser$Expecting(']:'))))); 11353var dillonkearns$elm_markdown$Markdown$LinkReferenceDefinition$hasNoBlankLine = function (str) { 11354 return A2(elm$core$String$contains, '\n\n', str) ? elm$parser$Parser$Advanced$problem( 11355 elm$parser$Parser$Expecting('no blank line')) : elm$parser$Parser$Advanced$succeed(str); 11356}; 11357var dillonkearns$elm_markdown$Markdown$LinkReferenceDefinition$onlyWhitespaceTillNewline = A2( 11358 elm$parser$Parser$Advanced$ignorer, 11359 elm$parser$Parser$Advanced$chompWhile( 11360 function (c) { 11361 return (!dillonkearns$elm_markdown$Whitespace$isLineEnd(c)) && dillonkearns$elm_markdown$Whitespace$isWhitespace(c); 11362 }), 11363 dillonkearns$elm_markdown$Helpers$lineEndOrEnd); 11364var dillonkearns$elm_markdown$Parser$Token$doubleQuote = A2( 11365 elm$parser$Parser$Advanced$Token, 11366 '\"', 11367 elm$parser$Parser$Expecting('a double quote')); 11368var dillonkearns$elm_markdown$Parser$Token$singleQuote = A2( 11369 elm$parser$Parser$Advanced$Token, 11370 '\'', 11371 elm$parser$Parser$Expecting('a single quote')); 11372var dillonkearns$elm_markdown$Whitespace$requiredWhitespace = A2( 11373 elm$parser$Parser$Advanced$ignorer, 11374 A2( 11375 elm$parser$Parser$Advanced$chompIf, 11376 dillonkearns$elm_markdown$Whitespace$isWhitespace, 11377 elm$parser$Parser$Expecting('Required whitespace')), 11378 elm$parser$Parser$Advanced$chompWhile(dillonkearns$elm_markdown$Whitespace$isWhitespace)); 11379var dillonkearns$elm_markdown$Markdown$LinkReferenceDefinition$titleParser = function () { 11380 var inSingleQuotes = A2( 11381 elm$parser$Parser$Advanced$keeper, 11382 A2( 11383 elm$parser$Parser$Advanced$ignorer, 11384 elm$parser$Parser$Advanced$succeed(elm$core$Maybe$Just), 11385 elm$parser$Parser$Advanced$symbol(dillonkearns$elm_markdown$Parser$Token$singleQuote)), 11386 A2( 11387 elm$parser$Parser$Advanced$ignorer, 11388 A2( 11389 elm$parser$Parser$Advanced$ignorer, 11390 A2( 11391 elm$parser$Parser$Advanced$andThen, 11392 dillonkearns$elm_markdown$Markdown$LinkReferenceDefinition$hasNoBlankLine, 11393 elm$parser$Parser$Advanced$getChompedString( 11394 elm$parser$Parser$Advanced$chompUntil(dillonkearns$elm_markdown$Parser$Token$singleQuote))), 11395 elm$parser$Parser$Advanced$symbol(dillonkearns$elm_markdown$Parser$Token$singleQuote)), 11396 dillonkearns$elm_markdown$Markdown$LinkReferenceDefinition$onlyWhitespaceTillNewline)); 11397 var inDoubleQuotes = A2( 11398 elm$parser$Parser$Advanced$keeper, 11399 A2( 11400 elm$parser$Parser$Advanced$ignorer, 11401 elm$parser$Parser$Advanced$succeed(elm$core$Maybe$Just), 11402 elm$parser$Parser$Advanced$symbol(dillonkearns$elm_markdown$Parser$Token$doubleQuote)), 11403 A2( 11404 elm$parser$Parser$Advanced$ignorer, 11405 A2( 11406 elm$parser$Parser$Advanced$ignorer, 11407 A2( 11408 elm$parser$Parser$Advanced$andThen, 11409 dillonkearns$elm_markdown$Markdown$LinkReferenceDefinition$hasNoBlankLine, 11410 elm$parser$Parser$Advanced$getChompedString( 11411 elm$parser$Parser$Advanced$chompUntil(dillonkearns$elm_markdown$Parser$Token$doubleQuote))), 11412 elm$parser$Parser$Advanced$symbol(dillonkearns$elm_markdown$Parser$Token$doubleQuote)), 11413 dillonkearns$elm_markdown$Markdown$LinkReferenceDefinition$onlyWhitespaceTillNewline)); 11414 return A2( 11415 elm$parser$Parser$Advanced$inContext, 11416 'title', 11417 elm$parser$Parser$Advanced$oneOf( 11418 _List_fromArray( 11419 [ 11420 elm$parser$Parser$Advanced$backtrackable( 11421 A2( 11422 elm$parser$Parser$Advanced$keeper, 11423 A2( 11424 elm$parser$Parser$Advanced$ignorer, 11425 elm$parser$Parser$Advanced$succeed(elm$core$Basics$identity), 11426 dillonkearns$elm_markdown$Whitespace$requiredWhitespace), 11427 elm$parser$Parser$Advanced$oneOf( 11428 _List_fromArray( 11429 [ 11430 inDoubleQuotes, 11431 inSingleQuotes, 11432 elm$parser$Parser$Advanced$succeed(elm$core$Maybe$Nothing) 11433 ])))), 11434 A2( 11435 elm$parser$Parser$Advanced$ignorer, 11436 elm$parser$Parser$Advanced$succeed(elm$core$Maybe$Nothing), 11437 dillonkearns$elm_markdown$Markdown$LinkReferenceDefinition$onlyWhitespaceTillNewline) 11438 ]))); 11439}(); 11440var dillonkearns$elm_markdown$Whitespace$isSpaceOrTab = function (_char) { 11441 switch (_char.valueOf()) { 11442 case ' ': 11443 return true; 11444 case '\t': 11445 return true; 11446 default: 11447 return false;
11448 } 11449}; 11450var dillonkearns$elm_markdown$Markdown$LinkReferenceDefinition$parser = A2( 11451 elm$parser$Parser$Advanced$inContext, 11452 'link reference definition', 11453 A2( 11454 elm$parser$Parser$Advanced$keeper, 11455 A2( 11456 elm$parser$Parser$Advanced$keeper, 11457 A2( 11458 elm$parser$Parser$Advanced$keeper, 11459 A2( 11460 elm$parser$Parser$Advanced$ignorer, 11461 elm$parser$Parser$Advanced$succeed( 11462 F3( 11463 function (label, destination, title) { 11464 return _Utils_Tuple2( 11465 label, 11466 {destination: destination, title: title}); 11467 })), 11468 dillonkearns$elm_markdown$Whitespace$upToThreeSpaces), 11469 A2( 11470 elm$parser$Parser$Advanced$ignorer, 11471 A2( 11472 elm$parser$Parser$Advanced$ignorer, 11473 A2( 11474 elm$parser$Parser$Advanced$ignorer, 11475 dillonkearns$elm_markdown$Markdown$LinkReferenceDefinition$labelParser, 11476 elm$parser$Parser$Advanced$chompWhile(dillonkearns$elm_markdown$Whitespace$isSpaceOrTab)), 11477 elm$parser$Parser$Advanced$oneOf( 11478 _List_fromArray( 11479 [ 11480 dillonkearns$elm_markdown$Whitespace$lineEnd, 11481 elm$parser$Parser$Advanced$succeed(_Utils_Tuple0) 11482 ]))), 11483 elm$parser$Parser$Advanced$chompWhile(dillonkearns$elm_markdown$Whitespace$isSpaceOrTab))), 11484 dillonkearns$elm_markdown$Markdown$LinkReferenceDefinition$destinationParser), 11485 dillonkearns$elm_markdown$Markdown$LinkReferenceDefinition$titleParser)); 11486var dillonkearns$elm_markdown$Markdown$Parser$EmptyBlock = {$: 'EmptyBlock'}; 11487var dillonkearns$elm_markdown$Markdown$Parser$InlineProblem = function (a) { 11488 return {$: 'InlineProblem', a: a}; 11489}; 11490var dillonkearns$elm_markdown$Markdown$Parser$ParsedBlock = function (a) { 11491 return {$: 'ParsedBlock', a: a}; 11492}; 11493var dillonkearns$elm_markdown$Markdown$Parser$addReference = F2( 11494 function (state, linkRef) { 11495 return { 11496 linkReferenceDefinitions: A2(elm$core$List$cons, linkRef, state.linkReferenceDefinitions), 11497 rawBlocks: state.rawBlocks 11498 }; 11499 }); 11500var dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine = {$: 'BlankLine'}; 11501var dillonkearns$elm_markdown$Markdown$Parser$blankLine = A2( 11502 elm$parser$Parser$Advanced$map, 11503 function (_n0) { 11504 return dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine; 11505 }, 11506 A2( 11507 elm$parser$Parser$Advanced$ignorer, 11508 elm$parser$Parser$Advanced$backtrackable( 11509 elm$parser$Parser$Advanced$chompWhile(dillonkearns$elm_markdown$Whitespace$isSpaceOrTab)), 11510 dillonkearns$elm_markdown$Whitespace$lineEnd)); 11511var dillonkearns$elm_markdown$Markdown$Parser$blockQuoteStarts = _List_fromArray( 11512 [ 11513 elm$parser$Parser$Advanced$symbol( 11514 A2( 11515 elm$parser$Parser$Advanced$Token, 11516 '>', 11517 elm$parser$Parser$Expecting('>'))), 11518 A2( 11519 elm$parser$Parser$Advanced$ignorer, 11520 elm$parser$Parser$Advanced$backtrackable( 11521 elm$parser$Parser$Advanced$symbol(dillonkearns$elm_markdown$Parser$Token$space)), 11522 elm$parser$Parser$Advanced$oneOf( 11523 _List_fromArray( 11524 [ 11525 elm$parser$Parser$Advanced$symbol( 11526 A2( 11527 elm$parser$Parser$Advanced$Token, 11528 '>', 11529 elm$parser$Parser$Expecting(' >'))), 11530 elm$parser$Parser$Advanced$symbol( 11531 A2( 11532 elm$parser$Parser$Advanced$Token, 11533 ' >', 11534 elm$parser$Parser$Expecting(' >'))), 11535 elm$parser$Parser$Advanced$symbol( 11536 A2( 11537 elm$parser$Parser$Advanced$Token, 11538 ' >', 11539 elm$parser$Parser$Expecting(' >'))) 11540 ]))) 11541 ]); 11542var dillonkearns$elm_markdown$Markdown$RawBlock$BlockQuote = function (a) { 11543 return {$: 'BlockQuote', a: a}; 11544}; 11545var dillonkearns$elm_markdown$Markdown$Parser$blockQuote = A2( 11546 elm$parser$Parser$Advanced$keeper, 11547 A2( 11548 elm$parser$Parser$Advanced$ignorer, 11549 A2( 11550 elm$parser$Parser$Advanced$ignorer, 11551 elm$parser$Parser$Advanced$succeed(dillonkearns$elm_markdown$Markdown$RawBlock$BlockQuote), 11552 elm$parser$Parser$Advanced$oneOf(dillonkearns$elm_markdown$Markdown$Parser$blockQuoteStarts)), 11553 elm$parser$Parser$Advanced$oneOf( 11554 _List_fromArray( 11555 [ 11556 elm$parser$Parser$Advanced$symbol(dillonkearns$elm_markdown$Parser$Token$space), 11557 elm$parser$Parser$Advanced$succeed(_Utils_Tuple0) 11558 ]))), 11559 A2( 11560 elm$parser$Parser$Advanced$ignorer, 11561 elm$parser$Parser$Advanced$getChompedString(dillonkearns$elm_markdown$Helpers$chompUntilLineEndOrEnd), 11562 dillonkearns$elm_markdown$Helpers$lineEndOrEnd)); 11563var dillonkearns$elm_markdown$Markdown$Parser$problemToString = function (problem) { 11564 switch (problem.$) { 11565 case 'Expecting': 11566 var string = problem.a; 11567 return 'Expecting ' + string; 11568 case 'ExpectingInt': 11569 return 'Expecting int'; 11570 case 'ExpectingHex': 11571 return 'Expecting hex'; 11572 case 'ExpectingOctal': 11573 return 'Expecting octal'; 11574 case 'ExpectingBinary': 11575 return 'Expecting binary'; 11576 case 'ExpectingFloat': 11577 return 'Expecting float'; 11578 case 'ExpectingNumber': 11579 return 'Expecting number'; 11580 case 'ExpectingVariable': 11581 return 'Expecting variable'; 11582 case 'ExpectingSymbol': 11583 var string = problem.a; 11584 return 'Expecting symbol ' + string; 11585 case 'ExpectingKeyword': 11586 var string = problem.a;
11587 return 'Expecting keyword ' + string; 11588 case 'ExpectingEnd': 11589 return 'Expecting keyword end'; 11590 case 'UnexpectedChar': 11591 return 'Unexpected char'; 11592 case 'Problem': 11593 var problemDescription = problem.a; 11594 return problemDescription; 11595 default: 11596 return 'Bad repeat'; 11597 } 11598}; 11599var dillonkearns$elm_markdown$Markdown$Parser$deadEndToString = function (deadEnd) { 11600 return 'Problem at row ' + (elm$core$String$fromInt(deadEnd.row) + ('\n' + dillonkearns$elm_markdown$Markdown$Parser$problemToString(deadEnd.problem))); 11601}; 11602var dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString = function (deadEnds) { 11603 return A2( 11604 elm$core$String$join, 11605 '\n', 11606 A2(elm$core$List$map, dillonkearns$elm_markdown$Markdown$Parser$deadEndToString, deadEnds)); 11607}; 11608var dillonkearns$elm_markdown$Markdown$Parser$exactlyFourSpaces = elm$parser$Parser$Advanced$oneOf( 11609 _List_fromArray( 11610 [ 11611 elm$parser$Parser$Advanced$symbol(dillonkearns$elm_markdown$Parser$Token$tab), 11612 A2( 11613 elm$parser$Parser$Advanced$ignorer, 11614 elm$parser$Parser$Advanced$backtrackable( 11615 elm$parser$Parser$Advanced$symbol(dillonkearns$elm_markdown$Parser$Token$space)), 11616 elm$parser$Parser$Advanced$oneOf( 11617 _List_fromArray( 11618 [ 11619 elm$parser$Parser$Advanced$symbol( 11620 A2( 11621 elm$parser$Parser$Advanced$Token, 11622 ' ', 11623 elm$parser$Parser$ExpectingSymbol('Indentation'))), 11624 elm$parser$Parser$Advanced$symbol( 11625 A2( 11626 elm$parser$Parser$Advanced$Token, 11627 ' \t', 11628 elm$parser$Parser$ExpectingSymbol('Indentation'))), 11629 elm$parser$Parser$Advanced$symbol( 11630 A2( 11631 elm$parser$Parser$Advanced$Token, 11632 ' \t', 11633 elm$parser$Parser$ExpectingSymbol('Indentation'))) 11634 ]))) 11635 ])); 11636var dillonkearns$elm_markdown$Markdown$RawBlock$IndentedCodeBlock = function (a) { 11637 return {$: 'IndentedCodeBlock', a: a}; 11638}; 11639var dillonkearns$elm_markdown$Markdown$Parser$indentedCodeBlock = A2( 11640 elm$parser$Parser$Advanced$keeper, 11641 A2( 11642 elm$parser$Parser$Advanced$ignorer, 11643 elm$parser$Parser$Advanced$succeed(dillonkearns$elm_markdown$Markdown$RawBlock$IndentedCodeBlock), 11644 dillonkearns$elm_markdown$Markdown$Parser$exactlyFourSpaces), 11645 A2( 11646 elm$parser$Parser$Advanced$ignorer, 11647 elm$parser$Parser$Advanced$getChompedString(dillonkearns$elm_markdown$Helpers$chompUntilLineEndOrEnd), 11648 dillonkearns$elm_markdown$Helpers$lineEndOrEnd)); 11649var dillonkearns$elm_markdown$Markdown$Block$Loose = {$: 'Loose'}; 11650var dillonkearns$elm_markdown$Markdown$Block$Tight = {$: 'Tight'}; 11651var dillonkearns$elm_markdown$Markdown$Parser$isTightBoolToListDisplay = function (isTight) { 11652 return isTight ? dillonkearns$elm_markdown$Markdown$Block$Tight : dillonkearns$elm_markdown$Markdown$Block$Loose; 11653}; 11654var dillonkearns$elm_markdown$Markdown$Parser$joinRawStringsWith = F3( 11655 function (joinWith, string1, string2) { 11656 var _n0 = _Utils_Tuple2(string1, string2); 11657 if (_n0.a === '') { 11658 return string2; 11659 } else { 11660 if (_n0.b === '') { 11661 return string1; 11662 } else { 11663 return _Utils_ap( 11664 string1, 11665 _Utils_ap(joinWith, string2)); 11666 } 11667 } 11668 }); 11669var dillonkearns$elm_markdown$Markdown$Parser$joinStringsPreserveAll = F2( 11670 function (string1, string2) { 11671 return string1 + ('\n' + string2); 11672 }); 11673var dillonkearns$elm_markdown$Markdown$RawBlock$OpenBlockOrParagraph = function (a) { 11674 return {$: 'OpenBlockOrParagraph', a: a}; 11675}; 11676var dillonkearns$elm_markdown$Markdown$Parser$innerParagraphParser = A2( 11677 elm$parser$Parser$Advanced$mapChompedString, 11678 F2( 11679 function (rawLine, _n0) { 11680 return dillonkearns$elm_markdown$Markdown$RawBlock$OpenBlockOrParagraph( 11681 dillonkearns$elm_markdown$Markdown$RawBlock$UnparsedInlines(rawLine)); 11682 }), 11683 dillonkearns$elm_markdown$Helpers$chompUntilLineEndOrEnd); 11684var dillonkearns$elm_markdown$Markdown$Parser$openBlockOrParagraphParser = A2(elm$parser$Parser$Advanced$ignorer, dillonkearns$elm_markdown$Markdown$Parser$innerParagraphParser, dillonkearns$elm_markdown$Helpers$lineEndOrEnd); 11685var dillonkearns$elm_markdown$Markdown$OrderedList$ListItem = F4( 11686 function (order, intended, marker, body) { 11687 return {body: body, intended: intended, marker: marker, order: order}; 11688 }); 11689var dillonkearns$elm_markdown$Markdown$OrderedList$orderedListEmptyItemParser = A2( 11690 elm$parser$Parser$Advanced$keeper, 11691 elm$parser$Parser$Advanced$succeed( 11692 function (bodyStartPos) { 11693 return _Utils_Tuple2(bodyStartPos, ''); 11694 }), 11695 A2(elm$parser$Parser$Advanced$ignorer, elm$parser$Parser$Advanced$getCol, dillonkearns$elm_markdown$Helpers$lineEndOrEnd)); 11696var dillonkearns$elm_markdown$Markdown$OrderedList$orderedListItemBodyParser = A2( 11697 elm$parser$Parser$Advanced$keeper, 11698 A2( 11699 elm$parser$Parser$Advanced$keeper, 11700 A2( 11701 elm$parser$Parser$Advanced$ignorer, 11702 elm$parser$Parser$Advanced$succeed( 11703 F2( 11704 function (bodyStartPos, item) { 11705 return _Utils_Tuple2(bodyStartPos, item); 11706 })), 11707 dillonkearns$elm_markdown$Parser$Extra$chompOneOrMore(dillonkearns$elm_markdown$Whitespace$isSpaceOrTab)), 11708 elm$parser$Parser$Advanced$getCol), 11709 A2( 11710 elm$parser$Parser$Advanced$ignorer, 11711 elm$parser$Parser$Advanced$getChompedString(dillonkearns$elm_markdown$Helpers$chompUntilLineEndOrEnd), 11712 dillonkearns$elm_markdown$Helpers$lineEndOrEnd)); 11713var dillonkearns$elm_markdown$Markdown$OrderedList$Dot = {$: 'Dot'}; 11714var dillonkearns$elm_markdown$Markdown$OrderedList$Paren = {$: 'Paren'}; 11715var dillonkearns$elm_markdown$Parser$Token$closingParen = A2( 11716 elm$parser$Parser$Advanced$Token, 11717 ')', 11718 elm$parser$Parser$Expecting('a `)`')); 11719var dillonkearns$elm_markdown$Parser$Token$dot = A2( 11720 elm$parser$Parser$Advanced$Token, 11721 '.', 11722 elm$parser$Parser$Expecting('a `.`')); 11723var dillonkearns$elm_markdown$Markdown$OrderedList$orderedListMarkerParser = elm$parser$Parser$Advanced$oneOf( 11724 _List_fromArray( 11725 [ 11726 A2( 11727 elm$parser$Parser$Advanced$ignorer, 11728 elm$parser$Parser$Advanced$succeed(dillonkearns$elm_markdown$Markdown$OrderedList$Dot), 11729 elm$parser$Parser$Advanced$symbol(dillonkearns$elm_markdown$Parser$Token$dot)), 11730 A2( 11731 elm$parser$Parser$Advanced$ignorer, 11732 elm$parser$Parser$Advanced$succeed(dillonkearns$elm_markdown$Markdown$OrderedList$Paren), 11733 elm$parser$Parser$Advanced$symbol(dillonkearns$elm_markdown$Parser$Token$closingParen)) 11734 ])); 11735var dillonkearns$elm_markdown$Parser$Extra$positiveInteger = A2( 11736 elm$parser$Parser$Advanced$mapChompedString, 11737 F2( 11738 function (str, _n0) { 11739 return A2( 11740 elm$core$Maybe$withDefault, 11741 0, 11742 elm$core$String$toInt(str)); 11743 }), 11744 dillonkearns$elm_markdown$Parser$Extra$chompOneOrMore(elm$core$Char$isDigit)); 11745var dillonkearns$elm_markdown$Markdown$OrderedList$positiveIntegerMaxOf9Digits = A2( 11746 elm$parser$Parser$Advanced$andThen, 11747 function (parsed) { 11748 return (parsed <= 999999999) ? elm$parser$Parser$Advanced$succeed(parsed) : elm$parser$Parser$Advanced$problem( 11749 elm$parser$Parser$Problem('Starting numbers must be nine digits or less.')); 11750 }, 11751 dillonkearns$elm_markdown$Parser$Extra$positiveInteger); 11752var dillonkearns$elm_markdown$Markdown$OrderedList$validateStartsWith1 = function (parsed) { 11753 if (parsed === 1) { 11754 return elm$parser$Parser$Advanced$succeed(parsed); 11755 } else { 11756 return elm$parser$Parser$Advanced$problem( 11757 elm$parser$Parser$Problem('Lists inside a paragraph or after a paragraph without a blank line must start with 1')); 11758 } 11759}; 11760var dillonkearns$elm_markdown$Markdown$OrderedList$orderedListOrderParser = function (previousWasBody) { 11761 return previousWasBody ? A2( 11762 elm$parser$Parser$Advanced$andThen, 11763 dillonkearns$elm_markdown$Markdown$OrderedList$validateStartsWith1, 11764 A2( 11765 elm$parser$Parser$Advanced$keeper, 11766 A2( 11767 elm$parser$Parser$Advanced$ignorer, 11768 elm$parser$Parser$Advanced$succeed(elm$core$Basics$identity), 11769 A2(dillonkearns$elm_markdown$Parser$Extra$upTo, 3, dillonkearns$elm_markdown$Whitespace$space)), 11770 dillonkearns$elm_markdown$Markdown$OrderedList$positiveIntegerMaxOf9Digits)) : A2( 11771 elm$parser$Parser$Advanced$keeper, 11772 A2( 11773 elm$parser$Parser$Advanced$ignorer, 11774 elm$parser$Parser$Advanced$succeed(elm$core$Basics$identity), 11775 A2(dillonkearns$elm_markdown$Parser$Extra$upTo, 3, dillonkearns$elm_markdown$Whitespace$space)), 11776 dillonkearns$elm_markdown$Markdown$OrderedList$positiveIntegerMaxOf9Digits); 11777}; 11778var dillonkearns$elm_markdown$Markdown$OrderedList$parser = function (previousWasBody) { 11779 var parseSubsequentItem = F5( 11780 function (start, order, marker, mid, _n0) { 11781 var end = _n0.a; 11782 var body = _n0.b; 11783 return ((end - mid) <= 4) ? A4(dillonkearns$elm_markdown$Markdown$OrderedList$ListItem, order, end
11783- start, marker, body) : A4( 11784 dillonkearns$elm_markdown$Markdown$OrderedList$ListItem, 11785 order, 11786 (mid - start) + 1, 11787 marker, 11788 _Utils_ap( 11789 A2(elm$core$String$repeat, (end - mid) - 1, ' '), 11790 body)); 11791 }); 11792 return A2( 11793 elm$parser$Parser$Advanced$keeper, 11794 A2( 11795 elm$parser$Parser$Advanced$keeper, 11796 A2( 11797 elm$parser$Parser$Advanced$keeper, 11798 A2( 11799 elm$parser$Parser$Advanced$keeper, 11800 A2( 11801 elm$parser$Parser$Advanced$keeper, 11802 elm$parser$Parser$Advanced$succeed(parseSubsequentItem), 11803 elm$parser$Parser$Advanced$getCol), 11804 elm$parser$Parser$Advanced$backtrackable( 11805 dillonkearns$elm_markdown$Markdown$OrderedList$orderedListOrderParser(previousWasBody))), 11806 elm$parser$Parser$Advanced$backtrackable(dillonkearns$elm_markdown$Markdown$OrderedList$orderedListMarkerParser)), 11807 elm$parser$Parser$Advanced$getCol), 11808 previousWasBody ? dillonkearns$elm_markdown$Markdown$OrderedList$orderedListItemBodyParser : elm$parser$Parser$Advanced$oneOf( 11809 _List_fromArray( 11810 [dillonkearns$elm_markdown$Markdown$OrderedList$orderedListEmptyItemParser, dillonkearns$elm_markdown$Markdown$OrderedList$orderedListItemBodyParser]))); 11811}; 11812var dillonkearns$elm_markdown$Markdown$RawBlock$OrderedListBlock = F6( 11813 function (a, b, c, d, e, f) { 11814 return {$: 'OrderedListBlock', a: a, b: b, c: c, d: d, e: e, f: f}; 11815 }); 11816var dillonkearns$elm_markdown$Markdown$Parser$orderedListBlock = function (previousWasBody) { 11817 return A2( 11818 elm$parser$Parser$Advanced$map, 11819 function (item) { 11820 return A6(dillonkearns$elm_markdown$Markdown$RawBlock$OrderedListBlock, true, item.intended, item.marker, item.order, _List_Nil, item.body); 11821 }, 11822 dillonkearns$elm_markdown$Markdown$OrderedList$parser(previousWasBody)); 11823}; 11824var dillonkearns$elm_markdown$Markdown$Parser$thisIsDefinitelyNotAnHtmlTag = elm$parser$Parser$Advanced$oneOf( 11825 _List_fromArray( 11826 [ 11827 elm$parser$Parser$Advanced$token( 11828 A2( 11829 elm$parser$Parser$Advanced$Token, 11830 ' ', 11831 elm$parser$Parser$Expecting(' '))), 11832 elm$parser$Parser$Advanced$token( 11833 A2( 11834 elm$parser$Parser$Advanced$Token, 11835 '>', 11836 elm$parser$Parser$Expecting('>'))), 11837 A2( 11838 elm$parser$Parser$Advanced$ignorer, 11839 A2( 11840 elm$parser$Parser$Advanced$ignorer, 11841 A2( 11842 elm$parser$Parser$Advanced$chompIf, 11843 elm$core$Char$isAlpha, 11844 elm$parser$Parser$Expecting('Alpha')), 11845 elm$parser$Parser$Advanced$chompWhile( 11846 function (c) { 11847 return elm$core$Char$isAlphaNum(c) || _Utils_eq( 11848 c, 11849 _Utils_chr('-')); 11850 })), 11851 elm$parser$Parser$Advanced$oneOf( 11852 _List_fromArray( 11853 [ 11854 elm$parser$Parser$Advanced$token( 11855 A2( 11856 elm$parser$Parser$Advanced$Token, 11857 ':', 11858 elm$parser$Parser$Expecting(':'))), 11859 elm$parser$Parser$Advanced$token( 11860 A2( 11861 elm$parser$Parser$Advanced$Token, 11862 '@', 11863 elm$parser$Parser$Expecting('@'))), 11864 elm$parser$Parser$Advanced$token( 11865 A2( 11866 elm$parser$Parser$Advanced$Token, 11867 '\\', 11868 elm$parser$Parser$Expecting('\\'))), 11869 elm$parser$Parser$Advanced$token( 11870 A2( 11871 elm$parser$Parser$Advanced$Token, 11872 '+', 11873 elm$parser$Parser$Expecting('+'))), 11874 elm$parser$Parser$Advanced$token( 11875 A2( 11876 elm$parser$Parser$Advanced$Token, 11877 '.', 11878 elm$parser$Parser$Expecting('.'))) 11879 ]))) 11880 ])); 11881var dillonkearns$elm_markdown$Markdown$Parser$parseAsParagraphInsteadOfHtmlBlock = elm$parser$Parser$Advanced$backtrackable( 11882 A2( 11883 elm$parser$Parser$Advanced$mapChompedString, 11884 F2( 11885 function (rawLine, _n0) { 11886 return dillonkearns$elm_markdown$Markdown$RawBlock$OpenBlockOrParagraph( 11887 dillonkearns$elm_markdown$Markdown$RawBlock$UnparsedInlines(rawLine)); 11888 }), 11889 A2( 11890 elm$parser$Parser$Advanced$ignorer, 11891 A2( 11892 elm$parser$Parser$Advanced$ignorer, 11893 A2( 11894 elm$parser$Parser$Advanced$ignorer, 11895 elm$parser$Parser$Advanced$token( 11896 A2( 11897 elm$parser$Parser$Advanced$Token, 11898 '<', 11899 elm$parser$Parser$Expecting('<'))), 11900 dillonkearns$elm_markdown$Markdown$Parser$thisIsDefinitelyNotAnHtmlTag), 11901 dillonkearns$elm_markdown$Helpers$chompUntilLineEndOrEnd), 11902 dillonkearns$elm_markdown$Helpers$lineEndOrEnd)));
11903var dillonkearns$elm_markdown$Markdown$RawBlock$LevelOne = {$: 'LevelOne'}; 11904var dillonkearns$elm_markdown$Markdown$RawBlock$LevelTwo = {$: 'LevelTwo'}; 11905var dillonkearns$elm_markdown$Markdown$RawBlock$SetextLine = F2( 11906 function (a, b) { 11907 return {$: 'SetextLine', a: a, b: b}; 11908 }); 11909var dillonkearns$elm_markdown$Parser$Token$equals = A2( 11910 elm$parser$Parser$Advanced$Token, 11911 '=', 11912 elm$parser$Parser$Expecting('a `=`')); 11913var dillonkearns$elm_markdown$Parser$Token$minus = A2( 11914 elm$parser$Parser$Advanced$Token, 11915 '-', 11916 elm$parser$Parser$Expecting('a `-`')); 11917var dillonkearns$elm_markdown$Markdown$Parser$setextLineParser = function () { 11918 var setextLevel = F3( 11919 function (level, levelToken, levelChar) { 11920 return A2( 11921 elm$parser$Parser$Advanced$ignorer, 11922 A2( 11923 elm$parser$Parser$Advanced$ignorer, 11924 elm$parser$Parser$Advanced$succeed(level), 11925 elm$parser$Parser$Advanced$token(levelToken)), 11926 elm$parser$Parser$Advanced$chompWhile( 11927 elm$core$Basics$eq(levelChar))); 11928 }); 11929 return A2( 11930 elm$parser$Parser$Advanced$mapChompedString, 11931 F2( 11932 function (raw, level) { 11933 return A2(dillonkearns$elm_markdown$Markdown$RawBlock$SetextLine, level, raw); 11934 }), 11935 A2( 11936 elm$parser$Parser$Advanced$keeper, 11937 A2( 11938 elm$parser$Parser$Advanced$ignorer, 11939 elm$parser$Parser$Advanced$succeed(elm$core$Basics$identity), 11940 dillonkearns$elm_markdown$Whitespace$upToThreeSpaces), 11941 A2( 11942 elm$parser$Parser$Advanced$ignorer, 11943 A2( 11944 elm$parser$Parser$Advanced$ignorer, 11945 elm$parser$Parser$Advanced$oneOf( 11946 _List_fromArray( 11947 [ 11948 A3( 11949 setextLevel, 11950 dillonkearns$elm_markdown$Markdown$RawBlock$LevelOne, 11951 dillonkearns$elm_markdown$Parser$Token$equals, 11952 _Utils_chr('=')), 11953 A3( 11954 setextLevel, 11955 dillonkearns$elm_markdown$Markdown$RawBlock$LevelTwo, 11956 dillonkearns$elm_markdown$Parser$Token$minus, 11957 _Utils_chr('-')) 11958 ])), 11959 elm$parser$Parser$Advanced$chompWhile(dillonkearns$elm_markdown$Whitespace$isSpaceOrTab)), 11960 dillonkearns$elm_markdown$Helpers$lineEndOrEnd))); 11961}(); 11962var dillonkearns$elm_markdown$Markdown$RawBlock$TableDelimiter = function (a) { 11963 return {$: 'TableDelimiter', a: a}; 11964}; 11965var dillonkearns$elm_markdown$Markdown$Table$TableDelimiterRow = F2( 11966 function (a, b) { 11967 return {$: 'TableDelimiterRow', a: a, b: b}; 11968 }); 11969var dillonkearns$elm_markdown$Markdown$TableParser$chompSinglelineWhitespace = elm$parser$Parser$Advanced$chompWhile(dillonkearns$elm_markdown$Whitespace$isSpaceOrTab); 11970var dillonkearns$elm_markdown$Parser$Token$parseString = function (str) { 11971 return elm$parser$Parser$Advanced$token( 11972 A2( 11973 elm$parser$Parser$Advanced$Token, 11974 str, 11975 elm$parser$Parser$Expecting(str))); 11976}; 11977var dillonkearns$elm_markdown$Markdown$TableParser$requirePipeIfNotFirst = function (columns) { 11978 return elm$core$List$isEmpty(columns) ? elm$parser$Parser$Advanced$oneOf( 11979 _List_fromArray( 11980 [ 11981 dillonkearns$elm_markdown$Parser$Token$parseString('|'), 11982 elm$parser$Parser$Advanced$succeed(_Utils_Tuple0) 11983 ])) : dillonkearns$elm_markdown$Parser$Token$parseString('|'); 11984}; 11985var dillonkearns$elm_markdown$Parser$Extra$maybeChomp = function (condition) { 11986 return elm$parser$Parser$Advanced$oneOf( 11987 _List_fromArray( 11988 [ 11989 A2( 11990 elm$parser$Parser$Advanced$chompIf, 11991 condition, 11992 elm$parser$Parser$Problem('Character not found')), 11993 elm$parser$Parser$Advanced$succeed(_Utils_Tuple0) 11994 ])); 11995}; 11996var dillonkearns$elm_markdown$Markdown$TableParser$delimiterRowHelp = function (revDelimiterColumns) { 11997 return elm$parser$Parser$Advanced$oneOf( 11998 _List_fromArray( 11999 [ 12000 elm$parser$Parser$Advanced$backtrackable( 12001 A2( 12002 elm$parser$Parser$Advanced$map, 12003 function (_n0) { 12004 return elm$parser$Parser$Advanced$Done(revDelimiterColumns); 12005 }, 12006 dillonkearns$elm_markdown$Parser$Token$parseString('|\n'))), 12007 A2( 12008 elm$parser$Parser$Advanced$map, 12009 function (_n1) { 12010 return elm$parser$Parser$Advanced$Done(revDelimiterColumns); 12011 }, 12012 dillonkearns$elm_markdown$Parser$Token$parseString('\n')), 12013 A2( 12014 elm$parser$Parser$Advanced$map, 12015 function (_n2) { 12016 return elm$parser$Parser$Advanced$Done(revDelimiterColumns); 12017 }, 12018 elm$parser$Parser$Advanced$end( 12019 elm$parser$Parser$Expecting('end'))), 12020 elm$parser$Parser$Advanced$backtrackable( 12021 A2( 12022 elm$parser$Parser$Advanced$ignorer, 12023 A2( 12024 elm$parser$Parser$Advanced$ignorer, 12025 elm$parser$Parser$Advanced$succeed( 12026 elm$parser$Parser$Advanced$Done(revDelimiterColumns)), 12027 dillonkearns$elm_markdown$Parser$Token$parseString('|')), 12028 elm$parser$Parser$Advanced$end( 12029 elm$parser$Parser$Expecting('end')))), 12030 A2( 12031 elm$parser$Parser$Advanced$keeper, 12032 A2( 12033 elm$parser$Parser$Advanced$ignorer, 12034 A2( 12035 elm$parser$Parser$Advanced$ignorer, 12036 elm$parser$Parser$Advanced$succeed( 12037 function (column) { 12038 return elm$parser$Parser$Advanced$Loop( 12039 A2(elm$core$List$cons, column, revDelimiterColumns)); 12040 }), 12041 dillonkearns$elm_markdown$Markdown$TableParser$requirePipeIfNotFirst(revDelimiterColumns)), 12042 dillonkearns$elm_markdown$Markdown$TableParser$chompSinglelineWhitespace), 12043 A2( 12044 elm$parser$Parser$Advanced$ignorer, 12045 elm$parser$Parser$Advanced$getChompedString( 12046 A2( 12047 elm$parser$Parser$Advanced$ignorer, 12048 A2( 12049 elm$parser$Parser$Advanced$ignorer, 12050 A2( 12051 elm$parser$Parser$Advanced$ignorer, 12052 elm$parser$Parser$Advanced$succeed(_Utils_Tuple0), 12053 dillonkearns$elm_markdown$Parser$Extra$maybeChomp( 12054 function (c) { 12055 return _Utils_eq( 12056 c, 12057 _Utils_chr(':')); 12058 })), 12059 dillonkearns$elm_markdown$Parser$Extra$chompOneOrMore( 12060 function (c) { 12061 return _Utils_eq( 12062 c, 12063 _Utils_chr('-')); 12064 })), 12065 dillonkearns$elm_markdown$Parser$Extra$maybeChomp( 12066 function (c) { 12067 return _Utils_eq( 12068 c, 12069 _Utils_chr(':')); 12070 }))), 12071 dillonkearns$elm_markdown$Markdown$TableParser$chompSinglelineWhitespace)) 12072 ])); 12073}; 12074var dillonkearns$elm_markdown$Markdown$Block$AlignCenter = {$: 'AlignCenter'}; 12075var dillonkearns$elm_markdown$Markdown$Block$AlignLeft = {$: 'AlignLeft'}; 12076var dillonkearns$elm_markdown$Markdown$Block$AlignRight = {$: 'AlignRight'}; 12077var dillonkearns$elm_markdown$Markdown$TableParser$delimiterToAlignment = function (cell) { 12078 var _n0 = _Utils_Tuple2( 12079 A2(elm$core$String$startsWith, ':', cell), 12080 A2(elm$core$String$endsWith, ':', cell)); 12081 if (_n0.a) { 12082 if (_n0.b) { 12083 return elm$core$Maybe$Just(dillonkearns$elm_markdown$Markdown$Block$AlignCenter); 12084 } else { 12085 return elm$core$Maybe$Just(dillonkearns$elm_markdown$Markdown$Block$AlignLeft); 12086 } 12087 } else { 12088 if (_n0.b) { 12089 return elm$core$Maybe$Just(dillonkearns$elm_markdown$Markdown$Block$AlignRight); 12090 } else { 12091 return elm$core$Maybe$Nothing; 12092 } 12093 } 12094}; 12095var dillonkearns$elm_markdown$Markdown$TableParser$delimiterRowParser = A2( 12096 elm$parser$Parser$Advanced$andThen, 12097 function (delimiterRow) { 12098 var trimmed = delimiterRow.a.trimmed; 12099 var headers = delimiterRow.b; 12100 return elm$core$List$isEmpty(headers) ? elm$parser$Parser$Advanced$problem( 12101 elm$parser$Parser$Expecting('Must have at least one column in delimiter row.')) : (((elm$core$List$length(headers) === 1) && (!(A2(elm$core$String$startsWith, '|', trimmed) && A2(elm$core$String$endsWith, '|', trimmed)))) ? elm$parser$Parser$Advanced$problem( 12102 elm$parser$Parser$Problem('Tables with a single column must have pipes at the start and end of the delimiter row to avoid ambiguity.')) : elm$parser$Parser$Advanced$succeed(delimiterRow)); 12103 }, 12104 A2( 12105 elm$parser$Parser$Advanced$mapChompedString, 12106 F2( 12107 function (delimiterText, revDelimiterColumns) { 12108 return A2( 12109 dillonkearns$elm_markdown$Markdown$Table$TableDelimiterRow, 12110 { 12111 raw: delimiterText, 12112 trimmed: elm$core$String$trim(delimiterText) 12113 }, 12114 A2( 12115 elm$core$List$map, 12116 dillonkearns$elm_markdown$Markdown$TableParser$delimiterToAlignment, 12117 elm$core$List$reverse(revDelimiterColumns))); 12118 }), 12119 A2(elm$parser$Parser$Advanced$loop, _List_Nil, dillonkearns$elm_markdown$Markdown$TableParser$delimiterRowHelp))); 12120var dillonkearns$elm_markdown$Markdown$Parser$tableDelimiterInOpenParagraph = A2(elm$parser$Parser$Advanced$map, dillonkearns$elm_markdown$Markdown$RawBlock$TableDelimiter, dillonkearns$elm_markdown$Markdown$TableParser$delimiterRowParser); 12121var dillonkearns$elm_markdown$Markdown$RawBlock$Table = function (a) { 12122 return {$: 'Table', a: a}; 12123}; 12124var dillonkearns$elm_markdown$Markdown$Table$Table = F2( 12125 function (a, b) { 12126 return {$: 'Table', a: a, b: b}; 12127 }); 12128var dillonkearns$elm_markdown$Markdown$TableParser$parseCellHelper = function (_n0) { 12129 var curr = _n0.a; 12130 var acc = _n0.b; 12131 var _return = A2( 12132 elm$core$Maybe$withDefault, 12133 elm$parser$Parser$Advanced$Done(acc), 12134 A2( 12135 elm$core$Maybe$map, 12136 function (cell) { 12137 return elm$parser$Parser$Advanced$Done( 12138 A2(elm$core$List$cons, cell, acc)); 12139 }, 12140 curr)); 12141 var finishCell = A2( 12142 elm$core$Maybe$withDefault, 12143 elm$parser$Parser$Advanced$Loop( 12144 _Utils_Tuple2(elm$core$Maybe$Nothing, acc)), 12145 A2( 12146 elm$core$Maybe$map, 12147 function (cell) { 12148 return elm$parser$Parser$Advanced$Loop( 12149 _Utils_Tuple2( 12150 elm$core$Maybe$Nothing, 12151 A2(elm$core$List$cons, cell, acc))); 12152 }, 12153 curr)); 12154 var addToCurrent = function (c) { 12155 return _Utils_ap( 12156 A2(elm$core$Maybe$withDefault, '', curr), 12157 c); 12158 }; 12159 var continueCell = function (c) { 12160 return elm$parser$Parser$Advanced$Loop( 12161 _Utils_Tuple2( 12162 elm$core$Maybe$Just( 12163 addToCurrent(c)), 12164 acc)); 12165 }; 12166 return elm$parser$Parser$Advanced$oneOf( 12167 _List_fromArray( 12168 [ 12169 A2( 12170 elm$parser$Parser$Advanced$map, 12171 function (_n1) { 12172 return _return; 12173 }, 12174 dillonkearns$elm_markdown$Parser$Token$parseString('|\n')), 12175 A2( 12176 elm$parser$Parser$Advanced$map, 12177 function (_n2) { 12178 return _return; 12179 }, 12180 dillonkearns$elm_markdown$Parser$Token$parseString('\n')), 12181 A2( 12182 elm$parser$Parser$Advanced$map, 12183 function (_n3) { 12184 return _return; 12185 }, 12186 elm$parser$Parser$Advanced$end( 12187 elm$parser$Parser$Expecting('end'))), 12188 A2( 12189 elm$parser$Parser$Advanced$ignorer, 12190 elm$parser$Parser$Advanced$backtrackable( 12191 elm$parser$Parser$Advanced$succeed( 12192 continueCell('|'))), 12193 dillonkearns$elm_markdown$Parser$Token$parseString('\\\\|')), 12194 A2( 12195 elm$parser$Parser$Advanced$ignorer, 12196 elm$parser$Parser$Advanced$backtrackable( 12197 elm$parser$Parser$Advanced$succeed( 12198 continueCell('\\'))), 12199 dillonkearns$elm_markdown$Parser$Token$parseString('\\\\')), 12200 A2( 12201 elm$parser$Parser$Advanced$ignorer, 12202 elm$parser$Parser$Advanced$backtrackable( 12203 elm$parser$Parser$Advanced$succeed( 12204 continueCell('|'))), 12205 dillonkearns$elm_markdown$Parser$Token$parseString('\\|')), 12206 A2( 12207 elm$parser$Parser$Advanced$ignorer, 12208 elm$parser$Parser$Advanced$backtrackable( 12209 elm$parser$Parser$Advanced$succeed(finishCell)), 12210 dillonkearns$elm_markdown$Parser$Token$parseString('|')), 12211 A2( 12212 elm$parser$Parser$Advanced$mapChompedString, 12213 F2( 12214 function (_char, _n4) { 12215 return continueCell(_char); 12216 }), 12217 A2( 12218 elm$parser$Parser$Advanced$chompIf, 12219 elm$core$Basics$always(true), 12220 elm$parser$Parser$Problem('No character found'))) 12221 ])); 12222}; 12223var dillonkearns$elm_markdown$Markdown$TableParser$parseCells = A2( 12224 elm$parser$Parser$Advanced$map, 12225 A2( 12226 elm$core$List$foldl, 12227 F2( 12228 function (cell, acc) { 12229 return A2( 12230 elm$core$List$cons, 12231 elm$core$String$trim(cell), 12232 acc); 12233 }), 12234 _List_Nil), 12235 A2( 12236 elm$parser$Parser$Advanced$loop, 12237 _Utils_Tuple2(elm$core$Maybe$Nothing, _List_Nil), 12238 dillonkearns$elm_markdown$Markdown$TableParser$parseCellHelper)); 12239var dillonkearns$elm_markdown$Markdown$TableParser$rowParser = A2( 12240 elm$parser$Parser$Advanced$keeper, 12241 A2( 12242 elm$parser$Parser$Advanced$ignorer, 12243 elm$parser$Parser$Advanced$succeed(elm$core$Basics$identity), 12244 elm$parser$Parser$Advanced$oneOf( 12245 _List_fromArray( 12246 [ 12247 dillonkearns$elm_markdown$Parser$Token$parseString('|'), 12248 elm$parser$Parser$Advanced$succeed(_Utils_Tuple0) 12249 ]))), 12250 dillonkearns$elm_markdown$Markdown$TableParser$parseCells); 12251var elm$core$List$takeReverse = F3( 12252 function (n, list, kept) { 12253 takeReverse: 12254 while (true) { 12255 if (n <= 0) { 12256 return kept; 12257 } else { 12258 if (!list.b) { 12259 return kept; 12260 } else { 12261 var x = list.a; 12262 var xs = list.b; 12263 var $temp$n = n - 1, 12264 $temp$list = xs, 12265 $temp$kept = A2(elm$core$List$cons, x, kept); 12266 n = $temp$n; 12267 list = $temp$list; 12268 kept = $temp$kept; 12269 continue takeReverse; 12270 } 12271 } 12272 } 12273 }); 12274var elm$core$List$takeTailRec = F2( 12275 function (n, list) { 12276 return elm$core$List$reverse( 12277 A3(elm$core$List$takeReverse, n, list, _List_Nil)); 12278 }); 12279var elm$core$List$takeFast = F3( 12280 function (ctr, n, list) { 12281 if (n <= 0) { 12282 return _List_Nil; 12283 } else { 12284 var _n0 = _Utils_Tuple2(n, list); 12285 _n0$1: 12286 while (true) { 12287 _n0$5: 12288 while (true) { 12289 if (!_n0.b.b) { 12290 return list; 12291 } else { 12292 if (_n0.b.b.b) { 12293 switch (_n0.a) { 12294 case 1: 12295 break _n0$1; 12296 case 2: 12297 var _n2 = _n0.b; 12298 var x = _n2.a; 12299 var _n3 = _n2.b; 12300 var y = _n3.a; 12301 return _List_fromArray( 12302 [x, y]); 12303 case 3: 12304 if (_n0.b.b.b.b) { 12305 var _n4 = _n0.b; 12306 var x = _n4.a; 12307 var _n5 = _n4.b; 12308 var y = _n5.a; 12309 var _n6 = _n5.b; 12310 var z = _n6.a; 12311 return _List_fromArray( 12312 [x, y, z]); 12313 } else { 12314 break _n0$5; 12315 } 12316 default: 12317 if (_n0.b.b.b.b && _n0.b.b.b.b.b) { 12318 var _n7 = _n0.b; 12319 var x = _n7.a; 12320 var _n8 = _n7.b; 12321 var y = _n8.a; 12322 var _n9 = _n8.b; 12323 var z = _n9.a; 12324 var _n10 = _n9.b; 12325 var w = _n10.a; 12326 var tl = _n10.b; 12327 return (ctr > 1000) ? A2( 12328 elm$core$List$cons, 12329 x, 12330 A2( 12331 elm$core$List$cons, 12332 y, 12333 A2( 12334 elm$core$List$cons, 12335 z, 12336 A2( 12337 elm$core$List$cons, 12338 w, 12339 A2(elm$core$List$takeTailRec, n - 4, tl))))) : A2( 12340 elm$core$List$cons, 12341 x, 12342 A2( 12343 elm$core$List$cons, 12344 y, 12345 A2( 12346 elm$core$List$cons, 12347 z, 12348 A2( 12349 elm$core$List$cons, 12350 w, 12351 A3(elm$core$List$takeFast, ctr + 1, n - 4, tl))))); 12352 } else { 12353 break _n0$5; 12354 } 12355 } 12356 } else { 12357 if (_n0.a === 1) { 12358 break _n0$1; 12359 } else { 12360 break _n0$5; 12361 } 12362 } 12363 } 12364 } 12365 return list; 12366 } 12367 var _n1 = _n0.b; 12368 var x = _n1.a; 12369 return _List_fromArray( 12370 [x]); 12371 } 12372 }); 12373var elm$core$List$take = F2( 12374 function (n, list) { 12375 return A3(elm$core$List$takeFast, 0, n, list); 12376 }); 12377var dillonkearns$elm_markdown$Markdown$TableParser$standardizeRowLength = F2( 12378 function (expectedLength, row) { 12379 var rowLength = elm$core$List$length(row); 12380 var _n0 = A2(elm$core$Basics$compare, expectedLength, rowLength); 12381 switch (_n0.$) { 12382 case 'LT': 12383 return A2(elm$core$List$take, expectedLength, row); 12384 case 'EQ': 12385 return row; 12386 default: 12387 return _Utils_ap( 12388 row, 12389 A2(elm$core$List$repeat, expectedLength - rowLength, '')); 12390 } 12391 }); 12392var elm$core$List$any = F2( 12393 function (isOkay, list) { 12394 any: 12395 while (true) { 12396 if (!list.b) { 12397 return false;
12398 } else { 12399 var x = list.a; 12400 var xs = list.b; 12401 if (isOkay(x)) { 12402 return true; 12403 } else { 12404 var $temp$isOkay = isOkay, 12405 $temp$list = xs; 12406 isOkay = $temp$isOkay; 12407 list = $temp$list; 12408 continue any; 12409 } 12410 } 12411 } 12412 }); 12413var elm$core$List$all = F2( 12414 function (isOkay, list) { 12415 return !A2( 12416 elm$core$List$any, 12417 A2(elm$core$Basics$composeL, elm$core$Basics$not, isOkay), 12418 list); 12419 }); 12420var dillonkearns$elm_markdown$Markdown$TableParser$bodyRowParser = function (expectedRowLength) { 12421 return A2( 12422 elm$parser$Parser$Advanced$andThen, 12423 function (row) { 12424 return (elm$core$List$isEmpty(row) || A2(elm$core$List$all, elm$core$String$isEmpty, row)) ? elm$parser$Parser$Advanced$problem( 12425 elm$parser$Parser$Problem('A line must have at least one column')) : elm$parser$Parser$Advanced$succeed( 12426 A2(dillonkearns$elm_markdown$Markdown$TableParser$standardizeRowLength, expectedRowLength, row)); 12427 }, 12428 dillonkearns$elm_markdown$Markdown$TableParser$rowParser); 12429}; 12430var dillonkearns$elm_markdown$Markdown$Parser$tableRowIfTableStarted = function (_n0) { 12431 var headers = _n0.a; 12432 var body = _n0.b; 12433 return A2( 12434 elm$parser$Parser$Advanced$map, 12435 function (row) { 12436 return dillonkearns$elm_markdown$Markdown$RawBlock$Table( 12437 A2( 12438 dillonkearns$elm_markdown$Markdown$Table$Table, 12439 headers, 12440 _Utils_ap( 12441 body, 12442 _List_fromArray( 12443 [row])))); 12444 }, 12445 dillonkearns$elm_markdown$Markdown$TableParser$bodyRowParser( 12446 elm$core$List$length(headers))); 12447}; 12448var dillonkearns$elm_markdown$Markdown$Block$H1 = {$: 'H1'}; 12449var dillonkearns$elm_markdown$Markdown$Block$H2 = {$: 'H2'}; 12450var dillonkearns$elm_markdown$Markdown$Block$H3 = {$: 'H3'}; 12451var dillonkearns$elm_markdown$Markdown$Block$H4 = {$: 'H4'}; 12452var dillonkearns$elm_markdown$Markdown$Block$H5 = {$: 'H5'}; 12453var dillonkearns$elm_markdown$Markdown$Block$H6 = {$: 'H6'}; 12454var dillonkearns$elm_markdown$Markdown$Parser$toHeading = function (level) { 12455 switch (level) { 12456 case 1: 12457 return elm$core$Result$Ok(dillonkearns$elm_markdown$Markdown$Block$H1); 12458 case 2: 12459 return elm$core$Result$Ok(dillonkearns$elm_markdown$Markdown$Block$H2); 12460 case 3: 12461 return elm$core$Result$Ok(dillonkearns$elm_markdown$Markdown$Block$H3); 12462 case 4: 12463 return elm$core$Result$Ok(dillonkearns$elm_markdown$Markdown$Block$H4); 12464 case 5: 12465 return elm$core$Result$Ok(dillonkearns$elm_markdown$Markdown$Block$H5); 12466 case 6: 12467 return elm$core$Result$Ok(dillonkearns$elm_markdown$Markdown$Block$H6); 12468 default: 12469 return elm$core$Result$Err( 12470 elm$parser$Parser$Expecting( 12471 'A heading with 1 to 6 #\'s, but found ' + elm$core$String$fromInt(level))); 12472 } 12473}; 12474var dillonkearns$elm_markdown$Markdown$RawBlock$UnorderedListBlock = F4( 12475 function (a, b, c, d) { 12476 return {$: 'UnorderedListBlock', a: a, b: b, c: c, d: d}; 12477 }); 12478var dillonkearns$elm_markdown$Markdown$ListItem$EmptyItem = {$: 'EmptyItem'}; 12479var dillonkearns$elm_markdown$Markdown$ListItem$PlainItem = function (a) { 12480 return {$: 'PlainItem', a: a}; 12481}; 12482var dillonkearns$elm_markdown$Markdown$ListItem$TaskItem = F2( 12483 function (a, b) { 12484 return {$: 'TaskItem', a: a, b: b}; 12485 }); 12486var dillonkearns$elm_markdown$Markdown$UnorderedList$getIntendedCodeItem = F4( 12487 function (markerStartPos, listMarker, markerEndPos, _n0) { 12488 var bodyStartPos = _n0.a; 12489 var item = _n0.b; 12490 var spaceNum = bodyStartPos - markerEndPos; 12491 if (spaceNum <= 4) { 12492 return _Utils_Tuple3(listMarker, bodyStartPos - markerStartPos, item); 12493 } else { 12494 var intendedCodeItem = function () { 12495 switch (item.$) { 12496 case 'TaskItem': 12497 var completion = item.a; 12498 var string = item.b; 12499 return A2( 12500 dillonkearns$elm_markdown$Markdown$ListItem$TaskItem, 12501 completion, 12502 _Utils_ap( 12503 A2(elm$core$String$repeat, spaceNum - 1, ' '), 12504 string)); 12505 case 'PlainItem': 12506 var string = item.a; 12507 return dillonkearns$elm_markdown$Markdown$ListItem$PlainItem( 12508 _Utils_ap( 12509 A2(elm$core$String$repeat, spaceNum - 1, ' '), 12510 string)); 12511 default: 12512 return dillonkearns$elm_markdown$Markdown$ListItem$EmptyItem; 12513 } 12514 }(); 12515 return _Utils_Tuple3(listMarker, (markerEndPos - markerStartPos) + 1, intendedCodeItem); 12516 } 12517 }); 12518var dillonkearns$elm_markdown$Markdown$UnorderedList$unorderedListEmptyItemParser = A2( 12519 elm$parser$Parser$Advanced$keeper, 12520 elm$parser$Parser$Advanced$succeed( 12521 function (bodyStartPos) { 12522 return _Utils_Tuple2(bodyStartPos, dillonkearns$elm_markdown$Markdown$ListItem$EmptyItem); 12523 }), 12524 A2(elm$parser$Parser$Advanced$ignorer, elm$parser$Parser$Advanced$getCol, dillonkearns$elm_markdown$Helpers$lineEndOrEnd)); 12525var dillonkearns$elm_markdown$Markdown$ListItem$Complete = {$: 'Complete'}; 12526var dillonkearns$elm_markdown$Markdown$ListItem$Incomplete = {$: 'Incomplete'}; 12527var dillonkearns$elm_markdown$Markdown$ListItem$taskItemParser = elm$parser$Parser$Advanced$oneOf( 12528 _List_fromArray( 12529 [ 12530 A2( 12531 elm$parser$Parser$Advanced$ignorer, 12532 elm$parser$Parser$Advanced$succeed(dillonkearns$elm_markdown$Markdown$ListItem$Complete), 12533 elm$parser$Parser$Advanced$symbol( 12534 A2( 12535 elm$parser$Parser$Advanced$Token, 12536 '[x] ', 12537 elm$parser$Parser$ExpectingSymbol('[x] ')))), 12538 A2( 12539 elm$parser$Parser$Advanced$ignorer, 12540 elm$parser$Parser$Advanced$succeed(dillonkearns$elm_markdown$Markdown$ListItem$Complete), 12541 elm$parser$Parser$Advanced$symbol( 12542 A2( 12543 elm$parser$Parser$Advanced$Token, 12544 '[X] ', 12545 elm$parser$Parser$ExpectingSymbol('[X] ')))), 12546 A2( 12547 elm$parser$Parser$Advanced$ignorer, 12548 elm$parser$Parser$Advanced$succeed(dillonkearns$elm_markdown$Markdown$ListItem$Incomplete), 12549 elm$parser$Parser$Advanced$symbol( 12550 A2( 12551 elm$parser$Parser$Advanced$Token, 12552 '[ ] ', 12553 elm$parser$Parser$ExpectingSymbol('[ ] ')))) 12554 ])); 12555var dillonkearns$elm_markdown$Markdown$ListItem$parser = A2( 12556 elm$parser$Parser$Advanced$keeper, 12557 elm$parser$Parser$Advanced$oneOf( 12558 _List_fromArray( 12559 [ 12560 A2( 12561 elm$parser$Parser$Advanced$keeper, 12562 elm$parser$Parser$Advanced$succeed(dillonkearns$elm_markdown$Markdown$ListItem$TaskItem), 12563 A2( 12564 elm$parser$Parser$Advanced$ignorer, 12565 dillonkearns$elm_markdown$Markdown$ListItem$taskItemParser, 12566 elm$parser$Parser$Advanced$chompWhile(dillonkearns$elm_markdown$Whitespace$isSpaceOrTab))), 12567 elm$parser$Parser$Advanced$succeed(dillonkearns$elm_markdown$Markdown$ListItem$PlainItem) 12568 ])), 12569 A2( 12570 elm$parser$Parser$Advanced$ignorer, 12571 elm$parser$Parser$Advanced$getChompedString(dillonkearns$elm_markdown$Helpers$chompUntilLineEndOrEnd), 12572 dillonkearns$elm_markdown$Helpers$lineEndOrEnd)); 12573var dillonkearns$elm_markdown$Markdown$UnorderedList$unorderedListItemBodyParser = A2( 12574 elm$parser$Parser$Advanced$keeper, 12575 A2( 12576 elm$parser$Parser$Advanced$keeper, 12577 A2( 12578 elm$parser$Parser$Advanced$ignorer, 12579 elm$parser$Parser$Advanced$succeed( 12580 F2( 12581 function (bodyStartPos, item) { 12582 return _Utils_Tuple2(bodyStartPos, item); 12583 })), 12584 dillonkearns$elm_markdown$Parser$Extra$chompOneOrMore(dillonkearns$elm_markdown$Whitespace$isSpaceOrTab)), 12585 elm$parser$Parser$Advanced$getCol), 12586 dillonkearns$elm_markdown$Markdown$ListItem$parser); 12587var dillonkearns$elm_markdown$Markdown$UnorderedList$Asterisk = {$: 'Asterisk'}; 12588var dillonkearns$elm_markdown$Markdown$UnorderedList$Minus = {$: 'Minus'}; 12589var dillonkearns$elm_markdown$Markdown$UnorderedList$Plus = {$: 'Plus'}; 12590var dillonkearns$elm_markdown$Markdown$UnorderedList$unorderedListMarkerParser = elm$parser$Parser$Advanced$oneOf( 12591 _List_fromArray( 12592 [ 12593 A2( 12594 elm$parser$Parser$Advanced$ignorer, 12595 A2( 12596 elm$parser$Parser$Advanced$ignorer, 12597 elm$parser$Parser$Advanced$succeed(dillonkearns$elm_markdown$Markdown$UnorderedList$Minus), 12598 A2(dillonkearns$elm_markdown$Parser$Extra$upTo, 3, dillonkearns$elm_markdown$Whitespace$space)), 12599 elm$parser$Parser$Advanced$symbol( 12600 A2( 12601 elm$parser$Parser$Advanced$Token, 12602 '-', 12603 elm$parser$Parser$ExpectingSymbol('-')))), 12604 A2( 12605 elm$parser$Parser$Advanced$ignorer, 12606 elm$parser$Parser$Advanced$succeed(dillonkearns$elm_markdown$Markdown$UnorderedList$Plus), 12607 elm$parser$Parser$Advanced$symbol( 12608 A2( 12609 elm$parser$Parser$Advanced$Token, 12610 '+', 12611 elm$parser$Parser$ExpectingSymbol('+')))), 12612 A2( 12613 elm$parser$Parser$Advanced$ignorer, 12614 elm$parser$Parser$Advanced$succeed(dillonkearns$elm_markdown$Markdown$UnorderedList$Asterisk), 12615 elm$parser$Parser$Advanced$symbol( 12616 A2( 12617 elm$parser$Parser$Advanced$Token, 12618 '*', 12619 elm$parser$Parser$ExpectingSymbol('*')))) 12620 ])); 12621var dillonkearns$elm_markdown$Markdown$UnorderedList$parser = function (previousWasBody) { 12622 return A2( 12623 elm$parser$Parser$Advanced$keeper, 12624 A2( 12625 elm$parser$Parser$Advanced$keeper, 12626 A2( 12627 elm$parser$Parser$Advanced$keeper, 12628 A2( 12629 elm$parser$Parser$Advanced$keeper, 12630 elm$parser$Parser$Advanced$succeed(dillonkearns$elm_markdown$Markdown$UnorderedList$getIntendedCodeItem), 12631 elm$parser$Parser$Advanced$getCol), 12632 elm$parser$Parser$Advanced$backtrackable(dillonkearns$elm_markdown$Markdown$UnorderedList$unorderedListMarkerParser)), 12633 elm$parser$Parser$Advanced$getCol), 12634 previousWasBody ? dillonkearns$elm_markdown$Markdown$UnorderedList$unorderedListItemBodyParser : elm$parser$Parser$Advanced$oneOf( 12635 _List_fromArray( 12636 [dillonkearns$elm_markdown$Markdown$UnorderedList$unorderedListEmptyItemParser, dillonkearns$elm_markdown$Markdown$UnorderedList$unorderedListItemBodyParser]))); 12637}; 12638var dillonkearns$elm_markdown$Markdown$Parser$unorderedListBlock = function (previousWasBody) { 12639 var parseListItem = F3( 12640 function (listmarker, intended, unparsedListItem) { 12641 switch (unparsedListItem.$) { 12642 case 'TaskItem': 12643 var completion = unparsedListItem.a; 12644 var body = unparsedListItem.b; 12645 return { 12646 body: body, 12647 marker: listmarker, 12648 task: elm$core$Maybe$Just( 12649 function () { 12650 if (completion.$ === 'Complete') { 12651 return true; 12652 } else { 12653 return false;
12654 } 12655 }()) 12656 }; 12657 case 'PlainItem': 12658 var body = unparsedListItem.a; 12659 return {body: body, marker: listmarker, task: elm$core$Maybe$Nothing}; 12660 default: 12661 return {body: '', marker: listmarker, task: elm$core$Maybe$Nothing}; 12662 } 12663 }); 12664 return A2( 12665 elm$parser$Parser$Advanced$map, 12666 function (_n0) { 12667 var listmarker = _n0.a; 12668 var intended = _n0.b; 12669 var unparsedListItem = _n0.c; 12670 return A4( 12671 dillonkearns$elm_markdown$Markdown$RawBlock$UnorderedListBlock, 12672 true, 12673 intended, 12674 _List_Nil, 12675 A3(parseListItem, listmarker, intended, unparsedListItem)); 12676 }, 12677 dillonkearns$elm_markdown$Markdown$UnorderedList$parser(previousWasBody)); 12678}; 12679var dillonkearns$elm_markdown$Markdown$RawBlock$CodeBlock = function (a) { 12680 return {$: 'CodeBlock', a: a}; 12681}; 12682var dillonkearns$elm_markdown$Markdown$RawBlock$Html = function (a) { 12683 return {$: 'Html', a: a}; 12684}; 12685var dillonkearns$elm_markdown$Markdown$RawBlock$ParsedBlockQuote = function (a) { 12686 return {$: 'ParsedBlockQuote', a: a}; 12687}; 12688var dillonkearns$elm_markdown$Markdown$RawBlock$ThematicBreak = {$: 'ThematicBreak'}; 12689var dillonkearns$elm_markdown$Markdown$Table$TableHeader = function (a) { 12690 return {$: 'TableHeader', a: a}; 12691}; 12692var dillonkearns$elm_markdown$Markdown$TableParser$parseHeader = F2( 12693 function (_n0, headersRow) { 12694 var columnAlignments = _n0.b; 12695 var headersWithAlignment = function (headers) { 12696 return A3( 12697 elm$core$List$map2, 12698 F2( 12699 function (headerCell, alignment) { 12700 return {alignment: alignment, label: headerCell}; 12701 }), 12702 headers, 12703 columnAlignments); 12704 }; 12705 var combineHeaderAndDelimiter = function (headers) { 12706 return _Utils_eq( 12707 elm$core$List$length(headers), 12708 elm$core$List$length(columnAlignments)) ? elm$core$Result$Ok( 12709 dillonkearns$elm_markdown$Markdown$Table$TableHeader( 12710 headersWithAlignment(headers))) : elm$core$Result$Err( 12711 'Tables must have the same number of header columns (' + (elm$core$String$fromInt( 12712 elm$core$List$length(headers)) + (') as delimiter columns (' + (elm$core$String$fromInt( 12713 elm$core$List$length(columnAlignments)) + ')')))); 12714 }; 12715 var _n1 = A2(elm$parser$Parser$Advanced$run, dillonkearns$elm_markdown$Markdown$TableParser$rowParser, headersRow); 12716 if (_n1.$ === 'Ok') { 12717 var headers = _n1.a; 12718 return combineHeaderAndDelimiter(headers); 12719 } else { 12720 return elm$core$Result$Err('Unable to parse previous line as a table header'); 12721 } 12722 }); 12723var dillonkearns$elm_markdown$ThematicBreak$ThematicBreak = {$: 'ThematicBreak'}; 12724var dillonkearns$elm_markdown$ThematicBreak$whitespace = elm$parser$Parser$Advanced$chompWhile(dillonkearns$elm_markdown$Whitespace$isSpaceOrTab); 12725var dillonkearns$elm_markdown$ThematicBreak$withChar = function (tchar) { 12726 var token = dillonkearns$elm_markdown$Parser$Token$parseString( 12727 elm$core$String$fromChar(tchar)); 12728 return A2( 12729 elm$parser$Parser$Advanced$ignorer, 12730 A2( 12731 elm$parser$Parser$Advanced$ignorer, 12732 A2( 12733 elm$parser$Parser$Advanced$ignorer, 12734 A2( 12735 elm$parser$Parser$Advanced$ignorer, 12736 A2( 12737 elm$parser$Parser$Advanced$ignorer, 12738 A2( 12739 elm$parser$Parser$Advanced$ignorer, 12740 A2( 12741 elm$parser$Parser$Advanced$ignorer, 12742 elm$parser$Parser$Advanced$succeed(dillonkearns$elm_markdown$ThematicBreak$ThematicBreak), 12743 token), 12744 dillonkearns$elm_markdown$ThematicBreak$whitespace), 12745 token), 12746 dillonkearns$elm_markdown$ThematicBreak$whitespace), 12747 token), 12748 elm$parser$Parser$Advanced$chompWhile( 12749 function (c) { 12750 return _Utils_eq(c, tchar) || dillonkearns$elm_markdown$Whitespace$isSpaceOrTab(c); 12751 })), 12752 dillonkearns$elm_markdown$Helpers$lineEndOrEnd); 12753}; 12754var dillonkearns$elm_markdown$ThematicBreak$parseThematicBreak = elm$parser$Parser$Advanced$oneOf( 12755 _List_fromArray( 12756 [ 12757 dillonkearns$elm_markdown$ThematicBreak$withChar( 12758 _Utils_chr('-')), 12759 dillonkearns$elm_markdown$ThematicBreak$withChar( 12760 _Utils_chr('*')), 12761 dillonkearns$elm_markdown$ThematicBreak$withChar( 12762 _Utils_chr('_')) 12763 ])); 12764var dillonkearns$elm_markdown$ThematicBreak$parser = elm$parser$Parser$Advanced$oneOf( 12765 _List_fromArray( 12766 [ 12767 A2( 12768 elm$parser$Parser$Advanced$keeper, 12769 A2( 12770 elm$parser$Parser$Advanced$ignorer, 12771 A2( 12772 elm$parser$Parser$Advanced$ignorer, 12773 A2( 12774 elm$parser$Parser$Advanced$ignorer, 12775 elm$parser$Parser$Advanced$succeed(elm$core$Basics$identity), 12776 dillonkearns$elm_markdown$Whitespace$space), 12777 elm$parser$Parser$Advanced$oneOf( 12778 _List_fromArray( 12779 [ 12780 dillonkearns$elm_markdown$Whitespace$space, 12781 elm$parser$Parser$Advanced$succeed(_Utils_Tuple0) 12782 ]))), 12783 elm$parser$Parser$Advanced$oneOf( 12784 _List_fromArray( 12785 [ 12786 dillonkearns$elm_markdown$Whitespace$space, 12787 elm$parser$Parser$Advanced$succeed(_Utils_Tuple0) 12788 ]))), 12789 dillonkearns$elm_markdown$ThematicBreak$parseThematicBreak), 12790 dillonkearns$elm_markdown$ThematicBreak$parseThematicBreak 12791 ])); 12792var elm$core$List$append = F2( 12793 function (xs, ys) { 12794 if (!ys.b) { 12795 return xs; 12796 } else { 12797 return A3(elm$core$List$foldr, elm$core$List$cons, ys, xs); 12798 } 12799 }); 12800var elm$core$List$concat = function (lists) { 12801 return A3(elm$core$List$foldr, elm$core$List$append, _List_Nil, lists); 12802}; 12803var elm$core$List$concatMap = F2( 12804 function (f, list) { 12805 return elm$core$List$concat( 12806 A2(elm$core$List$map, f, list)); 12807 }); 12808var elm$core$List$member = F2( 12809 function (x, xs) { 12810 return A2( 12811 elm$core$List$any, 12812 function (a) { 12813 return _Utils_eq(a, x); 12814 }, 12815 xs); 12816 }); 12817var elm$core$Result$withDefault = F2( 12818 function (def, result) { 12819 if (result.$ === 'Ok') { 12820 var a = result.a; 12821 return a; 12822 } else { 12823 return def; 12824 } 12825 }); 12826var elm$core$Tuple$mapSecond = F2( 12827 function (func, _n0) { 12828 var x = _n0.a; 12829 var y = _n0.b; 12830 return _Utils_Tuple2( 12831 x, 12832 func(y)); 12833 }); 12834var dillonkearns$elm_markdown$Markdown$Parser$childToBlocks = F2( 12835 function (node, blocks) { 12836 switch (node.$) { 12837 case 'Element': 12838 var tag = node.a; 12839 var attributes = node.b; 12840 var children = node.c; 12841 var _n99 = dillonkearns$elm_markdown$Markdown$Parser$nodesToBlocks(children); 12842 if (_n99.$ === 'Ok') { 12843 var childrenAsBlocks = _n99.a; 12844 var block = dillonkearns$elm_markdown$Markdown$Block$HtmlBlock( 12845 A3(dillonkearns$elm_markdown$Markdown$Block$HtmlElement, tag, attributes, childrenAsBlocks)); 12846 return elm$core$Result$Ok( 12847 A2(elm$core$List$cons, block, blocks)); 12848 } else { 12849 var err = _n99.a; 12850 return elm$core$Result$Err(err); 12851 } 12852 case 'Text': 12853 var innerText = node.a; 12854 var _n100 = dillonkearns$elm_markdown$Markdown$Parser$parse(innerText); 12855 if (_n100.$ === 'Ok') { 12856 var value = _n100.a; 12857 return elm$core$Result$Ok( 12858 _Utils_ap( 12859 elm$core$List$reverse(value), 12860 blocks)); 12861 } else { 12862 var error = _n100.a; 12863 return elm$core$Result$Err( 12864 elm$parser$Parser$Expecting( 12865 A2( 12866 elm$core$String$join, 12867 '\n', 12868 A2(elm$core$List$map, dillonkearns$elm_markdown$Markdown$Parser$deadEndToString, error)))); 12869 } 12870 case 'Comment': 12871 var string = node.a; 12872 return elm$core$Result$Ok( 12873 A2( 12874 elm$core$List$cons, 12875 dillonkearns$elm_markdown$Markdown$Block$HtmlBlock( 12876 dillonkearns$elm_markdown$Markdown$Block$HtmlComment(string)), 12877 blocks)); 12878 case 'Cdata': 12879 var string = node.a; 12880 return elm$core$Result$Ok( 12881 A2( 12882 elm$core$List$cons, 12883 dillonkearns$elm_markdown$Markdown$Block$HtmlBlock(
12884 dillonkearns$elm_markdown$Markdown$Block$Cdata(string)), 12885 blocks)); 12886 case 'ProcessingInstruction': 12887 var string = node.a; 12888 return elm$core$Result$Ok( 12889 A2( 12890 elm$core$List$cons, 12891 dillonkearns$elm_markdown$Markdown$Block$HtmlBlock( 12892 dillonkearns$elm_markdown$Markdown$Block$ProcessingInstruction(string)), 12893 blocks)); 12894 default: 12895 var declarationType = node.a; 12896 var content = node.b; 12897 return elm$core$Result$Ok( 12898 A2( 12899 elm$core$List$cons, 12900 dillonkearns$elm_markdown$Markdown$Block$HtmlBlock( 12901 A2(dillonkearns$elm_markdown$Markdown$Block$HtmlDeclaration, declarationType, content)), 12902 blocks)); 12903 } 12904 }); 12905var dillonkearns$elm_markdown$Markdown$Parser$completeBlocks = function (state) { 12906 var _n84 = state.rawBlocks; 12907 _n84$5: 12908 while (true) { 12909 if (_n84.b) { 12910 switch (_n84.a.$) { 12911 case 'BlockQuote': 12912 var body2 = _n84.a.a; 12913 var rest = _n84.b; 12914 var _n85 = A2( 12915 elm$parser$Parser$Advanced$run, 12916 dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(), 12917 body2); 12918 if (_n85.$ === 'Ok') { 12919 var value = _n85.a; 12920 return elm$parser$Parser$Advanced$succeed( 12921 { 12922 linkReferenceDefinitions: _Utils_ap(state.linkReferenceDefinitions, value.linkReferenceDefinitions), 12923 rawBlocks: A2( 12924 elm$core$List$cons, 12925 dillonkearns$elm_markdown$Markdown$RawBlock$ParsedBlockQuote(value.rawBlocks), 12926 rest) 12927 }); 12928 } else { 12929 var error = _n85.a; 12930 return elm$parser$Parser$Advanced$problem( 12931 elm$parser$Parser$Problem( 12932 dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString(error))); 12933 } 12934 case 'UnorderedListBlock': 12935 var _n86 = _n84.a; 12936 var tight = _n86.a; 12937 var intended = _n86.b; 12938 var closeListItems = _n86.c; 12939 var openListItem = _n86.d; 12940 var rest = _n84.b; 12941 var _n87 = A2( 12942 elm$parser$Parser$Advanced$run, 12943 dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(), 12944 openListItem.body); 12945 if (_n87.$ === 'Ok') { 12946 var value = _n87.a; 12947 var tight2 = A2(elm$core$List$member, dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine, value.rawBlocks) ? false : tight; 12948 return elm$parser$Parser$Advanced$succeed( 12949 { 12950 linkReferenceDefinitions: _Utils_ap(state.linkReferenceDefinitions, value.linkReferenceDefinitions), 12951 rawBlocks: A2( 12952 elm$core$List$cons, 12953 A4( 12954 dillonkearns$elm_markdown$Markdown$RawBlock$UnorderedListBlock, 12955 tight2, 12956 intended, 12957 A2( 12958 elm$core$List$cons, 12959 {body: value.rawBlocks, task: openListItem.task}, 12960 closeListItems), 12961 openListItem), 12962 rest) 12963 }); 12964 } else { 12965 var e = _n87.a; 12966 return elm$parser$Parser$Advanced$problem( 12967 elm$parser$Parser$Problem( 12968 dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString(e))); 12969 } 12970 case 'OrderedListBlock': 12971 var _n92 = _n84.a; 12972 var tight = _n92.a; 12973 var intended = _n92.b; 12974 var marker = _n92.c; 12975 var order = _n92.d; 12976 var closeListItems = _n92.e; 12977 var openListItem = _n92.f; 12978 var rest = _n84.b; 12979 var _n93 = A2( 12980 elm$parser$Parser$Advanced$run, 12981 dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(), 12982 openListItem); 12983 if (_n93.$ === 'Ok') { 12984 var value = _n93.a; 12985 var tight2 = A2(elm$core$List$member, dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine, value.rawBlocks) ? false : tight; 12986 return elm$parser$Parser$Advanced$succeed( 12987 { 12988 linkReferenceDefinitions: _Utils_ap(state.linkReferenceDefinitions, value.linkReferenceDefinitions), 12989 rawBlocks: A2( 12990 elm$core$List$cons, 12991 A6( 12992 dillonkearns$elm_markdown$Markdown$RawBlock$OrderedListBlock, 12993 tight2, 12994 intended, 12995 marker, 12996 order, 12997 A2(elm$core$List$cons, value.rawBlocks, closeListItems), 12998 openListItem), 12999 rest) 13000 }); 13001 } else { 13002 var e = _n93.a; 13003 return elm$parser$Parser$Advanced$problem( 13004 elm$parser$Parser$Problem( 13005 dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString(e))); 13006 } 13007 case 'BlankLine': 13008 if (_n84.b.b) { 13009 switch (_n84.b.a.$) { 13010 case 'UnorderedListBlock': 13011 var _n88 = _n84.a; 13012 var _n89 = _n84.b; 13013 var _n90 = _n89.a; 13014 var tight = _n90.a; 13015 var intended = _n90.b; 13016 var closeListItems = _n90.c; 13017 var openListItem = _n90.d; 13018 var rest = _n89.b; 13019 var _n91 = A2( 13020 elm$parser$Parser$Advanced$run, 13021 dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(), 13022 openListItem.body); 13023 if (_n91.$ === 'Ok') { 13024 var value = _n91.a; 13025 var tight2 = A2(elm$core$List$member, dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine, value.rawBlocks) ? false : tight; 13026 return elm$parser$Parser$Advanced$succeed( 13027 { 13028 linkReferenceDefinitions: _Utils_ap(state.linkReferenceDefinitions, value.linkReferenceDefinitions), 13029 rawBlocks: A2( 13030 elm$core$List$cons, 13031 A4( 13032 dillonkearns$elm_markdown$Markdown$RawBlock$UnorderedListBlock, 13033 tight2, 13034 intended, 13035 A2( 13036 elm$core$List$cons, 13037 {body: value.rawBlocks, task: openListItem.task}, 13038 closeListItems), 13039 openListItem),
13040 rest) 13041 }); 13042 } else { 13043 var e = _n91.a; 13044 return elm$parser$Parser$Advanced$problem( 13045 elm$parser$Parser$Problem( 13046 dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString(e))); 13047 } 13048 case 'OrderedListBlock': 13049 var _n94 = _n84.a; 13050 var _n95 = _n84.b; 13051 var _n96 = _n95.a; 13052 var tight = _n96.a; 13053 var intended = _n96.b; 13054 var marker = _n96.c; 13055 var order = _n96.d; 13056 var closeListItems = _n96.e; 13057 var openListItem = _n96.f; 13058 var rest = _n95.b; 13059 var _n97 = A2( 13060 elm$parser$Parser$Advanced$run, 13061 dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(), 13062 openListItem); 13063 if (_n97.$ === 'Ok') { 13064 var value = _n97.a; 13065 var tight2 = A2(elm$core$List$member, dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine, value.rawBlocks) ? false : tight; 13066 return elm$parser$Parser$Advanced$succeed( 13067 { 13068 linkReferenceDefinitions: _Utils_ap(state.linkReferenceDefinitions, value.linkReferenceDefinitions), 13069 rawBlocks: A2( 13070 elm$core$List$cons, 13071 A6( 13072 dillonkearns$elm_markdown$Markdown$RawBlock$OrderedListBlock, 13073 tight2, 13074 intended, 13075 marker, 13076 order, 13077 A2(elm$core$List$cons, value.rawBlocks, closeListItems), 13078 openListItem), 13079 rest) 13080 }); 13081 } else { 13082 var e = _n97.a; 13083 return elm$parser$Parser$Advanced$problem( 13084 elm$parser$Parser$Problem( 13085 dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString(e))); 13086 } 13087 default: 13088 break _n84$5; 13089 } 13090 } else { 13091 break _n84$5; 13092 } 13093 default: 13094 break _n84$5; 13095 } 13096 } else { 13097 break _n84$5; 13098 } 13099 } 13100 return elm$parser$Parser$Advanced$succeed(state); 13101}; 13102var dillonkearns$elm_markdown$Markdown$Parser$completeOrMergeBlocks = F2( 13103 function (state, newRawBlock) { 13104 var _n41 = _Utils_Tuple2(newRawBlock, state.rawBlocks); 13105 _n41$13: 13106 while (true) { 13107 if (_n41.b.b) { 13108 switch (_n41.b.a.$) { 13109 case 'CodeBlock': 13110 if (_n41.a.$ === 'CodeBlock') { 13111 var block1 = _n41.a.a; 13112 var _n42 = _n41.b; 13113 var block2 = _n42.a.a; 13114 var rest = _n42.b; 13115 return elm$parser$Parser$Advanced$succeed( 13116 { 13117 linkReferenceDefinitions: state.linkReferenceDefinitions, 13118 rawBlocks: A2( 13119 elm$core$List$cons, 13120 dillonkearns$elm_markdown$Markdown$RawBlock$CodeBlock( 13121 { 13122 body: A2(dillonkearns$elm_markdown$Markdown$Parser$joinStringsPreserveAll, block2.body, block1.body), 13123 language: elm$core$Maybe$Nothing 13124 }), 13125 rest) 13126 }); 13127 } else { 13128 break _n41$13; 13129 } 13130 case 'IndentedCodeBlock': 13131 switch (_n41.a.$) { 13132 case 'IndentedCodeBlock': 13133 var block1 = _n41.a.a; 13134 var _n43 = _n41.b; 13135 var block2 = _n43.a.a; 13136 var rest = _n43.b; 13137 return elm$parser$Parser$Advanced$succeed( 13138 { 13139 linkReferenceDefinitions: state.linkReferenceDefinitions, 13140 rawBlocks: A2( 13141 elm$core$List$cons, 13142 dillonkearns$elm_markdown$Markdown$RawBlock$IndentedCodeBlock( 13143 A2(dillonkearns$elm_markdown$Markdown$Parser$joinStringsPreserveAll, block2, block1)), 13144 rest) 13145 }); 13146 case 'BlankLine': 13147 var _n44 = _n41.a; 13148 var _n45 = _n41.b; 13149 var block = _n45.a.a; 13150 var rest = _n45.b; 13151 return elm$parser$Parser$Advanced$succeed( 13152 { 13153 linkReferenceDefinitions: state.linkReferenceDefinitions, 13154 rawBlocks: A2( 13155 elm$core$List$cons, 13156 dillonkearns$elm_markdown$Markdown$RawBlock$IndentedCodeBlock( 13157 A2(dillonkearns$elm_markdown$Markdown$Parser$joinStringsPreserveAll, block, '\n')), 13158 rest) 13159 }); 13160 default: 13161 break _n41$13; 13162 } 13163 case 'BlockQuote': 13164 var _n46 = _n41.b; 13165 var body2 = _n46.a.a; 13166 var rest = _n46.b; 13167 switch (newRawBlock.$) { 13168 case 'BlockQuote': 13169 var body1 = newRawBlock.a; 13170 return elm$parser$Parser$Advanced$succeed( 13171 { 13172 linkReferenceDefinitions: state.linkReferenceDefinitions, 13173 rawBlocks: A2( 13174 elm$core$List$cons, 13175 dillonkearns$elm_markdown$Markdown$RawBlock$BlockQuote( 13176 A2(dillonkearns$elm_markdown$Markdown$Parser$joinStringsPreserveAll, body2, body1)), 13177 rest) 13178 }); 13179 case 'OpenBlockOrParagraph': 13180 var body1 = newRawBlock.a.a; 13181 return elm$parser$Parser$Advanced$succeed( 13182 { 13183 linkReferenceDefinitions: state.linkReferenceDefinitions, 13184 rawBlocks: A2( 13185 elm$core$List$cons, 13186 dillonkearns$elm_markdown$Markdown$RawBlock$BlockQuote( 13187 A3(dillonkearns$elm_markdown$Markdown$Parser$joinRawStringsWith, '\n', body2, body1)), 13188 rest) 13189 }); 13190 default: 13191 var _n48 = A2( 13192 elm$parser$Parser$Advanced$run, 13193 dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(), 13194 body2); 13195 if (_n48.$ === 'Ok') { 13196 var value = _n48.a; 13197 return elm$parser$Parser$Advanced$succeed( 13198 { 13199 linkReferenceDefinitions: _Utils_ap(state.linkReferenceDefinitions, value.linkReferenceDefinitions), 13200 rawBlocks: A2( 13201 elm$core$List$cons, 13202 newRawBlock,
13203 A2( 13204 elm$core$List$cons, 13205 dillonkearns$elm_markdown$Markdown$RawBlock$ParsedBlockQuote(value.rawBlocks), 13206 rest)) 13207 }); 13208 } else { 13209 var e = _n48.a; 13210 return elm$parser$Parser$Advanced$problem( 13211 elm$parser$Parser$Problem( 13212 dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString(e))); 13213 } 13214 } 13215 case 'UnorderedListBlock': 13216 var _n49 = _n41.b; 13217 var _n50 = _n49.a; 13218 var tight = _n50.a; 13219 var intended1 = _n50.b; 13220 var closeListItems2 = _n50.c; 13221 var openListItem2 = _n50.d; 13222 var rest = _n49.b; 13223 switch (newRawBlock.$) { 13224 case 'UnorderedListBlock': 13225 var intended2 = newRawBlock.b; 13226 var closeListItems1 = newRawBlock.c; 13227 var openListItem1 = newRawBlock.d; 13228 if (_Utils_eq(openListItem2.marker, openListItem1.marker)) { 13229 var _n52 = A2( 13230 elm$parser$Parser$Advanced$run, 13231 dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(), 13232 openListItem2.body); 13233 if (_n52.$ === 'Ok') { 13234 var value = _n52.a; 13235 return A2(elm$core$List$member, dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine, value.rawBlocks) ? elm$parser$Parser$Advanced$succeed( 13236 { 13237 linkReferenceDefinitions: _Utils_ap(state.linkReferenceDefinitions, value.linkReferenceDefinitions), 13238 rawBlocks: A2( 13239 elm$core$List$cons, 13240 A4( 13241 dillonkearns$elm_markdown$Markdown$RawBlock$UnorderedListBlock, 13242 false, 13243 intended2, 13244 A2( 13245 elm$core$List$cons, 13246 {body: value.rawBlocks, task: openListItem2.task}, 13247 closeListItems2), 13248 openListItem1), 13249 rest) 13250 }) : elm$parser$Parser$Advanced$succeed( 13251 { 13252 linkReferenceDefinitions: _Utils_ap(state.linkReferenceDefinitions, value.linkReferenceDefinitions), 13253 rawBlocks: A2( 13254 elm$core$List$cons, 13255 A4( 13256 dillonkearns$elm_markdown$Markdown$RawBlock$UnorderedListBlock, 13257 tight, 13258 intended2, 13259 A2( 13260 elm$core$List$cons, 13261 {body: value.rawBlocks, task: openListItem2.task}, 13262 closeListItems2), 13263 openListItem1), 13264 rest) 13265 }); 13266 } else { 13267 var e = _n52.a; 13268 return elm$parser$Parser$Advanced$problem( 13269 elm$parser$Parser$Problem( 13270 dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString(e))); 13271 } 13272 } else { 13273 var _n53 = A2( 13274 elm$parser$Parser$Advanced$run, 13275 dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(), 13276 openListItem2.body); 13277 if (_n53.$ === 'Ok') { 13278 var value = _n53.a; 13279 var tight2 = A2(elm$core$List$member, dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine, value.rawBlocks) ? false : tight; 13280 return elm$parser$Parser$Advanced$succeed( 13281 { 13282 linkReferenceDefinitions: _Utils_ap(state.linkReferenceDefinitions, value.linkReferenceDefinitions), 13283 rawBlocks: A2( 13284 elm$core$List$cons, 13285 newRawBlock, 13286 A2( 13287 elm$core$List$cons, 13288 A4( 13289 dillonkearns$elm_markdown$Markdown$RawBlock$UnorderedListBlock, 13290 tight2, 13291 intended1, 13292 A2( 13293 elm$core$List$cons, 13294 {body: value.rawBlocks, task: openListItem2.task}, 13295 closeListItems2), 13296 openListItem1), 13297 rest)) 13298 }); 13299 } else { 13300 var e = _n53.a; 13301 return elm$parser$Parser$Advanced$problem( 13302 elm$parser$Parser$Problem( 13303 dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString(e))); 13304 } 13305 } 13306 case 'OpenBlockOrParagraph': 13307 var body1 = newRawBlock.a.a; 13308 return elm$parser$Parser$Advanced$succeed( 13309 { 13310 linkReferenceDefinitions: state.linkReferenceDefinitions, 13311 rawBlocks: A2( 13312 elm$core$List$cons, 13313 A4( 13314 dillonkearns$elm_markdown$Markdown$RawBlock$UnorderedListBlock, 13315 tight, 13316 intended1, 13317 closeListItems2, 13318 _Utils_update( 13319 openListItem2, 13320 { 13321 body: A3(dillonkearns$elm_markdown$Markdown$Parser$joinRawStringsWith, '\n', openListItem2.body, body1) 13322 })), 13323 rest) 13324 }); 13325 default: 13326 var _n54 = A2( 13327 elm$parser$Parser$Advanced$run, 13328 dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(), 13329 openListItem2.body); 13330 if (_n54.$ === 'Ok') { 13331 var value = _n54.a; 13332 var tight2 = A2(elm$core$List$member, dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine, value.rawBlocks) ? false : tight; 13333 return elm$parser$Parser$Advanced$succeed( 13334 { 13335 linkReferenceDefinitions: _Utils_ap(state.linkReferenceDefinitions, value.linkReferenceDefinitions), 13336 rawBlocks: A2( 13337 elm$core$List$cons, 13338 newRawBlock,
13339 A2( 13340 elm$core$List$cons, 13341 A4( 13342 dillonkearns$elm_markdown$Markdown$RawBlock$UnorderedListBlock, 13343 tight2, 13344 intended1, 13345 A2( 13346 elm$core$List$cons, 13347 {body: value.rawBlocks, task: openListItem2.task}, 13348 closeListItems2), 13349 openListItem2), 13350 rest)) 13351 }); 13352 } else { 13353 var e = _n54.a; 13354 return elm$parser$Parser$Advanced$problem( 13355 elm$parser$Parser$Problem( 13356 dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString(e))); 13357 } 13358 } 13359 case 'OrderedListBlock': 13360 var _n55 = _n41.b; 13361 var _n56 = _n55.a; 13362 var tight = _n56.a; 13363 var intended1 = _n56.b; 13364 var marker = _n56.c; 13365 var order = _n56.d; 13366 var closeListItems2 = _n56.e; 13367 var openListItem2 = _n56.f; 13368 var rest = _n55.b; 13369 switch (newRawBlock.$) { 13370 case 'OrderedListBlock': 13371 var intended2 = newRawBlock.b; 13372 var marker2 = newRawBlock.c; 13373 var closeListItems1 = newRawBlock.e; 13374 var openListItem1 = newRawBlock.f; 13375 if (_Utils_eq(marker, marker2)) { 13376 var _n58 = A2( 13377 elm$parser$Parser$Advanced$run, 13378 dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(), 13379 openListItem2); 13380 if (_n58.$ === 'Ok') { 13381 var value = _n58.a; 13382 var tight2 = A2(elm$core$List$member, dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine, value.rawBlocks) ? false : tight; 13383 return elm$parser$Parser$Advanced$succeed( 13384 { 13385 linkReferenceDefinitions: _Utils_ap(state.linkReferenceDefinitions, value.linkReferenceDefinitions), 13386 rawBlocks: A2( 13387 elm$core$List$cons, 13388 A6( 13389 dillonkearns$elm_markdown$Markdown$RawBlock$OrderedListBlock, 13390 tight2, 13391 intended2, 13392 marker, 13393 order, 13394 A2(elm$core$List$cons, value.rawBlocks, closeListItems2), 13395 openListItem1), 13396 rest) 13397 }); 13398 } else { 13399 var e = _n58.a; 13400 return elm$parser$Parser$Advanced$problem( 13401 elm$parser$Parser$Problem( 13402 dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString(e))); 13403 } 13404 } else { 13405 var _n59 = A2( 13406 elm$parser$Parser$Advanced$run, 13407 dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(), 13408 openListItem2); 13409 if (_n59.$ === 'Ok') { 13410 var value = _n59.a; 13411 var tight2 = A2(elm$core$List$member, dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine, value.rawBlocks) ? false : tight; 13412 return elm$parser$Parser$Advanced$succeed( 13413 { 13414 linkReferenceDefinitions: _Utils_ap(state.linkReferenceDefinitions, value.linkReferenceDefinitions), 13415 rawBlocks: A2( 13416 elm$core$List$cons, 13417 newRawBlock, 13418 A2( 13419 elm$core$List$cons, 13420 A6( 13421 dillonkearns$elm_markdown$Markdown$RawBlock$OrderedListBlock, 13422 tight2, 13423 intended1, 13424 marker, 13425 order, 13426 A2(elm$core$List$cons, value.rawBlocks, closeListItems2), 13427 openListItem2), 13428 rest)) 13429 }); 13430 } else { 13431 var e = _n59.a; 13432 return elm$parser$Parser$Advanced$problem( 13433 elm$parser$Parser$Problem( 13434 dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString(e))); 13435 } 13436 } 13437 case 'OpenBlockOrParagraph': 13438 var body1 = newRawBlock.a.a; 13439 return elm$parser$Parser$Advanced$succeed( 13440 { 13441 linkReferenceDefinitions: state.linkReferenceDefinitions, 13442 rawBlocks: A2( 13443 elm$core$List$cons, 13444 A6(dillonkearns$elm_markdown$Markdown$RawBlock$OrderedListBlock, tight, intended1, marker, order, closeListItems2, openListItem2 + ('\n' + body1)), 13445 rest) 13446 }); 13447 default: 13448 var _n60 = A2( 13449 elm$parser$Parser$Advanced$run, 13450 dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(), 13451 openListItem2); 13452 if (_n60.$ === 'Ok') { 13453 var value = _n60.a; 13454 var tight2 = A2(elm$core$List$member, dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine, value.rawBlocks) ? false : tight; 13455 return elm$parser$Parser$Advanced$succeed( 13456 { 13457 linkReferenceDefinitions: _Utils_ap(state.linkReferenceDefinitions, value.linkReferenceDefinitions), 13458 rawBlocks: A2( 13459 elm$core$List$cons, 13460 newRawBlock,
13461 A2( 13462 elm$core$List$cons, 13463 A6( 13464 dillonkearns$elm_markdown$Markdown$RawBlock$OrderedListBlock, 13465 tight2, 13466 intended1, 13467 marker, 13468 order, 13469 A2(elm$core$List$cons, value.rawBlocks, closeListItems2), 13470 openListItem2), 13471 rest)) 13472 }); 13473 } else { 13474 var e = _n60.a; 13475 return elm$parser$Parser$Advanced$problem( 13476 elm$parser$Parser$Problem( 13477 dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString(e))); 13478 } 13479 } 13480 case 'OpenBlockOrParagraph': 13481 switch (_n41.a.$) { 13482 case 'OpenBlockOrParagraph': 13483 var body1 = _n41.a.a.a; 13484 var _n61 = _n41.b; 13485 var body2 = _n61.a.a.a; 13486 var rest = _n61.b; 13487 return elm$parser$Parser$Advanced$succeed( 13488 { 13489 linkReferenceDefinitions: state.linkReferenceDefinitions, 13490 rawBlocks: A2( 13491 elm$core$List$cons, 13492 dillonkearns$elm_markdown$Markdown$RawBlock$OpenBlockOrParagraph( 13493 dillonkearns$elm_markdown$Markdown$RawBlock$UnparsedInlines( 13494 A3(dillonkearns$elm_markdown$Markdown$Parser$joinRawStringsWith, '\n', body2, body1))), 13495 rest) 13496 }); 13497 case 'SetextLine': 13498 if (_n41.a.a.$ === 'LevelOne') { 13499 var _n62 = _n41.a; 13500 var _n63 = _n62.a; 13501 var _n64 = _n41.b; 13502 var unparsedInlines = _n64.a.a; 13503 var rest = _n64.b; 13504 return elm$parser$Parser$Advanced$succeed( 13505 { 13506 linkReferenceDefinitions: state.linkReferenceDefinitions, 13507 rawBlocks: A2( 13508 elm$core$List$cons, 13509 A2(dillonkearns$elm_markdown$Markdown$RawBlock$Heading, 1, unparsedInlines), 13510 rest) 13511 }); 13512 } else { 13513 var _n65 = _n41.a; 13514 var _n66 = _n65.a; 13515 var _n67 = _n41.b; 13516 var unparsedInlines = _n67.a.a; 13517 var rest = _n67.b; 13518 return elm$parser$Parser$Advanced$succeed( 13519 { 13520 linkReferenceDefinitions: state.linkReferenceDefinitions, 13521 rawBlocks: A2( 13522 elm$core$List$cons, 13523 A2(dillonkearns$elm_markdown$Markdown$RawBlock$Heading, 2, unparsedInlines), 13524 rest) 13525 }); 13526 } 13527 case 'TableDelimiter': 13528 var _n68 = _n41.a.a; 13529 var text = _n68.a; 13530 var alignments = _n68.b; 13531 var _n69 = _n41.b; 13532 var rawHeaders = _n69.a.a.a; 13533 var rest = _n69.b; 13534 var _n70 = A2( 13535 dillonkearns$elm_markdown$Markdown$TableParser$parseHeader, 13536 A2(dillonkearns$elm_markdown$Markdown$Table$TableDelimiterRow, text, alignments), 13537 rawHeaders); 13538 if (_n70.$ === 'Ok') { 13539 var headers = _n70.a.a; 13540 return elm$parser$Parser$Advanced$succeed( 13541 { 13542 linkReferenceDefinitions: state.linkReferenceDefinitions, 13543 rawBlocks: A2( 13544 elm$core$List$cons, 13545 dillonkearns$elm_markdown$Markdown$RawBlock$Table( 13546 A2(dillonkearns$elm_markdown$Markdown$Table$Table, headers, _List_Nil)), 13547 rest) 13548 }); 13549 } else { 13550 return elm$parser$Parser$Advanced$succeed( 13551 { 13552 linkReferenceDefinitions: state.linkReferenceDefinitions, 13553 rawBlocks: A2( 13554 elm$core$List$cons, 13555 dillonkearns$elm_markdown$Markdown$RawBlock$OpenBlockOrParagraph( 13556 dillonkearns$elm_markdown$Markdown$RawBlock$UnparsedInlines( 13557 A3(dillonkearns$elm_markdown$Markdown$Parser$joinRawStringsWith, '\n', rawHeaders, text.raw))), 13558 rest) 13559 }); 13560 } 13561 default: 13562 break _n41$13; 13563 } 13564 case 'Table': 13565 if (_n41.a.$ === 'Table') { 13566 var updatedTable = _n41.a.a; 13567 var _n71 = _n41.b; 13568 var rest = _n71.b; 13569 return elm$parser$Parser$Advanced$succeed( 13570 { 13571 linkReferenceDefinitions: state.linkReferenceDefinitions, 13572 rawBlocks: A2( 13573 elm$core$List$cons, 13574 dillonkearns$elm_markdown$Markdown$RawBlock$Table(updatedTable), 13575 rest) 13576 }); 13577 } else { 13578 break _n41$13; 13579 } 13580 case 'BlankLine': 13581 if (_n41.b.b.b) { 13582 switch (_n41.b.b.a.$) { 13583 case 'OrderedListBlock': 13584 var _n72 = _n41.b; 13585 var _n73 = _n72.a; 13586 var _n74 = _n72.b; 13587 var _n75 = _n74.a; 13588 var tight = _n75.a; 13589 var intended1 = _n75.b; 13590 var marker = _n75.c; 13591 var order = _n75.d; 13592 var closeListItems2 = _n75.e; 13593 var openListItem2 = _n75.f; 13594 var rest = _n74.b; 13595 var _n76 = A2( 13596 elm$parser$Parser$Advanced$run, 13597 dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(), 13598 openListItem2); 13599 if (_n76.$ === 'Ok') { 13600 var value = _n76.a; 13601 if (newRawBlock.$ === 'OrderedListBlock') { 13602 var intended2 = newRawBlock.b; 13603 var openListItem = newRawBlock.f;
13604 return elm$parser$Parser$Advanced$succeed( 13605 { 13606 linkReferenceDefinitions: _Utils_ap(state.linkReferenceDefinitions, value.linkReferenceDefinitions), 13607 rawBlocks: A2( 13608 elm$core$List$cons, 13609 A6( 13610 dillonkearns$elm_markdown$Markdown$RawBlock$OrderedListBlock, 13611 false, 13612 intended2, 13613 marker, 13614 order, 13615 A2(elm$core$List$cons, value.rawBlocks, closeListItems2), 13616 openListItem), 13617 rest) 13618 }); 13619 } else { 13620 return elm$parser$Parser$Advanced$succeed( 13621 { 13622 linkReferenceDefinitions: _Utils_ap(state.linkReferenceDefinitions, value.linkReferenceDefinitions), 13623 rawBlocks: A2( 13624 elm$core$List$cons, 13625 newRawBlock, 13626 A2( 13627 elm$core$List$cons, 13628 dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine, 13629 A2( 13630 elm$core$List$cons, 13631 A6( 13632 dillonkearns$elm_markdown$Markdown$RawBlock$OrderedListBlock, 13633 tight, 13634 intended1, 13635 marker, 13636 order, 13637 A2(elm$core$List$cons, value.rawBlocks, closeListItems2), 13638 openListItem2), 13639 rest))) 13640 }); 13641 } 13642 } else { 13643 var e = _n76.a; 13644 return elm$parser$Parser$Advanced$problem( 13645 elm$parser$Parser$Problem( 13646 dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString(e))); 13647 } 13648 case 'UnorderedListBlock': 13649 var _n78 = _n41.b; 13650 var _n79 = _n78.a; 13651 var _n80 = _n78.b; 13652 var _n81 = _n80.a; 13653 var tight = _n81.a; 13654 var intended1 = _n81.b; 13655 var closeListItems2 = _n81.c; 13656 var openListItem2 = _n81.d; 13657 var rest = _n80.b; 13658 var _n82 = A2( 13659 elm$parser$Parser$Advanced$run, 13660 dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(), 13661 openListItem2.body); 13662 if (_n82.$ === 'Ok') { 13663 var value = _n82.a; 13664 if (newRawBlock.$ === 'UnorderedListBlock') { 13665 var openListItem = newRawBlock.d; 13666 return elm$parser$Parser$Advanced$succeed( 13667 { 13668 linkReferenceDefinitions: _Utils_ap(state.linkReferenceDefinitions, value.linkReferenceDefinitions), 13669 rawBlocks: A2( 13670 elm$core$List$cons, 13671 A4( 13672 dillonkearns$elm_markdown$Markdown$RawBlock$UnorderedListBlock, 13673 false, 13674 intended1, 13675 A2( 13676 elm$core$List$cons, 13677 {body: value.rawBlocks, task: openListItem2.task}, 13678 closeListItems2), 13679 openListItem), 13680 rest) 13681 }); 13682 } else { 13683 return elm$parser$Parser$Advanced$succeed( 13684 { 13685 linkReferenceDefinitions: _Utils_ap(state.linkReferenceDefinitions, value.linkReferenceDefinitions), 13686 rawBlocks: A2( 13687 elm$core$List$cons, 13688 newRawBlock, 13689 A2( 13690 elm$core$List$cons, 13691 dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine, 13692 A2( 13693 elm$core$List$cons, 13694 A4( 13695 dillonkearns$elm_markdown$Markdown$RawBlock$UnorderedListBlock, 13696 tight, 13697 intended1, 13698 A2( 13699 elm$core$List$cons, 13700 {body: value.rawBlocks, task: openListItem2.task}, 13701 closeListItems2), 13702 openListItem2), 13703 rest))) 13704 }); 13705 } 13706 } else { 13707 var e = _n82.a; 13708 return elm$parser$Parser$Advanced$problem( 13709 elm$parser$Parser$Problem( 13710 dillonkearns$elm_markdown$Markdown$Parser$deadEndsToString(e))); 13711 } 13712 default: 13713 break _n41$13; 13714 } 13715 } else { 13716 break _n41$13; 13717 } 13718 default: 13719 break _n41$13; 13720 } 13721 } else { 13722 break _n41$13; 13723 } 13724 } 13725 return elm$parser$Parser$Advanced$succeed( 13726 { 13727 linkReferenceDefinitions: state.linkReferenceDefinitions, 13728 rawBlocks: A2(elm$core$List$cons, newRawBlock, state.rawBlocks) 13729 }); 13730 }); 13731var dillonkearns$elm_markdown$Markdown$Parser$inlineParseHelper = F2( 13732 function (referencesDict, _n36) { 13733 var unparsedInlines = _n36.a; 13734 var mappedReferencesDict = elm$core$Dict$fromList( 13735 A2( 13736 elm$core$List$map, 13737 elm$core$Tuple$mapSecond( 13738 function (_n37) { 13739 var destination = _n37.destination; 13740 var title = _n37.title; 13741 return _Utils_Tuple2(destination, title); 13742 }), 13743 referencesDict)); 13744 return A2( 13745 elm$core$List$map, 13746 dillonkearns$elm_markdown$Markdown$Parser$mapInline, 13747 A2(dillonkearns$elm_markdown$Markdown$InlineParser$parse, mappedReferencesDict, unparsedInlines)); 13748 }); 13749var dillonkearns$elm_markdown$Markdown$Parser$mapInline = function (inline) { 13750 switch (inline.$) { 13751 case 'Text': 13752 var string = inline.a; 13753 return dillonkearns$elm_markdown$Markdown$Block$Text(string); 13754 case 'HardLineBreak': 13755 return dillonkearns$elm_markdown$Markdown$Block$HardLineBreak; 13756 case 'CodeInline': 13757 var string = inline.a; 13758 return dillonkearns$elm_markdown$Markdown$Block$CodeSpan(string); 13759 case 'Link': 13760 var string = inline.a; 13761 var maybeString = inline.b; 13762 var inlines = inline.c; 13763 return A3( 13764 dillonkearns$elm_markdown$Markdown$Block$Link,
13765 string, 13766 maybeString, 13767 A2(elm$core$List$map, dillonkearns$elm_markdown$Markdown$Parser$mapInline, inlines)); 13768 case 'Image': 13769 var string = inline.a; 13770 var maybeString = inline.b; 13771 var inlines = inline.c; 13772 return A3( 13773 dillonkearns$elm_markdown$Markdown$Block$Image, 13774 string, 13775 maybeString, 13776 A2(elm$core$List$map, dillonkearns$elm_markdown$Markdown$Parser$mapInline, inlines)); 13777 case 'HtmlInline': 13778 var node = inline.a; 13779 return dillonkearns$elm_markdown$Markdown$Block$HtmlInline( 13780 dillonkearns$elm_markdown$Markdown$Parser$nodeToRawBlock(node)); 13781 case 'Emphasis': 13782 var level = inline.a; 13783 var inlines = inline.b; 13784 switch (level) { 13785 case 1: 13786 return dillonkearns$elm_markdown$Markdown$Block$Emphasis( 13787 A2(elm$core$List$map, dillonkearns$elm_markdown$Markdown$Parser$mapInline, inlines)); 13788 case 2: 13789 return dillonkearns$elm_markdown$Markdown$Block$Strong( 13790 A2(elm$core$List$map, dillonkearns$elm_markdown$Markdown$Parser$mapInline, inlines)); 13791 default: 13792 return dillonkearns$elm_markdown$Markdown$Helpers$isEven(level) ? dillonkearns$elm_markdown$Markdown$Block$Strong( 13793 _List_fromArray( 13794 [ 13795 dillonkearns$elm_markdown$Markdown$Parser$mapInline( 13796 A2(dillonkearns$elm_markdown$Markdown$Inline$Emphasis, level - 2, inlines)) 13797 ])) : dillonkearns$elm_markdown$Markdown$Block$Emphasis( 13798 _List_fromArray( 13799 [ 13800 dillonkearns$elm_markdown$Markdown$Parser$mapInline( 13801 A2(dillonkearns$elm_markdown$Markdown$Inline$Emphasis, level - 1, inlines)) 13802 ])); 13803 } 13804 default: 13805 var inlines = inline.a; 13806 return dillonkearns$elm_markdown$Markdown$Block$Strikethrough( 13807 A2(elm$core$List$map, dillonkearns$elm_markdown$Markdown$Parser$mapInline, inlines)); 13808 } 13809}; 13810var dillonkearns$elm_markdown$Markdown$Parser$nodeToRawBlock = function (node) { 13811 switch (node.$) { 13812 case 'Text': 13813 var innerText = node.a; 13814 return dillonkearns$elm_markdown$Markdown$Block$HtmlComment('TODO this never happens, but use types to drop this case.'); 13815 case 'Element': 13816 var tag = node.a; 13817 var attributes = node.b; 13818 var children = node.c; 13819 var parseChild = function (child) { 13820 if (child.$ === 'Text') { 13821 var text = child.a; 13822 return dillonkearns$elm_markdown$Markdown$Parser$textNodeToBlocks(text); 13823 } else { 13824 return _List_fromArray( 13825 [ 13826 dillonkearns$elm_markdown$Markdown$Block$HtmlBlock( 13827 dillonkearns$elm_markdown$Markdown$Parser$nodeToRawBlock(child)) 13828 ]); 13829 } 13830 }; 13831 return A3( 13832 dillonkearns$elm_markdown$Markdown$Block$HtmlElement, 13833 tag, 13834 attributes, 13835 A2(elm$core$List$concatMap, parseChild, children)); 13836 case 'Comment': 13837 var string = node.a; 13838 return dillonkearns$elm_markdown$Markdown$Block$HtmlComment(string); 13839 case 'Cdata': 13840 var string = node.a; 13841 return dillonkearns$elm_markdown$Markdown$Block$Cdata(string); 13842 case 'ProcessingInstruction': 13843 var string = node.a; 13844 return dillonkearns$elm_markdown$Markdown$Block$ProcessingInstruction(string); 13845 default: 13846 var declarationType = node.a; 13847 var content = node.b; 13848 return A2(dillonkearns$elm_markdown$Markdown$Block$HtmlDeclaration, declarationType, content); 13849 } 13850}; 13851var dillonkearns$elm_markdown$Markdown$Parser$nodesToBlocks = function (children) { 13852 return A2(dillonkearns$elm_markdown$Markdown$Parser$nodesToBlocksHelp, children, _List_Nil); 13853}; 13854var dillonkearns$elm_markdown$Markdown$Parser$nodesToBlocksHelp = F2( 13855 function (remaining, soFar) { 13856 nodesToBlocksHelp: 13857 while (true) { 13858 if (remaining.b) { 13859 var node = remaining.a; 13860 var rest = remaining.b; 13861 var _n31 = A2(dillonkearns$elm_markdown$Markdown$Parser$childToBlocks, node, soFar); 13862 if (_n31.$ === 'Ok') { 13863 var newSoFar = _n31.a; 13864 var $temp$remaining = rest, 13865 $temp$soFar = newSoFar; 13866 remaining = $temp$remaining; 13867 soFar = $temp$soFar; 13868 continue nodesToBlocksHelp; 13869 } else { 13870 var e = _n31.a; 13871 return elm$core$Result$Err(e); 13872 } 13873 } else { 13874 return elm$core$Result$Ok( 13875 elm$core$List$reverse(soFar)); 13876 } 13877 } 13878 }); 13879var dillonkearns$elm_markdown$Markdown$Parser$parse = function (input) { 13880 var _n27 = A2( 13881 elm$parser$Parser$Advanced$run, 13882 A2( 13883 elm$parser$Parser$Advanced$ignorer, 13884 dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(), 13885 dillonkearns$elm_markdown$Helpers$endOfFile), 13886 input); 13887 if (_n27.$ === 'Err') { 13888 var e = _n27.a; 13889 return elm$core$Result$Err(e); 13890 } else { 13891 var v = _n27.a; 13892 var _n28 = dillonkearns$elm_markdown$Markdown$Parser$parseAllInlines(v); 13893 if (_n28.$ === 'Err') { 13894 var e = _n28.a; 13895 return A2( 13896 elm$parser$Parser$Advanced$run, 13897 elm$parser$Parser$Advanced$problem(e), 13898 ''); 13899 } else { 13900 var blocks = _n28.a; 13901 var isNotEmptyParagraph = function (block) { 13902 if ((block.$ === 'Paragraph') && (!block.a.b)) { 13903 return false;
13904 } else { 13905 return true; 13906 } 13907 }; 13908 return elm$core$Result$Ok( 13909 A2(elm$core$List$filter, isNotEmptyParagraph, blocks)); 13910 } 13911 } 13912}; 13913var dillonkearns$elm_markdown$Markdown$Parser$parseAllInlines = function (state) { 13914 return A3(dillonkearns$elm_markdown$Markdown$Parser$parseAllInlinesHelp, state, state.rawBlocks, _List_Nil); 13915}; 13916var dillonkearns$elm_markdown$Markdown$Parser$parseAllInlinesHelp = F3( 13917 function (state, rawBlocks, parsedBlocks) { 13918 parseAllInlinesHelp: 13919 while (true) { 13920 if (rawBlocks.b) { 13921 var rawBlock = rawBlocks.a; 13922 var rest = rawBlocks.b; 13923 var _n26 = A2(dillonkearns$elm_markdown$Markdown$Parser$parseInlines, state.linkReferenceDefinitions, rawBlock); 13924 switch (_n26.$) { 13925 case 'ParsedBlock': 13926 var newParsedBlock = _n26.a; 13927 var $temp$state = state, 13928 $temp$rawBlocks = rest, 13929 $temp$parsedBlocks = A2(elm$core$List$cons, newParsedBlock, parsedBlocks); 13930 state = $temp$state; 13931 rawBlocks = $temp$rawBlocks; 13932 parsedBlocks = $temp$parsedBlocks; 13933 continue parseAllInlinesHelp; 13934 case 'EmptyBlock': 13935 var $temp$state = state, 13936 $temp$rawBlocks = rest, 13937 $temp$parsedBlocks = parsedBlocks; 13938 state = $temp$state; 13939 rawBlocks = $temp$rawBlocks; 13940 parsedBlocks = $temp$parsedBlocks; 13941 continue parseAllInlinesHelp; 13942 default: 13943 var e = _n26.a; 13944 return elm$core$Result$Err(e); 13945 } 13946 } else { 13947 return elm$core$Result$Ok(parsedBlocks); 13948 } 13949 } 13950 }); 13951var dillonkearns$elm_markdown$Markdown$Parser$parseHeaderInlines = F2( 13952 function (linkReferences, header) { 13953 return A2( 13954 elm$core$List$map, 13955 function (_n24) { 13956 var label = _n24.label; 13957 var alignment = _n24.alignment; 13958 return A3( 13959 dillonkearns$elm_markdown$Markdown$Parser$parseRawInline, 13960 linkReferences, 13961 function (parsedHeaderLabel) { 13962 return {alignment: alignment, label: parsedHeaderLabel}; 13963 }, 13964 dillonkearns$elm_markdown$Markdown$RawBlock$UnparsedInlines(label)); 13965 }, 13966 header); 13967 }); 13968var dillonkearns$elm_markdown$Markdown$Parser$parseInlines = F2( 13969 function (linkReferences, rawBlock) { 13970 switch (rawBlock.$) { 13971 case 'Heading': 13972 var level = rawBlock.a; 13973 var unparsedInlines = rawBlock.b; 13974 var _n17 = dillonkearns$elm_markdown$Markdown$Parser$toHeading(level); 13975 if (_n17.$ === 'Ok') { 13976 var parsedLevel = _n17.a; 13977 return dillonkearns$elm_markdown$Markdown$Parser$ParsedBlock( 13978 A2( 13979 dillonkearns$elm_markdown$Markdown$Block$Heading, 13980 parsedLevel, 13981 A2(dillonkearns$elm_markdown$Markdown$Parser$inlineParseHelper, linkReferences, unparsedInlines))); 13982 } else { 13983 var e = _n17.a; 13984 return dillonkearns$elm_markdown$Markdown$Parser$InlineProblem(e); 13985 } 13986 case 'OpenBlockOrParagraph': 13987 var unparsedInlines = rawBlock.a; 13988 return dillonkearns$elm_markdown$Markdown$Parser$ParsedBlock( 13989 dillonkearns$elm_markdown$Markdown$Block$Paragraph( 13990 A2(dillonkearns$elm_markdown$Markdown$Parser$inlineParseHelper, linkReferences, unparsedInlines))); 13991 case 'Html': 13992 var html = rawBlock.a; 13993 return dillonkearns$elm_markdown$Markdown$Parser$ParsedBlock( 13994 dillonkearns$elm_markdown$Markdown$Block$HtmlBlock(html)); 13995 case 'UnorderedListBlock': 13996 var tight = rawBlock.a; 13997 var intended = rawBlock.b; 13998 var unparsedItems = rawBlock.c; 13999 var parseItem = F2( 14000 function (rawBlockTask, rawBlocks) { 14001 var blocksTask = function () { 14002 if (rawBlockTask.$ === 'Just') { 14003 if (!rawBlockTask.a) { 14004 return dillonkearns$elm_markdown$Markdown$Block$IncompleteTask; 14005 } else { 14006 return dillonkearns$elm_markdown$Markdown$Block$CompletedTask; 14007 } 14008 } else { 14009 return dillonkearns$elm_markdown$Markdown$Block$NoTask; 14010 } 14011 }(); 14012 var blocks = function () { 14013 var _n18 = dillonkearns$elm_markdown$Markdown$Parser$parseAllInlines( 14014 {linkReferenceDefinitions: linkReferences, rawBlocks: rawBlocks}); 14015 if (_n18.$ === 'Ok') { 14016 var parsedBlocks = _n18.a; 14017 return parsedBlocks; 14018 } else { 14019 var e = _n18.a; 14020 return _List_Nil; 14021 } 14022 }(); 14023 return A2(dillonkearns$elm_markdown$Markdown$Block$ListItem, blocksTask, blocks); 14024 }); 14025 return dillonkearns$elm_markdown$Markdown$Parser$ParsedBlock( 14026 A2( 14027 dillonkearns$elm_markdown$Markdown$Block$UnorderedList, 14028 dillonkearns$elm_markdown$Markdown$Parser$isTightBoolToListDisplay(tight), 14029 elm$core$List$reverse( 14030 A2( 14031 elm$core$List$map, 14032 function (item) { 14033 return A2(parseItem, item.task, item.body); 14034 }, 14035 unparsedItems)))); 14036 case 'OrderedListBlock': 14037 var tight = rawBlock.a; 14038 var startingIndex = rawBlock.d; 14039 var unparsedItems = rawBlock.e; 14040 var parseItem = function (rawBlocks) { 14041 var _n20 = dillonkearns$elm_markdown$Markdown$Parser$parseAllInlines( 14042 {linkReferenceDefinitions: linkReferences, rawBlocks: rawBlocks}); 14043 if (_n20.$ === 'Ok') { 14044 var parsedBlocks = _n20.a; 14045 return parsedBlocks; 14046 } else { 14047 var e = _n20.a; 14048 return _List_Nil; 14049 } 14050 }; 14051 return dillonkearns$elm_markdown$Markdown$Parser$ParsedBlock( 14052 A3( 14053 dillonkearns$elm_markdown$Markdown$Block$OrderedList, 14054 dillonkearns$elm_markdown$Markdown$Parser$isTightBoolToListDisplay(tight), 14055 startingIndex, 14056 elm$core$List$reverse( 14057 A2(elm$core$List$map, parseItem, unparsedItems)))); 14058 case 'CodeBlock': 14059 var codeBlock = rawBlock.a; 14060 return dillonkearns$elm_markdown$Markdown$Parser$ParsedBlock( 14061 dillonkearns$elm_markdown$Markdown$Block$CodeBlock(codeBlock)); 14062 case 'ThematicBreak': 14063 return dillonkearns$elm_markdown$Markdown$Parser$ParsedBlock(dillonkearns$elm_markdown$Markdown$Block$ThematicBreak); 14064 case 'BlankLine': 14065 return dillonkearns$elm_markdown$Markdown$Parser$EmptyBlock; 14066 case 'BlockQuote': 14067 var rawBlocks = rawBlock.a; 14068 return dillonkearns$elm_markdown$Markdown$Parser$EmptyBlock; 14069 case 'ParsedBlockQuote': 14070 var rawBlocks = rawBlock.a; 14071 var _n21 = dillonkearns$elm_markdown$Markdown$Parser$parseAllInlines( 14072 {linkReferenceDefinitions: linkReferences, rawBlocks: rawBlocks}); 14073 if (_n21.$ === 'Ok') { 14074 var parsedBlocks = _n21.a; 14075 return dillonkearns$elm_markdown$Markdown$Parser$ParsedBlock( 14076 dillonkearns$elm_markdown$Markdown$Block$BlockQuote(parsedBlocks)); 14077 } else { 14078 var e = _n21.a; 14079 return dillonkearns$elm_markdown$Markdown$Parser$InlineProblem(e); 14080 } 14081 case 'IndentedCodeBlock': 14082 var codeBlockBody = rawBlock.a; 14083 return dillonkearns$elm_markdown$Markdown$Parser$ParsedBlock( 14084 dillonkearns$elm_markdown$Markdown$Block$CodeBlock( 14085 {body: codeBlockBody, language: elm$core$Maybe$Nothing})); 14086 case 'Table': 14087 var _n22 = rawBlock.a; 14088 var header = _n22.a; 14089 var rows = _n22.b; 14090 return dillonkearns$elm_markdown$Markdown$Parser$ParsedBlock( 14091 A2( 14092 dillonkearns$elm_markdown$Markdown$Block$Table, 14093 A2(dillonkearns$elm_markdown$Markdown$Parser$parseHeaderInlines, linkReferences, header), 14094 A2(dillonkearns$elm_markdown$Markdown$Parser$parseRowInlines, linkReferences, rows))); 14095 case 'TableDelimiter': 14096 var _n23 = rawBlock.a; 14097 var text = _n23.a; 14098 return dillonkearns$elm_markdown$Markdown$Parser$ParsedBlock( 14099 dillonkearns$elm_markdown$Markdown$Block$Paragraph( 14100 A2( 14101 dillonkearns$elm_markdown$Markdown$Parser$inlineParseHelper, 14102 linkReferences, 14103 dillonkearns$elm_markdown$Markdown$RawBlock$UnparsedInlines(text.raw)))); 14104 default: 14105 var raw = rawBlock.b; 14106 return dillonkearns$elm_markdown$Markdown$Parser$ParsedBlock( 14107 dillonkearns$elm_markdown$Markdown$Block$Paragraph( 14108 A2( 14109 dillonkearns$elm_markdown$Markdown$Parser$inlineParseHelper, 14110 linkReferences, 14111 dillonkearns$elm_markdown$Markdown$RawBlock$UnparsedInlines(raw)))); 14112 } 14113 }); 14114var dillonkearns$elm_markdown$Markdown$Parser$parseRawInline = F3( 14115 function (linkReferences, wrap, unparsedInlines) { 14116 return wrap( 14117 A2(dillonkearns$elm_markdown$Markdown$Parser$inlineParseHelper, linkReferences, unparsedInlines)); 14118 }); 14119var dillonkearns$elm_markdown$Markdown$Parser$parseRowInlines = F2( 14120 function (linkReferences, rows) { 14121 return A2( 14122 elm$core$List$map, 14123 function (row) { 14124 return A2( 14125 elm$core$List$map, 14126 function (column) { 14127 return A3( 14128 dillonkearns$elm_markdown$Markdown$Parser$parseRawInline, 14129 linkReferences, 14130 elm$core$Basics$identity, 14131 dillonkearns$elm_markdown$Markdown$RawBlock$UnparsedInlines(column)); 14132 }, 14133 row); 14134 }, 14135 rows); 14136 }); 14137var dillonkearns$elm_markdown$Markdown$Parser$stepRawBlock = function (revStmts) { 14138 return elm$parser$Parser$Advanced$oneOf( 14139 _List_fromArray( 14140 [ 14141 A2( 14142 elm$parser$Parser$Advanced$map, 14143 function (_n2) { 14144 return elm$parser$Parser$Advanced$Done(revStmts); 14145 }, 14146 dillonkearns$elm_markdown$Helpers$endOfFile), 14147 A2( 14148 elm$parser$Parser$Advanced$map, 14149 function (reference) { 14150 return elm$parser$Parser$Advanced$Loop( 14151 A2(dillonkearns$elm_markdown$Markdown$Parser$addReference, revStmts, reference)); 14152 }, 14153 elm$parser$Parser$Advanced$backtrackable(dillonkearns$elm_markdown$Markdown$LinkReferenceDefinition$parser)), 14154 function () { 14155 var _n3 = revStmts.rawBlocks; 14156 _n3$6: 14157 while (true) { 14158 if (_n3.b) { 14159 switch (_n3.a.$) { 14160 case 'OpenBlockOrParagraph': 14161 return A2( 14162 elm$parser$Parser$Advanced$map, 14163 function (block) { 14164 return elm$parser$Parser$Advanced$Loop(block); 14165 }, 14166 A2( 14167 elm$parser$Parser$Advanced$andThen, 14168 dillonkearns$elm_markdown$Markdown$Parser$completeOrMergeBlocks(revStmts), 14169 dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockAfterOpenBlockOrParagraphParser())); 14170 case 'Table': 14171 var table = _n3.a.a; 14172 return A2( 14173 elm$parser$Parser$Advanced$map, 14174 function (block) { 14175 return elm$parser$Parser$Advanced$Loop(block); 14176 }, 14177 A2( 14178 elm$parser$Parser$Advanced$andThen, 14179 dillonkearns$elm_markdown$Markdown$Parser$completeOrMergeBlocks(revStmts), 14180 elm$parser$Parser$Advanced$oneOf( 14181 _List_fromArray( 14182 [ 14183 dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockNotAfterOpenBlockOrParagraphParser(), 14184 dillonkearns$elm_markdown$Markdown$Parser$tableRowIfTableStarted(table) 14185 ])))); 14186 case 'UnorderedListBlock': 14187 var _n4 = _n3.a; 14188 var tight = _n4.a; 14189 var intended = _n4.b; 14190 var closeListItems = _n4.c; 14191 var openListItem = _n4.d; 14192 var rest = _n3.b; 14193 var completeOrMergeUnorderedListBlockBlankLine = F2( 14194 function (state, newString) { 14195 return _Utils_update( 14196 state, 14197 { 14198 rawBlocks: A2( 14199 elm$core$List$cons, 14200 dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine, 14201 A2( 14202 elm$core$List$cons, 14203 A4( 14204 dillonkearns$elm_markdown$Markdown$RawBlock$UnorderedListBlock, 14205 tight, 14206 intended, 14207 closeListItems, 14208 _Utils_update( 14209 openListItem, 14210 { 14211 body: A3(dillonkearns$elm_markdown$Markdown$Parser$joinRawStringsWith, '', openListItem.body, newString) 14212 })), 14213 rest)) 14214 }); 14215 }); 14216 var completeOrMergeUnorderedListBlock = F2( 14217 function (state, newString) { 14218 return _Utils_update( 14219 state, 14220 { 14221 rawBlocks: A2( 14222 elm$core$List$cons, 14223 A4( 14224 dillonkearns$elm_markdown$Markdown$RawBlock$UnorderedListBlock, 14225 tight, 14226 intended, 14227 closeListItems, 14228 _Utils_update( 14229 openListItem, 14230 { 14231 body: A3(dillonkearns$elm_markdown$Markdown$Parser$joinRawStringsWith, '\n', openListItem.body, newString) 14232 })), 14233 rest) 14234 }); 14235 }); 14236 return elm$parser$Parser$Advanced$oneOf( 14237 _List_fromArray( 14238 [ 14239 A2( 14240 elm$parser$Parser$Advanced$map, 14241 function (block) { 14242 return elm$parser$Parser$Advanced$Loop(block); 14243 }, 14244 A2( 14245 elm$parser$Parser$Advanced$map, 14246 function (_n5) { 14247 return A2(completeOrMergeUnorderedListBlockBlankLine, revStmts, '\n'); 14248 }, 14249 dillonkearns$elm_markdown$Markdown$Parser$blankLine)), 14250 A2( 14251 elm$parser$Parser$Advanced$map, 14252 function (block) { 14253 return elm$parser$Parser$Advanced$Loop(block); 14254 }, 14255 A2( 14256 elm$parser$Parser$Advanced$map, 14257 completeOrMergeUnorderedListBlock(revStmts), 14258 A2( 14259 elm$parser$Parser$Advanced$keeper, 14260 A2( 14261 elm$parser$Parser$Advanced$ignorer, 14262 elm$parser$Parser$Advanced$succeed(elm$core$Basics$identity), 14263 elm$parser$Parser$Advanced$symbol( 14264 A2( 14265 elm$parser$Parser$Advanced$Token, 14266 A2(elm$core$String$repeat, intended, ' '), 14267 elm$parser$Parser$ExpectingSymbol('Indentation')))), 14268 A2( 14269 elm$parser$Parser$Advanced$ignorer, 14270 elm$parser$Parser$Advanced$getChompedString(dillonkearns$elm_markdown$Helpers$chompUntilLineEndOrEnd), 14271 dillonkearns$elm_markdown$Helpers$lineEndOrEnd)))), 14272 A2( 14273 elm$parser$Parser$Advanced$map, 14274 function (block) { 14275 return elm$parser$Parser$Advanced$Loop(block); 14276 }, 14277 A2( 14278 elm$parser$Parser$Advanced$andThen, 14279 dillonkearns$elm_markdown$Markdown$Parser$completeOrMergeBlocks(revStmts), 14280 dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockAfterList())) 14281 ])); 14282 case 'OrderedListBlock': 14283 var _n10 = _n3.a; 14284 var tight = _n10.a; 14285 var intended = _n10.b; 14286 var marker = _n10.c; 14287 var order = _n10.d; 14288 var closeListItems = _n10.e; 14289 var openListItem = _n10.f; 14290 var rest = _n3.b; 14291 var completeOrMergeUnorderedListBlockBlankLine = F2( 14292 function (state, newString) { 14293 return _Utils_update( 14294 state, 14295 { 14296 rawBlocks: A2( 14297 elm$core$List$cons, 14298 dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine, 14299 A2( 14300 elm$core$List$cons, 14301 A6(dillonkearns$elm_markdown$Markdown$RawBlock$OrderedListBlock, tight, intended, marker, order, closeListItems, openListItem + ('\n' + newString)), 14302 rest)) 14303 }); 14304 }); 14305 var completeOrMergeUnorderedListBlock = F2( 14306 function (state, newString) { 14307 return _Utils_update( 14308 state, 14309 { 14310 rawBlocks: A2( 14311 elm$core$List$cons, 14312 A6(dillonkearns$elm_markdown$Markdown$RawBlock$OrderedListBlock, tight, intended, marker, order, closeListItems, openListItem + ('\n' + newString)), 14313 rest) 14314 }); 14315 }); 14316 return elm$parser$Parser$Advanced$oneOf( 14317 _List_fromArray( 14318 [ 14319 A2( 14320 elm$parser$Parser$Advanced$map, 14321 function (block) { 14322 return elm$parser$Parser$Advanced$Loop(block); 14323 }, 14324 A2( 14325 elm$parser$Parser$Advanced$map, 14326 function (_n11) { 14327 return A2(completeOrMergeUnorderedListBlockBlankLine, revStmts, '\n'); 14328 }, 14329 dillonkearns$elm_markdown$Markdown$Parser$blankLine)), 14330 A2( 14331 elm$parser$Parser$Advanced$map, 14332 function (block) { 14333 return elm$parser$Parser$Advanced$Loop(block); 14334 }, 14335 A2( 14336 elm$parser$Parser$Advanced$map, 14337 completeOrMergeUnorderedListBlock(revStmts), 14338 A2( 14339 elm$parser$Parser$Advanced$keeper, 14340 A2( 14341 elm$parser$Parser$Advanced$ignorer, 14342 elm$parser$Parser$Advanced$succeed(elm$core$Basics$identity), 14343 elm$parser$Parser$Advanced$symbol( 14344 A2( 14345 elm$parser$Parser$Advanced$Token,
14346 A2(elm$core$String$repeat, intended, ' '), 14347 elm$parser$Parser$ExpectingSymbol('Indentation')))), 14348 A2( 14349 elm$parser$Parser$Advanced$ignorer, 14350 elm$parser$Parser$Advanced$getChompedString(dillonkearns$elm_markdown$Helpers$chompUntilLineEndOrEnd), 14351 dillonkearns$elm_markdown$Helpers$lineEndOrEnd)))), 14352 A2( 14353 elm$parser$Parser$Advanced$map, 14354 function (block) { 14355 return elm$parser$Parser$Advanced$Loop(block); 14356 }, 14357 A2( 14358 elm$parser$Parser$Advanced$andThen, 14359 dillonkearns$elm_markdown$Markdown$Parser$completeOrMergeBlocks(revStmts), 14360 dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockAfterList())) 14361 ])); 14362 case 'BlankLine': 14363 if (_n3.b.b) { 14364 switch (_n3.b.a.$) { 14365 case 'UnorderedListBlock': 14366 var _n6 = _n3.a; 14367 var _n7 = _n3.b; 14368 var _n8 = _n7.a; 14369 var tight = _n8.a; 14370 var intended = _n8.b; 14371 var closeListItems = _n8.c; 14372 var openListItem = _n8.d; 14373 var rest = _n7.b; 14374 var completeOrMergeUnorderedListBlockBlankLine = F2( 14375 function (state, newString) { 14376 return _Utils_update( 14377 state, 14378 { 14379 rawBlocks: A2( 14380 elm$core$List$cons, 14381 dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine, 14382 A2( 14383 elm$core$List$cons, 14384 A4( 14385 dillonkearns$elm_markdown$Markdown$RawBlock$UnorderedListBlock, 14386 tight, 14387 intended, 14388 closeListItems, 14389 _Utils_update( 14390 openListItem, 14391 { 14392 body: A3(dillonkearns$elm_markdown$Markdown$Parser$joinRawStringsWith, '', openListItem.body, newString) 14393 })), 14394 rest)) 14395 }); 14396 }); 14397 var completeOrMergeUnorderedListBlock = F2( 14398 function (state, newString) { 14399 return _Utils_update( 14400 state, 14401 { 14402 rawBlocks: A2( 14403 elm$core$List$cons, 14404 A4( 14405 dillonkearns$elm_markdown$Markdown$RawBlock$UnorderedListBlock, 14406 tight, 14407 intended, 14408 closeListItems, 14409 _Utils_update( 14410 openListItem, 14411 { 14412 body: A3(dillonkearns$elm_markdown$Markdown$Parser$joinRawStringsWith, '\n', openListItem.body, newString) 14413 })), 14414 rest) 14415 }); 14416 }); 14417 return (elm$core$String$trim(openListItem.body) === '') ? A2( 14418 elm$parser$Parser$Advanced$map, 14419 function (block) { 14420 return elm$parser$Parser$Advanced$Loop(block); 14421 }, 14422 A2( 14423 elm$parser$Parser$Advanced$andThen, 14424 dillonkearns$elm_markdown$Markdown$Parser$completeOrMergeBlocks(revStmts), 14425 dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockNotAfterOpenBlockOrParagraphParser())) : elm$parser$Parser$Advanced$oneOf( 14426 _List_fromArray( 14427 [ 14428 A2( 14429 elm$parser$Parser$Advanced$map, 14430 function (block) { 14431 return elm$parser$Parser$Advanced$Loop(block); 14432 }, 14433 A2( 14434 elm$parser$Parser$Advanced$map, 14435 function (_n9) { 14436 return A2(completeOrMergeUnorderedListBlockBlankLine, revStmts, '\n'); 14437 }, 14438 dillonkearns$elm_markdown$Markdown$Parser$blankLine)), 14439 A2( 14440 elm$parser$Parser$Advanced$map, 14441 function (block) { 14442 return elm$parser$Parser$Advanced$Loop(block); 14443 }, 14444 A2( 14445 elm$parser$Parser$Advanced$map, 14446 completeOrMergeUnorderedListBlock(revStmts), 14447 A2( 14448 elm$parser$Parser$Advanced$keeper, 14449 A2( 14450 elm$parser$Parser$Advanced$ignorer, 14451 elm$parser$Parser$Advanced$succeed(elm$core$Basics$identity), 14452 elm$parser$Parser$Advanced$symbol( 14453 A2( 14454 elm$parser$Parser$Advanced$Token, 14455 A2(elm$core$String$repeat, intended, ' '), 14456 elm$parser$Parser$ExpectingSymbol('Indentation')))), 14457 A2( 14458 elm$parser$Parser$Advanced$ignorer, 14459 elm$parser$Parser$Advanced$getChompedString(dillonkearns$elm_markdown$Helpers$chompUntilLineEndOrEnd), 14460 dillonkearns$elm_markdown$Helpers$lineEndOrEnd)))), 14461 A2( 14462 elm$parser$Parser$Advanced$map, 14463 function (block) { 14464 return elm$parser$Parser$Advanced$Loop(block); 14465 }, 14466 A2( 14467 elm$parser$Parser$Advanced$andThen, 14468 dillonkearns$elm_markdown$Markdown$Parser$completeOrMergeBlocks(revStmts), 14469 dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockNotAfterOpenBlockOrParagraphParser())) 14470 ])); 14471 case 'OrderedListBlock': 14472 var _n12 = _n3.a; 14473 var _n13 = _n3.b; 14474 var _n14 = _n13.a; 14475 var tight = _n14.a; 14476 var intended = _n14.b; 14477 var marker = _n14.c; 14478 var order = _n14.d; 14479 var closeListItems = _n14.e; 14480 var openListItem = _n14.f; 14481 var rest = _n13.b; 14482 var completeOrMergeUnorderedListBlockBlankLine = F2( 14483 function (state, newString) { 14484 return _Utils_update( 14485 state, 14486 { 14487 rawBlocks: A2( 14488 elm$core$List$cons, 14489 dillonkearns$elm_markdown$Markdown$RawBlock$BlankLine, 14490 A2( 14491 elm$core$List$cons, 14492 A6(dillonkearns$elm_markdown$Markdown$RawBlock$OrderedListBlock, tight, intended, marker, order, closeListItems, openListItem + ('\n' + newString)), 14493 rest)) 14494 }); 14495 }); 14496 var completeOrMergeUnorderedListBlock = F2( 14497 function (state, newString) { 14498 return _Utils_update( 14499 state, 14500 { 14501 rawBlocks: A2( 14502 elm$core$List$cons, 14503 A6(dillonkearns$elm_markdown$Markdown$RawBlock$OrderedListBlock, tight, intended, marker, order, closeListItems, openListItem + ('\n' + newString)), 14504 rest) 14505 }); 14506 }); 14507 return (elm$core$String$trim(openListItem) === '') ? A2( 14508 elm$parser$Parser$Advanced$map, 14509 function (block) { 14510 return elm$parser$Parser$Advanced$Loop(block); 14511 }, 14512 A2( 14513 elm$parser$Parser$Advanced$andThen, 14514 dillonkearns$elm_markdown$Markdown$Parser$completeOrMergeBlocks(revStmts), 14515 dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockNotAfterOpenBlockOrParagraphParser())) : elm$parser$Parser$Advanced$oneOf( 14516 _List_fromArray( 14517 [ 14518 A2( 14519 elm$parser$Parser$Advanced$map, 14520 function (block) { 14521 return elm$parser$Parser$Advanced$Loop(block); 14522 }, 14523 A2( 14524 elm$parser$Parser$Advanced$map, 14525 function (_n15) { 14526 return A2(completeOrMergeUnorderedListBlockBlankLine, revStmts, '\n'); 14527 }, 14528 dillonkearns$elm_markdown$Markdown$Parser$blankLine)), 14529 A2( 14530 elm$parser$Parser$Advanced$map, 14531 function (block) { 14532 return elm$parser$Parser$Advanced$Loop(block); 14533 }, 14534 A2( 14535 elm$parser$Parser$Advanced$map, 14536 completeOrMergeUnorderedListBlock(revStmts), 14537 A2( 14538 elm$parser$Parser$Advanced$keeper, 14539 A2( 14540 elm$parser$Parser$Advanced$ignorer, 14541 elm$parser$Parser$Advanced$succeed(elm$core$Basics$identity), 14542 elm$parser$Parser$Advanced$symbol( 14543 A2( 14544 elm$parser$Parser$Advanced$Token, 14545 A2(elm$core$String$repeat, intended, ' '), 14546 elm$parser$Parser$ExpectingSymbol('Indentation')))), 14547 A2( 14548 elm$parser$Parser$Advanced$ignorer, 14549 elm$parser$Parser$Advanced$getChompedString(dillonkearns$elm_markdown$Helpers$chompUntilLineEndOrEnd), 14550 dillonkearns$elm_markdown$Helpers$lineEndOrEnd)))), 14551 A2( 14552 elm$parser$Parser$Advanced$map, 14553 function (block) { 14554 return elm$parser$Parser$Advanced$Loop(block); 14555 }, 14556 A2( 14557 elm$parser$Parser$Advanced$andThen, 14558 dillonkearns$elm_markdown$Markdown$Parser$completeOrMergeBlocks(revStmts), 14559 dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockNotAfterOpenBlockOrParagraphParser())) 14560 ])); 14561 default: 14562 break _n3$6; 14563 } 14564 } else { 14565 break _n3$6; 14566 } 14567 default: 14568 break _n3$6; 14569 } 14570 } else { 14571 break _n3$6; 14572 } 14573 } 14574 return A2( 14575 elm$parser$Parser$Advanced$map, 14576 function (block) { 14577 return elm$parser$Parser$Advanced$Loop(block); 14578 }, 14579 A2( 14580 elm$parser$Parser$Advanced$andThen, 14581 dillonkearns$elm_markdown$Markdown$Parser$completeOrMergeBlocks(revStmts), 14582 dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockNotAfterOpenBlockOrParagraphParser())); 14583 }(), 14584 A2( 14585 elm$parser$Parser$Advanced$map, 14586 function (block) { 14587 return elm$parser$Parser$Advanced$Loop(block); 14588 }, 14589 A2( 14590 elm$parser$Parser$Advanced$andThen, 14591 dillonkearns$elm_markdown$Markdown$Parser$completeOrMergeBlocks(revStmts), 14592 dillonkearns$elm_markdown$Markdown$Parser$openBlockOrParagraphParser)) 14593 ])); 14594}; 14595var dillonkearns$elm_markdown$Markdown$Parser$textNodeToBlocks = function (textNodeValue) { 14596 return A2( 14597 elm$core$Result$withDefault, 14598 _List_Nil, 14599 dillonkearns$elm_markdown$Markdown$Parser$parse(textNodeValue)); 14600}; 14601var dillonkearns$elm_markdown$Markdown$Parser$xmlNodeToHtmlNode = function (xmlNode) { 14602 switch (xmlNode.$) { 14603 case 'Text': 14604 var innerText = xmlNode.a; 14605 return elm$parser$Parser$Advanced$succeed( 14606 dillonkearns$elm_markdown$Markdown$RawBlock$OpenBlockOrParagraph( 14607 dillonkearns$elm_markdown$Markdown$RawBlock$UnparsedInlines(innerText))); 14608 case 'Element': 14609 var tag = xmlNode.a; 14610 var attributes = xmlNode.b; 14611 var children = xmlNode.c; 14612 var _n1 = dillonkearns$elm_markdown$Markdown$Parser$nodesToBlocks(children); 14613 if (_n1.$ === 'Ok') { 14614 var parsedChildren = _n1.a; 14615 return elm$parser$Parser$Advanced$succeed( 14616 dillonkearns$elm_markdown$Markdown$RawBlock$Html( 14617 A3(dillonkearns$elm_markdown$Markdown$Block$HtmlElement, tag, attributes, parsedChildren))); 14618 } else { 14619 var err = _n1.a; 14620 return elm$parser$Parser$Advanced$problem(err); 14621 } 14622 case 'Comment': 14623 var string = xmlNode.a; 14624 return elm$parser$Parser$Advanced$succeed( 14625 dillonkearns$elm_markdown$Markdown$RawBlock$Html( 14626 dillonkearns$elm_markdown$Markdown$Block$HtmlComment(string))); 14627 case 'Cdata': 14628 var string = xmlNode.a; 14629 return elm$parser$Parser$Advanced$succeed( 14630 dillonkearns$elm_markdown$Markdown$RawBlock$Html(
14631 dillonkearns$elm_markdown$Markdown$Block$Cdata(string))); 14632 case 'ProcessingInstruction': 14633 var string = xmlNode.a; 14634 return elm$parser$Parser$Advanced$succeed( 14635 dillonkearns$elm_markdown$Markdown$RawBlock$Html( 14636 dillonkearns$elm_markdown$Markdown$Block$ProcessingInstruction(string))); 14637 default: 14638 var declarationType = xmlNode.a; 14639 var content = xmlNode.b; 14640 return elm$parser$Parser$Advanced$succeed( 14641 dillonkearns$elm_markdown$Markdown$RawBlock$Html( 14642 A2(dillonkearns$elm_markdown$Markdown$Block$HtmlDeclaration, declarationType, content))); 14643 } 14644}; 14645function dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser() { 14646 return A2( 14647 elm$parser$Parser$Advanced$andThen, 14648 dillonkearns$elm_markdown$Markdown$Parser$completeBlocks, 14649 A2( 14650 elm$parser$Parser$Advanced$loop, 14651 {linkReferenceDefinitions: _List_Nil, rawBlocks: _List_Nil}, 14652 dillonkearns$elm_markdown$Markdown$Parser$stepRawBlock)); 14653} 14654function dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockNotAfterOpenBlockOrParagraphParser() { 14655 return elm$parser$Parser$Advanced$oneOf( 14656 _List_fromArray( 14657 [ 14658 dillonkearns$elm_markdown$Markdown$Parser$parseAsParagraphInsteadOfHtmlBlock, 14659 dillonkearns$elm_markdown$Markdown$Parser$blankLine, 14660 dillonkearns$elm_markdown$Markdown$Parser$blockQuote, 14661 A2( 14662 elm$parser$Parser$Advanced$map, 14663 dillonkearns$elm_markdown$Markdown$RawBlock$CodeBlock, 14664 elm$parser$Parser$Advanced$backtrackable(dillonkearns$elm_markdown$Markdown$CodeBlock$parser)), 14665 dillonkearns$elm_markdown$Markdown$Parser$indentedCodeBlock, 14666 A2( 14667 elm$parser$Parser$Advanced$map, 14668 function (_n40) { 14669 return dillonkearns$elm_markdown$Markdown$RawBlock$ThematicBreak; 14670 }, 14671 elm$parser$Parser$Advanced$backtrackable(dillonkearns$elm_markdown$ThematicBreak$parser)), 14672 dillonkearns$elm_markdown$Markdown$Parser$unorderedListBlock(false), 14673 dillonkearns$elm_markdown$Markdown$Parser$orderedListBlock(false), 14674 elm$parser$Parser$Advanced$backtrackable(dillonkearns$elm_markdown$Markdown$Heading$parser), 14675 dillonkearns$elm_markdown$Markdown$Parser$cyclic$htmlParser() 14676 ])); 14677} 14678function dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockAfterOpenBlockOrParagraphParser() { 14679 return elm$parser$Parser$Advanced$oneOf( 14680 _List_fromArray( 14681 [ 14682 dillonkearns$elm_markdown$Markdown$Parser$parseAsParagraphInsteadOfHtmlBlock, 14683 dillonkearns$elm_markdown$Markdown$Parser$blankLine, 14684 dillonkearns$elm_markdown$Markdown$Parser$blockQuote, 14685 A2( 14686 elm$parser$Parser$Advanced$map, 14687 dillonkearns$elm_markdown$Markdown$RawBlock$CodeBlock, 14688 elm$parser$Parser$Advanced$backtrackable(dillonkearns$elm_markdown$Markdown$CodeBlock$parser)), 14689 elm$parser$Parser$Advanced$backtrackable(dillonkearns$elm_markdown$Markdown$Parser$setextLineParser), 14690 A2( 14691 elm$parser$Parser$Advanced$map, 14692 function (_n39) { 14693 return dillonkearns$elm_markdown$Markdown$RawBlock$ThematicBreak; 14694 }, 14695 elm$parser$Parser$Advanced$backtrackable(dillonkearns$elm_markdown$ThematicBreak$parser)), 14696 dillonkearns$elm_markdown$Markdown$Parser$unorderedListBlock(true), 14697 dillonkearns$elm_markdown$Markdown$Parser$orderedListBlock(true), 14698 elm$parser$Parser$Advanced$backtrackable(dillonkearns$elm_markdown$Markdown$Heading$parser), 14699 dillonkearns$elm_markdown$Markdown$Parser$cyclic$htmlParser(), 14700 elm$parser$Parser$Advanced$backtrackable(dillonkearns$elm_markdown$Markdown$Parser$tableDelimiterInOpenParagraph) 14701 ])); 14702} 14703function dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockAfterList() { 14704 return elm$parser$Parser$Advanced$oneOf( 14705 _List_fromArray( 14706 [ 14707 dillonkearns$elm_markdown$Markdown$Parser$parseAsParagraphInsteadOfHtmlBlock, 14708 dillonkearns$elm_markdown$Markdown$Parser$blankLine, 14709 dillonkearns$elm_markdown$Markdown$Parser$blockQuote, 14710 A2( 14711 elm$parser$Parser$Advanced$map, 14712 dillonkearns$elm_markdown$Markdown$RawBlock$CodeBlock, 14713 elm$parser$Parser$Advanced$backtrackable(dillonkearns$elm_markdown$Markdown$CodeBlock$parser)), 14714 A2( 14715 elm$parser$Parser$Advanced$map, 14716 function (_n38) { 14717 return dillonkearns$elm_markdown$Markdown$RawBlock$ThematicBreak; 14718 }, 14719 elm$parser$Parser$Advanced$backtrackable(dillonkearns$elm_markdown$ThematicBreak$parser)), 14720 dillonkearns$elm_markdown$Markdown$Parser$unorderedListBlock(false), 14721 dillonkearns$elm_markdown$Markdown$Parser$orderedListBlock(false), 14722 elm$parser$Parser$Advanced$backtrackable(dillonkearns$elm_markdown$Markdown$Heading$parser), 14723 dillonkearns$elm_markdown$Markdown$Parser$cyclic$htmlParser() 14724 ])); 14725} 14726function dillonkearns$elm_markdown$Markdown$Parser$cyclic$htmlParser() { 14727 return A2(elm$parser$Parser$Advanced$andThen, dillonkearns$elm_markdown$Markdown$Parser$xmlNodeToHtmlNode, dillonkearns$elm_markdown$HtmlParser$html); 14728} 14729try { 14730 var dillonkearns$elm_markdown$Markdown$Parser$rawBlockParser = dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser(); 14731 dillonkearns$elm_markdown$Markdown$Parser$cyclic$rawBlockParser = function () { 14732 return dillonkearns$elm_markdown$Markdown$Parser$rawBlockParser; 14733 }; 14734 var dillonkearns$elm_markdown$Markdown$Parser$mergeableBlockNotAfterOpenBlockOrParagraphParser = dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockNotAfterOpenBlockOrParagraphParser(); 14735 dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockNotAfterOpenBlockOrParagraphParser = function () { 14736 return dillonkearns$elm_markdown$Markdown$Parser$mergeableBlockNotAfterOpenBlockOrParagraphParser; 14737 }; 14738 var dillonkearns$elm_markdown$Markdown$Parser$mergeableBlockAfterOpenBlockOrParagraphParser = dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockAfterOpenBlockOrParagraphParser(); 14739 dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockAfterOpenBlockOrParagraphParser = function () { 14740 return dillonkearns$elm_markdown$Markdown$Parser$mergeableBlockAfterOpenBlockOrParagraphParser; 14741 }; 14742 var dillonkearns$elm_markdown$Markdown$Parser$mergeableBlockAfterList = dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockAfterList(); 14743 dillonkearns$elm_markdown$Markdown$Parser$cyclic$mergeableBlockAfterList = function () { 14744 return dillonkearns$elm_markdown$Markdown$Parser$mergeableBlockAfterList; 14745 }; 14746 var dillonkearns$elm_markdown$Markdown$Parser$htmlParser = dillonkearns$elm_markdown$Markdown$Parser$cyclic$htmlParser(); 14747 dillonkearns$elm_markdown$Markdown$Parser$cyclic$htmlParser = function () { 14748 return dillonkearns$elm_markdown$Markdown$Parser$htmlParser; 14749 }; 14750} catch ($) {
14751throw 'Some top-level definitions from `Markdown.Parser` are causing infinite recursion:\n\n âââââââ\n â childToBlocks\n â â\n â rawBlockParser\n â â\n â completeBlocks\n â â\n â completeOrMergeBlocks\n â â\n â mergeableBlockNotAfterOpenBlockOrParagraphParser\n â â\n â mergeableBlockAfterOpenBlockOrParagraphParser\n â â\n â mergeableBlockAfterList\n â â\n â htmlParser\n â â\n â inlineParseHelper\n â â\n â mapInline\n â â\n â nodeToRawBlock\n â â\n â nodesToBlocks\n â â\n â nodesToBlocksHelp\n â â\n â parse\n â â\n â parseAllInlines\n â â\n â parseAllInlinesHelp\n â â\n â parseHeaderInlines\n â â\n â parseInlines\n â â\n â parseRawInline\n â â\n â parseRowInlines\n â â\n â stepRawBlock\n â â\n â textNodeToBlocks\n â â\n â xmlNodeToHtmlNode\n âââââââ\n\nThese errors are very tricky, so read https://elm-lang.org/0.19.0/halting-problem to learn how to fix it!';} 14752var elm$core$Result$map2 = F3( 14753 function (func, ra, rb) { 14754 if (ra.$ === 'Err') { 14755 var x = ra.a; 14756 return elm$core$Result$Err(x); 14757 } else { 14758 var a = ra.a; 14759 if (rb.$ === 'Err') { 14760 var x = rb.a; 14761 return elm$core$Result$Err(x); 14762 } else { 14763 var b = rb.a; 14764 return elm$core$Result$Ok( 14765 A2(func, a, b)); 14766 } 14767 } 14768 }); 14769var dillonkearns$elm_markdown$Markdown$Renderer$combineResults = A2( 14770 elm$core$List$foldr, 14771 elm$core$Result$map2(elm$core$List$cons), 14772 elm$core$Result$Ok(_List_Nil)); 14773var dillonkearns$elm_markdown$Markdown$Block$foldl = F3( 14774 function (_function, acc, list) { 14775 foldl: 14776 while (true) { 14777 if (!list.b) { 14778 return acc; 14779 } else { 14780 var block = list.a; 14781 var remainingBlocks = list.b; 14782 switch (block.$) { 14783 case 'HtmlBlock': 14784 var html = block.a; 14785 if (html.$ === 'HtmlElement') { 14786 var children = html.c; 14787 var $temp$function = _function, 14788 $temp$acc = A2(_function, block, acc), 14789 $temp$list = _Utils_ap(children, remainingBlocks); 14790 _function = $temp$function; 14791 acc = $temp$acc; 14792 list = $temp$list; 14793 continue foldl; 14794 } else { 14795 var $temp$function = _function, 14796 $temp$acc = A2(_function, block, acc), 14797 $temp$list = remainingBlocks; 14798 _function = $temp$function; 14799 acc = $temp$acc; 14800 list = $temp$list; 14801 continue foldl; 14802 } 14803 case 'UnorderedList': 14804 var tight = block.a; 14805 var blocks = block.b; 14806 var childBlocks = A2( 14807 elm$core$List$concatMap, 14808 function (_n3) { 14809 var children = _n3.b; 14810 return children; 14811 }, 14812 blocks); 14813 var $temp$function = _function, 14814 $temp$acc = A2(_function, block, acc), 14815 $temp$list = _Utils_ap(childBlocks, remainingBlocks); 14816 _function = $temp$function; 14817 acc = $temp$acc; 14818 list = $temp$list; 14819 continue foldl; 14820 case 'OrderedList': 14821 var _int = block.b; 14822 var blocks = block.c; 14823 var $temp$function = _function, 14824 $temp$acc = A2(_function, block, acc), 14825 $temp$list = _Utils_ap( 14826 elm$core$List$concat(blocks), 14827 remainingBlocks); 14828 _function = $temp$function; 14829 acc = $temp$acc; 14830 list = $temp$list; 14831 continue foldl; 14832 case 'BlockQuote': 14833 var blocks = block.a; 14834 var $temp$function = _function, 14835 $temp$acc = A2(_function, block, acc), 14836 $temp$list = _Utils_ap(blocks, remainingBlocks); 14837 _function = $temp$function; 14838 acc = $temp$acc; 14839 list = $temp$list; 14840 continue foldl; 14841 case 'Heading': 14842 var $temp$function = _function, 14843 $temp$acc = A2(_function, block, acc), 14844 $temp$list = remainingBlocks; 14845 _function = $temp$function; 14846 acc = $temp$acc; 14847 list = $temp$list; 14848 continue foldl; 14849 case 'Paragraph': 14850 var $temp$function = _function, 14851 $temp$acc = A2(_function, block, acc), 14852 $temp$list = remainingBlocks; 14853 _function = $temp$function; 14854 acc = $temp$acc; 14855 list = $temp$list; 14856 continue foldl; 14857 case 'Table': 14858 var $temp$function = _function, 14859 $temp$acc = A2(_function, block, acc), 14860 $temp$list = remainingBlocks; 14861 _function = $temp$function; 14862 acc = $temp$acc; 14863 list = $temp$list; 14864 continue foldl; 14865 case 'CodeBlock': 14866 var $temp$function = _function, 14867 $temp$acc = A2(_function, block, acc), 14868 $temp$list = remainingBlocks; 14869 _function = $temp$function; 14870 acc = $temp$acc; 14871 list = $temp$list; 14872 continue foldl; 14873 default: 14874 var $temp$function = _function, 14875 $temp$acc = A2(_function, block, acc), 14876 $temp$list = remainingBlocks; 14877 _function = $temp$function; 14878 acc = $temp$acc; 14879 list = $temp$list; 14880 continue foldl; 14881 } 14882 } 14883 } 14884 }); 14885var dillonkearns$elm_markdown$Markdown$Block$extractInlineBlockText = function (block) { 14886 switch (block.$) { 14887 case 'Paragraph': 14888 var inlines = block.a; 14889 return dillonkearns$elm_markdown$Markdown$Block$extractInlineText(inlines); 14890 case 'HtmlBlock': 14891 var html = block.a; 14892 if (html.$ === 'HtmlElement') { 14893 var blocks = html.c; 14894 return A3( 14895 dillonkearns$elm_markdown$Markdown$Block$foldl, 14896 F2( 14897 function (nestedBlock, soFar) { 14898 return _Utils_ap( 14899 soFar, 14900 dillonkearns$elm_markdown$Markdown$Block$extractInlineBlockText(nestedBlock)); 14901 }), 14902 '', 14903 blocks); 14904 } else { 14905 return ''; 14906 } 14907 case 'UnorderedList': 14908 var tight = block.a; 14909 var items = block.b;
14910 return A2( 14911 elm$core$String$join, 14912 '\n', 14913 A2( 14914 elm$core$List$map, 14915 function (_n4) { 14916 var task = _n4.a; 14917 var blocks = _n4.b; 14918 return A2( 14919 elm$core$String$join, 14920 '\n', 14921 A2(elm$core$List$map, dillonkearns$elm_markdown$Markdown$Block$extractInlineBlockText, blocks)); 14922 }, 14923 items)); 14924 case 'OrderedList': 14925 var tight = block.a; 14926 var _int = block.b; 14927 var items = block.c; 14928 return A2( 14929 elm$core$String$join, 14930 '\n', 14931 A2( 14932 elm$core$List$map, 14933 function (blocks) { 14934 return A2( 14935 elm$core$String$join, 14936 '\n', 14937 A2(elm$core$List$map, dillonkearns$elm_markdown$Markdown$Block$extractInlineBlockText, blocks)); 14938 }, 14939 items)); 14940 case 'BlockQuote': 14941 var blocks = block.a; 14942 return A2( 14943 elm$core$String$join, 14944 '\n', 14945 A2(elm$core$List$map, dillonkearns$elm_markdown$Markdown$Block$extractInlineBlockText, blocks)); 14946 case 'Heading': 14947 var headingLevel = block.a; 14948 var inlines = block.b; 14949 return dillonkearns$elm_markdown$Markdown$Block$extractInlineText(inlines); 14950 case 'Table': 14951 var header = block.a; 14952 var rows = block.b; 14953 return A2( 14954 elm$core$String$join, 14955 '\n', 14956 elm$core$List$concat( 14957 _List_fromArray( 14958 [ 14959 A2( 14960 elm$core$List$map, 14961 dillonkearns$elm_markdown$Markdown$Block$extractInlineText, 14962 A2( 14963 elm$core$List$map, 14964 function ($) { 14965 return $.label; 14966 }, 14967 header)), 14968 elm$core$List$concat( 14969 A2( 14970 elm$core$List$map, 14971 elm$core$List$map(dillonkearns$elm_markdown$Markdown$Block$extractInlineText), 14972 rows)) 14973 ]))); 14974 case 'CodeBlock': 14975 var body = block.a.body; 14976 return body; 14977 default: 14978 return ''; 14979 } 14980}; 14981var dillonkearns$elm_markdown$Markdown$Block$extractInlineText = function (inlines) { 14982 return A3(elm$core$List$foldl, dillonkearns$elm_markdown$Markdown$Block$extractTextHelp, '', inlines); 14983}; 14984var dillonkearns$elm_markdown$Markdown$Block$extractTextHelp = F2( 14985 function (inline, text) { 14986 switch (inline.$) { 14987 case 'Text': 14988 var str = inline.a; 14989 return _Utils_ap(text, str); 14990 case 'HardLineBreak': 14991 return text + ' '; 14992 case 'CodeSpan': 14993 var str = inline.a; 14994 return _Utils_ap(text, str); 14995 case 'Link': 14996 var inlines = inline.c; 14997 return _Utils_ap( 14998 text, 14999 dillonkearns$elm_markdown$Markdown$Block$extractInlineText(inlines)); 15000 case 'Image': 15001 var inlines = inline.c; 15002 return _Utils_ap( 15003 text, 15004 dillonkearns$elm_markdown$Markdown$Block$extractInlineText(inlines)); 15005 case 'HtmlInline': 15006 var html = inline.a; 15007 if (html.$ === 'HtmlElement') { 15008 var blocks = html.c; 15009 return A3( 15010 dillonkearns$elm_markdown$Markdown$Block$foldl, 15011 F2( 15012 function (block, soFar) { 15013 return _Utils_ap( 15014 soFar, 15015 dillonkearns$elm_markdown$Markdown$Block$extractInlineBlockText(block)); 15016 }), 15017 text, 15018 blocks); 15019 } else { 15020 return text; 15021 } 15022 case 'Strong': 15023 var inlines = inline.a; 15024 return _Utils_ap( 15025 text, 15026 dillonkearns$elm_markdown$Markdown$Block$extractInlineText(inlines)); 15027 case 'Emphasis': 15028 var inlines = inline.a; 15029 return _Utils_ap( 15030 text, 15031 dillonkearns$elm_markdown$Markdown$Block$extractInlineText(inlines)); 15032 default: 15033 var inlines = inline.a; 15034 return _Utils_ap( 15035 text, 15036 dillonkearns$elm_markdown$Markdown$Block$extractInlineText(inlines)); 15037 } 15038 }); 15039var elm$core$Result$andThen = F2( 15040 function (callback, result) { 15041 if (result.$ === 'Ok') { 15042 var value = result.a; 15043 return callback(value); 15044 } else { 15045 var msg = result.a; 15046 return elm$core$Result$Err(msg); 15047 } 15048 }); 15049var dillonkearns$elm_markdown$Markdown$Renderer$renderHtml = F5( 15050 function (tagName, attributes, children, _n0, renderedChildren) { 15051 var htmlRenderer = _n0.a; 15052 return A2( 15053 elm$core$Result$andThen, 15054 function (okChildren) { 15055 return A2( 15056 elm$core$Result$map, 15057 function (myRenderer) { 15058 return myRenderer(okChildren); 15059 }, 15060 A3(htmlRenderer, tagName, attributes, children)); 15061 }, 15062 dillonkearns$elm_markdown$Markdown$Renderer$combineResults(renderedChildren)); 15063 }); 15064var elm$core$List$drop = F2( 15065 function (n, list) { 15066 drop: 15067 while (true) { 15068 if (n <= 0) { 15069 return list; 15070 } else { 15071 if (!list.b) { 15072 return list; 15073 } else { 15074 var x = list.a; 15075 var xs = list.b; 15076 var $temp$n = n - 1, 15077 $temp$list = xs; 15078 n = $temp$n; 15079 list = $temp$list; 15080 continue drop; 15081 } 15082 } 15083 } 15084 }); 15085var elm$core$List$singleton = function (value) { 15086 return _List_fromArray( 15087 [value]); 15088}; 15089var elm$core$Tuple$pair = F2( 15090 function (a, b) { 15091 return _Utils_Tuple2(a, b); 15092 }); 15093var dillonkearns$elm_markdown$Markdown$Renderer$foldThing = F3( 15094 function (renderer, topLevelInline, soFar) { 15095 var _n12 = A2(dillonkearns$elm_markdown$Markdown$Renderer$render
15095SingleInline, renderer, topLevelInline); 15096 if (_n12.$ === 'Just') { 15097 var inline = _n12.a; 15098 return A2(elm$core$List$cons, inline, soFar); 15099 } else { 15100 return soFar; 15101 } 15102 }); 15103var dillonkearns$elm_markdown$Markdown$Renderer$renderHelper = F2( 15104 function (renderer, blocks) { 15105 return A2( 15106 elm$core$List$filterMap, 15107 dillonkearns$elm_markdown$Markdown$Renderer$renderHelperSingle(renderer), 15108 blocks); 15109 }); 15110var dillonkearns$elm_markdown$Markdown$Renderer$renderHelperSingle = function (renderer) { 15111 return function (block) { 15112 switch (block.$) { 15113 case 'Heading': 15114 var level = block.a; 15115 var content = block.b; 15116 return elm$core$Maybe$Just( 15117 A2( 15118 elm$core$Result$map, 15119 function (children) { 15120 return renderer.heading( 15121 { 15122 children: children, 15123 level: level, 15124 rawText: dillonkearns$elm_markdown$Markdown$Block$extractInlineText(content) 15125 }); 15126 }, 15127 A2(dillonkearns$elm_markdown$Markdown$Renderer$renderStyled, renderer, content))); 15128 case 'Paragraph': 15129 var content = block.a; 15130 return elm$core$Maybe$Just( 15131 A2( 15132 elm$core$Result$map, 15133 renderer.paragraph, 15134 A2(dillonkearns$elm_markdown$Markdown$Renderer$renderStyled, renderer, content))); 15135 case 'HtmlBlock': 15136 var html = block.a; 15137 if (html.$ === 'HtmlElement') { 15138 var tag = html.a; 15139 var attributes = html.b; 15140 var children = html.c; 15141 return elm$core$Maybe$Just( 15142 A4(dillonkearns$elm_markdown$Markdown$Renderer$renderHtmlNode, renderer, tag, attributes, children)); 15143 } else { 15144 return elm$core$Maybe$Nothing; 15145 } 15146 case 'UnorderedList': 15147 var tight = block.a; 15148 var items = block.b; 15149 return elm$core$Maybe$Just( 15150 A2( 15151 elm$core$Result$map, 15152 function (listItems) { 15153 return renderer.unorderedList( 15154 A2( 15155 elm$core$List$map, 15156 function (_n7) { 15157 var task = _n7.a; 15158 var children = _n7.b; 15159 return A2( 15160 dillonkearns$elm_markdown$Markdown$Block$ListItem, 15161 task, 15162 elm$core$List$concat(children)); 15163 }, 15164 listItems)); 15165 }, 15166 dillonkearns$elm_markdown$Markdown$Renderer$combineResults( 15167 A2( 15168 elm$core$List$map, 15169 function (_n4) { 15170 var task = _n4.a; 15171 var children = _n4.b; 15172 return A2( 15173 elm$core$Result$map, 15174 dillonkearns$elm_markdown$Markdown$Block$ListItem(task), 15175 dillonkearns$elm_markdown$Markdown$Renderer$combineResults( 15176 function (blocks) { 15177 return A2( 15178 elm$core$List$filterMap, 15179 function (listItemBlock) { 15180 var _n5 = _Utils_Tuple2(tight, listItemBlock); 15181 if ((_n5.a.$ === 'Tight') && (_n5.b.$ === 'Paragraph')) { 15182 var _n6 = _n5.a; 15183 var content = _n5.b.a; 15184 return elm$core$Maybe$Just( 15185 A2(dillonkearns$elm_markdown$Markdown$Renderer$renderStyled, renderer, content)); 15186 } else { 15187 return A2( 15188 elm$core$Maybe$map, 15189 elm$core$Result$map(elm$core$List$singleton), 15190 A2(dillonkearns$elm_markdown$Markdown$Renderer$renderHelperSingle, renderer, listItemBlock)); 15191 } 15192 }, 15193 blocks); 15194 }(children))); 15195 }, 15196 items)))); 15197 case 'OrderedList': 15198 var tight = block.a; 15199 var startingIndex = block.b; 15200 var items = block.c; 15201 return elm$core$Maybe$Just( 15202 A2( 15203 elm$core$Result$map, 15204 function (listItems) { 15205 return A2( 15206 renderer.orderedList, 15207 startingIndex, 15208 A2( 15209 elm$core$List$map, 15210 function (children) { 15211 return elm$core$List$concat(children); 15212 }, 15213 listItems)); 15214 }, 15215 dillonkearns$elm_markdown$Markdown$Renderer$combineResults( 15216 A2( 15217 elm$core$List$map, 15218 function (itemsblocks) { 15219 return dillonkearns$elm_markdown$Markdown$Renderer$combineResults( 15220 function (blocks) { 15221 return A2( 15222 elm$core$List$filterMap, 15223 function (listItemBlock) { 15224 var _n8 = _Utils_Tuple2(tight, listItemBlock); 15225 if ((_n8.a.$ === 'Tight') && (_n8.b.$ === 'Paragraph')) { 15226 var _n9 = _n8.a; 15227 var content = _n8.b.a; 15228 return elm$core$Maybe$Just( 15229 A2(dillonkearns$elm_markdown$Markdown$Renderer$render
15229Styled, renderer, content)); 15230 } else { 15231 return A2( 15232 elm$core$Maybe$map, 15233 elm$core$Result$map(elm$core$List$singleton), 15234 A2(dillonkearns$elm_markdown$Markdown$Renderer$renderHelperSingle, renderer, listItemBlock)); 15235 } 15236 }, 15237 blocks); 15238 }(itemsblocks)); 15239 }, 15240 items)))); 15241 case 'CodeBlock': 15242 var codeBlock = block.a; 15243 return elm$core$Maybe$Just( 15244 elm$core$Result$Ok( 15245 renderer.codeBlock(codeBlock))); 15246 case 'ThematicBreak': 15247 return elm$core$Maybe$Just( 15248 elm$core$Result$Ok(renderer.thematicBreak)); 15249 case 'BlockQuote': 15250 var nestedBlocks = block.a; 15251 return elm$core$Maybe$Just( 15252 A2( 15253 elm$core$Result$map, 15254 renderer.blockQuote, 15255 dillonkearns$elm_markdown$Markdown$Renderer$combineResults( 15256 A2(dillonkearns$elm_markdown$Markdown$Renderer$renderHelper, renderer, nestedBlocks)))); 15257 default: 15258 var header = block.a; 15259 var rows = block.b; 15260 var renderedHeaderCells = dillonkearns$elm_markdown$Markdown$Renderer$combineResults( 15261 A2( 15262 elm$core$List$map, 15263 function (_n11) { 15264 var label = _n11.label; 15265 var alignment = _n11.alignment; 15266 return A2( 15267 elm$core$Result$map, 15268 elm$core$Tuple$pair(alignment), 15269 A2(dillonkearns$elm_markdown$Markdown$Renderer$renderStyled, renderer, label)); 15270 }, 15271 header)); 15272 var renderedHeader = A2( 15273 elm$core$Result$map, 15274 function (listListView) { 15275 return renderer.tableHeader( 15276 elm$core$List$singleton( 15277 renderer.tableRow( 15278 A2( 15279 elm$core$List$map, 15280 function (_n10) { 15281 var maybeAlignment = _n10.a; 15282 var item = _n10.b; 15283 return A2(renderer.tableHeaderCell, maybeAlignment, item); 15284 }, 15285 listListView)))); 15286 }, 15287 renderedHeaderCells); 15288 var renderedBody = function (r) { 15289 return elm$core$List$isEmpty(r) ? _List_Nil : _List_fromArray( 15290 [ 15291 renderer.tableBody(r) 15292 ]); 15293 }; 15294 var alignmentForColumn = function (columnIndex) { 15295 return A2( 15296 elm$core$Maybe$andThen, 15297 function ($) { 15298 return $.alignment; 15299 }, 15300 elm$core$List$head( 15301 A2(elm$core$List$drop, columnIndex, header))); 15302 }; 15303 var renderRow = function (cells) { 15304 return A2( 15305 elm$core$Result$map, 15306 renderer.tableRow, 15307 A2( 15308 elm$core$Result$map, 15309 elm$core$List$indexedMap( 15310 F2( 15311 function (index, cell) { 15312 return A2( 15313 renderer.tableCell, 15314 alignmentForColumn(index), 15315 cell); 15316 })), 15317 dillonkearns$elm_markdown$Markdown$Renderer$combineResults( 15318 A2( 15319 elm$core$List$map, 15320 dillonkearns$elm_markdown$Markdown$Renderer$renderStyled(renderer), 15321 cells)))); 15322 }; 15323 var renderedRows = dillonkearns$elm_markdown$Markdown$Renderer$combineResults( 15324 A2(elm$core$List$map, renderRow, rows)); 15325 return elm$core$Maybe$Just( 15326 A3( 15327 elm$core$Result$map2, 15328 F2( 15329 function (h, r) { 15330 return renderer.table( 15331 A2( 15332 elm$core$List$cons, 15333 h, 15334 renderedBody(r))); 15335 }), 15336 renderedHeader, 15337 renderedRows)); 15338 } 15339 }; 15340}; 15341var dillonkearns$elm_markdown$Markdown$Renderer$renderHtmlNode = F4( 15342 function (renderer, tag, attributes, children) { 15343 return A5( 15344 dillonkearns$elm_markdown$Markdown$Renderer$renderHtml, 15345 tag, 15346 attributes, 15347 children, 15348 renderer.html, 15349 A2(dillonkearns$elm_markdown$Markdown$Renderer$renderHelper, renderer, children)); 15350 }); 15351var dillonkearns$elm_markdown$Markdown$Renderer$renderSingleInline = F2( 15352 function (renderer, inline) { 15353 switch (inline.$) { 15354 case 'Strong': 15355 var innerInlines = inline.a; 15356 return elm$core$Maybe$Just( 15357 A2( 15358 elm$core$Result$map, 15359 renderer.strong, 15360 A2(dillonkearns$elm_markdown$Markdown$Renderer$renderStyled, renderer, innerInlines))); 15361 case 'Emphasis': 15362 var innerInlines = inline.a; 15363 return elm$core$Maybe$Just( 15364 A2( 15365 elm$core$Result$map, 15366 renderer.emphasis,
15367 A2(dillonkearns$elm_markdown$Markdown$Renderer$renderStyled, renderer, innerInlines))); 15368 case 'Strikethrough': 15369 var innerInlines = inline.a; 15370 return elm$core$Maybe$Just( 15371 A2( 15372 elm$core$Result$map, 15373 renderer.strikethrough, 15374 A2(dillonkearns$elm_markdown$Markdown$Renderer$renderStyled, renderer, innerInlines))); 15375 case 'Image': 15376 var src = inline.a; 15377 var title = inline.b; 15378 var children = inline.c; 15379 return elm$core$Maybe$Just( 15380 elm$core$Result$Ok( 15381 renderer.image( 15382 { 15383 alt: dillonkearns$elm_markdown$Markdown$Block$extractInlineText(children), 15384 src: src, 15385 title: title 15386 }))); 15387 case 'Text': 15388 var string = inline.a; 15389 return elm$core$Maybe$Just( 15390 elm$core$Result$Ok( 15391 renderer.text(string))); 15392 case 'CodeSpan': 15393 var string = inline.a; 15394 return elm$core$Maybe$Just( 15395 elm$core$Result$Ok( 15396 renderer.codeSpan(string))); 15397 case 'Link': 15398 var destination = inline.a; 15399 var title = inline.b; 15400 var inlines = inline.c; 15401 return elm$core$Maybe$Just( 15402 A2( 15403 elm$core$Result$andThen, 15404 function (children) { 15405 return elm$core$Result$Ok( 15406 A2( 15407 renderer.link, 15408 {destination: destination, title: title}, 15409 children)); 15410 }, 15411 A2(dillonkearns$elm_markdown$Markdown$Renderer$renderStyled, renderer, inlines))); 15412 case 'HardLineBreak': 15413 return elm$core$Maybe$Just( 15414 elm$core$Result$Ok(renderer.hardLineBreak)); 15415 default: 15416 var html = inline.a; 15417 if (html.$ === 'HtmlElement') { 15418 var tag = html.a; 15419 var attributes = html.b; 15420 var children = html.c; 15421 return elm$core$Maybe$Just( 15422 A4(dillonkearns$elm_markdown$Markdown$Renderer$renderHtmlNode, renderer, tag, attributes, children)); 15423 } else { 15424 return elm$core$Maybe$Nothing; 15425 } 15426 } 15427 }); 15428var dillonkearns$elm_markdown$Markdown$Renderer$renderStyled = F2( 15429 function (renderer, styledStrings) { 15430 return dillonkearns$elm_markdown$Markdown$Renderer$combineResults( 15431 A3( 15432 elm$core$List$foldr, 15433 dillonkearns$elm_markdown$Markdown$Renderer$foldThing(renderer), 15434 _List_Nil, 15435 styledStrings)); 15436 }); 15437var dillonkearns$elm_markdown$Markdown$Renderer$render = F2( 15438 function (renderer, ast) { 15439 return dillonkearns$elm_markdown$Markdown$Renderer$combineResults( 15440 A2(dillonkearns$elm_markdown$Markdown$Renderer$renderHelper, renderer, ast)); 15441 }); 15442var dillonkearns$elm_markdown$Markdown$Html$resultOr = F2( 15443 function (ra, rb) { 15444 if (ra.$ === 'Err') { 15445 var singleError = ra.a; 15446 if (rb.$ === 'Ok') { 15447 var okValue = rb.a; 15448 return elm$core$Result$Ok(okValue); 15449 } else { 15450 var errorsSoFar = rb.a; 15451 return elm$core$Result$Err( 15452 A2(elm$core$List$cons, singleError, errorsSoFar)); 15453 } 15454 } else { 15455 var okValue = ra.a; 15456 return elm$core$Result$Ok(okValue); 15457 } 15458 }); 15459var dillonkearns$elm_markdown$Markdown$Html$attributesToString = function (attributes) { 15460 return A2( 15461 elm$core$String$join, 15462 ' ', 15463 A2( 15464 elm$core$List$map, 15465 function (_n0) { 15466 var name = _n0.name; 15467 var value = _n0.value; 15468 return name + ('=\"' + (value + '\"')); 15469 }, 15470 attributes)); 15471}; 15472var dillonkearns$elm_markdown$Markdown$Html$tagToString = F2( 15473 function (tagName, attributes) { 15474 return elm$core$List$isEmpty(attributes) ? ('<' + (tagName + '>')) : ('<' + (tagName + (' ' + (dillonkearns$elm_markdown$Markdown$Html$attributesToString(attributes) + '>')))); 15475 }); 15476var dillonkearns$elm_markdown$Markdown$HtmlRenderer$HtmlRenderer = function (a) { 15477 return {$: 'HtmlRenderer', a: a}; 15478}; 15479var dillonkearns$elm_markdown$Markdown$Html$oneOf = function (decoders) { 15480 var unwrappedDecoders = A2( 15481 elm$core$List$map, 15482 function (_n1) { 15483 var rawDecoder = _n1.a; 15484 return rawDecoder; 15485 }, 15486 decoders); 15487 return function (rawDecoder) { 15488 return dillonkearns$elm_markdown$Markdown$HtmlRenderer$HtmlRenderer( 15489 F3( 15490 function (tagName, attributes, innerBlocks) { 15491 return A2( 15492 elm$core$Result$mapError, 15493 function (errors) { 15494 if (!errors.b) { 15495 return 'Ran into a oneOf with no possibilities!'; 15496 } else { 15497 if (!errors.b.b) { 15498 var singleError = errors.a; 15499 return 'Problem with the given value:\n\n' + (A2(dillonkearns$elm_markdown$Markdown$Html$tagToString, tagName, attributes) + ('\n\n' + (singleError + '\n'))); 15500 } else { 15501 return 'oneOf failed parsing this value:\n ' + (A2(dillonkearns$elm_markdown$Markdown$Html$tagToString, tagName, attributes) + ('\n\nParsing failed in the following 2 ways:\n\n\n' + (A2( 15502 elm$core$String$join, 15503 '\n\n', 15504 A2( 15505 elm$core$List$indexedMap, 15506 F2( 15507 function (index, error) { 15508 return '(' + (elm$core$String$fromInt(index + 1) + (') ' + error)); 15509 }), 15510 errors)) + '\n'))); 15511 } 15512 } 15513 }, 15514 A3(rawDecoder, tagName, attributes, innerBlocks)); 15515 })); 15516 }( 15517 A3( 15518 elm$core$List$foldl, 15519 F2( 15520 function (decoder, soFar) { 15521 return F3( 15522 function (tagName, attributes, children) { 15523 return A2( 15524 dillonkearns$elm_markdown$Markdown$Html$resultOr, 15525 A3(decoder, tagName, attributes, children), 15526 A3(soFar, tagName, attributes, children)); 15527 }); 15528 }), 15529 F3( 15530 function (tagName, attributes, children) { 15531 return elm$core$Result$Err(_List_Nil); 15532 }), 15533 unwrappedDecoders)); 15534}; 15535var dillonkearns$elm_markdown$Markdown$Html$tag = F2( 15536 function (expectedTag, a) { 15537 return dillonkearns$elm_markdown$Markdown$HtmlRenderer$HtmlRenderer( 15538 F3( 15539 function (tagName, attributes, children) { 15540 return _Utils_eq(tagName, expectedTag) ? elm$core$Result$Ok(a) : elm$core$Result$Err('Expected ' + (expectedTag + (' but was ' + tagName))); 15541 })); 15542 }); 15543var dillonkearns$elm_markdown$List$Helpers$find = F2( 15544 function (predicate, list) { 15545 find: 15546 while (true) { 15547 if (!list.b) { 15548 return elm$core$Maybe$Nothing; 15549 } else { 15550 var first = list.a; 15551 var rest = list.b; 15552 if (predicate(first)) { 15553 return elm$core$Maybe$Just(first); 15554 } else { 15555 var $temp$predicate = predicate, 15556 $temp$list = rest; 15557 predicate = $temp$predicate; 15558 list = $temp$list; 15559 continue find; 15560 } 15561 } 15562 } 15563 }); 15564var dillonkearns$elm_markdown$Markdown$Html$withOptionalAttribute = F2( 15565 function (attributeName, _n0) { 15566 var renderer = _n0.a; 15567 return dillonkearns$elm_markdown$Markdown$HtmlRenderer$HtmlRenderer( 15568 F3( 15569 function (tagName, attributes, innerBlocks) { 15570 return function () { 15571 var _n1 = A2( 15572 dillonkearns$elm_markdown$List$Helpers$find, 15573 function (_n2) { 15574 var name = _n2.name; 15575 var value = _n2.value; 15576 return _Utils_eq(name, attributeName); 15577 }, 15578 attributes); 15579 if (_n1.$ === 'Just') { 15580 var value = _n1.a.value; 15581 return elm$core$Result$map( 15582 elm$core$Basics$apR( 15583 elm$core$Maybe$Just(value))); 15584 } else { 15585 return elm$core$Result$map( 15586 elm$core$Basics$apR(elm$core$Maybe$Nothing)); 15587 } 15588 }()( 15589 A3(renderer, tagName, attributes, innerBlocks)); 15590 })); 15591 }); 15592var dtwrks$elm_book$ElmBook$Internal$ComponentOptions$Inline = {$: 'Inline'}; 15593var dtwrks$elm_book$ElmBook$Internal$ComponentOptions$ComponentOptions = function (a) { 15594 return {$: 'ComponentOptions', a: a}; 15595}; 15596var dtwrks$elm_book$ElmBook$Internal$ComponentOptions$parseBool = function (v) { 15597 if ((v.$ === 'Just') && (v.a === 'true')) { 15598 return elm$core$Maybe$Just(true); 15599 } else { 15600 return elm$core$Maybe$Nothing; 15601 } 15602}; 15603var dtwrks$elm_book$ElmBook$Internal$ComponentOptions$Block = {$: 'Block'}; 15604var dtwrks$elm_book$ElmBook$Internal$ComponentOptions$parseDisplay = function (displayString) { 15605 _n0$3: 15606 while (true) { 15607 if (displayString.$ === 'Just') { 15608 switch (displayString.a) { 15609 case 'block': 15610 return elm$core$Maybe$Just(dtwrks$elm_book$ElmBook$Internal$ComponentOptions$Block); 15611 case 'inline': 15612 return elm$core$Maybe$Just(dtwrks$elm_book$ElmBook$Internal$ComponentOptions$Inline); 15613 case 'card': 15614 return elm$core$Maybe$Just(dtwrks$elm_book$ElmBook$Internal$ComponentOptions$Card); 15615 default: 15616 break _n0$3; 15617 } 15618 } else { 15619 break _n0$3; 15620 } 15621 } 15622 return elm$core$Maybe$Nothing; 15623}; 15624var dtwrks$elm_book$ElmBook$Internal$ComponentOptions$markdownOptions = F2( 15625 function (validOptions, options) { 15626 return A2(
15627 dtwrks$elm_book$ElmBook$Internal$ComponentOptions$toValidOptions, 15628 validOptions, 15629 dtwrks$elm_book$ElmBook$Internal$ComponentOptions$ComponentOptions( 15630 { 15631 background: options.background, 15632 display: dtwrks$elm_book$ElmBook$Internal$ComponentOptions$parseDisplay(options.display), 15633 fullWidth: dtwrks$elm_book$ElmBook$Internal$ComponentOptions$parseBool(options.fullWidth), 15634 hiddenLabel: dtwrks$elm_book$ElmBook$Internal$ComponentOptions$parseBool(options.hiddenLabel) 15635 })); 15636 }); 15637var dtwrks$elm_book$ElmBook$Internal$Msg$LogAction = F2( 15638 function (a, b) { 15639 return {$: 'LogAction', a: a, b: b}; 15640 }); 15641var dtwrks$elm_book$ElmBook$UI$ChapterComponent$viewLabel = F2( 15642 function (options_, label) { 15643 var _n0 = _Utils_Tuple3(label, options_.hiddenLabel, options_.display); 15644 if (_n0.a === '') { 15645 return elm$html$Html$text(''); 15646 } else { 15647 if (_n0.b) { 15648 return elm$html$Html$text(''); 15649 } else { 15650 if (_n0.c.$ === 'Inline') { 15651 var _n1 = _n0.c; 15652 return elm$html$Html$text(''); 15653 } else { 15654 return A2( 15655 elm$html$Html$p, 15656 _List_fromArray( 15657 [ 15658 elm$html$Html$Attributes$class('elm-book elm-book__chapter-component__title elm-book-sans') 15659 ]), 15660 _List_fromArray( 15661 [ 15662 elm$html$Html$text(label) 15663 ])); 15664 } 15665 } 15666 } 15667 }); 15668var elm$html$Html$article = _VirtualDom_node('article'); 15669var dtwrks$elm_book$ElmBook$UI$ChapterComponent$viewBlock = F2( 15670 function (options_, _n0) { 15671 var label = _n0.a; 15672 var html = _n0.b; 15673 return A2( 15674 elm$html$Html$article, 15675 _List_fromArray( 15676 [ 15677 elm$html$Html$Attributes$class('elm-book__chapter-component') 15678 ]), 15679 _List_fromArray( 15680 [ 15681 A2(dtwrks$elm_book$ElmBook$UI$ChapterComponent$viewLabel, options_, label), 15682 A2( 15683 elm$html$Html$div, 15684 _List_Nil, 15685 _List_fromArray( 15686 [html])) 15687 ])); 15688 }); 15689var dtwrks$elm_book$ElmBook$UI$ChapterComponent$viewCard = F2( 15690 function (options_, _n0) { 15691 var label = _n0.a; 15692 var html = _n0.b; 15693 return A2( 15694 elm$html$Html$article, 15695 _List_fromArray( 15696 [ 15697 elm$html$Html$Attributes$class('elm-book__chapter-component') 15698 ]), 15699 _List_fromArray( 15700 [ 15701 A2(dtwrks$elm_book$ElmBook$UI$ChapterComponent$viewLabel, options_, label), 15702 A2( 15703 elm$html$Html$div, 15704 _List_fromArray( 15705 [ 15706 elm$html$Html$Attributes$class('elm-book__chapter-component__background elm-book-shadows-light'), 15707 A2(elm$html$Html$Attributes$style, 'background', options_.background) 15708 ]), 15709 _List_fromArray( 15710 [ 15711 A2( 15712 elm$html$Html$div, 15713 _List_fromArray( 15714 [ 15715 elm$html$Html$Attributes$class('elm-book__chapter-component__content') 15716 ]), 15717 _List_fromArray( 15718 [html])) 15719 ])) 15720 ])); 15721 }); 15722var dtwrks$elm_book$ElmBook$UI$ChapterComponent$viewDisplay = F2( 15723 function (options_, _n0) { 15724 var label = _n0.a; 15725 var html = _n0.b; 15726 var _n1 = options_.display; 15727 switch (_n1.$) { 15728 case 'Inline': 15729 return html; 15730 case 'Block': 15731 return A2( 15732 dtwrks$elm_book$ElmBook$UI$ChapterComponent$viewBlock, 15733 options_, 15734 _Utils_Tuple2(label, html)); 15735 default: 15736 return A2( 15737 dtwrks$elm_book$ElmBook$UI$ChapterComponent$viewCard, 15738 options_, 15739 _Utils_Tuple2(label, html)); 15740 } 15741 }); 15742var elm$virtual_dom$VirtualDom$map = _VirtualDom_map; 15743var elm$html$Html$map = elm$virtual_dom$VirtualDom$map; 15744var dtwrks$elm_book$ElmBook$UI$ChapterComponent$view = F3( 15745 function (chapterTitle, options_, _n0) { 15746 var label = _n0.a; 15747 var html = _n0.b; 15748 return A2( 15749 elm$html$Html$map, 15750 function (msg) { 15751 var actionContext = (label !== '') ? (chapterTitle + (' / ' + (label + ' / '))) : (chapterTitle + ' / '); 15752 if (msg.$ === 'LogAction') { 15753 var label_ = msg.b; 15754 return A2(dtwrks$elm_book$ElmBook$Internal$Msg$LogAction, actionContext, label_); 15755 } else { 15756 return msg; 15757 } 15758 }, 15759 A2( 15760 dtwrks$elm_book$ElmBook$UI$ChapterComponent$viewDisplay, 15761 options_, 15762 _Utils_Tuple2(label, html))); 15763 }); 15764var elm$html$Html$a = _VirtualDom_node('a'); 15765var elm$html$Html$blockquote = _VirtualDom_node('blockquote'); 15766var elm$html$Html$br = _VirtualDom_node('br'); 15767var elm$html$Html$code = _VirtualDom_node('code'); 15768var elm$html$Html$em = _VirtualDom_node('em'); 15769var elm$html$Html$h1 = _VirtualDom_node('h1'); 15770var elm$html$Html$h2 = _VirtualDom_node('h2'); 15771var elm$html$Html$h3 = _VirtualDom_node('h3'); 15772var elm$html$Html$h4 = _VirtualDom_node('h4'); 15773var elm$html$Html$h5 = _VirtualDom_node('h5'); 15774var elm$html$Html$h6 = _VirtualDom_node('h6'); 15775var elm$html$Html$hr = _VirtualDom_node('hr'); 15776var elm$html$Html$img = _VirtualDom_node('img'); 15777var elm$html$Html$input = _VirtualDom_node('input'); 15778var elm$html$Html$ol = _VirtualDom_node('ol'); 15779var elm$html$Html$pre = _VirtualDom_node('pre'); 15780var elm$html$Html$span = _VirtualDom_node('span'); 15781var elm$html$Html$strong = _VirtualDom_node('strong'); 15782var elm$html$Html$table = _VirtualDom_node('table'); 15783var elm$html$Html$tbody = _VirtualDom_node('tbody'); 15784var elm$html$Html$td = _VirtualDom_node('td'); 15785var elm$html$Html$th = _VirtualDom_node('th'); 15786var elm$html$Html$thead = _VirtualDom_node('thead'); 15787var elm$html$Html$tr = _VirtualDom_node('tr'); 15788var elm$html$Html$Attributes$align = elm$html$Html$Attributes$stringProperty('align'); 15789var elm$html$Html$Attributes$alt = elm$html$Html$Attributes$stringProperty('alt'); 15790var elm$json$Json$Encode$bool = _Json_wrap; 15791var elm$html$Html$Attributes$boolProperty = F2( 15792 function (key, bool) { 15793 return A2( 15794 _VirtualDom_property, 15795 key, 15796 elm$json$Json$Encode$bool(bool)); 15797 }); 15798var elm$html$Html$Attributes$checked = elm$html$Html$Attributes$boolProperty('checked'); 15799var elm$html$Html$Attributes$disabled = elm$html$Html$Attributes$boolProperty('disabled'); 15800var elm$html$Html$Attributes$href = function (url) { 15801 return A2( 15802 elm$html$Html$Attributes$stringProperty, 15803 'href', 15804 _VirtualDom_noJavaScriptUri(url)); 15805}; 15806var elm$html$Html$Attributes$src = function (url) { 15807 return A2( 15808 elm$html$Html$Attributes$stringProperty, 15809 'src', 15810 _VirtualDom_noJavaScriptOrHtmlUri(url)); 15811}; 15812var elm$html$Html$Attributes$start = function (n) { 15813 return A2( 15814 elm$html$Html$Attributes$stringProperty, 15815 'start', 15816 elm$core$String$fromInt(n)); 15817}; 15818var elm$html$Html$Attributes$title = elm$html$Html$Attributes$stringProperty('title'); 15819var elm$html$Html$Attributes$type_ = elm$html$Html$Attributes$stringProperty('type'); 15820var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$HCode = function (a) { 15821 return {$: 'HCode', a: a}; 15822}; 15823var elm$parser$Parser$DeadEnd = F3( 15824 function (row, col, problem) { 15825 return {col: col, problem: problem, row: row}; 15826 }); 15827var elm$parser$Parser$problemToDeadEnd = function (p) { 15828 return A3(elm$parser$Parser$DeadEnd, p.row, p.col, p.problem); 15829}; 15830var elm$parser$Parser$run = F2( 15831 function (parser, source) { 15832 var _n0 = A2(elm$parser$Parser$Advanced$run, parser, source); 15833 if (_n0.$ === 'Ok') { 15834 var a = _n0.a; 15835 return elm$core$Result$Ok(a); 15836 } else { 15837 var problems = _n0.a; 15838 return elm$core$Result$Err( 15839 A2(elm$core$List$map, elm$parser$Parser$problemToDeadEnd, problems)); 15840 } 15841 }); 15842var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style3 = {$: 'Style3'}; 15843var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style4 = {$: 'Style4'}; 15844var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style5 = {$: 'Style5'}; 15845var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$atRuleToFragment = function (a) { 15846 switch (a.$) { 15847 case 'Identifier': 15848 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style3, 'css-ar-i'); 15849 case 'Prefix': 15850 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style5, 'css-ar-p'); 15851 case 'Keyword': 15852 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style3, 'css-ar-k'); 15853 default: 15854 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style4, 'css-ar-v'); 15855 } 15856}; 15857var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style2 = {$: 'Style2'}; 15858var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$attributeSelectorToFragment = function (att) { 15859 switch (att.$) { 15860 case 'AttributeName': 15861 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style5, 'css-s-a-an'); 15862 case 'AttributeValue': 15863 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style2, 'css-s-a-av'); 15864 default: 15865 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style3, 'css-s-a-o'); 15866 } 15867}; 15868var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Default = {$: 'Default'}; 15869var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style7 = {$: 'Style7'}; 15870var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$selectorToFragment = function (s) { 15871 switch (s.$) { 15872 case 'Element': 15873 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style3, 'css-s-e'); 15874 case 'Id': 15875 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style5, 'css-s-i'); 15876 case 'Class': 15877 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style5, 'css-s-cl'); 15878 case 'Combinator': 15879 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style7, 'css-s-c'); 15880 case 'Universal': 15881 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style3, 'css-s-u'); 15882 case 'AttributeSelector': 15883 var att = s.a; 15884 return pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$attributeSelectorToFragment(att);
15885 case 'PseudoElement': 15886 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Default, 'css-s-pe'); 15887 default: 15888 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Default, 'css-s-pc'); 15889 } 15890}; 15891var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style1 = {$: 'Style1'}; 15892var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$syntaxToStyle = function (syntax) { 15893 switch (syntax.$) { 15894 case 'String': 15895 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style2, 'css-s'); 15896 case 'AtRule': 15897 var a = syntax.a; 15898 return pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$atRuleToFragment(a); 15899 case 'Selector': 15900 var s = syntax.a; 15901 return pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$selectorToFragment(s); 15902 case 'Property': 15903 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style4, 'css-p'); 15904 case 'PropertyValue': 15905 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style4, 'css-pv'); 15906 case 'Number': 15907 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style1, 'css-n'); 15908 default: 15909 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style3, 'css-u'); 15910 } 15911}; 15912var elm$parser$Parser$map = elm$parser$Parser$Advanced$map; 15913var elm$parser$Parser$toAdvancedStep = function (step) { 15914 if (step.$ === 'Loop') { 15915 var s = step.a; 15916 return elm$parser$Parser$Advanced$Loop(s); 15917 } else { 15918 var a = step.a; 15919 return elm$parser$Parser$Advanced$Done(a); 15920 } 15921}; 15922var elm$parser$Parser$loop = F2( 15923 function (state, callback) { 15924 return A2( 15925 elm$parser$Parser$Advanced$loop, 15926 state, 15927 function (s) { 15928 return A2( 15929 elm$parser$Parser$map, 15930 elm$parser$Parser$toAdvancedStep, 15931 callback(s)); 15932 }); 15933 }); 15934var elm$parser$Parser$Done = function (a) { 15935 return {$: 'Done', a: a}; 15936}; 15937var elm$parser$Parser$Loop = function (a) { 15938 return {$: 'Loop', a: a}; 15939}; 15940var elm$parser$Parser$UnexpectedChar = {$: 'UnexpectedChar'}; 15941var elm$parser$Parser$chompIf = function (isGood) { 15942 return A2(elm$parser$Parser$Advanced$chompIf, isGood, elm$parser$Parser$UnexpectedChar); 15943}; 15944var elm$parser$Parser$getChompedString = elm$parser$Parser$Advanced$getChompedString; 15945var elm$parser$Parser$oneOf = elm$parser$Parser$Advanced$oneOf; 15946var elm$parser$Parser$succeed = elm$parser$Parser$Advanced$succeed; 15947var elm$parser$Parser$andThen = elm$parser$Parser$Advanced$andThen; 15948var elm$parser$Parser$symbol = function (str) { 15949 return elm$parser$Parser$Advanced$symbol( 15950 A2( 15951 elm$parser$Parser$Advanced$Token, 15952 str, 15953 elm$parser$Parser$ExpectingSymbol(str))); 15954}; 15955var elm$core$Dict$member = F2( 15956 function (key, dict) { 15957 var _n0 = A2(elm$core$Dict$get, key, dict); 15958 if (_n0.$ === 'Just') { 15959 return true; 15960 } else { 15961 return false; 15962 } 15963 }); 15964var elm$core$Set$member = F2( 15965 function (key, _n0) { 15966 var dict = _n0.a; 15967 return A2(elm$core$Dict$member, key, dict); 15968 }); 15969var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AtRule = function (a) { 15970 return {$: 'AtRule', a: a}; 15971}; 15972var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Identifier = {$: 'Identifier'}; 15973var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Prefix = {$: 'Prefix'}; 15974var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$String = {$: 'String'}; 15975var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AtRuleValue = {$: 'AtRuleValue'}; 15976var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Keyword = {$: 'Keyword'}; 15977var elm$core$Set$Set_elm_builtin = function (a) { 15978 return {$: 'Set_elm_builtin', a: a}; 15979}; 15980var elm$core$Set$empty = elm$core$Set$Set_elm_builtin(elm$core$Dict$empty); 15981var elm$core$Set$insert = F2( 15982 function (key, _n0) { 15983 var dict = _n0.a; 15984 return elm$core$Set$Set_elm_builtin( 15985 A3(elm$core$Dict$insert, key, _Utils_Tuple0, dict)); 15986 }); 15987var elm$core$Set$fromList = function (list) { 15988 return A3(elm$core$List$foldl, elm$core$Set$insert, elm$core$Set$empty, list); 15989}; 15990var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$atRuleKeywordSet = elm$core$Set$fromList( 15991 _List_fromArray( 15992 ['and', 'or', 'not', 'only'])); 15993var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isAtRuleKeyword = function (n) { 15994 return A2(elm$core$Set$member, n, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$atRuleKeywordSet); 15995}; 15996var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isCommentChar = function (c) { 15997 return _Utils_eq( 15998 c, 15999 _Utils_chr('/')); 16000}; 16001var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$selectorNameInvalidCharSet = elm$core$Set$fromList( 16002 _List_fromArray( 16003 [ 16004 _Utils_chr(':'), 16005 _Utils_chr('{'), 16006 _Utils_chr('}'), 16007 _Utils_chr(','), 16008 _Utils_chr('.'), 16009 _Utils_chr('#'), 16010 _Utils_chr('>'), 16011 _Utils_chr('+'), 16012 _Utils_chr('~'), 16013 _Utils_chr('*'), 16014 _Utils_chr('['), 16015 _Utils_chr(']'), 16016 _Utils_chr('|'), 16017 _Utils_chr(';'), 16018 _Utils_chr('('), 16019 _Utils_chr(')') 16020 ])); 16021var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isLineBreak = function (c) { 16022 return _Utils_eq( 16023 c, 16024 _Utils_chr('\n')); 16025}; 16026var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isSpace = function (c) { 16027 return _Utils_eq( 16028 c, 16029 _Utils_chr(' ')) || _Utils_eq( 16030 c, 16031 _Utils_chr('\t')); 16032}; 16033var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isWhitespace = function (c) { 16034 return pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isSpace(c) || pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isLineBreak(c); 16035}; 16036var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isSelectorNameChar = function (c) { 16037 return !(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isWhitespace(c) || (pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isCommentChar(c) || A2(elm$core$Set$member, c, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$selectorNameInvalidCharSet))); 16038}; 16039var elm$parser$Parser$chompWhile = elm$parser$Parser$Advanced$chompWhile; 16040var elm$parser$Parser$ignorer = elm$parser$Parser$Advanced$ignorer; 16041var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile = function (isNotRelevant) { 16042 return A2( 16043 elm$parser$Parser$ignorer, 16044 A2( 16045 elm$parser$Parser$ignorer, 16046 elm$parser$Parser$succeed(_Utils_Tuple0), 16047 elm$parser$Parser$chompIf(isNotRelevant)), 16048 elm$parser$Parser$chompWhile(isNotRelevant)); 16049}; 16050var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C = function (a) { 16051 return {$: 'C', a: a}; 16052}; 16053var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$atRuleKeywordOrValue = function (revTokens) { 16054 return A2( 16055 elm$parser$Parser$map, 16056 function (n) { 16057 return pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isAtRuleKeyword(n) ? A2( 16058 elm$core$List$cons, 16059 _Utils_Tuple2( 16060 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C( 16061 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AtRule(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Keyword)), 16062 n), 16063 revTokens) : A2( 16064 elm$core$List$cons, 16065 _Utils_Tuple2( 16066 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C( 16067 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AtRule(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AtRuleValue)), 16068 n), 16069 revTokens); 16070 }, 16071 elm$parser$Parser$getChompedString( 16072 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isSelectorNameChar))); 16073}; 16074var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$atRuleSet = elm$core$Set$fromList( 16075 _List_fromArray( 16076 ['@page', '@font-face', '@swash', '@annotation', '@ornaments', '@stylistic', '@styleset', '@character-variant'])); 16077var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$LineBreak = {$: 'LineBreak'}; 16078var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$lineBreak = A2( 16079 elm$parser$Parser$map, 16080 function (_n0) { 16081 return _List_fromArray( 16082 [ 16083 _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$LineBreak, '\n') 16084 ]); 16085 }, 16086 elm$parser$Parser$symbol('\n')); 16087var elm$parser$Parser$problem = function (msg) { 16088 return elm$parser$Parser$Advanced$problem( 16089 elm$parser$Parser$Problem(msg)); 16090}; 16091var elm$parser$Parser$end = elm$parser$Parser$Advanced$end(elm$parser$Parser$ExpectingEnd); 16092var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$addThen = F3( 16093 function (f, list, plist) { 16094 return A2( 16095 elm$parser$Parser$andThen, 16096 function (n) { 16097 return f( 16098 _Utils_ap(n, list)); 16099 }, 16100 plist); 16101 }); 16102var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$consThen = F3( 16103 function (f, list, pn) { 16104 return A2( 16105 elm$parser$Parser$andThen, 16106 function (n) { 16107 return f( 16108 A2(elm$core$List$cons, n, list)); 16109 }, 16110 pn); 16111 }); 16112var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$thenChompWhile = F2( 16113 function (isNotRelevant, previousParser) { 16114 return A2( 16115 elm$parser$Parser$ignorer, 16116 previousParser, 16117 elm$parser$Parser$chompWhile(isNotRelevant)); 16118 }); 16119var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimitedUnne
16119stable = F2( 16120 function (options, revAList) { 16121 var defaultMap = options.defaultMap; 16122 var isNotRelevant = options.isNotRelevant; 16123 var end = options.end; 16124 var innerParsers = options.innerParsers; 16125 return elm$parser$Parser$oneOf( 16126 _List_fromArray( 16127 [ 16128 A2( 16129 elm$parser$Parser$map, 16130 elm$core$Basics$always( 16131 A2( 16132 elm$core$List$cons, 16133 defaultMap(end), 16134 revAList)), 16135 elm$parser$Parser$symbol(end)), 16136 A2( 16137 elm$parser$Parser$map, 16138 elm$core$Basics$always(revAList), 16139 elm$parser$Parser$end), 16140 A3( 16141 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$addThen, 16142 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimitedUnnestable(options), 16143 revAList, 16144 elm$parser$Parser$oneOf(innerParsers)), 16145 A3( 16146 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$consThen, 16147 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimitedUnnestable(options), 16148 revAList, 16149 A2( 16150 elm$parser$Parser$map, 16151 defaultMap, 16152 elm$parser$Parser$getChompedString( 16153 A2( 16154 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$thenChompWhile, 16155 isNotRelevant, 16156 elm$parser$Parser$chompIf( 16157 elm$core$Basics$always(true)))))) 16158 ])); 16159 }); 16160var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimitedNestable = F3( 16161 function (nestLevel, options, revAList) { 16162 var defaultMap = options.defaultMap; 16163 var isNotRelevant = options.isNotRelevant; 16164 var start = options.start; 16165 var end = options.end; 16166 var innerParsers = options.innerParsers; 16167 return elm$parser$Parser$oneOf( 16168 _List_fromArray( 16169 [ 16170 A2( 16171 elm$parser$Parser$andThen, 16172 function (n) { 16173 return (nestLevel === 1) ? elm$parser$Parser$succeed(n) : A3(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimitedNestable, nestLevel - 1, options, n); 16174 }, 16175 A2( 16176 elm$parser$Parser$map, 16177 elm$core$Basics$always( 16178 A2( 16179 elm$core$List$cons, 16180 defaultMap(end), 16181 revAList)), 16182 elm$parser$Parser$symbol(end))), 16183 A3( 16184 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$consThen, 16185 A2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimitedNestable, nestLevel + 1, options), 16186 revAList, 16187 A2( 16188 elm$parser$Parser$map, 16189 defaultMap, 16190 elm$parser$Parser$getChompedString( 16191 A2( 16192 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$thenChompWhile, 16193 isNotRelevant, 16194 elm$parser$Parser$symbol(start))))), 16195 A3( 16196 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$addThen, 16197 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimitedUnne
16197stable(options), 16198 revAList, 16199 elm$parser$Parser$oneOf(innerParsers)), 16200 A2( 16201 elm$parser$Parser$map, 16202 elm$core$Basics$always(revAList), 16203 elm$parser$Parser$end), 16204 A3( 16205 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$consThen, 16206 A2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimitedNestable, nestLevel, options), 16207 revAList, 16208 A2( 16209 elm$parser$Parser$map, 16210 defaultMap, 16211 elm$parser$Parser$getChompedString( 16212 A2( 16213 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$thenChompWhile, 16214 isNotRelevant, 16215 elm$parser$Parser$chompIf( 16216 elm$core$Basics$always(true)))))) 16217 ])); 16218 }); 16219var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimitedHelp = F2( 16220 function (options, revAList) { 16221 var start = options.start; 16222 var end = options.end; 16223 var isNotRelevant = options.isNotRelevant; 16224 var _n0 = _Utils_Tuple2( 16225 elm$core$String$uncons(options.start), 16226 elm$core$String$uncons(options.end)); 16227 if (_n0.a.$ === 'Nothing') { 16228 var _n1 = _n0.a; 16229 return elm$parser$Parser$problem('Trying to parse a delimited helper, but the start token cannot be an empty string!'); 16230 } else { 16231 if (_n0.b.$ === 'Nothing') { 16232 var _n2 = _n0.b; 16233 return elm$parser$Parser$problem('Trying to parse a delimited helper, but the end token cannot be an empty string!'); 16234 } else { 16235 var _n3 = _n0.a.a; 16236 var startChar = _n3.a; 16237 var _n4 = _n0.b.a; 16238 var endChar = _n4.a; 16239 return options.isNestable ? A3( 16240 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimitedNestable, 16241 1, 16242 _Utils_update( 16243 options, 16244 { 16245 isNotRelevant: function (c) { 16246 return isNotRelevant(c) && ((!_Utils_eq(c, startChar)) && (!_Utils_eq(c, endChar))); 16247 } 16248 }), 16249 revAList) : A2( 16250 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimitedUnne
16250stable, 16251 _Utils_update( 16252 options, 16253 { 16254 isNotRelevant: function (c) { 16255 return isNotRelevant(c) && (!_Utils_eq(c, endChar)); 16256 } 16257 }), 16258 revAList); 16259 } 16260 } 16261 }); 16262var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimited = function (options) { 16263 var start = options.start; 16264 var isNotRelevant = options.isNotRelevant; 16265 var defaultMap = options.defaultMap; 16266 return A2( 16267 elm$parser$Parser$andThen, 16268 function (n) { 16269 return A2( 16270 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimitedHelp, 16271 options, 16272 _List_fromArray( 16273 [n])); 16274 }, 16275 A2( 16276 elm$parser$Parser$map, 16277 elm$core$Basics$always( 16278 defaultMap(start)), 16279 elm$parser$Parser$symbol(start))); 16280}; 16281var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Comment = {$: 'Comment'}; 16282var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$comment = pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimited( 16283 { 16284 defaultMap: function (b) { 16285 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Comment, b); 16286 }, 16287 end: '*/', 16288 innerParsers: _List_fromArray( 16289 [pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$lineBreak]), 16290 isNestable: false, 16291 isNotRelevant: function (c) { 16292 return !pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isLineBreak(c); 16293 }, 16294 start: '/*' 16295 }); 16296var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal = {$: 'Normal'}; 16297var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$whitespaceOrCommentStep = function (revTokens) { 16298 return elm$parser$Parser$oneOf( 16299 _List_fromArray( 16300 [ 16301 A2( 16302 elm$parser$Parser$map, 16303 function (b) { 16304 return elm$parser$Parser$Loop( 16305 A2( 16306 elm$core$List$cons, 16307 _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b), 16308 revTokens)); 16309 }, 16310 elm$parser$Parser$getChompedString( 16311 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isSpace))), 16312 A2( 16313 elm$parser$Parser$map, 16314 function (ns) { 16315 return elm$parser$Parser$Loop( 16316 _Utils_ap(ns, revTokens)); 16317 }, 16318 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$lineBreak), 16319 A2( 16320 elm$parser$Parser$map, 16321 function (ns) { 16322 return elm$parser$Parser$Loop( 16323 _Utils_ap(ns, revTokens)); 16324 }, 16325 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$comment) 16326 ])); 16327}; 16328var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$keyframesOrCounterStyle = function (a) { 16329 return A2( 16330 elm$parser$Parser$loop, 16331 _List_fromArray( 16332 [ 16333 _Utils_Tuple2( 16334 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C( 16335 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AtRule(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Identifier)), 16336 a) 16337 ]), 16338 function (ns) { 16339 return elm$parser$Parser$oneOf( 16340 _List_fromArray( 16341 [ 16342 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$whitespaceOrCommentStep(ns), 16343 A2( 16344 elm$parser$Parser$map, 16345 function (b) { 16346 return elm$parser$Parser$Loop( 16347 A2( 16348 elm$core$List$cons, 16349 _Utils_Tuple2( 16350 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C( 16351 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AtRule(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Prefix)), 16352 b), 16353 ns)); 16354 }, 16355 elm$parser$Parser$getChompedString( 16356 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isSelectorNameChar))), 16357 A2( 16358 elm$parser$Parser$map, 16359 function (b) { 16360 return elm$parser$Parser$Loop( 16361 A2( 16362 elm$core$List$cons, 16363 _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b), 16364 ns)); 16365 }, 16366 elm$parser$Parser$getChompedString( 16367 elm$parser$Parser$chompIf( 16368 function (c) { 16369 return !_Utils_eq( 16370 c, 16371 _Utils_chr('{')); 16372 }))), 16373 elm$parser$Parser$succeed( 16374 elm$parser$Parser$Done(ns)) 16375 ])); 16376 }); 16377}; 16378var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$nestableAtRuleOpener = function (ns) { 16379 return elm$parser$Parser$oneOf( 16380 _List_fromArray( 16381 [ 16382 A2( 16383 elm$parser$Parser$map, 16384 elm$core$Basics$always( 16385 A2( 16386 elm$core$List$cons, 16387 _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, '{'), 16388 ns)), 16389 elm$parser$Parser$symbol('{')), 16390 elm$parser$Parser$succeed(ns) 16391 ])); 16392}; 16393var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Number = {$: 'Number'}; 16394var elm$parser$Parser$backtrackable = elm$parser$Parser$Advanced$backtrackable; 16395var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$escapableSet = elm$core$Set$fromList( 16396 _List_fromArray( 16397 [ 16398 _Utils_chr('\''), 16399 _Utils_chr('\"'), 16400 _Utils_chr('\\'), 16401 _Utils_chr('n'), 16402 _Utils_chr('r'), 16403 _Utils_chr('t'), 16404 _Utils_chr('b'), 16405 _Utils_chr('f'), 16406 _Utils_chr('v') 16407 ])); 16408var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isEscapableChar = function (c) { 16409 return A2(elm$core$Set$member, c, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$escapableSet); 16410}; 16411var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$escapable = A2( 16412 elm$parser$Parser$ignorer, 16413 A2( 16414 elm$parser$Parser$ignorer, 16415 elm$parser$Parser$succeed(_Utils_Tuple0), 16416 elm$parser$Parser$backtrackable( 16417 elm$parser$Parser$symbol('\\'))), 16418 elm$parser$Parser$chompIf(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isEscapableChar)); 16419var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$cssEscapable = A2( 16420 elm$parser$Parser$map, 16421 function (b) { 16422 return _List_fromArray( 16423 [ 16424 _Utils_Tuple2( 16425 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Number), 16426 b) 16427 ]); 16428 }, 16429 elm$parser$Parser$getChompedString(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$escapable)); 16430var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isEscapable = function (c) { 16431 return _Utils_eq( 16432 c, 16433 _Utils_chr('\\')); 16434}; 16435var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$quoteDelimiter = { 16436 defaultMap: function (b) { 16437 return _Utils_Tuple2( 16438 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$String), 16439 b); 16440 }, 16441 end: '\'', 16442 innerParsers: _List_fromArray( 16443 [pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$lineBreak, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$cssEscapable]), 16444 isNestable: false, 16445 isNotRelevant: function (c) { 16446 return !(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isLineBreak(c) || pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isEscapable(c)); 16447 }, 16448 start: '\'' 16449}; 16450var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$doubleQuote = pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimited( 16451 _Utils_update( 16452 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$quoteDelimiter, 16453 {end: '\"', start: '\"'})); 16454var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$quote = pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimited(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$quoteDelimiter); 16455var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$stringLiteral = function (revTokens) { 16456 return A2( 16457 elm$parser$Parser$map, 16458 function (n) { 16459 return _Utils_ap(n, revTokens); 16460 }, 16461 elm$parser$Parser$oneOf( 16462 _List_fromArray( 16463 [pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$quote, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$doubleQuote]))); 16464}; 16465var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$mediaOrSupports = function (a) { 16466 return A2( 16467 elm$parser$Parser$andThen, 16468 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$nestableAtRuleOpener, 16469 A2( 16470 elm$parser$Parser$loop, 16471 _List_fromArray( 16472 [ 16473 _Utils_Tuple2( 16474 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C( 16475 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AtRule(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Identifier)), 16476 a) 16477 ]), 16478 function (ns) { 16479 return elm$parser$Parser$oneOf( 16480 _List_fromArray( 16481 [ 16482 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$whitespaceOrCommentStep(ns), 16483 A2( 16484 elm$parser$Parser$map, 16485 elm$parser$Parser$Loop, 16486 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$stringLiteral(ns)), 16487 A2( 16488 elm$parser$Parser$map, 16489 elm$parser$Parser$Loop, 16490 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$atRuleKeywordOrValue(ns)), 16491 A2( 16492 elm$parser$Parser$map, 16493 function (b) { 16494 return elm$parser$Parser$Loop( 16495 A2( 16496 elm$core$List$cons, 16497 _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b), 16498 ns)); 16499 }, 16500 elm$parser$Parser$getChompedString( 16501 elm$parser$Parser$chompIf( 16502 function (c) { 16503 return !_Utils_eq( 16504 c, 16505 _Utils_chr('{')); 16506 }))), 16507 elm$parser$Parser$succeed( 16508 elm$parser$Parser$Done(ns)) 16509 ])); 16510 })); 16511}; 16512var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$PropertyValue = {$: 'PropertyValue'}; 16513var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$stringArg = F2( 16514 function (fnStr, revTokens) { 16515 return A2( 16516 elm$parser$Parser$andThen, 16517 function (revT_) { 16518 return elm$parser$Parser$oneOf( 16519 _List_fromArray( 16520 [ 16521 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$stringLiteral(revT_), 16522 A2( 16523 elm$parser$Parser$map, 16524 function (n) { 16525 return A2( 16526 elm$core$List$cons, 16527 _Utils_Tuple2( 16528 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$String), 16529 n), 16530 revT_); 16531 }, 16532 elm$parser$Parser$getChompedString( 16533 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile( 16534 function (c) { 16535 return !_Utils_eq( 16536 c, 16537 _Utils_chr(')')); 16538 }))), 16539 elm$parser$Parser$succeed(revT_) 16540 ])); 16541 }, 16542 A2( 16543 elm$parser$Parser$map, 16544 elm$core$Basics$always( 16545 A2( 16546 elm$core$List$cons, 16547 _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, '('), 16548 A2( 16549 elm$core$List$cons, 16550 _Utils_Tuple2( 16551 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$PropertyValue), 16552 fnStr), 16553 revTokens))), 16554 elm$parser$Parser$symbol(fnStr + '('))); 16555 }); 16556var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$atRuleHelper = function (a) { 16557 switch (a) { 16558 case '@import': 16559 return A2( 16560 elm$parser$Parser$loop, 16561 _List_fromArray( 16562 [ 16563 _Utils_Tuple2( 16564 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C( 16565 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AtRule(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Identifier)), 16566 a) 16567 ]), 16568 function (ns) { 16569 return elm$parser$Parser$oneOf( 16570 _List_fromArray( 16571 [ 16572 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$whitespaceOrCommentStep(ns), 16573 A2( 16574 elm$parser$Parser$map, 16575 elm$parser$Parser$Loop, 16576 A2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$stringArg, 'url', ns)), 16577 A2( 16578 elm$parser$Parser$map, 16579 elm$parser$Parser$Loop, 16580 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$stringLiteral(ns)), 16581 A2( 16582 elm$parser$Parser$map, 16583 elm$parser$Parser$Loop, 16584 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$atRuleKeywordOrValue(ns)), 16585 A2( 16586 elm$parser$Parser$map, 16587 function (b) { 16588 return elm$parser$Parser$Loop( 16589 A2( 16590 elm$core$List$cons, 16591 _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b), 16592 ns)); 16593 }, 16594 elm$parser$Parser$getChompedString( 16595 elm$parser$Parser$chompIf( 16596 function (c) { 16597 return !_Utils_eq( 16598 c, 16599 _Utils_chr(';')); 16600 }))), 16601 elm$parser$Parser$succeed( 16602 elm$parser$Parser$Done(ns)) 16603 ])); 16604 }); 16605 case '@namespace': 16606 return A2( 16607 elm$parser$Parser$loop, 16608 _List_fromArray( 16609 [ 16610 _Utils_Tuple2( 16611 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C( 16612 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AtRule(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Identifier)), 16613 a) 16614 ]), 16615 function (ns) { 16616 return elm$parser$Parser$oneOf( 16617 _List_fromArray( 16618 [ 16619 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$whitespaceOrCommentStep(ns), 16620 A2( 16621 elm$parser$Parser$map, 16622 elm$parser$Parser$Loop, 16623 A2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$stringArg, 'url', ns)), 16624 A2( 16625 elm$parser$Parser$map, 16626 elm$parser$Parser$Loop, 16627 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$stringLiteral(ns)), 16628 A2( 16629 elm$parser$Parser$map, 16630 function (b) { 16631 return elm$parser$Parser$Loop( 16632 A2( 16633 elm$core$List$cons, 16634 _Utils_Tuple2( 16635 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C( 16636 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AtRule(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Prefix)), 16637 b), 16638 ns)); 16639 }, 16640 elm$parser$Parser$getChompedString( 16641 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isSelectorNameChar))), 16642 A2( 16643 elm$parser$Parser$map, 16644 function (b) { 16645 return elm$parser$Parser$Loop( 16646 A2( 16647 elm$core$List$cons, 16648 _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b), 16649 ns)); 16650 }, 16651 elm$parser$Parser$getChompedString( 16652 elm$parser$Parser$chompIf( 16653 function (c) { 16654 return !_Utils_eq( 16655 c, 16656 _Utils_chr(';')); 16657 }))), 16658 elm$parser$Parser$succeed( 16659 elm$parser$Parser$Done(ns)) 16660 ])); 16661 }); 16662 case '@charset': 16663 return A2( 16664 elm$parser$Parser$loop, 16665 _List_fromArray( 16666 [ 16667 _Utils_Tuple2( 16668 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C( 16669 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AtRule(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Identifier)), 16670 a) 16671 ]), 16672 function (ns) { 16673 return elm$parser$Parser$oneOf( 16674 _List_fromArray( 16675 [ 16676 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$whitespaceOrCommentStep(ns), 16677 A2( 16678 elm$parser$Parser$map, 16679 elm$parser$Parser$Loop, 16680 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$stringLiteral(ns)), 16681 A2( 16682 elm$parser$Parser$map, 16683 function (b) { 16684 return elm$parser$Parser$Loop( 16685 A2( 16686 elm$core$List$cons, 16687 _Utils_Tuple2( 16688 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$String), 16689 b), 16690 n
16690s)); 16691 }, 16692 elm$parser$Parser$getChompedString( 16693 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isSelectorNameChar))), 16694 A2( 16695 elm$parser$Parser$map, 16696 function (b) { 16697 return elm$parser$Parser$Loop( 16698 A2( 16699 elm$core$List$cons, 16700 _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b), 16701 ns)); 16702 }, 16703 elm$parser$Parser$getChompedString( 16704 elm$parser$Parser$chompIf( 16705 function (c) { 16706 return !_Utils_eq( 16707 c, 16708 _Utils_chr(';')); 16709 }))), 16710 elm$parser$Parser$succeed( 16711 elm$parser$Parser$Done(ns)) 16712 ])); 16713 }); 16714 case '@media': 16715 return pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$mediaOrSupports(a); 16716 case '@supports': 16717 return pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$mediaOrSupports(a); 16718 case '@keyframes': 16719 return A2( 16720 elm$parser$Parser$andThen, 16721 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$nestableAtRuleOpener, 16722 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$keyframesOrCounterStyle(a)); 16723 case '@counter-style': 16724 return pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$keyframesOrCounterStyle(a); 16725 case '@font-feature-values': 16726 return A2( 16727 elm$parser$Parser$andThen, 16728 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$nestableAtRuleOpener, 16729 A2( 16730 elm$parser$Parser$loop, 16731 _List_fromArray( 16732 [ 16733 _Utils_Tuple2( 16734 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C( 16735 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AtRule(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Identifier)), 16736 a) 16737 ]), 16738 function (ns) { 16739 return elm$parser$Parser$oneOf( 16740 _List_fromArray( 16741 [ 16742 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$whitespaceOrCommentStep(ns), 16743 A2( 16744 elm$parser$Parser$map, 16745 function (b) { 16746 return elm$parser$Parser$Loop( 16747 A2( 16748 elm$core$List$cons, 16749 _Utils_Tuple2( 16750 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C( 16751 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AtRule(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Prefix)), 16752 b), 16753 ns)); 16754 }, 16755 elm$parser$Parser$getChompedString( 16756 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isSelectorNameChar))), 16757 A2( 16758 elm$parser$Parser$map, 16759 function (b) { 16760 return elm$parser$Parser$Loop( 16761 A2( 16762 elm$core$List$cons, 16763 _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b), 16764 ns)); 16765 }, 16766 elm$parser$Parser$getChompedString( 16767 elm$parser$Parser$chompIf( 16768 function (c) { 16769 return !_Utils_eq( 16770 c, 16771 _Utils_chr('{')); 16772 }))), 16773 elm$parser$Parser$succeed( 16774 elm$parser$Parser$Done(ns)) 16775 ])); 16776 })); 16777 default: 16778 return A2(elm$core$Set$member, a, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$atRuleSet) ? elm$parser$Parser$succeed( 16779 _List_fromArray( 16780 [ 16781 _Utils_Tuple2( 16782 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C( 16783 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AtRule(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Identifier)), 16784 a) 16785 ])) : elm$parser$Parser$succeed( 16786 _List_fromArray( 16787 [ 16788 _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, a) 16789 ])); 16790 } 16791}; 16792var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$atRule = A2( 16793 elm$parser$Parser$andThen, 16794 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$atRuleHelper, 16795 elm$parser$Parser$getChompedString( 16796 A2( 16797 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$thenChompWhile, 16798 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isSelectorNameChar, 16799 elm$parser$Parser$symbol('@')))); 16800var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Property = {$: 'Property'}; 16801var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isPropertyChar = function (c) { 16802 return !(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isWhitespace(c) || (pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isCommentChar(c) || (_Utils_eq( 16803 c, 16804 _Utils_chr(':')) || (_Utils_eq( 16805 c, 16806 _Utils_chr(';')) || _Utils_eq( 16807 c, 16808 _Utils_chr('}')))))); 16809}; 16810var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Unit = {$: 'Unit'}; 16811var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$operatorCharSet = elm$core$Set$fromList( 16812 _List_fromArray( 16813 [ 16814 _Utils_chr('+'), 16815 _Utils_chr('-'), 16816 _Utils_chr('%'), 16817 _Utils_chr('*'), 16818 _Utils_chr('/') 16819 ])); 16820var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isOperatorChar = function (c) { 16821 return A2(elm$core$Set$member, c, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$operatorCharSet); 16822}; 16823var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isPropertyValueChar = function (c) { 16824 return pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isPropertyChar(c) && (!(_Utils_eq( 16825 c, 16826 _Utils_chr('(')) || (_Utils_eq( 16827 c, 16828 _Utils_chr(')')) || (_Utils_eq( 16829 c, 16830 _Utils_chr(',')) || pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isOperatorChar(c))))); 16831}; 16832var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$hexColor = function (revTokens) { 16833 return A2( 16834 elm$parser$Parser$map, 16835 function (n) { 16836 return A2( 16837 elm$core$List$cons, 16838 _Utils_Tuple2( 16839 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Number), 16840 n), 16841 revTokens); 16842 }, 16843 elm$parser$Parser$getChompedString( 16844 A2( 16845 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$thenChompWhile, 16846 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isPropertyValueChar, 16847 elm$parser$Parser$symbol('#')))); 16848}; 16849var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isNotPropertyValueChar = function (c) { 16850 return _Utils_eq( 16851 c, 16852 _Utils_chr('(')) || (_Utils_eq( 16853 c, 16854 _Utils_chr(')')) || (_Utils_eq( 16855 c, 16856 _Utils_chr(':')) || (_Utils_eq( 16857 c, 16858 _Utils_chr(',')) || _Utils_eq( 16859 c, 16860 _Utils_chr('/'))))); 16861}; 16862var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$unitSet = elm$core$Set$fromList( 16863 _List_fromArray( 16864 ['em', 'ex', 'ch', 'rem', 'vw', 'vh', 'vmin', 'vmax', 'cm', 'mm', 'q', 'in', 'pt', 'pc', 'px', 'deg', 'grad', 'rad', 'turn', 's', 'ms', 'Hz', 'kHz', 'dpi', 'dpcm', 'dppx'])); 16865var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isUnit = function (n) { 16866 return A2(elm$core$Set$member, n, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$unitSet); 16867}; 16868var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isNumber = function (c) { 16869 return elm$core$Char$isDigit(c) || _Utils_eq( 16870 c, 16871 _Utils_chr('.')); 16872}; 16873var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$positiveNumber = A2( 16874 elm$parser$Parser$ignorer, 16875 A2( 16876 elm$parser$Parser$ignorer, 16877 elm$parser$Parser$succeed(_Utils_Tuple0), 16878 elm$parser$Parser$chompIf(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isNumber)), 16879 elm$parser$Parser$chompWhile(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isNumber)); 16880var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$negativeNumber = A2( 16881 elm$parser$Parser$ignorer, 16882 A2( 16883 elm$parser$Parser$ignorer, 16884 elm$parser$Parser$succeed(_Utils_Tuple0), 16885 elm$parser$Parser$backtrackable( 16886 elm$parser$Parser$symbol('-'))), 16887 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$positiveNumber); 16888var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$number = elm$parser$Parser$oneOf( 16889 _List_fromArray( 16890 [pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$positiveNumber, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$negativeNumber])); 16891var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$number = A2( 16892 elm$parser$Parser$map, 16893 function (b) { 16894 return _Utils_Tuple2( 16895 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Number), 16896 b); 16897 }, 16898 elm$parser$Parser$getChompedString(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$number)); 16899var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$valueLoop = function (revTokens) { 16900 return elm$parser$Parser$oneOf( 16901 _List_fromArray( 16902 [ 16903 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$whitespaceOrCommentStep(revTokens), 16904 A2( 16905 elm$parser$Parser$map, 16906 elm$parser$Parser$Loop, 16907 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$stringLiteral(revTokens)), 16908 A2( 16909 elm$parser$Parser$map, 16910 function (n) { 16911 return elm$parser$Parser$Loop( 16912 A2(elm$core$List$cons, n, revTokens)); 16913 }, 16914 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$number), 16915 A2( 16916 elm$parser$Parser$map, 16917 elm$parser$Parser$Loop, 16918 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$hexColor(revTokens)), 16919 A2( 16920 elm$parser$Parser$map, 16921 elm$parser$Parser$Loop, 16922 A2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$stringArg, 'url', revTokens)), 16923 A2( 16924 elm$parser$Parser$map, 16925 elm$parser$Parser$Loop, 16926 A2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$stringArg, 'format', revTokens)), 16927 A2( 16928 elm$parser$Parser$map, 16929 elm$parser$Parser$Loop, 16930 A2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$stringArg, 'local', revTokens)), 16931 A2( 16932 elm$parser$Parser$map, 16933 function (n) { 16934 return pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isUnit(n) ? elm$parser$Parser$Loop( 16935 A2( 16936 elm$core$List$cons, 16937 _Utils_Tuple2( 16938 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Unit),
16939 n), 16940 revTokens)) : elm$parser$Parser$Loop( 16941 A2( 16942 elm$core$List$cons, 16943 _Utils_Tuple2( 16944 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$PropertyValue), 16945 n), 16946 revTokens)); 16947 }, 16948 elm$parser$Parser$getChompedString( 16949 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isPropertyValueChar))), 16950 A2( 16951 elm$parser$Parser$map, 16952 function (b) { 16953 return elm$parser$Parser$Loop( 16954 A2( 16955 elm$core$List$cons, 16956 _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b), 16957 revTokens)); 16958 }, 16959 elm$parser$Parser$getChompedString( 16960 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isNotPropertyValueChar))), 16961 A2( 16962 elm$parser$Parser$map, 16963 function (b) { 16964 return elm$parser$Parser$Loop( 16965 A2( 16966 elm$core$List$cons, 16967 _Utils_Tuple2( 16968 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Unit), 16969 b), 16970 revTokens)); 16971 }, 16972 elm$parser$Parser$getChompedString( 16973 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isOperatorChar))), 16974 elm$parser$Parser$succeed( 16975 elm$parser$Parser$Done(revTokens)) 16976 ])); 16977}; 16978var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$valueHelper = function (opener) { 16979 return A2( 16980 elm$parser$Parser$loop, 16981 _List_fromArray( 16982 [opener]), 16983 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$valueLoop); 16984}; 16985var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$value = A2( 16986 elm$parser$Parser$andThen, 16987 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$valueHelper, 16988 A2( 16989 elm$parser$Parser$map, 16990 function (b) { 16991 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b); 16992 }, 16993 elm$parser$Parser$getChompedString( 16994 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile( 16995 elm$core$Basics$eq( 16996 _Utils_chr(':')))))); 16997var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$declarationLoop = function (revTokens) { 16998 return elm$parser$Parser$oneOf( 16999 _List_fromArray( 17000 [ 17001 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$whitespaceOrCommentStep(revTokens), 17002 A2( 17003 elm$parser$Parser$map, 17004 function (b) { 17005 return elm$parser$Parser$Loop( 17006 A2( 17007 elm$core$List$cons, 17008 _Utils_Tuple2( 17009 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Property), 17010 b), 17011 revTokens)); 17012 }, 17013 elm$parser$Parser$getChompedString( 17014 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isPropertyChar))), 17015 A2( 17016 elm$parser$Parser$map, 17017 function (b) { 17018 return elm$parser$Parser$Loop( 17019 A2( 17020 elm$core$List$cons, 17021 _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b), 17022 revTokens)); 17023 }, 17024 elm$parser$Parser$getChompedString( 17025 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile( 17026 function (c) { 17027 return _Utils_eq( 17028 c, 17029 _Utils_chr(';')) || _Utils_eq( 17030 c, 17031 _Utils_chr('/')); 17032 }))), 17033 A2( 17034 elm$parser$Parser$map, 17035 function (n) { 17036 return elm$parser$Parser$Loop( 17037 _Utils_ap(n, revTokens)); 17038 }, 17039 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$value), 17040 elm$parser$Parser$succeed( 17041 elm$parser$Parser$Done(revTokens)) 17042 ])); 17043}; 17044var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$declarationBlockHelper = function (opener) { 17045 return A2( 17046 elm$parser$Parser$loop, 17047 _List_fromArray( 17048 [opener]), 17049 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$declarationLoop); 17050}; 17051var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$declarationBlock = A2( 17052 elm$parser$Parser$andThen, 17053 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$declarationBlockHelper, 17054 A2( 17055 elm$parser$Parser$map, 17056 function (b) { 17057 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b); 17058 }, 17059 elm$parser$Parser$getChompedString( 17060 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile( 17061 function (c) { 17062 return _Utils_eq( 17063 c, 17064 _Utils_chr('{')); 17065 })))); 17066var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Selector = function (a) { 17067 return {$: 'Selector', a: a}; 17068}; 17069var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AttributeName = {$: 'AttributeName'}; 17070var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AttributeSelector = function (a) { 17071 return {$: 'AttributeSelector', a: a}; 17072}; 17073var elm$core$Dict$union = F2( 17074 function (t1, t2) { 17075 return A3(elm$core$Dict$foldl, elm$core$Dict$insert, t2, t1); 17076 }); 17077var elm$core$Set$union = F2( 17078 function (_n0, _n1) { 17079 var dict1 = _n0.a; 17080 var dict2 = _n1.a; 17081 return elm$core$Set$Set_elm_builtin( 17082 A2(elm$core$Dict$union, dict1, dict2)); 17083 }); 17084var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$attSelOperatorCharSet = elm$core$Set$fromList( 17085 _List_fromArray( 17086 [ 17087 _Utils_chr('='), 17088 _Utils_chr('~'), 17089 _Utils_chr('|'), 17090 _Utils_chr('^'), 17091 _Utils_chr('$'), 17092 _Utils_chr('*') 17093 ])); 17094var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$whitespaceCharSet = elm$core$Set$fromList( 17095 _List_fromArray( 17096 [ 17097 _Utils_chr(' '), 17098 _Utils_chr('\t'), 17099 _Utils_chr('\n') 17100 ])); 17101var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$attSelNameInvalidCharSet = A2( 17102 elm$core$Set$insert, 17103 _Utils_chr(']'), 17104 A2(elm$core$Set$union, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$attSelOperatorCharSet, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$whitespaceCharSet)); 17105var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$attributeName = A2( 17106 elm$parser$Parser$map, 17107 function (b) { 17108 return _Utils_Tuple2( 17109 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C( 17110 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Selector( 17111 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AttributeSelector(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AttributeName))), 17112 b); 17113 }, 17114 elm$parser$Parser$getChompedString( 17115 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile( 17116 function (c) { 17117 return !A2(elm$core$Set$member, c, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$attSelNameInvalidCharSet); 17118 }))); 17119var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AttributeOperator = {$: 'AttributeOperator'}; 17120var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$attributeOperator = A2( 17121 elm$parser$Parser$map, 17122 function (b) { 17123 return _Utils_Tuple2( 17124 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C( 17125 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Selector( 17126 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AttributeSelector(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AttributeOperator))), 17127 b); 17128 }, 17129 elm$parser$Parser$getChompedString( 17130 elm$parser$Parser$oneOf( 17131 _List_fromArray( 17132 [ 17133 elm$parser$Parser$symbol('~='), 17134 elm$parser$Parser$symbol('|='), 17135 elm$parser$Parser$symbol('^='), 17136 elm$parser$Parser$symbol('$='), 17137 elm$parser$Parser$symbol('*='), 17138 elm$parser$Parser$symbol('=') 17139 ])))); 17140var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AttributeValue = {$: 'AttributeValue'}; 17141var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$attributeValue = function (revTokens) { 17142 return elm$parser$Parser$oneOf( 17143 _List_fromArray( 17144 [ 17145 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$whitespaceOrCommentStep(revTokens), 17146 A2( 17147 elm$parser$Parser$map, 17148 elm$parser$Parser$Done, 17149 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$stringLiteral(revTokens)), 17150 A2( 17151 elm$parser$Parser$map, 17152 elm$parser$Parser$Done, 17153 A2( 17154 elm$parser$Parser$map, 17155 function (b) { 17156 return A2( 17157 elm$core$List$cons, 17158 _Utils_Tuple2( 17159 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C( 17160 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Selector( 17161 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AttributeSelector(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$AttributeValue))), 17162 b), 17163 revTokens); 17164 }, 17165 elm$parser$Parser$getChompedString( 17166 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile( 17167 function (c) { 17168 return (!_Utils_eq( 17169 c, 17170 _Utils_chr(']'))) && (!pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isWhitespace(c)); 17171 })))), 17172 elm$parser$Parser$succeed( 17173 elm$parser$Parser$Done(revTokens)) 17174 ])); 17175}; 17176var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$attributeSelectorLoop = function (revTokens) { 17177 return elm$parser$Parser$oneOf( 17178 _List_fromArray( 17179 [ 17180 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$whitespaceOrCommentStep(revTokens), 17181 A2( 17182 elm$parser$Parser$map, 17183 function (n) { 17184 return elm$parser$Parser$Loop( 17185 A2(elm$core$List$cons, n, revTokens)); 17186 }, 17187 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$attributeName), 17188 A2( 17189 elm$parser$Parser$andThen, 17190 function (operator) { 17191 return A2( 17192 elm$parser$Parser$map, 17193 function (n) { 17194 return elm$parser$Parser$Loop( 17195 _Utils_ap(n, revTokens)); 17196 }, 17197 A2( 17198 elm$parser$Parser$loop, 17199 _List_fromArray( 17200 [operator]), 17201 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$attributeValue)); 17202 }, 17203 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$attributeOperator), 17204 elm$parser$Parser$succeed( 17205 elm$parser$Parser$Done(revTokens)) 17206 ])); 17207}; 17208var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$attributeSelector = A2( 17209 elm$parser$Parser$andThen, 17210 function (opener) { 17211 return A2( 17212 elm$parser$Parser$loop, 17213 _List_fromArray( 17214 [opener]), 17215 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$attributeSelectorLoop); 17216 }, 17217 A2( 17218 elm$parser$Parser$map, 17219 elm$core$Basics$always( 17220 _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, '[')), 17221 elm$parser$Parser$symbol('['))); 17222var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Class = {$: 'Class'}; 17223var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$class = A2( 17224 elm$parser$Parser$map, 17225 function (b) { 17226 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Class, b); 17227 }, 17228 elm$parser$Parser$getChompedString( 17229 A2( 17230 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$thenChompWhile, 17231 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isSelectorNameChar, 17232 elm$parser$Parser$symbol('.')))); 17233var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Combinator = {$: 'Combinator'}; 17234var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$combinator = A2( 17235 elm$parser$Parser$map, 17236 function (b) { 17237 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Combinator, b); 17238 }, 17239 elm$parser$Parser$getChompedString( 17240 elm$parser$Parser$oneOf( 17241 _List_fromArray( 17242 [ 17243 elm$parser$Parser$symbol('+'), 17244 elm$parser$Parser$symbol('~'), 17245 elm$parser$Parser$symbol('>') 17246 ])))); 17247var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Element = {$: 'Element'}; 17248var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$element = A2( 17249 elm$parser$Parser$map, 17250 function (b) { 17251 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Element, b); 17252 }, 17253 elm$parser$Parser$getChompedString( 17254 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isSelectorNameChar))); 17255var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Id = {$: 'Id'}; 17256var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$id = A2( 17257 elm$parser$Parser$map, 17258 function (b) { 17259 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Id, b); 17260 }, 17261 elm$parser$Parser$getChompedString( 17262 A2( 17263 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$thenChompWhile, 17264 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isSelectorNameChar, 17265 elm$parser$Parser$symbol('#')))); 17266var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$PseudoClass = {$: 'PseudoClass'}; 17267var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$pseudoClass = A2( 17268 elm$parser$Parser$map, 17269 function (b) { 17270 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$PseudoClass, b); 17271 }, 17272 elm$parser$Parser$getChompedString( 17273 A2( 17274 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$thenChompWhile, 17275 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isSelectorNameChar, 17276 elm$parser$Parser$symbol(':')))); 17277var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$PseudoElement = {$: 'PseudoElement'}; 17278var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$pseudoElement = A2( 17279 elm$parser$Parser$map, 17280 function (b) { 17281 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$PseudoElement, b); 17282 }, 17283 elm$parser$Parser$getChompedString( 17284 A2( 17285 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$thenChompWhile, 17286 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$isSelectorNameChar, 17287 elm$parser$Parser$symbol('::')))); 17288var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Universal = {$: 'Universal'}; 17289var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$universal = A2( 17290 elm$parser$Parser$map, 17291 elm$core$Basics$always( 17292 _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Universal, '*')), 17293 elm$parser$Parser$symbol('*')); 17294var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$selector = elm$parser$Parser$oneOf( 17295 _List_fromArray( 17296 [ 17297 A2( 17298 elm$parser$Parser$map, 17299 function (_n0) { 17300 var n = _n0.a; 17301 var s = _n0.b; 17302 return _List_fromArray( 17303 [ 17304 _Utils_Tuple2( 17305 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C( 17306 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$Selector(n)), 17307 s) 17308 ]); 17309 }, 17310 elm$parser$Parser$oneOf( 17311 _List_fromArray( 17312 [pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$id, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$class, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$element, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$universal, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$combinator, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$pseudoElement, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$pseudoClass]))), 17313 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$attributeSelector 17314 ])); 17315var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$mainLoop = function (revTokens) { 17316 return elm$parser$Parser$oneOf( 17317 _List_fromArray( 17318 [ 17319 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$whitespaceOrCommentStep(revTokens), 17320 A2( 17321 elm$parser$Parser$map, 17322 function (n) { 17323 return elm$parser$Parser$Loop( 17324 _Utils_ap(n, revTokens)); 17325 }, 17326
17326pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$atRule), 17327 A2( 17328 elm$parser$Parser$map, 17329 function (n) { 17330 return elm$parser$Parser$Loop( 17331 _Utils_ap(n, revTokens)); 17332 }, 17333 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$selector), 17334 A2( 17335 elm$parser$Parser$map, 17336 function (n) { 17337 return elm$parser$Parser$Loop( 17338 _Utils_ap(n, revTokens)); 17339 }, 17340 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$declarationBlock), 17341 A2( 17342 elm$parser$Parser$map, 17343 function (b) { 17344 return elm$parser$Parser$Loop( 17345 A2( 17346 elm$core$List$cons, 17347 _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b), 17348 revTokens)); 17349 }, 17350 elm$parser$Parser$getChompedString( 17351 elm$parser$Parser$chompIf( 17352 elm$core$Basics$always(true)))), 17353 elm$parser$Parser$succeed( 17354 elm$parser$Parser$Done(revTokens)) 17355 ])); 17356}; 17357var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$toRevTokens = A2(elm$parser$Parser$loop, _List_Nil, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$mainLoop); 17358var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Helpers$newLine = function (fragments) { 17359 return {fragments: fragments, highlight: elm$core$Maybe$Nothing}; 17360}; 17361var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Comment = {$: 'Comment'}; 17362var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Helpers$toFragment = F2( 17363 function (toStyle, _n0) { 17364 var syntax = _n0.a; 17365 var text = _n0.b; 17366 switch (syntax.$) { 17367 case 'Normal': 17368 return {additionalClass: '', requiredStyle: pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Default, text: text}; 17369 case 'Comment': 17370 return {additionalClass: '', requiredStyle: pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Comment, text: text}; 17371 case 'LineBreak': 17372 return {additionalClass: '', requiredStyle: pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Default, text: text}; 17373 default: 17374 var c = syntax.a; 17375 var _n2 = toStyle(c); 17376 var requiredStyle = _n2.a; 17377 var additionalClass = _n2.b; 17378 return {additionalClass: additionalClass, requiredStyle: requiredStyle, text: text}; 17379 } 17380 }); 17381var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Helpers$toLinesHelp = F3( 17382 function (toStyle, _n0, _n1) { 17383 var syntax = _n0.a; 17384 var text = _n0.b; 17385 var lines = _n1.a; 17386 var fragments = _n1.b; 17387 var maybeLastSyntax = _n1.c; 17388 if (_Utils_eq(syntax, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$LineBreak)) { 17389 return _Utils_Tuple3( 17390 A2( 17391 elm$core$List$cons, 17392 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Helpers$newLine(fragments), 17393 lines), 17394 _List_fromArray( 17395 [ 17396 A2( 17397 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Helpers$toFragment, 17398 toStyle, 17399 _Utils_Tuple2(syntax, text)) 17400 ]), 17401 elm$core$Maybe$Nothing); 17402 } else { 17403 if (_Utils_eq( 17404 elm$core$Maybe$Just(syntax), 17405 maybeLastSyntax)) { 17406 if (fragments.b) { 17407 var headFrag = fragments.a; 17408 var tailFrags = fragments.b; 17409 return _Utils_Tuple3( 17410 lines, 17411 A2( 17412 elm$core$List$cons, 17413 _Utils_update( 17414 headFrag, 17415 { 17416 text: _Utils_ap(text, headFrag.text) 17417 }), 17418 tailFrags), 17419 maybeLastSyntax); 17420 } else { 17421 return _Utils_Tuple3( 17422 lines, 17423 A2( 17424 elm$core$List$cons, 17425 A2( 17426 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Helpers$toFragment, 17427 toStyle, 17428 _Utils_Tuple2(syntax, text)), 17429 fragments), 17430 maybeLastSyntax); 17431 } 17432 } else { 17433 return _Utils_Tuple3( 17434 lines, 17435 A2( 17436 elm$core$List$cons, 17437 A2( 17438 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Helpers$toFragment, 17439 toStyle, 17440 _Utils_Tuple2(syntax, text)), 17441 fragments), 17442 elm$core$Maybe$Just(syntax)); 17443 } 17444 } 17445 }); 17446var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Helpers$toLines = F2( 17447 function (toStyle, revTokens) { 17448 return function (_n0) { 17449 var lines = _n0.a; 17450 var frags = _n0.b; 17451 return A2( 17452 elm$core$List$cons, 17453 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Helpers$newLine(frags), 17454 lines); 17455 }( 17456 A3( 17457 elm$core$List$foldl, 17458 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Helpers$toLinesHelp(toStyle), 17459 _Utils_Tuple3(_List_Nil, _List_Nil, elm$core$Maybe$Nothing), 17460 revTokens)); 17461 }); 17462var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$toLines = A2( 17463 elm$core$Basics$composeR, 17464 elm$parser$Parser$run(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$toRevTokens), 17465 elm$core$Result$map( 17466 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Helpers$toLines(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$syntaxToStyle))); 17467var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$css = A2( 17468 elm$core$Basics$composeR, 17469 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Css$toLines, 17470 elm$core$Result$map(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$HCode)); 17471var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style6 = {$: 'Style6'}; 17472var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$syntaxToStyle = function (syntax) { 17473 switch (syntax.$) { 17474 case 'String': 17475 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style2, 'elm-s'); 17476 case 'BasicSymbol': 17477 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style3, 'elm-bs'); 17478 case 'GroupSymbol': 17479 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style4, 'elm-gs'); 17480 case 'Capitalized': 17481 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style6, 'elm-c'); 17482 case 'Keyword': 17483 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style3, 'elm-k'); 17484 case 'Function': 17485 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style5, 'elm-f');
17486 case 'TypeSignature': 17487 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style4, 'elm-ts'); 17488 default: 17489 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style1, 'elm-n'); 17490 } 17491}; 17492var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$inlineComment = A2( 17493 elm$parser$Parser$map, 17494 function (b) { 17495 return _List_fromArray( 17496 [ 17497 _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Comment, b) 17498 ]); 17499 }, 17500 elm$parser$Parser$getChompedString( 17501 A2( 17502 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$thenChompWhile, 17503 A2(elm$core$Basics$composeL, elm$core$Basics$not, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isLineBreak), 17504 elm$parser$Parser$symbol('--')))); 17505var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$lineBreakList = A2( 17506 elm$parser$Parser$map, 17507 function (_n0) { 17508 return _List_fromArray( 17509 [ 17510 _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$LineBreak, '\n') 17511 ]); 17512 }, 17513 elm$parser$Parser$symbol('\n')); 17514var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$multilineComment = pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimited( 17515 { 17516 defaultMap: function (b) { 17517 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Comment, b); 17518 }, 17519 end: '-}', 17520 innerParsers: _List_fromArray( 17521 [pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$lineBreakList]), 17522 isNestable: true, 17523 isNotRelevant: function (c) { 17524 return !pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isLineBreak(c); 17525 }, 17526 start: '{-' 17527 }); 17528var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$comment = elm$parser$Parser$oneOf( 17529 _List_fromArray( 17530 [pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$inlineComment, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$multilineComment])); 17531var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$BasicSymbol = {$: 'BasicSymbol'}; 17532var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$Capitalized = {$: 'Capitalized'}; 17533var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$GroupSymbol = {$: 'GroupSymbol'}; 17534var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$Keyword = {$: 'Keyword'}; 17535var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$Number = {$: 'Number'}; 17536var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$basicSymbols = elm$core$Set$fromList( 17537 _List_fromArray( 17538 [ 17539 _Utils_chr('|'), 17540 _Utils_chr('.'), 17541 _Utils_chr('='), 17542 _Utils_chr('\\'), 17543 _Utils_chr('/'), 17544 _Utils_chr('('), 17545 _Utils_chr(')'), 17546 _Utils_chr('-'), 17547 _Utils_chr('>'), 17548 _Utils_chr('<'), 17549 _Utils_chr(':'), 17550 _Utils_chr('+'), 17551 _Utils_chr('!'), 17552 _Utils_chr('$'), 17553 _Utils_chr('%'), 17554 _Utils_chr('&'), 17555 _Utils_chr('*') 17556 ])); 17557var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isBasicSymbol = function (c) { 17558 return A2(elm$core$Set$member, c, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$basicSymbols); 17559}; 17560var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$basicSymbol = elm$parser$Parser$getChompedString( 17561 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isBasicSymbol)); 17562var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$groupSymbols = elm$core$Set$fromList( 17563 _List_fromArray( 17564 [ 17565 _Utils_chr(','), 17566 _Utils_chr('['), 17567 _Utils_chr(']'), 17568 _Utils_chr('{'), 17569 _Utils_chr('}') 17570 ])); 17571var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isGroupSymbol = function (c) { 17572 return A2(elm$core$Set$member, c, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$groupSymbols); 17573}; 17574var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isStringLiteralChar = function (c) { 17575 return _Utils_eq( 17576 c, 17577 _Utils_chr('\"')) || _Utils_eq( 17578 c, 17579 _Utils_chr('\'')); 17580}; 17581var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isVariableChar = function (c) { 17582 return !(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isWhitespace(c) || (pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isBasicSymbol(c) || (pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isGroupSymbol(c) || pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isStringLiteralChar(c)))); 17583}; 17584var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$capitalized = elm$parser$Parser$getChompedString( 17585 A2( 17586 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$thenChompWhile, 17587 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isVariableChar, 17588 elm$parser$Parser$chompIf(elm$core$Char$isUpper))); 17589var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$groupSymbol = elm$parser$Parser$getChompedString( 17590 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isGroupSymbol)); 17591var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$Function = {$: 'Function'}; 17592var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$infixSet = elm$core$Set$fromList( 17593 _List_fromArray( 17594 [ 17595 _Utils_chr('+'), 17596 _Utils_chr('-'), 17597 _Utils_chr('/'), 17598 _Utils_chr('*'), 17599 _Utils_chr('='), 17600 _Utils_chr('.'), 17601 _Utils_chr('$'), 17602 _Utils_chr('<'), 17603 _Utils_chr('>'), 17604 _Utils_chr(':'), 17605 _Utils_chr('&'), 17606 _Utils_chr('|'), 17607 _Utils_chr('^'), 17608 _Utils_chr('?'), 17609 _Utils_chr('%'), 17610 _Utils_chr('#'), 17611 _Utils_chr('@'), 17612 _Utils_chr('~'), 17613 _Utils_chr('!'), 17614 _Utils_chr(',') 17615 ])); 17616var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isInfixChar = function (c) { 17617 return A2(elm$core$Set$member, c, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$infixSet); 17618}; 17619var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$infixParser = A2( 17620 elm$parser$Parser$map, 17621 function (b) { 17622 return _Utils_Tuple2( 17623 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$Function), 17624 b); 17625 }, 17626 elm$parser$Parser$getChompedString( 17627 A2( 17628 elm$parser$Parser$ignorer, 17629 A2( 17630 elm$parser$Parser$ignorer, 17631 A2( 17632 elm$parser$Parser$ignorer, 17633 elm$parser$Parser$succeed(_Utils_Tuple0), 17634 elm$parser$Parser$backtrackable( 17635 elm$parser$Parser$symbol('('))), 17636 elm$parser$Parser$backtrackable( 17637 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isInfixChar))), 17638 elm$parser$Parser$backtrackable( 17639 elm$parser$Parser$symbol(')'))))); 17640var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$keywordSet = elm$core$Set$fromList( 17641 _List_fromArray( 17642 ['as', 'where', 'let', 'in', 'if', 'else', 'then', 'case', 'of', 'type', 'alias'])); 17643var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isKeyword = function (str) { 17644 return A2(elm$core$Set$member, str, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$keywordSet); 17645}; 17646var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$variable = elm$parser$Parser$getChompedString( 17647 A2( 17648 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$thenChompWhile, 17649 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isVariableChar, 17650 elm$parser$Parser$chompIf(elm$core$Char$isLower))); 17651var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$weirdText = elm$parser$Parser$getChompedString( 17652 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isVariableChar)); 17653var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$functionBodyContent = elm$parser$Parser$oneOf( 17654 _List_fromArray( 17655 [ 17656 A2( 17657 elm$parser$Parser$map, 17658 function (b) { 17659 return _Utils_Tuple2( 17660 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$Number), 17661 b); 17662 }, 17663 elm$parser$Parser$getChompedString(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$number)), 17664 A2( 17665 elm$parser$Parser$map, 17666 elm$core$Basics$always( 17667 _Utils_Tuple2( 17668 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$Capitalized), 17669 '()')), 17670 elm$parser$Parser$symbol('()')), 17671 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$infixParser, 17672 A2( 17673 elm$parser$Parser$map, 17674 function (b) { 17675 return _Utils_Tuple2( 17676 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$BasicSymbol), 17677 b); 17678 }, 17679 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$basicSymbol), 17680 A2( 17681 elm$parser$Parser$map, 17682 function (b) { 17683 return _Utils_Tuple2( 17684 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$GroupSymbol), 17685 b); 17686 }, 17687 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$groupSymbol), 17688 A2( 17689 elm$parser$Parser$map, 17690 function (b) { 17691 return _Utils_Tuple2( 17692 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$Capitalized), 17693 b); 17694 }, 17695 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$capitalized), 17696 A2( 17697 elm$parser$Parser$map, 17698 function (n) { 17699 return pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isKeyword(n) ? _Utils_Tuple2( 17700 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$Keyword), 17701 n) : _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, n); 17702 }, 17703 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$variable), 17704 A2( 17705 elm$parser$Parser$map, 17706 function (b) { 17707 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b); 17708 }, 17709 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$weirdText) 17710 ])); 17711var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$String = {$: 'String'}; 17712var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$elmEscapable = A2( 17713 elm$parser$Parser$map, 17714 function (b) { 17715 return _List_fromArray( 17716 [ 17717 _Utils_Tuple2( 17718 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$Capitalized), 17719 b) 17720 ]); 17721 }, 17722 elm$parser$Parser$getChompedString(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$escapable)); 17723var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$stringDelimiter = { 17724 defaultMap: function (b) { 17725 return _Utils_Tuple2( 17726 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$String), 17727 b); 17728 }, 17729 end: '\"', 17730 innerParsers: _List_fromArray( 17731 [pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$lineBreakList, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$elmEscapable]), 17732 isNestable: false, 17733 isNotRelevant: function (c) { 17734 return !(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isLineBreak(c) || pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isEscapable(c)); 17735 }, 17736 start: '\"' 17737}; 17738var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$doubleQuote = pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimited(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$stringDelimiter); 17739var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$quote = pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimited( 17740 _Utils_update( 17741 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$stringDelimiter, 17742 {end: '\'', start: '\''})); 17743var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$tripleDoubleQuote = pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimited( 17744 _Utils_update( 17745 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$stringDelimiter, 17746 {end: '\"\"\"', start: '\"\"\"'})); 17747var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$stringLiteral = elm$parser$Parser$oneOf( 17748 _List_fromArray( 17749 [pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$tripleDoubleQuote, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$doubleQuote, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$quote])); 17750var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$lineBreak = A2( 17751 elm$parser$Parser$map, 17752 function (_n0) { 17753 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$LineBreak, '\n'); 17754 }, 17755 elm$parser$Parser$symbol('\n')); 17756var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$space = A2( 17757 elm$parser$Parser$map, 17758 function (b) { 17759 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b); 17760 }, 17761 elm$parser$Parser$getChompedString( 17762 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isSpace))); 17763var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$checkContext = function (revTokens) { 17764 return elm$parser$Parser$oneOf( 17765 _List_fromArray( 17766 [ 17767 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$whitespaceOrCommentStep(revTokens), 17768 elm$parser$Parser$succeed( 17769 elm$parser$Parser$Done(revTokens)) 17770 ])); 17771}; 17772var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$whitespaceOrCommentStep = function (revTokens) { 17773 return elm$parser$Parser$oneOf( 17774 _List_fromArray( 17775 [ 17776 A2( 17777 elm$parser$Parser$map, 17778 function (n) { 17779 return elm$parser$Parser$Loop( 17780 A2(elm$core$List$cons, n, revTokens)); 17781 }, 17782 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$space), 17783 A2( 17784 elm$parser$Parser$andThen, 17785 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$checkContext, 17786 A2( 17787 elm$parser$Parser$map, 17788 function (n) { 17789 return A2(elm$core$List$cons, n, revTokens); 17790 }, 17791 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$lineBreak)), 17792 A2( 17793 elm$parser$Parser$map, 17794 function (n) { 17795 return elm$parser$Parser$Loop( 17796 _Utils_ap(n, revTokens)); 17797 }, 17798 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$comment) 17799 ])); 17800}; 17801var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$functionBody = function (revTokens) { 17802 return elm$parser$Parser$oneOf( 17803 _List_fromArray( 17804 [ 17805 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$whitespaceOrCommentStep(revTokens), 17806 A2( 17807 elm$parser$Parser$map, 17808 function (ns) { 17809 return elm$parser$Parser$Loop( 17810 _Utils_ap(ns, revTokens)); 17811 }, 17812 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$stringLiteral), 17813 A2( 17814 elm$parser$Parser$map, 17815 function (n) { 17816 return elm$parser$Parser$Loop( 17817 A2(elm$core$List$cons, n, revTokens)); 17818 }, 17819 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$functionBodyContent), 17820 elm$parser$Parser$succeed( 17821 elm$parser$Parser$Done(revTokens)) 17822 ])); 17823}; 17824var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$TypeSignature = {$: 'TypeSignature'}; 17825var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$fnSigIsNotRelevant = function (c) { 17826 return !(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isWhitespace(c) || (_Utils_eq( 17827 c, 17828 _Utils_chr('(')) || (_Utils_eq( 17829 c, 17830 _Utils_chr(')')) || (_Utils_eq( 17831 c, 17832 _Utils_chr('-')) || _Utils_eq( 17833 c, 17834 _Utils_chr(',')))))); 17835}; 17836var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$fnSigContentHelp = elm$parser$Parser$oneOf( 17837 _List_fromArray( 17838 [ 17839 A2( 17840
17840 elm$parser$Parser$map, 17841 elm$core$Basics$always( 17842 _Utils_Tuple2( 17843 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$TypeSignature), 17844 '()')), 17845 elm$parser$Parser$symbol('()')), 17846 A2( 17847 elm$parser$Parser$map, 17848 elm$core$Basics$always( 17849 _Utils_Tuple2( 17850 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$BasicSymbol), 17851 '->')), 17852 elm$parser$Parser$symbol('->')), 17853 A2( 17854 elm$parser$Parser$map, 17855 function (b) { 17856 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b); 17857 }, 17858 elm$parser$Parser$getChompedString( 17859 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile( 17860 function (c) { 17861 return _Utils_eq( 17862 c, 17863 _Utils_chr('(')) || (_Utils_eq( 17864 c, 17865 _Utils_chr(')')) || (_Utils_eq( 17866 c, 17867 _Utils_chr('-')) || _Utils_eq( 17868 c, 17869 _Utils_chr(',')))); 17870 }))), 17871 A2( 17872 elm$parser$Parser$map, 17873 function (b) { 17874 return _Utils_Tuple2( 17875 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$TypeSignature), 17876 b); 17877 }, 17878 elm$parser$Parser$getChompedString( 17879 A2( 17880 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$thenChompWhile, 17881 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$fnSigIsNotRelevant, 17882 elm$parser$Parser$chompIf(elm$core$Char$isUpper)))), 17883 A2( 17884 elm$parser$Parser$map, 17885 function (b) { 17886 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b); 17887 }, 17888 elm$parser$Parser$getChompedString( 17889 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$fnSigIsNotRelevant))) 17890 ])); 17891var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$fnSigContent = function (revTokens) { 17892 return elm$parser$Parser$oneOf( 17893 _List_fromArray( 17894 [ 17895 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$whitespaceOrCommentStep(revTokens), 17896 A2( 17897 elm$parser$Parser$map, 17898 function (n) { 17899 return elm$parser$Parser$Loop( 17900 A2(elm$core$List$cons, n, revTokens)); 17901 }, 17902 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$fnSigContentHelp), 17903 elm$parser$Parser$succeed( 17904 elm$parser$Parser$Done(revTokens)) 17905 ])); 17906}; 17907var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$functionSignature = function (revTokens) { 17908 return elm$parser$Parser$oneOf( 17909 _List_fromArray( 17910 [ 17911 A2( 17912 elm$parser$Parser$map, 17913 elm$parser$Parser$Done, 17914 A2( 17915 elm$parser$Parser$andThen, 17916 function (ns) { 17917 return A2(elm$parser$Parser$loop, ns, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$fnSigContent); 17918 }, 17919 A2( 17920 elm$parser$Parser$map, 17921 elm$core$Basics$always( 17922 A2( 17923 elm$core$List$cons, 17924 _Utils_Tuple2( 17925 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$BasicSymbol), 17926 ':'), 17927 revTokens)), 17928 elm$parser$Parser$symbol(':')))), 17929 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$whitespaceOrCommentStep(revTokens), 17930 A2( 17931 elm$parser$Parser$map, 17932 elm$parser$Parser$Done, 17933 A2(elm$parser$Parser$loop, revTokens, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$functionBody)), 17934 elm$parser$Parser$succeed( 17935 elm$parser$Parser$Done(revTokens)) 17936 ])); 17937}; 17938var elm$parser$Parser$ExpectingKeyword = function (a) { 17939 return {$: 'ExpectingKeyword', a: a}; 17940}; 17941var elm$parser$Parser$Advanced$keyword = function (_n0) { 17942 var kwd = _n0.a; 17943 var expecting = _n0.b; 17944 var progress = !elm$core$String$isEmpty(kwd); 17945 return elm$parser$Parser$Advanced$Parser( 17946 function (s) { 17947 var _n1 = A5(elm$parser$Parser$Advanced$isSubString, kwd, s.offset, s.row, s.col, s.src); 17948 var newOffset = _n1.a; 17949 var newRow = _n1.b; 17950 var newCol = _n1.c; 17951 return (_Utils_eq(newOffset, -1) || (0 <= A3( 17952 elm$parser$Parser$Advanced$isSubChar, 17953 function (c) { 17954 return elm$core$Char$isAlphaNum(c) || _Utils_eq( 17955 c, 17956 _Utils_chr('_')); 17957 }, 17958 newOffset, 17959 s.src))) ? A2( 17960 elm$parser$Parser$Advanced$Bad, 17961 false, 17962 A2(elm$parser$Parser$Advanced$fromState, s, expecting)) : A3( 17963 elm$parser$Parser$Advanced$Good, 17964 progress, 17965 _Utils_Tuple0, 17966 {col: newCol, context: s.context, indent: s.indent, offset: newOffset, row: newRow, src: s.src}); 17967 }); 17968}; 17969var elm$parser$Parser$keyword = function (kwd) { 17970 return elm$parser$Parser$Advanced$keyword( 17971 A2( 17972 elm$parser$Parser$Advanced$Token, 17973 kwd, 17974 elm$parser$Parser$ExpectingKeyword(kwd))); 17975}; 17976var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isCommentChar = function (c) { 17977 return _Utils_eq( 17978 c, 17979 _Utils_chr('-')) || _Utils_eq( 17980 c, 17981 _Utils_chr('{')); 17982}; 17983var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$commentChar = elm$parser$Parser$getChompedString( 17984 elm$parser$Parser$chompIf(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isCommentChar)); 17985var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$modDecIsNotRelevant = function (c) { 17986 return !(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isWhitespace(c) || (pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isCommentChar(c) || _Utils_eq( 17987 c, 17988 _Utils_chr('(')))); 17989}; 17990var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$mdpIsNotRelevant = function (c) { 17991 return !(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isWhitespace(c) || (pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isCommentChar(c) || (_Utils_eq( 17992 c, 17993 _Utils_chr('(')) || (_Utils_eq( 17994 c, 17995 _Utils_chr(')')) || (_Utils_eq( 17996 c, 17997 _Utils_chr(',')) || _Utils_eq( 17998 c, 17999 _Utils_chr('.'))))))); 18000}; 18001var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$mdpnIsSpecialChar = function (c) { 18002 return pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isLineBreak(c) || (pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isCommentChar(c) || (_Utils_eq( 18003 c, 18004 _Utils_chr('(')) || _Utils_eq( 18005 c, 18006 _Utils_chr(')')))); 18007}; 18008var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$checkContextNested = function (_n1) { 18009 var nestLevel = _n1.a; 18010 var revTokens = _n1.b; 18011 return elm$parser$Parser$oneOf( 18012 _List_fromArray( 18013 [ 18014 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$whitespaceOrCommentStepNested( 18015 _Utils_Tuple2(nestLevel, revTokens)), 18016 elm$parser$Parser$succeed( 18017 elm$parser$Parser$Done(revTokens)) 18018 ])); 18019}; 18020var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$whitespaceOrCommentStepNested = function (_n0) { 18021 var nestLevel = _n0.a; 18022 var revTokens = _n0.b; 18023 return elm$parser$Parser$oneOf( 18024 _List_fromArray( 18025 [ 18026 A2( 18027 elm$parser$Parser$map, 18028 function (n) { 18029 return elm$parser$Parser$Loop( 18030 _Utils_Tuple2( 18031 nestLevel, 18032 A2(elm$core$List$cons, n, revTokens))); 18033 }, 18034 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$space), 18035 A2( 18036 elm$parser$Parser$andThen, 18037 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$checkContextNested, 18038 A2( 18039 elm$parser$Parser$map, 18040 function (n) { 18041 return _Utils_Tuple2( 18042 nestLevel, 18043 A2(elm$core$List$cons, n, revTokens)); 18044 }, 18045 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$lineBreak)), 18046 A2( 18047 elm$parser$Parser$map, 18048 function (n) { 18049 return elm$parser$Parser$Loop( 18050 _Utils_Tuple2( 18051 nestLevel, 18052 _Utils_ap(n, revTokens))); 18053 }, 18054 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$comment) 18055 ])); 18056}; 18057var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$modDecParNest = function (_n0) { 18058 var nestLevel = _n0.a; 18059 var revTokens = _n0.b; 18060 return elm$parser$Parser$oneOf( 18061 _List_fromArray( 18062 [ 18063 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$whitespaceOrCommentStepNested( 18064 _Utils_Tuple2(nestLevel, revTokens)), 18065 A2( 18066 elm$parser$Parser$map, 18067 function (ns) { 18068 return elm$parser$Parser$Loop( 18069 _Utils_Tuple2(nestLevel + 1, ns)); 18070 }, 18071 A2( 18072 elm$parser$Parser$map, 18073 elm$core$Basics$always( 18074 A2( 18075 elm$core$List$cons, 18076 _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, '('), 18077 revTokens)), 18078 elm$parser$Parser$symbol('('))), 18079 A2( 18080 elm$parser$Parser$map, 18081 function (ns) { 18082 return (!nestLevel) ? elm$parser$Parser$Done(ns) : elm$parser$Parser$Loop( 18083 _Utils_Tuple2(nestLevel - 1, ns)); 18084 }, 18085 A2( 18086 elm$parser$Parser$map, 18087 elm$core$Basics$always( 18088 A2( 18089 elm$core$List$cons, 18090 _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, ')'), 18091 revTokens)), 18092 elm$parser$Parser$symbol(')'))), 18093 A2( 18094 elm$parser$Parser$map, 18095 function (n) { 18096 return elm$parser$Parser$Loop( 18097 _Utils_Tuple2( 18098 nestLevel, 18099 A2(elm$core$List$cons, n, revTokens))); 18100 }, 18101 elm$parser$Parser$oneOf( 18102 _List_fromArray( 18103 [ 18104 A2( 18105 elm$parser$Parser$map, 18106 function (b) { 18107 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b); 18108 }, 18109 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$commentChar), 18110 A2( 18111 elm$parser$Parser$map, 18112 function (s) { 18113 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, s); 18114 }, 18115 elm$parser$Parser$getChompedString( 18116 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile( 18117 A2(elm$core$Basics$composeL, elm$core$Basics$not, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$mdpnIsSpecialChar)))) 18118 ]))), 18119 elm$parser$Parser$succeed( 18120 elm$parser$Parser$Done(revTokens)) 18121 ])); 18122}; 18123var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$modDecParentheses = function (revTokens) { 18124 return elm$parser$Parser$oneOf( 18125 _List_fromArray( 18126 [ 18127 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$whitespaceOrCommentStep(revTokens), 18128 A2( 18129 elm$parser$Parser$map, 18130 elm$parser$Parser$Done, 18131 A2( 18132 elm$parser$Parser$map, 18133 elm$core$Basics$always( 18134 A2( 18135 elm$core$List$cons, 18136 _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, ')'), 18137 revTokens)), 18138 elm$parser$Parser$symbol(')'))), 18139 A2( 18140 elm$parser$Parser$map, 18141 function (n) { 18142 return elm$parser$Parser$Loop( 18143 A2(elm$core$List$cons, n, revTokens)); 18144 }, 18145 elm$parser$Parser$oneOf( 18146 _List_fromArray( 18147 [ 18148 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$infixParser, 18149 A2( 18150 elm$parser$Parser$map, 18151 function (b) { 18152 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b); 18153 }, 18154 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$commentChar), 18155 A2( 18156 elm$parser$Parser$map, 18157 function (b) { 18158 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b); 18159 }, 18160 elm$parser$Parser$getChompedString( 18161 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile( 18162 function (c) { 18163 return _Utils_eq( 18164 c, 18165 _Utils_chr(',')) || _Utils_eq( 18166 c, 18167 _Utils_chr('.')); 18168 }))), 18169 A2( 18170 elm$parser$Parser$map, 18171 function (b) { 18172 return _Utils_Tuple2( 18173 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$TypeSignature), 18174 b); 18175 }, 18176 elm$parser$Parser$getChompedString( 18177 A2( 18178 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$thenChompWhile, 18179 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$mdpIsNotRelevant, 18180 elm$parser$Parser$chompIf(elm$core$Char$isUpper)))), 18181 A2( 18182 elm$parser$Parser$map, 18183 function (b) { 18184 return _Utils_Tuple2( 18185 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$Function), 18186 b); 18187 }, 18188 elm$parser$Parser$getChompedString( 18189 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$mdpIsNotRelevant))) 18190 ]))), 18191 A2( 18192 elm$parser$Parser$map, 18193 elm$parser$Parser$Loop, 18194 A2( 18195 elm$parser$Parser$andThen, 18196 function (n) { 18197 return A2( 18198 elm$parser$Parser$loop, 18199 _Utils_Tuple2(0, n), 18200 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$modDecParNest); 18201 }, 18202 A2( 18203 elm$parser$Parser$map, 18204 elm$core$Basics$always( 18205 A2( 18206 elm$core$List$cons, 18207 _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, '('), 18208 revTokens)), 18209 elm$parser$Parser$symbol('(')))), 18210 elm$parser$Parser$succeed( 18211 elm$parser$Parser$Done(revTokens)) 18212 ])); 18213}; 18214var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$moduleDeclaration = function (revTokens) { 18215 return elm$parser$Parser$oneOf( 18216 _List_fromArray( 18217 [ 18218 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$whitespaceOrCommentStep(revTokens), 18219 A2( 18220 elm$parser$Parser$map, 18221 elm$parser$Parser$Loop, 18222 A2( 18223 elm$parser$Parser$andThen, 18224 function (n) { 18225 return A2(elm$parser$Parser$loop, n, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$modDecParentheses); 18226 }, 18227 A2( 18228 elm$parser$Parser$map, 18229 elm$core$Basics$always( 18230 A2( 18231 elm$core$List$cons, 18232 _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, '('), 18233 revTokens)), 18234 elm$parser$Parser$symbol('(')))), 18235 A2( 18236 elm$parser$Parser$map, 18237 function (n) { 18238 return elm$parser$Parser$Loop( 18239 A2(elm$core$List$cons, n, revTokens)); 18240 }, 18241 elm$parser$Parser$oneOf( 18242 _List_fromArray( 18243 [ 18244 A2( 18245 elm$parser$Parser$map, 18246 function (b) { 18247 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b); 18248 }, 18249 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$commentChar), 18250 A2( 18251 elm$parser$Parser$map, 18252 elm$core$Basics$always( 18253 _Utils_Tuple2( 18254 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$Keyword), 18255 'exposing')), 18256 elm$parser$Parser$keyword('exposing')), 18257 A2( 18258 elm$parser$Parser$map, 18259 elm$core$Basics$always( 18260 _Utils_Tuple2( 18261 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$Keyword), 18262 'as')), 18263 elm$parser$Parser$keyword('as')), 18264 A2( 18265 elm$parser$Parser$map, 18266 function (b) { 18267 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b); 18268 }, 18269 elm$parser$Parser$getChompedString( 18270 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$modDecIsNotRelevant))) 18271 ]))), 18272 elm$parser$Parser$succeed( 18273 elm$parser$Parser$Done(revTokens)) 18274 ])); 18275}; 18276var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$portDeclarationHelp = F2( 18277 function (revTokens, str) { 18278 return (str === 'module') ? A2( 18279 elm$parser$Parser$loop, 18280 A2( 18281 elm$core$List$cons, 18282 _Utils_Tuple2( 18283 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$Keyword), 18284 str), 18285 revTokens), 18286 pablohirafuji$elm
18286_syntax_highlight$SyntaxHighlight$Language$Elm$moduleDeclaration) : A2( 18287 elm$parser$Parser$loop, 18288 A2( 18289 elm$core$List$cons, 18290 _Utils_Tuple2( 18291 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$Function), 18292 str), 18293 revTokens), 18294 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$functionSignature); 18295 }); 18296var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$portDeclaration = function (revTokens) { 18297 return elm$parser$Parser$oneOf( 18298 _List_fromArray( 18299 [ 18300 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$whitespaceOrCommentStep(revTokens), 18301 A2( 18302 elm$parser$Parser$map, 18303 elm$parser$Parser$Done, 18304 A2( 18305 elm$parser$Parser$andThen, 18306 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$portDeclarationHelp(revTokens), 18307 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$variable)), 18308 A2( 18309 elm$parser$Parser$map, 18310 elm$parser$Parser$Done, 18311 A2(elm$parser$Parser$loop, revTokens, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$functionBody)), 18312 elm$parser$Parser$succeed( 18313 elm$parser$Parser$Done(revTokens)) 18314 ])); 18315}; 18316var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$lineStartVariable = F2( 18317 function (revTokens, n) { 18318 return ((n === 'module') || (n === 'import')) ? A2( 18319 elm$parser$Parser$loop, 18320 A2( 18321 elm$core$List$cons, 18322 _Utils_Tuple2( 18323 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$Keyword), 18324 n), 18325 revTokens), 18326 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$moduleDeclaration) : ((n === 'port') ? A2( 18327 elm$parser$Parser$loop, 18328 A2( 18329 elm$core$List$cons, 18330 _Utils_Tuple2( 18331 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$Keyword), 18332 n), 18333 revTokens), 18334 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$portDeclaration) : (pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$isKeyword(n) ? A2( 18335 elm$parser$Parser$loop, 18336 A2( 18337 elm$core$List$cons, 18338 _Utils_Tuple2( 18339 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$Keyword), 18340 n), 18341 revTokens), 18342 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$functionBody) : A2( 18343 elm$parser$Parser$loop, 18344 A2( 18345 elm$core$List$cons, 18346 _Utils_Tuple2( 18347 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$Function), 18348 n), 18349 revTokens), 18350 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$functionSignature))); 18351 }); 18352var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$mainLoop = function (revTokens) { 18353 return elm$parser$Parser$oneOf( 18354 _List_fromArray( 18355 [ 18356 A2( 18357 elm$parser$Parser$map, 18358 function (n) { 18359 return elm$parser$Parser$Loop( 18360 A2(elm$core$List$cons, n, revTokens)); 18361 }, 18362 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$space), 18363 A2( 18364 elm$parser$Parser$map, 18365 function (n) { 18366 return elm$parser$Parser$Loop( 18367 A2(elm$core$List$cons, n, revTokens)); 18368 }, 18369 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$lineBreak), 18370 A2( 18371 elm$parser$Parser$map, 18372 function (n) { 18373 return elm$parser$Parser$Loop( 18374 _Utils_ap(n, revTokens)); 18375 }, 18376 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$comment), 18377 A2( 18378 elm$parser$Parser$map, 18379 elm$parser$Parser$Loop, 18380 A2( 18381 elm$parser$Parser$andThen, 18382 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$lineStartVariable(revTokens), 18383 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$variable)), 18384 A2( 18385 elm$parser$Parser$map, 18386 elm$parser$Parser$Loop, 18387 A2( 18388 elm$parser$Parser$andThen, 18389 function (s) { 18390 return A2( 18391 elm$parser$Parser$loop, 18392 _Utils_ap(s, revTokens), 18393 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$functionBody); 18394 }, 18395 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$stringLiteral)), 18396 A2( 18397 elm$parser$Parser$map, 18398 elm$parser$Parser$Loop, 18399 A2( 18400 elm$parser$Parser$andThen, 18401 function (s) { 18402 return A2( 18403 elm$parser$Parser$loop, 18404 A2(elm$core$List$cons, s, revTokens), 18405 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$functionBody); 18406 }, 18407 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$functionBodyContent)), 18408 elm$parser$Parser$succeed( 18409 elm$parser$Parser$Done(revTokens)) 18410 ])); 18411}; 18412var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$toRevTokens = A2(elm$parser$Parser$loop, _List_Nil, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$mainLoop); 18413var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$toLines = A2( 18414 elm$core$Basics$composeR, 18415 elm$parser$Parser$run(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$toRevTokens), 18416 elm$core$Result$map( 18417 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Helpers$toLines(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$syntaxToStyle))); 18418var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$elm = A2( 18419 elm$core$Basics$composeR, 18420 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Elm$toLines, 18421 elm$core$Result$map(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$HCode)); 18422var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$syntaxToStyle = function (syntax) { 18423 switch (syntax.$) { 18424 case 'Number': 18425 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style1, 'js-n'); 18426 case 'String': 18427 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style2, 'js-s'); 18428 case 'Keyword': 18429 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style3, 'js-k'); 18430 case 'DeclarationKeyword': 18431 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style4, 'js-dk'); 18432 case 'FunctionEval': 18433 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style4, 'js-fe'); 18434 case 'Function': 18435 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style5, 'js-f'); 18436 case 'LiteralKeyword': 18437 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style6, 'js-lk'); 18438 case 'Param': 18439 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style7, 'js-p'); 18440 default: 18441 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style5, 'js-ce'); 18442 } 18443}; 18444var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$groupSet = elm$core$Set$fromList( 18445 _List_fromArray( 18446 [ 18447 _Utils_chr('{'), 18448 _Utils_chr('}'), 18449 _Utils_chr('('), 18450 _Utils_chr(')'), 18451 _Utils_chr('['), 18452 _Utils_chr(']'), 18453 _Utils_chr(','), 18454 _Utils_chr(';') 18455 ])); 18456var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isGroupChar = function (c) { 18457 return A2(elm$core$Set$member, c, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$groupSet); 18458}; 18459var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$groupChar = A2( 18460 elm$parser$Parser$map, 18461 function (b) { 18462 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b); 18463 }, 18464 elm$parser$Parser$getChompedString( 18465 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isGroupChar))); 18466var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isCommentChar = function (c) { 18467 return _Utils_eq( 18468 c, 18469 _Utils_chr('/')); 18470}; 18471var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$operatorSet = elm$core$Set$fromList( 18472 _List_fromArray( 18473 [ 18474 _Utils_chr('+'), 18475 _Utils_chr('-'), 18476 _Utils_chr('*'), 18477 _Utils_chr('/'), 18478 _Utils_chr('='), 18479 _Utils_chr('!'), 18480 _Utils_chr('<'), 18481 _Utils_chr('>'), 18482 _Utils_chr('&'), 18483 _Utils_chr('|'), 18484 _Utils_chr('?'), 18485 _Utils_chr('^'), 18486 _Utils_chr(':'), 18487 _Utils_chr('~'), 18488 _Utils_chr('%'), 18489 _Utils_chr('.') 18490 ])); 18491var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$punctuactorSet = A2(elm$core$Set$union, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$operatorSet, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$groupSet); 18492var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isPunctuaction = function (c) { 18493 return A2(elm$core$Set$member, c, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$punctuactorSet); 18494}; 18495var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isStringLiteralChar = function (c) { 18496 return _Utils_eq( 18497 c, 18498 _Utils_chr('\"')) || (_Utils_eq( 18499 c, 18500 _Utils_chr('\'')) || _Utils_eq( 18501 c, 18502 _Utils_chr('`'))); 18503}; 18504var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isIdentifierNameChar = function (c) { 18505 return !(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isPunctuaction(c) || (pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isStringLiteralChar(c) || (pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isCommentChar(c) || pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isWhitespace(c)))); 18506}; 18507var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$DeclarationKeyword = {$: 'DeclarationKeyword'}; 18508var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$Function = {$: 'Function'}; 18509var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$Keyword = {$: 'Keyword'}; 18510var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$LiteralKeyword = {$: 'LiteralKeyword'}; 18511var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$Param = {$: 'Param'}; 18512var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$ClassExtends = {$: 'ClassExtends'}; 18513var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$inlineComment = A2( 18514 elm$parser$Parser$map, 18515 function (b) { 18516 return _List_fromArray( 18517 [ 18518 _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Comment, b) 18519 ]); 18520 }, 18521 elm$parser$Parser$getChompedString( 18522 A2( 18523 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$thenChompWhile, 18524 A2(elm$core$Basics$composeL, elm$core$Basics$not, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isLineBreak), 18525 elm$parser$Parser$symbol('//')))); 18526var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$lineBreakList = A2( 18527 elm$parser$Parser$map, 18528 function (_n0) { 18529 return _List_fromArray( 18530 [ 18531 _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$LineBreak, '\n') 18532 ]); 18533 }, 18534 elm$parser$Parser$symbol('\n')); 18535var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$multilineComment = pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimited( 18536 { 18537 defaultMap: function (b) { 18538 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Comment, b); 18539 }, 18540 end: '*/', 18541 innerParsers: _List_fromArray( 18542 [pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$lineBreakList]), 18543 isNestable: false, 18544 isNotRelevant: function (c) { 18545 return !pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isLineBreak(c); 18546 }, 18547 start: '/*' 18548 }); 18549var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$comment = elm$parser$Parser$oneOf( 18550 _List_fromArray( 18551 [pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$inlineComment, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$multilineComment])); 18552var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$whitespaceOrCommentStep = function (revTokens) { 18553 return elm$parser$Parser$oneOf( 18554 _List_fromArray( 18555 [ 18556 A2( 18557 elm$parser$Parser$map, 18558 function (b) { 18559 return elm$parser$Parser$Loop( 18560 A2( 18561 elm$core$List$cons, 18562 _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b), 18563 revTokens)); 18564 }, 18565 elm$parser$Parser$getChompedString( 18566 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isSpace))), 18567 A2( 18568 elm$parser$Parser$map, 18569 function (ns) { 18570 return elm$parser$Parser$Loop( 18571 _Utils_ap(ns, revTokens)); 18572 }, 18573 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$lineBreakList), 18574 A2( 18575 elm$parser$Parser$map, 18576 function (ns) { 18577 return elm$parser$Parser$Loop( 18578 _Utils_ap(ns, revTokens)); 18579 }, 18580 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$comment) 18581 ])); 18582}; 18583var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$classExtendsLoop = function (revTokens) { 18584 return elm$parser$Parser$oneOf( 18585 _List_fromArray( 18586 [ 18587 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$whitespaceOrCommentStep(revTokens), 18588 A2( 18589 elm$parser$Parser$map, 18590 function (b) { 18591 return elm$parser$Parser$Loop( 18592 A2( 18593 elm$core$List$cons, 18594 _Utils_Tuple2( 18595 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$ClassExtends), 18596 b), 18597 revTokens)); 18598 }, 18599 elm$parser$Parser$getChompedString( 18600 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isIdentifierNameChar))), 18601 elm$parser$Parser$succeed( 18602 elm$parser$Parser$Done(revTokens)) 18603 ])); 18604}; 18605var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$classDeclarationLoop = function (revTokens) { 18606 return elm$parser$Parser$oneOf( 18607 _List_fromArray( 18608 [ 18609 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$whitespaceOrCommentStep(revTokens), 18610 A2( 18611 elm$parser$Parser$andThen, 18612 function (n) { 18613 return (n === 'extends') ? A2( 18614 elm$parser$Parser$map, 18615 elm$parser$Parser$Loop, 18616 A2( 18617 elm$parser$Parser$loop, 18618 A2( 18619 elm$core$List$cons, 18620 _Utils_Tuple2( 18621 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$Keyword), 18622 n), 18623 revTokens), 18624 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$classExtendsLoop)) : elm$parser$Parser$succeed( 18625 elm$parser$Parser$Loop( 18626 A2( 18627 elm$core$List$cons, 18628 _Utils_Tuple2( 18629 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$Function), 18630 n), 18631 revTokens))); 18632 }, 18633 elm$parser$Parser$getChompedString( 18634 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isIdentifierNameChar))), 18635 elm$parser$Parser$succeed( 18636 elm$parser$Parser$Done(revTokens)) 18637 ])); 18638}; 18639var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$argLoop = function (revTokens) { 18640 return elm$parser$Parser$oneOf( 18641 _List_fromArray( 18642 [ 18643 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$whitespaceOrCommentStep(revTokens), 18644 A2( 18645 elm$parser$Parser$map, 18646 function (b) { 18647 return elm$parser$Parser$Loop( 18648 A2( 18649 elm$core$List$cons, 18650 _Utils_Tuple2( 18651 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$Param), 18652 b), 18653 revTokens)); 18654 }, 18655 elm$parser$Parser$getChompedString( 18656 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile
18656( 18657 function (c) { 18658 return !(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isCommentChar(c) || (pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isWhitespace(c) || (_Utils_eq( 18659 c, 18660 _Utils_chr(',')) || _Utils_eq( 18661 c, 18662 _Utils_chr(')'))))); 18663 }))), 18664 A2( 18665 elm$parser$Parser$map, 18666 function (b) { 18667 return elm$parser$Parser$Loop( 18668 A2( 18669 elm$core$List$cons, 18670 _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b), 18671 revTokens)); 18672 }, 18673 elm$parser$Parser$getChompedString( 18674 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile( 18675 function (c) { 18676 return _Utils_eq( 18677 c, 18678 _Utils_chr('/')) || _Utils_eq( 18679 c, 18680 _Utils_chr(',')); 18681 }))), 18682 elm$parser$Parser$succeed( 18683 elm$parser$Parser$Done(revTokens)) 18684 ])); 18685}; 18686var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$functionDeclarationLoop = function (revTokens) { 18687 return elm$parser$Parser$oneOf( 18688 _List_fromArray( 18689 [ 18690 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$whitespaceOrCommentStep(revTokens), 18691 A2( 18692 elm$parser$Parser$map, 18693 function (b) { 18694 return elm$parser$Parser$Loop( 18695 A2( 18696 elm$core$List$cons, 18697 _Utils_Tuple2( 18698 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$Function), 18699 b), 18700 revTokens)); 18701 }, 18702 elm$parser$Parser$getChompedString( 18703 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isIdentifierNameChar))), 18704 A2( 18705 elm$parser$Parser$map, 18706 function (_n0) { 18707 return elm$parser$Parser$Loop( 18708 A2( 18709 elm$core$List$cons, 18710 _Utils_Tuple2( 18711 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$Keyword), 18712 '*'), 18713 revTokens)); 18714 }, 18715 elm$parser$Parser$symbol('*')), 18716 A2( 18717 elm$parser$Parser$map, 18718 elm$parser$Parser$Loop, 18719 A2( 18720 elm$parser$Parser$andThen, 18721 function (_n1) { 18722 return A2( 18723 elm$parser$Parser$loop, 18724 A2( 18725 elm$core$List$cons, 18726 _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, '('), 18727 revTokens), 18728 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$argLoop); 18729 }, 18730 elm$parser$Parser$symbol('('))), 18731 elm$parser$Parser$succeed( 18732 elm$parser$Parser$Done(revTokens)) 18733 ])); 18734}; 18735var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$FunctionEval = {$: 'FunctionEval'}; 18736var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$functionEvalLoop = F3( 18737 function (identifier, revTokens, thisRevToken) { 18738 return elm$parser$Parser$oneOf( 18739 _List_fromArray( 18740 [ 18741 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$whitespaceOrCommentStep(thisRevToken), 18742 A2( 18743 elm$parser$Parser$map, 18744 function (_n0) { 18745 return elm$parser$Parser$Done( 18746 _Utils_ap( 18747 A2( 18748 elm$core$List$cons, 18749 _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, '('), 18750 thisRevToken), 18751 A2( 18752 elm$core$List$cons, 18753 _Utils_Tuple2( 18754 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$FunctionEval), 18755 identifier), 18756 revTokens))); 18757 }, 18758 elm$parser$Parser$symbol('(')), 18759 elm$parser$Parser$succeed( 18760 elm$parser$Parser$Done( 18761 _Utils_ap( 18762 thisRevToken, 18763 A2( 18764 elm$core$List$cons, 18765 _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, identifier), 18766 revTokens)))) 18767 ])); 18768 }); 18769var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$declarationKeywordSet = elm$core$Set$fromList( 18770 _List_fromArray( 18771 ['var', 'const', 'let'])); 18772var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isDeclarationKeyword = function (str) { 18773 return A2(elm$core$Set$member, str, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$declarationKeywordSet); 18774}; 18775var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$keywordSet = elm$core$Set$fromList( 18776 _List_fromArray( 18777 ['break', 'do', 'instanceof', 'typeof', 'case', 'else', 'new', 'catch', 'finally', 'return', 'void', 'continue', 'for', 'switch', 'while', 'debugger', 'this', 'with', 'default', 'if', 'throw', 'delete', 'in', 'try', 'enum', 'extends', 'export', 'import', 'implements', 'private', 'public', 'yield', 'interface', 'package', 'protected'])); 18778var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isKeyword = function (str) { 18779 return A2(elm$core$Set$member, str, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$keywordSet); 18780}; 18781var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$literalKeywordSet = elm$core$Set$fromList( 18782 _List_fromArray( 18783 ['true', 'false', 'null', 'undefined', 'NaN', 'Infinity'])); 18784var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isLiteralKeyword = function (str) { 18785 return A2(elm$core$Set$member, str, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$literalKeywordSet); 18786}; 18787var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$keywordParser = F2( 18788 function (revTokens, n) { 18789 return ((n === 'function') || (n === 'static')) ? A2( 18790 elm$parser$Parser$loop, 18791 A2( 18792 elm$core$List$cons, 18793 _Utils_Tuple2( 18794 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$DeclarationKeyword), 18795 n), 18796 revTokens), 18797 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$functionDeclarationLoop) : ((n === 'class') ? A2( 18798 elm$parser$Parser$loop, 18799 A2( 18800 elm$core$List$cons, 18801 _Utils_Tuple2( 18802 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$DeclarationKeyword), 18803 n), 18804 revTokens), 18805 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$classDeclarationLoop) : (((n === 'this') || (n === 'super')) ? elm$parser$Parser$succeed( 18806 A2( 18807 elm$core$List$cons, 18808 _Utils_Tuple2( 18809 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$Param), 18810 n), 18811 revTokens)) : ((n === 'constructor') ? A2( 18812 elm$parser$Parser$loop, 18813 A2( 18814 elm$core$List$cons, 18815 _Utils_Tuple2( 18816 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$Function), 18817 n), 18818 revTokens), 18819 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$functionDeclarationLoop) : (pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isKeyword(n) ? elm$parser$Parser$succeed( 18820 A2( 18821 elm$core$List$cons, 18822 _Utils_Tuple2( 18823 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$Keyword), 18824 n), 18825 revTokens)) : (pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isDeclarationKeyword(n) ? elm$parser$Parser$succeed( 18826 A2( 18827 elm$core$List$cons, 18828 _Utils_Tuple2( 18829 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$DeclarationKeyword), 18830 n), 18831 revTokens)) : (pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isLiteralKeyword(n) ? elm$parser$Parser$succeed( 18832 A2( 18833 elm$core$List$cons, 18834 _Utils_Tuple2( 18835 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$LiteralKeyword), 18836 n), 18837 revTokens)) : A2( 18838 elm$parser$Parser$loop, 18839 _List_Nil, 18840 A2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$functionEvalLoop, n, revTokens)))))))); 18841 }); 18842var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$Number = {$: 'Number'}; 18843var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$number = A2( 18844 elm$parser$Parser$map, 18845 function (b) { 18846 return _Utils_Tuple2( 18847 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$Number), 18848 b); 18849 }, 18850 elm$parser$Parser$getChompedString(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$number)); 18851var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isOperatorChar = function (c) { 18852 return A2(elm$core$Set$member, c, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$operatorSet); 18853}; 18854var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$operatorChar = A2( 18855 elm$parser$Parser$map, 18856 function (b) { 18857 return _Utils_Tuple2( 18858 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$Keyword), 18859 b); 18860 }, 18861 elm$parser$Parser$getChompedString( 18862 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isOperatorChar))); 18863var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$String = {$: 'String'}; 18864var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$jsEscapable = A2( 18865 elm$parser$Parser$map, 18866 function (b) { 18867 return _List_fromArray( 18868 [ 18869 _Utils_Tuple2( 18870 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$LiteralKeyword), 18871 b) 18872 ]); 18873 }, 18874 elm$parser$Parser$getChompedString(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$escapable)); 18875var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$quoteDelimiter = { 18876 defaultMap: function (b) { 18877 return _Utils_Tuple2( 18878 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$String), 18879 b); 18880 }, 18881 end: '\'', 18882 innerParsers: _List_fromArray( 18883 [pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$lineBreakList, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$jsEscapable]), 18884 isNestable: false, 18885 isNotRelevant: function (c) { 18886 return !(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isLineBreak(c) || pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isEscapable(c)); 18887 }, 18888 start: '\'' 18889}; 18890var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$doubleQuote = pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimited( 18891 _Utils_update( 18892 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$quoteDelimiter, 18893 {end: '\"', start: '\"'})); 18894var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$quote = pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimited(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$quoteDelimiter); 18895var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$templateString = pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimited( 18896 _Utils_update( 18897 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$quoteDelimiter, 18898 { 18899 end: '`', 18900 innerParsers: _List_fromArray( 18901 [pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$lineBreakList, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$jsEscapable]), 18902 isNotRelevant: function (c) { 18903 return !(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isLineBreak(c) || pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isEscapable(c)); 18904 }, 18905 start: '`' 18906 })); 18907var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$stringLiteral = elm$parser$Parser$oneOf( 18908 _List_fromArray( 18909 [pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$quote, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$doubleQuote, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$templateString])); 18910var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$mainLoop = function (revTokens) { 18911 return elm$parser$Parser$oneOf( 18912 _List_fromArray( 18913 [ 18914 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$whitespaceOrCommentStep(revTokens), 18915 A2( 18916 elm$parser$Parser$map, 18917 function (s) { 18918 return elm$parser$Parser$Loop( 18919 _Utils_ap(s, revTokens)); 18920 }, 18921 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$stringLiteral), 18922 A2( 18923 elm$parser$Parser$map, 18924 function (s) { 18925 return elm$parser$Parser$Loop( 18926 A2(elm$core$List$cons, s, revTokens)); 18927 }, 18928 elm$parser$Parser$oneOf( 18929 _List_fromArray( 18930 [pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$operatorChar, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$groupChar, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$number]))), 18931 A2( 18932 elm$parser$Parser$map, 18933 elm$parser$Parser$Loop, 18934 A2( 18935 elm$parser$Parser$andThen, 18936 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$keywordParser(revTokens), 18937 elm$parser$Parser$getChompedString( 18938 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$isIdentifierNameChar)))), 18939 elm$parser$Parser$succeed( 18940 elm$parser$Parser$Done(revTokens)) 18941 ])); 18942}; 18943var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$toRevTokens = A2(elm$parser$Parser$loop, _List_Nil, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$mainLoop); 18944var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$toLines = A2( 18945 elm$core$Basics$composeR, 18946 elm$parser$Parser$run(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$toRevTokens), 18947 elm$core$Result$map( 18948 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Helpers$toLines(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$syntaxToStyle))); 18949var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$javascript = A2( 18950 elm$core$Basics$composeR, 18951 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Javascript$toLines, 18952 elm$core$Result$map(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$HCode)); 18953var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$syntaxToStyle = function (syntax) { 18954 switch (syntax.$) { 18955 case 'String': 18956 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style2, 'json-s'); 18957 case 'Escapable': 18958 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style1, 'json-e'); 18959 case 'Number': 18960 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style1, 'json-n'); 18961 case 'Boolean': 18962 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style3, 'json-b'); 18963 case 'Null': 18964 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style3, 'json-null'); 18965 case 'ObjectKey': 18966 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Style4, 'json-k'); 18967 case 'Object': 18968 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Default, 'json-o'); 18969 default: 18970 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Default, 'json-a'); 18971 } 18972}; 18973var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$Array = {$: 'Array'}; 18974var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$Boolean = {$: 'Boole
18974an'}; 18975var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$Null = {$: 'Null'}; 18976var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$Object = {$: 'Object'}; 18977var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$ObjectKey = {$: 'ObjectKey'}; 18978var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$String = {$: 'String'}; 18979var elm$parser$Parser$ExpectingFloat = {$: 'ExpectingFloat'}; 18980var elm$parser$Parser$Advanced$consumeBase = _Parser_consumeBase; 18981var elm$parser$Parser$Advanced$consumeBase16 = _Parser_consumeBase16; 18982var elm$core$String$toFloat = _String_toFloat; 18983var elm$parser$Parser$Advanced$bumpOffset = F2( 18984 function (newOffset, s) { 18985 return {col: s.col + (newOffset - s.offset), context: s.context, indent: s.indent, offset: newOffset, row: s.row, src: s.src}; 18986 }); 18987var elm$parser$Parser$Advanced$chompBase10 = _Parser_chompBase10; 18988var elm$parser$Parser$Advanced$isAsciiCode = _Parser_isAsciiCode; 18989var elm$parser$Parser$Advanced$consumeExp = F2( 18990 function (offset, src) { 18991 if (A3(elm$parser$Parser$Advanced$isAsciiCode, 101, offset, src) || A3(elm$parser$Parser$Advanced$isAsciiCode, 69, offset, src)) { 18992 var eOffset = offset + 1; 18993 var expOffset = (A3(elm$parser$Parser$Advanced$isAsciiCode, 43, eOffset, src) || A3(elm$parser$Parser$Advanced$isAsciiCode, 45, eOffset, src)) ? (eOffset + 1) : eOffset; 18994 var newOffset = A2(elm$parser$Parser$Advanced$chompBase10, expOffset, src); 18995 return _Utils_eq(expOffset, newOffset) ? (-newOffset) : newOffset; 18996 } else { 18997 return offset; 18998 } 18999 }); 19000var elm$parser$Parser$Advanced$consumeDotAndExp = F2( 19001 function (offset, src) { 19002 return A3(elm$parser$Parser$Advanced$isAsciiCode, 46, offset, src) ? A2( 19003 elm$parser$Parser$Advanced$consumeExp, 19004 A2(elm$parser$Parser$Advanced$chompBase10, offset + 1, src), 19005 src) : A2(elm$parser$Parser$Advanced$consumeExp, offset, src); 19006 }); 19007var elm$parser$Parser$Advanced$finalizeInt = F5( 19008 function (invalid, handler, startOffset, _n0, s) { 19009 var endOffset = _n0.a; 19010 var n = _n0.b; 19011 if (handler.$ === 'Err') { 19012 var x = handler.a; 19013 return A2( 19014 elm$parser$Parser$Advanced$Bad, 19015 true, 19016 A2(elm$parser$Parser$Advanced$fromState, s, x)); 19017 } else { 19018 var toValue = handler.a; 19019 return _Utils_eq(startOffset, endOffset) ? A2( 19020 elm$parser$Parser$Advanced$Bad, 19021 _Utils_cmp(s.offset, startOffset) < 0, 19022 A2(elm$parser$Parser$Advanced$fromState, s, invalid)) : A3( 19023 elm$parser$Parser$Advanced$Good, 19024 true, 19025 toValue(n), 19026 A2(elm$parser$Parser$Advanced$bumpOffset, endOffset, s)); 19027 } 19028 }); 19029var elm$parser$Parser$Advanced$finalizeFloat = F6( 19030 function (invalid, expecting, intSettings, floatSettings, intPair, s) { 19031 var intOffset = intPair.a; 19032 var floatOffset = A2(elm$parser$Parser$Advanced$consumeDotAndExp, intOffset, s.src); 19033 if (floatOffset < 0) { 19034 return A2( 19035 elm$parser$Parser$Advanced$Bad, 19036 true, 19037 A4(elm$parser$Parser$Advanced$fromInfo, s.row, s.col - (floatOffset + s.offset), invalid, s.context)); 19038 } else { 19039 if (_Utils_eq(s.offset, floatOffset)) { 19040 return A2( 19041 elm$parser$Parser$Advanced$Bad, 19042 false, 19043 A2(elm$parser$Parser$Advanced$fromState, s, expecting)); 19044 } else { 19045 if (_Utils_eq(intOffset, floatOffset)) { 19046 return A5(elm$parser$Parser$Advanced$finalizeInt, invalid, intSettings, s.offset, intPair, s); 19047 } else { 19048 if (floatSettings.$ === 'Err') { 19049 var x = floatSettings.a; 19050 return A2( 19051 elm$parser$Parser$Advanced$Bad, 19052 true, 19053 A2(elm$parser$Parser$Advanced$fromState, s, invalid)); 19054 } else { 19055 var toValue = floatSettings.a; 19056 var _n1 = elm$core$String$toFloat( 19057 A3(elm$core$String$slice, s.offset, floatOffset, s.src)); 19058 if (_n1.$ === 'Nothing') { 19059 return A2( 19060 elm$parser$Parser$Advanced$Bad, 19061 true, 19062 A2(elm$parser$Parser$Advanced$fromState, s, invalid)); 19063 } else { 19064 var n = _n1.a; 19065 return A3( 19066 elm$parser$Parser$Advanced$Good, 19067 true, 19068 toValue(n), 19069 A2(elm$parser$Parser$Advanced$bumpOffset, floatOffset, s)); 19070 } 19071 } 19072 } 19073 } 19074 } 19075 }); 19076var elm$parser$Parser$Advanced$number = function (c) { 19077 return elm$parser$Parser$Advanced$Parser( 19078 function (s) { 19079 if (A3(elm$parser$Parser$Advanced$isAsciiCode, 48, s.offset, s.src)) { 19080 var zeroOffset = s.offset + 1; 19081 var baseOffset = zeroOffset + 1; 19082 return A3(elm$parser$Parser$Advanced$isAsciiCode, 120, zeroOffset, s.src) ? A5( 19083 elm$parser$Parser$Advanced$finalizeInt, 19084 c.invalid, 19085 c.hex, 19086 baseOffset, 19087 A2(elm$parser$Parser$Advanced$consumeBase16, baseOffset, s.src), 19088 s) : (A3(elm$parser$Parser$Advanced$isAsciiCode, 111, zeroOffset, s.src) ? A5( 19089 elm$parser$Parser$Advanced$finalizeInt, 19090 c.invalid, 19091 c.octal, 19092 baseOffset, 19093 A3(elm$parser$Parser$Advanced$consumeBase, 8, baseOffset, s.src), 19094 s) : (A3(elm$parser$Parser$Advanced$isAsciiCode, 98, zeroOffset, s.src) ? A5( 19095 elm$parser$Parser$Advanced$finalizeInt, 19096 c.invalid, 19097 c.binary, 19098 baseOffset, 19099 A3(elm$parser$Parser$Advanced$consumeBase, 2, baseOffset, s.src), 19100 s) : A6( 19101 elm$parser$Parser$Advanced$finalizeFloat, 19102 c.invalid, 19103 c.expecting, 19104 c._int, 19105 c._float, 19106 _Utils_Tuple2(zeroOffset, 0), 19107 s))); 19108 } else { 19109 return A6( 19110 elm$parser$Parser$Advanced$finalizeFloat, 19111 c.invalid, 19112 c.expecting, 19113 c._int, 19114 c._float, 19115 A3(elm$parser$Parser$Advanced$consumeBase, 10, s.offset, s.src), 19116 s); 19117 } 19118 }); 19119}; 19120var elm$parser$Parser$Advanced$float = F2( 19121 function (expecting, invalid) { 19122 return elm$parser$Parser$Advanced$number( 19123 { 19124 binary: elm$core$Result$Err(invalid), 19125 expecting: expecting, 19126 _float: elm$core$Result$Ok(elm$core$Basics$identity), 19127 hex: elm$core$Result$Err(invalid), 19128 _int: elm$core$Result$Ok(elm$core$Basics$toFloat),
19129 invalid: invalid, 19130 octal: elm$core$Result$Err(invalid) 19131 }); 19132 }); 19133var elm$parser$Parser$float = A2(elm$parser$Parser$Advanced$float, elm$parser$Parser$ExpectingFloat, elm$parser$Parser$ExpectingFloat); 19134var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$positiveNumberExponentialNotation = A2( 19135 elm$parser$Parser$ignorer, 19136 elm$parser$Parser$succeed(_Utils_Tuple0), 19137 elm$parser$Parser$backtrackable(elm$parser$Parser$float)); 19138var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$negativeNumberExponentialNotation = A2( 19139 elm$parser$Parser$ignorer, 19140 A2( 19141 elm$parser$Parser$ignorer, 19142 elm$parser$Parser$succeed(_Utils_Tuple0), 19143 elm$parser$Parser$backtrackable( 19144 elm$parser$Parser$symbol('-'))), 19145 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$positiveNumberExponentialNotation); 19146var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$numberExponentialNotation = elm$parser$Parser$oneOf( 19147 _List_fromArray( 19148 [pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$positiveNumberExponentialNotation, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$negativeNumberExponentialNotation, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$number])); 19149var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$Number = {$: 'Number'}; 19150var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$number = A2( 19151 elm$parser$Parser$map, 19152 function (b) { 19153 return _Utils_Tuple2( 19154 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$Number), 19155 b); 19156 }, 19157 elm$parser$Parser$getChompedString(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$numberExponentialNotation)); 19158var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$lineBreak = A2( 19159 elm$parser$Parser$map, 19160 function (_n0) { 19161 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$LineBreak, '\n'); 19162 }, 19163 elm$parser$Parser$symbol('\n')); 19164var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$Escapable = {$: 'Escapable'}; 19165var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$escapableSet = elm$core$Set$fromList( 19166 _List_fromArray( 19167 [ 19168 _Utils_chr('\"'), 19169 _Utils_chr('\\'), 19170 _Utils_chr('/'), 19171 _Utils_chr('b'), 19172 _Utils_chr('f'), 19173 _Utils_chr('n'), 19174 _Utils_chr('r'), 19175 _Utils_chr('t'), 19176 _Utils_chr('u') 19177 ])); 19178var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$isEscapableChar = function (c) { 19179 return A2(elm$core$Set$member, c, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$escapableSet); 19180}; 19181var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$escapable = A2( 19182 elm$parser$Parser$ignorer, 19183 A2( 19184 elm$parser$Parser$ignorer, 19185 elm$parser$Parser$succeed(_Utils_Tuple0), 19186 elm$parser$Parser$backtrackable( 19187 elm$parser$Parser$symbol('\\'))), 19188 elm$parser$Parser$chompIf(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$isEscapableChar)); 19189var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$stringEscapable = A2( 19190 elm$parser$Parser$map, 19191 function (b) { 19192 return _List_fromArray( 19193 [ 19194 _Utils_Tuple2( 19195 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$Escapable), 19196 b) 19197 ]); 19198 }, 19199 elm$parser$Parser$getChompedString(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$escapable)); 19200var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$doubleQuoteDelimiter = function (syntax_) { 19201 return { 19202 defaultMap: function (b) { 19203 return _Utils_Tuple2( 19204 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(syntax_), 19205 b); 19206 }, 19207 end: '\"', 19208 innerParsers: _List_fromArray( 19209 [ 19210 A2(elm$parser$Parser$map, elm$core$List$singleton, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$lineBreak), 19211 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$stringEscapable 19212 ]), 19213 isNestable: false, 19214 isNotRelevant: function (c) { 19215 return !(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isLineBreak(c) || pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isEscapable(c)); 19216 }, 19217 start: '\"' 19218 }; 19219}; 19220var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$stringLiteral = F2( 19221 function (syntax_, revTokens) { 19222 return A2( 19223 elm$parser$Parser$map, 19224 function (n) { 19225 return _Utils_ap(n, revTokens); 19226 }, 19227 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$delimited( 19228 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$doubleQuoteDelimiter(syntax_))); 19229 }); 19230var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$space = A2( 19231 elm$parser$Parser$map, 19232 function (b) { 19233 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b); 19234 }, 19235 elm$parser$Parser$getChompedString( 19236 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isSpace))); 19237var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$whitespace = elm$parser$Parser$oneOf( 19238 _List_fromArray( 19239 [pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$space, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$lineBreak])); 19240var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$arrayLoop = function (revTokens) { 19241 return elm$parser$Parser$oneOf( 19242 _List_fromArray( 19243 [ 19244 A2( 19245 elm$parser$Parser$map, 19246 function (n) { 19247 return elm$parser$Parser$Loop( 19248 A2(elm$core$List$cons, n, revTokens)); 19249 }, 19250 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$whitespace), 19251 A2( 19252 elm$parser$Parser$map, 19253 function (n) { 19254 return elm$parser$Parser$Loop( 19255 A2(elm$core$List$cons, n, revTokens)); 19256 }, 19257 A2( 19258 elm$parser$Parser$map, 19259 function (_n4) { 19260 return _Utils_Tuple2( 19261 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$Array), 19262 ','); 19263 }, 19264 elm$parser$Parser$symbol(','))), 19265 A2( 19266 elm$parser$Parser$map, 19267 function (n) { 19268 return elm$parser$Parser$Done( 19269 A2(elm$core$List$cons, n, revTokens)); 19270 }, 19271 A2( 19272 elm$parser$Parser$map, 19273 function (_n5) { 19274 return _Utils_Tuple2( 19275 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$Array), 19276 ']'); 19277 }, 19278 elm$parser$Parser$symbol(']'))), 19279 A2( 19280 elm$parser$Parser$map, 19281 function (ns) { 19282 return elm$parser$Parser$Loop( 19283 _Utils_ap(ns, revTokens)); 19284 }, 19285 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$cyclic$value(
19285)), 19286 elm$parser$Parser$succeed( 19287 elm$parser$Parser$Done(revTokens)) 19288 ])); 19289}; 19290var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$objectLoop = function (revTokens) { 19291 return elm$parser$Parser$oneOf( 19292 _List_fromArray( 19293 [ 19294 A2( 19295 elm$parser$Parser$map, 19296 function (n) { 19297 return elm$parser$Parser$Loop( 19298 A2(elm$core$List$cons, n, revTokens)); 19299 }, 19300 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$whitespace), 19301 A2( 19302 elm$parser$Parser$map, 19303 elm$parser$Parser$Loop, 19304 A2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$stringLiteral, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$ObjectKey, revTokens)), 19305 A2( 19306 elm$parser$Parser$map, 19307 elm$parser$Parser$Loop, 19308 A2( 19309 elm$parser$Parser$andThen, 19310 function (_n0) { 19311 var revTokens_ = A2( 19312 elm$core$List$cons, 19313 _Utils_Tuple2( 19314 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$Object), 19315 ':'), 19316 revTokens); 19317 return A2( 19318 elm$parser$Parser$map, 19319 function (ns) { 19320 return _Utils_ap(ns, revTokens_); 19321 }, 19322 elm$parser$Parser$oneOf( 19323 _List_fromArray( 19324 [ 19325 A2( 19326 elm$parser$Parser$andThen, 19327 function (ws) { 19328 return elm$parser$Parser$oneOf( 19329 _List_fromArray( 19330 [ 19331 A2( 19332 elm$parser$Parser$map, 19333 function (v) { 19334 return _Utils_ap( 19335 v, 19336 _List_fromArray( 19337 [ws])); 19338 }, 19339 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$cyclic$value()), 19340 elm$parser$Parser$succeed( 19341 _List_fromArray( 19342 [ws])) 19343 ])); 19344 }, 19345 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$whitespace), 19346 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$cyclic$value(), 19347 elm$parser$Parser$succeed(_List_Nil) 19348 ]))); 19349 }, 19350 elm$parser$Parser$symbol(':'))), 19351 A2( 19352 elm$parser$Parser$map, 19353 function (n) { 19354 return elm$parser$Parser$Loop( 19355 A2(elm$core$List$cons, n, revTokens)); 19356 }, 19357 A2( 19358 elm$parser$Parser$map, 19359 function (_n1) { 19360 return _Utils_Tuple2( 19361 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$Object), 19362 ','); 19363 }, 19364 elm$parser$Parser$symbol(','))), 19365 A2( 19366 elm$parser$Parser$map, 19367 function (n) { 19368 return elm$parser$Parser$Done( 19369 A2(elm$core$List$cons, n, revTokens)); 19370 }, 19371 A2( 19372 elm$parser$Parser$map, 19373 function (_n2) { 19374 return _Utils_Tuple2( 19375 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$Object), 19376 '}'); 19377 }, 19378 elm$parser$Parser$symbol('}'))), 19379 elm$parser$Parser$succeed( 19380 elm$parser$Parser$Done(revTokens)) 19381 ])); 19382}; 19383function pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$cyclic$value() { 19384 return elm$parser$Parser$oneOf( 19385 _List_fromArray( 19386 [ 19387 A2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$stringLiteral, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$String, _List_Nil), 19388 A2( 19389 elm$parser$Parser$map, 19390 function (n) { 19391 return _List_fromArray( 19392 [n]); 19393 }, 19394 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$number), 19395 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$cyclic$object(), 19396 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$cyclic$array(), 19397 A2( 19398 elm$parser$Parser$map, 19399 function (s) { 19400 return _List_fromArray( 19401 [ 19402 _Utils_Tuple2( 19403 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$Null), 19404 s) 19405 ]); 19406 }, 19407 elm$parser$Parser$getChompedString( 19408 elm$parser$Parser$keyword('null'))), 19409 A2( 19410 elm$parser$Parser$map, 19411 function (s) { 19412 return _List_fromArray( 19413 [ 19414 _Utils_Tuple2( 19415 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$Boolean), 19416 s) 19417 ]); 19418 }, 19419 elm$parser$Parser$getChompedString( 19420 elm$parser$Parser$oneOf( 19421 _List_fromArray( 19422 [ 19423 elm$parser$Parser$keyword('true'), 19424 elm$parser$Parser$keyword('false') 19425 ])))) 19426 ])); 19427} 19428function pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$cyclic$array() { 19429 return A2( 19430 elm$parser$Parser$andThen, 19431 function (_n6) { 19432 return A2( 19433 elm$parser$Parser$loop, 19434 _List_fromArray( 19435 [ 19436 _Utils_Tuple2( 19437 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$Array), 19438 '[') 19439 ]), 19440 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$arrayLoop); 19441 }, 19442 elm$parser$Parser$symbol('[')); 19443} 19444function pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$cyclic$object() { 19445 return A2( 19446 elm$parser$Parser$andThen, 19447 function (_n3) { 19448 return A2( 19449 elm$parser$Parser$loop, 19450 _List_fromArray( 19451 [ 19452 _Utils_Tuple2( 19453 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$C(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$Object), 19454 '{') 19455 ]), 19456 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$objectLoop); 19457 }, 19458 elm$parser$Parser$symbol('{')); 19459} 19460try { 19461 var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$value = pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$cyclic$value(
19461); 19462 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$cyclic$value = function () { 19463 return pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$value; 19464 }; 19465 var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$array = pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$cyclic$array(); 19466 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$cyclic$array = function () { 19467 return pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$array; 19468 }; 19469 var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$object = pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$cyclic$object(); 19470 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$cyclic$object = function () { 19471 return pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$object; 19472 }; 19473} catch ($) { 19474throw 'Some top-level definitions from `SyntaxHighlight.Language.Json` are causing infinite recursion:\n\n âââââââ\n â value\n â â\n â array\n â â\n â arrayLoop\n â â\n â object\n â â\n â objectLoop\n âââââââ\n\nThese errors are very tricky, so read https://elm-lang.org/0.19.0/halting-problem to learn how to fix it!';} 19475var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$mainLoop = function (revTokens) { 19476 return elm$parser$Parser$oneOf( 19477 _List_fromArray( 19478 [ 19479 A2( 19480 elm$parser$Parser$map, 19481 function (n) { 19482 return elm$parser$Parser$Loop( 19483 A2(elm$core$List$cons, n, revTokens)); 19484 }, 19485 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$whitespace), 19486 A2( 19487 elm$parser$Parser$map, 19488 function (n) { 19489 return elm$parser$Parser$Loop( 19490 _Utils_ap(n, revTokens)); 19491 }, 19492 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$object), 19493 A2( 19494 elm$parser$Parser$map, 19495 function (b) { 19496 return elm$parser$Parser$Loop( 19497 A2( 19498 elm$core$List$cons, 19499 _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b), 19500 revTokens)); 19501 }, 19502 elm$parser$Parser$getChompedString( 19503 elm$parser$Parser$chompIf( 19504 elm$core$Basics$always(true)))), 19505 elm$parser$Parser$succeed( 19506 elm$parser$Parser$Done(revTokens)) 19507 ])); 19508}; 19509var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$toRevTokens = A2(elm$parser$Parser$loop, _List_Nil, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$mainLoop); 19510var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$toLines = A2( 19511 elm$core$Basics$composeR, 19512 elm$parser$Parser$run(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$toRevTokens), 19513 elm$core$Result$map( 19514 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Helpers$toLines(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$syntaxToStyle))); 19515var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$json = A2( 19516 elm$core$Basics$composeR, 19517 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Json$toLines, 19518 elm$core$Result$map(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$HCode)); 19519var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$NoLang$syntaxToStyle = function (syntax) { 19520 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Default, 'nolang'); 19521}; 19522var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$NoLang$lineBreak = A2( 19523 elm$parser$Parser$map, 19524 function (_n0) { 19525 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$LineBreak, '\n'); 19526 }, 19527 elm$parser$Parser$symbol('\n')); 19528var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$NoLang$space = A2( 19529 elm$parser$Parser$map, 19530 function (b) { 19531 return _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b); 19532 }, 19533 elm$parser$Parser$getChompedString( 19534 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$chompIfThenWhile(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Helpers$isSpace))); 19535var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$NoLang$whitespace = elm$parser$Parser$oneOf( 19536 _List_fromArray( 19537 [pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$NoLang$space, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$NoLang$lineBreak])); 19538var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$NoLang$mainLoop = function (revTokens) { 19539 return elm$parser$Parser$oneOf( 19540 _List_fromArray( 19541 [ 19542 A2( 19543 elm$parser$Parser$map, 19544 function (n) { 19545 return elm$parser$Parser$Loop( 19546 A2(elm$core$List$cons, n, revTokens)); 19547 }, 19548 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$NoLang$whitespace), 19549 A2( 19550 elm$parser$Parser$map, 19551 function (b) { 19552 return elm$parser$Parser$Loop( 19553 A2( 19554 elm$core$List$cons, 19555 _Utils_Tuple2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$Type$Normal, b), 19556 revTokens)); 19557 }, 19558 elm$parser$Parser$getChompedString( 19559 elm$parser$Parser$chompIf( 19560 elm$core$Basics$always(true)))), 19561 elm$parser$Parser$succeed( 19562 elm$parser$Parser$Done(revTokens)) 19563 ])); 19564}; 19565var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$NoLang$toRevTokens = A2(elm$parser$Parser$loop, _List_Nil, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$NoLang$mainLoop); 19566var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$NoLang$toLines = A2( 19567 elm$core$Basics$composeR, 19568 elm$parser$Parser$run(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$NoLang$toRevTokens), 19569 elm$core$Result$map( 19570 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Helpers$toLines(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$NoLang$syntaxToStyle))); 19571var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$noLang = A2( 19572 elm$core$Basics$composeR, 19573 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Language$NoLang$toLines, 19574 elm$core$Result$map(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$HCode)); 19575var elm$virtual_dom$VirtualDom$attribute = F2( 19576 function (key, value) { 19577 return A2( 19578 _VirtualDom_attribute, 19579 _VirtualDom_noOnOrFormAction(key), 19580 _VirtualDom_noJavaScriptOrHtmlUri(value)); 19581 }); 19582var elm$html$Html$Attributes$attribute = elm$virtual_dom$VirtualDom$attribute; 19583var elm$core$Tuple$second = function (_n0) { 19584 var y = _n0.b; 19585 return y; 19586}; 19587var elm$html$Html$Attributes$classList = function (classes) { 19588 return elm$html$Html$Attributes$class( 19589 A2( 19590 elm$core$String$join, 19591 ' ', 19592 A2( 19593 elm$core$List$map, 19594 elm$core$Tuple$first, 19595 A2(elm$core$List$filter, elm$core$Tuple$second, classes)))); 19596}; 19597var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Add = {$: 'Add'}; 19598var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Del = {$: 'Del'}; 19599var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Normal = {$: 'Normal'}; 19600var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$View$requiredStyleToString = function (required) { 19601 return 'elmsh' + function () { 19602 switch (required.$) { 19603 case 'Default': 19604 return '0'; 19605 case 'Comment': 19606 return '-comm'; 19607 case 'Style1': 19608 return '1'; 19609 case 'Style2': 19610 return '2'; 19611 case 'Style3': 19612 return '3'; 19613 case 'Style4': 19614 return '4'; 19615 case 'Style5': 19616 return '5'; 19617 case 'Style6': 19618 return '6'; 19619 default: 19620 return '7'; 19621 } 19622 }(); 19623}; 19624var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$View$fragmentView = function (_n0) { 19625 var text = _n0.text; 19626 var requiredStyle = _n0.requiredStyle; 19627 var additionalClass = _n0.additionalClass; 19628 return (_Utils_eq(requiredStyle, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Default) && elm$core$String$isEmpty(additionalClass)) ? elm$html$Html$text(text) : A2( 19629 elm$html$Html$span, 19630 _List_fromArray( 19631 [ 19632 elm$html$Html$Attributes$classList( 19633 _List_fromArray( 19634 [ 19635 _Utils_Tuple2( 19636 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$View$requiredStyleToString(requiredStyle), 19637 !_Utils_eq(requiredStyle, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Style$Default)), 19638 _Utils_Tuple2('elmsh-' + additionalClass, additionalClass !== '') 19639 ])) 19640 ]), 19641 _List_fromArray( 19642 [ 19643 elm$html$Html$text(text) 19644 ])); 19645}; 19646var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$View$lineView = F3( 19647 function (start, index, _n0) { 19648 var fragments = _n0.fragments; 19649 var highlight = _n0.highlight; 19650 return A2( 19651 elm$html$Html$div, 19652 _List_fromArray( 19653 [ 19654 elm$html$Html$Attributes$classList( 19655 _List_fromArray( 19656 [ 19657 _Utils_Tuple2('elmsh-line', true), 19658 _Utils_Tuple2( 19659 'elmsh-hl', 19660 _Utils_eq( 19661 highlight, 19662 elm$core$Maybe$Just(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Normal))), 19663 _Utils_Tuple2( 19664 'elmsh-add', 19665 _Utils_eq( 19666 highlight, 19667 elm$core$Maybe$Just(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Add))), 19668 _Utils_Tuple2( 19669 'elmsh-del', 19670 _Utils_eq( 19671 highlight, 19672 elm$core$Maybe$Just(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Del))) 19673 ])), 19674 A2( 19675 elm$html$Html$Attributes$attribute, 19676 'data-elmsh-lc', 19677 elm$core$String$fromInt(start + index)) 19678 ]), 19679 A2(elm$core$List$map, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$View$fragmentView, fragments)); 19680 }); 19681var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$View$toInlineHtml = function (lines) { 19682 return A2( 19683 elm$html$Html$code, 19684 _List_fromArray( 19685 [ 19686 elm$html$Html$Attributes$class('elmsh') 19687 ]), 19688 elm$core$List$concat( 19689 A2( 19690 elm$core$List$map, 19691 function (_n0) { 19692 var highlight = _n0.highlight; 19693 var fragments = _n0.fragments; 19694 return _Utils_eq(highlight, elm$core$Maybe$Nothing) ? A2(elm$core$List$map, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$View$fragmentView, fragments) : _List_fromArray( 19695 [ 19696 A2( 19697 elm$html$Html$span, 19698 _List_fromArray( 19699 [ 19700 elm$html$Html$Attributes$classList( 19701 _List_fromArray( 19702 [ 19703 _Utils_Tuple2( 19704 'elmsh-hl', 19705 _Utils_eq( 19706 highlight, 19707 elm$core$Maybe$Just(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Normal))), 19708 _Utils_Tuple2( 19709 'elmsh-add', 19710 _Utils_eq( 19711 highlight, 19712 elm$core$Maybe$Just(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Add))), 19713 _Utils_Tuple2( 19714 'elmsh-del', 19715 _Utils_eq( 19716 highlight, 19717 elm$core$Maybe$Just(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$Line$Del))) 19718 ])) 19719 ]), 19720 A2(elm$core$List$map, pablohirafuji$elm_syntax_highlight$SyntaxHighlight$View$fragmentView, fragments)) 19721 ]); 19722 }, 19723 lines))); 19724}; 19725var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$View$toBlockHtml = F2( 19726 function (maybeStart, lines) { 19727 if (maybeStart.$ === 'Nothing') { 19728 return A2( 19729 elm$html$Html$pre, 19730 _List_fromArray( 19731 [ 19732 elm$html$Html$Attributes$class('elmsh') 19733 ]), 19734 _List_fromArray( 19735 [ 19736 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$View$toInlineHtml(lines) 19737 ])); 19738 } else { 19739 var start = maybeStart.a; 19740 return A2( 19741 elm$html$Html$pre, 19742 _List_fromArray( 19743 [ 19744 elm$html$Html$Attributes$class('elmsh') 19745 ]), 19746 elm$core$List$singleton( 19747 A2( 19748 elm$html$Html$code, 19749 _List_Nil, 19750 A2( 19751 elm$core$List$indexedMap, 19752 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$View$lineView(start), 19753 lines)))); 19754 } 19755 }); 19756var pablohirafuji$elm_syntax_highlight$SyntaxHighlight$toBlockHtml = F2( 19757 function (maybeStart, _n0) { 19758 var lines = _n0.a; 19759 return A2(pablohirafuji$elm_syntax_highlight$SyntaxHighlight$View$toBlockHtml, maybeStart, lines); 19760 }); 19761var dtwrks$elm_book$ElmBook$UI$Markdown$defaultRenderer = { 19762 blockQuote: function (children) { 19763 return A2( 19764 elm$html$Html$div, 19765 _List_fromArray( 19766 [ 19767 elm$html$Html$Attributes$class('elm-book-md elm-book-serif') 19768 ]), 19769 _List_fromArray( 19770 [ 19771 A2(elm$html$Html$blockquote, _List_Nil, children) 19772 ])); 19773 }, 19774 codeBlock: function (_n0) { 19775 var body = _n0.body; 19776 var language = _n0.language; 19777 var hCode = function () { 19778 var _n1 = A2(elm$core$Maybe$withDefault, 'elm', language); 19779 switch (_n1) { 19780 case 'elm': 19781 return pablohirafuji$elm_syntax_highlight$SyntaxHighlight$elm(body); 19782 case 'js': 19783 return pablohirafuji$elm_syntax_highlight$SyntaxHighlight$javascript(body); 19784 case 'json': 19785 return pablohirafuji$elm_syntax_highlight$SyntaxHighlight$json(body); 19786 case 'css': 19787 return pablohirafuji$elm_syntax_highlight$SyntaxHighlight$css(body); 19788 default: 19789 return pablohirafuji$elm_syntax_highlight$SyntaxHighlight$noLang(body); 19790 } 19791 }(); 19792 return A2( 19793 elm$core$Result$withDefault, 19794 A2( 19795 elm$html$Html$div, 19796 _List_fromArray( 19797 [ 19798 elm$html$Html$Attributes$class('elm-book-md') 19799 ]), 19800 _List_fromArray( 19801 [ 19802 A2( 19803 elm$html$Html$pre, 19804 _List_fromArray( 19805 [ 19806 elm$html$Html$Attributes$class('elm-book-md__code-default elm-book-monospace elm-book-shadows-light') 19807 ]), 19808 _List_fromArray( 19809 [ 19810 elm$html$Html$text(body) 19811 ])) 19812 ])), 19813 A2( 19814 elm$core$Result$map, 19815 function (content) { 19816 return A2( 19817 elm$html$Html$div, 19818 _List_fromArray( 19819 [ 19820 elm$html$Html$Attributes$class('elm-book-md') 19821 ]), 19822 _List_fromArray( 19823 [ 19824 A2( 19825 elm$html$Html$div, 19826 _List_fromArray( 19827 [ 19828 elm$html$Html$Attributes$class('elm-book-md__code elm-book-monospace elm-book-shadows-light') 19829 ]), 19830 _List_fromArray( 19831 [content])) 19832 ])); 19833 }, 19834 A2( 19835 elm$core$Result$map, 19836 pablohirafuji$elm_syntax_highlight$SyntaxHighlight$toBlockHtml(elm$core$Maybe$Nothing), 19837 hCode))); 19838 }, 19839 codeSpan: function (children) { 19840 return A2( 19841 elm$html$Html$span, 19842 _List_fromArray( 19843 [ 19844 elm$html$Html$Attributes$class('elm-book-md') 19845 ]), 19846 _List_fromArray( 19847 [ 19848 A2( 19849 elm$html$Html$code, 19850 _List_fromArray( 19851 [ 19852 elm$html$Html$Attributes$class('elm-book-monospace') 19853 ]), 19854 _List_fromArray( 19855 [ 19856 elm$html$Html$text(children) 19857 ])) 19858 ])); 19859 }, 19860 emphasis: elm$html$Html$em(_List_Nil), 19861 hardLineBreak: A2( 19862 elm$html$Html$div, 19863 _List_fromArray( 19864 [ 19865 elm$html$Html$Attributes$class('elm-book-md') 19866 ]), 19867 _List_fromArray( 19868 [ 19869 A2(elm$html$Html$br, _List_Nil, _List_Nil) 19870 ])), 19871 heading: function (_n2) { 19872 var level = _n2.level; 19873 var children = _n2.children; 19874 var tag = function () { 19875 switch (level.$) { 19876 case 'H1': 19877 return elm$html$Html$h1( 19878 _List_fromArray( 19879 [ 19880 elm$html$Html$Attributes$class('elm-book-serif') 19881 ])); 19882 case 'H2': 19883 return elm$html$Html$h2( 19884 _List_fromArray( 19885 [ 19886 elm$html$Html$Attributes$class('elm-book-serif') 19887 ])); 19888 case 'H3': 19889 return elm$html$Html$h3( 19890 _List_fromArray( 19891 [ 19892 elm$html$Html$Attributes$class('elm-book-serif') 19893 ])); 19894 case 'H4': 19895 return elm$html$Html$h4( 19896 _List_fromArray( 19897 [ 19898 elm$html$Html$Attributes$class('elm-book-sans') 19899 ])); 19900 case 'H5': 19901 return elm$html$Html$h5( 19902 _List_fromArray( 19903 [ 19904 elm$html$Html$Attributes$class('elm-book-sans') 19905 ])); 19906 default: 19907 return elm$html$Html$h6( 19908 _List_fromArray( 19909 [ 19910 elm$html$Html$Attributes$class('elm-book-sans') 19911 ])); 19912 } 19913 }(); 19914 return A2( 19915 elm$html$Html$div, 19916 _List_fromArray( 19917 [ 19918 elm$html$Html$Attributes$class('elm-book-md') 19919 ]), 19920 _List_fromArray( 19921 [ 19922 tag(children) 19923 ])); 19924 }, 19925 html: dillonkearns$elm_markdown$Markdown$Html$oneOf(_List_Nil), 19926 image: function (image) { 19927 return A2( 19928 elm$html$Html$div, 19929 _List_fromArray( 19930 [ 19931 elm$html$Html$Attributes$class('elm-book-md') 19932 ]), 19933 _List_fromArray( 19934 [ 19935 A2( 19936 elm$html$Html$img, 19937 _List_fromArray( 19938 [ 19939 elm$html$Html$Attributes$src(image.src), 19940 elm$html$Html$Attributes$alt(image.alt), 19941 elm$html$Html$Attributes$title( 19942 A2(elm$core$Maybe$withDefault, '', image.title)) 19943 ]), 19944 _List_Nil) 19945 ])); 19946 }, 19947 link: F2( 19948 function (link, children) { 19949 return A2( 19950 elm$html$Html$a, 19951 _List_fromArray( 19952 [ 19953 elm$html$Html$Attr
19953ibutes$href(link.destination), 19954 elm$html$Html$Attributes$title( 19955 A2(elm$core$Maybe$withDefault, '', link.title)) 19956 ]), 19957 children); 19958 }), 19959 orderedList: F2( 19960 function (startingIndex, items) { 19961 return A2( 19962 elm$html$Html$div, 19963 _List_fromArray( 19964 [ 19965 elm$html$Html$Attributes$class('elm-book-md elm-book-serif elm-book-md__default') 19966 ]), 19967 _List_fromArray( 19968 [ 19969 A2( 19970 elm$html$Html$ol, 19971 _List_fromArray( 19972 [ 19973 elm$html$Html$Attributes$start(startingIndex) 19974 ]), 19975 A2( 19976 elm$core$List$map, 19977 elm$html$Html$li(_List_Nil), 19978 items)) 19979 ])); 19980 }), 19981 paragraph: function (children) { 19982 return A2( 19983 elm$html$Html$div, 19984 _List_fromArray( 19985 [ 19986 elm$html$Html$Attributes$class('elm-book-md elm-book-serif elm-book-md__default') 19987 ]), 19988 _List_fromArray( 19989 [ 19990 A2(elm$html$Html$p, _List_Nil, children) 19991 ])); 19992 }, 19993 strikethrough: elm$html$Html$span(_List_Nil), 19994 strong: elm$html$Html$strong(_List_Nil), 19995 table: function (children) { 19996 return A2( 19997 elm$html$Html$div, 19998 _List_fromArray( 19999 [ 20000 elm$html$Html$Attributes$class('elm-book-md elm-book-md__default elm-book-sans') 20001 ]), 20002 _List_fromArray( 20003 [ 20004 A2(elm$html$Html$table, _List_Nil, children) 20005 ])); 20006 }, 20007 tableBody: elm$html$Html$tbody(_List_Nil), 20008 tableCell: F2( 20009 function (_n4, children_) { 20010 return A2(elm$html$Html$td, _List_Nil, children_); 20011 }), 20012 tableHeader: elm$html$Html$thead(_List_Nil), 20013 tableHeaderCell: function (maybeAlignment) { 20014 var attrs = A2( 20015 elm$core$Maybe$withDefault, 20016 _List_Nil, 20017 A2( 20018 elm$core$Maybe$map, 20019 elm$core$List$singleton, 20020 A2( 20021 elm$core$Maybe$map, 20022 elm$html$Html$Attributes$align, 20023 A2( 20024 elm$core$Maybe$map, 20025 function (alignment) { 20026 switch (alignment.$) { 20027 case 'AlignLeft': 20028 return 'left'; 20029 case 'AlignCenter': 20030 return 'center'; 20031 default: 20032 return 'right'; 20033 } 20034 }, 20035 maybeAlignment)))); 20036 return elm$html$Html$th(attrs); 20037 }, 20038 tableRow: elm$html$Html$tr(_List_Nil), 20039 text: elm$html$Html$text, 20040 thematicBreak: A2( 20041 elm$html$Html$div, 20042 _List_fromArray( 20043 [ 20044 elm$html$Html$Attributes$class('elm-book-md') 20045 ]), 20046 _List_fromArray( 20047 [ 20048 A2(elm$html$Html$hr, _List_Nil, _List_Nil) 20049 ])), 20050 unorderedList: function (items) { 20051 return A2( 20052 elm$html$Html$div, 20053 _List_fromArray( 20054 [ 20055 elm$html$Html$Attributes$class('elm-book-md elm-book-serif elm-book-md__default') 20056 ]), 20057 _List_fromArray( 20058 [ 20059 A2( 20060 elm$html$Html$ul, 20061 _List_Nil, 20062 A2( 20063 elm$core$List$map, 20064 function (item) { 20065 var task = item.a; 20066 var children = item.b; 20067 var checkbox = function () { 20068 switch (task.$) { 20069 case 'NoTask': 20070 return elm$html$Html$text(''); 20071 case 'IncompleteTask': 20072 return A2( 20073 elm$html$Html$input, 20074 _List_fromArray( 20075 [ 20076 elm$html$Html$Attributes$disabled(true), 20077 elm$html$Html$Attributes$checked(false), 20078 elm$html$Html$Attributes$type_('checkbox') 20079 ]), 20080 _List_Nil); 20081 default: 20082 return A2( 20083 elm$html$Html$input, 20084 _List_fromArray( 20085 [ 20086 elm$html$Html$Attributes$disabled(true), 20087 elm$html$Html$Attributes$checked(true), 20088 elm$html$Html$Attributes$type_('checkbox') 20089 ]), 20090 _List_Nil); 20091 } 20092 }(); 20093 return A2( 20094 elm$html$Html$li, 20095 _List_Nil, 20096 A2(elm$core$List$cons, checkbox, children)); 20097 }, 20098 items)) 20099 ])); 20100 } 20101}; 20102var dtwrks$elm_book$ElmBook$UI$Markdown$componentRenderer = F3( 20103 function (chapterTitle, chapterComponents, componentOptions) { 20104 return _Utils_update( 20105 dtwrks$elm_book$ElmBook$UI$Markdown$defaultRenderer, 20106 { 20107 html: dillonkearns$elm_markdown$Markdown$Html$oneOf( 20108 _List_fromArray( 20109 [ 20110 A2( 20111 dillonkearns$elm_markdown$Markdown$Html$withOptionalAttribute, 20112 'with-full-width', 20113 A2( 20114 dillonkearns$elm_markdown$Markdown$Html$withOptionalAttribute, 20115 'with-display', 20116 A2( 20117 dillonkearns$elm_markdown$Markdown$Html$withOptionalAttribute, 20118 'with-background', 20119 A2( 20120 dillonkearns$elm_markdown$Markdown$Html$withOptionalAttribute, 20121 'with-hidden-label', 20122 A2( 20123 dillonkearns$elm_markdown$Markdown$Html$withOptionalAttribute, 20124 'with-label', 20125 A2( 20126 dillonkearns$elm_markdown$Markdown$Html$tag, 20127 'component', 20128 F6( 20129 function (labelFilter, hiddenLabel_, background_, display_, fullWidth_, _n0) { 20130 var section_ = function () { 20131 if (labelFilter.$ === 'Just') { 20132 var label_ = labelFilter.a; 20133 return A2( 20134 elm$core$Maybe$map, 20135 function (v) { 20136 return _Utils_Tuple2(label_, v); 20137 }, 20138 A2( 20139 elm$core$Dict$get, 20140 label_, 20141 elm$core$Dict$fromList(chapterComponents))); 20142 } else { 20143 return elm$core$List$head(chapterComponents); 20144 } 20145 }(); 20146 var options_ = A2( 20147 dtwrks$elm_book$ElmBook$Internal$ComponentOptions$markdownOptions, 20148 componentOptions, 20149 {background: background_, display: display_, fullWidth: fullWidth_, hiddenLabel: hiddenLabel_}); 20150 return A2( 20151 elm$core$Maybe$withDefault, 20152 A2( 20153 elm$html$Html$div, 20154 _List_fromArray( 20155 [ 20156 elm$html$Html$Attributes$class('elm-book__component-wrapper') 20157 ]), 20158 _List_fromArray( 20159 [ 20160 A2( 20161 elm$html$Html$div, 20162 _List_fromArray( 20163 [ 20164 elm$html$Html$Attributes$class('elm-book-sans elm-book__component-empty') 20165 ]), 20166 _List_fromArray( 20167 [ 20168 elm$html$Html$text( 20169 'Oops!⦠\"' + (A2(elm$core$Maybe$withDefault, '', labelFilter) + '\" component not found.')) 20170 ])) 20171 ])), 20172 A2( 20173 elm$core$Maybe$map, 20174 function (c) { 20175 return _Utils_eq(options_.display, dtwrks$elm_book$ElmBook$Internal$ComponentOptions$Inline) ? c : A2( 20176 elm$html$Html$div, 20177 _List_fromArray( 20178 [ 20179 elm$html$Html$Attributes$classList( 20180 _List_fromArray( 20181 [ 20182 _Utils_Tuple2('elm-book__component-wrapper', true), 20183 _Utils_Tuple2('full', options_.fullWidth) 20184 ])) 20185 ]), 20186 _List_fromArray( 20187 [c])); 20188 }, 20189 A2( 20190 elm$core$Maybe$map, 20191 A2(dtwrks$elm_book$ElmBook$UI$ChapterComponent$view, chapterTitle, options_), 20192 section_))); 20193 }))))))), 20194 A2( 20195 dillonkearns$elm_markdown$Markdown$Html$withOptionalAttribute, 20196 'with-full-width', 20197 A2( 20198 dillonkearns$elm_markdown$Markdown$Html$withOptionalAttribute, 20199 'with-display', 20200 A2( 20201 dillonkearns$elm_markdown$Markdown$Html$withOptionalAttribute, 20202 'with-background', 20203 A2( 20204 dillonkearns$elm_markdown$Markdown$Html$withOptionalAttribute, 20205 'with-hidden-label', 20206 A2( 20207 dillonkearns$elm_markdown$Markdown$Html$withOptionalAttribute, 20208 'with-label', 20209 A2( 20210 dillonkearns$elm_markdown$Markdown$Html$tag, 20211 'component-list', 20212 F6( 20213 function (labelFilter, hiddenLabel_, background_, display_, fullWidth_, _n2) { 20214 var options_ = A2( 20215 dtwrks$elm_book$ElmBook$Internal$ComponentOptions$markdownOptions, 20216 componentOptions, 20217 {background: background_, display: display_, fullWidth: fullWidth_, hiddenLabel: hiddenLabel_}); 20218 var components = function () { 20219 if (labelFilter.$ === 'Just') { 20220 var s = labelFilter.a; 20221 return A2( 20222 elm$core$List$filter, 20223 A2( 20224 elm$core$Basics$composeR, 20225 elm$core$Tuple$first, 20226 elm$core$String$startsWith(s)), 20227 chapterComponents); 20228 } else { 20229 return chapterComponents; 20230 } 20231 }(); 20232 return A2( 20233 elm$html$Html$div, 20234 _List_fromArray( 20235 [ 20236 elm$html$Html$Attributes$classList( 20237 _List_fromArray( 20238 [ 20239 _Utils_Tuple2('elm-book__component-wrapper', true), 20240 _Utils_Tuple2('full', options_.fullWidth) 20241 ])) 20242 ]), 20243 _List_fromArray( 20244 [ 20245 A2( 20246 elm$html$Html$ul, 20247 _List_fromArray( 20248 [ 20249 elm$html$Html$Attributes$class('elm-book-md__component-list') 20250 ]), 20251 A2( 20252 elm$core$List$map, 20253 function (section) { 20254 return A2( 20255 elm$html$Html$li, 20256 _List_fromArray( 20257 [ 20258 elm$html$Html$Attributes$class('elm-book elm-book-md__component-list__item') 20259 ]), 20260 _List_fromArray( 20261 [ 20262 A3(dtwrks$elm_book$ElmBook$UI$ChapterComponent$view, chapterTitle, options_, section) 20263 ])); 20264 }, 20265 components)) 20266 ])); 20267 }))))))) 20268 ])) 20269 }); 20270 }); 20271var dtwrks$elm_book$ElmBook$UI$Markdown$view = F3( 20272 function (chapterTitle, chapterComponents, componentOptions) { 20273 return A2( 20274 elm$core$Basics$composeR, 20275 dillonkearns$elm_markdown$Markdown$Parser$parse, 20276 A2( 20277 elm$core$Basics$composeR, 20278 elm$core$Result$withDefault(_List_Nil), 20279 A2( 20280 elm$core$Basics$composeR, 20281 dillonkearns$elm_markdown$Markdown$Renderer$render( 20282 A3(dtwrks$elm_book$ElmBook$UI$Markdown$componentRenderer, chapterTitle, chapterComponents, componentOptions)), 20283 A2( 20284 elm$core$Basics$composeR, 20285 elm$core$Result$withDefault(_List_Nil), 20286 function (children) { 20287 return A2( 20288 elm$html$Html$article, 20289 _List_Nil, 20290 _List_fromArray( 20291 [ 20292 A2(elm$html$Html$div, _List_Nil, children) 20293 ])); 20294 })))); 20295 }); 20296var dtwrks$elm_book$ElmBook$UI$Chapter$view = function (props) { 20297 var body = props.chapterOptions.hiddenTitle ? props.body : ('# ' + (props.title + ('\n' + props.body))); 20298 return A2( 20299 elm$html$Html$article, 20300 _List_fromArray( 20301 [ 20302 elm$html$Html$Attributes$class('elm-book elm-book-chapter') 20303 ]), 20304 _List_fromArray( 20305 [ 20306 A4(dtwrks$elm_book$ElmBook$UI$Markdown$view, props.title, props.components, props.componentOptions, body) 20307 ])); 20308}; 20309var elm$svg$Svg$trustedNode = _VirtualDom_nodeNS('http://www.w3.org/2000/svg'); 20310var elm$svg$Svg$path = elm$svg$Svg$trustedNode('path'); 20311var elm$svg$Svg$svg = elm$svg$Svg$trustedNode('svg'); 20312var elm$svg$Svg$Attributes$d = _VirtualDom_attribute('d'); 20313var elm$svg$Svg$Attributes$fill = _VirtualDom_attribute('fill'); 20314var elm$svg$Svg$Attributes$height = _VirtualDom_attribute('height'); 20315var elm$svg$Svg$Attributes$stroke = _VirtualDom_attribute('stroke'); 20316var elm$svg$Svg$Attributes$strokeLinecap = _VirtualDom_attribute('stroke-linecap'); 20317var elm$svg$Svg$Attributes$strokeLinejoin = _VirtualDom_attribute('stroke-linejoin'); 20318var elm$svg$Svg$Attributes$strokeWidth = _VirtualDom_attribute('stroke-width'); 20319var elm$svg$Svg$Attributes$viewBox = _VirtualDom_attribute('viewBox'); 20320var elm$svg$Svg$Attributes$width = _VirtualDom_attribute('width'); 20321var dtwrks$elm_book$ElmBook$UI$Icons$iconDarkMode = function (props) { 20322 return A2( 20323 elm$svg$Svg$svg, 20324 _List_fromArray( 20325 [ 20326 elm$svg$Svg$Attributes$width( 20327 elm$core$String$fromInt(props.size)), 20328 elm$svg$Svg$Attributes$height( 20329 elm$core$String$fromInt(props.size)), 20330 elm$svg$Svg$Attributes$viewBox('0 0 24 24'), 20331 elm$svg$Svg$Attributes$fill('none'), 20332 elm$svg$Svg$Attributes$stroke(props.color), 20333 elm$svg$Svg$Attributes$strokeWidth('2'),
20334 elm$svg$Svg$Attributes$strokeLinecap('round'), 20335 elm$svg$Svg$Attributes$strokeLinejoin('round') 20336 ]), 20337 _List_fromArray( 20338 [ 20339 A2( 20340 elm$svg$Svg$path, 20341 _List_fromArray( 20342 [ 20343 elm$svg$Svg$Attributes$d('M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z') 20344 ]), 20345 _List_Nil) 20346 ])); 20347}; 20348var dtwrks$elm_book$ElmBook$UI$ChapterHeader$view = function (props) { 20349 return A2( 20350 elm$html$Html$div, 20351 _List_fromArray( 20352 [ 20353 elm$html$Html$Attributes$class('elm-book elm-book-chapter-header') 20354 ]), 20355 _List_fromArray( 20356 [ 20357 A2( 20358 elm$html$Html$p, 20359 _List_fromArray( 20360 [ 20361 elm$html$Html$Attributes$class('elm-book-chapter-header__title') 20362 ]), 20363 _List_fromArray( 20364 [ 20365 elm$html$Html$text(props.title) 20366 ])), 20367 A2( 20368 elm$html$Html$button, 20369 _List_fromArray( 20370 [ 20371 elm$html$Html$Attributes$class('elm-book-chapter-header__btn'), 20372 elm$html$Html$Events$onClick(props.onToggleDarkMode) 20373 ]), 20374 _List_fromArray( 20375 [ 20376 dtwrks$elm_book$ElmBook$UI$Icons$iconDarkMode( 20377 {color: 'currentColor', size: 16}) 20378 ])) 20379 ])); 20380}; 20381var dtwrks$elm_book$ElmBook$UI$Helpers$themeAccentVar = '--elm-book-accent'; 20382var dtwrks$elm_book$ElmBook$UI$Helpers$themeAccent = dtwrks$elm_book$ElmBook$UI$Helpers$var_(dtwrks$elm_book$ElmBook$UI$Helpers$themeAccentVar); 20383var dtwrks$elm_book$ElmBook$UI$Icons$iconElm = function (props) { 20384 return A2( 20385 elm$svg$Svg$svg, 20386 _List_fromArray( 20387 [ 20388 elm$svg$Svg$Attributes$width( 20389 elm$core$String$fromInt(props.size)), 20390 elm$svg$Svg$Attributes$height( 20391 elm$core$String$fromInt(props.size)), 20392 elm$svg$Svg$Attributes$viewBox('0 0 256 256') 20393 ]), 20394 _List_fromArray( 20395 [ 20396 A2( 20397 elm$svg$Svg$path, 20398 _List_fromArray( 20399 [ 20400 elm$svg$Svg$Attributes$fill(props.color), 20401 elm$svg$Svg$Attributes$d('M128 135.022L7.023 256h241.955z') 20402 ]), 20403 _List_Nil), 20404 A2( 20405 elm$svg$Svg$path, 20406 _List_fromArray( 20407 [ 20408 elm$svg$Svg$Attributes$fill(props.color), 20409 elm$svg$Svg$Attributes$d('M202.332 195.311L256 248.98V141.643z') 20410 ]), 20411 _List_Nil), 20412 A2( 20413 elm$svg$Svg$path, 20414 _List_fromArray( 20415 [ 20416 elm$svg$Svg$Attributes$fill(props.color), 20417 elm$svg$Svg$Attributes$d('M120.978 128L0 7.022V248.98z') 20418 ]), 20419 _List_Nil), 20420 A2( 20421 elm$svg$Svg$path, 20422 _List_fromArray( 20423 [ 20424 elm$svg$Svg$Attributes$fill(props.color), 20425 elm$svg$Svg$Attributes$d('M256 113.806V0H142.193z') 20426 ]), 20427 _List_Nil), 20428 A2( 20429 elm$svg$Svg$path, 20430 _List_fromArray( 20431 [ 20432 elm$svg$Svg$Attributes$fill(props.color), 20433 elm$svg$Svg$Attributes$d('M195.584 67.434l60.288 60.289l-60.563 60.564l-60.29-60.29z') 20434 ]), 20435 _List_Nil), 20436 A2( 20437 elm$svg$Svg$path, 20438 _List_fromArray( 20439 [ 20440 elm$svg$Svg$Attributes$fill(props.color), 20441 elm$svg$Svg$Attributes$d('M7.021 0l55.725 55.726h121.13L128.15 0z') 20442 ]), 20443 _List_Nil), 20444 A2( 20445 elm$svg$Svg$path, 20446 _List_fromArray( 20447 [ 20448 elm$svg$Svg$Attributes$fill(props.color), 20449 elm$svg$Svg$Attributes$d('M128 120.979l55.322-55.323H72.677z') 20450 ]), 20451 _List_Nil) 20452 ])); 20453}; 20454var elm$html$Html$Attributes$target = elm$html$Html$Attributes$stringProperty('target'); 20455var dtwrks$elm_book$ElmBook$UI$Footer$view = A2( 20456 elm$html$Html$div, 20457 _List_fromArray( 20458 [ 20459 elm$html$Html$Attributes$class('elm-book elm-book-sans') 20460 ]), 20461 _List_fromArray( 20462 [ 20463 A2( 20464 elm$html$Html$a, 20465 _List_fromArray( 20466 [ 20467 elm$html$Html$Attributes$href('https://package.elm-lang.org/packages/dtwrks/elm-book/latest/'), 20468 elm$html$Html$Attributes$target('_blank'), 20469 elm$html$Html$Attributes$class('elm-book-footer'), 20470 A2(elm$html$Html$Attributes$style, 'color', dtwrks$elm_book$ElmBook$UI$Helpers$themeAccent) 20471 ]), 20472 _List_fromArray( 20473 [ 20474 dtwrks$elm_book$ElmBook$UI$Icons$iconElm( 20475 {color: 'currentColor', size: 16}), 20476 A2( 20477 elm$html$Html$div, 20478 _List_fromArray( 20479 [ 20480 elm$html$Html$Attributes$class('elm-book-footer--text') 20481 ]), 20482 _List_fromArray( 20483 [ 20484 elm$html$Html$text('dtwrks/elm-book') 20485 ])) 20486 ])) 20487 ])); 20488var dtwrks$elm_book$ElmBook$Internal$ThemeOptions$header = function (theme) { 20489 return theme.header; 20490}; 20491var dtwrks$elm_book$ElmBook$Internal$ThemeOptions$logo = function (theme) { 20492 return theme.logo; 20493}; 20494var dtwrks$elm_book$ElmBook$UI$Header$viewDefault = function (props) { 20495 return A2( 20496 elm$html$Html$span, 20497 _List_fromArray( 20498 [ 20499 elm$html$Html$Attributes$class('elm-book-sans elm-book-header-default') 20500 ]), 20501 _List_fromArray( 20502 [ 20503 A2( 20504 elm$core$Maybe$withDefault, 20505 dtwrks$elm_book$ElmBook$UI$Icons$iconElm( 20506 {color: dtwrks$elm_book$ElmBook$UI$Helpers$themeAccent, size: 24}), 20507 A2( 20508 elm$core$Maybe$map, 20509 props.toHtml, 20510 dtwrks$elm_book$ElmBook$Internal$ThemeOptions$logo(props.theme))), 20511 A2( 20512 elm$html$Html$span, 20513 _List_fromArray( 20514 [ 20515 elm$html$Html$Attributes$class('elm-book-header-default--wrapper') 20516 ]), 20517 _List_fromArray( 20518 [ 20519 A2( 20520 elm$html$Html$span, 20521 _List_fromArray( 20522 [ 20523 elm$html$Html$Attributes$class('elm-book-header-default--title') 20524 ]), 20525 _List_fromArray( 20526 [ 20527 elm$html$Html$text(props.title) 20528 ])), 20529 A2( 20530 elm$core$Maybe$withDefault, 20531 elm$html$Html$text(''), 20532 A2( 20533 elm$core$Maybe$map, 20534 function (subtitle) { 20535 return A2( 20536 elm$html$Html$span, 20537 _List_fromArray( 20538 [ 20539 elm$html$Html$Attributes$class('elm-book-header-default--subtitle') 20540 ]), 20541 _List_fromArray( 20542 [ 20543 elm$html$Html$text(subtitle) 20544 ])); 20545 }, 20546 dtwrks$elm_book$ElmBook$Internal$ThemeOptions$subtitle(props.theme))) 20547 ])) 20548 ])); 20549}; 20550var elm$svg$Svg$rect = elm$svg$Svg$trustedNode('rect'); 20551var elm$svg$Svg$Attributes$rx = _VirtualDom_attribute('rx'); 20552var elm$svg$Svg$Attributes$transform = _VirtualDom_attribute('transform'); 20553var elm$svg$Svg$Attributes$x = _VirtualDom_attribute('x'); 20554var elm$svg$Svg$Attributes$y = _VirtualDom_attribute('y'); 20555var dtwrks$elm_book$ElmBook$UI$Icons$iconClose = function (props) { 20556 return A2( 20557 elm$svg$Svg$svg, 20558 _List_fromArray( 20559 [ 20560 elm$svg$Svg$Attributes$width( 20561 elm$core$String$fromInt(props.size)), 20562 elm$svg$Svg$Attributes$height( 20563 elm$core$String$fromInt(props.size)), 20564 elm$svg$Svg$Attributes$viewBox('0 0 512 512') 20565 ]), 20566 _List_fromArray( 20567 [ 20568 A2( 20569 elm$svg$Svg$path, 20570 _List_fromArray( 20571 [ 20572 elm$svg$Svg$Attributes$fill(props.color), 20573 elm$svg$Svg$Attributes$d('M451.792 0H59.208C26.561 0 0 26.561 0 59.208v393.084C0 484.939 26.561 511.5 59.208 511.5h392.584c32.647 0 59.208-26.561 59.208-59.208V59.208C511 26.561 484.439 0 451.792 0zM471 452.292c0 10.591-8.617 19.208-19.208 19.208H59.208C48.617 471.5 40 462.883 40 452.292V59.208C40 48.617 48.617 40 59.208 40h392.584C462.383 40 471 48.617 471 59.208v393.084z') 20574 ]), 20575 _List_Nil), 20576 A2( 20577 elm$svg$Svg$rect, 20578 _List_fromArray( 20579 [ 20580 elm$svg$Svg$Attributes$fill(props.color), 20581 elm$svg$Svg$Attributes$x('105'), 20582 elm$svg$Svg$Attributes$y('377.943'), 20583 elm$svg$Svg$Attributes$width('386'), 20584 elm$svg$Svg$Attributes$height('40'), 20585 elm$svg$Svg$Attributes$rx('20'), 20586 elm$svg$Svg$Attributes$transform('rotate(-45 105 377.943)') 20587 ]), 20588 _List_Nil), 20589 A2( 20590 elm$svg$Svg$rect, 20591 _List_fromArray( 20592 [ 20593 elm$svg$Svg$Attributes$fill(props.color), 20594 elm$svg$Svg$Attributes$x('133.284'), 20595 elm$svg$Svg$Attributes$y('105'), 20596 elm$svg$Svg$Attributes$width('386'), 20597 elm$svg$Svg$Attributes$height('40'), 20598 elm$svg$Svg$Attributes$rx('20'), 20599 elm$svg$Svg$Attributes$transform('rotate(45 133.284 105)') 20600 ]), 20601 _List_Nil) 20602 ])); 20603}; 20604var dtwrks$elm_book$ElmBook$UI$Icons$iconMenu = function (props) { 20605 return A2( 20606 elm$svg$Svg$svg, 20607 _List_fromArray( 20608 [ 20609 elm$svg$Svg$Attributes$width( 20610 elm$core$String$fromInt(props.size)), 20611 elm$svg$Svg$Attributes$height( 20612 elm$core$String$fromInt(props.size)), 20613 elm$svg$Svg$Attributes$viewBox('0 0 512 512') 20614 ]), 20615 _List_fromArray( 20616 [ 20617 A2( 20618 elm$svg$Svg$path, 20619 _List_fromArray( 20620 [ 20621 elm$svg$Svg$Attributes$fill(props.color), 20622 elm$svg$Svg$Attributes$d('M176.792 0H59.208C26.561 0 0 26.561 0 59.208v117.584C0 209.439 26.561 236 59.208 236h117.584C209.439 236 236 209.439 236 176.792V59.208C236 26.561 209.439 0 176.792 0zM196 176.792c0 10.591-8.617 19.208-19.208 19.208H59.208C48.617 196 40 187.383 40 176.792V59.208C40 48.617 48.617 40 59.208 40h117.584C187.383 40 196 48.617 196 59.208v117.584zM452 0H336c-33.084 0-60 26.916-60 60v116c0 33.084 26.916 60 60 60h116c33.084 0 60-26.916 60-60V60c0-33.084-26.916-60-60-60zm20 176c0 11.028-8.972 20-20 20H336c-11.028 0-20-8.972-20-20V60c0-11.028 8.972-20 20-20h116c11.028 0 20 8.972 20 20v116zM176.792 276H59.208C26.561 276 0 302.561 0 335.208v117.584C0 485.439 26.561 512 59.208 512h117.584C209.439 512 236 485.439 236 452.792V335.208C236 302.561 209.439 276 176.792 276zM196 452.792c0 10.591-8.617 19.208-19.208 19.208H59.208C48.617 472 40 463.383 40 452.792V335.208C40 324.617 48.617 316 59.208 316h117.584c10.591 0 19.208 8.617 19.208 19.208v117.584zM452 276H336c-33.084 0-60 26.916-60 60v116c0 33.084 26.916 60 60 60h116c33.084 0 60-26.916 60-60V336c0-33.084-26.916-60-60-60zm20 176c0 11.028-8.972 20-20 20H336c-11.028 0-20-8.972-20-20V336c0-11.028 8.972-20 20-20h116c11.028 0 20 8.972 20 20v116z') 20623 ]), 20624 _List_Nil) 20625 ])); 20626}; 20627var elm$html$Html$header = _VirtualDom_node('header'); 20628var dtwrks$elm_book$ElmBook$UI$Header$view = function (props) { 20629 return A2( 20630 elm$html$Html$header, 20631 _List_fromArray( 20632 [ 20633 elm$html$Html$Attributes$class('elm-book-header') 20634 ]), 20635 _List_fromArray( 20636 [ 20637 A2( 20638 elm$html$Html$a, 20639 _List_fromArray( 20640 [ 20641 elm$html$Html$Attributes$href(props.href), 20642 elm$html$Html$Attributes$class('elm-book-header--link'), 20643 A2(elm$html$Html$Attributes$style, 'color', dtwrks$elm_book$ElmBook$UI$Helpers$themeAccent) 20644 ]), 20645 _List_fromArray( 20646 [ 20647 A2( 20648 elm$html$Html$h1, 20649 _List_fromArray( 20650 [ 20651 elm$html$Html$Attributes$class('elm-book') 20652 ]), 20653 _List_fromArray( 20654 [ 20655 A2( 20656 elm$core$Maybe$withDefault, 20657 dtwrks$elm_book$ElmBook$UI$Header$viewDefault( 20658 {href: props.href, theme: props.theme, title: props.title, toHtml: props.toHtml}), 20659 A2( 20660 elm$core$Maybe$map, 20661 props.toHtml, 20662 dtwrks$elm_book$ElmBook$Internal$ThemeOptions$header(props.theme))) 20663 ])) 20664 ])), 20665 A2( 20666 elm$html$Html$button, 20667 _List_fromArray( 20668 [ 20669 elm$html$Html$Attributes$class('elm-book elm-book-header--button'), 20670 elm$html$Html$Events$onClick(props.onClickMenuButton) 20671 ]), 20672 _List_fromArray( 20673 [
20674 props.isMenuOpen ? dtwrks$elm_book$ElmBook$UI$Icons$iconClose( 20675 {color: dtwrks$elm_book$ElmBook$UI$Helpers$themeAccent, size: 20}) : dtwrks$elm_book$ElmBook$UI$Icons$iconMenu( 20676 {color: dtwrks$elm_book$ElmBook$UI$Helpers$themeAccent, size: 20}) 20677 ])) 20678 ])); 20679}; 20680var dtwrks$elm_book$ElmBook$UI$Helpers$themeNavAccentVar = '--elm-book-nav-accent'; 20681var dtwrks$elm_book$ElmBook$UI$Helpers$themeNavAccent = dtwrks$elm_book$ElmBook$UI$Helpers$var_(dtwrks$elm_book$ElmBook$UI$Helpers$themeNavAccentVar); 20682var dtwrks$elm_book$ElmBook$UI$Helpers$themeNavAccentHighlightVar = '--elm-book-nav-accent-highlight'; 20683var dtwrks$elm_book$ElmBook$UI$Helpers$themeNavAccentHighlight = dtwrks$elm_book$ElmBook$UI$Helpers$var_(dtwrks$elm_book$ElmBook$UI$Helpers$themeNavAccentHighlightVar); 20684var dtwrks$elm_book$ElmBook$UI$Helpers$themeNavBackgroundVar = '--elm-book-nav-background'; 20685var dtwrks$elm_book$ElmBook$UI$Helpers$themeNavBackground = dtwrks$elm_book$ElmBook$UI$Helpers$var_(dtwrks$elm_book$ElmBook$UI$Helpers$themeNavBackgroundVar); 20686var dtwrks$elm_book$ElmBook$UI$Nav$target_ = function (internal) { 20687 return internal ? elm$html$Html$Attributes$class('') : elm$html$Html$Attributes$target('_blank'); 20688}; 20689var elm$html$Html$nav = _VirtualDom_node('nav'); 20690var dtwrks$elm_book$ElmBook$UI$Nav$view = function (props) { 20691 var item = function (_n2) { 20692 var url = _n2.a; 20693 var label = _n2.b; 20694 var internal = _n2.c; 20695 return A2( 20696 elm$html$Html$li, 20697 _List_Nil, 20698 _List_fromArray( 20699 [ 20700 A2( 20701 elm$html$Html$a, 20702 _List_fromArray( 20703 [ 20704 elm$html$Html$Attributes$href(url), 20705 dtwrks$elm_book$ElmBook$UI$Nav$target_(internal), 20706 elm$html$Html$Attributes$classList( 20707 _List_fromArray( 20708 [ 20709 _Utils_Tuple2('elm-book-nav-item', true), 20710 _Utils_Tuple2( 20711 'active', 20712 _Utils_eq( 20713 props.active, 20714 elm$core$Maybe$Just(url))), 20715 _Utils_Tuple2( 20716 'pre-selected', 20717 _Utils_eq( 20718 props.preSelected, 20719 elm$core$Maybe$Just(url))) 20720 ])), 20721 _Utils_eq( 20722 props.active, 20723 elm$core$Maybe$Just(url)) ? A2(elm$html$Html$Attributes$style, 'color', dtwrks$elm_book$ElmBook$UI$Helpers$themeNavAccentHighlight) : A2(elm$html$Html$Attributes$style, 'color', dtwrks$elm_book$ElmBook$UI$Helpers$themeNavAccent) 20724 ]), 20725 _List_fromArray( 20726 [ 20727 A2( 20728 elm$html$Html$div, 20729 _List_fromArray( 20730 [ 20731 elm$html$Html$Attributes$class('elm-book-inset elm-book-nav-item-bg'), 20732 A2(elm$html$Html$Attributes$style, 'background-color', dtwrks$elm_book$ElmBook$UI$Helpers$themeNavBackground) 20733 ]), 20734 _List_Nil), 20735 A2( 20736 elm$html$Html$div, 20737 _List_fromArray( 20738 [ 20739 elm$html$Html$Attributes$class('elm-book-nav-item-content') 20740 ]), 20741 _List_fromArray( 20742 [ 20743 elm$html$Html$text(label) 20744 ])) 20745 ])) 20746 ])); 20747 }; 20748 var list = function (_n1) { 20749 var title = _n1.a; 20750 var items = _n1.b; 20751 return elm$core$List$isEmpty(items) ? elm$html$Html$text('') : A2( 20752 elm$html$Html$div, 20753 _List_fromArray( 20754 [ 20755 elm$html$Html$Attributes$class('elm-book-nav-list-wrapper') 20756 ]), 20757 _List_fromArray( 20758 [ 20759 (title === '') ? elm$html$Html$text('') : A2( 20760 elm$html$Html$p, 20761 _List_fromArray( 20762 [ 20763 elm$html$Html$Attributes$class('elm-book-nav-list-title'), 20764 A2(elm$html$Html$Attributes$style, 'color', dtwrks$elm_book$ElmBook$UI$Helpers$themeAccent) 20765 ]), 20766 _List_fromArray( 20767 [ 20768 elm$html$Html$text(title) 20769 ])), 20770 A2( 20771 elm$html$Html$ul, 20772 _List_fromArray( 20773 [ 20774 elm$html$Html$Attributes$class('elm-book-nav-list') 20775 ]), 20776 A2(elm$core$List$map, item, items)) 20777 ])); 20778 }; 20779 var isEmpty = !A3( 20780 elm$core$List$foldl, 20781 F2( 20782 function (_n0, acc) { 20783 var xs = _n0.b; 20784 return acc + elm$core$List$length(xs); 20785 }), 20786 0, 20787 props.itemGroups); 20788 return A2( 20789 elm$html$Html$div, 20790 _List_fromArray( 20791 [ 20792 elm$html$Html$Attributes$class('elm-book-wrapper elm-book-sans') 20793 ]), 20794 _List_fromArray( 20795 [ 20796 isEmpty ? A2( 20797 elm$html$Html$p, 20798 _List_fromArray( 20799 [ 20800 elm$html$Html$Attributes$class('elm-book-nav-empty'), 20801 A2(elm$html$Html$Attributes$style, 'color', dtwrks$elm_book$ElmBook$UI$Helpers$themeNavAccent) 20802 ]), 20803 _List_fromArray( 20804 [ 20805 elm$html$Html$text('No results') 20806 ])) : A2( 20807 elm$html$Html$nav, 20808 _List_fromArray( 20809 [ 20810 elm$html$Html$Attributes$class('elm-book-nav') 20811 ]), 20812 A2(elm$core$List$map, list, props.itemGroups)) 20813 ])); 20814}; 20815var elm$html$Html$Attributes$id = elm$html$Html$Attributes$stringProperty('id'); 20816var elm$html$Html$Attributes$placeholder = elm$html$Html$Attributes$stringProperty('placeholder'); 20817var elm$html$Html$Attributes$value = elm$html$Html$Attributes$stringProperty('value'); 20818var elm$html$Html$Events$onBlur = function (msg) { 20819 return A2( 20820 elm$html$Html$Events$on, 20821 'blur', 20822 elm$json$Json$Decode$succeed(msg)); 20823}; 20824var elm$html$Html$Events$onFocus = function (msg) { 20825 return A2( 20826 elm$html$Html$Events$on, 20827 'focus', 20828 elm$json$Json$Decode$succeed(msg)); 20829}; 20830var elm$html$Html$Events$alwaysStop = function (x) { 20831 return _Utils_Tuple2(x, true); 20832}; 20833var elm$virtual_dom$VirtualDom$MayStopPropagation = function (a) { 20834 return {$: 'MayStopPropagation', a: a}; 20835}; 20836var elm$html$Html$Events$stopPropagationOn = F2( 20837 function (event, decoder) { 20838 return A2( 20839 elm$virtual_dom$VirtualDom$on, 20840 event, 20841 elm$virtual_dom$VirtualDom$MayStopPropagation(decoder)); 20842 }); 20843var elm$json$Json$Decode$at = F2( 20844 function (fields, decoder) { 20845 return A3(elm$core$List$foldr, elm$json$Json$Decode$field, decoder, fields); 20846 }); 20847var elm$html$Html$Events$targetValue = A2( 20848 elm$json$Json$Decode$at, 20849 _List_fromArray( 20850 ['target', 'value']), 20851 elm$json$Json$Decode$string); 20852var elm$html$Html$Events$onInput = function (tagger) { 20853 return A2( 20854 elm$html$Html$Events$stopPropagationOn, 20855 'input', 20856 A2( 20857 elm$json$Json$Decode$map, 20858 elm$html$Html$Events$alwaysStop, 20859 A2(elm$json$Json$Decode$map, tagger, elm$html$Html$Events$targetValue))); 20860}; 20861var dtwrks$elm_book$ElmBook$UI$Search$view = function (props) { 20862 return A2( 20863 elm$html$Html$div, 20864 _List_fromArray( 20865 [ 20866 elm$html$Html$Attributes$class('elm-book-wrapper elm-book-search-wrapper elm-book-sans') 20867 ]), 20868 _List_fromArray( 20869 [ 20870 A2( 20871 elm$html$Html$div, 20872 _List_fromArray( 20873 [ 20874 elm$html$Html$Attributes$class('elm-book-search-bg elm-book-inset') 20875 ]), 20876 _List_Nil), 20877 A2( 20878 elm$html$Html$div, 20879 _List_fromArray( 20880 [ 20881 elm$html$Html$Attributes$class('elm-book-search-border elm-book-inset') 20882 ]), 20883 _List_Nil), 20884 A2( 20885 elm$html$Html$input, 20886 _List_fromArray( 20887 [ 20888 elm$html$Html$Attributes$id('elm-book-search'), 20889 elm$html$Html$Attributes$value(props.value), 20890 elm$html$Html$Events$onInput(props.onInput), 20891 elm$html$Html$Events$onFocus(props.onFocus), 20892 elm$html$Html$Events$onBlur(props.onBlur), 20893 elm$html$Html$Attributes$placeholder('Type \"âK\" to searchâ¦') 20894 ]), 20895 _List_Nil) 20896 ])); 20897};
20898var elm$virtual_dom$VirtualDom$node = function (tag) { 20899 return _VirtualDom_node( 20900 _VirtualDom_noScript(tag)); 20901}; 20902var elm$html$Html$node = elm$virtual_dom$VirtualDom$node; 20903var dtwrks$elm_book$ElmBook$UI$Helpers$css_ = function (x) { 20904 return A3( 20905 elm$html$Html$node, 20906 'style', 20907 _List_Nil, 20908 _List_fromArray( 20909 [ 20910 elm$html$Html$text(x) 20911 ])); 20912}; 20913var dtwrks$elm_book$ElmBook$UI$ActionLog$styles = dtwrks$elm_book$ElmBook$UI$Helpers$css_('\n.elm-book-action-log-preview-wrapper {\n padding: 8px;\n}\n.elm-book-action-log-preview {\n display: block;\n width: 100%;\n padding: 0;\n margin: 0;\n border: none;\n border-radius: 4px;\n background-color: transparent;\n text-align: left;\n font-size: 14px;\n cursor: pointer;\n}\n.elm-book-action-log-preview:hover {\n opacity: 0.9;\n}\n.elm-book-action-log-preview:hover {\n opacity: 0.8;\n}\n\n.elm-book-action-log-preview-empty-wrapper {\n padding: 8px;\n font-size: 14px;\n color: #aaa;\n}\n.elm-book-action-log-preview-empty {\n padding: 12px 20px;\n background-color: #f3f3f3;\n border-radius: 4px;\n}\n\n.elm-book-dark-mode .elm-book-action-log-preview-empty {\n background-color: #2f3238;\n}\n\n.elm-book-action-log-list-wrapper {\n position: relative;\n padding-top: 34px;\n}\n.elm-book-action-log-list-header {\n display: flex;\n align-items: center;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 34px;\n padding: 0 20px;\n font-weight: bold;\n font-size: 14px;\n letter-spacing: 0.5px;\n color: #fff;\n}\n.elm-book-action-log-list {\n list-style-type: none;\n max-height: 70vh;\n overflow-y: auto;\n}\n.elm-book-action-log-list-item {\n border-top: 1px solid #e0e0e0;\n}\n.elm-book-dark-mode .elm-book-action-log-list-item {\n border-top-color: #3b3f47;\n}\n\n.elm-book-action-log-item-wrapper {\n display: flex;\n align-items: center;\n padding: 8px 20px 8px 0;\n font-size: 14px;\n background-color: #f5f5f5;\n}\n.elm-book-dark-mode .elm-book-action-log-item-wrapper {\n background-color: #2f3238;\n}\n\n.elm-book-action-log-item-index {\n width: 60px;\n text-align: center;\n display: inline-block;\n color: #a0a0a0;\n}\n.elm-book-action-log__main {\n flex-grow: 1;\n}\n.elm-book-action-log-item-preffix {\n padding-right: 16px;\n color: #a0a0a0;\n letter-spacing: 0.5px;\n font-size: 12px;\n}\n.elm-book-action-log-item-label {\n color: #404040;\n font-size: 13px;\n font-weight: bold;\n}\n.elm-book-dark-mode .elm-book-action-log-item-label {\n color: #f5f5f5;\n}\n'); 20914var dtwrks$elm_book$ElmBook$UI$Helpers$mediaMobile = '@media screen and (max-width: 768px)'; 20915var dtwrks$elm_book$ElmBook$UI$Chapter$styles = dtwrks$elm_book$ElmBook$UI$Helpers$css_('\n.elm-book-chapter {\n padding: 40px;\n width: 100%;\n}\n' + (dtwrks$elm_book$ElmBook$UI$Helpers$mediaMobile + ' {\n .elm-book-chapter {\n padding: 24px;\n }\n}\n')); 20916var dtwrks$elm_book$ElmBook$UI$ChapterComponent$styles = dtwrks$elm_book$ElmBook$UI$Helpers$css_('\n.elm-book__chapter-component__title {\n padding-bottom: 12px;\n font-size: 14px;\n letter-spacing: 0.5px;\n color: #999;\n}\n\n.elm-book__chapter-component__background {\n padding: 12px;\n border-radius: 4px;\n background-color: #fff;\n}\n.elm-book-dark-mode .elm-book__chapter-component__background {\n background-color: #3b3f47;\n}\n\n.elm-book__chapter-component__content {\n border: 1px dashed transparent;\n position: relative;\n}\n.elm-book__chapter-component__content:hover {\n border-color: #eaeaea;\n}\n'); 20917var dtwrks$elm_book$ElmBook$UI$ChapterHeader$styles = dtwrks$elm_book$ElmBook$UI$Helpers$css_('\n.elm-book-chapter-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 0;\n padding: 8px 12px 8px 16px;\n\n}\n.elm-book-dark-mode .elm-book-chapter-header {\n color: #dadada;\n}\n\n.elm-book-chapter-header__title {\n margin: 0;\n padding: 0;\n font-size: 12px;\n font-weight: bold;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: #b0b4ba;\n}\n.elm-book-dark-mode .elm-book-chapter-header__title {\n color: #dadada;\n}\n\n.elm-book-chapter-header__btn {\n border: none;\n background: none;\n color: #b0b4ba;\n}\n.elm-book-chapter-header__btn:hover {\n cursor: pointer;\n opacity: 0.8;\n}\n.elm-book-chapter-header__btn:active {\n opacity: 0.6;\n}\n.elm-book-dark-mode .elm-book-chapter-header__btn {\n color: #dadada;\n}\n'); 20918var dtwrks$elm_book$ElmBook$UI$Footer$styles = dtwrks$elm_book$ElmBook$UI$Helpers$css_('\n.elm-book-footer {\n display: flex;
20918\n align-items: center;\n width: 100%;\n margin: 0;\n padding: 13px 12px 13px;\n opacity: 0.8;\n transition: opacity 200ms;\n text-decoration: none;\n}\n.elm-book-footer:hover {\n opacity: 1;\n}\n\n.elm-book-footer--text {\n padding-left: 12px;\n font-size: 10px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: currentColor;\n}\n'); 20919var dtwrks$elm_book$ElmBook$UI$Header$styles = dtwrks$elm_book$ElmBook$UI$Helpers$css_('\n.elm-book-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n.elm-book-header--link {\n display: block;\n padding: 8px 12px;\n text-decoration: none;\n}\n.elm-book-header--link:hover {\n opacity: 0.9;\n}\n.elm-book-header--link:active {\n opacity: 0.8;\n}\n\n.elm-book-header--button {\n display: none;\n padding: 12px;\n border: none;\n border-radius: 4px;\n box-shadow: none;\n background-color: transparent;\n cursor: pointer;\n}\n.elm-book-header--button:hover {\n opacity: 0.9;\n background-color: rgba(255, 255, 255, 0.1);\n}\n.elm-book-header--button:active {\n opacity: 0.4;\n}\n@media screen and (max-width: 768px) {\n .elm-book-header--button {\n display: flex;\n align-items: center;\n }\n}\n\n.elm-book-header-default {\n display: flex;\n align-items: center;\n}\n\n.elm-book-header-default--wrapper {\n display: block;\n padding-left: 16px;\n font-weight: 600;\n font-size: 16px;\n}\n\n.elm-book-header-default--title {\n display: block;\n padding-right: 4px;\n}\n\n.elm-book-header-default--subtitle {\n display: block;\n font-weight: 400;\n}\n'); 20920var dtwrks$elm_book$ElmBook$UI$Helpers$baseStyles = dtwrks$elm_book$ElmBook$UI$Helpers$css_('\n@import url(\'https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;600&family=IBM+Plex+Sans:wght@300;400;600&family=IBM+Plex+Serif:ital,wght@0,400;0,600;1,400;1,600&display=swap\');\n\n@keyframes fade-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n.elm-book-fade-in {\n animation: 0.3s linear fade-in;\n}\n\n.elm-book-wrapper * {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n}\n\n.elm-book-wrapper,\n.elm-book {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n}\n\n.elm-book-sans {\n font-family: "IBM Plex Sans", "sans-serif";\n}\n\n.elm-book-serif {\n font-family: "IBM Plex Serif", "serif";\n}\n\n.elm-book-monospace {\n font-family: "Fira Code", "monospace";\n}\n\n.elm-book-inset {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.elm-book-shadows {\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.05);\n}\n\n.elm-book-shadows-light {\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);\n}\n'); 20921var dtwrks$elm_book$ElmBook$UI$Helpers$mediaLargeScreen = '@media screen and (min-width: 1720px)'; 20922var dtwrks$elm_book$ElmBook$UI$Markdown$styles = dtwrks$elm_book$ElmBook$UI$Helpers$css_('\n.elm-book__component-wrapper {\n max-width: 720px;\n margin: 0 auto;\n padding-bottom: 36px;\n}\n.elm-book__component-wrapper.full {\n max-width: 100%;\n}\n.elm-book__component-empty {\n padding: 20px;\n background-color: #f9e4b5;\n border-radius: 4px;\n border: 2px solid #eac97d;\n color: #ab7700;\n}\n\n.elm-book-md__component-list {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.elm-book-md__component-list__item + .elm-book-md__component-list__item {\n padding-top: 36px;\n}\n\n.elm-book-md {\n max-width: 720px;\n margin: 0 auto;\n padding-bottom: 36px;\n color: rgb(41,41,41);\n}\n\n.elm-book-dark-mode .elm-book-md {\n color: rgb(180, 180, 180); \n}\n\n.elm-book-md * {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\n' + (dtwrks$elm_book$ElmBook$UI$Helpers$mediaLargeScreen + (' {\n .elm-book__component-wrapper {\n max-width: 960px;\n }\n .elm-book__component-wrapper.full {\n max-width: 100%;\n }\n .elm-book-md {\n max-width: 960px;\n }\n}\n\n.elm-book-md h1 {\n font-size: 46px;\n}\n.elm-book-md h2 {\n font-size: 32px;\n}\n.elm-book-md h3 {\n font-size: 24px;\n}\n.elm-book-md h4 {\n font-size: 20px;\n font-weight: normal;\n text-transform: uppercase;\n}\n.elm-book-md h5 {\n font-size: 18px;\n font-weight: normal;\n text-transform: uppercase;\n}\n.elm-book-md h6 {\n font-size: 16px;\n font-weight: normal;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.elm-book-md h1,\n.elm-book-md h2,\n.elm-book-md h3 {\n font-weight: bold;\n}\n\n.elm-book-md h1,\n.elm-book-md h2,\n.elm-book-md h3,\n.elm-book-md h4,\n.elm-book-md h5,\n.elm-book-md h6 {\n padding-top: 24px;\n}\n\n.elm-book-dark-mode .elm-book-md h1,\n.elm-book-dark-mode .elm-book-md h2,\n.elm-book-dark-mode .elm-book-md h3,\n.elm-book-dark-mode .elm-book-md h4,\n.elm-book-dark-mode .elm-book-md h5,\n.elm-book-dark-mode .elm-book-md h6 {\n color: #dadada;\n}\n\n' + (dtwrks$elm_book$ElmBook$UI$Helpers$mediaMobile + (' {\n .elm-book-md h1 {\n font-size: 40px;\n padding-top: 12px;\n }\n}\n\n.elm-book-md__default {\n line-height: 1.8em;\n color: rgb(80, 80, 90);\n font-size: 20px;\n}\n' + (dtwrks$elm_book$ElmBook$UI$Helpers$mediaMobile + (' {\n .elm-book-md__default {\n font-size: 18px;\n }\n}\n\n.elm-book-md a {\n color: #000;\n text-decoration: underline;\n}\n.elm-book-md a:hover {\n opacity: 0.8; \n}\n.elm-book-dark-mode .elm-book-md a {\n color: #f0f0f0;\n}\n\n.elm-book-md blockquote {\n font-size: 18px;\n margin-left: 0;\n padding: 8px 0 8px 24px;
20922\n border-left: 4px solid #f0f0f0;\n}\n.elm-book-md code {\n display: inline-block;\n border-radius: 4px;\n padding: 0 8px;\n background-color: #f0f0f0;\n border: 1px solid #eaeaea;\n color: #4a4a4a;\n font-size: 0.8em;\n line-height: 1.8em;\n}\n.elm-book-dark-mode .elm-book-md code {\n background-color: #333;\n border: 1px solid #444;\n color: #bababa;\n}\n\n\n.elm-book-md img {\n max-width: 100%;\n}\n.elm-book-md ul {\n padding-left: 32px;\n list-style: disc;\n}\n.elm-book-md ol {\n padding-left: 32px;\n}\n\n.elm-book-md hr {\n border: none;\n height: 2px;\n background-color: #f0f0f0;\n}\n.elm-book-dark-mode .elm-book-md hr {\n background-color: #3b3f47;\n}\n\n.elm-book-md table {\n border-collapse: collapse;\n overflow-x: auto;\n border: 2px solid #f0f0f0;\n}\n.elm-book-md thead {\n border: none;\n}\n.elm-book-md tbody {\n border: none;\n}\n.elm-book-md tr {\n border: none;\n border-top: 2px solid #f0f0f0;\n}\n.elm-book-md th,\n.elm-book-md td {\n border: none;\n border-right: 2px solid #f0f0f0;\n padding: 12px;\n}\n.elm-book-md th:last-child,\n.elm-book-md td:last-child {\n border-right: none;\n}\n\n.elm-book-dark-mode .elm-book-md table,\n.elm-book-dark-mode .elm-book-md tr,\n.elm-book-dark-mode .elm-book-md th,\n.elm-book-dark-mode .elm-book-md td {\n border-color: #3b3f47;\n}\n\n.elm-book-md__code,\n.elm-book-md__code code,\n.elm-book-dark-mode .elm-book-md__code,\n.elm-book-dark-mode .elm-book-md__code code {\n font-size: 18px;\n line-height: 22px;\n padding: 20px 24px;\n background-color: #2a354d;\n border-radius: 6px;\n border: none;\n overflow: auto;\n}\n.elm-book-md__code-default {}\n\n' + (dtwrks$elm_book$ElmBook$UI$Helpers$mediaMobile + ' {\n .elm-book-md__code,\n .elm-book-md__code code,\n .elm-book-dark-mode .elm-book-md__code,\n .elm-book-dark-mode .elm-book-md__code code {\n font-size: 16px;\n }\n}\n\n.elm-book-md pre.elmsh {\n padding: 0;\n margin: 0;\n}\n\n.elm-book-md code.elmsh {\n padding: 0;\n}\n\n.elm-book-md .elmsh {\n color: #f8f8f2;\n}\n.elm-book-md .elmsh-hl {\n background: #343434;\n}\n.elm-book-md .elmsh-add {\n background: #003800;\n}\n.elm-book-md .elmsh-del {\n background: #380000;\n}\n.elm-book-md .elmsh-comm {\n color: #a4a39c;\n}\n.elm-book-md .elmsh1 {\n color: #46f0ff;\n}\n.elm-book-md .elmsh2 {\n color: #a5fb98;\n}\n.elm-book-md .elmsh3 {\n color: #ff8f00;\n}\n.elm-book-md .elmsh4 {\n color: #46f0ff;\n}\n.elm-book-md .elmsh5 {\n color: #46f0ff;\n}\n.elm-book-md .elmsh6 {\n color: #46f0ff;\n}\n.elm-book-md .elmsh7 {\n color: #46f0ff;\n}\n.elm-book-md .elmsh-elm-ts, .elm-book-md .elmsh-js-dk, .elm-book-md .elmsh-css-p {\n font-style: italic;\n color: #46f0ff;\n}\n.elm-book-md .elmsh-js-ce {\n font-style: italic;\n color: #46f0ff;\n}\n.elm-book-md .elmsh-css-ar-i {\n font-weight: bold;\n color: #46f0ff;\n}\n')))))))); 20923var dtwrks$elm_book$ElmBook$UI$Nav$styles = dtwrks$elm_book$ElmBook$UI$Helpers$css_('\n.elm-book-nav-empty {\n padding: 12px 20px;\n font-size: 14px;\n}\n\n.elm-book-nav-list-wrapper {\n padding-bottom: 16px;\n}\n\n.elm-book-nav-list-title {\n padding: 12px 20px 8px;\n font-weight: bold;\n font-size: 12px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.elm-book-nav-list {\n list-style-type: none;\n}\n\n.elm-book-nav-item {\n position: relative;\n display: flex;\n font-size: 14px;\n letter-spacing: 1px;\n text-decoration: none;\n}\n.elm-book-nav-item:focus {\n outline: none;\n}\n\n.elm-book-nav-item-content {\n position: relative;\n z-index: 1;\n padding: 8px 20px;\n}\n\n.elm-book-nav-item-bg {\n opacity: 0;\n}\n.elm-book-nav-item.pre-selected .elm-book-nav-item-bg {\n opacity: 0.1;\n}\n.elm-book-nav-item.active .elm-book-nav-item-bg {\n opacity: 0.2;\n}\n.elm-book-nav-item.active.pre-selected .elm-book-nav-item-bg {\n opacity: 0.25;\n}\n.elm-book-nav-item:hover .elm-book-nav-item-bg {\n opacity: 0.15;\n}\n.elm-book-nav-item:active .elm-book-nav-item-bg {\n opacity: 0.1;\n}\n.elm-book-nav-item.active:hover .elm-book-nav-item-bg {\n opacity: 0.25;\n}\n.elm-book-nav-item.active:active .elm-book-nav-item-bg {\n opacity: 0.2;\n}\n'); 20924var dtwrks$elm_book$ElmBook$UI$Search$styles = dtwrks$elm_book$ElmBook$UI$Helpers$css_('\n.elm-book-search-wrapper {\n position: relative;\n width: 100%;\n}\n\n#elm-book-search {\n position: relative;\n z-index: 1;\n width: 100%;\n padding: 10px 12px;\n border: 0;\n border-radius: 4px;\n background: none;\n font-size: 14px;\n color: ' + (dtwrks$elm_book$ElmBook$UI$Helpers$themeAccent + (';\n transition: 0.2s;\n}\n#elm-book-search:focus {\n outline: none;\n}\n#elm-book-search::placeholder {\n border-radius: 4px;\n color: ' + (dtwrks$elm_book$ElmBook$UI$Helpers$themeNavAccent + (';\n opacity: 0.7;\n}\n\n.elm-book-search-bg {\n opacity: 0.2;\n border-radius: 4px;\n background-color: ' + (dtwrks$elm_book$ElmBook$UI$Helpers$themeNavBackgroun
20924d + (';\n}\n.elm-book-search-border {\n opacity: 0.5;\n border-radius: 4px;\n border: 0px solid ' + (dtwrks$elm_book$ElmBook$UI$Helpers$themeAccent + ';\n transition: 0.2s;\n}\n\n.elm-book-search-wrapper:hover .elm-book-search-bg {\n opacity: 0.25;\n}\n.elm-book-search-wrapper:hover .elm-book-search-border {\n border-width: 3px;\n}\n.elm-book-search-wrapper:focus-within .elm-book-search-border {\n opacity: 1;\n border-width: 3px;\n}\n')))))))); 20925var dtwrks$elm_book$ElmBook$UI$Wrapper$modalZ = '99999'; 20926var dtwrks$elm_book$ElmBook$UI$Wrapper$sidebarSize = '300px'; 20927var dtwrks$elm_book$ElmBook$UI$Wrapper$styles = dtwrks$elm_book$ElmBook$UI$Helpers$css_('\n.elm-book--wrapper--globals {\n display: none;\n}\n\n.elm-book--wrapper {\n display: flex;\n align-items: stretch;\n background: ' + (dtwrks$elm_book$ElmBook$UI$Helpers$themeBackground + (';\n}\n' + (dtwrks$elm_book$ElmBook$UI$Helpers$mediaMobile + (' {\n .elm-book--wrapper {\n flex-direction: column;\n }\n}\n\n.elm-book--wrapper--sidebar {\n display: flex;\n flex-direction: column;\n width: ' + (dtwrks$elm_book$ElmBook$UI$Wrapper$sidebarSize + (';\n}\n' + (dtwrks$elm_book$ElmBook$UI$Helpers$mediaMobile + (' {\n .elm-book--wrapper--sidebar {\n width: 100%;\n }\n .elm-book--wrapper.is-open .elm-book--wrapper--sidebar {\n flex-grow: 1;\n }\n}\n\n.elm-book--wrapper--header {\n padding: 8px 8px 4px;\n}\n\n.elm-book--wrapper--menu {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n}\n' + (dtwrks$elm_book$ElmBook$UI$Helpers$mediaMobile + (' {\n .elm-book--wrapper--menu {\n display: none;\n }\n .elm-book--wrapper.is-open .elm-book--wrapper--menu {\n display: flex;\n }\n}\n\n.elm-book--wrapper--menu--header {\n padding: 8px;\n}\n\n.elm-book--wrapper--menu--separator {\n display: block;\n margin: 0;\n padding: 0;\n opacity: 0.2;\n border-top: none;\n border-bottom: 1px solid ' + (dtwrks$elm_book$ElmBook$UI$Helpers$themeNavBackground + (';\n}\n\n.elm-book--wrapper--menu--main-wrapper {\n position: relative;\n flex-grow: 1;\n}\n\n.elm-book--wrapper--menu--main {\n overflow: auto;\n padding: 8px 0;\n}\n\n.elm-book--wrapper--menu--footer {\n padding: 8px;\n}\n\n.elm-book--wrapper--main {\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n padding: 8px 8px 0 0;\n}\n' + (dtwrks$elm_book$ElmBook$UI$Helpers$mediaMobile + (' {\n .elm-book--wrapper--main {\n display: flex;\n padding-left: 8px;\n }\n .elm-book--wrapper.is-open .elm-book--wrapper--main {\n display: none;\n }\n}\n\n.elm-book--wrapper--main--wrapper {\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n background-color: #fbfbfd;\n border-radius: 4px 4px 0 0;\n overflow: hidden;\n}\n.elm-book-dark-mode .elm-book--wrapper--main--wrapper {\n background-color: #20232a;\n}\n\n.elm-book--wrapper--main--header {\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n}\n.elm-book-dark-mode .elm-book--wrapper--main--header {\n border-bottom-color: rgba(255, 255, 255, 0.15);\n}\n\n.elm-book--wrapper--main--content {\n position: relative;\n flex-grow: 1;\n}\n\n.elm-book--wrapper--main--inner {\n overflow: auto;\n}\n\n.elm-book--wrapper--main--footer {\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n.elm-book-dark-mode .elm-book--wrapper--main--footer {\n border-top-color: rgba(255, 255, 255, 0.15);\n}\n\n.elm-book--wrapper--modal {\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: ' + (dtwrks$elm_book$ElmBook$UI$Wrapper$modalZ + ';\n}\n\n.elm-book--wrapper--modal--bg {\n z-index: 0;\n cursor: pointer;\n background-color: rgba(0, 0, 0, 0.3);\n transition: background-color 300ms;\n}\n.elm-book--wrapper--modal--bg:hover {\n background-color: rgba(0, 0, 0, 0.2);\n}\n\n.elm-book--wrapper--modal--content {\n position: relative;\n z-index: 1;\n margin: 40px;\n width: 640px;\n max-width: 100%;\n max-height: calc 100% - 120px;\n overflow-y: auto;\n background-color: #fff;\n border-radius: 8px;\n}\n.elm-book-dark-mode .elm-book--wrapper--modal--content {\n background-color: #20232a;\n}\n')))))))))))))))); 20928var dtwrks$elm_book$ElmBook$UI$Styles$view = A2( 20929 elm$html$Html$div, 20930 _List_Nil, 20931 _List_fromArray( 20932 [dtwrks$elm_book$ElmBook$UI$Helpers$baseStyles, dtwrks$elm_book$ElmBook$UI$ActionLog$styles, dtwrks$elm_book$ElmBook$UI$Chapter$styles, dtwrks$elm_book$ElmBook$UI$ChapterComponent$styles, dtwrks$elm_book$ElmBook$UI$ChapterHeader$styles, dtwrks$elm_book$ElmBook$UI$Footer$styles, dtwrks$elm_book$ElmBook$UI$Header$styles, dtwrks$elm_book$ElmBook$UI$Markdown$styles, dtwrks$elm_book$ElmBook$UI$Nav$styles, dtwrks$elm_book$ElmBook$UI$Search$styles, dtwrks$elm_book$ElmBook$UI$Wrapper$styles])); 20933var dtwrks$elm_book$ElmBook$Internal$ThemeOptions$accent = function (theme) { 20934 return theme.accent; 20935}; 20936var dtwrks$elm_book$ElmBook$Internal$ThemeOptions$background = function (theme) { 20937 return theme.background; 20938}; 20939var dtwrks$elm_book$ElmBook$Internal$ThemeOptions$navAccent = function (theme) { 20940 return theme.navAccent; 20941}; 20942var dtwrks$elm_book$ElmBook$Internal$ThemeOptions$navAccentHighlight = function (theme) { 20943 return theme.navAccentHighlight; 20944};
20945var dtwrks$elm_book$ElmBook$Internal$ThemeOptions$navBackground = function (theme) { 20946 return theme.navBackground; 20947}; 20948var elm$core$String$concat = function (strings) { 20949 return A2(elm$core$String$join, '', strings); 20950}; 20951var dtwrks$elm_book$ElmBook$UI$Helpers$setTheme = function (theme) { 20952 return A2( 20953 elm$html$Html$Attributes$attribute, 20954 'style', 20955 elm$core$String$concat( 20956 A2( 20957 elm$core$List$map, 20958 function (_n0) { 20959 var k = _n0.a; 20960 var v = _n0.b; 20961 return k + (':' + (v + ';')); 20962 }, 20963 _List_fromArray( 20964 [ 20965 _Utils_Tuple2( 20966 dtwrks$elm_book$ElmBook$UI$Helpers$themeBackgroundVar, 20967 dtwrks$elm_book$ElmBook$Internal$ThemeOptions$background(theme)), 20968 _Utils_Tuple2( 20969 dtwrks$elm_book$ElmBook$UI$Helpers$themeAccentVar, 20970 dtwrks$elm_book$ElmBook$Internal$ThemeOptions$accent(theme)), 20971 _Utils_Tuple2( 20972 dtwrks$elm_book$ElmBook$UI$Helpers$themeNavBackgroundVar, 20973 dtwrks$elm_book$ElmBook$Internal$ThemeOptions$navBackground(theme)), 20974 _Utils_Tuple2( 20975 dtwrks$elm_book$ElmBook$UI$Helpers$themeNavAccentVar, 20976 dtwrks$elm_book$ElmBook$Internal$ThemeOptions$navAccent(theme)), 20977 _Utils_Tuple2( 20978 dtwrks$elm_book$ElmBook$UI$Helpers$themeNavAccentHighlightVar, 20979 dtwrks$elm_book$ElmBook$Internal$ThemeOptions$navAccentHighlight(theme)) 20980 ])))); 20981}; 20982var dtwrks$elm_book$ElmBook$UI$Wrapper$view = function (props) { 20983 return A2( 20984 elm$html$Html$div, 20985 _List_fromArray( 20986 [ 20987 dtwrks$elm_book$ElmBook$UI$Helpers$setTheme(props.theme), 20988 props.darkMode ? elm$html$Html$Attributes$class('elm-book-dark-mode') : elm$html$Html$Attributes$class('') 20989 ]), 20990 _List_fromArray( 20991 [ 20992 A2( 20993 elm$html$Html$div, 20994 _List_fromArray( 20995 [ 20996 elm$html$Html$Attributes$class('elm-book--wrapper--globals') 20997 ]), 20998 props.globals), 20999 A2( 21000 elm$html$Html$div, 21001 _List_fromArray( 21002 [ 21003 elm$html$Html$Attributes$classList( 21004 _List_fromArray( 21005 [ 21006 _Utils_Tuple2('elm-book--wrapper elm-book-inset', true), 21007 _Utils_Tuple2('is-open', props.isMenuOpen) 21008 ])) 21009 ]), 21010 _List_fromArray( 21011 [ 21012 A2( 21013 elm$html$Html$div, 21014 _List_fromArray( 21015 [ 21016 elm$html$Html$Attributes$class('elm-book--wrapper--sidebar') 21017 ]), 21018 _List_fromArray( 21019 [ 21020 A2( 21021 elm$html$Html$div, 21022 _List_fromArray( 21023 [ 21024 elm$html$Html$Attributes$class('elm-book--wrapper--header') 21025 ]), 21026 _List_fromArray( 21027 [props.header])), 21028 A2( 21029 elm$html$Html$div, 21030 _List_fromArray( 21031 [ 21032 elm$html$Html$Attributes$class('elm-book--wrapper--menu') 21033 ]), 21034 _List_fromArray( 21035 [ 21036 A2( 21037 elm$html$Html$div, 21038 _List_fromArray( 21039 [ 21040 elm$html$Html$Attributes$class('elm-book--wrapper--menu--header') 21041 ]), 21042 _List_fromArray( 21043 [props.menuHeader])), 21044 A2( 21045 elm$html$Html$hr, 21046 _List_fromArray( 21047 [ 21048 elm$html$Html$Attributes$class('elm-book--wrapper--menu--separator') 21049 ]), 21050 _List_Nil), 21051 A2( 21052 elm$html$Html$div, 21053 _List_fromArray( 21054 [ 21055 elm$html$Html$Attributes$class('elm-book--wrapper--menu--main-wrapper') 21056 ]), 21057 _List_fromArray( 21058 [ 21059 A2( 21060 elm$html$Html$div, 21061 _List_fromArray( 21062 [ 21063 elm$html$Html$Attributes$class('elm-book--wrapper--menu--main elm-book-inset') 21064 ]), 21065 _List_fromArray( 21066 [props.menu])) 21067 ])), 21068 A2( 21069 elm$html$Html$hr, 21070 _List_fromArray( 21071 [ 21072 elm$html$Html$Attributes$class('elm-book--wrapper--menu--separator') 21073 ]), 21074 _List_Nil), 21075 A2( 21076 elm$html$Html$div, 21077 _List_fromArray( 21078 [ 21079 elm$html$Html$Attributes$class('elm-book--wrapper--menu--footer') 21080 ]), 21081 _List_fromArray( 21082 [props.menuFooter])) 21083 ])) 21084 ])), 21085 A2( 21086 elm$html$Html$div, 21087 _List_fromArray( 21088 [ 21089 elm$html$Html$Attributes$class('elm-book--wrapper--main') 21090 ]), 21091 _List_fromArray( 21092 [ 21093 A2( 21094 elm$html$Html$div, 21095 _List_fromArray( 21096 [ 21097 elm$html$Html$Attributes$class('elm-book--wrapper--main--wrapper') 21098 ]), 21099 _List_fromArray( 21100 [ 21101 function () { 21102 var _n0 = props.mainHeader; 21103 if (_n0.$ === 'Just') { 21104 var mainHeader = _n0.a; 21105 return A2( 21106 elm$html$Html$div, 21107 _List_fromArray( 21108 [ 21109 elm$html$Html$Attributes$class('elm-book--wrapper--main--header elm-book-sans') 21110 ]), 21111 _List_fromArray( 21112 [mainHeader])); 21113 } else { 21114 return elm$html$Html$text(''); 21115 } 21116 }(), 21117 A2( 21118 elm$html$Html$div, 21119 _List_fromArray( 21120 [ 21121 elm$html$Html$Attributes$class('elm-book--wrapper--main--content') 21122 ]), 21123 _List_fromArray( 21124 [ 21125 A2( 21126 elm$html$Html$div, 21127 _List_fromArray( 21128 [ 21129 elm$html$Html$Attributes$id('elm-book-main'), 21130 elm$html$Html$Attributes$class('elm-book--wrapper--main--inner elm-book-inset') 21131 ]), 21132 _List_fromArray( 21133 [props.main])) 21134 ])), 21135 A2( 21136 elm$html$Html$div, 21137 _List_fromArray( 21138 [ 21139 elm$html$Html$Attributes$class('elm-book--wrapper--main--footer') 21140 ]), 21141 _List_fromArray( 21142 [props.mainFooter])) 21143 ])) 21144 ])) 21145 ])), 21146 function () { 21147 var _n1 = props.modal; 21148 if (_n1.$ === 'Just') { 21149 var html = _n1.a; 21150 return A2( 21151 elm$html$Html$div, 21152 _List_fromArray( 21153 [ 21154 elm$html$Html$Attributes$class('elm-book-inset elm-book-fade-in elm-book--wrapper--modal') 21155 ]), 21156 _List_fromArray( 21157 [ 21158 A2( 21159 elm$html$Html$div, 21160 _List_fromArray( 21161 [ 21162 elm$html$Html$Events$onClick(props.onCloseModal), 21163 elm$html$Html$Attributes$class('elm-book-inset elm-book--wrapper--modal--bg') 21164 ]), 21165 _List_Nil), 21166 A2( 21167 elm$html$Html$div, 21168 _List_fromArray( 21169 [ 21170 elm$html$Html$Attributes$class('elm-book--wrapper--modal--content elm-book-shadows') 21171 ]), 21172 _List_fromArray( 21173 [html])) 21174 ])); 21175 } else { 21176 return elm$html$Html$text(''); 21177 } 21178 }() 21179 ])); 21180}; 21181var dtwrks$elm_book$ElmBook$Internal$Application$view = F2( 21182 function (config, model) { 21183 var theme = A2(dtwrks$elm_book$ElmBook$Internal$ThemeOptions$applyOverrides, config.themeOptions, model.themeOverrides); 21184 var hashBasedNavigation = dtwrks$elm_book$ElmBook$Internal$ThemeOptions$hashBasedNavigation(config.themeOptions); 21185 var activeChapter = A2(dtwrks$elm_book$ElmBook$Internal$Book$chapterFromUrl, config, model.url); 21186 return { 21187 body: _List_fromArray( 21188 [ 21189 dtwrks$elm_book$ElmBook$UI$Styles$view, 21190 dtwrks$elm_book$ElmBook$UI$Wrapper$view( 21191 { 21192 darkMode: model.darkMode, 21193 globals: A2( 21194 elm$core$List$map, 21195 config.toHtml, 21196 A2(elm$core$Maybe$withDefault, _List_Nil, config.themeOptions.globals)), 21197 header: dtwrks$elm_book$ElmBook$UI$Header$view( 21198 {href: '/', isMenuOpen: model.isMenuOpen, onClickHeader: dtwrks$elm_book$ElmBook$Internal$Msg$DoNothing, onClickMenuButton: dtwrks$elm_book$ElmBook$Internal$Msg$ToggleMenu, theme: config.themeOptions, title: config.title, toHtml: config.toHtml}), 21199 isMenuOpen: model.isMenuOpen, 21200 main: A2( 21201 elm$core$Maybe$withDefault, 21202 elm$html$Html$text(''), 21203 A2( 21204 elm$core$Maybe$map, 21205 function (_n0) { 21206 var activeChapter_ = _n0.a; 21207 return dtwrks$elm_book$ElmBook$UI$Chapter$view( 21208 { 21209 body: activeChapter_.body, 21210 chapterOptions: A2(dtwrks$elm_book$ElmBook$Internal$Chapter$toValidOptions, config.chapterOptions, activeChapter_.chapterOptions), 21211 componentOptions: A2(dtwrks$elm_book$ElmBook$Internal$ComponentOptions$toValidOptions, config.componentOptions, activeChapter_.componentOptions), 21212 components: A2( 21213 elm$core$List$map, 21214 function (component) { 21215 return _Utils_Tuple2( 21216 component.label, 21217 A3(dtwrks$elm_book$ElmBook$Internal$Application$componentView, config.toHtml, model.state, component.view)); 21218 }, 21219 activeChapter_.componentList), 21220 title: activeChapter_.title 21221 }); 21222 }, 21223 activeChapter)), 21224 mainFooter: A2( 21225 elm$core$Maybe$withDefault, 21226 dtwrks$elm_book$ElmBook$UI$ActionLog$previewEmpty, 21227 A2( 21228 elm$core$Maybe$map, 21229 function (lastAction) { 21230 return dtwrks$elm_book$ElmBook$UI$ActionLog$preview( 21231 { 21232 lastAction: lastAction, 21233 lastActionIndex: elm$core$List$length(model.actionLog) - 1, 21234 onClick: dtwrks$elm_book$ElmBook$Internal$Msg$ActionLogShow 21235 }); 21236 }, 21237 elm$core$List$head(model.actionLog))), 21238 mainHeader: A2( 21239 elm$core$Maybe$map, 21240 function (chapter) { 21241 return dtwrks$elm_book$ElmBook$UI$ChapterHeader$view( 21242 { 21243 onToggleDarkMode: dtwrks$elm_book$ElmBook$Internal$Msg$ToggleDarkMode, 21244 title: dtwrks$elm_book$ElmBook$Internal$Chapter$chapterBreadcrumb(chapter) 21245 }); 21246 }, 21247 activeChapter), 21248 menu: function () { 21249 var chaptersList = A2(dtwrks$elm_book$ElmBook$Internal$Application$searchChapter
21249s, model.search, config.chapters); 21250 var chaptersListSlugs = A2( 21251 elm$core$List$map, 21252 dtwrks$elm_book$ElmBook$Internal$Chapter$chapterNavUrl(hashBasedNavigation), 21253 elm$core$Array$toList(chaptersList)); 21254 return dtwrks$elm_book$ElmBook$UI$Nav$view( 21255 { 21256 active: A2( 21257 elm$core$Maybe$map, 21258 dtwrks$elm_book$ElmBook$Internal$Chapter$chapterNavUrl(hashBasedNavigation), 21259 activeChapter), 21260 itemGroups: A2( 21261 elm$core$List$map, 21262 elm$core$Tuple$mapSecond( 21263 A2( 21264 elm$core$Basics$composeR, 21265 elm$core$List$map( 21266 function (index) { 21267 return A2(elm$core$Array$get, index, config.chapters); 21268 }), 21269 A2( 21270 elm$core$Basics$composeR, 21271 elm$core$List$filterMap(elm$core$Basics$identity), 21272 A2( 21273 elm$core$Basics$composeR, 21274 elm$core$List$map( 21275 function (chapter) { 21276 var title = chapter.a.title; 21277 var internal = chapter.a.internal; 21278 return _Utils_Tuple3( 21279 A2(dtwrks$elm_book$ElmBook$Internal$Chapter$chapterNavUrl, hashBasedNavigation, chapter), 21280 title, 21281 internal); 21282 }), 21283 elm$core$List$filter( 21284 function (_n1) { 21285 var slug = _n1.a; 21286 return A2(elm$core$List$member, slug, chaptersListSlugs); 21287 }))))), 21288 config.chapterGroups), 21289 preSelected: model.isSearching ? A2( 21290 elm$core$Maybe$map, 21291 dtwrks$elm_book$ElmBook$Internal$Chapter$chapterNavUrl(hashBasedNavigation), 21292 A2( 21293 elm$core$Array$get, 21294 A2( 21295 elm$core$Basics$modBy, 21296 elm$core$Array$length(chaptersList), 21297 model.chapterPreSelected), 21298 chaptersList)) : elm$core$Maybe$Nothing 21299 }); 21300 }(), 21301 menuFooter: dtwrks$elm_book$ElmBook$UI$Footer$view, 21302 menuHeader: dtwrks$elm_book$ElmBook$UI$Search$view( 21303 {onBlur: dtwrks$elm_book$ElmBook$Internal$Msg$SearchBlur, onFocus: dtwrks$elm_book$ElmBook$Internal$Msg$SearchFocus, onInput: dtwrks$elm_book$ElmBook$Internal$Msg$Search, value: model.search}), 21304 modal: model.actionLogModal ? elm$core$Maybe$Just( 21305 dtwrks$elm_book$ElmBook$UI$ActionLog$list(model.actionLog)) : elm$core$Maybe$Nothing, 21306 onCloseModal: dtwrks$elm_book$ElmBook$Internal$Msg$ActionLogHide, 21307 theme: theme 21308 }) 21309 ]), 21310 title: function () { 21311 var mainTitle = A2( 21312 elm$core$Maybe$withDefault, 21313 config.title, 21314 A2( 21315 elm$core$Maybe$map, 21316 function (s) { 21317 return config.title + (' | ' + s); 21318 }, 21319 dtwrks$elm_book$ElmBook$Internal$ThemeOptions$subtitle(config.themeOptions))); 21320 if (activeChapter.$ === 'Just') { 21321 var title = activeChapter.a.a.title; 21322 return title + (' - ' + mainTitle); 21323 } else { 21324 return mainTitle; 21325 } 21326 }() 21327 }; 21328 }); 21329var dtwrks$elm_book$ElmBook$Internal$Application$withActionLogReset = function (previousModel) { 21330 return elm$core$Tuple$mapFirst( 21331 function (model) { 21332 return (!_Utils_eq(model.url, previousModel.url)) ? _Utils_update( 21333 model, 21334 {actionLog: _List_Nil}) : model; 21335 }); 21336}; 21337var elm$core$Elm$JsArray$push = _JsArray_push; 21338var elm$core$Elm$JsArray$singleton = _JsArray_singleton; 21339var elm$core$Elm$JsArray$unsafeSet = _JsArray_unsafeSet; 21340var elm$core$Array$insertTailInTree = F4( 21341 function (shift, index, tail, tree) { 21342 var pos = elm$core$Array$bitMask & (index >>> shift); 21343 if (_Utils_cmp( 21344 pos, 21345 elm$core$Elm$JsArray$length(tree)) > -1) { 21346 if (shift === 5) { 21347 return A2( 21348 elm$core$Elm$JsArray$push, 21349 elm$core$Array$Leaf(tail), 21350 tree); 21351 } else { 21352 var newSub = elm$core$Array$SubTree( 21353 A4(elm$core$Array$insertTailInTree, shift - elm$core$Array$shiftStep, index, tail, elm$core$Elm$JsArray$empty)); 21354 return A2(elm$core$Elm$JsArray$push, newSub, tree); 21355 } 21356 } else { 21357 var value = A2(elm$core$Elm$JsArray$unsafeGet, pos, tree); 21358 if (value.$ === 'SubTree') { 21359 var subTree = value.a; 21360 var newSub = elm$core$Array$SubTree( 21361 A4(elm$core$Array$insertTailInTree, shift - elm$core$Array$shiftStep, index, tail, subTree)); 21362 return A3(elm$core$Elm$JsArray$unsafeSet, pos, newSub, tree); 21363 } else { 21364 var newSub = elm$core$Array$SubTree( 21365 A4( 21366 elm$core$Array$insertTailInTree, 21367 shift - elm$core$Array$shiftStep, 21368 index, 21369 tail, 21370 elm$core$Elm$JsArray$singleton(value))); 21371 return A3(elm$core$Elm$JsArray$unsafeSet, pos, newSub, tree); 21372 } 21373 } 21374 }); 21375var elm$core$Array$unsafeReplaceTail = F2( 21376 function (newTail, _n0) { 21377 var len = _n0.a; 21378 var startShift = _n0.b; 21379 var tree = _n0.c; 21380 var tail = _n0.d; 21381 var originalTailLen = elm$core$Elm$JsArray$length(tail); 21382 var newTailLen = elm$core$Elm$JsArray$length(newTail); 21383 var newArrayLen = len + (newTailLen - originalTailLen); 21384 if (_Utils_eq(newTailLen, elm$core$Array$branchFactor)) { 21385 var overflow = _Utils_cmp(newArrayLen >>> elm$core$Array$shiftStep, 1 << startShift) > 0; 21386 if (overflow) { 21387 var newShift = startShift + elm$core$Array$shiftStep; 21388 var newTree = A4( 21389 elm$core$Array$insertTailInTree, 21390 newShift, 21391 len, 21392 newTail, 21393 elm$core$Elm$JsArray$singleton( 21394 elm$core$Array$SubTree(tree))); 21395 return A4(elm$core$Array$Array_elm_builtin, newArrayLen, newShift, newTree, elm$core$Elm$JsArray$empty); 21396 } else { 21397 return A4( 21398 elm$core$Array$Array_elm_builtin, 21399 newArrayLen, 21400 startShift, 21401 A4(elm$core$Array$insertTailInTree, startShift, len, newTail, tree), 21402 elm$core$Elm$JsArray$empty); 21403 } 21404 } else { 21405 return A4(elm$core$Array$Array_elm_builtin, newArrayLen, startShift, tree, newTail); 21406 } 21407 }); 21408var elm$core$Array$push = F2( 21409 function (a, array) { 21410 var tail = array.d; 21411 return A2( 21412 elm$core$Array$unsafeReplaceTail, 21413 A2(elm$core$Elm$JsArray$push, a, tail), 21414 array); 21415 }); 21416var dtwrks$elm_book$ElmBook$Internal$Book$configFromBuilder = F2( 21417 function (chapterGroups_, _n0) { 21418 var data = _n0.a; 21419 var chapterGroups = function () { 21420 var toIndexedGroup = F2( 21421 function (initialIndex, _n6) { 21422 var groupTitle = _n6.a; 21423 var groupChapters = _n6.b; 21424 return _Utils_Tuple2( 21425 groupTitle, 21426 A2( 21427 elm$core$List$indexedMap, 21428 F2( 21429 function (i, _n5) { 21430 return i + initialIndex; 21431 }), 21432 groupChapters)); 21433 }); 21434 return elm$core$List$reverse( 21435 A3( 21436 elm$core$List$foldl, 21437 F2( 21438 function (_n3, _n4) { 21439 var label = _n3.a; 21440 var xs = _n3.b; 21441 var acc = _n4.a; 21442 var lastIndex = _n4.b; 21443 return _Utils_Tuple2( 21444 A2( 21445 elm$core$List$cons, 21446 A2( 21447 toIndexedGroup, 21448 lastIndex, 21449 _Utils_Tuple2(label, xs)), 21450 acc), 21451 lastIndex + elm$core$List$length(xs)); 21452 }), 21453 _Utils_Tuple2(_List_Nil, 0), 21454 chapterGroups_).a); 21455 }(); 21456 var chapterData = A3( 21457 elm$core$List$foldl, 21458 F2( 21459 function (_n2, acc) { 21460 var chapters_ = _n2.b; 21461 return A3( 21462 elm$core$List$foldl, 21463 F2( 21464 function (c, acc_) { 21465 return { 21466 chapterByUrl: A3( 21467 elm$core$Dict$insert, 21468 dtwrks$elm_book$ElmBook$Internal$Chapter$chapterUrl(c), 21469 acc_.chaptersCount, 21470 acc_.chapterByUrl), 21471 chapters: A2(elm$core$Array$push, c, acc_.chapters), 21472 chaptersCount: acc_.chaptersCount + 1 21473 }; 21474 }), 21475 {chapterByUrl: acc.chapterByUrl, chapters: acc.chapters, chaptersCount: acc.chaptersCount}, 21476 chapters_); 21477 }), 21478 {chapterByUrl: elm$core$Dict$empty, chapters: elm$core$Array$empty, chaptersCount: 0}, 21479 chapterGroups_); 21480 var _n1 = chapterData; 21481 var chapters = _n1.chapters; 21482 var chapterByUrl = _n1.chapterByUrl; 21483 return {chapterByUrl: chapterByUrl, chapterGroups: chapterGroups, chapterOptions: data.chapterOptions, chapters: chapters, componentOptions: data.componentOptions, statefulOptions: data.statefulOptions, themeOptions: data.themeOptions, title: data.title, toHtml: data.toHtml}; 21484 }); 21485var dtwrks$elm_book$ElmBook$Internal$Msg$OnUrlChange = function (a) { 21486 return {$: 'OnUrlChange', a: a}; 21487}; 21488var dtwrks$elm_book$ElmBook$Internal$Msg$OnUrlRequest = function (a) { 21489 return {$: 'OnUrlRequest', a: a}; 21490}; 21491var elm$browser$Browser$application = _Browser_application; 21492var elm$browser$Browser$Events$Document = {$: 'Document'}; 21493var elm$browser$Browser$Events$MySub = F3( 21494 function (a, b, c) {
21495 return {$: 'MySub', a: a, b: b, c: c}; 21496 }); 21497var elm$browser$Browser$Events$State = F2( 21498 function (subs, pids) { 21499 return {pids: pids, subs: subs}; 21500 }); 21501var elm$browser$Browser$Events$init = elm$core$Task$succeed( 21502 A2(elm$browser$Browser$Events$State, _List_Nil, elm$core$Dict$empty)); 21503var elm$browser$Browser$Events$nodeToKey = function (node) { 21504 if (node.$ === 'Document') { 21505 return 'd_'; 21506 } else { 21507 return 'w_'; 21508 } 21509}; 21510var elm$browser$Browser$Events$addKey = function (sub) { 21511 var node = sub.a; 21512 var name = sub.b; 21513 return _Utils_Tuple2( 21514 _Utils_ap( 21515 elm$browser$Browser$Events$nodeToKey(node), 21516 name), 21517 sub); 21518}; 21519var elm$browser$Browser$Events$Event = F2( 21520 function (key, event) { 21521 return {event: event, key: key}; 21522 }); 21523var elm$core$Platform$sendToSelf = _Platform_sendToSelf; 21524var elm$browser$Browser$Events$spawn = F3( 21525 function (router, key, _n0) { 21526 var node = _n0.a; 21527 var name = _n0.b; 21528 var actualNode = function () { 21529 if (node.$ === 'Document') { 21530 return _Browser_doc; 21531 } else { 21532 return _Browser_window; 21533 } 21534 }(); 21535 return A2( 21536 elm$core$Task$map, 21537 function (value) { 21538 return _Utils_Tuple2(key, value); 21539 }, 21540 A3( 21541 _Browser_on, 21542 actualNode, 21543 name, 21544 function (event) { 21545 return A2( 21546 elm$core$Platform$sendToSelf, 21547 router, 21548 A2(elm$browser$Browser$Events$Event, key, event)); 21549 })); 21550 }); 21551var elm$core$Dict$merge = F6( 21552 function (leftStep, bothStep, rightStep, leftDict, rightDict, initialResult) { 21553 var stepState = F3( 21554 function (rKey, rValue, _n0) { 21555 stepState: 21556 while (true) { 21557 var list = _n0.a; 21558 var result = _n0.b; 21559 if (!list.b) { 21560 return _Utils_Tuple2( 21561 list, 21562 A3(rightStep, rKey, rValue, result)); 21563 } else { 21564 var _n2 = list.a; 21565 var lKey = _n2.a; 21566 var lValue = _n2.b; 21567 var rest = list.b; 21568 if (_Utils_cmp(lKey, rKey) < 0) { 21569 var $temp$rKey = rKey, 21570 $temp$rValue = rValue, 21571 $temp$_n0 = _Utils_Tuple2( 21572 rest, 21573 A3(leftStep, lKey, lValue, result)); 21574 rKey = $temp$rKey; 21575 rValue = $temp$rValue; 21576 _n0 = $temp$_n0; 21577 continue stepState; 21578 } else { 21579 if (_Utils_cmp(lKey, rKey) > 0) { 21580 return _Utils_Tuple2( 21581 list, 21582 A3(rightStep, rKey, rValue, result)); 21583 } else { 21584 return _Utils_Tuple2( 21585 rest, 21586 A4(bothStep, lKey, lValue, rValue, result)); 21587 } 21588 } 21589 } 21590 } 21591 }); 21592 var _n3 = A3( 21593 elm$core$Dict$foldl, 21594 stepState, 21595 _Utils_Tuple2( 21596 elm$core$Dict$toList(leftDict), 21597 initialResult), 21598 rightDict); 21599 var leftovers = _n3.a; 21600 var intermediateResult = _n3.b; 21601 return A3( 21602 elm$core$List$foldl, 21603 F2( 21604 function (_n4, result) { 21605 var k = _n4.a; 21606 var v = _n4.b; 21607 return A3(leftStep, k, v, result); 21608 }), 21609 intermediateResult, 21610 leftovers); 21611 }); 21612var elm$core$Process$kill = _Scheduler_kill; 21613var elm$browser$Browser$Events$onEffects = F3( 21614 function (router, subs, state) { 21615 var stepRight = F3( 21616 function (key, sub, _n6) { 21617 var deads = _n6.a; 21618 var lives = _n6.b; 21619 var news = _n6.c; 21620 return _Utils_Tuple3( 21621 deads, 21622 lives, 21623 A2( 21624 elm$core$List$cons, 21625 A3(elm$browser$Browser$Events$spawn, router, key, sub), 21626 news)); 21627 }); 21628 var stepLeft = F3( 21629 function (_n4, pid, _n5) { 21630 var deads = _n5.a; 21631 var lives = _n5.b; 21632 var news = _n5.c; 21633 return _Utils_Tuple3( 21634 A2(elm$core$List$cons, pid, deads), 21635 lives, 21636 news); 21637 }); 21638 var stepBoth = F4( 21639 function (key, pid, _n2, _n3) { 21640 var deads = _n3.a; 21641 var lives = _n3.b; 21642 var news = _n3.c; 21643 return _Utils_Tuple3( 21644 deads, 21645 A3(elm$core$Dict$insert, key, pid, lives), 21646 news); 21647 }); 21648 var newSubs = A2(elm$core$List$map, elm$browser$Browser$Events$addKey, subs); 21649 var _n0 = A6( 21650 elm$core$Dict$merge, 21651 stepLeft, 21652 stepBoth, 21653 stepRight, 21654 state.pids, 21655 elm$core$Dict$fromList(newSubs), 21656 _Utils_Tuple3(_List_Nil, elm$core$Dict$empty, _List_Nil)); 21657 var deadPids = _n0.a; 21658 var livePids = _n0.b; 21659 var makeNewPids = _n0.c; 21660 return A2( 21661 elm$core$Task$andThen, 21662 function (pids) { 21663 return elm$core$Task$succeed( 21664 A2( 21665 elm$browser$Browser$Events$State, 21666 newSubs, 21667 A2( 21668 elm$core$Dict$union, 21669 livePids, 21670 elm$core$Dict$fromList(pids)))); 21671 }, 21672 A2( 21673 elm$core$Task$andThen, 21674 function (_n1) { 21675 return elm$core$Task$sequence(makeNewPids); 21676 }, 21677 elm$core$Task$sequence( 21678 A2(elm$core$List$map, elm$core$Process$kill, deadPids)))); 21679 }); 21680var elm$browser$Browser$Events$onSelfMsg = F3( 21681 function (router, _n0, state) { 21682 var key = _n0.key; 21683 var event = _n0.event; 21684 var toMessage = function (_n2) { 21685 var subKey = _n2.a; 21686 var _n3 = _n2.b; 21687 var node = _n3.a; 21688 var name = _n3.b; 21689 var decoder = _n3.c; 21690 return _Utils_eq(subKey, key) ? A2(_Browser_decodeEvent, decoder, event) : elm$core$Maybe$Nothing; 21691 }; 21692 var messages = A2(elm$core$List$filterMap, toMessage, state.subs); 21693 return A2( 21694 elm$core$Task$andThen, 21695 function (_n1) { 21696 return elm$core$Task$succeed(state); 21697 }, 21698 elm$core$Task$sequence( 21699 A2( 21700 elm$core$List$map, 21701 elm$core$Platform$sendToApp(router), 21702 messages))); 21703 }); 21704var elm$browser$Browser$Events$subMap = F2( 21705 function (func, _n0) { 21706 var node = _n0.a; 21707 var name = _n0.b; 21708 var decoder = _n0.c; 21709 return A3( 21710 elm$browser$Browser$Events$MySub, 21711 node, 21712 name, 21713 A2(elm$json$Json$Decode$map, func, decoder)); 21714 }); 21715_Platform_effectManagers['Browser.Events'] = _Platform_createManager(elm$browser$Browser$Events$init, elm$browser$Browser$Events$onEffects, elm$browser$Browser$Events$onSelfMsg, 0, elm$browser$Browser$Events$subMap); 21716var elm$browser$Browser$Events$subscription = _Platform_leaf('Browser.Events'); 21717var elm$browser$Browser$Events$on = F3( 21718 function (node, name, decoder) { 21719 return elm$browser$Browser$Events$subscription( 21720 A3(elm$browser$Browser$Events$MySub, node, name, decoder)); 21721 }); 21722var elm$browser$Browser$Events$onKeyDown = A2(elm$browser$Browser$Events$on, elm$browser$Browser$Events$Document, 'keydown'); 21723var elm$browser$Browser$Events$onKeyUp = A2(elm$browser$Browser$Events$on, elm$browser$Browser$Events$Document, 'keyup'); 21724var elm$core$Platform$Sub$batch = _Platform_batch; 21725var dtwrks$elm_book$ElmBook$Internal$Application$application = F2( 21726 function (chapterGroups, bookBuilder) { 21727 var config = A2(dtwrks$elm_book$ElmBook$Internal$Book$configFromBuilder, chapterGroups, bookBuilder); 21728 return elm$browser$Browser$application( 21729 { 21730 init: dtwrks$elm_book$ElmBook$Internal$Application$init(config), 21731 onUrlChange: dtwrks$elm_book$ElmBook$Internal$Msg$OnUrlChange, 21732 onUrlRequest: dtwrks$elm_book$ElmBook$Internal$Msg$OnUrlRequest, 21733 subscriptions: function (_n0) { 21734 return elm$core$Platform$Sub$batch( 21735 _List_fromArray( 21736 [ 21737 elm$browser$Browser$Events$onKeyDown(dtwrks$elm_book$ElmBook$Internal$Application$keyDownDecoder), 21738 elm$browser$Browser$Events$onKeyUp(dtwrks$elm_book$ElmBook$Internal$Application$keyUpDecoder), 21739 elm$core$Platform$Sub$batch(config.statefulOptions.subscriptions) 21740 ])); 21741 }, 21742 update: F2( 21743 function (msg, model) { 21744 return A2( 21745 dtwrks$elm_book$ElmBook$Internal$Application$withActionLogReset, 21746 model, 21747 A3(dtwrks$elm_book$ElmBook$Internal$Application$update, config, msg, model)); 21748 }), 21749 view: dtwrks$elm_book$ElmBook$Internal$Application$view(config) 21750 }); 21751 }); 21752var dtwrks$elm_book$ElmBook$Internal$Chapter$Chapter = function (a) { 21753 return {$: 'Chapter', a: a}; 21754}; 21755var elm$core$Char$toLower = _Char_toLower; 21756var dtwrks$elm_book$ElmBook$Internal$Helpers$toUrlSafe = function (c) { 21757 return elm$core$Char$isAlphaNum(c) ? elm$core$Char$toLower(c) : _Utils_chr('-'); 21758}; 21759var elm$core$String$map = _String_map; 21760var dtwrks$elm_book$ElmBook$Internal$Helpers$toSlug = A2( 21761 elm$core$Basics$composeR, 21762 elm$core$String$trim, 21763 elm$core$String$map(dtwrks$elm_book$ElmBook$Internal$Helpers$toUrlSafe)); 21764var dtwrks$elm_book$ElmBook$Internal$Chapter$chapterWithGroup = F3( 21765 function (routePrefix, group, _n0) { 21766 var chapter = _n0.a; 21767 var groupPrefix = (group === '') ? '' : ('/' + dtwrks$elm_book$ElmBook$Internal$Helpers$toSlug(group)); 21768 return (!chapter.internal) ? dtwrks$elm_book$ElmBook$Internal$Chapter$Chapter(chapter) : dtwrks$elm_book$ElmBook$Internal$Chapter$Chapter( 21769 _Utils_update( 21770 chapter, 21771 { 21772 groupTitle: elm$core$Maybe$Just(group), 21773 url: _Utils_ap( 21774 routePrefix, 21775 _Utils_ap(groupPrefix, chapter.url)) 21776 })); 21777 }); 21778var dtwrks$elm_book$ElmBook$withChapterGroups = F2( 21779 function (chapterGroups_, _n0) { 21780 var config = _n0.a; 21781 return A2(
21782 dtwrks$elm_book$ElmBook$Internal$Application$application, 21783 A2( 21784 elm$core$List$map, 21785 function (_n1) { 21786 var group = _n1.a; 21787 var chapters = _n1.b; 21788 return _Utils_Tuple2( 21789 group, 21790 A2( 21791 elm$core$List$map, 21792 A2(dtwrks$elm_book$ElmBook$Internal$Chapter$chapterWithGroup, config.themeOptions.routePrefix, group), 21793 chapters)); 21794 }, 21795 chapterGroups_), 21796 dtwrks$elm_book$ElmBook$Internal$Book$BookBuilder(config)); 21797 }); 21798var dtwrks$elm_book$ElmBook$Internal$Helpers$applyAttributes = F2( 21799 function (fns, a) { 21800 return A3(elm$core$List$foldl, elm$core$Basics$apL, a, fns); 21801 }); 21802var dtwrks$elm_book$ElmBook$withStatefulOptions = F2( 21803 function (attributes, _n0) { 21804 var config = _n0.a; 21805 return dtwrks$elm_book$ElmBook$Internal$Book$BookBuilder( 21806 _Utils_update( 21807 config, 21808 { 21809 statefulOptions: A2(dtwrks$elm_book$ElmBook$Internal$Helpers$applyAttributes, attributes, config.statefulOptions) 21810 })); 21811 }); 21812var dtwrks$elm_book$ElmBook$withThemeOptions = F2( 21813 function (themeAttributes, _n0) { 21814 var config = _n0.a; 21815 return dtwrks$elm_book$ElmBook$Internal$Book$BookBuilder( 21816 _Utils_update( 21817 config, 21818 { 21819 themeOptions: A2(dtwrks$elm_book$ElmBook$Internal$Helpers$applyAttributes, themeAttributes, config.themeOptions) 21820 })); 21821 }); 21822var dtwrks$elm_book$ElmBook$Internal$Chapter$ChapterOptions = function (a) { 21823 return {$: 'ChapterOptions', a: a}; 21824}; 21825var dtwrks$elm_book$ElmBook$Internal$Chapter$defaultOverrides = dtwrks$elm_book$ElmBook$Internal$Chapter$ChapterOptions( 21826 {hiddenTitle: elm$core$Maybe$Nothing}); 21827var dtwrks$elm_book$ElmBook$Internal$ComponentOptions$defaultOverrides = dtwrks$elm_book$ElmBook$Internal$ComponentOptions$ComponentOptions( 21828 {background: elm$core$Maybe$Nothing, display: elm$core$Maybe$Nothing, fullWidth: elm$core$Maybe$Nothing, hiddenLabel: elm$core$Maybe$Nothing}); 21829var dtwrks$elm_book$ElmBook$Chapter$chapterLink = function (props) { 21830 return dtwrks$elm_book$ElmBook$Internal$Chapter$Chapter( 21831 {body: '', chapterOptions: dtwrks$elm_book$ElmBook$Internal$Chapter$defaultOverrides, componentList: _List_Nil, componentOptions: dtwrks$elm_book$ElmBook$Internal$ComponentOptions$defaultOverrides, groupTitle: elm$core$Maybe$Nothing, init: elm$core$Maybe$Nothing, internal: false, title: props.title, url: props.url}); 21832}; 21833var dtwrks$elm_book$ElmBook$StatefulOptions$initialState = F2( 21834 function (state, options) { 21835 return _Utils_update( 21836 options, 21837 { 21838 initialState: elm$core$Maybe$Just(state) 21839 }); 21840 }); 21841var dtwrks$elm_book$ElmBook$StatefulOptions$onDarkModeChange = F2( 21842 function (onDarkModeChange_, options) { 21843 return _Utils_update( 21844 options, 21845 {onDarkModeChange: onDarkModeChange_}); 21846 }); 21847var dtwrks$elm_book$ElmBook$ThemeOptions$subtitle = F2( 21848 function (subtitle_, theme) { 21849 return _Utils_update( 21850 theme, 21851 { 21852 subtitle: elm$core$Maybe$Just(subtitle_) 21853 }); 21854 }); 21855var dtwrks$elm_book$ElmBook$Actions$logAction = function (action) { 21856 return A2(dtwrks$elm_book$ElmBook$Internal$Msg$LogAction, '', action); 21857}; 21858var dtwrks$elm_book$ElmBook$Internal$Chapter$ChapterBuilder = function (a) { 21859 return {$: 'ChapterBuilder', a: a}; 21860}; 21861var dtwrks$elm_book$ElmBook$Chapter$chapter = function (title) { 21862 return dtwrks$elm_book$ElmBook$Internal$Chapter$ChapterBuilder( 21863 { 21864 body: '', 21865 chapterOptions: dtwrks$elm_book$ElmBook$Internal$Chapter$defaultOverrides, 21866 componentList: _List_Nil, 21867 componentOptions: dtwrks$elm_book$ElmBook$Internal$ComponentOptions$defaultOverrides, 21868 groupTitle: elm$core$Maybe$Nothing, 21869 init: elm$core$Maybe$Nothing, 21870 internal: true, 21871 title: title, 21872 url: '/' + dtwrks$elm_book$ElmBook$Internal$Helpers$toSlug(title) 21873 }); 21874}; 21875var dtwrks$elm_book$ElmBook$Chapter$renderWithComponentList = F2( 21876 function (body, _n0) { 21877 var builder = _n0.a; 21878 return dtwrks$elm_book$ElmBook$Internal$Chapter$Chapter( 21879 _Utils_update( 21880 builder, 21881 {body: builder.body + (body + '\n<component-list />')})); 21882 }); 21883var dtwrks$elm_book$ElmBook$Internal$Chapter$ChapterComponentViewStateless = function (a) { 21884 return {$: 'ChapterComponentViewStateless', a: a}; 21885}; 21886var dtwrks$elm_book$ElmBook$Chapter$fromTuple = function (_n0) { 21887 var label = _n0.a; 21888 var view_ = _n0.b; 21889 return { 21890 label: label, 21891 view: dtwrks$elm_book$ElmBook$Internal$Chapter$ChapterComponentViewStateless(view_) 21892 }; 21893}; 21894var dtwrks$elm_book$ElmBook$Chapter$withComponentList = F2( 21895 function (componentList, _n0) { 21896 var builder = _n0.a; 21897 return dtwrks$elm_book$ElmBook$Internal$Chapter$ChapterBuilder( 21898 _Utils_update( 21899 builder, 21900 { 21901 componentList: _Utils_ap( 21902 A2(elm$core$List$map, dtwrks$elm_book$ElmBook$Chapter$fromTuple, componentList), 21903 builder.componentList) 21904 })); 21905 }); 21906var dtwrks$elm_book$ElmBook$UI$Docs$ActionLog$docs = A2( 21907 dtwrks$elm_book$ElmBook$Chapter$renderWithComponentList, 21908 '\nThe UI for action logs is something I want to spend more time on.\n\nFor example, why do we even need a blank bar at the bottom of the book unless we actually log something? We can do some fun stuff with animation so it\'s more entertaining to see actions happen on ElmBooks. Lots of opportunities here!\n\nAnyway⦠it works for now! ð\n', 21909 A2( 21910 dtwrks$elm_book$ElmBook$Chapter$withComponentList, 21911 _List_fromArray( 21912 [ 21913 _Utils_Tuple2('Empty', dtwrks$elm_book$ElmBook$UI$ActionLog$previewEmpty), 21914 _Utils_Tuple2( 21915 'Preview', 21916 dtwrks$elm_book$ElmBook$UI$ActionLog$preview( 21917 { 21918 lastAction: _Utils_Tuple2('Context', 'Action'), 21919 lastActionIndex: 0, 21920 onClick: dtwrks$elm_book$ElmBook$Actions$logAction('onClick') 21921 })), 21922 _Utils_Tuple2( 21923 'List', 21924 dtwrks$elm_book$ElmBook$UI$ActionLog$list( 21925 A2( 21926 elm$core$List$map, 21927 function (index) { 21928 return _Utils_Tuple2( 21929 'Context', 21930 'Action number ' + elm$core$String$fromInt(index)); 21931 }, 21932 A2(elm$core$List$range, 1, 10)))) 21933 ]), 21934 dtwrks$elm_book$ElmBook$Chapter$chapter('ActionLog'))); 21935var dtwrks$elm_book$ElmBook$Chapter$render = F2( 21936 function (body, _n0) { 21937 var builder = _n0.a; 21938 return dtwrks$elm_book$ElmBook$Internal$Chapter$Chapter( 21939 _Utils_update( 21940 builder, 21941 { 21942 body: _Utils_ap(builder.body, body) 21943 })); 21944 }); 21945var dtwrks$elm_book$ElmBook$Internal$Chapter$ChapterComponentViewStateful = function (a) { 21946 return {$: 'ChapterComponentViewStateful', a: a}; 21947}; 21948var dtwrks$elm_book$ElmBook$Chapter$withStatefulComponent = F2( 21949 function (view_, _n0) { 21950 var builder = _n0.a; 21951 return dtwrks$elm_book$ElmBook$Internal$Chapter$ChapterBuilder( 21952 _Utils_update( 21953 builder, 21954 { 21955 componentList: A2( 21956 elm$core$List$cons, 21957 { 21958 label: '', 21959 view: dtwrks$elm_book$ElmBook$Internal$Chapter$ChapterComponentViewStateful(view_) 21960 }, 21961 builder.componentList) 21962 })); 21963 }); 21964var dtwrks$elm_book$ElmBook$UI$Docs$DarkModeComponents$docs = A2( 21965 dtwrks$elm_book$ElmBook$Chapter$render, 21966 '\nIf want to showcase your UI components and their dark mode variants in all their glory, take a look at the `onDarkModeChange` helper. Try changing the dark/light mode and look at the component below:\n\n<component />\n\nHere is how it works:\n\n```elm\n type alias SharedState =\n { darkMode : Bool\n }\n\n\n initialState : SharedState\n initialState =\n { darkMode = False\n }\n\n\n book : Book SharedState\n book "MyApp"\n |> withStatefulOptions\n [ ElmBook.StatefulOptions.initialState\n initialState\n , ElmBook.StatefulOptions.onDarkModeChange\n (\\darkMode state ->\n { state | darkMode = darkMode }\n )\n ]\n |> withChapters []\n\n\n darkModeChapter : Chapter SharedState\n darkModeChapter =\n chapter "Dark Mode"\n |>
21966 renderStatefulComponent (\n \\{ darkMode } ->\n if darkMode then\n text "You found me!"\n else\n text "There is something hidden in the darkâ¦"\n )\n```\n\n', 21967 A2( 21968 dtwrks$elm_book$ElmBook$Chapter$withStatefulComponent, 21969 function (_n0) { 21970 var darkMode = _n0.darkMode; 21971 return A2( 21972 elm$html$Html$div, 21973 _List_fromArray( 21974 [ 21975 elm$html$Html$Attributes$class('elm-book elm-book-serif') 21976 ]), 21977 _List_fromArray( 21978 [ 21979 darkMode ? A2( 21980 elm$html$Html$div, 21981 _List_Nil, 21982 _List_fromArray( 21983 [ 21984 A2( 21985 elm$html$Html$p, 21986 _List_fromArray( 21987 [ 21988 A2(elm$html$Html$Attributes$style, 'color', '#fff') 21989 ]), 21990 _List_fromArray( 21991 [ 21992 elm$html$Html$text('You found me!') 21993 ])) 21994 ])) : A2( 21995 elm$html$Html$p, 21996 _List_fromArray( 21997 [ 21998 A2(elm$html$Html$Attributes$style, 'color', '#999') 21999 ]), 22000 _List_fromArray( 22001 [ 22002 elm$html$Html$text('There is something hidden in the darkâ¦') 22003 ])) 22004 ])); 22005 }, 22006 dtwrks$elm_book$ElmBook$Chapter$chapter('Dark Components'))); 22007var dtwrks$elm_book$ElmBook$UI$Docs$Guides$Books$docs = A2( 22008 dtwrks$elm_book$ElmBook$Chapter$render, 22009 '\nAfter creating a few chapters, it\'s time to put your book together.\n\n```elm\nmodule MyBook exposing (main)\n\n\nimport ElmBook exposing (..)\nimport FirstChapter exposing (firstChapter)\nimport SecondChapter exposing (secondChapter)\n\n\nmain : Book ()\nmain =\n book "My Book"\n |> withChapters\n [ firstChapter\n , secondChapter\n ]\n```\n\n---\n\n## Grouping Chapters\n\nLet\'s make it more organized by grouping chapters into guides and component documentations.\n\n```elm\nmodule MyBook exposing (main)\n\n\nimport ElmBook exposing (..)\n...\n\nmain : Book ()\nmain =\n book "My Book"\n |> withChapterGroups\n [ ( "Guides"\n , [ gettingStarted\n , secondGuide\n ]\n )\n , ( "Components"\n , [ buttons\n , forms\n , charts\n ]\n )\n ]\n```\n\n---\n\n## Customizing your book\n\nThere are a few ways to customize your book:\n\n- Make it interactive (we call those "stateful" books). Check the ["Stateful Chapters"](/guides/stateful-chapters) guide for more info.\n- Customize its visual features (colors, header, ...). See the ["Theming"](/guides/theming) guide for more details.\n- Customize the default visual features for components (hide component labels, make them full width, remove the card wrappers, ...). [Check the docs](https://package.elm-lang.org/packages/dtwrks/elm-book/latest/).\n\nEach of those are accomplished using optional "attribute" functions. Similar to what you would see when using `Html.Attribute`. Take a look:\n\n```elm\nmodule MyBook exposing (main)\n\n\nimport ElmBook exposing (..)\nimport ElmBook.StatefulOptions\nimport ElmBook.Theme\nimport ElmBook.Component\n...\n\n\nmain : Book SharedState\nmain =\n book "My Book"\n |> withStatefulOptions\n [ ElmBook.StatefulOptions.globals [ resetCss ]\n , ElmBook.StatefulOptions.initialState initialSharedState\n ]\n |> withThemeOptions\n [ ElmBook.ThemeOptions.background "yellow"\n , ElmBook.ThemeOptions.subtitle "Guides & Stuff"\n ]\n |> withComponentOptions\n [ ElmBook.Component.background "black"\n ]\n |> withChapters\n [ ... ]\n```\n\n', 22010 dtwrks$elm_book$ElmBook$Chapter$chapter('Books')); 22011var dtwrks$elm_book$ElmBook$UI$Docs$Guides$BuiltinServer$docs = A2( 22012 dtwrks$elm_book$ElmBook$Chapter$render, 22013 '\nElmBook is just pure Elm. You can use whatever setup you want to build it.\n\nHowever, we also provide a zero-config dev server to make things easier. If you want to use it, just install `elm-book` as an npm devDependency then runâ¦\n\n```\nnpx elm-book {MyBookModule}.elm\n```\n\nâ¦and you should see your brand new Book running in your browser!\n\n---\n\n## ð¤«\n\nI\'ll let you in on a secret⦠this is just an instance of [elm-live](https://www.elm-live.com) with a few predefined arguments passed in! So any additional arguments you pass to this command will work exactly like it would with elm-live, so\n\n```bash\nnpx elm-book {MyBookModule}.elm --port=3000 --dir=./static\n```\n\nwould start your development server on port 3000 with static files from the `./static` folder. \n', 22014 dtwrks$elm_book$ElmBook$Chapter$chapter('Development Server'));
22015var dtwrks$elm_book$ElmBook$UI$Docs$Guides$Chapters$docs = A2( 22016 dtwrks$elm_book$ElmBook$Chapter$render, 22017 '\nChapters are what books are made of. They can be library guides, component examples, design tokens showcases, you name it.\n\nCreating them is quite simple, take a look at one used to display different variants of a Button component:\n\n```elm\nmodule UI.Button exposing (view, docs)\n\n\nimport ElmBook.Actions exposing (logAction)\nimport ElmBook.Chapter exposing (..)\nimport Html exposing (..)\nimport Html.Attributes exposing (..)\nimport Html.Events exposing (onClick)\n\n\nview :\n { label : String\n , disabled : Bool\n , onClick : msg\n }\n -> Html msg\nview props =\n button\n [ class "px-8 py-3 rounded-md bg-indigo-200"\n , disabled props.disabled\n , onClick props.onClick\n ]\n [ text props.label ]\n\n\ndocs : Chapter x\ndocs =\n let\n props =\n { label = "Click me!"\n , disabled = False\n , onClick = logAction "Clicked button!"\n }\n in\n chapter "Buttons"\n |> renderComponentList\n [ ( "Default", view props )\n , ( "Disabled", view { props | disabled = True } )\n ]\n\n```\n\n**Tip:** Since Elm has amazing [dead code elimination](https://elm-lang.org/news/small-assets-without-the-headache#dead-code-elimination) you don\'t need to worry about splitting your component examples from your source code. They can live side by side making your development experience much better!\n\n---\n\n## Markdown and embedded components\n\nI dare you to name one single thing that doesn\'t get more interesting with some markdown sprinkled on it. Yeah, you can\'t! â¦right?\n\nSo lets add some markdown to our chapter and directly embed our components in it!\n\n\n```elm\nmodule UI.Button exposing (view, docs)\n\n\nimport ElmBook.Actions exposing (logAction)\nimport ElmBook.Chapter exposing (..)\nimport Html exposing (..)\nimport Html.Attributes exposing (..)\nimport Html.Events exposing (onClick)\n\n\nview :\n { label : String\n , disabled : Bool\n , onClick : msg\n }\n -> Html msg\nview props =\n button\n [ class "px-8 py-3 rounded-md bg-indigo-200"\n , disabled props.disabled\n , onClick props.onClick\n ]\n [ text props.label ]\n\n\ndocs : Chapter x\ndocs =\n let\n props =\n { label = "Click me!"\n , disabled = False\n , onClick = logAction "Clicked button!"\n }\n in\n chapter "Buttons"\n |> withComponentList\n [ ( "Default", view props )\n , ( "Disabled", view { props | disabled = True } )\n ]\n |> render \"\"\"\nButtons are pretty amazing, right? You can click them and stuff.\n\nTry clicking on this one:\n\n<component with-label="Default" />\n\nThey can also be disabled! Unbelievable.\n\n<component with-label="Disabled" />\n\"\"\"\n```\n\n---\n\nIf you want to create interactive chapters, take a look at the ["Stateful Chapters"](/guides/stateful-chapters) guide to know more.\n\nThis is not the only thing you can do with Chapters though! You can customize how each component is displayed and more. Take a look at [the docs](https://package.elm-lang.org/packages/dtwrks/elm-book/latest/) for the details.\n\n', 22018 dtwrks$elm_book$ElmBook$Chapter$chapter('Chapters')); 22019var dtwrks$elm_book$ElmBook$UI$Docs$Guides$Interop$docs = A2( 22020 dtwrks$elm_book$ElmBook$Chapter$render, 22021 '\nWhen building our UIs with Elm, we\'re lucky to have such awesome libraries to choose from such as [Elm-UI](https://package.elm-lang.org/packages/mdgriffith/elm-ui/latest/), [Elm-CSS](https://package.elm-lang.org/packages/rtfeldman/elm-css/latest/), [Elm-Tailwind-Modules](https://package.elm-lang.org/packages/matheus23/elm-default-tailwind-modules/latest/), etc. So ElmBook is obviously compatible with all of them!\n\n## Package approach\n\nSince working with Elm-UI and Elm-CSS is so common we also provide two packages that can be used alongside ElmBook to make this process even simpler:\n\n- [elm-book-interop-elm-ui](https://package.elm-lang.org/packages/dtwrks/elm-book-interop-elm-ui/latest/)\n- [elm-book-interop-elm-css](https://package.elm-lang.org/packages/dtwrks/elm-book-interop-elm-css/latest/)\n\n## Do it yourself\n\nWe enable you to work with any custom elements via the `ElmBook.Custom` module. Lets see how we would integrate Elm-UI and ElmBook ourselves:\n\n```elm\nmodule ElmBook.ElmUI exposing (Book, Chapter, book)\n\nimport Element exposing (Element, layout)\nimport ElmBook.Custom exposing (customBook)\n\n\ntype alias Html state =\n Element (ElmBook.Custom.Msg state)\n\n\ntype alias BookBuilder state =\n ElmBook.Custom.BookBuilder state (Html state)\n\n\ntype alias Book state =\n ElmBook.Custom.Book state (Html state)\n\n\ntype alias Chapter state =\n ElmBook.Custom.Chapter state (Html state)\n\n\nbook : String -> BookBuilder state\nbook =\n customBook (layout [])\n```\n\nAfter that you would only need to use this custom `book` function and `Book` type when creating a new book and the custom `Chapter` type when creating a new chapter. Simple as that.\n\n', 22022 dtwrks$elm_book$ElmBook$Chapter$chapter('Elm-UI and Elm-CSS')); 22023var dtwrks$elm_book$ElmBook$Actions$logActionWith = F3( 22024 function (toString, action, value) { 22025 return A2(
22026 dtwrks$elm_book$ElmBook$Internal$Msg$LogAction, 22027 '', 22028 action + (': ' + toString(value))); 22029 }); 22030var dtwrks$elm_book$ElmBook$Actions$logActionWithString = dtwrks$elm_book$ElmBook$Actions$logActionWith(elm$core$Basics$identity); 22031var dtwrks$elm_book$ElmBook$Chapter$withComponentOptions = F2( 22032 function (attributes, _n0) { 22033 var config = _n0.a; 22034 return dtwrks$elm_book$ElmBook$Internal$Chapter$ChapterBuilder( 22035 _Utils_update( 22036 config, 22037 { 22038 componentOptions: A2(dtwrks$elm_book$ElmBook$Internal$Helpers$applyAttributes, attributes, config.componentOptions) 22039 })); 22040 }); 22041var dtwrks$elm_book$ElmBook$ComponentOptions$hiddenLabel = F2( 22042 function (hiddenLabel_, _n0) { 22043 var settings = _n0.a; 22044 return dtwrks$elm_book$ElmBook$Internal$ComponentOptions$ComponentOptions( 22045 _Utils_update( 22046 settings, 22047 { 22048 hiddenLabel: elm$core$Maybe$Just(hiddenLabel_) 22049 })); 22050 }); 22051var dtwrks$elm_book$ElmBook$UI$Docs$Guides$LoggingActions$docs = A2( 22052 dtwrks$elm_book$ElmBook$Chapter$render, 22053 '\nWhen creating something like a UI catalogue it\'s often useful to display how each component reacts to user interaction.\n\nFor instance, a custom button might receive an `onClick` message. But is that message actually sent when the user clicks on it? And what message should I use on my docs since the button can be used anywhere?\n\n---\n\n### Introducing `logAction`\n\nElmBook provides this function to help on those scenarios. It receives a label and it will print out your message (with it\'s context) whenever it is called. Try it out below:\n\n<component with-label="button" />\n\n```elm\nimport ElmBook.Actions exposing (logAction)\n\n\nchapter "button"\n |> withComponent (\n myButton {\n onClick = logAction "Clicked button!"\n }\n )\n```\n\n---\n\n### What about actions with parameters?\n\nSometimes your actions might not be as simple a button click â maybe your component sends some information along with the message?\n\nLet\'s try it out with a text input â it sends out a message with the string the user typed in:\n\n<component with-label="input" />\n\n```elm\nimport ElmBook.Actions exposing (logActionWithString)\n\n\nchapter "button"\n |> withComponent (\n myInput {\n onInput =\n logActionWithString\n "Received input with some value"\n }\n )\n```\n\n---\n\n### Logging url changes?\n\nIt\'s a real pain when we want to showcase a navigation link and when we click on it we\'re suddenly on some random page. This is why we have a somewhat hidden feature â any route changes that starts with `/logAction` will actually just log the url change intent!\n\nTry it here! [/logAction/external-url](/logAction/external-url)\n\n---\n\nThere are other `logAction*` functions available. Check out the [docs](https://package.elm-lang.org/packages/dtwrks/elm-book/latest/)!\n\n', 22054 A2( 22055 dtwrks$elm_book$ElmBook$Chapter$withComponentList, 22056 _List_fromArray( 22057 [ 22058 _Utils_Tuple2( 22059 'button', 22060 A2( 22061 elm$html$Html$div, 22062 _List_Nil, 22063 _List_fromArray( 22064 [ 22065 dtwrks$elm_book$ElmBook$UI$Helpers$css_('\n .logging-actions-button {\n padding: 8px 20px;\n border: 2px solid rgba(0,135,207,1);\n border-radius: 2px;\n background-color: rgba(0,135,207,0.5);\n color: white;\n font-size: 16px;\n cursor: pointer;\n }\n .logging-actions-button:hover {\n opacity: 0.8;\n }\n .logging-actions-button:active {\n opacity: 0.6;\n }\n '), 22066 A2( 22067 elm$html$Html$button, 22068 _List_fromArray( 22069 [ 22070 elm$html$Html$Attributes$class('logging-actions-button'), 22071 elm$html$Html$Events$onClick( 22072 dtwrks$elm_book$ElmBook$Actions$logAction('Clicked button!')) 22073 ]), 22074 _List_fromArray( 22075 [ 22076 elm$html$Html$text('Click me') 22077 ])) 22078 ]))), 22079 _Utils_Tuple2( 22080 'input', 22081 A2( 22082 elm$html$Html$div, 22083 _List_Nil, 22084 _List_fromArray( 22085 [ 22086 dtwrks$elm_book$ElmBook$UI$Helpers$css_('\n .logging-actions-input {\n padding: 8px 20px;\n border: 2px solid rgba(0,135,207,1);\n border-radius: 2px;\n background-color: white;\n font-size: 16px;\n cursor: pointer;\n }\n '), 22087 A2( 22088 elm$html$Html$input, 22089 _List_fromArray( 22090 [ 22091 elm$html$Html$Attributes$class('logging-actions-input'), 22092 elm$html$Html$Events$onInput( 22093 dtwrks$elm_book$ElmBook$Actions$logActionWithString('Received input with some value')), 22094 elm$html$Html$Attributes$placeholder('Type somethingâ¦') 22095 ]), 22096 _List_Nil) 22097 ]))) 22098 ]), 22099 A2(
22100 dtwrks$elm_book$ElmBook$Chapter$withComponentOptions, 22101 _List_fromArray( 22102 [ 22103 dtwrks$elm_book$ElmBook$ComponentOptions$hiddenLabel(true) 22104 ]), 22105 dtwrks$elm_book$ElmBook$Chapter$chapter('Logging Actions')))); 22106var dtwrks$elm_book$ElmBook$UI$Docs$Guides$StatefulChapters$docs = A2( 22107 dtwrks$elm_book$ElmBook$Chapter$render, 22108 '\nSometimes it\'s useful to display a complex component so people can understand how it works on an isolated environment, not only see their possible static states.\n\nBut how to accomplish this with Elm\'s static typing? Simply provide your own custom model that can be used and updated by your own components across all your chapters.\n\n---\n\n## The Shared Model\n\nEach book has one "shared state" and it\'s your job to slice in the way that makes sense for your book.\n\nLets say we have two stateful chapters, one with an input and the other one with a counter.\n\nLet\'s first define a simple model for the `InputChapter`:\n\n```elm\nmodule InputChapter exposing (Model, init)\n\n\ntype alias Model =\n { value : String\n }\n\n\ninit : Model\ninit =\n { value = ""\n }\n```\n\nThen another even simpler one for the `CounterChapter`:\n\n```elm\nmodule CounterChapter exposing (Model, init)\n\n\ntype alias Model = Int\n\n\ninit : Model\ninit = 0\n```\n\nThen, on your book, you put everything together like this:\n\n```elm\nmodule Book exposing (main)\n\n\nimport ElmBook exposing (..)\nimport ElmBook.StatefulOptions\nimport CounterChapter\nimport InputChapter\n\n\ntype alias SharedState =\n { inputModel : InputChapter.Model\n , counterModel : CounterChapter.Model\n }\n\n\ninitialState : SharedState\ninitialState =\n { inputModel = InputChapter.init\n , counterModel = CounterChapter.init\n }\n\n\nmain : Book SharedState\nmain =\n book "Stateful Book"\n |> withStatefulOptions\n [ ElmBook.StatefulOptions.initialState initialState\n ]\n |> withChapters [\n CounterChapter.chapter,\n InputChapter.chapter\n ]\n```\n\n---\n\n## Using the Shared State\n\nBy now we have our shared state properly setup, but how can we actually use that on our chapters? Let\'s see!\n\nYou need to tell your chapter where its state is located in your book. You also need to tell it how to update that state. It\'s pretty simple:\n\n```elm\nmodule CounterChapter exposing (Model, init, chapter)\n\n\nimport ElmBook.Chapter exposing (Chapter, chapter, renderStatefulComponent)\nimport ElmBook.Actions exposing (updateState)\n\n\ntype alias Model = Int\n\n\ntype alias SharedState x\n = { x | counterModel : Model }\n\n\nupdateSharedState : SharedState x -> SharedState x\nupdateSharedState x =\n { x | counterModel = x.counterModel + 1 }\n\n\nchapter : Chapter (SharedState x)\nchapter =\n chapter "InputChapter"\n |> renderStatefulComponent (\n \\{ counterModel } ->\n myCounter\n { value = counterModel.value\n , onIncrease = updateState updateSharedState\n }\n )\n```\n\nThe same can be done for the InputChapter. But note that the `updateState` is replaced with `updateStateWith` now that it receives one parameter.\n\n```elm\nmodule InputChapter exposing (Model, init, chapter)\n\n\nimport ElmBook.Chapter exposing (Chapter, chapter, renderStatefulComponent)\nimport ElmBook.Actions exposing (updateStateWith)\n\n\ntype alias Model = { value : String }\n\n\ntype alias SharedState x\n = { x | inputModel : Model }\n\n\nupdateSharedState : Int -> SharedState x -> SharedState x\nupdateSharedState value x =\n { x | inputModel = { value = value } }\n\n\nchapter : ElmBook.Chapter (SharedState x)\nchapter =\n ElmBook.chapter "InputChapter"\n |> withStatefulComponent (\n \\{ inputModel } ->\n myInput\n { value = inputModel.value\n , onInput = updateStateWith updateSharedState\n }\n )\n```\n\n---\n\n### Nested Elm Architecture\n\nSometimes we need to handle components with their own msg, model and update. Well â turns out it can be pretty simple to use that on your elm-book!\n\n```elm\nmodule InputChapter exposing (Model, init, chapter)\n\n\nimport ElmBook.Chapter exposing (Chapter, chapter, renderStatefulComponent)\nimport ElmBook.Actions exposing (mapUpdate)\n\n\n-- component\n\n\ntype alias Model = { value =
22108String }\n\n\ntype Msg =\n UpdateValue String\n\n\nupdate : Msg -> Model -> Model\nupdate msg model =\n case msg of\n UpdateValue value ->\n { value = value }\n\n\nview : Model -> Html Msg\nview model =\n input [ value model.value, onInput UpdateValue ] []\n\n\n-- elm-book\n\n\nchapter : ElmBook.Chapter { x | inputModel : Model }\nchapter =\n ElmBook.chapter "InputChapter"\n |> renderStatefulComponent (\n \\{ inputModel } ->\n view inputModel\n |> Html.map (\n mapUpdate\n { toState = \\state inputModel_ -> { state | inputModel = inputModel_ }\n , fromState = \\state -> state.inputModel\n , update = update\n }\n )\n )\n```\n\n\n', 22109 dtwrks$elm_book$ElmBook$Chapter$chapter('Stateful Chapters')); 22110var dtwrks$elm_book$ElmBook$Chapter$fromTupleStateful = function (_n0) { 22111 var label = _n0.a; 22112 var view_ = _n0.b; 22113 return { 22114 label: label, 22115 view: dtwrks$elm_book$ElmBook$Internal$Chapter$ChapterComponentViewStateful(view_) 22116 }; 22117}; 22118var dtwrks$elm_book$ElmBook$Chapter$withStatefulComponentList = F2( 22119 function (componentList, _n0) { 22120 var builder = _n0.a; 22121 return dtwrks$elm_book$ElmBook$Internal$Chapter$ChapterBuilder( 22122 _Utils_update( 22123 builder, 22124 { 22125 componentList: _Utils_ap( 22126 A2(elm$core$List$map, dtwrks$elm_book$ElmBook$Chapter$fromTupleStateful, componentList), 22127 builder.componentList) 22128 })); 22129 }); 22130var dtwrks$elm_book$ElmBook$ComponentOptions$background = F2( 22131 function (background_, _n0) { 22132 var settings = _n0.a; 22133 return dtwrks$elm_book$ElmBook$Internal$ComponentOptions$ComponentOptions( 22134 _Utils_update( 22135 settings, 22136 { 22137 background: elm$core$Maybe$Just(background_) 22138 })); 22139 }); 22140var dtwrks$elm_book$ElmBook$ThemeOptions$header = F2( 22141 function (header_, theme) { 22142 return _Utils_update( 22143 theme, 22144 { 22145 header: elm$core$Maybe$Just(header_) 22146 }); 22147 }); 22148var dtwrks$elm_book$ElmBook$ThemeOptions$logo = F2( 22149 function (logo_, theme) { 22150 return _Utils_update( 22151 theme, 22152 { 22153 logo: elm$core$Maybe$Just(logo_) 22154 }); 22155 }); 22156var dtwrks$elm_book$ElmBook$Internal$Msg$UpdateState = function (a) { 22157 return {$: 'UpdateState', a: a}; 22158}; 22159var dtwrks$elm_book$ElmBook$Actions$updateStateWithCmdWith = function (fn) { 22160 return A2(elm$core$Basics$composeL, dtwrks$elm_book$ElmBook$Internal$Msg$UpdateState, fn); 22161}; 22162var dtwrks$elm_book$ElmBook$UI$ThemeGenerator$UpdateAccent_ = function (a) { 22163 return {$: 'UpdateAccent_', a: a}; 22164};
22165var dtwrks$elm_book$ElmBook$UI$ThemeGenerator$UpdateBackgroundEnd = function (a) { 22166 return {$: 'UpdateBackgroundEnd', a: a}; 22167}; 22168var dtwrks$elm_book$ElmBook$UI$ThemeGenerator$UpdateBackgroundStart = function (a) { 22169 return {$: 'UpdateBackgroundStart', a: a}; 22170}; 22171var dtwrks$elm_book$ElmBook$UI$ThemeGenerator$UpdateNavAccentHighlight_ = function (a) { 22172 return {$: 'UpdateNavAccentHighlight_', a: a}; 22173}; 22174var dtwrks$elm_book$ElmBook$UI$ThemeGenerator$UpdateNavAccent_ = function (a) { 22175 return {$: 'UpdateNavAccent_', a: a}; 22176}; 22177var dtwrks$elm_book$ElmBook$UI$ThemeGenerator$UpdateNavBackground_ = function (a) { 22178 return {$: 'UpdateNavBackground_', a: a}; 22179}; 22180var dtwrks$elm_book$ElmBook$Internal$Msg$SetThemeAccent = function (a) { 22181 return {$: 'SetThemeAccent', a: a}; 22182}; 22183var dtwrks$elm_book$ElmBook$Internal$Msg$SetThemeBackgroundGradient = F2( 22184 function (a, b) { 22185 return {$: 'SetThemeBackgroundGradient', a: a, b: b}; 22186 }); 22187var dtwrks$elm_book$ElmBook$Internal$Msg$SetThemeNavAccent = function (a) { 22188 return {$: 'SetThemeNavAccent', a: a}; 22189}; 22190var dtwrks$elm_book$ElmBook$Internal$Msg$SetThemeNavAccentHighlight = function (a) { 22191 return {$: 'SetThemeNavAccentHighlight', a: a}; 22192}; 22193var dtwrks$elm_book$ElmBook$Internal$Msg$SetThemeNavBackground = function (a) { 22194 return {$: 'SetThemeNavBackground', a: a}; 22195}; 22196var dtwrks$elm_book$ElmBook$UI$ThemeGenerator$update = F2( 22197 function (msg, sharedState) { 22198 var model = sharedState.theming; 22199 var _n0 = function () { 22200 switch (msg.$) {
22201 case 'UpdateBackgroundStart': 22202 var v = msg.a; 22203 return _Utils_Tuple2( 22204 _Utils_update( 22205 model, 22206 {backgroundStart: v}), 22207 A2( 22208 elm$core$Task$perform, 22209 function (_n2) { 22210 return A2(dtwrks$elm_book$ElmBook$Internal$Msg$SetThemeBackgroundGradient, v, model.backgroundEnd); 22211 }, 22212 elm$core$Task$succeed(_Utils_Tuple0))); 22213 case 'UpdateBackgroundEnd': 22214 var v = msg.a; 22215 return _Utils_Tuple2( 22216 _Utils_update( 22217 model, 22218 {backgroundEnd: v}), 22219 A2( 22220 elm$core$Task$perform, 22221 function (_n3) { 22222 return A2(dtwrks$elm_book$ElmBook$Internal$Msg$SetThemeBackgroundGradient, model.backgroundStart, v); 22223 }, 22224 elm$core$Task$succeed(_Utils_Tuple0))); 22225 case 'UpdateAccent_': 22226 var v = msg.a; 22227 return _Utils_Tuple2( 22228 _Utils_update( 22229 model, 22230 {accent: v}), 22231 A2( 22232 elm$core$Task$perform, 22233 function (_n4) { 22234 return dtwrks$elm_book$ElmBook$Internal$Msg$SetThemeAccent(v); 22235 }, 22236 elm$core$Task$succeed(_Utils_Tuple0))); 22237 case 'UpdateNavBackground_': 22238 var v = msg.a; 22239 return _Utils_Tuple2( 22240 _Utils_update( 22241 model, 22242 {navBackground: v}), 22243 A2( 22244 elm$core$Task$perform, 22245 function (_n5) { 22246 return dtwrks$elm_book$ElmBook$Internal$Msg$SetThemeNavBackground(v); 22247 }, 22248 elm$core$Task$succeed(_Utils_Tuple0))); 22249 case 'UpdateNavAccent_': 22250 var v = msg.a; 22251 return _Utils_Tuple2( 22252 _Utils_update( 22253 model, 22254 {navAccent: v}), 22255 A2( 22256 elm$core$Task$perform, 22257 function (_n6) { 22258 return dtwrks$elm_book$ElmBook$Internal$Msg$SetThemeNavAccent(v); 22259 }, 22260 elm$core$Task$succeed(_Utils_Tuple0))); 22261 default: 22262 var v = msg.a; 22263 return _Utils_Tuple2( 22264 _Utils_update( 22265 model, 22266 {navAccentHighlight: v}), 22267 A2( 22268 elm$core$Task$perform, 22269 function (_n7) { 22270 return dtwrks$elm_book$ElmBook$Internal$Msg$SetThemeNavAccentHighlight(v); 22271 }, 22272 elm$core$Task$succeed(_Utils_Tuple0))); 22273 } 22274 }(); 22275 var model_ = _n0.a; 22276 var cmd = _n0.b; 22277 return _Utils_Tuple2( 22278 _Utils_update( 22279 sharedState, 22280 {theming: model_}), 22281 cmd); 22282 }); 22283var elm$html$Html$label = _VirtualDom_node('label'); 22284var dtwrks$elm_book$ElmBook$UI$ThemeGenerator$view = function (_n0) { 22285 var theming = _n0.theming; 22286 return A2( 22287 elm$html$Html$div, 22288 _List_fromArray( 22289 [ 22290 elm$html$Html$Attributes$class('elm-book-theme-builder') 22291 ]), 22292 _List_fromArray( 22293 [ 22294 dtwrks$elm_book$ElmBook$UI$Helpers$css_('\n .elm-book-theme-builder {\n background-color: #fafafa;\n border-radius: 4px;\n border: 1px solid #eaeaea;\n color: #3a3a3a;\n }\n\n .elm-book-theme-builder__field {\n position: relative;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 20px 8px 28px;\n }\n .elm-book-theme-builder__field:nth-child(2n) {\n background-color: #f5f5f5;\n }\n .elm-book-theme-sample {\n position: absolute;\n width: 6px;\n top: 1px;\n left: 1px;\n bottom: 1px;\n }\n .elm-book-theme-builder__label {\n line-height: 1em;\n padding-right: 4px;\n word-break: break-word;\n }\n .elm-book-theme-builder__label__title {\n font-weight: bold;\n font-size: 14px;\n letter-spacing: 1px;\n margin: 0;\n padding: 0;\n }\n .elm-book-theme-builder__label__subtitle {\n font-size: 12px;\n margin: 0;\n padding-top: 4px;\n color: #999;\n }\n .elm-book-theme-builder__picker-wrapper {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n }\n .elm-book-theme-builder__value {\n font-size: 14px;\n padding-right: 12px;\n color: #999;\n line-height: 1em;\n }\n .elm-book-theme-builder__picker {\n width: 20p
22294x;\n height: 20px;\n border-radius: 100%;\n border: none;\n background-color: #e0e0e0;\n }\n ' + (dtwrks$elm_book$ElmBook$UI$Helpers$mediaMobile + ' {\n .elm-book-theme-builder__field {\n flex-direction: column-reverse;\n align-items: flex-start;\n }\n .elm-book-theme-builder__picker-wrapper {\n flex-direction: row-reverse;\n align-items: center;\n padding-bottom: 4px;\n }\n .elm-book-theme-builder__value {\n padding-right: 0;\n padding-left: 8px;\n font-size: 12px;\n }\n }\n ')), 22295 A2( 22296 elm$html$Html$div, 22297 _List_Nil, 22298 A2( 22299 elm$core$List$map, 22300 function (_n1) { 22301 var _n2 = _n1.a; 22302 var title = _n2.a; 22303 var subtitle = _n2.b; 22304 var value_ = _n1.b; 22305 var msg_ = _n1.c; 22306 return A2( 22307 elm$html$Html$label, 22308 _List_fromArray( 22309 [ 22310 elm$html$Html$Attributes$class('elm-book-theme-builder__field') 22311 ]), 22312 _List_fromArray( 22313 [ 22314 A2( 22315 elm$html$Html$div, 22316 _List_fromArray( 22317 [ 22318 elm$html$Html$Attributes$class('elm-book-theme-sample'), 22319 A2(elm$html$Html$Attributes$style, 'background-color', value_) 22320 ]), 22321 _List_Nil), 22322 A2( 22323 elm$html$Html$div, 22324 _List_fromArray( 22325 [ 22326 elm$html$Html$Attributes$class('elm-book-theme-builder__label') 22327 ]), 22328 _List_fromArray( 22329 [ 22330 A2( 22331 elm$html$Html$p, 22332 _List_fromArray( 22333 [ 22334 elm$html$Html$Attributes$class('elm-book-theme-builder__label__title elm-book-sans') 22335 ]), 22336 _List_fromArray( 22337 [ 22338 elm$html$Html$text(title) 22339 ])), 22340 A2( 22341 elm$html$Html$p, 22342 _List_fromArray( 22343 [ 22344 elm$html$Html$Attributes$class('elm-book-theme-builder__label__subtitle elm-book-monospace') 22345 ]), 22346 _List_fromArray( 22347 [ 22348 elm$html$Html$text(subtitle) 22349 ])) 22350 ])), 22351 A2( 22352 elm$html$Html$div, 22353 _List_fromArray( 22354 [ 22355 elm$html$Html$Attributes$class('elm-book-theme-builder__picker-wrapper') 22356 ]), 22357 _List_fromArray( 22358 [ 22359 A2( 22360 elm$html$Html$p, 22361 _List_fromArray( 22362 [ 22363 elm$html$Html$Attributes$class('elm-book-theme-builder__value elm-book-monospace') 22364 ]), 22365 _List_fromArray( 22366 [ 22367 elm$html$Html$text(value_) 22368 ])), 22369 A2( 22370 elm$html$Html$input, 22371 _List_fromArray( 22372 [ 22373 elm$html$Html$Attributes$type_('color'), 22374 elm$html$Html$Attributes$class('elm-book-theme-builder__picker'), 22375 elm$html$Html$Attributes$value(value_), 22376 elm$html$Html$Events$onInput( 22377 dtwrks$elm_book$ElmBook$Actions$updateStateWithCmdWith( 22378 A2(elm$core$Basics$composeL, dtwrks$elm_book$ElmBook$UI$ThemeGenerator$update, msg_))) 22379 ]), 22380 _List_Nil) 22381 ])) 22382 ])); 22383 }, 22384 _List_fromArray( 22385 [ 22386 _Utils_Tuple3( 22387 _Utils_Tuple2('backgroundGradient (Start)', 'ElmBook.ThemeOptions.backgroundGradient'), 22388 theming.backgroundStart, 22389 dtwrks$elm_book$ElmBook$UI$ThemeGenerator$UpdateBackgroun
22389dStart), 22390 _Utils_Tuple3( 22391 _Utils_Tuple2('backgroundGradient (End)', 'ElmBook.ThemeOptions.backgroundGradient'), 22392 theming.backgroundEnd, 22393 dtwrks$elm_book$ElmBook$UI$ThemeGenerator$UpdateBackgroundEnd), 22394 _Utils_Tuple3( 22395 _Utils_Tuple2('accent', 'ElmBook.ThemeOptions.accent'), 22396 theming.accent, 22397 dtwrks$elm_book$ElmBook$UI$ThemeGenerator$UpdateAccent_), 22398 _Utils_Tuple3( 22399 _Utils_Tuple2('navBackground', 'ElmBook.ThemeOptions.navBackground'), 22400 theming.navBackground, 22401 dtwrks$elm_book$ElmBook$UI$ThemeGenerator$UpdateNavBackground_), 22402 _Utils_Tuple3( 22403 _Utils_Tuple2('navAccent', 'ElmBook.ThemeOptions.navAccent'), 22404 theming.navAccent, 22405 dtwrks$elm_book$ElmBook$UI$ThemeGenerator$UpdateNavAccent_), 22406 _Utils_Tuple3( 22407 _Utils_Tuple2('navAccentHighlight', 'ElmBook.ThemeOptions.navAccentHighlight'), 22408 theming.navAccentHighlight, 22409 dtwrks$elm_book$ElmBook$UI$ThemeGenerator$UpdateNavAccentHighlight_) 22410 ]))) 22411 ])); 22412}; 22413var dtwrks$elm_book$ElmBook$UI$Docs$Guides$Theming$docs = function () { 22414 var headerProps = { 22415 href: '/logAction/', 22416 isMenuOpen: false, 22417 onClickHeader: dtwrks$elm_book$ElmBook$Actions$logAction('onClickHeader'), 22418 onClickMenuButton: dtwrks$elm_book$ElmBook$Actions$logAction('onClickMenuButton'), 22419 theme: A2(dtwrks$elm_book$ElmBook$ThemeOptions$subtitle, 'Custom Subtitle', dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultTheme), 22420 title: 'Custom Title', 22421 toHtml: elm$core$Basics$identity 22422 }; 22423 var customHeader = A2( 22424 elm$html$Html$div, 22425 _List_fromArray( 22426 [ 22427 A2(elm$html$Html$Attributes$style, 'font-size', '28px'), 22428 A2(elm$html$Html$Attributes$style, 'color', '#75c5f0') 22429 ]), 22430 _List_fromArray( 22431 [ 22432 elm$html$Html$text('Custom') 22433 ])); 22434 return A2( 22435 dtwrks$elm_book$ElmBook$Chapter$render, 22436 '\nYour book should look and feel your own, so ElmBook provides a few ways you can customize it\'s theme.\n\n## Custom Header\n\nYou can choose a different logo, title and subtitle for your book:\n\n<component with-label="Header with custom logo" with-background=\"' + (dtwrks$elm_book$ElmBook$UI$Helpers$themeBackgroun
22436d + ('" />\n\n main : Book x\n main =\n book "Custom Title"\n |> withThemeOptions\n [ ElmBook.ThemeOptions.subtitle "Custom Subtitle",\n , ElmBook.ThemeOptions.logo (img [ src "/mycompanylogo.png" ] [])\n ]\n |> withChapters []\n\nOr you can go full custom and provide your own thing:\n\n<component with-label="Custom header" with-background=\"' + (dtwrks$elm_book$ElmBook$UI$Helpers$themeBackground + '" />\n\n```elm\nmain : Book x\nmain =\n book "Custom Header"\n |> withThemeOptions\n [ ElmBook.ThemeOptions.header myCustomHeader\n ]\n |> withChapters []\n\n\nmyCustomHeader : Html msg\nmyCustomHeader =\n ...\n``` \n\n---\n\n## Custom Colors\n\nI mean⦠we all love Elm\'s light blue but maybe it doesn\'t fit your book. Don\'t fret, you can customize a lot of what you\'re seeing.\n\n<component with-label="Theme Builder" />\n\n main : Book x\n main =\n book "CustomHeader"\n |> withThemeOptions\n [ ElmBook.ThemeOptions.background "slategray"\n , ElmBook.ThemeOptions.accent "white"\n ]\n |> withChapters [] \n---\n\n## Dark Mode\n\nAre you goth? Do you like the dark arts? Then tell your book so and it will always start already in dark mode:\n\n main : Book x\n main =\n book "Goth Book"\n |> withThemeOptions\n [ ElmBook.ThemeOptions.darkMode\n ]\n |> withChapters [] \n\nDon\'t worry⦠the light-theme losers can turn it off quite easily.\n\n---\n\n## Roadmap\n\nThe state of our dark mode setup right now is not that great. It\'s more like a book thing than a "per user" setting since we can\'t persist what the user selected using pure elm.\n\nThere is a plan to also enable custom fonts soon. Other than that, I believe changes will be less customizable and will focus more on a better UX for all ElmBooks.\n\nThings like ready-to-be-used components like Placeholders, Design Tokens Catalogue, etc, should be handled by separate packages.\n\n'))), 22437 A2( 22438 dtwrks$elm_book$ElmBook$Chapter$withStatefulComponentList, 22439 _List_fromArray( 22440 [ 22441 _Utils_Tuple2('Theme Builder', dtwrks$elm_book$ElmBook$UI$ThemeGenerator$view) 22442 ]), 22443 A2( 22444 dtwrks$elm_book$ElmBook$Chapter$withComponentList, 22445 _List_fromArray( 22446 [ 22447 _Utils_Tuple2( 22448 'Header with custom logo', 22449 dtwrks$elm_book$ElmBook$UI$Header$view( 22450 _Utils_update( 22451 headerProps, 22452 { 22453 theme: A2( 22454 dtwrks$elm_book$ElmBook$ThemeOptions$logo, 22455 dtwrks$elm_book$ElmBook$UI$Icons$iconElm( 22456 {color: '#75c5f0', size: 28}), 22457 headerProps.theme) 22458 }))), 22459 _Utils_Tuple2( 22460 'Custom header', 22461 dtwrks$elm_book$ElmBook$UI$Header$view( 22462 _Utils_update( 22463 headerProps, 22464 { 22465 theme: A2(dtwrks$elm_book$ElmBook$ThemeOptions$header, customHeader, headerProps.theme) 22466 }))) 22467 ]), 22468 A2( 22469 dtwrks$elm_book$ElmBook$Chapter$withComponentOptions, 22470 _List_fromArray( 22471 [ 22472 dtwrks$elm_book$ElmBook$ComponentOptions$background(dtwrks$elm_book$ElmBook$UI$Helpers$themeBackgroun
22472d) 22473 ]), 22474 dtwrks$elm_book$ElmBook$Chapter$chapter('Theming'))))); 22475}(); 22476var dtwrks$elm_book$ElmBook$UI$Docs$HeaderNavFooter$Header$docs = function () { 22477 var props = { 22478 href: '/logAction/href', 22479 isMenuOpen: false, 22480 onClickHeader: dtwrks$elm_book$ElmBook$Actions$logAction('onClickHeader'), 22481 onClickMenuButton: dtwrks$elm_book$ElmBook$Actions$logAction('onClickMenuButton'), 22482 theme: dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultTheme, 22483 title: 'Title', 22484 toHtml: elm$core$Basics$identity 22485 }; 22486 var customTitle = A2( 22487 elm$html$Html$div, 22488 _List_fromArray( 22489 [ 22490 A2(elm$html$Html$Attributes$style, 'font-size', '28px'), 22491 A2(elm$html$Html$Attributes$style, 'color', '#75c5f0') 22492 ]), 22493 _List_fromArray( 22494 [ 22495 elm$html$Html$text('Custom') 22496 ])); 22497 return _List_fromArray( 22498 [ 22499 _Utils_Tuple2( 22500 'Header', 22501 dtwrks$elm_book$ElmBook$UI$Header$view(props)), 22502 _Utils_Tuple2( 22503 'Header w. Custom Logo', 22504 dtwrks$elm_book$ElmBook$UI$Header$view( 22505 _Utils_update( 22506 props, 22507 { 22508 theme: A2( 22509 dtwrks$elm_book$ElmBook$ThemeOptions$logo, 22510 dtwrks$elm_book$ElmBook$UI$Icons$iconElm( 22511 {color: '#75c5f0', size: 28}), 22512 props.theme) 22513 }))), 22514 _Utils_Tuple2( 22515 'Header w. Custom Content', 22516 dtwrks$elm_book$ElmBook$UI$Header$view( 22517 _Utils_update( 22518 props, 22519 { 22520 theme: A2(dtwrks$elm_book$ElmBook$ThemeOptions$header, customTitle, props.theme) 22521 }))) 22522 ]); 22523}(); 22524var dtwrks$elm_book$ElmBook$UI$Docs$HeaderNavFooter$Nav$docs = function () { 22525 var itemGroup = function (index) { 22526 return _Utils_Tuple2( 22527 '', 22528 _List_fromArray( 22529 [ 22530 _Utils_Tuple3( 22531 elm$core$String$fromInt(index) + '-first-slug', 22532 'First', 22533 true), 22534 _Utils_Tuple3( 22535 elm$core$String$fromInt(index) + '-second-slug', 22536 'Second', 22537 true) 22538 ])); 22539 }; 22540 var props = { 22541 active: elm$core$Maybe$Nothing, 22542 itemGroups: elm$core$List$singleton( 22543 itemGroup(0)), 22544 preSelected: elm$core$Maybe$Nothing 22545 }; 22546 var activeProps = _Utils_update( 22547 props, 22548 { 22549 active: elm$core$Maybe$Just('0-first-slug') 22550 }); 22551 return _List_fromArray( 22552 [ 22553 _Utils_Tuple2( 22554 'Nav', 22555 dtwrks$elm_book$ElmBook$UI$Nav$view(props)), 22556 _Utils_Tuple2( 22557 'Nav - Selected', 22558 dtwrks$elm_book$ElmBook$UI$Nav$view(activeProps)), 22559 _Utils_Tuple2( 22560 'Nav - Selected + Pre-selected', 22561 dtwrks$elm_book$ElmBook$UI$Nav$view( 22562 _Utils_update( 22563 activeProps, 22564 { 22565 preSelected: elm$core$Maybe$Just('0-second-slug') 22566 }))), 22567 _Utils_Tuple2( 22568 'Nav w. groups', 22569 dtwrks$elm_book$ElmBook$UI$Nav$view( 22570 _Utils_update( 22571 activeProps, 22572 { 22573 itemGroups: A2( 22574 elm$core$List$map, 22575 function (_n0) { 22576 var xs = _n0.b; 22577 return _Utils_Tuple2('Group Name', xs); 22578 }, 22579 A2( 22580 elm$core$List$map, 22581 itemGroup, 22582 A2(elm$core$List$range, 0, 3))) 22583 }))), 22584 _Utils_Tuple2( 22585 'Nav w. unnamed groups', 22586 dtwrks$elm_book$ElmBook$UI$Nav$view( 22587 _Utils_update( 22588 activeProps, 22589 { 22590 itemGroups: A2( 22591 elm$core$List$indexedMap, 22592 F2( 22593 function (index, _n1) { 22594 var xs = _n1.b; 22595 return _Utils_Tuple2( 22596 (!index) ? '' : 'Group Name', 22597 xs); 22598 }), 22599 A2( 22600 elm$core$List$map, 22601 itemGroup, 22602 A2(elm$core$List$range, 0, 3))) 22603 }))) 22604 ]); 22605}(); 22606var dtwrks$elm_book$ElmBook$UI$Docs$HeaderNavFooter$docs = A2( 22607 dtwrks$elm_book$ElmBook$Chapter$render, 22608 '\n\nAll components used for the navigation area of an ElmBook.\n\nThe way we\'re generating this page is actually pretty neat â we\'re using `component-list` tags and `with-label` to pull out all components with labels that start with a given string. This is how we\'re easily grouping all title and nav components together! ð¡\n\n## Header\n\n<component-list with-label="Header" />\n\n## Search\n\n<component with-label="Search" />\n\n## Nav\n\n<component-list with-label="Nav" />\n\n## Footer\n\n<component with-label="Footer" />\n\n', 22609 A2( 22610 dtwrks$elm_book$ElmBook$Chapter$withComponentList, 22611 elm$core$List$concat( 22612 _List_fromArray( 22613 [ 22614 dtwrks$elm_book$ElmBook$UI$Docs$HeaderNavFooter$Header$docs, 22615 dtwrks$elm_book$ElmBook$UI$Docs$HeaderNavFooter$Nav$docs, 22616 _List_fromArray( 22617 [ 22618 _Utils_Tuple2('Footer', dtwrks$elm_book$ElmBook$UI$Footer$view), 22619 _Utils_Tuple2( 22620 'Search', 22621 dtwrks$elm_book$ElmBook$UI$Search$view( 22622 { 22623 onBlur: dtwrks$elm_book$ElmBook$Actions$logAction('onBlur'), 22624 onFocus: dtwrks$elm_book$ElmBook$Actions$logAction('onFocus'), 22625 onInput: dtwrks$elm_book$ElmBook$Actions$logActionWithString('onInput'), 22626 value: '' 22627 })) 22628 ]) 22629 ])), 22630 A2(
22631 dtwrks$elm_book$ElmBook$Chapter$withComponentOptions, 22632 _List_fromArray( 22633 [ 22634 dtwrks$elm_book$ElmBook$ComponentOptions$background(dtwrks$elm_book$ElmBook$UI$Helpers$themeBackground) 22635 ]), 22636 dtwrks$elm_book$ElmBook$Chapter$chapter('Header, Nav & Footer')))); 22637var dtwrks$elm_book$ElmBook$UI$Icons$iconElmColor = function (size) { 22638 return A2( 22639 elm$svg$Svg$svg, 22640 _List_fromArray( 22641 [ 22642 elm$svg$Svg$Attributes$width( 22643 elm$core$String$fromInt(size)), 22644 elm$svg$Svg$Attributes$height( 22645 elm$core$String$fromInt(size)), 22646 elm$svg$Svg$Attributes$viewBox('0 0 256 256') 22647 ]), 22648 _List_fromArray( 22649 [ 22650 A2( 22651 elm$svg$Svg$path, 22652 _List_fromArray( 22653 [ 22654 elm$svg$Svg$Attributes$fill('#5FB4CB'), 22655 elm$svg$Svg$Attributes$d('M128 135.022L7.023 256h241.955z') 22656 ]), 22657 _List_Nil), 22658 A2( 22659 elm$svg$Svg$path, 22660 _List_fromArray( 22661 [ 22662 elm$svg$Svg$Attributes$fill('#EEA400'), 22663 elm$svg$Svg$Attributes$d('M202.332 195.311L256 248.98V141.643z') 22664 ]), 22665 _List_Nil), 22666 A2( 22667 elm$svg$Svg$path, 22668 _List_fromArray( 22669 [ 22670 elm$svg$Svg$Attributes$fill('#596277'), 22671 elm$svg$Svg$Attributes$d('M120.978 128L0 7.022V248.98z') 22672 ]), 22673 _List_Nil), 22674 A2( 22675 elm$svg$Svg$path, 22676 _List_fromArray( 22677 [ 22678 elm$svg$Svg$Attributes$fill('#5FB4CB'), 22679 elm$svg$Svg$Attributes$d('M256 113.806V0H142.193z') 22680 ]), 22681 _List_Nil), 22682 A2( 22683 elm$svg$Svg$path, 22684 _List_fromArray( 22685 [ 22686 elm$svg$Svg$Attributes$fill('#8CD636'), 22687 elm$svg$Svg$Attributes$d('M195.584 67.434l60.288 60.289l-60.563 60.564l-60.29-60.29z') 22688 ]), 22689 _List_Nil), 22690 A2( 22691 elm$svg$Svg$path, 22692 _List_fromArray( 22693 [ 22694 elm$svg$Svg$Attributes$fill('#8CD636'), 22695 elm$svg$Svg$Attributes$d('M7.021 0l55.725 55.726h121.13L128.15 0z') 22696 ]), 22697 _List_Nil), 22698 A2( 22699 elm$svg$Svg$path, 22700 _List_fromArray( 22701 [ 22702 elm$svg$Svg$Attributes$fill('#EEA400'), 22703 elm$svg$Svg$Attributes$d('M128 120.979l55.322-55.323H72.677z') 22704 ]), 22705 _List_Nil) 22706 ])); 22707}; 22708var dtwrks$elm_book$ElmBook$UI$Icons$iconGithub = function (props) { 22709 return A2( 22710 elm$svg$Svg$svg, 22711 _List_fromArray( 22712 [ 22713 elm$svg$Svg$Attributes$width( 22714 elm$core$String$fromInt(props.size)), 22715 elm$svg$Svg$Attributes$height( 22716 elm$core$String$fromInt(props.size)), 22717 elm$svg$Svg$Attributes$viewBox('0 0 512 512') 22718 ]), 22719 _List_fromArray( 22720 [ 22721 A2( 22722 elm$svg$Svg$path, 22723 _List_fromArray( 22724 [ 22725 elm$svg$Svg$Attributes$fill(props.color), 22726 elm$svg$Svg$Attributes$d('M256 0C115.39 0 0 115.39 0 256c0 119.988 84.195 228.984 196 256v-84.695c-11.078 2.425-21.273 2.496-32.55-.828-15.13-4.465-27.423-14.543-36.548-29.91-5.816-9.813-16.125-20.454-26.879-19.672l-2.636-29.883c23.254-1.992 43.37 14.168 55.312 34.23 5.305 8.922 11.41 14.153 19.246 16.465 7.575 2.23 15.707 1.16 25.184-2.187 2.379-18.973 11.07-26.075 17.637-36.075v-.015c-66.68-9.946-93.254-45.32-103.801-73.242-13.977-37.075-6.477-83.391 18.238-112.66.48-.571 1.348-2.063 1.012-3.106-11.332-34.23 2.476-62.547 2.984-65.55 13.078 3.866 15.203-3.892 56.809 21.386l7.191 4.32c3.008 1.793 2.063.77 5.07.543 17.372-4.719 35.684-7.324 53.727-7.558 18.18.234 36.375 2.84 54.465 7.75l2.328.234c-.203-.031.633-.149 2.035-.984 51.973-31.481 50.106-21.192 64.043-25.723.504 3.008 14.13 31.785 2.918 65.582-1.512 4.656 45.059 47.3 19.246 115.754-10.547 27.933-37.117 63.308-103.797 73.254v.015c8.547 13.028 18.817 19.957 18.762 46.832V512c111.809-27.016 196-136.012 196-256C512 115.39 396.61 0 256 0zm0 0') 22727 ]), 22728 _List_Nil) 22729 ])); 22730}; 22731var dtwrks$elm_book$ElmBook$UI$Docs$Icons$docs = function () { 22732 var color = 'rgb(0,135,207)'; 22733 return A2( 22734 dtwrks$elm_book$ElmBook$Chapter$renderWithComponentList, 22735 '\nSimple inline icons built with `elm/svg` â not that exciting but it works. ð¤·\n', 22736 A2( 22737 dtwrks$elm_book$ElmBook$Chapter$withComponentList, 22738 _List_fromArray( 22739 [ 22740 _Utils_Tuple2( 22741 'Elm (Color)', 22742 dtwrks$elm_book$ElmBook$UI$Icons$iconElmColor(20)), 22743 _Utils_Tuple2( 22744 'Elm', 22745 dtwrks$elm_book$ElmBook$UI$Icons$iconElm( 22746 {color: color, size: 20})), 22747 _Utils_Tuple2( 22748 'Github', 22749 dtwrks$elm_book$ElmBook$UI$Icons$iconGithub( 22750 {color: color, size: 20})), 22751 _Utils_Tuple2( 22752 'Menu', 22753 dtwrks$elm_book$ElmBook$UI$Icons$iconMenu( 22754 {color: color, size: 20})), 22755 _Utils_Tuple2( 22756 'Close', 22757 dtwrks$elm_book$ElmBook$UI$Icons$iconClose( 22758 {color: color, size: 20})) 22759 ]), 22760 dtwrks$elm_book$ElmBook$Chapter$chapter('Icons'))); 22761}();
22762var dtwrks$elm_book$ElmBook$UI$Docs$Intro$Overview$docs = A2( 22763 dtwrks$elm_book$ElmBook$Chapter$render, 22764 '\nEvery application, tool or team has their own history worth telling.\n\nElmBook tries to help them by making it easy to create rich documents that showcase their **libraries documentations**, **UI components**, **design tokens**, or anything else their creativity comes up with.\n\n---\n\n## It all starts with a chapter\n\nThey can be as simple as a markdown block or as rich as a set of interactive UI components that talk to each other. Take a look at the ["Creating Chapters"](/guides/chapters) guide for more details.\n\n```elm\nmodule FirstChapter exposing (firstChapter)\n\n\nimport ElmBook.Chapter exposing (..)\nimport Html exposing (..)\n\n\nfirstChapter : Chapter x\nfirstChapter =\n chapter "The First Chapter"\n |> withComponent component\n |> render content\n\n\ncomponent : Html msg\ncomponent =\n button [] [ text "Click me!" ]\n\n\ncontent : String\ncontent = \"\"\"\n# It all starts with a chapter\n\nOh, look â A wild real component!\n\n<component />\n\nWoof! Moving on...\n\"\"\"\n```\n\n---\n\n## Together, they become a book\n\nA book can hold a number of chapters and there are many ways to customize it from chapter grouping to custom themes. Take a look at the ["Creating Books"](/guides/books) and ["Theming"](/guides/theming) guides for more details.\n\n\n```elm\nmodule Book exposing (main)\n\n\nimport ElmBook exposing (..)\nimport FirstChapter exposing (firstChapter)\n\n\nmain : Book ()\nmain =\n book "Book"\n |> withChapters\n [ firstChapter\n ]\n\n```\n\n---\n\n## Inspiration\n\nThis library takes a lot of inspiration from two libraries:\n\n- [Storybook](http://storybook.js.org) â a JS ecosystem tool that focus on showcasing components and their states, mostly aiming at internal design systems but also enabling the pattern of creating visual components in isolation.\n\n- [HexDocs](http://hexdocs.pm) â an Erlang/Elixir ecosystem tool that enables structured library documentation with guides, function docs, links to code and external sources.\n\nBoth of these tools affected their whole ecosystems greatly. Creating good docs is a common place when you\'re in Elixir world. Using Storybook to facilitate design-engineering iteration is a common place in the JS world.\n\nWhat if the Elm ecosystem can create it\'s own thing with the best of both worlds? ElmBook aims to be just that â making it easy to create attractive documentation websites that can also work as a playground for live components built with Elm.\n\n---\n\n## Roadmap\n\nThere are two main possibilities I want to explore some time soon:\n\n- **Generating ElmBooks based on doc comments** â the same that are used to generate docs on elm-packages. This could allow published elm packages to automatically have their own ElmBook with example codes turning into live components and no code duplication.\n- **Generating ElmBooks through a custom CLI** â this package will always be "elm-only" so it can fit everyone\'s custom setup and be hosted on elm-packages but I want to create a companion CLI that would enable fancier stuff like merging `.md` files and pulling stuff out of doc comments. Whatever enables the best developer experience.\n\n---\n\nI really hope we can create something unique to the Elm ecosystem here, so please let me know what you think, ideas to improve it or if you encountered any problems. Find me as **georgesboris** on Elm Slack.\n\n', 22765 dtwrks$elm_book$ElmBook$Chapter$chapter('Overview')); 22766var dtwrks$elm_book$ElmBook$UI$Docs$Markdown$docs = A2( 22767 dtwrks$elm_book$ElmBook$Chapter$render, 22768 '\nWe use the amazing [dillonkearns/elm-markdown](https://package.elm-lang.org/packages/dillonkearns/elm-markdown/latest/) as the basis for not only our markdown content but also all the magic surrounding embedded components. Thanks, Dillon! ð\n\nBelow is a sample of most if not all available tags. Check it out! ð\n\n---\n\n# Heading 1\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit, [sed do eiusmod](http://elm-lang.org) tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n\n## Heading 2\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit, [sed do eiusmod](http://elm-lang.org) tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n\n### Heading 3\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit, [sed do eiusmod](http://elm-lang.org) tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n\n---\n\n#### Heading 4\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit, [sed do eiusmod](http://elm-lang.org) tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n\n##### Heading 5\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit, [sed do eiusmod](http://elm-lang.org) tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n\n###### Heading 6\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit, [sed do eiusmod](http://elm-lang.org) tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n\n---\n\n# Heading 1\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n\n\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit, [sed do eiusmod](http://elm-lang.org) tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n\n> Lorem ipsum dolor sit amet, consectetur adipiscing elit, [sed do eiusmod](http://elm-lang.org) tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n\nLorem ipsum dolor sit amet, `consectetur adipiscing elit`, [sed do eiusmod](http://elm-lang.org) tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n\n```elm\n-- Elm\n\nview : String -> Html msg\nview content =\n ElmBook.UI.Markdown.view content\n |> withOther "stuff"\n |> withAnd [ "x" [] ]\n```\n\n```html\n<!-- HTML -->\n\n<body>\n <h1>Title</h1>\n</body>\n```\n\n```css\n/* CSS */\n\nbody {\n margin: 0;\n padding: 0;\n}\n```\n\n\n```js\n// Javascript\n\nimport { Elm } from "..";\n\nconst app = Elm.Main.init({\n node: document.getElementById(\'myapp\')\n});\n```\n\n```js\n// Typescript\n\ninterface User {\n name: string;\n id: number;\n}\n\nclass UserAccount {\n name: string;\n id: number;\n\n constructor(name: string, id: number) {\n this.name = name;\n this.id = id;\n }\n}\n\nconst user: User = new UserAccount("Murphy", 1);\n```\n\n```rust\n// Rust (Unknown)\n\nfn used_function() {}\n\n// `#[allow(dead_code)]` is an attribute that disables the `dead_code` lint\n#[allow(dead_code)]\nfn unused_function() {}\n\nfn noisy_unused_function() {}\n// FIXME ^ Add an attribute to suppress the warning\n\nfn main() {\n used_function();\n}\n```\n\n---\n\n# Heading 1\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n\n* Lorem ipsum dolor sit amet, consectetur adipiscing elit.\n* Lorem ipsum dolor sit amet, consectetur adipiscing elit.\n* Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam.\n\n1. Lorem ipsum dolor sit amet, consectetur adipiscing elit.\n1. Lorem ipsum dolor sit amet, consectetur adipiscing elit.\n1. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam.\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n\n| Fruits | Are | Healthy |\n|----------|:-------------:|------:|\n| Apple | Red | $1600 |\n| Orange | Orange | $12 |\n| Banana | Yellow | $1 | \n', 22769 dtwrks$elm_book$ElmBook$Chapter$chapter('Markdown')); 22770var dtwrks$elm_book$ElmBook$UI$Docs$ThemeGenerator$docs = A2( 22771 dtwrks$elm_book$ElmBook$Chapter$render, 22772 '\nThis is a special component that would only work inside the ElmBook package itself since it uses private messages for changing the theme dynamically.\n\n<component />\n\n**Note**: You don\'t need to use a gradient at all! Check out the [docs](
22772https://package.elm-lang.org/packages/dtwrks/elm-book/latest/ElmBook-ThemeOptions) for all options.\n', 22773 A2( 22774 dtwrks$elm_book$ElmBook$Chapter$withStatefulComponent, 22775 dtwrks$elm_book$ElmBook$UI$ThemeGenerator$view, 22776 dtwrks$elm_book$ElmBook$Chapter$chapter('Theme Generator'))); 22777var dtwrks$elm_book$ElmBook$UI$Docs$Wrapper$placeholder = function (isLight) { 22778 var backgroundColor = isLight ? 'rgba(255, 255, 255, 0.2)' : 'rgba(0, 0, 0, 0.1)'; 22779 return A2( 22780 elm$html$Html$div, 22781 _List_fromArray( 22782 [ 22783 A2(elm$html$Html$Attributes$style, 'height', '40px'), 22784 A2(elm$html$Html$Attributes$style, 'background', backgroundColor) 22785 ]), 22786 _List_Nil); 22787}; 22788var dtwrks$elm_book$ElmBook$UI$Docs$Wrapper$mockModalContent = A2( 22789 elm$html$Html$div, 22790 _List_fromArray( 22791 [ 22792 A2(elm$html$Html$Attributes$style, 'width', '400px') 22793 ]), 22794 _List_fromArray( 22795 [ 22796 dtwrks$elm_book$ElmBook$UI$Docs$Wrapper$placeholder(false) 22797 ])); 22798var dtwrks$elm_book$ElmBook$UI$Docs$Wrapper$placeholderList = function (isLight) { 22799 var item = A2( 22800 elm$html$Html$div, 22801 _List_fromArray( 22802 [ 22803 A2(elm$html$Html$Attributes$style, 'padding', '8px') 22804 ]), 22805 _List_fromArray( 22806 [ 22807 dtwrks$elm_book$ElmBook$UI$Docs$Wrapper$placeholder(isLight) 22808 ])); 22809 var items = A2(elm$core$List$repeat, 40, item); 22810 return A2( 22811 elm$html$Html$ul, 22812 _List_fromArray( 22813 [ 22814 A2(elm$html$Html$Attributes$style, 'margin', '0'), 22815 A2(elm$html$Html$Attributes$style, 'padding', '0'), 22816 A2(elm$html$Html$Attributes$style, 'width', '100%'), 22817 A2(elm$html$Html$Attributes$style, 'box-sizing', 'border-box') 22818 ]), 22819 items); 22820}; 22821var dtwrks$elm_book$ElmBook$UI$Docs$Wrapper$docs = function () { 22822 var wrapper = function (child) { 22823 return A2( 22824 elm$html$Html$div, 22825 _List_fromArray( 22826 [ 22827 A2(elm$html$Html$Attributes$style, 'height', '400px'), 22828 A2(elm$html$Html$Attributes$style, 'position', 'relative') 22829 ]), 22830 _List_fromArray( 22831 [child])); 22832 }; 22833 var props = { 22834 darkMode: false, 22835 globals: _List_Nil, 22836 header: dtwrks$elm_book$ElmBook$UI$Docs$Wrapper$placeholder(true), 22837 isMenuOpen: false, 22838 main: dtwrks$elm_book$ElmBook$UI$Docs$Wrapper$placeholderList(false), 22839 mainFooter: dtwrks$elm_book$ElmBook$UI$Docs$Wrapper$placeholder(false), 22840 mainHeader: elm$core$Maybe$Nothing, 22841 menu: dtwrks$elm_book$ElmBook$UI$Docs$Wrapper$placeholderList(true), 22842 menuFooter: dtwrks$elm_book$ElmBook$UI$Docs$Wrapper$placeholder(true), 22843 menuHeader: dtwrks$elm_book$ElmBook$UI$Docs$Wrapper$placeholder(true), 22844 modal: elm$core$Maybe$Nothing, 22845 onCloseModal: dtwrks$elm_book$ElmBook$Actions$logAction('onCloseModal'), 22846 theme: dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultTheme 22847 }; 22848 return A2( 22849 dtwrks$elm_book$ElmBook$Chapter$renderWithComponentList, 22850 '\nSince ElmBook is basically a "one layout" app â it\'s easier to maintain all its skeleton in a single place. This is all inside the `Wrapper` module. Take a look at the possible states below.\n\n', 22851 A2( 22852 dtwrks$elm_book$ElmBook$Chapter$withComponentList, 22853 _List_fromArray( 22854 [ 22855 _Utils_Tuple2( 22856 'Default', 22857 wrapper( 22858 dtwrks$elm_book$ElmBook$UI$Wrapper$view(props))), 22859 _Utils_Tuple2( 22860 'Opened Menu (Visible on Mobile)', 22861 wrapper( 22862 dtwrks$elm_book$ElmBook$UI$Wrapper$view( 22863 _Utils_update( 22864 props, 22865 {isMenuOpen: true})))), 22866 _Utils_Tuple2( 22867 'With Modal', 22868 wrapper( 22869 dtwrks$elm_book$ElmBook$UI$Wrapper$view( 22870 _Utils_update( 22871 props, 22872 { 22873 modal: elm$core$Maybe$Just(dtwrks$elm_book$ElmBook$UI$Docs$Wrapper$mockModalContent) 22874 })))) 22875 ]), 22876 dtwrks$elm_book$ElmBook$Chapter$chapter('Wrapper'))); 22877}(); 22878var dtwrks$elm_book$ElmBook$UI$ElmBook$initialState = { 22879 darkMode: false, 22880 theming: {accent: dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultAccent, backgroundEnd: dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultBackgroundEnd, backgroundStart: dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultBackgroundStart, navAccent: dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultNavAccent, navAccentHighlight: dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultNavAccentHighlight, navBackgroun
22880d: dtwrks$elm_book$ElmBook$Internal$ThemeOptions$defaultNavBackground} 22881}; 22882var dtwrks$elm_book$ElmBook$UI$ElmBook$main = A2( 22883 dtwrks$elm_book$ElmBook$withChapterGroups, 22884 _List_fromArray( 22885 [ 22886 _Utils_Tuple2( 22887 '', 22888 _List_fromArray( 22889 [ 22890 dtwrks$elm_book$ElmBook$UI$Docs$Intro$Overview$docs, 22891 dtwrks$elm_book$ElmBook$Chapter$chapterLink( 22892 {title: 'API', url: 'https://package.elm-lang.org/packages/dtwrks/elm-book/latest/'}) 22893 ])), 22894 _Utils_Tuple2( 22895 'Guides', 22896 _List_fromArray( 22897 [dtwrks$elm_book$ElmBook$UI$Docs$Guides$Chapters$docs, dtwrks$elm_book$ElmBook$UI$Docs$Guides$Books$docs, dtwrks$elm_book$ElmBook$UI$Docs$Guides$Theming$docs, dtwrks$elm_book$ElmBook$UI$Docs$Guides$LoggingActions$docs, dtwrks$elm_book$ElmBook$UI$Docs$Guides$StatefulChapters$docs, dtwrks$elm_book$ElmBook$UI$Docs$Guides$Interop$docs, dtwrks$elm_book$ElmBook$UI$Docs$Guides$BuiltinServer$docs])), 22898 _Utils_Tuple2( 22899 'Design System', 22900 _List_fromArray( 22901 [dtwrks$elm_book$ElmBook$UI$Docs$Wrapper$docs, dtwrks$elm_book$ElmBook$UI$Docs$HeaderNavFooter$docs, dtwrks$elm_book$ElmBook$UI$Docs$ActionLog$docs, dtwrks$elm_book$ElmBook$UI$Docs$Icons$docs, dtwrks$elm_book$ElmBook$UI$Docs$Markdown$docs, dtwrks$elm_book$ElmBook$UI$Docs$DarkModeComponents$docs, dtwrks$elm_book$ElmBook$UI$Docs$ThemeGenerator$docs])) 22902 ]), 22903 A2( 22904 dtwrks$elm_book$ElmBook$withThemeOptions, 22905 _List_fromArray( 22906 [ 22907 dtwrks$elm_book$ElmBook$ThemeOptions$subtitle('Guides & Components') 22908 ]), 22909 A2( 22910 dtwrks$elm_book$ElmBook$withStatefulOptions, 22911 _List_fromArray( 22912 [ 22913 dtwrks$elm_book$ElmBook$StatefulOptions$initialState(dtwrks$elm_book$ElmBook$UI$ElmBook$initialState), 22914 dtwrks$elm_book$ElmBook$StatefulOptions$onDarkModeChange( 22915 F2( 22916 function (darkMode, s) { 22917 return _Utils_update( 22918 s, 22919 {darkMode: darkMode}); 22920 })) 22921 ]), 22922 dtwrks$elm_book$ElmBook$book('ElmBook\'s')))); 22923_Platform_export({'ElmBook':{'UI':{'ElmBook':{'init':dtwrks$elm_book$ElmBook$UI$ElmBook$main( 22924 elm$json$Json$Decode$succeed(_Utils_Tuple0))(0)}}}});}(this));
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.