From 46bdf8a9d0685a4764a096d8089cc8c9965801d9 Mon Sep 17 00:00:00 2001 From: Akshay Date: Sat, 2 Jan 2021 09:06:17 +0530 Subject: cleanse --- frontend/main.js | 12732 ----------------------------------------------------- 1 file changed, 12732 deletions(-) delete mode 100644 frontend/main.js (limited to 'frontend/main.js') diff --git a/frontend/main.js b/frontend/main.js deleted file mode 100644 index 9d33498..0000000 --- a/frontend/main.js +++ /dev/null @@ -1,12732 +0,0 @@ -(function(scope){ -'use strict'; - -function F(arity, fun, wrapper) { - wrapper.a = arity; - wrapper.f = fun; - return wrapper; -} - -function F2(fun) { - return F(2, fun, function(a) { return function(b) { return fun(a,b); }; }) -} -function F3(fun) { - return F(3, fun, function(a) { - return function(b) { return function(c) { return fun(a, b, c); }; }; - }); -} -function F4(fun) { - return F(4, fun, function(a) { return function(b) { return function(c) { - return function(d) { return fun(a, b, c, d); }; }; }; - }); -} -function F5(fun) { - return F(5, fun, function(a) { return function(b) { return function(c) { - return function(d) { return function(e) { return fun(a, b, c, d, e); }; }; }; }; - }); -} -function F6(fun) { - return F(6, fun, function(a) { return function(b) { return function(c) { - return function(d) { return function(e) { return function(f) { - return fun(a, b, c, d, e, f); }; }; }; }; }; - }); -} -function F7(fun) { - return F(7, fun, function(a) { return function(b) { return function(c) { - return function(d) { return function(e) { return function(f) { - return function(g) { return fun(a, b, c, d, e, f, g); }; }; }; }; }; }; - }); -} -function F8(fun) { - return F(8, fun, function(a) { return function(b) { return function(c) { - return function(d) { return function(e) { return function(f) { - return function(g) { return function(h) { - return fun(a, b, c, d, e, f, g, h); }; }; }; }; }; }; }; - }); -} -function F9(fun) { - return F(9, fun, function(a) { return function(b) { return function(c) { - return function(d) { return function(e) { return function(f) { - return function(g) { return function(h) { return function(i) { - return fun(a, b, c, d, e, f, g, h, i); }; }; }; }; }; }; }; }; - }); -} - -function A2(fun, a, b) { - return fun.a === 2 ? fun.f(a, b) : fun(a)(b); -} -function A3(fun, a, b, c) { - return fun.a === 3 ? fun.f(a, b, c) : fun(a)(b)(c); -} -function A4(fun, a, b, c, d) { - return fun.a === 4 ? fun.f(a, b, c, d) : fun(a)(b)(c)(d); -} -function A5(fun, a, b, c, d, e) { - return fun.a === 5 ? fun.f(a, b, c, d, e) : fun(a)(b)(c)(d)(e); -} -function A6(fun, a, b, c, d, e, f) { - return fun.a === 6 ? fun.f(a, b, c, d, e, f) : fun(a)(b)(c)(d)(e)(f); -} -function A7(fun, a, b, c, d, e, f, g) { - return fun.a === 7 ? fun.f(a, b, c, d, e, f, g) : fun(a)(b)(c)(d)(e)(f)(g); -} -function A8(fun, a, b, c, d, e, f, g, h) { - return fun.a === 8 ? fun.f(a, b, c, d, e, f, g, h) : fun(a)(b)(c)(d)(e)(f)(g)(h); -} -function A9(fun, a, b, c, d, e, f, g, h, i) { - 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); -} - -console.warn('Compiled in DEV mode. Follow the advice at https://elm-lang.org/0.19.1/optimize for better performance and smaller assets.'); - - -// EQUALITY - -function _Utils_eq(x, y) -{ - for ( - var pair, stack = [], isEqual = _Utils_eqHelp(x, y, 0, stack); - isEqual && (pair = stack.pop()); - isEqual = _Utils_eqHelp(pair.a, pair.b, 0, stack) - ) - {} - - return isEqual; -} - -function _Utils_eqHelp(x, y, depth, stack) -{ - if (x === y) - { - return true; - } - - if (typeof x !== 'object' || x === null || y === null) - { - typeof x === 'function' && _Debug_crash(5); - return false; - } - - if (depth > 100) - { - stack.push(_Utils_Tuple2(x,y)); - return true; - } - - /**/ - if (x.$ === 'Set_elm_builtin') - { - x = $elm$core$Set$toList(x); - y = $elm$core$Set$toList(y); - } - if (x.$ === 'RBNode_elm_builtin' || x.$ === 'RBEmpty_elm_builtin') - { - x = $elm$core$Dict$toList(x); - y = $elm$core$Dict$toList(y); - } - //*/ - - /**_UNUSED/ - if (x.$ < 0) - { - x = $elm$core$Dict$toList(x); - y = $elm$core$Dict$toList(y); - } - //*/ - - for (var key in x) - { - if (!_Utils_eqHelp(x[key], y[key], depth + 1, stack)) - { - return false; - } - } - return true; -} - -var _Utils_equal = F2(_Utils_eq); -var _Utils_notEqual = F2(function(a, b) { return !_Utils_eq(a,b); }); - - - -// COMPARISONS - -// Code in Generate/JavaScript.hs, Basics.js, and List.js depends on -// the particular integer values assigned to LT, EQ, and GT. - -function _Utils_cmp(x, y, ord) -{ - if (typeof x !== 'object') - { - return x === y ? /*EQ*/ 0 : x < y ? /*LT*/ -1 : /*GT*/ 1; - } - - /**/ - if (x instanceof String) - { - var a = x.valueOf(); - var b = y.valueOf(); - return a === b ? 0 : a < b ? -1 : 1; - } - //*/ - - /**_UNUSED/ - if (typeof x.$ === 'undefined') - //*/ - /**/ - if (x.$[0] === '#') - //*/ - { - return (ord = _Utils_cmp(x.a, y.a)) - ? ord - : (ord = _Utils_cmp(x.b, y.b)) - ? ord - : _Utils_cmp(x.c, y.c); - } - - // traverse conses until end of a list or a mismatch - for (; x.b && y.b && !(ord = _Utils_cmp(x.a, y.a)); x = x.b, y = y.b) {} // WHILE_CONSES - return ord || (x.b ? /*GT*/ 1 : y.b ? /*LT*/ -1 : /*EQ*/ 0); -} - -var _Utils_lt = F2(function(a, b) { return _Utils_cmp(a, b) < 0; }); -var _Utils_le = F2(function(a, b) { return _Utils_cmp(a, b) < 1; }); -var _Utils_gt = F2(function(a, b) { return _Utils_cmp(a, b) > 0; }); -var _Utils_ge = F2(function(a, b) { return _Utils_cmp(a, b) >= 0; }); - -var _Utils_compare = F2(function(x, y) -{ - var n = _Utils_cmp(x, y); - return n < 0 ? $elm$core$Basics$LT : n ? $elm$core$Basics$GT : $elm$core$Basics$EQ; -}); - - -// COMMON VALUES - -var _Utils_Tuple0_UNUSED = 0; -var _Utils_Tuple0 = { $: '#0' }; - -function _Utils_Tuple2_UNUSED(a, b) { return { a: a, b: b }; } -function _Utils_Tuple2(a, b) { return { $: '#2', a: a, b: b }; } - -function _Utils_Tuple3_UNUSED(a, b, c) { return { a: a, b: b, c: c }; } -function _Utils_Tuple3(a, b, c) { return { $: '#3', a: a, b: b, c: c }; } - -function _Utils_chr_UNUSED(c) { return c; } -function _Utils_chr(c) { return new String(c); } - - -// RECORDS - -function _Utils_update(oldRecord, updatedFields) -{ - var newRecord = {}; - - for (var key in oldRecord) - { - newRecord[key] = oldRecord[key]; - } - - for (var key in updatedFields) - { - newRecord[key] = updatedFields[key]; - } - - return newRecord; -} - - -// APPEND - -var _Utils_append = F2(_Utils_ap); - -function _Utils_ap(xs, ys) -{ - // append Strings - if (typeof xs === 'string') - { - return xs + ys; - } - - // append Lists - if (!xs.b) - { - return ys; - } - var root = _List_Cons(xs.a, ys); - xs = xs.b - for (var curr = root; xs.b; xs = xs.b) // WHILE_CONS - { - curr = curr.b = _List_Cons(xs.a, ys); - } - return root; -} - - - -var _List_Nil_UNUSED = { $: 0 }; -var _List_Nil = { $: '[]' }; - -function _List_Cons_UNUSED(hd, tl) { return { $: 1, a: hd, b: tl }; } -function _List_Cons(hd, tl) { return { $: '::', a: hd, b: tl }; } - - -var _List_cons = F2(_List_Cons); - -function _List_fromArray(arr) -{ - var out = _List_Nil; - for (var i = arr.length; i--; ) - { - out = _List_Cons(arr[i], out); - } - return out; -} - -function _List_toArray(xs) -{ - for (var out = []; xs.b; xs = xs.b) // WHILE_CONS - { - out.push(xs.a); - } - return out; -} - -var _List_map2 = F3(function(f, xs, ys) -{ - for (var arr = []; xs.b && ys.b; xs = xs.b, ys = ys.b) // WHILE_CONSES - { - arr.push(A2(f, xs.a, ys.a)); - } - return _List_fromArray(arr); -}); - -var _List_map3 = F4(function(f, xs, ys, zs) -{ - for (var arr = []; xs.b && ys.b && zs.b; xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES - { - arr.push(A3(f, xs.a, ys.a, zs.a)); - } - return _List_fromArray(arr); -}); - -var _List_map4 = F5(function(f, ws, xs, ys, zs) -{ - 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 - { - arr.push(A4(f, ws.a, xs.a, ys.a, zs.a)); - } - return _List_fromArray(arr); -}); - -var _List_map5 = F6(function(f, vs, ws, xs, ys, zs) -{ - 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 - { - arr.push(A5(f, vs.a, ws.a, xs.a, ys.a, zs.a)); - } - return _List_fromArray(arr); -}); - -var _List_sortBy = F2(function(f, xs) -{ - return _List_fromArray(_List_toArray(xs).sort(function(a, b) { - return _Utils_cmp(f(a), f(b)); - })); -}); - -var _List_sortWith = F2(function(f, xs) -{ - return _List_fromArray(_List_toArray(xs).sort(function(a, b) { - var ord = A2(f, a, b); - return ord === $elm$core$Basics$EQ ? 0 : ord === $elm$core$Basics$LT ? -1 : 1; - })); -}); - - - -var _JsArray_empty = []; - -function _JsArray_singleton(value) -{ - return [value]; -} - -function _JsArray_length(array) -{ - return array.length; -} - -var _JsArray_initialize = F3(function(size, offset, func) -{ - var result = new Array(size); - - for (var i = 0; i < size; i++) - { - result[i] = func(offset + i); - } - - return result; -}); - -var _JsArray_initializeFromList = F2(function (max, ls) -{ - var result = new Array(max); - - for (var i = 0; i < max && ls.b; i++) - { - result[i] = ls.a; - ls = ls.b; - } - - result.length = i; - return _Utils_Tuple2(result, ls); -}); - -var _JsArray_unsafeGet = F2(function(index, array) -{ - return array[index]; -}); - -var _JsArray_unsafeSet = F3(function(index, value, array) -{ - var length = array.length; - var result = new Array(length); - - for (var i = 0; i < length; i++) - { - result[i] = array[i]; - } - - result[index] = value; - return result; -}); - -var _JsArray_push = F2(function(value, array) -{ - var length = array.length; - var result = new Array(length + 1); - - for (var i = 0; i < length; i++) - { - result[i] = array[i]; - } - - result[length] = value; - return result; -}); - -var _JsArray_foldl = F3(function(func, acc, array) -{ - var length = array.length; - - for (var i = 0; i < length; i++) - { - acc = A2(func, array[i], acc); - } - - return acc; -}); - -var _JsArray_foldr = F3(function(func, acc, array) -{ - for (var i = array.length - 1; i >= 0; i--) - { - acc = A2(func, array[i], acc); - } - - return acc; -}); - -var _JsArray_map = F2(function(func, array) -{ - var length = array.length; - var result = new Array(length); - - for (var i = 0; i < length; i++) - { - result[i] = func(array[i]); - } - - return result; -}); - -var _JsArray_indexedMap = F3(function(func, offset, array) -{ - var length = array.length; - var result = new Array(length); - - for (var i = 0; i < length; i++) - { - result[i] = A2(func, offset + i, array[i]); - } - - return result; -}); - -var _JsArray_slice = F3(function(from, to, array) -{ - return array.slice(from, to); -}); - -var _JsArray_appendN = F3(function(n, dest, source) -{ - var destLen = dest.length; - var itemsToCopy = n - destLen; - - if (itemsToCopy > source.length) - { - itemsToCopy = source.length; - } - - var size = destLen + itemsToCopy; - var result = new Array(size); - - for (var i = 0; i < destLen; i++) - { - result[i] = dest[i]; - } - - for (var i = 0; i < itemsToCopy; i++) - { - result[i + destLen] = source[i]; - } - - return result; -}); - - - -// LOG - -var _Debug_log_UNUSED = F2(function(tag, value) -{ - return value; -}); - -var _Debug_log = F2(function(tag, value) -{ - console.log(tag + ': ' + _Debug_toString(value)); - return value; -}); - - -// TODOS - -function _Debug_todo(moduleName, region) -{ - return function(message) { - _Debug_crash(8, moduleName, region, message); - }; -} - -function _Debug_todoCase(moduleName, region, value) -{ - return function(message) { - _Debug_crash(9, moduleName, region, value, message); - }; -} - - -// TO STRING - -function _Debug_toString_UNUSED(value) -{ - return ''; -} - -function _Debug_toString(value) -{ - return _Debug_toAnsiString(false, value); -} - -function _Debug_toAnsiString(ansi, value) -{ - if (typeof value === 'function') - { - return _Debug_internalColor(ansi, ''); - } - - if (typeof value === 'boolean') - { - return _Debug_ctorColor(ansi, value ? 'True' : 'False'); - } - - if (typeof value === 'number') - { - return _Debug_numberColor(ansi, value + ''); - } - - if (value instanceof String) - { - return _Debug_charColor(ansi, "'" + _Debug_addSlashes(value, true) + "'"); - } - - if (typeof value === 'string') - { - return _Debug_stringColor(ansi, '"' + _Debug_addSlashes(value, false) + '"'); - } - - if (typeof value === 'object' && '$' in value) - { - var tag = value.$; - - if (typeof tag === 'number') - { - return _Debug_internalColor(ansi, ''); - } - - if (tag[0] === '#') - { - var output = []; - for (var k in value) - { - if (k === '$') continue; - output.push(_Debug_toAnsiString(ansi, value[k])); - } - return '(' + output.join(',') + ')'; - } - - if (tag === 'Set_elm_builtin') - { - return _Debug_ctorColor(ansi, 'Set') - + _Debug_fadeColor(ansi, '.fromList') + ' ' - + _Debug_toAnsiString(ansi, $elm$core$Set$toList(value)); - } - - if (tag === 'RBNode_elm_builtin' || tag === 'RBEmpty_elm_builtin') - { - return _Debug_ctorColor(ansi, 'Dict') - + _Debug_fadeColor(ansi, '.fromList') + ' ' - + _Debug_toAnsiString(ansi, $elm$core$Dict$toList(value)); - } - - if (tag === 'Array_elm_builtin') - { - return _Debug_ctorColor(ansi, 'Array') - + _Debug_fadeColor(ansi, '.fromList') + ' ' - + _Debug_toAnsiString(ansi, $elm$core$Array$toList(value)); - } - - if (tag === '::' || tag === '[]') - { - var output = '['; - - value.b && (output += _Debug_toAnsiString(ansi, value.a), value = value.b) - - for (; value.b; value = value.b) // WHILE_CONS - { - output += ',' + _Debug_toAnsiString(ansi, value.a); - } - return output + ']'; - } - - var output = ''; - for (var i in value) - { - if (i === '$') continue; - var str = _Debug_toAnsiString(ansi, value[i]); - var c0 = str[0]; - var parenless = c0 === '{' || c0 === '(' || c0 === '[' || c0 === '<' || c0 === '"' || str.indexOf(' ') < 0; - output += ' ' + (parenless ? str : '(' + str + ')'); - } - return _Debug_ctorColor(ansi, tag) + output; - } - - if (typeof DataView === 'function' && value instanceof DataView) - { - return _Debug_stringColor(ansi, '<' + value.byteLength + ' bytes>'); - } - - if (typeof File !== 'undefined' && value instanceof File) - { - return _Debug_internalColor(ansi, '<' + value.name + '>'); - } - - if (typeof value === 'object') - { - var output = []; - for (var key in value) - { - var field = key[0] === '_' ? key.slice(1) : key; - output.push(_Debug_fadeColor(ansi, field) + ' = ' + _Debug_toAnsiString(ansi, value[key])); - } - if (output.length === 0) - { - return '{}'; - } - return '{ ' + output.join(', ') + ' }'; - } - - return _Debug_internalColor(ansi, ''); -} - -function _Debug_addSlashes(str, isChar) -{ - var s = str - .replace(/\\/g, '\\\\') - .replace(/\n/g, '\\n') - .replace(/\t/g, '\\t') - .replace(/\r/g, '\\r') - .replace(/\v/g, '\\v') - .replace(/\0/g, '\\0'); - - if (isChar) - { - return s.replace(/\'/g, '\\\''); - } - else - { - return s.replace(/\"/g, '\\"'); - } -} - -function _Debug_ctorColor(ansi, string) -{ - return ansi ? '\x1b[96m' + string + '\x1b[0m' : string; -} - -function _Debug_numberColor(ansi, string) -{ - return ansi ? '\x1b[95m' + string + '\x1b[0m' : string; -} - -function _Debug_stringColor(ansi, string) -{ - return ansi ? '\x1b[93m' + string + '\x1b[0m' : string; -} - -function _Debug_charColor(ansi, string) -{ - return ansi ? '\x1b[92m' + string + '\x1b[0m' : string; -} - -function _Debug_fadeColor(ansi, string) -{ - return ansi ? '\x1b[37m' + string + '\x1b[0m' : string; -} - -function _Debug_internalColor(ansi, string) -{ - return ansi ? '\x1b[36m' + string + '\x1b[0m' : string; -} - -function _Debug_toHexDigit(n) -{ - return String.fromCharCode(n < 10 ? 48 + n : 55 + n); -} - - -// CRASH - - -function _Debug_crash_UNUSED(identifier) -{ - throw new Error('https://github.com/elm/core/blob/1.0.0/hints/' + identifier + '.md'); -} - - -function _Debug_crash(identifier, fact1, fact2, fact3, fact4) -{ - switch(identifier) - { - case 0: - 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.'); - - case 1: - 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.'); - - case 2: - var jsonErrorString = fact1; - throw new Error('Problem with the flags given to your Elm program on initialization.\n\n' + jsonErrorString); - - case 3: - var portName = fact1; - throw new Error('There can only be one port named `' + portName + '`, but your program has multiple.'); - - case 4: - var portName = fact1; - var problem = fact2; - throw new Error('Trying to send an unexpected type of value through port `' + portName + '`:\n' + problem); - - case 5: - 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.'); - - case 6: - var moduleName = fact1; - 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!'); - - case 8: - var moduleName = fact1; - var region = fact2; - var message = fact3; - throw new Error('TODO in module `' + moduleName + '` ' + _Debug_regionToString(region) + '\n\n' + message); - - case 9: - var moduleName = fact1; - var region = fact2; - var value = fact3; - var message = fact4; - throw new Error( - 'TODO in module `' + moduleName + '` from the `case` expression ' - + _Debug_regionToString(region) + '\n\nIt received the following value:\n\n ' - + _Debug_toString(value).replace('\n', '\n ') - + '\n\nBut the branch that handles it says:\n\n ' + message.replace('\n', '\n ') - ); - - case 10: - throw new Error('Bug in https://github.com/elm/virtual-dom/issues'); - - case 11: - throw new Error('Cannot perform mod 0. Division by zero error.'); - } -} - -function _Debug_regionToString(region) -{ - if (region.start.line === region.end.line) - { - return 'on line ' + region.start.line; - } - return 'on lines ' + region.start.line + ' through ' + region.end.line; -} - - - -// MATH - -var _Basics_add = F2(function(a, b) { return a + b; }); -var _Basics_sub = F2(function(a, b) { return a - b; }); -var _Basics_mul = F2(function(a, b) { return a * b; }); -var _Basics_fdiv = F2(function(a, b) { return a / b; }); -var _Basics_idiv = F2(function(a, b) { return (a / b) | 0; }); -var _Basics_pow = F2(Math.pow); - -var _Basics_remainderBy = F2(function(b, a) { return a % b; }); - -// https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/divmodnote-letter.pdf -var _Basics_modBy = F2(function(modulus, x) -{ - var answer = x % modulus; - return modulus === 0 - ? _Debug_crash(11) - : - ((answer > 0 && modulus < 0) || (answer < 0 && modulus > 0)) - ? answer + modulus - : answer; -}); - - -// TRIGONOMETRY - -var _Basics_pi = Math.PI; -var _Basics_e = Math.E; -var _Basics_cos = Math.cos; -var _Basics_sin = Math.sin; -var _Basics_tan = Math.tan; -var _Basics_acos = Math.acos; -var _Basics_asin = Math.asin; -var _Basics_atan = Math.atan; -var _Basics_atan2 = F2(Math.atan2); - - -// MORE MATH - -function _Basics_toFloat(x) { return x; } -function _Basics_truncate(n) { return n | 0; } -function _Basics_isInfinite(n) { return n === Infinity || n === -Infinity; } - -var _Basics_ceiling = Math.ceil; -var _Basics_floor = Math.floor; -var _Basics_round = Math.round; -var _Basics_sqrt = Math.sqrt; -var _Basics_log = Math.log; -var _Basics_isNaN = isNaN; - - -// BOOLEANS - -function _Basics_not(bool) { return !bool; } -var _Basics_and = F2(function(a, b) { return a && b; }); -var _Basics_or = F2(function(a, b) { return a || b; }); -var _Basics_xor = F2(function(a, b) { return a !== b; }); - - - -var _String_cons = F2(function(chr, str) -{ - return chr + str; -}); - -function _String_uncons(string) -{ - var word = string.charCodeAt(0); - return !isNaN(word) - ? $elm$core$Maybe$Just( - 0xD800 <= word && word <= 0xDBFF - ? _Utils_Tuple2(_Utils_chr(string[0] + string[1]), string.slice(2)) - : _Utils_Tuple2(_Utils_chr(string[0]), string.slice(1)) - ) - : $elm$core$Maybe$Nothing; -} - -var _String_append = F2(function(a, b) -{ - return a + b; -}); - -function _String_length(str) -{ - return str.length; -} - -var _String_map = F2(function(func, string) -{ - var len = string.length; - var array = new Array(len); - var i = 0; - while (i < len) - { - var word = string.charCodeAt(i); - if (0xD800 <= word && word <= 0xDBFF) - { - array[i] = func(_Utils_chr(string[i] + string[i+1])); - i += 2; - continue; - } - array[i] = func(_Utils_chr(string[i])); - i++; - } - return array.join(''); -}); - -var _String_filter = F2(function(isGood, str) -{ - var arr = []; - var len = str.length; - var i = 0; - while (i < len) - { - var char = str[i]; - var word = str.charCodeAt(i); - i++; - if (0xD800 <= word && word <= 0xDBFF) - { - char += str[i]; - i++; - } - - if (isGood(_Utils_chr(char))) - { - arr.push(char); - } - } - return arr.join(''); -}); - -function _String_reverse(str) -{ - var len = str.length; - var arr = new Array(len); - var i = 0; - while (i < len) - { - var word = str.charCodeAt(i); - if (0xD800 <= word && word <= 0xDBFF) - { - arr[len - i] = str[i + 1]; - i++; - arr[len - i] = str[i - 1]; - i++; - } - else - { - arr[len - i] = str[i]; - i++; - } - } - return arr.join(''); -} - -var _String_foldl = F3(function(func, state, string) -{ - var len = string.length; - var i = 0; - while (i < len) - { - var char = string[i]; - var word = string.charCodeAt(i); - i++; - if (0xD800 <= word && word <= 0xDBFF) - { - char += string[i]; - i++; - } - state = A2(func, _Utils_chr(char), state); - } - return state; -}); - -var _String_foldr = F3(function(func, state, string) -{ - var i = string.length; - while (i--) - { - var char = string[i]; - var word = string.charCodeAt(i); - if (0xDC00 <= word && word <= 0xDFFF) - { - i--; - char = string[i] + char; - } - state = A2(func, _Utils_chr(char), state); - } - return state; -}); - -var _String_split = F2(function(sep, str) -{ - return str.split(sep); -}); - -var _String_join = F2(function(sep, strs) -{ - return strs.join(sep); -}); - -var _String_slice = F3(function(start, end, str) { - return str.slice(start, end); -}); - -function _String_trim(str) -{ - return str.trim(); -} - -function _String_trimLeft(str) -{ - return str.replace(/^\s+/, ''); -} - -function _String_trimRight(str) -{ - return str.replace(/\s+$/, ''); -} - -function _String_words(str) -{ - return _List_fromArray(str.trim().split(/\s+/g)); -} - -function _String_lines(str) -{ - return _List_fromArray(str.split(/\r\n|\r|\n/g)); -} - -function _String_toUpper(str) -{ - return str.toUpperCase(); -} - -function _String_toLower(str) -{ - return str.toLowerCase(); -} - -var _String_any = F2(function(isGood, string) -{ - var i = string.length; - while (i--) - { - var char = string[i]; - var word = string.charCodeAt(i); - if (0xDC00 <= word && word <= 0xDFFF) - { - i--; - char = string[i] + char; - } - if (isGood(_Utils_chr(char))) - { - return true; - } - } - return false; -}); - -var _String_all = F2(function(isGood, string) -{ - var i = string.length; - while (i--) - { - var char = string[i]; - var word = string.charCodeAt(i); - if (0xDC00 <= word && word <= 0xDFFF) - { - i--; - char = string[i] + char; - } - if (!isGood(_Utils_chr(char))) - { - return false; - } - } - return true; -}); - -var _String_contains = F2(function(sub, str) -{ - return str.indexOf(sub) > -1; -}); - -var _String_startsWith = F2(function(sub, str) -{ - return str.indexOf(sub) === 0; -}); - -var _String_endsWith = F2(function(sub, str) -{ - return str.length >= sub.length && - str.lastIndexOf(sub) === str.length - sub.length; -}); - -var _String_indexes = F2(function(sub, str) -{ - var subLen = sub.length; - - if (subLen < 1) - { - return _List_Nil; - } - - var i = 0; - var is = []; - - while ((i = str.indexOf(sub, i)) > -1) - { - is.push(i); - i = i + subLen; - } - - return _List_fromArray(is); -}); - - -// TO STRING - -function _String_fromNumber(number) -{ - return number + ''; -} - - -// INT CONVERSIONS - -function _String_toInt(str) -{ - var total = 0; - var code0 = str.charCodeAt(0); - var start = code0 == 0x2B /* + */ || code0 == 0x2D /* - */ ? 1 : 0; - - for (var i = start; i < str.length; ++i) - { - var code = str.charCodeAt(i); - if (code < 0x30 || 0x39 < code) - { - return $elm$core$Maybe$Nothing; - } - total = 10 * total + code - 0x30; - } - - return i == start - ? $elm$core$Maybe$Nothing - : $elm$core$Maybe$Just(code0 == 0x2D ? -total : total); -} - - -// FLOAT CONVERSIONS - -function _String_toFloat(s) -{ - // check if it is a hex, octal, or binary number - if (s.length === 0 || /[\sxbo]/.test(s)) - { - return $elm$core$Maybe$Nothing; - } - var n = +s; - // faster isNaN check - return n === n ? $elm$core$Maybe$Just(n) : $elm$core$Maybe$Nothing; -} - -function _String_fromList(chars) -{ - return _List_toArray(chars).join(''); -} - - - - -function _Char_toCode(char) -{ - var code = char.charCodeAt(0); - if (0xD800 <= code && code <= 0xDBFF) - { - return (code - 0xD800) * 0x400 + char.charCodeAt(1) - 0xDC00 + 0x10000 - } - return code; -} - -function _Char_fromCode(code) -{ - return _Utils_chr( - (code < 0 || 0x10FFFF < code) - ? '\uFFFD' - : - (code <= 0xFFFF) - ? String.fromCharCode(code) - : - (code -= 0x10000, - String.fromCharCode(Math.floor(code / 0x400) + 0xD800, code % 0x400 + 0xDC00) - ) - ); -} - -function _Char_toUpper(char) -{ - return _Utils_chr(char.toUpperCase()); -} - -function _Char_toLower(char) -{ - return _Utils_chr(char.toLowerCase()); -} - -function _Char_toLocaleUpper(char) -{ - return _Utils_chr(char.toLocaleUpperCase()); -} - -function _Char_toLocaleLower(char) -{ - return _Utils_chr(char.toLocaleLowerCase()); -} - - - -/**/ -function _Json_errorToString(error) -{ - return $elm$json$Json$Decode$errorToString(error); -} -//*/ - - -// CORE DECODERS - -function _Json_succeed(msg) -{ - return { - $: 0, - a: msg - }; -} - -function _Json_fail(msg) -{ - return { - $: 1, - a: msg - }; -} - -function _Json_decodePrim(decoder) -{ - return { $: 2, b: decoder }; -} - -var _Json_decodeInt = _Json_decodePrim(function(value) { - return (typeof value !== 'number') - ? _Json_expecting('an INT', value) - : - (-2147483647 < value && value < 2147483647 && (value | 0) === value) - ? $elm$core$Result$Ok(value) - : - (isFinite(value) && !(value % 1)) - ? $elm$core$Result$Ok(value) - : _Json_expecting('an INT', value); -}); - -var _Json_decodeBool = _Json_decodePrim(function(value) { - return (typeof value === 'boolean') - ? $elm$core$Result$Ok(value) - : _Json_expecting('a BOOL', value); -}); - -var _Json_decodeFloat = _Json_decodePrim(function(value) { - return (typeof value === 'number') - ? $elm$core$Result$Ok(value) - : _Json_expecting('a FLOAT', value); -}); - -var _Json_decodeValue = _Json_decodePrim(function(value) { - return $elm$core$Result$Ok(_Json_wrap(value)); -}); - -var _Json_decodeString = _Json_decodePrim(function(value) { - return (typeof value === 'string') - ? $elm$core$Result$Ok(value) - : (value instanceof String) - ? $elm$core$Result$Ok(value + '') - : _Json_expecting('a STRING', value); -}); - -function _Json_decodeList(decoder) { return { $: 3, b: decoder }; } -function _Json_decodeArray(decoder) { return { $: 4, b: decoder }; } - -function _Json_decodeNull(value) { return { $: 5, c: value }; } - -var _Json_decodeField = F2(function(field, decoder) -{ - return { - $: 6, - d: field, - b: decoder - }; -}); - -var _Json_decodeIndex = F2(function(index, decoder) -{ - return { - $: 7, - e: index, - b: decoder - }; -}); - -function _Json_decodeKeyValuePairs(decoder) -{ - return { - $: 8, - b: decoder - }; -} - -function _Json_mapMany(f, decoders) -{ - return { - $: 9, - f: f, - g: decoders - }; -} - -var _Json_andThen = F2(function(callback, decoder) -{ - return { - $: 10, - b: decoder, - h: callback - }; -}); - -function _Json_oneOf(decoders) -{ - return { - $: 11, - g: decoders - }; -} - - -// DECODING OBJECTS - -var _Json_map1 = F2(function(f, d1) -{ - return _Json_mapMany(f, [d1]); -}); - -var _Json_map2 = F3(function(f, d1, d2) -{ - return _Json_mapMany(f, [d1, d2]); -}); - -var _Json_map3 = F4(function(f, d1, d2, d3) -{ - return _Json_mapMany(f, [d1, d2, d3]); -}); - -var _Json_map4 = F5(function(f, d1, d2, d3, d4) -{ - return _Json_mapMany(f, [d1, d2, d3, d4]); -}); - -var _Json_map5 = F6(function(f, d1, d2, d3, d4, d5) -{ - return _Json_mapMany(f, [d1, d2, d3, d4, d5]); -}); - -var _Json_map6 = F7(function(f, d1, d2, d3, d4, d5, d6) -{ - return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6]); -}); - -var _Json_map7 = F8(function(f, d1, d2, d3, d4, d5, d6, d7) -{ - return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7]); -}); - -var _Json_map8 = F9(function(f, d1, d2, d3, d4, d5, d6, d7, d8) -{ - return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7, d8]); -}); - - -// DECODE - -var _Json_runOnString = F2(function(decoder, string) -{ - try - { - var value = JSON.parse(string); - return _Json_runHelp(decoder, value); - } - catch (e) - { - return $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, 'This is not valid JSON! ' + e.message, _Json_wrap(string))); - } -}); - -var _Json_run = F2(function(decoder, value) -{ - return _Json_runHelp(decoder, _Json_unwrap(value)); -}); - -function _Json_runHelp(decoder, value) -{ - switch (decoder.$) - { - case 2: - return decoder.b(value); - - case 5: - return (value === null) - ? $elm$core$Result$Ok(decoder.c) - : _Json_expecting('null', value); - - case 3: - if (!_Json_isArray(value)) - { - return _Json_expecting('a LIST', value); - } - return _Json_runArrayDecoder(decoder.b, value, _List_fromArray); - - case 4: - if (!_Json_isArray(value)) - { - return _Json_expecting('an ARRAY', value); - } - return _Json_runArrayDecoder(decoder.b, value, _Json_toElmArray); - - case 6: - var field = decoder.d; - if (typeof value !== 'object' || value === null || !(field in value)) - { - return _Json_expecting('an OBJECT with a field named `' + field + '`', value); - } - var result = _Json_runHelp(decoder.b, value[field]); - return ($elm$core$Result$isOk(result)) ? result : $elm$core$Result$Err(A2($elm$json$Json$Decode$Field, field, result.a)); - - case 7: - var index = decoder.e; - if (!_Json_isArray(value)) - { - return _Json_expecting('an ARRAY', value); - } - if (index >= value.length) - { - return _Json_expecting('a LONGER array. Need index ' + index + ' but only see ' + value.length + ' entries', value); - } - var result = _Json_runHelp(decoder.b, value[index]); - return ($elm$core$Result$isOk(result)) ? result : $elm$core$Result$Err(A2($elm$json$Json$Decode$Index, index, result.a)); - - case 8: - if (typeof value !== 'object' || value === null || _Json_isArray(value)) - { - return _Json_expecting('an OBJECT', value); - } - - var keyValuePairs = _List_Nil; - // TODO test perf of Object.keys and switch when support is good enough - for (var key in value) - { - if (value.hasOwnProperty(key)) - { - var result = _Json_runHelp(decoder.b, value[key]); - if (!$elm$core$Result$isOk(result)) - { - return $elm$core$Result$Err(A2($elm$json$Json$Decode$Field, key, result.a)); - } - keyValuePairs = _List_Cons(_Utils_Tuple2(key, result.a), keyValuePairs); - } - } - return $elm$core$Result$Ok($elm$core$List$reverse(keyValuePairs)); - - case 9: - var answer = decoder.f; - var decoders = decoder.g; - for (var i = 0; i < decoders.length; i++) - { - var result = _Json_runHelp(decoders[i], value); - if (!$elm$core$Result$isOk(result)) - { - return result; - } - answer = answer(result.a); - } - return $elm$core$Result$Ok(answer); - - case 10: - var result = _Json_runHelp(decoder.b, value); - return (!$elm$core$Result$isOk(result)) - ? result - : _Json_runHelp(decoder.h(result.a), value); - - case 11: - var errors = _List_Nil; - for (var temp = decoder.g; temp.b; temp = temp.b) // WHILE_CONS - { - var result = _Json_runHelp(temp.a, value); - if ($elm$core$Result$isOk(result)) - { - return result; - } - errors = _List_Cons(result.a, errors); - } - return $elm$core$Result$Err($elm$json$Json$Decode$OneOf($elm$core$List$reverse(errors))); - - case 1: - return $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, decoder.a, _Json_wrap(value))); - - case 0: - return $elm$core$Result$Ok(decoder.a); - } -} - -function _Json_runArrayDecoder(decoder, value, toElmValue) -{ - var len = value.length; - var array = new Array(len); - for (var i = 0; i < len; i++) - { - var result = _Json_runHelp(decoder, value[i]); - if (!$elm$core$Result$isOk(result)) - { - return $elm$core$Result$Err(A2($elm$json$Json$Decode$Index, i, result.a)); - } - array[i] = result.a; - } - return $elm$core$Result$Ok(toElmValue(array)); -} - -function _Json_isArray(value) -{ - return Array.isArray(value) || (typeof FileList !== 'undefined' && value instanceof FileList); -} - -function _Json_toElmArray(array) -{ - return A2($elm$core$Array$initialize, array.length, function(i) { return array[i]; }); -} - -function _Json_expecting(type, value) -{ - return $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, 'Expecting ' + type, _Json_wrap(value))); -} - - -// EQUALITY - -function _Json_equality(x, y) -{ - if (x === y) - { - return true; - } - - if (x.$ !== y.$) - { - return false; - } - - switch (x.$) - { - case 0: - case 1: - return x.a === y.a; - - case 2: - return x.b === y.b; - - case 5: - return x.c === y.c; - - case 3: - case 4: - case 8: - return _Json_equality(x.b, y.b); - - case 6: - return x.d === y.d && _Json_equality(x.b, y.b); - - case 7: - return x.e === y.e && _Json_equality(x.b, y.b); - - case 9: - return x.f === y.f && _Json_listEquality(x.g, y.g); - - case 10: - return x.h === y.h && _Json_equality(x.b, y.b); - - case 11: - return _Json_listEquality(x.g, y.g); - } -} - -function _Json_listEquality(aDecoders, bDecoders) -{ - var len = aDecoders.length; - if (len !== bDecoders.length) - { - return false; - } - for (var i = 0; i < len; i++) - { - if (!_Json_equality(aDecoders[i], bDecoders[i])) - { - return false; - } - } - return true; -} - - -// ENCODE - -var _Json_encode = F2(function(indentLevel, value) -{ - return JSON.stringify(_Json_unwrap(value), null, indentLevel) + ''; -}); - -function _Json_wrap(value) { return { $: 0, a: value }; } -function _Json_unwrap(value) { return value.a; } - -function _Json_wrap_UNUSED(value) { return value; } -function _Json_unwrap_UNUSED(value) { return value; } - -function _Json_emptyArray() { return []; } -function _Json_emptyObject() { return {}; } - -var _Json_addField = F3(function(key, value, object) -{ - object[key] = _Json_unwrap(value); - return object; -}); - -function _Json_addEntry(func) -{ - return F2(function(entry, array) - { - array.push(_Json_unwrap(func(entry))); - return array; - }); -} - -var _Json_encodeNull = _Json_wrap(null); - - - -// TASKS - -function _Scheduler_succeed(value) -{ - return { - $: 0, - a: value - }; -} - -function _Scheduler_fail(error) -{ - return { - $: 1, - a: error - }; -} - -function _Scheduler_binding(callback) -{ - return { - $: 2, - b: callback, - c: null - }; -} - -var _Scheduler_andThen = F2(function(callback, task) -{ - return { - $: 3, - b: callback, - d: task - }; -}); - -var _Scheduler_onError = F2(function(callback, task) -{ - return { - $: 4, - b: callback, - d: task - }; -}); - -function _Scheduler_receive(callback) -{ - return { - $: 5, - b: callback - }; -} - - -// PROCESSES - -var _Scheduler_guid = 0; - -function _Scheduler_rawSpawn(task) -{ - var proc = { - $: 0, - e: _Scheduler_guid++, - f: task, - g: null, - h: [] - }; - - _Scheduler_enqueue(proc); - - return proc; -} - -function _Scheduler_spawn(task) -{ - return _Scheduler_binding(function(callback) { - callback(_Scheduler_succeed(_Scheduler_rawSpawn(task))); - }); -} - -function _Scheduler_rawSend(proc, msg) -{ - proc.h.push(msg); - _Scheduler_enqueue(proc); -} - -var _Scheduler_send = F2(function(proc, msg) -{ - return _Scheduler_binding(function(callback) { - _Scheduler_rawSend(proc, msg); - callback(_Scheduler_succeed(_Utils_Tuple0)); - }); -}); - -function _Scheduler_kill(proc) -{ - return _Scheduler_binding(function(callback) { - var task = proc.f; - if (task.$ === 2 && task.c) - { - task.c(); - } - - proc.f = null; - - callback(_Scheduler_succeed(_Utils_Tuple0)); - }); -} - - -/* STEP PROCESSES - -type alias Process = - { $ : tag - , id : unique_id - , root : Task - , stack : null | { $: SUCCEED | FAIL, a: callback, b: stack } - , mailbox : [msg] - } - -*/ - - -var _Scheduler_working = false; -var _Scheduler_queue = []; - - -function _Scheduler_enqueue(proc) -{ - _Scheduler_queue.push(proc); - if (_Scheduler_working) - { - return; - } - _Scheduler_working = true; - while (proc = _Scheduler_queue.shift()) - { - _Scheduler_step(proc); - } - _Scheduler_working = false; -} - - -function _Scheduler_step(proc) -{ - while (proc.f) - { - var rootTag = proc.f.$; - if (rootTag === 0 || rootTag === 1) - { - while (proc.g && proc.g.$ !== rootTag) - { - proc.g = proc.g.i; - } - if (!proc.g) - { - return; - } - proc.f = proc.g.b(proc.f.a); - proc.g = proc.g.i; - } - else if (rootTag === 2) - { - proc.f.c = proc.f.b(function(newRoot) { - proc.f = newRoot; - _Scheduler_enqueue(proc); - }); - return; - } - else if (rootTag === 5) - { - if (proc.h.length === 0) - { - return; - } - proc.f = proc.f.b(proc.h.shift()); - } - else // if (rootTag === 3 || rootTag === 4) - { - proc.g = { - $: rootTag === 3 ? 0 : 1, - b: proc.f.b, - i: proc.g - }; - proc.f = proc.f.d; - } - } -} - - - -function _Process_sleep(time) -{ - return _Scheduler_binding(function(callback) { - var id = setTimeout(function() { - callback(_Scheduler_succeed(_Utils_Tuple0)); - }, time); - - return function() { clearTimeout(id); }; - }); -} - - - - -// PROGRAMS - - -var _Platform_worker = F4(function(impl, flagDecoder, debugMetadata, args) -{ - return _Platform_initialize( - flagDecoder, - args, - impl.init, - impl.update, - impl.subscriptions, - function() { return function() {} } - ); -}); - - - -// INITIALIZE A PROGRAM - - -function _Platform_initialize(flagDecoder, args, init, update, subscriptions, stepperBuilder) -{ - var result = A2(_Json_run, flagDecoder, _Json_wrap(args ? args['flags'] : undefined)); - $elm$core$Result$isOk(result) || _Debug_crash(2 /**/, _Json_errorToString(result.a) /**/); - var managers = {}; - var initPair = init(result.a); - var model = initPair.a; - var stepper = stepperBuilder(sendToApp, model); - var ports = _Platform_setupEffects(managers, sendToApp); - - function sendToApp(msg, viewMetadata) - { - var pair = A2(update, msg, model); - stepper(model = pair.a, viewMetadata); - _Platform_enqueueEffects(managers, pair.b, subscriptions(model)); - } - - _Platform_enqueueEffects(managers, initPair.b, subscriptions(model)); - - return ports ? { ports: ports } : {}; -} - - - -// TRACK PRELOADS -// -// This is used by code in elm/browser and elm/http -// to register any HTTP requests that are triggered by init. -// - - -var _Platform_preload; - - -function _Platform_registerPreload(url) -{ - _Platform_preload.add(url); -} - - - -// EFFECT MANAGERS - - -var _Platform_effectManagers = {}; - - -function _Platform_setupEffects(managers, sendToApp) -{ - var ports; - - // setup all necessary effect managers - for (var key in _Platform_effectManagers) - { - var manager = _Platform_effectManagers[key]; - - if (manager.a) - { - ports = ports || {}; - ports[key] = manager.a(key, sendToApp); - } - - managers[key] = _Platform_instantiateManager(manager, sendToApp); - } - - return ports; -} - - -function _Platform_createManager(init, onEffects, onSelfMsg, cmdMap, subMap) -{ - return { - b: init, - c: onEffects, - d: onSelfMsg, - e: cmdMap, - f: subMap - }; -} - - -function _Platform_instantiateManager(info, sendToApp) -{ - var router = { - g: sendToApp, - h: undefined - }; - - var onEffects = info.c; - var onSelfMsg = info.d; - var cmdMap = info.e; - var subMap = info.f; - - function loop(state) - { - return A2(_Scheduler_andThen, loop, _Scheduler_receive(function(msg) - { - var value = msg.a; - - if (msg.$ === 0) - { - return A3(onSelfMsg, router, value, state); - } - - return cmdMap && subMap - ? A4(onEffects, router, value.i, value.j, state) - : A3(onEffects, router, cmdMap ? value.i : value.j, state); - })); - } - - return router.h = _Scheduler_rawSpawn(A2(_Scheduler_andThen, loop, info.b)); -} - - - -// ROUTING - - -var _Platform_sendToApp = F2(function(router, msg) -{ - return _Scheduler_binding(function(callback) - { - router.g(msg); - callback(_Scheduler_succeed(_Utils_Tuple0)); - }); -}); - - -var _Platform_sendToSelf = F2(function(router, msg) -{ - return A2(_Scheduler_send, router.h, { - $: 0, - a: msg - }); -}); - - - -// BAGS - - -function _Platform_leaf(home) -{ - return function(value) - { - return { - $: 1, - k: home, - l: value - }; - }; -} - - -function _Platform_batch(list) -{ - return { - $: 2, - m: list - }; -} - - -var _Platform_map = F2(function(tagger, bag) -{ - return { - $: 3, - n: tagger, - o: bag - } -}); - - - -// PIPE BAGS INTO EFFECT MANAGERS -// -// Effects must be queued! -// -// Say your init contains a synchronous command, like Time.now or Time.here -// -// - This will produce a batch of effects (FX_1) -// - The synchronous task triggers the subsequent `update` call -// - This will produce a batch of effects (FX_2) -// -// If we just start dispatching FX_2, subscriptions from FX_2 can be processed -// before subscriptions from FX_1. No good! Earlier versions of this code had -// this problem, leading to these reports: -// -// https://github.com/elm/core/issues/980 -// https://github.com/elm/core/pull/981 -// https://github.com/elm/compiler/issues/1776 -// -// The queue is necessary to avoid ordering issues for synchronous commands. - - -// Why use true/false here? Why not just check the length of the queue? -// The goal is to detect "are we currently dispatching effects?" If we -// are, we need to bail and let the ongoing while loop handle things. -// -// Now say the queue has 1 element. When we dequeue the final element, -// the queue will be empty, but we are still actively dispatching effects. -// So you could get queue jumping in a really tricky category of cases. -// -var _Platform_effectsQueue = []; -var _Platform_effectsActive = false; - - -function _Platform_enqueueEffects(managers, cmdBag, subBag) -{ - _Platform_effectsQueue.push({ p: managers, q: cmdBag, r: subBag }); - - if (_Platform_effectsActive) return; - - _Platform_effectsActive = true; - for (var fx; fx = _Platform_effectsQueue.shift(); ) - { - _Platform_dispatchEffects(fx.p, fx.q, fx.r); - } - _Platform_effectsActive = false; -} - - -function _Platform_dispatchEffects(managers, cmdBag, subBag) -{ - var effectsDict = {}; - _Platform_gatherEffects(true, cmdBag, effectsDict, null); - _Platform_gatherEffects(false, subBag, effectsDict, null); - - for (var home in managers) - { - _Scheduler_rawSend(managers[home], { - $: 'fx', - a: effectsDict[home] || { i: _List_Nil, j: _List_Nil } - }); - } -} - - -function _Platform_gatherEffects(isCmd, bag, effectsDict, taggers) -{ - switch (bag.$) - { - case 1: - var home = bag.k; - var effect = _Platform_toEffect(isCmd, home, taggers, bag.l); - effectsDict[home] = _Platform_insert(isCmd, effect, effectsDict[home]); - return; - - case 2: - for (var list = bag.m; list.b; list = list.b) // WHILE_CONS - { - _Platform_gatherEffects(isCmd, list.a, effectsDict, taggers); - } - return; - - case 3: - _Platform_gatherEffects(isCmd, bag.o, effectsDict, { - s: bag.n, - t: taggers - }); - return; - } -} - - -function _Platform_toEffect(isCmd, home, taggers, value) -{ - function applyTaggers(x) - { - for (var temp = taggers; temp; temp = temp.t) - { - x = temp.s(x); - } - return x; - } - - var map = isCmd - ? _Platform_effectManagers[home].e - : _Platform_effectManagers[home].f; - - return A2(map, applyTaggers, value) -} - - -function _Platform_insert(isCmd, newEffect, effects) -{ - effects = effects || { i: _List_Nil, j: _List_Nil }; - - isCmd - ? (effects.i = _List_Cons(newEffect, effects.i)) - : (effects.j = _List_Cons(newEffect, effects.j)); - - return effects; -} - - - -// PORTS - - -function _Platform_checkPortName(name) -{ - if (_Platform_effectManagers[name]) - { - _Debug_crash(3, name) - } -} - - - -// OUTGOING PORTS - - -function _Platform_outgoingPort(name, converter) -{ - _Platform_checkPortName(name); - _Platform_effectManagers[name] = { - e: _Platform_outgoingPortMap, - u: converter, - a: _Platform_setupOutgoingPort - }; - return _Platform_leaf(name); -} - - -var _Platform_outgoingPortMap = F2(function(tagger, value) { return value; }); - - -function _Platform_setupOutgoingPort(name) -{ - var subs = []; - var converter = _Platform_effectManagers[name].u; - - // CREATE MANAGER - - var init = _Process_sleep(0); - - _Platform_effectManagers[name].b = init; - _Platform_effectManagers[name].c = F3(function(router, cmdList, state) - { - for ( ; cmdList.b; cmdList = cmdList.b) // WHILE_CONS - { - // grab a separate reference to subs in case unsubscribe is called - var currentSubs = subs; - var value = _Json_unwrap(converter(cmdList.a)); - for (var i = 0; i < currentSubs.length; i++) - { - currentSubs[i](value); - } - } - return init; - }); - - // PUBLIC API - - function subscribe(callback) - { - subs.push(callback); - } - - function unsubscribe(callback) - { - // copy subs into a new array in case unsubscribe is called within a - // subscribed callback - subs = subs.slice(); - var index = subs.indexOf(callback); - if (index >= 0) - { - subs.splice(index, 1); - } - } - - return { - subscribe: subscribe, - unsubscribe: unsubscribe - }; -} - - - -// INCOMING PORTS - - -function _Platform_incomingPort(name, converter) -{ - _Platform_checkPortName(name); - _Platform_effectManagers[name] = { - f: _Platform_incomingPortMap, - u: converter, - a: _Platform_setupIncomingPort - }; - return _Platform_leaf(name); -} - - -var _Platform_incomingPortMap = F2(function(tagger, finalTagger) -{ - return function(value) - { - return tagger(finalTagger(value)); - }; -}); - - -function _Platform_setupIncomingPort(name, sendToApp) -{ - var subs = _List_Nil; - var converter = _Platform_effectManagers[name].u; - - // CREATE MANAGER - - var init = _Scheduler_succeed(null); - - _Platform_effectManagers[name].b = init; - _Platform_effectManagers[name].c = F3(function(router, subList, state) - { - subs = subList; - return init; - }); - - // PUBLIC API - - function send(incomingValue) - { - var result = A2(_Json_run, converter, _Json_wrap(incomingValue)); - - $elm$core$Result$isOk(result) || _Debug_crash(4, name, result.a); - - var value = result.a; - for (var temp = subs; temp.b; temp = temp.b) // WHILE_CONS - { - sendToApp(temp.a(value)); - } - } - - return { send: send }; -} - - - -// EXPORT ELM MODULES -// -// Have DEBUG and PROD versions so that we can (1) give nicer errors in -// debug mode and (2) not pay for the bits needed for that in prod mode. -// - - -function _Platform_export_UNUSED(exports) -{ - scope['Elm'] - ? _Platform_mergeExportsProd(scope['Elm'], exports) - : scope['Elm'] = exports; -} - - -function _Platform_mergeExportsProd(obj, exports) -{ - for (var name in exports) - { - (name in obj) - ? (name == 'init') - ? _Debug_crash(6) - : _Platform_mergeExportsProd(obj[name], exports[name]) - : (obj[name] = exports[name]); - } -} - - -function _Platform_export(exports) -{ - scope['Elm'] - ? _Platform_mergeExportsDebug('Elm', scope['Elm'], exports) - : scope['Elm'] = exports; -} - - -function _Platform_mergeExportsDebug(moduleName, obj, exports) -{ - for (var name in exports) - { - (name in obj) - ? (name == 'init') - ? _Debug_crash(6, moduleName) - : _Platform_mergeExportsDebug(moduleName + '.' + name, obj[name], exports[name]) - : (obj[name] = exports[name]); - } -} - - - - -// HELPERS - - -var _VirtualDom_divertHrefToApp; - -var _VirtualDom_doc = typeof document !== 'undefined' ? document : {}; - - -function _VirtualDom_appendChild(parent, child) -{ - parent.appendChild(child); -} - -var _VirtualDom_init = F4(function(virtualNode, flagDecoder, debugMetadata, args) -{ - // NOTE: this function needs _Platform_export available to work - - /**_UNUSED/ - var node = args['node']; - //*/ - /**/ - var node = args && args['node'] ? args['node'] : _Debug_crash(0); - //*/ - - node.parentNode.replaceChild( - _VirtualDom_render(virtualNode, function() {}), - node - ); - - return {}; -}); - - - -// TEXT - - -function _VirtualDom_text(string) -{ - return { - $: 0, - a: string - }; -} - - - -// NODE - - -var _VirtualDom_nodeNS = F2(function(namespace, tag) -{ - return F2(function(factList, kidList) - { - for (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS - { - var kid = kidList.a; - descendantsCount += (kid.b || 0); - kids.push(kid); - } - descendantsCount += kids.length; - - return { - $: 1, - c: tag, - d: _VirtualDom_organizeFacts(factList), - e: kids, - f: namespace, - b: descendantsCount - }; - }); -}); - - -var _VirtualDom_node = _VirtualDom_nodeNS(undefined); - - - -// KEYED NODE - - -var _VirtualDom_keyedNodeNS = F2(function(namespace, tag) -{ - return F2(function(factList, kidList) - { - for (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS - { - var kid = kidList.a; - descendantsCount += (kid.b.b || 0); - kids.push(kid); - } - descendantsCount += kids.length; - - return { - $: 2, - c: tag, - d: _VirtualDom_organizeFacts(factList), - e: kids, - f: namespace, - b: descendantsCount - }; - }); -}); - - -var _VirtualDom_keyedNode = _VirtualDom_keyedNodeNS(undefined); - - - -// CUSTOM - - -function _VirtualDom_custom(factList, model, render, diff) -{ - return { - $: 3, - d: _VirtualDom_organizeFacts(factList), - g: model, - h: render, - i: diff - }; -} - - - -// MAP - - -var _VirtualDom_map = F2(function(tagger, node) -{ - return { - $: 4, - j: tagger, - k: node, - b: 1 + (node.b || 0) - }; -}); - - - -// LAZY - - -function _VirtualDom_thunk(refs, thunk) -{ - return { - $: 5, - l: refs, - m: thunk, - k: undefined - }; -} - -var _VirtualDom_lazy = F2(function(func, a) -{ - return _VirtualDom_thunk([func, a], function() { - return func(a); - }); -}); - -var _VirtualDom_lazy2 = F3(function(func, a, b) -{ - return _VirtualDom_thunk([func, a, b], function() { - return A2(func, a, b); - }); -}); - -var _VirtualDom_lazy3 = F4(function(func, a, b, c) -{ - return _VirtualDom_thunk([func, a, b, c], function() { - return A3(func, a, b, c); - }); -}); - -var _VirtualDom_lazy4 = F5(function(func, a, b, c, d) -{ - return _VirtualDom_thunk([func, a, b, c, d], function() { - return A4(func, a, b, c, d); - }); -}); - -var _VirtualDom_lazy5 = F6(function(func, a, b, c, d, e) -{ - return _VirtualDom_thunk([func, a, b, c, d, e], function() { - return A5(func, a, b, c, d, e); - }); -}); - -var _VirtualDom_lazy6 = F7(function(func, a, b, c, d, e, f) -{ - return _VirtualDom_thunk([func, a, b, c, d, e, f], function() { - return A6(func, a, b, c, d, e, f); - }); -}); - -var _VirtualDom_lazy7 = F8(function(func, a, b, c, d, e, f, g) -{ - return _VirtualDom_thunk([func, a, b, c, d, e, f, g], function() { - return A7(func, a, b, c, d, e, f, g); - }); -}); - -var _VirtualDom_lazy8 = F9(function(func, a, b, c, d, e, f, g, h) -{ - return _VirtualDom_thunk([func, a, b, c, d, e, f, g, h], function() { - return A8(func, a, b, c, d, e, f, g, h); - }); -}); - - - -// FACTS - - -var _VirtualDom_on = F2(function(key, handler) -{ - return { - $: 'a0', - n: key, - o: handler - }; -}); -var _VirtualDom_style = F2(function(key, value) -{ - return { - $: 'a1', - n: key, - o: value - }; -}); -var _VirtualDom_property = F2(function(key, value) -{ - return { - $: 'a2', - n: key, - o: value - }; -}); -var _VirtualDom_attribute = F2(function(key, value) -{ - return { - $: 'a3', - n: key, - o: value - }; -}); -var _VirtualDom_attributeNS = F3(function(namespace, key, value) -{ - return { - $: 'a4', - n: key, - o: { f: namespace, o: value } - }; -}); - - - -// XSS ATTACK VECTOR CHECKS - - -function _VirtualDom_noScript(tag) -{ - return tag == 'script' ? 'p' : tag; -} - -function _VirtualDom_noOnOrFormAction(key) -{ - return /^(on|formAction$)/i.test(key) ? 'data-' + key : key; -} - -function _VirtualDom_noInnerHtmlOrFormAction(key) -{ - return key == 'innerHTML' || key == 'formAction' ? 'data-' + key : key; -} - -function _VirtualDom_noJavaScriptUri_UNUSED(value) -{ - return /^javascript:/i.test(value.replace(/\s/g,'')) ? '' : value; -} - -function _VirtualDom_noJavaScriptUri(value) -{ - return /^javascript:/i.test(value.replace(/\s/g,'')) - ? 'javascript:alert("This is an XSS vector. Please use ports or web components instead.")' - : value; -} - -function _VirtualDom_noJavaScriptOrHtmlUri_UNUSED(value) -{ - return /^\s*(javascript:|data:text\/html)/i.test(value) ? '' : value; -} - -function _VirtualDom_noJavaScriptOrHtmlUri(value) -{ - return /^\s*(javascript:|data:text\/html)/i.test(value) - ? 'javascript:alert("This is an XSS vector. Please use ports or web components instead.")' - : value; -} - - - -// MAP FACTS - - -var _VirtualDom_mapAttribute = F2(function(func, attr) -{ - return (attr.$ === 'a0') - ? A2(_VirtualDom_on, attr.n, _VirtualDom_mapHandler(func, attr.o)) - : attr; -}); - -function _VirtualDom_mapHandler(func, handler) -{ - var tag = $elm$virtual_dom$VirtualDom$toHandlerInt(handler); - - // 0 = Normal - // 1 = MayStopPropagation - // 2 = MayPreventDefault - // 3 = Custom - - return { - $: handler.$, - a: - !tag - ? A2($elm$json$Json$Decode$map, func, handler.a) - : - A3($elm$json$Json$Decode$map2, - tag < 3 - ? _VirtualDom_mapEventTuple - : _VirtualDom_mapEventRecord, - $elm$json$Json$Decode$succeed(func), - handler.a - ) - }; -} - -var _VirtualDom_mapEventTuple = F2(function(func, tuple) -{ - return _Utils_Tuple2(func(tuple.a), tuple.b); -}); - -var _VirtualDom_mapEventRecord = F2(function(func, record) -{ - return { - message: func(record.message), - stopPropagation: record.stopPropagation, - preventDefault: record.preventDefault - } -}); - - - -// ORGANIZE FACTS - - -function _VirtualDom_organizeFacts(factList) -{ - for (var facts = {}; factList.b; factList = factList.b) // WHILE_CONS - { - var entry = factList.a; - - var tag = entry.$; - var key = entry.n; - var value = entry.o; - - if (tag === 'a2') - { - (key === 'className') - ? _VirtualDom_addClass(facts, key, _Json_unwrap(value)) - : facts[key] = _Json_unwrap(value); - - continue; - } - - var subFacts = facts[tag] || (facts[tag] = {}); - (tag === 'a3' && key === 'class') - ? _VirtualDom_addClass(subFacts, key, value) - : subFacts[key] = value; - } - - return facts; -} - -function _VirtualDom_addClass(object, key, newClass) -{ - var classes = object[key]; - object[key] = classes ? classes + ' ' + newClass : newClass; -} - - - -// RENDER - - -function _VirtualDom_render(vNode, eventNode) -{ - var tag = vNode.$; - - if (tag === 5) - { - return _VirtualDom_render(vNode.k || (vNode.k = vNode.m()), eventNode); - } - - if (tag === 0) - { - return _VirtualDom_doc.createTextNode(vNode.a); - } - - if (tag === 4) - { - var subNode = vNode.k; - var tagger = vNode.j; - - while (subNode.$ === 4) - { - typeof tagger !== 'object' - ? tagger = [tagger, subNode.j] - : tagger.push(subNode.j); - - subNode = subNode.k; - } - - var subEventRoot = { j: tagger, p: eventNode }; - var domNode = _VirtualDom_render(subNode, subEventRoot); - domNode.elm_event_node_ref = subEventRoot; - return domNode; - } - - if (tag === 3) - { - var domNode = vNode.h(vNode.g); - _VirtualDom_applyFacts(domNode, eventNode, vNode.d); - return domNode; - } - - // at this point `tag` must be 1 or 2 - - var domNode = vNode.f - ? _VirtualDom_doc.createElementNS(vNode.f, vNode.c) - : _VirtualDom_doc.createElement(vNode.c); - - if (_VirtualDom_divertHrefToApp && vNode.c == 'a') - { - domNode.addEventListener('click', _VirtualDom_divertHrefToApp(domNode)); - } - - _VirtualDom_applyFacts(domNode, eventNode, vNode.d); - - for (var kids = vNode.e, i = 0; i < kids.length; i++) - { - _VirtualDom_appendChild(domNode, _VirtualDom_render(tag === 1 ? kids[i] : kids[i].b, eventNode)); - } - - return domNode; -} - - - -// APPLY FACTS - - -function _VirtualDom_applyFacts(domNode, eventNode, facts) -{ - for (var key in facts) - { - var value = facts[key]; - - key === 'a1' - ? _VirtualDom_applyStyles(domNode, value) - : - key === 'a0' - ? _VirtualDom_applyEvents(domNode, eventNode, value) - : - key === 'a3' - ? _VirtualDom_applyAttrs(domNode, value) - : - key === 'a4' - ? _VirtualDom_applyAttrsNS(domNode, value) - : - ((key !== 'value' && key !== 'checked') || domNode[key] !== value) && (domNode[key] = value); - } -} - - - -// APPLY STYLES - - -function _VirtualDom_applyStyles(domNode, styles) -{ - var domNodeStyle = domNode.style; - - for (var key in styles) - { - domNodeStyle[key] = styles[key]; - } -} - - - -// APPLY ATTRS - - -function _VirtualDom_applyAttrs(domNode, attrs) -{ - for (var key in attrs) - { - var value = attrs[key]; - typeof value !== 'undefined' - ? domNode.setAttribute(key, value) - : domNode.removeAttribute(key); - } -} - - - -// APPLY NAMESPACED ATTRS - - -function _VirtualDom_applyAttrsNS(domNode, nsAttrs) -{ - for (var key in nsAttrs) - { - var pair = nsAttrs[key]; - var namespace = pair.f; - var value = pair.o; - - typeof value !== 'undefined' - ? domNode.setAttributeNS(namespace, key, value) - : domNode.removeAttributeNS(namespace, key); - } -} - - - -// APPLY EVENTS - - -function _VirtualDom_applyEvents(domNode, eventNode, events) -{ - var allCallbacks = domNode.elmFs || (domNode.elmFs = {}); - - for (var key in events) - { - var newHandler = events[key]; - var oldCallback = allCallbacks[key]; - - if (!newHandler) - { - domNode.removeEventListener(key, oldCallback); - allCallbacks[key] = undefined; - continue; - } - - if (oldCallback) - { - var oldHandler = oldCallback.q; - if (oldHandler.$ === newHandler.$) - { - oldCallback.q = newHandler; - continue; - } - domNode.removeEventListener(key, oldCallback); - } - - oldCallback = _VirtualDom_makeCallback(eventNode, newHandler); - domNode.addEventListener(key, oldCallback, - _VirtualDom_passiveSupported - && { passive: $elm$virtual_dom$VirtualDom$toHandlerInt(newHandler) < 2 } - ); - allCallbacks[key] = oldCallback; - } -} - - - -// PASSIVE EVENTS - - -var _VirtualDom_passiveSupported; - -try -{ - window.addEventListener('t', null, Object.defineProperty({}, 'passive', { - get: function() { _VirtualDom_passiveSupported = true; } - })); -} -catch(e) {} - - - -// EVENT HANDLERS - - -function _VirtualDom_makeCallback(eventNode, initialHandler) -{ - function callback(event) - { - var handler = callback.q; - var result = _Json_runHelp(handler.a, event); - - if (!$elm$core$Result$isOk(result)) - { - return; - } - - var tag = $elm$virtual_dom$VirtualDom$toHandlerInt(handler); - - // 0 = Normal - // 1 = MayStopPropagation - // 2 = MayPreventDefault - // 3 = Custom - - var value = result.a; - var message = !tag ? value : tag < 3 ? value.a : value.message; - var stopPropagation = tag == 1 ? value.b : tag == 3 && value.stopPropagation; - var currentEventNode = ( - stopPropagation && event.stopPropagation(), - (tag == 2 ? value.b : tag == 3 && value.preventDefault) && event.preventDefault(), - eventNode - ); - var tagger; - var i; - while (tagger = currentEventNode.j) - { - if (typeof tagger == 'function') - { - message = tagger(message); - } - else - { - for (var i = tagger.length; i--; ) - { - message = tagger[i](message); - } - } - currentEventNode = currentEventNode.p; - } - currentEventNode(message, stopPropagation); // stopPropagation implies isSync - } - - callback.q = initialHandler; - - return callback; -} - -function _VirtualDom_equalEvents(x, y) -{ - return x.$ == y.$ && _Json_equality(x.a, y.a); -} - - - -// DIFF - - -// TODO: Should we do patches like in iOS? -// -// type Patch -// = At Int Patch -// | Batch (List Patch) -// | Change ... -// -// How could it not be better? -// -function _VirtualDom_diff(x, y) -{ - var patches = []; - _VirtualDom_diffHelp(x, y, patches, 0); - return patches; -} - - -function _VirtualDom_pushPatch(patches, type, index, data) -{ - var patch = { - $: type, - r: index, - s: data, - t: undefined, - u: undefined - }; - patches.push(patch); - return patch; -} - - -function _VirtualDom_diffHelp(x, y, patches, index) -{ - if (x === y) - { - return; - } - - var xType = x.$; - var yType = y.$; - - // Bail if you run into different types of nodes. Implies that the - // structure has changed significantly and it's not worth a diff. - if (xType !== yType) - { - if (xType === 1 && yType === 2) - { - y = _VirtualDom_dekey(y); - yType = 1; - } - else - { - _VirtualDom_pushPatch(patches, 0, index, y); - return; - } - } - - // Now we know that both nodes are the same $. - switch (yType) - { - case 5: - var xRefs = x.l; - var yRefs = y.l; - var i = xRefs.length; - var same = i === yRefs.length; - while (same && i--) - { - same = xRefs[i] === yRefs[i]; - } - if (same) - { - y.k = x.k; - return; - } - y.k = y.m(); - var subPatches = []; - _VirtualDom_diffHelp(x.k, y.k, subPatches, 0); - subPatches.length > 0 && _VirtualDom_pushPatch(patches, 1, index, subPatches); - return; - - case 4: - // gather nested taggers - var xTaggers = x.j; - var yTaggers = y.j; - var nesting = false; - - var xSubNode = x.k; - while (xSubNode.$ === 4) - { - nesting = true; - - typeof xTaggers !== 'object' - ? xTaggers = [xTaggers, xSubNode.j] - : xTaggers.push(xSubNode.j); - - xSubNode = xSubNode.k; - } - - var ySubNode = y.k; - while (ySubNode.$ === 4) - { - nesting = true; - - typeof yTaggers !== 'object' - ? yTaggers = [yTaggers, ySubNode.j] - : yTaggers.push(ySubNode.j); - - ySubNode = ySubNode.k; - } - - // Just bail if different numbers of taggers. This implies the - // structure of the virtual DOM has changed. - if (nesting && xTaggers.length !== yTaggers.length) - { - _VirtualDom_pushPatch(patches, 0, index, y); - return; - } - - // check if taggers are "the same" - if (nesting ? !_VirtualDom_pairwiseRefEqual(xTaggers, yTaggers) : xTaggers !== yTaggers) - { - _VirtualDom_pushPatch(patches, 2, index, yTaggers); - } - - // diff everything below the taggers - _VirtualDom_diffHelp(xSubNode, ySubNode, patches, index + 1); - return; - - case 0: - if (x.a !== y.a) - { - _VirtualDom_pushPatch(patches, 3, index, y.a); - } - return; - - case 1: - _VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKids); - return; - - case 2: - _VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKeyedKids); - return; - - case 3: - if (x.h !== y.h) - { - _VirtualDom_pushPatch(patches, 0, index, y); - return; - } - - var factsDiff = _VirtualDom_diffFacts(x.d, y.d); - factsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff); - - var patch = y.i(x.g, y.g); - patch && _VirtualDom_pushPatch(patches, 5, index, patch); - - return; - } -} - -// assumes the incoming arrays are the same length -function _VirtualDom_pairwiseRefEqual(as, bs) -{ - for (var i = 0; i < as.length; i++) - { - if (as[i] !== bs[i]) - { - return false; - } - } - - return true; -} - -function _VirtualDom_diffNodes(x, y, patches, index, diffKids) -{ - // Bail if obvious indicators have changed. Implies more serious - // structural changes such that it's not worth it to diff. - if (x.c !== y.c || x.f !== y.f) - { - _VirtualDom_pushPatch(patches, 0, index, y); - return; - } - - var factsDiff = _VirtualDom_diffFacts(x.d, y.d); - factsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff); - - diffKids(x, y, patches, index); -} - - - -// DIFF FACTS - - -// TODO Instead of creating a new diff object, it's possible to just test if -// there *is* a diff. During the actual patch, do the diff again and make the -// modifications directly. This way, there's no new allocations. Worth it? -function _VirtualDom_diffFacts(x, y, category) -{ - var diff; - - // look for changes and removals - for (var xKey in x) - { - if (xKey === 'a1' || xKey === 'a0' || xKey === 'a3' || xKey === 'a4') - { - var subDiff = _VirtualDom_diffFacts(x[xKey], y[xKey] || {}, xKey); - if (subDiff) - { - diff = diff || {}; - diff[xKey] = subDiff; - } - continue; - } - - // remove if not in the new facts - if (!(xKey in y)) - { - diff = diff || {}; - diff[xKey] = - !category - ? (typeof x[xKey] === 'string' ? '' : null) - : - (category === 'a1') - ? '' - : - (category === 'a0' || category === 'a3') - ? undefined - : - { f: x[xKey].f, o: undefined }; - - continue; - } - - var xValue = x[xKey]; - var yValue = y[xKey]; - - // reference equal, so don't worry about it - if (xValue === yValue && xKey !== 'value' && xKey !== 'checked' - || category === 'a0' && _VirtualDom_equalEvents(xValue, yValue)) - { - continue; - } - - diff = diff || {}; - diff[xKey] = yValue; - } - - // add new stuff - for (var yKey in y) - { - if (!(yKey in x)) - { - diff = diff || {}; - diff[yKey] = y[yKey]; - } - } - - return diff; -} - - - -// DIFF KIDS - - -function _VirtualDom_diffKids(xParent, yParent, patches, index) -{ - var xKids = xParent.e; - var yKids = yParent.e; - - var xLen = xKids.length; - var yLen = yKids.length; - - // FIGURE OUT IF THERE ARE INSERTS OR REMOVALS - - if (xLen > yLen) - { - _VirtualDom_pushPatch(patches, 6, index, { - v: yLen, - i: xLen - yLen - }); - } - else if (xLen < yLen) - { - _VirtualDom_pushPatch(patches, 7, index, { - v: xLen, - e: yKids - }); - } - - // PAIRWISE DIFF EVERYTHING ELSE - - for (var minLen = xLen < yLen ? xLen : yLen, i = 0; i < minLen; i++) - { - var xKid = xKids[i]; - _VirtualDom_diffHelp(xKid, yKids[i], patches, ++index); - index += xKid.b || 0; - } -} - - - -// KEYED DIFF - - -function _VirtualDom_diffKeyedKids(xParent, yParent, patches, rootIndex) -{ - var localPatches = []; - - var changes = {}; // Dict String Entry - var inserts = []; // Array { index : Int, entry : Entry } - // type Entry = { tag : String, vnode : VNode, index : Int, data : _ } - - var xKids = xParent.e; - var yKids = yParent.e; - var xLen = xKids.length; - var yLen = yKids.length; - var xIndex = 0; - var yIndex = 0; - - var index = rootIndex; - - while (xIndex < xLen && yIndex < yLen) - { - var x = xKids[xIndex]; - var y = yKids[yIndex]; - - var xKey = x.a; - var yKey = y.a; - var xNode = x.b; - var yNode = y.b; - - var newMatch = undefined; - var oldMatch = undefined; - - // check if keys match - - if (xKey === yKey) - { - index++; - _VirtualDom_diffHelp(xNode, yNode, localPatches, index); - index += xNode.b || 0; - - xIndex++; - yIndex++; - continue; - } - - // look ahead 1 to detect insertions and removals. - - var xNext = xKids[xIndex + 1]; - var yNext = yKids[yIndex + 1]; - - if (xNext) - { - var xNextKey = xNext.a; - var xNextNode = xNext.b; - oldMatch = yKey === xNextKey; - } - - if (yNext) - { - var yNextKey = yNext.a; - var yNextNode = yNext.b; - newMatch = xKey === yNextKey; - } - - - // swap x and y - if (newMatch && oldMatch) - { - index++; - _VirtualDom_diffHelp(xNode, yNextNode, localPatches, index); - _VirtualDom_insertNode(changes, localPatches, xKey, yNode, yIndex, inserts); - index += xNode.b || 0; - - index++; - _VirtualDom_removeNode(changes, localPatches, xKey, xNextNode, index); - index += xNextNode.b || 0; - - xIndex += 2; - yIndex += 2; - continue; - } - - // insert y - if (newMatch) - { - index++; - _VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts); - _VirtualDom_diffHelp(xNode, yNextNode, localPatches, index); - index += xNode.b || 0; - - xIndex += 1; - yIndex += 2; - continue; - } - - // remove x - if (oldMatch) - { - index++; - _VirtualDom_removeNode(changes, localPatches, xKey, xNode, index); - index += xNode.b || 0; - - index++; - _VirtualDom_diffHelp(xNextNode, yNode, localPatches, index); - index += xNextNode.b || 0; - - xIndex += 2; - yIndex += 1; - continue; - } - - // remove x, insert y - if (xNext && xNextKey === yNextKey) - { - index++; - _VirtualDom_removeNode(changes, localPatches, xKey, xNode, index); - _VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts); - index += xNode.b || 0; - - index++; - _VirtualDom_diffHelp(xNextNode, yNextNode, localPatches, index); - index += xNextNode.b || 0; - - xIndex += 2; - yIndex += 2; - continue; - } - - break; - } - - // eat up any remaining nodes with removeNode and insertNode - - while (xIndex < xLen) - { - index++; - var x = xKids[xIndex]; - var xNode = x.b; - _VirtualDom_removeNode(changes, localPatches, x.a, xNode, index); - index += xNode.b || 0; - xIndex++; - } - - while (yIndex < yLen) - { - var endInserts = endInserts || []; - var y = yKids[yIndex]; - _VirtualDom_insertNode(changes, localPatches, y.a, y.b, undefined, endInserts); - yIndex++; - } - - if (localPatches.length > 0 || inserts.length > 0 || endInserts) - { - _VirtualDom_pushPatch(patches, 8, rootIndex, { - w: localPatches, - x: inserts, - y: endInserts - }); - } -} - - - -// CHANGES FROM KEYED DIFF - - -var _VirtualDom_POSTFIX = '_elmW6BL'; - - -function _VirtualDom_insertNode(changes, localPatches, key, vnode, yIndex, inserts) -{ - var entry = changes[key]; - - // never seen this key before - if (!entry) - { - entry = { - c: 0, - z: vnode, - r: yIndex, - s: undefined - }; - - inserts.push({ r: yIndex, A: entry }); - changes[key] = entry; - - return; - } - - // this key was removed earlier, a match! - if (entry.c === 1) - { - inserts.push({ r: yIndex, A: entry }); - - entry.c = 2; - var subPatches = []; - _VirtualDom_diffHelp(entry.z, vnode, subPatches, entry.r); - entry.r = yIndex; - entry.s.s = { - w: subPatches, - A: entry - }; - - return; - } - - // this key has already been inserted or moved, a duplicate! - _VirtualDom_insertNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, yIndex, inserts); -} - - -function _VirtualDom_removeNode(changes, localPatches, key, vnode, index) -{ - var entry = changes[key]; - - // never seen this key before - if (!entry) - { - var patch = _VirtualDom_pushPatch(localPatches, 9, index, undefined); - - changes[key] = { - c: 1, - z: vnode, - r: index, - s: patch - }; - - return; - } - - // this key was inserted earlier, a match! - if (entry.c === 0) - { - entry.c = 2; - var subPatches = []; - _VirtualDom_diffHelp(vnode, entry.z, subPatches, index); - - _VirtualDom_pushPatch(localPatches, 9, index, { - w: subPatches, - A: entry - }); - - return; - } - - // this key has already been removed or moved, a duplicate! - _VirtualDom_removeNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, index); -} - - - -// ADD DOM NODES -// -// Each DOM node has an "index" assigned in order of traversal. It is important -// to minimize our crawl over the actual DOM, so these indexes (along with the -// descendantsCount of virtual nodes) let us skip touching entire subtrees of -// the DOM if we know there are no patches there. - - -function _VirtualDom_addDomNodes(domNode, vNode, patches, eventNode) -{ - _VirtualDom_addDomNodesHelp(domNode, vNode, patches, 0, 0, vNode.b, eventNode); -} - - -// assumes `patches` is non-empty and indexes increase monotonically. -function _VirtualDom_addDomNodesHelp(domNode, vNode, patches, i, low, high, eventNode) -{ - var patch = patches[i]; - var index = patch.r; - - while (index === low) - { - var patchType = patch.$; - - if (patchType === 1) - { - _VirtualDom_addDomNodes(domNode, vNode.k, patch.s, eventNode); - } - else if (patchType === 8) - { - patch.t = domNode; - patch.u = eventNode; - - var subPatches = patch.s.w; - if (subPatches.length > 0) - { - _VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode); - } - } - else if (patchType === 9) - { - patch.t = domNode; - patch.u = eventNode; - - var data = patch.s; - if (data) - { - data.A.s = domNode; - var subPatches = data.w; - if (subPatches.length > 0) - { - _VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode); - } - } - } - else - { - patch.t = domNode; - patch.u = eventNode; - } - - i++; - - if (!(patch = patches[i]) || (index = patch.r) > high) - { - return i; - } - } - - var tag = vNode.$; - - if (tag === 4) - { - var subNode = vNode.k; - - while (subNode.$ === 4) - { - subNode = subNode.k; - } - - return _VirtualDom_addDomNodesHelp(domNode, subNode, patches, i, low + 1, high, domNode.elm_event_node_ref); - } - - // tag must be 1 or 2 at this point - - var vKids = vNode.e; - var childNodes = domNode.childNodes; - for (var j = 0; j < vKids.length; j++) - { - low++; - var vKid = tag === 1 ? vKids[j] : vKids[j].b; - var nextLow = low + (vKid.b || 0); - if (low <= index && index <= nextLow) - { - i = _VirtualDom_addDomNodesHelp(childNodes[j], vKid, patches, i, low, nextLow, eventNode); - if (!(patch = patches[i]) || (index = patch.r) > high) - { - return i; - } - } - low = nextLow; - } - return i; -} - - - -// APPLY PATCHES - - -function _VirtualDom_applyPatches(rootDomNode, oldVirtualNode, patches, eventNode) -{ - if (patches.length === 0) - { - return rootDomNode; - } - - _VirtualDom_addDomNodes(rootDomNode, oldVirtualNode, patches, eventNode); - return _VirtualDom_applyPatchesHelp(rootDomNode, patches); -} - -function _VirtualDom_applyPatchesHelp(rootDomNode, patches) -{ - for (var i = 0; i < patches.length; i++) - { - var patch = patches[i]; - var localDomNode = patch.t - var newNode = _VirtualDom_applyPatch(localDomNode, patch); - if (localDomNode === rootDomNode) - { - rootDomNode = newNode; - } - } - return rootDomNode; -} - -function _VirtualDom_applyPatch(domNode, patch) -{ - switch (patch.$) - { - case 0: - return _VirtualDom_applyPatchRedraw(domNode, patch.s, patch.u); - - case 4: - _VirtualDom_applyFacts(domNode, patch.u, patch.s); - return domNode; - - case 3: - domNode.replaceData(0, domNode.length, patch.s); - return domNode; - - case 1: - return _VirtualDom_applyPatchesHelp(domNode, patch.s); - - case 2: - if (domNode.elm_event_node_ref) - { - domNode.elm_event_node_ref.j = patch.s; - } - else - { - domNode.elm_event_node_ref = { j: patch.s, p: patch.u }; - } - return domNode; - - case 6: - var data = patch.s; - for (var i = 0; i < data.i; i++) - { - domNode.removeChild(domNode.childNodes[data.v]); - } - return domNode; - - case 7: - var data = patch.s; - var kids = data.e; - var i = data.v; - var theEnd = domNode.childNodes[i]; - for (; i < kids.length; i++) - { - domNode.insertBefore(_VirtualDom_render(kids[i], patch.u), theEnd); - } - return domNode; - - case 9: - var data = patch.s; - if (!data) - { - domNode.parentNode.removeChild(domNode); - return domNode; - } - var entry = data.A; - if (typeof entry.r !== 'undefined') - { - domNode.parentNode.removeChild(domNode); - } - entry.s = _VirtualDom_applyPatchesHelp(domNode, data.w); - return domNode; - - case 8: - return _VirtualDom_applyPatchReorder(domNode, patch); - - case 5: - return patch.s(domNode); - - default: - _Debug_crash(10); // 'Ran into an unknown patch!' - } -} - - -function _VirtualDom_applyPatchRedraw(domNode, vNode, eventNode) -{ - var parentNode = domNode.parentNode; - var newNode = _VirtualDom_render(vNode, eventNode); - - if (!newNode.elm_event_node_ref) - { - newNode.elm_event_node_ref = domNode.elm_event_node_ref; - } - - if (parentNode && newNode !== domNode) - { - parentNode.replaceChild(newNode, domNode); - } - return newNode; -} - - -function _VirtualDom_applyPatchReorder(domNode, patch) -{ - var data = patch.s; - - // remove end inserts - var frag = _VirtualDom_applyPatchReorderEndInsertsHelp(data.y, patch); - - // removals - domNode = _VirtualDom_applyPatchesHelp(domNode, data.w); - - // inserts - var inserts = data.x; - for (var i = 0; i < inserts.length; i++) - { - var insert = inserts[i]; - var entry = insert.A; - var node = entry.c === 2 - ? entry.s - : _VirtualDom_render(entry.z, patch.u); - domNode.insertBefore(node, domNode.childNodes[insert.r]); - } - - // add end inserts - if (frag) - { - _VirtualDom_appendChild(domNode, frag); - } - - return domNode; -} - - -function _VirtualDom_applyPatchReorderEndInsertsHelp(endInserts, patch) -{ - if (!endInserts) - { - return; - } - - var frag = _VirtualDom_doc.createDocumentFragment(); - for (var i = 0; i < endInserts.length; i++) - { - var insert = endInserts[i]; - var entry = insert.A; - _VirtualDom_appendChild(frag, entry.c === 2 - ? entry.s - : _VirtualDom_render(entry.z, patch.u) - ); - } - return frag; -} - - -function _VirtualDom_virtualize(node) -{ - // TEXT NODES - - if (node.nodeType === 3) - { - return _VirtualDom_text(node.textContent); - } - - - // WEIRD NODES - - if (node.nodeType !== 1) - { - return _VirtualDom_text(''); - } - - - // ELEMENT NODES - - var attrList = _List_Nil; - var attrs = node.attributes; - for (var i = attrs.length; i--; ) - { - var attr = attrs[i]; - var name = attr.name; - var value = attr.value; - attrList = _List_Cons( A2(_VirtualDom_attribute, name, value), attrList ); - } - - var tag = node.tagName.toLowerCase(); - var kidList = _List_Nil; - var kids = node.childNodes; - - for (var i = kids.length; i--; ) - { - kidList = _List_Cons(_VirtualDom_virtualize(kids[i]), kidList); - } - return A3(_VirtualDom_node, tag, attrList, kidList); -} - -function _VirtualDom_dekey(keyedNode) -{ - var keyedKids = keyedNode.e; - var len = keyedKids.length; - var kids = new Array(len); - for (var i = 0; i < len; i++) - { - kids[i] = keyedKids[i].b; - } - - return { - $: 1, - c: keyedNode.c, - d: keyedNode.d, - e: kids, - f: keyedNode.f, - b: keyedNode.b - }; -} - - - - -// ELEMENT - - -var _Debugger_element; - -var _Browser_element = _Debugger_element || F4(function(impl, flagDecoder, debugMetadata, args) -{ - return _Platform_initialize( - flagDecoder, - args, - impl.init, - impl.update, - impl.subscriptions, - function(sendToApp, initialModel) { - var view = impl.view; - /**_UNUSED/ - var domNode = args['node']; - //*/ - /**/ - var domNode = args && args['node'] ? args['node'] : _Debug_crash(0); - //*/ - var currNode = _VirtualDom_virtualize(domNode); - - return _Browser_makeAnimator(initialModel, function(model) - { - var nextNode = view(model); - var patches = _VirtualDom_diff(currNode, nextNode); - domNode = _VirtualDom_applyPatches(domNode, currNode, patches, sendToApp); - currNode = nextNode; - }); - } - ); -}); - - - -// DOCUMENT - - -var _Debugger_document; - -var _Browser_document = _Debugger_document || F4(function(impl, flagDecoder, debugMetadata, args) -{ - return _Platform_initialize( - flagDecoder, - args, - impl.init, - impl.update, - impl.subscriptions, - function(sendToApp, initialModel) { - var divertHrefToApp = impl.setup && impl.setup(sendToApp) - var view = impl.view; - var title = _VirtualDom_doc.title; - var bodyNode = _VirtualDom_doc.body; - var currNode = _VirtualDom_virtualize(bodyNode); - return _Browser_makeAnimator(initialModel, function(model) - { - _VirtualDom_divertHrefToApp = divertHrefToApp; - var doc = view(model); - var nextNode = _VirtualDom_node('body')(_List_Nil)(doc.body); - var patches = _VirtualDom_diff(currNode, nextNode); - bodyNode = _VirtualDom_applyPatches(bodyNode, currNode, patches, sendToApp); - currNode = nextNode; - _VirtualDom_divertHrefToApp = 0; - (title !== doc.title) && (_VirtualDom_doc.title = title = doc.title); - }); - } - ); -}); - - - -// ANIMATION - - -var _Browser_cancelAnimationFrame = - typeof cancelAnimationFrame !== 'undefined' - ? cancelAnimationFrame - : function(id) { clearTimeout(id); }; - -var _Browser_requestAnimationFrame = - typeof requestAnimationFrame !== 'undefined' - ? requestAnimationFrame - : function(callback) { return setTimeout(callback, 1000 / 60); }; - - -function _Browser_makeAnimator(model, draw) -{ - draw(model); - - var state = 0; - - function updateIfNeeded() - { - state = state === 1 - ? 0 - : ( _Browser_requestAnimationFrame(updateIfNeeded), draw(model), 1 ); - } - - return function(nextModel, isSync) - { - model = nextModel; - - isSync - ? ( draw(model), - state === 2 && (state = 1) - ) - : ( state === 0 && _Browser_requestAnimationFrame(updateIfNeeded), - state = 2 - ); - }; -} - - - -// APPLICATION - - -function _Browser_application(impl) -{ - var onUrlChange = impl.onUrlChange; - var onUrlRequest = impl.onUrlRequest; - var key = function() { key.a(onUrlChange(_Browser_getUrl())); }; - - return _Browser_document({ - setup: function(sendToApp) - { - key.a = sendToApp; - _Browser_window.addEventListener('popstate', key); - _Browser_window.navigator.userAgent.indexOf('Trident') < 0 || _Browser_window.addEventListener('hashchange', key); - - return F2(function(domNode, event) - { - if (!event.ctrlKey && !event.metaKey && !event.shiftKey && event.button < 1 && !domNode.target && !domNode.hasAttribute('download')) - { - event.preventDefault(); - var href = domNode.href; - var curr = _Browser_getUrl(); - var next = $elm$url$Url$fromString(href).a; - sendToApp(onUrlRequest( - (next - && curr.protocol === next.protocol - && curr.host === next.host - && curr.port_.a === next.port_.a - ) - ? $elm$browser$Browser$Internal(next) - : $elm$browser$Browser$External(href) - )); - } - }); - }, - init: function(flags) - { - return A3(impl.init, flags, _Browser_getUrl(), key); - }, - view: impl.view, - update: impl.update, - subscriptions: impl.subscriptions - }); -} - -function _Browser_getUrl() -{ - return $elm$url$Url$fromString(_VirtualDom_doc.location.href).a || _Debug_crash(1); -} - -var _Browser_go = F2(function(key, n) -{ - return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() { - n && history.go(n); - key(); - })); -}); - -var _Browser_pushUrl = F2(function(key, url) -{ - return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() { - history.pushState({}, '', url); - key(); - })); -}); - -var _Browser_replaceUrl = F2(function(key, url) -{ - return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() { - history.replaceState({}, '', url); - key(); - })); -}); - - - -// GLOBAL EVENTS - - -var _Browser_fakeNode = { addEventListener: function() {}, removeEventListener: function() {} }; -var _Browser_doc = typeof document !== 'undefined' ? document : _Browser_fakeNode; -var _Browser_window = typeof window !== 'undefined' ? window : _Browser_fakeNode; - -var _Browser_on = F3(function(node, eventName, sendToSelf) -{ - return _Scheduler_spawn(_Scheduler_binding(function(callback) - { - function handler(event) { _Scheduler_rawSpawn(sendToSelf(event)); } - node.addEventListener(eventName, handler, _VirtualDom_passiveSupported && { passive: true }); - return function() { node.removeEventListener(eventName, handler); }; - })); -}); - -var _Browser_decodeEvent = F2(function(decoder, event) -{ - var result = _Json_runHelp(decoder, event); - return $elm$core$Result$isOk(result) ? $elm$core$Maybe$Just(result.a) : $elm$core$Maybe$Nothing; -}); - - - -// PAGE VISIBILITY - - -function _Browser_visibilityInfo() -{ - return (typeof _VirtualDom_doc.hidden !== 'undefined') - ? { hidden: 'hidden', change: 'visibilitychange' } - : - (typeof _VirtualDom_doc.mozHidden !== 'undefined') - ? { hidden: 'mozHidden', change: 'mozvisibilitychange' } - : - (typeof _VirtualDom_doc.msHidden !== 'undefined') - ? { hidden: 'msHidden', change: 'msvisibilitychange' } - : - (typeof _VirtualDom_doc.webkitHidden !== 'undefined') - ? { hidden: 'webkitHidden', change: 'webkitvisibilitychange' } - : { hidden: 'hidden', change: 'visibilitychange' }; -} - - - -// ANIMATION FRAMES - - -function _Browser_rAF() -{ - return _Scheduler_binding(function(callback) - { - var id = _Browser_requestAnimationFrame(function() { - callback(_Scheduler_succeed(Date.now())); - }); - - return function() { - _Browser_cancelAnimationFrame(id); - }; - }); -} - - -function _Browser_now() -{ - return _Scheduler_binding(function(callback) - { - callback(_Scheduler_succeed(Date.now())); - }); -} - - - -// DOM STUFF - - -function _Browser_withNode(id, doStuff) -{ - return _Scheduler_binding(function(callback) - { - _Browser_requestAnimationFrame(function() { - var node = document.getElementById(id); - callback(node - ? _Scheduler_succeed(doStuff(node)) - : _Scheduler_fail($elm$browser$Browser$Dom$NotFound(id)) - ); - }); - }); -} - - -function _Browser_withWindow(doStuff) -{ - return _Scheduler_binding(function(callback) - { - _Browser_requestAnimationFrame(function() { - callback(_Scheduler_succeed(doStuff())); - }); - }); -} - - -// FOCUS and BLUR - - -var _Browser_call = F2(function(functionName, id) -{ - return _Browser_withNode(id, function(node) { - node[functionName](); - return _Utils_Tuple0; - }); -}); - - - -// WINDOW VIEWPORT - - -function _Browser_getViewport() -{ - return { - scene: _Browser_getScene(), - viewport: { - x: _Browser_window.pageXOffset, - y: _Browser_window.pageYOffset, - width: _Browser_doc.documentElement.clientWidth, - height: _Browser_doc.documentElement.clientHeight - } - }; -} - -function _Browser_getScene() -{ - var body = _Browser_doc.body; - var elem = _Browser_doc.documentElement; - return { - width: Math.max(body.scrollWidth, body.offsetWidth, elem.scrollWidth, elem.offsetWidth, elem.clientWidth), - height: Math.max(body.scrollHeight, body.offsetHeight, elem.scrollHeight, elem.offsetHeight, elem.clientHeight) - }; -} - -var _Browser_setViewport = F2(function(x, y) -{ - return _Browser_withWindow(function() - { - _Browser_window.scroll(x, y); - return _Utils_Tuple0; - }); -}); - - - -// ELEMENT VIEWPORT - - -function _Browser_getViewportOf(id) -{ - return _Browser_withNode(id, function(node) - { - return { - scene: { - width: node.scrollWidth, - height: node.scrollHeight - }, - viewport: { - x: node.scrollLeft, - y: node.scrollTop, - width: node.clientWidth, - height: node.clientHeight - } - }; - }); -} - - -var _Browser_setViewportOf = F3(function(id, x, y) -{ - return _Browser_withNode(id, function(node) - { - node.scrollLeft = x; - node.scrollTop = y; - return _Utils_Tuple0; - }); -}); - - - -// ELEMENT - - -function _Browser_getElement(id) -{ - return _Browser_withNode(id, function(node) - { - var rect = node.getBoundingClientRect(); - var x = _Browser_window.pageXOffset; - var y = _Browser_window.pageYOffset; - return { - scene: _Browser_getScene(), - viewport: { - x: x, - y: y, - width: _Browser_doc.documentElement.clientWidth, - height: _Browser_doc.documentElement.clientHeight - }, - element: { - x: x + rect.left, - y: y + rect.top, - width: rect.width, - height: rect.height - } - }; - }); -} - - - -// LOAD and RELOAD - - -function _Browser_reload(skipCache) -{ - return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function(callback) - { - _VirtualDom_doc.location.reload(skipCache); - })); -} - -function _Browser_load(url) -{ - return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function(callback) - { - try - { - _Browser_window.location = url; - } - catch(err) - { - // Only Firefox can throw a NS_ERROR_MALFORMED_URI exception here. - // Other browsers reload the page, so let's be consistent about that. - _VirtualDom_doc.location.reload(false); - } - })); -} - - - -// SEND REQUEST - -var _Http_toTask = F3(function(router, toTask, request) -{ - return _Scheduler_binding(function(callback) - { - function done(response) { - callback(toTask(request.expect.a(response))); - } - - var xhr = new XMLHttpRequest(); - xhr.addEventListener('error', function() { done($elm$http$Http$NetworkError_); }); - xhr.addEventListener('timeout', function() { done($elm$http$Http$Timeout_); }); - xhr.addEventListener('load', function() { done(_Http_toResponse(request.expect.b, xhr)); }); - $elm$core$Maybe$isJust(request.tracker) && _Http_track(router, xhr, request.tracker.a); - - try { - xhr.open(request.method, request.url, true); - } catch (e) { - return done($elm$http$Http$BadUrl_(request.url)); - } - - _Http_configureRequest(xhr, request); - - request.body.a && xhr.setRequestHeader('Content-Type', request.body.a); - xhr.send(request.body.b); - - return function() { xhr.c = true; xhr.abort(); }; - }); -}); - - -// CONFIGURE - -function _Http_configureRequest(xhr, request) -{ - for (var headers = request.headers; headers.b; headers = headers.b) // WHILE_CONS - { - xhr.setRequestHeader(headers.a.a, headers.a.b); - } - xhr.timeout = request.timeout.a || 0; - xhr.responseType = request.expect.d; - xhr.withCredentials = request.allowCookiesFromOtherDomains; -} - - -// RESPONSES - -function _Http_toResponse(toBody, xhr) -{ - return A2( - 200 <= xhr.status && xhr.status < 300 ? $elm$http$Http$GoodStatus_ : $elm$http$Http$BadStatus_, - _Http_toMetadata(xhr), - toBody(xhr.response) - ); -} - - -// METADATA - -function _Http_toMetadata(xhr) -{ - return { - url: xhr.responseURL, - statusCode: xhr.status, - statusText: xhr.statusText, - headers: _Http_parseHeaders(xhr.getAllResponseHeaders()) - }; -} - - -// HEADERS - -function _Http_parseHeaders(rawHeaders) -{ - if (!rawHeaders) - { - return $elm$core$Dict$empty; - } - - var headers = $elm$core$Dict$empty; - var headerPairs = rawHeaders.split('\r\n'); - for (var i = headerPairs.length; i--; ) - { - var headerPair = headerPairs[i]; - var index = headerPair.indexOf(': '); - if (index > 0) - { - var key = headerPair.substring(0, index); - var value = headerPair.substring(index + 2); - - headers = A3($elm$core$Dict$update, key, function(oldValue) { - return $elm$core$Maybe$Just($elm$core$Maybe$isJust(oldValue) - ? value + ', ' + oldValue.a - : value - ); - }, headers); - } - } - return headers; -} - - -// EXPECT - -var _Http_expect = F3(function(type, toBody, toValue) -{ - return { - $: 0, - d: type, - b: toBody, - a: toValue - }; -}); - -var _Http_mapExpect = F2(function(func, expect) -{ - return { - $: 0, - d: expect.d, - b: expect.b, - a: function(x) { return func(expect.a(x)); } - }; -}); - -function _Http_toDataView(arrayBuffer) -{ - return new DataView(arrayBuffer); -} - - -// BODY and PARTS - -var _Http_emptyBody = { $: 0 }; -var _Http_pair = F2(function(a, b) { return { $: 0, a: a, b: b }; }); - -function _Http_toFormData(parts) -{ - for (var formData = new FormData(); parts.b; parts = parts.b) // WHILE_CONS - { - var part = parts.a; - formData.append(part.a, part.b); - } - return formData; -} - -var _Http_bytesToBlob = F2(function(mime, bytes) -{ - return new Blob([bytes], { type: mime }); -}); - - -// PROGRESS - -function _Http_track(router, xhr, tracker) -{ - // TODO check out lengthComputable on loadstart event - - xhr.upload.addEventListener('progress', function(event) { - if (xhr.c) { return; } - _Scheduler_rawSpawn(A2($elm$core$Platform$sendToSelf, router, _Utils_Tuple2(tracker, $elm$http$Http$Sending({ - sent: event.loaded, - size: event.total - })))); - }); - xhr.addEventListener('progress', function(event) { - if (xhr.c) { return; } - _Scheduler_rawSpawn(A2($elm$core$Platform$sendToSelf, router, _Utils_Tuple2(tracker, $elm$http$Http$Receiving({ - received: event.loaded, - size: event.lengthComputable ? $elm$core$Maybe$Just(event.total) : $elm$core$Maybe$Nothing - })))); - }); -} - -function _Url_percentEncode(string) -{ - return encodeURIComponent(string); -} - -function _Url_percentDecode(string) -{ - try - { - return $elm$core$Maybe$Just(decodeURIComponent(string)); - } - catch (e) - { - return $elm$core$Maybe$Nothing; - } -} - - -var _Bitwise_and = F2(function(a, b) -{ - return a & b; -}); - -var _Bitwise_or = F2(function(a, b) -{ - return a | b; -}); - -var _Bitwise_xor = F2(function(a, b) -{ - return a ^ b; -}); - -function _Bitwise_complement(a) -{ - return ~a; -}; - -var _Bitwise_shiftLeftBy = F2(function(offset, a) -{ - return a << offset; -}); - -var _Bitwise_shiftRightBy = F2(function(offset, a) -{ - return a >> offset; -}); - -var _Bitwise_shiftRightZfBy = F2(function(offset, a) -{ - return a >>> offset; -}); -var $author$project$Main$LinkClicked = function (a) { - return {$: 'LinkClicked', a: a}; -}; -var $author$project$Main$UrlChanged = function (a) { - return {$: 'UrlChanged', a: a}; -}; -var $elm$core$Basics$EQ = {$: 'EQ'}; -var $elm$core$Basics$GT = {$: 'GT'}; -var $elm$core$Basics$LT = {$: 'LT'}; -var $elm$core$List$cons = _List_cons; -var $elm$core$Dict$foldr = F3( - function (func, acc, t) { - foldr: - while (true) { - if (t.$ === 'RBEmpty_elm_builtin') { - return acc; - } else { - var key = t.b; - var value = t.c; - var left = t.d; - var right = t.e; - var $temp$func = func, - $temp$acc = A3( - func, - key, - value, - A3($elm$core$Dict$foldr, func, acc, right)), - $temp$t = left; - func = $temp$func; - acc = $temp$acc; - t = $temp$t; - continue foldr; - } - } - }); -var $elm$core$Dict$toList = function (dict) { - return A3( - $elm$core$Dict$foldr, - F3( - function (key, value, list) { - return A2( - $elm$core$List$cons, - _Utils_Tuple2(key, value), - list); - }), - _List_Nil, - dict); -}; -var $elm$core$Dict$keys = function (dict) { - return A3( - $elm$core$Dict$foldr, - F3( - function (key, value, keyList) { - return A2($elm$core$List$cons, key, keyList); - }), - _List_Nil, - dict); -}; -var $elm$core$Set$toList = function (_v0) { - var dict = _v0.a; - return $elm$core$Dict$keys(dict); -}; -var $elm$core$Elm$JsArray$foldr = _JsArray_foldr; -var $elm$core$Array$foldr = F3( - function (func, baseCase, _v0) { - var tree = _v0.c; - var tail = _v0.d; - var helper = F2( - function (node, acc) { - if (node.$ === 'SubTree') { - var subTree = node.a; - return A3($elm$core$Elm$JsArray$foldr, helper, acc, subTree); - } else { - var values = node.a; - return A3($elm$core$Elm$JsArray$foldr, func, acc, values); - } - }); - return A3( - $elm$core$Elm$JsArray$foldr, - helper, - A3($elm$core$Elm$JsArray$foldr, func, baseCase, tail), - tree); - }); -var $elm$core$Array$toList = function (array) { - return A3($elm$core$Array$foldr, $elm$core$List$cons, _List_Nil, array); -}; -var $elm$core$Result$Err = function (a) { - return {$: 'Err', a: a}; -}; -var $elm$json$Json$Decode$Failure = F2( - function (a, b) { - return {$: 'Failure', a: a, b: b}; - }); -var $elm$json$Json$Decode$Field = F2( - function (a, b) { - return {$: 'Field', a: a, b: b}; - }); -var $elm$json$Json$Decode$Index = F2( - function (a, b) { - return {$: 'Index', a: a, b: b}; - }); -var $elm$core$Result$Ok = function (a) { - return {$: 'Ok', a: a}; -}; -var $elm$json$Json$Decode$OneOf = function (a) { - return {$: 'OneOf', a: a}; -}; -var $elm$core$Basics$False = {$: 'False'}; -var $elm$core$Basics$add = _Basics_add; -var $elm$core$Maybe$Just = function (a) { - return {$: 'Just', a: a}; -}; -var $elm$core$Maybe$Nothing = {$: 'Nothing'}; -var $elm$core$String$all = _String_all; -var $elm$core$Basics$and = _Basics_and; -var $elm$core$Basics$append = _Utils_append; -var $elm$json$Json$Encode$encode = _Json_encode; -var $elm$core$String$fromInt = _String_fromNumber; -var $elm$core$String$join = F2( - function (sep, chunks) { - return A2( - _String_join, - sep, - _List_toArray(chunks)); - }); -var $elm$core$String$split = F2( - function (sep, string) { - return _List_fromArray( - A2(_String_split, sep, string)); - }); -var $elm$json$Json$Decode$indent = function (str) { - return A2( - $elm$core$String$join, - '\n ', - A2($elm$core$String$split, '\n', str)); -}; -var $elm$core$List$foldl = F3( - function (func, acc, list) { - foldl: - while (true) { - if (!list.b) { - return acc; - } else { - var x = list.a; - var xs = list.b; - var $temp$func = func, - $temp$acc = A2(func, x, acc), - $temp$list = xs; - func = $temp$func; - acc = $temp$acc; - list = $temp$list; - continue foldl; - } - } - }); -var $elm$core$List$length = function (xs) { - return A3( - $elm$core$List$foldl, - F2( - function (_v0, i) { - return i + 1; - }), - 0, - xs); -}; -var $elm$core$List$map2 = _List_map2; -var $elm$core$Basics$le = _Utils_le; -var $elm$core$Basics$sub = _Basics_sub; -var $elm$core$List$rangeHelp = F3( - function (lo, hi, list) { - rangeHelp: - while (true) { - if (_Utils_cmp(lo, hi) < 1) { - var $temp$lo = lo, - $temp$hi = hi - 1, - $temp$list = A2($elm$core$List$cons, hi, list); - lo = $temp$lo; - hi = $temp$hi; - list = $temp$list; - continue rangeHelp; - } else { - return list; - } - } - }); -var $elm$core$List$range = F2( - function (lo, hi) { - return A3($elm$core$List$rangeHelp, lo, hi, _List_Nil); - }); -var $elm$core$List$indexedMap = F2( - function (f, xs) { - return A3( - $elm$core$List$map2, - f, - A2( - $elm$core$List$range, - 0, - $elm$core$List$length(xs) - 1), - xs); - }); -var $elm$core$Char$toCode = _Char_toCode; -var $elm$core$Char$isLower = function (_char) { - var code = $elm$core$Char$toCode(_char); - return (97 <= code) && (code <= 122); -}; -var $elm$core$Char$isUpper = function (_char) { - var code = $elm$core$Char$toCode(_char); - return (code <= 90) && (65 <= code); -}; -var $elm$core$Basics$or = _Basics_or; -var $elm$core$Char$isAlpha = function (_char) { - return $elm$core$Char$isLower(_char) || $elm$core$Char$isUpper(_char); -}; -var $elm$core$Char$isDigit = function (_char) { - var code = $elm$core$Char$toCode(_char); - return (code <= 57) && (48 <= code); -}; -var $elm$core$Char$isAlphaNum = function (_char) { - return $elm$core$Char$isLower(_char) || ($elm$core$Char$isUpper(_char) || $elm$core$Char$isDigit(_char)); -}; -var $elm$core$List$reverse = function (list) { - return A3($elm$core$List$foldl, $elm$core$List$cons, _List_Nil, list); -}; -var $elm$core$String$uncons = _String_uncons; -var $elm$json$Json$Decode$errorOneOf = F2( - function (i, error) { - return '\n\n(' + ($elm$core$String$fromInt(i + 1) + (') ' + $elm$json$Json$Decode$indent( - $elm$json$Json$Decode$errorToString(error)))); - }); -var $elm$json$Json$Decode$errorToString = function (error) { - return A2($elm$json$Json$Decode$errorToStringHelp, error, _List_Nil); -}; -var $elm$json$Json$Decode$errorToStringHelp = F2( - function (error, context) { - errorToStringHelp: - while (true) { - switch (error.$) { - case 'Field': - var f = error.a; - var err = error.b; - var isSimple = function () { - var _v1 = $elm$core$String$uncons(f); - if (_v1.$ === 'Nothing') { - return false; - } else { - var _v2 = _v1.a; - var _char = _v2.a; - var rest = _v2.b; - return $elm$core$Char$isAlpha(_char) && A2($elm$core$String$all, $elm$core$Char$isAlphaNum, rest); - } - }(); - var fieldName = isSimple ? ('.' + f) : ('[\'' + (f + '\']')); - var $temp$error = err, - $temp$context = A2($elm$core$List$cons, fieldName, context); - error = $temp$error; - context = $temp$context; - continue errorToStringHelp; - case 'Index': - var i = error.a; - var err = error.b; - var indexName = '[' + ($elm$core$String$fromInt(i) + ']'); - var $temp$error = err, - $temp$context = A2($elm$core$List$cons, indexName, context); - error = $temp$error; - context = $temp$context; - continue errorToStringHelp; - case 'OneOf': - var errors = error.a; - if (!errors.b) { - return 'Ran into a Json.Decode.oneOf with no possibilities' + function () { - if (!context.b) { - return '!'; - } else { - return ' at json' + A2( - $elm$core$String$join, - '', - $elm$core$List$reverse(context)); - } - }(); - } else { - if (!errors.b.b) { - var err = errors.a; - var $temp$error = err, - $temp$context = context; - error = $temp$error; - context = $temp$context; - continue errorToStringHelp; - } else { - var starter = function () { - if (!context.b) { - return 'Json.Decode.oneOf'; - } else { - return 'The Json.Decode.oneOf at json' + A2( - $elm$core$String$join, - '', - $elm$core$List$reverse(context)); - } - }(); - var introduction = starter + (' failed in the following ' + ($elm$core$String$fromInt( - $elm$core$List$length(errors)) + ' ways:')); - return A2( - $elm$core$String$join, - '\n\n', - A2( - $elm$core$List$cons, - introduction, - A2($elm$core$List$indexedMap, $elm$json$Json$Decode$errorOneOf, errors))); - } - } - default: - var msg = error.a; - var json = error.b; - var introduction = function () { - if (!context.b) { - return 'Problem with the given value:\n\n'; - } else { - return 'Problem with the value at json' + (A2( - $elm$core$String$join, - '', - $elm$core$List$reverse(context)) + ':\n\n '); - } - }(); - return introduction + ($elm$json$Json$Decode$indent( - A2($elm$json$Json$Encode$encode, 4, json)) + ('\n\n' + msg)); - } - } - }); -var $elm$core$Array$branchFactor = 32; -var $elm$core$Array$Array_elm_builtin = F4( - function (a, b, c, d) { - return {$: 'Array_elm_builtin', a: a, b: b, c: c, d: d}; - }); -var $elm$core$Elm$JsArray$empty = _JsArray_empty; -var $elm$core$Basics$ceiling = _Basics_ceiling; -var $elm$core$Basics$fdiv = _Basics_fdiv; -var $elm$core$Basics$logBase = F2( - function (base, number) { - return _Basics_log(number) / _Basics_log(base); - }); -var $elm$core$Basics$toFloat = _Basics_toFloat; -var $elm$core$Array$shiftStep = $elm$core$Basics$ceiling( - A2($elm$core$Basics$logBase, 2, $elm$core$Array$branchFactor)); -var $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); -var $elm$core$Elm$JsArray$initialize = _JsArray_initialize; -var $elm$core$Array$Leaf = function (a) { - return {$: 'Leaf', a: a}; -}; -var $elm$core$Basics$apL = F2( - function (f, x) { - return f(x); - }); -var $elm$core$Basics$apR = F2( - function (x, f) { - return f(x); - }); -var $elm$core$Basics$eq = _Utils_equal; -var $elm$core$Basics$floor = _Basics_floor; -var $elm$core$Elm$JsArray$length = _JsArray_length; -var $elm$core$Basics$gt = _Utils_gt; -var $elm$core$Basics$max = F2( - function (x, y) { - return (_Utils_cmp(x, y) > 0) ? x : y; - }); -var $elm$core$Basics$mul = _Basics_mul; -var $elm$core$Array$SubTree = function (a) { - return {$: 'SubTree', a: a}; -}; -var $elm$core$Elm$JsArray$initializeFromList = _JsArray_initializeFromList; -var $elm$core$Array$compressNodes = F2( - function (nodes, acc) { - compressNodes: - while (true) { - var _v0 = A2($elm$core$Elm$JsArray$initializeFromList, $elm$core$Array$branchFactor, nodes); - var node = _v0.a; - var remainingNodes = _v0.b; - var newAcc = A2( - $elm$core$List$cons, - $elm$core$Array$SubTree(node), - acc); - if (!remainingNodes.b) { - return $elm$core$List$reverse(newAcc); - } else { - var $temp$nodes = remainingNodes, - $temp$acc = newAcc; - nodes = $temp$nodes; - acc = $temp$acc; - continue compressNodes; - } - } - }); -var $elm$core$Tuple$first = function (_v0) { - var x = _v0.a; - return x; -}; -var $elm$core$Array$treeFromBuilder = F2( - function (nodeList, nodeListSize) { - treeFromBuilder: - while (true) { - var newNodeSize = $elm$core$Basics$ceiling(nodeListSize / $elm$core$Array$branchFactor); - if (newNodeSize === 1) { - return A2($elm$core$Elm$JsArray$initializeFromList, $elm$core$Array$branchFactor, nodeList).a; - } else { - var $temp$nodeList = A2($elm$core$Array$compressNodes, nodeList, _List_Nil), - $temp$nodeListSize = newNodeSize; - nodeList = $temp$nodeList; - nodeListSize = $temp$nodeListSize; - continue treeFromBuilder; - } - } - }); -var $elm$core$Array$builderToArray = F2( - function (reverseNodeList, builder) { - if (!builder.nodeListSize) { - return A4( - $elm$core$Array$Array_elm_builtin, - $elm$core$Elm$JsArray$length(builder.tail), - $elm$core$Array$shiftStep, - $elm$core$Elm$JsArray$empty, - builder.tail); - } else { - var treeLen = builder.nodeListSize * $elm$core$Array$branchFactor; - var depth = $elm$core$Basics$floor( - A2($elm$core$Basics$logBase, $elm$core$Array$branchFactor, treeLen - 1)); - var correctNodeList = reverseNodeList ? $elm$core$List$reverse(builder.nodeList) : builder.nodeList; - var tree = A2($elm$core$Array$treeFromBuilder, correctNodeList, builder.nodeListSize); - return A4( - $elm$core$Array$Array_elm_builtin, - $elm$core$Elm$JsArray$length(builder.tail) + treeLen, - A2($elm$core$Basics$max, 5, depth * $elm$core$Array$shiftStep), - tree, - builder.tail); - } - }); -var $elm$core$Basics$idiv = _Basics_idiv; -var $elm$core$Basics$lt = _Utils_lt; -var $elm$core$Array$initializeHelp = F5( - function (fn, fromIndex, len, nodeList, tail) { - initializeHelp: - while (true) { - if (fromIndex < 0) { - return A2( - $elm$core$Array$builderToArray, - false, - {nodeList: nodeList, nodeListSize: (len / $elm$core$Array$branchFactor) | 0, tail: tail}); - } else { - var leaf = $elm$core$Array$Leaf( - A3($elm$core$Elm$JsArray$initialize, $elm$core$Array$branchFactor, fromIndex, fn)); - var $temp$fn = fn, - $temp$fromIndex = fromIndex - $elm$core$Array$branchFactor, - $temp$len = len, - $temp$nodeList = A2($elm$core$List$cons, leaf, nodeList), - $temp$tail = tail; - fn = $temp$fn; - fromIndex = $temp$fromIndex; - len = $temp$len; - nodeList = $temp$nodeList; - tail = $temp$tail; - continue initializeHelp; - } - } - }); -var $elm$core$Basics$remainderBy = _Basics_remainderBy; -var $elm$core$Array$initialize = F2( - function (len, fn) { - if (len <= 0) { - return $elm$core$Array$empty; - } else { - var tailLen = len % $elm$core$Array$branchFactor; - var tail = A3($elm$core$Elm$JsArray$initialize, tailLen, len - tailLen, fn); - var initialFromIndex = (len - tailLen) - $elm$core$Array$branchFactor; - return A5($elm$core$Array$initializeHelp, fn, initialFromIndex, len, _List_Nil, tail); - } - }); -var $elm$core$Basics$True = {$: 'True'}; -var $elm$core$Result$isOk = function (result) { - if (result.$ === 'Ok') { - return true; - } else { - return false; - } -}; -var $elm$json$Json$Decode$map = _Json_map1; -var $elm$json$Json$Decode$map2 = _Json_map2; -var $elm$json$Json$Decode$succeed = _Json_succeed; -var $elm$virtual_dom$VirtualDom$toHandlerInt = function (handler) { - switch (handler.$) { - case 'Normal': - return 0; - case 'MayStopPropagation': - return 1; - case 'MayPreventDefault': - return 2; - default: - return 3; - } -}; -var $elm$browser$Browser$External = function (a) { - return {$: 'External', a: a}; -}; -var $elm$browser$Browser$Internal = function (a) { - return {$: 'Internal', a: a}; -}; -var $elm$core$Basics$identity = function (x) { - return x; -}; -var $elm$browser$Browser$Dom$NotFound = function (a) { - return {$: 'NotFound', a: a}; -}; -var $elm$url$Url$Http = {$: 'Http'}; -var $elm$url$Url$Https = {$: 'Https'}; -var $elm$url$Url$Url = F6( - function (protocol, host, port_, path, query, fragment) { - return {fragment: fragment, host: host, path: path, port_: port_, protocol: protocol, query: query}; - }); -var $elm$core$String$contains = _String_contains; -var $elm$core$String$length = _String_length; -var $elm$core$String$slice = _String_slice; -var $elm$core$String$dropLeft = F2( - function (n, string) { - return (n < 1) ? string : A3( - $elm$core$String$slice, - n, - $elm$core$String$length(string), - string); - }); -var $elm$core$String$indexes = _String_indexes; -var $elm$core$String$isEmpty = function (string) { - return string === ''; -}; -var $elm$core$String$left = F2( - function (n, string) { - return (n < 1) ? '' : A3($elm$core$String$slice, 0, n, string); - }); -var $elm$core$String$toInt = _String_toInt; -var $elm$url$Url$chompBeforePath = F5( - function (protocol, path, params, frag, str) { - if ($elm$core$String$isEmpty(str) || A2($elm$core$String$contains, '@', str)) { - return $elm$core$Maybe$Nothing; - } else { - var _v0 = A2($elm$core$String$indexes, ':', str); - if (!_v0.b) { - return $elm$core$Maybe$Just( - A6($elm$url$Url$Url, protocol, str, $elm$core$Maybe$Nothing, path, params, frag)); - } else { - if (!_v0.b.b) { - var i = _v0.a; - var _v1 = $elm$core$String$toInt( - A2($elm$core$String$dropLeft, i + 1, str)); - if (_v1.$ === 'Nothing') { - return $elm$core$Maybe$Nothing; - } else { - var port_ = _v1; - return $elm$core$Maybe$Just( - A6( - $elm$url$Url$Url, - protocol, - A2($elm$core$String$left, i, str), - port_, - path, - params, - frag)); - } - } else { - return $elm$core$Maybe$Nothing; - } - } - } - }); -var $elm$url$Url$chompBeforeQuery = F4( - function (protocol, params, frag, str) { - if ($elm$core$String$isEmpty(str)) { - return $elm$core$Maybe$Nothing; - } else { - var _v0 = A2($elm$core$String$indexes, '/', str); - if (!_v0.b) { - return A5($elm$url$Url$chompBeforePath, protocol, '/', params, frag, str); - } else { - var i = _v0.a; - return A5( - $elm$url$Url$chompBeforePath, - protocol, - A2($elm$core$String$dropLeft, i, str), - params, - frag, - A2($elm$core$String$left, i, str)); - } - } - }); -var $elm$url$Url$chompBeforeFragment = F3( - function (protocol, frag, str) { - if ($elm$core$String$isEmpty(str)) { - return $elm$core$Maybe$Nothing; - } else { - var _v0 = A2($elm$core$String$indexes, '?', str); - if (!_v0.b) { - return A4($elm$url$Url$chompBeforeQuery, protocol, $elm$core$Maybe$Nothing, frag, str); - } else { - var i = _v0.a; - return A4( - $elm$url$Url$chompBeforeQuery, - protocol, - $elm$core$Maybe$Just( - A2($elm$core$String$dropLeft, i + 1, str)), - frag, - A2($elm$core$String$left, i, str)); - } - } - }); -var $elm$url$Url$chompAfterProtocol = F2( - function (protocol, str) { - if ($elm$core$String$isEmpty(str)) { - return $elm$core$Maybe$Nothing; - } else { - var _v0 = A2($elm$core$String$indexes, '#', str); - if (!_v0.b) { - return A3($elm$url$Url$chompBeforeFragment, protocol, $elm$core$Maybe$Nothing, str); - } else { - var i = _v0.a; - return A3( - $elm$url$Url$chompBeforeFragment, - protocol, - $elm$core$Maybe$Just( - A2($elm$core$String$dropLeft, i + 1, str)), - A2($elm$core$String$left, i, str)); - } - } - }); -var $elm$core$String$startsWith = _String_startsWith; -var $elm$url$Url$fromString = function (str) { - return A2($elm$core$String$startsWith, 'http://', str) ? A2( - $elm$url$Url$chompAfterProtocol, - $elm$url$Url$Http, - A2($elm$core$String$dropLeft, 7, str)) : (A2($elm$core$String$startsWith, 'https://', str) ? A2( - $elm$url$Url$chompAfterProtocol, - $elm$url$Url$Https, - A2($elm$core$String$dropLeft, 8, str)) : $elm$core$Maybe$Nothing); -}; -var $elm$core$Basics$never = function (_v0) { - never: - while (true) { - var nvr = _v0.a; - var $temp$_v0 = nvr; - _v0 = $temp$_v0; - continue never; - } -}; -var $elm$core$Task$Perform = function (a) { - return {$: 'Perform', a: a}; -}; -var $elm$core$Task$succeed = _Scheduler_succeed; -var $elm$core$Task$init = $elm$core$Task$succeed(_Utils_Tuple0); -var $elm$core$List$foldrHelper = F4( - function (fn, acc, ctr, ls) { - if (!ls.b) { - return acc; - } else { - var a = ls.a; - var r1 = ls.b; - if (!r1.b) { - return A2(fn, a, acc); - } else { - var b = r1.a; - var r2 = r1.b; - if (!r2.b) { - return A2( - fn, - a, - A2(fn, b, acc)); - } else { - var c = r2.a; - var r3 = r2.b; - if (!r3.b) { - return A2( - fn, - a, - A2( - fn, - b, - A2(fn, c, acc))); - } else { - var d = r3.a; - var r4 = r3.b; - var res = (ctr > 500) ? A3( - $elm$core$List$foldl, - fn, - acc, - $elm$core$List$reverse(r4)) : A4($elm$core$List$foldrHelper, fn, acc, ctr + 1, r4); - return A2( - fn, - a, - A2( - fn, - b, - A2( - fn, - c, - A2(fn, d, res)))); - } - } - } - } - }); -var $elm$core$List$foldr = F3( - function (fn, acc, ls) { - return A4($elm$core$List$foldrHelper, fn, acc, 0, ls); - }); -var $elm$core$List$map = F2( - function (f, xs) { - return A3( - $elm$core$List$foldr, - F2( - function (x, acc) { - return A2( - $elm$core$List$cons, - f(x), - acc); - }), - _List_Nil, - xs); - }); -var $elm$core$Task$andThen = _Scheduler_andThen; -var $elm$core$Task$map = F2( - function (func, taskA) { - return A2( - $elm$core$Task$andThen, - function (a) { - return $elm$core$Task$succeed( - func(a)); - }, - taskA); - }); -var $elm$core$Task$map2 = F3( - function (func, taskA, taskB) { - return A2( - $elm$core$Task$andThen, - function (a) { - return A2( - $elm$core$Task$andThen, - function (b) { - return $elm$core$Task$succeed( - A2(func, a, b)); - }, - taskB); - }, - taskA); - }); -var $elm$core$Task$sequence = function (tasks) { - return A3( - $elm$core$List$foldr, - $elm$core$Task$map2($elm$core$List$cons), - $elm$core$Task$succeed(_List_Nil), - tasks); -}; -var $elm$core$Platform$sendToApp = _Platform_sendToApp; -var $elm$core$Task$spawnCmd = F2( - function (router, _v0) { - var task = _v0.a; - return _Scheduler_spawn( - A2( - $elm$core$Task$andThen, - $elm$core$Platform$sendToApp(router), - task)); - }); -var $elm$core$Task$onEffects = F3( - function (router, commands, state) { - return A2( - $elm$core$Task$map, - function (_v0) { - return _Utils_Tuple0; - }, - $elm$core$Task$sequence( - A2( - $elm$core$List$map, - $elm$core$Task$spawnCmd(router), - commands))); - }); -var $elm$core$Task$onSelfMsg = F3( - function (_v0, _v1, _v2) { - return $elm$core$Task$succeed(_Utils_Tuple0); - }); -var $elm$core$Task$cmdMap = F2( - function (tagger, _v0) { - var task = _v0.a; - return $elm$core$Task$Perform( - A2($elm$core$Task$map, tagger, task)); - }); -_Platform_effectManagers['Task'] = _Platform_createManager($elm$core$Task$init, $elm$core$Task$onEffects, $elm$core$Task$onSelfMsg, $elm$core$Task$cmdMap); -var $elm$core$Task$command = _Platform_leaf('Task'); -var $elm$core$Task$perform = F2( - function (toMessage, task) { - return $elm$core$Task$command( - $elm$core$Task$Perform( - A2($elm$core$Task$map, toMessage, task))); - }); -var $elm$browser$Browser$application = _Browser_application; -var $author$project$Main$HomePage = {$: 'HomePage'}; -var $author$project$Main$Model = F9( - function (key, url, location, loginModel, catalogModel, productModel, signupModel, cartModel, checkoutModel) { - return {cartModel: cartModel, catalogModel: catalogModel, checkoutModel: checkoutModel, key: key, location: location, loginModel: loginModel, productModel: productModel, signupModel: signupModel, url: url}; - }); -var $author$project$Cart$Model = F2( - function (pageStatus, products) { - return {pageStatus: pageStatus, products: products}; - }); -var $author$project$Cart$NotLoaded = {$: 'NotLoaded'}; -var $author$project$Cart$init = A2($author$project$Cart$Model, $author$project$Cart$NotLoaded, _List_Nil); -var $author$project$Catalog$Model = F3( - function (pageStatus, products, filters) { - return {filters: filters, pageStatus: pageStatus, products: products}; - }); -var $author$project$Catalog$NotLoaded = {$: 'NotLoaded'}; -var $author$project$Catalog$Filters = F2( - function (price, rating) { - return {price: price, rating: rating}; - }); -var $elm$core$Basics$negate = function (n) { - return -n; -}; -var $author$project$Catalog$defaultFilters = A2( - $author$project$Catalog$Filters, - _Utils_Tuple2(-1, 100000), - _Utils_Tuple2(0, 5)); -var $author$project$Catalog$init = A3($author$project$Catalog$Model, $author$project$Catalog$NotLoaded, _List_Nil, $author$project$Catalog$defaultFilters); -var $author$project$Checkout$Model = F3( - function (pageStatus, paymentMode, cartTotal) { - return {cartTotal: cartTotal, pageStatus: pageStatus, paymentMode: paymentMode}; - }); -var $author$project$Checkout$NotLoaded = {$: 'NotLoaded'}; -var $author$project$Checkout$init = A3($author$project$Checkout$Model, $author$project$Checkout$NotLoaded, 'Cash', 0); -var $author$project$Login$Model = F3( - function (username, password, loginStatus) { - return {loginStatus: loginStatus, password: password, username: username}; - }); -var $author$project$Login$NotLoggedIn = {$: 'NotLoggedIn'}; -var $author$project$Login$init = A3($author$project$Login$Model, '', '', $author$project$Login$NotLoggedIn); -var $author$project$Product$Model = F6( - function (pageStatus, listing, ratings, ratingStars, ratingText, addRatingStatus) { - return {addRatingStatus: addRatingStatus, listing: listing, pageStatus: pageStatus, ratingStars: ratingStars, ratingText: ratingText, ratings: ratings}; - }); -var $author$project$Product$NotLoaded = {$: 'NotLoaded'}; -var $author$project$Product$NotSubmitted = {$: 'NotSubmitted'}; -var $author$project$Product$Product = F7( - function (id, name, kind, price, description, src, iosSrc) { - return {description: description, id: id, iosSrc: iosSrc, kind: kind, name: name, price: price, src: src}; - }); -var $author$project$Product$emptyProduct = A7($author$project$Product$Product, -1, '', $elm$core$Maybe$Nothing, 0, $elm$core$Maybe$Nothing, '', ''); -var $author$project$Product$init = A6($author$project$Product$Model, $author$project$Product$NotLoaded, $author$project$Product$emptyProduct, _List_Nil, 5, '', $author$project$Product$NotSubmitted); -var $author$project$Signup$Empty = {$: 'Empty'}; -var $author$project$Signup$Model = F6( - function (username, password, phoneNumber, emailId, address, status) { - return {address: address, emailId: emailId, password: password, phoneNumber: phoneNumber, status: status, username: username}; - }); -var $author$project$Signup$init = A6($author$project$Signup$Model, '', '', '', '', $elm$core$Maybe$Nothing, $author$project$Signup$Empty); -var $elm$core$Platform$Cmd$batch = _Platform_batch; -var $elm$core$Platform$Cmd$none = $elm$core$Platform$Cmd$batch(_List_Nil); -var $author$project$Main$init = F3( - function (flags, url, key) { - var start = $author$project$Main$HomePage; - var signup = $author$project$Signup$init; - var product = $author$project$Product$init; - var login = $author$project$Login$init; - var checkout = $author$project$Checkout$init; - var catalog = $author$project$Catalog$init; - var cart = $author$project$Cart$init; - return _Utils_Tuple2( - A9($author$project$Main$Model, key, url, start, login, catalog, product, signup, cart, checkout), - $elm$core$Platform$Cmd$none); - }); -var $elm$core$Platform$Sub$batch = _Platform_batch; -var $elm$core$Platform$Sub$none = $elm$core$Platform$Sub$batch(_List_Nil); -var $author$project$Main$subscriptions = function (_v0) { - return $elm$core$Platform$Sub$none; -}; -var $author$project$Main$CartMessage = function (a) { - return {$: 'CartMessage', a: a}; -}; -var $author$project$Main$CartPage = {$: 'CartPage'}; -var $author$project$Main$CatalogMessage = function (a) { - return {$: 'CatalogMessage', a: a}; -}; -var $author$project$Main$CatalogPage = {$: 'CatalogPage'}; -var $author$project$Main$CheckoutMessage = function (a) { - return {$: 'CheckoutMessage', a: a}; -}; -var $author$project$Main$CheckoutPage = {$: 'CheckoutPage'}; -var $author$project$Main$LoginMessage = function (a) { - return {$: 'LoginMessage', a: a}; -}; -var $author$project$Main$NotFoundPage = {$: 'NotFoundPage'}; -var $author$project$Main$ProductMessage = function (a) { - return {$: 'ProductMessage', a: a}; -}; -var $author$project$Main$ProductPage = function (a) { - return {$: 'ProductPage', a: a}; -}; -var $author$project$Main$SignupMessage = function (a) { - return {$: 'SignupMessage', a: a}; -}; -var $author$project$Checkout$AmountLoaded = function (a) { - return {$: 'AmountLoaded', a: a}; -}; -var $elm$http$Http$BadStatus_ = F2( - function (a, b) { - return {$: 'BadStatus_', a: a, b: b}; - }); -var $elm$http$Http$BadUrl_ = function (a) { - return {$: 'BadUrl_', a: a}; -}; -var $elm$http$Http$GoodStatus_ = F2( - function (a, b) { - return {$: 'GoodStatus_', a: a, b: b}; - }); -var $elm$http$Http$NetworkError_ = {$: 'NetworkError_'}; -var $elm$http$Http$Receiving = function (a) { - return {$: 'Receiving', a: a}; -}; -var $elm$http$Http$Sending = function (a) { - return {$: 'Sending', a: a}; -}; -var $elm$http$Http$Timeout_ = {$: 'Timeout_'}; -var $elm$core$Dict$RBEmpty_elm_builtin = {$: 'RBEmpty_elm_builtin'}; -var $elm$core$Dict$empty = $elm$core$Dict$RBEmpty_elm_builtin; -var $elm$core$Maybe$isJust = function (maybe) { - if (maybe.$ === 'Just') { - return true; - } else { - return false; - } -}; -var $elm$core$Platform$sendToSelf = _Platform_sendToSelf; -var $elm$core$Basics$compare = _Utils_compare; -var $elm$core$Dict$get = F2( - function (targetKey, dict) { - get: - while (true) { - if (dict.$ === 'RBEmpty_elm_builtin') { - return $elm$core$Maybe$Nothing; - } else { - var key = dict.b; - var value = dict.c; - var left = dict.d; - var right = dict.e; - var _v1 = A2($elm$core$Basics$compare, targetKey, key); - switch (_v1.$) { - case 'LT': - var $temp$targetKey = targetKey, - $temp$dict = left; - targetKey = $temp$targetKey; - dict = $temp$dict; - continue get; - case 'EQ': - return $elm$core$Maybe$Just(value); - default: - var $temp$targetKey = targetKey, - $temp$dict = right; - targetKey = $temp$targetKey; - dict = $temp$dict; - continue get; - } - } - } - }); -var $elm$core$Dict$Black = {$: 'Black'}; -var $elm$core$Dict$RBNode_elm_builtin = F5( - function (a, b, c, d, e) { - return {$: 'RBNode_elm_builtin', a: a, b: b, c: c, d: d, e: e}; - }); -var $elm$core$Dict$Red = {$: 'Red'}; -var $elm$core$Dict$balance = F5( - function (color, key, value, left, right) { - if ((right.$ === 'RBNode_elm_builtin') && (right.a.$ === 'Red')) { - var _v1 = right.a; - var rK = right.b; - var rV = right.c; - var rLeft = right.d; - var rRight = right.e; - if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) { - var _v3 = left.a; - var lK = left.b; - var lV = left.c; - var lLeft = left.d; - var lRight = left.e; - return A5( - $elm$core$Dict$RBNode_elm_builtin, - $elm$core$Dict$Red, - key, - value, - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, lK, lV, lLeft, lRight), - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, rK, rV, rLeft, rRight)); - } else { - return A5( - $elm$core$Dict$RBNode_elm_builtin, - color, - rK, - rV, - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, key, value, left, rLeft), - rRight); - } - } else { - if ((((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) && (left.d.$ === 'RBNode_elm_builtin')) && (left.d.a.$ === 'Red')) { - var _v5 = left.a; - var lK = left.b; - var lV = left.c; - var _v6 = left.d; - var _v7 = _v6.a; - var llK = _v6.b; - var llV = _v6.c; - var llLeft = _v6.d; - var llRight = _v6.e; - var lRight = left.e; - return A5( - $elm$core$Dict$RBNode_elm_builtin, - $elm$core$Dict$Red, - lK, - lV, - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, llK, llV, llLeft, llRight), - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, key, value, lRight, right)); - } else { - return A5($elm$core$Dict$RBNode_elm_builtin, color, key, value, left, right); - } - } - }); -var $elm$core$Dict$insertHelp = F3( - function (key, value, dict) { - if (dict.$ === 'RBEmpty_elm_builtin') { - 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); - } else { - var nColor = dict.a; - var nKey = dict.b; - var nValue = dict.c; - var nLeft = dict.d; - var nRight = dict.e; - var _v1 = A2($elm$core$Basics$compare, key, nKey); - switch (_v1.$) { - case 'LT': - return A5( - $elm$core$Dict$balance, - nColor, - nKey, - nValue, - A3($elm$core$Dict$insertHelp, key, value, nLeft), - nRight); - case 'EQ': - return A5($elm$core$Dict$RBNode_elm_builtin, nColor, nKey, value, nLeft, nRight); - default: - return A5( - $elm$core$Dict$balance, - nColor, - nKey, - nValue, - nLeft, - A3($elm$core$Dict$insertHelp, key, value, nRight)); - } - } - }); -var $elm$core$Dict$insert = F3( - function (key, value, dict) { - var _v0 = A3($elm$core$Dict$insertHelp, key, value, dict); - if ((_v0.$ === 'RBNode_elm_builtin') && (_v0.a.$ === 'Red')) { - var _v1 = _v0.a; - var k = _v0.b; - var v = _v0.c; - var l = _v0.d; - var r = _v0.e; - return A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, k, v, l, r); - } else { - var x = _v0; - return x; - } - }); -var $elm$core$Dict$getMin = function (dict) { - getMin: - while (true) { - if ((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) { - var left = dict.d; - var $temp$dict = left; - dict = $temp$dict; - continue getMin; - } else { - return dict; - } - } -}; -var $elm$core$Dict$moveRedLeft = function (dict) { - if (((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) && (dict.e.$ === 'RBNode_elm_builtin')) { - if ((dict.e.d.$ === 'RBNode_elm_builtin') && (dict.e.d.a.$ === 'Red')) { - var clr = dict.a; - var k = dict.b; - var v = dict.c; - var _v1 = dict.d; - var lClr = _v1.a; - var lK = _v1.b; - var lV = _v1.c; - var lLeft = _v1.d; - var lRight = _v1.e; - var _v2 = dict.e; - var rClr = _v2.a; - var rK = _v2.b; - var rV = _v2.c; - var rLeft = _v2.d; - var _v3 = rLeft.a; - var rlK = rLeft.b; - var rlV = rLeft.c; - var rlL = rLeft.d; - var rlR = rLeft.e; - var rRight = _v2.e; - return A5( - $elm$core$Dict$RBNode_elm_builtin, - $elm$core$Dict$Red, - rlK, - rlV, - A5( - $elm$core$Dict$RBNode_elm_builtin, - $elm$core$Dict$Black, - k, - v, - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight), - rlL), - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, rK, rV, rlR, rRight)); - } else { - var clr = dict.a; - var k = dict.b; - var v = dict.c; - var _v4 = dict.d; - var lClr = _v4.a; - var lK = _v4.b; - var lV = _v4.c; - var lLeft = _v4.d; - var lRight = _v4.e; - var _v5 = dict.e; - var rClr = _v5.a; - var rK = _v5.b; - var rV = _v5.c; - var rLeft = _v5.d; - var rRight = _v5.e; - if (clr.$ === 'Black') { - return A5( - $elm$core$Dict$RBNode_elm_builtin, - $elm$core$Dict$Black, - k, - v, - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight), - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight)); - } else { - return A5( - $elm$core$Dict$RBNode_elm_builtin, - $elm$core$Dict$Black, - k, - v, - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight), - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight)); - } - } - } else { - return dict; - } -}; -var $elm$core$Dict$moveRedRight = function (dict) { - if (((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) && (dict.e.$ === 'RBNode_elm_builtin')) { - if ((dict.d.d.$ === 'RBNode_elm_builtin') && (dict.d.d.a.$ === 'Red')) { - var clr = dict.a; - var k = dict.b; - var v = dict.c; - var _v1 = dict.d; - var lClr = _v1.a; - var lK = _v1.b; - var lV = _v1.c; - var _v2 = _v1.d; - var _v3 = _v2.a; - var llK = _v2.b; - var llV = _v2.c; - var llLeft = _v2.d; - var llRight = _v2.e; - var lRight = _v1.e; - var _v4 = dict.e; - var rClr = _v4.a; - var rK = _v4.b; - var rV = _v4.c; - var rLeft = _v4.d; - var rRight = _v4.e; - return A5( - $elm$core$Dict$RBNode_elm_builtin, - $elm$core$Dict$Red, - lK, - lV, - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, llK, llV, llLeft, llRight), - A5( - $elm$core$Dict$RBNode_elm_builtin, - $elm$core$Dict$Black, - k, - v, - lRight, - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight))); - } else { - var clr = dict.a; - var k = dict.b; - var v = dict.c; - var _v5 = dict.d; - var lClr = _v5.a; - var lK = _v5.b; - var lV = _v5.c; - var lLeft = _v5.d; - var lRight = _v5.e; - var _v6 = dict.e; - var rClr = _v6.a; - var rK = _v6.b; - var rV = _v6.c; - var rLeft = _v6.d; - var rRight = _v6.e; - if (clr.$ === 'Black') { - return A5( - $elm$core$Dict$RBNode_elm_builtin, - $elm$core$Dict$Black, - k, - v, - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight), - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight)); - } else { - return A5( - $elm$core$Dict$RBNode_elm_builtin, - $elm$core$Dict$Black, - k, - v, - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight), - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight)); - } - } - } else { - return dict; - } -}; -var $elm$core$Dict$removeHelpPrepEQGT = F7( - function (targetKey, dict, color, key, value, left, right) { - if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) { - var _v1 = left.a; - var lK = left.b; - var lV = left.c; - var lLeft = left.d; - var lRight = left.e; - return A5( - $elm$core$Dict$RBNode_elm_builtin, - color, - lK, - lV, - lLeft, - A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, key, value, lRight, right)); - } else { - _v2$2: - while (true) { - if ((right.$ === 'RBNode_elm_builtin') && (right.a.$ === 'Black')) { - if (right.d.$ === 'RBNode_elm_builtin') { - if (right.d.a.$ === 'Black') { - var _v3 = right.a; - var _v4 = right.d; - var _v5 = _v4.a; - return $elm$core$Dict$moveRedRight(dict); - } else { - break _v2$2; - } - } else { - var _v6 = right.a; - var _v7 = right.d; - return $elm$core$Dict$moveRedRight(dict); - } - } else { - break _v2$2; - } - } - return dict; - } - }); -var $elm$core$Dict$removeMin = function (dict) { - if ((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) { - var color = dict.a; - var key = dict.b; - var value = dict.c; - var left = dict.d; - var lColor = left.a; - var lLeft = left.d; - var right = dict.e; - if (lColor.$ === 'Black') { - if ((lLeft.$ === 'RBNode_elm_builtin') && (lLeft.a.$ === 'Red')) { - var _v3 = lLeft.a; - return A5( - $elm$core$Dict$RBNode_elm_builtin, - color, - key, - value, - $elm$core$Dict$removeMin(left), - right); - } else { - var _v4 = $elm$core$Dict$moveRedLeft(dict); - if (_v4.$ === 'RBNode_elm_builtin') { - var nColor = _v4.a; - var nKey = _v4.b; - var nValue = _v4.c; - var nLeft = _v4.d; - var nRight = _v4.e; - return A5( - $elm$core$Dict$balance, - nColor, - nKey, - nValue, - $elm$core$Dict$removeMin(nLeft), - nRight); - } else { - return $elm$core$Dict$RBEmpty_elm_builtin; - } - } - } else { - return A5( - $elm$core$Dict$RBNode_elm_builtin, - color, - key, - value, - $elm$core$Dict$removeMin(left), - right); - } - } else { - return $elm$core$Dict$RBEmpty_elm_builtin; - } -}; -var $elm$core$Dict$removeHelp = F2( - function (targetKey, dict) { - if (dict.$ === 'RBEmpty_elm_builtin') { - return $elm$core$Dict$RBEmpty_elm_builtin; - } else { - var color = dict.a; - var key = dict.b; - var value = dict.c; - var left = dict.d; - var right = dict.e; - if (_Utils_cmp(targetKey, key) < 0) { - if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Black')) { - var _v4 = left.a; - var lLeft = left.d; - if ((lLeft.$ === 'RBNode_elm_builtin') && (lLeft.a.$ === 'Red')) { - var _v6 = lLeft.a; - return A5( - $elm$core$Dict$RBNode_elm_builtin, - color, - key, - value, - A2($elm$core$Dict$removeHelp, targetKey, left), - right); - } else { - var _v7 = $elm$core$Dict$moveRedLeft(dict); - if (_v7.$ === 'RBNode_elm_builtin') { - var nColor = _v7.a; - var nKey = _v7.b; - var nValue = _v7.c; - var nLeft = _v7.d; - var nRight = _v7.e; - return A5( - $elm$core$Dict$balance, - nColor, - nKey, - nValue, - A2($elm$core$Dict$removeHelp, targetKey, nLeft), - nRight); - } else { - return $elm$core$Dict$RBEmpty_elm_builtin; - } - } - } else { - return A5( - $elm$core$Dict$RBNode_elm_builtin, - color, - key, - value, - A2($elm$core$Dict$removeHelp, targetKey, left), - right); - } - } else { - return A2( - $elm$core$Dict$removeHelpEQGT, - targetKey, - A7($elm$core$Dict$removeHelpPrepEQGT, targetKey, dict, color, key, value, left, right)); - } - } - }); -var $elm$core$Dict$removeHelpEQGT = F2( - function (targetKey, dict) { - if (dict.$ === 'RBNode_elm_builtin') { - var color = dict.a; - var key = dict.b; - var value = dict.c; - var left = dict.d; - var right = dict.e; - if (_Utils_eq(targetKey, key)) { - var _v1 = $elm$core$Dict$getMin(right); - if (_v1.$ === 'RBNode_elm_builtin') { - var minKey = _v1.b; - var minValue = _v1.c; - return A5( - $elm$core$Dict$balance, - color, - minKey, - minValue, - left, - $elm$core$Dict$removeMin(right)); - } else { - return $elm$core$Dict$RBEmpty_elm_builtin; - } - } else { - return A5( - $elm$core$Dict$balance, - color, - key, - value, - left, - A2($elm$core$Dict$removeHelp, targetKey, right)); - } - } else { - return $elm$core$Dict$RBEmpty_elm_builtin; - } - }); -var $elm$core$Dict$remove = F2( - function (key, dict) { - var _v0 = A2($elm$core$Dict$removeHelp, key, dict); - if ((_v0.$ === 'RBNode_elm_builtin') && (_v0.a.$ === 'Red')) { - var _v1 = _v0.a; - var k = _v0.b; - var v = _v0.c; - var l = _v0.d; - var r = _v0.e; - return A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, k, v, l, r); - } else { - var x = _v0; - return x; - } - }); -var $elm$core$Dict$update = F3( - function (targetKey, alter, dictionary) { - var _v0 = alter( - A2($elm$core$Dict$get, targetKey, dictionary)); - if (_v0.$ === 'Just') { - var value = _v0.a; - return A3($elm$core$Dict$insert, targetKey, value, dictionary); - } else { - return A2($elm$core$Dict$remove, targetKey, dictionary); - } - }); -var $elm$http$Http$emptyBody = _Http_emptyBody; -var $elm$json$Json$Decode$decodeString = _Json_runOnString; -var $elm$core$Basics$composeR = F3( - function (f, g, x) { - return g( - f(x)); - }); -var $elm$http$Http$expectStringResponse = F2( - function (toMsg, toResult) { - return A3( - _Http_expect, - '', - $elm$core$Basics$identity, - A2($elm$core$Basics$composeR, toResult, toMsg)); - }); -var $elm$core$Result$mapError = F2( - function (f, result) { - if (result.$ === 'Ok') { - var v = result.a; - return $elm$core$Result$Ok(v); - } else { - var e = result.a; - return $elm$core$Result$Err( - f(e)); - } - }); -var $elm$http$Http$BadBody = function (a) { - return {$: 'BadBody', a: a}; -}; -var $elm$http$Http$BadStatus = function (a) { - return {$: 'BadStatus', a: a}; -}; -var $elm$http$Http$BadUrl = function (a) { - return {$: 'BadUrl', a: a}; -}; -var $elm$http$Http$NetworkError = {$: 'NetworkError'}; -var $elm$http$Http$Timeout = {$: 'Timeout'}; -var $elm$http$Http$resolve = F2( - function (toResult, response) { - switch (response.$) { - case 'BadUrl_': - var url = response.a; - return $elm$core$Result$Err( - $elm$http$Http$BadUrl(url)); - case 'Timeout_': - return $elm$core$Result$Err($elm$http$Http$Timeout); - case 'NetworkError_': - return $elm$core$Result$Err($elm$http$Http$NetworkError); - case 'BadStatus_': - var metadata = response.a; - return $elm$core$Result$Err( - $elm$http$Http$BadStatus(metadata.statusCode)); - default: - var body = response.b; - return A2( - $elm$core$Result$mapError, - $elm$http$Http$BadBody, - toResult(body)); - } - }); -var $elm$http$Http$expectJson = F2( - function (toMsg, decoder) { - return A2( - $elm$http$Http$expectStringResponse, - toMsg, - $elm$http$Http$resolve( - function (string) { - return A2( - $elm$core$Result$mapError, - $elm$json$Json$Decode$errorToString, - A2($elm$json$Json$Decode$decodeString, decoder, string)); - })); - }); -var $elm$json$Json$Decode$float = _Json_decodeFloat; -var $elm$http$Http$Request = function (a) { - return {$: 'Request', a: a}; -}; -var $elm$http$Http$State = F2( - function (reqs, subs) { - return {reqs: reqs, subs: subs}; - }); -var $elm$http$Http$init = $elm$core$Task$succeed( - A2($elm$http$Http$State, $elm$core$Dict$empty, _List_Nil)); -var $elm$core$Process$kill = _Scheduler_kill; -var $elm$core$Process$spawn = _Scheduler_spawn; -var $elm$http$Http$updateReqs = F3( - function (router, cmds, reqs) { - updateReqs: - while (true) { - if (!cmds.b) { - return $elm$core$Task$succeed(reqs); - } else { - var cmd = cmds.a; - var otherCmds = cmds.b; - if (cmd.$ === 'Cancel') { - var tracker = cmd.a; - var _v2 = A2($elm$core$Dict$get, tracker, reqs); - if (_v2.$ === 'Nothing') { - var $temp$router = router, - $temp$cmds = otherCmds, - $temp$reqs = reqs; - router = $temp$router; - cmds = $temp$cmds; - reqs = $temp$reqs; - continue updateReqs; - } else { - var pid = _v2.a; - return A2( - $elm$core$Task$andThen, - function (_v3) { - return A3( - $elm$http$Http$updateReqs, - router, - otherCmds, - A2($elm$core$Dict$remove, tracker, reqs)); - }, - $elm$core$Process$kill(pid)); - } - } else { - var req = cmd.a; - return A2( - $elm$core$Task$andThen, - function (pid) { - var _v4 = req.tracker; - if (_v4.$ === 'Nothing') { - return A3($elm$http$Http$updateReqs, router, otherCmds, reqs); - } else { - var tracker = _v4.a; - return A3( - $elm$http$Http$updateReqs, - router, - otherCmds, - A3($elm$core$Dict$insert, tracker, pid, reqs)); - } - }, - $elm$core$Process$spawn( - A3( - _Http_toTask, - router, - $elm$core$Platform$sendToApp(router), - req))); - } - } - } - }); -var $elm$http$Http$onEffects = F4( - function (router, cmds, subs, state) { - return A2( - $elm$core$Task$andThen, - function (reqs) { - return $elm$core$Task$succeed( - A2($elm$http$Http$State, reqs, subs)); - }, - A3($elm$http$Http$updateReqs, router, cmds, state.reqs)); - }); -var $elm$core$List$maybeCons = F3( - function (f, mx, xs) { - var _v0 = f(mx); - if (_v0.$ === 'Just') { - var x = _v0.a; - return A2($elm$core$List$cons, x, xs); - } else { - return xs; - } - }); -var $elm$core$List$filterMap = F2( - function (f, xs) { - return A3( - $elm$core$List$foldr, - $elm$core$List$maybeCons(f), - _List_Nil, - xs); - }); -var $elm$http$Http$maybeSend = F4( - function (router, desiredTracker, progress, _v0) { - var actualTracker = _v0.a; - var toMsg = _v0.b; - return _Utils_eq(desiredTracker, actualTracker) ? $elm$core$Maybe$Just( - A2( - $elm$core$Platform$sendToApp, - router, - toMsg(progress))) : $elm$core$Maybe$Nothing; - }); -var $elm$http$Http$onSelfMsg = F3( - function (router, _v0, state) { - var tracker = _v0.a; - var progress = _v0.b; - return A2( - $elm$core$Task$andThen, - function (_v1) { - return $elm$core$Task$succeed(state); - }, - $elm$core$Task$sequence( - A2( - $elm$core$List$filterMap, - A3($elm$http$Http$maybeSend, router, tracker, progress), - state.subs))); - }); -var $elm$http$Http$Cancel = function (a) { - return {$: 'Cancel', a: a}; -}; -var $elm$http$Http$cmdMap = F2( - function (func, cmd) { - if (cmd.$ === 'Cancel') { - var tracker = cmd.a; - return $elm$http$Http$Cancel(tracker); - } else { - var r = cmd.a; - return $elm$http$Http$Request( - { - allowCookiesFromOtherDomains: r.allowCookiesFromOtherDomains, - body: r.body, - expect: A2(_Http_mapExpect, func, r.expect), - headers: r.headers, - method: r.method, - timeout: r.timeout, - tracker: r.tracker, - url: r.url - }); - } - }); -var $elm$http$Http$MySub = F2( - function (a, b) { - return {$: 'MySub', a: a, b: b}; - }); -var $elm$http$Http$subMap = F2( - function (func, _v0) { - var tracker = _v0.a; - var toMsg = _v0.b; - return A2( - $elm$http$Http$MySub, - tracker, - A2($elm$core$Basics$composeR, toMsg, func)); - }); -_Platform_effectManagers['Http'] = _Platform_createManager($elm$http$Http$init, $elm$http$Http$onEffects, $elm$http$Http$onSelfMsg, $elm$http$Http$cmdMap, $elm$http$Http$subMap); -var $elm$http$Http$command = _Platform_leaf('Http'); -var $elm$http$Http$subscription = _Platform_leaf('Http'); -var $elm$http$Http$riskyRequest = function (r) { - return $elm$http$Http$command( - $elm$http$Http$Request( - {allowCookiesFromOtherDomains: true, body: r.body, expect: r.expect, headers: r.headers, method: r.method, timeout: r.timeout, tracker: r.tracker, url: r.url})); -}; -var $author$project$Checkout$fetchAmount = $elm$http$Http$riskyRequest( - { - body: $elm$http$Http$emptyBody, - expect: A2($elm$http$Http$expectJson, $author$project$Checkout$AmountLoaded, $elm$json$Json$Decode$float), - headers: _List_Nil, - method: 'GET', - timeout: $elm$core$Maybe$Nothing, - tracker: $elm$core$Maybe$Nothing, - url: 'http://127.0.0.1:7878/cart/total' - }); -var $author$project$Cart$CartLoaded = function (a) { - return {$: 'CartLoaded', a: a}; -}; -var $author$project$Cart$CartListing = F2( - function (productItem, quantity) { - return {productItem: productItem, quantity: quantity}; - }); -var $author$project$Cart$Product = F5( - function (id, name, kind, price, description) { - return {description: description, id: id, kind: kind, name: name, price: price}; - }); -var $elm$json$Json$Decode$field = _Json_decodeField; -var $elm$json$Json$Decode$int = _Json_decodeInt; -var $elm$json$Json$Decode$map5 = _Json_map5; -var $elm$json$Json$Decode$null = _Json_decodeNull; -var $elm$json$Json$Decode$oneOf = _Json_oneOf; -var $elm$json$Json$Decode$nullable = function (decoder) { - return $elm$json$Json$Decode$oneOf( - _List_fromArray( - [ - $elm$json$Json$Decode$null($elm$core$Maybe$Nothing), - A2($elm$json$Json$Decode$map, $elm$core$Maybe$Just, decoder) - ])); -}; -var $elm$json$Json$Decode$string = _Json_decodeString; -var $author$project$Cart$decodeProduct = A6( - $elm$json$Json$Decode$map5, - $author$project$Cart$Product, - A2($elm$json$Json$Decode$field, 'id', $elm$json$Json$Decode$int), - A2($elm$json$Json$Decode$field, 'name', $elm$json$Json$Decode$string), - A2( - $elm$json$Json$Decode$field, - 'kind', - $elm$json$Json$Decode$nullable($elm$json$Json$Decode$string)), - A2($elm$json$Json$Decode$field, 'price', $elm$json$Json$Decode$float), - A2( - $elm$json$Json$Decode$field, - 'description', - $elm$json$Json$Decode$nullable($elm$json$Json$Decode$string))); -var $elm$json$Json$Decode$list = _Json_decodeList; -var $author$project$Cart$decodeResponse = $elm$json$Json$Decode$list( - A3( - $elm$json$Json$Decode$map2, - $author$project$Cart$CartListing, - A2($elm$json$Json$Decode$field, 'product_item', $author$project$Cart$decodeProduct), - A2($elm$json$Json$Decode$field, 'quantity', $elm$json$Json$Decode$int))); -var $elm$core$Debug$log = _Debug_log; -var $author$project$Cart$fetchCartItems = function () { - var _v0 = A2($elm$core$Debug$log, 'cart', 'fetching cart items'); - return $elm$http$Http$riskyRequest( - { - body: $elm$http$Http$emptyBody, - expect: A2($elm$http$Http$expectJson, $author$project$Cart$CartLoaded, $author$project$Cart$decodeResponse), - headers: _List_Nil, - method: 'GET', - timeout: $elm$core$Maybe$Nothing, - tracker: $elm$core$Maybe$Nothing, - url: 'http://127.0.0.1:7878/cart/items' - }); -}(); -var $author$project$Product$ListingLoaded = function (a) { - return {$: 'ListingLoaded', a: a}; -}; -var $elm$json$Json$Decode$map7 = _Json_map7; -var $author$project$Product$decodeProduct = A8( - $elm$json$Json$Decode$map7, - $author$project$Product$Product, - A2($elm$json$Json$Decode$field, 'id', $elm$json$Json$Decode$int), - A2($elm$json$Json$Decode$field, 'name', $elm$json$Json$Decode$string), - A2( - $elm$json$Json$Decode$field, - 'kind', - $elm$json$Json$Decode$nullable($elm$json$Json$Decode$string)), - A2($elm$json$Json$Decode$field, 'price', $elm$json$Json$Decode$float), - A2( - $elm$json$Json$Decode$field, - 'description', - $elm$json$Json$Decode$nullable($elm$json$Json$Decode$string)), - A2($elm$json$Json$Decode$field, 'src', $elm$json$Json$Decode$string), - A2($elm$json$Json$Decode$field, 'ios_src', $elm$json$Json$Decode$string)); -var $elm$http$Http$request = function (r) { - return $elm$http$Http$command( - $elm$http$Http$Request( - {allowCookiesFromOtherDomains: false, body: r.body, expect: r.expect, headers: r.headers, method: r.method, timeout: r.timeout, tracker: r.tracker, url: r.url})); -}; -var $elm$http$Http$get = function (r) { - return $elm$http$Http$request( - {body: $elm$http$Http$emptyBody, expect: r.expect, headers: _List_Nil, method: 'GET', timeout: $elm$core$Maybe$Nothing, tracker: $elm$core$Maybe$Nothing, url: r.url}); -}; -var $author$project$Product$fetchListing = function (id) { - var _v0 = A2( - $elm$core$Debug$log, - 'err', - 'fetching listing ' + $elm$core$String$fromInt(id)); - return $elm$http$Http$get( - { - expect: A2($elm$http$Http$expectJson, $author$project$Product$ListingLoaded, $author$project$Product$decodeProduct), - url: 'http://127.0.0.1:7878/product/' + $elm$core$String$fromInt(id) - }); -}; -var $author$project$Catalog$ProductsLoaded = function (a) { - return {$: 'ProductsLoaded', a: a}; -}; -var $author$project$Catalog$Product = F8( - function (id, name, kind, price, description, averageRating, src, iosSrc) { - return {averageRating: averageRating, description: description, id: id, iosSrc: iosSrc, kind: kind, name: name, price: price, src: src}; - }); -var $elm$json$Json$Decode$map8 = _Json_map8; -var $author$project$Catalog$decodeProduct = A9( - $elm$json$Json$Decode$map8, - $author$project$Catalog$Product, - A2($elm$json$Json$Decode$field, 'id', $elm$json$Json$Decode$int), - A2($elm$json$Json$Decode$field, 'name', $elm$json$Json$Decode$string), - A2( - $elm$json$Json$Decode$field, - 'kind', - $elm$json$Json$Decode$nullable($elm$json$Json$Decode$string)), - A2($elm$json$Json$Decode$field, 'price', $elm$json$Json$Decode$float), - A2( - $elm$json$Json$Decode$field, - 'description', - $elm$json$Json$Decode$nullable($elm$json$Json$Decode$string)), - A2( - $elm$json$Json$Decode$field, - 'average_rating', - $elm$json$Json$Decode$nullable($elm$json$Json$Decode$float)), - A2($elm$json$Json$Decode$field, 'src', $elm$json$Json$Decode$string), - A2($elm$json$Json$Decode$field, 'ios_src', $elm$json$Json$Decode$string)); -var $author$project$Catalog$decodeResponse = $elm$json$Json$Decode$list($author$project$Catalog$decodeProduct); -var $author$project$Catalog$fetchProducts = function () { - var _v0 = A2($elm$core$Debug$log, 'err', 'fetching products'); - return $elm$http$Http$get( - { - expect: A2($elm$http$Http$expectJson, $author$project$Catalog$ProductsLoaded, $author$project$Catalog$decodeResponse), - url: 'http://127.0.0.1:7878/product/catalog' - }); -}(); -var $author$project$Product$RatingsLoaded = function (a) { - return {$: 'RatingsLoaded', a: a}; -}; -var $author$project$Product$Rating = F5( - function (commentDate, commentText, customerName, productName, stars) { - return {commentDate: commentDate, commentText: commentText, customerName: customerName, productName: productName, stars: stars}; - }); -var $author$project$Product$decodeRating = A6( - $elm$json$Json$Decode$map5, - $author$project$Product$Rating, - A2($elm$json$Json$Decode$field, 'comment_date', $elm$json$Json$Decode$string), - A2( - $elm$json$Json$Decode$field, - 'comment_text', - $elm$json$Json$Decode$nullable($elm$json$Json$Decode$string)), - A2($elm$json$Json$Decode$field, 'customer_name', $elm$json$Json$Decode$string), - A2($elm$json$Json$Decode$field, 'product_name', $elm$json$Json$Decode$string), - A2($elm$json$Json$Decode$field, 'stars', $elm$json$Json$Decode$int)); -var $author$project$Product$decodeRatings = $elm$json$Json$Decode$list($author$project$Product$decodeRating); -var $author$project$Product$fetchRatings = function (id) { - var _v0 = A2( - $elm$core$Debug$log, - 'err', - 'fetching ratings ' + $elm$core$String$fromInt(id)); - return $elm$http$Http$get( - { - expect: A2($elm$http$Http$expectJson, $author$project$Product$RatingsLoaded, $author$project$Product$decodeRatings), - url: 'http://127.0.0.1:7878/product/reviews/' + $elm$core$String$fromInt(id) - }); -}; -var $elm$browser$Browser$Navigation$load = _Browser_load; -var $elm$core$Platform$Cmd$map = _Platform_map; -var $elm$url$Url$Parser$State = F5( - function (visited, unvisited, params, frag, value) { - return {frag: frag, params: params, unvisited: unvisited, value: value, visited: visited}; - }); -var $elm$url$Url$Parser$getFirstMatch = function (states) { - getFirstMatch: - while (true) { - if (!states.b) { - return $elm$core$Maybe$Nothing; - } else { - var state = states.a; - var rest = states.b; - var _v1 = state.unvisited; - if (!_v1.b) { - return $elm$core$Maybe$Just(state.value); - } else { - if ((_v1.a === '') && (!_v1.b.b)) { - return $elm$core$Maybe$Just(state.value); - } else { - var $temp$states = rest; - states = $temp$states; - continue getFirstMatch; - } - } - } - } -}; -var $elm$url$Url$Parser$removeFinalEmpty = function (segments) { - if (!segments.b) { - return _List_Nil; - } else { - if ((segments.a === '') && (!segments.b.b)) { - return _List_Nil; - } else { - var segment = segments.a; - var rest = segments.b; - return A2( - $elm$core$List$cons, - segment, - $elm$url$Url$Parser$removeFinalEmpty(rest)); - } - } -}; -var $elm$url$Url$Parser$preparePath = function (path) { - var _v0 = A2($elm$core$String$split, '/', path); - if (_v0.b && (_v0.a === '')) { - var segments = _v0.b; - return $elm$url$Url$Parser$removeFinalEmpty(segments); - } else { - var segments = _v0; - return $elm$url$Url$Parser$removeFinalEmpty(segments); - } -}; -var $elm$url$Url$Parser$addToParametersHelp = F2( - function (value, maybeList) { - if (maybeList.$ === 'Nothing') { - return $elm$core$Maybe$Just( - _List_fromArray( - [value])); - } else { - var list = maybeList.a; - return $elm$core$Maybe$Just( - A2($elm$core$List$cons, value, list)); - } - }); -var $elm$url$Url$percentDecode = _Url_percentDecode; -var $elm$url$Url$Parser$addParam = F2( - function (segment, dict) { - var _v0 = A2($elm$core$String$split, '=', segment); - if ((_v0.b && _v0.b.b) && (!_v0.b.b.b)) { - var rawKey = _v0.a; - var _v1 = _v0.b; - var rawValue = _v1.a; - var _v2 = $elm$url$Url$percentDecode(rawKey); - if (_v2.$ === 'Nothing') { - return dict; - } else { - var key = _v2.a; - var _v3 = $elm$url$Url$percentDecode(rawValue); - if (_v3.$ === 'Nothing') { - return dict; - } else { - var value = _v3.a; - return A3( - $elm$core$Dict$update, - key, - $elm$url$Url$Parser$addToParametersHelp(value), - dict); - } - } - } else { - return dict; - } - }); -var $elm$url$Url$Parser$prepareQuery = function (maybeQuery) { - if (maybeQuery.$ === 'Nothing') { - return $elm$core$Dict$empty; - } else { - var qry = maybeQuery.a; - return A3( - $elm$core$List$foldr, - $elm$url$Url$Parser$addParam, - $elm$core$Dict$empty, - A2($elm$core$String$split, '&', qry)); - } -}; -var $elm$url$Url$Parser$parse = F2( - function (_v0, url) { - var parser = _v0.a; - return $elm$url$Url$Parser$getFirstMatch( - parser( - A5( - $elm$url$Url$Parser$State, - _List_Nil, - $elm$url$Url$Parser$preparePath(url.path), - $elm$url$Url$Parser$prepareQuery(url.query), - url.fragment, - $elm$core$Basics$identity))); - }); -var $author$project$Main$LoginPage = {$: 'LoginPage'}; -var $author$project$Main$SignupPage = {$: 'SignupPage'}; -var $elm$url$Url$Parser$Parser = function (a) { - return {$: 'Parser', a: a}; -}; -var $elm$url$Url$Parser$custom = F2( - function (tipe, stringToSomething) { - return $elm$url$Url$Parser$Parser( - function (_v0) { - var visited = _v0.visited; - var unvisited = _v0.unvisited; - var params = _v0.params; - var frag = _v0.frag; - var value = _v0.value; - if (!unvisited.b) { - return _List_Nil; - } else { - var next = unvisited.a; - var rest = unvisited.b; - var _v2 = stringToSomething(next); - if (_v2.$ === 'Just') { - var nextValue = _v2.a; - return _List_fromArray( - [ - A5( - $elm$url$Url$Parser$State, - A2($elm$core$List$cons, next, visited), - rest, - params, - frag, - value(nextValue)) - ]); - } else { - return _List_Nil; - } - } - }); - }); -var $elm$url$Url$Parser$int = A2($elm$url$Url$Parser$custom, 'NUMBER', $elm$core$String$toInt); -var $elm$url$Url$Parser$mapState = F2( - function (func, _v0) { - var visited = _v0.visited; - var unvisited = _v0.unvisited; - var params = _v0.params; - var frag = _v0.frag; - var value = _v0.value; - return A5( - $elm$url$Url$Parser$State, - visited, - unvisited, - params, - frag, - func(value)); - }); -var $elm$url$Url$Parser$map = F2( - function (subValue, _v0) { - var parseArg = _v0.a; - return $elm$url$Url$Parser$Parser( - function (_v1) { - var visited = _v1.visited; - var unvisited = _v1.unvisited; - var params = _v1.params; - var frag = _v1.frag; - var value = _v1.value; - return A2( - $elm$core$List$map, - $elm$url$Url$Parser$mapState(value), - parseArg( - A5($elm$url$Url$Parser$State, visited, unvisited, params, frag, subValue))); - }); - }); -var $elm$core$List$append = F2( - function (xs, ys) { - if (!ys.b) { - return xs; - } else { - return A3($elm$core$List$foldr, $elm$core$List$cons, ys, xs); - } - }); -var $elm$core$List$concat = function (lists) { - return A3($elm$core$List$foldr, $elm$core$List$append, _List_Nil, lists); -}; -var $elm$core$List$concatMap = F2( - function (f, list) { - return $elm$core$List$concat( - A2($elm$core$List$map, f, list)); - }); -var $elm$url$Url$Parser$oneOf = function (parsers) { - return $elm$url$Url$Parser$Parser( - function (state) { - return A2( - $elm$core$List$concatMap, - function (_v0) { - var parser = _v0.a; - return parser(state); - }, - parsers); - }); -}; -var $elm$url$Url$Parser$s = function (str) { - return $elm$url$Url$Parser$Parser( - function (_v0) { - var visited = _v0.visited; - var unvisited = _v0.unvisited; - var params = _v0.params; - var frag = _v0.frag; - var value = _v0.value; - if (!unvisited.b) { - return _List_Nil; - } else { - var next = unvisited.a; - var rest = unvisited.b; - return _Utils_eq(next, str) ? _List_fromArray( - [ - A5( - $elm$url$Url$Parser$State, - A2($elm$core$List$cons, next, visited), - rest, - params, - frag, - value) - ]) : _List_Nil; - } - }); -}; -var $elm$url$Url$Parser$slash = F2( - function (_v0, _v1) { - var parseBefore = _v0.a; - var parseAfter = _v1.a; - return $elm$url$Url$Parser$Parser( - function (state) { - return A2( - $elm$core$List$concatMap, - parseAfter, - parseBefore(state)); - }); - }); -var $elm$url$Url$Parser$top = $elm$url$Url$Parser$Parser( - function (state) { - return _List_fromArray( - [state]); - }); -var $author$project$Main$parseRoute = $elm$url$Url$Parser$oneOf( - _List_fromArray( - [ - A2( - $elm$url$Url$Parser$map, - $author$project$Main$LoginPage, - $elm$url$Url$Parser$s('login')), - A2($elm$url$Url$Parser$map, $author$project$Main$HomePage, $elm$url$Url$Parser$top), - A2( - $elm$url$Url$Parser$map, - $author$project$Main$CatalogPage, - $elm$url$Url$Parser$s('catalog')), - A2( - $elm$url$Url$Parser$map, - $author$project$Main$CartPage, - $elm$url$Url$Parser$s('cart')), - A2( - $elm$url$Url$Parser$map, - $author$project$Main$SignupPage, - $elm$url$Url$Parser$s('signup')), - A2( - $elm$url$Url$Parser$map, - $author$project$Main$CheckoutPage, - $elm$url$Url$Parser$s('checkout')), - A2( - $elm$url$Url$Parser$map, - $author$project$Main$ProductPage, - A2( - $elm$url$Url$Parser$slash, - $elm$url$Url$Parser$s('product'), - $elm$url$Url$Parser$int)) - ])); -var $elm$browser$Browser$Navigation$pushUrl = _Browser_pushUrl; -var $elm$browser$Browser$Navigation$replaceUrl = _Browser_replaceUrl; -var $elm$url$Url$addPort = F2( - function (maybePort, starter) { - if (maybePort.$ === 'Nothing') { - return starter; - } else { - var port_ = maybePort.a; - return starter + (':' + $elm$core$String$fromInt(port_)); - } - }); -var $elm$url$Url$addPrefixed = F3( - function (prefix, maybeSegment, starter) { - if (maybeSegment.$ === 'Nothing') { - return starter; - } else { - var segment = maybeSegment.a; - return _Utils_ap( - starter, - _Utils_ap(prefix, segment)); - } - }); -var $elm$url$Url$toString = function (url) { - var http = function () { - var _v0 = url.protocol; - if (_v0.$ === 'Http') { - return 'http://'; - } else { - return 'https://'; - } - }(); - return A3( - $elm$url$Url$addPrefixed, - '#', - url.fragment, - A3( - $elm$url$Url$addPrefixed, - '?', - url.query, - _Utils_ap( - A2( - $elm$url$Url$addPort, - url.port_, - _Utils_ap(http, url.host)), - url.path))); -}; -var $author$project$Main$LogoutSuccess = function (a) { - return {$: 'LogoutSuccess', a: a}; -}; -var $elm$http$Http$expectBytesResponse = F2( - function (toMsg, toResult) { - return A3( - _Http_expect, - 'arraybuffer', - _Http_toDataView, - A2($elm$core$Basics$composeR, toResult, toMsg)); - }); -var $elm$http$Http$expectWhatever = function (toMsg) { - return A2( - $elm$http$Http$expectBytesResponse, - toMsg, - $elm$http$Http$resolve( - function (_v0) { - return $elm$core$Result$Ok(_Utils_Tuple0); - })); -}; -var $author$project$Main$tryLogout = $elm$http$Http$riskyRequest( - { - body: $elm$http$Http$emptyBody, - expect: $elm$http$Http$expectWhatever($author$project$Main$LogoutSuccess), - headers: _List_Nil, - method: 'POST', - timeout: $elm$core$Maybe$Nothing, - tracker: $elm$core$Maybe$Nothing, - url: 'http://127.0.0.1:7878/user/logout' - }); -var $author$project$Cart$Loaded = {$: 'Loaded'}; -var $author$project$Cart$Loading = {$: 'Loading'}; -var $author$project$Cart$AddToCartSuccess = function (a) { - return {$: 'AddToCartSuccess', a: a}; -}; -var $elm$http$Http$stringBody = _Http_pair; -var $author$project$Cart$addToCart = function (id) { - var _v0 = A2( - $elm$core$Debug$log, - 'err', - 'adding to cart: ' + $elm$core$String$fromInt(id)); - return $elm$http$Http$riskyRequest( - { - body: A2( - $elm$http$Http$stringBody, - 'applcation/json', - $elm$core$String$fromInt(id)), - expect: $elm$http$Http$expectWhatever($author$project$Cart$AddToCartSuccess), - headers: _List_Nil, - method: 'POST', - timeout: $elm$core$Maybe$Nothing, - tracker: $elm$core$Maybe$Nothing, - url: 'http://127.0.0.1:7878/cart/add' - }); -}; -var $author$project$Cart$CartItemRemoved = function (a) { - return {$: 'CartItemRemoved', a: a}; -}; -var $author$project$Cart$removeProduct = function (id) { - var _v0 = A2($elm$core$Debug$log, 'cart', 'fetching cart items'); - return $elm$http$Http$riskyRequest( - { - body: A2( - $elm$http$Http$stringBody, - 'application/json', - $elm$core$String$fromInt(id)), - expect: $elm$http$Http$expectWhatever($author$project$Cart$CartItemRemoved), - headers: _List_Nil, - method: 'POST', - timeout: $elm$core$Maybe$Nothing, - tracker: $elm$core$Maybe$Nothing, - url: 'http://127.0.0.1:7878/cart/remove' - }); -}; -var $author$project$Cart$update = F2( - function (msg, model) { - switch (msg.$) { - case 'CartLoaded': - var res = msg.a; - if (res.$ === 'Ok') { - var s = res.a; - return _Utils_Tuple2( - _Utils_update( - model, - {pageStatus: $author$project$Cart$Loaded, products: s}), - $elm$core$Platform$Cmd$none); - } else { - var e = res.a; - var _v2 = A2($elm$core$Debug$log, 'error', e); - return _Utils_Tuple2( - _Utils_update( - model, - {pageStatus: $author$project$Cart$NotLoaded}), - $elm$core$Platform$Cmd$none); - } - case 'RemoveFromCart': - var id = msg.a; - return _Utils_Tuple2( - model, - $author$project$Cart$removeProduct(id)); - case 'CartItemRemoved': - return _Utils_Tuple2( - _Utils_update( - model, - {pageStatus: $author$project$Cart$Loading}), - $author$project$Cart$fetchCartItems); - case 'FetchCartItems': - return _Utils_Tuple2( - _Utils_update( - model, - {pageStatus: $author$project$Cart$Loading}), - $author$project$Cart$fetchCartItems); - case 'AddToCartPressed': - var id = msg.a; - return _Utils_Tuple2( - model, - $author$project$Cart$addToCart(id)); - default: - return _Utils_Tuple2( - _Utils_update( - model, - {pageStatus: $author$project$Cart$Loading}), - $author$project$Cart$fetchCartItems); - } - }); -var $author$project$Catalog$Loaded = {$: 'Loaded'}; -var $author$project$Catalog$Loading = {$: 'Loading'}; -var $elm$core$Basics$always = F2( - function (a, _v0) { - return a; - }); -var $elm$core$Tuple$mapFirst = F2( - function (func, _v0) { - var x = _v0.a; - var y = _v0.b; - return _Utils_Tuple2( - func(x), - y); - }); -var $elm$core$Tuple$mapSecond = F2( - function (func, _v0) { - var x = _v0.a; - var y = _v0.b; - return _Utils_Tuple2( - x, - func(y)); - }); -var $author$project$Catalog$update = F2( - function (msg, model) { - switch (msg.$) { - case 'ProductsLoaded': - var res = msg.a; - if (res.$ === 'Ok') { - var s = res.a; - return _Utils_Tuple2( - _Utils_update( - model, - {pageStatus: $author$project$Catalog$Loaded, products: s}), - $elm$core$Platform$Cmd$none); - } else { - var e = res.a; - var _v2 = A2($elm$core$Debug$log, 'error', e); - return _Utils_Tuple2( - _Utils_update( - model, - {pageStatus: $author$project$Catalog$NotLoaded}), - $elm$core$Platform$Cmd$none); - } - case 'FetchProducts': - return _Utils_Tuple2( - _Utils_update( - model, - {pageStatus: $author$project$Catalog$Loading}), - $author$project$Catalog$fetchProducts); - case 'ChangePriceLower': - var v = msg.a; - var fs = model.filters; - var nfs = _Utils_update( - fs, - { - price: A2( - $elm$core$Tuple$mapFirst, - $elm$core$Basics$always(v), - fs.price) - }); - return _Utils_Tuple2( - _Utils_update( - model, - {filters: nfs}), - $elm$core$Platform$Cmd$none); - case 'ChangePriceUpper': - var v = msg.a; - var fs = model.filters; - var nfs = _Utils_update( - fs, - { - price: A2( - $elm$core$Tuple$mapSecond, - $elm$core$Basics$always(v), - fs.price) - }); - return _Utils_Tuple2( - _Utils_update( - model, - {filters: nfs}), - $elm$core$Platform$Cmd$none); - case 'ChangeRatingLower': - var v = msg.a; - var fs = model.filters; - var nfs = _Utils_update( - fs, - { - rating: A2( - $elm$core$Tuple$mapFirst, - $elm$core$Basics$always(v), - fs.rating) - }); - return _Utils_Tuple2( - _Utils_update( - model, - {filters: nfs}), - $elm$core$Platform$Cmd$none); - default: - var v = msg.a; - var fs = model.filters; - var nfs = _Utils_update( - fs, - { - rating: A2( - $elm$core$Tuple$mapSecond, - $elm$core$Basics$always(v), - fs.rating) - }); - return _Utils_Tuple2( - _Utils_update( - model, - {filters: nfs}), - $elm$core$Platform$Cmd$none); - } - }); -var $author$project$Checkout$Loading = {$: 'Loading'}; -var $author$project$Checkout$CheckoutSuccessful = function (a) { - return {$: 'CheckoutSuccessful', a: a}; -}; -var $author$project$Checkout$tryCheckout = function (pm) { - return $elm$http$Http$riskyRequest( - { - body: A2($elm$http$Http$stringBody, 'application/json', pm), - expect: $elm$http$Http$expectWhatever($author$project$Checkout$CheckoutSuccessful), - headers: _List_Nil, - method: 'POST', - timeout: $elm$core$Maybe$Nothing, - tracker: $elm$core$Maybe$Nothing, - url: 'http://127.0.0.1:7878/transaction/checkout' - }); -}; -var $author$project$Checkout$update = F2( - function (msg, model) { - switch (msg.$) { - case 'CheckoutPressed': - return _Utils_Tuple2( - model, - $author$project$Checkout$tryCheckout(model.paymentMode)); - case 'CheckoutSuccessful': - return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none); - case 'AmountLoaded': - var res = msg.a; - if (res.$ === 'Ok') { - var v = res.a; - return _Utils_Tuple2( - _Utils_update( - model, - {cartTotal: v}), - $elm$core$Platform$Cmd$none); - } else { - return _Utils_Tuple2( - _Utils_update( - model, - {pageStatus: $author$project$Checkout$NotLoaded}), - $elm$core$Platform$Cmd$none); - } - case 'FetchAmount': - var _v2 = A2($elm$core$Debug$log, 'err', 'fetching checkout amount'); - return _Utils_Tuple2( - _Utils_update( - model, - {pageStatus: $author$project$Checkout$Loading}), - $author$project$Checkout$fetchAmount); - default: - var s = msg.a; - return _Utils_Tuple2( - _Utils_update( - model, - {paymentMode: s}), - $elm$core$Platform$Cmd$none); - } - }); -var $author$project$Login$InvalidLogin = {$: 'InvalidLogin'}; -var $author$project$Login$LoggedIn = {$: 'LoggedIn'}; -var $author$project$Login$LoggingIn = {$: 'LoggingIn'}; -var $author$project$Login$LoginSuccess = function (a) { - return {$: 'LoginSuccess', a: a}; -}; -var $elm$json$Json$Encode$object = function (pairs) { - return _Json_wrap( - A3( - $elm$core$List$foldl, - F2( - function (_v0, obj) { - var k = _v0.a; - var v = _v0.b; - return A3(_Json_addField, k, v, obj); - }), - _Json_emptyObject(_Utils_Tuple0), - pairs)); -}; -var $elm$json$Json$Encode$string = _Json_wrap; -var $author$project$Login$encodeLogin = function (model) { - return $elm$json$Json$Encode$object( - _List_fromArray( - [ - _Utils_Tuple2( - 'username', - $elm$json$Json$Encode$string(model.username)), - _Utils_Tuple2( - 'password', - $elm$json$Json$Encode$string(model.password)) - ])); -}; -var $elm$http$Http$jsonBody = function (value) { - return A2( - _Http_pair, - 'application/json', - A2($elm$json$Json$Encode$encode, 0, value)); -}; -var $author$project$Login$tryLogin = function (model) { - return $elm$http$Http$riskyRequest( - { - body: $elm$http$Http$jsonBody( - $author$project$Login$encodeLogin(model)), - expect: $elm$http$Http$expectWhatever($author$project$Login$LoginSuccess), - headers: _List_Nil, - method: 'POST', - timeout: $elm$core$Maybe$Nothing, - tracker: $elm$core$Maybe$Nothing, - url: 'http://127.0.0.1:7878/user/login' - }); -}; -var $author$project$Login$update = F2( - function (msg, model) { - switch (msg.$) { - case 'PassEntered': - var s = msg.a; - return _Utils_Tuple2( - _Utils_update( - model, - {password: s}), - $elm$core$Platform$Cmd$none); - case 'UserEntered': - var s = msg.a; - return _Utils_Tuple2( - _Utils_update( - model, - {username: s}), - $elm$core$Platform$Cmd$none); - case 'LoginPressed': - return _Utils_Tuple2( - _Utils_update( - model, - {loginStatus: $author$project$Login$LoggingIn}), - $author$project$Login$tryLogin(model)); - case 'LoginSuccess': - var res = msg.a; - if (res.$ === 'Ok') { - var s = res.a; - return _Utils_Tuple2( - _Utils_update( - model, - {loginStatus: $author$project$Login$LoggedIn}), - $elm$core$Platform$Cmd$none); - } else { - var e = res.a; - return _Utils_Tuple2( - _Utils_update( - model, - {loginStatus: $author$project$Login$InvalidLogin}), - $elm$core$Platform$Cmd$none); - } - default: - return _Utils_Tuple2( - _Utils_update( - model, - {loginStatus: $author$project$Login$InvalidLogin}), - $elm$core$Platform$Cmd$none); - } - }); -var $author$project$Product$Loaded = {$: 'Loaded'}; -var $author$project$Product$Loading = {$: 'Loading'}; -var $author$project$Product$SubmitFail = {$: 'SubmitFail'}; -var $author$project$Product$SubmitSuccess = {$: 'SubmitSuccess'}; -var $author$project$Product$Submitting = {$: 'Submitting'}; -var $author$project$Product$AddToCartSuccess = function (a) { - return {$: 'AddToCartSuccess', a: a}; -}; -var $author$project$Product$addToCart = function (model) { - var _v0 = A2( - $elm$core$Debug$log, - 'err', - 'adding to cart: ' + $elm$core$String$fromInt(model.listing.id)); - return $elm$http$Http$riskyRequest( - { - body: A2( - $elm$http$Http$stringBody, - 'applcation/json', - $elm$core$String$fromInt(model.listing.id)), - expect: $elm$http$Http$expectWhatever($author$project$Product$AddToCartSuccess), - headers: _List_Nil, - method: 'POST', - timeout: $elm$core$Maybe$Nothing, - tracker: $elm$core$Maybe$Nothing, - url: 'http://127.0.0.1:7878/cart/add' - }); -}; -var $author$project$Product$AddRatingSuccess = function (a) { - return {$: 'AddRatingSuccess', a: a}; -}; -var $elm$json$Json$Encode$int = _Json_wrap; -var $author$project$Product$encodeRatingForm = function (model) { - return $elm$json$Json$Encode$object( - _List_fromArray( - [ - _Utils_Tuple2( - 'product_id', - $elm$json$Json$Encode$int(model.listing.id)), - _Utils_Tuple2( - 'stars', - $elm$json$Json$Encode$int(model.ratingStars)), - _Utils_Tuple2( - 'comment_text', - $elm$json$Json$Encode$string(model.ratingText)) - ])); -}; -var $author$project$Product$submitRating = function (model) { - var _v0 = A2( - $elm$core$Debug$log, - 'err', - 'submitting rating for' + $elm$core$String$fromInt(model.listing.id)); - return $elm$http$Http$riskyRequest( - { - body: $elm$http$Http$jsonBody( - $author$project$Product$encodeRatingForm(model)), - expect: $elm$http$Http$expectWhatever($author$project$Product$AddRatingSuccess), - headers: _List_Nil, - method: 'POST', - timeout: $elm$core$Maybe$Nothing, - tracker: $elm$core$Maybe$Nothing, - url: 'http://127.0.0.1:7878/rating/add' - }); -}; -var $author$project$Product$update = F2( - function (msg, model) { - switch (msg.$) { - case 'ListingLoaded': - var res = msg.a; - if (res.$ === 'Ok') { - var s = res.a; - return _Utils_Tuple2( - _Utils_update( - model, - {listing: s, pageStatus: $author$project$Product$Loaded}), - $elm$core$Platform$Cmd$none); - } else { - var e = res.a; - var _v2 = A2($elm$core$Debug$log, 'error', e); - return _Utils_Tuple2( - _Utils_update( - model, - {pageStatus: $author$project$Product$NotLoaded}), - $elm$core$Platform$Cmd$none); - } - case 'RatingsLoaded': - var res = msg.a; - if (res.$ === 'Ok') { - var s = res.a; - return _Utils_Tuple2( - _Utils_update( - model, - {pageStatus: $author$project$Product$Loaded, ratings: s}), - $elm$core$Platform$Cmd$none); - } else { - var e = res.a; - var _v4 = A2($elm$core$Debug$log, 'error', e); - return _Utils_Tuple2( - _Utils_update( - model, - {pageStatus: $author$project$Product$NotLoaded}), - $elm$core$Platform$Cmd$none); - } - case 'FetchProduct': - var id = msg.a; - return _Utils_Tuple2( - _Utils_update( - model, - {pageStatus: $author$project$Product$Loading}), - $author$project$Product$fetchListing(id)); - case 'FetchRatings': - var id = msg.a; - return _Utils_Tuple2( - _Utils_update( - model, - {pageStatus: $author$project$Product$Loading}), - $author$project$Product$fetchRatings(id)); - case 'AddRatingStars': - var i = msg.a; - return _Utils_Tuple2( - _Utils_update( - model, - {ratingStars: i}), - $elm$core$Platform$Cmd$none); - case 'AddRatingComment': - var s = msg.a; - return _Utils_Tuple2( - _Utils_update( - model, - {ratingText: s}), - $elm$core$Platform$Cmd$none); - case 'AddRatingPressed': - return _Utils_Tuple2( - _Utils_update( - model, - {addRatingStatus: $author$project$Product$Submitting}), - $author$project$Product$submitRating(model)); - case 'AddRatingSuccess': - var res = msg.a; - if (res.$ === 'Ok') { - return _Utils_Tuple2( - _Utils_update( - model, - {addRatingStatus: $author$project$Product$SubmitSuccess}), - $author$project$Product$fetchRatings(model.listing.id)); - } else { - return _Utils_Tuple2( - _Utils_update( - model, - {addRatingStatus: $author$project$Product$SubmitFail}), - $elm$core$Platform$Cmd$none); - } - case 'AddRatingFail': - return _Utils_Tuple2( - _Utils_update( - model, - {addRatingStatus: $author$project$Product$SubmitFail}), - $elm$core$Platform$Cmd$none); - case 'AddToCartPressed': - return _Utils_Tuple2( - model, - $author$project$Product$addToCart(model)); - default: - return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none); - } - }); -var $author$project$Signup$CreatedSuccessfully = {$: 'CreatedSuccessfully'}; -var $author$project$Signup$CreatingUser = {$: 'CreatingUser'}; -var $author$project$Signup$InvalidEmail = {$: 'InvalidEmail'}; -var $author$project$Signup$InvalidPhone = {$: 'InvalidPhone'}; -var $author$project$Signup$UsernameTaken = {$: 'UsernameTaken'}; -var $elm$core$List$any = F2( - function (isOkay, list) { - any: - while (true) { - if (!list.b) { - return false; - } else { - var x = list.a; - var xs = list.b; - if (isOkay(x)) { - return true; - } else { - var $temp$isOkay = isOkay, - $temp$list = xs; - isOkay = $temp$isOkay; - list = $temp$list; - continue any; - } - } - } - }); -var $elm$core$Basics$composeL = F3( - function (g, f, x) { - return g( - f(x)); - }); -var $elm$core$Basics$not = _Basics_not; -var $elm$core$List$all = F2( - function (isOkay, list) { - return !A2( - $elm$core$List$any, - A2($elm$core$Basics$composeL, $elm$core$Basics$not, isOkay), - list); - }); -var $author$project$Signup$UsernameExists = function (a) { - return {$: 'UsernameExists', a: a}; -}; -var $elm$http$Http$expectString = function (toMsg) { - return A2( - $elm$http$Http$expectStringResponse, - toMsg, - $elm$http$Http$resolve($elm$core$Result$Ok)); -}; -var $elm$http$Http$post = function (r) { - return $elm$http$Http$request( - {body: r.body, expect: r.expect, headers: _List_Nil, method: 'POST', timeout: $elm$core$Maybe$Nothing, tracker: $elm$core$Maybe$Nothing, url: r.url}); -}; -var $author$project$Signup$checkExists = function (model) { - return $elm$http$Http$post( - { - body: A2($elm$http$Http$stringBody, 'application/json', model.username), - expect: $elm$http$Http$expectString($author$project$Signup$UsernameExists), - url: 'http://127.0.0.1:7878/user/existing' - }); -}; -var $author$project$Signup$CreationSuccess = function (a) { - return {$: 'CreationSuccess', a: a}; -}; -var $elm$core$Maybe$withDefault = F2( - function (_default, maybe) { - if (maybe.$ === 'Just') { - var value = maybe.a; - return value; - } else { - return _default; - } - }); -var $author$project$Signup$encodeCreateUser = function (model) { - return $elm$json$Json$Encode$object( - _List_fromArray( - [ - _Utils_Tuple2( - 'username', - $elm$json$Json$Encode$string(model.username)), - _Utils_Tuple2( - 'password', - $elm$json$Json$Encode$string(model.password)), - _Utils_Tuple2( - 'phone_number', - $elm$json$Json$Encode$string(model.phoneNumber)), - _Utils_Tuple2( - 'email_id', - $elm$json$Json$Encode$string(model.emailId)), - _Utils_Tuple2( - 'address', - $elm$json$Json$Encode$string( - A2($elm$core$Maybe$withDefault, '', model.address))) - ])); -}; -var $author$project$Signup$createUser = function (model) { - return $elm$http$Http$riskyRequest( - { - body: $elm$http$Http$jsonBody( - $author$project$Signup$encodeCreateUser(model)), - expect: $elm$http$Http$expectWhatever($author$project$Signup$CreationSuccess), - headers: _List_Nil, - method: 'POST', - timeout: $elm$core$Maybe$Nothing, - tracker: $elm$core$Maybe$Nothing, - url: 'http://127.0.0.1:7878/user/new' - }); -}; -var $elm$core$Basics$neq = _Utils_notEqual; -var $elm$core$String$foldr = _String_foldr; -var $elm$core$String$toList = function (string) { - return A3($elm$core$String$foldr, $elm$core$List$cons, _List_Nil, string); -}; -var $author$project$Signup$update = F2( - function (msg, model) { - switch (msg.$) { - case 'UserEntered': - var s = msg.a; - return _Utils_Tuple2( - _Utils_update( - model, - {username: s}), - $elm$core$Platform$Cmd$none); - case 'PassEntered': - var s = msg.a; - return _Utils_Tuple2( - _Utils_update( - model, - {password: s}), - $elm$core$Platform$Cmd$none); - case 'PhoneEntered': - var s = msg.a; - var status = (($elm$core$String$length(s) !== 10) || A2( - $elm$core$List$all, - A2($elm$core$Basics$composeL, $elm$core$Basics$not, $elm$core$Char$isDigit), - $elm$core$String$toList(s))) ? $author$project$Signup$InvalidPhone : $author$project$Signup$Empty; - return _Utils_Tuple2( - _Utils_update( - model, - {phoneNumber: s, status: status}), - $elm$core$Platform$Cmd$none); - case 'EmailEntered': - var s = msg.a; - var status = (!A2($elm$core$String$contains, '@', s)) ? $author$project$Signup$InvalidEmail : $author$project$Signup$Empty; - return _Utils_Tuple2( - _Utils_update( - model, - {emailId: s, status: status}), - $elm$core$Platform$Cmd$none); - case 'AddressEntered': - var s = msg.a; - return _Utils_Tuple2( - _Utils_update( - model, - { - address: $elm$core$Maybe$Just(s) - }), - $elm$core$Platform$Cmd$none); - case 'CreatePressed': - return _Utils_Tuple2( - _Utils_update( - model, - {status: $author$project$Signup$CreatingUser}), - $author$project$Signup$checkExists(model)); - case 'CreationSuccess': - var res = msg.a; - if (res.$ === 'Ok') { - return _Utils_Tuple2( - _Utils_update( - model, - {status: $author$project$Signup$CreatedSuccessfully}), - $elm$core$Platform$Cmd$none); - } else { - return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none); - } - case 'CreationFail': - return _Utils_Tuple2($author$project$Signup$init, $elm$core$Platform$Cmd$none); - default: - var res = msg.a; - _v2$2: - while (true) { - if (res.$ === 'Ok') { - switch (res.a) { - case 'true': - return _Utils_Tuple2( - _Utils_update( - model, - {status: $author$project$Signup$UsernameTaken}), - $elm$core$Platform$Cmd$none); - case 'false': - var _v3 = A2($elm$core$Debug$log, 'signup', 'Hit create user ...'); - return _Utils_Tuple2( - _Utils_update( - model, - {status: $author$project$Signup$CreatingUser}), - $author$project$Signup$createUser(model)); - default: - break _v2$2; - } - } else { - break _v2$2; - } - } - return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none); - } - }); -var $author$project$Main$update = F2( - function (msg, model) { - switch (msg.$) { - case 'LinkClicked': - var urlRequest = msg.a; - if (urlRequest.$ === 'Internal') { - var url = urlRequest.a; - return _Utils_Tuple2( - model, - A2( - $elm$browser$Browser$Navigation$pushUrl, - model.key, - $elm$url$Url$toString(url))); - } else { - var href = urlRequest.a; - return _Utils_Tuple2( - model, - $elm$browser$Browser$Navigation$load(href)); - } - case 'LogoutPressed': - return _Utils_Tuple2(model, $author$project$Main$tryLogout); - case 'LogoutSuccess': - return _Utils_Tuple2( - _Utils_update( - model, - {loginModel: $author$project$Login$init}), - A2($elm$browser$Browser$Navigation$replaceUrl, model.key, '/login')); - case 'UrlChanged': - var url = msg.a; - var parsedUrl = A2($elm$url$Url$Parser$parse, $author$project$Main$parseRoute, url); - if (parsedUrl.$ === 'Just') { - switch (parsedUrl.a.$) { - case 'CatalogPage': - var _v3 = parsedUrl.a; - return _Utils_Tuple2( - _Utils_update( - model, - {location: $author$project$Main$CatalogPage}), - A2($elm$core$Platform$Cmd$map, $author$project$Main$CatalogMessage, $author$project$Catalog$fetchProducts)); - case 'ProductPage': - var id = parsedUrl.a.a; - var cmds = A2( - $elm$core$List$map, - $elm$core$Platform$Cmd$map($author$project$Main$ProductMessage), - _List_fromArray( - [ - $author$project$Product$fetchListing(id), - $author$project$Product$fetchRatings(id) - ])); - return _Utils_Tuple2( - _Utils_update( - model, - { - location: $author$project$Main$ProductPage(id) - }), - $elm$core$Platform$Cmd$batch(cmds)); - case 'CartPage': - var _v4 = parsedUrl.a; - var cmd = A2($elm$core$Platform$Cmd$map, $author$project$Main$CartMessage, $author$project$Cart$fetchCartItems); - return _Utils_Tuple2( - _Utils_update( - model, - {location: $author$project$Main$CartPage}), - cmd); - case 'CheckoutPage': - var _v5 = parsedUrl.a; - var cmd = A2($elm$core$Platform$Cmd$map, $author$project$Main$CheckoutMessage, $author$project$Checkout$fetchAmount); - var _v6 = A2($elm$core$Debug$log, 'err', 'loading checkout page ...'); - return _Utils_Tuple2( - _Utils_update( - model, - {location: $author$project$Main$CheckoutPage}), - cmd); - default: - var p = parsedUrl.a; - return _Utils_Tuple2( - _Utils_update( - model, - {location: p}), - $elm$core$Platform$Cmd$none); - } - } else { - return _Utils_Tuple2( - _Utils_update( - model, - {location: $author$project$Main$NotFoundPage}), - $elm$core$Platform$Cmd$none); - } - case 'LoginMessage': - var lm = msg.a; - var _v7 = A2($author$project$Login$update, lm, model.loginModel); - var lmn = _v7.a; - var cmd = _v7.b; - var redir = function () { - var _v8 = lmn.loginStatus; - if (_v8.$ === 'LoggedIn') { - return A2($elm$browser$Browser$Navigation$replaceUrl, model.key, '/catalog'); - } else { - return $elm$core$Platform$Cmd$none; - } - }(); - return _Utils_Tuple2( - _Utils_update( - model, - {loginModel: lmn}), - $elm$core$Platform$Cmd$batch( - _List_fromArray( - [ - A2($elm$core$Platform$Cmd$map, $author$project$Main$LoginMessage, cmd), - redir - ]))); - case 'SignupMessage': - var sm = msg.a; - var _v9 = A2($author$project$Signup$update, sm, model.signupModel); - var smn = _v9.a; - var cmd = _v9.b; - var redir = function () { - var _v10 = smn.status; - if (_v10.$ === 'CreatedSuccessfully') { - return A2($elm$browser$Browser$Navigation$replaceUrl, model.key, '/login'); - } else { - return $elm$core$Platform$Cmd$none; - } - }(); - return _Utils_Tuple2( - _Utils_update( - model, - {signupModel: smn}), - $elm$core$Platform$Cmd$batch( - _List_fromArray( - [ - A2($elm$core$Platform$Cmd$map, $author$project$Main$SignupMessage, cmd), - redir - ]))); - case 'CatalogMessage': - var cm = msg.a; - var _v11 = A2($author$project$Catalog$update, cm, model.catalogModel); - var cmn = _v11.a; - var cmd = _v11.b; - return _Utils_Tuple2( - _Utils_update( - model, - {catalogModel: cmn}), - A2($elm$core$Platform$Cmd$map, $author$project$Main$CatalogMessage, cmd)); - case 'CartMessage': - var cm = msg.a; - var _v12 = A2($author$project$Cart$update, cm, model.cartModel); - var cmn = _v12.a; - var cmd = _v12.b; - return _Utils_Tuple2( - _Utils_update( - model, - {cartModel: cmn}), - A2($elm$core$Platform$Cmd$map, $author$project$Main$CartMessage, cmd)); - case 'CheckoutMessage': - var cm = msg.a; - var _v13 = A2($author$project$Checkout$update, cm, model.checkoutModel); - var cmn = _v13.a; - var cmd = _v13.b; - var _v14 = A2($elm$core$Debug$log, 'err', 'received checkout message ...'); - return _Utils_Tuple2( - _Utils_update( - model, - {checkoutModel: cmn}), - A2($elm$core$Platform$Cmd$map, $author$project$Main$CheckoutMessage, cmd)); - default: - var pm = msg.a; - var redir = function () { - if (pm.$ === 'AddToCartSuccess') { - return A2($elm$browser$Browser$Navigation$replaceUrl, model.key, '/cart'); - } else { - return $elm$core$Platform$Cmd$none; - } - }(); - var _v15 = A2($author$project$Product$update, pm, model.productModel); - var pmn = _v15.a; - var cmd = _v15.b; - return _Utils_Tuple2( - _Utils_update( - model, - {productModel: pmn}), - $elm$core$Platform$Cmd$batch( - _List_fromArray( - [ - A2($elm$core$Platform$Cmd$map, $author$project$Main$ProductMessage, cmd), - redir - ]))); - } - }); -var $rtfeldman$elm_css$VirtualDom$Styled$Node = F3( - function (a, b, c) { - return {$: 'Node', a: a, b: b, c: c}; - }); -var $rtfeldman$elm_css$VirtualDom$Styled$node = $rtfeldman$elm_css$VirtualDom$Styled$Node; -var $rtfeldman$elm_css$Html$Styled$node = $rtfeldman$elm_css$VirtualDom$Styled$node; -var $rtfeldman$elm_css$Html$Styled$a = $rtfeldman$elm_css$Html$Styled$node('a'); -var $rtfeldman$elm_css$Html$Styled$div = $rtfeldman$elm_css$Html$Styled$node('div'); -var $rtfeldman$elm_css$VirtualDom$Styled$Attribute = F3( - function (a, b, c) { - return {$: 'Attribute', a: a, b: b, c: c}; - }); -var $elm$virtual_dom$VirtualDom$property = F2( - function (key, value) { - return A2( - _VirtualDom_property, - _VirtualDom_noInnerHtmlOrFormAction(key), - _VirtualDom_noJavaScriptOrHtmlUri(value)); - }); -var $rtfeldman$elm_css$VirtualDom$Styled$property = F2( - function (key, value) { - return A3( - $rtfeldman$elm_css$VirtualDom$Styled$Attribute, - A2($elm$virtual_dom$VirtualDom$property, key, value), - _List_Nil, - ''); - }); -var $rtfeldman$elm_css$Html$Styled$Attributes$stringProperty = F2( - function (key, string) { - return A2( - $rtfeldman$elm_css$VirtualDom$Styled$property, - key, - $elm$json$Json$Encode$string(string)); - }); -var $rtfeldman$elm_css$Html$Styled$Attributes$href = function (url) { - return A2($rtfeldman$elm_css$Html$Styled$Attributes$stringProperty, 'href', url); -}; -var $rtfeldman$elm_css$Html$Styled$li = $rtfeldman$elm_css$Html$Styled$node('li'); -var $rtfeldman$elm_css$VirtualDom$Styled$KeyedNode = F3( - function (a, b, c) { - return {$: 'KeyedNode', a: a, b: b, c: c}; - }); -var $rtfeldman$elm_css$VirtualDom$Styled$KeyedNodeNS = F4( - function (a, b, c, d) { - return {$: 'KeyedNodeNS', a: a, b: b, c: c, d: d}; - }); -var $rtfeldman$elm_css$VirtualDom$Styled$NodeNS = F4( - function (a, b, c, d) { - return {$: 'NodeNS', a: a, b: b, c: c, d: d}; - }); -var $rtfeldman$elm_css$VirtualDom$Styled$Unstyled = function (a) { - return {$: 'Unstyled', a: a}; -}; -var $elm$virtual_dom$VirtualDom$map = _VirtualDom_map; -var $elm$virtual_dom$VirtualDom$mapAttribute = _VirtualDom_mapAttribute; -var $rtfeldman$elm_css$VirtualDom$Styled$mapAttribute = F2( - function (transform, _v0) { - var prop = _v0.a; - var styles = _v0.b; - var classname = _v0.c; - return A3( - $rtfeldman$elm_css$VirtualDom$Styled$Attribute, - A2($elm$virtual_dom$VirtualDom$mapAttribute, transform, prop), - styles, - classname); - }); -var $rtfeldman$elm_css$VirtualDom$Styled$map = F2( - function (transform, vdomNode) { - switch (vdomNode.$) { - case 'Node': - var elemType = vdomNode.a; - var properties = vdomNode.b; - var children = vdomNode.c; - return A3( - $rtfeldman$elm_css$VirtualDom$Styled$Node, - elemType, - A2( - $elm$core$List$map, - $rtfeldman$elm_css$VirtualDom$Styled$mapAttribute(transform), - properties), - A2( - $elm$core$List$map, - $rtfeldman$elm_css$VirtualDom$Styled$map(transform), - children)); - case 'NodeNS': - var ns = vdomNode.a; - var elemType = vdomNode.b; - var properties = vdomNode.c; - var children = vdomNode.d; - return A4( - $rtfeldman$elm_css$VirtualDom$Styled$NodeNS, - ns, - elemType, - A2( - $elm$core$List$map, - $rtfeldman$elm_css$VirtualDom$Styled$mapAttribute(transform), - properties), - A2( - $elm$core$List$map, - $rtfeldman$elm_css$VirtualDom$Styled$map(transform), - children)); - case 'KeyedNode': - var elemType = vdomNode.a; - var properties = vdomNode.b; - var children = vdomNode.c; - return A3( - $rtfeldman$elm_css$VirtualDom$Styled$KeyedNode, - elemType, - A2( - $elm$core$List$map, - $rtfeldman$elm_css$VirtualDom$Styled$mapAttribute(transform), - properties), - A2( - $elm$core$List$map, - function (_v1) { - var key = _v1.a; - var child = _v1.b; - return _Utils_Tuple2( - key, - A2($rtfeldman$elm_css$VirtualDom$Styled$map, transform, child)); - }, - children)); - case 'KeyedNodeNS': - var ns = vdomNode.a; - var elemType = vdomNode.b; - var properties = vdomNode.c; - var children = vdomNode.d; - return A4( - $rtfeldman$elm_css$VirtualDom$Styled$KeyedNodeNS, - ns, - elemType, - A2( - $elm$core$List$map, - $rtfeldman$elm_css$VirtualDom$Styled$mapAttribute(transform), - properties), - A2( - $elm$core$List$map, - function (_v2) { - var key = _v2.a; - var child = _v2.b; - return _Utils_Tuple2( - key, - A2($rtfeldman$elm_css$VirtualDom$Styled$map, transform, child)); - }, - children)); - default: - var vdom = vdomNode.a; - return $rtfeldman$elm_css$VirtualDom$Styled$Unstyled( - A2($elm$virtual_dom$VirtualDom$map, transform, vdom)); - } - }); -var $rtfeldman$elm_css$Html$Styled$map = $rtfeldman$elm_css$VirtualDom$Styled$map; -var $elm$core$List$singleton = function (value) { - return _List_fromArray( - [value]); -}; -var $elm$core$List$isEmpty = function (xs) { - if (!xs.b) { - return true; - } else { - return false; - } -}; -var $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles = F2( - function (_v0, styles) { - var newStyles = _v0.b; - var classname = _v0.c; - return $elm$core$List$isEmpty(newStyles) ? styles : A3($elm$core$Dict$insert, classname, newStyles, styles); - }); -var $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute = function (_v0) { - var val = _v0.a; - return val; -}; -var $elm$virtual_dom$VirtualDom$keyedNode = function (tag) { - return _VirtualDom_keyedNode( - _VirtualDom_noScript(tag)); -}; -var $elm$virtual_dom$VirtualDom$keyedNodeNS = F2( - function (namespace, tag) { - return A2( - _VirtualDom_keyedNodeNS, - namespace, - _VirtualDom_noScript(tag)); - }); -var $elm$virtual_dom$VirtualDom$node = function (tag) { - return _VirtualDom_node( - _VirtualDom_noScript(tag)); -}; -var $elm$virtual_dom$VirtualDom$nodeNS = function (tag) { - return _VirtualDom_nodeNS( - _VirtualDom_noScript(tag)); -}; -var $rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml = F2( - function (_v6, _v7) { - var key = _v6.a; - var html = _v6.b; - var pairs = _v7.a; - var styles = _v7.b; - switch (html.$) { - case 'Unstyled': - var vdom = html.a; - return _Utils_Tuple2( - A2( - $elm$core$List$cons, - _Utils_Tuple2(key, vdom), - pairs), - styles); - case 'Node': - var elemType = html.a; - var properties = html.b; - var children = html.c; - var combinedStyles = A3($elm$core$List$foldl, $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties); - var _v9 = A3( - $elm$core$List$foldl, - $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml, - _Utils_Tuple2(_List_Nil, combinedStyles), - children); - var childNodes = _v9.a; - var finalStyles = _v9.b; - var vdom = A3( - $elm$virtual_dom$VirtualDom$node, - elemType, - A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties), - $elm$core$List$reverse(childNodes)); - return _Utils_Tuple2( - A2( - $elm$core$List$cons, - _Utils_Tuple2(key, vdom), - pairs), - finalStyles); - case 'NodeNS': - var ns = html.a; - var elemType = html.b; - var properties = html.c; - var children = html.d; - var combinedStyles = A3($elm$core$List$foldl, $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties); - var _v10 = A3( - $elm$core$List$foldl, - $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml, - _Utils_Tuple2(_List_Nil, combinedStyles), - children); - var childNodes = _v10.a; - var finalStyles = _v10.b; - var vdom = A4( - $elm$virtual_dom$VirtualDom$nodeNS, - ns, - elemType, - A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties), - $elm$core$List$reverse(childNodes)); - return _Utils_Tuple2( - A2( - $elm$core$List$cons, - _Utils_Tuple2(key, vdom), - pairs), - finalStyles); - case 'KeyedNode': - var elemType = html.a; - var properties = html.b; - var children = html.c; - var combinedStyles = A3($elm$core$List$foldl, $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties); - var _v11 = A3( - $elm$core$List$foldl, - $rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml, - _Utils_Tuple2(_List_Nil, combinedStyles), - children); - var childNodes = _v11.a; - var finalStyles = _v11.b; - var vdom = A3( - $elm$virtual_dom$VirtualDom$keyedNode, - elemType, - A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties), - $elm$core$List$reverse(childNodes)); - return _Utils_Tuple2( - A2( - $elm$core$List$cons, - _Utils_Tuple2(key, vdom), - pairs), - finalStyles); - default: - var ns = html.a; - var elemType = html.b; - var properties = html.c; - var children = html.d; - var combinedStyles = A3($elm$core$List$foldl, $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties); - var _v12 = A3( - $elm$core$List$foldl, - $rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml, - _Utils_Tuple2(_List_Nil, combinedStyles), - children); - var childNodes = _v12.a; - var finalStyles = _v12.b; - var vdom = A4( - $elm$virtual_dom$VirtualDom$keyedNodeNS, - ns, - elemType, - A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties), - $elm$core$List$reverse(childNodes)); - return _Utils_Tuple2( - A2( - $elm$core$List$cons, - _Utils_Tuple2(key, vdom), - pairs), - finalStyles); - } - }); -var $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml = F2( - function (html, _v0) { - var nodes = _v0.a; - var styles = _v0.b; - switch (html.$) { - case 'Unstyled': - var vdomNode = html.a; - return _Utils_Tuple2( - A2($elm$core$List$cons, vdomNode, nodes), - styles); - case 'Node': - var elemType = html.a; - var properties = html.b; - var children = html.c; - var combinedStyles = A3($elm$core$List$foldl, $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties); - var _v2 = A3( - $elm$core$List$foldl, - $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml, - _Utils_Tuple2(_List_Nil, combinedStyles), - children); - var childNodes = _v2.a; - var finalStyles = _v2.b; - var vdomNode = A3( - $elm$virtual_dom$VirtualDom$node, - elemType, - A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties), - $elm$core$List$reverse(childNodes)); - return _Utils_Tuple2( - A2($elm$core$List$cons, vdomNode, nodes), - finalStyles); - case 'NodeNS': - var ns = html.a; - var elemType = html.b; - var properties = html.c; - var children = html.d; - var combinedStyles = A3($elm$core$List$foldl, $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties); - var _v3 = A3( - $elm$core$List$foldl, - $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml, - _Utils_Tuple2(_List_Nil, combinedStyles), - children); - var childNodes = _v3.a; - var finalStyles = _v3.b; - var vdomNode = A4( - $elm$virtual_dom$VirtualDom$nodeNS, - ns, - elemType, - A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties), - $elm$core$List$reverse(childNodes)); - return _Utils_Tuple2( - A2($elm$core$List$cons, vdomNode, nodes), - finalStyles); - case 'KeyedNode': - var elemType = html.a; - var properties = html.b; - var children = html.c; - var combinedStyles = A3($elm$core$List$foldl, $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties); - var _v4 = A3( - $elm$core$List$foldl, - $rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml, - _Utils_Tuple2(_List_Nil, combinedStyles), - children); - var childNodes = _v4.a; - var finalStyles = _v4.b; - var vdomNode = A3( - $elm$virtual_dom$VirtualDom$keyedNode, - elemType, - A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties), - $elm$core$List$reverse(childNodes)); - return _Utils_Tuple2( - A2($elm$core$List$cons, vdomNode, nodes), - finalStyles); - default: - var ns = html.a; - var elemType = html.b; - var properties = html.c; - var children = html.d; - var combinedStyles = A3($elm$core$List$foldl, $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyles, styles, properties); - var _v5 = A3( - $elm$core$List$foldl, - $rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml, - _Utils_Tuple2(_List_Nil, combinedStyles), - children); - var childNodes = _v5.a; - var finalStyles = _v5.b; - var vdomNode = A4( - $elm$virtual_dom$VirtualDom$keyedNodeNS, - ns, - elemType, - A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties), - $elm$core$List$reverse(childNodes)); - return _Utils_Tuple2( - A2($elm$core$List$cons, vdomNode, nodes), - finalStyles); - } - }); -var $elm$core$Dict$singleton = F2( - function (key, value) { - return A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, key, value, $elm$core$Dict$RBEmpty_elm_builtin, $elm$core$Dict$RBEmpty_elm_builtin); - }); -var $rtfeldman$elm_css$VirtualDom$Styled$stylesFromPropertiesHelp = F2( - function (candidate, properties) { - stylesFromPropertiesHelp: - while (true) { - if (!properties.b) { - return candidate; - } else { - var _v1 = properties.a; - var styles = _v1.b; - var classname = _v1.c; - var rest = properties.b; - if ($elm$core$String$isEmpty(classname)) { - var $temp$candidate = candidate, - $temp$properties = rest; - candidate = $temp$candidate; - properties = $temp$properties; - continue stylesFromPropertiesHelp; - } else { - var $temp$candidate = $elm$core$Maybe$Just( - _Utils_Tuple2(classname, styles)), - $temp$properties = rest; - candidate = $temp$candidate; - properties = $temp$properties; - continue stylesFromPropertiesHelp; - } - } - } - }); -var $rtfeldman$elm_css$VirtualDom$Styled$stylesFromProperties = function (properties) { - var _v0 = A2($rtfeldman$elm_css$VirtualDom$Styled$stylesFromPropertiesHelp, $elm$core$Maybe$Nothing, properties); - if (_v0.$ === 'Nothing') { - return $elm$core$Dict$empty; - } else { - var _v1 = _v0.a; - var classname = _v1.a; - var styles = _v1.b; - return A2($elm$core$Dict$singleton, classname, styles); - } -}; -var $elm$virtual_dom$VirtualDom$text = _VirtualDom_text; -var $rtfeldman$elm_css$Css$Structure$compactHelp = F2( - function (declaration, _v0) { - var keyframesByName = _v0.a; - var declarations = _v0.b; - switch (declaration.$) { - case 'StyleBlockDeclaration': - var _v2 = declaration.a; - var properties = _v2.c; - return $elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( - keyframesByName, - A2($elm$core$List$cons, declaration, declarations)); - case 'MediaRule': - var styleBlocks = declaration.b; - return A2( - $elm$core$List$all, - function (_v3) { - var properties = _v3.c; - return $elm$core$List$isEmpty(properties); - }, - styleBlocks) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( - keyframesByName, - A2($elm$core$List$cons, declaration, declarations)); - case 'SupportsRule': - var otherDeclarations = declaration.b; - return $elm$core$List$isEmpty(otherDeclarations) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( - keyframesByName, - A2($elm$core$List$cons, declaration, declarations)); - case 'DocumentRule': - return _Utils_Tuple2( - keyframesByName, - A2($elm$core$List$cons, declaration, declarations)); - case 'PageRule': - var properties = declaration.b; - return $elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( - keyframesByName, - A2($elm$core$List$cons, declaration, declarations)); - case 'FontFace': - var properties = declaration.a; - return $elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( - keyframesByName, - A2($elm$core$List$cons, declaration, declarations)); - case 'Keyframes': - var record = declaration.a; - return $elm$core$String$isEmpty(record.declaration) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( - A3($elm$core$Dict$insert, record.name, record.declaration, keyframesByName), - declarations); - case 'Viewport': - var properties = declaration.a; - return $elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( - keyframesByName, - A2($elm$core$List$cons, declaration, declarations)); - case 'CounterStyle': - var properties = declaration.a; - return $elm$core$List$isEmpty(properties) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( - keyframesByName, - A2($elm$core$List$cons, declaration, declarations)); - default: - var tuples = declaration.a; - return A2( - $elm$core$List$all, - function (_v4) { - var properties = _v4.b; - return $elm$core$List$isEmpty(properties); - }, - tuples) ? _Utils_Tuple2(keyframesByName, declarations) : _Utils_Tuple2( - keyframesByName, - A2($elm$core$List$cons, declaration, declarations)); - } - }); -var $rtfeldman$elm_css$Css$Structure$Keyframes = function (a) { - return {$: 'Keyframes', a: a}; -}; -var $rtfeldman$elm_css$Css$Structure$withKeyframeDeclarations = F2( - function (keyframesByName, compactedDeclarations) { - return A2( - $elm$core$List$append, - A2( - $elm$core$List$map, - function (_v0) { - var name = _v0.a; - var decl = _v0.b; - return $rtfeldman$elm_css$Css$Structure$Keyframes( - {declaration: decl, name: name}); - }, - $elm$core$Dict$toList(keyframesByName)), - compactedDeclarations); - }); -var $rtfeldman$elm_css$Css$Structure$compactStylesheet = function (_v0) { - var charset = _v0.charset; - var imports = _v0.imports; - var namespaces = _v0.namespaces; - var declarations = _v0.declarations; - var _v1 = A3( - $elm$core$List$foldr, - $rtfeldman$elm_css$Css$Structure$compactHelp, - _Utils_Tuple2($elm$core$Dict$empty, _List_Nil), - declarations); - var keyframesByName = _v1.a; - var compactedDeclarations = _v1.b; - var finalDeclarations = A2($rtfeldman$elm_css$Css$Structure$withKeyframeDeclarations, keyframesByName, compactedDeclarations); - return {charset: charset, declarations: finalDeclarations, imports: imports, namespaces: namespaces}; -}; -var $elm$core$Maybe$map = F2( - function (f, maybe) { - if (maybe.$ === 'Just') { - var value = maybe.a; - return $elm$core$Maybe$Just( - f(value)); - } else { - return $elm$core$Maybe$Nothing; - } - }); -var $rtfeldman$elm_css$Css$Structure$Output$charsetToString = function (charset) { - return A2( - $elm$core$Maybe$withDefault, - '', - A2( - $elm$core$Maybe$map, - function (str) { - return '@charset \"' + (str + '\"'); - }, - charset)); -}; -var $elm$core$List$filter = F2( - function (isGood, list) { - return A3( - $elm$core$List$foldr, - F2( - function (x, xs) { - return isGood(x) ? A2($elm$core$List$cons, x, xs) : xs; - }), - _List_Nil, - list); - }); -var $rtfeldman$elm_css$Css$Structure$Output$mediaExpressionToString = function (expression) { - return '(' + (expression.feature + (A2( - $elm$core$Maybe$withDefault, - '', - A2( - $elm$core$Maybe$map, - $elm$core$Basics$append(': '), - expression.value)) + ')')); -}; -var $rtfeldman$elm_css$Css$Structure$Output$mediaTypeToString = function (mediaType) { - switch (mediaType.$) { - case 'Print': - return 'print'; - case 'Screen': - return 'screen'; - default: - return 'speech'; - } -}; -var $rtfeldman$elm_css$Css$Structure$Output$mediaQueryToString = function (mediaQuery) { - var prefixWith = F3( - function (str, mediaType, expressions) { - return str + (' ' + A2( - $elm$core$String$join, - ' and ', - A2( - $elm$core$List$cons, - $rtfeldman$elm_css$Css$Structure$Output$mediaTypeToString(mediaType), - A2($elm$core$List$map, $rtfeldman$elm_css$Css$Structure$Output$mediaExpressionToString, expressions)))); - }); - switch (mediaQuery.$) { - case 'AllQuery': - var expressions = mediaQuery.a; - return A2( - $elm$core$String$join, - ' and ', - A2($elm$core$List$map, $rtfeldman$elm_css$Css$Structure$Output$mediaExpressionToString, expressions)); - case 'OnlyQuery': - var mediaType = mediaQuery.a; - var expressions = mediaQuery.b; - return A3(prefixWith, 'only', mediaType, expressions); - case 'NotQuery': - var mediaType = mediaQuery.a; - var expressions = mediaQuery.b; - return A3(prefixWith, 'not', mediaType, expressions); - default: - var str = mediaQuery.a; - return str; - } -}; -var $rtfeldman$elm_css$Css$Structure$Output$importMediaQueryToString = F2( - function (name, mediaQuery) { - return '@import \"' + (name + ($rtfeldman$elm_css$Css$Structure$Output$mediaQueryToString(mediaQuery) + '\"')); - }); -var $rtfeldman$elm_css$Css$Structure$Output$importToString = function (_v0) { - var name = _v0.a; - var mediaQueries = _v0.b; - return A2( - $elm$core$String$join, - '\n', - A2( - $elm$core$List$map, - $rtfeldman$elm_css$Css$Structure$Output$importMediaQueryToString(name), - mediaQueries)); -}; -var $rtfeldman$elm_css$Css$Structure$Output$namespaceToString = function (_v0) { - var prefix = _v0.a; - var str = _v0.b; - return '@namespace ' + (prefix + ('\"' + (str + '\"'))); -}; -var $rtfeldman$elm_css$Css$Structure$Output$spaceIndent = ' '; -var $rtfeldman$elm_css$Css$Structure$Output$indent = function (str) { - return _Utils_ap($rtfeldman$elm_css$Css$Structure$Output$spaceIndent, str); -}; -var $rtfeldman$elm_css$Css$Structure$Output$noIndent = ''; -var $rtfeldman$elm_css$Css$Structure$Output$emitProperty = function (str) { - return str + ';'; -}; -var $rtfeldman$elm_css$Css$Structure$Output$emitProperties = function (properties) { - return A2( - $elm$core$String$join, - '\n', - A2( - $elm$core$List$map, - A2($elm$core$Basics$composeL, $rtfeldman$elm_css$Css$Structure$Output$indent, $rtfeldman$elm_css$Css$Structure$Output$emitProperty), - properties)); -}; -var $elm$core$String$append = _String_append; -var $rtfeldman$elm_css$Css$Structure$Output$pseudoElementToString = function (_v0) { - var str = _v0.a; - return '::' + str; -}; -var $rtfeldman$elm_css$Css$Structure$Output$combinatorToString = function (combinator) { - switch (combinator.$) { - case 'AdjacentSibling': - return '+'; - case 'GeneralSibling': - return '~'; - case 'Child': - return '>'; - default: - return ''; - } -}; -var $rtfeldman$elm_css$Css$Structure$Output$repeatableSimpleSelectorToString = function (repeatableSimpleSelector) { - switch (repeatableSimpleSelector.$) { - case 'ClassSelector': - var str = repeatableSimpleSelector.a; - return '.' + str; - case 'IdSelector': - var str = repeatableSimpleSelector.a; - return '#' + str; - case 'PseudoClassSelector': - var str = repeatableSimpleSelector.a; - return ':' + str; - default: - var str = repeatableSimpleSelector.a; - return '[' + (str + ']'); - } -}; -var $rtfeldman$elm_css$Css$Structure$Output$simpleSelectorSequenceToString = function (simpleSelectorSequence) { - switch (simpleSelectorSequence.$) { - case 'TypeSelectorSequence': - var str = simpleSelectorSequence.a.a; - var repeatableSimpleSelectors = simpleSelectorSequence.b; - return A2( - $elm$core$String$join, - '', - A2( - $elm$core$List$cons, - str, - A2($elm$core$List$map, $rtfeldman$elm_css$Css$Structure$Output$repeatableSimpleSelectorToString, repeatableSimpleSelectors))); - case 'UniversalSelectorSequence': - var repeatableSimpleSelectors = simpleSelectorSequence.a; - return $elm$core$List$isEmpty(repeatableSimpleSelectors) ? '*' : A2( - $elm$core$String$join, - '', - A2($elm$core$List$map, $rtfeldman$elm_css$Css$Structure$Output$repeatableSimpleSelectorToString, repeatableSimpleSelectors)); - default: - var str = simpleSelectorSequence.a; - var repeatableSimpleSelectors = simpleSelectorSequence.b; - return A2( - $elm$core$String$join, - '', - A2( - $elm$core$List$cons, - str, - A2($elm$core$List$map, $rtfeldman$elm_css$Css$Structure$Output$repeatableSimpleSelectorToString, repeatableSimpleSelectors))); - } -}; -var $rtfeldman$elm_css$Css$Structure$Output$selectorChainToString = function (_v0) { - var combinator = _v0.a; - var sequence = _v0.b; - return A2( - $elm$core$String$join, - ' ', - _List_fromArray( - [ - $rtfeldman$elm_css$Css$Structure$Output$combinatorToString(combinator), - $rtfeldman$elm_css$Css$Structure$Output$simpleSelectorSequenceToString(sequence) - ])); -}; -var $rtfeldman$elm_css$Css$Structure$Output$selectorToString = function (_v0) { - var simpleSelectorSequence = _v0.a; - var chain = _v0.b; - var pseudoElement = _v0.c; - var segments = A2( - $elm$core$List$cons, - $rtfeldman$elm_css$Css$Structure$Output$simpleSelectorSequenceToString(simpleSelectorSequence), - A2($elm$core$List$map, $rtfeldman$elm_css$Css$Structure$Output$selectorChainToString, chain)); - var pseudoElementsString = A2( - $elm$core$String$join, - '', - _List_fromArray( - [ - A2( - $elm$core$Maybe$withDefault, - '', - A2($elm$core$Maybe$map, $rtfeldman$elm_css$Css$Structure$Output$pseudoElementToString, pseudoElement)) - ])); - return A2( - $elm$core$String$append, - A2( - $elm$core$String$join, - ' ', - A2( - $elm$core$List$filter, - A2($elm$core$Basics$composeL, $elm$core$Basics$not, $elm$core$String$isEmpty), - segments)), - pseudoElementsString); -}; -var $rtfeldman$elm_css$Css$Structure$Output$prettyPrintStyleBlock = F2( - function (indentLevel, _v0) { - var firstSelector = _v0.a; - var otherSelectors = _v0.b; - var properties = _v0.c; - var selectorStr = A2( - $elm$core$String$join, - ', ', - A2( - $elm$core$List$map, - $rtfeldman$elm_css$Css$Structure$Output$selectorToString, - A2($elm$core$List$cons, firstSelector, otherSelectors))); - return A2( - $elm$core$String$join, - '', - _List_fromArray( - [ - selectorStr, - ' {\n', - indentLevel, - $rtfeldman$elm_css$Css$Structure$Output$emitProperties(properties), - '\n', - indentLevel, - '}' - ])); - }); -var $rtfeldman$elm_css$Css$Structure$Output$prettyPrintDeclaration = function (decl) { - switch (decl.$) { - case 'StyleBlockDeclaration': - var styleBlock = decl.a; - return A2($rtfeldman$elm_css$Css$Structure$Output$prettyPrintStyleBlock, $rtfeldman$elm_css$Css$Structure$Output$noIndent, styleBlock); - case 'MediaRule': - var mediaQueries = decl.a; - var styleBlocks = decl.b; - var query = A2( - $elm$core$String$join, - ',\n', - A2($elm$core$List$map, $rtfeldman$elm_css$Css$Structure$Output$mediaQueryToString, mediaQueries)); - var blocks = A2( - $elm$core$String$join, - '\n\n', - A2( - $elm$core$List$map, - A2( - $elm$core$Basics$composeL, - $rtfeldman$elm_css$Css$Structure$Output$indent, - $rtfeldman$elm_css$Css$Structure$Output$prettyPrintStyleBlock($rtfeldman$elm_css$Css$Structure$Output$spaceIndent)), - styleBlocks)); - return '@media ' + (query + (' {\n' + (blocks + '\n}'))); - case 'SupportsRule': - return 'TODO'; - case 'DocumentRule': - return 'TODO'; - case 'PageRule': - return 'TODO'; - case 'FontFace': - return 'TODO'; - case 'Keyframes': - var name = decl.a.name; - var declaration = decl.a.declaration; - return '@keyframes ' + (name + (' {\n' + (declaration + '\n}'))); - case 'Viewport': - return 'TODO'; - case 'CounterStyle': - return 'TODO'; - default: - return 'TODO'; - } -}; -var $rtfeldman$elm_css$Css$Structure$Output$prettyPrint = function (_v0) { - var charset = _v0.charset; - var imports = _v0.imports; - var namespaces = _v0.namespaces; - var declarations = _v0.declarations; - return A2( - $elm$core$String$join, - '\n\n', - A2( - $elm$core$List$filter, - A2($elm$core$Basics$composeL, $elm$core$Basics$not, $elm$core$String$isEmpty), - _List_fromArray( - [ - $rtfeldman$elm_css$Css$Structure$Output$charsetToString(charset), - A2( - $elm$core$String$join, - '\n', - A2($elm$core$List$map, $rtfeldman$elm_css$Css$Structure$Output$importToString, imports)), - A2( - $elm$core$String$join, - '\n', - A2($elm$core$List$map, $rtfeldman$elm_css$Css$Structure$Output$namespaceToString, namespaces)), - A2( - $elm$core$String$join, - '\n\n', - A2($elm$core$List$map, $rtfeldman$elm_css$Css$Structure$Output$prettyPrintDeclaration, declarations)) - ]))); -}; -var $rtfeldman$elm_css$Css$Structure$CounterStyle = function (a) { - return {$: 'CounterStyle', a: a}; -}; -var $rtfeldman$elm_css$Css$Structure$FontFace = function (a) { - return {$: 'FontFace', a: a}; -}; -var $rtfeldman$elm_css$Css$Structure$PageRule = F2( - function (a, b) { - return {$: 'PageRule', a: a, b: b}; - }); -var $rtfeldman$elm_css$Css$Structure$Selector = F3( - function (a, b, c) { - return {$: 'Selector', a: a, b: b, c: c}; - }); -var $rtfeldman$elm_css$Css$Structure$StyleBlock = F3( - function (a, b, c) { - return {$: 'StyleBlock', a: a, b: b, c: c}; - }); -var $rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration = function (a) { - return {$: 'StyleBlockDeclaration', a: a}; -}; -var $rtfeldman$elm_css$Css$Structure$SupportsRule = F2( - function (a, b) { - return {$: 'SupportsRule', a: a, b: b}; - }); -var $rtfeldman$elm_css$Css$Structure$Viewport = function (a) { - return {$: 'Viewport', a: a}; -}; -var $rtfeldman$elm_css$Css$Structure$MediaRule = F2( - function (a, b) { - return {$: 'MediaRule', a: a, b: b}; - }); -var $rtfeldman$elm_css$Css$Structure$mapLast = F2( - function (update, list) { - if (!list.b) { - return list; - } else { - if (!list.b.b) { - var only = list.a; - return _List_fromArray( - [ - update(only) - ]); - } else { - var first = list.a; - var rest = list.b; - return A2( - $elm$core$List$cons, - first, - A2($rtfeldman$elm_css$Css$Structure$mapLast, update, rest)); - } - } - }); -var $rtfeldman$elm_css$Css$Structure$withPropertyAppended = F2( - function (property, _v0) { - var firstSelector = _v0.a; - var otherSelectors = _v0.b; - var properties = _v0.c; - return A3( - $rtfeldman$elm_css$Css$Structure$StyleBlock, - firstSelector, - otherSelectors, - _Utils_ap( - properties, - _List_fromArray( - [property]))); - }); -var $rtfeldman$elm_css$Css$Structure$appendProperty = F2( - function (property, declarations) { - if (!declarations.b) { - return declarations; - } else { - if (!declarations.b.b) { - switch (declarations.a.$) { - case 'StyleBlockDeclaration': - var styleBlock = declarations.a.a; - return _List_fromArray( - [ - $rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration( - A2($rtfeldman$elm_css$Css$Structure$withPropertyAppended, property, styleBlock)) - ]); - case 'MediaRule': - var _v1 = declarations.a; - var mediaQueries = _v1.a; - var styleBlocks = _v1.b; - return _List_fromArray( - [ - A2( - $rtfeldman$elm_css$Css$Structure$MediaRule, - mediaQueries, - A2( - $rtfeldman$elm_css$Css$Structure$mapLast, - $rtfeldman$elm_css$Css$Structure$withPropertyAppended(property), - styleBlocks)) - ]); - default: - return declarations; - } - } else { - var first = declarations.a; - var rest = declarations.b; - return A2( - $elm$core$List$cons, - first, - A2($rtfeldman$elm_css$Css$Structure$appendProperty, property, rest)); - } - } - }); -var $rtfeldman$elm_css$Css$Structure$appendToLastSelector = F2( - function (f, styleBlock) { - if (!styleBlock.b.b) { - var only = styleBlock.a; - var properties = styleBlock.c; - return _List_fromArray( - [ - A3($rtfeldman$elm_css$Css$Structure$StyleBlock, only, _List_Nil, properties), - A3( - $rtfeldman$elm_css$Css$Structure$StyleBlock, - f(only), - _List_Nil, - _List_Nil) - ]); - } else { - var first = styleBlock.a; - var rest = styleBlock.b; - var properties = styleBlock.c; - var newRest = A2($elm$core$List$map, f, rest); - var newFirst = f(first); - return _List_fromArray( - [ - A3($rtfeldman$elm_css$Css$Structure$StyleBlock, first, rest, properties), - A3($rtfeldman$elm_css$Css$Structure$StyleBlock, newFirst, newRest, _List_Nil) - ]); - } - }); -var $rtfeldman$elm_css$Css$Structure$applyPseudoElement = F2( - function (pseudo, _v0) { - var sequence = _v0.a; - var selectors = _v0.b; - return A3( - $rtfeldman$elm_css$Css$Structure$Selector, - sequence, - selectors, - $elm$core$Maybe$Just(pseudo)); - }); -var $rtfeldman$elm_css$Css$Structure$appendPseudoElementToLastSelector = F2( - function (pseudo, styleBlock) { - return A2( - $rtfeldman$elm_css$Css$Structure$appendToLastSelector, - $rtfeldman$elm_css$Css$Structure$applyPseudoElement(pseudo), - styleBlock); - }); -var $rtfeldman$elm_css$Css$Structure$CustomSelector = F2( - function (a, b) { - return {$: 'CustomSelector', a: a, b: b}; - }); -var $rtfeldman$elm_css$Css$Structure$TypeSelectorSequence = F2( - function (a, b) { - return {$: 'TypeSelectorSequence', a: a, b: b}; - }); -var $rtfeldman$elm_css$Css$Structure$UniversalSelectorSequence = function (a) { - return {$: 'UniversalSelectorSequence', a: a}; -}; -var $rtfeldman$elm_css$Css$Structure$appendRepeatable = F2( - function (selector, sequence) { - switch (sequence.$) { - case 'TypeSelectorSequence': - var typeSelector = sequence.a; - var list = sequence.b; - return A2( - $rtfeldman$elm_css$Css$Structure$TypeSelectorSequence, - typeSelector, - _Utils_ap( - list, - _List_fromArray( - [selector]))); - case 'UniversalSelectorSequence': - var list = sequence.a; - return $rtfeldman$elm_css$Css$Structure$UniversalSelectorSequence( - _Utils_ap( - list, - _List_fromArray( - [selector]))); - default: - var str = sequence.a; - var list = sequence.b; - return A2( - $rtfeldman$elm_css$Css$Structure$CustomSelector, - str, - _Utils_ap( - list, - _List_fromArray( - [selector]))); - } - }); -var $rtfeldman$elm_css$Css$Structure$appendRepeatableWithCombinator = F2( - function (selector, list) { - if (!list.b) { - return _List_Nil; - } else { - if (!list.b.b) { - var _v1 = list.a; - var combinator = _v1.a; - var sequence = _v1.b; - return _List_fromArray( - [ - _Utils_Tuple2( - combinator, - A2($rtfeldman$elm_css$Css$Structure$appendRepeatable, selector, sequence)) - ]); - } else { - var first = list.a; - var rest = list.b; - return A2( - $elm$core$List$cons, - first, - A2($rtfeldman$elm_css$Css$Structure$appendRepeatableWithCombinator, selector, rest)); - } - } - }); -var $rtfeldman$elm_css$Css$Structure$appendRepeatableSelector = F2( - function (repeatableSimpleSelector, selector) { - if (!selector.b.b) { - var sequence = selector.a; - var pseudoElement = selector.c; - return A3( - $rtfeldman$elm_css$Css$Structure$Selector, - A2($rtfeldman$elm_css$Css$Structure$appendRepeatable, repeatableSimpleSelector, sequence), - _List_Nil, - pseudoElement); - } else { - var firstSelector = selector.a; - var tuples = selector.b; - var pseudoElement = selector.c; - return A3( - $rtfeldman$elm_css$Css$Structure$Selector, - firstSelector, - A2($rtfeldman$elm_css$Css$Structure$appendRepeatableWithCombinator, repeatableSimpleSelector, tuples), - pseudoElement); - } - }); -var $rtfeldman$elm_css$Css$Structure$appendRepeatableToLastSelector = F2( - function (selector, styleBlock) { - return A2( - $rtfeldman$elm_css$Css$Structure$appendToLastSelector, - $rtfeldman$elm_css$Css$Structure$appendRepeatableSelector(selector), - styleBlock); - }); -var $rtfeldman$elm_css$Css$Preprocess$Resolve$collectSelectors = function (declarations) { - collectSelectors: - while (true) { - if (!declarations.b) { - return _List_Nil; - } else { - if (declarations.a.$ === 'StyleBlockDeclaration') { - var _v1 = declarations.a.a; - var firstSelector = _v1.a; - var otherSelectors = _v1.b; - var rest = declarations.b; - return _Utils_ap( - A2($elm$core$List$cons, firstSelector, otherSelectors), - $rtfeldman$elm_css$Css$Preprocess$Resolve$collectSelectors(rest)); - } else { - var rest = declarations.b; - var $temp$declarations = rest; - declarations = $temp$declarations; - continue collectSelectors; - } - } - } -}; -var $rtfeldman$elm_css$Css$Structure$DocumentRule = F5( - function (a, b, c, d, e) { - return {$: 'DocumentRule', a: a, b: b, c: c, d: d, e: e}; - }); -var $rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock = F2( - function (update, declarations) { - _v0$12: - while (true) { - if (!declarations.b) { - return declarations; - } else { - if (!declarations.b.b) { - switch (declarations.a.$) { - case 'StyleBlockDeclaration': - var styleBlock = declarations.a.a; - return A2( - $elm$core$List$map, - $rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration, - update(styleBlock)); - case 'MediaRule': - if (declarations.a.b.b) { - if (!declarations.a.b.b.b) { - var _v1 = declarations.a; - var mediaQueries = _v1.a; - var _v2 = _v1.b; - var styleBlock = _v2.a; - return _List_fromArray( - [ - A2( - $rtfeldman$elm_css$Css$Structure$MediaRule, - mediaQueries, - update(styleBlock)) - ]); - } else { - var _v3 = declarations.a; - var mediaQueries = _v3.a; - var _v4 = _v3.b; - var first = _v4.a; - var rest = _v4.b; - var _v5 = A2( - $rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock, - update, - _List_fromArray( - [ - A2($rtfeldman$elm_css$Css$Structure$MediaRule, mediaQueries, rest) - ])); - if ((_v5.b && (_v5.a.$ === 'MediaRule')) && (!_v5.b.b)) { - var _v6 = _v5.a; - var newMediaQueries = _v6.a; - var newStyleBlocks = _v6.b; - return _List_fromArray( - [ - A2( - $rtfeldman$elm_css$Css$Structure$MediaRule, - newMediaQueries, - A2($elm$core$List$cons, first, newStyleBlocks)) - ]); - } else { - var newDeclarations = _v5; - return newDeclarations; - } - } - } else { - break _v0$12; - } - case 'SupportsRule': - var _v7 = declarations.a; - var str = _v7.a; - var nestedDeclarations = _v7.b; - return _List_fromArray( - [ - A2( - $rtfeldman$elm_css$Css$Structure$SupportsRule, - str, - A2($rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock, update, nestedDeclarations)) - ]); - case 'DocumentRule': - var _v8 = declarations.a; - var str1 = _v8.a; - var str2 = _v8.b; - var str3 = _v8.c; - var str4 = _v8.d; - var styleBlock = _v8.e; - return A2( - $elm$core$List$map, - A4($rtfeldman$elm_css$Css$Structure$DocumentRule, str1, str2, str3, str4), - update(styleBlock)); - case 'PageRule': - var _v9 = declarations.a; - return declarations; - case 'FontFace': - return declarations; - case 'Keyframes': - return declarations; - case 'Viewport': - return declarations; - case 'CounterStyle': - return declarations; - default: - return declarations; - } - } else { - break _v0$12; - } - } - } - var first = declarations.a; - var rest = declarations.b; - return A2( - $elm$core$List$cons, - first, - A2($rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock, update, rest)); - }); -var $elm$core$String$cons = _String_cons; -var $rtfeldman$elm_css$ElmCssVendor$Murmur3$HashData = F4( - function (shift, seed, hash, charsProcessed) { - return {charsProcessed: charsProcessed, hash: hash, seed: seed, shift: shift}; - }); -var $rtfeldman$elm_css$ElmCssVendor$Murmur3$c1 = 3432918353; -var $rtfeldman$elm_css$ElmCssVendor$Murmur3$c2 = 461845907; -var $elm$core$Bitwise$and = _Bitwise_and; -var $elm$core$Bitwise$shiftLeftBy = _Bitwise_shiftLeftBy; -var $elm$core$Bitwise$shiftRightZfBy = _Bitwise_shiftRightZfBy; -var $rtfeldman$elm_css$ElmCssVendor$Murmur3$multiplyBy = F2( - function (b, a) { - return ((a & 65535) * b) + ((((a >>> 16) * b) & 65535) << 16); - }); -var $elm$core$Bitwise$or = _Bitwise_or; -var $rtfeldman$elm_css$ElmCssVendor$Murmur3$rotlBy = F2( - function (b, a) { - return (a << b) | (a >>> (32 - b)); - }); -var $elm$core$Bitwise$xor = _Bitwise_xor; -var $rtfeldman$elm_css$ElmCssVendor$Murmur3$finalize = function (data) { - var acc = (!(!data.hash)) ? (data.seed ^ A2( - $rtfeldman$elm_css$ElmCssVendor$Murmur3$multiplyBy, - $rtfeldman$elm_css$ElmCssVendor$Murmur3$c2, - A2( - $rtfeldman$elm_css$ElmCssVendor$Murmur3$rotlBy, - 15, - A2($rtfeldman$elm_css$ElmCssVendor$Murmur3$multiplyBy, $rtfeldman$elm_css$ElmCssVendor$Murmur3$c1, data.hash)))) : data.seed; - var h0 = acc ^ data.charsProcessed; - var h1 = A2($rtfeldman$elm_css$ElmCssVendor$Murmur3$multiplyBy, 2246822507, h0 ^ (h0 >>> 16)); - var h2 = A2($rtfeldman$elm_css$ElmCssVendor$Murmur3$multiplyBy, 3266489909, h1 ^ (h1 >>> 13)); - return (h2 ^ (h2 >>> 16)) >>> 0; -}; -var $elm$core$String$foldl = _String_foldl; -var $rtfeldman$elm_css$ElmCssVendor$Murmur3$mix = F2( - function (h1, k1) { - return A2( - $rtfeldman$elm_css$ElmCssVendor$Murmur3$multiplyBy, - 5, - A2( - $rtfeldman$elm_css$ElmCssVendor$Murmur3$rotlBy, - 13, - h1 ^ A2( - $rtfeldman$elm_css$ElmCssVendor$Murmur3$multiplyBy, - $rtfeldman$elm_css$ElmCssVendor$Murmur3$c2, - A2( - $rtfeldman$elm_css$ElmCssVendor$Murmur3$rotlBy, - 15, - A2($rtfeldman$elm_css$ElmCssVendor$Murmur3$multiplyBy, $rtfeldman$elm_css$ElmCssVendor$Murmur3$c1, k1))))) + 3864292196; - }); -var $rtfeldman$elm_css$ElmCssVendor$Murmur3$hashFold = F2( - function (c, data) { - var res = data.hash | ((255 & $elm$core$Char$toCode(c)) << data.shift); - var _v0 = data.shift; - if (_v0 === 24) { - return { - charsProcessed: data.charsProcessed + 1, - hash: 0, - seed: A2($rtfeldman$elm_css$ElmCssVendor$Murmur3$mix, data.seed, res), - shift: 0 - }; - } else { - return {charsProcessed: data.charsProcessed + 1, hash: res, seed: data.seed, shift: data.shift + 8}; - } - }); -var $rtfeldman$elm_css$ElmCssVendor$Murmur3$hashString = F2( - function (seed, str) { - return $rtfeldman$elm_css$ElmCssVendor$Murmur3$finalize( - A3( - $elm$core$String$foldl, - $rtfeldman$elm_css$ElmCssVendor$Murmur3$hashFold, - A4($rtfeldman$elm_css$ElmCssVendor$Murmur3$HashData, 0, seed, 0, 0), - str)); - }); -var $rtfeldman$elm_css$Hash$murmurSeed = 15739; -var $elm$core$String$fromList = _String_fromList; -var $elm$core$Basics$modBy = _Basics_modBy; -var $rtfeldman$elm_hex$Hex$unsafeToDigit = function (num) { - unsafeToDigit: - while (true) { - switch (num) { - case 0: - return _Utils_chr('0'); - case 1: - return _Utils_chr('1'); - case 2: - return _Utils_chr('2'); - case 3: - return _Utils_chr('3'); - case 4: - return _Utils_chr('4'); - case 5: - return _Utils_chr('5'); - case 6: - return _Utils_chr('6'); - case 7: - return _Utils_chr('7'); - case 8: - return _Utils_chr('8'); - case 9: - return _Utils_chr('9'); - case 10: - return _Utils_chr('a'); - case 11: - return _Utils_chr('b'); - case 12: - return _Utils_chr('c'); - case 13: - return _Utils_chr('d'); - case 14: - return _Utils_chr('e'); - case 15: - return _Utils_chr('f'); - default: - var $temp$num = num; - num = $temp$num; - continue unsafeToDigit; - } - } -}; -var $rtfeldman$elm_hex$Hex$unsafePositiveToDigits = F2( - function (digits, num) { - unsafePositiveToDigits: - while (true) { - if (num < 16) { - return A2( - $elm$core$List$cons, - $rtfeldman$elm_hex$Hex$unsafeToDigit(num), - digits); - } else { - var $temp$digits = A2( - $elm$core$List$cons, - $rtfeldman$elm_hex$Hex$unsafeToDigit( - A2($elm$core$Basics$modBy, 16, num)), - digits), - $temp$num = (num / 16) | 0; - digits = $temp$digits; - num = $temp$num; - continue unsafePositiveToDigits; - } - } - }); -var $rtfeldman$elm_hex$Hex$toString = function (num) { - return $elm$core$String$fromList( - (num < 0) ? A2( - $elm$core$List$cons, - _Utils_chr('-'), - A2($rtfeldman$elm_hex$Hex$unsafePositiveToDigits, _List_Nil, -num)) : A2($rtfeldman$elm_hex$Hex$unsafePositiveToDigits, _List_Nil, num)); -}; -var $rtfeldman$elm_css$Hash$fromString = function (str) { - return A2( - $elm$core$String$cons, - _Utils_chr('_'), - $rtfeldman$elm_hex$Hex$toString( - A2($rtfeldman$elm_css$ElmCssVendor$Murmur3$hashString, $rtfeldman$elm_css$Hash$murmurSeed, str))); -}; -var $elm$core$List$head = function (list) { - if (list.b) { - var x = list.a; - var xs = list.b; - return $elm$core$Maybe$Just(x); - } else { - return $elm$core$Maybe$Nothing; - } -}; -var $rtfeldman$elm_css$Css$Preprocess$Resolve$last = function (list) { - last: - while (true) { - if (!list.b) { - return $elm$core$Maybe$Nothing; - } else { - if (!list.b.b) { - var singleton = list.a; - return $elm$core$Maybe$Just(singleton); - } else { - var rest = list.b; - var $temp$list = rest; - list = $temp$list; - continue last; - } - } - } -}; -var $rtfeldman$elm_css$Css$Preprocess$Resolve$lastDeclaration = function (declarations) { - lastDeclaration: - while (true) { - if (!declarations.b) { - return $elm$core$Maybe$Nothing; - } else { - if (!declarations.b.b) { - var x = declarations.a; - return $elm$core$Maybe$Just( - _List_fromArray( - [x])); - } else { - var xs = declarations.b; - var $temp$declarations = xs; - declarations = $temp$declarations; - continue lastDeclaration; - } - } - } -}; -var $rtfeldman$elm_css$Css$Preprocess$Resolve$oneOf = function (maybes) { - oneOf: - while (true) { - if (!maybes.b) { - return $elm$core$Maybe$Nothing; - } else { - var maybe = maybes.a; - var rest = maybes.b; - if (maybe.$ === 'Nothing') { - var $temp$maybes = rest; - maybes = $temp$maybes; - continue oneOf; - } else { - return maybe; - } - } - } -}; -var $rtfeldman$elm_css$Css$Structure$FontFeatureValues = function (a) { - return {$: 'FontFeatureValues', a: a}; -}; -var $rtfeldman$elm_css$Css$Preprocess$Resolve$resolveFontFeatureValues = function (tuples) { - var expandTuples = function (tuplesToExpand) { - if (!tuplesToExpand.b) { - return _List_Nil; - } else { - var properties = tuplesToExpand.a; - var rest = tuplesToExpand.b; - return A2( - $elm$core$List$cons, - properties, - expandTuples(rest)); - } - }; - var newTuples = expandTuples(tuples); - return _List_fromArray( - [ - $rtfeldman$elm_css$Css$Structure$FontFeatureValues(newTuples) - ]); -}; -var $rtfeldman$elm_css$Css$Structure$styleBlockToMediaRule = F2( - function (mediaQueries, declaration) { - if (declaration.$ === 'StyleBlockDeclaration') { - var styleBlock = declaration.a; - return A2( - $rtfeldman$elm_css$Css$Structure$MediaRule, - mediaQueries, - _List_fromArray( - [styleBlock])); - } else { - return declaration; - } - }); -var $elm$core$List$tail = function (list) { - if (list.b) { - var x = list.a; - var xs = list.b; - return $elm$core$Maybe$Just(xs); - } else { - return $elm$core$Maybe$Nothing; - } -}; -var $elm$core$List$takeReverse = F3( - function (n, list, kept) { - takeReverse: - while (true) { - if (n <= 0) { - return kept; - } else { - if (!list.b) { - return kept; - } else { - var x = list.a; - var xs = list.b; - var $temp$n = n - 1, - $temp$list = xs, - $temp$kept = A2($elm$core$List$cons, x, kept); - n = $temp$n; - list = $temp$list; - kept = $temp$kept; - continue takeReverse; - } - } - } - }); -var $elm$core$List$takeTailRec = F2( - function (n, list) { - return $elm$core$List$reverse( - A3($elm$core$List$takeReverse, n, list, _List_Nil)); - }); -var $elm$core$List$takeFast = F3( - function (ctr, n, list) { - if (n <= 0) { - return _List_Nil; - } else { - var _v0 = _Utils_Tuple2(n, list); - _v0$1: - while (true) { - _v0$5: - while (true) { - if (!_v0.b.b) { - return list; - } else { - if (_v0.b.b.b) { - switch (_v0.a) { - case 1: - break _v0$1; - case 2: - var _v2 = _v0.b; - var x = _v2.a; - var _v3 = _v2.b; - var y = _v3.a; - return _List_fromArray( - [x, y]); - case 3: - if (_v0.b.b.b.b) { - var _v4 = _v0.b; - var x = _v4.a; - var _v5 = _v4.b; - var y = _v5.a; - var _v6 = _v5.b; - var z = _v6.a; - return _List_fromArray( - [x, y, z]); - } else { - break _v0$5; - } - default: - if (_v0.b.b.b.b && _v0.b.b.b.b.b) { - var _v7 = _v0.b; - var x = _v7.a; - var _v8 = _v7.b; - var y = _v8.a; - var _v9 = _v8.b; - var z = _v9.a; - var _v10 = _v9.b; - var w = _v10.a; - var tl = _v10.b; - return (ctr > 1000) ? A2( - $elm$core$List$cons, - x, - A2( - $elm$core$List$cons, - y, - A2( - $elm$core$List$cons, - z, - A2( - $elm$core$List$cons, - w, - A2($elm$core$List$takeTailRec, n - 4, tl))))) : A2( - $elm$core$List$cons, - x, - A2( - $elm$core$List$cons, - y, - A2( - $elm$core$List$cons, - z, - A2( - $elm$core$List$cons, - w, - A3($elm$core$List$takeFast, ctr + 1, n - 4, tl))))); - } else { - break _v0$5; - } - } - } else { - if (_v0.a === 1) { - break _v0$1; - } else { - break _v0$5; - } - } - } - } - return list; - } - var _v1 = _v0.b; - var x = _v1.a; - return _List_fromArray( - [x]); - } - }); -var $elm$core$List$take = F2( - function (n, list) { - return A3($elm$core$List$takeFast, 0, n, list); - }); -var $rtfeldman$elm_css$Css$Preprocess$Resolve$toDocumentRule = F5( - function (str1, str2, str3, str4, declaration) { - if (declaration.$ === 'StyleBlockDeclaration') { - var structureStyleBlock = declaration.a; - return A5($rtfeldman$elm_css$Css$Structure$DocumentRule, str1, str2, str3, str4, structureStyleBlock); - } else { - return declaration; - } - }); -var $rtfeldman$elm_css$Css$Preprocess$Resolve$toMediaRule = F2( - function (mediaQueries, declaration) { - switch (declaration.$) { - case 'StyleBlockDeclaration': - var structureStyleBlock = declaration.a; - return A2( - $rtfeldman$elm_css$Css$Structure$MediaRule, - mediaQueries, - _List_fromArray( - [structureStyleBlock])); - case 'MediaRule': - var newMediaQueries = declaration.a; - var structureStyleBlocks = declaration.b; - return A2( - $rtfeldman$elm_css$Css$Structure$MediaRule, - _Utils_ap(mediaQueries, newMediaQueries), - structureStyleBlocks); - case 'SupportsRule': - var str = declaration.a; - var declarations = declaration.b; - return A2( - $rtfeldman$elm_css$Css$Structure$SupportsRule, - str, - A2( - $elm$core$List$map, - $rtfeldman$elm_css$Css$Preprocess$Resolve$toMediaRule(mediaQueries), - declarations)); - case 'DocumentRule': - var str1 = declaration.a; - var str2 = declaration.b; - var str3 = declaration.c; - var str4 = declaration.d; - var structureStyleBlock = declaration.e; - return A5($rtfeldman$elm_css$Css$Structure$DocumentRule, str1, str2, str3, str4, structureStyleBlock); - case 'PageRule': - return declaration; - case 'FontFace': - return declaration; - case 'Keyframes': - return declaration; - case 'Viewport': - return declaration; - case 'CounterStyle': - return declaration; - default: - return declaration; - } - }); -var $rtfeldman$elm_css$Css$Preprocess$unwrapSnippet = function (_v0) { - var declarations = _v0.a; - return declarations; -}; -var $rtfeldman$elm_css$Css$Preprocess$Resolve$applyNestedStylesToLast = F4( - function (nestedStyles, rest, f, declarations) { - var withoutParent = function (decls) { - return A2( - $elm$core$Maybe$withDefault, - _List_Nil, - $elm$core$List$tail(decls)); - }; - var nextResult = A2( - $rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, - rest, - A2( - $elm$core$Maybe$withDefault, - _List_Nil, - $rtfeldman$elm_css$Css$Preprocess$Resolve$lastDeclaration(declarations))); - var newDeclarations = function () { - var _v14 = _Utils_Tuple2( - $elm$core$List$head(nextResult), - $rtfeldman$elm_css$Css$Preprocess$Resolve$last(declarations)); - if ((_v14.a.$ === 'Just') && (_v14.b.$ === 'Just')) { - var nextResultParent = _v14.a.a; - var originalParent = _v14.b.a; - return _Utils_ap( - A2( - $elm$core$List$take, - $elm$core$List$length(declarations) - 1, - declarations), - _List_fromArray( - [ - (!_Utils_eq(originalParent, nextResultParent)) ? nextResultParent : originalParent - ])); - } else { - return declarations; - } - }(); - var insertStylesToNestedDecl = function (lastDecl) { - return $elm$core$List$concat( - A2( - $rtfeldman$elm_css$Css$Structure$mapLast, - $rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles(nestedStyles), - A2( - $elm$core$List$map, - $elm$core$List$singleton, - A2($rtfeldman$elm_css$Css$Structure$concatMapLastStyleBlock, f, lastDecl)))); - }; - var initialResult = A2( - $elm$core$Maybe$withDefault, - _List_Nil, - A2( - $elm$core$Maybe$map, - insertStylesToNestedDecl, - $rtfeldman$elm_css$Css$Preprocess$Resolve$lastDeclaration(declarations))); - return _Utils_ap( - newDeclarations, - _Utils_ap( - withoutParent(initialResult), - withoutParent(nextResult))); - }); -var $rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles = F2( - function (styles, declarations) { - if (!styles.b) { - return declarations; - } else { - switch (styles.a.$) { - case 'AppendProperty': - var property = styles.a.a; - var rest = styles.b; - return A2( - $rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, - rest, - A2($rtfeldman$elm_css$Css$Structure$appendProperty, property, declarations)); - case 'ExtendSelector': - var _v4 = styles.a; - var selector = _v4.a; - var nestedStyles = _v4.b; - var rest = styles.b; - return A4( - $rtfeldman$elm_css$Css$Preprocess$Resolve$applyNestedStylesToLast, - nestedStyles, - rest, - $rtfeldman$elm_css$Css$Structure$appendRepeatableToLastSelector(selector), - declarations); - case 'NestSnippet': - var _v5 = styles.a; - var selectorCombinator = _v5.a; - var snippets = _v5.b; - var rest = styles.b; - var chain = F2( - function (_v9, _v10) { - var originalSequence = _v9.a; - var originalTuples = _v9.b; - var originalPseudoElement = _v9.c; - var newSequence = _v10.a; - var newTuples = _v10.b; - var newPseudoElement = _v10.c; - return A3( - $rtfeldman$elm_css$Css$Structure$Selector, - originalSequence, - _Utils_ap( - originalTuples, - A2( - $elm$core$List$cons, - _Utils_Tuple2(selectorCombinator, newSequence), - newTuples)), - $rtfeldman$elm_css$Css$Preprocess$Resolve$oneOf( - _List_fromArray( - [newPseudoElement, originalPseudoElement]))); - }); - var expandDeclaration = function (declaration) { - switch (declaration.$) { - case 'StyleBlockDeclaration': - var _v7 = declaration.a; - var firstSelector = _v7.a; - var otherSelectors = _v7.b; - var nestedStyles = _v7.c; - var newSelectors = A2( - $elm$core$List$concatMap, - function (originalSelector) { - return A2( - $elm$core$List$map, - chain(originalSelector), - A2($elm$core$List$cons, firstSelector, otherSelectors)); - }, - $rtfeldman$elm_css$Css$Preprocess$Resolve$collectSelectors(declarations)); - var newDeclarations = function () { - if (!newSelectors.b) { - return _List_Nil; - } else { - var first = newSelectors.a; - var remainder = newSelectors.b; - return _List_fromArray( - [ - $rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration( - A3($rtfeldman$elm_css$Css$Structure$StyleBlock, first, remainder, _List_Nil)) - ]); - } - }(); - return A2($rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, nestedStyles, newDeclarations); - case 'MediaRule': - var mediaQueries = declaration.a; - var styleBlocks = declaration.b; - return A2($rtfeldman$elm_css$Css$Preprocess$Resolve$resolveMediaRule, mediaQueries, styleBlocks); - case 'SupportsRule': - var str = declaration.a; - var otherSnippets = declaration.b; - return A2($rtfeldman$elm_css$Css$Preprocess$Resolve$resolveSupportsRule, str, otherSnippets); - case 'DocumentRule': - var str1 = declaration.a; - var str2 = declaration.b; - var str3 = declaration.c; - var str4 = declaration.d; - var styleBlock = declaration.e; - return A2( - $elm$core$List$map, - A4($rtfeldman$elm_css$Css$Preprocess$Resolve$toDocumentRule, str1, str2, str3, str4), - $rtfeldman$elm_css$Css$Preprocess$Resolve$expandStyleBlock(styleBlock)); - case 'PageRule': - var str = declaration.a; - var properties = declaration.b; - return _List_fromArray( - [ - A2($rtfeldman$elm_css$Css$Structure$PageRule, str, properties) - ]); - case 'FontFace': - var properties = declaration.a; - return _List_fromArray( - [ - $rtfeldman$elm_css$Css$Structure$FontFace(properties) - ]); - case 'Viewport': - var properties = declaration.a; - return _List_fromArray( - [ - $rtfeldman$elm_css$Css$Structure$Viewport(properties) - ]); - case 'CounterStyle': - var properties = declaration.a; - return _List_fromArray( - [ - $rtfeldman$elm_css$Css$Structure$CounterStyle(properties) - ]); - default: - var tuples = declaration.a; - return $rtfeldman$elm_css$Css$Preprocess$Resolve$resolveFontFeatureValues(tuples); - } - }; - return $elm$core$List$concat( - _Utils_ap( - _List_fromArray( - [ - A2($rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, rest, declarations) - ]), - A2( - $elm$core$List$map, - expandDeclaration, - A2($elm$core$List$concatMap, $rtfeldman$elm_css$Css$Preprocess$unwrapSnippet, snippets)))); - case 'WithPseudoElement': - var _v11 = styles.a; - var pseudoElement = _v11.a; - var nestedStyles = _v11.b; - var rest = styles.b; - return A4( - $rtfeldman$elm_css$Css$Preprocess$Resolve$applyNestedStylesToLast, - nestedStyles, - rest, - $rtfeldman$elm_css$Css$Structure$appendPseudoElementToLastSelector(pseudoElement), - declarations); - case 'WithKeyframes': - var str = styles.a.a; - var rest = styles.b; - var name = $rtfeldman$elm_css$Hash$fromString(str); - var newProperty = 'animation-name:' + name; - var newDeclarations = A2( - $rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, - rest, - A2($rtfeldman$elm_css$Css$Structure$appendProperty, newProperty, declarations)); - return A2( - $elm$core$List$append, - newDeclarations, - _List_fromArray( - [ - $rtfeldman$elm_css$Css$Structure$Keyframes( - {declaration: str, name: name}) - ])); - case 'WithMedia': - var _v12 = styles.a; - var mediaQueries = _v12.a; - var nestedStyles = _v12.b; - var rest = styles.b; - var extraDeclarations = function () { - var _v13 = $rtfeldman$elm_css$Css$Preprocess$Resolve$collectSelectors(declarations); - if (!_v13.b) { - return _List_Nil; - } else { - var firstSelector = _v13.a; - var otherSelectors = _v13.b; - return A2( - $elm$core$List$map, - $rtfeldman$elm_css$Css$Structure$styleBlockToMediaRule(mediaQueries), - A2( - $rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, - nestedStyles, - $elm$core$List$singleton( - $rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration( - A3($rtfeldman$elm_css$Css$Structure$StyleBlock, firstSelector, otherSelectors, _List_Nil))))); - } - }(); - return _Utils_ap( - A2($rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, rest, declarations), - extraDeclarations); - default: - var otherStyles = styles.a.a; - var rest = styles.b; - return A2( - $rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, - _Utils_ap(otherStyles, rest), - declarations); - } - } - }); -var $rtfeldman$elm_css$Css$Preprocess$Resolve$expandStyleBlock = function (_v2) { - var firstSelector = _v2.a; - var otherSelectors = _v2.b; - var styles = _v2.c; - return A2( - $rtfeldman$elm_css$Css$Preprocess$Resolve$applyStyles, - styles, - _List_fromArray( - [ - $rtfeldman$elm_css$Css$Structure$StyleBlockDeclaration( - A3($rtfeldman$elm_css$Css$Structure$StyleBlock, firstSelector, otherSelectors, _List_Nil)) - ])); -}; -var $rtfeldman$elm_css$Css$Preprocess$Resolve$extract = function (snippetDeclarations) { - if (!snippetDeclarations.b) { - return _List_Nil; - } else { - var first = snippetDeclarations.a; - var rest = snippetDeclarations.b; - return _Utils_ap( - $rtfeldman$elm_css$Css$Preprocess$Resolve$toDeclarations(first), - $rtfeldman$elm_css$Css$Preprocess$Resolve$extract(rest)); - } -}; -var $rtfeldman$elm_css$Css$Preprocess$Resolve$resolveMediaRule = F2( - function (mediaQueries, styleBlocks) { - var handleStyleBlock = function (styleBlock) { - return A2( - $elm$core$List$map, - $rtfeldman$elm_css$Css$Preprocess$Resolve$toMediaRule(mediaQueries), - $rtfeldman$elm_css$Css$Preprocess$Resolve$expandStyleBlock(styleBlock)); - }; - return A2($elm$core$List$concatMap, handleStyleBlock, styleBlocks); - }); -var $rtfeldman$elm_css$Css$Preprocess$Resolve$resolveSupportsRule = F2( - function (str, snippets) { - var declarations = $rtfeldman$elm_css$Css$Preprocess$Resolve$extract( - A2($elm$core$List$concatMap, $rtfeldman$elm_css$Css$Preprocess$unwrapSnippet, snippets)); - return _List_fromArray( - [ - A2($rtfeldman$elm_css$Css$Structure$SupportsRule, str, declarations) - ]); - }); -var $rtfeldman$elm_css$Css$Preprocess$Resolve$toDeclarations = function (snippetDeclaration) { - switch (snippetDeclaration.$) { - case 'StyleBlockDeclaration': - var styleBlock = snippetDeclaration.a; - return $rtfeldman$elm_css$Css$Preprocess$Resolve$expandStyleBlock(styleBlock); - case 'MediaRule': - var mediaQueries = snippetDeclaration.a; - var styleBlocks = snippetDeclaration.b; - return A2($rtfeldman$elm_css$Css$Preprocess$Resolve$resolveMediaRule, mediaQueries, styleBlocks); - case 'SupportsRule': - var str = snippetDeclaration.a; - var snippets = snippetDeclaration.b; - return A2($rtfeldman$elm_css$Css$Preprocess$Resolve$resolveSupportsRule, str, snippets); - case 'DocumentRule': - var str1 = snippetDeclaration.a; - var str2 = snippetDeclaration.b; - var str3 = snippetDeclaration.c; - var str4 = snippetDeclaration.d; - var styleBlock = snippetDeclaration.e; - return A2( - $elm$core$List$map, - A4($rtfeldman$elm_css$Css$Preprocess$Resolve$toDocumentRule, str1, str2, str3, str4), - $rtfeldman$elm_css$Css$Preprocess$Resolve$expandStyleBlock(styleBlock)); - case 'PageRule': - var str = snippetDeclaration.a; - var properties = snippetDeclaration.b; - return _List_fromArray( - [ - A2($rtfeldman$elm_css$Css$Structure$PageRule, str, properties) - ]); - case 'FontFace': - var properties = snippetDeclaration.a; - return _List_fromArray( - [ - $rtfeldman$elm_css$Css$Structure$FontFace(properties) - ]); - case 'Viewport': - var properties = snippetDeclaration.a; - return _List_fromArray( - [ - $rtfeldman$elm_css$Css$Structure$Viewport(properties) - ]); - case 'CounterStyle': - var properties = snippetDeclaration.a; - return _List_fromArray( - [ - $rtfeldman$elm_css$Css$Structure$CounterStyle(properties) - ]); - default: - var tuples = snippetDeclaration.a; - return $rtfeldman$elm_css$Css$Preprocess$Resolve$resolveFontFeatureValues(tuples); - } -}; -var $rtfeldman$elm_css$Css$Preprocess$Resolve$toStructure = function (_v0) { - var charset = _v0.charset; - var imports = _v0.imports; - var namespaces = _v0.namespaces; - var snippets = _v0.snippets; - var declarations = $rtfeldman$elm_css$Css$Preprocess$Resolve$extract( - A2($elm$core$List$concatMap, $rtfeldman$elm_css$Css$Preprocess$unwrapSnippet, snippets)); - return {charset: charset, declarations: declarations, imports: imports, namespaces: namespaces}; -}; -var $rtfeldman$elm_css$Css$Preprocess$Resolve$compileHelp = function (sheet) { - return $rtfeldman$elm_css$Css$Structure$Output$prettyPrint( - $rtfeldman$elm_css$Css$Structure$compactStylesheet( - $rtfeldman$elm_css$Css$Preprocess$Resolve$toStructure(sheet))); -}; -var $rtfeldman$elm_css$Css$Preprocess$Resolve$compile = function (styles) { - return A2( - $elm$core$String$join, - '\n\n', - A2($elm$core$List$map, $rtfeldman$elm_css$Css$Preprocess$Resolve$compileHelp, styles)); -}; -var $rtfeldman$elm_css$Css$Structure$ClassSelector = function (a) { - return {$: 'ClassSelector', a: a}; -}; -var $rtfeldman$elm_css$Css$Preprocess$Snippet = function (a) { - return {$: 'Snippet', a: a}; -}; -var $rtfeldman$elm_css$Css$Preprocess$StyleBlock = F3( - function (a, b, c) { - return {$: 'StyleBlock', a: a, b: b, c: c}; - }); -var $rtfeldman$elm_css$Css$Preprocess$StyleBlockDeclaration = function (a) { - return {$: 'StyleBlockDeclaration', a: a}; -}; -var $rtfeldman$elm_css$VirtualDom$Styled$makeSnippet = F2( - function (styles, sequence) { - var selector = A3($rtfeldman$elm_css$Css$Structure$Selector, sequence, _List_Nil, $elm$core$Maybe$Nothing); - return $rtfeldman$elm_css$Css$Preprocess$Snippet( - _List_fromArray( - [ - $rtfeldman$elm_css$Css$Preprocess$StyleBlockDeclaration( - A3($rtfeldman$elm_css$Css$Preprocess$StyleBlock, selector, _List_Nil, styles)) - ])); - }); -var $rtfeldman$elm_css$VirtualDom$Styled$snippetFromPair = function (_v0) { - var classname = _v0.a; - var styles = _v0.b; - return A2( - $rtfeldman$elm_css$VirtualDom$Styled$makeSnippet, - styles, - $rtfeldman$elm_css$Css$Structure$UniversalSelectorSequence( - _List_fromArray( - [ - $rtfeldman$elm_css$Css$Structure$ClassSelector(classname) - ]))); -}; -var $rtfeldman$elm_css$Css$Preprocess$stylesheet = function (snippets) { - return {charset: $elm$core$Maybe$Nothing, imports: _List_Nil, namespaces: _List_Nil, snippets: snippets}; -}; -var $rtfeldman$elm_css$VirtualDom$Styled$toDeclaration = function (dict) { - return $rtfeldman$elm_css$Css$Preprocess$Resolve$compile( - $elm$core$List$singleton( - $rtfeldman$elm_css$Css$Preprocess$stylesheet( - A2( - $elm$core$List$map, - $rtfeldman$elm_css$VirtualDom$Styled$snippetFromPair, - $elm$core$Dict$toList(dict))))); -}; -var $rtfeldman$elm_css$VirtualDom$Styled$toStyleNode = function (styles) { - return A3( - $elm$virtual_dom$VirtualDom$node, - 'style', - _List_Nil, - $elm$core$List$singleton( - $elm$virtual_dom$VirtualDom$text( - $rtfeldman$elm_css$VirtualDom$Styled$toDeclaration(styles)))); -}; -var $rtfeldman$elm_css$VirtualDom$Styled$unstyle = F3( - function (elemType, properties, children) { - var unstyledProperties = A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties); - var initialStyles = $rtfeldman$elm_css$VirtualDom$Styled$stylesFromProperties(properties); - var _v0 = A3( - $elm$core$List$foldl, - $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml, - _Utils_Tuple2(_List_Nil, initialStyles), - children); - var childNodes = _v0.a; - var styles = _v0.b; - var styleNode = $rtfeldman$elm_css$VirtualDom$Styled$toStyleNode(styles); - return A3( - $elm$virtual_dom$VirtualDom$node, - elemType, - unstyledProperties, - A2( - $elm$core$List$cons, - styleNode, - $elm$core$List$reverse(childNodes))); - }); -var $rtfeldman$elm_css$VirtualDom$Styled$containsKey = F2( - function (key, pairs) { - containsKey: - while (true) { - if (!pairs.b) { - return false; - } else { - var _v1 = pairs.a; - var str = _v1.a; - var rest = pairs.b; - if (_Utils_eq(key, str)) { - return true; - } else { - var $temp$key = key, - $temp$pairs = rest; - key = $temp$key; - pairs = $temp$pairs; - continue containsKey; - } - } - } - }); -var $rtfeldman$elm_css$VirtualDom$Styled$getUnusedKey = F2( - function (_default, pairs) { - getUnusedKey: - while (true) { - if (!pairs.b) { - return _default; - } else { - var _v1 = pairs.a; - var firstKey = _v1.a; - var rest = pairs.b; - var newKey = '_' + firstKey; - if (A2($rtfeldman$elm_css$VirtualDom$Styled$containsKey, newKey, rest)) { - var $temp$default = newKey, - $temp$pairs = rest; - _default = $temp$default; - pairs = $temp$pairs; - continue getUnusedKey; - } else { - return newKey; - } - } - } - }); -var $rtfeldman$elm_css$VirtualDom$Styled$toKeyedStyleNode = F2( - function (allStyles, keyedChildNodes) { - var styleNodeKey = A2($rtfeldman$elm_css$VirtualDom$Styled$getUnusedKey, '_', keyedChildNodes); - var finalNode = $rtfeldman$elm_css$VirtualDom$Styled$toStyleNode(allStyles); - return _Utils_Tuple2(styleNodeKey, finalNode); - }); -var $rtfeldman$elm_css$VirtualDom$Styled$unstyleKeyed = F3( - function (elemType, properties, keyedChildren) { - var unstyledProperties = A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties); - var initialStyles = $rtfeldman$elm_css$VirtualDom$Styled$stylesFromProperties(properties); - var _v0 = A3( - $elm$core$List$foldl, - $rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml, - _Utils_Tuple2(_List_Nil, initialStyles), - keyedChildren); - var keyedChildNodes = _v0.a; - var styles = _v0.b; - var keyedStyleNode = A2($rtfeldman$elm_css$VirtualDom$Styled$toKeyedStyleNode, styles, keyedChildNodes); - return A3( - $elm$virtual_dom$VirtualDom$keyedNode, - elemType, - unstyledProperties, - A2( - $elm$core$List$cons, - keyedStyleNode, - $elm$core$List$reverse(keyedChildNodes))); - }); -var $rtfeldman$elm_css$VirtualDom$Styled$unstyleKeyedNS = F4( - function (ns, elemType, properties, keyedChildren) { - var unstyledProperties = A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties); - var initialStyles = $rtfeldman$elm_css$VirtualDom$Styled$stylesFromProperties(properties); - var _v0 = A3( - $elm$core$List$foldl, - $rtfeldman$elm_css$VirtualDom$Styled$accumulateKeyedStyledHtml, - _Utils_Tuple2(_List_Nil, initialStyles), - keyedChildren); - var keyedChildNodes = _v0.a; - var styles = _v0.b; - var keyedStyleNode = A2($rtfeldman$elm_css$VirtualDom$Styled$toKeyedStyleNode, styles, keyedChildNodes); - return A4( - $elm$virtual_dom$VirtualDom$keyedNodeNS, - ns, - elemType, - unstyledProperties, - A2( - $elm$core$List$cons, - keyedStyleNode, - $elm$core$List$reverse(keyedChildNodes))); - }); -var $rtfeldman$elm_css$VirtualDom$Styled$unstyleNS = F4( - function (ns, elemType, properties, children) { - var unstyledProperties = A2($elm$core$List$map, $rtfeldman$elm_css$VirtualDom$Styled$extractUnstyledAttribute, properties); - var initialStyles = $rtfeldman$elm_css$VirtualDom$Styled$stylesFromProperties(properties); - var _v0 = A3( - $elm$core$List$foldl, - $rtfeldman$elm_css$VirtualDom$Styled$accumulateStyledHtml, - _Utils_Tuple2(_List_Nil, initialStyles), - children); - var childNodes = _v0.a; - var styles = _v0.b; - var styleNode = $rtfeldman$elm_css$VirtualDom$Styled$toStyleNode(styles); - return A4( - $elm$virtual_dom$VirtualDom$nodeNS, - ns, - elemType, - unstyledProperties, - A2( - $elm$core$List$cons, - styleNode, - $elm$core$List$reverse(childNodes))); - }); -var $rtfeldman$elm_css$VirtualDom$Styled$toUnstyled = function (vdom) { - switch (vdom.$) { - case 'Unstyled': - var plainNode = vdom.a; - return plainNode; - case 'Node': - var elemType = vdom.a; - var properties = vdom.b; - var children = vdom.c; - return A3($rtfeldman$elm_css$VirtualDom$Styled$unstyle, elemType, properties, children); - case 'NodeNS': - var ns = vdom.a; - var elemType = vdom.b; - var properties = vdom.c; - var children = vdom.d; - return A4($rtfeldman$elm_css$VirtualDom$Styled$unstyleNS, ns, elemType, properties, children); - case 'KeyedNode': - var elemType = vdom.a; - var properties = vdom.b; - var children = vdom.c; - return A3($rtfeldman$elm_css$VirtualDom$Styled$unstyleKeyed, elemType, properties, children); - default: - var ns = vdom.a; - var elemType = vdom.b; - var properties = vdom.c; - var children = vdom.d; - return A4($rtfeldman$elm_css$VirtualDom$Styled$unstyleKeyedNS, ns, elemType, properties, children); - } -}; -var $rtfeldman$elm_css$Html$Styled$toUnstyled = $rtfeldman$elm_css$VirtualDom$Styled$toUnstyled; -var $author$project$Main$LogoutPressed = {$: 'LogoutPressed'}; -var $rtfeldman$elm_css$Css$Preprocess$AppendProperty = function (a) { - return {$: 'AppendProperty', a: a}; -}; -var $rtfeldman$elm_css$Css$property = F2( - function (key, value) { - return $rtfeldman$elm_css$Css$Preprocess$AppendProperty(key + (':' + value)); - }); -var $rtfeldman$elm_css$Css$backgroundColor = function (c) { - return A2($rtfeldman$elm_css$Css$property, 'background-color', c.value); -}; -var $rtfeldman$elm_css$VirtualDom$Styled$murmurSeed = 15739; -var $rtfeldman$elm_css$VirtualDom$Styled$getClassname = function (styles) { - return $elm$core$List$isEmpty(styles) ? 'unstyled' : A2( - $elm$core$String$cons, - _Utils_chr('_'), - $rtfeldman$elm_hex$Hex$toString( - A2( - $rtfeldman$elm_css$ElmCssVendor$Murmur3$hashString, - $rtfeldman$elm_css$VirtualDom$Styled$murmurSeed, - $rtfeldman$elm_css$Css$Preprocess$Resolve$compile( - $elm$core$List$singleton( - $rtfeldman$elm_css$Css$Preprocess$stylesheet( - $elm$core$List$singleton( - A2( - $rtfeldman$elm_css$VirtualDom$Styled$makeSnippet, - styles, - $rtfeldman$elm_css$Css$Structure$UniversalSelectorSequence(_List_Nil))))))))); -}; -var $rtfeldman$elm_css$Html$Styled$Internal$css = function (styles) { - var classname = $rtfeldman$elm_css$VirtualDom$Styled$getClassname(styles); - var classProperty = A2( - $elm$virtual_dom$VirtualDom$property, - 'className', - $elm$json$Json$Encode$string(classname)); - return A3($rtfeldman$elm_css$VirtualDom$Styled$Attribute, classProperty, styles, classname); -}; -var $rtfeldman$elm_css$Html$Styled$Attributes$css = $rtfeldman$elm_css$Html$Styled$Internal$css; -var $rtfeldman$elm_css$Css$prop1 = F2( - function (key, arg) { - return A2($rtfeldman$elm_css$Css$property, key, arg.value); - }); -var $rtfeldman$elm_css$Css$display = $rtfeldman$elm_css$Css$prop1('display'); -var $rtfeldman$elm_css$Css$border = $rtfeldman$elm_css$Css$prop1('border'); -var $rtfeldman$elm_css$Css$borderRadius = $rtfeldman$elm_css$Css$prop1('border-radius'); -var $rtfeldman$elm_css$Html$Styled$button = $rtfeldman$elm_css$Html$Styled$node('button'); -var $rtfeldman$elm_css$Css$color = function (c) { - return A2($rtfeldman$elm_css$Css$property, 'color', c.value); -}; -var $rtfeldman$elm_css$Css$height = $rtfeldman$elm_css$Css$prop1('height'); -var $rtfeldman$elm_css$Css$Preprocess$ExtendSelector = F2( - function (a, b) { - return {$: 'ExtendSelector', a: a, b: b}; - }); -var $rtfeldman$elm_css$Css$Structure$PseudoClassSelector = function (a) { - return {$: 'PseudoClassSelector', a: a}; -}; -var $rtfeldman$elm_css$Css$pseudoClass = function (_class) { - return $rtfeldman$elm_css$Css$Preprocess$ExtendSelector( - $rtfeldman$elm_css$Css$Structure$PseudoClassSelector(_class)); -}; -var $rtfeldman$elm_css$Css$hover = $rtfeldman$elm_css$Css$pseudoClass('hover'); -var $rtfeldman$elm_css$Css$margin = $rtfeldman$elm_css$Css$prop1('margin'); -var $rtfeldman$elm_css$Css$prop2 = F3( - function (key, argA, argB) { - return A2( - $rtfeldman$elm_css$Css$property, - key, - A2( - $elm$core$String$join, - ' ', - _List_fromArray( - [argA.value, argB.value]))); - }); -var $rtfeldman$elm_css$Css$padding2 = $rtfeldman$elm_css$Css$prop2('padding'); -var $rtfeldman$elm_css$Css$PxUnits = {$: 'PxUnits'}; -var $rtfeldman$elm_css$Css$Structure$Compatible = {$: 'Compatible'}; -var $elm$core$String$fromFloat = _String_fromNumber; -var $rtfeldman$elm_css$Css$Internal$lengthConverter = F3( - function (units, unitLabel, numericValue) { - return { - absoluteLength: $rtfeldman$elm_css$Css$Structure$Compatible, - calc: $rtfeldman$elm_css$Css$Structure$Compatible, - flexBasis: $rtfeldman$elm_css$Css$Structure$Compatible, - fontSize: $rtfeldman$elm_css$Css$Structure$Compatible, - length: $rtfeldman$elm_css$Css$Structure$Compatible, - lengthOrAuto: $rtfeldman$elm_css$Css$Structure$Compatible, - lengthOrAutoOrCoverOrContain: $rtfeldman$elm_css$Css$Structure$Compatible, - lengthOrMinMaxDimension: $rtfeldman$elm_css$Css$Structure$Compatible, - lengthOrNone: $rtfeldman$elm_css$Css$Structure$Compatible, - lengthOrNoneOrMinMaxDimension: $rtfeldman$elm_css$Css$Structure$Compatible, - lengthOrNumber: $rtfeldman$elm_css$Css$Structure$Compatible, - lengthOrNumberOrAutoOrNoneOrContent: $rtfeldman$elm_css$Css$Structure$Compatible, - numericValue: numericValue, - textIndent: $rtfeldman$elm_css$Css$Structure$Compatible, - unitLabel: unitLabel, - units: units, - value: _Utils_ap( - $elm$core$String$fromFloat(numericValue), - unitLabel) - }; - }); -var $rtfeldman$elm_css$Css$px = A2($rtfeldman$elm_css$Css$Internal$lengthConverter, $rtfeldman$elm_css$Css$PxUnits, 'px'); -var $rtfeldman$elm_css$Html$Styled$styled = F4( - function (fn, styles, attrs, children) { - return A2( - fn, - A2( - $elm$core$List$cons, - $rtfeldman$elm_css$Html$Styled$Internal$css(styles), - attrs), - children); - }); -var $author$project$Styles$Theme = F7( - function (primary, secondary, bad, fg, bg, fgLight, bgLight) { - return {bad: bad, bg: bg, bgLight: bgLight, fg: fg, fgLight: fgLight, primary: primary, secondary: secondary}; - }); -var $rtfeldman$elm_css$Css$withPrecedingHash = function (str) { - return A2($elm$core$String$startsWith, '#', str) ? str : A2( - $elm$core$String$cons, - _Utils_chr('#'), - str); -}; -var $rtfeldman$elm_css$Css$erroneousHex = function (str) { - return { - alpha: 1, - blue: 0, - color: $rtfeldman$elm_css$Css$Structure$Compatible, - green: 0, - red: 0, - value: $rtfeldman$elm_css$Css$withPrecedingHash(str) - }; -}; -var $elm$core$String$fromChar = function (_char) { - return A2($elm$core$String$cons, _char, ''); -}; -var $elm$core$Basics$pow = _Basics_pow; -var $rtfeldman$elm_hex$Hex$fromStringHelp = F3( - function (position, chars, accumulated) { - fromStringHelp: - while (true) { - if (!chars.b) { - return $elm$core$Result$Ok(accumulated); - } else { - var _char = chars.a; - var rest = chars.b; - switch (_char.valueOf()) { - case '0': - var $temp$position = position - 1, - $temp$chars = rest, - $temp$accumulated = accumulated; - position = $temp$position; - chars = $temp$chars; - accumulated = $temp$accumulated; - continue fromStringHelp; - case '1': - var $temp$position = position - 1, - $temp$chars = rest, - $temp$accumulated = accumulated + A2($elm$core$Basics$pow, 16, position); - position = $temp$position; - chars = $temp$chars; - accumulated = $temp$accumulated; - continue fromStringHelp; - case '2': - var $temp$position = position - 1, - $temp$chars = rest, - $temp$accumulated = accumulated + (2 * A2($elm$core$Basics$pow, 16, position)); - position = $temp$position; - chars = $temp$chars; - accumulated = $temp$accumulated; - continue fromStringHelp; - case '3': - var $temp$position = position - 1, - $temp$chars = rest, - $temp$accumulated = accumulated + (3 * A2($elm$core$Basics$pow, 16, position)); - position = $temp$position; - chars = $temp$chars; - accumulated = $temp$accumulated; - continue fromStringHelp; - case '4': - var $temp$position = position - 1, - $temp$chars = rest, - $temp$accumulated = accumulated + (4 * A2($elm$core$Basics$pow, 16, position)); - position = $temp$position; - chars = $temp$chars; - accumulated = $temp$accumulated; - continue fromStringHelp; - case '5': - var $temp$position = position - 1, - $temp$chars = rest, - $temp$accumulated = accumulated + (5 * A2($elm$core$Basics$pow, 16, position)); - position = $temp$position; - chars = $temp$chars; - accumulated = $temp$accumulated; - continue fromStringHelp; - case '6': - var $temp$position = position - 1, - $temp$chars = rest, - $temp$accumulated = accumulated + (6 * A2($elm$core$Basics$pow, 16, position)); - position = $temp$position; - chars = $temp$chars; - accumulated = $temp$accumulated; - continue fromStringHelp; - case '7': - var $temp$position = position - 1, - $temp$chars = rest, - $temp$accumulated = accumulated + (7 * A2($elm$core$Basics$pow, 16, position)); - position = $temp$position; - chars = $temp$chars; - accumulated = $temp$accumulated; - continue fromStringHelp; - case '8': - var $temp$position = position - 1, - $temp$chars = rest, - $temp$accumulated = accumulated + (8 * A2($elm$core$Basics$pow, 16, position)); - position = $temp$position; - chars = $temp$chars; - accumulated = $temp$accumulated; - continue fromStringHelp; - case '9': - var $temp$position = position - 1, - $temp$chars = rest, - $temp$accumulated = accumulated + (9 * A2($elm$core$Basics$pow, 16, position)); - position = $temp$position; - chars = $temp$chars; - accumulated = $temp$accumulated; - continue fromStringHelp; - case 'a': - var $temp$position = position - 1, - $temp$chars = rest, - $temp$accumulated = accumulated + (10 * A2($elm$core$Basics$pow, 16, position)); - position = $temp$position; - chars = $temp$chars; - accumulated = $temp$accumulated; - continue fromStringHelp; - case 'b': - var $temp$position = position - 1, - $temp$chars = rest, - $temp$accumulated = accumulated + (11 * A2($elm$core$Basics$pow, 16, position)); - position = $temp$position; - chars = $temp$chars; - accumulated = $temp$accumulated; - continue fromStringHelp; - case 'c': - var $temp$position = position - 1, - $temp$chars = rest, - $temp$accumulated = accumulated + (12 * A2($elm$core$Basics$pow, 16, position)); - position = $temp$position; - chars = $temp$chars; - accumulated = $temp$accumulated; - continue fromStringHelp; - case 'd': - var $temp$position = position - 1, - $temp$chars = rest, - $temp$accumulated = accumulated + (13 * A2($elm$core$Basics$pow, 16, position)); - position = $temp$position; - chars = $temp$chars; - accumulated = $temp$accumulated; - continue fromStringHelp; - case 'e': - var $temp$position = position - 1, - $temp$chars = rest, - $temp$accumulated = accumulated + (14 * A2($elm$core$Basics$pow, 16, position)); - position = $temp$position; - chars = $temp$chars; - accumulated = $temp$accumulated; - continue fromStringHelp; - case 'f': - var $temp$position = position - 1, - $temp$chars = rest, - $temp$accumulated = accumulated + (15 * A2($elm$core$Basics$pow, 16, position)); - position = $temp$position; - chars = $temp$chars; - accumulated = $temp$accumulated; - continue fromStringHelp; - default: - var nonHex = _char; - return $elm$core$Result$Err( - $elm$core$String$fromChar(nonHex) + ' is not a valid hexadecimal character.'); - } - } - } - }); -var $elm$core$Result$map = F2( - function (func, ra) { - if (ra.$ === 'Ok') { - var a = ra.a; - return $elm$core$Result$Ok( - func(a)); - } else { - var e = ra.a; - return $elm$core$Result$Err(e); - } - }); -var $rtfeldman$elm_hex$Hex$fromString = function (str) { - if ($elm$core$String$isEmpty(str)) { - return $elm$core$Result$Err('Empty strings are not valid hexadecimal strings.'); - } else { - var result = function () { - if (A2($elm$core$String$startsWith, '-', str)) { - var list = A2( - $elm$core$Maybe$withDefault, - _List_Nil, - $elm$core$List$tail( - $elm$core$String$toList(str))); - return A2( - $elm$core$Result$map, - $elm$core$Basics$negate, - A3( - $rtfeldman$elm_hex$Hex$fromStringHelp, - $elm$core$List$length(list) - 1, - list, - 0)); - } else { - return A3( - $rtfeldman$elm_hex$Hex$fromStringHelp, - $elm$core$String$length(str) - 1, - $elm$core$String$toList(str), - 0); - } - }(); - var formatError = function (err) { - return A2( - $elm$core$String$join, - ' ', - _List_fromArray( - ['\"' + (str + '\"'), 'is not a valid hexadecimal string because', err])); - }; - return A2($elm$core$Result$mapError, formatError, result); - } -}; -var $elm$core$String$toLower = _String_toLower; -var $rtfeldman$elm_css$Css$validHex = F5( - function (str, _v0, _v1, _v2, _v3) { - var r1 = _v0.a; - var r2 = _v0.b; - var g1 = _v1.a; - var g2 = _v1.b; - var b1 = _v2.a; - var b2 = _v2.b; - var a1 = _v3.a; - var a2 = _v3.b; - var toResult = A2( - $elm$core$Basics$composeR, - $elm$core$String$fromList, - A2($elm$core$Basics$composeR, $elm$core$String$toLower, $rtfeldman$elm_hex$Hex$fromString)); - var results = _Utils_Tuple2( - _Utils_Tuple2( - toResult( - _List_fromArray( - [r1, r2])), - toResult( - _List_fromArray( - [g1, g2]))), - _Utils_Tuple2( - toResult( - _List_fromArray( - [b1, b2])), - toResult( - _List_fromArray( - [a1, a2])))); - if ((((results.a.a.$ === 'Ok') && (results.a.b.$ === 'Ok')) && (results.b.a.$ === 'Ok')) && (results.b.b.$ === 'Ok')) { - var _v5 = results.a; - var red = _v5.a.a; - var green = _v5.b.a; - var _v6 = results.b; - var blue = _v6.a.a; - var alpha = _v6.b.a; - return { - alpha: alpha / 255, - blue: blue, - color: $rtfeldman$elm_css$Css$Structure$Compatible, - green: green, - red: red, - value: $rtfeldman$elm_css$Css$withPrecedingHash(str) - }; - } else { - return $rtfeldman$elm_css$Css$erroneousHex(str); - } - }); -var $rtfeldman$elm_css$Css$hex = function (str) { - var withoutHash = A2($elm$core$String$startsWith, '#', str) ? A2($elm$core$String$dropLeft, 1, str) : str; - var _v0 = $elm$core$String$toList(withoutHash); - _v0$4: - while (true) { - if ((_v0.b && _v0.b.b) && _v0.b.b.b) { - if (!_v0.b.b.b.b) { - var r = _v0.a; - var _v1 = _v0.b; - var g = _v1.a; - var _v2 = _v1.b; - var b = _v2.a; - return A5( - $rtfeldman$elm_css$Css$validHex, - str, - _Utils_Tuple2(r, r), - _Utils_Tuple2(g, g), - _Utils_Tuple2(b, b), - _Utils_Tuple2( - _Utils_chr('f'), - _Utils_chr('f'))); - } else { - if (!_v0.b.b.b.b.b) { - var r = _v0.a; - var _v3 = _v0.b; - var g = _v3.a; - var _v4 = _v3.b; - var b = _v4.a; - var _v5 = _v4.b; - var a = _v5.a; - return A5( - $rtfeldman$elm_css$Css$validHex, - str, - _Utils_Tuple2(r, r), - _Utils_Tuple2(g, g), - _Utils_Tuple2(b, b), - _Utils_Tuple2(a, a)); - } else { - if (_v0.b.b.b.b.b.b) { - if (!_v0.b.b.b.b.b.b.b) { - var r1 = _v0.a; - var _v6 = _v0.b; - var r2 = _v6.a; - var _v7 = _v6.b; - var g1 = _v7.a; - var _v8 = _v7.b; - var g2 = _v8.a; - var _v9 = _v8.b; - var b1 = _v9.a; - var _v10 = _v9.b; - var b2 = _v10.a; - return A5( - $rtfeldman$elm_css$Css$validHex, - str, - _Utils_Tuple2(r1, r2), - _Utils_Tuple2(g1, g2), - _Utils_Tuple2(b1, b2), - _Utils_Tuple2( - _Utils_chr('f'), - _Utils_chr('f'))); - } else { - if (_v0.b.b.b.b.b.b.b.b && (!_v0.b.b.b.b.b.b.b.b.b)) { - var r1 = _v0.a; - var _v11 = _v0.b; - var r2 = _v11.a; - var _v12 = _v11.b; - var g1 = _v12.a; - var _v13 = _v12.b; - var g2 = _v13.a; - var _v14 = _v13.b; - var b1 = _v14.a; - var _v15 = _v14.b; - var b2 = _v15.a; - var _v16 = _v15.b; - var a1 = _v16.a; - var _v17 = _v16.b; - var a2 = _v17.a; - return A5( - $rtfeldman$elm_css$Css$validHex, - str, - _Utils_Tuple2(r1, r2), - _Utils_Tuple2(g1, g2), - _Utils_Tuple2(b1, b2), - _Utils_Tuple2(a1, a2)); - } else { - break _v0$4; - } - } - } else { - break _v0$4; - } - } - } - } else { - break _v0$4; - } - } - return $rtfeldman$elm_css$Css$erroneousHex(str); -}; -var $author$project$Styles$theme = A7( - $author$project$Styles$Theme, - $rtfeldman$elm_css$Css$hex('fedbd0'), - $rtfeldman$elm_css$Css$hex('feeae6'), - $rtfeldman$elm_css$Css$hex('ff0000'), - $rtfeldman$elm_css$Css$hex('442c2e'), - $rtfeldman$elm_css$Css$hex('ffffff'), - $rtfeldman$elm_css$Css$hex('442c2e'), - $rtfeldman$elm_css$Css$hex('feeae6')); -var $author$project$Styles$furbyButton = A2( - $rtfeldman$elm_css$Html$Styled$styled, - $rtfeldman$elm_css$Html$Styled$button, - _List_fromArray( - [ - $rtfeldman$elm_css$Css$margin( - $rtfeldman$elm_css$Css$px(12)), - $rtfeldman$elm_css$Css$color($author$project$Styles$theme.fg), - $rtfeldman$elm_css$Css$height( - $rtfeldman$elm_css$Css$px(40)), - $rtfeldman$elm_css$Css$border( - $rtfeldman$elm_css$Css$px(0)), - $rtfeldman$elm_css$Css$borderRadius( - $rtfeldman$elm_css$Css$px(2)), - A2( - $rtfeldman$elm_css$Css$padding2, - $rtfeldman$elm_css$Css$px(6), - $rtfeldman$elm_css$Css$px(12)), - $rtfeldman$elm_css$Css$backgroundColor($author$project$Styles$theme.primary), - $rtfeldman$elm_css$Css$hover( - _List_fromArray( - [ - $rtfeldman$elm_css$Css$backgroundColor($author$project$Styles$theme.secondary), - $rtfeldman$elm_css$Css$color($author$project$Styles$theme.fg), - $rtfeldman$elm_css$Css$margin( - $rtfeldman$elm_css$Css$px(12)) - ])) - ])); -var $rtfeldman$elm_css$Css$none = {backgroundImage: $rtfeldman$elm_css$Css$Structure$Compatible, blockAxisOverflow: $rtfeldman$elm_css$Css$Structure$Compatible, borderStyle: $rtfeldman$elm_css$Css$Structure$Compatible, cursor: $rtfeldman$elm_css$Css$Structure$Compatible, display: $rtfeldman$elm_css$Css$Structure$Compatible, hoverCapability: $rtfeldman$elm_css$Css$Structure$Compatible, inlineAxisOverflow: $rtfeldman$elm_css$Css$Structure$Compatible, keyframes: $rtfeldman$elm_css$Css$Structure$Compatible, lengthOrNone: $rtfeldman$elm_css$Css$Structure$Compatible, lengthOrNoneOrMinMaxDimension: $rtfeldman$elm_css$Css$Structure$Compatible, lengthOrNumberOrAutoOrNoneOrContent: $rtfeldman$elm_css$Css$Structure$Compatible, listStyleType: $rtfeldman$elm_css$Css$Structure$Compatible, listStyleTypeOrPositionOrImage: $rtfeldman$elm_css$Css$Structure$Compatible, none: $rtfeldman$elm_css$Css$Structure$Compatible, outline: $rtfeldman$elm_css$Css$Structure$Compatible, pointerDevice: $rtfeldman$elm_css$Css$Structure$Compatible, pointerEvents: $rtfeldman$elm_css$Css$Structure$Compatible, resize: $rtfeldman$elm_css$Css$Structure$Compatible, scriptingSupport: $rtfeldman$elm_css$Css$Structure$Compatible, textDecorationLine: $rtfeldman$elm_css$Css$Structure$Compatible, textTransform: $rtfeldman$elm_css$Css$Structure$Compatible, touchAction: $rtfeldman$elm_css$Css$Structure$Compatible, transform: $rtfeldman$elm_css$Css$Structure$Compatible, updateFrequency: $rtfeldman$elm_css$Css$Structure$Compatible, value: 'none'}; -var $rtfeldman$elm_css$Css$padding = $rtfeldman$elm_css$Css$prop1('padding'); -var $rtfeldman$elm_css$Css$textDecoration = $rtfeldman$elm_css$Css$prop1('text-decoration'); -var $rtfeldman$elm_css$Css$underline = {textDecorationLine: $rtfeldman$elm_css$Css$Structure$Compatible, value: 'underline'}; -var $author$project$Styles$headerLink = A2( - $rtfeldman$elm_css$Html$Styled$styled, - $rtfeldman$elm_css$Html$Styled$a, - _List_fromArray( - [ - $rtfeldman$elm_css$Css$color($author$project$Styles$theme.fgLight), - $rtfeldman$elm_css$Css$padding( - $rtfeldman$elm_css$Css$px(12)), - $rtfeldman$elm_css$Css$textDecoration($rtfeldman$elm_css$Css$none), - $rtfeldman$elm_css$Css$hover( - _List_fromArray( - [ - $rtfeldman$elm_css$Css$backgroundColor($author$project$Styles$theme.secondary), - $rtfeldman$elm_css$Css$textDecoration($rtfeldman$elm_css$Css$underline) - ])) - ])); -var $rtfeldman$elm_css$Css$inline = {display: $rtfeldman$elm_css$Css$Structure$Compatible, value: 'inline'}; -var $rtfeldman$elm_css$Css$left = $rtfeldman$elm_css$Css$prop1('left'); -var $rtfeldman$elm_css$Css$listStyle = $rtfeldman$elm_css$Css$prop1('list-style'); -var $elm$virtual_dom$VirtualDom$Normal = function (a) { - return {$: 'Normal', a: a}; -}; -var $elm$virtual_dom$VirtualDom$on = _VirtualDom_on; -var $rtfeldman$elm_css$VirtualDom$Styled$on = F2( - function (eventName, handler) { - return A3( - $rtfeldman$elm_css$VirtualDom$Styled$Attribute, - A2($elm$virtual_dom$VirtualDom$on, eventName, handler), - _List_Nil, - ''); - }); -var $rtfeldman$elm_css$Html$Styled$Events$on = F2( - function (event, decoder) { - return A2( - $rtfeldman$elm_css$VirtualDom$Styled$on, - event, - $elm$virtual_dom$VirtualDom$Normal(decoder)); - }); -var $rtfeldman$elm_css$Html$Styled$Events$onClick = function (msg) { - return A2( - $rtfeldman$elm_css$Html$Styled$Events$on, - 'click', - $elm$json$Json$Decode$succeed(msg)); -}; -var $rtfeldman$elm_css$Css$paddingBottom = $rtfeldman$elm_css$Css$prop1('padding-bottom'); -var $rtfeldman$elm_css$Css$paddingTop = $rtfeldman$elm_css$Css$prop1('padding-top'); -var $rtfeldman$elm_css$VirtualDom$Styled$text = function (str) { - return $rtfeldman$elm_css$VirtualDom$Styled$Unstyled( - $elm$virtual_dom$VirtualDom$text(str)); -}; -var $rtfeldman$elm_css$Html$Styled$text = $rtfeldman$elm_css$VirtualDom$Styled$text; -var $rtfeldman$elm_css$Css$Preprocess$ApplyStyles = function (a) { - return {$: 'ApplyStyles', a: a}; -}; -var $rtfeldman$elm_css$Css$Internal$property = F2( - function (key, value) { - return $rtfeldman$elm_css$Css$Preprocess$AppendProperty(key + (':' + value)); - }); -var $rtfeldman$elm_css$Css$Internal$getOverloadedProperty = F3( - function (functionName, desiredKey, style) { - getOverloadedProperty: - while (true) { - switch (style.$) { - case 'AppendProperty': - var str = style.a; - var key = A2( - $elm$core$Maybe$withDefault, - '', - $elm$core$List$head( - A2($elm$core$String$split, ':', str))); - return A2($rtfeldman$elm_css$Css$Internal$property, desiredKey, key); - case 'ExtendSelector': - var selector = style.a; - return A2($rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-selector')); - case 'NestSnippet': - var combinator = style.a; - return A2($rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-combinator')); - case 'WithPseudoElement': - var pseudoElement = style.a; - return A2($rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-pseudo-element setter')); - case 'WithMedia': - return A2($rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-media-query')); - case 'WithKeyframes': - return A2($rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-inapplicable-Style-for-keyframes')); - default: - if (!style.a.b) { - return A2($rtfeldman$elm_css$Css$Internal$property, desiredKey, 'elm-css-error-cannot-apply-' + (functionName + '-with-empty-Style')); - } else { - if (!style.a.b.b) { - var _v1 = style.a; - var only = _v1.a; - var $temp$functionName = functionName, - $temp$desiredKey = desiredKey, - $temp$style = only; - functionName = $temp$functionName; - desiredKey = $temp$desiredKey; - style = $temp$style; - continue getOverloadedProperty; - } else { - var _v2 = style.a; - var first = _v2.a; - var rest = _v2.b; - var $temp$functionName = functionName, - $temp$desiredKey = desiredKey, - $temp$style = $rtfeldman$elm_css$Css$Preprocess$ApplyStyles(rest); - functionName = $temp$functionName; - desiredKey = $temp$desiredKey; - style = $temp$style; - continue getOverloadedProperty; - } - } - } - } - }); -var $rtfeldman$elm_css$Css$Internal$IncompatibleUnits = {$: 'IncompatibleUnits'}; -var $rtfeldman$elm_css$Css$Internal$lengthForOverloadedProperty = A3($rtfeldman$elm_css$Css$Internal$lengthConverter, $rtfeldman$elm_css$Css$Internal$IncompatibleUnits, '', 0); -var $rtfeldman$elm_css$Css$textAlign = function (fn) { - return A3( - $rtfeldman$elm_css$Css$Internal$getOverloadedProperty, - 'textAlign', - 'text-align', - fn($rtfeldman$elm_css$Css$Internal$lengthForOverloadedProperty)); -}; -var $rtfeldman$elm_css$Html$Styled$ul = $rtfeldman$elm_css$Html$Styled$node('ul'); -var $author$project$Main$viewHeader = function (model) { - var links = _List_fromArray( - [ - _Utils_Tuple2('Catalog', '/catalog'), - _Utils_Tuple2('Cart', '/cart') - ]); - return A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $rtfeldman$elm_css$Css$padding( - $rtfeldman$elm_css$Css$px(40)), - $rtfeldman$elm_css$Css$paddingTop( - $rtfeldman$elm_css$Css$px(3)), - $rtfeldman$elm_css$Css$paddingBottom( - $rtfeldman$elm_css$Css$px(3)), - $rtfeldman$elm_css$Css$textAlign($rtfeldman$elm_css$Css$left), - $rtfeldman$elm_css$Css$backgroundColor($author$project$Styles$theme.secondary) - ])) - ]), - _List_fromArray( - [ - A2( - $rtfeldman$elm_css$Html$Styled$ul, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $rtfeldman$elm_css$Css$listStyle($rtfeldman$elm_css$Css$none), - $rtfeldman$elm_css$Css$padding( - $rtfeldman$elm_css$Css$px(0)), - $rtfeldman$elm_css$Css$margin( - $rtfeldman$elm_css$Css$px(24)) - ])) - ]), - _Utils_ap( - A2( - $elm$core$List$map, - function (_v0) { - var name = _v0.a; - var loc = _v0.b; - return A2( - $rtfeldman$elm_css$Html$Styled$li, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $rtfeldman$elm_css$Css$display($rtfeldman$elm_css$Css$inline) - ])) - ]), - _List_fromArray( - [ - A2( - $author$project$Styles$headerLink, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$href(loc) - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text(name) - ])) - ])); - }, - links), - _List_fromArray( - [ - (!_Utils_eq(model.loginModel.loginStatus, $author$project$Login$LoggedIn)) ? A2( - $rtfeldman$elm_css$Html$Styled$li, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $rtfeldman$elm_css$Css$display($rtfeldman$elm_css$Css$inline) - ])) - ]), - _List_fromArray( - [ - A2( - $author$project$Styles$headerLink, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$href('/login') - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text('Login') - ])) - ])) : A2( - $author$project$Styles$furbyButton, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Events$onClick($author$project$Main$LogoutPressed) - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text('Logout') - ])) - ]))) - ])); -}; -var $author$project$Main$pageWrap = F2( - function (model, page) { - return $elm$core$List$singleton( - $rtfeldman$elm_css$Html$Styled$toUnstyled( - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - _List_fromArray( - [ - $author$project$Main$viewHeader(model), - page - ])))); - }); -var $author$project$Cart$calculateTotal = function (model) { - var items = model.products; - return A3( - $elm$core$List$foldl, - $elm$core$Basics$add, - 0, - A2( - $elm$core$List$map, - function (i) { - return i.quantity * i.productItem.price; - }, - items)); -}; -var $author$project$Cart$AddToCartPressed = function (a) { - return {$: 'AddToCartPressed', a: a}; -}; -var $author$project$Cart$RemoveFromCart = function (a) { - return {$: 'RemoveFromCart', a: a}; -}; -var $author$project$Cart$viewCartItemListing = function (listing) { - return A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text(listing.productItem.name), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text( - A2($elm$core$Maybe$withDefault, '', listing.productItem.kind)) - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text( - A2($elm$core$Maybe$withDefault, '', listing.productItem.description)) - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text( - $elm$core$String$fromFloat(listing.productItem.price)) - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text( - $elm$core$String$fromInt(listing.quantity)) - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - _List_fromArray( - [ - A2( - $rtfeldman$elm_css$Html$Styled$button, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Events$onClick( - $author$project$Cart$AddToCartPressed(listing.productItem.id)) - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text('Add') - ])) - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - _List_fromArray( - [ - A2( - $rtfeldman$elm_css$Html$Styled$button, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Events$onClick( - $author$project$Cart$RemoveFromCart(listing.productItem.id)) - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text('Remove') - ])) - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - _List_fromArray( - [ - A2( - $rtfeldman$elm_css$Html$Styled$a, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$href( - '/product/' + $elm$core$String$fromInt(listing.productItem.id)) - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text('View Product') - ])) - ])) - ])); -}; -var $author$project$Cart$viewStatus = function (s) { - switch (s.$) { - case 'Loading': - return 'Loading'; - case 'Loaded': - return 'Ready!'; - default: - return 'Not loaded ...'; - } -}; -var $author$project$Cart$view = function (model) { - var _v0 = model.pageStatus; - if (_v0.$ === 'Loading') { - return A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text( - $author$project$Cart$viewStatus($author$project$Cart$Loading)) - ])); - } else { - return A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - _List_fromArray( - [ - function () { - var cart = A2($elm$core$List$map, $author$project$Cart$viewCartItemListing, model.products); - return $elm$core$List$isEmpty(cart) ? $rtfeldman$elm_css$Html$Styled$text('No items in cart') : A2($rtfeldman$elm_css$Html$Styled$ul, _List_Nil, cart); - }(), - $rtfeldman$elm_css$Html$Styled$text( - $elm$core$String$fromFloat( - $author$project$Cart$calculateTotal(model))), - A2( - $rtfeldman$elm_css$Html$Styled$a, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$href('/checkout') - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text('Checkout') - ])) - ])); - } -}; -var $rtfeldman$elm_css$Css$fontSize = $rtfeldman$elm_css$Css$prop1('font-size'); -var $author$project$Styles$bigHeading = $rtfeldman$elm_css$Css$fontSize( - $rtfeldman$elm_css$Css$px(24)); -var $elm$core$Basics$ge = _Utils_ge; -var $author$project$Utils$between = F2( - function (_v0, v) { - var l = _v0.a; - var u = _v0.b; - return (_Utils_cmp(v, l) > -1) && (_Utils_cmp(v, u) < 1); - }); -var $author$project$Catalog$filterProducts = function (model) { - return A2( - $elm$core$List$filter, - function (p) { - return A2( - $author$project$Utils$between, - model.filters.rating, - A2($elm$core$Maybe$withDefault, 5.0, p.averageRating)); - }, - A2( - $elm$core$List$filter, - A2( - $elm$core$Basics$composeL, - $author$project$Utils$between(model.filters.price), - function ($) { - return $.price; - }), - model.products)); -}; -var $rtfeldman$elm_css$Css$float = function (fn) { - return A3( - $rtfeldman$elm_css$Css$Internal$getOverloadedProperty, - 'float', - 'float', - fn($rtfeldman$elm_css$Css$Internal$lengthForOverloadedProperty)); -}; -var $rtfeldman$elm_css$Css$PercentageUnits = {$: 'PercentageUnits'}; -var $rtfeldman$elm_css$Css$pct = A2($rtfeldman$elm_css$Css$Internal$lengthConverter, $rtfeldman$elm_css$Css$PercentageUnits, '%'); -var $author$project$Catalog$ChangePriceLower = function (a) { - return {$: 'ChangePriceLower', a: a}; -}; -var $author$project$Catalog$ChangePriceUpper = function (a) { - return {$: 'ChangePriceUpper', a: a}; -}; -var $author$project$Catalog$ChangeRatingLower = function (a) { - return {$: 'ChangeRatingLower', a: a}; -}; -var $author$project$Catalog$ChangeRatingUpper = function (a) { - return {$: 'ChangeRatingUpper', a: a}; -}; -var $rtfeldman$elm_css$Css$prop3 = F4( - function (key, argA, argB, argC) { - return A2( - $rtfeldman$elm_css$Css$property, - key, - A2( - $elm$core$String$join, - ' ', - _List_fromArray( - [argA.value, argB.value, argC.value]))); - }); -var $rtfeldman$elm_css$Css$borderBottom3 = $rtfeldman$elm_css$Css$prop3('border-bottom'); -var $rtfeldman$elm_css$Css$right = $rtfeldman$elm_css$Css$prop1('right'); -var $rtfeldman$elm_css$Html$Styled$select = $rtfeldman$elm_css$Html$Styled$node('select'); -var $rtfeldman$elm_css$Css$solid = {borderStyle: $rtfeldman$elm_css$Css$Structure$Compatible, textDecorationStyle: $rtfeldman$elm_css$Css$Structure$Compatible, value: 'solid'}; -var $author$project$Styles$furbySelect = A2( - $rtfeldman$elm_css$Html$Styled$styled, - $rtfeldman$elm_css$Html$Styled$select, - _List_fromArray( - [ - $rtfeldman$elm_css$Css$margin( - $rtfeldman$elm_css$Css$px(6)), - $rtfeldman$elm_css$Css$color($author$project$Styles$theme.fg), - $rtfeldman$elm_css$Css$border( - $rtfeldman$elm_css$Css$px(0)), - A3( - $rtfeldman$elm_css$Css$borderBottom3, - $rtfeldman$elm_css$Css$px(2), - $rtfeldman$elm_css$Css$solid, - $author$project$Styles$theme.bgLight), - $rtfeldman$elm_css$Css$textAlign($rtfeldman$elm_css$Css$right), - A2( - $rtfeldman$elm_css$Css$padding2, - $rtfeldman$elm_css$Css$px(3), - $rtfeldman$elm_css$Css$px(3)), - $rtfeldman$elm_css$Css$backgroundColor($author$project$Styles$theme.bg), - $rtfeldman$elm_css$Css$hover( - _List_fromArray( - [ - A3( - $rtfeldman$elm_css$Css$borderBottom3, - $rtfeldman$elm_css$Css$px(2), - $rtfeldman$elm_css$Css$solid, - $author$project$Styles$theme.fg) - ])) - ])); -var $rtfeldman$elm_css$Html$Styled$Events$alwaysStop = function (x) { - return _Utils_Tuple2(x, true); -}; -var $elm$virtual_dom$VirtualDom$MayStopPropagation = function (a) { - return {$: 'MayStopPropagation', a: a}; -}; -var $rtfeldman$elm_css$Html$Styled$Events$stopPropagationOn = F2( - function (event, decoder) { - return A2( - $rtfeldman$elm_css$VirtualDom$Styled$on, - event, - $elm$virtual_dom$VirtualDom$MayStopPropagation(decoder)); - }); -var $elm$json$Json$Decode$at = F2( - function (fields, decoder) { - return A3($elm$core$List$foldr, $elm$json$Json$Decode$field, decoder, fields); - }); -var $rtfeldman$elm_css$Html$Styled$Events$targetValue = A2( - $elm$json$Json$Decode$at, - _List_fromArray( - ['target', 'value']), - $elm$json$Json$Decode$string); -var $rtfeldman$elm_css$Html$Styled$Events$onInput = function (tagger) { - return A2( - $rtfeldman$elm_css$Html$Styled$Events$stopPropagationOn, - 'input', - A2( - $elm$json$Json$Decode$map, - $rtfeldman$elm_css$Html$Styled$Events$alwaysStop, - A2($elm$json$Json$Decode$map, tagger, $rtfeldman$elm_css$Html$Styled$Events$targetValue))); -}; -var $rtfeldman$elm_css$Html$Styled$option = $rtfeldman$elm_css$Html$Styled$node('option'); -var $author$project$Utils$range = F3( - function (start, stop, step) { - return (_Utils_cmp(start, stop) > -1) ? _List_Nil : A2( - $elm$core$List$cons, - start, - A3($author$project$Utils$range, start + step, stop, step)); - }); -var $elm$json$Json$Encode$bool = _Json_wrap; -var $rtfeldman$elm_css$Html$Styled$Attributes$boolProperty = F2( - function (key, bool) { - return A2( - $rtfeldman$elm_css$VirtualDom$Styled$property, - key, - $elm$json$Json$Encode$bool(bool)); - }); -var $rtfeldman$elm_css$Html$Styled$Attributes$selected = $rtfeldman$elm_css$Html$Styled$Attributes$boolProperty('selected'); -var $elm$virtual_dom$VirtualDom$style = _VirtualDom_style; -var $rtfeldman$elm_css$VirtualDom$Styled$style = F2( - function (key, val) { - return A3( - $rtfeldman$elm_css$VirtualDom$Styled$Attribute, - A2($elm$virtual_dom$VirtualDom$style, key, val), - _List_Nil, - ''); - }); -var $rtfeldman$elm_css$Html$Styled$Attributes$style = $rtfeldman$elm_css$VirtualDom$Styled$style; -var $elm$core$String$toFloat = _String_toFloat; -var $author$project$Catalog$viewFilters = function (model) { - var viewRange = F2( - function (_default, scale) { - return A2( - $elm$core$List$map, - function (i) { - return A2( - $rtfeldman$elm_css$Html$Styled$option, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$selected( - _Utils_eq(i, _default)) - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text( - $elm$core$String$fromInt(i)) - ])); - }, - scale); - }); - var ratingRange = A3($author$project$Utils$range, 1, 6, 1); - var priceRange = A3($author$project$Utils$range, 0, 55000, 5000); - var inp = A2( - $elm$core$Basics$composeL, - $elm$core$Maybe$withDefault(0), - $elm$core$String$toFloat); - return A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - _List_fromArray( - [ - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $author$project$Styles$bigHeading, - $rtfeldman$elm_css$Css$paddingBottom( - $rtfeldman$elm_css$Css$px(12)) - ])) - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text('Filters') - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - _List_fromArray( - [ - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text('Price') - ])), - A2( - $author$project$Styles$furbySelect, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Events$onInput( - A2($elm$core$Basics$composeL, $author$project$Catalog$ChangePriceLower, inp)), - A2($rtfeldman$elm_css$Html$Styled$Attributes$style, 'appearance', 'none') - ]), - A2(viewRange, 0, priceRange)), - $rtfeldman$elm_css$Html$Styled$text('to'), - A2( - $author$project$Styles$furbySelect, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Events$onInput( - A2($elm$core$Basics$composeL, $author$project$Catalog$ChangePriceUpper, inp)), - A2($rtfeldman$elm_css$Html$Styled$Attributes$style, 'appearance', 'none') - ]), - A2(viewRange, 50000, priceRange)) - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - _List_fromArray( - [ - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text('Rating') - ])), - A2( - $author$project$Styles$furbySelect, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Events$onInput( - A2($elm$core$Basics$composeL, $author$project$Catalog$ChangeRatingLower, inp)), - A2($rtfeldman$elm_css$Html$Styled$Attributes$style, 'appearance', 'none') - ]), - A2(viewRange, 1, ratingRange)), - $rtfeldman$elm_css$Html$Styled$text('to'), - A2( - $author$project$Styles$furbySelect, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Events$onInput( - A2($elm$core$Basics$composeL, $author$project$Catalog$ChangeRatingUpper, inp)), - A2($rtfeldman$elm_css$Html$Styled$Attributes$style, 'appearance', 'none') - ]), - A2(viewRange, 5, ratingRange)) - ])) - ])); -}; -var $elm$virtual_dom$VirtualDom$attribute = F2( - function (key, value) { - return A2( - _VirtualDom_attribute, - _VirtualDom_noOnOrFormAction(key), - _VirtualDom_noJavaScriptOrHtmlUri(value)); - }); -var $rtfeldman$elm_css$VirtualDom$Styled$attribute = F2( - function (key, value) { - return A3( - $rtfeldman$elm_css$VirtualDom$Styled$Attribute, - A2($elm$virtual_dom$VirtualDom$attribute, key, value), - _List_Nil, - ''); - }); -var $rtfeldman$elm_css$Html$Styled$Attributes$attribute = $rtfeldman$elm_css$VirtualDom$Styled$attribute; -var $author$project$Utils$arIosSrc = function (src) { - return A2($rtfeldman$elm_css$Html$Styled$Attributes$attribute, 'ios-src', src); -}; -var $author$project$Utils$arModes = function (mode) { - return A2($rtfeldman$elm_css$Html$Styled$Attributes$attribute, 'ar-modes', mode); -}; -var $author$project$Utils$arSrc = function (src) { - return A2($rtfeldman$elm_css$Html$Styled$Attributes$attribute, 'src', src); -}; -var $author$project$Utils$autoRotate = A2($rtfeldman$elm_css$Html$Styled$Attributes$attribute, 'auto-rotate', ''); -var $rtfeldman$elm_css$Css$bold = {fontWeight: $rtfeldman$elm_css$Css$Structure$Compatible, value: 'bold'}; -var $rtfeldman$elm_css$Css$border3 = $rtfeldman$elm_css$Css$prop3('border'); -var $author$project$Utils$cameraControls = A2($rtfeldman$elm_css$Html$Styled$Attributes$attribute, 'camera-controls', ''); -var $author$project$Styles$cardPrimaryText = $rtfeldman$elm_css$Css$fontSize( - $rtfeldman$elm_css$Css$px(18)); -var $rtfeldman$elm_css$Css$batch = $rtfeldman$elm_css$Css$Preprocess$ApplyStyles; -var $author$project$Styles$cardSecondaryText = $rtfeldman$elm_css$Css$batch( - _List_fromArray( - [ - $rtfeldman$elm_css$Css$color($author$project$Styles$theme.fgLight), - $rtfeldman$elm_css$Css$fontSize( - $rtfeldman$elm_css$Css$px(12)) - ])); -var $author$project$Styles$cardSupportingText = $rtfeldman$elm_css$Css$fontSize( - $rtfeldman$elm_css$Css$px(16)); -var $rtfeldman$elm_css$Css$fontVariant = $rtfeldman$elm_css$Css$prop1('font-variant'); -var $rtfeldman$elm_css$Css$fontWeight = function (_v0) { - var value = _v0.value; - return A2($rtfeldman$elm_css$Css$property, 'font-weight', value); -}; -var $author$project$Utils$loading = function (mode) { - return A2($rtfeldman$elm_css$Html$Styled$Attributes$attribute, 'loading', mode); -}; -var $rtfeldman$elm_css$Css$marginBottom = $rtfeldman$elm_css$Css$prop1('margin-bottom'); -var $rtfeldman$elm_css$Css$maxWidth = $rtfeldman$elm_css$Css$prop1('max-width'); -var $author$project$Utils$modelViewer = F2( - function (attributes, children) { - return A3($rtfeldman$elm_css$Html$Styled$node, 'model-viewer', attributes, children); - }); -var $rtfeldman$elm_css$Css$Structure$PseudoElement = function (a) { - return {$: 'PseudoElement', a: a}; -}; -var $rtfeldman$elm_css$Css$Preprocess$WithPseudoElement = F2( - function (a, b) { - return {$: 'WithPseudoElement', a: a, b: b}; - }); -var $rtfeldman$elm_css$Css$pseudoElement = function (element) { - return $rtfeldman$elm_css$Css$Preprocess$WithPseudoElement( - $rtfeldman$elm_css$Css$Structure$PseudoElement(element)); -}; -var $rtfeldman$elm_css$Css$before = $rtfeldman$elm_css$Css$pseudoElement('before'); -var $author$project$Styles$money = $rtfeldman$elm_css$Css$before( - _List_fromArray( - [ - A2($rtfeldman$elm_css$Css$property, 'content', '\"₹ \"') - ])); -var $rtfeldman$elm_css$Css$smallCaps = {fontVariant: $rtfeldman$elm_css$Css$Structure$Compatible, fontVariantCaps: $rtfeldman$elm_css$Css$Structure$Compatible, value: 'small-caps'}; -var $rtfeldman$elm_css$Css$width = $rtfeldman$elm_css$Css$prop1('width'); -var $author$project$Catalog$viewProduct = function (p) { - return A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $rtfeldman$elm_css$Css$marginBottom( - $rtfeldman$elm_css$Css$px(20)), - A3( - $rtfeldman$elm_css$Css$border3, - $rtfeldman$elm_css$Css$px(1), - $rtfeldman$elm_css$Css$solid, - $author$project$Styles$theme.primary), - $rtfeldman$elm_css$Css$borderRadius( - $rtfeldman$elm_css$Css$px(4)), - $rtfeldman$elm_css$Css$padding( - $rtfeldman$elm_css$Css$px(20)), - $rtfeldman$elm_css$Css$width( - $rtfeldman$elm_css$Css$pct(100)), - $rtfeldman$elm_css$Css$maxWidth( - $rtfeldman$elm_css$Css$px(650)) - ])) - ]), - _List_fromArray( - [ - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $rtfeldman$elm_css$Css$float($rtfeldman$elm_css$Css$left), - $rtfeldman$elm_css$Css$width( - $rtfeldman$elm_css$Css$pct(50)) - ])) - ]), - _List_fromArray( - [ - A2( - $author$project$Utils$modelViewer, - _List_fromArray( - [ - $author$project$Utils$cameraControls, - $author$project$Utils$autoRotate, - $author$project$Utils$arSrc(p.src), - $author$project$Utils$arIosSrc(p.iosSrc), - $author$project$Utils$loading('eager'), - $author$project$Utils$arModes('webxr') - ]), - _List_Nil) - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $rtfeldman$elm_css$Css$float($rtfeldman$elm_css$Css$left), - $rtfeldman$elm_css$Css$width( - $rtfeldman$elm_css$Css$pct(50)) - ])) - ]), - _List_fromArray( - [ - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $author$project$Styles$cardSecondaryText, - $rtfeldman$elm_css$Css$paddingBottom( - $rtfeldman$elm_css$Css$px(3)), - $rtfeldman$elm_css$Css$fontVariant($rtfeldman$elm_css$Css$smallCaps) - ])) - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text( - A2($elm$core$Maybe$withDefault, '', p.kind)) - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $author$project$Styles$cardPrimaryText, - $rtfeldman$elm_css$Css$paddingBottom( - $rtfeldman$elm_css$Css$px(3)) - ])) - ]), - _List_fromArray( - [ - A2( - $rtfeldman$elm_css$Html$Styled$a, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$href( - '/product/' + $elm$core$String$fromInt(p.id)) - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text(p.name) - ])) - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $author$project$Styles$cardSecondaryText, - $rtfeldman$elm_css$Css$paddingBottom( - $rtfeldman$elm_css$Css$px(12)) - ])) - ]), - _List_fromArray( - [ - function () { - var _v0 = p.averageRating; - if (_v0.$ === 'Just') { - var v = _v0.a; - return $rtfeldman$elm_css$Html$Styled$text( - 'Avg Rating: ' + $elm$core$String$fromFloat(v)); - } else { - return $rtfeldman$elm_css$Html$Styled$text('No Ratings'); - } - }() - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $author$project$Styles$cardSupportingText, - $rtfeldman$elm_css$Css$paddingBottom( - $rtfeldman$elm_css$Css$px(6)) - ])) - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text( - A2($elm$core$Maybe$withDefault, 'No description provided', p.description)) - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $rtfeldman$elm_css$Css$fontWeight($rtfeldman$elm_css$Css$bold), - $rtfeldman$elm_css$Css$fontSize( - $rtfeldman$elm_css$Css$px(14)), - $author$project$Styles$money - ])) - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text( - $elm$core$String$fromFloat(p.price)) - ])) - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - A2($rtfeldman$elm_css$Html$Styled$Attributes$style, 'clear', 'both') - ]), - _List_Nil) - ])); -}; -var $author$project$Catalog$viewStatus = function (s) { - switch (s.$) { - case 'Loading': - return 'Loading'; - case 'Loaded': - return 'Ready!'; - default: - return 'Not loaded ...'; - } -}; -var $author$project$Catalog$view = function (model) { - var _v0 = model.pageStatus; - if (_v0.$ === 'Loading') { - return A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text( - $author$project$Catalog$viewStatus($author$project$Catalog$Loading)) - ])); - } else { - return A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $rtfeldman$elm_css$Css$padding( - $rtfeldman$elm_css$Css$px(40)) - ])) - ]), - _List_fromArray( - [ - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $rtfeldman$elm_css$Css$float($rtfeldman$elm_css$Css$left), - $rtfeldman$elm_css$Css$width( - $rtfeldman$elm_css$Css$pct(20)) - ])) - ]), - _List_fromArray( - [ - $author$project$Catalog$viewFilters(model) - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $rtfeldman$elm_css$Css$float($rtfeldman$elm_css$Css$left), - $rtfeldman$elm_css$Css$width( - $rtfeldman$elm_css$Css$pct(80)) - ])) - ]), - _List_fromArray( - [ - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [$author$project$Styles$bigHeading])) - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text('Products') - ])), - A2( - $rtfeldman$elm_css$Html$Styled$ul, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $rtfeldman$elm_css$Css$padding( - $rtfeldman$elm_css$Css$px(0)), - $rtfeldman$elm_css$Css$listStyle($rtfeldman$elm_css$Css$none) - ])) - ]), - A2( - $elm$core$List$map, - $author$project$Catalog$viewProduct, - $author$project$Catalog$filterProducts(model))) - ])) - ])); - } -}; -var $author$project$Checkout$CheckoutPressed = {$: 'CheckoutPressed'}; -var $author$project$Checkout$PaymentModeSelected = function (a) { - return {$: 'PaymentModeSelected', a: a}; -}; -var $author$project$Checkout$viewStatus = function (s) { - switch (s.$) { - case 'Loading': - return 'Loading'; - case 'Loaded': - return 'Ready!'; - default: - return 'Not loaded ...'; - } -}; -var $author$project$Checkout$view = function (model) { - var _v0 = model.pageStatus; - if (_v0.$ === 'Loading') { - return A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text( - $author$project$Checkout$viewStatus($author$project$Checkout$Loading)) - ])); - } else { - return A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - _List_fromArray( - [ - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text( - $elm$core$String$fromFloat(model.cartTotal)) - ])), - A2( - $rtfeldman$elm_css$Html$Styled$select, - _List_Nil, - _List_fromArray( - [ - A2( - $rtfeldman$elm_css$Html$Styled$option, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Events$onInput($author$project$Checkout$PaymentModeSelected) - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text('Cash') - ])), - A2( - $rtfeldman$elm_css$Html$Styled$option, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Events$onInput($author$project$Checkout$PaymentModeSelected) - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text('Debit Card') - ])), - A2( - $rtfeldman$elm_css$Html$Styled$option, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Events$onInput($author$project$Checkout$PaymentModeSelected) - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text('Credit Card') - ])) - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - _List_fromArray( - [ - A2( - $rtfeldman$elm_css$Html$Styled$a, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$href('/cart') - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text('Cancel') - ])) - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - _List_fromArray( - [ - A2( - $rtfeldman$elm_css$Html$Styled$button, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Events$onClick($author$project$Checkout$CheckoutPressed) - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text('Confirm and Pay') - ])) - ])) - ])); - } -}; -var $author$project$Login$LoginPressed = {$: 'LoginPressed'}; -var $author$project$Login$PassEntered = function (a) { - return {$: 'PassEntered', a: a}; -}; -var $author$project$Login$UserEntered = function (a) { - return {$: 'UserEntered', a: a}; -}; -var $rtfeldman$elm_css$Css$auto = {alignItemsOrAuto: $rtfeldman$elm_css$Css$Structure$Compatible, cursor: $rtfeldman$elm_css$Css$Structure$Compatible, flexBasis: $rtfeldman$elm_css$Css$Structure$Compatible, intOrAuto: $rtfeldman$elm_css$Css$Structure$Compatible, justifyContentOrAuto: $rtfeldman$elm_css$Css$Structure$Compatible, lengthOrAuto: $rtfeldman$elm_css$Css$Structure$Compatible, lengthOrAutoOrCoverOrContain: $rtfeldman$elm_css$Css$Structure$Compatible, lengthOrNumberOrAutoOrNoneOrContent: $rtfeldman$elm_css$Css$Structure$Compatible, overflow: $rtfeldman$elm_css$Css$Structure$Compatible, pointerEvents: $rtfeldman$elm_css$Css$Structure$Compatible, tableLayout: $rtfeldman$elm_css$Css$Structure$Compatible, textRendering: $rtfeldman$elm_css$Css$Structure$Compatible, touchAction: $rtfeldman$elm_css$Css$Structure$Compatible, value: 'auto'}; -var $rtfeldman$elm_css$Css$center = $rtfeldman$elm_css$Css$prop1('center'); -var $author$project$Login$fieldPadding = $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $rtfeldman$elm_css$Css$paddingTop( - $rtfeldman$elm_css$Css$px(10)), - $rtfeldman$elm_css$Css$paddingBottom( - $rtfeldman$elm_css$Css$px(10)) - ])); -var $rtfeldman$elm_css$Css$marginTop = $rtfeldman$elm_css$Css$prop1('margin-top'); -var $rtfeldman$elm_css$Css$focus = $rtfeldman$elm_css$Css$pseudoClass('focus'); -var $rtfeldman$elm_css$Html$Styled$input = $rtfeldman$elm_css$Html$Styled$node('input'); -var $author$project$Styles$loginInputField = A2( - $rtfeldman$elm_css$Html$Styled$styled, - $rtfeldman$elm_css$Html$Styled$input, - _List_fromArray( - [ - $rtfeldman$elm_css$Css$width( - $rtfeldman$elm_css$Css$pct(100)), - $rtfeldman$elm_css$Css$color($author$project$Styles$theme.fg), - $rtfeldman$elm_css$Css$border( - $rtfeldman$elm_css$Css$px(0)), - A3( - $rtfeldman$elm_css$Css$borderBottom3, - $rtfeldman$elm_css$Css$px(1), - $rtfeldman$elm_css$Css$solid, - $author$project$Styles$theme.bgLight), - $rtfeldman$elm_css$Css$focus( - _List_fromArray( - [ - A3( - $rtfeldman$elm_css$Css$borderBottom3, - $rtfeldman$elm_css$Css$px(2), - $rtfeldman$elm_css$Css$solid, - $author$project$Styles$theme.fg) - ])) - ])); -var $rtfeldman$elm_css$Html$Styled$Attributes$placeholder = $rtfeldman$elm_css$Html$Styled$Attributes$stringProperty('placeholder'); -var $rtfeldman$elm_css$Html$Styled$Attributes$type_ = $rtfeldman$elm_css$Html$Styled$Attributes$stringProperty('type'); -var $rtfeldman$elm_css$Html$Styled$Attributes$value = $rtfeldman$elm_css$Html$Styled$Attributes$stringProperty('value'); -var $author$project$Login$viewInput = F4( - function (t, p, v, toMsg) { - return A2( - $author$project$Styles$loginInputField, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$type_(t), - $rtfeldman$elm_css$Html$Styled$Attributes$placeholder(p), - $rtfeldman$elm_css$Html$Styled$Attributes$value(v), - $rtfeldman$elm_css$Html$Styled$Events$onInput(toMsg) - ]), - _List_Nil); - }); -var $author$project$Login$viewStatus = function (ls) { - switch (ls.$) { - case 'NotLoggedIn': - return ''; - case 'InvalidLogin': - return 'Invalid Login'; - case 'LoggedIn': - return 'Logged in!'; - default: - return 'Logging In ...'; - } -}; -var $author$project$Login$view = function (model) { - return A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $rtfeldman$elm_css$Css$margin($rtfeldman$elm_css$Css$auto), - $rtfeldman$elm_css$Css$marginTop( - $rtfeldman$elm_css$Css$pct(10)), - $rtfeldman$elm_css$Css$padding( - $rtfeldman$elm_css$Css$px(20)), - $rtfeldman$elm_css$Css$width( - $rtfeldman$elm_css$Css$pct(30)) - ])) - ]), - _List_fromArray( - [ - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - $author$project$Login$fieldPadding, - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [$author$project$Styles$bigHeading])) - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text('Login') - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [$author$project$Login$fieldPadding]), - _List_fromArray( - [ - A4($author$project$Login$viewInput, 'text', 'Enter name here', model.username, $author$project$Login$UserEntered) - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [$author$project$Login$fieldPadding]), - _List_fromArray( - [ - A4($author$project$Login$viewInput, 'password', 'Password', model.password, $author$project$Login$PassEntered) - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $rtfeldman$elm_css$Css$textAlign($rtfeldman$elm_css$Css$center) - ])), - $author$project$Login$fieldPadding - ]), - _List_fromArray( - [ - A2( - $author$project$Styles$furbyButton, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Events$onClick($author$project$Login$LoginPressed) - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text('Login') - ])) - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $rtfeldman$elm_css$Css$textAlign($rtfeldman$elm_css$Css$center) - ])) - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text( - $author$project$Login$viewStatus(model.loginStatus)) - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [$author$project$Login$fieldPadding]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text('Don\'t have an account? '), - A2( - $rtfeldman$elm_css$Html$Styled$a, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$href('/signup') - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text('Register now!') - ])) - ])) - ])); -}; -var $author$project$Product$AddRatingComment = function (a) { - return {$: 'AddRatingComment', a: a}; -}; -var $author$project$Product$AddRatingPressed = {$: 'AddRatingPressed'}; -var $author$project$Product$viewInput = F4( - function (t, p, v, toMsg) { - return A2( - $rtfeldman$elm_css$Html$Styled$input, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$type_(t), - $rtfeldman$elm_css$Html$Styled$Attributes$placeholder(p), - $rtfeldman$elm_css$Html$Styled$Attributes$value(v), - $rtfeldman$elm_css$Html$Styled$Events$onInput(toMsg) - ]), - _List_Nil); - }); -var $author$project$Product$AddToCartPressed = {$: 'AddToCartPressed'}; -var $author$project$Product$viewProduct = function (p) { - return A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $rtfeldman$elm_css$Css$marginBottom( - $rtfeldman$elm_css$Css$px(20)), - $rtfeldman$elm_css$Css$padding( - $rtfeldman$elm_css$Css$px(20)), - $rtfeldman$elm_css$Css$width( - $rtfeldman$elm_css$Css$pct(100)) - ])) - ]), - _List_fromArray( - [ - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $rtfeldman$elm_css$Css$float($rtfeldman$elm_css$Css$left), - $rtfeldman$elm_css$Css$width( - $rtfeldman$elm_css$Css$pct(50)) - ])) - ]), - _List_fromArray( - [ - A2( - $author$project$Utils$modelViewer, - _List_fromArray( - [ - $author$project$Utils$cameraControls, - $author$project$Utils$autoRotate, - $author$project$Utils$arSrc(p.src), - $author$project$Utils$arIosSrc(p.iosSrc), - $author$project$Utils$loading('eager'), - $author$project$Utils$arModes('webxr') - ]), - _List_Nil) - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $rtfeldman$elm_css$Css$float($rtfeldman$elm_css$Css$left), - $rtfeldman$elm_css$Css$width( - $rtfeldman$elm_css$Css$pct(50)) - ])) - ]), - _List_fromArray( - [ - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $author$project$Styles$cardSecondaryText, - $rtfeldman$elm_css$Css$paddingBottom( - $rtfeldman$elm_css$Css$px(3)), - $rtfeldman$elm_css$Css$fontVariant($rtfeldman$elm_css$Css$smallCaps) - ])) - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text( - A2($elm$core$Maybe$withDefault, '', p.kind)) - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $author$project$Styles$cardPrimaryText, - $rtfeldman$elm_css$Css$paddingBottom( - $rtfeldman$elm_css$Css$px(12)) - ])) - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text(p.name) - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $author$project$Styles$cardSupportingText, - $rtfeldman$elm_css$Css$paddingBottom( - $rtfeldman$elm_css$Css$px(6)) - ])) - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text( - A2($elm$core$Maybe$withDefault, 'No description provided', p.description)) - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $rtfeldman$elm_css$Css$fontWeight($rtfeldman$elm_css$Css$bold), - $rtfeldman$elm_css$Css$fontSize( - $rtfeldman$elm_css$Css$px(14)), - $author$project$Styles$money - ])) - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text( - $elm$core$String$fromFloat(p.price)), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - _List_fromArray( - [ - A2( - $author$project$Styles$furbyButton, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Events$onClick($author$project$Product$AddToCartPressed) - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text('Add To Cart') - ])) - ])) - ])) - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - A2($rtfeldman$elm_css$Html$Styled$Attributes$style, 'clear', 'both') - ]), - _List_Nil) - ])); -}; -var $elm$core$List$repeatHelp = F3( - function (result, n, value) { - repeatHelp: - while (true) { - if (n <= 0) { - return result; - } else { - var $temp$result = A2($elm$core$List$cons, value, result), - $temp$n = n - 1, - $temp$value = value; - result = $temp$result; - n = $temp$n; - value = $temp$value; - continue repeatHelp; - } - } - }); -var $elm$core$List$repeat = F2( - function (n, value) { - return A3($elm$core$List$repeatHelp, _List_Nil, n, value); - }); -var $rtfeldman$elm_css$VirtualDom$Styled$unstyledNode = $rtfeldman$elm_css$VirtualDom$Styled$Unstyled; -var $rtfeldman$elm_css$Html$Styled$fromUnstyled = $rtfeldman$elm_css$VirtualDom$Styled$unstyledNode; -var $elm$svg$Svg$Attributes$class = _VirtualDom_attribute('class'); -var $elm$svg$Svg$Attributes$fill = _VirtualDom_attribute('fill'); -var $elm$svg$Svg$Attributes$height = _VirtualDom_attribute('height'); -var $elm$svg$Svg$map = $elm$virtual_dom$VirtualDom$map; -var $elm$svg$Svg$Attributes$stroke = _VirtualDom_attribute('stroke'); -var $elm$svg$Svg$Attributes$strokeLinecap = _VirtualDom_attribute('stroke-linecap'); -var $elm$svg$Svg$Attributes$strokeLinejoin = _VirtualDom_attribute('stroke-linejoin'); -var $elm$svg$Svg$Attributes$strokeWidth = _VirtualDom_attribute('stroke-width'); -var $elm$svg$Svg$trustedNode = _VirtualDom_nodeNS('http://www.w3.org/2000/svg'); -var $elm$svg$Svg$svg = $elm$svg$Svg$trustedNode('svg'); -var $elm$svg$Svg$Attributes$viewBox = _VirtualDom_attribute('viewBox'); -var $elm$svg$Svg$Attributes$width = _VirtualDom_attribute('width'); -var $1602$elm_feather$FeatherIcons$toHtml = F2( - function (attributes, _v0) { - var src = _v0.a.src; - var attrs = _v0.a.attrs; - var strSize = $elm$core$String$fromFloat(attrs.size); - var baseAttributes = _List_fromArray( - [ - $elm$svg$Svg$Attributes$fill('none'), - $elm$svg$Svg$Attributes$height( - _Utils_ap(strSize, attrs.sizeUnit)), - $elm$svg$Svg$Attributes$width( - _Utils_ap(strSize, attrs.sizeUnit)), - $elm$svg$Svg$Attributes$stroke('currentColor'), - $elm$svg$Svg$Attributes$strokeLinecap('round'), - $elm$svg$Svg$Attributes$strokeLinejoin('round'), - $elm$svg$Svg$Attributes$strokeWidth( - $elm$core$String$fromFloat(attrs.strokeWidth)), - $elm$svg$Svg$Attributes$viewBox(attrs.viewBox) - ]); - var combinedAttributes = _Utils_ap( - function () { - var _v1 = attrs._class; - if (_v1.$ === 'Just') { - var c = _v1.a; - return A2( - $elm$core$List$cons, - $elm$svg$Svg$Attributes$class(c), - baseAttributes); - } else { - return baseAttributes; - } - }(), - attributes); - return A2( - $elm$svg$Svg$svg, - combinedAttributes, - A2( - $elm$core$List$map, - $elm$svg$Svg$map($elm$core$Basics$never), - src)); - }); -var $1602$elm_feather$FeatherIcons$Icon = function (a) { - return {$: 'Icon', a: a}; -}; -var $1602$elm_feather$FeatherIcons$withSize = F2( - function (size, _v0) { - var attrs = _v0.a.attrs; - var src = _v0.a.src; - return $1602$elm_feather$FeatherIcons$Icon( - { - attrs: _Utils_update( - attrs, - {size: size}), - src: src - }); - }); -var $author$project$Icons$convert = A2( - $elm$core$Basics$composeL, - A2( - $elm$core$Basics$composeL, - $rtfeldman$elm_css$Html$Styled$fromUnstyled, - $1602$elm_feather$FeatherIcons$toHtml(_List_Nil)), - $1602$elm_feather$FeatherIcons$withSize(14)); -var $1602$elm_feather$FeatherIcons$defaultAttributes = function (name) { - return { - _class: $elm$core$Maybe$Just('feather feather-' + name), - size: 24, - sizeUnit: '', - strokeWidth: 2, - viewBox: '0 0 24 24' - }; -}; -var $1602$elm_feather$FeatherIcons$makeBuilder = F2( - function (name, src) { - return $1602$elm_feather$FeatherIcons$Icon( - { - attrs: $1602$elm_feather$FeatherIcons$defaultAttributes(name), - src: src - }); - }); -var $elm$svg$Svg$Attributes$points = _VirtualDom_attribute('points'); -var $elm$svg$Svg$polygon = $elm$svg$Svg$trustedNode('polygon'); -var $1602$elm_feather$FeatherIcons$xmlns = function (s) { - return A2( - $elm$virtual_dom$VirtualDom$property, - 'xmlns', - $elm$json$Json$Encode$string(s)); -}; -var $1602$elm_feather$FeatherIcons$star = A2( - $1602$elm_feather$FeatherIcons$makeBuilder, - 'star', - _List_fromArray( - [ - A2( - $elm$svg$Svg$svg, - _List_fromArray( - [ - $1602$elm_feather$FeatherIcons$xmlns('http://www.w3.org/2000/svg'), - $elm$svg$Svg$Attributes$width('24'), - $elm$svg$Svg$Attributes$height('24'), - $elm$svg$Svg$Attributes$viewBox('0 0 24 24'), - $elm$svg$Svg$Attributes$fill('none'), - $elm$svg$Svg$Attributes$stroke('currentColor'), - $elm$svg$Svg$Attributes$strokeWidth('2'), - $elm$svg$Svg$Attributes$strokeLinecap('round'), - $elm$svg$Svg$Attributes$strokeLinejoin('round'), - $elm$svg$Svg$Attributes$class('feather feather-star') - ]), - _List_fromArray( - [ - A2( - $elm$svg$Svg$polygon, - _List_fromArray( - [ - $elm$svg$Svg$Attributes$points('12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2') - ]), - _List_Nil) - ])) - ])); -var $author$project$Icons$starIcon = $author$project$Icons$convert($1602$elm_feather$FeatherIcons$star); -var $author$project$Product$viewStarRating = function (i) { - return A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - A2($elm$core$List$repeat, i, $author$project$Icons$starIcon)); -}; -var $author$project$Product$viewRating = function (r) { - return A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - A3( - $rtfeldman$elm_css$Css$border3, - $rtfeldman$elm_css$Css$px(1), - $rtfeldman$elm_css$Css$solid, - $author$project$Styles$theme.primary), - $rtfeldman$elm_css$Css$borderRadius( - $rtfeldman$elm_css$Css$px(4)), - $rtfeldman$elm_css$Css$marginBottom( - $rtfeldman$elm_css$Css$px(20)), - $rtfeldman$elm_css$Css$padding( - $rtfeldman$elm_css$Css$px(20)) - ])) - ]), - _List_fromArray( - [ - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $rtfeldman$elm_css$Css$fontSize( - $rtfeldman$elm_css$Css$px(16)), - $rtfeldman$elm_css$Css$fontWeight($rtfeldman$elm_css$Css$bold), - $rtfeldman$elm_css$Css$paddingBottom( - $rtfeldman$elm_css$Css$px(3)) - ])) - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text(r.customerName) - ])), - $author$project$Product$viewStarRating(r.stars), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $author$project$Styles$cardSecondaryText, - $rtfeldman$elm_css$Css$paddingBottom( - $rtfeldman$elm_css$Css$px(12)) - ])) - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text('Reviewed on ' + r.commentDate) - ])), - (!_Utils_eq(r.commentText, $elm$core$Maybe$Nothing)) ? A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [$author$project$Styles$cardSupportingText])) - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text( - A2($elm$core$Maybe$withDefault, '', r.commentText)) - ])) : $rtfeldman$elm_css$Html$Styled$text('') - ])); -}; -var $author$project$Product$AddRatingStars = function (a) { - return {$: 'AddRatingStars', a: a}; -}; -var $author$project$Product$viewStars = A2( - $rtfeldman$elm_css$Html$Styled$ul, - _List_Nil, - A2( - $elm$core$List$map, - function (i) { - return A2( - $rtfeldman$elm_css$Html$Styled$button, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Events$onClick( - $author$project$Product$AddRatingStars(i)) - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text( - $elm$core$String$fromInt(i)) - ])); - }, - _List_fromArray( - [1, 2, 3, 4, 5]))); -var $author$project$Product$viewStatus = function (s) { - switch (s.$) { - case 'Loading': - return 'Loading'; - case 'Loaded': - return 'Ready!'; - default: - return 'Not loaded ...'; - } -}; -var $author$project$Product$view = function (model) { - var _v0 = model.pageStatus; - if (_v0.$ === 'Loading') { - return A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text( - $author$project$Product$viewStatus($author$project$Product$Loading)) - ])); - } else { - return A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $rtfeldman$elm_css$Css$width( - $rtfeldman$elm_css$Css$pct(60)), - $rtfeldman$elm_css$Css$margin($rtfeldman$elm_css$Css$auto) - ])) - ]), - _List_fromArray( - [ - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - _List_fromArray( - [ - $author$project$Product$viewProduct(model.listing) - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [$author$project$Styles$cardPrimaryText])) - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text('User Reviews') - ])), - _Utils_eq(model.ratings, _List_Nil) ? $rtfeldman$elm_css$Html$Styled$text('Be the first to add a review.') : A2( - $rtfeldman$elm_css$Html$Styled$ul, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $rtfeldman$elm_css$Css$padding( - $rtfeldman$elm_css$Css$px(0)), - $rtfeldman$elm_css$Css$listStyle($rtfeldman$elm_css$Css$none) - ])) - ]), - A2($elm$core$List$map, $author$project$Product$viewRating, model.ratings)), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text('Add Rating: ') - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - _List_fromArray( - [ - $author$project$Product$viewStars, - A4($author$project$Product$viewInput, 'text', 'Enter Comment Text', model.ratingText, $author$project$Product$AddRatingComment), - A2( - $rtfeldman$elm_css$Html$Styled$button, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Events$onClick($author$project$Product$AddRatingPressed) - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text('Submit Rating') - ])) - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - _List_fromArray( - [ - A2( - $rtfeldman$elm_css$Html$Styled$a, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$href('/catalog') - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text('Back to catalog') - ])) - ])) - ])); - } -}; -var $author$project$Signup$AddressEntered = function (a) { - return {$: 'AddressEntered', a: a}; -}; -var $author$project$Signup$CreatePressed = {$: 'CreatePressed'}; -var $author$project$Signup$EmailEntered = function (a) { - return {$: 'EmailEntered', a: a}; -}; -var $author$project$Signup$PassEntered = function (a) { - return {$: 'PassEntered', a: a}; -}; -var $author$project$Signup$PhoneEntered = function (a) { - return {$: 'PhoneEntered', a: a}; -}; -var $author$project$Signup$UserEntered = function (a) { - return {$: 'UserEntered', a: a}; -}; -var $author$project$Signup$fieldPadding = $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $rtfeldman$elm_css$Css$paddingTop( - $rtfeldman$elm_css$Css$px(10)), - $rtfeldman$elm_css$Css$paddingBottom( - $rtfeldman$elm_css$Css$px(10)) - ])); -var $author$project$Signup$viewInput = F4( - function (t, p, v, toMsg) { - return A2( - $author$project$Styles$loginInputField, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$type_(t), - $rtfeldman$elm_css$Html$Styled$Attributes$placeholder(p), - $rtfeldman$elm_css$Html$Styled$Attributes$value(v), - $rtfeldman$elm_css$Html$Styled$Events$onInput(toMsg) - ]), - _List_Nil); - }); -var $author$project$Signup$viewStatus = function (s) { - switch (s.$) { - case 'UsernameTaken': - return 'This username is taken!'; - case 'InvalidPhone': - return 'Invalid phone number!'; - case 'InvalidEmail': - return 'Invalid email address!'; - case 'CreatedSuccessfully': - return 'User created successfully'; - case 'CreatingUser': - return 'Creating user ...'; - default: - return ''; - } -}; -var $author$project$Signup$view = function (model) { - return A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $rtfeldman$elm_css$Css$margin($rtfeldman$elm_css$Css$auto), - $rtfeldman$elm_css$Css$marginTop( - $rtfeldman$elm_css$Css$pct(10)), - $rtfeldman$elm_css$Css$padding( - $rtfeldman$elm_css$Css$px(20)), - $rtfeldman$elm_css$Css$width( - $rtfeldman$elm_css$Css$pct(30)) - ])) - ]), - _List_fromArray( - [ - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - $author$project$Signup$fieldPadding, - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [$author$project$Styles$bigHeading])) - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text('Signup') - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [$author$project$Signup$fieldPadding]), - _List_fromArray( - [ - A4($author$project$Signup$viewInput, 'text', 'Username', model.username, $author$project$Signup$UserEntered) - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [$author$project$Signup$fieldPadding]), - _List_fromArray( - [ - A4($author$project$Signup$viewInput, 'password', 'Password', model.password, $author$project$Signup$PassEntered) - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [$author$project$Signup$fieldPadding]), - _List_fromArray( - [ - A4($author$project$Signup$viewInput, 'text', 'Email', model.emailId, $author$project$Signup$EmailEntered) - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [$author$project$Signup$fieldPadding]), - _List_fromArray( - [ - A4($author$project$Signup$viewInput, 'text', 'Phone Number', model.phoneNumber, $author$project$Signup$PhoneEntered) - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [$author$project$Signup$fieldPadding]), - _List_fromArray( - [ - A4( - $author$project$Signup$viewInput, - 'text', - 'Shipping Address', - A2($elm$core$Maybe$withDefault, '', model.address), - $author$project$Signup$AddressEntered) - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [ - $author$project$Signup$fieldPadding, - $rtfeldman$elm_css$Html$Styled$Attributes$css( - _List_fromArray( - [ - $rtfeldman$elm_css$Css$textAlign($rtfeldman$elm_css$Css$center) - ])) - ]), - _List_fromArray( - [ - A2( - $author$project$Styles$furbyButton, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Events$onClick($author$project$Signup$CreatePressed) - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text('Create Account') - ])) - ])), - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_fromArray( - [$author$project$Signup$fieldPadding]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text('Already have a account? '), - A2( - $rtfeldman$elm_css$Html$Styled$a, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$href('/login') - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text('Login >') - ])) - ])), - $rtfeldman$elm_css$Html$Styled$text( - $author$project$Signup$viewStatus(model.status)) - ])); -}; -var $author$project$Main$view = function (model) { - var _v0 = model.location; - switch (_v0.$) { - case 'HomePage': - return { - body: $elm$core$List$singleton( - $rtfeldman$elm_css$Html$Styled$toUnstyled( - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - _List_fromArray( - [ - A2( - $rtfeldman$elm_css$Html$Styled$ul, - _List_Nil, - A2( - $elm$core$List$map, - function (l) { - return A2( - $rtfeldman$elm_css$Html$Styled$li, - _List_Nil, - _List_fromArray( - [ - A2( - $rtfeldman$elm_css$Html$Styled$a, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$href(l) - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text(l) - ])) - ])); - }, - _List_fromArray( - ['/login', '/catalog', '/cart']))) - ])))), - title: 'Login' - }; - case 'LoginPage': - return { - body: $elm$core$List$singleton( - $rtfeldman$elm_css$Html$Styled$toUnstyled( - A2( - $rtfeldman$elm_css$Html$Styled$map, - $author$project$Main$LoginMessage, - $author$project$Login$view(model.loginModel)))), - title: 'Login' - }; - case 'SignupPage': - return { - body: $elm$core$List$singleton( - $rtfeldman$elm_css$Html$Styled$toUnstyled( - A2( - $rtfeldman$elm_css$Html$Styled$map, - $author$project$Main$SignupMessage, - $author$project$Signup$view(model.signupModel)))), - title: 'Signup' - }; - case 'NotFoundPage': - return { - body: $elm$core$List$singleton( - $rtfeldman$elm_css$Html$Styled$toUnstyled( - A2( - $rtfeldman$elm_css$Html$Styled$div, - _List_Nil, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text('404 - Not Found'), - A2( - $rtfeldman$elm_css$Html$Styled$a, - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$Attributes$href('/') - ]), - _List_fromArray( - [ - $rtfeldman$elm_css$Html$Styled$text('Go back >') - ])) - ])))), - title: '404 - Not Found' - }; - case 'CatalogPage': - return { - body: A2( - $author$project$Main$pageWrap, - model, - A2( - $rtfeldman$elm_css$Html$Styled$map, - $author$project$Main$CatalogMessage, - $author$project$Catalog$view(model.catalogModel))), - title: 'Catalog' - }; - case 'CartPage': - return { - body: A2( - $author$project$Main$pageWrap, - model, - A2( - $rtfeldman$elm_css$Html$Styled$map, - $author$project$Main$CartMessage, - $author$project$Cart$view(model.cartModel))), - title: 'Cart' - }; - case 'CheckoutPage': - return { - body: A2( - $author$project$Main$pageWrap, - model, - A2( - $rtfeldman$elm_css$Html$Styled$map, - $author$project$Main$CheckoutMessage, - $author$project$Checkout$view(model.checkoutModel))), - title: 'Checkout' - }; - default: - var item = _v0.a; - return { - body: A2( - $author$project$Main$pageWrap, - model, - A2( - $rtfeldman$elm_css$Html$Styled$map, - $author$project$Main$ProductMessage, - $author$project$Product$view(model.productModel))), - title: 'Product ' + $elm$core$String$fromInt(item) - }; - } -}; -var $author$project$Main$main = $elm$browser$Browser$application( - {init: $author$project$Main$init, onUrlChange: $author$project$Main$UrlChanged, onUrlRequest: $author$project$Main$LinkClicked, subscriptions: $author$project$Main$subscriptions, update: $author$project$Main$update, view: $author$project$Main$view}); -_Platform_export({'Main':{'init':$author$project$Main$main( - $elm$json$Json$Decode$succeed(_Utils_Tuple0))(0)}});}(this)); \ No newline at end of file -- cgit v1.2.3