text: !function(e){var t={},o={28:0};function r(o){if(t[o])return t[o].exports;var n=t[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,r),n.l=!0,n.exports}r.e=function(t){if(0!==o[t]){var r=require("./"+t+".js"),n=r.modules,s=r.ids;for(var i in n)e[i]=n[i];for(var a=0;a<s.length;a++)o[s[a]]=0}return Promise.all([])},r.m=e,r.c=t,r.d=function(e,t,o){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)r.d(o,n,function(t){return e[t]}.bind(null,n));return o},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r.oe=function(e){process.nextTick((function(){throw e}))},r(r.s=91)}([function(e,t,o){"use strict";var r=o(1);class n extends r.a{static getConfig(){return{className:"Neo.util.Array"}}static add(e,t){Array.isArray(t)||(t=[t]),t.forEach(t=>{e.includes(t)||e.push(t)})}static difference(e=[],t=[]){return e.filter(e=>!t.includes(e))}static hasItem(e,t){return e.includes(t)}static intersection(e=[],t=[]){return e.filter(e=>t.includes(e))}static isEqual(e=[],t=[]){let o,r,n,s=0,i=e.length,a=t.length;for(;s<i;s++)if(n=e[s],Neo.isObject(n)){for(o=!1,r=0;r<a;r++)if(Neo.isObject(t[r])&&Neo.util.Object.isEqual(n,t[r])){o=!0;break}if(!o)return!1}else if(!t.includes(n))return!1;return e.length===t.length}static move(e,t,o){return t===o||(t>=e.length&&(t=e.length-1),e.splice(o,0,e.splice(t,1)[0])),e}static remove(e,t){let o;Array.isArray(t)||(t=[t]),t.forEach(t=>{o=e.indexOf(t),o>-1&&e.splice(o,1)})}static toggle(e,t){this.hasItem(e,t)?this.remove(e,t):this.add(e,t)}static union(e,t){let o,r=[],n=e.concat(t),s=n.length,i={};for(;s--;)o=n[s],i[o]||(r.unshift(o),i[o]=!0);return r}static unshift(e,t){Array.isArray(t)||(t=[t]),t.forEach(t=>{e.includes(t)||e.unshift(t)})}}Neo.applyClassConfig(n),t.a=n},function(e,t,o){"use strict";o.d(t,"a",(function(){return i}));var r=o(14);const n=Symbol.for("configSymbol"),s=Symbol("isInstance");class i{static getStaticConfig(){return{registerToGlobalNs:!0}}static getConfig(){return{className:"Neo.core.Base",ntype:"base",mixins:null}}constructor(e){e=e||{};let t=this;Object.defineProperties(t,{[n]:{configurable:!0,enumerable:!1,value:{},writable:!0},[s]:{enumerable:!1,value:!0}}),t.createId(e.id||t.id),delete e.id,t.constructor.config&&delete t.constructor.config.id,(t.getStaticConfig("observable")||t.mixins&&Neo.ns("Neo.core.Observable",t.mixins))&&t.initObservable(e),t.initConfig(e),t.controller&&t.controller.parseConfig(),Object.defineProperty(t,"configsApplied",{enumerable:!1,value:!0}),t.remote&&setTimeout(t.initRemote.bind(t),1)}onConstructed(){}init(){}beforeSetEnumValue(e,t,o,r=o+"s"){const n=this.getStaticConfig(r);return n.includes(e)?e:(Neo.logError("Supported values for "+o+" are:",n.join(", "),this),t)}createId(e){let t=this;e||(e=r.a.getId(t.ntype)),t.id=e,!0===i.instanceManagerAvailable?Neo.manager.Instance.register(t):(Neo.idMap||(Neo.idMap={}),Neo.idMap[t.id]=t)}destroy(){let e=this;!0===i.instanceManagerAvailable&&Neo.manager.Instance.unregister(e),Object.entries(e).forEach(t=>{e[t]=null,delete e[t]})}getStaticConfig(e){let t=this.constructor.staticConfig;return e?t[e]:t}initConfig(e,t){Object.assign(this[n],this.mergeConfig(e,t)),this.processConfigs()}processConfigs(){let e=this,t=Object.keys(e[n]);t.length>0&&(e.hasOwnProperty(t[0])||(e[t[0]]=e[n][t[0]]),delete e[n][t[0]],e.processConfigs())}initRemote(){let e,t=this.remote,o=this.className;if(!this.singleton)throw new Error("Remote method access only functional for Singleton classes "+o);!Neo.config.unitTestMode&&Neo.isObject(t)&&Object.entries(t).forEach(([t,r])=>{Neo.workerId!==t&&(e="main"===Neo.workerId?Neo.worker.Manager:Neo.currentWorker,e.sendMessage(t,{action:"registerRemote",methods:r,className:o}))})}mergeConfig(e,t){let o=this,r=o.constructor;if(!r.config)throw new Error("Neo.applyClassConfig has not been run on "+o.className);return t||(o.originalConfig=Neo.clone(e,!0,!0)),{...r.config,...e}}set(e={}){let t=this;Object.keys(t[n]).forEach(e=>{delete t[n][e]}),Object.assign(t[n],e),t.processConfigs()}setStaticConfig(e,t){let o=this.constructor.staticConfig;return!!o.hasOwnProperty(e)&&(o[e]=t,!0)}get[Symbol.toStringTag](){return this.className+" (id:"+this.id+")"}static[Symbol.hasInstance](e){return!!e&&(!0===e[s]&&super[Symbol.hasInstance](e))}}Neo.applyClassConfig(i),i.instanceManagerAvailable=!1},function(e,t,o){"use strict";var r=o(16),n=(o(5),o(11));class s extends r.a{static getConfig(){return{className:"Neo.manager.Component",ntype:"component-manager",singleton:!0}}constructor(e){super(e),Neo.getComponent=this.getById.bind(this)}down(e,t){let o,r,n=this,s=n.getById(e),i=[],a=null,l=0,c=s.items&&s.items.length||0;if(Neo.isString(t)&&(t={ntype:t}),o=Object.entries(t),r=o.length,o.forEach(([e,t])=>{s.hasOwnProperty(e)&&s[e]===t&&i.push(!0)}),i.length===r)return s;for(;l<c;l++)if(a=n.down(s.items[l].id,t),null!==a)return a;return null}findParentComponent(e){let t,o=this,r=0,n=e&&e.length||0;for(;r<n;r++)if(t=e[r],t&&o.has(t))return t;return null}getChildIds(e,t){return n.a.getChildIds(e,t)}getChildren(e){let t,o=[];return n.a.getChildIds(e.vnode).forEach(e=>{t=this.get(e),t&&o.push(t)}),o}getParentIds(e){let t=[];for(;e&&e.parentId;)(e=this.getById(e.parentId))&&t.push(e.id);return t}getParentPath(e){let t=this,o=[],r=0,n=e&&e.length||0;for(;r<n;r++)t.has(e[r])&&o.push(e[r]);return o}getParents(e){let t=[];for(;e&&e.parentId;)(e=this.getById(e.parentId))&&t.push(e);return t}up(e,t){let o,r,n,s=this.getById(e);for(Neo.isString(t)&&(t={ntype:t}),o=Object.entries(t),r=o.length;s&&s.parentId;){if(s=this.getById(s.parentId),!s)return null;if(n=[],o.forEach(([e,t])=>{s.hasOwnProperty(e)&&s[e]===t&&n.push(!0)}),n.length===r)return s}}}Neo.applyClassConfig(s);let i=Neo.create(s);Neo.applyToGlobalNs(i),t.a=i},function(e,t,o){"use strict";o.d(t,"a",(function(){return a}));const r=self.Neo||{};r.config=r.config||{};const n={applyBodyCls:!0,appPath:null,basePath:"./",cssPath:null,environment:"production",isExperimental:!1,isInsideSiesta:!1,locale:"default",themes:["neo-theme-light","neo-theme-dark"],unitTestMode:!1,useAmCharts:!1,useCss4:!0,useFontAwesome:!0,useGoogleAnalytics:!0};Object.assign(n,{resourcesPath:(r.config.basePath||n.basePath)+"resources/",workerBasePath:(r.config.basePath||n.basePath)+"src/worker/"});const s=Symbol.for("configSymbol"),i=Symbol("getSetCache");let a=self.Neo||{};a=self.Neo=Object.assign({ntypeMap:{},insideWorker:"undefined"!=typeof DedicatedWorkerGlobalScope||"undefined"!=typeof WorkerGlobalScope,applyClassConfig(e){let t,o=null,r=null,n={},l=e.prototype||e,h=[],f={};for(;l.__proto__;){if(t=l.constructor,t.hasOwnProperty("classConfigApplied")){o=a.clone(t.config,!0),r=a.clone(t.staticConfig,!0);break}h.unshift(l),l=l.__proto__}n=o||n,f=r||f,h.forEach(o=>{t=o.constructor;let r,l=t.getConfig&&t.getConfig()||{},h=t.getStaticConfig&&t.getStaticConfig()||{};l&&Object.entries(l).forEach(([e,t])=>{"_"===e.slice(-1)?(delete l[e],e=e.slice(0,-1),l[e]=t,function(e,t){if(p(e,t))throw"Config "+t+"_ ("+e.className+") already has a set method, use beforeGet, beforeSet & afterSet instead";a[i]||(a[i]={});a[i][t]||(a[i][t]={get(){let e=this,o="beforeGet"+a.capitalize(t),r=e[s].hasOwnProperty(t),n=e[s][t],i=r?n:e["_"+t];return Array.isArray(i)?"items"!==t&&(i=[...i]):i instanceof Date&&(i=new Date(i.valueOf())),r&&(e[t]=i,i=e["_"+t]),e[o]&&"function"==typeof e[o]&&(i=e[o](i)),i},set(e){let o=this,r="_"+t,n=a.capitalize(t),i="beforeSet"+n,l="afterSet"+n,c=o[r];if(delete o[s][t],o[r]=e,o[i]&&"function"==typeof o[i]){if(void 0===(e=o[i](e,c)))return void(o[r]=c);o[r]=e}(a.isObject(e)||Array.isArray(e)||e!==c)&&o[l]&&"function"==typeof o[l]&&o[l](e,c)}});Object.defineProperty(e,t,a[i][t])}(o,e)):p(o,e)||Object.defineProperty(o,e,{enumerable:!0,value:t,writable:!0})}),Object.assign(t,h),l.hasOwnProperty("ntype")&&(a.ntypeMap[l.ntype]=l.className),r=n.hasOwnProperty("mixins")&&n.mixins||[],h&&h.observable&&r.push("Neo.core.Observable"),l.hasOwnProperty("mixins")&&Array.isArray(l.mixins)&&l.mixins.length>0&&r.push(...l.mixins),r.length&&function(e,t){Array.isArray(t)||(t=[t]);let o,r,n,s=0,i=t.length,l={};for(;s<i;s++){if(o=t[s],o.isClass)n=o.prototype,r=a.ns(n.className);else{if(!c(o))throw new Error("Attempting to mixin an undefined class: "+o+", "+e.prototype.className);r=a.ns(o),n=r.prototype}n.className.split(".").reduce(d(r),l),Object.getOwnPropertyNames(n).forEach(u(e.prototype,n))}e.prototype.mixins=l}(t,r),delete l.mixins,delete n.mixins,Object.assign(n,l),Object.assign(f,h),Object.assign(t,{classConfigApplied:!0,config:a.clone(n,!0),isClass:!0,staticConfig:a.clone(f,!0)}),delete t.getConfig,delete t.getStaticConfig,n.singleton||this.applyToGlobalNs(e)})},applyToGlobalNs(e){let t,o,r,n,s="function"==typeof e?e.prototype:e;!0===s.constructor.registerToGlobalNs&&(t=s.isClass?s.config.className:s.className,o=t.split("."),r=o.pop(),n=a.ns(o,!0),n[r]=e)},applyFromNs(e,t,o,r){let n;return e&&o&&"object"==typeof o&&Object.entries(o).forEach(([o,s])=>{n=t[s],e[o]=r?n.bind(t):n}),e},assignDefaults:(e,t)=>(e&&t&&"object"==typeof t&&Object.entries(t).forEach(([t,o])=>{e.hasOwnProperty(t)||(e[t]=o)}),e),clone(e,t,o){let r;return Array.isArray(e)?e.map(e=>a.clone(e,t,o)):null!==e&&"object"==typeof e?e.constructor.isClass&&e instanceof a.core.Base?o?e:this.cloneNeoInstance(e):e.constructor.isClass?e:(r={},Object.entries(e).forEach(([e,n])=>{t&&(n=a.clone(n,t,o)),r[e]=n}),r):e},cloneNeoInstance(e){let t={...e.originalConfig};return delete t._id,delete t.id,a.create(e.className,t)},create(e,t){let o,r;if("function"==typeof e&&void 0!==e.constructor)o=e;else{if("object"==typeof e){if(!(t=e).className&&!t.module)return console.error("Class created with object configuration missing className or module property",t),null;e=t.className?t.className:t.module.prototype.className}if(!c(e))throw new Error("Class "+e+" does not exist");o=a.ns(e)}return r=new o(t),r.onConstructed(),r.init(),r},emptyFn(){},ns:(e,t,o)=>(e=Array.isArray(e)?e:e.split(".")).reduce((e,o)=>{if(t&&!e[o]&&(e[o]={}),e)return e[o]},o||self),ntype(e,t){if("object"==typeof e){if(!(t=e).ntype)throw new Error("Class defined with object configuration missing ntype property. "+t.ntype);e=t.ntype}let o=a.ntypeMap[e];if(!o)throw new Error("ntype "+e+" does not exist");return a.create(o,t)},onStart:a.emptyFn},a);const l=["_name","classConfigApplied","className","constructor","isClass","mixin","ntype","observable","registerToGlobalNs"];function c(e){try{return!!e.split(".").reduce((e,t)=>e[t],self)}catch(e){return!1}}function d(e){return(t,o,r,n)=>t[o]=r!==n.length-1?t[o]||{}:e}function u(e,t){return function(o){if(!~l.indexOf(o)){if(e[o]&&e[o]._from){if(t.className===e[o]._from)return void console.warn("Mixin set multiple times or already defined on a Base Class",e.className,t.className,o);throw new Error(e.className+": Multiple mixins defining same property ("+t.className+", "+e[o]._from+") => "+o)}e[o]=t[o],Object.getOwnPropertyDescriptor(e,o)._from=t.className,"function"==typeof e[o]&&(e[o]._name=o)}}}function p(e,t){let o;for(;e.__proto__;){if(o=Object.getOwnPropertyDescriptor(e,t),"object"==typeof o&&"function"==typeof o.set)return!0;e=e.__proto__}return!1}a.config=a.config||{},a.assignDefaults(a.config,n)},function(e,t,o){"use strict";var r=o(1);class n extends r.a{static getStaticConfig(){return{decamelRegEx:/([a-z])([A-Z])/g}}static getConfig(){return{className:"Neo.core.Util",ntype:"core-util"}}static createStyles(e){let t="";return Object.entries(e).forEach(([e,o])=>{null!=o&&(t+=n.decamel(e)+":"+o+";")}),t}static capitalize(e){return n.isString(e)&&e[0].toUpperCase()+e.slice(1)}static decamel(e){return e.replace(n.decamelRegEx,"$1-$2").toLowerCase()}static createStyleObject(e){if(!e)return null;let t;return e.split(/;(?=[^\)]*(?:\(|$))/g).reduce((e,o)=>(t=o.split(/:(.+)/).map((function(e){let t=parseFloat(e);return e==t?t:e.trim()})),""!==t[0]&&(t[0]=t[0].replace(/-([a-z])/g,(e,t)=>t.toUpperCase()),e[t[0]]=t[1]),e),{})}static isArray(e){return Array.isArray(e)}static isBoolean(e){return"boolean"==typeof e}static isDefined(e){return void 0!==e}static isEmpty(e){return Array.isArray(e)?0===e.length:n.isObject(e)?0===Object.keys(e).length:!!n.isString(e)&&""===e}static isFunction(e){return"function"==typeof e}static isNumber(e){return"number"==typeof e&&isFinite(e)}static isObject(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}static isString(e){return"string"==typeof e}static toArray(e,t,o){let r;return e&&(r=e.length)?"string"==typeof e?e.split(""):Array.prototype.slice.call(e,t||0,o||r):[]}}Neo.applyClassConfig(n),Neo.applyFromNs(Neo,n,{createStyleObject:"createStyleObject",createStyles:"createStyles",capitalize:"capitalize",decamel:"decamel",isArray:"isArray",isBoolean:"isBoolean",isDefined:"isDefined",isEmpty:"isEmpty",isFunction:"isFunction",isNumber:"isNumber",isObject:"isObject",isString:"isString",toArray:"toArray"},!0),t.a=n},function(e,t,o){"use strict";var r=o(1);class n extends r.a{static getConfig(){return{className:"Neo.util.VDom"}}static findVdomChild(e,t,o,r){o=o||0,t="string"!=typeof t?t:{id:t};let s,i,a,l=null,c=[],d=!0,u=0,p=e.cn&&e.cn.length;if(s=Object.entries(t),i=s.length,s.forEach(([t,o])=>{if(e.hasOwnProperty(t))switch(t){case"cls":if("string"==typeof o&&Neo.isArray(e[t]))e[t].includes(o)&&c.push(!0);else if("string"==typeof o&&"string"==typeof e[t])e[t]===o&&c.push(!0);else if(Neo.isArray(o)&&Neo.isArray(e[t]))throw new Error("findVdomChild: cls matching not supported for target & source types of Arrays");break;case"style":if("string"==typeof o&&"string"==typeof e[t])e[t]===o&&c.push(!0);else{if(!Neo.isObject(o)||!Neo.isObject(e[t]))throw new Error("findVdomChild: style matching not supported for mixed target & source types (Object VS String)");Object.entries(o).forEach(([o,r])=>{e[t].hasOwnProperty(o)&&e[t][o]===r||(d=!1)}),d&&c.push(!0)}break;default:e[t]===o&&c.push(!0)}}),c.length===i)return{index:o,parentNode:r,vdom:e};if(e.cn)for(;u<p;u++)if(e.cn[u]&&(a=n.findVdomChild(e.cn[u],t,u,e),a)){l={index:a.index,parentNode:a.parentNode,vdom:a.vdom};break}return l}static getByFlag(e,t){let o=n.findVdomChild(e,{flag:t});return o&&o.vdom}static getChildIds(e,t=[]){return(e&&e.cn||[]).forEach(e=>{e.id&&t.push(e.id),t=n.getChildIds(e,t)}),t}static getColumnNodes(e,t){let o=[];return e.cn&&e.cn.forEach(e=>{e.cn&&e.cn[t]&&o.push(e.cn[t])}),o}static getColumnNodesIds(e,t){return n.getColumnNodes(e,t).map(e=>e.id)}static getFlags(e,t,o){return o||(o=[],e.flag===t&&o.push(e)),(e&&e.cn||[]).forEach(e=>{e.flag===t&&o.push(e),o=n.getFlags(e,t,o)}),o}static insertAfterNode(e,t,o){return n.insertNode(e,t,o,!1)}static insertBeforeNode(e,t,o){return n.insertNode(e,t,o,!0)}static insertNode(e,t,o,r){Neo.isObject(o)&&(o=o.id);let s,i=n.findVdomChild(e,{id:o});return!!i&&(s=r?i.index:i.index+1,i.parentNode.cn.splice(s,0,t),!0)}static removeVdomChild(e,t){let o=n.findVdomChild(e,t);return!!o&&(o.parentNode.cn.splice(o.index,1),!0)}static replaceVdomChild(e,t,o){let r,s=e.cn||[],i=0,a=s.length;if(e.id===t)throw new Error("replaceVdomChild: target id matches the root vnode id: "+t);for(;i<a;i++){if(r=s[i],r.id===t)return s[i]=o,!0;if(n.replaceVdomChild(r,t,o))return!0}return!1}static syncVdomIds(e,t){if(e&&t){let o,r,s,i=t.childNodes||t.cn;if(e.id&&e.id!==t.id&&(t.id=e.id),i)for(o=i.filter(e=>!0!==e.removeDom),r=0,s=o&&o.length||0;r<s;r++)e.childNodes&&n.syncVdomIds(e.childNodes[r],o[r])}}}Neo.applyClassConfig(n),t.a=n},function(e,t,o){"use strict";o.d(t,"a",(function(){return g}));var r=o(1),n=o(2),s=o(13),i=o(0);class a extends r.a{static getConfig(){return{className:"Neo.util.Object"}}static isEqual(e,t){return Neo.isObject(e)&&Neo.isObject(t)?Object.keys(e).length===Object.keys(t).length&&Object.keys(e).reduce((function(o,r){return o&&a.isEqual(e[r],t[r])}),!0):e===t}}Neo.applyClassConfig(a);var l=a;class c extends r.a{static getConfig(){return{className:"Neo.util.KeyNavigation",ntype:"keynav",component_:null,keyDownEventBubble:!1,keys_:null}}add(e){this._keys.push(...this.parseKeys(e))}beforeGetComponent(){return Neo.getComponent(this._component)}beforeSetComponent(e){return e&&e.id}destroy(){this.unregister(),super.destroy()}onKeyDown(e){if(e.key){let t,o=this,r=e.key.toUpperCase();r=o.parseUpperCaseKey(r),o.keys.forEach(o=>{t=Neo.get(o.scope),o.key.toUpperCase()===r&&t[o.fn]&&t[o.fn].apply(t,[e])})}}parseKeys(e){if(!Array.isArray(e)){let t=this._component,o=[];t&&(Object.entries(e).forEach(([e,r])=>{o.push({fn:r,key:e,scope:t})}),e=o)}return e}parseUpperCaseKey(e){switch(e){case" ":e="SPACE";break;case"ARROWDOWN":e="DOWN";break;case"ARROWLEFT":e="LEFT";break;case"ARROWRIGHT":e="RIGHT";break;case"ARROWUP":e="UP"}return e}register(e){let t=this,o=e.domListeners;t.component=e,t.keys=t.parseKeys(t.keys),o&&(o.push({keydown:{fn:t.onKeyDown,bubble:t.keyDownEventBubble,scope:t}}),e.domListeners=o)}removeKey(e){let t,o=this._keys,r=0,n=o.length;for(;r<n;r++)if(t=o[r],l.isEqual(t,e)){i.a.remove(o,t);break}}removeKeys(e){Array.isArray(e)&&e.forEach(e=>this.removeKey(e))}unregister(){}}Neo.applyClassConfig(c);var d=c,u=o(7),p=(o(8),o(28)),h=o(4),f=o(5),m=o(11);class g extends r.a{static getStaticConfig(){return{observable:!0}}static getConfig(){return{className:"Neo.component.Base",ntype:"component",autoMount:!1,autoRender:!1,containsFocus_:!1,controller_:null,disabled_:!1,domListeners_:null,hasBeenMounted:!1,hasUnmountedVdomChanges_:!1,height_:null,html_:null,id_:null,isVdomUpdating:!1,keys_:null,maxHeight_:null,maxWidth_:null,minHeight_:null,minWidth_:null,mounted_:!1,needsVdomUpdate:!1,rendering:!1,silentVdomUpdate:!1,style:{},tooltips_:null,vnode_:null,width_:null,wrapperStyle_:{},_vdom:{}}}getVdomRoot(){return this.vdom}getVnodeRoot(){return this.vnode}mergeConfig(...e){let t=this,o=super.mergeConfig(...e),r={...t._vdom||{},...o.vdom||{}};return t._vdom=Neo.clone(r,!0,!0),t.cls=o.cls,t._style=o.style,t.wrapperStyle=Neo.clone(o.wrapperStyle,!1),delete o.cls,delete o.style,delete o._vdom,delete o.vdom,delete o.wrapperStyle,o}constructor(e){super(e),n.a.register(this)}onConstructed(){super.onConstructed();let e=this;e.fire("constructed",{id:e.id}),e.keys&&e.keys.register(e)}init(){this.autoRender&&this.render()}get cls(){return this._cls?Neo.clone(this._cls):["neo-component"]}set cls(e){e=e||[];let t,o=this,r=o.vdom,n=o.getVdomRoot();"string"==typeof e&&(e=e.split("")),o.mounted&&(t=Neo.clone(o._cls)),o._cls=e,n&&(n.cls=[...e]),o._vdom=r,o.mounted&&o.updateCls(e,t)}get listeners(){return this._listeners||{}}set listeners(e){this._listeners=e}get rendered(){return this._rendered||!1}set rendered(e){let t=this;t._rendered=e,!0===e&&t.fire("rendered",t.id)}get style(){return Neo.clone(this._style)}set style(e){let t,o=this,r=o.getVdomRoot();o.mounted&&(t=o._style),o._style=e,r.style=Object.assign(r.style||{},e),o.mounted&&o.updateStyle(e,t)}get vdom(){return this._vdom}set vdom(e){let t,o=this,r=Neo.apps[o.appName],n=e,s=o.cls,i=o.height,a=o.style,l=o.getVdomRoot(),c=o.width;l&&(s&&(l.cls=s),i&&(l.height=i),c&&(l.width=c),a&&(l.style=Object.assign(l.style||{},a))),o._vdom!==n?(u.a.warn("vdom got replaced for: "+o.id+". Copying the content into the reference holder object"),Object.keys(o._vdom).forEach(e=>{delete o._vdom[e]}),Object.assign(o._vdom,n)):o._vdom=n,o.silentVdomUpdate||(!o.mounted&&r&&!0===r.rendering?t=r.on("render",()=>{r.un("render",t),setTimeout(()=>{o.updateVdom(o.vdom,o.vnode)},50)}):o.mounted&&o.updateVdom(n,o.vnode),o.hasUnmountedVdomChanges=!o.mounted&&o.hasBeenMounted)}addStyle(e){return"string"==typeof e&&(e=h.a.createStyleObject(e)),this.style=Object.assign(this.style,e)}afterSetDisabled(e,t){let o=this.cls;i.a[e?"add":"remove"](o,"neo-disabled"),this.cls=o}afterSetDomListeners(e,t){s.a.updateDomListeners(this,e,t)}afterSetHasUnmountedVdomChanges(e,t){if(e||!e&&t){let t,o=n.a.getParentIds(this),r=0,s=o.length;for(;r<s;r++)t=Neo.getComponent(o[r]),t&&(t._hasUnmountedVdomChanges=e)}}afterSetHeight(e,t){this.changeVdomRootKey("height",e)}afterSetHtml(e,t){this.changeVdomRootKey("html",e)}afterSetId(e,t){this.changeVdomRootKey("id",e)}afterSetMaxHeight(e,t){this.changeVdomRootKey("maxHeight",e)}afterSetMaxWidth(e,t){this.changeVdomRootKey("maxWidth",e)}afterSetMinHeight(e,t){this.changeVdomRootKey("minHeight",e)}afterSetMinWidth(e,t){this.changeVdomRootKey("minWidth",e)}afterSetMounted(e,t){let o=this;if(e&&(o.hasBeenMounted=!0),e||!e&&t){let t,r=n.a.getChildIds(o.vnode),s=0,i=r.length;for(;s<i;s++)t=Neo.getComponent(r[s]),t&&(t.mounted=e,e&&(t.hasBeenMounted=!0))}e&&(o.domListeners&&o.domListeners.length>0&&setTimeout(()=>{s.a.mountDomListeners(o)},50),o.fire("mounted",o.id))}afterSetTooltips(e,t){if(e){let t=this;Neo.ns("Neo.tooltip.Base")?t.createTooltips(e):o.e(30).then(o.bind(null,92)).then(o=>{t.createTooltips(e)})}}afterSetVnode(e,t){e&&this.syncVnodeTree()}afterSetWidth(e,t){this.changeVdomRootKey("width",e)}afterSetWrapperStyle(e,t){if(e&&!Neo.isEmpty(e)){let t=this.vdom;t.style=t.style||{},Object.assign(t.style,e),this.vdom=t}}beforeGetController(e){return e&&Neo.get(e)}beforeSetController(e,t){let o=this;return t&&t.destroy(),e?(h.a.isObject(e)&&e instanceof Neo.controller.Component?e.view=o:e.prototype&&e.prototype.constructor.isClass||h.a.isString(e)?e=Neo.create(e,{view:o}):e.ntype&&(e.view=o,e=Neo.ntype(e)),e.id):e}beforeSetDomListeners(e,t){return Neo.isObject(e)&&(e=[e]),e||[]}beforeSetKeys(e,t){return t&&t.destroy(),h.a.isObject(e)&&(e instanceof d||(e=e.constructor.isClass?Neo.create(e):Neo.create(d,{keys:e}))),e}changeVdomRootKey(e,t){let o=this,r=o.vdom;t?o.getVdomRoot()[e]=t:delete o.getVdomRoot()[e],o.vdom=r}createTooltips(e){Array.isArray(e)||(e=[e]);let t,o=this,r=[];e.forEach(e=>{t=Neo.create("Neo.tooltip.Base",{appName:o.appName,componentId:o.id,...e}),r.push(t)}),o._tooltips=r}destroy(e=!1,t=!1){let o,r,s=this;e&&s.parentId&&(o=Neo.getComponent(s.parentId),r=o.vdom,f.a.removeVdomChild(r,s.id),o[t?"_vdom":"vdom"]=r),n.a.unregister(this),super.destroy()}down(e){return n.a.down(this.id,e)}focus(e){let t=this;Neo.main.DomAccess.focus({id:e||t.id}).then(e=>{}).catch(e=>{console.log("Error attempting to receive focus for component",e,t)})}getController(e){let t,o,r,s=this.controller;if(s&&(!e||e===s.ntype))return s;for(r=n.a.getParents(this),t=0,o=r.length;t<o;t++)if(r[t].controller&&(!e||e===r[t].controller.ntype))return r[t].controller;return null}getVdomChild(e,t){let o,r=null,n=0,s=(t=t||this.vdom).cn&&t.cn.length;if(t.id===e)return t;if(t.cn)for(;n<s;n++)if(o=this.getVdomChild(e,t.cn[n]),o){r=o;break}return r}mount(){let e,t,o=this;if(!o.vnode)throw new Error("Component vnode must be generated before mounting, use Component.render()");o.hasUnmountedVdomChanges?(o.hasUnmountedVdomChanges=!1,t=n.a.getChildIds(o.vnode),t.forEach(t=>{e=Neo.getComponent(t),e&&(e._hasUnmountedVdomChanges=!1)}),o.render(!0)):Neo.currentWorker.promiseMessage("main",{action:"mountDom",id:o.id,html:o.vnode.outerHTML,parentId:o.parentId,parentIndex:o.parentIndex}).then(()=>{o.mounted=!0}).catch(e=>{console.log("Error attempting to mount component",e,o)})}onRender(e,t){let o=this,r=Neo.apps[o.appName];o.rendering=!1,r.rendered||(r.rendering=!1,r.rendered=!0,r.fire("render")),o.vnode=e;let s,i=n.a.getChildIds(e),a=0,l=i.length;for(;a<l;a++)s=Neo.getComponent(i[a]),s&&(s.rendered=!0);o._rendered=!0,o.fire("rendered",o.id),console.log("rendered: "+o.appName+" "+o.id,o),t&&(o.mounted=!0)}promiseVdomUpdate(e=this.vdom,t=this.vnode){let o=this;return o._vdom!==e?(u.a.warn("vdom got replaced for: "+o.id+". Copying the content into the reference holder object"),Object.keys(o._vdom).forEach(e=>{delete o._vdom[e]}),Object.assign(o._vdom,e)):o._vdom=e,new Promise((r,n)=>{o.mounted?o.updateVdom(e,t,r,n):r()})}removeStyle(e){"string"==typeof e&&(e=[e]);let t=this.style,o=!1;return Object.entries(t).forEach(r=>{e.indexOf(r)>-1&&(delete t[r],o=!0)}),o&&(this.style=t),t}render(e){let t=this,o=e||t.autoMount,r=Neo.apps[t.appName];t.rendering=!0,r.rendered||(r.rendering=!0),t.vdom&&Neo.vdom.Helper.create({autoMount:o,cls:t.cls,parentId:o?t.parentId:void 0,parentIndex:o?t.parentIndex:void 0,style:t.style,...t.vdom}).then(e=>{t.onRender(e,o)}).catch(e=>{console.log("Error attempting to render component",e,t)})}set(e={},t=!1){let o=this,r=o.vdom;if(o.silentVdomUpdate=!0,super.set(e),o.silentVdomUpdate=!1,!t)return o.promiseVdomUpdate();o._vdom=r}syncVdomIds(e=this.vnode,t=this.vdom){f.a.syncVdomIds(e,t)}syncVnodeTree(e=this.vnode){let t,o=this;o.syncVdomIds(),n.a.getChildren(o).forEach(e=>{t=m.a.findChildVnode(o.vnode,e.vdom.id),t?(e._vnode=t.vnode,e.rendered||(e._rendered=!0,e.fire("rendered",e.id)),e.mounted=!0):console.warn("syncVnodeTree: Could not replace the child vnode for",e.id)}),n.a.getParents(o).forEach((e,t)=>{0===t&&o.vnode.outerHTML?e.vnode.childNodes.splice(o.parentIndex||0,0,o.vnode):m.a.replaceChildVnode(e.vnode,o.vnode.id,o.vnode)})}unmount(){let e=this;Neo.currentWorker.promiseMessage("main",{action:"updateDom",deltas:[{action:"removeNode",id:e.id}]}).then(()=>{e.mounted=!1}).catch(t=>{console.log("Error attempting to unmount component",t,e)})}up(e){return n.a.up(this.id,e)}updateCls(e,t){let o=this,r=o.vnode;i.a.isEqual(e,t)||(r&&(r.className=e,o.vnode=r),Neo.currentWorker.promiseMessage("main",{action:"updateDom",deltas:[{id:o.id,cls:{add:Neo.util.Array.difference(e,t),remove:Neo.util.Array.difference(t,e)}}]}).then(()=>{}).catch(e=>{console.log("Error attempting to update Component cls",e,o)}))}updateStyle(e,t){let o=this,r=p.a.compareStyles(e,t),n=o.vnode;r&&(n&&(n.style=e,o.vnode=n),Neo.currentWorker.promiseMessage("main",{action:"updateDom",deltas:[{id:o.id,style:r}]}).then(()=>{}).catch(e=>{console.log("Error attempting to update component style",e,o)}))}updateVdom(e,t,o,r){let n=this;n.isVdomUpdating?n.needsVdomUpdate=!0:(n.isVdomUpdating=!0,Neo.vdom.Helper.update({vdom:e,vnode:t}).then(e=>{n.vnode=e.vnode,n.isVdomUpdating=!1,o&&o(),n.needsVdomUpdate&&(n.needsVdomUpdate=!1,n.vdom=n.vdom)}).catch(e=>{console.log("Error attempting to update component dom",e,n),n.isVdomUpdating=!1,r&&r()}))}}Neo.applyClassConfig(g)},function(e,t,o){"use strict";var r=o(1);class n extends r.a{static getConfig(){return{className:"Neo.core.Logger",ntype:"logger",enableLogs:!0,level:"log",singleton:!0}}constructor(e){super(e),Neo.applyFromNs(Neo,this,{error:"error",info:"info",log:"log",logError:"logError",warn:"warn"},!0)}error(e){throw new Error(e)}log(...e){this.level="log",this.write(...e)}info(...e){this.level="info",this.write(...e)}logError(...e){this.level="error",this.write(...e)}warn(...e){this.level="warn",this.write(...e)}write(...e){!0===this.enableLogs&&console[this.level](...e)}}Neo.applyClassConfig(n);let s=Neo.create(n);Neo.applyToGlobalNs(s),t.a=s},function(e,t,o){"use strict";o.d(t,"a",(function(){return n}));var r=o(1);class n extends r.a{static getConfig(){return{className:"Neo.core.Observable",ntype:"mixin-observable",mixin:!0}}initObservable(e){let t,o=this,r=o.__proto__;for(e.listeners&&(o.listeners=e.listeners,delete e.listeners),t=o.listeners,o.listeners={},t&&o.addListener(t);r&&r.constructor.isClass;)r.constructor.staticConfig.observable&&!r.constructor.listeners&&Object.assign(r.constructor,{addListener:o.addListener,fire:o.fire,listeners:{},on:o.on,removeListener:o.removeListener,un:o.un}),r=r.__proto__}addListener(e,t,o,r,n,s){let i,a,l,c=this;if("object"==typeof e)e.hasOwnProperty("scope")&&(o=e.scope,delete e.scope),Object.entries(e).forEach(([e,t])=>{c.addListener(e,t,o)});else if("object"==typeof t)o=o||t.scope,i=t.fn,s=s||t.order,r=r||t.eventId;else if("function"==typeof t)i=t;else{if("string"!=typeof t)throw new Error("Invalid addListener call: "+e);i=t}return l={fn:i,scope:o,data:n,id:r||Neo.getId("event")},(a=c.listeners&&c.listeners[e])?(a.forEach(t=>{if(t.id===r||t.fn===i&&t.scope===o)throw new Error("Duplicate event handler attached: "+e)}),"number"==typeof s?a.splice(s,0,l):"before"===s?a.unshift(l):a.push(l)):c.listeners[e]=[l],l.id}fire(e){let t,o,r,n,s=this,i=[].slice.call(arguments,1),a=s.listeners;if(a&&a[e])for(o=[...a[e]],n=o.length,r=0;r<n;r++)t=o[r],t.fn.apply(t.scope||s,t.data?i.concat(t.data):i)}removeListener(e,t){if(Neo.isString(t)){let o=this.listeners[e],r=!1;o.forEach((e,o)=>{if(e.id===t)return r=o}),!1!==r&&o.splice(r,1)}}on(...e){return this.addListener(...e)}un(...e){this.removeListener(...e)}}Neo.applyClassConfig(n)},function(e,t,o){"use strict";o.d(t,"a",(function(){return c}));var r=o(6),n=o(1);class s extends n.a{static getConfig(){return{className:"Neo.layout.Base",ntype:"layout-base",containerId:null,isLayout:!0}}applyChildAttributes(e){}applyRenderAttributes(){}removeChildAttributes(e){}removeRenderAttributes(){}}Neo.applyClassConfig(s);var i=o(0);Neo.applyClassConfig(class extends s{static getStaticConfig(){return{activeItemCls:"active-item",inactiveItemCls:"inactive-item",itemCls:"neo-layout-card-item"}}static getConfig(){return{className:"Neo.layout.Card",ntype:"layout-card",activeIndex_:0}}afterSetActiveIndex(e,t){let o,r,n,s=Neo.getComponent(this.containerId),a=this.getStaticConfig();s&&s.rendered&&(n=s.items,n[e]||Neo.error("Trying to activate a non existing card",e,n),n.forEach((t,n)=>{r=t.cls,o=n===e,i.a.remove(r,o?a.inactiveItemCls:a.activeItemCls),i.a.add(r,o?a.activeItemCls:a.inactiveItemCls),t.cls=r}))}applyChildAttributes(e,t){let o=this.getStaticConfig(),r=e.cls;i.a.add(r,o.itemCls),i.a.add(r,this.activeIndex===t?o.activeItemCls:o.inactiveItemCls),e.cls=r}applyRenderAttributes(){let e=this,t=Neo.getComponent(e.containerId),o=t&&t.cls;t||Neo.logError("layout.Card: applyRenderAttributes -> container not yet created",e.containerId),i.a.add(o||[],"neo-layout-card"),t.cls=o}removeRenderAttributes(){let e=this,t=Neo.getComponent(e.containerId),o=t&&t.cls;t||Neo.logError("layout.Card: removeRenderAttributes -> container not yet created",e.containerId),i.a.remove(o,"neo-layout-card"),t.cls=o}});Neo.applyClassConfig(class extends s{static getConfig(){return{className:"Neo.layout.Fit",ntype:"layout-fit"}}applyChildAttributes(e){e.cls=i.a.union(e.cls,"neo-layout-fit-item")}applyRenderAttributes(){let e=this,t=Neo.getComponent(e.containerId),o=t&&t.cls;t||Neo.logError("layout.Fit: applyRenderAttributes -> container not yet created",e.containerId),i.a.add(o||[],"neo-layout-fit"),t.cls=o}removeRenderAttributes(){let e=this,t=Neo.getComponent(e.containerId),o=t&&t.cls;t||Neo.logError("layout.Fit: removeRenderAttributes -> container not yet created",e.containerId),i.a.remove(o,"neo-layout-fit"),t.cls=o}});class a extends s{static getStaticConfig(){return{alignValues:["center","end","start","stretch",null],directionValues:["column","column-reverse","row","row-reverse",null],packValues:["center","end","start",null],wrapValues:["nowrap","wrap","wrap-reverse"]}}static getConfig(){return{className:"Neo.layout.Flexbox",ntype:"layout-flexbox",align_:null,direction_:null,pack_:null,prefix:"neo-flex-",wrap_:"nowrap"}}afterSetAlign(e,t){this.updateInputValue(e,t,"align")}afterSetDirection(e,t){this.updateInputValue(e,t,"direction")}afterSetPack(e,t){this.updateInputValue(e,t,"pack")}afterSetWrap(e,t){this.updateInputValue(e,t,"wrap")}applyChildAttributes(e){let t=e.style||{};t.flex=t.flex||e.flex||("stretch"===this.align?1:"0 1 auto"),e.style=t}applyRenderAttributes(){let e=this,t=Neo.getComponent(e.containerId),o=e.prefix,r=t&&t.cls;t||Neo.logError("layout.Flexbox: applyRenderAttributes -> container not yet created",e.containerId),i.a.add(r||[],o+"container"),e.align&&i.a.add(r,o+"align-"+e.align),e.direction&&i.a.add(r,o+"direction-"+e.direction),e.pack&&i.a.add(r,o+"pack-"+e.pack),e.wrap&&i.a.add(r,o+"wrap-"+e.wrap),t.cls=r}beforeSetAlign(e,t){return this.testInputValue(e,t,"alignValues","align")}beforeSetDirection(e,t){return this.testInputValue(e,t,"directionValues","direction")}beforeSetPack(e,t){return this.testInputValue(e,t,"packValues","pack")}beforeSetWrap(e,t){return this.testInputValue(e,t,"wrapValues","wrap")}removeChildAttributes(e){let t=e.style||{};t.flex=e.flex||null,e.style=t}removeRenderAttributes(){let e=this,t=Neo.getComponent(e.containerId),o=e.prefix,r=t&&t.cls;t||Neo.logError("layout.Flexbox: removeRenderAttributes -> container not yet created",e.containerId),i.a.remove(r,o+"container"),e.align&&i.a.remove(r,o+"align-"+e.align),e.direction&&i.a.remove(r,o+"direction-"+e.direction),e.pack&&i.a.remove(r,o+"pack-"+e.pack),e.wrap&&i.a.remove(r,o+"wrap-"+e.wrap),t.cls=r}testInputValue(e,t,o,r){const n=this.getStaticConfig(o);return i.a.hasItem(n,e)?e:(Neo.logError(this.containerId,'-> layout: supported values for "'+r+'" are',n),t)}updateInputValue(e,t,o){let r=Neo.getComponent(this.containerId),n=this.prefix,s=r&&r.cls;r&&r.rendered&&(i.a.remove(s,n+o+"-"+t),null!==e&&i.a.add(s,n+o+"-"+e),r.cls=s)}}Neo.applyClassConfig(a);Neo.applyClassConfig(class extends a{static getConfig(){return{className:"Neo.layout.HBox",ntype:"layout-hbox",direction:"row"}}applyChildAttributes(e){e.width||super.applyChildAttributes(e)}});Neo.applyClassConfig(class extends a{static getConfig(){return{className:"Neo.layout.VBox",ntype:"layout-vbox",direction:"column"}}applyChildAttributes(e){e.height||super.applyChildAttributes(e)}});var l=o(7);class c extends r.a{static getConfig(){return{className:"Neo.container.Base",ntype:"container",cls:["neo-container"],itemDefaults_:null,items_:[],layout_:{ntype:"vbox",align:"stretch"},_vdom:{cn:[]}}}mergeConfig(...e){let t=this,o=super.mergeConfig(...e);return o.itemDefaults&&(t._itemDefaults=Neo.clone(o.itemDefaults,!0,!0),delete o.itemDefaults),o.items&&(t._items=Neo.clone(o.items,!0,!0),delete o.items),o}onConstructed(){let e=this;e._layout=e.createLayout(e.layout),e._layout.applyRenderAttributes(),super.onConstructed(),e.parseItemConfigs(e.items),e.createItems()}add(e){return this.insert(this.items?this.items.length:0,e)}afterSetLayout(e,t){let o=this;o.rendered&&(t.removeRenderAttributes(),e.applyRenderAttributes(),o.items.forEach((o,r)=>{t.removeChildAttributes(o,r),e.applyChildAttributes(o,r)}))}beforeSetLayout(e){return this.createLayout(e)}createItems(){let e=this,t=e._items,o=e.itemDefaults,r=e.layout,n=e.vdom,s=e.getVdomRoot();t.forEach((n,i)=>{n.constructor.isClass&&n instanceof Neo.core.Base?Object.assign(n,{appName:e.appName,parentId:e.id}):n.isClass?n=Neo.create(n,{appName:e.appName,parentId:e.id}):"string"==typeof n?n=Neo.ntype({ntype:"component",appName:e.appName,vdom:{innerHTML:n}}):(o&&Neo.assignDefaults(n,o),n.module&&(n.className=n.module.prototype.className),Object.assign(n,{appName:e.appName,parentId:e.id,style:n.style||{}}),n=Neo[n.className?"create":"ntype"](n)),t[i]=n,r.applyChildAttributes(n,i),s.cn.push(n.vdom)}),e.vdom=n}createLayout(e){let t=this;return e&&(e instanceof s&&e.isLayout?e.containerId=t.id:((e=t.parseLayoutClass(e)).containerId=t.id,e=Neo.ntype(e))),e}destroy(){this.items.forEach(e=>{e.destroy()}),super.destroy()}indexOf(e){let t=this,o=0,r=t.items&&t.items.length||0;for(Neo.isString(e)||(e=e.id);o<r;o++)if(t.items[o].id===e)return o;return-1}insert(e,t){let o,r,n,s=this,i=s.items,a=s.vdom;if(Array.isArray(t))for(r=0,n=t.length;r<n;r++)t[r]=s.insert(t[n-1],e);else"object"==typeof t&&(t instanceof Neo.component.Base!=!0&&(t.module&&(t.className=t.module.prototype.className),t={...s.itemDefaults||{},appName:s.appName,autoMount:s.mounted,parentId:s.id,parentIndex:e,...t},t=Neo[t.className?"create":"ntype"](t)),s.layout.applyChildAttributes(t,e),i.splice(e,0,t),s.items=i,o=a.cn||a.childNodes||a.children,o.splice(e,0,t.vdom),s.vdom=a);return t}moveTo(e,t){let o=this.indexOf(e);console.log(o)}parseItemConfigs(e){let t=this;e.forEach(e=>{Object.entries(e).forEach(([o,r])=>{"items"===o?t.parseItemConfigs(r):"string"==typeof r&&r.startsWith("@config:")&&(r=r.substr(8),t[r]?e[o]=t[r]:l.a.logError("The used @config does not exist:",r,t))})})}parseLayoutClass(e){return Neo.isObject(e)?e.ntype.indexOf("layout-")<0&&(e.ntype="layout-"+e.ntype):e=e.indexOf("layout-")<0?{ntype:"layout-"+e}:{ntype:e},e}remove(e,t=!0,o=!1){let r=this.items,n=0,s=r.length;for(;n<s;n++)r[n].id===e.id&&this.removeAt(n,t,o)}removeAt(e,t=!0,o=!1){let r,n,s=this,i=s.items,a=s.vdom;e>=i.length?Neo.warn("Container.removeAt: index >= items.length. "+s.id):(n=i[e],i.splice(e,1),r=a.cn||a.childNodes||a.children,r.splice(e,1),s[o?"_vdom":"vdom"]=a,t&&n.destroy())}switchItems(e,t){let o=this,r=o.indexOf(e),n=o.indexOf(t),s=o.vdom;i.a.move(o.items,n,r),i.a.move(o.getVdomItemsRoot(),n,r),o.vdom=s}}Neo.applyClassConfig(c)},,function(e,t,o){"use strict";var r=o(1);class n extends r.a{static getConfig(){return{className:"Neo.util.VNode"}}static findChildVnode(e,t,o,r){o=o||0,t="string"!=typeof t?t:{id:t};let s,i,a,l=null,c=!0,d=[],u=!0,p=0,h=e.childNodes&&e.childNodes.length;if(s=Object.entries(t),i=s.length,s.forEach(([t,o])=>{if(e.hasOwnProperty(t))switch(t){case"attributes":Neo.isObject(o)&&Neo.isObject(e[t])&&(Object.entries(o).forEach(([o,r])=>{e[t].hasOwnProperty(o)&&e[t][o]===r||(c=!1)}),c&&d.push(!0));break;case"className":if("string"==typeof o&&Neo.isArray(e[t]))e[t].includes(o)&&d.push(!0);else if("string"==typeof o&&"string"==typeof e[t])e[t]===o&&d.push(!0);else if(Neo.isArray(o)&&Neo.isArray(e[t]))throw new Error("findChildVnode: cls matching not supported for target & source types of Arrays");break;case"style":Neo.isObject(o)&&Neo.isObject(e[t])&&(Object.entries(o).forEach(([o,r])=>{e[t].hasOwnProperty(o)&&e[t][o]===r||(u=!1)}),u&&d.push(!0));break;default:e[t]===o&&d.push(!0)}}),d.length===i)return{index:o,parentNode:r,vnode:e};if(e.childNodes)for(;p<h;p++)if(a=n.findChildVnode(e.childNodes[p],t,p,e),a){l={index:a.index,parentNode:a.parentNode,vnode:a.vnode};break}return l}static findChildVnodeById(e,t){let o,r=e.childNodes||[],s=0,i=r.length;if(e.id===t)return e;for(;s<i;s++){if(o=r[s],o.id===t)return o;if(o=n.findChildVnodeById(o,t),o)return o}return null}static getChildIds(e,t=[]){return(e&&e.childNodes||[]).forEach(e=>{e.id&&t.push(e.id),t=n.getChildIds(e,t)}),t}static replaceChildVnode(e,t,o){let r,s=e.childNodes||[],i=0,a=s.length;if(e.id===t)throw new Error("replaceChildVnode: target id matches the root vnode id: "+t);for(;i<a;i++){if(r=s[i],r.id===t)return s[i]=o,!0;if(n.replaceChildVnode(r,t,o))return!0}return!1}}Neo.applyClassConfig(n),t.a=n},function(e,t,o){"use strict";var r=o(1);class n extends r.a{static getStaticConfig(){return{observable:!0}}static getConfig(){return{className:"Neo.util.HashHistory",ntype:"hash-history",singleton:!0,stack:[]}}first(){return this.stack[0]}getCount(){return this.stack.length}push(e,t){this.stack.unshift(e),this.fire("change",e,this.stack[1],t)}}Neo.applyClassConfig(n);let s=Neo.create(n);Neo.applyToGlobalNs(s),t.a=s},function(e,t,o){"use strict";var r=o(1),n=o(2),s=o(0);class i extends r.a{static getConfig(){return{className:"Neo.manager.Focus",ntype:"focus-manager",singleton:!0,history:[],lastFocusInDate:null,lastFocusOutDate:null,maxFocusInOutGap:10,maxHistoryLength:20}}addToHistory(e){let t=this.history;t.unshift(e),t.length>=this.maxHistoryLength&&t.pop()}focusEnter(e){this.setComponentFocus(e,!0),this.addToHistory(e)}focusLeave(e){this.setComponentFocus(e,!1)}focusMove(e){let t,o,r=this.history,n=e.componentPath,i=r[0].componentPath,a=s.a.difference(n,i),l=s.a.difference(i,n),c=s.a.intersection(n,i);this.setComponentFocus({componentPath:a,data:e.data},!0),this.setComponentFocus({componentPath:l,data:e.data},!1),c.forEach(n=>{t=Neo.getComponent(n),t&&(o={newPath:e.data.path,oldPath:r[0].data.path},"function"==typeof t.onFocusMove&&t.onFocusMove(o),t.fire("focusMove",o))}),this.addToHistory(e)}onFocusin(e){let t=this;t.lastFocusInDate=new Date,t.lastFocusOutDate&&t.lastFocusInDate-t.lastFocusOutDate<t.maxFocusInOutGap?t.focusMove(e):t.focusEnter(e)}onFocusout(e){let t=this;t.lastFocusOutDate=new Date,setTimeout(()=>{t.lastFocusOutDate>t.lastFocusInDate&&t.focusLeave(e)},t.maxFocusInOutGap)}setComponentFocus(e,t){let o,r;e.componentPath.forEach(n=>{o=Neo.getComponent(n),o&&(o.containsFocus=t,r=t?"onFocusEnter":"onFocusLeave","function"==typeof o[r]&&o[r](e.data.path),o.fire(t?"focusEnter":"focusLeave",e.data.path))})}}Neo.applyClassConfig(i);let a=Neo.create(i);Neo.applyToGlobalNs(a);var l=a,c=o(7),d=o(5);const u=["bubble","delegate","local","scope","vnodeId"],p=["change","click","contextmenu","focusin","focusout","input","keydown","keyup","mouseenter","mouseleave","wheel"];class h extends r.a{static getConfig(){return{className:"Neo.manager.DomEvent",ntype:"dom-event-manager",items:{},map:{},singleton:!0}}fire(e){let t,o,r,s,i,a,c=this,u=!0,p=e.data||{},h=e.eventName,f=0,m=null,g=p.path.map(e=>e.id),y=n.a.getParentPath(g),b=y.length;for(;f<b&&(s=y[f],t=Neo.getComponent(s),t&&!t.disabled);f++){if(m=c.items[s]&&c.items[s][h],m&&Array.isArray(m)&&m.forEach(e=>{e&&e.fn&&(r=c.verifyDelegationPath(e,p.path),!1!==r&&(i=!1,"mouseenter"!==h&&"mouseleave"!==h||(a="mouseenter"===h?p.fromElementId:p.toElementId,a&&a!==r&&(o=d.a.findVdomChild(t.vdom,r),o.vdom&&d.a.findVdomChild(o.vdom,a)&&(i=!0))),i||(p.component=t,e.fn.apply(e.scope||self,[p]),e.bubble||(u=!1))))}),"focusin"===h||"focusout"===h){l["on"+Neo.capitalize(h)]({componentPath:y,data:p});break}if(!u)break}}generateListenerConfig(e,t){return{delegate:e.delegate,eventName:e.eventName,id:t.id,opts:e,scope:e.scope||t,vnodeId:e.vnodeId||t.id}}getEventName(e){let t=null;return Neo.isObject(e)&&Object.keys(e).forEach(e=>{u.includes(e)||(t=e)}),t}getListener(e){let t,o=this.items;o&&o[e.id]&&(t=o[e.id][e.eventName],t&&console.log(t))}mountDomListeners(e){let t,o,r=e.domListeners,n=[];Object.keys(r).forEach(e=>{t=r[e],o=t.eventName,!o||!t.local&&p.includes(o)||(console.log("localEvents",o),n.push({name:o,handler:"domEventListener",vnodeId:t.vnodeId}))}),n.length>0&&Neo.worker.App.promiseMessage("main",{action:"addDomListener",appName:e.appName,events:n}).then(e=>{}).catch(e=>{console.log("App: Got error attempting to add a domListener",e)})}register(e){let t,o,r,n,s=!1,i=e.eventName,a=e.id,l=this.items,c=e.opts,d=e.scope,u=typeof c;return"function"===u||"string"===u?t=c:(t=c.fn,d=c.scope||d),l[a]||(l[a]={}),l[a][i]?(o=l[a][i],Object.keys(o).forEach(r=>{o[r].fn.toString()===t.toString()&&o[r].scope===d&&o[r].delegate===e.delegate&&(s=!0)})):l[a][i]=[],!0!==s&&(n=Neo.getId("dom-event"),e.listenerId=n,r={bubble:e.hasOwnProperty("bubble")?e.bubble:!c.hasOwnProperty("bubble")||c.bubble,delegate:e.delegate,fn:t,id:n,mounted:!e.local&&p.includes(i),originalConfig:e.originalConfig,priority:e.priority||1,scope:d,vnodeId:e.vnodeId},this.map[n]=r,l[a][i].push(r),l[a][i].sort((e,t)=>e.priority>t.priority),!0)}unregister(e,t){console.log("unregister",e),console.log(this.generateListenerConfig(e,t))}updateDomListeners(e,t,o){let r,n,i,a=this,l=a.items[e.id]||{};Array.isArray(t)?(Array.isArray(o)&&o.forEach(e=>{if(!t.includes(e))for(i=l[a.getEventName(e)]||[],r=0,n=i.length;r<n;r++)if(i[r].originalConfig===e){s.a.remove(i,i[r]);break}}),t.forEach(t=>{Object.entries(t).forEach(([o,r])=>{u.includes(o)||a.register({delegate:r.delegate||t.delegate||"#"+e.id,eventName:o,id:e.id,opts:r,originalConfig:t,scope:t.scope||e,vnodeId:r.vnodeId||e.id})})}),e.mounted&&a.mountDomListeners(e)):c.a.logError("Component.domListeners have to be an array",e)}updateListenerPlaceholder(e){let t,o=(this.items[e.componentId]||{})[e.eventName]||[],r=0,n=o.length;for(;r<n;r++)if(t=o[r],t.fn===e.eventHandlerName){t.fn=e.eventHandlerMethod,t.scope=e.scope;break}}verifyDelegationPath(e,t){let o,r,n,s,i,a=e.delegate.split(" "),l=0,c=a.length,d=t.length;for(r=c-1;r>=0;r--){for(o=!1,n=a[r],s=n.startsWith("#"),(s||n.startsWith("."))&&(n=n.substr(1));l<d;l++)if(s&&t[l].id===n||t[l].cls.includes(n)){o=!0,i=t[l].id;break}if(!o)return!1}for(;l<d;l++)if(t[l].id===e.vnodeId)return i;return!1}}Neo.applyClassConfig(h);let f=Neo.create(h);Neo.applyToGlobalNs(f);t.a=f},function(e,t,o){"use strict";class r{static getStaticConfig(){return{registerToGlobalNs:!0}}static getConfig(){return{className:"Neo.core.IdGenerator",ntype:"id-generator",base:"neo-",singleton:!0}}constructor(e){this.idCounter={},Neo.getId=this.getId.bind(this)}onConstructed(){}init(){}getId(e){e=e||"neo";let t=this.idCounter,o=t[e]||0;return t[e]=++o,this.base+("neo"===e?"":e+"-")+o}}Neo.applyClassConfig(r);let n=Neo.create(r);Neo.applyToGlobalNs(n),t.a=n},function(e,t,o){"use strict";o.d(t,"a",(function(){return s}));var r=o(6),n=o(0);class s extends r.a{static getStaticConfig(){return{iconPositions:["top","right","bottom","left"]}}static getConfig(){return{className:"Neo.component.Button",ntype:"button",cls:["neo-button"],editRoute:!0,handler_:null,handlerScope:null,iconCls_:null,iconColor_:null,iconPosition_:"left",pressed_:!1,route_:null,text_:"",_vdom:{tag:"button",cn:[{tag:"span",cls:["neo-button-glyph"]},{tag:"span",cls:["neo-button-text"]}]}}}afterSetHandler(e,t){if(e){let t=this,o=t.domListeners||[];o.push({click:e,scope:t.handlerScope||t}),t.domListeners=o}}afterSetIconCls(e,t){let o=this.vdom,r=this.getVdomRoot().cn[0];n.a.remove(r.cls,t),e&&""!==e?(r.removeDom=!1,n.a.add(r.cls,e)):r.removeDom=!0,this.vdom=o}afterSetIconColor(e,t){let o=this.vdom,r=this.getVdomRoot().cn[0];r.style||(r.style={}),""===e&&(e=null),r.style.color=e,this.vdom=o}afterSetIconPosition(e,t){let o=this.cls;n.a.remove(o,"icon-"+t),n.a.add(o,"icon-"+e),this.cls=o}afterSetPressed(e,t){let o=this.cls;n.a[!0===e?"add":"remove"](o,"pressed"),this.cls=o}afterSetRoute(e,t){if(e){let e=this,t=e.domListeners||[];t.push({click:e.changeRoute,scope:e}),e.domListeners=t}}afterSetText(e,t){let o=this,r=o.vdom,s=o.getVdomRoot(),i=s.cn[1];""===e?(n.a.add(o._cls,"no-text"),n.a.add(s.cls,"no-text"),i.removeDom=!0):(n.a.remove(o._cls,"no-text"),n.a.remove(s.cls,"no-text"),i.removeDom=!1,i.innerHTML=e),o.vdom=r}beforeGetIconCls(){let e=this._iconCls;return Array.isArray(e)?e.join(" "):e}beforeSetIconCls(e,t){return e&&!Array.isArray(e)&&(e=e.split(" ")),e}beforeSetIconPosition(e,t){return this.beforeSetEnumValue(e,t,"iconPosition")}changeRoute(){const e=this;e.editRoute?Neo.Main.editRoute(this.route):Neo.Main.setRoute({value:e.route})}}Neo.applyClassConfig(s)},function(e,t,o){"use strict";o.d(t,"a",(function(){return n}));var r=o(17);class n extends r.a{static getConfig(){return{className:"Neo.manager.Base",ntype:"base-manager"}}getById(e){return this.get(e)}register(e){let t=this;t.get(e.id)?Neo.logError("Trying to create an item with an already existing id",e,t.get(e.id)):t.push(e)}unregister(e){this.remove(e)}}Neo.applyClassConfig(n)},function(e,t,o){"use strict";var r=o(1);o(8);class n extends r.a{static getStaticConfig(){return{observable:!0,operators:["==","===","!=","!==","<","<=",">",">=","excluded","included","isDefined","isUndefined","like"]}}static getConfig(){return{className:"Neo.collection.Filter",ntype:"filter",disabled_:!1,filterBy_:null,includeEmptyValues:!1,isUpdating_:!1,listenerApplied:!1,operator_:"===",property_:"id",scope:null,value_:null}}afterSetDisabled(...e){this.fireChangeEvent(...e)}afterSetFilterBy(e,t){}afterSetIsUpdating(e,t){!1===e&&this.fireChangeEvent(e,t)}afterSetOperator(...e){this.fireChangeEvent(...e)}afterSetProperty(...e){this.fireChangeEvent(...e)}afterSetValue(...e){this.fireChangeEvent(...e)}beforeSetFilterBy(e,t){return e&&"function"!=typeof e?(Neo.logError("filterBy has to be a function",this),t):e}beforeSetOperator(e,t){return this.beforeSetEnumValue(e,t,"operator")}fireChangeEvent(e,t){let o=this;void 0!==t&&!0!==o.isUpdating&&o.fire("change",{operator:o.operator,property:o.property,value:o.value})}isFiltered(e,t,o){let r=this;return!r._disabled&&((!r.includeEmptyValues||null!==r._value&&!Neo.isEmpty(r._value))&&(r._filterBy?r.filterBy.call(r.scope||r,e,t,o):!n[r._operator](e[r._property],r._value)))}static"=="(e,t){return e==t}static"==="(e,t){return e===t}static"!="(e,t){return e!=t}static"!=="(e,t){return e!==t}static"<"(e,t){return e<t}static"<="(e,t){return e<=t}static">"(e,t){return e>t}static">="(e,t){return e>=t}static excluded(e,t){return t.indexOf(e)<0}static included(e,t){return t.indexOf(e)>-1}static isDefined(e,t){return void 0!==e}static isUndefined(e,t){return void 0===e}static like(e,t){return e.toLowerCase().includes(t.toLowerCase())}}Neo.applyClassConfig(n);var s=n,i=o(7);class a extends r.a{static getStaticConfig(){return{observable:!0}}static getConfig(){return{className:"Neo.collection.Sorter",ntype:"sorter",directionMultiplier:1,direction_:"ASC",listenerApplied:!1,property_:"id",sortBy:null,useTransformValue:!0}}afterSetDirection(e,t){let o=this;o.directionMultiplier="ASC"===e?1:-1,t&&o.fire("change",{direction:o.direction,property:o.property})}afterSetProperty(e,t){let o=this;t&&o.fire("change",{direction:o.direction,property:o.property})}defaultSortBy(e,t){let o=this;return e=e[o.property],t=t[o.property],o.useTransformValue&&(e=o.transformValue(e),t=o.transformValue(t)),e>t?1*o.directionMultiplier:e<t?-1*o.directionMultiplier:0}transformValue(e){return"string"==typeof e&&(e=e.toLowerCase()),e}}Neo.applyClassConfig(a);var l=a,c=o(4);const d=Symbol("countMutations"),u=Symbol("isFiltered"),p=Symbol("isSorted"),h=Symbol("silentUpdateMode"),f=Symbol("toAddArray"),m=Symbol("toRemoveArray"),g=Symbol("updatingIndex");class y extends r.a{static getStaticConfig(){return{observable:!0}}static getConfig(){return{className:"Neo.collection.Base",ntype:"collection",allItems:null,autoSort:!0,filterMode:"primitive",filters_:[],items_:[],keyProperty:"id",map_:null,sortDirections:null,sortProperties:null,sorters_:[],sourceId_:null}}constructor(e){super(e);let t=this,o={enumerable:!1,writable:!0};Object.defineProperties(t,{[d]:{...o,value:!1},[u]:{...o,value:!1},[p]:{...o,value:!1},[h]:{...o,value:!1},[f]:{...o,value:[]},[m]:{...o,value:[]},[g]:{...o,value:0}}),t.autoSort&&t._sorters.length>0&&t.doSort()}add(e){return this.splice(0,null,e),this.getCount()}afterSetFilters(e,t){let o=this;e.forEach(e=>{!1===e.listenerApplied&&(e.on("change",o.onFilterChange,o),e.listenerApplied=!0)}),t&&o.filter()}afterSetItems(e,t){let o,r=this,n=r.keyProperty,s=0,i=e.length;for(;s<i;s++)o=e[s],r.map.set(o[n],o)}afterSetSorters(e,t){let o=this;o.applySorterConfigs(),e.forEach(e=>{!1===e.listenerApplied&&(e.on("change",o.onSorterChange,o),e.listenerApplied=!0)}),t&&o.autoSort&&o.doSort()}afterSetSourceId(e,t){if(e){let o=this,r=Neo.get(e);o._items=[...r._items],o.map=new Map(r.map);const n={mutate:o.onMutate,scope:o};r.on(n),t&&(r=Neo.get(t),r.un(n))}}applySorterConfigs(){let e=this;e.sortDirections=[],e.sortProperties=[],e.sorters.forEach(t=>{e.sortDirections.push(t.directionMultiplier),e.sortProperties.push(t.property)})}beforeSetMap(e,t){return e||new Map}beforeSetFilters(e,t){Array.isArray(e)||(e=e?[e]:[]);let o,r,n=t&&t.length||0;return e.forEach((i,a)=>{if(!(i instanceof l)){if(t)for(o=!1,r=0;r<n;r++)if(t[r].operator===(i.operator||"===")&&t[r].property===i.property&&t[r].value===i.value){e[a]=t[r],o=!0,t.splice(r,1),n--;break}o||(e[a]=Neo.create(s,i))}}),Array.isArray(t)&&t.forEach(e=>{e.destroy()}),e}beforeSetSorters(e,t){Array.isArray(e)||(e=e?[e]:[]);let o,r,n=t&&t.length||0;return e.forEach((s,i)=>{if(!(s instanceof l)){if(t)for(o=!1,r=0;r<n;r++)if(t[r].property===s.property&&t[r].direction===s.direction){e[i]=t[r],o=!0,t.splice(r,1),n--;break}o||(e[i]=Neo.create(l,s))}}),Array.isArray(t)&&t.forEach(e=>{e.destroy()}),e}cacheUpdate(e){console.log("cacheUpdate",e,this[f])}clear(){this._items.splice(0,this.getCount()),this.map.clear()}clearFilters(e){this.filters=e?Neo.clone(this.originalConfig.filters,!0,!0):null}clearSorters(e){this.sorters=e?Neo.clone(this.originalConfig.sorters,!0,!0):null}clone(){let e=this,t=Neo.clone(e.originalConfig,!0),o=e._filters||[],r=e._sorters||[];return delete t.id,delete t.filters,delete t.items,delete t.sorters,e._items.length>0&&(t.items=[...e._items]),t.filters=[],t.sorters=[],o.forEach((function(e){t.filters.push(e.originalConfig)})),r.forEach((function(e){t.sorters.push(e.originalConfig)})),Neo.create(y,t)}destroy(){this.items.splice(0,this._items.length),this.map.clear(),super.destroy()}doSort(){let e,t,o,r,n,s,i=this,a=i._items,l=i.sorters,c=i.sortDirections,d=i.sortProperties,u=d.length||0,h=!1,f=!1;u>0&&(l.forEach(e=>{e.sortBy&&(h=!0),e.useTransformValue&&(f=!0)}),h?i._items.sort((t,o)=>{for(e=0;e<u;e++)if(r=l[e],s=r[r.sortBy?"sortBy":"defaultSortBy"](t,o),0!==s)return s;return 0}):(t=f?a.map((t,r)=>{for(o={index:r},e=0;e<u;e++)l[e].useTransformValue?o[d[e]]=l[e].transformValue(t[d[e]]):o[d[e]]=t[d[e]];return o}):a,t.sort((t,o)=>{for(e=0;e<u;e++){if(n=d[e],t[n]>o[n])return 1*c[e];if(t[n]<o[n])return-1*c[e]}return 0}),f&&(i._items=t.map(e=>a[e.index])))),i[p]=u>0,0===i[g]&&i.fire("sort")}endUpdate(e){const t=this;t[g]>0&&t[g]--,e?t[h]=!1:(t.fire("mutate",{addedItems:t[f],removedItems:t[m]}),t[f].splice(0,t[f].length),t[m].splice(0,t[m].length))}filter(){let e,t,o,r,n,s=this,i=s._filters,a=i.length,l=0,c=s.allItems&&s.allItems._items||s._items,d=0,p=c.length,h=[];for(;d<a;d++)i[d].disabled||l++;if(0===l&&s.allItems)s.clear(),s.items=[...s.allItems._items],s.map.set(...s.allItems.map);else if(s.allItems||(e={...s.originalConfig},delete e.filters,delete e.items,delete e.sorters,s.allItems=Neo.create(y,{...Neo.clone(e,!0,!0),keyProperty:s.keyProperty,sourceId:s.id})),s.map.clear(),"primitive"===s.filterMode){for(d=0;d<p;d++){for(t=!0,o=c[d],r=0;r<a;r++)if(i[r].isFiltered(o,c,c)){t=!1;break}t&&(h.push(o),s.map.set(o[s.keyProperty],o))}s._items=h}else{for(h=[...c],r=0;r<a;r++){for(n=[],d=0;d<p;d++)i[r].isFiltered(h[d],h,c)||n.push(h[d]);h=[...n],p=h.length}s.items=h}s[u]=0!==l,s.fire("filter")}find(e,t){let o,r,n,s=[],i=Neo.isObject(e);return i&&(r=Object.entries(e),n=r.length),this.items.forEach(a=>{i?(o=[],r.forEach(([e,t])=>{a[e]===t&&o.push(!0)}),o.length===n&&s.push(a)):a[e]===t&&s.push(a)}),s}findBy(e,t,o,r){let n=this,s=[],i=o||0,a=r||n.getCount();for(t=t||n;i<a;i++)e.call(t,n.items[i])&&s.push(n.items[i]);return s}first(){return this._items[0]}get(e){return this.map.get(e)}getAt(e){return this._items[e]}getCount(){return this._items.length}getCountMutations(){return this[d]}getFilter(e){let t=this.filters||[],o=0,r=t.length;for(;o<r;o++)if(t[o].property===e)return t[o];return null}getKeyAt(e){let t=this._items[e];return t&&t[this.keyProperty]}getRange(e,t){return this._items.slice(e,t)}getSource(){return this.sourceId&&Neo.get(this.sourceId)}has(e){return this.map.has(e)}hasItem(e){return this.map.has(e[this.keyProperty])}indexOf(e){return this._items.indexOf(c.a.isObject(e)?e:this.map.get(e))}indexOfItem(e){return this._items.indexOf(e)}indexOfKey(e){return this._items.indexOf(this.map.get(e))}insert(e,t){return this.splice(e,0,t),this.getCount()}isFiltered(){return this[u]}isFilteredItem(e){let t=this._filters,o=0,r=t.length,n=!1;for(;o<r;o++)if(t[o].isFiltered(e)){n=!0;break}return n}isSorted(){return this[p]}last(){return this._items[this.getCount()-1]}onFilterChange(e){this.filter()}onMutate(e){let t=this;e.preventBubbleUp&&(t.preventBubbleUp=!0),t.splice(null,e.removedItems,e.addedItems)}onSorterChange(e){this.applySorterConfigs(),this.doSort()}pop(){return this.splice(this.getCount()-1,1).removedItems[0]}push(e){return this.add(e)}remove(e){return this.splice(0,Array.isArray(e)?e:[e]),this.getCount()}removeAt(e){return this.splice(e,1),this.getCount()}reverse(){return this._items.reverse()}shift(){return this.splice(0,1).addedItems[0]}some(...e){return this._items.some(...e)}splice(e,t,o){let r,n,s,a,l,u=this,p=u.getSource(),f=[],m=u._items,y=u.keyProperty,b=u.map,v=[],C=c.a.isNumber(t)?t:null,N=Array.isArray(t)?t:null;if(!e&&C&&i.a.error(u.id+": If index is not passed, removeCountAtIndex cannot be used"),o=o&&!Array.isArray(o)?[o]:o,N&&(a=N.length)>0)for(o&&o.length>0&&(l=o.map(e=>e[y])),r=0;r<a;r++)n=N[r],s=c.a.isObject(n)?n[y]:n,b.has(s)&&(!l||l&&l.indexOf(s)<0)&&(v.push(m.splice(u.indexOfKey(s),1)[0]),b.delete(s));else C&&C>0&&(v.push(...m.splice(e,C)),v.forEach(e=>{b.delete(e[y])}));if(o&&(a=o.length)>0){for(r=0;r<a;r++)n=o[r],s=c.a.isObject(n)?n[y]:n,b.has(s)||u.isFilteredItem(n)||(f.push(n),b.set(s,n));f.length>0&&(m.splice(c.a.isNumber(e)?e:m.length,0,...f),u.autoSort&&u._sorters.length>0&&u.doSort())}return p&&(p.getSource()||(p.preventBubbleUp=!0),u.preventBubbleUp||(u.startUpdate(!0),p.splice(null,N||v,o),u.endUpdate(!0)),delete p.preventBubbleUp),(f.length>0||v.length>0)&&u[d]++,0===u[g]?u.fire("mutate",{addedItems:o,preventBubbleUp:u.preventBubbleUp,removedItems:N||v}):u[h]||u.cacheUpdate({addedItems:f,removedItems:v}),0===u[g]&&delete u.preventBubbleUp,{addedItems:f,removedItems:v}}startUpdate(e){e&&(this[h]=!0),this[g]++}unshift(e){return this.splice(0,0,e),this.getCount()}}Neo.applyClassConfig(y);t.a=y},,,,,function(e,t,o){"use strict";o.d(t,"a",(function(){return n}));var r=o(14);class n{constructor(e){e.destination=e.destination||"main",e.id=e.id||r.a.getId(Neo.workerId),e.origin=e.origin||Neo.workerId,Object.assign(this,e)}}Neo.ns("Neo.worker",!0).Message=n},function(e,t,o){"use strict";o.d(t,"a",(function(){return n}));var r=o(1);class n extends r.a{static getConfig(){return{className:"Neo.worker.mixins.RemoteMethodAccess",ntype:"mixin-remote-method-access",mixin:!0}}generateRemote(e,t){let o=this,r=e.origin;return function(n,s){let i={action:"remoteMethod",data:n,destination:r,remoteClassName:e.className,remoteMethod:t};return o.promiseMessage(r,i,s)}}onRegisterRemote(e){if(e.destination===Neo.workerId){let t=this,o=e.className,r=e.methods,n=Neo.ns(o,!0);r.forEach((function(r){if(n[r])throw new Error("Duplicate remote method definition "+o+"."+r);n[r]=t.generateRemote(e,r)})),"main"!==Neo.workerId&&t.fire("remoteregistered",e)}}onRemoteMethod(e){let t,o,r=this,n=Neo.ns(e.remoteClassName);if(!n)throw new Error('Invalid remote namespace "'+e.remoteClassName+'"');if(o=n[e.remoteMethod],!o)throw new Error('Invalid remote method name "'+e.remoteMethod+'"');t=Array.isArray(e.data)?o.call(n,...e.data):o.call(n,e.data),t instanceof Promise?t.then((function(t){r.resolve(e,t)})).catch((function(t){r.reject(e,t)})):r.resolve(e,t)}reject(e,t){this.sendMessage(e.origin,{action:"reply",data:t,reject:!0,replyId:e.id})}resolve(e,t){this.sendMessage(e.origin,{action:"reply",data:t,replyId:e.id})}}Neo.applyClassConfig(n)},,function(e,t,o){"use strict";o.d(t,"a",(function(){return a}));var r=o(1),n=o(8),s=o(22),i=o(23);class a extends r.a{static getConfig(){return{className:"Neo.worker.Worker",ntype:"worker",mixins:[n.a,i.a],workerId:null}}constructor(e){super(e=e||{});let t=this;t.promises={},self.addEventListener("message",t.onMessage.bind(t),!1),Neo.workerId=t.workerId,Neo.currentWorker=t}onMessage(e){let t,o=this,r=e.data,n=r.action,s=r.replyId;if(!n)throw new Error("Message action is missing: "+r.id);if("reply"!==n)try{this["on"+Neo.capitalize(n)](r)}catch(t){console.log("error",r,t,e),this.reject(r.id,{error:t.message})}else(t="reply"===n&&o.promises[s])&&(r.reject?t.reject(r.data):t.resolve(r.data),delete o.promises[s])}onPing(e){this.resolve(e,{originMsg:e})}onRegisterNeoConfig(e){Neo.config=Neo.config||{},Object.assign(Neo.config,e.data)}promiseMessage(e,t,o){let r=this;return new Promise((function(n,s){let i=r.sendMessage(e,t,o).id;r.promises[i]={resolve:n,reject:s}}))}sendMessage(e,t,o){t.destination=e;let r=new s.a(t);return self.postMessage(r,o),r}}Neo.applyClassConfig(a)},function(e,t,o){"use strict";o.d(t,"a",(function(){return s}));var r=o(1),n=o(12);class s extends r.a{static getStaticConfig(){return{observable:!0}}static getConfig(){return{className:"Neo.controller.Base",ntype:"controller"}}constructor(e){super(e),n.a.on("change",this.onHashChange,this)}onHashChange(e,t,o){}}Neo.applyClassConfig(s)},,function(e,t,o){"use strict";var r=o(1);class n extends r.a{static getConfig(){return{className:"Neo.util.Style"}}static compareStyles(e,t){let o={};return Neo.isString(e)&&(e=Neo.core.Util.createStyleObject(e)),Neo.isString(t)&&(t=Neo.core.Util.createStyleObject(t)),e||t?t?e?(Object.keys(e).forEach((function(r){t.hasOwnProperty(r)&&t[r]===e[r]||(o[r]=e[r])})),Object.keys(t).forEach((function(t){e.hasOwnProperty(t)||(o[t]=null)})),Object.keys(o).length>0?o:null):void Object.keys(t).forEach((function(e){o[e]=null})):Neo.clone(e):null}}Neo.applyClassConfig(n),t.a=n},,function(e,t,o){"use strict";o.d(t,"a",(function(){return i}));o(15);var r=o(6),n=o(9),s=(o(37),o(0));class i extends n.a{static getStaticConfig(){return{dockPositions:["top","right","bottom","left"]}}static getConfig(){return{className:"Neo.container.Toolbar",ntype:"toolbar",cls:["neo-toolbar"],dock_:"top",itemDefaults:{ntype:"button"},_layout:{ntype:"hbox",align:"center",pack:"start"}}}getLayoutConfig(){let e;switch(this.dock){case"bottom":case"top":e={ntype:"hbox",align:"center",pack:"start"};break;case"left":e={ntype:"vbox",align:"center",direction:"column-reverse",pack:"start"};break;case"right":e={ntype:"vbox",align:"center",direction:"column",pack:"start"}}return e}afterSetDock(e,t){let o=this,r=o.cls;o.getStaticConfig("dockPositions").forEach(t=>{s.a[t===e?"add":"remove"](r,"neo-dock-"+t)}),o.cls=r,o.layout=o.getLayoutConfig()}beforeSetDock(e,t){return this.beforeSetEnumValue(e,t,"dock","dockPositions")}createItems(){const e=this._items;return Array.isArray(e)&&e.forEach((t,o)=>{"->"===t&&(e[o]=Neo.create({module:r.a,flex:1}))}),super.createItems()}}Neo.applyClassConfig(i)},,function(e,t,o){"use strict";o.d(t,"a",(function(){return n}));var r=o(9);class n extends r.a{static getConfig(){return{className:"Neo.container.Viewport",ntype:"viewport",applyBodyCls:!0,cls:["neo-viewport"]}}onConstructed(){super.onConstructed(),this.applyBodyCls&&Neo.main.DomAccess.applyBodyCls({cls:["neo-body-viewport"]})}}Neo.applyClassConfig(n)},function(e,t,o){"use strict";var r=o(1);o.d(t,"a",(function(){return r.a}));o(7),o(8),o(4)},,,function(e,t,o){"use strict";var r=o(3),n=o(25),s=(o(33),o(13)),i=o(16),a=o(1);class l extends i.a{static getConfig(){return{className:"Neo.manager.Instance",ntype:"instance-manager",singleton:!0}}constructor(e){super(e);a.a.instanceManagerAvailable=!0,this.consumeNeoIdMap(),Neo.get=this.get.bind(this)}consumeNeoIdMap(){Neo.idMap&&(this.add(Object.values(Neo.idMap)),delete Neo.idMap)}}Neo.applyClassConfig(l);let c=Neo.create(l);Neo.applyToGlobalNs(c);var d=o(26);class u extends d.a{static getConfig(){return{className:"Neo.controller.Application",createMainView:!0,mainView_:null,name:"MyApp",parentId:"document.body",rendered:!1,rendering:!1}}constructor(e){super(e);let t=this;Neo.apps=Neo.apps||{},Neo.apps[t.name]=t,t.createMainView&&t.renderMainView(e)}renderMainView(){this.mainViewInstance=Neo.create(this.mainView,{appName:this.name,autoRender:!0,parentId:this.parentId})}}Neo.applyClassConfig(u),Neo.app=e=>Neo.create(u,e);var p=o(12);class h extends n.a{static getConfig(){return{className:"Neo.worker.App",ntype:"app-worker",data:null,dataRemotesRegistered:0,singleton:!0,vdomRemotesRegistered:0,workerId:"app",countDataRemotes:2,countVdomRemotes:1}}constructor(e){super(e);this.on("remoteregistered",this.onRemoteRegistered,this)}onDomEvent(e){s.a.fire(e)}onHashChange(e){p.a.push(e.hash,e.hashString)}onLoadApplication(e){let t=this;e&&(t.data=e,r.a.config.resourcesPath=e.resourcesPath),t.dataRemotesRegistered===t.countDataRemotes&&t.vdomRemotesRegistered===t.countVdomRemotes&&(r.a.config.isExperimental?import("../../"+t.data.path).then(e=>{r.a.onStart(),r.a.config.hash&&p.a.push(r.a.config.hash,r.a.config.hashString)}):(r.a.onStart(),r.a.config.hash&&p.a.push(r.a.config.hash,r.a.config.hashString)))}onRemoteRegistered(e){let t=this;switch(e.origin){case"data":t.dataRemotesRegistered++;break;case"vdom":t.vdomRemotesRegistered++}t.onLoadApplication()}}r.a.applyClassConfig(h);let f=r.a.create(h);r.a.applyToGlobalNs(f)},function(e,t,o){"use strict";o.d(t,"a",(function(){return n}));var r=o(6);class n extends r.a{static getConfig(){return{className:"Neo.component.Label",ntype:"label",cls:["neo-label"],text_:"",_vdom:{tag:"label"}}}afterSetText(e,t){let o=this.vdom;o.html=e,this.vdom=o}}Neo.applyClassConfig(n)},,,,,,,,function(e,t,o){"use strict";o.d(t,"a",(function(){return n}));var r=o(15);class n extends r.a{static getConfig(){return{className:"Neo.tab.header.Button",ntype:"tab-header-button",cls:["neo-tab-header-button","neo-button"],useActiveTabIndicator_:!0,_vdom:{tag:"button",cn:[{tag:"span",cls:["neo-button-glyph"]},{tag:"span",cls:["neo-button-text"]},{cls:["neo-tab-button-indicator"]}]}}}afterSetUseActiveTabIndicator(e,t){this.updateUseActiveTabIndicator()}updateUseActiveTabIndicator(e=!1){let t=this.vdom;t.cn[2].removeDom=!this.useActiveTabIndicator,this[e?"_vdom":"vdom"]=t}}Neo.applyClassConfig(n)},,,function(e,t,o){"use strict";o.d(t,"a",(function(){return d}));var r=o(9),n=o(45),s=o(30);class i extends s.a{static getConfig(){return{className:"Neo.tab.header.Toolbar",ntype:"tab-header-toolbar",cls:["neo-tab-header-toolbar","neo-toolbar"],useActiveTabIndicator_:!0}}afterSetUseActiveTabIndicator(e,t){if(Neo.isDefined(t)){let t=this,o=t.vdom;t.items.forEach(t=>{t._useActiveTabIndicator=e,t.updateUseActiveTabIndicator(!0)}),t.vdom=o}}createItems(){let e=this.itemDefaults||{};e.useActiveTabIndicator=this.useActiveTabIndicator,this.itemDefaults=e,super.createItems()}getLayoutConfig(){let e;switch(this.dock){case"bottom":case"top":e={ntype:"hbox",align:"center",pack:"start"};break;case"left":e={ntype:"vbox",align:"center",direction:"column-reverse",pack:"end"};break;case"right":e={ntype:"vbox",align:"center",direction:"column",pack:"start"}}return e}}Neo.applyClassConfig(i);var a=o(0),l=o(6);class c extends l.a{static getConfig(){return{className:"Neo.tab.Strip",ntype:"tab-strip",cls:["neo-tab-strip"],tabContainerId:null,useActiveTabIndicator_:!0,_vdom:{cn:[{cls:["neo-active-tab-indicator"]}]}}}onConstructed(){super.onConstructed();this.getTabContainer().on({activeIndexChange:this.getActiveTabRectThenMove,tabBarPositionChange:this.onTabBarPositionChange,scope:this})}afterSetMounted(e,t){super.afterSetMounted(e,t),e&&setTimeout(()=>{this.getActiveTabRectThenMove()},100,this)}afterSetUseActiveTabIndicator(e,t){let o=this,r=o.vdom;r.cn[0].removeDom=!e,o.mounted&&e?(o._vdom=r,o.getActiveTabRectThenMove()):o.vdom=r}getActiveTab(){let e=this.getTabContainer();return e.getTabBar().items[e.activeIndex]}getActiveTabRectThenMove(){let e=this;e.useActiveTabIndicator&&Neo.main.DomAccess.getBoundingClientRect({id:e.getActiveTab().id}).then(t=>{e.moveActiveIndicator(t)})}getTabContainer(){return Neo.getComponent(this.tabContainerId)}moveActiveIndicator(e){let t,o,r,n=this;if(n.useActiveTabIndicator){switch(r=n.vdom,t=r.cn[0],o=n.getTabContainer(),o.tabBarPosition){case"bottom":case"top":t.style={left:e.left+"px",width:e.width+"px"};break;case"left":case"right":t.style={height:e.height+"px",top:e.top+"px"}}t.style.opacity=1,n.vdom=r,setTimeout(()=>{t.style.opacity=0,n.vdom=r},300)}}onTabBarPositionChange(e){let t=this;t.useActiveTabIndicator&&setTimeout(()=>{t.getActiveTabRectThenMove()},50,t)}}Neo.applyClassConfig(c);class d extends r.a{static getStaticConfig(){return{tabBarPositions:["top","right","bottom","left"]}}static getConfig(){return{className:"Neo.tab.Container",ntype:"tab-container",activeIndex_:0,activateInsertedTabs:!1,baseCls:"neo-tab-container",cardContainerId:null,cls:["neo-tab-container"],contentContainerDefaults:null,headerToolbarDefaults:null,plain_:!0,tabBarId:null,tabStripDefaults:null,tabStripId:null,tabBarPosition_:"top",useActiveTabIndicator_:!0}}onConstructed(){this._layout=this.getLayoutConfig(),super.onConstructed()}add(e){return this.insert(this.getTabBar().items.length,e)}afterSetActiveIndex(e,t){let o=this,r=Neo.getComponent(o.cardContainerId);o.rendered&&e>-1&&(o.updateTabButtons(),r.layout.activeIndex=e,o.fire("activeIndexChange",{oldValue:t,value:e}))}afterSetPlain(e,t){let o=this.baseCls,r=this.cls||[];a.a[e?"unshift":"remove"](r,o+"-plain"),this.cls=r}afterSetTabBarPosition(e,t){let o=this,r=o.cls;a.a.remove(r,"neo-"+t),a.a.add(r,"neo-"+e),o.cls=r,o.rendered&&(o.layout=o.getLayoutConfig(),o.getTabBar().dock=e,o.getTabStrip().cls=["neo-tab-strip","neo-dock-"+e],o.fire("tabBarPositionChange",{oldValue:t,value:e}))}afterSetUseActiveTabIndicator(e,t){Neo.isDefined(t)&&(this.getTabBar().useActiveTabIndicator=e,this.getTabStrip().useActiveTabIndicator=e)}beforeSetTabBarPosition(e,t){return this.beforeSetEnumValue(e,t,"tabBarPosition")}createItems(){let e=this,t=e.items||[],o=[],r=[];Object.assign(e,{cardContainerId:e.cardContainerId||Neo.getId("container"),tabBarId:e.tabBarId||Neo.getId("tab-header-toolbar"),tabStripId:e.tabStripId||Neo.getId("tab-strip")}),t.forEach((t,n)=>{o.push(e.getTabButtonConfig(t.tabButtonConfig,n)),delete t.tabButtonConfig,t instanceof Neo.component.Base!=!0&&(t={...e.itemDefaults,flex:1,...t}),r.push(t)}),e.items=[{module:i,dock:e.tabBarPosition,flex:"none",id:e.tabBarId,items:o,useActiveTabIndicator:e.useActiveTabIndicator,...e.headerToolbarDefaults||{}},{module:c,cls:["neo-tab-strip","neo-dock-"+e.tabBarPosition],flex:"none",id:e.tabStripId,tabContainerId:e.id,useActiveTabIndicator:e.useActiveTabIndicator,...e.tabStripDefaults||{}},{ntype:"container",cls:["neo-container","neo-tab-content-container"],id:e.cardContainerId,itemDefaults:e.itemDefaults,items:r,layout:{ntype:"card",activeIndex:e.activeIndex},useActiveTabIndicator:e.useActiveTabIndicator,...e.contentContainerDefaults||{}}],e.itemDefaults=null,super.createItems()}getCard(e){return this.getCardContainer().items[e]||null}getCardContainer(){return Neo.getComponent(this.cardContainerId)}getCount(){return this.getTabBar().items.length}getLayoutConfig(){let e=null;switch(this.tabBarPosition){case"bottom":e={ntype:"vbox",align:"stretch",direction:"column-reverse",pack:"start"};break;case"left":e={ntype:"hbox",align:"stretch",direction:"row",pack:"start"};break;case"right":e={ntype:"hbox",align:"stretch",direction:"row-reverse",pack:"start"};break;case"top":e={ntype:"vbox",align:"stretch"}}return e}getTabBar(){return Neo.getComponent(this.tabBarId)}getTabButtonConfig(e,t){let o=this;return{...{module:n.a,flex:"none",index:t,pressed:o.activeIndex===t,domListeners:{click:{fn:function(e){o.activeIndex=Neo.getComponent(e.target.id).index},scope:o}}},...e}}getTabStrip(){return Neo.getComponent(this.tabStripId)}insert(e,t){let o,r,n,s,i=this,a=i.getCardContainer(),l=i.getTabBar(),c=!1;if(Array.isArray(t))for(o=0,r=t.length;o<r;o++)t[o]=i.insert(t[r-1],e);else if("object"==typeof t){for(o=0,r=a.items.length;o<r;o++)if(a.items[o].id===t.id){c=!0,n=a.items[o],i.activeIndex=o;break}if(!c&&t instanceof Neo.component.Base!=!0)for(s=t.tabButtonConfig,i.activateInsertedTabs&&(s.listeners=s.listeners||{},s.listeners.mounted={fn:i.onTabButtonMounted,scope:i}),l.insert(e,i.getTabButtonConfig(s,e)),delete t.tabButtonConfig,o=e+1,r=l.items.length;o<r;o++)l.items[o].index=o}return c||(t.flex=1,n=a.insert(e,t)),n}onTabButtonMounted(e){let t,o=this,r=o.getCardContainer(),n=o.getTabBar(),s=0,i=n.items.length,a=-1;for(;s<i;s++)if(n.items[s].id===e){a=s;break}a>-1&&(t=r.items[a],t.mounted?o.activeIndex=a:t.on("mounted",()=>{o.activeIndex=a}))}removeAt(e){let t,o,r=this,n=r.activeIndex,s=r.getCardContainer(),i=r.getTabBar();for(e<n?r._activeIndex=n-1:e===n&&(r.activeIndex=n-1),s.removeAt(e),i.removeAt(e),t=e,o=i.items.length;t<o;t++)i.items[t].index=t}updateTabButtons(){let e=this.activeIndex;(this.getTabBar().items||[]).forEach((t,o)=>{t.pressed=o===e})}}Neo.applyClassConfig(d)},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,o){"use strict";o.r(t);o(36);var r=o(48),n=o(32);class s extends n.a{static getConfig(){return{className:"TestApp.MainContainer",ntype:"main-container",autoMount:!0,layout:{ntype:"vbox",align:"stretch"},style:{padding:"50px"},itemDefaults:{ntype:"container",layout:{ntype:"hbox",align:"stretch"},itemDefaults:{module:r.a,style:{margin:"50px"},itemDefaults:{ntype:"component",style:{padding:"20px"}},items:[{ntype:"toolbar",itemDefaults:{domListeners:{click:{fn:e=>{let t=Neo.getComponent(e.target.id);t.up("tab-container").tabBarPosition=t.text.toLowerCase()}}}},items:[{ntype:"button",text:"Top"},{ntype:"button",text:"Right"},{ntype:"button",text:"Bottom"},{ntype:"button",text:"Left"}],tabButtonConfig:{iconCls:"fa fa-home",text:"Tab 1"}},{tabButtonConfig:{iconCls:"fa fa-play-circle",text:"Tab 2"},vdom:{innerHTML:"Test 2"}},{tabButtonConfig:{iconCls:"fa fa-user",text:"Tab 3"},vdom:{innerHTML:"Test 3"}}]}},items:[{items:[{},{tabBarPosition:"right"}]},{items:[{tabBarPosition:"bottom"},{tabBarPosition:"left"}]}]}}}Neo.applyClassConfig(s),Neo.onStart=function(){Neo.app({appPath:"examples/viewport/",mainView:s,name:"TestApp"})}}]);