From 5a0215987a96110c525a706315affa451919458f Mon Sep 17 00:00:00 2001 From: djmaze Date: Wed, 28 Oct 2020 20:19:38 +0100 Subject: [PATCH] knockoutjs replaced slow obj.__proto__ with Object.setPrototypeOf() --- .../build/output/knockout-latest.debug.js | 44 +---- .../knockout/build/output/knockout-latest.js | 169 +++++++++--------- .../src/subscribables/dependentObservable.js | 10 +- .../knockout/src/subscribables/observable.js | 10 +- .../src/subscribables/observableArray.js | 6 +- .../src/subscribables/subscribable.js | 6 +- vendors/knockout/src/utils.js | 12 -- 7 files changed, 100 insertions(+), 157 deletions(-) diff --git a/vendors/knockout/build/output/knockout-latest.debug.js b/vendors/knockout/build/output/knockout-latest.debug.js index d7bfefb67..76370956c 100644 --- a/vendors/knockout/build/output/knockout-latest.debug.js +++ b/vendors/knockout/build/output/knockout-latest.debug.js @@ -41,10 +41,6 @@ ko.utils = (() => { source && Object.entries(source).forEach(prop => target[prop[0]] = prop[1]); return target; }, - setPrototypeOf = (obj, proto) => { - obj.__proto__ = proto; - return obj; - }, // For details on the pattern for changing node classes // see: https://github.com/knockout/knockout/issues/1597 toggleDomNodeCssClass = (node, classNames, shouldHaveClass) => { @@ -56,8 +52,6 @@ ko.utils = (() => { } }; - var canSetPrototype = ({ __proto__: [] } instanceof Array); - return { arrayRemoveItem: (array, itemToRemove) => { var index = array.indexOf(itemToRemove); @@ -69,14 +63,8 @@ ko.utils = (() => { } }, - canSetPrototype: canSetPrototype, - extend: extend, - setPrototypeOf: setPrototypeOf, - - setPrototypeOfOrExtend: canSetPrototype ? setPrototypeOf : extend, - objectForEach: objectForEach, objectMap: (source, mapping, mappingOwner) => { @@ -614,7 +602,7 @@ ko.subscription.prototype.disposeWhenNodeIsRemoved = function (node) { }; ko.subscribable = function () { - ko.utils.setPrototypeOfOrExtend(this, ko_subscribable_fn); + Object.setPrototypeOf(this, ko_subscribable_fn); ko_subscribable_fn.init(this); } @@ -774,9 +762,7 @@ ko.exportProperty(ko_subscribable_fn, 'getSubscriptionsCount', ko_subscribable_f // For browsers that support proto assignment, we overwrite the prototype of each // observable instance. Since observables are functions, we need Function.prototype // to still be in the prototype chain. -if (ko.utils.canSetPrototype) { - ko.utils.setPrototypeOf(ko_subscribable_fn, Function.prototype); -} +Object.setPrototypeOf(ko_subscribable_fn, Function.prototype); ko.subscribable['fn'] = ko_subscribable_fn; @@ -866,14 +852,10 @@ ko.observable = initialValue => { observable[observableLatestValue] = initialValue; // Inherit from 'subscribable' - if (!ko.utils.canSetPrototype) { - // 'subscribable' won't be on the prototype chain unless we put it there directly - ko.utils.extend(observable, ko.subscribable['fn']); - } ko.subscribable['fn'].init(observable); // Inherit from 'observable' - ko.utils.setPrototypeOfOrExtend(observable, observableFn); + Object.setPrototypeOf(observable, observableFn); return observable; } @@ -895,9 +877,7 @@ var observableFn = { // Note that for browsers that don't support proto assignment, the // inheritance chain is created manually in the ko.observable constructor -if (ko.utils.canSetPrototype) { - ko.utils.setPrototypeOf(observableFn, ko.subscribable['fn']); -} +Object.setPrototypeOf(observableFn, ko.subscribable['fn']); var protoProperty = ko.observable.protoProperty = '__ko_proto__'; observableFn[protoProperty] = ko.observable; @@ -927,7 +907,7 @@ ko.observableArray = initialValues => { throw new Error("The argument passed when initializing an observable array must be an array, or null, or undefined."); var result = ko.observable(initialValues); - ko.utils.setPrototypeOfOrExtend(result, ko.observableArray['fn']); + Object.setPrototypeOf(result, ko.observableArray['fn']); return result.extend({'trackArrayChanges':true}); }; @@ -979,9 +959,7 @@ ko.observableArray['fn'] = { // Note that for browsers that don't support proto assignment, the // inheritance chain is created manually in the ko.observableArray constructor -if (ko.utils.canSetPrototype) { - ko.utils.setPrototypeOf(ko.observableArray['fn'], ko.observable['fn']); -} +Object.setPrototypeOf(ko.observableArray['fn'], ko.observable['fn']); // Populate ko.observableArray.fn with read/write functions from native arrays // Important: Do not add any additional functions here that may reasonably be used to *read* data from the array @@ -1233,14 +1211,10 @@ ko.computed = function (evaluatorFunctionOrOptions, evaluatorFunctionTarget, opt computedObservable.hasWriteFunction = typeof writeFunction === "function"; // Inherit from 'subscribable' - if (!ko.utils.canSetPrototype) { - // 'subscribable' won't be on the prototype chain unless we put it there directly - ko.utils.extend(computedObservable, ko.subscribable['fn']); - } ko.subscribable['fn'].init(computedObservable); // Inherit from 'computed' - ko.utils.setPrototypeOfOrExtend(computedObservable, computedFn); + Object.setPrototypeOf(computedObservable, computedFn); if (options['pure']) { state.pure = true; @@ -1659,9 +1633,7 @@ var deferEvaluationOverrides = { // Note that for browsers that don't support proto assignment, the // inheritance chain is created manually in the ko.computed constructor -if (ko.utils.canSetPrototype) { - ko.utils.setPrototypeOf(computedFn, ko.subscribable['fn']); -} +Object.setPrototypeOf(computedFn, ko.subscribable['fn']); // Set the proto values for ko.computed var protoProp = ko.observable.protoProperty; // == "__ko_proto__" diff --git a/vendors/knockout/build/output/knockout-latest.js b/vendors/knockout/build/output/knockout-latest.js index c07c75a3f..a7d63949d 100644 --- a/vendors/knockout/build/output/knockout-latest.js +++ b/vendors/knockout/build/output/knockout-latest.js @@ -4,88 +4,87 @@ * License: MIT (http://www.opensource.org/licenses/mit-license.php) */ -(D=>{function I(b,d){return null===b||typeof b in ha?b===d:!1}function G(b,d){var e;return()=>{e||(e=a.a.setTimeout(()=>{e=void 0;b()},d))}}function J(b,d){var e;return()=>{clearTimeout(e);e=a.a.setTimeout(b,d)}}function U(b,d){null!==d&&d.s&&d.s()}function Y(b,d){var e=this.zc,g=e[E];g.ea||(this.fb&&this.Ka[d]?(e.Nb(d,b,this.Ka[d]),this.Ka[d]=null,--this.fb):g.u[d]||e.Nb(d,b,g.v?{X:b}:e.nc(b)),b.oa&&b.rc())}var V=D.document,Z={},a="undefined"!==typeof Z?Z:{};a.m=(b,d)=>{b=b.split(".");for(var e= -a,g=0;g{b[d]=e};a.version="3.5.1-sm";a.m("version",a.version);a.a=(()=>{const b=(h,l,c,f)=>Array.prototype[h].call(l,c,f),d=(h,l)=>{l&&Object.entries(l).forEach(c=>h[c[0]]=c[1]);return h},e=(h,l)=>{h.__proto__=l;return h};var g={__proto__:[]}instanceof Array;return{Ga:(h,l)=>{l=h.indexOf(l);0h&&Object.entries(h).forEach(c=>l(c[0],c[1])),za:(h,l,c)=>{if(!h)return h; -var f={};Object.entries(h).forEach(k=>f[k[0]]=l.call(c,k[1],k[0],h));return f},ib:h=>{for(;h.firstChild;)a.removeNode(h.firstChild)},qb:h=>{var l=[...h],c=(l[0]&&l[0].ownerDocument||V).createElement("div");h.forEach(f=>c.append(a.ka(f)));return c},Ia:(h,l)=>b("map",h,l?c=>a.ka(c.cloneNode(!0)):c=>c.cloneNode(!0)),Aa:(h,l)=>{a.a.ib(h);l&&h.append.apply(h,l)},wa:(h,l)=>{if(h.length){for(l=8===l.nodeType&&l.parentNode||l;h.length&&h[0].parentNode!==l;)h.splice(0,1);for(;1null==h?"":h.trim?h.trim():h.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g,""),Vc:(h,l)=>{h=h||"";return l.length>h.length?!1:h.substring(0,l.length)===l},Cc:(h,l)=>l.contains(1!==h.nodeType?h.parentNode:h),hb:h=>a.a.Cc(h,h.ownerDocument.documentElement),aa:h=>h&&h.tagName&&h.tagName.toLowerCase(),Tb:h=>a.onError?function(){try{return h.apply(this,arguments)}catch(l){throw a.onError&& -a.onError(l),l;}}:h,setTimeout:(h,l)=>setTimeout(a.a.Tb(h),l),Xb:h=>setTimeout(()=>{a.onError&&a.onError(h);throw h;},0),K:(h,l,c)=>{h.addEventListener(l,a.a.Tb(c),!1)},oc:(h,l)=>{if(!h||!h.nodeType)throw Error("element must be a DOM node when calling triggerEvent");h.dispatchEvent(new Event(l))},g:h=>a.O(h)?h():h,Pc:h=>a.O(h)?h.D():h,Cb:(h,l,c)=>{if(l){var f=c?"add":"remove";l.split(/\s+/).forEach(k=>h.classList[f](k))}},vb:(h,l)=>h.textContent=a.a.g(l)||""}})();a.m("utils",a.a);a.m("unwrap",a.a.g); -a.a.b=new function(){var b=0,d="__ko__"+Date.now(),e=(g,h)=>{var l=g[d];!l&&h&&(l=g[d]={});return l};return{get:(g,h)=>(g=e(g,!1))&&g[h],set:(g,h,l)=>{(g=e(g,void 0!==l))&&(g[h]=l)},lb:(g,h,l)=>{g=e(g,!0);return g[h]||(g[h]=l)},clear:g=>g[d]?(delete g[d],!0):!1,W:()=>b++ +d}};a.a.N=new function(){function b(c,f){var k=a.a.b.get(c,g);void 0===k&&f&&(k=[],a.a.b.set(c,g,k));return k}function d(c){var f=b(c,!1);if(f){f=f.slice(0);for(var k=0;k{if("function"!=typeof f)throw Error("Callback must be a function");b(c,!0).push(f)},ub:(c,f)=>{var k=b(c,!1);k&&(a.a.Ga(k,f),0==k.length&&a.a.b.set(c,g,void 0))},ka:c=>{a.o.I(()=>{h[c.nodeType]&&(d(c),l[c.nodeType]&&e(c.getElementsByTagName("*")))});return c},removeNode:c=>{a.ka(c);c.parentNode&& -c.parentNode.removeChild(c)}}};a.ka=a.a.N.ka;a.removeNode=a.a.N.removeNode;a.m("utils.domNodeDisposal",a.a.N);a.m("utils.domNodeDisposal.addDisposeCallback",a.a.N.ra);(()=>{var b=[0,"",""],d=[1,"","
"],e=[3,"","
"],g=[1,""],h={thead:d,tbody:d,tfoot:d,tr:[2,"","
"],td:e,th:e,option:g,optgroup:g};a.a.Sa=(l,c)=>{c||(c=V);var f=a.a.xb(l).toLowerCase();c=c.createElement("div");f=(f= -f.match(/^(?:\x3c!--.*?--\x3e\s*?)*?<([a-z]+)[\s>]/))&&h[f[1]]||b;var k=f[0];for(c.innerHTML="
"+f[1]+l+f[2]+"
";k--;)c=c.lastChild;return[...c.lastChild.childNodes]};a.a.Nc=(l,c)=>{l=a.a.Sa(l,c);return l.length&&l[0].parentElement||a.a.qb(l)};a.a.mc=(l,c)=>{a.a.ib(l);c=a.a.g(c);if(null!==c&&void 0!==c){"string"!=typeof c&&(c=c.toString());c=a.a.Sa(c,l.ownerDocument);for(var f=0;f{function b(){if(e)for(var c=e,f=0,k;h -c){if(5E3<=++f){h=e;a.a.Xb(Error("'Too much recursion' after processing "+f+" task groups."));break}c=e}try{k()}catch(m){a.a.Xb(m)}}h=e=d.length=0}var d=[],e=0,g=1,h=0,l=(c=>{var f=V.createElement("div");(new MutationObserver(c)).observe(f,{attributes:!0});return()=>f.classList.toggle("foo")})(b);return{kc:c=>{e||l(b);d[e++]=c;return g++},cancel:c=>{c-=g-e;c>=h&&c{b.throttleEvaluation=d;var e=null;return a.i({read:b,write:g=>{clearTimeout(e); -e=a.a.setTimeout(()=>b(g),d)}})},rateLimit:(b,d)=>{if("number"==typeof d)var e=d;else{e=d.timeout;var g=d.method}var h="function"==typeof g?g:"notifyWhenChangesStop"==g?J:G;b.pb(l=>h(l,e,d))},notify:(b,d)=>{b.equalityComparer="always"==d?null:I}};var ha={undefined:1,"boolean":1,number:1,string:1};a.m("extenders",a.jb);a.yb=function(b,d,e){this.X=b;this.Eb=d;this.Fb=e;this.Ya=!1;this.Da=this.Za=null;a.Z(this,"dispose",this.s);a.Z(this,"disposeWhenNodeIsRemoved",this.j)};a.yb.prototype.s=function(){this.Ya|| -(this.Da&&a.a.N.ub(this.Za,this.Da),this.Ya=!0,this.Fb(),this.X=this.Eb=this.Fb=this.Za=this.Da=null)};a.yb.prototype.j=function(b){this.Za=b;a.a.N.ra(b,this.Da=this.s.bind(this))};a.T=function(){a.a.Ta(this,O);O.Pa(this)};var O={Pa:b=>{b.L={change:[]};b.Lb=1},subscribe:function(b,d,e){var g=this;e=e||"change";var h=new a.yb(g,d?b.bind(d):b,()=>{a.a.Ga(g.L[e],h);g.Fa&&g.Fa(e)});g.sa&&g.sa(e);g.L[e]||(g.L[e]=[]);g.L[e].push(h);return h},notifySubscribers:function(b,d){d=d||"change";"change"===d&&this.Va(); -if(this.xa(d)){d="change"===d&&this.pc||this.L[d].slice(0);try{a.o.Qb();for(var e=0,g;g=d[e];++e)g.Ya||g.Eb(b)}finally{a.o.end()}}},Na:function(){return this.Lb},Hc:function(b){return this.Na()!==b},Va:function(){++this.Lb},pb:function(b){var d=this,e=a.O(d),g,h,l,c,f;d.Ea||(d.Ea=d.notifySubscribers,d.notifySubscribers=function(m,q){q&&"change"!==q?"beforeChange"===q?this.Ib(m):this.Ea(m,q):this.Jb(m)});var k=b(()=>{d.oa=!1;e&&c===d&&(c=d.Gb?d.Gb():d());var m=h||f&&d.Ra(l,c);f=h=g=!1;m&&d.Ea(l=c)}); -d.Jb=(m,q)=>{q&&d.oa||(f=!q);d.pc=d.L.change.slice(0);d.oa=g=!0;c=m;k()};d.Ib=m=>{g||(l=m,d.Ea(m,"beforeChange"))};d.Kb=()=>{f=!0};d.rc=()=>{d.Ra(l,d.D(!0))&&(h=!0)}},xa:function(b){return this.L[b]&&this.L[b].length},Fc:function(b){if(b)return this.L[b]&&this.L[b].length||0;var d=0;a.a.J(this.L,(e,g)=>d+=g.length);return d},Ra:function(b,d){return!this.equalityComparer||!this.equalityComparer(b,d)},toString:()=>"[object Object]",extend:function(b){var d=this;b&&a.a.J(b,(e,g)=>{e=a.jb[e];"function"== -typeof e&&(d=e(d,g)||d)});return d}};a.Z(O,"init",O.Pa);a.Z(O,"subscribe",O.subscribe);a.Z(O,"extend",O.extend);a.Z(O,"getSubscriptionsCount",O.Fc);a.a.ja&&a.a.setPrototypeOf(O,Function.prototype);a.T.fn=O;a.Jc=b=>null!=b&&"function"==typeof b.subscribe&&"function"==typeof b.notifySubscribers;a.ta=a.o=(()=>{function b(l){e.push(g);g=l}function d(){g=e.pop()}var e=[],g,h=0;return{Qb:b,end:d,jc:l=>{if(g){if(!a.Jc(l))throw Error("Only subscribable things can act as dependencies");g.wc.call(g.xc,l,l.qc|| -(l.qc=++h))}},I:(l,c,f)=>{try{return b(),l.apply(c,f||[])}finally{d()}},Ma:()=>{if(g)return g.i.Ma()},kb:()=>{if(g)return g.i.kb()},nb:()=>{if(g)return g.nb},i:()=>{if(g)return g.i}}})();var P=Symbol("_latestValue");a.ga=b=>{function d(){if(0{if((b="function"==typeof b&&b[R])&&b!==Q[R]&&b!==a.i.fn[R])throw Error("Invalid object that looks like an observable; possibly from another Knockout instance");return!!b};a.ec=b=>"function"==typeof b&&(b[R]===Q[R]||b[R]===a.i.fn[R]&&b.bc); -a.m("observable",a.ga);a.m("isObservable",a.O);a.m("observable.fn",Q);a.Z(Q,"valueHasMutated",Q.Ca);a.ma=b=>{b=b||[];if("object"!=typeof b||!("length"in b))throw Error("The argument passed when initializing an observable array must be an array, or null, or undefined.");b=a.ga(b);a.a.Ta(b,a.ma.fn);return b.extend({trackArrayChanges:!0})};a.ma.fn={remove:function(b){for(var d=this.D(),e=[],g="function"!=typeof b||a.O(b)?function(c){return c===b}:b,h=0;hb.includes(g)):[]},indexOf:function(b){return this().indexOf(b)}};a.a.ja&&a.a.setPrototypeOf(a.ma.fn,a.ga.fn);"pop push reverse shift sort splice unshift".split(" ").forEach(b=>{a.ma.fn[b]=function(){var d=this.D();this.Wa(); -this.Sb(d,b,arguments);var e=d[b].apply(d,arguments);this.Ca();return e===d?this:e}});["slice"].forEach(b=>{a.ma.fn[b]=function(){var d=this();return d[b].apply(d,arguments)}});a.dc=b=>a.O(b)&&"function"==typeof b.remove&&"function"==typeof b.push;a.m("observableArray",a.ma);a.m("isObservableArray",a.dc);a.jb.trackArrayChanges=(b,d)=>{function e(){function p(){if(f){var u=[].concat(b.D()||[]);if(b.xa("arrayChange")){if(!h||1++f,null,"spectate"),k=[].concat(b.D()||[]),h=null,l=b.subscribe(p))}b.cb={};d&&"object"==typeof d&&a.a.extend(b.cb,d);b.cb.sparse=!0;if(!b.Sb){var g=!1,h=null,l,c,f=0,k,m=b.sa,q=b.Fa;b.sa=p=>{m&&m.call(b,p);"arrayChange"===p&&e()};b.Fa=p=>{q&&q.call(b,p);"arrayChange"!==p||b.xa("arrayChange")||(l&&l.s(),c&&c.s(),c=l=null,g=!1,k=void 0)};b.Sb=(p,u,x)=>{function v(B,A,H){return w[w.length]={status:B,value:A,index:H}}if(g&&!f){var w=[],n=p.length,r=x.length, -t=0;switch(u){case "push":t=n;case "unshift":for(u=0;ux[0]?n+x[0]:x[0]),n);n=1===r?n:Math.min(u+(x[1]||0),n);r=u+r-2;t=Math.max(n,r);for(var y=[],F=[],z=2;ub[e.pa]=e.X);return b},mb:function(b){if(!this[E].M)return!1; -var d=this.kb();return d.includes(b)?!0:!!d.find(e=>e.mb&&e.mb(b))},Nb:function(b,d,e){if(this[E].tb&&d===this)throw Error("A 'pure' computed must not be called recursively");this[E].u[b]=e;e.pa=this[E].M++;e.qa=d.Na()},ya:function(){var b,d=this[E].u;for(b in d)if(Object.prototype.hasOwnProperty.call(d,b)){var e=d[b];if(this.na&&e.X.oa||e.X.Hc(e.qa))return!0}},Yc:function(){this.na&&!this[E].Qa&&this.na(!1)},da:function(){var b=this[E];return b.$||0b.V(!0),d)):b.na?b.na(!0):b.V(!0)},V:function(b){var d=this[E],e=d.ua,g=!1;if(!d.Qa&&!d.ea){if(d.j&&!a.a.hb(d.j)||e&&e()){if(!d.zb){this.s();return}}else d.zb=!1;d.Qa=!0;try{g=this.Ec(b)}finally{d.Qa=!1}return g}},Ec:function(b){var d=this[E],e=d.tb?void 0:!d.M;var g={zc:this,Ka:d.u,fb:d.M};a.o.Qb({xc:g,wc:Y,i:this,nb:e});d.u= -{};d.M=0;var h=this.Dc(d,g);d.M?g=this.Ra(d.P,h):(this.s(),g=!0);g&&(d.v?this.Va():this.notifySubscribers(d.P,"beforeChange"),d.P=h,this.notifySubscribers(d.P,"spectate"),!d.v&&b&&this.notifySubscribers(d.P),this.Kb&&this.Kb());e&&this.notifySubscribers(d.P,"awake");return g},Dc:(b,d)=>{try{var e=b.ic;return b.La?e.call(b.La):e()}finally{a.o.end(),d.fb&&!b.v&&a.a.J(d.Ka,U),b.fa=b.$=!1}},D:function(b){var d=this[E];(d.$&&(b||!d.M)||d.v&&this.ya())&&this.V();return d.P},pb:function(b){a.T.fn.pb.call(this, -b);this.Gb=function(){this[E].v||(this[E].fa?this.V():this[E].$=!1);return this[E].P};this.na=function(d){this.Ib(this[E].P);this[E].$=!0;d&&(this[E].fa=!0);this.Jb(this,!d)}},s:function(){var b=this[E];!b.v&&b.u&&a.a.J(b.u,(d,e)=>e.s&&e.s());b.j&&b.gb&&a.a.N.ub(b.j,b.gb);b.u=void 0;b.M=0;b.ea=!0;b.fa=!1;b.$=!1;b.v=!1;b.j=void 0;b.ua=void 0;b.ic=void 0;this.bc||(b.La=void 0)}},ia={sa:function(b){var d=this,e=d[E];if(!e.ea&&e.v&&"change"==b){e.v=!1;if(e.fa||d.ya())e.u=null,e.M=0,d.V()&&d.Va();else{var g= -[];a.a.J(e.u,(h,l)=>g[l.pa]=h);g.forEach((h,l)=>{var c=e.u[h],f=d.nc(c.X);f.pa=l;f.qa=c.qa;e.u[h]=f});d.ya()&&d.V()&&d.Va()}e.ea||d.notifySubscribers(e.P,"awake")}},Fa:function(b){var d=this[E];d.ea||"change"!=b||this.xa("change")||(a.a.J(d.u,(e,g)=>{g.s&&(d.u[e]={X:g.X,pa:g.pa,qa:g.qa},g.s())}),d.v=!0,this.notifySubscribers(void 0,"asleep"))},Na:function(){var b=this[E];b.v&&(b.fa||this.ya())&&this.V();return a.T.fn.Na.call(this)}},ja={sa:function(b){"change"!=b&&"beforeChange"!=b||this.D()}};a.a.ja&& -a.a.setPrototypeOf(W,a.T.fn);W[a.ga.sc]=a.i;a.m("computed",a.i);a.m("computed.fn",W);a.Z(W,"dispose",W.s);a.Rc=b=>{if("function"===typeof b)return a.i(b,void 0,{pure:!0});b=a.a.extend({},b);b.pure=!0;return a.i(b,void 0)};(()=>{a.A={S:b=>{switch(a.a.aa(b)){case "option":return!0===b.__ko__hasDomDataOptionValue__?a.a.b.get(b,a.c.options.sb):b.value;case "select":return 0<=b.selectedIndex?a.A.S(b.options[b.selectedIndex]):void 0;default:return b.value}},Xa:(b,d,e)=>{switch(a.a.aa(b)){case "option":"string"=== -typeof d?(a.a.b.set(b,a.c.options.sb,void 0),delete b.__ko__hasDomDataOptionValue__,b.value=d):(a.a.b.set(b,a.c.options.sb,d),b.__ko__hasDomDataOptionValue__=!0,b.value="number"===typeof d?d:"");break;case "select":if(""===d||null===d)d=void 0;for(var g=-1,h=0,l=b.options.length,c;h{function b(f){f=a.a.xb(f);123=== -f.charCodeAt(0)&&(f=f.slice(1,-1));f+="\n,";var k=[],m=f.match(g),q=[],p=0;if(1=p){k.push(w&&q.length?{key:w,value:q.join("")}:{unknown:w||q.join("")});var w=p=0;q=[];continue}}else if(58===v){if(!p&&!w&&1===q.length){w=q.pop();continue}}else if(47===v&&1m(v.key||v.unknown,v.value)); -p.length&&m("_ko_property_writers","{"+p.join(",")+" }");return q.join(",")},Lc:(f,k)=>{for(var m=0;m{if(f&&a.O(f))!a.ec(f)||p&&f.D()===q||f(q);else if((f=k.get("_ko_property_writers"))&&f[m])f[m](q)}}})();(()=>{function b(c){return 8==c.nodeType&&g.test(c.nodeValue)}function d(c){return 8==c.nodeType&&h.test(c.nodeValue)}function e(c,f){for(var k=c,m=1,q=[];k=k.nextSibling;){if(d(k)&&(a.a.b.set(k,l,!0),m--,0===m))return q;q.push(k); -b(k)&&m++}if(!f)throw Error("Cannot find closing comment tag to match: "+c.nodeValue);return null}var g=/^\s*ko(?:\s+([\s\S]+))?\s*$/,h=/^\s*\/ko\s*$/,l="__ko_matchedEndComment__";a.h={ha:{},childNodes:c=>b(c)?e(c):c.childNodes,va:c=>{if(b(c)){c=e(c);for(var f=0,k=c.length;f{if(b(c)){a.h.va(c);c=c.nextSibling;for(var k=0,m=f.length;k{if(b(c)){var k=c.nextSibling;c=c.parentNode}else k= -c.firstChild;c.insertBefore(f,k)},cc:(c,f,k)=>{k?(k=k.nextSibling,b(c)&&(c=c.parentNode),c.insertBefore(f,k)):a.h.prepend(c,f)},firstChild:c=>{if(b(c))return!c.nextSibling||d(c.nextSibling)?null:c.nextSibling;if(c.firstChild&&d(c.firstChild))throw Error("Found invalid end comment, as the first child of "+c);return c.firstChild},nextSibling:c=>{if(b(c)){var f=e(c,void 0);c=f?0(c=c.nodeValue.match(g))?c[1]:null}})();(function(){a.Y=function(){this.vc={}};a.a.extend(a.Y.prototype,{nodeHasBindings:b=>{switch(b.nodeType){case 1:return null!=b.getAttribute("data-bind")||a.l.getComponentNameForNode(b);case 8:return a.h.Gc(b);default:return!1}},getBindings:function(b,d){var e=this.getBindingsString(b,d);e=e?this.parseBindingsString(e,d,b):null;return a.l.Mb(e, -b,d,!1)},getBindingAccessors:function(b,d){var e=this.getBindingsString(b,d);e=e?this.parseBindingsString(e,d,b,{valueAccessors:!0}):null;return a.l.Mb(e,b,d,!0)},getBindingsString:b=>{switch(b.nodeType){case 1:return b.getAttribute("data-bind");case 8:return a.h.Wc(b)}return null},parseBindingsString:function(b,d,e,g){try{var h=this.vc,l=b+(g&&g.valueAccessors||""),c;if(!(c=h[l])){var f="with($context){with($data||{}){return{"+a.H.Qc(b,g)+"}}}";var k=new Function("$context","$element",f);c=h[l]= -k}return c(d,e)}catch(m){throw m.message="Unable to parse bindings.\nBindings value: "+b+"\nMessage: "+m.message,m;}}});a.Y.instance=new a.Y})();(()=>{function b(n){var r=(n=a.a.b.get(n,w))&&n.G;r&&(n.G=null,r.hc())}function d(n,r,t){this.node=n;this.Rb=r;this.Ha=[];this.B=!1;r.G||a.a.N.ra(n,b);t&&t.G&&(t.G.Ha.push(n),this.$a=t)}function e(n){return a.a.za(a.o.I(n),(r,t)=>()=>n()[t])}function g(n,r,t){return"function"===typeof n?e(n.bind(null,r,t)):a.a.za(n,y=>()=>y)}function h(n,r){return e(this.getBindings.bind(this, -n,r))}function l(n,r){var t=a.h.firstChild(r);if(t){var y,F=a.Y.instance,z=F.preprocessNode;if(z){for(;y=t;)t=a.h.nextSibling(y),z.call(F,y);t=a.h.firstChild(r)}for(;y=t;)t=a.h.nextSibling(y),c(n,y)}a.f.notify(r,a.f.B)}function c(n,r){var t=n;if(1===r.nodeType||a.Y.instance.nodeHasBindings(r))t=k(r,null,n).bindingContextForDescendants;t&&!x[a.a.aa(r)]&&l(t,r)}function f(n){var r=[],t={},y=[];a.a.J(n,function B(z){if(!t[z]){var A=a.getBindingHandler(z);A&&(A.after&&(y.push(z),A.after.forEach(H=>{if(n[H]){if(y.includes(H))throw Error("Cannot combine the following bindings, because they have a cyclic dependency: "+ -y.join(", "));B(H)}}),y.length--),r.push({key:z,ac:A}));t[z]=!0}});return r}function k(n,r,t){var y=a.a.b.lb(n,w,{}),F=y.tc;if(!r){if(F)throw Error("You cannot apply bindings multiple times to the same element.");y.tc=!0}F||(y.context=t);y.rb||(y.rb={});if(r&&"function"!==typeof r)var z=r;else{var B=a.Y.instance,A=B.getBindingAccessors||h,H=a.i(()=>{if(z=r?r(t,n):A.call(B,n,t)){if(t[q])t[q]();if(t[u])t[u]()}return z},null,{j:n});z&&H.da()||(H=null)}var N=t,K;if(z){var L=H?C=>()=>H()[C]():C=>z[C]; -function M(){return a.a.za(H?H():z,C=>C())}M.get=C=>z[C]&&L(C)();M.has=C=>C in z;a.f.B in z&&a.f.subscribe(n,a.f.B,()=>{var C=z[a.f.B]();if(C){var S=a.h.childNodes(n);S.length&&C(S,a.Wb(S[0]))}});a.f.ca in z&&(N=a.f.wb(n,t),a.f.subscribe(n,a.f.ca,()=>{var C=z[a.f.ca]();C&&a.h.firstChild(n)&&C(n)}));f(z).forEach(C=>{var S=C.ac.init,ca=C.ac.update,T=C.key;if(8===n.nodeType&&!a.h.ha[T])throw Error("The binding '"+T+"' cannot be used with virtual elements");try{"function"==typeof S&&a.o.I(()=>{var X= -S(n,L(T),M,N.$data,N);if(X&&X.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 ca&&a.i(()=>ca(n,L(T),M,N.$data,N),null,{j:n})}catch(X){throw X.message='Unable to process binding "'+T+": "+z[T]+'"\nMessage: '+X.message,X;}})}y=void 0===K;return{shouldBindDescendants:y,bindingContextForDescendants:y&&N}}function m(n, -r){return n&&n instanceof a.U?n:new a.U(n,void 0,void 0,r)}var q=Symbol("_subscribable"),p=Symbol("_ancestorBindingInfo"),u=Symbol("_dataDependency");a.c={};var x={script:!0,textarea:!0,template:!0};a.getBindingHandler=n=>a.c[n];var v={};a.U=function(n,r,t,y,F){function z(){var M=N?H():H,C=a.a.g(M);r?(a.a.extend(B,r),p in r&&(B[p]=r[p])):(B.$parents=[],B.$root=C,B.ko=a);B[q]=L;A?C=B.$data:(B.$rawData=M,B.$data=C);t&&(B[t]=C);y&&y(B,r,C);if(r&&r[q]&&!a.ta.i().mb(r[q]))r[q]();K&&(B[u]=K);return B.$data} -var B=this,A=n===v,H=A?void 0:n,N="function"==typeof H&&!a.O(H),K=F&&F.dataDependency;if(F&&F.exportDependencies)z();else{var L=a.Rc(z);L.D();L.da()?L.equalityComparer=null:B[q]=void 0}};a.U.prototype.createChildContext=function(n,r,t,y){!y&&r&&"object"==typeof r&&(y=r,r=y.as,t=y.extend);if(r&&y&&y.noChildContext){var F="function"==typeof n&&!a.O(n);return new a.U(v,this,null,z=>{t&&t(z);z[r]=F?n():n},y)}return new a.U(n,this,r,(z,B)=>{z.$parentContext=B;z.$parent=B.$data;z.$parents=(B.$parents|| -[]).slice(0);z.$parents.unshift(z.$parent);t&&t(z)},y)};a.U.prototype.extend=function(n,r){return new a.U(v,this,null,t=>a.a.extend(t,"function"==typeof n?n(t):n),r)};var w=a.a.b.W();d.prototype.hc=function(){this.$a&&this.$a.G&&this.$a.G.Bc(this.node)};d.prototype.Bc=function(n){a.a.Ga(this.Ha,n);!this.Ha.length&&this.B&&this.Vb()};d.prototype.Vb=function(){this.B=!0;this.Rb.G&&!this.Ha.length&&(this.Rb.G=null,a.a.N.ub(this.node,b),a.f.notify(this.node,a.f.ca),this.hc())};a.f={B:"childrenComplete", -ca:"descendantsComplete",subscribe:(n,r,t,y,F)=>{var z=a.a.b.lb(n,w,{});z.la||(z.la=new a.T);F&&F.notifyImmediately&&z.rb[r]&&a.o.I(t,y,[n]);return z.la.subscribe(t,y,r)},notify:(n,r)=>{var t=a.a.b.get(n,w);if(t&&(t.rb[r]=!0,t.la&&t.la.notifySubscribers(n,r),r==a.f.B))if(t.G)t.G.Vb();else if(void 0===t.G&&t.la&&t.la.xa(a.f.ca))throw Error("descendantsComplete event not supported for bindings on this node");},wb:(n,r)=>{var t=a.a.b.lb(n,w,{});t.G||(t.G=new d(n,t,r[p]));return r[p]==t?r:r.extend(y=> -{y[p]=t})}};a.Uc=n=>(n=a.a.b.get(n,w))&&n.context;a.ab=(n,r,t)=>k(n,r,m(t));a.Xc=(n,r,t)=>{t=m(t);return a.ab(n,g(r,t,n),t)};a.Pb=(n,r)=>{1!==r.nodeType&&8!==r.nodeType||l(m(n),r)};a.Ob=function(n,r,t){if(2>arguments.length){if(r=V.body,!r)throw Error("ko.applyBindings: could not find document.body; has the document been loaded?");}else if(!r||1!==r.nodeType&&8!==r.nodeType)throw Error("ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node");c(m(n,t),r)}; -a.Wb=n=>(n=n&&[1,8].includes(n.nodeType)&&a.Uc(n))?n.$data:void 0;a.m("bindingHandlers",a.c);a.m("applyBindings",a.Ob);a.m("applyBindingAccessorsToNode",a.ab);a.m("dataFor",a.Wb)})();(()=>{function b(c,f){return Object.prototype.hasOwnProperty.call(c,f)?c[f]:void 0}function d(c,f){var k=b(h,c);if(k)k.subscribe(f);else{k=h[c]=new a.T;k.subscribe(f);e(c,(q,p)=>{p=!(!p||!p.synchronous);l[c]={definition:q,Kc:p};delete h[c];m||p?k.notifySubscribers(q):a.Ab.kc(()=>k.notifySubscribers(q))});var m=!0}}function e(c, -f){g("getConfig",[c],k=>{k?g("loadComponent",[c,k],m=>f(m,k)):f(null,null)})}function g(c,f,k,m){m||(m=a.l.loaders.slice(0));var q=m.shift();if(q){var p=q[c];if(p){var u=!1;if(void 0!==p.apply(q,f.concat(function(x){u?k(null):null!==x?k(x):g(c,f,k,m)}))&&(u=!0,!q.suppressLoaderExceptions))throw Error("Component loaders must supply values by invoking the callback, not by returning values synchronously.");}else g(c,f,k,m)}else k(null)}var h={},l={};a.l={get:(c,f)=>{var k=b(l,c);k?k.Kc?a.o.I(()=>f(k.definition)): -a.Ab.kc(()=>f(k.definition)):d(c,f)},yc:c=>delete l[c],Hb:g};a.l.loaders=[];a.m("components",a.l)})();(()=>{function b(c,f,k,m){var q={},p=2;f=k.template;k=k.viewModel;f?a.l.Hb("loadTemplate",[c,f],u=>{q.template=u;0===--p&&m(q)}):0===--p&&m(q);k?a.l.Hb("loadViewModel",[c,k],u=>{q[l]=u;0===--p&&m(q)}):0===--p&&m(q)}function d(c,f,k){if("function"===typeof f)k(q=>new f(q));else if("function"===typeof f[l])k(f[l]);else if("instance"in f){var m=f.instance;k(()=>m)}else"viewModel"in f?d(c,f.viewModel, -k):c("Unknown viewModel value: "+f)}function e(c){if("template"==a.a.aa(c)&&c.content instanceof DocumentFragment)return a.a.Ia(c.content.childNodes);throw"Template Source Element not a