@vielzeug/ore 26.10.15 → 26.10.16
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/dist/_dev.cjs.map +1 -1
- package/dist/_dev.js.map +1 -1
- package/dist/base-element.cjs.map +1 -1
- package/dist/base-element.js.map +1 -1
- package/dist/context.cjs.map +1 -1
- package/dist/context.js +1 -1
- package/dist/context.js.map +1 -1
- package/dist/define.cjs.map +1 -1
- package/dist/define.js.map +1 -1
- package/dist/directives/classMap.cjs.map +1 -1
- package/dist/directives/classMap.js.map +1 -1
- package/dist/directives/each.cjs.map +1 -1
- package/dist/directives/each.js +1 -1
- package/dist/directives/each.js.map +1 -1
- package/dist/directives/live.cjs.map +1 -1
- package/dist/directives/live.js.map +1 -1
- package/dist/directives/model.cjs.map +1 -1
- package/dist/directives/model.js.map +1 -1
- package/dist/directives/styleMap.cjs.map +1 -1
- package/dist/directives/styleMap.js.map +1 -1
- package/dist/directives/unsafe-html.cjs.map +1 -1
- package/dist/directives/unsafe-html.js.map +1 -1
- package/dist/directives/when.cjs.map +1 -1
- package/dist/directives/when.js.map +1 -1
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/forms/field.cjs.map +1 -1
- package/dist/forms/field.js +1 -1
- package/dist/forms/field.js.map +1 -1
- package/dist/host-bind.cjs.map +1 -1
- package/dist/host-bind.js +1 -1
- package/dist/host-bind.js.map +1 -1
- package/dist/ore.cjs +1 -1
- package/dist/ore.cjs.map +1 -1
- package/dist/ore.iife.js +1 -1
- package/dist/ore.iife.js.map +1 -1
- package/dist/ore.js +1180 -2
- package/dist/ore.js.map +1 -1
- package/dist/props.cjs.map +1 -1
- package/dist/props.js +1 -1
- package/dist/props.js.map +1 -1
- package/dist/runtime.cjs.map +1 -1
- package/dist/runtime.js.map +1 -1
- package/dist/slots.cjs.map +1 -1
- package/dist/slots.js +1 -1
- package/dist/slots.js.map +1 -1
- package/dist/template/bindings.cjs +1 -1
- package/dist/template/bindings.cjs.map +1 -1
- package/dist/template/bindings.js +1 -1
- package/dist/template/bindings.js.map +1 -1
- package/dist/template/compiler.cjs.map +1 -1
- package/dist/template/compiler.js +1 -1
- package/dist/template/compiler.js.map +1 -1
- package/dist/template/instantiator.cjs +1 -1
- package/dist/template/instantiator.cjs.map +1 -1
- package/dist/template/instantiator.js +1 -1
- package/dist/template/instantiator.js.map +1 -1
- package/dist/template/result.cjs.map +1 -1
- package/dist/template/result.js.map +1 -1
- package/dist/testing/flush.cjs.map +1 -1
- package/dist/testing/flush.js.map +1 -1
- package/dist/testing/mount.cjs.map +1 -1
- package/dist/testing/mount.js.map +1 -1
- package/dist/testing/render-hook.cjs.map +1 -1
- package/dist/testing/render-hook.js +1 -1
- package/dist/testing/render-hook.js.map +1 -1
- package/dist/testing/reset.cjs.map +1 -1
- package/dist/testing/reset.js.map +1 -1
- package/dist/testing.cjs.map +1 -1
- package/dist/testing.js.map +1 -1
- package/dist/utils/aria.cjs.map +1 -1
- package/dist/utils/aria.js.map +1 -1
- package/dist/utils/brand.cjs.map +1 -1
- package/dist/utils/brand.js.map +1 -1
- package/dist/utils/css.cjs.map +1 -1
- package/dist/utils/css.js +1 -1
- package/dist/utils/css.js.map +1 -1
- package/dist/utils/dom.cjs +1 -1
- package/dist/utils/dom.cjs.map +1 -1
- package/dist/utils/dom.js +1 -1
- package/dist/utils/dom.js.map +1 -1
- package/dist/utils/emit.cjs.map +1 -1
- package/dist/utils/emit.js.map +1 -1
- package/dist/utils/id.cjs.map +1 -1
- package/dist/utils/id.js.map +1 -1
- package/package.json +10 -10
package/dist/ore.js
CHANGED
|
@@ -1,3 +1,1181 @@
|
|
|
1
|
-
import{batch as e,computed as t,createScope as n,effect as r,isReactive as i,signal as a,untrack as o}from"@vielzeug/ripple";
|
|
2
|
-
`)}`};function invariant(e,t){if(!e)throw new OreInternalError(s.invariantViolated(t))}var resolveMaybeReactive=e=>typeof e==`function`?e():i(e)?e.value:e,c=/[;{}]/g,sanitizeCssToken=e=>e.replace(c,``),runAll=e=>{for(let t=e.length-1;t>=0;t--)e[t]?.()},removeNodes=e=>{for(let t of e)t.remove()},createReplaceableSlot=()=>{let e=[],t=[];return{clear(){runAll(t),removeNodes(e),t=[],e=[]},get nodes(){return e},registerCleanup(e){t.push(e)},setNodes(t){e=t}}},l=new Set([`action`,`cite`,`codebase`,`data`,`formaction`,`href`,`manifest`,`ping`,`poster`,`src`,`xlink:href`]),u=/^\s*(?:(?:javascript|vbscript|blob):|data:(?:[^,]*\/(?:html|svg\+xml)|application\/(?:xhtml|xml)))/i,setAttr=(e,t,n)=>{let r=t.toLowerCase();if(/^on[a-z]/i.test(t)){`${t}${t.slice(2)}`,e.removeAttribute(t);return}if(r===`srcdoc`){e.removeAttribute(t);return}if(n==null||n===!1){e.removeAttribute(t);return}let i=n===!0?`true`:String(n);if(l.has(r)&&u.test(i)){`${t}`,e.removeAttribute(t);return}e.setAttribute(t,i)},listen=(e,t,n,r)=>{if(!e)return s.listenNullTarget(t),()=>{};let i=n;return e.addEventListener(t,i,r),()=>e.removeEventListener(t,i,r)},toKebab=e=>e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`),cssDeclarationName=e=>sanitizeCssToken(e.startsWith(`--`)?e:toKebab(e)),cssDeclarationValue=e=>{let t=resolveMaybeReactive(e);return t==null||t===!1?``:sanitizeCssToken(String(t))},resolveClassTokens=e=>{let t=new Set;for(let[n,r]of Object.entries(e)){if(!resolveMaybeReactive(r))continue;let e=n.replace(/\s+/g,``);e&&t.add(e)}return t},isStructuredValue=e=>Array.isArray(e)||typeof e==`object`&&!!e,d=null,createRuntimeContext=e=>({element:e,formResetCallbacks:[],mountCallbacks:[]}),f=0,beginPendingWork=()=>{f++;let e=!1;return()=>{e||(e=!0,f--)}},runWithContext=(e,t)=>{let n=d;d=e;try{return t()}finally{d=n}},requireSetupContext=e=>{if(d)return d;throw new OreApiError(`${e}: ${s.lifecycleOutsideSetup}`)},getHost=()=>requireSetupContext(`getHost`).element,tryRegisterCleanup=e=>d?(r(()=>e),!0):!1,onCleanup=e=>{if(!tryRegisterCleanup(e))throw new OreApiError(`onCleanup: ${s.lifecycleOutsideSetup}`)},onMounted=e=>{requireSetupContext(`onMounted`).mountCallbacks.push(e)},onFormReset=e=>{requireSetupContext(`onFormReset`).formResetCallbacks.push(e)},watchEffect=e=>{let t=r(e),stop=()=>t.dispose();return tryRegisterCleanup(stop),stop};function onEvent(e,t,n,r){if(requireSetupContext(`onEvent`),!e)return;let i=listen(e,t,n,r);tryRegisterCleanup(i)||i()}var onElement=(e,t)=>watchEffect(()=>{let n=e.value;if(n)return t(n)}),p=new WeakMap,buildAncestorChain=e=>{let t=[],n=e;for(;n;)n instanceof HTMLElement&&t.push(n),n=n.parentNode??(n instanceof ShadowRoot?n.host:null);return t},provideOnElement=(e,t,n)=>{let r=p.get(e)??new Map;r.has(t)&&`${e.localName}`,r.set(t,n),p.set(e,r)},provide=(e,t)=>{let n=requireSetupContext(`provide`).element;provideOnElement(n,e,t),onCleanup(()=>{let t=p.get(n);t&&(t.delete(e),t.size===0&&p.delete(n))})},m=Symbol(`inject.not_found`),h=new WeakMap,walkAndFind=(e,t)=>{let n=buildAncestorChain(e);for(let e of n){let n=p.get(e);if(n?.has(t))return n.get(t)}return m},lookup=(e,t)=>{let n=h.get(e);n||(n=new Map,h.set(e,n));let r=t;return n.has(r)||n.set(r,walkAndFind(e.element,t)),n.get(r)};function inject(e,...t){let n=lookup(requireSetupContext(`inject`),e);return n===m?t.length>0?t[0]:void 0:n}var injectStrict=e=>{let t=requireSetupContext(`injectStrict`),n=lookup(t,e);if(n!==m)return n;throw new OreApiError(s.injectStrictFailed(String(e),t.element.localName))};function createContext(e){return Symbol(e)}function _jsOnlyProp(e){return{default:e,parse:()=>e,reflect:!1}}function _numberProp(e){let t=e;return{default:t,parse:e=>{if(e==null)return t;let n=Number(e);return Number.isNaN(n)?(`${e}${String(t)}`,t):n},reflect:!0}}function _stringProp(e){return{default:e,parse:t=>t??e,reflect:!0}}var g={bool(e){return{default:e??!1,parse:e=>e!==null&&e!==`false`,reflect:!0}},data(e){return _jsOnlyProp(e)},json(e){return{default:e,parse:t=>{if(t==null||t===``)return e;try{return JSON.parse(t)}catch{return e}},reflect:!1}},number:_numberProp,oneOf(e,t){return{default:t,parse:n=>{if(n==null)return t;let r=e,i=r.indexOf(n);if(i!==-1)return e[i];let a=Number(n);if(!Number.isNaN(a)){let t=r.indexOf(a);if(t!==-1)return e[t]}return t},reflect:!0}},string:_stringProp},isPropDef=e=>typeof e==`object`&&!!e&&`default`in e&&`parse`in e;function normalizePropDefinition(e,t){if(!isPropDef(e))throw new OreApiError(`Prop "${t}" must use a prop.* helper (string/number/bool/json/oneOf). Received: ${typeof e}`);let n=e;if(!n.parse)throw new OreApiError(`Prop "${t}" must have a parse function. Use prop.* helpers.`);let r=n.reflect??!1;if(r&&isStructuredValue(n.default))throw new OreApiError(`Prop "${t}": ${s.propInvalidReflect}`);return{...n,reflect:r}}function validatePropDefs(e){let t=[];for(let[n,r]of Object.entries(e))try{normalizePropDefinition(r,n)}catch(e){t.push(e instanceof Error?e.message:String(e))}return t}var _=new WeakMap,getPropMeta=(e,t)=>_.get(e)?.get(t),coerceIncoming=(e,t)=>typeof e==`string`?t(e):e,registerProp=(e,t,n,r)=>{let i=_.get(e);i||(i=new Map,_.set(e,i));let{default:o,parse:s,reflect:c=!1}=r,l=a(o),u=i.get(n),d=Object.hasOwn(e,t),f=d?e[t]:void 0,p={parse:s,reflect:c,signal:l};return u?l.value=u.signal.peek():d?(delete e[t],l.value=coerceIncoming(f,s)):e.hasAttribute(n)&&(l.value=s(e.getAttribute(n))),i.set(n,p),Object.defineProperty(e,t,{configurable:!0,enumerable:!0,get:()=>l.value,set:e=>{l.value=coerceIncoming(e,s)}}),c&&watchEffect(()=>{let t=l.value;t==null?e.removeAttribute(n):typeof t==`boolean`?e.toggleAttribute(n,t):setAttr(e,n,t)}),l};function createProps(e,t){let n={};for(let[r,i]of Object.entries(t))n[r]=registerProp(e,r,toKebab(r),i);return n}var makeBrand=e=>{let t=Symbol.for(e),stamp=e=>Object.assign(e,{[t]:!0}),is=e=>typeof e==`object`&&!!e&&t in e;return{is,stamp}},v=makeBrand(`ore:css-result`),y=v.is,cssResultToString=function(){return this.content},css=(e,...t)=>{let n=``;for(let r=0;r<e.length;r++)if(n+=e[r],r<t.length){let e=t[r];n+=y(e)?e.content:String(e)}return v.stamp({content:n.trim(),toString:cssResultToString})},b=new Map,x=256,loadStylesheet=e=>{if(e instanceof CSSStyleSheet)return e;let t=typeof e==`string`?e:e.content,n=b.get(t);if(n)return b.delete(t),b.set(t,n),n;let r=new CSSStyleSheet;try{r.replaceSync(t)}catch{return r}if(b.set(t,r),b.size>x){let e=b.keys().next().value;e!==void 0&&b.delete(e)}return r},S={SETUP_DONE:`setup_done`,SETUP_RUNNING:`setup_running`,UNINITIALIZED:`uninitialized`,UNMOUNTED:`unmounted`},createComponentState=()=>({formResetCallbacks:[],generation:0,mountCallbacks:[],phase:S.UNINITIALIZED,scope:n(),templateResult:null}),isPromiseLike=e=>(typeof e==`object`||typeof e==`function`)&&e!==null&&`then`in e&&typeof e.then==`function`,BaseElement=class extends HTMLElement{static _definition;static _normalizedPropDefs;static formAssociated=!1;static observedAttributes=[];_component;constructor(){super();let e=this.constructor._definition;e?.shadow!==!1&&this.attachShadow({mode:`open`,...e?.shadow}),this._component=createComponentState()}connectedCallback(){o(()=>{this._component.phase===S.UNINITIALIZED&&this._runSetup(),this._init()})}attributeChangedCallback(e,t,n){if(t===n)return;let r=getPropMeta(this,e);if(!r)return;let i=r.parse(n);Object.is(o(()=>r.signal.value),i)||(r.signal.value=i)}disconnectedCallback(){this._component.generation++,this._component.phase=S.UNMOUNTED,this._resetSetupState()}_resetSetupState(){this._component.scope.dispose(),this._component.formResetCallbacks=[],this._component.mountCallbacks=[],this._component.phase=S.UNINITIALIZED,this._component.scope=n(),this._component.templateResult=null}formResetCallback(){for(let e of this._component.formResetCallbacks)try{e()}catch(e){this._reportLifecycleError(e,`form-reset`)}}_reportLifecycleError(e,t){let n=e instanceof Error?e:Error(String(e));reportRuntimeError(new OreLifecycleError(`<${this.localName}> failed during ${this._component.phase} (${t})`,{cause:n,component:this.localName,phase:t}),this)}_runSetup(){this._component.phase=S.SETUP_RUNNING;let e=this.constructor._definition,t=this.constructor._normalizedPropDefs,n=createRuntimeContext(this);try{let r;if(this._component.scope.run(()=>{r=runWithContext(n,()=>{let n=t?createProps(this,t):{};return e.setup(n)})}),this._component.mountCallbacks.push(...n.mountCallbacks),this._component.formResetCallbacks.push(...n.formResetCallbacks),isPromiseLike(r))throw new OreApiError(s.asyncSetupUnsupported);this._component.templateResult=r??null,this._component.phase=S.SETUP_DONE}catch(e){throw this._reportLifecycleError(e,`setup`),this._resetSetupState(),e}}_isStale(e){return this._component.generation!==e||!this.isConnected}_applyResult(e){if(!e)return;let t=this.shadowRoot??this,n=createRuntimeContext(this);t.replaceChildren(),this._component.scope.run(()=>{runWithContext(n,()=>{e.mount(t,null,onCleanup)})})}_init(){this._applyStyles(),this._mountTemplate(),this._component.phase===S.SETUP_DONE&&this._scheduleMountCallbacks()}_applyStyles(){let e=this.constructor._definition;this.shadowRoot&&e?.styles?.length&&(this.shadowRoot.adoptedStyleSheets=e.styles.map(loadStylesheet))}_mountTemplate(){let e=this._component.templateResult;e&&this._applyResult(e)}_scheduleMountCallbacks(){if(this._component.mountCallbacks.length===0)return;let e=this._component.generation,t=beginPendingWork();queueMicrotask(()=>{try{if(this._isStale(e))return;let t=this._component.mountCallbacks.splice(0);for(let e=0;e<t.length;e++){let n=t[e];try{let e=createRuntimeContext(this);this._component.scope.run(()=>{runWithContext(e,()=>{let e=n();typeof e==`function`&&onCleanup(e)})}),e.mountCallbacks.length>0&&t.push(...e.mountCallbacks),e.formResetCallbacks.length>0&&this._component.formResetCallbacks.push(...e.formResetCallbacks)}catch(e){this._reportLifecycleError(e,`mounted`)}}}finally{t()}})}};function define(e,t){if(!e)throw new OreApiError(s.defineRequiresTag);if(customElements.get(e))throw new OreApiError(s.defineDuplicate(e));let{props:n}=t,r=(()=>{if(!n)return;let t=validatePropDefs(n);if(t.length>0)throw new OreApiError(s.validationFailed(e,t));let r={};for(let[e,t]of Object.entries(n))r[e]=normalizePropDefinition(t,e);return r})(),i=r?Object.keys(r).map(toKebab):[],ComponentClass=class extends BaseElement{static _definition=t;static _normalizedPropDefs=r;static formAssociated=t.formAssociated??!1;static observedAttributes=i};return Object.defineProperty(ComponentClass,"name",{value:e}),customElements.define(e,ComponentClass),ComponentClass}var classMap=e=>t(()=>[...resolveClassTokens(e)].join(` `));function ref(){return a(null)}var C=makeBrand(`ore:directive`),createDirectiveResult=e=>C.stamp({mount:e}),w=C.is,T=makeBrand(`ore:html-result`),E=T.is;function createHtmlResult(e,t){let mount=(n,r,i)=>{let a=Array.from(e.childNodes);return n.insertBefore(e,r),t(i),a};return T.stamp({apply:t,fragment:e,mount})}var createItem=(e,t,r,i,o)=>{let s=a(e),c=a(t),l=n(),u=[],d=[];return l.run(()=>{d=r(s,c).mount(i,o,e=>u.push(e))}),{cleanups:u,data:s,index:c,nodes:d,scope:l}},removeItem=e=>{e.scope.dispose(),runAll(e.cleanups),removeNodes(e.nodes)},reconcileItems=(t,n,r,i,a,s,c)=>{for(let e=0;e<n.length;e++){let l=r[e];if(t.has(l))continue;let u=o(()=>createItem(n[e],e,i,a,s));c.push(u),t.set(l,u)}let l=[];e(()=>{for(let e=0;e<n.length;e++){let i=t.get(r[e]);invariant(i,`each() reconcile phase 2 lost an entry created in phase 1`),i.data.value=n[e],i.index.value=e,l.push(i)}});let u=s;for(let e=l.length-1;e>=0;e--){let t=l[e],n=t.nodes[0],r=t.nodes[t.nodes.length-1];if(n&&r!==u.previousSibling)for(let e of t.nodes)a.insertBefore(e,u);u=n??u}let d=new Set(r);for(let[e,n]of t)d.has(e)||(removeItem(n),t.delete(e));return l},rollbackCreated=(e,t)=>{for(let n of t){removeItem(n);for(let[t,r]of e)if(r===n){e.delete(t);break}}},collectKeys=(e,t)=>{let n=[],r=new Set;for(let i=0;i<e.length;i++){let a=t(e[i],i);if(r.has(a))throw new OreApiError(s.eachDuplicateKey(String(a),i));r.add(a),n.push(a)}return n},reportEachError=(e,t)=>{let n=e instanceof Error?e:Error(String(e));reportRuntimeError(new OreLifecycleError(`each() failed to reconcile a list update: ${n.message}`,{cause:n,component:`each()`,phase:`each-reconcile`}),t)};function each(e,n,i,s){let c=Array.isArray(e)?a(e):typeof e==`function`?t(e):e;return createDirectiveResult((e,t)=>{let a=e.parentNode;invariant(a,`each() anchor comment has no parent node`);let l=document.createComment(`each/end`);a.insertBefore(l,e.nextSibling);let u=new Map,d=[],f=null,p=[],mountFallback=()=>{s&&(f=s().mount(a,l,e=>p.push(e)))},clearFallback=()=>{f&&(runAll(p),removeNodes(f),f=null,p=[])},m=r(()=>{let t=c.value??[];if(t.length===0){for(let e of o(()=>d))removeItem(e);u=new Map,d=[],f||o(mountFallback);return}let r;try{r=o(()=>collectKeys(t,n))}catch(t){reportEachError(t,e);return}clearFallback();let s=[];try{d=o(()=>reconcileItems(u,t,r,i,a,l,s))}catch(t){reportEachError(t,e),o(()=>rollbackCreated(u,s))}});t(()=>m.dispose()),t(()=>{clearFallback();for(let e of d)removeItem(e);l.remove()})})}var D=makeBrand(`ore:live`),live=e=>D.stamp({source:e}),O=D.is,k=makeBrand(`ore:model`),A=k.is,modelDefaultGet=e=>e instanceof HTMLInputElement&&(e.type===`checkbox`||e.type===`radio`)?e.checked:e.value,modelDefaultEvent=e=>e instanceof HTMLInputElement&&(e.type===`checkbox`||e.type===`radio`)||e instanceof HTMLSelectElement?`change`:`input`,model=(e,t)=>k.stamp({event:t?.event,get:t?.get,source:e}),styleMap=e=>t(()=>{let t=[];for(let[n,r]of Object.entries(e)){let e=cssDeclarationValue(r);if(!e)continue;let i=cssDeclarationName(n);i&&t.push(`${i}:${e}`)}return t.join(`;`)}),parseHtml=(e,t,n)=>{let r=document.createElement(`template`);r.innerHTML=e;let i=Array.from(r.content.cloneNode(!0).childNodes);for(let e of i)t.insertBefore(e,n);return i};function unsafeHtml(e){let n=typeof e==`function`?t(e):i(e)?e:null;return createDirectiveResult((t,i)=>{let a=t.parentNode;invariant(a,`unsafeHtml() anchor comment has no parent node`);let o=document.createComment(`unsafe-html/end`);if(a.insertBefore(o,t.nextSibling),n){let e=createReplaceableSlot(),t=r(()=>{e.clear(),e.setNodes(parseHtml(n.value,a,o))});i(()=>t.dispose()),i(()=>{e.clear(),o.remove()})}else parseHtml(e,a,o),i(()=>o.remove())})}var j=`when() anchor comment has no parent node`;function when(e,n,a){return typeof e!=`function`&&!i(e)?createDirectiveResult((t,r)=>{let i=e?n():a?a():null;if(!i||!E(i))return;let o=t.parentNode;invariant(o,j);let s=i.mount(o,t,r);r(()=>removeNodes(s))}):createDirectiveResult((i,s)=>{let c=(typeof e==`function`?t(e):null)??e,l=i.parentNode;invariant(l,j);let u=document.createComment(`when/end`);l.insertBefore(u,i.nextSibling);let d=createReplaceableSlot(),f=r(()=>{let e=c.value;d.clear();let t=e?n():a?a():null;t&&E(t)&&d.setNodes(o(()=>t.mount(l,u,d.registerCleanup)))});s(()=>f.dispose()),s(()=>{d.clear(),u.remove()})})}var M=new WeakMap,N=new WeakSet,useField=e=>{let t=getHost();if(!t.constructor.formAssociated)throw new OreApiError(s.defineFieldRequiresFormAssociated(t.localName));if(N.has(t))throw new OreApiError(s.useFieldAlreadyCalled(t.localName));let n=M.get(t)??t.attachInternals();M.set(t,n),N.add(t),onCleanup(()=>N.delete(t));let r=e.toFormValue??(t=>t==null?e.emptyStringForNull?``:null:t instanceof File||t instanceof FormData?t:String(t));watchEffect(()=>{n.setFormValue(r(e.value.value))});let i=e.disabled;if(i&&`states`in n){let e=n.states;watchEffect(()=>{i.value?e.add(`disabled`):e.delete(`disabled`)})}e.validity&&watchEffect(()=>{let t=e.validity?.value;if(!t){n.setValidity({});return}let r=Object.values(t.flags).some(Boolean);n.setValidity(t.flags,r&&!t.message?`Invalid value.`:t.message)}),e.onReset&&onFormReset(e.onReset);let checkValidity=()=>n.checkValidity(),reportValidity=()=>n.reportValidity(),setCustomValidity=e=>e?n.setValidity({customError:!0},e):n.setValidity({});return{checkValidity,internals:n,reportValidity,setCustomValidity}},normalizeHostAttrKey=e=>e===`role`||e.startsWith(`aria-`)?e:e.startsWith(`aria`)?`aria-${e.slice(4).toLowerCase()}`:e,bind=(e,t)=>{let n=t?.target??getHost(),r=[];if(e.attr)for(let[t,i]of Object.entries(e.attr)){let e=applyAttribute(n,P(t),i);e&&r.push(e)}if(e.class&&r.push(applyClassMap(n,e.class)),e.style)for(let[t,i]of Object.entries(e.style)){let e=applyStyle(n,t,i);e&&r.push(e)}if(e.on){let{target:i,...a}=t??{};for(let t of Object.keys(e.on)){let i=e.on[t];i&&r.push(listen(n,t,i,a))}}let cleanup=()=>{for(let e of r)e()};return tryRegisterCleanup(cleanup),cleanup},P=normalizeHostAttrKey,applyReactiveBinding=(e,t)=>{if(typeof e==`function`)return watchEffect(()=>{t(e())});if(i(e))return watchEffect(()=>{t(e.value)});t(e)};function applyAttribute(e,t,n){return applyReactiveBinding(n,n=>setAttr(e,t,n))}function applyStyle(e,t,n){let r=cssDeclarationName(t);if(!r)return;let i=!1,setStyle=t=>{let n=cssDeclarationValue(t);n?(i=!0,e.style.setProperty(r,n)):i&&e.style.removeProperty(r)};return applyReactiveBinding(n,setStyle)}function applyClassMap(e,t){let n=typeof t==`function`?t:()=>Object.fromEntries([...resolveClassTokens(t)].map(e=>[e,!0])),r=new Set;return watchEffect(()=>{let t=new Set;for(let[i,a]of Object.entries(n()))a&&(t.add(i),r.has(i)||e.classList.add(i));for(let n of r)t.has(n)||e.classList.remove(n);r=t})}var F=`default`,normalizeSlotName=e=>e||F,createSlots=e=>{let t=new Map,n=new Map,r=new Map,ensureSlotEntry=e=>{let n=t.get(e);return n||(n={elements:a([]),presence:a(!1)},t.set(e,n)),n},areElementsEqual=(e,t)=>{if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0},recomputeSlot=e=>{let t=normalizeSlotName(e),r=n.get(t),i=[];if(r)for(let e of r)i.push(...e.assignedElements({flatten:!0}));let a=ensureSlotEntry(t);areElementsEqual(a.elements.value,i)||(a.elements.value=i);let o=i.length>0;a.presence.value!==o&&(a.presence.value=o)},bindSlot=e=>{if(r.has(e))return;let t=normalizeSlotName(e.getAttribute(`name`)),i=n.get(t)??new Set;i.add(e),n.set(t,i);let onChange=()=>recomputeSlot(t);e.addEventListener(`slotchange`,onChange),r.set(e,()=>{e.removeEventListener(`slotchange`,onChange)}),recomputeSlot(t)},unbindSlot=e=>{let t=r.get(e);if(!t)return;t(),r.delete(e);let i=normalizeSlotName(e.getAttribute(`name`)),a=n.get(i);a&&(a.delete(e),a.size===0&&n.delete(i)),recomputeSlot(i)},bindAllSlots=()=>{e.shadowRoot?.querySelectorAll(`slot`).forEach(e=>{bindSlot(e)})},recomputeAllSlots=()=>{for(let e of n.keys())recomputeSlot(e)},i=null,initSlots=()=>{bindAllSlots(),recomputeAllSlots(),!i&&e.shadowRoot&&(i=new MutationObserver(e=>{for(let t of e)for(let e of t.removedNodes)e instanceof HTMLSlotElement&&unbindSlot(e);bindAllSlots(),r.size>0&&recomputeAllSlots()}),i.observe(e.shadowRoot,{childList:!0,subtree:!0}))};return onMounted(initSlots),onCleanup(()=>{i?.disconnect(),i=null;for(let e of r.values())e();r.clear(),n.clear(),t.clear(),I.delete(e)}),{elements:e=>ensureSlotEntry(normalizeSlotName(e)).elements,has:e=>ensureSlotEntry(normalizeSlotName(e)).presence}},I=new WeakMap,useSlots=()=>{let e=requireSetupContext(`useSlots`),t=I.get(e.element);return t||(t=createSlots(e.element),I.set(e.element,t)),t},signalEffect=(e,t,n)=>{let i=r(()=>{t(e.value)});n(()=>i.dispose())},isNativeFormInput=e=>e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement,isCheckableInput=e=>e instanceof HTMLInputElement&&(e.type===`checkbox`||e.type===`radio`),syncFormControl=(e,t,n,r={last:void 0})=>{let i=isCheckableInput(e),a=i?!!t:t==null?``:String(t),o=i?e.checked:e.value;(!n||r.last===void 0||Object.is(o,r.last)||Object.is(o,a))&&(i?e.checked=a:e.value=a,n&&(r.last=a))},syncRegisteredProp=(e,t,n,r)=>{let i=isStructuredValue(r)?r:t.parse(n.mode===`bool`?r?``:null:r==null||r===!1?null:String(r));if(Object.is(o(()=>t.signal.value),i)||(t.signal.value=i),!t.reflect){if(isStructuredValue(r))return;n.mode===`bool`?e.toggleAttribute(n.name,!!r):setAttr(e,n.name,r)}},applyAttrBinding=(e,t)=>{let{el:n,mode:r,name:i}=e,a={last:void 0},update=t=>{let o=getPropMeta(n,i);if(o){syncRegisteredProp(n,o,e,t);return}if(i===`value`&&isNativeFormInput(n)||i===`checked`&&n instanceof HTMLInputElement){syncFormControl(n,t,e.live,a);return}if(i===`indeterminate`&&n instanceof HTMLInputElement){n.indeterminate=!!t;return}r===`bool`?n.toggleAttribute(i,!!t):setAttr(n,i,t)};`signal`in e?signalEffect(e.signal,update,t):update(e.value)},applyEventBinding=(e,t)=>{let{modifiers:n}=e,r=n?.stop||n?.prevent?t=>{n.stop&&t.stopPropagation(),n.prevent&&t.preventDefault(),e.handler(t)}:e.handler,i=n?.once||n?.capture?{capture:n.capture,once:n.once}:void 0;t(listen(e.el,e.name,r,i))},applyPropBinding=(e,t)=>{let update=t=>{e.el[e.name]=t};`signal`in e?signalEffect(e.signal,update,t):update(e.value)},applyModelBinding=(e,t)=>{let{el:n,get:i,signal:a}=e,s={last:void 0},write=e=>{isNativeFormInput(n)?syncFormControl(n,e,!0,s):n.value=e},c=r(()=>{write(a.value)}),onEvent=()=>{let e=i(n);Object.is(o(()=>a.value),e)||(a.value=e)};t(()=>c.dispose()),t(listen(n,e.event,onEvent))},applyRefBinding=(e,t)=>{let{el:n,ref:r}=e;if(typeof r==`function`){r(n),t(()=>r(null));return}r.value=n,t(()=>{r.value=null})},insertHtmlValues=(e,t,n)=>{let r=[],i=t.parentNode;invariant(i,`html binding anchor has no parent node`);for(let a of e)if(E(a)){let e=Array.from(a.fragment.childNodes);i.insertBefore(a.fragment,t),a.apply(n),r.push(...e)}else if(a!=null&&a!==!1){let e=document.createTextNode(String(a));i.insertBefore(e,t),r.push(e)}return r},applyHtmlBinding=(e,t)=>{let{anchor:n,signal:i}=e,a=createReplaceableSlot(),s=r(()=>{let e=i.value;a.clear(),e!=null&&e.length!==0&&o(()=>{a.setNodes(insertHtmlValues(e,n,a.registerCleanup))})});t(()=>{s.dispose(),a.clear()})},applyDirectiveBinding=(e,t)=>{e.directive.mount(e.anchor,t)},applyBinding=(e,t)=>{switch(e.type){case`attr`:applyAttrBinding(e,t);break;case`directive`:applyDirectiveBinding(e,t);break;case`event`:applyEventBinding(e,t);break;case`html`:applyHtmlBinding(e,t);break;case`model`:applyModelBinding(e,t);break;case`prop`:applyPropBinding(e,t);break;case`ref`:applyRefBinding(e,t)}},createAttrBindingFromValue=(e,n,r,a)=>O(a)?{el:e,live:!0,mode:n,name:r,signal:a.source,type:`attr`}:typeof a==`function`?{el:e,mode:n,name:r,signal:t(a),type:`attr`}:i(a)?{el:e,mode:n,name:r,signal:a,type:`attr`}:{el:e,mode:n,name:r,type:`attr`,value:a},resolveStaticText=e=>e==null?``:String(e),L={ATTR:`attr`,BOOL_ATTR:`boolAttr`,EVENT:`event`,NODE:`node`,PROP:`prop`,REF:`ref`},R={capture:!0,once:!0,prevent:!0,stop:!0},parseEventModifiers=(e,t)=>{if(t.length===0)return;let n={};for(let r of t){if(!(r in R))throw new OreApiError(s.eventModifierUnknown(e,r));n[r]=!0}return n},z=/\s+@([a-zA-Z_][-a-zA-Z0-9_.-]*)\s*=\s*["']?$/,B=/\s+ref\s*=\s*["']?$/,V=/\s+\?([a-zA-Z_][-a-zA-Z0-9_]*)\s*=\s*["']?$/,H=/\s+\.([a-zA-Z_][-a-zA-Z0-9_]*)\s*=\s*["']?$/,U=/\s+([a-zA-Z_][-a-zA-Z0-9_]*)\s*=\s*["']?$/,detectSlot=e=>{let t;if(t=z.exec(e)){let n=e.slice(0,-t[0].length),[r,...i]=t[1].split(`.`);return{eventModifiers:parseEventModifiers(r,i),kind:L.EVENT,name:r,prefix:n}}if(t=B.exec(e))return{kind:L.REF,prefix:e.slice(0,-t[0].length)};if(t=V.exec(e))return{kind:L.BOOL_ATTR,name:t[1],prefix:e.slice(0,-t[0].length)};if(t=H.exec(e)){let n=t[1];if(n===`__proto__`||n===`constructor`||n===`prototype`)throw new OreApiError(s.propBindingForbiddenName(n));return{kind:L.PROP,name:n,prefix:e.slice(0,-t[0].length)}}if(t=U.exec(e))return{kind:L.ATTR,name:t[1],prefix:e.slice(0,-t[0].length)};let n=e.lastIndexOf(`<`);if(n>e.lastIndexOf(`>`)&&e[n+1]!==`/`)throw new OreApiError(s.templateInterpolationInTag);return{kind:L.NODE,prefix:e}},W=new WeakMap,G=/[@?]?[a-zA-Z_][-a-zA-Z0-9_.]*\s*=\s*$/,normalizeTemplateStrings=e=>{let t=Array.from(e),n=!1;for(let e=0;e<t.length-1;e++){let r=t[e],i=r[r.length-1];for(let e of r)e===`<`?n=!0:e===`>`&&(n=!1);if((i===`"`||i===`'`)&&n&&G.test(r.slice(0,-1))){t[e]=r.slice(0,-1);let n=t[e+1];n.startsWith(i)&&(t[e+1]=n.slice(1))}}return t},K=`data-ore-b`,q=/^ore:(\d+)$/,walkNode=(e,t,n,r)=>{if(e.nodeType===Node.ELEMENT_NODE){let r=e,i=r.getAttribute(K);i!==null&&(n.set(Number(i),[...t]),r.removeAttribute(K))}else if(e.nodeType===Node.COMMENT_NODE){let n=e.nodeValue,i=n===null?null:q.exec(n);i&&r.set(Number(i[1]),[...t])}let i=e.childNodes;for(let e=0;e<i.length;e++)walkNode(i[e],[...t,e],n,r)},buildStaticTemplate=e=>{let t=normalizeTemplateStrings(e),n=``,r,i=0,a=0,o=[];for(let e=0;e<t.length-1;e++){let s=t[e],c=detectSlot(s);if(c.kind===L.NODE)n+=`${c.prefix}<!--ore:${a}-->`,o.push({commentId:a,kind:L.NODE}),a++,r=void 0;else{r===void 0||c.prefix.lastIndexOf(`<`)>c.prefix.lastIndexOf(`>`)?(r=i++,n+=`${c.prefix} ${K}="${r}"`):n+=c.prefix;let e=c.kind===L.BOOL_ATTR?`bool`:c.kind===L.ATTR?`attr`:void 0;o.push({elementId:r,eventModifiers:c.eventModifiers,kind:c.kind,mode:e,name:c.name})}}n+=t[t.length-1]??``;let s=document.createElement(`template`);s.innerHTML=n;let c=new Map,l=new Map,u=s.content.childNodes;for(let e=0;e<u.length;e++)walkNode(u[e],[e],c,l);return{commentPaths:l,element:s,elementPaths:c,slots:o}},getStaticTemplate=e=>{let t=W.get(e);return t||(t=buildStaticTemplate(e),W.set(e,t)),t},followPath=(e,t)=>{let n=e;for(let e of t)n=n.childNodes[e];return n},J="html`...`: node-slot comment anchor has no parent node",toHtmlValues=e=>Array.isArray(e)?e:[e],embedStaticResult=(e,t,n)=>{let r=t.parentNode;for(invariant(r,J);e.fragment.firstChild;)r.insertBefore(e.fragment.firstChild,t);n.push(e.apply.bind(e))},compileTemplate=(e,n)=>{let r=getStaticTemplate(e),a=r.element.content.cloneNode(!0),o=[],c=[],l=r.slots.map((e,t)=>{let i=n[t];if(e.kind===L.NODE){let t=e.commentId===void 0?void 0:r.commentPaths.get(e.commentId);return invariant(t,`compiled template is missing a comment path for node slot ${e.commentId}`),{comment:followPath(a,t),slot:e,value:i}}let o=e.elementId===void 0?void 0:r.elementPaths.get(e.elementId);return invariant(o,`compiled template is missing an element path for slot ${e.elementId}`),{el:followPath(a,o),slot:e,value:i}});for(let{comment:e,el:n,slot:r,value:a}of l){if(r.kind===L.NODE){let n=e;if(invariant(n,`compiled template produced a node slot without a comment anchor`),w(a)){o.push({anchor:n,directive:a,type:`directive`});continue}if(E(a)){embedStaticResult(a,n,c),n.remove();continue}if(typeof a==`function`||i(a)){let e=t(typeof a==`function`?()=>toHtmlValues(a()):()=>toHtmlValues(a.value));o.push({anchor:n,signal:e,type:`html`});continue}if(Array.isArray(a)){for(let e of a)if(E(e))embedStaticResult(e,n,c);else{let t=n.parentNode;invariant(t,J),t.insertBefore(document.createTextNode(resolveStaticText(e)),n)}n.remove();continue}n.replaceWith(document.createTextNode(resolveStaticText(a)));continue}if(invariant(n,`compiled template produced an element slot without an element`),r.kind===L.EVENT){let e=r.name;if(invariant(e,`compiled template produced an event slot without an event name`),typeof a==`function`)o.push({el:n,handler:a,modifiers:r.eventModifiers,name:e,type:`event`});else if(i(a)){let t=a,handler=e=>{let n=t.value;typeof n==`function`&&n(e)};o.push({el:n,handler,modifiers:r.eventModifiers,name:e,type:`event`})}continue}if(r.kind===L.PROP){let e=r.name;invariant(e,`compiled template produced a prop slot without a property name`),typeof a==`function`?o.push({el:n,name:e,signal:t(a),type:`prop`}):i(a)?o.push({el:n,name:e,signal:a,type:`prop`}):o.push({el:n,name:e,type:`prop`,value:a});continue}if(r.kind===L.REF){a&&o.push({el:n,ref:a,type:`ref`});continue}if(invariant(r.name,`compiled template produced an attr slot without an attribute name`),A(a)){if(r.mode!==`attr`)throw new OreApiError(s.modelRequiresValueBinding(r.name));o.push({el:n,event:a.event??modelDefaultEvent(n),get:a.get??modelDefaultGet,signal:a.source,type:`model`});continue}o.push(createAttrBindingFromValue(n,r.mode??`attr`,r.name,a))}return createHtmlResult(a,e=>{for(let t of o)applyBinding(t,e);for(let t of c)t(e)})},html=(e,...t)=>compileTemplate(e,t),Y={bubbles:!0,cancelable:!0,composed:!0},useEmit=()=>{let e=getHost();return((t,...n)=>{let r=n.length>0?{...Y,detail:n[0]}:Y;return e.dispatchEvent(new CustomEvent(String(t),r))})},X=0,Z=Math.random().toString(36).slice(2,6),createId=(e=`id`)=>`${e}-${Z}${++X}`;export{OreApiError,OreError,OreInternalError,OreLifecycleError,bind,classMap,createContext,createId,css,define,each,getHost,html,inject,injectStrict,live,model,onCleanup,onElement,onEvent,onFormReset,onMounted,g as prop,provide,ref,styleMap,unsafeHtml,useEmit,useField,useSlots,watchEffect,when};
|
|
1
|
+
import { batch as e, computed as t, createScope as n, effect as r, isReactive as i, signal as a, untrack as o } from "@vielzeug/ripple";
|
|
2
|
+
//#endregion
|
|
3
|
+
//#region src/errors.ts
|
|
4
|
+
var OreError = class extends Error {
|
|
5
|
+
constructor(e, t) {
|
|
6
|
+
super(e, t), this.name = new.target.name, Object.setPrototypeOf(this, new.target.prototype);
|
|
7
|
+
}
|
|
8
|
+
}, OreApiError = class extends OreError {}, OreInternalError = class extends OreError {}, OreLifecycleError = class extends OreError {
|
|
9
|
+
component;
|
|
10
|
+
phase;
|
|
11
|
+
constructor(e, t) {
|
|
12
|
+
super(e, { cause: t.cause }), this.component = t.component, this.phase = t.phase;
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
function reportRuntimeError(e, t) {
|
|
16
|
+
`${e.component}${e.phase}`, e.cause, t.dispatchEvent(new CustomEvent("ore:error", {
|
|
17
|
+
bubbles: !0,
|
|
18
|
+
composed: !0,
|
|
19
|
+
detail: e
|
|
20
|
+
}));
|
|
21
|
+
}
|
|
22
|
+
var s = {
|
|
23
|
+
asyncSetupUnsupported: "setup() must return an HTMLResult or null; use reactive state for asynchronous work",
|
|
24
|
+
defineDuplicate: (e) => `define('${e}') called twice: custom element already registered`,
|
|
25
|
+
defineFieldRequiresFormAssociated: (e) => `useField() requires define('${e}', { formAssociated: true })`,
|
|
26
|
+
defineRequiresTag: "define() requires a tag name",
|
|
27
|
+
eachDuplicateKey: (e, t) => `each() received duplicate key "${e}" at index ${t}`,
|
|
28
|
+
eventModifierUnknown: (e, t) => `@${e}.${t}: unknown event modifier "${t}". Supported: .stop, .prevent, .once, .capture`,
|
|
29
|
+
injectStrictFailed: (e, t) => `injectStrict() could not resolve key "${e}" in <${t}>`,
|
|
30
|
+
invariantViolated: (e) => `invariant violated: ${e}`,
|
|
31
|
+
lifecycleOutsideSetup: "Lifecycle hooks must be called during component setup",
|
|
32
|
+
listenNullTarget: (e) => `listen() called with a null/undefined target for event "${e}": listener not attached`,
|
|
33
|
+
modelRequiresValueBinding: (e) => `model(): "${e}" must be a plain value/checked attribute binding, not a boolean attribute. Bind it as ${e}=\${model(sig)}, not ?${e}=\${model(sig)}.`,
|
|
34
|
+
propBindingForbiddenName: (e) => `html\`...\`: ".${e}" is a forbidden property-binding name (prototype pollution guard)`,
|
|
35
|
+
propInvalidReflect: "Structured props cannot use reflect:true: use prop.json() with reflect:false",
|
|
36
|
+
templateInterpolationInTag: "html`...`: interpolations inside a tag must be named attributes, boolean attributes, events, or refs",
|
|
37
|
+
useFieldAlreadyCalled: (e) => `useField() was already called on <${e}>. Call it only once per component.`,
|
|
38
|
+
validationFailed: (e, t) => `Validation failed for <${e}>:\n${t.join("\n")}`
|
|
39
|
+
};
|
|
40
|
+
function invariant(e, t) {
|
|
41
|
+
if (!e) throw new OreInternalError(s.invariantViolated(t));
|
|
42
|
+
}
|
|
43
|
+
//#endregion
|
|
44
|
+
//#region src/utils/dom.ts
|
|
45
|
+
var resolveMaybeReactive = (e) => typeof e == "function" ? e() : i(e) ? e.value : e, c = /[;{}]/g, sanitizeCssToken = (e) => e.replace(c, ""), runAll = (e) => {
|
|
46
|
+
for (let t = e.length - 1; t >= 0; t--) e[t]?.();
|
|
47
|
+
}, removeNodes = (e) => {
|
|
48
|
+
for (let t of e) t.remove();
|
|
49
|
+
}, createReplaceableSlot = () => {
|
|
50
|
+
let e = [], t = [];
|
|
51
|
+
return {
|
|
52
|
+
clear() {
|
|
53
|
+
runAll(t), removeNodes(e), t = [], e = [];
|
|
54
|
+
},
|
|
55
|
+
get nodes() {
|
|
56
|
+
return e;
|
|
57
|
+
},
|
|
58
|
+
registerCleanup(e) {
|
|
59
|
+
t.push(e);
|
|
60
|
+
},
|
|
61
|
+
setNodes(t) {
|
|
62
|
+
e = t;
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
}, l = /* @__PURE__ */ new Set([
|
|
66
|
+
"action",
|
|
67
|
+
"cite",
|
|
68
|
+
"codebase",
|
|
69
|
+
"data",
|
|
70
|
+
"formaction",
|
|
71
|
+
"href",
|
|
72
|
+
"manifest",
|
|
73
|
+
"ping",
|
|
74
|
+
"poster",
|
|
75
|
+
"src",
|
|
76
|
+
"xlink:href"
|
|
77
|
+
]), u = /^\s*(?:(?:javascript|vbscript|blob):|data:(?:[^,]*\/(?:html|svg\+xml)|application\/(?:xhtml|xml)))/i, setAttr = (e, t, n) => {
|
|
78
|
+
let r = t.toLowerCase();
|
|
79
|
+
if (/^on[a-z]/i.test(t)) {
|
|
80
|
+
`${t}${t.slice(2)}`, e.removeAttribute(t);
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
if (r === "srcdoc" || n == null || n === !1) {
|
|
84
|
+
e.removeAttribute(t);
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
let i = n === !0 ? "true" : String(n);
|
|
88
|
+
l.has(r) && u.test(i) ? (`${t}`, e.removeAttribute(t)) : e.setAttribute(t, i);
|
|
89
|
+
}, listen = (e, t, n, r) => {
|
|
90
|
+
if (!e) return s.listenNullTarget(t), () => {};
|
|
91
|
+
let i = n;
|
|
92
|
+
return e.addEventListener(t, i, r), () => e.removeEventListener(t, i, r);
|
|
93
|
+
}, toKebab = (e) => e.replace(/[A-Z]/g, (e) => `-${e.toLowerCase()}`), cssDeclarationName = (e) => sanitizeCssToken(e.startsWith("--") ? e : toKebab(e)), cssDeclarationValue = (e) => {
|
|
94
|
+
let t = resolveMaybeReactive(e);
|
|
95
|
+
return t == null || t === !1 ? "" : sanitizeCssToken(String(t));
|
|
96
|
+
}, resolveClassTokens = (e) => {
|
|
97
|
+
let t = /* @__PURE__ */ new Set();
|
|
98
|
+
for (let [n, r] of Object.entries(e)) {
|
|
99
|
+
if (!resolveMaybeReactive(r)) continue;
|
|
100
|
+
let e = n.replace(/\s+/g, "");
|
|
101
|
+
e && t.add(e);
|
|
102
|
+
}
|
|
103
|
+
return t;
|
|
104
|
+
}, isStructuredValue = (e) => Array.isArray(e) || typeof e == "object" && !!e, d = null, createRuntimeContext = (e) => ({
|
|
105
|
+
element: e,
|
|
106
|
+
formResetCallbacks: [],
|
|
107
|
+
mountCallbacks: []
|
|
108
|
+
}), f = 0, beginPendingWork = () => {
|
|
109
|
+
f++;
|
|
110
|
+
let e = !1;
|
|
111
|
+
return () => {
|
|
112
|
+
e || (e = !0, f--);
|
|
113
|
+
};
|
|
114
|
+
}, runWithContext = (e, t) => {
|
|
115
|
+
let n = d;
|
|
116
|
+
d = e;
|
|
117
|
+
try {
|
|
118
|
+
return t();
|
|
119
|
+
} finally {
|
|
120
|
+
d = n;
|
|
121
|
+
}
|
|
122
|
+
}, requireSetupContext = (e) => {
|
|
123
|
+
if (d) return d;
|
|
124
|
+
throw new OreApiError(`${e}: ${s.lifecycleOutsideSetup}`);
|
|
125
|
+
}, getHost = () => requireSetupContext("getHost").element, tryRegisterCleanup = (e) => d ? (r(() => e), !0) : !1, onCleanup = (e) => {
|
|
126
|
+
if (!tryRegisterCleanup(e)) throw new OreApiError(`onCleanup: ${s.lifecycleOutsideSetup}`);
|
|
127
|
+
}, onMounted = (e) => {
|
|
128
|
+
requireSetupContext("onMounted").mountCallbacks.push(e);
|
|
129
|
+
}, onFormReset = (e) => {
|
|
130
|
+
requireSetupContext("onFormReset").formResetCallbacks.push(e);
|
|
131
|
+
}, watchEffect = (e) => {
|
|
132
|
+
let t = r(e), stop = () => t.dispose();
|
|
133
|
+
return tryRegisterCleanup(stop), stop;
|
|
134
|
+
};
|
|
135
|
+
function onEvent(e, t, n, r) {
|
|
136
|
+
if (requireSetupContext("onEvent"), !e) return;
|
|
137
|
+
let i = listen(e, t, n, r);
|
|
138
|
+
tryRegisterCleanup(i) || i();
|
|
139
|
+
}
|
|
140
|
+
var onElement = (e, t) => watchEffect(() => {
|
|
141
|
+
let n = e.value;
|
|
142
|
+
if (n) return t(n);
|
|
143
|
+
}), p = /* @__PURE__ */ new WeakMap(), buildAncestorChain = (e) => {
|
|
144
|
+
let t = [], n = e;
|
|
145
|
+
for (; n;) n instanceof HTMLElement && t.push(n), n = n.parentNode ?? (n instanceof ShadowRoot ? n.host : null);
|
|
146
|
+
return t;
|
|
147
|
+
}, provideOnElement = (e, t, n) => {
|
|
148
|
+
let r = p.get(e) ?? /* @__PURE__ */ new Map();
|
|
149
|
+
r.has(t) && `${e.localName}`, r.set(t, n), p.set(e, r);
|
|
150
|
+
}, provide = (e, t) => {
|
|
151
|
+
let n = requireSetupContext("provide").element;
|
|
152
|
+
provideOnElement(n, e, t), onCleanup(() => {
|
|
153
|
+
let t = p.get(n);
|
|
154
|
+
t && (t.delete(e), t.size === 0 && p.delete(n));
|
|
155
|
+
});
|
|
156
|
+
}, m = Symbol("inject.not_found"), h = /* @__PURE__ */ new WeakMap(), walkAndFind = (e, t) => {
|
|
157
|
+
let n = buildAncestorChain(e);
|
|
158
|
+
for (let e of n) {
|
|
159
|
+
let n = p.get(e);
|
|
160
|
+
if (n?.has(t)) return n.get(t);
|
|
161
|
+
}
|
|
162
|
+
return m;
|
|
163
|
+
}, lookup = (e, t) => {
|
|
164
|
+
let n = h.get(e);
|
|
165
|
+
n || (n = /* @__PURE__ */ new Map(), h.set(e, n));
|
|
166
|
+
let r = t;
|
|
167
|
+
return n.has(r) || n.set(r, walkAndFind(e.element, t)), n.get(r);
|
|
168
|
+
};
|
|
169
|
+
function inject(e, ...t) {
|
|
170
|
+
let n = lookup(requireSetupContext("inject"), e);
|
|
171
|
+
return n === m ? t.length > 0 ? t[0] : void 0 : n;
|
|
172
|
+
}
|
|
173
|
+
var injectStrict = (e) => {
|
|
174
|
+
let t = requireSetupContext("injectStrict"), n = lookup(t, e);
|
|
175
|
+
if (n !== m) return n;
|
|
176
|
+
throw new OreApiError(s.injectStrictFailed(String(e), t.element.localName));
|
|
177
|
+
};
|
|
178
|
+
function createContext(e) {
|
|
179
|
+
return Symbol(e);
|
|
180
|
+
}
|
|
181
|
+
//#endregion
|
|
182
|
+
//#region src/props.ts
|
|
183
|
+
function _jsOnlyProp(e) {
|
|
184
|
+
return {
|
|
185
|
+
default: e,
|
|
186
|
+
parse: () => e,
|
|
187
|
+
reflect: !1
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
function _numberProp(e) {
|
|
191
|
+
let t = e;
|
|
192
|
+
return {
|
|
193
|
+
default: t,
|
|
194
|
+
parse: (e) => {
|
|
195
|
+
if (e == null) return t;
|
|
196
|
+
let n = Number(e);
|
|
197
|
+
return Number.isNaN(n) ? (`${e}${String(t)}`, t) : n;
|
|
198
|
+
},
|
|
199
|
+
reflect: !0
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
function _stringProp(e) {
|
|
203
|
+
return {
|
|
204
|
+
default: e,
|
|
205
|
+
parse: (t) => t ?? e,
|
|
206
|
+
reflect: !0
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
var g = {
|
|
210
|
+
bool(e) {
|
|
211
|
+
return {
|
|
212
|
+
default: e ?? !1,
|
|
213
|
+
parse: (e) => e !== null && e !== "false",
|
|
214
|
+
reflect: !0
|
|
215
|
+
};
|
|
216
|
+
},
|
|
217
|
+
data(e) {
|
|
218
|
+
return _jsOnlyProp(e);
|
|
219
|
+
},
|
|
220
|
+
json(e) {
|
|
221
|
+
return {
|
|
222
|
+
default: e,
|
|
223
|
+
parse: (t) => {
|
|
224
|
+
if (t == null || t === "") return e;
|
|
225
|
+
try {
|
|
226
|
+
return JSON.parse(t);
|
|
227
|
+
} catch {
|
|
228
|
+
return e;
|
|
229
|
+
}
|
|
230
|
+
},
|
|
231
|
+
reflect: !1
|
|
232
|
+
};
|
|
233
|
+
},
|
|
234
|
+
number: _numberProp,
|
|
235
|
+
oneOf(e, t) {
|
|
236
|
+
return {
|
|
237
|
+
default: t,
|
|
238
|
+
parse: (n) => {
|
|
239
|
+
if (n == null) return t;
|
|
240
|
+
let r = e, i = r.indexOf(n);
|
|
241
|
+
if (i !== -1) return e[i];
|
|
242
|
+
let a = Number(n);
|
|
243
|
+
if (!Number.isNaN(a)) {
|
|
244
|
+
let t = r.indexOf(a);
|
|
245
|
+
if (t !== -1) return e[t];
|
|
246
|
+
}
|
|
247
|
+
return t;
|
|
248
|
+
},
|
|
249
|
+
reflect: !0
|
|
250
|
+
};
|
|
251
|
+
},
|
|
252
|
+
string: _stringProp
|
|
253
|
+
}, isPropDef = (e) => typeof e == "object" && !!e && "default" in e && "parse" in e;
|
|
254
|
+
function normalizePropDefinition(e, t) {
|
|
255
|
+
if (!isPropDef(e)) throw new OreApiError(`Prop "${t}" must use a prop.* helper (string/number/bool/json/oneOf). Received: ${typeof e}`);
|
|
256
|
+
let n = e;
|
|
257
|
+
if (!n.parse) throw new OreApiError(`Prop "${t}" must have a parse function. Use prop.* helpers.`);
|
|
258
|
+
let r = n.reflect ?? !1;
|
|
259
|
+
if (r && isStructuredValue(n.default)) throw new OreApiError(`Prop "${t}": ${s.propInvalidReflect}`);
|
|
260
|
+
return {
|
|
261
|
+
...n,
|
|
262
|
+
reflect: r
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
function validatePropDefs(e) {
|
|
266
|
+
let t = [];
|
|
267
|
+
for (let [n, r] of Object.entries(e)) try {
|
|
268
|
+
normalizePropDefinition(r, n);
|
|
269
|
+
} catch (e) {
|
|
270
|
+
t.push(e instanceof Error ? e.message : String(e));
|
|
271
|
+
}
|
|
272
|
+
return t;
|
|
273
|
+
}
|
|
274
|
+
var _ = /* @__PURE__ */ new WeakMap(), getPropMeta = (e, t) => _.get(e)?.get(t), coerceIncoming = (e, t) => typeof e == "string" ? t(e) : e, registerProp = (e, t, n, r) => {
|
|
275
|
+
let i = _.get(e);
|
|
276
|
+
i || (i = /* @__PURE__ */ new Map(), _.set(e, i));
|
|
277
|
+
let { default: o, parse: s, reflect: c = !1 } = r, l = a(o), u = i.get(n), d = Object.hasOwn(e, t), f = d ? e[t] : void 0, p = {
|
|
278
|
+
parse: s,
|
|
279
|
+
reflect: c,
|
|
280
|
+
signal: l
|
|
281
|
+
};
|
|
282
|
+
return u ? l.value = u.signal.peek() : d ? (delete e[t], l.value = coerceIncoming(f, s)) : e.hasAttribute(n) && (l.value = s(e.getAttribute(n))), i.set(n, p), Object.defineProperty(e, t, {
|
|
283
|
+
configurable: !0,
|
|
284
|
+
enumerable: !0,
|
|
285
|
+
get: () => l.value,
|
|
286
|
+
set: (e) => {
|
|
287
|
+
l.value = coerceIncoming(e, s);
|
|
288
|
+
}
|
|
289
|
+
}), c && watchEffect(() => {
|
|
290
|
+
let t = l.value;
|
|
291
|
+
t == null ? e.removeAttribute(n) : typeof t == "boolean" ? e.toggleAttribute(n, t) : setAttr(e, n, t);
|
|
292
|
+
}), l;
|
|
293
|
+
};
|
|
294
|
+
function createProps(e, t) {
|
|
295
|
+
let n = {};
|
|
296
|
+
for (let [r, i] of Object.entries(t)) n[r] = registerProp(e, r, toKebab(r), i);
|
|
297
|
+
return n;
|
|
298
|
+
}
|
|
299
|
+
//#endregion
|
|
300
|
+
//#region src/utils/brand.ts
|
|
301
|
+
var makeBrand = (e) => {
|
|
302
|
+
let t = Symbol.for(e), stamp = (e) => Object.assign(e, { [t]: !0 }), is = (e) => typeof e == "object" && !!e && t in e;
|
|
303
|
+
return {
|
|
304
|
+
is,
|
|
305
|
+
stamp
|
|
306
|
+
};
|
|
307
|
+
}, v = makeBrand("ore:css-result"), y = v.is, cssResultToString = function() {
|
|
308
|
+
return this.content;
|
|
309
|
+
}, css = (e, ...t) => {
|
|
310
|
+
let n = "";
|
|
311
|
+
for (let r = 0; r < e.length; r++) if (n += e[r], r < t.length) {
|
|
312
|
+
let e = t[r];
|
|
313
|
+
n += y(e) ? e.content : String(e);
|
|
314
|
+
}
|
|
315
|
+
return v.stamp({
|
|
316
|
+
content: n.trim(),
|
|
317
|
+
toString: cssResultToString
|
|
318
|
+
});
|
|
319
|
+
}, b = /* @__PURE__ */ new Map(), x = 256, loadStylesheet = (e) => {
|
|
320
|
+
if (e instanceof CSSStyleSheet) return e;
|
|
321
|
+
let t = typeof e == "string" ? e : e.content, n = b.get(t);
|
|
322
|
+
if (n) return b.delete(t), b.set(t, n), n;
|
|
323
|
+
let r = new CSSStyleSheet();
|
|
324
|
+
try {
|
|
325
|
+
r.replaceSync(t);
|
|
326
|
+
} catch {
|
|
327
|
+
return r;
|
|
328
|
+
}
|
|
329
|
+
if (b.set(t, r), b.size > x) {
|
|
330
|
+
let e = b.keys().next().value;
|
|
331
|
+
e !== void 0 && b.delete(e);
|
|
332
|
+
}
|
|
333
|
+
return r;
|
|
334
|
+
}, S = {
|
|
335
|
+
SETUP_DONE: "setup_done",
|
|
336
|
+
SETUP_RUNNING: "setup_running",
|
|
337
|
+
UNINITIALIZED: "uninitialized",
|
|
338
|
+
UNMOUNTED: "unmounted"
|
|
339
|
+
}, createComponentState = () => ({
|
|
340
|
+
formResetCallbacks: [],
|
|
341
|
+
generation: 0,
|
|
342
|
+
mountCallbacks: [],
|
|
343
|
+
phase: S.UNINITIALIZED,
|
|
344
|
+
scope: n(),
|
|
345
|
+
templateResult: null
|
|
346
|
+
}), isPromiseLike = (e) => (typeof e == "object" || typeof e == "function") && e !== null && "then" in e && typeof e.then == "function", BaseElement = class extends HTMLElement {
|
|
347
|
+
static _definition;
|
|
348
|
+
static _normalizedPropDefs;
|
|
349
|
+
static formAssociated = !1;
|
|
350
|
+
static observedAttributes = [];
|
|
351
|
+
_component;
|
|
352
|
+
constructor() {
|
|
353
|
+
super();
|
|
354
|
+
let e = this.constructor._definition;
|
|
355
|
+
e?.shadow !== !1 && this.attachShadow({
|
|
356
|
+
mode: "open",
|
|
357
|
+
...e?.shadow
|
|
358
|
+
}), this._component = createComponentState();
|
|
359
|
+
}
|
|
360
|
+
connectedCallback() {
|
|
361
|
+
o(() => {
|
|
362
|
+
this._component.phase === S.UNINITIALIZED && this._runSetup(), this._init();
|
|
363
|
+
});
|
|
364
|
+
}
|
|
365
|
+
attributeChangedCallback(e, t, n) {
|
|
366
|
+
if (t === n) return;
|
|
367
|
+
let r = getPropMeta(this, e);
|
|
368
|
+
if (!r) return;
|
|
369
|
+
let i = r.parse(n);
|
|
370
|
+
Object.is(o(() => r.signal.value), i) || (r.signal.value = i);
|
|
371
|
+
}
|
|
372
|
+
disconnectedCallback() {
|
|
373
|
+
this._component.generation++, this._component.phase = S.UNMOUNTED, this._resetSetupState();
|
|
374
|
+
}
|
|
375
|
+
_resetSetupState() {
|
|
376
|
+
this._component.scope.dispose(), this._component.formResetCallbacks = [], this._component.mountCallbacks = [], this._component.phase = S.UNINITIALIZED, this._component.scope = n(), this._component.templateResult = null;
|
|
377
|
+
}
|
|
378
|
+
formResetCallback() {
|
|
379
|
+
for (let e of this._component.formResetCallbacks) try {
|
|
380
|
+
e();
|
|
381
|
+
} catch (e) {
|
|
382
|
+
this._reportLifecycleError(e, "form-reset");
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
_reportLifecycleError(e, t) {
|
|
386
|
+
let n = e instanceof Error ? e : Error(String(e));
|
|
387
|
+
reportRuntimeError(new OreLifecycleError(`<${this.localName}> failed during ${this._component.phase} (${t})`, {
|
|
388
|
+
cause: n,
|
|
389
|
+
component: this.localName,
|
|
390
|
+
phase: t
|
|
391
|
+
}), this);
|
|
392
|
+
}
|
|
393
|
+
_runSetup() {
|
|
394
|
+
this._component.phase = S.SETUP_RUNNING;
|
|
395
|
+
let e = this.constructor._definition, t = this.constructor._normalizedPropDefs, n = createRuntimeContext(this);
|
|
396
|
+
try {
|
|
397
|
+
let r;
|
|
398
|
+
if (this._component.scope.run(() => {
|
|
399
|
+
r = runWithContext(n, () => {
|
|
400
|
+
let n = t ? createProps(this, t) : {};
|
|
401
|
+
return e.setup(n);
|
|
402
|
+
});
|
|
403
|
+
}), this._component.mountCallbacks.push(...n.mountCallbacks), this._component.formResetCallbacks.push(...n.formResetCallbacks), isPromiseLike(r)) throw new OreApiError(s.asyncSetupUnsupported);
|
|
404
|
+
this._component.templateResult = r ?? null, this._component.phase = S.SETUP_DONE;
|
|
405
|
+
} catch (e) {
|
|
406
|
+
throw this._reportLifecycleError(e, "setup"), this._resetSetupState(), e;
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
_isStale(e) {
|
|
410
|
+
return this._component.generation !== e || !this.isConnected;
|
|
411
|
+
}
|
|
412
|
+
_applyResult(e) {
|
|
413
|
+
if (!e) return;
|
|
414
|
+
let t = this.shadowRoot ?? this, n = createRuntimeContext(this);
|
|
415
|
+
t.replaceChildren(), this._component.scope.run(() => {
|
|
416
|
+
runWithContext(n, () => {
|
|
417
|
+
e.mount(t, null, onCleanup);
|
|
418
|
+
});
|
|
419
|
+
});
|
|
420
|
+
}
|
|
421
|
+
_init() {
|
|
422
|
+
this._applyStyles(), this._mountTemplate(), this._component.phase === S.SETUP_DONE && this._scheduleMountCallbacks();
|
|
423
|
+
}
|
|
424
|
+
_applyStyles() {
|
|
425
|
+
let e = this.constructor._definition;
|
|
426
|
+
this.shadowRoot && e?.styles?.length && (this.shadowRoot.adoptedStyleSheets = e.styles.map(loadStylesheet));
|
|
427
|
+
}
|
|
428
|
+
_mountTemplate() {
|
|
429
|
+
let e = this._component.templateResult;
|
|
430
|
+
e && this._applyResult(e);
|
|
431
|
+
}
|
|
432
|
+
_scheduleMountCallbacks() {
|
|
433
|
+
if (this._component.mountCallbacks.length === 0) return;
|
|
434
|
+
let e = this._component.generation, t = beginPendingWork();
|
|
435
|
+
queueMicrotask(() => {
|
|
436
|
+
try {
|
|
437
|
+
if (this._isStale(e)) return;
|
|
438
|
+
let t = this._component.mountCallbacks.splice(0);
|
|
439
|
+
for (let e = 0; e < t.length; e++) {
|
|
440
|
+
let n = t[e];
|
|
441
|
+
try {
|
|
442
|
+
let e = createRuntimeContext(this);
|
|
443
|
+
this._component.scope.run(() => {
|
|
444
|
+
runWithContext(e, () => {
|
|
445
|
+
let e = n();
|
|
446
|
+
typeof e == "function" && onCleanup(e);
|
|
447
|
+
});
|
|
448
|
+
}), e.mountCallbacks.length > 0 && t.push(...e.mountCallbacks), e.formResetCallbacks.length > 0 && this._component.formResetCallbacks.push(...e.formResetCallbacks);
|
|
449
|
+
} catch (e) {
|
|
450
|
+
this._reportLifecycleError(e, "mounted");
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
} finally {
|
|
454
|
+
t();
|
|
455
|
+
}
|
|
456
|
+
});
|
|
457
|
+
}
|
|
458
|
+
};
|
|
459
|
+
//#endregion
|
|
460
|
+
//#region src/define.ts
|
|
461
|
+
function define(e, t) {
|
|
462
|
+
if (!e) throw new OreApiError(s.defineRequiresTag);
|
|
463
|
+
if (customElements.get(e)) throw new OreApiError(s.defineDuplicate(e));
|
|
464
|
+
let { props: n } = t, r = (() => {
|
|
465
|
+
if (!n) return;
|
|
466
|
+
let t = validatePropDefs(n);
|
|
467
|
+
if (t.length > 0) throw new OreApiError(s.validationFailed(e, t));
|
|
468
|
+
let r = {};
|
|
469
|
+
for (let [e, t] of Object.entries(n)) r[e] = normalizePropDefinition(t, e);
|
|
470
|
+
return r;
|
|
471
|
+
})(), i = r ? Object.keys(r).map(toKebab) : [], ComponentClass = class extends BaseElement {
|
|
472
|
+
static _definition = t;
|
|
473
|
+
static _normalizedPropDefs = r;
|
|
474
|
+
static formAssociated = t.formAssociated ?? !1;
|
|
475
|
+
static observedAttributes = i;
|
|
476
|
+
};
|
|
477
|
+
return Object.defineProperty(ComponentClass, "name", { value: e }), customElements.define(e, ComponentClass), ComponentClass;
|
|
478
|
+
}
|
|
479
|
+
//#endregion
|
|
480
|
+
//#region src/directives/classMap.ts
|
|
481
|
+
var classMap = (e) => t(() => [...resolveClassTokens(e)].join(" "));
|
|
482
|
+
//#endregion
|
|
483
|
+
//#region src/template/result.ts
|
|
484
|
+
function ref() {
|
|
485
|
+
return a(null);
|
|
486
|
+
}
|
|
487
|
+
var C = makeBrand("ore:directive"), createDirectiveResult = (e) => C.stamp({ mount: e }), w = C.is, T = makeBrand("ore:html-result"), E = T.is;
|
|
488
|
+
function createHtmlResult(e, t) {
|
|
489
|
+
let mount = (n, r, i) => {
|
|
490
|
+
let a = Array.from(e.childNodes);
|
|
491
|
+
return n.insertBefore(e, r), t(i), a;
|
|
492
|
+
};
|
|
493
|
+
return T.stamp({
|
|
494
|
+
apply: t,
|
|
495
|
+
fragment: e,
|
|
496
|
+
mount
|
|
497
|
+
});
|
|
498
|
+
}
|
|
499
|
+
//#endregion
|
|
500
|
+
//#region src/directives/each.ts
|
|
501
|
+
var createItem = (e, t, r, i, o) => {
|
|
502
|
+
let s = a(e), c = a(t), l = n(), u = [], d = [];
|
|
503
|
+
return l.run(() => {
|
|
504
|
+
d = r(s, c).mount(i, o, (e) => u.push(e));
|
|
505
|
+
}), {
|
|
506
|
+
cleanups: u,
|
|
507
|
+
data: s,
|
|
508
|
+
index: c,
|
|
509
|
+
nodes: d,
|
|
510
|
+
scope: l
|
|
511
|
+
};
|
|
512
|
+
}, removeItem = (e) => {
|
|
513
|
+
e.scope.dispose(), runAll(e.cleanups), removeNodes(e.nodes);
|
|
514
|
+
}, reconcileItems = (t, n, r, i, a, s, c) => {
|
|
515
|
+
for (let e = 0; e < n.length; e++) {
|
|
516
|
+
let l = r[e];
|
|
517
|
+
if (t.has(l)) continue;
|
|
518
|
+
let u = o(() => createItem(n[e], e, i, a, s));
|
|
519
|
+
c.push(u), t.set(l, u);
|
|
520
|
+
}
|
|
521
|
+
let l = [];
|
|
522
|
+
e(() => {
|
|
523
|
+
for (let e = 0; e < n.length; e++) {
|
|
524
|
+
let i = t.get(r[e]);
|
|
525
|
+
invariant(i, "each() reconcile phase 2 lost an entry created in phase 1"), i.data.value = n[e], i.index.value = e, l.push(i);
|
|
526
|
+
}
|
|
527
|
+
});
|
|
528
|
+
let u = s;
|
|
529
|
+
for (let e = l.length - 1; e >= 0; e--) {
|
|
530
|
+
let t = l[e], n = t.nodes[0], r = t.nodes[t.nodes.length - 1];
|
|
531
|
+
if (n && r !== u.previousSibling) for (let e of t.nodes) a.insertBefore(e, u);
|
|
532
|
+
u = n ?? u;
|
|
533
|
+
}
|
|
534
|
+
let d = new Set(r);
|
|
535
|
+
for (let [e, n] of t) d.has(e) || (removeItem(n), t.delete(e));
|
|
536
|
+
return l;
|
|
537
|
+
}, rollbackCreated = (e, t) => {
|
|
538
|
+
for (let n of t) {
|
|
539
|
+
removeItem(n);
|
|
540
|
+
for (let [t, r] of e) if (r === n) {
|
|
541
|
+
e.delete(t);
|
|
542
|
+
break;
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
}, collectKeys = (e, t) => {
|
|
546
|
+
let n = [], r = /* @__PURE__ */ new Set();
|
|
547
|
+
for (let i = 0; i < e.length; i++) {
|
|
548
|
+
let a = t(e[i], i);
|
|
549
|
+
if (r.has(a)) throw new OreApiError(s.eachDuplicateKey(String(a), i));
|
|
550
|
+
r.add(a), n.push(a);
|
|
551
|
+
}
|
|
552
|
+
return n;
|
|
553
|
+
}, reportEachError = (e, t) => {
|
|
554
|
+
let n = e instanceof Error ? e : Error(String(e));
|
|
555
|
+
reportRuntimeError(new OreLifecycleError(`each() failed to reconcile a list update: ${n.message}`, {
|
|
556
|
+
cause: n,
|
|
557
|
+
component: "each()",
|
|
558
|
+
phase: "each-reconcile"
|
|
559
|
+
}), t);
|
|
560
|
+
};
|
|
561
|
+
function each(e, n, i, s) {
|
|
562
|
+
let c = Array.isArray(e) ? a(e) : typeof e == "function" ? t(e) : e;
|
|
563
|
+
return createDirectiveResult((e, t) => {
|
|
564
|
+
let a = e.parentNode;
|
|
565
|
+
invariant(a, "each() anchor comment has no parent node");
|
|
566
|
+
let l = document.createComment("each/end");
|
|
567
|
+
a.insertBefore(l, e.nextSibling);
|
|
568
|
+
let u = /* @__PURE__ */ new Map(), d = [], f = null, p = [], mountFallback = () => {
|
|
569
|
+
s && (f = s().mount(a, l, (e) => p.push(e)));
|
|
570
|
+
}, clearFallback = () => {
|
|
571
|
+
f && (runAll(p), removeNodes(f), f = null, p = []);
|
|
572
|
+
}, m = r(() => {
|
|
573
|
+
let t = c.value ?? [];
|
|
574
|
+
if (t.length === 0) {
|
|
575
|
+
for (let e of o(() => d)) removeItem(e);
|
|
576
|
+
u = /* @__PURE__ */ new Map(), d = [], f || o(mountFallback);
|
|
577
|
+
return;
|
|
578
|
+
}
|
|
579
|
+
let r;
|
|
580
|
+
try {
|
|
581
|
+
r = o(() => collectKeys(t, n));
|
|
582
|
+
} catch (t) {
|
|
583
|
+
reportEachError(t, e);
|
|
584
|
+
return;
|
|
585
|
+
}
|
|
586
|
+
clearFallback();
|
|
587
|
+
let s = [];
|
|
588
|
+
try {
|
|
589
|
+
d = o(() => reconcileItems(u, t, r, i, a, l, s));
|
|
590
|
+
} catch (t) {
|
|
591
|
+
reportEachError(t, e), o(() => rollbackCreated(u, s));
|
|
592
|
+
}
|
|
593
|
+
});
|
|
594
|
+
t(() => m.dispose()), t(() => {
|
|
595
|
+
clearFallback();
|
|
596
|
+
for (let e of d) removeItem(e);
|
|
597
|
+
l.remove();
|
|
598
|
+
});
|
|
599
|
+
});
|
|
600
|
+
}
|
|
601
|
+
//#endregion
|
|
602
|
+
//#region src/directives/live.ts
|
|
603
|
+
var D = makeBrand("ore:live"), live = (e) => D.stamp({ source: e }), O = D.is, k = makeBrand("ore:model"), A = k.is, modelDefaultGet = (e) => e instanceof HTMLInputElement && (e.type === "checkbox" || e.type === "radio") ? e.checked : e.value, modelDefaultEvent = (e) => e instanceof HTMLInputElement && (e.type === "checkbox" || e.type === "radio") || e instanceof HTMLSelectElement ? "change" : "input", model = (e, t) => k.stamp({
|
|
604
|
+
event: t?.event,
|
|
605
|
+
get: t?.get,
|
|
606
|
+
source: e
|
|
607
|
+
}), styleMap = (e) => t(() => {
|
|
608
|
+
let t = [];
|
|
609
|
+
for (let [n, r] of Object.entries(e)) {
|
|
610
|
+
let e = cssDeclarationValue(r);
|
|
611
|
+
if (!e) continue;
|
|
612
|
+
let i = cssDeclarationName(n);
|
|
613
|
+
i && t.push(`${i}:${e}`);
|
|
614
|
+
}
|
|
615
|
+
return t.join(";");
|
|
616
|
+
}), parseHtml = (e, t, n) => {
|
|
617
|
+
let r = document.createElement("template");
|
|
618
|
+
r.innerHTML = e;
|
|
619
|
+
let i = Array.from(r.content.cloneNode(!0).childNodes);
|
|
620
|
+
for (let e of i) t.insertBefore(e, n);
|
|
621
|
+
return i;
|
|
622
|
+
};
|
|
623
|
+
function unsafeHtml(e) {
|
|
624
|
+
let n = typeof e == "function" ? t(e) : i(e) ? e : null;
|
|
625
|
+
return createDirectiveResult((t, i) => {
|
|
626
|
+
let a = t.parentNode;
|
|
627
|
+
invariant(a, "unsafeHtml() anchor comment has no parent node");
|
|
628
|
+
let o = document.createComment("unsafe-html/end");
|
|
629
|
+
if (a.insertBefore(o, t.nextSibling), n) {
|
|
630
|
+
let e = createReplaceableSlot(), t = r(() => {
|
|
631
|
+
e.clear(), e.setNodes(parseHtml(n.value, a, o));
|
|
632
|
+
});
|
|
633
|
+
i(() => t.dispose()), i(() => {
|
|
634
|
+
e.clear(), o.remove();
|
|
635
|
+
});
|
|
636
|
+
} else parseHtml(e, a, o), i(() => o.remove());
|
|
637
|
+
});
|
|
638
|
+
}
|
|
639
|
+
//#endregion
|
|
640
|
+
//#region src/directives/when.ts
|
|
641
|
+
var j = "when() anchor comment has no parent node";
|
|
642
|
+
function when(e, n, a) {
|
|
643
|
+
return typeof e != "function" && !i(e) ? createDirectiveResult((t, r) => {
|
|
644
|
+
let i = e ? n() : a ? a() : null;
|
|
645
|
+
if (!i || !E(i)) return;
|
|
646
|
+
let o = t.parentNode;
|
|
647
|
+
invariant(o, j);
|
|
648
|
+
let s = i.mount(o, t, r);
|
|
649
|
+
r(() => removeNodes(s));
|
|
650
|
+
}) : createDirectiveResult((i, s) => {
|
|
651
|
+
let c = (typeof e == "function" ? t(e) : null) ?? e, l = i.parentNode;
|
|
652
|
+
invariant(l, j);
|
|
653
|
+
let u = document.createComment("when/end");
|
|
654
|
+
l.insertBefore(u, i.nextSibling);
|
|
655
|
+
let d = createReplaceableSlot(), f = r(() => {
|
|
656
|
+
let e = c.value;
|
|
657
|
+
d.clear();
|
|
658
|
+
let t = e ? n() : a ? a() : null;
|
|
659
|
+
t && E(t) && d.setNodes(o(() => t.mount(l, u, d.registerCleanup)));
|
|
660
|
+
});
|
|
661
|
+
s(() => f.dispose()), s(() => {
|
|
662
|
+
d.clear(), u.remove();
|
|
663
|
+
});
|
|
664
|
+
});
|
|
665
|
+
}
|
|
666
|
+
//#endregion
|
|
667
|
+
//#region src/forms/field.ts
|
|
668
|
+
var M = /* @__PURE__ */ new WeakMap(), N = /* @__PURE__ */ new WeakSet(), useField = (e) => {
|
|
669
|
+
let t = getHost();
|
|
670
|
+
if (!t.constructor.formAssociated) throw new OreApiError(s.defineFieldRequiresFormAssociated(t.localName));
|
|
671
|
+
if (N.has(t)) throw new OreApiError(s.useFieldAlreadyCalled(t.localName));
|
|
672
|
+
let n = M.get(t) ?? t.attachInternals();
|
|
673
|
+
M.set(t, n), N.add(t), onCleanup(() => N.delete(t));
|
|
674
|
+
let r = e.toFormValue ?? ((t) => t == null ? e.emptyStringForNull ? "" : null : t instanceof File || t instanceof FormData ? t : String(t));
|
|
675
|
+
watchEffect(() => {
|
|
676
|
+
n.setFormValue(r(e.value.value));
|
|
677
|
+
});
|
|
678
|
+
let i = e.disabled;
|
|
679
|
+
if (i && "states" in n) {
|
|
680
|
+
let e = n.states;
|
|
681
|
+
watchEffect(() => {
|
|
682
|
+
i.value ? e.add("disabled") : e.delete("disabled");
|
|
683
|
+
});
|
|
684
|
+
}
|
|
685
|
+
e.validity && watchEffect(() => {
|
|
686
|
+
let t = e.validity?.value;
|
|
687
|
+
if (!t) {
|
|
688
|
+
n.setValidity({});
|
|
689
|
+
return;
|
|
690
|
+
}
|
|
691
|
+
let r = Object.values(t.flags).some(Boolean);
|
|
692
|
+
n.setValidity(t.flags, r && !t.message ? "Invalid value." : t.message);
|
|
693
|
+
}), e.onReset && onFormReset(e.onReset);
|
|
694
|
+
let checkValidity = () => n.checkValidity(), reportValidity = () => n.reportValidity(), setCustomValidity = (e) => e ? n.setValidity({ customError: !0 }, e) : n.setValidity({});
|
|
695
|
+
return {
|
|
696
|
+
checkValidity,
|
|
697
|
+
internals: n,
|
|
698
|
+
reportValidity,
|
|
699
|
+
setCustomValidity
|
|
700
|
+
};
|
|
701
|
+
}, normalizeHostAttrKey = (e) => e === "role" || e.startsWith("aria-") ? e : e.startsWith("aria") ? `aria-${e.slice(4).toLowerCase()}` : e, bind = (e, t) => {
|
|
702
|
+
let n = t?.target ?? getHost(), r = [];
|
|
703
|
+
if (e.attr) for (let [t, i] of Object.entries(e.attr)) {
|
|
704
|
+
let e = applyAttribute(n, P(t), i);
|
|
705
|
+
e && r.push(e);
|
|
706
|
+
}
|
|
707
|
+
if (e.class && r.push(applyClassMap(n, e.class)), e.style) for (let [t, i] of Object.entries(e.style)) {
|
|
708
|
+
let e = applyStyle(n, t, i);
|
|
709
|
+
e && r.push(e);
|
|
710
|
+
}
|
|
711
|
+
if (e.on) {
|
|
712
|
+
let { target: i, ...a } = t ?? {};
|
|
713
|
+
for (let t of Object.keys(e.on)) {
|
|
714
|
+
let i = e.on[t];
|
|
715
|
+
i && r.push(listen(n, t, i, a));
|
|
716
|
+
}
|
|
717
|
+
}
|
|
718
|
+
let cleanup = () => {
|
|
719
|
+
for (let e of r) e();
|
|
720
|
+
};
|
|
721
|
+
return tryRegisterCleanup(cleanup), cleanup;
|
|
722
|
+
}, P = normalizeHostAttrKey, applyReactiveBinding = (e, t) => {
|
|
723
|
+
if (typeof e == "function") return watchEffect(() => {
|
|
724
|
+
t(e());
|
|
725
|
+
});
|
|
726
|
+
if (i(e)) return watchEffect(() => {
|
|
727
|
+
t(e.value);
|
|
728
|
+
});
|
|
729
|
+
t(e);
|
|
730
|
+
};
|
|
731
|
+
function applyAttribute(e, t, n) {
|
|
732
|
+
return applyReactiveBinding(n, (n) => setAttr(e, t, n));
|
|
733
|
+
}
|
|
734
|
+
function applyStyle(e, t, n) {
|
|
735
|
+
let r = cssDeclarationName(t);
|
|
736
|
+
if (!r) return;
|
|
737
|
+
let i = !1, setStyle = (t) => {
|
|
738
|
+
let n = cssDeclarationValue(t);
|
|
739
|
+
n ? (i = !0, e.style.setProperty(r, n)) : i && e.style.removeProperty(r);
|
|
740
|
+
};
|
|
741
|
+
return applyReactiveBinding(n, setStyle);
|
|
742
|
+
}
|
|
743
|
+
function applyClassMap(e, t) {
|
|
744
|
+
let n = typeof t == "function" ? t : () => Object.fromEntries([...resolveClassTokens(t)].map((e) => [e, !0])), r = /* @__PURE__ */ new Set();
|
|
745
|
+
return watchEffect(() => {
|
|
746
|
+
let t = /* @__PURE__ */ new Set();
|
|
747
|
+
for (let [i, a] of Object.entries(n())) a && (t.add(i), r.has(i) || e.classList.add(i));
|
|
748
|
+
for (let n of r) t.has(n) || e.classList.remove(n);
|
|
749
|
+
r = t;
|
|
750
|
+
});
|
|
751
|
+
}
|
|
752
|
+
//#endregion
|
|
753
|
+
//#region src/slots.ts
|
|
754
|
+
var F = "default", normalizeSlotName = (e) => e || F, createSlots = (e) => {
|
|
755
|
+
let t = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map(), ensureSlotEntry = (e) => {
|
|
756
|
+
let n = t.get(e);
|
|
757
|
+
return n || (n = {
|
|
758
|
+
elements: a([]),
|
|
759
|
+
presence: a(!1)
|
|
760
|
+
}, t.set(e, n)), n;
|
|
761
|
+
}, areElementsEqual = (e, t) => {
|
|
762
|
+
if (e.length !== t.length) return !1;
|
|
763
|
+
for (let n = 0; n < e.length; n++) if (e[n] !== t[n]) return !1;
|
|
764
|
+
return !0;
|
|
765
|
+
}, recomputeSlot = (e) => {
|
|
766
|
+
let t = normalizeSlotName(e), r = n.get(t), i = [];
|
|
767
|
+
if (r) for (let e of r) i.push(...e.assignedElements({ flatten: !0 }));
|
|
768
|
+
let a = ensureSlotEntry(t);
|
|
769
|
+
areElementsEqual(a.elements.value, i) || (a.elements.value = i);
|
|
770
|
+
let o = i.length > 0;
|
|
771
|
+
a.presence.value !== o && (a.presence.value = o);
|
|
772
|
+
}, bindSlot = (e) => {
|
|
773
|
+
if (r.has(e)) return;
|
|
774
|
+
let t = normalizeSlotName(e.getAttribute("name")), i = n.get(t) ?? /* @__PURE__ */ new Set();
|
|
775
|
+
i.add(e), n.set(t, i);
|
|
776
|
+
let onChange = () => recomputeSlot(t);
|
|
777
|
+
e.addEventListener("slotchange", onChange), r.set(e, () => {
|
|
778
|
+
e.removeEventListener("slotchange", onChange);
|
|
779
|
+
}), recomputeSlot(t);
|
|
780
|
+
}, unbindSlot = (e) => {
|
|
781
|
+
let t = r.get(e);
|
|
782
|
+
if (!t) return;
|
|
783
|
+
t(), r.delete(e);
|
|
784
|
+
let i = normalizeSlotName(e.getAttribute("name")), a = n.get(i);
|
|
785
|
+
a && (a.delete(e), a.size === 0 && n.delete(i)), recomputeSlot(i);
|
|
786
|
+
}, bindAllSlots = () => {
|
|
787
|
+
e.shadowRoot?.querySelectorAll("slot").forEach((e) => {
|
|
788
|
+
bindSlot(e);
|
|
789
|
+
});
|
|
790
|
+
}, recomputeAllSlots = () => {
|
|
791
|
+
for (let e of n.keys()) recomputeSlot(e);
|
|
792
|
+
}, i = null, initSlots = () => {
|
|
793
|
+
bindAllSlots(), recomputeAllSlots(), !i && e.shadowRoot && (i = new MutationObserver((e) => {
|
|
794
|
+
for (let t of e) for (let e of t.removedNodes) e instanceof HTMLSlotElement && unbindSlot(e);
|
|
795
|
+
bindAllSlots(), r.size > 0 && recomputeAllSlots();
|
|
796
|
+
}), i.observe(e.shadowRoot, {
|
|
797
|
+
childList: !0,
|
|
798
|
+
subtree: !0
|
|
799
|
+
}));
|
|
800
|
+
};
|
|
801
|
+
return onMounted(initSlots), onCleanup(() => {
|
|
802
|
+
i?.disconnect(), i = null;
|
|
803
|
+
for (let e of r.values()) e();
|
|
804
|
+
r.clear(), n.clear(), t.clear(), I.delete(e);
|
|
805
|
+
}), {
|
|
806
|
+
elements: (e) => ensureSlotEntry(normalizeSlotName(e)).elements,
|
|
807
|
+
has: (e) => ensureSlotEntry(normalizeSlotName(e)).presence
|
|
808
|
+
};
|
|
809
|
+
}, I = /* @__PURE__ */ new WeakMap(), useSlots = () => {
|
|
810
|
+
let e = requireSetupContext("useSlots"), t = I.get(e.element);
|
|
811
|
+
return t || (t = createSlots(e.element), I.set(e.element, t)), t;
|
|
812
|
+
}, signalEffect = (e, t, n) => {
|
|
813
|
+
let i = r(() => {
|
|
814
|
+
t(e.value);
|
|
815
|
+
});
|
|
816
|
+
n(() => i.dispose());
|
|
817
|
+
}, isNativeFormInput = (e) => e instanceof HTMLInputElement || e instanceof HTMLTextAreaElement || e instanceof HTMLSelectElement, isCheckableInput = (e) => e instanceof HTMLInputElement && (e.type === "checkbox" || e.type === "radio"), syncFormControl = (e, t, n, r = { last: void 0 }) => {
|
|
818
|
+
let i = isCheckableInput(e), a = i ? !!t : t == null ? "" : String(t), o = i ? e.checked : e.value;
|
|
819
|
+
(!n || r.last === void 0 || Object.is(o, r.last) || Object.is(o, a)) && (i ? e.checked = a : e.value = a, n && (r.last = a));
|
|
820
|
+
}, syncRegisteredProp = (e, t, n, r) => {
|
|
821
|
+
let i = isStructuredValue(r) ? r : t.parse(n.mode === "bool" ? r ? "" : null : r == null || r === !1 ? null : String(r));
|
|
822
|
+
if (Object.is(o(() => t.signal.value), i) || (t.signal.value = i), !t.reflect) {
|
|
823
|
+
if (isStructuredValue(r)) return;
|
|
824
|
+
n.mode === "bool" ? e.toggleAttribute(n.name, !!r) : setAttr(e, n.name, r);
|
|
825
|
+
}
|
|
826
|
+
}, applyAttrBinding = (e, t) => {
|
|
827
|
+
let { el: n, mode: r, name: i } = e, a = { last: void 0 }, update = (t) => {
|
|
828
|
+
let o = getPropMeta(n, i);
|
|
829
|
+
o ? syncRegisteredProp(n, o, e, t) : i === "value" && isNativeFormInput(n) || i === "checked" && n instanceof HTMLInputElement ? syncFormControl(n, t, e.live, a) : i === "indeterminate" && n instanceof HTMLInputElement ? n.indeterminate = !!t : r === "bool" ? n.toggleAttribute(i, !!t) : setAttr(n, i, t);
|
|
830
|
+
};
|
|
831
|
+
"signal" in e ? signalEffect(e.signal, update, t) : update(e.value);
|
|
832
|
+
}, applyEventBinding = (e, t) => {
|
|
833
|
+
let { modifiers: n } = e, r = n?.stop || n?.prevent ? (t) => {
|
|
834
|
+
n.stop && t.stopPropagation(), n.prevent && t.preventDefault(), e.handler(t);
|
|
835
|
+
} : e.handler, i = n?.once || n?.capture ? {
|
|
836
|
+
capture: n.capture,
|
|
837
|
+
once: n.once
|
|
838
|
+
} : void 0;
|
|
839
|
+
t(listen(e.el, e.name, r, i));
|
|
840
|
+
}, applyPropBinding = (e, t) => {
|
|
841
|
+
let update = (t) => {
|
|
842
|
+
e.el[e.name] = t;
|
|
843
|
+
};
|
|
844
|
+
"signal" in e ? signalEffect(e.signal, update, t) : update(e.value);
|
|
845
|
+
}, applyModelBinding = (e, t) => {
|
|
846
|
+
let { el: n, get: i, signal: a } = e, s = { last: void 0 }, write = (e) => {
|
|
847
|
+
isNativeFormInput(n) ? syncFormControl(n, e, !0, s) : n.value = e;
|
|
848
|
+
}, c = r(() => {
|
|
849
|
+
write(a.value);
|
|
850
|
+
}), onEvent = () => {
|
|
851
|
+
let e = i(n);
|
|
852
|
+
Object.is(o(() => a.value), e) || (a.value = e);
|
|
853
|
+
};
|
|
854
|
+
t(() => c.dispose()), t(listen(n, e.event, onEvent));
|
|
855
|
+
}, applyRefBinding = (e, t) => {
|
|
856
|
+
let { el: n, ref: r } = e;
|
|
857
|
+
typeof r == "function" ? (r(n), t(() => r(null))) : (r.value = n, t(() => {
|
|
858
|
+
r.value = null;
|
|
859
|
+
}));
|
|
860
|
+
}, insertHtmlValues = (e, t, n) => {
|
|
861
|
+
let r = [], i = t.parentNode;
|
|
862
|
+
invariant(i, "html binding anchor has no parent node");
|
|
863
|
+
for (let a of e) if (E(a)) {
|
|
864
|
+
let e = Array.from(a.fragment.childNodes);
|
|
865
|
+
i.insertBefore(a.fragment, t), a.apply(n), r.push(...e);
|
|
866
|
+
} else if (a != null && a !== !1) {
|
|
867
|
+
let e = document.createTextNode(String(a));
|
|
868
|
+
i.insertBefore(e, t), r.push(e);
|
|
869
|
+
}
|
|
870
|
+
return r;
|
|
871
|
+
}, applyHtmlBinding = (e, t) => {
|
|
872
|
+
let { anchor: n, signal: i } = e, a = createReplaceableSlot(), s = r(() => {
|
|
873
|
+
let e = i.value;
|
|
874
|
+
a.clear(), e != null && e.length !== 0 && o(() => {
|
|
875
|
+
a.setNodes(insertHtmlValues(e, n, a.registerCleanup));
|
|
876
|
+
});
|
|
877
|
+
});
|
|
878
|
+
t(() => {
|
|
879
|
+
s.dispose(), a.clear();
|
|
880
|
+
});
|
|
881
|
+
}, applyDirectiveBinding = (e, t) => {
|
|
882
|
+
e.directive.mount(e.anchor, t);
|
|
883
|
+
}, applyBinding = (e, t) => {
|
|
884
|
+
switch (e.type) {
|
|
885
|
+
case "attr":
|
|
886
|
+
applyAttrBinding(e, t);
|
|
887
|
+
break;
|
|
888
|
+
case "directive":
|
|
889
|
+
applyDirectiveBinding(e, t);
|
|
890
|
+
break;
|
|
891
|
+
case "event":
|
|
892
|
+
applyEventBinding(e, t);
|
|
893
|
+
break;
|
|
894
|
+
case "html":
|
|
895
|
+
applyHtmlBinding(e, t);
|
|
896
|
+
break;
|
|
897
|
+
case "model":
|
|
898
|
+
applyModelBinding(e, t);
|
|
899
|
+
break;
|
|
900
|
+
case "prop":
|
|
901
|
+
applyPropBinding(e, t);
|
|
902
|
+
break;
|
|
903
|
+
case "ref": applyRefBinding(e, t);
|
|
904
|
+
}
|
|
905
|
+
}, createAttrBindingFromValue = (e, n, r, a) => O(a) ? {
|
|
906
|
+
el: e,
|
|
907
|
+
live: !0,
|
|
908
|
+
mode: n,
|
|
909
|
+
name: r,
|
|
910
|
+
signal: a.source,
|
|
911
|
+
type: "attr"
|
|
912
|
+
} : typeof a == "function" ? {
|
|
913
|
+
el: e,
|
|
914
|
+
mode: n,
|
|
915
|
+
name: r,
|
|
916
|
+
signal: t(a),
|
|
917
|
+
type: "attr"
|
|
918
|
+
} : i(a) ? {
|
|
919
|
+
el: e,
|
|
920
|
+
mode: n,
|
|
921
|
+
name: r,
|
|
922
|
+
signal: a,
|
|
923
|
+
type: "attr"
|
|
924
|
+
} : {
|
|
925
|
+
el: e,
|
|
926
|
+
mode: n,
|
|
927
|
+
name: r,
|
|
928
|
+
type: "attr",
|
|
929
|
+
value: a
|
|
930
|
+
}, resolveStaticText = (e) => e == null ? "" : String(e), L = {
|
|
931
|
+
ATTR: "attr",
|
|
932
|
+
BOOL_ATTR: "boolAttr",
|
|
933
|
+
EVENT: "event",
|
|
934
|
+
NODE: "node",
|
|
935
|
+
PROP: "prop",
|
|
936
|
+
REF: "ref"
|
|
937
|
+
}, R = {
|
|
938
|
+
capture: !0,
|
|
939
|
+
once: !0,
|
|
940
|
+
prevent: !0,
|
|
941
|
+
stop: !0
|
|
942
|
+
}, parseEventModifiers = (e, t) => {
|
|
943
|
+
if (t.length === 0) return;
|
|
944
|
+
let n = {};
|
|
945
|
+
for (let r of t) {
|
|
946
|
+
if (!(r in R)) throw new OreApiError(s.eventModifierUnknown(e, r));
|
|
947
|
+
n[r] = !0;
|
|
948
|
+
}
|
|
949
|
+
return n;
|
|
950
|
+
}, z = /\s+@([a-zA-Z_][-a-zA-Z0-9_.-]*)\s*=\s*["']?$/, B = /\s+ref\s*=\s*["']?$/, V = /\s+\?([a-zA-Z_][-a-zA-Z0-9_]*)\s*=\s*["']?$/, H = /\s+\.([a-zA-Z_][-a-zA-Z0-9_]*)\s*=\s*["']?$/, U = /\s+([a-zA-Z_][-a-zA-Z0-9_]*)\s*=\s*["']?$/, detectSlot = (e) => {
|
|
951
|
+
let t;
|
|
952
|
+
if (t = z.exec(e)) {
|
|
953
|
+
let n = e.slice(0, -t[0].length), [r, ...i] = t[1].split(".");
|
|
954
|
+
return {
|
|
955
|
+
eventModifiers: parseEventModifiers(r, i),
|
|
956
|
+
kind: L.EVENT,
|
|
957
|
+
name: r,
|
|
958
|
+
prefix: n
|
|
959
|
+
};
|
|
960
|
+
}
|
|
961
|
+
if (t = B.exec(e)) return {
|
|
962
|
+
kind: L.REF,
|
|
963
|
+
prefix: e.slice(0, -t[0].length)
|
|
964
|
+
};
|
|
965
|
+
if (t = V.exec(e)) return {
|
|
966
|
+
kind: L.BOOL_ATTR,
|
|
967
|
+
name: t[1],
|
|
968
|
+
prefix: e.slice(0, -t[0].length)
|
|
969
|
+
};
|
|
970
|
+
if (t = H.exec(e)) {
|
|
971
|
+
let n = t[1];
|
|
972
|
+
if (n === "__proto__" || n === "constructor" || n === "prototype") throw new OreApiError(s.propBindingForbiddenName(n));
|
|
973
|
+
return {
|
|
974
|
+
kind: L.PROP,
|
|
975
|
+
name: n,
|
|
976
|
+
prefix: e.slice(0, -t[0].length)
|
|
977
|
+
};
|
|
978
|
+
}
|
|
979
|
+
if (t = U.exec(e)) return {
|
|
980
|
+
kind: L.ATTR,
|
|
981
|
+
name: t[1],
|
|
982
|
+
prefix: e.slice(0, -t[0].length)
|
|
983
|
+
};
|
|
984
|
+
let n = e.lastIndexOf("<");
|
|
985
|
+
if (n > e.lastIndexOf(">") && e[n + 1] !== "/") throw new OreApiError(s.templateInterpolationInTag);
|
|
986
|
+
return {
|
|
987
|
+
kind: L.NODE,
|
|
988
|
+
prefix: e
|
|
989
|
+
};
|
|
990
|
+
}, W = /* @__PURE__ */ new WeakMap(), G = /[@?]?[a-zA-Z_][-a-zA-Z0-9_.]*\s*=\s*$/, normalizeTemplateStrings = (e) => {
|
|
991
|
+
let t = Array.from(e), n = !1;
|
|
992
|
+
for (let e = 0; e < t.length - 1; e++) {
|
|
993
|
+
let r = t[e], i = r[r.length - 1];
|
|
994
|
+
for (let e of r) e === "<" ? n = !0 : e === ">" && (n = !1);
|
|
995
|
+
if ((i === "\"" || i === "'") && n && G.test(r.slice(0, -1))) {
|
|
996
|
+
t[e] = r.slice(0, -1);
|
|
997
|
+
let n = t[e + 1];
|
|
998
|
+
n.startsWith(i) && (t[e + 1] = n.slice(1));
|
|
999
|
+
}
|
|
1000
|
+
}
|
|
1001
|
+
return t;
|
|
1002
|
+
}, K = "data-ore-b", q = /^ore:(\d+)$/, walkNode = (e, t, n, r) => {
|
|
1003
|
+
if (e.nodeType === Node.ELEMENT_NODE) {
|
|
1004
|
+
let r = e, i = r.getAttribute(K);
|
|
1005
|
+
i !== null && (n.set(Number(i), [...t]), r.removeAttribute(K));
|
|
1006
|
+
} else if (e.nodeType === Node.COMMENT_NODE) {
|
|
1007
|
+
let n = e.nodeValue, i = n === null ? null : q.exec(n);
|
|
1008
|
+
i && r.set(Number(i[1]), [...t]);
|
|
1009
|
+
}
|
|
1010
|
+
let i = e.childNodes;
|
|
1011
|
+
for (let e = 0; e < i.length; e++) walkNode(i[e], [...t, e], n, r);
|
|
1012
|
+
}, buildStaticTemplate = (e) => {
|
|
1013
|
+
let t = normalizeTemplateStrings(e), n = "", r, i = 0, a = 0, o = [];
|
|
1014
|
+
for (let e = 0; e < t.length - 1; e++) {
|
|
1015
|
+
let s = t[e], c = detectSlot(s);
|
|
1016
|
+
if (c.kind === L.NODE) n += `${c.prefix}<!--ore:${a}-->`, o.push({
|
|
1017
|
+
commentId: a,
|
|
1018
|
+
kind: L.NODE
|
|
1019
|
+
}), a++, r = void 0;
|
|
1020
|
+
else {
|
|
1021
|
+
r === void 0 || c.prefix.lastIndexOf("<") > c.prefix.lastIndexOf(">") ? (r = i++, n += `${c.prefix} ${K}="${r}"`) : n += c.prefix;
|
|
1022
|
+
let e = c.kind === L.BOOL_ATTR ? "bool" : c.kind === L.ATTR ? "attr" : void 0;
|
|
1023
|
+
o.push({
|
|
1024
|
+
elementId: r,
|
|
1025
|
+
eventModifiers: c.eventModifiers,
|
|
1026
|
+
kind: c.kind,
|
|
1027
|
+
mode: e,
|
|
1028
|
+
name: c.name
|
|
1029
|
+
});
|
|
1030
|
+
}
|
|
1031
|
+
}
|
|
1032
|
+
n += t[t.length - 1] ?? "";
|
|
1033
|
+
let s = document.createElement("template");
|
|
1034
|
+
s.innerHTML = n;
|
|
1035
|
+
let c = /* @__PURE__ */ new Map(), l = /* @__PURE__ */ new Map(), u = s.content.childNodes;
|
|
1036
|
+
for (let e = 0; e < u.length; e++) walkNode(u[e], [e], c, l);
|
|
1037
|
+
return {
|
|
1038
|
+
commentPaths: l,
|
|
1039
|
+
element: s,
|
|
1040
|
+
elementPaths: c,
|
|
1041
|
+
slots: o
|
|
1042
|
+
};
|
|
1043
|
+
}, getStaticTemplate = (e) => {
|
|
1044
|
+
let t = W.get(e);
|
|
1045
|
+
return t || (t = buildStaticTemplate(e), W.set(e, t)), t;
|
|
1046
|
+
}, followPath = (e, t) => {
|
|
1047
|
+
let n = e;
|
|
1048
|
+
for (let e of t) n = n.childNodes[e];
|
|
1049
|
+
return n;
|
|
1050
|
+
}, J = "html`...`: node-slot comment anchor has no parent node", toHtmlValues = (e) => Array.isArray(e) ? e : [e], embedStaticResult = (e, t, n) => {
|
|
1051
|
+
let r = t.parentNode;
|
|
1052
|
+
for (invariant(r, J); e.fragment.firstChild;) r.insertBefore(e.fragment.firstChild, t);
|
|
1053
|
+
n.push(e.apply.bind(e));
|
|
1054
|
+
}, compileTemplate = (e, n) => {
|
|
1055
|
+
let r = getStaticTemplate(e), a = r.element.content.cloneNode(!0), o = [], c = [], l = r.slots.map((e, t) => {
|
|
1056
|
+
let i = n[t];
|
|
1057
|
+
if (e.kind === L.NODE) {
|
|
1058
|
+
let t = e.commentId === void 0 ? void 0 : r.commentPaths.get(e.commentId);
|
|
1059
|
+
return invariant(t, `compiled template is missing a comment path for node slot ${e.commentId}`), {
|
|
1060
|
+
comment: followPath(a, t),
|
|
1061
|
+
slot: e,
|
|
1062
|
+
value: i
|
|
1063
|
+
};
|
|
1064
|
+
}
|
|
1065
|
+
let o = e.elementId === void 0 ? void 0 : r.elementPaths.get(e.elementId);
|
|
1066
|
+
return invariant(o, `compiled template is missing an element path for slot ${e.elementId}`), {
|
|
1067
|
+
el: followPath(a, o),
|
|
1068
|
+
slot: e,
|
|
1069
|
+
value: i
|
|
1070
|
+
};
|
|
1071
|
+
});
|
|
1072
|
+
for (let { comment: e, el: n, slot: r, value: a } of l) if (r.kind === L.NODE) {
|
|
1073
|
+
let n = e;
|
|
1074
|
+
if (invariant(n, "compiled template produced a node slot without a comment anchor"), w(a)) {
|
|
1075
|
+
o.push({
|
|
1076
|
+
anchor: n,
|
|
1077
|
+
directive: a,
|
|
1078
|
+
type: "directive"
|
|
1079
|
+
});
|
|
1080
|
+
continue;
|
|
1081
|
+
}
|
|
1082
|
+
if (E(a)) {
|
|
1083
|
+
embedStaticResult(a, n, c), n.remove();
|
|
1084
|
+
continue;
|
|
1085
|
+
}
|
|
1086
|
+
if (typeof a == "function" || i(a)) {
|
|
1087
|
+
let e = t(typeof a == "function" ? () => toHtmlValues(a()) : () => toHtmlValues(a.value));
|
|
1088
|
+
o.push({
|
|
1089
|
+
anchor: n,
|
|
1090
|
+
signal: e,
|
|
1091
|
+
type: "html"
|
|
1092
|
+
});
|
|
1093
|
+
continue;
|
|
1094
|
+
}
|
|
1095
|
+
if (Array.isArray(a)) {
|
|
1096
|
+
for (let e of a) if (E(e)) embedStaticResult(e, n, c);
|
|
1097
|
+
else {
|
|
1098
|
+
let t = n.parentNode;
|
|
1099
|
+
invariant(t, J), t.insertBefore(document.createTextNode(resolveStaticText(e)), n);
|
|
1100
|
+
}
|
|
1101
|
+
n.remove();
|
|
1102
|
+
continue;
|
|
1103
|
+
}
|
|
1104
|
+
n.replaceWith(document.createTextNode(resolveStaticText(a)));
|
|
1105
|
+
} else if (invariant(n, "compiled template produced an element slot without an element"), r.kind === L.EVENT) {
|
|
1106
|
+
let e = r.name;
|
|
1107
|
+
if (invariant(e, "compiled template produced an event slot without an event name"), typeof a == "function") o.push({
|
|
1108
|
+
el: n,
|
|
1109
|
+
handler: a,
|
|
1110
|
+
modifiers: r.eventModifiers,
|
|
1111
|
+
name: e,
|
|
1112
|
+
type: "event"
|
|
1113
|
+
});
|
|
1114
|
+
else if (i(a)) {
|
|
1115
|
+
let t = a, handler = (e) => {
|
|
1116
|
+
let n = t.value;
|
|
1117
|
+
typeof n == "function" && n(e);
|
|
1118
|
+
};
|
|
1119
|
+
o.push({
|
|
1120
|
+
el: n,
|
|
1121
|
+
handler,
|
|
1122
|
+
modifiers: r.eventModifiers,
|
|
1123
|
+
name: e,
|
|
1124
|
+
type: "event"
|
|
1125
|
+
});
|
|
1126
|
+
}
|
|
1127
|
+
} else if (r.kind === L.PROP) {
|
|
1128
|
+
let e = r.name;
|
|
1129
|
+
invariant(e, "compiled template produced a prop slot without a property name"), typeof a == "function" ? o.push({
|
|
1130
|
+
el: n,
|
|
1131
|
+
name: e,
|
|
1132
|
+
signal: t(a),
|
|
1133
|
+
type: "prop"
|
|
1134
|
+
}) : i(a) ? o.push({
|
|
1135
|
+
el: n,
|
|
1136
|
+
name: e,
|
|
1137
|
+
signal: a,
|
|
1138
|
+
type: "prop"
|
|
1139
|
+
}) : o.push({
|
|
1140
|
+
el: n,
|
|
1141
|
+
name: e,
|
|
1142
|
+
type: "prop",
|
|
1143
|
+
value: a
|
|
1144
|
+
});
|
|
1145
|
+
} else if (r.kind === L.REF) a && o.push({
|
|
1146
|
+
el: n,
|
|
1147
|
+
ref: a,
|
|
1148
|
+
type: "ref"
|
|
1149
|
+
});
|
|
1150
|
+
else if (invariant(r.name, "compiled template produced an attr slot without an attribute name"), A(a)) {
|
|
1151
|
+
if (r.mode !== "attr") throw new OreApiError(s.modelRequiresValueBinding(r.name));
|
|
1152
|
+
o.push({
|
|
1153
|
+
el: n,
|
|
1154
|
+
event: a.event ?? modelDefaultEvent(n),
|
|
1155
|
+
get: a.get ?? modelDefaultGet,
|
|
1156
|
+
signal: a.source,
|
|
1157
|
+
type: "model"
|
|
1158
|
+
});
|
|
1159
|
+
} else o.push(createAttrBindingFromValue(n, r.mode ?? "attr", r.name, a));
|
|
1160
|
+
return createHtmlResult(a, (e) => {
|
|
1161
|
+
for (let t of o) applyBinding(t, e);
|
|
1162
|
+
for (let t of c) t(e);
|
|
1163
|
+
});
|
|
1164
|
+
}, html = (e, ...t) => compileTemplate(e, t), Y = {
|
|
1165
|
+
bubbles: !0,
|
|
1166
|
+
cancelable: !0,
|
|
1167
|
+
composed: !0
|
|
1168
|
+
}, useEmit = () => {
|
|
1169
|
+
let e = getHost();
|
|
1170
|
+
return ((t, ...n) => {
|
|
1171
|
+
let r = n.length > 0 ? {
|
|
1172
|
+
...Y,
|
|
1173
|
+
detail: n[0]
|
|
1174
|
+
} : Y;
|
|
1175
|
+
return e.dispatchEvent(new CustomEvent(String(t), r));
|
|
1176
|
+
});
|
|
1177
|
+
}, X = 0, Z = Math.random().toString(36).slice(2, 6), createId = (e = "id") => `${e}-${Z}${++X}`;
|
|
1178
|
+
//#endregion
|
|
1179
|
+
export { OreApiError, OreError, OreInternalError, OreLifecycleError, bind, classMap, createContext, createId, css, define, each, getHost, html, inject, injectStrict, live, model, onCleanup, onElement, onEvent, onFormReset, onMounted, g as prop, provide, ref, styleMap, unsafeHtml, useEmit, useField, useSlots, watchEffect, when };
|
|
1180
|
+
|
|
3
1181
|
//# sourceMappingURL=ore.js.map
|