ko.utils.domNodeDisposal.addDisposeCallback to ko.addDisposeCallback

This commit is contained in:
the-djmaze 2024-10-29 22:19:26 +01:00
parent c744b83480
commit 4cd5774257
12 changed files with 111 additions and 113 deletions

View File

@ -97,7 +97,7 @@ Object.assign(ko.bindingHandlers, {
fValue.subscribe(fUpdateEditorValue);
// ko.utils.domNodeDisposal.addDisposeCallback(element, () => {
// ko.addDisposeCallback(element, () => {
// });
}
}

2
dev/External/ko.js vendored
View File

@ -31,7 +31,7 @@ export const
onEvent = (element, event, fn) => {
element.addEventListener(event, fn);
ko.utils.domNodeDisposal.addDisposeCallback(element, () => element.removeEventListener(event, fn));
ko.addDisposeCallback(element, () => element.removeEventListener(event, fn));
},
onKey = (key, element, fValueAccessor, fAllBindings, model) => {

View File

@ -80,7 +80,6 @@ class AvatarsPlugin extends \RainLoop\Plugins\AbstractPlugin
|| ($this->Config()->Get('plugin', 'favicon', false) && 'pass' == $mFrom['dkimStatus'])
)
) {
// return \MailSo\Base\Utils::UrlSafeBase64Encode(\mb_strtolower($mFrom['email']));
return 'remote';
}
if ('pass' == $mFrom['dkimStatus'] && $this->Config()->Get('plugin', 'service', true)) {
@ -186,11 +185,8 @@ class AvatarsPlugin extends \RainLoop\Plugins\AbstractPlugin
return $aResult;
}
// Only allow service icon when DKIM is valid. $bBimi is true when DKIM is valid.
private static function getServiceIcon(string $sEmail) : ?string
private static function getServicePng(string $sDomain) : ?string
{
$sDomain = \explode('@', $sEmail);
$sDomain = \array_pop($sDomain);
$aServices = [
"services/{$sDomain}",
'services/' . static::serviceDomain($sDomain)
@ -198,9 +194,20 @@ class AvatarsPlugin extends \RainLoop\Plugins\AbstractPlugin
foreach ($aServices as $service) {
$file = __DIR__ . "/images/{$service}.png";
if (\file_exists($file)) {
return 'data:image/png;base64,' . \base64_encode(\file_get_contents($file));
return $file;
}
}
return null;
}
// Only allow service icon when DKIM is valid. $bBimi is true when DKIM is valid.
private static function getServiceIcon(string $sEmail) : ?string
{
$aParts = \explode('@', $sEmail);
$file = static::getServicePng(\array_pop($aParts));
if ($file) {
return 'data:image/png;base64,' . \base64_encode(\file_get_contents($file));
}
$aResult = static::getCachedImage($sEmail);
if ($aResult) {
@ -282,20 +289,13 @@ class AvatarsPlugin extends \RainLoop\Plugins\AbstractPlugin
// Only allow service icon when DKIM is valid. $bBimi is true when DKIM is valid.
if ($bBimi && !$aResult) {
$aServices = [
"services/{$sDomain}",
'services/' . static::serviceDomain($sDomain)
];
foreach ($aServices as $service) {
$file = __DIR__ . "/images/{$service}.png";
if (\file_exists($file)) {
\MailSo\Base\Http::setLastModified(\filemtime($file));
$aResult = [
'image/png',
\file_get_contents($file)
];
break;
}
$file = static::getServicePng($sDomain);
if ($file) {
\MailSo\Base\Http::setLastModified(\filemtime($file));
$aResult = [
'image/png',
\file_get_contents($file)
];
}
if (!$aResult && $this->Config()->Get('plugin', 'favicon', false)) {

View File

@ -121,7 +121,7 @@ ko.utils = {
element.textContent = ko.utils.unwrapObservable(textContent)
};
ko.exportSymbol('utils', ko.utils);
//ko.exportSymbol('utils', ko.utils);
ko.exportSymbol('unwrap', ko.utils.unwrapObservable); // Convenient shorthand, because this is used so commonly
(() => {
@ -195,7 +195,7 @@ ko.utils.domNodeDisposal = (() => {
};
return {
'addDisposeCallback' : (node, callback) => {
addDisposeCallback : (node, callback) => {
if (typeof callback != "function")
throw Error("Callback must be a function");
getDisposeCallbacksCollection(node, 1).add(callback);
@ -232,7 +232,8 @@ ko.utils.domNodeDisposal = (() => {
})();
ko.cleanNode = ko.utils.domNodeDisposal.cleanNode; // Shorthand name for convenience
ko.removeNode = ko.utils.domNodeDisposal.removeNode; // Shorthand name for convenience
ko.exportSymbol('utils.domNodeDisposal', ko.utils.domNodeDisposal);
//ko.exportSymbol('utils.domNodeDisposal', ko.utils.domNodeDisposal);
ko.exportSymbol('addDisposeCallback', ko.utils.domNodeDisposal.addDisposeCallback);
ko['extenders'] = {
'debounce': (target, timeout) => target.limit(callback => debounce(callback, timeout)),
@ -295,7 +296,7 @@ class koSubscription
disposeWhenNodeIsRemoved(node) {
// MutationObserver ?
this._node = node;
ko.utils.domNodeDisposal['addDisposeCallback'](node, this._domNodeDisposalCallback = this['dispose'].bind(this));
ko.utils.domNodeDisposal.addDisposeCallback(node, this._domNodeDisposalCallback = this['dispose'].bind(this));
}
}
@ -881,7 +882,7 @@ ko.computed = (evaluatorFunctionOrOptions, options) => {
// Attach a DOM node disposal callback so that the computed will be proactively disposed as soon as the node is
// removed using ko.removeNode. But skip if isActive is false (there will never be any dependencies to dispose).
if (state.disposeWhenNodeIsRemoved && computedObservable.isActive()) {
ko.utils.domNodeDisposal['addDisposeCallback'](state.disposeWhenNodeIsRemoved, state.domNodeDisposalCallback = () => {
ko.utils.domNodeDisposal.addDisposeCallback(state.disposeWhenNodeIsRemoved, state.domNodeDisposalCallback = () => {
computedObservable['dispose']();
});
}
@ -1537,17 +1538,15 @@ ko.expressionRewriting = (() => {
ko.utils.setDomNodeChildren(node, childNodes);
},
prepend: (containerNode, nodeToPrepend) => {
// Start comments must always have a parent and at least one following sibling (the end comment)
isStartComment(containerNode)
? containerNode.nextSibling.before(nodeToPrepend)
: containerNode.prepend(nodeToPrepend);
},
insertAfter: (containerNode, nodeToInsert, insertAfterNode) => {
insertAfterNode
? insertAfterNode.after(nodeToInsert)
: ko.virtualElements.prepend(containerNode, nodeToInsert);
: (
// Start comments must always have a parent and at least one following sibling (the end comment)
isStartComment(containerNode)
? containerNode.nextSibling.before(nodeToInsert)
: containerNode.prepend(nodeToInsert)
);
},
firstChild: node => {
@ -1790,7 +1789,7 @@ class AsyncCompleteContext {
this.asyncDescendants = new Set;
this.childrenComplete = false;
bindingInfo.asyncContext || ko.utils.domNodeDisposal['addDisposeCallback'](node, asyncContextDispose);
bindingInfo.asyncContext || ko.utils.domNodeDisposal.addDisposeCallback(node, asyncContextDispose);
if (ancestorBindingInfo?.asyncContext) {
ancestorBindingInfo.asyncContext.asyncDescendants.add(node);
@ -2206,7 +2205,7 @@ ko.exportSymbol('bindingHandlers', ko.bindingHandlers);
};
ko.virtualElements.emptyNode(element);
ko.utils.domNodeDisposal['addDisposeCallback'](element, disposeAssociatedComponentViewModel);
ko.utils.domNodeDisposal.addDisposeCallback(element, disposeAssociatedComponentViewModel);
ko.computed(() => {
var componentName = ko.utils.unwrapObservable(valueAccessor()),

View File

@ -4,64 +4,64 @@
* License: MIT (http://www.opensource.org/licenses/mit-license.php)
*/
(Q=>{function L(a,b){return a===b&&a!==Object(a)}function ba(a,b){var d;return()=>{d||(d=setTimeout(()=>{d=0;a()},b))}}function ca(a,b){var d;return()=>{clearTimeout(d);d=setTimeout(a,b)}}function da(a,b){b?.dispose?.()}function ea(a,b){var d=this.Lb,e=d[x];e.X||(this.Ma&&this.va[b]?(d.kb(b,a,this.va[b]),this.va[b]=null,--this.Ma):e.v[b]||d.kb(b,a,e.A?{S:a}:d.Cb(a)),a.ea&&a.Gb())}var J=Q.document;const c={U:(a,b)=>{a=a.split(".");for(var d=c,e=0,g=a.length-1;e<g;e++)d=d[a[e]];d[a[g]]=b},g:{extend:(a,
b)=>b?Object.assign(a,b):a,K:(a,b)=>a&&Object.entries(a).forEach(d=>b(d[0],d[1])),Qa:a=>[...a.childNodes].forEach(b=>c.removeNode(b)),Wb:a=>{a=[...a];var b=(a[0]?.ownerDocument||J).createElement("div");a.forEach(d=>b.append(c.ha(d)));return b},ua:(a,b)=>Array.prototype.map.call(a,b?d=>c.ha(d.cloneNode(!0)):d=>d.cloneNode(!0)),pa:(a,b)=>{c.g.Qa(a);b&&a.append(...b)},xa:(a,b)=>{if(a.length){for(b=8===b.nodeType&&b.parentNode||b;a.length&&a[0].parentNode!==b;)a.splice(0,1);for(;1<a.length&&a[a.length-
1].parentNode!==b;)--a.length;if(1<a.length){b=a[0];var d=a[a.length-1];for(a.length=0;b!==d;)a.push(b),b=b.nextSibling;a.push(d)}}return a},Bb:a=>null==a?"":a.trim?a.trim():a.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g,""),Pa:a=>a.ownerDocument.documentElement.contains(1!==a.nodeType?a.parentNode:a),Db:(a,b)=>{if(!a?.nodeType)throw Error("element must be a DOM node when calling triggerEvent");a.dispatchEvent(new Event(b))},h:a=>c.W(a)?a():a,Za:(a,b)=>a.textContent=c.g.h(b)}};c.U("utils",c.g);c.U("unwrap",
c.g.h);(()=>{let a=0,b="__ko__"+Date.now(),d=new WeakMap;c.g.l={get:(e,g)=>(d.get(e)||{})[g],set:(e,g,l)=>{d.has(e)?d.get(e)[g]=l:d.set(e,{[g]:l});return l},Ra(e,g,l){return this.get(e,g)||this.set(e,g,l)},clear:e=>d.delete(e),Z:()=>a++ +b}})();c.g.N=(()=>{var a=c.g.l.Z(),b={1:1,8:1,9:1},d={1:1,9:1};const e=(f,h)=>{var k=c.g.l.get(f,a);h&&!k&&(k=new Set,c.g.l.set(f,a,k));return k},g=f=>{var h=e(f);h&&(new Set(h)).forEach(k=>k(f));c.g.l.clear(f);d[f.nodeType]&&l(f.childNodes,!0)},l=(f,h)=>{for(var k=
[],m,p=0;p<f.length;p++)if(!h||8===f[p].nodeType)if(g(k[k.length]=m=f[p]),f[p]!==m)for(;p--&&!k.includes(f[p]););};return{addDisposeCallback:(f,h)=>{if("function"!=typeof h)throw Error("Callback must be a function");e(f,1).add(h)},Ya:(f,h)=>{var k=e(f);k&&(k.delete(h),k.size||c.g.l.set(f,a,null))},ha:f=>{c.u.I(()=>{b[f.nodeType]&&(g(f),d[f.nodeType]&&l(f.getElementsByTagName("*")))});return f},removeNode:f=>{c.ha(f);f.parentNode&&f.parentNode.removeChild(f)}}})();c.ha=c.g.N.ha;c.removeNode=c.g.N.removeNode;
c.U("utils.domNodeDisposal",c.g.N);c.extenders={debounce:(a,b)=>a.Da(d=>ca(d,b)),rateLimit:(a,b)=>a.Da(d=>ba(d,b)),notify:(a,b)=>{a.ka="always"==b?null:L}};class fa{constructor(a,b,d){this.S=a;this.eb=b;this.za=d;this.Ha=!1;this.H=this.da=null}dispose(){this.Ha||(this.H&&c.g.N.Ya(this.da,this.H),this.Ha=!0,this.za(),this.S=this.eb=this.za=this.da=this.H=null)}s(a){this.da=a;c.g.N.addDisposeCallback(a,this.H=this.dispose.bind(this))}}c.P=function(){Object.setPrototypeOf(this,M);M.init(this)};var M=
{init:a=>{a.R=new Map;a.R.set("change",new Set);a.jb=1},subscribe:function(a,b,d){var e=this;d=d||"change";var g=new fa(e,b?a.bind(b):a,()=>{e.R.get(d).delete(g);e.Ia?.(d)});e.Ja?.(d);e.R.has(d)||e.R.set(d,new Set);e.R.get(d).add(g);return g},B(a,b){b=b||"change";"change"===b&&this.Ea();if(this.na(b)){b="change"===b&&this.Eb||new Set(this.R.get(b));try{c.u.nb(),b.forEach(d=>{d.Ha||d.eb(a)})}finally{c.u.end()}}},ya(){return this.jb},Rb(a){return this.ya()!==a},Ea(){++this.jb},Da(a){var b=this,d=c.W(b),
e,g,l,f,h;b.ra||(b.ra=b.B,b.B=(m,p)=>{p&&"change"!==p?"beforeChange"===p?b.gb(m):b.ra(m,p):b.hb(m)});var k=a(()=>{b.ea=!1;d&&f===b&&(f=b.fb?b.fb():b());var m=g||h&&b.Ba(l,f);h=g=e=!1;m&&b.ra(l=f)});b.hb=(m,p)=>{p&&b.ea||(h=!p);b.Eb=new Set(b.R.get("change"));b.ea=e=!0;f=m;k()};b.gb=m=>{e||(l=m,b.ra(m,"beforeChange"))};b.ib=()=>{h=!0};b.Gb=()=>{b.Ba(l,b.L(!0))&&(g=!0)}},na(a){return(this.R.get(a)||[]).size},Ba(a,b){return!this.ka||!this.ka(a,b)},toString:()=>"[object Object]",extend:function(a){var b=
this;a&&c.g.K(a,(d,e)=>{d=c.extenders[d];"function"==typeof d&&(b=d(b,e)||b)});return b}};c.P.fn=Object.setPrototypeOf(M,Function.prototype);c.Vb=a=>"function"==typeof a?.subscribe&&"function"==typeof a.B;(()=>{let a=[],b,d=0;c.u={nb:e=>{a.push(b);b=e},end:()=>b=a.pop(),zb:e=>{if(b){if(!c.Vb(e))throw Error("Only subscribable things can act as dependencies");b.Jb.call(b.Kb,e,e.Fb||(e.Fb=++d))}},I(e,g,l){try{return a.push(b),b=void 0,e.apply(g,l||[])}finally{b=a.pop()}},ma:()=>b?.o.ma(),Ca:()=>b?.Ca,
o:()=>b?.o}})();const A=Symbol("_latestValue");c.$=a=>{function b(){if(0<arguments.length)return b.Ba(b[A],arguments[0])&&(b.cb(),b[A]=arguments[0],b.valueHasMutated()),this;c.u.zb(b);return b[A]}b[A]=a;Object.defineProperty(b,"length",{get:()=>b[A]?.length});c.P.fn.init(b);return Object.setPrototypeOf(b,E)};var E={toJSON:function(){let a=this[A];return a?.toJSON?.()||a},ka:L,L(){return this[A]},valueHasMutated:function(){this.B(this[A],"spectate");this.B(this[A])},cb(){this.B(this[A],"beforeChange")}};
Object.setPrototypeOf(E,c.P.fn);var D=c.$.Zb="__ko_proto__";E[D]=c.$;c.W=a=>{if((a="function"==typeof a&&a[D])&&a!==E[D]&&a!==c.o.fn[D])throw Error("Invalid object that looks like an observable; possibly from another Knockout instance");return!!a};c.vb=a=>"function"==typeof a&&(a[D]===E[D]||a[D]===c.o.fn[D]&&a.Sb);c.U("observable",c.$);c.U("isObservable",c.W);c.U("observable.fn",E);c.observableArray=a=>{a=a||[];if(!Array.isArray(a))throw Error("The argument passed when initializing an observable array must be an array, or null, or undefined.");
return Object.setPrototypeOf(c.$(a),c.observableArray.fn).extend({trackArrayChanges:!0})};const R=Symbol("IS_OBSERVABLE_ARRAY");c.observableArray.fn=Object.setPrototypeOf({[R]:1,remove:function(a){for(var b=this.L(),d=!1,e="function"!=typeof a||c.W(a)?f=>f===a:a,g=b.length;g--;){var l=b[g];if(e(l)){if(b[g]!==l)throw Error("Array modified during remove; cannot remove item");d||this.cb();d=!0;b.splice(g,1)}}d&&this.valueHasMutated()}},c.$.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.observableArray.fn[a]=function(...b){var d=this.L();this.cb();this.pb(d,a,b);b=d[a](...b);this.valueHasMutated();return b===d?this:b}:c.observableArray.fn[a]=function(...b){return this()[a](...b)})});c.isObservableArray=a=>!(!a||!a[R]);c.extenders.trackArrayChanges=(a,b)=>{function d(){if(k){var q=[].concat(a.L()||[]);if(a.na("arrayChange")){if(!l||1<k)l=c.g.qb(m,q,a.Ka);
var r=l}m=q;l=null;k=0;r?.length&&a.B(r,"arrayChange")}}function e(){g?d():(g=!0,h=a.subscribe(()=>++k,null,"spectate"),m=[].concat(a.L()||[]),l=null,f=a.subscribe(d))}a.Ka={};"object"==typeof b&&c.g.extend(a.Ka,b);a.Ka.sparse=!0;if(!a.pb){var g=!1,l=null,f,h,k=0,m,p=a.Ja,n=a.Ia;a.Ja=q=>{p?.call(a,q);"arrayChange"===q&&e()};a.Ia=q=>{n?.call(a,q);"arrayChange"!==q||a.na("arrayChange")||(f?.dispose(),h?.dispose(),h=f=null,g=!1,m=void 0)};a.pb=(q,r,u)=>{if(g&&!k){var t=[],z=q.length,w=u.length,y=0,B=
(ha,ia,ja)=>t[t.length]={status:ha,value:ia,index:ja};switch(r){case "push":y=z;case "unshift":for(q=0;q<w;++q)B("added",u[q],y+q);break;case "pop":y=z-1;case "shift":z&&B("deleted",q[y],y);break;case "splice":y=Math.min(Math.max(0,0>u[0]?z+u[0]:u[0]),z);z=1===w?z:Math.min(y+(u[1]||0),z);w=y+w-2;r=Math.max(z,w);for(var v=[],F=[],C=2;y<r;++y,++C)y<z&&F.push(B("deleted",q[y],y)),y<w&&v.push(B("added",u[C],y));c.g.tb(F,v);break;default:return}l=t}}}};var x=Symbol("_state");c.o=(a,b)=>{function d(){if(0<
arguments.length){if("function"!==typeof e)throw Error("Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters.");e(...arguments);return this}g.X||c.u.zb(d);(g.V||g.A&&d.oa())&&d.T();return g.J}"object"===typeof a?b=a:(b=b||{},a&&(b.read=a));if("function"!=typeof b.read)throw Error("Pass a function that returns the value of the ko.computed");var e=b.write,g={J:void 0,Y:!0,V:!0,Aa:!1,ab:!1,X:!1,Xa:!1,A:!1,yb:b.read,
s:b.s||null,ia:b.ia,Oa:null,v:{},G:0,bc:null};d[x]=g;d.Sb="function"===typeof e;c.P.fn.init(d);Object.setPrototypeOf(d,K);b.pure&&(g.Xa=!0,g.A=!0,c.g.extend(d,ka));g.s&&(g.ab=!0,g.s.nodeType||(g.s=null));g.A||d.T();g.s&&d.isActive()&&c.g.N.addDisposeCallback(g.s,g.Oa=()=>{d.dispose()});return d};var K={ka:L,ma(){return this[x].G},Pb(){var a=[];c.g.K(this[x].v,(b,d)=>a[d.fa]=d.S);return a},Sa(a){if(!this[x].G)return!1;var b=this.Pb();return b.includes(a)||!!b.find(d=>d.Sa&&d.Sa(a))},kb(a,b,d){if(this[x].Xa&&
b===this)throw Error("A 'pure' computed must not be called recursively");this[x].v[a]=d;d.fa=this[x].G++;d.ga=b.ya()},oa(){var a,b=this[x].v;for(a in b)if(Object.prototype.hasOwnProperty.call(b,a)){var d=b[a];if(this.qa&&d.S.ea||d.S.Rb(d.ga))return!0}},dc(){this[x].Aa||this.qa?.(!1)},isActive(){var a=this[x];return a.V||0<a.G},ec(){this.ea?this[x].V&&(this[x].Y=!0):this.sb()},Cb(a){return a.subscribe(this.sb,this)},sb(){this.qa?this.qa(!0):this.T(!0)},T(a){var b=this[x],d=b.ia,e=!1;if(!b.Aa&&!b.X){if(b.s&&
!c.g.Pa(b.s)||d?.()){if(!b.ab){this.dispose();return}}else b.ab=!1;try{b.Aa=!0,e=this.Nb(a)}finally{b.Aa=!1}return e}},Nb(a){var b=this[x],d=b.Xa?void 0:!b.G;var e={Lb:this,va:b.v,Ma:b.G};c.u.nb({Kb:e,Jb:ea,o:this,Ca:d});b.v={};b.G=0;a:{try{var g=b.yb();break a}finally{c.u.end(),e.Ma&&!b.A&&c.g.K(e.va,da),b.Y=b.V=!1}g=void 0}b.G?e=this.Ba(b.J,g):(this.dispose(),e=!0);e&&(b.A?this.Ea():this.B(b.J,"beforeChange"),b.J=g,this.B(b.J,"spectate"),!b.A&&a&&this.B(b.J),this.ib&&this.ib());d&&this.B(b.J,"awake");
return e},L(a){var b=this[x];(b.V&&(a||!b.G)||b.A&&this.oa())&&this.T();return b.J},Da(a){var b=this;c.P.fn.Da.call(b,a);b.fb=()=>{b[x].A||(b[x].Y?b.T():b[x].V=!1);return b[x].J};b.qa=d=>{b.gb(b[x].J);b[x].V=!0;d&&(b[x].Y=!0);b.hb(b,!d)}},dispose:function(){var a=this[x];!a.A&&a.v&&c.g.K(a.v,(b,d)=>d.dispose?.());a.s&&a.Oa&&c.g.N.Ya(a.s,a.Oa);a.v=void 0;a.G=0;a.X=!0;a.Y=!1;a.V=!1;a.A=!1;a.s=void 0;a.ia=void 0;a.yb=void 0}},ka={Ja(a){var b=this,d=b[x];if(!d.X&&d.A&&"change"==a){d.A=!1;if(d.Y||b.oa())d.v=
null,d.G=0,b.T()&&b.Ea();else{var e=[];c.g.K(d.v,(g,l)=>e[l.fa]=g);e.forEach((g,l)=>{var f=d.v[g],h=b.Cb(f.S);h.fa=l;h.ga=f.ga;d.v[g]=h});b.oa()&&b.T()&&b.Ea()}d.X||b.B(d.J,"awake")}},Ia(a){var b=this[x];b.X||"change"!=a||this.na("change")||(c.g.K(b.v,(d,e)=>{e.dispose&&(b.v[d]={S:e.S,fa:e.fa,ga:e.ga},e.dispose())}),b.A=!0,this.B(void 0,"asleep"))},ya(){var a=this[x];a.A&&(a.Y||this.oa())&&this.T();return c.P.fn.ya.call(this)}};Object.setPrototypeOf(K,c.P.fn);var N=c.$.Zb;K[N]=c.o;c.o.fn=K;c.U("computed",
c.o);c.isComputed=a=>"function"==typeof a&&a[N]===K[N];c.xb=a=>{if("function"===typeof a)return c.o(a,{pure:!0});a={...a,pure:!0};return c.o(a)};c.C={M:a=>{switch(a.nodeName){case "OPTION":return!0===a.__ko__hasDomDataOptionValue__?c.g.l.get(a,c.i.options.Wa):a.value;case "SELECT":return 0<=a.selectedIndex?c.C.M(a.options[a.selectedIndex]):void 0;default:return a.value}},Fa:(a,b)=>{switch(a.nodeName){case "OPTION":"string"===typeof b?(c.g.l.set(a,c.i.options.Wa,void 0),delete a.__ko__hasDomDataOptionValue__,
a.value=b):(c.g.l.set(a,c.i.options.Wa,b),a.__ko__hasDomDataOptionValue__=!0,a.value="number"===typeof b?b:"");break;case "SELECT":for(var d=-1,e=""===(b??""),g=a.options.length,l;g--;)if(l=c.C.M(a.options[g]),l==b||""===l&&e){d=g;break}if(0<=d||e&&1<a.size)a.selectedIndex=d;break;default:a.value=b??""}}};c.la=(()=>{var a=RegExp("\"(?:\\\\.|[^\"])*\"|'(?:\\\\.|[^'])*'|`(?:\\\\.|[^`])*`|/\\*(?:[^*]|\\*+[^*/])*\\*+/|//.*\n|/(?:\\\\.|[^/])+/w*|[^\\s:,/][^,\"'`{}()/:[\\]]*[^\\s,\"'`{}()/:[\\]]|[^\\s]",
"g"),b=/[\])"'A-Za-z0-9_$]+$/,d={"in":1,"return":1,"typeof":1};return{Yb:e=>{e=c.g.Bb(e);123===e.charCodeAt(0)&&(e=e.slice(1,-1));e+="\n,";var g=[],l=e.match(a),f=[],h=0;if(1<l.length){for(var k=0,m;m=l[k++];){var p=m.charCodeAt(0);if(44===p){if(0>=h){n&&f.length&&g.push("'"+n+"':()=>("+f.join("")+")");var n=h=0;f=[];continue}}else if(58===p){if(!h&&!n&&1===f.length){n=f.pop();continue}}else if(47===p&&1<m.length&&(47===m.charCodeAt(1)||42===m.charCodeAt(1)))continue;else 47===p&&k&&1<m.length?(p=
l[k-1].match(b))&&!d[p[0]]&&(e=e.slice(e.indexOf(m)+1),l=e.match(a),k=-1,m="/"):40===p||123===p||91===p?++h:41===p||125===p||93===p?--h:n||f.length||34!==p&&39!==p||(m=m.slice(1,-1));f.push(m)}if(0<h)throw Error("Unbalanced parentheses, braces, or brackets");}g.push("'$data':()=>$data");return g.join(",")},cc:(e,g)=>-1<e.findIndex(l=>l.key==g),Ga:(e,g,l,f,h,k)=>{g&&c.W(g)?!c.vb(g)||k&&g.L()===h||g(h):(console.log(`"${f}" should contain observable in ${e.outerHTML.replace(/>.+/,">")}`),l.get("$data")[f]=
h)}}})();(()=>{function a(f){return 8==f.nodeType&&e.test(f.nodeValue)}function b(f){return 8==f.nodeType&&g.test(f.nodeValue)}function d(f,h){for(var k=f,m=1,p=[];k=k.nextSibling;){if(b(k)&&(c.g.l.set(k,l,!0),!--m))return p;p.push(k);a(k)&&++m}if(!h)throw Error("Cannot find closing comment tag to match: "+f.nodeValue);return null}var e=/^\s*ko(?:\s+([\s\S]+))?\s*$/,g=/^\s*\/ko\s*$/,l="__ko_matchedEndComment__";c.m={aa:{},childNodes:f=>a(f)?d(f):f.childNodes,ja:f=>{a(f)?(f=d(f))&&[...f].forEach(h=>
c.removeNode(h)):c.g.Qa(f)},pa:(f,h)=>{a(f)?(c.m.ja(f),f.after(...h)):c.g.pa(f,h)},prepend:(f,h)=>{a(f)?f.nextSibling.before(h):f.prepend(h)},Ub:(f,h,k)=>{k?k.after(h):c.m.prepend(f,h)},firstChild:f=>{if(a(f))return f=f.nextSibling,!f||b(f)?null:f;let h=f.firstChild;if(h&&b(h))throw Error("Found invalid end comment, as the first child of "+f);return h},nextSibling:f=>{if(a(f)){var h=d(f,void 0);f=h?(h.length?h[h.length-1]:f).nextSibling:null}if((h=f.nextSibling)&&b(h)){if(b(h)&&!c.g.l.get(h,l))throw Error("Found end comment without a matching opening comment, as child of "+
f);return null}return h},Qb:a,ac:f=>(f=f.nodeValue.match(e))?f[1]:null}})();const S=new Map,la=a=>{switch(a.nodeType){case 1:return a.getAttribute("data-bind");case 8:return c.m.ac(a)}return null};c.ob=new class{Xb(a){switch(a.nodeType){case 1:return null!=a.getAttribute("data-bind");case 8:return c.m.Qb(a)}return!1}Ob(a,b){if(a=la(a))try{let d=S.get(a);d||(d=new Function("$context","with($context){return{"+c.la.Yb(a)+"}}"),S.set(a,d));b=new Proxy(b,{has:()=>!0,get:(e,g)=>e[g]||e.$data[g]});return d(b)}catch(d){throw d.message=
"Unable to parse bindings.\nBindings value: "+a+"\nMessage: "+d.message,d;}return null}};const G=Symbol("_subscribable"),H=Symbol("_ancestorBindingInfo"),T=Symbol("_dataDependency"),U={},I=c.g.l.Z();c.i={};c.ba=class{constructor(a,b,d,e){var g=this,l=a===U,f=l?void 0:a,h="function"==typeof f&&!c.W(f),k=e?.dataDependency;a=()=>{var p=h?f():f;p=c.g.h(p);b?(c.g.extend(g,b),H in b&&(g[H]=b[H])):g.$root=p;g[G]=m;l?p=g.$data:g.$data=p;d?.(g,b,p);if(b?.[G]&&!c.u.o().Sa(b[G]))b[G]();k&&(g[T]=k);return g.$data};
if(e?.exportDependencies)a();else{var m=c.xb(a);m.L();m.isActive()?m.ka=null:g[G]=void 0}}createChildContext(a,b){return new c.ba(a,this,(d,e)=>{d.$parent=e.$data;b.extend?.(d)},b)}extend(a,b){return new c.ba(U,this,d=>c.g.extend(d,"function"==typeof a?a(d):a),b)}};const V=a=>{a=c.g.l.get(a,I);var b=a?.D;b&&(a.D=null,b.wb())};class ma{constructor(a,b,d){this.H=a;this.da=b;this.ta=new Set;this.F=!1;b.D||c.g.N.addDisposeCallback(a,V);d?.D&&(d.D.ta.add(a),this.za=d)}wb(){this.za?.D?.Mb(this.H)}Mb(a){this.ta.delete(a);
this.ta.size||this.rb?.()}rb(){this.F=!0;this.da.D&&!this.ta.size&&(this.da.D=null,c.g.N.Ya(this.H,V),c.j.notify(this.H,c.j.ca),this.wb())}}c.j={F:"childrenComplete",ca:"descendantsComplete",subscribe:(a,b,d,e,g)=>{var l=c.g.l.Ra(a,I,{});l.wa||(l.wa=new c.P);g?.notifyImmediately&&l.Va[b]&&c.u.I(d,e,[a]);return l.wa.subscribe(d,e,b)},notify:(a,b)=>{var d=c.g.l.get(a,I);if(d&&(d.Va[b]=!0,d.wa?.B(a,b),b==c.j.F))if(d.D)d.D.rb();else if(void 0===d.D&&d.wa?.na(c.j.ca))throw Error("descendantsComplete event not supported for bindings on this node");
},$a:(a,b)=>{var d=c.g.l.Ra(a,I,{});d.D||(d.D=new ma(a,d,b[H]));return b[H]==d?b:b.extend(e=>{e[H]=d})}};const X=(a,b)=>{for(var d,e=c.m.firstChild(b);d=e;)e=c.m.nextSibling(d),W(a,d);c.j.notify(b,c.j.F)},W=(a,b)=>{var d=a;if(1===b.nodeType||c.ob.Xb(b))d=Y(b,null,a);d&&!b.matches?.("SCRIPT,TEXTAREA,TEMPLATE")&&X(d,b)},na=a=>{var b=[],d={},e=[],g=l=>{if(!d[l]){var f=c.i[l];f&&(f.after&&(e.push(l),f.after.forEach(h=>{if(a[h]){if(e.includes(h))throw Error("Cannot combine the following bindings, because they have a cyclic dependency: "+
e.join(", "));g(h)}}),e.length--),b.push({key:l,ub:f}));d[l]=!0}};c.g.K(a,g);return b},Y=(a,b,d)=>{var e=c.g.l.Ra(a,I,{}),g=e.Hb;if(!b){if(g)throw Error("You cannot apply bindings multiple times to the same element.");e.Hb=!0}g||(e.context=d);e.Va||(e.Va={});if(b&&"function"!==typeof b)var l=b;else{var f=c.o(()=>{if(l=b?b(d,a):c.ob.Ob(a,d))d[G]?.(),d[T]?.();return l},{s:a});l&&f.isActive()||(f=null)}var h=d,k;if(l){var m=f?n=>()=>f()[n]():n=>l[n],p={get:n=>l[n]&&m(n)(),has:n=>n in l};c.j.F in l&&
c.j.subscribe(a,c.j.F,()=>{var n=l[c.j.F]();if(n){var q=c.m.childNodes(a);q.length&&n(q,c.dataFor(q[0]))}});c.j.ca in l&&(h=c.j.$a(a,d),c.j.subscribe(a,c.j.ca,()=>{var n=l[c.j.ca]();n&&c.m.firstChild(a)&&n(a)}));na(l).forEach(n=>{var q=n.ub.init,r=n.ub.update,u=n.key;if(8===a.nodeType&&!c.m.aa[u])throw Error("The binding '"+u+"' cannot be used with comment nodes");try{"function"==typeof q&&c.u.I(()=>{var t=q(a,m(u),p,h.$data,h);if(t&&t.controlsDescendantBindings){if(void 0!==k)throw Error("Multiple bindings ("+
k+" and "+u+") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.");k=u}}),"function"==typeof r&&c.o(()=>r(a,m(u),p,h.$data,h),{s:a})}catch(t){throw t.message='Unable to process binding "'+u+": "+l[u]+'"\nMessage: '+t.message,t;}})}return void 0===k&&h};c.$b=a=>c.g.l.get(a,I)?.context;const O=a=>a&&a instanceof c.ba?a:new c.ba(a);c.applyBindingAccessorsToNode=(a,b,d)=>Y(a,b,O(d));c.mb=(a,b)=>{1!==b.nodeType&&8!==b.nodeType||X(O(a),
b)};c.Ib=(a,b)=>W(O(a),b);c.dataFor=a=>([1,8].includes(a?.nodeType)&&c.$b(a))?.$data;c.U("bindingHandlers",c.i);(()=>{var a=Object.create(null),b=new Map;c.components={get:(l,f)=>{if(b.has(l))f(b.get(l));else{var h=a[l];h?h.subscribe(f):(h=a[l]=new c.P,h.subscribe(f),g(l,k=>{b.set(l,k);delete a[l];h.B(k)}))}},register:(l,f)=>{if(!f)throw Error("Invalid configuration for "+l);if(d[l])throw Error("Component "+l+" is already registered");d[l]=f}};var d=Object.create(null),e=(l,f)=>{throw Error(`Component '${l}': ${f}`);
},g=(l,f)=>{var h={},k=d[l]||{},m=k.template;k=k.viewModel;if(m){m.element||e(l,"Unknown template value: "+m);m=m.element;var p=J.getElementById(m);p||e(l,"Cannot find element with ID "+m);p.matches("TEMPLATE")||e(l,"Template Source Element not a <template>");h.template=c.g.ua(p.content.childNodes)}k&&("function"!==typeof k.createViewModel&&e(l,"Unknown viewModel value: "+k),h.createViewModel=k.createViewModel);f(h.template&&h.createViewModel?h:null)}})();(()=>{var a=0;c.i.component={init:(b,d,e,
g,l)=>{var f,h,k,m=()=>{var p=f&&f.dispose;"function"===typeof p&&p.call(f);k&&k.dispose();h=f=k=null};c.m.ja(b);c.g.N.addDisposeCallback(b,m);c.o(()=>{var p=c.g.h(d());if("string"!==typeof p){var n=c.g.h(p.params);p=c.g.h(p.name)}if(!p)throw Error("No component name specified");var q=c.j.$a(b,l),r=h=++a;c.components.get(p,u=>{if(h===r){m();if(!u)throw Error("Unknown component '"+p+"'");var t=u.template;if(!t)throw Error("Component '"+p+"' has no template");c.m.pa(b,c.g.ua(t));f=u.createViewModel(n,
{element:b});c.mb(q.createChildContext(f,{}),b)}})},{s:b});return{controlsDescendantBindings:!0}}};c.m.aa.component=!0})();c.i.attr={update:(a,b)=>{b=c.g.h(b())||{};c.g.K(b,function(d,e){e=c.g.h(e);var g=d.indexOf(":");g="lookupNamespaceURI"in a&&0<g&&a.lookupNamespaceURI(d.slice(0,g));!1===e||null==e?g?a.removeAttributeNS(g,d):a.removeAttribute(d):(e=e.toString(),g?a.setAttributeNS(g,d,e):a.setAttribute(d,e))})}};(()=>{c.i.checked={after:["value","attr"],init:function(a,b,d){var e="checkbox"==a.type,
g="radio"==a.type;if(e||g){const n=c.xb(()=>{if(d.has("checkedValue"))return c.g.h(d.get("checkedValue"));if(m)return d.has("value")?c.g.h(d.get("value")):a.value});var l=()=>{if(!c.u.Ca()){var q=a.checked,r=n();if(q||!g&&!c.u.ma()){var u=c.u.I(b);if(h){var t=k?u.L():u,z=p;p=r;z!==r?q&&(t.push(r),t.remove(z)):q?t.push(r):t.remove(r);k&&c.vb(u)&&u(t)}else e&&(void 0===r?r=q:q||(r=void 0)),c.la.Ga(a,u,d,"checked",r,!0)}}},f=b(),h=e&&c.g.h(f)instanceof Array,k=!(h&&f.push&&f.splice),m=g||h,p=h?n():void 0;
c.o(l,null,{s:a});a.addEventListener("click",l);c.o(()=>{var q=c.g.h(b()),r=n();h?(a.checked=q.includes(r),p=r):a.checked=e&&void 0===r?!!q:n()===q},null,{s:a});f=void 0}}};c.i.checkedValue={update:function(a,b){a.value=c.g.h(b())}}})();var P=(a,b,d)=>b&&b.split(/\s+/).forEach(e=>a.classList.toggle(e,d));c.i.css={update:(a,b)=>{b=c.g.h(b());"object"==typeof b?c.g.K(b,(d,e)=>{e=c.g.h(e);P(a,d,!!e)}):(b=c.g.Bb(b),P(a,a.__ko__cssValue,!1),a.__ko__cssValue=b,P(a,b,!0))}};c.i.enable={update:(a,b)=>{(b=
c.g.h(b()))&&a.disabled?a.removeAttribute("disabled"):b||a.disabled||(a.disabled=!0)}};c.i.disable={update:(a,b)=>c.i.enable.update(a,()=>!c.g.h(b()))};c.i.event={init:function(a,b,d,e,g){c.g.K(b()||{},l=>{"string"==typeof l&&a.addEventListener(l,(...f)=>{var h=b()[l];if(h)try{e=g.$data;var k=h.apply(e,[e,...f])}finally{!0!==k&&f[0].preventDefault()}})})}};const Z=a=>()=>{var b=a(),d=c.W(b)?b.L():b;if(!d||Array.isArray(d))return{foreach:b};c.g.h(b);return{foreach:d.data}};c.i.foreach={init:(a,b)=>
c.i.template.init(a,Z(b)),update:(a,b,d,e,g)=>c.i.template.update(a,Z(b),d,e,g)};c.m.aa.foreach=!0;c.i.hasfocus={init:(a,b,d)=>{var e=l=>{a.__ko_hasfocusUpdating=!0;l=a.ownerDocument.activeElement===a;c.la.Ga(a,b(),d,"hasfocus",l,!0);a.__ko_hasfocusLastValue=l;a.__ko_hasfocusUpdating=!1},g=e.bind(null,!0);e=e.bind(null,!1);a.addEventListener("focus",g);a.addEventListener("focusin",g);a.addEventListener("blur",e);a.addEventListener("focusout",e);a.__ko_hasfocusLastValue=!1},update:(a,b)=>{b=!!c.g.h(b());
a.__ko_hasfocusUpdating||a.__ko_hasfocusLastValue===b||(b?a.focus():a.blur())}};c.i.html={init:()=>({controlsDescendantBindings:!0}),update:(a,b)=>{c.g.Qa(a);b=c.g.h(b());if(null!=b){const d=J.createElement("template");d.innerHTML="string"!=typeof b?b.toString():b;a.appendChild(d.content)}}};(()=>{function a(b,d,e){c.i[b]={init:(g,l,f,h,k)=>{var m,p={};d&&(p={exportDependencies:!0});var n=f.has(c.j.ca);c.o(()=>{var q=c.g.h(l()),r=!e!==!q,u=!m;n&&(k=c.j.$a(g,k));if(r){p.dataDependency=c.u.o();var t=
d?k.createChildContext("function"==typeof q?q:l,p):c.u.ma()?k.extend(null,p):k}u&&c.u.ma()&&(m=c.g.ua(c.m.childNodes(g),!0));r?(u||c.m.pa(g,c.g.ua(m)),c.mb(t,g)):(c.m.ja(g),c.j.notify(g,c.j.F))},{s:g});return{controlsDescendantBindings:!0}}};c.m.aa[b]=!0}a("if");a("ifnot",!1,!0);a("with",!0)})();var aa={};c.i.options={init:a=>{if(!a.matches("SELECT"))throw Error("options binding applies only to SELECT elements");let b=a.length;for(;b--;)a.remove(b);return{controlsDescendantBindings:!0}},update:(a,
b,d)=>{var e=a.multiple,g=0!=a.length&&e?a.scrollTop:null,l=c.g.h(b()),f=[];b=()=>Array.from(a.options).filter(n=>n.selected);var h=(n,q,r)=>{var u=typeof q;return"function"==u?q(n):"string"==u?n[q]:r},k=(n,q)=>{f.length&&(n=f.includes(c.C.M(q[0])),q[0].selected=n,p&&!n&&c.u.I(c.g.Db,null,[a,"change"]))};e?f=b().map(c.C.M):0<=a.selectedIndex&&f.push(c.C.M(a.options[a.selectedIndex]));if(l){Array.isArray(l)||(l=[l]);var m=l.filter(n=>n??1)}var p=!1;l=k;d.has("optionsAfterRender")&&"function"==typeof d.get("optionsAfterRender")&&
(l=(n,q)=>{k(n,q);c.u.I(d.get("optionsAfterRender"),null,[q[0],n!==aa?n:void 0])});c.g.Ab(a,m,(n,q,r)=>{r.length&&(f=r[0].selected?[c.C.M(r[0])]:[],p=!0);q=a.ownerDocument.createElement("option");n===aa?(c.g.Za(q),c.C.Fa(q,void 0)):(r=h(n,d.get("optionsValue"),n),c.C.Fa(q,c.g.h(r)),n=h(n,d.get("optionsText"),r),c.g.Za(q,n));return[q]},{},l);m=f.length;(e?m&&b().length<m:m&&0<=a.selectedIndex?c.C.M(a.options[a.selectedIndex])!==f[0]:m||0<=a.selectedIndex)&&c.u.I(c.g.Db,null,[a,"change"]);c.u.Ca()&&
c.j.notify(a,c.j.F);g&&20<Math.abs(g-a.scrollTop)&&(a.scrollTop=g)}};c.i.options.Wa=c.g.l.Z();c.i.style={update:(a,b)=>{c.g.K(c.g.h(b()||{}),(d,e)=>{e=c.g.h(e);if(null==e||!1===e)e="";if(/^--/.test(d))a.style.setProperty(d,e);else{d=d.replace(/-(\w)/g,(l,f)=>f.toUpperCase());var g=a.style[d];a.style[d]=e;e===g||a.style[d]!=g||isNaN(e)||(a.style[d]=e+"px")}})}};c.i.submit={init:(a,b,d,e,g)=>{if("function"!=typeof b())throw Error("The value for a submit binding must be a function");a.addEventListener("submit",
l=>{var f=b();try{var h=f.call(g.$data,a)}finally{!0!==h&&l.preventDefault()}})}};c.i.text={init:()=>({controlsDescendantBindings:!0}),update:(a,b)=>{8===a.nodeType&&(a.text||a.after(a.text=J.createTextNode("")),a=a.text);c.g.Za(a,b())}};c.m.aa.text=!0;c.i.textInput={init:(a,b,d)=>{var e=a.value,g,l,f=()=>{clearTimeout(g);l=g=void 0;var k=a.value;a.checkValidity()&&e!==k&&(e=k,c.la.Ga(a,b(),d,"textInput",k))},h=()=>{var k=c.g.h(b())??"";void 0!==l&&k===l?setTimeout(h,4):a.value!==k&&(a.value=k,e=
a.value)};a.addEventListener("input",f);a.addEventListener("change",f);c.o(h,{s:a})}};c.i.value={init:(a,b,d)=>{var e=a.matches("SELECT"),g=a.matches("INPUT");if(!g||"checkbox"!=a.type&&"radio"!=a.type){var l=new Set,f=d.get("valueUpdate"),h=null,k=()=>{h=null;var n=b(),q=c.C.M(a);c.la.Ga(a,n,d,"value",q)};f&&("string"==typeof f?l.add(f):f.forEach(n=>l.add(n)),l.delete("change"));l.forEach(n=>{var q=k;(n||"").startsWith("after")&&(q=()=>{h=c.C.M(a);setTimeout(k,0)},n=n.slice(5));a.addEventListener(n,
q)});var m=g&&"file"==a.type?()=>{var n=c.g.h(b());null==n||""===n?a.value="":c.u.I(k)}:()=>{var n=c.g.h(b()),q=c.C.M(a);if(null!==h&&n===h)setTimeout(m,0);else if(n!==q||void 0===q)e?(c.C.Fa(a,n),n!==c.C.M(a)&&c.u.I(k)):c.C.Fa(a,n)};if(e){var p;c.j.subscribe(a,c.j.F,()=>{p?d.get("valueAllowUnset")?m():k():(a.addEventListener("change",k),p=c.o(m,{s:a}))},null,{notifyImmediately:!0})}else a.addEventListener("change",k),c.o(m,{s:a})}else c.applyBindingAccessorsToNode(a,{checkedValue:b})},update:()=>
{}};c.i.visible={update:(a,b)=>{b=c.g.h(b());var d="none"!=a.style.display;b&&!d?a.style.display="":d&&!b&&(a.style.display="none")}};c.i.hidden={update:(a,b)=>a.hidden=!!c.g.h(b())};(function(a){c.i[a]={init:function(b,d,e,g,l){return c.i.event.init.call(this,b,()=>({[a]:d()}),e,g,l)}}})("click");(()=>{let a=c.g.l.Z();class b{constructor(e){this.Na=e}Ua(...e){let g=this.Na;if(!e.length)return c.g.l.get(g,a)||(11===this.H?g.content:1===this.H?g:void 0);c.g.l.set(g,a,e[0])}}class d extends b{constructor(e){super(e);
e&&(this.H=e.matches("TEMPLATE")&&e.content?e.content.nodeType:1)}}c.bb={Na:d,lb:b}})();(()=>{const a=(h,k,m)=>{var p;for(k=c.m.nextSibling(k);h&&(p=h)!==k;)h=c.m.nextSibling(p),m(p,h)},b=(h,k)=>{if(h.length){var m=h[0],p=m.parentNode;a(m,h[h.length-1],n=>(1===n.nodeType||8===n.nodeType)&&c.Ib(k,n));c.g.xa(h,p)}},d=(h,k,m,p)=>{var n=(h&&(h.nodeType?h:0<h.length?h[0]:null)||m||{}).ownerDocument;if("string"==typeof m){n=n||J;n=n.getElementById(m);if(!n)throw Error("Cannot find template with ID "+m);
m=new c.bb.Na(n)}else if([1,8].includes(m.nodeType))m=new c.bb.lb(m);else throw Error("Unknown template type: "+m);m=(m=m.Ua?m.Ua():null)?[...m.cloneNode(!0).childNodes]:null;if(!Array.isArray(m)||0<m.length&&"number"!=typeof m[0].nodeType)throw Error("Template engine must return an array of DOM nodes");k&&(c.m.pa(h,m),b(m,p),c.j.notify(h,c.j.F));return m},e=(h,k,m)=>c.W(h)?h():"function"===typeof h?h(k,m):h,g=(h,k,m,p)=>{m=m||{};if(p){var n=p.nodeType?p:0<p.length?p[0]:null;return c.o(()=>{var q=
k instanceof c.ba?k:new c.ba(k,null,null,{exportDependencies:!0}),r=e(h,q.$data,q);d(p,!0,r,q,m)},{ia:()=>!n||!c.g.Pa(n),s:n})}console.log("no targetNodeOrNodeArray")},l=(h,k,m,p,n)=>{var q,r=(w,y)=>{q=n.createChildContext(w,{extend:B=>B.$index=y});w=e(h,w,q);return d(p,!1,w,q,m)},u=(w,y)=>{b(y,q);q=null},t=(w,y)=>{c.u.I(c.g.Ab,null,[p,w,r,m,u,y]);c.j.notify(p,c.j.F)};if(c.isObservableArray(k)){t(k.L());var z=k.subscribe(w=>{t(k(),w)},null,"arrayChange");z.s(p);return z}return c.o(()=>{var w=c.g.h(k)||
[];Array.isArray(w)||(w=[w]);t(w)},{s:p})},f=c.g.l.Z();c.i.template={init:(h,k)=>{k=c.g.h(k());if("string"==typeof k||"name"in k)c.m.ja(h);else if(k=c.m.childNodes(h),k.length)k=c.g.Wb(k),(new c.bb.lb(h)).Ua(k);else throw Error("Anonymous template defined, but no template content was provided");return{controlsDescendantBindings:!0}},update:(h,k,m,p,n)=>{p=k();k=c.g.h(p);m=null;"string"==typeof k?k={}:p="name"in k?k.name:h;var q=!!p;"foreach"in k?m=l(p,q&&k.foreach||[],k,h,n):q?(m=n,"data"in k&&(m=
n.createChildContext(k.data,{exportDependencies:!0})),m=g(p,m,k,h)):c.m.ja(h);n=m;c.g.l.get(h,f)?.dispose?.();c.g.l.set(h,f,!n||n.isActive&&!n.isActive()?void 0:n)}};c.m.aa.template=!0})();c.g.tb=(a,b,d)=>{var e=0,g,l=b.length;l&&a.every(f=>{g=b.findIndex(h=>f.value===h.value);0<=g&&(f.moved=b[g].index,b[g].moved=f.index,b.splice(g,1),e=g=0,--l);e+=l;return l&&(!d||e<d)})};c.g.qb=(()=>{var a=(b,d,e,g,l)=>{for(var f=Math.min,h=Math.max,k=[],m=-1,p=b.length,n,q=d.length,r=q-p||1,u=p+q+1,t,z,w;++m<=
p;)for(z=t,k.push(t=[]),w=f(q,m+r),n=h(0,m-1);n<=w;n++)t[n]=n?m?b[m-1]===d[n-1]?z[n-1]:f(z[n]||u,t[n-1]||u)+1:n+1:m+1;f=[];h=[];r=[];m=p;for(n=q;m||n;)q=k[m][n]-1,n&&q===k[m][n-1]?h.push(f[f.length]={status:e,value:d[--n],index:n}):m&&q===k[m-1][n]?r.push(f[f.length]={status:g,value:b[--m],index:m}):(--n,--m,l.sparse||f.push({status:"retained",value:d[n]}));c.g.tb(r,h,10*p);return f.reverse()};return(b,d,e)=>{b=b||[];d=d||[];return b.length<d.length?a(b,d,"added","deleted",e):a(d,b,"deleted","added",
e)}})();(()=>{function a(e,g,l,f,h){var k=[],m=c.o(()=>{var p=g(l,h,c.g.xa(k,e))||[];if(0<k.length){var n=k.nodeType?[k]:k;if(0<n.length){var q=n[0],r=q.parentNode;p.forEach(u=>r.insertBefore(u,q));n.forEach(u=>c.removeNode(u))}f&&c.u.I(f,null,[l,p,h])}k.length=0;k.push(...p)},{s:e,ia:()=>!!k.find(c.g.Pa)});return{O:k,La:m.isActive()?m:void 0}}var b=c.g.l.Z(),d=c.g.l.Z();c.g.Ab=(e,g,l,f,h,k)=>{g=g||[];Array.isArray(g)||(g=[g]);var m=c.g.l.get(e,b),p=[],n=0,q=0,r=[],u=[],t,z=v=>{t={sa:v,Ta:c.$(q++)};
p.push(t)},w=v=>{t=m[v];t.Ta(q++);c.g.xa(t.O,e);p.push(t)};if(m){if(!k||m&&m._countWaitingForRemove)k=c.g.qb(Array.prototype.map.call(m,C=>C.sa),g,{sparse:!0});let v,F;for(k.forEach(C=>{v=C.moved;F=C.index;switch(C.status){case "deleted":for(;n<F;)w(n++);void 0===v&&(t=m[n],t.La&&(t.La.dispose(),t.La=void 0),c.g.xa(t.O,e).length&&t&&r.push.apply(r,t.O));n++;break;case "added":for(;q<F;)w(n++);void 0!==v?(u.push(p.length),w(v)):z(C.value)}});q<g.length;)w(n++);p._countWaitingForRemove=0}else g.forEach(z);
c.g.l.set(e,b,p);r.forEach(c.removeNode);var y=v=>{c.m.Ub(e,v,B);B=v};k=e.ownerDocument.activeElement;if(u.length)for(;null!=(g=u.shift());){for(t=p[g];g--;)if(f=p[g].O,f?.length){var B=f[f.length-1];break}t.O.forEach(y)}p.forEach(v=>{v.O||c.g.extend(v,a(e,l,v.sa,h,v.Ta));v.O.forEach(y);!v.Tb&&h&&(h(v.sa,v.O,v.Ta),v.Tb=!0,B=v.O[v.O.length-1])});e.ownerDocument.activeElement!=k&&k?.focus();[].forEach(v=>v&&(v.sa=d))}})();Q.ko=c})(this);
(Q=>{function L(a,b){return a===b&&a!==Object(a)}function ba(a,b){var d;return()=>{d||(d=setTimeout(()=>{d=0;a()},b))}}function ca(a,b){var d;return()=>{clearTimeout(d);d=setTimeout(a,b)}}function da(a,b){b?.dispose?.()}function ea(a,b){var d=this.Mb,e=d[x];e.X||(this.Na&&this.wa[b]?(d.lb(b,a,this.wa[b]),this.wa[b]=null,--this.Na):e.v[b]||d.lb(b,a,e.A?{S:a}:d.Db(a)),a.ea&&a.Hb())}var J=Q.document;const c={W:(a,b)=>{a=a.split(".");for(var d=c,e=0,g=a.length-1;e<g;e++)d=d[a[e]];d[a[g]]=b},g:{extend:(a,
b)=>b?Object.assign(a,b):a,K:(a,b)=>a&&Object.entries(a).forEach(d=>b(d[0],d[1])),Ra:a=>[...a.childNodes].forEach(b=>c.removeNode(b)),Xb:a=>{a=[...a];var b=(a[0]?.ownerDocument||J).createElement("div");a.forEach(d=>b.append(c.ia(d)));return b},va:(a,b)=>Array.prototype.map.call(a,b?d=>c.ia(d.cloneNode(!0)):d=>d.cloneNode(!0)),qa:(a,b)=>{c.g.Ra(a);b&&a.append(...b)},ya:(a,b)=>{if(a.length){for(b=8===b.nodeType&&b.parentNode||b;a.length&&a[0].parentNode!==b;)a.splice(0,1);for(;1<a.length&&a[a.length-
1].parentNode!==b;)--a.length;if(1<a.length){b=a[0];var d=a[a.length-1];for(a.length=0;b!==d;)a.push(b),b=b.nextSibling;a.push(d)}}return a},Cb:a=>null==a?"":a.trim?a.trim():a.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g,""),Qa:a=>a.ownerDocument.documentElement.contains(1!==a.nodeType?a.parentNode:a),Eb:(a,b)=>{if(!a?.nodeType)throw Error("element must be a DOM node when calling triggerEvent");a.dispatchEvent(new Event(b))},h:a=>c.V(a)?a():a,$a:(a,b)=>a.textContent=c.g.h(b)}};c.W("unwrap",c.g.h);
(()=>{let a=0,b="__ko__"+Date.now(),d=new WeakMap;c.g.l={get:(e,g)=>(d.get(e)||{})[g],set:(e,g,l)=>{d.has(e)?d.get(e)[g]=l:d.set(e,{[g]:l});return l},Sa(e,g,l){return this.get(e,g)||this.set(e,g,l)},clear:e=>d.delete(e),Z:()=>a++ +b}})();c.g.N=(()=>{var a=c.g.l.Z(),b={1:1,8:1,9:1},d={1:1,9:1};const e=(f,h)=>{var k=c.g.l.get(f,a);h&&!k&&(k=new Set,c.g.l.set(f,a,k));return k},g=f=>{var h=e(f);h&&(new Set(h)).forEach(k=>k(f));c.g.l.clear(f);d[f.nodeType]&&l(f.childNodes,!0)},l=(f,h)=>{for(var k=[],m,
p=0;p<f.length;p++)if(!h||8===f[p].nodeType)if(g(k[k.length]=m=f[p]),f[p]!==m)for(;p--&&!k.includes(f[p]););};return{ha:(f,h)=>{if("function"!=typeof h)throw Error("Callback must be a function");e(f,1).add(h)},Za:(f,h)=>{var k=e(f);k&&(k.delete(h),k.size||c.g.l.set(f,a,null))},ia:f=>{c.u.I(()=>{b[f.nodeType]&&(g(f),d[f.nodeType]&&l(f.getElementsByTagName("*")))});return f},removeNode:f=>{c.ia(f);f.parentNode&&f.parentNode.removeChild(f)}}})();c.ia=c.g.N.ia;c.removeNode=c.g.N.removeNode;c.W("addDisposeCallback",
c.g.N.ha);c.extenders={debounce:(a,b)=>a.Ea(d=>ca(d,b)),rateLimit:(a,b)=>a.Ea(d=>ba(d,b)),notify:(a,b)=>{a.la="always"==b?null:L}};class fa{constructor(a,b,d){this.S=a;this.fb=b;this.Aa=d;this.Ia=!1;this.H=this.da=null}dispose(){this.Ia||(this.H&&c.g.N.Za(this.da,this.H),this.Ia=!0,this.Aa(),this.S=this.fb=this.Aa=this.da=this.H=null)}o(a){this.da=a;c.g.N.ha(a,this.H=this.dispose.bind(this))}}c.P=function(){Object.setPrototypeOf(this,M);M.init(this)};var M={init:a=>{a.R=new Map;a.R.set("change",new Set);
a.kb=1},subscribe:function(a,b,d){var e=this;d=d||"change";var g=new fa(e,b?a.bind(b):a,()=>{e.R.get(d).delete(g);e.Ja?.(d)});e.Ka?.(d);e.R.has(d)||e.R.set(d,new Set);e.R.get(d).add(g);return g},B(a,b){b=b||"change";"change"===b&&this.Fa();if(this.oa(b)){b="change"===b&&this.Fb||new Set(this.R.get(b));try{c.u.ob(),b.forEach(d=>{d.Ia||d.fb(a)})}finally{c.u.end()}}},za(){return this.kb},Sb(a){return this.za()!==a},Fa(){++this.kb},Ea(a){var b=this,d=c.V(b),e,g,l,f,h;b.sa||(b.sa=b.B,b.B=(m,p)=>{p&&"change"!==
p?"beforeChange"===p?b.hb(m):b.sa(m,p):b.ib(m)});var k=a(()=>{b.ea=!1;d&&f===b&&(f=b.gb?b.gb():b());var m=g||h&&b.Ca(l,f);h=g=e=!1;m&&b.sa(l=f)});b.ib=(m,p)=>{p&&b.ea||(h=!p);b.Fb=new Set(b.R.get("change"));b.ea=e=!0;f=m;k()};b.hb=m=>{e||(l=m,b.sa(m,"beforeChange"))};b.jb=()=>{h=!0};b.Hb=()=>{b.Ca(l,b.L(!0))&&(g=!0)}},oa(a){return(this.R.get(a)||[]).size},Ca(a,b){return!this.la||!this.la(a,b)},toString:()=>"[object Object]",extend:function(a){var b=this;a&&c.g.K(a,(d,e)=>{d=c.extenders[d];"function"==
typeof d&&(b=d(b,e)||b)});return b}};c.P.fn=Object.setPrototypeOf(M,Function.prototype);c.Wb=a=>"function"==typeof a?.subscribe&&"function"==typeof a.B;(()=>{let a=[],b,d=0;c.u={ob:e=>{a.push(b);b=e},end:()=>b=a.pop(),Ab:e=>{if(b){if(!c.Wb(e))throw Error("Only subscribable things can act as dependencies");b.Kb.call(b.Lb,e,e.Gb||(e.Gb=++d))}},I(e,g,l){try{return a.push(b),b=void 0,e.apply(g,l||[])}finally{b=a.pop()}},na:()=>b?.m.na(),Da:()=>b?.Da,m:()=>b?.m}})();const A=Symbol("_latestValue");c.$=
a=>{function b(){if(0<arguments.length)return b.Ca(b[A],arguments[0])&&(b.eb(),b[A]=arguments[0],b.valueHasMutated()),this;c.u.Ab(b);return b[A]}b[A]=a;Object.defineProperty(b,"length",{get:()=>b[A]?.length});c.P.fn.init(b);return Object.setPrototypeOf(b,E)};var E={toJSON:function(){let a=this[A];return a?.toJSON?.()||a},la:L,L(){return this[A]},valueHasMutated:function(){this.B(this[A],"spectate");this.B(this[A])},eb(){this.B(this[A],"beforeChange")}};Object.setPrototypeOf(E,c.P.fn);var D=c.$.$b=
"__ko_proto__";E[D]=c.$;c.V=a=>{if((a="function"==typeof a&&a[D])&&a!==E[D]&&a!==c.m.fn[D])throw Error("Invalid object that looks like an observable; possibly from another Knockout instance");return!!a};c.wb=a=>"function"==typeof a&&(a[D]===E[D]||a[D]===c.m.fn[D]&&a.Tb);c.W("observable",c.$);c.W("isObservable",c.V);c.W("observable.fn",E);c.observableArray=a=>{a=a||[];if(!Array.isArray(a))throw Error("The argument passed when initializing an observable array must be an array, or null, or undefined.");
return Object.setPrototypeOf(c.$(a),c.observableArray.fn).extend({trackArrayChanges:!0})};const R=Symbol("IS_OBSERVABLE_ARRAY");c.observableArray.fn=Object.setPrototypeOf({[R]:1,remove:function(a){for(var b=this.L(),d=!1,e="function"!=typeof a||c.V(a)?f=>f===a:a,g=b.length;g--;){var l=b[g];if(e(l)){if(b[g]!==l)throw Error("Array modified during remove; cannot remove item");d||this.eb();d=!0;b.splice(g,1)}}d&&this.valueHasMutated()}},c.$.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.observableArray.fn[a]=function(...b){var d=this.L();this.eb();this.qb(d,a,b);b=d[a](...b);this.valueHasMutated();return b===d?this:b}:c.observableArray.fn[a]=function(...b){return this()[a](...b)})});c.isObservableArray=a=>!(!a||!a[R]);c.extenders.trackArrayChanges=(a,b)=>{function d(){if(k){var q=[].concat(a.L()||[]);if(a.oa("arrayChange")){if(!l||1<k)l=c.g.rb(m,q,a.La);
var r=l}m=q;l=null;k=0;r?.length&&a.B(r,"arrayChange")}}function e(){g?d():(g=!0,h=a.subscribe(()=>++k,null,"spectate"),m=[].concat(a.L()||[]),l=null,f=a.subscribe(d))}a.La={};"object"==typeof b&&c.g.extend(a.La,b);a.La.sparse=!0;if(!a.qb){var g=!1,l=null,f,h,k=0,m,p=a.Ka,n=a.Ja;a.Ka=q=>{p?.call(a,q);"arrayChange"===q&&e()};a.Ja=q=>{n?.call(a,q);"arrayChange"!==q||a.oa("arrayChange")||(f?.dispose(),h?.dispose(),h=f=null,g=!1,m=void 0)};a.qb=(q,r,u)=>{if(g&&!k){var t=[],z=q.length,w=u.length,y=0,B=
(ha,ia,ja)=>t[t.length]={status:ha,value:ia,index:ja};switch(r){case "push":y=z;case "unshift":for(q=0;q<w;++q)B("added",u[q],y+q);break;case "pop":y=z-1;case "shift":z&&B("deleted",q[y],y);break;case "splice":y=Math.min(Math.max(0,0>u[0]?z+u[0]:u[0]),z);z=1===w?z:Math.min(y+(u[1]||0),z);w=y+w-2;r=Math.max(z,w);for(var v=[],F=[],C=2;y<r;++y,++C)y<z&&F.push(B("deleted",q[y],y)),y<w&&v.push(B("added",u[C],y));c.g.ub(F,v);break;default:return}l=t}}}};var x=Symbol("_state");c.m=(a,b)=>{function d(){if(0<
arguments.length){if("function"!==typeof e)throw Error("Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters.");e(...arguments);return this}g.X||c.u.Ab(d);(g.U||g.A&&d.pa())&&d.T();return g.J}"object"===typeof a?b=a:(b=b||{},a&&(b.read=a));if("function"!=typeof b.read)throw Error("Pass a function that returns the value of the ko.computed");var e=b.write,g={J:void 0,Y:!0,U:!0,Ba:!1,bb:!1,X:!1,Ya:!1,A:!1,zb:b.read,
o:b.o||null,ja:b.ja,Pa:null,v:{},G:0,cc:null};d[x]=g;d.Tb="function"===typeof e;c.P.fn.init(d);Object.setPrototypeOf(d,K);b.pure&&(g.Ya=!0,g.A=!0,c.g.extend(d,ka));g.o&&(g.bb=!0,g.o.nodeType||(g.o=null));g.A||d.T();g.o&&d.isActive()&&c.g.N.ha(g.o,g.Pa=()=>{d.dispose()});return d};var K={la:L,na(){return this[x].G},Qb(){var a=[];c.g.K(this[x].v,(b,d)=>a[d.fa]=d.S);return a},Ta(a){if(!this[x].G)return!1;var b=this.Qb();return b.includes(a)||!!b.find(d=>d.Ta&&d.Ta(a))},lb(a,b,d){if(this[x].Ya&&b===this)throw Error("A 'pure' computed must not be called recursively");
this[x].v[a]=d;d.fa=this[x].G++;d.ga=b.za()},pa(){var a,b=this[x].v;for(a in b)if(Object.prototype.hasOwnProperty.call(b,a)){var d=b[a];if(this.ra&&d.S.ea||d.S.Sb(d.ga))return!0}},ec(){this[x].Ba||this.ra?.(!1)},isActive(){var a=this[x];return a.U||0<a.G},fc(){this.ea?this[x].U&&(this[x].Y=!0):this.tb()},Db(a){return a.subscribe(this.tb,this)},tb(){this.ra?this.ra(!0):this.T(!0)},T(a){var b=this[x],d=b.ja,e=!1;if(!b.Ba&&!b.X){if(b.o&&!c.g.Qa(b.o)||d?.()){if(!b.bb){this.dispose();return}}else b.bb=
!1;try{b.Ba=!0,e=this.Ob(a)}finally{b.Ba=!1}return e}},Ob(a){var b=this[x],d=b.Ya?void 0:!b.G;var e={Mb:this,wa:b.v,Na:b.G};c.u.ob({Lb:e,Kb:ea,m:this,Da:d});b.v={};b.G=0;a:{try{var g=b.zb();break a}finally{c.u.end(),e.Na&&!b.A&&c.g.K(e.wa,da),b.Y=b.U=!1}g=void 0}b.G?e=this.Ca(b.J,g):(this.dispose(),e=!0);e&&(b.A?this.Fa():this.B(b.J,"beforeChange"),b.J=g,this.B(b.J,"spectate"),!b.A&&a&&this.B(b.J),this.jb&&this.jb());d&&this.B(b.J,"awake");return e},L(a){var b=this[x];(b.U&&(a||!b.G)||b.A&&this.pa())&&
this.T();return b.J},Ea(a){var b=this;c.P.fn.Ea.call(b,a);b.gb=()=>{b[x].A||(b[x].Y?b.T():b[x].U=!1);return b[x].J};b.ra=d=>{b.hb(b[x].J);b[x].U=!0;d&&(b[x].Y=!0);b.ib(b,!d)}},dispose:function(){var a=this[x];!a.A&&a.v&&c.g.K(a.v,(b,d)=>d.dispose?.());a.o&&a.Pa&&c.g.N.Za(a.o,a.Pa);a.v=void 0;a.G=0;a.X=!0;a.Y=!1;a.U=!1;a.A=!1;a.o=void 0;a.ja=void 0;a.zb=void 0}},ka={Ka(a){var b=this,d=b[x];if(!d.X&&d.A&&"change"==a){d.A=!1;if(d.Y||b.pa())d.v=null,d.G=0,b.T()&&b.Fa();else{var e=[];c.g.K(d.v,(g,l)=>
e[l.fa]=g);e.forEach((g,l)=>{var f=d.v[g],h=b.Db(f.S);h.fa=l;h.ga=f.ga;d.v[g]=h});b.pa()&&b.T()&&b.Fa()}d.X||b.B(d.J,"awake")}},Ja(a){var b=this[x];b.X||"change"!=a||this.oa("change")||(c.g.K(b.v,(d,e)=>{e.dispose&&(b.v[d]={S:e.S,fa:e.fa,ga:e.ga},e.dispose())}),b.A=!0,this.B(void 0,"asleep"))},za(){var a=this[x];a.A&&(a.Y||this.pa())&&this.T();return c.P.fn.za.call(this)}};Object.setPrototypeOf(K,c.P.fn);var N=c.$.$b;K[N]=c.m;c.m.fn=K;c.W("computed",c.m);c.isComputed=a=>"function"==typeof a&&a[N]===
K[N];c.yb=a=>{if("function"===typeof a)return c.m(a,{pure:!0});a={...a,pure:!0};return c.m(a)};c.C={M:a=>{switch(a.nodeName){case "OPTION":return!0===a.__ko__hasDomDataOptionValue__?c.g.l.get(a,c.i.options.Xa):a.value;case "SELECT":return 0<=a.selectedIndex?c.C.M(a.options[a.selectedIndex]):void 0;default:return a.value}},Ga:(a,b)=>{switch(a.nodeName){case "OPTION":"string"===typeof b?(c.g.l.set(a,c.i.options.Xa,void 0),delete a.__ko__hasDomDataOptionValue__,a.value=b):(c.g.l.set(a,c.i.options.Xa,
b),a.__ko__hasDomDataOptionValue__=!0,a.value="number"===typeof b?b:"");break;case "SELECT":for(var d=-1,e=""===(b??""),g=a.options.length,l;g--;)if(l=c.C.M(a.options[g]),l==b||""===l&&e){d=g;break}if(0<=d||e&&1<a.size)a.selectedIndex=d;break;default:a.value=b??""}}};c.ma=(()=>{var a=RegExp("\"(?:\\\\.|[^\"])*\"|'(?:\\\\.|[^'])*'|`(?:\\\\.|[^`])*`|/\\*(?:[^*]|\\*+[^*/])*\\*+/|//.*\n|/(?:\\\\.|[^/])+/w*|[^\\s:,/][^,\"'`{}()/:[\\]]*[^\\s,\"'`{}()/:[\\]]|[^\\s]","g"),b=/[\])"'A-Za-z0-9_$]+$/,d={"in":1,
"return":1,"typeof":1};return{Zb:e=>{e=c.g.Cb(e);123===e.charCodeAt(0)&&(e=e.slice(1,-1));e+="\n,";var g=[],l=e.match(a),f=[],h=0;if(1<l.length){for(var k=0,m;m=l[k++];){var p=m.charCodeAt(0);if(44===p){if(0>=h){n&&f.length&&g.push("'"+n+"':()=>("+f.join("")+")");var n=h=0;f=[];continue}}else if(58===p){if(!h&&!n&&1===f.length){n=f.pop();continue}}else if(47===p&&1<m.length&&(47===m.charCodeAt(1)||42===m.charCodeAt(1)))continue;else 47===p&&k&&1<m.length?(p=l[k-1].match(b))&&!d[p[0]]&&(e=e.slice(e.indexOf(m)+
1),l=e.match(a),k=-1,m="/"):40===p||123===p||91===p?++h:41===p||125===p||93===p?--h:n||f.length||34!==p&&39!==p||(m=m.slice(1,-1));f.push(m)}if(0<h)throw Error("Unbalanced parentheses, braces, or brackets");}g.push("'$data':()=>$data");return g.join(",")},dc:(e,g)=>-1<e.findIndex(l=>l.key==g),Ha:(e,g,l,f,h,k)=>{g&&c.V(g)?!c.wb(g)||k&&g.L()===h||g(h):(console.log(`"${f}" should contain observable in ${e.outerHTML.replace(/>.+/,">")}`),l.get("$data")[f]=h)}}})();(()=>{function a(f){return 8==f.nodeType&&
e.test(f.nodeValue)}function b(f){return 8==f.nodeType&&g.test(f.nodeValue)}function d(f,h){for(var k=f,m=1,p=[];k=k.nextSibling;){if(b(k)&&(c.g.l.set(k,l,!0),!--m))return p;p.push(k);a(k)&&++m}if(!h)throw Error("Cannot find closing comment tag to match: "+f.nodeValue);return null}var e=/^\s*ko(?:\s+([\s\S]+))?\s*$/,g=/^\s*\/ko\s*$/,l="__ko_matchedEndComment__";c.s={aa:{},childNodes:f=>a(f)?d(f):f.childNodes,ka:f=>{a(f)?(f=d(f))&&[...f].forEach(h=>c.removeNode(h)):c.g.Ra(f)},qa:(f,h)=>{a(f)?(c.s.ka(f),
f.after(...h)):c.g.qa(f,h)},Vb:(f,h,k)=>{k?k.after(h):a(f)?f.nextSibling.before(h):f.prepend(h)},firstChild:f=>{if(a(f))return f=f.nextSibling,!f||b(f)?null:f;let h=f.firstChild;if(h&&b(h))throw Error("Found invalid end comment, as the first child of "+f);return h},nextSibling:f=>{if(a(f)){var h=d(f,void 0);f=h?(h.length?h[h.length-1]:f).nextSibling:null}if((h=f.nextSibling)&&b(h)){if(b(h)&&!c.g.l.get(h,l))throw Error("Found end comment without a matching opening comment, as child of "+f);return null}return h},
Rb:a,bc:f=>(f=f.nodeValue.match(e))?f[1]:null}})();const S=new Map,la=a=>{switch(a.nodeType){case 1:return a.getAttribute("data-bind");case 8:return c.s.bc(a)}return null};c.pb=new class{Yb(a){switch(a.nodeType){case 1:return null!=a.getAttribute("data-bind");case 8:return c.s.Rb(a)}return!1}Pb(a,b){if(a=la(a))try{let d=S.get(a);d||(d=new Function("$context","with($context){return{"+c.ma.Zb(a)+"}}"),S.set(a,d));b=new Proxy(b,{has:()=>!0,get:(e,g)=>e[g]||e.$data[g]});return d(b)}catch(d){throw d.message=
"Unable to parse bindings.\nBindings value: "+a+"\nMessage: "+d.message,d;}return null}};const G=Symbol("_subscribable"),H=Symbol("_ancestorBindingInfo"),T=Symbol("_dataDependency"),U={},I=c.g.l.Z();c.i={};c.ba=class{constructor(a,b,d,e){var g=this,l=a===U,f=l?void 0:a,h="function"==typeof f&&!c.V(f),k=e?.dataDependency;a=()=>{var p=h?f():f;p=c.g.h(p);b?(c.g.extend(g,b),H in b&&(g[H]=b[H])):g.$root=p;g[G]=m;l?p=g.$data:g.$data=p;d?.(g,b,p);if(b?.[G]&&!c.u.m().Ta(b[G]))b[G]();k&&(g[T]=k);return g.$data};
if(e?.exportDependencies)a();else{var m=c.yb(a);m.L();m.isActive()?m.la=null:g[G]=void 0}}createChildContext(a,b){return new c.ba(a,this,(d,e)=>{d.$parent=e.$data;b.extend?.(d)},b)}extend(a,b){return new c.ba(U,this,d=>c.g.extend(d,"function"==typeof a?a(d):a),b)}};const V=a=>{a=c.g.l.get(a,I);var b=a?.D;b&&(a.D=null,b.xb())};class ma{constructor(a,b,d){this.H=a;this.da=b;this.ua=new Set;this.F=!1;b.D||c.g.N.ha(a,V);d?.D&&(d.D.ua.add(a),this.Aa=d)}xb(){this.Aa?.D?.Nb(this.H)}Nb(a){this.ua.delete(a);
this.ua.size||this.sb?.()}sb(){this.F=!0;this.da.D&&!this.ua.size&&(this.da.D=null,c.g.N.Za(this.H,V),c.j.notify(this.H,c.j.ca),this.xb())}}c.j={F:"childrenComplete",ca:"descendantsComplete",subscribe:(a,b,d,e,g)=>{var l=c.g.l.Sa(a,I,{});l.xa||(l.xa=new c.P);g?.notifyImmediately&&l.Wa[b]&&c.u.I(d,e,[a]);return l.xa.subscribe(d,e,b)},notify:(a,b)=>{var d=c.g.l.get(a,I);if(d&&(d.Wa[b]=!0,d.xa?.B(a,b),b==c.j.F))if(d.D)d.D.sb();else if(void 0===d.D&&d.xa?.oa(c.j.ca))throw Error("descendantsComplete event not supported for bindings on this node");
},ab:(a,b)=>{var d=c.g.l.Sa(a,I,{});d.D||(d.D=new ma(a,d,b[H]));return b[H]==d?b:b.extend(e=>{e[H]=d})}};const X=(a,b)=>{for(var d,e=c.s.firstChild(b);d=e;)e=c.s.nextSibling(d),W(a,d);c.j.notify(b,c.j.F)},W=(a,b)=>{var d=a;if(1===b.nodeType||c.pb.Yb(b))d=Y(b,null,a);d&&!b.matches?.("SCRIPT,TEXTAREA,TEMPLATE")&&X(d,b)},na=a=>{var b=[],d={},e=[],g=l=>{if(!d[l]){var f=c.i[l];f&&(f.after&&(e.push(l),f.after.forEach(h=>{if(a[h]){if(e.includes(h))throw Error("Cannot combine the following bindings, because they have a cyclic dependency: "+
e.join(", "));g(h)}}),e.length--),b.push({key:l,vb:f}));d[l]=!0}};c.g.K(a,g);return b},Y=(a,b,d)=>{var e=c.g.l.Sa(a,I,{}),g=e.Ib;if(!b){if(g)throw Error("You cannot apply bindings multiple times to the same element.");e.Ib=!0}g||(e.context=d);e.Wa||(e.Wa={});if(b&&"function"!==typeof b)var l=b;else{var f=c.m(()=>{if(l=b?b(d,a):c.pb.Pb(a,d))d[G]?.(),d[T]?.();return l},{o:a});l&&f.isActive()||(f=null)}var h=d,k;if(l){var m=f?n=>()=>f()[n]():n=>l[n],p={get:n=>l[n]&&m(n)(),has:n=>n in l};c.j.F in l&&
c.j.subscribe(a,c.j.F,()=>{var n=l[c.j.F]();if(n){var q=c.s.childNodes(a);q.length&&n(q,c.dataFor(q[0]))}});c.j.ca in l&&(h=c.j.ab(a,d),c.j.subscribe(a,c.j.ca,()=>{var n=l[c.j.ca]();n&&c.s.firstChild(a)&&n(a)}));na(l).forEach(n=>{var q=n.vb.init,r=n.vb.update,u=n.key;if(8===a.nodeType&&!c.s.aa[u])throw Error("The binding '"+u+"' cannot be used with comment nodes");try{"function"==typeof q&&c.u.I(()=>{var t=q(a,m(u),p,h.$data,h);if(t&&t.controlsDescendantBindings){if(void 0!==k)throw Error("Multiple bindings ("+
k+" and "+u+") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.");k=u}}),"function"==typeof r&&c.m(()=>r(a,m(u),p,h.$data,h),{o:a})}catch(t){throw t.message='Unable to process binding "'+u+": "+l[u]+'"\nMessage: '+t.message,t;}})}return void 0===k&&h};c.ac=a=>c.g.l.get(a,I)?.context;const O=a=>a&&a instanceof c.ba?a:new c.ba(a);c.applyBindingAccessorsToNode=(a,b,d)=>Y(a,b,O(d));c.nb=(a,b)=>{1!==b.nodeType&&8!==b.nodeType||X(O(a),
b)};c.Jb=(a,b)=>W(O(a),b);c.dataFor=a=>([1,8].includes(a?.nodeType)&&c.ac(a))?.$data;c.W("bindingHandlers",c.i);(()=>{var a=Object.create(null),b=new Map;c.components={get:(l,f)=>{if(b.has(l))f(b.get(l));else{var h=a[l];h?h.subscribe(f):(h=a[l]=new c.P,h.subscribe(f),g(l,k=>{b.set(l,k);delete a[l];h.B(k)}))}},register:(l,f)=>{if(!f)throw Error("Invalid configuration for "+l);if(d[l])throw Error("Component "+l+" is already registered");d[l]=f}};var d=Object.create(null),e=(l,f)=>{throw Error(`Component '${l}': ${f}`);
},g=(l,f)=>{var h={},k=d[l]||{},m=k.template;k=k.viewModel;if(m){m.element||e(l,"Unknown template value: "+m);m=m.element;var p=J.getElementById(m);p||e(l,"Cannot find element with ID "+m);p.matches("TEMPLATE")||e(l,"Template Source Element not a <template>");h.template=c.g.va(p.content.childNodes)}k&&("function"!==typeof k.createViewModel&&e(l,"Unknown viewModel value: "+k),h.createViewModel=k.createViewModel);f(h.template&&h.createViewModel?h:null)}})();(()=>{var a=0;c.i.component={init:(b,d,e,
g,l)=>{var f,h,k,m=()=>{var p=f&&f.dispose;"function"===typeof p&&p.call(f);k&&k.dispose();h=f=k=null};c.s.ka(b);c.g.N.ha(b,m);c.m(()=>{var p=c.g.h(d());if("string"!==typeof p){var n=c.g.h(p.params);p=c.g.h(p.name)}if(!p)throw Error("No component name specified");var q=c.j.ab(b,l),r=h=++a;c.components.get(p,u=>{if(h===r){m();if(!u)throw Error("Unknown component '"+p+"'");var t=u.template;if(!t)throw Error("Component '"+p+"' has no template");c.s.qa(b,c.g.va(t));f=u.createViewModel(n,{element:b});
c.nb(q.createChildContext(f,{}),b)}})},{o:b});return{controlsDescendantBindings:!0}}};c.s.aa.component=!0})();c.i.attr={update:(a,b)=>{b=c.g.h(b())||{};c.g.K(b,function(d,e){e=c.g.h(e);var g=d.indexOf(":");g="lookupNamespaceURI"in a&&0<g&&a.lookupNamespaceURI(d.slice(0,g));!1===e||null==e?g?a.removeAttributeNS(g,d):a.removeAttribute(d):(e=e.toString(),g?a.setAttributeNS(g,d,e):a.setAttribute(d,e))})}};(()=>{c.i.checked={after:["value","attr"],init:function(a,b,d){var e="checkbox"==a.type,g="radio"==
a.type;if(e||g){const n=c.yb(()=>{if(d.has("checkedValue"))return c.g.h(d.get("checkedValue"));if(m)return d.has("value")?c.g.h(d.get("value")):a.value});var l=()=>{if(!c.u.Da()){var q=a.checked,r=n();if(q||!g&&!c.u.na()){var u=c.u.I(b);if(h){var t=k?u.L():u,z=p;p=r;z!==r?q&&(t.push(r),t.remove(z)):q?t.push(r):t.remove(r);k&&c.wb(u)&&u(t)}else e&&(void 0===r?r=q:q||(r=void 0)),c.ma.Ha(a,u,d,"checked",r,!0)}}},f=b(),h=e&&c.g.h(f)instanceof Array,k=!(h&&f.push&&f.splice),m=g||h,p=h?n():void 0;c.m(l,
null,{o:a});a.addEventListener("click",l);c.m(()=>{var q=c.g.h(b()),r=n();h?(a.checked=q.includes(r),p=r):a.checked=e&&void 0===r?!!q:n()===q},null,{o:a});f=void 0}}};c.i.checkedValue={update:function(a,b){a.value=c.g.h(b())}}})();var P=(a,b,d)=>b&&b.split(/\s+/).forEach(e=>a.classList.toggle(e,d));c.i.css={update:(a,b)=>{b=c.g.h(b());"object"==typeof b?c.g.K(b,(d,e)=>{e=c.g.h(e);P(a,d,!!e)}):(b=c.g.Cb(b),P(a,a.__ko__cssValue,!1),a.__ko__cssValue=b,P(a,b,!0))}};c.i.enable={update:(a,b)=>{(b=c.g.h(b()))&&
a.disabled?a.removeAttribute("disabled"):b||a.disabled||(a.disabled=!0)}};c.i.disable={update:(a,b)=>c.i.enable.update(a,()=>!c.g.h(b()))};c.i.event={init:function(a,b,d,e,g){c.g.K(b()||{},l=>{"string"==typeof l&&a.addEventListener(l,(...f)=>{var h=b()[l];if(h)try{e=g.$data;var k=h.apply(e,[e,...f])}finally{!0!==k&&f[0].preventDefault()}})})}};const Z=a=>()=>{var b=a(),d=c.V(b)?b.L():b;if(!d||Array.isArray(d))return{foreach:b};c.g.h(b);return{foreach:d.data}};c.i.foreach={init:(a,b)=>c.i.template.init(a,
Z(b)),update:(a,b,d,e,g)=>c.i.template.update(a,Z(b),d,e,g)};c.s.aa.foreach=!0;c.i.hasfocus={init:(a,b,d)=>{var e=l=>{a.__ko_hasfocusUpdating=!0;l=a.ownerDocument.activeElement===a;c.ma.Ha(a,b(),d,"hasfocus",l,!0);a.__ko_hasfocusLastValue=l;a.__ko_hasfocusUpdating=!1},g=e.bind(null,!0);e=e.bind(null,!1);a.addEventListener("focus",g);a.addEventListener("focusin",g);a.addEventListener("blur",e);a.addEventListener("focusout",e);a.__ko_hasfocusLastValue=!1},update:(a,b)=>{b=!!c.g.h(b());a.__ko_hasfocusUpdating||
a.__ko_hasfocusLastValue===b||(b?a.focus():a.blur())}};c.i.html={init:()=>({controlsDescendantBindings:!0}),update:(a,b)=>{c.g.Ra(a);b=c.g.h(b());if(null!=b){const d=J.createElement("template");d.innerHTML="string"!=typeof b?b.toString():b;a.appendChild(d.content)}}};(()=>{function a(b,d,e){c.i[b]={init:(g,l,f,h,k)=>{var m,p={};d&&(p={exportDependencies:!0});var n=f.has(c.j.ca);c.m(()=>{var q=c.g.h(l()),r=!e!==!q,u=!m;n&&(k=c.j.ab(g,k));if(r){p.dataDependency=c.u.m();var t=d?k.createChildContext("function"==
typeof q?q:l,p):c.u.na()?k.extend(null,p):k}u&&c.u.na()&&(m=c.g.va(c.s.childNodes(g),!0));r?(u||c.s.qa(g,c.g.va(m)),c.nb(t,g)):(c.s.ka(g),c.j.notify(g,c.j.F))},{o:g});return{controlsDescendantBindings:!0}}};c.s.aa[b]=!0}a("if");a("ifnot",!1,!0);a("with",!0)})();var aa={};c.i.options={init:a=>{if(!a.matches("SELECT"))throw Error("options binding applies only to SELECT elements");let b=a.length;for(;b--;)a.remove(b);return{controlsDescendantBindings:!0}},update:(a,b,d)=>{var e=a.multiple,g=0!=a.length&&
e?a.scrollTop:null,l=c.g.h(b()),f=[];b=()=>Array.from(a.options).filter(n=>n.selected);var h=(n,q,r)=>{var u=typeof q;return"function"==u?q(n):"string"==u?n[q]:r},k=(n,q)=>{f.length&&(n=f.includes(c.C.M(q[0])),q[0].selected=n,p&&!n&&c.u.I(c.g.Eb,null,[a,"change"]))};e?f=b().map(c.C.M):0<=a.selectedIndex&&f.push(c.C.M(a.options[a.selectedIndex]));if(l){Array.isArray(l)||(l=[l]);var m=l.filter(n=>n??1)}var p=!1;l=k;d.has("optionsAfterRender")&&"function"==typeof d.get("optionsAfterRender")&&(l=(n,q)=>
{k(n,q);c.u.I(d.get("optionsAfterRender"),null,[q[0],n!==aa?n:void 0])});c.g.Bb(a,m,(n,q,r)=>{r.length&&(f=r[0].selected?[c.C.M(r[0])]:[],p=!0);q=a.ownerDocument.createElement("option");n===aa?(c.g.$a(q),c.C.Ga(q,void 0)):(r=h(n,d.get("optionsValue"),n),c.C.Ga(q,c.g.h(r)),n=h(n,d.get("optionsText"),r),c.g.$a(q,n));return[q]},{},l);m=f.length;(e?m&&b().length<m:m&&0<=a.selectedIndex?c.C.M(a.options[a.selectedIndex])!==f[0]:m||0<=a.selectedIndex)&&c.u.I(c.g.Eb,null,[a,"change"]);c.u.Da()&&c.j.notify(a,
c.j.F);g&&20<Math.abs(g-a.scrollTop)&&(a.scrollTop=g)}};c.i.options.Xa=c.g.l.Z();c.i.style={update:(a,b)=>{c.g.K(c.g.h(b()||{}),(d,e)=>{e=c.g.h(e);if(null==e||!1===e)e="";if(/^--/.test(d))a.style.setProperty(d,e);else{d=d.replace(/-(\w)/g,(l,f)=>f.toUpperCase());var g=a.style[d];a.style[d]=e;e===g||a.style[d]!=g||isNaN(e)||(a.style[d]=e+"px")}})}};c.i.submit={init:(a,b,d,e,g)=>{if("function"!=typeof b())throw Error("The value for a submit binding must be a function");a.addEventListener("submit",l=>
{var f=b();try{var h=f.call(g.$data,a)}finally{!0!==h&&l.preventDefault()}})}};c.i.text={init:()=>({controlsDescendantBindings:!0}),update:(a,b)=>{8===a.nodeType&&(a.text||a.after(a.text=J.createTextNode("")),a=a.text);c.g.$a(a,b())}};c.s.aa.text=!0;c.i.textInput={init:(a,b,d)=>{var e=a.value,g,l,f=()=>{clearTimeout(g);l=g=void 0;var k=a.value;a.checkValidity()&&e!==k&&(e=k,c.ma.Ha(a,b(),d,"textInput",k))},h=()=>{var k=c.g.h(b())??"";void 0!==l&&k===l?setTimeout(h,4):a.value!==k&&(a.value=k,e=a.value)};
a.addEventListener("input",f);a.addEventListener("change",f);c.m(h,{o:a})}};c.i.value={init:(a,b,d)=>{var e=a.matches("SELECT"),g=a.matches("INPUT");if(!g||"checkbox"!=a.type&&"radio"!=a.type){var l=new Set,f=d.get("valueUpdate"),h=null,k=()=>{h=null;var n=b(),q=c.C.M(a);c.ma.Ha(a,n,d,"value",q)};f&&("string"==typeof f?l.add(f):f.forEach(n=>l.add(n)),l.delete("change"));l.forEach(n=>{var q=k;(n||"").startsWith("after")&&(q=()=>{h=c.C.M(a);setTimeout(k,0)},n=n.slice(5));a.addEventListener(n,q)});var m=
g&&"file"==a.type?()=>{var n=c.g.h(b());null==n||""===n?a.value="":c.u.I(k)}:()=>{var n=c.g.h(b()),q=c.C.M(a);if(null!==h&&n===h)setTimeout(m,0);else if(n!==q||void 0===q)e?(c.C.Ga(a,n),n!==c.C.M(a)&&c.u.I(k)):c.C.Ga(a,n)};if(e){var p;c.j.subscribe(a,c.j.F,()=>{p?d.get("valueAllowUnset")?m():k():(a.addEventListener("change",k),p=c.m(m,{o:a}))},null,{notifyImmediately:!0})}else a.addEventListener("change",k),c.m(m,{o:a})}else c.applyBindingAccessorsToNode(a,{checkedValue:b})},update:()=>{}};c.i.visible=
{update:(a,b)=>{b=c.g.h(b());var d="none"!=a.style.display;b&&!d?a.style.display="":d&&!b&&(a.style.display="none")}};c.i.hidden={update:(a,b)=>a.hidden=!!c.g.h(b())};(function(a){c.i[a]={init:function(b,d,e,g,l){return c.i.event.init.call(this,b,()=>({[a]:d()}),e,g,l)}}})("click");(()=>{let a=c.g.l.Z();class b{constructor(e){this.Oa=e}Va(...e){let g=this.Oa;if(!e.length)return c.g.l.get(g,a)||(11===this.H?g.content:1===this.H?g:void 0);c.g.l.set(g,a,e[0])}}class d extends b{constructor(e){super(e);
e&&(this.H=e.matches("TEMPLATE")&&e.content?e.content.nodeType:1)}}c.cb={Oa:d,mb:b}})();(()=>{const a=(h,k,m)=>{var p;for(k=c.s.nextSibling(k);h&&(p=h)!==k;)h=c.s.nextSibling(p),m(p,h)},b=(h,k)=>{if(h.length){var m=h[0],p=m.parentNode;a(m,h[h.length-1],n=>(1===n.nodeType||8===n.nodeType)&&c.Jb(k,n));c.g.ya(h,p)}},d=(h,k,m,p)=>{var n=(h&&(h.nodeType?h:0<h.length?h[0]:null)||m||{}).ownerDocument;if("string"==typeof m){n=n||J;n=n.getElementById(m);if(!n)throw Error("Cannot find template with ID "+m);
m=new c.cb.Oa(n)}else if([1,8].includes(m.nodeType))m=new c.cb.mb(m);else throw Error("Unknown template type: "+m);m=(m=m.Va?m.Va():null)?[...m.cloneNode(!0).childNodes]:null;if(!Array.isArray(m)||0<m.length&&"number"!=typeof m[0].nodeType)throw Error("Template engine must return an array of DOM nodes");k&&(c.s.qa(h,m),b(m,p),c.j.notify(h,c.j.F));return m},e=(h,k,m)=>c.V(h)?h():"function"===typeof h?h(k,m):h,g=(h,k,m,p)=>{m=m||{};if(p){var n=p.nodeType?p:0<p.length?p[0]:null;return c.m(()=>{var q=
k instanceof c.ba?k:new c.ba(k,null,null,{exportDependencies:!0}),r=e(h,q.$data,q);d(p,!0,r,q,m)},{ja:()=>!n||!c.g.Qa(n),o:n})}console.log("no targetNodeOrNodeArray")},l=(h,k,m,p,n)=>{var q,r=(w,y)=>{q=n.createChildContext(w,{extend:B=>B.$index=y});w=e(h,w,q);return d(p,!1,w,q,m)},u=(w,y)=>{b(y,q);q=null},t=(w,y)=>{c.u.I(c.g.Bb,null,[p,w,r,m,u,y]);c.j.notify(p,c.j.F)};if(c.isObservableArray(k)){t(k.L());var z=k.subscribe(w=>{t(k(),w)},null,"arrayChange");z.o(p);return z}return c.m(()=>{var w=c.g.h(k)||
[];Array.isArray(w)||(w=[w]);t(w)},{o:p})},f=c.g.l.Z();c.i.template={init:(h,k)=>{k=c.g.h(k());if("string"==typeof k||"name"in k)c.s.ka(h);else if(k=c.s.childNodes(h),k.length)k=c.g.Xb(k),(new c.cb.mb(h)).Va(k);else throw Error("Anonymous template defined, but no template content was provided");return{controlsDescendantBindings:!0}},update:(h,k,m,p,n)=>{p=k();k=c.g.h(p);m=null;"string"==typeof k?k={}:p="name"in k?k.name:h;var q=!!p;"foreach"in k?m=l(p,q&&k.foreach||[],k,h,n):q?(m=n,"data"in k&&(m=
n.createChildContext(k.data,{exportDependencies:!0})),m=g(p,m,k,h)):c.s.ka(h);n=m;c.g.l.get(h,f)?.dispose?.();c.g.l.set(h,f,!n||n.isActive&&!n.isActive()?void 0:n)}};c.s.aa.template=!0})();c.g.ub=(a,b,d)=>{var e=0,g,l=b.length;l&&a.every(f=>{g=b.findIndex(h=>f.value===h.value);0<=g&&(f.moved=b[g].index,b[g].moved=f.index,b.splice(g,1),e=g=0,--l);e+=l;return l&&(!d||e<d)})};c.g.rb=(()=>{var a=(b,d,e,g,l)=>{for(var f=Math.min,h=Math.max,k=[],m=-1,p=b.length,n,q=d.length,r=q-p||1,u=p+q+1,t,z,w;++m<=
p;)for(z=t,k.push(t=[]),w=f(q,m+r),n=h(0,m-1);n<=w;n++)t[n]=n?m?b[m-1]===d[n-1]?z[n-1]:f(z[n]||u,t[n-1]||u)+1:n+1:m+1;f=[];h=[];r=[];m=p;for(n=q;m||n;)q=k[m][n]-1,n&&q===k[m][n-1]?h.push(f[f.length]={status:e,value:d[--n],index:n}):m&&q===k[m-1][n]?r.push(f[f.length]={status:g,value:b[--m],index:m}):(--n,--m,l.sparse||f.push({status:"retained",value:d[n]}));c.g.ub(r,h,10*p);return f.reverse()};return(b,d,e)=>{b=b||[];d=d||[];return b.length<d.length?a(b,d,"added","deleted",e):a(d,b,"deleted","added",
e)}})();(()=>{function a(e,g,l,f,h){var k=[],m=c.m(()=>{var p=g(l,h,c.g.ya(k,e))||[];if(0<k.length){var n=k.nodeType?[k]:k;if(0<n.length){var q=n[0],r=q.parentNode;p.forEach(u=>r.insertBefore(u,q));n.forEach(u=>c.removeNode(u))}f&&c.u.I(f,null,[l,p,h])}k.length=0;k.push(...p)},{o:e,ja:()=>!!k.find(c.g.Qa)});return{O:k,Ma:m.isActive()?m:void 0}}var b=c.g.l.Z(),d=c.g.l.Z();c.g.Bb=(e,g,l,f,h,k)=>{g=g||[];Array.isArray(g)||(g=[g]);var m=c.g.l.get(e,b),p=[],n=0,q=0,r=[],u=[],t,z=v=>{t={ta:v,Ua:c.$(q++)};
p.push(t)},w=v=>{t=m[v];t.Ua(q++);c.g.ya(t.O,e);p.push(t)};if(m){if(!k||m&&m._countWaitingForRemove)k=c.g.rb(Array.prototype.map.call(m,C=>C.ta),g,{sparse:!0});let v,F;for(k.forEach(C=>{v=C.moved;F=C.index;switch(C.status){case "deleted":for(;n<F;)w(n++);void 0===v&&(t=m[n],t.Ma&&(t.Ma.dispose(),t.Ma=void 0),c.g.ya(t.O,e).length&&t&&r.push.apply(r,t.O));n++;break;case "added":for(;q<F;)w(n++);void 0!==v?(u.push(p.length),w(v)):z(C.value)}});q<g.length;)w(n++);p._countWaitingForRemove=0}else g.forEach(z);
c.g.l.set(e,b,p);r.forEach(c.removeNode);var y=v=>{c.s.Vb(e,v,B);B=v};k=e.ownerDocument.activeElement;if(u.length)for(;null!=(g=u.shift());){for(t=p[g];g--;)if(f=p[g].O,f?.length){var B=f[f.length-1];break}t.O.forEach(y)}p.forEach(v=>{v.O||c.g.extend(v,a(e,l,v.ta,h,v.Ua));v.O.forEach(y);!v.Ub&&h&&(h(v.ta,v.O,v.Ua),v.Ub=!0,B=v.O[v.O.length-1])});e.ownerDocument.activeElement!=k&&k?.focus();[].forEach(v=>v&&(v.ta=d))}})();Q.ko=c})(this);

View File

@ -131,7 +131,7 @@ class AsyncCompleteContext {
this.asyncDescendants = new Set;
this.childrenComplete = false;
bindingInfo.asyncContext || ko.utils.domNodeDisposal['addDisposeCallback'](node, asyncContextDispose);
bindingInfo.asyncContext || ko.utils.domNodeDisposal.addDisposeCallback(node, asyncContextDispose);
if (ancestorBindingInfo?.asyncContext) {
ancestorBindingInfo.asyncContext.asyncDescendants.add(node);

View File

@ -21,7 +21,7 @@
};
ko.virtualElements.emptyNode(element);
ko.utils.domNodeDisposal['addDisposeCallback'](element, disposeAssociatedComponentViewModel);
ko.utils.domNodeDisposal.addDisposeCallback(element, disposeAssociatedComponentViewModel);
ko.computed(() => {
var componentName = ko.utils.unwrapObservable(valueAccessor()),

View File

@ -86,7 +86,7 @@ ko.computed = (evaluatorFunctionOrOptions, options) => {
// Attach a DOM node disposal callback so that the computed will be proactively disposed as soon as the node is
// removed using ko.removeNode. But skip if isActive is false (there will never be any dependencies to dispose).
if (state.disposeWhenNodeIsRemoved && computedObservable.isActive()) {
ko.utils.domNodeDisposal['addDisposeCallback'](state.disposeWhenNodeIsRemoved, state.domNodeDisposalCallback = () => {
ko.utils.domNodeDisposal.addDisposeCallback(state.disposeWhenNodeIsRemoved, state.domNodeDisposalCallback = () => {
computedObservable['dispose']();
});
}

View File

@ -25,7 +25,7 @@ class koSubscription
disposeWhenNodeIsRemoved(node) {
// MutationObserver ?
this._node = node;
ko.utils.domNodeDisposal['addDisposeCallback'](node, this._domNodeDisposalCallback = this['dispose'].bind(this));
ko.utils.domNodeDisposal.addDisposeCallback(node, this._domNodeDisposalCallback = this['dispose'].bind(this));
}
}

View File

@ -45,7 +45,7 @@ ko.utils.domNodeDisposal = (() => {
};
return {
'addDisposeCallback' : (node, callback) => {
addDisposeCallback : (node, callback) => {
if (typeof callback != "function")
throw Error("Callback must be a function");
getDisposeCallbacksCollection(node, 1).add(callback);
@ -82,4 +82,5 @@ ko.utils.domNodeDisposal = (() => {
})();
ko.cleanNode = ko.utils.domNodeDisposal.cleanNode; // Shorthand name for convenience
ko.removeNode = ko.utils.domNodeDisposal.removeNode; // Shorthand name for convenience
ko.exportSymbol('utils.domNodeDisposal', ko.utils.domNodeDisposal);
//ko.exportSymbol('utils.domNodeDisposal', ko.utils.domNodeDisposal);
ko.exportSymbol('addDisposeCallback', ko.utils.domNodeDisposal.addDisposeCallback);

View File

@ -96,5 +96,5 @@ ko.utils = {
element.textContent = ko.utils.unwrapObservable(textContent)
};
ko.exportSymbol('utils', ko.utils);
//ko.exportSymbol('utils', ko.utils);
ko.exportSymbol('unwrap', ko.utils.unwrapObservable); // Convenient shorthand, because this is used so commonly

View File

@ -76,17 +76,15 @@
ko.utils.setDomNodeChildren(node, childNodes);
},
prepend: (containerNode, nodeToPrepend) => {
// Start comments must always have a parent and at least one following sibling (the end comment)
isStartComment(containerNode)
? containerNode.nextSibling.before(nodeToPrepend)
: containerNode.prepend(nodeToPrepend);
},
insertAfter: (containerNode, nodeToInsert, insertAfterNode) => {
insertAfterNode
? insertAfterNode.after(nodeToInsert)
: ko.virtualElements.prepend(containerNode, nodeToInsert);
: (
// Start comments must always have a parent and at least one following sibling (the end comment)
isStartComment(containerNode)
? containerNode.nextSibling.before(nodeToInsert)
: containerNode.prepend(nodeToInsert)
);
},
firstChild: node => {