app-decorators
Version:
Collection of useful ES7 Decorators, writtin in ES6, that can be used for building webapps
1 lines • 76.4 kB
JavaScript
"bundle";System.register("app-decorators/src/datas/polyfills.js",["app-decorators/src/libs/element-to-function"],function(a,b){"use strict";var c,d;return{setters:[function(a){c=a.default}],execute:function(){a("polyfills",d=[[Object,"assign","node_modules/core-js/library/fn/object/assign"],[Object,"values","node_modules/core-js/library/fn/object/values"],[Object,"entries","node_modules/core-js/library/fn/object/entries"],[document,"registerElement","node_modules/webcomponents.js/webcomponents-lite",!0],[window,"Reflect","node_modules/core-js/library/fn/reflect"],[window,"WeakMap","node_modules/core-js/library/fn/weak-map"],[window,"Map","node_modules/core-js/library/fn/map"],[Element.prototype,"after","node_modules/dom4/build/dom4",!0]]),a("polyfills",d)}}}),System.register("app-decorators/src/helpers/lazyPolyfillLoader.js",["app-decorators/src/libs/element-to-function"],function(a,b){"use strict";var c,d,e,f;return{setters:[function(a){c=a.default}],execute:function(){d=function(){function a(a,b){var c=[],d=!0,e=!1,f=void 0;try{for(var g,h=a[Symbol.iterator]();!(d=(g=h.next()).done)&&(c.push(g.value),!b||c.length!==b);d=!0);}catch(a){e=!0,f=a}finally{try{!d&&h.return&&h.return()}finally{if(e)throw f}}return c}return function(b,c){if(Array.isArray(b))return b;if(Symbol.iterator in Object(b))return a(b,c);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),e=null,a("lazyPolyfillLoader",f=function(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";if(e)return e;var f=b.filter(function(a){var b=d(a,2);return!b[0][b[1]]});if(!f.length)return Promise.resolve([]);var g=c?c+"/":c;return e=Promise.all(f.map(function(b){var c=d(b,4),e=c[0],f=c[1],h=c[2],i=c[3];return a.import(""+g+h).then(function(a){return i?null:e[f]=a})})),e.catch(function(a){throw new Error(a)}),e}),a("lazyPolyfillLoader",f)}}}),System.register("app-decorators/src/bootstrap.js",["app-decorators/src/libs/element-to-function","./datas/polyfills","./helpers/lazyPolyfillLoader"],function(a,b){"use strict";var c,d,e,f;return{setters:[function(a){c=a.default},function(a){d=a.polyfills},function(a){e=a.lazyPolyfillLoader}],execute:function(){a("bootstrapPolyfills",f=e(System,d)),a("bootstrapPolyfills",f)}}}),System.register("app-decorators/src/libs/customelement.js",["app-decorators/src/libs/element-to-function"],function(a,b){"use strict";var c,d;return{setters:[function(a){c=a.default}],execute:function(){a("Register",d={prefix:"com",customElement:function(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=b.name;if(c)delete b.name;else{var d=this._getClassName(a);c=this._createComponentName(d,this.prefix)}this._addExtends(a,b),this._registerElement(a,c)},_classof:function(a){return Object.prototype.toString.call(a).slice(8,-1)},_addExtends:function(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=b.extends;return c&&!a.extends&&(a.extends=c),a},_getClassName:function(a){return a.$$componentName||a.prototype.constructor.name},_createComponentName:function(a){return(arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.prefix)+"-"+a.toLowerCase()},_enableConstructorVars:function(a){var b=a.prototype.createdCallback;return a.prototype.createdCallback=function(){(arguments.length||this.parentElement)&&b&&b.call.apply(b,[this].concat(Array.prototype.slice.call(arguments)))},a},_registerElement:function(a,b){this._enableConstructorVars(a);var c=document.registerElement(b,a);return a.create=function(a){if(arguments.length>1)throw new Error("Its not allowed to pass more than one argument");var b=d._classof(a);if("Object"!==b&&"Undefined"!==b)throw new Error("Passed argument must be an object or undefined");var e=new c;return e.createdCallback(a||""),e},a}}),a("Register",d)}}}),System.register("app-decorators/src/libs/pubsub.js",["app-decorators/src/libs/element-to-function"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f;return{setters:[function(a){d=a.default}],execute:function(){e=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),a("Pubsub",f=function(){function a(b){c(this,a),this.scope={},Object.assign(this,b)}return e(a,[{key:"publish",value:function(a){for(var b,c=arguments.length,d=Array(c>1?c-1:0),e=1;e<c;e++)d[e-1]=arguments[e];(b=this.scope).trigger.apply(b,[a].concat(d))}},{key:"subscribe",value:function(a,b){this.scope.on(a,b)}},{key:"unsubscribe",value:function(a){this.scope.off(a)}}]),a}()),a("Pubsub",f)}}}),System.register("app-decorators/src/apps/pubsub.js",["app-decorators/src/libs/element-to-function","../libs/pubsub"],function(a,b){"use strict";var c,d;return{setters:[function(a){c=a.default},function(a){d=a.Pubsub}],execute:function(){d.create=function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0]},a("Pubsub",d)}}}),System.register("app-decorators/src/helpers/trigger.js",["app-decorators/src/libs/element-to-function"],function(a,b){"use strict";function c(a){for(var b=new Event(b),c=arguments.length,d=Array(c>1?c-1:0),e=1;e<c;e++)d[e-1]=arguments[e];d.length&&(b[a]=d),this.dispatchEvent(b)}var d;return{setters:[function(a){d=a.default}],execute:function(){a("trigger",c)}}}),System.register("app-decorators/src/decorators/component.js",["app-decorators/src/libs/element-to-function","../helpers/trigger","../datas/init-maps","../libs/random-storage"],function(a,b){"use strict";function c(){var a=this.localName,b=this.getAttribute("is");return a+(b?'[is="'+b+'"]':"")}function d(a){var b=this,c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[function(){}],d=arguments[2];c.forEach(function(a){return a(b,d)}),this[a]&&this[a](d),g.call(this,a,d)}function e(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(b){h(i,b);var c=i.get(b);c.set("@component",a);var e=!0,f=!1,g=void 0;try{for(var k,l=function(){var a=k.value;b.prototype[a+"Callback"]=function(b){var e=c.get("@callbacks").get(a);d.call(this,a,e,b)}},m=j[Symbol.iterator]();!(e=(k=m.next()).done);e=!0)l()}catch(a){f=!0,g=a}finally{try{!e&&m.return&&m.return()}finally{if(f)throw g}}}}var f,g,h,i,j;return{setters:[function(a){f=a.default},function(a){g=a.trigger},function(a){h=a.initCoreMap},function(a){i=a.storage}],execute:function(){j=["created","attached","detached","attributeChanged"],a("init",d),a("component",e),a("getComponentName",c)}}}),System.register("app-decorators/src/libs/view.js",["app-decorators/src/libs/element-to-function"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h,i,j,k,l,m;return{setters:[function(a){d=a.default}],execute:function(){e=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),a("VARS",f="VARS"),a("VARS",f),a("NO_VARS",g="NO_VARS"),a("NO_VARS",g),a("PRE_COMPILED",h="PRE_COMPILED"),a("PRE_COMPILED",h),a("EVENT_VIEW_RENDER",i="render"),a("EVENT_VIEW_RENDER",i),a("EVENT_VIEW_SLOT",j="slotchange"),a("EVENT_VIEW_SLOT",j),a("EVENT_VIEW_DONE",k="done"),a("EVENT_VIEW_DONE",k),l=function(a){return Object.prototype.toString.call(a).slice(8,-1)},a("View",m=function(){function a(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};c(this,a),this._refs=null,this._templateNode=document.createElement("div"),this._regex=/\{\{.*?\}\}/,this._vars={},this._slot="slot",this.renderedTemplate="",this.init(b)}return e(a,[{key:"initialized",value:function(){return this._refs.has(this)}},{key:"reinit",value:function(a){this.init(a)}},{key:"init",value:function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.vars,c=void 0===b?{}:b,d=a.rootNode,e=a.prerenderer,f=a.precompiler,g=a.template;if(!d)throw new Error("\n\t\t\t\tRequired: rootNode.\n\t\t\t\tOptional: use prerenderer when template/s are precompiled.\n\t\t\t\tOptional: use precompiler when render raw template string.\n\t\t\t");this._refs=new WeakMap([[this,new Map([["rootNode",d],["precompile",f],["prerender",e],["templates",new Map([["base",""]])]])]]),Object.assign(this._vars,this._immutable(c)),g&&this.setTemplate(g)}},{key:"destroy",value:function(){this._refs.delete(this)}},{key:"set",value:function(a,b){var c=l(a);if(!/Object|String/.test(c))throw new Error("Allowed is string or object as arguments");return"Object"===c&&Object.assign(this._vars,a),"String"===c&&(this._vars[a]=b),this}},{key:"get",value:function(a){if(!/String/.test(l(a)))throw new Error("Allowed is string as argument");return this._vars[a]}},{key:"getVars",value:function(){return this._vars}},{key:"setTemplate",value:function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"base";if(this._getTemplateType(a)===g)this.compile(g,a,b);else if(this._getTemplateType(a)===f)this.compile(f,a,b);else{if(this._getTemplateType(a)!==h)throw new Error("\n\t\t\t\tsetTemplate: an error occurred: unknown template type.\n\t\t\t");this.compile(h,a,b)}return this}},{key:"_getTemplateType",value:function(a){return/String/.test(l(a))&&!this._regex.test(a)?g:/String/.test(l(a))&&this._regex.test(a)?f:/Object/.test(l(a))?h:null}},{key:"compile",value:function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"VARS",b=arguments[1],c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"base",d=this._refs.get(this).get("templates");switch(a){case g:d.set(c,function(){return b});break;case f:d.set(c,this._compile(b));break;case h:d.set(c,this._prerender(b))}return d.get(c)}},{key:"render",value:function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=b.templateName,d=void 0===c?"base":c,e=b.force,f=void 0!==e&&e,g=b.renderedFlag,h=void 0===g||g,l=Object.assign({},this._vars,a),m=this._getRootNode();if(this.getAttribute(m,"rendered")&&!f)return this;f&&this._emptyNode(m),this.renderedTemplate=this._render(d,l),this.trigger(i),this._templateNode.innerHTML=this.renderedTemplate;var n=this._getSlotNode(this._templateNode);return n&&(this._moveRootNodesToSlotNode(m,n),this.trigger(j)),this.appendChildNodesTo(this._templateNode,m),h&&this.setAttribute(m,"rendered",h),this.trigger(k),this}},{key:"_render",value:function(a,b){return this._refs.get(this).get("templates").get(a)(b)}},{key:"_getSlotNode",value:function(a){return a.querySelector(this._slot)}},{key:"_moveRootNodesToSlotNode",value:function(a,b){this.appendChildNodesTo(a,b)}},{key:"_emptyNode",value:function(a){a.innerHTML=""}},{key:"_compile",value:function(a){var b=this._precompile(a);return this._prerender(b)}},{key:"_precompile",value:function(a){var b=this._refs.get(this).get("precompile")(a);return new Function("return "+b)()}},{key:"_prerender",value:function(a){return this._refs.get(this).get("prerender")(a)}},{key:"_getRootNode",value:function(){return this._refs.get(this).get("rootNode")}},{key:"_immutable",value:function(a){return JSON.parse(JSON.stringify(a))}},{key:"getAttribute",value:function(a,b){if(!a instanceof Element)throw new Error("Allowed is domNode as argument");return a.getAttribute(b)}},{key:"setAttribute",value:function(a,b,c){if(!a instanceof Element)throw new Error("Allowed is domNode as argument");a.setAttribute(b,c)}},{key:"getRootNode",value:function(){return this._refs.get(this).get("rootNode")}},{key:"appendChildNodesTo",value:function(a,b){for(;a.childNodes.length>0;)b.appendChild(a.childNodes[0])}},{key:"trigger",value:function(a){var b=new Event(a);this._refs.get(this).get("rootNode").dispatchEvent(b)}},{key:"el",get:function(){return this._refs.get(this).get("rootNode")}}]),a}()),a("View",m)}}}),System.register("app-decorators/src/helpers/extract-dom-properties.js",["app-decorators/src/libs/element-to-function"],function(a,b){"use strict";function c(a,b){var c=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(b&&"RegExp"!==f(b))throw Error("Second argument is passed but it must be a Regular-Expression");var d={},g=[];for(var h in a.attributes)if(a.attributes.hasOwnProperty(h)){var i=a.attributes[h];if(b){var j=b.exec(i.name);if(null!==j){var k=e(j,2),l=k[1];d[l]=i.value,c&&g.push(i.name)}}else b||(d[i.name]=i.value)}if(c){var m=!0,n=!1,o=void 0;try{for(var p,q=g[Symbol.iterator]();!(m=(p=q.next()).done);m=!0){var r=p.value;a.removeAttribute(r)}}catch(a){n=!0,o=a}finally{try{!m&&q.return&&q.return()}finally{if(n)throw o}}}return d}var d,e,f;return{setters:[function(a){d=a.default}],execute:function(){e=function(){function a(a,b){var c=[],d=!0,e=!1,f=void 0;try{for(var g,h=a[Symbol.iterator]();!(d=(g=h.next()).done)&&(c.push(g.value),!b||c.length!==b);d=!0);}catch(a){e=!0,f=a}finally{try{!d&&h.return&&h.return()}finally{if(e)throw f}}return c}return function(b,c){if(Array.isArray(b))return b;if(Symbol.iterator in Object(b))return a(b,c);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),f=function(a){return Object.prototype.toString.call(a).slice(8,-1)},a("extractDomProperties",c)}}}),System.register("app-decorators/src/decorators/view.js",["app-decorators/src/libs/element-to-function","../libs/view","../helpers/extract-dom-properties","../datas/init-maps","../libs/random-storage","../libs/dependencies"],function(a,b){"use strict";function c(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!a)throw new Exception("Please pass a template!");return function(d){var l=!(!1===b.renderedFlag);g(i,d),h(i,d);var m=i.get(d);m.get("@view").get("callbacksDefined")||(m.get("@callbacks").get("created").push(function(b){var d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},g=f(b,/^@view\.bind\.(\S+)$/i,!0),h=f(b),i={};m.get("@view").get("bind").forEach(function(a){var b=k(a,2),c=b[0],d=b[1];return i[c]=d});var n=Object.assign({},i,g,d,h),o=new e({prerenderer:j.template,rootNode:b,vars:n,template:a});c.helper.registerSetGet(b,Object.assign({},i,g)),o.render(null,{renderedFlag:l}),b.$view=o}),m.get("@callbacks").get("attached").push(function(a){a.$view.initialized()||a.$view.reinit({rootNode:a,prerenderer:j.template})}),m.get("@callbacks").get("detached").push(function(a){a.$view.destroy()}),m.get("@view").set("callbacksDefined",!0))}}var d,e,f,g,h,i,j,k;return{setters:[function(a){d=a.default},function(a){e=a.View},function(a){f=a.extractDomProperties},function(a){g=a.initCoreMap,h=a.initViewMap},function(a){i=a.storage},function(a){j=a.HandlebarsRuntime}],execute:function(){k=function(){function a(a,b){var c=[],d=!0,e=!1,f=void 0;try{for(var g,h=a[Symbol.iterator]();!(d=(g=h.next()).done)&&(c.push(g.value),!b||c.length!==b);d=!0);}catch(a){e=!0,f=a}finally{try{!d&&h.return&&h.return()}finally{if(e)throw f}}return c}return function(b,c){if(Array.isArray(b))return b;if(Symbol.iterator in Object(b))return a(b,c);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),c.bind=function(a,b,c){var d=a.constructor;g(i,d),h(i,d);var e=c.initializer?c.initializer():"";i.get(d).get("@view").get("bind").push([b,e])},c.helper={registerSetGet:function(a,b){b=JSON.parse(JSON.stringify(b));var c={},d=function(a){c[a]={set:function(b){this.$view.set(a,b),this.$view.render(null,{force:!0})},get:function(){return this.$view.get(a)}}};for(var e in b)d(e);return c.render={value:function(){var a;(a=this.$view).set.apply(a,arguments),this.$view.render(null,{force:!0})}},Object.defineProperties(a,c),a}},a("view",c)}}}),System.register("app-decorators/src/libs/stylesheet.js",["app-decorators/src/libs/element-to-function"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g;return{setters:[function(a){d=a.default}],execute:function(){e=function(){function a(a,b){var c=[],d=!0,e=!1,f=void 0;try{for(var g,h=a[Symbol.iterator]();!(d=(g=h.next()).done)&&(c.push(g.value),!b||c.length!==b);d=!0);}catch(a){e=!0,f=a}finally{try{!d&&h.return&&h.return()}finally{if(e)throw f}}return c}return function(b,c){if(Array.isArray(b))return b;if(Symbol.iterator in Object(b))return a(b,c);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),f=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),a("Stylesheet",g=function(){function a(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};c(this,a),this._refs={appendTo:null,stylesElement:null,scope:null},this._attachOn="load",this._styles="",this._imports=[],this._type="on",this._removeEvent=!0,this._eventFactory=function(a){},this._onLoadImports=null,this._order=void 0,this._fallback=!1,this._attached=!1,this._event="attached",this._eventStatePattern=[/DOMContentLoaded|load/,"on"],this._stateSettings={DOMContentLoaded:"interactive",load:"complete"},this.alreadyDone=!1,this.init(b)}return f(a,[{key:"init",value:function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.appendTo,c=a.styles,d=a.attachOn,e=a.imports,f=a.type,g=a.eventFactory,h=a.removeEvent,i=a.onLoadImports,j=a.order,k=a.alreadyDone,l=a.fallback;if(!b)throw new Error("Required: appendTo");if(!c&&!e)throw new Error("Required: styles or imports");this.alreadyDone=k,this._checkElement(b),this._initRefs(),this._attachOn=d||this._attachOn,this._appendTo=b,this._styles=c,this._imports=e||[],this._type=f||this._type,this._eventFactory=g,this._onLoadImports=i||this._onLoadImports,this._removeEvent="boolean"==typeof h?h:this._removeEvent,this._fallback="boolean"==typeof l?l:this._fallback,this._order=j>=0?j:this._order,this._initScope(),this._eventListener=this._eventFactory(this._scope),this._run(c,e)}},{key:"reinit",value:function(a){this._checkElement(a),this._initRefs(),this._appendTo=a,this._initScope(),this._eventListener=this._eventFactory(this._scope),this._run(this._styles,this._imports)}},{key:"initialized",value:function(){return this._refs.has(this)}},{key:"destroy",value:function(){if(!this._refs.has(this))return null;this._cleanup(),this._refs.delete(this)}},{key:"cleanup",value:function(){this._cleanup()}},{key:"_checkElement",value:function(a){if(!(a instanceof HTMLElement))throw new Error("Passed appendTo element should be instance of HTMLElement")}},{key:"_run",value:function(a,b){if(this._isAlreadyDone(this._attachOn))return void this._runProcess(a,b);this._addEventListener(this._attachOn,a,b)}},{key:"_getEventName",value:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").split(" ")[0]}},{key:"_addEventListener",value:function(a,b,c){var d=this;this._eventListener.on(a,function(){d._processListener(b,c),d.alreadyDone=!0;var e=d._getEventName(a);d._removeEvent&&d._eventListener.off(e)})}},{key:"_isAlreadyDone",value:function(a){return this.alreadyDone?this.alreadyDone:"immediately"===this._attachOn?this.alreadyDone=!0:"complete"===this._getDocumentReadyState()&&"DOMContentLoaded"===a?this.alreadyDone=!0:this.alreadyDone=this._getDocumentReadyState()===this._stateSettings[a]}},{key:"_initScope",value:function(){var a=e(this._eventStatePattern,2),b=a[0],c=a[1];b.test(this._attachOn)&&c===this._type?this._scope=window:this._scope=this._appendTo}},{key:"_getDocumentReadyState",value:function(){return document.readyState}},{key:"_runProcess",value:function(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],c=null;a&&(this._stylesElement=this._createStylesheetNode(a),c=this._insertStylesheetNode(this._appendTo,this._stylesElement));var d=!0,e=!1,f=void 0;try{for(var g,h=b[Symbol.iterator]();!(d=(g=h.next()).done);d=!0){var i=g.value;this._supportRelPreload()?this._stylesElement=this._createLinkRelPreloadNode(i):this._stylesElement=this._createLinkRelStylesheetNode(i),c=this._insertStylesheetNode(this._appendTo,this._stylesElement)}}catch(a){e=!0,f=a}finally{try{!d&&h.return&&h.return()}finally{if(e)throw f}}return this._trigger(this._event),c}},{key:"_processListener",value:function(a,b){this._runProcess(a,b)}},{key:"_cleanup",value:function(){if(this._processListener){this._eventListener.off(this._attachOn);var a=this._appendTo.querySelectorAll("link,style"),b=!0,c=!1,d=void 0;try{for(var e,f=(a.length&&a||[])[Symbol.iterator]();!(b=(e=f.next()).done);b=!0){var g=e.value;g.parentElement.removeChild(g)}}catch(a){c=!0,d=a}finally{try{!b&&f.return&&f.return()}finally{if(c)throw d}}}}},{key:"_insertStylesheetNode",value:function(a,b){this._addOrderClass(this._order);var c=[],d=c[0],e=".style-order-"+this._order,f=a.querySelectorAll(e);return(d=this._order>=0&&f.length?this._lastItem(f):this._lastItem(a.children))?(/style|link/.test(d.localName.toLowerCase())?d.after(b):d.before(b),a):(a.appendChild(b),a)}},{key:"_createStylesheetNode",value:function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",b=document.createElement("style");return b.styleSheet?b.styleSheet.cssText=this._styles:b.appendChild(document.createTextNode(a)),b}},{key:"_createLinkRelPreloadNode",value:function(a){var b=this._createElement("div");return b.innerHTML='<link rel="preload" as="style" href="'+a+"\" onload=\"this.rel='stylesheet';this.__event = new CustomEvent('load:stylesheet', { bubbles: true });this.dispatchEvent(this.__event)\">",b.querySelector("link")}},{key:"_createLinkRelStylesheetNode",value:function(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"all",c=this,d=this._createElement("link"),e=new CustomEvent("load:stylesheet",{bubbles:!0,detail:this});return d.rel="stylesheet",d.href=a,d.media="only x",d.onload=function(){var a=this;if(!c._onLoadImports)return a.media=""+b,void d.dispatchEvent(e);c._onLoadImports(function(c){a.media=""+b,c&&c(),d.dispatchEvent(e)},a)},d}},{key:"_initRefs",value:function(){this._refs=new WeakMap([[this,new Map([["appendTo",null],["scope",null],["eventListener",null]])]])}},{key:"_trigger",value:function(a){this._attached=!0;var b=new CustomEvent(a,{bubbles:!0,detail:{type:"stylesheet"}});this._appendTo.dispatchEvent(b)}},{key:"_createElement",value:function(a){return document.createElement(a)}},{key:"_lastItem",value:function(a){return a[a.length-1]}},{key:"_addOrderClass",value:function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0;a>=0&&this._stylesElement.classList.add("style-order-"+a)}},{key:"supportRelPreload",value:function(){return this._supportRelPreload()}},{key:"_supportRelPreload",value:function(){if(this._fallback)return!1;var a=!1;try{a=window.document.createElement("link").relList.supports("preload")}catch(b){a=!1}return a}},{key:"_appendTo",set:function(a){this._refs.get(this).set("appendTo",a)},get:function(){return this._refs.get(this)&&this._refs.get(this).get("appendTo")}},{key:"_stylesElement",set:function(a){this._refs.get(this).set("stylesElement",a)},get:function(){return this._refs.get(this)&&this._refs.get(this).get("stylesElement")}},{key:"_scope",set:function(a){this._refs.get(this).set("scope",a)},get:function(){return this._refs.get(this)&&this._refs.get(this).get("scope")}},{key:"_eventListener",set:function(a){this._refs.get(this).set("eventListener",a)},get:function(){return this._refs.get(this)&&this._refs.get(this).get("eventListener")}}]),a}()),a("Stylesheet",g)}}}),System.register("app-decorators/src/decorators/style.js",["app-decorators/src/libs/element-to-function","../libs/stylesheet","../datas/init-maps","../libs/random-storage","../libs/eventhandler","../apps/router"],function(a,b){"use strict";function c(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(c){f(h,c),g(h,c);var d=h.get(c),e=d.get("@style");e.set("stylesheets",a);var i=e.get("referenceNodes"),j=e.get("stylesheetStates");if(!d.get("@style").get("callbacksDefined")){var k=function(d){if(m(d,"$stylesheets",[]),!i.size){var f=e.get("stylesheetStates");n(c,a,d,b,f)}!i.has(d)&&i.set(d,d)};d.get("@callbacks").get("created").push(k),d.get("@callbacks").get("attached").push(k),d.get("@callbacks").get("detached").push(function(d){if(d.$stylesheets.forEach(function(a){return a.destroy()}),i.has(d)&&i.delete(d),!d.$stylesheets.length)return null;j=l(d.$stylesheets,j)||[];var f=i.values().next().value;f&&n(c,a,f,b,j),e.set("stylesheetStates",j),delete d.$stylesheets}),d.get("@style").set("callbacksDefined",!0)}}}var d,e,f,g,h,i,j,k,l,m,n;return{setters:[function(a){d=a.default},function(a){e=a.Stylesheet},function(a){f=a.initCoreMap,g=a.initStyleMap},function(a){h=a.storage},function(a){i=a.Eventhandler},function(a){j=a.Router}],execute:function(){k=function(a,b){var c=a.type;if("on"===c||"default"===c)return new i({element:b});if("action"===c){a.attachOn+=" "+a.attachOn;var d=j.create({scope:b});return d.start(),d}return"query"===c?{on:function(){},off:function(){}}:void 0},l=function(a,b){return b=[],a.forEach(function(a){return b.push(a.alreadyDone)}),b},m=function(a,b,c){a[b]&&a[b].length||(a[b]=c)},n=function(a,b,c,d,f){for(var g=function(a,g){var h=b[a],i=new e({appendTo:c,attachOn:h.attachOn,imports:h.imports,styles:h.styles,type:h.type,order:a,alreadyDone:f[a],fallback:d.fallback,eventFactory:function(a){return k(h,a)}});c.$stylesheets.push(i)},h=0,i=b.length;h<i;h++)g(h,i);return c},a("style",c)}}}),System.register("app-decorators/src/helpers/namespace.js",["app-decorators/src/libs/element-to-function"],function(a,b){"use strict";var c,d;return{setters:[function(a){c=a.default}],execute:function(){a("namespace",d={create:function(){for(var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,d=b.split("."),e=a,f=0,g=d.length;f<g;f++)void 0===e[d[f]]&&(e[d[f]]={}),c&&f+1===g&&(e[d[f]]=c),e=e[d[f]];return a}}),a("namespace",d)}}}),System.register("app-decorators/src/decorators/on.js",["app-decorators/src/libs/element-to-function","../libs/eventhandler","../helpers/namespace","../datas/init-maps","../libs/random-storage"],function(a,b){"use strict";function c(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"local";if(!a)throw new Error('Please pass an event type e.g "click"');return function(d,e,k){var l=d.constructor,m=k.value,n=l;g(i,n),h(i,n);var o=i.get(n),p=m,q=o.get("@on").get("events");"local"===b?q.get("local").push([a,p]):q.get("context").push([a,[p,b]]),o.get("@on").get("callbacksDefined")||(o.get("@callbacks").get("created").push(function(a){var b=o.get("@on").get("events").get("local");if(b.length){var d=c.helper.createLocalEventHandler(b,a);f.create(a,"$eventHandler.local",d)}var e=o.get("@on").get("events").get("context");e.length&&c.helper.createCustomEventHandler(e,a,function(b,c){f.create(a,"$eventHandler."+c,b)})}),o.get("@callbacks").get("attached").push(function(a){var b=0,c=Object.values(a.$eventHandler);c.forEach(function(a){a.initialized()&&b++}),b!==c.length&&Object.entries(a.$eventHandler).forEach(function(b){var c=j(b,2),d=c[0];c[1].reinit({events:o.get("@on").get("events").get(d),element:a,bind:a})})}),o.get("@callbacks").get("detached").push(function(a){Object.values(a.$eventHandler).forEach(function(a){a.destroy()})}),o.get("@on").set("callbacksDefined",!0))}}var d,e,f,g,h,i,j;return{setters:[function(a){d=a.default},function(a){e=a.Eventhandler},function(a){f=a.namespace},function(a){g=a.initCoreMap,h=a.initOnMap},function(a){i=a.storage}],execute:function(){j=function(){function a(a,b){var c=[],d=!0,e=!1,f=void 0;try{for(var g,h=a[Symbol.iterator]();!(d=(g=h.next()).done)&&(c.push(g.value),!b||c.length!==b);d=!0);}catch(a){e=!0,f=a}finally{try{!d&&h.return&&h.return()}finally{if(e)throw f}}return c}return function(b,c){if(Array.isArray(b))return b;if(Symbol.iterator in Object(b))return a(b,c);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),c.helper={createLocalEventHandler:function(a,b){return new e({events:a,element:b,bind:b})},createCustomEventHandler:function(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},d=!0,f=!1,g=void 0;try{for(var h,i=a[Symbol.iterator]();!(d=(h=i.next()).done);d=!0){var k=h.value,l=j(k,2),m=l[0],n=j(l[1],2),o=n[0],p=n[1],q=new e({element:p,bind:b}),r=Object.prototype.toString.call(p).slice(8,-1).toLowerCase(),s=m+"_"+r+"_"+o.name;q.on(m,o),c(q,s)}}catch(a){f=!0,g=a}finally{try{!d&&i.return&&i.return()}finally{if(f)throw g}}return b}},a("on",c)}}}),System.register("app-decorators/src/libs/eventhandler.js",["app-decorators/src/libs/element-to-function"],function(a,b){"use strict";function c(a,b,c){return b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var e,f,g,h;return{setters:[function(a){e=a.default}],execute:function(){f=function(){function a(a,b){var c=[],d=!0,e=!1,f=void 0;try{for(var g,h=a[Symbol.iterator]();!(d=(g=h.next()).done)&&(c.push(g.value),!b||c.length!==b);d=!0);}catch(a){e=!0,f=a}finally{try{!d&&h.return&&h.return()}finally{if(e)throw f}}return c}return function(b,c){if(Array.isArray(b))return b;if(Symbol.iterator in Object(b))return a(b,c);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),g=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),a("Eventhandler",h=function(){function a(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};d(this,a),this._refs={events:{},element:null,bind:null},this._mainEventCallackContainer={},this.init(b)}return g(a,[{key:"init",value:function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.element,c=a.events,d=a.bind;if(this._initRefs({element:b}),this._element=b,d){if(this._bind=d,!c)return;c=this._bindObjectToEventList(c,d)}var e=this._groupEvents(c);this._events=e,this._addEventCollection(e)}},{key:"initialized",value:function(){return this._refs.has(this)}},{key:"reinit",value:function(a){this.init(a)}},{key:"destroy",value:function(){this._reset(),this._refs.delete(this)}},{key:"_initRefs",value:function(a){var b=a.element;if(!b)throw new Error('\n\t\t\t\tRequired: element.\n\t\t\t\tOptional: use "events" when registering over constructor.\n\t\t\t\tOptional: use "bind" when bind object to handler.\n\t\t\t');if(!b instanceof HTMLElement)throw new Error("Passed element should be instance of HTMLElement");this._refs=new WeakMap([[this,new Map([["events",{}],["element",null],["bind",null]])]])}},{key:"_prepareEventdomain",value:function(a){if("String"!==Object.prototype.toString.call(a).slice(8,-1))throw new Error("Passed argument must be a string");var b=a.split(" "),c=b[0],d=null;return b[1]&&(d=b.splice(1).join(" ")),[c,d]}},{key:"_groupEvents",value:function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],b={},d=!0,e=!1,g=void 0;try{for(var h,i=a[Symbol.iterator]();!(d=(h=i.next()).done);d=!0){var j=f(h.value,2),k=j[0],l=j[1],m=this._prepareEventdomain(k),n=f(m,2),o=n[0],p=n[1];b[o]||(b[o]=[]),b[o].push(c({},p,l))}}catch(a){e=!0,g=a}finally{try{!d&&i.return&&i.return()}finally{if(e)throw g}}return b}},{key:"_bindObjectToEventList",value:function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=[],d=!0,e=!1,g=void 0;try{for(var h,i=a[Symbol.iterator]();!(d=(h=i.next()).done);d=!0){var j=f(h.value,2),k=j[0],l=j[1];c.push([k,l.bind(b)])}}catch(a){e=!0,g=a}finally{try{!d&&i.return&&i.return()}finally{if(e)throw g}}return c}},{key:"on",value:function(a,b){var d,e=this._events,g=this._prepareEventdomain(a),h=f(g,2),i=h[0],j=h[1];e[i]||(e[i]=[],this._addEvent(this._element,i,e)),e[i].push(c({},j,this._bind?(d=this._bind,b).bind(d):b))}},{key:"off",value:function(a){var b=this._events,c=this._prepareEventdomain(a),d=f(c,2),e=d[0],g=d[1];if(b[e]){var h=0,i=!0,j=!1,k=void 0;try{for(var l,m=b[e][Symbol.iterator]();!(i=(l=m.next()).done);i=!0){var n=l.value;g&&n[g]&&b[e].splice(h,1),(e&&null===g||0===b[e].length)&&delete b[e],h++}}catch(a){j=!0,k=a}finally{try{!i&&m.return&&m.return()}finally{if(j)throw k}}b[e]||(this._element.removeEventListener(e,this._mainEventCallackContainer[e]),delete b[e])}}},{key:"trigger",value:function(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,c=new CustomEvent(a,{detail:b,bubbles:!0});this._element.dispatchEvent(c)}},{key:"getHandlers",value:function(a){return this._events[a]||null}},{key:"_addEventCollection",value:function(a){for(var b in a)a.hasOwnProperty(b)&&this._addEvent(this._element,b,this._events)}},{key:"_addEvent",value:function(a,b,c){this._mainEventCallackContainer[b]=function(a){var d=c[b],e=!0,f=!1,g=void 0;try{for(var h,i=d[Symbol.iterator]();!(e=(h=i.next()).done);e=!0){var j=h.value,k=Object.keys(j)[0],l=j[k],m=!1;k&&a.target.matches&&(m=a.target.matches(k)),("null"===k||m)&&l(a)}}catch(a){f=!0,g=a}finally{try{!e&&i.return&&i.return()}finally{if(f)throw g}}},a.addEventListener(b,this._mainEventCallackContainer[b],!1)}},{key:"_reset",value:function(){var a=this._events;if(Object.keys(a).length)for(var b in a)a.hasOwnProperty(b)&&this.off(b)}},{key:"_events",set:function(a){this._refs.get(this).set("events",a)},get:function(){return this._refs.get(this)&&this._refs.get(this).get("events")||{}}},{key:"_element",set:function(a){this._refs.get(this).set("element",a)},get:function(){return this._refs.get(this)&&this._refs.get(this).get("element")||{}}},{key:"_bind",set:function(a){this._refs.get(this).set("bind",a)},get:function(){return this._refs.get(this).get("bind")}}]),a}()),a("Eventhandler",h)}}}),System.register("app-decorators/src/libs/router.js",["app-decorators/src/libs/element-to-function"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g;return{setters:[function(a){d=a.default}],execute:function(){e=function(){function a(a,b){var c=[],d=!0,e=!1,f=void 0;try{for(var g,h=a[Symbol.iterator]();!(d=(g=h.next()).done)&&(c.push(g.value),!b||c.length!==b);d=!0);}catch(a){e=!0,f=a}finally{try{!d&&h.return&&h.return()}finally{if(e)throw f}}return c}return function(b,c){if(Array.isArray(b))return b;if(Symbol.iterator in Object(b))return a(b,c);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),f=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),a("Router",g=function(){function a(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};c(this,a),this._refs={routes:null,scope:null,globalScope:null,bind:null,helper:null},this.event={action:null,urlchange:null},this.mode={shadowRoute:null},this.promise={},this._runRoute=!0,this._lastFragment=null,this._routes={pathname:{},search:{},hash:{},cache:{}},this._autoStart=!1,this._uid=null,this.tmpDomain="http://x.x";var d=b.event,e=b.mode,f=b.autostart;this.event=d,this.mode=e,this._autoStart="boolean"==typeof f?f:this._autoStart,this.init(b)}return f(a,[{key:"init",value:function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._initRefs(a),this._bindInternalCoreEvents(),this._initRoutes(),this._createUid(),this._autoStart&&this.start()}},{key:"reinit",value:function(a){this.init(a)}},{key:"initialized",value:function(){return this._refs.has(this)}},{key:"delete",value:function(){this._refs.delete(this)}},{key:"_initRefs",value:function(a){var b=a.routes,c=void 0===b?[]:b,d=a.scope,e=a.globalScope,f=a.helper,g=a.bind;if(!d||!e||!f)throw new Error("\n\t\t\t\tRequired: scope, globalScope and helper.\n\t\t\t\tOptional: use routes when passing routes through constructor.\n\t\t\t\tOptional: use bind when overriding scope of handlers.\n\t\t\t");this._refs=new WeakMap([[this,new Map([["routes",c],["scope",d],["globalScope",e],["bind",g],["helper",f]])]])}},{key:"RegExp",value:function(){var a;return(a=this._refs.get(this).get("helper")).RegExp.apply(a,arguments)}},{key:"guid",value:function(){var a;return(a=this._refs.get(this).get("helper")).guid.apply(a,arguments)}},{key:"pushState",value:function(){var a;return(a=history).pushState.apply(a,arguments)}},{key:"replaceState",value:function(){var a;return(a=history).replaceState.apply(a,arguments)}},{key:"forward",value:function(){return history.forward()}},{key:"back",value:function(){return history.back()}},{key:"_createUid",value:function(){this._uid=this.guid()}},{key:"on",value:function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;if(!a)throw"Please pass at least type e.g urlchange, Foo, Bar, ...";var c=Object.prototype.toString.call(b).slice(8,-1);if(void 0!==b&&"Function"!==c)throw"The handler must be a Function or Undefined";var d=a.split(" "),f=e(d,2),g=f[0],h=f[1],i=this.addRouteListener(g,h,b);return this._autoStart&&this.start(),i}},{key:"off",value:function(a){if(!a)throw"No event passed";this._removeRoute(a)}},{key:"trigger",value:function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this._refs.has(this))return null;this.scope.trigger(a,b)}},{key:"destroy",value:function(){if(!this._refs.has(this))return null;this._removeInternalCoreEvents(),this._removeRegisteredEvents(),this._removeRefs()}},{key:"addRouteListener",value:function(a,b,c){var d=this;if(c&&this.bind){var e;c=(e=this.bind,c).bind(e)}b&&a&&c&&this._addRoute(b,a,c);var f=null;return a&&!c&&(f=this._addPromise(a)),this.scope.on(a,function(b){var e=d.createURL(location.href),f=e.search,g=e.hash,h=d.queryString.parse(f),i=d.queryString.parse(g),j=Object.assign({},b.detail,{search:h,hash:i,event:b});c&&c(j),d._promiseHandler(a,j)}),f}},{key:"_addRoute",value:function(a,b,c){if(!this._isValidRoute(a))throw'\n\t\t\t\tPassed "'+a+'" is not valid. Please\n\t\t\t\tpass only pathname, search or hash.\n\t\t\t';var d=this._getURLType(a);if(this._routes[d][a])throw'route: "'+a+'" already exists!';if(this._existsEvent(b))throw'Eventname: "'+b+'" already exists!';var e=this._isDynamicURL(a)?"dynamic":"static",f="pathname"===d,g=this._convertRouteToXRegexExp(a,f),h={name:b,route:a,regex:g,type:e,urlpart:d,handler:c};this._routes[d][a]=this._createRouteObject(h)}},{key:"_existsEvent",value:function(a){var b=this.getRoutes(),c=!0,d=!1,e=void 0;try{for(var f,g=Object.keys(b)[Symbol.iterator]();!(c=(f=g.next()).done);c=!0){if(a===b[f.value].name)return!0}}catch(a){d=!0,e=a}finally{try{!c&&g.return&&g.return()}finally{if(d)throw e}}return!1}},{key:"_removeRoute",value:function(a){this.scope.off(a);var b=this.getRoutes(),c=!0,d=!1,e=void 0;try{for(var f,g=Object.keys(b)[Symbol.iterator]();!(c=(f=g.next()).done);c=!0){var h=f.value,i=b[h],j=i.name,k=i.urlpart,l=i.route;if(j===a)return void delete this._routes[k][l]}}catch(a){d=!0,e=a}finally{try{!c&&g.return&&g.return()}finally{if(d)throw e}}}},{key:"_createRouteObject",value:function(a){var b=a.name,c=a.route,d=a.regex,e=a.type,f=a.urlpart;return{type:e,name:b,route:c,handler:a.handler,urlpart:f,regex:d,params:null,fragment:null,cache:!1}}},{key:"_addPromise",value:function(a){var b=this;return this.promise[a]||(this.promise[a]=[]),new Promise(function(c){b.promise[a].push(c)})}},{key:"getRoutes",value:function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return a?this._routes[a]:Object.assign({},this._routes.pathname,this._routes.search,this._routes.hash)}},{key:"createURL",value:function(a){var b=new URL(a);return b.fragment=b.href.replace(b.origin,""),b}},{key:"_bindInternalCoreEvents",value:function(){var a=this;this.scope.on(this.event.action,this._onAction.bind(this)),this.globalScope.on(this.event.popstate,function(b){a._inPopstateScope(b)&&a._onAction(b)}),this.scope.on(this.event.urlchange,this._onUrlchange.bind(this))}},{key:"_inPopstateScope",value:function(a){var b=a.state&&a.state.route_uid,c=this._uid===b;return b&&c}},{key:"_removeInternalCoreEvents",value:function(){this.scope.off(this.event.action),this.globalScope.off(this.event.popstate),this.scope.off(this.event.urlchange)}},{key:"_removeRegisteredEvents",value:function(){var a=this.getRoutes(),b=!0,c=!1,d=void 0;try{for(var e,f=Object.keys(a)[Symbol.iterator]();!(b=(e=f.next()).done);b=!0){var g=e.value,h=a[g].name;this.off(h)}}catch(a){c=!0,d=a}finally{try{!b&&f.return&&f.return()}finally{if(c)throw d}}}},{key:"_removeRefs",value:function(){this.delete()}},{key:"_initRoutes",value:function(){if(this.routes.length){var a=!0,b=!1,c=void 0;try{for(var d,f=this.routes[Symbol.iterator]();!(a=(d=f.next()).done);a=!0){var g=d.value,h=e(g,2),i=h[0],j=h[1];if(this.bind){var k;j=(k=this.bind,j).bind(k)}this.on(i,j)}}catch(a){b=!0,c=a}finally{try{!a&&f.return&&f.return()}finally{if(b)throw c}}}}},{key:"_onAction",value:function(a){this._preventDefault(a),this._runRoute&&(this.mode.shadowRoute&&this._stopPropagation(a),this._applyActionEvent(a))}},{key:"_applyActionEvent",value:function(a){var b=this._getCurrentHref(a),c=this.createURL(b),d=c.fragment,e=this._diffFragments(d,this._lastFragment),f=e.changed,g=e.changepart;if(f){if(Object.assign(c,{changepart:g,target:a.target}),this._isDefinedEventAction(a.type)){var h=encodeURI(d),i=this._uid;this.pushState({route_uid:i},null,h)}this.trigger(this.event.urlchange,c)}this._setURLFragment(d)}},{key:"_isDefinedEventAction",value:function(a){return a===this._getDefinedEventAction()}},{key:"_getCurrentHref",value:function(a){var b=this._getDefinedEventAction();return a.type===b?a.target.href:location.href}},{key:"_getDefinedEventAction",value:function(){var a=this.event.action.split(" ");return e(a,1)[0]}},{key:"_diffFragments",value:function(a,b){var c={changed:!1,changepart:[]};c.changed=a!==b||null===b;var d=this._convertFragmentToParts(a),e=this._convertFragmentToParts(b),f=this._diffFragmentParts(d,e);return c.changepart=f,c}},{key:"_convertFragmentToParts",value:function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",b=this.createURL(""+this.tmpDomain+a);return{pathname:b.pathname,search:b.search,hash:b.hash}}},{key:"_diffFragmentParts",value:function(a,b){var c=[],d=!0,e=!1,f=void 0;try{for(var g,h=Object.keys(a)[Symbol.iterator]();!(d=(g=h.next()).done);d=!0){var i=g.value;a[i]!==b[i]&&c.push(i)}}catch(a){e=!0,f=a}finally{try{!d&&h.return&&h.return()}finally{if(e)throw f}}return c}},{key:"_setURLFragment",value:function(a){this._lastFragment=a}},{key:"_onUrlchange",value:function(a){if(!(a.detail instanceof URL))return null;var b=a.detail,c=b.fragment,d=b.changepart,e=b.target,f=this._matchURL(c,d,!0);if(!f.length)return null;var g=!0,h=!1,i=void 0;try{for(var j,k=f[Symbol.iterator]();!(g=(j=k.next()).done);g=!0){var l=j.value,m=l.name;l.URL=a.detail,this.trigger(m,Object.assign({},l,{target:e}))}}catch(a){h=!0,i=a}finally{try{!g&&k.return&&k.return()}finally{if(h)throw i}}}},{key:"_matchURL",value:function(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],c=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],d=[],e=!0,f=!1,g=void 0;try{for(var h,i=b[Symbol.iterator]();!(e=(h=i.next()).done);e=!0){var j=h.value,k=null,l=""+this.tmpDomain+a,m=this.createURL(l)[j];k=this._getRouteCache(m),k&&c?d.push(k):(k=this._match(m,j))&&(this._addRouteCache(a,k),d.push(k))}}catch(a){f=!0,g=a}finally{try{!e&&i.return&&i.return()}finally{if(f)throw g}}return d}},{key:"_match",value:function(a,b){var c=Object.keys(this._routes[b]||{}),d=!0,e=!1,f=void 0;try{for(var g,h=c[Symbol.iterator]();!(d=(g=h.next()).done);d=!0){var i=g.value,j=this._routes[b][i],k=this.RegExp(j.regex),l=k.exec(a);if(null!==l){var m=l.groups(),n=this._normalizeMatchedXRegex(m);return Object.assign({},j,{params:n,fragment:a})}}}catch(a){e=!0,f=a}finally{try{!d&&h.return&&h.return()}finally{if(e)throw f}}return null}},{key:"_normalizeMatchedXRegex",value:function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b={};for(var c in a){var d=a[c];this._isNumeric(d)&&(d=parseFloat(d)),b[c]=d}return b}},{key:"_addRouteCache",value:function(a,b){b=this._immutable(b),b.cache=!0,this._routes.cache[a]=b}},{key:"_immutable",value:function(a){return JSON.parse(JSON.stringify(a))}},{key:"_getRouteCache",value:function(a){return this._routes.cache[a]||null}},{key:"_promiseHandler",value:function(a){if(this.promise[a]){for(var b=void 0,c=arguments.length,d=Array(c>1?c-1:0),e=1;e<c;e++)d[e-1]=arguments[e];for(;void 0!==(b=this.promise[a].shift());)b.apply(void 0,d)}}},{key:"_convertRouteToXRegexExp",value:function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",b=arguments.length>1&&void 0!==arguments[1]&&arguments[1],c=this.RegExp("{{(?<variableURL>[a-z]+)}}","g");return a=a.replace(/[\/|+*?.()]/g,"\\$&"),a=c.replace(a,"(?<${variableURL}>[\\d\\w?()|{}_.,-]+)"),b&&(a="^"+a+"$"),a}},{key:"_isDynamicURL",value:function(){return/{{[a-z]+}}/.test(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"")}},{key:"_isValidRoute",value:function(a){return!!this._getURLType(a)}},{key:"_getURLType",value:function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";if(!/^(\/|\?|#)/.test(a))throw"\n\t\t\t\tSomething gong wrong. Cant determine "+a+'. \n\t\t\t\tPlease prefix your route with "/" for pathname,\n\t\t\t\t"?" for search or "#" for hash route.\n\t\t\t';var b=this.createURL(""+this.tmpDomain+a),c=b.pathname,d=b.search,e=b.hash;return(c[1]||d||e)&&(!c[1]||d||e)?c[1]||!d||e?c[1]||d||!e?null:"hash":"search":"pathname"}},{key:"_preventDefault",value:function(a){a instanceof Event&&a.preventDefault()}},{key:"_stopPropagation",value:function(a){a instanceof Event&&a.stopPropagation()}},{key:"_isNumeric",value:function(a){return/^[+-]?\d+(\.\d+)?$/.test(a)}},{key:"_constructURL",value:function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",b=arguments[1];if(!a)throw"Please pass at least route";var c=this.which(a);if(null===c)throw"route: "+a+" does not exists!";var d=null;return c&&"static"===c.type&&(d=this._constructStaticURL(c.route)),c&&"dynamic"===c.type&&(d=this._constructDynamicURL(c.route,b)),d}},{key:"_constructStaticURL",value:function(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:""}},{key:"_constructDynamicURL",value:function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=/\{\{|\}\}/,d=a,e=!0,f=!1,g=void 0;try{for(var h,i=function(){var a=h.value;d=d.replace("{{"+a+"}}",function(){return b[a]})},j=Object.keys(b)[Symbol.iterator]();!(e=(h=j.next()).done);e=!0)i()}catch(a){f=!0,g=a}finally{try{!e&&j.return&&j.return()}finally{if(f)throw g}}if(c.test(d))throw'\n\t\t\t\tSometing gone wrong. Cant resolve passed params: "'+JSON.stringify(b)+'".\n\t\t\t\tGenerated url: "'+d+'" by method _constructDynamicURL;\n\t\t\t';return d}},{key:"match",value:function(a){var b=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],c=this.whoami(a,b);if(c.length){var d=!0,e=!1,f=void 0;try{for(var g,h=c[Symbol.iterator]();!(d=(g=h.next()).done);d=!0){var i=g.value,j=i.name,k=i.params;this.trigger(j,k)}}catch(a){e=!0,f=a}finally{try{!d&&h.return&&h.return()}finally{if(e)throw f}}}}},{key:"whoami",value:function(a){var b=arguments.length>1&&void 0!==arguments[1]&&arguments[1],c=["pathname","search","hash"];return this._matchURL(a,c,b)}},{key:"which",value:function(a){var b=this.getRoutes(),c=!0,d=!1,e=void 0;try{for(var f,g=Object.keys(b)[Symbol.iterator]();!(c=(f=g.next()).done);c=!0){var h=f.value,i=b[h];if(i.name===a)return i}}catch(a){d=!0,e=a}finally{try{!c&&g.return&&g.return()}finally{if(d)throw e}}return null}},{key:"constructURL",value:function(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this._constructURL(a,b)}},{key:"go",value:function(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=this._constructURL(a,b);this.pushState(null,null,encodeURI(c))}},{key:"redirect",value:function(a){var b=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],c=encodeURI(a);b?this.pushState(null,null,encodeURI(c)):location.href=c}},{key:"start",value:function(){this._runRoute=!0;var a=location.href,b=this.createURL(a),c=b.fragment,d=this.whoami(c);if(d.length){var e=!0,f=!1,g=void 0;try{for(var h,i=d[Symbol.iterator]();!(e=(h=i.next()).done);e=!0){var j=h.value,k=j.name;this.trigger(k,j)}}catch(a){f=!0,g=a}finally{try{!e&&i.return&&i.return()}finally{if(f)throw g}}}}},{key:"stop",value:function(){this._runRoute=!1}},{key:"routes",get:function(){return this._refs.get(this).get("routes")}},{key:"globalScope",get:function(){var a=this._refs.get(this);return a&&a.get("globalScope")}},{key:"scope",get:function(){var a=this._refs.get(this);return a&&a.get("scope")}},{key:"bind",get:function(){return this._refs.get(this).get("bind")}},{key:"queryString",get:function(){return this._refs.get(this).get("helper").queryString}}]),a}()),a("Router",g)}}}),function(a,b){"object"==typeof exports&&"object"==typeof module?module.exports=b():System.registerDynamic("app-decorators/node_modules/handlebars/dist/handlebars.runtime.js",[],!1,function(a,c,d){return"function"==typeof b?b.call(this):b})}(0,function(){return function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=