From 7ca599104102536244947f5c1206c45337ba24b5 Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Sun, 11 Feb 2024 14:44:47 +0100 Subject: [PATCH] KnockoutJS use Symbol for isObservableArray() --- .../build/output/knockout-latest.debug.js | 10 +--- .../knockout/build/output/knockout-latest.js | 56 +++++++++---------- .../src/subscribables/observableArray.js | 10 +--- 3 files changed, 34 insertions(+), 42 deletions(-) diff --git a/vendors/knockout/build/output/knockout-latest.debug.js b/vendors/knockout/build/output/knockout-latest.debug.js index 1cdf2b241..da51c013a 100644 --- a/vendors/knockout/build/output/knockout-latest.debug.js +++ b/vendors/knockout/build/output/knockout-latest.debug.js @@ -597,12 +597,12 @@ ko.observableArray = initialValues => { return Object.setPrototypeOf(ko.observable(initialValues), ko.observableArray['fn']).extend({'trackArrayChanges':true}); }; -//const IS_OBSERVABLE_ARRAY = Symbol('IS_OBSERVABLE_ARRAY'); +const IS_OBSERVABLE_ARRAY = Symbol('IS_OBSERVABLE_ARRAY'); // Note that for browsers that don't support proto assignment, the // inheritance chain is created manually in the ko.observableArray constructor ko.observableArray['fn'] = Object.setPrototypeOf({ -// [IS_OBSERVABLE_ARRAY]: 1, + [IS_OBSERVABLE_ARRAY]: 1, 'remove'(valueOrPredicate) { var underlyingArray = this.peek(); var removed = false; @@ -653,11 +653,7 @@ Object.getOwnPropertyNames(Array.prototype).forEach(methodName => { } }); -//ko.isObservableArray = obj => !!(obj && obj[IS_OBSERVABLE_ARRAY]); -ko.isObservableArray = instance => - ko.isObservable(instance) - && typeof instance["remove"] == "function" - && typeof instance["push"] == "function"; +ko.isObservableArray = obj => !!(obj && obj[IS_OBSERVABLE_ARRAY]); ko.exportSymbol('observableArray', ko.observableArray); ko.exportSymbol('isObservableArray', ko.isObservableArray); diff --git a/vendors/knockout/build/output/knockout-latest.js b/vendors/knockout/build/output/knockout-latest.js index 715e09c41..282c9c181 100644 --- a/vendors/knockout/build/output/knockout-latest.js +++ b/vendors/knockout/build/output/knockout-latest.js @@ -4,43 +4,43 @@ * License: MIT (http://www.opensource.org/licenses/mit-license.php) */ -(V=>{function O(a,b){return null===a||da[typeof a]?a===b:!1}function ea(a,b){var d;return()=>{d||(d=setTimeout(()=>{d=0;a()},b))}}function fa(a,b){var d;return()=>{clearTimeout(d);d=setTimeout(a,b)}}function ha(a,b){b?.A?.()}function ia(a,b){var d=this.Yb,f=d[x];f.$||(this.Va&&this.ya[b]?(d.rb(b,a,this.ya[b]),this.ya[b]=null,--this.Va):f.B[b]||d.rb(b,a,f.C?{X:a}:d.Qb(a)),a.ia&&a.Ub())}function W(a){a=c.g.j.get(a,I);var b=a?.H;b&&(a.H=null,b.Kb())}function X(a,b){for(var d,f=c.m.firstChild(b);d=f;)f= -c.m.nextSibling(d),Y(a,d);c.l.notify(b,c.l.G)}function Y(a,b){var d=a;if(1===b.nodeType||c.wb.kc(b))d=Z(b,null,a).bindingContextForDescendants;d&&!b.matches?.("SCRIPT,TEXTAREA,TEMPLATE")&&X(d,b)}function ja(a){var b=[],d={},f=[];c.g.P(a,function e(l){if(!d[l]){var g=c.h[l];g&&(g.after&&(f.push(l),g.after.forEach(k=>{if(a[k]){if(f.includes(k))throw Error("Cannot combine the following bindings, because they have a cyclic dependency: "+f.join(", "));e(k)}}),f.length--),b.push({key:l,Fb:g}));d[l]=!0}}); +(V=>{function O(a,b){return null===a||ea[typeof a]?a===b:!1}function fa(a,b){var d;return()=>{d||(d=setTimeout(()=>{d=0;a()},b))}}function ha(a,b){var d;return()=>{clearTimeout(d);d=setTimeout(a,b)}}function ia(a,b){b?.A?.()}function ja(a,b){var d=this.Yb,f=d[x];f.$||(this.Va&&this.ya[b]?(d.rb(b,a,this.ya[b]),this.ya[b]=null,--this.Va):f.B[b]||d.rb(b,a,f.C?{X:a}:d.Qb(a)),a.ia&&a.Ub())}function W(a){a=c.g.j.get(a,I);var b=a?.H;b&&(a.H=null,b.Kb())}function X(a,b){for(var d,f=c.m.firstChild(b);d=f;)f= +c.m.nextSibling(d),Y(a,d);c.l.notify(b,c.l.G)}function Y(a,b){var d=a;if(1===b.nodeType||c.wb.kc(b))d=Z(b,null,a).bindingContextForDescendants;d&&!b.matches?.("SCRIPT,TEXTAREA,TEMPLATE")&&X(d,b)}function ka(a){var b=[],d={},f=[];c.g.P(a,function e(l){if(!d[l]){var g=c.h[l];g&&(g.after&&(f.push(l),g.after.forEach(k=>{if(a[k]){if(f.includes(k))throw Error("Cannot combine the following bindings, because they have a cyclic dependency: "+f.join(", "));e(k)}}),f.length--),b.push({key:l,Fb:g}));d[l]=!0}}); return b}function Z(a,b,d){var f=c.g.j.ab(a,I,{}),h=f.Vb;if(!b){if(h)throw Error("You cannot apply bindings multiple times to the same element.");f.Vb=!0}h||(f.context=d);f.cb||(f.cb={});if(b&&"function"!==typeof b)var l=b;else{var e=c.s(()=>{if(l=b?b(d,a):c.wb.ac(a,d))d[J]?.(),d[aa]?.();return l},{o:a});l&&e.isActive()||(e=null)}var g=d,k;if(l){var n=e?m=>()=>e()[m]():m=>l[m],p={get:m=>l[m]&&n(m)(),has:m=>m in l};c.l.G in l&&c.l.subscribe(a,c.l.G,()=>{var m=l[c.l.G]();if(m){var q=c.m.childNodes(a); -q.length&&m(q,c.Ab(q[0]))}});c.l.ga in l&&(g=c.l.ib(a,d),c.l.subscribe(a,c.l.ga,()=>{var m=l[c.l.ga]();m&&c.m.firstChild(a)&&m(a)}));ja(l).forEach(m=>{var q=m.Fb.init,r=m.Fb.update,t=m.key;if(8===a.nodeType&&!c.m.ca[t])throw Error("The binding '"+t+"' cannot be used with virtual elements");try{"function"==typeof q&&c.u.M(()=>{var u=q(a,n(t),p,g.$data,g);if(u&&u.controlsDescendantBindings){if(void 0!==k)throw Error("Multiple bindings ("+k+" and "+t+") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element."); +q.length&&m(q,c.Ab(q[0]))}});c.l.ga in l&&(g=c.l.ib(a,d),c.l.subscribe(a,c.l.ga,()=>{var m=l[c.l.ga]();m&&c.m.firstChild(a)&&m(a)}));ka(l).forEach(m=>{var q=m.Fb.init,r=m.Fb.update,t=m.key;if(8===a.nodeType&&!c.m.ca[t])throw Error("The binding '"+t+"' cannot be used with virtual elements");try{"function"==typeof q&&c.u.M(()=>{var u=q(a,n(t),p,g.$data,g);if(u&&u.controlsDescendantBindings){if(void 0!==k)throw Error("Multiple bindings ("+k+" and "+t+") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element."); k=t}}),"function"==typeof r&&c.s(()=>r(a,n(t),p,g.$data,g),{o:a})}catch(u){throw u.message='Unable to process binding "'+t+": "+l[t]+'"\nMessage: '+u.message,u;}})}f=void 0===k;return{shouldBindDescendants:f,bindingContextForDescendants:f&&g}}function P(a,b){return a&&a instanceof c.ea?a:new c.ea(a,void 0,void 0,b)}var K=V.document,Q={},c="undefined"!==typeof Q?Q:{};c.v=(a,b)=>{a=a.split(".");for(var d=c,f=0,h=a.length-1;f{a.dispose=b};c.v("version","3.5.1-sm"); c.g={extend:(a,b)=>b?Object.assign(a,b):a,P:(a,b)=>a&&Object.entries(a).forEach(d=>b(d[0],d[1])),Za:a=>[...a.childNodes].forEach(b=>c.removeNode(b)),Jb:a=>{a=[...a];var b=(a[0]?.ownerDocument||K).createElement("div");a.forEach(d=>b.append(c.fa(d)));return b},xa:(a,b)=>Array.prototype.map.call(a,b?d=>c.fa(d.cloneNode(!0)):d=>d.cloneNode(!0)),ta:(a,b)=>{c.g.Za(a);b&&a.append(...b)},Aa:(a,b)=>{if(a.length){for(b=8===b.nodeType&&b.parentNode||b;a.length&&a[0].parentNode!==b;)a.splice(0,1);for(;1null==a?"":a.trim?a.trim():a.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g,""),Ya:a=>a.ownerDocument.documentElement.contains(1!==a.nodeType?a.parentNode:a),Rb:(a,b)=>{if(!a?.nodeType)throw Error("element must be a DOM node when calling triggerEvent");a.dispatchEvent(new Event(b))},i:a=>c.T(a)?a():a,hb:(a,b)=>a.textContent=c.g.i(b)||""};c.v("utils", +a[a.length-1].parentNode!==b;)--a.length;if(1null==a?"":a.trim?a.trim():a.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g,""),Ya:a=>a.ownerDocument.documentElement.contains(1!==a.nodeType?a.parentNode:a),Rb:(a,b)=>{if(!a?.nodeType)throw Error("element must be a DOM node when calling triggerEvent");a.dispatchEvent(new Event(b))},i:a=>c.U(a)?a():a,hb:(a,b)=>a.textContent=c.g.i(b)||""};c.v("utils", c.g);c.v("unwrap",c.g.i);(()=>{let a=0,b="__ko__"+Date.now(),d=new WeakMap;c.g.j={get:(f,h)=>(d.get(f)||{})[h],set:(f,h,l)=>{d.has(f)?d.get(f)[h]=l:d.set(f,{[h]:l});return l},ab(f,h,l){return this.get(f,h)||this.set(f,h,l)},clear:f=>d.delete(f),Z:()=>a++ +b}})();c.g.K=(()=>{var a=c.g.j.Z(),b={1:1,8:1,9:1},d={1:1,9:1};const f=(e,g)=>{var k=c.g.j.get(e,a);g&&!k&&(k=new Set,c.g.j.set(e,a,k));return k},h=e=>{var g=f(e);g&&(new Set(g)).forEach(k=>k(e));c.g.j.clear(e);d[e.nodeType]&&l(e.childNodes,!0)}, l=(e,g)=>{for(var k=[],n,p=0;p{if("function"!=typeof g)throw Error("Callback must be a function");f(e,1).add(g)},gb:(e,g)=>{var k=f(e);k&&(k.delete(g),k.size||c.g.j.set(e,a,null))},fa:e=>{c.u.M(()=>{b[e.nodeType]&&(h(e),d[e.nodeType]&&l(e.getElementsByTagName("*")))});return e},removeNode:e=>{c.fa(e);e.parentNode&&e.parentNode.removeChild(e)}}})();c.fa=c.g.K.fa;c.removeNode=c.g.K.removeNode; -c.v("utils.domNodeDisposal",c.g.K);c.v("utils.domNodeDisposal.addDisposeCallback",c.g.K.la);c.$a={debounce:(a,b)=>a.Ha(d=>fa(d,b)),rateLimit:(a,b)=>a.Ha(d=>ea(d,b)),notify:(a,b)=>{a.oa="always"==b?null:O}};var da={undefined:1,"boolean":1,number:1,string:1};c.v("extenders",c.$a);class ka{constructor(a,b,d){this.X=a;this.lb=b;this.Ca=d;this.Na=!1;this.L=this.ha=null;c.Db(this,this.A)}A(){this.Na||(this.L&&c.g.K.gb(this.ha,this.L),this.Na=!0,this.Ca(),this.X=this.lb=this.Ca=this.ha=this.L=null)}o(a){this.ha= -a;c.g.K.la(a,this.L=this.A.bind(this))}}c.V=function(){Object.setPrototypeOf(this,R);R.init(this)};var R={init:a=>{a.W=new Map;a.W.set("change",new Set);a.qb=1},subscribe:function(a,b,d){var f=this;d=d||"change";var h=new ka(f,b?a.bind(b):a,()=>{f.W.get(d).delete(h);f.Oa?.(d)});f.Qa?.(d);f.W.has(d)||f.W.set(d,new Set);f.W.get(d).add(h);return h},D(a,b){b=b||"change";"change"===b&&this.Ka();if(this.qa(b)){b="change"===b&&this.Sb||new Set(this.W.get(b));try{c.u.vb(),b.forEach(d=>{d.Na||d.lb(a)})}finally{c.u.end()}}}, -Ba(){return this.qb},dc(a){return this.Ba()!==a},Ka(){++this.qb},Ha(a){var b=this,d=c.T(b),f,h,l,e,g;b.va||(b.va=b.D,b.D=(n,p)=>{p&&"change"!==p?"beforeChange"===p?b.nb(n):b.va(n,p):b.ob(n)});var k=a(()=>{b.ia=!1;d&&e===b&&(e=b.mb?b.mb():b());var n=h||g&&b.Fa(l,e);g=h=f=!1;n&&b.va(l=e)});b.ob=(n,p)=>{p&&b.ia||(g=!p);b.Sb=new Set(b.W.get("change"));b.ia=f=!0;e=n;k()};b.nb=n=>{f||(l=n,b.va(n,"beforeChange"))};b.pb=()=>{g=!0};b.Ub=()=>{b.Fa(l,b.I(!0))&&(h=!0)}},qa(a){return(this.W.get(a)||[]).size}, +c.v("utils.domNodeDisposal",c.g.K);c.v("utils.domNodeDisposal.addDisposeCallback",c.g.K.la);c.$a={debounce:(a,b)=>a.Ha(d=>ha(d,b)),rateLimit:(a,b)=>a.Ha(d=>fa(d,b)),notify:(a,b)=>{a.oa="always"==b?null:O}};var ea={undefined:1,"boolean":1,number:1,string:1};c.v("extenders",c.$a);class la{constructor(a,b,d){this.X=a;this.lb=b;this.Ca=d;this.Na=!1;this.L=this.ha=null;c.Db(this,this.A)}A(){this.Na||(this.L&&c.g.K.gb(this.ha,this.L),this.Na=!0,this.Ca(),this.X=this.lb=this.Ca=this.ha=this.L=null)}o(a){this.ha= +a;c.g.K.la(a,this.L=this.A.bind(this))}}c.V=function(){Object.setPrototypeOf(this,R);R.init(this)};var R={init:a=>{a.W=new Map;a.W.set("change",new Set);a.qb=1},subscribe:function(a,b,d){var f=this;d=d||"change";var h=new la(f,b?a.bind(b):a,()=>{f.W.get(d).delete(h);f.Oa?.(d)});f.Qa?.(d);f.W.has(d)||f.W.set(d,new Set);f.W.get(d).add(h);return h},D(a,b){b=b||"change";"change"===b&&this.Ka();if(this.qa(b)){b="change"===b&&this.Sb||new Set(this.W.get(b));try{c.u.vb(),b.forEach(d=>{d.Na||d.lb(a)})}finally{c.u.end()}}}, +Ba(){return this.qb},dc(a){return this.Ba()!==a},Ka(){++this.qb},Ha(a){var b=this,d=c.U(b),f,h,l,e,g;b.va||(b.va=b.D,b.D=(n,p)=>{p&&"change"!==p?"beforeChange"===p?b.nb(n):b.va(n,p):b.ob(n)});var k=a(()=>{b.ia=!1;d&&e===b&&(e=b.mb?b.mb():b());var n=h||g&&b.Fa(l,e);g=h=f=!1;n&&b.va(l=e)});b.ob=(n,p)=>{p&&b.ia||(g=!p);b.Sb=new Set(b.W.get("change"));b.ia=f=!0;e=n;k()};b.nb=n=>{f||(l=n,b.va(n,"beforeChange"))};b.pb=()=>{g=!0};b.Ub=()=>{b.Fa(l,b.I(!0))&&(h=!0)}},qa(a){return(this.W.get(a)||[]).size}, Fa(a,b){return!this.oa||!this.oa(a,b)},toString:()=>"[object Object]",extend:function(a){var b=this;a&&c.g.P(a,(d,f)=>{d=c.$a[d];"function"==typeof d&&(b=d(b,f)||b)});return b}};c.V.fn=Object.setPrototypeOf(R,Function.prototype);c.ic=a=>"function"==typeof a?.subscribe&&"function"==typeof a.D;(()=>{let a=[],b,d=0;c.u={vb:f=>{a.push(b);b=f},end:()=>b=a.pop(),Nb:f=>{if(b){if(!c.ic(f))throw Error("Only subscribable things can act as dependencies");b.Wb.call(b.Xb,f,f.Tb||(f.Tb=++d))}},M(f,h,l){try{return a.push(b), b=void 0,f.apply(h,l||[])}finally{b=a.pop()}},pa:()=>b?.s.pa(),Ga:()=>b?.Ga,s:()=>b?.s}})();const B=Symbol("_latestValue");c.ba=a=>{function b(){if(0null==b[B]?void 0:b[B].length});c.V.fn.init(b);return Object.setPrototypeOf(b,L)};var L={toJSON:function(){let a=this[B];return a?.toJSON?.()||a},oa:O,I(){return this[B]},valueHasMutated:function(){this.D(this[B], -"spectate");this.D(this[B])},kb(){this.D(this[B],"beforeChange")}};Object.setPrototypeOf(L,c.V.fn);var E=c.ba.nc="__ko_proto__";L[E]=c.ba;c.T=a=>{if((a="function"==typeof a&&a[E])&&a!==L[E]&&a!==c.s.fn[E])throw Error("Invalid object that looks like an observable; possibly from another Knockout instance");return!!a};c.Hb=a=>"function"==typeof a&&(a[E]===L[E]||a[E]===c.s.fn[E]&&a.ec);c.v("observable",c.ba);c.v("isObservable",c.T);c.v("observable.fn",L);c.sa=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.");return Object.setPrototypeOf(c.ba(a),c.sa.fn).extend({trackArrayChanges:!0})};c.sa.fn=Object.setPrototypeOf({remove:function(a){for(var b=this.I(),d=!1,f="function"!=typeof a||c.T(a)?e=>e===a:a,h=b.length;h--;){var l=b[h];if(f(l)){if(b[h]!==l)throw Error("Array modified during remove; cannot remove item");d||this.kb();d=!0;b.splice(h,1)}}d&&this.valueHasMutated()}},c.ba.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)?c.sa.fn[a]=function(...b){var d=this.I();this.kb();this.xb(d,a,b);b=d[a](...b);this.valueHasMutated();return b===d?this:b}:c.sa.fn[a]=function(...b){return this()[a](...b)})});c.Gb=a=>c.T(a)&&"function"==typeof a.remove&&"function"==typeof a.push;c.v("observableArray",c.sa);c.v("isObservableArray",c.Gb);c.$a.trackArrayChanges=(a,b)=>{function d(){function m(){if(g){var q= -[].concat(a.I()||[]);if(a.qa("arrayChange")){if(!h||1++g,null,"spectate"),k=[].concat(a.I()||[]),h=null,l=a.subscribe(m))}a.Sa={};"object"==typeof b&&c.g.extend(a.Sa,b);a.Sa.sparse=!0;if(!a.xb){var f=!1,h=null,l,e,g=0,k,n=a.Qa,p=a.Oa;a.Qa=m=>{n?.call(a,m);"arrayChange"===m&&d()};a.Oa=m=>{p?.call(a,m);"arrayChange"!==m||a.qa("arrayChange")||(l?.A(),e?.A(),e=l=null,f=!1,k=void 0)};a.xb=(m,q,r)=> -{function t(A,v,G){return u[u.length]={status:A,value:v,index:G}}if(f&&!g){var u=[],y=m.length,w=r.length,z=0;switch(q){case "push":z=y;case "unshift":for(m=0;mr[0]?y+r[0]:r[0]),y);y=1===w?y:Math.min(z+(r[1]||0),y);w=z+w-2;q=Math.max(y,w);for(var C=[],F=[],N=2;z{function d(){if(0{d.A()});return d};var H={oa:O,pa(){return this[x].J},bc(){var a=[];c.g.P(this[x].B,(b,d)=>a[d.ja]=d.X);return a},bb(a){if(!this[x].J)return!1; +"spectate");this.D(this[B])},kb(){this.D(this[B],"beforeChange")}};Object.setPrototypeOf(L,c.V.fn);var E=c.ba.nc="__ko_proto__";L[E]=c.ba;c.U=a=>{if((a="function"==typeof a&&a[E])&&a!==L[E]&&a!==c.s.fn[E])throw Error("Invalid object that looks like an observable; possibly from another Knockout instance");return!!a};c.Hb=a=>"function"==typeof a&&(a[E]===L[E]||a[E]===c.s.fn[E]&&a.ec);c.v("observable",c.ba);c.v("isObservable",c.U);c.v("observable.fn",L);c.sa=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.");return Object.setPrototypeOf(c.ba(a),c.sa.fn).extend({trackArrayChanges:!0})};const ba=Symbol("IS_OBSERVABLE_ARRAY");c.sa.fn=Object.setPrototypeOf({[ba]:1,remove:function(a){for(var b=this.I(),d=!1,f="function"!=typeof a||c.U(a)?e=>e===a:a,h=b.length;h--;){var l=b[h];if(f(l)){if(b[h]!==l)throw Error("Array modified during remove; cannot remove item");d||this.kb();d=!0;b.splice(h,1)}}d&& +this.valueHasMutated()}},c.ba.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)?c.sa.fn[a]=function(...b){var d=this.I();this.kb();this.xb(d,a,b);b=d[a](...b);this.valueHasMutated();return b===d?this:b}:c.sa.fn[a]=function(...b){return this()[a](...b)})});c.Gb=a=>!(!a||!a[ba]);c.v("observableArray",c.sa);c.v("isObservableArray",c.Gb);c.$a.trackArrayChanges= +(a,b)=>{function d(){function m(){if(g){var q=[].concat(a.I()||[]);if(a.qa("arrayChange")){if(!h||1++g,null,"spectate"),k=[].concat(a.I()||[]),h=null,l=a.subscribe(m))}a.Sa={};"object"==typeof b&&c.g.extend(a.Sa,b);a.Sa.sparse=!0;if(!a.xb){var f=!1,h=null,l,e,g=0,k,n=a.Qa,p=a.Oa;a.Qa=m=>{n?.call(a,m);"arrayChange"===m&&d()};a.Oa=m=>{p?.call(a,m);"arrayChange"!==m||a.qa("arrayChange")||(l?.A(), +e?.A(),e=l=null,f=!1,k=void 0)};a.xb=(m,q,r)=>{function t(A,v,G){return u[u.length]={status:A,value:v,index:G}}if(f&&!g){var u=[],y=m.length,w=r.length,z=0;switch(q){case "push":z=y;case "unshift":for(m=0;mr[0]?y+r[0]:r[0]),y);y=1===w?y:Math.min(z+(r[1]||0),y);w=z+w-2;q=Math.max(y,w);for(var C=[],F=[],N=2;z{function d(){if(0{d.A()});return d};var H={oa:O,pa(){return this[x].J},bc(){var a=[];c.g.P(this[x].B,(b,d)=>a[d.ja]=d.X);return a},bb(a){if(!this[x].J)return!1; var b=this.bc();return b.includes(a)||!!b.find(d=>d.bb&&d.bb(a))},rb(a,b,d){if(this[x].fb&&b===this)throw Error("A 'pure' computed must not be called recursively");this[x].B[a]=d;d.ja=this[x].J++;d.ka=b.Ba()},ra(){var a,b=this[x].B;for(a in b)if(Object.prototype.hasOwnProperty.call(b,a)){var d=b[a];if(this.ua&&d.X.ia||d.X.dc(d.ka))return!0}},sc(){this[x].Ea||this.ua?.(!1)},isActive(){var a=this[x];return a.Y||0a.U(!0),b)):a.ua?a.ua(!0):a.U(!0)},U(a){var b=this[x],d=b.ma,f=!1;if(!b.Ea&&!b.$){if(b.o&&!c.g.Ya(b.o)||d?.()){if(!b.jb){this.A();return}}else b.jb=!1;try{b.Ea=!0,f=this.$b(a)}finally{b.Ea=!1}return f}},$b(a){var b=this[x],d=b.fb?void 0:!b.J;var f={Yb:this,ya:b.B,Va:b.J};c.u.vb({Xb:f,Wb:ia,s:this,Ga:d});b.B={};b.J=0;a:{try{var h=b.Mb();break a}finally{c.u.end(),f.Va&&!b.C&&c.g.P(f.ya,ha),b.aa=b.Y= -!1}h=void 0}b.J?f=this.Fa(b.N,h):(this.A(),f=!0);f&&(b.C?this.Ka():this.D(b.N,"beforeChange"),b.N=h,this.D(b.N,"spectate"),!b.C&&a&&this.D(b.N),this.pb&&this.pb());d&&this.D(b.N,"awake");return f},I(a){var b=this[x];(b.Y&&(a||!b.J)||b.C&&this.ra())&&this.U();return b.N},Ha(a){var b=this;c.V.fn.Ha.call(b,a);b.mb=()=>{b[x].C||(b[x].aa?b.U():b[x].Y=!1);return b[x].N};b.ua=d=>{b.nb(b[x].N);b[x].Y=!0;d&&(b[x].aa=!0);b.ob(b,!d)}},A(){var a=this[x];!a.C&&a.B&&c.g.P(a.B,(b,d)=>d.A?.());a.o&&a.Xa&&c.g.K.gb(a.o, -a.Xa);a.B=void 0;a.J=0;a.$=!0;a.aa=!1;a.Y=!1;a.C=!1;a.o=void 0;a.ma=void 0;a.Mb=void 0}},la={Qa(a){var b=this,d=b[x];if(!d.$&&d.C&&"change"==a){d.C=!1;if(d.aa||b.ra())d.B=null,d.J=0,b.U()&&b.Ka();else{var f=[];c.g.P(d.B,(h,l)=>f[l.ja]=h);f.forEach((h,l)=>{var e=d.B[h],g=b.Qb(e.X);g.ja=l;g.ka=e.ka;d.B[h]=g});b.ra()&&b.U()&&b.Ka()}d.$||b.D(d.N,"awake")}},Oa(a){var b=this[x];b.$||"change"!=a||this.qa("change")||(c.g.P(b.B,(d,f)=>{f.A&&(b.B[d]={X:f.X,ja:f.ja,ka:f.ka},f.A())}),b.C=!0,this.D(void 0,"asleep"))}, -Ba(){var a=this[x];a.C&&(a.aa||this.ra())&&this.U();return c.V.fn.Ba.call(this)}};Object.setPrototypeOf(H,c.V.fn);var S=c.ba.nc;H[S]=c.s;c.v("computed",c.s);c.v("isComputed",a=>"function"==typeof a&&a[S]===H[S]);c.v("computed.fn",H);c.Db(H,H.A);c.Lb=a=>{if("function"===typeof a)return c.s(a,{pure:!0});a={...a,pure:!0};return c.s(a)};c.F={R:a=>{switch(a.nodeName){case "OPTION":return!0===a.__ko__hasDomDataOptionValue__?c.g.j.get(a,c.h.options.eb):a.value;case "SELECT":return 0<=a.selectedIndex?c.F.R(a.options[a.selectedIndex]): +this)},Bb(){var a=this,b=a.throttleEvaluation;0<=b?(clearTimeout(this[x].Cb),this[x].Cb=setTimeout(()=>a.T(!0),b)):a.ua?a.ua(!0):a.T(!0)},T(a){var b=this[x],d=b.ma,f=!1;if(!b.Ea&&!b.$){if(b.o&&!c.g.Ya(b.o)||d?.()){if(!b.jb){this.A();return}}else b.jb=!1;try{b.Ea=!0,f=this.$b(a)}finally{b.Ea=!1}return f}},$b(a){var b=this[x],d=b.fb?void 0:!b.J;var f={Yb:this,ya:b.B,Va:b.J};c.u.vb({Xb:f,Wb:ja,s:this,Ga:d});b.B={};b.J=0;a:{try{var h=b.Mb();break a}finally{c.u.end(),f.Va&&!b.C&&c.g.P(f.ya,ia),b.aa=b.Y= +!1}h=void 0}b.J?f=this.Fa(b.N,h):(this.A(),f=!0);f&&(b.C?this.Ka():this.D(b.N,"beforeChange"),b.N=h,this.D(b.N,"spectate"),!b.C&&a&&this.D(b.N),this.pb&&this.pb());d&&this.D(b.N,"awake");return f},I(a){var b=this[x];(b.Y&&(a||!b.J)||b.C&&this.ra())&&this.T();return b.N},Ha(a){var b=this;c.V.fn.Ha.call(b,a);b.mb=()=>{b[x].C||(b[x].aa?b.T():b[x].Y=!1);return b[x].N};b.ua=d=>{b.nb(b[x].N);b[x].Y=!0;d&&(b[x].aa=!0);b.ob(b,!d)}},A(){var a=this[x];!a.C&&a.B&&c.g.P(a.B,(b,d)=>d.A?.());a.o&&a.Xa&&c.g.K.gb(a.o, +a.Xa);a.B=void 0;a.J=0;a.$=!0;a.aa=!1;a.Y=!1;a.C=!1;a.o=void 0;a.ma=void 0;a.Mb=void 0}},ma={Qa(a){var b=this,d=b[x];if(!d.$&&d.C&&"change"==a){d.C=!1;if(d.aa||b.ra())d.B=null,d.J=0,b.T()&&b.Ka();else{var f=[];c.g.P(d.B,(h,l)=>f[l.ja]=h);f.forEach((h,l)=>{var e=d.B[h],g=b.Qb(e.X);g.ja=l;g.ka=e.ka;d.B[h]=g});b.ra()&&b.T()&&b.Ka()}d.$||b.D(d.N,"awake")}},Oa(a){var b=this[x];b.$||"change"!=a||this.qa("change")||(c.g.P(b.B,(d,f)=>{f.A&&(b.B[d]={X:f.X,ja:f.ja,ka:f.ka},f.A())}),b.C=!0,this.D(void 0,"asleep"))}, +Ba(){var a=this[x];a.C&&(a.aa||this.ra())&&this.T();return c.V.fn.Ba.call(this)}};Object.setPrototypeOf(H,c.V.fn);var S=c.ba.nc;H[S]=c.s;c.v("computed",c.s);c.v("isComputed",a=>"function"==typeof a&&a[S]===H[S]);c.v("computed.fn",H);c.Db(H,H.A);c.Lb=a=>{if("function"===typeof a)return c.s(a,{pure:!0});a={...a,pure:!0};return c.s(a)};c.F={R:a=>{switch(a.nodeName){case "OPTION":return!0===a.__ko__hasDomDataOptionValue__?c.g.j.get(a,c.h.options.eb):a.value;case "SELECT":return 0<=a.selectedIndex?c.F.R(a.options[a.selectedIndex]): void 0;default:return a.value}},La:(a,b,d)=>{switch(a.nodeName){case "OPTION":"string"===typeof b?(c.g.j.set(a,c.h.options.eb,void 0),delete a.__ko__hasDomDataOptionValue__,a.value=b):(c.g.j.set(a,c.h.options.eb,b),a.__ko__hasDomDataOptionValue__=!0,a.value="number"===typeof b?b:"");break;case "SELECT":for(var f=-1,h=""===b||null==b,l=a.options.length,e;l--;)if(e=c.F.R(a.options[l]),e==b||""===e&&h){f=l;break}if(d||0<=f||h&&1 {var a=RegExp("\"(?:\\\\.|[^\"])*\"|'(?:\\\\.|[^'])*'|`(?:\\\\.|[^`])*`|/\\*(?:[^*]|\\*+[^*/])*\\*+/|//.*\n|/(?:\\\\.|[^/])+/w*|[^\\s:,/][^,\"'`{}()/:[\\]]*[^\\s,\"'`{}()/:[\\]]|[^\\s]","g"),b=/[\])"'A-Za-z0-9_$]+$/,d={"in":1,"return":1,"typeof":1},f=h=>{h=c.g.Pb(h);123===h.charCodeAt(0)&&(h=h.slice(1,-1));h+="\n,";var l=[],e=h.match(a),g=[],k=0;if(1=k){l.push(q&&g.length?{key:q,value:g.join("")}:{unknown:q||g.join("")});var q= k=0;g=[];continue}}else if(58===m){if(!k&&!q&&1===g.length){q=g.pop();continue}}else if(47===m&&1{var l=[],e=(g, -k)=>{var n=c.h[g];n?.preprocess&&!n.preprocess(k,g,e)||l.push("'"+g+"':function(){return "+(k+" }"))};f(h).forEach(g=>e(g.key||g.unknown,g.value));return l.join(",")},jc:(h,l)=>-1e.key==l),Ma:(h,l,e,g,k)=>{if(h&&c.T(h))!c.Hb(h)||k&&h.I()===g||h(g);else throw Error(`${e} , must be observable`);}}})();(()=>{function a(e){return 8==e.nodeType&&f.test(e.nodeValue)}function b(e){return 8==e.nodeType&&h.test(e.nodeValue)}function d(e,g){for(var k=e,n=1,p=[];k=k.nextSibling;){if(b(k)&&(c.g.j.set(k, +k)=>{var n=c.h[g];n?.preprocess&&!n.preprocess(k,g,e)||l.push("'"+g+"':function(){return "+(k+" }"))};f(h).forEach(g=>e(g.key||g.unknown,g.value));return l.join(",")},jc:(h,l)=>-1e.key==l),Ma:(h,l,e,g,k)=>{if(h&&c.U(h))!c.Hb(h)||k&&h.I()===g||h(g);else throw Error(`${e} , must be observable`);}}})();(()=>{function a(e){return 8==e.nodeType&&f.test(e.nodeValue)}function b(e){return 8==e.nodeType&&h.test(e.nodeValue)}function d(e,g){for(var k=e,n=1,p=[];k=k.nextSibling;){if(b(k)&&(c.g.j.set(k, l,!0),!--n))return p;p.push(k);a(k)&&++n}if(!g)throw Error("Cannot find closing comment tag to match: "+e.nodeValue);return null}var f=/^\s*ko(?:\s+([\s\S]+))?\s*$/,h=/^\s*\/ko\s*$/,l="__ko_matchedEndComment__";c.m={ca:{},childNodes:e=>a(e)?d(e):e.childNodes,na:e=>{a(e)?(e=d(e))&&[...e].forEach(g=>c.removeNode(g)):c.g.Za(e)},ta:(e,g)=>{a(e)?(c.m.na(e),e.after(...g)):c.g.ta(e,g)},prepend:(e,g)=>{a(e)?e.nextSibling.before(g):e.prepend(g)},hc:(e,g,k)=>{k?k.after(g):c.m.prepend(e,g)},firstChild:e=>{if(a(e))return e= -e.nextSibling,!e||b(e)?null:e;let g=e.firstChild;if(g&&b(g))throw Error("Found invalid end comment, as the first child of "+e);return g},nextSibling:e=>{if(a(e)){var g=d(e,void 0);e=g?(g.length?g[g.length-1]:e).nextSibling:null}if((g=e.nextSibling)&&b(g)){if(b(g)&&!c.g.j.get(g,l))throw Error("Found end comment without a matching opening comment, as child of "+e);return null}return g},cc:a,rc:e=>(e=e.nodeValue.match(f))?e[1]:null}})();const ba=new Map;c.wb=new class{kc(a){switch(a.nodeType){case 1:return null!= -a.getAttribute("data-bind");case 8:return c.m.cc(a)}return!1}ac(a,b){a:{switch(a.nodeType){case 1:var d=a.getAttribute("data-bind");break a;case 8:d=c.m.rc(a);break a}d=null}if(d)try{let h=ba.get(d);if(!h){var f="with($context){with($data||{}){return{"+c.S.mc(d)+"}}}";h=new Function("$context","$element",f);ba.set(d,h)}return h(b,a)}catch(h){throw h.message="Unable to parse bindings.\nBindings value: "+d+"\nMessage: "+h.message,h;}return null}};const J=Symbol("_subscribable"),M=Symbol("_ancestorBindingInfo"), -aa=Symbol("_dataDependency"),ca={},I=c.g.j.Z();c.h={};c.ea=class{constructor(a,b,d,f,h){var l=this,e=a===ca,g=e?void 0:a,k="function"==typeof g&&!c.T(g),n=h?.dataDependency;a=()=>{var m=k?g():g,q=c.g.i(m);b?(c.g.extend(l,b),M in b&&(l[M]=b[M])):(l.$parents=[],l.$root=q,l.ko=c);l[J]=p;e?q=l.$data:(l.$rawData=m,l.$data=q);d&&(l[d]=q);f?.(l,b,q);if(b?.[J]&&!c.u.s().bb(b[J]))b[J]();n&&(l[aa]=n);return l.$data};if(h?.exportDependencies)a();else{var p=c.Lb(a);p.I();p.isActive()?p.oa=null:l[J]=void 0}}createChildContext(a, -b,d,f){!f&&b&&"object"==typeof b&&(f=b,b=f.as,d=f.extend);return new c.ea(a,this,b,(h,l)=>{h.$parentContext=l;h.$parent=l.$data;h.$parents=(l.$parents||[]).slice(0);h.$parents.unshift(h.$parent);d&&d(h)},f)}extend(a,b){return new c.ea(ca,this,null,d=>c.g.extend(d,"function"==typeof a?a(d):a),b)}};class ma{constructor(a,b,d){this.L=a;this.ha=b;this.wa=new Set;this.G=!1;b.H||c.g.K.la(a,W);d?.H&&(d.H.wa.add(a),this.Ca=d)}Kb(){this.Ca?.H?.Zb(this.L)}Zb(a){this.wa.delete(a);this.wa.size||this.zb?.()}zb(){this.G= +e.nextSibling,!e||b(e)?null:e;let g=e.firstChild;if(g&&b(g))throw Error("Found invalid end comment, as the first child of "+e);return g},nextSibling:e=>{if(a(e)){var g=d(e,void 0);e=g?(g.length?g[g.length-1]:e).nextSibling:null}if((g=e.nextSibling)&&b(g)){if(b(g)&&!c.g.j.get(g,l))throw Error("Found end comment without a matching opening comment, as child of "+e);return null}return g},cc:a,rc:e=>(e=e.nodeValue.match(f))?e[1]:null}})();const ca=new Map;c.wb=new class{kc(a){switch(a.nodeType){case 1:return null!= +a.getAttribute("data-bind");case 8:return c.m.cc(a)}return!1}ac(a,b){a:{switch(a.nodeType){case 1:var d=a.getAttribute("data-bind");break a;case 8:d=c.m.rc(a);break a}d=null}if(d)try{let h=ca.get(d);if(!h){var f="with($context){with($data||{}){return{"+c.S.mc(d)+"}}}";h=new Function("$context","$element",f);ca.set(d,h)}return h(b,a)}catch(h){throw h.message="Unable to parse bindings.\nBindings value: "+d+"\nMessage: "+h.message,h;}return null}};const J=Symbol("_subscribable"),M=Symbol("_ancestorBindingInfo"), +aa=Symbol("_dataDependency"),da={},I=c.g.j.Z();c.h={};c.ea=class{constructor(a,b,d,f,h){var l=this,e=a===da,g=e?void 0:a,k="function"==typeof g&&!c.U(g),n=h?.dataDependency;a=()=>{var m=k?g():g,q=c.g.i(m);b?(c.g.extend(l,b),M in b&&(l[M]=b[M])):(l.$parents=[],l.$root=q,l.ko=c);l[J]=p;e?q=l.$data:(l.$rawData=m,l.$data=q);d&&(l[d]=q);f?.(l,b,q);if(b?.[J]&&!c.u.s().bb(b[J]))b[J]();n&&(l[aa]=n);return l.$data};if(h?.exportDependencies)a();else{var p=c.Lb(a);p.I();p.isActive()?p.oa=null:l[J]=void 0}}createChildContext(a, +b,d,f){!f&&b&&"object"==typeof b&&(f=b,b=f.as,d=f.extend);return new c.ea(a,this,b,(h,l)=>{h.$parentContext=l;h.$parent=l.$data;h.$parents=(l.$parents||[]).slice(0);h.$parents.unshift(h.$parent);d&&d(h)},f)}extend(a,b){return new c.ea(da,this,null,d=>c.g.extend(d,"function"==typeof a?a(d):a),b)}};class na{constructor(a,b,d){this.L=a;this.ha=b;this.wa=new Set;this.G=!1;b.H||c.g.K.la(a,W);d?.H&&(d.H.wa.add(a),this.Ca=d)}Kb(){this.Ca?.H?.Zb(this.L)}Zb(a){this.wa.delete(a);this.wa.size||this.zb?.()}zb(){this.G= !0;this.ha.H&&!this.wa.size&&(this.ha.H=null,c.g.K.gb(this.L,W),c.l.notify(this.L,c.l.ga),this.Kb())}}c.l={G:"childrenComplete",ga:"descendantsComplete",subscribe:(a,b,d,f,h)=>{var l=c.g.j.ab(a,I,{});l.za||(l.za=new c.V);h?.notifyImmediately&&l.cb[b]&&c.u.M(d,f,[a]);return l.za.subscribe(d,f,b)},notify:(a,b)=>{var d=c.g.j.get(a,I);if(d&&(d.cb[b]=!0,d.za?.D(a,b),b==c.l.G))if(d.H)d.H.zb();else if(void 0===d.H&&d.za?.qa(c.l.ga))throw Error("descendantsComplete event not supported for bindings on this node"); -},ib:(a,b)=>{var d=c.g.j.ab(a,I,{});d.H||(d.H=new ma(a,d,b[M]));return b[M]==d?b:b.extend(f=>{f[M]=d})}};c.qc=a=>(a=c.g.j.get(a,I))&&a.context;c.sb=(a,b,d)=>Z(a,b,P(d));c.ub=(a,b)=>{1!==b.nodeType&&8!==b.nodeType||X(P(a),b)};c.tb=function(a,b,d){if(2>arguments.length){if(b=K.body,!b)throw Error("ko.applyBindings: could not find document.body; has the document been loaded?");}else if(!b||1!==b.nodeType&&8!==b.nodeType)throw Error("ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node"); +},ib:(a,b)=>{var d=c.g.j.ab(a,I,{});d.H||(d.H=new na(a,d,b[M]));return b[M]==d?b:b.extend(f=>{f[M]=d})}};c.qc=a=>(a=c.g.j.get(a,I))&&a.context;c.sb=(a,b,d)=>Z(a,b,P(d));c.ub=(a,b)=>{1!==b.nodeType&&8!==b.nodeType||X(P(a),b)};c.tb=function(a,b,d){if(2>arguments.length){if(b=K.body,!b)throw Error("ko.applyBindings: could not find document.body; has the document been loaded?");}else if(!b||1!==b.nodeType&&8!==b.nodeType)throw Error("ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node"); Y(P(a,d),b)};c.Ab=a=>(a=a&&[1,8].includes(a.nodeType)&&c.qc(a))?a.$data:void 0;c.v("bindingHandlers",c.h);c.v("applyBindings",c.tb);c.v("applyBindingAccessorsToNode",c.sb);c.v("dataFor",c.Ab);(()=>{var a=Object.create(null),b=new Map;c.Ta={get:(l,e)=>{if(b.has(l))e(b.get(l));else{var g=a[l];g?g.subscribe(e):(g=a[l]=new c.V,g.subscribe(e),h(l,k=>{b.set(l,k);delete a[l];g.D(k)}))}},register:(l,e)=>{if(!e)throw Error("Invalid configuration for "+l);if(d[l])throw Error("Component "+l+" is already registered"); d[l]=e}};var d=Object.create(null),f=(l,e)=>{throw Error(`Component '${l}': ${e}`);},h=(l,e)=>{var g={},k=d[l]||{},n=k.template;k=k.viewModel;if(n){n.element||f(l,"Unknown template value: "+n);n=n.element;var p=K.getElementById(n);p||f(l,"Cannot find element with ID "+n);p.matches("TEMPLATE")||f(l,"Template Source Element not a