-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathjaaJSU-min.js
1 lines (1 loc) · 36 KB
/
jaaJSU-min.js
1
!function(e,t){"use strict";let n;"function"==typeof define&&define.amd?define([],function(){return t(window,document)}):"undefined"!=typeof exports?module.exports=t(window,document):(n=t(window,document),Object.keys(n).forEach(e=>window[e]=n[e]),window.jaaJSU_version="2.0.0")}(0,function(e,t){"use strict";const n={};function r(e,t,n,r){const i=e.length;for(let a=0,o=i-1;a<i;a++,o--)r=t.call(n,{item:e[a],last:!o,key:a,share:r});return r}function i(e,t,n,r){for(let i=0;i<e.length;i++)r=t.call(n,{item:e[i],key:i,share:r});return r}n.$array={},n.$array.each=r,n.$array.eachDynamic=i,n.$array.partition=function(e){return Array.isArray(e)||(e=Array.from(e)),{head:function(){const[t,...n]=e;return[t,n]},tail:function(){let t=[...e];const n=t.pop();return[t,n]},onIndex:function(t){return[e.slice(0,t),e.slice(t)]},byCondition:function(t){return e.reduce((e,n,r)=>(e[+!Boolean(t(n,r))].push(n),e),[[],[]])}}},n.$array.arrayIndex=function(e,t,n){return(n+e+t%n)%n},n.$array.getLast=function(e){return e[e.length-1]},n.$array.removeItem=function(e,t){let n=[...e];for(var r=0;r<n.length;)n[r]===t?n.splice(r,1):r++;return n},n.$array.sortRandom=function(){return Math.random()-.5},n.$async={},n.$async.each_=function(...e){return function(...t){return Promise.all(e.map(e=>e(...t)))}},n.$async.CANCEL=Symbol("$async.CANCEL"),n.$async.iterateMixed_=function(...e){return new Promise(function(t,r){return function r(i){if(!e.length)return t(i);const a=e.shift(),o="function"==typeof a?a(i):a;if(null!==o){if(o===n.$async.CANCEL)return;if(o.then)return o.then(r)}return Promise.resolve(r(o))}()})},n.$async.iterate_=function(e){let t=Promise.resolve();for(let n=0,{length:r}=e;n<r;n++)t=t.then(e[n]);return t},n.$async.sequention=function(...e){return function(t){let n=Promise.resolve(t);for(let t=0,{length:r}=e;t<r;t++)n=n.then(e[t]);return n}},n.$async.serialize=function(){const e=e=>t=>e().then((e=>Array.prototype.concat.bind(e))(t)),t=(t,n)=>t.then(e(n));return e=>e.reduce(t,Promise.resolve([]))}(),n.$async.serialize_=n.$async.serialize,n.$dom={},n.$dom.each=r,n.$dom.eachDynamic=i,n.$dom.toggleAttribute=function(e,t,n,r){const i=e.getAttribute(t)===n?r:n;return e.setAttribute(t,i),i},n.$dom.empty=function(e){let t=e.childNodes.length;for(;t--;)e.removeChild(e.lastChild)},n.$dom.mount=function(e,t="childLast"){return function(r){if(!(r instanceof Element)){if("function"!=typeof r.mount)throw new TypeError("`element` must be instance of `Element` or `$dom.component`.");return r.mount(e,t)}switch(t){case"after":const{parentNode:i,nextSibling:a}=e;a?i.insertBefore(r,a):i.appendChild(r);break;case"before":e.parentNode.insertBefore(r,e);break;case"replace":e.parentNode.insertBefore(r,e),e.remove();break;case"replaceContent":n.$dom.empty(e),e.appendChild(r);break;default:"childFirst"===t&&e.childNodes.length?e.insertBefore(r,e.childNodes[0]):e.appendChild(r)}return r}},function(){const e=n.$dom,r=Object.freeze({registerToMap:function(e,t,n){let r=-1;for(const[n,i]of e)if(i===t&&(r=n),-1!==r)break;return-1!==r?r:(r=n(),e.set(r,t),r)},indexGenerator:(e=0)=>()=>e++}),i=function(){let t={add:function(){return t},component:function(){return t},mount:n,update:r,ondestroy:i,share:{mount:n,update:r,destroy:function(){return t=null,null},ondestroy:i,isStatic:function(){return!0}}};return t;function n(t,n="childLast"){switch(n){case"replace":t.remove();break;case"replaceContent":e.empty(t)}return null}function r(){return!0}function i(){return!0}}(),a={empty:["","empty"],fragment:["<>","fragment"]};function o(e,t,n){const[r,i]=a[e];return n?r===t:r===t||i===t.toLowerCase()}e.component=function(n,a,{mapUpdate:c,namespace_group:u,safe_el_name_only:s}={}){if(!n||o("empty",n,s))return i;let l,f;"svg"===n&&(u="SVG"),"SVG"===u?(l=e.assignNS.bind(null,"SVG"),f=t.createElementNS.bind(t,"http://www.w3.org/2000/svg")):(l=e.assign,f=t.createElement.bind(t));let m,d=null,h=null,g=null,A=null,p=[],b=0,y=[];let k={add:_,addText:function(e="",n=0){C(n);const r=t.createTextNode(e);let i=p[b]=O().appendChild(r);b+=1;const a=Object.create(k);return a.getReference=w.getReference.bind(null,a,i),a.on=w.on.bind(null,a,i),a.oninit=w.oninit.bind(null,a,i),a.onmount=w.onmount.bind(null,a,i),a.onupdate=w.onupdate.bind(null,a,i),a},component:function({mount:e,update:t,isStatic:n,destroy:r},i=0){C(i);const a=O();p[b]=e(a),a instanceof DocumentFragment&&S(r);n()||(M()&&(d=T()),d.registerComponent(t));return b+=1,k},dynamicComponent:function(e,t,n=0){C(n);const r=O();let i=null,a=null,o=null;return w.onupdate(k,r,e,function(e){i=t.call(r,c,a,e,i)});function c(e){a=e,o=o?a.mount(o,"replace"):a.mount(r)}},setShift:function(e=0){let t;e?y.splice(y.length+1+e):(t=y.pop(),y.push(t,t));return k},mount:E,update:P,ondestroy:S,share:{mount:E,update:P,destroy:$,ondestroy:S,isStatic:M}},w={getReference:function(e,t){return t},on:function(e,t,...n){return n.forEach(([t,n]=[])=>t&&e[t].apply(this,n)),e},oninit:function(e,t,n){return n.call(e,t),e},onmount:function(e,t,n){return g||(g=new Map),g.set(t,n),e},onupdate:function(e,t,n,r){return n?(d||(d=T()),l(t,d.register(t,n,r)),e):e}};return o("fragment",n,s)?v(t.createDocumentFragment(),a,0):_(n,a);function _(e,t,n=0){return v(f(e),t,n)}function v(e,t,n){C(n),t=t||{},b?p[b]=O().appendChild(e):m=p[0]=e,e=p[b],b+=1,l(e,t);const r=Object.create(k);return r.getReference=w.getReference.bind(null,r,e),r.on=w.on.bind(null,r,e),r.oninit=w.oninit.bind(null,r,e),r.onmount=w.onmount.bind(null,r,e),r.onupdate=w.onupdate.bind(null,r,e),r}function E(t,n="childLast"){A&&A.disconnect(),e.mount(t,n)(m);const r="after"===n||"before"===n?t.parentNode:t;if(!(t instanceof DocumentFragment)){const[e,t]=function(e,t){return e instanceof DocumentFragment?[t,t.parentNode]:[e,t]}(m,r);(A=new MutationObserver(t=>t.forEach(function(t){if(!t.removedNodes||-1===Array.prototype.indexOf.call(t.removedNodes,e))return!1;$()}))).observe(t,{childList:!0,subtree:!0,attributes:!1,characterData:!1})}return g&&(g.forEach(function(e,r){return l(r,e.call(r,t,n))}),g=void 0),m}function $(){return h&&h.forEach(e=>e.call(m)),m&&(m instanceof DocumentFragment||m.remove(),p=[]),A&&A.disconnect(),A=void 0,h=void 0,l=void 0,f=void 0,m=void 0,d&&d.clear&&(d.clear(),d=void 0),k=void 0,w=void 0,null}function S(e){return h||(h=new Set),h.add(e),k}function C(e){e?(y.splice(y.length+1+e),y[y.length-1]=b):y.push(b)}function O(){return p[y[y.length-2]]||m}function T(){const{registerToMap:e,indexGenerator:t}=r;let n,i,a,o,u,s;return f(t(0)),{register:function(t,r,i){Object.assign(n,r);const c=e(a,t,s)+"_"+e(o,i,s),l=Object.keys(r);for(let e,t=0,n=l.length;t<n;t++)e=l[t],u.has(e)?u.get(e).push(c):u.set(e,[c]);return i.call(t,r)||{}},registerComponent:function(e){-1===i.indexOf(e)&&i.push(e)},update:function(e){const t="function"==typeof c?c(e):e;let r=!1;for(let e=0,n=i.length;e<n;e++)i[e](t)&&!r&&(r=!0);if(!u.size)return r;const s=Object.keys(t).filter(e=>u.has(e)&&n[e]!==t[e]),f=s.length;if(!f)return r;Object.assign(n,t);const d=[];for(let e,t=0;t<f;t++)for(let n,r=0,i=(e=u.get(s[t])).length;r<i;r++)n=e[r],-1===d.indexOf(n)&&d.push(n);for(let e=0,t=d.length;e<t;e++)h(d[e]);return!0;function h(e){const[t,r]=e.split("_").map(Number),i=a.get(t),c=o.get(r).call(i,n)||{};if(null===i.parentNode)return m(t,r,s);l(i,c)}},clear:function(){f()},getData:function(){return n},unregister:m};function f(e){n={},i=[],a=new Map,o=new Map,u=new Map,s=e}function m(e,t,n){let r=0;function i(t){return Number(t.split("_")[0])!==e}a.delete(e),u.forEach(function(e,a){if(-1===n.indexOf(a))return e.forEach(function(e){Number(e.split("_")[1])===t&&(r+=1)});1===e.length?u.delete(a):u.set(a,e.filter(i))}),r||o.delete(t)}}function P(e){return!!d&&d.update("function"==typeof e?e(d.getData()):e)}function M(){return!d}},e.componentListener=function(){const e=["oninit","onmount","onupdate"],t={registerListener:function(e,t,n,r,i={passive:!0}){this.api={getReference:t.getReference,update:t.update,removeEventListener:this.removeEventListener.bind(this)},this.event_name=n,this.event_function=r,e.addEventListener(n,this,i)},removeEventListener:function(){this.api.getReference().removeEventListener(this.event_name,this)},handleEvent:function(e){this.event_function.call(this.api,e)}};return function(n,...r){const i=e.indexOf((/^on/g.test(n)?"":"on")+n);return-1===i?Object.freeze(["oninit",[function(e){Object.create(t).registerListener(e,this,n,...r)}]]):Object.freeze([e[i],r])}}(),e.assign=function(e,...t){const n=Object.assign({},...t),r=Object.keys(n);for(let t,i,a=0,o=r.length;a<o;a++){i=n[t=r[a]];const o=!!/(aria|data)([A-Z])/.test(t)&&t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();if(void 0!==i)switch(t){case"style":if("string"==typeof i)e.setAttribute("style",i);else for(let t,n=0,r=Object.keys(i),a=r.length;n<a;n++)t=r[n],e.style.setProperty(t,i[t]);break;case"style_vars":for(let t,n=0,r=Object.keys(i),a=r.length;n<a;n++)t=r[n],e.style.setProperty(t,i[t]);break;case"classList":if(!e[t].toggle)break;for(let t,n,r=0,a=Object.keys(i),o=a.length;r<o;r++)-1===(n=i[t=a[r]])?e.classList.toggle(t):e.classList.toggle(t,Boolean(n));break;case"dataset":for(let t,n=0,r=Object.keys(i),a=r.length;n<a;n++)t=r[n],e.dataset[t]=i[t];break;case"href":e.setAttribute(t,i);break;default:o?e.setAttribute(o,i):e[t]=i}else o&&e.removeAttribute(o),Reflect.has(e,t)&&Reflect.deleteProperty(e,t)}return e},e.assignNS=function(e,n,...r){const i=/^on[a-z]+/,a=Object.assign({},...r),o=Object.keys(a);for(let e,r,c=0,u=o.length;c<u;c++)if(void 0!==(r=a[e=o[c]]))switch(e){case"textContent":n.appendChild(t.createTextNode(r));break;case"style":if("string"==typeof r)n.setAttributeNS(null,"style",r);else for(let e,t=0,i=Object.keys(r),a=i.length;t<a;t++)e=i[t],n.style.setProperty(e,r[e]);break;case"style_vars":for(let e,t=0,i=Object.keys(r),a=i.length;t<a;t++)e=i[t],n.style.setProperty(e,r[e]);break;case"className":n.setAttributeNS(null,"class",r);break;case"classList":if(!n[e].toggle)break;for(let e,t,i=0,a=Object.keys(r),o=a.length;i<o;i++)-1===(t=r[e=a[i]])?n.classList.toggle(e):n.classList.toggle(e,Boolean(t));break;case"xlink:href":n.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",r);break;default:i.test(e)?n[e]=r:n.setAttributeNS(null,e,r)}else n.hasAttributeNS(null,e)&&n.removeAttributeNS(null,e);return n}}(),n.$dom.elementReady_=function(e,n=t){const r=Object.keys(e)[0],i=e[r];return new Promise(function(e){requestAnimationFrame(function t(){const a=n[r](i);a?e(a):requestAnimationFrame(t)})})},n.$dom.forceRedraw=function(e=t.body){let n=e.style.display;e.style.display="none";e.offsetHeight;e.style.display=n},n.$dom.ready_=function(...e){return new Promise(function(n){if("loading"!==t.readyState)return n(...e);t.addEventListener("readystatechange",function r(){if("loading"===t.readyState)return;t.removeEventListener("readystatechange",r);n(...e)})})},n.$dom.removeElements=function(e,t,n){t=t||0,n=n||e.length;let r=[],i=0;for(let a=t;a<n;a++)r[i++]=e[a];for(let e=0,t=r.length;e<t;e++)r[e].remove()},n.$function={},n.$function.arguments=function(e,...t){return t.length?function(...n){return e.apply(this,t.map(e=>n[e]))}:function(...t){return e.apply(this,t)}},n.$function.bindRight=function(e,t,...n){return function(...r){return e.call(t,...r,...n)}},n.$function.branches=function(e=((e,t)=>(e.push(t),e)),t=(()=>[])){return function(...n){return function(...r){return n.reduce((t,n)=>e(t,n(...r)),"function"==typeof t?t():t)}}},n.$function.call=function(...e){return function(t){return t.call(this,...e)}},n.$function.conditionalCall=function(e,t){return!!e&&("function"==typeof t?t(e):e)},n.$function.constant=(e=>()=>e),n.$function.each=function(...e){return function(t){for(let n=0,r=e.length;n<r;n++)e[n](t)}},n.$function.exception=function(e){throw e},n.$function.exceptionError=function(e){throw new Error(e)},n.$function.gather=function(e,...t){return t.length?function(...n){return n.splice(...t),e.call(this,n)}:function(...t){return e.call(this,t)}},n.$function.identity=(e=>e),n.$function.ifElse=function(e,t=(e=>e),n=Boolean){return function(...r){return n(...r)?e(...r):"function"==typeof t?t(...r):void 0}},n.$function.partial=function(e,...t){return function(...n){return e.call(this,...t,...n)}},n.$function.partialRight=function(e,...t){return function(...n){return e.call(this,...n,...t)}},n.$optimizier={},n.$optimizier.timeoutAnimationFrame=function(e,t=150){setTimeout(requestAnimationFrame.bind(null,e),t)},n.$function.schedule=function(t,{context:r=e,delay:i=150}={}){n.$optimizier.timeoutAnimationFrame(function e(){t.shift().call(r),t.length>0&&n.$optimizier.timeoutAnimationFrame(e,i)},i)},n.$function.self=function(){return this},n.$function.sequention=function(...e){return function(t){let n=t;for(let t=0,r=e.length;t<r;t++)n=e[t].call(this,n);return n}};class a{constructor(e){this.callback=e}call(e,t){return this.callback.call(e,t)}}n.$function.sequentionCatch=function(e=n.$function.identity){return new a(e)},n.$function.sequentionTry=function(...e){const t=e.length;return function(n){let r=n,i=!1;for(let n,o=0;o<t;o++)if(n=e[o]instanceof a,i&&n)try{r=e[o].call(this,r),i=!1}catch(e){r=e}else if(!i&&!n)try{r=e[o].call(this,r)}catch(e){r=e,i=!0}if(i)throw r;return r}},n.$function.sideEffect=function(e){return function(t){return e.call(this,t),t}},n.$function.spread=function(e,...t){return t.length?function(n=[]){return n.splice(...t),e.apply(this,n)}:function(t=[]){return e.apply(this,t)}},n.$object={},n.$object.each=function(e,t,n,r){const i=Object.keys(e);for(let a,o=0,c=i.length;o<c;o++)a=i[o],r=t.call(n,{item:e[a],key:a,index:o,share:r});return r},n.$object.eachDynamic=function(e,t,n){let r;for(let i in e)e.hasOwnProperty(i)&&(r=t.call(n,{item:e[i],key:i,target:e,share:r}));return r},n.$object.assignDescriptor=function(e,t,n){return"function"==typeof n&&(n=n(t)),Object.defineProperty(e,t,Object.assign(Object.getOwnPropertyDescriptor(e,t),n))},n.$object.fromArray=function(e,t=((e,t,n)=>e[""+n]=t),n={}){return e.reduce((e,n,r)=>(t(e,n,r),e),n)},n.$object.hasProp=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.$object.immutable_keys=function(e={}){return new Proxy(Object.keys(e).reduce(function(t,n){return t[n]=e[n],t},{}),{get(e,t){if(-1!==Object.keys(e).indexOf(t))return e[t];switch(t){case"set":return function(e){return function(t,n){return-1===Object.keys(e).indexOf(t)&&(e[t]=n,!0)}}(e);case"keys":return function(){return Object.keys(e)};default:return}},set:()=>!1})},n.$object.method=((e,...t)=>n=>n[e](...t)),n.$object.methodFrom=(e=>t=>(...n)=>e[t](...n)),n.$object.pluck=(e=>t=>t[e]),n.$object.pluckFrom=(e=>t=>e[t]),n.$object.setter=((e,t)=>n=>(n[e]=t,n)),n.$object.setterFrom=(e=>t=>n=>(e[t]=n,e)),n.$optimizier.debounce=function(e,t,n){var r,i,a,o;return t||(t=150),function(){a=this,i=[].slice.call(arguments,0),o=new Date;let c=function(){let u=new Date-o;u<t?r=setTimeout(c,t-u):(r=null,n||e.apply(a,i))};n&&!r&&e.apply(a,i),r||(r=setTimeout(c,t))}};const[o,c]=(e=>{if(typeof requestIdleCallback==="function")return[requestIdleCallback,cancelIdleCallback];class t{constructor(e){this._init_time=e}get didTimeout(){return!1}timeRemaining(){return Math.max(0,50-(n()-this._init_time))}}return[function(e){const r=new t(n());return setTimeout(()=>e(r),0)},function(e){clearTimeout(e)}];function n(){return+new Date}})();class u{constructor(e,t="IdleValue: `init` argument for class constructor must be a function!"){if("function"!=typeof e)throw new TypeError(t);this._init=e,this._value=void 0,this._idleHandle=o(this.initValue.bind(this))}initValue(){return this._init?(this._value=this._init(),this._init=void 0,this._value):this._value}value(){return void 0!==this._value?this._value:(this.cancel(),this.initValue())}cancel(){return this._idleHandle&&(c(this._idleHandle),this._idleHandle=void 0),this._value}}return u.throwErrorIfNotIdleValue=function(e,t){if(e instanceof u)return!0;throw new Error(t)},n.$optimizier.setIdleValue=function(e){return new u(e,"`setIdleValue`: `initFunction` argument must be a function!")},n.$optimizier.getIdleValue=function(e){if(u.throwErrorIfNotIdleValue(e,"`getIdleValue`: Argument `idle_value` is not `IdleValue`!"))return e.value()},n.$optimizier.clearIdleValue=function(e){u.throwErrorIfNotIdleValue(e,"`clearIdleValue`: Argument `idle_value` is not `IdleValue`!")&&e.cancel()},n.$optimizier.once=function(e,t){var n;return function(){return e&&(n=e.apply(t||this,arguments),e=null),n}},n.$optimizier.poll_=function(e,t,n){var r=Number(new Date)+(t||2e3);n=n||100;var i=function(t,a){var o=e();o?t(o):Number(new Date)<r?setTimeout(i,n,t,a):a(new Error("timed out for "+e+": "+arguments))};return new Promise(i)},n.$optimizier.requestAnimationFrame_=function(e){return new Promise(function(t){requestAnimationFrame(t.bind(this,e))})},n.$optimizier.setTimeout_=function(e=0){return(...t)=>new Promise(function(n){setTimeout(n,e,...t)})},n.$optimizier.trottle=function(e,t){t||(t=1);var n,r,i,a=0;function o(){a===t?(a=0,cancelAnimationFrame(i)):i=requestAnimationFrame(o)}return function(){r=this,n=[].slice.call(arguments,0),a||(a++,e.apply(r,n),i=requestAnimationFrame(o))}},n.$string={},n.$string.clearSpaces=function(e){return"string"==typeof e&&e.replace(/\s+/g,"")},n.$string.containsRepeatingChars=function(e,t=2){if("string"!=typeof e)return!1;let n=new RegExp("(\\S)(\\1{"+t+",})","g");return e=e.replace(/\s+/g,"_"),n.test(e)},n.$string.containsSequential=function(e,t){if("string"!=typeof e)return!1;t=t||2;let n=!1,r=+e[0],i=1;for(let a=1,o=e.length;a<o;a++)+e[a]-i!==r||n?n||(r=+e[a],i=1):++i>t&&(n=!0);if(!n){r=String.fromCharCode(e.charCodeAt(0)),i=1;for(let a=1,o=e.length;a<o;a++)this.letterInc(String.fromCharCode(e.charCodeAt(a)),-i)!==r||n?n||(r=String.fromCharCode(e.charCodeAt(a)),i=1):++i>t&&(n=!0)}return n},n.$string.getSubstring=function(e,t,n=0){return n<0&&(n=0),e.length>t+n&&(e=e.substring(n,t)),e},n.$string.isEmail=function(e){let t=e.split("@");if(2!==t.length)return!1;if((t=[t[0],...t[1].split(".")]).length<3)return!1;const n=!/(#|\?|!|\\|\/|\||\.\.)/i.test(t[0]);return n&&t.reduce((e,t)=>e&&t.length>1&&!/\s/.test(t),n)},n.$string.isFilled=function(e){return"string"==typeof e&&(!!e.trim()&&Boolean(e))},n.$string.toCamelCase=function(e){if("string"!=typeof e)throw Error("Type of 'str' is not string!");if(!e)return e;let[t,...n]=e.split("");return[t.toUpperCase(),...n].join("")},n.$string.clearHTML=function(e){const n=t.createElement("div");return n.innerHTML=e,n.textContent},n.$string.concatLeft=function(e){return function(t){return String(t)+e}},n.$string.concatRight=function(e){return function(t){return String(e)+t}},n.$string.countChars=function(e){if("string"!=typeof e)return!1;const t=e.length;let n,r=0;for(let i=0;i<t;i++)r+=94==(n=e.charCodeAt(i))||n>127?2:1;return r},n.$string.escapeHTML=function(e){const n=t.createElement("pre");return n.textContent=e,n.innerHTML},n.$string.generateUnique=function(){return(new Date).getTime()+"_"+(performance.now().toString(36)+Math.random().toString(36)).replace(/\./g,(""+Math.random()).charAt(0)).slice(0,10)},n.$string.letterInc=function(e,t,n){void 0===n&&(n=e.length-1);let r,i,a=e.charCodeAt(n);return t||(t=1),a?a<65?a=65:a>90&&a<97?a=97:a>122&&(a=122):a=0,r=a+t,(i=!(0===a||r<65)&&(!(r>90&&r<97)&&(!(r>122)&&String.fromCharCode(r))))&&(e=e.substr(0,n)+i+e.substr(n+1)),e},n.$string.template=function(e,t=Object.keys){if("string"!=typeof e)throw Error("Type of 'str' is not string!");const n=/\$\{([\s]*[^;\s\{]+[\s]*)\}/g,r=Object.freeze({partial:function(t={}){return e=i(t),r},partialRest:function(...t){let i=0,a=t.length;return e=e.replace(n,function(e){return i++<a?t[i-1]:e}),r},setKeysFilter:function(e){return t=e,r},isSubstituted:function(){return!n.test(e)},execute:i});return r;function i(r={}){const i=t(r);return i.length?e.replace(n,function(e,t){return-1!==i.indexOf(t)?r[t]:e}):e}},n.$time={},function(){const e=function(){const e=(({time:e,date:t,seconds:n})=>({time:e,date:t,time_seconds:Object.assign(n,e),date_time:Object.assign({},e,t),date_time_seconds:Object.assign({},Object.assign(n,e),t)}))({time:{hour:"2-digit",minute:"2-digit"},date:{year:"numeric",day:"2-digit",month:"2-digit"},seconds:{second:"2-digit"}}),t=(({dash:e,colon:t,space:n,two_dig:r})=>({SQL_DATE:[["year","numeric"],e,["month",r],e,["day",r]],SQL_TIME:[["hour",r,"h23"],t,["minute",r],t,["second",r]],SQL:[["year","numeric"],e,["month",r],e,["day",r],n,["hour",r,"h23"],t,["minute",r],t,["second",r]]}))({dash:["text","-"],colon:["text",":"],space:["text"," "],two_dig:"2-digit"}),n=["th","st","nd","rd"],r=e=>-1!==e.indexOf("-"),i=e=>-1!==e.indexOf("T");let a="en-GB",o="";const c=Object.freeze(["Africa/Abidjan","Africa/Accra","Africa/Algiers","Africa/Bissau","Africa/Cairo","Africa/Casablanca","Africa/Ceuta","Africa/El_Aaiun","Africa/Johannesburg","Africa/Juba","Africa/Khartoum","Africa/Lagos","Africa/Maputo","Africa/Monrovia","Africa/Nairobi","Africa/Ndjamena","Africa/Sao_Tome","Africa/Tripoli","Africa/Tunis","Africa/Windhoek","America/Adak","America/Anchorage","America/Araguaina","America/Argentina/Buenos_Aires","America/Argentina/Catamarca","America/Argentina/Cordoba","America/Argentina/Jujuy","America/Argentina/La_Rioja","America/Argentina/Mendoza","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Asuncion","America/Atikokan","America/Bahia_Banderas","America/Bahia","America/Barbados","America/Belem","America/Belize","America/Blanc-Sablon","America/Boa_Vista","America/Bogota","America/Boise","America/Cambridge_Bay","America/Campo_Grande","America/Cancun","America/Caracas","America/Cayenne","America/Costa_Rica","America/Creston","America/Cuiaba","America/Curacao","America/Danmarkshavn","America/Dawson_Creek","America/Dawson","America/Denver","America/Detroit","America/Edmonton","America/Eirunepe","America/El_Salvador","America/Fort_Nelson","America/Fortaleza","America/Glace_Bay","America/Godthab","America/Goose_Bay","America/Grand_Turk","America/Guatemala","America/Guayaquil","America/Guyana","America/Halifax","America/Havana","America/Hermosillo","America/Chicago","America/Chihuahua","America/Indiana/Indianapolis","America/Indiana/Knox","America/Indiana/Marengo","America/Indiana/Petersburg","America/Indiana/Tell_City","America/Indiana/Vevay","America/Indiana/Vincennes","America/Indiana/Winamac","America/Inuvik","America/Iqaluit","America/Jamaica","America/Juneau","America/Kentucky/Louisville","America/Kentucky/Monticello","America/La_Paz","America/Lima","America/Los_Angeles","America/Maceio","America/Managua","America/Manaus","America/Martinique","America/Matamoros","America/Mazatlan","America/Menominee","America/Merida","America/Metlakatla","America/Mexico_City","America/Miquelon","America/Moncton","America/Monterrey","America/Montevideo","America/Nassau","America/New_York","America/Nipigon","America/Nome","America/Noronha","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Ojinaga","America/Panama","America/Pangnirtung","America/Paramaribo","America/Phoenix","America/Port_of_Spain","America/Port-au-Prince","America/Porto_Velho","America/Puerto_Rico","America/Punta_Arenas","America/Rainy_River","America/Rankin_Inlet","America/Recife","America/Regina","America/Resolute","America/Rio_Branco","America/Santarem","America/Santiago","America/Santo_Domingo","America/Sao_Paulo","America/Scoresbysund","America/Sitka","America/St_Johns","America/Swift_Current","America/Tegucigalpa","America/Thule","America/Thunder_Bay","America/Tijuana","America/Toronto","America/Vancouver","America/Whitehorse","America/Winnipeg","America/Yakutat","America/Yellowknife","Antarctica/Casey","Antarctica/Davis","Antarctica/Macquarie","Antarctica/Mawson","Antarctica/Palmer","Antarctica/Rothera","Antarctica/Syowa","Antarctica/Troll","Antarctica/Vostok","Asia/Almaty","Asia/Amman","Asia/Anadyr","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Atyrau","Asia/Baghdad","Asia/Baku","Asia/Bangkok","Asia/Barnaul","Asia/Beirut","Asia/Bishkek","Asia/Brunei","Asia/Colombo","Asia/Damascus","Asia/Dhaka","Asia/Dili","Asia/Dubai","Asia/Dushanbe","Asia/Famagusta","Asia/Gaza","Asia/Hebron","Asia/Ho_Chi_Minh","Asia/Hong_Kong","Asia/Hovd","Asia/Chita","Asia/Choibalsan","Asia/Irkutsk","Asia/Jakarta","Asia/Jayapura","Asia/Jerusalem","Asia/Kabul","Asia/Kamchatka","Asia/Karachi","Asia/Kathmandu","Asia/Khandyga","Asia/Kolkata","Asia/Krasnoyarsk","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Macau","Asia/Magadan","Asia/Makassar","Asia/Manila","Asia/Nicosia","Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk","Asia/Oral","Asia/Pontianak","Asia/Pyongyang","Asia/Qatar","Asia/Qyzylorda","Asia/Riyadh","Asia/Sakhalin","Asia/Samarkand","Asia/Seoul","Asia/Shanghai","Asia/Singapore","Asia/Srednekolymsk","Asia/Taipei","Asia/Tashkent","Asia/Tbilisi","Asia/Tehran","Asia/Thimphu","Asia/Tokyo","Asia/Tomsk","Asia/Ulaanbaatar","Asia/Urumqi","Asia/Ust-Nera","Asia/Vladivostok","Asia/Yakutsk","Asia/Yangon","Asia/Yekaterinburg","Asia/Yerevan","Atlantic/Azores","Atlantic/Bermuda","Atlantic/Canary","Atlantic/Cape_Verde","Atlantic/Faroe","Atlantic/Madeira","Atlantic/Reykjavik","Atlantic/South_Georgia","Atlantic/Stanley","Australia/Adelaide","Australia/Brisbane","Australia/Broken_Hill","Australia/Currie","Australia/Darwin","Australia/Eucla","Australia/Hobart","Australia/Lindeman","Australia/Lord_Howe","Australia/Melbourne","Australia/Perth","Australia/Sydney","Europe/Amsterdam","Europe/Andorra","Europe/Astrakhan","Europe/Athens","Europe/Belgrade","Europe/Berlin","Europe/Brussels","Europe/Budapest","Europe/Bucharest","Europe/Copenhagen","Europe/Dublin","Europe/Gibraltar","Europe/Helsinki","Europe/Chisinau","Europe/Istanbul","Europe/Kaliningrad","Europe/Kiev","Europe/Kirov","Europe/Lisbon","Europe/London","Europe/Luxembourg","Europe/Madrid","Europe/Malta","Europe/Minsk","Europe/Monaco","Europe/Moscow","Europe/Oslo","Europe/Paris","Europe/Prague","Europe/Riga","Europe/Rome","Europe/Samara","Europe/Saratov","Europe/Simferopol","Europe/Sofia","Europe/Stockholm","Europe/Tallinn","Europe/Tirane","Europe/Ulyanovsk","Europe/Uzhgorod","Europe/Vienna","Europe/Vilnius","Europe/Volgograd","Europe/Warsaw","Europe/Zaporozhye","Europe/Zurich","Indian/Cocos","Indian/Chagos","Indian/Christmas","Indian/Kerguelen","Indian/Mahe","Indian/Maldives","Indian/Mauritius","Indian/Reunion","Pacific/Apia","Pacific/Auckland","Pacific/Bougainville","Pacific/Easter","Pacific/Efate","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Fiji","Pacific/Funafuti","Pacific/Galapagos","Pacific/Gambier","Pacific/Guadalcanal","Pacific/Guam","Pacific/Honolulu","Pacific/Chatham","Pacific/Chuuk","Pacific/Kiritimati","Pacific/Kosrae","Pacific/Kwajalein","Pacific/Majuro","Pacific/Marquesas","Pacific/Nauru","Pacific/Niue","Pacific/Norfolk","Pacific/Noumea","Pacific/Pago_Pago","Pacific/Palau","Pacific/Pitcairn","Pacific/Pohnpei","Pacific/Port_Moresby","Pacific/Rarotonga","Pacific/Tahiti","Pacific/Tarawa","Pacific/Tongatapu","Pacific/Wake","Pacific/Wallis"]),u=Object.freeze({"-01:00":238,"-02:00":242,"-03:00":107,"-04:00":49,"-05:00":92,"-06:00":62,"-07:00":120,"-08:00":337,"-09:00":320,"-09:30":330,"-10:00":323,"-11:00":332,"+01:00":15,"+02:00":8,"+03:00":270,"+04:00":306,"+04:30":191,"+05:00":221,"+05:30":173,"+05:45":194,"+06:00":207,"+06:30":232,"+07:00":182,"+08:00":220,"+08:30":210,"+08:45":249,"+09:00":176,"+09:30":248,"+10:00":229,"+11:00":314,"+12:00":345,"+13:00":316,"+14:00":326,BST:275,CET:284,CEST:284,EET:264,EEST:264,WET:274,WEST:274});function s(e){return f(e.toISOString())}function l(){return f((new Date).toISOString())}function f(e){let t,n,r="",i="",a="",o="";for(;e.length;)t=e[0],/\d/.test(t)?e.search(/\d\d\d\d-\d\d-\d\d/)?e.search(/\d\d\/\d\d\/\d\d\d\d/)?e.search(/\d\d:\d\d:\d\d/)?e.search(/\d\d:\d\d/)?e=e.substr(1):(i="T"+e.substr(0,5)+":00",e=e.substr(5)):(i="T"+e.substr(0,8),e=e.substr(8)):(r=e.substr(0,10).split("/").sort(()=>-1).join("-"),e=e.substr(10)):(r=e.substr(0,10),e=e.substr(10)):/[ ,\._]/.test(t)||!e.substring(0,2).search(/T\d/)?e=e.substr(1):e.search(/[\+\-]\d\d:\d\d/)?e.search(/[A-Z]{2,}/)?"Z"===t?(a="Z",e=e.substr(1)):e=e.substr(1):(o=-1===(n=e.search(/[^A-Z]/))?e:e.substr(0,n),e=e.substr(o.length),"CET"===o&&(a=o,o="")):(o=e.substr(0,6),e=e.substr(6),Reflect.has(u,o)?(a=o,o=""):"00:00"===o.substr(1,5)&&(a="Z",o="")),r&&i&&a&&(e="");return[r,i,a]}function m(e=t.SQL,{locale:n=a,declension:r=!0,timeZone:i=o}={}){return t=>e.map(function(e,t,n,r){const i=k.bind(null,n);return function([a,o,c]){let u=function(e,t,n,r,i,a,o,c){switch(!0){case"text"===t:return n;case"week"===t:return $(o?new Date(((e,t,n)=>e({timeZone:t,year:"numeric"})+"-"+C(e({timeZone:t,month:n}))+"-"+C(e({timeZone:t,day:n}))+"T"+C(e({timeZone:t,hour:n}))+":"+C(e({timeZone:t,minute:n}))+":"+C(e({timeZone:t,second:n})))(Date.prototype.toLocaleString.bind(e,"en-GB"),o,"2-digit")):e);case"weekday"===t&&"numeric"===n:return E()(e);case"month"===t&&"long"===n&&i:return e.toLocaleString(a,c({[t]:n,day:"numeric"})).replace(/[\d \.\/\\]/g,"");case"hour"===t&&"a"===r.toLowerCase():return e.toLocaleString("A"===r?"en-US":"en-GB",c({[t]:n,hourCycle:"h12"})).replace(/[\d \.\/\\]/g,"");case"hour"===t:return e.toLocaleString(a,c({[t]:n,hourCycle:r})).replace(/[ \.\/\\pam]/gi,"");default:return e.toLocaleString(a,c({[t]:n}))}}(e,a,o,c,r,t,n,i);return"2-digit"===o&&1===String(u).length&&(u="0"+u),"two_letters"===c?u=u.substr(0,2):"ordinal_number"===c&&-1!==t.indexOf("en")&&(u=T(u)),u}}(d(t),n,i,r)).join("")}function d(e){if(!e||!Array.isArray(e))return new Date;let[t,n,r]=e;return t||(t=l()[0]),n||(n="T00:00:00"),r||(r=y(t)),"CET"!==r&&"CEST"!==r||(r=A([t,n])),new Date(t+n+r)}function h(e,t=1){const n=!!e&&d(e).getTime();return function(e){return(d(e).getTime()-(n||d(l()).getTime()))/t}}function g(e){const{abs:t,floor:n,round:r}=Math,i=e<0?"%s ago":"in %s";return(e=t(e))<1500?"now":(e=n(e/1e3))<10?i.replace("%s","a few seconds"):e<60?i.replace("%s",e+" seconds"):1===(e=n(e/60))?i.replace("%s","a minute"):e<60?i.replace("%s",e+" minutes"):1===(e=r(e/60))?i.replace("%s","an hour"):e<24?i.replace("%s",e+" hours"):1===r(e/=24)?i.replace("%s","a day"):e<29.5?i.replace("%s",r(e)+" days"):1===r(e/=30.41666)?i.replace("%s","a month"):e<12?i.replace("%s",r(e)+" months"):1===(e=r(e/12))?i.replace("%s","a year"):i.replace("%s",e+" years")}function A([e,t]=[]){if(!e||!t){let n=l();e||(e=n[0]),t||(t=n[1].replace(/\.\d+/,""))}const n=e+t,r=e.split("-").reverse().join("/")+", "+t.replace("T",""),[i,a]=["+01:00","+02:00"].map(e=>new Date(n+e).toLocaleString("en-GB",{timeZone:"Europe/Prague"}));return r===i?"+01:00":r===a?"+02:00":"Z"}function p(e,{locale:t=a,description:n="long",offset:r=!1}={}){n=n.toLocaleLowerCase();const[i,o,s]=w(e),l=new Date([i,o,s].join("")),f=-1!==Object.keys(u).indexOf(s)?{timeZone:c[u[s]]}:{};let m="none"===n?"":l.toLocaleString(t,Object.assign({timeZoneName:n},f)).replace(l.toLocaleString(t,f),"").trim();const d=r?"UTC"+("Z"===s?_(l.getTimezoneOffset()):l.toLocaleString(t,Object.assign({timeZoneName:"short"},f)).replace(l.toLocaleString(t,f),"").replace(/[^\d\+\-\:]/g,"").trim()):"";return m&&d&&(m=" ("+m+")"),d+m}function b(e,t=o){const n=new Date(w(e).join(""));return t?function(e,t=o){const[n="+",r=0,i=0]=e.toLocaleString("en-GB",{timeZone:t,weekday:"short",timeZoneName:"short"}).replace(/(\+|\-)/g,(e,t)=>t+":").replace(/[^\d:\+\-]/g,"").split(":");return("-"===n?-1:1)*(60*Number(r)+Number(i))+e.getTimezoneOffset()}(n,t):n.getTimezoneOffset()}function y(e){return _(b(e))}function k(e,t){return e?-1!==c.indexOf(e)?Object.assign({timeZone:e},t):void 0!==u[e]?Object.assign({timeZone:c[u[e]]},t):t:t}function w(e){return e?Array.isArray(e)?e:f(e):l()}function _(e){const{floor:t,abs:n}=Math;let r=e>0?"-":"+";return r+=C(t((e=n(e))/60))+":"+C(e%60)}function v(e){return t=>(t.setDate(t.getDate()+e),t)}function E(e="numeric",{locale:t=a,timeZone:n=o}={}){return"numeric"===e?e=>e.getDay():r=>r.toLocaleString(t,{timeZone:n,weekday:e})}function $(e){const t=new Date(e.valueOf());t.setDate(t.getDate()+3-(e.getDay()+6)%7);var n=t.valueOf();return t.setMonth(0,1),4!==t.getDay()&&t.setMonth(0,1+(4-t.getDay()+7)%7),1+Math.ceil((n-t)/6048e5)}function S(e,t,n){const r=e.substr(3);return n["set"+r](n["get"+r]()+t),n}function C(e){return 1===(e=String(e)).length?"0"+e:e}function O(e,t=(new Date).getFullYear()){return new Date(+t,+e,0).getDate()}function T(e){const t="number"==typeof e?e:parseInt(e);if(isNaN(t))return e;let r=t%100;return e+(n[(r-20)%10]||n[r]||n[0])}return{fromDate:s,fromDateArguments:function(...e){return f((e.filter(e=>void 0!==e).length?new Date(...e):new Date).toISOString())},fromNow:l,fromString:function(e,t=o){if(!e)return l();let n=f(e);return 3!==n.length?r(n[0])?i(n[1])?n[2]=t:(n[2]=n[1]||t,n[1]=""):n.unshift(""):!n[2]&&t&&(n[2]=t),n},toDate:d,toLocaleString:function(t="date_time",{locale:n=a,timeZone:r=o}={}){return i=>d(i).toLocaleString(n,k(r,e[t]))},toRelative:function(e){return t=>g(h(e)(t))},getDiff:function(e,t="seconds",n=!1){const r=h(e,-{seconds:1e3,minutes:6e4,hours:36e5,days:864e5,weeks:6048e5,months:24192e5,years:290304e5}[t]);return function(e){const t=r(e);return n?t:Math.floor(t)}},getRelative:g,toString:function(e,t){return m(Array.isArray(e)?e:e?function(e=""){let t,n,r=[];for(;e.length;)switch(e[0]){case"M":i();break;case"d":a();break;case"W":c("week","W");break;case"Y":o();break;case"D":c("day","D");break;case"H":u("hour","H","h23");break;case"k":u("hour","k","h24");break;case"h":u("hour","h","h12");break;case"A":s("A");break;case"a":s("a");break;case"m":l("minute","m");break;case"s":l("second","s");break;case"[":f();break;default:n=e[0],(t=r.length-1)>-1&&"text"===r[t][0]?r[t][1]+=n:r.push(["text",n]),e=e.substring(1)}function i(){let t="numeric";if(e.search(/MMMM/))if(e.search(/MMM/))if(e.search(/MM/)){if(!e.search(/Mo/))return e=e.substring(2),r.push(["month",t,"ordinal_number"]);e=e.substring(1)}else t="2-digit",e=e.substring(2);else t="short",e=e.substring(3);else t="long",e=e.substring(4);r.push(["month",t])}function a(){let t="numeric";if(e.search(/dddd/))if(e.search(/ddd/)){if(!e.search(/dd/))return t="short",e=e.substring(2),r.push(["weekday",t,"two_letters"]);e=e.substring(1)}else t="short",e=e.substring(3);else t="long",e=e.substring(4);r.push(["weekday",t])}function o(){let t="2-digit";e.search(/YYYY/)?e=e.substring(2):(t="numeric",e=e.substring(4)),r.push(["year",t])}function c(t,n){let i="numeric";if(!e.search(new RegExp(n+"o")))return e=e.substring(2),r.push([t,i,"ordinal_number"]);e.search(new RegExp(n+n))?e=e.substring(1):(i="2-digit",e=e.substring(2)),r.push([t,i])}function u(t,n,i){let a="numeric";e.search(new RegExp(n+n))?e=e.substring(1):(a="2-digit",e=e.substring(2)),r.push([t,a,i])}function s(t){e=e.substring(1),r.push(["hour","numeric",t])}function l(t,n){let i="numeric";e.search(new RegExp(n+n))?e=e.substring(1):(i="2-digit",e=e.substring(2)),r.push([t,i])}function f(){const t=e.indexOf("]");if(-1===t)return e=e.substring(1),!1;r.push(["text",e.substr(1,t-1)]),e=e.substr(t+1)}return r}(e):void 0,t)},getCETOffset:A,getTimeZone:p,getCurrentTimeZone:function({locale:e=a,description:t="long",offset:n=!1}={}){if("ianna"!==(t=t.toLocaleLowerCase()))return p(void 0,{locale:e,description:t,offset:n});let r,i,o="";if("undefined"!=typeof Intl&&"function"==typeof Intl.DateTimeFormat){if("function"!=typeof(r=Intl.DateTimeFormat()||{}).resolvedOptions)return;i=r.resolvedOptions().timeZone,o=-1!==Object.keys(u).indexOf(i)?c[u[i]]:i}const s=n?p(void 0,{locale:e,description:"none",offset:!0}):"";return o&&s&&(o=" ("+o+")"),s+o},getTimeZoneOffset:b,getTimeZoneOffsetString:y,modify:function(e){const t=Object.keys(e);return function(n){const r=d(n);for(let n,i=0;n=t[i];i++)"addDays"===n?v(e[n])(r):"add"===n.substr(0,3)?S(n,e[n],r):"setMonth"===n?r.setMonth(e[n]-1):Reflect.has(r,n)?r[n](e[n]):"setDay"===n&&r.setDate(e[n]);return s(r)}},redefineTimeZone:function(e=o){return([t="",n=""]=[])=>[t,n,e]},Date_utils:{getWeekDay:E,getWeekNumber:$,addDays:v,addMonths:function(e){return t=>(t.setMonth(t.getMonth()+e),t)}},double:C,daysInMonth:O,getDaysInMonth:function([e=l()[0]]=[]){const[t,n,r]=e.split("-").map(Number);return O(n,r)},getMonthName:function(e,t){if("number"!=typeof e&&(e=parseInt(e)),isNaN(e))return!1;let n=["December","January","February","March","April","May","June","July","August","September","October","November"][e%12];return t&&(-1===t&&(t=3,4===n.length&&(t=4)),n=n.substring(0,t)),n},getOrdinalSuffix:T,_:void 0,formats:t,getTimeZones:()=>c,isTimeZone:e=>-1!==c.indexOf(e),setInternalZone:e=>o=e,setInternalLocale:e=>a=e}}();Object.assign(n.$time,e)}(),n.$time.getDateStamp=(e=>n.$time.toString(n.$time.formats.SQL_DATE)(n.$time.fromDateArguments(e))),n.$time.getTimeStamp=(e=>n.$time.toString(n.$time.formats.SQL)(n.$time.fromDateArguments(e))),n});