Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 

9 строки
101 KiB

  1. /*!
  2. App Connect
  3. Version: 1.14.12
  4. (c) 2023 Wappler.io
  5. @build 2023-03-14 12:22:18
  6. */
  7. window.Element&&!Element.prototype.closest&&(Element.prototype.closest=function(t){var e,n=(this.document||this.ownerDocument).querySelectorAll(t),i=this;do{for(e=n.length;--e>=0&&n.item(e)!==i;);}while(e<0&&(i=i.parentElement));return i}),window.NodeList&&!NodeList.prototype.forEach&&(NodeList.prototype.forEach=Array.prototype.forEach),function(){window.dmx=window.dmx||{};var t=Object.prototype.toString,e=Object.prototype.hasOwnProperty,n=/\w*$/,i=/^(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)Array$/,r=function(t,e){return t===e||t!=t&&e!=e},s=function(t,e){for(var n=t.length;n--;)if(r(t[n][0],e))return n;return-1},a=function(t,e){return function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t}(e)?t["string"==typeof e?"string":"hash"]:t.map},o=function(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}};o.prototype={clear:function(){this.__data__=Object.create(null),this.size=0},delete:function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},get:function(t){var e=this.__data__[t];return e===HASH_UNDEFINED?void 0:e},has:function(t){return void 0!==this.__data__[t]},set:function(t,e){return this.size+=this.has(t)?0:1,this.__data__[t]=void 0===e?HASH_UNDEFINED:e,this}};var d=function(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}};d.prototype={clear:function(){this.__data__=[],this.size=0},delete:function(t){var e=this.__data__,n=s(e,t);return!(n<0)&&(n==e.length-1?e.pop():e.splice(n,1),--this.size,!0)},get:function(t){var e=this.__data__,n=s(e,t);return n<0?void 0:e[n][1]},has:function(t){return s(this.__data__,t)>-1},set:function(t,e){var n=this.__data__,i=s(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this}};var u=function(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}};u.prototype={clear:function(){this.size=0,this.__data__={hash:new o,map:new Map,string:new o}},delete:function(t){var e=a(this.__data__,t).delete(t);return this.size-=e?1:0,e},get:function(t){return a(this.__data__,t).get(t)},has:function(t){return a(this.__data__,t).has(t)},set:function(t,e){var n=a(this.__data__,t),i=n.size;return n.set(t,e),this.size+=n.size==i?0:1,this}};var c=function(t){var e=this.__data__=new d(t);this.size=e.size};c.prototype={clear:function(){this.__data__=new d,this.size=0},delete:function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n},get:function(t){return this.__data__.get(t)},has:function(t){return this.__data__.has(t)},set:function(t,e){var n=this.__data__;if(n instanceof d){var i=n.__data__;if(i.length<199)return i.push([t,e]),this.size=++n.size,this;n=this.__data__=new u(i)}return n.set(t,e),this.size=n.size,this}};var h=function(e){return t.call(e).slice(8,-1)},l=function(t){return Array.isArray(t)},p=function(t){return null!=t&&"object"==typeof t},f=function(t){var e=new t.constructor(t.byteLength);return new Uint8Array(e).set(new Uint8Array(t)),e},m=function(t){var e=f(t.buffer);return new t.constructor(e,t.byteOffset,t.length)},v=function(t,e){var i,r,s,a,o,d,u=t.constructor;switch(e){case"ArrayBuffer":return f();case"Boolean":case"Date":return new u(+t);case"DataView":return d=f((o=t).buffer),new o.constructor(d,o.byteOffset,o.byteLength);case"Float32Array":case"Float64Array":case"Int8Array":case"Int16Array":case"Int32Array":case"Uint8Array":case"Uint8ClampedArray":case"Uint16Array":case"Uint32Array":return m(t);case"Map":case"Set":return new u;case"Number":case"String":return new u(t);case"RegExp":return(a=new(s=t).constructor(s.source,n.exec(s))).lastIndex=s.lastIndex,a;case"ImageData":return r=m((i=t).data),new i.constructor(r,i.width,i.height)}},x=function(t,n,s,a){var o;if(!p(t))return t;var d,u=h(t);o=l(t)?new(d=t).constructor(d.length):"Object"==u?{}:v(t,u);var f=(a=a||new c).get(t);if(f)return f;if(a.set(t,o),"Map"==u)return t.forEach((function(e,n){o.set(n,x(e,n,t,a))})),o;if("Set"==u)return t.forEach((function(e){o.add(x(e,e,t,a))})),o;if(function(t){return p(t)&&i.test(h(t))}(t))return o;var m=l(t)?void 0:Object.keys(Object(t));return function(t,e){for(var n=-1,i=t.length;++n<i&&!1!==e(t[n],n,t););}(m||t,(function(n,i){m&&(n=t[i=n]),function(t,n,i){if("__proto__"!=n){var s=t[n];e.call(t,n)&&r(s,i)&&(void 0!==i||n in t)||(t[n]=i)}}(o,i,x(n,i,t,a))})),o};dmx.clone=x}(),function(){window.dmx=window.dmx||{};var t=Object.prototype.hasOwnProperty,e=/^(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)Array$/,n=function(t){return toString.call(t).slice(8,-1)},i=function(t){return"object"==typeof t&&null!==t},r=function(t,e){var n=t.length;if(n!=e.length)return!1;for(var i=-1;++i<n;){var r=t[i],s=e[i];if(r!==s&&!a(r,s))return!1}return!0},s=function(s,o){var d=Array.isArray(s),u=Array.isArray(o),c=d?"Array":n(s),h=u?"Array":n(o),l=c==h;return l&&!("Object"==c)?d||function(t){return i(t)&&e.test(n(t))}(s)?r(s,o):function(t,e,n){switch(n){case"DataView":if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case"ArrayBuffer":return!(t.byteLength!=e.byteLength||!a(new Uint8Array(t),new Uint8Array(e)));case"Boolean":case"Date":case"Number":return function(t,e){return t===e||t!=t&&e!=e}(+t,+e);case"RegExp":case"String":return t==String(e);case"Map":case"Set":return t.size==e.size&&r(Array.from(t),Array.from(e))}}(s,o,c):!!l&&function(e,n){var i=Object.keys(e),r=i.length;if(r!=Object.keys(n).length)return!1;for(var s,o=r;o--;)if(s=i[o],!t.call(n,s))return!1;for(var d=!0;++o<r;){var u=e[s=i[o]],c=n[s];if(u!==c&&!a(u,c)){d=!1;break}}if(d){var h=e.constructor,l=n.constructor;h==l||!("constructor"in e)||!("constructor"in n)||"function"==typeof h&&h instanceof h&&"function"==typeof l&&l instanceof l||(d=!1)}return d}(s,o)},a=function(t,e){return t===e||(null==t||null==e||!i(t)&&!i(e)?t!=t&&e!=e:s(t,e))};dmx.equal=a}(),window.dmx=window.dmx||Object.create(null),dmx.__components=Object.create(null),dmx.__attributes={before:Object.create(null),mount:Object.create(null),mounted:Object.create(null)},dmx.__formatters={boolean:Object.create(null),global:Object.create(null),string:Object.create(null),number:Object.create(null),object:Object.create(null),array:Object.create(null),any:Object.create(null)},dmx.__adapters=Object.create(null),dmx.__actions=Object.create(null),dmx.__startup=new Set,dmx.config={mapping:{form:"form","button, input[type=button], input[type=submit], input[type=reset]":"button","input[type=radio]":"radio","input[type=checkbox]":"checkbox","input[type=file][multiple]":"input-file-multiple","input[type=file]":"input-file",input:"input",textarea:"textarea","select[multiple]":"select-multiple",select:"select",".checkbox-group":"checkbox-group",".radio-group":"radio-group"}},dmx.reIgnoreElement=/^(script|style)$/i,dmx.rePrefixed=/^dmx-/i,dmx.reExpression=/\{\{(.+?)\}\}/,dmx.reExpressionReplace=/\{\{(.+?)\}\}/g,dmx.reToggleAttribute=/^(checked|selected|disabled|required|hidden|async|autofocus|autoplay|default|defer|multiple|muted|novalidate|open|readonly|reversed|scoped)$/i,dmx.reDashAlpha=/-([a-z])/g,dmx.reUppercase=/[A-Z]/g,function(){const t=function(t){const e=history[t];return function(){const n=e.apply(this,arguments),i=new Event(t.toLowerCase());return i.arguments=arguments,window.dispatchEvent(i),n}};history.pushState=t("pushState"),history.replaceState=t("replaceState")}(),dmx.appConnect=function(t,e){if(dmx.app)return alert("App already running!");if(t){history.replaceState({title:document.title},""),window.onpopstate=function(t){setTimeout((()=>{t.state&&t.state.title&&(document.title=t.state.title),dmx.requestUpdate()}),0)},window.onhashchange=function(){dmx.requestUpdate()};var n=dmx.Component("app");dmx.app=new n(t,dmx.global),dmx.app.$update(),e&&e()}else e&&e()},document.documentElement.style.visibility="hidden",document.addEventListener("DOMContentLoaded",(()=>{Promise.all(dmx.__startup).then((()=>{var t=document.querySelector(':root[dmx-app], [dmx-app], :root[is="dmx-app"], [is="dmx-app"]');dmx.appConnect(t,(function(){document.documentElement.style.visibility="",t&&t.removeAttribute("dmx-app")}))}))})),dmx.useHistory=window.history&&window.history.pushState,dmx.extend=function(){var t={},e=!1,n=0,i=arguments.length;"[object Boolean]"===Object.prototype.toString.call(arguments[0])&&(e=arguments[0],n++);for(var r=function(n){for(var i in n)"__proto__"!=i&&Object.prototype.hasOwnProperty.call(n,i)&&(e&&"[object Object]"===Object.prototype.toString.call(n[i])?t[i]=dmx.extend(!0,t[i],n[i]):null!=n[i]&&(t[i]=n[i]))};n<i;n++){var s=arguments[n];r(s)}return t},dmx.noop=function(){},dmx.isset=function(t){return void 0!==v},dmx.parseDate=function(t){if("string"==typeof t){var e,n=0,i=[1,4,5,6,7,10,11];if("now"==t.toLowerCase())return new Date;if(e=/^(\d{4}|[+\-]\d{6})(?:-(\d{2})(?:-(\d{2}))?)?(?:[T ](\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{3}))?)?(?:(Z)|([+\-])(\d{2})(?::(\d{2}))?)?)?$/.exec(t)){for(var r,s=0;r=i[s];++s)e[r]=+e[r]||0;return e[2]=(+e[2]||1)-1,e[3]=+e[3]||1,void 0===e[8]?new Date(e[1],e[2],e[3],e[4],e[5],e[6],e[7]):("Z"!==e[8]&&void 0!==e[9]&&(n=60*e[10]+e[11],"+"===e[9]&&(n=0-n)),new Date(Date.UTC(e[1],e[2],e[3],e[4],e[5]+n,e[6],e[7])))}if(e=/^(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{3}))?)?(?:(Z)|([+\-])(\d{2})(?::(\d{2}))?)?$/.exec(t)){var a=new Date;return"Z"===e[5]?(a.setUTCHours(+e[1]||0),a.setUTCMinutes(+e[2]||0),a.setUTCSeconds(+e[3]||0),a.setUTCMilliseconds(+e[4]||0)):(a.setHours(+e[1]||0),a.setMinutes(+e[2]||0),a.setSeconds(+e[3]||0),a.setMilliseconds(+e[4]||0)),a}return new Date(t)}return"number"==typeof t?new Date(1e3*t):new Date("")},dmx.array=function(t){return null==t?[]:Array.prototype.slice.call(t)},dmx.hashCode=function(t){if(null==t)return 0;var e,n=JSON.stringify(t),i=0;for(e=0;e<n.length;e++)i=(i<<5)-i+n.charCodeAt(e),i&=i;return Math.abs(i)},dmx.randomizer=function(t){return t=+t||0,function(){return(t=(9301*t+49297)%233280)/233280}},dmx.repeatItems=function(t){const e=[];if(t)if("object"==typeof t)if(Array.isArray(t))for(let n=0,i=t.length;n<i;n++){const i=dmx.clone(t[n]);e.push(Object.assign({},i,{$key:n,$index:n,$value:i}))}else{let n=0;for(const i in t)if(t.hasOwnProperty(i)){const r=dmx.clone(t[i]);e.push(Object.assign({},r,{$key:i,$index:n,$value:r})),n++}}else if("number"==typeof t)for(let n=0;n<t;n++)e.push({$key:String(n),$index:n,$value:n+1});return e},dmx.escapeRegExp=function(t){return t.replace(/[\\^$*+?.()|[\]{}]/g,"\\$&")},dmx.validate=function(t){return"FORM"==t.tagName&&Array.from(t.elements).forEach((t=>t.dirty=!0)),t.checkValidity()},dmx.validateReset=function(t){},(()=>{const t=[];window.addEventListener("message",(e=>{if(e.source===window&&"dmxNextTick"===e.data&&t.length){const e=t.shift();e.fn.call(e.context)}})),dmx.nextTick=(e,n)=>{t.push({fn:e,context:n}),window.postMessage("dmxNextTick","*")}})(),dmx.requestUpdate=function(){var t=!1,e=new Set;return function(n){e.add(n||"*"),t||(t=!0,dmx.nextTick((function(){if(t=!1,dmx.app){var n=new Set(e);e.clear(),dmx.app.$update(n)}})))}}(),dmx.debounce=function(t,e){let n;return function(){const i=()=>{t.apply(this,arguments)};e?(clearTimeout(n),n=setTimeout(i,e)):(cancelAnimationFrame(n),n=requestAnimationFrame(i))}},dmx.throttle=function(t,e){let n,i=!1;return function(){if(n=Array.from(arguments),!i){const r=()=>{i=!1,n&&t.apply(this,n)};t.apply(this,n),n=void 0,i=!0,e?setTimeout(r,e):requestAnimationFrame(r)}}},dmx.keyCodes={bs:8,tab:9,enter:13,esc:27,space:32,left:37,up:38,right:39,down:40,delete:46,backspace:8,pause:19,capslock:20,escape:27,pageup:33,pagedown:34,end:35,home:36,arrowleft:37,arrowup:38,arrowright:39,arrowdown:40,insert:45,numlock:144,scrolllock:145,semicolon:186,equal:187,comma:188,minus:189,period:190,slash:191,backquote:192,bracketleft:219,backslash:220,bracketright:221,quote:222,numpad0:96,numpad1:97,numpad2:98,numpad3:99,numpad4:100,numpad5:101,numpad6:102,numpad7:103,numpad8:104,numpad9:105,numpadmultiply:106,numpadadd:107,numpadsubstract:109,numpaddivide:111,f1:112,f2:113,f3:114,f4:115,f5:116,f6:117,f7:118,f8:119,f9:120,f10:121,f11:122,f12:123,digit0:48,digit1:49,digit2:50,digit3:51,digit4:52,digit5:53,digit6:54,digit7:55,digit8:56,digit9:57,keya:[65,97],keyb:[66,98],keyc:[67,99],keyd:[68,100],keye:[69,101],keyf:[70,102],keyg:[71,103],keyh:[72,104],keyi:[73,105],keyj:[74,106],keyk:[75,107],keyl:[76,108],keym:[77,109],keyn:[78,110],keyo:[79,111],keyp:[80,112],keyq:[81,113],keyr:[82,114],keys:[83,115],keyt:[84,116],keyu:[85,117],keyv:[86,118],keyw:[87,119],keyx:[88,120],keyy:[89,121],keyz:[90,122]},dmx.eventListener=function(t,e,n,i){let r,s;const a=function(t){if((!i.self||t.target===t.currentTarget)&&(!i.ctrl||t.ctrlKey)&&(!i.alt||t.altKey)&&(!i.shift||t.shiftKey)&&(!i.meta||t.metaKey)&&(!(t.originalEvent||t).nsp||Object.keys(i).includes((t.originalEvent||t).nsp))){if((t.originalEvent||t)instanceof MouseEvent){if(null!=i.button&&t.button!=(parseInt(i.button,10)||0))return;if(i.button0&&0!=t.button)return;if(i.button1&&1!=t.button)return;if(i.button2&&2!=t.button)return;if(i.button3&&3!=t.button)return;if(i.button4&&4!=t.button)return}if((t.originalEvent||t)instanceof KeyboardEvent){var e=[];Object.keys(i).forEach((function(t){var n=parseInt(t,10);n?e.push(n):dmx.keyCodes[t]&&e.push(dmx.keyCodes[t])}));for(var a=0;a<e.length;a++)if(Array.isArray(e[a])){if(!e[a].includes(t.which))return}else if(t.which!==e[a])return}if(i.stop&&t.stopPropagation(),i.prevent&&t.preventDefault(),t.originalEvent&&(t=t.originalEvent),t.$data||(t.$data={}),t instanceof MouseEvent&&(t.$data.altKey=t.altKey,t.$data.ctrlKey=t.ctrlKey,t.$data.metaKey=t.metaKey,t.$data.shiftKey=t.shiftKey,t.$data.pageX=t.pageX,t.$data.pageY=t.pageY,t.$data.x=t.x||t.clientX,t.$data.y=t.y||t.clientY,t.$data.button=t.button),t instanceof WheelEvent&&(t.$data.deltaX=t.deltaX,t.$data.deltaY=t.deltaY,t.$data.deltaZ=t.deltaZ,t.$data.deltaMode=t.deltaMode),window.PointerEvent&&t instanceof PointerEvent&&(t.$data.pointerId=t.pointerId,t.$data.width=t.width,t.$data.height=t.height,t.$data.pressure=t.pressure,t.$data.tangentialPressure=t.tangentialPressure,t.$data.tiltX=t.tiltX,t.$data.tiltY=t.tiltY,t.$data.twist=t.twist,t.$data.pointerType=t.pointerType,t.$data.isPrimary=t.isPrimary),window.TouchEvent&&t instanceof TouchEvent){const e=t=>({identifier:t.identifier,screenX:t.screenX,screenY:t.screenY,clientX:t.clientX,clientY:t.clientY,pageX:t.pageX,pageY:t.pageY});t.$data.altKey=t.altKey,t.$data.ctrlKey=t.ctrlKey,t.$data.metaKey=t.metaKey,t.$data.shiftKey=t.shiftKey,t.$data.touches=Array.from(t.touches).map(e),t.$data.changedTouches=Array.from(t.changedTouches).map(e),t.$data.targetTouches=Array.from(t.targetTouches).map(e),t.$data.rotation=t.rotation,t.$data.scale=t.scale}if(t instanceof KeyboardEvent&&(t.$data.altKey=t.altKey,t.$data.ctrlKey=t.ctrlKey,t.$data.metaKey=t.metaKey,t.$data.shiftKey=t.shiftKey,t.$data.location=t.location,t.$data.repeat=t.repeat,t.$data.code=t.code,t.$data.key=t.key),i.debounce)clearTimeout(r),r=setTimeout((()=>{n.apply(this,arguments)}),parseInt(i.debounce,10)||0);else{if(!i.throttle)return n.apply(this,arguments);s||(s=!0,n.apply(this,arguments),setTimeout((()=>{s=!1}),parseInt(i.throttle,10)||0))}}};i=i||{},window.Dom7&&1===t.nodeType?Dom7(t)[i.once?"once":"on"](e.replace(/-/g,"."),a,!!i.capture):window.jQuery&&!i.capture?jQuery(t)[i.once?"one":"on"](e.replace(/-/g,"."),a):t.addEventListener(e.replace(/-/g,"."),a,{capture:!!i.capture,once:!!i.once,passive:!!i.passive})},dmx.createClass=function(t,e){var n=function(){t.constructor&&t.constructor.apply(this,arguments)};return e&&e.prototype&&(n.prototype=Object.create(e.prototype)),Object.assign(n.prototype,t),n.prototype.constructor=n,n},dmx.Config=function(t){Object.assign(dmx.config,t)},dmx.Component=function(t,e){if(e){var n=dmx.Component(e.extends)||dmx.BaseComponent;e.initialData=Object.assign({},n.prototype.initialData,e.initialData),e.attributes=Object.assign({},n.prototype.attributes,e.attributes),e.methods=Object.assign({},n.prototype.methods,e.methods),e.events=Object.assign({},n.prototype.events,e.events),e.hasOwnProperty("constructor")||(e.constructor=function(t,e){n.call(this,t,e)}),e.type=t;var i=dmx.createClass(e,n);i.extends=e.extends,dmx.__components[t]=i}return dmx.__components[t]},dmx.Attribute=function(t,e,n){dmx.__attributes[e]||(dmx.__attributes[e]={}),dmx.__attributes[e][t]=n},dmx.Formatters=function(t,e){for(var n in dmx.__formatters[t]||(dmx.__formatters[t]={}),e)e.hasOwnProperty(n)&&(dmx.__formatters[t][n]=e[n])},dmx.Formatter=function(t,e,n){dmx.__formatters[t]||(dmx.__formatters[t]={}),dmx.__formatters[t][e]=n},dmx.Adapter=function(t,e,n){return dmx.__adapters[t]||(dmx.__adapters[t]={}),n&&(dmx.__adapters[t][e]=n),dmx.__adapters[t][e]},dmx.Actions=function(t){for(var e in t)t.hasOwnProperty(e)&&(dmx.__actions[e]=t[e])},dmx.Action=function(t,e){dmx.__actions[t]=e},dmx.Startup=function(t){dmx.__startup.add(t)},"app:"==document.location.protocol&&dmx.Startup(new Promise((t=>document.addEventListener("deviceready",t)))),function(){var t=function(e){if(!(this instanceof t))return new t(e);if(e instanceof t)return e;if(!e)return this;var n=e.length;if(e.nodeType)this[0]=e,this.length=1;else{if("string"==typeof e)return t(document.querySelectorAll(e));if(n)for(var i=0;i<n;i++)e[i]&&e[i].nodeType&&(this[this.length]=e[i],this.length++)}return this};t.prototype={constructor:t,length:0,addClass:function(t){for(var e=0;e<this.length;e++)this[e].classList.add(t);return this},removeClass:function(t){for(var e=0;e<this.length;e++)this[e].classList.remove(t);return this},toggleClass:function(t){for(var e=0;e<this.length;e++)this[e].classList.toggle(t);return this},hasClass:function(t){return!!this[0]&&this[0].classList.contains(t)},attr:function(t,e){if(1===arguments.length&&"string"==typeof t)return this[0]&&this[0].getAttribute(t);for(var n=0;n<this.length;n++)if(2===arguments.length)this[n].setAttribute(t,e);else for(var i in t)t.hasOwnProperty(i)&&this[n].setAttribute(i,t[i]);return this},removeAttr:function(t){for(var e=0;e<this.length;e++)this[e].removeAttribute(t);return this},prop:function(t,e){if(1===arguments.length&&"string"==typeof t)return this[0]&&this[0][t];for(var n=0;n<this.length;n++)if(2===arguments.length)this[n][t]=e;else for(var i in t)t.hasOwnProperty(i)&&(this[n][i]=t[i]);return this},css:function(t,e){if(1===arguments.length&&"string"==typeof t)return this[0]&&window.getComputedStyle(this[0],null).getPropertyValue(t);for(var n=0;n<this.length;n++)if(2===arguments.length)this[n].style.setProperty(t,e);else for(var i in t)t.hasOwnProperty(i)&&this[n].style.setProperty(i,t[i]);return this},each:function(t,e){if(!t)return this;for(var n=0;n<this.length;n++)if(!1===t.call(e||this[n],n,this[n]))return this;return this},append:function(){for(var e=0;e<arguments.length;e++)for(var n=t(arguments[e]),i=0;i<n.length;i++)this[0].appendChild(n[i]);return this},appendTo:function(e){return t(e).append(this),this},detach:function(){for(var t=0;t<this.length;t++)this[t].parentNode&&this[t].parentNode.removeChild(this[t]);return this},empty:function(){for(var t=0;t<this.length;t++)this[t].innerHTML="";return this}},dmx.dom={get:function(e){return t(document.getElementById(e))},select:function(e){return t(e)},create:function(e){var n=document.createElement(e);return t(n)},contains:function(t){return document.documentElement.contains(t)},walk:function(t,e,n){if(t){if(!1===e.call(n,t))return;t.hasChildNodes()&&Array.prototype.slice.call(t.childNodes,0).forEach((function(t){dmx.dom.walk(t,e,n)}))}},getAttributes:function(t){var e=[];if(1==t.nodeType)for(var n=0;n<t.attributes.length;n++){var i=t.attributes[n];if(i&&i.specified&&dmx.rePrefixed.test(i.name)){var r=i.name.substr(4),s=null,a={};r.split(".").forEach((function(t,e){if(0===e)r=t;else{var n=t.indexOf(":");n>0?a[t.substr(0,n)]=t.substr(n+1):a[t]=!0}}));var o=r.indexOf(":");o>0&&(s=r.substr(o+1),r=r.substr(0,o)),e.push({name:r,fullName:i.name,value:i.value,argument:s,modifiers:a})}}return e},remove:function(t){Array.isArray(t)?t.forEach((function(t){dmx.dom.remove(t)})):t.remove()},replace:function(t,e){t.parentNode&&t.parentNode.replaceChild(e,t)}}}(),function(){var t={},e={Boolean:"boolean",Null:"null",Undefinec:"undefined",Number:"number",BigInt:"number",String:"string",Date:"date",RegExp:"regexp",Blob:"blob",File:"file",FileList:"filelist",ArrayBuffer:"arraybuffer",ImageBitmap:"imagebitmap",ImageData:"imagedata",Array:"array",Object:"object",Map:"map",Set:"set",DataView:"array",Int8Array:"array",Uint8Array:"array",Uint8ClampedArray:"array",Int16Array:"array",Uint16Array:"array",Int32Array:"array",Uint32Array:"array",Float32Array:"array",Float64Array:"array",BigInt64Array:"array",BigUint64Array:"array"},n={"{":"L_CURLY","}":"R_CURLY","(":"L_PAREN",")":"R_PAREN","[":"L_BRACKET","]":"R_BRACKET",".":"PERIOD",",":"COMMA",";":"SEMI",":":"COLON","?":"QUESTION","+":"ADDICTIVE","-":"ADDICTIVE","*":"MULTIPLICATIVE","/":"MULTIPLICATIVE","%":"MULTIPLICATIVE","===":"EQUALITY","!==":"EQUALITY","==":"EQUALITY","!=":"EQUALITY","<":"RELATIONAL",">":"RELATIONAL","<=":"RELATIONAL",">=":"RELATIONAL",in:"RELATIONAL","&&":"LOGICAL_AND","||":"LOGICAL_OR","!":"LOGICAL_NOT","&":"BITWISE_AND","|":"BITWISE_OR","^":"BITWISE_XOR","~":"BITWISE_NOT","<<":"BITWISE_SHIFT",">>":"BITWISE_SHIFT",">>>":"BITWISE_SHIFT"},i={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"',"`":"`"},r={"**":function(t,e){return Math.pow(t(),e())},"??":function(t,e){return null==(t=t())?e():t},in:function(t,e){return t()in e()},"?":function(t,e,n){return t()?e():n()},"+":function(t,e){return t=t(),e=e(),null==t?e:null==e?t:t+e},"-":function(t,e){return t()-e()},"*":function(t,e){return t()*e()},"/":function(t,e){return t()/e()},"%":function(t,e){return t()%e()},"===":function(t,e){return t()===e()},"!==":function(t,e){return t()!==e()},"==":function(t,e){return t()==e()},"!=":function(t,e){return t()!=e()},"<":function(t,e){return t()<e()},">":function(t,e){return t()>e()},"<=":function(t,e){return t()<=e()},">=":function(t,e){return t()>=e()},"&&":function(t,e){return t()&&e()},"||":function(t,e){return t()||e()},"&":function(t,e){return t()&e()},"|":function(t,e){return t()|e()},"^":function(t,e){return t()^e()},"<<":function(t,e){return t()<<e()},">>":function(t,e){return t()>>e()},">>>":function(t,e){return t()>>>e()},"~":function(t){return~t()},"!":function(t){return!t()}},s={this:function(t){return function(){return t.data}},undefined:function(){return function(){}},null:function(){return function(){return null}},true:function(){return function(){return!0}},false:function(){return function(){return!1}},_:function(){return function(){return{__dmxScope__:!0}}}},a=function(){return 0};dmx.getType=function(t){return e[Object.prototype.toString.call(t).slice(8,-1)]},dmx.getIdents=function(t){if("string"!=typeof t)return[];let e=[];if(t.includes("{{")){let n;for(;null!=(n=dmx.reExpressionReplace.exec(t));)e=e.concat(dmx.lexer(n[1]))}else e=dmx.lexer(t);return e.reduce(((t,e)=>("IDENT"==e.name?t.push(e.value):"STRING"==e.name&&e.value.startsWith("{{")&&(t=t.concat(dmx.getIdents(e.value))),t)),[])},dmx.lexer=function(e){if(t[e])return t[e];for(var r,s,a,o,d,u,c=[],h=0,l=!0;h<e.length;){if(a=h,v(o=p())&&l)s="STRING",r=w(o),l=!1;else if((x(o)||m(".")&&f()&&x(f()))&&l)s="NUMBER",r=_(),l=!1;else if(y(o)&&l)s="IDENT",r=$(),m("(")&&(s="METHOD"),l=!1;else if(m("/")&&l&&("("==r||","==r||"?"==r||":"==r)&&A())s="REGEXP",r=k(),l=!1;else{if(b(o)){h++;continue}if((u=p(3))&&n[u])s=n[u],r=u,l=!0,h+=3;else if((d=p(2))&&n[d])s=n[d],r=d,l=!0,h+=2;else{if(!n[o])throw Error("Lexer Error: Unexpected token '"+o+"' at column "+h+" in expression ["+e+"]");s=n[o],r=o,l=!0,h++}}c.push({name:s,index:a,value:r})}return t[e]=c,c;function p(t){return t>1?e.substr(h,t):e[h]}function f(t){return h+(t=t||1)<e.length&&e[h+t]}function m(t){return-1!=t.indexOf(o)}function v(t){return'"'==t||"'"==t||"`"==t}function x(t){return t>="0"&&t<="9"}function y(t){return t>="a"&&t<="z"||t>="A"&&t<="Z"||"_"==t||"$"==t}function g(t){return y(t)||x(t)}function b(t){return" "==t||"\r"==t||"\t"==t||"\n"==t||"\v"==t||" "==t}function E(t){return"-"==t||"+"==t||x(t)}function w(t){var n="",r=!1;for(h++;h<e.length;){if(o=p(),r){if("u"==o){h++;var s=p(4);if(s.match(/[\da-f]{4}/i))throw Error("Invalid unicode escape at column "+h+" in expression ["+e+"]");n+=String.fromCharCode(parseInt(s,16)),h+=3}else{var a=i[o];n+=a||o}r=!1}else if("\\"==o)r=!0;else{if(o==t)return h++,"`"==t&&(n="{{"+n+"}}"),n;n+=o}h++}throw Error("Unterminated quote in expression ["+e+"]")}function _(){for(var t="",n=!1;h<e.length;){if(o=p(),m(".")&&f()&&x(f())||x(o))t+=o;else{var i=f();if(m("eE")&&E(i))t+="e",n=!0;else{if(!(E(o)&&i&&x(i)&&n)){if(!E(o)||i&&x(i)||!n)break;throw Error('Invalid exponent "'+o+'" in expression ['+e+"]")}t+=o,n=!1}}h++}return+t}function $(){for(var t="";h<e.length&&g(o=p());)t+=o,h++;return t}function k(){var t="",n="",i=!1;for(h++;h<e.length;){if(o=p(),i)i=!1;else if("\\"==o)i=!0;else if("/"==o){for(h++;-1!="ign".indexOf(o=p());)n+=o,h++;return new RegExp(t,n)}t+=o,h++}throw Error("Unterminated regexp in expression ["+e+"]")}function A(){var t=h,e=!0;try{k()}catch(t){e=!1}return h=t,o="/",e}},dmx.parse=function(t,e){if(e=e||dmx.app,dmx.reExpression.test(t))return"{{"==t.substr(0,2)&&"}}"==t.substr(-2)&&-1==t.indexOf("{{",2)?dmx.parse(t.substring(2,t.length-2),e):t.replace(dmx.reExpressionReplace,(function(t,n){var i=dmx.parse(n,e);return null==i?"":i}));if(t.trim()){var n;try{var i,o=dmx.lexer(t).slice(0);n=function(){var t=[];for(;;)if(o.length>0&&!(u("R_PAREN")||u("R_BRACKET")||u("R_CURLY")||u("COMMA")||u("SEMI"))&&t.push(p()),!c("COMMA")&&!c("SEMI"))return(1==t.length?t[0]:e)();function e(){for(var e,n=0;n<t.length;n++){var i=t[n];i&&(e=i())}return e}}()}catch(t){console.error(t)}return n}function d(){if(0===o.length)throw Error("Unexpected end in expression ["+t+"]");return o[0]}function u(t){if(o.length>0){var e=o[0];if(!t||e.name==t)return e}return!1}function c(t){var e=u(t);return!!e&&(o.shift(),e)}function h(e){if(!c(e))throw Error("Unexpected token, expecting ["+e+"] in expression ["+t+"]")}function l(t){var n=Array.prototype.slice.call(arguments,1);return function(){return r.hasOwnProperty(t)?r[t].apply(e,n):t}}function p(){return f()}function f(){var e,n=function(){var t,e=m();for(;;){if(!(t=c("LOGICAL_OR")))return e;e=l(t.value,e,m())}}();if(c("QUESTION")){if(e=f(),c("COLON"))return l("?",n,e,f());throw Error('Expecting a ":" in expression ['+t+"]")}return n}function m(){var t,e=function(){var t,e=v();(t=c("BITWISE_OR"))&&(e=l(t.value,e,v()));return e}();return(t=c("LOGICAL_AND"))&&(e=l(t.value,e,m())),e}function v(){var t,e=x();return(t=c("BITWISE_XOR"))&&(e=l(t.value,e,x())),e}function x(){var t,e=y();return(t=c("BITWISE_AND"))&&(e=l(t.value,e,x())),e}function y(){var t,e=g();return(t=c("EQUALITY"))&&(e=l(t.value,e,y())),e}function g(){var t,e=function(){var t,e=b();for(;t=c("BITWISE_SHIFT");)e=l(t.value,e,b());return e}();return(t=c("RELATIONAL"))&&(e=l(t.value,e,g())),e}function b(){for(var t,e=E();t=c("ADDICTIVE");)e=l(t.value,e,E());return e}function E(){for(var t,e=w();t=c("MULTIPLICATIVE");)e=l(t.value,e,w());return e}function w(){var t;return(t=c("ADDICTIVE"))?"+"==t.value?_():l(t.value,a,w()):(t=c("LOGICAL_NOT"))?l(t.value,w()):_()}function _(){var n,r;if(c("L_PAREN"))n=p(),h("R_PAREN");else if(c("L_CURLY")){var a={};if("R_CURLY"!=d().name)do{var o=c().value;h("COLON"),a[o]=p()()}while(c("COMMA"));n=l(a),h("R_CURLY")}else if(c("L_BRACKET")){var f=[];if("R_BRACKET"!=d().name)do{f.push(p()())}while(c("COMMA"));n=l(f),h("R_BRACKET")}else if(c("PERIOD"))n=u()?A(l(e.data)):l(e.data);else{var m=c();if(!1===m)throw Error("Not a primary expression ["+t+"]");n="IDENT"==m.name?s.hasOwnProperty(m.value)?s[m.value](e):function(){return e.get(m.value)}:"METHOD"==m.name?l(dmx.__formatters.global[m.value]||function(){window.warn&&console.warn("Formatter "+m.value+" in expression ["+t+"] doesn't exist")}):function(){return m.value}}for(;r=c("L_PAREN")||c("L_BRACKET")||c("PERIOD");)if("("==r.value)n=$(n,i);else if("["==r.value)i=n,n=k(n);else{if("."!=r.value)throw Error("Parse Error in expression ["+t+"]");i=n,n=A(n)}return i=null,n}function $(t,n){var i=[];if("R_PAREN"!=d().name)do{i.push(p())}while(c("COMMA"));return h("R_PAREN"),function(){var r=[];n&&r.push(n());for(var s=0;s<i.length;s++)r.push(i[s]());return(t()||dmx.noop).apply(e,r)}}function k(t){var n=p();return h("R_BRACKET"),function(){var i=t(),r=n();if("object"==typeof i&&null!=i)return i.__dmxScope__?e.get(r):"map"==dmx.getType(i)?i.get(r):i[r]}}function A(n){var i=c();return function(){var r=n(),s=dmx.getType(r);return"METHOD"==i.name?"map"==s&&"function"==typeof r.get("__"+i.value)?(console.log("function",i.value,r.get("__"+i.value)),r.get("__"+i.value)):"object"==s&&"function"==typeof r["__"+i.value]?r["__"+i.value]:dmx.__formatters[s]&&dmx.__formatters[s][i.value]?dmx.__formatters[s][i.value]:dmx.__formatters.any&&dmx.__formatters.any[i.value]?dmx.__formatters.any[i.value]:function(){null!=r&&console.warn&&console.warn("Formatter "+i.value+" in expression ["+t+"] doesn't exist for type "+s)}:r&&r.__dmxScope__?e.get(i.value):"map"==s?r.get(i.value):r&&r.hasOwnProperty(i.value)?r[i.value]:void 0}}}}(),dmx.global={data:{},seed:Math.random(),get:function(t){if(this.data.hasOwnProperty(t))return this.data[t]},set:function(t,e){if("object"!=typeof t)dmx.equal(this.data[t],e)||(this.data[t]=e,dmx.requestUpdate(t));else for(var n in t)t.hasOwnProperty(n)&&this.set(n,t[n])},del:function(t){delete this.data[t],dmx.requestUpdate(t)}},dmx.DataScope=function(t,e){return"object"!=typeof t&&(t={$value:t}),{parent:e||dmx.global,data:t,seed:Math.random(),get:function(t){return this.data.hasOwnProperty(t)?this.data[t]:this.parent?"parent"==t?this.parent.data:this.parent.get(t):void 0},set:function(t,e){if("object"!=typeof t)dmx.equal(this.data[t],e)||(this.data[t]=e);else for(var n in t)t.hasOwnProperty(n)&&this.set(n,t[n])},del:function(t){delete this.data[t]}}},dmx.BaseComponent=dmx.createClass({constructor:function(t,e){this.$node=t,this.parent=e,this.bindings={},this.propBindings={},this.children=[],this.listeners={},this.props={},this.data={},this.seed=Math.random(),this.name=t.getAttribute("id")||t.getAttribute("name")||this.type.toLowerCase().replace(/^dmx-/,""),this.name=this.name.replace(/[^\w]/g,""),this.dmxDomId=t.getAttribute("dmxDomId");try{this.$parseAttributes(t),this.$initialData(),this.render(t),!1!==this.beforeMount(t)&&(this.$mount(t),this.$node&&(this.$customAttributes("mounted",this.$node),this.dmxDomId&&this.$node.setAttribute("dmxDomId",this.dmxDomId),this.$node.dmxComponent=this,this.$node.dmxRendered=!0),this.dispatchEvent("mount"),this.mounted())}catch(t){console.error(t)}},tag:null,initialData:{},attributes:{},methods:{},events:{mount:Event,destroy:Event},render:function(t){this.$node&&this.$parse()},find:function(t){if(this.name==t)return this;for(var e=0;e<this.children.length;e++){var n=this.children[e].find(t);if(n)return n}return null},__find:function(t){if(this.dmxDomId==t)return this;for(var e=0;e<this.children.length;e++){var n=this.children[e].__find(t);if(n)return n}return null},__replace:function(t){var e=this.__find(t);if(e){e.$destroy();var n=document.querySelector('[dmxDomId="'+t+'"]');if(n){var i=e.parent.children.indexOf(e),r=dmx.__components[e.data.$type];if(i>-1&&r){var s=new r(n,e.parent);e.parent.children.splice(i,1,s),s.name&&e.parent.add(s.name,s.data)}}dmx.requestUpdate()}},__remove:function(t){var e=this.__find(t);if(e){e.$destroy();var n=e.parent.children.indexOf(this);n>-1&&e.parent.children.splice(n,1),dmx.requestUpdate()}},beforeMount:dmx.noop,mounted:dmx.noop,beforeUpdate:dmx.noop,update:dmx.noop,updated:dmx.noop,beforeDestroy:dmx.noop,destroyed:dmx.noop,addEventListener:function(t,e){t in this.listeners||(this.listeners[t]=new Set),this.listeners[t].add(e)},removeEventListener:function(t,e){t in this.listeners&&this.listeners[t].delete(e)},dispatchEvent:function(t,e,n,i){if("string"==typeof t)try{var r=this.events[t];t=new r(t,e)}catch(n){var s=t;if((t=document.createEvent("CustomEvent")).initEvent(s,e&&e.bubbles,e&&e.cancelable),!(t instanceof Event))return console.warn("Unknown event "+t,this.events),!1;var a=t.preventDefault;t.preventDefault=function(){a.call(this);try{Object.defineProperty(this,"defaultPrevented",{get:function(){return!0}})}catch(t){this.defaultPrevented=!0}return t}}if(!(t.type in this.listeners))return!0;t.nsp=i,t.target=this,t.$data=n||{};for(let e of this.listeners[t.type])!1===e.call(this,t)&&t.preventDefault();return!t.defaultPrevented},$addChild:function(t,e){var n=new(0,dmx.__components[t])(e,this);this.children.push(n),n.name&&(this.data[n.name]&&dmx.debug&&console.warn('Duplicate name "'+n.name+'" found, component not added to scope.'),this.set(n.name,n.data))},$customAttributes:function(t,e){dmx.dom.getAttributes(e).forEach((function(n){dmx.__attributes[t][n.name]&&(e.removeAttribute(n.fullName),dmx.__attributes[t][n.name].call(this,e,n))}),this)},$parse:function(t){if(t=t||this.$node)if(3!==t.nodeType)1===t.nodeType&&(dmx.config.mapping&&Object.keys(dmx.config.mapping).forEach((function(e){dmx.array(t.querySelectorAll(e)).forEach((function(t){t.hasAttribute("is")||t.setAttribute("is","dmx-"+dmx.config.mapping[e])}))})),dmx.dom.walk(t,(function(t){if(t!=this.$node){if(1===t.nodeType){var e=t.tagName.toLowerCase(),n=dmx.dom.getAttributes(t);if(t.hasAttribute("is")&&(e=t.getAttribute("is")),dmx.reIgnoreElement.test(e))return!1;if(this.$customAttributes("before",t),-1!==n.findIndex((function(t){return"repeat"===t.name})))return!1;if(dmx.rePrefixed.test(e))return(e=e.replace(/^dmx-/i,""))in dmx.__components?(t.isComponent=!0,t.dmxRendered?window.__WAPPLER__&&t.dmxComponent&&t.dmxComponent.$parse&&(dmx.reIgnoreElement.test(t.tagName)||t.dmxComponent.$parse()):this.$addChild(e,t),!1):void console.warn("Unknown component found! "+e);this.$customAttributes("mounted",t)}if(3===t.nodeType&&dmx.reExpression.test(t.nodeValue)){var i=t.nodeValue;"{{"==i.substr(0,2)&&"}}"==i.substr(-2)&&-1==i.indexOf("{{",2)&&(i=i.substring(2,i.length-2)),this.$addBinding(i,(function(e,n){t.nodeValue=e}))}}}),this));else if(dmx.reExpression.test(t.nodeValue)){var e=t.nodeValue;"{{"==e.substr(0,2)&&"}}"==e.substr(-2)&&-1==e.indexOf("{{",2)&&(e=e.substring(2,e.length-2)),this.$addBinding(e,(function(e,n){t.nodeValue=e}))}},$update:function(t){try{if(!1!==this.beforeUpdate(t)){const e=dmx.clone(this.props),n=(this.$updateBindings(this.bindings,t),this.$updatePropBindings(t));try{this.update(e,n)}catch(t){console.error(t)}this.children.forEach((function(e){e.$update(t)})),this.updated()}}catch(t){console.error(t)}},$canSkip:function(t,e){if(e&&!e.has("*")){for(const n of t.idents)if(e.has(n))return!1;return!0}return!1},$updateBindings:function(t,e){let n=!1;for(const i in t)if(t.hasOwnProperty(i)){const r=t[i];if(this.$canSkip(r,e))continue;const s=dmx.parse(i,this);if(!dmx.equal(s,r.value)){for(const t of r.callbacks)t.call(this,s,r.value);n=!0,r.value=dmx.clone(s)}}return n},$updatePropBindings:function(t){const e=new Set;for(const n in this.propBindings)if(this.propBindings.hasOwnProperty(n)){const i=this.propBindings[n];if(this.$canSkip(i,t))continue;const r=dmx.parse(i.expression,this);dmx.equal(r,i.value)||(i.callback.call(this,r),i.value=dmx.clone(r),e.add(n))}return e},$parseAttributes:function(t){var e=this;this.attributes&&(Object.keys(this.attributes).forEach((function(n){var i=e.attributes[n],r=i.default;if(t.hasAttribute(n)&&(i.type==Boolean?r=!0:(r=t.getAttribute(n),i.type==Number&&r&&!isNaN(Number(r))&&(r=Number(r)),i.type==String&&(r=String(r)),i.validate&&!i.validate(r)&&(r=i.default)),t.removeAttribute(n)),t.hasAttribute("dmx-bind:"+n)){const e=t.getAttribute("dmx-bind:"+n),i=this.$propBinding(n).bind(this);this.propBindings[n]={expression:e,callback:i,idents:dmx.getIdents(e),value:null},t.removeAttribute("dmx-bind:"+n)}e.props[n]=dmx.clone(r)}),this),this.$updatePropBindings()),this.events&&Object.keys(this.events).forEach((function(n){t.hasAttribute("on"+n)&&(dmx.eventListener(e,n,Function("event",t.getAttribute("on"+n)),{}),t.removeAttribute("on"+n))})),dmx.dom.getAttributes(t).forEach((function(n){"on"==n.name&&this.events[n.argument]&&(dmx.eventListener(e,n.argument,(function(t){return t.originalEvent&&(t=t.originalEvent),dmx.parse(n.value,dmx.DataScope({$event:t.$data,$originalEvent:t},e))}),n.modifiers),t.removeAttribute(n.fullName))}),this)},$propBinding:function(t){var e=this.attributes[t],n=this;return function(i){void 0===i&&(i=e.default),e.type==Boolean&&(i=!!i),null!=i&&(e.type==Number&&(i=""===i||isNaN(Number(i))?e.default:Number(i)),e.type==String&&(i=String(i))),e.validate&&!e.validate(i)&&(i=e.default),n.props[t]=dmx.clone(i)}},$initialData:function(){Object.assign(this.data,{$type:this.type},"function"==typeof this.initialData?this.initialData():this.initialData),Object.keys(this.methods).forEach((function(t){var e=this;this.data["__"+t]=function(){return e.methods[t].apply(e,Array.prototype.slice.call(arguments,1))}}),this)},$mount:function(t){this.$placeholder&&this.$node&&dmx.dom.replace(this.$placeholder,this.$node)},$addBinding:function(t,e){this.bindings[t]=this.bindings[t]||{expression:t,value:dmx.parse(t,this),callbacks:[],idents:dmx.getIdents(t)},this.bindings[t].callbacks.push(e),e.call(this,this.bindings[t].value)},$destroy:function(){this.dispatchEvent("destroy"),this.beforeDestroy(),this.$destroyChildren(),this.parent&&this.parent.del(this.name),this.$node&&dmx.dom.remove(this.$node),this.destroyed()},$destroyChildren:function(){this.children.forEach((function(t){t.$destroy()})),this.children=[]},updateRelated:function(){if(this.parent){let t=this.parent;for(;t;)!t.data||"repeat"!=t.data.$type&&"form-repeat"!=t.data.$type||dmx.requestUpdate(t.name),t=t.parent}},get:function(t,e){return this.data.hasOwnProperty(t)?this.data[t]:this.parent&&!0!==e?"parent"==t?this.parent.data:this.parent.get(t):null},add:function(t,e){this.data[t]?Array.isArray(this.data[t])?this.data[t].push(e):this.data[t]=[this.data[t],e]:this.set(t,e),dmx.requestUpdate(t),dmx.requestUpdate(this.name),this.updateRelated()},set:function(t,e){if("object"!=typeof t)dmx.equal(this.data[t],e)||(this.data[t]=e,dmx.requestUpdate(t),dmx.requestUpdate(this.name),this.updateRelated());else for(var n in t)t.hasOwnProperty(n)&&this.set(n,t[n])},del:function(t){delete this.data[t],dmx.requestUpdate(t),dmx.requestUpdate(this.name),this.updateRelated()}}),function(){dmx.pathToRegexp=o,dmx.pathToRegexp.parse=e,dmx.pathToRegexp.compile=function(t,i){return n(e(t,i))},dmx.pathToRegexp.tokensToFunction=n,dmx.pathToRegexp.tokensToRegExp=a;var t=new RegExp(["(\\\\.)","(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?"].join("|"),"g");function e(e,n){for(var s,a=[],o=0,d=0,u="",c=n&&n.delimiter||"/",h=n&&n.whitelist||void 0,l=!1;null!==(s=t.exec(e));){var p=s[0],f=s[1],m=s.index;if(u+=e.slice(d,m),d=m+p.length,f)u+=f[1],l=!0;else{var v="",x=s[2],y=s[3],g=s[4],b=s[5];if(!l&&u.length){var E=u.length-1,w=u[E];(!h||h.indexOf(w)>-1)&&(v=w,u=u.slice(0,E))}u&&(a.push(u),u="",l=!1);var _="+"===b||"*"===b,$="?"===b||"*"===b,k=y||g,A=v||c;a.push({name:x||o++,prefix:v,delimiter:A,optional:$,repeat:_,pattern:k?r(k):"[^"+i(A===c?A:A+c)+"]+?"})}}return(u||d<e.length)&&a.push(u+e.substr(d)),a}function n(t){for(var e=new Array(t.length),n=0;n<t.length;n++)"object"==typeof t[n]&&(e[n]=new RegExp("^(?:"+t[n].pattern+")$"));return function(n,i){for(var r="",s=i&&i.encode||encodeURIComponent,a=0;a<t.length;a++){var o=t[a];if("string"!=typeof o){var d,u=n?n[o.name]:void 0;if(Array.isArray(u)){if(!o.repeat)throw new TypeError('Expected "'+o.name+'" to not repeat, but got array');if(0===u.length){if(o.optional)continue;throw new TypeError('Expected "'+o.name+'" to not be empty')}for(var c=0;c<u.length;c++){if(d=s(u[c],o),!e[a].test(d))throw new TypeError('Expected all "'+o.name+'" to match "'+o.pattern+'"');r+=(0===c?o.prefix:o.delimiter)+d}}else if("string"!=typeof u&&"number"!=typeof u&&"boolean"!=typeof u){if(!o.optional)throw new TypeError('Expected "'+o.name+'" to be '+(o.repeat?"an array":"a string"))}else{if(d=s(String(u),o),!e[a].test(d))throw new TypeError('Expected "'+o.name+'" to match "'+o.pattern+'", but got "'+d+'"');r+=o.prefix+d}}else r+=o}return r}}function i(t){return t.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1")}function r(t){return t.replace(/([=!:$/()])/g,"\\$1")}function s(t){return t&&t.sensitive?"":"i"}function a(t,e,n){for(var r=(n=n||{}).strict,a=!1!==n.start,o=!1!==n.end,d=n.delimiter||"/",u=[].concat(n.endsWith||[]).map(i).concat("$").join("|"),c=a?"^":"",h=0;h<t.length;h++){var l=t[h];if("string"==typeof l)c+=i(l);else{var p=l.repeat?"(?:"+l.pattern+")(?:"+i(l.delimiter)+"(?:"+l.pattern+"))*":l.pattern;e&&e.push(l),l.optional?l.prefix?c+="(?:"+i(l.prefix)+"("+p+"))?":c+="("+p+")?":c+=i(l.prefix)+"("+p+")"}}if(o)r||(c+="(?:"+i(d)+")?"),c+="$"===u?"$":"(?="+u+")";else{var f=t[t.length-1],m="string"==typeof f?f[f.length-1]===d:void 0===f;r||(c+="(?:"+i(d)+"(?="+u+"))?"),m||(c+="(?="+i(d)+"|"+u+")")}return new RegExp(c,s(n))}function o(t,n,i){return t instanceof RegExp?function(t,e){if(!e)return t;var n=t.source.match(/\((?!\?)/g);if(n)for(var i=0;i<n.length;i++)e.push({name:i,prefix:null,delimiter:null,optional:!1,repeat:!1,pattern:null});return t}(t,n):Array.isArray(t)?function(t,e,n){for(var i=[],r=0;r<t.length;r++)i.push(o(t[r],e,n).source);return new RegExp("(?:"+i.join("|")+")",s(n))}(t,n,i):function(t,n,i){return a(e(t,i),n,i)}(t,n,i)}}(),window.Hjson||(window.Hjson={},Hjson.parse=function(t){var e,n,i,r={'"':'"',"'":"'","\\":"\\","/":"/",b:"\b",f:"\f",n:"\n",r:"\r",t:"\t"};function s(t){return"{"===t||"}"===t||"["===t||"]"===t||","===t||":"===t}function a(t){var i,r=0,s=1;for(i=n-1;i>0&&"\n"!==e[i];i--,r++);for(;i>0;i--)"\n"===e[i]&&s++;throw new Error(t+" at line "+s+","+r+" >>>"+e.substr(n-r,20)+" ...")}function o(){return i=e.charAt(n),n++,i}function d(t){return e.charAt(n+t)}function u(t){for(var e="",n=i;o();){if(i===n)return o(),t&&"'"===n&&"'"===i&&0===e.length?(o(),c()):e;if("\\"===i)if(o(),"u"===i){for(var s=0,d=0;d<4;d++){o();var u,h=i.charCodeAt(0);i>="0"&&i<="9"?u=h-48:i>="a"&&i<="f"?u=h-97+10:i>="A"&&i<="F"?u=h-65+10:a("Bad \\u char "+i),s=16*s+u}e+=String.fromCharCode(s)}else{if("string"!=typeof r[i])break;e+=r[i]}else"\n"===i||"\r"===i?a("Bad string containing newline"):e+=i}a("Bad string")}function c(){for(var t="",e=0,n=0;;){var r=d(-n-5);if(!r||"\n"===r)break;n++}function s(){for(var t=n;i&&i<=" "&&"\n"!==i&&t-- >0;)o()}for(;i&&i<=" "&&"\n"!==i;)o();for("\n"===i&&(o(),s());;){if(i){if("'"===i){if(e++,o(),3===e)return"\n"===t.slice(-1)&&(t=t.slice(0,-1)),t;continue}for(;e>0;)t+="'",e--}else a("Bad multiline string");"\n"===i?(t+="\n",o(),s()):("\r"!==i&&(t+=i),o())}}function h(){if('"'===i||"'"===i)return u(!1);for(var t="",e=n,r=-1;;){if(":"===i)return t?r>=0&&r!==t.length&&(n=e+r,a("Found whitespace in your key name (use quotes to include)")):a("Found ':' but no key name (for an empty key name use quotes)"),t;i<=" "?i?r<0&&(r=t.length):a("Found EOF while looking for a key name (check your syntax)"):s(i)?a("Found '"+i+"' where a key name was expected (check your syntax or use quotes if the key name includes {}[],: or whitespace)"):t+=i,o()}}function l(){for(;i;){for(;i&&i<=" ";)o();if("#"===i||"/"===i&&"/"===d(0))for(;i&&"\n"!==i;)o();else{if("/"!==i||"*"!==d(0))break;for(o(),o();i&&("*"!==i||"/"!==d(0));)o();i&&(o(),o())}}}function p(t,e){var n,i,r="",s=0,a=!0,o=0;function d(){return i=t.charAt(o),o++,i}for(d(),"-"===i&&(r="-",d());i>="0"&&i<="9";)a&&("0"==i?s++:a=!1),r+=i,d();if(a&&s--,"."===i)for(r+=".";d()&&i>="0"&&i<="9";)r+=i;if("e"===i||"E"===i)for(r+=i,d(),"-"!==i&&"+"!==i||(r+=i,d());i>="0"&&i<="9";)r+=i,d();for(;i&&i<=" ";)d();return e&&(","!==i&&"}"!==i&&"]"!==i&&"#"!==i&&("/"!==i||"/"!==t[o]&&"*"!==t[o])||(i=0)),n=+r,i||s||!isFinite(n)?void 0:n}function f(t){function e(t,n){var i,r,s,a;switch(typeof t){case"string":t.indexOf(n)>=0&&(a=t);break;case"object":if("[object Array]"===Object.prototype.toString.apply(t))for(i=0,s=t.length;i<s;i++)a=e(t[i],n)||a;else for(r in t)Object.prototype.hasOwnProperty.call(t,r)&&(a=e(t[r],n)||a)}return a}function n(n){var i=e(t,n);return i?"found '"+n+"' in a string value, your mistake could be with:\n > "+i+"\n (unquoted strings contain everything up to the next line!)":""}return n("}")||n("]")}function m(){var t=[];try{if(o(),l(),"]"===i)return o(),t;for(;i;){if(t.push(x()),l(),","===i&&(o(),l()),"]"===i)return o(),t;l()}a("End of input while parsing an array (missing ']')")}catch(e){throw e.hint=e.hint||f(t),e}}function v(t){var e="",n={};try{if(t||o(),l(),"}"===i&&!t)return o(),n;for(;i;){if(e=h(),l(),":"!==i&&a("Expected ':' instead of '"+i+"'"),o(),n[e]=x(),l(),","===i&&(o(),l()),"}"===i&&!t)return o(),n;l()}if(t)return n;a("End of input while parsing an object (missing '}')")}catch(t){throw t.hint=t.hint||f(n),t}}function x(){switch(l(),i){case"{":return v();case"[":return m();case"'":case'"':return u(!0);default:return function(){var t=i;for(s(i)&&a("Found a punctuator character '"+i+"' when expecting a quoteless string (check your syntax)");;){o();var e="\r"===i||"\n"===i||""===i;if(e||","===i||"}"===i||"]"===i||"#"===i||"/"===i&&("/"===d(0)||"*"===d(0))){var n=t[0];switch(n){case"f":if("false"===t.trim())return!1;break;case"n":if("null"===t.trim())return null;break;case"t":if("true"===t.trim())return!0;break;default:if("-"===n||n>="0"&&n<="9"){var r=p(t);if(void 0!==r)return r}}if(e)return t.trim()}t+=i}}()}}function y(t){return l(),i&&a("Syntax error, found trailing characters"),t}if("string"!=typeof t)throw new Error("source is not a string");return e=t,n=0,i=" ",function(){switch(l(),i){case"{":return y(v());case"[":return y(m());default:return y(x())}}()}),dmx.Flow=dmx.createClass({constructor:function(t){if(!(this instanceof dmx.Flow))return new dmx.Flow(t);window.Promise||console.warn("Promises are not supported, flows can not be used"),this._execStep=this._execStep.bind(this),this.scope=new dmx.DataScope({},t),this.output={}},run:function(t){var e=this;return this.output={},this._exec(t.exec||t).then((function(){return dmx.debug&&console.debug("finished",e.output),e.output}))},_each:function(t,e){return Promise.resolve(t).then((function(t){return(t=Array.isArray(t)?t:[t]).reduce((function(n,i,r){return n.then((function(){return e(i,r,t.length).then((function(e){e&&(t[r]=e)}))}))}),Promise.resolve()).then((function(){return t}))}))},_exec:function(t){var e=this;if(t.steps){var n=this._each(t.steps,this._execStep);return t.catch&&n.catch((function(n){return e._each(t.catch,e._execStep)})),n}return this._each(t,this._execStep)},_execStep:function(t){var e=this;for(var n in dmx.debug&&console.debug("exec step",t),t){if(t.hasOwnProperty(n)&&dmx.__actions[n]){var i=dmx.__actions[n].bind(this),r=t[n];return dmx.debug&&console.debug("exec action",n,r),r.disabled?Promise.resolve():Promise.resolve(i(r)).then((function(t){r.name&&(dmx.debug&&console.debug("set data",r.name,t),e.scope.set(r.name,t),r.output&&(dmx.debug&&console.debug("set output",r.name,t),e.output[r.name]=t))}))}throw new Error("Action "+n+" was not found.")}},parse:function(t){if(null==t)return t;if("object"==typeof(t=t.valueOf())){var e=t.slice?[]:{};for(var n in t)t.hasOwnProperty(n)&&(e[n]=this.parse(t[n],this.scope));return e}return"string"==typeof t&&-1!=t.indexOf("{{")?dmx.parse(t,this.scope):t}}),dmx.Flow.run=function(t,e){return new dmx.Flow(e).run(t)},dmx.Component("app",{constructor:function(t,e){this.onload=this.onload.bind(this),dmx.BaseComponent.call(this,t,e)},initialData:{query:{}},attributes:{},methods:{},events:{ready:Event,load:Event},render:function(t){this.parseQuery(),this.$parse(),window.removeEventListener("load",this.onload),window.addEventListener("load",this.onload),dmx.nextTick((function(){this.dispatchEvent("ready")}),this)},update:function(){this.parseQuery()},onload:function(){this.dispatchEvent("load")},parseQuery:function(){var t="";window.location.search?t=window.location.search.substr(1):window.location.hash.indexOf("?")&&(t=window.location.hash.substr(window.location.hash.indexOf("?")+1)).indexOf("#")>0&&(t=t.substr(0,t.indexOf("#")));var e=t.split("&").reduce((function(t,e){var n=e.replace(/\+/g," ").split("=");return n[0]&&(t[decodeURIComponent(n[0])]=decodeURIComponent(n[1]||"")),t}),{}),n=document.querySelector('meta[name="ac:base"]'),i=document.querySelector('meta[name="ac:route"]');if(i&&i.content){var r=[],s=i.content;n&&n.content&&(s=n.content.replace(/\/$/,"")+s);var a=dmx.pathToRegexp(s,r,{end:!1}).exec(decodeURI(window.location.pathname));a&&r.forEach((function(t,n){e[t.name]=a[n+1]}))}this.set("query",e)}}),dmx.Component("form",{tag:"form",attributes:{novalidate:{type:Boolean,default:!1}},methods:{submit:function(t){t?this._submit():this.submit()},reset:function(){this.reset()},validate:function(){this.validate()}},events:{invalid:Event,submit:Event},render:function(t){dmx.BaseComponent.prototype.render.call(this,t),this.$node.noValidate=!0,this.$node.addEventListener("submit",this.onsubmit.bind(this)),this.$node.addEventListener("reset",this.onreset.bind(this))},submit:function(t){if(this.props.novalidate||this.validate())this.dispatchEvent("submit",{cancelable:!0})&&this._submit();else{dmx.requestUpdate(),this.dispatchEvent("invalid");var e=dmx.array(this.$node.elements).find((function(t){if(!t.validity.valid)return!0}));e&&e.focus()}},_submit:function(){HTMLFormElement.prototype.submit.call(this.$node)},reset:function(){HTMLFormElement.prototype.reset.call(this.$node)},validate:function(){return dmx.validate(this.$node)},onsubmit:function(t){t.preventDefault(),this.submit()},onreset:function(t){dmx.validateReset(this.$node),window.grecaptcha&&this.$node.querySelector(".g-recaptcha")&&grecaptcha.reset(),dmx.requestUpdate()}}),dmx.Component("form-element",{constructor:function(t,e){this.updateData=dmx.debounce(this.updateData.bind(this)),dmx.BaseComponent.call(this,t,e)},initialData:{value:"",disabled:!1,validationMessage:"",invalid:!1,focused:!1},attributes:{value:{type:String,default:""},disabled:{type:Boolean,default:!1}},methods:{setValue:function(t){this.setValue(t)},focus:function(){this.focus()},disable:function(t){this.disable(t)},validate:function(){this.validate()}},events:{updated:Event,changed:Event},render:function(t){dmx.BaseComponent.prototype.render.call(this,t),this.$node.value=this.props.value||"",this.$node.disabled=this.props.disabled,this.$node.defaultValue=this.props.value||"",this.$node.addEventListener("input",this.updateData.bind(this)),this.$node.addEventListener("change",this.updateData.bind(this)),this.$node.addEventListener("invalid",this.updateData.bind(this)),this.$node.addEventListener("focus",this.updateData.bind(this)),this.$node.addEventListener("blur",this.updateData.bind(this)),this.updateData()},update:function(t,e){e.has("value")&&(this.$node.defaultValue=this.props.value||"",this.setValue(this.props.value)),t.disabled!=this.props.disabled&&(this.$node.disabled=this.props.disabled),this.updateData()},updateData:function(t){t&&this.$node.dirty&&dmx.validate(this.$node),this.$node.value!==this.data.value&&dmx.nextTick((function(){this.dispatchEvent("updated"),t&&this.dispatchEvent("changed")}),this),this.set("value",this.$node.value),this.set("disabled",this.$node.disabled),this.set("focused",this.$node===document.activeElement),this.$node.dirty&&(this.set("invalid",!this.$node.validity.valid),this.set("validationMessage",this.$node.validationMessage))},setValue:function(t){this.$node.value=t||"",this.updateData()},focus:function(){this.$node.focus()},disable:function(t){this.$node.disabled=!0===t,this.updateData()},validate:function(){dmx.validate(this.$node),this.updateData()}}),dmx.Component("textarea",{extends:"form-element",tag:"textarea",render:function(t){if(!this.props.value){var e=this.$node.value;-1!==e.indexOf("{{")?this.props.value=dmx.parse(e,this):this.props.value=e}dmx.Component("form-element").prototype.render.call(this,t)}}),dmx.Component("input",{extends:"form-element",tag:"input"}),dmx.Component("input-file",{extends:"input",initialData:{file:null},render:function(t){dmx.Component("form-element").prototype.render.call(this,t),this.$node.addEventListener("change",this.onchange.bind(this)),this.$node.form&&this.$node.form.addEventListener("reset",this.onchange.bind(this))},onchange:function(){var t=null;if(this.$node.files.length){var e=this.$node.files[0];t={date:(e.lastModified?new Date(e.lastModified):e.lastModifiedDate).toISOString(),name:e.name,size:e.size,type:e.type,dataUrl:null},-1===e.type.indexOf("image/")||e.reader||(e.reader=new FileReader,e.reader.onload=function(e){t.dataUrl=e.target.result,dmx.requestUpdate()},e.reader.readAsDataURL(e))}this.set("file",t)},setValue:function(){console.warn("Can not set value of a file input!")}}),dmx.Component("input-file-multiple",{extends:"input",initialData:{files:[]},render:function(t){dmx.Component("form-element").prototype.render.call(this,t),this.$node.addEventListener("change",this.onchange.bind(this)),this.$node.form&&this.$node.form.addEventListener("reset",this.onchange.bind(this))},onchange:function(){var t=Array.prototype.slice.call(this.$node.files).map((function(t){var e={date:(t.lastModified?new Date(t.lastModified):t.lastModifiedDate).toISOString(),name:t.name,size:t.size,type:t.type,dataUrl:null};return-1===t.type.indexOf("image/")||t.reader||(t.reader=new FileReader,t.reader.onload=function(t){e.dataUrl=t.target.result,dmx.requestUpdate()},t.reader.readAsDataURL(t)),e}));this.set("files",t)},setValue:function(){console.warn("Can not set value of a file input!")}}),dmx.Component("input-number",{extends:"input",render:function(t){dmx.Component("form-element").prototype.render.call(this,t),this.set("value",+this.props.value)},updateData:function(t){t&&this.$node.dirty&&dmx.validate(this.$node),this.$node.value!==this.data.value&&dmx.nextTick((function(){this.dispatchEvent("updated"),t&&this.dispatchEvent("changed")}),this),this.set("value",this.$node.value?+this.$node.value:null),this.set("disabled",this.$node.disabled),this.$node.dirty&&(this.set("invalid",!this.$node.validity.valid),this.set("validationMessage",this.$node.validationMessage))}}),dmx.Component("button",{extends:"form-element",tag:"button",attributes:{type:{type:String,default:"button",validate:function(t){return/^(button|submit|reset)$/i.test(t)}}},render:function(t){dmx.Component("form-element").prototype.render.call(this,t),this.$node.type=this.props.type}}),dmx.Component("radio",{extends:"form-element",initialData:{checked:!1},tag:"input",attributes:{checked:{type:Boolean,default:!1}},methods:{select:function(t){this.select(t)}},render:function(t){dmx.Component("form-element").prototype.render.call(this,t),this.$node.addEventListener("click",this.updateData.bind(this)),this.$node.type="radio",this.$node.checked=this.props.checked,this.$node.defaultChecked=this.props.checked,this.set("checked",this.props.checked)},update:function(t,e){dmx.Component("form-element").prototype.update.call(this,t,e),t.checked!==this.props.checked&&(this.$node.checked=this.props.checked,this.$node.defaultChecked=this.props.checked),this.updateData()},updateData:function(t){dmx.Component("form-element").prototype.updateData.call(this,t),this.data.checked!=this.$node.checked&&dmx.nextTick((function(){this.dispatchEvent("updated"),t&&this.dispatchEvent("changed")}),this),this.set("checked",this.$node.checked)},select:function(t){this.$node.checked=!1!==t}}),dmx.Component("radio-group",{initialData:{value:""},tag:"div",attributes:{value:{type:String,default:""}},methods:{setValue:function(t){this.setValue(t)}},events:{updated:Event},render:function(t){dmx.BaseComponent.prototype.render.call(this,t),this.setValue(this.props.value)},update:function(t){dmx.BaseComponent.prototype.update.call(this,t),t.value!=this.props.value&&(this.updateValue=!0,dmx.nextTick((function(){this.dispatchEvent("updated")}),this))},updated:function(){this.updateValue&&(this.updateValue=!1,this.setValue(this.props.value,!0));var t=Array.prototype.slice.call(this.$node.querySelectorAll("input[type=radio]")).filter((function(t){return!t.disabled&&t.checked})).map((function(t){return t.value}));dmx.equal(this.data.value,t[0])||(this.set("value",t[0]),dmx.nextTick((function(){this.dispatchEvent("updated")}),this))},setValue:function(t,e){Array.prototype.slice.call(this.$node.querySelectorAll("input[type=radio]")).forEach((function(n){n.checked=n.value==t,e&&(n.defaultChecked=n.checked)})),this.updated()}}),dmx.Component("checkbox",{extends:"form-element",initialData:{checked:!1},tag:"input",attributes:{checked:{type:Boolean,default:!1}},methods:{select:function(t){this.select(t)}},events:{checked:Event,unchecked:Event},render:function(t){dmx.Component("form-element").prototype.render.call(this,t),this.$node.addEventListener("click",this.updateData.bind(this)),this.$node.type="checkbox",this.$node.checked=this.props.checked,this.$node.defaultChecked=this.props.checked,this.set("checked",this.props.checked)},update:function(t,e){dmx.Component("form-element").prototype.update.call(this,t,e),t.checked!==this.props.checked&&(this.$node.checked=this.props.checked,this.$node.defaultChecked=this.props.checked),this.updateData()},updateData:function(t){dmx.Component("form-element").prototype.updateData.call(this,t),this.data.checked!=this.$node.checked&&dmx.nextTick((function(){this.dispatchEvent("updated"),t&&(this.dispatchEvent("changed"),this.dispatchEvent(this.$node.checked?"checked":"unchecked"))}),this),this.set("checked",this.$node.checked)},select:function(t){this.$node.checked=!1!==t}}),dmx.Component("checkbox-group",{initialData:{value:[]},tag:"div",attributes:{value:{type:Array,default:[]}},methods:{setValue:function(t){this.setValue(t)}},events:{updated:Event},render:function(t){dmx.BaseComponent.prototype.render.call(this,t),this.setValue(this.props.value)},update:function(t,e){dmx.BaseComponent.prototype.update.call(this,t,e),e.has("value")&&(this.updateValue=!0)},updated:function(){this.updateValue&&(this.updateValue=!1,this.setValue(this.props.value));var t=Array.prototype.slice.call(this.$node.querySelectorAll("input[type=checkbox]")).filter((function(t){return!t.disabled&&t.checked})).map((function(t){return t.value}));dmx.equal(this.data.value,t)||(this.set("value",t),dmx.nextTick((function(){this.dispatchEvent("updated")}),this))},setValue:function(t,e){Array.isArray(t)||(t=[t]),Array.prototype.slice.call(this.$node.querySelectorAll("input[type=checkbox]")).forEach((function(n){n.checked=t.indexOf(n.value)>-1,e&&(n.defaultChecked=n.checked)})),this.updated()}}),dmx.Component("select",{extends:"form-element",initialData:{selectedIndex:-1,selectedValue:"",selectedText:""},tag:"select",attributes:{options:{type:Array,default:[]},optionText:{type:String,default:"$value"},optionValue:{type:String,default:"$value"}},methods:{setSelectedIndex:function(t){this.$node.selectedIndex=t,this.updateData()}},render:function(t){this.options=[],this.props.value?this.updateValue=!0:this.props.value=this.$node.value,dmx.BaseComponent.prototype.render.call(this,t),this.$node.disabled=this.props.disabled,this.$node.addEventListener("change",this.updateData.bind(this)),this.$node.addEventListener("invalid",this.updateData.bind(this)),this.$node.addEventListener("focus",this.updateData.bind(this)),this.$node.addEventListener("blur",this.updateData.bind(this)),this.renderOptions(),this.updateData()},update:function(t,e){e.has("options")&&(this.renderOptions(),this.updateValue=!0),e.has("value")&&(this.updateValue=!0),t.disabled!=this.props.disabled&&(this.$node.disabled=this.props.disabled),this.updateData()},updated:function(){this.updateValue&&(this.updateValue=!1,this.setValue(this.props.value,!0),this.updateData())},updateData:function(t){dmx.Component("form-element").prototype.updateData.call(this,t);var e=this.$node.selectedIndex;this.set("selectedIndex",e),this.set("selectedValue",this.$node.options[e]&&this.$node.options[e].value||""),this.set("selectedText",this.$node.options[e]&&this.$node.options[e].text||"")},setValue:function(t,e){dmx.array(this.$node.options).forEach((function(n){n.selected=n.value==t,e&&(n.defaultSelected=n.selected)}))},renderOptions:function(){this.options.splice(0).forEach((function(t){dmx.dom.remove(t)})),dmx.repeatItems(this.props.options).forEach((function(t){"object"!=typeof t&&(t={$value:t});var e=document.createElement("option");e.value=dmx.parse(this.props.optionValue,dmx.DataScope(t,this)),e.innerText=dmx.parse(this.props.optionText,dmx.DataScope(t,this)),this.options.push(this.$node.appendChild(e))}),this)}}),dmx.Component("select-multiple",{extends:"select",initialData:{value:[]},attributes:{value:{type:Array,default:null}},methods:{setSelectedIndex:function(t){this.$node.selectedIndex=t,this.updateData()}},update:function(t,e){e.has("options")&&(this.renderOptions(),this.updateValue=!0),e.has("value")&&(this.updateValue=!0),t.disabled!=this.props.disabled&&(this.$node.disabled=this.props.disabled),this.updateData()},updateData:function(t){var e=Array.prototype.slice.call(this.$node.options).filter((function(t){return t.selected})).map((function(t){return t.value}));dmx.equal(this.data.value,e)||dmx.nextTick((function(){this.dispatchEvent("updated"),t&&this.dispatchEvent("changed")}),this),this.set("value",e),this.set("disabled",this.$node.disabled),this.set("invalid",!this.$node.validity.valid),this.set("focused",this.$node===document.activeElement),this.set("validationMessage",this.$node.validationMessage);var n=this.$node.selectedIndex;this.set("selectedIndex",n),this.set("selectedValue",this.$node.options[n]&&this.$node.options[n].value||""),this.set("selectedText",this.$node.options[n]&&this.$node.options[n].text||"")},setValue:function(t,e){Array.isArray(t)||(t=[t]),t=t.map((function(t){return t.toString()})),dmx.array(this.$node.options).forEach((function(n){n.selected=t.indexOf(n.value)>-1,e&&(n.defaultSelected=n.selected)}))}}),dmx.Component("value",{initialData:{value:null},attributes:{value:{default:null}},methods:{setValue:function(t){this.data.value!==t&&(this.set("value",t),dmx.nextTick((function(){this.dispatchEvent("updated")}),this))}},events:{updated:Event},render:function(){this.set("value",this.props.value)},update:function(t,e){e.has("value")&&(this.set("value",this.props.value),dmx.nextTick((function(){this.dispatchEvent("updated")}),this))}}),dmx.Component("repeat",{initialData:{items:[]},attributes:{repeat:{type:[Array,Object,Number],default:[]},key:{type:String,default:""},rerender:{type:Boolean,default:!1}},events:{update:Event,updated:Event},render:function(t){for(this.prevItems=[],this.childKeys={},this.$template=document.createDocumentFragment();this.$node.hasChildNodes();)this.$template.appendChild(this.$node.firstChild);this.update({repeat:[]},new Set(["repeat"]))},update:function(t,e){e.has("repeat")&&(e.has("key")&&(this._rerender=!0),this._willUpdate||(this._willUpdate=!0,dmx.nextTick(this._update,this)))},_update:function(){this._willUpdate=!1,this.dispatchEvent("update"),(this.props.rerender||this._rerender)&&(this._rerender=!1,this._clear());var t=dmx.Component("repeat-item"),e=this.props.repeat,n=dmx.repeatItems(e);if(n.length){if(!this.props.rerender&&this.props.key&&n[0].hasOwnProperty(this.props.key)&&this.prevItems.length){var i,r,s=this.props.key,a=this.prevItems,o=this._clone(n),d=0,u=0,c=a.length-1,h=o.length-1;t:for(;;){for(;a[d][s]===o[u][s];)if(this.childKeys[o[u][s]].set(o[u]),u++,++d>c||u>h)break t;for(;a[c][s]===o[h][s];)if(this.childKeys[o[h][s]].set(o[h]),h--,d>--c||u>h)break t;if(a[c][s]!==o[u][s]){if(a[d][s]!==o[h][s])break;if(r=h+1,this.childKeys[o[h][s]].set(o[h]),this._moveChild(o[h][s],o[r]&&o[r][s]),h--,++d>c||u>h)break}else if(this.childKeys[o[u][s]].set(o[u]),this._moveChild(o[u][s],a[d][s]),u++,d>--c||u>h)break}if(d>c)for(r=h+1;u<=h;)this._insertChild(o[u++],o[r]&&o[r][s]);else if(u>h)for(;d<=c;)this._removeChild(a[d++][s]);else{var l=c-d+1,p=h-u+1,f=a,m=new Array(p).fill(-1),v=!1,x=0,y=0;if(p<=4||l*p<=16){for(w=d;w<=c;w++)if(y<p)for(i=u;i<=h;i++)if(a[w][s]===o[i][s]){m[i-u]=w,x>i?v=!0:x=i,this.childKeys[o[i][s]].set(o[i]),y++,f[w]=null;break}}else{var g={};for(w=u;w<=h;w++)g[o[w][s]]=w;for(w=d;w<=c;w++)y<p&&void 0!==(i=g[a[w][s]])&&(m[i-u]=w,x>i?v=!0:x=i,this.childKeys[o[i][s]].set(o[i]),y++,f[w]=null)}if(l===a.length&&0===y)for(this._clear();u<p;)this._insertChild(o[u++],null);else{for(w=l-y;w>0;)null!==f[d]&&(this._removeChild(a[d][s]),w--),d++;if(v){var b=this._lis(m);for(i=b.length-1,w=p-1;w>=0;w--)-1===m[w]?(r=(x=w+u)+1,this._insertChild(o[x],o[r]&&o[r][s])):i<0||w!==b[i]?(r=(x=w+u)+1,this._moveChild(o[x][s],o[r]&&o[r][s])):i--}else if(y!==p)for(w=p-1;w>=0;w--)-1===m[w]&&(r=(x=w+u)+1,this._insertChild(o[x],o[r]&&o[r][s]))}}}else if(this.children.length>n.length&&this.children.splice(n.length).forEach((function(t){t.$destroy()})),this.children.length&&this.children.forEach((function(t,e){t.set(n[e])})),n.length>this.children.length){for(var E=document.createDocumentFragment(),w=this.children.length;w<n.length;w++){var _=new t(this.$template.cloneNode(!0),this,n[w]);_.$nodes.forEach((function(t){E.appendChild(t),_.$parse(t)})),this.children.push(_)}this.$node.appendChild(E)}}else this._clear();this.props.key&&(this.prevItems=this._clone(n),this.children.forEach((function(t){this.childKeys[t.data[this.props.key]]=t}),this)),this.set("items",this.children.map((t=>t.data))),dmx.nextTick((()=>this.dispatchEvent("updated")))},_lis:function(t){var e,n,i=t.slice(0),r=[];r.push(0);for(var s=0,a=t.length;s<a;s++)if(-1!==t[s]){var o=r[r.length-1];if(t[o]<t[s])i[s]=o,r.push(s);else{for(e=0,n=r.length-1;e<n;){var d=(e+n)/2|0;t[r[d]]<t[s]?e=d+1:n=d}t[s]<t[r[e]]&&(e>0&&(i[s]=r[e-1]),r[e]=s)}}for(n=r[(e=r.length)-1];e-- >0;)r[e]=n,n=i[n];return r},_clear:function(){this.prevItems=[],this.childKeys={},this.children.splice(0).forEach((function(t){t.$destroy()})),this.$node.innerHTML=""},_insertChild:function(t,e){var n=new(dmx.Component("repeat-item"))(this.$template.cloneNode(!0),this,t);n.$nodes.forEach((function(t){e?this.childKeys[e]?this.$node.insertBefore(t,this.childKeys[e].$nodes[0]):console.warn("(insert) can not insert node before key "+e+"!"):this.$node.appendChild(t),n.$parse(t)}),this),this.childKeys[t[this.props.key]]=n,this.children.push(n)},_moveChild:function(t,e){var n=this.childKeys[t];n?this.childKeys[e]?n.$nodes.forEach((function(t){this.$node.insertBefore(t,this.childKeys[e].$nodes[0])}),this):n.$nodes.forEach((function(t){this.$node.appendChild(t)}),this):console.warn("(move) child with key "+t+" not found!")},_removeChild:function(t){var e=this.childKeys[t];e?(e.$destroy(),this.children.splice(this.children.indexOf(e),1),delete this.childKeys[t]):console.warn("(remove) child with key "+t+" not found!")},_clone:function(t){return dmx.clone(t)}}),dmx.Component("repeat-item",{constructor:function(t,e,n,i){this.parent=e,this.bindings={},this.propBindings={},this.children=[],this.listeners=[],this.props={},this.data=dmx.clone(n||{}),this.seed=e.seed,this.name=i||"repeat",this.$nodes=[];for(var r=0;r<t.childNodes.length;r++)this.$nodes.push(t.childNodes[r])},$destroy:function(){this.dispatchEvent("destroy");for(var t=0;t<this.$nodes.length;t++){var e=new Event("remove",{cancelable:!0});this.$nodes[t].dispatchEvent(e)&&dmx.dom.remove(this.$nodes[t])}}}),dmx.Component("fetch",{constructor:function(t,e){this.fetch=dmx.debounce(this.fetch.bind(this)),dmx.BaseComponent.call(this,t,e)},initialData:{status:0,data:null,links:{},paging:{},headers:{},state:{executing:!1,uploading:!1,processing:!1,downloading:!1},uploadProgress:{position:0,total:0,percent:0},downloadProgress:{position:0,total:0,percent:0},lastError:{status:0,message:"",response:null}},attributes:{timeout:{type:Number,default:0},method:{type:String,default:"GET"},url:{type:String,default:""},params:{type:Object,default:{}},headers:{type:Object,default:{}},data:{type:Object,default:{}},"data-type":{type:String,default:"auto"},noload:{type:Boolean,default:!1},cache:{type:String,default:""},ttl:{type:Number,default:86400},credentials:{type:Boolean,default:!1}},methods:{abort:function(){this.abort()},load:function(t,e){var n={};t&&(n.params=t),e&&(n.ttl=0),this.fetch(n)},reset:function(){this.abort(),this._reset(),this.set("data",null)}},events:{start:Event,done:Event,error:Event,invalid:Event,unauthorized:Event,forbidden:Event,abort:Event,success:Event,upload:ProgressEvent,download:ProgressEvent},$parseAttributes:function(t){dmx.BaseComponent.prototype.$parseAttributes.call(this,t),dmx.dom.getAttributes(t).forEach((function(t){"param"==t.name&&t.argument&&this.$addBinding(t.value,(function(e){this.props.params[t.argument]=e})),"header"==t.name&&t.argument&&this.$addBinding(t.value,(function(e){this.props.headers[t.argument]=e})),"data"==t.name&&t.argument&&this.$addBinding(t.value,(function(e){this.props.data[t.argument]=e}))}),this)},render:function(t){this.xhr=new XMLHttpRequest,this.xhr.addEventListener("load",this.onload.bind(this)),this.xhr.addEventListener("abort",this.onabort.bind(this)),this.xhr.addEventListener("error",this.onerror.bind(this)),this.xhr.addEventListener("timeout",this.ontimeout.bind(this)),this.xhr.addEventListener("progress",this.onprogress("download").bind(this)),this.xhr.upload&&this.xhr.upload.addEventListener("progress",this.onprogress("upload").bind(this)),this.update({})},update:function(t){!this.props.noload&&this.props.url&&(t.url==this.props.url&&dmx.equal(t.params,this.props.params)||requestAnimationFrame((()=>this.fetch())))},abort:function(){this.xhr&&this.xhr.abort()},fetch:function(t){this.xhr.abort(),t=dmx.extend(!0,this.props,t||{}),this._reset(),this.dispatchEvent("start");var e=(t.url.indexOf("?")>-1?"&":"?")+Object.keys(t.params).filter((function(e){return null!=t.params[e]}),this).map((function(e){var n=t.params[e];return"string"==typeof n&&n.startsWith("{{")&&(n=dmx.parse(n,this)),encodeURIComponent(e)+"="+encodeURIComponent(n)}),this).join("&");if(this._url=t.url+e,window.WebviewProxy&&(this._url=window.WebviewProxy.convertProxyUrl(this._url)),this.props.cache){var n=dmx.parse(this.props.cache+'.data["'+this._url+'"]',this);if(n){if(!(Date.now()-n.created>=1e3*t.ttl))return this.set("headers",n.headers||{}),this.set("paging",n.paging||{}),this.set("links",n.links||{}),this.set("data",n.data),this.dispatchEvent("success"),void this.dispatchEvent("done");dmx.parse(this.props.cache+'.remove("'+this._url+'")',this)}}this.set("state",{executing:!0,uploading:!1,processing:!1,downloading:!1});var i=null;"GET"!=this.props.method.toUpperCase()&&("text"==this.props["data-type"]?(t.headers["Content-Type"]||(t.headers["Content-Type"]="application/text"),i=this.props.data.toString()):"json"==this.props["data-type"]?(t.headers["Content-Type"]||(t.headers["Content-Type"]="application/json"),i=JSON.stringify(this.props.data)):"POST"==this.props.method.toUpperCase()?(i=new FormData,Object.keys(this.props.data).forEach((function(t){var e=this.props.data[t];Array.isArray(e)?(/\[\]$/.test(t)||(t+="[]"),e.forEach((function(e){i.append(t,e)}),this)):i.set(t,e)}),this)):(t.headers["Content-Type"]||(t.headers["Content-Type"]="application/text"),i=this.props.data.toString())),this.xhr.open(this.props.method.toUpperCase(),this._url),this.xhr.timeout=1e3*t.timeout,Object.keys(t.headers).forEach((function(e){this.xhr.setRequestHeader(e,t.headers[e])}),this),this.xhr.setRequestHeader("accept","application/json"),this.props.credentials&&(this.xhr.withCredentials=!0);try{this.xhr.send(i)}catch(t){this._done(t)}},_reset:function(){this.set({status:0,links:{},headers:{},state:{executing:!1,uploading:!1,processing:!1,downloading:!1},uploadProgress:{position:0,total:0,percent:0},downloadProgress:{position:0,total:0,percent:0},lastError:{status:0,message:"",response:null}})},_done:function(t){if(this._reset(),t)this.set("lastError",{status:0,message:t.message,response:null}),this.dispatchEvent("error");else{var e=this.xhr.responseText;try{e=JSON.parse(e)}catch(t){if(this.xhr.status<400)return this.set("lastError",{status:0,message:"Response was not valid JSON",response:e}),void this.dispatchEvent("error")}try{var n=this.xhr.getAllResponseHeaders().trim().split(/[\r\n]+/);this.set("headers",n.reduce((function(t,e){var n=e.split(": "),i=n.shift(),r=n.join(": ");return t[i]=r,t}),{}))}catch(t){console.warn("Error parsing response headers",t)}try{var i=Object.keys(this.data.headers).find((function(t){return"link"==t.toLowerCase()}));i&&this.set("links",this.data.headers[i].split(/,\s*</).map((function(t){try{var e=t.match(/<?([^>]*)>(.*)/),n=e[1],i=e[2].split(";"),r=n.substr(n.indexOf("?")+1);r.indexOf("#")>0&&(r=r.substr(0,r.indexOf("#")));var s=r.split("&").reduce((function(t,e){var n=e.split("=");return n[0]&&(t[decodeURIComponent(n[0])]=decodeURIComponent(n[1]||"")),t}),{});i.shift();var a=i.reduce((function(t,e){var n=e.match(/\s*(.+)\s*=\s*"?([^"]+)"?/);return n&&(t[n[1]]=n[2]),t}),{});return(a=Object.assign({},s,a)).url=n,a}catch(t){return console.warn("Error parsing link header part",t),null}})).filter((function(t){return t&&t.rel})).reduce((function(t,e){return e.rel.split(/\s+/).forEach((function(n){t[n]=Object.assign(e,{rel:n})})),t}),{}))}catch(t){console.warn("Error parsing link header",t)}try{var r={page:1,pages:1,items:0,has:{first:!1,prev:!1,next:!1,last:!1}};if(this.data.links.prev||this.data.links.next){this.data.links.last&&this.data.links.last.page?r.pages=+this.data.links.last.page:this.data.links.prev&&this.data.prev.page&&(r.pages=+this.data.links.prev.page+1);var s=Object.keys(this.data.headers).find((function(t){return"x-total"==(t=t.toLowerCase())||"x-count"==t||"x-total-count"==t}));s&&(r.items=+this.data.headers[s]),this.data.links.prev&&this.data.links.prev.page?r.page=+this.data.links.prev.page+1:this.data.links.next&&this.data.links.next.page&&(r.page=+this.data.links.next.page-1),r.has={first:!!this.data.links.first,prev:!!this.data.links.prev,next:!!this.data.links.next,last:!!this.data.links.last}}this.set("paging",r)}catch(t){console.warn("Error parsing paging",t)}this.set("status",this.xhr.status),this.xhr.status<400?(this.set("data",e),this.dispatchEvent("success"),this.props.cache&&dmx.parse(this.props.cache+'.set("'+this._url+'", { headers: headers, paging: paging, links: links, data: data, created: '+Date.now()+" })",this)):(this.set("lastError",{status:this.xhr.status,message:this.xhr.statusText,response:e}),400==this.xhr.status?this.dispatchEvent("invalid"):401==this.xhr.status?this.dispatchEvent("unauthorized"):403==this.xhr.status?this.dispatchEvent("forbidden"):this.dispatchEvent("error"))}this.dispatchEvent("done")},onload:function(t){this._done()},onabort:function(t){this._reset(),this.dispatchEvent("abort"),this.dispatchEvent("done")},onerror:function(t){this._done({message:"Failed to execute"})},ontimeout:function(t){this._done({message:"Execution timeout"})},onprogress:function(t){return function(e){e.loaded=e.loaded||e.position;var n=e.lengthComputable?Math.ceil(e.loaded/e.total*100):0;this.set("state",{executing:!0,uploading:"upload"==t&&n<100,processing:"upload"==t&&100==n,downloading:"download"==t}),this.set(t+"Progress",{position:e.loaded,total:e.total,percent:n}),this.dispatchEvent(t,{lengthComputable:e.lengthComputable,loaded:e.loaded,total:e.total})}}}),dmx.Component("serverconnect",{extends:"fetch",attributes:{sockets:{type:Boolean,default:!1}},render:function(t){this.props.sockets?(this.eventName=this.props.url.replace(/^(.*?)api\//,""),this.socket=dmx.Socket("/api"),this.socket.on(this.eventName,this.refresh.bind(this)),this.update({})):dmx.Component("fetch").prototype.render.call(this,t)},fetch:function(t){this.props.sockets?this.refresh(t&&t.params):dmx.Component("fetch").prototype.fetch.call(this,t)},refresh:function(t){t=dmx.extend(!0,{},this.props.params,t||{}),this.dispatchEvent("start"),this.set("state",{executing:!0,uploading:!1,processing:!0,downloading:!1}),this.socket.emit(this.eventName,t,function(t){this.set("status",t.status),this.set("data",t.data),this.set("state",{executing:!1,uploading:!1,processing:!1,downloading:!1}),t.status<400?this.dispatchEvent("success"):400==t.status?this.dispatchEvent("invalid"):401==t.status?this.dispatchEvent("unauthorized"):403==t.status?this.dispatchEvent("forbidden"):this.dispatchEvent("error"),this.dispatchEvent("done")}.bind(this))}}),dmx.Component("serverconnect-form",{extends:"form",initialData:{status:0,data:null,headers:{},state:{executing:!1,uploading:!1,processing:!1,downloading:!1},uploadProgress:{position:0,total:0,percent:0},downloadProgress:{position:0,total:0,percent:0},lastError:{status:0,message:"",response:null}},attributes:{timeout:{type:Number,default:0},autosubmit:{type:Boolean,default:!1},params:{type:Object,default:{}},headers:{type:Object,default:{}},"post-data":{type:String,default:"form"},credentials:{type:Boolean,default:!1}},methods:{abort:function(){this.abort()},reset:function(t){this.reset(),t&&(this.abort(),this._reset(),this.set("data",null))}},events:{start:Event,done:Event,error:Event,unauthorized:Event,forbidden:Event,abort:Event,success:Event,upload:ProgressEvent,download:ProgressEvent},$parseAttributes:function(t){dmx.BaseComponent.prototype.$parseAttributes.call(this,t),dmx.dom.getAttributes(t).forEach((function(t){"param"==t.name&&t.argument&&this.$addBinding(t.value,(function(e){this.props.params[t.argument]=e})),"header"==t.name&&t.argument&&this.$addBinding(t.value,(function(e){this.props.headers[t.argument]=e}))}),this)},render:function(t){this.xhr=new XMLHttpRequest,this.xhr.addEventListener("load",this.onload.bind(this)),this.xhr.addEventListener("abort",this.onabort.bind(this)),this.xhr.addEventListener("error",this.onerror.bind(this)),this.xhr.addEventListener("timeout",this.ontimeout.bind(this)),this.xhr.addEventListener("progress",this.onprogress("download").bind(this)),this.xhr.upload&&this.xhr.upload.addEventListener("progress",this.onprogress("upload").bind(this));var e=t.checkValidity;t.dmxExtraData={},t.dmxExtraElements=[],t.checkValidity=function(){for(var n=0;n<t.dmxExtraElements.length;n++)t.dmxExtraElements[n].validate&&t.dmxExtraElements[n].validate();return e.call(t)},dmx.Component("form").prototype.render.call(this,t),this.props.autosubmit&&dmx.nextTick((function(){this.submit()}),this)},abort:function(){this.xhr.abort()},_submit:function(t){this.xhr.abort();var e=this.$node.method.toUpperCase(),n=this.$node.action,i=null,r=Object.keys(this.props.params).filter((function(t){return null!=this.props.params[t]}),this).map((function(t){var e=this.props.params[t];return"string"==typeof e&&e.startsWith("{{")&&(e=dmx.parse(e,this)),encodeURIComponent(t)+"="+encodeURIComponent(e)}),this).join("&");"GET"==e?(r.length&&(r+="&"),r+=dmx.array(this.$node.elements).filter((function(e){return!(t&&t[e.name])&&!e.disabled&&("radio"!==e.type&&"checkbox"!==e.type||e.checked)})).map((function(t){return encodeURIComponent(t.name)+"="+encodeURIComponent(t.value)})).join("&"),t&&Object.keys(t).forEach((function(e){Array.isArray(t[e])?t[e].forEach((function(t){r+="&"+encodeURIComponent(e)+"="+encodeURIComponent(t)})):r+="&"+encodeURIComponent(e)+"="+encodeURIComponent(t[e])}))):"json"==this.props["post-data"]?(i=this._parseJsonForm(this.$node),t&&Object.assign(i,t),this.$node.dmxExtraData&&Object.assign(i,this.$node.dmxExtraData),this.props.headers["Content-Type"]="application/json",i=JSON.stringify(i)):(i=new FormData(this.$node),t&&Object.keys(t).forEach((function(e){Array.isArray(t[e])?(/\[\]$/.test(e)||(e+="[]"),value.forEach((function(t){i.append(e,t)}),this)):i.set(e,t[e])}),this),this.$node.dmxExtraData&&Object.keys(this.$node.dmxExtraData).forEach((function(t){var e=this.$node.dmxExtraData[t];Array.isArray(e)?(/\[\]$/.test(t)||(t+="[]"),e.forEach((function(e){i.append(t,e)}),this)):i.set(t,e)}),this)),this._reset(),this.dispatchEvent("start"),this.set("state",{executing:!0,uploading:!1,processing:!1,downloading:!1});var s=n;r&&(s+=(s.indexOf("?")>-1?"&":"?")+r),window.WebviewProxy&&(s=window.WebviewProxy.convertProxyUrl(s)),this.xhr.open(e,s),this.xhr.timeout=1e3*this.props.timeout,Object.keys(this.props.headers).forEach((function(t){this.xhr.setRequestHeader(t,this.props.headers[t])}),this),this.xhr.setRequestHeader("accept","application/json"),this.props.credentials&&(this.xhr.withCredentials=!0);try{this.xhr.send(i)}catch(t){this._done(t)}},_reset:function(){this.set({status:0,headers:{},state:{executing:!1,uploading:!1,processing:!1,downloading:!1},uploadProgress:{position:0,total:0,percent:0},downloadProgress:{position:0,total:0,percent:0},lastError:{status:0,message:"",response:null}})},_done:function(t){if(this._reset(),t)this.set("lastError",{status:0,message:t.message,response:null}),this.dispatchEvent("error");else{var e=this.xhr.responseText;try{e=JSON.parse(e)}catch(t){if(this.xhr.status<400)return this.set("lastError",{status:0,message:"Response was not valid JSON",response:e}),void this.dispatchEvent("error")}try{var n=this.xhr.getAllResponseHeaders().trim().split(/[\r\n]+/);this.set("headers",n.reduce((function(t,e){var n=e.split(": "),i=n.shift(),r=n.join(": ");return t[i]=r,t}),{}))}catch(t){console.warn("Error parsing response headers",t)}if(this.set("status",this.xhr.status),dmx.validateReset&&dmx.validateReset(this.$node),window.grecaptcha&&this.$node.querySelector(".g-recaptcha")&&grecaptcha.reset(),this.xhr.status<400)this.set("data",e),this.dispatchEvent("success");else if(this.set("lastError",{status:this.xhr.status,message:this.xhr.statusText,response:e}),400==this.xhr.status)if(this.dispatchEvent("invalid"),e.form){for(var i in e.form)if(e.form.hasOwnProperty(i)){var r=this.$node.querySelector('[name="'+i+'"]');r&&(r.setCustomValidity(e.form[i]),dmx.requestUpdate(),dmx.bootstrap5forms?dmx.validate.setBootstrap5Message(r,e.form[i]):dmx.bootstrap4forms?dmx.validate.setBootstrap4Message(r,e.form[i]):dmx.bootstrap3forms?dmx.validate.setBootstrapMessage(r,e.form[i]):dmx.validate.setErrorMessage(r,e.form[i]))}}else console.warn("400 error, no form errors in response.",e);else 401==this.xhr.status?this.dispatchEvent("unauthorized"):403==this.xhr.status?this.dispatchEvent("forbidden"):this.dispatchEvent("error")}this.dispatchEvent("done")},onload:function(t){this._done()},onabort:function(t){this._reset(),this.dispatchEvent("abort"),this.dispatchEvent("done")},onerror:function(t){this._done({message:"Failed to execute"})},ontimeout:function(t){this._done({message:"Execution timeout"})},onprogress:function(t){return function(e){e.loaded=e.loaded||e.position;var n=e.lengthComputable?Math.ceil(e.loaded/e.total*100):0;this.set("state",{executing:!0,uploading:"upload"==t&&n<100,processing:"upload"==t&&100==n,downloading:"download"==t}),this.set(t+"Progress",{position:e.loaded,total:e.total,percent:n}),this.dispatchEvent(t,{lengthComputable:e.lengthComputable,loaded:e.loaded,total:e.total})}},_parseJsonForm:function(t){const e={};for(const r of t.elements)if(r.name&&!r.disabled){const t=n(r.name.replace(/\[\]$/,""));let s=e;for(const e of t){const t=r.type;"number"==t?r.value&&(s=i(s,e,s[e.key],+r.value)):"radio"==t||"checkbox"==t?r.getAttribute("value")?r.checked&&(s=i(s,e,s[e.key],r.value)):s=i(s,e,s[e.key],r.checked):s=i(s,e,s[e.key],"select-multiple"==t?Array.from(r.selectedOptions).map((t=>t.value)):r.value)}}return e;function n(t){const e=[],n=t,i=/^\[([^\]]*)\]/,r=/^\d+$/;if(!(t=t.replace(/^([^\[]+)/,((t,n)=>(e.push({type:"object",key:n}),"")))))return e[0].last=!0,e;for(;t;){if(!i.test(t))return{type:"object",key:n,last:!0};t=t.replace(i,((t,n)=>(n?r.test(n)?e.push({type:"array",key:+n}):e.push({type:"object",key:n}):e[e.length-1].append=!0,"")))}for(let t=0,n=e.length;t<n;t++){const i=e[t];t+1<n?i.nextType=e[t+1].type:i.last=!0}return e}function i(t,e,n,r){if(e.last){if(void 0===n)t[e.key]=e.append?[r]:r;else if(Array.isArray(n))t[e.key].push(r);else{if("object"==typeof n)return i(n,{type:"object",key:"",last:!0},n[""],r);t[e.key]=[n,r]}return t}if(void 0===n)return t[e.key]="array"==e.nextType?[]:{};if(Array.isArray(n)){if("array"==e.nextType)return n;const i={};for(let t=0,e=n.length;t<e;t++)void 0!==n[t]&&(i[t]=n[t]);return t[e.key]=i}return"object"==typeof n?t[e.key]:t[e.key]={"":n}}}}),dmx.Component("if",{attributes:{condition:{type:Boolean,default:!1}},events:{show:Event,hide:Event},render:function(t){for(this.nodes=[],this.template=document.createDocumentFragment();this.$node.firstChild;)this.template.appendChild(this.$node.firstChild);this.update({})},update:function(t){this.props.condition!=t.condition&&(this.props.condition?this._render():this._destroy())},_render:function(){var t=this.template.cloneNode(!0);this.nodes=Array.prototype.slice.call(t.childNodes),this.$node.appendChild(t),this.$parse(),dmx.requestUpdate(),dmx.nextTick((function(){this.dispatchEvent("show")}),this)},_destroy:function(){this.bindings={},this.nodes.splice(0).forEach((function(t){var e=new Event("remove",{cancelable:!0});t.dispatchEvent(e)&&dmx.dom.remove(t)})),this.children.splice(0).forEach((function(t){t.$destroy()})),dmx.nextTick((function(){this.dispatchEvent("hide")}),this)}}),dmx.Component("datetime",{initialData:function(){return{datetime:this.datetime()}},attributes:{interval:{type:String,default:"seconds"},utc:{type:Boolean,default:!1}},render:function(){this.timer()},timer:function(){this.set("datetime",this.datetime()),requestAnimationFrame(this.timer.bind(this))},datetime:function(){var t,e,n,i,r,s,a=new Date,o=function(t,e){return("0000"+t).substr(-e)};this.props.utc?(t=a.getUTCFullYear(),e=a.getUTCMonth()+1,n=a.getUTCDate(),i=a.getUTCHours(),r=a.getUTCMinutes(),s=a.getUTCSeconds()):(t=a.getFullYear(),e=a.getMonth()+1,n=a.getDate(),i=a.getHours(),r=a.getMinutes(),s=a.getSeconds());var d=o(t,4)+"-"+o(e,2)+"-"+o(n,2),u=this.props.utc?"Z":"";switch(this.props.interval){case"days":return d+"T00:00:00"+u;case"hours":return d+"T"+o(i,2)+":00:00"+u;case"minutes":return d+"T"+o(i,2)+":"+o(r,2)+":00"+u}return d+"T"+o(i,2)+":"+o(r,2)+":"+o(s,2)+u}}),dmx.Component("api-action",{extends:"fetch"}),dmx.Component("api-form",{extends:"serverconnect-form"}),dmx.Component("array",{initialData:{items:[],count:0},attributes:{items:{type:Array,default:[]}},events:{updated:Event},methods:{add:function(t){this.splice(this.count(),0,t)},addUniq:function(t){-1==this.indexOf(t)&&this.splice(this.count(),0,t)},insert:function(t,e){this.splice(t,0,e)},insertBefore:function(t,e){var n=this.indexOf(t);-1!=n&&this.splice(n,0,e)},insertAfter:function(t,e){var n=this.indexOf(t);-1!=n&&this.splice(n+1,0,e)},replace:function(t,e){var n=this.indexOf(t);-1!=n&&this.splice(n,1,e)},replaceAt:function(t,e){this.splice(t,1,e)},remove:function(t){var e=this.indexOf(t);-1!=e&&this.splice(e,1)},removeAt:function(t){this.splice(t,1)},reverse:function(){this.reverse()},sort:function(){this.sort()},empty:function(){this.updateData([])}},render:function(){var t=dmx.array(this.props.items);this.set("items",t),this.set("count",t.length)},update:function(t,e){e.has("items")&&this.updateData(dmx.array(this.props.items))},count:function(){return this.data.items.length},indexOf:function(t){return this.data.items.indexOf(t)},splice:function(t,e,n){var i=dmx.clone(this.data.items);void 0!==n?i.splice(t,e,n):i.splice(t,e),this.updateData(i)},reverse:function(){var t=dmx.clone(this.data.items);t.reverse(),this.updateData(t)},sort:function(){var t=dmx.clone(this.data.items);t.sort(),this.updateData(t)},updateData:function(t){dmx.equal(this.data.items,t)||(this.set("items",t),this.set("count",t.length),dmx.nextTick((function(){this.dispatchEvent("updated")}),this))}}),dmx.Component("group",{render:function(t){this.$parse()}}),dmx.Component("flow",{initialData:{$param:null,data:null,running:!1,lastError:null},attributes:{src:{type:String,default:null},preload:{type:Boolean,default:!1},autorun:{type:Boolean,default:!1},params:{type:Object,default:{}}},methods:{run:function(t,e){return this.run(t,e)},runSub:function(t){return this.runSub(t)}},events:{start:Event,done:Event,error:Event},$parseAttributes:function(t){dmx.BaseComponent.prototype.$parseAttributes.call(this,t),dmx.dom.getAttributes(t).forEach((function(t){"param"==t.name&&t.argument&&this.$addBinding(t.value,(function(e){this.props.params[t.argument]=e}))}),this)},render:function(t){if(this.props.src)(this.props.preload||this.props.autorun)&&this.load(this.props.src);else try{this.flow=(window.Hjson?Hjson:JSON).parse(t.textContent),this.props.autorun&&this.run()}catch(e){console.error(e),dmx.debug&&console.debug(t.textContent)}},load:function(t){var e=this;return new Promise((function(n,i){var r=new XMLHttpRequest;r.onload=function(){try{e.flow=(window.Hjson?Hjson:JSON).parse(r.responseText),e.props.autorun&&e.run(),n()}catch(t){console.error(t),dmx.debug&&console.debug(r.responseText),i(t)}},r.onabort=i,r.onerror=i,r.ontimeout=i,r.open("GET",t),r.send()}))},runSub:function(t){var e=this;if(!this.flow){if(this.props.src)return this.load(this.props.src).then((function(){return dmx.Flow.run(e.flow,e)}));throw new Error("No flow")}return dmx.Flow.run(this.flow,this)},run:function(t,e){var n=this;return this.flow?this.data.running?void console.info("Flow "+this.name+" is already running."):(this.set("running",!0),this.set("log",{}),this.set("$param",Object.assign({},this.props.params,t)),this.set("lastError",null),this.dispatchEvent("start"),dmx.Flow.run(this.flow,this).then((function(t){return n.set("running",!1),n.set("data",t),n.dispatchEvent("done"),dmx.debug&&console.debug("done",t),t})).catch((function(t){if(n.set("running",!1),n.set("lastError",t&&t.message),n.dispatchEvent("error"),console.error(t),e)throw t}))):this.props.src?this.load(this.props.src).then((function(){return n.run(t,e)})):void 0}}),dmx.Component("toggle",{initialData:{checked:!1},attributes:{checked:{type:Boolean,default:!1}},methods:{check:function(){this.data.checked||(this.set("checked",!0),this.isUpdated())},uncheck:function(){this.data.checked&&(this.set("checked",!1),this.isUpdated())},toggle:function(){this.set("checked",!this.data.checked),this.isUpdated()}},events:{updated:Event},render:function(){this.set("checked",this.props.checked)},update:function(t){t.checked!=this.props.checked&&(this.set("checked",this.props.checked),this.isUpdated())},isUpdated:function(){dmx.nextTick((function(){this.dispatchEvent("updated")}),this)}}),dmx.Attribute("bind","mounted",(function(t,e){var n=e.argument,i=dmx.reToggleAttribute.test(n);this.$addBinding(e.value,(function(e){if(i)e?t.setAttribute(n,""):t.removeAttribute(n);else{if("style"===n&&"object"==typeof e){for(var r in e)e.hasOwnProperty(r)&&(t.style[r]=e[r]);return}null!=e?t.setAttribute(n,e):t.removeAttribute(n),"src"===n&&("VIDEO"===t.nodeName||"AUDIO"===t.nodeName?t.load():"SOURCE"===t.nodeName&&t.parentNode&&t.parentNode.load())}}))})),dmx.Attribute("on","mounted",(function(t,e){var n=this;dmx.eventListener(t,e.argument,(function(t){t.originalEvent&&(t=t.originalEvent);var i=dmx.parse(e.value,dmx.DataScope({$event:t.$data,$originalEvent:t},n));if("string"==typeof i)try{i=new Function("event",i).call(this,t)}catch(t){console.warn('Error executing "'+i+'"',t)}return i}),e.modifiers)})),dmx.Attribute("repeat","before",(function(t,e){if(this.node!=t){var n=this,i=[],r=document.createDocumentFragment(),s=document.createComment("Repeat "+e.value),a=(dmx.Component("repeat-item"),e.argument||"repeat");t.parentNode.replaceChild(s,t),t.removeAttribute("dmx-repeat"),r.appendChild(t),n.set(a,[]),this.$addBinding(e.value,(function(t){var o=dmx.Component("repeat-item"),d=dmx.repeatItems(t);if(e.modifiers.fast){if(i.length>d.length&&i.splice(d.length).forEach((function(t){n.children.splice(n.children.indexOf(t),1),t.$destroy()})),i.length&&i.forEach((function(t,e){t.set(d[e])})),d.length>i.length){for(u=document.createDocumentFragment(),c=i.length;c<d.length;c++){(h=new o(r.cloneNode(!0),n,d[c])).$nodes.forEach((function(t){u.appendChild(t),h.$parse(t)})),i.push(h),n.children.push(h)}s.parentNode.insertBefore(u,s)}}else{var u=document.createDocumentFragment();i.forEach((function(t){n.children.splice(n.children.indexOf(t),1),t.$destroy()})),i=[];for(var c=0;c<d.length;c++){var h;(h=new o(r.cloneNode(!0),n,d[c])).$nodes.forEach((function(t){u.appendChild(t),h.$parse(t)})),i.push(h),n.children.push(h)}s.parentNode.insertBefore(u,s)}n.set(a,i.map((function(t){return t.data})))}))}})),dmx.Attribute("class","mounted",(function(t,e){var n=e.argument;this.$addBinding(e.value,(function(e,i){e!=i&&t.classList[e?"add":"remove"](n)}))})),dmx.Attribute("hide","mounted",(function(t,e){var n=t.style.getPropertyValue("display"),i=t.style.getPropertyPriority("display");this.$addBinding(e.value,(function(e){e?t.style.setProperty("display","none","important"):t.style.setProperty("display",n,i)}))})),dmx.Attribute("show","mounted",(function(t,e){var n=t.style.getPropertyValue("display"),i=t.style.getPropertyPriority("display");this.$addBinding(e.value,(function(e){e?t.style.setProperty("display",n,i):t.style.setProperty("display","none","important")}))})),dmx.Attribute("html","mounted",(function(t,e){this.$addBinding(e.value,(function(e){t.innerHTML=null!=e?e:""}))})),dmx.Attribute("text","mounted",(function(t,e){this.$addBinding(e.value,(function(e){t.innerText=null!=e?e:""}))})),dmx.Attribute("style","mounted",(function(t,e){var n=e.argument,i=e.modifiers.important?"important":"";this.$addBinding(e.value,(function(e){null!=e&&t.style.setProperty(n,e,i)}))})),dmx.Formatters("global",{json:function(t){return JSON.stringify(t)},log:function(t){return console.log(t),t},run:function(t,e){var n=dmx.DataScope({$param:e},this);dmx.Flow.run(t,n)}}),dmx.Actions({subflow:function(t){var e=this.parse(t.flow),n=this.parse(t.param);return this.parse(e+".runSub("+JSON.stringify(n)+")")},comment:function(t){dmx.debug&&console.debug(t.message)},wait:function(t){var e=this.parse(t.delay);if("number"!=typeof e)throw new Error("wait: Invalid delay");return new Promise((function(t){setTimeout(t,e)}))},now:function(t){return(new Date).toISOString()},random:function(t){var e=this.parse(t.lower),n=this.parse(t.upper),i=!!this.parse(t.floating);"number"==typeof e&&isFinite(e)||(e=0),"number"==typeof n&&isFinite(n)||(n=1);var r=e+Math.random()*(n-e);return i||Math.floor(e)!=e||Math.floor(n)!=n||(r=Math.round(r)),r},confirm:function(t){var e=this.parse(t.message);if("string"!=typeof e)throw new Error("confirm: Invalid message");var n=confirm(e);if(n){if(t.then)return this._exec(t.then).then((function(){return n}))}else if(t.else)return this._exec(t.else).then((function(){return n}));return n},prompt:function(t){var e=this.parse(t.message);if("string"!=typeof e)throw new Error("prompt: Invalid message");return prompt(e)},alert:function(t){var e=this.parse(t.message);if("string"!=typeof e)throw new Error("alert: Invalid message");return alert(e)},repeat:function(t){var e=dmx.clone(this.parse(t.repeat));if(e){if("boolean"==typeof e)e=e?[0]:[];else if("string"==typeof e)e=e.split(/\s*,\s*/);else if("number"==typeof e){for(var n=[],i=0;i<e;i++)n.push(i+1);e=n}if("object"!=typeof e)throw new Error("repeat: data is not repeatable");var r=this,s=this.scope,a=this.output;return this._each(e,(function(e,n){return r.scope=new dmx.DataScope(Object.assign({$value:e,$index:n,$name:n,$key:n,$number:n+1,$oddeven:n%2},e),s),r.output={},Array.isArray(t.outputFields)&&e instanceof Object&&t.outputFields.forEach((function(t){r.output[t]=e[t]})),r._exec(t.exec).then((function(){var t=r.output;return r.scope=s,r.output=a,t}))}))}},condition:function(t){var e=!!this.parse(t.if);if(e){if(t.then)return this._exec(t.then).then((function(){return e}))}else if(t.else)return this._exec(t.else).then((function(){return e}));return e},conditions:function(t){if(Array.isArray(t.conditions))for(var e=0;e<t.conditions.length;e++){var n=t.conditions[e];if(this.parse(n.when))return this._exec(n.then)}},select:function(t){var e=this.parse(t.expression);if(Array.isArray(t.cases))for(var n=0;n<t.cases.length;n++){var i=t.cases[n];if(this.parse(i.value)==e)return this._exec(i.exec)}},group:function(t){if(t.name){var e=this,n=this.output;return this.output={},this._exec(t.exec).then((function(){var t=e.output;return e.output=n,t}))}return this._exec(t.exec)},while:function(t){var e=this,n=function(){return new Promise((function(i){if(!e.parse(t.condition))return i();e._exec(t.exec).then(n).then(i)}))};return n()},switch:function(t){for(var e=this.parse(t.expression),n=0;n<t.cases.length;n++)if(this.parse(t.cases[n].case)===e)return this._exec(t.cases[n].exec);if(t.default)return this._exec(t.default)},tryCatch:function(t){var e=this;return Promise.resolve(e._exec(t.try)).catch((function(){return e._exec(t.catch)}))},run:function(t){if(!t.action)throw new Error("run: missing action");return this.parse(t.action)},runJS:function(t){if(!t.function)throw new Error("runJS: missing function");var e=this.parse(t.function),n=this.parse(t.args);return window[e].apply(null,n)},assign:function(t){return this.parse(t.value)},setGlobal:function(t){var e=this.parse(t.key),n=this.parse(t.value);if("string"!=typeof e)throw new Error("setGlobal: key must be a string");return dmx.global.set(e,n),n},setSession:function(t){var e=this.parse(t.key),n=this.parse(t.value);if("string"!=typeof e)throw new Error("setSession: key must be a string");return sessionStorage.setItem(e,JSON.stringify(n)),n},getSession:function(t){var e=this.parse(t.key);if("string"!=typeof e)throw new Error("getSession: key must be a string");return JSON.parse(sessionStorage.getItem(e))},removeSession:function(t){var e=this.parse(t.key);if("string"!=typeof e)throw new Error("removeSession: key must be a string");return sessionStorage.removeItem(e),!0},setStorage:function(t){var e=this.parse(t.key),n=this.parse(t.value);if("string"!=typeof e)throw new Error("setStorage: key must be a string");return localStorage.setItem(e,JSON.stringify(n)),n},getStorage:function(t){var e=this.parse(t.key);if("string"!=typeof e)throw new Error("getStorage: key must be a string");return JSON.parse(localStorage.getItem(e))},removeStorage:function(t){var e=this.parse(t.key);if("string"!=typeof e)throw new Error("removeStorage: key must be a string");return localStorage.removeItem(e),!0},fetch:function(t){var e=this.parse(t.url),n=this.parse(t.method),i=this.parse(t.timeout),r=this.parse(t.dataType),s=this.parse(t.data),a=this.parse(t.params),o=this.parse(t.headers),d=null;if("string"!=typeof e)throw new Error("fetch: invalid url "+e);if(["GET","POST","PUT","DELETE"].includes(n)||(n="GET"),["auto","json","text"].includes(r)||(r="auto"),"number"!=typeof i&&(i=0),"object"==typeof a)for(var u in a)a.hasOwnProperty(u)&&null!=a[u]&&(e+=(-1!=e.indexOf("?")?"&":"?")+decodeURIComponent(u)+"="+decodeURIComponent(a[u]));if("GET"!=n)if("text"==r)o["Content-Type"]||(o["Content-Type"]="application/text"),d=s.toString();else if("json"==r)o["Content-Type"]||(o["Content-Type"]="application/json"),s=JSON.stringify(s);else if("POST"==n){if(d=new FormData,"object"==typeof s&&!Array.isArray(s))for(var c in s)if(s.hasOwnProperty(c)){var h=s[c];if(Array.isArray(h))for(var l in/\[\]$/.test(c)||(c+="[]"),h)h.hasOwnProperty(l)&&d.append(c,h[l]);else d.set(c,h)}}else o["Content-Type"]||(o["Content-Type"]="application/text"),s=s.toString();return new Promise((function(t,r){var s=new XMLHttpRequest;for(var a in s.onerror=r,s.onabort=r,s.ontimeout=r,s.onload=function(){var e=s.responseText,n=s.getAllResponseHeaders().trim().split(/[\r\n]+/).reduce((function(t,e){var n=e.split(": "),i=n.shift(),r=n.join(": ");return t[i.toLowerCase()]=r,t}),{});/^application\/json/.test(n["content-type"])&&(e=JSON.parse(e)),t({status:s.status,headers:n,data:e})},s.open(n,e),s.timeout=1e3*i,o)o.hasOwnProperty(a)&&s.setRequestHeader(a,o[a]);s.send(d)}))}}),dmx.__actions.setValue=dmx.__actions.assign,dmx.__actions.api=dmx.__actions.fetch,dmx.__actions["api.send"]=dmx.__actions.fetch,dmx.__actions.serverConnect=dmx.__actions.fetch,dmx.Actions({"collections.addColumns":function(t){var e=this.parse(t.collection),n=t.add,i=!!this.parse(t.overwrite);if(!e.length)return[];for(var r=[],s=0,a=e.length;s<a;s++){var o=dmx.clone(e[s]);for(var d in n)if(n.hasOwnProperty(d)){var u=new dmx.DataScope(o,this.scope);(i||null==o[d])&&(o[d]=dmx.parse(n[d],u))}r.push(o)}return r},"collections.filterColumns":function(t){var e=this.parse(t.collection),n=this.parse(t.columns),i=!!this.parse(t.keep);if(!e.length)return[];for(var r=[],s=0,a=e.length;s<a;s++){var o=e[s],d={};for(var u in o)o.hasOwnProperty(u)&&(n.includes(u)?i&&(d[u]=dmx.clone(o[u])):i||(d[u]=dmx.clone(o[u])));r.push(d)}return r},"collections.renameColumns":function(t){var e=this.parse(t.collection),n=this.parse(t.rename);if(!e.length)return[];for(var i=[],r=0,s=e.length;r<s;r++){var a=e[r],o={};for(var d in a)a.hasOwnProperty(d)&&(o[n[d]||d]=dmx.clone(a[d]));i.push(o)}return i},"collections.fillDown":function(t){var e=this.parse(t.collection),n=this.parse(t.columns);if(!e.length)return[];for(var i=[],r={},s=0,a=n.length;s<a;s++)r[n[s]]=null;for(s=0,a=e.length;s<a;s++){var o=dmx.clone(e[s]);for(var d in r)r.hasOwnProperty(d)&&(null==o[d]?o[d]=r[d]:r[d]=o[d]);i.push(o)}return i},"collections.addRows":function(t){var e=this.parse(t.collection),n=this.parse(t.rows);return dmx.clone(e).concat(dmx.clone(n))},"collections.addRowNumbers":function(t){for(var e=this.parse(t.collection),n=this.parse(t.column),i=this.parse(t.startAt),r=!!this.parse(t.desc),s=[],a=0,o=e.length;a<o;a++){var d=dmx.clone(e[a]);d[n]=r?o+i-a:i+a,s.push(d)}return s},"colections.join":function(t){for(var e=this.parse(t.collection1),n=this.parse(t.collection2),i=this.parse(t.matches),r=!!this.parse(t.matchAll),s=[],a=0,o=e.length;a<o;a++){for(var d=dmx.clone(e[a]),u=0,c=n.length;u<c;u++){var h=n[u],l=!1;for(var p in i)if(i.hasOwnProperty(p))if(d[p]==h[i[p]]){if(l=!0,!r)break}else if(r){l=!1;break}if(l){for(var f in h)h.hasOwnProperty(f)&&(d[f]=dmx.clone(h[f]));break}}s.push(d)}return s},"collections.mormalize":function(t){for(var e=this.parse(t.collection),n=[],i=[],r=0,s=e.length;r<s;r++)for(var a in e[r])e[r].hasOwnProperty(a)&&-1==n.indexOf(a)&&n.push(a);for(r=0,s=e.length;r<s;r++){for(var o={},d=0,u=n.length;d<u;d++){a=n[d];var c=dmx.clone(e[a]);o[a]=null!=c?c:null}i.push(o)}return i}}),dmx.Actions({"console.log":function(t){console.log(this.parse(t.message))},"console.info":function(t){console.info(this.parse(t.message))},"console.warn":function(t){console.warn(this.parse(t.message))},"console.error":function(t){console.error(this.parse(t.message))},"console.count":function(t){console.count(this.parse(t.label))},"console.time":function(t){console.time(this.parse(t.label))},"console.timeEnd":function(t){console.timeEnd(this.parse(t.label))},"console.group":function(t){console.group()},"console.groupEnd":function(t){console.groupEnd()},"console.clear":function(t){console.clear()}});
  8. //# sourceMappingURL=maps/dmxAppConnect.js.map