git.iko.soy/typeable/octopod
on anisimoffnikita/go-helm-octopod help sign in
15172 lines 406 kB history raw
1(function(scope){
2'use strict';
4function F(arity, fun, wrapper) {
5 wrapper.a = arity;
6 wrapper.f = fun;
7 return wrapper;
8}
10function F2(fun) {
11 return F(2, fun, function(a) { return function(b) { return fun(a,b); }; })
13function F3(fun) {
14 return F(3, fun, function(a) {
15 return function(b) { return function(c) { return fun(a, b, c); }; };
16 });
18function F4(fun) {
19 return F(4, fun, function(a) { return function(b) { return function(c) {
20 return function(d) { return fun(a, b, c, d); }; }; };
21 });
23function F5(fun) {
24 return F(5, fun, function(a) { return function(b) { return function(c) {
25 return function(d) { return function(e) { return fun(a, b, c, d, e); }; }; }; };
26 });
28function F6(fun) {
29 return F(6, fun, function(a) { return function(b) { return function(c) {
30 return function(d) { return function(e) { return function(f) {
31 return fun(a, b, c, d, e, f); }; }; }; }; };
32 });
34function F7(fun) {
35 return F(7, fun, function(a) { return function(b) { return function(c) {
36 return function(d) { return function(e) { return function(f) {
37 return function(g) { return fun(a, b, c, d, e, f, g); }; }; }; }; }; };
38 });
40function F8(fun) {
41 return F(8, fun, function(a) { return function(b) { return function(c) {
42 return function(d) { return function(e) { return function(f) {
43 return function(g) { return function(h) {
44 return fun(a, b, c, d, e, f, g, h); }; }; }; }; }; }; };
45 });
47function F9(fun) {
48 return F(9, fun, function(a) { return function(b) { return function(c) {
49 return function(d) { return function(e) { return function(f) {
50 return function(g) { return function(h) { return function(i) {
51 return fun(a, b, c, d, e, f, g, h, i); }; }; }; }; }; }; }; };
52 });
55function A2(fun, a, b) {
56 return fun.a === 2 ? fun.f(a, b) : fun(a)(b);
58function A3(fun, a, b, c) {
59 return fun.a === 3 ? fun.f(a, b, c) : fun(a)(b)(c);
61function A4(fun, a, b, c, d) {
62 return fun.a === 4 ? fun.f(a, b, c, d) : fun(a)(b)(c)(d);
64function A5(fun, a, b, c, d, e) {
65 return fun.a === 5 ? fun.f(a, b, c, d, e) : fun(a)(b)(c)(d)(e);
67function A6(fun, a, b, c, d, e, f) {
68 return fun.a === 6 ? fun.f(a, b, c, d, e, f) : fun(a)(b)(c)(d)(e)(f);
70function A7(fun, a, b, c, d, e, f, g) {
71 return fun.a === 7 ? fun.f(a, b, c, d, e, f, g) : fun(a)(b)(c)(d)(e)(f)(g);
73function A8(fun, a, b, c, d, e, f, g, h) {
74 return fun.a === 8 ? fun.f(a, b, c, d, e, f, g, h) : fun(a)(b)(c)(d)(e)(f)(g)(h);
76function A9(fun, a, b, c, d, e, f, g, h, i) {
77 return fun.a === 9 ? fun.f(a, b, c, d, e, f, g, h, i) : fun(a)(b)(c)(d)(e)(f)(g)(h)(i);
80console.warn('Compiled in DEV mode. Follow the advice at https://elm-lang.org/0.19.1/optimize for better performance and smaller assets.');
83// EQUALITY
85function _Utils_eq(x, y)
87 for (
88 var pair, stack = [], isEqual = _Utils_eqHelp(x, y, 0, stack);
89 isEqual && (pair = stack.pop());
90 isEqual = _Utils_eqHelp(pair.a, pair.b, 0, stack)
91 )
92 {}
94 return isEqual;
97function _Utils_eqHelp(x, y, depth, stack)
99 if (x === y)
100 {
101 return true;
102 }
104 if (typeof x !== 'object' || x === null || y === null)
105 {
106 typeof x === 'function' && _Debug_crash(5);
107 return false;
108 }
110 if (depth > 100)
111 {
112 stack.push(_Utils_Tuple2(x,y));
113 return true;
114 }
116 /**/
117 if (x.$ === 'Set_elm_builtin')
118 {
119 x = $elm$core$Set$toList(x);
120 y = $elm$core$Set$toList(y);
121 }
122 if (x.$ === 'RBNode_elm_builtin' || x.$ === 'RBEmpty_elm_builtin')
123 {
124 x = $elm$core$Dict$toList(x);
125 y = $elm$core$Dict$toList(y);
126 }
127 //*/
129 /**_UNUSED/
130 if (x.$ < 0)
131 {
132 x = $elm$core$Dict$toList(x);
133 y = $elm$core$Dict$toList(y);
134 }
135 //*/
137 for (var key in x)
138 {
139 if (!_Utils_eqHelp(x[key], y[key], depth + 1, stack))
140 {
141 return false;
142 }
143 }
144 return true;
147var _Utils_equal = F2(_Utils_eq);
148var _Utils_notEqual = F2(function(a, b) { return !_Utils_eq(a,b); });
152// COMPARISONS
154// Code in Generate/JavaScript.hs, Basics.js, and List.js depends on
155// the particular integer values assigned to LT, EQ, and GT.
157function _Utils_cmp(x, y, ord)
159 if (typeof x !== 'object')
160 {
161 return x === y ? /*EQ*/ 0 : x < y ? /*LT*/ -1 : /*GT*/ 1;
162 }
164 /**/
165 if (x instanceof String)
166 {
167 var a = x.valueOf();
168 var b = y.valueOf();
169 return a === b ? 0 : a < b ? -1 : 1;
170 }
171 //*/
173 /**_UNUSED/
174 if (typeof x.$ === 'undefined')
175 //*/
176 /**/
177 if (x.$[0] === '#')
178 //*/
179 {
180 return (ord = _Utils_cmp(x.a, y.a))
181 ? ord
182 : (ord = _Utils_cmp(x.b, y.b))
183 ? ord
184 : _Utils_cmp(x.c, y.c);
185 }
187 // traverse conses until end of a list or a mismatch
188 for (; x.b && y.b && !(ord = _Utils_cmp(x.a, y.a)); x = x.b, y = y.b) {} // WHILE_CONSES
189 return ord || (x.b ? /*GT*/ 1 : y.b ? /*LT*/ -1 : /*EQ*/ 0);
192var _Utils_lt = F2(function(a, b) { return _Utils_cmp(a, b) < 0; });
193var _Utils_le = F2(function(a, b) { return _Utils_cmp(a, b) < 1; });
194var _Utils_gt = F2(function(a, b) { return _Utils_cmp(a, b) > 0; });
195var _Utils_ge = F2(function(a, b) { return _Utils_cmp(a, b) >= 0; });
197var _Utils_compare = F2(function(x, y)
199 var n = _Utils_cmp(x, y);
200 return n < 0 ? $elm$core$Basics$LT : n ? $elm$core$Basics$GT : $elm$core$Basics$EQ;
201});
204// COMMON VALUES
206var _Utils_Tuple0_UNUSED = 0;
207var _Utils_Tuple0 = { $: '#0' };
209function _Utils_Tuple2_UNUSED(a, b) { return { a: a, b: b }; }
210function _Utils_Tuple2(a, b) { return { $: '#2', a: a, b: b }; }
212function _Utils_Tuple3_UNUSED(a, b, c) { return { a: a, b: b, c: c }; }
213function _Utils_Tuple3(a, b, c) { return { $: '#3', a: a, b: b, c: c }; }
215function _Utils_chr_UNUSED(c) { return c; }
216function _Utils_chr(c) { return new String(c); }
219// RECORDS
221function _Utils_update(oldRecord, updatedFields)
223 var newRecord = {};
225 for (var key in oldRecord)
226 {
227 newRecord[key] = oldRecord[key];
228 }
230 for (var key in updatedFields)
231 {
232 newRecord[key] = updatedFields[key];
233 }
235 return newRecord;
239// APPEND
241var _Utils_append = F2(_Utils_ap);
243function _Utils_ap(xs, ys)
245 // append Strings
246 if (typeof xs === 'string')
247 {
248 return xs + ys;
249 }
251 // append Lists
252 if (!xs.b)
253 {
254 return ys;
255 }
256 var root = _List_Cons(xs.a, ys);
257 xs = xs.b
258 for (var curr = root; xs.b; xs = xs.b) // WHILE_CONS
259 {
260 curr = curr.b = _List_Cons(xs.a, ys);
261 }
262 return root;
267var _List_Nil_UNUSED = { $: 0 };
268var _List_Nil = { $: '[]' };
270function _List_Cons_UNUSED(hd, tl) { return { $: 1, a: hd, b: tl }; }
271function _List_Cons(hd, tl) { return { $: '::', a: hd, b: tl }; }
274var _List_cons = F2(_List_Cons);
276function _List_fromArray(arr)
278 var out = _List_Nil;
279 for (var i = arr.length; i--; )
280 {
281 out = _List_Cons(arr[i], out);
282 }
283 return out;
286function _List_toArray(xs)
288 for (var out = []; xs.b; xs = xs.b) // WHILE_CONS
289 {
290 out.push(xs.a);
291 }
292 return out;
295var _List_map2 = F3(function(f, xs, ys)
297 for (var arr = []; xs.b && ys.b; xs = xs.b, ys = ys.b) // WHILE_CONSES
298 {
299 arr.push(A2(f, xs.a, ys.a));
300 }
301 return _List_fromArray(arr);
302});
304var _List_map3 = F4(function(f, xs, ys, zs)
306 for (var arr = []; xs.b && ys.b && zs.b; xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES
307 {
308 arr.push(A3(f, xs.a, ys.a, zs.a));
309 }
310 return _List_fromArray(arr);
311});
313var _List_map4 = F5(function(f, ws, xs, ys, zs)
315 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
316 {
317 arr.push(A4(f, ws.a, xs.a, ys.a, zs.a));
318 }
319 return _List_fromArray(arr);
320});
322var _List_map5 = F6(function(f, vs, ws, xs, ys, zs)
324 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
325 {
326 arr.push(A5(f, vs.a, ws.a, xs.a, ys.a, zs.a));
327 }
328 return _List_fromArray(arr);
329});
331var _List_sortBy = F2(function(f, xs)
333 return _List_fromArray(_List_toArray(xs).sort(function(a, b) {
334 return _Utils_cmp(f(a), f(b));
335 }));
336});
338var _List_sortWith = F2(function(f, xs)
340 return _List_fromArray(_List_toArray(xs).sort(function(a, b) {
341 var ord = A2(f, a, b);
342 return ord === $elm$core$Basics$EQ ? 0 : ord === $elm$core$Basics$LT ? -1 : 1;
343 }));
344});
348var _JsArray_empty = [];
350function _JsArray_singleton(value)
352 return [value];
355function _JsArray_length(array)
357 return array.length;
360var _JsArray_initialize = F3(function(size, offset, func)
362 var result = new Array(size);
364 for (var i = 0; i < size; i++)
365 {
366 result[i] = func(offset + i);
367 }
369 return result;
370});
372var _JsArray_initializeFromList = F2(function (max, ls)
374 var result = new Array(max);
376 for (var i = 0; i < max && ls.b; i++)
377 {
378 result[i] = ls.a;
379 ls = ls.b;
380 }
382 result.length = i;
383 return _Utils_Tuple2(result, ls);
384});
386var _JsArray_unsafeGet = F2(function(index, array)
388 return array[index];
389});
391var _JsArray_unsafeSet = F3(function(index, value, array)
393 var length = array.length;
394 var result = new Array(length);
396 for (var i = 0; i < length; i++)
397 {
398 result[i] = array[i];
399 }
401 result[index] = value;
402 return result;
403});
405var _JsArray_push = F2(function(value, array)
407 var length = array.length;
408 var result = new Array(length + 1);
410 for (var i = 0; i < length; i++)
411 {
412 result[i] = array[i];
413 }
415 result[length] = value;
416 return result;
417});
419var _JsArray_foldl = F3(function(func, acc, array)
421 var length = array.length;
423 for (var i = 0; i < length; i++)
424 {
425 acc = A2(func, array[i], acc);
426 }
428 return acc;
429});
431var _JsArray_foldr = F3(function(func, acc, array)
433 for (var i = array.length - 1; i >= 0; i--)
434 {
435 acc = A2(func, array[i], acc);
436 }
438 return acc;
439});
441var _JsArray_map = F2(function(func, array)
443 var length = array.length;
444 var result = new Array(length);
446 for (var i = 0; i < length; i++)
447 {
448 result[i] = func(array[i]);
449 }
451 return result;
452});
454var _JsArray_indexedMap = F3(function(func, offset, array)
456 var length = array.length;
457 var result = new Array(length);
459 for (var i = 0; i < length; i++)
460 {
461 result[i] = A2(func, offset + i, array[i]);
462 }
464 return result;
465});
467var _JsArray_slice = F3(function(from, to, array)
469 return array.slice(from, to);
470});
472var _JsArray_appendN = F3(function(n, dest, source)
474 var destLen = dest.length;
475 var itemsToCopy = n - destLen;
477 if (itemsToCopy > source.length)
478 {
479 itemsToCopy = source.length;
480 }
482 var size = destLen + itemsToCopy;
483 var result = new Array(size);
485 for (var i = 0; i < destLen; i++)
486 {
487 result[i] = dest[i];
488 }
490 for (var i = 0; i < itemsToCopy; i++)
491 {
492 result[i + destLen] = source[i];
493 }
495 return result;
496});
500// LOG
502var _Debug_log_UNUSED = F2(function(tag, value)
504 return value;
505});
507var _Debug_log = F2(function(tag, value)
509 console.log(tag + ': ' + _Debug_toString(value));
510 return value;
511});
514// TODOS
516function _Debug_todo(moduleName, region)
518 return function(message) {
519 _Debug_crash(8, moduleName, region, message);
520 };
523function _Debug_todoCase(moduleName, region, value)
525 return function(message) {
526 _Debug_crash(9, moduleName, region, value, message);
527 };
531// TO STRING
533function _Debug_toString_UNUSED(value)
535 return '<internals>';
538function _Debug_toString(value)
540 return _Debug_toAnsiString(false, value);
543function _Debug_toAnsiString(ansi, value)
545 if (typeof value === 'function')
546 {
547 return _Debug_internalColor(ansi, '<function>');
548 }
550 if (typeof value === 'boolean')
551 {
552 return _Debug_ctorColor(ansi, value ? 'True' : 'False');
553 }
555 if (typeof value === 'number')
556 {
557 return _Debug_numberColor(ansi, value + '');
558 }
560 if (value instanceof String)
561 {
562 return _Debug_charColor(ansi, "'" + _Debug_addSlashes(value, true) + "'");
563 }
565 if (typeof value === 'string')
566 {
567 return _Debug_stringColor(ansi, '"' + _Debug_addSlashes(value, false) + '"');
568 }
570 if (typeof value === 'object' && '$' in value)
571 {
572 var tag = value.$;
574 if (typeof tag === 'number')
575 {
576 return _Debug_internalColor(ansi, '<internals>');
577 }
579 if (tag[0] === '#')
580 {
581 var output = [];
582 for (var k in value)
583 {
584 if (k === '$') continue;
585 output.push(_Debug_toAnsiString(ansi, value[k]));
586 }
587 return '(' + output.join(',') + ')';
588 }
590 if (tag === 'Set_elm_builtin')
591 {
592 return _Debug_ctorColor(ansi, 'Set')
593 + _Debug_fadeColor(ansi, '.fromList') + ' '
594 + _Debug_toAnsiString(ansi, $elm$core$Set$toList(value));
595 }
597 if (tag === 'RBNode_elm_builtin' || tag === 'RBEmpty_elm_builtin')
598 {
599 return _Debug_ctorColor(ansi, 'Dict')
600 + _Debug_fadeColor(ansi, '.fromList') + ' '
601 + _Debug_toAnsiString(ansi, $elm$core$Dict$toList(value));
602 }
604 if (tag === 'Array_elm_builtin')
605 {
606 return _Debug_ctorColor(ansi, 'Array')
607 + _Debug_fadeColor(ansi, '.fromList') + ' '
608 + _Debug_toAnsiString(ansi, $elm$core$Array$toList(value));
609 }
611 if (tag === '::' || tag === '[]')
612 {
613 var output = '[';
615 value.b && (output += _Debug_toAnsiString(ansi, value.a), value = value.b)
617 for (; value.b; value = value.b) // WHILE_CONS
618 {
619 output += ',' + _Debug_toAnsiString(ansi, value.a);
620 }
621 return output + ']';
622 }
624 var output = '';
625 for (var i in value)
626 {
627 if (i === '$') continue;
628 var str = _Debug_toAnsiString(ansi, value[i]);
629 var c0 = str[0];
630 var parenless = c0 === '{' || c0 === '(' || c0 === '[' || c0 === '<' || c0 === '"' || str.indexOf(' ') < 0;
631 output += ' ' + (parenless ? str : '(' + str + ')');
632 }
633 return _Debug_ctorColor(ansi, tag) + output;
634 }
636 if (typeof DataView === 'function' && value instanceof DataView)
637 {
638 return _Debug_stringColor(ansi, '<' + value.byteLength + ' bytes>');
639 }
641 if (typeof File !== 'undefined' && value instanceof File)
642 {
643 return _Debug_internalColor(ansi, '<' + value.name + '>');
644 }
646 if (typeof value === 'object')
647 {
648 var output = [];
649 for (var key in value)
650 {
651 var field = key[0] === '_' ? key.slice(1) : key;
652 output.push(_Debug_fadeColor(ansi, field) + ' = ' + _Debug_toAnsiString(ansi, value[key]));
653 }
654 if (output.length === 0)
655 {
656 return '{}';
657 }
658 return '{ ' + output.join(', ') + ' }';
659 }
661 return _Debug_internalColor(ansi, '<internals>');
664function _Debug_addSlashes(str, isChar)
666 var s = str
667 .replace(/\\/g, '\\\\')
668 .replace(/\n/g, '\\n')
669 .replace(/\t/g, '\\t')
670 .replace(/\r/g, '\\r')
671 .replace(/\v/g, '\\v')
672 .replace(/\0/g, '\\0');
674 if (isChar)
675 {
676 return s.replace(/\'/g, '\\\'');
677 }
678 else
679 {
680 return s.replace(/\"/g, '\\"');
681 }
684function _Debug_ctorColor(ansi, string)
686 return ansi ? '\x1b[96m' + string + '\x1b[0m' : string;
689function _Debug_numberColor(ansi, string)
691 return ansi ? '\x1b[95m' + string + '\x1b[0m' : string;
694function _Debug_stringColor(ansi, string)
696 return ansi ? '\x1b[93m' + string + '\x1b[0m' : string;
699function _Debug_charColor(ansi, string)
701 return ansi ? '\x1b[92m' + string + '\x1b[0m' : string;
704function _Debug_fadeColor(ansi, string)
706 return ansi ? '\x1b[37m' + string + '\x1b[0m' : string;
709function _Debug_internalColor(ansi, string)
711 return ansi ? '\x1b[36m' + string + '\x1b[0m' : string;
714function _Debug_toHexDigit(n)
716 return String.fromCharCode(n < 10 ? 48 + n : 55 + n);
720// CRASH
723function _Debug_crash_UNUSED(identifier)
725 throw new Error('https://github.com/elm/core/blob/1.0.0/hints/' + identifier + '.md');
729function _Debug_crash(identifier, fact1, fact2, fact3, fact4)
731 switch(identifier)
732 {
733 case 0:
734 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.');
736 case 1:
737 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.');
739 case 2:
740 var jsonErrorString = fact1;
741 throw new Error('Problem with the flags given to your Elm program on initialization.\n\n' + jsonErrorString);
743 case 3:
744 var portName = fact1;
745 throw new Error('There can only be one port named `' + portName + '`, but your program has multiple.');
747 case 4:
748 var portName = fact1;
749 var problem = fact2;
750 throw new Error('Trying to send an unexpected type of value through port `' + portName + '`:\n' + problem);
752 case 5:
753 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.');
755 case 6:
756 var moduleName = fact1;
757 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!');
759 case 8:
760 var moduleName = fact1;
761 var region = fact2;
762 var message = fact3;
763 throw new Error('TODO in module `' + moduleName + '` ' + _Debug_regionToString(region) + '\n\n' + message);
765 case 9:
766 var moduleName = fact1;
767 var region = fact2;
768 var value = fact3;
769 var message = fact4;
770 throw new Error(
771 'TODO in module `' + moduleName + '` from the `case` expression '
772 + _Debug_regionToString(region) + '\n\nIt received the following value:\n\n '
773 + _Debug_toString(value).replace('\n', '\n ')
774 + '\n\nBut the branch that handles it says:\n\n ' + message.replace('\n', '\n ')
775 );
777 case 10:
778 throw new Error('Bug in https://github.com/elm/virtual-dom/issues');
780 case 11:
781 throw new Error('Cannot perform mod 0. Division by zero error.');
782 }
785function _Debug_regionToString(region)
787 if (region.start.line === region.end.line)
788 {
789 return 'on line ' + region.start.line;
790 }
791 return 'on lines ' + region.start.line + ' through ' + region.end.line;
796// MATH
798var _Basics_add = F2(function(a, b) { return a + b; });
799var _Basics_sub = F2(function(a, b) { return a - b; });
800var _Basics_mul = F2(function(a, b) { return a * b; });
801var _Basics_fdiv = F2(function(a, b) { return a / b; });
802var _Basics_idiv = F2(function(a, b) { return (a / b) | 0; });
803var _Basics_pow = F2(Math.pow);
805var _Basics_remainderBy = F2(function(b, a) { return a % b; });
807// https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/divmodnote-letter.pdf
808var _Basics_modBy = F2(function(modulus, x)
810 var answer = x % modulus;
811 return modulus === 0
812 ? _Debug_crash(11)
813 :
814 ((answer > 0 && modulus < 0) || (answer < 0 && modulus > 0))
815 ? answer + modulus
816 : answer;
817});
820// TRIGONOMETRY
822var _Basics_pi = Math.PI;
823var _Basics_e = Math.E;
824var _Basics_cos = Math.cos;
825var _Basics_sin = Math.sin;
826var _Basics_tan = Math.tan;
827var _Basics_acos = Math.acos;
828var _Basics_asin = Math.asin;
829var _Basics_atan = Math.atan;
830var _Basics_atan2 = F2(Math.atan2);
833// MORE MATH
835function _Basics_toFloat(x) { return x; }
836function _Basics_truncate(n) { return n | 0; }
837function _Basics_isInfinite(n) { return n === Infinity || n === -Infinity; }
839var _Basics_ceiling = Math.ceil;
840var _Basics_floor = Math.floor;
841var _Basics_round = Math.round;
842var _Basics_sqrt = Math.sqrt;
843var _Basics_log = Math.log;
844var _Basics_isNaN = isNaN;
847// BOOLEANS
849function _Basics_not(bool) { return !bool; }
850var _Basics_and = F2(function(a, b) { return a && b; });
851var _Basics_or = F2(function(a, b) { return a || b; });
852var _Basics_xor = F2(function(a, b) { return a !== b; });
856var _String_cons = F2(function(chr, str)
858 return chr + str;
859});
861function _String_uncons(string)
863 var word = string.charCodeAt(0);
864 return !isNaN(word)
865 ? $elm$core$Maybe$Just(
866 0xD800 <= word && word <= 0xDBFF
867 ? _Utils_Tuple2(_Utils_chr(string[0] + string[1]), string.slice(2))
868 : _Utils_Tuple2(_Utils_chr(string[0]), string.slice(1))
869 )
870 : $elm$core$Maybe$Nothing;
873var _String_append = F2(function(a, b)
875 return a + b;
876});
878function _String_length(str)
880 return str.length;
883var _String_map = F2(function(func, string)
885 var len = string.length;
886 var array = new Array(len);
887 var i = 0;
888 while (i < len)
889 {
890 var word = string.charCodeAt(i);
891 if (0xD800 <= word && word <= 0xDBFF)
892 {
893 array[i] = func(_Utils_chr(string[i] + string[i+1]));
894 i += 2;
895 continue;
896 }
897 array[i] = func(_Utils_chr(string[i]));
898 i++;
899 }
900 return array.join('');
901});
903var _String_filter = F2(function(isGood, str)
905 var arr = [];
906 var len = str.length;
907 var i = 0;
908 while (i < len)
909 {
910 var char = str[i];
911 var word = str.charCodeAt(i);
912 i++;
913 if (0xD800 <= word && word <= 0xDBFF)
914 {
915 char += str[i];
916 i++;
917 }
919 if (isGood(_Utils_chr(char)))
920 {
921 arr.push(char);
922 }
923 }
924 return arr.join('');
925});
927function _String_reverse(str)
929 var len = str.length;
930 var arr = new Array(len);
931 var i = 0;
932 while (i < len)
933 {
934 var word = str.charCodeAt(i);
935 if (0xD800 <= word && word <= 0xDBFF)
936 {
937 arr[len - i] = str[i + 1];
938 i++;
939 arr[len - i] = str[i - 1];
940 i++;
941 }
942 else
943 {
944 arr[len - i] = str[i];
945 i++;
946 }
947 }
948 return arr.join('');
951var _String_foldl = F3(function(func, state, string)
953 var len = string.length;
954 var i = 0;
955 while (i < len)
956 {
957 var char = string[i];
958 var word = string.charCodeAt(i);
959 i++;
960 if (0xD800 <= word && word <= 0xDBFF)
961 {
962 char += string[i];
963 i++;
964 }
965 state = A2(func, _Utils_chr(char), state);
966 }
967 return state;
968});
970var _String_foldr = F3(function(func, state, string)
972 var i = string.length;
973 while (i--)
974 {
975 var char = string[i];
976 var word = string.charCodeAt(i);
977 if (0xDC00 <= word && word <= 0xDFFF)
978 {
979 i--;
980 char = string[i] + char;
981 }
982 state = A2(func, _Utils_chr(char), state);
983 }
984 return state;
985});
987var _String_split = F2(function(sep, str)
989 return str.split(sep);
990});
992var _String_join = F2(function(sep, strs)
994 return strs.join(sep);
995});
997var _String_slice = F3(function(start, end, str) {
998 return str.slice(start, end);
999});
1001function _String_trim(str)
1003 return str.trim();
1006function _String_trimLeft(str)
1008 return str.replace(/^\s+/, '');
1011function _String_trimRight(str)
1013 return str.replace(/\s+$/, '');
1016function _String_words(str)
1018 return _List_fromArray(str.trim().split(/\s+/g));
1021function _String_lines(str)
1023 return _List_fromArray(str.split(/\r\n|\r|\n/g));
1026function _String_toUpper(str)
1028 return str.toUpperCase();
1031function _String_toLower(str)
1033 return str.toLowerCase();
1036var _String_any = F2(function(isGood, string)
1038 var i = string.length;
1039 while (i--)
1041 var char = string[i];
1042 var word = string.charCodeAt(i);
1043 if (0xDC00 <= word && word <= 0xDFFF)
1045 i--;
1046 char = string[i] + char;
1048 if (isGood(_Utils_chr(char)))
1050 return true;
1053 return false;
1054});
1056var _String_all = F2(function(isGood, string)
1058 var i = string.length;
1059 while (i--)
1061 var char = string[i];
1062 var word = string.charCodeAt(i);
1063 if (0xDC00 <= word && word <= 0xDFFF)
1065 i--;
1066 char = string[i] + char;
1068 if (!isGood(_Utils_chr(char)))
1070 return false;
1073 return true;
1074});
1076var _String_contains = F2(function(sub, str)
1078 return str.indexOf(sub) > -1;
1079});
1081var _String_startsWith = F2(function(sub, str)
1083 return str.indexOf(sub) === 0;
1084});
1086var _String_endsWith = F2(function(sub, str)
1088 return str.length >= sub.length &&
1089 str.lastIndexOf(sub) === str.length - sub.length;
1090});
1092var _String_indexes = F2(function(sub, str)
1094 var subLen = sub.length;
1096 if (subLen < 1)
1098 return _List_Nil;
1101 var i = 0;
1102 var is = [];
1104 while ((i = str.indexOf(sub, i)) > -1)
1106 is.push(i);
1107 i = i + subLen;
1110 return _List_fromArray(is);
1111});
1114// TO STRING
1116function _String_fromNumber(number)
1118 return number + '';
1122// INT CONVERSIONS
1124function _String_toInt(str)
1126 var total = 0;
1127 var code0 = str.charCodeAt(0);
1128 var start = code0 == 0x2B /* + */ || code0 == 0x2D /* - */ ? 1 : 0;
1130 for (var i = start; i < str.length; ++i)
1132 var code = str.charCodeAt(i);
1133 if (code < 0x30 || 0x39 < code)
1135 return $elm$core$Maybe$Nothing;
1137 total = 10 * total + code - 0x30;
1140 return i == start
1141 ? $elm$core$Maybe$Nothing
1142 : $elm$core$Maybe$Just(code0 == 0x2D ? -total : total);
1146// FLOAT CONVERSIONS
1148function _String_toFloat(s)
1150 // check if it is a hex, octal, or binary number
1151 if (s.length === 0 || /[\sxbo]/.test(s))
1153 return $elm$core$Maybe$Nothing;
1155 var n = +s;
1156 // faster isNaN check
1157 return n === n ? $elm$core$Maybe$Just(n) : $elm$core$Maybe$Nothing;
1160function _String_fromList(chars)
1162 return _List_toArray(chars).join('');
1168function _Char_toCode(char)
1170 var code = char.charCodeAt(0);
1171 if (0xD800 <= code && code <= 0xDBFF)
1173 return (code - 0xD800) * 0x400 + char.charCodeAt(1) - 0xDC00 + 0x10000
1175 return code;
1178function _Char_fromCode(code)
1180 return _Utils_chr(
1181 (code < 0 || 0x10FFFF < code)
1182 ? '\uFFFD'
1184 (code <= 0xFFFF)
1185 ? String.fromCharCode(code)
1187 (code -= 0x10000,
1188 String.fromCharCode(Math.floor(code / 0x400) + 0xD800, code % 0x400 + 0xDC00)
1190 );
1193function _Char_toUpper(char)
1195 return _Utils_chr(char.toUpperCase());
1198function _Char_toLower(char)
1200 return _Utils_chr(char.toLowerCase());
1203function _Char_toLocaleUpper(char)
1205 return _Utils_chr(char.toLocaleUpperCase());
1208function _Char_toLocaleLower(char)
1210 return _Utils_chr(char.toLocaleLowerCase());
1215/**/
1216function _Json_errorToString(error)
1218 return $elm$json$Json$Decode$errorToString(error);
1220//*/
1223// CORE DECODERS
1225function _Json_succeed(msg)
1227 return {
1228 $: 0,
1229 a: msg
1230 };
1233function _Json_fail(msg)
1235 return {
1236 $: 1,
1237 a: msg
1238 };
1241function _Json_decodePrim(decoder)
1243 return { $: 2, b: decoder };
1246var _Json_decodeInt = _Json_decodePrim(function(value) {
1247 return (typeof value !== 'number')
1248 ? _Json_expecting('an INT', value)
1250 (-2147483647 < value && value < 2147483647 && (value | 0) === value)
1251 ? $elm$core$Result$Ok(value)
1253 (isFinite(value) && !(value % 1))
1254 ? $elm$core$Result$Ok(value)
1255 : _Json_expecting('an INT', value);
1256});
1258var _Json_decodeBool = _Json_decodePrim(function(value) {
1259 return (typeof value === 'boolean')
1260 ? $elm$core$Result$Ok(value)
1261 : _Json_expecting('a BOOL', value);
1262});
1264var _Json_decodeFloat = _Json_decodePrim(function(value) {
1265 return (typeof value === 'number')
1266 ? $elm$core$Result$Ok(value)
1267 : _Json_expecting('a FLOAT', value);
1268});
1270var _Json_decodeValue = _Json_decodePrim(function(value) {
1271 return $elm$core$Result$Ok(_Json_wrap(value));
1272});
1274var _Json_decodeString = _Json_decodePrim(function(value) {
1275 return (typeof value === 'string')
1276 ? $elm$core$Result$Ok(value)
1277 : (value instanceof String)
1278 ? $elm$core$Result$Ok(value + '')
1279 : _Json_expecting('a STRING', value);
1280});
1282function _Json_decodeList(decoder) { return { $: 3, b: decoder }; }
1283function _Json_decodeArray(decoder) { return { $: 4, b: decoder }; }
1285function _Json_decodeNull(value) { return { $: 5, c: value }; }
1287var _Json_decodeField = F2(function(field, decoder)
1289 return {
1290 $: 6,
1291 d: field,
1292 b: decoder
1293 };
1294});
1296var _Json_decodeIndex = F2(function(index, decoder)
1298 return {
1299 $: 7,
1300 e: index,
1301 b: decoder
1302 };
1303});
1305function _Json_decodeKeyValuePairs(decoder)
1307 return {
1308 $: 8,
1309 b: decoder
1310 };
1313function _Json_mapMany(f, decoders)
1315 return {
1316 $: 9,
1317 f: f,
1318 g: decoders
1319 };
1322var _Json_andThen = F2(function(callback, decoder)
1324 return {
1325 $: 10,
1326 b: decoder,
1327 h: callback
1328 };
1329});
1331function _Json_oneOf(decoders)
1333 return {
1334 $: 11,
1335 g: decoders
1336 };
1340// DECODING OBJECTS
1342var _Json_map1 = F2(function(f, d1)
1344 return _Json_mapMany(f, [d1]);
1345});
1347var _Json_map2 = F3(function(f, d1, d2)
1349 return _Json_mapMany(f, [d1, d2]);
1350});
1352var _Json_map3 = F4(function(f, d1, d2, d3)
1354 return _Json_mapMany(f, [d1, d2, d3]);
1355});
1357var _Json_map4 = F5(function(f, d1, d2, d3, d4)
1359 return _Json_mapMany(f, [d1, d2, d3, d4]);
1360});
1362var _Json_map5 = F6(function(f, d1, d2, d3, d4, d5)
1364 return _Json_mapMany(f, [d1, d2, d3, d4, d5]);
1365});
1367var _Json_map6 = F7(function(f, d1, d2, d3, d4, d5, d6)
1369 return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6]);
1370});
1372var _Json_map7 = F8(function(f, d1, d2, d3, d4, d5, d6, d7)
1374 return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7]);
1375});
1377var _Json_map8 = F9(function(f, d1, d2, d3, d4, d5, d6, d7, d8)
1379 return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7, d8]);
1380});
1383// DECODE
1385var _Json_runOnString = F2(function(decoder, string)
1387 try
1389 var value = JSON.parse(string);
1390 return _Json_runHelp(decoder, value);
1392 catch (e)
1394 return $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, 'This is not valid JSON! ' + e.message, _Json_wrap(string)));
1396});
1398var _Json_run = F2(function(decoder, value)
1400 return _Json_runHelp(decoder, _Json_unwrap(value));
1401});
1403function _Json_runHelp(decoder, value)
1405 switch (decoder.$)
1407 case 2:
1408 return decoder.b(value);
1410 case 5:
1411 return (value === null)
1412 ? $elm$core$Result$Ok(decoder.c)
1413 : _Json_expecting('null', value);
1415 case 3:
1416 if (!_Json_isArray(value))
1418 return _Json_expecting('a LIST', value);
1420 return _Json_runArrayDecoder(decoder.b, value, _List_fromArray);
1422 case 4:
1423 if (!_Json_isArray(value))
1425 return _Json_expecting('an ARRAY', value);
1427 return _Json_runArrayDecoder(decoder.b, value, _Json_toElmArray);
1429 case 6:
1430 var field = decoder.d;
1431 if (typeof value !== 'object' || value === null || !(field in value))
1433 return _Json_expecting('an OBJECT with a field named `' + field + '`', value);
1435 var result = _Json_runHelp(decoder.b, value[field]);
1436 return ($elm$core$Result$isOk(result)) ? result : $elm$core$Result$Err(A2($elm$json$Json$Decode$Field, field, result.a));
1438 case 7:
1439 var index = decoder.e;
1440 if (!_Json_isArray(value))
1442 return _Json_expecting('an ARRAY', value);
1444 if (index >= value.length)
1446 return _Json_expecting('a LONGER array. Need index ' + index + ' but only see ' + value.length + ' entries', value);
1448 var result = _Json_runHelp(decoder.b, value[index]);
1449 return ($elm$core$Result$isOk(result)) ? result : $elm$core$Result$Err(A2($elm$json$Json$Decode$Index, index, result.a));
1451 case 8:
1452 if (typeof value !== 'object' || value === null || _Json_isArray(value))
1454 return _Json_expecting('an OBJECT', value);
1457 var keyValuePairs = _List_Nil;
1458 // TODO test perf of Object.keys and switch when support is good enough
1459 for (var key in value)
1461 if (value.hasOwnProperty(key))
1463 var result = _Json_runHelp(decoder.b, value[key]);
1464 if (!$elm$core$Result$isOk(result))
1466 return $elm$core$Result$Err(A2($elm$json$Json$Decode$Field, key, result.a));
1468 keyValuePairs = _List_Cons(_Utils_Tuple2(key, result.a), keyValuePairs);
1471 return $elm$core$Result$Ok($elm$core$List$reverse(keyValuePairs));
1473 case 9:
1474 var answer = decoder.f;
1475 var decoders = decoder.g;
1476 for (var i = 0; i < decoders.length; i++)
1478 var result = _Json_runHelp(decoders[i], value);
1479 if (!$elm$core$Result$isOk(result))
1481 return result;
1483 answer = answer(result.a);
1485 return $elm$core$Result$Ok(answer);
1487 case 10:
1488 var result = _Json_runHelp(decoder.b, value);
1489 return (!$elm$core$Result$isOk(result))
1490 ? result
1491 : _Json_runHelp(decoder.h(result.a), value);
1493 case 11:
1494 var errors = _List_Nil;
1495 for (var temp = decoder.g; temp.b; temp = temp.b) // WHILE_CONS
1497 var result = _Json_runHelp(temp.a, value);
1498 if ($elm$core$Result$isOk(result))
1500 return result;
1502 errors = _List_Cons(result.a, errors);
1504 return $elm$core$Result$Err($elm$json$Json$Decode$OneOf($elm$core$List$reverse(errors)));
1506 case 1:
1507 return $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, decoder.a, _Json_wrap(value)));
1509 case 0:
1510 return $elm$core$Result$Ok(decoder.a);
1514function _Json_runArrayDecoder(decoder, value, toElmValue)
1516 var len = value.length;
1517 var array = new Array(len);
1518 for (var i = 0; i < len; i++)
1520 var result = _Json_runHelp(decoder, value[i]);
1521 if (!$elm$core$Result$isOk(result))
1523 return $elm$core$Result$Err(A2($elm$json$Json$Decode$Index, i, result.a));
1525 array[i] = result.a;
1527 return $elm$core$Result$Ok(toElmValue(array));
1530function _Json_isArray(value)
1532 return Array.isArray(value) || (typeof FileList !== 'undefined' && value instanceof FileList);
1535function _Json_toElmArray(array)
1537 return A2($elm$core$Array$initialize, array.length, function(i) { return array[i]; });
1540function _Json_expecting(type, value)
1542 return $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, 'Expecting ' + type, _Json_wrap(value)));
1546// EQUALITY
1548function _Json_equality(x, y)
1550 if (x === y)
1552 return true;
1555 if (x.$ !== y.$)
1557 return false;
1560 switch (x.$)
1562 case 0:
1563 case 1:
1564 return x.a === y.a;
1566 case 2:
1567 return x.b === y.b;
1569 case 5:
1570 return x.c === y.c;
1572 case 3:
1573 case 4:
1574 case 8:
1575 return _Json_equality(x.b, y.b);
1577 case 6:
1578 return x.d === y.d && _Json_equality(x.b, y.b);
1580 case 7:
1581 return x.e === y.e && _Json_equality(x.b, y.b);
1583 case 9:
1584 return x.f === y.f && _Json_listEquality(x.g, y.g);
1586 case 10:
1587 return x.h === y.h && _Json_equality(x.b, y.b);
1589 case 11:
1590 return _Json_listEquality(x.g, y.g);
1594function _Json_listEquality(aDecoders, bDecoders)
1596 var len = aDecoders.length;
1597 if (len !== bDecoders.length)
1599 return false;
1601 for (var i = 0; i < len; i++)
1603 if (!_Json_equality(aDecoders[i], bDecoders[i]))
1605 return false;
1608 return true;
1612// ENCODE
1614var _Json_encode = F2(function(indentLevel, value)
1616 return JSON.stringify(_Json_unwrap(value), null, indentLevel) + '';
1617});
1619function _Json_wrap(value) { return { $: 0, a: value }; }
1620function _Json_unwrap(value) { return value.a; }
1622function _Json_wrap_UNUSED(value) { return value; }
1623function _Json_unwrap_UNUSED(value) { return value; }
1625function _Json_emptyArray() { return []; }
1626function _Json_emptyObject() { return {}; }
1628var _Json_addField = F3(function(key, value, object)
1630 object[key] = _Json_unwrap(value);
1631 return object;
1632});
1634function _Json_addEntry(func)
1636 return F2(function(entry, array)
1638 array.push(_Json_unwrap(func(entry)));
1639 return array;
1640 });
1643var _Json_encodeNull = _Json_wrap(null);
1647// TASKS
1649function _Scheduler_succeed(value)
1651 return {
1652 $: 0,
1653 a: value
1654 };
1657function _Scheduler_fail(error)
1659 return {
1660 $: 1,
1661 a: error
1662 };
1665function _Scheduler_binding(callback)
1667 return {
1668 $: 2,
1669 b: callback,
1670 c: null
1671 };
1674var _Scheduler_andThen = F2(function(callback, task)
1676 return {
1677 $: 3,
1678 b: callback,
1679 d: task
1680 };
1681});
1683var _Scheduler_onError = F2(function(callback, task)
1685 return {
1686 $: 4,
1687 b: callback,
1688 d: task
1689 };
1690});
1692function _Scheduler_receive(callback)
1694 return {
1695 $: 5,
1696 b: callback
1697 };
1701// PROCESSES
1703var _Scheduler_guid = 0;
1705function _Scheduler_rawSpawn(task)
1707 var proc = {
1708 $: 0,
1709 e: _Scheduler_guid++,
1710 f: task,
1711 g: null,
1712 h: []
1713 };
1715 _Scheduler_enqueue(proc);
1717 return proc;
1720function _Scheduler_spawn(task)
1722 return _Scheduler_binding(function(callback) {
1723 callback(_Scheduler_succeed(_Scheduler_rawSpawn(task)));
1724 });
1727function _Scheduler_rawSend(proc, msg)
1729 proc.h.push(msg);
1730 _Scheduler_enqueue(proc);
1733var _Scheduler_send = F2(function(proc, msg)
1735 return _Scheduler_binding(function(callback) {
1736 _Scheduler_rawSend(proc, msg);
1737 callback(_Scheduler_succeed(_Utils_Tuple0));
1738 });
1739});
1741function _Scheduler_kill(proc)
1743 return _Scheduler_binding(function(callback) {
1744 var task = proc.f;
1745 if (task.$ === 2 && task.c)
1747 task.c();
1750 proc.f = null;
1752 callback(_Scheduler_succeed(_Utils_Tuple0));
1753 });
1757/* STEP PROCESSES
1759type alias Process =
1760 { $ : tag
1761 , id : unique_id
1762 , root : Task
1763 , stack : null | { $: SUCCEED | FAIL, a: callback, b: stack }
1764 , mailbox : [msg]
1770var _Scheduler_working = false;
1771var _Scheduler_queue = [];
1774function _Scheduler_enqueue(proc)
1776 _Scheduler_queue.push(proc);
1777 if (_Scheduler_working)
1779 return;
1781 _Scheduler_working = true;
1782 while (proc = _Scheduler_queue.shift())
1784 _Scheduler_step(proc);
1786 _Scheduler_working = false;
1790function _Scheduler_step(proc)
1792 while (proc.f)
1794 var rootTag = proc.f.$;
1795 if (rootTag === 0 || rootTag === 1)
1797 while (proc.g && proc.g.$ !== rootTag)
1799 proc.g = proc.g.i;
1801 if (!proc.g)
1803 return;
1805 proc.f = proc.g.b(proc.f.a);
1806 proc.g = proc.g.i;
1808 else if (rootTag === 2)
1810 proc.f.c = proc.f.b(function(newRoot) {
1811 proc.f = newRoot;
1812 _Scheduler_enqueue(proc);
1813 });
1814 return;
1816 else if (rootTag === 5)
1818 if (proc.h.length === 0)
1820 return;
1822 proc.f = proc.f.b(proc.h.shift());
1824 else // if (rootTag === 3 || rootTag === 4)
1826 proc.g = {
1827 $: rootTag === 3 ? 0 : 1,
1828 b: proc.f.b,
1829 i: proc.g
1830 };
1831 proc.f = proc.f.d;
1838function _Process_sleep(time)
1840 return _Scheduler_binding(function(callback) {
1841 var id = setTimeout(function() {
1842 callback(_Scheduler_succeed(_Utils_Tuple0));
1843 }, time);
1845 return function() { clearTimeout(id); };
1846 });
1852// PROGRAMS
1855var _Platform_worker = F4(function(impl, flagDecoder, debugMetadata, args)
1857 return _Platform_initialize(
1858 flagDecoder,
1859 args,
1860 impl.init,
1861 impl.update,
1862 impl.subscriptions,
1863 function() { return function() {} }
1864 );
1865});
1869// INITIALIZE A PROGRAM
1872function _Platform_initialize(flagDecoder, args, init, update, subscriptions, stepperBuilder)
1874 var result = A2(_Json_run, flagDecoder, _Json_wrap(args ? args['flags'] : undefined));
1875 $elm$core$Result$isOk(result) || _Debug_crash(2 /**/, _Json_errorToString(result.a) /**/);
1876 var managers = {};
1877 var initPair = init(result.a);
1878 var model = initPair.a;
1879 var stepper = stepperBuilder(sendToApp, model);
1880 var ports = _Platform_setupEffects(managers, sendToApp);
1882 function sendToApp(msg, viewMetadata)
1884 var pair = A2(update, msg, model);
1885 stepper(model = pair.a, viewMetadata);
1886 _Platform_enqueueEffects(managers, pair.b, subscriptions(model));
1889 _Platform_enqueueEffects(managers, initPair.b, subscriptions(model));
1891 return ports ? { ports: ports } : {};
1896// TRACK PRELOADS
1898// This is used by code in elm/browser and elm/http
1899// to register any HTTP requests that are triggered by init.
1903var _Platform_preload;
1906function _Platform_registerPreload(url)
1908 _Platform_preload.add(url);
1913// EFFECT MANAGERS
1916var _Platform_effectManagers = {};
1919function _Platform_setupEffects(managers, sendToApp)
1921 var ports;
1923 // setup all necessary effect managers
1924 for (var key in _Platform_effectManagers)
1926 var manager = _Platform_effectManagers[key];
1928 if (manager.a)
1930 ports = ports || {};
1931 ports[key] = manager.a(key, sendToApp);
1934 managers[key] = _Platform_instantiateManager(manager, sendToApp);
1937 return ports;
1941function _Platform_createManager(init, onEffects, onSelfMsg, cmdMap, subMap)
1943 return {
1944 b: init,
1945 c: onEffects,
1946 d: onSelfMsg,
1947 e: cmdMap,
1948 f: subMap
1949 };
1953function _Platform_instantiateManager(info, sendToApp)
1955 var router = {
1956 g: sendToApp,
1957 h: undefined
1958 };
1960 var onEffects = info.c;
1961 var onSelfMsg = info.d;
1962 var cmdMap = info.e;
1963 var subMap = info.f;
1965 function loop(state)
1967 return A2(_Scheduler_andThen, loop, _Scheduler_receive(function(msg)
1969 var value = msg.a;
1971 if (msg.$ === 0)
1973 return A3(onSelfMsg, router, value, state);
1976 return cmdMap && subMap
1977 ? A4(onEffects, router, value.i, value.j, state)
1978 : A3(onEffects, router, cmdMap ? value.i : value.j, state);
1979 }));
1982 return router.h = _Scheduler_rawSpawn(A2(_Scheduler_andThen, loop, info.b));
1987// ROUTING
1990var _Platform_sendToApp = F2(function(router, msg)
1992 return _Scheduler_binding(function(callback)
1994 router.g(msg);
1995 callback(_Scheduler_succeed(_Utils_Tuple0));
1996 });
1997});
2000var _Platform_sendToSelf = F2(function(router, msg)
2002 return A2(_Scheduler_send, router.h, {
2003 $: 0,
2004 a: msg
2005 });
2006});
2010// BAGS
2013function _Platform_leaf(home)
2015 return function(value)
2017 return {
2018 $: 1,
2019 k: home,
2020 l: value
2021 };
2022 };
2026function _Platform_batch(list)
2028 return {
2029 $: 2,
2030 m: list
2031 };
2035var _Platform_map = F2(function(tagger, bag)
2037 return {
2038 $: 3,
2039 n: tagger,
2040 o: bag
2042});
2046// PIPE BAGS INTO EFFECT MANAGERS
2048// Effects must be queued!
2050// Say your init contains a synchronous command, like Time.now or Time.here
2052// - This will produce a batch of effects (FX_1)
2053// - The synchronous task triggers the subsequent `update` call
2054// - This will produce a batch of effects (FX_2)
2056// If we just start dispatching FX_2, subscriptions from FX_2 can be processed
2057// before subscriptions from FX_1. No good! Earlier versions of this code had
2058// this problem, leading to these reports:
2060// https://github.com/elm/core/issues/980
2061// https://github.com/elm/core/pull/981
2062// https://github.com/elm/compiler/issues/1776
2064// The queue is necessary to avoid ordering issues for synchronous commands.
2067// Why use true/false here? Why not just check the length of the queue?
2068// The goal is to detect "are we currently dispatching effects?" If we
2069// are, we need to bail and let the ongoing while loop handle things.
2071// Now say the queue has 1 element. When we dequeue the final element,
2072// the queue will be empty, but we are still actively dispatching effects.
2073// So you could get queue jumping in a really tricky category of cases.
2075var _Platform_effectsQueue = [];
2076var _Platform_effectsActive = false;
2079function _Platform_enqueueEffects(managers, cmdBag, subBag)
2081 _Platform_effectsQueue.push({ p: managers, q: cmdBag, r: subBag });
2083 if (_Platform_effectsActive) return;
2085 _Platform_effectsActive = true;
2086 for (var fx; fx = _Platform_effectsQueue.shift(); )
2088 _Platform_dispatchEffects(fx.p, fx.q, fx.r);
2090 _Platform_effectsActive = false;
2094function _Platform_dispatchEffects(managers, cmdBag, subBag)
2096 var effectsDict = {};
2097 _Platform_gatherEffects(true, cmdBag, effectsDict, null);
2098 _Platform_gatherEffects(false, subBag, effectsDict, null);
2100 for (var home in managers)
2102 _Scheduler_rawSend(managers[home], {
2103 $: 'fx',
2104 a: effectsDict[home] || { i: _List_Nil, j: _List_Nil }
2105 });
2110function _Platform_gatherEffects(isCmd, bag, effectsDict, taggers)
2112 switch (bag.$)
2114 case 1:
2115 var home = bag.k;
2116 var effect = _Platform_toEffect(isCmd, home, taggers, bag.l);
2117 effectsDict[home] = _Platform_insert(isCmd, effect, effectsDict[home]);
2118 return;
2120 case 2:
2121 for (var list = bag.m; list.b; list = list.b) // WHILE_CONS
2123 _Platform_gatherEffects(isCmd, list.a, effectsDict, taggers);
2125 return;
2127 case 3:
2128 _Platform_gatherEffects(isCmd, bag.o, effectsDict, {
2129 s: bag.n,
2130 t: taggers
2131 });
2132 return;
2137function _Platform_toEffect(isCmd, home, taggers, value)
2139 function applyTaggers(x)
2141 for (var temp = taggers; temp; temp = temp.t)
2143 x = temp.s(x);
2145 return x;
2148 var map = isCmd
2149 ? _Platform_effectManagers[home].e
2150 : _Platform_effectManagers[home].f;
2152 return A2(map, applyTaggers, value)
2156function _Platform_insert(isCmd, newEffect, effects)
2158 effects = effects || { i: _List_Nil, j: _List_Nil };
2160 isCmd
2161 ? (effects.i = _List_Cons(newEffect, effects.i))
2162 : (effects.j = _List_Cons(newEffect, effects.j));
2164 return effects;
2169// PORTS
2172function _Platform_checkPortName(name)
2174 if (_Platform_effectManagers[name])
2176 _Debug_crash(3, name)
2182// OUTGOING PORTS
2185function _Platform_outgoingPort(name, converter)
2187 _Platform_checkPortName(name);
2188 _Platform_effectManagers[name] = {
2189 e: _Platform_outgoingPortMap,
2190 u: converter,
2191 a: _Platform_setupOutgoingPort
2192 };
2193 return _Platform_leaf(name);
2197var _Platform_outgoingPortMap = F2(function(tagger, value) { return value; });
2200function _Platform_setupOutgoingPort(name)
2202 var subs = [];
2203 var converter = _Platform_effectManagers[name].u;
2205 // CREATE MANAGER
2207 var init = _Process_sleep(0);
2209 _Platform_effectManagers[name].b = init;
2210 _Platform_effectManagers[name].c = F3(function(router, cmdList, state)
2212 for ( ; cmdList.b; cmdList = cmdList.b) // WHILE_CONS
2214 // grab a separate reference to subs in case unsubscribe is called
2215 var currentSubs = subs;
2216 var value = _Json_unwrap(converter(cmdList.a));
2217 for (var i = 0; i < currentSubs.length; i++)
2219 currentSubs[i](value);
2222 return init;
2223 });
2225 // PUBLIC API
2227 function subscribe(callback)
2229 subs.push(callback);
2232 function unsubscribe(callback)
2234 // copy subs into a new array in case unsubscribe is called within a
2235 // subscribed callback
2236 subs = subs.slice();
2237 var index = subs.indexOf(callback);
2238 if (index >= 0)
2240 subs.splice(index, 1);
2244 return {
2245 subscribe: subscribe,
2246 unsubscribe: unsubscribe
2247 };
2252// INCOMING PORTS
2255function _Platform_incomingPort(name, converter)
2257 _Platform_checkPortName(name);
2258 _Platform_effectManagers[name] = {
2259 f: _Platform_incomingPortMap,
2260 u: converter,
2261 a: _Platform_setupIncomingPort
2262 };
2263 return _Platform_leaf(name);
2267var _Platform_incomingPortMap = F2(function(tagger, finalTagger)
2269 return function(value)
2271 return tagger(finalTagger(value));
2272 };
2273});
2276function _Platform_setupIncomingPort(name, sendToApp)
2278 var subs = _List_Nil;
2279 var converter = _Platform_effectManagers[name].u;
2281 // CREATE MANAGER
2283 var init = _Scheduler_succeed(null);
2285 _Platform_effectManagers[name].b = init;
2286 _Platform_effectManagers[name].c = F3(function(router, subList, state)
2288 subs = subList;
2289 return init;
2290 });
2292 // PUBLIC API
2294 function send(incomingValue)
2296 var result = A2(_Json_run, converter, _Json_wrap(incomingValue));
2298 $elm$core$Result$isOk(result) || _Debug_crash(4, name, result.a);
2300 var value = result.a;
2301 for (var temp = subs; temp.b; temp = temp.b) // WHILE_CONS
2303 sendToApp(temp.a(value));
2307 return { send: send };
2312// EXPORT ELM MODULES
2314// Have DEBUG and PROD versions so that we can (1) give nicer errors in
2315// debug mode and (2) not pay for the bits needed for that in prod mode.
2319function _Platform_export_UNUSED(exports)
2321 scope['Elm']
2322 ? _Platform_mergeExportsProd(scope['Elm'], exports)
2323 : scope['Elm'] = exports;
2327function _Platform_mergeExportsProd(obj, exports)
2329 for (var name in exports)
2331 (name in obj)
2332 ? (name == 'init')
2333 ? _Debug_crash(6)
2334 : _Platform_mergeExportsProd(obj[name], exports[name])
2335 : (obj[name] = exports[name]);
2340function _Platform_export(exports)
2342 scope['Elm']
2343 ? _Platform_mergeExportsDebug('Elm', scope['Elm'], exports)
2344 : scope['Elm'] = exports;
2348function _Platform_mergeExportsDebug(moduleName, obj, exports)
2350 for (var name in exports)
2352 (name in obj)
2353 ? (name == 'init')
2354 ? _Debug_crash(6, moduleName)
2355 : _Platform_mergeExportsDebug(moduleName + '.' + name, obj[name], exports[name])
2356 : (obj[name] = exports[name]);
2363// HELPERS
2366var _VirtualDom_divertHrefToApp;
2368var _VirtualDom_doc = typeof document !== 'undefined' ? document : {};
2371function _VirtualDom_appendChild(parent, child)
2373 parent.appendChild(child);
2376var _VirtualDom_init = F4(function(virtualNode, flagDecoder, debugMetadata, args)
2378 // NOTE: this function needs _Platform_export available to work
2380 /**_UNUSED/
2381 var node = args['node'];
2382 //*/
2383 /**/
2384 var node = args && args['node'] ? args['node'] : _Debug_crash(0);
2385 //*/
2387 node.parentNode.replaceChild(
2388 _VirtualDom_render(virtualNode, function() {}),
2389 node
2390 );
2392 return {};
2393});
2397// TEXT
2400function _VirtualDom_text(string)
2402 return {
2403 $: 0,
2404 a: string
2405 };
2410// NODE
2413var _VirtualDom_nodeNS = F2(function(namespace, tag)
2415 return F2(function(factList, kidList)
2417 for (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS
2419 var kid = kidList.a;
2420 descendantsCount += (kid.b || 0);
2421 kids.push(kid);
2423 descendantsCount += kids.length;
2425 return {
2426 $: 1,
2427 c: tag,
2428 d: _VirtualDom_organizeFacts(factList),
2429 e: kids,
2430 f: namespace,
2431 b: descendantsCount
2432 };
2433 });
2434});
2437var _VirtualDom_node = _VirtualDom_nodeNS(undefined);
2441// KEYED NODE
2444var _VirtualDom_keyedNodeNS = F2(function(namespace, tag)
2446 return F2(function(factList, kidList)
2448 for (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS
2450 var kid = kidList.a;
2451 descendantsCount += (kid.b.b || 0);
2452 kids.push(kid);
2454 descendantsCount += kids.length;
2456 return {
2457 $: 2,
2458 c: tag,
2459 d: _VirtualDom_organizeFacts(factList),
2460 e: kids,
2461 f: namespace,
2462 b: descendantsCount
2463 };
2464 });
2465});
2468var _VirtualDom_keyedNode = _VirtualDom_keyedNodeNS(undefined);
2472// CUSTOM
2475function _VirtualDom_custom(factList, model, render, diff)
2477 return {
2478 $: 3,
2479 d: _VirtualDom_organizeFacts(factList),
2480 g: model,
2481 h: render,
2482 i: diff
2483 };
2488// MAP
2491var _VirtualDom_map = F2(function(tagger, node)
2493 return {
2494 $: 4,
2495 j: tagger,
2496 k: node,
2497 b: 1 + (node.b || 0)
2498 };
2499});
2503// LAZY
2506function _VirtualDom_thunk(refs, thunk)
2508 return {
2509 $: 5,
2510 l: refs,
2511 m: thunk,
2512 k: undefined
2513 };
2516var _VirtualDom_lazy = F2(function(func, a)
2518 return _VirtualDom_thunk([func, a], function() {
2519 return func(a);
2520 });
2521});
2523var _VirtualDom_lazy2 = F3(function(func, a, b)
2525 return _VirtualDom_thunk([func, a, b], function() {
2526 return A2(func, a, b);
2527 });
2528});
2530var _VirtualDom_lazy3 = F4(function(func, a, b, c)
2532 return _VirtualDom_thunk([func, a, b, c], function() {
2533 return A3(func, a, b, c);
2534 });
2535});
2537var _VirtualDom_lazy4 = F5(function(func, a, b, c, d)
2539 return _VirtualDom_thunk([func, a, b, c, d], function() {
2540 return A4(func, a, b, c, d);
2541 });
2542});
2544var _VirtualDom_lazy5 = F6(function(func, a, b, c, d, e)
2546 return _VirtualDom_thunk([func, a, b, c, d, e], function() {
2547 return A5(func, a, b, c, d, e);
2548 });
2549});
2551var _VirtualDom_lazy6 = F7(function(func, a, b, c, d, e, f)
2553 return _VirtualDom_thunk([func, a, b, c, d, e, f], function() {
2554 return A6(func, a, b, c, d, e, f);
2555 });
2556});
2558var _VirtualDom_lazy7 = F8(function(func, a, b, c, d, e, f, g)
2560 return _VirtualDom_thunk([func, a, b, c, d, e, f, g], function() {
2561 return A7(func, a, b, c, d, e, f, g);
2562 });
2563});
2565var _VirtualDom_lazy8 = F9(function(func, a, b, c, d, e, f, g, h)
2567 return _VirtualDom_thunk([func, a, b, c, d, e, f, g, h], function() {
2568 return A8(func, a, b, c, d, e, f, g, h);
2569 });
2570});
2574// FACTS
2577var _VirtualDom_on = F2(function(key, handler)
2579 return {
2580 $: 'a0',
2581 n: key,
2582 o: handler
2583 };
2584});
2585var _VirtualDom_style = F2(function(key, value)
2587 return {
2588 $: 'a1',
2589 n: key,
2590 o: value
2591 };
2592});
2593var _VirtualDom_property = F2(function(key, value)
2595 return {
2596 $: 'a2',
2597 n: key,
2598 o: value
2599 };
2600});
2601var _VirtualDom_attribute = F2(function(key, value)
2603 return {
2604 $: 'a3',
2605 n: key,
2606 o: value
2607 };
2608});
2609var _VirtualDom_attributeNS = F3(function(namespace, key, value)
2611 return {
2612 $: 'a4',
2613 n: key,
2614 o: { f: namespace, o: value }
2615 };
2616});
2620// XSS ATTACK VECTOR CHECKS
2622// For some reason, tabs can appear in href protocols and it still works.
2623// So '\tjava\tSCRIPT:alert("!!!")' and 'javascript:alert("!!!")' are the same
2624// in practice. That is why _VirtualDom_RE_js and _VirtualDom_RE_js_html look
2625// so freaky.
2627// Pulling the regular expressions out to the top level gives a slight speed
2628// boost in small benchmarks (4-10%) but hoisting values to reduce allocation
2629// can be unpredictable in large programs where JIT may have a harder time with
2630// functions are not fully self-contained. The benefit is more that the js and
2631// js_html ones are so weird that I prefer to see them near each other.
2634var _VirtualDom_RE_script = /^script$/i;
2635var _VirtualDom_RE_on_formAction = /^(on|formAction$)/i;
2636var _VirtualDom_RE_js = /^\s*j\s*a\s*v\s*a\s*s\s*c\s*r\s*i\s*p\s*t\s*:/i;
2637var _VirtualDom_RE_js_html = /^\s*(j\s*a\s*v\s*a\s*s\s*c\s*r\s*i\s*p\s*t\s*:|d\s*a\s*t\s*a\s*:\s*t\s*e\s*x\s*t\s*\/\s*h\s*t\s*m\s*l\s*(,|;))/i;
2640function _VirtualDom_noScript(tag)
2642 return _VirtualDom_RE_script.test(tag) ? 'p' : tag;
2645function _VirtualDom_noOnOrFormAction(key)
2647 return _VirtualDom_RE_on_formAction.test(key) ? 'data-' + key : key;
2650function _VirtualDom_noInnerHtmlOrFormAction(key)
2652 return key == 'innerHTML' || key == 'formAction' ? 'data-' + key : key;
2655function _VirtualDom_noJavaScriptUri(value)
2657 return _VirtualDom_RE_js.test(value)
2658 ? /**_UNUSED/''//*//**/'javascript:alert("This is an XSS vector. Please use ports or web components instead.")'//*/
2659 : value;
2662function _VirtualDom_noJavaScriptOrHtmlUri(value)
2664 return _VirtualDom_RE_js_html.test(value)
2665 ? /**_UNUSED/''//*//**/'javascript:alert("This is an XSS vector. Please use ports or web components instead.")'//*/
2666 : value;
2669function _VirtualDom_noJavaScriptOrHtmlJson(value)
2671 return (typeof _Json_unwrap(value) === 'string' && _VirtualDom_RE_js_html.test(_Json_unwrap(value)))
2672 ? _Json_wrap(
2673 /**_UNUSED/''//*//**/'javascript:alert("This is an XSS vector. Please use ports or web components instead.")'//*/
2674 ) : value;
2679// MAP FACTS
2682var _VirtualDom_mapAttribute = F2(function(func, attr)
2684 return (attr.$ === 'a0')
2685 ? A2(_VirtualDom_on, attr.n, _VirtualDom_mapHandler(func, attr.o))
2686 : attr;
2687});
2689function _VirtualDom_mapHandler(func, handler)
2691 var tag = $elm$virtual_dom$VirtualDom$toHandlerInt(handler);
2693 // 0 = Normal
2694 // 1 = MayStopPropagation
2695 // 2 = MayPreventDefault
2696 // 3 = Custom
2698 return {
2699 $: handler.$,
2700 a:
2701 !tag
2702 ? A2($elm$json$Json$Decode$map, func, handler.a)
2704 A3($elm$json$Json$Decode$map2,
2705 tag < 3
2706 ? _VirtualDom_mapEventTuple
2707 : _VirtualDom_mapEventRecord,
2708 $elm$json$Json$Decode$succeed(func),
2709 handler.a
2711 };
2714var _VirtualDom_mapEventTuple = F2(function(func, tuple)
2716 return _Utils_Tuple2(func(tuple.a), tuple.b);
2717});
2719var _VirtualDom_mapEventRecord = F2(function(func, record)
2721 return {
2722 message: func(record.message),
2723 stopPropagation: record.stopPropagation,
2724 preventDefault: record.preventDefault
2726});
2730// ORGANIZE FACTS
2733function _VirtualDom_organizeFacts(factList)
2735 for (var facts = {}; factList.b; factList = factList.b) // WHILE_CONS
2737 var entry = factList.a;
2739 var tag = entry.$;
2740 var key = entry.n;
2741 var value = entry.o;
2743 if (tag === 'a2')
2745 (key === 'className')
2746 ? _VirtualDom_addClass(facts, key, _Json_unwrap(value))
2747 : facts[key] = _Json_unwrap(value);
2749 continue;
2752 var subFacts = facts[tag] || (facts[tag] = {});
2753 (tag === 'a3' && key === 'class')
2754 ? _VirtualDom_addClass(subFacts, key, value)
2755 : subFacts[key] = value;
2758 return facts;
2761function _VirtualDom_addClass(object, key, newClass)
2763 var classes = object[key];
2764 object[key] = classes ? classes + ' ' + newClass : newClass;
2769// RENDER
2772function _VirtualDom_render(vNode, eventNode)
2774 var tag = vNode.$;
2776 if (tag === 5)
2778 return _VirtualDom_render(vNode.k || (vNode.k = vNode.m()), eventNode);
2781 if (tag === 0)
2783 return _VirtualDom_doc.createTextNode(vNode.a);
2786 if (tag === 4)
2788 var subNode = vNode.k;
2789 var tagger = vNode.j;
2791 while (subNode.$ === 4)
2793 typeof tagger !== 'object'
2794 ? tagger = [tagger, subNode.j]
2795 : tagger.push(subNode.j);
2797 subNode = subNode.k;
2800 var subEventRoot = { j: tagger, p: eventNode };
2801 var domNode = _VirtualDom_render(subNode, subEventRoot);
2802 domNode.elm_event_node_ref = subEventRoot;
2803 return domNode;
2806 if (tag === 3)
2808 var domNode = vNode.h(vNode.g);
2809 _VirtualDom_applyFacts(domNode, eventNode, vNode.d);
2810 return domNode;
2813 // at this point `tag` must be 1 or 2
2815 var domNode = vNode.f
2816 ? _VirtualDom_doc.createElementNS(vNode.f, vNode.c)
2817 : _VirtualDom_doc.createElement(vNode.c);
2819 if (_VirtualDom_divertHrefToApp && vNode.c == 'a')
2821 domNode.addEventListener('click', _VirtualDom_divertHrefToApp(domNode));
2824 _VirtualDom_applyFacts(domNode, eventNode, vNode.d);
2826 for (var kids = vNode.e, i = 0; i < kids.length; i++)
2828 _VirtualDom_appendChild(domNode, _VirtualDom_render(tag === 1 ? kids[i] : kids[i].b, eventNode));
2831 return domNode;
2836// APPLY FACTS
2839function _VirtualDom_applyFacts(domNode, eventNode, facts)
2841 for (var key in facts)
2843 var value = facts[key];
2845 key === 'a1'
2846 ? _VirtualDom_applyStyles(domNode, value)
2848 key === 'a0'
2849 ? _VirtualDom_applyEvents(domNode, eventNode, value)
2851 key === 'a3'
2852 ? _VirtualDom_applyAttrs(domNode, value)
2854 key === 'a4'
2855 ? _VirtualDom_applyAttrsNS(domNode, value)
2857 ((key !== 'value' && key !== 'checked') || domNode[key] !== value) && (domNode[key] = value);
2863// APPLY STYLES
2866function _VirtualDom_applyStyles(domNode, styles)
2868 var domNodeStyle = domNode.style;
2870 for (var key in styles)
2872 domNodeStyle[key] = styles[key];
2878// APPLY ATTRS
2881function _VirtualDom_applyAttrs(domNode, attrs)
2883 for (var key in attrs)
2885 var value = attrs[key];
2886 typeof value !== 'undefined'
2887 ? domNode.setAttribute(key, value)
2888 : domNode.removeAttribute(key);
2894// APPLY NAMESPACED ATTRS
2897function _VirtualDom_applyAttrsNS(domNode, nsAttrs)
2899 for (var key in nsAttrs)
2901 var pair = nsAttrs[key];
2902 var namespace = pair.f;
2903 var value = pair.o;
2905 typeof value !== 'undefined'
2906 ? domNode.setAttributeNS(namespace, key, value)
2907 : domNode.removeAttributeNS(namespace, key);
2913// APPLY EVENTS
2916function _VirtualDom_applyEvents(domNode, eventNode, events)
2918 var allCallbacks = domNode.elmFs || (domNode.elmFs = {});
2920 for (var key in events)
2922 var newHandler = events[key];
2923 var oldCallback = allCallbacks[key];
2925 if (!newHandler)
2927 domNode.removeEventListener(key, oldCallback);
2928 allCallbacks[key] = undefined;
2929 continue;
2932 if (oldCallback)
2934 var oldHandler = oldCallback.q;
2935 if (oldHandler.$ === newHandler.$)
2937 oldCallback.q = newHandler;
2938 continue;
2940 domNode.removeEventListener(key, oldCallback);
2943 oldCallback = _VirtualDom_makeCallback(eventNode, newHandler);
2944 domNode.addEventListener(key, oldCallback,
2945 _VirtualDom_passiveSupported
2946 && { passive: $elm$virtual_dom$VirtualDom$toHandlerInt(newHandler) < 2 }
2947 );
2948 allCallbacks[key] = oldCallback;
2954// PASSIVE EVENTS
2957var _VirtualDom_passiveSupported;
2959try
2961 window.addEventListener('t', null, Object.defineProperty({}, 'passive', {
2962 get: function() { _VirtualDom_passiveSupported = true; }
2963 }));
2965catch(e) {}
2969// EVENT HANDLERS
2972function _VirtualDom_makeCallback(eventNode, initialHandler)
2974 function callback(event)
2976 var handler = callback.q;
2977 var result = _Json_runHelp(handler.a, event);
2979 if (!$elm$core$Result$isOk(result))
2981 return;
2984 var tag = $elm$virtual_dom$VirtualDom$toHandlerInt(handler);
2986 // 0 = Normal
2987 // 1 = MayStopPropagation
2988 // 2 = MayPreventDefault
2989 // 3 = Custom
2991 var value = result.a;
2992 var message = !tag ? value : tag < 3 ? value.a : value.message;
2993 var stopPropagation = tag == 1 ? value.b : tag == 3 && value.stopPropagation;
2994 var currentEventNode = (
2995 stopPropagation && event.stopPropagation(),
2996 (tag == 2 ? value.b : tag == 3 && value.preventDefault) && event.preventDefault(),
2997 eventNode
2998 );
2999 var tagger;
3000 var i;
3001 while (tagger = currentEventNode.j)
3003 if (typeof tagger == 'function')
3005 message = tagger(message);
3007 else
3009 for (var i = tagger.length; i--; )
3011 message = tagger[i](message);
3014 currentEventNode = currentEventNode.p;
3016 currentEventNode(message, stopPropagation); // stopPropagation implies isSync
3019 callback.q = initialHandler;
3021 return callback;
3024function _VirtualDom_equalEvents(x, y)
3026 return x.$ == y.$ && _Json_equality(x.a, y.a);
3031// DIFF
3034// TODO: Should we do patches like in iOS?
3036// type Patch
3037// = At Int Patch
3038// | Batch (List Patch)
3039// | Change ...
3041// How could it not be better?
3043function _VirtualDom_diff(x, y)
3045 var patches = [];
3046 _VirtualDom_diffHelp(x, y, patches, 0);
3047 return patches;
3051function _VirtualDom_pushPatch(patches, type, index, data)
3053 var patch = {
3054 $: type,
3055 r: index,
3056 s: data,
3057 t: undefined,
3058 u: undefined
3059 };
3060 patches.push(patch);
3061 return patch;
3065function _VirtualDom_diffHelp(x, y, patches, index)
3067 if (x === y)
3069 return;
3072 var xType = x.$;
3073 var yType = y.$;
3075 // Bail if you run into different types of nodes. Implies that the
3076 // structure has changed significantly and it's not worth a diff.
3077 if (xType !== yType)
3079 if (xType === 1 && yType === 2)
3081 y = _VirtualDom_dekey(y);
3082 yType = 1;
3084 else
3086 _VirtualDom_pushPatch(patches, 0, index, y);
3087 return;
3091 // Now we know that both nodes are the same $.
3092 switch (yType)
3094 case 5:
3095 var xRefs = x.l;
3096 var yRefs = y.l;
3097 var i = xRefs.length;
3098 var same = i === yRefs.length;
3099 while (same && i--)
3101 same = xRefs[i] === yRefs[i];
3103 if (same)
3105 y.k = x.k;
3106 return;
3108 y.k = y.m();
3109 var subPatches = [];
3110 _VirtualDom_diffHelp(x.k, y.k, subPatches, 0);
3111 subPatches.length > 0 && _VirtualDom_pushPatch(patches, 1, index, subPatches);
3112 return;
3114 case 4:
3115 // gather nested taggers
3116 var xTaggers = x.j;
3117 var yTaggers = y.j;
3118 var nesting = false;
3120 var xSubNode = x.k;
3121 while (xSubNode.$ === 4)
3123 nesting = true;
3125 typeof xTaggers !== 'object'
3126 ? xTaggers = [xTaggers, xSubNode.j]
3127 : xTaggers.push(xSubNode.j);
3129 xSubNode = xSubNode.k;
3132 var ySubNode = y.k;
3133 while (ySubNode.$ === 4)
3135 nesting = true;
3137 typeof yTaggers !== 'object'
3138 ? yTaggers = [yTaggers, ySubNode.j]
3139 : yTaggers.push(ySubNode.j);
3141 ySubNode = ySubNode.k;
3144 // Just bail if different numbers of taggers. This implies the
3145 // structure of the virtual DOM has changed.
3146 if (nesting && xTaggers.length !== yTaggers.length)
3148 _VirtualDom_pushPatch(patches, 0, index, y);
3149 return;
3152 // check if taggers are "the same"
3153 if (nesting ? !_VirtualDom_pairwiseRefEqual(xTaggers, yTaggers) : xTaggers !== yTaggers)
3155 _VirtualDom_pushPatch(patches, 2, index, yTaggers);
3158 // diff everything below the taggers
3159 _VirtualDom_diffHelp(xSubNode, ySubNode, patches, index + 1);
3160 return;
3162 case 0:
3163 if (x.a !== y.a)
3165 _VirtualDom_pushPatch(patches, 3, index, y.a);
3167 return;
3169 case 1:
3170 _VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKids);
3171 return;
3173 case 2:
3174 _VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKeyedKids);
3175 return;
3177 case 3:
3178 if (x.h !== y.h)
3180 _VirtualDom_pushPatch(patches, 0, index, y);
3181 return;
3184 var factsDiff = _VirtualDom_diffFacts(x.d, y.d);
3185 factsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff);
3187 var patch = y.i(x.g, y.g);
3188 patch && _VirtualDom_pushPatch(patches, 5, index, patch);
3190 return;
3194// assumes the incoming arrays are the same length
3195function _VirtualDom_pairwiseRefEqual(as, bs)
3197 for (var i = 0; i < as.length; i++)
3199 if (as[i] !== bs[i])
3201 return false;
3205 return true;
3208function _VirtualDom_diffNodes(x, y, patches, index, diffKids)
3210 // Bail if obvious indicators have changed. Implies more serious
3211 // structural changes such that it's not worth it to diff.
3212 if (x.c !== y.c || x.f !== y.f)
3214 _VirtualDom_pushPatch(patches, 0, index, y);
3215 return;
3218 var factsDiff = _VirtualDom_diffFacts(x.d, y.d);
3219 factsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff);
3221 diffKids(x, y, patches, index);
3226// DIFF FACTS
3229// TODO Instead of creating a new diff object, it's possible to just test if
3230// there *is* a diff. During the actual patch, do the diff again and make the
3231// modifications directly. This way, there's no new allocations. Worth it?
3232function _VirtualDom_diffFacts(x, y, category)
3234 var diff;
3236 // look for changes and removals
3237 for (var xKey in x)
3239 if (xKey === 'a1' || xKey === 'a0' || xKey === 'a3' || xKey === 'a4')
3241 var subDiff = _VirtualDom_diffFacts(x[xKey], y[xKey] || {}, xKey);
3242 if (subDiff)
3244 diff = diff || {};
3245 diff[xKey] = subDiff;
3247 continue;
3250 // remove if not in the new facts
3251 if (!(xKey in y))
3253 diff = diff || {};
3254 diff[xKey] =
3255 !category
3256 ? (typeof x[xKey] === 'string' ? '' : null)
3258 (category === 'a1')
3259 ? ''
3261 (category === 'a0' || category === 'a3')
3262 ? undefined
3264 { f: x[xKey].f, o: undefined };
3266 continue;
3269 var xValue = x[xKey];
3270 var yValue = y[xKey];
3272 // reference equal, so don't worry about it
3273 if (xValue === yValue && xKey !== 'value' && xKey !== 'checked'
3274 || category === 'a0' && _VirtualDom_equalEvents(xValue, yValue))
3276 continue;
3279 diff = diff || {};
3280 diff[xKey] = yValue;
3283 // add new stuff
3284 for (var yKey in y)
3286 if (!(yKey in x))
3288 diff = diff || {};
3289 diff[yKey] = y[yKey];
3293 return diff;
3298// DIFF KIDS
3301function _VirtualDom_diffKids(xParent, yParent, patches, index)
3303 var xKids = xParent.e;
3304 var yKids = yParent.e;
3306 var xLen = xKids.length;
3307 var yLen = yKids.length;
3309 // FIGURE OUT IF THERE ARE INSERTS OR REMOVALS
3311 if (xLen > yLen)
3313 _VirtualDom_pushPatch(patches, 6, index, {
3314 v: yLen,
3315 i: xLen - yLen
3316 });
3318 else if (xLen < yLen)
3320 _VirtualDom_pushPatch(patches, 7, index, {
3321 v: xLen,
3322 e: yKids
3323 });
3326 // PAIRWISE DIFF EVERYTHING ELSE
3328 for (var minLen = xLen < yLen ? xLen : yLen, i = 0; i < minLen; i++)
3330 var xKid = xKids[i];
3331 _VirtualDom_diffHelp(xKid, yKids[i], patches, ++index);
3332 index += xKid.b || 0;
3338// KEYED DIFF
3341function _VirtualDom_diffKeyedKids(xParent, yParent, patches, rootIndex)
3343 var localPatches = [];
3345 var changes = {}; // Dict String Entry
3346 var inserts = []; // Array { index : Int, entry : Entry }
3347 // type Entry = { tag : String, vnode : VNode, index : Int, data : _ }
3349 var xKids = xParent.e;
3350 var yKids = yParent.e;
3351 var xLen = xKids.length;
3352 var yLen = yKids.length;
3353 var xIndex = 0;
3354 var yIndex = 0;
3356 var index = rootIndex;
3358 while (xIndex < xLen && yIndex < yLen)
3360 var x = xKids[xIndex];
3361 var y = yKids[yIndex];
3363 var xKey = x.a;
3364 var yKey = y.a;
3365 var xNode = x.b;
3366 var yNode = y.b;
3368 var newMatch = undefined;
3369 var oldMatch = undefined;
3371 // check if keys match
3373 if (xKey === yKey)
3375 index++;
3376 _VirtualDom_diffHelp(xNode, yNode, localPatches, index);
3377 index += xNode.b || 0;
3379 xIndex++;
3380 yIndex++;
3381 continue;
3384 // look ahead 1 to detect insertions and removals.
3386 var xNext = xKids[xIndex + 1];
3387 var yNext = yKids[yIndex + 1];
3389 if (xNext)
3391 var xNextKey = xNext.a;
3392 var xNextNode = xNext.b;
3393 oldMatch = yKey === xNextKey;
3396 if (yNext)
3398 var yNextKey = yNext.a;
3399 var yNextNode = yNext.b;
3400 newMatch = xKey === yNextKey;
3404 // swap x and y
3405 if (newMatch && oldMatch)
3407 index++;
3408 _VirtualDom_diffHelp(xNode, yNextNode, localPatches, index);
3409 _VirtualDom_insertNode(changes, localPatches, xKey, yNode, yIndex, inserts);
3410 index += xNode.b || 0;
3412 index++;
3413 _VirtualDom_removeNode(changes, localPatches, xKey, xNextNode, index);
3414 index += xNextNode.b || 0;
3416 xIndex += 2;
3417 yIndex += 2;
3418 continue;
3421 // insert y
3422 if (newMatch)
3424 index++;
3425 _VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts);
3426 _VirtualDom_diffHelp(xNode, yNextNode, localPatches, index);
3427 index += xNode.b || 0;
3429 xIndex += 1;
3430 yIndex += 2;
3431 continue;
3434 // remove x
3435 if (oldMatch)
3437 index++;
3438 _VirtualDom_removeNode(changes, localPatches, xKey, xNode, index);
3439 index += xNode.b || 0;
3441 index++;
3442 _VirtualDom_diffHelp(xNextNode, yNode, localPatches, index);
3443 index += xNextNode.b || 0;
3445 xIndex += 2;
3446 yIndex += 1;
3447 continue;
3450 // remove x, insert y
3451 if (xNext && xNextKey === yNextKey)
3453 index++;
3454 _VirtualDom_removeNode(changes, localPatches, xKey, xNode, index);
3455 _VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts);
3456 index += xNode.b || 0;
3458 index++;
3459 _VirtualDom_diffHelp(xNextNode, yNextNode, localPatches, index);
3460 index += xNextNode.b || 0;
3462 xIndex += 2;
3463 yIndex += 2;
3464 continue;
3467 break;
3470 // eat up any remaining nodes with removeNode and insertNode
3472 while (xIndex < xLen)
3474 index++;
3475 var x = xKids[xIndex];
3476 var xNode = x.b;
3477 _VirtualDom_removeNode(changes, localPatches, x.a, xNode, index);
3478 index += xNode.b || 0;
3479 xIndex++;
3482 while (yIndex < yLen)
3484 var endInserts = endInserts || [];
3485 var y = yKids[yIndex];
3486 _VirtualDom_insertNode(changes, localPatches, y.a, y.b, undefined, endInserts);
3487 yIndex++;
3490 if (localPatches.length > 0 || inserts.length > 0 || endInserts)
3492 _VirtualDom_pushPatch(patches, 8, rootIndex, {
3493 w: localPatches,
3494 x: inserts,
3495 y: endInserts
3496 });
3502// CHANGES FROM KEYED DIFF
3505var _VirtualDom_POSTFIX = '_elmW6BL';
3508function _VirtualDom_insertNode(changes, localPatches, key, vnode, yIndex, inserts)
3510 var entry = changes[key];
3512 // never seen this key before
3513 if (!entry)
3515 entry = {
3516 c: 0,
3517 z: vnode,
3518 r: yIndex,
3519 s: undefined
3520 };
3522 inserts.push({ r: yIndex, A: entry });
3523 changes[key] = entry;
3525 return;
3528 // this key was removed earlier, a match!
3529 if (entry.c === 1)
3531 inserts.push({ r: yIndex, A: entry });
3533 entry.c = 2;
3534 var subPatches = [];
3535 _VirtualDom_diffHelp(entry.z, vnode, subPatches, entry.r);
3536 entry.r = yIndex;
3537 entry.s.s = {
3538 w: subPatches,
3539 A: entry
3540 };
3542 return;
3545 // this key has already been inserted or moved, a duplicate!
3546 _VirtualDom_insertNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, yIndex, inserts);
3550function _VirtualDom_removeNode(changes, localPatches, key, vnode, index)
3552 var entry = changes[key];
3554 // never seen this key before
3555 if (!entry)
3557 var patch = _VirtualDom_pushPatch(localPatches, 9, index, undefined);
3559 changes[key] = {
3560 c: 1,
3561 z: vnode,
3562 r: index,
3563 s: patch
3564 };
3566 return;
3569 // this key was inserted earlier, a match!
3570 if (entry.c === 0)
3572 entry.c = 2;
3573 var subPatches = [];
3574 _VirtualDom_diffHelp(vnode, entry.z, subPatches, index);
3576 _VirtualDom_pushPatch(localPatches, 9, index, {
3577 w: subPatches,
3578 A: entry
3579 });
3581 return;
3584 // this key has already been removed or moved, a duplicate!
3585 _VirtualDom_removeNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, index);
3590// ADD DOM NODES
3592// Each DOM node has an "index" assigned in order of traversal. It is important
3593// to minimize our crawl over the actual DOM, so these indexes (along with the
3594// descendantsCount of virtual nodes) let us skip touching entire subtrees of
3595// the DOM if we know there are no patches there.
3598function _VirtualDom_addDomNodes(domNode, vNode, patches, eventNode)
3600 _VirtualDom_addDomNodesHelp(domNode, vNode, patches, 0, 0, vNode.b, eventNode);
3604// assumes `patches` is non-empty and indexes increase monotonically.
3605function _VirtualDom_addDomNodesHelp(domNode, vNode, patches, i, low, high, eventNode)
3607 var patch = patches[i];
3608 var index = patch.r;
3610 while (index === low)
3612 var patchType = patch.$;
3614 if (patchType === 1)
3616 _VirtualDom_addDomNodes(domNode, vNode.k, patch.s, eventNode);
3618 else if (patchType === 8)
3620 patch.t = domNode;
3621 patch.u = eventNode;
3623 var subPatches = patch.s.w;
3624 if (subPatches.length > 0)
3626 _VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode);
3629 else if (patchType === 9)
3631 patch.t = domNode;
3632 patch.u = eventNode;
3634 var data = patch.s;
3635 if (data)
3637 data.A.s = domNode;
3638 var subPatches = data.w;
3639 if (subPatches.length > 0)
3641 _VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode);
3645 else
3647 patch.t = domNode;
3648 patch.u = eventNode;
3651 i++;
3653 if (!(patch = patches[i]) || (index = patch.r) > high)
3655 return i;
3659 var tag = vNode.$;
3661 if (tag === 4)
3663 var subNode = vNode.k;
3665 while (subNode.$ === 4)
3667 subNode = subNode.k;
3670 return _VirtualDom_addDomNodesHelp(domNode, subNode, patches, i, low + 1, high, domNode.elm_event_node_ref);
3673 // tag must be 1 or 2 at this point
3675 var vKids = vNode.e;
3676 var childNodes = domNode.childNodes;
3677 for (var j = 0; j < vKids.length; j++)
3679 low++;
3680 var vKid = tag === 1 ? vKids[j] : vKids[j].b;
3681 var nextLow = low + (vKid.b || 0);
3682 if (low <= index && index <= nextLow)
3684 i = _VirtualDom_addDomNodesHelp(childNodes[j], vKid, patches, i, low, nextLow, eventNode);
3685 if (!(patch = patches[i]) || (index = patch.r) > high)
3687 return i;
3690 low = nextLow;
3692 return i;
3697// APPLY PATCHES
3700function _VirtualDom_applyPatches(rootDomNode, oldVirtualNode, patches, eventNode)
3702 if (patches.length === 0)
3704 return rootDomNode;
3707 _VirtualDom_addDomNodes(rootDomNode, oldVirtualNode, patches, eventNode);
3708 return _VirtualDom_applyPatchesHelp(rootDomNode, patches);
3711function _VirtualDom_applyPatchesHelp(rootDomNode, patches)
3713 for (var i = 0; i < patches.length; i++)
3715 var patch = patches[i];
3716 var localDomNode = patch.t
3717 var newNode = _VirtualDom_applyPatch(localDomNode, patch);
3718 if (localDomNode === rootDomNode)
3720 rootDomNode = newNode;
3723 return rootDomNode;
3726function _VirtualDom_applyPatch(domNode, patch)
3728 switch (patch.$)
3730 case 0:
3731 return _VirtualDom_applyPatchRedraw(domNode, patch.s, patch.u);
3733 case 4:
3734 _VirtualDom_applyFacts(domNode, patch.u, patch.s);
3735 return domNode;
3737 case 3:
3738 domNode.replaceData(0, domNode.length, patch.s);
3739 return domNode;
3741 case 1:
3742 return _VirtualDom_applyPatchesHelp(domNode, patch.s);
3744 case 2:
3745 if (domNode.elm_event_node_ref)
3747 domNode.elm_event_node_ref.j = patch.s;
3749 else
3751 domNode.elm_event_node_ref = { j: patch.s, p: patch.u };
3753 return domNode;
3755 case 6:
3756 var data = patch.s;
3757 for (var i = 0; i < data.i; i++)
3759 domNode.removeChild(domNode.childNodes[data.v]);
3761 return domNode;
3763 case 7:
3764 var data = patch.s;
3765 var kids = data.e;
3766 var i = data.v;
3767 var theEnd = domNode.childNodes[i];
3768 for (; i < kids.length; i++)
3770 domNode.insertBefore(_VirtualDom_render(kids[i], patch.u), theEnd);
3772 return domNode;
3774 case 9:
3775 var data = patch.s;
3776 if (!data)
3778 domNode.parentNode.removeChild(domNode);
3779 return domNode;
3781 var entry = data.A;
3782 if (typeof entry.r !== 'undefined')
3784 domNode.parentNode.removeChild(domNode);
3786 entry.s = _VirtualDom_applyPatchesHelp(domNode, data.w);
3787 return domNode;
3789 case 8:
3790 return _VirtualDom_applyPatchReorder(domNode, patch);
3792 case 5:
3793 return patch.s(domNode);
3795 default:
3796 _Debug_crash(10); // 'Ran into an unknown patch!'
3801function _VirtualDom_applyPatchRedraw(domNode, vNode, eventNode)
3803 var parentNode = domNode.parentNode;
3804 var newNode = _VirtualDom_render(vNode, eventNode);
3806 if (!newNode.elm_event_node_ref)
3808 newNode.elm_event_node_ref = domNode.elm_event_node_ref;
3811 if (parentNode && newNode !== domNode)
3813 parentNode.replaceChild(newNode, domNode);
3815 return newNode;
3819function _VirtualDom_applyPatchReorder(domNode, patch)
3821 var data = patch.s;
3823 // remove end inserts
3824 var frag = _VirtualDom_applyPatchReorderEndInsertsHelp(data.y, patch);
3826 // removals
3827 domNode = _VirtualDom_applyPatchesHelp(domNode, data.w);
3829 // inserts
3830 var inserts = data.x;
3831 for (var i = 0; i < inserts.length; i++)
3833 var insert = inserts[i];
3834 var entry = insert.A;
3835 var node = entry.c === 2
3836 ? entry.s
3837 : _VirtualDom_render(entry.z, patch.u);
3838 domNode.insertBefore(node, domNode.childNodes[insert.r]);
3841 // add end inserts
3842 if (frag)
3844 _VirtualDom_appendChild(domNode, frag);
3847 return domNode;
3851function _VirtualDom_applyPatchReorderEndInsertsHelp(endInserts, patch)
3853 if (!endInserts)
3855 return;
3858 var frag = _VirtualDom_doc.createDocumentFragment();
3859 for (var i = 0; i < endInserts.length; i++)
3861 var insert = endInserts[i];
3862 var entry = insert.A;
3863 _VirtualDom_appendChild(frag, entry.c === 2
3864 ? entry.s
3865 : _VirtualDom_render(entry.z, patch.u)
3866 );
3868 return frag;
3872function _VirtualDom_virtualize(node)
3874 // TEXT NODES
3876 if (node.nodeType === 3)
3878 return _VirtualDom_text(node.textContent);
3882 // WEIRD NODES
3884 if (node.nodeType !== 1)
3886 return _VirtualDom_text('');
3890 // ELEMENT NODES
3892 var attrList = _List_Nil;
3893 var attrs = node.attributes;
3894 for (var i = attrs.length; i--; )
3896 var attr = attrs[i];
3897 var name = attr.name;
3898 var value = attr.value;
3899 attrList = _List_Cons( A2(_VirtualDom_attribute, name, value), attrList );
3902 var tag = node.tagName.toLowerCase();
3903 var kidList = _List_Nil;
3904 var kids = node.childNodes;
3906 for (var i = kids.length; i--; )
3908 kidList = _List_Cons(_VirtualDom_virtualize(kids[i]), kidList);
3910 return A3(_VirtualDom_node, tag, attrList, kidList);
3913function _VirtualDom_dekey(keyedNode)
3915 var keyedKids = keyedNode.e;
3916 var len = keyedKids.length;
3917 var kids = new Array(len);
3918 for (var i = 0; i < len; i++)
3920 kids[i] = keyedKids[i].b;
3923 return {
3924 $: 1,
3925 c: keyedNode.c,
3926 d: keyedNode.d,
3927 e: kids,
3928 f: keyedNode.f,
3929 b: keyedNode.b
3930 };
3936// ELEMENT
3939var _Debugger_element;
3941var _Browser_element = _Debugger_element || F4(function(impl, flagDecoder, debugMetadata, args)
3943 return _Platform_initialize(
3944 flagDecoder,
3945 args,
3946 impl.init,
3947 impl.update,
3948 impl.subscriptions,
3949 function(sendToApp, initialModel) {
3950 var view = impl.view;
3951 /**_UNUSED/
3952 var domNode = args['node'];
3953 //*/
3954 /**/
3955 var domNode = args && args['node'] ? args['node'] : _Debug_crash(0);
3956 //*/
3957 var currNode = _VirtualDom_virtualize(domNode);
3959 return _Browser_makeAnimator(initialModel, function(model)
3961 var nextNode = view(model);
3962 var patches = _VirtualDom_diff(currNode, nextNode);
3963 domNode = _VirtualDom_applyPatches(domNode, currNode, patches, sendToApp);
3964 currNode = nextNode;
3965 });
3967 );
3968});
3972// DOCUMENT
3975var _Debugger_document;
3977var _Browser_document = _Debugger_document || F4(function(impl, flagDecoder, debugMetadata, args)
3979 return _Platform_initialize(
3980 flagDecoder,
3981 args,
3982 impl.init,
3983 impl.update,
3984 impl.subscriptions,
3985 function(sendToApp, initialModel) {
3986 var divertHrefToApp = impl.setup && impl.setup(sendToApp)
3987 var view = impl.view;
3988 var title = _VirtualDom_doc.title;
3989 var bodyNode = _VirtualDom_doc.body;
3990 var currNode = _VirtualDom_virtualize(bodyNode);
3991 return _Browser_makeAnimator(initialModel, function(model)
3993 _VirtualDom_divertHrefToApp = divertHrefToApp;
3994 var doc = view(model);
3995 var nextNode = _VirtualDom_node('body')(_List_Nil)(doc.body);
3996 var patches = _VirtualDom_diff(currNode, nextNode);
3997 bodyNode = _VirtualDom_applyPatches(bodyNode, currNode, patches, sendToApp);
3998 currNode = nextNode;
3999 _VirtualDom_divertHrefToApp = 0;
4000 (title !== doc.title) && (_VirtualDom_doc.title = title = doc.title);
4001 });
4003 );
4004});
4008// ANIMATION
4011var _Browser_cancelAnimationFrame =
4012 typeof cancelAnimationFrame !== 'undefined'
4013 ? cancelAnimationFrame
4014 : function(id) { clearTimeout(id); };
4016var _Browser_requestAnimationFrame =
4017 typeof requestAnimationFrame !== 'undefined'
4018 ? requestAnimationFrame
4019 : function(callback) { return setTimeout(callback, 1000 / 60); };
4022function _Browser_makeAnimator(model, draw)
4024 draw(model);
4026 var state = 0;
4028 function updateIfNeeded()
4030 state = state === 1
4031 ? 0
4032 : ( _Browser_requestAnimationFrame(updateIfNeeded), draw(model), 1 );
4035 return function(nextModel, isSync)
4037 model = nextModel;
4039 isSync
4040 ? ( draw(model),
4041 state === 2 && (state = 1)
4043 : ( state === 0 && _Browser_requestAnimationFrame(updateIfNeeded),
4044 state = 2
4045 );
4046 };
4051// APPLICATION
4054function _Browser_application(impl)
4056 var onUrlChange = impl.onUrlChange;
4057 var onUrlRequest = impl.onUrlRequest;
4058 var key = function() { key.a(onUrlChange(_Browser_getUrl())); };
4060 return _Browser_document({
4061 setup: function(sendToApp)
4063 key.a = sendToApp;
4064 _Browser_window.addEventListener('popstate', key);
4065 _Browser_window.navigator.userAgent.indexOf('Trident') < 0 || _Browser_window.addEventListener('hashchange', key);
4067 return F2(function(domNode, event)
4069 if (!event.ctrlKey && !event.metaKey && !event.shiftKey && event.button < 1 && !domNode.target && !domNode.hasAttribute('download'))
4071 event.preventDefault();
4072 var href = domNode.href;
4073 var curr = _Browser_getUrl();
4074 var next = $elm$url$Url$fromString(href).a;
4075 sendToApp(onUrlRequest(
4076 (next
4077 && curr.protocol === next.protocol
4078 && curr.host === next.host
4079 && curr.port_.a === next.port_.a
4081 ? $elm$browser$Browser$Internal(next)
4082 : $elm$browser$Browser$External(href)
4083 ));
4085 });
4086 },
4087 init: function(flags)
4089 return A3(impl.init, flags, _Browser_getUrl(), key);
4090 },
4091 view: impl.view,
4092 update: impl.update,
4093 subscriptions: impl.subscriptions
4094 });
4097function _Browser_getUrl()
4099 return $elm$url$Url$fromString(_VirtualDom_doc.location.href).a || _Debug_crash(1);
4102var _Browser_go = F2(function(key, n)
4104 return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() {
4105 n && history.go(n);
4106 key();
4107 }));
4108});
4110var _Browser_pushUrl = F2(function(key, url)
4112 return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() {
4113 history.pushState({}, '', url);
4114 key();
4115 }));
4116});
4118var _Browser_replaceUrl = F2(function(key, url)
4120 return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() {
4121 history.replaceState({}, '', url);
4122 key();
4123 }));
4124});
4128// GLOBAL EVENTS
4131var _Browser_fakeNode = { addEventListener: function() {}, removeEventListener: function() {} };
4132var _Browser_doc = typeof document !== 'undefined' ? document : _Browser_fakeNode;
4133var _Browser_window = typeof window !== 'undefined' ? window : _Browser_fakeNode;
4135var _Browser_on = F3(function(node, eventName, sendToSelf)
4137 return _Scheduler_spawn(_Scheduler_binding(function(callback)
4139 function handler(event) { _Scheduler_rawSpawn(sendToSelf(event)); }
4140 node.addEventListener(eventName, handler, _VirtualDom_passiveSupported && { passive: true });
4141 return function() { node.removeEventListener(eventName, handler); };
4142 }));
4143});
4145var _Browser_decodeEvent = F2(function(decoder, event)
4147 var result = _Json_runHelp(decoder, event);
4148 return $elm$core$Result$isOk(result) ? $elm$core$Maybe$Just(result.a) : $elm$core$Maybe$Nothing;
4149});
4153// PAGE VISIBILITY
4156function _Browser_visibilityInfo()
4158 return (typeof _VirtualDom_doc.hidden !== 'undefined')
4159 ? { hidden: 'hidden', change: 'visibilitychange' }
4161 (typeof _VirtualDom_doc.mozHidden !== 'undefined')
4162 ? { hidden: 'mozHidden', change: 'mozvisibilitychange' }
4164 (typeof _VirtualDom_doc.msHidden !== 'undefined')
4165 ? { hidden: 'msHidden', change: 'msvisibilitychange' }
4167 (typeof _VirtualDom_doc.webkitHidden !== 'undefined')
4168 ? { hidden: 'webkitHidden', change: 'webkitvisibilitychange' }
4169 : { hidden: 'hidden', change: 'visibilitychange' };
4174// ANIMATION FRAMES
4177function _Browser_rAF()
4179 return _Scheduler_binding(function(callback)
4181 var id = _Browser_requestAnimationFrame(function() {
4182 callback(_Scheduler_succeed(Date.now()));
4183 });
4185 return function() {
4186 _Browser_cancelAnimationFrame(id);
4187 };
4188 });
4192function _Browser_now()
4194 return _Scheduler_binding(function(callback)
4196 callback(_Scheduler_succeed(Date.now()));
4197 });
4202// DOM STUFF
4205function _Browser_withNode(id, doStuff)
4207 return _Scheduler_binding(function(callback)
4209 _Browser_requestAnimationFrame(function() {
4210 var node = document.getElementById(id);
4211 callback(node
4212 ? _Scheduler_succeed(doStuff(node))
4213 : _Scheduler_fail($elm$browser$Browser$Dom$NotFound(id))
4214 );
4215 });
4216 });
4220function _Browser_withWindow(doStuff)
4222 return _Scheduler_binding(function(callback)
4224 _Browser_requestAnimationFrame(function() {
4225 callback(_Scheduler_succeed(doStuff()));
4226 });
4227 });
4231// FOCUS and BLUR
4234var _Browser_call = F2(function(functionName, id)
4236 return _Browser_withNode(id, function(node) {
4237 node[functionName]();
4238 return _Utils_Tuple0;
4239 });
4240});
4244// WINDOW VIEWPORT
4247function _Browser_getViewport()
4249 return {
4250 scene: _Browser_getScene(),
4251 viewport: {
4252 x: _Browser_window.pageXOffset,
4253 y: _Browser_window.pageYOffset,
4254 width: _Browser_doc.documentElement.clientWidth,
4255 height: _Browser_doc.documentElement.clientHeight
4257 };
4260function _Browser_getScene()
4262 var body = _Browser_doc.body;
4263 var elem = _Browser_doc.documentElement;
4264 return {
4265 width: Math.max(body.scrollWidth, body.offsetWidth, elem.scrollWidth, elem.offsetWidth, elem.clientWidth),
4266 height: Math.max(body.scrollHeight, body.offsetHeight, elem.scrollHeight, elem.offsetHeight, elem.clientHeight)
4267 };
4270var _Browser_setViewport = F2(function(x, y)
4272 return _Browser_withWindow(function()
4274 _Browser_window.scroll(x, y);
4275 return _Utils_Tuple0;
4276 });
4277});
4281// ELEMENT VIEWPORT
4284function _Browser_getViewportOf(id)
4286 return _Browser_withNode(id, function(node)
4288 return {
4289 scene: {
4290 width: node.scrollWidth,
4291 height: node.scrollHeight
4292 },
4293 viewport: {
4294 x: node.scrollLeft,
4295 y: node.scrollTop,
4296 width: node.clientWidth,
4297 height: node.clientHeight
4299 };
4300 });
4304var _Browser_setViewportOf = F3(function(id, x, y)
4306 return _Browser_withNode(id, function(node)
4308 node.scrollLeft = x;
4309 node.scrollTop = y;
4310 return _Utils_Tuple0;
4311 });
4312});
4316// ELEMENT
4319function _Browser_getElement(id)
4321 return _Browser_withNode(id, function(node)
4323 var rect = node.getBoundingClientRect();
4324 var x = _Browser_window.pageXOffset;
4325 var y = _Browser_window.pageYOffset;
4326 return {
4327 scene: _Browser_getScene(),
4328 viewport: {
4329 x: x,
4330 y: y,
4331 width: _Browser_doc.documentElement.clientWidth,
4332 height: _Browser_doc.documentElement.clientHeight
4333 },
4334 element: {
4335 x: x + rect.left,
4336 y: y + rect.top,
4337 width: rect.width,
4338 height: rect.height
4340 };
4341 });
4346// LOAD and RELOAD
4349function _Browser_reload(skipCache)
4351 return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function(callback)
4353 _VirtualDom_doc.location.reload(skipCache);
4354 }));
4357function _Browser_load(url)
4359 return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function(callback)
4361 try
4363 _Browser_window.location = url;
4365 catch(err)
4367 // Only Firefox can throw a NS_ERROR_MALFORMED_URI exception here.
4368 // Other browsers reload the page, so let's be consistent about that.
4369 _VirtualDom_doc.location.reload(false);
4371 }));
4376function _Time_now(millisToPosix)
4378 return _Scheduler_binding(function(callback)
4380 callback(_Scheduler_succeed(millisToPosix(Date.now())));
4381 });
4384var _Time_setInterval = F2(function(interval, task)
4386 return _Scheduler_binding(function(callback)
4388 var id = setInterval(function() { _Scheduler_rawSpawn(task); }, interval);
4389 return function() { clearInterval(id); };
4390 });
4391});
4393function _Time_here()
4395 return _Scheduler_binding(function(callback)
4397 callback(_Scheduler_succeed(
4398 A2($elm$time$Time$customZone, -(new Date().getTimezoneOffset()), _List_Nil)
4399 ));
4400 });
4404function _Time_getZoneName()
4406 return _Scheduler_binding(function(callback)
4408 try
4410 var name = $elm$time$Time$Name(Intl.DateTimeFormat().resolvedOptions().timeZone);
4412 catch (e)
4414 var name = $elm$time$Time$Offset(new Date().getTimezoneOffset());
4416 callback(_Scheduler_succeed(name));
4417 });
4423// STRINGS
4426var _Parser_isSubString = F5(function(smallString, offset, row, col, bigString)
4428 var smallLength = smallString.length;
4429 var isGood = offset + smallLength <= bigString.length;
4431 for (var i = 0; isGood && i < smallLength; )
4433 var code = bigString.charCodeAt(offset);
4434 isGood =
4435 smallString[i++] === bigString[offset++]
4436 && (
4437 code === 0x000A /* \n */
4438 ? ( row++, col=1 )
4439 : ( col++, (code & 0xF800) === 0xD800 ? smallString[i++] === bigString[offset++] : 1 )
4443 return _Utils_Tuple3(isGood ? offset : -1, row, col);
4444});
4448// CHARS
4451var _Parser_isSubChar = F3(function(predicate, offset, string)
4453 return (
4454 string.length <= offset
4455 ? -1
4457 (string.charCodeAt(offset) & 0xF800) === 0xD800
4458 ? (predicate(_Utils_chr(string.substr(offset, 2))) ? offset + 2 : -1)
4460 (predicate(_Utils_chr(string[offset]))
4461 ? ((string[offset] === '\n') ? -2 : (offset + 1))
4462 : -1
4464 );
4465});
4468var _Parser_isAsciiCode = F3(function(code, offset, string)
4470 return string.charCodeAt(offset) === code;
4471});
4475// NUMBERS
4478var _Parser_chompBase10 = F2(function(offset, string)
4480 for (; offset < string.length; offset++)
4482 var code = string.charCodeAt(offset);
4483 if (code < 0x30 || 0x39 < code)
4485 return offset;
4488 return offset;
4489});
4492var _Parser_consumeBase = F3(function(base, offset, string)
4494 for (var total = 0; offset < string.length; offset++)
4496 var digit = string.charCodeAt(offset) - 0x30;
4497 if (digit < 0 || base <= digit) break;
4498 total = base * total + digit;
4500 return _Utils_Tuple2(offset, total);
4501});
4504var _Parser_consumeBase16 = F2(function(offset, string)
4506 for (var total = 0; offset < string.length; offset++)
4508 var code = string.charCodeAt(offset);
4509 if (0x30 <= code && code <= 0x39)
4511 total = 16 * total + code - 0x30;
4513 else if (0x41 <= code && code <= 0x46)
4515 total = 16 * total + code - 55;
4517 else if (0x61 <= code && code <= 0x66)
4519 total = 16 * total + code - 87;
4521 else
4523 break;
4526 return _Utils_Tuple2(offset, total);
4527});
4531// FIND STRING
4534var _Parser_findSubString = F5(function(smallString, offset, row, col, bigString)
4536 var newOffset = bigString.indexOf(smallString, offset);
4537 var target = newOffset < 0 ? bigString.length : newOffset + smallString.length;
4539 while (offset < target)
4541 var code = bigString.charCodeAt(offset++);
4542 code === 0x000A /* \n */
4543 ? ( col=1, row++ )
4544 : ( col++, (code & 0xF800) === 0xD800 && offset++ )
4547 return _Utils_Tuple3(newOffset, row, col);
4548});
4552// SEND REQUEST
4554var _Http_toTask = F3(function(router, toTask, request)
4556 return _Scheduler_binding(function(callback)
4558 function done(response) {
4559 callback(toTask(request.expect.a(response)));
4562 var xhr = new XMLHttpRequest();
4563 xhr.addEventListener('error', function() { done($elm$http$Http$NetworkError_); });
4564 xhr.addEventListener('timeout', function() { done($elm$http$Http$Timeout_); });
4565 xhr.addEventListener('load', function() { done(_Http_toResponse(request.expect.b, xhr)); });
4566 $elm$core$Maybe$isJust(request.tracker) && _Http_track(router, xhr, request.tracker.a);
4568 try {
4569 xhr.open(request.method, request.url, true);
4570 } catch (e) {
4571 return done($elm$http$Http$BadUrl_(request.url));
4574 _Http_configureRequest(xhr, request);
4576 request.body.a && xhr.setRequestHeader('Content-Type', request.body.a);
4577 xhr.send(request.body.b);
4579 return function() { xhr.c = true; xhr.abort(); };
4580 });
4581});
4584// CONFIGURE
4586function _Http_configureRequest(xhr, request)
4588 for (var headers = request.headers; headers.b; headers = headers.b) // WHILE_CONS
4590 xhr.setRequestHeader(headers.a.a, headers.a.b);
4592 xhr.timeout = request.timeout.a || 0;
4593 xhr.responseType = request.expect.d;
4594 xhr.withCredentials = request.allowCookiesFromOtherDomains;
4598// RESPONSES
4600function _Http_toResponse(toBody, xhr)
4602 return A2(
4603 200 <= xhr.status && xhr.status < 300 ? $elm$http$Http$GoodStatus_ : $elm$http$Http$BadStatus_,
4604 _Http_toMetadata(xhr),
4605 toBody(xhr.response)
4606 );
4610// METADATA
4612function _Http_toMetadata(xhr)
4614 return {
4615 url: xhr.responseURL,
4616 statusCode: xhr.status,
4617 statusText: xhr.statusText,
4618 headers: _Http_parseHeaders(xhr.getAllResponseHeaders())
4619 };
4623// HEADERS
4625function _Http_parseHeaders(rawHeaders)
4627 if (!rawHeaders)
4629 return $elm$core$Dict$empty;
4632 var headers = $elm$core$Dict$empty;
4633 var headerPairs = rawHeaders.split('\r\n');
4634 for (var i = headerPairs.length; i--; )
4636 var headerPair = headerPairs[i];
4637 var index = headerPair.indexOf(': ');
4638 if (index > 0)
4640 var key = headerPair.substring(0, index);
4641 var value = headerPair.substring(index + 2);
4643 headers = A3($elm$core$Dict$update, key, function(oldValue) {
4644 return $elm$core$Maybe$Just($elm$core$Maybe$isJust(oldValue)
4645 ? value + ', ' + oldValue.a
4646 : value
4647 );
4648 }, headers);
4651 return headers;
4655// EXPECT
4657var _Http_expect = F3(function(type, toBody, toValue)
4659 return {
4660 $: 0,
4661 d: type,
4662 b: toBody,
4663 a: toValue
4664 };
4665});
4667var _Http_mapExpect = F2(function(func, expect)
4669 return {
4670 $: 0,
4671 d: expect.d,
4672 b: expect.b,
4673 a: function(x) { return func(expect.a(x)); }
4674 };
4675});
4677function _Http_toDataView(arrayBuffer)
4679 return new DataView(arrayBuffer);
4683// BODY and PARTS
4685var _Http_emptyBody = { $: 0 };
4686var _Http_pair = F2(function(a, b) { return { $: 0, a: a, b: b }; });
4688function _Http_toFormData(parts)
4690 for (var formData = new FormData(); parts.b; parts = parts.b) // WHILE_CONS
4692 var part = parts.a;
4693 formData.append(part.a, part.b);
4695 return formData;
4698var _Http_bytesToBlob = F2(function(mime, bytes)
4700 return new Blob([bytes], { type: mime });
4701});
4704// PROGRESS
4706function _Http_track(router, xhr, tracker)
4708 // TODO check out lengthComputable on loadstart event
4710 xhr.upload.addEventListener('progress', function(event) {
4711 if (xhr.c) { return; }
4712 _Scheduler_rawSpawn(A2($elm$core$Platform$sendToSelf, router, _Utils_Tuple2(tracker, $elm$http$Http$Sending({
4713 sent: event.loaded,
4714 size: event.total
4715 }))));
4716 });
4717 xhr.addEventListener('progress', function(event) {
4718 if (xhr.c) { return; }
4719 _Scheduler_rawSpawn(A2($elm$core$Platform$sendToSelf, router, _Utils_Tuple2(tracker, $elm$http$Http$Receiving({
4720 received: event.loaded,
4721 size: event.lengthComputable ? $elm$core$Maybe$Just(event.total) : $elm$core$Maybe$Nothing
4722 }))));
4723 });
4726function _Url_percentEncode(string)
4728 return encodeURIComponent(string);
4731function _Url_percentDecode(string)
4733 try
4735 return $elm$core$Maybe$Just(decodeURIComponent(string));
4737 catch (e)
4739 return $elm$core$Maybe$Nothing;
4744var _Bitwise_and = F2(function(a, b)
4746 return a & b;
4747});
4749var _Bitwise_or = F2(function(a, b)
4751 return a | b;
4752});
4754var _Bitwise_xor = F2(function(a, b)
4756 return a ^ b;
4757});
4759function _Bitwise_complement(a)
4761 return ~a;
4764var _Bitwise_shiftLeftBy = F2(function(offset, a)
4766 return a << offset;
4767});
4769var _Bitwise_shiftRightBy = F2(function(offset, a)
4771 return a >> offset;
4772});
4774var _Bitwise_shiftRightZfBy = F2(function(offset, a)
4776 return a >>> offset;
4777});
4778var $author$project$Main$LinkClicked = function (a) {
4779 return {$: 'LinkClicked', a: a};
4781var $author$project$Main$UrlChanged = function (a) {
4782 return {$: 'UrlChanged', a: a};
4784var $elm$core$Basics$EQ = {$: 'EQ'};
4785var $elm$core$Basics$GT = {$: 'GT'};
4786var $elm$core$Basics$LT = {$: 'LT'};
4787var $elm$core$List$cons = _List_cons;
4788var $elm$core$Dict$foldr = F3(
4789 function (func, acc, t) {
4790 foldr:
4791 while (true) {
4792 if (t.$ === 'RBEmpty_elm_builtin') {
4793 return acc;
4794 } else {
4795 var key = t.b;
4796 var value = t.c;
4797 var left = t.d;
4798 var right = t.e;
4799 var $temp$func = func,
4800 $temp$acc = A3(
4801 func,
4802 key,
4803 value,
4804 A3($elm$core$Dict$foldr, func, acc, right)),
4805 $temp$t = left;
4806 func = $temp$func;
4807 acc = $temp$acc;
4808 t = $temp$t;
4809 continue foldr;
4812 });
4813var $elm$core$Dict$toList = function (dict) {
4814 return A3(
4815 $elm$core$Dict$foldr,
4816 F3(
4817 function (key, value, list) {
4818 return A2(
4819 $elm$core$List$cons,
4820 _Utils_Tuple2(key, value),
4821 list);
4822 }),
4823 _List_Nil,
4824 dict);
4826var $elm$core$Dict$keys = function (dict) {
4827 return A3(
4828 $elm$core$Dict$foldr,
4829 F3(
4830 function (key, value, keyList) {
4831 return A2($elm$core$List$cons, key, keyList);
4832 }),
4833 _List_Nil,
4834 dict);
4836var $elm$core$Set$toList = function (_v0) {
4837 var dict = _v0.a;
4838 return $elm$core$Dict$keys(dict);
4840var $elm$core$Elm$JsArray$foldr = _JsArray_foldr;
4841var $elm$core$Array$foldr = F3(
4842 function (func, baseCase, _v0) {
4843 var tree = _v0.c;
4844 var tail = _v0.d;
4845 var helper = F2(
4846 function (node, acc) {
4847 if (node.$ === 'SubTree') {
4848 var subTree = node.a;
4849 return A3($elm$core$Elm$JsArray$foldr, helper, acc, subTree);
4850 } else {
4851 var values = node.a;
4852 return A3($elm$core$Elm$JsArray$foldr, func, acc, values);
4854 });
4855 return A3(
4856 $elm$core$Elm$JsArray$foldr,
4857 helper,
4858 A3($elm$core$Elm$JsArray$foldr, func, baseCase, tail),
4859 tree);
4860 });
4861var $elm$core$Array$toList = function (array) {
4862 return A3($elm$core$Array$foldr, $elm$core$List$cons, _List_Nil, array);
4864var $elm$core$Result$Err = function (a) {
4865 return {$: 'Err', a: a};
4867var $elm$json$Json$Decode$Failure = F2(
4868 function (a, b) {
4869 return {$: 'Failure', a: a, b: b};
4870 });
4871var $elm$json$Json$Decode$Field = F2(
4872 function (a, b) {
4873 return {$: 'Field', a: a, b: b};
4874 });
4875var $elm$json$Json$Decode$Index = F2(
4876 function (a, b) {
4877 return {$: 'Index', a: a, b: b};
4878 });
4879var $elm$core$Result$Ok = function (a) {
4880 return {$: 'Ok', a: a};
4882var $elm$json$Json$Decode$OneOf = function (a) {
4883 return {$: 'OneOf', a: a};
4885var $elm$core$Basics$False = {$: 'False'};
4886var $elm$core$Basics$add = _Basics_add;
4887var $elm$core$Maybe$Just = function (a) {
4888 return {$: 'Just', a: a};
4890var $elm$core$Maybe$Nothing = {$: 'Nothing'};
4891var $elm$core$String$all = _String_all;
4892var $elm$core$Basics$and = _Basics_and;
4893var $elm$core$Basics$append = _Utils_append;
4894var $elm$json$Json$Encode$encode = _Json_encode;
4895var $elm$core$String$fromInt = _String_fromNumber;
4896var $elm$core$String$join = F2(
4897 function (sep, chunks) {
4898 return A2(
4899 _String_join,
4900 sep,
4901 _List_toArray(chunks));
4902 });
4903var $elm$core$String$split = F2(
4904 function (sep, string) {
4905 return _List_fromArray(
4906 A2(_String_split, sep, string));
4907 });
4908var $elm$json$Json$Decode$indent = function (str) {
4909 return A2(
4910 $elm$core$String$join,
4911 '\n ',
4912 A2($elm$core$String$split, '\n', str));
4914var $elm$core$List$foldl = F3(
4915 function (func, acc, list) {
4916 foldl:
4917 while (true) {
4918 if (!list.b) {
4919 return acc;
4920 } else {
4921 var x = list.a;
4922 var xs = list.b;
4923 var $temp$func = func,
4924 $temp$acc = A2(func, x, acc),
4925 $temp$list = xs;
4926 func = $temp$func;
4927 acc = $temp$acc;
4928 list = $temp$list;
4929 continue foldl;
4932 });
4933var $elm$core$List$length = function (xs) {
4934 return A3(
4935 $elm$core$List$foldl,
4936 F2(
4937 function (_v0, i) {
4938 return i + 1;
4939 }),
4940 0,
4941 xs);
4943var $elm$core$List$map2 = _List_map2;
4944var $elm$core$Basics$le = _Utils_le;
4945var $elm$core$Basics$sub = _Basics_sub;
4946var $elm$core$List$rangeHelp = F3(
4947 function (lo, hi, list) {
4948 rangeHelp:
4949 while (true) {
4950 if (_Utils_cmp(lo, hi) < 1) {
4951 var $temp$lo = lo,
4952 $temp$hi = hi - 1,
4953 $temp$list = A2($elm$core$List$cons, hi, list);
4954 lo = $temp$lo;
4955 hi = $temp$hi;
4956 list = $temp$list;
4957 continue rangeHelp;
4958 } else {
4959 return list;
4962 });
4963var $elm$core$List$range = F2(
4964 function (lo, hi) {
4965 return A3($elm$core$List$rangeHelp, lo, hi, _List_Nil);
4966 });
4967var $elm$core$List$indexedMap = F2(
4968 function (f, xs) {
4969 return A3(
4970 $elm$core$List$map2,
4971 f,
4972 A2(
4973 $elm$core$List$range,
4974 0,
4975 $elm$core$List$length(xs) - 1),
4976 xs);
4977 });
4978var $elm$core$Char$toCode = _Char_toCode;
4979var $elm$core$Char$isLower = function (_char) {
4980 var code = $elm$core$Char$toCode(_char);
4981 return (97 <= code) && (code <= 122);
4983var $elm$core$Char$isUpper = function (_char) {
4984 var code = $elm$core$Char$toCode(_char);
4985 return (code <= 90) && (65 <= code);
4987var $elm$core$Basics$or = _Basics_or;
4988var $elm$core$Char$isAlpha = function (_char) {
4989 return $elm$core$Char$isLower(_char) || $elm$core$Char$isUpper(_char);
4991var $elm$core$Char$isDigit = function (_char) {
4992 var code = $elm$core$Char$toCode(_char);
4993 return (code <= 57) && (48 <= code);
4995var $elm$core$Char$isAlphaNum = function (_char) {
4996 return $elm$core$Char$isLower(_char) || ($elm$core$Char$isUpper(_char) || $elm$core$Char$isDigit(_char));
4998var $elm$core$List$reverse = function (list) {
4999 return A3($elm$core$List$foldl, $elm$core$List$cons, _List_Nil, list);
5001var $elm$core$String$uncons = _String_uncons;
5002var $elm$json$Json$Decode$errorOneOf = F2(
5003 function (i, error) {
5004 return '\n\n(' + ($elm$core$String$fromInt(i + 1) + (') ' + $elm$json$Json$Decode$indent(
5005 $elm$json$Json$Decode$errorToString(error))));
5006 });
5007var $elm$json$Json$Decode$errorToString = function (error) {
5008 return A2($elm$json$Json$Decode$errorToStringHelp, error, _List_Nil);
5010var $elm$json$Json$Decode$errorToStringHelp = F2(
5011 function (error, context) {
5012 errorToStringHelp:
5013 while (true) {
5014 switch (error.$) {
5015 case 'Field':
5016 var f = error.a;
5017 var err = error.b;
5018 var isSimple = function () {
5019 var _v1 = $elm$core$String$uncons(f);
5020 if (_v1.$ === 'Nothing') {
5021 return false;
5022 } else {
5023 var _v2 = _v1.a;
5024 var _char = _v2.a;
5025 var rest = _v2.b;
5026 return $elm$core$Char$isAlpha(_char) && A2($elm$core$String$all, $elm$core$Char$isAlphaNum, rest);
5028 }();
5029 var fieldName = isSimple ? ('.' + f) : ('[\'' + (f + '\']'));
5030 var $temp$error = err,
5031 $temp$context = A2($elm$core$List$cons, fieldName, context);
5032 error = $temp$error;
5033 context = $temp$context;
5034 continue errorToStringHelp;
5035 case 'Index':
5036 var i = error.a;
5037 var err = error.b;
5038 var indexName = '[' + ($elm$core$String$fromInt(i) + ']');
5039 var $temp$error = err,
5040 $temp$context = A2($elm$core$List$cons, indexName, context);
5041 error = $temp$error;
5042 context = $temp$context;
5043 continue errorToStringHelp;
5044 case 'OneOf':
5045 var errors = error.a;
5046 if (!errors.b) {
5047 return 'Ran into a Json.Decode.oneOf with no possibilities' + function () {
5048 if (!context.b) {
5049 return '!';
5050 } else {
5051 return ' at json' + A2(
5052 $elm$core$String$join,
5053 '',
5054 $elm$core$List$reverse(context));
5056 }();
5057 } else {
5058 if (!errors.b.b) {
5059 var err = errors.a;
5060 var $temp$error = err,
5061 $temp$context = context;
5062 error = $temp$error;
5063 context = $temp$context;
5064 continue errorToStringHelp;
5065 } else {
5066 var starter = function () {
5067 if (!context.b) {
5068 return 'Json.Decode.oneOf';
5069 } else {
5070 return 'The Json.Decode.oneOf at json' + A2(
5071 $elm$core$String$join,
5072 '',
5073 $elm$core$List$reverse(context));
5075 }();
5076 var introduction = starter + (' failed in the following ' + ($elm$core$String$fromInt(
5077 $elm$core$List$length(errors)) + ' ways:'));
5078 return A2(
5079 $elm$core$String$join,
5080 '\n\n',
5081 A2(
5082 $elm$core$List$cons,
5083 introduction,
5084 A2($elm$core$List$indexedMap, $elm$json$Json$Decode$errorOneOf, errors)));
5087 default:
5088 var msg = error.a;
5089 var json = error.b;
5090 var introduction = function () {
5091 if (!context.b) {
5092 return 'Problem with the given value:\n\n';
5093 } else {
5094 return 'Problem with the value at json' + (A2(
5095 $elm$core$String$join,
5096 '',
5097 $elm$core$List$reverse(context)) + ':\n\n ');
5099 }();
5100 return introduction + ($elm$json$Json$Decode$indent(
5101 A2($elm$json$Json$Encode$encode, 4, json)) + ('\n\n' + msg));
5104 });
5105var $elm$core$Array$branchFactor = 32;
5106var $elm$core$Array$Array_elm_builtin = F4(
5107 function (a, b, c, d) {
5108 return {$: 'Array_elm_builtin', a: a, b: b, c: c, d: d};
5109 });
5110var $elm$core$Elm$JsArray$empty = _JsArray_empty;
5111var $elm$core$Basics$ceiling = _Basics_ceiling;
5112var $elm$core$Basics$fdiv = _Basics_fdiv;
5113var $elm$core$Basics$logBase = F2(
5114 function (base, number) {
5115 return _Basics_log(number) / _Basics_log(base);
5116 });
5117var $elm$core$Basics$toFloat = _Basics_toFloat;
5118var $elm$core$Array$shiftStep = $elm$core$Basics$ceiling(
5119 A2($elm$core$Basics$logBase, 2, $elm$core$Array$branchFactor));
5120var $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);
5121var $elm$core$Elm$JsArray$initialize = _JsArray_initialize;
5122var $elm$core$Array$Leaf = function (a) {
5123 return {$: 'Leaf', a: a};
5125var $elm$core$Basics$apL = F2(
5126 function (f, x) {
5127 return f(x);
5128 });
5129var $elm$core$Basics$apR = F2(
5130 function (x, f) {
5131 return f(x);
5132 });
5133var $elm$core$Basics$eq = _Utils_equal;
5134var $elm$core$Basics$floor = _Basics_floor;
5135var $elm$core$Elm$JsArray$length = _JsArray_length;
5136var $elm$core$Basics$gt = _Utils_gt;
5137var $elm$core$Basics$max = F2(
5138 function (x, y) {
5139 return (_Utils_cmp(x, y) > 0) ? x : y;
5140 });
5141var $elm$core$Basics$mul = _Basics_mul;
5142var $elm$core$Array$SubTree = function (a) {
5143 return {$: 'SubTree', a: a};
5145var $elm$core$Elm$JsArray$initializeFromList = _JsArray_initializeFromList;
5146var $elm$core$Array$compressNodes = F2(
5147 function (nodes, acc) {
5148 compressNodes:
5149 while (true) {
5150 var _v0 = A2($elm$core$Elm$JsArray$initializeFromList, $elm$core$Array$branchFactor, nodes);
5151 var node = _v0.a;
5152 var remainingNodes = _v0.b;
5153 var newAcc = A2(
5154 $elm$core$List$cons,
5155 $elm$core$Array$SubTree(node),
5156 acc);
5157 if (!remainingNodes.b) {
5158 return $elm$core$List$reverse(newAcc);
5159 } else {
5160 var $temp$nodes = remainingNodes,
5161 $temp$acc = newAcc;
5162 nodes = $temp$nodes;
5163 acc = $temp$acc;
5164 continue compressNodes;
5167 });
5168var $elm$core$Tuple$first = function (_v0) {
5169 var x = _v0.a;
5170 return x;
5172var $elm$core$Array$treeFromBuilder = F2(
5173 function (nodeList, nodeListSize) {
5174 treeFromBuilder:
5175 while (true) {
5176 var newNodeSize = $elm$core$Basics$ceiling(nodeListSize / $elm$core$Array$branchFactor);
5177 if (newNodeSize === 1) {
5178 return A2($elm$core$Elm$JsArray$initializeFromList, $elm$core$Array$branchFactor, nodeList).a;
5179 } else {
5180 var $temp$nodeList = A2($elm$core$Array$compressNodes, nodeList, _List_Nil),
5181 $temp$nodeListSize = newNodeSize;
5182 nodeList = $temp$nodeList;
5183 nodeListSize = $temp$nodeListSize;
5184 continue treeFromBuilder;
5187 });
5188var $elm$core$Array$builderToArray = F2(
5189 function (reverseNodeList, builder) {
5190 if (!builder.nodeListSize) {
5191 return A4(
5192 $elm$core$Array$Array_elm_builtin,
5193 $elm$core$Elm$JsArray$length(builder.tail),
5194 $elm$core$Array$shiftStep,
5195 $elm$core$Elm$JsArray$empty,
5196 builder.tail);
5197 } else {
5198 var treeLen = builder.nodeListSize * $elm$core$Array$branchFactor;
5199 var depth = $elm$core$Basics$floor(
5200 A2($elm$core$Basics$logBase, $elm$core$Array$branchFactor, treeLen - 1));
5201 var correctNodeList = reverseNodeList ? $elm$core$List$reverse(builder.nodeList) : builder.nodeList;
5202 var tree = A2($elm$core$Array$treeFromBuilder, correctNodeList, builder.nodeListSize);
5203 return A4(
5204 $elm$core$Array$Array_elm_builtin,
5205 $elm$core$Elm$JsArray$length(builder.tail) + treeLen,
5206 A2($elm$core$Basics$max, 5, depth * $elm$core$Array$shiftStep),
5207 tree,
5208 builder.tail);
5210 });
5211var $elm$core$Basics$idiv = _Basics_idiv;
5212var $elm$core$Basics$lt = _Utils_lt;
5213var $elm$core$Array$initializeHelp = F5(
5214 function (fn, fromIndex, len, nodeList, tail) {
5215 initializeHelp:
5216 while (true) {
5217 if (fromIndex < 0) {
5218 return A2(
5219 $elm$core$Array$builderToArray,
5220 false,
5221 {nodeList: nodeList, nodeListSize: (len / $elm$core$Array$branchFactor) | 0, tail: tail});
5222 } else {
5223 var leaf = $elm$core$Array$Leaf(
5224 A3($elm$core$Elm$JsArray$initialize, $elm$core$Array$branchFactor, fromIndex, fn));
5225 var $temp$fn = fn,
5226 $temp$fromIndex = fromIndex - $elm$core$Array$branchFactor,
5227 $temp$len = len,
5228 $temp$nodeList = A2($elm$core$List$cons, leaf, nodeList),
5229 $temp$tail = tail;
5230 fn = $temp$fn;
5231 fromIndex = $temp$fromIndex;
5232 len = $temp$len;
5233 nodeList = $temp$nodeList;
5234 tail = $temp$tail;
5235 continue initializeHelp;
5238 });
5239var $elm$core$Basics$remainderBy = _Basics_remainderBy;
5240var $elm$core$Array$initialize = F2(
5241 function (len, fn) {
5242 if (len <= 0) {
5243 return $elm$core$Array$empty;
5244 } else {
5245 var tailLen = len % $elm$core$Array$branchFactor;
5246 var tail = A3($elm$core$Elm$JsArray$initialize, tailLen, len - tailLen, fn);
5247 var initialFromIndex = (len - tailLen) - $elm$core$Array$branchFactor;
5248 return A5($elm$core$Array$initializeHelp, fn, initialFromIndex, len, _List_Nil, tail);
5250 });
5251var $elm$core$Basics$True = {$: 'True'};
5252var $elm$core$Result$isOk = function (result) {
5253 if (result.$ === 'Ok') {
5254 return true;
5255 } else {
5256 return false;
5259var $elm$json$Json$Decode$map = _Json_map1;
5260var $elm$json$Json$Decode$map2 = _Json_map2;
5261var $elm$json$Json$Decode$succeed = _Json_succeed;
5262var $elm$virtual_dom$VirtualDom$toHandlerInt = function (handler) {
5263 switch (handler.$) {
5264 case 'Normal':
5265 return 0;
5266 case 'MayStopPropagation':
5267 return 1;
5268 case 'MayPreventDefault':
5269 return 2;
5270 default:
5271 return 3;
5274var $elm$browser$Browser$External = function (a) {
5275 return {$: 'External', a: a};
5277var $elm$browser$Browser$Internal = function (a) {
5278 return {$: 'Internal', a: a};
5280var $elm$core$Basics$identity = function (x) {
5281 return x;
5283var $elm$browser$Browser$Dom$NotFound = function (a) {
5284 return {$: 'NotFound', a: a};
5286var $elm$url$Url$Http = {$: 'Http'};
5287var $elm$url$Url$Https = {$: 'Https'};
5288var $elm$url$Url$Url = F6(
5289 function (protocol, host, port_, path, query, fragment) {
5290 return {fragment: fragment, host: host, path: path, port_: port_, protocol: protocol, query: query};
5291 });
5292var $elm$core$String$contains = _String_contains;
5293var $elm$core$String$length = _String_length;
5294var $elm$core$String$slice = _String_slice;
5295var $elm$core$String$dropLeft = F2(
5296 function (n, string) {
5297 return (n < 1) ? string : A3(
5298 $elm$core$String$slice,
5299 n,
5300 $elm$core$String$length(string),
5301 string);
5302 });
5303var $elm$core$String$indexes = _String_indexes;
5304var $elm$core$String$isEmpty = function (string) {
5305 return string === '';
5307var $elm$core$String$left = F2(
5308 function (n, string) {
5309 return (n < 1) ? '' : A3($elm$core$String$slice, 0, n, string);
5310 });
5311var $elm$core$String$toInt = _String_toInt;
5312var $elm$url$Url$chompBeforePath = F5(
5313 function (protocol, path, params, frag, str) {
5314 if ($elm$core$String$isEmpty(str) || A2($elm$core$String$contains, '@', str)) {
5315 return $elm$core$Maybe$Nothing;
5316 } else {
5317 var _v0 = A2($elm$core$String$indexes, ':', str);
5318 if (!_v0.b) {
5319 return $elm$core$Maybe$Just(
5320 A6($elm$url$Url$Url, protocol, str, $elm$core$Maybe$Nothing, path, params, frag));
5321 } else {
5322 if (!_v0.b.b) {
5323 var i = _v0.a;
5324 var _v1 = $elm$core$String$toInt(
5325 A2($elm$core$String$dropLeft, i + 1, str));
5326 if (_v1.$ === 'Nothing') {
5327 return $elm$core$Maybe$Nothing;
5328 } else {
5329 var port_ = _v1;
5330 return $elm$core$Maybe$Just(
5331 A6(
5332 $elm$url$Url$Url,
5333 protocol,
5334 A2($elm$core$String$left, i, str),
5335 port_,
5336 path,
5337 params,
5338 frag));
5340 } else {
5341 return $elm$core$Maybe$Nothing;
5345 });
5346var $elm$url$Url$chompBeforeQuery = F4(
5347 function (protocol, params, frag, str) {
5348 if ($elm$core$String$isEmpty(str)) {
5349 return $elm$core$Maybe$Nothing;
5350 } else {
5351 var _v0 = A2($elm$core$String$indexes, '/', str);
5352 if (!_v0.b) {
5353 return A5($elm$url$Url$chompBeforePath, protocol, '/', params, frag, str);
5354 } else {
5355 var i = _v0.a;
5356 return A5(
5357 $elm$url$Url$chompBeforePath,
5358 protocol,
5359 A2($elm$core$String$dropLeft, i, str),
5360 params,
5361 frag,
5362 A2($elm$core$String$left, i, str));
5365 });
5366var $elm$url$Url$chompBeforeFragment = F3(
5367 function (protocol, frag, str) {
5368 if ($elm$core$String$isEmpty(str)) {
5369 return $elm$core$Maybe$Nothing;
5370 } else {
5371 var _v0 = A2($elm$core$String$indexes, '?', str);
5372 if (!_v0.b) {
5373 return A4($elm$url$Url$chompBeforeQuery, protocol, $elm$core$Maybe$Nothing, frag, str);
5374 } else {
5375 var i = _v0.a;
5376 return A4(
5377 $elm$url$Url$chompBeforeQuery,
5378 protocol,
5379 $elm$core$Maybe$Just(
5380 A2($elm$core$String$dropLeft, i + 1, str)),
5381 frag,
5382 A2($elm$core$String$left, i, str));
5385 });
5386var $elm$url$Url$chompAfterProtocol = F2(
5387 function (protocol, str) {
5388 if ($elm$core$String$isEmpty(str)) {
5389 return $elm$core$Maybe$Nothing;
5390 } else {
5391 var _v0 = A2($elm$core$String$indexes, '#', str);
5392 if (!_v0.b) {
5393 return A3($elm$url$Url$chompBeforeFragment, protocol, $elm$core$Maybe$Nothing, str);
5394 } else {
5395 var i = _v0.a;
5396 return A3(
5397 $elm$url$Url$chompBeforeFragment,
5398 protocol,
5399 $elm$core$Maybe$Just(
5400 A2($elm$core$String$dropLeft, i + 1, str)),
5401 A2($elm$core$String$left, i, str));
5404 });
5405var $elm$core$String$startsWith = _String_startsWith;
5406var $elm$url$Url$fromString = function (str) {
5407 return A2($elm$core$String$startsWith, 'http://', str) ? A2(
5408 $elm$url$Url$chompAfterProtocol,
5409 $elm$url$Url$Http,
5410 A2($elm$core$String$dropLeft, 7, str)) : (A2($elm$core$String$startsWith, 'https://', str) ? A2(
5411 $elm$url$Url$chompAfterProtocol,
5412 $elm$url$Url$Https,
5413 A2($elm$core$String$dropLeft, 8, str)) : $elm$core$Maybe$Nothing);
5415var $elm$core$Basics$never = function (_v0) {
5416 never:
5417 while (true) {
5418 var nvr = _v0.a;
5419 var $temp$_v0 = nvr;
5420 _v0 = $temp$_v0;
5421 continue never;
5424var $elm$core$Task$Perform = function (a) {
5425 return {$: 'Perform', a: a};
5427var $elm$core$Task$succeed = _Scheduler_succeed;
5428var $elm$core$Task$init = $elm$core$Task$succeed(_Utils_Tuple0);
5429var $elm$core$List$foldrHelper = F4(
5430 function (fn, acc, ctr, ls) {
5431 if (!ls.b) {
5432 return acc;
5433 } else {
5434 var a = ls.a;
5435 var r1 = ls.b;
5436 if (!r1.b) {
5437 return A2(fn, a, acc);
5438 } else {
5439 var b = r1.a;
5440 var r2 = r1.b;
5441 if (!r2.b) {
5442 return A2(
5443 fn,
5444 a,
5445 A2(fn, b, acc));
5446 } else {
5447 var c = r2.a;
5448 var r3 = r2.b;
5449 if (!r3.b) {
5450 return A2(
5451 fn,
5452 a,
5453 A2(
5454 fn,
5455 b,
5456 A2(fn, c, acc)));
5457 } else {
5458 var d = r3.a;
5459 var r4 = r3.b;
5460 var res = (ctr > 500) ? A3(
5461 $elm$core$List$foldl,
5462 fn,
5463 acc,
5464 $elm$core$List$reverse(r4)) : A4($elm$core$List$foldrHelper, fn, acc, ctr + 1, r4);
5465 return A2(
5466 fn,
5467 a,
5468 A2(
5469 fn,
5470 b,
5471 A2(
5472 fn,
5473 c,
5474 A2(fn, d, res))));
5479 });
5480var $elm$core$List$foldr = F3(
5481 function (fn, acc, ls) {
5482 return A4($elm$core$List$foldrHelper, fn, acc, 0, ls);
5483 });
5484var $elm$core$List$map = F2(
5485 function (f, xs) {
5486 return A3(
5487 $elm$core$List$foldr,
5488 F2(
5489 function (x, acc) {
5490 return A2(
5491 $elm$core$List$cons,
5492 f(x),
5493 acc);
5494 }),
5495 _List_Nil,
5496 xs);
5497 });
5498var $elm$core$Task$andThen = _Scheduler_andThen;
5499var $elm$core$Task$map = F2(
5500 function (func, taskA) {
5501 return A2(
5502 $elm$core$Task$andThen,
5503 function (a) {
5504 return $elm$core$Task$succeed(
5505 func(a));
5506 },
5507 taskA);
5508 });
5509var $elm$core$Task$map2 = F3(
5510 function (func, taskA, taskB) {
5511 return A2(
5512 $elm$core$Task$andThen,
5513 function (a) {
5514 return A2(
5515 $elm$core$Task$andThen,
5516 function (b) {
5517 return $elm$core$Task$succeed(
5518 A2(func, a, b));
5519 },
5520 taskB);
5521 },
5522 taskA);
5523 });
5524var $elm$core$Task$sequence = function (tasks) {
5525 return A3(
5526 $elm$core$List$foldr,
5527 $elm$core$Task$map2($elm$core$List$cons),
5528 $elm$core$Task$succeed(_List_Nil),
5529 tasks);
5531var $elm$core$Platform$sendToApp = _Platform_sendToApp;
5532var $elm$core$Task$spawnCmd = F2(
5533 function (router, _v0) {
5534 var task = _v0.a;
5535 return _Scheduler_spawn(
5536 A2(
5537 $elm$core$Task$andThen,
5538 $elm$core$Platform$sendToApp(router),
5539 task));
5540 });
5541var $elm$core$Task$onEffects = F3(
5542 function (router, commands, state) {
5543 return A2(
5544 $elm$core$Task$map,
5545 function (_v0) {
5546 return _Utils_Tuple0;
5547 },
5548 $elm$core$Task$sequence(
5549 A2(
5550 $elm$core$List$map,
5551 $elm$core$Task$spawnCmd(router),
5552 commands)));
5553 });
5554var $elm$core$Task$onSelfMsg = F3(
5555 function (_v0, _v1, _v2) {
5556 return $elm$core$Task$succeed(_Utils_Tuple0);
5557 });
5558var $elm$core$Task$cmdMap = F2(
5559 function (tagger, _v0) {
5560 var task = _v0.a;
5561 return $elm$core$Task$Perform(
5562 A2($elm$core$Task$map, tagger, task));
5563 });
5564_Platform_effectManagers['Task'] = _Platform_createManager($elm$core$Task$init, $elm$core$Task$onEffects, $elm$core$Task$onSelfMsg, $elm$core$Task$cmdMap);
5565var $elm$core$Task$command = _Platform_leaf('Task');
5566var $elm$core$Task$perform = F2(
5567 function (toMessage, task) {
5568 return $elm$core$Task$command(
5569 $elm$core$Task$Perform(
5570 A2($elm$core$Task$map, toMessage, task)));
5571 });
5572var $elm$browser$Browser$application = _Browser_application;
5573var $author$project$Main$Initialization = function (a) {
5574 return {$: 'Initialization', a: a};
5576var $author$project$Main$InitializationMsg = function (a) {
5577 return {$: 'InitializationMsg', a: a};
5579var $author$project$Page$Initialization$AdjustTimeZone = function (a) {
5580 return {$: 'AdjustTimeZone', a: a};
5582var $krisajenkins$remotedata$RemoteData$Loading = {$: 'Loading'};
5583var $elm$time$Time$Zone = F2(
5584 function (a, b) {
5585 return {$: 'Zone', a: a, b: b};
5586 });
5587var $elm$time$Time$utc = A2($elm$time$Time$Zone, 0, _List_Nil);
5588var $author$project$Config$emptySettings = function (key) {
5589 return {navKey: key, projectName: '', zone: $elm$time$Time$utc};
5591var $elm$time$Time$Name = function (a) {
5592 return {$: 'Name', a: a};
5594var $elm$time$Time$Offset = function (a) {
5595 return {$: 'Offset', a: a};
5597var $elm$time$Time$customZone = $elm$time$Time$Zone;
5598var $elm$time$Time$here = _Time_here(_Utils_Tuple0);
5599var $author$project$Page$Initialization$init = F2(
5600 function (url, key) {
5601 return _Utils_Tuple2(
5603 config: $krisajenkins$remotedata$RemoteData$Loading,
5604 projectName: $krisajenkins$remotedata$RemoteData$Loading,
5605 settings: $author$project$Config$emptySettings(key),
5606 url: url
5607 },
5608 A2($elm$core$Task$perform, $author$project$Page$Initialization$AdjustTimeZone, $elm$time$Time$here));
5609 });
5610var $elm$core$Platform$Cmd$map = _Platform_map;
5611var $author$project$Main$updateWith = F3(
5612 function (toModel, toMsg, _v0) {
5613 var subModel = _v0.a;
5614 var subCmd = _v0.b;
5615 return _Utils_Tuple2(
5616 toModel(subModel),
5617 A2($elm$core$Platform$Cmd$map, toMsg, subCmd));
5618 });
5619var $author$project$Main$init = F3(
5620 function (_v0, url, key) {
5621 return A3(
5622 $author$project$Main$updateWith,
5623 $author$project$Main$Initialization,
5624 $author$project$Main$InitializationMsg,
5625 A2($author$project$Page$Initialization$init, url, key));
5626 });
5627var $author$project$Main$DeploymentMsg = function (a) {
5628 return {$: 'DeploymentMsg', a: a};
5630var $author$project$Main$DeploymentsMsg = function (a) {
5631 return {$: 'DeploymentsMsg', a: a};
5633var $elm$core$Platform$Sub$map = _Platform_map;
5634var $elm$core$Platform$Sub$batch = _Platform_batch;
5635var $elm$core$Platform$Sub$none = $elm$core$Platform$Sub$batch(_List_Nil);
5636var $author$project$Page$Deployment$WSUpdate = function (a) {
5637 return {$: 'WSUpdate', a: a};
5639var $elm$json$Json$Decode$string = _Json_decodeString;
5640var $author$project$Page$Deployment$deploymentReceiver = _Platform_incomingPort('deploymentReceiver', $elm$json$Json$Decode$string);
5641var $author$project$Page$Deployment$subscriptions = function (_v0) {
5642 return $elm$core$Platform$Sub$batch(
5643 _List_fromArray(
5645 $author$project$Page$Deployment$deploymentReceiver($author$project$Page$Deployment$WSUpdate)
5646 ]));
5648var $author$project$Page$Deployments$ActiveTableMsg = function (a) {
5649 return {$: 'ActiveTableMsg', a: a};
5651var $author$project$Page$Deployments$ArchivedTableMsg = function (a) {
5652 return {$: 'ArchivedTableMsg', a: a};
5654var $author$project$Page$Deployments$Tick = function (a) {
5655 return {$: 'Tick', a: a};
5657var $author$project$Page$Deployments$WSUpdate = function (a) {
5658 return {$: 'WSUpdate', a: a};
5660var $author$project$Page$Deployments$deploymentsReceiver = _Platform_incomingPort('deploymentsReceiver', $elm$json$Json$Decode$string);
5661var $elm$time$Time$Every = F2(
5662 function (a, b) {
5663 return {$: 'Every', a: a, b: b};
5664 });
5665var $elm$time$Time$State = F2(
5666 function (taggers, processes) {
5667 return {processes: processes, taggers: taggers};
5668 });
5669var $elm$core$Dict$RBEmpty_elm_builtin = {$: 'RBEmpty_elm_builtin'};
5670var $elm$core$Dict$empty = $elm$core$Dict$RBEmpty_elm_builtin;
5671var $elm$time$Time$init = $elm$core$Task$succeed(
5672 A2($elm$time$Time$State, $elm$core$Dict$empty, $elm$core$Dict$empty));
5673var $elm$core$Basics$compare = _Utils_compare;
5674var $elm$core$Dict$get = F2(
5675 function (targetKey, dict) {
5676 get:
5677 while (true) {
5678 if (dict.$ === 'RBEmpty_elm_builtin') {
5679 return $elm$core$Maybe$Nothing;
5680 } else {
5681 var key = dict.b;
5682 var value = dict.c;
5683 var left = dict.d;
5684 var right = dict.e;
5685 var _v1 = A2($elm$core$Basics$compare, targetKey, key);
5686 switch (_v1.$) {
5687 case 'LT':
5688 var $temp$targetKey = targetKey,
5689 $temp$dict = left;
5690 targetKey = $temp$targetKey;
5691 dict = $temp$dict;
5692 continue get;
5693 case 'EQ':
5694 return $elm$core$Maybe$Just(value);
5695 default:
5696 var $temp$targetKey = targetKey,
5697 $temp$dict = right;
5698 targetKey = $temp$targetKey;
5699 dict = $temp$dict;
5700 continue get;
5704 });
5705var $elm$core$Dict$Black = {$: 'Black'};
5706var $elm$core$Dict$RBNode_elm_builtin = F5(
5707 function (a, b, c, d, e) {
5708 return {$: 'RBNode_elm_builtin', a: a, b: b, c: c, d: d, e: e};
5709 });
5710var $elm$core$Dict$Red = {$: 'Red'};
5711var $elm$core$Dict$balance = F5(
5712 function (color, key, value, left, right) {
5713 if ((right.$ === 'RBNode_elm_builtin') && (right.a.$ === 'Red')) {
5714 var _v1 = right.a;
5715 var rK = right.b;
5716 var rV = right.c;
5717 var rLeft = right.d;
5718 var rRight = right.e;
5719 if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) {
5720 var _v3 = left.a;
5721 var lK = left.b;
5722 var lV = left.c;
5723 var lLeft = left.d;
5724 var lRight = left.e;
5725 return A5(
5726 $elm$core$Dict$RBNode_elm_builtin,
5727 $elm$core$Dict$Red,
5728 key,
5729 value,
5730 A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, lK, lV, lLeft, lRight),
5731 A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, rK, rV, rLeft, rRight));
5732 } else {
5733 return A5(
5734 $elm$core$Dict$RBNode_elm_builtin,
5735 color,
5736 rK,
5737 rV,
5738 A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, key, value, left, rLeft),
5739 rRight);
5741 } else {
5742 if ((((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) && (left.d.$ === 'RBNode_elm_builtin')) && (left.d.a.$ === 'Red')) {
5743 var _v5 = left.a;
5744 var lK = left.b;
5745 var lV = left.c;
5746 var _v6 = left.d;
5747 var _v7 = _v6.a;
5748 var llK = _v6.b;
5749 var llV = _v6.c;
5750 var llLeft = _v6.d;
5751 var llRight = _v6.e;
5752 var lRight = left.e;
5753 return A5(
5754 $elm$core$Dict$RBNode_elm_builtin,
5755 $elm$core$Dict$Red,
5756 lK,
5757 lV,
5758 A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, llK, llV, llLeft, llRight),
5759 A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, key, value, lRight, right));
5760 } else {
5761 return A5($elm$core$Dict$RBNode_elm_builtin, color, key, value, left, right);
5764 });
5765var $elm$core$Dict$insertHelp = F3(
5766 function (key, value, dict) {
5767 if (dict.$ === 'RBEmpty_elm_builtin') {
5768 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);
5769 } else {
5770 var nColor = dict.a;
5771 var nKey = dict.b;
5772 var nValue = dict.c;
5773 var nLeft = dict.d;
5774 var nRight = dict.e;
5775 var _v1 = A2($elm$core$Basics$compare, key, nKey);
5776 switch (_v1.$) {
5777 case 'LT':
5778 return A5(
5779 $elm$core$Dict$balance,
5780 nColor,
5781 nKey,
5782 nValue,
5783 A3($elm$core$Dict$insertHelp, key, value, nLeft),
5784 nRight);
5785 case 'EQ':
5786 return A5($elm$core$Dict$RBNode_elm_builtin, nColor, nKey, value, nLeft, nRight);
5787 default:
5788 return A5(
5789 $elm$core$Dict$balance,
5790 nColor,
5791 nKey,
5792 nValue,
5793 nLeft,
5794 A3($elm$core$Dict$insertHelp, key, value, nRight));
5797 });
5798var $elm$core$Dict$insert = F3(
5799 function (key, value, dict) {
5800 var _v0 = A3($elm$core$Dict$insertHelp, key, value, dict);
5801 if ((_v0.$ === 'RBNode_elm_builtin') && (_v0.a.$ === 'Red')) {
5802 var _v1 = _v0.a;
5803 var k = _v0.b;
5804 var v = _v0.c;
5805 var l = _v0.d;
5806 var r = _v0.e;
5807 return A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, k, v, l, r);
5808 } else {
5809 var x = _v0;
5810 return x;
5812 });
5813var $elm$time$Time$addMySub = F2(
5814 function (_v0, state) {
5815 var interval = _v0.a;
5816 var tagger = _v0.b;
5817 var _v1 = A2($elm$core$Dict$get, interval, state);
5818 if (_v1.$ === 'Nothing') {
5819 return A3(
5820 $elm$core$Dict$insert,
5821 interval,
5822 _List_fromArray(
5823 [tagger]),
5824 state);
5825 } else {
5826 var taggers = _v1.a;
5827 return A3(
5828 $elm$core$Dict$insert,
5829 interval,
5830 A2($elm$core$List$cons, tagger, taggers),
5831 state);
5833 });
5834var $elm$core$Process$kill = _Scheduler_kill;
5835var $elm$core$Dict$foldl = F3(
5836 function (func, acc, dict) {
5837 foldl:
5838 while (true) {
5839 if (dict.$ === 'RBEmpty_elm_builtin') {
5840 return acc;
5841 } else {
5842 var key = dict.b;
5843 var value = dict.c;
5844 var left = dict.d;
5845 var right = dict.e;
5846 var $temp$func = func,
5847 $temp$acc = A3(
5848 func,
5849 key,
5850 value,
5851 A3($elm$core$Dict$foldl, func, acc, left)),
5852 $temp$dict = right;
5853 func = $temp$func;
5854 acc = $temp$acc;
5855 dict = $temp$dict;
5856 continue foldl;
5859 });
5860var $elm$core$Dict$merge = F6(
5861 function (leftStep, bothStep, rightStep, leftDict, rightDict, initialResult) {
5862 var stepState = F3(
5863 function (rKey, rValue, _v0) {
5864 stepState:
5865 while (true) {
5866 var list = _v0.a;
5867 var result = _v0.b;
5868 if (!list.b) {
5869 return _Utils_Tuple2(
5870 list,
5871 A3(rightStep, rKey, rValue, result));
5872 } else {
5873 var _v2 = list.a;
5874 var lKey = _v2.a;
5875 var lValue = _v2.b;
5876 var rest = list.b;
5877 if (_Utils_cmp(lKey, rKey) < 0) {
5878 var $temp$rKey = rKey,
5879 $temp$rValue = rValue,
5880 $temp$_v0 = _Utils_Tuple2(
5881 rest,
5882 A3(leftStep, lKey, lValue, result));
5883 rKey = $temp$rKey;
5884 rValue = $temp$rValue;
5885 _v0 = $temp$_v0;
5886 continue stepState;
5887 } else {
5888 if (_Utils_cmp(lKey, rKey) > 0) {
5889 return _Utils_Tuple2(
5890 list,
5891 A3(rightStep, rKey, rValue, result));
5892 } else {
5893 return _Utils_Tuple2(
5894 rest,
5895 A4(bothStep, lKey, lValue, rValue, result));
5900 });
5901 var _v3 = A3(
5902 $elm$core$Dict$foldl,
5903 stepState,
5904 _Utils_Tuple2(
5905 $elm$core$Dict$toList(leftDict),
5906 initialResult),
5907 rightDict);
5908 var leftovers = _v3.a;
5909 var intermediateResult = _v3.b;
5910 return A3(
5911 $elm$core$List$foldl,
5912 F2(
5913 function (_v4, result) {
5914 var k = _v4.a;
5915 var v = _v4.b;
5916 return A3(leftStep, k, v, result);
5917 }),
5918 intermediateResult,
5919 leftovers);
5920 });
5921var $elm$core$Platform$sendToSelf = _Platform_sendToSelf;
5922var $elm$time$Time$setInterval = _Time_setInterval;
5923var $elm$core$Process$spawn = _Scheduler_spawn;
5924var $elm$time$Time$spawnHelp = F3(
5925 function (router, intervals, processes) {
5926 if (!intervals.b) {
5927 return $elm$core$Task$succeed(processes);
5928 } else {
5929 var interval = intervals.a;
5930 var rest = intervals.b;
5931 var spawnTimer = $elm$core$Process$spawn(
5932 A2(
5933 $elm$time$Time$setInterval,
5934 interval,
5935 A2($elm$core$Platform$sendToSelf, router, interval)));
5936 var spawnRest = function (id) {
5937 return A3(
5938 $elm$time$Time$spawnHelp,
5939 router,
5940 rest,
5941 A3($elm$core$Dict$insert, interval, id, processes));
5942 };
5943 return A2($elm$core$Task$andThen, spawnRest, spawnTimer);
5945 });
5946var $elm$time$Time$onEffects = F3(
5947 function (router, subs, _v0) {
5948 var processes = _v0.processes;
5949 var rightStep = F3(
5950 function (_v6, id, _v7) {
5951 var spawns = _v7.a;
5952 var existing = _v7.b;
5953 var kills = _v7.c;
5954 return _Utils_Tuple3(
5955 spawns,
5956 existing,
5957 A2(
5958 $elm$core$Task$andThen,
5959 function (_v5) {
5960 return kills;
5961 },
5962 $elm$core$Process$kill(id)));
5963 });
5964 var newTaggers = A3($elm$core$List$foldl, $elm$time$Time$addMySub, $elm$core$Dict$empty, subs);
5965 var leftStep = F3(
5966 function (interval, taggers, _v4) {
5967 var spawns = _v4.a;
5968 var existing = _v4.b;
5969 var kills = _v4.c;
5970 return _Utils_Tuple3(
5971 A2($elm$core$List$cons, interval, spawns),
5972 existing,
5973 kills);
5974 });
5975 var bothStep = F4(
5976 function (interval, taggers, id, _v3) {
5977 var spawns = _v3.a;
5978 var existing = _v3.b;
5979 var kills = _v3.c;
5980 return _Utils_Tuple3(
5981 spawns,
5982 A3($elm$core$Dict$insert, interval, id, existing),
5983 kills);
5984 });
5985 var _v1 = A6(
5986 $elm$core$Dict$merge,
5987 leftStep,
5988 bothStep,
5989 rightStep,
5990 newTaggers,
5991 processes,
5992 _Utils_Tuple3(
5993 _List_Nil,
5994 $elm$core$Dict$empty,
5995 $elm$core$Task$succeed(_Utils_Tuple0)));
5996 var spawnList = _v1.a;
5997 var existingDict = _v1.b;
5998 var killTask = _v1.c;
5999 return A2(
6000 $elm$core$Task$andThen,
6001 function (newProcesses) {
6002 return $elm$core$Task$succeed(
6003 A2($elm$time$Time$State, newTaggers, newProcesses));
6004 },
6005 A2(
6006 $elm$core$Task$andThen,
6007 function (_v2) {
6008 return A3($elm$time$Time$spawnHelp, router, spawnList, existingDict);
6009 },
6010 killTask));
6011 });
6012var $elm$time$Time$Posix = function (a) {
6013 return {$: 'Posix', a: a};
6015var $elm$time$Time$millisToPosix = $elm$time$Time$Posix;
6016var $elm$time$Time$now = _Time_now($elm$time$Time$millisToPosix);
6017var $elm$time$Time$onSelfMsg = F3(
6018 function (router, interval, state) {
6019 var _v0 = A2($elm$core$Dict$get, interval, state.taggers);
6020 if (_v0.$ === 'Nothing') {
6021 return $elm$core$Task$succeed(state);
6022 } else {
6023 var taggers = _v0.a;
6024 var tellTaggers = function (time) {
6025 return $elm$core$Task$sequence(
6026 A2(
6027 $elm$core$List$map,
6028 function (tagger) {
6029 return A2(
6030 $elm$core$Platform$sendToApp,
6031 router,
6032 tagger(time));
6033 },
6034 taggers));
6035 };
6036 return A2(
6037 $elm$core$Task$andThen,
6038 function (_v1) {
6039 return $elm$core$Task$succeed(state);
6040 },
6041 A2($elm$core$Task$andThen, tellTaggers, $elm$time$Time$now));
6043 });
6044var $elm$core$Basics$composeL = F3(
6045 function (g, f, x) {
6046 return g(
6047 f(x));
6048 });
6049var $elm$time$Time$subMap = F2(
6050 function (f, _v0) {
6051 var interval = _v0.a;
6052 var tagger = _v0.b;
6053 return A2(
6054 $elm$time$Time$Every,
6055 interval,
6056 A2($elm$core$Basics$composeL, f, tagger));
6057 });
6058_Platform_effectManagers['Time'] = _Platform_createManager($elm$time$Time$init, $elm$time$Time$onEffects, $elm$time$Time$onSelfMsg, 0, $elm$time$Time$subMap);
6059var $elm$time$Time$subscription = _Platform_leaf('Time');
6060var $elm$time$Time$every = F2(
6061 function (interval, tagger) {
6062 return $elm$time$Time$subscription(
6063 A2($elm$time$Time$Every, interval, tagger));
6064 });
6065var $author$project$Page$Deployments$Table$getDropdownId = function (model) {
6066 var _v0 = model.tableType;
6067 if (_v0.$ === 'ActiveTable') {
6068 return 'active-dropdown';
6069 } else {
6070 return 'archived-dropdown';
6073var $elm$browser$Browser$Events$Document = {$: 'Document'};
6074var $elm$browser$Browser$Events$MySub = F3(
6075 function (a, b, c) {
6076 return {$: 'MySub', a: a, b: b, c: c};
6077 });
6078var $elm$browser$Browser$Events$State = F2(
6079 function (subs, pids) {
6080 return {pids: pids, subs: subs};
6081 });
6082var $elm$browser$Browser$Events$init = $elm$core$Task$succeed(
6083 A2($elm$browser$Browser$Events$State, _List_Nil, $elm$core$Dict$empty));
6084var $elm$browser$Browser$Events$nodeToKey = function (node) {
6085 if (node.$ === 'Document') {
6086 return 'd_';
6087 } else {
6088 return 'w_';
6091var $elm$browser$Browser$Events$addKey = function (sub) {
6092 var node = sub.a;
6093 var name = sub.b;
6094 return _Utils_Tuple2(
6095 _Utils_ap(
6096 $elm$browser$Browser$Events$nodeToKey(node),
6097 name),
6098 sub);
6100var $elm$core$Dict$fromList = function (assocs) {
6101 return A3(
6102 $elm$core$List$foldl,
6103 F2(
6104 function (_v0, dict) {
6105 var key = _v0.a;
6106 var value = _v0.b;
6107 return A3($elm$core$Dict$insert, key, value, dict);
6108 }),
6109 $elm$core$Dict$empty,
6110 assocs);
6112var $elm$browser$Browser$Events$Event = F2(
6113 function (key, event) {
6114 return {event: event, key: key};
6115 });
6116var $elm$browser$Browser$Events$spawn = F3(
6117 function (router, key, _v0) {
6118 var node = _v0.a;
6119 var name = _v0.b;
6120 var actualNode = function () {
6121 if (node.$ === 'Document') {
6122 return _Browser_doc;
6123 } else {
6124 return _Browser_window;
6126 }();
6127 return A2(
6128 $elm$core$Task$map,
6129 function (value) {
6130 return _Utils_Tuple2(key, value);
6131 },
6132 A3(
6133 _Browser_on,
6134 actualNode,
6135 name,
6136 function (event) {
6137 return A2(
6138 $elm$core$Platform$sendToSelf,
6139 router,
6140 A2($elm$browser$Browser$Events$Event, key, event));
6141 }));
6142 });
6143var $elm$core$Dict$union = F2(
6144 function (t1, t2) {
6145 return A3($elm$core$Dict$foldl, $elm$core$Dict$insert, t2, t1);
6146 });
6147var $elm$browser$Browser$Events$onEffects = F3(
6148 function (router, subs, state) {
6149 var stepRight = F3(
6150 function (key, sub, _v6) {
6151 var deads = _v6.a;
6152 var lives = _v6.b;
6153 var news = _v6.c;
6154 return _Utils_Tuple3(
6155 deads,
6156 lives,
6157 A2(
6158 $elm$core$List$cons,
6159 A3($elm$browser$Browser$Events$spawn, router, key, sub),
6160 news));
6161 });
6162 var stepLeft = F3(
6163 function (_v4, pid, _v5) {
6164 var deads = _v5.a;
6165 var lives = _v5.b;
6166 var news = _v5.c;
6167 return _Utils_Tuple3(
6168 A2($elm$core$List$cons, pid, deads),
6169 lives,
6170 news);
6171 });
6172 var stepBoth = F4(
6173 function (key, pid, _v2, _v3) {
6174 var deads = _v3.a;
6175 var lives = _v3.b;
6176 var news = _v3.c;
6177 return _Utils_Tuple3(
6178 deads,
6179 A3($elm$core$Dict$insert, key, pid, lives),
6180 news);
6181 });
6182 var newSubs = A2($elm$core$List$map, $elm$browser$Browser$Events$addKey, subs);
6183 var _v0 = A6(
6184 $elm$core$Dict$merge,
6185 stepLeft,
6186 stepBoth,
6187 stepRight,
6188 state.pids,
6189 $elm$core$Dict$fromList(newSubs),
6190 _Utils_Tuple3(_List_Nil, $elm$core$Dict$empty, _List_Nil));
6191 var deadPids = _v0.a;
6192 var livePids = _v0.b;
6193 var makeNewPids = _v0.c;
6194 return A2(
6195 $elm$core$Task$andThen,
6196 function (pids) {
6197 return $elm$core$Task$succeed(
6198 A2(
6199 $elm$browser$Browser$Events$State,
6200 newSubs,
6201 A2(
6202 $elm$core$Dict$union,
6203 livePids,
6204 $elm$core$Dict$fromList(pids))));
6205 },
6206 A2(
6207 $elm$core$Task$andThen,
6208 function (_v1) {
6209 return $elm$core$Task$sequence(makeNewPids);
6210 },
6211 $elm$core$Task$sequence(
6212 A2($elm$core$List$map, $elm$core$Process$kill, deadPids))));
6213 });
6214var $elm$core$List$maybeCons = F3(
6215 function (f, mx, xs) {
6216 var _v0 = f(mx);
6217 if (_v0.$ === 'Just') {
6218 var x = _v0.a;
6219 return A2($elm$core$List$cons, x, xs);
6220 } else {
6221 return xs;
6223 });
6224var $elm$core$List$filterMap = F2(
6225 function (f, xs) {
6226 return A3(
6227 $elm$core$List$foldr,
6228 $elm$core$List$maybeCons(f),
6229 _List_Nil,
6230 xs);
6231 });
6232var $elm$browser$Browser$Events$onSelfMsg = F3(
6233 function (router, _v0, state) {
6234 var key = _v0.key;
6235 var event = _v0.event;
6236 var toMessage = function (_v2) {
6237 var subKey = _v2.a;
6238 var _v3 = _v2.b;
6239 var node = _v3.a;
6240 var name = _v3.b;
6241 var decoder = _v3.c;
6242 return _Utils_eq(subKey, key) ? A2(_Browser_decodeEvent, decoder, event) : $elm$core$Maybe$Nothing;
6243 };
6244 var messages = A2($elm$core$List$filterMap, toMessage, state.subs);
6245 return A2(
6246 $elm$core$Task$andThen,
6247 function (_v1) {
6248 return $elm$core$Task$succeed(state);
6249 },
6250 $elm$core$Task$sequence(
6251 A2(
6252 $elm$core$List$map,
6253 $elm$core$Platform$sendToApp(router),
6254 messages)));
6255 });
6256var $elm$browser$Browser$Events$subMap = F2(
6257 function (func, _v0) {
6258 var node = _v0.a;
6259 var name = _v0.b;
6260 var decoder = _v0.c;
6261 return A3(
6262 $elm$browser$Browser$Events$MySub,
6263 node,
6264 name,
6265 A2($elm$json$Json$Decode$map, func, decoder));
6266 });
6267_Platform_effectManagers['Browser.Events'] = _Platform_createManager($elm$browser$Browser$Events$init, $elm$browser$Browser$Events$onEffects, $elm$browser$Browser$Events$onSelfMsg, 0, $elm$browser$Browser$Events$subMap);
6268var $elm$browser$Browser$Events$subscription = _Platform_leaf('Browser.Events');
6269var $elm$browser$Browser$Events$on = F3(
6270 function (node, name, decoder) {
6271 return $elm$browser$Browser$Events$subscription(
6272 A3($elm$browser$Browser$Events$MySub, node, name, decoder));
6273 });
6274var $elm$browser$Browser$Events$onMouseDown = A2($elm$browser$Browser$Events$on, $elm$browser$Browser$Events$Document, 'mousedown');
6275var $author$project$Page$Deployments$Table$CloseMenu = {$: 'CloseMenu'};
6276var $elm$json$Json$Decode$andThen = _Json_andThen;
6277var $elm$json$Json$Decode$fail = _Json_fail;
6278var $elm$json$Json$Decode$field = _Json_decodeField;
6279var $elm$json$Json$Decode$lazy = function (thunk) {
6280 return A2(
6281 $elm$json$Json$Decode$andThen,
6282 thunk,
6283 $elm$json$Json$Decode$succeed(_Utils_Tuple0));
6285var $elm$json$Json$Decode$oneOf = _Json_oneOf;
6286var $author$project$Page$Deployments$Table$isOutsideDropdown = function (dropdownId) {
6287 return $elm$json$Json$Decode$oneOf(
6288 _List_fromArray(
6290 A2(
6291 $elm$json$Json$Decode$andThen,
6292 function (id) {
6293 return _Utils_eq(dropdownId, id) ? $elm$json$Json$Decode$succeed(false) : $elm$json$Json$Decode$fail('check parent node');
6294 },
6295 A2($elm$json$Json$Decode$field, 'id', $elm$json$Json$Decode$string)),
6296 $elm$json$Json$Decode$lazy(
6297 function (_v0) {
6298 return A2(
6299 $elm$json$Json$Decode$field,
6300 'parentNode',
6301 $author$project$Page$Deployments$Table$isOutsideDropdown(dropdownId));
6302 }),
6303 $elm$json$Json$Decode$succeed(true)
6304 ]));
6306var $author$project$Page$Deployments$Table$outsideTarget = function (dropdownId) {
6307 return A2(
6308 $elm$json$Json$Decode$andThen,
6309 function (isOutside) {
6310 return isOutside ? $elm$json$Json$Decode$succeed($author$project$Page$Deployments$Table$CloseMenu) : $elm$json$Json$Decode$fail('inside dropdown');
6311 },
6312 A2(
6313 $elm$json$Json$Decode$field,
6314 'target',
6315 $author$project$Page$Deployments$Table$isOutsideDropdown(dropdownId)));
6317var $author$project$Page$Deployments$Table$subscriptions = function (model) {
6318 var _v0 = model.menuButton;
6319 if (_v0.$ === 'Just') {
6320 return $elm$browser$Browser$Events$onMouseDown(
6321 $author$project$Page$Deployments$Table$outsideTarget(
6322 $author$project$Page$Deployments$Table$getDropdownId(model)));
6323 } else {
6324 return $elm$core$Platform$Sub$none;
6327var $author$project$Page$Deployments$tick = 15;
6328var $author$project$Page$Deployments$subscriptions = function (model) {
6329 return $elm$core$Platform$Sub$batch(
6330 _List_fromArray(
6332 A2(
6333 $elm$core$Platform$Sub$map,
6334 $author$project$Page$Deployments$ActiveTableMsg,
6335 $author$project$Page$Deployments$Table$subscriptions(model.activeTable)),
6336 A2(
6337 $elm$core$Platform$Sub$map,
6338 $author$project$Page$Deployments$ArchivedTableMsg,
6339 $author$project$Page$Deployments$Table$subscriptions(model.archivedTable)),
6340 $author$project$Page$Deployments$deploymentsReceiver($author$project$Page$Deployments$WSUpdate),
6341 A2($elm$time$Time$every, $author$project$Page$Deployments$tick * 1000, $author$project$Page$Deployments$Tick)
6342 ]));
6344var $author$project$Main$subscriptions = function (model) {
6345 switch (model.$) {
6346 case 'Initialization':
6347 return $elm$core$Platform$Sub$none;
6348 case 'Deployments':
6349 var deployments = model.a;
6350 return A2(
6351 $elm$core$Platform$Sub$map,
6352 $author$project$Main$DeploymentsMsg,
6353 $author$project$Page$Deployments$subscriptions(deployments));
6354 default:
6355 var deployment = model.a;
6356 return A2(
6357 $elm$core$Platform$Sub$map,
6358 $author$project$Main$DeploymentMsg,
6359 $author$project$Page$Deployment$subscriptions(deployment));
6362var $author$project$Main$Deployment = function (a) {
6363 return {$: 'Deployment', a: a};
6365var $author$project$Main$Deployments = function (a) {
6366 return {$: 'Deployments', a: a};
6368var $author$project$Page$Deployment$getConfig = function (model) {
6369 return model.config;
6371var $author$project$Page$Deployments$getConfig = function (model) {
6372 return model.config;
6374var $author$project$Config$AppAuth = function (a) {
6375 return {$: 'AppAuth', a: a};
6377var $author$project$Config$AppUrl = function (a) {
6378 return {$: 'AppUrl', a: a};
6380var $author$project$Config$Config = F4(
6381 function (appUrl, wsUrl, appAuth, k8sDashboardUrlTemplate) {
6382 return {appAuth: appAuth, appUrl: appUrl, k8sDashboardUrlTemplate: k8sDashboardUrlTemplate, wsUrl: wsUrl};
6383 });
6384var $author$project$Config$emptyConfig = A4(
6385 $author$project$Config$Config,
6386 $author$project$Config$AppUrl(''),
6387 '',
6388 $author$project$Config$AppAuth(''),
6389 '');
6390var $author$project$Page$Initialization$getConfig = function (model) {
6391 var _v0 = model.config;
6392 if (_v0.$ === 'Success') {
6393 var cfg = _v0.a;
6394 return cfg;
6395 } else {
6396 return $author$project$Config$emptyConfig;
6399var $author$project$Main$getConfig = function (model) {
6400 switch (model.$) {
6401 case 'Initialization':
6402 var subModel = model.a;
6403 return $author$project$Page$Initialization$getConfig(subModel);
6404 case 'Deployments':
6405 var subModel = model.a;
6406 return $author$project$Page$Deployments$getConfig(subModel);
6407 default:
6408 var subModel = model.a;
6409 return $author$project$Page$Deployment$getConfig(subModel);
6412var $author$project$Page$Deployment$getSettings = function (model) {
6413 return model.settings;
6415var $author$project$Page$Deployments$getSettings = function (model) {
6416 return model.settings;
6418var $author$project$Page$Initialization$getSettings = function (model) {
6419 return model.settings;
6421var $author$project$Main$getSettings = function (model) {
6422 switch (model.$) {
6423 case 'Initialization':
6424 var subModel = model.a;
6425 return $author$project$Page$Initialization$getSettings(subModel);
6426 case 'Deployments':
6427 var subModel = model.a;
6428 return $author$project$Page$Deployments$getSettings(subModel);
6429 default:
6430 var subModel = model.a;
6431 return $author$project$Page$Deployment$getSettings(subModel);
6434var $elm$core$Platform$Cmd$batch = _Platform_batch;
6435var $jinjor$elm_debounce$Debounce$Debounce = function (a) {
6436 return {$: 'Debounce', a: a};
6438var $jinjor$elm_debounce$Debounce$init = $jinjor$elm_debounce$Debounce$Debounce(
6439 {input: _List_Nil, locked: false});
6440var $turboMaCk$any_set$Set$Any$AnySet = function (a) {
6441 return {$: 'AnySet', a: a};
6443var $turboMaCk$any_dict$Dict$Any$AnyDict = function (a) {
6444 return {$: 'AnyDict', a: a};
6446var $turboMaCk$any_dict$Dict$Any$empty = function (toKey) {
6447 return $turboMaCk$any_dict$Dict$Any$AnyDict(
6448 {dict: $elm$core$Dict$empty, toKey: toKey});
6450var $turboMaCk$any_set$Set$Any$empty = A2($elm$core$Basics$composeL, $turboMaCk$any_set$Set$Any$AnySet, $turboMaCk$any_dict$Dict$Any$empty);
6451var $author$project$Types$Action$unActionId = function (_v0) {
6452 var id = _v0.a;
6453 return id;
6455var $author$project$Page$Deployment$ActionTable$init = {
6456 openedAppOverrides: $turboMaCk$any_set$Set$Any$empty($author$project$Types$Action$unActionId),
6457 openedDeployemntOverrides: $turboMaCk$any_set$Set$Any$empty($author$project$Types$Action$unActionId)
6459var $krisajenkins$remotedata$RemoteData$NotAsked = {$: 'NotAsked'};
6460var $author$project$Page$Sidebar$CreateUpdate$Update = {$: 'Update'};
6461var $author$project$Page$Sidebar$CreateUpdate$initUpdate = F3(
6462 function (config, visibility, deploymentName) {
6463 return {appDefaults: $krisajenkins$remotedata$RemoteData$Loading, appKeys: $krisajenkins$remotedata$RemoteData$Loading, appOverrides: $krisajenkins$remotedata$RemoteData$Loading, config: config, deployment: $krisajenkins$remotedata$RemoteData$Loading, deploymentDefaults: $krisajenkins$remotedata$RemoteData$Loading, deploymentKeys: $krisajenkins$remotedata$RemoteData$Loading, deploymentOverrides: $krisajenkins$remotedata$RemoteData$Loading, mode: $author$project$Page$Sidebar$CreateUpdate$Update, name: deploymentName, nameEdited: false, saveResp: $krisajenkins$remotedata$RemoteData$NotAsked, visibility: visibility};
6464 });
6465var $author$project$Page$Deployment$DeploymentFullInfoResponse = function (a) {
6466 return {$: 'DeploymentFullInfoResponse', a: a};
6468var $elm$core$Basics$composeR = F3(
6469 function (f, g, x) {
6470 return g(
6471 f(x));
6472 });
6473var $author$project$Types$Deployment$Deployment = F5(
6474 function (deployment, status, metadata, createdAt, updatedAt) {
6475 return {createdAt: createdAt, deployment: deployment, metadata: metadata, status: status, updatedAt: updatedAt};
6476 });
6477var $elm$parser$Parser$Advanced$Bad = F2(
6478 function (a, b) {
6479 return {$: 'Bad', a: a, b: b};
6480 });
6481var $elm$parser$Parser$Advanced$Good = F3(
6482 function (a, b, c) {
6483 return {$: 'Good', a: a, b: b, c: c};
6484 });
6485var $elm$parser$Parser$Advanced$Parser = function (a) {
6486 return {$: 'Parser', a: a};
6488var $elm$parser$Parser$Advanced$andThen = F2(
6489 function (callback, _v0) {
6490 var parseA = _v0.a;
6491 return $elm$parser$Parser$Advanced$Parser(
6492 function (s0) {
6493 var _v1 = parseA(s0);
6494 if (_v1.$ === 'Bad') {
6495 var p = _v1.a;
6496 var x = _v1.b;
6497 return A2($elm$parser$Parser$Advanced$Bad, p, x);
6498 } else {
6499 var p1 = _v1.a;
6500 var a = _v1.b;
6501 var s1 = _v1.c;
6502 var _v2 = callback(a);
6503 var parseB = _v2.a;
6504 var _v3 = parseB(s1);
6505 if (_v3.$ === 'Bad') {
6506 var p2 = _v3.a;
6507 var x = _v3.b;
6508 return A2($elm$parser$Parser$Advanced$Bad, p1 || p2, x);
6509 } else {
6510 var p2 = _v3.a;
6511 var b = _v3.b;
6512 var s2 = _v3.c;
6513 return A3($elm$parser$Parser$Advanced$Good, p1 || p2, b, s2);
6516 });
6517 });
6518var $elm$parser$Parser$andThen = $elm$parser$Parser$Advanced$andThen;
6519var $elm$parser$Parser$ExpectingEnd = {$: 'ExpectingEnd'};
6520var $elm$parser$Parser$Advanced$AddRight = F2(
6521 function (a, b) {
6522 return {$: 'AddRight', a: a, b: b};
6523 });
6524var $elm$parser$Parser$Advanced$DeadEnd = F4(
6525 function (row, col, problem, contextStack) {
6526 return {col: col, contextStack: contextStack, problem: problem, row: row};
6527 });
6528var $elm$parser$Parser$Advanced$Empty = {$: 'Empty'};
6529var $elm$parser$Parser$Advanced$fromState = F2(
6530 function (s, x) {
6531 return A2(
6532 $elm$parser$Parser$Advanced$AddRight,
6533 $elm$parser$Parser$Advanced$Empty,
6534 A4($elm$parser$Parser$Advanced$DeadEnd, s.row, s.col, x, s.context));
6535 });
6536var $elm$parser$Parser$Advanced$end = function (x) {
6537 return $elm$parser$Parser$Advanced$Parser(
6538 function (s) {
6539 return _Utils_eq(
6540 $elm$core$String$length(s.src),
6541 s.offset) ? A3($elm$parser$Parser$Advanced$Good, false, _Utils_Tuple0, s) : A2(
6542 $elm$parser$Parser$Advanced$Bad,
6543 false,
6544 A2($elm$parser$Parser$Advanced$fromState, s, x));
6545 });
6547var $elm$parser$Parser$end = $elm$parser$Parser$Advanced$end($elm$parser$Parser$ExpectingEnd);
6548var $elm$parser$Parser$Advanced$isSubChar = _Parser_isSubChar;
6549var $elm$core$Basics$negate = function (n) {
6550 return -n;
6552var $elm$parser$Parser$Advanced$chompWhileHelp = F5(
6553 function (isGood, offset, row, col, s0) {
6554 chompWhileHelp:
6555 while (true) {
6556 var newOffset = A3($elm$parser$Parser$Advanced$isSubChar, isGood, offset, s0.src);
6557 if (_Utils_eq(newOffset, -1)) {
6558 return A3(
6559 $elm$parser$Parser$Advanced$Good,
6560 _Utils_cmp(s0.offset, offset) < 0,
6561 _Utils_Tuple0,
6562 {col: col, context: s0.context, indent: s0.indent, offset: offset, row: row, src: s0.src});
6563 } else {
6564 if (_Utils_eq(newOffset, -2)) {
6565 var $temp$isGood = isGood,
6566 $temp$offset = offset + 1,
6567 $temp$row = row + 1,
6568 $temp$col = 1,
6569 $temp$s0 = s0;
6570 isGood = $temp$isGood;
6571 offset = $temp$offset;
6572 row = $temp$row;
6573 col = $temp$col;
6574 s0 = $temp$s0;
6575 continue chompWhileHelp;
6576 } else {
6577 var $temp$isGood = isGood,
6578 $temp$offset = newOffset,
6579 $temp$row = row,
6580 $temp$col = col + 1,
6581 $temp$s0 = s0;
6582 isGood = $temp$isGood;
6583 offset = $temp$offset;
6584 row = $temp$row;
6585 col = $temp$col;
6586 s0 = $temp$s0;
6587 continue chompWhileHelp;
6591 });
6592var $elm$parser$Parser$Advanced$chompWhile = function (isGood) {
6593 return $elm$parser$Parser$Advanced$Parser(
6594 function (s) {
6595 return A5($elm$parser$Parser$Advanced$chompWhileHelp, isGood, s.offset, s.row, s.col, s);
6596 });
6598var $elm$parser$Parser$chompWhile = $elm$parser$Parser$Advanced$chompWhile;
6599var $elm$core$Basics$always = F2(
6600 function (a, _v0) {
6601 return a;
6602 });
6603var $elm$parser$Parser$Advanced$mapChompedString = F2(
6604 function (func, _v0) {
6605 var parse = _v0.a;
6606 return $elm$parser$Parser$Advanced$Parser(
6607 function (s0) {
6608 var _v1 = parse(s0);
6609 if (_v1.$ === 'Bad') {
6610 var p = _v1.a;
6611 var x = _v1.b;
6612 return A2($elm$parser$Parser$Advanced$Bad, p, x);
6613 } else {
6614 var p = _v1.a;
6615 var a = _v1.b;
6616 var s1 = _v1.c;
6617 return A3(
6618 $elm$parser$Parser$Advanced$Good,
6619 p,
6620 A2(
6621 func,
6622 A3($elm$core$String$slice, s0.offset, s1.offset, s0.src),
6623 a),
6624 s1);
6626 });
6627 });
6628var $elm$parser$Parser$Advanced$getChompedString = function (parser) {
6629 return A2($elm$parser$Parser$Advanced$mapChompedString, $elm$core$Basics$always, parser);
6631var $elm$parser$Parser$getChompedString = $elm$parser$Parser$Advanced$getChompedString;
6632var $elm$parser$Parser$Problem = function (a) {
6633 return {$: 'Problem', a: a};
6635var $elm$parser$Parser$Advanced$problem = function (x) {
6636 return $elm$parser$Parser$Advanced$Parser(
6637 function (s) {
6638 return A2(
6639 $elm$parser$Parser$Advanced$Bad,
6640 false,
6641 A2($elm$parser$Parser$Advanced$fromState, s, x));
6642 });
6644var $elm$parser$Parser$problem = function (msg) {
6645 return $elm$parser$Parser$Advanced$problem(
6646 $elm$parser$Parser$Problem(msg));
6648var $elm$core$Basics$round = _Basics_round;
6649var $elm$parser$Parser$Advanced$succeed = function (a) {
6650 return $elm$parser$Parser$Advanced$Parser(
6651 function (s) {
6652 return A3($elm$parser$Parser$Advanced$Good, false, a, s);
6653 });
6655var $elm$parser$Parser$succeed = $elm$parser$Parser$Advanced$succeed;
6656var $elm$core$String$toFloat = _String_toFloat;
6657var $rtfeldman$elm_iso8601_date_strings$Iso8601$fractionsOfASecondInMs = A2(
6658 $elm$parser$Parser$andThen,
6659 function (str) {
6660 if ($elm$core$String$length(str) <= 9) {
6661 var _v0 = $elm$core$String$toFloat('0.' + str);
6662 if (_v0.$ === 'Just') {
6663 var floatVal = _v0.a;
6664 return $elm$parser$Parser$succeed(
6665 $elm$core$Basics$round(floatVal * 1000));
6666 } else {
6667 return $elm$parser$Parser$problem('Invalid float: \"' + (str + '\"'));
6669 } else {
6670 return $elm$parser$Parser$problem(
6671 'Expected at most 9 digits, but got ' + $elm$core$String$fromInt(
6672 $elm$core$String$length(str)));
6674 },
6675 $elm$parser$Parser$getChompedString(
6676 $elm$parser$Parser$chompWhile($elm$core$Char$isDigit)));
6677var $rtfeldman$elm_iso8601_date_strings$Iso8601$fromParts = F6(
6678 function (monthYearDayMs, hour, minute, second, ms, utcOffsetMinutes) {
6679 return $elm$time$Time$millisToPosix((((monthYearDayMs + (((hour * 60) * 60) * 1000)) + (((minute - utcOffsetMinutes) * 60) * 1000)) + (second * 1000)) + ms);
6680 });
6681var $elm$parser$Parser$Advanced$map2 = F3(
6682 function (func, _v0, _v1) {
6683 var parseA = _v0.a;
6684 var parseB = _v1.a;
6685 return $elm$parser$Parser$Advanced$Parser(
6686 function (s0) {
6687 var _v2 = parseA(s0);
6688 if (_v2.$ === 'Bad') {
6689 var p = _v2.a;
6690 var x = _v2.b;
6691 return A2($elm$parser$Parser$Advanced$Bad, p, x);
6692 } else {
6693 var p1 = _v2.a;
6694 var a = _v2.b;
6695 var s1 = _v2.c;
6696 var _v3 = parseB(s1);
6697 if (_v3.$ === 'Bad') {
6698 var p2 = _v3.a;
6699 var x = _v3.b;
6700 return A2($elm$parser$Parser$Advanced$Bad, p1 || p2, x);
6701 } else {
6702 var p2 = _v3.a;
6703 var b = _v3.b;
6704 var s2 = _v3.c;
6705 return A3(
6706 $elm$parser$Parser$Advanced$Good,
6707 p1 || p2,
6708 A2(func, a, b),
6709 s2);
6712 });
6713 });
6714var $elm$parser$Parser$Advanced$ignorer = F2(
6715 function (keepParser, ignoreParser) {
6716 return A3($elm$parser$Parser$Advanced$map2, $elm$core$Basics$always, keepParser, ignoreParser);
6717 });
6718var $elm$parser$Parser$ignorer = $elm$parser$Parser$Advanced$ignorer;
6719var $elm$parser$Parser$Advanced$keeper = F2(
6720 function (parseFunc, parseArg) {
6721 return A3($elm$parser$Parser$Advanced$map2, $elm$core$Basics$apL, parseFunc, parseArg);
6722 });
6723var $elm$parser$Parser$keeper = $elm$parser$Parser$Advanced$keeper;
6724var $elm$parser$Parser$Advanced$Append = F2(
6725 function (a, b) {
6726 return {$: 'Append', a: a, b: b};
6727 });
6728var $elm$parser$Parser$Advanced$oneOfHelp = F3(
6729 function (s0, bag, parsers) {
6730 oneOfHelp:
6731 while (true) {
6732 if (!parsers.b) {
6733 return A2($elm$parser$Parser$Advanced$Bad, false, bag);
6734 } else {
6735 var parse = parsers.a.a;
6736 var remainingParsers = parsers.b;
6737 var _v1 = parse(s0);
6738 if (_v1.$ === 'Good') {
6739 var step = _v1;
6740 return step;
6741 } else {
6742 var step = _v1;
6743 var p = step.a;
6744 var x = step.b;
6745 if (p) {
6746 return step;
6747 } else {
6748 var $temp$s0 = s0,
6749 $temp$bag = A2($elm$parser$Parser$Advanced$Append, bag, x),
6750 $temp$parsers = remainingParsers;
6751 s0 = $temp$s0;
6752 bag = $temp$bag;
6753 parsers = $temp$parsers;
6754 continue oneOfHelp;
6759 });
6760var $elm$parser$Parser$Advanced$oneOf = function (parsers) {
6761 return $elm$parser$Parser$Advanced$Parser(
6762 function (s) {
6763 return A3($elm$parser$Parser$Advanced$oneOfHelp, s, $elm$parser$Parser$Advanced$Empty, parsers);
6764 });
6766var $elm$parser$Parser$oneOf = $elm$parser$Parser$Advanced$oneOf;
6767var $elm$parser$Parser$Done = function (a) {
6768 return {$: 'Done', a: a};
6770var $elm$parser$Parser$Loop = function (a) {
6771 return {$: 'Loop', a: a};
6773var $elm$core$String$append = _String_append;
6774var $elm$parser$Parser$UnexpectedChar = {$: 'UnexpectedChar'};
6775var $elm$parser$Parser$Advanced$chompIf = F2(
6776 function (isGood, expecting) {
6777 return $elm$parser$Parser$Advanced$Parser(
6778 function (s) {
6779 var newOffset = A3($elm$parser$Parser$Advanced$isSubChar, isGood, s.offset, s.src);
6780 return _Utils_eq(newOffset, -1) ? A2(
6781 $elm$parser$Parser$Advanced$Bad,
6782 false,
6783 A2($elm$parser$Parser$Advanced$fromState, s, expecting)) : (_Utils_eq(newOffset, -2) ? A3(
6784 $elm$parser$Parser$Advanced$Good,
6785 true,
6786 _Utils_Tuple0,
6787 {col: 1, context: s.context, indent: s.indent, offset: s.offset + 1, row: s.row + 1, src: s.src}) : A3(
6788 $elm$parser$Parser$Advanced$Good,
6789 true,
6790 _Utils_Tuple0,
6791 {col: s.col + 1, context: s.context, indent: s.indent, offset: newOffset, row: s.row, src: s.src}));
6792 });
6793 });
6794var $elm$parser$Parser$chompIf = function (isGood) {
6795 return A2($elm$parser$Parser$Advanced$chompIf, isGood, $elm$parser$Parser$UnexpectedChar);
6797var $elm$parser$Parser$Advanced$loopHelp = F4(
6798 function (p, state, callback, s0) {
6799 loopHelp:
6800 while (true) {
6801 var _v0 = callback(state);
6802 var parse = _v0.a;
6803 var _v1 = parse(s0);
6804 if (_v1.$ === 'Good') {
6805 var p1 = _v1.a;
6806 var step = _v1.b;
6807 var s1 = _v1.c;
6808 if (step.$ === 'Loop') {
6809 var newState = step.a;
6810 var $temp$p = p || p1,
6811 $temp$state = newState,
6812 $temp$callback = callback,
6813 $temp$s0 = s1;
6814 p = $temp$p;
6815 state = $temp$state;
6816 callback = $temp$callback;
6817 s0 = $temp$s0;
6818 continue loopHelp;
6819 } else {
6820 var result = step.a;
6821 return A3($elm$parser$Parser$Advanced$Good, p || p1, result, s1);
6823 } else {
6824 var p1 = _v1.a;
6825 var x = _v1.b;
6826 return A2($elm$parser$Parser$Advanced$Bad, p || p1, x);
6829 });
6830var $elm$parser$Parser$Advanced$loop = F2(
6831 function (state, callback) {
6832 return $elm$parser$Parser$Advanced$Parser(
6833 function (s) {
6834 return A4($elm$parser$Parser$Advanced$loopHelp, false, state, callback, s);
6835 });
6836 });
6837var $elm$parser$Parser$Advanced$map = F2(
6838 function (func, _v0) {
6839 var parse = _v0.a;
6840 return $elm$parser$Parser$Advanced$Parser(
6841 function (s0) {
6842 var _v1 = parse(s0);
6843 if (_v1.$ === 'Good') {
6844 var p = _v1.a;
6845 var a = _v1.b;
6846 var s1 = _v1.c;
6847 return A3(
6848 $elm$parser$Parser$Advanced$Good,
6849 p,
6850 func(a),
6851 s1);
6852 } else {
6853 var p = _v1.a;
6854 var x = _v1.b;
6855 return A2($elm$parser$Parser$Advanced$Bad, p, x);
6857 });
6858 });
6859var $elm$parser$Parser$map = $elm$parser$Parser$Advanced$map;
6860var $elm$parser$Parser$Advanced$Done = function (a) {
6861 return {$: 'Done', a: a};
6863var $elm$parser$Parser$Advanced$Loop = function (a) {
6864 return {$: 'Loop', a: a};
6866var $elm$parser$Parser$toAdvancedStep = function (step) {
6867 if (step.$ === 'Loop') {
6868 var s = step.a;
6869 return $elm$parser$Parser$Advanced$Loop(s);
6870 } else {
6871 var a = step.a;
6872 return $elm$parser$Parser$Advanced$Done(a);
6875var $elm$parser$Parser$loop = F2(
6876 function (state, callback) {
6877 return A2(
6878 $elm$parser$Parser$Advanced$loop,
6879 state,
6880 function (s) {
6881 return A2(
6882 $elm$parser$Parser$map,
6883 $elm$parser$Parser$toAdvancedStep,
6884 callback(s));
6885 });
6886 });
6887var $rtfeldman$elm_iso8601_date_strings$Iso8601$paddedInt = function (quantity) {
6888 var helper = function (str) {
6889 if (_Utils_eq(
6890 $elm$core$String$length(str),
6891 quantity)) {
6892 var _v0 = $elm$core$String$toInt(str);
6893 if (_v0.$ === 'Just') {
6894 var intVal = _v0.a;
6895 return A2(
6896 $elm$parser$Parser$map,
6897 $elm$parser$Parser$Done,
6898 $elm$parser$Parser$succeed(intVal));
6899 } else {
6900 return $elm$parser$Parser$problem('Invalid integer: \"' + (str + '\"'));
6902 } else {
6903 return A2(
6904 $elm$parser$Parser$map,
6905 function (nextChar) {
6906 return $elm$parser$Parser$Loop(
6907 A2($elm$core$String$append, str, nextChar));
6908 },
6909 $elm$parser$Parser$getChompedString(
6910 $elm$parser$Parser$chompIf($elm$core$Char$isDigit)));
6912 };
6913 return A2($elm$parser$Parser$loop, '', helper);
6915var $elm$parser$Parser$ExpectingSymbol = function (a) {
6916 return {$: 'ExpectingSymbol', a: a};
6918var $elm$parser$Parser$Advanced$Token = F2(
6919 function (a, b) {
6920 return {$: 'Token', a: a, b: b};
6921 });
6922var $elm$parser$Parser$Advanced$isSubString = _Parser_isSubString;
6923var $elm$core$Basics$not = _Basics_not;
6924var $elm$parser$Parser$Advanced$token = function (_v0) {
6925 var str = _v0.a;
6926 var expecting = _v0.b;
6927 var progress = !$elm$core$String$isEmpty(str);
6928 return $elm$parser$Parser$Advanced$Parser(
6929 function (s) {
6930 var _v1 = A5($elm$parser$Parser$Advanced$isSubString, str, s.offset, s.row, s.col, s.src);
6931 var newOffset = _v1.a;
6932 var newRow = _v1.b;
6933 var newCol = _v1.c;
6934 return _Utils_eq(newOffset, -1) ? A2(
6935 $elm$parser$Parser$Advanced$Bad,
6936 false,
6937 A2($elm$parser$Parser$Advanced$fromState, s, expecting)) : A3(
6938 $elm$parser$Parser$Advanced$Good,
6939 progress,
6940 _Utils_Tuple0,
6941 {col: newCol, context: s.context, indent: s.indent, offset: newOffset, row: newRow, src: s.src});
6942 });
6944var $elm$parser$Parser$Advanced$symbol = $elm$parser$Parser$Advanced$token;
6945var $elm$parser$Parser$symbol = function (str) {
6946 return $elm$parser$Parser$Advanced$symbol(
6947 A2(
6948 $elm$parser$Parser$Advanced$Token,
6949 str,
6950 $elm$parser$Parser$ExpectingSymbol(str)));
6952var $rtfeldman$elm_iso8601_date_strings$Iso8601$epochYear = 1970;
6953var $rtfeldman$elm_iso8601_date_strings$Iso8601$invalidDay = function (day) {
6954 return $elm$parser$Parser$problem(
6955 'Invalid day: ' + $elm$core$String$fromInt(day));
6957var $elm$core$Basics$modBy = _Basics_modBy;
6958var $elm$core$Basics$neq = _Utils_notEqual;
6959var $rtfeldman$elm_iso8601_date_strings$Iso8601$isLeapYear = function (year) {
6960 return (!A2($elm$core$Basics$modBy, 4, year)) && ((!(!A2($elm$core$Basics$modBy, 100, year))) || (!A2($elm$core$Basics$modBy, 400, year)));
6962var $rtfeldman$elm_iso8601_date_strings$Iso8601$leapYearsBefore = function (y1) {
6963 var y = y1 - 1;
6964 return (((y / 4) | 0) - ((y / 100) | 0)) + ((y / 400) | 0);
6966var $rtfeldman$elm_iso8601_date_strings$Iso8601$msPerDay = 86400000;
6967var $rtfeldman$elm_iso8601_date_strings$Iso8601$msPerYear = 31536000000;
6968var $rtfeldman$elm_iso8601_date_strings$Iso8601$yearMonthDay = function (_v0) {
6969 var year = _v0.a;
6970 var month = _v0.b;
6971 var dayInMonth = _v0.c;
6972 if (dayInMonth < 0) {
6973 return $rtfeldman$elm_iso8601_date_strings$Iso8601$invalidDay(dayInMonth);
6974 } else {
6975 var succeedWith = function (extraMs) {
6976 var yearMs = $rtfeldman$elm_iso8601_date_strings$Iso8601$msPerYear * (year - $rtfeldman$elm_iso8601_date_strings$Iso8601$epochYear);
6977 var days = ((month < 3) || (!$rtfeldman$elm_iso8601_date_strings$Iso8601$isLeapYear(year))) ? (dayInMonth - 1) : dayInMonth;
6978 var dayMs = $rtfeldman$elm_iso8601_date_strings$Iso8601$msPerDay * (days + ($rtfeldman$elm_iso8601_date_strings$Iso8601$leapYearsBefore(year) - $rtfeldman$elm_iso8601_date_strings$Iso8601$leapYearsBefore($rtfeldman$elm_iso8601_date_strings$Iso8601$epochYear)));
6979 return $elm$parser$Parser$succeed((extraMs + yearMs) + dayMs);
6980 };
6981 switch (month) {
6982 case 1:
6983 return (dayInMonth > 31) ? $rtfeldman$elm_iso8601_date_strings$Iso8601$invalidDay(dayInMonth) : succeedWith(0);
6984 case 2:
6985 return ((dayInMonth > 29) || ((dayInMonth === 29) && (!$rtfeldman$elm_iso8601_date_strings$Iso8601$isLeapYear(year)))) ? $rtfeldman$elm_iso8601_date_strings$Iso8601$invalidDay(dayInMonth) : succeedWith(2678400000);
6986 case 3:
6987 return (dayInMonth > 31) ? $rtfeldman$elm_iso8601_date_strings$Iso8601$invalidDay(dayInMonth) : succeedWith(5097600000);
6988 case 4:
6989 return (dayInMonth > 30) ? $rtfeldman$elm_iso8601_date_strings$Iso8601$invalidDay(dayInMonth) : succeedWith(7776000000);
6990 case 5:
6991 return (dayInMonth > 31) ? $rtfeldman$elm_iso8601_date_strings$Iso8601$invalidDay(dayInMonth) : succeedWith(10368000000);
6992 case 6:
6993 return (dayInMonth > 30) ? $rtfeldman$elm_iso8601_date_strings$Iso8601$invalidDay(dayInMonth) : succeedWith(13046400000);
6994 case 7:
6995 return (dayInMonth > 31) ? $rtfeldman$elm_iso8601_date_strings$Iso8601$invalidDay(dayInMonth) : succeedWith(15638400000);
6996 case 8:
6997 return (dayInMonth > 31) ? $rtfeldman$elm_iso8601_date_strings$Iso8601$invalidDay(dayInMonth) : succeedWith(18316800000);
6998 case 9:
6999 return (dayInMonth > 30) ? $rtfeldman$elm_iso8601_date_strings$Iso8601$invalidDay(dayInMonth) : succeedWith(20995200000);
7000 case 10:
7001 return (dayInMonth > 31) ? $rtfeldman$elm_iso8601_date_strings$Iso8601$invalidDay(dayInMonth) : succeedWith(23587200000);
7002 case 11:
7003 return (dayInMonth > 30) ? $rtfeldman$elm_iso8601_date_strings$Iso8601$invalidDay(dayInMonth) : succeedWith(26265600000);
7004 case 12:
7005 return (dayInMonth > 31) ? $rtfeldman$elm_iso8601_date_strings$Iso8601$invalidDay(dayInMonth) : succeedWith(28857600000);
7006 default:
7007 return $elm$parser$Parser$problem(
7008 'Invalid month: \"' + ($elm$core$String$fromInt(month) + '\"'));
7012var $rtfeldman$elm_iso8601_date_strings$Iso8601$monthYearDayInMs = A2(
7013 $elm$parser$Parser$andThen,
7014 $rtfeldman$elm_iso8601_date_strings$Iso8601$yearMonthDay,
7015 A2(
7016 $elm$parser$Parser$keeper,
7017 A2(
7018 $elm$parser$Parser$keeper,
7019 A2(
7020 $elm$parser$Parser$keeper,
7021 $elm$parser$Parser$succeed(
7022 F3(
7023 function (year, month, day) {
7024 return _Utils_Tuple3(year, month, day);
7025 })),
7026 $rtfeldman$elm_iso8601_date_strings$Iso8601$paddedInt(4)),
7027 $elm$parser$Parser$oneOf(
7028 _List_fromArray(
7030 A2(
7031 $elm$parser$Parser$keeper,
7032 A2(
7033 $elm$parser$Parser$ignorer,
7034 $elm$parser$Parser$succeed($elm$core$Basics$identity),
7035 $elm$parser$Parser$symbol('-')),
7036 $rtfeldman$elm_iso8601_date_strings$Iso8601$paddedInt(2)),
7037 $rtfeldman$elm_iso8601_date_strings$Iso8601$paddedInt(2)
7038 ]))),
7039 $elm$parser$Parser$oneOf(
7040 _List_fromArray(
7042 A2(
7043 $elm$parser$Parser$keeper,
7044 A2(
7045 $elm$parser$Parser$ignorer,
7046 $elm$parser$Parser$succeed($elm$core$Basics$identity),
7047 $elm$parser$Parser$symbol('-')),
7048 $rtfeldman$elm_iso8601_date_strings$Iso8601$paddedInt(2)),
7049 $rtfeldman$elm_iso8601_date_strings$Iso8601$paddedInt(2)
7050 ]))));
7051var $rtfeldman$elm_iso8601_date_strings$Iso8601$utcOffsetInMinutes = function () {
7052 var utcOffsetMinutesFromParts = F3(
7053 function (multiplier, hours, minutes) {
7054 return (multiplier * (hours * 60)) + minutes;
7055 });
7056 return A2(
7057 $elm$parser$Parser$keeper,
7058 $elm$parser$Parser$succeed($elm$core$Basics$identity),
7059 $elm$parser$Parser$oneOf(
7060 _List_fromArray(
7062 A2(
7063 $elm$parser$Parser$map,
7064 function (_v0) {
7065 return 0;
7066 },
7067 $elm$parser$Parser$symbol('Z')),
7068 A2(
7069 $elm$parser$Parser$keeper,
7070 A2(
7071 $elm$parser$Parser$keeper,
7072 A2(
7073 $elm$parser$Parser$keeper,
7074 $elm$parser$Parser$succeed(utcOffsetMinutesFromParts),
7075 $elm$parser$Parser$oneOf(
7076 _List_fromArray(
7078 A2(
7079 $elm$parser$Parser$map,
7080 function (_v1) {
7081 return 1;
7082 },
7083 $elm$parser$Parser$symbol('+')),
7084 A2(
7085 $elm$parser$Parser$map,
7086 function (_v2) {
7087 return -1;
7088 },
7089 $elm$parser$Parser$symbol('-'))
7090 ]))),
7091 $rtfeldman$elm_iso8601_date_strings$Iso8601$paddedInt(2)),
7092 $elm$parser$Parser$oneOf(
7093 _List_fromArray(
7095 A2(
7096 $elm$parser$Parser$keeper,
7097 A2(
7098 $elm$parser$Parser$ignorer,
7099 $elm$parser$Parser$succeed($elm$core$Basics$identity),
7100 $elm$parser$Parser$symbol(':')),
7101 $rtfeldman$elm_iso8601_date_strings$Iso8601$paddedInt(2)),
7102 $rtfeldman$elm_iso8601_date_strings$Iso8601$paddedInt(2),
7103 $elm$parser$Parser$succeed(0)
7104 ]))),
7105 A2(
7106 $elm$parser$Parser$ignorer,
7107 $elm$parser$Parser$succeed(0),
7108 $elm$parser$Parser$end)
7109 ])));
7110}();
7111var $rtfeldman$elm_iso8601_date_strings$Iso8601$iso8601 = A2(
7112 $elm$parser$Parser$andThen,
7113 function (datePart) {
7114 return $elm$parser$Parser$oneOf(
7115 _List_fromArray(
7117 A2(
7118 $elm$parser$Parser$keeper,
7119 A2(
7120 $elm$parser$Parser$keeper,
7121 A2(
7122 $elm$parser$Parser$keeper,
7123 A2(
7124 $elm$parser$Parser$keeper,
7125 A2(
7126 $elm$parser$Parser$keeper,
7127 A2(
7128 $elm$parser$Parser$ignorer,
7129 $elm$parser$Parser$succeed(
7130 $rtfeldman$elm_iso8601_date_strings$Iso8601$fromParts(datePart)),
7131 $elm$parser$Parser$symbol('T')),
7132 $rtfeldman$elm_iso8601_date_strings$Iso8601$paddedInt(2)),
7133 $elm$parser$Parser$oneOf(
7134 _List_fromArray(
7136 A2(
7137 $elm$parser$Parser$keeper,
7138 A2(
7139 $elm$parser$Parser$ignorer,
7140 $elm$parser$Parser$succeed($elm$core$Basics$identity),
7141 $elm$parser$Parser$symbol(':')),
7142 $rtfeldman$elm_iso8601_date_strings$Iso8601$paddedInt(2)),
7143 $rtfeldman$elm_iso8601_date_strings$Iso8601$paddedInt(2)
7144 ]))),
7145 $elm$parser$Parser$oneOf(
7146 _List_fromArray(
7148 A2(
7149 $elm$parser$Parser$keeper,
7150 A2(
7151 $elm$parser$Parser$ignorer,
7152 $elm$parser$Parser$succeed($elm$core$Basics$identity),
7153 $elm$parser$Parser$symbol(':')),
7154 $rtfeldman$elm_iso8601_date_strings$Iso8601$paddedInt(2)),
7155 $rtfeldman$elm_iso8601_date_strings$Iso8601$paddedInt(2),
7156 $elm$parser$Parser$succeed(0)
7157 ]))),
7158 $elm$parser$Parser$oneOf(
7159 _List_fromArray(
7161 A2(
7162 $elm$parser$Parser$keeper,
7163 A2(
7164 $elm$parser$Parser$ignorer,
7165 $elm$parser$Parser$succeed($elm$core$Basics$identity),
7166 $elm$parser$Parser$symbol('.')),
7167 $rtfeldman$elm_iso8601_date_strings$Iso8601$fractionsOfASecondInMs),
7168 $elm$parser$Parser$succeed(0)
7169 ]))),
7170 A2($elm$parser$Parser$ignorer, $rtfeldman$elm_iso8601_date_strings$Iso8601$utcOffsetInMinutes, $elm$parser$Parser$end)),
7171 A2(
7172 $elm$parser$Parser$ignorer,
7173 $elm$parser$Parser$succeed(
7174 A6($rtfeldman$elm_iso8601_date_strings$Iso8601$fromParts, datePart, 0, 0, 0, 0, 0)),
7175 $elm$parser$Parser$end)
7176 ]));
7177 },
7178 $rtfeldman$elm_iso8601_date_strings$Iso8601$monthYearDayInMs);
7179var $elm$parser$Parser$DeadEnd = F3(
7180 function (row, col, problem) {
7181 return {col: col, problem: problem, row: row};
7182 });
7183var $elm$parser$Parser$problemToDeadEnd = function (p) {
7184 return A3($elm$parser$Parser$DeadEnd, p.row, p.col, p.problem);
7186var $elm$parser$Parser$Advanced$bagToList = F2(
7187 function (bag, list) {
7188 bagToList:
7189 while (true) {
7190 switch (bag.$) {
7191 case 'Empty':
7192 return list;
7193 case 'AddRight':
7194 var bag1 = bag.a;
7195 var x = bag.b;
7196 var $temp$bag = bag1,
7197 $temp$list = A2($elm$core$List$cons, x, list);
7198 bag = $temp$bag;
7199 list = $temp$list;
7200 continue bagToList;
7201 default:
7202 var bag1 = bag.a;
7203 var bag2 = bag.b;
7204 var $temp$bag = bag1,
7205 $temp$list = A2($elm$parser$Parser$Advanced$bagToList, bag2, list);
7206 bag = $temp$bag;
7207 list = $temp$list;
7208 continue bagToList;
7211 });
7212var $elm$parser$Parser$Advanced$run = F2(
7213 function (_v0, src) {
7214 var parse = _v0.a;
7215 var _v1 = parse(
7216 {col: 1, context: _List_Nil, indent: 1, offset: 0, row: 1, src: src});
7217 if (_v1.$ === 'Good') {
7218 var value = _v1.b;
7219 return $elm$core$Result$Ok(value);
7220 } else {
7221 var bag = _v1.b;
7222 return $elm$core$Result$Err(
7223 A2($elm$parser$Parser$Advanced$bagToList, bag, _List_Nil));
7225 });
7226var $elm$parser$Parser$run = F2(
7227 function (parser, source) {
7228 var _v0 = A2($elm$parser$Parser$Advanced$run, parser, source);
7229 if (_v0.$ === 'Ok') {
7230 var a = _v0.a;
7231 return $elm$core$Result$Ok(a);
7232 } else {
7233 var problems = _v0.a;
7234 return $elm$core$Result$Err(
7235 A2($elm$core$List$map, $elm$parser$Parser$problemToDeadEnd, problems));
7237 });
7238var $rtfeldman$elm_iso8601_date_strings$Iso8601$toTime = function (str) {
7239 return A2($elm$parser$Parser$run, $rtfeldman$elm_iso8601_date_strings$Iso8601$iso8601, str);
7241var $elm_community$json_extra$Json$Decode$Extra$datetime = A2(
7242 $elm$json$Json$Decode$andThen,
7243 function (dateString) {
7244 var _v0 = $rtfeldman$elm_iso8601_date_strings$Iso8601$toTime(dateString);
7245 if (_v0.$ === 'Ok') {
7246 var v = _v0.a;
7247 return $elm$json$Json$Decode$succeed(v);
7248 } else {
7249 return $elm$json$Json$Decode$fail('Expecting an ISO-8601 formatted date+time string');
7251 },
7252 $elm$json$Json$Decode$string);
7253var $author$project$Types$Deployment$DeploymentName = function (a) {
7254 return {$: 'DeploymentName', a: a};
7256var $author$project$Types$Deployment$Info = F3(
7257 function (name, appOverrides, deploymentOverrides) {
7258 return {appOverrides: appOverrides, deploymentOverrides: deploymentOverrides, name: name};
7259 });
7260var $elm$json$Json$Decode$list = _Json_decodeList;
7261var $author$project$Types$Override$Override = F2(
7262 function (name, value) {
7263 return {name: name, value: value};
7264 });
7265var $author$project$Types$Override$OverrideName = function (a) {
7266 return {$: 'OverrideName', a: a};
7268var $author$project$Types$Override$OverrideName_ = function (a) {
7269 return {$: 'OverrideName_', a: a};
7271var $author$project$Types$Override$OverrideValue_ = function (a) {
7272 return {$: 'OverrideValue_', a: a};
7274var $author$project$Types$Override$ValueAdded = function (a) {
7275 return {$: 'ValueAdded', a: a};
7277var $author$project$Types$Override$ValueDeleted = {$: 'ValueDeleted'};
7278var $elm$json$Json$Decode$maybe = function (decoder) {
7279 return $elm$json$Json$Decode$oneOf(
7280 _List_fromArray(
7282 A2($elm$json$Json$Decode$map, $elm$core$Maybe$Just, decoder),
7283 $elm$json$Json$Decode$succeed($elm$core$Maybe$Nothing)
7284 ]));
7286var $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$custom = $elm$json$Json$Decode$map2($elm$core$Basics$apR);
7287var $elm$json$Json$Decode$at = F2(
7288 function (fields, decoder) {
7289 return A3($elm$core$List$foldr, $elm$json$Json$Decode$field, decoder, fields);
7290 });
7291var $elm$json$Json$Decode$decodeValue = _Json_run;
7292var $elm$json$Json$Decode$null = _Json_decodeNull;
7293var $elm$json$Json$Decode$value = _Json_decodeValue;
7294var $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$optionalDecoder = F3(
7295 function (path, valDecoder, fallback) {
7296 var nullOr = function (decoder) {
7297 return $elm$json$Json$Decode$oneOf(
7298 _List_fromArray(
7300 decoder,
7301 $elm$json$Json$Decode$null(fallback)
7302 ]));
7303 };
7304 var handleResult = function (input) {
7305 var _v0 = A2(
7306 $elm$json$Json$Decode$decodeValue,
7307 A2($elm$json$Json$Decode$at, path, $elm$json$Json$Decode$value),
7308 input);
7309 if (_v0.$ === 'Ok') {
7310 var rawValue = _v0.a;
7311 var _v1 = A2(
7312 $elm$json$Json$Decode$decodeValue,
7313 nullOr(valDecoder),
7314 rawValue);
7315 if (_v1.$ === 'Ok') {
7316 var finalResult = _v1.a;
7317 return $elm$json$Json$Decode$succeed(finalResult);
7318 } else {
7319 return A2(
7320 $elm$json$Json$Decode$at,
7321 path,
7322 nullOr(valDecoder));
7324 } else {
7325 return $elm$json$Json$Decode$succeed(fallback);
7327 };
7328 return A2($elm$json$Json$Decode$andThen, handleResult, $elm$json$Json$Decode$value);
7329 });
7330var $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$optional = F4(
7331 function (key, valDecoder, fallback, decoder) {
7332 return A2(
7333 $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$custom,
7334 A3(
7335 $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$optionalDecoder,
7336 _List_fromArray(
7337 [key]),
7338 valDecoder,
7339 fallback),
7340 decoder);
7341 });
7342var $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$required = F3(
7343 function (key, valDecoder, decoder) {
7344 return A2(
7345 $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$custom,
7346 A2($elm$json$Json$Decode$field, key, valDecoder),
7347 decoder);
7348 });
7349var $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$resolve = $elm$json$Json$Decode$andThen($elm$core$Basics$identity);
7350var $author$project$Types$Override$overrideValueDecoder = function () {
7351 var toDecoder = F2(
7352 function (tag, contents) {
7353 var _v0 = _Utils_Tuple2(tag, contents);
7354 _v0$2:
7355 while (true) {
7356 switch (_v0.a) {
7357 case 'ValueDeleted':
7358 return $elm$json$Json$Decode$succeed($author$project$Types$Override$ValueDeleted);
7359 case 'ValueAdded':
7360 if (_v0.b.$ === 'Just') {
7361 var value = _v0.b.a;
7362 return $elm$json$Json$Decode$succeed(
7363 $author$project$Types$Override$ValueAdded(value));
7364 } else {
7365 break _v0$2;
7367 default:
7368 break _v0$2;
7371 return $elm$json$Json$Decode$fail('Unknown DeploymentStatus: ' + tag);
7372 });
7373 return $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$resolve(
7374 A4(
7375 $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$optional,
7376 'contents',
7377 $elm$json$Json$Decode$maybe($elm$json$Json$Decode$string),
7378 $elm$core$Maybe$Nothing,
7379 A3(
7380 $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$required,
7381 'tag',
7382 $elm$json$Json$Decode$string,
7383 $elm$json$Json$Decode$succeed(toDecoder))));
7384}();
7385var $author$project$Types$Override$overrideDecoder = function () {
7386 var overrideHelperDecoder = $elm$json$Json$Decode$list(
7387 $elm$json$Json$Decode$oneOf(
7388 _List_fromArray(
7390 A2($elm$json$Json$Decode$map, $author$project$Types$Override$OverrideName_, $elm$json$Json$Decode$string),
7391 A2($elm$json$Json$Decode$map, $author$project$Types$Override$OverrideValue_, $author$project$Types$Override$overrideValueDecoder)
7392 ])));
7393 var listDecoder = function (vals) {
7394 _v0$2:
7395 while (true) {
7396 if (vals.b) {
7397 if (vals.a.$ === 'OverrideName_') {
7398 if ((vals.b.b && (vals.b.a.$ === 'OverrideValue_')) && (!vals.b.b.b)) {
7399 var name = vals.a.a;
7400 var _v1 = vals.b;
7401 var val = _v1.a.a;
7402 return $elm$json$Json$Decode$succeed(
7403 A2(
7404 $author$project$Types$Override$Override,
7405 $author$project$Types$Override$OverrideName(name),
7406 val));
7407 } else {
7408 break _v0$2;
7410 } else {
7411 if ((vals.b.b && (vals.b.a.$ === 'OverrideName_')) && (!vals.b.b.b)) {
7412 var val = vals.a.a;
7413 var _v2 = vals.b;
7414 var name = _v2.a.a;
7415 return $elm$json$Json$Decode$succeed(
7416 A2(
7417 $author$project$Types$Override$Override,
7418 $author$project$Types$Override$OverrideName(name),
7419 val));
7420 } else {
7421 break _v0$2;
7424 } else {
7425 break _v0$2;
7428 return $elm$json$Json$Decode$fail('Unknown override');
7429 };
7430 return A2($elm$json$Json$Decode$andThen, listDecoder, overrideHelperDecoder);
7431}();
7432var $author$project$Types$Deployment$infoDecoder = A3(
7433 $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$required,
7434 'deployment_overrides',
7435 $elm$json$Json$Decode$list($author$project$Types$Override$overrideDecoder),
7436 A3(
7437 $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$required,
7438 'app_overrides',
7439 $elm$json$Json$Decode$list($author$project$Types$Override$overrideDecoder),
7440 A3(
7441 $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$required,
7442 'name',
7443 A2($elm$json$Json$Decode$map, $author$project$Types$Deployment$DeploymentName, $elm$json$Json$Decode$string),
7444 $elm$json$Json$Decode$succeed($author$project$Types$Deployment$Info))));
7445var $author$project$Types$Deployment$Metadata = F2(
7446 function (name, link) {
7447 return {link: link, name: name};
7448 });
7449var $author$project$Types$Deployment$metadataDecoder = A3(
7450 $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$required,
7451 'link',
7452 $elm$json$Json$Decode$string,
7453 A3(
7454 $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$required,
7455 'name',
7456 $elm$json$Json$Decode$string,
7457 $elm$json$Json$Decode$succeed($author$project$Types$Deployment$Metadata)));
7458var $author$project$Types$Deployment$DeploymentNotPending = function (a) {
7459 return {$: 'DeploymentNotPending', a: a};
7461var $author$project$Types$Deployment$DeploymentPending = function (a) {
7462 return {$: 'DeploymentPending', a: a};
7464var $author$project$Types$Deployment$ArchivePending = {$: 'ArchivePending'};
7465var $author$project$Types$Deployment$Archived = {$: 'Archived'};
7466var $author$project$Types$Deployment$CleanupFailed = {$: 'CleanupFailed'};
7467var $author$project$Types$Deployment$CreatePending = {$: 'CreatePending'};
7468var $author$project$Types$Deployment$Failure = function (a) {
7469 return {$: 'Failure', a: a};
7471var $author$project$Types$Deployment$Running = {$: 'Running'};
7472var $author$project$Types$Deployment$UpdatePending = {$: 'UpdatePending'};
7473var $author$project$Types$Deployment$GenericFailure = {$: 'GenericFailure'};
7474var $author$project$Types$Deployment$PartialAvailability = {$: 'PartialAvailability'};
7475var $author$project$Types$Deployment$TagMismatch = {$: 'TagMismatch'};
7476var $author$project$Types$Deployment$failureTypeDecoder = function () {
7477 var tagDecoder = function (tag) {
7478 switch (tag) {
7479 case 'GenericFailure':
7480 return $elm$json$Json$Decode$succeed($author$project$Types$Deployment$GenericFailure);
7481 case 'PartialAvailability':
7482 return $elm$json$Json$Decode$succeed($author$project$Types$Deployment$PartialAvailability);
7483 case 'TagMismatch':
7484 return $elm$json$Json$Decode$succeed($author$project$Types$Deployment$TagMismatch);
7485 default:
7486 return $elm$json$Json$Decode$fail('Unknown FailureType: ' + tag);
7488 };
7489 return A2($elm$json$Json$Decode$andThen, tagDecoder, $elm$json$Json$Decode$string);
7490}();
7491var $author$project$Types$Deployment$deploymentStatusDecoder = function () {
7492 var toDecoder = F2(
7493 function (tag, contents) {
7494 var _v0 = _Utils_Tuple2(tag, contents);
7495 _v0$7:
7496 while (true) {
7497 switch (_v0.a) {
7498 case 'Running':
7499 return $elm$json$Json$Decode$succeed($author$project$Types$Deployment$Running);
7500 case 'CreatePending':
7501 return $elm$json$Json$Decode$succeed($author$project$Types$Deployment$CreatePending);
7502 case 'UpdatePending':
7503 return $elm$json$Json$Decode$succeed($author$project$Types$Deployment$UpdatePending);
7504 case 'ArchivePending':
7505 return $elm$json$Json$Decode$succeed($author$project$Types$Deployment$ArchivePending);
7506 case 'Archived':
7507 return $elm$json$Json$Decode$succeed($author$project$Types$Deployment$Archived);
7508 case 'CleanupFailed':
7509 return $elm$json$Json$Decode$succeed($author$project$Types$Deployment$CleanupFailed);
7510 case 'Failure':
7511 if (_v0.b.$ === 'Just') {
7512 var failureType = _v0.b.a;
7513 return $elm$json$Json$Decode$succeed(
7514 $author$project$Types$Deployment$Failure(failureType));
7515 } else {
7516 break _v0$7;
7518 default:
7519 break _v0$7;
7522 return $elm$json$Json$Decode$fail('Unknown DeploymentStatus: ' + tag);
7523 });
7524 return $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$resolve(
7525 A4(
7526 $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$optional,
7527 'contents',
7528 $elm$json$Json$Decode$maybe($author$project$Types$Deployment$failureTypeDecoder),
7529 $elm$core$Maybe$Nothing,
7530 A3(
7531 $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$required,
7532 'tag',
7533 $elm$json$Json$Decode$string,
7534 $elm$json$Json$Decode$succeed(toDecoder))));
7535}();
7536var $author$project$Types$Deployment$statusDecoder = function () {
7537 var toDecoder = F2(
7538 function (tag, contents) {
7539 switch (tag) {
7540 case 'DeploymentNotPending':
7541 return $elm$json$Json$Decode$succeed(
7542 $author$project$Types$Deployment$DeploymentNotPending(contents));
7543 case 'DeploymentPending':
7544 return $elm$json$Json$Decode$succeed(
7545 $author$project$Types$Deployment$DeploymentPending(contents));
7546 default:
7547 return $elm$json$Json$Decode$fail('Unknown Status: ' + tag);
7549 });
7550 return $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$resolve(
7551 A3(
7552 $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$required,
7553 'recorded_status',
7554 $author$project$Types$Deployment$deploymentStatusDecoder,
7555 A3(
7556 $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$required,
7557 'tag',
7558 $elm$json$Json$Decode$string,
7559 $elm$json$Json$Decode$succeed(toDecoder))));
7560}();
7561var $author$project$Types$Deployment$deploymentDecoder = A3(
7562 $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$required,
7563 'updated_at',
7564 $elm_community$json_extra$Json$Decode$Extra$datetime,
7565 A3(
7566 $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$required,
7567 'created_at',
7568 $elm_community$json_extra$Json$Decode$Extra$datetime,
7569 A3(
7570 $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$required,
7571 'metadata',
7572 $elm$json$Json$Decode$list($author$project$Types$Deployment$metadataDecoder),
7573 A3(
7574 $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$required,
7575 'status',
7576 $author$project$Types$Deployment$statusDecoder,
7577 A3(
7578 $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$required,
7579 'deployment',
7580 $author$project$Types$Deployment$infoDecoder,
7581 $elm$json$Json$Decode$succeed($author$project$Types$Deployment$Deployment))))));
7582var $author$project$Types$Deployment$unDeploymentName = function (_v0) {
7583 var name = _v0.a;
7584 return name;
7586var $author$project$Api$Endpoint$Endpoint = function (a) {
7587 return {$: 'Endpoint', a: a};
7589var $elm$url$Url$Builder$toQueryPair = function (_v0) {
7590 var key = _v0.a;
7591 var value = _v0.b;
7592 return key + ('=' + value);
7594var $elm$url$Url$Builder$toQuery = function (parameters) {
7595 if (!parameters.b) {
7596 return '';
7597 } else {
7598 return '?' + A2(
7599 $elm$core$String$join,
7600 '&',
7601 A2($elm$core$List$map, $elm$url$Url$Builder$toQueryPair, parameters));
7604var $elm$url$Url$Builder$crossOrigin = F3(
7605 function (prePath, pathSegments, parameters) {
7606 return prePath + ('/' + (A2($elm$core$String$join, '/', pathSegments) + $elm$url$Url$Builder$toQuery(parameters)));
7607 });
7608var $author$project$Config$unwrapAppUrl = function (_v0) {
7609 var appUrl = _v0.a;
7610 return appUrl;
7612var $author$project$Api$Endpoint$url = F3(
7613 function (mAppUrl, paths, queryParams) {
7614 if (mAppUrl.$ === 'Just') {
7615 var appUrl = mAppUrl.a;
7616 return $author$project$Api$Endpoint$Endpoint(
7617 A3(
7618 $elm$url$Url$Builder$crossOrigin,
7619 $author$project$Config$unwrapAppUrl(appUrl),
7620 paths,
7621 queryParams));
7622 } else {
7623 return $author$project$Api$Endpoint$Endpoint(
7624 A3($elm$url$Url$Builder$crossOrigin, 'localhost:3000', paths, queryParams));
7626 });
7627var $author$project$Api$Endpoint$deploymentFullInfo = F2(
7628 function (deploymentName, appUrl) {
7629 return A3(
7630 $author$project$Api$Endpoint$url,
7631 $elm$core$Maybe$Just(appUrl),
7632 _List_fromArray(
7634 'api',
7635 'v1',
7636 'deployments',
7637 $author$project$Types$Deployment$unDeploymentName(deploymentName),
7638 'full_info'
7639 ]),
7640 _List_Nil);
7641 });
7642var $krisajenkins$remotedata$RemoteData$Failure = function (a) {
7643 return {$: 'Failure', a: a};
7645var $krisajenkins$remotedata$RemoteData$Success = function (a) {
7646 return {$: 'Success', a: a};
7648var $krisajenkins$remotedata$RemoteData$fromResult = function (result) {
7649 if (result.$ === 'Err') {
7650 var e = result.a;
7651 return $krisajenkins$remotedata$RemoteData$Failure(e);
7652 } else {
7653 var x = result.a;
7654 return $krisajenkins$remotedata$RemoteData$Success(x);
7657var $elm$http$Http$Header = F2(
7658 function (a, b) {
7659 return {$: 'Header', a: a, b: b};
7660 });
7661var $elm$http$Http$header = $elm$http$Http$Header;
7662var $author$project$Api$authHeader = function (_v0) {
7663 var appAuth = _v0.a;
7664 return A2($elm$http$Http$header, 'authorization', appAuth);
7666var $elm$http$Http$BadStatus_ = F2(
7667 function (a, b) {
7668 return {$: 'BadStatus_', a: a, b: b};
7669 });
7670var $elm$http$Http$BadUrl_ = function (a) {
7671 return {$: 'BadUrl_', a: a};
7673var $elm$http$Http$GoodStatus_ = F2(
7674 function (a, b) {
7675 return {$: 'GoodStatus_', a: a, b: b};
7676 });
7677var $elm$http$Http$NetworkError_ = {$: 'NetworkError_'};
7678var $elm$http$Http$Receiving = function (a) {
7679 return {$: 'Receiving', a: a};
7681var $elm$http$Http$Sending = function (a) {
7682 return {$: 'Sending', a: a};
7684var $elm$http$Http$Timeout_ = {$: 'Timeout_'};
7685var $elm$core$Maybe$isJust = function (maybe) {
7686 if (maybe.$ === 'Just') {
7687 return true;
7688 } else {
7689 return false;
7692var $elm$core$Dict$getMin = function (dict) {
7693 getMin:
7694 while (true) {
7695 if ((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) {
7696 var left = dict.d;
7697 var $temp$dict = left;
7698 dict = $temp$dict;
7699 continue getMin;
7700 } else {
7701 return dict;
7705var $elm$core$Dict$moveRedLeft = function (dict) {
7706 if (((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) && (dict.e.$ === 'RBNode_elm_builtin')) {
7707 if ((dict.e.d.$ === 'RBNode_elm_builtin') && (dict.e.d.a.$ === 'Red')) {
7708 var clr = dict.a;
7709 var k = dict.b;
7710 var v = dict.c;
7711 var _v1 = dict.d;
7712 var lClr = _v1.a;
7713 var lK = _v1.b;
7714 var lV = _v1.c;
7715 var lLeft = _v1.d;
7716 var lRight = _v1.e;
7717 var _v2 = dict.e;
7718 var rClr = _v2.a;
7719 var rK = _v2.b;
7720 var rV = _v2.c;
7721 var rLeft = _v2.d;
7722 var _v3 = rLeft.a;
7723 var rlK = rLeft.b;
7724 var rlV = rLeft.c;
7725 var rlL = rLeft.d;
7726 var rlR = rLeft.e;
7727 var rRight = _v2.e;
7728 return A5(
7729 $elm$core$Dict$RBNode_elm_builtin,
7730 $elm$core$Dict$Red,
7731 rlK,
7732 rlV,
7733 A5(
7734 $elm$core$Dict$RBNode_elm_builtin,
7735 $elm$core$Dict$Black,
7736 k,
7737 v,
7738 A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight),
7739 rlL),
7740 A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, rK, rV, rlR, rRight));
7741 } else {
7742 var clr = dict.a;
7743 var k = dict.b;
7744 var v = dict.c;
7745 var _v4 = dict.d;
7746 var lClr = _v4.a;
7747 var lK = _v4.b;
7748 var lV = _v4.c;
7749 var lLeft = _v4.d;
7750 var lRight = _v4.e;
7751 var _v5 = dict.e;
7752 var rClr = _v5.a;
7753 var rK = _v5.b;
7754 var rV = _v5.c;
7755 var rLeft = _v5.d;
7756 var rRight = _v5.e;
7757 if (clr.$ === 'Black') {
7758 return A5(
7759 $elm$core$Dict$RBNode_elm_builtin,
7760 $elm$core$Dict$Black,
7761 k,
7762 v,
7763 A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight),
7764 A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight));
7765 } else {
7766 return A5(
7767 $elm$core$Dict$RBNode_elm_builtin,
7768 $elm$core$Dict$Black,
7769 k,
7770 v,
7771 A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight),
7772 A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight));
7775 } else {
7776 return dict;
7779var $elm$core$Dict$moveRedRight = function (dict) {
7780 if (((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) && (dict.e.$ === 'RBNode_elm_builtin')) {
7781 if ((dict.d.d.$ === 'RBNode_elm_builtin') && (dict.d.d.a.$ === 'Red')) {
7782 var clr = dict.a;
7783 var k = dict.b;
7784 var v = dict.c;
7785 var _v1 = dict.d;
7786 var lClr = _v1.a;
7787 var lK = _v1.b;
7788 var lV = _v1.c;
7789 var _v2 = _v1.d;
7790 var _v3 = _v2.a;
7791 var llK = _v2.b;
7792 var llV = _v2.c;
7793 var llLeft = _v2.d;
7794 var llRight = _v2.e;
7795 var lRight = _v1.e;
7796 var _v4 = dict.e;
7797 var rClr = _v4.a;
7798 var rK = _v4.b;
7799 var rV = _v4.c;
7800 var rLeft = _v4.d;
7801 var rRight = _v4.e;
7802 return A5(
7803 $elm$core$Dict$RBNode_elm_builtin,
7804 $elm$core$Dict$Red,
7805 lK,
7806 lV,
7807 A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, llK, llV, llLeft, llRight),
7808 A5(
7809 $elm$core$Dict$RBNode_elm_builtin,
7810 $elm$core$Dict$Black,
7811 k,
7812 v,
7813 lRight,
7814 A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight)));
7815 } else {
7816 var clr = dict.a;
7817 var k = dict.b;
7818 var v = dict.c;
7819 var _v5 = dict.d;
7820 var lClr = _v5.a;
7821 var lK = _v5.b;
7822 var lV = _v5.c;
7823 var lLeft = _v5.d;
7824 var lRight = _v5.e;
7825 var _v6 = dict.e;
7826 var rClr = _v6.a;
7827 var rK = _v6.b;
7828 var rV = _v6.c;
7829 var rLeft = _v6.d;
7830 var rRight = _v6.e;
7831 if (clr.$ === 'Black') {
7832 return A5(
7833 $elm$core$Dict$RBNode_elm_builtin,
7834 $elm$core$Dict$Black,
7835 k,
7836 v,
7837 A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight),
7838 A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight));
7839 } else {
7840 return A5(
7841 $elm$core$Dict$RBNode_elm_builtin,
7842 $elm$core$Dict$Black,
7843 k,
7844 v,
7845 A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight),
7846 A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight));
7849 } else {
7850 return dict;
7853var $elm$core$Dict$removeHelpPrepEQGT = F7(
7854 function (targetKey, dict, color, key, value, left, right) {
7855 if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) {
7856 var _v1 = left.a;
7857 var lK = left.b;
7858 var lV = left.c;
7859 var lLeft = left.d;
7860 var lRight = left.e;
7861 return A5(
7862 $elm$core$Dict$RBNode_elm_builtin,
7863 color,
7864 lK,
7865 lV,
7866 lLeft,
7867 A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, key, value, lRight, right));
7868 } else {
7869 _v2$2:
7870 while (true) {
7871 if ((right.$ === 'RBNode_elm_builtin') && (right.a.$ === 'Black')) {
7872 if (right.d.$ === 'RBNode_elm_builtin') {
7873 if (right.d.a.$ === 'Black') {
7874 var _v3 = right.a;
7875 var _v4 = right.d;
7876 var _v5 = _v4.a;
7877 return $elm$core$Dict$moveRedRight(dict);
7878 } else {
7879 break _v2$2;
7881 } else {
7882 var _v6 = right.a;
7883 var _v7 = right.d;
7884 return $elm$core$Dict$moveRedRight(dict);
7886 } else {
7887 break _v2$2;
7890 return dict;
7892 });
7893var $elm$core$Dict$removeMin = function (dict) {
7894 if ((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) {
7895 var color = dict.a;
7896 var key = dict.b;
7897 var value = dict.c;
7898 var left = dict.d;
7899 var lColor = left.a;
7900 var lLeft = left.d;
7901 var right = dict.e;
7902 if (lColor.$ === 'Black') {
7903 if ((lLeft.$ === 'RBNode_elm_builtin') && (lLeft.a.$ === 'Red')) {
7904 var _v3 = lLeft.a;
7905 return A5(
7906 $elm$core$Dict$RBNode_elm_builtin,
7907 color,
7908 key,
7909 value,
7910 $elm$core$Dict$removeMin(left),
7911 right);
7912 } else {
7913 var _v4 = $elm$core$Dict$moveRedLeft(dict);
7914 if (_v4.$ === 'RBNode_elm_builtin') {
7915 var nColor = _v4.a;
7916 var nKey = _v4.b;
7917 var nValue = _v4.c;
7918 var nLeft = _v4.d;
7919 var nRight = _v4.e;
7920 return A5(
7921 $elm$core$Dict$balance,
7922 nColor,
7923 nKey,
7924 nValue,
7925 $elm$core$Dict$removeMin(nLeft),
7926 nRight);
7927 } else {
7928 return $elm$core$Dict$RBEmpty_elm_builtin;
7931 } else {
7932 return A5(
7933 $elm$core$Dict$RBNode_elm_builtin,
7934 color,
7935 key,
7936 value,
7937 $elm$core$Dict$removeMin(left),
7938 right);
7940 } else {
7941 return $elm$core$Dict$RBEmpty_elm_builtin;
7944var $elm$core$Dict$removeHelp = F2(
7945 function (targetKey, dict) {
7946 if (dict.$ === 'RBEmpty_elm_builtin') {
7947 return $elm$core$Dict$RBEmpty_elm_builtin;
7948 } else {
7949 var color = dict.a;
7950 var key = dict.b;
7951 var value = dict.c;
7952 var left = dict.d;
7953 var right = dict.e;
7954 if (_Utils_cmp(targetKey, key) < 0) {
7955 if ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Black')) {
7956 var _v4 = left.a;
7957 var lLeft = left.d;
7958 if ((lLeft.$ === 'RBNode_elm_builtin') && (lLeft.a.$ === 'Red')) {
7959 var _v6 = lLeft.a;
7960 return A5(
7961 $elm$core$Dict$RBNode_elm_builtin,
7962 color,
7963 key,
7964 value,
7965 A2($elm$core$Dict$removeHelp, targetKey, left),
7966 right);
7967 } else {
7968 var _v7 = $elm$core$Dict$moveRedLeft(dict);
7969 if (_v7.$ === 'RBNode_elm_builtin') {
7970 var nColor = _v7.a;
7971 var nKey = _v7.b;
7972 var nValue = _v7.c;
7973 var nLeft = _v7.d;
7974 var nRight = _v7.e;
7975 return A5(
7976 $elm$core$Dict$balance,
7977 nColor,
7978 nKey,
7979 nValue,
7980 A2($elm$core$Dict$removeHelp, targetKey, nLeft),
7981 nRight);
7982 } else {
7983 return $elm$core$Dict$RBEmpty_elm_builtin;
7986 } else {
7987 return A5(
7988 $elm$core$Dict$RBNode_elm_builtin,
7989 color,
7990 key,
7991 value,
7992 A2($elm$core$Dict$removeHelp, targetKey, left),
7993 right);
7995 } else {
7996 return A2(
7997 $elm$core$Dict$removeHelpEQGT,
7998 targetKey,
7999 A7($elm$core$Dict$removeHelpPrepEQGT, targetKey, dict, color, key, value, left, right));
8002 });
8003var $elm$core$Dict$removeHelpEQGT = F2(
8004 function (targetKey, dict) {
8005 if (dict.$ === 'RBNode_elm_builtin') {
8006 var color = dict.a;
8007 var key = dict.b;
8008 var value = dict.c;
8009 var left = dict.d;
8010 var right = dict.e;
8011 if (_Utils_eq(targetKey, key)) {
8012 var _v1 = $elm$core$Dict$getMin(right);
8013 if (_v1.$ === 'RBNode_elm_builtin') {
8014 var minKey = _v1.b;
8015 var minValue = _v1.c;
8016 return A5(
8017 $elm$core$Dict$balance,
8018 color,
8019 minKey,
8020 minValue,
8021 left,
8022 $elm$core$Dict$removeMin(right));
8023 } else {
8024 return $elm$core$Dict$RBEmpty_elm_builtin;
8026 } else {
8027 return A5(
8028 $elm$core$Dict$balance,
8029 color,
8030 key,
8031 value,
8032 left,
8033 A2($elm$core$Dict$removeHelp, targetKey, right));
8035 } else {
8036 return $elm$core$Dict$RBEmpty_elm_builtin;
8038 });
8039var $elm$core$Dict$remove = F2(
8040 function (key, dict) {
8041 var _v0 = A2($elm$core$Dict$removeHelp, key, dict);
8042 if ((_v0.$ === 'RBNode_elm_builtin') && (_v0.a.$ === 'Red')) {
8043 var _v1 = _v0.a;
8044 var k = _v0.b;
8045 var v = _v0.c;
8046 var l = _v0.d;
8047 var r = _v0.e;
8048 return A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, k, v, l, r);
8049 } else {
8050 var x = _v0;
8051 return x;
8053 });
8054var $elm$core$Dict$update = F3(
8055 function (targetKey, alter, dictionary) {
8056 var _v0 = alter(
8057 A2($elm$core$Dict$get, targetKey, dictionary));
8058 if (_v0.$ === 'Just') {
8059 var value = _v0.a;
8060 return A3($elm$core$Dict$insert, targetKey, value, dictionary);
8061 } else {
8062 return A2($elm$core$Dict$remove, targetKey, dictionary);
8064 });
8065var $elm$http$Http$emptyBody = _Http_emptyBody;
8066var $author$project$Api$BadBody = function (a) {
8067 return {$: 'BadBody', a: a};
8069var $author$project$Api$BadStatus = F2(
8070 function (a, b) {
8071 return {$: 'BadStatus', a: a, b: b};
8072 });
8073var $author$project$Api$BadUrl = function (a) {
8074 return {$: 'BadUrl', a: a};
8076var $author$project$Api$NetworkError = {$: 'NetworkError'};
8077var $author$project$Api$Timeout = {$: 'Timeout'};
8078var $elm$json$Json$Decode$decodeString = _Json_runOnString;
8079var $elm$http$Http$expectStringResponse = F2(
8080 function (toMsg, toResult) {
8081 return A3(
8082 _Http_expect,
8083 '',
8084 $elm$core$Basics$identity,
8085 A2($elm$core$Basics$composeR, toResult, toMsg));
8086 });
8087var $author$project$Api$expectJson = F2(
8088 function (toMsg, decoder) {
8089 return A2(
8090 $elm$http$Http$expectStringResponse,
8091 toMsg,
8092 function (response) {
8093 switch (response.$) {
8094 case 'BadUrl_':
8095 var url = response.a;
8096 return $elm$core$Result$Err(
8097 $author$project$Api$BadUrl(url));
8098 case 'Timeout_':
8099 return $elm$core$Result$Err($author$project$Api$Timeout);
8100 case 'NetworkError_':
8101 return $elm$core$Result$Err($author$project$Api$NetworkError);
8102 case 'BadStatus_':
8103 var metadata = response.a;
8104 var body = response.b;
8105 return $elm$core$Result$Err(
8106 A2($author$project$Api$BadStatus, metadata.statusCode, body));
8107 default:
8108 var body = response.b;
8109 var _v1 = A2($elm$json$Json$Decode$decodeString, decoder, body);
8110 if (_v1.$ === 'Ok') {
8111 var value = _v1.a;
8112 return $elm$core$Result$Ok(value);
8113 } else {
8114 var err = _v1.a;
8115 return $elm$core$Result$Err(
8116 $author$project$Api$BadBody(
8117 $elm$json$Json$Decode$errorToString(err)));
8120 });
8121 });
8122var $elm$http$Http$Request = function (a) {
8123 return {$: 'Request', a: a};
8125var $elm$http$Http$State = F2(
8126 function (reqs, subs) {
8127 return {reqs: reqs, subs: subs};
8128 });
8129var $elm$http$Http$init = $elm$core$Task$succeed(
8130 A2($elm$http$Http$State, $elm$core$Dict$empty, _List_Nil));
8131var $elm$http$Http$updateReqs = F3(
8132 function (router, cmds, reqs) {
8133 updateReqs:
8134 while (true) {
8135 if (!cmds.b) {
8136 return $elm$core$Task$succeed(reqs);
8137 } else {
8138 var cmd = cmds.a;
8139 var otherCmds = cmds.b;
8140 if (cmd.$ === 'Cancel') {
8141 var tracker = cmd.a;
8142 var _v2 = A2($elm$core$Dict$get, tracker, reqs);
8143 if (_v2.$ === 'Nothing') {
8144 var $temp$router = router,
8145 $temp$cmds = otherCmds,
8146 $temp$reqs = reqs;
8147 router = $temp$router;
8148 cmds = $temp$cmds;
8149 reqs = $temp$reqs;
8150 continue updateReqs;
8151 } else {
8152 var pid = _v2.a;
8153 return A2(
8154 $elm$core$Task$andThen,
8155 function (_v3) {
8156 return A3(
8157 $elm$http$Http$updateReqs,
8158 router,
8159 otherCmds,
8160 A2($elm$core$Dict$remove, tracker, reqs));
8161 },
8162 $elm$core$Process$kill(pid));
8164 } else {
8165 var req = cmd.a;
8166 return A2(
8167 $elm$core$Task$andThen,
8168 function (pid) {
8169 var _v4 = req.tracker;
8170 if (_v4.$ === 'Nothing') {
8171 return A3($elm$http$Http$updateReqs, router, otherCmds, reqs);
8172 } else {
8173 var tracker = _v4.a;
8174 return A3(
8175 $elm$http$Http$updateReqs,
8176 router,
8177 otherCmds,
8178 A3($elm$core$Dict$insert, tracker, pid, reqs));
8180 },
8181 $elm$core$Process$spawn(
8182 A3(
8183 _Http_toTask,
8184 router,
8185 $elm$core$Platform$sendToApp(router),
8186 req)));
8190 });
8191var $elm$http$Http$onEffects = F4(
8192 function (router, cmds, subs, state) {
8193 return A2(
8194 $elm$core$Task$andThen,
8195 function (reqs) {
8196 return $elm$core$Task$succeed(
8197 A2($elm$http$Http$State, reqs, subs));
8198 },
8199 A3($elm$http$Http$updateReqs, router, cmds, state.reqs));
8200 });
8201var $elm$http$Http$maybeSend = F4(
8202 function (router, desiredTracker, progress, _v0) {
8203 var actualTracker = _v0.a;
8204 var toMsg = _v0.b;
8205 return _Utils_eq(desiredTracker, actualTracker) ? $elm$core$Maybe$Just(
8206 A2(
8207 $elm$core$Platform$sendToApp,
8208 router,
8209 toMsg(progress))) : $elm$core$Maybe$Nothing;
8210 });
8211var $elm$http$Http$onSelfMsg = F3(
8212 function (router, _v0, state) {
8213 var tracker = _v0.a;
8214 var progress = _v0.b;
8215 return A2(
8216 $elm$core$Task$andThen,
8217 function (_v1) {
8218 return $elm$core$Task$succeed(state);
8219 },
8220 $elm$core$Task$sequence(
8221 A2(
8222 $elm$core$List$filterMap,
8223 A3($elm$http$Http$maybeSend, router, tracker, progress),
8224 state.subs)));
8225 });
8226var $elm$http$Http$Cancel = function (a) {
8227 return {$: 'Cancel', a: a};
8229var $elm$http$Http$cmdMap = F2(
8230 function (func, cmd) {
8231 if (cmd.$ === 'Cancel') {
8232 var tracker = cmd.a;
8233 return $elm$http$Http$Cancel(tracker);
8234 } else {
8235 var r = cmd.a;
8236 return $elm$http$Http$Request(
8238 allowCookiesFromOtherDomains: r.allowCookiesFromOtherDomains,
8239 body: r.body,
8240 expect: A2(_Http_mapExpect, func, r.expect),
8241 headers: r.headers,
8242 method: r.method,
8243 timeout: r.timeout,
8244 tracker: r.tracker,
8245 url: r.url
8246 });
8248 });
8249var $elm$http$Http$MySub = F2(
8250 function (a, b) {
8251 return {$: 'MySub', a: a, b: b};
8252 });
8253var $elm$http$Http$subMap = F2(
8254 function (func, _v0) {
8255 var tracker = _v0.a;
8256 var toMsg = _v0.b;
8257 return A2(
8258 $elm$http$Http$MySub,
8259 tracker,
8260 A2($elm$core$Basics$composeR, toMsg, func));
8261 });
8262_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);
8263var $elm$http$Http$command = _Platform_leaf('Http');
8264var $elm$http$Http$subscription = _Platform_leaf('Http');
8265var $elm$http$Http$request = function (r) {
8266 return $elm$http$Http$command(
8267 $elm$http$Http$Request(
8268 {allowCookiesFromOtherDomains: false, body: r.body, expect: r.expect, headers: r.headers, method: r.method, timeout: r.timeout, tracker: r.tracker, url: r.url}));
8270var $author$project$Api$Endpoint$unwrap = function (_v0) {
8271 var str = _v0.a;
8272 return str;
8274var $author$project$Api$Endpoint$request = function (config) {
8275 return $elm$http$Http$request(
8277 body: config.body,
8278 expect: config.expect,
8279 headers: config.headers,
8280 method: config.method,
8281 timeout: config.timeout,
8282 tracker: config.tracker,
8283 url: $author$project$Api$Endpoint$unwrap(config.url)
8284 });
8286var $author$project$Api$get = F4(
8287 function (config, url, decoder, msg) {
8288 return $author$project$Api$Endpoint$request(
8290 body: $elm$http$Http$emptyBody,
8291 expect: A2($author$project$Api$expectJson, msg, decoder),
8292 headers: _List_fromArray(
8294 $author$project$Api$authHeader(config.appAuth)
8295 ]),
8296 method: 'GET',
8297 timeout: $elm$core$Maybe$Nothing,
8298 tracker: $elm$core$Maybe$Nothing,
8299 url: url(config.appUrl)
8300 });
8301 });
8302var $author$project$Page$Deployment$reqDeployment = F2(
8303 function (deploymentName, cfg) {
8304 return A4(
8305 $author$project$Api$get,
8306 cfg,
8307 $author$project$Api$Endpoint$deploymentFullInfo(deploymentName),
8308 $author$project$Types$Deployment$deploymentDecoder,
8309 A2($elm$core$Basics$composeR, $krisajenkins$remotedata$RemoteData$fromResult, $author$project$Page$Deployment$DeploymentFullInfoResponse));
8310 });
8311var $author$project$Page$Deployment$DeploymentInfoResponse = function (a) {
8312 return {$: 'DeploymentInfoResponse', a: a};
8314var $author$project$Api$Endpoint$deploymentInfo = F2(
8315 function (deploymentName, appUrl) {
8316 return A3(
8317 $author$project$Api$Endpoint$url,
8318 $elm$core$Maybe$Just(appUrl),
8319 _List_fromArray(
8321 'api',
8322 'v1',
8323 'deployments',
8324 $author$project$Types$Deployment$unDeploymentName(deploymentName),
8325 'info'
8326 ]),
8327 _List_Nil);
8328 });
8329var $author$project$Types$Action$LogWrapper = function (logs) {
8330 return {logs: logs};
8332var $author$project$Types$Action$Log = F7(
8333 function (action, actionId, createdAt, appOverrides, deploymentOverrides, duration, exitCode) {
8334 return {action: action, actionId: actionId, appOverrides: appOverrides, createdAt: createdAt, deploymentOverrides: deploymentOverrides, duration: duration, exitCode: exitCode};
8335 });
8336var $author$project$Types$Action$ActionId = function (a) {
8337 return {$: 'ActionId', a: a};
8339var $elm$json$Json$Decode$int = _Json_decodeInt;
8340var $author$project$Types$Action$actionIdDecoder = A2($elm$json$Json$Decode$map, $author$project$Types$Action$ActionId, $elm$json$Json$Decode$int);
8341var $author$project$Types$Action$Archive = {$: 'Archive'};
8342var $author$project$Types$Action$Create = {$: 'Create'};
8343var $author$project$Types$Action$Restore = {$: 'Restore'};
8344var $author$project$Types$Action$Update = {$: 'Update'};
8345var $author$project$Types$Action$actionTypeDecoder = function () {
8346 var tagDecoder = function (tag) {
8347 switch (tag) {
8348 case 'CreateAction':
8349 return $elm$json$Json$Decode$succeed($author$project$Types$Action$Create);
8350 case 'UpdateAction':
8351 return $elm$json$Json$Decode$succeed($author$project$Types$Action$Update);
8352 case 'RestoreAction':
8353 return $elm$json$Json$Decode$succeed($author$project$Types$Action$Restore);
8354 case 'ArchiveAction':
8355 return $elm$json$Json$Decode$succeed($author$project$Types$Action$Archive);
8356 default:
8357 return $elm$json$Json$Decode$fail('Unknown ActionType: ' + tag);
8359 };
8360 return A2($elm$json$Json$Decode$andThen, tagDecoder, $elm$json$Json$Decode$string);
8361}();
8362var $author$project$Types$Action$Duration = F2(
8363 function (months, time) {
8364 return {months: months, time: time};
8365 });
8366var $elm$json$Json$Decode$float = _Json_decodeFloat;
8367var $author$project$Types$Action$durationDecoder = A3(
8368 $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$required,
8369 'time',
8370 $elm$json$Json$Decode$float,
8371 A3(
8372 $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$required,
8373 'months',
8374 $elm$json$Json$Decode$int,
8375 $elm$json$Json$Decode$succeed($author$project$Types$Action$Duration)));
8376var $author$project$Types$Action$ExitCode = function (a) {
8377 return {$: 'ExitCode', a: a};
8379var $author$project$Types$Action$exitCodeDecocder = A2($elm$json$Json$Decode$map, $author$project$Types$Action$ExitCode, $elm$json$Json$Decode$int);
8380var $author$project$Types$Action$logDecoder = A3(
8381 $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$required,
8382 'exit_code',
8383 $author$project$Types$Action$exitCodeDecocder,
8384 A3(
8385 $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$required,
8386 'duration',
8387 $author$project$Types$Action$durationDecoder,
8388 A3(
8389 $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$required,
8390 'deployment_dep_overrides',
8391 $elm$json$Json$Decode$list($author$project$Types$Override$overrideDecoder),
8392 A3(
8393 $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$required,
8394 'deployment_app_overrides',
8395 $elm$json$Json$Decode$list($author$project$Types$Override$overrideDecoder),
8396 A3(
8397 $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$required,
8398 'created_at',
8399 $elm_community$json_extra$Json$Decode$Extra$datetime,
8400 A3(
8401 $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$required,
8402 'action_id',
8403 $author$project$Types$Action$actionIdDecoder,
8404 A3(
8405 $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$required,
8406 'action',
8407 $author$project$Types$Action$actionTypeDecoder,
8408 $elm$json$Json$Decode$succeed($author$project$Types$Action$Log))))))));
8409var $author$project$Types$Action$logWrapperDecoder = A3(
8410 $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$required,
8411 'logs',
8412 $elm$json$Json$Decode$list($author$project$Types$Action$logDecoder),
8413 $elm$json$Json$Decode$succeed($author$project$Types$Action$LogWrapper));
8414var $author$project$Page$Deployment$reqLogs = F2(
8415 function (deploymentName, cfg) {
8416 return A4(
8417 $author$project$Api$get,
8418 cfg,
8419 $author$project$Api$Endpoint$deploymentInfo(deploymentName),
8420 $elm$json$Json$Decode$list($author$project$Types$Action$logWrapperDecoder),
8421 A2($elm$core$Basics$composeR, $krisajenkins$remotedata$RemoteData$fromResult, $author$project$Page$Deployment$DeploymentInfoResponse));
8422 });
8423var $author$project$Page$Deployment$init = F3(
8424 function (settings, config, deploymentName) {
8425 return _Utils_Tuple2(
8427 actionTable: $author$project$Page$Deployment$ActionTable$init,
8428 appDefaults: $krisajenkins$remotedata$RemoteData$Loading,
8429 appOverrides: $krisajenkins$remotedata$RemoteData$Loading,
8430 archivePopup: $elm$core$Maybe$Nothing,
8431 config: config,
8432 debounce: $jinjor$elm_debounce$Debounce$init,
8433 deployment: $krisajenkins$remotedata$RemoteData$Loading,
8434 deploymentDefaults: $krisajenkins$remotedata$RemoteData$Loading,
8435 deploymentName: deploymentName,
8436 deploymentOverrides: $krisajenkins$remotedata$RemoteData$Loading,
8437 logs: $krisajenkins$remotedata$RemoteData$Loading,
8438 restoreDisabled: false,
8439 settings: settings,
8440 sidebar: A3($author$project$Page$Sidebar$CreateUpdate$initUpdate, config, false, deploymentName)
8441 },
8442 $elm$core$Platform$Cmd$batch(
8443 _List_fromArray(
8445 A2($author$project$Page$Deployment$reqDeployment, deploymentName, config),
8446 A2($author$project$Page$Deployment$reqLogs, deploymentName, config)
8447 ])));
8448 });
8449var $author$project$Page$Deployments$Table$ActiveTable = {$: 'ActiveTable'};
8450var $author$project$Page$Deployments$Table$ArchivedTable = {$: 'ArchivedTable'};
8451var $author$project$Page$Deployments$Table$Desc = function (a) {
8452 return {$: 'Desc', a: a};
8454var $author$project$Page$Deployments$Table$Updated = {$: 'Updated'};
8455var $author$project$Page$Deployments$Table$init = F3(
8456 function (config, settings, tableType) {
8457 return {
8458 archivePopup: $elm$core$Maybe$Nothing,
8459 config: config,
8460 menuButton: $elm$core$Maybe$Nothing,
8461 openedAppOverrides: $turboMaCk$any_set$Set$Any$empty($author$project$Types$Deployment$unDeploymentName),
8462 openedDeployemntOverrides: $turboMaCk$any_set$Set$Any$empty($author$project$Types$Deployment$unDeploymentName),
8463 settings: settings,
8464 sort: $author$project$Page$Deployments$Table$Desc($author$project$Page$Deployments$Table$Updated),
8465 tableType: tableType
8466 };
8467 });
8468var $author$project$Page$Sidebar$CreateUpdate$Create = {$: 'Create'};
8469var $author$project$Page$Sidebar$CreateUpdate$initCreate = F2(
8470 function (config, visibility) {
8471 return {
8472 appDefaults: $krisajenkins$remotedata$RemoteData$Loading,
8473 appKeys: $krisajenkins$remotedata$RemoteData$Loading,
8474 appOverrides: $krisajenkins$remotedata$RemoteData$Loading,
8475 config: config,
8476 deployment: $krisajenkins$remotedata$RemoteData$NotAsked,
8477 deploymentDefaults: $krisajenkins$remotedata$RemoteData$Loading,
8478 deploymentKeys: $krisajenkins$remotedata$RemoteData$Loading,
8479 deploymentOverrides: $krisajenkins$remotedata$RemoteData$Loading,
8480 mode: $author$project$Page$Sidebar$CreateUpdate$Create,
8481 name: $author$project$Types$Deployment$DeploymentName(''),
8482 nameEdited: false,
8483 saveResp: $krisajenkins$remotedata$RemoteData$NotAsked,
8484 visibility: visibility
8485 };
8486 });
8487var $author$project$Page$Deployments$DeploymentsResponse = function (a) {
8488 return {$: 'DeploymentsResponse', a: a};
8490var $author$project$Api$Endpoint$deployments = function (appUrl) {
8491 return A3(
8492 $author$project$Api$Endpoint$url,
8493 $elm$core$Maybe$Just(appUrl),
8494 _List_fromArray(
8495 ['api', 'v1', 'deployments']),
8496 _List_Nil);
8498var $author$project$Page$Deployments$reqDeployments = function (cfg) {
8499 return A4(
8500 $author$project$Api$get,
8501 cfg,
8502 $author$project$Api$Endpoint$deployments,
8503 $elm$json$Json$Decode$list($author$project$Types$Deployment$deploymentDecoder),
8504 A2($elm$core$Basics$composeR, $krisajenkins$remotedata$RemoteData$fromResult, $author$project$Page$Deployments$DeploymentsResponse));
8506var $author$project$Page$Deployments$init = F2(
8507 function (settings, config) {
8508 return _Utils_Tuple2(
8510 activeTable: A3($author$project$Page$Deployments$Table$init, config, settings, $author$project$Page$Deployments$Table$ActiveTable),
8511 archivedTable: A3($author$project$Page$Deployments$Table$init, config, settings, $author$project$Page$Deployments$Table$ArchivedTable),
8512 config: config,
8513 debounce: $jinjor$elm_debounce$Debounce$init,
8514 deployments: $krisajenkins$remotedata$RemoteData$Loading,
8515 search: '',
8516 settings: settings,
8517 showArchived: false,
8518 sidebar: A2($author$project$Page$Sidebar$CreateUpdate$initCreate, config, false),
8519 updated: 0
8520 },
8521 $author$project$Page$Deployments$reqDeployments(config));
8522 });
8523var $author$project$Main$changeRouteTo = F2(
8524 function (maybeRoute, model) {
8525 if (maybeRoute.$ === 'Nothing') {
8526 return A3(
8527 $author$project$Main$updateWith,
8528 $author$project$Main$Deployments,
8529 $author$project$Main$DeploymentsMsg,
8530 A2(
8531 $author$project$Page$Deployments$init,
8532 $author$project$Main$getSettings(model),
8533 $author$project$Main$getConfig(model)));
8534 } else {
8535 if (maybeRoute.a.$ === 'Deployments') {
8536 var _v1 = maybeRoute.a;
8537 return A3(
8538 $author$project$Main$updateWith,
8539 $author$project$Main$Deployments,
8540 $author$project$Main$DeploymentsMsg,
8541 A2(
8542 $author$project$Page$Deployments$init,
8543 $author$project$Main$getSettings(model),
8544 $author$project$Main$getConfig(model)));
8545 } else {
8546 var deploymentName = maybeRoute.a.a;
8547 return A3(
8548 $author$project$Main$updateWith,
8549 $author$project$Main$Deployment,
8550 $author$project$Main$DeploymentMsg,
8551 A3(
8552 $author$project$Page$Deployment$init,
8553 $author$project$Main$getSettings(model),
8554 $author$project$Main$getConfig(model),
8555 deploymentName));
8558 });
8559var $elm$url$Url$Parser$State = F5(
8560 function (visited, unvisited, params, frag, value) {
8561 return {frag: frag, params: params, unvisited: unvisited, value: value, visited: visited};
8562 });
8563var $elm$url$Url$Parser$getFirstMatch = function (states) {
8564 getFirstMatch:
8565 while (true) {
8566 if (!states.b) {
8567 return $elm$core$Maybe$Nothing;
8568 } else {
8569 var state = states.a;
8570 var rest = states.b;
8571 var _v1 = state.unvisited;
8572 if (!_v1.b) {
8573 return $elm$core$Maybe$Just(state.value);
8574 } else {
8575 if ((_v1.a === '') && (!_v1.b.b)) {
8576 return $elm$core$Maybe$Just(state.value);
8577 } else {
8578 var $temp$states = rest;
8579 states = $temp$states;
8580 continue getFirstMatch;
8586var $elm$url$Url$Parser$removeFinalEmpty = function (segments) {
8587 if (!segments.b) {
8588 return _List_Nil;
8589 } else {
8590 if ((segments.a === '') && (!segments.b.b)) {
8591 return _List_Nil;
8592 } else {
8593 var segment = segments.a;
8594 var rest = segments.b;
8595 return A2(
8596 $elm$core$List$cons,
8597 segment,
8598 $elm$url$Url$Parser$removeFinalEmpty(rest));
8602var $elm$url$Url$Parser$preparePath = function (path) {
8603 var _v0 = A2($elm$core$String$split, '/', path);
8604 if (_v0.b && (_v0.a === '')) {
8605 var segments = _v0.b;
8606 return $elm$url$Url$Parser$removeFinalEmpty(segments);
8607 } else {
8608 var segments = _v0;
8609 return $elm$url$Url$Parser$removeFinalEmpty(segments);
8612var $elm$url$Url$Parser$addToParametersHelp = F2(
8613 function (value, maybeList) {
8614 if (maybeList.$ === 'Nothing') {
8615 return $elm$core$Maybe$Just(
8616 _List_fromArray(
8617 [value]));
8618 } else {
8619 var list = maybeList.a;
8620 return $elm$core$Maybe$Just(
8621 A2($elm$core$List$cons, value, list));
8623 });
8624var $elm$url$Url$percentDecode = _Url_percentDecode;
8625var $elm$url$Url$Parser$addParam = F2(
8626 function (segment, dict) {
8627 var _v0 = A2($elm$core$String$split, '=', segment);
8628 if ((_v0.b && _v0.b.b) && (!_v0.b.b.b)) {
8629 var rawKey = _v0.a;
8630 var _v1 = _v0.b;
8631 var rawValue = _v1.a;
8632 var _v2 = $elm$url$Url$percentDecode(rawKey);
8633 if (_v2.$ === 'Nothing') {
8634 return dict;
8635 } else {
8636 var key = _v2.a;
8637 var _v3 = $elm$url$Url$percentDecode(rawValue);
8638 if (_v3.$ === 'Nothing') {
8639 return dict;
8640 } else {
8641 var value = _v3.a;
8642 return A3(
8643 $elm$core$Dict$update,
8644 key,
8645 $elm$url$Url$Parser$addToParametersHelp(value),
8646 dict);
8649 } else {
8650 return dict;
8652 });
8653var $elm$url$Url$Parser$prepareQuery = function (maybeQuery) {
8654 if (maybeQuery.$ === 'Nothing') {
8655 return $elm$core$Dict$empty;
8656 } else {
8657 var qry = maybeQuery.a;
8658 return A3(
8659 $elm$core$List$foldr,
8660 $elm$url$Url$Parser$addParam,
8661 $elm$core$Dict$empty,
8662 A2($elm$core$String$split, '&', qry));
8665var $elm$url$Url$Parser$parse = F2(
8666 function (_v0, url) {
8667 var parser = _v0.a;
8668 return $elm$url$Url$Parser$getFirstMatch(
8669 parser(
8670 A5(
8671 $elm$url$Url$Parser$State,
8672 _List_Nil,
8673 $elm$url$Url$Parser$preparePath(url.path),
8674 $elm$url$Url$Parser$prepareQuery(url.query),
8675 url.fragment,
8676 $elm$core$Basics$identity)));
8677 });
8678var $author$project$Route$Deployment = function (a) {
8679 return {$: 'Deployment', a: a};
8681var $author$project$Route$Deployments = {$: 'Deployments'};
8682var $elm$url$Url$Parser$Parser = function (a) {
8683 return {$: 'Parser', a: a};
8685var $elm$url$Url$Parser$custom = F2(
8686 function (tipe, stringToSomething) {
8687 return $elm$url$Url$Parser$Parser(
8688 function (_v0) {
8689 var visited = _v0.visited;
8690 var unvisited = _v0.unvisited;
8691 var params = _v0.params;
8692 var frag = _v0.frag;
8693 var value = _v0.value;
8694 if (!unvisited.b) {
8695 return _List_Nil;
8696 } else {
8697 var next = unvisited.a;
8698 var rest = unvisited.b;
8699 var _v2 = stringToSomething(next);
8700 if (_v2.$ === 'Just') {
8701 var nextValue = _v2.a;
8702 return _List_fromArray(
8704 A5(
8705 $elm$url$Url$Parser$State,
8706 A2($elm$core$List$cons, next, visited),
8707 rest,
8708 params,
8709 frag,
8710 value(nextValue))
8711 ]);
8712 } else {
8713 return _List_Nil;
8716 });
8717 });
8718var $elm$url$Url$Parser$mapState = F2(
8719 function (func, _v0) {
8720 var visited = _v0.visited;
8721 var unvisited = _v0.unvisited;
8722 var params = _v0.params;
8723 var frag = _v0.frag;
8724 var value = _v0.value;
8725 return A5(
8726 $elm$url$Url$Parser$State,
8727 visited,
8728 unvisited,
8729 params,
8730 frag,
8731 func(value));
8732 });
8733var $elm$url$Url$Parser$map = F2(
8734 function (subValue, _v0) {
8735 var parseArg = _v0.a;
8736 return $elm$url$Url$Parser$Parser(
8737 function (_v1) {
8738 var visited = _v1.visited;
8739 var unvisited = _v1.unvisited;
8740 var params = _v1.params;
8741 var frag = _v1.frag;
8742 var value = _v1.value;
8743 return A2(
8744 $elm$core$List$map,
8745 $elm$url$Url$Parser$mapState(value),
8746 parseArg(
8747 A5($elm$url$Url$Parser$State, visited, unvisited, params, frag, subValue)));
8748 });
8749 });
8750var $elm$core$List$append = F2(
8751 function (xs, ys) {
8752 if (!ys.b) {
8753 return xs;
8754 } else {
8755 return A3($elm$core$List$foldr, $elm$core$List$cons, ys, xs);
8757 });
8758var $elm$core$List$concat = function (lists) {
8759 return A3($elm$core$List$foldr, $elm$core$List$append, _List_Nil, lists);
8761var $elm$core$List$concatMap = F2(
8762 function (f, list) {
8763 return $elm$core$List$concat(
8764 A2($elm$core$List$map, f, list));
8765 });
8766var $elm$url$Url$Parser$oneOf = function (parsers) {
8767 return $elm$url$Url$Parser$Parser(
8768 function (state) {
8769 return A2(
8770 $elm$core$List$concatMap,
8771 function (_v0) {
8772 var parser = _v0.a;
8773 return parser(state);
8774 },
8775 parsers);
8776 });
8778var $elm$url$Url$Parser$s = function (str) {
8779 return $elm$url$Url$Parser$Parser(
8780 function (_v0) {
8781 var visited = _v0.visited;
8782 var unvisited = _v0.unvisited;
8783 var params = _v0.params;
8784 var frag = _v0.frag;
8785 var value = _v0.value;
8786 if (!unvisited.b) {
8787 return _List_Nil;
8788 } else {
8789 var next = unvisited.a;
8790 var rest = unvisited.b;
8791 return _Utils_eq(next, str) ? _List_fromArray(
8793 A5(
8794 $elm$url$Url$Parser$State,
8795 A2($elm$core$List$cons, next, visited),
8796 rest,
8797 params,
8798 frag,
8799 value)
8800 ]) : _List_Nil;
8802 });
8804var $elm$url$Url$Parser$slash = F2(
8805 function (_v0, _v1) {
8806 var parseBefore = _v0.a;
8807 var parseAfter = _v1.a;
8808 return $elm$url$Url$Parser$Parser(
8809 function (state) {
8810 return A2(
8811 $elm$core$List$concatMap,
8812 parseAfter,
8813 parseBefore(state));
8814 });
8815 });
8816var $author$project$Route$parser = $elm$url$Url$Parser$oneOf(
8817 _List_fromArray(
8819 A2(
8820 $elm$url$Url$Parser$map,
8821 $author$project$Route$Deployments,
8822 $elm$url$Url$Parser$s('deployments')),
8823 A2(
8824 $elm$url$Url$Parser$map,
8825 $author$project$Route$Deployment,
8826 A2(
8827 $elm$url$Url$Parser$slash,
8828 $elm$url$Url$Parser$s('deployments'),
8829 A2(
8830 $elm$url$Url$Parser$custom,
8831 'deployment',
8832 function (str) {
8833 return $elm$core$Maybe$Just(
8834 $author$project$Types$Deployment$DeploymentName(str));
8835 })))
8836 ]));
8837var $elm$core$Maybe$withDefault = F2(
8838 function (_default, maybe) {
8839 if (maybe.$ === 'Just') {
8840 var value = maybe.a;
8841 return value;
8842 } else {
8843 return _default;
8845 });
8846var $author$project$Route$fromUrl = function (url) {
8847 return A2(
8848 $elm$url$Url$Parser$parse,
8849 $author$project$Route$parser,
8850 _Utils_update(
8851 url,
8853 fragment: $elm$core$Maybe$Nothing,
8854 path: A2($elm$core$Maybe$withDefault, '', url.fragment)
8855 }));
8857var $author$project$Page$Deployment$getNavKey = function (model) {
8858 return model.settings.navKey;
8860var $author$project$Page$Deployments$getNavKey = function (model) {
8861 return model.settings.navKey;
8863var $author$project$Page$Initialization$getNavKey = function (model) {
8864 return model.settings.navKey;
8866var $author$project$Main$getNavKey = function (model) {
8867 switch (model.$) {
8868 case 'Initialization':
8869 var subModel = model.a;
8870 return $author$project$Page$Initialization$getNavKey(subModel);
8871 case 'Deployments':
8872 var subModel = model.a;
8873 return $author$project$Page$Deployments$getNavKey(subModel);
8874 default:
8875 var subModel = model.a;
8876 return $author$project$Page$Deployment$getNavKey(subModel);
8879var $elm$browser$Browser$Navigation$load = _Browser_load;
8880var $elm$core$Platform$Cmd$none = $elm$core$Platform$Cmd$batch(_List_Nil);
8881var $elm$browser$Browser$Navigation$pushUrl = _Browser_pushUrl;
8882var $elm$url$Url$addPort = F2(
8883 function (maybePort, starter) {
8884 if (maybePort.$ === 'Nothing') {
8885 return starter;
8886 } else {
8887 var port_ = maybePort.a;
8888 return starter + (':' + $elm$core$String$fromInt(port_));
8890 });
8891var $elm$url$Url$addPrefixed = F3(
8892 function (prefix, maybeSegment, starter) {
8893 if (maybeSegment.$ === 'Nothing') {
8894 return starter;
8895 } else {
8896 var segment = maybeSegment.a;
8897 return _Utils_ap(
8898 starter,
8899 _Utils_ap(prefix, segment));
8901 });
8902var $elm$url$Url$toString = function (url) {
8903 var http = function () {
8904 var _v0 = url.protocol;
8905 if (_v0.$ === 'Http') {
8906 return 'http://';
8907 } else {
8908 return 'https://';
8910 }();
8911 return A3(
8912 $elm$url$Url$addPrefixed,
8913 '#',
8914 url.fragment,
8915 A3(
8916 $elm$url$Url$addPrefixed,
8917 '?',
8918 url.query,
8919 _Utils_ap(
8920 A2(
8921 $elm$url$Url$addPort,
8922 url.port_,
8923 _Utils_ap(http, url.host)),
8924 url.path)));
8926var $author$project$Page$Deployment$ActionMsg = function (a) {
8927 return {$: 'ActionMsg', a: a};
8929var $author$project$Page$Deployment$AppOverridesMsg = function (a) {
8930 return {$: 'AppOverridesMsg', a: a};
8932var $author$project$Page$Deployment$CreateSidebarMsg = function (a) {
8933 return {$: 'CreateSidebarMsg', a: a};
8935var $author$project$Page$Deployment$DeploymentOverridesMsg = function (a) {
8936 return {$: 'DeploymentOverridesMsg', a: a};
8938var $author$project$Html$Overrides$Read = {$: 'Read'};
8939var $author$project$Page$Deployment$DebounceMsg = function (a) {
8940 return {$: 'DebounceMsg', a: a};
8942var $jinjor$elm_debounce$Debounce$Soon = F2(
8943 function (a, b) {
8944 return {$: 'Soon', a: a, b: b};
8945 });
8946var $jinjor$elm_debounce$Debounce$soon = $jinjor$elm_debounce$Debounce$Soon(0);
8947var $author$project$Page$Deployment$debounceConfig = {
8948 strategy: $jinjor$elm_debounce$Debounce$soon(2000),
8949 transform: $author$project$Page$Deployment$DebounceMsg
8951var $author$project$Types$Override$unOverrideName = function (_v0) {
8952 var name = _v0.a;
8953 return name;
8955var $author$project$Html$Overrides$mkDefaultNameDict = function (defaultsList) {
8956 return $elm$core$Dict$fromList(
8957 A2(
8958 $elm$core$List$map,
8959 function (d) {
8960 return _Utils_Tuple2(
8961 $author$project$Types$Override$unOverrideName(d.name),
8962 d);
8963 },
8964 defaultsList));
8966var $author$project$Html$Overrides$mkDefaultsDict = F2(
8967 function (ids, defaults) {
8968 return A6(
8969 $elm$core$Dict$merge,
8970 F3(
8971 function (_v0, _v1, res) {
8972 return res;
8973 }),
8974 F4(
8975 function (_v2, id, def, res) {
8976 return A3($elm$core$Dict$insert, id, def, res);
8977 }),
8978 F3(
8979 function (_v3, _v4, res) {
8980 return res;
8981 }),
8982 ids,
8983 defaults,
8984 $elm$core$Dict$empty);
8985 });
8986var $author$project$Html$Overrides$mkEditsDict = F2(
8987 function (ids, edits) {
8988 return A6(
8989 $elm$core$Dict$merge,
8990 F3(
8991 function (_v0, _v1, res) {
8992 return res;
8993 }),
8994 F4(
8995 function (_v2, id, def, res) {
8996 return A3($elm$core$Dict$insert, id, def, res);
8997 }),
8998 F3(
8999 function (_v3, _v4, res) {
9000 return res;
9001 }),
9002 ids,
9003 edits,
9004 $elm$core$Dict$empty);
9005 });
9006var $author$project$Html$Overrides$mkEditsNameDict = function (editsList) {
9007 return $elm$core$Dict$fromList(
9008 A2(
9009 $elm$core$List$map,
9010 function (d) {
9011 return _Utils_Tuple2(
9012 $author$project$Types$Override$unOverrideName(d.name),
9013 d);
9014 },
9015 editsList));
9017var $elm$core$Dict$sizeHelp = F2(
9018 function (n, dict) {
9019 sizeHelp:
9020 while (true) {
9021 if (dict.$ === 'RBEmpty_elm_builtin') {
9022 return n;
9023 } else {
9024 var left = dict.d;
9025 var right = dict.e;
9026 var $temp$n = A2($elm$core$Dict$sizeHelp, n + 1, right),
9027 $temp$dict = left;
9028 n = $temp$n;
9029 dict = $temp$dict;
9030 continue sizeHelp;
9033 });
9034var $elm$core$Dict$size = function (dict) {
9035 return A2($elm$core$Dict$sizeHelp, 0, dict);
9037var $author$project$Html$Overrides$mkIds = F2(
9038 function (defaults, edits) {
9039 return A6(
9040 $elm$core$Dict$merge,
9041 F3(
9042 function (n, _v0, res) {
9043 return A3(
9044 $elm$core$Dict$insert,
9045 n,
9046 $elm$core$Dict$size(res),
9047 res);
9048 }),
9049 F4(
9050 function (n, _v1, _v2, res) {
9051 return A3(
9052 $elm$core$Dict$insert,
9053 n,
9054 $elm$core$Dict$size(res),
9055 res);
9056 }),
9057 F3(
9058 function (n, _v3, res) {
9059 return A3(
9060 $elm$core$Dict$insert,
9061 n,
9062 $elm$core$Dict$size(res),
9063 res);
9064 }),
9065 defaults,
9066 edits,
9067 $elm$core$Dict$empty);
9068 });
9069var $elm$core$List$filter = F2(
9070 function (isGood, list) {
9071 return A3(
9072 $elm$core$List$foldr,
9073 F2(
9074 function (x, xs) {
9075 return isGood(x) ? A2($elm$core$List$cons, x, xs) : xs;
9076 }),
9077 _List_Nil,
9078 list);
9079 });
9080var $elm$core$Set$Set_elm_builtin = function (a) {
9081 return {$: 'Set_elm_builtin', a: a};
9083var $elm$core$Set$empty = $elm$core$Set$Set_elm_builtin($elm$core$Dict$empty);
9084var $elm$core$Set$insert = F2(
9085 function (key, _v0) {
9086 var dict = _v0.a;
9087 return $elm$core$Set$Set_elm_builtin(
9088 A3($elm$core$Dict$insert, key, _Utils_Tuple0, dict));
9089 });
9090var $elm$core$Set$fromList = function (list) {
9091 return A3($elm$core$List$foldl, $elm$core$Set$insert, $elm$core$Set$empty, list);
9093var $author$project$Html$Overrides$getWrappedName = function (w) {
9094 if (w.$ === 'DefaultOverride') {
9095 var x = w.a;
9096 return x.name;
9097 } else {
9098 var x = w.a;
9099 return x.name;
9102var $author$project$Html$Overrides$getWrappedValue = function (w) {
9103 if (w.$ === 'DefaultOverride') {
9104 var x = w.a;
9105 return x.value;
9106 } else {
9107 var x = w.a;
9108 return x.value;
9111var $elm$core$Maybe$map = F2(
9112 function (f, maybe) {
9113 if (maybe.$ === 'Just') {
9114 var value = maybe.a;
9115 return $elm$core$Maybe$Just(
9116 f(value));
9117 } else {
9118 return $elm$core$Maybe$Nothing;
9120 });
9121var $elm$core$List$tail = function (list) {
9122 if (list.b) {
9123 var x = list.a;
9124 var xs = list.b;
9125 return $elm$core$Maybe$Just(xs);
9126 } else {
9127 return $elm$core$Maybe$Nothing;
9130var $elm_community$list_extra$List$Extra$init = function (items) {
9131 if (!items.b) {
9132 return $elm$core$Maybe$Nothing;
9133 } else {
9134 var nonEmptyList = items;
9135 return A2(
9136 $elm$core$Maybe$map,
9137 $elm$core$List$reverse,
9138 $elm$core$List$tail(
9139 $elm$core$List$reverse(nonEmptyList)));
9142var $elm$core$Tuple$second = function (_v0) {
9143 var y = _v0.b;
9144 return y;
9146var $elm_community$list_extra$List$Extra$tailsHelp = F2(
9147 function (e, list) {
9148 if (list.b) {
9149 var x = list.a;
9150 var xs = list.b;
9151 return A2(
9152 $elm$core$List$cons,
9153 A2($elm$core$List$cons, e, x),
9154 A2($elm$core$List$cons, x, xs));
9155 } else {
9156 return _List_Nil;
9158 });
9159var $elm_community$list_extra$List$Extra$tails = A2(
9160 $elm$core$List$foldr,
9161 $elm_community$list_extra$List$Extra$tailsHelp,
9162 _List_fromArray(
9163 [_List_Nil]));
9164var $author$project$Html$Overrides$mkOpenedPaths = function (overridesData) {
9165 return $elm$core$Set$fromList(
9166 $elm$core$List$concat(
9167 A2(
9168 $elm$core$List$map,
9169 A2(
9170 $elm$core$Basics$composeR,
9171 $author$project$Html$Overrides$getWrappedName,
9172 A2(
9173 $elm$core$Basics$composeR,
9174 $author$project$Types$Override$unOverrideName,
9175 A2(
9176 $elm$core$Basics$composeR,
9177 $elm$core$String$split('.'),
9178 A2(
9179 $elm$core$Basics$composeR,
9180 $elm_community$list_extra$List$Extra$init,
9181 A2(
9182 $elm$core$Basics$composeR,
9183 $elm$core$Maybe$withDefault(_List_Nil),
9184 A2($elm$core$Basics$composeR, $elm$core$List$reverse, $elm_community$list_extra$List$Extra$tails)))))),
9185 A2(
9186 $elm$core$List$filter,
9187 A2(
9188 $elm$core$Basics$composeR,
9189 $author$project$Html$Overrides$getWrappedValue,
9190 function (x) {
9191 return x === '';
9192 }),
9193 A2(
9194 $elm$core$List$map,
9195 $elm$core$Tuple$second,
9196 $elm$core$Dict$toList(overridesData))))));
9198var $author$project$Html$Overrides$Deleted = {$: 'Deleted'};
9199var $author$project$Html$Overrides$Edited = {$: 'Edited'};
9200var $author$project$Html$Overrides$New = {$: 'New'};
9201var $author$project$Html$Overrides$OverrideData = F3(
9202 function (name, value, status) {
9203 return {name: name, status: status, value: value};
9204 });
9205var $author$project$Html$Overrides$mkOverrideDataList = F2(
9206 function (defaults, edits) {
9207 return A6(
9208 $elm$core$Dict$merge,
9209 F3(
9210 function (_v0, _v1, res) {
9211 return res;
9212 }),
9213 F4(
9214 function (id, def, edit, res) {
9215 var _v2 = edit.value;
9216 if (_v2.$ === 'ValueAdded') {
9217 var v = _v2.a;
9218 return A3(
9219 $elm$core$Dict$insert,
9220 id,
9221 A3($author$project$Html$Overrides$OverrideData, edit.name, v, $author$project$Html$Overrides$Edited),
9222 res);
9223 } else {
9224 return A3(
9225 $elm$core$Dict$insert,
9226 id,
9227 A3($author$project$Html$Overrides$OverrideData, edit.name, def.value, $author$project$Html$Overrides$Deleted),
9228 res);
9230 }),
9231 F3(
9232 function (id, edit, res) {
9233 var _v3 = edit.value;
9234 if (_v3.$ === 'ValueAdded') {
9235 var v = _v3.a;
9236 return A3(
9237 $elm$core$Dict$insert,
9238 id,
9239 A3($author$project$Html$Overrides$OverrideData, edit.name, v, $author$project$Html$Overrides$New),
9240 res);
9241 } else {
9242 return res;
9244 }),
9245 defaults,
9246 edits,
9247 $elm$core$Dict$empty);
9248 });
9249var $author$project$Html$Overrides$compareOverrideData = F2(
9250 function (a, b) {
9251 var _v0 = _Utils_Tuple2(a.status, b.status);
9252 _v0$3:
9253 while (true) {
9254 _v0$4:
9255 while (true) {
9256 switch (_v0.a.$) {
9257 case 'Edited':
9258 switch (_v0.b.$) {
9259 case 'Edited':
9260 var _v5 = _v0.a;
9261 var _v6 = _v0.b;
9262 return A2(
9263 $elm$core$Basics$compare,
9264 $author$project$Types$Override$unOverrideName(a.name),
9265 $author$project$Types$Override$unOverrideName(b.name));
9266 case 'Deleted':
9267 break _v0$4;
9268 default:
9269 var _v10 = _v0.b;
9270 return $elm$core$Basics$GT;
9272 case 'Deleted':
9273 switch (_v0.b.$) {
9274 case 'Deleted':
9275 var _v1 = _v0.a;
9276 var _v2 = _v0.b;
9277 return A2(
9278 $elm$core$Basics$compare,
9279 $author$project$Types$Override$unOverrideName(a.name),
9280 $author$project$Types$Override$unOverrideName(b.name));
9281 case 'New':
9282 break _v0$3;
9283 default:
9284 break _v0$3;
9286 default:
9287 switch (_v0.b.$) {
9288 case 'Deleted':
9289 break _v0$4;
9290 case 'New':
9291 var _v3 = _v0.a;
9292 var _v4 = _v0.b;
9293 return A2(
9294 $elm$core$Basics$compare,
9295 $author$project$Types$Override$unOverrideName(a.name),
9296 $author$project$Types$Override$unOverrideName(b.name));
9297 default:
9298 var _v9 = _v0.a;
9299 return $elm$core$Basics$LT;
9303 var _v8 = _v0.b;
9304 return $elm$core$Basics$GT;
9306 var _v7 = _v0.a;
9307 return $elm$core$Basics$LT;
9308 });
9309var $author$project$Html$Overrides$compareWrappedOverride = F2(
9310 function (a, b) {
9311 var _v0 = _Utils_Tuple2(a, b);
9312 if (_v0.a.$ === 'NonOverrideWithDefault') {
9313 if (_v0.b.$ === 'NonOverrideWithDefault') {
9314 var x = _v0.a.a;
9315 var y = _v0.b.a;
9316 return A2($author$project$Html$Overrides$compareOverrideData, x, y);
9317 } else {
9318 return $elm$core$Basics$LT;
9320 } else {
9321 if (_v0.b.$ === 'NonOverrideWithDefault') {
9322 return $elm$core$Basics$GT;
9323 } else {
9324 var x = _v0.a.a;
9325 var y = _v0.b.a;
9326 return A2(
9327 $elm$core$Basics$compare,
9328 $author$project$Types$Override$unOverrideName(x.name),
9329 $author$project$Types$Override$unOverrideName(y.name));
9332 });
9333var $elm$core$List$any = F2(
9334 function (isOkay, list) {
9335 any:
9336 while (true) {
9337 if (!list.b) {
9338 return false;
9339 } else {
9340 var x = list.a;
9341 var xs = list.b;
9342 if (isOkay(x)) {
9343 return true;
9344 } else {
9345 var $temp$isOkay = isOkay,
9346 $temp$list = xs;
9347 isOkay = $temp$isOkay;
9348 list = $temp$list;
9349 continue any;
9353 });
9354var $author$project$Html$Overrides$treeHasEmptyOrEdited = F2(
9355 function (overrideData, t) {
9356 if (t.$ === 'Node') {
9357 var cs = t.b;
9358 return A2(
9359 $elm$core$List$any,
9360 $author$project$Html$Overrides$treeHasEmptyOrEdited(overrideData),
9361 cs);
9362 } else {
9363 var i = t.a;
9364 var _v1 = A2($elm$core$Dict$get, i, overrideData);
9365 if (_v1.$ === 'Just') {
9366 if (_v1.a.$ === 'NonOverrideWithDefault') {
9367 return true;
9368 } else {
9369 var x = _v1.a.a;
9370 return x.value === '';
9372 } else {
9373 return false;
9376 });
9377var $author$project$Html$Overrides$compareTree = F3(
9378 function (overrideData, a, b) {
9379 var _v0 = _Utils_Tuple2(a, b);
9380 _v0$1:
9381 while (true) {
9382 _v0$2:
9383 while (true) {
9384 _v0$4:
9385 while (true) {
9386 if (_v0.a.$ === 'Node') {
9387 if (_v0.b.$ === 'Node') {
9388 if ((_v0.a.b.b && (_v0.a.b.a.$ === 'Leaf')) && (!_v0.a.b.b.b)) {
9389 if ((_v0.b.b.b && (_v0.b.b.a.$ === 'Leaf')) && (!_v0.b.b.b.b)) {
9390 var _v1 = _v0.a;
9391 var x = _v1.a;
9392 var _v2 = _v1.b;
9393 var i = _v2.a.a;
9394 var _v3 = _v0.b;
9395 var y = _v3.a;
9396 var _v4 = _v3.b;
9397 var j = _v4.a.a;
9398 var _v5 = _Utils_Tuple2(
9399 A2($elm$core$Dict$get, i, overrideData),
9400 A2($elm$core$Dict$get, j, overrideData));
9401 if ((_v5.a.$ === 'Just') && (_v5.b.$ === 'Just')) {
9402 var aa = _v5.a.a;
9403 var bb = _v5.b.a;
9404 return A2($author$project$Html$Overrides$compareWrappedOverride, aa, bb);
9405 } else {
9406 return A2($elm$core$Basics$compare, x, y);
9408 } else {
9409 break _v0$1;
9411 } else {
9412 if ((_v0.b.b.b && (_v0.b.b.a.$ === 'Leaf')) && (!_v0.b.b.b.b)) {
9413 break _v0$2;
9414 } else {
9415 var _v10 = _v0.a;
9416 var x = _v10.a;
9417 var _v11 = _v0.b;
9418 var y = _v11.a;
9419 var _v12 = _Utils_Tuple2(
9420 A2($author$project$Html$Overrides$treeHasEmptyOrEdited, overrideData, a),
9421 A2($author$project$Html$Overrides$treeHasEmptyOrEdited, overrideData, b));
9422 if (_v12.a) {
9423 if (_v12.b) {
9424 return A2($elm$core$Basics$compare, x, y);
9425 } else {
9426 return $elm$core$Basics$LT;
9428 } else {
9429 if (!_v12.b) {
9430 return A2($elm$core$Basics$compare, x, y);
9431 } else {
9432 return $elm$core$Basics$GT;
9437 } else {
9438 if ((_v0.a.b.b && (_v0.a.b.a.$ === 'Leaf')) && (!_v0.a.b.b.b)) {
9439 break _v0$1;
9440 } else {
9441 break _v0$4;
9444 } else {
9445 if ((((_v0.b.$ === 'Node') && _v0.b.b.b) && (_v0.b.b.a.$ === 'Leaf')) && (!_v0.b.b.b.b)) {
9446 break _v0$2;
9447 } else {
9448 break _v0$4;
9452 return $elm$core$Basics$EQ;
9454 var _v8 = _v0.b;
9455 var _v9 = _v8.b;
9456 return $elm$core$Basics$GT;
9458 var _v6 = _v0.a;
9459 var _v7 = _v6.b;
9460 return $elm$core$Basics$LT;
9461 });
9462var $author$project$Tree$getLabel = function (t) {
9463 if (t.$ === 'Node') {
9464 var l = t.a;
9465 return $elm$core$Maybe$Just(l);
9466 } else {
9467 return $elm$core$Maybe$Nothing;
9470var $author$project$Tree$Leaf = function (a) {
9471 return {$: 'Leaf', a: a};
9473var $author$project$Tree$Node = F2(
9474 function (a, b) {
9475 return {$: 'Node', a: a, b: b};
9476 });
9477var $elm$core$List$partition = F2(
9478 function (pred, list) {
9479 var step = F2(
9480 function (x, _v0) {
9481 var trues = _v0.a;
9482 var falses = _v0.b;
9483 return pred(x) ? _Utils_Tuple2(
9484 A2($elm$core$List$cons, x, trues),
9485 falses) : _Utils_Tuple2(
9486 trues,
9487 A2($elm$core$List$cons, x, falses));
9488 });
9489 return A3(
9490 $elm$core$List$foldr,
9491 step,
9492 _Utils_Tuple2(_List_Nil, _List_Nil),
9493 list);
9494 });
9495var $elm_community$list_extra$List$Extra$gatherWith = F2(
9496 function (testFn, list) {
9497 var helper = F2(
9498 function (scattered, gathered) {
9499 helper:
9500 while (true) {
9501 if (!scattered.b) {
9502 return $elm$core$List$reverse(gathered);
9503 } else {
9504 var toGather = scattered.a;
9505 var population = scattered.b;
9506 var _v1 = A2(
9507 $elm$core$List$partition,
9508 testFn(toGather),
9509 population);
9510 var gathering = _v1.a;
9511 var remaining = _v1.b;
9512 var $temp$scattered = remaining,
9513 $temp$gathered = A2(
9514 $elm$core$List$cons,
9515 _Utils_Tuple2(toGather, gathering),
9516 gathered);
9517 scattered = $temp$scattered;
9518 gathered = $temp$gathered;
9519 continue helper;
9522 });
9523 return A2(helper, list, _List_Nil);
9524 });
9525var $elm_community$list_extra$List$Extra$gatherEqualsBy = F2(
9526 function (extract, list) {
9527 return A2(
9528 $elm_community$list_extra$List$Extra$gatherWith,
9529 F2(
9530 function (a, b) {
9531 return _Utils_eq(
9532 extract(a),
9533 extract(b));
9534 }),
9535 list);
9536 });
9537var $author$project$Tree$getChildren = function (t) {
9538 if (t.$ === 'Node') {
9539 var cs = t.b;
9540 return cs;
9541 } else {
9542 return _List_Nil;
9545var $elm$core$List$sortWith = _List_sortWith;
9546var $author$project$Tree$mergeTreesByWithSort = F3(
9547 function (mrg, cmp, ts) {
9548 var f = function (x) {
9549 if (x.a.$ === 'Node') {
9550 var _v1 = x.a;
9551 var l = _v1.a;
9552 var cs = _v1.b;
9553 var ns = x.b;
9554 return A2(
9555 $author$project$Tree$Node,
9556 l,
9557 A2(
9558 $elm$core$List$sortWith,
9559 cmp,
9560 A3(
9561 $author$project$Tree$mergeTreesByWithSort,
9562 mrg,
9563 cmp,
9564 $elm$core$List$concat(
9565 A2(
9566 $elm$core$List$cons,
9567 cs,
9568 A2($elm$core$List$map, $author$project$Tree$getChildren, ns))))));
9569 } else {
9570 var a = x.a.a;
9571 return $author$project$Tree$Leaf(a);
9573 };
9574 return A2(
9575 $elm$core$List$sortWith,
9576 cmp,
9577 A2(
9578 $elm$core$List$map,
9579 f,
9580 A2($elm_community$list_extra$List$Extra$gatherEqualsBy, mrg, ts)));
9581 });
9582var $author$project$Tree$mergeTreesWithSort = $author$project$Tree$mergeTreesByWithSort($author$project$Tree$getLabel);
9583var $author$project$Tree$pathToTree = F2(
9584 function (a, v) {
9585 if (a.b) {
9586 var l = a.a;
9587 var ls = a.b;
9588 return A2(
9589 $author$project$Tree$Node,
9590 l,
9591 _List_fromArray(
9593 A2($author$project$Tree$pathToTree, ls, v)
9594 ]));
9595 } else {
9596 return $author$project$Tree$Leaf(v);
9598 });
9599var $author$project$Html$Overrides$mkTree = F2(
9600 function (ids, overridesData) {
9601 return A2(
9602 $author$project$Tree$mergeTreesWithSort,
9603 $author$project$Html$Overrides$compareTree(overridesData),
9604 A2(
9605 $elm$core$List$map,
9606 function (_v0) {
9607 var n = _v0.a;
9608 var id = _v0.b;
9609 return A2(
9610 $author$project$Tree$pathToTree,
9611 A2($elm$core$String$split, '.', n),
9612 id);
9613 },
9614 $elm$core$Dict$toList(ids)));
9615 });
9616var $author$project$Html$Overrides$DefaultOverride = function (a) {
9617 return {$: 'DefaultOverride', a: a};
9619var $author$project$Html$Overrides$NonOverrideWithDefault = function (a) {
9620 return {$: 'NonOverrideWithDefault', a: a};
9622var $author$project$Html$Overrides$mkWrappedOverride = F2(
9623 function (defaults, edits) {
9624 return A6(
9625 $elm$core$Dict$merge,
9626 F3(
9627 function (id, d, res) {
9628 return A3(
9629 $elm$core$Dict$insert,
9630 id,
9631 $author$project$Html$Overrides$DefaultOverride(d),
9632 res);
9633 }),
9634 F4(
9635 function (id, _v0, e, res) {
9636 return A3(
9637 $elm$core$Dict$insert,
9638 id,
9639 $author$project$Html$Overrides$NonOverrideWithDefault(e),
9640 res);
9641 }),
9642 F3(
9643 function (id, e, res) {
9644 return A3(
9645 $elm$core$Dict$insert,
9646 id,
9647 $author$project$Html$Overrides$NonOverrideWithDefault(e),
9648 res);
9649 }),
9650 defaults,
9651 edits,
9652 $elm$core$Dict$empty);
9653 });
9654var $author$project$Html$Overrides$init = F5(
9655 function (defaults, edits, keys, mode, name) {
9656 var editNameDict = $author$project$Html$Overrides$mkEditsNameDict(edits);
9657 var defaultNameDict = $author$project$Html$Overrides$mkDefaultNameDict(defaults);
9658 var ids = A2($author$project$Html$Overrides$mkIds, defaultNameDict, editNameDict);
9659 var defaultsDict = A2($author$project$Html$Overrides$mkDefaultsDict, ids, defaultNameDict);
9660 var overridesDict = A2(
9661 $author$project$Html$Overrides$mkOverrideDataList,
9662 defaultsDict,
9663 A2($author$project$Html$Overrides$mkEditsDict, ids, editNameDict));
9664 var treeData = A2($author$project$Html$Overrides$mkWrappedOverride, defaultsDict, overridesDict);
9665 return {
9666 autocomplete: $elm$core$Maybe$Nothing,
9667 defaultOverrides: defaultsDict,
9668 editedOverrides: overridesDict,
9669 keys: keys,
9670 mode: mode,
9671 name: name,
9672 nextId: $elm$core$Dict$size(defaultsDict) + $elm$core$Dict$size(overridesDict),
9673 openedNames: $author$project$Html$Overrides$mkOpenedPaths(treeData),
9674 treeSchema: A2($author$project$Html$Overrides$mkTree, ids, treeData)
9675 };
9676 });
9677var $author$project$Page$Sidebar$CreateUpdate$DeploymentFullInfoResponse = function (a) {
9678 return {$: 'DeploymentFullInfoResponse', a: a};
9680var $author$project$Page$Sidebar$CreateUpdate$reqDeployment = F2(
9681 function (deploymentName, cfg) {
9682 return A4(
9683 $author$project$Api$get,
9684 cfg,
9685 $author$project$Api$Endpoint$deploymentFullInfo(deploymentName),
9686 $author$project$Types$Deployment$deploymentDecoder,
9687 A2($elm$core$Basics$composeR, $krisajenkins$remotedata$RemoteData$fromResult, $author$project$Page$Sidebar$CreateUpdate$DeploymentFullInfoResponse));
9688 });
9689var $author$project$Page$Sidebar$CreateUpdate$initUpdateReq = F2(
9690 function (config, deploymentName) {
9691 return A2($author$project$Page$Sidebar$CreateUpdate$reqDeployment, deploymentName, config);
9692 });
9693var $elm$core$List$member = F2(
9694 function (x, xs) {
9695 return A2(
9696 $elm$core$List$any,
9697 function (a) {
9698 return _Utils_eq(a, x);
9699 },
9700 xs);
9701 });
9702var $author$project$Types$Deployment$isDeploymentArchived = function (d) {
9703 var _v0 = d.status;
9704 if (_v0.$ === 'DeploymentPending') {
9705 return false;
9706 } else {
9707 var s = _v0.a;
9708 return A2(
9709 $elm$core$List$member,
9710 s,
9711 _List_fromArray(
9712 [$author$project$Types$Deployment$ArchivePending, $author$project$Types$Deployment$Archived]));
9715var $krisajenkins$remotedata$RemoteData$map = F2(
9716 function (f, data) {
9717 switch (data.$) {
9718 case 'Success':
9719 var value = data.a;
9720 return $krisajenkins$remotedata$RemoteData$Success(
9721 f(value));
9722 case 'Loading':
9723 return $krisajenkins$remotedata$RemoteData$Loading;
9724 case 'NotAsked':
9725 return $krisajenkins$remotedata$RemoteData$NotAsked;
9726 default:
9727 var error = data.a;
9728 return $krisajenkins$remotedata$RemoteData$Failure(error);
9730 });
9731var $krisajenkins$remotedata$RemoteData$andMap = F2(
9732 function (wrappedValue, wrappedFunction) {
9733 var _v0 = _Utils_Tuple2(wrappedFunction, wrappedValue);
9734 _v0$2:
9735 while (true) {
9736 _v0$3:
9737 while (true) {
9738 _v0$4:
9739 while (true) {
9740 _v0$5:
9741 while (true) {
9742 switch (_v0.a.$) {
9743 case 'Success':
9744 switch (_v0.b.$) {
9745 case 'Success':
9746 var f = _v0.a.a;
9747 var value = _v0.b.a;
9748 return $krisajenkins$remotedata$RemoteData$Success(
9749 f(value));
9750 case 'Failure':
9751 break _v0$2;
9752 case 'Loading':
9753 break _v0$4;
9754 default:
9755 var _v4 = _v0.b;
9756 return $krisajenkins$remotedata$RemoteData$NotAsked;
9758 case 'Failure':
9759 var error = _v0.a.a;
9760 return $krisajenkins$remotedata$RemoteData$Failure(error);
9761 case 'Loading':
9762 switch (_v0.b.$) {
9763 case 'Failure':
9764 break _v0$2;
9765 case 'Loading':
9766 break _v0$3;
9767 case 'NotAsked':
9768 break _v0$3;
9769 default:
9770 break _v0$3;
9772 default:
9773 switch (_v0.b.$) {
9774 case 'Failure':
9775 break _v0$2;
9776 case 'Loading':
9777 break _v0$4;
9778 case 'NotAsked':
9779 break _v0$5;
9780 default:
9781 break _v0$5;
9785 var _v3 = _v0.a;
9786 return $krisajenkins$remotedata$RemoteData$NotAsked;
9788 var _v2 = _v0.b;
9789 return $krisajenkins$remotedata$RemoteData$Loading;
9791 var _v1 = _v0.a;
9792 return $krisajenkins$remotedata$RemoteData$Loading;
9794 var error = _v0.b.a;
9795 return $krisajenkins$remotedata$RemoteData$Failure(error);
9796 });
9797var $krisajenkins$remotedata$RemoteData$map2 = F3(
9798 function (f, a, b) {
9799 return A2(
9800 $krisajenkins$remotedata$RemoteData$andMap,
9801 b,
9802 A2($krisajenkins$remotedata$RemoteData$map, f, a));
9803 });
9804var $jinjor$elm_debounce$Debounce$Flush = function (a) {
9805 return {$: 'Flush', a: a};
9807var $jinjor$elm_debounce$Debounce$SendIfLengthNotChangedFrom = function (a) {
9808 return {$: 'SendIfLengthNotChangedFrom', a: a};
9810var $elm$core$Process$sleep = _Process_sleep;
9811var $jinjor$elm_debounce$Debounce$delayCmd = F2(
9812 function (delay, msg) {
9813 return A2(
9814 $elm$core$Task$perform,
9815 function (_v0) {
9816 return msg;
9817 },
9818 $elm$core$Process$sleep(delay));
9819 });
9820var $jinjor$elm_debounce$Debounce$length = function (_v0) {
9821 var input = _v0.a.input;
9822 return $elm$core$List$length(input);
9824var $jinjor$elm_debounce$Debounce$push = F3(
9825 function (config, a, _v0) {
9826 var d = _v0.a;
9827 var newDebounce = $jinjor$elm_debounce$Debounce$Debounce(
9828 _Utils_update(
9829 d,
9831 input: A2($elm$core$List$cons, a, d.input)
9832 }));
9833 var selfCmd = function () {
9834 var _v1 = config.strategy;
9835 switch (_v1.$) {
9836 case 'Manual':
9837 var offset = _v1.a;
9838 return d.locked ? $elm$core$Platform$Cmd$none : A2(
9839 $jinjor$elm_debounce$Debounce$delayCmd,
9840 offset,
9841 $jinjor$elm_debounce$Debounce$Flush($elm$core$Maybe$Nothing));
9842 case 'Soon':
9843 var offset = _v1.a;
9844 var delay = _v1.b;
9845 return d.locked ? $elm$core$Platform$Cmd$none : A2(
9846 $jinjor$elm_debounce$Debounce$delayCmd,
9847 offset,
9848 $jinjor$elm_debounce$Debounce$Flush(
9849 $elm$core$Maybe$Just(delay)));
9850 default:
9851 var delay = _v1.a;
9852 return A2(
9853 $jinjor$elm_debounce$Debounce$delayCmd,
9854 delay,
9855 $jinjor$elm_debounce$Debounce$SendIfLengthNotChangedFrom(
9856 $jinjor$elm_debounce$Debounce$length(newDebounce)));
9858 }();
9859 return _Utils_Tuple2(
9860 newDebounce,
9861 A2($elm$core$Platform$Cmd$map, config.transform, selfCmd));
9862 });
9863var $author$project$Page$Deployment$AppOverridesResponse = function (a) {
9864 return {$: 'AppOverridesResponse', a: a};
9866var $author$project$Api$Endpoint$appOverrides = function (appUrl) {
9867 return A3(
9868 $author$project$Api$Endpoint$url,
9869 $elm$core$Maybe$Just(appUrl),
9870 _List_fromArray(
9871 ['api', 'v1', 'application_overrides']),
9872 _List_Nil);
9874var $elm$json$Json$Encode$list = F2(
9875 function (func, entries) {
9876 return _Json_wrap(
9877 A3(
9878 $elm$core$List$foldl,
9879 _Json_addEntry(func),
9880 _Json_emptyArray(_Utils_Tuple0),
9881 entries));
9882 });
9883var $elm$json$Json$Encode$string = _Json_wrap;
9884var $author$project$Types$OverrideWithDefault$defaultOverrideEncoder = function (defaultOverride) {
9885 return A2(
9886 $elm$json$Json$Encode$list,
9887 $elm$json$Json$Encode$string,
9888 _List_fromArray(
9890 $author$project$Types$Override$unOverrideName(defaultOverride.name),
9891 defaultOverride.value
9892 ]));
9894var $author$project$Types$OverrideWithDefault$OverrideWithDefault = F2(
9895 function (name, value) {
9896 return {name: name, value: value};
9897 });
9898var $author$project$Types$OverrideWithDefault$defaultOverridesDecode = function () {
9899 var f = function (x) {
9900 if ((x.b && x.b.b) && (!x.b.b.b)) {
9901 var p = x.a;
9902 var _v1 = x.b;
9903 var v = _v1.a;
9904 return $elm$json$Json$Decode$succeed(
9905 A2(
9906 $author$project$Types$OverrideWithDefault$OverrideWithDefault,
9907 $author$project$Types$Override$OverrideName(p),
9908 v));
9909 } else {
9910 return $elm$json$Json$Decode$fail('not an override');
9912 };
9913 return $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$resolve(
9914 A2(
9915 $elm$json$Json$Decode$map,
9916 f,
9917 $elm$json$Json$Decode$list($elm$json$Json$Decode$string)));
9918}();
9919var $elm$http$Http$jsonBody = function (value) {
9920 return A2(
9921 _Http_pair,
9922 'application/json',
9923 A2($elm$json$Json$Encode$encode, 0, value));
9925var $author$project$Api$post = F5(
9926 function (config, url, body, decoder, msg) {
9927 return $author$project$Api$Endpoint$request(
9929 body: body,
9930 expect: A2($author$project$Api$expectJson, msg, decoder),
9931 headers: _List_fromArray(
9933 $author$project$Api$authHeader(config.appAuth)
9934 ]),
9935 method: 'POST',
9936 timeout: $elm$core$Maybe$Nothing,
9937 tracker: $elm$core$Maybe$Nothing,
9938 url: url(config.appUrl)
9939 });
9940 });
9941var $author$project$Page$Deployment$reqAppOverrides = F2(
9942 function (config, body) {
9943 return A5(
9944 $author$project$Api$post,
9945 config,
9946 $author$project$Api$Endpoint$appOverrides,
9947 $elm$http$Http$jsonBody(
9948 A2($elm$json$Json$Encode$list, $author$project$Types$OverrideWithDefault$defaultOverrideEncoder, body)),
9949 $elm$json$Json$Decode$list($author$project$Types$OverrideWithDefault$defaultOverridesDecode),
9950 A2($elm$core$Basics$composeR, $krisajenkins$remotedata$RemoteData$fromResult, $author$project$Page$Deployment$AppOverridesResponse));
9951 });
9952var $author$project$Page$Deployment$DeleteDeploymentResp = function (a) {
9953 return {$: 'DeleteDeploymentResp', a: a};
9955var $author$project$Api$delete = F5(
9956 function (config, url, body, decoder, msg) {
9957 return $author$project$Api$Endpoint$request(
9959 body: body,
9960 expect: A2($author$project$Api$expectJson, msg, decoder),
9961 headers: _List_fromArray(
9963 $author$project$Api$authHeader(config.appAuth)
9964 ]),
9965 method: 'DELETE',
9966 timeout: $elm$core$Maybe$Nothing,
9967 tracker: $elm$core$Maybe$Nothing,
9968 url: url(config.appUrl)
9969 });
9970 });
9971var $author$project$Api$Endpoint$deleteDeployment = F2(
9972 function (deploymentName, appUrl) {
9973 return A3(
9974 $author$project$Api$Endpoint$url,
9975 $elm$core$Maybe$Just(appUrl),
9976 _List_fromArray(
9978 'api',
9979 'v1',
9980 'deployments',
9981 $author$project$Types$Deployment$unDeploymentName(deploymentName)
9982 ]),
9983 _List_Nil);
9984 });
9985var $author$project$Page$Deployment$reqDeleteDeployment = F2(
9986 function (config, deploymentName) {
9987 return A5(
9988 $author$project$Api$delete,
9989 config,
9990 $author$project$Api$Endpoint$deleteDeployment(deploymentName),
9991 $elm$http$Http$emptyBody,
9992 $elm$json$Json$Decode$string,
9993 A2($elm$core$Basics$composeR, $krisajenkins$remotedata$RemoteData$fromResult, $author$project$Page$Deployment$DeleteDeploymentResp));
9994 });
9995var $author$project$Page$Deployment$DeploymentOverridesResponse = function (a) {
9996 return {$: 'DeploymentOverridesResponse', a: a};
9998var $author$project$Api$Endpoint$deploymentOverrides = function (appUrl) {
9999 return A3(
10000 $author$project$Api$Endpoint$url,
10001 $elm$core$Maybe$Just(appUrl),
10002 _List_fromArray(
10003 ['api', 'v1', 'deployment_overrides']),
10004 _List_Nil);
10006var $author$project$Page$Deployment$reqDeploymentOverrides = function (config) {
10007 return A4(
10008 $author$project$Api$get,
10009 config,
10010 $author$project$Api$Endpoint$deploymentOverrides,
10011 $elm$json$Json$Decode$list($author$project$Types$OverrideWithDefault$defaultOverridesDecode),
10012 A2($elm$core$Basics$composeR, $krisajenkins$remotedata$RemoteData$fromResult, $author$project$Page$Deployment$DeploymentOverridesResponse));
10014var $author$project$Page$Deployment$RestoreDeploymentResp = function (a) {
10015 return {$: 'RestoreDeploymentResp', a: a};
10017var $author$project$Api$patch = F4(
10018 function (config, url, decoder, msg) {
10019 return $author$project$Api$Endpoint$request(
10021 body: $elm$http$Http$emptyBody,
10022 expect: A2($author$project$Api$expectJson, msg, decoder),
10023 headers: _List_fromArray(
10025 $author$project$Api$authHeader(config.appAuth)
10026 ]),
10027 method: 'PATCH',
10028 timeout: $elm$core$Maybe$Nothing,
10029 tracker: $elm$core$Maybe$Nothing,
10030 url: url(config.appUrl)
10031 });
10032 });
10033var $author$project$Api$Endpoint$restoreDeployment = F2(
10034 function (deploymentName, appUrl) {
10035 return A3(
10036 $author$project$Api$Endpoint$url,
10037 $elm$core$Maybe$Just(appUrl),
10038 _List_fromArray(
10040 'api',
10041 'v1',
10042 'deployments',
10043 $author$project$Types$Deployment$unDeploymentName(deploymentName),
10044 'restore'
10045 ]),
10046 _List_Nil);
10047 });
10048var $author$project$Page$Deployment$reqRestoreDeployment = F2(
10049 function (config, deploymentName) {
10050 return A4(
10051 $author$project$Api$patch,
10052 config,
10053 $author$project$Api$Endpoint$restoreDeployment(deploymentName),
10054 $elm$json$Json$Decode$string,
10055 A2($elm$core$Basics$composeR, $krisajenkins$remotedata$RemoteData$fromResult, $author$project$Page$Deployment$RestoreDeploymentResp));
10056 });
10057var $jinjor$elm_debounce$Debounce$takeAll = F3(
10058 function (send, head, tail) {
10059 return _Utils_Tuple2(
10060 _List_Nil,
10061 A2(send, head, tail));
10062 });
10063var $krisajenkins$remotedata$RemoteData$unwrap = F3(
10064 function (_default, _function, remoteData) {
10065 if (remoteData.$ === 'Success') {
10066 var data = remoteData.a;
10067 return _function(data);
10068 } else {
10069 return _default;
10071 });
10072var $jinjor$elm_debounce$Debounce$update = F4(
10073 function (config, send, msg, _v0) {
10074 var d = _v0.a;
10075 switch (msg.$) {
10076 case 'NoOp':
10077 return _Utils_Tuple2(
10078 $jinjor$elm_debounce$Debounce$Debounce(d),
10079 $elm$core$Platform$Cmd$none);
10080 case 'Flush':
10081 var tryAgainAfter = msg.a;
10082 var _v2 = d.input;
10083 if (_v2.b) {
10084 var head = _v2.a;
10085 var tail = _v2.b;
10086 var selfCmd = function () {
10087 if (tryAgainAfter.$ === 'Just') {
10088 var delay = tryAgainAfter.a;
10089 return A2(
10090 $jinjor$elm_debounce$Debounce$delayCmd,
10091 delay,
10092 $jinjor$elm_debounce$Debounce$Flush(
10093 $elm$core$Maybe$Just(delay)));
10094 } else {
10095 return $elm$core$Platform$Cmd$none;
10097 }();
10098 var _v3 = A2(send, head, tail);
10099 var input = _v3.a;
10100 var sendCmd = _v3.b;
10101 return _Utils_Tuple2(
10102 $jinjor$elm_debounce$Debounce$Debounce(
10103 _Utils_update(
10105 {input: input, locked: true})),
10106 $elm$core$Platform$Cmd$batch(
10107 _List_fromArray(
10109 sendCmd,
10110 A2($elm$core$Platform$Cmd$map, config.transform, selfCmd)
10111 ])));
10112 } else {
10113 return _Utils_Tuple2(
10114 $jinjor$elm_debounce$Debounce$Debounce(
10115 _Utils_update(
10117 {locked: false})),
10118 $elm$core$Platform$Cmd$none);
10120 default:
10121 var lastInputLength = msg.a;
10122 var _v5 = _Utils_Tuple2(
10123 _Utils_cmp(
10124 $elm$core$List$length(d.input),
10125 lastInputLength) < 1,
10126 d.input);
10127 if (_v5.a && _v5.b.b) {
10128 var _v6 = _v5.b;
10129 var head = _v6.a;
10130 var tail = _v6.b;
10131 var _v7 = A2(send, head, tail);
10132 var input = _v7.a;
10133 var cmd = _v7.b;
10134 return _Utils_Tuple2(
10135 $jinjor$elm_debounce$Debounce$Debounce(
10136 _Utils_update(
10138 {input: input})),
10139 cmd);
10140 } else {
10141 return _Utils_Tuple2(
10142 $jinjor$elm_debounce$Debounce$Debounce(d),
10143 $elm$core$Platform$Cmd$none);
10146 });
10147var $author$project$Html$Overrides$deleteOverride = F2(
10148 function (ix, model) {
10149 var _delete = function (mOverride) {
10150 var _v0 = _Utils_Tuple2(
10151 mOverride,
10152 A2($elm$core$Dict$get, ix, model.defaultOverrides));
10153 _v0$2:
10154 while (true) {
10155 if (_v0.a.$ === 'Nothing') {
10156 if (_v0.b.$ === 'Just') {
10157 var _v1 = _v0.a;
10158 var _default = _v0.b.a;
10159 return $elm$core$Maybe$Just(
10160 {name: _default.name, status: $author$project$Html$Overrides$Deleted, value: _default.value});
10161 } else {
10162 break _v0$2;
10164 } else {
10165 if (_v0.b.$ === 'Nothing') {
10166 var override = _v0.a.a;
10167 var _v2 = _v0.b;
10168 return $elm$core$Maybe$Just(
10169 _Utils_update(
10170 override,
10171 {status: $author$project$Html$Overrides$Deleted}));
10172 } else {
10173 break _v0$2;
10177 return $elm$core$Maybe$Nothing;
10179 return _Utils_update(
10180 model,
10182 editedOverrides: A3($elm$core$Dict$update, ix, _delete, model.editedOverrides)
10183 });
10184 });
10185var $author$project$Html$Overrides$editOverrideName = F3(
10186 function (ix, name, model) {
10187 var editName = function (mOverride) {
10188 var _v0 = _Utils_Tuple2(
10189 mOverride,
10190 A2($elm$core$Dict$get, ix, model.defaultOverrides));
10191 if (_v0.a.$ === 'Just') {
10192 if (_v0.b.$ === 'Just') {
10193 var override = _v0.a.a;
10194 var _default = _v0.b.a;
10195 return (_Utils_eq(
10196 $author$project$Types$Override$OverrideName(name),
10197 _default.name) && _Utils_eq(override.value, _default.value)) ? $elm$core$Maybe$Nothing : $elm$core$Maybe$Just(
10198 _Utils_update(
10199 override,
10201 name: $author$project$Types$Override$OverrideName(name),
10202 status: $author$project$Html$Overrides$Edited
10203 }));
10204 } else {
10205 var override = _v0.a.a;
10206 var _v1 = _v0.b;
10207 return $elm$core$Maybe$Just(
10208 _Utils_update(
10209 override,
10211 name: $author$project$Types$Override$OverrideName(name),
10212 status: $author$project$Html$Overrides$New
10213 }));
10215 } else {
10216 if (_v0.b.$ === 'Just') {
10217 var _v2 = _v0.a;
10218 var _default = _v0.b.a;
10219 return _Utils_eq(
10220 $author$project$Types$Override$OverrideName(name),
10221 _default.name) ? $elm$core$Maybe$Nothing : $elm$core$Maybe$Just(
10223 name: $author$project$Types$Override$OverrideName(name),
10224 status: $author$project$Html$Overrides$Edited,
10225 value: _default.value
10226 });
10227 } else {
10228 return $elm$core$Maybe$Nothing;
10232 return _Utils_update(
10233 model,
10235 editedOverrides: A3($elm$core$Dict$update, ix, editName, model.editedOverrides)
10236 });
10237 });
10238var $author$project$Html$Overrides$editOverrideValue = F3(
10239 function (ix, value, model) {
10240 var editName = function (mOverride) {
10241 var _v0 = _Utils_Tuple2(
10242 mOverride,
10243 A2($elm$core$Dict$get, ix, model.defaultOverrides));
10244 if (_v0.a.$ === 'Just') {
10245 if (_v0.b.$ === 'Just') {
10246 var override = _v0.a.a;
10247 var _default = _v0.b.a;
10248 return (_Utils_eq(value, _default.value) && _Utils_eq(override.name, _default.name)) ? $elm$core$Maybe$Nothing : $elm$core$Maybe$Just(
10249 _Utils_update(
10250 override,
10251 {status: $author$project$Html$Overrides$Edited, value: value}));
10252 } else {
10253 var override = _v0.a.a;
10254 var _v1 = _v0.b;
10255 return $elm$core$Maybe$Just(
10256 _Utils_update(
10257 override,
10258 {status: $author$project$Html$Overrides$New, value: value}));
10260 } else {
10261 if (_v0.b.$ === 'Just') {
10262 var _v2 = _v0.a;
10263 var _default = _v0.b.a;
10264 return _Utils_eq(value, _default.value) ? $elm$core$Maybe$Nothing : $elm$core$Maybe$Just(
10265 {name: _default.name, status: $author$project$Html$Overrides$Edited, value: value});
10266 } else {
10267 return $elm$core$Maybe$Nothing;
10271 return _Utils_update(
10272 model,
10274 editedOverrides: A3($elm$core$Dict$update, ix, editName, model.editedOverrides)
10275 });
10276 });
10277var $author$project$Html$Overrides$newOverride = function (model) {
10278 return _Utils_update(
10279 model,
10281 editedOverrides: A3(
10282 $elm$core$Dict$insert,
10283 model.nextId,
10284 A3(
10285 $author$project$Html$Overrides$OverrideData,
10286 $author$project$Types$Override$OverrideName(''),
10287 '',
10288 $author$project$Html$Overrides$New),
10289 model.editedOverrides),
10290 nextId: model.nextId + 1
10291 });
10293var $elm$core$Set$remove = F2(
10294 function (key, _v0) {
10295 var dict = _v0.a;
10296 return $elm$core$Set$Set_elm_builtin(
10297 A2($elm$core$Dict$remove, key, dict));
10298 });
10299var $author$project$Html$Overrides$restoreOverride = F2(
10300 function (ix, model) {
10301 var restore = function (mOverride) {
10302 var _v0 = _Utils_Tuple2(
10303 mOverride,
10304 A2($elm$core$Dict$get, ix, model.defaultOverrides));
10305 if ((_v0.a.$ === 'Just') && (_v0.b.$ === 'Nothing')) {
10306 var override = _v0.a.a;
10307 var _v1 = _v0.b;
10308 return $elm$core$Maybe$Just(
10309 _Utils_update(
10310 override,
10311 {status: $author$project$Html$Overrides$New}));
10312 } else {
10313 return $elm$core$Maybe$Nothing;
10316 return _Utils_update(
10317 model,
10319 editedOverrides: A3($elm$core$Dict$update, ix, restore, model.editedOverrides)
10320 });
10321 });
10322var $author$project$Html$Overrides$update = F2(
10323 function (msg, model) {
10324 switch (msg.$) {
10325 case 'AddOverride':
10326 return _Utils_Tuple2(
10327 $author$project$Html$Overrides$newOverride(model),
10328 $elm$core$Platform$Cmd$none);
10329 case 'DeleteOverride':
10330 var ix = msg.a;
10331 return _Utils_Tuple2(
10332 A2($author$project$Html$Overrides$deleteOverride, ix, model),
10333 $elm$core$Platform$Cmd$none);
10334 case 'RestoreOverride':
10335 var ix = msg.a;
10336 return _Utils_Tuple2(
10337 A2($author$project$Html$Overrides$restoreOverride, ix, model),
10338 $elm$core$Platform$Cmd$none);
10339 case 'EditOverrideName':
10340 var ix = msg.a;
10341 var name = msg.b;
10342 return _Utils_Tuple2(
10343 A3($author$project$Html$Overrides$editOverrideName, ix, name, model),
10344 $elm$core$Platform$Cmd$none);
10345 case 'EditOverrideValue':
10346 var ix = msg.a;
10347 var value = msg.b;
10348 return _Utils_Tuple2(
10349 A3($author$project$Html$Overrides$editOverrideValue, ix, value, model),
10350 $elm$core$Platform$Cmd$none);
10351 case 'OpenName':
10352 var name = msg.a;
10353 return _Utils_Tuple2(
10354 _Utils_update(
10355 model,
10357 openedNames: A2($elm$core$Set$insert, name, model.openedNames)
10358 }),
10359 $elm$core$Platform$Cmd$none);
10360 case 'CloseName':
10361 var name = msg.a;
10362 return _Utils_Tuple2(
10363 _Utils_update(
10364 model,
10366 openedNames: A2($elm$core$Set$remove, name, model.openedNames)
10367 }),
10368 $elm$core$Platform$Cmd$none);
10369 case 'ShowAutocomplete':
10370 var ix = msg.a;
10371 return _Utils_Tuple2(
10372 _Utils_update(
10373 model,
10375 autocomplete: $elm$core$Maybe$Just(ix)
10376 }),
10377 $elm$core$Platform$Cmd$none);
10378 default:
10379 return _Utils_Tuple2(
10380 _Utils_update(
10381 model,
10382 {autocomplete: $elm$core$Maybe$Nothing}),
10383 $elm$core$Platform$Cmd$none);
10385 });
10386var $turboMaCk$any_dict$Dict$Any$insert = F3(
10387 function (k, v, _v0) {
10388 var inner = _v0.a;
10389 return $turboMaCk$any_dict$Dict$Any$AnyDict(
10390 _Utils_update(
10391 inner,
10393 dict: A3(
10394 $elm$core$Dict$insert,
10395 inner.toKey(k),
10396 _Utils_Tuple2(k, v),
10397 inner.dict)
10398 }));
10399 });
10400var $turboMaCk$any_set$Set$Any$insert = F2(
10401 function (a, _v0) {
10402 var dict = _v0.a;
10403 return $turboMaCk$any_set$Set$Any$AnySet(
10404 A3($turboMaCk$any_dict$Dict$Any$insert, a, _Utils_Tuple0, dict));
10405 });
10406var $turboMaCk$any_dict$Dict$Any$remove = F2(
10407 function (k, _v0) {
10408 var inner = _v0.a;
10409 return $turboMaCk$any_dict$Dict$Any$AnyDict(
10410 _Utils_update(
10411 inner,
10413 dict: A2(
10414 $elm$core$Dict$remove,
10415 inner.toKey(k),
10416 inner.dict)
10417 }));
10418 });
10419var $turboMaCk$any_set$Set$Any$remove = F2(
10420 function (a, _v0) {
10421 var dict = _v0.a;
10422 return $turboMaCk$any_set$Set$Any$AnySet(
10423 A2($turboMaCk$any_dict$Dict$Any$remove, a, dict));
10424 });
10425var $author$project$Page$Deployment$ActionTable$update = F2(
10426 function (cmd, model) {
10427 switch (cmd.$) {
10428 case 'OpenDeploymentOverrides':
10429 var id = cmd.a;
10430 return _Utils_Tuple2(
10431 _Utils_update(
10432 model,
10434 openedDeployemntOverrides: A2($turboMaCk$any_set$Set$Any$insert, id, model.openedDeployemntOverrides)
10435 }),
10436 $elm$core$Platform$Cmd$none);
10437 case 'CloseDeploymentOverrides':
10438 var id = cmd.a;
10439 return _Utils_Tuple2(
10440 _Utils_update(
10441 model,
10443 openedDeployemntOverrides: A2($turboMaCk$any_set$Set$Any$remove, id, model.openedDeployemntOverrides)
10444 }),
10445 $elm$core$Platform$Cmd$none);
10446 case 'OpenAppOverrides':
10447 var id = cmd.a;
10448 return _Utils_Tuple2(
10449 _Utils_update(
10450 model,
10452 openedAppOverrides: A2($turboMaCk$any_set$Set$Any$insert, id, model.openedAppOverrides)
10453 }),
10454 $elm$core$Platform$Cmd$none);
10455 default:
10456 var id = cmd.a;
10457 return _Utils_Tuple2(
10458 _Utils_update(
10459 model,
10461 openedAppOverrides: A2($turboMaCk$any_set$Set$Any$remove, id, model.openedAppOverrides)
10462 }),
10463 $elm$core$Platform$Cmd$none);
10465 });
10466var $author$project$Page$Sidebar$CreateUpdate$AppOverridesMsg = function (a) {
10467 return {$: 'AppOverridesMsg', a: a};
10469var $author$project$Page$Sidebar$CreateUpdate$DeploymentOverridesMsg = function (a) {
10470 return {$: 'DeploymentOverridesMsg', a: a};
10472var $author$project$Html$Overrides$Write = {$: 'Write'};
10473var $author$project$Html$Overrides$dataChanged = function (msg) {
10474 switch (msg.$) {
10475 case 'DeleteOverride':
10476 return true;
10477 case 'RestoreOverride':
10478 return true;
10479 case 'EditOverrideName':
10480 return true;
10481 case 'EditOverrideValue':
10482 return true;
10483 default:
10484 return false;
10487var $elm$core$Dict$values = function (dict) {
10488 return A3(
10489 $elm$core$Dict$foldr,
10490 F3(
10491 function (key, value, valueList) {
10492 return A2($elm$core$List$cons, value, valueList);
10493 }),
10494 _List_Nil,
10495 dict);
10497var $author$project$Html$Overrides$getEditedOverrides = function (model) {
10498 return A2(
10499 $elm$core$List$map,
10500 function (o) {
10501 var _v0 = o.status;
10502 switch (_v0.$) {
10503 case 'Deleted':
10504 return A2($author$project$Types$Override$Override, o.name, $author$project$Types$Override$ValueDeleted);
10505 case 'New':
10506 return A2(
10507 $author$project$Types$Override$Override,
10508 o.name,
10509 $author$project$Types$Override$ValueAdded(o.value));
10510 default:
10511 return A2(
10512 $author$project$Types$Override$Override,
10513 o.name,
10514 $author$project$Types$Override$ValueAdded(o.value));
10517 $elm$core$Dict$values(model.editedOverrides));
10519var $author$project$Html$Overrides$getFullOverrides = function (model) {
10520 return A6(
10521 $elm$core$Dict$merge,
10522 F3(
10523 function (_v0, e, res) {
10524 var _v1 = e.status;
10525 if (_v1.$ === 'New') {
10526 return A2(
10527 $elm$core$List$cons,
10528 {name: e.name, value: e.value},
10529 res);
10530 } else {
10531 return res;
10533 }),
10534 F4(
10535 function (_v2, e, _v3, res) {
10536 var _v4 = e.status;
10537 if (_v4.$ === 'Edited') {
10538 return A2(
10539 $elm$core$List$cons,
10540 {name: e.name, value: e.value},
10541 res);
10542 } else {
10543 return res;
10545 }),
10546 F3(
10547 function (_v5, d, res) {
10548 return A2($elm$core$List$cons, d, res);
10549 }),
10550 model.editedOverrides,
10551 model.defaultOverrides,
10552 _List_Nil);
10554var $author$project$Page$Sidebar$CreateUpdate$DeploymentOverrideKeysResponse = function (a) {
10555 return {$: 'DeploymentOverrideKeysResponse', a: a};
10557var $author$project$Api$Endpoint$deploymentOverrideKeys = function (appUrl) {
10558 return A3(
10559 $author$project$Api$Endpoint$url,
10560 $elm$core$Maybe$Just(appUrl),
10561 _List_fromArray(
10562 ['api', 'v1', 'deployment_override_keys']),
10563 _List_Nil);
10565var $author$project$Types$Override$overrideNameDecoder = A2($elm$json$Json$Decode$map, $author$project$Types$Override$OverrideName, $elm$json$Json$Decode$string);
10566var $author$project$Page$Sidebar$CreateUpdate$reqDeploymentOverrideKeys = function (config) {
10567 return A4(
10568 $author$project$Api$get,
10569 config,
10570 $author$project$Api$Endpoint$deploymentOverrideKeys,
10571 $elm$json$Json$Decode$list($author$project$Types$Override$overrideNameDecoder),
10572 A2($elm$core$Basics$composeR, $krisajenkins$remotedata$RemoteData$fromResult, $author$project$Page$Sidebar$CreateUpdate$DeploymentOverrideKeysResponse));
10574var $author$project$Page$Sidebar$CreateUpdate$DeploymentOverridesResponse = function (a) {
10575 return {$: 'DeploymentOverridesResponse', a: a};
10577var $author$project$Page$Sidebar$CreateUpdate$reqDeploymentOverrides = function (config) {
10578 return A4(
10579 $author$project$Api$get,
10580 config,
10581 $author$project$Api$Endpoint$deploymentOverrides,
10582 $elm$json$Json$Decode$list($author$project$Types$OverrideWithDefault$defaultOverridesDecode),
10583 A2($elm$core$Basics$composeR, $krisajenkins$remotedata$RemoteData$fromResult, $author$project$Page$Sidebar$CreateUpdate$DeploymentOverridesResponse));
10585var $author$project$Page$Sidebar$CreateUpdate$initCreateReq = function (config) {
10586 return $elm$core$Platform$Cmd$batch(
10587 _List_fromArray(
10589 $author$project$Page$Sidebar$CreateUpdate$reqDeploymentOverrideKeys(config),
10590 $author$project$Page$Sidebar$CreateUpdate$reqDeploymentOverrides(config)
10591 ]));
10593var $author$project$Page$Sidebar$CreateUpdate$AppOverrideKeysResponse = function (a) {
10594 return {$: 'AppOverrideKeysResponse', a: a};
10596var $author$project$Api$Endpoint$appOverrideKeys = function (appUrl) {
10597 return A3(
10598 $author$project$Api$Endpoint$url,
10599 $elm$core$Maybe$Just(appUrl),
10600 _List_fromArray(
10601 ['api', 'v1', 'application_override_keys']),
10602 _List_Nil);
10604var $author$project$Page$Sidebar$CreateUpdate$reqAppOverrideKeys = F2(
10605 function (config, body) {
10606 return A5(
10607 $author$project$Api$post,
10608 config,
10609 $author$project$Api$Endpoint$appOverrideKeys,
10610 $elm$http$Http$jsonBody(
10611 A2($elm$json$Json$Encode$list, $author$project$Types$OverrideWithDefault$defaultOverrideEncoder, body)),
10612 $elm$json$Json$Decode$list($author$project$Types$Override$overrideNameDecoder),
10613 A2($elm$core$Basics$composeR, $krisajenkins$remotedata$RemoteData$fromResult, $author$project$Page$Sidebar$CreateUpdate$AppOverrideKeysResponse));
10614 });
10615var $author$project$Page$Sidebar$CreateUpdate$AppOverridesResponse = function (a) {
10616 return {$: 'AppOverridesResponse', a: a};
10618var $author$project$Page$Sidebar$CreateUpdate$reqAppOverrides = F2(
10619 function (config, body) {
10620 return A5(
10621 $author$project$Api$post,
10622 config,
10623 $author$project$Api$Endpoint$appOverrides,
10624 $elm$http$Http$jsonBody(
10625 A2($elm$json$Json$Encode$list, $author$project$Types$OverrideWithDefault$defaultOverrideEncoder, body)),
10626 $elm$json$Json$Decode$list($author$project$Types$OverrideWithDefault$defaultOverridesDecode),
10627 A2($elm$core$Basics$composeR, $krisajenkins$remotedata$RemoteData$fromResult, $author$project$Page$Sidebar$CreateUpdate$AppOverridesResponse));
10628 });
10629var $author$project$Page$Sidebar$CreateUpdate$SaveDeploymentResponse = function (a) {
10630 return {$: 'SaveDeploymentResponse', a: a};
10632var $elm$json$Json$Encode$object = function (pairs) {
10633 return _Json_wrap(
10634 A3(
10635 $elm$core$List$foldl,
10636 F2(
10637 function (_v0, obj) {
10638 var k = _v0.a;
10639 var v = _v0.b;
10640 return A3(_Json_addField, k, v, obj);
10641 }),
10642 _Json_emptyObject(_Utils_Tuple0),
10643 pairs));
10645var $author$project$Types$Override$overrideValueEncode = function (value) {
10646 if (value.$ === 'ValueAdded') {
10647 var v = value.a;
10648 return $elm$json$Json$Encode$object(
10649 _List_fromArray(
10651 _Utils_Tuple2(
10652 'tag',
10653 $elm$json$Json$Encode$string('ValueAdded')),
10654 _Utils_Tuple2(
10655 'contents',
10656 $elm$json$Json$Encode$string(v))
10657 ]));
10658 } else {
10659 return $elm$json$Json$Encode$object(
10660 _List_fromArray(
10662 _Utils_Tuple2(
10663 'tag',
10664 $elm$json$Json$Encode$string('ValueDeleted'))
10665 ]));
10668var $author$project$Types$Override$overrideHelperEncode = function (helper) {
10669 if (helper.$ === 'OverrideName_') {
10670 var name = helper.a;
10671 return $elm$json$Json$Encode$string(name);
10672 } else {
10673 var val = helper.a;
10674 return $author$project$Types$Override$overrideValueEncode(val);
10677var $author$project$Types$Override$overrideToHelper = function (override) {
10678 return _List_fromArray(
10680 $author$project$Types$Override$OverrideName_(
10681 $author$project$Types$Override$unOverrideName(override.name)),
10682 $author$project$Types$Override$OverrideValue_(override.value)
10683 ]);
10685var $author$project$Types$Override$overrideEncode = function (override) {
10686 var helper = $author$project$Types$Override$overrideToHelper(override);
10687 return A2($elm$json$Json$Encode$list, $author$project$Types$Override$overrideHelperEncode, helper);
10689var $author$project$Types$Deployment$infoEncode = function (info) {
10690 return $elm$json$Json$Encode$object(
10691 _List_fromArray(
10693 _Utils_Tuple2(
10694 'name',
10695 $elm$json$Json$Encode$string(
10696 $author$project$Types$Deployment$unDeploymentName(info.name))),
10697 _Utils_Tuple2(
10698 'app_overrides',
10699 A2($elm$json$Json$Encode$list, $author$project$Types$Override$overrideEncode, info.appOverrides)),
10700 _Utils_Tuple2(
10701 'deployment_overrides',
10702 A2($elm$json$Json$Encode$list, $author$project$Types$Override$overrideEncode, info.deploymentOverrides))
10703 ]));
10705var $author$project$Api$Endpoint$saveDeployment = function (appUrl) {
10706 return A3(
10707 $author$project$Api$Endpoint$url,
10708 $elm$core$Maybe$Just(appUrl),
10709 _List_fromArray(
10710 ['api', 'v1', 'deployments']),
10711 _List_Nil);
10713var $author$project$Page$Sidebar$CreateUpdate$reqCreateDeployment = F2(
10714 function (config, body) {
10715 return A5(
10716 $author$project$Api$post,
10717 config,
10718 $author$project$Api$Endpoint$saveDeployment,
10719 $elm$http$Http$jsonBody(
10720 $author$project$Types$Deployment$infoEncode(body)),
10721 $elm$json$Json$Decode$succeed(_Utils_Tuple0),
10722 A2($elm$core$Basics$composeR, $krisajenkins$remotedata$RemoteData$fromResult, $author$project$Page$Sidebar$CreateUpdate$SaveDeploymentResponse));
10723 });
10724var $author$project$Api$put = F5(
10725 function (config, url, body, decoder, msg) {
10726 return $author$project$Api$Endpoint$request(
10728 body: body,
10729 expect: A2($author$project$Api$expectJson, msg, decoder),
10730 headers: _List_fromArray(
10732 $author$project$Api$authHeader(config.appAuth)
10733 ]),
10734 method: 'PUT',
10735 timeout: $elm$core$Maybe$Nothing,
10736 tracker: $elm$core$Maybe$Nothing,
10737 url: url(config.appUrl)
10738 });
10739 });
10740var $author$project$Api$Endpoint$updateDeployment = F2(
10741 function (deploymentName, appUrl) {
10742 return A3(
10743 $author$project$Api$Endpoint$url,
10744 $elm$core$Maybe$Just(appUrl),
10745 _List_fromArray(
10747 'api',
10748 'v1',
10749 'deployments',
10750 $author$project$Types$Deployment$unDeploymentName(deploymentName)
10751 ]),
10752 _List_Nil);
10753 });
10754var $author$project$Types$Deployment$updateInfoEncode = function (info) {
10755 return $elm$json$Json$Encode$object(
10756 _List_fromArray(
10758 _Utils_Tuple2(
10759 'app_overrides',
10760 A2($elm$json$Json$Encode$list, $author$project$Types$Override$overrideEncode, info.appOverrides)),
10761 _Utils_Tuple2(
10762 'deployment_overrides',
10763 A2($elm$json$Json$Encode$list, $author$project$Types$Override$overrideEncode, info.deploymentOverrides))
10764 ]));
10766var $author$project$Page$Sidebar$CreateUpdate$reqUpdateDeployment = F3(
10767 function (deploymentName, config, body) {
10768 return A5(
10769 $author$project$Api$put,
10770 config,
10771 $author$project$Api$Endpoint$updateDeployment(deploymentName),
10772 $elm$http$Http$jsonBody(
10773 $author$project$Types$Deployment$updateInfoEncode(body)),
10774 $elm$json$Json$Decode$succeed(_Utils_Tuple0),
10775 A2($elm$core$Basics$composeR, $krisajenkins$remotedata$RemoteData$fromResult, $author$project$Page$Sidebar$CreateUpdate$SaveDeploymentResponse));
10776 });
10777var $author$project$Page$Sidebar$CreateUpdate$update = F2(
10778 function (cmd, model) {
10779 var updateWith = F3(
10780 function (toModel, toMsg, _v10) {
10781 var subModel = _v10.a;
10782 var subCmd = _v10.b;
10783 return _Utils_Tuple2(
10784 toModel(subModel),
10785 A2($elm$core$Platform$Cmd$map, toMsg, subCmd));
10786 });
10787 var initOverrides = F4(
10788 function (name, edits, defaults, keys) {
10789 return A5($author$project$Html$Overrides$init, defaults, edits, keys, $author$project$Html$Overrides$Write, name);
10790 });
10791 var _v0 = function () {
10792 var _v1 = model.deployment;
10793 if (_v1.$ === 'Success') {
10794 var deployment = _v1.a;
10795 return _Utils_Tuple2(deployment.deployment.appOverrides, deployment.deployment.deploymentOverrides);
10796 } else {
10797 return _Utils_Tuple2(_List_Nil, _List_Nil);
10799 }();
10800 var appEdits = _v0.a;
10801 var deployEdits = _v0.b;
10802 switch (cmd.$) {
10803 case 'DeploymentOverrideKeysResponse':
10804 var keys = cmd.a;
10805 return _Utils_Tuple2(
10806 _Utils_update(
10807 model,
10809 deploymentKeys: keys,
10810 deploymentOverrides: A3(
10811 $krisajenkins$remotedata$RemoteData$map2,
10812 A2(initOverrides, 'Deployment configuration', deployEdits),
10813 model.deploymentDefaults,
10814 keys)
10815 }),
10816 $elm$core$Platform$Cmd$none);
10817 case 'DeploymentOverridesResponse':
10818 var overrides = cmd.a;
10819 return _Utils_Tuple2(
10820 _Utils_update(
10821 model,
10823 deploymentDefaults: overrides,
10824 deploymentOverrides: A3(
10825 $krisajenkins$remotedata$RemoteData$map2,
10826 A2(initOverrides, 'Deployment configuration', deployEdits),
10827 overrides,
10828 model.deploymentKeys)
10829 }),
10830 function () {
10831 if (overrides.$ === 'Success') {
10832 var defaults = overrides.a;
10833 return $elm$core$Platform$Cmd$batch(
10834 _List_fromArray(
10836 A2($author$project$Page$Sidebar$CreateUpdate$reqAppOverrideKeys, model.config, defaults),
10837 A2($author$project$Page$Sidebar$CreateUpdate$reqAppOverrides, model.config, defaults)
10838 ]));
10839 } else {
10840 return $elm$core$Platform$Cmd$none;
10842 }());
10843 case 'AppOverrideKeysResponse':
10844 var keys = cmd.a;
10845 return _Utils_Tuple2(
10846 _Utils_update(
10847 model,
10849 appKeys: keys,
10850 appOverrides: A3(
10851 $krisajenkins$remotedata$RemoteData$map2,
10852 A2(initOverrides, 'App configuration', appEdits),
10853 model.appDefaults,
10854 keys)
10855 }),
10856 $elm$core$Platform$Cmd$none);
10857 case 'AppOverridesResponse':
10858 var overrides = cmd.a;
10859 return _Utils_Tuple2(
10860 _Utils_update(
10861 model,
10863 appDefaults: overrides,
10864 appOverrides: A3(
10865 $krisajenkins$remotedata$RemoteData$map2,
10866 A2(initOverrides, 'App configuration', appEdits),
10867 overrides,
10868 model.appKeys)
10869 }),
10870 $elm$core$Platform$Cmd$none);
10871 case 'Close':
10872 return _Utils_Tuple2(
10873 _Utils_update(
10874 model,
10875 {visibility: false}),
10876 $elm$core$Platform$Cmd$none);
10877 case 'NameInput':
10878 var name = cmd.a;
10879 return _Utils_Tuple2(
10880 _Utils_update(
10881 model,
10883 name: $author$project$Types$Deployment$DeploymentName(name),
10884 nameEdited: true
10885 }),
10886 $elm$core$Platform$Cmd$none);
10887 case 'AppOverridesMsg':
10888 var subMsg = cmd.a;
10889 var _v4 = model.appOverrides;
10890 if (_v4.$ === 'Success') {
10891 var appOverrides = _v4.a;
10892 return A3(
10893 updateWith,
10894 function (updated) {
10895 return _Utils_update(
10896 model,
10898 appOverrides: $krisajenkins$remotedata$RemoteData$Success(updated)
10899 });
10901 $author$project$Page$Sidebar$CreateUpdate$AppOverridesMsg,
10902 A2($author$project$Html$Overrides$update, subMsg, appOverrides));
10903 } else {
10904 return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none);
10906 case 'DeploymentOverridesMsg':
10907 var subMsg = cmd.a;
10908 var _v5 = model.deploymentOverrides;
10909 if (_v5.$ === 'Success') {
10910 var deploymentOverrides = _v5.a;
10911 var _v6 = A3(
10912 updateWith,
10913 function (deploymentOverrides_) {
10914 return _Utils_update(
10915 model,
10917 deploymentOverrides: $krisajenkins$remotedata$RemoteData$Success(deploymentOverrides_)
10918 });
10920 $author$project$Page$Sidebar$CreateUpdate$DeploymentOverridesMsg,
10921 A2($author$project$Html$Overrides$update, subMsg, deploymentOverrides));
10922 var model_ = _v6.a;
10923 var cmd_ = _v6.b;
10924 var _v7 = _Utils_Tuple2(
10925 $author$project$Html$Overrides$dataChanged(subMsg),
10926 model_.deploymentOverrides);
10927 if (_v7.a && (_v7.b.$ === 'Success')) {
10928 var deploymentOverrides_ = _v7.b.a;
10929 return _Utils_Tuple2(
10930 _Utils_update(
10931 model_,
10932 {appOverrides: $krisajenkins$remotedata$RemoteData$Loading}),
10933 $elm$core$Platform$Cmd$batch(
10934 _List_fromArray(
10936 A2(
10937 $author$project$Page$Sidebar$CreateUpdate$reqAppOverrideKeys,
10938 model_.config,
10939 $author$project$Html$Overrides$getFullOverrides(deploymentOverrides_)),
10940 A2(
10941 $author$project$Page$Sidebar$CreateUpdate$reqAppOverrides,
10942 model_.config,
10943 $author$project$Html$Overrides$getFullOverrides(deploymentOverrides_)),
10944 cmd_
10945 ])));
10946 } else {
10947 return _Utils_Tuple2(model_, cmd_);
10949 } else {
10950 return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none);
10952 case 'Save':
10953 var _v8 = _Utils_Tuple2(model.deploymentOverrides, model.appOverrides);
10954 if ((_v8.a.$ === 'Success') && (_v8.b.$ === 'Success')) {
10955 var deploymentOverrides = _v8.a.a;
10956 var appOverrides = _v8.b.a;
10957 var deploymentOverridesData = $author$project$Html$Overrides$getEditedOverrides(deploymentOverrides);
10958 var appOverridesData = $author$project$Html$Overrides$getEditedOverrides(appOverrides);
10959 var info = {appOverrides: appOverridesData, deploymentOverrides: deploymentOverridesData, name: model.name};
10960 return _Utils_Tuple2(
10961 _Utils_update(
10962 model,
10963 {saveResp: $krisajenkins$remotedata$RemoteData$Loading}),
10964 function () {
10965 var _v9 = model.mode;
10966 if (_v9.$ === 'Create') {
10967 return A2($author$project$Page$Sidebar$CreateUpdate$reqCreateDeployment, model.config, info);
10968 } else {
10969 return A3($author$project$Page$Sidebar$CreateUpdate$reqUpdateDeployment, model.name, model.config, info);
10971 }());
10972 } else {
10973 return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none);
10975 case 'SaveDeploymentResponse':
10976 if (cmd.a.$ === 'Success') {
10977 return _Utils_Tuple2(
10978 _Utils_update(
10979 model,
10980 {visibility: false}),
10981 $elm$core$Platform$Cmd$none);
10982 } else {
10983 var resp = cmd.a;
10984 return _Utils_Tuple2(
10985 _Utils_update(
10986 model,
10987 {saveResp: resp}),
10988 $elm$core$Platform$Cmd$none);
10990 default:
10991 var resp = cmd.a;
10992 return _Utils_Tuple2(
10993 _Utils_update(
10994 model,
10996 deployment: resp,
10997 name: A3(
10998 $krisajenkins$remotedata$RemoteData$unwrap,
10999 $author$project$Types$Deployment$DeploymentName(''),
11000 function (x) {
11001 return x.deployment.name;
11003 resp)
11004 }),
11005 $author$project$Page$Sidebar$CreateUpdate$initCreateReq(model.config));
11007 });
11008var $author$project$Page$Deployment$update = F2(
11009 function (cmd, model) {
11010 var updateWith = F3(
11011 function (toModel, toMsg, _v8) {
11012 var subModel = _v8.a;
11013 var subCmd = _v8.b;
11014 return _Utils_Tuple2(
11015 toModel(subModel),
11016 A2($elm$core$Platform$Cmd$map, toMsg, subCmd));
11017 });
11018 var initOverrides = F3(
11019 function (name, defaults, edits) {
11020 return A5($author$project$Html$Overrides$init, defaults, edits, _List_Nil, $author$project$Html$Overrides$Read, name);
11021 });
11022 switch (cmd.$) {
11023 case 'DeploymentFullInfoResponse':
11024 var deployment = cmd.a;
11025 return _Utils_Tuple2(
11026 _Utils_update(
11027 model,
11028 {deployment: deployment}),
11029 $elm$core$Platform$Cmd$batch(
11030 _List_fromArray(
11032 $author$project$Page$Deployment$reqDeploymentOverrides(model.config)
11033 ])));
11034 case 'DeploymentInfoResponse':
11035 var logs = cmd.a;
11036 return _Utils_Tuple2(
11037 _Utils_update(
11038 model,
11039 {logs: logs}),
11040 $elm$core$Platform$Cmd$none);
11041 case 'WSUpdate':
11042 var _v1 = A3($jinjor$elm_debounce$Debounce$push, $author$project$Page$Deployment$debounceConfig, _Utils_Tuple0, model.debounce);
11043 var debounce = _v1.a;
11044 var subCmd = _v1.b;
11045 return _Utils_Tuple2(
11046 _Utils_update(
11047 model,
11048 {debounce: debounce}),
11049 subCmd);
11050 case 'DebounceMsg':
11051 var msg = cmd.a;
11052 var restoreDisabled = A3(
11053 $krisajenkins$remotedata$RemoteData$unwrap,
11054 false,
11055 function (x) {
11056 return $author$project$Types$Deployment$isDeploymentArchived(x) ? model.restoreDisabled : false;
11058 model.deployment);
11059 var _v2 = A4(
11060 $jinjor$elm_debounce$Debounce$update,
11061 $author$project$Page$Deployment$debounceConfig,
11062 $jinjor$elm_debounce$Debounce$takeAll(
11063 F2(
11064 function (_v3, _v4) {
11065 return $elm$core$Platform$Cmd$batch(
11066 _List_fromArray(
11068 A2($author$project$Page$Deployment$reqDeployment, model.deploymentName, model.config),
11069 A2($author$project$Page$Deployment$reqLogs, model.deploymentName, model.config)
11070 ]));
11071 })),
11072 msg,
11073 model.debounce);
11074 var debounce = _v2.a;
11075 var subCmd = _v2.b;
11076 return _Utils_Tuple2(
11077 _Utils_update(
11078 model,
11079 {debounce: debounce, restoreDisabled: restoreDisabled}),
11080 subCmd);
11081 case 'DeploymentOverridesResponse':
11082 var overrides = cmd.a;
11083 return _Utils_Tuple2(
11084 _Utils_update(
11085 model,
11087 deploymentDefaults: overrides,
11088 deploymentOverrides: A3(
11089 $krisajenkins$remotedata$RemoteData$map2,
11090 initOverrides('Deployment configuration'),
11091 overrides,
11092 A2(
11093 $krisajenkins$remotedata$RemoteData$map,
11094 function (x) {
11095 return x.deployment.deploymentOverrides;
11097 model.deployment))
11098 }),
11099 function () {
11100 if (overrides.$ === 'Success') {
11101 var defaults = overrides.a;
11102 return A2($author$project$Page$Deployment$reqAppOverrides, model.config, defaults);
11103 } else {
11104 return $elm$core$Platform$Cmd$none;
11106 }());
11107 case 'AppOverridesResponse':
11108 var overrides = cmd.a;
11109 return _Utils_Tuple2(
11110 _Utils_update(
11111 model,
11113 appDefaults: overrides,
11114 appOverrides: A3(
11115 $krisajenkins$remotedata$RemoteData$map2,
11116 initOverrides('App configuration'),
11117 overrides,
11118 A2(
11119 $krisajenkins$remotedata$RemoteData$map,
11120 function (x) {
11121 return x.deployment.appOverrides;
11123 model.deployment))
11124 }),
11125 $elm$core$Platform$Cmd$none);
11126 case 'AppOverridesMsg':
11127 var subMsg = cmd.a;
11128 var _v6 = model.appOverrides;
11129 if (_v6.$ === 'Success') {
11130 var appOverrides = _v6.a;
11131 return A3(
11132 updateWith,
11133 function (updated) {
11134 return _Utils_update(
11135 model,
11137 appOverrides: $krisajenkins$remotedata$RemoteData$Success(updated)
11138 });
11140 $author$project$Page$Deployment$AppOverridesMsg,
11141 A2($author$project$Html$Overrides$update, subMsg, appOverrides));
11142 } else {
11143 return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none);
11145 case 'DeploymentOverridesMsg':
11146 var subMsg = cmd.a;
11147 var _v7 = model.deploymentOverrides;
11148 if (_v7.$ === 'Success') {
11149 var deploymentOverrides = _v7.a;
11150 return A3(
11151 updateWith,
11152 function (updated) {
11153 return _Utils_update(
11154 model,
11156 deploymentOverrides: $krisajenkins$remotedata$RemoteData$Success(updated)
11157 });
11159 $author$project$Page$Deployment$DeploymentOverridesMsg,
11160 A2($author$project$Html$Overrides$update, subMsg, deploymentOverrides));
11161 } else {
11162 return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none);
11164 case 'ShowSidebar':
11165 var deployment = cmd.a;
11166 return _Utils_Tuple2(
11167 _Utils_update(
11168 model,
11170 sidebar: A3($author$project$Page$Sidebar$CreateUpdate$initUpdate, model.config, true, deployment.deployment.name)
11171 }),
11172 A2(
11173 $elm$core$Platform$Cmd$map,
11174 $author$project$Page$Deployment$CreateSidebarMsg,
11175 A2($author$project$Page$Sidebar$CreateUpdate$initUpdateReq, model.config, deployment.deployment.name)));
11176 case 'CreateSidebarMsg':
11177 var subMsg = cmd.a;
11178 return A3(
11179 updateWith,
11180 function (sidebar) {
11181 return _Utils_update(
11182 model,
11183 {sidebar: sidebar});
11185 $author$project$Page$Deployment$CreateSidebarMsg,
11186 A2($author$project$Page$Sidebar$CreateUpdate$update, subMsg, model.sidebar));
11187 case 'ActionMsg':
11188 var subMsg = cmd.a;
11189 return A3(
11190 updateWith,
11191 function (updated) {
11192 return _Utils_update(
11193 model,
11194 {actionTable: updated});
11196 $author$project$Page$Deployment$ActionMsg,
11197 A2($author$project$Page$Deployment$ActionTable$update, subMsg, model.actionTable));
11198 case 'OpenArchivePopup':
11199 var deploymentName = cmd.a;
11200 return _Utils_Tuple2(
11201 _Utils_update(
11202 model,
11204 archivePopup: $elm$core$Maybe$Just(deploymentName)
11205 }),
11206 $elm$core$Platform$Cmd$none);
11207 case 'CloseArchivePopup':
11208 return _Utils_Tuple2(
11209 _Utils_update(
11210 model,
11211 {archivePopup: $elm$core$Maybe$Nothing}),
11212 $elm$core$Platform$Cmd$none);
11213 case 'DeleteDeploymentReq':
11214 var deploymentName = cmd.a;
11215 return _Utils_Tuple2(
11216 _Utils_update(
11217 model,
11218 {archivePopup: $elm$core$Maybe$Nothing}),
11219 A2($author$project$Page$Deployment$reqDeleteDeployment, model.config, deploymentName));
11220 case 'DeleteDeploymentResp':
11221 return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none);
11222 case 'RestoreDeploymentReq':
11223 var deploymentName = cmd.a;
11224 return _Utils_Tuple2(
11225 _Utils_update(
11226 model,
11227 {restoreDisabled: true}),
11228 A2($author$project$Page$Deployment$reqRestoreDeployment, model.config, deploymentName));
11229 default:
11230 return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none);
11232 });
11233var $author$project$Page$Deployments$CreateSidebarMsg = function (a) {
11234 return {$: 'CreateSidebarMsg', a: a};
11236var $author$project$Page$Deployments$DebounceMsg = function (a) {
11237 return {$: 'DebounceMsg', a: a};
11239var $author$project$Page$Deployments$debounceConfig = {
11240 strategy: $jinjor$elm_debounce$Debounce$soon(2000),
11241 transform: $author$project$Page$Deployments$DebounceMsg
11243var $author$project$Route$routeToPieces = function (page) {
11244 if (page.$ === 'Deployments') {
11245 return _List_fromArray(
11246 ['deployments']);
11247 } else {
11248 var deployment = page.a;
11249 return _List_fromArray(
11251 'deployments',
11252 $author$project$Types$Deployment$unDeploymentName(deployment)
11253 ]);
11256var $author$project$Route$routeToString = function (page) {
11257 return '#/' + A2(
11258 $elm$core$String$join,
11259 '/',
11260 $author$project$Route$routeToPieces(page));
11262var $author$project$Route$pushUrl = F2(
11263 function (key, route) {
11264 return A2(
11265 $elm$browser$Browser$Navigation$pushUrl,
11266 key,
11267 $author$project$Route$routeToString(route));
11268 });
11269var $author$project$Page$Deployments$Table$DeleteDeploymentResp = function (a) {
11270 return {$: 'DeleteDeploymentResp', a: a};
11272var $author$project$Page$Deployments$Table$reqDeleteDeployment = F2(
11273 function (config, deploymentName) {
11274 return A5(
11275 $author$project$Api$delete,
11276 config,
11277 $author$project$Api$Endpoint$deleteDeployment(deploymentName),
11278 $elm$http$Http$emptyBody,
11279 $elm$json$Json$Decode$string,
11280 A2($elm$core$Basics$composeR, $krisajenkins$remotedata$RemoteData$fromResult, $author$project$Page$Deployments$Table$DeleteDeploymentResp));
11281 });
11282var $author$project$Page$Deployments$Table$RestoreDeploymentResp = function (a) {
11283 return {$: 'RestoreDeploymentResp', a: a};
11285var $author$project$Page$Deployments$Table$reqRestoreDeployment = F2(
11286 function (config, deploymentName) {
11287 return A4(
11288 $author$project$Api$patch,
11289 config,
11290 $author$project$Api$Endpoint$restoreDeployment(deploymentName),
11291 $elm$json$Json$Decode$string,
11292 A2($elm$core$Basics$composeR, $krisajenkins$remotedata$RemoteData$fromResult, $author$project$Page$Deployments$Table$RestoreDeploymentResp));
11293 });
11294var $author$project$Page$Deployments$Table$update = F2(
11295 function (cmd, model) {
11296 switch (cmd.$) {
11297 case 'SortChanged':
11298 var sort = cmd.a;
11299 return _Utils_Tuple2(
11300 _Utils_update(
11301 model,
11302 {sort: sort}),
11303 $elm$core$Platform$Cmd$none);
11304 case 'OpenDeploymentOverrides':
11305 var name = cmd.a;
11306 return _Utils_Tuple2(
11307 _Utils_update(
11308 model,
11310 openedDeployemntOverrides: A2($turboMaCk$any_set$Set$Any$insert, name, model.openedDeployemntOverrides)
11311 }),
11312 $elm$core$Platform$Cmd$none);
11313 case 'CloseDeploymentOverrides':
11314 var name = cmd.a;
11315 return _Utils_Tuple2(
11316 _Utils_update(
11317 model,
11319 openedDeployemntOverrides: A2($turboMaCk$any_set$Set$Any$remove, name, model.openedDeployemntOverrides)
11320 }),
11321 $elm$core$Platform$Cmd$none);
11322 case 'OpenAppOverrides':
11323 var name = cmd.a;
11324 return _Utils_Tuple2(
11325 _Utils_update(
11326 model,
11328 openedAppOverrides: A2($turboMaCk$any_set$Set$Any$insert, name, model.openedAppOverrides)
11329 }),
11330 $elm$core$Platform$Cmd$none);
11331 case 'CloseAppOverrides':
11332 var name = cmd.a;
11333 return _Utils_Tuple2(
11334 _Utils_update(
11335 model,
11337 openedAppOverrides: A2($turboMaCk$any_set$Set$Any$remove, name, model.openedAppOverrides)
11338 }),
11339 $elm$core$Platform$Cmd$none);
11340 case 'OpenMenu':
11341 var name = cmd.a;
11342 return _Utils_Tuple2(
11343 _Utils_update(
11344 model,
11346 menuButton: $elm$core$Maybe$Just(name)
11347 }),
11348 $elm$core$Platform$Cmd$none);
11349 case 'CloseMenu':
11350 return _Utils_Tuple2(
11351 _Utils_update(
11352 model,
11353 {menuButton: $elm$core$Maybe$Nothing}),
11354 $elm$core$Platform$Cmd$none);
11355 case 'OpenArchivePopup':
11356 var deploymentName = cmd.a;
11357 return _Utils_Tuple2(
11358 _Utils_update(
11359 model,
11361 archivePopup: $elm$core$Maybe$Just(deploymentName)
11362 }),
11363 $elm$core$Platform$Cmd$none);
11364 case 'CloseArchivePopup':
11365 return _Utils_Tuple2(
11366 _Utils_update(
11367 model,
11368 {archivePopup: $elm$core$Maybe$Nothing}),
11369 $elm$core$Platform$Cmd$none);
11370 case 'DeleteDeploymentReq':
11371 var deploymentName = cmd.a;
11372 return _Utils_Tuple2(
11373 _Utils_update(
11374 model,
11375 {archivePopup: $elm$core$Maybe$Nothing}),
11376 A2($author$project$Page$Deployments$Table$reqDeleteDeployment, model.config, deploymentName));
11377 case 'DeleteDeploymentResp':
11378 return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none);
11379 case 'RestoreDeploymentReq':
11380 var deploymentName = cmd.a;
11381 return _Utils_Tuple2(
11382 _Utils_update(
11383 model,
11384 {menuButton: $elm$core$Maybe$Nothing}),
11385 A2($author$project$Page$Deployments$Table$reqRestoreDeployment, model.config, deploymentName));
11386 case 'RestoreDeploymentResp':
11387 return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none);
11388 case 'GoToDeployment':
11389 var deploymentName = cmd.a;
11390 return _Utils_Tuple2(
11391 model,
11392 A2(
11393 $author$project$Route$pushUrl,
11394 model.settings.navKey,
11395 $author$project$Route$Deployment(deploymentName)));
11396 default:
11397 return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none);
11399 });
11400var $author$project$Page$Deployments$update = F2(
11401 function (cmd, model) {
11402 var updateWith = F3(
11403 function (toModel, toMsg, _v6) {
11404 var subModel = _v6.a;
11405 var subCmd = _v6.b;
11406 return _Utils_Tuple2(
11407 toModel(subModel),
11408 A2($elm$core$Platform$Cmd$map, toMsg, subCmd));
11409 });
11410 switch (cmd.$) {
11411 case 'DeploymentsResponse':
11412 var deployments = cmd.a;
11413 var latestUpd = function () {
11414 if (deployments.$ === 'Success') {
11415 return 0;
11416 } else {
11417 return model.updated;
11419 }();
11420 return _Utils_Tuple2(
11421 _Utils_update(
11422 model,
11423 {deployments: deployments, updated: latestUpd}),
11424 $elm$core$Platform$Cmd$none);
11425 case 'SearchInput':
11426 var search = cmd.a;
11427 return _Utils_Tuple2(
11428 _Utils_update(
11429 model,
11430 {search: search}),
11431 $elm$core$Platform$Cmd$none);
11432 case 'ActiveTableMsg':
11433 if (cmd.a.$ === 'ShowEditSidebar') {
11434 var deploymentName = cmd.a.a;
11435 return _Utils_Tuple2(
11436 _Utils_update(
11437 model,
11439 sidebar: A3($author$project$Page$Sidebar$CreateUpdate$initUpdate, model.config, true, deploymentName)
11440 }),
11441 A2(
11442 $elm$core$Platform$Cmd$map,
11443 $author$project$Page$Deployments$CreateSidebarMsg,
11444 A2($author$project$Page$Sidebar$CreateUpdate$initUpdateReq, model.config, deploymentName)));
11445 } else {
11446 var subMsg = cmd.a;
11447 return A3(
11448 updateWith,
11449 function (table) {
11450 return _Utils_update(
11451 model,
11452 {activeTable: table});
11454 $author$project$Page$Deployments$ActiveTableMsg,
11455 A2($author$project$Page$Deployments$Table$update, subMsg, model.activeTable));
11457 case 'ArchivedTableMsg':
11458 var subMsg = cmd.a;
11459 return A3(
11460 updateWith,
11461 function (table) {
11462 return _Utils_update(
11463 model,
11464 {archivedTable: table});
11466 $author$project$Page$Deployments$ArchivedTableMsg,
11467 A2($author$project$Page$Deployments$Table$update, subMsg, model.archivedTable));
11468 case 'ToggleArchived':
11469 return _Utils_Tuple2(
11470 _Utils_update(
11471 model,
11472 {showArchived: !model.showArchived}),
11473 $elm$core$Platform$Cmd$none);
11474 case 'WSUpdate':
11475 var _v2 = A3($jinjor$elm_debounce$Debounce$push, $author$project$Page$Deployments$debounceConfig, _Utils_Tuple0, model.debounce);
11476 var debounce = _v2.a;
11477 var subCmd = _v2.b;
11478 return _Utils_Tuple2(
11479 _Utils_update(
11480 model,
11481 {debounce: debounce}),
11482 subCmd);
11483 case 'ShowCreateSidebar':
11484 return _Utils_Tuple2(
11485 _Utils_update(
11486 model,
11488 sidebar: A2($author$project$Page$Sidebar$CreateUpdate$initCreate, model.config, true)
11489 }),
11490 A2(
11491 $elm$core$Platform$Cmd$map,
11492 $author$project$Page$Deployments$CreateSidebarMsg,
11493 $author$project$Page$Sidebar$CreateUpdate$initCreateReq(model.config)));
11494 case 'CreateSidebarMsg':
11495 var subMsg = cmd.a;
11496 return A3(
11497 updateWith,
11498 function (sidebar) {
11499 return _Utils_update(
11500 model,
11501 {sidebar: sidebar});
11503 $author$project$Page$Deployments$CreateSidebarMsg,
11504 A2($author$project$Page$Sidebar$CreateUpdate$update, subMsg, model.sidebar));
11505 case 'DebounceMsg':
11506 var msg = cmd.a;
11507 var _v3 = A4(
11508 $jinjor$elm_debounce$Debounce$update,
11509 $author$project$Page$Deployments$debounceConfig,
11510 $jinjor$elm_debounce$Debounce$takeAll(
11511 F2(
11512 function (_v4, _v5) {
11513 return $author$project$Page$Deployments$reqDeployments(model.config);
11514 })),
11515 msg,
11516 model.debounce);
11517 var debounce = _v3.a;
11518 var subCmd = _v3.b;
11519 return _Utils_Tuple2(
11520 _Utils_update(
11521 model,
11522 {debounce: debounce}),
11523 subCmd);
11524 default:
11525 return _Utils_Tuple2(
11526 _Utils_update(
11527 model,
11528 {updated: model.updated + $author$project$Page$Deployments$tick}),
11529 $elm$core$Platform$Cmd$none);
11531 });
11532var $author$project$Page$Initialization$getWebsocketAddress = _Platform_outgoingPort('getWebsocketAddress', $elm$json$Json$Encode$string);
11533var $elm$browser$Browser$Navigation$replaceUrl = _Browser_replaceUrl;
11534var $author$project$Route$replaceUrl = F2(
11535 function (key, route) {
11536 return A2(
11537 $elm$browser$Browser$Navigation$replaceUrl,
11538 key,
11539 $author$project$Route$routeToString(route));
11540 });
11541var $author$project$Page$Initialization$ConfigResponse = function (a) {
11542 return {$: 'ConfigResponse', a: a};
11544var $author$project$Config$configDecoder = A3(
11545 $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$required,
11546 'kubernetes_dashboard_url_template',
11547 $elm$json$Json$Decode$string,
11548 A3(
11549 $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$required,
11550 'app_auth',
11551 A2($elm$json$Json$Decode$map, $author$project$Config$AppAuth, $elm$json$Json$Decode$string),
11552 A3(
11553 $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$required,
11554 'ws_url',
11555 $elm$json$Json$Decode$string,
11556 A3(
11557 $NoRedInk$elm_json_decode_pipeline$Json$Decode$Pipeline$required,
11558 'app_url',
11559 A2($elm$json$Json$Decode$map, $author$project$Config$AppUrl, $elm$json$Json$Decode$string),
11560 $elm$json$Json$Decode$succeed($author$project$Config$Config)))));
11561var $author$project$Api$Endpoint$configJson = A3(
11562 $author$project$Api$Endpoint$url,
11563 $elm$core$Maybe$Nothing,
11564 _List_fromArray(
11565 ['config.json']),
11566 _List_Nil);
11567var $author$project$Page$Initialization$reqConfig = $author$project$Api$Endpoint$request(
11569 body: $elm$http$Http$emptyBody,
11570 expect: A2(
11571 $author$project$Api$expectJson,
11572 A2($elm$core$Basics$composeR, $krisajenkins$remotedata$RemoteData$fromResult, $author$project$Page$Initialization$ConfigResponse),
11573 $author$project$Config$configDecoder),
11574 headers: _List_Nil,
11575 method: 'GET',
11576 timeout: $elm$core$Maybe$Nothing,
11577 tracker: $elm$core$Maybe$Nothing,
11578 url: $author$project$Api$Endpoint$configJson
11579 });
11580var $author$project$Page$Initialization$ProjectNameResponse = function (a) {
11581 return {$: 'ProjectNameResponse', a: a};
11583var $author$project$Api$Endpoint$projectName = function (appUrl) {
11584 return A3(
11585 $author$project$Api$Endpoint$url,
11586 $elm$core$Maybe$Just(appUrl),
11587 _List_fromArray(
11588 ['api', 'v1', 'project_name']),
11589 _List_Nil);
11591var $author$project$Page$Initialization$reqProjectName = function (cfg) {
11592 return A4(
11593 $author$project$Api$get,
11594 cfg,
11595 $author$project$Api$Endpoint$projectName,
11596 $elm$json$Json$Decode$string,
11597 A2($elm$core$Basics$composeR, $krisajenkins$remotedata$RemoteData$fromResult, $author$project$Page$Initialization$ProjectNameResponse));
11599var $author$project$Config$setProjectName = F2(
11600 function (settings, projectName) {
11601 return _Utils_update(
11602 settings,
11603 {projectName: projectName});
11604 });
11605var $author$project$Config$setZone = F2(
11606 function (settings, zone) {
11607 return _Utils_update(
11608 settings,
11609 {zone: zone});
11610 });
11611var $author$project$Page$Initialization$update = F2(
11612 function (msg, model) {
11613 switch (msg.$) {
11614 case 'ConfigResponse':
11615 var webData = msg.a;
11616 if (webData.$ === 'Success') {
11617 var config = webData.a;
11618 return _Utils_Tuple2(
11619 _Utils_update(
11620 model,
11622 config: $krisajenkins$remotedata$RemoteData$Success(config)
11623 }),
11624 $elm$core$Platform$Cmd$batch(
11625 _List_fromArray(
11627 $author$project$Page$Initialization$reqProjectName(config),
11628 $author$project$Page$Initialization$getWebsocketAddress(config.wsUrl + '/event')
11629 ])));
11630 } else {
11631 var a = webData;
11632 return _Utils_Tuple2(
11633 _Utils_update(
11634 model,
11635 {config: a}),
11636 $elm$core$Platform$Cmd$none);
11638 case 'ProjectNameResponse':
11639 var webData = msg.a;
11640 if (webData.$ === 'Success') {
11641 var projectName = webData.a;
11642 var _v3 = $author$project$Route$fromUrl(model.url);
11643 if (_v3.$ === 'Nothing') {
11644 return _Utils_Tuple2(
11645 _Utils_update(
11646 model,
11648 projectName: $krisajenkins$remotedata$RemoteData$Success(projectName),
11649 settings: A2($author$project$Config$setProjectName, model.settings, projectName)
11650 }),
11651 A2($author$project$Route$replaceUrl, model.settings.navKey, $author$project$Route$Deployments));
11652 } else {
11653 var route = _v3.a;
11654 return _Utils_Tuple2(
11655 _Utils_update(
11656 model,
11658 projectName: $krisajenkins$remotedata$RemoteData$Success(projectName),
11659 settings: A2($author$project$Config$setProjectName, model.settings, projectName)
11660 }),
11661 A2($author$project$Route$replaceUrl, model.settings.navKey, route));
11663 } else {
11664 var a = webData;
11665 return _Utils_Tuple2(
11666 _Utils_update(
11667 model,
11668 {projectName: a}),
11669 $elm$core$Platform$Cmd$none);
11671 default:
11672 var zone = msg.a;
11673 return _Utils_Tuple2(
11674 _Utils_update(
11675 model,
11677 settings: A2($author$project$Config$setZone, model.settings, zone)
11678 }),
11679 $author$project$Page$Initialization$reqConfig);
11681 });
11682var $author$project$Main$update = F2(
11683 function (msg, model) {
11684 var _v0 = _Utils_Tuple2(msg, model);
11685 _v0$5:
11686 while (true) {
11687 switch (_v0.a.$) {
11688 case 'LinkClicked':
11689 var urlRequest = _v0.a.a;
11690 if (urlRequest.$ === 'Internal') {
11691 var url = urlRequest.a;
11692 return _Utils_Tuple2(
11693 model,
11694 A2(
11695 $elm$browser$Browser$Navigation$pushUrl,
11696 $author$project$Main$getNavKey(model),
11697 $elm$url$Url$toString(url)));
11698 } else {
11699 var href = urlRequest.a;
11700 return _Utils_Tuple2(
11701 model,
11702 $elm$browser$Browser$Navigation$load(href));
11704 case 'UrlChanged':
11705 var url = _v0.a.a;
11706 return A2(
11707 $author$project$Main$changeRouteTo,
11708 $author$project$Route$fromUrl(url),
11709 model);
11710 case 'InitializationMsg':
11711 if (_v0.b.$ === 'Initialization') {
11712 var subMsg = _v0.a.a;
11713 var initialization = _v0.b.a;
11714 return A3(
11715 $author$project$Main$updateWith,
11716 $author$project$Main$Initialization,
11717 $author$project$Main$InitializationMsg,
11718 A2($author$project$Page$Initialization$update, subMsg, initialization));
11719 } else {
11720 break _v0$5;
11722 case 'DeploymentsMsg':
11723 if (_v0.b.$ === 'Deployments') {
11724 var subMsg = _v0.a.a;
11725 var deployments = _v0.b.a;
11726 return A3(
11727 $author$project$Main$updateWith,
11728 $author$project$Main$Deployments,
11729 $author$project$Main$DeploymentsMsg,
11730 A2($author$project$Page$Deployments$update, subMsg, deployments));
11731 } else {
11732 break _v0$5;
11734 default:
11735 if (_v0.b.$ === 'Deployment') {
11736 var subMsg = _v0.a.a;
11737 var deployments = _v0.b.a;
11738 return A3(
11739 $author$project$Main$updateWith,
11740 $author$project$Main$Deployment,
11741 $author$project$Main$DeploymentMsg,
11742 A2($author$project$Page$Deployment$update, subMsg, deployments));
11743 } else {
11744 break _v0$5;
11748 return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none);
11749 });
11750var $author$project$Page$Deployment = {$: 'Deployment'};
11751var $author$project$Page$Deployments = {$: 'Deployments'};
11752var $author$project$Page$Initialization = {$: 'Initialization'};
11753var $elm$virtual_dom$VirtualDom$map = _VirtualDom_map;
11754var $elm$html$Html$map = $elm$virtual_dom$VirtualDom$map;
11755var $elm$html$Html$b = _VirtualDom_node('b');
11756var $elm$html$Html$Attributes$stringProperty = F2(
11757 function (key, string) {
11758 return A2(
11759 _VirtualDom_property,
11760 key,
11761 $elm$json$Json$Encode$string(string));
11762 });
11763var $elm$html$Html$Attributes$class = $elm$html$Html$Attributes$stringProperty('className');
11764var $author$project$Html$Common$elClass = F3(
11765 function (el, cls, body) {
11766 return A2(
11767 el,
11768 _List_fromArray(
11770 $elm$html$Html$Attributes$class(cls)
11771 ]),
11772 body);
11773 });
11774var $author$project$Html$Common$bClass = $author$project$Html$Common$elClass($elm$html$Html$b);
11775var $elm$html$Html$div = _VirtualDom_node('div');
11776var $author$project$Html$Common$divClass = $author$project$Html$Common$elClass($elm$html$Html$div);
11777var $elm$html$Html$header = _VirtualDom_node('header');
11778var $elm$virtual_dom$VirtualDom$text = _VirtualDom_text;
11779var $elm$html$Html$text = $elm$virtual_dom$VirtualDom$text;
11780var $author$project$Page$viewHeader = function (projectName) {
11781 return A2(
11782 $elm$html$Html$header,
11783 _List_fromArray(
11785 $elm$html$Html$Attributes$class('header')
11786 ]),
11787 _List_fromArray(
11789 A2(
11790 $author$project$Html$Common$divClass,
11791 'header__wrap container',
11792 _List_fromArray(
11794 A2(
11795 $author$project$Html$Common$bClass,
11796 'header__logo',
11797 _List_fromArray(
11799 $elm$html$Html$text('Deployment Manager')
11800 ])),
11801 A2(
11802 $author$project$Html$Common$divClass,
11803 'header__project',
11804 _List_fromArray(
11806 $elm$html$Html$text(projectName)
11807 ]))
11808 ]))
11809 ]));
11811var $author$project$Page$view = F3(
11812 function (projectName, page, _v0) {
11813 var title = _v0.title;
11814 var content = _v0.content;
11815 return {
11816 body: A2(
11817 $elm$core$List$cons,
11818 $author$project$Page$viewHeader(projectName),
11819 content),
11820 title: title
11822 });
11823var $author$project$Page$Deployment$CloseArchivePopup = {$: 'CloseArchivePopup'};
11824var $author$project$Page$Deployment$DeleteDeploymentReq = function (a) {
11825 return {$: 'DeleteDeploymentReq', a: a};
11827var $elm$html$Html$br = _VirtualDom_node('br');
11828var $elm$html$Html$button = _VirtualDom_node('button');
11829var $elm$virtual_dom$VirtualDom$Normal = function (a) {
11830 return {$: 'Normal', a: a};
11832var $elm$virtual_dom$VirtualDom$on = _VirtualDom_on;
11833var $elm$html$Html$Events$on = F2(
11834 function (event, decoder) {
11835 return A2(
11836 $elm$virtual_dom$VirtualDom$on,
11837 event,
11838 $elm$virtual_dom$VirtualDom$Normal(decoder));
11839 });
11840var $elm$html$Html$Events$onClick = function (msg) {
11841 return A2(
11842 $elm$html$Html$Events$on,
11843 'click',
11844 $elm$json$Json$Decode$succeed(msg));
11846var $author$project$Html$Common$buttonClass = F2(
11847 function (cls, msg) {
11848 return $elm$html$Html$button(
11849 _List_fromArray(
11851 $elm$html$Html$Events$onClick(msg),
11852 $elm$html$Html$Attributes$class(cls)
11853 ]));
11854 });
11855var $elm$virtual_dom$VirtualDom$style = _VirtualDom_style;
11856var $elm$html$Html$Attributes$style = $elm$virtual_dom$VirtualDom$style;
11857var $author$project$Page$Deployment$archivePopupView = function (deploymentName) {
11858 return A2(
11859 $elm$html$Html$div,
11860 _List_fromArray(
11862 $elm$html$Html$Attributes$class('classic-popup'),
11863 A2($elm$html$Html$Attributes$style, 'display', 'block')
11864 ]),
11865 _List_fromArray(
11867 A2(
11868 $author$project$Html$Common$divClass,
11869 'classic-popup__container',
11870 _List_fromArray(
11872 A2(
11873 $author$project$Html$Common$divClass,
11874 'classic-popup__viewport',
11875 _List_fromArray(
11877 A2(
11878 $author$project$Html$Common$divClass,
11879 'classic-popup__slot',
11880 _List_fromArray(
11882 A2(
11883 $author$project$Html$Common$divClass,
11884 'dialog dialog--archive',
11885 _List_fromArray(
11887 A2(
11888 $author$project$Html$Common$divClass,
11889 'dialog__content',
11890 _List_fromArray(
11892 $elm$html$Html$text('Are you sure you want to archive the'),
11893 A2($elm$html$Html$br, _List_Nil, _List_Nil),
11894 $elm$html$Html$text(
11895 $author$project$Types$Deployment$unDeploymentName(deploymentName)),
11896 $elm$html$Html$text(' deployment?')
11897 ])),
11898 A2(
11899 $author$project$Html$Common$divClass,
11900 'dialog__footer',
11901 _List_fromArray(
11903 A3(
11904 $author$project$Html$Common$buttonClass,
11905 'button dialog__action',
11906 $author$project$Page$Deployment$DeleteDeploymentReq(deploymentName),
11907 _List_fromArray(
11909 $elm$html$Html$text('Archive')
11910 ])),
11911 A3(
11912 $author$project$Html$Common$buttonClass,
11913 'button dialog__action button--secondary',
11914 $author$project$Page$Deployment$CloseArchivePopup,
11915 _List_fromArray(
11917 $elm$html$Html$text('Cancel')
11918 ]))
11919 ]))
11920 ])),
11921 A3($author$project$Html$Common$buttonClass, 'classic-popup__close', $author$project$Page$Deployment$CloseArchivePopup, _List_Nil)
11922 ]))
11923 ]))
11924 ]))
11925 ]));
11927var $elm$html$Html$a = _VirtualDom_node('a');
11928var $elm$html$Html$Attributes$href = function (url) {
11929 return A2(
11930 $elm$html$Html$Attributes$stringProperty,
11931 'href',
11932 _VirtualDom_noJavaScriptUri(url));
11934var $author$project$Route$href = function (targetRoute) {
11935 return $elm$html$Html$Attributes$href(
11936 $author$project$Route$routeToString(targetRoute));
11938var $author$project$Html$Common$aClassHrefInternal = F2(
11939 function (cls, hrf) {
11940 return $elm$html$Html$a(
11941 _List_fromArray(
11943 $elm$html$Html$Attributes$class(cls),
11944 $author$project$Route$href(hrf)
11945 ]));
11946 });
11947var $author$project$Page$Deployment$backButton = A3(
11948 $author$project$Html$Common$aClassHrefInternal,
11949 'page__back dash dash--back dash--smaller',
11950 $author$project$Route$Deployments,
11951 _List_fromArray(
11953 $elm$html$Html$text('All deployments')
11954 ]));
11955var $author$project$Page$Deployment$OpenArchivePopup = function (a) {
11956 return {$: 'OpenArchivePopup', a: a};
11958var $author$project$Page$Deployment$RestoreDeploymentReq = function (a) {
11959 return {$: 'RestoreDeploymentReq', a: a};
11961var $author$project$Page$Deployment$ShowSidebar = function (a) {
11962 return {$: 'ShowSidebar', a: a};
11964var $elm$html$Html$Attributes$target = $elm$html$Html$Attributes$stringProperty('target');
11965var $author$project$Html$Common$aClassHrefExternal = F2(
11966 function (cls, hrf) {
11967 return $elm$html$Html$a(
11968 _List_fromArray(
11970 $elm$html$Html$Attributes$class(cls),
11971 $elm$html$Html$Attributes$href(hrf),
11972 $elm$html$Html$Attributes$target('_blank')
11973 ]));
11974 });
11975var $elm$json$Json$Encode$bool = _Json_wrap;
11976var $elm$html$Html$Attributes$boolProperty = F2(
11977 function (key, bool) {
11978 return A2(
11979 _VirtualDom_property,
11980 key,
11981 $elm$json$Json$Encode$bool(bool));
11982 });
11983var $elm$html$Html$Attributes$disabled = $elm$html$Html$Attributes$boolProperty('disabled');
11984var $elm$html$Html$h1 = _VirtualDom_node('h1');
11985var $author$project$Html$Common$h1Class = $author$project$Html$Common$elClass($elm$html$Html$h1);
11986var $author$project$Types$Deployment$unStatus = function (status) {
11987 if (status.$ === 'DeploymentPending') {
11988 var ds = status.a;
11989 return ds;
11990 } else {
11991 var ds = status.a;
11992 return ds;
11995var $author$project$Types$Deployment$isPending = function (status) {
11996 var _v0 = $author$project$Types$Deployment$unStatus(status);
11997 switch (_v0.$) {
11998 case 'Running':
11999 return false;
12000 case 'Failure':
12001 return false;
12002 case 'Archived':
12003 return false;
12004 case 'CreatePending':
12005 return true;
12006 case 'UpdatePending':
12007 return true;
12008 case 'ArchivePending':
12009 return true;
12010 default:
12011 return true;
12014var $author$project$Types$Deployment$isDeploymentPending = function (status) {
12015 if (status.$ === 'DeploymentPending') {
12016 return true;
12017 } else {
12018 return $author$project$Types$Deployment$isPending(status);
12021var $author$project$Page$Deployment$deploymentHeaderView = function (model) {
12022 var disabledButtonClass = F2(
12023 function (cls, disabled) {
12024 return disabled ? (cls + ' button--disabled') : cls;
12025 });
12026 var buttons = function () {
12027 var _v0 = model.deployment;
12028 if (_v0.$ === 'Success') {
12029 var deployment = _v0.a;
12030 return $author$project$Types$Deployment$isDeploymentPending(deployment.status) ? _List_fromArray(
12032 A3(
12033 $author$project$Html$Common$aClassHrefExternal,
12034 'button button--logs page__action button--secondary',
12035 _Utils_ap(
12036 model.config.k8sDashboardUrlTemplate,
12037 $author$project$Types$Deployment$unDeploymentName(model.deploymentName)),
12038 _List_fromArray(
12040 $elm$html$Html$text('Details')
12041 ]))
12042 ]) : ($author$project$Types$Deployment$isDeploymentArchived(deployment) ? _List_fromArray(
12044 A2(
12045 $elm$html$Html$button,
12046 _List_fromArray(
12048 $elm$html$Html$Attributes$class(
12049 A2(disabledButtonClass, 'button button--restore page__action button--secondary', model.restoreDisabled)),
12050 $elm$html$Html$Events$onClick(
12051 $author$project$Page$Deployment$RestoreDeploymentReq(model.deploymentName)),
12052 $elm$html$Html$Attributes$disabled(model.restoreDisabled)
12053 ]),
12054 _List_fromArray(
12056 $elm$html$Html$text('Restore from archive')
12057 ])),
12058 A3(
12059 $author$project$Html$Common$aClassHrefExternal,
12060 'button button--logs page__action button--secondary',
12061 _Utils_ap(
12062 model.config.k8sDashboardUrlTemplate,
12063 $author$project$Types$Deployment$unDeploymentName(model.deploymentName)),
12064 _List_fromArray(
12066 $elm$html$Html$text('Details')
12067 ]))
12068 ]) : _List_fromArray(
12070 A3(
12071 $author$project$Html$Common$buttonClass,
12072 'button button--edit page__action',
12073 $author$project$Page$Deployment$ShowSidebar(deployment),
12074 _List_fromArray(
12076 $elm$html$Html$text('Edit deployment')
12077 ])),
12078 A3(
12079 $author$project$Html$Common$buttonClass,
12080 'button button--archive page__action button--secondary',
12081 $author$project$Page$Deployment$OpenArchivePopup(model.deploymentName),
12082 _List_fromArray(
12084 $elm$html$Html$text('Move to archive')
12085 ])),
12086 A3(
12087 $author$project$Html$Common$aClassHrefExternal,
12088 'button button--logs page__action button--secondary',
12089 _Utils_ap(
12090 model.config.k8sDashboardUrlTemplate,
12091 $author$project$Types$Deployment$unDeploymentName(model.deploymentName)),
12092 _List_fromArray(
12094 $elm$html$Html$text('Details')
12095 ]))
12096 ]));
12097 } else {
12098 return _List_Nil;
12100 }();
12101 return A2(
12102 $author$project$Html$Common$divClass,
12103 'page__head',
12104 A2(
12105 $elm$core$List$cons,
12106 A2(
12107 $author$project$Html$Common$h1Class,
12108 'page__heading title',
12109 _List_fromArray(
12111 $elm$html$Html$text(
12112 $author$project$Types$Deployment$unDeploymentName(model.deploymentName))
12113 ])),
12114 buttons));
12116var $elm$html$Html$h3 = _VirtualDom_node('h3');
12117var $author$project$Html$Common$h3Class = $author$project$Html$Common$elClass($elm$html$Html$h3);
12118var $elm$html$Html$table = _VirtualDom_node('table');
12119var $author$project$Page$Deployment$ActionTable$CloseAppOverrides = function (a) {
12120 return {$: 'CloseAppOverrides', a: a};
12122var $author$project$Page$Deployment$ActionTable$CloseDeploymentOverrides = function (a) {
12123 return {$: 'CloseDeploymentOverrides', a: a};
12125var $author$project$Page$Deployment$ActionTable$OpenAppOverrides = function (a) {
12126 return {$: 'OpenAppOverrides', a: a};
12128var $author$project$Page$Deployment$ActionTable$OpenDeploymentOverrides = function (a) {
12129 return {$: 'OpenDeploymentOverrides', a: a};
12131var $rtfeldman$elm_iso8601_date_strings$Iso8601$fromMonth = function (month) {
12132 switch (month.$) {
12133 case 'Jan':
12134 return 1;
12135 case 'Feb':
12136 return 2;
12137 case 'Mar':
12138 return 3;
12139 case 'Apr':
12140 return 4;
12141 case 'May':
12142 return 5;
12143 case 'Jun':
12144 return 6;
12145 case 'Jul':
12146 return 7;
12147 case 'Aug':
12148 return 8;
12149 case 'Sep':
12150 return 9;
12151 case 'Oct':
12152 return 10;
12153 case 'Nov':
12154 return 11;
12155 default:
12156 return 12;
12159var $elm$time$Time$flooredDiv = F2(
12160 function (numerator, denominator) {
12161 return $elm$core$Basics$floor(numerator / denominator);
12162 });
12163var $elm$time$Time$posixToMillis = function (_v0) {
12164 var millis = _v0.a;
12165 return millis;
12167var $elm$time$Time$toAdjustedMinutesHelp = F3(
12168 function (defaultOffset, posixMinutes, eras) {
12169 toAdjustedMinutesHelp:
12170 while (true) {
12171 if (!eras.b) {
12172 return posixMinutes + defaultOffset;
12173 } else {
12174 var era = eras.a;
12175 var olderEras = eras.b;
12176 if (_Utils_cmp(era.start, posixMinutes) < 0) {
12177 return posixMinutes + era.offset;
12178 } else {
12179 var $temp$defaultOffset = defaultOffset,
12180 $temp$posixMinutes = posixMinutes,
12181 $temp$eras = olderEras;
12182 defaultOffset = $temp$defaultOffset;
12183 posixMinutes = $temp$posixMinutes;
12184 eras = $temp$eras;
12185 continue toAdjustedMinutesHelp;
12189 });
12190var $elm$time$Time$toAdjustedMinutes = F2(
12191 function (_v0, time) {
12192 var defaultOffset = _v0.a;
12193 var eras = _v0.b;
12194 return A3(
12195 $elm$time$Time$toAdjustedMinutesHelp,
12196 defaultOffset,
12197 A2(
12198 $elm$time$Time$flooredDiv,
12199 $elm$time$Time$posixToMillis(time),
12200 60000),
12201 eras);
12202 });
12203var $elm$core$Basics$ge = _Utils_ge;
12204var $elm$time$Time$toCivil = function (minutes) {
12205 var rawDay = A2($elm$time$Time$flooredDiv, minutes, 60 * 24) + 719468;
12206 var era = (((rawDay >= 0) ? rawDay : (rawDay - 146096)) / 146097) | 0;
12207 var dayOfEra = rawDay - (era * 146097);
12208 var yearOfEra = ((((dayOfEra - ((dayOfEra / 1460) | 0)) + ((dayOfEra / 36524) | 0)) - ((dayOfEra / 146096) | 0)) / 365) | 0;
12209 var dayOfYear = dayOfEra - (((365 * yearOfEra) + ((yearOfEra / 4) | 0)) - ((yearOfEra / 100) | 0));
12210 var mp = (((5 * dayOfYear) + 2) / 153) | 0;
12211 var month = mp + ((mp < 10) ? 3 : (-9));
12212 var year = yearOfEra + (era * 400);
12213 return {
12214 day: (dayOfYear - ((((153 * mp) + 2) / 5) | 0)) + 1,
12215 month: month,
12216 year: year + ((month <= 2) ? 1 : 0)
12219var $elm$time$Time$toDay = F2(
12220 function (zone, time) {
12221 return $elm$time$Time$toCivil(
12222 A2($elm$time$Time$toAdjustedMinutes, zone, time)).day;
12223 });
12224var $elm$time$Time$toHour = F2(
12225 function (zone, time) {
12226 return A2(
12227 $elm$core$Basics$modBy,
12228 24,
12229 A2(
12230 $elm$time$Time$flooredDiv,
12231 A2($elm$time$Time$toAdjustedMinutes, zone, time),
12232 60));
12233 });
12234var $elm$time$Time$toMillis = F2(
12235 function (_v0, time) {
12236 return A2(
12237 $elm$core$Basics$modBy,
12238 1000,
12239 $elm$time$Time$posixToMillis(time));
12240 });
12241var $elm$time$Time$toMinute = F2(
12242 function (zone, time) {
12243 return A2(
12244 $elm$core$Basics$modBy,
12245 60,
12246 A2($elm$time$Time$toAdjustedMinutes, zone, time));
12247 });
12248var $elm$time$Time$Apr = {$: 'Apr'};
12249var $elm$time$Time$Aug = {$: 'Aug'};
12250var $elm$time$Time$Dec = {$: 'Dec'};
12251var $elm$time$Time$Feb = {$: 'Feb'};
12252var $elm$time$Time$Jan = {$: 'Jan'};
12253var $elm$time$Time$Jul = {$: 'Jul'};
12254var $elm$time$Time$Jun = {$: 'Jun'};
12255var $elm$time$Time$Mar = {$: 'Mar'};
12256var $elm$time$Time$May = {$: 'May'};
12257var $elm$time$Time$Nov = {$: 'Nov'};
12258var $elm$time$Time$Oct = {$: 'Oct'};
12259var $elm$time$Time$Sep = {$: 'Sep'};
12260var $elm$time$Time$toMonth = F2(
12261 function (zone, time) {
12262 var _v0 = $elm$time$Time$toCivil(
12263 A2($elm$time$Time$toAdjustedMinutes, zone, time)).month;
12264 switch (_v0) {
12265 case 1:
12266 return $elm$time$Time$Jan;
12267 case 2:
12268 return $elm$time$Time$Feb;
12269 case 3:
12270 return $elm$time$Time$Mar;
12271 case 4:
12272 return $elm$time$Time$Apr;
12273 case 5:
12274 return $elm$time$Time$May;
12275 case 6:
12276 return $elm$time$Time$Jun;
12277 case 7:
12278 return $elm$time$Time$Jul;
12279 case 8:
12280 return $elm$time$Time$Aug;
12281 case 9:
12282 return $elm$time$Time$Sep;
12283 case 10:
12284 return $elm$time$Time$Oct;
12285 case 11:
12286 return $elm$time$Time$Nov;
12287 default:
12288 return $elm$time$Time$Dec;
12290 });
12291var $elm$core$String$cons = _String_cons;
12292var $elm$core$String$fromChar = function (_char) {
12293 return A2($elm$core$String$cons, _char, '');
12295var $elm$core$Bitwise$and = _Bitwise_and;
12296var $elm$core$Bitwise$shiftRightBy = _Bitwise_shiftRightBy;
12297var $elm$core$String$repeatHelp = F3(
12298 function (n, chunk, result) {
12299 return (n <= 0) ? result : A3(
12300 $elm$core$String$repeatHelp,
12301 n >> 1,
12302 _Utils_ap(chunk, chunk),
12303 (!(n & 1)) ? result : _Utils_ap(result, chunk));
12304 });
12305var $elm$core$String$repeat = F2(
12306 function (n, chunk) {
12307 return A3($elm$core$String$repeatHelp, n, chunk, '');
12308 });
12309var $elm$core$String$padLeft = F3(
12310 function (n, _char, string) {
12311 return _Utils_ap(
12312 A2(
12313 $elm$core$String$repeat,
12314 n - $elm$core$String$length(string),
12315 $elm$core$String$fromChar(_char)),
12316 string);
12317 });
12318var $rtfeldman$elm_iso8601_date_strings$Iso8601$toPaddedString = F2(
12319 function (digits, time) {
12320 return A3(
12321 $elm$core$String$padLeft,
12322 digits,
12323 _Utils_chr('0'),
12324 $elm$core$String$fromInt(time));
12325 });
12326var $elm$time$Time$toSecond = F2(
12327 function (_v0, time) {
12328 return A2(
12329 $elm$core$Basics$modBy,
12330 60,
12331 A2(
12332 $elm$time$Time$flooredDiv,
12333 $elm$time$Time$posixToMillis(time),
12334 1000));
12335 });
12336var $elm$time$Time$toYear = F2(
12337 function (zone, time) {
12338 return $elm$time$Time$toCivil(
12339 A2($elm$time$Time$toAdjustedMinutes, zone, time)).year;
12340 });
12341var $rtfeldman$elm_iso8601_date_strings$Iso8601$fromTime = function (time) {
12342 return A2(
12343 $rtfeldman$elm_iso8601_date_strings$Iso8601$toPaddedString,
12345 A2($elm$time$Time$toYear, $elm$time$Time$utc, time)) + ('-' + (A2(
12346 $rtfeldman$elm_iso8601_date_strings$Iso8601$toPaddedString,
12348 $rtfeldman$elm_iso8601_date_strings$Iso8601$fromMonth(
12349 A2($elm$time$Time$toMonth, $elm$time$Time$utc, time))) + ('-' + (A2(
12350 $rtfeldman$elm_iso8601_date_strings$Iso8601$toPaddedString,
12352 A2($elm$time$Time$toDay, $elm$time$Time$utc, time)) + ('T' + (A2(
12353 $rtfeldman$elm_iso8601_date_strings$Iso8601$toPaddedString,
12355 A2($elm$time$Time$toHour, $elm$time$Time$utc, time)) + (':' + (A2(
12356 $rtfeldman$elm_iso8601_date_strings$Iso8601$toPaddedString,
12358 A2($elm$time$Time$toMinute, $elm$time$Time$utc, time)) + (':' + (A2(
12359 $rtfeldman$elm_iso8601_date_strings$Iso8601$toPaddedString,
12361 A2($elm$time$Time$toSecond, $elm$time$Time$utc, time)) + ('.' + (A2(
12362 $rtfeldman$elm_iso8601_date_strings$Iso8601$toPaddedString,
12364 A2($elm$time$Time$toMillis, $elm$time$Time$utc, time)) + 'Z'))))))))))));
12366var $elm$virtual_dom$VirtualDom$attribute = F2(
12367 function (key, value) {
12368 return A2(
12369 _VirtualDom_attribute,
12370 _VirtualDom_noOnOrFormAction(key),
12371 _VirtualDom_noJavaScriptOrHtmlUri(value));
12372 });
12373var $elm$html$Html$Attributes$attribute = $elm$virtual_dom$VirtualDom$attribute;
12374var $elm$core$Dict$member = F2(
12375 function (key, dict) {
12376 var _v0 = A2($elm$core$Dict$get, key, dict);
12377 if (_v0.$ === 'Just') {
12378 return true;
12379 } else {
12380 return false;
12382 });
12383var $turboMaCk$any_dict$Dict$Any$member = F2(
12384 function (k, _v0) {
12385 var dict = _v0.a.dict;
12386 var toKey = _v0.a.toKey;
12387 return A2(
12388 $elm$core$Dict$member,
12389 toKey(k),
12390 dict);
12391 });
12392var $turboMaCk$any_set$Set$Any$member = F2(
12393 function (a, _v0) {
12394 var dict = _v0.a;
12395 return A2($turboMaCk$any_dict$Dict$Any$member, a, dict);
12396 });
12397var $elm$virtual_dom$VirtualDom$MayStopPropagation = function (a) {
12398 return {$: 'MayStopPropagation', a: a};
12400var $elm$html$Html$Events$stopPropagationOn = F2(
12401 function (event, decoder) {
12402 return A2(
12403 $elm$virtual_dom$VirtualDom$on,
12404 event,
12405 $elm$virtual_dom$VirtualDom$MayStopPropagation(decoder));
12406 });
12407var $elm_community$html_extra$Html$Events$Extra$onClickStopPropagation = function (msg) {
12408 return A2(
12409 $elm$html$Html$Events$stopPropagationOn,
12410 'click',
12411 $elm$json$Json$Decode$succeed(
12412 _Utils_Tuple2(msg, true)));
12414var $elm$html$Html$span = _VirtualDom_node('span');
12415var $author$project$Html$Common$spanClass = $author$project$Html$Common$elClass($elm$html$Html$span);
12416var $elm$core$List$takeReverse = F3(
12417 function (n, list, kept) {
12418 takeReverse:
12419 while (true) {
12420 if (n <= 0) {
12421 return kept;
12422 } else {
12423 if (!list.b) {
12424 return kept;
12425 } else {
12426 var x = list.a;
12427 var xs = list.b;
12428 var $temp$n = n - 1,
12429 $temp$list = xs,
12430 $temp$kept = A2($elm$core$List$cons, x, kept);
12431 n = $temp$n;
12432 list = $temp$list;
12433 kept = $temp$kept;
12434 continue takeReverse;
12438 });
12439var $elm$core$List$takeTailRec = F2(
12440 function (n, list) {
12441 return $elm$core$List$reverse(
12442 A3($elm$core$List$takeReverse, n, list, _List_Nil));
12443 });
12444var $elm$core$List$takeFast = F3(
12445 function (ctr, n, list) {
12446 if (n <= 0) {
12447 return _List_Nil;
12448 } else {
12449 var _v0 = _Utils_Tuple2(n, list);
12450 _v0$1:
12451 while (true) {
12452 _v0$5:
12453 while (true) {
12454 if (!_v0.b.b) {
12455 return list;
12456 } else {
12457 if (_v0.b.b.b) {
12458 switch (_v0.a) {
12459 case 1:
12460 break _v0$1;
12461 case 2:
12462 var _v2 = _v0.b;
12463 var x = _v2.a;
12464 var _v3 = _v2.b;
12465 var y = _v3.a;
12466 return _List_fromArray(
12467 [x, y]);
12468 case 3:
12469 if (_v0.b.b.b.b) {
12470 var _v4 = _v0.b;
12471 var x = _v4.a;
12472 var _v5 = _v4.b;
12473 var y = _v5.a;
12474 var _v6 = _v5.b;
12475 var z = _v6.a;
12476 return _List_fromArray(
12477 [x, y, z]);
12478 } else {
12479 break _v0$5;
12481 default:
12482 if (_v0.b.b.b.b && _v0.b.b.b.b.b) {
12483 var _v7 = _v0.b;
12484 var x = _v7.a;
12485 var _v8 = _v7.b;
12486 var y = _v8.a;
12487 var _v9 = _v8.b;
12488 var z = _v9.a;
12489 var _v10 = _v9.b;
12490 var w = _v10.a;
12491 var tl = _v10.b;
12492 return (ctr > 1000) ? A2(
12493 $elm$core$List$cons,
12495 A2(
12496 $elm$core$List$cons,
12498 A2(
12499 $elm$core$List$cons,
12501 A2(
12502 $elm$core$List$cons,
12504 A2($elm$core$List$takeTailRec, n - 4, tl))))) : A2(
12505 $elm$core$List$cons,
12507 A2(
12508 $elm$core$List$cons,
12510 A2(
12511 $elm$core$List$cons,
12513 A2(
12514 $elm$core$List$cons,
12516 A3($elm$core$List$takeFast, ctr + 1, n - 4, tl)))));
12517 } else {
12518 break _v0$5;
12521 } else {
12522 if (_v0.a === 1) {
12523 break _v0$1;
12524 } else {
12525 break _v0$5;
12530 return list;
12532 var _v1 = _v0.b;
12533 var x = _v1.a;
12534 return _List_fromArray(
12535 [x]);
12537 });
12538var $elm$core$List$take = F2(
12539 function (n, list) {
12540 return A3($elm$core$List$takeFast, 0, n, list);
12541 });
12542var $author$project$Page$Deployment$ActionTable$overridesView = F5(
12543 function (openCmd, closeCmd, id, opened, overrides) {
12544 var visibleOverrides = A2($elm$core$List$take, 3, overrides);
12545 var overrideView = function (override) {
12546 return A2(
12547 $author$project$Html$Common$divClass,
12548 'row',
12549 function () {
12550 var _v0 = override.value;
12551 if (_v0.$ === 'ValueAdded') {
12552 var v = _v0.a;
12553 return _List_fromArray(
12555 A2(
12556 $author$project$Html$Common$spanClass,
12557 'key-default-pristine',
12558 _List_fromArray(
12560 $elm$html$Html$text(
12561 $author$project$Types$Override$unOverrideName(override.name) + ': ')
12562 ])),
12563 A2(
12564 $elm$html$Html$span,
12565 _List_fromArray(
12567 $elm$html$Html$Attributes$class('value-edited'),
12568 A2($elm$html$Html$Attributes$attribute, 'style', 'width:400px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;')
12569 ]),
12570 _List_fromArray(
12572 $elm$html$Html$text(v)
12573 ]))
12574 ]);
12575 } else {
12576 return _List_fromArray(
12578 A2(
12579 $author$project$Html$Common$spanClass,
12580 'key-deleted',
12581 _List_fromArray(
12583 $elm$html$Html$text(
12584 $author$project$Types$Override$unOverrideName(override.name) + ': ')
12585 ])),
12586 A2($author$project$Html$Common$divClass, 'listing__placeholder listing__placeholder__value', _List_Nil)
12587 ]);
12589 }());
12591 var buttonClass_ = F3(
12592 function (cls, msg, body) {
12593 return A2(
12594 $elm$html$Html$button,
12595 _List_fromArray(
12597 $elm$html$Html$Attributes$class(cls),
12598 $elm_community$html_extra$Html$Events$Extra$onClickStopPropagation(msg)
12599 ]),
12600 body);
12601 });
12602 return _Utils_eq(
12603 $elm$core$List$length(overrides),
12604 $elm$core$List$length(visibleOverrides)) ? A2($elm$core$List$map, overrideView, overrides) : (A2($turboMaCk$any_set$Set$Any$member, id, opened) ? A2(
12605 $elm$core$List$append,
12606 A2($elm$core$List$map, overrideView, overrides),
12607 _List_fromArray(
12609 A3(
12610 buttonClass_,
12611 'expander listing__more expander--open',
12612 closeCmd(id),
12613 _List_fromArray(
12615 $elm$html$Html$text('Hide default configuration')
12616 ]))
12617 ])) : A2(
12618 $elm$core$List$append,
12619 A2($elm$core$List$map, overrideView, visibleOverrides),
12620 _List_fromArray(
12622 A3(
12623 buttonClass_,
12624 'expander listing__more',
12625 openCmd(id),
12626 _List_fromArray(
12628 $elm$html$Html$text('Show full configuration')
12629 ]))
12630 ])));
12631 });
12632var $elm$html$Html$td = _VirtualDom_node('td');
12633var $elm$html$Html$tr = _VirtualDom_node('tr');
12634var $author$project$Types$Action$unExitCode = function (_v0) {
12635 var code = _v0.a;
12636 return code;
12638var $author$project$Page$Deployment$ActionTable$logView = F2(
12639 function (model, log) {
12640 var name = function () {
12641 var _v0 = log.action;
12642 switch (_v0.$) {
12643 case 'Create':
12644 return 'create';
12645 case 'Restore':
12646 return 'restore';
12647 case 'Update':
12648 return 'update';
12649 default:
12650 return 'archive';
12652 }();
12653 var exitCode = _List_fromArray(
12655 $elm$html$Html$text(
12656 $elm$core$String$fromInt(
12657 $author$project$Types$Action$unExitCode(log.exitCode)))
12658 ]);
12659 var duration = _List_fromArray(
12661 $elm$html$Html$text(
12662 $elm$core$String$fromInt(
12663 $elm$core$Basics$round(log.duration.time)) + 's')
12664 ]);
12665 var deploymentOverrides = _List_fromArray(
12667 A2(
12668 $author$project$Html$Common$divClass,
12669 'row',
12670 A5($author$project$Page$Deployment$ActionTable$overridesView, $author$project$Page$Deployment$ActionTable$OpenDeploymentOverrides, $author$project$Page$Deployment$ActionTable$CloseDeploymentOverrides, log.actionId, model.openedDeployemntOverrides, log.deploymentOverrides))
12671 ]);
12672 var appOverrides = _List_fromArray(
12674 A2(
12675 $author$project$Html$Common$divClass,
12676 'row',
12677 A5($author$project$Page$Deployment$ActionTable$overridesView, $author$project$Page$Deployment$ActionTable$OpenAppOverrides, $author$project$Page$Deployment$ActionTable$CloseAppOverrides, log.actionId, model.openedAppOverrides, log.appOverrides))
12678 ]);
12679 return A2(
12680 $elm$html$Html$tr,
12681 _List_Nil,
12682 _List_fromArray(
12684 A2(
12685 $elm$html$Html$td,
12686 _List_Nil,
12687 _List_fromArray(
12689 $elm$html$Html$text(name)
12690 ])),
12691 A2($elm$html$Html$td, _List_Nil, deploymentOverrides),
12692 A2($elm$html$Html$td, _List_Nil, appOverrides),
12693 A2($elm$html$Html$td, _List_Nil, exitCode),
12694 A2(
12695 $elm$html$Html$td,
12696 _List_Nil,
12697 _List_fromArray(
12699 $elm$html$Html$text(
12700 $rtfeldman$elm_iso8601_date_strings$Iso8601$fromTime(log.createdAt))
12701 ])),
12702 A2($elm$html$Html$td, _List_Nil, duration)
12703 ]));
12704 });
12705var $elm$html$Html$tbody = _VirtualDom_node('tbody');
12706var $author$project$Page$Deployment$ActionTable$tableDeploymentsView = F2(
12707 function (model, logs) {
12708 return A2(
12709 $elm$html$Html$tbody,
12710 _List_Nil,
12711 A2(
12712 $elm$core$List$map,
12713 $author$project$Page$Deployment$ActionTable$logView(model),
12714 logs));
12715 });
12716var $elm$html$Html$Attributes$colspan = function (n) {
12717 return A2(
12718 _VirtualDom_attribute,
12719 'colspan',
12720 $elm$core$String$fromInt(n));
12722var $author$project$Html$Common$trClass = $author$project$Html$Common$elClass($elm$html$Html$tr);
12723var $author$project$Page$Deployment$ActionTable$tableFailureView = A2(
12724 $elm$html$Html$tbody,
12725 _List_Nil,
12726 _List_fromArray(
12728 A2(
12729 $author$project$Html$Common$trClass,
12730 'no-table',
12731 _List_fromArray(
12733 A2(
12734 $elm$html$Html$td,
12735 _List_fromArray(
12737 $elm$html$Html$Attributes$colspan(8)
12738 ]),
12739 _List_fromArray(
12741 A2(
12742 $author$project$Html$Common$divClass,
12743 'null null--data',
12744 _List_fromArray(
12746 A2(
12747 $author$project$Html$Common$bClass,
12748 'null__heading',
12749 _List_fromArray(
12751 $elm$html$Html$text('Cannot retrieve the data')
12752 ])),
12753 A2(
12754 $author$project$Html$Common$divClass,
12755 'null__message',
12756 _List_fromArray(
12758 $elm$html$Html$text('Try to reload page')
12759 ]))
12760 ]))
12761 ]))
12762 ]))
12763 ]));
12764var $author$project$Page$Deployment$ActionTable$tableLoadingView = A2(
12765 $elm$html$Html$tbody,
12766 _List_Nil,
12767 _List_fromArray(
12769 A2(
12770 $author$project$Html$Common$trClass,
12771 'no-table',
12772 _List_fromArray(
12774 A2(
12775 $elm$html$Html$td,
12776 _List_fromArray(
12778 $elm$html$Html$Attributes$colspan(8)
12779 ]),
12780 _List_fromArray(
12782 A2(
12783 $author$project$Html$Common$divClass,
12784 'loading loading--enlarged loading--alternate',
12785 _List_fromArray(
12787 $elm$html$Html$text('Loading...')
12788 ]))
12789 ]))
12790 ]))
12791 ]));
12792var $author$project$Page$Deployment$ActionTable$tablePrimaryBodyView = F2(
12793 function (model, deployments) {
12794 switch (deployments.$) {
12795 case 'Success':
12796 var d = deployments.a;
12797 return A2(
12798 $author$project$Page$Deployment$ActionTable$tableDeploymentsView,
12799 model,
12800 A2(
12801 $elm$core$List$concatMap,
12802 function ($) {
12803 return $.logs;
12805 d));
12806 case 'Failure':
12807 return $author$project$Page$Deployment$ActionTable$tableFailureView;
12808 default:
12809 return $author$project$Page$Deployment$ActionTable$tableLoadingView;
12811 });
12812var $elm$html$Html$th = _VirtualDom_node('th');
12813var $elm$html$Html$thead = _VirtualDom_node('thead');
12814var $author$project$Page$Deployment$ActionTable$tablePrimaryHeaderView = function () {
12815 var simpleTh = function (txt) {
12816 return A2(
12817 $elm$html$Html$th,
12818 _List_Nil,
12819 _List_fromArray(
12821 $elm$html$Html$text(txt)
12822 ]));
12824 return A2(
12825 $elm$html$Html$thead,
12826 _List_Nil,
12827 _List_fromArray(
12829 A2(
12830 $elm$html$Html$tr,
12831 _List_Nil,
12832 _List_fromArray(
12834 simpleTh('Action Type'),
12835 simpleTh('Deployment configuration'),
12836 simpleTh('App configuration'),
12837 simpleTh('Exit code'),
12838 simpleTh('Created'),
12839 simpleTh('Deployment duration')
12840 ]))
12841 ]));
12842}();
12843var $author$project$Page$Deployment$ActionTable$view = F2(
12844 function (model, logs) {
12845 return A2(
12846 $author$project$Html$Common$divClass,
12847 'table table--actions',
12848 _List_fromArray(
12850 A2(
12851 $elm$html$Html$table,
12852 _List_Nil,
12853 _List_fromArray(
12855 $author$project$Page$Deployment$ActionTable$tablePrimaryHeaderView,
12856 A2($author$project$Page$Deployment$ActionTable$tablePrimaryBodyView, model, logs)
12857 ]))
12858 ]));
12859 });
12860var $author$project$Page$Deployment$actionsView = function (model) {
12861 return A2(
12862 $author$project$Html$Common$divClass,
12863 'deployment__section',
12864 _List_fromArray(
12866 A2(
12867 $author$project$Html$Common$h3Class,
12868 'deployment__sub-heading',
12869 _List_fromArray(
12871 $elm$html$Html$text('Actions')
12872 ])),
12873 A2(
12874 $author$project$Html$Common$divClass,
12875 'deployment__widget',
12876 _List_fromArray(
12878 A2(
12879 $elm$html$Html$map,
12880 $author$project$Page$Deployment$ActionMsg,
12881 A2($author$project$Page$Deployment$ActionTable$view, model.actionTable, model.logs))
12882 ]))
12883 ]));
12885var $author$project$Page$Deployment$deploymentLinksView = F2(
12886 function (_v0, deployment) {
12887 var link = function (m) {
12888 return A3(
12889 $author$project$Html$Common$aClassHrefExternal,
12890 'listing__item external bar bar--larger',
12891 m.link,
12892 _List_fromArray(
12894 $elm$html$Html$text(m.name)
12895 ]));
12897 return A2(
12898 $author$project$Html$Common$divClass,
12899 'deployment__section',
12900 _List_fromArray(
12902 A2(
12903 $author$project$Html$Common$h3Class,
12904 'deployment__sub-heading',
12905 _List_fromArray(
12907 $elm$html$Html$text('Links')
12908 ])),
12909 A2(
12910 $author$project$Html$Common$divClass,
12911 'deployment__widget',
12912 _List_fromArray(
12914 A2(
12915 $author$project$Html$Common$divClass,
12916 'listing',
12917 A2($elm$core$List$map, link, deployment.metadata))
12918 ]))
12919 ]));
12920 });
12921var $author$project$Html$Common$dateView = F2(
12922 function (zone, time) {
12923 var year = $elm$core$String$fromInt(
12924 A2($elm$time$Time$toYear, zone, time));
12925 var toMonth = function (month_) {
12926 switch (month_.$) {
12927 case 'Jan':
12928 return '01';
12929 case 'Feb':
12930 return '02';
12931 case 'Mar':
12932 return '03';
12933 case 'Apr':
12934 return '04';
12935 case 'May':
12936 return '05';
12937 case 'Jun':
12938 return '06';
12939 case 'Jul':
12940 return '07';
12941 case 'Aug':
12942 return '08';
12943 case 'Sep':
12944 return '09';
12945 case 'Oct':
12946 return '10';
12947 case 'Nov':
12948 return '11';
12949 default:
12950 return '12';
12953 var month = toMonth(
12954 A2($elm$time$Time$toMonth, zone, time));
12955 var day = A3(
12956 $elm$core$String$padLeft,
12958 _Utils_chr('0'),
12959 $elm$core$String$fromInt(
12960 A2($elm$time$Time$toDay, zone, time)));
12961 return $elm$html$Html$text(
12962 A2(
12963 $elm$core$String$join,
12964 '-',
12965 _List_fromArray(
12966 [year, month, day])));
12967 });
12968var $author$project$Page$Deployment$deploymentSummaryView = F2(
12969 function (model, deployment) {
12970 var statusView = function () {
12971 var _v0 = deployment.status;
12972 if (_v0.$ === 'DeploymentPending') {
12973 return A2(
12974 $author$project$Html$Common$divClass,
12975 'status status--pending',
12976 _List_fromArray(
12978 $elm$html$Html$text('Pending...')
12979 ]));
12980 } else {
12981 switch (_v0.a.$) {
12982 case 'Running':
12983 var _v1 = _v0.a;
12984 return A2(
12985 $author$project$Html$Common$divClass,
12986 'status status--success',
12987 _List_fromArray(
12989 $elm$html$Html$text('Running')
12990 ]));
12991 case 'Failure':
12992 return A2(
12993 $author$project$Html$Common$divClass,
12994 'status status--failure',
12995 _List_fromArray(
12997 $elm$html$Html$text('Failure')
12998 ]));
12999 case 'CreatePending':
13000 var _v2 = _v0.a;
13001 return A2(
13002 $author$project$Html$Common$divClass,
13003 'loading loading--status-alike',
13004 _List_fromArray(
13006 $elm$html$Html$text('Creating...')
13007 ]));
13008 case 'UpdatePending':
13009 var _v3 = _v0.a;
13010 return A2(
13011 $author$project$Html$Common$divClass,
13012 'loading loading--status-alike',
13013 _List_fromArray(
13015 $elm$html$Html$text('Updating...')
13016 ]));
13017 case 'ArchivePending':
13018 var _v4 = _v0.a;
13019 return A2(
13020 $author$project$Html$Common$divClass,
13021 'loading loading--status-alike',
13022 _List_fromArray(
13024 $elm$html$Html$text('Archiving...')
13025 ]));
13026 case 'Archived':
13027 var _v5 = _v0.a;
13028 return A2(
13029 $author$project$Html$Common$divClass,
13030 'status status--archived',
13031 _List_fromArray(
13033 $elm$html$Html$text('Archived')
13034 ]));
13035 default:
13036 var _v6 = _v0.a;
13037 return A2(
13038 $author$project$Html$Common$divClass,
13039 'status status--failure',
13040 _List_fromArray(
13042 $elm$html$Html$text('Cleanup failed (contact admin)')
13043 ]));
13046 }();
13047 return A2(
13048 $author$project$Html$Common$divClass,
13049 'deployment__summary',
13050 _List_fromArray(
13052 A2(
13053 $author$project$Html$Common$divClass,
13054 'deployment__stat',
13055 _List_fromArray(
13057 A2(
13058 $author$project$Html$Common$bClass,
13059 'deployment__param',
13060 _List_fromArray(
13062 $elm$html$Html$text('Status')
13063 ])),
13064 A2(
13065 $author$project$Html$Common$divClass,
13066 'deployment__value',
13067 _List_fromArray(
13068 [statusView]))
13069 ])),
13070 A2(
13071 $author$project$Html$Common$divClass,
13072 'deployment__stat',
13073 _List_fromArray(
13075 A2(
13076 $author$project$Html$Common$bClass,
13077 'deployment__param',
13078 _List_fromArray(
13080 $elm$html$Html$text('Created')
13081 ])),
13082 A2(
13083 $author$project$Html$Common$divClass,
13084 'deployment__value',
13085 _List_fromArray(
13087 A2($author$project$Html$Common$dateView, model.settings.zone, deployment.createdAt)
13088 ]))
13089 ])),
13090 A2(
13091 $author$project$Html$Common$divClass,
13092 'deployment__stat',
13093 _List_fromArray(
13095 A2(
13096 $author$project$Html$Common$bClass,
13097 'deployment__param',
13098 _List_fromArray(
13100 $elm$html$Html$text('Changed')
13101 ])),
13102 A2(
13103 $author$project$Html$Common$divClass,
13104 'deployment__value',
13105 _List_fromArray(
13107 A2($author$project$Html$Common$dateView, model.settings.zone, deployment.updatedAt)
13108 ]))
13109 ]))
13110 ]));
13111 });
13112var $author$project$Html$Overrides$overridesSectionLoading = function (mode) {
13113 var rowLoader = A2(
13114 $author$project$Html$Common$divClass,
13115 'editable-row loader',
13116 _List_fromArray(
13118 A2($author$project$Html$Common$divClass, 'editable-row__placeholder', _List_Nil),
13119 A2($author$project$Html$Common$divClass, 'editable-row__placeholder', _List_Nil),
13120 A2($author$project$Html$Common$divClass, 'overrides__delete spot spot--loader', _List_Nil)
13121 ]));
13122 var addBtn = function () {
13123 if (mode.$ === 'Read') {
13124 return _List_Nil;
13125 } else {
13126 return _List_fromArray(
13128 A2(
13129 $author$project$Html$Common$divClass,
13130 'padded',
13131 _List_fromArray(
13133 A2(
13134 $elm$html$Html$button,
13135 _List_fromArray(
13137 $elm$html$Html$Attributes$class('dash--disabled dash dash--add overrides__add'),
13138 $elm$html$Html$Attributes$disabled(true)
13139 ]),
13140 _List_fromArray(
13142 $elm$html$Html$text('Add an override')
13143 ]))
13144 ]))
13145 ]);
13147 }();
13148 return A2(
13149 $author$project$Html$Common$divClass,
13150 'deployment__widget',
13151 _Utils_ap(
13152 addBtn,
13153 _List_fromArray(
13154 [rowLoader, rowLoader, rowLoader])));
13156var $author$project$Html$Overrides$AddOverride = {$: 'AddOverride'};
13157var $elm$core$Dict$filter = F2(
13158 function (isGood, dict) {
13159 return A3(
13160 $elm$core$Dict$foldl,
13161 F3(
13162 function (k, v, d) {
13163 return A2(isGood, k, v) ? A3($elm$core$Dict$insert, k, v, d) : d;
13164 }),
13165 $elm$core$Dict$empty,
13166 dict);
13167 });
13168var $elm$core$Dict$isEmpty = function (dict) {
13169 if (dict.$ === 'RBEmpty_elm_builtin') {
13170 return true;
13171 } else {
13172 return false;
13175var $elm$core$Set$member = F2(
13176 function (key, _v0) {
13177 var dict = _v0.a;
13178 return A2($elm$core$Dict$member, key, dict);
13179 });
13180var $author$project$Html$Overrides$DeleteOverride = function (a) {
13181 return {$: 'DeleteOverride', a: a};
13183var $author$project$Html$Overrides$RestoreOverride = function (a) {
13184 return {$: 'RestoreOverride', a: a};
13186var $author$project$Html$Overrides$EditOverrideName = F2(
13187 function (a, b) {
13188 return {$: 'EditOverrideName', a: a, b: b};
13189 });
13190var $author$project$Html$Overrides$HideAutocomplete = {$: 'HideAutocomplete'};
13191var $author$project$Html$Overrides$ShowAutocomplete = function (a) {
13192 return {$: 'ShowAutocomplete', a: a};
13194var $elm$html$Html$input = _VirtualDom_node('input');
13195var $elm$html$Html$li = _VirtualDom_node('li');
13196var $elm$html$Html$Events$onBlur = function (msg) {
13197 return A2(
13198 $elm$html$Html$Events$on,
13199 'blur',
13200 $elm$json$Json$Decode$succeed(msg));
13202var $elm$html$Html$Events$onFocus = function (msg) {
13203 return A2(
13204 $elm$html$Html$Events$on,
13205 'focus',
13206 $elm$json$Json$Decode$succeed(msg));
13208var $elm$html$Html$Events$alwaysStop = function (x) {
13209 return _Utils_Tuple2(x, true);
13211var $elm$html$Html$Events$targetValue = A2(
13212 $elm$json$Json$Decode$at,
13213 _List_fromArray(
13214 ['target', 'value']),
13215 $elm$json$Json$Decode$string);
13216var $elm$html$Html$Events$onInput = function (tagger) {
13217 return A2(
13218 $elm$html$Html$Events$stopPropagationOn,
13219 'input',
13220 A2(
13221 $elm$json$Json$Decode$map,
13222 $elm$html$Html$Events$alwaysStop,
13223 A2($elm$json$Json$Decode$map, tagger, $elm$html$Html$Events$targetValue)));
13225var $elm$html$Html$Events$onMouseDown = function (msg) {
13226 return A2(
13227 $elm$html$Html$Events$on,
13228 'mousedown',
13229 $elm$json$Json$Decode$succeed(msg));
13231var $elm$html$Html$Attributes$placeholder = $elm$html$Html$Attributes$stringProperty('placeholder');
13232var $elm$html$Html$Attributes$spellcheck = $elm$html$Html$Attributes$boolProperty('spellcheck');
13233var $elm$html$Html$Attributes$type_ = $elm$html$Html$Attributes$stringProperty('type');
13234var $elm$html$Html$ul = _VirtualDom_node('ul');
13235var $author$project$Html$Common$ulClass = $author$project$Html$Common$elClass($elm$html$Html$ul);
13236var $elm$html$Html$Attributes$value = $elm$html$Html$Attributes$stringProperty('value');
13237var $author$project$Html$Overrides$overrideNameWriteView = F6(
13238 function (model, inputClass, deleted, overrideName, keys, ix) {
13239 var suggestions = A2(
13240 $elm$core$List$filter,
13241 A2(
13242 $elm$core$Basics$composeR,
13243 $author$project$Types$Override$unOverrideName,
13244 $elm$core$String$startsWith(overrideName)),
13245 keys);
13246 var suggestionItem = function (suggestion) {
13247 return A2(
13248 $elm$html$Html$li,
13249 _List_fromArray(
13251 $elm$html$Html$Attributes$class('input__suggest'),
13252 $elm$html$Html$Events$onMouseDown(
13253 A2(
13254 $author$project$Html$Overrides$EditOverrideName,
13255 ix,
13256 $author$project$Types$Override$unOverrideName(suggestion)))
13257 ]),
13258 _List_fromArray(
13260 A2(
13261 $elm$html$Html$b,
13262 _List_Nil,
13263 _List_fromArray(
13265 $elm$html$Html$text(overrideName)
13266 ])),
13267 $elm$html$Html$text(
13268 A2(
13269 $elm$core$String$dropLeft,
13270 $elm$core$String$length(overrideName),
13271 $author$project$Types$Override$unOverrideName(suggestion)))
13272 ]));
13274 var suggestionsView = function () {
13275 var _v0 = model.autocomplete;
13276 if (_v0.$ === 'Nothing') {
13277 return _List_Nil;
13278 } else {
13279 var ax = _v0.a;
13280 return (_Utils_eq(ax, ix) && ($elm$core$List$length(suggestions) > 0)) ? _List_fromArray(
13282 A2(
13283 $author$project$Html$Common$ulClass,
13284 'input__dropdown',
13285 A2($elm$core$List$map, suggestionItem, suggestions))
13286 ]) : _List_Nil;
13288 }();
13289 var nameClass = 'editable-row__value input' + (deleted ? ' input--deleted' : '');
13290 var inputName = A2(
13291 $elm$html$Html$input,
13292 _List_fromArray(
13294 $elm$html$Html$Attributes$class(inputClass),
13295 $elm$html$Html$Attributes$placeholder('value'),
13296 $elm$html$Html$Attributes$spellcheck(false),
13297 $elm$html$Html$Attributes$type_('text'),
13298 $elm$html$Html$Attributes$value(overrideName),
13299 $elm$html$Html$Attributes$disabled(deleted),
13300 $elm$html$Html$Events$onInput(
13301 $author$project$Html$Overrides$EditOverrideName(ix)),
13302 $elm$html$Html$Events$onFocus(
13303 $author$project$Html$Overrides$ShowAutocomplete(ix)),
13304 $elm$html$Html$Events$onBlur($author$project$Html$Overrides$HideAutocomplete)
13305 ]),
13306 _List_Nil);
13307 return A2(
13308 $author$project$Html$Common$divClass,
13309 nameClass,
13310 A2($elm$core$List$cons, inputName, suggestionsView));
13311 });
13312var $author$project$Html$Overrides$EditOverrideValue = F2(
13313 function (a, b) {
13314 return {$: 'EditOverrideValue', a: a, b: b};
13315 });
13316var $author$project$Html$Overrides$overrideValueWriteView = F5(
13317 function (_v0, inputClass, deleted, overrideValue, ix) {
13318 var valueClass = 'editable-row__value input' + (deleted ? ' input--deleted' : '');
13319 var valueClass_ = ((!deleted) && (overrideValue === '')) ? (valueClass + ' input--error') : valueClass;
13320 return A2(
13321 $author$project$Html$Common$divClass,
13322 valueClass_,
13323 A2(
13324 $elm$core$List$cons,
13325 A2(
13326 $elm$html$Html$input,
13327 _List_fromArray(
13329 $elm$html$Html$Attributes$class(inputClass),
13330 $elm$html$Html$Attributes$placeholder('value'),
13331 $elm$html$Html$Attributes$spellcheck(false),
13332 $elm$html$Html$Attributes$type_('text'),
13333 $elm$html$Html$Attributes$disabled(deleted),
13334 $elm$html$Html$Attributes$value(overrideValue),
13335 $elm$html$Html$Events$onInput(
13336 $author$project$Html$Overrides$EditOverrideValue(ix))
13337 ]),
13338 _List_Nil),
13339 ((!deleted) && (overrideValue === '')) ? _List_fromArray(
13341 A2(
13342 $author$project$Html$Common$divClass,
13343 'input__output',
13344 _List_fromArray(
13346 $elm$html$Html$text('Value can not be empty')
13347 ]))
13348 ]) : _List_Nil));
13349 });
13350var $author$project$Html$Overrides$overrideWriteView = F7(
13351 function (nameInputClass, valueInputClass, deleted, model, nameInput, valueInput, ix) {
13352 var _v0 = deleted ? _Utils_Tuple2(
13353 'editable-row__delete spot spot--undo',
13354 $author$project$Html$Overrides$RestoreOverride(ix)) : _Utils_Tuple2(
13355 'editable-row__delete spot spot--cancel',
13356 $author$project$Html$Overrides$DeleteOverride(ix));
13357 var btnClass = _v0.a;
13358 var btnMsg = _v0.b;
13359 return A2(
13360 $author$project$Html$Common$divClass,
13361 'row',
13362 _List_fromArray(
13364 A2(
13365 $author$project$Html$Common$divClass,
13366 'editable-row',
13367 _List_fromArray(
13369 A6($author$project$Html$Overrides$overrideNameWriteView, model, nameInputClass, deleted, nameInput, model.keys, ix),
13370 A5($author$project$Html$Overrides$overrideValueWriteView, model, valueInputClass, deleted, valueInput, ix),
13371 A3($author$project$Html$Common$buttonClass, btnClass, btnMsg, _List_Nil)
13372 ]))
13373 ]));
13374 });
13375var $author$project$Html$Overrides$defaultOverrideWriteView = A3($author$project$Html$Overrides$overrideWriteView, 'input__widget key-default-pristine', 'input__widget value-pristine', false);
13376var $author$project$Html$Overrides$deletedOverrideWriteView = A3($author$project$Html$Overrides$overrideWriteView, 'input__widget key-deleted', 'input__widget value-deleted', true);
13377var $author$project$Html$Overrides$editedOverrideWriteView = A3($author$project$Html$Overrides$overrideWriteView, 'input__widget key-default-edited', 'input__widget value-edited', false);
13378var $author$project$Html$Overrides$newOverrideWriteView = A3($author$project$Html$Overrides$overrideWriteView, 'input__widget key-custom-pristine', 'input__widget value-edited', false);
13379var $author$project$Html$Overrides$overrideWriteWrapper = F3(
13380 function (model, ix, wrapped) {
13381 var _v0 = function () {
13382 if (wrapped.$ === 'DefaultOverride') {
13383 var override = wrapped.a;
13384 return _Utils_Tuple3($author$project$Html$Overrides$defaultOverrideWriteView, override.name, override.value);
13385 } else {
13386 var override = wrapped.a;
13387 var _v2 = override.status;
13388 switch (_v2.$) {
13389 case 'Edited':
13390 return _Utils_Tuple3($author$project$Html$Overrides$editedOverrideWriteView, override.name, override.value);
13391 case 'Deleted':
13392 return _Utils_Tuple3($author$project$Html$Overrides$deletedOverrideWriteView, override.name, override.value);
13393 default:
13394 return _Utils_Tuple3($author$project$Html$Overrides$newOverrideWriteView, override.name, override.value);
13397 }();
13398 var viewer = _v0.a;
13399 var overrideName = _v0.b;
13400 var overrideValue = _v0.c;
13401 return A4(
13402 viewer,
13403 model,
13404 $author$project$Types$Override$unOverrideName(overrideName),
13405 overrideValue,
13406 ix);
13407 });
13408var $elm$core$List$sortBy = _List_sortBy;
13409var $author$project$Html$Overrides$newOverridesView = F2(
13410 function (model, overrides) {
13411 var overridesSorted = $elm$core$List$reverse(
13412 A2(
13413 $elm$core$List$sortBy,
13414 function (_v2) {
13415 var ix = _v2.a;
13416 return ix;
13418 $elm$core$Dict$toList(overrides)));
13419 var newOverrideWriteView_ = function (_v1) {
13420 var ix = _v1.a;
13421 var override = _v1.b;
13422 return A3(
13423 $author$project$Html$Overrides$overrideWriteWrapper,
13424 model,
13425 ix,
13426 $author$project$Html$Overrides$NonOverrideWithDefault(override));
13428 var _v0 = model.mode;
13429 if (_v0.$ === 'Write') {
13430 return A2($elm$core$List$map, newOverrideWriteView_, overridesSorted);
13431 } else {
13432 return _List_Nil;
13434 });
13435var $elm_community$list_extra$List$Extra$inits = A2(
13436 $elm$core$List$foldr,
13437 F2(
13438 function (e, acc) {
13439 return A2(
13440 $elm$core$List$cons,
13441 _List_Nil,
13442 A2(
13443 $elm$core$List$map,
13444 $elm$core$List$cons(e),
13445 acc));
13446 }),
13447 _List_fromArray(
13448 [_List_Nil]));
13449var $author$project$Html$Overrides$isDefautOverride = function (w) {
13450 if (w.$ === 'DefaultOverride') {
13451 return true;
13452 } else {
13453 return false;
13456var $author$project$Html$Overrides$CloseName = function (a) {
13457 return {$: 'CloseName', a: a};
13459var $author$project$Html$Overrides$OpenName = function (a) {
13460 return {$: 'OpenName', a: a};
13462var $author$project$Html$Overrides$overrideReadView = F4(
13463 function (nameClass, valueClass, nameInput, valueInput) {
13464 return A2(
13465 $author$project$Html$Common$divClass,
13466 'row',
13467 _List_fromArray(
13469 A2(
13470 $author$project$Html$Common$spanClass,
13471 nameClass,
13472 _List_fromArray(
13474 $elm$html$Html$text(nameInput + ': ')
13475 ])),
13476 A2(
13477 $author$project$Html$Common$spanClass,
13478 valueClass,
13479 _List_fromArray(
13481 $elm$html$Html$text(valueInput)
13482 ]))
13483 ]));
13484 });
13485var $author$project$Html$Overrides$defaultOverrideReadView = A2($author$project$Html$Overrides$overrideReadView, 'key-default-pristine', 'value-pristine');
13486var $author$project$Html$Overrides$deletedOverrideReadView = A2($author$project$Html$Overrides$overrideReadView, 'key-deleted', 'value-deleted');
13487var $author$project$Html$Overrides$editedOverrideReadView = A2($author$project$Html$Overrides$overrideReadView, 'key-default-edited', 'value-edited');
13488var $author$project$Html$Overrides$newOverrideReadView = A2($author$project$Html$Overrides$overrideReadView, 'key-custom-edited', 'value-edited');
13489var $author$project$Html$Overrides$overrideReadWrapper = function (wrapped) {
13490 if (wrapped.$ === 'DefaultOverride') {
13491 var override = wrapped.a;
13492 return A2(
13493 $author$project$Html$Overrides$defaultOverrideReadView,
13494 $author$project$Types$Override$unOverrideName(override.name),
13495 override.value);
13496 } else {
13497 var override = wrapped.a;
13498 var _v1 = override.status;
13499 switch (_v1.$) {
13500 case 'Edited':
13501 return A2(
13502 $author$project$Html$Overrides$editedOverrideReadView,
13503 $author$project$Types$Override$unOverrideName(override.name),
13504 override.value);
13505 case 'Deleted':
13506 return A2(
13507 $author$project$Html$Overrides$deletedOverrideReadView,
13508 $author$project$Types$Override$unOverrideName(override.name),
13509 override.value);
13510 default:
13511 return A2(
13512 $author$project$Html$Overrides$newOverrideReadView,
13513 $author$project$Types$Override$unOverrideName(override.name),
13514 override.value);
13518var $author$project$Html$Overrides$treeOverrideView = F5(
13519 function (model, treeData, editedNames, piecies, treeSchema) {
13520 if (treeSchema.$ === 'Node') {
13521 if ((treeSchema.b.b && (treeSchema.b.a.$ === 'Leaf')) && (!treeSchema.b.b.b)) {
13522 var _v1 = treeSchema.b;
13523 var ix = _v1.a.a;
13524 var _v2 = _Utils_Tuple2(
13525 model.mode,
13526 A2($elm$core$Dict$get, ix, treeData));
13527 _v2$2:
13528 while (true) {
13529 if (_v2.a.$ === 'Write') {
13530 if (_v2.b.$ === 'Just') {
13531 var _v3 = _v2.a;
13532 var override = _v2.b.a;
13533 return A3($author$project$Html$Overrides$overrideWriteWrapper, model, ix, override);
13534 } else {
13535 break _v2$2;
13537 } else {
13538 if (_v2.b.$ === 'Just') {
13539 var _v4 = _v2.a;
13540 var override = _v2.b.a;
13541 return $author$project$Html$Overrides$overrideReadWrapper(override);
13542 } else {
13543 break _v2$2;
13547 return A2($elm$html$Html$div, _List_Nil, _List_Nil);
13548 } else {
13549 var piece = treeSchema.a;
13550 var cs = treeSchema.b;
13551 var btnClass = A2(
13552 $elm$core$Set$member,
13553 A2($elm$core$List$cons, piece, piecies),
13554 editedNames) ? 'collapse__head collapse__head--has-changes' : 'collapse__head';
13555 return A2(
13556 $elm$core$Set$member,
13557 A2($elm$core$List$cons, piece, piecies),
13558 model.openedNames) ? A2(
13559 $author$project$Html$Common$divClass,
13560 'collapse--project collapse collapse--expanded',
13561 _List_fromArray(
13563 A3(
13564 $author$project$Html$Common$buttonClass,
13565 btnClass,
13566 $author$project$Html$Overrides$CloseName(
13567 A2($elm$core$List$cons, piece, piecies)),
13568 _List_fromArray(
13570 $elm$html$Html$text(piece)
13571 ])),
13572 A2(
13573 $author$project$Html$Common$divClass,
13574 'collapse__inner',
13575 A2(
13576 $elm$core$List$map,
13577 A4(
13578 $author$project$Html$Overrides$treeOverrideView,
13579 model,
13580 treeData,
13581 editedNames,
13582 A2($elm$core$List$cons, piece, piecies)),
13583 cs))
13584 ])) : A2(
13585 $author$project$Html$Common$divClass,
13586 'collapse--project collapse',
13587 _List_fromArray(
13589 A3(
13590 $author$project$Html$Common$buttonClass,
13591 btnClass,
13592 $author$project$Html$Overrides$OpenName(
13593 A2($elm$core$List$cons, piece, piecies)),
13594 _List_fromArray(
13596 $elm$html$Html$text(piece)
13597 ])),
13598 A2($author$project$Html$Common$divClass, 'collapse__inner', _List_Nil)
13599 ]));
13601 } else {
13602 return A2($elm$html$Html$div, _List_Nil, _List_Nil);
13604 });
13605var $author$project$Html$Overrides$overridesLevelView = function (model) {
13606 var treeData = A2($author$project$Html$Overrides$mkWrappedOverride, model.defaultOverrides, model.editedOverrides);
13607 var editedNames = $elm$core$Set$fromList(
13608 $elm$core$List$concat(
13609 A2(
13610 $elm$core$List$map,
13611 A2(
13612 $elm$core$Basics$composeR,
13613 $elm$core$Tuple$second,
13614 A2(
13615 $elm$core$Basics$composeR,
13616 $author$project$Html$Overrides$getWrappedName,
13617 A2(
13618 $elm$core$Basics$composeR,
13619 $author$project$Types$Override$unOverrideName,
13620 A2(
13621 $elm$core$Basics$composeR,
13622 $elm$core$String$split('.'),
13623 A2(
13624 $elm$core$Basics$composeR,
13625 $elm_community$list_extra$List$Extra$inits,
13626 $elm$core$List$map($elm$core$List$reverse)))))),
13627 A2(
13628 $elm$core$List$filter,
13629 A2(
13630 $elm$core$Basics$composeR,
13631 $elm$core$Tuple$second,
13632 A2($elm$core$Basics$composeR, $author$project$Html$Overrides$isDefautOverride, $elm$core$Basics$not)),
13633 $elm$core$Dict$toList(treeData)))));
13634 return A2(
13635 $elm$core$List$map,
13636 A4($author$project$Html$Overrides$treeOverrideView, model, treeData, editedNames, _List_Nil),
13637 model.treeSchema);
13639var $author$project$Tree$values = function (t) {
13640 if (t.$ === 'Node') {
13641 var cs = t.b;
13642 return $elm$core$List$concat(
13643 A2($elm$core$List$map, $author$project$Tree$values, cs));
13644 } else {
13645 var x = t.a;
13646 return _List_fromArray(
13647 [x]);
13650var $author$project$Html$Overrides$overridesSectionData = function (model) {
13651 var treeIds = $elm$core$Set$fromList(
13652 A2($elm$core$List$concatMap, $author$project$Tree$values, model.treeSchema));
13653 var newOverrides = A2(
13654 $elm$core$Dict$filter,
13655 F2(
13656 function (id, _v2) {
13657 return !A2($elm$core$Set$member, id, treeIds);
13658 }),
13659 model.editedOverrides);
13660 var isEmptyOverride = F2(
13661 function (_v1, v) {
13662 return v.value === '';
13663 });
13664 var hasEmptyOverrides = function (overrides) {
13665 return A3(
13666 $elm$core$Basics$composeR,
13667 $elm$core$Dict$isEmpty,
13668 $elm$core$Basics$not,
13669 A2($elm$core$Dict$filter, isEmptyOverride, overrides));
13671 var addButton = function () {
13672 var _v0 = model.mode;
13673 if (_v0.$ === 'Write') {
13674 return _List_fromArray(
13676 hasEmptyOverrides(newOverrides) ? A2(
13677 $elm$html$Html$button,
13678 _List_fromArray(
13680 $elm$html$Html$Attributes$class('dash--disabled dash dash--add overrides__add'),
13681 $elm$html$Html$Attributes$disabled(true)
13682 ]),
13683 _List_fromArray(
13685 $elm$html$Html$text('Add an override')
13686 ])) : A3(
13687 $author$project$Html$Common$buttonClass,
13688 'dash dash--add overrides__add',
13689 $author$project$Html$Overrides$AddOverride,
13690 _List_fromArray(
13692 $elm$html$Html$text('Add an override')
13693 ]))
13694 ]);
13695 } else {
13696 return _List_Nil;
13698 }();
13699 return A2(
13700 $author$project$Html$Common$divClass,
13701 'deployment__widget',
13702 _List_fromArray(
13704 A2(
13705 $author$project$Html$Common$divClass,
13706 'padded',
13707 _Utils_ap(
13708 addButton,
13709 _Utils_ap(
13710 A2($author$project$Html$Overrides$newOverridesView, model, newOverrides),
13711 $author$project$Html$Overrides$overridesLevelView(model))))
13712 ]));
13714var $author$project$Html$Overrides$view = function (model) {
13715 return A2(
13716 $author$project$Html$Common$divClass,
13717 'deployment__section',
13718 _List_fromArray(
13720 A2(
13721 $author$project$Html$Common$h3Class,
13722 'deployment__sub-heading',
13723 _List_fromArray(
13725 $elm$html$Html$text(model.name)
13726 ])),
13727 $author$project$Html$Overrides$overridesSectionData(model)
13728 ]));
13730var $author$project$Page$Deployment$overridesView = F2(
13731 function (overrides, mapper) {
13732 return A2(
13733 $elm$html$Html$map,
13734 mapper,
13735 function () {
13736 if (overrides.$ === 'Success') {
13737 var x = overrides.a;
13738 return $author$project$Html$Overrides$view(x);
13739 } else {
13740 return $author$project$Html$Overrides$overridesSectionLoading($author$project$Html$Overrides$Read);
13742 }());
13743 });
13744var $author$project$Page$Deployment$deploymentView = F2(
13745 function (model, deployment) {
13746 return A2(
13747 $author$project$Html$Common$divClass,
13748 'deployment',
13749 _List_fromArray(
13751 A2($author$project$Page$Deployment$deploymentSummaryView, model, deployment),
13752 A2($author$project$Page$Deployment$deploymentLinksView, model, deployment),
13753 A2($author$project$Page$Deployment$overridesView, model.deploymentOverrides, $author$project$Page$Deployment$DeploymentOverridesMsg),
13754 A2($author$project$Page$Deployment$overridesView, model.appOverrides, $author$project$Page$Deployment$AppOverridesMsg),
13755 $author$project$Page$Deployment$actionsView(model)
13756 ]));
13757 });
13758var $author$project$Page$Deployment$failureDeploymentView = function (model) {
13759 return A2(
13760 $author$project$Html$Common$divClass,
13761 'no-deployment',
13762 _List_fromArray(
13764 A2(
13765 $author$project$Html$Common$divClass,
13766 'null null--data',
13767 _List_fromArray(
13769 A2(
13770 $author$project$Html$Common$divClass,
13771 'null__content',
13772 _List_fromArray(
13774 A2(
13775 $author$project$Html$Common$bClass,
13776 'null__heading',
13777 _List_fromArray(
13779 $elm$html$Html$text('Cannot retrieve the data'),
13780 A2(
13781 $author$project$Html$Common$divClass,
13782 'null__message',
13783 _List_fromArray(
13785 $elm$html$Html$text('Try to reload page')
13786 ]))
13787 ]))
13788 ]))
13789 ]))
13790 ]));
13792var $author$project$Page$Deployment$loadingDeploymentView = function (model) {
13793 return A2(
13794 $author$project$Html$Common$divClass,
13795 'no-deployment',
13796 _List_fromArray(
13798 A2(
13799 $author$project$Html$Common$divClass,
13800 'loading loading--enlarged loading--alternate',
13801 _List_fromArray(
13803 $elm$html$Html$text('Loading ...')
13804 ]))
13805 ]));
13807var $author$project$Page$Deployment$pageBodyView = function (model) {
13808 return A2(
13809 $author$project$Html$Common$divClass,
13810 'page__body',
13811 _List_fromArray(
13813 function () {
13814 var _v0 = model.deployment;
13815 switch (_v0.$) {
13816 case 'Success':
13817 var deployment = _v0.a;
13818 return A2($author$project$Page$Deployment$deploymentView, model, deployment);
13819 case 'Failure':
13820 return $author$project$Page$Deployment$failureDeploymentView(model);
13821 default:
13822 return $author$project$Page$Deployment$loadingDeploymentView(model);
13824 }()
13825 ]));
13827var $author$project$Page$Deployment$pageWrapper = function (body) {
13828 return A2(
13829 $author$project$Html$Common$divClass,
13830 'page',
13831 _List_fromArray(
13833 A2($author$project$Html$Common$divClass, 'page__wrap container', body)
13834 ]));
13836var $author$project$Page$Deployment$pageView = function (model) {
13837 return $author$project$Page$Deployment$pageWrapper(
13838 _List_fromArray(
13840 $author$project$Page$Deployment$backButton,
13841 $author$project$Page$Deployment$deploymentHeaderView(model),
13842 $author$project$Page$Deployment$pageBodyView(model)
13843 ]));
13845var $author$project$Page$Sidebar$CreateUpdate$NameInput = function (a) {
13846 return {$: 'NameInput', a: a};
13848var $author$project$Page$Sidebar$CreateUpdate$hasEmptyName = function (model) {
13849 var nameLength = $elm$core$String$length(
13850 $author$project$Types$Deployment$unDeploymentName(model.name));
13851 return (nameLength < 2) || (nameLength > 17);
13853var $author$project$Page$Sidebar$CreateUpdate$nameSection = function (model) {
13854 var nameError = model.nameEdited && $author$project$Page$Sidebar$CreateUpdate$hasEmptyName(model);
13855 var inputClass = nameError ? 'input input--error' : 'input';
13856 var errorMessage = nameError ? _List_fromArray(
13858 A2(
13859 $author$project$Html$Common$divClass,
13860 'input__output',
13861 _List_fromArray(
13863 $elm$html$Html$text('Deployment name length should be longer than 2 characters and under 17 characters and begin with a letter.')
13864 ]))
13865 ]) : _List_Nil;
13866 return A2(
13867 $author$project$Html$Common$divClass,
13868 'deployment__section',
13869 _List_fromArray(
13871 A2(
13872 $author$project$Html$Common$h3Class,
13873 'deployment__sub-heading',
13874 _List_fromArray(
13876 $elm$html$Html$text('Name')
13877 ])),
13878 A2(
13879 $author$project$Html$Common$divClass,
13880 'deployment__widget',
13881 A2(
13882 $elm$core$List$cons,
13883 A2(
13884 $author$project$Html$Common$divClass,
13885 inputClass,
13886 _List_fromArray(
13888 A2(
13889 $elm$html$Html$input,
13890 _List_fromArray(
13892 $elm$html$Html$Attributes$class('input__widget tag'),
13893 $elm$html$Html$Attributes$type_('text'),
13894 $elm$html$Html$Attributes$placeholder('Name'),
13895 $elm$html$Html$Attributes$value(
13896 $author$project$Types$Deployment$unDeploymentName(model.name)),
13897 $elm$html$Html$Events$onInput($author$project$Page$Sidebar$CreateUpdate$NameInput)
13898 ]),
13899 _List_Nil)
13900 ])),
13901 errorMessage))
13902 ]));
13904var $author$project$Page$Sidebar$CreateUpdate$overridesView = F2(
13905 function (overrides, mapper) {
13906 return A2(
13907 $elm$html$Html$map,
13908 mapper,
13909 function () {
13910 if (overrides.$ === 'Success') {
13911 var x = overrides.a;
13912 return $author$project$Html$Overrides$view(x);
13913 } else {
13914 return $author$project$Html$Overrides$overridesSectionLoading($author$project$Html$Overrides$Write);
13916 }());
13917 });
13918var $author$project$Page$Sidebar$CreateUpdate$sidebarContent = function (model) {
13919 var errorViewer = function (msg) {
13920 return _List_fromArray(
13922 A2(
13923 $author$project$Html$Common$divClass,
13924 'deployment__output notification notification--danger',
13925 _List_fromArray(
13927 $elm$html$Html$text(msg)
13928 ]))
13929 ]);
13931 var errorText = function () {
13932 var _v0 = model.saveResp;
13933 if (_v0.$ === 'Failure') {
13934 if (_v0.a.$ === 'BadStatus') {
13935 var _v1 = _v0.a;
13936 var msg = _v1.b;
13937 return $elm$core$Maybe$Just(msg);
13938 } else {
13939 return $elm$core$Maybe$Just('Something went wrong');
13941 } else {
13942 return $elm$core$Maybe$Nothing;
13944 }();
13945 var errorView = A2(
13946 $elm$core$Maybe$withDefault,
13947 _List_Nil,
13948 A2($elm$core$Maybe$map, errorViewer, errorText));
13949 return A2(
13950 $author$project$Html$Common$divClass,
13951 'popup__content',
13952 _List_fromArray(
13954 A2(
13955 $author$project$Html$Common$divClass,
13956 'deployment',
13957 _Utils_ap(
13958 errorView,
13959 _List_fromArray(
13961 $author$project$Page$Sidebar$CreateUpdate$nameSection(model),
13962 A2($author$project$Page$Sidebar$CreateUpdate$overridesView, model.deploymentOverrides, $author$project$Page$Sidebar$CreateUpdate$DeploymentOverridesMsg),
13963 A2($author$project$Page$Sidebar$CreateUpdate$overridesView, model.appOverrides, $author$project$Page$Sidebar$CreateUpdate$AppOverridesMsg)
13964 ])))
13965 ]));
13967var $author$project$Page$Sidebar$CreateUpdate$Close = {$: 'Close'};
13968var $author$project$Page$Sidebar$CreateUpdate$Save = {$: 'Save'};
13969var $elm$html$Html$h2 = _VirtualDom_node('h2');
13970var $author$project$Html$Common$h2Class = $author$project$Html$Common$elClass($elm$html$Html$h2);
13971var $elm$core$List$isEmpty = function (xs) {
13972 if (!xs.b) {
13973 return true;
13974 } else {
13975 return false;
13978var $author$project$Html$Overrides$hasEmptyValues = function (model) {
13979 return A3(
13980 $elm$core$Basics$composeR,
13981 $elm$core$List$isEmpty,
13982 $elm$core$Basics$not,
13983 A2(
13984 $elm$core$List$filter,
13985 function (v) {
13986 return v.value === '';
13988 $author$project$Html$Overrides$getFullOverrides(model)));
13990var $author$project$Page$Sidebar$CreateUpdate$hasEmptyValues = function (model) {
13991 var _v0 = _Utils_Tuple2(model.appOverrides, model.deploymentOverrides);
13992 if ((_v0.a.$ === 'Success') && (_v0.b.$ === 'Success')) {
13993 var appOverrides = _v0.a.a;
13994 var deploymentOverrides = _v0.b.a;
13995 return $author$project$Html$Overrides$hasEmptyValues(appOverrides) || ($author$project$Html$Overrides$hasEmptyValues(deploymentOverrides) || $author$project$Page$Sidebar$CreateUpdate$hasEmptyName(model));
13996 } else {
13997 return true;
14000var $author$project$Page$Sidebar$CreateUpdate$sidebarHeader = function (model) {
14001 var button = function () {
14002 var _v1 = _Utils_Tuple2(
14003 model.saveResp,
14004 $author$project$Page$Sidebar$CreateUpdate$hasEmptyValues(model));
14005 _v1$0:
14006 while (true) {
14007 _v1$1:
14008 while (true) {
14009 if (_v1.b) {
14010 switch (_v1.a.$) {
14011 case 'Loading':
14012 break _v1$0;
14013 case 'Success':
14014 break _v1$1;
14015 default:
14016 return A2(
14017 $elm$html$Html$button,
14018 _List_fromArray(
14020 $elm$html$Html$Attributes$class('button--disabled button button--save popup__action'),
14021 $elm$html$Html$Attributes$disabled(true)
14022 ]),
14023 _List_fromArray(
14025 $elm$html$Html$text('Save')
14026 ]));
14028 } else {
14029 switch (_v1.a.$) {
14030 case 'Loading':
14031 break _v1$0;
14032 case 'Success':
14033 break _v1$1;
14034 default:
14035 return A3(
14036 $author$project$Html$Common$buttonClass,
14037 'button button--save popup__action',
14038 $author$project$Page$Sidebar$CreateUpdate$Save,
14039 _List_fromArray(
14041 $elm$html$Html$text('Save')
14042 ]));
14046 return A2($elm$html$Html$div, _List_Nil, _List_Nil);
14048 var _v2 = _v1.a;
14049 return A2(
14050 $elm$html$Html$button,
14051 _List_fromArray(
14053 $elm$html$Html$Attributes$class('popup__action button button--save-loading'),
14054 $elm$html$Html$Attributes$disabled(true)
14055 ]),
14056 _List_fromArray(
14058 $elm$html$Html$text('Save')
14059 ]));
14060 }();
14061 return A2(
14062 $author$project$Html$Common$divClass,
14063 'popup__head',
14064 _List_fromArray(
14066 A3($author$project$Html$Common$buttonClass, 'popup__close', $author$project$Page$Sidebar$CreateUpdate$Close, _List_Nil),
14067 A2(
14068 $author$project$Html$Common$h2Class,
14069 'popup__project',
14070 _List_fromArray(
14072 $elm$html$Html$text(
14073 function () {
14074 var _v0 = model.mode;
14075 if (_v0.$ === 'Create') {
14076 return 'Create new deployment';
14077 } else {
14078 return 'Update deployment';
14080 }())
14081 ])),
14082 A2(
14083 $author$project$Html$Common$divClass,
14084 'popup__operations',
14085 _List_fromArray(
14086 [button])),
14087 A2($author$project$Html$Common$divClass, 'popup__menu drop drop--actions', _List_Nil)
14088 ]));
14090var $author$project$Page$Sidebar$CreateUpdate$view = function (model) {
14091 return model.visibility ? _List_fromArray(
14093 A2(
14094 $author$project$Html$Common$divClass,
14095 'popup popup--visible',
14096 _List_fromArray(
14098 A2(
14099 $elm$html$Html$div,
14100 _List_fromArray(
14102 A2($elm$html$Html$Attributes$attribute, 'aria-hidden', 'true'),
14103 $elm$html$Html$Attributes$class('popup__overlay')
14104 ]),
14105 _List_Nil),
14106 A2(
14107 $author$project$Html$Common$divClass,
14108 'popup__body',
14109 _List_fromArray(
14111 $author$project$Page$Sidebar$CreateUpdate$sidebarHeader(model),
14112 $author$project$Page$Sidebar$CreateUpdate$sidebarContent(model)
14113 ]))
14114 ]))
14115 ]) : _List_Nil;
14117var $author$project$Page$Deployment$view = function (model) {
14118 return {
14119 content: _Utils_ap(
14120 A2(
14121 $elm$core$List$cons,
14122 $author$project$Page$Deployment$pageView(model),
14123 A2(
14124 $elm$core$List$map,
14125 $elm$html$Html$map($author$project$Page$Deployment$CreateSidebarMsg),
14126 $author$project$Page$Sidebar$CreateUpdate$view(model.sidebar))),
14127 function () {
14128 var _v0 = model.archivePopup;
14129 if (_v0.$ === 'Nothing') {
14130 return _List_Nil;
14131 } else {
14132 var deploymentName = _v0.a;
14133 return _List_fromArray(
14135 $author$project$Page$Deployment$archivePopupView(deploymentName)
14136 ]);
14138 }()),
14139 title: 'Deployments'
14142var $author$project$Page$Deployments$Table$CloseArchivePopup = {$: 'CloseArchivePopup'};
14143var $author$project$Page$Deployments$Table$DeleteDeploymentReq = function (a) {
14144 return {$: 'DeleteDeploymentReq', a: a};
14146var $author$project$Page$Deployments$Table$archivePopupView = function (deploymentName) {
14147 return A2(
14148 $elm$html$Html$div,
14149 _List_fromArray(
14151 $elm$html$Html$Attributes$class('classic-popup'),
14152 A2($elm$html$Html$Attributes$style, 'display', 'block')
14153 ]),
14154 _List_fromArray(
14156 A2(
14157 $author$project$Html$Common$divClass,
14158 'classic-popup__container',
14159 _List_fromArray(
14161 A2(
14162 $author$project$Html$Common$divClass,
14163 'classic-popup__viewport',
14164 _List_fromArray(
14166 A2(
14167 $author$project$Html$Common$divClass,
14168 'classic-popup__slot',
14169 _List_fromArray(
14171 A2(
14172 $author$project$Html$Common$divClass,
14173 'dialog dialog--archive',
14174 _List_fromArray(
14176 A2(
14177 $author$project$Html$Common$divClass,
14178 'dialog__content',
14179 _List_fromArray(
14181 $elm$html$Html$text('Are you sure you want to archive the'),
14182 A2($elm$html$Html$br, _List_Nil, _List_Nil),
14183 $elm$html$Html$text(
14184 $author$project$Types$Deployment$unDeploymentName(deploymentName)),
14185 $elm$html$Html$text(' deployment?')
14186 ])),
14187 A2(
14188 $author$project$Html$Common$divClass,
14189 'dialog__footer',
14190 _List_fromArray(
14192 A3(
14193 $author$project$Html$Common$buttonClass,
14194 'button dialog__action',
14195 $author$project$Page$Deployments$Table$DeleteDeploymentReq(deploymentName),
14196 _List_fromArray(
14198 $elm$html$Html$text('Archive')
14199 ])),
14200 A3(
14201 $author$project$Html$Common$buttonClass,
14202 'button dialog__action button--secondary',
14203 $author$project$Page$Deployments$Table$CloseArchivePopup,
14204 _List_fromArray(
14206 $elm$html$Html$text('Cancel')
14207 ]))
14208 ]))
14209 ])),
14210 A3($author$project$Html$Common$buttonClass, 'classic-popup__close', $author$project$Page$Deployments$Table$CloseArchivePopup, _List_Nil)
14211 ]))
14212 ]))
14213 ]))
14214 ]));
14216var $author$project$Page$Deployments$Table$CloseAppOverrides = function (a) {
14217 return {$: 'CloseAppOverrides', a: a};
14219var $author$project$Page$Deployments$Table$CloseDeploymentOverrides = function (a) {
14220 return {$: 'CloseDeploymentOverrides', a: a};
14222var $author$project$Page$Deployments$Table$GoToDeployment = function (a) {
14223 return {$: 'GoToDeployment', a: a};
14225var $author$project$Page$Deployments$Table$OpenAppOverrides = function (a) {
14226 return {$: 'OpenAppOverrides', a: a};
14228var $author$project$Page$Deployments$Table$OpenArchivePopup = function (a) {
14229 return {$: 'OpenArchivePopup', a: a};
14231var $author$project$Page$Deployments$Table$OpenDeploymentOverrides = function (a) {
14232 return {$: 'OpenDeploymentOverrides', a: a};
14234var $author$project$Page$Deployments$Table$OpenMenu = function (a) {
14235 return {$: 'OpenMenu', a: a};
14237var $author$project$Page$Deployments$Table$RestoreDeploymentReq = function (a) {
14238 return {$: 'RestoreDeploymentReq', a: a};
14240var $author$project$Page$Deployments$Table$ShowEditSidebar = function (a) {
14241 return {$: 'ShowEditSidebar', a: a};
14243var $elm$html$Html$Attributes$id = $elm$html$Html$Attributes$stringProperty('id');
14244var $author$project$Page$Deployments$Table$overridesView = F5(
14245 function (openCmd, closeCmd, dName, opened, overrides) {
14246 var visibleOverrides = A2($elm$core$List$take, 3, overrides);
14247 var overrideView = function (override) {
14248 return A2(
14249 $author$project$Html$Common$divClass,
14250 'row',
14251 function () {
14252 var _v0 = override.value;
14253 if (_v0.$ === 'ValueAdded') {
14254 var v = _v0.a;
14255 return _List_fromArray(
14257 A2(
14258 $author$project$Html$Common$spanClass,
14259 'key-default-pristine',
14260 _List_fromArray(
14262 $elm$html$Html$text(
14263 $author$project$Types$Override$unOverrideName(override.name) + ': ')
14264 ])),
14265 A2(
14266 $elm$html$Html$span,
14267 _List_fromArray(
14269 $elm$html$Html$Attributes$class('value-edited'),
14270 A2($elm$html$Html$Attributes$attribute, 'style', 'width:400px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;')
14271 ]),
14272 _List_fromArray(
14274 $elm$html$Html$text(v)
14275 ]))
14276 ]);
14277 } else {
14278 return _List_fromArray(
14280 A2(
14281 $author$project$Html$Common$spanClass,
14282 'key-deleted',
14283 _List_fromArray(
14285 $elm$html$Html$text(
14286 $author$project$Types$Override$unOverrideName(override.name) + ': ')
14287 ])),
14288 A2($author$project$Html$Common$divClass, 'listing__placeholder listing__placeholder__value', _List_Nil)
14289 ]);
14291 }());
14293 var buttonClass_ = F3(
14294 function (cls, msg, body) {
14295 return A2(
14296 $elm$html$Html$button,
14297 _List_fromArray(
14299 $elm$html$Html$Attributes$class(cls),
14300 $elm_community$html_extra$Html$Events$Extra$onClickStopPropagation(msg)
14301 ]),
14302 body);
14303 });
14304 return _Utils_eq(
14305 $elm$core$List$length(overrides),
14306 $elm$core$List$length(visibleOverrides)) ? A2($elm$core$List$map, overrideView, overrides) : (A2($turboMaCk$any_set$Set$Any$member, dName, opened) ? A2(
14307 $elm$core$List$append,
14308 A2($elm$core$List$map, overrideView, overrides),
14309 _List_fromArray(
14311 A3(
14312 buttonClass_,
14313 'expander listing__more expander--open',
14314 closeCmd(dName),
14315 _List_fromArray(
14317 $elm$html$Html$text('Hide default configuration')
14318 ]))
14319 ])) : A2(
14320 $elm$core$List$append,
14321 A2($elm$core$List$map, overrideView, visibleOverrides),
14322 _List_fromArray(
14324 A3(
14325 buttonClass_,
14326 'expander listing__more',
14327 openCmd(dName),
14328 _List_fromArray(
14330 $elm$html$Html$text('Show full configuration')
14331 ]))
14332 ])));
14333 });
14334var $author$project$Page$Deployments$Table$deploymentView = F2(
14335 function (model, deployment) {
14336 var statusView = function (status) {
14337 if (status.$ === 'DeploymentPending') {
14338 return A2(
14339 $author$project$Html$Common$divClass,
14340 'status status--pending',
14341 _List_fromArray(
14343 $elm$html$Html$text('Pending...')
14344 ]));
14345 } else {
14346 switch (status.a.$) {
14347 case 'Running':
14348 var _v3 = status.a;
14349 return A2(
14350 $author$project$Html$Common$divClass,
14351 'status status--success',
14352 _List_fromArray(
14354 $elm$html$Html$text('Running')
14355 ]));
14356 case 'Failure':
14357 return A2(
14358 $author$project$Html$Common$divClass,
14359 'status status--failure',
14360 _List_fromArray(
14362 $elm$html$Html$text('Failure')
14363 ]));
14364 case 'CreatePending':
14365 var _v4 = status.a;
14366 return A2(
14367 $author$project$Html$Common$divClass,
14368 'loading loading--status-alike',
14369 _List_fromArray(
14371 $elm$html$Html$text('Creating...')
14372 ]));
14373 case 'UpdatePending':
14374 var _v5 = status.a;
14375 return A2(
14376 $author$project$Html$Common$divClass,
14377 'loading loading--status-alike',
14378 _List_fromArray(
14380 $elm$html$Html$text('Updating...')
14381 ]));
14382 case 'ArchivePending':
14383 var _v6 = status.a;
14384 return A2(
14385 $author$project$Html$Common$divClass,
14386 'loading loading--status-alike',
14387 _List_fromArray(
14389 $elm$html$Html$text('Archiving...')
14390 ]));
14391 case 'Archived':
14392 var _v7 = status.a;
14393 return A2(
14394 $author$project$Html$Common$divClass,
14395 'status status--archived',
14396 _List_fromArray(
14398 $elm$html$Html$text('Archived')
14399 ]));
14400 default:
14401 var _v8 = status.a;
14402 return A2(
14403 $author$project$Html$Common$divClass,
14404 'status status--failure',
14405 _List_fromArray(
14407 $elm$html$Html$text('Cleanup failed (contact admin)')
14408 ]));
14412 var name = _List_fromArray(
14414 $elm$html$Html$text(
14415 $author$project$Types$Deployment$unDeploymentName(deployment.deployment.name)),
14416 statusView(deployment.status)
14417 ]);
14418 var menuButtonClass = F2(
14419 function (status, _class) {
14420 return $author$project$Types$Deployment$isPending(status) ? (_class + ' action--disabled ') : _class;
14421 });
14422 var link = function (m) {
14423 return A3(
14424 $author$project$Html$Common$aClassHrefExternal,
14425 'listing__item external bar',
14426 m.link,
14427 _List_fromArray(
14429 $elm$html$Html$text(m.name)
14430 ]));
14432 var links = function () {
14433 var _v1 = model.tableType;
14434 if (_v1.$ === 'ActiveTable') {
14435 return _List_fromArray(
14437 A2(
14438 $author$project$Html$Common$divClass,
14439 'listing',
14440 A2($elm$core$List$map, link, deployment.metadata))
14441 ]);
14442 } else {
14443 return _List_fromArray(
14445 $elm$html$Html$text('...')
14446 ]);
14448 }();
14449 var deploymentOverrides = _List_fromArray(
14451 A2(
14452 $author$project$Html$Common$divClass,
14453 'row',
14454 A5($author$project$Page$Deployments$Table$overridesView, $author$project$Page$Deployments$Table$OpenDeploymentOverrides, $author$project$Page$Deployments$Table$CloseDeploymentOverrides, deployment.deployment.name, model.openedDeployemntOverrides, deployment.deployment.deploymentOverrides))
14455 ]);
14456 var buttonClass_ = F3(
14457 function (cls, msg, body) {
14458 return A2(
14459 $elm$html$Html$button,
14460 _List_fromArray(
14462 $elm$html$Html$Attributes$class(cls),
14463 $elm_community$html_extra$Html$Events$Extra$onClickStopPropagation(msg)
14464 ]),
14465 body);
14466 });
14467 var dropDown = A2(
14468 $elm$html$Html$div,
14469 _List_fromArray(
14471 $elm$html$Html$Attributes$class(
14472 'drop drop--actions ' + (_Utils_eq(
14473 model.menuButton,
14474 $elm$core$Maybe$Just(deployment.deployment.name)) ? 'drop--expanded' : '')),
14475 $elm$html$Html$Attributes$id(
14476 $author$project$Page$Deployments$Table$getDropdownId(model))
14477 ]),
14478 _List_fromArray(
14480 A3(
14481 buttonClass_,
14482 'drop__handler',
14483 $author$project$Page$Deployments$Table$OpenMenu(deployment.deployment.name),
14484 _List_fromArray(
14486 $elm$html$Html$text('Actions')
14487 ])),
14488 A2(
14489 $author$project$Html$Common$divClass,
14490 'drop__dropdown',
14491 function () {
14492 var _v0 = model.tableType;
14493 if (_v0.$ === 'ActiveTable') {
14494 return _List_fromArray(
14496 A2(
14497 $elm$html$Html$button,
14498 _List_fromArray(
14500 $elm$html$Html$Attributes$class(
14501 A2(menuButtonClass, deployment.status, 'action action--edit')),
14502 $elm$html$Html$Attributes$type_('button'),
14503 $elm$html$Html$Attributes$disabled(
14504 $author$project$Types$Deployment$isPending(deployment.status)),
14505 $elm_community$html_extra$Html$Events$Extra$onClickStopPropagation(
14506 $author$project$Page$Deployments$Table$ShowEditSidebar(deployment.deployment.name))
14507 ]),
14508 _List_fromArray(
14510 $elm$html$Html$text('Edit')
14511 ])),
14512 A2(
14513 $elm$html$Html$button,
14514 _List_fromArray(
14516 $elm$html$Html$Attributes$class(
14517 A2(menuButtonClass, deployment.status, 'action action--archive classic-popup-handler')),
14518 $elm$html$Html$Attributes$type_('button'),
14519 $elm$html$Html$Attributes$disabled(
14520 $author$project$Types$Deployment$isPending(deployment.status)),
14521 $elm_community$html_extra$Html$Events$Extra$onClickStopPropagation(
14522 $author$project$Page$Deployments$Table$OpenArchivePopup(deployment.deployment.name))
14523 ]),
14524 _List_fromArray(
14526 $elm$html$Html$text('Move to archive')
14527 ])),
14528 A3(
14529 $author$project$Html$Common$aClassHrefExternal,
14530 'action action--logs',
14531 _Utils_ap(
14532 model.config.k8sDashboardUrlTemplate,
14533 $author$project$Types$Deployment$unDeploymentName(deployment.deployment.name)),
14534 _List_fromArray(
14536 $elm$html$Html$text('Details')
14537 ]))
14538 ]);
14539 } else {
14540 return _List_fromArray(
14542 A2(
14543 $elm$html$Html$button,
14544 _List_fromArray(
14546 $elm$html$Html$Attributes$class('action action--restore'),
14547 $elm_community$html_extra$Html$Events$Extra$onClickStopPropagation(
14548 $author$project$Page$Deployments$Table$RestoreDeploymentReq(deployment.deployment.name))
14549 ]),
14550 _List_fromArray(
14552 $elm$html$Html$text('Restore from archive')
14553 ]))
14554 ]);
14556 }())
14557 ]));
14558 var appOverrides = _List_fromArray(
14560 A2(
14561 $author$project$Html$Common$divClass,
14562 'row',
14563 A5($author$project$Page$Deployments$Table$overridesView, $author$project$Page$Deployments$Table$OpenAppOverrides, $author$project$Page$Deployments$Table$CloseAppOverrides, deployment.deployment.name, model.openedAppOverrides, deployment.deployment.appOverrides))
14564 ]);
14565 return A2(
14566 $elm$html$Html$tr,
14567 _List_fromArray(
14569 $elm$html$Html$Events$onClick(
14570 $author$project$Page$Deployments$Table$GoToDeployment(deployment.deployment.name))
14571 ]),
14572 _List_fromArray(
14574 A2($elm$html$Html$td, _List_Nil, name),
14575 A2($elm$html$Html$td, _List_Nil, links),
14576 A2($elm$html$Html$td, _List_Nil, deploymentOverrides),
14577 A2($elm$html$Html$td, _List_Nil, appOverrides),
14578 A2(
14579 $elm$html$Html$td,
14580 _List_Nil,
14581 _List_fromArray(
14583 A2($author$project$Html$Common$dateView, model.settings.zone, deployment.createdAt)
14584 ])),
14585 A2(
14586 $elm$html$Html$td,
14587 _List_Nil,
14588 _List_fromArray(
14590 A2($author$project$Html$Common$dateView, model.settings.zone, deployment.updatedAt)
14591 ])),
14592 A2(
14593 $elm$html$Html$td,
14594 _List_Nil,
14595 _List_fromArray(
14596 [dropDown]))
14597 ]));
14598 });
14599var $author$project$Page$Deployments$Table$tableFailureView = A2(
14600 $elm$html$Html$tbody,
14601 _List_Nil,
14602 _List_fromArray(
14604 A2(
14605 $author$project$Html$Common$trClass,
14606 'no-table',
14607 _List_fromArray(
14609 A2(
14610 $elm$html$Html$td,
14611 _List_fromArray(
14613 $elm$html$Html$Attributes$colspan(8)
14614 ]),
14615 _List_fromArray(
14617 A2(
14618 $author$project$Html$Common$divClass,
14619 'null null--data',
14620 _List_fromArray(
14622 A2(
14623 $author$project$Html$Common$bClass,
14624 'null__heading',
14625 _List_fromArray(
14627 $elm$html$Html$text('Cannot retrieve the data')
14628 ])),
14629 A2(
14630 $author$project$Html$Common$divClass,
14631 'null__message',
14632 _List_fromArray(
14634 $elm$html$Html$text('Try to reload page')
14635 ]))
14636 ]))
14637 ]))
14638 ]))
14639 ]));
14640var $elm$core$String$toUpper = _String_toUpper;
14641var $author$project$Page$Deployments$Table$tableDeploymentsView = F3(
14642 function (model, deployments, search) {
14643 var compareDeployments = F2(
14644 function (a, b) {
14645 var _v0 = model.sort;
14646 if (_v0.$ === 'Asc') {
14647 switch (_v0.a.$) {
14648 case 'Name':
14649 var _v1 = _v0.a;
14650 return A2(
14651 $elm$core$Basics$compare,
14652 $author$project$Types$Deployment$unDeploymentName(a.deployment.name),
14653 $author$project$Types$Deployment$unDeploymentName(b.deployment.name));
14654 case 'Created':
14655 var _v3 = _v0.a;
14656 return A2(
14657 $elm$core$Basics$compare,
14658 $elm$time$Time$posixToMillis(a.createdAt),
14659 $elm$time$Time$posixToMillis(b.createdAt));
14660 default:
14661 var _v5 = _v0.a;
14662 return A2(
14663 $elm$core$Basics$compare,
14664 $elm$time$Time$posixToMillis(a.updatedAt),
14665 $elm$time$Time$posixToMillis(b.updatedAt));
14667 } else {
14668 switch (_v0.a.$) {
14669 case 'Name':
14670 var _v2 = _v0.a;
14671 return A2(
14672 $elm$core$Basics$compare,
14673 $author$project$Types$Deployment$unDeploymentName(b.deployment.name),
14674 $author$project$Types$Deployment$unDeploymentName(a.deployment.name));
14675 case 'Created':
14676 var _v4 = _v0.a;
14677 return A2(
14678 $elm$core$Basics$compare,
14679 $elm$time$Time$posixToMillis(b.createdAt),
14680 $elm$time$Time$posixToMillis(a.createdAt));
14681 default:
14682 var _v6 = _v0.a;
14683 return A2(
14684 $elm$core$Basics$compare,
14685 $elm$time$Time$posixToMillis(b.updatedAt),
14686 $elm$time$Time$posixToMillis(a.updatedAt));
14689 });
14690 var check = function (deployment) {
14691 return (search === '') ? true : A2(
14692 $elm$core$String$contains,
14693 $elm$core$String$toUpper(search),
14694 $elm$core$String$toUpper(
14695 $author$project$Types$Deployment$unDeploymentName(deployment.deployment.name)));
14697 var sorted = A2(
14698 $elm$core$List$filter,
14699 check,
14700 A2($elm$core$List$sortWith, compareDeployments, deployments));
14701 return ($elm$core$List$length(sorted) > 0) ? A2(
14702 $elm$html$Html$tbody,
14703 _List_Nil,
14704 A2(
14705 $elm$core$List$map,
14706 $author$project$Page$Deployments$Table$deploymentView(model),
14707 sorted)) : $author$project$Page$Deployments$Table$tableFailureView;
14708 });
14709var $author$project$Page$Deployments$Table$tableLoadingView = A2(
14710 $elm$html$Html$tbody,
14711 _List_Nil,
14712 _List_fromArray(
14714 A2(
14715 $author$project$Html$Common$trClass,
14716 'no-table',
14717 _List_fromArray(
14719 A2(
14720 $elm$html$Html$td,
14721 _List_fromArray(
14723 $elm$html$Html$Attributes$colspan(8)
14724 ]),
14725 _List_fromArray(
14727 A2(
14728 $author$project$Html$Common$divClass,
14729 'loading loading--enlarged loading--alternate',
14730 _List_fromArray(
14732 $elm$html$Html$text('Loading...')
14733 ]))
14734 ]))
14735 ]))
14736 ]));
14737var $author$project$Page$Deployments$Table$tablePrimaryBodyView = F3(
14738 function (model, deployments, search) {
14739 switch (deployments.$) {
14740 case 'Success':
14741 var d = deployments.a;
14742 return A3($author$project$Page$Deployments$Table$tableDeploymentsView, model, d, search);
14743 case 'Failure':
14744 return $author$project$Page$Deployments$Table$tableFailureView;
14745 default:
14746 return $author$project$Page$Deployments$Table$tableLoadingView;
14748 });
14749var $author$project$Page$Deployments$Table$Asc = function (a) {
14750 return {$: 'Asc', a: a};
14752var $author$project$Page$Deployments$Table$Created = {$: 'Created'};
14753var $author$project$Page$Deployments$Table$Name = {$: 'Name'};
14754var $author$project$Page$Deployments$Table$SortChanged = function (a) {
14755 return {$: 'SortChanged', a: a};
14757var $author$project$Page$Deployments$Table$tablePrimaryHeaderView = function (model) {
14758 var sortTh = F3(
14759 function (clm, sort, txt) {
14760 var _v0 = function () {
14761 if (sort.$ === 'Asc') {
14762 var sClm = sort.a;
14763 return _Utils_eq(sClm, clm) ? _Utils_Tuple2(
14764 'sort sort--active sort--asc',
14765 $author$project$Page$Deployments$Table$SortChanged(
14766 $author$project$Page$Deployments$Table$Desc(clm))) : _Utils_Tuple2(
14767 'sort',
14768 $author$project$Page$Deployments$Table$SortChanged(
14769 $author$project$Page$Deployments$Table$Asc(clm)));
14770 } else {
14771 var sClm = sort.a;
14772 return _Utils_eq(sClm, clm) ? _Utils_Tuple2(
14773 'sort sort--active sort--desc',
14774 $author$project$Page$Deployments$Table$SortChanged(
14775 $author$project$Page$Deployments$Table$Asc(clm))) : _Utils_Tuple2(
14776 'sort',
14777 $author$project$Page$Deployments$Table$SortChanged(
14778 $author$project$Page$Deployments$Table$Asc(clm)));
14780 }();
14781 var cls = _v0.a;
14782 var event = _v0.b;
14783 return A2(
14784 $elm$html$Html$th,
14785 _List_Nil,
14786 _List_fromArray(
14788 A3(
14789 $author$project$Html$Common$buttonClass,
14790 cls,
14791 event,
14792 _List_fromArray(
14794 $elm$html$Html$text(txt)
14795 ]))
14796 ]));
14797 });
14798 var simpleTh = function (txt) {
14799 return A2(
14800 $elm$html$Html$th,
14801 _List_Nil,
14802 _List_fromArray(
14804 $elm$html$Html$text(txt)
14805 ]));
14807 return A2(
14808 $elm$html$Html$thead,
14809 _List_Nil,
14810 _List_fromArray(
14812 A2(
14813 $elm$html$Html$tr,
14814 _List_Nil,
14815 _List_fromArray(
14817 A3(sortTh, $author$project$Page$Deployments$Table$Name, model.sort, 'Name'),
14818 simpleTh('Links'),
14819 simpleTh('Deployment configuration'),
14820 simpleTh('App configuration'),
14821 A3(sortTh, $author$project$Page$Deployments$Table$Created, model.sort, 'Created'),
14822 A3(sortTh, $author$project$Page$Deployments$Table$Updated, model.sort, 'Updated'),
14823 A2(
14824 $elm$html$Html$th,
14825 _List_Nil,
14826 _List_fromArray(
14828 A2(
14829 $author$project$Html$Common$spanClass,
14830 'visuallyhidden',
14831 _List_fromArray(
14833 $elm$html$Html$text('Menu')
14834 ]))
14835 ]))
14836 ]))
14837 ]));
14839var $author$project$Page$Deployments$Table$view = F3(
14840 function (model, deployments, search) {
14841 return A2(
14842 $author$project$Html$Common$divClass,
14843 'table table--deployments table--clickable table--double-click',
14844 A2(
14845 $elm$core$List$cons,
14846 A2(
14847 $elm$html$Html$table,
14848 _List_Nil,
14849 _List_fromArray(
14851 $author$project$Page$Deployments$Table$tablePrimaryHeaderView(model),
14852 A3($author$project$Page$Deployments$Table$tablePrimaryBodyView, model, deployments, search)
14853 ])),
14854 function () {
14855 var _v0 = model.archivePopup;
14856 if (_v0.$ === 'Nothing') {
14857 return _List_Nil;
14858 } else {
14859 var deploymentName = _v0.a;
14860 return _List_fromArray(
14862 $author$project$Page$Deployments$Table$archivePopupView(deploymentName)
14863 ]);
14865 }()));
14866 });
14867var $author$project$Page$Deployments$dataArchivedView = F2(
14868 function (model, archivedDeploymets) {
14869 var dataClass = model.showArchived ? 'data__archive data__archive--open' : 'data__archive';
14870 return A2(
14871 $author$project$Html$Common$divClass,
14872 dataClass,
14873 _List_fromArray(
14875 A2(
14876 $elm$html$Html$map,
14877 $author$project$Page$Deployments$ArchivedTableMsg,
14878 A3($author$project$Page$Deployments$Table$view, model.archivedTable, archivedDeploymets, model.search))
14879 ]));
14880 });
14881var $author$project$Page$Deployments$dataPrimaryView = F2(
14882 function (model, activeDeploymets) {
14883 return A2(
14884 $author$project$Html$Common$divClass,
14885 'data__primary',
14886 _List_fromArray(
14888 A2(
14889 $elm$html$Html$map,
14890 $author$project$Page$Deployments$ActiveTableMsg,
14891 A3($author$project$Page$Deployments$Table$view, model.activeTable, activeDeploymets, model.search))
14892 ]));
14893 });
14894var $author$project$Page$Deployments$pageBodyWrapper = function (body) {
14895 return A2(
14896 $author$project$Html$Common$divClass,
14897 'page__body',
14898 _List_fromArray(
14900 A2($author$project$Html$Common$divClass, 'body', body)
14901 ]));
14903var $author$project$Page$Deployments$ShowCreateSidebar = {$: 'ShowCreateSidebar'};
14904var $author$project$Page$Deployments$SearchInput = function (a) {
14905 return {$: 'SearchInput', a: a};
14907var $author$project$Page$Deployments$pageHeaderSearchView = function (_v0) {
14908 return A2(
14909 $author$project$Html$Common$divClass,
14910 'page__action page__action--search input input--search input--has-clear-type',
14911 _List_fromArray(
14913 A2(
14914 $elm$html$Html$input,
14915 _List_fromArray(
14917 $elm$html$Html$Attributes$class('input__widget'),
14918 $elm$html$Html$Attributes$type_('text'),
14919 $elm$html$Html$Attributes$placeholder('Search for deployments'),
14920 $elm$html$Html$Events$onInput($author$project$Page$Deployments$SearchInput)
14921 ]),
14922 _List_Nil)
14923 ]));
14925var $author$project$Page$Deployments$pageHeaderTimeUpdateView = function (model) {
14926 var msg = (model.updated < 30) ? 'Updated just now' : ((model.updated < 90) ? 'Updated 1 minute ago' : ((_Utils_cmp(model.updated, 60 * 60) < 0) ? ('Updated ' + ($elm$core$String$fromInt((model.updated / 60) | 0) + ' minutes ago')) : ((_Utils_cmp(model.updated, (2 * 60) * 60) < 0) ? 'Update 1 hour ago' : ('Updated ' + ($elm$core$String$fromInt((model.updated / (60 * 60)) | 0) + ' ho ago')))));
14927 return A2(
14928 $author$project$Html$Common$divClass,
14929 'page__note',
14930 _List_fromArray(
14932 $elm$html$Html$text(msg)
14933 ]));
14935var $author$project$Page$Deployments$pageHeaderView = function (model) {
14936 return A2(
14937 $author$project$Html$Common$divClass,
14938 'page__head',
14939 _List_fromArray(
14941 A2(
14942 $author$project$Html$Common$h1Class,
14943 'page__heading title',
14944 _List_fromArray(
14946 $elm$html$Html$text('All deployments')
14947 ])),
14948 $author$project$Page$Deployments$pageHeaderTimeUpdateView(model),
14949 $author$project$Page$Deployments$pageHeaderSearchView(model),
14950 A3(
14951 $author$project$Html$Common$buttonClass,
14952 'page__action button button--add popup-handler',
14953 $author$project$Page$Deployments$ShowCreateSidebar,
14954 _List_fromArray(
14956 $elm$html$Html$text('New deployment')
14957 ]))
14958 ]));
14960var $author$project$Page$Deployments$pageWrapper = function (body) {
14961 return A2(
14962 $author$project$Html$Common$divClass,
14963 'page',
14964 _List_fromArray(
14966 A2($author$project$Html$Common$divClass, 'page__wrap container', body)
14967 ]));
14969var $author$project$Page$Deployments$ToggleArchived = {$: 'ToggleArchived'};
14970var $author$project$Page$Deployments$toggleButtonView = function (model) {
14971 return model.showArchived ? A3(
14972 $author$project$Html$Common$buttonClass,
14973 'data__show-archive expander expander--stand-alone expander--open',
14974 $author$project$Page$Deployments$ToggleArchived,
14975 _List_fromArray(
14977 $elm$html$Html$text('Hide Archived deployments')
14978 ])) : A3(
14979 $author$project$Html$Common$buttonClass,
14980 'data__show-archive expander expander--stand-alone',
14981 $author$project$Page$Deployments$ToggleArchived,
14982 _List_fromArray(
14984 $elm$html$Html$text('Show Archived deployments')
14985 ]));
14987var $author$project$Page$Deployments$pageView = function (model) {
14988 var archivedDeploymets = A2(
14989 $krisajenkins$remotedata$RemoteData$map,
14990 $elm$core$List$filter($author$project$Types$Deployment$isDeploymentArchived),
14991 model.deployments);
14992 var archivedCount = A3($krisajenkins$remotedata$RemoteData$unwrap, 0, $elm$core$List$length, archivedDeploymets);
14993 var activeDeploymets = A2(
14994 $krisajenkins$remotedata$RemoteData$map,
14995 $elm$core$List$filter(
14996 A2($elm$core$Basics$composeR, $author$project$Types$Deployment$isDeploymentArchived, $elm$core$Basics$not)),
14997 model.deployments);
14998 return $author$project$Page$Deployments$pageWrapper(
14999 _List_fromArray(
15001 $author$project$Page$Deployments$pageHeaderView(model),
15002 $author$project$Page$Deployments$pageBodyWrapper(
15003 A2(
15004 $elm$core$List$cons,
15005 A2($author$project$Page$Deployments$dataPrimaryView, model, activeDeploymets),
15006 (!archivedCount) ? _List_Nil : _List_fromArray(
15008 $author$project$Page$Deployments$toggleButtonView(model),
15009 A2($author$project$Page$Deployments$dataArchivedView, model, archivedDeploymets)
15010 ])))
15011 ]));
15013var $author$project$Page$Deployments$view = function (model) {
15014 return {
15015 content: A2(
15016 $elm$core$List$cons,
15017 $author$project$Page$Deployments$pageView(model),
15018 A2(
15019 $elm$core$List$map,
15020 $elm$html$Html$map($author$project$Page$Deployments$CreateSidebarMsg),
15021 $author$project$Page$Sidebar$CreateUpdate$view(model.sidebar))),
15022 title: 'Deployments'
15025var $author$project$Page$Initialization$failureView = A2(
15026 $author$project$Html$Common$divClass,
15027 'no-page',
15028 _List_fromArray(
15030 A2(
15031 $author$project$Html$Common$divClass,
15032 'no-page__inner',
15033 _List_fromArray(
15035 A2(
15036 $author$project$Html$Common$divClass,
15037 'null null--data',
15038 _List_fromArray(
15040 A2(
15041 $author$project$Html$Common$bClass,
15042 'null__heading',
15043 _List_fromArray(
15045 $elm$html$Html$text('Cannot retrieve the data')
15046 ])),
15047 A2(
15048 $author$project$Html$Common$divClass,
15049 'null__message',
15050 _List_fromArray(
15052 $elm$html$Html$text('Try to reload page')
15053 ]))
15054 ]))
15055 ]))
15056 ]));
15057var $author$project$Page$Initialization$loadingView = A2(
15058 $author$project$Html$Common$divClass,
15059 'no-page',
15060 _List_fromArray(
15062 A2(
15063 $author$project$Html$Common$divClass,
15064 'no-page__inner',
15065 _List_fromArray(
15067 A2(
15068 $author$project$Html$Common$divClass,
15069 'loading loading--enlarged loading--alternate',
15070 _List_fromArray(
15072 $elm$html$Html$text('Loading...')
15073 ]))
15074 ]))
15075 ]));
15076var $author$project$Page$Initialization$view = function (model) {
15077 var _v0 = _Utils_Tuple2(model.config, model.projectName);
15078 _v0$1:
15079 while (true) {
15080 _v0$2:
15081 while (true) {
15082 switch (_v0.a.$) {
15083 case 'Failure':
15084 return {
15085 content: _List_fromArray(
15086 [$author$project$Page$Initialization$failureView]),
15087 title: 'Octopod'
15089 case 'Loading':
15090 switch (_v0.b.$) {
15091 case 'Failure':
15092 break _v0$1;
15093 case 'Loading':
15094 break _v0$2;
15095 default:
15096 break _v0$2;
15098 default:
15099 switch (_v0.b.$) {
15100 case 'Failure':
15101 break _v0$1;
15102 case 'Loading':
15103 var _v2 = _v0.b;
15104 return {
15105 content: _List_fromArray(
15106 [$author$project$Page$Initialization$loadingView]),
15107 title: 'Octopod'
15109 default:
15110 return {content: _List_Nil, title: 'Octopod'};
15114 var _v1 = _v0.a;
15115 return {
15116 content: _List_fromArray(
15117 [$author$project$Page$Initialization$loadingView]),
15118 title: 'Octopod'
15121 return {
15122 content: _List_fromArray(
15123 [$author$project$Page$Initialization$failureView]),
15124 title: 'Octopod'
15127var $author$project$Main$view = function (model) {
15128 var viewPage = F3(
15129 function (page, toMsg, config) {
15130 var _v1 = A3(
15131 $author$project$Page$view,
15132 $author$project$Main$getSettings(model).projectName,
15133 page,
15134 config);
15135 var title = _v1.title;
15136 var body = _v1.body;
15137 return {
15138 body: A2(
15139 $elm$core$List$map,
15140 $elm$html$Html$map(toMsg),
15141 body),
15142 title: title
15144 });
15145 switch (model.$) {
15146 case 'Initialization':
15147 var subModel = model.a;
15148 return A3(
15149 viewPage,
15150 $author$project$Page$Initialization,
15151 $author$project$Main$InitializationMsg,
15152 $author$project$Page$Initialization$view(subModel));
15153 case 'Deployments':
15154 var subModel = model.a;
15155 return A3(
15156 viewPage,
15157 $author$project$Page$Deployments,
15158 $author$project$Main$DeploymentsMsg,
15159 $author$project$Page$Deployments$view(subModel));
15160 default:
15161 var subModel = model.a;
15162 return A3(
15163 viewPage,
15164 $author$project$Page$Deployment,
15165 $author$project$Main$DeploymentMsg,
15166 $author$project$Page$Deployment$view(subModel));
15169var $author$project$Main$main = $elm$browser$Browser$application(
15170 {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});
15171_Platform_export({'Main':{'init':$author$project$Main$main(
15172 $elm$json$Json$Decode$succeed(_Utils_Tuple0))(0)}});}(this));