var dotvvm=function(){"use strict";
/*! *****************************************************************************
    Copyright (c) Microsoft Corporation.

    Permission to use, copy, modify, and/or distribute this software for any
    purpose with or without fee is hereby granted.

    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
    REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
    AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
    INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
    LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
    OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
    PERFORMANCE OF THIS SOFTWARE.
    ***************************************************************************** */function e(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{s(r.next(e))}catch(e){i(e)}}function u(e){try{s(r.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,u)}s((r=r.apply(e,t||[])).next())}))}function t(e,t){function n(n){return function(a){return function(n){if(r)throw new TypeError("Generator is already executing.");for(;u;)try{if(r=1,o&&(i=2&n[0]?o.return:n[0]?o.throw||((i=o.return)&&i.call(o),0):o.next)&&!(i=i.call(o,n[1])).done)return i;switch(o=0,i&&(n=[2&n[0],i.value]),n[0]){case 0:case 1:i=n;break;case 4:return u.label++,{value:n[1],done:!1};case 5:u.label++,o=n[1],n=[0];continue;case 7:n=u.ops.pop(),u.trys.pop();continue;default:if(!((i=(i=u.trys).length>0&&i[i.length-1])||6!==n[0]&&2!==n[0])){u=0;continue}if(3===n[0]&&(!i||n[1]>i[0]&&i[3]>n[1])){u.label=n[1];break}if(6===n[0]&&i[1]>u.label){u.label=i[1],i=n;break}if(i&&i[2]>u.label){u.label=i[2],u.ops.push(n);break}i[2]&&u.ops.pop(),u.trys.pop();continue}n=t.call(e,u)}catch(e){n=[6,e],o=0}finally{r=i=0}if(5&n[0])throw n[1];return{value:n[0]?n[1]:void 0,done:!0}}([n,a])}}var r,o,i,a,u={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:n(0),throw:n(1),return:n(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a}function n(){var e,t,n,r,o,i,a,u;for(e=0,t=0,n=arguments.length;n>t;t++)e+=arguments[t].length;for(r=Array(e),o=0,t=0;n>t;t++)for(a=0,u=(i=arguments[t]).length;u>a;a++,o++)r[o]=i[a];return r}function r(e){null!=e&&(location.hash="",location.hash=e)}function o(e){for(var t=[],r=1;arguments.length>r;r++)t[r-1]=arguments[r];"verbose"===Yt&&console.log.apply(console,n(["%c"+e,"background-color: #7fdbff"],t))}function i(e){for(var t=[],r=1;arguments.length>r;r++)t[r-1]=arguments[r];console.warn.apply(console,n(["%c"+e,"background-color: #ff851b"],t))}function a(e){for(var t=[],r=1;arguments.length>r;r++)t[r-1]=arguments[r];console.error.apply(console,n(["%c"+e,"background-color: #ff4136; color: white"],t))}function u(e){return!e||"object"!=typeof e}function s(n){return e(this,void 0,void 0,(function(){var e,r,o,i,a;return t(this,(function(t){switch(t.label){case 0:if(!n)return[2];for(e="",r=0,o=en(n);o.length>r;r++){if(!/^__noname_\d+$/.test(i=o[r])){if(tn[i])continue;tn[i]=!0}e+=n[i]+" "}return""!=e.trim()?[3,1]:[2];case 1:return(a=document.createElement("div")).innerHTML=e,[4,l(Qt(a.children))];case 2:t.sent(),t.label=3;case 3:return[2]}}))}))}function l(n){return e(this,void 0,void 0,(function(){var e,r,o,a,u,s;return t(this,(function(l){switch(l.label){case 0:e=[],r=function(n){var r,u,s,l,c,d;return t(this,(function(t){switch(t.label){case 0:return r=!1,"script"==n.tagName.toLowerCase()?(u=n,s=document.createElement("script"),u.src&&(s.src=u.src,r=!0),u.type&&(s.type=u.type),u.text&&(s.text=u.text),n.id&&(s.id=n.id),"module"!=s.type||s.src||(s.text+="\n;dotvvm.resourceLoader.notifyModuleLoaded("+(l=nn.length)+");",c=new Promise((function(e,t){nn[l]=e})),e.push(c)),n=s):"link"==n.tagName.toLowerCase()&&(o=n,a=document.createElement("link"),o.href&&(a.href=o.href),o.rel&&(a.rel=o.rel),o.type&&(a.type=o.type),n=a),d=function(e){return new Promise((function(t){e.addEventListener("load",(function(){return t()})),e.addEventListener("error",(function(){i("resource-loader","Error loading resource",e),t()}))}))}(n),document.head.appendChild(n),r?[4,d]:[3,2];case 1:t.sent(),t.label=2;case 2:return[4,Promise.all(e)];case 3:return t.sent(),[2]}}))},u=0,s=n,l.label=1;case 1:return s.length>u?[5,r(s[u])]:[3,4];case 2:l.sent(),l.label=3;case 3:return u++,[3,1];case 4:return[2]}}))}))}function c(e){var t=On[e];if(!t)throw Error("Cannot find type metadata for '"+e+"'!");return t}function d(e){var t=c(e);if("object"!==t.type)throw"Cannot convert object to an enum type "+e+"!";return t}function f(){return en(On)}function p(e){On=Gt(Gt({},On),e)}function v(e,t){var n,r;return void 0===t&&(t=!1),(n=e.match("^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(\\.[0-9]{1,7})$"))?(r=new Date(parseInt(n[1],10),parseInt(n[2],10)-1,parseInt(n[3],10),parseInt(n[4],10),parseInt(n[5],10),parseInt(n[6],10),n.length>7?parseInt(n[7].substring(1,4),10):0),t&&r.setMinutes(r.getMinutes()-r.getTimezoneOffset()),r):null}function h(e){var t=e.match("^(-?)([0-9]+\\.)?([0-9]+):([0-9]{2}):([0-9]{2})(\\.[0-9]{3,7})?$");return t?(t[1]?-1:1)*(36e5*(24*(t[2]?parseInt(t[2],10):0)+parseInt(t[3],10))+6e4*parseInt(t[4],10)+1e3*parseInt(t[5],10)+(t[6]?parseInt(t[6].substring(1,4),10):0)):null}function m(e,t){for(e+="";t>e.length;)e="0"+e;return e}function b(e,t){if(void 0===t&&(t=!0),null==e)return null;if("string"==typeof e)return null==v(e)&&i("coercer","Date "+e+" is invalid."),e;var n=new Date(e.getTime());return t?n.setMinutes(e.getMinutes()+e.getTimezoneOffset()):n=e,m(n.getFullYear(),4)+"-"+m(n.getMonth()+1,2)+"-"+m(n.getDate(),2)+"T"+m(n.getHours(),2)+":"+m(n.getMinutes(),2)+":"+m(n.getSeconds(),2)+"."+m(n.getMilliseconds(),3)+"0000"}function g(e){var t,n,r,o,a,u,s,l,c,d,f;if(null===e)return null;if("string"==typeof e){if(null===(n=h(e)))return i("coercer","TimeSpan "+e+" is invalid."),null;t=n}else t=e;return r=0>t?"-":"",o=(t=Math.abs(t))/1e3/3600|0,a=t/1e3/60|0,u=t/1e3|0,s=t%1e3|0,l=m(o%24,2),c=m(a%60,2),d=m(u%60,2),f=0!==s?"."+m(s,3)+"0000":"",24>o?""+r+l+":"+c+":"+d+f:""+r+(o/24|0)+"."+l+":"+c+":"+d+f}function y(e){return Array.isArray(e)?ko.observableArray(e):ko.observable(e)}function w(e){return ko.isObservable(e)&&"removeAll"in e}function k(e,t,n){if(void 0===n&&(n=!1),ko.isObservable(e))throw Error("Parameter viewModel should not be an observable. Maybe you forget to invoke the observable you are passing as a viewModel parameter.");return ko.isObservable(t)&&"setState"in t?(t.setState(_(e)),t[An](t.state),t):u(e)?function(e,t){return ko.isObservable(t)?(t(e),t):e}(e,t):e instanceof Date?function(e,t){return e=b(e),ko.isObservable(t)?(t(e),t):e}(e,t):e instanceof Array?function(e,t,n){return void 0===n&&(n=!1),w(t)&&null!=t()&&t().length===e.length?function(e,t,n){var r,o,i,a;for(r=t(),o=0;e.length>o;o++)(i=ko.unwrap(r[o]))!==(a=k(ko.unwrap(e[o]),i,n))&&(ko.isObservable(r[o])?r[o]()!==a&&(r[o]=O(r[o]),r[o](a)):r[o]=y(a))}(e,t,n):t=function(e,t,n){for(var r=[],o=0;e.length>o;o++)r.push(y(k(ko.unwrap(e[o]),{},n)));return ko.isObservable(t)?(t=O(t))(r):t=r,t}(e,t,n),t}(e,t,n):function(e,t,n){var r,o,i,a,s,l,c=ko.unwrap(t),f=ko.unwrap(e.$type);for(!f&&c&&(f=ko.unwrap(c.$type)),u(c)&&(c={}),f&&(r=d(f),ko.isObservable(c.$type)?c.$type(f):c.$type=ko.observable(f)),o=0,i=en(e);i.length>o;o++)E(a=i[o])||(void 0===c[a]&&(c[a]=ko.observable()),void 0===(s=e[a])||!ko.isObservable(s)&&"function"==typeof s||(l=null==r?void 0:r.properties[a],!n&&l&&"no"==l.update||C(s,c,a,n,l)));return ko.isObservable(t)?c!==t()&&t(c):t=c,t}(e,t,n)}function C(e,t,n,r,o){var i,a,u,s=k(ko.unwrap(e),t[n],r);if(ko.isObservable(s)?s()!==t[n]()&&(t[n]=O(t[n]),t[n](s())):t[n]=y(s),o&&o.clientExtenders&&ko.isObservable(t[n]))for(i=0;o.clientExtenders.length>i;i++)(a={})[(u=o.clientExtenders[i]).name]=u.parameter,t[n].extend(a)}function O(e){if(!ko.isObservable(e))throw Error("Trying to extend a non-observable to an observable array.");return w(e)||(ko.utils.extend(e,ko.observableArray.fn),e=e.extend({trackArrayChanges:!0})),e}function E(e){return"$type"==e}function S(){var e=window.dotvvm_Globalize;if(!e)throw Error("Resource 'globalize' is not included (symbol 'dotvvm_Globalize' could not be found).\nIt is usually included automatically when needed, but sometime it's not possible, so you will have to include it in your page using '<dot:RequiredResource Name=\"globalize\" />'");return e}function x(e){for(var t=[],n=1;arguments.length>n;n++)t[n-1]=arguments[n];return e.replace(/\{([1-9]?[0-9]+)(:[^}]+)?\}/g,(function(e,n,r){var o=t[parseInt(n,10)];return r?M(r=r.substring(1),o):o}))}function M(e,t){if(null==(t=ko.unwrap(t))||""===t)return"";if("string"==typeof t&&null==(t=v(t)))throw Error("Could not parse "+t+" as a date");return e||(e="G"),S().format(t,e,K())}function A(e){return S().parseFloat(e,10,K())}function I(e,t,n){return S().parseDate(e,t,K(),n)}function j(e,t,n){var r=!1;if("string"==typeof e){if(""===e)return;if(isNaN(e=+e))return;r=!0}else if("number"!=typeof e)return;if(Math.trunc(e)!==e&&(e=Math.trunc(e),r=!0),!isNaN(e)&&e>=t&&n>=e)return{value:e,wasCoerced:r}}function P(e){var t=!1;if("string"==typeof e){if(isNaN(e=+e))return;t=!0}else if("number"!=typeof e)return;if(!isNaN(e))return{value:e,wasCoerced:t}}function T(e,t,n){void 0===n&&(n=void 0);var r=function(){var r,o;if(n===e&&void 0!==e)return{value:e};if(e&&(t=null!==(r=e.$type)&&void 0!==r?r:t),Array.isArray(t))return R(e,t[0],n);if("object"==typeof t){if("nullable"===t.type)return function(e,t,n){return null===e?{value:null}:void 0===e||""===e?{value:null,wasCoerced:!0}:T(e,t,n)}(e,t.inner,n);if("dynamic"===t.type)return D(e,n)}else if("string"==typeof t){if(t in Sn)return function(e,t){return Sn[t].tryCoerce(e)||Zt.generic(e,t)}(e,t);if((o=c(t))&&"object"===o.type)return N(e,t,o,n);if(o&&"enum"===o.type)return function(e,t){var n,r,o,i,a,u,s,l,c,d,f,p=!1;if("string"==typeof e&&""!==e&&(isNaN(n=+e)||(e=n,p=!0)),"string"==typeof e){if(t.isFlags){for(r=e.split(","),o=[],i=!1,a=0;r.length>a;a++){if((u=r[a].trim()).length!==r[a].length&&(p=!0,r[a]=u),!(r[a]in t.values))return new Zt("Cannot cast '"+r[a]+"' to type 'Enum("+en(t.values).join(",")+")'.");o.includes(r[a])||(o.length&&t.values[o[o.length-1]]>t.values[r[a]]&&(i=!0),0===t.values[r[a]]&&r.length>1?p=!0:o.push(r[a]))}return i&&(o.sort((function(e,n){return t.values[e]-t.values[n]})),p=!0),p?{value:e=o.join(","),wasCoerced:p}:{value:e}}if(e in t.values)return{value:e}}if("number"==typeof e){if(t.isFlags){if(!e)return(o=en(t.values).filter((function(e){return 0===t.values[e]}))).length?{value:o[0],wasCoerced:!0}:{value:e,wasCoerced:p};for(s=0|e,l="",c=0,d=en(t.values).reverse();d.length>c;c++)0!==t.values[f=d[c]]&&(s&t.values[f])===t.values[f]&&(s-=t.values[f],""!==l&&(l=","+l),l=f+l);if(!s)return{value:l,wasCoerced:!0}}else if((o=en(t.values).filter((function(n){return t.values[n]===e}))).length)return{value:o[0],wasCoerced:!0};return{value:0|e,wasCoerced:p}}return new Zt("Cannot cast '"+e+"' to type 'Enum("+en(t.values).join(",")+")'.")}(e,o)}return new Zt("Unsupported type metadata "+JSON.stringify(t)+"!")}();return r instanceof Zt?r:Object.freeze(r)}function $(e,t,n){void 0===n&&(n=void 0);var r=T(e,t,n);if(r.isError)throw r;return r.value}function R(e,t,n){var r,o,i,a,u;if(null===e)return{value:null};if(void 0===e)return{value:null,wasCoerced:!0};if(Array.isArray(e)){for(n=Array.isArray(n)?n:[],r=!1,o=[],i=function(i){var a=V("#"+i,(function(){return T(e[i],t,n[i])}));if(a.isError)return{value:a};a.wasCoerced&&(r=!0),o.push(a.value)},a=0;e.length>a;a++)if("object"==typeof(u=i(a)))return u.value;return r?{value:o,wasCoerced:!0}:{value:e}}return new Zt("Value '"+JSON.stringify(e)+"' is not an array of type '"+JSON.stringify(t)+"'.")}function N(e,t,n,r){var o,i,a,u,s,l;if(null===e)return{value:null};if(void 0===e)return{value:null,wasCoerced:!0};if("object"==typeof e){for(r&&r.$type===t||(r={}),o=!1,i={},a=function(t){if("$type"===t)return"continue";var a=V(t,(function(){return T(e[t],n.properties[t].type,r[t])}));if(a.isError)return{value:a};a.wasCoerced&&(o=!0,i[t]=a.value)},u=0,s=en(n.properties);s.length>u;u++)if("object"==typeof(l=a(s[u])))return l.value;return"$type"in e||(i.$type=t,o=!0),o?{value:Gt(Gt({},e),i),wasCoerced:!0}:{value:e}}return new Zt("Value "+e+" was expected to be object")}function D(e,t){var n,r,o,i,a,u,s;if(void 0===e)return{value:null,wasCoerced:!0};if(Array.isArray(e))return R(e,{type:"dynamic"},t);if(e instanceof Date)e=b(e,!1);else if(e&&"object"==typeof e){if("string"==typeof(n=e.$type))return N(e,n,d(n),t);for(r=!1,o={},i=function(n){var i=V(n,(function(){return D(e[n],t&&t[n])}));if(i.isError)return{value:i};i.wasCoerced&&(r=!0,o[n]=i.value)},a=0,u=en(e);u.length>a;a++)if("object"==typeof(s=i(u[a])))return s.value;if(r)return{value:Gt(Gt({},e),o),wasCoerced:!0}}return{value:e}}function V(e,t){var n=t();return n.isError&&n.prependPathFragment(e),n}function U(e,t){var n,r,o,i,a,u,s;for(void 0===t&&(t={}),n=0,r=en(e.updatedControls);r.length>n;n++)(i=Xt(o=r[n]))&&(a=ko.contextFor(i),u=i.nextSibling,s=i.parentNode,ko.removeNode(i),t[o]={control:i,nextSibling:u,parent:s,dataContext:a});return t}function F(e,t){var n,r,o;if(e instanceof Array&&t instanceof Array)return t.map((function(t,n){return F(e[n],t)}));if(e instanceof Array||t instanceof Array)return t;if("object"==typeof e&&"object"==typeof t&&e&&t){for(e=Gt({},e),n=0,r=en(t);r.length>n;n++)e[o=r[n]]=F(e[o],t[o]);return e}return t}function H(e,t){var n,r,o,i;if(e instanceof Array&&t instanceof Array)return n=t.map((function(t,n){return H(e[n],t)})),e.length===t.length&&n.every((function(n,r){return n===xn||e[r]===t[r]}))?xn:n;if(e instanceof Array||t instanceof Array)return t;if("object"==typeof e&&"object"==typeof t&&e&&t){for(o in r=xn,t)(i=H(e[o],t[o]))!==xn&&e[o]!==t[o]?(r===xn&&(r={}),r[o]=i):"$"===o[0]&&(r==xn&&(r={}),r[o]=t[o]);return r}return e===t?"object"==typeof e?xn:e:t}function _(e){var t,n,r,o,i;if(u(e=ko.unwrap(e)))return e;if(e instanceof Date)return e;if(e instanceof Array)return e.map(_);for(t={},n=0,r=en(e);r.length>n;n++)o=r[n],"function"!=typeof(i=ko.unwrap(e[o]))&&(t[o]=_(i));return t}function B(e,t,n){function r(e){var r,o,u,d;if(s)return{newValue:e,notifySubscribers:!1};c=!0;try{return r=this[In],this[In]=void 0,o=_(e),d=$(o,t||{type:"dynamic"},u=l[Mn]),n((function(e){return d})),{newValue:a(d,u,!0).newContents,notifySubscribers:r}}catch(t){throw this[In]=t,function(e){e.valueHasMutated&&e.valueHasMutated()}(this),i("state-manager","Can not update observable to "+e+":",t),t}}function o(e){var t,n,r=l[Mn];if(e!==r&&(t=c,c=!1,l[In]=void 0,l[Mn]=e,(n=a(e,r,t))&&"newContents"in n))try{s=!0,l(n.newContents)}finally{s=!1}}function a(e,r,o){var a,s,c,f,p=l.peek();if(u(e)||e instanceof Date)a=e;else if(e instanceof Array){if(O(l),s=!o&&p instanceof Array&&p.length==e.length)a=p;else for(a=p instanceof Array?p.slice(0,e.length):[],c=function(r){if(a[r]&&a[r][An])return"continue";a[r]&&i("state-manager","Replacing old knockout observable with a new one, just because it is not created by DotVVM. Please do not assign objects into the knockout tree directly. The object is ",_(a[r]));var o=r;a[r]=B(e[r],Array.isArray(t)?t[0]:void 0,(function(e){return n((function(t){if(null==t||o>=t.length)return t;var n=e(t[o]),r=Qt(t);return r[o]=n,Object.freeze(r)}))}))},f=0;e.length>f;f++)c(f);for(f=0;a.length>f;f++)a[f][An](e[f]);if(s)return}else{if(!o&&p&&p[An]&&r.$type&&r.$type===e.$type)return void p[An](e);a=function(e,t,n){var r,o,i,a=e.$type||t;return!a||a.hasOwnProperty("type")&&"dynamic"===a.type||(r=d(a)),o=new Set,r&&en(r.properties).forEach((function(e){return o.add(e)})),i=en(e).filter((function(e){return!o.has(e)})),new Nn(e,n,a,r,i)}(e,t,n)}return{newContents:a}}var s=!1,l=e instanceof Array?ko.observableArray([],r):ko.observable(null,r),c=!1;return l[An]=o,o(e),Object.defineProperty(l,"state",{get:function(){var e;return n((function(t){return e=t,t})),e},configurable:!1}),Object.defineProperty(l,"patchState",{get:function(){return function(e){n((function(t){return F(t,e)}))}},configurable:!1}),Object.defineProperty(l,"setState",{get:function(){return function(e){n((function(t){return e}))}},configurable:!1}),Object.defineProperty(l,"updater",{get:function(){return n},configurable:!1}),l}function L(){if(!Dn)throw Error("DotVVM is not initialized.");return Dn}function z(){return L().l}function q(){return L().v.stateObservable}function W(){return L().p}function J(){return Z().state}function G(e,t){L().m=e,L().l=t}function X(){delete L().m,delete L().l}function K(){return L().h}function Z(){return L().v}function Y(e){return e.length>0&&"/"!=e.substring(0,1)?"/"+e:e}function Q(n,r,o,i){return e(this,void 0,void 0,(function(){var e;return t(this,(function(t){switch(t.label){case 0:return(e=new Headers).append("Content-Type","application/json"),e.append("X-DotVVM-PostBack","true"),function(e,t){var n,r,o;if(t)for(n=0,r=en(t);r.length>n;n++)e.append(o=r[n],t[o])}(e,i),[4,ee(n,{body:r,headers:e,method:"POST",signal:o})];case 1:return[2,t.sent()]}}))}))}function ee(n,r){return e(this,void 0,void 0,(function(){var e,o,i,a,u,s,l,c;return t(this,(function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,fetch(n,r)];case 1:return e=t.sent(),[3,3];case 2:throw o=t.sent(),new Kt({type:"network",err:o});case 3:return i=e.status>=400,a=e.headers.get("content-type")&&e.headers.get("content-type").match(/^application\/json/),!i&&a?[3,7]:(u=Kt.bind,l={type:"serverError",status:e.status},a?[4,e.json()]:[3,5]);case 4:return s=t.sent(),[3,6];case 5:s=null,t.label=6;case 6:throw new(u.call(Kt,void 0,(l.responseObject=s,l.response=e,l)));case 7:return c={},[4,e.json()];case 8:return[2,(c.result=t.sent(),c.response=e,c)]}}))}))}function te(n){return e(this,void 0,void 0,(function(){var e,r,o,a,u;return t(this,(function(t){switch(t.label){case 0:if(e=J(),null!=(r=e.$csrfToken))return[3,6];o=void 0,t.label=1;case 1:return t.trys.push([1,3,,4]),a=Y(((s=L().g||"").length>0&&"/"==s.substring(s.length-1)&&(s=s.substring(0,s.length-1)),s+Y("___dotvvm-create-csrf-token___"))),[4,fetch(a,{signal:n})];case 2:return o=t.sent(),[3,4];case 3:throw u=t.sent(),i("postback","CSRF token fetch failed."),new Kt({type:"network",err:u});case 4:if(200!=o.status)throw i("postback","CSRF token fetch failed. HTTP status: "+o.statusText),new Kt({type:"csrfToken"});return[4,o.text()];case 5:r=t.sent(),Z().setState(Gt(Gt({},e),{$csrfToken:r})),t.label=6;case 6:return[2,r]}var s}))}))}function ne(n,r,i){var a;return void 0===r&&(r=0),void 0===i&&(i=function(){}),e(this,void 0,void 0,(function(){var e;return t(this,(function(t){switch(t.label){case 0:return t.trys.push([0,2,,5]),[4,n()];case 1:return[2,t.sent()];case 2:return(e=t.sent())instanceof Kt?"serverError"!==e.reason.type||"invalidCsrfToken"!==(null===(a=e.reason.responseObject)||void 0===a?void 0:a.action)?[3,4]:(o("postback","Resending postback due to invalid CSRF token."),Z().update((function(e){return Gt(Gt({},e),{$csrfToken:void 0})})),3>r?[4,ne(n,r+1)]:[3,4]):[3,4];case 3:return[2,t.sent()];case 4:throw i(),e;case 5:return[2]}}))}))}function re(e,t,n){return t?(location.replace(e),Promise.resolve()):(function(e){Xe||((Xe=document.createElement("a")).style.display="none",document.body.appendChild(Xe)),Xe.href=e,Xe.click()}(e),Promise.resolve())}function oe(n,r,o,i){return void 0===i&&(i=!1),e(this,void 0,void 0,(function(){var e,a;return t(this,(function(t){switch(t.label){case 0:return null!=r.replace&&(i=r.replace||i),e=r.url,a=Gt(Gt({},n),{url:e,replace:i,serverResponseObject:r,response:o}),cn.trigger(a),[4,re(e,i)];case 1:return t.sent(),[2,a]}}))}))}function ie(){return++Un}function ae(e){return-1>=e}function ue(e,t){var n;return(n=e&&e.$data?Function("$context","with($context) { with ($data) { return "+t+"; } }")(e):Function("$context","var $data=$context; with($context) { return "+t+"; }")(e))&&n.$data&&(n=n.$data),n}function se(e,t,n){var r=le(e);w(r)?r[t].apply(r,n):a("evaluator","Cannot execute '"+t+"' function on ko.computed because the expression '"+e+"' does not return an observable array.")}function le(e){return Ke(e())}function ce(e){return null==e||"string"==typeof e&&""===e.trim()}function de(e){return e.dotvvmMetadata}function fe(){for(;Qe.length>0;)Qe[Qe.length-1].detach()}function pe(e){return void 0===e&&(e="default"),rt[e]||(rt[e]={queue:[],noRunning:0}),rt[e]}function ve(e,t){return void 0===t&&(t={}),he(_(e),Gt({},t))}function he(e,t){var n,r,o,i,a,s,l,c,f,p,v,h;if(void 0===t&&(t={}),t.pathOnly&&t.path&&0===t.path.length&&(t.pathOnly=!1),u(e))return null!=e?e:null;if("function"==typeof e)return null;if(u(e))return null!=e?e:null;if(e instanceof Array)return t.pathOnly&&t.path?(n=parseInt(t.path.pop(),10),(r=Array(n+1))[n]=he(e[n],t),t.path.push(""+n),r):e.map((function(e){return he(e,t)}));if(e instanceof Date)return t.restApiTarget?e:b(e);for(i=t.path&&t.path.pop(),(a=ko.unwrap(e.$type))&&(o=d(a)),s={},l=0,c=en(e);c.length>l;l++)p=e[f=c[l]],t.pathOnly&&f!==i||t.ignoreSpecialProperties&&"$"===f[0]||!t.serializeAll&&"$validationErrors"===f||"function"==typeof p||(v=null==o?void 0:o.properties[f],!t.serializeAll&&v&&"no"==v.post||(!t.serializeAll&&v&&"pathOnly"==v.post&&t.pathMatcher?(h=t.path||me(p,t.pathMatcher))&&(s[f]=he(p,0===h.length?t:{ignoreSpecialProperties:t.ignoreSpecialProperties,serializeAll:t.serializeAll,path:h,pathOnly:!0})):s[f]=he(p,t)));return i&&t.path&&t.path.push(i),s}function me(e,t){var n,r,o,i;if(t(e))return[];if(!u(e))for(n=0,r=en(e);r.length>n;n++)if(i=me(e[o=r[n]],t))return i.push(o),i;return null}function be(e){if(e.abortSignal&&e.abortSignal.aborted)throw new Kt({type:"abort",options:e})}function ge(n,r,o,i,a,u){return e(this,void 0,void 0,(function(){var s,l=this;return t(this,(function(c){switch(c.label){case 0:if(et=n.postbackId,s=Gt(Gt({},n),{cancel:!1}),un.trigger(s),s.cancel)throw new Kt({type:"event"});return[4,ne((function(){return e(l,void 0,void 0,(function(){var s,l,c,d,p,v=this;return t(this,(function(h){switch(h.label){case 0:return[4,te(n.abortSignal)];case 1:return h.sent(),function(e,t){for(var n=t.length-1;n>=0;n--)t[n].indexOf("[$index]")>=0&&(t[n]=t[n].replace("[$index]","["+e.$index()+"]")),t[n].indexOf("[$indexPath]")>=0&&(t[n]=t[n].replace("[$indexPath]","["+e.$indexPath.map((function(e){return e()})).join("]/[")+"]")),e=e.$parentContext}(a,r),s=J(),l=he(s,{pathMatcher:function(e){return a&&e==a.$data[Mn]}}),c={currentPath:r,command:o,controlUniqueId:i,validationTargetPath:n.validationTargetPath,renderedResources:en(tn),commandArgs:u,knownTypeMetadata:f()},z()?(c.viewModelDiff=H(z(),l),c.viewModelCacheId=L().m):c.viewModel=l,[4,Q(d=W(),JSON.stringify(c),n.abortSignal)];case 2:return"viewModelNotCached"!=(p=h.sent()).result.action?[3,4]:(X(),delete c.viewModelCacheId,delete c.viewModelCache,c.viewModel=l,[4,Q(d,JSON.stringify(c),n.abortSignal)]);case 3:p=h.sent(),h.label=4;case 4:return pn.trigger(Gt(Gt({},n),{response:p.response,serverResponseObject:p.result})),[2,function(){return e(v,void 0,void 0,(function(){var e;return t(this,(function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,ye(n,a,l,0,p.result,p.response)];case 1:return[2,t.sent()];case 2:if((e=t.sent())instanceof Kt)throw e;throw new Kt({type:"commit",args:Gt(Gt({},n),{serverResponseObject:p.result,response:p.response,handled:!1,error:e})});case 3:return[2]}}))}))}]}}))}))}))];case 1:return[2,c.sent()]}}))}))}function ye(n,i,a,u,l,c){return e(this,void 0,void 0,(function(){var e;return t(this,(function(t){switch(t.label){case 0:return vn.trigger(Gt(Gt({},n),{response:c,serverResponseObject:l})),function(e,t){!e.viewModel&&e.viewModelDiff&&(e.viewModel=F(t,e.viewModelDiff))}(l,a),[4,s(l.resources)];case 1:if(t.sent(),ae(n.postbackId))throw"Postbacks are disabled";return be(n),e=!1,"successfulCommand"!=l.action?[3,2]:(p(l.typeMetadata),l.viewModel=F(J(),l.viewModel),function(e){e.viewModelCacheId?G(e.viewModelCacheId,e.viewModel):X();var t,n=U(e);t=e.viewModel,Z().setState(t),U(e,n),Z().doUpdateNow(),function(e,t){for(var n=function(n){var r,i,a=t[n];if(a){if((r=document.createElement(t[n].parent.tagName||"div")).innerHTML=e.updatedControls[n],r.childElementCount>1)throw Error("Postback.Update control can not render more than one element");if(null==(i=r.firstElementChild).id)throw Error("Postback.Update control always has to render id attribute.");i.id!==t[n].control.id&&o("postback","Postback.Update control changed id from '"+t[n].control.id+"' to '"+i.id+"'"),r.removeChild(i),a.nextSibling?a.parent.insertBefore(i,a.nextSibling):a.parent.appendChild(i),Promise.resolve().then((function(){return ko.applyBindings(a.dataContext,i)}))}},r=0,i=en(e.updatedControls);i.length>r;r++)n(i[r])}(e,n)}(l),hn.trigger(Gt(Gt({},n),{response:c,serverResponseObject:l})),e=!0,[3,5]);case 2:return"redirect"!=l.action?[3,4]:[4,oe(n,l,c)];case 3:return t.sent(),[2,Gt(Gt({},n),{response:c,serverResponseObject:l,commandResult:l.commandResult,wasInterrupted:!1})];case 4:if("validationErrors"==l.action)throw function(e,t,n,r){Ae(r,(function(){var r,o,i,a,u,s;if(fe(),r=ue(e,t))for(o=0,i=n.modelState;i.length>o;o++)s=(u=(a=i[o]).propertyPath)?ue(ko.unwrap(r),u):r,tt.attach(a.errorMessage,s)}))}(i,n.validationTargetPath,l,n),new Kt({type:"validation",response:c,responseObject:l});t.label=5;case 5:if(r(l.resultIdFragment),e)return[2,Gt(Gt({},n),{response:c,serverResponseObject:l,commandResult:l.commandResult,wasInterrupted:!1})];throw new Kt({type:"serverError",response:c,responseObject:l})}}))}))}function we(n,r,o){var i,a=this;return function(e){pe(e).noRunning++,nt(nt()+1)}(o),i=function(){return e(a,void 0,void 0,(function(){return t(this,(function(e){switch(e.label){case 0:return[4,Promise.resolve()];case 1:return e.sent(),function(e){pe(e).noRunning--,nt(nt()-1)}(o),function(e){var t,n=pe(e);n.queue.length>0&&(t=n.queue.shift(),Promise.resolve().then(t))}(o),[2]}}))}))},n.then((function(n){return function(){return e(a,void 0,void 0,(function(){return t(this,(function(e){switch(e.label){case 0:return e.trys.push([0,,4,5]),function(e){var t=e.postbackId;return("staticCommand"==e.commandType||et==t)&&!ae(t)}(r)?[4,n()]:[3,2];case 1:return[2,e.sent()];case 2:throw new Kt({type:"commit"});case 3:return[3,5];case 4:return i(),[7];case 5:return[2]}}))}))}}),(function(e){return i(),Promise.reject(e)}))}function ke(n){return{name:"timeout",before:["setIsPostbackRunning"],execute:function(r,o){return e(this,void 0,void 0,(function(){return t(this,(function(e){switch(e.label){case 0:return[4,new Promise((function(e,t){return window.setTimeout(e,n)}))];case 1:return e.sent(),[4,r()];case 2:return[2,e.sent()]}}))}))}}}function Ce(){ht.validate=function(e){return wt(e.path)},ht["validate-root"]=function(){return wt("dotvvm.viewModelObservables['root']")},ht["validate-this"]=function(){return wt("$data")},ko.bindingHandlers["dotvvm-validation"]={init:function(e,t,n){gt.subscribe((function(r){Me(e,t(),n.get("dotvvm-validationOptions"))}))},update:function(e,t,n){Me(e,t(),n.get("dotvvm-validationOptions"))}},ko.bindingHandlers["dotvvm-validationSummary"]={init:function(e,t){var n=t();gt.subscribe((function(t){var r,o,i,a,u;for(e.innerHTML="",o=0,i=r=xe(n.target,n.includeErrorsFromChildren,n.includeErrorsFromTarget);i.length>o;o++)a=i[o],(u=document.createElement("li")).innerText=a.errorMessage,e.appendChild(u);n.hideWhenValid&&(e.style.display=r.length>0?"":"none")}))}}}function Oe(e){var t,n,r,o,i,a,u,s;if(ko.isObservable(e)&&(e=ko.unwrap(e)),e&&"object"==typeof e)for((n=ko.unwrap(e.$type))&&(t=d(n)),r=0,o=en(e);o.length>r;r++)"$"!=(i=o[r])[0]&&(a=e[i],ko.isObservable(a)&&(u=a(),(null==(s=null==t?void 0:t.properties[i])?void 0:s.validationRules)&&Se(e,a,u,s.validationRules),Ee(0,a,u,(null==s?void 0:s.type)||{type:"dynamic"})))}function Ee(e,t,n,r){var o,i,a,u,s,l,c,d,f=t[In];if(f&&f.isError&&tt.attach(f.message,t),Array.isArray(r)){if(!n)return;for(0,o=0,i=n;i.length>o;o++)Ee(0,s=i[o],ko.unwrap(s),r[0])}else if("string"==typeof r)r in Sn||Oe(n);else if("object"==typeof r&&"dynamic"===r.type)if(Array.isArray(n))for(0,a=0,u=n;u.length>a;a++)Ee(0,s=u[a],ko.unwrap(s),{type:"dynamic"});else if(n&&"object"==typeof n)if(n.$type)Oe(n);else for(l=0,c=en(n);c.length>l;l++)Ee(d=c[l],ko.unwrap(n[d]),n[d],{type:"dynamic"})}function Se(e,t,n,r){var o,i,a;for(o=0,i=r;i.length>o;o++)Ye[(a=i[o]).ruleName].isValid(n,{valueToValidate:n,parentViewModel:e,parameters:a.parameters},t)||tt.attach(a.errorMessage,t)}function xe(e,t,n,r){var o,i,a,s,l,c,d,f;if(void 0===r&&(r=!0),!e)return[];if(o=[],n&&ko.isObservable(e)&&Ze in e&&(o=o.concat(e.validationErrors)),!r)return o;if(u(i=ko.unwrap(e)))return o;if(Array.isArray(i)){for(a=0,s=i;s.length>a;a++)o=o.concat(xe(s[a],t,!0,t));return o}for(l=0,c=en(i);c.length>l;l++)"$"!=(d=c[l])[0]&&(f=i[d],ko.isObservable(f)&&(o=o.concat(xe(f,t,!0,t))));return o}function Me(e,t,n){var r,o,i,a,u;for(o=(r=Ke(r=t),ko.isObservable(r)&&r.validationErrors||[]).map((function(e){return e.errorMessage})),i=0,a=en(n);a.length>i;i++)bt[u=a[i]](e,o,n[u])}function Ae(e,t){var n=Qe.length;t(),0==n&&0==Qe.length||gt.trigger(Gt(Gt({},e),{allErrors:Qe}))}function Ie(e,t){var n=function(e,t){return!1===t.enabled?null:function(e){var t=ht[e];if(t)return t;throw Error("Could not find postback handler of name '"+e+"'.")}(e)(t)};return t.map((function(t){var r,o;return"string"==typeof t?n(t,{}):(o=t)&&"function"==typeof o.execute?t:t instanceof Array?n(t[0],"function"==typeof(r=t[1])?r(e,e.$data):r):n(t.name,t.options&&t.options(e))})).filter((function(e){return null!=e}))}function je(e,t,n){dn.trigger(t);var r=!1,o=function(e){var t,n,r,o,i,a,u,s,l,c,d,f;for(t=function(){var t,n,r,o;for(t={},n=0,r=e;r.length>n;n++)null!=(o=r[n]).name&&(t[o.name]=o);return function(e){return"string"==typeof e?t[e]:e}}(),n=e.map((function(e,n){return e.k=n,{handler:e,deps:(e.after||[]).map(t)}})),r=0,o=e;o.length>r;r++)if((i=o[r]).before)for(a=0,u=i.before.map(t);u.length>a;a++)(s=u[a])&&n[s.k].deps.push(i);for(l=[],c=new Uint8Array(n.length),d=function(e){var t,r,o,i;switch(c[e]){case 0:break;case 1:throw Error("Cyclic PostbackHandler dependency found.");case 2:return;default:throw Error("")}if(1!=c[e]){for(c[e]=1,r=(t=n[e]).handler,o=0,i=t.deps;i.length>o;o++)d(i[o].k);c[e]=2,l.push(r)}},f=0;n.length>f;f++)d(f);return l}(n);return function n(i){if(ae(t.postbackId))throw new Kt({type:"gate"});return be(t),i==o.length?function(n){if(r)throw Error("The same postback can't run twice.");return r=!0,fn.trigger(t),e(n)}(t):o[i].execute((function(){return n(i+1)}),t)}(0)}function Pe(e){return["network","serverError"].includes(e.reason.type)}function Te(e){return e.reason?"commit"==e.reason.type&&e.reason.args?e.reason.args.serverResponseObject:"network"==e.reason.type?e.reason.err:"serverError"==e.reason.type?e.reason.responseObject:null:null}function $e(e,t){void 0===t&&(t=null);var n=ko.pureComputed({read:function(){return ko.unwrap(e())},write:function(n){var r=e();ko.isObservable(r)?r(n):i("binding-handler","Attempted to write to readonly property"+(t?" "+t:"")+".")}});return n.wrappedProperty=e,Object.defineProperty(n,"state",{get:function(){var t,n=e()||{};return null!==(t=n.state)&&void 0!==t?t:_(n)},configurable:!1,enumerable:!1}),n}function Re(e){return e instanceof HTMLTableElement?e:Re(e.parentElement)}function Ne(e,t){if(null==e)throw Error("Parameter name has to have a value");if(null==t)throw Error("Parameter moduleObject has to have a value");$t[e]||($t[e]=new Nt(e,t))}function De(e,t,n){var r,o,i,a,u;if(null==n)throw Error("rootElement has to have a value");if(r=Ue(e),function(e,t,n){ko.utils.domNodeDisposal.addDisposeCallback(n,(function r(){!function(e,t,n){var r=function(e,t){var n=Ve(e,t);if(!n)throw Error("Module "+t+"has not been initialized for view "+e+", or the view has been disposed");return n}(e,t),o=r.elements.indexOf(n);if(0>o)throw Error("Cannot dispose module on a root element "+e+". It has already been disposed.");r.elements.splice(o,1),r.elements.length||(function(e,t){for(var n=[],r=2;arguments.length>r;r++)n[r-2]=arguments[r];e&&"function"==typeof e[t]&&e[t].apply(e,n)}(r.module,"$dispose",r),"string"==typeof e&&delete Ue(t).contexts[e])}(e,t,n),ko.utils.domNodeDisposal.removeDisposeCallback(n,r)}))}(t,e,n),"string"==typeof t&&r.contexts[t])return(o=r.contexts[t]).elements.push(n),o;if(!("default"in r.module)||"function"!=typeof r.module.default)throw Error("The module "+e+" referenced in the @js directive must have a default export that is a function.");return i=ko.contextFor(n),a=new Dt(e,[n],i&&i.$control?Gt({},i.$control):{}),u=function(e){for(var t=[],n=1;arguments.length>n;n++)t[n-1]=arguments[n];return e.apply(void 0,t)}(r.module.default,a),a.module=u,Object.freeze(a),"string"==typeof t&&(r.contexts[t]=a),a}function Ve(e,t){var n,r;if("string"==typeof e)return Ue(t).contexts[e];if(n=e[Rt])return n[t];for(r=ko.contextFor(e);r&&!("$viewModules"in r);)r=r.$parentContext;return r.$viewModules&&r.$viewModules[t]}function Ue(e){if(null==e)throw Error("name has to have a value");var t=$t[e];if(!t)throw Error("Could not find module "+e+". Module is not registered, or has been disposed.");return t}function Fe(e){e in _t?_t[e].notifySubscribers():_t[e]=ko.observable(0)}function He(e){return _t[e]||(_t[e]=ko.observable(0))}function _e(e){var t=c(e);if("enum"!==t.type)throw Error("Expected enum, but received object");return t}function Be(e,t,n){return!e||2>e.length?e:e.map((function(e,t){return{item:e,index:t}})).sort((function(e,r){return n(ko.unwrap(t(e.item)),ko.unwrap(t(r.item)))||e.index-r.index})).map((function(e){return e.item}))}function Le(e,t){var n,r=null!==e?c(e):null;return null!==r&&"enum"===r.type?(n=r,function(e,r){return Lt("number"==typeof e?e:n.values[e],"number"==typeof r?r:n.values[r],t)}):function(e,n){return Lt(e,n,t)}}function ze(e,t){var n,r;for(n=0;e.length>n;n++)if(r=ko.unwrap(e[n]),ko.unwrap(r.Key)==t)return n;return null}function qe(e,t,n){return n.endsWith("IgnoreCase")?{haystack:e.toUpperCase(),needle:t.toUpperCase()}:{haystack:e,needle:t}}var We,Je,Ge,Xe,Ke,Ze,Ye,Qe,et,tt,nt,rt,ot,it,at,ut,st,lt,ct,dt,ft,pt,vt,ht,mt,bt,gt,yt,wt,kt,Ct,Ot,Et,St,xt,Mt,At,It,jt,Pt,Tt,$t,Rt,Nt,Dt,Vt,Ut,Ft,Ht,_t,Bt,Lt,zt,qt,Wt,Jt,Gt=function(){return(Gt=Object.assign||function(e){var t,n,r,o;for(n=1,r=arguments.length;r>n;n++)for(o in t=arguments[n])({}).hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)},Xt=function(e){return document.querySelector("[data-dotvvm-id='"+e+"']")},Kt=function(){function e(e){this.reason=e}return e.prototype.toString=function(){return"PostbackRejectionError("+JSON.stringify(this.reason,null,"   ")+")"},e}(),Zt=function(){function e(e,t){void 0===t&&(t=""),this.message=e,this.path=t,this.isError=!0,this.wasCoerced=!1}return Object.defineProperty(e.prototype,"value",{get:function(){throw this},enumerable:!1,configurable:!0}),e.generic=function(t,n){return new e("Cannot coerce '"+t+"' to type '"+n+"'.")},e.prototype.prependPathFragment=function(e){this.path=e+(this.path?"/":"")+this.path},e}(),Yt=(We=window.localStorage.getItem("dotvvm-loglevel"))?"normal"===We||"verbose"===We?We:(i("log","Invalid value of 'dotvvm-loglevel' config value! Supported values: 'normal', 'verbose'"),"normal"):"normal",Qt=function(e){return[].slice.apply(e)},en=function(e){return u(e)?[]:Object.keys(e).filter((function(e){return!e.startsWith("@")}))},tn={},nn=[],rn=function(){function e(e,t){void 0===t&&(t=!1),this.name=e,this.t=t,this.handlers=[],this.history=[]}return e.prototype.subscribe=function(e){if(this.handlers.push(new kn(e,!1)),this.t)for(var t=0,n=this.history;n.length>t;t++)e(n[t])},e.prototype.subscribeOnce=function(e){this.handlers.push(new kn(e,!0))},e.prototype.unsubscribe=function(e){for(var t=0;this.handlers.length>t;t++)if(this.handlers[t].handler===e)return void this.handlers.splice(t,1)},e.prototype.trigger=function(e){for(var t=0;this.handlers.length>t;t++)this.handlers[t].handler(e),this.handlers[t].isOneTime&&(this.handlers.splice(t,1),t--);this.t&&this.history.push(e)},e}(),on=new rn("dotvvm.events.init",!0),an=new rn("dotvvm.events.initCompleted",!0),un=new rn("dotvvm.events.beforePostback"),sn=new rn("dotvvm.events.afterPostback"),ln=new rn("dotvvm.events.error"),cn=new rn("dotvvm.events.redirect"),dn=new rn("dotvvm.events.postbackHandlersStarted"),fn=new rn("dotvvm.events.postbackHandlersCompleted"),pn=new rn("dotvvm.events.postbackResponseReceived"),vn=new rn("dotvvm.events.postbackCommitInvoked"),hn=new rn("dotvvm.events.postbackViewModelUpdated"),mn=new rn("dotvvm.events.postbackRejected"),bn=new rn("dotvvm.events.staticCommandMethodInvoking"),gn=new rn("dotvvm.events.staticCommandMethodInvoked"),yn=new rn("dotvvm.events.staticCommandMethodInvoked"),wn=new rn("dotvvm.events.newState"),kn=function(e,t){this.handler=e,this.isOneTime=t},Cn=Object.freeze({__proto__:null,DotvvmEvent:rn,init:on,initCompleted:an,beforePostback:un,afterPostback:sn,error:ln,redirect:cn,postbackHandlersStarted:dn,postbackHandlersCompleted:fn,postbackResponseReceived:pn,postbackCommitInvoked:vn,postbackViewModelUpdated:hn,postbackRejected:mn,staticCommandMethodInvoking:bn,staticCommandMethodInvoked:gn,staticCommandMethodFailed:yn,newState:wn}),On=(new rn("dotvvm.events.spaNavigating"),new rn("dotvvm.events.spaNavigated"),new rn("dotvvm.events.spaNavigationFailed"),{}),En=Object.freeze({__proto__:null,format:x,formatString:M,parseNumber:A,parseDate:I,parseDotvvmDate:v,bindingDateToString:function(e,t){var n,r;return void 0===t&&(t="G"),e?(n=function(){return M(t,e)},ko.isWriteableObservable(e)?(r="string"==typeof function(){var t=ko.unwrap(e);return"string"==typeof t?v(t):t}()?function(t){return e(t&&b(t,!1))}:e,ko.pureComputed({read:n,write:function(e){return r(I(e,t)||I(e,""))}})):ko.pureComputed(n)):""},bindingNumberToString:function(e,t){if(void 0===t&&(t="G"),null==e)return"";var n=function(){return M(t,e)};return ko.isWriteableObservable(e)?ko.pureComputed({read:n,write:function(t){var n=A(t);e(null==t||null!=n&&!isNaN(n)?n:null)}}):ko.pureComputed(n)}}),Sn={Boolean:{tryCoerce:function(e){return"boolean"==typeof e?{value:e}:"true"===e||"True"===e||"false"===e||"False"===e?{value:!0,wasCoerced:!0}:"number"==typeof e?{value:!!e,wasCoerced:!0}:void 0}},Byte:{tryCoerce:function(e){return j(e,0,255)}},SByte:{tryCoerce:function(e){return j(e,-128,127)}},Int16:{tryCoerce:function(e){return j(e,-32768,32767)}},UInt16:{tryCoerce:function(e){return j(e,0,65535)}},Int32:{tryCoerce:function(e){return j(e,-2147483648,2147483647)}},UInt32:{tryCoerce:function(e){return j(e,0,4294967295)}},Int64:{tryCoerce:function(e){return j(e,-0x8000000000000000,0x8000000000000000)}},UInt64:{tryCoerce:function(e){return j(e,0,0x10000000000000000)}},Single:{tryCoerce:P},Double:{tryCoerce:P},Decimal:{tryCoerce:P},String:{tryCoerce:function(e){var t=!1;if(null===e)t=!1;else if("number"==typeof e)e=M("n",e),t=!0;else if(e instanceof Date)e=M("g",e),t=!0;else if("boolean"==typeof e)e=e?"true":"false",t=!0;else if(void 0===e)e=null,t=!0;else if("string"!=typeof e)return;return{value:e,wasCoerced:t}}},Char:{tryCoerce:function(e){return"number"!=typeof e||(0|e)!==e||0>e||e>65535?"string"==typeof e?1===e.length?{value:e}:e.length>1?{value:e.substring(0,1),wasCoerced:!0}:void 0:void 0:{value:String.fromCharCode(e),wasCoerced:!0}}},Guid:{tryCoerce:function(e){if("string"==typeof e)return/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/.test(e)?{value:e}:void 0}},DateTime:{tryCoerce:function(e){if("string"==typeof e){if(v(e))return{value:e};e=I(e,"")}if(e instanceof Date)return{value:b(e,!1),wasCoerced:!0}}},TimeSpan:{tryCoerce:function(e){if("string"==typeof e){var t=h(e);if(null!==t)return{value:g(t)}}if("number"==typeof e)return{value:g(e),wasCoerced:!0}}},DateTimeOffset:{tryCoerce:function(e){if("string"==typeof e&&function(e){var t,n=e.match("^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(\\.[0-9]{1,7})?(Z|[+-]([0-9]{1,2}):([0-9]{2}))$");return n?(t="Z"===n[8]?0:("-"===n[8]?-1:1)*(60*parseInt(n[9],10)+parseInt(n[10],10)),new Date(parseInt(n[1],10),parseInt(n[2],10)-1,parseInt(n[3],10),parseInt(n[4],10),parseInt(n[5],10)+t,parseInt(n[6],10),n[7]?parseInt(n[7].substring(1,4),10):0)):null}(e))return{value:e}}}},xn={},Mn=Symbol("currentState"),An=Symbol("notify"),In=Symbol("lastSetError"),jn=Symbol("internalPropCache"),Pn=Symbol("update"),Tn=Symbol("updateProperty"),$n=!1,Rn=function(){function e(e,t){var n=this;this.stateUpdateEvent=t,this.o=!1,this.i=0,this.startTime=null,this.u=$(e,e.$type||{type:"dynamic"}),this.stateObservable=B(e,e.$type,(function(e){return n.update(e)})),this.dispatchUpdate()}return Object.defineProperty(e.prototype,"state",{get:function(){return this.u},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"isDirty",{get:function(){return this.o},enumerable:!1,configurable:!0}),e.prototype.dispatchUpdate=function(){this.o||(this.o=!0,this.i=window.requestAnimationFrame(this.rerender.bind(this)))},e.prototype.doUpdateNow=function(){null!==this.i&&window.cancelAnimationFrame(this.i),this.rerender(performance.now())},e.prototype.rerender=function(e){null===this.startTime&&(this.startTime=e),performance.now(),this.o=!1,this.stateUpdateEvent.trigger(this.u),$n=!0,ko.delaySync.pause();try{this.stateObservable[An](this.u)}finally{$n=!1,ko.delaySync.resume()}},e.prototype.setState=function(e){if(null==e)throw Error("State can't be null or undefined.");if(e===this.u)return e;var t=$(e,e.$type||this.u.$type,this.u);return this.dispatchUpdate(),this.u=t},e.prototype.patchState=function(e){return this.setState(F(this.u,e))},e.prototype.update=function(e){return this.setState(e(this.u))},e}(),Nn=function(){function e(e,t,n,r,o){this[Je]={},this[Mn]=e,this[Pn]=t;for(var a=function(e){u[jn][e]=null,Object.defineProperty(u,e,{enumerable:!0,configurable:!1,get:function(){var t,o,a,u,s,l,c,d=this,f=this[jn][e];if(f)return f;if(o=B(this[Mn][e],null===(t=null==r?void 0:r.properties[e])||void 0===t?void 0:t.type,(function(t){return d[Tn](e,t)})),a=void 0===n||n.hasOwnProperty("type")&&"dynamic"===n.type,r&&e in r.properties){if(u=r.properties[e].clientExtenders)for(s=0,l=u;l.length>s;s++)c=l[s],ko.extenders[c.name](o,c.parameter)}else a||0===e.indexOf("$")||i("state-manager","Unknown property '"+e+"' set on an object of type "+n+".");return this[jn][e]=o,o}})},u=this,s=0,l=en((null==r?void 0:r.properties)||{}).concat(o);l.length>s;s++)a(l[s]);Object.seal(this)}return e.prototype[An]=function(e){var t,n,r,o,i;for(console.assert(e),this[Mn]=e,n=0,r=en(t=this[jn]);r.length>n;n++)(i=t[o=r[n]])&&i[An](e[o])},e.prototype[(Je=jn,Tn)]=function(e,t){this[Pn]((function(n){var r,o;return null==n?n:(o=t(n[e]),n[e]===o?n:Object.freeze(Gt(Gt({},n),((r={})[e]=o,r))))}))},e}(),Dn=null,Vn=function(){return document.getElementById("__dot_viewmodel_root")},Un=0;if(Ke=function(e){return ko.isComputed(e)&&"wrappedProperty"in e?e.wrappedProperty():e},Ze="validationErrors",Ye={required:{isValid:function(e){return!ce(e)}},regularExpression:{isValid:function(e,t){var n=t.parameters[0];return ce(e)||RegExp(n).test(e)}},intrange:{isValid:function(e,t){var n=t.parameters;return e%1==0&&e>=n[0]&&n[1]>=e}},range:{isValid:function(e,t){var n=t.parameters;return e>=n[0]&&n[1]>=e}},emailAddress:{isValid:function(e){if("string"!=typeof e)return!0;for(var t=!1,n=0;e.length>n;n++)if("@"==e[n]){if(t||0==n||n==e.length-1)return!1;t=!0}return t}},notnull:{isValid:function(e){return null!=e}},enforceClientFormat:{isValid:function(e,t,n){var r,o,i,a=t.parameters,u=!0;if(a[0]||null!=e||(u=!1),a[1]||""!==e||(u=!1),!a[2]&&ce(e)&&(u=!1),r=de(n))for(o=0,i=r;i.length>o;o++)i[o].elementValidationState||(u=!1);return u}}},Qe=[],tt=function(){function e(e,t){this.errorMessage=e,this.validatedObservable=t}return e.attach=function(t,n){if(!t)throw Error('String "'+t+'" is not a valid ValidationError message.');if(!n)throw Error('ValidationError cannot be attached to "'+n+'".');(n=Ke(n)).hasOwnProperty(Ze)||(n.validationErrors=[]);var r=new e(t,n);return n.validationErrors.push(r),Qe.push(r),r},e.prototype.detach=function(){var e,t=this.validatedObservable.validationErrors,n=t.indexOf(this);t.splice(n,1),e=Qe.indexOf(this),Qe.splice(e,1)},e}(),nt=ko.observable(0),rt={},ot=0,it=ko.observable(!1),at={name:"suppressOnDisabledElement",before:["setIsPostbackRunning","concurrency-default","concurrency-queue","concurrency-deny"],execute:function(e,t){return(n=t.sender)&&["A","INPUT","BUTTON"].indexOf(n.tagName)>-1&&n.hasAttribute("disabled")?Promise.reject(new Kt({type:"handler",handlerName:"suppressOnDisabledElement",message:"PostBack is prohibited on disabled element"})):e();var n}},ut={name:"setIsPostbackRunning",execute:function(n){return e(this,void 0,void 0,(function(){return t(this,(function(e){switch(e.label){case 0:it(!0),ot++,e.label=1;case 1:return e.trys.push([1,,3,4]),[4,n()];case 2:return[2,e.sent()];case 3:return it(!!--ot),[7];case 4:return[2]}}))}))}},st=function(e){return{name:"concurrency-default",before:["setIsPostbackRunning"],execute:function(t,n){return we(t(),n,e.q||"default")}}},lt=function(e){return{name:"concurrency-deny",before:["setIsPostbackRunning"],execute:function(t,n){var r=e.q||"default";return pe(r).noRunning>0?Promise.reject(new Kt({type:"handler",handlerName:"concurrency-deny",message:"A postback is already running"})):we(t(),n,r)}}},ct=function(e){return{name:"concurrency-queue",before:["setIsPostbackRunning"],execute:function(t,n){var r=e.q||"default",o=function(){return we(t(),n,r)};return pe(r).noRunning>0?new Promise((function(e){pe(r).queue.push((function(){return e(o())}))})):o()}}},dt=function(e){return{name:"suppressOnUpdating",before:["setIsPostbackRunning","concurrency-default","concurrency-queue","concurrency-deny"],execute:function(e,t){return $n?Promise.reject(new Kt({type:"handler",handlerName:"suppressOnUpdating",message:"ViewModel is updating, so it's probably false onchange event"})):e()}}},ft=function(){function n(e){this.message=e}return n.prototype.execute=function(n,r){return e(this,void 0,void 0,(function(){return t(this,(function(e){switch(e.label){case 0:return window.confirm(this.message)?[4,n()]:[3,2];case 1:return[2,e.sent()];case 2:throw{type:"handler",handler:this,message:"The postback was not confirmed"}}}))}))},n}(),pt=function(){function n(e){this.suppress=e}return n.prototype.execute=function(n,r){return e(this,void 0,void 0,(function(){return t(this,(function(e){switch(e.label){case 0:if(!this.suppress)return[3,1];throw{type:"handler",handler:this,message:"The postback was suppressed"};case 1:return[4,n()];case 2:return[2,e.sent()]}}))}))},n}(),vt=ke(0),mt=(ht={confirm:function(e){return new ft(e.message)},suppress:function(e){return new pt(e.suppress)},timeout:function(e){return e.time?ke(e.time):vt},"concurrency-default":st,"concurrency-deny":lt,"concurrency-queue":ct,suppressOnUpdating:dt})["concurrency-default"]({}),bt={hideWhenValid:function(e,t){e.style.display=t.length>0?"":"none"},invalidCssClass:function(e,t,n){var r,o,i;for(r=0,o=n.split(/\s+/);o.length>r;r++)i=o[r],t.length>0?e.classList.add(i):e.classList.remove(i)},setToolTipText:function(e,t){e.title=t.length>0?t.join(" "):""},showErrorMessageText:function(e,t){e[e.innerText?"innerText":"textContent"]=t.join(" ")}},gt=new rn("dotvvm.validation.events.validationErrorsChanged"),yt={rules:Ye,errors:Qe,events:{validationErrorsChanged:gt}},wt=function(e){return{name:"validate",execute:function(t,n){if(e){n.validationTargetPath=e;var r=ue(ko.contextFor(n.sender),e);if(Ae(n,(function(){fe(),Oe(r)})),Qe.length>0)return a("validation","Validation failed: postback aborted; errors: ",Qe),Promise.reject(new Kt({type:"handler",handlerName:"validation",message:"Validation failed"}))}return t()}}},kt=[at,ut],Ct=[],Ot={"dotvvm-textbox-text":{init:function(e,t,n){var r=t(),o=(null==n?void 0:n.get("valueUpdate"))||"change",i={element:e,dataType:e.getAttribute("data-dotvvm-value-type")||"",format:e.getAttribute("data-dotvvm-format")||"",domNodeDisposal:!1,elementValidationState:!0},a=[];ko.isObservable(r)&&(r.dotvvmMetadata?r.dotvvmMetadata.push(i):r.dotvvmMetadata=[i],a=r.dotvvmMetadata),setTimeout((function(){ko.utils.domNodeDisposal.addDisposeCallback(e,(function(){var t,n,r;for(t=0,n=a;n.length>t;t++)if((r=n[t]).element===e){a.splice(a.indexOf(r),1);break}}))}),0),e.addEventListener(o,(function(){var n,r,o,a,u=t();if(ko.isObservable(u)){"datetime"===i.dataType?(null!=(o=u())&&(o=v(o)),r=null==(n=I(e.value,i.format,o)||I(e.value,"",o))?null:b(n,!1)):r="number"===i.dataType?null===(n=A(e.value))||isNaN(n)?null:n:e.value,null==r&&null!==e.value&&""!==e.value?(e.setAttribute("data-invalid-value",e.value),e.setAttribute("data-dotvvm-value-type-valid","false"),i.elementValidationState=!1):(e.removeAttribute("data-invalid-value"),e.setAttribute("data-dotvvm-value-type-valid","true"),i.elementValidationState=!0),a=e.value;try{u.peek()===r?(u.valueHasMutated?u.valueHasMutated():u.notifySubscribers(),i.elementValidationState&&(u[In]=void 0)):u(r)}catch(t){i.elementValidationState=!1,e.setAttribute("data-invalid-value",e.value),e.setAttribute("data-dotvvm-value-type-valid","false"),e.value=a}}}))},update:function(e,t){var n,r,o,i,a,u=t(),s=ko.unwrap(u),l=e.getAttribute("data-dotvvm-format");if(l&&(s=M(l,s)),null!=(n=e.getAttribute("data-invalid-value")))e.removeAttribute("data-invalid-value"),s=n;else if(r=u&&de(u))for(o=0,i=r;i.length>o;o++)(a=i[o]).element==e&&(a.elementValidationState=!0,e.setAttribute("data-dotvvm-value-type-valid","true"),e.removeAttribute("data-invalid-value"));e.value=null==s?"":s}}},Et={"dotvvm-textbox-select-all-on-focus":{init:function(e){e.$selectAllOnFocusHandler=function(){e.select()}},update:function(e,t){!0===ko.unwrap(t())?e.addEventListener("focus",e.$selectAllOnFocusHandler):e.removeEventListener("focus",e.$selectAllOnFocusHandler)}}},ko.virtualElements.allowedBindings["dotvvm-SSR-foreach"]=!0,ko.virtualElements.allowedBindings["dotvvm-SSR-item"]=!0,St={"dotvvm-SSR-foreach":{init:function(e,t,n,r,o){if(!o)throw Error();var i,a=!0;return ko.computed((function(){var n,r=t().data;ko.unwrap(r),a&&ko.computedContext.getDependenciesCount()&&(i=ko.utils.cloneNodes(ko.virtualElements.childNodes(e),!0)),null!=r?(a||ko.virtualElements.setDomNodeChildren(e,ko.utils.cloneNodes(i)),ko.applyBindingsToDescendants(o.extend(((n={}).$foreachCollectionSymbol=r,n)),e)):ko.virtualElements.emptyNode(e),a=!1}),null,{disposeWhenNodeIsRemoved:e}),{controlsDescendantBindings:!0}}},"dotvvm-SSR-item":{init:function(e,t,n,r,o){var i,a;if(!o)throw Error();if(!(i=o.$foreachCollectionSymbol))throw Error();return a=o.createChildContext((function(){return ko.unwrap((ko.unwrap(i)||[])[t()])})).extend({$index:ko.pureComputed(t)}),ko.applyBindingsToDescendants(a,e),{controlsDescendantBindings:!0}},update:function(e){e.seenUpdate&&a("binding-handler","The dotvvm-SSR-item binding did not expect to see an update."),e.seenUpdate=1}}},ko.virtualElements.allowedBindings["dotvvm-with-control-properties"]=!0,xt={"dotvvm-with-control-properties":{init:function(e,t,n,r,o){var i,a,u,s,l;if(!o)throw Error();for(i=t(),a=function(e){if(function(e,t){return!ko.isObservable(e[t])&&"function"==typeof e[t]}(i,e)){var n=i[e];i[e]=$e((function(){return n}))}else i[e]=$e((function(){var n=t()[e];return ko.isObservable(n)?n:k(n)}),"'"+e+"' at '"+t+"'")},u=0,s=en(i);s.length>u;u++)a(s[u]);return l=o.extend({$control:i}),ko.applyBindingsToDescendants(l,e),{controlsDescendantBindings:!0}}}},Mt={"dotvvm-table-columnvisible":{init:function(e,t){var n,r,o,i="",a=!0;if(e instanceof HTMLTableCellElement){if(!(r=(n=Re(e)).rows.item(0)))throw Error("Table with dotvvm-table-columnvisible binding must not be empty.");o=Qt(r.cells).indexOf(e),e.dotvvmChangeVisibility=function(e){var t,r;if(a!=e)for(a=e,t=0;n.rows.length>t;t++)r=n.rows.item(t).cells[o].style,e?r.display=i:(i=r.display||"",r.display="none")}}},update:function(e,t){e.dotvvmChangeVisibility(ko.unwrap(t()))}}},At={"dotvvm-enable":{update:function(e,t){var n=ko.unwrap(t());n&&e.disabled?(e.disabled=!1,e.removeAttribute("disabled")):n||e.disabled||(e.disabled=!0,e.setAttribute("disabled","disabled"))}}},It={"dotvvm-checkbox-updateAfterPostback":{init:function(e,t,n){sn.subscribe((function(e){var t,r=n();r["dotvvm-checked-pointer"]&&(t=r[r["dotvvm-checked-pointer"]],ko.isObservable(t)&&(t.valueHasMutated?t.valueHasMutated():t.notifySubscribers()))}))}},"dotvvm-checked-pointer":{init:function(){}},"dotvvm-CheckState":{init:function(e,t,n,r,o){ko.getBindingHandler("checked").init(e,t,n,r,o)},update:function(e,t){var n=ko.unwrap(t());e.indeterminate=null==n}},"dotvvm-checkedItems":{after:ko.bindingHandlers.checked.after,init:ko.bindingHandlers.checked.init,options:ko.bindingHandlers.checked.options,update:function(e,t){var n=t();if(!Array.isArray(ko.unwrap(n)))throw Error("The value of a `checkedItems` binding must be an array (i.e. not null nor undefined).")}}},jt={"dotvvm-UpdateProgress-Visible":{init:function(e,t,n,r,o){e.style.display="none";var i,a=e.getAttribute("data-delay"),u=(e.getAttribute("data-included-queues")||"").split(",").filter((function(e){return e.length>0})),s=(e.getAttribute("data-excluded-queues")||"").split(",").filter((function(e){return e.length>0})),l=!1;nt.subscribe((function(){var t,n,r,o=!1;if(0===u.length){for(t=0,n=en(rt);n.length>t;t++)if(0>s.indexOf(r=n[t])&&rt[r].noRunning>0){o=!0;break}}else o=u.some((function(e){return rt[e]&&rt[e].noRunning>0}));o?l||(l=!0,null==a?e.style.display="":i=setTimeout((function(){e.style.display=""}),+a)):(l=!1,clearTimeout(i),e.style.display="none")}))}}},ko.virtualElements.allowedBindings["dotvvm-gridviewdataset"]=!0,Tt={"dotvvm-gridviewdataset":{init:(Pt=function(e,t,n){return e.extend({$gridViewDataSetHelper:Gt(Gt({},t),{isInEditMode:function(e){var t=this.dataSet.RowEditOptions().PrimaryKeyPropertyName();return t=this.mapping[t]||t,this.dataSet.RowEditOptions().EditRowId()===e.$data[t]()}})})},function(e,t,n,r,o){if(!o)throw Error();var i,a=!0;return ko.computed((function(){var n=t();ko.unwrap(n),a&&ko.computedContext.getDependenciesCount()&&(i=ko.utils.cloneNodes(ko.virtualElements.childNodes(e),!0)),a||ko.virtualElements.setDomNodeChildren(e,ko.utils.cloneNodes(i)),ko.applyBindingsToDescendants(Pt(o,n),e),a=!1}),null,{disposeWhenNodeIsRemoved:e}),{controlsDescendantBindings:!0}})}},$t={},Rt=Symbol("viewModules"),Nt=function(e,t){this.name=e,this.module=t,this.contexts={}},Dt=function(e,t,n){var r=this;this.moduleName=e,this.elements=t,this.properties=n,this.namedCommands={},this.registerNamedCommand=function(e,t){if(r.namedCommands[e])throw Error("A named command is already registered under the name: "+e+". The conflict occured in: "+r.moduleName+".");r.namedCommands[e]=function(){for(var e=[],n=0;arguments.length>n;n++)e[n]=arguments[n];return t.apply(r,e.map(_))}},this.unregisterNamedCommand=function(e){e in r.namedCommands&&delete r.namedCommands[e]}},ko.virtualElements.allowedBindings["dotvvm-with-view-modules"]=!0,Vt={"dotvvm-with-view-modules":{init:function(e,t,n,r,o){var i,a,u,s,l,c;if(!o)throw Error();for(a={},u=0,s=(i=t()).modules;s.length>u;u++)a[l=s[u]]=De(l,i.viewIdOrElement,e);return"string"!=typeof i.viewIdOrElement&&(e[Rt]=a),c=o.extend({$viewModules:a}),ko.applyBindingsToDescendants(c,e),{controlsDescendantBindings:!0}}}},ko.virtualElements.allowedBindings["dotvvm-named-command"]=!0,Ut={"dotvvm-named-command":{init:function(e,t,n,r,o){var i=t();return function(e,t,n,r){var o,i,a;for(o=0,i=en($t);i.length>o;o++)(a=Ve(e,i[o]))&&a.registerNamedCommand(t,n);!function(e,t,n){ko.utils.domNodeDisposal.addDisposeCallback(n,(function r(){!function(e,t){var n,r,o;for(n=0,r=en($t);r.length>n;n++)(o=Ve(e,r[n]))&&o.unregisterNamedCommand(t)}(e,t),ko.utils.domNodeDisposal.removeDisposeCallback(n,r)}))}(e,t,r)}(i.viewIdOrElement,i.name,i.command,e),{controlsDescendantBindings:!1}}}},Ft={"dotvvm-FileUpload":{init:function(e,t,n,r,o){function i(t,n,r){dotvvm.fileUpload.reportProgress(e,t,n,r)}var a=ko.unwrap(t());e.addEventListener("change",(function(){var t,n,r;if(e.files&&e.files.length){if((t=XMLHttpRequest?new XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP")).open("POST",a.url,!0),t.setRequestHeader("X-DotVVM-AsyncUpload","true"),t.upload.onprogress=function(e){e.lengthComputable&&i(!0,Math.round(100*e.loaded/e.total),"")},t.onload=function(){200==t.status?(i(!1,100,JSON.parse(t.responseText)),e.value=""):i(!1,0,"Upload failed.")},n=new FormData,e.files.length>1)for(r=0;e.files.length>r;r++)n.append("upload[]",e.files[r]);else e.files.length>0&&n.append("upload",e.files[0]);t.send(n)}}))}}},Ht=Gt(Gt(Gt(Gt(Gt(Gt(Gt(Gt(Gt(Gt(Gt(Gt({},Ot),St),xt),Et),Mt),At),It),jt),Tt),Vt),Ut),Ft),_t={},Bt={},Lt=function(e,t,n){var r=t>e?-1:e==t?0:1;return n?r:-1*r},zt=Object.freeze({__proto__:null,add:function(e,t){var r=n(e.state,[t]);e.setState(r)},addOrUpdate:function(e,t,n,r){for(var o=Array.from(e.state),i=!1,a=0;o.length>a;a++)n(o[a])&&(i=!0,o[a]=r(o[a]));i||o.push(t),e.setState(o)},addRange:function(e,t){for(var n=Array.from(e.state),r=0;t.length>r;r++)n.push(ko.unwrap(t[r]));e.setState(n)},clear:function(e){e.setState([])},distinct:function(e){return Array.from(new Set(e.map(ko.unwrap)))},firstOrDefault:function(e,t){var n,r,o;for(n=0,r=e;r.length>n;n++)if(t(o=ko.unwrap(r[n])))return o;return null},insert:function(e,t,n){var r=Array.from(e.state);r.splice(t,0,n),e.setState(r)},insertRange:function(e,t,r){var o=Array.from(e.state);o.splice.apply(o,n([t,0],r.map((function(e){return ko.unwrap(e)})))),e.setState(o)},lastOrDefault:function(e,t){var n,r;for(n=e.length-1;n>=0;n--)if(t(r=ko.unwrap(e[n])))return r;return null},max:function(e,t,n){var r,o,i;if(0===e.length){if(n)throw Error("Source is empty! Max operation cannot be performed.");return null}for(r=t(e[0]),o=1;e.length>o;o++)(i=t(e[o]))>r&&(r=i);return r},min:function(e,t,n){var r,o,i;if(0===e.length){if(n)throw Error("Source is empty! Min operation cannot be performed.");return null}for(r=t(e[0]),o=1;e.length>o;o++)r>(i=t(e[o]))&&(r=i);return r},orderBy:function(e,t,n){return Be(e,t,Le(n,!0))},orderByDesc:function(e,t,n){return Be(e,t,Le(n,!1))},removeAll:function(e,t){for(var n=Array.from(e.state),r=0;n.length>r;r++)t(n[r])&&(n.splice(r,1),r--);e.setState(n)},removeAt:function(e,t){var n=Array.from(e.state);n.splice(t,1),e.setState(n)},removeFirst:function(e,t){for(var n=Array.from(e.state),r=0;n.length>r;r++)if(t(n[r])){n.splice(r,1);break}e.setState(n)},removeLast:function(e,t){for(var n=Array.from(e.state),r=n.length-1;r>=0;r--)if(t(n[r])){n.splice(r,1);break}e.setState(n)},removeRange:function(e,t,n){var r=Array.from(e.state);r.splice(t,n),e.setState(r)},reverse:function(e){var t=Array.from(e.state);t.reverse(),e.setState(t)},setItem:function(e,t,n){var r=Array.from(e.state);if(0>t||t>=r.length)throw Error("Index out of range!");r[t]=n,e.setState(r)}}),qt=Object.freeze({__proto__:null,clear:function(e){e.setState([])},containsKey:function(e,t){return null!==ze(e,t)},getItem:function(e,t){var n=ze(e,t);if(null===n)throw Error('Provided key "'+t+'" is not present in the dictionary!');return ko.unwrap(e[n]).Value},remove:function(e,t){var r=n(e.state),o=ze(r,t);return null!==o&&(r.splice(o,1),e.setState(r),!0)},setItem:function(e,t,r){var o=n(e.state),i=ze(o,t);null!==i?(o[i]={Key:o[i].Key,Value:r},e.setState(o)):(o.push({Key:t,Value:r}),e.setState(o))}}),Wt=Object.freeze({__proto__:null,contains:function(e,t,n){var r=qe(e,t,n);return r.haystack.includes(r.needle)},endsWith:function(e,t,n){var r=qe(e,t,n);return r.haystack.endsWith(r.needle)},startsWith:function(e,t,n){var r=qe(e,t,n);return r.haystack.startsWith(r.needle)},indexOf:function(e,t,n,r){var o=qe(e,n,r);return o.haystack.indexOf(o.needle,t)},lastIndexOf:function(e,t,n,r){var o=qe(e,n,r);return o.haystack.indexOf(o.needle,t)},split:function(e,t,n){var r=e.split(t);return"RemoveEmptyEntries"===n&&(r=r.filter((function(e){return e}))),r},join:function(e,t){return e.map(ko.unwrap).join(t)},format:function(e,t){return x.apply(void 0,n([e],t))},trimStart:function(e,t){return t=null!=t?t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"):"\\s",e.replace(RegExp("^"+t+"*"),"")},trimEnd:function(e,t){return t=null!=t?t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"):"\\s",e.replace(RegExp(t+"*$"),"")},padStart:function(e,t,n){return t>e.length?(null==n&&(n=" "),Array(t-e.length+1).join(n)+e):e},padEnd:function(e,t,n){return t>e.length?(null==n&&(n=" "),e+Array(t-e.length+1).join(n)):e}}),function(){if("undefined"==typeof Promise||!self.fetch){var e=document.createElement("script");e.src=window.dotvvm__polyfillUrl,e.type="text/javascript",document.getElementsByTagName("head")[0].appendChild(e)}}(),window.dotvvm)throw Error("DotVVM is already loaded!");return Jt={getCulture:K,evaluator:{getDataSourceItems:function(e){var t=ko.unwrap(e);return null==t?[]:ko.unwrap(t.Items||t)},wrapObservable:function(e,t){var n,r,o,i=ko.pureComputed({read:function(){return ko.unwrap(le(e))},write:function(t){return function(e,t){var n=le(e);ko.isWriteableObservable(n)?n(t):a("evaluator","Cannot write a value to ko.computed because the expression '"+e+"' does not return a writable observable.")}(e,t)}});if(t){for(n=function(t){i[t]=function(){for(var n=[],r=0;arguments.length>r;r++)n[r]=arguments[r];return se(e,t,n)}},r=0,o=["push","pop","unshift","shift","reverse","sort","splice","slice","replace","indexOf","remove","removeAll"];o.length>r;r++)n(o[r]);i=i.extend({trackArrayChanges:!0})}return i.extend({notify:"always"})}},fileUpload:{reportProgress:function(e,t,n,r){var o,i,a=e.parentElement,u=ko.dataFor(a.firstChild);if("string"==typeof r)u.Error(r);else if("result"in r){for(u.Error(""),p(r.typeMetadata),i=0;r.result.length>i;i++)u.Files.push((o=k(r.result[i]),ko.isObservable(o)?o:ko.observable(o)));(a.attributes["data-dotvvm-upload-completed"]||{value:null}).value&&Function(a.attributes["data-dotvvm-upload-completed"].value).call(a)}u.Progress(n),u.IsBusy(t)},showUploadDialog:function(e){e.parentElement.parentElement.querySelector("input[type=file]").click()}},api:{invoke:function(e,t,n,r,o,a,u){function s(e){var t=m.promise;if(m.isLoading||(m.isLoading=!0,t=function(){try{return{type:"result",result:Promise.resolve(ko.ignoreDependencies(p)).then((function(e){e&&(e=c.setState({data:_(k(e)),$type:g}).data);for(var t=0,n=o(f);n.length>t;t++)Fe(n[t]);return e}),(function(e){return i("rest-api",e)}))}}catch(e){return i("rest-api",e),{type:"error",error:e}}}(),m.promise=t),"error"!=t.type)return t.result.then((function(e){return m.isLoading=!1}),(function(e){m.isLoading=!1,i("rest-api",e)})),t.result;if(m.isLoading=!1,e)throw t.error}var l,c,d,f=ko.ignoreDependencies(n),p=function(){return e[t].apply(e,f)},v=t+":"+u(f),h=a?a.apiCachedValues||(a.apiCachedValues={}):Bt,m=h[v]||(h[v]={}),b=null==m.stateManager,g={type:"dynamic"};return null==m.stateManager&&(l=new rn("apiObject.newState"),m.stateManager=new Rn({data:null,$type:g},l)),c=m.stateManager,b&&s(),ko.computed((function(){return r(f).map((function(e){return"string"==typeof e?He(e)():e()}))})).subscribe((function(e){return s()})),(d=ko.pureComputed((function(){return c.stateObservable().data()}))).refreshValue=s,d},refreshOn:function(e,t){return"function"!=typeof e.refreshValue&&a("rest-api","The object is not refreshable."),t.subscribe((function(){"function"!=typeof e.refreshValue&&a("rest-api","The object is not refreshable."),e.refreshValue()})),e}},eventHub:{get:He,notify:Fe},globalize:En,postBackHandlers:ht,postbackHandlers:ht,buildUrlSuffix:function(e,t){var n,r,o,i,a,u,s;for(r=-1!=(n=e.indexOf("#"))?e.substring(0,n):e,o=-1!=n?e.substring(n):"",i=0,a=en(t);a.length>i;i++)(u=a[i])&&null!=(s=ko.unwrap(t[u]))&&(r+=(-1!=r.indexOf("?")?"&":"?")+encodeURIComponent(u)+"="+encodeURIComponent(s));return r+o},buildRouteUrl:function(e,t){var n=(e="/"+e).replace(/(\/?[^\/{]*)\{([^\}]+)\}/g,(function(e,n,r){if(!r)return"";var o=ko.unwrap(t[r]);return null==o?"":n+encodeURIComponent(o)}));return 0===n.indexOf("/")?n.substring(1):n},staticCommandPostback:function(n,r,o,i){var a,u;return e(this,void 0,void 0,(function(){var n,s,l,c=this;return t(this,(function(d){switch(d.label){case 0:return d.trys.push([0,6,,7]),[4,ne((function(){return e(c,void 0,void 0,(function(){var e;return t(this,(function(t){switch(t.label){case 0:return[4,te(i.abortSignal)];case 1:return e=t.sent(),n={args:o.map((function(e){return ve(e)})),command:r,$csrfToken:e,knownTypeMetadata:f()},[2]}}))}))}))];case 1:return d.sent(),bn.trigger(Gt(Gt({},i),{methodId:r,methodArgs:o})),[4,Q(W(),JSON.stringify(n),i.abortSignal,{"X-PostbackType":"StaticCommand"})];case 2:return"action"in(s=d.sent()).result?"redirect"!=s.result.action?[3,4]:[4,oe(i,s.result,s.response)]:[3,5];case 3:return d.sent(),[2];case 4:throw Error("Invalid action "+s.result.action);case 5:return p(s.result.typeMetadata),gn.trigger(Gt(Gt({},i),{methodId:r,methodArgs:o,serverResponseObject:s.result,result:s.result.result,response:s.response})),[2,s.result.result];case 6:throw l=d.sent(),yn.trigger(Gt(Gt({},i),{methodId:r,methodArgs:o,error:l,result:null===(a=l.reason)||void 0===a?void 0:a.responseObject,response:null===(u=l.reason)||void 0===u?void 0:u.response})),l;case 7:return[2]}}))}))},applyPostbackHandlers:function(n,r,o,i,u,s,l){var c,d;return void 0===i&&(i=[]),void 0===u&&(u=ko.contextFor(r)),void 0===s&&(s=u.$root),e(this,void 0,void 0,(function(){var e,s,f,p,v,h;return t(this,(function(t){switch(t.label){case 0:e=function(e){return function(e,t){return Promise.resolve(e).then((function(n){return"function"==typeof n?e:function(){return Promise.resolve(Gt(Gt({},t),{commandResult:n,wasInterrupted:!1}))}}))}(n(e),e)},s={postbackId:ie(),commandType:"staticCommand",sender:r,args:i,viewModel:u.$data,abortSignal:l},f=Ie(u,kt.concat(o||[]).concat(Ct)),t.label=1;case 1:return t.trys.push([1,4,,5]),[4,je(e,s,f)];case 2:return[4,t.sent().apply(void 0,i)];case 3:return[2,t.sent()];case 4:if(p=t.sent(),l&&l.aborted&&(p=new Kt({type:"abort",options:s})),p instanceof Kt){if(Pe(p)){if(v=Te(p),h=Gt(Gt({},s),{serverResponseObject:v,response:null===(c=p.reason)||void 0===c?void 0:c.response,error:p,handled:!1}),ln.trigger(h),h.handled)return[2,Gt(Gt({},s),{serverResponseObject:v,response:null===(d=p.reason)||void 0===d?void 0:d.response,error:p})];a("static-command","StaticCommand failed",h)}}else a("static-command","Unexpected exception during static command.",p);throw p;case 5:return[2]}}))}))},validation:yt,postBack:function(n,r,o,i,u,s,l,c){var d,f,p;return e(this,void 0,void 0,(function(){var e,v,h,m,b,g,y,w,k,C;return t(this,(function(t){switch(t.label){case 0:u=u||ko.contextFor(n),0==(e=Ie(u,kt.concat(s||[]).concat(Ct))).filter((function(e){return e.name&&0==e.name.indexOf("concurrency-")})).length&&e.push(mt),v={postbackId:ie(),sender:n,args:ko.toJS(l)||[],viewModel:u.$data,commandType:"postback",abortSignal:c},h=function(e){return ge(e,r,o,i,u,v.args)},t.label=1;case 1:return t.trys.push([1,4,,5]),[4,je(h,v,e)];case 2:return[4,t.sent()()];case 3:return m=t.sent(),sn.trigger(m),[2,m];case 4:if(b=t.sent(),c&&c.aborted&&(b=new Kt({type:"abort",options:v})),b instanceof Kt){if(g=["event","handler","abort"].includes(b.reason.type),y=Te(b),g&&(w=Gt(Gt({},v),{error:b}),mn.trigger(w)),k=Gt(Gt({},v),{serverResponseObject:y,wasInterrupted:g,commandResult:null,response:null===(d=b.reason)||void 0===d?void 0:d.response,error:b}),sn.trigger(k),Pe(b)){if(C=Gt(Gt({},v),{serverResponseObject:y,response:null===(f=b.reason)||void 0===f?void 0:f.response,error:b,handled:!1}),ln.trigger(C),C.handled)return[2,Gt(Gt({},v),{serverResponseObject:y,response:null===(p=b.reason)||void 0===p?void 0:p.response,error:b})];a("postback","Postback failed",C)}}else a("postback","Unexpected exception during postback.",b);throw b;case 5:return[2]}}))}))},init:function(e){(function(e){var t,n;if(Dn)throw Error("DotVVM is already loaded");!function(e){var t,n;if(e)for(t=0,n=e;n.length>t;t++)tn[n[t]]=!0}((t=Ge=JSON.parse(Vn().value)).renderedResources),r(t.resultIdFragment),On=t.typeMetadata||{},n=new Rn(t.viewModel,wn),Dn={h:e,p:t.url,g:t.virtualDirectory,v:n},t.viewModelCacheId&&G(t.viewModelCacheId,t.viewModel),on.trigger({viewModel:n.state}),window.addEventListener("beforeunload",(function(e){var t,n;t=J(),n=Gt(Gt({},Ge),{viewModel:t}),Vn().value=JSON.stringify(n)}))})(e),function(){var e,t,n;for(e=0,t=en(Ht);t.length>e;e++)n=t[e],ko.bindingHandlers[n]=Ht[n]}(),Ce(),ko.applyBindings(q(),document.documentElement),an.trigger({})},isPostbackRunning:it,events:Cn,viewModels:{root:{get viewModel(){return Z().stateObservable()}}},get state(){return J()},patchState:function(e){Z().patchState(e)},viewModelObservables:{get root(){return q()}},serialization:{serialize:ve,serializeDate:b,parseDate:v,deserialize:k},metadata:{getTypeId:function(e){return ko.unwrap(e.$type)},getTypeMetadata:function(e){return c(e)},getEnumMetadata:_e,getEnumValue:function(e,t){var n=_e(t);return"string"==typeof e?n.values[e]:e}},viewModules:{registerOne:Ne,init:De,call:function(e,t,n){var r,o,i,a,u,s;if(null==t)throw Error("commandName has to have a value");for(o=[],i=0,a=en($t);a.length>i;i++)(s=Ve(e,u=a[i]))&&s.module&&t in s.module&&"function"==typeof s.module[t]&&o.push({moduleName:u,context:s});if(!o.length)throw Error("Command "+t+" could not be found in any of the imported modules in view "+e+".");if(o.length>1)throw Error("Conflict: There were multiple commands named "+t+" the in imported modules in view "+e+". Check modules: "+o.map((function(e){return e.moduleName})).join(", ")+".");try{return(r=o[0].context.module)[t].apply(r,n.map((function(e){return ve(e)})))}catch(e){throw Error("While executing command "+t+"("+n.map((function(e){return JSON.stringify(ve(e))}))+"), an error occurred. "+e)}},registerMany:function(e){var t,n,r;for(t=0,n=en(e);n.length>t;t++)Ne(r=n[t],e[r])}},resourceLoader:{notifyModuleLoaded:function(e){nn[e](void 0),delete nn[e]}},log:{logError:a,logWarning:i,logInfo:function(e){for(var t=[],r=1;arguments.length>r;r++)t[r-1]=arguments[r];console.log.apply(console,n(["%c"+e,"background-color: #f0f0f0"],t))},logInfoVerbose:o,logPostBackScriptError:function(e){e instanceof Kt||a("postback","Uncaught error returned from promise!",e)},level:Yt},translations:{array:zt,dictionary:qt,string:Wt}},window.dotvvm=Jt,Jt}();
//# sourceMappingURL=dotvvm-root.js.map
