diff --git a/vendors/knockout/build/output/knockout-latest.debug.js b/vendors/knockout/build/output/knockout-latest.debug.js index 0b8889ee3..7d19cfb03 100644 --- a/vendors/knockout/build/output/knockout-latest.debug.js +++ b/vendors/knockout/build/output/knockout-latest.debug.js @@ -1976,15 +1976,6 @@ ko.expressionRewriting = (() => { extendCallback = options['extend']; } - if (dataItemAlias && options && options['noChildContext']) { - var isFunc = typeof(dataItemOrAccessor) == "function" && !ko.isObservable(dataItemOrAccessor); - return new ko.bindingContext(inheritParentVm, this, null, self => { - if (extendCallback) - extendCallback(self); - self[dataItemAlias] = isFunc ? dataItemOrAccessor() : dataItemOrAccessor; - }, options); - } - return new ko.bindingContext(dataItemOrAccessor, this, dataItemAlias, (self, parentContext) => { // Extend the context hierarchy by setting the appropriate pointers self['$parentContext'] = parentContext; @@ -2916,12 +2907,7 @@ ko.bindingHandlers['foreach'] = { return { 'foreach': unwrappedValue['data'], 'as': unwrappedValue['as'], - 'noChildContext': unwrappedValue['noChildContext'], - 'includeDestroyed': unwrappedValue['includeDestroyed'], - 'afterAdd': unwrappedValue['afterAdd'], 'beforeRemove': unwrappedValue['beforeRemove'], - 'afterRender': unwrappedValue['afterRender'], - 'beforeMove': unwrappedValue['beforeMove'], 'afterMove': unwrappedValue['afterMove'] }; }; @@ -2999,12 +2985,11 @@ ko.bindingHandlers['html'] = { function makeWithIfBinding(bindingKey, isWith, isNot) { ko.bindingHandlers[bindingKey] = { 'init': (element, valueAccessor, allBindings, viewModel, bindingContext) => { - var didDisplayOnLastUpdate, savedNodes, contextOptions = {}, needAsyncContext, renderOnEveryChange; + var didDisplayOnLastUpdate, savedNodes, contextOptions = {}, needAsyncContext; if (isWith) { - var as = allBindings.get('as'), noChildContext = allBindings.get('noChildContext'); - renderOnEveryChange = !(as && noChildContext); - contextOptions = { 'as': as, 'noChildContext': noChildContext, 'exportDependencies': renderOnEveryChange }; + var as = allBindings.get('as'), noChildContext = false; + contextOptions = { 'as': as, 'exportDependencies': true }; } needAsyncContext = allBindings['has'](ko.bindingEvent.descendantsComplete); @@ -3015,18 +3000,12 @@ function makeWithIfBinding(bindingKey, isWith, isNot) { isInitial = !savedNodes, childContext; - if (!renderOnEveryChange && shouldDisplay === didDisplayOnLastUpdate) { - return; - } - if (needAsyncContext) { bindingContext = ko.bindingEvent.startPossiblyAsyncContentBinding(element, bindingContext); } if (shouldDisplay) { - if (!isWith || renderOnEveryChange) { - contextOptions['dataDependency'] = ko.dependencyDetection.computed(); - } + contextOptions['dataDependency'] = ko.dependencyDetection.computed(); if (isWith) { childContext = bindingContext['createChildContext'](typeof value == "function" ? value : valueAccessor, contextOptions); @@ -3279,12 +3258,12 @@ ko.bindingHandlers['text'] = { return { 'controlsDescendantBindings': true }; }, 'update': (element, valueAccessor) => { - if (8 === element.nodeType) { - element.text || element.after(element.text = document.createTextNode('')); - element = element.text; - } + if (8 === element.nodeType) { + element.text || element.after(element.text = document.createTextNode('')); + element = element.text; + } ko.utils.setTextContent(element, valueAccessor()); - } + } }; ko.virtualElements.allowedBindings['text'] = true; ko.bindingHandlers['textInput'] = { @@ -3633,9 +3612,6 @@ makeEventHandlerShortcut('click'); if (haveAddedNodesToParent) { activateBindingsOnContinuousNodeArray(renderedNodesArray, bindingContext); - if (options['afterRender']) { - ko.dependencyDetection.ignore(options['afterRender'], null, [renderedNodesArray, bindingContext[options['as'] || '$data']]); - } if (renderMode == "replaceChildren") { ko.bindingEvent.notify(targetNodeOrNodeArray, ko.bindingEvent.childrenComplete); } @@ -3690,7 +3666,6 @@ makeEventHandlerShortcut('click'); // Support selecting template as a function of the data being rendered arrayItemContext = parentBindingContext['createChildContext'](arrayValue, { 'as': asName, - 'noChildContext': options['noChildContext'], 'extend': context => { context['$index'] = index; if (asName) { @@ -3706,8 +3681,6 @@ makeEventHandlerShortcut('click'); // This will be called whenever setDomNodeChildrenFromArrayMapping has added nodes to targetNode var activateBindingsCallback = (arrayValue, addedNodesArray) => { activateBindingsOnContinuousNodeArray(addedNodesArray, arrayItemContext); - if (options['afterRender']) - options['afterRender'](addedNodesArray, arrayValue); // release the "cache" variable, so that it can be collected by // the GC when its value isn't used from within the bindings anymore. @@ -3721,9 +3694,7 @@ makeEventHandlerShortcut('click'); ko.bindingEvent.notify(targetNode, ko.bindingEvent.childrenComplete); }; - var shouldHideDestroyed = (options['includeDestroyed'] === false); - - if (!shouldHideDestroyed && !options['beforeRemove'] && ko.isObservableArray(arrayOrObservableArray)) { + if (!options['beforeRemove'] && ko.isObservableArray(arrayOrObservableArray)) { setDomNodeChildrenFromArrayMapping(arrayOrObservableArray.peek()); var subscription = arrayOrObservableArray.subscribe(changeList => { @@ -3738,10 +3709,6 @@ makeEventHandlerShortcut('click'); if (typeof unwrappedArray.length == "undefined") // Coerce single value into array unwrappedArray = [unwrappedArray]; - if (shouldHideDestroyed) { - // Filter out any entries marked as destroyed - unwrappedArray = unwrappedArray.filter(item => item || item == null); - } setDomNodeChildrenFromArrayMapping(unwrappedArray); }, { disposeWhenNodeIsRemoved: targetNode }); @@ -3832,7 +3799,6 @@ makeEventHandlerShortcut('click'); if ('data' in options) { innerBindingContext = bindingContext['createChildContext'](options['data'], { 'as': options['as'], - 'noChildContext': options['noChildContext'], 'exportDependencies': true }); } @@ -4020,23 +3986,20 @@ ko.utils.compareArrays = (() => { var nodesToDelete = []; var itemsToMoveFirstIndexes = []; var itemsForBeforeRemoveCallbacks = []; - var itemsForMoveCallbacks = []; - var itemsForAfterAddCallbacks = []; + var itemsForAfterMoveCallbacks = []; var mapData; var countWaitingForRemove = 0; function itemAdded(value) { mapData = { arrayEntry: value, indexObservable: ko.observable(currentArrayIndex++) }; newMappingResult.push(mapData); - if (!isFirstExecution) { - itemsForAfterAddCallbacks.push(mapData); - } } function itemMovedOrRetained(oldPosition) { mapData = lastMappingResult[oldPosition]; - if (currentArrayIndex !== mapData.indexObservable.peek()) - itemsForMoveCallbacks.push(mapData); + if (currentArrayIndex !== mapData.indexObservable.peek()) { + itemsForAfterMoveCallbacks[currentArrayIndex] = mapData; + } // Since updating the index might change the nodes, do so before calling fixUpContinuousNodeArray mapData.indexObservable(currentArrayIndex++); ko.utils.fixUpContinuousNodeArray(mapData.mappedNodes, domNode); @@ -4046,7 +4009,7 @@ ko.utils.compareArrays = (() => { function callCallback(callback, items) { if (callback) { for (var i = 0, n = items.length; i < n; i++) { - items[i].mappedNodes.forEach(node => callback(node, i, items[i].arrayEntry)); + items[i] && items[i].mappedNodes.forEach(node => callback(node, i, items[i].arrayEntry)); } } } @@ -4089,7 +4052,7 @@ ko.utils.compareArrays = (() => { if (mapData.arrayEntry === deletedItemDummyValue) { mapData = null; } else { - itemsForBeforeRemoveCallbacks.push(mapData); + itemsForBeforeRemoveCallbacks[mapData.indexObservable.peek()] = mapData; } } if (mapData) { @@ -4126,9 +4089,6 @@ ko.utils.compareArrays = (() => { // Store a copy of the array items we just considered so we can difference it next time ko.utils.domData.set(domNode, lastMappingResultDomDataKey, newMappingResult); - // Call beforeMove first before any changes have been made to the DOM - callCallback(options['beforeMove'], itemsForMoveCallbacks); - // Next remove nodes for deleted items (or just clean if there's a beforeRemove callback) nodesToDelete.forEach(options['beforeRemove'] ? ko.cleanNode : ko.removeNode); @@ -4144,7 +4104,7 @@ ko.utils.compareArrays = (() => { mapData = newMappingResult[i]; for (lastNode = undefined; i; ) { if ((mappedNodes = newMappingResult[--i].mappedNodes) && mappedNodes.length) { - lastNode = mappedNodes[mappedNodes.length-1]; + lastNode = mappedNodes[mappedNodes.length - 1]; break; } } @@ -4189,12 +4149,13 @@ ko.utils.compareArrays = (() => { // as already "removed" so we won't call beforeRemove for it again, and it ensures that the item won't match up // with an actual item in the array and appear as "retained" or "moved". for (i = 0; i < itemsForBeforeRemoveCallbacks.length; ++i) { - itemsForBeforeRemoveCallbacks[i].arrayEntry = deletedItemDummyValue; + if (itemsForBeforeRemoveCallbacks[i]) { + itemsForBeforeRemoveCallbacks[i].arrayEntry = deletedItemDummyValue; + } } // Finally call afterMove and afterAdd callbacks - callCallback(options['afterMove'], itemsForMoveCallbacks); - callCallback(options['afterAdd'], itemsForAfterAddCallbacks); + callCallback(options['afterMove'], itemsForAfterMoveCallbacks); } })(); window['ko'] = koExports; diff --git a/vendors/knockout/build/output/knockout-latest.js b/vendors/knockout/build/output/knockout-latest.js index 59883886b..98010c7b7 100644 --- a/vendors/knockout/build/output/knockout-latest.js +++ b/vendors/knockout/build/output/knockout-latest.js @@ -4,78 +4,77 @@ * License: MIT (http://www.opensource.org/licenses/mit-license.php) */ -(A=>{function E(a,c){return null===a||da[typeof a]?a===c:!1}function D(a,c){var e;return()=>{e||(e=b.a.setTimeout(()=>{e=0;a()},c))}}function G(a,c){var e;return()=>{clearTimeout(e);e=b.a.setTimeout(a,c)}}function R(a,c){null!==c&&c.m&&c.m()}function V(a,c){var e=this.cc,g=e[B];g.aa||(this.Sa&&this.za[c]?(e.sb(c,a,this.za[c]),this.za[c]=null,--this.Sa):g.u[c]||e.sb(c,a,g.v?{U:a}:e.Tb(a)),a.ka&&a.Yb())}var S=A.document,W={},b="undefined"!==typeof W?W:{};b.o=(a,c)=>{a=a.split(".");for(var e=b,g=0;g< -a.length-1;g++)e=e[a[g]];e[a[a.length-1]]=c};b.$=(a,c,e)=>{a[c]=e};b.o("version","3.5.1-sm");b.a={extend:(a,c)=>{c&&Object.entries(c).forEach(e=>a[e[0]]=e[1]);return a},O:(a,c)=>a&&Object.entries(a).forEach(e=>c(e[0],e[1])),Cc:(a,c,e)=>{if(!a)return a;var g={};Object.entries(a).forEach(k=>g[k[0]]=c.call(e,k[1],k[0],a));return g},Wa:a=>[...a.childNodes].forEach(c=>b.removeNode(c)),Mb:a=>{var c=[...a],e=(c[0]&&c[0].ownerDocument||S).createElement("div");a.forEach(g=>e.append(b.fa(g)));return e},ya:(a, -c)=>Array.prototype.map.call(a,c?e=>b.fa(e.cloneNode(!0)):e=>e.cloneNode(!0)),ua:(a,c)=>{b.a.Wa(a);c&&a.append(...c)},Aa:(a,c)=>{if(a.length){for(c=8===c.nodeType&&c.parentNode||c;a.length&&a[0].parentNode!==c;)a.splice(0,1);for(;1null==a?"":a.trim?a.trim():a.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g,""),zc:(a,c)=>{a=a||"";return c.length> -a.length?!1:a.substring(0,c.length)===c},fc:(a,c)=>c.contains(1!==a.nodeType?a.parentNode:a),Va:a=>b.a.fc(a,a.ownerDocument.documentElement),zb:a=>b.onError?function(){try{return a.apply(this,arguments)}catch(c){throw b.onError&&b.onError(c),c;}}:a,setTimeout:(a,c)=>setTimeout(b.a.zb(a),c),Db:a=>setTimeout(()=>{b.onError&&b.onError(a);throw a;},0),I:(a,c,e)=>a.addEventListener(c,b.a.zb(e),!1),Vb:(a,c)=>{if(!a||!a.nodeType)throw Error("element must be a DOM node when calling triggerEvent");a.dispatchEvent(new Event(c))}, -g:a=>b.L(a)?a():a,fb:(a,c)=>a.textContent=b.a.g(c)||""};b.o("utils",b.a);b.o("unwrap",b.a.g);(()=>{let a=0,c="__ko__"+Date.now(),e=new WeakMap;b.a.f={get:(g,k)=>(e.get(g)||{})[k],set:(g,k,t)=>{if(e.has(g))e.get(g)[k]=t;else{let d={};d[k]=t;e.set(g,d)}return t},Ya:function(g,k,t){return this.get(g,k)||this.set(g,k,t)},clear:g=>e.delete(g),W:()=>a++ +c}})();b.a.K=(()=>{var a=b.a.f.W(),c={1:1,8:1,9:1},e={1:1,9:1};const g=(d,f)=>{var h=b.a.f.get(d,a);f&&!h&&(h=new Set,b.a.f.set(d,a,h));return h},k=d=> -{var f=g(d);f&&(new Set(f)).forEach(h=>h(d));b.a.f.clear(d);e[d.nodeType]&&t(d.childNodes,!0)},t=(d,f)=>{for(var h=[],p,r=0;r{if("function"!=typeof f)throw Error("Callback must be a function");g(d,1).add(f)},eb:(d,f)=>{var h=g(d);h&&(h.delete(f),h.size||b.a.f.set(d,a,null))},fa:d=>{b.j.G(()=>{c[d.nodeType]&&(k(d),e[d.nodeType]&&t(d.getElementsByTagName("*")))});return d},removeNode:d=> -{b.fa(d);d.parentNode&&d.parentNode.removeChild(d)}}})();b.fa=b.a.K.fa;b.removeNode=b.a.K.removeNode;b.o("utils.domNodeDisposal",b.a.K);b.o("utils.domNodeDisposal.addDisposeCallback",b.a.K.na);b.Ub=(()=>{function a(){if(e)for(var d=e,f=0,h;kd){if(5E3<=++f){k=e;b.a.Db(Error("'Too much recursion' after processing "+f+" task groups."));break}d=e}try{h()}catch(p){b.a.Db(p)}}k=e=c.length=0}var c=[],e=0,g=1,k=0,t=(d=>{var f=S.createElement("div");(new MutationObserver(d)).observe(f, -{attributes:!0});return()=>f.classList.toggle("foo")})(a);return{Qb:d=>{e||t(a);c[e++]=d;return g++},cancel:d=>{d-=g-e;d>=k&&da.Ha(e=>G(e,c)),rateLimit:(a,c)=>{if("number"==typeof c)var e=c;else{e=c.timeout;var g=c.method}var k="function"==typeof g?g:D;a.Ha(t=>k(t,e,c))},notify:(a,c)=>{a.equalityComparer="always"==c?null:E}};var da={undefined:1,"boolean":1,number:1,string:1};b.o("extenders",b.Xa);class ea{constructor(a,c,e){this.U=a;this.lb=c;this.pa=e; -this.Na=!1;this.C=this.X=null;b.$(this,"dispose",this.m);b.$(this,"disposeWhenNodeIsRemoved",this.i)}m(){this.Na||(this.C&&b.a.K.eb(this.X,this.C),this.Na=!0,this.pa(),this.U=this.lb=this.pa=this.X=this.C=null)}i(a){this.X=a;b.a.K.na(a,this.C=this.m.bind(this))}}b.S=function(){Object.setPrototypeOf(this,N);N.Ea(this)};var N={Ea:a=>{a.T=new Map;a.T.set("change",new Set);a.rb=1},subscribe:function(a,c,e){var g=this;e=e||"change";var k=new ea(g,c?a.bind(c):a,()=>{g.T.get(e).delete(k);g.wa&&g.wa(e)}); -g.oa&&g.oa(e);g.T.has(e)||g.T.set(e,new Set);g.T.get(e).add(k);return k},notifySubscribers:function(a,c){c=c||"change";"change"===c&&this.Ka();if(this.sa(c)){c="change"===c&&this.Wb||new Set(this.T.get(c));try{b.j.wb(),c.forEach(e=>{e.Na||e.lb(a)})}finally{b.j.end()}}},Ca:function(){return this.rb},lc:function(a){return this.Ca()!==a},Ka:function(){++this.rb},Ha:function(a){var c=this,e=b.L(c),g,k,t,d,f;c.va||(c.va=c.notifySubscribers,c.notifySubscribers=function(p,r){r&&"change"!==r?"beforeChange"=== -r?this.ob(p):this.va(p,r):this.pb(p)});var h=a(()=>{c.ka=!1;e&&d===c&&(d=c.mb?c.mb():c());var p=k||f&&c.Ga(t,d);f=k=g=!1;p&&c.va(t=d)});c.pb=(p,r)=>{r&&c.ka||(f=!r);c.Wb=new Set(c.T.get("change"));c.ka=g=!0;d=p;h()};c.ob=p=>{g||(t=p,c.va(p,"beforeChange"))};c.qb=()=>{f=!0};c.Yb=()=>{c.Ga(t,c.H(!0))&&(k=!0)}},sa:function(a){return(this.T.get(a)||[]).size},Ga:function(a,c){return!this.equalityComparer||!this.equalityComparer(a,c)},toString:()=>"[object Object]",extend:function(a){var c=this;a&&b.a.O(a, -(e,g)=>{e=b.Xa[e];"function"==typeof e&&(c=e(c,g)||c)});return c}};b.$(N,"init",N.Ea);b.$(N,"subscribe",N.subscribe);b.$(N,"extend",N.extend);Object.setPrototypeOf(N,Function.prototype);b.S.fn=N;b.oc=a=>null!=a&&"function"==typeof a.subscribe&&"function"==typeof a.notifySubscribers;(()=>{var a=[],c,e=0;b.j={wb:g=>{a.push(c);c=g},end:()=>c=a.pop(),Pb:g=>{if(c){if(!b.oc(g))throw Error("Only subscribable things can act as dependencies");c.$b.call(c.ac,g,g.Xb||(g.Xb=++e))}},G:(g,k,t)=>{try{return a.push(c), -c=void 0,g.apply(k,t||[])}finally{c=a.pop()}},Ba:()=>c&&c.l.Ba(),$a:()=>c&&c.$a,l:()=>c&&c.l}})();const L=Symbol("_latestValue");b.ca=a=>{function c(){if(0null==c[L]?void 0:c[L].length});b.S.fn.Ea(c);Object.setPrototypeOf(c,P);return c};var P={toJSON:function(){let a=this[L];return a&&a.toJSON?a.toJSON():a},equalityComparer:E,H:function(){return this[L]}, -La:function(){this.notifySubscribers(this[L],"spectate");this.notifySubscribers(this[L])},jb:function(){this.notifySubscribers(this[L],"beforeChange")}};Object.setPrototypeOf(P,b.S.fn);var Q=b.ca.C="__ko_proto__";P[Q]=b.ca;b.L=a=>{if((a="function"==typeof a&&a[Q])&&a!==P[Q]&&a!==b.l.fn[Q])throw Error("Invalid object that looks like an observable; possibly from another Knockout instance");return!!a};b.qc=a=>"function"==typeof a&&(a[Q]===P[Q]||a[Q]===b.l.fn[Q]&&a.mc);b.o("observable",b.ca);b.o("isObservable", -b.L);b.o("observable.fn",P);b.$(P,"valueHasMutated",P.La);b.ia=a=>{a=a||[];if("object"!=typeof a||!("length"in a))throw Error("The argument passed when initializing an observable array must be an array, or null, or undefined.");a=b.ca(a);Object.setPrototypeOf(a,b.ia.fn);return a.extend({trackArrayChanges:!0})};b.ia.fn={remove:function(a){for(var c=this.H(),e=!1,g="function"!=typeof a||b.L(a)?d=>d===a:a,k=c.length;k--;){var t=c[k];if(g(t)){if(c[k]!==t)throw Error("Array modified during remove; cannot remove item"); -e||this.jb();e=!0;c.splice(k,1)}}e&&this.La()}};Object.setPrototypeOf(b.ia.fn,b.ca.fn);Object.getOwnPropertyNames(Array.prototype).forEach(a=>{"function"===typeof Array.prototype[a]&&"constructor"!=a&&("copyWithin fill pop push reverse shift sort splice unshift".split(" ").includes(a)?b.ia.fn[a]=function(...c){var e=this.H();this.jb();this.yb(e,a,c);c=e[a](...c);this.La();return c===e?this:c}:b.ia.fn[a]=function(...c){return this()[a](...c)})});b.Jb=a=>b.L(a)&&"function"==typeof a.remove&&"function"== -typeof a.push;b.o("observableArray",b.ia);b.o("isObservableArray",b.Jb);b.Xa.trackArrayChanges=(a,c)=>{function e(){function q(){if(f){var l=[].concat(a.H()||[]);if(a.sa("arrayChange")){if(!k||1++f,null,"spectate"),h=[].concat(a.H()||[]),k=null,t=a.subscribe(q))}a.Qa={};c&&"object"==typeof c&&b.a.extend(a.Qa,c);a.Qa.sparse=!0;if(!a.yb){var g=!1,k=null,t,d,f=0,h,p=a.oa,r=a.wa; -a.oa=q=>{p&&p.call(a,q);"arrayChange"===q&&e()};a.wa=q=>{r&&r.call(a,q);"arrayChange"!==q||a.sa("arrayChange")||(t&&t.m(),d&&d.m(),d=t=null,g=!1,h=void 0)};a.yb=(q,l,n)=>{function m(J,y,H){return u[u.length]={status:J,value:y,index:H}}if(g&&!f){var u=[],w=q.length,v=n.length,x=0;switch(l){case "push":x=w;case "unshift":for(l=0;ln[0]?w+n[0]:n[0]),w);w=1===v?w:Math.min(l+ -(n[1]||0),w);v=l+v-2;x=Math.max(w,v);for(var z=[],C=[],M=2;l{function e(){if(0{e.m()});return e};var T={equalityComparer:E,Ba:function(){return this[B].J},jc:function(){var a=[];b.a.O(this[B].u,(c,e)=>a[e.la]=e.U);return a},Za:function(a){if(!this[B].J)return!1;var c=this.jc();return c.includes(a)||!!c.find(e=>e.Za&&e.Za(a))},sb:function(a,c,e){if(this[B].cb&&c===this)throw Error("A 'pure' computed must not be called recursively");this[B].u[a]=e;e.la=this[B].J++;e.ma=c.Ca()},ta:function(){var a,c=this[B].u;for(a in c)if(Object.prototype.hasOwnProperty.call(c, -a)){var e=c[a];if(this.ja&&e.U.ka||e.U.lc(e.ma))return!0}},Bc:function(){this.ja&&!this[B].Fa&&this.ja(!1)},ha:function(){var a=this[B];return a.V||0a.R(!0),c)):a.ja?a.ja(!0):a.R(!0)},R:function(a){var c=this[B],e=c.qa,g=!1;if(!c.Fa&&!c.aa){if(c.i&&!b.a.Va(c.i)||e&&e()){if(!c.hb){this.m(); -return}}else c.hb=!1;c.Fa=!0;try{g=this.hc(a)}finally{c.Fa=!1}return g}},hc:function(a){var c=this[B],e=c.cb?void 0:!c.J;var g={cc:this,za:c.u,Sa:c.J};b.j.wb({ac:g,$b:V,l:this,$a:e});c.u={};c.J=0;a:{try{var k=c.Ob();break a}finally{b.j.end(),g.Sa&&!c.v&&b.a.O(g.za,R),c.ba=c.V=!1}k=void 0}c.J?g=this.Ga(c.M,k):(this.m(),g=!0);g&&(c.v?this.Ka():this.notifySubscribers(c.M,"beforeChange"),c.M=k,this.notifySubscribers(c.M,"spectate"),!c.v&&a&&this.notifySubscribers(c.M),this.qb&&this.qb());e&&this.notifySubscribers(c.M, -"awake");return g},H:function(a){var c=this[B];(c.V&&(a||!c.J)||c.v&&this.ta())&&this.R();return c.M},Ha:function(a){b.S.fn.Ha.call(this,a);this.mb=function(){this[B].v||(this[B].ba?this.R():this[B].V=!1);return this[B].M};this.ja=function(c){this.ob(this[B].M);this[B].V=!0;c&&(this[B].ba=!0);this.pb(this,!c)}},m:function(){var a=this[B];!a.v&&a.u&&b.a.O(a.u,(c,e)=>e.m&&e.m());a.i&&a.Ua&&b.a.K.eb(a.i,a.Ua);a.u=void 0;a.J=0;a.aa=!0;a.ba=!1;a.V=!1;a.v=!1;a.i=void 0;a.qa=void 0;a.Ob=void 0}},fa={oa:function(a){var c= -this,e=c[B];if(!e.aa&&e.v&&"change"==a){e.v=!1;if(e.ba||c.ta())e.u=null,e.J=0,c.R()&&c.Ka();else{var g=[];b.a.O(e.u,(k,t)=>g[t.la]=k);g.forEach((k,t)=>{var d=e.u[k],f=c.Tb(d.U);f.la=t;f.ma=d.ma;e.u[k]=f});c.ta()&&c.R()&&c.Ka()}e.aa||c.notifySubscribers(e.M,"awake")}},wa:function(a){var c=this[B];c.aa||"change"!=a||this.sa("change")||(b.a.O(c.u,(e,g)=>{g.m&&(c.u[e]={U:g.U,la:g.la,ma:g.ma},g.m())}),c.v=!0,this.notifySubscribers(void 0,"asleep"))},Ca:function(){var a=this[B];a.v&&(a.ba||this.ta())&& -this.R();return b.S.fn.Ca.call(this)}},ha={oa:function(a){"change"!=a&&"beforeChange"!=a||this.H()}};Object.setPrototypeOf(T,b.S.fn);T[b.ca.C]=b.l;b.o("computed",b.l);b.o("computed.fn",T);b.$(T,"dispose",T.m);b.vc=a=>{if("function"===typeof a)return b.l(a,{pure:!0});a=b.a.extend({},a);a.pure=!0;return b.l(a)};(()=>{b.A={P:a=>{switch(a.nodeName){case "OPTION":return!0===a.__ko__hasDomDataOptionValue__?b.a.f.get(a,b.b.options.bb):a.value;case "SELECT":return 0<=a.selectedIndex?b.A.P(a.options[a.selectedIndex]): -void 0;default:return a.value}},Ma:(a,c,e)=>{switch(a.nodeName){case "OPTION":"string"===typeof c?(b.a.f.set(a,b.b.options.bb,void 0),delete a.__ko__hasDomDataOptionValue__,a.value=c):(b.a.f.set(a,b.b.options.bb,c),a.__ko__hasDomDataOptionValue__=!0,a.value="number"===typeof c?c:"");break;case "SELECT":for(var g=-1,k=""===c||null==c,t=0,d=a.options.length,f;t{function a(f){f=b.a.Sb(f);123===f.charCodeAt(0)&&(f=f.slice(1,-1));f+="\n,";var h=[],p=f.match(g),r=[],q=0;if(1=q){h.push(u&&r.length?{key:u,value:r.join("")}:{unknown:u||r.join("")});var u=q=0;r=[];continue}}else if(58===m){if(!q&&!u&&1===r.length){u=r.pop();continue}}else if(47===m&&1p(m.key||m.unknown,m.value)); -q.length&&p("_ko_property_writers","{"+q.join(",")+" }");return r.join(",")},rc:(f,h)=>-1p.key==h),kb:(f,h,p,r,q)=>{if(f&&b.L(f))!b.qc(f)||q&&f.H()===r||f(r);else if((f=h.get("_ko_property_writers"))&&f[p])f[p](r)}}})();(()=>{function a(d){return 8==d.nodeType&&g.test(d.nodeValue)}function c(d){return 8==d.nodeType&&k.test(d.nodeValue)}function e(d,f){for(var h=d,p=1,r=[];h=h.nextSibling;){if(c(h)&&(b.a.f.set(h,t,!0),!--p))return r;r.push(h);a(h)&&++p}if(!f)throw Error("Cannot find closing comment tag to match: "+ -d.nodeValue);return null}var g=/^\s*ko(?:\s+([\s\S]+))?\s*$/,k=/^\s*\/ko\s*$/,t="__ko_matchedEndComment__";b.h={da:{},childNodes:d=>a(d)?e(d):d.childNodes,ra:d=>{a(d)?(d=e(d))&&[...d].forEach(f=>b.removeNode(f)):b.a.Wa(d)},ua:(d,f)=>{a(d)?(b.h.ra(d),d.after(...f)):b.a.ua(d,f)},prepend:(d,f)=>{a(d)?d.nextSibling.before(f):d.prepend(f)},Ib:(d,f,h)=>{h?h.after(f):b.h.prepend(d,f)},firstChild:d=>{if(a(d))return d=d.nextSibling,!d||c(d)?null:d;let f=d.firstChild;if(f&&c(f))throw Error("Found invalid end comment, as the first child of "+ -d);return f},nextSibling:d=>{if(a(d)){var f=e(d,void 0);d=f?(f.length?f[f.length-1]:d).nextSibling:null}if((f=d.nextSibling)&&c(f)){if(c(f)&&!b.a.f.get(f,t))throw Error("Found end comment without a matching opening comment, as child of "+d);return null}return f},kc:a,Ac:d=>(d=d.nodeValue.match(g))?d[1]:null}})();(()=>{const a=new Map;b.xb=new class{sc(c){switch(c.nodeType){case 1:return null!=c.getAttribute("data-bind");case 8:return b.h.kc(c);default:return!1}}ic(c,e){a:{switch(c.nodeType){case 1:var g= -c.getAttribute("data-bind");break a;case 8:g=b.h.Ac(c);break a}g=null}if(g)try{let t={valueAccessors:!0},d=a.get(g);if(!d){var k="with($context){with($data||{}){return{"+b.F.uc(g,t)+"}}}";d=new Function("$context","$element",k);a.set(g,d)}return d(e,c)}catch(t){throw t.message="Unable to parse bindings.\nBindings value: "+g+"\nMessage: "+t.message,t;}return null}}})();(()=>{function a(l){var n=(l=b.a.f.get(l,r))&&l.D;n&&(l.D=null,n.Nb())}function c(l,n){for(var m,u=b.h.firstChild(n);m=u;)u=b.h.nextSibling(m), -e(l,m);b.c.notify(n,b.c.B)}function e(l,n){var m=l;if(1===n.nodeType||b.xb.sc(n))m=k(n,null,l).bindingContextForDescendants;m&&n.matches&&!n.matches("SCRIPT,TEXTAREA,TEMPLATE")&&c(m,n)}function g(l){var n=[],m={},u=[];b.a.O(l,function x(v){if(!m[v]){var z=b.b[v];z&&(z.after&&(u.push(v),z.after.forEach(C=>{if(l[C]){if(u.includes(C))throw Error("Cannot combine the following bindings, because they have a cyclic dependency: "+u.join(", "));x(C)}}),u.length--),n.push({key:v,Hb:z}));m[v]=!0}});return n} -function k(l,n,m){var u=b.a.f.Ya(l,r,{}),w=u.Zb;if(!n){if(w)throw Error("You cannot apply bindings multiple times to the same element.");u.Zb=!0}w||(u.context=m);u.ab||(u.ab={});if(n&&"function"!==typeof n)var v=n;else{var x=b.l(()=>{if(v=n?n(m,l):b.xb.ic(l,m)){if(m[d])m[d]();if(m[h])m[h]()}return v},{i:l});v&&x.ha()||(x=null)}var z=m,C;if(v){var M=x?y=>()=>x()[y]():y=>v[y],J={get:y=>v[y]&&M(y)(),has:y=>y in v};b.c.B in v&&b.c.subscribe(l,b.c.B,()=>{var y=v[b.c.B]();if(y){var H=b.h.childNodes(l); -H.length&&y(H,b.Cb(H[0]))}});b.c.Z in v&&(z=b.c.gb(l,m),b.c.subscribe(l,b.c.Z,()=>{var y=v[b.c.Z]();y&&b.h.firstChild(l)&&y(l)}));g(v).forEach(y=>{var H=y.Hb.init,K=y.Hb.update,F=y.key;if(8===l.nodeType&&!b.h.da[F])throw Error("The binding '"+F+"' cannot be used with virtual elements");try{"function"==typeof H&&b.j.G(()=>{var I=H(l,M(F),J,z.$data,z);if(I&&I.controlsDescendantBindings){if(void 0!==C)throw Error("Multiple bindings ("+C+" and "+F+") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element."); -C=F}}),"function"==typeof K&&b.l(()=>K(l,M(F),J,z.$data,z),{i:l})}catch(I){throw I.message='Unable to process binding "'+F+": "+v[F]+'"\nMessage: '+I.message,I;}})}u=void 0===C;return{shouldBindDescendants:u,bindingContextForDescendants:u&&z}}function t(l,n){return l&&l instanceof b.Y?l:new b.Y(l,void 0,void 0,n)}var d=Symbol("_subscribable"),f=Symbol("_ancestorBindingInfo"),h=Symbol("_dataDependency");b.b={};var p={};b.Y=class{constructor(l,n,m,u,w){function v(){var H=M?C():C,K=b.a.g(H);n?(b.a.extend(x, -n),f in n&&(x[f]=n[f])):(x.$parents=[],x.$root=K,x.ko=b);x[d]=y;z?K=x.$data:(x.$rawData=H,x.$data=K);m&&(x[m]=K);u&&u(x,n,K);if(n&&n[d]&&!b.j.l().Za(n[d]))n[d]();J&&(x[h]=J);return x.$data}var x=this,z=l===p,C=z?void 0:l,M="function"==typeof C&&!b.L(C),J=w&&w.dataDependency;if(w&&w.exportDependencies)v();else{var y=b.vc(v);y.H();y.ha()?y.equalityComparer=null:x[d]=void 0}}["createChildContext"](l,n,m,u){!u&&n&&"object"==typeof n&&(u=n,n=u.as,m=u.extend);if(n&&u&&u.noChildContext){var w="function"== -typeof l&&!b.L(l);return new b.Y(p,this,null,v=>{m&&m(v);v[n]=w?l():l},u)}return new b.Y(l,this,n,(v,x)=>{v.$parentContext=x;v.$parent=x.$data;v.$parents=(x.$parents||[]).slice(0);v.$parents.unshift(v.$parent);m&&m(v)},u)}["extend"](l,n){return new b.Y(p,this,null,m=>b.a.extend(m,"function"==typeof l?l(m):l),n)}};var r=b.a.f.W();class q{constructor(l,n,m){this.C=l;this.pa=n;this.xa=new Set;this.B=!1;n.D||b.a.K.na(l,a);m&&m.D&&(m.D.xa.add(l),this.X=m)}Nb(){this.X&&this.X.D&&this.X.D.ec(this.C)}ec(l){this.xa.delete(l); -!this.xa.size&&this.B&&this.Bb()}Bb(){this.B=!0;this.pa.D&&!this.xa.size&&(this.pa.D=null,b.a.K.eb(this.C,a),b.c.notify(this.C,b.c.Z),this.Nb())}}b.c={B:"childrenComplete",Z:"descendantsComplete",subscribe:(l,n,m,u,w)=>{var v=b.a.f.Ya(l,r,{});v.ga||(v.ga=new b.S);w&&w.notifyImmediately&&v.ab[n]&&b.j.G(m,u,[l]);return v.ga.subscribe(m,u,n)},notify:(l,n)=>{var m=b.a.f.get(l,r);if(m&&(m.ab[n]=!0,m.ga&&m.ga.notifySubscribers(l,n),n==b.c.B))if(m.D)m.D.Bb();else if(void 0===m.D&&m.ga&&m.ga.sa(b.c.Z))throw Error("descendantsComplete event not supported for bindings on this node"); -},gb:(l,n)=>{var m=b.a.f.Ya(l,r,{});m.D||(m.D=new q(l,m,n[f]));return n[f]==m?n:n.extend(u=>{u[f]=m})}};b.yc=l=>(l=b.a.f.get(l,r))&&l.context;b.tb=(l,n,m)=>k(l,n,t(m));b.vb=(l,n)=>{1!==n.nodeType&&8!==n.nodeType||c(t(l),n)};b.ub=function(l,n,m){if(2>arguments.length){if(n=S.body,!n)throw Error("ko.applyBindings: could not find document.body; has the document been loaded?");}else if(!n||1!==n.nodeType&&8!==n.nodeType)throw Error("ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node"); -e(t(l,m),n)};b.Cb=l=>(l=l&&[1,8].includes(l.nodeType)&&b.yc(l))?l.$data:void 0;b.o("bindingHandlers",b.b);b.o("applyBindings",b.ub);b.o("applyBindingAccessorsToNode",b.tb);b.o("dataFor",b.Cb)})();(()=>{function a(d,f){return Object.prototype.hasOwnProperty.call(d,f)?d[f]:void 0}function c(d,f){var h=a(k,d);if(h)h.subscribe(f);else{h=k[d]=new b.S;h.subscribe(f);e(d,(r,q)=>{q=!(!q||!q.synchronous);t[d]={definition:r,pc:q};delete k[d];p||q?h.notifySubscribers(r):b.Ub.Qb(()=>h.notifySubscribers(r))}); -var p=!0}}function e(d,f){g("getConfig",[d],h=>{h?g("loadComponent",[d,h],p=>f(p,h)):f(null,null)})}function g(d,f,h,p){p||(p=b.s.loaders.slice(0));var r=p.shift();if(r){var q=r[d];if(q){var l=!1;if(void 0!==q.apply(r,f.concat(function(n){l?h(null):null!==n?h(n):g(d,f,h,p)}))&&(l=!0,!r.suppressLoaderExceptions))throw Error("Component loaders must supply values by invoking the callback, not by returning values synchronously.");}else g(d,f,h,p)}else h(null)}var k={},t={};b.s={get:(d,f)=>{var h=a(t, -d);h?h.pc?b.j.G(()=>f(h.definition)):b.Ub.Qb(()=>f(h.definition)):c(d,f)},bc:d=>delete t[d],nb:g};b.s.loaders=[];b.o("components",b.s)})();(()=>{function a(d,f,h,p){var r={},q=2;f=h.template;h=h.viewModel;f?b.s.nb("loadTemplate",[d,f],l=>{r.template=l;0===--q&&p(r)}):0===--q&&p(r);h?b.s.nb("loadViewModel",[d,h],l=>{r[t]=l;0===--q&&p(r)}):0===--q&&p(r)}function c(d,f,h){if("function"===typeof f)h(r=>new f(r));else if("function"===typeof f[t])h(f[t]);else if("instance"in f){var p=f.instance;h(()=>p)}else"viewModel"in -f?c(d,f.viewModel,h):d("Unknown viewModel value: "+f)}function e(d){if(d.matches("TEMPLATE")&&d.content instanceof DocumentFragment)return b.a.ya(d.content.childNodes);throw"Template Source Element not a