From 914dce7127e7e15297033badc8e152d179eeb38b Mon Sep 17 00:00:00 2001 From: Kayle Gishen Date: Sat, 2 Feb 2019 12:36:15 -0500 Subject: [PATCH 01/58] Initial work on new DOM updater --- src/compilers/href.js | 19 ++++++--- src/compilers/model.js | 31 +++++--------- src/silica.js | 27 ++++++++++++- src/watchers/model.js | 74 +++++++++++++++++++--------------- src/watchers/value_observer.js | 67 ++++++++++++++++++++++++++++++ src/watchers/watchers.js | 4 +- 6 files changed, 158 insertions(+), 64 deletions(-) create mode 100644 src/watchers/value_observer.js diff --git a/src/compilers/href.js b/src/compilers/href.js index 0b3a8ad..aafa033 100644 --- a/src/compilers/href.js +++ b/src/compilers/href.js @@ -1,11 +1,18 @@ goog.module('compilers.href') -function Href () { - var nodes = Silica.query(this, '[data-href]') - var node - for (let i = nodes.length - 1; i >= 0; --i) { - node = nodes[i] - node.setAttribute('href', Silica.getValue(node, node.dataset['href'])) +/** @this Element */ +function Href (ctx, value) { + if (value !== undefined) { + this.setAttribute('href', value) + } else { + var nodes = Silica.query(this, '[data-href]') + var node + for (let i = nodes.length - 1; i >= 0; --i) { + node = nodes[i] + let property = node.dataset['href'] + Silica.observer.register(node, property, Href) + node.setAttribute('href', Silica.getValue(node, property)) + } } Silica._capture_links(this) } diff --git a/src/compilers/model.js b/src/compilers/model.js index 05f4447..1478c21 100644 --- a/src/compilers/model.js +++ b/src/compilers/model.js @@ -1,30 +1,17 @@ goog.module('compilers.model') - -var inputTypes = ['text', 'file', 'number', 'email', 'password', 'tel', 'search', 'url', 'range', 'date', 'month', 'week', 'time', 'datetime', 'datetime-local', 'color', 'textarea', 'select', 'select-one'] +const ModelUpdater = goog.require('watchers.model') /** @this Element */ function Model (context = null) { - var elm, change, ctx, model, val - var elements = Silica.query(this, 'input[data-model]', 'select[data-model]', 'textarea[data-model]', 'option[data-model]') + var elements = Silica.query(this, '[data-model]') + for (let elm of elements) { + Silica.observer.register(elm, elm.dataset['model'], Silica.watchers['Model']) + } + ModelUpdater.call(this, context, undefined) + elements = Silica.query(this, 'input[data-model]', 'select[data-model]', 'textarea[data-model]', 'option[data-model]') for (let i = elements.length - 1; i >= 0; i--) { - elm = elements[i] - ctx = Silica.getContext(elm) - model = elm.dataset['model'] - let type = elm.type - if (inputTypes.indexOf(type) !== -1) { - elm.value = Silica.getValue(elm, model, ctx) - } else if (type === 'radio') { - val = elm.value - if (val.match(/[0-9]/)) { - val = parseInt(val, 10) - } - elm.checked = Silica.getValue(elm, model, ctx) === val - } else if (type === 'checkbox') { - elm.checked = Silica.getValue(elm, model, ctx) - } else if (elm.nodeName === 'OPTION') { - elm.value = Silica.getValue(elm, model, ctx) - } - change = function () { + let elm = elements[i] + let change = function () { var obj, _ref, _ref1, _ref2 var val = this.value var ctx = Silica.getContext(this) diff --git a/src/silica.js b/src/silica.js index ecc9332..d54ff44 100644 --- a/src/silica.js +++ b/src/silica.js @@ -10,6 +10,8 @@ var Watchers = goog.require('watchers') // Import browser hax var Hax = goog.require('hax') +const ValueObserver = goog.require('watchers.observer') + // Install polyfills Hax.init() @@ -34,7 +36,8 @@ window['Silica'] = { _queue: [], interpolationPattern: /\{\{(.*?)\}\}/, usePushState: true, - version: '0.52.0', + observer: ValueObserver.create(), + version: '0.53.0', // Set the root context setContext (contextName) { @@ -222,12 +225,13 @@ window['Silica'] = { let watchers = Silica.watchers let func for (let k in watchers) { - if (onlySafe && k[0] === '_') { + if ((onlySafe && k[0] === '_') || (k === 'Href' || k === 'Model')) { continue } func = watchers[k] func.apply(element) } + Silica.observer.applyChanges() }, flush (element = document.documentElement, onlySafe = false, changed = null, skipSchedule = false) { @@ -787,6 +791,23 @@ window['Silica'] = { } }, scope) }, + getFilteredValue (raw, propString, context = null, params = []) { + var filter, filterKey, filterOptions, value + filter = raw.attributes['data-filter'] + filter = filter ? filter.value.split(/:(.+)/) : null + filterKey = (filter ? filter[0] : null) + if (filterKey && !Silica.filters[filterKey]) { + throw new Error("Unknown filter: '" + filterKey + "' for element: " + raw.outerHTML) + } + filterOptions = filter && filter.length > 1 ? eval(filter[1]) : null + filter = filterKey ? Silica.filters[filterKey] : null + value = Silica.getValue(raw, propString, context, params) + if (filter && value != null) { + return filter(value, filterOptions) + } else { + return value + } + }, _model_get_val (raw) { var filter, filterKey, filterOptions, value filter = raw.attributes['data-filter'] @@ -994,6 +1015,7 @@ window['Silica']['flush'] = Silica.flush window['Silica']['findCommonAncestor'] = Silica.findCommonAncestor window['Silica']['getPropByString'] = Silica.getPropByString window['Silica']['getValue'] = Silica.getValue +window['Silica']['getFilteredValue'] = Silica.getFilteredValue window['Silica']['goTo'] = Silica.goTo window['Silica']['query'] = Silica.query window['Silica']['queryOfType'] = Silica.queryOfType @@ -1011,3 +1033,4 @@ window['Silica']['sub'] = PubSub.Sub window['Silica']['unsub'] = PubSub.Unsub window['Silica']['isInDOM'] = Silica.isInDOM window['Silica']['hasher'] = Silica.hasher +window['Silica']['observer'] = Silica.observer diff --git a/src/watchers/model.js b/src/watchers/model.js index f2659e1..2bd72cc 100644 --- a/src/watchers/model.js +++ b/src/watchers/model.js @@ -2,41 +2,51 @@ goog.module('watchers.model') var inputTypes = ['text', 'file', 'number', 'email', 'password', 'tel', 'search', 'url', 'range', 'date', 'month', 'week', 'time', 'datetime', 'datetime-local', 'color', 'textarea', 'select', 'select-one'] -/** @this Element */ -function Model () { - var elements = Silica.query(this, '[data-model]') - var element, i, type, val - var activeElement = document.activeElement || Silica.__activeElement - for (i = elements.length - 1; i >= 0; --i) { - element = elements[i] - if (element === activeElement && element.type !== 'radio' && element.type !== 'checkbox') { - continue +function setValue (activeElement, element, value) { + if (element === activeElement && element.type !== 'radio' && element.type !== 'checkbox') { + return + } + let type = element.type + if (inputTypes.indexOf(type) !== -1) { + element.value = value + } else if (type === 'radio') { + let val = element.value + if (val.search(/[0-9]/) !== -1) { + val = parseInt(val, 10) } - type = element.type - if (inputTypes.indexOf(type) !== -1) { - element.value = Silica._model_get_val(element) - } else if (type === 'radio') { - val = element.value - if (val.search(/[0-9]/) !== -1) { - val = parseInt(val, 10) - } - element.checked = Silica.getValue(element, element.dataset['model']) === val - } else if (type === 'checkbox') { - element.checked = Silica.getValue(element, element.dataset['model']) - } else if (element.nodeName === 'SPAN' || element.nodeName === 'PRE' || element.nodeName === 'DIV' || element.nodeName === 'P') { - val = Silica._model_get_val(element) - if (val) { - if (val.nodeName) { - element.innerHTML = '' - element.appendChild(val) - } else if (element.innerHTML !== val) { - element.innerHTML = val - } - } else if (element.innerHTML !== '') { + element.checked = value === val + } else if (type === 'checkbox') { + element.checked = Silica.getValue(element, element.dataset['model']) + } else if (element.nodeName === 'OPTION') { + element.value = value + } else { + if (value) { + if (value.nodeName) { element.innerHTML = '' + element.appendChild(value) + } else if (element.innerHTML !== value) { + element.innerHTML = value + } + } else if (element.innerHTML !== '') { + element.innerHTML = '' + } + } +} + +/** @this Element */ +function Model (context, value) { + var activeElement = document.activeElement || Silica.__activeElement + if (value !== undefined) { + setValue(activeElement, this, value) + } else { + var elements = Silica.query(this, '[data-model]') + var element, i + for (i = elements.length - 1; i >= 0; --i) { + element = elements[i] + if (element === activeElement && element.type !== 'radio' && element.type !== 'checkbox') { + continue } - } else if (element.nodeName === 'OPTION') { - element.value = Silica._model_get_val(element) + setValue(activeElement, element, Silica._model_get_val(element)) } } } diff --git a/src/watchers/value_observer.js b/src/watchers/value_observer.js new file mode 100644 index 0000000..925aa17 --- /dev/null +++ b/src/watchers/value_observer.js @@ -0,0 +1,67 @@ +goog.module('watchers.observer') + +class ValueObserver { + constructor () { + this.mapping = new Map() + } + + clone (obj) { + if (obj === null || obj === undefined) { + return null + } + + if (typeof obj !== 'object') { + return obj + } + + var clone = new obj.constructor() + for (var i in obj) { + if (obj[i] != null && typeof (obj[i]) === 'object') { + clone[i] = this.clone(obj[i]) + } else { + clone[i] = obj[i] + } + } + return clone + } + + register (node, property, actor) { + let value = this.clone(Silica.getFilteredValue(node, property)) + let map = this.mapping.get(node) + + if (!map) { + map = new Map() + this.mapping.set(node, map) + } + + let packet = map.get(property) + if (!packet) { + packet = { + value: value, + actors: new Set([actor]) + } + map.set(property, packet) + } else { + packet.actors.add(actor) + } + } + + applyChanges () { + this.mapping.forEach((map, node) => { + map.forEach((packet, property) => { + let newValue = Silica.getFilteredValue(node, property) + if (!Object.is(packet.value, newValue)) { + packet.value = this.clone(newValue) + for (let actor of packet.actors.values()) { + actor.call(node, null, newValue) + } + } + }) + }) + } +} + +exports.ValueObserver = ValueObserver +exports.create = function () { + return new ValueObserver() +} diff --git a/src/watchers/watchers.js b/src/watchers/watchers.js index 5b28908..2db126d 100644 --- a/src/watchers/watchers.js +++ b/src/watchers/watchers.js @@ -19,9 +19,9 @@ exports = { Repeat: Repeat, Show: Show, Class: Class, - Model: Model, + 'Model': Model, Disabled: Disabled, - Href: Href, + 'Href': Href, Style: Style, Src: Src, Generic: Generic, From e244069e15df32b4d3ba3260861a9e35d053e956 Mon Sep 17 00:00:00 2001 From: Kayle Gishen Date: Sat, 2 Feb 2019 12:51:12 -0500 Subject: [PATCH 02/58] Remove explicit input list --- src/watchers/model.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/watchers/model.js b/src/watchers/model.js index 2bd72cc..bc45907 100644 --- a/src/watchers/model.js +++ b/src/watchers/model.js @@ -1,15 +1,11 @@ goog.module('watchers.model') -var inputTypes = ['text', 'file', 'number', 'email', 'password', 'tel', 'search', 'url', 'range', 'date', 'month', 'week', 'time', 'datetime', 'datetime-local', 'color', 'textarea', 'select', 'select-one'] - function setValue (activeElement, element, value) { if (element === activeElement && element.type !== 'radio' && element.type !== 'checkbox') { return } let type = element.type - if (inputTypes.indexOf(type) !== -1) { - element.value = value - } else if (type === 'radio') { + if (type === 'radio') { let val = element.value if (val.search(/[0-9]/) !== -1) { val = parseInt(val, 10) @@ -19,6 +15,8 @@ function setValue (activeElement, element, value) { element.checked = Silica.getValue(element, element.dataset['model']) } else if (element.nodeName === 'OPTION') { element.value = value + } else if (element.nodeName === 'INPUT') { + element.value = value } else { if (value) { if (value.nodeName) { From e8649da912d6a1f605e9220c521a0e54ce9612a4 Mon Sep 17 00:00:00 2001 From: Kayle Gishen Date: Mon, 4 Feb 2019 10:25:44 -0500 Subject: [PATCH 03/58] Started port of repeat to new DOM updater --- dist/silica.js | 521 ++++++++++++++++++++++++----------------- dist/silica.js.gz | Bin 23982 -> 24472 bytes dist/silica.min.js | 146 ++++++------ dist/silica.min.js.gz | Bin 15058 -> 15322 bytes package.json | 2 +- src/cli/silica-cli.js | 2 +- src/silica.js | 2 +- src/watchers/repeat.js | 7 +- 8 files changed, 384 insertions(+), 296 deletions(-) diff --git a/dist/silica.js b/dist/silica.js index dfd3f16..6d85ee9 100644 --- a/dist/silica.js +++ b/dist/silica.js @@ -368,18 +368,18 @@ $jscomp.polyfill("Map", function($NativeMap$$) { }; $PolyfillMap$$.prototype[Symbol.iterator] = $PolyfillMap$$.prototype.entries; var $maybeGetEntry$$ = function $$maybeGetEntry$$$($index$jscomp$57_map$$, $key$$) { - var $id$jscomp$5_id$jscomp$inline_40_type$$ = $key$$ && typeof $key$$; - "object" == $id$jscomp$5_id$jscomp$inline_40_type$$ || "function" == $id$jscomp$5_id$jscomp$inline_40_type$$ ? $idMap$$.has($key$$) ? $id$jscomp$5_id$jscomp$inline_40_type$$ = $idMap$$.get($key$$) : ($id$jscomp$5_id$jscomp$inline_40_type$$ = "" + ++$mapIndex$$, $idMap$$.set($key$$, $id$jscomp$5_id$jscomp$inline_40_type$$)) : $id$jscomp$5_id$jscomp$inline_40_type$$ = "p_" + $key$$; - var $list$$ = $index$jscomp$57_map$$.data_[$id$jscomp$5_id$jscomp$inline_40_type$$]; - if ($list$$ && $jscomp.owns($index$jscomp$57_map$$.data_, $id$jscomp$5_id$jscomp$inline_40_type$$)) { + var $id$jscomp$5_id$jscomp$inline_43_type$$ = $key$$ && typeof $key$$; + "object" == $id$jscomp$5_id$jscomp$inline_43_type$$ || "function" == $id$jscomp$5_id$jscomp$inline_43_type$$ ? $idMap$$.has($key$$) ? $id$jscomp$5_id$jscomp$inline_43_type$$ = $idMap$$.get($key$$) : ($id$jscomp$5_id$jscomp$inline_43_type$$ = "" + ++$mapIndex$$, $idMap$$.set($key$$, $id$jscomp$5_id$jscomp$inline_43_type$$)) : $id$jscomp$5_id$jscomp$inline_43_type$$ = "p_" + $key$$; + var $list$$ = $index$jscomp$57_map$$.data_[$id$jscomp$5_id$jscomp$inline_43_type$$]; + if ($list$$ && $jscomp.owns($index$jscomp$57_map$$.data_, $id$jscomp$5_id$jscomp$inline_43_type$$)) { for ($index$jscomp$57_map$$ = 0; $index$jscomp$57_map$$ < $list$$.length; $index$jscomp$57_map$$++) { var $entry$$ = $list$$[$index$jscomp$57_map$$]; if ($key$$ !== $key$$ && $entry$$.key !== $entry$$.key || $key$$ === $entry$$.key) { - return {id:$id$jscomp$5_id$jscomp$inline_40_type$$, list:$list$$, index:$index$jscomp$57_map$$, entry:$entry$$}; + return {id:$id$jscomp$5_id$jscomp$inline_43_type$$, list:$list$$, index:$index$jscomp$57_map$$, entry:$entry$$}; } } } - return {id:$id$jscomp$5_id$jscomp$inline_40_type$$, list:$list$$, index:-1, entry:void 0}; + return {id:$id$jscomp$5_id$jscomp$inline_43_type$$, list:$list$$, index:-1, entry:void 0}; }, $makeIterator$$ = function $$makeIterator$$$($map$$, $func$$) { var $entry$$ = $map$$.head_; return $jscomp.iteratorPrototype(function() { @@ -508,6 +508,13 @@ $jscomp.polyfill("Set", function($NativeSet$$) { }; return $PolyfillSet$$; }, "es6", "es3"); +$jscomp.polyfill("Array.prototype.values", function($orig$$) { + return $orig$$ ? $orig$$ : function() { + return $jscomp.iteratorFromArray(this, function($k$$, $v$$) { + return $v$$; + }); + }; +}, "es8", "es3"); function module$exports$compilers$blur() { for (var $nodes$$ = Silica.query(this, "[data-blur]"), $node$$, $i$$ = $nodes$$.length - 1; 0 <= $i$$; --$i$$) { $node$$ = $nodes$$[$i$$], $node$$._rt_live = !0, $node$$.onblur = function $$node$$$onblur$($evt$$) { @@ -554,8 +561,8 @@ function module$exports$compilers$clickoutside() { $newChild$$.setAttribute($attrs_v$$[$j$$].name, $attrs_v$$[$j$$].value); } } - for (var $j$6$$ in $node$$.dataset) { - $newChild$$.dataset[$j$6$$] = $node$$.dataset[$j$6$$]; + for (var $j$8$$ in $node$$.dataset) { + $newChild$$.dataset[$j$8$$] = $node$$.dataset[$j$8$$]; } $newChild$$._rt_ctrl = new $obj$$.controller($newChild$$); $newChild$$._rt_ctrl.$ctrl = Silica.getContext($node$$.parentElement); @@ -574,7 +581,7 @@ function module$exports$compilers$clickoutside() { } } ;function module$exports$compilers$if() { - for (var $nodes$$ = Silica.queryWithComments(this, "[data-if]"), $comment_isVisible_live_negate_subNodes$$, $raw$$, $list$$, $node$$, $_ref$$, $temp$$ = document.createElement("div"), $$jscomp$loop$26$$ = {}, $i$$ = $nodes$$.length - 1; 0 <= $i$$; $$jscomp$loop$26$$ = {subNode:$$jscomp$loop$26$$.subNode}, --$i$$) { + for (var $nodes$$ = Silica.queryWithComments(this, "[data-if]"), $comment_isVisible_live_negate_subNodes$$, $raw$$, $list$$, $node$$, $_ref$$, $temp$$ = document.createElement("div"), $$jscomp$loop$29$$ = {}, $i$$ = $nodes$$.length - 1; 0 <= $i$$; $$jscomp$loop$29$$ = {subNode:$$jscomp$loop$29$$.subNode}, --$i$$) { if ($node$$ = $nodes$$[$i$$], 8 === $node$$.nodeType ? ($temp$$.innerHTML = $node$$.nodeValue, $raw$$ = $list$$ = $temp$$.firstElementChild.dataset["if"]) : $raw$$ = $list$$ = $node$$.dataset["if"], ($comment_isVisible_live_negate_subNodes$$ = "!" === $list$$[0]) && ($list$$ = $list$$.substr(1)), Silica._ifs[$raw$$] || (Silica._ifs[$raw$$] = []), $comment_isVisible_live_negate_subNodes$$ = Silica._show($node$$, $list$$, $comment_isVisible_live_negate_subNodes$$)) { if (8 !== $node$$.nodeType ? Silica._ifs[$raw$$].push($node$$) : ($comment_isVisible_live_negate_subNodes$$ = $temp$$.firstElementChild, Silica._ifs[$raw$$].push($comment_isVisible_live_negate_subNodes$$), $node$$.parentElement.insertBefore($comment_isVisible_live_negate_subNodes$$, $node$$), $node$$.remove(), $node$$ = $comment_isVisible_live_negate_subNodes$$), null != ($_ref$$ = Silica.getContext($node$$)) && "function" === typeof $_ref$$.onLoad && $_ref$$.el === $node$$) { $_ref$$.onLoad(); @@ -582,26 +589,26 @@ function module$exports$compilers$clickoutside() { } else { if (8 !== $node$$.nodeType) { $comment_isVisible_live_negate_subNodes$$ = Silica.queryWithComments($node$$, "[data-if]"); - $$jscomp$loop$26$$.subNode = void 0; - for (var $$jscomp$loop$27_prop$$, $j$7_j$$ = $comment_isVisible_live_negate_subNodes$$.length - 1; 0 <= $j$7_j$$; --$j$7_j$$) { - $$jscomp$loop$26$$.subNode = $comment_isVisible_live_negate_subNodes$$[$j$7_j$$], $$jscomp$loop$27_prop$$ = $$jscomp$loop$26$$.subNode.dataset["if"], $list$$ = Silica._shws[$$jscomp$loop$27_prop$$], Silica._shws[$$jscomp$loop$27_prop$$] = null != $list$$ ? $list$$.filter(function($$jscomp$loop$26$$) { + $$jscomp$loop$29$$.subNode = void 0; + for (var $$jscomp$loop$30_prop$$, $j$9_j$$ = $comment_isVisible_live_negate_subNodes$$.length - 1; 0 <= $j$9_j$$; --$j$9_j$$) { + $$jscomp$loop$29$$.subNode = $comment_isVisible_live_negate_subNodes$$[$j$9_j$$], $$jscomp$loop$30_prop$$ = $$jscomp$loop$29$$.subNode.dataset["if"], $list$$ = Silica._shws[$$jscomp$loop$30_prop$$], Silica._shws[$$jscomp$loop$30_prop$$] = null != $list$$ ? $list$$.filter(function($$jscomp$loop$29$$) { return function($obj$$) { - return $obj$$ !== $$jscomp$loop$26$$.subNode; + return $obj$$ !== $$jscomp$loop$29$$.subNode; }; - }($$jscomp$loop$26$$)) : []; + }($$jscomp$loop$29$$)) : []; } $comment_isVisible_live_negate_subNodes$$ = Silica.query(this, "[data-controller]"); - $$jscomp$loop$27_prop$$ = {}; - for ($j$7_j$$ = $comment_isVisible_live_negate_subNodes$$.length - 1; 0 <= $j$7_j$$; $$jscomp$loop$27_prop$$ = {ctrl:$$jscomp$loop$27_prop$$.ctrl}, --$j$7_j$$) { - $$jscomp$loop$26$$.subNode = $comment_isVisible_live_negate_subNodes$$[$j$7_j$$]; - $$jscomp$loop$27_prop$$.ctrl = this._rt_ctrl; + $$jscomp$loop$30_prop$$ = {}; + for ($j$9_j$$ = $comment_isVisible_live_negate_subNodes$$.length - 1; 0 <= $j$9_j$$; $$jscomp$loop$30_prop$$ = {ctrl:$$jscomp$loop$30_prop$$.ctrl}, --$j$9_j$$) { + $$jscomp$loop$29$$.subNode = $comment_isVisible_live_negate_subNodes$$[$j$9_j$$]; + $$jscomp$loop$30_prop$$.ctrl = this._rt_ctrl; var $k$$ = void 0; - for ($k$$ in null != $$jscomp$loop$27_prop$$.ctrl ? $$jscomp$loop$27_prop$$.ctrl.watchers : void 0) { - $list$$ = Silica._watch[$k$$], Silica._watch[$k$$] = null != $list$$ ? $list$$.filter(function($$jscomp$loop$27$$) { + for ($k$$ in null != $$jscomp$loop$30_prop$$.ctrl ? $$jscomp$loop$30_prop$$.ctrl.watchers : void 0) { + $list$$ = Silica._watch[$k$$], Silica._watch[$k$$] = null != $list$$ ? $list$$.filter(function($$jscomp$loop$30$$) { return function($obj$$) { - return $obj$$[0] !== $$jscomp$loop$27$$.ctrl; + return $obj$$[0] !== $$jscomp$loop$30$$.ctrl; }; - }($$jscomp$loop$27_prop$$)) : []; + }($$jscomp$loop$30_prop$$)) : []; } } $comment_isVisible_live_negate_subNodes$$ = document.createComment($node$$.outerHTML); @@ -628,9 +635,17 @@ function module$exports$compilers$clickoutside() { $node$$ = $nodes$$[$i$$], $property$$ = $node$$.dataset.disabled, ($negate$$ = "!" === $property$$[0]) && ($property$$ = $property$$.substr(1)), Silica._show($node$$, $property$$, $negate$$) ? $node$$.setAttribute("disabled", !0) : $node$$.removeAttribute("disabled"); } } -;function module$exports$compilers$href() { - for (var $nodes$$ = Silica.query(this, "[data-href]"), $node$$, $i$$ = $nodes$$.length - 1; 0 <= $i$$; --$i$$) { - $node$$ = $nodes$$[$i$$], $node$$.setAttribute("href", Silica.getValue($node$$, $node$$.dataset.href)); +;function module$exports$compilers$href($ctx_nodes$$, $node$jscomp$10_value$$) { + if (void 0 !== $node$jscomp$10_value$$) { + this.setAttribute("href", $node$jscomp$10_value$$); + } else { + $ctx_nodes$$ = Silica.query(this, "[data-href]"); + for (var $i$$ = $ctx_nodes$$.length - 1; 0 <= $i$$; --$i$$) { + $node$jscomp$10_value$$ = $ctx_nodes$$[$i$$]; + var $property$$ = $node$jscomp$10_value$$.dataset.href; + Silica.observer.register($node$jscomp$10_value$$, $property$$, module$exports$compilers$href); + $node$jscomp$10_value$$.setAttribute("href", Silica.getValue($node$jscomp$10_value$$, $property$$)); + } } Silica._capture_links(this); } @@ -683,13 +698,13 @@ function module$exports$compilers$include() { $node$$ = $nodes$$[$i$$], ($url$$ = Silica.getValue($node$$, $node$$.dataset.include)) && "" !== $url$$ ? module$contents$compilers$include_loadPartial($url$$, $node$$) : ($node$$.removeAttribute("data-sio2-included-url"), module$contents$compilers$include_clearContent($node$$)); } } -;function module$exports$compilers$controller($ctx$jscomp$1_nodes$$, $force$$, $storeWatchers$$) { +;function module$exports$compilers$controller($ctx$jscomp$2_nodes$$, $force$$, $storeWatchers$$) { $force$$ = void 0 === $force$$ ? !1 : $force$$; $storeWatchers$$ = void 0 === $storeWatchers$$ ? !0 : $storeWatchers$$; var $k$$; - $ctx$jscomp$1_nodes$$ = Silica.query(this, "[data-controller]"); - for (var $i$$ = $ctx$jscomp$1_nodes$$.length - 1; 0 <= $i$$; --$i$$) { - var $node$$ = $ctx$jscomp$1_nodes$$[$i$$]; + $ctx$jscomp$2_nodes$$ = Silica.query(this, "[data-controller]"); + for (var $i$$ = $ctx$jscomp$2_nodes$$.length - 1; 0 <= $i$$; --$i$$) { + var $node$$ = $ctx$jscomp$2_nodes$$[$i$$]; if ($force$$ || void 0 === $node$$._rt_ctrl) { var $lastCtrl_v$$ = $node$$._rt_ctrl; delete $node$$._rt_ctrl; @@ -742,11 +757,37 @@ function module$exports$compilers$include() { }; } } -;var module$contents$compilers$model_inputTypes = "text file number email password tel search url range date month week time datetime datetime-local color textarea select select-one".split(" "); -function module$exports$compilers$model($context_elm$$) { - for (var $change_ctx$$, $model$jscomp$0$$, $type$jscomp$118_val$$, $elements$$ = Silica.query(this, "input[data-model]", "select[data-model]", "textarea[data-model]", "option[data-model]"), $i$$ = $elements$$.length - 1; 0 <= $i$$; $i$$--) { - $context_elm$$ = $elements$$[$i$$], $change_ctx$$ = Silica.getContext($context_elm$$), $model$jscomp$0$$ = $context_elm$$.dataset.model, $type$jscomp$118_val$$ = $context_elm$$.type, -1 !== module$contents$compilers$model_inputTypes.indexOf($type$jscomp$118_val$$) ? $context_elm$$.value = Silica.getValue($context_elm$$, $model$jscomp$0$$, $change_ctx$$) : "radio" === $type$jscomp$118_val$$ ? ($type$jscomp$118_val$$ = $context_elm$$.value, $type$jscomp$118_val$$.match(/[0-9]/) && ($type$jscomp$118_val$$ = - parseInt($type$jscomp$118_val$$, 10)), $context_elm$$.checked = Silica.getValue($context_elm$$, $model$jscomp$0$$, $change_ctx$$) === $type$jscomp$118_val$$) : "checkbox" === $type$jscomp$118_val$$ ? $context_elm$$.checked = Silica.getValue($context_elm$$, $model$jscomp$0$$, $change_ctx$$) : "OPTION" === $context_elm$$.nodeName && ($context_elm$$.value = Silica.getValue($context_elm$$, $model$jscomp$0$$, $change_ctx$$)), $change_ctx$$ = function $$change_ctx$$$() { +;function module$contents$watchers$model_setValue($activeElement_type$jscomp$118_val$$, $element$$, $value$$) { + if ($element$$ !== $activeElement_type$jscomp$118_val$$ || "radio" === $element$$.type || "checkbox" === $element$$.type) { + $activeElement_type$jscomp$118_val$$ = $element$$.type, "radio" === $activeElement_type$jscomp$118_val$$ ? ($activeElement_type$jscomp$118_val$$ = $element$$.value, -1 !== $activeElement_type$jscomp$118_val$$.search(/[0-9]/) && ($activeElement_type$jscomp$118_val$$ = parseInt($activeElement_type$jscomp$118_val$$, 10)), $element$$.checked = $value$$ === $activeElement_type$jscomp$118_val$$) : "checkbox" === $activeElement_type$jscomp$118_val$$ ? $element$$.checked = Silica.getValue($element$$, + $element$$.dataset.model) : "OPTION" === $element$$.nodeName ? $element$$.value = $value$$ : "INPUT" === $element$$.nodeName ? $element$$.value = $value$$ : $value$$ ? $value$$.nodeName ? ($element$$.innerHTML = "", $element$$.appendChild($value$$)) : $element$$.innerHTML !== $value$$ && ($element$$.innerHTML = $value$$) : "" !== $element$$.innerHTML && ($element$$.innerHTML = ""); + } +} +function module$exports$watchers$model($activeElement$$, $elements_value$$) { + $activeElement$$ = document.activeElement || Silica.__activeElement; + if (void 0 !== $elements_value$$) { + module$contents$watchers$model_setValue($activeElement$$, this, $elements_value$$); + } else { + $elements_value$$ = Silica.query(this, "[data-model]"); + var $i$$; + for ($i$$ = $elements_value$$.length - 1; 0 <= $i$$; --$i$$) { + var $element$$ = $elements_value$$[$i$$]; + $element$$ === $activeElement$$ && "radio" !== $element$$.type && "checkbox" !== $element$$.type || module$contents$watchers$model_setValue($activeElement$$, $element$$, Silica._model_get_val($element$$)); + } + } +} +;function module$exports$compilers$model($context$jscomp$1_i$$) { + $context$jscomp$1_i$$ = void 0 === $context$jscomp$1_i$$ ? null : $context$jscomp$1_i$$; + var $$jscomp$iter$1_elements$$ = Silica.query(this, "[data-model]"); + $$jscomp$iter$1_elements$$ = $jscomp.makeIterator($$jscomp$iter$1_elements$$); + for (var $$jscomp$key$elm_elm_elm$10$$ = $$jscomp$iter$1_elements$$.next(); !$$jscomp$key$elm_elm_elm$10$$.done; $$jscomp$key$elm_elm_elm$10$$ = $$jscomp$iter$1_elements$$.next()) { + $$jscomp$key$elm_elm_elm$10$$ = $$jscomp$key$elm_elm_elm$10$$.value, Silica.observer.register($$jscomp$key$elm_elm_elm$10$$, $$jscomp$key$elm_elm_elm$10$$.dataset.model, Silica.watchers.Model); + } + module$exports$watchers$model.call(this, $context$jscomp$1_i$$, void 0); + $$jscomp$iter$1_elements$$ = Silica.query(this, "input[data-model]", "select[data-model]", "textarea[data-model]", "option[data-model]"); + for ($context$jscomp$1_i$$ = $$jscomp$iter$1_elements$$.length - 1; 0 <= $context$jscomp$1_i$$; $context$jscomp$1_i$$--) { + $$jscomp$key$elm_elm_elm$10$$ = $$jscomp$iter$1_elements$$[$context$jscomp$1_i$$]; + var $change$$ = function $$change$$$() { var $_ref$$, $_ref1$$, $val$$ = this.value, $ctx$$ = Silica.getContext(this), $model$$ = this.dataset.model; "radio" === this.type ? $val$$.match(/[0-9]/) && ($val$$ = parseInt($val$$, 10)) : "checkbox" === this.type && ($val$$ = this.checked); if (Silica.isInApply) { @@ -774,9 +815,15 @@ function module$exports$compilers$model($context_elm$$) { }); } } - }, $context_elm$$.onchange = $change_ctx$$, $context_elm$$.onkeyup = $change_ctx$$, $context_elm$$.onsearch = $change_ctx$$, $context_elm$$.hasAttribute("x-webkit-speech") && ($context_elm$$.onwebkitspeechchange = $change_ctx$$), $context_elm$$.addEventListener("focus", function() { + }; + $$jscomp$key$elm_elm_elm$10$$.onchange = $change$$; + $$jscomp$key$elm_elm_elm$10$$.onkeyup = $change$$; + $$jscomp$key$elm_elm_elm$10$$.onsearch = $change$$; + $$jscomp$key$elm_elm_elm$10$$.hasAttribute("x-webkit-speech") && ($$jscomp$key$elm_elm_elm$10$$.onwebkitspeechchange = $change$$); + $$jscomp$key$elm_elm_elm$10$$.addEventListener("focus", function() { Silica.__activeElement = this; - }), $context_elm$$.addEventListener("blur", function() { + }); + $$jscomp$key$elm_elm_elm$10$$.addEventListener("blur", function() { Silica.__activeElement === this && (Silica.__activeElement = null); }); } @@ -812,19 +859,19 @@ function module$exports$compilers$src() { } } ;function module$exports$compilers$scroll_finished() { - for (var $nodes$$ = Silica.query(this, "[data-scroll-finished]"), $node$$, $$jscomp$loop$28$$ = {}, $i$$ = $nodes$$.length - 1; 0 <= $i$$; $$jscomp$loop$28$$ = {element:$$jscomp$loop$28$$.element}, --$i$$) { + for (var $nodes$$ = Silica.query(this, "[data-scroll-finished]"), $node$$, $$jscomp$loop$31$$ = {}, $i$$ = $nodes$$.length - 1; 0 <= $i$$; $$jscomp$loop$31$$ = {element:$$jscomp$loop$31$$.element}, --$i$$) { $node$$ = $nodes$$[$i$$]; $node$$._rt_live = !0; - $$jscomp$loop$28$$.element = this; + $$jscomp$loop$31$$.element = this; var $onscrollfinished$$ = Silica.debounce(function($element$$, $evt$$) { Silica._call($element$$, $evt$$, "scroll-finished"); }, 50); - $node$$.onscroll = function($$jscomp$loop$28$$) { + $node$$.onscroll = function($$jscomp$loop$31$$) { return function($evt$$) { this.dataset.scroll && Silica._call(this, $evt$$, "scroll"); - $onscrollfinished$$($$jscomp$loop$28$$.element, $evt$$); + $onscrollfinished$$($$jscomp$loop$31$$.element, $evt$$); }; - }($$jscomp$loop$28$$); + }($$jscomp$loop$31$$); } } ;function module$exports$compilers$value() { @@ -848,8 +895,8 @@ function module$exports$compilers$src() { if (null !== $paramsKeys$$) { $paramsKeys$$.shift(); $params$$ = []; - for (var $j$8$$ = 0, $length$$ = $paramsKeys$$.length; $j$8$$ < $length$$; $j$8$$++) { - $params$$.push(Silica.getValue($node$$, $paramsKeys$$[$j$8$$])); + for (var $j$11$$ = 0, $length$$ = $paramsKeys$$.length; $j$11$$ < $length$$; $j$11$$++) { + $params$$.push(Silica.getValue($node$$, $paramsKeys$$[$j$11$$])); } $comps_valueKey$$ = $comps_valueKey$$.substr(0, $comps_valueKey$$.indexOf("(")); } @@ -921,18 +968,18 @@ function module$exports$compilers$src() { }; } } -;function module$exports$compilers$keydown($context$jscomp$1_elements$$) { - $context$jscomp$1_elements$$ = Silica.query(this, "[data-keydown]"); - for (var $i$$ = $context$jscomp$1_elements$$.length - 1; 0 <= $i$$; $i$$--) { - $context$jscomp$1_elements$$[$i$$].addEventListener("keydown", function($evt$$) { +;function module$exports$compilers$keydown($context$jscomp$2_elements$$) { + $context$jscomp$2_elements$$ = Silica.query(this, "[data-keydown]"); + for (var $i$$ = $context$jscomp$2_elements$$.length - 1; 0 <= $i$$; $i$$--) { + $context$jscomp$2_elements$$[$i$$].addEventListener("keydown", function($evt$$) { Silica._call(this, $evt$$, "keydown"); }); } } -;function module$exports$compilers$keyup($context$jscomp$2_elements$$) { - $context$jscomp$2_elements$$ = Silica.query(this, "[data-keyup]"); - for (var $i$$ = $context$jscomp$2_elements$$.length - 1; 0 <= $i$$; $i$$--) { - $context$jscomp$2_elements$$[$i$$].addEventListener("keyup", function($evt$$) { +;function module$exports$compilers$keyup($context$jscomp$3_elements$$) { + $context$jscomp$3_elements$$ = Silica.query(this, "[data-keyup]"); + for (var $i$$ = $context$jscomp$3_elements$$.length - 1; 0 <= $i$$; $i$$--) { + $context$jscomp$3_elements$$[$i$$].addEventListener("keyup", function($evt$$) { Silica._call(this, $evt$$, "keyup"); }); } @@ -1069,7 +1116,7 @@ module$exports$hax.init = function $module$exports$hax$init$() { return module$contents$hax_concat($e$$, "string" === typeof $k$$ && module$contents$hax_isEnumerable($O$$, $k$$) ? [[$k$$, $O$$[$k$$]]] : []); }, []); }); - Array.prototype.includes || Object.defineProperty(Array.prototype, "includes", {value:function($searchElement$$, $fromIndex_k$jscomp$5_n$$) { + Array.prototype.includes || Object.defineProperty(Array.prototype, "includes", {value:function($searchElement$$, $fromIndex_k$jscomp$6_n$$) { if (null == this) { throw new TypeError('"this" is null or not defined'); } @@ -1077,13 +1124,13 @@ module$exports$hax.init = function $module$exports$hax$init$() { if (0 === $len$$) { return !1; } - $fromIndex_k$jscomp$5_n$$ |= 0; - for ($fromIndex_k$jscomp$5_n$$ = Math.max(0 <= $fromIndex_k$jscomp$5_n$$ ? $fromIndex_k$jscomp$5_n$$ : $len$$ - Math.abs($fromIndex_k$jscomp$5_n$$), 0); $fromIndex_k$jscomp$5_n$$ < $len$$;) { - var $x$$ = $o$$[$fromIndex_k$jscomp$5_n$$], $y$$ = $searchElement$$; + $fromIndex_k$jscomp$6_n$$ |= 0; + for ($fromIndex_k$jscomp$6_n$$ = Math.max(0 <= $fromIndex_k$jscomp$6_n$$ ? $fromIndex_k$jscomp$6_n$$ : $len$$ - Math.abs($fromIndex_k$jscomp$6_n$$), 0); $fromIndex_k$jscomp$6_n$$ < $len$$;) { + var $x$$ = $o$$[$fromIndex_k$jscomp$6_n$$], $y$$ = $searchElement$$; if ($x$$ === $y$$ || "number" === typeof $x$$ && "number" === typeof $y$$ && isNaN($x$$) && isNaN($y$$)) { return !0; } - $fromIndex_k$jscomp$5_n$$++; + $fromIndex_k$jscomp$6_n$$++; } return !1; }}); @@ -1108,12 +1155,12 @@ module$exports$silica$pubsub.Pub = function $module$exports$silica$pubsub$Pub$($ } var $subs$$ = module$contents$silica$pubsub_subscriptions.get($channel$$); $subs$$ && setTimeout(function() { - for (var $$jscomp$loop$29$$ = {}, $$jscomp$iter$1$$ = $jscomp.makeIterator($subs$$), $$jscomp$destructuring$var1_$jscomp$key$$$ = $$jscomp$iter$1$$.next(); !$$jscomp$destructuring$var1_$jscomp$key$$$.done; $$jscomp$loop$29$$ = {value:$$jscomp$loop$29$$.value}, $$jscomp$destructuring$var1_$jscomp$key$$$ = $$jscomp$iter$1$$.next()) { - $$jscomp$destructuring$var1_$jscomp$key$$$ = $jscomp.makeIterator($$jscomp$destructuring$var1_$jscomp$key$$$.value), $$jscomp$destructuring$var1_$jscomp$key$$$.next(), $$jscomp$loop$29$$.value = $$jscomp$destructuring$var1_$jscomp$key$$$.next().value, Silica.enqueue(function($$jscomp$loop$29$$) { + for (var $$jscomp$loop$32$$ = {}, $$jscomp$iter$2$$ = $jscomp.makeIterator($subs$$), $$jscomp$destructuring$var1_$jscomp$key$$$ = $$jscomp$iter$2$$.next(); !$$jscomp$destructuring$var1_$jscomp$key$$$.done; $$jscomp$loop$32$$ = {value:$$jscomp$loop$32$$.value}, $$jscomp$destructuring$var1_$jscomp$key$$$ = $$jscomp$iter$2$$.next()) { + $$jscomp$destructuring$var1_$jscomp$key$$$ = $jscomp.makeIterator($$jscomp$destructuring$var1_$jscomp$key$$$.value), $$jscomp$destructuring$var1_$jscomp$key$$$.next(), $$jscomp$loop$32$$.value = $$jscomp$destructuring$var1_$jscomp$key$$$.next().value, Silica.enqueue(function($$jscomp$loop$32$$) { return function() { - $$jscomp$loop$29$$.value[0].apply(null, $jscomp.arrayFromIterable($$jscomp$restParams$$)); + $$jscomp$loop$32$$.value[0].apply(null, $jscomp.arrayFromIterable($$jscomp$restParams$$)); }; - }($$jscomp$loop$29$$), $$jscomp$loop$29$$.value[1]); + }($$jscomp$loop$32$$), $$jscomp$loop$32$$.value[1]); } }, 0); }; @@ -1131,48 +1178,48 @@ function module$exports$watchers$if() { var $elements$$ = $_ref$$[$k$$]; var $raw$$ = $k$$; ($negate$$ = "!" === $k$$[0]) && ($k$$ = $k$$.substr(1)); - var $$jscomp$loop$30$$ = {}; + var $$jscomp$loop$33$$ = {}; var $i$$ = 0; - for ($_len$$ = $elements$$.length; $i$$ < $_len$$; $$jscomp$loop$30$$ = {subNode:$$jscomp$loop$30$$.subNode}, ++$i$$) { - var $_ref$12_element$$ = $elements$$[$i$$]; - if ($_ref$12_element$$ === this || Silica.isDescendent(this, $_ref$12_element$$)) { - if ($comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$ = Silica._show($_ref$12_element$$, $k$$, $negate$$)) { - if (8 === $_ref$12_element$$.nodeType && ($comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$ = document.createElement("div"), $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$.innerHTML = $_ref$12_element$$.nodeValue, $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$ = Silica.compile($comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$.firstElementChild, !1, Silica.getContext($_ref$12_element$$.parentElement)), - $_ref$12_element$$.parentNode.replaceChild($comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$, $_ref$12_element$$), Silica._ifs[$raw$$][$i$$] = $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$, $_ref$12_element$$ = void 0, null != ($_ref$12_element$$ = Silica.getContext($comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$)) && "function" === typeof $_ref$12_element$$.onLoad && $_ref$12_element$$.el === $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$)) { - $_ref$12_element$$.onLoad(); + for ($_len$$ = $elements$$.length; $i$$ < $_len$$; $$jscomp$loop$33$$ = {subNode:$$jscomp$loop$33$$.subNode}, ++$i$$) { + var $_ref$15_element$$ = $elements$$[$i$$]; + if ($_ref$15_element$$ === this || Silica.isDescendent(this, $_ref$15_element$$)) { + if ($comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$ = Silica._show($_ref$15_element$$, $k$$, $negate$$)) { + if (8 === $_ref$15_element$$.nodeType && ($comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$ = document.createElement("div"), $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$.innerHTML = $_ref$15_element$$.nodeValue, $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$ = Silica.compile($comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$.firstElementChild, !1, Silica.getContext($_ref$15_element$$.parentElement)), + $_ref$15_element$$.parentNode.replaceChild($comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$, $_ref$15_element$$), Silica._ifs[$raw$$][$i$$] = $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$, $_ref$15_element$$ = void 0, null != ($_ref$15_element$$ = Silica.getContext($comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$)) && "function" === typeof $_ref$15_element$$.onLoad && $_ref$15_element$$.el === $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$)) { + $_ref$15_element$$.onLoad(); } } else { - if (8 !== $_ref$12_element$$.nodeType) { - $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$ = Silica.queryWithComments($_ref$12_element$$, "[data-if]"); - $$jscomp$loop$30$$.subNode = void 0; - for (var $$jscomp$loop$31_j$$ = $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$.length - 1; 0 <= $$jscomp$loop$31_j$$; --$$jscomp$loop$31_j$$) { + if (8 !== $_ref$15_element$$.nodeType) { + $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$ = Silica.queryWithComments($_ref$15_element$$, "[data-if]"); + $$jscomp$loop$33$$.subNode = void 0; + for (var $$jscomp$loop$34_j$$ = $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$.length - 1; 0 <= $$jscomp$loop$34_j$$; --$$jscomp$loop$34_j$$) { var $list$$ = void 0, $_ref1$$; - $$jscomp$loop$30$$.subNode = $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$[$$jscomp$loop$31_j$$]; - if (8 !== $$jscomp$loop$30$$.subNode.nodeType || $$jscomp$loop$30$$.subNode.dataset) { - var $j$13_prop$$ = $$jscomp$loop$30$$.subNode.dataset["if"]; + $$jscomp$loop$33$$.subNode = $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$[$$jscomp$loop$34_j$$]; + if (8 !== $$jscomp$loop$33$$.subNode.nodeType || $$jscomp$loop$33$$.subNode.dataset) { + var $j$16_prop$$ = $$jscomp$loop$33$$.subNode.dataset["if"]; } else { - $wrapper$$.innerHTML = $$jscomp$loop$30$$.subNode.data, $j$13_prop$$ = $wrapper$$.firstChild.dataset["if"]; + $wrapper$$.innerHTML = $$jscomp$loop$33$$.subNode.data, $j$16_prop$$ = $wrapper$$.firstChild.dataset["if"]; } - $list$$ = Silica._shws[$j$13_prop$$]; - Silica._shws[$j$13_prop$$] = null != ($_ref1$$ = null != $list$$ ? $list$$.filter(function($$jscomp$loop$30$$) { + $list$$ = Silica._shws[$j$16_prop$$]; + Silica._shws[$j$16_prop$$] = null != ($_ref1$$ = null != $list$$ ? $list$$.filter(function($$jscomp$loop$33$$) { return function($obj$$) { - return !$obj$$ === $$jscomp$loop$30$$.subNode; + return !$obj$$ === $$jscomp$loop$33$$.subNode; }; - }($$jscomp$loop$30$$)) : void 0) ? $_ref1$$ : []; + }($$jscomp$loop$33$$)) : void 0) ? $_ref1$$ : []; } - $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$ = Silica.query($_ref$12_element$$, "[data-controller]"); - $$jscomp$loop$31_j$$ = {}; - for ($j$13_prop$$ = $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$.length - 1; 0 <= $j$13_prop$$; $$jscomp$loop$31_j$$ = {ctrl:$$jscomp$loop$31_j$$.ctrl}, --$j$13_prop$$) { - for ($k$$ in $$jscomp$loop$31_j$$.ctrl = void 0, $$jscomp$loop$30$$.subNode = $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$[$j$13_prop$$], $$jscomp$loop$31_j$$.ctrl = $$jscomp$loop$30$$.subNode._rt_ctrl, null != $$jscomp$loop$31_j$$.ctrl ? $$jscomp$loop$31_j$$.ctrl.constructor.watchers : void 0) { - $list$$ = Silica._watch[$k$$], Silica._watch[$k$$] = null != $list$$ ? $list$$.filter(function($$jscomp$loop$31$$) { + $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$ = Silica.query($_ref$15_element$$, "[data-controller]"); + $$jscomp$loop$34_j$$ = {}; + for ($j$16_prop$$ = $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$.length - 1; 0 <= $j$16_prop$$; $$jscomp$loop$34_j$$ = {ctrl:$$jscomp$loop$34_j$$.ctrl}, --$j$16_prop$$) { + for ($k$$ in $$jscomp$loop$34_j$$.ctrl = void 0, $$jscomp$loop$33$$.subNode = $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$[$j$16_prop$$], $$jscomp$loop$34_j$$.ctrl = $$jscomp$loop$33$$.subNode._rt_ctrl, null != $$jscomp$loop$34_j$$.ctrl ? $$jscomp$loop$34_j$$.ctrl.constructor.watchers : void 0) { + $list$$ = Silica._watch[$k$$], Silica._watch[$k$$] = null != $list$$ ? $list$$.filter(function($$jscomp$loop$34$$) { return function($obj$$) { - return $obj$$[0] !== $$jscomp$loop$31$$.ctrl; + return $obj$$[0] !== $$jscomp$loop$34$$.ctrl; }; - }($$jscomp$loop$31_j$$)) : []; + }($$jscomp$loop$34_j$$)) : []; } } - $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$ = document.createComment($_ref$12_element$$.outerHTML); - $_ref$12_element$$.parentNode.replaceChild($comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$, $_ref$12_element$$); + $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$ = document.createComment($_ref$15_element$$.outerHTML); + $_ref$15_element$$.parentNode.replaceChild($comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$, $_ref$15_element$$); Silica._ifs[$raw$$][$i$$] = $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$; } } @@ -1181,24 +1228,32 @@ function module$exports$watchers$if() { } } ;function module$exports$watchers$repeat() { - for (var $changed_obj$jscomp$38_oldList_template$$, $child_node$$, $context$jscomp$4_keys$$, $ctx$$, $list$jscomp$4_newList_param$$, $model$$, $_i_countDiff_j$$, $_len$jscomp$1_fragment$jscomp$1_len$$, $_ref$$, $raw$$, $elements$$ = Silica.querySorted(this, "[data-repeat]"), $i$$ = 0, $length$$ = $elements$$.length; $i$$ < $length$$; ++$i$$) { - if ($raw$$ = $elements$$[$i$$], $ctx$$ = $raw$$.dataset.repeat.split(/\s+in\s+/), $list$jscomp$4_newList_param$$ = $ctx$$[1], $model$$ = $ctx$$[0], $ctx$$ = Silica.getContext($raw$$), "undefined" !== typeof($_ref$$ = $list$jscomp$4_newList_param$$.match(/((?:\w|\.)+)(?:\(([\w\.]+)\))*/))[2] ? ($list$jscomp$4_newList_param$$ = $_ref$$[2], $list$jscomp$4_newList_param$$ = Silica.getValue($raw$$.parentNode, $list$jscomp$4_newList_param$$), $list$jscomp$4_newList_param$$ = Silica.getValue($raw$$, - $_ref$$[1], null, $list$jscomp$4_newList_param$$)) : $list$jscomp$4_newList_param$$ = Silica.getValue($raw$$, $list$jscomp$4_newList_param$$), $context$jscomp$4_keys$$ = Silica.hasher(JSON.stringify($list$jscomp$4_newList_param$$, function($key$$, $value$$) { + for (var $changed_obj$jscomp$38_oldList_template$$, $child_node$$, $context$jscomp$5_keys$$, $ctx$$, $list$jscomp$4_newList_param$$, $model$$, $_i_countDiff_j$$, $_len$jscomp$1_fragment$jscomp$1_len$$, $_ref$$, $raw$$, $elements$$ = Silica.querySorted(this, "[data-repeat]"), $i$$ = 0, $length$$ = $elements$$.length; $i$$ < $length$$; ++$i$$) { + $raw$$ = $elements$$[$i$$]; + $ctx$$ = $raw$$.dataset.repeat.split(/\s+in\s+/); + $list$jscomp$4_newList_param$$ = $ctx$$[1]; + $model$$ = $ctx$$[0]; + $ctx$$ = Silica.getContext($raw$$); + var $possiblyNested$$ = !$raw$$.dataset.repeatNotNested; + "undefined" !== typeof($_ref$$ = $list$jscomp$4_newList_param$$.match(/((?:\w|\.)+)(?:\(([\w\.]+)\))*/))[2] ? ($list$jscomp$4_newList_param$$ = $_ref$$[2], $list$jscomp$4_newList_param$$ = Silica.getValue($raw$$.parentNode, $list$jscomp$4_newList_param$$), $list$jscomp$4_newList_param$$ = Silica.getValue($raw$$, $_ref$$[1], null, $list$jscomp$4_newList_param$$)) : $list$jscomp$4_newList_param$$ = Silica.getValue($raw$$, $list$jscomp$4_newList_param$$); + $context$jscomp$5_keys$$ = Silica.hasher(JSON.stringify($list$jscomp$4_newList_param$$, function($key$$, $value$$) { if ($key$$.constructor !== String || "__elm" !== $key$$ && "$ctrl" !== $key$$ && 95 !== $key$$.charCodeAt(0)) { return $value$$; } - })), $_ref$$ = $raw$$.childNodes, $changed_obj$jscomp$38_oldList_template$$ = ($changed_obj$jscomp$38_oldList_template$$ = $raw$$._rt_repeat_list) && $list$jscomp$4_newList_param$$ ? $changed_obj$jscomp$38_oldList_template$$ !== $context$jscomp$4_keys$$ : !0) { - if ($raw$$._rt_repeat_list = $list$jscomp$4_newList_param$$ ? $context$jscomp$4_keys$$ : null, $list$jscomp$4_newList_param$$) { + })); + $_ref$$ = $raw$$.childNodes; + if ($changed_obj$jscomp$38_oldList_template$$ = ($changed_obj$jscomp$38_oldList_template$$ = $raw$$._rt_repeat_list) && $list$jscomp$4_newList_param$$ ? $changed_obj$jscomp$38_oldList_template$$ !== $context$jscomp$5_keys$$ : !0) { + if ($raw$$._rt_repeat_list = $list$jscomp$4_newList_param$$ ? $context$jscomp$5_keys$$ : null, $list$jscomp$4_newList_param$$) { $list$jscomp$4_newList_param$$.constructor === Number && ($list$jscomp$4_newList_param$$ = Array($list$jscomp$4_newList_param$$)); $changed_obj$jscomp$38_oldList_template$$ = Silica._repeat_templates[module$exports$hax$safari.getDatasetProperty($raw$$, "_rt_repeat_template")]; if ($list$jscomp$4_newList_param$$.constructor === Object) { - $context$jscomp$4_keys$$ = Object.keys($list$jscomp$4_newList_param$$); + $context$jscomp$5_keys$$ = Object.keys($list$jscomp$4_newList_param$$); $child_node$$ = $list$jscomp$4_newList_param$$; $list$jscomp$4_newList_param$$ = []; $_i_countDiff_j$$ = 0; - $_len$jscomp$1_fragment$jscomp$1_len$$ = $context$jscomp$4_keys$$.length; - for (var $key$jscomp$0$$ = $context$jscomp$4_keys$$[$_i_countDiff_j$$]; $_i_countDiff_j$$ < $_len$jscomp$1_fragment$jscomp$1_len$$; $_i_countDiff_j$$++) { - $key$jscomp$0$$ = $context$jscomp$4_keys$$[$_i_countDiff_j$$], $list$jscomp$4_newList_param$$[$_i_countDiff_j$$] = {key:$key$jscomp$0$$, value:$child_node$$[$key$jscomp$0$$]}; + $_len$jscomp$1_fragment$jscomp$1_len$$ = $context$jscomp$5_keys$$.length; + for (var $key$jscomp$0$$ = $context$jscomp$5_keys$$[$_i_countDiff_j$$]; $_i_countDiff_j$$ < $_len$jscomp$1_fragment$jscomp$1_len$$; $_i_countDiff_j$$++) { + $key$jscomp$0$$ = $context$jscomp$5_keys$$[$_i_countDiff_j$$], $list$jscomp$4_newList_param$$[$_i_countDiff_j$$] = {key:$key$jscomp$0$$, value:$child_node$$[$key$jscomp$0$$]}; } } $_i_countDiff_j$$ = $raw$$.childElementCount - $list$jscomp$4_newList_param$$.length; @@ -1206,11 +1261,11 @@ function module$exports$watchers$if() { Silica.removeFromDOM($_ref$$[$_i_countDiff_j$$ - 1]), --$_i_countDiff_j$$; } for ($_len$jscomp$1_fragment$jscomp$1_len$$ = document.createDocumentFragment(); 0 > $_i_countDiff_j$$;) { - $context$jscomp$4_keys$$ = {}; - $context$jscomp$4_keys$$[$model$$] = $list$jscomp$4_newList_param$$[$list$jscomp$4_newList_param$$.length + $_i_countDiff_j$$]; - $context$jscomp$4_keys$$.$ctrl = $ctx$$; + $context$jscomp$5_keys$$ = {}; + $context$jscomp$5_keys$$[$model$$] = $list$jscomp$4_newList_param$$[$list$jscomp$4_newList_param$$.length + $_i_countDiff_j$$]; + $context$jscomp$5_keys$$.$ctrl = $ctx$$; $child_node$$ = $changed_obj$jscomp$38_oldList_template$$.cloneNode(!0); - $child_node$$._rt_ctx = $context$jscomp$4_keys$$; + $child_node$$._rt_ctx = $context$jscomp$5_keys$$; for ($key$jscomp$0$$ in Silica.compilers) { Silica.compilers[$key$jscomp$0$$].call($child_node$$); } @@ -1223,10 +1278,10 @@ function module$exports$watchers$if() { $changed_obj$jscomp$38_oldList_template$$ = $list$jscomp$4_newList_param$$[$_i_countDiff_j$$]; $child_node$$ = $_ref$$[$_i_countDiff_j$$]; var $modelChanged$$ = $model$$ !== $changed_obj$jscomp$38_oldList_template$$; - $child_node$$._rt_ctx ? $child_node$$._rt_ctx[$model$$] = $changed_obj$jscomp$38_oldList_template$$ : ($context$jscomp$4_keys$$ = {}, $context$jscomp$4_keys$$[$model$$] = $changed_obj$jscomp$38_oldList_template$$, $context$jscomp$4_keys$$.$ctrl = $ctx$$, $child_node$$._rt_ctx = $context$jscomp$4_keys$$); + $child_node$$._rt_ctx ? $child_node$$._rt_ctx[$model$$] = $changed_obj$jscomp$38_oldList_template$$ : ($context$jscomp$5_keys$$ = {}, $context$jscomp$5_keys$$[$model$$] = $changed_obj$jscomp$38_oldList_template$$, $context$jscomp$5_keys$$.$ctrl = $ctx$$, $child_node$$._rt_ctx = $context$jscomp$5_keys$$); $modelChanged$$ && module$exports$compilers$controller.call($child_node$$, $child_node$$._rt_ctx, !0); $child_node$$._rt_ctx.index = $_i_countDiff_j$$; - Silica.flush($child_node$$, !1, {}, !0); + $possiblyNested$$ && module$exports$watchers$repeat.call($child_node$$); } $ctx$$.renderedRepeat ? $ctx$$.renderedRepeat($raw$$) : $ctx$$.$ctrl && $ctx$$.$ctrl.renderedRepeat && $ctx$$.$ctrl.renderedRepeat($raw$$); } else { @@ -1276,16 +1331,16 @@ function module$contents$watchers$class_updater($element$$) { if ($klass$$ instanceof Array || ($klass$$ = [$klass$$]), $element$$.classList.length !== $klass$$.length) { $element$$.className = $hardClass_isVisible$jscomp$4_key$$, $element$$.classList.add.apply($element$$.classList, $klass$$); } else { - for (var $$jscomp$iter$3_applied$$ = !1, $$jscomp$iter$2$$ = $jscomp.makeIterator($klass$$), $$jscomp$key$k$$ = $$jscomp$iter$2$$.next(); !$$jscomp$key$k$$.done; $$jscomp$key$k$$ = $$jscomp$iter$2$$.next()) { + for (var $$jscomp$iter$4_applied$$ = !1, $$jscomp$iter$3$$ = $jscomp.makeIterator($klass$$), $$jscomp$key$k$$ = $$jscomp$iter$3$$.next(); !$$jscomp$key$k$$.done; $$jscomp$key$k$$ = $$jscomp$iter$3$$.next()) { if (!$element$$.classList.contains($$jscomp$key$k$$.value)) { $element$$.className = $hardClass_isVisible$jscomp$4_key$$; $element$$.classList.add.apply($element$$.classList, $klass$$); - $$jscomp$iter$3_applied$$ = !0; + $$jscomp$iter$4_applied$$ = !0; break; } } - if (!$$jscomp$iter$3_applied$$) { - for ($$jscomp$iter$3_applied$$ = $jscomp.makeIterator(module$contents$watchers$class_getClassList($element$$)), $$jscomp$key$k$$ = $$jscomp$iter$3_applied$$.next(); !$$jscomp$key$k$$.done; $$jscomp$key$k$$ = $$jscomp$iter$3_applied$$.next()) { + if (!$$jscomp$iter$4_applied$$) { + for ($$jscomp$iter$4_applied$$ = $jscomp.makeIterator(module$contents$watchers$class_getClassList($element$$)), $$jscomp$key$k$$ = $$jscomp$iter$4_applied$$.next(); !$$jscomp$key$k$$.done; $$jscomp$key$k$$ = $$jscomp$iter$4_applied$$.next()) { if (!$klass$$.includes($$jscomp$key$k$$.value)) { $element$$.className = $hardClass_isVisible$jscomp$4_key$$; $element$$.classList.add.apply($element$$.classList, $klass$$); @@ -1304,35 +1359,49 @@ function module$exports$watchers$class() { module$contents$watchers$class_updater($elements$$[$i$$]); } } -;var module$contents$watchers$model_inputTypes = "text file number email password tel search url range date month week time datetime datetime-local color textarea select select-one".split(" "); -function module$exports$watchers$model() { - var $elements$$ = Silica.query(this, "[data-model]"), $i$$, $activeElement$$ = document.activeElement || Silica.__activeElement; - for ($i$$ = $elements$$.length - 1; 0 <= $i$$; --$i$$) { - var $element$$ = $elements$$[$i$$]; - if ($element$$ !== $activeElement$$ || "radio" === $element$$.type || "checkbox" === $element$$.type) { - var $type$jscomp$119_val$$ = $element$$.type; - -1 !== module$contents$watchers$model_inputTypes.indexOf($type$jscomp$119_val$$) ? $element$$.value = Silica._model_get_val($element$$) : "radio" === $type$jscomp$119_val$$ ? ($type$jscomp$119_val$$ = $element$$.value, -1 !== $type$jscomp$119_val$$.search(/[0-9]/) && ($type$jscomp$119_val$$ = parseInt($type$jscomp$119_val$$, 10)), $element$$.checked = Silica.getValue($element$$, $element$$.dataset.model) === $type$jscomp$119_val$$) : "checkbox" === $type$jscomp$119_val$$ ? $element$$.checked = - Silica.getValue($element$$, $element$$.dataset.model) : "SPAN" === $element$$.nodeName || "PRE" === $element$$.nodeName || "DIV" === $element$$.nodeName || "P" === $element$$.nodeName ? ($type$jscomp$119_val$$ = Silica._model_get_val($element$$)) ? $type$jscomp$119_val$$.nodeName ? ($element$$.innerHTML = "", $element$$.appendChild($type$jscomp$119_val$$)) : $element$$.innerHTML !== $type$jscomp$119_val$$ && ($element$$.innerHTML = $type$jscomp$119_val$$) : "" !== $element$$.innerHTML && ($element$$.innerHTML = - "") : "OPTION" === $element$$.nodeName && ($element$$.value = Silica._model_get_val($element$$)); - } +;var module$exports$watchers = {_If:module$exports$watchers$if, Repeat:module$exports$watchers$repeat, Show:module$exports$watchers$show, Class:module$exports$watchers$class, Model:module$exports$watchers$model, Disabled:module$exports$compilers$disabled, Href:module$exports$compilers$href, Style:module$exports$compilers$style, Src:module$exports$compilers$src, Generic:module$exports$compilers$generic, Include:module$exports$compilers$include, Value:module$exports$compilers$value}; +var module$exports$watchers$observer = {ValueObserver:function() { + this.mapping = new Map; +}}; +module$exports$watchers$observer.ValueObserver.prototype.clone = function $module$exports$watchers$observer$ValueObserver$$clone$($obj$$) { + if (null === $obj$$ || void 0 === $obj$$) { + return null; } -} -;var module$exports$watchers = {}; -module$exports$watchers._If = module$exports$watchers$if; -module$exports$watchers.Repeat = module$exports$watchers$repeat; -module$exports$watchers.Show = module$exports$watchers$show; -module$exports$watchers.Class = module$exports$watchers$class; -module$exports$watchers.Model = module$exports$watchers$model; -module$exports$watchers.Disabled = module$exports$compilers$disabled; -module$exports$watchers.Href = module$exports$compilers$href; -module$exports$watchers.Style = module$exports$compilers$style; -module$exports$watchers.Src = module$exports$compilers$src; -module$exports$watchers.Generic = module$exports$compilers$generic; -module$exports$watchers.Include = module$exports$compilers$include; -module$exports$watchers.Value = module$exports$compilers$value; + if ("object" !== typeof $obj$$) { + return $obj$$; + } + var $clone$$ = new $obj$$.constructor, $i$$; + for ($i$$ in $obj$$) { + $clone$$[$i$$] = null != $obj$$[$i$$] && "object" === typeof $obj$$[$i$$] ? this.clone($obj$$[$i$$]) : $obj$$[$i$$]; + } + return $clone$$; +}; +module$exports$watchers$observer.ValueObserver.prototype.register = function $module$exports$watchers$observer$ValueObserver$$register$($node$$, $property$$, $actor$$) { + var $value$$ = this.clone(Silica.getFilteredValue($node$$, $property$$)), $map$$ = this.mapping.get($node$$); + $map$$ || ($map$$ = new Map, this.mapping.set($node$$, $map$$)); + ($node$$ = $map$$.get($property$$)) ? $node$$.actors.add($actor$$) : ($node$$ = {value:$value$$, actors:new Set([$actor$$])}, $map$$.set($property$$, $node$$)); +}; +module$exports$watchers$observer.ValueObserver.prototype.applyChanges = function $module$exports$watchers$observer$ValueObserver$$applyChanges$() { + var $$jscomp$this$$ = this; + this.mapping.forEach(function($map$$, $node$$) { + $map$$.forEach(function($$jscomp$iter$5_packet$$, $newValue$jscomp$1_property$$) { + $newValue$jscomp$1_property$$ = Silica.getFilteredValue($node$$, $newValue$jscomp$1_property$$); + if (!Object.is($$jscomp$iter$5_packet$$.value, $newValue$jscomp$1_property$$)) { + $$jscomp$iter$5_packet$$.value = $$jscomp$this$$.clone($newValue$jscomp$1_property$$); + $$jscomp$iter$5_packet$$ = $jscomp.makeIterator($$jscomp$iter$5_packet$$.actors.values()); + for (var $$jscomp$key$actor$$ = $$jscomp$iter$5_packet$$.next(); !$$jscomp$key$actor$$.done; $$jscomp$key$actor$$ = $$jscomp$iter$5_packet$$.next()) { + $$jscomp$key$actor$$.value.call($node$$, null, $newValue$jscomp$1_property$$); + } + } + }); + }); +}; +module$exports$watchers$observer.create = function $module$exports$watchers$observer$create$() { + return new module$exports$watchers$observer.ValueObserver; +}; var module$exports$silica = {}; module$exports$hax.init(); -window.Silica = {context:window, contextName:"", directives:{}, components:{}, filters:{}, hasher:md5, router:null, _ifs:{}, _shws:{}, _klass:{}, _watch:{}, _repeat_templates:{}, _isReady:!1, _appRoot:null, _defers:[], _includeCache:{}, _clickOutElements:new Set, _queue:[], interpolationPattern:/\{\{(.*?)\}\}/, usePushState:!0, version:"0.52.0", setContext:function $window$Silica$setContext$($contextName$$) { +window.Silica = {context:window, contextName:"", directives:{}, components:{}, filters:{}, hasher:md5, router:null, _ifs:{}, _shws:{}, _klass:{}, _watch:{}, _repeat_templates:{}, _isReady:!1, _appRoot:null, _defers:[], _includeCache:{}, _clickOutElements:new Set, _queue:[], interpolationPattern:/\{\{(.*?)\}\}/, usePushState:!0, observer:module$exports$watchers$observer.create(), version:"0.60.0-alpha", setContext:function $window$Silica$setContext$($contextName$$) { this.contextName = $contextName$$; this.context = window[$contextName$$]; }, setRouter:function $window$Silica$setRouter$($router$$) { @@ -1376,10 +1445,10 @@ window.Silica = {context:window, contextName:"", directives:{}, components:{}, f $element$$ === Silica._appRoot && (Silica._isReady = !0); return $element$$; } -}, cacheTemplates:function $window$Silica$cacheTemplates$($element$jscomp$20_nodes$$) { - $element$jscomp$20_nodes$$ = $element$jscomp$20_nodes$$.querySelectorAll("[data-repeat]"); - for (var $node$$, $hash$$, $context$$, $i$$ = $element$jscomp$20_nodes$$.length - 1; 0 <= $i$$; --$i$$) { - $node$$ = $element$jscomp$20_nodes$$[$i$$], module$exports$hax$safari.hasDatasetProperty($node$$, "_rt_repeat_template") || ($hash$$ = Silica.hasher($node$$.innerHTML), 1 === $node$$.children.length ? Silica._repeat_templates[$hash$$] = $node$$.removeChild($node$$.firstElementChild) : (console.warn("Repeat has multiple children, wrapping with div", $node$$), $context$$ = document.createElement("div"), $context$$.innerHTML = $node$$.innerHTML, Silica._repeat_templates[$hash$$] = $context$$), $node$$.dataset._rt_repeat_template = +}, cacheTemplates:function $window$Silica$cacheTemplates$($element$jscomp$21_nodes$$) { + $element$jscomp$21_nodes$$ = $element$jscomp$21_nodes$$.querySelectorAll("[data-repeat]"); + for (var $node$$, $hash$$, $context$$, $i$$ = $element$jscomp$21_nodes$$.length - 1; 0 <= $i$$; --$i$$) { + $node$$ = $element$jscomp$21_nodes$$[$i$$], module$exports$hax$safari.hasDatasetProperty($node$$, "_rt_repeat_template") || ($hash$$ = Silica.hasher($node$$.innerHTML), 1 === $node$$.children.length ? Silica._repeat_templates[$hash$$] = $node$$.removeChild($node$$.firstElementChild) : (console.warn("Repeat has multiple children, wrapping with div", $node$$), $context$$ = document.createElement("div"), $context$$.innerHTML = $node$$.innerHTML, Silica._repeat_templates[$hash$$] = $context$$), $node$$.dataset._rt_repeat_template = $hash$$, $context$$ = {}, $context$$.$ctrl = Silica.getContext($node$$), Silica._repeat_templates[$hash$$] = Silica.compile(Silica._repeat_templates[$hash$$], !1, $context$$, !0, !1), $node$$.innerHTML = ""); } }, debounce:function $window$Silica$debounce$($func$$, $wait$$, $immediate$$) { @@ -1402,19 +1471,19 @@ window.Silica = {context:window, contextName:"", directives:{}, components:{}, f if (Silica.isChildOf($$jscomp$key$b_b$$, $$jscomp$key$a_a$$)) { return $$jscomp$key$a_a$$; } - var $$jscomp$iter$5_a_parents$$ = []; + var $$jscomp$iter$7_a_parents$$ = []; for ($$jscomp$key$a_a$$ = $$jscomp$key$a_a$$.parentElement; $$jscomp$key$a_a$$;) { - $$jscomp$iter$5_a_parents$$.push($$jscomp$key$a_a$$), $$jscomp$key$a_a$$ = $$jscomp$key$a_a$$.parentElement; + $$jscomp$iter$7_a_parents$$.push($$jscomp$key$a_a$$), $$jscomp$key$a_a$$ = $$jscomp$key$a_a$$.parentElement; } var $b_parents$$ = []; for ($$jscomp$key$b_b$$ = $$jscomp$key$b_b$$.parentElement; $$jscomp$key$b_b$$;) { $b_parents$$.push($$jscomp$key$b_b$$), $$jscomp$key$b_b$$ = $$jscomp$key$b_b$$.parentElement; } - $$jscomp$iter$5_a_parents$$ = $jscomp.makeIterator($$jscomp$iter$5_a_parents$$); - for ($$jscomp$key$a_a$$ = $$jscomp$iter$5_a_parents$$.next(); !$$jscomp$key$a_a$$.done; $$jscomp$key$a_a$$ = $$jscomp$iter$5_a_parents$$.next()) { + $$jscomp$iter$7_a_parents$$ = $jscomp.makeIterator($$jscomp$iter$7_a_parents$$); + for ($$jscomp$key$a_a$$ = $$jscomp$iter$7_a_parents$$.next(); !$$jscomp$key$a_a$$.done; $$jscomp$key$a_a$$ = $$jscomp$iter$7_a_parents$$.next()) { $$jscomp$key$a_a$$ = $$jscomp$key$a_a$$.value; - var $$jscomp$iter$4$$ = $jscomp.makeIterator($b_parents$$); - for ($$jscomp$key$b_b$$ = $$jscomp$iter$4$$.next(); !$$jscomp$key$b_b$$.done; $$jscomp$key$b_b$$ = $$jscomp$iter$4$$.next()) { + var $$jscomp$iter$6$$ = $jscomp.makeIterator($b_parents$$); + for ($$jscomp$key$b_b$$ = $$jscomp$iter$6$$.next(); !$$jscomp$key$b_b$$.done; $$jscomp$key$b_b$$ = $$jscomp$iter$6$$.next()) { if ($$jscomp$key$b_b$$ = $$jscomp$key$b_b$$.value, $$jscomp$key$a_a$$ === $$jscomp$key$b_b$$) { return $$jscomp$key$a_a$$; } @@ -1422,12 +1491,12 @@ window.Silica = {context:window, contextName:"", directives:{}, components:{}, f } return document; }, processQueue:function $window$Silica$processQueue$() { - for (var $$jscomp$loop$32$$ = {}, $i$$ = 0, $len$$ = Silica._queue.length; $i$$ < $len$$; $$jscomp$loop$32$$ = {item:$$jscomp$loop$32$$.item}, $i$$++) { - $$jscomp$loop$32$$.item = Silica._queue[$i$$], Silica.apply(function($$jscomp$loop$32$$) { + for (var $$jscomp$loop$35$$ = {}, $i$$ = 0, $len$$ = Silica._queue.length; $i$$ < $len$$; $$jscomp$loop$35$$ = {item:$$jscomp$loop$35$$.item}, $i$$++) { + $$jscomp$loop$35$$.item = Silica._queue[$i$$], Silica.apply(function($$jscomp$loop$35$$) { return function() { - $$jscomp$loop$32$$.item[0](); + $$jscomp$loop$35$$.item[0](); }; - }($$jscomp$loop$32$$), $$jscomp$loop$32$$.item[1]); + }($$jscomp$loop$35$$), $$jscomp$loop$35$$.item[1]); } Silica._queue = []; }, enqueue:function $window$Silica$enqueue$($func$$, $scope$$) { @@ -1436,11 +1505,12 @@ window.Silica = {context:window, contextName:"", directives:{}, components:{}, f }, updateDOM:function $window$Silica$updateDOM$($element$$, $onlySafe$$) { var $watchers$$ = Silica.watchers, $k$$; for ($k$$ in $watchers$$) { - if (!$onlySafe$$ || "_" !== $k$$[0]) { + if (!($onlySafe$$ && "_" === $k$$[0] || "Href" === $k$$ || "Model" === $k$$)) { var $func$$ = $watchers$$[$k$$]; $func$$.apply($element$$); } } + Silica.observer.applyChanges(); }, flush:function $window$Silica$flush$($element$$, $onlySafe$$, $changed$$, $skipSchedule$$) { $element$$ = void 0 === $element$$ ? document.documentElement : $element$$; $onlySafe$$ = void 0 === $onlySafe$$ ? !1 : $onlySafe$$; @@ -1455,8 +1525,8 @@ window.Silica = {context:window, contextName:"", directives:{}, components:{}, f $element$$ === document && ($element$$ = document.documentElement); Silica.isInFlush = !$skipSchedule$$; if (null === $changed$$ && Silica._isReady) { - for ($i$jscomp$52_key$$ in Silica._watch) { - var $funcs$$ = Silica._watch[$i$jscomp$52_key$$]; + for ($i$jscomp$53_key$$ in Silica._watch) { + var $funcs$$ = Silica._watch[$i$jscomp$53_key$$]; for ($changed$$ = $funcs$$.length - 1; 0 <= $changed$$; --$changed$$) { var $func$$ = $funcs$$[$changed$$]; $func$$[1].apply($func$$[0], [$func$$[2], $func$$[3]]); @@ -1466,12 +1536,12 @@ window.Silica = {context:window, contextName:"", directives:{}, components:{}, f for (var $k$$ in $changed$$) { $funcs$$ = $changed$$[$k$$]; if (!0 !== $funcs$$) { - var $i$jscomp$52_key$$ = $funcs$$.length - 1; + var $i$jscomp$53_key$$ = $funcs$$.length - 1; } else { - $funcs$$ = Silica._watch[$k$$], $i$jscomp$52_key$$ = $funcs$$.length - 1; + $funcs$$ = Silica._watch[$k$$], $i$jscomp$53_key$$ = $funcs$$.length - 1; } - for (; 0 <= $i$jscomp$52_key$$; --$i$jscomp$52_key$$) { - $func$$ = $funcs$$[$i$jscomp$52_key$$], $func$$[1].apply($func$$[0], [$func$$[2], $func$$[3]]); + for (; 0 <= $i$jscomp$53_key$$; --$i$jscomp$53_key$$) { + $func$$ = $funcs$$[$i$jscomp$53_key$$], $func$$[1].apply($func$$[0], [$func$$[2], $func$$[3]]); } } } @@ -1487,7 +1557,7 @@ window.Silica = {context:window, contextName:"", directives:{}, components:{}, f return $func$$.call(), Silica; } window.requestAnimationFrame(function() { - var $k$$, $additional_oldVal$$, $val$$, $_len1_watcher$18$$; + var $k$$, $additional_oldVal$$, $val$$, $_len1_watcher$21$$; Silica.isInApply = !0; try { $func$$.call(); @@ -1495,40 +1565,40 @@ window.Silica = {context:window, contextName:"", directives:{}, components:{}, f return Silica.isInApply = !1, console.error($err$$), Silica; } var $changes$$ = {}; - for ($k$17_v$$ in Silica._watch) { - var $watchers$$ = Silica._watch[$k$17_v$$]; - $changes$$[$k$17_v$$] = []; - if (97 <= $k$17_v$$.charCodeAt(0)) { + for ($k$20_v$$ in Silica._watch) { + var $watchers$$ = Silica._watch[$k$20_v$$]; + $changes$$[$k$20_v$$] = []; + if (97 <= $k$20_v$$.charCodeAt(0)) { var $_j_finalChanges$$ = 0; - for ($_len1_watcher$18$$ = $watchers$$.length; $_j_finalChanges$$ < $_len1_watcher$18$$; $_j_finalChanges$$++) { + for ($_len1_watcher$21$$ = $watchers$$.length; $_j_finalChanges$$ < $_len1_watcher$21$$; $_j_finalChanges$$++) { var $watcher$$ = $watchers$$[$_j_finalChanges$$]; - if ($k$17_v$$.match(/\.\*$/)) { - $changes$$[$k$17_v$$].push($watcher$$); + if ($k$20_v$$.match(/\.\*$/)) { + $changes$$[$k$20_v$$].push($watcher$$); } else { $watcher$$[3] = $additional_oldVal$$ = $watcher$$[2]; - $watcher$$[2] = $val$$ = Silica.getPropByString($watcher$$[0], $k$17_v$$); + $watcher$$[2] = $val$$ = Silica.getPropByString($watcher$$[0], $k$20_v$$); var $_len$jscomp$2_changed$$ = $additional_oldVal$$ !== $val$$; !$_len$jscomp$2_changed$$ && Array.isArray($val$$) && Array.isArray($additional_oldVal$$) && (($_len$jscomp$2_changed$$ = $additional_oldVal$$ && $val$$ ? $additional_oldVal$$.length !== $val$$.length : !0) || ($_len$jscomp$2_changed$$ = $additional_oldVal$$.some(function($e$$, $idx$$) { return $val$$[$idx$$] !== $e$$; }))); - $_len$jscomp$2_changed$$ && $changes$$[$k$17_v$$].push($watcher$$); + $_len$jscomp$2_changed$$ && $changes$$[$k$20_v$$].push($watcher$$); } } } else { - if ($_len1_watcher$18$$ = $watchers$$[0], $_len1_watcher$18$$[3] = $additional_oldVal$$ = $_len1_watcher$18$$[2], $_len1_watcher$18$$[2] = $val$$ = Silica.getPropByString(window, $k$17_v$$), $_len$jscomp$2_changed$$ = $val$$ !== $additional_oldVal$$, !$_len$jscomp$2_changed$$ && Array.isArray($val$$) && Array.isArray($additional_oldVal$$) && (($_len$jscomp$2_changed$$ = $additional_oldVal$$ && $val$$ ? $additional_oldVal$$.length !== $val$$.length : !0) || ($_len$jscomp$2_changed$$ = $additional_oldVal$$.some(function($e$$, + if ($_len1_watcher$21$$ = $watchers$$[0], $_len1_watcher$21$$[3] = $additional_oldVal$$ = $_len1_watcher$21$$[2], $_len1_watcher$21$$[2] = $val$$ = Silica.getPropByString(window, $k$20_v$$), $_len$jscomp$2_changed$$ = $val$$ !== $additional_oldVal$$, !$_len$jscomp$2_changed$$ && Array.isArray($val$$) && Array.isArray($additional_oldVal$$) && (($_len$jscomp$2_changed$$ = $additional_oldVal$$ && $val$$ ? $additional_oldVal$$.length !== $val$$.length : !0) || ($_len$jscomp$2_changed$$ = $additional_oldVal$$.some(function($e$$, $idx$$) { return $val$$[$idx$$] !== $e$$; }))), $_len$jscomp$2_changed$$) { - for ($changes$$[$k$17_v$$].push($_len1_watcher$18$$), $_j_finalChanges$$ = 1, $_len$jscomp$2_changed$$ = $watchers$$.length; $_j_finalChanges$$ < $_len$jscomp$2_changed$$; $_j_finalChanges$$++) { - $additional_oldVal$$ = $watchers$$[$_j_finalChanges$$], $additional_oldVal$$[2] = $_len1_watcher$18$$[2], $additional_oldVal$$[3] = $_len1_watcher$18$$[3], $changes$$[$k$17_v$$].push($additional_oldVal$$); + for ($changes$$[$k$20_v$$].push($_len1_watcher$21$$), $_j_finalChanges$$ = 1, $_len$jscomp$2_changed$$ = $watchers$$.length; $_j_finalChanges$$ < $_len$jscomp$2_changed$$; $_j_finalChanges$$++) { + $additional_oldVal$$ = $watchers$$[$_j_finalChanges$$], $additional_oldVal$$[2] = $_len1_watcher$21$$[2], $additional_oldVal$$[3] = $_len1_watcher$21$$[3], $changes$$[$k$20_v$$].push($additional_oldVal$$); } } } } $_j_finalChanges$$ = {}; for ($k$$ in $changes$$) { - var $k$17_v$$ = $changes$$[$k$$]; - Array.isArray($k$17_v$$) && $k$17_v$$.length && ($_j_finalChanges$$[$k$$] = $k$17_v$$); + var $k$20_v$$ = $changes$$[$k$$]; + Array.isArray($k$20_v$$) && $k$20_v$$.length && ($_j_finalChanges$$[$k$$] = $k$20_v$$); } Silica.flush($element$$, !1, $_j_finalChanges$$); Silica.isInApply = !1; @@ -1541,18 +1611,18 @@ window.Silica = {context:window, contextName:"", directives:{}, components:{}, f }); }); return Silica; -}, getPropByString:function $window$Silica$getPropByString$($obj$$, $context$jscomp$8_descriptor$$, $params$$) { - if (!$context$jscomp$8_descriptor$$ || 0 === $context$jscomp$8_descriptor$$.length) { +}, getPropByString:function $window$Silica$getPropByString$($obj$$, $context$jscomp$9_descriptor$$, $params$$) { + if (!$context$jscomp$9_descriptor$$ || 0 === $context$jscomp$9_descriptor$$.length) { return $obj$$; } void 0 === $obj$$.__property_map && ($obj$$.__property_map = {}); - if ($obj$$.__property_map.hasOwnProperty($context$jscomp$8_descriptor$$)) { - var $propertyPath$$ = $obj$$.__property_map[$context$jscomp$8_descriptor$$]; + if ($obj$$.__property_map.hasOwnProperty($context$jscomp$9_descriptor$$)) { + var $propertyPath$$ = $obj$$.__property_map[$context$jscomp$9_descriptor$$]; } else { - $propertyPath$$ = $context$jscomp$8_descriptor$$.split("."), $obj$$.__property_map[$context$jscomp$8_descriptor$$] = $propertyPath$$; + $propertyPath$$ = $context$jscomp$9_descriptor$$.split("."), $obj$$.__property_map[$context$jscomp$9_descriptor$$] = $propertyPath$$; } - $context$jscomp$8_descriptor$$ = Object.getOwnPropertyDescriptor($obj$$, $propertyPath$$[0]); - if (!$context$jscomp$8_descriptor$$ || !$context$jscomp$8_descriptor$$.get) { + $context$jscomp$9_descriptor$$ = Object.getOwnPropertyDescriptor($obj$$, $propertyPath$$[0]); + if (!$context$jscomp$9_descriptor$$ || !$context$jscomp$9_descriptor$$.get) { for (; "undefined" === typeof $obj$$[$propertyPath$$[0]];) { if ($obj$$.$ctrl) { $obj$$ = $obj$$.$ctrl; @@ -1562,14 +1632,14 @@ window.Silica = {context:window, contextName:"", directives:{}, components:{}, f } } for (var $pathLength$$ = $propertyPath$$.length, $i$$ = 0; $i$$ < $pathLength$$; ++$i$$) { - if ($context$jscomp$8_descriptor$$ = $obj$$, $obj$$ = $obj$$[$propertyPath$$[$i$$]], "function" === typeof $obj$$ && ($obj$$ = $obj$$.apply($context$jscomp$8_descriptor$$, $params$$)), null === $obj$$ || void 0 === $obj$$) { + if ($context$jscomp$9_descriptor$$ = $obj$$, $obj$$ = $obj$$[$propertyPath$$[$i$$]], "function" === typeof $obj$$ && ($obj$$ = $obj$$.apply($context$jscomp$9_descriptor$$, $params$$)), null === $obj$$ || void 0 === $obj$$) { return null; } } return $obj$$; -}, getValue:function $window$Silica$getValue$($param$jscomp$4_raw$$, $propString$$, $context$jscomp$9_ctx$$, $params$$) { +}, getValue:function $window$Silica$getValue$($param$jscomp$4_raw$$, $propString$$, $context$jscomp$10_ctx$$, $params$$) { $params$$ = void 0 === $params$$ ? [] : $params$$; - $context$jscomp$9_ctx$$ = (void 0 === $context$jscomp$9_ctx$$ ? null : $context$jscomp$9_ctx$$) || (90 >= $propString$$.charCodeAt(0) ? window : Silica.getContext($param$jscomp$4_raw$$)); + $context$jscomp$10_ctx$$ = (void 0 === $context$jscomp$10_ctx$$ ? null : $context$jscomp$10_ctx$$) || (90 >= $propString$$.charCodeAt(0) ? window : Silica.getContext($param$jscomp$4_raw$$)); if (8 !== $param$jscomp$4_raw$$.nodeType) { $param$jscomp$4_raw$$ = $param$jscomp$4_raw$$.dataset.parameter; } else { @@ -1578,7 +1648,7 @@ window.Silica = {context:window, contextName:"", directives:{}, components:{}, f $param$jscomp$4_raw$$ = module$exports$hax$safari.getDatasetProperty($temp$$.firstElementChild || $temp$$, "parameter"); } $param$jscomp$4_raw$$ && $params$$.push($param$jscomp$4_raw$$); - return Silica.getPropByString($context$jscomp$9_ctx$$, $propString$$, $params$$); + return Silica.getPropByString($context$jscomp$10_ctx$$, $propString$$, $params$$); }, isChildOf:function $window$Silica$isChildOf$($child$$, $parent$$) { for (; $child$$;) { if ($child$$.parentElement === $parent$$) { @@ -1653,7 +1723,7 @@ window.Silica = {context:window, contextName:"", directives:{}, components:{}, f }, addDirective:function $window$Silica$addDirective$($key$$, $obj$$) { Silica.directives[$key$$] = $obj$$; }, getContext:function $window$Silica$getContext$($raw$jscomp$5_v$$) { - for (var $constructorName$jscomp$1_ctrl$$, $k$$, $_ref$jscomp$7_constructor$$, $model$jscomp$4_stored$jscomp$1_watchers$$, $needsModel_pairIdx$$;;) { + for (var $constructorName$jscomp$1_ctrl$$, $k$$, $_ref$jscomp$7_constructor$$, $model$jscomp$3_stored$jscomp$1_watchers$$, $needsModel_pairIdx$$;;) { if ($raw$jscomp$5_v$$._rt_ctx) { return $raw$jscomp$5_v$$._rt_ctx; } @@ -1662,21 +1732,21 @@ window.Silica = {context:window, contextName:"", directives:{}, components:{}, f } if (9 !== $raw$jscomp$5_v$$.nodeType && 3 !== $raw$jscomp$5_v$$.nodeType && 8 !== $raw$jscomp$5_v$$.nodeType && module$exports$hax$safari.hasDatasetProperty($raw$jscomp$5_v$$, "controller")) { $constructorName$jscomp$1_ctrl$$ = module$exports$hax$safari.getDatasetProperty($raw$jscomp$5_v$$, "controller"); - "undefined" !== typeof($_ref$jscomp$7_constructor$$ = $constructorName$jscomp$1_ctrl$$.match(/((?:\w|\.)+)(?:\(([\w\.]+)\))*/))[2] && ($needsModel_pairIdx$$ = !0, $model$jscomp$4_stored$jscomp$1_watchers$$ = Silica.getValue($raw$jscomp$5_v$$.parentNode, $_ref$jscomp$7_constructor$$[2])); + "undefined" !== typeof($_ref$jscomp$7_constructor$$ = $constructorName$jscomp$1_ctrl$$.match(/((?:\w|\.)+)(?:\(([\w\.]+)\))*/))[2] && ($needsModel_pairIdx$$ = !0, $model$jscomp$3_stored$jscomp$1_watchers$$ = Silica.getValue($raw$jscomp$5_v$$.parentNode, $_ref$jscomp$7_constructor$$[2])); $constructorName$jscomp$1_ctrl$$ = $_ref$jscomp$7_constructor$$[1]; $_ref$jscomp$7_constructor$$ = eval($constructorName$jscomp$1_ctrl$$); if (!$_ref$jscomp$7_constructor$$) { return console.error("Unknown Controller: " + $raw$jscomp$5_v$$.dataset.controller); } - $constructorName$jscomp$1_ctrl$$ = "undefined" !== typeof $model$jscomp$4_stored$jscomp$1_watchers$$ ? new $_ref$jscomp$7_constructor$$($raw$jscomp$5_v$$, $model$jscomp$4_stored$jscomp$1_watchers$$) : new $_ref$jscomp$7_constructor$$($raw$jscomp$5_v$$); - if (!$needsModel_pairIdx$$ ^ null != $model$jscomp$4_stored$jscomp$1_watchers$$) { - $model$jscomp$4_stored$jscomp$1_watchers$$ = $_ref$jscomp$7_constructor$$.watchers; - if ($raw$jscomp$5_v$$._rt_ctrl && $model$jscomp$4_stored$jscomp$1_watchers$$ && 0 < Object.keys($model$jscomp$4_stored$jscomp$1_watchers$$).length) { - for ($k$$ in $model$jscomp$4_stored$jscomp$1_watchers$$) { - if ($model$jscomp$4_stored$jscomp$1_watchers$$ = Silica._watch[$k$$]) { - for ($needsModel_pairIdx$$ = $model$jscomp$4_stored$jscomp$1_watchers$$.length - 1; 0 <= $needsModel_pairIdx$$; --$needsModel_pairIdx$$) { - if ($raw$jscomp$5_v$$._rt_ctrl == $model$jscomp$4_stored$jscomp$1_watchers$$[$needsModel_pairIdx$$][0]) { - $model$jscomp$4_stored$jscomp$1_watchers$$.splice($needsModel_pairIdx$$, 1); + $constructorName$jscomp$1_ctrl$$ = "undefined" !== typeof $model$jscomp$3_stored$jscomp$1_watchers$$ ? new $_ref$jscomp$7_constructor$$($raw$jscomp$5_v$$, $model$jscomp$3_stored$jscomp$1_watchers$$) : new $_ref$jscomp$7_constructor$$($raw$jscomp$5_v$$); + if (!$needsModel_pairIdx$$ ^ null != $model$jscomp$3_stored$jscomp$1_watchers$$) { + $model$jscomp$3_stored$jscomp$1_watchers$$ = $_ref$jscomp$7_constructor$$.watchers; + if ($raw$jscomp$5_v$$._rt_ctrl && $model$jscomp$3_stored$jscomp$1_watchers$$ && 0 < Object.keys($model$jscomp$3_stored$jscomp$1_watchers$$).length) { + for ($k$$ in $model$jscomp$3_stored$jscomp$1_watchers$$) { + if ($model$jscomp$3_stored$jscomp$1_watchers$$ = Silica._watch[$k$$]) { + for ($needsModel_pairIdx$$ = $model$jscomp$3_stored$jscomp$1_watchers$$.length - 1; 0 <= $needsModel_pairIdx$$; --$needsModel_pairIdx$$) { + if ($raw$jscomp$5_v$$._rt_ctrl == $model$jscomp$3_stored$jscomp$1_watchers$$[$needsModel_pairIdx$$][0]) { + $model$jscomp$3_stored$jscomp$1_watchers$$.splice($needsModel_pairIdx$$, 1); break; } } @@ -1711,15 +1781,15 @@ window.Silica = {context:window, contextName:"", directives:{}, components:{}, f Silica.goTo($path$$); return !$defaultPrevented$$; } -}, _capture_links:function $window$Silica$_capture_links$($element$jscomp$26_nodes$$) { - $element$jscomp$26_nodes$$ = Silica.queryOfType($element$jscomp$26_nodes$$, "a", "[href]", "[data-href]"); - for (var $node$$, $i$$ = $element$jscomp$26_nodes$$.length - 1; 0 <= $i$$; --$i$$) { - $node$$ = $element$jscomp$26_nodes$$[$i$$], $node$$.hostname === window.location.hostname && "_blank" !== $node$$.target && ($node$$.removeEventListener("click", Silica._handle_href, !0), $node$$.addEventListener("click", Silica._handle_href, !0)); +}, _capture_links:function $window$Silica$_capture_links$($element$jscomp$27_nodes$$) { + $element$jscomp$27_nodes$$ = Silica.queryOfType($element$jscomp$27_nodes$$, "a", "[href]", "[data-href]"); + for (var $node$$, $i$$ = $element$jscomp$27_nodes$$.length - 1; 0 <= $i$$; --$i$$) { + $node$$ = $element$jscomp$27_nodes$$[$i$$], $node$$.hostname === window.location.hostname && "_blank" !== $node$$.target && ($node$$.removeEventListener("click", Silica._handle_href, !0), $node$$.addEventListener("click", Silica._handle_href, !0)); } -}, _show:function $window$Silica$_show$($element$jscomp$27_isVisible$$, $expr$$, $negate$$) { - $element$jscomp$27_isVisible$$ = Silica.getValue($element$jscomp$27_isVisible$$, $expr$$, null, [$element$jscomp$27_isVisible$$]); - $negate$$ && ($element$jscomp$27_isVisible$$ = !$element$jscomp$27_isVisible$$); - return $element$jscomp$27_isVisible$$; +}, _show:function $window$Silica$_show$($element$jscomp$28_isVisible$$, $expr$$, $negate$$) { + $element$jscomp$28_isVisible$$ = Silica.getValue($element$jscomp$28_isVisible$$, $expr$$, null, [$element$jscomp$28_isVisible$$]); + $negate$$ && ($element$jscomp$28_isVisible$$ = !$element$jscomp$28_isVisible$$); + return $element$jscomp$28_isVisible$$; }, _call:function $window$Silica$_call$($element$$, $evnt$$, $act$$) { if (Silica.isInDOM($element$$)) { $element$$.dataset.nopreventdefault || $evnt$$.preventDefault(); @@ -1760,15 +1830,26 @@ window.Silica = {context:window, contextName:"", directives:{}, components:{}, f return "undefined" !== typeof $ctx$$[$actionName_idx$$] ? $ctx$$[$actionName_idx$$].apply($ctx$$, [$element$$].concat($jscomp.arrayFromIterable($models$$), [$parameter$$, $evnt$$])) : null != Silica.context[$actionName_idx$$] ? Silica.context[$actionName_idx$$].apply(Silica.ctx, [$element$$].concat($jscomp.arrayFromIterable($models$$), [$parameter$$, $evnt$$])) : console.error("Unknown action '" + $actionName_idx$$ + "' for " + $element$$.outerHTML + " in " + $ctx$$.constructor.name); }, $scope$$); } -}, _model_get_val:function $window$Silica$_model_get_val$($raw$jscomp$6_value$$) { +}, getFilteredValue:function $window$Silica$getFilteredValue$($raw$jscomp$6_value$$, $propString$$, $context$$, $params$$) { + $context$$ = void 0 === $context$$ ? null : $context$$; + $params$$ = void 0 === $params$$ ? [] : $params$$; var $filter$$, $filterKey$$; if (($filterKey$$ = ($filter$$ = ($filter$$ = $raw$jscomp$6_value$$.attributes["data-filter"]) ? $filter$$.value.split(/:(.+)/) : null) ? $filter$$[0] : null) && !Silica.filters[$filterKey$$]) { throw Error("Unknown filter: '" + $filterKey$$ + "' for element: " + $raw$jscomp$6_value$$.outerHTML); } var $filterOptions$$ = $filter$$ && 1 < $filter$$.length ? eval($filter$$[1]) : null; $filter$$ = $filterKey$$ ? Silica.filters[$filterKey$$] : null; - $raw$jscomp$6_value$$ = Silica.getValue($raw$jscomp$6_value$$, $raw$jscomp$6_value$$.dataset.model); + $raw$jscomp$6_value$$ = Silica.getValue($raw$jscomp$6_value$$, $propString$$, $context$$, $params$$); return $filter$$ && null != $raw$jscomp$6_value$$ ? $filter$$($raw$jscomp$6_value$$, $filterOptions$$) : $raw$jscomp$6_value$$; +}, _model_get_val:function $window$Silica$_model_get_val$($raw$jscomp$7_value$$) { + var $filter$$, $filterKey$$; + if (($filterKey$$ = ($filter$$ = ($filter$$ = $raw$jscomp$7_value$$.attributes["data-filter"]) ? $filter$$.value.split(/:(.+)/) : null) ? $filter$$[0] : null) && !Silica.filters[$filterKey$$]) { + throw Error("Unknown filter: '" + $filterKey$$ + "' for element: " + $raw$jscomp$7_value$$.outerHTML); + } + var $filterOptions$$ = $filter$$ && 1 < $filter$$.length ? eval($filter$$[1]) : null; + $filter$$ = $filterKey$$ ? Silica.filters[$filterKey$$] : null; + $raw$jscomp$7_value$$ = Silica.getValue($raw$jscomp$7_value$$, $raw$jscomp$7_value$$.dataset.model); + return $filter$$ && null != $raw$jscomp$7_value$$ ? $filter$$($raw$jscomp$7_value$$, $filterOptions$$) : $raw$jscomp$7_value$$; }, findComments:function $window$Silica$findComments$($raw$$) { for (var $arr$$ = [], $i$$ = $raw$$.childNodes.length - 1; 0 <= $i$$; --$i$$) { var $node$$ = $raw$$.childNodes[$i$$]; @@ -1794,12 +1875,12 @@ window.Silica = {context:window, contextName:"", directives:{}, components:{}, f $raw$$ == document && ($raw$$ = document.documentElement); var $attribute$jscomp$1_nodes$$ = $raw$$.querySelectorAll($$jscomp$restParams$$.join(",")); $$jscomp$restIndex$$ = []; - for (var $i$20_i$$ = $attribute$jscomp$1_nodes$$.length - 1; 0 <= $i$20_i$$; --$i$20_i$$) { - var $node$$ = $attribute$jscomp$1_nodes$$.item($i$20_i$$); + for (var $i$23_i$$ = $attribute$jscomp$1_nodes$$.length - 1; 0 <= $i$23_i$$; --$i$23_i$$) { + var $node$$ = $attribute$jscomp$1_nodes$$.item($i$23_i$$); Silica.isInRepeat($raw$$, $node$$) || $$jscomp$restIndex$$.push($node$$); } - for ($i$20_i$$ = $$jscomp$restParams$$.length - 1; 0 <= $i$20_i$$; --$i$20_i$$) { - if ($attribute$jscomp$1_nodes$$ = $$jscomp$restParams$$[$i$20_i$$], $raw$$.hasAttribute($attribute$jscomp$1_nodes$$.substring(1, $attribute$jscomp$1_nodes$$.length - 1))) { + for ($i$23_i$$ = $$jscomp$restParams$$.length - 1; 0 <= $i$23_i$$; --$i$23_i$$) { + if ($attribute$jscomp$1_nodes$$ = $$jscomp$restParams$$[$i$23_i$$], $raw$$.hasAttribute($attribute$jscomp$1_nodes$$.substring(1, $attribute$jscomp$1_nodes$$.length - 1))) { $$jscomp$restIndex$$.push($raw$$); break; } @@ -1844,8 +1925,8 @@ window.Silica = {context:window, contextName:"", directives:{}, components:{}, f var $attribute$jscomp$2_nodes$$ = $raw$$.getElementsByTagName($type$$); $$jscomp$restIndex$jscomp$6_filtered$$ = []; if (0 < $$jscomp$restParams$$.length) { - for (var $i$24_i$$ = $attribute$jscomp$2_nodes$$.length - 1; 0 <= $i$24_i$$; --$i$24_i$$) { - for (var $node$$ = $attribute$jscomp$2_nodes$$.item($i$24_i$$), $j$$ = $$jscomp$restParams$$.length - 1; 0 <= $j$$; --$j$$) { + for (var $i$27_i$$ = $attribute$jscomp$2_nodes$$.length - 1; 0 <= $i$27_i$$; --$i$27_i$$) { + for (var $node$$ = $attribute$jscomp$2_nodes$$.item($i$27_i$$), $j$$ = $$jscomp$restParams$$.length - 1; 0 <= $j$$; --$j$$) { if ($node$$.hasAttribute($$jscomp$restParams$$[$j$$].replace(/\[|\]/g, ""))) { $$jscomp$restIndex$jscomp$6_filtered$$.push($node$$); break; @@ -1853,8 +1934,8 @@ window.Silica = {context:window, contextName:"", directives:{}, components:{}, f } } if ($raw$$.nodeName === $type$$.toUpperCase()) { - for ($i$24_i$$ = $$jscomp$restParams$$.length - 1; 0 <= $i$24_i$$; --$i$24_i$$) { - if ($attribute$jscomp$2_nodes$$ = $$jscomp$restParams$$[$i$24_i$$], $raw$$.hasAttribute($attribute$jscomp$2_nodes$$.substring(1, $attribute$jscomp$2_nodes$$.length - 1))) { + for ($i$27_i$$ = $$jscomp$restParams$$.length - 1; 0 <= $i$27_i$$; --$i$27_i$$) { + if ($attribute$jscomp$2_nodes$$ = $$jscomp$restParams$$[$i$27_i$$], $raw$$.hasAttribute($attribute$jscomp$2_nodes$$.substring(1, $attribute$jscomp$2_nodes$$.length - 1))) { $$jscomp$restIndex$jscomp$6_filtered$$.push($raw$$); break; } @@ -1866,19 +1947,19 @@ window.Silica = {context:window, contextName:"", directives:{}, components:{}, f return $$jscomp$restIndex$jscomp$6_filtered$$; }, removeFromDOM:function $window$Silica$removeFromDOM$($e$$) { for (var $removeWatchers$$ = function $$removeWatchers$$$($nodes$$) { - for (var $$jscomp$loop$33$$ = {}, $i$25$$ = $nodes$$.length - 1; 0 <= $i$25$$; $$jscomp$loop$33$$ = {ctrl:$$jscomp$loop$33$$.ctrl}, --$i$25$$) { - var $list$jscomp$5_node$$ = $nodes$$[$i$25$$]; + for (var $$jscomp$loop$36$$ = {}, $i$28$$ = $nodes$$.length - 1; 0 <= $i$28$$; $$jscomp$loop$36$$ = {ctrl:$$jscomp$loop$36$$.ctrl}, --$i$28$$) { + var $list$jscomp$5_node$$ = $nodes$$[$i$28$$]; if ($list$jscomp$5_node$$._rt_ctrl) { - $$jscomp$loop$33$$.ctrl = $list$jscomp$5_node$$._rt_ctrl; - for (var $k$$ in $$jscomp$loop$33$$.ctrl.constructor.watchers) { - $list$jscomp$5_node$$ = Silica._watch[$k$$], Silica._watch[$k$$] = null != $list$jscomp$5_node$$ ? $list$jscomp$5_node$$.filter(function($$jscomp$loop$33$$) { + $$jscomp$loop$36$$.ctrl = $list$jscomp$5_node$$._rt_ctrl; + for (var $k$$ in $$jscomp$loop$36$$.ctrl.constructor.watchers) { + $list$jscomp$5_node$$ = Silica._watch[$k$$], Silica._watch[$k$$] = null != $list$jscomp$5_node$$ ? $list$jscomp$5_node$$.filter(function($$jscomp$loop$36$$) { return function($obj$$) { - return $obj$$[0] !== $$jscomp$loop$33$$.ctrl; + return $obj$$[0] !== $$jscomp$loop$36$$.ctrl; }; - }($$jscomp$loop$33$$)) : [], 0 === Silica._watch[$k$$].length && delete Silica._watch[$k$$]; + }($$jscomp$loop$36$$)) : [], 0 === Silica._watch[$k$$].length && delete Silica._watch[$k$$]; } - if ("function" === typeof $$jscomp$loop$33$$.ctrl.onDestroy) { - $$jscomp$loop$33$$.ctrl.onDestroy(); + if ("function" === typeof $$jscomp$loop$36$$.ctrl.onDestroy) { + $$jscomp$loop$36$$.ctrl.onDestroy(); } } } @@ -1903,6 +1984,7 @@ window.Silica.flush = Silica.flush; window.Silica.findCommonAncestor = Silica.findCommonAncestor; window.Silica.getPropByString = Silica.getPropByString; window.Silica.getValue = Silica.getValue; +window.Silica.getFilteredValue = Silica.getFilteredValue; window.Silica.goTo = Silica.goTo; window.Silica.query = Silica.query; window.Silica.queryOfType = Silica.queryOfType; @@ -1920,5 +2002,6 @@ window.Silica.sub = module$exports$silica$pubsub.Sub; window.Silica.unsub = module$exports$silica$pubsub.Unsub; window.Silica.isInDOM = Silica.isInDOM; window.Silica.hasher = Silica.hasher; +window.Silica.observer = Silica.observer; }.call(window); \ No newline at end of file diff --git a/dist/silica.js.gz b/dist/silica.js.gz index 6719c32c64ed5eff43d8c09cc7693e18b6697d11..09d70d48406d3915f66996fec39c5eae3053c4b1 100644 GIT binary patch literal 24472 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 diff --git a/dist/silica.min.js b/dist/silica.min.js index 58fec38..f2a43a3 100644 --- a/dist/silica.min.js +++ b/dist/silica.min.js @@ -10,79 +10,79 @@ !function(t){"use strict";function r(t){if(t)c[0]=c[16]=c[1]=c[2]=c[3]=c[4]=c[5]=c[6]=c[7]=c[8]=c[9]=c[10]=c[11]=c[12]=c[13]=c[14]=c[15]=0,this.blocks=c,this.buffer8=i;else if(n){var r=new ArrayBuffer(68);this.buffer8=new Uint8Array(r),this.blocks=new Uint32Array(r)}else this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.h0=this.h1=this.h2=this.h3=this.start=this.bytes=0,this.finalized=this.hashed=!1,this.first=!0}var e="object"==typeof process&&process.versions&&process.versions.node;e&&(t=global);var i,h=!t.JS_MD5_TEST&&"object"==typeof module&&module.exports,s="function"==typeof define&&define.amd,n=!t.JS_MD5_TEST&&"undefined"!=typeof ArrayBuffer,f="0123456789abcdef".split(""),a=[128,32768,8388608,-2147483648],o=[0,8,16,24],u=["hex","array","digest","buffer","arrayBuffer"],c=[];if(n){var p=new ArrayBuffer(68);i=new Uint8Array(p),c=new Uint32Array(p)}var y=function(t){return function(e){return new r(!0).update(e)[t]()}},d=function(){var t=y("hex");e&&(t=l(t)),t.create=function(){return new r},t.update=function(r){return t.create().update(r)};for(var i=0;is;){if(this.hashed&&(this.hashed=!1,a[0]=a[16],a[16]=a[1]=a[2]=a[3]=a[4]=a[5]=a[6]=a[7]=a[8]=a[9]=a[10]=a[11]=a[12]=a[13]=a[14]=a[15]=0),e)if(n)for(h=this.start;f>s&&64>h;++s)u[h++]=r[s];else for(h=this.start;f>s&&64>h;++s)a[h>>2]|=r[s]<s&&64>h;++s)i=r.charCodeAt(s),128>i?u[h++]=i:2048>i?(u[h++]=192|i>>6,u[h++]=128|63&i):55296>i||i>=57344?(u[h++]=224|i>>12,u[h++]=128|i>>6&63,u[h++]=128|63&i):(i=65536+((1023&i)<<10|1023&r.charCodeAt(++s)),u[h++]=240|i>>18,u[h++]=128|i>>12&63,u[h++]=128|i>>6&63,u[h++]=128|63&i);else for(h=this.start;f>s&&64>h;++s)i=r.charCodeAt(s),128>i?a[h>>2]|=i<i?(a[h>>2]|=(192|i>>6)<>2]|=(128|63&i)<i||i>=57344?(a[h>>2]|=(224|i>>12)<>2]|=(128|i>>6&63)<>2]|=(128|63&i)<>2]|=(240|i>>18)<>2]|=(128|i>>12&63)<>2]|=(128|i>>6&63)<>2]|=(128|63&i)<=64?(this.start=h-64,this.hash(),this.hashed=!0):this.start=h}return this}},r.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var t=this.blocks,r=this.lastByteIndex;t[r>>2]|=a[3&r],r>=56&&(this.hashed||this.hash(),t[0]=t[16],t[16]=t[1]=t[2]=t[3]=t[4]=t[5]=t[6]=t[7]=t[8]=t[9]=t[10]=t[11]=t[12]=t[13]=t[14]=t[15]=0),t[14]=this.bytes<<3,this.hash()}},r.prototype.hash=function(){var t,r,e,i,h,s,n=this.blocks;this.first?(t=n[0]-680876937,t=(t<<7|t>>>25)-271733879<<0,i=(-1732584194^2004318071&t)+n[1]-117830708,i=(i<<12|i>>>20)+t<<0,e=(-271733879^i&(-271733879^t))+n[2]-1126478375,e=(e<<17|e>>>15)+i<<0,r=(t^e&(i^t))+n[3]-1316259209,r=(r<<22|r>>>10)+e<<0):(t=this.h0,r=this.h1,e=this.h2,i=this.h3,t+=(i^r&(e^i))+n[0]-680876936,t=(t<<7|t>>>25)+r<<0,i+=(e^t&(r^e))+n[1]-389564586,i=(i<<12|i>>>20)+t<<0,e+=(r^i&(t^r))+n[2]+606105819,e=(e<<17|e>>>15)+i<<0,r+=(t^e&(i^t))+n[3]-1044525330,r=(r<<22|r>>>10)+e<<0),t+=(i^r&(e^i))+n[4]-176418897,t=(t<<7|t>>>25)+r<<0,i+=(e^t&(r^e))+n[5]+1200080426,i=(i<<12|i>>>20)+t<<0,e+=(r^i&(t^r))+n[6]-1473231341,e=(e<<17|e>>>15)+i<<0,r+=(t^e&(i^t))+n[7]-45705983,r=(r<<22|r>>>10)+e<<0,t+=(i^r&(e^i))+n[8]+1770035416,t=(t<<7|t>>>25)+r<<0,i+=(e^t&(r^e))+n[9]-1958414417,i=(i<<12|i>>>20)+t<<0,e+=(r^i&(t^r))+n[10]-42063,e=(e<<17|e>>>15)+i<<0,r+=(t^e&(i^t))+n[11]-1990404162,r=(r<<22|r>>>10)+e<<0,t+=(i^r&(e^i))+n[12]+1804603682,t=(t<<7|t>>>25)+r<<0,i+=(e^t&(r^e))+n[13]-40341101,i=(i<<12|i>>>20)+t<<0,e+=(r^i&(t^r))+n[14]-1502002290,e=(e<<17|e>>>15)+i<<0,r+=(t^e&(i^t))+n[15]+1236535329,r=(r<<22|r>>>10)+e<<0,t+=(e^i&(r^e))+n[1]-165796510,t=(t<<5|t>>>27)+r<<0,i+=(r^e&(t^r))+n[6]-1069501632,i=(i<<9|i>>>23)+t<<0,e+=(t^r&(i^t))+n[11]+643717713,e=(e<<14|e>>>18)+i<<0,r+=(i^t&(e^i))+n[0]-373897302,r=(r<<20|r>>>12)+e<<0,t+=(e^i&(r^e))+n[5]-701558691,t=(t<<5|t>>>27)+r<<0,i+=(r^e&(t^r))+n[10]+38016083,i=(i<<9|i>>>23)+t<<0,e+=(t^r&(i^t))+n[15]-660478335,e=(e<<14|e>>>18)+i<<0,r+=(i^t&(e^i))+n[4]-405537848,r=(r<<20|r>>>12)+e<<0,t+=(e^i&(r^e))+n[9]+568446438,t=(t<<5|t>>>27)+r<<0,i+=(r^e&(t^r))+n[14]-1019803690,i=(i<<9|i>>>23)+t<<0,e+=(t^r&(i^t))+n[3]-187363961,e=(e<<14|e>>>18)+i<<0,r+=(i^t&(e^i))+n[8]+1163531501,r=(r<<20|r>>>12)+e<<0,t+=(e^i&(r^e))+n[13]-1444681467,t=(t<<5|t>>>27)+r<<0,i+=(r^e&(t^r))+n[2]-51403784,i=(i<<9|i>>>23)+t<<0,e+=(t^r&(i^t))+n[7]+1735328473,e=(e<<14|e>>>18)+i<<0,r+=(i^t&(e^i))+n[12]-1926607734,r=(r<<20|r>>>12)+e<<0,h=r^e,t+=(h^i)+n[5]-378558,t=(t<<4|t>>>28)+r<<0,i+=(h^t)+n[8]-2022574463,i=(i<<11|i>>>21)+t<<0,s=i^t,e+=(s^r)+n[11]+1839030562,e=(e<<16|e>>>16)+i<<0,r+=(s^e)+n[14]-35309556,r=(r<<23|r>>>9)+e<<0,h=r^e,t+=(h^i)+n[1]-1530992060,t=(t<<4|t>>>28)+r<<0,i+=(h^t)+n[4]+1272893353,i=(i<<11|i>>>21)+t<<0,s=i^t,e+=(s^r)+n[7]-155497632,e=(e<<16|e>>>16)+i<<0,r+=(s^e)+n[10]-1094730640,r=(r<<23|r>>>9)+e<<0,h=r^e,t+=(h^i)+n[13]+681279174,t=(t<<4|t>>>28)+r<<0,i+=(h^t)+n[0]-358537222,i=(i<<11|i>>>21)+t<<0,s=i^t,e+=(s^r)+n[3]-722521979,e=(e<<16|e>>>16)+i<<0,r+=(s^e)+n[6]+76029189,r=(r<<23|r>>>9)+e<<0,h=r^e,t+=(h^i)+n[9]-640364487,t=(t<<4|t>>>28)+r<<0,i+=(h^t)+n[12]-421815835,i=(i<<11|i>>>21)+t<<0,s=i^t,e+=(s^r)+n[15]+530742520,e=(e<<16|e>>>16)+i<<0,r+=(s^e)+n[2]-995338651,r=(r<<23|r>>>9)+e<<0,t+=(e^(r|~i))+n[0]-198630844,t=(t<<6|t>>>26)+r<<0,i+=(r^(t|~e))+n[7]+1126891415,i=(i<<10|i>>>22)+t<<0,e+=(t^(i|~r))+n[14]-1416354905,e=(e<<15|e>>>17)+i<<0,r+=(i^(e|~t))+n[5]-57434055,r=(r<<21|r>>>11)+e<<0,t+=(e^(r|~i))+n[12]+1700485571,t=(t<<6|t>>>26)+r<<0,i+=(r^(t|~e))+n[3]-1894986606,i=(i<<10|i>>>22)+t<<0,e+=(t^(i|~r))+n[10]-1051523,e=(e<<15|e>>>17)+i<<0,r+=(i^(e|~t))+n[1]-2054922799,r=(r<<21|r>>>11)+e<<0,t+=(e^(r|~i))+n[8]+1873313359,t=(t<<6|t>>>26)+r<<0,i+=(r^(t|~e))+n[15]-30611744,i=(i<<10|i>>>22)+t<<0,e+=(t^(i|~r))+n[6]-1560198380,e=(e<<15|e>>>17)+i<<0,r+=(i^(e|~t))+n[13]+1309151649,r=(r<<21|r>>>11)+e<<0,t+=(e^(r|~i))+n[4]-145523070,t=(t<<6|t>>>26)+r<<0,i+=(r^(t|~e))+n[11]-1120210379,i=(i<<10|i>>>22)+t<<0,e+=(t^(i|~r))+n[2]+718787259,e=(e<<15|e>>>17)+i<<0,r+=(i^(e|~t))+n[9]-343485551,r=(r<<21|r>>>11)+e<<0,this.first?(this.h0=t+1732584193<<0,this.h1=r-271733879<<0,this.h2=e-1732584194<<0,this.h3=i+271733878<<0,this.first=!1):(this.h0=this.h0+t<<0,this.h1=this.h1+r<<0,this.h2=this.h2+e<<0,this.h3=this.h3+i<<0)},r.prototype.hex=function(){this.finalize();var t=this.h0,r=this.h1,e=this.h2,i=this.h3;return f[t>>4&15]+f[15&t]+f[t>>12&15]+f[t>>8&15]+f[t>>20&15]+f[t>>16&15]+f[t>>28&15]+f[t>>24&15]+f[r>>4&15]+f[15&r]+f[r>>12&15]+f[r>>8&15]+f[r>>20&15]+f[r>>16&15]+f[r>>28&15]+f[r>>24&15]+f[e>>4&15]+f[15&e]+f[e>>12&15]+f[e>>8&15]+f[e>>20&15]+f[e>>16&15]+f[e>>28&15]+f[e>>24&15]+f[i>>4&15]+f[15&i]+f[i>>12&15]+f[i>>8&15]+f[i>>20&15]+f[i>>16&15]+f[i>>28&15]+f[i>>24&15]},r.prototype.toString=r.prototype.hex,r.prototype.digest=function(){this.finalize();var t=this.h0,r=this.h1,e=this.h2,i=this.h3;return[255&t,t>>8&255,t>>16&255,t>>24&255,255&r,r>>8&255,r>>16&255,r>>24&255,255&e,e>>8&255,e>>16&255,e>>24&255,255&i,i>>8&255,i>>16&255,i>>24&255]},r.prototype.array=r.prototype.digest,r.prototype.arrayBuffer=function(){this.finalize();var t=new ArrayBuffer(16),r=new Uint32Array(t);return r[0]=this.h0,r[1]=this.h1,r[2]=this.h2,r[3]=this.h3,t},r.prototype.buffer=r.prototype.arrayBuffer;var v=d();(t.md5=v,s&&define(function(){return v}))}(this); !function(){ "use strict"; -var q="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},r="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global&&null!=global?global:this;function t(){t=function(){};r.Symbol||(r.Symbol=aa)}var aa=function(){var a=0;return function(b){return"jscomp_symbol_"+(b||"")+a++}}(); -function u(){t();var a=r.Symbol.iterator;a||(a=r.Symbol.iterator=r.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&q(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return x(this)}});u=function(){}}function x(a){var b=0;return y(function(){return b=arguments.length)return a[c];var b;a:{for(b=a;b;){var f=Reflect.getOwnPropertyDescriptor(b,c);if(f){b=f;break a}b=Reflect.getPrototypeOf(b)}b=void 0}if(b)return b.get?b.get.call(d):b.value}});F("Object.getOwnPropertySymbols",function(a){return a?a:function(){return[]}}); -F("Reflect.ownKeys",function(a){return a?a:function(a){var b=[],d=Object.getOwnPropertyNames(a);a=Object.getOwnPropertySymbols(a);for(var e=0;e=arguments.length)return a[c];var b;a:{for(b=a;b;){var f=Reflect.getOwnPropertyDescriptor(b,c);if(f){b=f;break a}b=Reflect.getPrototypeOf(b)}b=void 0}if(b)return b.get?b.get.call(d):b.value}});G("Object.getOwnPropertySymbols",function(a){return a?a:function(){return[]}}); +G("Reflect.ownKeys",function(a){return a?a:function(a){var b=[],d=Object.getOwnPropertyNames(a);a=Object.getOwnPropertySymbols(a);for(var e=0;ec&&(c=Math.max(c+e,0));cg;){c={};c[f]=e[e.length+g];c.m=d;b=a.cloneNode(!0);b.o=c;for(v in Silica.D)Silica.D[v].call(b);h.appendChild(b);++g}h.hasChildNodes()&&k.appendChild(h);g=0;for(h=e.length;gc&&(c=Math.max(c+e,0));cg;){c={};c[f]=e[e.length+g];c.m=d;b=a.cloneNode(!0);b.o=c;for(q in Silica.D)Silica.D[q].call(b);k.appendChild(b);++g}k.hasChildNodes()&&h.appendChild(k); +g=0;for(k=e.length;g>>0;if(0===d)return!1;b|=0;for(b=Math.max(0<=b?b:d-Math.abs(b),0);b=b.charCodeAt(0)?window:Silica.getContext(a));if(8!==a.nodeType)a=a.dataset.parameter;else{var e=document.createElement("div");e.innerHTML=a.data;a=X(e.firstElementChild||e,"parameter")}a&&d.push(a);return Silica.B(c,b,d)},Y:function(a,b){for(;a;){if(a.parentElement===b)return!0;a=a.parentElement}return!1},Z:function(a){for(;null!=a.parentElement&&!a.Ca;){if(a.parentElement==document.documentElement)return!0;a=a.parentElement}return!1}, -M:function(a,b,c){var d;if(!b)return a;var e=b.split(".");var f=e[e.length-1];90>=b.charCodeAt(0)?d=window:!a.hasOwnProperty(e[0])&&"function"!==typeof a[e[0]]&&a.m?d=a.m:d=a;a=0;for(b=e.length;a=a.charCodeAt(0)&&(c=window);var e=Silica.B(c,a);d&&(a=(d=d.split(/:(.+)/))?d[0]:null,b=d&&1{{val}}":(g=g[1].trim(),h="{{val}}");h=h.replace("{{val}}",Silica.Ha(e,f,b));d=d.replace("{{"+e+"}}",h)}e=document.createElement("span");e.innerHTML=d;for(d=f.parentNode;0=b.charCodeAt(0)?window:Silica.getContext(a));if(8!==a.nodeType)a=a.dataset.parameter;else{var e=document.createElement("div");e.innerHTML=a.data;a=X(e.firstElementChild||e,"parameter")}a&&d.push(a);return Silica.B(c,b,d)},Z:function(a,b){for(;a;){if(a.parentElement===b)return!0;a=a.parentElement}return!1},aa:function(a){for(;null!=a.parentElement&&!a.Ca;){if(a.parentElement==document.documentElement)return!0; +a=a.parentElement}return!1},N:function(a,b,c){var d;if(!b)return a;var e=b.split(".");var f=e[e.length-1];90>=b.charCodeAt(0)?d=window:!a.hasOwnProperty(e[0])&&"function"!==typeof a[e[0]]&&a.m?d=a.m:d=a;a=0;for(b=e.length;a=a.charCodeAt(0)&&(c=window);var e=Silica.B(c,a);d&&(a=(d=d.split(/:(.+)/))?d[0]:null,b=d&&1{{val}}":(g=g[1].trim(),k="{{val}}");k=k.replace("{{val}}",Silica.Ia(e,f,b));d=d.replace("{{"+e+"}}",k)}e=document.createElement("span");e.innerHTML=d;for(d=f.parentNode;0UYI6Y1eQ9^wII`$>{|cLTj)rW}igwGQ z8BNyibZ46+y(;P)kc1?*wKx=&r7g{Ge^rHrAVt}7?!5C}_lZn`09XYS3bmnl@4N4g zj=wt|{lv2qjo~+{K;<#RG*BVs9*6DPa96y@!g?s#aeER6?nk|lpqQiep<}9A!8%9() zTwZ-m;>k2E)^FAu?Nj*aQngte^2LfDzj*cz?(ZF)jMs}Wh4!$y~W@u!JDE&OTYPX~YK=^6g?@aLQ=i-y#uL5&*JszJ>f(5~*L z(|A=2X3Ow$<%jZaJs$I<=f@tO0cZfk!nyv$lH|CKFzXEK?k)e1#4D$DU;J&zzfJkKCH}5bmZah`_?q&SLUtT4 z*ew2=N3uFwP2u{ap`IqI)IX_j5n=9I%iu2#6XW~o*DJmpA73TQkgryiioB>v3Mwh7 zEtV1Yc%@>e{$#cc*v#>;*VvuKfWwf3_Tk*HXzg#Vo zbmgvmOOZ%cH{yU3)D?egY#zCb-8ZZk;(279sD{Q=x?|s}H=3<>r+d~rXF&*+t=j5p z7N@plIWF^ognDkPdDiW@y;iT+t@qs1W}|)9?zOt@-pF0z)b-p(*KM{(?%E$(Q~t$r zEru_FzfnBls}wE-t*9sB_14G@{o%;Vi0!JB*y19ET{+OONLN=5P2X4FTxSVS*U92o z7ja#L%@g~i?$p*-5lcBd8m1%L*>2q^>q3B)`d@8A%#kxYgT8^vYhl8nsaf6ZeG4^2 z=UI(JS5d8P4FRkSZ@f%wq8GpJ#TV<^j4vkX)T>rw0m{^04`Wyi!|4csnmSw6+t!`s z-a@48#$K9yC6;0mhLcW{VD= zq^5$f!uO`hI!u>|?;C{Uq(!1h9nIQ4E#v68?gJEZd=(VPfW6xx!k%L!fjmT8)pP|{ zHQ)^C645N90RZA8&zR(l`D%#tdQFh#l02em%|I0>GTG(9PDV=Z)I~-(_7jQjW>bf? zZ7^V1xh6;V#`jmA*oiW3iG-i$oeVcAhMSa2zj%#5P5f!$PaA(a_(M<6@TZ4A=TuoV zr#200)Sy-kYDQa?<8p`C10pjucsznwsdU@-ac!)e^>A9Pj{Ib}8i`rHr9K-@@855Z zHq_$cVmWM8umfZByQKqI8ntlBl1ISqAEfrmae-6bj|UQvxZkX|@!pmNjq~OvzJI^# zs{3Yd(`{8^r{C!`&%5{I4LtTcXRUTyw`n%p*rw4m8(}AvZfmz6JNCPsPODqB?MA(c zMHd&1`i8D^up;=5YTs4&x&JSVH=8c!7{ z+0)Wd&06Sz-QS@^_YQBo-5Co-XASZnBr*0-WRsHE{ zHlObFzTbs0G=!|_X}9faj$k`(jyu$yzFAjqQ&0vwtjQe}2Q+ulGWJ-I<4)?H*qTi? zmiW6^!Csk&aR8=NNk(o06w%Fdv&|-l2=cX*_!|AeZZ&%K zvqmL#stXu~(*|fnt@;@Vf>0NhZG)EP{bt>%rq~0A9(0#~#uf7pc1-A`iJdgNZRqE$ zgY`M|a<<{nOQYjdW9%gXAphhQJCfRWjZgGIB2@MQ1;eV#E)&9vHITWqld8ga% z^t$_o0@@@v1nHlN#Jt+AcN_IiuW`N)@oEX?^>(|{?6g|-J(%wz)P`1P-FBnbJKve{ zJqUG1)dtLWy;pBH55}kq?`Z?Qv>L5;<4}~&MyKu0S-o@KYn3Cki%$=LJ3Fh_Tb*{} z&>1=h*v^rV+wI2Lp$Ng+J#9DZu+bfeOas@%`FXuv2gsU-;sb1<3hS!ft+%?p=Ak49 zw9u}@KsV}*gYiL1=+t3io6Yn3!AKD?w7Q*Er`6oE-UumiBd

Kuwr8z}*# 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 literal 15058 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 diff --git a/package.json b/package.json index 461642b..d092d2c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "silica", - "version": "0.52.0", + "version": "0.60.0-alpha", "description": "Silica is a fast lightweight javascript framework for building applications. Silica's usage is designed to be as transparent as possible", "bin": { "silica": "src/cli/silica-cli.js" diff --git a/src/cli/silica-cli.js b/src/cli/silica-cli.js index 42ce10a..7187e71 100755 --- a/src/cli/silica-cli.js +++ b/src/cli/silica-cli.js @@ -3,7 +3,7 @@ var program = require('commander') program - .version('0.52.0') + .version('0.60.0-alpha') .command('create [name]', 'Create a new silica project in the current directory') .command('build', 'Build the current project') .command('watch', 'Builds and serves the current project') diff --git a/src/silica.js b/src/silica.js index d54ff44..811838c 100644 --- a/src/silica.js +++ b/src/silica.js @@ -37,7 +37,7 @@ window['Silica'] = { interpolationPattern: /\{\{(.*?)\}\}/, usePushState: true, observer: ValueObserver.create(), - version: '0.53.0', + version: '0.60.0-alpha', // Set the root context setContext (contextName) { diff --git a/src/watchers/repeat.js b/src/watchers/repeat.js index c4ecdad..8c1eede 100644 --- a/src/watchers/repeat.js +++ b/src/watchers/repeat.js @@ -12,6 +12,7 @@ function Repeat () { list = repeat[1] model = repeat[0] ctx = Silica.getContext(raw) + let possiblyNested = !raw.dataset['repeatNotNested'] // Check if we are calling a function with a param if (typeof (_ref = list.match(/((?:\w|\.)+)(?:\(([\w\.]+)\))*/))[2] !== 'undefined') { @@ -112,7 +113,11 @@ function Repeat () { ControllerCompiler.call(node, node._rt_ctx, true) } node._rt_ctx.index = _i - Silica.flush(node, false, {}, true) + + // Silica.flush(node, false, {}, true) + if (possiblyNested) { + Repeat.call(node) + } } if (ctx['renderedRepeat']) { From 7e1f938a07180c4e0a9587bde94e7c3b10ce3f27 Mon Sep 17 00:00:00 2001 From: Kayle Gishen Date: Wed, 27 Feb 2019 22:48:33 -0500 Subject: [PATCH 04/58] Port more functions to new updater. Use IntersectionObserver if possible --- dist/silica.js | 709 +++++++++++++++-------------- dist/silica.js.gz | Bin 24472 -> 24911 bytes dist/silica.min.js | 136 +++--- dist/silica.min.js.gz | Bin 15322 -> 15398 bytes example/index.html | 67 ++- package.json | 2 +- src/cli/silica-build.js | 13 +- src/cli/silica-watch.js | 4 + src/compilers/class.js | 74 ++- src/compilers/generic-attribute.js | 28 +- src/compilers/model.js | 2 +- src/compilers/show.js | 39 +- src/compilers/src.js | 28 +- src/compilers/style.js | 19 +- src/silica.js | 32 +- src/watchers/class.js | 78 ---- src/watchers/show.js | 41 -- src/watchers/value_observer.js | 61 ++- src/watchers/watchers.js | 14 - yarn.lock | 644 +++++++++++++++++++++++++- 20 files changed, 1356 insertions(+), 635 deletions(-) delete mode 100644 src/watchers/class.js delete mode 100644 src/watchers/show.js diff --git a/dist/silica.js b/dist/silica.js index 6d85ee9..24d9fff 100644 --- a/dist/silica.js +++ b/dist/silica.js @@ -115,6 +115,55 @@ $jscomp.arrayFromIterator = function $$jscomp$arrayFromIterator$($iterator$$) { $jscomp.arrayFromIterable = function $$jscomp$arrayFromIterable$($iterable$$) { return $iterable$$ instanceof Array ? $iterable$$ : $jscomp.arrayFromIterator($jscomp.makeIterator($iterable$$)); }; +$jscomp.polyfill = function $$jscomp$polyfill$($property$jscomp$5_split_target$$, $impl_polyfill$$, $fromLang_obj$$, $i$$) { + if ($impl_polyfill$$) { + $fromLang_obj$$ = $jscomp.global; + $property$jscomp$5_split_target$$ = $property$jscomp$5_split_target$$.split("."); + for ($i$$ = 0; $i$$ < $property$jscomp$5_split_target$$.length - 1; $i$$++) { + var $key$$ = $property$jscomp$5_split_target$$[$i$$]; + $key$$ in $fromLang_obj$$ || ($fromLang_obj$$[$key$$] = {}); + $fromLang_obj$$ = $fromLang_obj$$[$key$$]; + } + $property$jscomp$5_split_target$$ = $property$jscomp$5_split_target$$[$property$jscomp$5_split_target$$.length - 1]; + $i$$ = $fromLang_obj$$[$property$jscomp$5_split_target$$]; + $impl_polyfill$$ = $impl_polyfill$$($i$$); + $impl_polyfill$$ != $i$$ && null != $impl_polyfill$$ && $jscomp.defineProperty($fromLang_obj$$, $property$jscomp$5_split_target$$, {configurable:!0, writable:!0, value:$impl_polyfill$$}); + } +}; +$jscomp.polyfill("Object.is", function($orig$$) { + return $orig$$ ? $orig$$ : function($left$$, $right$$) { + return $left$$ === $right$$ ? 0 !== $left$$ || 1 / $left$$ === 1 / $right$$ : $left$$ !== $left$$ && $right$$ !== $right$$; + }; +}, "es6", "es3"); +$jscomp.polyfill("Array.prototype.includes", function($orig$$) { + return $orig$$ ? $orig$$ : function($searchElement$$, $i$jscomp$5_opt_fromIndex$$) { + var $array$$ = this; + $array$$ instanceof String && ($array$$ = String($array$$)); + var $len$$ = $array$$.length; + $i$jscomp$5_opt_fromIndex$$ = $i$jscomp$5_opt_fromIndex$$ || 0; + for (0 > $i$jscomp$5_opt_fromIndex$$ && ($i$jscomp$5_opt_fromIndex$$ = Math.max($i$jscomp$5_opt_fromIndex$$ + $len$$, 0)); $i$jscomp$5_opt_fromIndex$$ < $len$$; $i$jscomp$5_opt_fromIndex$$++) { + var $element$$ = $array$$[$i$jscomp$5_opt_fromIndex$$]; + if ($element$$ === $searchElement$$ || Object.is($element$$, $searchElement$$)) { + return !0; + } + } + return !1; + }; +}, "es7", "es3"); +$jscomp.checkStringArgs = function $$jscomp$checkStringArgs$($thisArg$$, $arg$$, $func$$) { + if (null == $thisArg$$) { + throw new TypeError("The 'this' value for String.prototype." + $func$$ + " must not be null or undefined"); + } + if ($arg$$ instanceof RegExp) { + throw new TypeError("First argument to String.prototype." + $func$$ + " must not be a regular expression"); + } + return $thisArg$$ + ""; +}; +$jscomp.polyfill("String.prototype.includes", function($orig$$) { + return $orig$$ ? $orig$$ : function($searchString$$, $opt_position$$) { + return -1 !== $jscomp.checkStringArgs(this, $searchString$$, "includes").indexOf($searchString$$, $opt_position$$ || 0); + }; +}, "es6", "es3"); $jscomp.iteratorFromArray = function $$jscomp$iteratorFromArray$($array$$, $transform$$) { $jscomp.initSymbolIterator(); $array$$ instanceof String && ($array$$ += ""); @@ -133,21 +182,6 @@ $jscomp.iteratorFromArray = function $$jscomp$iteratorFromArray$($array$$, $tran }; return $iter$$; }; -$jscomp.polyfill = function $$jscomp$polyfill$($property$jscomp$5_split_target$$, $impl_polyfill$$, $fromLang_obj$$, $i$$) { - if ($impl_polyfill$$) { - $fromLang_obj$$ = $jscomp.global; - $property$jscomp$5_split_target$$ = $property$jscomp$5_split_target$$.split("."); - for ($i$$ = 0; $i$$ < $property$jscomp$5_split_target$$.length - 1; $i$$++) { - var $key$$ = $property$jscomp$5_split_target$$[$i$$]; - $key$$ in $fromLang_obj$$ || ($fromLang_obj$$[$key$$] = {}); - $fromLang_obj$$ = $fromLang_obj$$[$key$$]; - } - $property$jscomp$5_split_target$$ = $property$jscomp$5_split_target$$[$property$jscomp$5_split_target$$.length - 1]; - $i$$ = $fromLang_obj$$[$property$jscomp$5_split_target$$]; - $impl_polyfill$$ = $impl_polyfill$$($i$$); - $impl_polyfill$$ != $i$$ && null != $impl_polyfill$$ && $jscomp.defineProperty($fromLang_obj$$, $property$jscomp$5_split_target$$, {configurable:!0, writable:!0, value:$impl_polyfill$$}); - } -}; $jscomp.polyfill("Array.prototype.keys", function($orig$$) { return $orig$$ ? $orig$$ : function() { return $jscomp.iteratorFromArray(this, function($i$$) { @@ -368,18 +402,18 @@ $jscomp.polyfill("Map", function($NativeMap$$) { }; $PolyfillMap$$.prototype[Symbol.iterator] = $PolyfillMap$$.prototype.entries; var $maybeGetEntry$$ = function $$maybeGetEntry$$$($index$jscomp$57_map$$, $key$$) { - var $id$jscomp$5_id$jscomp$inline_43_type$$ = $key$$ && typeof $key$$; - "object" == $id$jscomp$5_id$jscomp$inline_43_type$$ || "function" == $id$jscomp$5_id$jscomp$inline_43_type$$ ? $idMap$$.has($key$$) ? $id$jscomp$5_id$jscomp$inline_43_type$$ = $idMap$$.get($key$$) : ($id$jscomp$5_id$jscomp$inline_43_type$$ = "" + ++$mapIndex$$, $idMap$$.set($key$$, $id$jscomp$5_id$jscomp$inline_43_type$$)) : $id$jscomp$5_id$jscomp$inline_43_type$$ = "p_" + $key$$; - var $list$$ = $index$jscomp$57_map$$.data_[$id$jscomp$5_id$jscomp$inline_43_type$$]; - if ($list$$ && $jscomp.owns($index$jscomp$57_map$$.data_, $id$jscomp$5_id$jscomp$inline_43_type$$)) { + var $id$jscomp$5_id$jscomp$inline_45_type$$ = $key$$ && typeof $key$$; + "object" == $id$jscomp$5_id$jscomp$inline_45_type$$ || "function" == $id$jscomp$5_id$jscomp$inline_45_type$$ ? $idMap$$.has($key$$) ? $id$jscomp$5_id$jscomp$inline_45_type$$ = $idMap$$.get($key$$) : ($id$jscomp$5_id$jscomp$inline_45_type$$ = "" + ++$mapIndex$$, $idMap$$.set($key$$, $id$jscomp$5_id$jscomp$inline_45_type$$)) : $id$jscomp$5_id$jscomp$inline_45_type$$ = "p_" + $key$$; + var $list$$ = $index$jscomp$57_map$$.data_[$id$jscomp$5_id$jscomp$inline_45_type$$]; + if ($list$$ && $jscomp.owns($index$jscomp$57_map$$.data_, $id$jscomp$5_id$jscomp$inline_45_type$$)) { for ($index$jscomp$57_map$$ = 0; $index$jscomp$57_map$$ < $list$$.length; $index$jscomp$57_map$$++) { var $entry$$ = $list$$[$index$jscomp$57_map$$]; if ($key$$ !== $key$$ && $entry$$.key !== $entry$$.key || $key$$ === $entry$$.key) { - return {id:$id$jscomp$5_id$jscomp$inline_43_type$$, list:$list$$, index:$index$jscomp$57_map$$, entry:$entry$$}; + return {id:$id$jscomp$5_id$jscomp$inline_45_type$$, list:$list$$, index:$index$jscomp$57_map$$, entry:$entry$$}; } } } - return {id:$id$jscomp$5_id$jscomp$inline_43_type$$, list:$list$$, index:-1, entry:void 0}; + return {id:$id$jscomp$5_id$jscomp$inline_45_type$$, list:$list$$, index:-1, entry:void 0}; }, $makeIterator$$ = function $$makeIterator$$$($map$$, $func$$) { var $entry$$ = $map$$.head_; return $jscomp.iteratorPrototype(function() { @@ -400,40 +434,6 @@ $jscomp.polyfill("Map", function($NativeMap$$) { }, $mapIndex$$ = 0; return $PolyfillMap$$; }, "es6", "es3"); -$jscomp.polyfill("Object.is", function($orig$$) { - return $orig$$ ? $orig$$ : function($left$$, $right$$) { - return $left$$ === $right$$ ? 0 !== $left$$ || 1 / $left$$ === 1 / $right$$ : $left$$ !== $left$$ && $right$$ !== $right$$; - }; -}, "es6", "es3"); -$jscomp.polyfill("Array.prototype.includes", function($orig$$) { - return $orig$$ ? $orig$$ : function($searchElement$$, $i$jscomp$8_opt_fromIndex$$) { - var $array$$ = this; - $array$$ instanceof String && ($array$$ = String($array$$)); - var $len$$ = $array$$.length; - $i$jscomp$8_opt_fromIndex$$ = $i$jscomp$8_opt_fromIndex$$ || 0; - for (0 > $i$jscomp$8_opt_fromIndex$$ && ($i$jscomp$8_opt_fromIndex$$ = Math.max($i$jscomp$8_opt_fromIndex$$ + $len$$, 0)); $i$jscomp$8_opt_fromIndex$$ < $len$$; $i$jscomp$8_opt_fromIndex$$++) { - var $element$$ = $array$$[$i$jscomp$8_opt_fromIndex$$]; - if ($element$$ === $searchElement$$ || Object.is($element$$, $searchElement$$)) { - return !0; - } - } - return !1; - }; -}, "es7", "es3"); -$jscomp.checkStringArgs = function $$jscomp$checkStringArgs$($thisArg$$, $arg$$, $func$$) { - if (null == $thisArg$$) { - throw new TypeError("The 'this' value for String.prototype." + $func$$ + " must not be null or undefined"); - } - if ($arg$$ instanceof RegExp) { - throw new TypeError("First argument to String.prototype." + $func$$ + " must not be a regular expression"); - } - return $thisArg$$ + ""; -}; -$jscomp.polyfill("String.prototype.includes", function($orig$$) { - return $orig$$ ? $orig$$ : function($searchString$$, $opt_position$$) { - return -1 !== $jscomp.checkStringArgs(this, $searchString$$, "includes").indexOf($searchString$$, $opt_position$$ || 0); - }; -}, "es6", "es3"); $jscomp.polyfill("Set", function($NativeSet$$) { function $isConformant$$() { if ($jscomp.ASSUME_NO_NATIVE_SET || !$NativeSet$$ || "function" != typeof $NativeSet$$ || !$NativeSet$$.prototype.entries || "function" != typeof Object.seal) { @@ -522,13 +522,59 @@ function module$exports$compilers$blur() { }; } } -;function module$exports$compilers$class() { - var $nodes$$ = Silica.query(this, "[data-class]"), $klass$$; - 9 !== this.nodeType && this.dataset["class"] && (null == this.dataset._rt_hard_klass && (this.dataset._rt_hard_klass = this.className), ($klass$$ = Silica.getValue(this, this.dataset["class"], null, null)) && this.classList.add($klass$$)); - for (var $i$$ = $nodes$$.length - 1; 0 <= $i$$; --$i$$) { - var $node$$ = $nodes$$[$i$$]; - null == $node$$.dataset._rt_hard_klass && ($node$$.dataset._rt_hard_klass = $node$$.className.split("hidden").join(" ").trim()); - ($klass$$ = Silica.getValue($node$$, $node$$.dataset["class"], null, [$node$$, $node$$.dataset.parameter])) && $node$$.classList.add($klass$$); +;var module$contents$compilers$class_getClassList = null; +module$contents$compilers$class_getClassList = DOMTokenList && DOMTokenList.prototype.values ? function($e$$) { + return $e$$.classList.values(); +} : function($e$$) { + return $e$$.className.split(" "); +}; +function module$contents$compilers$class_updater($element$$, $klass$jscomp$1_value$$) { + var $hardClass$$ = $element$$.dataset._rt_hard_klass || ""; + $klass$jscomp$1_value$$ instanceof Array || ($klass$jscomp$1_value$$ = "" === $klass$jscomp$1_value$$ ? [] : [$klass$jscomp$1_value$$]); + null != $element$$.dataset.show && $element$$.classList.contains("hidden") && $klass$jscomp$1_value$$.push("hidden"); + if ($element$$.classList.length !== $klass$jscomp$1_value$$.length) { + $element$$.className = $hardClass$$, $element$$.classList.add.apply($element$$.classList, $klass$jscomp$1_value$$); + } else { + for (var $$jscomp$iter$1_applied$$ = !1, $$jscomp$iter$0$$ = $jscomp.makeIterator($klass$jscomp$1_value$$), $$jscomp$key$k$$ = $$jscomp$iter$0$$.next(); !$$jscomp$key$k$$.done; $$jscomp$key$k$$ = $$jscomp$iter$0$$.next()) { + if (!$element$$.classList.contains($$jscomp$key$k$$.value)) { + $element$$.className = $hardClass$$; + $element$$.classList.add.apply($element$$.classList, $klass$jscomp$1_value$$); + $$jscomp$iter$1_applied$$ = !0; + break; + } + } + if (!$$jscomp$iter$1_applied$$) { + for ($$jscomp$iter$1_applied$$ = $jscomp.makeIterator(module$contents$compilers$class_getClassList($element$$)), $$jscomp$key$k$$ = $$jscomp$iter$1_applied$$.next(); !$$jscomp$key$k$$.done; $$jscomp$key$k$$ = $$jscomp$iter$1_applied$$.next()) { + if (!$klass$jscomp$1_value$$.includes($$jscomp$key$k$$.value)) { + $element$$.className = $hardClass$$; + $element$$.classList.add.apply($element$$.classList, $klass$jscomp$1_value$$); + break; + } + } + } + } +} +function module$exports$compilers$class($ctx_nodes$$, $node$jscomp$3_value$$) { + if (void 0 !== $node$jscomp$3_value$$) { + module$contents$compilers$class_updater(this, $node$jscomp$3_value$$); + } else { + $ctx_nodes$$ = Silica.query(this, "[data-class]"); + if (9 !== this.nodeType && this.dataset["class"]) { + null == this.dataset._rt_hard_klass && (this.dataset._rt_hard_klass = this.className.split("hidden").join(" ").trim()); + var $property$$ = this.dataset["class"]; + Silica.observer.register(this, $property$$, module$exports$compilers$class); + this.onremove = function $this$onremove$() { + Silica.observer.deregister(this, $property$$, module$exports$compilers$class); + }; + module$contents$compilers$class_updater(this, Silica.getValue(this, $property$$)); + } + for (var $$jscomp$loop$29$$ = {}, $i$$ = $ctx_nodes$$.length - 1; 0 <= $i$$; $$jscomp$loop$29$$ = {property$9:$$jscomp$loop$29$$.property$9}, --$i$$) { + $node$jscomp$3_value$$ = $ctx_nodes$$[$i$$], null == $node$jscomp$3_value$$.dataset._rt_hard_klass && ($node$jscomp$3_value$$.dataset._rt_hard_klass = $node$jscomp$3_value$$.className.split("hidden").join(" ").trim()), $$jscomp$loop$29$$.property$9 = $node$jscomp$3_value$$.dataset["class"], Silica.observer.register($node$jscomp$3_value$$, $$jscomp$loop$29$$.property$9, module$exports$compilers$class), $node$jscomp$3_value$$.onremove = function($$jscomp$loop$29$$) { + return function() { + Silica.observer.deregister(this, $$jscomp$loop$29$$.property$9, module$exports$compilers$class); + }; + }($$jscomp$loop$29$$), module$contents$compilers$class_updater($node$jscomp$3_value$$, Silica.getValue($node$jscomp$3_value$$, $$jscomp$loop$29$$.property$9)); + } } } ;function module$exports$compilers$click() { @@ -539,7 +585,7 @@ function module$exports$compilers$blur() { } } ;function module$contents$compilers$clickoutside_handleClick($evt$$) { - for (var $$jscomp$iter$0$$ = $jscomp.makeIterator(Silica._clickOutElements), $$jscomp$key$node_node$$ = $$jscomp$iter$0$$.next(); !$$jscomp$key$node_node$$.done; $$jscomp$key$node_node$$ = $$jscomp$iter$0$$.next()) { + for (var $$jscomp$iter$2$$ = $jscomp.makeIterator(Silica._clickOutElements), $$jscomp$key$node_node$$ = $$jscomp$iter$2$$.next(); !$$jscomp$key$node_node$$.done; $$jscomp$key$node_node$$ = $$jscomp$iter$2$$.next()) { if ($$jscomp$key$node_node$$ = $$jscomp$key$node_node$$.value, 0 < $$jscomp$key$node_node$$.offsetWidth || 0 < $$jscomp$key$node_node$$.offsetHeight) { $evt$$.target === $$jscomp$key$node_node$$ || Silica.isDescendent($$jscomp$key$node_node$$, $evt$$.target) || Silica._call($$jscomp$key$node_node$$, $evt$$, "clickOutside"); } @@ -561,8 +607,8 @@ function module$exports$compilers$clickoutside() { $newChild$$.setAttribute($attrs_v$$[$j$$].name, $attrs_v$$[$j$$].value); } } - for (var $j$8$$ in $node$$.dataset) { - $newChild$$.dataset[$j$8$$] = $node$$.dataset[$j$8$$]; + for (var $j$10$$ in $node$$.dataset) { + $newChild$$.dataset[$j$10$$] = $node$$.dataset[$j$10$$]; } $newChild$$._rt_ctrl = new $obj$$.controller($newChild$$); $newChild$$._rt_ctrl.$ctrl = Silica.getContext($node$$.parentElement); @@ -581,7 +627,7 @@ function module$exports$compilers$clickoutside() { } } ;function module$exports$compilers$if() { - for (var $nodes$$ = Silica.queryWithComments(this, "[data-if]"), $comment_isVisible_live_negate_subNodes$$, $raw$$, $list$$, $node$$, $_ref$$, $temp$$ = document.createElement("div"), $$jscomp$loop$29$$ = {}, $i$$ = $nodes$$.length - 1; 0 <= $i$$; $$jscomp$loop$29$$ = {subNode:$$jscomp$loop$29$$.subNode}, --$i$$) { + for (var $nodes$$ = Silica.queryWithComments(this, "[data-if]"), $comment_isVisible_live_negate_subNodes$$, $raw$$, $list$$, $node$$, $_ref$$, $temp$$ = document.createElement("div"), $$jscomp$loop$30$$ = {}, $i$$ = $nodes$$.length - 1; 0 <= $i$$; $$jscomp$loop$30$$ = {subNode:$$jscomp$loop$30$$.subNode}, --$i$$) { if ($node$$ = $nodes$$[$i$$], 8 === $node$$.nodeType ? ($temp$$.innerHTML = $node$$.nodeValue, $raw$$ = $list$$ = $temp$$.firstElementChild.dataset["if"]) : $raw$$ = $list$$ = $node$$.dataset["if"], ($comment_isVisible_live_negate_subNodes$$ = "!" === $list$$[0]) && ($list$$ = $list$$.substr(1)), Silica._ifs[$raw$$] || (Silica._ifs[$raw$$] = []), $comment_isVisible_live_negate_subNodes$$ = Silica._show($node$$, $list$$, $comment_isVisible_live_negate_subNodes$$)) { if (8 !== $node$$.nodeType ? Silica._ifs[$raw$$].push($node$$) : ($comment_isVisible_live_negate_subNodes$$ = $temp$$.firstElementChild, Silica._ifs[$raw$$].push($comment_isVisible_live_negate_subNodes$$), $node$$.parentElement.insertBefore($comment_isVisible_live_negate_subNodes$$, $node$$), $node$$.remove(), $node$$ = $comment_isVisible_live_negate_subNodes$$), null != ($_ref$$ = Silica.getContext($node$$)) && "function" === typeof $_ref$$.onLoad && $_ref$$.el === $node$$) { $_ref$$.onLoad(); @@ -589,26 +635,26 @@ function module$exports$compilers$clickoutside() { } else { if (8 !== $node$$.nodeType) { $comment_isVisible_live_negate_subNodes$$ = Silica.queryWithComments($node$$, "[data-if]"); - $$jscomp$loop$29$$.subNode = void 0; - for (var $$jscomp$loop$30_prop$$, $j$9_j$$ = $comment_isVisible_live_negate_subNodes$$.length - 1; 0 <= $j$9_j$$; --$j$9_j$$) { - $$jscomp$loop$29$$.subNode = $comment_isVisible_live_negate_subNodes$$[$j$9_j$$], $$jscomp$loop$30_prop$$ = $$jscomp$loop$29$$.subNode.dataset["if"], $list$$ = Silica._shws[$$jscomp$loop$30_prop$$], Silica._shws[$$jscomp$loop$30_prop$$] = null != $list$$ ? $list$$.filter(function($$jscomp$loop$29$$) { + $$jscomp$loop$30$$.subNode = void 0; + for (var $$jscomp$loop$31_prop$$, $j$11_j$$ = $comment_isVisible_live_negate_subNodes$$.length - 1; 0 <= $j$11_j$$; --$j$11_j$$) { + $$jscomp$loop$30$$.subNode = $comment_isVisible_live_negate_subNodes$$[$j$11_j$$], $$jscomp$loop$31_prop$$ = $$jscomp$loop$30$$.subNode.dataset["if"], $list$$ = Silica._shws[$$jscomp$loop$31_prop$$], Silica._shws[$$jscomp$loop$31_prop$$] = null != $list$$ ? $list$$.filter(function($$jscomp$loop$30$$) { return function($obj$$) { - return $obj$$ !== $$jscomp$loop$29$$.subNode; + return $obj$$ !== $$jscomp$loop$30$$.subNode; }; - }($$jscomp$loop$29$$)) : []; + }($$jscomp$loop$30$$)) : []; } $comment_isVisible_live_negate_subNodes$$ = Silica.query(this, "[data-controller]"); - $$jscomp$loop$30_prop$$ = {}; - for ($j$9_j$$ = $comment_isVisible_live_negate_subNodes$$.length - 1; 0 <= $j$9_j$$; $$jscomp$loop$30_prop$$ = {ctrl:$$jscomp$loop$30_prop$$.ctrl}, --$j$9_j$$) { - $$jscomp$loop$29$$.subNode = $comment_isVisible_live_negate_subNodes$$[$j$9_j$$]; - $$jscomp$loop$30_prop$$.ctrl = this._rt_ctrl; + $$jscomp$loop$31_prop$$ = {}; + for ($j$11_j$$ = $comment_isVisible_live_negate_subNodes$$.length - 1; 0 <= $j$11_j$$; $$jscomp$loop$31_prop$$ = {ctrl:$$jscomp$loop$31_prop$$.ctrl}, --$j$11_j$$) { + $$jscomp$loop$30$$.subNode = $comment_isVisible_live_negate_subNodes$$[$j$11_j$$]; + $$jscomp$loop$31_prop$$.ctrl = this._rt_ctrl; var $k$$ = void 0; - for ($k$$ in null != $$jscomp$loop$30_prop$$.ctrl ? $$jscomp$loop$30_prop$$.ctrl.watchers : void 0) { - $list$$ = Silica._watch[$k$$], Silica._watch[$k$$] = null != $list$$ ? $list$$.filter(function($$jscomp$loop$30$$) { + for ($k$$ in null != $$jscomp$loop$31_prop$$.ctrl ? $$jscomp$loop$31_prop$$.ctrl.watchers : void 0) { + $list$$ = Silica._watch[$k$$], Silica._watch[$k$$] = null != $list$$ ? $list$$.filter(function($$jscomp$loop$31$$) { return function($obj$$) { - return $obj$$[0] !== $$jscomp$loop$30$$.ctrl; + return $obj$$[0] !== $$jscomp$loop$31$$.ctrl; }; - }($$jscomp$loop$30_prop$$)) : []; + }($$jscomp$loop$31_prop$$)) : []; } } $comment_isVisible_live_negate_subNodes$$ = document.createComment($node$$.outerHTML); @@ -618,16 +664,16 @@ function module$exports$compilers$clickoutside() { } } } -;function module$exports$compilers$show() { - for (var $nodes$$ = Silica.query(this, "[data-show]"), $node$$, $isVisible$jscomp$1_negate$$, $raw$$, $val$$, $i$$ = $nodes$$.length - 1; 0 <= $i$$; --$i$$) { - $node$$ = $nodes$$[$i$$], $raw$$ = $val$$ = $node$$.dataset.show, ($isVisible$jscomp$1_negate$$ = "!" === $val$$[0]) && ($val$$ = $val$$.substr(1)), Silica._shws[$raw$$] || (Silica._shws[$raw$$] = []), Silica._shws[$raw$$].some(function($obj$$) { - return $obj$$ === $node$$; - }) || ($node$$.onremove = function $$node$$$onremove$() { - var $list$$ = Silica._shws[$raw$$]; - Silica._shws[$raw$$] = void 0 !== $list$$ && null !== $list$$ ? $list$$.filter(function($obj$$) { - return $obj$$ !== $node$$; - }) : []; - }, $isVisible$jscomp$1_negate$$ = Silica._show($node$$, $val$$, $isVisible$jscomp$1_negate$$), Silica._shws[$raw$$].push($node$$), $isVisible$jscomp$1_negate$$ ? $node$$.classList.remove("hidden") : $node$$.classList.add("hidden")); +;function module$exports$compilers$show($ctx$jscomp$1_nodes$$, $$jscomp$loop$32_value$$) { + void 0 !== $$jscomp$loop$32_value$$ && ($$jscomp$loop$32_value$$ ? this.classList.remove("hidden") : this.classList.add("hidden")); + $ctx$jscomp$1_nodes$$ = Silica.query(this, "[data-show]"); + $$jscomp$loop$32_value$$ = {}; + for (var $i$$ = $ctx$jscomp$1_nodes$$.length - 1; 0 <= $i$$; $$jscomp$loop$32_value$$ = {node:$$jscomp$loop$32_value$$.node, property:$$jscomp$loop$32_value$$.property}, --$i$$) { + $$jscomp$loop$32_value$$.node = $ctx$jscomp$1_nodes$$[$i$$], $$jscomp$loop$32_value$$.property = $$jscomp$loop$32_value$$.node.dataset.show, $$jscomp$loop$32_value$$.node.onremove = function($$jscomp$loop$32$$) { + return function() { + Silica.observer.deregister($$jscomp$loop$32$$.node, $$jscomp$loop$32$$.property, module$exports$compilers$show); + }; + }($$jscomp$loop$32_value$$), Silica.observer.register($$jscomp$loop$32_value$$.node, $$jscomp$loop$32_value$$.property, module$exports$compilers$show), Silica.getValue($$jscomp$loop$32_value$$.node, $$jscomp$loop$32_value$$.property) ? $$jscomp$loop$32_value$$.node.classList.remove("hidden") : $$jscomp$loop$32_value$$.node.classList.add("hidden"); } } ;function module$exports$compilers$disabled() { @@ -635,23 +681,31 @@ function module$exports$compilers$clickoutside() { $node$$ = $nodes$$[$i$$], $property$$ = $node$$.dataset.disabled, ($negate$$ = "!" === $property$$[0]) && ($property$$ = $property$$.substr(1)), Silica._show($node$$, $property$$, $negate$$) ? $node$$.setAttribute("disabled", !0) : $node$$.removeAttribute("disabled"); } } -;function module$exports$compilers$href($ctx_nodes$$, $node$jscomp$10_value$$) { - if (void 0 !== $node$jscomp$10_value$$) { - this.setAttribute("href", $node$jscomp$10_value$$); +;function module$exports$compilers$href($ctx$jscomp$2_nodes$$, $node$jscomp$9_value$$) { + if (void 0 !== $node$jscomp$9_value$$) { + this.setAttribute("href", $node$jscomp$9_value$$); } else { - $ctx_nodes$$ = Silica.query(this, "[data-href]"); - for (var $i$$ = $ctx_nodes$$.length - 1; 0 <= $i$$; --$i$$) { - $node$jscomp$10_value$$ = $ctx_nodes$$[$i$$]; - var $property$$ = $node$jscomp$10_value$$.dataset.href; - Silica.observer.register($node$jscomp$10_value$$, $property$$, module$exports$compilers$href); - $node$jscomp$10_value$$.setAttribute("href", Silica.getValue($node$jscomp$10_value$$, $property$$)); + $ctx$jscomp$2_nodes$$ = Silica.query(this, "[data-href]"); + for (var $i$$ = $ctx$jscomp$2_nodes$$.length - 1; 0 <= $i$$; --$i$$) { + $node$jscomp$9_value$$ = $ctx$jscomp$2_nodes$$[$i$$]; + var $property$$ = $node$jscomp$9_value$$.dataset.href; + Silica.observer.register($node$jscomp$9_value$$, $property$$, module$exports$compilers$href); + $node$jscomp$9_value$$.setAttribute("href", Silica.getValue($node$jscomp$9_value$$, $property$$)); } } Silica._capture_links(this); } -;function module$exports$compilers$style() { - for (var $nodes$$ = Silica.query(this, "[data-style]"), $node$$, $i$$ = $nodes$$.length - 1; 0 <= $i$$; --$i$$) { - $node$$ = $nodes$$[$i$$], $node$$.setAttribute("style", Silica.getValue($node$$, $node$$.dataset.style)); +;function module$exports$compilers$style($ctx$jscomp$3_nodes$$, $node$jscomp$10_value$$) { + if (void 0 !== $node$jscomp$10_value$$) { + this.setAttribute("style", $node$jscomp$10_value$$); + } else { + $ctx$jscomp$3_nodes$$ = Silica.query(this, "[data-style]"); + for (var $i$$ = $ctx$jscomp$3_nodes$$.length - 1; 0 <= $i$$; --$i$$) { + $node$jscomp$10_value$$ = $ctx$jscomp$3_nodes$$[$i$$]; + var $property$$ = $node$jscomp$10_value$$.dataset.style; + Silica.observer.register($node$jscomp$10_value$$, $property$$, module$exports$compilers$style); + $node$jscomp$10_value$$.setAttribute("style", Silica.getValue($node$jscomp$10_value$$, $property$$)); + } } } ;function module$contents$compilers$include_loadCallback($element$$) { @@ -698,13 +752,13 @@ function module$exports$compilers$include() { $node$$ = $nodes$$[$i$$], ($url$$ = Silica.getValue($node$$, $node$$.dataset.include)) && "" !== $url$$ ? module$contents$compilers$include_loadPartial($url$$, $node$$) : ($node$$.removeAttribute("data-sio2-included-url"), module$contents$compilers$include_clearContent($node$$)); } } -;function module$exports$compilers$controller($ctx$jscomp$2_nodes$$, $force$$, $storeWatchers$$) { +;function module$exports$compilers$controller($ctx$jscomp$5_nodes$$, $force$$, $storeWatchers$$) { $force$$ = void 0 === $force$$ ? !1 : $force$$; $storeWatchers$$ = void 0 === $storeWatchers$$ ? !0 : $storeWatchers$$; var $k$$; - $ctx$jscomp$2_nodes$$ = Silica.query(this, "[data-controller]"); - for (var $i$$ = $ctx$jscomp$2_nodes$$.length - 1; 0 <= $i$$; --$i$$) { - var $node$$ = $ctx$jscomp$2_nodes$$[$i$$]; + $ctx$jscomp$5_nodes$$ = Silica.query(this, "[data-controller]"); + for (var $i$$ = $ctx$jscomp$5_nodes$$.length - 1; 0 <= $i$$; --$i$$) { + var $node$$ = $ctx$jscomp$5_nodes$$[$i$$]; if ($force$$ || void 0 === $node$$._rt_ctrl) { var $lastCtrl_v$$ = $node$$._rt_ctrl; delete $node$$._rt_ctrl; @@ -778,15 +832,15 @@ function module$exports$watchers$model($activeElement$$, $elements_value$$) { } ;function module$exports$compilers$model($context$jscomp$1_i$$) { $context$jscomp$1_i$$ = void 0 === $context$jscomp$1_i$$ ? null : $context$jscomp$1_i$$; - var $$jscomp$iter$1_elements$$ = Silica.query(this, "[data-model]"); - $$jscomp$iter$1_elements$$ = $jscomp.makeIterator($$jscomp$iter$1_elements$$); - for (var $$jscomp$key$elm_elm_elm$10$$ = $$jscomp$iter$1_elements$$.next(); !$$jscomp$key$elm_elm_elm$10$$.done; $$jscomp$key$elm_elm_elm$10$$ = $$jscomp$iter$1_elements$$.next()) { - $$jscomp$key$elm_elm_elm$10$$ = $$jscomp$key$elm_elm_elm$10$$.value, Silica.observer.register($$jscomp$key$elm_elm_elm$10$$, $$jscomp$key$elm_elm_elm$10$$.dataset.model, Silica.watchers.Model); + var $$jscomp$iter$3_elements$$ = Silica.query(this, "[data-model]"); + $$jscomp$iter$3_elements$$ = $jscomp.makeIterator($$jscomp$iter$3_elements$$); + for (var $$jscomp$key$elm_elm_elm$12$$ = $$jscomp$iter$3_elements$$.next(); !$$jscomp$key$elm_elm_elm$12$$.done; $$jscomp$key$elm_elm_elm$12$$ = $$jscomp$iter$3_elements$$.next()) { + $$jscomp$key$elm_elm_elm$12$$ = $$jscomp$key$elm_elm_elm$12$$.value, Silica.observer.register($$jscomp$key$elm_elm_elm$12$$, $$jscomp$key$elm_elm_elm$12$$.dataset.model, module$exports$watchers$model); } module$exports$watchers$model.call(this, $context$jscomp$1_i$$, void 0); - $$jscomp$iter$1_elements$$ = Silica.query(this, "input[data-model]", "select[data-model]", "textarea[data-model]", "option[data-model]"); - for ($context$jscomp$1_i$$ = $$jscomp$iter$1_elements$$.length - 1; 0 <= $context$jscomp$1_i$$; $context$jscomp$1_i$$--) { - $$jscomp$key$elm_elm_elm$10$$ = $$jscomp$iter$1_elements$$[$context$jscomp$1_i$$]; + $$jscomp$iter$3_elements$$ = Silica.query(this, "input[data-model]", "select[data-model]", "textarea[data-model]", "option[data-model]"); + for ($context$jscomp$1_i$$ = $$jscomp$iter$3_elements$$.length - 1; 0 <= $context$jscomp$1_i$$; $context$jscomp$1_i$$--) { + $$jscomp$key$elm_elm_elm$12$$ = $$jscomp$iter$3_elements$$[$context$jscomp$1_i$$]; var $change$$ = function $$change$$$() { var $_ref$$, $_ref1$$, $val$$ = this.value, $ctx$$ = Silica.getContext(this), $model$$ = this.dataset.model; "radio" === this.type ? $val$$.match(/[0-9]/) && ($val$$ = parseInt($val$$, 10)) : "checkbox" === this.type && ($val$$ = this.checked); @@ -816,14 +870,14 @@ function module$exports$watchers$model($activeElement$$, $elements_value$$) { } } }; - $$jscomp$key$elm_elm_elm$10$$.onchange = $change$$; - $$jscomp$key$elm_elm_elm$10$$.onkeyup = $change$$; - $$jscomp$key$elm_elm_elm$10$$.onsearch = $change$$; - $$jscomp$key$elm_elm_elm$10$$.hasAttribute("x-webkit-speech") && ($$jscomp$key$elm_elm_elm$10$$.onwebkitspeechchange = $change$$); - $$jscomp$key$elm_elm_elm$10$$.addEventListener("focus", function() { + $$jscomp$key$elm_elm_elm$12$$.onchange = $change$$; + $$jscomp$key$elm_elm_elm$12$$.onkeyup = $change$$; + $$jscomp$key$elm_elm_elm$12$$.onsearch = $change$$; + $$jscomp$key$elm_elm_elm$12$$.hasAttribute("x-webkit-speech") && ($$jscomp$key$elm_elm_elm$12$$.onwebkitspeechchange = $change$$); + $$jscomp$key$elm_elm_elm$12$$.addEventListener("focus", function() { Silica.__activeElement = this; }); - $$jscomp$key$elm_elm_elm$10$$.addEventListener("blur", function() { + $$jscomp$key$elm_elm_elm$12$$.addEventListener("blur", function() { Silica.__activeElement === this && (Silica.__activeElement = null); }); } @@ -844,11 +898,16 @@ function module$exports$watchers$model($activeElement$$, $elements_value$$) { return ""; } } -function module$exports$compilers$src() { - for (var $nodes$$ = Silica.query(this, "[data-src]"), $node$$, $i$$ = $nodes$$.length - 1; 0 <= $i$$; --$i$$) { - $node$$ = $nodes$$[$i$$]; - var $target$$ = Silica.getValue($node$$, $node$$.dataset.src) || module$contents$compilers$src_defaultSrcForNode($node$$); - $node$$.src !== $target$$ && ($node$$.src = $target$$); +function module$exports$compilers$src($ctx$jscomp$7_nodes$$, $node$jscomp$17_value$$) { + if (void 0 !== $node$jscomp$17_value$$) { + this.setAttribute("src", $node$jscomp$17_value$$ || module$contents$compilers$src_defaultSrcForNode(this)); + } else { + $ctx$jscomp$7_nodes$$ = Silica.query(this, "[data-src]"); + for (var $i$$ = $ctx$jscomp$7_nodes$$.length - 1; 0 <= $i$$; --$i$$) { + $node$jscomp$17_value$$ = $ctx$jscomp$7_nodes$$[$i$$]; + var $target$$ = Silica.observer.register($node$jscomp$17_value$$, $node$jscomp$17_value$$.dataset.src, module$exports$compilers$src) || module$contents$compilers$src_defaultSrcForNode($node$jscomp$17_value$$); + $node$jscomp$17_value$$.src !== $target$$ && ($node$jscomp$17_value$$.src = $target$$); + } } } ;function module$exports$compilers$scroll() { @@ -859,19 +918,19 @@ function module$exports$compilers$src() { } } ;function module$exports$compilers$scroll_finished() { - for (var $nodes$$ = Silica.query(this, "[data-scroll-finished]"), $node$$, $$jscomp$loop$31$$ = {}, $i$$ = $nodes$$.length - 1; 0 <= $i$$; $$jscomp$loop$31$$ = {element:$$jscomp$loop$31$$.element}, --$i$$) { + for (var $nodes$$ = Silica.query(this, "[data-scroll-finished]"), $node$$, $$jscomp$loop$33$$ = {}, $i$$ = $nodes$$.length - 1; 0 <= $i$$; $$jscomp$loop$33$$ = {element:$$jscomp$loop$33$$.element}, --$i$$) { $node$$ = $nodes$$[$i$$]; $node$$._rt_live = !0; - $$jscomp$loop$31$$.element = this; + $$jscomp$loop$33$$.element = this; var $onscrollfinished$$ = Silica.debounce(function($element$$, $evt$$) { Silica._call($element$$, $evt$$, "scroll-finished"); }, 50); - $node$$.onscroll = function($$jscomp$loop$31$$) { + $node$$.onscroll = function($$jscomp$loop$33$$) { return function($evt$$) { this.dataset.scroll && Silica._call(this, $evt$$, "scroll"); - $onscrollfinished$$($$jscomp$loop$31$$.element, $evt$$); + $onscrollfinished$$($$jscomp$loop$33$$.element, $evt$$); }; - }($$jscomp$loop$31$$); + }($$jscomp$loop$33$$); } } ;function module$exports$compilers$value() { @@ -879,8 +938,13 @@ function module$exports$compilers$src() { $node$$ = $nodes$$[$i$$], $property$$ = $node$$.dataset.value, $node$$.setAttribute("value", Silica.getValue($node$$, $property$$)); } } -;function module$exports$compilers$generic() { - for (var $nodeList$$ = Silica.query(this, "[data-silica]"), $node$$, $entries$$, $comps_valueKey$$, $attribute$$, $params$$, $paramsKeys$$, $i$$ = $nodeList$$.length - 1; 0 <= $i$$; --$i$$) { +;function module$contents$compilers$generic_createUpdater($attribute$$) { + return function($_$$, $value$$) { + "innerHTML" !== $attribute$$ ? this.setAttribute($attribute$$, $value$$) : this.innerHTML = $value$$; + }; +} +function module$exports$compilers$generic() { + for (var $nodeList$$ = Silica.query(this, "[data-silica]"), $node$$, $entries$$, $comps_valueKey$$, $attribute$$, $i$$ = $nodeList$$.length - 1; 0 <= $i$$; --$i$$) { $node$$ = $nodeList$$[$i$$]; $node$$._silica_generic ? $entries$$ = $node$$._silica_generic : ($entries$$ = $node$$.dataset.silica, $entries$$ = "[" === $entries$$.charAt(0) ? JSON.parse($entries$$) : [$entries$$], $node$$._silica_generic = $entries$$); for (var $j$$ = $entries$$.length - 1; 0 <= $j$$; --$j$$) { @@ -891,16 +955,9 @@ function module$exports$compilers$src() { } $attribute$$ = $comps_valueKey$$[0]; $comps_valueKey$$ = $comps_valueKey$$[1]; - $paramsKeys$$ = $comps_valueKey$$.match("\\((.*)\\)"); - if (null !== $paramsKeys$$) { - $paramsKeys$$.shift(); - $params$$ = []; - for (var $j$11$$ = 0, $length$$ = $paramsKeys$$.length; $j$11$$ < $length$$; $j$11$$++) { - $params$$.push(Silica.getValue($node$$, $paramsKeys$$[$j$11$$])); - } - $comps_valueKey$$ = $comps_valueKey$$.substr(0, $comps_valueKey$$.indexOf("(")); - } - "innerHTML" !== $attribute$$ ? $node$$.setAttribute($attribute$$, Silica.getValue($node$$, $comps_valueKey$$, null, $params$$)) : $node$$.innerHTML = Silica.getValue($node$$, $comps_valueKey$$, null, $params$$); + var $value$$ = Silica.getValue($node$$, $comps_valueKey$$); + "innerHTML" !== $attribute$$ ? $node$$.setAttribute($attribute$$, $value$$) : $node$$.innerHTML = $value$$; + Silica.observer.register($node$$, $comps_valueKey$$, module$contents$compilers$generic_createUpdater($attribute$$)); } } Silica._capture_links(this); @@ -1116,7 +1173,7 @@ module$exports$hax.init = function $module$exports$hax$init$() { return module$contents$hax_concat($e$$, "string" === typeof $k$$ && module$contents$hax_isEnumerable($O$$, $k$$) ? [[$k$$, $O$$[$k$$]]] : []); }, []); }); - Array.prototype.includes || Object.defineProperty(Array.prototype, "includes", {value:function($searchElement$$, $fromIndex_k$jscomp$6_n$$) { + Array.prototype.includes || Object.defineProperty(Array.prototype, "includes", {value:function($searchElement$$, $fromIndex_k$jscomp$7_n$$) { if (null == this) { throw new TypeError('"this" is null or not defined'); } @@ -1124,13 +1181,13 @@ module$exports$hax.init = function $module$exports$hax$init$() { if (0 === $len$$) { return !1; } - $fromIndex_k$jscomp$6_n$$ |= 0; - for ($fromIndex_k$jscomp$6_n$$ = Math.max(0 <= $fromIndex_k$jscomp$6_n$$ ? $fromIndex_k$jscomp$6_n$$ : $len$$ - Math.abs($fromIndex_k$jscomp$6_n$$), 0); $fromIndex_k$jscomp$6_n$$ < $len$$;) { - var $x$$ = $o$$[$fromIndex_k$jscomp$6_n$$], $y$$ = $searchElement$$; + $fromIndex_k$jscomp$7_n$$ |= 0; + for ($fromIndex_k$jscomp$7_n$$ = Math.max(0 <= $fromIndex_k$jscomp$7_n$$ ? $fromIndex_k$jscomp$7_n$$ : $len$$ - Math.abs($fromIndex_k$jscomp$7_n$$), 0); $fromIndex_k$jscomp$7_n$$ < $len$$;) { + var $x$$ = $o$$[$fromIndex_k$jscomp$7_n$$], $y$$ = $searchElement$$; if ($x$$ === $y$$ || "number" === typeof $x$$ && "number" === typeof $y$$ && isNaN($x$$) && isNaN($y$$)) { return !0; } - $fromIndex_k$jscomp$6_n$$++; + $fromIndex_k$jscomp$7_n$$++; } return !1; }}); @@ -1155,12 +1212,12 @@ module$exports$silica$pubsub.Pub = function $module$exports$silica$pubsub$Pub$($ } var $subs$$ = module$contents$silica$pubsub_subscriptions.get($channel$$); $subs$$ && setTimeout(function() { - for (var $$jscomp$loop$32$$ = {}, $$jscomp$iter$2$$ = $jscomp.makeIterator($subs$$), $$jscomp$destructuring$var1_$jscomp$key$$$ = $$jscomp$iter$2$$.next(); !$$jscomp$destructuring$var1_$jscomp$key$$$.done; $$jscomp$loop$32$$ = {value:$$jscomp$loop$32$$.value}, $$jscomp$destructuring$var1_$jscomp$key$$$ = $$jscomp$iter$2$$.next()) { - $$jscomp$destructuring$var1_$jscomp$key$$$ = $jscomp.makeIterator($$jscomp$destructuring$var1_$jscomp$key$$$.value), $$jscomp$destructuring$var1_$jscomp$key$$$.next(), $$jscomp$loop$32$$.value = $$jscomp$destructuring$var1_$jscomp$key$$$.next().value, Silica.enqueue(function($$jscomp$loop$32$$) { + for (var $$jscomp$loop$34$$ = {}, $$jscomp$iter$4$$ = $jscomp.makeIterator($subs$$), $$jscomp$destructuring$var1_$jscomp$key$$$ = $$jscomp$iter$4$$.next(); !$$jscomp$destructuring$var1_$jscomp$key$$$.done; $$jscomp$loop$34$$ = {value:$$jscomp$loop$34$$.value}, $$jscomp$destructuring$var1_$jscomp$key$$$ = $$jscomp$iter$4$$.next()) { + $$jscomp$destructuring$var1_$jscomp$key$$$ = $jscomp.makeIterator($$jscomp$destructuring$var1_$jscomp$key$$$.value), $$jscomp$destructuring$var1_$jscomp$key$$$.next(), $$jscomp$loop$34$$.value = $$jscomp$destructuring$var1_$jscomp$key$$$.next().value, Silica.enqueue(function($$jscomp$loop$34$$) { return function() { - $$jscomp$loop$32$$.value[0].apply(null, $jscomp.arrayFromIterable($$jscomp$restParams$$)); + $$jscomp$loop$34$$.value[0].apply(null, $jscomp.arrayFromIterable($$jscomp$restParams$$)); }; - }($$jscomp$loop$32$$), $$jscomp$loop$32$$.value[1]); + }($$jscomp$loop$34$$), $$jscomp$loop$34$$.value[1]); } }, 0); }; @@ -1178,48 +1235,48 @@ function module$exports$watchers$if() { var $elements$$ = $_ref$$[$k$$]; var $raw$$ = $k$$; ($negate$$ = "!" === $k$$[0]) && ($k$$ = $k$$.substr(1)); - var $$jscomp$loop$33$$ = {}; + var $$jscomp$loop$35$$ = {}; var $i$$ = 0; - for ($_len$$ = $elements$$.length; $i$$ < $_len$$; $$jscomp$loop$33$$ = {subNode:$$jscomp$loop$33$$.subNode}, ++$i$$) { - var $_ref$15_element$$ = $elements$$[$i$$]; - if ($_ref$15_element$$ === this || Silica.isDescendent(this, $_ref$15_element$$)) { - if ($comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$ = Silica._show($_ref$15_element$$, $k$$, $negate$$)) { - if (8 === $_ref$15_element$$.nodeType && ($comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$ = document.createElement("div"), $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$.innerHTML = $_ref$15_element$$.nodeValue, $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$ = Silica.compile($comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$.firstElementChild, !1, Silica.getContext($_ref$15_element$$.parentElement)), - $_ref$15_element$$.parentNode.replaceChild($comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$, $_ref$15_element$$), Silica._ifs[$raw$$][$i$$] = $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$, $_ref$15_element$$ = void 0, null != ($_ref$15_element$$ = Silica.getContext($comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$)) && "function" === typeof $_ref$15_element$$.onLoad && $_ref$15_element$$.el === $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$)) { - $_ref$15_element$$.onLoad(); + for ($_len$$ = $elements$$.length; $i$$ < $_len$$; $$jscomp$loop$35$$ = {subNode:$$jscomp$loop$35$$.subNode}, ++$i$$) { + var $_ref$16_element$$ = $elements$$[$i$$]; + if ($_ref$16_element$$ === this || Silica.isDescendent(this, $_ref$16_element$$)) { + if ($comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$ = Silica._show($_ref$16_element$$, $k$$, $negate$$)) { + if (8 === $_ref$16_element$$.nodeType && ($comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$ = document.createElement("div"), $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$.innerHTML = $_ref$16_element$$.nodeValue, $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$ = Silica.compile($comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$.firstElementChild, !1, Silica.getContext($_ref$16_element$$.parentElement)), + $_ref$16_element$$.parentNode.replaceChild($comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$, $_ref$16_element$$), Silica._ifs[$raw$$][$i$$] = $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$, $_ref$16_element$$ = void 0, null != ($_ref$16_element$$ = Silica.getContext($comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$)) && "function" === typeof $_ref$16_element$$.onLoad && $_ref$16_element$$.el === $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$)) { + $_ref$16_element$$.onLoad(); } } else { - if (8 !== $_ref$15_element$$.nodeType) { - $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$ = Silica.queryWithComments($_ref$15_element$$, "[data-if]"); - $$jscomp$loop$33$$.subNode = void 0; - for (var $$jscomp$loop$34_j$$ = $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$.length - 1; 0 <= $$jscomp$loop$34_j$$; --$$jscomp$loop$34_j$$) { + if (8 !== $_ref$16_element$$.nodeType) { + $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$ = Silica.queryWithComments($_ref$16_element$$, "[data-if]"); + $$jscomp$loop$35$$.subNode = void 0; + for (var $$jscomp$loop$36_j$$ = $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$.length - 1; 0 <= $$jscomp$loop$36_j$$; --$$jscomp$loop$36_j$$) { var $list$$ = void 0, $_ref1$$; - $$jscomp$loop$33$$.subNode = $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$[$$jscomp$loop$34_j$$]; - if (8 !== $$jscomp$loop$33$$.subNode.nodeType || $$jscomp$loop$33$$.subNode.dataset) { - var $j$16_prop$$ = $$jscomp$loop$33$$.subNode.dataset["if"]; + $$jscomp$loop$35$$.subNode = $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$[$$jscomp$loop$36_j$$]; + if (8 !== $$jscomp$loop$35$$.subNode.nodeType || $$jscomp$loop$35$$.subNode.dataset) { + var $j$17_prop$$ = $$jscomp$loop$35$$.subNode.dataset["if"]; } else { - $wrapper$$.innerHTML = $$jscomp$loop$33$$.subNode.data, $j$16_prop$$ = $wrapper$$.firstChild.dataset["if"]; + $wrapper$$.innerHTML = $$jscomp$loop$35$$.subNode.data, $j$17_prop$$ = $wrapper$$.firstChild.dataset["if"]; } - $list$$ = Silica._shws[$j$16_prop$$]; - Silica._shws[$j$16_prop$$] = null != ($_ref1$$ = null != $list$$ ? $list$$.filter(function($$jscomp$loop$33$$) { + $list$$ = Silica._shws[$j$17_prop$$]; + Silica._shws[$j$17_prop$$] = null != ($_ref1$$ = null != $list$$ ? $list$$.filter(function($$jscomp$loop$35$$) { return function($obj$$) { - return !$obj$$ === $$jscomp$loop$33$$.subNode; + return !$obj$$ === $$jscomp$loop$35$$.subNode; }; - }($$jscomp$loop$33$$)) : void 0) ? $_ref1$$ : []; + }($$jscomp$loop$35$$)) : void 0) ? $_ref1$$ : []; } - $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$ = Silica.query($_ref$15_element$$, "[data-controller]"); - $$jscomp$loop$34_j$$ = {}; - for ($j$16_prop$$ = $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$.length - 1; 0 <= $j$16_prop$$; $$jscomp$loop$34_j$$ = {ctrl:$$jscomp$loop$34_j$$.ctrl}, --$j$16_prop$$) { - for ($k$$ in $$jscomp$loop$34_j$$.ctrl = void 0, $$jscomp$loop$33$$.subNode = $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$[$j$16_prop$$], $$jscomp$loop$34_j$$.ctrl = $$jscomp$loop$33$$.subNode._rt_ctrl, null != $$jscomp$loop$34_j$$.ctrl ? $$jscomp$loop$34_j$$.ctrl.constructor.watchers : void 0) { - $list$$ = Silica._watch[$k$$], Silica._watch[$k$$] = null != $list$$ ? $list$$.filter(function($$jscomp$loop$34$$) { + $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$ = Silica.query($_ref$16_element$$, "[data-controller]"); + $$jscomp$loop$36_j$$ = {}; + for ($j$17_prop$$ = $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$.length - 1; 0 <= $j$17_prop$$; $$jscomp$loop$36_j$$ = {ctrl:$$jscomp$loop$36_j$$.ctrl}, --$j$17_prop$$) { + for ($k$$ in $$jscomp$loop$36_j$$.ctrl = void 0, $$jscomp$loop$35$$.subNode = $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$[$j$17_prop$$], $$jscomp$loop$36_j$$.ctrl = $$jscomp$loop$35$$.subNode._rt_ctrl, null != $$jscomp$loop$36_j$$.ctrl ? $$jscomp$loop$36_j$$.ctrl.constructor.watchers : void 0) { + $list$$ = Silica._watch[$k$$], Silica._watch[$k$$] = null != $list$$ ? $list$$.filter(function($$jscomp$loop$36$$) { return function($obj$$) { - return $obj$$[0] !== $$jscomp$loop$34$$.ctrl; + return $obj$$[0] !== $$jscomp$loop$36$$.ctrl; }; - }($$jscomp$loop$34_j$$)) : []; + }($$jscomp$loop$36_j$$)) : []; } } - $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$ = document.createComment($_ref$15_element$$.outerHTML); - $_ref$15_element$$.parentNode.replaceChild($comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$, $_ref$15_element$$); + $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$ = document.createComment($_ref$16_element$$.outerHTML); + $_ref$16_element$$.parentNode.replaceChild($comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$, $_ref$16_element$$); Silica._ifs[$raw$$][$i$$] = $comment$jscomp$1_compiled_isVisible$jscomp$2_subNodes$jscomp$1_temp$$; } } @@ -1228,43 +1285,43 @@ function module$exports$watchers$if() { } } ;function module$exports$watchers$repeat() { - for (var $changed_obj$jscomp$38_oldList_template$$, $child_node$$, $context$jscomp$5_keys$$, $ctx$$, $list$jscomp$4_newList_param$$, $model$$, $_i_countDiff_j$$, $_len$jscomp$1_fragment$jscomp$1_len$$, $_ref$$, $raw$$, $elements$$ = Silica.querySorted(this, "[data-repeat]"), $i$$ = 0, $length$$ = $elements$$.length; $i$$ < $length$$; ++$i$$) { + for (var $changed_obj$jscomp$36_oldList_template$$, $child_node$$, $context$jscomp$5_keys$$, $ctx$$, $list$jscomp$3_newList_param$$, $model$$, $_i_countDiff_j$$, $_len$jscomp$1_fragment$jscomp$1_len$$, $_ref$$, $raw$$, $elements$$ = Silica.querySorted(this, "[data-repeat]"), $i$$ = 0, $length$$ = $elements$$.length; $i$$ < $length$$; ++$i$$) { $raw$$ = $elements$$[$i$$]; $ctx$$ = $raw$$.dataset.repeat.split(/\s+in\s+/); - $list$jscomp$4_newList_param$$ = $ctx$$[1]; + $list$jscomp$3_newList_param$$ = $ctx$$[1]; $model$$ = $ctx$$[0]; $ctx$$ = Silica.getContext($raw$$); var $possiblyNested$$ = !$raw$$.dataset.repeatNotNested; - "undefined" !== typeof($_ref$$ = $list$jscomp$4_newList_param$$.match(/((?:\w|\.)+)(?:\(([\w\.]+)\))*/))[2] ? ($list$jscomp$4_newList_param$$ = $_ref$$[2], $list$jscomp$4_newList_param$$ = Silica.getValue($raw$$.parentNode, $list$jscomp$4_newList_param$$), $list$jscomp$4_newList_param$$ = Silica.getValue($raw$$, $_ref$$[1], null, $list$jscomp$4_newList_param$$)) : $list$jscomp$4_newList_param$$ = Silica.getValue($raw$$, $list$jscomp$4_newList_param$$); - $context$jscomp$5_keys$$ = Silica.hasher(JSON.stringify($list$jscomp$4_newList_param$$, function($key$$, $value$$) { + "undefined" !== typeof($_ref$$ = $list$jscomp$3_newList_param$$.match(/((?:\w|\.)+)(?:\(([\w\.]+)\))*/))[2] ? ($list$jscomp$3_newList_param$$ = $_ref$$[2], $list$jscomp$3_newList_param$$ = Silica.getValue($raw$$.parentNode, $list$jscomp$3_newList_param$$), $list$jscomp$3_newList_param$$ = Silica.getValue($raw$$, $_ref$$[1], null, $list$jscomp$3_newList_param$$)) : $list$jscomp$3_newList_param$$ = Silica.getValue($raw$$, $list$jscomp$3_newList_param$$); + $context$jscomp$5_keys$$ = Silica.hasher(JSON.stringify($list$jscomp$3_newList_param$$, function($key$$, $value$$) { if ($key$$.constructor !== String || "__elm" !== $key$$ && "$ctrl" !== $key$$ && 95 !== $key$$.charCodeAt(0)) { return $value$$; } })); $_ref$$ = $raw$$.childNodes; - if ($changed_obj$jscomp$38_oldList_template$$ = ($changed_obj$jscomp$38_oldList_template$$ = $raw$$._rt_repeat_list) && $list$jscomp$4_newList_param$$ ? $changed_obj$jscomp$38_oldList_template$$ !== $context$jscomp$5_keys$$ : !0) { - if ($raw$$._rt_repeat_list = $list$jscomp$4_newList_param$$ ? $context$jscomp$5_keys$$ : null, $list$jscomp$4_newList_param$$) { - $list$jscomp$4_newList_param$$.constructor === Number && ($list$jscomp$4_newList_param$$ = Array($list$jscomp$4_newList_param$$)); - $changed_obj$jscomp$38_oldList_template$$ = Silica._repeat_templates[module$exports$hax$safari.getDatasetProperty($raw$$, "_rt_repeat_template")]; - if ($list$jscomp$4_newList_param$$.constructor === Object) { - $context$jscomp$5_keys$$ = Object.keys($list$jscomp$4_newList_param$$); - $child_node$$ = $list$jscomp$4_newList_param$$; - $list$jscomp$4_newList_param$$ = []; + if ($changed_obj$jscomp$36_oldList_template$$ = ($changed_obj$jscomp$36_oldList_template$$ = $raw$$._rt_repeat_list) && $list$jscomp$3_newList_param$$ ? $changed_obj$jscomp$36_oldList_template$$ !== $context$jscomp$5_keys$$ : !0) { + if ($raw$$._rt_repeat_list = $list$jscomp$3_newList_param$$ ? $context$jscomp$5_keys$$ : null, $list$jscomp$3_newList_param$$) { + $list$jscomp$3_newList_param$$.constructor === Number && ($list$jscomp$3_newList_param$$ = Array($list$jscomp$3_newList_param$$)); + $changed_obj$jscomp$36_oldList_template$$ = Silica._repeat_templates[module$exports$hax$safari.getDatasetProperty($raw$$, "_rt_repeat_template")]; + if ($list$jscomp$3_newList_param$$.constructor === Object) { + $context$jscomp$5_keys$$ = Object.keys($list$jscomp$3_newList_param$$); + $child_node$$ = $list$jscomp$3_newList_param$$; + $list$jscomp$3_newList_param$$ = []; $_i_countDiff_j$$ = 0; $_len$jscomp$1_fragment$jscomp$1_len$$ = $context$jscomp$5_keys$$.length; for (var $key$jscomp$0$$ = $context$jscomp$5_keys$$[$_i_countDiff_j$$]; $_i_countDiff_j$$ < $_len$jscomp$1_fragment$jscomp$1_len$$; $_i_countDiff_j$$++) { - $key$jscomp$0$$ = $context$jscomp$5_keys$$[$_i_countDiff_j$$], $list$jscomp$4_newList_param$$[$_i_countDiff_j$$] = {key:$key$jscomp$0$$, value:$child_node$$[$key$jscomp$0$$]}; + $key$jscomp$0$$ = $context$jscomp$5_keys$$[$_i_countDiff_j$$], $list$jscomp$3_newList_param$$[$_i_countDiff_j$$] = {key:$key$jscomp$0$$, value:$child_node$$[$key$jscomp$0$$]}; } } - $_i_countDiff_j$$ = $raw$$.childElementCount - $list$jscomp$4_newList_param$$.length; + $_i_countDiff_j$$ = $raw$$.childElementCount - $list$jscomp$3_newList_param$$.length; for ($child_node$$ = void 0; 0 < $_i_countDiff_j$$;) { Silica.removeFromDOM($_ref$$[$_i_countDiff_j$$ - 1]), --$_i_countDiff_j$$; } for ($_len$jscomp$1_fragment$jscomp$1_len$$ = document.createDocumentFragment(); 0 > $_i_countDiff_j$$;) { $context$jscomp$5_keys$$ = {}; - $context$jscomp$5_keys$$[$model$$] = $list$jscomp$4_newList_param$$[$list$jscomp$4_newList_param$$.length + $_i_countDiff_j$$]; + $context$jscomp$5_keys$$[$model$$] = $list$jscomp$3_newList_param$$[$list$jscomp$3_newList_param$$.length + $_i_countDiff_j$$]; $context$jscomp$5_keys$$.$ctrl = $ctx$$; - $child_node$$ = $changed_obj$jscomp$38_oldList_template$$.cloneNode(!0); + $child_node$$ = $changed_obj$jscomp$36_oldList_template$$.cloneNode(!0); $child_node$$._rt_ctx = $context$jscomp$5_keys$$; for ($key$jscomp$0$$ in Silica.compilers) { Silica.compilers[$key$jscomp$0$$].call($child_node$$); @@ -1274,11 +1331,11 @@ function module$exports$watchers$if() { } $_len$jscomp$1_fragment$jscomp$1_len$$.hasChildNodes() && $raw$$.appendChild($_len$jscomp$1_fragment$jscomp$1_len$$); $_i_countDiff_j$$ = 0; - for ($_len$jscomp$1_fragment$jscomp$1_len$$ = $list$jscomp$4_newList_param$$.length; $_i_countDiff_j$$ < $_len$jscomp$1_fragment$jscomp$1_len$$; $_i_countDiff_j$$++) { - $changed_obj$jscomp$38_oldList_template$$ = $list$jscomp$4_newList_param$$[$_i_countDiff_j$$]; + for ($_len$jscomp$1_fragment$jscomp$1_len$$ = $list$jscomp$3_newList_param$$.length; $_i_countDiff_j$$ < $_len$jscomp$1_fragment$jscomp$1_len$$; $_i_countDiff_j$$++) { + $changed_obj$jscomp$36_oldList_template$$ = $list$jscomp$3_newList_param$$[$_i_countDiff_j$$]; $child_node$$ = $_ref$$[$_i_countDiff_j$$]; - var $modelChanged$$ = $model$$ !== $changed_obj$jscomp$38_oldList_template$$; - $child_node$$._rt_ctx ? $child_node$$._rt_ctx[$model$$] = $changed_obj$jscomp$38_oldList_template$$ : ($context$jscomp$5_keys$$ = {}, $context$jscomp$5_keys$$[$model$$] = $changed_obj$jscomp$38_oldList_template$$, $context$jscomp$5_keys$$.$ctrl = $ctx$$, $child_node$$._rt_ctx = $context$jscomp$5_keys$$); + var $modelChanged$$ = $model$$ !== $changed_obj$jscomp$36_oldList_template$$; + $child_node$$._rt_ctx ? $child_node$$._rt_ctx[$model$$] = $changed_obj$jscomp$36_oldList_template$$ : ($context$jscomp$5_keys$$ = {}, $context$jscomp$5_keys$$[$model$$] = $changed_obj$jscomp$36_oldList_template$$, $context$jscomp$5_keys$$.$ctrl = $ctx$$, $child_node$$._rt_ctx = $context$jscomp$5_keys$$); $modelChanged$$ && module$exports$compilers$controller.call($child_node$$, $child_node$$._rt_ctx, !0); $child_node$$._rt_ctx.index = $_i_countDiff_j$$; $possiblyNested$$ && module$exports$watchers$repeat.call($child_node$$); @@ -1292,82 +1349,30 @@ function module$exports$watchers$if() { } } } -;function module$exports$watchers$show() { - var $i$$, $negate$$; - var $elements$$ = Silica.query(this, "[data-show]"); - if (this.dataset.show) { - if (0 === $elements$$.length) { - $elements$$ = [this]; - } else { - var $a_element$$ = []; - for ($i$$ = $elements$$.length - 1; 0 <= $i$$; $i$$--) { - $a_element$$[$i$$] = $elements$$[$i$$]; - } - $elements$$ = $a_element$$; - } - } - for ($i$$ = $elements$$.length - 1; 0 <= $i$$; $i$$--) { - if ($a_element$$ = $elements$$[$i$$], Silica.isInDOM($a_element$$)) { - var $isVisible$jscomp$3_k$$ = $a_element$$.dataset.show; - ($negate$$ = "!" === $isVisible$jscomp$3_k$$[0]) && ($isVisible$jscomp$3_k$$ = $isVisible$jscomp$3_k$$.substr(1)); - ($isVisible$jscomp$3_k$$ = Silica._show($a_element$$, $isVisible$jscomp$3_k$$, $negate$$)) && $a_element$$.classList.contains("hidden") ? $a_element$$.classList.remove("hidden") : $isVisible$jscomp$3_k$$ || $a_element$$.classList.contains("hidden") || $a_element$$.classList.add("hidden"); - } - } -} -;var module$contents$watchers$class_getClassList = null; -module$contents$watchers$class_getClassList = DOMTokenList && DOMTokenList.prototype.values ? function($e$$) { - return $e$$.classList.values(); -} : function($e$$) { - return $e$$.className.split(" "); -}; -function module$contents$watchers$class_updater($element$$) { - var $hardClass_isVisible$jscomp$4_key$$ = $element$$.dataset._rt_hard_klass || "", $klass$$ = Silica.getValue($element$$, $element$$.dataset["class"], null, [$element$$, $element$$.dataset.parameter]) || ""; - if ("" === $klass$$) { - if ($element$$.className === $hardClass_isVisible$jscomp$4_key$$) { - return; - } - $element$$.className = $hardClass_isVisible$jscomp$4_key$$; - } else { - if ($klass$$ instanceof Array || ($klass$$ = [$klass$$]), $element$$.classList.length !== $klass$$.length) { - $element$$.className = $hardClass_isVisible$jscomp$4_key$$, $element$$.classList.add.apply($element$$.classList, $klass$$); - } else { - for (var $$jscomp$iter$4_applied$$ = !1, $$jscomp$iter$3$$ = $jscomp.makeIterator($klass$$), $$jscomp$key$k$$ = $$jscomp$iter$3$$.next(); !$$jscomp$key$k$$.done; $$jscomp$key$k$$ = $$jscomp$iter$3$$.next()) { - if (!$element$$.classList.contains($$jscomp$key$k$$.value)) { - $element$$.className = $hardClass_isVisible$jscomp$4_key$$; - $element$$.classList.add.apply($element$$.classList, $klass$$); - $$jscomp$iter$4_applied$$ = !0; - break; - } - } - if (!$$jscomp$iter$4_applied$$) { - for ($$jscomp$iter$4_applied$$ = $jscomp.makeIterator(module$contents$watchers$class_getClassList($element$$)), $$jscomp$key$k$$ = $$jscomp$iter$4_applied$$.next(); !$$jscomp$key$k$$.done; $$jscomp$key$k$$ = $$jscomp$iter$4_applied$$.next()) { - if (!$klass$$.includes($$jscomp$key$k$$.value)) { - $element$$.className = $hardClass_isVisible$jscomp$4_key$$; - $element$$.classList.add.apply($element$$.classList, $klass$$); - break; - } - } - } - } - } - null != $element$$.dataset.show && ($hardClass_isVisible$jscomp$4_key$$ = $element$$.dataset.show, ($hardClass_isVisible$jscomp$4_key$$ = Silica._show($element$$, $hardClass_isVisible$jscomp$4_key$$, "!" === $hardClass_isVisible$jscomp$4_key$$[0])) && $element$$.classList.contains("hidden") ? $element$$.classList.remove("hidden") : $hardClass_isVisible$jscomp$4_key$$ || $element$$.classList.contains("hidden") || $element$$.classList.add("hidden")); -} -function module$exports$watchers$class() { - var $elements$$ = Silica.query(this, "[data-class]"); - this.dataset["class"] && module$contents$watchers$class_updater(this); - for (var $i$$ = $elements$$.length - 1; 0 <= $i$$; --$i$$) { - module$contents$watchers$class_updater($elements$$[$i$$]); - } -} -;var module$exports$watchers = {_If:module$exports$watchers$if, Repeat:module$exports$watchers$repeat, Show:module$exports$watchers$show, Class:module$exports$watchers$class, Model:module$exports$watchers$model, Disabled:module$exports$compilers$disabled, Href:module$exports$compilers$href, Style:module$exports$compilers$style, Src:module$exports$compilers$src, Generic:module$exports$compilers$generic, Include:module$exports$compilers$include, Value:module$exports$compilers$value}; -var module$exports$watchers$observer = {ValueObserver:function() { +;var module$exports$watchers = {}; +module$exports$watchers._If = module$exports$watchers$if; +module$exports$watchers.Repeat = module$exports$watchers$repeat; +module$exports$watchers.Disabled = module$exports$compilers$disabled; +module$exports$watchers.Include = module$exports$compilers$include; +module$exports$watchers.Value = module$exports$compilers$value; +var module$exports$watchers$observer = {}, module$contents$watchers$observer_IO = null; +"undefined" === typeof window.IntersectionObserver ? (module$contents$watchers$observer_IO = function $module$contents$watchers$observer_IO$() { +}, module$contents$watchers$observer_IO.prototype.observe = function $module$contents$watchers$observer_IO$$observe$($node$$) { + $node$$.__is_visible = !0; +}) : module$contents$watchers$observer_IO = window.IntersectionObserver; +module$exports$watchers$observer.ValueObserver = function $module$exports$watchers$observer$ValueObserver$() { this.mapping = new Map; -}}; + this.visibilityObserver = new module$contents$watchers$observer_IO(function($entries$$) { + $entries$$.forEach(function($entry$$) { + $entry$$.target.__is_visible = $entry$$.isIntersecting; + }); + }); +}; module$exports$watchers$observer.ValueObserver.prototype.clone = function $module$exports$watchers$observer$ValueObserver$$clone$($obj$$) { if (null === $obj$$ || void 0 === $obj$$) { return null; } - if ("object" !== typeof $obj$$) { + if ("object" !== typeof $obj$$ || $obj$$ instanceof Date) { return $obj$$; } var $clone$$ = new $obj$$.constructor, $i$$; @@ -1376,21 +1381,27 @@ module$exports$watchers$observer.ValueObserver.prototype.clone = function $modul } return $clone$$; }; -module$exports$watchers$observer.ValueObserver.prototype.register = function $module$exports$watchers$observer$ValueObserver$$register$($node$$, $property$$, $actor$$) { - var $value$$ = this.clone(Silica.getFilteredValue($node$$, $property$$)), $map$$ = this.mapping.get($node$$); - $map$$ || ($map$$ = new Map, this.mapping.set($node$$, $map$$)); - ($node$$ = $map$$.get($property$$)) ? $node$$.actors.add($actor$$) : ($node$$ = {value:$value$$, actors:new Set([$actor$$])}, $map$$.set($property$$, $node$$)); +module$exports$watchers$observer.ValueObserver.prototype.deregister = function $module$exports$watchers$observer$ValueObserver$$deregister$($map$jscomp$4_node$$, $packet_property$$, $actor$$) { + ($map$jscomp$4_node$$ = this.mapping.get($map$jscomp$4_node$$)) && ($packet_property$$ = $map$jscomp$4_node$$.get($packet_property$$)) && $packet_property$$.actors.delete($actor$$); +}; +module$exports$watchers$observer.ValueObserver.prototype.register = function $module$exports$watchers$observer$ValueObserver$$register$($node$jscomp$38_packet$$, $property$$, $actor$$) { + var $$jscomp$destructuring$var3_paramKeys$$ = $jscomp.makeIterator(Silica.getFilteredValue($node$jscomp$38_packet$$, $property$$)), $filtered$$ = $$jscomp$destructuring$var3_paramKeys$$.next().value, $raw$jscomp$3_value$$ = $$jscomp$destructuring$var3_paramKeys$$.next().value; + $$jscomp$destructuring$var3_paramKeys$$ = $$jscomp$destructuring$var3_paramKeys$$.next().value; + $raw$jscomp$3_value$$ = this.clone($raw$jscomp$3_value$$); + var $map$$ = this.mapping.get($node$jscomp$38_packet$$); + $map$$ || ($map$$ = new Map, this.mapping.set($node$jscomp$38_packet$$, $map$$), this.visibilityObserver.observe($node$jscomp$38_packet$$)); + ($node$jscomp$38_packet$$ = $map$$.get($property$$)) ? $node$jscomp$38_packet$$.actors.add($actor$$) : ($node$jscomp$38_packet$$ = {value:$raw$jscomp$3_value$$, actors:new Set([$actor$$]), params:$$jscomp$destructuring$var3_paramKeys$$}, $map$$.set($property$$, $node$jscomp$38_packet$$)); + return $filtered$$; }; module$exports$watchers$observer.ValueObserver.prototype.applyChanges = function $module$exports$watchers$observer$ValueObserver$$applyChanges$() { var $$jscomp$this$$ = this; this.mapping.forEach(function($map$$, $node$$) { - $map$$.forEach(function($$jscomp$iter$5_packet$$, $newValue$jscomp$1_property$$) { - $newValue$jscomp$1_property$$ = Silica.getFilteredValue($node$$, $newValue$jscomp$1_property$$); - if (!Object.is($$jscomp$iter$5_packet$$.value, $newValue$jscomp$1_property$$)) { - $$jscomp$iter$5_packet$$.value = $$jscomp$this$$.clone($newValue$jscomp$1_property$$); + $node$$.__is_visible && $map$$.forEach(function($$jscomp$iter$5_packet$$, $property$jscomp$16_result$$) { + if (($property$jscomp$16_result$$ = Silica.getFilteredValue($node$$, $property$jscomp$16_result$$, $$jscomp$iter$5_packet$$.value, $$jscomp$iter$5_packet$$.params)) && !Object.is($$jscomp$iter$5_packet$$.value, $property$jscomp$16_result$$[1])) { + $$jscomp$iter$5_packet$$.value = $$jscomp$this$$.clone($property$jscomp$16_result$$[1]); $$jscomp$iter$5_packet$$ = $jscomp.makeIterator($$jscomp$iter$5_packet$$.actors.values()); for (var $$jscomp$key$actor$$ = $$jscomp$iter$5_packet$$.next(); !$$jscomp$key$actor$$.done; $$jscomp$key$actor$$ = $$jscomp$iter$5_packet$$.next()) { - $$jscomp$key$actor$$.value.call($node$$, null, $newValue$jscomp$1_property$$); + $$jscomp$key$actor$$.value.call($node$$, null, $property$jscomp$16_result$$[0]); } } }); @@ -1445,10 +1456,10 @@ window.Silica = {context:window, contextName:"", directives:{}, components:{}, f $element$$ === Silica._appRoot && (Silica._isReady = !0); return $element$$; } -}, cacheTemplates:function $window$Silica$cacheTemplates$($element$jscomp$21_nodes$$) { - $element$jscomp$21_nodes$$ = $element$jscomp$21_nodes$$.querySelectorAll("[data-repeat]"); - for (var $node$$, $hash$$, $context$$, $i$$ = $element$jscomp$21_nodes$$.length - 1; 0 <= $i$$; --$i$$) { - $node$$ = $element$jscomp$21_nodes$$[$i$$], module$exports$hax$safari.hasDatasetProperty($node$$, "_rt_repeat_template") || ($hash$$ = Silica.hasher($node$$.innerHTML), 1 === $node$$.children.length ? Silica._repeat_templates[$hash$$] = $node$$.removeChild($node$$.firstElementChild) : (console.warn("Repeat has multiple children, wrapping with div", $node$$), $context$$ = document.createElement("div"), $context$$.innerHTML = $node$$.innerHTML, Silica._repeat_templates[$hash$$] = $context$$), $node$$.dataset._rt_repeat_template = +}, cacheTemplates:function $window$Silica$cacheTemplates$($element$jscomp$20_nodes$$) { + $element$jscomp$20_nodes$$ = $element$jscomp$20_nodes$$.querySelectorAll("[data-repeat]"); + for (var $node$$, $hash$$, $context$$, $i$$ = $element$jscomp$20_nodes$$.length - 1; 0 <= $i$$; --$i$$) { + $node$$ = $element$jscomp$20_nodes$$[$i$$], module$exports$hax$safari.hasDatasetProperty($node$$, "_rt_repeat_template") || ($hash$$ = Silica.hasher($node$$.innerHTML), 1 === $node$$.children.length ? Silica._repeat_templates[$hash$$] = $node$$.removeChild($node$$.firstElementChild) : (console.warn("Repeat has multiple children, wrapping with div", $node$$), $context$$ = document.createElement("div"), $context$$.innerHTML = $node$$.innerHTML, Silica._repeat_templates[$hash$$] = $context$$), $node$$.dataset._rt_repeat_template = $hash$$, $context$$ = {}, $context$$.$ctrl = Silica.getContext($node$$), Silica._repeat_templates[$hash$$] = Silica.compile(Silica._repeat_templates[$hash$$], !1, $context$$, !0, !1), $node$$.innerHTML = ""); } }, debounce:function $window$Silica$debounce$($func$$, $wait$$, $immediate$$) { @@ -1491,12 +1502,12 @@ window.Silica = {context:window, contextName:"", directives:{}, components:{}, f } return document; }, processQueue:function $window$Silica$processQueue$() { - for (var $$jscomp$loop$35$$ = {}, $i$$ = 0, $len$$ = Silica._queue.length; $i$$ < $len$$; $$jscomp$loop$35$$ = {item:$$jscomp$loop$35$$.item}, $i$$++) { - $$jscomp$loop$35$$.item = Silica._queue[$i$$], Silica.apply(function($$jscomp$loop$35$$) { + for (var $$jscomp$loop$37$$ = {}, $i$$ = 0, $len$$ = Silica._queue.length; $i$$ < $len$$; $$jscomp$loop$37$$ = {item:$$jscomp$loop$37$$.item}, $i$$++) { + $$jscomp$loop$37$$.item = Silica._queue[$i$$], Silica.apply(function($$jscomp$loop$37$$) { return function() { - $$jscomp$loop$35$$.item[0](); + $$jscomp$loop$37$$.item[0](); }; - }($$jscomp$loop$35$$), $$jscomp$loop$35$$.item[1]); + }($$jscomp$loop$37$$), $$jscomp$loop$37$$.item[1]); } Silica._queue = []; }, enqueue:function $window$Silica$enqueue$($func$$, $scope$$) { @@ -1525,8 +1536,8 @@ window.Silica = {context:window, contextName:"", directives:{}, components:{}, f $element$$ === document && ($element$$ = document.documentElement); Silica.isInFlush = !$skipSchedule$$; if (null === $changed$$ && Silica._isReady) { - for ($i$jscomp$53_key$$ in Silica._watch) { - var $funcs$$ = Silica._watch[$i$jscomp$53_key$$]; + for ($i$jscomp$51_key$$ in Silica._watch) { + var $funcs$$ = Silica._watch[$i$jscomp$51_key$$]; for ($changed$$ = $funcs$$.length - 1; 0 <= $changed$$; --$changed$$) { var $func$$ = $funcs$$[$changed$$]; $func$$[1].apply($func$$[0], [$func$$[2], $func$$[3]]); @@ -1536,12 +1547,12 @@ window.Silica = {context:window, contextName:"", directives:{}, components:{}, f for (var $k$$ in $changed$$) { $funcs$$ = $changed$$[$k$$]; if (!0 !== $funcs$$) { - var $i$jscomp$53_key$$ = $funcs$$.length - 1; + var $i$jscomp$51_key$$ = $funcs$$.length - 1; } else { - $funcs$$ = Silica._watch[$k$$], $i$jscomp$53_key$$ = $funcs$$.length - 1; + $funcs$$ = Silica._watch[$k$$], $i$jscomp$51_key$$ = $funcs$$.length - 1; } - for (; 0 <= $i$jscomp$53_key$$; --$i$jscomp$53_key$$) { - $func$$ = $funcs$$[$i$jscomp$53_key$$], $func$$[1].apply($func$$[0], [$func$$[2], $func$$[3]]); + for (; 0 <= $i$jscomp$51_key$$; --$i$jscomp$51_key$$) { + $func$$ = $funcs$$[$i$jscomp$51_key$$], $func$$[1].apply($func$$[0], [$func$$[2], $func$$[3]]); } } } @@ -1616,6 +1627,8 @@ window.Silica = {context:window, contextName:"", directives:{}, components:{}, f return $obj$$; } void 0 === $obj$$.__property_map && ($obj$$.__property_map = {}); + var $negate$$ = "!" === $context$jscomp$9_descriptor$$[0]; + $negate$$ && ($context$jscomp$9_descriptor$$ = $context$jscomp$9_descriptor$$.substr(1)); if ($obj$$.__property_map.hasOwnProperty($context$jscomp$9_descriptor$$)) { var $propertyPath$$ = $obj$$.__property_map[$context$jscomp$9_descriptor$$]; } else { @@ -1627,13 +1640,13 @@ window.Silica = {context:window, contextName:"", directives:{}, components:{}, f if ($obj$$.$ctrl) { $obj$$ = $obj$$.$ctrl; } else { - return null; + return $negate$$ ? !0 : null; } } } for (var $pathLength$$ = $propertyPath$$.length, $i$$ = 0; $i$$ < $pathLength$$; ++$i$$) { if ($context$jscomp$9_descriptor$$ = $obj$$, $obj$$ = $obj$$[$propertyPath$$[$i$$]], "function" === typeof $obj$$ && ($obj$$ = $obj$$.apply($context$jscomp$9_descriptor$$, $params$$)), null === $obj$$ || void 0 === $obj$$) { - return null; + return $negate$$ ? !0 : null; } } return $obj$$; @@ -1665,22 +1678,22 @@ window.Silica = {context:window, contextName:"", directives:{}, components:{}, f $element$$ = $element$$.parentElement; } return !1; -}, setPropByString:function $window$Silica$setPropByString$($ctx$jscomp$6_obj$$, $_i$jscomp$1_propString$$, $value$$) { +}, setPropByString:function $window$Silica$setPropByString$($ctx$jscomp$10_obj$$, $_i$jscomp$1_propString$$, $value$$) { var $_len$$; if (!$_i$jscomp$1_propString$$) { - return $ctx$jscomp$6_obj$$; + return $ctx$jscomp$10_obj$$; } var $paths$$ = $_i$jscomp$1_propString$$.split("."); var $key$$ = $paths$$[$paths$$.length - 1]; - $ctx$jscomp$6_obj$$ = 90 >= $_i$jscomp$1_propString$$.charCodeAt(0) ? window : !$ctx$jscomp$6_obj$$.hasOwnProperty($paths$$[0]) && "function" !== typeof $ctx$jscomp$6_obj$$[$paths$$[0]] && $ctx$jscomp$6_obj$$.$ctrl ? $ctx$jscomp$6_obj$$.$ctrl : $ctx$jscomp$6_obj$$; + $ctx$jscomp$10_obj$$ = 90 >= $_i$jscomp$1_propString$$.charCodeAt(0) ? window : !$ctx$jscomp$10_obj$$.hasOwnProperty($paths$$[0]) && "function" !== typeof $ctx$jscomp$10_obj$$[$paths$$[0]] && $ctx$jscomp$10_obj$$.$ctrl ? $ctx$jscomp$10_obj$$.$ctrl : $ctx$jscomp$10_obj$$; $_i$jscomp$1_propString$$ = 0; for ($_len$$ = $paths$$.length; $_i$jscomp$1_propString$$ < $_len$$; $_i$jscomp$1_propString$$++) { var $hook_prop$$ = $paths$$[$_i$jscomp$1_propString$$]; - $hook_prop$$ !== $key$$ && ($ctx$jscomp$6_obj$$ = "function" === typeof $ctx$jscomp$6_obj$$[$hook_prop$$] ? $ctx$jscomp$6_obj$$[$hook_prop$$].call($ctx$jscomp$6_obj$$) : $ctx$jscomp$6_obj$$[$hook_prop$$]); + $hook_prop$$ !== $key$$ && ($ctx$jscomp$10_obj$$ = "function" === typeof $ctx$jscomp$10_obj$$[$hook_prop$$] ? $ctx$jscomp$10_obj$$[$hook_prop$$].call($ctx$jscomp$10_obj$$) : $ctx$jscomp$10_obj$$[$hook_prop$$]); } - $key$$ = $ctx$jscomp$6_obj$$[$hook_prop$$]; - $ctx$jscomp$6_obj$$[$hook_prop$$] = $value$$; - ($hook_prop$$ = $ctx$jscomp$6_obj$$[$hook_prop$$ + "_changed"]) && $hook_prop$$.call($ctx$jscomp$6_obj$$, $key$$, $value$$); + $key$$ = $ctx$jscomp$10_obj$$[$hook_prop$$]; + $ctx$jscomp$10_obj$$[$hook_prop$$] = $value$$; + ($hook_prop$$ = $ctx$jscomp$10_obj$$[$hook_prop$$ + "_changed"]) && $hook_prop$$.call($ctx$jscomp$10_obj$$, $key$$, $value$$); }, evaluateExpression:function $window$Silica$evaluateExpression$($expr$$, $elm$$, $ctx$$) { $ctx$$ = void 0 === $ctx$$ ? {} : $ctx$$; if ($expr$$) { @@ -1781,15 +1794,15 @@ window.Silica = {context:window, contextName:"", directives:{}, components:{}, f Silica.goTo($path$$); return !$defaultPrevented$$; } -}, _capture_links:function $window$Silica$_capture_links$($element$jscomp$27_nodes$$) { - $element$jscomp$27_nodes$$ = Silica.queryOfType($element$jscomp$27_nodes$$, "a", "[href]", "[data-href]"); - for (var $node$$, $i$$ = $element$jscomp$27_nodes$$.length - 1; 0 <= $i$$; --$i$$) { - $node$$ = $element$jscomp$27_nodes$$[$i$$], $node$$.hostname === window.location.hostname && "_blank" !== $node$$.target && ($node$$.removeEventListener("click", Silica._handle_href, !0), $node$$.addEventListener("click", Silica._handle_href, !0)); +}, _capture_links:function $window$Silica$_capture_links$($element$jscomp$26_nodes$$) { + $element$jscomp$26_nodes$$ = Silica.queryOfType($element$jscomp$26_nodes$$, "a", "[href]", "[data-href]"); + for (var $node$$, $i$$ = $element$jscomp$26_nodes$$.length - 1; 0 <= $i$$; --$i$$) { + $node$$ = $element$jscomp$26_nodes$$[$i$$], $node$$.hostname === window.location.hostname && "_blank" !== $node$$.target && ($node$$.removeEventListener("click", Silica._handle_href, !0), $node$$.addEventListener("click", Silica._handle_href, !0)); } -}, _show:function $window$Silica$_show$($element$jscomp$28_isVisible$$, $expr$$, $negate$$) { - $element$jscomp$28_isVisible$$ = Silica.getValue($element$jscomp$28_isVisible$$, $expr$$, null, [$element$jscomp$28_isVisible$$]); - $negate$$ && ($element$jscomp$28_isVisible$$ = !$element$jscomp$28_isVisible$$); - return $element$jscomp$28_isVisible$$; +}, _show:function $window$Silica$_show$($element$jscomp$27_isVisible$$, $expr$$, $negate$$) { + $element$jscomp$27_isVisible$$ = Silica.getValue($element$jscomp$27_isVisible$$, $expr$$, null, [$element$jscomp$27_isVisible$$]); + $negate$$ && ($element$jscomp$27_isVisible$$ = !$element$jscomp$27_isVisible$$); + return $element$jscomp$27_isVisible$$; }, _call:function $window$Silica$_call$($element$$, $evnt$$, $act$$) { if (Silica.isInDOM($element$$)) { $element$$.dataset.nopreventdefault || $evnt$$.preventDefault(); @@ -1830,17 +1843,25 @@ window.Silica = {context:window, contextName:"", directives:{}, components:{}, f return "undefined" !== typeof $ctx$$[$actionName_idx$$] ? $ctx$$[$actionName_idx$$].apply($ctx$$, [$element$$].concat($jscomp.arrayFromIterable($models$$), [$parameter$$, $evnt$$])) : null != Silica.context[$actionName_idx$$] ? Silica.context[$actionName_idx$$].apply(Silica.ctx, [$element$$].concat($jscomp.arrayFromIterable($models$$), [$parameter$$, $evnt$$])) : console.error("Unknown action '" + $actionName_idx$$ + "' for " + $element$$.outerHTML + " in " + $ctx$$.constructor.name); }, $scope$$); } -}, getFilteredValue:function $window$Silica$getFilteredValue$($raw$jscomp$6_value$$, $propString$$, $context$$, $params$$) { - $context$$ = void 0 === $context$$ ? null : $context$$; - $params$$ = void 0 === $params$$ ? [] : $params$$; - var $filter$$, $filterKey$$; - if (($filterKey$$ = ($filter$$ = ($filter$$ = $raw$jscomp$6_value$$.attributes["data-filter"]) ? $filter$$.value.split(/:(.+)/) : null) ? $filter$$[0] : null) && !Silica.filters[$filterKey$$]) { - throw Error("Unknown filter: '" + $filterKey$$ + "' for element: " + $raw$jscomp$6_value$$.outerHTML); +}, getFilteredValue:function $window$Silica$getFilteredValue$($filterOptions$jscomp$1_raw$$, $propString$jscomp$3_value$$, $elideFilterIf_filter$$, $paramsKeys$$) { + $paramsKeys$$ = (void 0 === $paramsKeys$$ ? null : $paramsKeys$$) || $propString$jscomp$3_value$$.match("\\((.*)\\)"); + var $filterKey$jscomp$1_params$$ = []; + if (null !== $paramsKeys$$) { + $paramsKeys$$.shift(); + for (var $j$$ = 0, $length$$ = $paramsKeys$$.length; $j$$ < $length$$; $j$$++) { + $filterKey$jscomp$1_params$$.push(Silica.getValue($filterOptions$jscomp$1_raw$$, $paramsKeys$$[$j$$])); + } + $propString$jscomp$3_value$$ = $propString$jscomp$3_value$$.substr(0, $propString$jscomp$3_value$$.indexOf("(")); } - var $filterOptions$$ = $filter$$ && 1 < $filter$$.length ? eval($filter$$[1]) : null; - $filter$$ = $filterKey$$ ? Silica.filters[$filterKey$$] : null; - $raw$jscomp$6_value$$ = Silica.getValue($raw$jscomp$6_value$$, $propString$$, $context$$, $params$$); - return $filter$$ && null != $raw$jscomp$6_value$$ ? $filter$$($raw$jscomp$6_value$$, $filterOptions$$) : $raw$jscomp$6_value$$; + $propString$jscomp$3_value$$ = Silica.getValue($filterOptions$jscomp$1_raw$$, $propString$jscomp$3_value$$, null, $filterKey$jscomp$1_params$$); + if ($elideFilterIf_filter$$ && $propString$jscomp$3_value$$ === $elideFilterIf_filter$$) { + return null; + } + if (($filterKey$jscomp$1_params$$ = ($elideFilterIf_filter$$ = ($elideFilterIf_filter$$ = $filterOptions$jscomp$1_raw$$.attributes["data-filter"]) ? $elideFilterIf_filter$$.value.split(/:(.+)/) : null) ? $elideFilterIf_filter$$[0] : null) && !Silica.filters[$filterKey$jscomp$1_params$$]) { + throw Error("Unknown filter: '" + $filterKey$jscomp$1_params$$ + "' for element: " + $filterOptions$jscomp$1_raw$$.outerHTML); + } + $filterOptions$jscomp$1_raw$$ = $elideFilterIf_filter$$ && 1 < $elideFilterIf_filter$$.length ? eval($elideFilterIf_filter$$[1]) : null; + return ($elideFilterIf_filter$$ = $filterKey$jscomp$1_params$$ ? Silica.filters[$filterKey$jscomp$1_params$$] : null) && null != $propString$jscomp$3_value$$ ? [$elideFilterIf_filter$$($propString$jscomp$3_value$$, $filterOptions$jscomp$1_raw$$), $propString$jscomp$3_value$$, $paramsKeys$$] : [$propString$jscomp$3_value$$, $propString$jscomp$3_value$$, $paramsKeys$$]; }, _model_get_val:function $window$Silica$_model_get_val$($raw$jscomp$7_value$$) { var $filter$$, $filterKey$$; if (($filterKey$$ = ($filter$$ = ($filter$$ = $raw$jscomp$7_value$$.attributes["data-filter"]) ? $filter$$.value.split(/:(.+)/) : null) ? $filter$$[0] : null) && !Silica.filters[$filterKey$$]) { @@ -1869,23 +1890,23 @@ window.Silica = {context:window, contextName:"", directives:{}, components:{}, f } return !!$child$$; }, query:function $window$Silica$query$($raw$$, $attributes$$) { - for (var $$jscomp$restParams$$ = [], $$jscomp$restIndex$$ = 1; $$jscomp$restIndex$$ < arguments.length; ++$$jscomp$restIndex$$) { - $$jscomp$restParams$$[$$jscomp$restIndex$$ - 1] = arguments[$$jscomp$restIndex$$]; + for (var $$jscomp$restParams$$ = [], $$jscomp$restIndex$jscomp$3_filtered$$ = 1; $$jscomp$restIndex$jscomp$3_filtered$$ < arguments.length; ++$$jscomp$restIndex$jscomp$3_filtered$$) { + $$jscomp$restParams$$[$$jscomp$restIndex$jscomp$3_filtered$$ - 1] = arguments[$$jscomp$restIndex$jscomp$3_filtered$$]; } $raw$$ == document && ($raw$$ = document.documentElement); - var $attribute$jscomp$1_nodes$$ = $raw$$.querySelectorAll($$jscomp$restParams$$.join(",")); - $$jscomp$restIndex$$ = []; - for (var $i$23_i$$ = $attribute$jscomp$1_nodes$$.length - 1; 0 <= $i$23_i$$; --$i$23_i$$) { - var $node$$ = $attribute$jscomp$1_nodes$$.item($i$23_i$$); - Silica.isInRepeat($raw$$, $node$$) || $$jscomp$restIndex$$.push($node$$); + var $attribute$jscomp$2_nodes$$ = $raw$$.querySelectorAll($$jscomp$restParams$$.join(",")); + $$jscomp$restIndex$jscomp$3_filtered$$ = []; + for (var $i$23_i$$ = $attribute$jscomp$2_nodes$$.length - 1; 0 <= $i$23_i$$; --$i$23_i$$) { + var $node$$ = $attribute$jscomp$2_nodes$$.item($i$23_i$$); + Silica.isInRepeat($raw$$, $node$$) || $$jscomp$restIndex$jscomp$3_filtered$$.push($node$$); } for ($i$23_i$$ = $$jscomp$restParams$$.length - 1; 0 <= $i$23_i$$; --$i$23_i$$) { - if ($attribute$jscomp$1_nodes$$ = $$jscomp$restParams$$[$i$23_i$$], $raw$$.hasAttribute($attribute$jscomp$1_nodes$$.substring(1, $attribute$jscomp$1_nodes$$.length - 1))) { - $$jscomp$restIndex$$.push($raw$$); + if ($attribute$jscomp$2_nodes$$ = $$jscomp$restParams$$[$i$23_i$$], $raw$$.hasAttribute($attribute$jscomp$2_nodes$$.substring(1, $attribute$jscomp$2_nodes$$.length - 1))) { + $$jscomp$restIndex$jscomp$3_filtered$$.push($raw$$); break; } } - return $$jscomp$restIndex$$; + return $$jscomp$restIndex$jscomp$3_filtered$$; }, queryWithComments:function $window$Silica$queryWithComments$($root$$, $attributes$$) { for (var $$jscomp$restParams$$ = [], $$jscomp$restIndex$jscomp$4_filtered$$ = 1; $$jscomp$restIndex$jscomp$4_filtered$$ < arguments.length; ++$$jscomp$restIndex$jscomp$4_filtered$$) { $$jscomp$restParams$$[$$jscomp$restIndex$jscomp$4_filtered$$ - 1] = arguments[$$jscomp$restIndex$jscomp$4_filtered$$]; @@ -1922,11 +1943,11 @@ window.Silica = {context:window, contextName:"", directives:{}, components:{}, f $$jscomp$restParams$$[$$jscomp$restIndex$jscomp$6_filtered$$ - 2] = arguments[$$jscomp$restIndex$jscomp$6_filtered$$]; } $raw$$ == document && ($raw$$ = document.documentElement); - var $attribute$jscomp$2_nodes$$ = $raw$$.getElementsByTagName($type$$); + var $attribute$jscomp$3_nodes$$ = $raw$$.getElementsByTagName($type$$); $$jscomp$restIndex$jscomp$6_filtered$$ = []; if (0 < $$jscomp$restParams$$.length) { - for (var $i$27_i$$ = $attribute$jscomp$2_nodes$$.length - 1; 0 <= $i$27_i$$; --$i$27_i$$) { - for (var $node$$ = $attribute$jscomp$2_nodes$$.item($i$27_i$$), $j$$ = $$jscomp$restParams$$.length - 1; 0 <= $j$$; --$j$$) { + for (var $i$27_i$$ = $attribute$jscomp$3_nodes$$.length - 1; 0 <= $i$27_i$$; --$i$27_i$$) { + for (var $node$$ = $attribute$jscomp$3_nodes$$.item($i$27_i$$), $j$$ = $$jscomp$restParams$$.length - 1; 0 <= $j$$; --$j$$) { if ($node$$.hasAttribute($$jscomp$restParams$$[$j$$].replace(/\[|\]/g, ""))) { $$jscomp$restIndex$jscomp$6_filtered$$.push($node$$); break; @@ -1935,31 +1956,31 @@ window.Silica = {context:window, contextName:"", directives:{}, components:{}, f } if ($raw$$.nodeName === $type$$.toUpperCase()) { for ($i$27_i$$ = $$jscomp$restParams$$.length - 1; 0 <= $i$27_i$$; --$i$27_i$$) { - if ($attribute$jscomp$2_nodes$$ = $$jscomp$restParams$$[$i$27_i$$], $raw$$.hasAttribute($attribute$jscomp$2_nodes$$.substring(1, $attribute$jscomp$2_nodes$$.length - 1))) { + if ($attribute$jscomp$3_nodes$$ = $$jscomp$restParams$$[$i$27_i$$], $raw$$.hasAttribute($attribute$jscomp$3_nodes$$.substring(1, $attribute$jscomp$3_nodes$$.length - 1))) { $$jscomp$restIndex$jscomp$6_filtered$$.push($raw$$); break; } } } } else { - $$jscomp$restIndex$jscomp$6_filtered$$ = $attribute$jscomp$2_nodes$$, $raw$$.tagName === $type$$ && $$jscomp$restIndex$jscomp$6_filtered$$.push($raw$$); + $$jscomp$restIndex$jscomp$6_filtered$$ = $attribute$jscomp$3_nodes$$, $raw$$.tagName === $type$$ && $$jscomp$restIndex$jscomp$6_filtered$$.push($raw$$); } return $$jscomp$restIndex$jscomp$6_filtered$$; }, removeFromDOM:function $window$Silica$removeFromDOM$($e$$) { for (var $removeWatchers$$ = function $$removeWatchers$$$($nodes$$) { - for (var $$jscomp$loop$36$$ = {}, $i$28$$ = $nodes$$.length - 1; 0 <= $i$28$$; $$jscomp$loop$36$$ = {ctrl:$$jscomp$loop$36$$.ctrl}, --$i$28$$) { - var $list$jscomp$5_node$$ = $nodes$$[$i$28$$]; - if ($list$jscomp$5_node$$._rt_ctrl) { - $$jscomp$loop$36$$.ctrl = $list$jscomp$5_node$$._rt_ctrl; - for (var $k$$ in $$jscomp$loop$36$$.ctrl.constructor.watchers) { - $list$jscomp$5_node$$ = Silica._watch[$k$$], Silica._watch[$k$$] = null != $list$jscomp$5_node$$ ? $list$jscomp$5_node$$.filter(function($$jscomp$loop$36$$) { + for (var $$jscomp$loop$38$$ = {}, $i$28$$ = $nodes$$.length - 1; 0 <= $i$28$$; $$jscomp$loop$38$$ = {ctrl:$$jscomp$loop$38$$.ctrl}, --$i$28$$) { + var $list$jscomp$4_node$$ = $nodes$$[$i$28$$]; + if ($list$jscomp$4_node$$._rt_ctrl) { + $$jscomp$loop$38$$.ctrl = $list$jscomp$4_node$$._rt_ctrl; + for (var $k$$ in $$jscomp$loop$38$$.ctrl.constructor.watchers) { + $list$jscomp$4_node$$ = Silica._watch[$k$$], Silica._watch[$k$$] = null != $list$jscomp$4_node$$ ? $list$jscomp$4_node$$.filter(function($$jscomp$loop$38$$) { return function($obj$$) { - return $obj$$[0] !== $$jscomp$loop$36$$.ctrl; + return $obj$$[0] !== $$jscomp$loop$38$$.ctrl; }; - }($$jscomp$loop$36$$)) : [], 0 === Silica._watch[$k$$].length && delete Silica._watch[$k$$]; + }($$jscomp$loop$38$$)) : [], 0 === Silica._watch[$k$$].length && delete Silica._watch[$k$$]; } - if ("function" === typeof $$jscomp$loop$36$$.ctrl.onDestroy) { - $$jscomp$loop$36$$.ctrl.onDestroy(); + if ("function" === typeof $$jscomp$loop$38$$.ctrl.onDestroy) { + $$jscomp$loop$38$$.ctrl.onDestroy(); } } } diff --git a/dist/silica.js.gz b/dist/silica.js.gz index 09d70d48406d3915f66996fec39c5eae3053c4b1..c3525927c8172c58ac692b9c733296780393901f 100644 GIT binary patch literal 24911 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 SnNel_$^RFA*tnBc@&N!RA?ct1 literal 24472 zcmV)IK)k;niwFoYSy)^E19NF?X=7n7YI6YXy=!|LIgTj&J-?!?qbDPcWknZTzD4a# zr_(bz)9K`N(lfiSqR}Hu<+x&5(o~h>coXk$e+d#K!CO^HaZmSqnSC~G6+sXLK@bE% z@X4S5{3!Z!H2RqBUC$53U;bl}EU%)=JYQ!gPo8{8^2?j^_H1?iB)(pD509P*xO-Ly zs{O}udL3u$=`4=eSN`QwoMy>t8FkwG?JoZ^y~!_EY4rRuUbdqDO7@=L-AtF!NFe-= z57*OV0WFL<@NBidOOp?mxeedzbockzKLZZ7NM`Xei=$UB-?86M9_?J*EN3}uw~;r$ z)NWWwmZ!-qubs+*D21Zrg8e%ib;iTls5{{Q!aqIurw{+^!#@Y`4=+80e~#dvV-74T z@;Y5!smp71d9^O9*JLOaFt67|7k00Y7ZImF-m-ccsk5A*rj~n^$!(w$lT{KStYtp(L?&R(N{dV%| zhl9zx7jNG^e(bb!y_(-FSY7eocKmt0O7pCh4Qof4G0tAM78ETPqm4qgHp&>g|tPH^WiwGX7j^)uzx0`|mvY5NA32L&%CO5zW`e zt=VuiKGnju_6l2KOW3-}D%x_jZt~%~8`61}#`#UUjMS%CeS+#~W2e(>->m1;JZ43s zeB5Z>-?!!(g&->*-Zgl~nmDoxhMP%wdzQwmDg~$5?-_(Zt|3wdB5OAk1#D)VUaZmv zmzQDZGEZX!sz9Nvr)HW@~jV@A|v^Il@RZ!L^gxG1-h(>%T7DuoJ0 zGrvq%w>9#mb{Y@U_+K|k8aHaQ^lqK6*!U;<8;)PIEym@3HqB?3tbN&=8I%1Lli9`U z1N+)a`B-GeSTHJTpz@Xo-%qsBCKO|d0!)o${OBlbZ^lN<`(D`+=Q zZ)W)_9S(`$G;>>M@}^R4pH|5{>I@kb$X`hXDB#m_iU4y0B4AQ#_xk@M4%^cfWq^u(?eXFq^ql zqn}=Umz|20NNYMJdpVK@nHWum>XI1W^}o`J07N^Y%E5(1b#ZY{O-Hn z_$#mR^yzBUe+&r7;#Y!zO^x>Ka+*G8>i${Y$eJytDZfk3kdWl0*V%{P4gAnO?tM+Z z`)<&Zzk5et2mQxM^W@;5cRctm`O1oi2Z#OreO0H|+lM;c9<2mO9uN91o<=ep931oq zyNyP-(}Pb>pLRQ6`QHYuKz>u!@9lSZ8%I_f-JaD*sNG8J4slBjL!!q(aZVLBB=edY zszpjADZ13lRb4|dHjEIvyFrT^@}E#6hoF!eJ|GWBudt^U(=7j<8A>mio$z^h+0vHN z?(lL?k7w)hyWxQGkQiB)dxQO!(g=-a%g_#;<_U#W%M|;@R#>VXr3R#{s82mwcHB~><#U%LXSS78r#a4LG?#%QfY&g|M zEgP}nl67ZqaMU?E931x#Tluh&KYe=mHUExr<)FFOJM13z`$vbzPoH+!ir?5{KYIs9 z``zRHfA%_^{eJhTbJ%^HH+Pqe4SQX-BkFe!nIXtv*|hEQsrg;6)7;GgL(DKJl>bZ~ z(_d`GWJr2|q&L`Scn%K$K4w@Bzs3wp_n^6(0G5;y`Oo-qBf&a-R;S+`^bU@Dont6X zpFZvNzNS!zwahRufoq^JTy~@&Ty`0L+$b=5ajVeEcNyvbOdmJmeYvp%-K@=&$x-K=pP*)4E7I>1|e3kIw`Oq|7VIl-yL)Y-Oj;L_c+w?T~E(D`}+sI zgMPmg=(*dWeOBvmu-`p8I(9}p(4m9zZkLUB=cu#atK6djYiFOyOTXLS?^f;7;dpQV z;IMOWeAM@M$nDP&Bku69)9D}VcdL%jF{AAm1bKhIdswwYZ0_#u_d0B$tJs+?%!%XU z&VGkc)~nhdrWSVDyxJdh`h%lhRgq(|u-{>f?smGB`va12&|w4H>m7G0cZv%`e{j%0 z==TEijdv=Bw#by|4h{~F2M65_cIiNL>5z0Og@&m7bOy%qS3u!qe04D{%7$VlV;x@6Ua#4*B{#9?RlMQ4skXDM~9^y0Abzlb&t9SM@$7(6(+Vuu#rC8XT9i@cY!r=e9UZ^BepvD z`yl3bBmMe6N@X+6Gw64i&cZGXL>C6ePJWPqi0O-M)LK4 zh>F_>-Lrq(QTq2l^yAQ&-i`R{|KxIIU^A}|Dp>ZVE2efg&>6nqGXrLy&F;f)weE05 zdc4ngz^ulq-QnVX&^_q&EB2)enuK+}$E5wZVsAiQGZoLQzW%{+wa&mY$EG0LKJ4#T z>bO-xYyTe7`fU%72Yby4J?}V5J?y{BSxMF{p2plrD z9UZc5OvUc7Y20UW#)L-C8oM)evnS6;cGV`XuV5~_!_?gE$s?4Q?D_Qf{xI2<;74Xl z!<{Z{w~P~+j_9;`Jku5IGtX*zgm8IqbJ^z%Xj+eD#()wTIT&8bHF8 z{;K(8lZt*c?f40OZ;$MtX_zOVNRw_YK1(F&daVwS}u>y$=kffDJkVJtb62#&O zKL;DS3~+&jm%p4b_R$$zgu9L{ z`ua8ca)0^=f414b>zEbOZ_nPo{q@z0$&0rKtYD|>6#V>p^7FHIFaQ2x^6J@}GLW|~ z-dP}`V{cN{aGKv~(rCMkN`06c4Tlk)^1S9p!6u3%&Z0AK$z61!&ot}#H2o0g^?EC+ zud$r}n8(>HP1gA;t=F5;mq$^gK%@OIg@{!Sg6ci$}T$HmVzw{-u~CC?_d8kdGpJQA7B0_t56f) zC)wTg`D!t#X~<-mJui}F_>`wdG6raSi z)y*=GnZU5}&Z!<}MXRXYsIS)fL<$)DF2zDs@H2Hc^3>#0u-0USy7}GRQ_=hTM$^al zmkeskB)f!-5-dCpfFApvnN{jkW+;E#34-vkacc2#*%(&{piz?$wI(N(C@VcjEX^@; z+8=Xe;#G?ct8&ZjQ!Dy1TP-h=4>#%bd=a1QbXw7En&j#S*DfcPKsmC&S0ag3&OSEE z_svu9*lan-_lCF|je0Q|5KPgHWAHy{Wja&>76So?gX;fG-d zl+_a=ho62#s)P#BB#dkh`Z`Q1pZUJFXVb;P?AS?Qwo)L2iy~z1IgiZQ%EA&sJ=(6q z-_)K`y2+T8Gbw#!t{jhIA1xou-RRNfvzSO#NH)PJHw%ci!l-+ z>iCGhV`RQaQxIZhP47mvD9NJbDvy}vikDf!M7t)IBQlXBJmVqjCfJ|U7`cqu8khxE zCsD}M#_Td#%%9^rT3=7oc$q(^nw9{VLh6}e4FiD&7mCG;i3X|xRsy7W>Xi=3NiMR? z3^oc4lg2DM<+VID3V9(!na3`PW-l1I4PU#-(#J;lAM~ZBI?fFw4+0G@Y6NzA6bzX_ zcT|zuk1+{(eY=$A)DH^A9IKX>lvC1#iJsYO-i@ZiL#l@ z(M|(Cs%2IX1cprm;!2s(bt*+dRBNwqvP)h^?XFGj!J!H|!c%6nOzj8MnlFm2m7OxG;WLShHvMKM;1Ep}nVAYo+t!Tpc{*KYY&fnfn^Rbq_EUH< zg&#x~?+#%%sSPP%x3>f@h_&h%>0A>gKI>eo0&6<};9{#vR_rfmzmpy|WSv&znDygk zD?-!%{`8TaJ4i2=K-WBGMh+Bc16VhY`vbX;5V6$~^{KfZ(M>dPFQyE4kB#Xiqs$~n zIImT1O^@|zad(j{{LT?sSZ`=Y7Zx2%_!Wr>u`H77^ z)-U|)#CBE&oiJ*#;r=DsP(m#~rG$iH5{?w%I%-9=I2+XXfBLniuT#Io7mFgxuWAR` zv?;M6EqV@0=^=L6R#X^ve7J2UX>(1bS6`bTOwvINv8*?kc+N=v7T+0m8q;3>I;ZB= zL>+rDI?9HoG8w1ZCeRJI0;J0fjpc8|q>r#VL{-tuBAC8uLitXsI1AWs@YSdBEKWYf zWTOR4=|$fSBUbU|ni=nzV<*`g=#h!qQ19*_`lT#P>E?q4TmyEPU(g?B_xi+u<4RD| zZ>x;J6!p$?VLCmiJ{*mGdaOimtZtWo`&PY-hX$FJT{=fW?c+v^4IaM%9^OL#48&R9#I|N8dD{2IN zD#H$0fO}J9ib{oRBJl1B8?}GL)2mn0wV|bcp5|=8utXUTiqIreUCZlrW2e7k*9ALh zM|rrX3rCd1=*j7*Mc#1g69f&m?@``;_xm+(bSMrTELs|)k#O_(n7SO*xs>RCPZck_@6AzNW=wcs^JK3zRAL=-0ofDUE;-OG>B;$Wf3JLdnu;}04@7{< zwwAkf8h;|gK0+9|FT`SSTUh|cG!tcYEc0|X^76tO7i`S|(0!su0990o;V`pj5m7Hz zZC5v2b;)>BN40RzSTlJOWRHlA$w#Gz6izOa`8-~-<$E`JHO(*E>2x_?U8BEI4sh)v zjpP5u(;@v8*vf3*7vlJ6wajb)nCsLLse=fZh`m9zrWt1_Sf?0Wz*6&eCt#%7PT@%8 za7pIiSXVwr@Q50{W4-M*RSal@TF+J52%l{G%S<<}klKP~$a?0wql2_b)Y_G-d=<49whuE5-#>?RI=r0 zZfctrMnQv_O7U9pH99EJ1~O`qQ3izsks9}wkrbX< zR%52HVGFZQw$Y2S$U4;}MOpISF*gD=q@ag<%;ZPbR9erA++lYTo=40++rWJXY!G2Re1jmTI$y7~)z{&s-Ew-%)HhanHCL?r{-v&4% z|3vm44^6Qx@P^7Bpvzaa+-yZ2^fCZM!+F7c5HO>5cTKmY-=5yY^7C1JC{p|T6QZEq zl9CZOu^42#IKg>1_@2eSV!ml^u?@11CQ%vV1ei1;o2VRmFwVzb zTtXO~VGaR8c>x|MHiV(9!2(<$S+G*vEEYtP_V!wANp6}}c2I(5i+GwA3J{0ThHv@O z5s>;y3raDu!A)7|hHPi2ScM6WmQxViyc!!JP zxwk0l8p61NW5)f9x)abL=yJ`$kt~5=6V*W^S)M$5cEC36aL`srI6sMdD5@#Z)oJ8? zDyC9^JUpHB9J~Uh%#wOBWk!4vsR#ps;?u?Ad^)>QQ3ycZv-E=|h@9TajTN8tbX#Re z?jUHh4Q!h&Xq|=Yc?+a%M!G{n3{;mwlrqCCSkyt^2yw0z^4}NBSvG6c=E2e&<``Oq zD%Mp7nH^5}ephKkY6K>89gC*_PL_*g8Bg~66LCW)8j?d=>D=HSMCWDNZhqEO5v6k} zscOYDwU-hnUD&C!O*$hHP)7yWpp`Myz`MG;3!a3RDzI2$%@o#FRic_a$fbJo>xp*n zp6cNQ>j-=369H)=RcmKV_JN4l@fH>|vq|6O^u~Z&A5s|~;w^hByG{Z|e1J5B1X&iV zDTOFT{;K4P1?PyE4?AZ30$D;t5&Zx@BeVsqBJ-w;3?onGClxu^ih%SJ>_98x9XJW8 z0p9S5Z2w;O%e^}CaK!9&Wy2&K{=Q|eg0^O(WjqgpP-FmOX)-d7cnl79s=0-+LRAay z3*#U=Yp@QCl*7kO^&P8Kb3iF=vYND?UGBS0@QumN&}{S6D>S~Q#Jjtnme*? zl^ct4wRmK7uP5Ia!MBJnMEnDPOvOFP5#>UCAPB?M5vm3Yxxf910n2|&_!Ct`Yw_SK zgxDeI(X6b(13S<>SG*k|k z>Nl8%_*JJOXwpSC#>?R59VKicOrE%|6f9)}hn`nH|2xrlh2Wgv!p3;W!S(cWA=obV zrxkTrCktDAilBv1&Q+IK4jtjxr~rXlXN3aRwLvN^X&{mFNk)KM4x~5ys^dCc?MOi> z`iCCT=fQhIP}nZQAE0N!KoAhwbWHKTbUA}=^UEgCUuVmX_zWU^Jom#TgP?vb5Vz>G`;e+hAXnSu^(sre`FQraLb3XVNBV+n zoHa#iQ#eN9szOP_T$5~ao93-`fk7OAz14wk-*#pWX~D?pH^*CcX0CvYTK}Fib9pEc zI5p2Oph%Kx-o>7P8qEH={i=Wf^oWLru3bpWv-Kf&Ds%&$R zE^7Z42kCMUobs+w{#%}>J9G_Ax(d$Qy(HV{@Q~ee{{Fk2x{GPI`KkNcIDeQ^cN@{8 zZ#;FEw)|V1v>w+dFS1V82SumrZ09h+`Omfpfy43;2J5ig2CH;f?%)m`mQz=&b0BVG z2_J~_UUTJRxSl;{*5zKt{L}nw5GAAkt(qJ4!>U}~rGnE!?2+%ZkT=c?DxUk<%?8i? zuu*aDXEBeAm7u^_M9Uj3JQKr)LuX>TQMKxoH&}E?gzW_miF9)Uph|0aY*s=|5sJdI zip|j#A3Y%hHaU6{*&+QW}79!JrJ=b246Q%TI$k8a$1~jj6_&i9snr-7f5nTO! zF6s-;fAVqbQ{cM(5$T*7WASKf9UpD2L+i;RPP6*?;wEj_`GDY=SaB!yZL&ya)Aqk^ z;#3k>8^M{v9#kCHz|I6{nM4Gn6Kfl(H#*T%k-*_J+S{Y)2e3A&C$4)cyzNPvPZrD` zft!CF{du(n3QRc`MRidG{?t##1tILrgbSBE@&Ck~6g8+JbBzdx_@nzrr{(;cLGC7+ z&#nsZcqPHSEBI547eN^LBYdnRi@=Z_(&aTU8I-hXN9ImJw zYjd=4*O<}NkVNS|e2DYE!z{pVcu8tuj12tSY%0om=}!eu^N3q)@ zK4Ku1^9E(6fJY@D8i(SPOi?55P1Tz1kE>+as735Awi;bG;J3243^`R1U1mFW^EN^gmw4X`{wTGIY4592%-Iej*5k zZE;JGJ2u|F`02&-cQrgpB&B?=f;{kR)GvR2^J^g#AEP2gBnY+cC3?ndwp!+pZo(e0 z)lHry^OyI{?j7bup^rzOOhAlfv(UVVxm4)bX>4L?uPcm}?n%o(yP ze#ju%q5<8IGnu^10UZGnsjJ=Le|-TKj*1Xv`icGLHl425=+d08X8gPY6J+3sG-~tY z(+1*Ut|$>{qMa-mpa1&q)lYziccY!h*XspqO!`xV_{O)-A!ny(PuJ(K4e^pzi6MfT z3AF>;BR|WTjc|UG1LvKP261T0AhO9PjS`kMRf{!WXG$}etfJS2~n~P7vq`-AxBz3qT)DmtT$QWxRwbLFbigR zx{zlBVsK#wrK<%K{RRQnH?chk+I2*uEw|?|580w4$r3qRQ98ZIq^XuAtKJWCdT@(H zLL>GW+bGBHPy{nCk#bdlryBaY*Uv%+S5%)?)ezxf5?OQ*1 zm6Aq9>T@xloUE2Vt)}ykP+MRPkH5B}QJ!2>TwVW> zCp_mjx1=Y__yd!wNp^Govp@_%Fwphi3@3})kHa+@(NlBvAaH-jIA_i?9m@!RVNJen zAYZtI=xtweQ5*C4Q%`MsiwLl=Tdz8f5Ujc*Bw5B+cE(My`_-*r@TSPv)#x_Kv`Q}6 zn$8I`XCnQMGjS85B%17UbxU@{O4h2PA`2;u?UC4pxg+QyTP7Ss1$D9+SA*l~WgWIv zxmT^oyVA5p){5_ArU>Hd=(JAPc!l-ZXc|_`2K32Jr_oJ8ju2P-`!(N^aSF^P?uFMIji*+46V+ zY~W0($BSga3@~!2;Sg&w&Urix6TR6`F?INxJK$JxS}SZM&;LBy(|7 zuf)2jrL)3fW$mksKei;hlM=1+E1z|L^=%Wb-zk_%rBlwDbRzD_We;}!)T(`N%|eH? ziAon`&OSQ-wwsBTsf~+|+L^A{j-FenWG+5{K|&^W*aBe ztJ6aWl8w#Kr|IIiIN4B^KgaJH{%s(*#RIv5R8mu)qtTYW!pi^f+WBHx^cea^fwkwR zW$kQrO>Xko^Uhr2h+!uWJw$Q~bOyvNg+f9&_$CQ}g?Q=d+p3-I~jiG?>r6$*U{t8EhgX+1UMa*$@zKpPOVr z4R3Hwl2?=2F3c^X4|0=Hy<~egwn*fkCrfi3kRsPHgY{tlMki+xtc-s%`U4Ht!i{j! z>6VewRw!bCcx=2?L&F*fmdeKzeiAKg<{5+M@c=&-C4NA*r3_c+S)6`~Q#QmO;3z6> z1dv$LR5-|%1KB0WJ52s)iDE*U#>pj(`B^g!4ED$JDwFT+Rx>Q}yTx`#n!M(}B@Du3 zA8$9vKTiw^uTY?mJx7mt8D_FrP3O-sZjW61A^}lMTthA)4StHVTR;;JP{30}!J1^U zYEO`b+;@sy&@CQF`&^Ve-BOo=*QFscs zp^*vwEY7l*;-`7%?lQk#7^85JPCuy2e}yi39zLqUO+UB5t75mdXXL5T27eNf?IGm- zO*N#NRdDFKoa4U2Qx(?7Q*+WIHMS^VDMPrpbFZ6kFY>(gR$4H>oi2EQvHPXc`BOC?4})Q?y<=3J-%rm1LFEitGuFxDMLm=bUrHkj2{1p=2Z) zq)9Ji4ZT2q+x$@YPJMo2@rJ==sxFuP=c}Lon&<0ZVy5M@TrFlCgl|x$^Sdl(Q)zZN zU4F2(DjcfrLeV`-#9s#(N|YS*Er4>9uZT$zsg$i(%Pf8;lA~1^StSn8%C|ApB|%@Z zySEv}W^$wUmlyBA6hn#L=`<~Ra;KGhh4pKI&TmcDzD4p zDN2pZXlBE2sY~doSJ1rY_6(CB$)Ncjs}4-sR3XS?piKf%N!$jk@hbhA-Zij6p5c9f ze3i!kK<}g+1zD~)_gwbnS9$#pfAba4!eiC6OV8j5oD=8!=_BozZ{||>Z7v*? zTLn=25YY_=SHzNKU%wjsK)I2AY1 zFQV(Y{YVZf<@wNJU_qXrcpmIbd>-M$3j>mfjfU8B^jzw03Uzb(Z;46_Sj7~c^O%I@DMGyjuSM1@=S|cioCVQS65baHZlB(0b-11;>B~7Lcah*8MX2DoI#j>hVN#o1fOk3EcHkUE?yppI z#^;IPy9!6}U6BYr6=_C^7!$_Y>??@iGlE7o2q)RVVZFM6>ZDv;IU7&hMCEc#V=u_RcTPWoo3VU z6>x^fb37ovQ5WJWU;``19s_MRvof)BC)MXeU} zSWBI4Y8y))sY1!jgF73L`m2p1ddY2Kl*rQrdRFLf%=IHyQ<6Zx)W$Yq_Y~0vDO{&` zyXq`a?)1sYqFl9XtW}Q|-CTe+Ci7U)&irSO4|t+blkRxbI23EG;Dcb}xcw+lwIHQI zRAQQA!grn82W`0$E7%(-yffj-*Rc?aquwIRTjT{f6Z`QKf3fl$88=?L6FF2H2vH#l ze~P1E4a)^ZZk0mUz1uNEcpW@}%fL1c-;LmH+EJE5RYYE5a3v2Plo!=*l^{2k zFx7~h2klpUWs?V7g{rnqZAG7KwPeUgr)fO3zpvIX z>0C(_>Mby#3I^F#eBLSL|E%vuZZBpdFXk~l@)Acrb<_HnU!CwZwb_L~x;nN?1^}za z6oQBAJj6kIqI5+=%%p~=hA@Z9#Z4KE5k%jpVU4=>Cb1}8Lr`NiYKsgZ!sIi&g6i`7 z%jGjTr*(X;^478E?g@#I{>($0u;c{Ur9B4N3gZVnef|BNOf@XuU`O6b=4)?&d0a>` z#d;`_9M99~x@q}S{JrRgyV3Rb1AQHNdK06?if)X2_0#G$PMG%d9fAN?TzG;cGVy6!i=tCYYxgb*g$G=T>X(3$Lu=XPk5h)x~Q zbEcoJ?9ca)Lci$W#eoF!f9Sm4R@Qi*WqmK&tpJ+gC3(eH%znLeKi8*hUhki+_1CGve|07{^I-AVni|NfGf1A#J zT%~Xzs_)+ddD(3ORtLSPDe@-?+GlJ@i)t@l{iSyD$k0JNRN*AKo_>g*d`K=%&l%ug zzx7LJ@t4;>EH0n@pJ(4cd-?3yvo}wkJh^56eg4;j@1MPR2LJns|I5nx@0ZViVgG%7 zI~>*o&yirey;_+g#OU^R!j;Z`L&r6-Qbqcp%|cQbaZTSAzUpY7QsMxc@DV6dXm&Oz zC1o4U?HQZ_Z^wRK_4hqG5HtkN4n*N*hX-Phw`O1Y1nUxuoD>noGp68pHr$4>Y>J%>4xi)&<=i|zU$OC^cd6(pOwn+= zfNIbc+tui|qJxe#5j`Sj-)!u9E_DU->qX{n2$7d0!!w0c*tQP4JY-33D;}wx8+O>& zl?|o<-+pf;_~PNsf{RH1&f7=Qi{QOQzzYj+5!kmbDl+c_*nWwBCH%>{w&znFyu@N* zj5(q)U&tC=*?+^A|5V~EK{uq#%*daAgU3rP=Kn+=vD=LQKgq}ITvZ{6pCAkPDUzg| z2F6)nC;0xE4W|Qp0lZ}*tBvI8mHgOddxZ2^-sr%N?|;92{d1dpZwPLF2~q!~3zJ0> z#p_&q!VCPm;XrCKe!ZSvda{Skz=EmAFzxEFW;l#`!fLP)c;c0;D6*GJ2A#|!*|GCv zIcJ;Jn#a&VF4v%=P^Mvsf)aYr2{a=T7@v9^Pj*ClLh&db{hbO#SFFNd(}*Dvv>J%jgOLdSRKu!| z=ChHcZ4o9^psYwsBSc0Xg0ZjQmyUqEZQ1c?9Q8g>tx+Rk@Y36=4pQ+rjLJsfCZ?&u z!o75LpU5Aq*wm!AIO&P*x8S6wY7cScZoy-(wpd-EB3&6G`EdKc+gt}i0>(NNZDy)N zjcp9|>(xyb&sVq0t$3+w|Gpa^MMi*~s(dq^s%l#^Hii_8+jEvz{{yg=(^14*4zLAt zdA+T+RWkv;G4x zm7m)MS$ebHf}uC-t=V~d8OPf>n056(08=>~MSSG|TdT4NUU} zA>sr>c6k@&~yZphX&Y8dFXoEC=bEj z89bJ~opR;~MEySig9RZ)92O8;uvk>wp2v`{VQU7n%6|avGAfE#%Zj()E336VQ@7r! z@#??-PECRBJsc;Tl>rT`o9JP}QZ{xJ0NpcYeOfDEby$Sc47T}Y? zMVS1hfE@y$ zMX%*o$m{{VPG(m{y=KJ-g|AeV0OP|*t?1DY{4#Dy1N6pjEBbzMQ$RPwt+k>bA!aTN z#6#*BUwH&o0b_YNgG*-xKc`?Lg}yI5scKb3-mv!E6IExs#eH|`raWD%>m$=izF zfhv9r=2;k&*tl5XIX5=SY6z1AtGrki2$M2F5V&|S_1enT4ex>>^-@;<9wH6t;#C3* z3z^EW#$#T%y~aPnBE|nOqu=!_tp(3bxz*rkk^j?J*K;(8^ zlD`E336lWYEIGv}1726eq)Yn5FGW+HPM2B2IXbkzXu@YVDX3IAr=itKBd#&5)A&=u z*4MX^N(jEHsd8prLB2hm&CzWaD>>lsB$Jm)@sX_#`~y5Z1SkTSby}Tyd_mLHJNF*N z@S7Oq3~E?V!o`J4kb2O5$y9lgXP(5cAqnJBDY7qv)| zEW0FrJ}le7IFb2G#j&gTkgjf{7iM}hUR5MEqjPDOePZ(ozB`i>9_>_jh2_%&va!=D z3fRk0V?u4mN{zzgA;f5=ACz0!yvlrB$6BdDqs|7&^?lstWKawL(1s zFsIej30oe$+N7jvG^9dY3NDEz%o4SVIZ;s^;*CfVT{g0+jA1s;rmUB!7pG}Dy@UMU zJjKE}K3Zk~$jY>vw64?0cNC3(PJFllYL%2U{?xbcLx8?G|F ztvYJ5gR1vW$wnpCxOGR?sEpMeXn7~ipY^W1wX+I9DETf~Y#zYJZxDV6O)YI79lhG< z_^?==PZw=WUn#P9z7bawl6W&y6ss#{PYOHYHztAPR%EOW-`a$;)JV1zZ`Rw!=BYZX zO7Y6Yrs6iB*sTCNqVI`Bgsj|F#84Iiv0}fk>T>$Io=q>NX##CAX8$1WE1(?RY2F)G z!r<}_wO{>D2=MGpfz-HOVE5~YG&QyqRS7gzp#ds>i7&w4WTdo4R3zILLV-Wc;6e>S zSCN?0y|Jmlg}hoh3vmo!3?B#ne@SYoe9qQ_{M-V!X{5Ex}0X)NrAjq zzSHQmf^yb&g{&Dw3zIn{w*h|}E19J6{ALET@JFP(4Ht8S3qyT^U#;jFtS`j$5mh~@ z=>cz&y->=j5_Z(h8oj*r_L5)kFd_ zFfs!Xc9+Xz#b@5iLiyxYG zoNes4=3pTU?J0mK$()%!3+b+5)!@m=M4cKlgSdPWy(coZ(A0q!V3dN5Ik}Qn=3uha zY*V-6a96F_DLggcEQHs?g~#SkHGru_NhT8S@LPg;gsaw{$So;(^P8_DxOT{VU2I3J4zlkuS=UWf`{dy3dd+9>g6k7C^@SQ)mYc&E>jh*LzxtpJV+*bK0c zikOM{d7PRPJ)lYuX}c01*0rXdPSpf zhaw{Wim*bug)s2vLro3{bWMG9mdq=V>>Fi5sb~f;fiKa^WU)}HoI_yrE3(*+ZNzm~ z5bskJrqI0EL}=bPLi7JM$Noc$F@5%04ipNg%Yji@Ga&DQ}mE1oNy`Ce0O6UqxD3^Df z_hBQRBfUUpMg$%{=6^Lz z_UV}tZIjR)6U+RbTb`vF@z-UxiB9C;R4bAr``iMeu z(I7&@h~--rbu@yZjdQji|9g@pY{uxDW{iTLdDOmw&SUl;+^IvbKE4Cb{+#e_75n2h zg|{a}>dMmRg3Xut)N7>|nF<9`&rD&`Uh1wj^U>qGa^w{-4wO!BMfsK7r!^GaV0iCf zvZE`WO9vCFUa2ZFTT54}49|ku#|4uBh|3bjK6#=x=+31yaSIJLrvk`X&9DU=5PLoA z3o@aIsUc>;xUV*F=5!Ax%GYYrVZPg-5-3|WWC~UNd`6P}5NETP88gdV28cNojs2>4 zl=mT|kO&Oie(+H2$f=d`8E82oX|HKro;UQJ$~*p06c^5j)&tE?^UW52*ZwZ^z(4Fz zVC@HDSoB*#5QVQ07d)|N42^hGj~^1ch4Dgq3m%3rsvx|A zV!!Z5oo?Q&>O#%z6ssAh;Rl|WJl-Ax!JZ4enO9%Rx2!M5HKTuyAx@SYB~509(C%`7 z@=@hQdjJjLUPJUW$FC)NzPm2~h*yVYE=f5{LXQ9xGUZ`9IP%dwwh19379>fpXl(s1 z0K=1I-|Gl6CEoyEbYGh`dJxg5mR!^vioMT6aGojy(p<)h+i5v;X*7Hh;mW*(Bztrh zR!&i7XWV8Z+K_`I3>oyY1MV`uU&M)o47afU7jd_&}9)8$Vn_#n0KUq1U#C_Z*i z$;MfI@X-jdS@>#@`4-8@V&464um6g4o(`EQ(|uBdeYy8&JX;KZD=kNwadr!eK)5<% zZx(oA8%jjhYJ$j>5_1a{LPRy?ze6L^Y2`F&kX4{H_W6-kPS9FR&8!@PD_-Rhg*COLJJ#vD^1-L^(y& zC%0Z@Ag^~n$61b#A?$eR{&|%P7*W|DA4(o$EAEec;J9&Tm^?kd!+k`(GjnVtt z_wDg+^L?}V=O@kPs5j>C_m*-89htpxnPf(u(+{KONsGMc8&LPnlUxg;92ZN$Xar7S28LzMD7Y-2C!ZOM$aZMr8WT=WIZE8h+0KTHS~QR%%zet%*1b5#dUbt8)^;Tvf?N z!_9!PO|ZGd9Gn2ZxfiHJ9?q(3ewoPMF90XePRAN7FHxlvo|6=8q|!W~8S;yj3za0; zpZ(0^#e`3~Y$EX>#}Y7l5W2~LN}~c9C(E+YCLv*JYS+jZNK~~ZF#`E;ZN@1P9ci5= zhqVL7iHfk;Dw;;|OxqfzqGQx78$Qzrb}SElyd(jt*dbAPhDfV{;MCR^=pcme6k-`U zgpN-=#6PV_ucxm4kVEus)Rj$EPZii&GkhmjyR8VLO{h$aETHjyv9;_UX{xj3aR`7! zdu0m59#niO*_2xJ--2twZQgoe6=#0RQyM{}#SgDvHPqp&Lpy{)HMyg~!RzTeIVr6m z$<}`D2mJXXR)9F7PV`-Aj|#Mc>Ea1X6qx#h$py(mF>>GkdPv<<9&Pmt+jm0!KAfbtVKF#ml+e zwucb2tyL8fuh=FtQ=cmftsyKWp#%(SDj}n5eDN}}+5D@fdVX8&zmXNXsiH5OKOvQ8 z)Z&XL*ACAGouaPX@d}HzVh_rv-kJZqsh=t{>?CsXI2)=l>{{8b!7x5ct+h7RJf_;R z#zRM973G=q=#>B+t*DBg6i+>IK?-V($m7*;skJ<3#R`xx#$sm}u(>WA(cJC#g;vn(1kG_#SzNMTN2gJ2>oZHJKm!zpTtW6BR?J)08 zuAB}SLn{024@mUm(=m$S_WUJIBx6*B#0;&Q8bNjbN@koL%zWB!o_iP+K5W$UX|l{3 zwaa8akC!!mF6@UD^O!)M1o;d>4V4=V15f934R>m41Ycr4r42X=NV)V};=*G)HxEy7 z9VTb*R#)+o|72{WzsV(6yjFc?-rhB?fYoE8Yk2J%;)WR?t5k!V`10AzsOAqi4)yA0 z%|sotzv&61RpsS0o%24s$4vW^EA@bIb_dWT?h}NxDBUSJd%IIzTPH+3mWR*9m0^{0<}5yfkxTH#Ty~MVl5<1?=t8{ ztMMy7`x8K!$m680eI=@2aL+=vN9q9mSDu?heecaDgtqTDl_Rm^t#`Z(Q)q zRryB8e1l~}J56nV^ix!x6bm%@`sAhaL_O7_6#ZT-F~h<$Z7lm9@O*Zv#&hP5=ouBLNC*!1KCh{5w%D=c&Ogyj%#rIRPf=Vu8)Xa2EiClPX8stSS z{#i6asevUJUCq3=8D9c*&rc{4nIHkV(27Kr6Cmp?!#tAp#?5<4iJ;D4D|XU*0lvBj za2rne<+E=R1B$3l7jkJ|IL{Rr+-I}x#dLN_Vybz+bwB0Q6YOxo4a53ivYyVa;v79> zx13ge&_#w$Z;p$=3@=AWJPX^AHZM2nG4LhHf@I754#h|fw{IaPy7jg^&IM=hL{R$oVOY_(7psgjkQjra=N-ZGA1MkLkXDhk*2c$^ zO*}lUMHI$n6Iax!o2jeFQyLYO2q!R@2`uuy5G0daft2MJc~Ga3Y2T0`fTozbq#H;u}@* zC-1TN(+;u|Uz6;Ycsjp30k0J7-G5oFa*3L!sLxIyC(;D%z~@Xw#iHg6pTfgPBBkwF z5l`L1>m`t^e!XH1vXOi<&DpQz$&>eA-hXMd|9sYbfB*jeNh`X^;x{+hrAX%t`K{&n z1PyRYTp$?@`<1aqPHLU@pwsT`O&9CSDPwY`!o5$lNQn`ti=nD(kh(gorfF&A3m5V` zIV0AY{V5Ow5G{;MxG_(U%bNQ|j9~#m0)o*ahTEI8#aV#l!6mQ4BfhXQ6ry;pmLN>x zINg|LNCGXd2VZCqo)S;K9h`jzCE`B~Bw(?cadF^5)aHu=qz_akxKBipzh12~=LsxD zyexfK(tSjoMRteQ)BF-1KVjBUd0$1Uf5D~Z0q}}bZ0^(=}p8%gwI*~8}(VL zAcZ5#8)_#r&_$34SLJX#qlaQNj#K`D3scMFF!{l@P+#tw23s8f?@Ng06*(D92utHT zxw;0y^onSmD^fW_@xYp90Ch=#BOQCTU7yG!MfAh+ePc~OM*zhV?^z%&vOabk<8a7H z2S5|8@w+O>$^X=9Jb6{EJatMN8>-o7YU8$CE{}yz&f(AyviFi#8HJ6T;d~ zZhUleGIe8!L0Ib;U_|-gTGi`L@U3gqE5UL)shmRhg-rVNluDPe7K zbb;}<_|3^n#N8_3x?3&aWzuxns9^{kLl|A(Eb?T%h$Bf!E8^)Xz)59f<%~7@2 zfp4UXly$XQQz?ace7<6eAZ&z40DSUFl<9Q-tqR3-^A|tC%J)!)Un66Lr z64R@Rq_`2uEDJqjTmGL{c$b$n3d(TDY%hvti+GyKtgyOJYFG7v;VMcWYk^9~I4__i zz`>mH0Fj zwg&r-jp^%50XUliD=^*iu((JZADK7NcA#;#>(qG;@hYT~w&%c?C0k+W$~cn9><4Pa zdwBEjUxg!y<^)WG;SIPP4 zZ}H5{$Q3`s9jLw&ccAu9FOP3tEu<|2tR_p+Ld^6xD8J5m@t)jSd ze+?COd;iGs&?v_r50I?l`J=N{cV+1GMD|(-^33S9KFbYcJbc0QsJtZDpV;0xar)+& zGscXTIocdd)&(jm7ZQud;i5$X+%D=D)zjA8MO-5dOfH`y9MiyZ4&#T;7+iMvgJ&7S zzx!i-EsiY1^dNyaG*NAN=p>xd#in-Qs;wig2q3i6Pj`U)?2{DRw+F)mCNk}9+yEU^ z?Ip8tpwGW|WcjmYa?MZTeuOJYE~n%q1?R|oo zy{FO~+q9C46?uARPIg5zE)>xW(1Ef~Q;!YmL*3;;7TkXt^H&kEF6Dyp2;vOmyJ(&c zX;Jk$lTYOe-Djm~6(MkFdq}lM3L|=376$nEkZT1A5YE~qUS;?=xk%WsJSSc8W@9kN z$28kWo&^WpQ}6J4AnmjYls~SW=u|gy9*Emyk^`6??|u9IpX*QDdm%oqq8CFoZ|3jt zC63mxOa}tB9+4-V;A-TUo1Q9V)N4#j7WSI1eS8sX>JPnHb#EnhK1c$6((wP^)xCZ!%ei5nI_?gaT zZML%&Rdx7WZ8HCCF0h8K5lxQ-6y~jsZPwm5o7TV;@p=oPePsXTh_QHdrDU!PS#zO^ zrQQSI3*f0F`!Xm_3w^6l$UkYZ_AW*LzhHX>TN{iX39l;MAlc#3F>%t}idVQ@f#JA4 zt5~;KA~ssRJUFT>VNuyC5Ln9m1{2PV&{Xo(=!a_b$E`vg;uGZ(Z9M}_=umv@!M|XBR z6Pdxz)SBw25<1B=1NPYa3OEK_#qK}7Co zm2ZL6R99>2)YacSSZPv}(CYLKlVel3j*tQoH|K(qcs|!u$Wd^zDTq2|Gn80}OBNNn zEI&1MoA_vkw5WMSun;vNU7To3BMM;%d$66Fx&%y3-Z!2uuApbUyzV5&!tQtyjhKDl zhkCkjB3=ico81pp9u}Otm9WE?Ew36&vWjMC=9r-%O(cB)?WF%r{Jj|f| zZ*^@^geu#HrrWZzI_08_r(7Y7#QHjw)znE7)*s0~$gW^4)VtF@tA^S**kVvK?|ASz z2Ck$Dvka2eoaQ%h5sgUAu}b@CHCC68X$8wpLQD_#S9;9tH;0IYc7+ttlV>3GT6<$0m$S6YGFA{i9&k*2{|$=dvmR zk+vuw8V{K?Y*v@lk9MP)^b*yC2-D(VpIedhu8W9Gf?r?@d|sz<#xJP`!;~CQQ19#q zo+MuD7pKtVleU^+s-a=_=zIwXZeI94ZPT z4T4(gE8im$oLCMg&`grA8$98kRhdnAEL1VuBtNjo%5-f7f;dq)0EX-slJI_UBNuGY zhQ#8()`brl378$tNRhY-l99&?%uOYJ5cdskq zUYq(^Bah@wOM1IgCnpJ7UubKgaNrQAF*L`!VGOSPTfXCU(rE8CpNIq^vJ4{3)T1_X z2n_UHP@oExx?uy;K{p3sfEthPRl_4~`g#stqaR^`q{JYwp;MRGlk9{}X1cBu1;g)n zkc)j`lTE|a%WwbT1mF64=*Cx3(IAnpe(7aMktTS^v3n!1#HI%->sV#dO(+n_M%r)x z`uZP}cQ5|)9eozd%#1=~9Xxpi+IgI*J3oA@)O0LQ(%_FTe|q=gm&vo|&tJTGNA~di z3XfX+^({E;e1|XT))&)og(ztLvPJXMa1j--G8#HK#b!@h?L$Muh7sY(cmbQ5P2zWQ z6>nEL)cE-6GEsJzQod1FR=UIwN41NRC}7Or^|@n zZshsdhJWH0(!Jnph5yrcUm$PM{r%G?Q1QDOK2;Fxf2b$My7oY{2~g1l!iFgGbwx2X zI4r*J@@dgV4bjz9gt%*$5VOP*WU9^dfq2PeD3EYMm0+3>Vb*U>p|>mM{b42aA?FNm zO?hXO#bbJB0_2@;J>NAnK2D(4_VDWjMSMz@8SDJ_F{34xqeGr8cL&O3QsD^LmscGm z)@4d99G*l9`d;L8J{Q_K98D)7>iW?{&wV?!$cwN?85M~hS%%~XnQEt~B?UwpBYt3P zOK0t&%^CjRvV=1qXu=urk;%ACar*hiSdB<7Kb}QKjSiTLV%MSH(Zs^T38_V1pT*+- zgkRR5Yh3y?o2Pk-=NXUvpRA`z`VztdPEEIvO|*QF#94uZkW~1JP}0MZ5}fJ6MtUsl zcn4nkgu(XgSAaRH0JGU$bsJSHs_AE9YQ&N$8~=@+z$Gn9ga8qG&UNRbKEB2{wZlO@< zbr3gxR1g=?Vbz=S#QJy_X}C7xD{u)b9oOL|^o_i&j`<0I+wvyz%J-YI*w4dO)U_gR z#s8e7{H8MU|E9mZPpW!(wP1!|WWE+r#MDwnNYIq5w42RhbCy(G7(9I`ThH)XlxK1n zS9j=lh>vS}tH_JEpY8o$J|k*2rzZ%VPR%U zaSbkw=?Cu56UQLDK9s!CB@J^EzP>qc)ZQkqdwYNV<;9OR*{TTyxg`~c4A1tChkUhT zH`A(x$JYS!q&GV(NpE&Y(wot@GG1T6cB=p%+s#1M*V+i=WL#6vYKWhqbZ3FgW`_@! z+3e8HY$pBImu#4q@-Z(bJ*F(=SN6{r)8!QkE!NJbDVrU*QKFf~Uckt~(oqjxZo~CCypKn-KyL0$UGGUp3QjaJck(XQa8AFRa1n3tLqn>YrSG6Jg)iy7@ zSW5I8i^eVV5J@}55Hv8V81fY7-eOTSmYGqVP-$M<^{l1RB(vx?t2*6^hR!Ez-F6?`aw_FPFmVak{QJV7C&eN^&=qU9a| z=-w%rQ*oVyrLWf@HQBd^eu>Z~Cj#wnW(spJ4=4s-4@ypnHWgxO-P0Z`SHG7ABP=b@ zy2Vl+rRD<_+Xk+G;Eh=L9Ns?|U}oEg5+U)?{1!9i@c-2_Schm zIk?PiG*J#qC(2>XIG`A7+a;>K+$dR*sns zy)5F424cLK%7ot{cO}0wW-zD`zElR1(Zmch0z@QDQ7Dl`l+qn__YElKp4K3#yi|%l z>_wHTc4vZ|Xen#@jkd}7#Gqv_Vc*P)x~Kk0k0ie= zT{s;`x&%C&4#5xm7$A*jZ+@-fgRQJ*Je4=rJU#-d=ps)&t(~g!gdVFIP7ZKWh>@w{ z-SG7l6QR)%jygb(`ew@MfUaB>=`GMV zf`|a<0Y<&y=;r&FyteH2nU*k%)@HS~ds9pO-& zy3)aHd3BbD{9P{4AN?KqXdeG?QdhZ36I+$mk2JL|)+cA0(ro0``2+Qz-}MkJwKgME zF9^+Y8!L=VYcvrHQ>@Vh4B4&0;mvPjat+Km+$)mT!MB)Pg9k9V2Byi?tE$lkUX$zL zH-tTRL--+9Z*6~n_ip+DPJtRYo+TP=V6R8gP0P=v3ycp}p(GH?6xurWinor3bXRpq z*CxNpD!{LHkOGZgD;4bVJ|ZDTk}uO~WZFAnt4m!_eDZ$u_5JwC2Y70^S=llgJd9;T zB0`11`LhfvLlJ4`t6$e^H)=&~lMgrFCKnB8Xsg_-v{gRbXsg_-x>fcG=r;|Oxq+@` z!y1_wtIpYiz9=r`LMhNu=YGKLI#kKl9@s0B2tNcntSEPt0afRzitRN>fEZ6yYiv$w zUCbJCuOswMmv~kU-|6ZdX>V>&%8xvcb0HQ8#jqdef``%IJ8MBqj3XyCE|^1lZ8x3D zat0h(51n``dG1I$?{Gz|TKp)DPy%`9z?w~gzIq>1@!t+m$3R|GXMtV` zxeUH)HgGS+*l(NJIUp@K%wgHVgxP)$nGtgLMo5y6BsiG?Gpl2~N=>gs=*+<)Uz-oe zRX>Hd9s+~ATK>SMd%C&{=*JLv_@)CU+)&}x+n$J#vkw!8)l%pYdfV12 zYFNg4U!_O)T@bcEHylO9bzSgTZheDtT;nO%H>;i{tKOcvpB_Rns>kY$b&gJE{!{mu z>N=1dpI?Ik=P$UQSeK1eK`W99zy^`une=0TJBqBnS(>@Gm^CXhyB@u&uT=^C>Zu{3 zlMHb2$$`a;-}I*qgT0RISEOw?`L44DlwVxP3rZdTX~SILGe`8N1LHgz?0Q^vnO)n8 zundM?dg^fpryCdGfi&X8j2cFXQ*-rhMWER)8-h;@%YEd95xZjV)epKREhEPlg8@og@ia`$|- zYtY9t-MP{5K(QsUX=B0Aag6{!IIZ2ByZR*)mMAM@dxrL#n{$T)<+a|rwQiOb>ir5p vc1^sEp?iZLY&dw1o(_xnZ9~boG&P+3a{B1ey~trGQ^oz?2=A4hM&=arguments.length)return a[c];var b;a:{for(b=a;b;){var f=Reflect.getOwnPropertyDescriptor(b,c);if(f){b=f;break a}b=Reflect.getPrototypeOf(b)}b=void 0}if(b)return b.get?b.get.call(d):b.value}});G("Object.getOwnPropertySymbols",function(a){return a?a:function(){return[]}}); -G("Reflect.ownKeys",function(a){return a?a:function(a){var b=[],d=Object.getOwnPropertyNames(a);a=Object.getOwnPropertySymbols(a);for(var e=0;ec&&(c=Math.max(c+e,0));c=arguments.length)return a[c];var b;a:{for(b=a;b;){var f=Reflect.getOwnPropertyDescriptor(b,c);if(f){b=f;break a}b=Reflect.getPrototypeOf(b)}b=void 0}if(b)return b.get?b.get.call(d):b.value}});F("Object.getOwnPropertySymbols",function(a){return a?a:function(){return[]}}); +F("Reflect.ownKeys",function(a){return a?a:function(a){var b=[],d=Object.getOwnPropertyNames(a);a=Object.getOwnPropertySymbols(a);for(var e=0;ec&&(c=Math.max(c+e,0));cg;){c={};c[f]=e[e.length+g];c.m=d;b=a.cloneNode(!0);b.o=c;for(q in Silica.D)Silica.D[q].call(b);k.appendChild(b);++g}k.hasChildNodes()&&h.appendChild(k); -g=0;for(k=e.length;gg;){c={};c[f]=e[e.length+g];c.m=d;b=a.cloneNode(!0);b.o=c;for(q in Silica.C)Silica.C[q].call(b);k.appendChild(b);++g}k.hasChildNodes()&&h.appendChild(k); +g=0;for(k=e.length;g>>0;if(0===d)return!1;b|=0;for(b=Math.max(0<=b?b:d-Math.abs(b),0);b=b.charCodeAt(0)?window:Silica.getContext(a));if(8!==a.nodeType)a=a.dataset.parameter;else{var e=document.createElement("div");e.innerHTML=a.data;a=X(e.firstElementChild||e,"parameter")}a&&d.push(a);return Silica.B(c,b,d)},Z:function(a,b){for(;a;){if(a.parentElement===b)return!0;a=a.parentElement}return!1},aa:function(a){for(;null!=a.parentElement&&!a.Ca;){if(a.parentElement==document.documentElement)return!0; -a=a.parentElement}return!1},N:function(a,b,c){var d;if(!b)return a;var e=b.split(".");var f=e[e.length-1];90>=b.charCodeAt(0)?d=window:!a.hasOwnProperty(e[0])&&"function"!==typeof a[e[0]]&&a.m?d=a.m:d=a;a=0;for(b=e.length;a=a.charCodeAt(0)&&(c=window);var e=Silica.B(c,a);d&&(a=(d=d.split(/:(.+)/))?d[0]:null,b=d&&1{{val}}":(g=g[1].trim(),k="{{val}}");k=k.replace("{{val}}",Silica.Ia(e,f,b));d=d.replace("{{"+e+"}}",k)}e=document.createElement("span");e.innerHTML=d;for(d=f.parentNode;0=b.charCodeAt(0)?window:Silica.getContext(a));if(8!==a.nodeType)a=a.dataset.parameter;else{var e=document.createElement("div");e.innerHTML=a.data;a=V(e.firstElementChild||e,"parameter")}a&&d.push(a);return Silica.A(c,b,d)},ea:function(a,b){for(;a;){if(a.parentElement===b)return!0;a=a.parentElement}return!1},ua:function(a){for(;null!=a.parentElement&& +!a.Ba;){if(a.parentElement==document.documentElement)return!0;a=a.parentElement}return!1},R:function(a,b,c){var d;if(!b)return a;var e=b.split(".");var f=e[e.length-1];90>=b.charCodeAt(0)?d=window:!a.hasOwnProperty(e[0])&&"function"!==typeof a[e[0]]&&a.m?d=a.m:d=a;a=0;for(b=e.length;a=a.charCodeAt(0)&&(c=window);var e=Silica.A(c,a);d&&(a=(d=d.split(/:(.+)/))?d[0]:null,b=d&&1{{val}}":(g=g[1].trim(),k="{{val}}");k=k.replace("{{val}}",Silica.Ha(e,f,b));d=d.replace("{{"+e+"}}",k)}e=document.createElement("span");e.innerHTML=d;for(d=f.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 Q(9Z4u1GQ6*xrDp`075zh?EnA( literal 15322 zcmV<0J0-*)iwFoaSy)^E19NF?X=7n7ZE0>UYI6Y1eQ9^wII`$>{|cLTj)rW}igwGQ z8BNyibZ46+y(;P)kc1?*wKx=&r7g{Ge^rHrAVt}7?!5C}_lZn`09XYS3bmnl@4N4g zj=wt|{lv2qjo~+{K;<#RG*BVs9*6DPa96y@!g?s#aeER6?nk|lpqQiep<}9A!8%9() zTwZ-m;>k2E)^FAu?Nj*aQngte^2LfDzj*cz?(ZF)jMs}Wh4!$y~W@u!JDE&OTYPX~YK=^6g?@aLQ=i-y#uL5&*JszJ>f(5~*L z(|A=2X3Ow$<%jZaJs$I<=f@tO0cZfk!nyv$lH|CKFzXEK?k)e1#4D$DU;J&zzfJkKCH}5bmZah`_?q&SLUtT4 z*ew2=N3uFwP2u{ap`IqI)IX_j5n=9I%iu2#6XW~o*DJmpA73TQkgryiioB>v3Mwh7 zEtV1Yc%@>e{$#cc*v#>;*VvuKfWwf3_Tk*HXzg#Vo zbmgvmOOZ%cH{yU3)D?egY#zCb-8ZZk;(279sD{Q=x?|s}H=3<>r+d~rXF&*+t=j5p z7N@plIWF^ognDkPdDiW@y;iT+t@qs1W}|)9?zOt@-pF0z)b-p(*KM{(?%E$(Q~t$r zEru_FzfnBls}wE-t*9sB_14G@{o%;Vi0!JB*y19ET{+OONLN=5P2X4FTxSVS*U92o z7ja#L%@g~i?$p*-5lcBd8m1%L*>2q^>q3B)`d@8A%#kxYgT8^vYhl8nsaf6ZeG4^2 z=UI(JS5d8P4FRkSZ@f%wq8GpJ#TV<^j4vkX)T>rw0m{^04`Wyi!|4csnmSw6+t!`s z-a@48#$K9yC6;0mhLcW{VD= zq^5$f!uO`hI!u>|?;C{Uq(!1h9nIQ4E#v68?gJEZd=(VPfW6xx!k%L!fjmT8)pP|{ zHQ)^C645N90RZA8&zR(l`D%#tdQFh#l02em%|I0>GTG(9PDV=Z)I~-(_7jQjW>bf? zZ7^V1xh6;V#`jmA*oiW3iG-i$oeVcAhMSa2zj%#5P5f!$PaA(a_(M<6@TZ4A=TuoV zr#200)Sy-kYDQa?<8p`C10pjucsznwsdU@-ac!)e^>A9Pj{Ib}8i`rHr9K-@@855Z zHq_$cVmWM8umfZByQKqI8ntlBl1ISqAEfrmae-6bj|UQvxZkX|@!pmNjq~OvzJI^# zs{3Yd(`{8^r{C!`&%5{I4LtTcXRUTyw`n%p*rw4m8(}AvZfmz6JNCPsPODqB?MA(c zMHd&1`i8D^up;=5YTs4&x&JSVH=8c!7{ z+0)Wd&06Sz-QS@^_YQBo-5Co-XASZnBr*0-WRsHE{ zHlObFzTbs0G=!|_X}9faj$k`(jyu$yzFAjqQ&0vwtjQe}2Q+ulGWJ-I<4)?H*qTi? zmiW6^!Csk&aR8=NNk(o06w%Fdv&|-l2=cX*_!|AeZZ&%K zvqmL#stXu~(*|fnt@;@Vf>0NhZG)EP{bt>%rq~0A9(0#~#uf7pc1-A`iJdgNZRqE$ zgY`M|a<<{nOQYjdW9%gXAphhQJCfRWjZgGIB2@MQ1;eV#E)&9vHITWqld8ga% z^t$_o0@@@v1nHlN#Jt+AcN_IiuW`N)@oEX?^>(|{?6g|-J(%wz)P`1P-FBnbJKve{ zJqUG1)dtLWy;pBH55}kq?`Z?Qv>L5;<4}~&MyKu0S-o@KYn3Cki%$=LJ3Fh_Tb*{} z&>1=h*v^rV+wI2Lp$Ng+J#9DZu+bfeOas@%`FXuv2gsU-;sb1<3hS!ft+%?p=Ak49 zw9u}@KsV}*gYiL1=+t3io6Yn3!AKD?w7Q*Er`6oE-UumiBd

Kuwr8z}*# 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 diff --git a/example/index.html b/example/index.html index 107bc77..194f896 100644 --- a/example/index.html +++ b/example/index.html @@ -6,9 +6,13 @@ Silica Example +

{{greeting}}

+ Send Email
@@ -30,7 +34,11 @@

{{grade.name}}

  1. {{grade}}
  2. + data-click="printGrade(grade, klass, user)"> + + {{grade}} + +
@@ -46,11 +54,25 @@

{{grade.name}}

Embedded Page: {{embeddedPage}}

+ + +
    +
  • {{item.value|duration}}
  • +
+