@relax.js/core 1.0.0
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.
- package/LICENSE +21 -0
- package/README.md +188 -0
- package/dist/DataLoader.d.ts +51 -0
- package/dist/DependencyInjection.d.ts +271 -0
- package/dist/DependencyInjectionOld.d.ts +35 -0
- package/dist/Metadata.d.ts +8 -0
- package/dist/SequentialId.d.ts +47 -0
- package/dist/_alt/src/MustardEngine.d.ts +30 -0
- package/dist/_alt/src/MustardParser.d.ts +63 -0
- package/dist/_alt/src/MustardParser2.d.ts +35 -0
- package/dist/_alt/src/pipes.d.ts +93 -0
- package/dist/_alt/src/template.d.ts +166 -0
- package/dist/_alt/src/tools.d.ts +4 -0
- package/dist/_alt/tests/pipes.tests.d.ts +1 -0
- package/dist/_alt/tests/template.tests.d.ts +1 -0
- package/dist/_alt/vitest.config.d.ts +2 -0
- package/dist/collections/Index.d.ts +1 -0
- package/dist/collections/LinkedList.d.ts +75 -0
- package/dist/collections/Pager.d.ts +15 -0
- package/dist/collections/index.js +2 -0
- package/dist/collections/index.js.map +7 -0
- package/dist/collections/index.mjs +2 -0
- package/dist/collections/index.mjs.map +7 -0
- package/dist/components/Table.d.ts +13 -0
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.js +128 -0
- package/dist/components/index.js.map +7 -0
- package/dist/components/index.mjs +128 -0
- package/dist/components/index.mjs.map +7 -0
- package/dist/components/lists/Table.d.ts +59 -0
- package/dist/components/lists/TreeView.d.ts +67 -0
- package/dist/components/lists/index.d.ts +2 -0
- package/dist/components/loader.d.ts +60 -0
- package/dist/components/menus/MenuItem.d.ts +30 -0
- package/dist/components/menus/TopMenu.d.ts +16 -0
- package/dist/components/menus/index.d.ts +2 -0
- package/dist/components/panels/tabs.d.ts +15 -0
- package/dist/di/index.d.ts +1 -0
- package/dist/di/index.js +2 -0
- package/dist/di/index.js.map +7 -0
- package/dist/di/index.mjs +2 -0
- package/dist/di/index.mjs.map +7 -0
- package/dist/elements/CopyAttributes.d.ts +2 -0
- package/dist/elements/dom.d.ts +18 -0
- package/dist/elements/index.d.ts +2 -0
- package/dist/elements/index.js +2 -0
- package/dist/elements/index.js.map +7 -0
- package/dist/elements/index.mjs +2 -0
- package/dist/elements/index.mjs.map +7 -0
- package/dist/errors.d.ts +71 -0
- package/dist/forms/FormReader.d.ts +182 -0
- package/dist/forms/FormValidator.d.ts +114 -0
- package/dist/forms/ValidationRules.d.ts +103 -0
- package/dist/forms/index.d.ts +4 -0
- package/dist/forms/index.js +2 -0
- package/dist/forms/index.js.map +7 -0
- package/dist/forms/index.mjs +2 -0
- package/dist/forms/index.mjs.map +7 -0
- package/dist/forms/setFormData.d.ts +49 -0
- package/dist/getParentComponent.d.ts +43 -0
- package/dist/html/TableRenderer.d.ts +44 -0
- package/dist/html/TreeBinder.d.ts +9 -0
- package/dist/html/html.d.ts +55 -0
- package/dist/html/index.d.ts +5 -0
- package/dist/html/index.js +2 -0
- package/dist/html/index.js.map +7 -0
- package/dist/html/index.mjs +2 -0
- package/dist/html/index.mjs.map +7 -0
- package/dist/html/template.d.ts +167 -0
- package/dist/http/ServerSentEvents.d.ts +116 -0
- package/dist/http/SimpleWebSocket.d.ts +153 -0
- package/dist/http/http.d.ts +177 -0
- package/dist/http/index.d.ts +3 -0
- package/dist/http/index.js +2 -0
- package/dist/http/index.js.map +7 -0
- package/dist/http/index.mjs +2 -0
- package/dist/http/index.mjs.map +7 -0
- package/dist/i18n/i18n.d.ts +105 -0
- package/dist/i18n/icu.d.ts +64 -0
- package/dist/i18n/index.d.ts +2 -0
- package/dist/i18n/index.js +2 -0
- package/dist/i18n/index.js.map +7 -0
- package/dist/i18n/index.mjs +2 -0
- package/dist/i18n/index.mjs.map +7 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +7 -0
- package/dist/index.mjs +5 -0
- package/dist/index.mjs.map +7 -0
- package/dist/lib/DataLoader.d.ts +51 -0
- package/dist/lib/DependencyInjection.d.ts +271 -0
- package/dist/lib/InvokeParent.d.ts +10 -0
- package/dist/lib/Pipes.d.ts +236 -0
- package/dist/lib/SequentialId.d.ts +47 -0
- package/dist/lib/collections/Index.d.ts +1 -0
- package/dist/lib/collections/LinkedList.d.ts +75 -0
- package/dist/lib/collections/Pager.d.ts +15 -0
- package/dist/lib/collections/TableRenderer.d.ts +44 -0
- package/dist/lib/di/index.d.ts +1 -0
- package/dist/lib/elements/CopyAttributes.d.ts +2 -0
- package/dist/lib/elements/dom.d.ts +18 -0
- package/dist/lib/elements/index.d.ts +2 -0
- package/dist/lib/errors.d.ts +71 -0
- package/dist/lib/forms/FormReader.d.ts +182 -0
- package/dist/lib/forms/FormValidator.d.ts +114 -0
- package/dist/lib/forms/ValidationRules.d.ts +103 -0
- package/dist/lib/forms/index.d.ts +4 -0
- package/dist/lib/forms/setFormData.d.ts +49 -0
- package/dist/lib/getParentComponent.d.ts +43 -0
- package/dist/lib/html/TableRenderer.d.ts +44 -0
- package/dist/lib/html/TreeBinder.d.ts +9 -0
- package/dist/lib/html/html.d.ts +55 -0
- package/dist/lib/html/html2.d.ts +55 -0
- package/dist/lib/html/index.d.ts +5 -0
- package/dist/lib/html/m.d.ts +167 -0
- package/dist/lib/html/m2.d.ts +8 -0
- package/dist/lib/html/m3.d.ts +0 -0
- package/dist/lib/html/template.d.ts +167 -0
- package/dist/lib/http/HttpClient.d.ts +153 -0
- package/dist/lib/http/ServerSentEvents.d.ts +116 -0
- package/dist/lib/http/SimpleWebSocket.d.ts +153 -0
- package/dist/lib/http/http.d.ts +177 -0
- package/dist/lib/http/index.d.ts +3 -0
- package/dist/lib/i18n/i18n.d.ts +105 -0
- package/dist/lib/i18n/icu.d.ts +64 -0
- package/dist/lib/i18n/index.d.ts +2 -0
- package/dist/lib/index.d.ts +16 -0
- package/dist/lib/routing/NavigateRouteEvent.d.ts +52 -0
- package/dist/lib/routing/RouteLink.d.ts +7 -0
- package/dist/lib/routing/Routing.d.ts +270 -0
- package/dist/lib/routing/RoutingTarget.d.ts +22 -0
- package/dist/lib/routing/index.d.ts +7 -0
- package/dist/lib/routing/navigation.d.ts +70 -0
- package/dist/lib/routing/routeMatching.d.ts +21 -0
- package/dist/lib/routing/routeTargetRegistry.d.ts +23 -0
- package/dist/lib/routing/types.d.ts +130 -0
- package/dist/lib/templates/NodeTemplate.d.ts +38 -0
- package/dist/lib/templates/accessorParser.d.ts +87 -0
- package/dist/lib/templates/parseTemplate.d.ts +6 -0
- package/dist/lib/templates/tokenizer.d.ts +76 -0
- package/dist/lib/tools.d.ts +30 -0
- package/dist/lib/utils/index.d.ts +4 -0
- package/dist/pipes.d.ts +236 -0
- package/dist/routing/NavigateRouteEvent.d.ts +52 -0
- package/dist/routing/RouteLink.d.ts +7 -0
- package/dist/routing/RoutingTarget.d.ts +22 -0
- package/dist/routing/index.d.ts +7 -0
- package/dist/routing/index.js +5 -0
- package/dist/routing/index.js.map +7 -0
- package/dist/routing/index.mjs +5 -0
- package/dist/routing/index.mjs.map +7 -0
- package/dist/routing/navigation.d.ts +70 -0
- package/dist/routing/routeMatching.d.ts +21 -0
- package/dist/routing/routeTargetRegistry.d.ts +23 -0
- package/dist/routing/types.d.ts +130 -0
- package/dist/templates/NodeTemplate.d.ts +38 -0
- package/dist/templates/accessorParser.d.ts +87 -0
- package/dist/templates/parseTemplate.d.ts +6 -0
- package/dist/templates/tokenizer.d.ts +76 -0
- package/dist/tools.d.ts +30 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +7 -0
- package/dist/utils/index.mjs +2 -0
- package/dist/utils/index.mjs.map +7 -0
- package/docs/Architecture.md +333 -0
- package/docs/DependencyInjection.md +237 -0
- package/docs/Errors.md +87 -0
- package/docs/GettingStarted.md +231 -0
- package/docs/Pipes.md +211 -0
- package/docs/Translations.md +312 -0
- package/docs/WhyRelaxjs.md +336 -0
- package/docs/elements/dom.md +102 -0
- package/docs/forms/creating-form-components.md +924 -0
- package/docs/forms/form-api.md +94 -0
- package/docs/forms/forms.md +99 -0
- package/docs/forms/patterns.md +311 -0
- package/docs/forms/reading-writing.md +365 -0
- package/docs/forms/validation.md +351 -0
- package/docs/html/TableRenderer.md +292 -0
- package/docs/html/html.md +175 -0
- package/docs/html/index.md +54 -0
- package/docs/html/template.md +422 -0
- package/docs/http/HttpClient.md +459 -0
- package/docs/http/ServerSentEvents.md +184 -0
- package/docs/http/index.md +109 -0
- package/docs/i18n/i18n.md +309 -0
- package/docs/i18n/intl-standard.md +178 -0
- package/docs/routing/RouteLink.md +98 -0
- package/docs/routing/Routing.md +332 -0
- package/docs/routing/RoutingTarget.md +136 -0
- package/docs/routing/layouts.md +207 -0
- package/docs/utilities.md +143 -0
- package/package.json +93 -0
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
var Oe=Object.create;var B=Object.defineProperty;var je=Object.getOwnPropertyDescriptor;var Lt=Object.getOwnPropertyNames;var At=Object.getPrototypeOf,Pt=Object.prototype.hasOwnProperty;var _e=(n,t)=>(t=Symbol[n])?t:Symbol.for("Symbol."+n),O=n=>{throw TypeError(n)};var $t=(n,t,e)=>t in n?B(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e;var Ie=(n,t)=>B(n,"name",{value:t,configurable:!0});var Ve=n=>t=>{var e=n[t];if(e)return e();throw new Error("Module not found in bundle: "+t)};var k=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports);var Ft=(n,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Lt(t))!Pt.call(n,o)&&o!==e&&B(n,o,{get:()=>t[o],enumerable:!(r=je(t,o))||r.enumerable});return n};var L=(n,t,e)=>(e=n!=null?Oe(At(n)):{},Ft(t||!n||!n.__esModule?B(e,"default",{value:n,enumerable:!0}):e,n));var z=n=>[,,,Oe(n?.[_e("metadata")]??null)],qe=["class","method","getter","setter","accessor","field","value","get","set"],D=n=>n!==void 0&&typeof n!="function"?O("Function expected"):n,Ht=(n,t,e,r,o)=>({kind:qe[n],name:t,metadata:r,addInitializer:s=>e._?O("Already initialized"):o.push(D(s||null))}),It=(n,t)=>$t(t,_e("metadata"),n[3]),G=(n,t,e,r)=>{for(var o=0,s=n[t>>1],i=s&&s.length;o<i;o++)t&1?s[o].call(e):r=s[o].call(e,r);return r},J=(n,t,e,r,o,s)=>{var i,a,c,l,p,u=t&7,d=!!(t&8),m=!!(t&16),f=u>3?n.length+1:u?d?1:2:0,x=qe[u+5],g=u>3&&(n[f-1]=[]),b=n[f]||(n[f]=[]),h=u&&(!m&&!d&&(o=o.prototype),u<5&&(u>3||!m)&&je(u<4?o:{get[e](){return De(this,s)},set[e](y){return Be(this,s,y)}},e));u?m&&u<4&&Ie(s,(u>2?"set ":u>1?"get ":"")+e):Ie(o,e);for(var T=r.length-1;T>=0;T--)l=Ht(u,e,c={},n[3],b),u&&(l.static=d,l.private=m,p=l.access={has:m?y=>Dt(o,y):y=>e in y},u^3&&(p.get=m?y=>(u^1?De:Bt)(y,o,u^4?s:h.get):y=>y[e]),u>2&&(p.set=m?(y,M)=>Be(y,o,M,u^4?s:h.set):(y,M)=>y[e]=M)),a=(0,r[T])(u?u<4?m?s:h[x]:u>4?void 0:{get:h.get,set:h.set}:o,l),c._=1,u^4||a===void 0?D(a)&&(u>4?g.unshift(a):u?m?s=a:h[x]=a:o=a):typeof a!="object"||a===null?O("Object expected"):(D(i=a.get)&&(h.get=i),D(i=a.set)&&(h.set=i),D(i=a.init)&&g.unshift(i));return u||It(n,o),h&&B(o,e,h),m?u^4?s:h:o};var se=(n,t,e)=>t.has(n)||O("Cannot "+e),Dt=(n,t)=>Object(t)!==t?O('Cannot use the "in" operator on this value'):n.has(t),De=(n,t,e)=>(se(n,t,"read from private field"),e?e.call(n):t.get(n));var Be=(n,t,e,r)=>(se(n,t,"write to private field"),r?r.call(n,e):t.set(n,e),e),Bt=(n,t,e)=>(se(n,t,"access private method"),e);var Ge=k((ar,Vt)=>{Vt.exports={greeting:"Hello, {name}!",items:"{count, plural, one {# item} other {# items}}"}});var Je=k((cr,qt)=>{qt.exports={today:"today",yesterday:"yesterday",daysAgo:"{count, plural, one {# day ago} other {# days ago}}",pieces:"{count, plural, =0 {none} one {one} other {# pcs}}"}});var Xe=k((lr,Ut)=>{Ut.exports={required:"This field is required.",range:"Number must be between {min} and {max}, was {actual}.",digits:"Please enter only digits."}});var Ke=k((ur,Wt)=>{Wt.exports={greeting:"Hej, {name}!",items:"{count, plural, one {# sak} other {# saker}}"}});var Ze=k((pr,zt)=>{zt.exports={today:"idag",yesterday:"ig\xE5r",daysAgo:"{count, plural, one {# dag sedan} other {# dagar sedan}}",pieces:"{count, plural, =0 {inga} one {en} other {# st}}"}});var Ye=k((dr,Gt)=>{Gt.exports={required:"Detta f\xE4lt \xE4r obligatoriskt.",range:"Talet m\xE5ste vara mellan {min} och {max}, var {actual}.",digits:"Ange endast siffror."}});var N=class extends Error{constructor(e,r){super(e);this.context=r}},ie=null;function er(n){ie=n}function v(n,t){let e=new N(n,t);if(ie){let r=!1;if(ie(e,{suppress(){r=!0}}),r)return null}return e}var j=class{constructor(t,e){this.value=t;this.removeCallback=e;this.next=null;this.prev=null}remove(){this.prev.next=this.next,this.next.prev=this.prev,this.removeCallback()}},ae=class{constructor(){this._length=0}addFirst(t){let e=new j(t,()=>this._length--);this._first?(e.next=this._first,this._first.prev=e,this._first=e):(this._first=e,this._last=this._first),this._length++}addLast(t){let e=new j(t,()=>this._length--);this._first?(e.prev=this._last,this._last.next=e,this._last=e):(this._first=e,this._last=this._first),this._length++}removeFirst(){if(!this.first)throw new Error("The list is empty.");let t=this._first.value;return this._first=this._first.next,this._length--,t}removeLast(){if(!this.last)throw new Error("The list is empty.");let t=this._last.value;return this._last=this._last.prev,this._length--,t}get length(){return this._length}get first(){return this._first}get firstValue(){return this._first?.value}get last(){return this._last}get lastValue(){return this._last?.value}};function Ot(n){let t=n.getAttribute("id");if(t){let e=n.closest("form");if(e){let r=e.querySelector(`label[for="${t}"]`);if(r)return r.textContent?.trim()||null}}return null}var Ue=class{constructor(t,e){this.form=t;this.options=e;if(!this.form)throw new Error("Form must be specified.");this.form.addEventListener("submit",r=>{(e?.preventDefault||this.options?.submitCallback!=null)&&r.preventDefault(),this.options?.customChecks&&this.options.customChecks(t),this.validateForm()?this.options?.submitCallback?.apply(this):e?.preventDefaultOnFailed!==!1&&r.preventDefault()}),e?.autoValidate&&t.addEventListener("input",()=>{this.validateForm()})}validateForm(){let t=Array.from(this.form.querySelectorAll("input,textarea,select")),e=!0;if(this.options?.useSummary!==!0)return this.form.checkValidity()?!0:(this.form.reportValidity(),this.focusFirstErrorElement(),!1);let r=[];return t.forEach(o=>{if(!o.checkValidity()){e=!1;let s=Ot.call(this,o)||o.name||"Unnamed Field";r.push(`${s}: ${o.validationMessage}`)}}),e?this.clearErrorSummary():(this.displayErrorSummary(r),this.focusFirstErrorElement()),e}displayErrorSummary(t){this.clearErrorSummary(),this.errorSummary||this.createErrorSummary();let e=this.errorSummary.querySelector("ul");t.forEach(r=>{let o=document.createElement("li");o.textContent=r,e.appendChild(o)})}createErrorSummary(){let t=document.createElement("div");t.className="error-summary",t.style.color="red",t.setAttribute("role","alert"),t.setAttribute("aria-live","assertive"),t.setAttribute("aria-atomic","true"),this.errorSummary=t;let e=document.createElement("ul");this.errorSummary.appendChild(e),this.form.prepend(t)}addErrorToSummary(t,e){this.errorSummary||this.createErrorSummary();let r=this.errorSummary.querySelector("ul"),o=document.createElement("li");o.textContent=`${t}: ${e}`,r.appendChild(o)}clearErrorSummary(){this.errorSummary&&(this.errorSummary.querySelector("ul").innerHTML="")}focusFirstErrorElement(){let t=this.form.querySelector(":invalid");t instanceof HTMLElement&&document.activeElement!==t&&t.focus()}static FindForm(t){if(t.parentElement?.tagName=="FORM")return t.parentElement;for(let e=0;e<t.children.length;e++){let r=t.children[e];if(r.tagName=="FORM")return r}throw new Error("Parent or a direct child must be a FORM for class "+t.constructor.name)}};var ce=new Map;function jt(n){return ce.has(n)||ce.set(n,new Intl.PluralRules(n)),ce.get(n)}function We(n){return n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function _t(n,t,e="en"){return n.replace(/\{(\w+)(?:, (plural|select),((?:[^{}]*\{[^{}]*\})+))?\}/g,(r,o,s,i)=>{let a=t[o];if(s==="plural"){let c=new RegExp(`=${We(String(a))}\\s*\\{([^{}]*)\\}`).exec(i);if(c)return c[1].replace(`{${o}}`,String(a)).replace("#",String(a));let p=jt(e).select(a),u=new RegExp(`${p}\\s*\\{([^{}]*)\\}`).exec(i)||new RegExp("other\\s*\\{([^{}]*)\\}").exec(i);return u?u[1].replace(`{${o}}`,String(a)).replace("#",String(a)):String(a)}if(s==="select"){let c=We(String(a)),l=new RegExp(`\\b${c}\\s*\\{([^{}]*)\\}`).exec(i)||new RegExp("\\bother\\s*\\{([^{}]*)\\}").exec(i);return l?l[1]:String(a)}return a!==void 0?String(a):`{${o}}`})}var ze=_t;var gr=Ve({"./locales/en/r-common.json":()=>Promise.resolve().then(()=>L(Ge())),"./locales/en/r-pipes.json":()=>Promise.resolve().then(()=>L(Je())),"./locales/en/r-validation.json":()=>Promise.resolve().then(()=>L(Xe())),"./locales/sv/r-common.json":()=>Promise.resolve().then(()=>L(Ke())),"./locales/sv/r-pipes.json":()=>Promise.resolve().then(()=>L(Ze())),"./locales/sv/r-validation.json":()=>Promise.resolve().then(()=>L(Ye()))});var Jt="en",le=Jt;var Xt={},Qe=null;function w(n,t){let[e,r]=n.includes(":")?n.split(":"):["r-common",n],o=Xt[e]?.[r];if(!o)return Qe&&Qe(r,e,le),n;try{return ze(o,t,le)}catch{return n}}function _(){return le}function xr(n,t,e={}){let r=n.querySelectorAll("input, select, textarea");if(r.forEach(o=>{if(!o.hasAttribute("name")||X(o,"disabled"))return;let s=o.getAttribute("name");if(!(s in t)){if(e.throwOnMissingProperty)throw new Error(`Form field "${s}" has no matching property in class instance`);return}let i=en(o);i!==nt&&(t[s]=i)}),e.throwOnMissingField){let o=new Set;r.forEach(s=>{s.hasAttribute("name")&&o.add(s.getAttribute("name"))});for(let s in t)if(typeof t[s]!="function"&&Object.prototype.hasOwnProperty.call(t,s)&&!o.has(s))throw new Error(`Class property "${s}" has no matching form field`)}return t}function Kt(n){let t=n.getAttribute("data-type");return t?Yt(t):n instanceof HTMLInputElement?Qt(n.type):"checked"in n&&typeof n.checked=="boolean"?ue:e=>e}function Tr(n){let t={},e=new FormData(n),r=new Set;e.forEach((o,s)=>{if(r.has(s))return;r.add(s);let i=e.getAll(s),a=n.elements.namedItem(s),c=a?Kt(a):l=>l;if(i.length===1){let l=i[0];t[s]=typeof l=="string"?c(l):l}else t[s]=i.map(l=>typeof l=="string"?c(l):l)});for(let o=0;o<n.elements.length;o++){let s=n.elements[o];s.type==="checkbox"&&s.name&&!r.has(s.name)&&(r.add(s.name),t[s.name]=!1)}return t}function ue(n){if(!n||n=="")return;let t=n.toLowerCase();if(t==="true"||t==="on"||Number(n)>0)return!0;if(t==="false"||t==="off"||Number(n)<=0)return!1;throw new Error("Could not convert value '"+n+"' to boolean.")}function et(n){if(!n||n=="")return;let t=Number(n);if(!isNaN(t))return t;throw new Error("Could not convert value '"+n+"' to number.")}function Zt(n){return new Intl.DateTimeFormat(n).formatToParts(new Date(2024,0,15)).filter(e=>e.type==="day"||e.type==="month"||e.type==="year").map(e=>e.type)}function tt(n){if(!n||n==="")return;if(/^\d{4}-\d{2}-\d{2}(T|$)/.test(n)){let r=new Date(n);if(!isNaN(r.getTime()))return r}let t=n.split(/[\/.\-\s]/);if(t.length>=3&&t.every(r=>/^\d+$/.test(r))){let r=_(),o=Zt(r),s={};if(o.forEach((i,a)=>{s[i]=parseInt(t[a],10)}),s.year!==void 0&&s.month!==void 0&&s.day!==void 0){s.year<100&&(s.year+=2e3);let i=new Date(s.year,s.month-1,s.day);if(!isNaN(i.getTime()))return i}}let e=new Date(n);if(isNaN(e.getTime()))throw new Error("Invalid date format");return e}function Yt(n){switch(n){case"boolean":return ue;case"number":return et;case"Date":return tt;case"string":return t=>!t||t==""?void 0:t;default:throw new Error(`Unknown data-type "${n}".`)}}function Qt(n){switch(n){case"checkbox":return ue;case"number":return et;case"date":case"datetime-local":return tt;case"month":return t=>{let[e,r]=t.split("-").map(Number);return new Date(e,r-1)};case"week":return t=>{let[e,r]=t.split("-W").map(Number);return{year:e,week:r}};case"time":return t=>{let[e,r,o=0]=t.split(":").map(Number);return{hours:e,minutes:r,seconds:o}};default:return t=>!t||t==""?void 0:t}}function X(n,t){let e=n;if(t in e&&typeof e[t]=="boolean")return e[t];let r=n.getAttribute(t);return r===null?!1:r===""||r.toLowerCase()==="true"||r.toLowerCase()===t}var nt=Symbol("skip");function en(n){let t=n,e=t.type||n.getAttribute("type")||"";if(e==="checkbox")return X(n,"checked");if(e==="radio")return X(n,"checked")?t.value:nt;if(e==="number")return t.value?Number(t.value):null;if(e==="date")return t.value?new Date(t.value):null;if("selectedOptions"in t&&X(n,"multiple"))return Array.from(t.selectedOptions).map(r=>r.value);if("value"in t)return t.value}var lt=new Map;function fe(n,t=[]){return function(e){lt.set(n,{validator:e,validInputTypes:t})}}function Rr(n){return lt.get(n)}var it,pe;it=[fe("required")];var A=class A{static create(t){return t==="required"?new A:null}validate(t,e){t.trim()===""&&e.addError(this.getMessage())}getMessage(){return w("r-validation:required")}};pe=z(null),A=J(pe,0,"RequiredValidation",it,A),G(pe,1,A);var rt=A,at,de;at=[fe("range",["number"])];var P=class P{constructor(t,e){this.min=void 0;this.max=void 0;this.min=t,this.max=e}static create(t){let e=t.match(/^range\((-?\d+(?:\.\d+)?)-(-?\d+(?:\.\d+)?)\)$/);if(e){let[,r,o]=e;return new P(parseFloat(r),parseFloat(o))}return null}validate(t,e){if(t.trim()==="")return;let r=parseFloat(t);!isNaN(r)&&r>=this.min&&r<=this.max||e.addError(this.getMessage(t))}getMessage(t){return w("r-validation:range",{min:this.min,max:this.max,actual:t})}};de=z(null),P=J(de,0,"RangeValidation",at,P),G(de,1,P);var ot=P,ct,me;ct=[fe("digits",["number"])];var $=class ${static create(t){return t==="digits"?new $:null}validate(t,e){/^\d+$/.test(t)||e.addError(this.getMessage())}getMessage(){return w("r-validation:digits")}};me=z(null),$=J(me,0,"DigitsValidation",ct,$),G(me,1,$);var st=$;function Sr(n,t){n.querySelectorAll("[name]").forEach(r=>{let o=r.getAttribute("name");if(!o)return;if(o.endsWith("[]")){let i=o.slice(0,-2),a=ut(t,i);if(Array.isArray(a)){let c=r,l=c.type||r.getAttribute("type")||"";if(l==="checkbox"||l==="radio")c.checked=a.includes(c.value);else if("options"in c&&pt(r,"multiple"))a.forEach(p=>{let u=Array.from(c.options).find(d=>d.value===String(p));u&&(u.selected=!0)});else if("value"in c){let p=n.querySelectorAll(`[name="${o}"]`),u=Array.from(p).indexOf(r);u>=0&&u<a.length&&(c.value=String(a[u]))}}return}let s=ut(t,o);s!=null&&tn(r,s)})}function ut(n,t){let e=[],r="",o=!1;for(let s=0;s<t.length;s++){let i=t[s];i==="["&&!o?(r&&(e.push(r),r=""),o=!0,r+=i):i==="]"&&o?(r+=i,e.push(r),r="",o=!1):i==="."&&!o?r&&(e.push(r),r=""):r+=i}return r&&e.push(r),e.reduce((s,i)=>{if(!(!s||typeof s!="object")){if(i.startsWith("[")&&i.endsWith("]")){let a=i.slice(1,-1);return s[a]}return s[i]}},n)}function tn(n,t){let e=n,r=e.type||n.getAttribute("type")||"";if(r==="checkbox")e.checked=!!t;else if(r==="radio")e.checked=e.value===String(t);else if(r==="date"&&t instanceof Date)e.value=t.toISOString().split("T")[0];else if(r==="datetime-local"&&t instanceof Date){let o=s=>String(s).padStart(2,"0");e.value=`${t.getFullYear()}-${o(t.getMonth()+1)}-${o(t.getDate())}T${o(t.getHours())}:${o(t.getMinutes())}`}else if("options"in e&&pt(n,"multiple")&&Array.isArray(t)){let o=Array.from(e.options),s=t.map(String);o.forEach(i=>{i.selected=s.includes(i.value)})}else"value"in e&&(e.value=String(t))}function pt(n,t){let e=n;if(t in e&&typeof e[t]=="boolean")return e[t];let r=n.getAttribute(t);return r===null?!1:r===""||r.toLowerCase()==="true"||r.toLowerCase()===t}function nn(n){return String(n).toUpperCase()}function rn(n){return String(n).trimEnd().trimStart()}function on(n){return String(n).toLowerCase()}function sn(n){let t=String(n);return t.charAt(0).toUpperCase()+t.slice(1)}function an(n,t){let e=String(n),r=parseInt(t,10);return e.length>r?e.substring(0,r-3)+"...":e}function cn(n,t="USD"){let e=_();return new Intl.NumberFormat(e,{style:"currency",currency:t}).format(n)}function ln(n,t){let e=new Date(n),r=_();return t==="short"?e.toLocaleDateString(r):t==="long"?e.toLocaleDateString(r,{weekday:"long",year:"numeric",month:"long",day:"numeric"}):e.toISOString()}function un(n){if(!n)return"n/a";let t=new Date(n),e=new Date;t.setHours(0,0,0,0),e.setHours(0,0,0,0);let r=e.getTime()-t.getTime(),o=Math.round(r/(1e3*60*60*24));return o===0?w("r-pipes:today"):o===1?w("r-pipes:yesterday"):w("r-pipes:daysAgo",{count:o})}function pn(n){if(n==null)return"n/a";let t=Number(n);return w("r-pipes:pieces",{count:t})}function dn(n,t=","){return Array.isArray(n)?n.join(t):n}function mn(n){return!Array.isArray(n)||n.length===0?"":n[0]}function fn(n){return!Array.isArray(n)||n.length===0?"":n[n.length-1]}function gn(n){return typeof n!="object"||n===null?[]:Object.keys(n)}function hn(n,t){return n||t}function yn(n,t,e){return n?t:e}function vn(){let n=new Map;return n.set("uppercase",nn),n.set("lowercase",on),n.set("capitalize",sn),n.set("trim",rn),n.set("shorten",an),n.set("currency",cn),n.set("date",ln),n.set("daysAgo",un),n.set("pieces",pn),n.set("join",dn),n.set("first",mn),n.set("last",fn),n.set("keys",gn),n.set("default",hn),n.set("ternary",yn),{lookup(t){return n.get(t)},get(t){var e=n.get(t);if(!e)throw Error("Pipe '"+t+"' not found.");return e},has(t){return n.has(t)}}}var S=vn();function dt(n,t,e=S){return t.reduce((r,o)=>{let[s,...i]=o.split(":").map(a=>a.trim());if(!e.has(s))return`[Pipe ${s} not found]`;try{return e.get(s)(r,...i)}catch(a){return`[Pipe ${s}, value: ${n}, error: ${a}]`}},n)}var En=S;function xn(n,...t){let e=document.createElement("template"),r=Tn(n);e.innerHTML=r;let o=[],s=document.createTreeWalker(e.content,NodeFilter.SHOW_ALL),i;for(;i=s.nextNode();)if(i.nodeType===Node.ELEMENT_NODE){let a=i;bn(a,t,o),customElements.get(a.tagName.toLowerCase())&&customElements.upgrade(a)}else if(i.nodeType===Node.TEXT_NODE){let a=i,c=a.textContent,l=mt(c,t);if(l)if(/€€\d+€€/.test(c)){let u=null,d=null,m=[];o.push({originalValue:c,setter(f){var x=l(f);u||(u=document.createComment(""),d=document.createComment(""),a.parentNode?.replaceChild(d,a),d.parentNode?.insertBefore(u,d)),m.forEach(T=>T.parentNode?.removeChild(T)),m=[];let g=document.createElement("template");g.innerHTML=x;let b=Array.from(g.content.childNodes),h=d.parentNode;b.forEach(T=>{h.insertBefore(T,d),m.push(T)})}})}else o.push({originalValue:c,setter(u){var d=l(u);a.textContent=d}})}return function(c){return o.forEach(l=>{l.setter(c)}),{fragment:e.content,update(l){o.forEach(p=>{p.setter(l)})}}}}function Tn(n){return n.raw.map((t,e)=>e<n.raw.length-1?`${t}\u20AC\u20AC${e}\u20AC\u20AC`:t).join("")}function bn(n,t,e){let r=[];for(let i of Array.from(n.attributes)){var o=i.value;if(o=="")continue;let a=/€€(\d+)€€/,c=o.match(a);if(c){let l=parseInt(c[1],10),p=t[l];if(typeof p=="function"){r.push({setter(u){let d=p.bind(u);n.removeAttribute(i.name),n[i.name]=d}});continue}}var s=mt(o,t);s!=null&&r.push({originalValue:o,setter(l){let p=s(l)??o;i.name in n?n[i.name]=p:i.value=p}})}r.length>0&&e.push({originalValue:n.tagName,setter(i){r.forEach(a=>a.setter(i))}})}function wn(n,t){return n.split(",").map(e=>{if(e=e.trim(),e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))return e.slice(1,-1);if(!isNaN(Number(e)))return Number(e);if(e.includes(".")){let r=e.split("."),o=t;for(let s of r){if(o==null)return;o=o[s]}return o}return t[e]})}function mt(n,t){let e=/€€(\d+)€€|{{\s*([^|]+?)(?:\|([\w|]+))?\s*}}/g,r=0,o,s=[];for(;(o=e.exec(n))!==null;){var i=n.slice(r,o.index);if(i.length>0&&s.push(c=>i),o[1]){let c=parseInt(o[1],10),l=t[c];if(!l)continue;if(typeof l=="function"){let p=l;s.push(u=>{var d=p.apply(u);return d})}else l&&l.length>0&&s.push(p=>l)}else if(o[2]){let c=o[2].trim(),l=o[3]?o[3].trim():null,p=o[4]?o[4].split("|").map(u=>u.trim()):[];s.push(u=>{var d=u[c];if(typeof d=="function")if(l){let m=wn(l,u);d=d.apply(u,m)}else d=d.call(u);return p.forEach(m=>{d=En[m](d)}),d})}r=e.lastIndex}if(s.length==0)return null;var a=n.slice(r);return a.length>0&&s.push(c=>a),c=>{var l="";return s.forEach(p=>{var u=p(c);l+=u}),l}}function ft(n){let t=n.split("|").map(s=>s.trim()),e=t[0],r=t.slice(1),o=e.match(/^(\w+)\s*\((.*)\)$/);if(o){let[,s,i]=o,a=i?i.split(",").map(c=>c.trim()):[];return{type:"function",fnName:s,fnArgs:a,pipes:r}}return{type:"path",path:e,pipes:r}}function K(n,t){let r=t.replace(/\[(\d+)\]/g,".$1").split("."),o=n;for(let s of r)if(o&&typeof o=="object"&&s in o)o=o[s];else return;return o}function R(n,t,e,r=!1){let o=`[template error] ${t} (at ${e})`;if(n.onError&&n.onError(o),n.strict||r)throw new Error(o)}function Rn(n){return function(e,r,o=""){try{let s=K(e,r);return s===void 0?(R(n,`Cannot resolve "${r}"`,o),""):s===null?"":Array.isArray(s)?s.length>0?JSON.stringify(s):"":typeof s=="object"?JSON.stringify(s):s}catch(s){let i=s instanceof Error?s.message:String(s);return R(n,`Exception resolving "${r}": ${i}`,o,!0),""}}}function gt(n,t,e,r,o){let s,i=r.pipeRegistry??S;if(n.type==="function"){let a=e?.[n.fnName];if(typeof a!="function")return R(r,`Function "${n.fnName}" not found`,o),"";let c=(n.fnArgs??[]).map(l=>l.startsWith('"')&&l.endsWith('"')||l.startsWith("'")&&l.endsWith("'")?l.slice(1,-1):isNaN(Number(l))?K(t,l):Number(l));try{s=a(...c)}catch(l){let p=l instanceof Error?l.message:String(l);return R(r,`Error calling "${n.fnName}": ${p}`,o),""}}else{let a=K(t,n.path);if(a===void 0)return R(r,`Cannot resolve "${n.path}"`,o),"";a===null?s="":typeof a=="object"?s=JSON.stringify(a):s=a}return n.pipes.length>0&&(s=dt(s,n.pipes,i)),s}var ge=new Map;function Cn(n,t,e){if(n.nodeType!==Node.TEXT_NODE||!n.textContent?.includes("{{"))return;let r=n.textContent;if(!ge.has(r)){let a=r.split(/(\{\{.*?\}\})/).map(c=>{if(c.startsWith("{{")){let l=c.slice(2,-2).trim();return{parsed:ft(l),literal:""}}else return{parsed:null,literal:c}});ge.set(r,a)}let o=ge.get(r),s=`TextNode: "${r}"`;return(i,a)=>{let c=o.map(({parsed:l,literal:p})=>l?String(gt(l,i,a,e,s)):p).join("");n.textContent=c}}function Nn(n,t,e){if(n.nodeType!==Node.ELEMENT_NODE)return;let r=n,o=[],s=Array.from(r.attributes);for(let i of s){let a=i.value.match(/\{\{(.+?)\}\}/);if(a){let c=a[1].trim(),l=ft(c),p=i.name,u=`Attribute: ${p} on <${r.tagName.toLowerCase()}>`;o.push((d,m)=>{let f=gt(l,d,m,e,u);r.setAttribute(p,String(f))})}}if(o.length>0)return(i,a)=>o.forEach(c=>c(i,a))}function ht(n,t,e,r,o){if(n.nodeType!==Node.ELEMENT_NODE||!n.hasAttribute(r))return;let s=n,i=s.getAttribute(r),a=s.cloneNode(!0),c=document.createComment(`${r}: ${i}`),l=s.parentNode;l.insertBefore(c,s),s.remove();let p=null,u=null,d=null,m=null;return(f,x)=>{let g=t(f,i,`${r}="${i}"`),b=o(g);if(b&&!p){if(d&&m)p=d,u=m,d=null,m=null;else{let h=a.cloneNode(!0);h.removeAttribute(r),p=h,u=he(h,e)}u(f,x),l.insertBefore(p,c.nextSibling)}else b&&u&&u(f,x);!b&&p&&(p.remove(),d=p,m=u,p=null,u=null)}}function Sn(n,t,e){return ht(n,t,e,"if",r=>!!r)}function Mn(n,t,e){return ht(n,t,e,"unless",r=>!r)}function kn(n,t,e){if(n.nodeType!==Node.ELEMENT_NODE||!n.hasAttribute("loop"))return;let r=n,o=r.getAttribute("loop"),s=o.match(/(\w+)\s+in\s+(.+)/);if(!s){R(e,`Invalid loop syntax: "${o}"`,`Element: <${r.tagName.toLowerCase()}>`);return}let[,i,a]=s,c=r.cloneNode(!0);c.removeAttribute("loop");let l=r.parentNode,p=document.createComment(`loop: ${o}`);l.insertBefore(p,r),r.remove();let u=[];return(d,m)=>{let f=K(d,a);if(f===void 0){R(e,`Cannot resolve "${a}"`,`Loop source: "${o}"`);return}if(!Array.isArray(f)){R(e,`"${a}" is not an array in loop: "${o}"`,`Element: <${c.tagName.toLowerCase()}>`);return}let x=Math.min(u.length,f.length);for(let g=0;g<x;g++)u[g].renderer({...d,[i]:f[g]},m);for(let g=u.length-1;g>=f.length;g--)u[g].element.remove();if(f.length>x){let g=document.createDocumentFragment(),b=[];for(let T=x;T<f.length;T++){let y=c.cloneNode(!0),M=he(y,e);M({...d,[i]:f[T]},m),g.appendChild(y),b.push({element:y,renderer:M})}let h=x>0?u[x-1].element:p;l.insertBefore(g,h.nextSibling),u=u.slice(0,x).concat(b)}else u.length=f.length}}var Ln=[kn,Sn,Mn],An=[Cn,Nn];function he(n,t){let e=[],r=Rn(t);function o(a){for(let c of Ln){let l=c(a,r,t);if(l){e.push(l);return}}for(let c of An){let l=c(a,r,t);l&&e.push(l)}for(let c of Array.from(a.childNodes))o(c)}o(n);let s=null,i;return(a,c)=>{(s!==a||i!==c)&&(e.forEach(l=>l(a,c)),s=a,i=c)}}function Pn(n,t={strict:!1}){let o=new DOMParser().parseFromString(`<template><div>${n}</div></template>`,"text/html").querySelector("template").content.firstElementChild,s=he(o,t);return{content:o,render:s}}function $n(n,t={}){let{delimiter:e=".",escapeChar:r="\\"}=t;if(!n||typeof n!="string")throw new Error("Notation must be a non-empty string");let o=[],s="",i=0,a=!1,c="";for(;i<n.length;){let l=n[i],p=n.substring(i,e.length+i),u=n[i+1],d=n.substring(i+1,e.length+i+1);if(l===r&&(d===e||u==="["||u==="]"))a?c+=u:s+=u,i+=2;else if(l==="["&&!a)s&&(o.push({type:"property",key:s}),s=""),a=!0,c="",i++;else if(l==="]"&&a){if(!/^\d+$/.test(c.trim()))throw new Error(`Invalid array index: [${c}]. Only numeric indices are supported.`);o.push({type:"index",key:c.trim()}),a=!1,c="",i++}else p===e&&!a?(s&&(o.push({type:"property",key:s}),s=""),i+=e.length):a?(c+=l,i++):(s+=l,i++)}if(a)throw new Error("Unclosed bracket in notation");if(s&&o.push({type:"property",key:s}),o.length===0)throw new Error("Invalid notation: must contain at least one property or index");return o}function Fn(n){return t=>{let e=t;for(let r of n){if(e==null)return;if(r.type==="property"){if(typeof e!="object")return;e=e[r.key]}else if(r.type==="index"){if(!Array.isArray(e))return;let o=parseInt(r.key,10);if(o<0||o>=e.length)return;e=e[o]}}return e}}function Z(n,t={}){let e=$n(n,t);return Fn(e)}function vt(n){let t=[],e=0;for(;e<n.length;){let r=n[e];if(/\s/.test(r)){e++;continue}if(r==="|"){for(e++;e<n.length&&/\s/.test(n[e]);)e++;let o="";for(;e<n.length&&!/[\s\(\)\[\]\{\}\|\+\-\*\/\=\;\,\.]/.test(n[e]);)o+=n[e],e++;t.push({type:3,value:o});continue}if(r==='"'||r==="'"){let o=r,s=o;for(e++;e<n.length&&n[e]!==o;)n[e]==="\\"&&e+1<n.length&&n[e+1]===o?(s+="\\"+o,e+=2):(s+=n[e],e++);e<n.length&&(s+=o,e++),t.push({type:0,value:s});continue}if(/[0-9]/.test(r)){let o="",s=!1;for(;e<n.length&&(/[0-9]/.test(n[e])||n[e]==="."&&!s);)n[e]==="."&&(s=!0),o+=n[e],e++;t.push({type:0,value:o});continue}if(/[a-zA-Z_$]/.test(r)){let o="",s=!1;for(;e<n.length;)if(/[a-zA-Z0-9_$.]/.test(n[e]))o+=n[e],e++;else if(n[e]==="["){let l=1;for(o+=n[e++];e<n.length&&l>0;)n[e]==="["&&l++,n[e]==="]"&&l--,o+=n[e++]}else break;let i=0;for(;e<n.length&&/\s/.test(n[e]);)i++,e++;if(e<n.length&&n[e]==="("){s=!0,o+="(",e++;let l=1;for(;e<n.length&&l>0;)n[e]==="("&&l++,n[e]===")"&&l--,o+=n[e++]}else e-=i;let a=t[t.length-1],c=n[e-o.length-1]==="."&&a?.type===0;t.push({type:s||c?1:2,value:o});continue}e++}return t}function Y(n){let t=[],e=n.indexOf("("),r=n.lastIndexOf(")");if(e===-1||r===-1||r<=e)throw new Error("Invalid function call syntax");let o=n.slice(e+1,r),s=0;for(;s<o.length;){let i=o[s];if(/\s/.test(i)){s++;continue}if(i==='"'||i==="'"){let a=i,c="";for(s++;s<o.length&&o[s]!==a;)o[s]==="\\"?(s++,s<o.length&&(c+=o[s])):c+=o[s],s++;if(s>=o.length)throw new Error("Unterminated string in arguments");s++,t.push({type:"string",value:c});continue}if(/[0-9]/.test(i)){let a="";for(;s<o.length&&/[0-9.]/.test(o[s]);)a+=o[s],s++;t.push({type:"number",value:parseFloat(a)});continue}if(/[a-zA-Z_]/.test(i)){let a="";for(;s<o.length&&/[a-zA-Z0-9_\.]/.test(o[s]);)a+=o[s],s++;t.push({type:"identifier",value:a});continue}if(i===","){s++;continue}throw new Error(`Unexpected character in arguments: ${i}`)}return t}function Et(n){let t=[],e=0;for(;e<n.length;){let r=n.indexOf("{{",e);if(r===-1){t.push(yt(n.slice(e)));break}r>e&&t.push(yt(n.slice(e,r)));let{value:o,endIndex:s,balanced:i}=In(n,r);if(!i)throw new Error(`Unclosed mustache tag starting at index ${r}, template: ${n}`);t.push(Hn(o)),e=s}return t}function yt(n){return{type:"string",value:n}}function Hn(n){return{type:"mustache",value:n}}function In(n,t){let e="{{",r="}}",o=t+e.length,s=1;for(;o<n.length&&s>0;)n.slice(o,o+e.length)===e?(s++,o+=e.length):n.slice(o,o+r.length)===r?(s--,o+=r.length):o++;let i=s===0,a=i?o:n.length;return{value:n.slice(t,a),endIndex:a,balanced:i}}function ye(n,t){let e=Et(n).map(r=>r.type==="string"?(o,s)=>r.value:Dn(r,t));return(r,o)=>e.map(s=>s(r,o)).join("")}function Dn(n,t){let e=vt(n.value),r=Bn(e,n.value,t?.pipeRegistry);return On(r)}function Bn(n,t,e){let r=null;e||(e=S);for(let o of n)switch(o.type){case 0:throw Error(`Constants not supported: ${o.value}`);case 2:{r={source:Z(o.value),pipes:[]};break}case 1:{r={source:jn(o.value),pipes:[]};break}case 3:{if(!r)throw Error(`Pipe '${o.value}' has no input expression in: ${t}`);if(!o.value||o.value==="")throw Error("Pipe symbol was provided, but no pipes. Template: "+t);let[s,...i]=o.value.split(":").map(c=>c.trim()),a=e.lookup(s);if(!a)throw Error(`Pipe not found: ${s}`);r.pipes.push(c=>a(c,i));break}}if(!r)throw Error(`Invalid expression: ${t}`);return r}function On(n){return(t,e)=>{let r=n.source(t,e),o=n.pipes.reduce((s,i)=>i(s),r);return o!=null?o.toString():""}}function jn(n){let t=n.indexOf("(");if(t===-1)throw Error(`Invalid function: ${n}`);let r=Y(n).map(i=>{if(i.type==="number"||i.type==="string")return()=>i.value;if(i.type==="identifier")return a=>Z(i.value)(a);throw Error(`Unsupported argument type: ${i.type}`)}),o=n.substring(0,t),s=Z(o);return(i,a)=>{if(!a)throw Error(`Component context is required for calling '${o}'`);let c=s(a);if(typeof c!="function")throw Error(`Resolved '${o}' is not a function`);let l=r.map(p=>p(i));return c.apply(a,l)}}var ve=class{constructor(t,e,r,o){this.root=t;this.bindings=e;this.clickBindings=r;this.component=o}render(t){for(let e of this.bindings)e.type==="text"?e.func(t,e.node):e.func(t,e.element);for(let e of this.clickBindings){let r=this.getNodeAtPath(this.root,e.path),o=this.component?.[e.methodName];r instanceof HTMLElement&&typeof o=="function"&&(r.onclick=s=>{let i=e.argTokens.map(a=>{if(a.type==="number"||a.type==="string")return a.value;if(a.type==="identifier")return a.value==="event"?s:a.value.split(".").reduce((l,p)=>l?.[p],t)});o.apply(this.component,i)})}return this.root}getNodeAtPath(t,e){return e.reduce((r,o)=>r.childNodes[o],t)}};function Kr(n){var t=new Ee(n);return t}var Ee=class{constructor(t){if(typeof t=="string"){let r=t.trim();if(r.startsWith("<template")){let o=document.createElement("div");o.innerHTML=r;let s=o.querySelector("template");if(!s)throw new Error("Could not find <template> in input string");this.template=s}else this.template=document.createElement("template"),this.template.innerHTML=r}else this.template=t;let e=this.getRootElement();this.bindings=this.collectBindings(e),this.clickBindings=this.collectClickBindings(e)}createInstance(t){let e=this.getRootElement().cloneNode(!0),r=this.bindings.map(o=>{let s=this.getNodeAtPath(e,o.path);return o.type==="text"?{type:"text",node:s,func:(i,a)=>o.func(i,t,a)}:{type:"attribute",element:s,name:o.name,func:(i,a)=>o.func(i,t,a)}});return new ve(e,r,this.clickBindings,t)}getRootElement(){let t=Array.from(this.template.content.childNodes).find(e=>e.nodeType===Node.ELEMENT_NODE);if(!(t instanceof HTMLElement))throw new Error("Template must contain a single root element");return t}collectBindings(t){let e=[],r=(o,s=[])=>{if(o.nodeType===Node.TEXT_NODE&&o.textContent&&o.textContent.match(/\{\{\s*(.*?)\s*\}\}/g)){let i=ye(o.textContent);e.push({type:"text",path:[...s],func:(a,c,l)=>{l.textContent=i(a,c)}})}if(o.nodeType===Node.ELEMENT_NODE){let i=o;if(i.tagName==="TEMPLATE")return;for(let a=0;a<i.attributes.length;a++){let c=i.attributes[a];if(c.value.match(/\{\{\s*(.*?)\s*\}\}/g)){let l=ye(c.value);e.push({type:"attribute",path:[...s],name:c.name,func:(p,u,d)=>{d.setAttribute(c.name,l(p,u))}})}}Array.from(o.childNodes).forEach((a,c)=>{r(a,[...s,c])})}};return r(t),e}collectClickBindings(t){let e=[],r=(o,s=[])=>{if(o.nodeType===Node.ELEMENT_NODE){let a=o.getAttribute("click");if(a?.trim()){let c=a.trim(),l=c.match(/^([a-zA-Z_$][\w$]*)\s*\((.*)\)$/);if(l){let p=l[1],u=Y(c);e.push({path:[...s],methodName:p,argTokens:u})}else e.push({path:[...s],methodName:c,argTokens:[]})}Array.from(o.childNodes).forEach((c,l)=>{r(c,[...s,l])})}};return r(t),e}getNodeAtPath(t,e){return e.reduce((r,o)=>r.childNodes[o],t)}};var xe=class{constructor(t,e,r,o){this.dataMap=new Map;this.rowMap=new Map;this.table=t,this.template=e,this.IdColumn=r,this.component=o}render(t){this.clearRows();for(let e of t)this.renderRow(e)}clearRows(){this.table.tBodies[0].innerHTML="",this.dataMap.clear(),this.rowMap.clear()}renderRow(t){let e=t[this.IdColumn];if(e==null)throw new Error(`Missing IdColumn '${this.IdColumn}' in data`);let r=this.template.content.firstElementChild?.cloneNode(!0);if(!r)throw new Error("Template must have a <tr> as its first child");this.populateRow(r,t),this.attachEventHandlers(r,t),this.table.tBodies[0].appendChild(r),this.dataMap.set(e,t),this.rowMap.set(e,r)}populateRow(t,e){t.querySelectorAll("[data-field]").forEach(o=>{let s=o.dataset.field;s&&s in e&&(o.textContent=String(e[s]))})}attachEventHandlers(t,e){t.querySelectorAll("[onclick]").forEach(o=>{let s=o,i=s.getAttribute("onclick");if(!i)return;let a=i.match(/^(\w+)(\(([^)]*)\))?$/);if(!a)return;let[,c,,l]=a,p=l?l.split(",").map(u=>u.trim().replace(/^['"]|['"]$/g,"")):[];typeof this.component[c]=="function"&&(s.removeAttribute("onclick"),s.addEventListener("click",u=>{this.component[c](...p,e,u)}))})}update(t){let e=t[this.IdColumn];if(e==null)throw new Error(`Missing IdColumn '${this.IdColumn}' in update data`);let r=this.rowMap.get(e);r?(this.populateRow(r,t),this.attachEventHandlers(r,t),this.dataMap.set(e,t)):this.renderRow(t)}},Q=class extends CustomEvent{constructor(t){super("sortchange",{detail:t,bubbles:!0,composed:!0})}},Te=class{constructor(t,e){this.sortColumns=[];this.table=t,this.component=e,this.setupListeners()}setupListeners(){this.table.tHead?.querySelectorAll("th[name]")?.forEach(e=>{e.addEventListener("click",()=>{let r=e.getAttribute("name");this.toggle(r),this.updateSortIndicators(),this.emit()})})}toggle(t){let e=this.sortColumns.findIndex(r=>r.column===t);e===-1?this.sortColumns.push({column:t,direction:"asc"}):this.sortColumns[e].direction==="asc"?this.sortColumns[e].direction="desc":this.sortColumns.splice(e,1)}emit(){let t=new Q(this.sortColumns);this.component.dispatchEvent(t)}updateSortIndicators(){this.table.tHead?.querySelectorAll("th[name]")?.forEach(e=>{let r=e.querySelector(".sort-indicator");r&&e.removeChild(r);let o=e.getAttribute("name"),s=this.sortColumns.find(i=>i.column===o);if(s){let i=document.createElement("span");i.className="sort-indicator",i.textContent=s.direction==="asc"?"\u2191":"\u2193",i.style.float="right",i.style.marginLeft="5px",e.appendChild(i)}e.style.position||(e.style.position="relative")})}getSortColumns(){return[...this.sortColumns]}clear(){this.sortColumns=[],this.updateSortIndicators(),this.emit()}};var be=(o=>(o[o.Allow=0]="Allow",o[o.Deny=1]="Deny",o[o.Continue=2]="Continue",o[o.Stop=3]="Stop",o))(be||{}),F=class extends Error{},H=class extends F{};var C=class n extends Event{constructor(e,r,o,s,i){super(n.NAME,i);this.route=e;this.urlSegments=r;this.routeData=o;this.routeTarget=s}static{this.NAME="rlx.navigateRoute"}};var V=new Map,ee=new Map;function we(n,t){if(Ce(),V.has(n)){let r=v("Duplicate route target",{target:n??"default"});if(r)throw r;return}V.set(n,t);let e=ee.get(n);e&&(ee.delete(n),t(e))}function Re(n){V.delete(n)}function _n(){ee.clear(),V.clear()}function Vn(n){let t=V.get(n.routeTarget);t?t(n):ee.set(n.routeTarget,n)}var xt=!1;function Ce(){xt||(xt=!0,document.addEventListener(C.NAME,n=>{Vn(n)}))}var Ne=class{constructor(t){this.paramName=t}isMatch(t){return!!/^\d+$/.test(t)}getValue(t){if(/^\d+$/.test(t)===!1)throw new Error(`Path is not a number, parameter name '${this.paramName}', value: '${t}'.`);return parseInt(t)}},Se=class{constructor(t){this.paramName=t}isMatch(t){return!0}getValue(t){return t}},Me=class{constructor(t){this.value=t}isMatch(t){return t==this.value}getValue(t){return this.value}},ke=class{constructor(t,e){this.route=t;this.segments=e}match(t){if(t.length!=this.segments.length)return null;let e=[];var r={};for(let o=0;o<t.length;o++){let s=t[o],i=this.segments[o];if(!i.isMatch(s))return null;if(i.paramName){let a=i.getValue(s);r[i.paramName]=a,e.push(a.toString())}else e.push(s)}return{route:this.route,params:r,urlSegments:e}}buildUrl(t){let e=[];for(let o=0;o<this.segments.length;o++){let s=this.segments[o];if(s.paramName){var r=t[s.paramName];if(!r)throw new Error(`Route "${this.route.name}" did not get value for parameter "${s.paramName} from the provided routeData: "${JSON.stringify(t)}".`);e.push(r.toString())}else e.push(s.getValue("").toString())}return{route:this.route,params:t,urlSegments:e}}parseParameters(t){let e={};return this.segments.forEach(r=>{if(r.paramName){if(!r.isMatch(o))throw new Error(`Failed to convert parameter ${r.paramName}, or missing value: ${o}, route: ${this.route.name}.`);var o=t[r.paramName];if(!o)throw new Error(`Parameter ${r.paramName} was not provided, route: ${this.route.name}.`);var s=r.getValue(o);e[r.paramName]=s}}),e}};function Le(n,t,e){return t===""||t.indexOf("/")>=0?bt(n,t||"/"):Tt(n,t,e)}function Tt(n,t,e){var r=n.find(i=>i.name===t);if(!r)return null;var o=wt(r),s=o.buildUrl(e);return s}function bt(n,t){let e=t.replace(/^\/|\/$/g,"").split("/"),r=qn(n);for(let o=0;o<r.length;o++){let i=r[o].match(e);if(i)return i}return null}function qn(n){let t=[];return n.forEach(e=>{var r=wt(e);t.push(r)}),t}function wt(n){var t=[];n.path.replace(/^\/|\/$/g,"").split("/").forEach(o=>{o.substring(0,1)==":"?t.push(new Se(o.substring(1))):o.substring(0,1)===";"?t.push(new Ne(o.substring(1))):o.substring(0,1)==="{"||t.push(new Me(o))});var r=new ke(n,t);return r}var q=class extends HTMLElement{static get observedAttributes(){return["name","target","params"]}constructor(){super(),this.addEventListener("click",t=>this.handleClick(t))}handleClick(t){t.preventDefault();let e=this.getAttribute("name");if(!e)return;console.log("Calling printRoutes from RouteLink in relaxjs/components"),Ae();let r={};for(let a of Array.from(this.attributes))if(a.name.startsWith("param-")){let c=a.name.substring(6);r[c]=a.value}let o=this.getAttribute("params"),s;if(o)try{s=JSON.parse(o)}catch(a){let c=v("Failed to parse route params",{element:"r-link",params:o,cause:a});if(c)throw c}let i=this.getAttribute("target");s&&Object.assign(r,s);try{te(e,{params:r,target:i||void 0})}catch(a){if(a instanceof N)throw a;let c=v("Navigation failed",{element:"r-link",route:e,params:r,target:i,cause:a});if(c)throw c}}connectedCallback(){this.hasAttribute("tabindex")||this.setAttribute("tabindex","0"),this.style.cursor="pointer",this.role="link"}disconnectedCallback(){this.removeEventListener("click",this.handleClick)}};var U=class extends HTMLElement{constructor(){super(...arguments);this.name=void 0}connectedCallback(){this.name=this.getAttribute("name")??void 0,this.hasAttribute("dialog")&&(this.dialog=document.createElement("dialog"),this.dialog.addEventListener("close",()=>{this.dialog.replaceChildren()}),this.appendChild(this.dialog)),we(this.name,e=>this.onNavigate(e)),console.log("registered")}disconnectedCallback(){Re(this.name)}onNavigate(e){console.log("got nav",e),this.loadComponent(e).catch(r=>{r instanceof N||(r=v("Route navigation failed",{route:e.route.name,routeTarget:e.routeTarget,cause:r})),r&&console.error(r)})}async loadComponent(e){let r=e.route.componentTagName??customElements.getName(e.route.component);if(!r){let s=v("Failed to find component for route",{route:e.route.name,componentTagName:e.route.componentTagName,component:e.route.component?.name,routeData:e.routeData});if(s)throw s;return}await customElements.whenDefined(r);let o=document.createElement(r);await this.applyRouteData(o,e.routeData),this.dialog?(this.dialog.replaceChildren(o),this.dialog.open||this.dialog.showModal()):document.startViewTransition?document.startViewTransition(()=>this.replaceChildren(o)):this.replaceChildren(o)}close(){this.dialog?.close()}async applyRouteData(e,r){if("loadRoute"in e){let o=r??{error:"loadRoute function without mapped route data in the routes"};await e.loadRoute(o)}r&&(e.routeData=r)}};var I=Un()??"default";function Un(){let n=window.location.pathname;return n=="/index.html"?"default":n.endsWith(".html")?n.slice(1,-5):null}var W=[];function Ae(){console.log(W)}function Wn(n){console.log("defining routes1",n),Ce(),customElements.get("r-route-target")||customElements.define("r-route-target",U),customElements.get("r-link")||customElements.define("r-link",q),console.log("defining routes",n),W.length=0,W.push(...n);var t=[];if(n.forEach(e=>{e.componentTagName&&!customElements.get(e.componentTagName)&&t.push(`Component with tagName '${e.componentTagName}' is not defined in customElements.`),e.component&&!customElements.getName(e.component)&&t.push(`Component '${e.component.name}' is not defined in customElements. Used in route '${JSON.stringify(e)}'.`),e.layout===""&&(console.log("should not use empty string layout.",e),e.layout=void 0)}),t.length>0)throw new Error(t.join(`
|
|
2
|
+
`))}function zn(){let n=!1;if(I==""){let i=window.location.pathname.match(/\/([^\/]+)\.html$/);i&&i[1]!==""?(console.log("setting current layut",i[1]),I=i[1],n=!0):(console.log("Setting default layout name"),I="default")}if(Gn())return;let t=window.location.pathname.replace(/^\/|\/$/g,"")||"/",e=Rt(t,{}),r=new URLSearchParams(window.location.search);if(r.size>0&&(e.params??={},r.forEach((s,i)=>{e.params[i]=s})),Ct(e))return;history.replaceState(e.urlSegments,"","/"+e.urlSegments.join("/"));let o=new C(e.route,e.urlSegments,e.params,e.route.target);document.dispatchEvent(o)}function te(n,t){console.log("navigating to ",n,t);let e=Rt(n,t);if(Ct(e))return;let r=t?.target??e.route.target,o=e.urlSegments.join("/");window.location.pathname.replace(/^\/|\/$/g,"")!=o&&history.pushState(e.urlSegments,"","/"+e.urlSegments.join("/"));let i=new C(e.route,e.urlSegments,e.params,r);document.dispatchEvent(i)}function Rt(n,t){let e=t?.routes??W,r=t?.params,o=Le(e,n,r);if(!o){let s=Jn(n,r,e);throw console.error(s),new F(s)}if(!Xn(o))throw new H("Route guards stopped navigation for route "+n);return o}function Ct(n){n||console.error("Route result is null, cannot navigate to layout.");let t=(n.route.layout??"default").replace(/\.html?$/,"");if(t===I)return!1;if(console.log("Current layout: "+I,"Wanted layout: "+t),window.location.hash)throw Error('A redirect failed, does the requsted layout exist? "'+t+'"?');console.log(`requires layout switch from ${I} to ${t}`);let e={routeName:n.route.name,params:n.params||{}};sessionStorage.setItem("layoutNavigation",JSON.stringify(e));let r=t.indexOf(".htm")>-1?`/${t}#layout`:`/${t}.html#layout`;return console.log("redirecting to ",r),window.location.href=r,!0}function Gn(){try{let n=sessionStorage.getItem("layoutNavigation");if(!n)return!1;let t=JSON.parse(n);return sessionStorage.removeItem("layoutNavigation"),console.log("session store navigation ",t),te(t.routeName,{params:t.params}),!0}catch(n){return sessionStorage.removeItem("layoutNavigation"),v("Failed to navigate from session storage",{cause:n}),!1}}function Jn(n,t,e){var r="";t?r+=Object.entries(t).map(([s,i])=>`${s}=${i}`).join(", "):r=".";var o=e.map(s=>` * Name: '${s.name}', path: '${s.path}', target: ${s.target??"default"}
|
|
3
|
+
`);return`No route matched '${n}${r}'. Available routes:
|
|
4
|
+
${o}`}function Xn(n){if(!n||!n.route.guards||n.route.guards.length==0)return!0;for(let e=0;e<n.route.guards.length;e++){let r=n.route.guards[e];var t=r.check(n);if(t==0)return!0;if(t==3)return!1;if(t==1)throw new H(`Guard ${r.constructor.name} said 'Deny' for ${n.route.name}`)}return!0}function Go(n){return(t,e)=>{var r=Kn.resolve(n);return function(){return r}}}function Jo(n){return t=>{let e=n??{inject:[]};e.key?Fe.register(t,e):Fe.registerByType(t,e)}}var ne=class{constructor(t,e,r,o={},s,i){this.classConstructor=t;this.scope=e;this.inject=r;this.properties=o;this.key=s;this.instance=i}},Pe=class{constructor(){this.servicesByKey=new Map;this.servicesByClassName=new Map}register(t,e){this.validateRegistration(t,e);let r=new ne(t,e.scope??"global",e.inject,e.properties??{},e.key,e.instance);e.key&&this.servicesByKey.set(e.key,r),this.servicesByClassName.set(t.name,r)}registerByType(t,e){this.checkNameCollision(t),e&&this.validateRegistration(t,e);let r=new ne(t,e?.scope,e?.inject??[],e?.properties,e?.key,e?.instance);e?.key&&this.servicesByKey.set(e.key,r),this.servicesByClassName.set(t.name,r)}checkNameCollision(t){let e=this.servicesByClassName.get(t.name);if(e&&e.classConstructor!==t){let r=v("Service name collision: different class registered with same name",{service:t.name});if(r)throw r}}validateRegistration(t,e){if(this.checkNameCollision(t),e.key){let r=this.servicesByKey.get(e.key);if(r&&r.classConstructor!==t){let o=v("Service key already registered to a different class",{key:e.key,existingClass:r.classConstructor.name,newClass:t.name});if(o)throw o}}if(e.instance&&e.inject.length>0){let r=v("Service has both instance and inject (inject will be ignored)",{service:t.name});if(r)throw r}}tryGet(t){return typeof t=="string"?this.servicesByKey.get(t):this.servicesByClassName.get(t.name)}get(t){let e=this.tryGet(t);if(!e){let r=typeof t=="string"?t:t.name,o=v(`Failed to resolve service '${r}'`,{service:r,registeredTypes:Array.from(this.servicesByClassName.keys()),registeredKeys:Array.from(this.servicesByKey.keys())});if(o)throw o}return e}};var $e=class{constructor(t){this.serviceCollection=t;this.instances=new Map}resolve(t){let e=typeof t=="string"?t:t.name;if(this.instances.has(e))return this.instances.get(e);let r=this.serviceCollection.get(t);if(!r){let s=v(`Failed to resolve service '${e}'`,{service:e});if(s)throw s;return}if(r.instance){let s=r.instance;return this.injectFields(s,r),this.instances.set(e,s),s}let o=this.createInstance(r);return r.scope==="global"&&this.instances.set(e,o),this.injectFields(o,r),o}createInstance(t){let e=t.classConstructor,r=t.inject.map(o=>this.resolve(o));return new e(...r)}injectFields(t,e){for(let[r,o]of Object.entries(e.properties))t[r]=this.resolve(o)}},Fe=new Pe,Kn=new $e(Fe);function Ko(n,t){let e=n.parentElement;for(;e;){if(e instanceof t)return e;e=e.parentElement}return null}var Zn=Math.floor(new Date("2025-01-01T00:00:00Z").getTime()/1e3),Nt=0,re=0;function Yn(n){if(n<0||n>1048575)throw new Error("baseId must be between 0 and 1048575");let t=Math.floor(Date.now()/1e3);if(t===Nt){if(re++,re>255)throw new Error("Too many IDs generated in one second")}else Nt=t,re=0;let e=t-Zn;if(e>1073741823)throw new Error("Timestamp exceeds allowed range (beyond 2045-01-01)");let r=BigInt(e),o=BigInt(re),s=BigInt(n);return(r<<BigInt(28)|o<<BigInt(20)|s).toString(36).toLowerCase()}var St=class extends Error{constructor(t){super(t.statusReason),this.message=t.statusReason,this.response=t}},E={bearerTokenName:"jwt"},Mt=fetch;function Qo(n){Mt=n??fetch}function es(n){E={...E,...n},n.bearerTokenName===void 0&&(E.bearerTokenName="jwt")}async function oe(n,t){if(E.bearerTokenName){let o=localStorage.getItem(E.bearerTokenName);if(o&&t){let s=t?.headers?new Headers(t.headers):new Headers;s.get("Authorization")||s.set("Authorization","Bearer "+o),t.headers=s}}E.timeout&&!t?.signal&&(t??={},t.signal=AbortSignal.timeout(E.timeout)),E.baseUrl&&(n[0]!=="/"&&E.baseUrl[E.baseUrl.length-1]!=="/"?n=`${E.baseUrl}/${n}`:n=E.baseUrl+n);let e=await Mt(n,t);if(!e.ok)return{statusCode:e.status,statusReason:e.statusText,success:!1,contentType:e.headers.get("content-type"),body:await e.text(),charset:e.headers.get("charset"),as(){throw new Error("No response received")}};let r=null;return e.status!==204&&(r=await e.json()),{success:!0,statusCode:e.status,statusReason:e.statusText,contentType:e.headers.get("content-type"),body:r,charset:e.headers.get("charset"),as(){return r}}}async function ts(n,t,e){if(e?e.method="GET":e={method:"GET",headers:{"content-type":E.contentType??"application/json"}},t){let r="&";n.indexOf("?")===-1&&(r="?");for(let o in t){let s=t[o];n+=`${r}${o}=${s}`,r="&"}}return oe(n,e)}async function ns(n,t,e){return e?(e.method="POST",e.body=t):e={method:"POST",body:t,headers:{"content-type":E.contentType??"application/json"}},oe(n,e)}async function rs(n,t,e){return e?(e.method="PUT",e.body=t):e={method:"PUT",body:t,headers:{"content-type":E.contentType??"application/json"}},oe(n,e)}async function os(n,t){return t?t.method="DELETE":t={method:"DELETE",headers:{"content-type":E.contentType??"application/json"}},oe(n,t)}var He=class extends Event{constructor(e,r,o){super(e,{bubbles:!0,...o});this.data=r}},kt=class{constructor(t,e){this.url=t;this.options=e;this.target=this.resolveTarget(e?.target)}get connected(){return this.eventSource?.readyState===EventSource.OPEN}connect(){if(this.eventSource)return;let t=new EventSource(this.url,{withCredentials:this.options?.withCredentials??!1});if(this.eventSource=t,t.onopen=()=>{this.options?.onConnect?.(this)},t.onerror=e=>{this.options?.onError?.(this,e)},this.options?.eventTypes&&this.options.eventTypes.length>0)for(let e of this.options.eventTypes)t.addEventListener(e,r=>{this.dispatchEvent(e,r.data)});else t.onmessage=e=>{this.dispatchEvent("message",e.data)}}disconnect(){this.eventSource?.close(),this.eventSource=void 0}resolveTarget(t){if(!t)return document;if(typeof t=="string"){let e=document.querySelector(t);if(!e)throw new Error(`SSEClient: Target element not found: ${t}`);return e}return t}dispatchEvent(t,e){let r;if(e.length>0&&(e[0]==="{"||e[0]==="["||e[0]==='"'))try{r=JSON.parse(e)}catch{r=e}else r=e;let o=this.options?.eventFactory?this.options.eventFactory(t,r):new He(t,r);this.target.dispatchEvent(o)}};function as(n,t){let e=t;for(let r of n){if(e==null)return;e=e[r]}return e??void 0}export{Ee as Blueprint,ue as BooleanConverter,ve as BoundNode,Jo as ContainerService,tt as DateConverter,st as DigitsValidation,Ue as FormValidator,be as GuardResult,St as HttpError,Go as Inject,ae as LinkedList,C as NavigateRouteEvent,j as Node,et as NumberConverter,ot as RangeValidation,fe as RegisterValidator,N as RelaxError,rt as RequiredValidation,F as RouteError,H as RouteGuardError,q as RouteLink,U as RouteTarget,kt as SSEClient,He as SSEDataEvent,Pe as ServiceCollection,$e as ServiceContainer,Q as SortChangeEvent,xe as TableRenderer,Te as TableSorter,dt as applyPipes,sn as capitalizePipe,_n as clearPendingNavigations,Pn as compileTemplate,es as configure,Kn as container,Kr as createBluePrint,Yt as createConverterFromDataType,Qt as createConverterFromInputType,vn as createPipeRegistry,cn as currencyPipe,ln as datePipe,un as daysAgoPipe,hn as defaultPipe,S as defaultPipes,Wn as defineRoutes,os as del,Tt as findRouteByName,bt as findRouteByUrl,mn as firstPipe,Yn as generateSequentialId,ts as get,Kt as getDataConverter,Ko as getParentComponent,Rr as getValidator,xn as html,W as internalRoutes,dn as joinPipe,gn as keysPipe,fn as lastPipe,on as lowercasePipe,xr as mapFormToClass,Le as matchRoute,te as navigate,er as onError,pn as piecesPipe,ns as post,Ae as printRoutes,rs as put,Tr as readData,we as registerRouteTarget,v as reportError,oe as request,as as resolveValue,Fe as serviceCollection,Qo as setFetch,Sr as setFormData,an as shortenPipe,zn as startRouting,yn as ternaryPipe,rn as trimPipe,Re as unregisterRouteTarget,nn as uppercasePipe};
|
|
5
|
+
//# sourceMappingURL=index.mjs.map
|