-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||d0&&"\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 "+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(yi?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
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
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;wt.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;s0&&(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;rthis.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-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;td.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-1},join:function(e,t){return e.join(t)},count:function(e){return e.length},top:function(e,t){return e.slice(0,t)},last:function(e,t){return null==t?e[e.length-1]:e.slice(-t)},first:function(e){return e[0]},get:function(e,t){return e[t]},slice:function(e,t,r){return e.slice(t,r)},reverse:function(e){return e.slice(0).reverse()},randomize:function(e){var t,r,n=dmx.randomizer(this.seed*dmx.hashCode(e)),a=e.length;for(e=e.slice(0);0!==a;)r=Math.floor(n()*a--),t=e[a],e[a]=e[r],e[r]=t;return e},filter:function(e,t){var r=this;return"$"==t[0]&&(e=dmx.repeatItems(e)),e.filter((function(e){return dmx.parse(t,new dmx.DataScope(e,r))}))},map:function(e,t){var r=this;return"$"==t[0]&&(e=dmx.repeatItems(e)),e.map((function(e){return dmx.parse(t,new dmx.DataScope(e,r))}))},where:function(e,t,r,n){var a=this;return n=n||"==","$"==t[0]&&(e=dmx.repeatItems(e)),e.filter((function(e){var u=dmx.propCheck.test(t)?e[t]:dmx.parse(t,new dmx.DataScope(e,a));switch(n){case"startsWith":return 0===String(u).indexOf(r);case"endsWith":return String(u).substr(-r.length)===r;case"contains":return-1!==String(u).indexOf(r);case"notContains":return-1===String(u).indexOf(r);case"inArray":return-1!==r.indexOf(u);case"notInArray":return-1===r.indexOf(u);case"fuzzySearch":return function(e,t){var r=e.length,n=t.length;if(n>r)return!1;if(n===r)return e===t;e:for(var a=0,u=0;a":return u>r;case">=":return u>=r}return!0}))},values:function(e,t){var r=this,n=dmx.propCheck.test(t);return e.map((function(e){return n?e[t]:dmx.parse(t,new dmx.DataScope(e,r))}))},groupBy:function(e,t){var r=this,n=dmx.propCheck.test(t);return e.reduce((function(e,a){var u=n?a[t]:dmx.parse(t,new dmx.DataScope(a,r));return e[u]||(e[u]=[]),e[u].push(a),e}),{})},unique:function(e,t){if(t){var r=this,n=dmx.propCheck.test(t);e=e.map((function(e){return n?e[t]:dmx.parse(t,new dmx.DataScope(e,r))}))}return Object.keys(e.reduce((function(e,t){return e[JSON.stringify(t)]=1,e}),{})).map((function(e){return JSON.parse(e)}))},sort:function(e,t){var r=this,n=!t||dmx.propCheck.test(t);return e.slice(0).sort((function(e,a){return t&&(e=n?e[t]:dmx.parse(t,new dmx.DataScope(e,r)),a=n?a[t]:dmx.parse(t,new dmx.DataScope(a,r))),ea?1:0}))},min:function(e,t){var r=this,n=!t||dmx.propCheck.test(t);return e.reduce((function(e,a){return t&&(a=n?a[t]:dmx.parse(t,new dmx.DataScope(a,r))),(a=Number(a))e?a:e}),-1/0)},sum:function(e,t){var r=this,n=!t||dmx.propCheck.test(t);return e.reduce((function(e,a){return t&&(a=n?a[t]:dmx.parse(t,new dmx.DataScope(a,r))),e+(a=Number(a))}),0)},avg:function(e,t){var r=this,n=!t||dmx.propCheck.test(t);return e.reduce((function(e,a){return t&&(a=n?a[t]:dmx.parse(t,new dmx.DataScope(a,r))),e+(a=Number(a))}),0)/e.length}}),dmx.Formatters("boolean",{then:function(e,t,r){return e?t:r}}),function(){var e=["January","February","March","April","May","June","July","August","September","October","November","December"],t=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],r=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],n=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];function a(e,t){return("0000"+t).slice(-e)}function u(e){return a(4,e.getFullYear())+"-"+a(2,e.getMonth()+1)+"-"+a(2,e.getDate())+" "+a(2,e.getHours())+":"+a(2,e.getMinutes())+":"+a(2,e.getSeconds())+"."+a(3,e.getMilliseconds())}function c(e){return Number(e)===e}function i(e){return e.setHours(0),e.setMinutes(0),e.setSeconds(0),e.setMilliseconds(0),e}function o(e){return e&&"Invalid Date"!=e.toString()}dmx.Formatters("string",{getYear:function(e){var t=dmx.parseDate(e);if(o(t))return t.getFullYear()},getMonth:function(e){var t=dmx.parseDate(e);if(o(t))return t.getMonth()+1},getDate:function(e){var t=dmx.parseDate(e);if(o(t))return t.getDate()},getDay:function(e){var t=dmx.parseDate(e);if(o(t))return t.getDay()},addYears:function(e,t){var r=dmx.parseDate(e);if(o(r))return c(t)&&r.setFullYear(r.getFullYear()+t),u(r)},addMonths:function(e,t){var r=dmx.parseDate(e);if(o(r))return c(t)&&r.setMonth(r.getMonth()+t),u(r)},addWeeks:function(e,t){var r=dmx.parseDate(e);if(o(r))return c(t)&&r.setDate(r.getDate()+7*t),u(r)},addDays:function(e,t){var r=dmx.parseDate(e);if(o(r))return c(t)&&r.setDate(r.getDate()+t),u(r)},addHours:function(e,t){var r=dmx.parseDate(e);if(o(r))return c(t)&&r.setHours(r.getHours()+t),u(r)},addMinutes:function(e,t){var r=dmx.parseDate(e);if(o(r))return c(t)&&r.setMinutes(r.getMinutes()+t),u(r)},addSeconds:function(e,t){var r=dmx.parseDate(e);if(o(r))return c(t)&&r.setSeconds(r.getSeconds()+t),u(r)},addMilliseconds:function(e,t){var r=dmx.parseDate(e);if(o(r))return c(t)&&r.setMilliseconds(r.getMilliseconds()+t),u(r)},yearsUntil:function(e,t){var r=dmx.parseDate(e),n=dmx.parseDate(t);if(o(r)&&o(n))return n.getFullYear()-r.getFullYear()},monthsUntil:function(e,t){var r=dmx.parseDate(e),n=dmx.parseDate(t);if(o(r)&&o(n))return 12*n.getFullYear()+n.getMonth()-(12*r.getFullYear()+r.getMonth())},weeksUntil:function(e,t){var r=dmx.parseDate(e),n=dmx.parseDate(t);if(o(r)&&o(n))return Math.floor((n-r)/6048e5)},daysUntil:function(e,t){var r=dmx.parseDate(e),n=dmx.parseDate(t);if(o(r)&&o(n))return i(r),i(n),Math.round((n-r)/864e5)},hoursUntil:function(e,t){var r=dmx.parseDate(e),n=dmx.parseDate(t);if(o(r)&&o(n))return Math.floor((n-r)/36e5)},minutesUntil:function(e,t){var r=dmx.parseDate(e),n=dmx.parseDate(t);if(o(r)&&o(n))return Math.floor((n-r)/6e4)},secondsUntil:function(e,t){var r=dmx.parseDate(e),n=dmx.parseDate(t);if(o(r)&&o(n))return Math.floor((n-r)/1e3)},millisecondsUntil:function(e,t){var r=dmx.parseDate(e),n=dmx.parseDate(t);if(o(r)&&o(n))return n-r},timeUntil:function(e,t,r){var n=dmx.parseDate(e),u=dmx.parseDate(t);if(o(n)&&o(u)){var c=Math.floor((u-n)/1e3),i=Math.floor(c/60),f=Math.floor(i/60);return c-=60*i,r?f+":"+a(2,i-=60*f)+":"+a(2,c):i+":"+a(2,c)}},formatDate:function(u,c){var i=dmx.parseDate(u);if(o(i)){var f=i.getFullYear(),d=i.getMonth(),s=i.getDate(),l=i.getDay(),b=i.getHours(),p=i.getMinutes(),m=i.getSeconds();return c.replace(/([yMdHhmsaA])(\1+)?/g,(function(u){switch(u){case"yyyy":return a(4,f);case"yy":return a(2,f);case"y":return f;case"MMMM":return e[d];case"MMM":return t[d];case"MM":return a(2,d+1);case"M":return d+1;case"dddd":return r[l];case"ddd":return n[l];case"dd":return a(2,s);case"d":return s;case"HH":return a(2,b);case"H":return b;case"hh":return a(2,b%12||12);case"h":return b%12||12;case"mm":return a(2,p);case"m":return p;case"ss":return a(2,m);case"s":return m;case"a":return b<12?"am":"pm";case"A":return b<12?"AM":"PM"}return u}))}}})}(),dmx.Formatters("number",{inRange:function(e,t,r){return e>=t&&e<=r},abs:function(e){return Math.abs(e)},ceil:function(e){return Math.ceil(e)},floor:function(e){return Math.floor(e)},max:function(e,t){return Math.max(e,t)},min:function(e,t){return Math.min(e,t)},pow:function(e,t){return Math.pow(e,t)},per:function(e,t){return e*t/100},perOf:function(e,t){return e/t},round:function(e,t){var r=Math.pow(10,t||0),n=e*r;return Math.round(n)/r},pad:function(e,t){for(var r=e<0?"-":"",n=String(Math.abs(e));n.length=0?e.toFixed(t):e.toString()).split("."),c=u[0],i=u.length>1?r+u[1]:"";if(n)for(var o=/(\d+)(\d{3})/;o.test(c);)c=c.replace(o,"$1"+n+"$2");return(a?"-":"")+c+i},formatPercentage:function(e,t){var r=Math.pow(10,t);return Math.round(e*r*100)/r+"%"},formatCurrency:function(e,t,r,n,a){if(isNaN(e)||!isFinite(e))return"Invalid Amount";t=t||"$",r=r||".",n=n||",",a=null!=a?a:2;var u=e<0,c=Math.abs(e).toFixed(a).split("."),i=c[0],o=c.length>1?r+c[1]:"";if(n)for(var f=/(\d+)(\d{3})/;f.test(i);)i=i.replace(f,"$1"+n+"$2");return(u?"-":"")+t+i+o},formatSize:function(e,t,r){if(isNaN(e)||!isFinite(e))return"Invalid Size";t=t||2;for(var n=r?1024:1e3,a=r?["KiB","MiB","GiB","TiB"]:["KB","MB","GB","TB"],u=3;u>=0;u--){var c=Math.pow(n,u+1);if(e>=c){e/=c;var i=Math.pow(10,t);return(e=Math.round(e*i)/i)+a[u]}}return e+"B"}}),dmx.Formatters("string",{startsWith:function(e,t){return 0===e.indexOf(t)},endsWith:function(e,t){var r=e.length-t.length,n=e.lastIndexOf(t);return-1!==n&&n===r},contains:function(e,t){return-1!==e.indexOf(t)},notContains:function(e,t){return-1===e.indexOf(t)},search:function(e,t,r){return String(t).split(/\s+/)[r?"every":"some"]((function(t){return-1!==e.indexOf(t)}))},fuzzySearch:function(e,t){var r=e.length,n=t.length;if(n>r)return!1;if(n===r)return e===t;e:for(var a=0,u=0;at&&(e=e.substr(0,t),r&&-1!==e.indexOf(" ")&&(e=e.substr(0,e.lastIndexOf(" "))),e+=n),e},stripTags:function(e){return e.replace(/<[^>]+>/g,"")},padStart:function(e,t,r){if(r=r||" ",t<=e.length)return e;for(var n=t-e.length;r.length
+ * Version: v2.0.9
+ * Url: https://github.com/mattboldt/typed.js
+ * License(s): MIT
+ *
+ */
+(function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Typed=e():t.Typed=e()})(this,function(){return function(t){function e(n){if(s[n])return s[n].exports;var i=s[n]={exports:{},id:n,loaded:!1};return t[n].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var s={};return e.m=t,e.c=s,e.p="",e(0)}([function(t,e,s){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var i=function(){function t(t,e){for(var s=0;st.length)););var u=t.substring(0,e),l=t.substring(u.length+1,e+i),c=t.substring(e+i+1);t=u+l+c,i--}s.timeout=setTimeout(function(){s.toggleBlinking(!1),e>=t.length?s.doneTyping(t,e):s.keepTyping(t,e,i),s.temporaryPause&&(s.temporaryPause=!1,s.options.onTypingResumed(s.arrayPos,s))},n)},n))}},{key:"keepTyping",value:function(t,e,s){0===e&&(this.toggleBlinking(!1),this.options.preStringTyped(this.arrayPos,this)),e+=s;var n=t.substr(0,e);this.replaceText(n),this.typewrite(t,e)}},{key:"doneTyping",value:function(t,e){var s=this;this.options.onStringTyped(this.arrayPos,this),this.toggleBlinking(!0),this.arrayPos===this.strings.length-1&&(this.complete(),this.loop===!1||this.curLoop===this.loopCount)||(this.timeout=setTimeout(function(){s.backspace(t,e)},this.backDelay))}},{key:"backspace",value:function(t,e){var s=this;if(this.pause.status===!0)return void this.setPauseStatus(t,e,!0);if(this.fadeOut)return this.initFadeOut();this.toggleBlinking(!1);var n=this.humanizer(this.backSpeed);this.timeout=setTimeout(function(){e=o.htmlParser.backSpaceHtmlChars(t,e,s);var n=t.substr(0,e);if(s.replaceText(n),s.smartBackspace){var i=s.strings[s.arrayPos+1];i&&n===i.substr(0,e)?s.stopNum=e:s.stopNum=0}e>s.stopNum?(e--,s.backspace(t,e)):e<=s.stopNum&&(s.arrayPos++,s.arrayPos===s.strings.length?(s.arrayPos=0,s.options.onLastStringBackspaced(),s.shuffleStringsIfNeeded(),s.begin()):s.typewrite(s.strings[s.sequence[s.arrayPos]],e))},n)}},{key:"complete",value:function(){this.options.onComplete(this),this.loop?this.curLoop++:this.typingComplete=!0}},{key:"setPauseStatus",value:function(t,e,s){this.pause.typewrite=s,this.pause.curString=t,this.pause.curStrPos=e}},{key:"toggleBlinking",value:function(t){this.cursor&&(this.pause.status||this.cursorBlinking!==t&&(this.cursorBlinking=t,t?this.cursor.classList.add("typed-cursor--blink"):this.cursor.classList.remove("typed-cursor--blink")))}},{key:"humanizer",value:function(t){return Math.round(Math.random()*t/2)+t}},{key:"shuffleStringsIfNeeded",value:function(){this.shuffle&&(this.sequence=this.sequence.sort(function(){return Math.random()-.5}))}},{key:"initFadeOut",value:function(){var t=this;return this.el.className+=" "+this.fadeOutClass,this.cursor&&(this.cursor.className+=" "+this.fadeOutClass),setTimeout(function(){t.arrayPos++,t.replaceText(""),t.strings.length>t.arrayPos?t.typewrite(t.strings[t.sequence[t.arrayPos]],0):(t.typewrite(t.strings[0],0),t.arrayPos=0)},this.fadeOutDelay)}},{key:"replaceText",value:function(t){this.attr?this.el.setAttribute(this.attr,t):this.isInput?this.el.value=t:"html"===this.contentType?this.el.innerHTML=t:this.el.textContent=t}},{key:"bindFocusEvents",value:function(){var t=this;this.isInput&&(this.el.addEventListener("focus",function(e){t.stop()}),this.el.addEventListener("blur",function(e){t.el.value&&0!==t.el.value.length||t.start()}))}},{key:"insertCursor",value:function(){this.showCursor&&(this.cursor||(this.cursor=document.createElement("span"),this.cursor.className="typed-cursor",this.cursor.innerHTML=this.cursorChar,this.el.parentNode&&this.el.parentNode.insertBefore(this.cursor,this.el.nextSibling)))}}]),t}();e["default"]=a,t.exports=e["default"]},function(t,e,s){"use strict";function n(t){return t&&t.__esModule?t:{"default":t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var r=Object.assign||function(t){for(var e=1;e":";";t.substr(e+1).charAt(0)!==i&&(e++,!(e+1>t.length)););e++}return e}},{key:"backSpaceHtmlChars",value:function(t,e,s){if("html"!==s.contentType)return e;var n=t.substr(e).charAt(0);if(">"===n||";"===n){var i="";for(i=">"===n?"<":"&";t.substr(e-1).charAt(0)!==i&&(e--,!(e<0)););e--}return e}}]),t}();e["default"]=i;var r=new i;e.htmlParser=r}])});
diff --git a/public/dmxAppConnect/dmxValidator/dmxValidator.css b/public/dmxAppConnect/dmxValidator/dmxValidator.css
new file mode 100644
index 0000000..1a9f2c5
--- /dev/null
+++ b/public/dmxAppConnect/dmxValidator/dmxValidator.css
@@ -0,0 +1,35 @@
+/* CSS Document */
+
+input.dmxValidator-invalid,
+select.dmxValidator-invalid,
+textarea.dmxValidator-invalid {
+ border-color: #C80000;
+ outline: none;
+ border-style:solid;
+ border-width: 1px;
+}
+input.dmxValidator-invalid:focus,
+select.dmxValidator-invalid:focus,
+textarea.dmxValidator-invalid:focus {
+-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
+}
+
+input.dmxValidator-valid,
+select.dmxValidator-valid,
+textarea.dmxValidator-valid {
+ border-color: #3c763d;
+ outline: none;
+ border-style:solid;
+ border-width: 1px;
+}
+input.dmxValidator-valid:focus,
+select.dmxValidator-valid:focus,
+textarea.dmxValidator-valid:focus {
+-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px #67b168;
+ box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px #67b168;
+}
+span.dmxValidator-error {
+ color: #C80000;
+ padding-left: 5px;
+}
diff --git a/public/dmxAppConnect/dmxValidator/dmxValidator.js b/public/dmxAppConnect/dmxValidator/dmxValidator.js
new file mode 100644
index 0000000..3dbc7c6
--- /dev/null
+++ b/public/dmxAppConnect/dmxValidator/dmxValidator.js
@@ -0,0 +1,8 @@
+/*!
+ App Connect Validator
+ Version: 1.7.3
+ (c) 2022 Wappler.io
+ @build 2022-05-03 10:29:56
+ */
+!function(){var e={email:"email",url:"url",date:"date",time:"time",week:"week",month:"month",number:"number",color:"color",range:"number"},t=["min","max","accept","pattern","minlength","maxlength"];function u(e,t,u){var a=!0;return dmx.rules[t]?(a=dmx.rules[t].validity(e,u))||function(e,t,u){var a=e.getAttribute("data-msg-"+t)||dmx.rules[t].message;a=Array.isArray(u)?a.replace(/\{(\d)\}/g,(function(e,t){return u[t]})):a.replace(/\{0\}/g,u);e.setCustomValidity(a),dmx.bootstrap5forms?dmx.validate.setBootstrap5Message(e,a):dmx.bootstrap4forms?dmx.validate.setBootstrap4Message(e,a):dmx.bootstrap3forms?dmx.validate.setBootstrapMessage(e,a):dmx.validate.setErrorMessage(e,a)}(e,t,u):console.warn("Validation rule "+t+" not found!"),a&&(dmx.bootstrap5forms?dmx.validate.setBootstrap5Message(e,""):dmx.bootstrap4forms?dmx.validate.setBootstrap4Message(e,""):dmx.bootstrap3forms?dmx.validate.setBootstrapMessage(e,""):dmx.validate.setErrorMessage(e,"")),a}dmx.bootstrapVersion=0,dmx.bootstrap3forms=!1,dmx.bootstrap4forms=!1,dmx.bootstrap5forms=!1,document.addEventListener("DOMContentLoaded",(function(e){dmx.bootstrapVersion=window.bootstrap&&bootstrap.Alert?parseInt(bootstrap.Alert.VERSION):0,dmx.bootstrap3forms=!!document.querySelector('script[src$="dmxBootstrap3Forms.js"]'),dmx.bootstrap4forms=4==dmx.bootstrapVersion,dmx.bootstrap5forms=5==dmx.bootstrapVersion})),dmx.rules={},dmx.validate=function(a){if("FORM"==a.tagName){for(var s=!0,r=0;r]*>\s*
]*>\s*<\/p>\s*$/.test(e.value)):!(!e.value||!e.value.length)}},email:{message:"Please enter a valid email address.",validity:function(e){return/^(?!\.)((?!.*\.{2})[a-zA-Z0-9\u0080-\u00FF\u0100-\u017F\u0180-\u024F\u0250-\u02AF\u0300-\u036F\u0370-\u03FF\u0400-\u04FF\u0500-\u052F\u0530-\u058F\u0590-\u05FF\u0600-\u06FF\u0700-\u074F\u0750-\u077F\u0780-\u07BF\u07C0-\u07FF\u0900-\u097F\u0980-\u09FF\u0A00-\u0A7F\u0A80-\u0AFF\u0B00-\u0B7F\u0B80-\u0BFF\u0C00-\u0C7F\u0C80-\u0CFF\u0D00-\u0D7F\u0D80-\u0DFF\u0E00-\u0E7F\u0E80-\u0EFF\u0F00-\u0FFF\u1000-\u109F\u10A0-\u10FF\u1100-\u11FF\u1200-\u137F\u1380-\u139F\u13A0-\u13FF\u1400-\u167F\u1680-\u169F\u16A0-\u16FF\u1700-\u171F\u1720-\u173F\u1740-\u175F\u1760-\u177F\u1780-\u17FF\u1800-\u18AF\u1900-\u194F\u1950-\u197F\u1980-\u19DF\u19E0-\u19FF\u1A00-\u1A1F\u1B00-\u1B7F\u1D00-\u1D7F\u1D80-\u1DBF\u1DC0-\u1DFF\u1E00-\u1EFF\u1F00-\u1FFFu20D0-\u20FF\u2100-\u214F\u2C00-\u2C5F\u2C60-\u2C7F\u2C80-\u2CFF\u2D00-\u2D2F\u2D30-\u2D7F\u2D80-\u2DDF\u2F00-\u2FDF\u2FF0-\u2FFF\u3040-\u309F\u30A0-\u30FF\u3100-\u312F\u3130-\u318F\u3190-\u319F\u31C0-\u31EF\u31F0-\u31FF\u3200-\u32FF\u3300-\u33FF\u3400-\u4DBF\u4DC0-\u4DFF\u4E00-\u9FFF\uA000-\uA48F\uA490-\uA4CF\uA700-\uA71F\uA800-\uA82F\uA840-\uA87F\uAC00-\uD7AF\uF900-\uFAFF\.!#$%&'*+-/=?^_`{|}~\-\d]+)@(?!\.)([a-zA-Z0-9\u0080-\u00FF\u0100-\u017F\u0180-\u024F\u0250-\u02AF\u0300-\u036F\u0370-\u03FF\u0400-\u04FF\u0500-\u052F\u0530-\u058F\u0590-\u05FF\u0600-\u06FF\u0700-\u074F\u0750-\u077F\u0780-\u07BF\u07C0-\u07FF\u0900-\u097F\u0980-\u09FF\u0A00-\u0A7F\u0A80-\u0AFF\u0B00-\u0B7F\u0B80-\u0BFF\u0C00-\u0C7F\u0C80-\u0CFF\u0D00-\u0D7F\u0D80-\u0DFF\u0E00-\u0E7F\u0E80-\u0EFF\u0F00-\u0FFF\u1000-\u109F\u10A0-\u10FF\u1100-\u11FF\u1200-\u137F\u1380-\u139F\u13A0-\u13FF\u1400-\u167F\u1680-\u169F\u16A0-\u16FF\u1700-\u171F\u1720-\u173F\u1740-\u175F\u1760-\u177F\u1780-\u17FF\u1800-\u18AF\u1900-\u194F\u1950-\u197F\u1980-\u19DF\u19E0-\u19FF\u1A00-\u1A1F\u1B00-\u1B7F\u1D00-\u1D7F\u1D80-\u1DBF\u1DC0-\u1DFF\u1E00-\u1EFF\u1F00-\u1FFF\u20D0-\u20FF\u2100-\u214F\u2C00-\u2C5F\u2C60-\u2C7F\u2C80-\u2CFF\u2D00-\u2D2F\u2D30-\u2D7F\u2D80-\u2DDF\u2F00-\u2FDF\u2FF0-\u2FFF\u3040-\u309F\u30A0-\u30FF\u3100-\u312F\u3130-\u318F\u3190-\u319F\u31C0-\u31EF\u31F0-\u31FF\u3200-\u32FF\u3300-\u33FF\u3400-\u4DBF\u4DC0-\u4DFF\u4E00-\u9FFF\uA000-\uA48F\uA490-\uA4CF\uA700-\uA71F\uA800-\uA82F\uA840-\uA87F\uAC00-\uD7AF\uF900-\uFAFF\-\.\d]+)((\.([a-zA-Z\u0080-\u00FF\u0100-\u017F\u0180-\u024F\u0250-\u02AF\u0300-\u036F\u0370-\u03FF\u0400-\u04FF\u0500-\u052F\u0530-\u058F\u0590-\u05FF\u0600-\u06FF\u0700-\u074F\u0750-\u077F\u0780-\u07BF\u07C0-\u07FF\u0900-\u097F\u0980-\u09FF\u0A00-\u0A7F\u0A80-\u0AFF\u0B00-\u0B7F\u0B80-\u0BFF\u0C00-\u0C7F\u0C80-\u0CFF\u0D00-\u0D7F\u0D80-\u0DFF\u0E00-\u0E7F\u0E80-\u0EFF\u0F00-\u0FFF\u1000-\u109F\u10A0-\u10FF\u1100-\u11FF\u1200-\u137F\u1380-\u139F\u13A0-\u13FF\u1400-\u167F\u1680-\u169F\u16A0-\u16FF\u1700-\u171F\u1720-\u173F\u1740-\u175F\u1760-\u177F\u1780-\u17FF\u1800-\u18AF\u1900-\u194F\u1950-\u197F\u1980-\u19DF\u19E0-\u19FF\u1A00-\u1A1F\u1B00-\u1B7F\u1D00-\u1D7F\u1D80-\u1DBF\u1DC0-\u1DFF\u1E00-\u1EFF\u1F00-\u1FFF\u20D0-\u20FF\u2100-\u214F\u2C00-\u2C5F\u2C60-\u2C7F\u2C80-\u2CFF\u2D00-\u2D2F\u2D30-\u2D7F\u2D80-\u2DDF\u2F00-\u2FDF\u2FF0-\u2FFF\u3040-\u309F\u30A0-\u30FF\u3100-\u312F\u3130-\u318F\u3190-\u319F\u31C0-\u31EF\u31F0-\u31FF\u3200-\u32FF\u3300-\u33FF\u3400-\u4DBF\u4DC0-\u4DFF\u4E00-\u9FFF\uA000-\uA48F\uA490-\uA4CF\uA700-\uA71F\uA800-\uA82F\uA840-\uA87F\uAC00-\uD7AF\uF900-\uFAFF]){2,63})+)$/i.test(e.value)}},url:{message:"Please enter a valid URL.",validity:function(e){return/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(e.value)}},datetime:{message:"Please enter a valid datetime.",validity:function(e){return/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])[T ]([01][0-9]|2[0-4]):[0-5][0-9](:([0-5][0-9]|60))?Z?$/.test(e.value)}},date:{message:"Please enter a valid date.",validity:function(e){return/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(e.value)}},time:{message:"Please enter a valid time.",validity:function(e){return/^([01][0-9]|2[0-4]):[0-5][0-9](:([0-5][0-9]|60))?$/.test(e.value)}},month:{message:"Please enter a valid month.",validity:function(e){return/^\d{4}-(0[1-9]|1[012])$/.test(e.value)}},week:{message:"Please enter a valid week.",validity:function(e){return/^\d{4}-W(0[1-9]|[1-4][0-9]|5[0-3])$/.test(e.value)}},color:{message:"Please enter a color in the format #xxxxxx.",validity:function(e){return/^#[a-fA-F0-9]{6}$/.test(e.value)}},number:{message:"Please enter a valid number.",validity:function(e){return/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(e.value)}},min:{message:"Please enter a value greater than or equal to {0}.",validity:function(e,t){return"number"==e.type||"range"==e.type?+e.value>=t:e.value>=t}},max:{message:"Please enter a value less than or equal to {0}.",validity:function(e,t){return"number"==e.type||"range"==e.type?+e.value<=t:e.value<=t}},pattern:{message:"Invalid format.",validity:function(e,t){return!/^text|search|url|tel|email|password$/i.test(e.type)||("string"==typeof t&&(t=new RegExp("^(?:"+t+")$")),t.test(e.value))}},minlength:{message:"Please enter at least {0} characters.",validity:function(e,t){return e.value.length>=t}},maxlength:{message:"Please enter no more than {0} characters.",validity:function(e,t){return e.value.length<=t}},alphanumeric:{message:"Letters, numbers, and underscores only please.",validity:function(e){return/^\w+$/i.test(e.value)}},lettersonly:{message:"Letters only please.",validity:function(e){return/^[a-z]+$/i.test(e.value)}},letterswithbasicpunc:{message:"Letters or punctuation only please.",validity:function(e){return/^[a-z\-.,()'"\s]+$/i.test(e.value)}},nowhitespace:{message:"No white space please.",validity:function(e){return/^\S+$/i.test(e.value)}},digits:{message:"Please enter only digits.",validity:function(e){return/^\d+$/.test(e.value)}},creditcard:{message:"Please enter a valid credit card number.",validity:function(e){var t=e.value;if(/[^0-9 \-]+/.test(t))return!1;var u,a,s=0,r=0,i=!1;if((t=t.replace(/\D/g,"")).length<13||t.length>19)return!1;for(u=t.length-1;u>=0;u--)a=t.charAt(u),r=parseInt(a,10),i&&(r*=2)>9&&(r-=9),s+=r,i=!i;return s%10==0}},bic:{message:"Please specify a valid BIC code.",validity:function(e){return/^([A-Z]{6}[A-Z2-9][A-NP-Z1-2])(X{3}|[A-WY-Z0-9][A-Z0-9]{2})?$/.test(e.value)}},iban:{message:"Please specify a valid IBAN.",validity:function(e){var t,u,a,s,r,i=e.value.replace(/ /g,"").toUpperCase(),d="",n=!0,l="";if(void 0!==(a={AL:"\\d{8}[\\dA-Z]{16}",AD:"\\d{8}[\\dA-Z]{12}",AT:"\\d{16}",AZ:"[\\dA-Z]{4}\\d{20}",BE:"\\d{12}",BH:"[A-Z]{4}[\\dA-Z]{14}",BA:"\\d{16}",BR:"\\d{23}[A-Z][\\dA-Z]",BG:"[A-Z]{4}\\d{6}[\\dA-Z]{8}",CR:"\\d{17}",HR:"\\d{17}",CY:"\\d{8}[\\dA-Z]{16}",CZ:"\\d{20}",DK:"\\d{14}",DO:"[A-Z]{4}\\d{20}",EE:"\\d{16}",FO:"\\d{14}",FI:"\\d{14}",FR:"\\d{10}[\\dA-Z]{11}\\d{2}",GE:"[\\dA-Z]{2}\\d{16}",DE:"\\d{18}",GI:"[A-Z]{4}[\\dA-Z]{15}",GR:"\\d{7}[\\dA-Z]{16}",GL:"\\d{14}",GT:"[\\dA-Z]{4}[\\dA-Z]{20}",HU:"\\d{24}",IS:"\\d{22}",IE:"[\\dA-Z]{4}\\d{14}",IL:"\\d{19}",IT:"[A-Z]\\d{10}[\\dA-Z]{12}",KZ:"\\d{3}[\\dA-Z]{13}",KW:"[A-Z]{4}[\\dA-Z]{22}",LV:"[A-Z]{4}[\\dA-Z]{13}",LB:"\\d{4}[\\dA-Z]{20}",LI:"\\d{5}[\\dA-Z]{12}",LT:"\\d{16}",LU:"\\d{3}[\\dA-Z]{13}",MK:"\\d{3}[\\dA-Z]{10}\\d{2}",MT:"[A-Z]{4}\\d{5}[\\dA-Z]{18}",MR:"\\d{23}",MU:"[A-Z]{4}\\d{19}[A-Z]{3}",MC:"\\d{10}[\\dA-Z]{11}\\d{2}",MD:"[\\dA-Z]{2}\\d{18}",ME:"\\d{18}",NL:"[A-Z]{4}\\d{10}",NO:"\\d{11}",PK:"[\\dA-Z]{4}\\d{16}",PS:"[\\dA-Z]{4}\\d{21}",PL:"\\d{24}",PT:"\\d{21}",RO:"[A-Z]{4}[\\dA-Z]{16}",SM:"[A-Z]\\d{10}[\\dA-Z]{12}",SA:"\\d{2}[\\dA-Z]{18}",RS:"\\d{18}",SK:"\\d{20}",SI:"\\d{15}",ES:"\\d{20}",SE:"\\d{20}",CH:"\\d{5}[\\dA-Z]{12}",TN:"\\d{20}",TR:"\\d{5}[\\dA-Z]{17}",AE:"\\d{3}\\d{16}",GB:"[A-Z]{4}\\d{14}",VG:"[\\dA-Z]{4}\\d{16}"}[i.substring(0,2)])&&!new RegExp("^[A-Z]{2}\\d{2}"+a+"$","").test(i))return!1;for(t=i.substring(4,i.length)+i.substring(0,4),s=0;s=u}},maxitems:{message:"Please select no more tham {0} items.",validity:function(t,u){return e(t)<=u}},equalto:{message:"Please enter the same value again.",validity:function(e,t){"#"!=t[0]&&(t='[name="'+t+'"]');var u=e.form.querySelector(t);return u?e.value==u.value:(console.warn("Target element "+t+" for equalTo rule not found."),!0)}},notequalto:{message:"Please enter a different value, values must not be the same.",validity:function(e,t){"#"!=t[0]&&(t='[name="'+t+'"]');var u=e.form.querySelector(t);return u?e.value!=u.value:(console.warn("Target element "+t+" for equalTo rule not found."),!0)}}})}(),Object.assign(dmx.rules,{accept:{message:"This file type is not allowed for upload.",validity:function(e,t){if("file"!=e.type.toLowerCase())return!0;var u=t.replace(/\s/g,"").split(",");if(e.files&&e.files.length)for(var a=0;at)return!1;return!0}},mintotalsize:{message:"Total size of selected files should be at least {0} bytes.",validity:function(e,t){if("file"!=e.type.toLowerCase())return!0;if(e.files&&e.files.length){for(var u=0,a=0;at)return!1}return!0}},minfiles:{message:"Please select at least {0} files.",validity:function(e,t){return"file"!=e.type.toLowerCase()||!(e.files&&e.files.length&&e.files.lengtht)}}});
+//# sourceMappingURL=../maps/dmxValidator.js.map
diff --git a/rpmdb.sqlite3 b/rpmdb.sqlite3
new file mode 100644
index 0000000..dfc05f1
Binary files /dev/null and b/rpmdb.sqlite3 differ
diff --git a/views/.DS_Store b/views/.DS_Store
new file mode 100644
index 0000000..84a9da4
Binary files /dev/null and b/views/.DS_Store differ
diff --git a/views/.wappler_folder.json b/views/.wappler_folder.json
new file mode 100644
index 0000000..a320e06
--- /dev/null
+++ b/views/.wappler_folder.json
@@ -0,0 +1,10 @@
+{
+ "register.ejs": {
+ "layoutPage": "main",
+ "description": ""
+ },
+ "termsandconditions.ejs": {
+ "layoutPage": "main",
+ "description": ""
+ }
+}
\ No newline at end of file
diff --git a/views/index.ejs b/views/index.ejs
new file mode 100644
index 0000000..b89b103
--- /dev/null
+++ b/views/index.ejs
@@ -0,0 +1,42 @@
+
+
+
+
\ No newline at end of file
diff --git a/views/layouts/main.ejs b/views/layouts/main.ejs
new file mode 100644
index 0000000..ba1e749
--- /dev/null
+++ b/views/layouts/main.ejs
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+ Untitled Document
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <%- await include(content, locals); %>
+
+
+
+
+
\ No newline at end of file
diff --git a/views/register.ejs b/views/register.ejs
new file mode 100644
index 0000000..e3ca5d1
--- /dev/null
+++ b/views/register.ejs
@@ -0,0 +1,53 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/views/termsandconditions.ejs b/views/termsandconditions.ejs
new file mode 100644
index 0000000..4721835
--- /dev/null
+++ b/views/termsandconditions.ejs
@@ -0,0 +1,9 @@
+
+
+
+
+
+
Terms and Conditions
+
+
+
\ No newline at end of file