@base-framework/base 3.9.8 → 3.9.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ import{b as k}from"./chunk-7RJQZEA3.js";import{a as pt,b as mt,c as gt,d as yt,e as C,f as y,g as A}from"./chunk-LX7KL4UO.js";import{a as L,b as ut}from"./chunk-ILT4B3VY.js";import{a as dt,c as I,d as ft,f as M}from"./chunk-E3C6NOMV.js";import{b as f,c as p}from"./chunk-R5DHGQZV.js";var q={items:new Map,add(s,t){return this.items.set(s,t),this},get(s){return this.items.get(s)??null}};f.addType("components",s=>{if(!s)return;let t=s.component;!t||!t.isUnit||(t.persistToken&&t.parent&&t.parent.removePersistedChild(t.persistToken),t.rendered===!0&&(t.prepareDestroy(),t.cleanUpAfterDestroy()))});var me=0,W=class{constructor(t,e,r){this.isUnit=!0,this.data=null,this.persist=null,this.nest=null,this.state=null,this.panel=null,this.parent=null,this.unitType=null,this._classId,this.id="",this.cached=[],this.init();let n,i;if(t==null)n={},i=[];else{let o=typeof t;o==="string"||o==="number"?(n={},i=[{tag:"text",textContent:t}]):Array.isArray(t)?(n={},i=t):(n=t||{},i=typeof e=="string"?[{tag:"text",textContent:e}]:e)}this.setupProps(n),this.children=i||[],this.persistedChildren={},this.persistedCount=0,this.onCreated(),this.rendered=!1,this.container=null}init(){this.id="cp-"+me++,this.unitType=this._classId||this.constructor.name.toLowerCase()}declareProps(){}addPersistedChild(t){let e=t.key,r=t.cache,n;r!=null&&e!=null?n="pk:"+r+":"+e:r!=null?n="pk:"+r:e!=null?n="pk:"+e:n="pc"+this.persistedCount++;let i=this.persistedChildren[n];return i&&t.unitType===i.unitType&&t.resumeScope(i),t.persistToken=n,this.persistedChildren[n]=t,n}removePersistedChild(t){this.rendered&&(!t||!this.persistedChildren[t]||delete this.persistedChildren[t])}setupProps(t){if(this.declareProps(),!(!t||typeof t!="object"))for(let e in t)Object.prototype.hasOwnProperty.call(t,e)&&(this[e]=t[e],e==="data"&&(this._externalData=!0))}getChildScope(){return this}getParentContext(){return this.parent?this.parent.getContext():null}setupContext(){if(this._contextResumed)return;let t=this.getParentContext(),e=this.setContext(t);if(e){this.context=e;return}this.context=t,this.setupAddingContext()}setupAddingContext(){let t=this.context,e=this.addContext(t);if(!e)return;let r=e[0];r&&(this.addingContext=!0,this.contextBranchName=r,this.addContextBranch(r,e[1]))}addContextBranch(t,e){this.context??={},this.context[t]=e}setContext(t){return null}addContext(t){return null}removeContext(){this.addingContext&&this.removeContextBranch(this.contextBranchName)}removeContextBranch(t){t&&delete this.context[t]}getContext(){return this.context}onCreated(){}render(){return{}}_cacheRoot(t){return t&&(t.id||(t.id=this.getId()),t.cache="panel",t)}_createLayout(){return this.render()}prepareLayout(){let t=this._createLayout();return this._cacheRoot(t)}afterBuild(){f.add(this.panel,"components",{component:this}),this.rendered=!0,this.afterLayout()}afterLayout(){this.afterSetup()}if(t,e){return t?e||t:null}map(t,e){let r=[];if(!t||t.length<1)return r;for(let n=0,i=t.length;n<i;n++){let o=e(t[n],n);r.push(o)}return r}removeAll(t){return M.removeAll(t)}getId(t){let e=this.id;return typeof t=="string"&&(e+="-"+t),e}cacheEle(t,e){e&&(this[e]=t,this.cached.push(e))}initialize(){this.setupContext(),this.beforeSetup()}beforeSetup(){}afterSetup(){}setup(t){this.setContainer(t),this.initialize()}setContainer(t){this.container=t}_remove(){this.prepareDestroy();let t=this.panel;t&&M.removeElement(t),this.cleanUpAfterDestroy()}cleanUpAfterDestroy(){this.panel=null,this.container=null;let t=this.cached;for(let e=0,r=t.length;e<r;e++)this[t[e]]=null;this.cached=[],this.persist!==!0&&(this.persistedChildren={},this.persistToken=null)}prepareDestroy(){this.persistedCount=0,this.rendered=!1;try{this.beforeDestroy()}catch(t){console.error("Error in beforeDestroy:",t)}this.removeContext(),this.data&&this.persist!==!0&&typeof this.data.unlink=="function"&&this.data.unlink()}beforeDestroy(){}destroy(){this._remove()}};var E=class{static resume(t,e){if(t._externalData){this._resumeExternal(t,e);return}this._resumeOwned(t,e)}static refresh(t){let e=t.setData();e&&t.data&&t.data.set(e.stage),this.refreshContext(t)}static refreshContext(t){let e=t.context;if(!e||!e.data)return;let r=t.getParentContext();if(!r||!r.data)return;let n=r.data.stage,i=e.data.stage,o=null;for(let a in n){if(!Object.prototype.hasOwnProperty.call(n,a))continue;let l=n[a];l!==i[a]&&(o===null&&(o={}),o[a]=l)}o!==null&&(typeof e.data._silentSet=="function"?e.data._silentSet(o):e.data.set(o))}static _resumeExternal(t,e){let r=t.setData();if(!r){t.data=e;return}if(e&&e.stage){let n=e._retainState||r._retainState,i=!n&&(e._refreshState||r._refreshState),o=this._buildExternalUpdates(e.stage,r.stage,n,i);L.isEmpty(o)||r._silentSet(o)}typeof r.flushPending=="function"&&r.flushPending(),t.data=r}static _buildExternalUpdates(t,e,r,n){let i={};for(let o in t){if(!Object.prototype.hasOwnProperty.call(t,o))continue;if(n){Object.prototype.hasOwnProperty.call(e,o)||(i[o]=t[o]);continue}let a=t[o];!r&&a==null||a!==e[o]&&(i[o]=a)}return i}static _resumeOwned(t,e){if(!t.data){t.data=e;return}if(e&&e._retainState){t.data=e;return}if(e&&e.stage){let r=e._refreshState||t.data._refreshState,n=this._buildOwnedUpdates(e.stage,t.data.stage,r);L.isEmpty(n)||t.data._silentSet(n)}t.data&&typeof t.data.flushPending=="function"&&t.data.flushPending()}static _buildOwnedUpdates(t,e,r){let n={};for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i))continue;if(r){Object.prototype.hasOwnProperty.call(e,i)||(n[i]=t[i]);continue}let o=t[i];o!=null&&o!==e[i]&&(n[i]=o)}return n}};var N=class{constructor(){this.events=[]}addEvents(t){let e=t.length;if(!(e<1))for(let r=0;r<e;r++){let n=t[r];this.on(n[0],n[1],n[2],n[3])}}on(t,e,r,n){p.on(t,e,r,n),this.events.push({event:t,obj:e,callBack:r,capture:n})}off(t,e,r,n){p.off(t,e,r,n);let i,o=this.events;for(let a=0,l=o.length;a<l;a++)if(i=o[a],i.event===t&&i.obj===e&&i.callBack===r&&i.capture===n){o.splice(a,1);break}}set(){let t=this.events;for(let e=0,r=t.length;e<r;e++){let n=t[e];p.on(n.event,n.obj,n.callBack,n.capture)}}unset(){let t=this.events;for(let e=0,r=t.length;e<r;e++){let n=t[e];p.off(n.event,n.obj,n.callBack,n.capture)}}reset(){this.unset(),this.events=[]}};var F=class{constructor(t,e){this.remoteStates=[],this.callBackStates=[];let r=this.convertStates(e);this.addStatesToTarget(t,r)}addStates(t,e){let r=this.convertStates(e);this.addStatesToTarget(t,r)}createState(t,e,r,n){return{action:t,state:e,callBack:r,targetId:n,token:null,callBackToken:null}}convertStates(t){let e=[];for(let r in t){if(!Object.prototype.hasOwnProperty.call(t,r))continue;if(r==="remotes"){this.setupRemoteStates(t[r],e);continue}let n=null,i=null,o=t[r];o&&typeof o=="object"&&(i=o.callBack,n=o.id||o.targetId,o=o.state),e.push(this.createState(r,o,i,n))}return e}setupRemoteStates(t,e){for(let r=0,n=t.length;r<n;r++){let i=t[r];if(i)for(let o in i){if(!Object.prototype.hasOwnProperty.call(i,o)||o==="id")continue;let a=null,l=i[o],c=l!==null?l:void 0;c&&typeof c=="object"&&(a=c.callBack,c=c.state),e.push(this.createState(o,c,a,i.id))}}}removeRemoteStates(t){let e=this.remoteStates;e&&this.removeActions(t,e)}removeLocalStates(t){let e=this.callBackStates;if(e)for(let r=0,n=e.length;r<n;r++){let i=e[r];i.callBackToken&&(t.off(i.action,i.callBackToken),i.callBackToken=null)}}removeActions(t,e){if(!(e.length<1))for(let r=0,n=e.length;r<n;r++){let i=e[r];i.token&&this.unbindRemoteState(t,i.token),i.targetId&&k.remove(i.targetId,i.action,i.token)}}restore(t){k.restore(t.id,t);let e=this.callBackStates;if(e)for(let n=0,i=e.length;n<i;n++){let o=e[n];o.callBackToken=t.on(o.action,o.callBack)}let r=this.remoteStates;if(r)for(let n=0,i=r.length;n<i;n++){let o=r[n];o.token=this.bindRemoteState(t,o.action,o.targetId)}}bindRemoteState(t,e,r){let n=k.getTarget(r);return t.link(n,e)}unbindRemoteState(t,e){t.unlink(e)}addStatesToTarget(t,e){let r=this.remoteStates;for(let n=0,i=e.length;n<i;n++){let o=e[n],a=this.addAction(t,o);o.targetId&&(o.token=a,r.push(o))}}addAction(t,e){let r,n=e.action,i=e.targetId;i&&(r=this.bindRemoteState(t,n,i)),typeof e.state<"u"&&t.addAction(n,e.state);let o=e.callBack;return typeof o=="function"&&(e.callBackToken=t.on(n,o),this.callBackStates.push(e)),r||null}};var x=class extends W{constructor(t,e,r){super(t,e,r),this.isComponent=!0,this.stateResumed=!1,this.stateTargetId=null,this._externalData=this._externalData??!1,this._setupData()}setData(){return null}_setupData(){if(this.data)return;let t=this.setData();t&&(this.data=t)}resumeScope(t){if(this._resumeData(t.data),this.state=t.state,this.stateHelper=t.stateHelper,this.persistedChildren=t.persistedChildren,t.context){let e=t.context.data;e&&e._refreshState===!0&&e._retainState!==!0||(this.context=t.context,this._contextResumed=!0)}this.id=t.id,this._refreshContextData()}_resumeData(t){E.resume(this,t)}_refreshData(){E.refresh(this)}_refreshContextData(){E.refreshContext(this)}initialize(){this.setupContext(),this.addStates(),this.beforeSetup()}afterLayout(){this.addEvents(),this.afterSetup()}setupStateTarget(t){let e=t||this.stateTargetId||this.id;this.state=k.attach(String(e))}setupStates(){return{}}addStates(){let t=this.state;if(t){this.stateResumed=!0,this.stateHelper?.restore(t);return}let e=this.setupStates();L.isEmpty(e)||this.setStateHelper(e)}setStateHelper(t={}){this.state||(this.setupStateTarget(),this.stateHelper=new F(this.state??{},t))}addState(t){!this.stateHelper||this.stateResumed===!0||this.stateHelper.addStates(this.state,t)}removeStates(){let t=this.state;if(!t)return;let e=this.stateHelper;e&&(e.removeRemoteStates(t),e.removeLocalStates(t)),k.detach(String(t.id)),this.stateResumed=!1}onFlush(t){let e=this.data??this?.context?.data??null;e&&e.onFlush(t)}setEventHelper(){this.events||(this.events=new N)}setupEvents(){return[]}addEvents(){let t=this.setupEvents();t.length<1||(this.setEventHelper(),this.events&&this.events.addEvents(t))}removeEvents(){let t=this.events;t&&t.reset()}prepareDestroy(){this.persistedCount=0,this.rendered=!1;try{this.beforeDestroy()}catch(t){console.error("Error in beforeDestroy:",t)}this.removeEvents(),this.removeStates(),this.removeContext(),this.data&&this.persist!==!0&&this.data.unlink()}};var xt={created:"onCreated",setStates:"setupStates",state:"setupStates",events:"setupEvents",before:"beforeSetup",render:"render",after:"afterSetup",destroy:"beforeDestroy"},St=(s,t)=>typeof s!="function"&&t==="setupStates"?()=>s:s;var rt=(s,t)=>{if(!s)return t;let e=Object.keys(s);for(let r=0,n=e.length;r<n;r++){let i=e[r],o=s[i],a=xt[i]||i;t[a]=St(o,a)}return t},ge=s=>rt(s,{}),ye=0,vt=(s,t)=>{class e extends s{}return Object.assign(e.prototype,t),e.prototype._classId="jot"+ye++,e},B=(s,t=x)=>{s||(s={});let e,r=typeof s;return r==="object"&&s.render?(e=ge(s),vt(t,e)):(e={render:r==="function"?s:()=>s},vt(t,e))};var st=(s,t)=>({attr:s,directive:t});var S=(s,t)=>({key:s,value:t});var wt=(s,t,e,r)=>({tag:s,attr:t,directives:e,children:r});var Ct=null,xe=()=>Ct||(Ct=q.get("watch")),v=class{static getTag(t){return t.tag||"div"}static setupChildren(t){t.nest&&(t.children=t.nest,delete t.nest)}static setElementContent(t,e,r,n){return t==="text"?(n.push({tag:"text",textContent:e}),!0):t==="html"||t==="innerHTML"?(r.push(S("innerHTML",e)),!0):!1}static setTextAsWatcher(t,e,r){t.push(st(S(e,A.getWatcherSettings(r,ft(e))),xe()))}static setButtonType(t,e,r){if(t==="button"){let n=e.type||"button";r.push(S("type",n))}}static parse(t,e){let r=[],n=[],i=t.tag||"div";i==="button"&&r.push(S("type",t.type||"button"));let o=[],a,l;for(let c in t){if(!Object.prototype.hasOwnProperty.call(t,c)||c==="tag"||(a=t[c],a==null))continue;if(c==="children"||c==="nest"){if(Array.isArray(a))for(let d=0;d<a.length;d++)o.push(a[d]);else o.push(a);continue}if((l=q.get(c))!==null){n.push(st(S(c,a),l));continue}let h=typeof a;if(h==="object"){if(A.isWatching(a)){this.setTextAsWatcher(n,c,a);continue}o.push(a);continue}if(h==="function"){let d=a,m=function(g){d.call(this,g,e)};m.originalCallback=d,r.push(S(c,m));continue}if(h==="string"&&a.includes("[[")){this.setTextAsWatcher(n,c,a);continue}if(c==="text"){o.push({tag:"text",textContent:a});continue}if(c==="html"||c==="innerHTML"){r.push(S("innerHTML",a));continue}r.push(S(c,a))}return wt(i,r,n,o)}};var D=class{build(t,e,r){}setupComponent(t,e,r){let n=r?.getChildScope();t.parent=n,n&&n.persist===!0&&t.persist!==!1&&(t.persist=!0,t.parent.addPersistedChild(t)),t.cache&&n&&(n[t.cache]=t),t.setup(e)}buildComponent(t){let e=t.prepareLayout(),r=this.build(e,t.container,t);return t.afterBuild(),t.component&&typeof t.onCreated=="function"&&t.onCreated(t),r}createComponent(t,e,r){return this.setupComponent(t,e,r),this.buildComponent(t),t}setDirectives(t,e,r){}removeNode(t){}removeAll(t){}};var Se=s=>{for(let e in s)if(e!=="tag"&&e!=="textContent")return!1;let t=s.textContent;return typeof t=="string"?t.indexOf("[[")===-1:typeof t!="object"},Q=class extends D{build(t,e,r){let n=y.createDocFragment();if(Array.isArray(t))for(let i=0,o=t.length;i<o;i++)this.buildElement(t[i],n,r);else this.buildElement(t,n,r);return e&&typeof e=="object"&&e.appendChild(n),n}buildElement(t,e,r){if(t){if(t.isUnit===!0){this.createComponent(t,e,r);return}this.createElement(t,e,r)}}createElement(t,e,r){if(t.tag==="text"&&Se(t)){let c=t.textContent;y.createText(c??"",e);return}let n=r?.getChildScope();if(t.data||t.state){this.createTempComponent(t,e,n);return}let i=v.parse(t,n),o=this.createNode(i,e,n);this.cache(o,t.cache,r);let a=i.children;for(let c=0,h=a.length;c<h;c++){let d=a[c];d!==null&&this.buildElement(d,o,r)}let l=i.directives;l.length&&this.setDirectives(o,l,n)}createTempComponent(t,e,r){let n={cache:t.cache,key:t.key,persist:t.persist,_externalData:!0,setData:()=>t.data,...rt(t.methods||{},{}),render(){return{...t,data:null,state:null,methods:null,key:null,persist:null}}};t.state&&(n.setupStateTarget=function(o){this.state=t.state});let i=new x(n);this.createComponent(i,e,r)}setDirectives(t,e,r){for(let n=0,i=e.length;n<i;n++)this.handleDirective(t,e[n],r)}handleDirective(t,e,r){e.directive(t,e.attr.value,r)}cache(t,e,r){r&&e&&r.cacheEle(t,e)}createNode(t,e,r){let n=t.tag;if(n==="text"){let i=t.attr[0],o=i?i.value:"";return y.createText(o,e)}else if(n==="comment"){let i=t.attr[0],o=i?i.value:"";return y.createComment(o,e)}return y.create(n,t.attr,e,r)}removeNode(t){y.removeElement(t)}removeAll(t){y.removeAll(t)}};var ve=new Set(["area","base","br","col","embed","hr","img","input","link","meta","source"]),we=/[&<>"]/,nt=s=>{let t=typeof s=="string"?s:String(s);return we.test(t)?t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;"):t},O=class{static create(t,e=[],r=""){let n="",i="";for(let o=0,a=e.length;o<a;o++){let l=e[o],c=l.key,h=l.value;if(c==="text"||c==="textContent"){n+=nt(h);continue}if(c==="html"||c==="innerHTML"){n+=h;continue}if(typeof h=="function")continue;let d=c+'="'+nt(h)+'"';i?i+=" "+d:i=d}return ve.has(t)?"<"+t+" "+i+" />":"<"+t+" "+i+">"+n+r+"</"+t+">"}static createText(t){return nt(t)}static createComment(t){return"<!-- "+t+" -->"}};var z=class extends D{build(t,e,r){if(Array.isArray(t)){let n="";for(let i=0,o=t.length;i<o;i++)n+=this.buildElement(t[i],r);return n}return this.buildElement(t,r)}createComponent(t,e,r){return this.setupComponent(t,e,r),this.buildComponent(t)}buildElement(t,e){return t?t.isUnit===!0?this.createComponent(t,{},e):this.createElement(t,e):""}createElement(t,e){let r=v.parse(t,e),n=r.children,i="";for(let o=0,a=n.length;o<a;o++){let l=n[o];l!==null&&(i+=this.buildElement(l,e))}return this.createNode(r,i)}createNode(t,e){let r=t.tag;if(r==="text"){let n=t.attr[0],i=n?n.value:"";return O.createText(i)}else if(r==="comment"){let n=t.attr[0],i=n?n.value:"";return O.createComment(i)}return O.create(r,t.attr,e)}removeAll(t){}};var j=class{static browserIsSupported(){return typeof window<"u"&&typeof document=="object"}static setup(){return this.browserIsSupported()?new Q:new z}};var T=j.setup(),Ce=s=>typeof s=="object"&&s.isUnit===!0,ke=s=>{let t=B(s);return t?new t:null},u=class{static render(t,e,r){return!t||(Ce(t)||(t=ke(t)),!t)?null:T.createComponent(t,e,r)}static build(t,e,r){return T.build(t,e,r)}static rebuild(t,e,r){return T.removeAll(e),this.build(t,e,r)}static setDirectives(t,e,r){T.setDirectives(t,e,r)}static createNode(t,e,r){return T.createNode(t,e,r)}static removeNode(t){T.removeNode(t)}static removeAll(t){T.removeAll(t)}};ut.augment({buildLayout(s,t,e){u.build(s,t,e)}});var it=[],Te=s=>it.indexOf(s)!==-1,be=s=>({tag:"script",src:s.src,async:!1,load(t){it.push(s.src);let e=s.load;e&&e()}}),Pe=s=>({tag:"link",rel:"stylesheet",type:"text/css",href:s.src,load(t){it.push(s.src);let e=s.load;e&&e()}}),$=class{constructor(t){this.percent=0,this.loaded=0,this.total=0,this.callBack=t||null}add(t){this.total++;let e,r=this.update.bind(this);t.indexOf(".css")!==-1?e=Pe({load:r,src:t}):e=be({load:r,src:t}),u.build(e,document.head)}addFiles(t){t&&t.forEach(e=>{Te(e)||this.add(e)})}update(){if(this.updateProgress()<100)return;let e=this.callBack;e&&e()}updateProgress(){return++this.loaded,this.percent=Math.floor(this.loaded/this.total*100)}};var Re=s=>s?typeof s?.prototype?.constructor=="function":!1,b=class{static process(t,e){let r=t.default;return r?e.callback?e.callback(r):(Re(r)?r=new r:r=r(),r.isUnit===!0&&(r.route=e.route,e.persist&&(r.persist=!0)),r):null}static render(t,e,r){let n=u.build(t,null,r),i=n.firstChild||t?.panel;return e.after(n),i}};var Y=class{static load(t,e,r){return t.then(n=>(e&&e(n),n)).catch(n=>{console.error("Error loading module:",n),r&&r(n)})}};var Ie=s=>({tag:"comment",textContent:"import placeholder",onCreated:s.onCreated}),P=new pt(100),Ae=s=>{if(P.has(s)){let r=P.get(s);return r&&typeof r.then!="function"?Promise.resolve(r):r}let t=typeof s,e;if(t==="string")e=import(s);else if(t==="function")e=s();else return s;return e.then(r=>{P.set(s,r)}).catch(()=>{P.delete(s)}),P.set(s,e),e},Ee=s=>{if(!P.has(s))return null;let t=P.get(s);return t&&typeof t.then=="function"?null:t||null},kt=B({declareProps(){this.loaded=!1,this.errorRoot=null,this.generation=0},render(){return Ie({onCreated:s=>{if(this.src){if(this.layout){this.layoutRoot=b.render(this.layout,this.panel,this.parent);return}if(this.depends){new $(()=>{this.loadAndRender(s)}).addFiles(this.depends);return}this.loadAndRender(s)}}})},loadAndRender(s){let t=this.generation,e=Ee(this.src);if(e){this.renderModule(s,e);return}Y.load(Ae(this.src),r=>{t===this.generation&&this.renderModule(s,r)},r=>{t===this.generation&&(this.loaded=!1,this.renderError(s,r))})},renderError(s,t){let e=()=>this.retry(s),r=this.fallback,n=typeof r=="function"?r(t,e):r||{class:"base-import-error",children:[{tag:"span",text:"Failed to load content."},{tag:"button",type:"button",text:"Retry",click:e}]};n&&(this.errorRoot=b.render(n,s,this.parent))},retry(s){this.removeErrorLayout(),this.loadAndRender(s)},removeErrorLayout(){this.errorRoot&&(u.removeNode(this.errorRoot),this.errorRoot=null)},renderModule(s,t){this.loaded=!0;let e=this.layout||b.process(t,{callback:this.callback,route:this.route,persist:this.persist});this.layout=e,this.layoutRoot=b.render(e,s,this.parent)},shouldUpdate(s){return this.updateLayout===!0?!0:this.updateLayout=s&&s.isUnit&&typeof s.update=="function"},updateModuleLayout(s){let t=this.layout;this.shouldUpdate(t)&&t&&t.update(s)},update(s){this.loaded===!0&&this.updateModuleLayout(s)},destroy(){this.generation++,this.removeErrorLayout(),this.layoutRoot&&(u.removeNode(this.layoutRoot),this.persist!==!0&&(this.layoutRoot=null,this.layout=null,this.loaded=!1,this.updateLayout=!1))}});var Tt=s=>{let t=typeof s;return(t==="string"||t==="function"||s instanceof Promise)&&(s={src:s}),new kt(s)};var Be=0,_=class{constructor(t){this.router=t,this.locationId="base-app-router-"+Be++,this.callBack=this.check.bind(this)}setup(){return this.addEvent(),this}check(t){}getScrollPosition(){return{x:window.scrollX,y:window.scrollY}}scrollTo(t){window.scrollTo(t.x,t.y)}addEvent(){return this}};var Pt=typeof navigator<"u"&&/iPad|iPhone|iPod/.test(navigator.userAgent||"")&&!window.MSStream,bt=()=>{Pt&&requestAnimationFrame(()=>requestAnimationFrame(()=>{let s=window.scrollX,t=window.scrollY;window.scrollTo(0,t+1),document.documentElement.offsetHeight,window.scrollTo(s,t)}))},J=class extends _{addEvent(){return p.on("popstate",window,this.callBack),Pt&&(this.pageShowCallBack=this.onPageShow.bind(this),p.on("pageshow",window,this.pageShowCallBack)),this}removeEvent(){return p.off("popstate",window,this.callBack),this.pageShowCallBack&&p.off("pageshow",window,this.pageShowCallBack),this}onPageShow(t){t.persisted&&bt()}check(t){let e=t.state;if(!e||e.location!==this.locationId)return!1;t.preventDefault(),t.stopPropagation(),this.router.checkActiveRoutes(e.uri);let r=e.scrollPosition;r&&this.scrollTo(r),bt()}createState(t,e={}){let r=this.getScrollPosition();return e=e===null?{}:e,{location:this.locationId,...e,scrollPosition:r,uri:t}}addState(t,e,r=!1){let n=window.history,i=n.state;if(i&&i.uri===t)return this;!r&&i&&i.location===this.locationId&&(i.scrollPosition=this.getScrollPosition(),n.replaceState(i,"",window.location.href));let o=this.createState(t,e);return r||(o.scrollPosition={x:0,y:0}),n[r===!1?"pushState":"replaceState"](o,null,t),this}};var K={removeSlashes(s){return typeof s!="string"?"":(s[0]==="/"&&(s=s.substring(1)),s[s.length-1]==="/"&&(s=s.substring(0,s.length-1)),s)},getHashUri(s){if(typeof s!="string")return"";let t=s.indexOf("#");return t===-1?"":s.substring(t+1)}};var V=class extends _{addEvent(){return p.on("hashchange",window,this.callBack),this}removeEvent(){return p.off("hashchange",window,this.callBack),this}check(t){this.router.checkActiveRoutes(K.getHashUri(t.newURL))}addState(t,e,r){return window.location.hash=t,this}};var X=class{static browserIsSupported(){return typeof window=="object"&&"history"in window&&"pushState"in window.history}static setup(t){return this.browserIsSupported()?new J(t).setup():new V(t).setup()}};var ot=class extends x{getChildScope(){return this.parent}},Rt=s=>B(s,ot);var Z=class{constructor(t,e){this.route=t,this.template=e.component,this.component=null,this.hasTemplate=!1,this.setup=!1,this.container=e.container,this.persist=e.persist,this.parent=e.parent}focus(t){this.setup===!1&&(this.route&&typeof this.route.flushPending=="function"&&this.route.flushPending(),this.create()),this.update(t)}setupTemplate(){let e=typeof this.template;e==="function"?this.initializeComponent():e==="object"&&this.initializeTemplateObject(),this.hasTemplate=!0}initializeComponent(){this.template=this.template(),this.initializeTemplateObject()}transferSettings(t){this.persist=this.persist&&t.persist!==!1,Object.assign(t,{route:this.route,persist:this.persist}),this.component=t}initializeTemplateObject(){let t=this.template;if(!t)return;t.isUnit||(this.template=new(Rt(t)));let e=this.template;this.transferSettings(e)}create(){if(this.setupTemplate(),!this.hasTemplate)return;this.setup=!0;let t=this.component;u.render(t,this.container,this.parent)}remove(){if(this.setup!==!0)return;this.setup=!1;let t=this.component;t&&(typeof t.destroy=="function"&&t.destroy(),this.component=null)}update(t){let e=this.component;e&&typeof e.update=="function"&&e.update(t)}};var It=s=>{if(!s.length)return null;let t={};for(let e=0,r=s.length;e<r;e++)t[s[e]]=null;return t},At=s=>{let t=[];if(!s)return t;let e=/[*?]/g;s=s.replace(e,"");let r=/:(.[^./?&($]+)\?*/g,n=s.match(r);if(n===null)return t;for(let i=0,o=n.length;i<o;i++){let a=n[i];a&&t.push(a.replace(":",""))}return t};var De=/(\/):[^/(]*?\?/g,Oe=/\//g,_e=/(\?\/+\*?)/g,Ue=/(:[^/?&($]+)/g,He=/(\*)/g,Le=s=>s.replace(De,t=>t.replace(Oe,"(?:$|/)")),Me=s=>(s=s.replace(_e,"?/*"),s.replace(Ue,t=>t.indexOf(".")<0?"([^/|?]+)":"([^/|?]+.*)")),qe=s=>s.replace(He,".*"),Ge=(s,t)=>s+=t[t.length-1]==="*"?"":"$",Et=s=>{if(!s)return"";let t=s;return t=Le(t),t=Me(t),t=qe(t),t=Ge(t,s),t};var We=0,Bt=(s,t="")=>{let e=s||"",r=typeof t=="string"&&t?t:e,n=null,i=[],o=r.match(/#\{([^}]+)\}/);o&&o[1]&&(n=o[1].trim(),r=r.replace(o[0],""),e=e.replace(o[0],""));let a=r.indexOf("?");if(a>-1){let h=r.substring(a+1);if(h.indexOf("=")>-1){let d=h.split("&");for(let g=0,R=d.length;g<R;g++){let H=d[g];if(!H)continue;let[fe,pe=""]=H.split("="),ht=(fe||"").trim();ht&&i.push({key:ht,value:(pe||"").trim()})}r=r.substring(0,a);let m=e.indexOf("?");m>-1&&(e=e.substring(0,m))}}let l=n!==null||i.length>0;return l&&!r&&(e="*"),{uriPath:e,requiredHash:n,requiredQuery:i,hasConditions:l}},Ne=s=>{if(!s)return"";let t=s.indexOf("?"),e=s.indexOf("#"),r=s.length;return t>-1&&(r=t),e>-1&&e<r&&(r=e),s.substring(0,r)},Fe=s=>{if(!s)return"";let t=s.indexOf("#");return t===-1?"":s.substring(t+1)},Qe=s=>{if(!s)return"";let t=s.indexOf("?");if(t===-1)return"";let e=s.indexOf("#",t);return e===-1?s.substring(t+1):s.substring(t+1,e)},tt=class extends gt{constructor(t,e){let r=t.baseUri,i=Bt(r,t.rawUri).uriPath,o=At(i),a=It(o),l=super(a);return this.uri=r,this.matchUri=i,this.paramKeys=o,this.titleCallBack=e,this.setupRoute(t),this.set("active",!1),l}setup(){this.stage={},this.routeId=null,this.uri=null,this.rawUri=null,this.matchUri="",this.uriQuery=/$^/,this.controller=null,this.paramKeys=[],this.requiredHash=null,this.requiredQuery=[],this.hasConditions=!1,this.titleCallBack=()=>{},this.path=null,this.referralPath=null,this.params=null,this.callBack=null,this.title=null,this.preventScroll=!1,this.scrollTo=null}setupRoute(t){this.routeId=t.id||"bs-rte-"+We++,this.rawUri=t.rawUri||null,this.path=null,this.referralPath=null;let e=Bt(this.uri,this.rawUri||"");this.matchUri=e.uriPath,this.requiredHash=e.requiredHash,this.requiredQuery=e.requiredQuery,this.hasConditions=e.hasConditions;let r=Et(this.matchUri);this.uriQuery=new RegExp("^"+r),this.params=null,this.setupComponentHelper(t),this.callBack=t.callBack,this.title=t.title,this.preventScroll=t.preventScroll||!1,this.scrollTo=t.scrollTo||null}setTitle(t){this.title=t,this.titleCallBack(this,t)}deactivate(){this.set("active",!1);let t=this.controller;t&&t.remove()}getLayout(t){if(t.component)return t.component;let e=t.import;return e?Tt(e):null}setupComponentHelper(t){let e=this.getLayout(t);if(!e)return;let{container:r,persist:n,parent:i}=t,o={component:e,container:r,persist:n,parent:i},a=mt(this);this.controller=new Z(a,o)}resumeRoute(t){let e=this.controller;e&&(e.container=t)}setPath(t,e){this.path=t,this.referralPath=e}select(){this.set("active",!0);let t=this.stage,e=this.callBack;typeof e=="function"&&e(t);let r=this.controller;r&&r.focus(t);let n=this.path;if(!n)return;let i=n.split("#")[1];i&&this.scrollToId(i)}scrollToId(t){if(!t)return;let e=document.getElementById(t);e&&e.scrollIntoView(!0)}match(t){let e=!1,r=Ne(t),n=this.uriQuery||/$^/,i=r.match(n);return i===null?(this.resetParams(),e):Array.isArray(i)?this.matchConditions(t)?(this.setParams(i,1),e=i,e):(this.resetParams(),!1):e}matchConditions(t){if(!this.hasConditions)return!0;if(this.requiredHash!==null&&Fe(t)!==this.requiredHash)return!1;let e=this.requiredQuery||[];if(e.length>0){let r=Qe(t);if(!r)return!1;let n=new URLSearchParams(r);for(let i=0,o=e.length;i<o;i++){let a=e[i];if(!n.has(a.key)||n.get(a.key)!==a.value)return!1}}return!0}resetParams(){this.stage={}}setParams(t,e=0){if(!Array.isArray(t))return;let r=this.paramKeys;if(!r)return;let n={};for(let i=0,o=r.length;i<o;i++){let a=r[i];typeof a<"u"&&(n[a]=t[i+e])}this.set(n)}getParams(){return this.stage}};var ze=s=>{let t=/\w\S*/;return s.replace(t,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())},je=s=>s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),$e=(s,t)=>{if(s.indexOf(":")===-1)return s;let e=t.stage;for(let r in e)if(Object.prototype.hasOwnProperty.call(e,r)){let n=new RegExp(":"+je(r),"gi");s=s.replace(n,()=>e[r])}return s},Ye=(s,t)=>t&&(typeof t=="function"&&(t=t(s.stage)),t=$e(t,s),ze(t)),Je=(s,t)=>(t!==""&&(s+=" - "+t),s),Dt=(s,t,e)=>t&&(t=Ye(s,t),Je(t,e));var Ke=()=>typeof window<"u"?window.location:{},at=class{constructor(){this.version="1.0.2",this.baseURI="/",this.title="",this.lastPath=null,this.path=null,this.lastMatchedRoute=null,this.lastScrollGroup=null,this.currentGroupId=null,this.scrollWaitToken=0,this.history=null,this.callBackLink=null,this.location=Ke(),this.routes=[],this.switches=new Map,this.switchCount=0,this.data=new yt({path:""})}setupHistory(){this.history=X.setup(this)}createRoute(t){let e=t.uri||"*";return t.rawUri=e,t.baseUri=this.createURI(e),new tt(t,this.updateTitle.bind(this))}add(t){if(typeof t!="object"){let r=arguments;t={uri:r[0],component:r[1],callBack:r[2],title:r[3],id:r[4],container:r[5]}}let e=this.createRoute(t);return this.addRoute(e),e}addRoute(t){this.routes.push(t),this.checkRoute(t,this.getPath())}resume(t,e){t.resumeRoute(e),this.addRoute(t)}getBasePath(){if(!this.basePath){let t=this.baseURI||"";t[t.length-1]!=="/"&&(t+="/"),this.basePath=t}return this.basePath}createURI(t){let e=this.getBasePath(),r=K.removeSlashes(t);return r=r.replace(/^(?:\.\/)+/,""),r==="."&&(r=""),e+r}getRoute(t){let e=this.routes,r=e.length;if(r>0)for(let n=0;n<r;n++){let i=e[n];if(i.uri===t)return i}return null}getRouteById(t){let e=this.routes,r=e.length;if(r>0)for(let n=0;n<r;n++){let i=e[n];if(i.routeId===t)return i}return!1}removeRoute(t){let e=this.routes,r=e.indexOf(t);r>-1&&e.splice(r,1),this.lastMatchedRoute===t&&(this.lastMatchedRoute=null),t&&typeof t.deactivate=="function"&&t.deactivate()}addSwitch(t){let e=this.switchCount++,r=this.getSwitchGroup(e);for(let n=0,i=t.length;n<i;n++){let o=t[n];if(!o)continue;let a=this.createRoute(o);r.push(a)}return this.checkGroupForRegistration(e,r),e}resumeSwitch(t,e){let r=this.switchCount++,n=this.getSwitchGroup(r);for(let i=0,o=t.length;i<o;i++){let l=t[i].component.route;l.resumeRoute(e),n.push(l)}return this.checkGroupForRegistration(r,n),r}checkGroupForRegistration(t,e){let r=this.scrollIntent,n=this.currentGroupId;this.scrollIntent=null,this.currentGroupId=t,this.checkGroup(e,this.getPath()),this.currentGroupId=n;let i=this.scrollIntent;i&&i.type==="target"&&i.groupId!==null&&i.groupId!==void 0&&(this.lastScrollGroup=i.groupId),this.scrollIntent=r}getSwitchGroup(t){let e=this.switches.get(t);if(e)return e;let r=[];return this.switches.set(t,r),r}removeSwitch(t){this.switches.delete(t)}remove(t){t=this.createURI(t);let e=this.getRoute(t);return e&&this.removeRoute(e),this}setup(t,e){this.baseURI=t||"/",this.updateBaseTag(this.baseURI),this.title=typeof e<"u"?e:"",this.setupHistory(),this.data.path=this.getPath(),this.callBackLink=this.checkLink.bind(this),p.on("click",document,this.callBackLink);let r=this.getEndPoint();return this.navigate(r,null,!0),this}updateBaseTag(t){let e=document.getElementsByTagName("base");e.length&&(e[0].href=t)}getParentLink(t){return t.closest("a")}checkLink(t){if(t.ctrlKey===!0)return!0;let e=t.target.closest("a");if(!e||e.target==="_blank"||e.dataset.cancelRoute)return!0;let r=e.getAttribute("href");if(r!==null){let n=this.baseURI,i=n!=="/"?r.replace(n,""):r,o=e.dataset.replace==="true";return this.navigate(i,null,o),t.preventDefault(),t.stopPropagation(),!1}}reset(){let t=this.routes;for(let e=0,r=t.length;e<r;e++){let n=t[e];n&&typeof n.deactivate=="function"&&n.deactivate()}return this.routes=[],this.switches=new Map,this.switchCount=0,this.lastMatchedRoute=null,this}activate(){return this.checkActiveRoutes(),this}navigate(t,e,r){return t=this.createURI(t),this.history.addState(t,e,r),this.updatePath(),this.activate(),this}updatePath(){let t=this.getPath();this.data.path=t}updateTitle(t){if(!t||!t.title)return this;let e=t.title;return document.title=Dt(t,e,this.title),this}checkActiveRoutes(t){if(this.lastPath=this.path,t=t||this.getPath(),this.path=t,this.updatePath(),this.scrollIntent=null,this.scrollWaitToken++,this.lastMatchedRoute&&this.check(this.lastMatchedRoute,t))this.select(this.lastMatchedRoute);else{let e=this.routes,r=e.length;for(let n=0;n<r;n++){let i=e[n];typeof i>"u"||this.checkRoute(i,t)}}this.checkSwitches(t),this.applyScrollIntent()}checkSwitches(t){let e=this.switches;for(let[r,n]of e.entries())this.currentGroupId=r,this.checkGroup(n,t);this.currentGroupId=null}checkGroup(t,e){let r=t.length;if(!r)return;let n=null;for(let a=0;a<r;a++)if(t[a].get("active")){n=t[a];break}let i=!1;n&&(i=n.match(e)!==!1);let o;for(let a=0;a<r;a++){let l=t[a];if(typeof l>"u")continue;(l===n?i:l.match(e))!==!1&&o===void 0&&l.controller&&(o=l)}if(!o){n&&n!==t[0]&&n.deactivate(),this.select(t[0],!0);return}this.select(o),n&&n!==o&&n.deactivate();for(let a=0;a<r;a++){let l=t[a];l&&l!==o&&l!==n&&l.deactivate()}}checkRoute(t,e){let r=this.check(t,e);return r!==!1?(this.select(t),this.lastMatchedRoute=t):t.deactivate(),r}check(t,e){return t?(e=e||this.getPath(),t.match(e)!==!1):!1}select(t,e){t&&(t.setPath(this.path,this.lastPath),t.select(),this.updateTitle(t),e!==!0&&(t.scrollTo?this.scrollIntent={type:"target",selector:t.scrollTo,groupId:this.currentGroupId}:t.preventScroll!==!0&&!this.scrollIntent&&(this.scrollIntent={type:"top"})))}applyScrollIntent(){let t=this.scrollIntent;if(this.scrollIntent=null,!t)return;if(t.type==="top"){this.lastScrollGroup=null,this.checkToScroll(),this.reassertScrollTop();return}if(t.type!=="target")return;let e=t.groupId!==null&&t.groupId!==void 0,r=e&&this.lastScrollGroup===t.groupId;r||(typeof window<"u"&&window.scrollTo(0,0),this.reassertScrollTop()),this.lastScrollGroup=e?t.groupId:null,r&&this.scrollToTarget(t.selector)}reassertScrollTop(){if(typeof window>"u"||typeof requestAnimationFrame>"u")return;let t=++this.scrollWaitToken;requestAnimationFrame(()=>{t===this.scrollWaitToken&&(window.scrollY>0||window.pageYOffset>0)&&window.scrollTo(0,0)})}scrollToTarget(t){if(typeof t!="string"||typeof document>"u")return;let e=a=>{let l=window.getComputedStyle(a),c=l.position==="sticky",h;if(c){let g=a.style.position;a.style.position="static",h=a.getBoundingClientRect().top+window.scrollY,a.style.position=g}else h=a.getBoundingClientRect().top+window.scrollY;let d=c&&parseFloat(l.top)||0,m=h-d;window.scrollY>m&&window.scrollTo(0,m)};if(typeof requestAnimationFrame>"u"){let a=document.querySelector(t);a&&e(a);return}let r=++this.scrollWaitToken,n=30,i=0,o=()=>{if(r!==this.scrollWaitToken)return;let a=document.querySelector(t);if(a){e(a);return}++i<n&&requestAnimationFrame(o)};requestAnimationFrame(o)}checkToScroll(){this.shouldScrollToTop()&&window.scrollTo(0,0)}cleanPath(t){return t?t.split("?")[0].split("#")[0]:"/"}shouldScrollToTop(){let t=this.cleanPath(this.getPath()),r=this.cleanPath(this.lastPath).split("/"),n=t.split("/");if(r.length!==n.length)return!0;let i=r[r.length-1],o=n[n.length-1];return i!==o}getEndPoint(){return this.getPath().replace(this.baseURI,"")||"/"}destroy(){typeof this.callBackLink=="function"&&p.off("click",document,this.callBackLink);let t=this.history;t&&typeof t.removeEvent=="function"&&t.removeEvent()}getPath(){let t=this.location,e=this.path=t.pathname;return this.history.type==="hash"?t.hash.replace("#",""):e+t.search+t.hash}},w=new at;var Ot=(s,t)=>({attr:s,value:t}),Ve=(s,t)=>{if(!t.startsWith(s))return!1;let e=t[s.length];return e===void 0||e==="/"||e==="#"||e==="."||e==="?"},ct=class extends x{beforeSetup(){this.selectedClass=this.activeClass||"active"}render(){let t=this.href,e=this.text,r=this.setupWatchers(t,e);return{tag:"a",class:this.class||this.className||null,onState:["selected",{[this.selectedClass]:!0}],href:this.getString(t),text:this.getString(e),nest:this.nest||this.children,dataStateSet:this.dataSet,"data-replace":this.replace?"true":null,watch:r}}getLinkPath(){return this?.panel?.pathname||null}getString(t){let e=typeof t;return e!=="object"&&e!=="undefined"?t:null}setupWatchers(t,e){let r=this.exact===!0,n=w.data,i=[];t&&typeof t=="object"&&i.push(Ot("href",t)),e&&typeof e=="object"&&i.push(Ot("text",e));let o=null,a="",l="";return i.push({value:["[[path]]",n],callBack:(c,h)=>{if(typeof h.pathname>"u")return;let d=h.getAttribute("href");if(d!==o){o=d;let g=h.pathname+h.search+h.hash;a=g,l=h.hash||h.search?g:h.pathname}let m=r?c===a:Ve(l,c);this.update(m)}}),i}setupStates(){return{selected:!1}}update(t){this.state&&(this.state.selected=t)}};var _t=(s,t,e=null)=>{if(!s)return;let r=null,n=!1,i=()=>{n||(n=!0,r&&(clearTimeout(r),r=null),p.off("animationend",s,o),s&&s.classList.remove(t),e&&e())},o=a=>{a.target===s&&i()};p.on("animationend",s,o),requestAnimationFrame(()=>{if(!s){i();return}s.classList.add(t);try{let a=window.getComputedStyle(s),l=parseFloat(a.animationDuration)*1e3||1e3,c=parseFloat(a.animationDelay)*1e3||0;r=setTimeout(i,l+c+100)}catch{r=setTimeout(i,1e3)}})},Ut=(s,t,e)=>{_t(s,t)},Ht=(s,t,e)=>{let r=()=>{s&&s.remove&&s.remove()};Xe(s,()=>_t(s,t,r),e)};f.addType("manual-destroy",s=>{if(!s)return!1;s.callBack(s.ele,s.parent)});var Xe=(s,t,e)=>{f.add(s,"manual-destroy",{ele:s,callBack:t,parent:e})};var G=(s,t,e,r)=>{if(Array.isArray(e[0])){e.forEach(n=>{n&&G(s,t,n,r)});return}Ze(s,t,e,r)},Ze=(s,t,e,r)=>{let n,i;if(e.length<3?[n,i]=e:[t,n,i]=e,!t||!n)return;if(typeof t.on!="function"){console.warn('Watcher directive: Data source does not have an "on" method. Make sure your component has data, state, or context.data initialized before using watchers like onSet, watch, or [[prop]] syntax.',s,t);return}let o=tr(s,n,i,r);I.watch(s,t,n,o)},tr=(s,t,e,r)=>typeof e=="object"?n=>{sr(s,e,n)}:n=>{rr(s,e,t,n,r)},Lt=new WeakSet,er=(s,t,e)=>{!s||!s.isUnit&&!s.isComponent||Lt.has(e)||Lt.add(e)},rr=(s,t,e,r,n)=>{let i=t(r,s,n);switch(typeof i){case"object":if(i===null)break;er(i,e,s),u.rebuild(i,s,n);break;case"string":let o=dt(s);if(o!=="textContent"){s.setAttribute(o,i);break}M.addHtml(s,i);break}},sr=(s,t,e)=>{let r=Object.keys(t);for(let n=0,i=r.length;n<i;n++){let o=r[n];o&&(t[o]===e?s.classList.add(o):s.classList.remove(o))}};var U=(s,t,e)=>{let r=C(e);G(s,r,t,e)};var Mt=(s,t,e)=>{t&&s.setAttribute("role",t)},nr=s=>(t,e)=>{let r=t?"true":"false";e.setAttribute(s,r)},qt=(s,t,e)=>{if(!t)return;let r=t.role;r&&(s.setAttribute("role",r),t.role=null);let n=Object.keys(t);for(let i=0,o=n.length;i<o;i++){let a=n[i],l=t[a];if(l===null)continue;let c="aria-"+a;if(Array.isArray(l)){let h=l.slice();h.push(nr(c)),U(s,h,e)}else s.setAttribute(c,l)}};var Gt=(s,t,e)=>{if(!t)return;let r=v.parse(t,e);y.addAttributes(s,r.attr,e),u.setDirectives(s,r.directives,e)};f.addType("context",s=>{if(!s)return!1;s.parent.removeContextBranch(s.branch)});var lt=s=>s?s.getContext():null,Wt=(s,t,e)=>{if(typeof t!="function")return;let r=lt(e),n=t(r);Gt(s,n,e)},Nt=(s,t,e)=>{if(typeof t!="function")return;let r=lt(e);t(r)},Ft=(s,t,e)=>{if(typeof t!="function"||!e)return;let r=lt(e),n=t(r);if(!n)return;let i=n[0];i&&(e.addContextBranch(i,n[1]),ir(s,i,e))},ir=(s,t,e)=>{f.add(s,"context",{branch:t,parent:e})};var Qt=(s,t,e)=>{};var zt=(s,t,e)=>{if(!e)return;let r=e._layout?e._layout:e.render();console.log("Debug: ","ele: ",s),console.log("Data: ",t),console.log("Layout: ",r),console.log("parent: ",e)};var jt=(s,t,e)=>{},$t=(s,t,e)=>{if(!t||!e)return;let r=t(e,s);r&&u.build(r,s,e)},Yt=(s,t,e)=>{if(!t||!e)return;let r=e.getId(t);s.id=r},Jt=(s,t,e)=>{if(!t||!e)return;let r=t(e.data,s);r&&u.build(r,s,e)},Kt=(s,t,e)=>{if(!t||!e)return;let r=t(e.state,s);r&&u.build(r,s,e)},Vt=(s,t,e)=>{if(!t||!e)return;let r=e.state,n=t(r);if(!e.state){e.setStateHelper(n);return}e.addState(n)},Xt=(s,t,e)=>{if(!(!t||!e)){if(e.events||e.setEventHelper(),t[2]){let r=t[2];t[2]=n=>{r(n,e)}}e.events.on(t[0],t[1],t[2],t[3])}};var Zt=(s,t,e)=>{let r,n,i;if(typeof t=="string"){if(r=C(e),!r)return;n=t}else if(Array.isArray(t))if(typeof t[0]!="object"){let o=C(e);if(!o)return;r=o,n=t[0],i=t[1]}else[r,n,i]=t;I.bind(s,r,n,i)};var et=(s,t,e)=>{G(s,e.state,t,e)};var te=s=>(t,e)=>{let[r,n,i="active"]=s,o=t===n?i:"";e.dataset[r]=o},ee=(s,t,e)=>{if(!t)return;let r=t.length-1,n=t[r],i=t.slice(0,r);i.push(te(n)),U(s,i,e)},re=(s,t,e)=>{if(!t)return;let r=t.length-1,n=t[r],i=t.slice(0,r);i.push(te(n)),et(s,i,e)};var se=s=>{for(let t=0,e=s.length;t<e;t++){let r=s[t];r&&r.remove()}s.length=0};f.addType("forScopes",s=>{if(!s)return!1;se(s.scopes)});var ne=(s,t,e)=>{let r,n,i,o;if(typeof t[0]=="string"||t.length<3){let h=C(e);if(!h)return;r=h,[n,i,o]=t}else[r,n,i,o]=t;let a=o!==!1,l=n+"[",c=a?{scopes:[]}:null;c&&f.add(s,"forScopes",c),I.watch(s,r,n,h=>{if(u.removeAll(s),c&&se(c.scopes),!h||h.length<1)return;let d=[];for(let m=0,g=h.length;m<g;m++){let R=a?r.scope(l+m+"]"):null;R&&c&&c.scopes.push(R);let H=i(h[m],m,R,d);H!==null&&d.push(H)}return u.build(d,s,e)})};var ie=(s,t,e)=>{let r=t[0];if(!r||r.length<1)return;let n=t[1],i=[];for(let o=0,a=r.length;o<a;o++){let l=r[o];if(!l)continue;let c=n(l,o);c!==null&&i.push(c)}u.build(i,s,e)};var oe=(s,t,e)=>{t(s,e)};f.addType("destroyed",s=>{if(!s)return!1;s.callBack(s.ele,s.parent)});var ae=(s,t,e)=>{or(s,t,e)},or=(s,t,e)=>{f.add(s,"destroyed",{ele:s,callBack:t,parent:e})};var ce=(s,t,e)=>{if(t)if(Array.isArray(t)&&typeof t[0]!="string")for(let r=0,n=t.length;r<n;r++)A.setup(s,t[r],e);else A.setup(s,t,e)};f.addType("routes",s=>{if(!s)return!1;let t=s.route;t&&w.removeRoute(t)});var he=(s,t,e)=>{if(t)if(Array.isArray(t))for(let r=0,n=t.length;r<n;r++){let i=t[r];i&&le(s,i,e)}else le(s,t,e)},le=(s,t,e)=>{t.container=s,t.parent=e;let r=w.add(t);ar(s,r)},ar=(s,t)=>{f.add(s,"routes",{route:t})};var ue=(s,t,e)=>{};f.addType("switch",s=>{if(!s)return!1;let t=s.id;w.removeSwitch(t)});var de=(s,t,e)=>{let r=t[0];for(let i=0,o=t.length;i<o;i++){let a=t[i];a&&(a.container=s,a.parent=e)}let n=w.addSwitch(t);cr(s,n)},cr=(s,t)=>{f.add(s,"switch",{id:t})};q.add("cache",jt).add("onCreated",oe).add("onDestroyed",ae).add("bind",Zt).add("data",Qt).add("state",ue).add("onSet",U).add("onState",et).add("animateIn",Ut).add("animateOut",Ht).add("watch",ce).add("useParent",$t).add("useData",Jt).add("useState",Kt).add("getId",Yt).add("addState",Vt).add("addEvent",Xt).add("map",ie).add("for",ne).add("useContext",Nt).add("addContext",Ft).add("context",Wt).add("role",Mt).add("aria",qt).add("route",he).add("debug",zt).add("dataSet",ee).add("dataStateSet",re).add("switch",de);export{q as a,W as b,x as c,xt as d,St as e,B as f,u as g,Tt as h,ct as i,at as j,w as k};
2
+ //# sourceMappingURL=chunk-VH3TSUK5.js.map
@@ -1,2 +1,2 @@
1
- import{c as e,d as r}from"../chunks/chunk-FRCLWWKS.js";import"../chunks/chunk-R5DHGQZV.js";export{r as Ajax,e as XhrRequest};
1
+ import{c as e,d as r}from"../chunks/chunk-ILT4B3VY.js";import"../chunks/chunk-R5DHGQZV.js";export{r as Ajax,e as XhrRequest};
2
2
  //# sourceMappingURL=ajax.js.map
@@ -1,2 +1,2 @@
1
- import{a as h,b as A,c as i,d as c,e as a,f as P,g as C}from"../chunks/chunk-UOSGJOHK.js";import"../chunks/chunk-XHKEEED5.js";import{g as s}from"../chunks/chunk-3X6POBEJ.js";import"../chunks/chunk-FRCLWWKS.js";import"../chunks/chunk-E3C6NOMV.js";import"../chunks/chunk-R5DHGQZV.js";var D=r=>typeof r!="string"?r:f(r),f=r=>[{tag:"text",textContent:r}],m=()=>({props:{},children:[]}),d=r=>({props:{},children:f(r)}),l=r=>({props:{},children:r}),u=r=>({props:r[0]||{},children:D(r[1])});var O=r=>({props:{watch:r},children:[]}),S=r=>{if(r.length===0)return m();let t=r[0],e=typeof t;if(e==="string"||e==="number")return d(t);if(Array.isArray(t))return s.isWatching(t)?O(t):l(t);let o=r[1]??r[0]??[];return o&&Array.isArray(o)&&s.isWatching(o)&&(r[0]=Array.isArray(r[0])?{}:r[0],r[0].watch=o,r[1]=[]),u(r)},b=r=>(...t)=>{let{props:e,children:o}=S(t);return r(e,o)};var H=(r,t)=>{let e=Object.keys(r);for(let o=0,n=e.length;o<n;o++){let p=e[o],x=r[p],y=c[p]||p;t.prototype[y]=x}return t},T=0,W=r=>{let t=class extends r{};return t.prototype._classId="pod"+T++,t},j=(r,t=i)=>{if(!r)return null;let e=W(t),o={},n=r(o);return H(o,e),e.prototype.render=n,e};export{b as Atom,P as Builder,i as Component,h as Directives,C as Import,a as Jot,j as Pod,A as Unit};
1
+ import{a,b as A,c as i,d as f,e as d,f as P,g as C,h as S}from"../chunks/chunk-RUWEOCXU.js";import"../chunks/chunk-QZANICYR.js";import{g as s}from"../chunks/chunk-4T7YWUSM.js";import"../chunks/chunk-ILT4B3VY.js";import"../chunks/chunk-E3C6NOMV.js";import"../chunks/chunk-R5DHGQZV.js";var D=r=>typeof r!="string"?r:m(r),m=r=>[{tag:"text",textContent:r}],l=()=>({props:{},children:[]}),h=r=>({props:{},children:m(r)}),u=r=>({props:{},children:r}),x=r=>({props:r[0]||{},children:D(r[1])});var O=r=>({props:{watch:r},children:[]}),b=r=>{if(r.length===0)return l();let t=r[0],e=typeof t;if(e==="string"||e==="number")return h(t);if(Array.isArray(t))return s.isWatching(t)?O(t):u(t);let o=r[1]??r[0]??[];return o&&Array.isArray(o)&&s.isWatching(o)&&(r[0]=Array.isArray(r[0])?{}:r[0],r[0].watch=o,r[1]=[]),x(r)},H=r=>(...t)=>{let{props:e,children:o}=b(t);return r(e,o)};var T=(r,t)=>{let e=Object.keys(r);for(let o=0,n=e.length;o<n;o++){let p=e[o],y=r[p],c=f[p]||p;t.prototype[c]=d(y,c)}return t},W=0,j=r=>{let t=class extends r{};return t.prototype._classId="pod"+W++,t},I=(r,t=i)=>{if(!r)return null;let e=j(t),o={},n=r(o);return T(o,e),e.prototype.render=n,e};export{H as Atom,C as Builder,i as Component,a as Directives,S as Import,P as Jot,I as Pod,A as Unit};
2
2
  //# sourceMappingURL=component.js.map
@@ -1,2 +1,2 @@
1
- import{d as a,h as e,i as o}from"../chunks/chunk-3X6POBEJ.js";import"../chunks/chunk-FRCLWWKS.js";import"../chunks/chunk-E3C6NOMV.js";import"../chunks/chunk-R5DHGQZV.js";export{a as Data,e as Model,o as SimpleData};
1
+ import{d as a,h as e,i as o}from"../chunks/chunk-4T7YWUSM.js";import"../chunks/chunk-ILT4B3VY.js";import"../chunks/chunk-E3C6NOMV.js";import"../chunks/chunk-R5DHGQZV.js";export{a as Data,e as Model,o as SimpleData};
2
2
  //# sourceMappingURL=data.js.map
@@ -1,2 +1,2 @@
1
- import{h as r,i as o,j as t}from"../chunks/chunk-UOSGJOHK.js";import"../chunks/chunk-XHKEEED5.js";import"../chunks/chunk-3X6POBEJ.js";import"../chunks/chunk-FRCLWWKS.js";import"../chunks/chunk-E3C6NOMV.js";import"../chunks/chunk-R5DHGQZV.js";export{r as NavLink,o as Router,t as router};
1
+ import{i as r,j as o,k as t}from"../chunks/chunk-RUWEOCXU.js";import"../chunks/chunk-QZANICYR.js";import"../chunks/chunk-4T7YWUSM.js";import"../chunks/chunk-ILT4B3VY.js";import"../chunks/chunk-E3C6NOMV.js";import"../chunks/chunk-R5DHGQZV.js";export{r as NavLink,o as Router,t as router};
2
2
  //# sourceMappingURL=router.js.map
@@ -1,2 +1,2 @@
1
- import{a as r,b as t}from"../chunks/chunk-XHKEEED5.js";import"../chunks/chunk-3X6POBEJ.js";import"../chunks/chunk-FRCLWWKS.js";import"../chunks/chunk-E3C6NOMV.js";import"../chunks/chunk-R5DHGQZV.js";export{r as State,t as Store};
1
+ import{a as r,b as t}from"../chunks/chunk-QZANICYR.js";import"../chunks/chunk-4T7YWUSM.js";import"../chunks/chunk-ILT4B3VY.js";import"../chunks/chunk-E3C6NOMV.js";import"../chunks/chunk-R5DHGQZV.js";export{r as State,t as Store};
2
2
  //# sourceMappingURL=state.js.map
@@ -5,3 +5,4 @@
5
5
  * @type {object} SHORTHAND_METHODS
6
6
  */
7
7
  export const SHORTHAND_METHODS: object;
8
+ export function getShorthandMethod(value: object | Function, alias: string): Function;
@@ -125,7 +125,16 @@ export class Data extends BasicData {
125
125
  * @returns {void}
126
126
  */
127
127
  revert(): void;
128
+ /**
129
+ * Deletes go to both channels. Publishing to the event sub
130
+ * alone left every element bound through the data binder
131
+ * rendering a value the data no longer holds.
132
+ *
133
+ * The published value is null rather than the path string the
134
+ * walk used to hand out, to match what BasicData sends for a
135
+ * delete and to keep bound elements from showing the path.
136
+ */
128
137
  _delCommitter: any;
129
- _deleteCb: (path: any, obj: any) => void;
138
+ _deleteCb: (path: any) => void;
130
139
  }
131
140
  import { BasicData } from '../basic-data.js';
@@ -1,13 +1,21 @@
1
1
  /**
2
2
  * LRUCache
3
3
  *
4
- * A bounded cache with least-recently-used eviction, used to keep
5
- * the module level parse/lookup caches from growing for the life of
6
- * the page.
4
+ * A bounded cache with recency aware eviction, used to keep the module
5
+ * level parse/lookup caches from growing for the life of the page.
7
6
  *
8
- * Recency is the Map's own insertion order: re-inserting a key moves
9
- * it to the end, so the first key returned by the iterator is always
10
- * the least recently used one.
7
+ * Recency is tracked with a second chance (CLOCK) flag rather than by
8
+ * re-inserting keys into the Map. A read marks the entry it returns, and
9
+ * eviction walks the oldest entries, clearing the flag of anything read
10
+ * since the last eviction and taking the first entry that was not. That
11
+ * keeps a key that is still in use from being dropped while leaving
12
+ * reads free of Map mutation, which matters because these caches sit on
13
+ * paths that run per publish and per render.
14
+ *
15
+ * Eviction removes a batch rather than a single entry so the Map key
16
+ * iterator is allocated once per batch instead of once per write. Writes
17
+ * that miss are the common case on a page rendering new rows, and the
18
+ * per-write iterator was the dominant cost of the bound.
11
19
  *
12
20
  * @class
13
21
  */
@@ -20,47 +28,57 @@ export class LRUCache {
20
28
  */
21
29
  constructor(maxSize?: number);
22
30
  /**
23
- * @type {Map<*, *>} cache
31
+ * @type {Map<*, {value: *, used: boolean}>} cache
24
32
  * @protected
25
33
  */
26
- protected cache: Map<any, any>;
34
+ protected cache: Map<any, {
35
+ value: any;
36
+ used: boolean;
37
+ }>;
27
38
  /**
28
39
  * @type {number} maxSize
29
40
  */
30
41
  maxSize: number;
31
42
  /**
32
- * The most recently used key. Reads of the hottest key are by
33
- * far the common case, and comparing against this avoids the
34
- * delete/set pair that promotion would otherwise cost.
43
+ * The number of entries dropped by one eviction. Caches too
44
+ * small to batch fall back to one, which is also what keeps a
45
+ * cache of two or three entries behaving exactly.
35
46
  *
36
- * @type {*} lastKey
47
+ * @type {number} evictCount
37
48
  * @protected
38
49
  */
39
- protected lastKey: any;
50
+ protected evictCount: number;
40
51
  /**
41
- * This will get a value and promote the key to most recently
42
- * used.
52
+ * This will get a value and mark the key as recently used.
43
53
  *
44
54
  * @param {*} key
45
55
  * @returns {*} The value or undefined when not cached.
46
56
  */
47
57
  get(key: any): any;
48
58
  /**
49
- * This will check if a key is cached without promoting it.
59
+ * This will check if a key is cached without marking it used.
50
60
  *
51
61
  * @param {*} key
52
62
  * @returns {boolean}
53
63
  */
54
64
  has(key: any): boolean;
55
65
  /**
56
- * This will add a value and promote the key to most recently
57
- * used, evicting the least recently used key when over capacity.
66
+ * This will add a value, evicting a batch of the least recently
67
+ * used keys when the write goes over capacity.
58
68
  *
59
69
  * @param {*} key
60
70
  * @param {*} value
61
71
  * @returns {void}
62
72
  */
63
73
  set(key: any, value: any): void;
74
+ /**
75
+ * This will drop entries from the oldest end until the cache has
76
+ * room for the next batch of writes.
77
+ *
78
+ * @protected
79
+ * @returns {void}
80
+ */
81
+ protected evict(): void;
64
82
  /**
65
83
  * This will remove a key.
66
84
  *
@@ -58,7 +58,8 @@ export namespace Objects {
58
58
  * Checks if an object is empty.
59
59
  *
60
60
  * @param {object} obj - The object to check.
61
- * @returns {boolean} True if the object has no own properties.
61
+ * @returns {boolean} True if the object holds no entries. Maps and
62
+ * Sets are measured by size, everything else by own properties.
62
63
  */
63
64
  function isEmpty(obj: object): boolean;
64
65
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@base-framework/base",
3
- "version": "3.9.8",
3
+ "version": "3.9.9",
4
4
  "description": "This is a javascript framework.",
5
5
  "main": "./dist/base.js",
6
6
  "module": "./dist/base.js",