defuss-morph 0.1.1 → 0.2.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/README.md +12 -6
- package/dist/all.js +209 -253
- package/dist/all.js.map +7 -7
- package/dist/all.min.js +1 -1
- package/dist/all.min.js.map +1 -1
- package/dist/index.cjs +199 -249
- package/dist/index.d.ts +32 -4
- package/dist/index.mjs +197 -250
- package/dist/stats.json +9 -9
- package/package.json +1 -1
package/dist/all.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e=Object.defineProperty,t=e=>e;function n(e,n){this[e]=t.bind(null,n)}var r=(t,r)=>{for(var i in r)e(t,i,{get:r[i],enumerable:!0,configurable:!0,set:n.bind(r,i)})},i={};r(i,{updateDomWithVdom:()=>K,resolveGlobals:()=>G,replaceDomWithVdom:()=>be,renderMarkup:()=>F,removeDelegatedEventByKey:()=>b,removeDelegatedEvent:()=>ie,registerDelegatedEvent:()=>h,queueCallback:()=>a,performTransition:()=>Z,parseEventPropName:()=>d,parseDOM:()=>j,observeUnmount:()=>D,nsMap:()=>E,morph:()=>$,isSVG:()=>M,isMarkup:()=>P,isHTML:()=>N,htmlStringToVNodes:()=>R,handleLifecycleEventsForOnMount:()=>O,getTransitionStyles:()=>q,getRenderer:()=>k,getRegisteredEventTypes:()=>v,getRegisteredEventKeys:()=>y,getMimeType:()=>I,domNodeToVNode:()=>L,clearDelegatedEventsDeep:()=>_,clearDelegatedEvents:()=>g,areDomNodesEqual:()=>z,applyStyles:()=>J,XMLNS_ATTRIBUTE_NAME:()=>C,XLINK_ATTRIBUTE_NAME:()=>S,REF_ATTRIBUTE_NAME:()=>w,FROM_DOM_MARKER:()=>A,DEFAULT_TRANSITION_CONFIG:()=>Y,DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE:()=>T,CLASS_ATTRIBUTE_NAME:()=>x,CAPTURE_ONLY_EVENTS:()=>o});var a=e=>(...t)=>queueMicrotask(()=>e(...t)),o=new Set([`focus`,`blur`,`scroll`,`mouseenter`,`mouseleave`]),s=new WeakMap,c=new WeakMap,l=new WeakMap,u=new WeakMap,d=e=>{if(!e.startsWith(`on`))return null;let t=e.slice(2);if(!t)return null;let n=t.toLowerCase(),r=n.endsWith(`capture`),i=r?n.slice(0,-7):n;return i?{eventType:i,capture:r}:null},ee=e=>{let t=s.get(e);if(t)return t;let n=new Map;return s.set(e,n),n},f=e=>{let t=e.composedPath?.();if(t&&t.length>0)return t;let n=[],r=e.target;for(;r;){n.push(r);let e=r;if(typeof e==`object`&&e&&`parentNode`in e){r=e.parentNode;continue}break}let i=e.target?.ownerDocument;i&&n[n.length-1]!==i&&n.push(i);let a=i?.defaultView;return a&&n[n.length-1]!==a&&n.push(a),n},p=(e,t)=>{let n=t===`capture`?l:c;return r=>{let i=f(r).filter(e=>typeof e==`object`&&!!e&&e.nodeType===1),a=t===`capture`?[...i].reverse():i;for(let i of a){let a=s.get(i);if(!a)continue;let o=a.get(e);if(!o)continue;let c=n.get(r);if(c?.has(i))continue;c||(c=new WeakSet,n.set(r,c)),c.add(i);let l=`${e}:${t}`,d=u.get(i);if(!d?.has(l)){d||(d=new Set,u.set(i,d)),d.add(l);try{if(t===`capture`){if(o.capture&&(o.capture.call(i,r),r.cancelBubble))return;if(o.captureSet){for(let e of o.captureSet)if(e.call(i,r),r.cancelBubble)return}}else{if(o.bubble&&(o.bubble.call(i,r),r.cancelBubble))return;if(o.bubbleSet){for(let e of o.bubbleSet)if(e.call(i,r),r.cancelBubble)return}}}finally{d.delete(l)}}}}},m=new WeakMap,te=(e,t)=>{let n=m.get(e)??new Set;m.set(e,n);let r=`${t}:capture`;n.has(r)||(e.addEventListener(t,p(t,`capture`),!0),n.add(r));let i=`${t}:bubble`;n.has(i)||(e.addEventListener(t,p(t,`bubble`),!1),n.add(i))},ne=e=>{let t=e.getRootNode();return t&&t.nodeType===9||t&&t.nodeType===11&&`host`in t?t:null},h=(e,t,n,r={})=>{let i=ne(e),a=r.capture||o.has(t);i?te(i,t):e.ownerDocument?te(e.ownerDocument,t):e.addEventListener(t,n,a);let s=ee(e),c=s.get(t)??{};s.set(t,c),r.multi?a?(c.captureSet||=new Set,c.captureSet.add(n)):(c.bubbleSet||=new Set,c.bubbleSet.add(n)):a?c.capture=n:c.bubble=n},re=e=>!e.capture&&!e.bubble&&(!e.captureSet||e.captureSet.size===0)&&(!e.bubbleSet||e.bubbleSet.size===0),ie=(e,t,n,r={})=>{let i=s.get(e);if(!i)return;let a=i.get(t);a&&(n?(a.captureSet&&a.captureSet.delete(n),a.bubbleSet&&a.bubbleSet.delete(n),a.capture===n&&(a.capture=void 0),a.bubble===n&&(a.bubble=void 0),e.removeEventListener(t,n,!0),e.removeEventListener(t,n,!1)):(a.capture=void 0,a.bubble=void 0,a.captureSet=void 0,a.bubbleSet=void 0),re(a)&&i.delete(t))},g=e=>{let t=s.get(e);t&&t.clear()},_=e=>{g(e);let t=e.ownerDocument;if(!t)return;let n=t.createTreeWalker(e,1),r=n.nextNode();for(;r;)g(r),r=n.nextNode()},v=e=>{let t=s.get(e);return t?new Set(t.keys()):new Set},y=e=>{let t=s.get(e);if(!t)return new Set;let n=new Set;for(let[e,r]of t)(r.bubble||r.bubbleSet?.size)&&n.add(`${e}:bubble`),(r.capture||r.captureSet?.size)&&n.add(`${e}:capture`);return n},b=(e,t,n)=>{let r=s.get(e);if(!r)return;let i=r.get(t);i&&(n===`capture`?(i.capture=void 0,i.captureSet=void 0):(i.bubble=void 0,i.bubbleSet=void 0),re(i)&&r.delete(t))},x=`class`,S=`xlink`,C=`xmlns`,w=`ref`,T=`dangerouslySetInnerHTML`,E={[C]:`http://www.w3.org/2000/xmlns/`,[S]:`http://www.w3.org/1999/xlink`,svg:`http://www.w3.org/2000/svg`},D=(e,t)=>{if(!e||typeof t!=`function`)throw Error(`Invalid arguments. Ensure domNode and onUnmount are valid.`);if(typeof MutationObserver>`u`)return;let n=e.parentNode;if(!n)throw Error(`The provided domNode does not have a parentNode.`);let r=new MutationObserver(i=>{for(let a of i)if(a.removedNodes.length>0){for(let i of a.removedNodes)if(i===e){queueMicrotask(()=>{if(!e.isConnected){t(),r.disconnect();return}let i=e.parentNode;i&&i!==n&&(n=i,r.disconnect(),r.observe(n,{childList:!0}))});return}}});r.observe(n,{childList:!0})},O=e=>{typeof e?.$onMount==`function`&&(e.$onMount(e),e.$onMount=null),typeof e?.$onUnmount==`function`&&D(e,e.$onUnmount)},k=e=>{let t={hasElNamespace:e=>e.namespaceURI===E.svg,hasSvgNamespace:(e,n)=>t.hasElNamespace(e)&&n!==`STYLE`&&n!==`SCRIPT`,createElementOrElements:(e,n)=>Array.isArray(e)?t.createChildElements(e,n):e===void 0?t.createTextNode(``,n):t.createElement(e,n),createElement:(n,r)=>{let i;try{if(typeof n==`function`&&n.constructor.name===`AsyncFunction`)i=e.createElement(`div`);else if(typeof n==`object`&&n&&`type`in n){let a=n;typeof a.type==`function`?(i=e.createElement(`div`),i.innerText=`FATAL ERROR: ${a.type._error}`):i=typeof a.type==`string`&&a.type.toUpperCase()===`SVG`||r&&t.hasSvgNamespace(r,typeof a.type==`string`?a.type.toUpperCase():``)?e.createElementNS(E.svg,a.type):e.createElement(a.type),a.attributes&&(t.setAttributes(a,i),a.attributes.dangerouslySetInnerHTML&&(i.innerHTML=a.attributes.dangerouslySetInnerHTML.__html)),a.children&&!a.attributes?.dangerouslySetInnerHTML&&t.createChildElements(a.children,i)}else(typeof n==`string`||typeof n==`number`)&&(i=e.createElement(String(n)));i&&r&&(r.appendChild(i),O(i))}catch(e){throw console.error(`Fatal error! Error happend while rendering the VDOM!`,e,n),e}return i},createTextNode:(t,n)=>{let r=e.createTextNode(t.toString());return n&&n.appendChild(r),r},createChildElements:(e,n)=>{let r=[];for(let i=0;i<e.length;i++){let a=e[i];typeof a!=`boolean`&&(a===null||typeof a!=`object`&&typeof a!=`function`?r.push(t.createTextNode((a??``).toString(),n)):r.push(t.createElement(a,n)))}return r},setAttribute:(e,n,r)=>{if(n===void 0||e===T)return;if(e===`key`){r._defussKey=String(n);return}if(e===w&&typeof n!=`function`){let e=n;e.current=r,r._defussRef=n,r.$onUnmount=a(()=>{}),r.parentNode?D(r,r.$onUnmount):queueMicrotask(()=>{r.parentNode&&D(r,r.$onUnmount)});return}let i=d(e);if(i&&typeof n==`function`){let{eventType:e,capture:t}=i;if(e===`mount`){r.$onMount=a(n);return}if(e===`unmount`){if(r.$onUnmount){let e=r.$onUnmount;r.$onUnmount=()=>{e(),n()}}else r.$onUnmount=a(n);return}h(r,e,n,{capture:t});return}e===`className`&&(e=x),e===x&&Array.isArray(n)&&(n=n.filter(e=>!!e).join(` `));let o=e.match(/[A-Z]/)?.index;if(t.hasElNamespace(r)&&o){let t=e.substring(0,o).toLowerCase(),i=e.substring(o,e.length).toLowerCase(),a=E[t]||null;r.setAttributeNS(a,t===S||t===C?`${t}:${i}`:e,String(n))}else if(e===`style`&&typeof n!=`string`){let e=n;for(let t of Object.keys(e))r.style[t]=String(e[t])}else typeof n==`boolean`?(r[e]=n,n?r.setAttribute(e,``):r.removeAttribute(e)):(e===`value`||e===`checked`||e===`selectedIndex`)&&(r.nodeName===`INPUT`||r.nodeName===`TEXTAREA`||r.nodeName===`SELECT`)?(r[e]=n,e===`checked`?n?r.setAttribute(`checked`,``):r.removeAttribute(`checked`):e===`value`&&r.setAttribute(`value`,String(n))):r.setAttribute(e,String(n))},setAttributes:(e,n)=>{let r=Object.keys(e.attributes??{});for(let i=0;i<r.length;i++)t.setAttribute(r[i],e.attributes[r[i]],n)}};return t},A=Symbol(`defuss-morph.from-dom`),ae=new Set([`allowfullscreen`,`async`,`autofocus`,`autoplay`,`checked`,`controls`,`default`,`defer`,`disabled`,`formnovalidate`,`hidden`,`inert`,`ismap`,`itemscope`,`loop`,`multiple`,`muted`,`nomodule`,`novalidate`,`open`,`playsinline`,`readonly`,`required`,`reversed`,`selected`]),oe=e=>ae.has(e.name.toLowerCase())?!0:e.value;function j(e,t,n){return new n().parseFromString(e,t)}function M(e,t){let n=j(e,`image/svg+xml`,t);return n.documentElement?n.documentElement.nodeName.toLowerCase()===`svg`:!1}function N(e,t){return j(e,`text/html`,t).documentElement.querySelectorAll(`*`).length>2}var P=(e,t)=>e.indexOf(`<`)>-1&&e.indexOf(`>`)>-1&&(N(e,t)||M(e,t));function F(e,t,n){let r=n||j(e,I(e,t),t);return r.body?Array.from(r.body.childNodes):r.documentElement?[r.documentElement]:[]}function I(e,t){return M(e,t)?`image/svg+xml`:`text/html`}function L(e){if(e.nodeType===3)return e.textContent||``;if(e.nodeType===1){let t=e,n={};for(let e=0;e<t.attributes.length;e++){let r=t.attributes[e];n[r.name]=oe(r)}let r=[];for(let e=0;e<t.childNodes.length;e++){let n=L(t.childNodes[e]);r.push(n)}return{type:t.tagName.toLowerCase(),attributes:{...n,[A]:!0},children:r}}return``}function R(e,t){let n=new t().parseFromString(e,`text/html`),r=[];for(let e=0;e<n.body.childNodes.length;e++){let t=L(n.body.childNodes[e]);t!==``&&r.push(t)}return r}var z=(e,t)=>{if(e===t)return!0;if(e.nodeType!==t.nodeType)return!1;if(e.nodeType===1){let n=e,r=t;if(n.tagName!==r.tagName)return!1;let i=n.attributes,a=r.attributes;if(i.length!==a.length)return!1;for(let e=0;e<i.length;e++){let t=i[e],n=r.getAttribute(t.name);if(t.value!==n)return!1}}return e.nodeType!==3||e.textContent===t.textContent};function se(e){return typeof e==`string`||typeof e==`number`||typeof e==`boolean`}function B(e){return!!(e&&typeof e==`object`&&`type`in e)}function ce(e,t=!1){if(e==null||se(e)||B(e)||t&&e&&typeof e==`object`&&`attributes`in e)return e}function le(e,t=!1){let n=[],r=e=>{if(Array.isArray(e)){e.forEach(r);return}let i=ce(e,t);if(i!==void 0){if(B(i)&&(i.type===`fragment`||i.type===`Fragment`)){(Array.isArray(i.children)?i.children:[]).forEach(r);return}i!=null&&typeof i!=`boolean`&&n.push(i)}};r(e);let i=[],a=null,o=()=>{a!==null&&a.length>0&&i.push(a),a=null};for(let e of n){if(typeof e==`string`||typeof e==`number`||typeof e==`boolean`){a=(a??``)+String(e);continue}o(),i.push(e)}return o(),i}function V(e){if(!e||typeof e!=`object`)return null;let t=e.attributes?.key;if(typeof t==`string`||typeof t==`number`)return`k:${String(t)}`;let n=e.attributes?.id;return typeof n==`string`&&n.length>0?`id:${n}`:null}function ue(e){return e&&typeof e==`object`?`<${typeof e.type==`string`?e.type:`component`}>`:`plain text`}function de(e){if(e.nodeType!==1)return[];let t=e,n=[],r=t._defussKey;r&&n.push(`k:${r}`);let i=t.getAttribute(`key`);i&&n.push(`k:${i}`);let a=t.id;return a&&n.push(`id:${a}`),n}function fe(e,t){if(typeof t==`string`||typeof t==`number`||typeof t==`boolean`)return e.nodeType===3;if(t&&typeof t==`object`){if(e.nodeType!==1)return!1;let n=e.tagName.toLowerCase(),r=typeof t.type==`string`?t.type.toLowerCase():``;return!(!r||n!==r)}return!1}function H(e,t){let n=k(t.window.document);if(e==null)return;if(typeof e==`string`||typeof e==`number`||typeof e==`boolean`)return[t.window.document.createTextNode(String(e))];let r=n.createElementOrElements(e);return r?(Array.isArray(r)?r:[r]).filter(Boolean):void 0}function pe(e,t,n){let r=e.tagName.toLowerCase();return Object.hasOwn(n.attributes??{},t)?!1:r===`input`?t===`value`||t===`checked`:r===`textarea`||r===`select`?t===`value`:!1}function me(e,t,n,r=!1){let i=k(n.window.document),a=r?[]:Array.from(e.attributes),o=t.attributes??{};for(let n of a){let{name:r}=n;if(r!==`key`&&!r.startsWith(`on`)&&(r!==`class`||!Object.hasOwn(o,`class`)&&!Object.hasOwn(o,`className`))&&!Object.hasOwn(o,r)){if(pe(e,r,t))continue;e.removeAttribute(r)}}if(!(r||o[A])){let t=y(e),n=new Set;for(let e of Object.keys(o)){let t=d(e);if(t){let e=t.capture?`capture`:`bubble`;n.add(`${t.eventType}:${e}`)}}for(let r of t)if(!n.has(r)){let[t,n]=r.split(`:`);b(e,t,n)}}i.setAttributes(t,e),O(e);let s=t.attributes?.dangerouslySetInnerHTML;if(s&&typeof s==`object`&&typeof s.__html==`string`){e.innerHTML=s.__html;return}if(e.tagName.toLowerCase()===`textarea`){let t=Object.hasOwn(o,`value`);if(e.ownerDocument?.activeElement===e&&!t)return}r&&(t.children===void 0||t.children.length===0&&o[A])||ye(e,t.children??[],n)}function he(e,t,n,r=!1){if(typeof t==`string`||typeof t==`number`||typeof t==`boolean`){let r=String(t);if(e.nodeType===3)return e.nodeValue!==r&&(e.nodeValue=r),e;let i=n.window.document.createTextNode(r);return e.parentNode?.replaceChild(i,e),i}if(t&&typeof t==`object`){let i=typeof t.type==`string`?t.type:null;if(!i)return e;if(e.nodeType!==1){let r=H(t,n),i=Array.isArray(r)?r[0]:r;return i?(e.parentNode?.replaceChild(i,e),O(i),i):null}let a=e;if(a.tagName.toLowerCase()!==i.toLowerCase()){let e=H(t,n),r=Array.isArray(e)?e[0]:e;return r?(a.parentNode?.replaceChild(r,a),O(r),r):null}return me(a,t,n,r),a}return e.parentNode?.removeChild(e),null}var U=new WeakSet,W=new Map,G=(e,t)=>t||{window:e?.ownerDocument?.defaultView??globalThis};function ge(e){let t=e.parentElement;for(;t;){if(U.has(t))return!0;t=t.parentElement}return!1}function _e(){if(W.size===0)return;let e=[...W.entries()];W.clear();for(let[t,{vdom:n,globals:r,mode:i}]of e)t.isConnected&&K(t,n,r,i)}function K(e,t,n,r=`replace`){let i=G(e,n);if(U.has(e)||ge(e)){W.set(e,{vdom:t,globals:i,mode:r});return}U.add(e);try{ye(e,t,i,r)}finally{U.delete(e)}_e()}function ve(e,t,n){let r=new Map;for(let t of Array.from(e.childNodes))for(let e of de(t))r.has(e)||r.set(e,t);for(let i of t){if(typeof i==`string`&&i.trim()===``)continue;let t=V(i);if(!t)throw Error(`morph diff: patch items must be elements with a key or id attribute (got ${ue(i)})`);let a=r.get(t);if(a){he(a,i&&typeof i==`object`&&!i.type?{...i,type:a.tagName.toLowerCase()}:i,n,!0);continue}if(!i?.type)throw Error(`morph diff: new (unmatched) patch items must declare a tag (type), got key/id "${t}"`);let o=H(i,n)??[];for(let t of o)e.appendChild(t),O(t)}}function ye(e,t,n,r=`replace`){let i=e,a=i.tagName.includes(`-`),o=i.shadowRoot&&!a?i.shadowRoot:e,s=le(t,r===`diff`);if(r===`diff`){ve(o,s,n);return}let c=Array.from(o.childNodes),l=new Map,u=new WeakMap,d=[];for(let e of c){let t=de(e);if(t.length>0){u.set(e,t);let n=!1;for(let r of t)l.has(r)||(l.set(r,e),n=!0);n||d.push(e)}else d.push(e)}let ee=e=>{let t=u.get(e)??[];for(let e of t)l.delete(e)},f=e=>{for(let t=0;t<d.length;t++){let n=d[t];if(fe(n,e))return d.splice(t,1),n}},p=0;for(let e of s){let t=V(e),r;t?(r=l.get(t),r&&ee(r)):r=f(e);let i=o.childNodes[p]??null;if(r){r!==i&&o.insertBefore(r,i),he(r,e,n),p++;continue}let a=H(e,n);if(!a||Array.isArray(a)&&a.length===0)continue;let s=Array.isArray(a)?a:[a];for(let e of s)o.insertBefore(e,i),O(e),p++}let m=new Set;for(let e of d)m.add(e);for(let e of l.values())m.add(e);for(let e of m)e.parentNode===o&&(e.nodeType===1&&_(e),o.removeChild(e))}function be(e,t,n){let r=G(e,n);for(;e.firstChild;)e.removeChild(e.firstChild);let i=k(r.window.document).createElementOrElements(t);if(Array.isArray(i))for(let t of i)t&&(e.appendChild(t),O(t));else i&&(e.appendChild(i),O(i))}var xe=e=>{if(e&&!e.getElementById(`defuss-shake`)){let t=e.createElement(`style`);t.id=`defuss-shake`,t.textContent=`@keyframes shake{0%,100%{transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{transform:translate3d(-10px,0,0)}20%,40%,60%,80%{transform:translate3d(10px,0,0)}}`,e.head.appendChild(t)}},q=(e,t,n=`ease-in-out`)=>{let r=`transform ${t}ms ${n}, opacity ${t}ms ${n}`;return{fade:{enter:{opacity:`0`,transition:r,transform:`translate3d(0,0,0)`},enterActive:{opacity:`1`},exit:{opacity:`1`,transition:r,transform:`translate3d(0,0,0)`},exitActive:{opacity:`0`}},"slide-left":{enter:{transform:`translate3d(100%,0,0)`,opacity:`0.5`,transition:r},enterActive:{transform:`translate3d(0,0,0)`,opacity:`1`},exit:{transform:`translate3d(0,0,0)`,opacity:`1`,transition:r},exitActive:{transform:`translate3d(-100%,0,0)`,opacity:`0.5`}},"slide-right":{enter:{transform:`translate3d(-100%,0,0)`,opacity:`0.5`,transition:r},enterActive:{transform:`translate3d(0,0,0)`,opacity:`1`},exit:{transform:`translate3d(0,0,0)`,opacity:`1`,transition:r},exitActive:{transform:`translate3d(100%,0,0)`,opacity:`0.5`}},shake:(xe(typeof document<`u`?document:void 0),{enter:{transform:`translate3d(0,0,0)`,opacity:`1`,transition:`none`},enterActive:{transform:`translate3d(0,0,0)`,opacity:`1`,animation:`shake ${t}ms cubic-bezier(0.36,0.07,0.19,0.97)`},exit:{transform:`translate3d(0,0,0)`,opacity:`1`,transition:`none`},exitActive:{transform:`translate3d(0,0,0)`,opacity:`1`,animation:`shake ${t}ms cubic-bezier(0.36,0.07,0.19,0.97)`}})}[e]||{enter:{},enterActive:{},exit:{},exitActive:{}}},J=(e,t)=>Object.entries(t).forEach(([t,n])=>e.style.setProperty(t,String(n))),Y={type:`fade`,duration:300,easing:`ease-in-out`,delay:0,target:`parent`},X=e=>new Promise(t=>setTimeout(t,e)),Se=async(e,t,n,r)=>{let i=e.style.cssText,a=e.cloneNode(!0),o=e.ownerDocument;try{let i=e.getBoundingClientRect();a.style.cssText=`position:absolute;top:${i.top}px;left:${i.left}px;width:${i.width}px;height:${i.height}px;opacity:1;transition:opacity ${n}ms ${r};z-index:1000;`,e.style.opacity=`0`,e.style.transition=`opacity ${n}ms ${r}`,o.body.appendChild(a),await t(),e.offsetHeight,a.style.opacity=`0`,e.style.opacity=`1`,await X(n),o.body.removeChild(a)}catch(e){throw a.parentElement&&o.body.removeChild(a),e}finally{e.style.cssText=i}},Z=async(e,t,n={})=>{let{type:r=`fade`,duration:i=300,easing:a=`ease-in-out`,delay:o=0}={...Y,...n};if(r===`none`){await t();return}if(o>0&&await X(o),r===`fade`){await Se(e,t,i,a);return}let s=n.styles||q(r,i,a),c=e.style.transition,l=e.style.animation;try{r===`shake`&&(e.style.animation=`none`,e.offsetHeight),J(e,s.exit),e.offsetHeight,J(e,s.exitActive),await X(i),await t(),J(e,s.enter),e.offsetHeight,J(e,s.enterActive),await X(i),e.style.transition=c,e.style.animation=l}catch(t){throw e.style.transition=c,e.style.animation=l,t}},Q=new WeakMap,$=(e,t,n={})=>{let r=G(e),i=r.window,a=n.diff?`diff`:`replace`,o=t=>K(e,typeof t==`string`?R(t,i.DOMParser):t,r,a),s=n.transition;if(s&&s.type!==`none`){let n={...Y,...s},r=n.target===`self`?e:e.parentElement;if(!r){o(t);return}let i={content:t};return Q.set(e,i),Z(r,async()=>{Q.get(e)===i&&o(i.content)},n).finally(()=>{Q.get(e)===i&&Q.delete(e)})}let c=Q.get(e);c&&(c.content=t),o(t)};if(typeof globalThis<`u`){let e=globalThis,t=e.df$;(t===null||typeof t!=`object`&&typeof t!=`function`)&&(e.df$={}),Object.assign(e.df$,i)}export{K as updateDomWithVdom,G as resolveGlobals,be as replaceDomWithVdom,F as renderMarkup,b as removeDelegatedEventByKey,ie as removeDelegatedEvent,h as registerDelegatedEvent,a as queueCallback,Z as performTransition,d as parseEventPropName,j as parseDOM,D as observeUnmount,E as nsMap,$ as morph,M as isSVG,P as isMarkup,N as isHTML,R as htmlStringToVNodes,O as handleLifecycleEventsForOnMount,q as getTransitionStyles,k as getRenderer,v as getRegisteredEventTypes,y as getRegisteredEventKeys,I as getMimeType,L as domNodeToVNode,_ as clearDelegatedEventsDeep,g as clearDelegatedEvents,z as areDomNodesEqual,J as applyStyles,C as XMLNS_ATTRIBUTE_NAME,S as XLINK_ATTRIBUTE_NAME,w as REF_ATTRIBUTE_NAME,A as FROM_DOM_MARKER,Y as DEFAULT_TRANSITION_CONFIG,T as DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE,x as CLASS_ATTRIBUTE_NAME,o as CAPTURE_ONLY_EVENTS};
|
|
1
|
+
var e=Object.defineProperty,t=e=>e;function n(e,n){this[e]=t.bind(null,n)}var r=(t,r)=>{for(var i in r)e(t,i,{get:r[i],enumerable:!0,configurable:!0,set:n.bind(r,i)})},i={};r(i,{updateDomWithVdom:()=>q,resolveGlobals:()=>K,replaceDomWithVdom:()=>Se,renderMarkup:()=>oe,removeDelegatedEventByKey:()=>b,removeDelegatedEvent:()=>te,registerDelegatedEvent:()=>h,queueCallback:()=>a,performTransition:()=>Q,parseEventPropName:()=>u,parseDOM:()=>w,onClearDelegatedEvents:()=>ne,observeUnmount:()=>L,nsMap:()=>I,morph:()=>Te,isSVG:()=>T,isMarkup:()=>D,isHTML:()=>E,isCommentVNode:()=>C,htmlStringToVNodes:()=>A,handleLifecycleEventsForOnMount:()=>R,getTransitionStyles:()=>J,getRenderer:()=>z,getRegisteredEventTypes:()=>re,getRegisteredEventKeys:()=>y,getMimeType:()=>O,domNodeToVNode:()=>k,clearDelegatedEventsDeep:()=>v,clearDelegatedEvents:()=>_,areDomNodesEqual:()=>ce,applyStyles:()=>Y,XMLNS_ATTRIBUTE_NAME:()=>N,XLINK_ATTRIBUTE_NAME:()=>M,REF_ATTRIBUTE_NAME:()=>P,FROM_DOM_MARKER:()=>x,DEFAULT_TRANSITION_CONFIG:()=>X,DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE:()=>F,COMMENT_TYPE:()=>S,CLASS_ATTRIBUTE_NAME:()=>j,CAPTURE_ONLY_EVENTS:()=>o});var a=e=>(...t)=>queueMicrotask(()=>e(...t)),o=new Set([`focus`,`blur`,`scroll`,`mouseenter`,`mouseleave`]),s=new WeakMap,c=new WeakMap,l=new WeakMap,u=e=>{if(!e.startsWith(`on`))return null;let t=e.slice(2);if(!t)return null;let n=t.toLowerCase(),r=n.endsWith(`capture`),i=r?n.slice(0,-7):n;return i?{eventType:i,capture:r}:null},d=e=>{let t=s.get(e);if(t)return t;let n=new Map;return s.set(e,n),n},f=(e,t,n,r)=>{let i=s.get(e)?.get(t)?.[n];if(!i)return;let a=`${t}:${n}`,o=l.get(e);if(!o?.has(a)){o||(o=new Set,l.set(e,o)),o.add(a);try{i.call(e,r)}finally{o.delete(a)}}},p=(e,t,n,r,i)=>{r[n]=i;let a=`${t}:${n}`,o=n===`capture`,s=c.get(e),l=s?.get(a);if(i&&!l){s||(s=new Map,c.set(e,s));let r=r=>f(e,t,n,r);s.set(a,r),e.addEventListener(t,r,o)}else!i&&l&&(s.delete(a),e.removeEventListener(t,l,o))},m=(e,t,n,r)=>{p(e,t,r,n,void 0);let i=r===`capture`?`captureSet`:`bubbleSet`;for(let a of n[i]??[])e.removeEventListener(t,a,r===`capture`);n[i]=void 0},h=(e,t,n,r={})=>{let i=r.capture||o.has(t),a=i?`capture`:`bubble`,s=d(e),c=s.get(t)??{};if(s.set(t,c),r.multi){let r=i?`captureSet`:`bubbleSet`,a=c[r]??=new Set;a.has(n)||(a.add(n),e.addEventListener(t,n,i))}else p(e,t,a,c,n)},ee=e=>!e.capture&&!e.bubble&&(!e.captureSet||e.captureSet.size===0)&&(!e.bubbleSet||e.bubbleSet.size===0),te=(e,t,n,r={})=>{let i=s.get(e);if(!i)return;let a=i.get(t);if(a){if(n)for(let r of[`capture`,`bubble`])(r===`capture`?a.captureSet:a.bubbleSet)?.delete(n)&&e.removeEventListener(t,n,r===`capture`),a[r]===n&&p(e,t,r,a,void 0);else m(e,t,a,`capture`),m(e,t,a,`bubble`);ee(a)&&i.delete(t)}},g=new Set,ne=e=>(g.add(e),()=>{g.delete(e)}),_=e=>{let t=s.get(e);if(t){for(let[n,r]of t)m(e,n,r,`capture`),m(e,n,r,`bubble`);t.clear()}for(let t of g)t(e)},v=e=>{_(e);let t=e.ownerDocument;if(!t)return;let n=t.createTreeWalker(e,1),r=n.nextNode();for(;r;)_(r),r=n.nextNode()},re=e=>{let t=s.get(e);return t?new Set(t.keys()):new Set},y=e=>{let t=s.get(e);if(!t)return new Set;let n=new Set;for(let[e,r]of t)(r.bubble||r.bubbleSet?.size)&&n.add(`${e}:bubble`),(r.capture||r.captureSet?.size)&&n.add(`${e}:capture`);return n},b=(e,t,n)=>{let r=s.get(e);if(!r)return;let i=r.get(t);i&&(m(e,t,i,n),ee(i)&&r.delete(t))},x=Symbol(`defuss-morph.from-dom`),S=`#comment`,C=e=>!!e&&typeof e==`object`&&e.type===S,ie=new Set([`allowfullscreen`,`async`,`autofocus`,`autoplay`,`checked`,`controls`,`default`,`defer`,`disabled`,`formnovalidate`,`hidden`,`inert`,`ismap`,`itemscope`,`loop`,`multiple`,`muted`,`nomodule`,`novalidate`,`open`,`playsinline`,`readonly`,`required`,`reversed`,`selected`]),ae=e=>ie.has(e.name.toLowerCase())?!0:e.value;function w(e,t,n){return new n().parseFromString(e,t)}function T(e,t){let n=w(e,`image/svg+xml`,t);return n.documentElement?n.documentElement.nodeName.toLowerCase()===`svg`:!1}function E(e,t){return w(e,`text/html`,t).documentElement.querySelectorAll(`*`).length>2}var D=(e,t)=>e.indexOf(`<`)>-1&&e.indexOf(`>`)>-1&&(E(e,t)||T(e,t));function oe(e,t,n){let r=n||w(e,O(e,t),t);return r.body?Array.from(r.body.childNodes):r.documentElement?[r.documentElement]:[]}function O(e,t){return T(e,t)?`image/svg+xml`:`text/html`}function k(e){if(e.nodeType===3)return e.textContent||``;if(e.nodeType===1){let t=e,n={};for(let e=0;e<t.attributes.length;e++){let r=t.attributes[e];n[r.name]=ae(r)}let r=[];for(let e=0;e<t.childNodes.length;e++){let n=k(t.childNodes[e]);r.push(n)}return{type:t.tagName.toLowerCase(),attributes:{...n,[x]:!0},children:r}}return e.nodeType===8?{type:S,value:e.nodeValue??``}:``}var se=/^\s*(?:<!--[\s\S]*?-->\s*)*<(?:!doctype|html|head|body)[\s>/]/i;function A(e,t){let n=new t().parseFromString(se.test(e)?e:`<body>${e}`,`text/html`),r=[];for(let e=0;e<n.body.childNodes.length;e++){let t=k(n.body.childNodes[e]);t!==``&&r.push(t)}return r}var j=`class`,M=`xlink`,N=`xmlns`,P=`ref`,F=`dangerouslySetInnerHTML`,I={[N]:`http://www.w3.org/2000/xmlns/`,[M]:`http://www.w3.org/1999/xlink`,svg:`http://www.w3.org/2000/svg`},L=(e,t)=>{if(!e||typeof t!=`function`)throw Error(`Invalid arguments. Ensure domNode and onUnmount are valid.`);if(typeof MutationObserver>`u`)return;let n=e.parentNode;if(!n)throw Error(`The provided domNode does not have a parentNode.`);let r=new MutationObserver(i=>{for(let a of i)if(a.removedNodes.length>0){for(let i of a.removedNodes)if(i===e){queueMicrotask(()=>{if(!e.isConnected){t(),r.disconnect();return}let i=e.parentNode;i&&i!==n&&(n=i,r.disconnect(),r.observe(n,{childList:!0}))});return}}});r.observe(n,{childList:!0})},R=e=>{typeof e?.$onMount==`function`&&(e.$onMount(e),e.$onMount=null),typeof e?.$onUnmount==`function`&&L(e,e.$onUnmount)},z=e=>{let t={hasElNamespace:e=>e.namespaceURI===I.svg,hasSvgNamespace:(e,n)=>t.hasElNamespace(e)&&n!==`STYLE`&&n!==`SCRIPT`,createElementOrElements:(e,n)=>Array.isArray(e)?t.createChildElements(e,n):e===void 0?t.createTextNode(``,n):t.createElement(e,n),createElement:(n,r)=>{let i;if(C(n)){let t=e.createComment(n.value??``);return r?.appendChild(t),t}try{if(typeof n==`function`&&n.constructor.name===`AsyncFunction`)i=e.createElement(`div`);else if(typeof n==`object`&&n&&`type`in n){let a=n;typeof a.type==`function`?(i=e.createElement(`div`),i.innerText=`FATAL ERROR: ${a.type._error}`):i=typeof a.type==`string`&&a.type.toUpperCase()===`SVG`||r&&t.hasSvgNamespace(r,typeof a.type==`string`?a.type.toUpperCase():``)?e.createElementNS(I.svg,a.type):e.createElement(a.type),a.attributes&&(t.setAttributes(a,i),a.attributes.dangerouslySetInnerHTML&&(i.innerHTML=a.attributes.dangerouslySetInnerHTML.__html)),a.children&&!a.attributes?.dangerouslySetInnerHTML&&t.createChildElements(a.children,i)}else(typeof n==`string`||typeof n==`number`)&&(i=e.createElement(String(n)));i&&r&&(r.appendChild(i),R(i))}catch(e){throw console.error(`Fatal error! Error happend while rendering the VDOM!`,e,n),e}return i},createTextNode:(t,n)=>{let r=e.createTextNode(t.toString());return n&&n.appendChild(r),r},createChildElements:(e,n)=>{let r=[];for(let i=0;i<e.length;i++){let a=e[i];typeof a!=`boolean`&&(a===null||typeof a!=`object`&&typeof a!=`function`?r.push(t.createTextNode((a??``).toString(),n)):r.push(t.createElement(a,n)))}return r},setAttribute:(e,n,r)=>{if(n===void 0||e===F)return;if(e===`key`){r._defussKey=String(n);return}if(e===P&&typeof n!=`function`){let e=n;e.current=r,r._defussRef=n,r.$onUnmount=a(()=>{}),r.parentNode?L(r,r.$onUnmount):queueMicrotask(()=>{r.parentNode&&L(r,r.$onUnmount)});return}let i=u(e);if(i&&typeof n==`function`){let{eventType:e,capture:t}=i;if(e===`mount`){r.$onMount=a(n);return}if(e===`unmount`){if(r.$onUnmount){let e=r.$onUnmount;r.$onUnmount=()=>{e(),n()}}else r.$onUnmount=a(n);return}h(r,e,n,{capture:t});return}e===`className`&&(e=j),e===j&&Array.isArray(n)&&(n=n.filter(e=>!!e).join(` `));let o=e.match(/[A-Z]/)?.index;if(t.hasElNamespace(r)&&o){let t=e.substring(0,o).toLowerCase(),i=e.substring(o,e.length).toLowerCase(),a=I[t]||null;r.setAttributeNS(a,t===M||t===N?`${t}:${i}`:e,String(n))}else if(e===`style`&&typeof n!=`string`){let e=n;for(let t of Object.keys(e))r.style[t]=String(e[t])}else typeof n==`boolean`?(r[e]=n,n?r.setAttribute(e,``):r.removeAttribute(e)):(e===`value`||e===`checked`||e===`selectedIndex`)&&(r.nodeName===`INPUT`||r.nodeName===`TEXTAREA`||r.nodeName===`SELECT`)?(r[e]=n,e===`checked`?n?r.setAttribute(`checked`,``):r.removeAttribute(`checked`):e===`value`&&r.setAttribute(`value`,String(n))):r.setAttribute(e,String(n))},setAttributes:(e,n)=>{let r=Object.keys(e.attributes??{});for(let i=0;i<r.length;i++)t.setAttribute(r[i],e.attributes[r[i]],n)}};return t},ce=(e,t)=>{if(e===t)return!0;if(e.nodeType!==t.nodeType)return!1;if(e.nodeType===1){let n=e,r=t;if(n.tagName!==r.tagName)return!1;let i=n.attributes,a=r.attributes;if(i.length!==a.length)return!1;for(let e=0;e<i.length;e++){let t=i[e],n=r.getAttribute(t.name);if(t.value!==n)return!1}}return e.nodeType!==3&&e.nodeType!==8||e.nodeValue===t.nodeValue};function le(e){return typeof e==`string`||typeof e==`number`||typeof e==`boolean`}function ue(e){return!!(e&&typeof e==`object`&&`type`in e)}function de(e,t=!1){if(e==null||le(e)||ue(e)||t&&e&&typeof e==`object`&&`attributes`in e)return e}function fe(e,t=!1){let n=[],r=e=>{if(Array.isArray(e)){e.forEach(r);return}let i=de(e,t);if(i!==void 0){if(ue(i)&&(i.type===`fragment`||i.type===`Fragment`)){(Array.isArray(i.children)?i.children:[]).forEach(r);return}i!=null&&typeof i!=`boolean`&&n.push(i)}};r(e);let i=[],a=null,o=()=>{a!==null&&a.length>0&&i.push(a),a=null};for(let e of n){if(typeof e==`string`||typeof e==`number`||typeof e==`boolean`){a=(a??``)+String(e);continue}o(),i.push(e)}return o(),i}function B(e){if(!e||typeof e!=`object`)return null;let t=e.attributes?.key;if(typeof t==`string`||typeof t==`number`)return`k:${String(t)}`;let n=e.attributes?.id;return typeof n==`string`&&n.length>0?`id:${n}`:null}function pe(e){return e&&typeof e==`object`?`<${typeof e.type==`string`?e.type:`component`}>`:`plain text`}function V(e){if(e.nodeType!==1)return[];let t=e,n=[],r=t._defussKey;r&&n.push(`k:${r}`);let i=t.getAttribute(`key`);i&&n.push(`k:${i}`);let a=t.id;return a&&n.push(`id:${a}`),n}function me(e,t){if(typeof t==`string`||typeof t==`number`||typeof t==`boolean`)return e.nodeType===3;if(C(t))return e.nodeType===8;if(t&&typeof t==`object`){if(e.nodeType!==1)return!1;let n=e.tagName.toLowerCase(),r=typeof t.type==`string`?t.type.toLowerCase():``;return!(!r||n!==r)}return!1}function H(e,t){let n=z(t.window.document);if(e==null)return;if(typeof e==`string`||typeof e==`number`||typeof e==`boolean`)return[t.window.document.createTextNode(String(e))];let r=n.createElementOrElements(e);return r?(Array.isArray(r)?r:[r]).filter(Boolean):void 0}function he(e,t,n){let r=e.tagName.toLowerCase();return Object.hasOwn(n.attributes??{},t)?!1:r===`input`?t===`value`||t===`checked`:r===`textarea`||r===`select`?t===`value`:!1}function ge(e,t,n,r=!1){let i=z(n.window.document),a=r?[]:Array.from(e.attributes),o=t.attributes??{};for(let n of a){let{name:r}=n;if(r!==`key`&&!r.startsWith(`on`)&&(r!==`class`||!Object.hasOwn(o,`class`)&&!Object.hasOwn(o,`className`))&&!Object.hasOwn(o,r)){if(he(e,r,t))continue;e.removeAttribute(r)}}if(!(r||o[x])){let t=y(e),n=new Set;for(let e of Object.keys(o)){let t=u(e);if(t){let e=t.capture?`capture`:`bubble`;n.add(`${t.eventType}:${e}`)}}for(let r of t)if(!n.has(r)){let[t,n]=r.split(`:`);b(e,t,n)}}i.setAttributes(t,e),R(e);let s=t.attributes?.dangerouslySetInnerHTML;if(s&&typeof s==`object`&&typeof s.__html==`string`){e.innerHTML=s.__html;return}if(e.tagName.toLowerCase()===`textarea`){let t=Object.hasOwn(o,`value`);if(e.ownerDocument?.activeElement===e&&!t)return}r&&(t.children===void 0||t.children.length===0&&o[x])||xe(e,t.children??[],n)}function U(e,t){e.nodeType===1&&v(e),e.parentNode?.replaceChild(t,e)}function _e(e,t,n,r=!1){if(typeof t==`string`||typeof t==`number`||typeof t==`boolean`){let r=String(t);if(e.nodeType===3)return e.nodeValue!==r&&(e.nodeValue=r),e;let i=n.window.document.createTextNode(r);return U(e,i),i}if(C(t)){let r=t.value??``;if(e.nodeType===8)return e.nodeValue!==r&&(e.nodeValue=r),e;let i=n.window.document.createComment(r);return U(e,i),i}if(t&&typeof t==`object`){let i=typeof t.type==`string`?t.type:null;if(!i)return e;if(e.nodeType!==1){let r=H(t,n),i=Array.isArray(r)?r[0]:r;return i?(e.parentNode?.replaceChild(i,e),R(i),i):null}let a=e;if(a.tagName.toLowerCase()!==i.toLowerCase()){let e=H(t,n),r=Array.isArray(e)?e[0]:e;return r?(U(a,r),R(r),r):null}return ge(a,t,n,r),a}return e.nodeType===1&&v(e),e.parentNode?.removeChild(e),null}var W=new WeakSet,G=new Map,K=(e,t)=>t||{window:e?.ownerDocument?.defaultView??globalThis};function ve(e){let t=e.parentElement;for(;t;){if(W.has(t))return!0;t=t.parentElement}return!1}function ye(){if(G.size===0)return;let e=[...G.entries()];G.clear();for(let[t,{vdom:n,globals:r,mode:i}]of e)t.isConnected&&q(t,n,r,i)}function q(e,t,n,r=`replace`){let i=K(e,n);if(W.has(e)||ve(e)){G.set(e,{vdom:t,globals:i,mode:r});return}W.add(e);try{xe(e,t,i,r)}finally{W.delete(e)}ye()}function be(e,t,n){let r=new Map;for(let t of Array.from(e.childNodes))for(let e of V(t))r.has(e)||r.set(e,t);for(let i of t){if(typeof i==`string`&&i.trim()===``||C(i))continue;let t=B(i);if(!t)throw Error(`morph diff: patch items must be elements with a key or id attribute (got ${pe(i)})`);let a=r.get(t);if(a){_e(a,i&&typeof i==`object`&&!i.type?{...i,type:a.tagName.toLowerCase()}:i,n,!0);continue}if(!i?.type)throw Error(`morph diff: new (unmatched) patch items must declare a tag (type), got key/id "${t}"`);let o=H(i,n)??[];for(let t of o)e.appendChild(t),R(t)}}function xe(e,t,n,r=`replace`){let i=e,a=i.tagName.includes(`-`),o=i.shadowRoot&&!a?i.shadowRoot:e,s=fe(t,r===`diff`);if(r===`diff`){be(o,s,n);return}let c=Array.from(o.childNodes),l=new Map,u=new WeakMap,d=[];for(let e of c){let t=V(e);if(t.length>0){u.set(e,t);let n=!1;for(let r of t)l.has(r)||(l.set(r,e),n=!0);n||d.push(e)}else d.push(e)}let f=e=>{let t=u.get(e)??[];for(let e of t)l.delete(e)},p=e=>{for(let t=0;t<d.length;t++){let n=d[t];if(me(n,e))return d.splice(t,1),n}},m=0;for(let e of s){let t=B(e),r;t?(r=l.get(t),r&&f(r)):r=p(e);let i=o.childNodes[m]??null;if(r){r!==i&&o.insertBefore(r,i),_e(r,e,n),m++;continue}let a=H(e,n);if(!a||Array.isArray(a)&&a.length===0)continue;let s=Array.isArray(a)?a:[a];for(let e of s)o.insertBefore(e,i),R(e),m++}let h=new Set;for(let e of d)h.add(e);for(let e of l.values())h.add(e);for(let e of h)e.parentNode===o&&(e.nodeType===1&&v(e),o.removeChild(e))}function Se(e,t,n){let r=K(e,n);for(;e.firstChild;)e.removeChild(e.firstChild);let i=z(r.window.document).createElementOrElements(t);if(Array.isArray(i))for(let t of i)t&&(e.appendChild(t),R(t));else i&&(e.appendChild(i),R(i))}var Ce=e=>{if(e&&!e.getElementById(`defuss-shake`)){let t=e.createElement(`style`);t.id=`defuss-shake`,t.textContent=`@keyframes shake{0%,100%{transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{transform:translate3d(-10px,0,0)}20%,40%,60%,80%{transform:translate3d(10px,0,0)}}`,e.head.appendChild(t)}},J=(e,t,n=`ease-in-out`)=>{let r=`transform ${t}ms ${n}, opacity ${t}ms ${n}`;return{fade:{enter:{opacity:`0`,transition:r,transform:`translate3d(0,0,0)`},enterActive:{opacity:`1`},exit:{opacity:`1`,transition:r,transform:`translate3d(0,0,0)`},exitActive:{opacity:`0`}},"slide-left":{enter:{transform:`translate3d(100%,0,0)`,opacity:`0.5`,transition:r},enterActive:{transform:`translate3d(0,0,0)`,opacity:`1`},exit:{transform:`translate3d(0,0,0)`,opacity:`1`,transition:r},exitActive:{transform:`translate3d(-100%,0,0)`,opacity:`0.5`}},"slide-right":{enter:{transform:`translate3d(-100%,0,0)`,opacity:`0.5`,transition:r},enterActive:{transform:`translate3d(0,0,0)`,opacity:`1`},exit:{transform:`translate3d(0,0,0)`,opacity:`1`,transition:r},exitActive:{transform:`translate3d(100%,0,0)`,opacity:`0.5`}},shake:(Ce(typeof document<`u`?document:void 0),{enter:{transform:`translate3d(0,0,0)`,opacity:`1`,transition:`none`},enterActive:{transform:`translate3d(0,0,0)`,opacity:`1`,animation:`shake ${t}ms cubic-bezier(0.36,0.07,0.19,0.97)`},exit:{transform:`translate3d(0,0,0)`,opacity:`1`,transition:`none`},exitActive:{transform:`translate3d(0,0,0)`,opacity:`1`,animation:`shake ${t}ms cubic-bezier(0.36,0.07,0.19,0.97)`}})}[e]||{enter:{},enterActive:{},exit:{},exitActive:{}}},Y=(e,t)=>Object.entries(t).forEach(([t,n])=>e.style.setProperty(t,String(n))),X={type:`fade`,duration:300,easing:`ease-in-out`,delay:0,target:`parent`},Z=e=>new Promise(t=>setTimeout(t,e)),we=async(e,t,n,r)=>{let i=e.style.cssText,a=e.cloneNode(!0),o=e.ownerDocument;try{let i=e.getBoundingClientRect();a.style.cssText=`position:absolute;top:${i.top}px;left:${i.left}px;width:${i.width}px;height:${i.height}px;opacity:1;transition:opacity ${n}ms ${r};z-index:1000;`,e.style.opacity=`0`,e.style.transition=`opacity ${n}ms ${r}`,o.body.appendChild(a),await t(),e.offsetHeight,a.style.opacity=`0`,e.style.opacity=`1`,await Z(n),o.body.removeChild(a)}catch(e){throw a.parentElement&&o.body.removeChild(a),e}finally{e.style.cssText=i}},Q=async(e,t,n={})=>{let{type:r=`fade`,duration:i=300,easing:a=`ease-in-out`,delay:o=0}={...X,...n};if(r===`none`){await t();return}if(o>0&&await Z(o),r===`fade`){await we(e,t,i,a);return}let s=n.styles||J(r,i,a),c=e.style.transition,l=e.style.animation;try{r===`shake`&&(e.style.animation=`none`,e.offsetHeight),Y(e,s.exit),e.offsetHeight,Y(e,s.exitActive),await Z(i),await t(),Y(e,s.enter),e.offsetHeight,Y(e,s.enterActive),await Z(i),e.style.transition=c,e.style.animation=l}catch(t){throw e.style.transition=c,e.style.animation=l,t}},$=new WeakMap,Te=(e,t,n={})=>{let r=K(e),i=r.window,a=n.diff?`diff`:`replace`,o=t=>q(e,typeof t==`string`?A(t,i.DOMParser):t,r,a),s=n.transition;if(s&&s.type!==`none`){let n={...X,...s},r=n.target===`self`?e:e.parentElement;if(!r){o(t);return}let i={content:t};return $.set(e,i),Q(r,async()=>{$.get(e)===i&&o(i.content)},n).finally(()=>{$.get(e)===i&&$.delete(e)})}let c=$.get(e);c&&(c.content=t),o(t)};if(typeof globalThis<`u`){let e=globalThis,t=e.df$;(t===null||typeof t!=`object`&&typeof t!=`function`)&&(e.df$={}),Object.assign(e.df$,i)}export{q as updateDomWithVdom,K as resolveGlobals,Se as replaceDomWithVdom,oe as renderMarkup,b as removeDelegatedEventByKey,te as removeDelegatedEvent,h as registerDelegatedEvent,a as queueCallback,Q as performTransition,u as parseEventPropName,w as parseDOM,ne as onClearDelegatedEvents,L as observeUnmount,I as nsMap,Te as morph,T as isSVG,D as isMarkup,E as isHTML,C as isCommentVNode,A as htmlStringToVNodes,R as handleLifecycleEventsForOnMount,J as getTransitionStyles,z as getRenderer,re as getRegisteredEventTypes,y as getRegisteredEventKeys,O as getMimeType,k as domNodeToVNode,v as clearDelegatedEventsDeep,_ as clearDelegatedEvents,ce as areDomNodesEqual,Y as applyStyles,N as XMLNS_ATTRIBUTE_NAME,M as XLINK_ATTRIBUTE_NAME,P as REF_ATTRIBUTE_NAME,x as FROM_DOM_MARKER,X as DEFAULT_TRANSITION_CONFIG,F as DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE,S as COMMENT_TYPE,j as CLASS_ATTRIBUTE_NAME,o as CAPTURE_ONLY_EVENTS};
|
|
2
2
|
//# sourceMappingURL=all.min.js.map
|
package/dist/all.min.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","names":["__defProp","__returnValue","v","__exportSetter","name","newValue","__export","all","target","exports_src","updateDomWithVdom","resolveGlobals","replaceDomWithVdom","renderMarkup","removeDelegatedEventByKey","removeDelegatedEvent","registerDelegatedEvent","queueCallback","performTransition","parseEventPropName","parseDOM","observeUnmount","nsMap","morph2","isSVG","isMarkup","isHTML","htmlStringToVNodes","handleLifecycleEventsForOnMount","getTransitionStyles","getRenderer","getRegisteredEventTypes","getRegisteredEventKeys","getMimeType","domNodeToVNode","clearDelegatedEventsDeep","clearDelegatedEvents","areDomNodesEqual","applyStyles","XMLNS_ATTRIBUTE_NAME","XLINK_ATTRIBUTE_NAME","REF_ATTRIBUTE_NAME","FROM_DOM_MARKER","DEFAULT_TRANSITION_CONFIG","DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE","CLASS_ATTRIBUTE_NAME","CAPTURE_ONLY_EVENTS","args","cb","elementHandlerMap","bubbleDispatched","captureDispatched","activeDispatches","propName","raw","lower","isCapture","eventType","getOrCreateElementHandlers","existing","el","created","getEventPath","composedPath","event","path","node","maybeNode","doc","win","createPhaseHandler","dispatched","phase","t","ordered","handlersByEvent","entry","targets","dispatchKey","activeSet","handler","installedRootListeners","ensureRootListener","installed","root","captureKey","bubbleKey","getEventRoot","element","capture","options","byEvent","isEntryEmpty","walker","keys","domNode","onUnmount","parentNode","observer","mutation","mutationsList","removedNode","newParent","newEl","renderer","domElement","parentElement","type","virtualNode","parentDomElement","document2","vNode","text","children","virtualChildren","virtualChild","value","ref","parsed","existingUnmount","val","nsEndIndex","ns","attrName","namespace","styleObj","prop","attrNames","HTML_BOOLEAN_ATTRIBUTES","domAttributeToVNodeValue","attr","Parser","input","markup","attributes","i","childVNode","html","vNodes","vnode","oldNode","newNode","oldElement","newElement","oldAttrs","newAttrs","oldAttr","newAttrValue","isTextLike","isVNode","toValidChild","child","lenient","normalizeChildren","pushChild","valid","fused","buffer","flush","getVNodeMatchKey","key","id","describePatchItem","getDomMatchKeys","internalKey","attrKey","areNodeAndChildMatching","oldTag","newTag","createDomFromChild","globals","shouldPreserveFormStateAttribute","tag","patchElementInPlace","existingAttrs","mergeAttributes","nextAttrs","registeredKeys","nextEventKeys","d","isControlled","morphDomDirect","morphNode","next","newType","first","renderingNodes","pendingMorphs","isAncestorRendering","current","flushPendingMorphs","snapshot","vdom","mode","resolvedGlobals","newVDOM","morphDiff","keyedPool","targetRoot","k","item","patchItems","match","isCustomElement","nextChildren","nodeKeys","unkeyedPool","addedToKeyedPool","consumeKeyedNode","takeUnkeyedMatch","candidate","domIndex","anchor","nodes","remaining","newDom","injectShakeKeyframes","style","duration","easing","styles","wait","r","ms","performCrossfade","originalStyle","rect","updateCallback","error","config","delay","originalTransition","originalAnimation","inflightTransitions","apply","content","transition","transitionTarget","newContent","slot2","slot","g"],"sources":["all.js"],"version":3,"sourcesContent":["var __defProp = Object.defineProperty;\nvar __returnValue = (v) => v;\nfunction __exportSetter(name, newValue) {\n this[name] = __returnValue.bind(null, newValue);\n}\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, {\n get: all[name],\n enumerable: true,\n configurable: true,\n set: __exportSetter.bind(all, name)\n });\n};\n\n// src/index.ts\nvar exports_src = {};\n__export(exports_src, {\n updateDomWithVdom: () => updateDomWithVdom,\n resolveGlobals: () => resolveGlobals,\n replaceDomWithVdom: () => replaceDomWithVdom,\n renderMarkup: () => renderMarkup,\n removeDelegatedEventByKey: () => removeDelegatedEventByKey,\n removeDelegatedEvent: () => removeDelegatedEvent,\n registerDelegatedEvent: () => registerDelegatedEvent,\n queueCallback: () => queueCallback,\n performTransition: () => performTransition,\n parseEventPropName: () => parseEventPropName,\n parseDOM: () => parseDOM,\n observeUnmount: () => observeUnmount,\n nsMap: () => nsMap,\n morph: () => morph2,\n isSVG: () => isSVG,\n isMarkup: () => isMarkup,\n isHTML: () => isHTML,\n htmlStringToVNodes: () => htmlStringToVNodes,\n handleLifecycleEventsForOnMount: () => handleLifecycleEventsForOnMount,\n getTransitionStyles: () => getTransitionStyles,\n getRenderer: () => getRenderer,\n getRegisteredEventTypes: () => getRegisteredEventTypes,\n getRegisteredEventKeys: () => getRegisteredEventKeys,\n getMimeType: () => getMimeType,\n domNodeToVNode: () => domNodeToVNode,\n clearDelegatedEventsDeep: () => clearDelegatedEventsDeep,\n clearDelegatedEvents: () => clearDelegatedEvents,\n areDomNodesEqual: () => areDomNodesEqual,\n applyStyles: () => applyStyles,\n XMLNS_ATTRIBUTE_NAME: () => XMLNS_ATTRIBUTE_NAME,\n XLINK_ATTRIBUTE_NAME: () => XLINK_ATTRIBUTE_NAME,\n REF_ATTRIBUTE_NAME: () => REF_ATTRIBUTE_NAME,\n FROM_DOM_MARKER: () => FROM_DOM_MARKER,\n DEFAULT_TRANSITION_CONFIG: () => DEFAULT_TRANSITION_CONFIG,\n DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE: () => DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE,\n CLASS_ATTRIBUTE_NAME: () => CLASS_ATTRIBUTE_NAME,\n CAPTURE_ONLY_EVENTS: () => CAPTURE_ONLY_EVENTS\n});\n\n// src/queue.ts\nvar queueCallback = (cb) => (...args) => queueMicrotask(() => cb(...args));\n\n// src/delegated-events.ts\nvar CAPTURE_ONLY_EVENTS = new Set([\n \"focus\",\n \"blur\",\n \"scroll\",\n \"mouseenter\",\n \"mouseleave\"\n]);\nvar elementHandlerMap = new WeakMap;\nvar bubbleDispatched = new WeakMap;\nvar captureDispatched = new WeakMap;\nvar activeDispatches = new WeakMap;\nvar parseEventPropName = (propName) => {\n if (!propName.startsWith(\"on\"))\n return null;\n const raw = propName.slice(2);\n if (!raw)\n return null;\n const lower = raw.toLowerCase();\n const isCapture = lower.endsWith(\"capture\");\n const eventType = isCapture ? lower.slice(0, -\"capture\".length) : lower;\n if (!eventType)\n return null;\n return { eventType, capture: isCapture };\n};\nvar getOrCreateElementHandlers = (el) => {\n const existing = elementHandlerMap.get(el);\n if (existing)\n return existing;\n const created = new Map;\n elementHandlerMap.set(el, created);\n return created;\n};\nvar getEventPath = (event) => {\n const composedPath = event.composedPath?.();\n if (composedPath && composedPath.length > 0)\n return composedPath;\n const path = [];\n let node = event.target;\n while (node) {\n path.push(node);\n const maybeNode = node;\n if (typeof maybeNode === \"object\" && maybeNode && \"parentNode\" in maybeNode) {\n node = maybeNode.parentNode;\n continue;\n }\n break;\n }\n const doc = event.target?.ownerDocument;\n if (doc && path[path.length - 1] !== doc)\n path.push(doc);\n const win = doc?.defaultView;\n if (win && path[path.length - 1] !== win)\n path.push(win);\n return path;\n};\nvar createPhaseHandler = (eventType, phase) => {\n const dispatched = phase === \"capture\" ? captureDispatched : bubbleDispatched;\n return (event) => {\n const path = getEventPath(event).filter((t) => typeof t === \"object\" && t !== null && t.nodeType === 1);\n const ordered = phase === \"capture\" ? [...path].reverse() : path;\n for (const target of ordered) {\n const handlersByEvent = elementHandlerMap.get(target);\n if (!handlersByEvent)\n continue;\n const entry = handlersByEvent.get(eventType);\n if (!entry)\n continue;\n let targets = dispatched.get(event);\n if (targets?.has(target))\n continue;\n if (!targets) {\n targets = new WeakSet;\n dispatched.set(event, targets);\n }\n targets.add(target);\n const dispatchKey = `${eventType}:${phase}`;\n let activeSet = activeDispatches.get(target);\n if (activeSet?.has(dispatchKey))\n continue;\n if (!activeSet) {\n activeSet = new Set;\n activeDispatches.set(target, activeSet);\n }\n activeSet.add(dispatchKey);\n try {\n if (phase === \"capture\") {\n if (entry.capture) {\n entry.capture.call(target, event);\n if (event.cancelBubble)\n return;\n }\n if (entry.captureSet) {\n for (const handler of entry.captureSet) {\n handler.call(target, event);\n if (event.cancelBubble)\n return;\n }\n }\n } else {\n if (entry.bubble) {\n entry.bubble.call(target, event);\n if (event.cancelBubble)\n return;\n }\n if (entry.bubbleSet) {\n for (const handler of entry.bubbleSet) {\n handler.call(target, event);\n if (event.cancelBubble)\n return;\n }\n }\n }\n } finally {\n activeSet.delete(dispatchKey);\n }\n }\n };\n};\nvar installedRootListeners = new WeakMap;\nvar ensureRootListener = (root, eventType) => {\n const installed = installedRootListeners.get(root) ?? new Set;\n installedRootListeners.set(root, installed);\n const captureKey = `${eventType}:capture`;\n if (!installed.has(captureKey)) {\n root.addEventListener(eventType, createPhaseHandler(eventType, \"capture\"), true);\n installed.add(captureKey);\n }\n const bubbleKey = `${eventType}:bubble`;\n if (!installed.has(bubbleKey)) {\n root.addEventListener(eventType, createPhaseHandler(eventType, \"bubble\"), false);\n installed.add(bubbleKey);\n }\n};\nvar getEventRoot = (element) => {\n const root = element.getRootNode();\n if (root && root.nodeType === 9) {\n return root;\n }\n if (root && root.nodeType === 11 && \"host\" in root) {\n return root;\n }\n return null;\n};\nvar registerDelegatedEvent = (element, eventType, handler, options = {}) => {\n const root = getEventRoot(element);\n const capture = options.capture || CAPTURE_ONLY_EVENTS.has(eventType);\n if (root) {\n ensureRootListener(root, eventType);\n } else if (element.ownerDocument) {\n ensureRootListener(element.ownerDocument, eventType);\n } else {\n element.addEventListener(eventType, handler, capture);\n }\n const byEvent = getOrCreateElementHandlers(element);\n const entry = byEvent.get(eventType) ?? {};\n byEvent.set(eventType, entry);\n if (options.multi) {\n if (capture) {\n if (!entry.captureSet)\n entry.captureSet = new Set;\n entry.captureSet.add(handler);\n } else {\n if (!entry.bubbleSet)\n entry.bubbleSet = new Set;\n entry.bubbleSet.add(handler);\n }\n } else {\n if (capture) {\n entry.capture = handler;\n } else {\n entry.bubble = handler;\n }\n }\n};\nvar isEntryEmpty = (entry) => !entry.capture && !entry.bubble && (!entry.captureSet || entry.captureSet.size === 0) && (!entry.bubbleSet || entry.bubbleSet.size === 0);\nvar removeDelegatedEvent = (target, eventType, handler, _options = {}) => {\n const byEvent = elementHandlerMap.get(target);\n if (!byEvent)\n return;\n const entry = byEvent.get(eventType);\n if (!entry)\n return;\n if (handler) {\n if (entry.captureSet) {\n entry.captureSet.delete(handler);\n }\n if (entry.bubbleSet) {\n entry.bubbleSet.delete(handler);\n }\n if (entry.capture === handler) {\n entry.capture = undefined;\n }\n if (entry.bubble === handler) {\n entry.bubble = undefined;\n }\n target.removeEventListener(eventType, handler, true);\n target.removeEventListener(eventType, handler, false);\n } else {\n entry.capture = undefined;\n entry.bubble = undefined;\n entry.captureSet = undefined;\n entry.bubbleSet = undefined;\n }\n if (isEntryEmpty(entry)) {\n byEvent.delete(eventType);\n }\n};\nvar clearDelegatedEvents = (target) => {\n const byEvent = elementHandlerMap.get(target);\n if (!byEvent)\n return;\n byEvent.clear();\n};\nvar clearDelegatedEventsDeep = (root) => {\n clearDelegatedEvents(root);\n const doc = root.ownerDocument;\n if (!doc)\n return;\n const walker = doc.createTreeWalker(root, 1);\n let node = walker.nextNode();\n while (node) {\n clearDelegatedEvents(node);\n node = walker.nextNode();\n }\n};\nvar getRegisteredEventTypes = (element) => {\n const byEvent = elementHandlerMap.get(element);\n if (!byEvent)\n return new Set;\n return new Set(byEvent.keys());\n};\nvar getRegisteredEventKeys = (element) => {\n const byEvent = elementHandlerMap.get(element);\n if (!byEvent)\n return new Set;\n const keys = new Set;\n for (const [eventType, entry] of byEvent) {\n if (entry.bubble || entry.bubbleSet?.size)\n keys.add(`${eventType}:bubble`);\n if (entry.capture || entry.captureSet?.size)\n keys.add(`${eventType}:capture`);\n }\n return keys;\n};\nvar removeDelegatedEventByKey = (element, eventType, phase) => {\n const byEvent = elementHandlerMap.get(element);\n if (!byEvent)\n return;\n const entry = byEvent.get(eventType);\n if (!entry)\n return;\n if (phase === \"capture\") {\n entry.capture = undefined;\n entry.captureSet = undefined;\n } else {\n entry.bubble = undefined;\n entry.bubbleSet = undefined;\n }\n if (isEntryEmpty(entry))\n byEvent.delete(eventType);\n};\n\n// src/renderer.ts\nvar CLASS_ATTRIBUTE_NAME = \"class\";\nvar XLINK_ATTRIBUTE_NAME = \"xlink\";\nvar XMLNS_ATTRIBUTE_NAME = \"xmlns\";\nvar REF_ATTRIBUTE_NAME = \"ref\";\nvar DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE = \"dangerouslySetInnerHTML\";\nvar nsMap = {\n [XMLNS_ATTRIBUTE_NAME]: \"http://www.w3.org/2000/xmlns/\",\n [XLINK_ATTRIBUTE_NAME]: \"http://www.w3.org/1999/xlink\",\n svg: \"http://www.w3.org/2000/svg\"\n};\nvar observeUnmount = (domNode, onUnmount) => {\n if (!domNode || typeof onUnmount !== \"function\") {\n throw new Error(\"Invalid arguments. Ensure domNode and onUnmount are valid.\");\n }\n if (typeof MutationObserver === \"undefined\") {\n return;\n }\n let parentNode = domNode.parentNode;\n if (!parentNode) {\n throw new Error(\"The provided domNode does not have a parentNode.\");\n }\n const observer = new MutationObserver((mutationsList) => {\n for (const mutation of mutationsList) {\n if (mutation.removedNodes.length > 0) {\n for (const removedNode of mutation.removedNodes) {\n if (removedNode === domNode) {\n queueMicrotask(() => {\n if (!domNode.isConnected) {\n onUnmount();\n observer.disconnect();\n return;\n }\n const newParent = domNode.parentNode;\n if (newParent && newParent !== parentNode) {\n parentNode = newParent;\n observer.disconnect();\n observer.observe(parentNode, { childList: true });\n }\n });\n return;\n }\n }\n }\n }\n });\n observer.observe(parentNode, { childList: true });\n};\nvar handleLifecycleEventsForOnMount = (newEl) => {\n if (typeof newEl?.$onMount === \"function\") {\n newEl.$onMount(newEl);\n newEl.$onMount = null;\n }\n if (typeof newEl?.$onUnmount === \"function\") {\n observeUnmount(newEl, newEl.$onUnmount);\n }\n};\nvar getRenderer = (document2) => {\n const renderer = {\n hasElNamespace: (domElement) => domElement.namespaceURI === nsMap.svg,\n hasSvgNamespace: (parentElement, type) => renderer.hasElNamespace(parentElement) && type !== \"STYLE\" && type !== \"SCRIPT\",\n createElementOrElements: (virtualNode, parentDomElement) => {\n if (Array.isArray(virtualNode)) {\n return renderer.createChildElements(virtualNode, parentDomElement);\n }\n if (typeof virtualNode !== \"undefined\") {\n return renderer.createElement(virtualNode, parentDomElement);\n }\n return renderer.createTextNode(\"\", parentDomElement);\n },\n createElement: (virtualNode, parentDomElement) => {\n let newEl;\n try {\n if (typeof virtualNode === \"function\" && virtualNode.constructor.name === \"AsyncFunction\") {\n newEl = document2.createElement(\"div\");\n } else if (typeof virtualNode === \"object\" && virtualNode !== null && \"type\" in virtualNode) {\n const vNode = virtualNode;\n if (typeof vNode.type === \"function\") {\n newEl = document2.createElement(\"div\");\n newEl.innerText = `FATAL ERROR: ${vNode.type._error}`;\n } else if (typeof vNode.type === \"string\" && vNode.type.toUpperCase() === \"SVG\" || parentDomElement && renderer.hasSvgNamespace(parentDomElement, typeof vNode.type === \"string\" ? vNode.type.toUpperCase() : \"\")) {\n newEl = document2.createElementNS(nsMap.svg, vNode.type);\n } else {\n newEl = document2.createElement(vNode.type);\n }\n if (vNode.attributes) {\n renderer.setAttributes(vNode, newEl);\n if (vNode.attributes.dangerouslySetInnerHTML) {\n newEl.innerHTML = vNode.attributes.dangerouslySetInnerHTML.__html;\n }\n }\n if (vNode.children && !vNode.attributes?.dangerouslySetInnerHTML) {\n renderer.createChildElements(vNode.children, newEl);\n }\n } else {\n if (typeof virtualNode === \"string\" || typeof virtualNode === \"number\") {\n newEl = document2.createElement(String(virtualNode));\n }\n }\n if (newEl && parentDomElement) {\n parentDomElement.appendChild(newEl);\n handleLifecycleEventsForOnMount(newEl);\n }\n } catch (e) {\n console.error(\"Fatal error! Error happend while rendering the VDOM!\", e, virtualNode);\n throw e;\n }\n return newEl;\n },\n createTextNode: (text, domElement) => {\n const node = document2.createTextNode(text.toString());\n if (domElement) {\n domElement.appendChild(node);\n }\n return node;\n },\n createChildElements: (virtualChildren, domElement) => {\n const children = [];\n for (let i = 0;i < virtualChildren.length; i++) {\n const virtualChild = virtualChildren[i];\n if (typeof virtualChild === \"boolean\") {\n continue;\n }\n if (virtualChild === null || typeof virtualChild !== \"object\" && typeof virtualChild !== \"function\") {\n children.push(renderer.createTextNode((typeof virtualChild === \"undefined\" || virtualChild === null ? \"\" : virtualChild).toString(), domElement));\n } else {\n children.push(renderer.createElement(virtualChild, domElement));\n }\n }\n return children;\n },\n setAttribute: (name, value, domElement) => {\n if (typeof value === \"undefined\")\n return;\n if (name === DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE)\n return;\n if (name === \"key\") {\n domElement._defussKey = String(value);\n return;\n }\n if (name === REF_ATTRIBUTE_NAME && typeof value !== \"function\") {\n const ref = value;\n ref.current = domElement;\n domElement._defussRef = value;\n domElement.$onUnmount = queueCallback(() => {});\n if (domElement.parentNode) {\n observeUnmount(domElement, domElement.$onUnmount);\n } else {\n queueMicrotask(() => {\n if (domElement.parentNode) {\n observeUnmount(domElement, domElement.$onUnmount);\n }\n });\n }\n return;\n }\n const parsed = parseEventPropName(name);\n if (parsed && typeof value === \"function\") {\n const { eventType, capture } = parsed;\n if (eventType === \"mount\") {\n domElement.$onMount = queueCallback(value);\n return;\n }\n if (eventType === \"unmount\") {\n if (domElement.$onUnmount) {\n const existingUnmount = domElement.$onUnmount;\n domElement.$onUnmount = () => {\n existingUnmount();\n value();\n };\n } else {\n domElement.$onUnmount = queueCallback(value);\n }\n return;\n }\n registerDelegatedEvent(domElement, eventType, value, { capture });\n return;\n }\n if (name === \"className\") {\n name = CLASS_ATTRIBUTE_NAME;\n }\n if (name === CLASS_ATTRIBUTE_NAME && Array.isArray(value)) {\n value = value.filter((val) => !!val).join(\" \");\n }\n const nsEndIndex = name.match(/[A-Z]/)?.index;\n if (renderer.hasElNamespace(domElement) && nsEndIndex) {\n const ns = name.substring(0, nsEndIndex).toLowerCase();\n const attrName = name.substring(nsEndIndex, name.length).toLowerCase();\n const namespace = nsMap[ns] || null;\n domElement.setAttributeNS(namespace, ns === XLINK_ATTRIBUTE_NAME || ns === XMLNS_ATTRIBUTE_NAME ? `${ns}:${attrName}` : name, String(value));\n } else if (name === \"style\" && typeof value !== \"string\") {\n const styleObj = value;\n for (const prop of Object.keys(styleObj)) {\n domElement.style[prop] = String(styleObj[prop]);\n }\n } else if (typeof value === \"boolean\") {\n domElement[name] = value;\n if (value) {\n domElement.setAttribute(name, \"\");\n } else {\n domElement.removeAttribute(name);\n }\n } else if ((name === \"value\" || name === \"checked\" || name === \"selectedIndex\") && (domElement.nodeName === \"INPUT\" || domElement.nodeName === \"TEXTAREA\" || domElement.nodeName === \"SELECT\")) {\n domElement[name] = value;\n if (name === \"checked\") {\n if (value) {\n domElement.setAttribute(\"checked\", \"\");\n } else {\n domElement.removeAttribute(\"checked\");\n }\n } else if (name === \"value\") {\n domElement.setAttribute(\"value\", String(value));\n }\n } else {\n domElement.setAttribute(name, String(value));\n }\n },\n setAttributes: (virtualNode, domElement) => {\n const attrNames = Object.keys(virtualNode.attributes ?? {});\n for (let i = 0;i < attrNames.length; i++) {\n renderer.setAttribute(attrNames[i], virtualNode.attributes[attrNames[i]], domElement);\n }\n }\n };\n return renderer;\n};\n\n// src/html.ts\nvar FROM_DOM_MARKER = Symbol(\"defuss-morph.from-dom\");\nvar HTML_BOOLEAN_ATTRIBUTES = new Set([\n \"allowfullscreen\",\n \"async\",\n \"autofocus\",\n \"autoplay\",\n \"checked\",\n \"controls\",\n \"default\",\n \"defer\",\n \"disabled\",\n \"formnovalidate\",\n \"hidden\",\n \"inert\",\n \"ismap\",\n \"itemscope\",\n \"loop\",\n \"multiple\",\n \"muted\",\n \"nomodule\",\n \"novalidate\",\n \"open\",\n \"playsinline\",\n \"readonly\",\n \"required\",\n \"reversed\",\n \"selected\"\n]);\nvar domAttributeToVNodeValue = (attr) => HTML_BOOLEAN_ATTRIBUTES.has(attr.name.toLowerCase()) ? true : attr.value;\nfunction parseDOM(input, type, Parser) {\n return new Parser().parseFromString(input, type);\n}\nfunction isSVG(input, Parser) {\n const doc = parseDOM(input, \"image/svg+xml\", Parser);\n if (!doc.documentElement)\n return false;\n return doc.documentElement.nodeName.toLowerCase() === \"svg\";\n}\nfunction isHTML(input, Parser) {\n const doc = parseDOM(input, \"text/html\", Parser);\n return doc.documentElement.querySelectorAll(\"*\").length > 2;\n}\nvar isMarkup = (input, Parser) => input.indexOf(\"<\") > -1 && input.indexOf(\">\") > -1 && (isHTML(input, Parser) || isSVG(input, Parser));\nfunction renderMarkup(markup, Parser, doc) {\n const parsed = doc ? doc : parseDOM(markup, getMimeType(markup, Parser), Parser);\n if (parsed.body)\n return Array.from(parsed.body.childNodes);\n return parsed.documentElement ? [parsed.documentElement] : [];\n}\nfunction getMimeType(input, Parser) {\n if (isSVG(input, Parser)) {\n return \"image/svg+xml\";\n }\n return \"text/html\";\n}\nfunction domNodeToVNode(node) {\n if (node.nodeType === 3) {\n return node.textContent || \"\";\n }\n if (node.nodeType === 1) {\n const element = node;\n const attributes = {};\n for (let i = 0;i < element.attributes.length; i++) {\n const attr = element.attributes[i];\n attributes[attr.name] = domAttributeToVNodeValue(attr);\n }\n const children = [];\n for (let i = 0;i < element.childNodes.length; i++) {\n const childVNode = domNodeToVNode(element.childNodes[i]);\n children.push(childVNode);\n }\n return {\n type: element.tagName.toLowerCase(),\n attributes: { ...attributes, [FROM_DOM_MARKER]: true },\n children\n };\n }\n return \"\";\n}\nfunction htmlStringToVNodes(html, Parser) {\n const parser = new Parser;\n const doc = parser.parseFromString(html, \"text/html\");\n const vNodes = [];\n for (let i = 0;i < doc.body.childNodes.length; i++) {\n const vnode = domNodeToVNode(doc.body.childNodes[i]);\n if (vnode !== \"\") {\n vNodes.push(vnode);\n }\n }\n return vNodes;\n}\n\n// src/morph.ts\nvar areDomNodesEqual = (oldNode, newNode) => {\n if (oldNode === newNode)\n return true;\n if (oldNode.nodeType !== newNode.nodeType)\n return false;\n if (oldNode.nodeType === 1) {\n const oldElement = oldNode;\n const newElement = newNode;\n if (oldElement.tagName !== newElement.tagName)\n return false;\n const oldAttrs = oldElement.attributes;\n const newAttrs = newElement.attributes;\n if (oldAttrs.length !== newAttrs.length)\n return false;\n for (let i = 0;i < oldAttrs.length; i++) {\n const oldAttr = oldAttrs[i];\n const newAttrValue = newElement.getAttribute(oldAttr.name);\n if (oldAttr.value !== newAttrValue)\n return false;\n }\n }\n if (oldNode.nodeType === 3) {\n if (oldNode.textContent !== newNode.textContent)\n return false;\n }\n return true;\n};\nfunction isTextLike(value) {\n return typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\";\n}\nfunction isVNode(value) {\n return Boolean(value && typeof value === \"object\" && \"type\" in value);\n}\nfunction toValidChild(child, lenient = false) {\n if (child == null)\n return child;\n if (isTextLike(child))\n return child;\n if (isVNode(child))\n return child;\n if (lenient && child && typeof child === \"object\" && \"attributes\" in child)\n return child;\n return;\n}\nfunction normalizeChildren(input, lenient = false) {\n const raw = [];\n const pushChild = (child) => {\n if (Array.isArray(child)) {\n child.forEach(pushChild);\n return;\n }\n const valid = toValidChild(child, lenient);\n if (typeof valid === \"undefined\")\n return;\n if (isVNode(valid) && (valid.type === \"fragment\" || valid.type === \"Fragment\")) {\n const nested = Array.isArray(valid.children) ? valid.children : [];\n nested.forEach(pushChild);\n return;\n }\n if (valid === null || typeof valid === \"undefined\" || typeof valid === \"boolean\")\n return;\n raw.push(valid);\n };\n pushChild(input);\n const fused = [];\n let buffer = null;\n const flush = () => {\n if (buffer !== null && buffer.length > 0)\n fused.push(buffer);\n buffer = null;\n };\n for (const child of raw) {\n if (typeof child === \"string\" || typeof child === \"number\" || typeof child === \"boolean\") {\n buffer = (buffer ?? \"\") + String(child);\n continue;\n }\n flush();\n fused.push(child);\n }\n flush();\n return fused;\n}\nfunction getVNodeMatchKey(child) {\n if (!child || typeof child !== \"object\")\n return null;\n const key = child.attributes?.key;\n if (typeof key === \"string\" || typeof key === \"number\")\n return `k:${String(key)}`;\n const id = child.attributes?.id;\n if (typeof id === \"string\" && id.length > 0)\n return `id:${id}`;\n return null;\n}\nfunction describePatchItem(child) {\n if (child && typeof child === \"object\") {\n return `<${typeof child.type === \"string\" ? child.type : \"component\"}>`;\n }\n return \"plain text\";\n}\nfunction getDomMatchKeys(node) {\n if (node.nodeType !== 1)\n return [];\n const el = node;\n const keys = [];\n const internalKey = el._defussKey;\n if (internalKey)\n keys.push(`k:${internalKey}`);\n const attrKey = el.getAttribute(\"key\");\n if (attrKey)\n keys.push(`k:${attrKey}`);\n const id = el.id;\n if (id)\n keys.push(`id:${id}`);\n return keys;\n}\nfunction areNodeAndChildMatching(domNode, child) {\n if (typeof child === \"string\" || typeof child === \"number\" || typeof child === \"boolean\") {\n return domNode.nodeType === 3;\n }\n if (child && typeof child === \"object\") {\n if (domNode.nodeType !== 1)\n return false;\n const el = domNode;\n const oldTag = el.tagName.toLowerCase();\n const newTag = typeof child.type === \"string\" ? child.type.toLowerCase() : \"\";\n if (!newTag || oldTag !== newTag)\n return false;\n return true;\n }\n return false;\n}\nfunction createDomFromChild(child, globals) {\n const renderer = getRenderer(globals.window.document);\n if (child == null)\n return;\n if (typeof child === \"string\" || typeof child === \"number\" || typeof child === \"boolean\") {\n return [globals.window.document.createTextNode(String(child))];\n }\n const created = renderer.createElementOrElements(child);\n if (!created)\n return;\n const nodes = Array.isArray(created) ? created : [created];\n return nodes.filter(Boolean);\n}\nfunction shouldPreserveFormStateAttribute(el, attrName, vnode) {\n const tag = el.tagName.toLowerCase();\n const hasExplicit = Object.hasOwn(vnode.attributes ?? {}, attrName);\n if (hasExplicit)\n return false;\n if (tag === \"input\")\n return attrName === \"value\" || attrName === \"checked\";\n if (tag === \"textarea\")\n return attrName === \"value\";\n if (tag === \"select\")\n return attrName === \"value\";\n return false;\n}\nfunction patchElementInPlace(el, vnode, globals, mergeAttributes = false) {\n const renderer = getRenderer(globals.window.document);\n const existingAttrs = mergeAttributes ? [] : Array.from(el.attributes);\n const nextAttrs = vnode.attributes ?? {};\n for (const attr of existingAttrs) {\n const { name } = attr;\n if (name === \"key\")\n continue;\n if (name.startsWith(\"on\"))\n continue;\n if (name === \"class\" && (Object.hasOwn(nextAttrs, \"class\") || Object.hasOwn(nextAttrs, \"className\"))) {\n continue;\n }\n if (!Object.hasOwn(nextAttrs, name)) {\n if (shouldPreserveFormStateAttribute(el, name, vnode))\n continue;\n el.removeAttribute(name);\n }\n }\n const preserveDelegatedHandlers = mergeAttributes || Boolean(nextAttrs[FROM_DOM_MARKER]);\n if (!preserveDelegatedHandlers) {\n const registeredKeys = getRegisteredEventKeys(el);\n const nextEventKeys = new Set;\n for (const propName of Object.keys(nextAttrs)) {\n const parsed = parseEventPropName(propName);\n if (parsed) {\n const phase = parsed.capture ? \"capture\" : \"bubble\";\n nextEventKeys.add(`${parsed.eventType}:${phase}`);\n }\n }\n for (const key of registeredKeys) {\n if (!nextEventKeys.has(key)) {\n const [eventType, phase] = key.split(\":\");\n removeDelegatedEventByKey(el, eventType, phase);\n }\n }\n }\n renderer.setAttributes(vnode, el);\n handleLifecycleEventsForOnMount(el);\n const d = vnode.attributes?.dangerouslySetInnerHTML;\n if (d && typeof d === \"object\" && typeof d.__html === \"string\") {\n el.innerHTML = d.__html;\n return;\n }\n const tag = el.tagName.toLowerCase();\n if (tag === \"textarea\") {\n const isControlled = Object.hasOwn(nextAttrs, \"value\");\n const isActive = el.ownerDocument?.activeElement === el;\n if (isActive && !isControlled)\n return;\n }\n if (mergeAttributes && (vnode.children === undefined || vnode.children.length === 0 && nextAttrs[FROM_DOM_MARKER]))\n return;\n morphDomDirect(el, vnode.children ?? [], globals);\n}\nfunction morphNode(domNode, child, globals, mergeAttributes = false) {\n if (typeof child === \"string\" || typeof child === \"number\" || typeof child === \"boolean\") {\n const text = String(child);\n if (domNode.nodeType === 3) {\n if (domNode.nodeValue !== text)\n domNode.nodeValue = text;\n return domNode;\n }\n const next = globals.window.document.createTextNode(text);\n domNode.parentNode?.replaceChild(next, domNode);\n return next;\n }\n if (child && typeof child === \"object\") {\n const newType = typeof child.type === \"string\" ? child.type : null;\n if (!newType)\n return domNode;\n if (domNode.nodeType !== 1) {\n const created = createDomFromChild(child, globals);\n const first = Array.isArray(created) ? created[0] : created;\n if (!first)\n return null;\n domNode.parentNode?.replaceChild(first, domNode);\n handleLifecycleEventsForOnMount(first);\n return first;\n }\n const el = domNode;\n const oldTag = el.tagName.toLowerCase();\n const newTag = newType.toLowerCase();\n if (oldTag !== newTag) {\n const created = createDomFromChild(child, globals);\n const first = Array.isArray(created) ? created[0] : created;\n if (!first)\n return null;\n el.parentNode?.replaceChild(first, el);\n handleLifecycleEventsForOnMount(first);\n return first;\n }\n patchElementInPlace(el, child, globals, mergeAttributes);\n return el;\n }\n domNode.parentNode?.removeChild(domNode);\n return null;\n}\nvar renderingNodes = new WeakSet;\nvar pendingMorphs = new Map;\nvar resolveGlobals = (el, globals) => {\n if (globals)\n return globals;\n const win = el?.ownerDocument?.defaultView ?? globalThis;\n return { window: win };\n};\nfunction isAncestorRendering(el) {\n let current = el.parentElement;\n while (current) {\n if (renderingNodes.has(current))\n return true;\n current = current.parentElement;\n }\n return false;\n}\nfunction flushPendingMorphs() {\n if (pendingMorphs.size === 0)\n return;\n const snapshot = [...pendingMorphs.entries()];\n pendingMorphs.clear();\n for (const [el, { vdom, globals, mode }] of snapshot) {\n if (!el.isConnected)\n continue;\n updateDomWithVdom(el, vdom, globals, mode);\n }\n}\nfunction updateDomWithVdom(parentElement, newVDOM, globals, mode = \"replace\") {\n const resolvedGlobals = resolveGlobals(parentElement, globals);\n if (renderingNodes.has(parentElement) || isAncestorRendering(parentElement)) {\n pendingMorphs.set(parentElement, {\n vdom: newVDOM,\n globals: resolvedGlobals,\n mode\n });\n return;\n }\n renderingNodes.add(parentElement);\n try {\n morphDomDirect(parentElement, newVDOM, resolvedGlobals, mode);\n } finally {\n renderingNodes.delete(parentElement);\n }\n flushPendingMorphs();\n}\nfunction morphDiff(targetRoot, patchItems, globals) {\n const keyedPool = new Map;\n for (const node of Array.from(targetRoot.childNodes)) {\n for (const k of getDomMatchKeys(node)) {\n if (!keyedPool.has(k))\n keyedPool.set(k, node);\n }\n }\n for (const item of patchItems) {\n if (typeof item === \"string\" && item.trim() === \"\")\n continue;\n const key = getVNodeMatchKey(item);\n if (!key) {\n throw new Error(`morph diff: patch items must be elements with a key or id attribute (got ${describePatchItem(item)})`);\n }\n const match = keyedPool.get(key);\n if (match) {\n const patchItem = item && typeof item === \"object\" && !item.type ? { ...item, type: match.tagName.toLowerCase() } : item;\n morphNode(match, patchItem, globals, true);\n continue;\n }\n if (!item?.type) {\n throw new Error(`morph diff: new (unmatched) patch items must declare a tag (type), got key/id \"${key}\"`);\n }\n const created = createDomFromChild(item, globals) ?? [];\n for (const node of created) {\n targetRoot.appendChild(node);\n handleLifecycleEventsForOnMount(node);\n }\n }\n}\nfunction morphDomDirect(parentElement, newVDOM, globals, mode = \"replace\") {\n const el = parentElement;\n const isCustomElement = el.tagName.includes(\"-\");\n const targetRoot = el.shadowRoot && !isCustomElement ? el.shadowRoot : parentElement;\n const nextChildren = normalizeChildren(newVDOM, mode === \"diff\");\n if (mode === \"diff\") {\n morphDiff(targetRoot, nextChildren, globals);\n return;\n }\n const existing = Array.from(targetRoot.childNodes);\n const keyedPool = new Map;\n const nodeKeys = new WeakMap;\n const unkeyedPool = [];\n for (const node of existing) {\n const keys = getDomMatchKeys(node);\n if (keys.length > 0) {\n nodeKeys.set(node, keys);\n let addedToKeyedPool = false;\n for (const k of keys) {\n if (!keyedPool.has(k)) {\n keyedPool.set(k, node);\n addedToKeyedPool = true;\n }\n }\n if (!addedToKeyedPool) {\n unkeyedPool.push(node);\n }\n } else {\n unkeyedPool.push(node);\n }\n }\n const consumeKeyedNode = (node) => {\n const keys = nodeKeys.get(node) ?? [];\n for (const k of keys)\n keyedPool.delete(k);\n };\n const takeUnkeyedMatch = (child) => {\n for (let i = 0;i < unkeyedPool.length; i++) {\n const candidate = unkeyedPool[i];\n if (areNodeAndChildMatching(candidate, child)) {\n unkeyedPool.splice(i, 1);\n return candidate;\n }\n }\n return;\n };\n let domIndex = 0;\n for (const child of nextChildren) {\n const key = getVNodeMatchKey(child);\n let match;\n if (key) {\n match = keyedPool.get(key);\n if (match)\n consumeKeyedNode(match);\n } else {\n match = takeUnkeyedMatch(child);\n }\n const anchor = targetRoot.childNodes[domIndex] ?? null;\n if (match) {\n if (match !== anchor) {\n targetRoot.insertBefore(match, anchor);\n }\n const morphed = morphNode(match, child, globals);\n if (morphed && morphed !== match) {}\n domIndex++;\n continue;\n }\n const created = createDomFromChild(child, globals);\n if (!created || Array.isArray(created) && created.length === 0)\n continue;\n const nodes = Array.isArray(created) ? created : [created];\n for (const node of nodes) {\n targetRoot.insertBefore(node, anchor);\n handleLifecycleEventsForOnMount(node);\n domIndex++;\n }\n }\n const remaining = new Set;\n for (const node of unkeyedPool)\n remaining.add(node);\n for (const node of keyedPool.values())\n remaining.add(node);\n for (const node of remaining) {\n if (node.parentNode === targetRoot) {\n if (node.nodeType === 1) {\n clearDelegatedEventsDeep(node);\n }\n targetRoot.removeChild(node);\n }\n }\n}\nfunction replaceDomWithVdom(parentElement, newVDOM, globals) {\n const resolvedGlobals = resolveGlobals(parentElement, globals);\n while (parentElement.firstChild) {\n parentElement.removeChild(parentElement.firstChild);\n }\n const renderer = getRenderer(resolvedGlobals.window.document);\n const newDom = renderer.createElementOrElements(newVDOM);\n if (Array.isArray(newDom)) {\n for (const node of newDom) {\n if (node) {\n parentElement.appendChild(node);\n handleLifecycleEventsForOnMount(node);\n }\n }\n } else if (newDom) {\n parentElement.appendChild(newDom);\n handleLifecycleEventsForOnMount(newDom);\n }\n}\n\n// src/transitions.ts\nvar injectShakeKeyframes = (doc) => {\n if (!doc)\n return;\n if (!doc.getElementById(\"defuss-shake\")) {\n const style = doc.createElement(\"style\");\n style.id = \"defuss-shake\";\n style.textContent = \"@keyframes shake{0%,100%{transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{transform:translate3d(-10px,0,0)}20%,40%,60%,80%{transform:translate3d(10px,0,0)}}\";\n doc.head.appendChild(style);\n }\n};\nvar getTransitionStyles = (type, duration, easing = \"ease-in-out\") => {\n const t = `transform ${duration}ms ${easing}, opacity ${duration}ms ${easing}`;\n const styles = {\n fade: {\n enter: { opacity: \"0\", transition: t, transform: \"translate3d(0,0,0)\" },\n enterActive: { opacity: \"1\" },\n exit: { opacity: \"1\", transition: t, transform: \"translate3d(0,0,0)\" },\n exitActive: { opacity: \"0\" }\n },\n \"slide-left\": {\n enter: {\n transform: \"translate3d(100%,0,0)\",\n opacity: \"0.5\",\n transition: t\n },\n enterActive: { transform: \"translate3d(0,0,0)\", opacity: \"1\" },\n exit: { transform: \"translate3d(0,0,0)\", opacity: \"1\", transition: t },\n exitActive: { transform: \"translate3d(-100%,0,0)\", opacity: \"0.5\" }\n },\n \"slide-right\": {\n enter: {\n transform: \"translate3d(-100%,0,0)\",\n opacity: \"0.5\",\n transition: t\n },\n enterActive: { transform: \"translate3d(0,0,0)\", opacity: \"1\" },\n exit: { transform: \"translate3d(0,0,0)\", opacity: \"1\", transition: t },\n exitActive: { transform: \"translate3d(100%,0,0)\", opacity: \"0.5\" }\n },\n shake: (() => {\n injectShakeKeyframes(typeof document !== \"undefined\" ? document : undefined);\n return {\n enter: {\n transform: \"translate3d(0,0,0)\",\n opacity: \"1\",\n transition: \"none\"\n },\n enterActive: {\n transform: \"translate3d(0,0,0)\",\n opacity: \"1\",\n animation: `shake ${duration}ms cubic-bezier(0.36,0.07,0.19,0.97)`\n },\n exit: {\n transform: \"translate3d(0,0,0)\",\n opacity: \"1\",\n transition: \"none\"\n },\n exitActive: {\n transform: \"translate3d(0,0,0)\",\n opacity: \"1\",\n animation: `shake ${duration}ms cubic-bezier(0.36,0.07,0.19,0.97)`\n }\n };\n })()\n };\n return styles[type] || { enter: {}, enterActive: {}, exit: {}, exitActive: {} };\n};\nvar applyStyles = (el, styles) => Object.entries(styles).forEach(([k, v]) => el.style.setProperty(k, String(v)));\nvar DEFAULT_TRANSITION_CONFIG = {\n type: \"fade\",\n duration: 300,\n easing: \"ease-in-out\",\n delay: 0,\n target: \"parent\"\n};\nvar wait = (ms) => new Promise((r) => setTimeout(r, ms));\nvar performCrossfade = async (element, updateCallback, duration, easing) => {\n const originalStyle = element.style.cssText;\n const snapshot = element.cloneNode(true);\n const doc = element.ownerDocument;\n try {\n const rect = element.getBoundingClientRect();\n snapshot.style.cssText = `position:absolute;top:${rect.top}px;left:${rect.left}px;width:${rect.width}px;height:${rect.height}px;opacity:1;transition:opacity ${duration}ms ${easing};z-index:1000;`;\n element.style.opacity = \"0\";\n element.style.transition = `opacity ${duration}ms ${easing}`;\n doc.body.appendChild(snapshot);\n await updateCallback();\n element.offsetHeight;\n snapshot.style.opacity = \"0\";\n element.style.opacity = \"1\";\n await wait(duration);\n doc.body.removeChild(snapshot);\n } catch (error) {\n if (snapshot.parentElement)\n doc.body.removeChild(snapshot);\n throw error;\n } finally {\n element.style.cssText = originalStyle;\n }\n};\nvar performTransition = async (element, updateCallback, config = {}) => {\n const {\n type = \"fade\",\n duration = 300,\n easing = \"ease-in-out\",\n delay = 0\n } = { ...DEFAULT_TRANSITION_CONFIG, ...config };\n if (type === \"none\") {\n await updateCallback();\n return;\n }\n if (delay > 0)\n await wait(delay);\n if (type === \"fade\") {\n await performCrossfade(element, updateCallback, duration, easing);\n return;\n }\n const styles = config.styles || getTransitionStyles(type, duration, easing);\n const originalTransition = element.style.transition;\n const originalAnimation = element.style.animation;\n try {\n if (type === \"shake\") {\n element.style.animation = \"none\";\n element.offsetHeight;\n }\n applyStyles(element, styles.exit);\n element.offsetHeight;\n applyStyles(element, styles.exitActive);\n await wait(duration);\n await updateCallback();\n applyStyles(element, styles.enter);\n element.offsetHeight;\n applyStyles(element, styles.enterActive);\n await wait(duration);\n element.style.transition = originalTransition;\n element.style.animation = originalAnimation;\n } catch (error) {\n element.style.transition = originalTransition;\n element.style.animation = originalAnimation;\n throw error;\n }\n};\n\n// src/index.ts\nvar inflightTransitions = new WeakMap;\nvar morph2 = (el, newContent, options = {}) => {\n const globals = resolveGlobals(el);\n const win = globals.window;\n const mode = options.diff ? \"diff\" : \"replace\";\n const apply = (content) => updateDomWithVdom(el, typeof content === \"string\" ? htmlStringToVNodes(content, win.DOMParser) : content, globals, mode);\n const transition = options.transition;\n if (transition && transition.type !== \"none\") {\n const config = { ...DEFAULT_TRANSITION_CONFIG, ...transition };\n const transitionTarget = config.target === \"self\" ? el : el.parentElement;\n if (!transitionTarget) {\n apply(newContent);\n return;\n }\n const slot2 = { content: newContent };\n inflightTransitions.set(el, slot2);\n return performTransition(transitionTarget, async () => {\n if (inflightTransitions.get(el) === slot2)\n apply(slot2.content);\n }, config).finally(() => {\n if (inflightTransitions.get(el) === slot2)\n inflightTransitions.delete(el);\n });\n }\n const slot = inflightTransitions.get(el);\n if (slot)\n slot.content = newContent;\n apply(newContent);\n};\n\n// src/global.ts\nif (typeof globalThis !== \"undefined\") {\n const g = globalThis;\n const current = g.df$;\n if (current === null || typeof current !== \"object\" && typeof current !== \"function\") {\n g.df$ = {};\n }\n Object.assign(g.df$, exports_src);\n}\nexport {\n updateDomWithVdom,\n resolveGlobals,\n replaceDomWithVdom,\n renderMarkup,\n removeDelegatedEventByKey,\n removeDelegatedEvent,\n registerDelegatedEvent,\n queueCallback,\n performTransition,\n parseEventPropName,\n parseDOM,\n observeUnmount,\n nsMap,\n morph2 as morph,\n isSVG,\n isMarkup,\n isHTML,\n htmlStringToVNodes,\n handleLifecycleEventsForOnMount,\n getTransitionStyles,\n getRenderer,\n getRegisteredEventTypes,\n getRegisteredEventKeys,\n getMimeType,\n domNodeToVNode,\n clearDelegatedEventsDeep,\n clearDelegatedEvents,\n areDomNodesEqual,\n applyStyles,\n XMLNS_ATTRIBUTE_NAME,\n XLINK_ATTRIBUTE_NAME,\n REF_ATTRIBUTE_NAME,\n FROM_DOM_MARKER,\n DEFAULT_TRANSITION_CONFIG,\n DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE,\n CLASS_ATTRIBUTE_NAME,\n CAPTURE_ONLY_EVENTS\n};\n\n//# debugId=BA5C1E84E9A829C164756E2164756E21\n//# sourceMappingURL=all.js.map\n"],"file":"all.min.js"}
|
|
1
|
+
{"mappings":"AAAA,IAAIA,EAAY,OAAO,eACnBC,EAAiB,GAAMC,EAC3B,SAASC,EAAe,EAAM,EAAU,CACtC,KAAKC,GAAQH,EAAc,KAAK,KAAMI,CAAQ,CAChD,CACA,IAAIC,GAAY,EAAQ,IAAQ,CAC9B,IAAK,IAAIF,KAAQG,EACfP,EAAUQ,EAAQJ,EAAM,CACtB,IAAKG,EAAIH,GACT,WAAY,GACZ,aAAc,GACd,IAAKD,EAAe,KAAKI,EAAKH,CAAI,CACpC,CAAC,CACL,EAGIK,EAAc,CAAC,EACnBH,EAASG,EAAa,CACpB,sBAAyBC,EACzB,mBAAsBC,EACtB,uBAA0BC,GAC1B,iBAAoBC,GACpB,8BAAiCC,EACjC,yBAA4BC,GAC5B,2BAA8BC,EAC9B,kBAAqBC,EACrB,sBAAyBC,EACzB,uBAA0BC,EAC1B,aAAgBC,EAChB,2BAA8BC,GAC9B,mBAAsBC,EACtB,UAAaC,EACb,UAAaC,GACb,UAAaC,EACb,aAAgBC,EAChB,WAAcC,EACd,mBAAsBC,EACtB,uBAA0BC,EAC1B,oCAAuCC,EACvC,wBAA2BC,EAC3B,gBAAmBC,EACnB,4BAA+BC,GAC/B,2BAA8BC,EAC9B,gBAAmBC,EACnB,mBAAsBC,EACtB,6BAAgCC,EAChC,yBAA4BC,EAC5B,qBAAwBC,GACxB,gBAAmBC,EACnB,yBAA4BC,EAC5B,yBAA4BC,EAC5B,uBAA0BC,EAC1B,oBAAuBC,EACvB,8BAAiCC,EACjC,yCAA4CC,EAC5C,iBAAoBC,EACpB,yBAA4BC,EAC5B,wBAA2BC,CAC7B,CAAC,EAGD,IAAIhC,EAAiB,IAAQ,GAAGiC,IAAS,mBAAqBC,EAAG,GAAGD,CAAI,CAAC,EAGrED,EAAsB,IAAI,IAAI,CAChC,QACA,OACA,SACA,aACA,YACF,CAAC,EACGG,EAAoB,IAAI,QACxBC,EAAgB,IAAI,QACpBC,EAAmB,IAAI,QACvBnC,EAAsB,GAAa,CACrC,GAAI,CAACoC,EAAS,WAAW,IAAI,EAC3B,OAAO,KACT,IAAMC,EAAMD,EAAS,MAAM,CAAC,EAC5B,GAAI,CAACC,EACH,OAAO,KACT,IAAMC,EAAQD,EAAI,YAAY,EACxBE,EAAYD,EAAM,SAAS,SAAS,EACpCE,EAAYD,EAAYD,EAAM,MAAM,EAAG,EAAiB,EAAIA,EAGlE,OAFKE,EAEE,CAAE,YAAW,QAASD,CAAU,EAD9B,IAEX,EACIE,EAA8B,GAAO,CACvC,IAAMC,EAAWT,EAAkB,IAAIU,CAAE,EACzC,GAAID,EACF,OAAOA,EACT,IAAME,EAAU,IAAI,IAEpB,OADAX,EAAkB,IAAIU,EAAIC,CAAO,EAC1BA,CACT,EACIC,GAAW,EAAQ,EAAW,EAAO,IAAU,CACjD,IAAMC,EAAUb,EAAkB,IAAI5C,CAAM,CAAC,EAAE,IAAImD,CAAS,CAAC,GAAGO,GAChE,GAAI,CAACD,EACH,OACF,IAAME,EAAc,GAAGR,EAAU,GAAGO,IAChCE,EAASd,EAAiB,IAAI9C,CAAM,EACpC,OAAQ,IAAI2D,CAAW,EAM3B,CAJKC,IACH,EAAS,IAAI,IACbd,EAAiB,IAAI9C,EAAQ4D,CAAM,GAErCA,EAAO,IAAID,CAAW,EACtB,GAAI,CACFF,EAAQ,KAAKzD,EAAQ6D,CAAK,CAC5B,QAAU,CACRD,EAAO,OAAOD,CAAW,CAC3B,CALuB,CAMzB,EACIG,GAAW,EAAQ,EAAW,EAAO,EAAO,IAAY,CAC1D,EAAMJ,GAASD,EACf,IAAMM,EAAM,GAAGZ,EAAU,GAAGO,IACtBM,EAAUN,IAAU,UACtBO,EAAQpB,EAAc,IAAI7C,CAAM,EAC9BkE,EAAYD,GAAO,IAAIF,CAAG,EAChC,GAAIN,GAAW,CAACS,EAAW,CACpBD,IACH,EAAQ,IAAI,IACZpB,EAAc,IAAI7C,EAAQiE,CAAK,GAEjC,IAAME,EAAc,GAAUX,EAAQxD,EAAQmD,EAAWO,EAAOG,CAAK,EACrEI,EAAM,IAAIF,EAAKI,CAAU,EACzBnE,EAAO,iBAAiBmD,EAAWgB,EAAYH,CAAO,CACxD,KAAW,CAACP,GAAWS,IACrBD,EAAM,OAAOF,CAAG,EAChB/D,EAAO,oBAAoBmD,EAAWe,EAAWF,CAAO,EAE5D,EACII,GAAc,EAAQ,EAAW,EAAO,IAAU,CACpDN,EAAQ9D,EAAQmD,EAAWO,EAAOW,EAAO,MAAS,EAClD,IAAMC,EAASZ,IAAU,UAAY,aAAe,YACpD,IAAK,IAAMD,KAAWY,EAAMC,IAAW,CAAC,EACtCtE,EAAO,oBAAoBmD,EAAWM,EAASC,IAAU,SAAS,EACpE,EAAMY,GAAU,MAClB,EACI9D,GAA0B,EAAS,EAAW,EAAS,EAAU,CAAC,IAAM,CAC1E,IAAMwD,EAAUO,EAAQ,SAAW9B,EAAoB,IAAIU,CAAS,EAC9DO,EAAQM,EAAU,UAAY,SAC9BQ,EAAUpB,EAA2BqB,CAAO,EAC5CJ,EAAQG,EAAQ,IAAIrB,CAAS,GAAK,CAAC,EAEzC,GADAqB,EAAQ,IAAIrB,EAAWkB,CAAK,EACxBE,EAAQ,MAAO,CACjB,IAAMD,EAASN,EAAU,aAAe,YAClCU,EAAM,EAAMJ,KAAY,IAAI,IAC7BI,EAAI,IAAIjB,CAAO,IAClBiB,EAAI,IAAIjB,CAAO,EACfgB,EAAQ,iBAAiBtB,EAAWM,EAASO,CAAO,EAExD,MACEF,EAAQW,EAAStB,EAAWO,EAAOW,EAAOZ,CAAO,CAErD,EACIkB,GAAgB,GAAU,CAACN,EAAM,SAAW,CAACA,EAAM,SAAW,CAACA,EAAM,YAAcA,EAAM,WAAW,OAAS,KAAO,CAACA,EAAM,WAAaA,EAAM,UAAU,OAAS,GACjK9D,IAAwB,EAAQ,EAAW,EAAS,EAAW,CAAC,IAAM,CACxE,IAAMiE,EAAU5B,EAAkB,IAAI5C,CAAM,EAC5C,GAAI,CAACwE,EACH,OACF,IAAMH,EAAQG,EAAQ,IAAIrB,CAAS,EAC9B,KAEL,IAAIM,EACF,IAAK,IAAMC,IAAS,CAAC,UAAW,QAAQ,GAC1BA,IAAU,UAAYW,EAAM,WAAaA,EAAM,UACpD,EAAE,OAAOZ,CAAO,GACrBzD,EAAO,oBAAoBmD,EAAWM,EAASC,IAAU,SAAS,EAChEW,EAAMX,KAAWD,GACnBK,EAAQ9D,EAAQmD,EAAWO,EAAOW,EAAO,MAAS,OAGtDD,EAAWpE,EAAQmD,EAAWkB,EAAO,SAAS,EAC9CD,EAAWpE,EAAQmD,EAAWkB,EAAO,QAAQ,EAE3CM,GAAaN,CAAK,GACpBG,EAAQ,OAAOrB,CAAS,CAF1B,CAIF,EACIyB,EAAa,IAAI,IACjB/D,GAA0B,IAC5B+D,EAAW,IAAIC,CAAI,MACN,CACXD,EAAW,OAAOC,CAAI,CACxB,GAEE/C,EAAwB,GAAW,CACrC,IAAM0C,EAAU5B,EAAkB,IAAI5C,CAAM,EAC5C,GAAIwE,EAAS,CACX,IAAK,GAAM,CAACrB,EAAWkB,KAAUG,EAC/BJ,EAAWpE,EAAQmD,EAAWkB,EAAO,SAAS,EAC9CD,EAAWpE,EAAQmD,EAAWkB,EAAO,QAAQ,EAE/CG,EAAQ,MAAM,CAChB,CACA,IAAK,IAAMK,KAAQD,EACjBC,EAAK7E,CAAM,CACf,EACI6B,EAA4B,GAAS,CACvCC,EAAqBgD,CAAI,EACzB,IAAMC,EAAMD,EAAK,cACjB,GAAI,CAACC,EACH,OACF,IAAMC,EAASD,EAAI,iBAAiBD,EAAM,CAAC,EACvCG,EAAOD,EAAO,SAAS,EAC3B,KAAOC,GACLnD,EAAqBmD,CAAI,EACzB,EAAOD,EAAO,SAAS,CAE3B,EACIvD,GAA2B,GAAY,CACzC,IAAM+C,EAAU5B,EAAkB,IAAI6B,CAAO,EAG7C,OAFKD,EAEE,IAAI,IAAIA,EAAQ,KAAK,CAAC,EADpB,IAAI,GAEf,EACI9C,EAA0B,GAAY,CACxC,IAAM8C,EAAU5B,EAAkB,IAAI6B,CAAO,EAC7C,GAAI,CAACD,EACH,OAAO,IAAI,IACb,IAAMU,EAAO,IAAI,IACjB,IAAK,GAAM,CAAC/B,EAAWkB,KAAUG,GAC3BH,EAAM,QAAUA,EAAM,WAAW,OACnCa,EAAK,IAAI,GAAG/B,EAAU,QAAQ,GAC5BkB,EAAM,SAAWA,EAAM,YAAY,OACrCa,EAAK,IAAI,GAAG/B,EAAU,SAAS,EAEnC,OAAO+B,CACT,EACI5E,GAA6B,EAAS,EAAW,IAAU,CAC7D,IAAMkE,EAAU5B,EAAkB,IAAI6B,CAAO,EAC7C,GAAI,CAACD,EACH,OACF,IAAMH,EAAQG,EAAQ,IAAIrB,CAAS,EAC9BkB,IAELD,EAAWK,EAAStB,EAAWkB,EAAOX,CAAK,EACvCiB,GAAaN,CAAK,GACpBG,EAAQ,OAAOrB,CAAS,EAC5B,EAGIf,EAAkB,OAAO,uBAAuB,EAChDG,EAAe,WACfnB,EAAkB,GAAU,CAAC,CAAC+D,GAAS,OAAOA,GAAU,UAAYA,EAAM,OAAS5C,EACnF6C,GAA0B,IAAI,IAAI,CACpC,kBACA,QACA,YACA,WACA,UACA,WACA,UACA,QACA,WACA,iBACA,SACA,QACA,QACA,YACA,OACA,WACA,QACA,WACA,aACA,OACA,cACA,WACA,WACA,WACA,UACF,CAAC,EACGC,GAA4B,GAASD,GAAwB,IAAIE,EAAK,KAAK,YAAY,CAAC,EAAI,GAAOA,EAAK,MAC5G,SAAS1E,EAAS,EAAO,EAAM,EAAQ,CACrC,OAAO,IAAI2E,EAAO,CAAC,CAAC,gBAAgBC,EAAOC,CAAI,CACjD,CACA,SAASxE,EAAM,EAAO,EAAQ,CAC5B,IAAM8D,EAAMnE,EAAS4E,EAAO,gBAAiBD,CAAM,EAGnD,OAFKR,EAAI,gBAEFA,EAAI,gBAAgB,SAAS,YAAY,IAAM,MAD7C,EAEX,CACA,SAAS5D,EAAO,EAAO,EAAQ,CAE7B,OADYP,EAAS4E,EAAO,YAAaD,CAChC,CAAC,CAAC,gBAAgB,iBAAiB,GAAG,CAAC,CAAC,OAAS,CAC5D,CACA,IAAIrE,GAAY,EAAO,IAAWsE,EAAM,QAAQ,GAAG,EAAI,IAAMA,EAAM,QAAQ,GAAG,EAAI,KAAOrE,EAAOqE,EAAOD,CAAM,GAAKtE,EAAMuE,EAAOD,CAAM,GACrI,SAASlF,GAAa,EAAQ,EAAQ,EAAK,CACzC,IAAMqF,EAASX,GAAYnE,EAAS+E,EAAQhE,EAAYgE,EAAQJ,CAAM,EAAGA,CAAM,EAG/E,OAFIG,EAAO,KACF,MAAM,KAAKA,EAAO,KAAK,UAAU,EACnCA,EAAO,gBAAkB,CAACA,EAAO,eAAe,EAAI,CAAC,CAC9D,CACA,SAAS/D,EAAY,EAAO,EAAQ,CAIlC,OAHIV,EAAMuE,EAAOD,CAAM,EACd,gBAEF,WACT,CACA,SAAS3D,EAAe,EAAM,CAC5B,GAAIqD,EAAK,WAAa,EACpB,OAAOA,EAAK,aAAe,GAE7B,GAAIA,EAAK,WAAa,EAAG,CACvB,IAAMR,EAAUQ,EACVW,EAAa,CAAC,EACpB,IAAK,IAAIC,EAAI,EAAEA,EAAIpB,EAAQ,WAAW,OAAQ,IAAK,CACjD,IAAMa,EAAOb,EAAQ,WAAWoB,GAChC,EAAWP,EAAK,MAAQD,GAAyBC,CAAI,CACvD,CACA,IAAMQ,EAAW,CAAC,EAClB,IAAK,IAAID,EAAI,EAAEA,EAAIpB,EAAQ,WAAW,OAAQ,IAAK,CACjD,IAAMsB,EAAanE,EAAe6C,EAAQ,WAAWoB,EAAE,EACvDC,EAAS,KAAKC,CAAU,CAC1B,CACA,MAAO,CACL,KAAMtB,EAAQ,QAAQ,YAAY,EAClC,WAAY,CAAE,GAAGmB,GAAaxD,GAAkB,EAAK,EACrD,UACF,CACF,CAIA,OAHI6C,EAAK,WAAa,EACb,CAAE,KAAM1C,EAAc,MAAO0C,EAAK,WAAa,EAAG,EAEpD,EACT,CACA,IAAIe,GAAiB,iEACrB,SAAS3E,EAAmB,EAAM,EAAQ,CAExC,IAAM0D,EAAM,IADOQ,EACF,CAAC,CAAC,gBAAgBS,GAAe,KAAKC,CAAI,EAAIA,EAAO,SAASA,IAAQ,WAAW,EAC5FC,EAAS,CAAC,EAChB,IAAK,IAAIL,EAAI,EAAEA,EAAId,EAAI,KAAK,WAAW,OAAQ,IAAK,CAClD,IAAMoB,EAAQvE,EAAemD,EAAI,KAAK,WAAWc,EAAE,EAC/CM,IAAU,IACZD,EAAO,KAAKC,CAAK,CAErB,CACA,OAAOD,CACT,CAGA,IAAI1D,EAAuB,QACvBN,EAAuB,QACvBD,EAAuB,QACvBE,EAAqB,MACrBG,EAAuC,0BACvCvB,EAAQ,EACTkB,GAAuB,iCACvBC,GAAuB,+BACxB,IAAK,4BACP,EACIpB,GAAkB,EAAS,IAAc,CAC3C,GAAI,CAACsF,GAAW,OAAOC,GAAc,WACnC,MAAU,MAAM,4DAA4D,EAE9E,GAAI,OAAO,iBAAqB,IAC9B,OAEF,IAAIC,EAAaF,EAAQ,WACzB,GAAI,CAACE,EACH,MAAU,MAAM,kDAAkD,EAEpE,IAAMC,EAAW,IAAI,iBAAkB,GAAkB,CACvD,IAAK,IAAMC,KAAYC,EACrB,GAAID,EAAS,aAAa,OAAS,EACjC,KAAK,IAAME,KAAeF,EAAS,aACjC,GAAIE,IAAgBN,EAAS,CAC3B,mBAAqB,CACnB,GAAI,CAACA,EAAQ,YAAa,CACxBC,EAAU,EACVE,EAAS,WAAW,EACpB,MACF,CACA,IAAMI,EAAYP,EAAQ,WACtBO,GAAaA,IAAcL,IAC7B,EAAaK,EACbJ,EAAS,WAAW,EACpBA,EAAS,QAAQD,EAAY,CAAE,UAAW,EAAK,CAAC,EAEpD,CAAC,EACD,MACF,CACF,CAGN,CAAC,EACDC,EAAS,QAAQD,EAAY,CAAE,UAAW,EAAK,CAAC,CAClD,EACIhF,EAAmC,GAAU,CAC3C,OAAOsF,GAAO,UAAa,aAC7BA,EAAM,SAASA,CAAK,EACpB,EAAM,SAAW,MAEf,OAAOA,GAAO,YAAe,YAC/B9F,EAAe8F,EAAOA,EAAM,UAAU,CAE1C,EACIpF,EAAe,GAAc,CAC/B,IAAMqF,EAAW,CACf,eAAiB,GAAeC,EAAW,eAAiB/F,EAAM,IAClE,iBAAkB,EAAe,IAAS8F,EAAS,eAAeE,CAAa,GAAKtB,IAAS,SAAWA,IAAS,SACjH,yBAA0B,EAAa,IACjC,MAAM,QAAQuB,CAAW,EACpBH,EAAS,oBAAoBG,EAAaC,CAAgB,EAExDD,IAAgB,OAGpBH,EAAS,eAAe,GAAII,CAAgB,EAF1CJ,EAAS,cAAcG,EAAaC,CAAgB,EAI/D,eAAgB,EAAa,IAAqB,CAChD,IAAIL,EACJ,GAAIxF,EAAe4F,CAAW,EAAG,CAC/B,IAAME,EAAUC,EAAU,cAAcH,EAAY,OAAS,EAAE,EAE/D,OADAC,GAAkB,YAAYC,CAAO,EAC9BA,CACT,CACA,GAAI,CACF,GAAI,OAAOF,GAAgB,YAAcA,EAAY,YAAY,OAAS,gBACxE,EAAQG,EAAU,cAAc,KAAK,OAChC,GAAI,OAAOH,GAAgB,UAAYA,GAAwB,SAAUA,EAAa,CAC3F,IAAMI,EAAQJ,EACV,OAAOI,EAAM,MAAS,YACxB,EAAQD,EAAU,cAAc,KAAK,EACrC,EAAM,UAAY,gBAAgBC,EAAM,KAAK,UACxC,AAGLR,EAHS,OAAOQ,EAAM,MAAS,UAAYA,EAAM,KAAK,YAAY,IAAM,OAASH,GAAoBJ,EAAS,gBAAgBI,EAAkB,OAAOG,EAAM,MAAS,SAAWA,EAAM,KAAK,YAAY,EAAI,EAAE,EACtMD,EAAU,gBAAgBpG,EAAM,IAAKqG,EAAM,IAAI,EAE/CD,EAAU,cAAcC,EAAM,IAAI,EAExCA,EAAM,aACRP,EAAS,cAAcO,EAAOR,CAAK,EAC/BQ,EAAM,WAAW,0BACnB,EAAM,UAAYA,EAAM,WAAW,wBAAwB,SAG3DA,EAAM,UAAY,CAACA,EAAM,YAAY,yBACvCP,EAAS,oBAAoBO,EAAM,SAAUR,CAAK,CAEtD,MACM,OAAOI,GAAgB,UAAY,OAAOA,GAAgB,YAC5D,EAAQG,EAAU,cAAc,OAAOH,CAAW,CAAC,GAGnDJ,GAASK,IACXA,EAAiB,YAAYL,CAAK,EAClCtF,EAAgCsF,CAAK,EAEzC,OAAS,EAAG,CAEV,MADA,QAAQ,MAAM,uDAAwD,EAAGI,CAAW,EAC9E,CACR,CACA,OAAOJ,CACT,EACA,gBAAiB,EAAM,IAAe,CACpC,IAAM3B,EAAOkC,EAAU,eAAeE,EAAK,SAAS,CAAC,EAIrD,OAHIP,GACFA,EAAW,YAAY7B,CAAI,EAEtBA,CACT,EACA,qBAAsB,EAAiB,IAAe,CACpD,IAAMa,EAAW,CAAC,EAClB,IAAK,IAAI,EAAI,EAAE,EAAIwB,EAAgB,OAAQ,IAAK,CAC9C,IAAMC,EAAeD,EAAgB,GACjC,OAAOC,GAAiB,YAGxBA,IAAiB,MAAQ,OAAOA,GAAiB,UAAY,OAAOA,GAAiB,WACvFzB,EAAS,KAAKe,EAAS,gBAAuBU,GAAwD,GAAiB,CAAE,SAAS,EAAGT,CAAU,CAAC,EAEhJhB,EAAS,KAAKe,EAAS,cAAcU,EAAcT,CAAU,CAAC,EAElE,CACA,OAAOhB,CACT,EACA,cAAe,EAAM,EAAO,IAAe,CAGzC,GAFWX,IAAU,QAEjBvF,IAAS0C,EACX,OACF,GAAI1C,IAAS,MAAO,CAClB,EAAW,WAAa,OAAOuF,CAAK,EACpC,MACF,CACA,GAAIvF,IAASuC,GAAsB,OAAOgD,GAAU,WAAY,CAC9D,IAAMqC,EAAMrC,EACZ,EAAI,QAAU2B,EACd,EAAW,WAAa3B,EACxB,EAAW,WAAa1E,MAAoB,CAAC,CAAC,EAC1CqG,EAAW,WACbhG,EAAegG,EAAYA,EAAW,UAAU,EAEhD,mBAAqB,CACfA,EAAW,YACbhG,EAAegG,EAAYA,EAAW,UAAU,CAEpD,CAAC,EAEH,MACF,CACA,IAAMpB,EAAS/E,EAAmBf,CAAI,EACtC,GAAI8F,GAAU,OAAOP,GAAU,WAAY,CACzC,GAAM,CAAE,YAAW,WAAYO,EAC/B,GAAIvC,IAAc,QAAS,CACzB,EAAW,SAAW1C,EAAc0E,CAAK,EACzC,MACF,CACA,GAAIhC,IAAc,UAAW,CAC3B,GAAI2D,EAAW,WAAY,CACzB,IAAMW,EAAkBX,EAAW,WACnC,EAAW,eAAmB,CAC5BW,EAAgB,EAChBtC,EAAM,CACR,CACF,KACE,GAAW,WAAa1E,EAAc0E,CAAK,EAE7C,MACF,CACA3E,EAAuBsG,EAAY3D,EAAWgC,EAAO,CAAE,SAAQ,CAAC,EAChE,MACF,CACIvF,IAAS,cACX,EAAO4C,GAEL5C,IAAS4C,GAAwB,MAAM,QAAQ2C,CAAK,IACtD,EAAQA,EAAM,OAAQ,GAAQ,CAAC,CAACuC,CAAG,CAAC,CAAC,KAAK,GAAG,GAE/C,IAAMC,EAAa/H,EAAK,MAAM,OAAO,CAAC,EAAE,MACxC,GAAIiH,EAAS,eAAeC,CAAU,GAAKa,EAAY,CACrD,IAAMC,EAAKhI,EAAK,UAAU,EAAG+H,CAAU,CAAC,CAAC,YAAY,EAC/CE,EAAWjI,EAAK,UAAU+H,EAAY/H,EAAK,MAAM,CAAC,CAAC,YAAY,EAC/DkI,EAAY/G,EAAM6G,IAAO,KAC/Bd,EAAW,eAAegB,EAAWF,IAAO1F,GAAwB0F,IAAO3F,EAAuB,GAAG2F,EAAG,GAAGC,IAAajI,EAAM,OAAOuF,CAAK,CAAC,CAC7I,MAAO,GAAIvF,IAAS,SAAW,OAAOuF,GAAU,SAAU,CACxD,IAAM4C,EAAW5C,EACjB,IAAK,IAAM6C,KAAQ,OAAO,KAAKD,CAAQ,EACrC,EAAW,MAAMC,GAAQ,OAAOD,EAASC,EAAK,CAElD,MAAW,OAAO7C,GAAU,WAC1B,EAAWvF,GAAQuF,EACfA,EACF2B,EAAW,aAAalH,EAAM,EAAE,EAEhCkH,EAAW,gBAAgBlH,CAAI,IAEvBA,IAAS,SAAWA,IAAS,WAAaA,IAAS,mBAAqBkH,EAAW,WAAa,SAAWA,EAAW,WAAa,YAAcA,EAAW,WAAa,WACnL,EAAWlH,GAAQuF,EACfvF,IAAS,UACPuF,EACF2B,EAAW,aAAa,UAAW,EAAE,EAErCA,EAAW,gBAAgB,SAAS,EAE7BlH,IAAS,SAClBkH,EAAW,aAAa,QAAS,OAAO3B,CAAK,CAAC,GAGhD2B,EAAW,aAAalH,EAAM,OAAOuF,CAAK,CAAC,CAE/C,EACA,eAAgB,EAAa,IAAe,CAC1C,IAAM8C,EAAY,OAAO,KAAKjB,EAAY,YAAc,CAAC,CAAC,EAC1D,IAAK,IAAI,EAAI,EAAE,EAAIiB,EAAU,OAAQ,IACnCpB,EAAS,aAAaoB,EAAU,GAAIjB,EAAY,WAAWiB,EAAU,IAAKnB,CAAU,CAExF,CACF,EACA,OAAOD,CACT,EAGI9E,IAAoB,EAAS,IAAY,CAC3C,GAAImG,IAAYC,EACd,MAAO,GACT,GAAID,EAAQ,WAAaC,EAAQ,SAC/B,MAAO,GACT,GAAID,EAAQ,WAAa,EAAG,CAC1B,IAAME,EAAaF,EACbG,EAAaF,EACnB,GAAIC,EAAW,UAAYC,EAAW,QACpC,MAAO,GACT,IAAMC,EAAWF,EAAW,WACtBG,EAAWF,EAAW,WAC5B,GAAIC,EAAS,SAAWC,EAAS,OAC/B,MAAO,GACT,IAAK,IAAI1C,EAAI,EAAEA,EAAIyC,EAAS,OAAQ,IAAK,CACvC,IAAME,EAAUF,EAASzC,GACnB4C,EAAeJ,EAAW,aAAaG,EAAQ,IAAI,EACzD,GAAIA,EAAQ,QAAUC,EACpB,MAAO,EACX,CACF,CAKA,OAJIP,EAAQ,WAAa,GAAKA,EAAQ,WAAa,GAC7CA,EAAQ,YAAcC,EAAQ,SAItC,EACA,SAASO,GAAW,EAAO,CACzB,OAAO,OAAOvD,GAAU,UAAY,OAAOA,GAAU,UAAY,OAAOA,GAAU,SACpF,CACA,SAASwD,GAAQ,EAAO,CACtB,MAAO,GAAQxD,GAAS,OAAOA,GAAU,UAAY,SAAUA,EACjE,CACA,SAASyD,GAAa,EAAO,EAAU,GAAO,CAO5C,GANIC,GAAS,MAETH,GAAWG,CAAK,GAEhBF,GAAQE,CAAK,GAEbC,GAAWD,GAAS,OAAOA,GAAU,UAAY,eAAgBA,EACnE,OAAOA,CAEX,CACA,SAASE,GAAkB,EAAO,EAAU,GAAO,CACjD,IAAM/F,EAAM,CAAC,EACPgG,EAAa,GAAU,CAC3B,GAAI,MAAM,QAAQH,CAAK,EAAG,CACxBA,EAAM,QAAQG,CAAS,EACvB,MACF,CACA,IAAMC,EAAQL,GAAaC,EAAOC,CAAO,EACrC,GAAOG,IAAU,OAErB,IAAIN,GAAQM,CAAK,IAAMA,EAAM,OAAS,YAAcA,EAAM,OAAS,YAAa,EAC/D,MAAM,QAAQA,EAAM,QAAQ,EAAIA,EAAM,SAAW,CAAC,EAC3D,CAAC,QAAQD,CAAS,EACxB,MACF,CACIC,GAAU,MAAwC,OAAOA,GAAU,WAEvEjG,EAAI,KAAKiG,CAAK,CAHd,CAIF,EACAD,EAAUxD,CAAK,EACf,IAAM0D,EAAQ,CAAC,EACXC,EAAS,KACPC,MAAc,CACdD,IAAW,MAAQA,EAAO,OAAS,GACrCD,EAAM,KAAKC,CAAM,EACnB,EAAS,IACX,EACA,IAAK,IAAMN,KAAS7F,EAAK,CACvB,GAAI,OAAO6F,GAAU,UAAY,OAAOA,GAAU,UAAY,OAAOA,GAAU,UAAW,CACxF,GAAUM,GAAU,IAAM,OAAON,CAAK,EACtC,QACF,CACAO,EAAM,EACNF,EAAM,KAAKL,CAAK,CAClB,CAEA,OADAO,EAAM,EACCF,CACT,CACA,SAASG,EAAiB,EAAO,CAC/B,GAAI,CAACR,GAAS,OAAOA,GAAU,SAC7B,OAAO,KACT,IAAM9E,EAAM8E,EAAM,YAAY,IAC9B,GAAI,OAAO9E,GAAQ,UAAY,OAAOA,GAAQ,SAC5C,MAAO,KAAK,OAAOA,CAAG,IACxB,IAAMuF,EAAKT,EAAM,YAAY,GAG7B,OAFI,OAAOS,GAAO,UAAYA,EAAG,OAAS,EACjC,MAAMA,IACR,IACT,CACA,SAASC,GAAkB,EAAO,CAIhC,OAHIV,GAAS,OAAOA,GAAU,SACrB,IAAI,OAAOA,EAAM,MAAS,SAAWA,EAAM,KAAO,YAAY,GAEhE,YACT,CACA,SAASW,EAAgB,EAAM,CAC7B,GAAIvE,EAAK,WAAa,EACpB,MAAO,CAAC,EACV,IAAM3B,EAAK2B,EACLC,EAAO,CAAC,EACRuE,EAAcnG,EAAG,WACnBmG,GACFvE,EAAK,KAAK,KAAKuE,GAAa,EAC9B,IAAMC,EAAUpG,EAAG,aAAa,KAAK,EACjCoG,GACFxE,EAAK,KAAK,KAAKwE,GAAS,EAC1B,IAAMJ,EAAKhG,EAAG,GAGd,OAFIgG,GACFpE,EAAK,KAAK,MAAMoE,GAAI,EACfpE,CACT,CACA,SAASyE,GAAwB,EAAS,EAAO,CAC/C,GAAI,OAAOd,GAAU,UAAY,OAAOA,GAAU,UAAY,OAAOA,GAAU,UAC7E,OAAOzC,EAAQ,WAAa,EAE9B,GAAIhF,EAAeyH,CAAK,EACtB,OAAOzC,EAAQ,WAAa,EAC9B,GAAIyC,GAAS,OAAOA,GAAU,SAAU,CACtC,GAAIzC,EAAQ,WAAa,EACvB,MAAO,GAET,IAAMwD,EAAStG,EAAG,QAAQ,YAAY,EAChCuG,EAAS,OAAOhB,EAAM,MAAS,SAAWA,EAAM,KAAK,YAAY,EAAI,GAG3E,MAFA,EAAI,CAACgB,GAAUD,IAAWC,EAG5B,CACA,MAAO,EACT,CACA,SAASC,EAAmB,EAAO,EAAS,CAC1C,IAAMjD,EAAWrF,EAAYuI,EAAQ,OAAO,QAAQ,EACpD,GAAIlB,GAAS,KACX,OACF,GAAI,OAAOA,GAAU,UAAY,OAAOA,GAAU,UAAY,OAAOA,GAAU,UAC7E,MAAO,CAACkB,EAAQ,OAAO,SAAS,eAAe,OAAOlB,CAAK,CAAC,CAAC,EAE/D,IAAMtF,EAAUsD,EAAS,wBAAwBgC,CAAK,EAItD,OAHKtF,GAES,MAAM,QAAQA,CAAO,EAAIA,EAAU,CAACA,CAAO,EAC7C,CAAC,OAAO,OAAO,EAFzB,MAGJ,CACA,SAASyG,GAAiC,EAAI,EAAU,EAAO,CAC7D,IAAMC,EAAM3G,EAAG,QAAQ,YAAY,EAUnC,OAToB,OAAO,OAAO6C,EAAM,YAAc,CAAC,EAAG0B,CAC5C,EACL,GACLoC,IAAQ,QACHpC,IAAa,SAAWA,IAAa,UAC1CoC,IAAQ,YAERA,IAAQ,SACHpC,IAAa,QACf,EACT,CACA,SAASqC,GAAoB,EAAI,EAAO,EAAS,EAAkB,GAAO,CACxE,IAAMrD,EAAWrF,EAAYuI,EAAQ,OAAO,QAAQ,EAC9CI,EAAgBC,EAAkB,CAAC,EAAI,MAAM,KAAK9G,EAAG,UAAU,EAC/D+G,EAAYlE,EAAM,YAAc,CAAC,EACvC,IAAK,IAAMb,KAAQ6E,EAAe,CAChC,GAAM,CAAE,QAAS7E,EACb,OAAS,OAET,GAAK,WAAW,IAAI,IAEpB1F,IAAS,SAAY,QAAO,OAAOyK,EAAW,OAAO,GAAK,QAAO,OAAOA,EAAW,WAAW,IAG9F,CAAC,OAAO,OAAOA,EAAWzK,CAAI,EAAG,CACnC,GAAIoK,GAAiC1G,EAAI1D,EAAMuG,CAAK,EAClD,SACF7C,EAAG,gBAAgB1D,CAAI,CACzB,CACF,CAEA,GAAI,EAD8BwK,GAA2BC,EAAUjI,IACvC,CAC9B,IAAMkI,EAAiB5I,EAAuB4B,CAAE,EAC1CiH,EAAgB,IAAI,IAC1B,IAAK,IAAMxH,KAAY,OAAO,KAAKsH,CAAS,EAAG,CAC7C,IAAM3E,EAAS/E,EAAmBoC,CAAQ,EAC1C,GAAI2C,EAAQ,CACV,IAAMhC,EAAQgC,EAAO,QAAU,UAAY,SAC3C6E,EAAc,IAAI,GAAG7E,EAAO,UAAU,GAAGhC,GAAO,CAClD,CACF,CACA,IAAK,IAAMK,KAAOuG,EAChB,GAAI,CAACC,EAAc,IAAIxG,CAAG,EAAG,CAC3B,GAAM,CAACZ,EAAWO,GAASK,EAAI,MAAM,GAAG,EACxCzD,EAA0BgD,EAAIH,EAAWO,CAAK,CAChD,CAEJ,CACAmD,EAAS,cAAcV,EAAO7C,CAAE,EAChChC,EAAgCgC,CAAE,EAClC,IAAMkH,EAAIrE,EAAM,YAAY,wBAC5B,GAAIqE,GAAK,OAAOA,GAAM,UAAY,OAAOA,EAAE,QAAW,SAAU,CAC9D,EAAG,UAAYA,EAAE,OACjB,MACF,CAEA,GADYlH,EAAG,QAAQ,YACjB,IAAM,WAAY,CACtB,IAAMmH,EAAe,OAAO,OAAOJ,EAAW,OAAO,EAErD,GADiB/G,EAAG,eAAe,gBAAkBA,GACrC,CAACmH,EACf,MACJ,CACIL,IAAoBjE,EAAM,WAAa,QAAaA,EAAM,SAAS,SAAW,GAAKkE,EAAUjI,KAEjGsI,GAAepH,EAAI6C,EAAM,UAAY,CAAC,EAAG4D,CAAO,CAClD,CACA,SAASY,EAAY,EAAK,EAAM,CAC1BC,EAAI,WAAa,GACnB/I,EAAyB+I,CAAG,EAC9BA,EAAI,YAAY,aAAaC,EAAMD,CAAG,CACxC,CACA,SAASE,GAAU,EAAS,EAAO,EAAS,EAAkB,GAAO,CACnE,GAAI,OAAOjC,GAAU,UAAY,OAAOA,GAAU,UAAY,OAAOA,GAAU,UAAW,CACxF,IAAMxB,EAAO,OAAOwB,CAAK,EACzB,GAAIzC,EAAQ,WAAa,EAGvB,OAFIA,EAAQ,YAAciB,IACxB,EAAQ,UAAYA,GACfjB,EAET,IAAMyE,EAAOd,EAAQ,OAAO,SAAS,eAAe1C,CAAI,EAExD,OADAsD,EAAYvE,EAASyE,CAAI,EAClBA,CACT,CACA,GAAIzJ,EAAeyH,CAAK,EAAG,CACzB,IAAMkC,EAAOlC,EAAM,OAAS,GAC5B,GAAIzC,EAAQ,WAAa,EAGvB,OAFIA,EAAQ,YAAc2E,IACxB,EAAQ,UAAYA,GACf3E,EAET,IAAMyE,EAAOd,EAAQ,OAAO,SAAS,cAAcgB,CAAI,EAEvD,OADAJ,EAAYvE,EAASyE,CAAI,EAClBA,CACT,CACA,GAAIhC,GAAS,OAAOA,GAAU,SAAU,CACtC,IAAMmC,EAAU,OAAOnC,EAAM,MAAS,SAAWA,EAAM,KAAO,KAC9D,GAAI,CAACmC,EACH,OAAO5E,EACT,GAAIA,EAAQ,WAAa,EAAG,CAC1B,IAAM7C,EAAUuG,EAAmBjB,EAAOkB,CAAO,EAC3CkB,EAAQ,MAAM,QAAQ1H,CAAO,EAAIA,EAAQ,GAAKA,EAKpD,OAJK0H,GAEL7E,EAAQ,YAAY,aAAa6E,EAAO7E,CAAO,EAC/C9E,EAAgC2J,CAAK,EAC9BA,GAHE,IAIX,CACA,IAAM3H,EAAK8C,EAGX,GAFe9C,EAAG,QAAQ,YAEjB,IADM0H,EAAQ,YACH,EAAG,CACrB,IAAMzH,EAAUuG,EAAmBjB,EAAOkB,CAAO,EAC3CkB,EAAQ,MAAM,QAAQ1H,CAAO,EAAIA,EAAQ,GAAKA,EAKpD,OAJK0H,GAELN,EAAYrH,EAAI2H,CAAK,EACrB3J,EAAgC2J,CAAK,EAC9BA,GAHE,IAIX,CAEA,OADAf,GAAoB5G,EAAIuF,EAAOkB,EAASK,CAAe,EAChD9G,CACT,CAIA,OAHI8C,EAAQ,WAAa,GACvBvE,EAAyBuE,CAAO,EAClCA,EAAQ,YAAY,YAAYA,CAAO,EAChC,IACT,CACA,IAAI8E,EAAiB,IAAI,QACrBC,EAAgB,IAAI,IACpBhL,GAAkB,EAAI,IACpB4J,GAGG,CAAE,OADGzG,GAAI,eAAe,aAAe,UACzB,EAEvB,SAAS8H,GAAoB,EAAI,CAC/B,IAAIC,EAAU/H,EAAG,cACjB,KAAO+H,GAAS,CACd,GAAIH,EAAe,IAAIG,CAAO,EAC5B,MAAO,GACT,EAAUA,EAAQ,aACpB,CACA,MAAO,EACT,CACA,SAASC,IAAqB,CAC5B,GAAIH,EAAc,OAAS,EACzB,OACF,IAAMI,EAAW,CAAC,GAAGJ,EAAc,QAAQ,CAAC,EAC5CA,EAAc,MAAM,EACpB,IAAK,GAAM,CAAC7H,EAAI,CAAE,OAAM,UAAS,WAAWiI,EACrCjI,EAAG,aAERpD,EAAkBoD,EAAIkI,EAAMzB,EAAS0B,CAAI,CAE7C,CACA,SAASvL,EAAkB,EAAe,EAAS,EAAS,EAAO,UAAW,CAC5E,IAAMwL,EAAkBvL,EAAe4G,EAAegD,CAAO,EAC7D,GAAImB,EAAe,IAAInE,CAAa,GAAKqE,GAAoBrE,CAAa,EAAG,CAC3EoE,EAAc,IAAIpE,EAAe,CAC/B,KAAM4E,EACN,QAASD,EACT,MACF,CAAC,EACD,MACF,CACAR,EAAe,IAAInE,CAAa,EAChC,GAAI,CACF2D,GAAe3D,EAAe4E,EAASD,EAAiBD,CAAI,CAC9D,QAAU,CACRP,EAAe,OAAOnE,CAAa,CACrC,CACAuE,GAAmB,CACrB,CACA,SAASM,GAAU,EAAY,EAAY,EAAS,CAClD,IAAMC,EAAY,IAAI,IACtB,IAAK,IAAM5G,KAAQ,MAAM,KAAK6G,EAAW,UAAU,EACjD,IAAK,IAAMC,KAAKvC,EAAgBvE,CAAI,EAC7B4G,EAAU,IAAIE,CAAC,GAClBF,EAAU,IAAIE,EAAG9G,CAAI,EAG3B,IAAK,IAAM+G,KAAQC,EAAY,CAG7B,GAFI,OAAOD,GAAS,UAAYA,EAAK,KAAK,IAAM,IAE5C5K,EAAe4K,CAAI,EACrB,SACF,IAAMjI,EAAMsF,EAAiB2C,CAAI,EACjC,GAAI,CAACjI,EACH,MAAU,MAAM,4EAA4EwF,GAAkByC,CAAI,EAAE,EAAE,EAExH,IAAME,EAAQL,EAAU,IAAI9H,CAAG,EAC/B,GAAImI,EAAO,CAETpB,GAAUoB,EADQF,GAAQ,OAAOA,GAAS,UAAY,CAACA,EAAK,KAAO,CAAE,GAAGA,EAAM,KAAME,EAAM,QAAQ,YAAY,CAAE,EAAIF,EACxFjC,EAAS,EAAI,EACzC,QACF,CACA,GAAI,CAACiC,GAAM,KACT,MAAU,MAAM,kFAAkFjI,EAAI,EAAE,EAE1G,IAAMR,EAAUuG,EAAmBkC,EAAMjC,CAAO,GAAK,CAAC,EACtD,IAAK,IAAM9E,KAAQ1B,EACjBuI,EAAW,YAAY7G,CAAI,EAC3B3D,EAAgC2D,CAAI,CAExC,CACF,CACA,SAASyF,GAAe,EAAe,EAAS,EAAS,EAAO,UAAW,CACzE,IAAMpH,EAAKyD,EACLoF,EAAkB7I,EAAG,QAAQ,SAAS,GAAG,EACzCwI,EAAaxI,EAAG,YAAc,CAAC6I,EAAkB7I,EAAG,WAAayD,EACjEqF,EAAerD,GAAkB4C,EAASF,IAAS,MAAM,EAC/D,GAAIA,IAAS,OAAQ,CACnBG,GAAUE,EAAYM,EAAcrC,CAAO,EAC3C,MACF,CACA,IAAM1G,EAAW,MAAM,KAAKyI,EAAW,UAAU,EAC3CD,EAAY,IAAI,IAChBQ,EAAW,IAAI,QACfC,EAAc,CAAC,EACrB,IAAK,IAAMrH,KAAQ5B,EAAU,CAC3B,IAAM6B,EAAOsE,EAAgBvE,CAAI,EACjC,GAAIC,EAAK,OAAS,EAAG,CACnBmH,EAAS,IAAIpH,EAAMC,CAAI,EACvB,IAAIqH,EAAmB,GACvB,IAAK,IAAMR,KAAK7G,EACT2G,EAAU,IAAIE,CAAC,IAClBF,EAAU,IAAIE,EAAG9G,CAAI,EACrB,EAAmB,IAGlBsH,GACHD,EAAY,KAAKrH,CAAI,CAEzB,MACEqH,EAAY,KAAKrH,CAAI,CAEzB,CACA,IAAMuH,EAAoB,GAAS,CACjC,IAAMtH,EAAOmH,EAAS,IAAIpH,CAAI,GAAK,CAAC,EACpC,IAAK,IAAM8G,KAAK7G,EACd2G,EAAU,OAAOE,CAAC,CACtB,EACMU,EAAoB,GAAU,CAClC,IAAK,IAAI5G,EAAI,EAAEA,EAAIyG,EAAY,OAAQ,IAAK,CAC1C,IAAMI,EAAYJ,EAAYzG,GAC9B,GAAI8D,GAAwB+C,EAAW7D,CAAK,EAE1C,OADAyD,EAAY,OAAOzG,EAAG,CAAC,EAChB6G,CAEX,CAEF,EACIC,EAAW,EACf,IAAK,IAAM9D,KAASuD,EAAc,CAChC,IAAMrI,EAAMsF,EAAiBR,CAAK,EAC9BqD,EACAnI,GACF,EAAQ8H,EAAU,IAAI9H,CAAG,EACrBmI,GACFM,EAAiBN,CAAK,GAExB,EAAQO,EAAiB5D,CAAK,EAEhC,IAAM+D,EAASd,EAAW,WAAWa,IAAa,KAClD,GAAIT,EAAO,CACLA,IAAUU,GACZd,EAAW,aAAaI,EAAOU,CAAM,EAEvB9B,GAAUoB,EAAOrD,EAAOkB,CAAO,EAE/C,IACA,QACF,CACA,IAAMxG,EAAUuG,EAAmBjB,EAAOkB,CAAO,EACjD,GAAI,CAACxG,GAAW,MAAM,QAAQA,CAAO,GAAKA,EAAQ,SAAW,EAC3D,SACF,IAAMsJ,EAAQ,MAAM,QAAQtJ,CAAO,EAAIA,EAAU,CAACA,CAAO,EACzD,IAAK,IAAM0B,KAAQ4H,EACjBf,EAAW,aAAa7G,EAAM2H,CAAM,EACpCtL,EAAgC2D,CAAI,EACpC,GAEJ,CACA,IAAM6H,EAAY,IAAI,IACtB,IAAK,IAAM7H,KAAQqH,EACjBQ,EAAU,IAAI7H,CAAI,EACpB,IAAK,IAAMA,KAAQ4G,EAAU,OAAO,EAClCiB,EAAU,IAAI7H,CAAI,EACpB,IAAK,IAAMA,KAAQ6H,EACb7H,EAAK,aAAe6G,IAClB7G,EAAK,WAAa,GACpBpD,EAAyBoD,CAAI,EAE/B6G,EAAW,YAAY7G,CAAI,EAGjC,CACA,SAAS7E,GAAmB,EAAe,EAAS,EAAS,CAC3D,IAAMsL,EAAkBvL,EAAe4G,EAAegD,CAAO,EAC7D,KAAOhD,EAAc,YACnBA,EAAc,YAAYA,EAAc,UAAU,EAGpD,IAAMgG,EADWvL,EAAYkK,EAAgB,OAAO,QAC9B,CAAC,CAAC,wBAAwBC,CAAO,EACvD,GAAI,MAAM,QAAQoB,CAAM,EACtB,IAAK,IAAM9H,KAAQ8H,EACb9H,IACF8B,EAAc,YAAY9B,CAAI,EAC9B3D,EAAgC2D,CAAI,QAG/B8H,IACThG,EAAc,YAAYgG,CAAM,EAChCzL,EAAgCyL,CAAM,EAE1C,CAGA,IAAIC,GAAwB,GAAQ,CAC7B,MAED,CAACjI,EAAI,eAAe,cAAc,EAAG,CACvC,IAAMkI,EAAQlI,EAAI,cAAc,OAAO,EACvC,EAAM,GAAK,eACX,EAAM,YAAc,+JACpBA,EAAI,KAAK,YAAYkI,CAAK,CAC5B,CACF,EACI1L,GAAuB,EAAM,EAAU,EAAS,gBAAkB,CACpE,IAAM2L,EAAI,aAAaC,EAAS,KAAKC,EAAO,YAAYD,EAAS,KAAKC,IAsDtE,MAAO,CApDL,KAAM,CACJ,MAAO,CAAE,QAAS,IAAK,WAAYF,EAAG,UAAW,oBAAqB,EACtE,YAAa,CAAE,QAAS,GAAI,EAC5B,KAAM,CAAE,QAAS,IAAK,WAAYA,EAAG,UAAW,oBAAqB,EACrE,WAAY,CAAE,QAAS,GAAI,CAC7B,EACA,aAAc,CACZ,MAAO,CACL,UAAW,wBACX,QAAS,MACT,WAAYA,CACd,EACA,YAAa,CAAE,UAAW,qBAAsB,QAAS,GAAI,EAC7D,KAAM,CAAE,UAAW,qBAAsB,QAAS,IAAK,WAAYA,CAAE,EACrE,WAAY,CAAE,UAAW,yBAA0B,QAAS,KAAM,CACpE,EACA,cAAe,CACb,MAAO,CACL,UAAW,yBACX,QAAS,MACT,WAAYA,CACd,EACA,YAAa,CAAE,UAAW,qBAAsB,QAAS,GAAI,EAC7D,KAAM,CAAE,UAAW,qBAAsB,QAAS,IAAK,WAAYA,CAAE,EACrE,WAAY,CAAE,UAAW,wBAAyB,QAAS,KAAM,CACnE,EACA,OACEF,GAAqB,OAAO,SAAa,IAAc,SAAW,MAAS,EACpE,CACL,MAAO,CACL,UAAW,qBACX,QAAS,IACT,WAAY,MACd,EACA,YAAa,CACX,UAAW,qBACX,QAAS,IACT,UAAW,SAASG,EAAS,qCAC/B,EACA,KAAM,CACJ,UAAW,qBACX,QAAS,IACT,WAAY,MACd,EACA,WAAY,CACV,UAAW,qBACX,QAAS,IACT,UAAW,SAASA,EAAS,qCAC/B,CACF,EAGQ,EAAE1H,IAAS,CAAE,MAAO,CAAC,EAAG,YAAa,CAAC,EAAG,KAAM,CAAC,EAAG,WAAY,CAAC,CAAE,CAChF,EACIzD,GAAe,EAAI,IAAW,OAAO,QAAQqL,CAAM,CAAC,CAAC,SAAS,CAACtB,EAAGrM,KAAO4D,EAAG,MAAM,YAAYyI,EAAG,OAAOrM,CAAC,CAAC,CAAC,EAC3G2C,EAA4B,CAC9B,KAAM,OACN,SAAU,IACV,OAAQ,cACR,MAAO,EACP,OAAQ,QACV,EACIiL,EAAQ,GAAO,IAAI,QAAS,GAAM,WAAWC,EAAGC,CAAE,CAAC,EACnDC,GAAmB,MAAO,EAAS,EAAgB,EAAU,IAAW,CAC1E,IAAMC,EAAgBjJ,EAAQ,MAAM,QAC9B8G,EAAW9G,EAAQ,UAAU,EAAI,EACjCM,EAAMN,EAAQ,cACpB,GAAI,CACF,IAAMkJ,EAAOlJ,EAAQ,sBAAsB,EAC3C,EAAS,MAAM,QAAU,yBAAyBkJ,EAAK,IAAI,UAAUA,EAAK,KAAK,WAAWA,EAAK,MAAM,YAAYA,EAAK,OAAO,kCAAkCR,EAAS,KAAKC,EAAO,gBACpL,EAAQ,MAAM,QAAU,IACxB,EAAQ,MAAM,WAAa,WAAWD,EAAS,KAAKC,IACpDrI,EAAI,KAAK,YAAYwG,CAAQ,EAC7B,MAAMqC,EAAe,EACrBnJ,EAAQ,aACR,EAAS,MAAM,QAAU,IACzB,EAAQ,MAAM,QAAU,IACxB,MAAM6I,EAAKH,CAAQ,EACnBpI,EAAI,KAAK,YAAYwG,CAAQ,CAC/B,OAASsC,EAAO,CAGd,MAFItC,EAAS,eACXxG,EAAI,KAAK,YAAYwG,CAAQ,EACzBsC,CACR,QAAU,CACR,EAAQ,MAAM,QAAUH,CAC1B,CACF,EACIhN,EAAoB,MAAO,EAAS,EAAgB,EAAS,CAAC,IAAM,CACtE,GAAM,CACJ,OAAO,OACP,WAAW,IACX,SAAS,cACT,QAAQ,GACN,CAAE,GAAG2B,EAA2B,GAAGyL,CAAO,EAC9C,GAAIrI,IAAS,OAAQ,CACnB,MAAMmI,EAAe,EACrB,MACF,CAGA,GAFIG,EAAQ,GACV,MAAMT,EAAKS,CAAK,EACdtI,IAAS,OAAQ,CACnB,MAAMgI,GAAiBhJ,EAASmJ,EAAgBT,EAAUC,CAAM,EAChE,MACF,CACA,IAAMC,EAASS,EAAO,QAAUvM,EAAoBkE,EAAM0H,EAAUC,CAAM,EACpEY,EAAqBvJ,EAAQ,MAAM,WACnCwJ,EAAoBxJ,EAAQ,MAAM,UACxC,GAAI,CACEgB,IAAS,UACX,EAAQ,MAAM,UAAY,OAC1BhB,EAAQ,cAEVzC,EAAYyC,EAAS4I,EAAO,IAAI,EAChC5I,EAAQ,aACRzC,EAAYyC,EAAS4I,EAAO,UAAU,EACtC,MAAMC,EAAKH,CAAQ,EACnB,MAAMS,EAAe,EACrB5L,EAAYyC,EAAS4I,EAAO,KAAK,EACjC5I,EAAQ,aACRzC,EAAYyC,EAAS4I,EAAO,WAAW,EACvC,MAAMC,EAAKH,CAAQ,EACnB,EAAQ,MAAM,WAAaa,EAC3B,EAAQ,MAAM,UAAYC,CAC5B,OAASJ,EAAO,CAGd,KAFA,GAAQ,MAAM,WAAaG,EAC3B,EAAQ,MAAM,UAAYC,EACpBJ,CACR,CACF,EAGIK,EAAsB,IAAI,QAC1BlN,IAAU,EAAI,EAAY,EAAU,CAAC,IAAM,CAC7C,IAAM+I,EAAU5J,EAAemD,CAAE,EAC3B6K,EAAMpE,EAAQ,OACd0B,EAAOlH,EAAQ,KAAO,OAAS,UAC/B6J,EAAS,GAAYlO,EAAkBoD,EAAI,OAAO+K,GAAY,SAAWhN,EAAmBgN,EAASF,EAAI,SAAS,EAAIE,EAAStE,EAAS0B,CAAI,EAC5I6C,EAAa/J,EAAQ,WAC3B,GAAI+J,GAAcA,EAAW,OAAS,OAAQ,CAC5C,IAAMR,EAAS,CAAE,GAAGzL,EAA2B,GAAGiM,CAAW,EACvDC,EAAmBT,EAAO,SAAW,OAASxK,EAAKA,EAAG,cAC5D,GAAI,CAACiL,EAAkB,CACrBH,EAAMI,CAAU,EAChB,MACF,CACA,IAAMC,EAAQ,CAAE,QAASD,CAAW,EAEpC,OADAN,EAAoB,IAAI5K,EAAImL,CAAK,EAC1B/N,EAAkB6N,EAAkB,SAAY,CACjDL,EAAoB,IAAI5K,CAAE,IAAMmL,GAClCL,EAAMK,EAAM,OAAO,CACvB,EAAGX,CAAM,CAAC,CAAC,YAAc,CACnBI,EAAoB,IAAI5K,CAAE,IAAMmL,GAClCP,EAAoB,OAAO5K,CAAE,CACjC,CAAC,CACH,CACA,IAAMoL,EAAOR,EAAoB,IAAI5K,CAAE,EACnCoL,IACF,EAAK,QAAUF,GACjBJ,EAAMI,CAAU,CAClB,EAGA,GAAI,OAAO,WAAe,IAAa,CACrC,IAAMG,EAAI,WACJtD,EAAUsD,EAAE,KACdtD,IAAY,MAAQ,OAAOA,GAAY,UAAY,OAAOA,GAAY,cACxE,EAAE,IAAM,CAAC,GAEX,OAAO,OAAOsD,EAAE,IAAK1O,CAAW,CAClC,CACA,OACEC,uBACAC,oBACAC,yBACAC,mBACAC,+BACAC,2BACAC,4BACAC,mBACAC,uBACAC,wBACAC,cACAC,6BACAC,oBACAC,WACAC,MAAU,MACVC,WACAC,cACAC,YACAC,oBACAC,wBACAC,qCACAC,yBACAC,iBACAC,8BACAC,4BACAC,iBACAC,oBACAC,8BACAC,0BACAC,uBACAC,iBACAC,0BACAC,0BACAC,wBACAC,qBACAC,+BACAC,0CACAC,kBACAC,0BACAC","names":["__defProp","__returnValue","v","__exportSetter","name","newValue","__export","all","target","exports_src","updateDomWithVdom","resolveGlobals","replaceDomWithVdom","renderMarkup","removeDelegatedEventByKey","removeDelegatedEvent","registerDelegatedEvent","queueCallback","performTransition","parseEventPropName","parseDOM","onClearDelegatedEvents","observeUnmount","nsMap","morph2","isSVG","isMarkup","isHTML","isCommentVNode","htmlStringToVNodes","handleLifecycleEventsForOnMount","getTransitionStyles","getRenderer","getRegisteredEventTypes","getRegisteredEventKeys","getMimeType","domNodeToVNode","clearDelegatedEventsDeep","clearDelegatedEvents","areDomNodesEqual","applyStyles","XMLNS_ATTRIBUTE_NAME","XLINK_ATTRIBUTE_NAME","REF_ATTRIBUTE_NAME","FROM_DOM_MARKER","DEFAULT_TRANSITION_CONFIG","DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE","COMMENT_TYPE","CLASS_ATTRIBUTE_NAME","CAPTURE_ONLY_EVENTS","args","cb","elementHandlerMap","slotListeners","activeDispatches","propName","raw","lower","isCapture","eventType","getOrCreateElementHandlers","existing","el","created","runSlot","handler","phase","dispatchKey","active","event","setSlot","key","capture","byKey","installed","trampoline","clearPhase","entry","setKey","options","byEvent","element","set","isEntryEmpty","clearHooks","hook","root","doc","walker","node","keys","value","HTML_BOOLEAN_ATTRIBUTES","domAttributeToVNodeValue","attr","Parser","input","type","parsed","markup","attributes","i","children","childVNode","DOCUMENT_START","html","vNodes","vnode","domNode","onUnmount","parentNode","observer","mutation","mutationsList","removedNode","newParent","newEl","renderer","domElement","parentElement","virtualNode","parentDomElement","comment","document2","vNode","text","virtualChildren","virtualChild","ref","existingUnmount","val","nsEndIndex","ns","attrName","namespace","styleObj","prop","attrNames","oldNode","newNode","oldElement","newElement","oldAttrs","newAttrs","oldAttr","newAttrValue","isTextLike","isVNode","toValidChild","child","lenient","normalizeChildren","pushChild","valid","fused","buffer","flush","getVNodeMatchKey","id","describePatchItem","getDomMatchKeys","internalKey","attrKey","areNodeAndChildMatching","oldTag","newTag","createDomFromChild","globals","shouldPreserveFormStateAttribute","tag","patchElementInPlace","existingAttrs","mergeAttributes","nextAttrs","registeredKeys","nextEventKeys","d","isControlled","morphDomDirect","replaceNode","old","next","morphNode","data","newType","first","renderingNodes","pendingMorphs","isAncestorRendering","current","flushPendingMorphs","snapshot","vdom","mode","resolvedGlobals","newVDOM","morphDiff","keyedPool","targetRoot","k","item","patchItems","match","isCustomElement","nextChildren","nodeKeys","unkeyedPool","addedToKeyedPool","consumeKeyedNode","takeUnkeyedMatch","candidate","domIndex","anchor","nodes","remaining","newDom","injectShakeKeyframes","style","t","duration","easing","styles","wait","r","ms","performCrossfade","originalStyle","rect","updateCallback","error","config","delay","originalTransition","originalAnimation","inflightTransitions","win","apply","content","transition","transitionTarget","newContent","slot2","slot","g"],"sources":["all.js"],"version":3,"sourcesContent":["var __defProp = Object.defineProperty;\nvar __returnValue = (v) => v;\nfunction __exportSetter(name, newValue) {\n this[name] = __returnValue.bind(null, newValue);\n}\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, {\n get: all[name],\n enumerable: true,\n configurable: true,\n set: __exportSetter.bind(all, name)\n });\n};\n\n// src/index.ts\nvar exports_src = {};\n__export(exports_src, {\n updateDomWithVdom: () => updateDomWithVdom,\n resolveGlobals: () => resolveGlobals,\n replaceDomWithVdom: () => replaceDomWithVdom,\n renderMarkup: () => renderMarkup,\n removeDelegatedEventByKey: () => removeDelegatedEventByKey,\n removeDelegatedEvent: () => removeDelegatedEvent,\n registerDelegatedEvent: () => registerDelegatedEvent,\n queueCallback: () => queueCallback,\n performTransition: () => performTransition,\n parseEventPropName: () => parseEventPropName,\n parseDOM: () => parseDOM,\n onClearDelegatedEvents: () => onClearDelegatedEvents,\n observeUnmount: () => observeUnmount,\n nsMap: () => nsMap,\n morph: () => morph2,\n isSVG: () => isSVG,\n isMarkup: () => isMarkup,\n isHTML: () => isHTML,\n isCommentVNode: () => isCommentVNode,\n htmlStringToVNodes: () => htmlStringToVNodes,\n handleLifecycleEventsForOnMount: () => handleLifecycleEventsForOnMount,\n getTransitionStyles: () => getTransitionStyles,\n getRenderer: () => getRenderer,\n getRegisteredEventTypes: () => getRegisteredEventTypes,\n getRegisteredEventKeys: () => getRegisteredEventKeys,\n getMimeType: () => getMimeType,\n domNodeToVNode: () => domNodeToVNode,\n clearDelegatedEventsDeep: () => clearDelegatedEventsDeep,\n clearDelegatedEvents: () => clearDelegatedEvents,\n areDomNodesEqual: () => areDomNodesEqual,\n applyStyles: () => applyStyles,\n XMLNS_ATTRIBUTE_NAME: () => XMLNS_ATTRIBUTE_NAME,\n XLINK_ATTRIBUTE_NAME: () => XLINK_ATTRIBUTE_NAME,\n REF_ATTRIBUTE_NAME: () => REF_ATTRIBUTE_NAME,\n FROM_DOM_MARKER: () => FROM_DOM_MARKER,\n DEFAULT_TRANSITION_CONFIG: () => DEFAULT_TRANSITION_CONFIG,\n DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE: () => DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE,\n COMMENT_TYPE: () => COMMENT_TYPE,\n CLASS_ATTRIBUTE_NAME: () => CLASS_ATTRIBUTE_NAME,\n CAPTURE_ONLY_EVENTS: () => CAPTURE_ONLY_EVENTS\n});\n\n// src/queue.ts\nvar queueCallback = (cb) => (...args) => queueMicrotask(() => cb(...args));\n\n// src/delegated-events.ts\nvar CAPTURE_ONLY_EVENTS = new Set([\n \"focus\",\n \"blur\",\n \"scroll\",\n \"mouseenter\",\n \"mouseleave\"\n]);\nvar elementHandlerMap = new WeakMap;\nvar slotListeners = new WeakMap;\nvar activeDispatches = new WeakMap;\nvar parseEventPropName = (propName) => {\n if (!propName.startsWith(\"on\"))\n return null;\n const raw = propName.slice(2);\n if (!raw)\n return null;\n const lower = raw.toLowerCase();\n const isCapture = lower.endsWith(\"capture\");\n const eventType = isCapture ? lower.slice(0, -\"capture\".length) : lower;\n if (!eventType)\n return null;\n return { eventType, capture: isCapture };\n};\nvar getOrCreateElementHandlers = (el) => {\n const existing = elementHandlerMap.get(el);\n if (existing)\n return existing;\n const created = new Map;\n elementHandlerMap.set(el, created);\n return created;\n};\nvar runSlot = (target, eventType, phase, event) => {\n const handler = elementHandlerMap.get(target)?.get(eventType)?.[phase];\n if (!handler)\n return;\n const dispatchKey = `${eventType}:${phase}`;\n let active = activeDispatches.get(target);\n if (active?.has(dispatchKey))\n return;\n if (!active) {\n active = new Set;\n activeDispatches.set(target, active);\n }\n active.add(dispatchKey);\n try {\n handler.call(target, event);\n } finally {\n active.delete(dispatchKey);\n }\n};\nvar setSlot = (target, eventType, phase, entry, handler) => {\n entry[phase] = handler;\n const key = `${eventType}:${phase}`;\n const capture = phase === \"capture\";\n let byKey = slotListeners.get(target);\n const installed = byKey?.get(key);\n if (handler && !installed) {\n if (!byKey) {\n byKey = new Map;\n slotListeners.set(target, byKey);\n }\n const trampoline = (event) => runSlot(target, eventType, phase, event);\n byKey.set(key, trampoline);\n target.addEventListener(eventType, trampoline, capture);\n } else if (!handler && installed) {\n byKey.delete(key);\n target.removeEventListener(eventType, installed, capture);\n }\n};\nvar clearPhase = (target, eventType, entry, phase) => {\n setSlot(target, eventType, phase, entry, undefined);\n const setKey = phase === \"capture\" ? \"captureSet\" : \"bubbleSet\";\n for (const handler of entry[setKey] ?? [])\n target.removeEventListener(eventType, handler, phase === \"capture\");\n entry[setKey] = undefined;\n};\nvar registerDelegatedEvent = (element, eventType, handler, options = {}) => {\n const capture = options.capture || CAPTURE_ONLY_EVENTS.has(eventType);\n const phase = capture ? \"capture\" : \"bubble\";\n const byEvent = getOrCreateElementHandlers(element);\n const entry = byEvent.get(eventType) ?? {};\n byEvent.set(eventType, entry);\n if (options.multi) {\n const setKey = capture ? \"captureSet\" : \"bubbleSet\";\n const set = entry[setKey] ??= new Set;\n if (!set.has(handler)) {\n set.add(handler);\n element.addEventListener(eventType, handler, capture);\n }\n } else {\n setSlot(element, eventType, phase, entry, handler);\n }\n};\nvar isEntryEmpty = (entry) => !entry.capture && !entry.bubble && (!entry.captureSet || entry.captureSet.size === 0) && (!entry.bubbleSet || entry.bubbleSet.size === 0);\nvar removeDelegatedEvent = (target, eventType, handler, _options = {}) => {\n const byEvent = elementHandlerMap.get(target);\n if (!byEvent)\n return;\n const entry = byEvent.get(eventType);\n if (!entry)\n return;\n if (handler) {\n for (const phase of [\"capture\", \"bubble\"]) {\n const set = phase === \"capture\" ? entry.captureSet : entry.bubbleSet;\n if (set?.delete(handler))\n target.removeEventListener(eventType, handler, phase === \"capture\");\n if (entry[phase] === handler)\n setSlot(target, eventType, phase, entry, undefined);\n }\n } else {\n clearPhase(target, eventType, entry, \"capture\");\n clearPhase(target, eventType, entry, \"bubble\");\n }\n if (isEntryEmpty(entry)) {\n byEvent.delete(eventType);\n }\n};\nvar clearHooks = new Set;\nvar onClearDelegatedEvents = (hook) => {\n clearHooks.add(hook);\n return () => {\n clearHooks.delete(hook);\n };\n};\nvar clearDelegatedEvents = (target) => {\n const byEvent = elementHandlerMap.get(target);\n if (byEvent) {\n for (const [eventType, entry] of byEvent) {\n clearPhase(target, eventType, entry, \"capture\");\n clearPhase(target, eventType, entry, \"bubble\");\n }\n byEvent.clear();\n }\n for (const hook of clearHooks)\n hook(target);\n};\nvar clearDelegatedEventsDeep = (root) => {\n clearDelegatedEvents(root);\n const doc = root.ownerDocument;\n if (!doc)\n return;\n const walker = doc.createTreeWalker(root, 1);\n let node = walker.nextNode();\n while (node) {\n clearDelegatedEvents(node);\n node = walker.nextNode();\n }\n};\nvar getRegisteredEventTypes = (element) => {\n const byEvent = elementHandlerMap.get(element);\n if (!byEvent)\n return new Set;\n return new Set(byEvent.keys());\n};\nvar getRegisteredEventKeys = (element) => {\n const byEvent = elementHandlerMap.get(element);\n if (!byEvent)\n return new Set;\n const keys = new Set;\n for (const [eventType, entry] of byEvent) {\n if (entry.bubble || entry.bubbleSet?.size)\n keys.add(`${eventType}:bubble`);\n if (entry.capture || entry.captureSet?.size)\n keys.add(`${eventType}:capture`);\n }\n return keys;\n};\nvar removeDelegatedEventByKey = (element, eventType, phase) => {\n const byEvent = elementHandlerMap.get(element);\n if (!byEvent)\n return;\n const entry = byEvent.get(eventType);\n if (!entry)\n return;\n clearPhase(element, eventType, entry, phase);\n if (isEntryEmpty(entry))\n byEvent.delete(eventType);\n};\n\n// src/html.ts\nvar FROM_DOM_MARKER = Symbol(\"defuss-morph.from-dom\");\nvar COMMENT_TYPE = \"#comment\";\nvar isCommentVNode = (value) => !!value && typeof value === \"object\" && value.type === COMMENT_TYPE;\nvar HTML_BOOLEAN_ATTRIBUTES = new Set([\n \"allowfullscreen\",\n \"async\",\n \"autofocus\",\n \"autoplay\",\n \"checked\",\n \"controls\",\n \"default\",\n \"defer\",\n \"disabled\",\n \"formnovalidate\",\n \"hidden\",\n \"inert\",\n \"ismap\",\n \"itemscope\",\n \"loop\",\n \"multiple\",\n \"muted\",\n \"nomodule\",\n \"novalidate\",\n \"open\",\n \"playsinline\",\n \"readonly\",\n \"required\",\n \"reversed\",\n \"selected\"\n]);\nvar domAttributeToVNodeValue = (attr) => HTML_BOOLEAN_ATTRIBUTES.has(attr.name.toLowerCase()) ? true : attr.value;\nfunction parseDOM(input, type, Parser) {\n return new Parser().parseFromString(input, type);\n}\nfunction isSVG(input, Parser) {\n const doc = parseDOM(input, \"image/svg+xml\", Parser);\n if (!doc.documentElement)\n return false;\n return doc.documentElement.nodeName.toLowerCase() === \"svg\";\n}\nfunction isHTML(input, Parser) {\n const doc = parseDOM(input, \"text/html\", Parser);\n return doc.documentElement.querySelectorAll(\"*\").length > 2;\n}\nvar isMarkup = (input, Parser) => input.indexOf(\"<\") > -1 && input.indexOf(\">\") > -1 && (isHTML(input, Parser) || isSVG(input, Parser));\nfunction renderMarkup(markup, Parser, doc) {\n const parsed = doc ? doc : parseDOM(markup, getMimeType(markup, Parser), Parser);\n if (parsed.body)\n return Array.from(parsed.body.childNodes);\n return parsed.documentElement ? [parsed.documentElement] : [];\n}\nfunction getMimeType(input, Parser) {\n if (isSVG(input, Parser)) {\n return \"image/svg+xml\";\n }\n return \"text/html\";\n}\nfunction domNodeToVNode(node) {\n if (node.nodeType === 3) {\n return node.textContent || \"\";\n }\n if (node.nodeType === 1) {\n const element = node;\n const attributes = {};\n for (let i = 0;i < element.attributes.length; i++) {\n const attr = element.attributes[i];\n attributes[attr.name] = domAttributeToVNodeValue(attr);\n }\n const children = [];\n for (let i = 0;i < element.childNodes.length; i++) {\n const childVNode = domNodeToVNode(element.childNodes[i]);\n children.push(childVNode);\n }\n return {\n type: element.tagName.toLowerCase(),\n attributes: { ...attributes, [FROM_DOM_MARKER]: true },\n children\n };\n }\n if (node.nodeType === 8) {\n return { type: COMMENT_TYPE, value: node.nodeValue ?? \"\" };\n }\n return \"\";\n}\nvar DOCUMENT_START = /^\\s*(?:<!--[\\s\\S]*?-->\\s*)*<(?:!doctype|html|head|body)[\\s>/]/i;\nfunction htmlStringToVNodes(html, Parser) {\n const parser = new Parser;\n const doc = parser.parseFromString(DOCUMENT_START.test(html) ? html : `<body>${html}`, \"text/html\");\n const vNodes = [];\n for (let i = 0;i < doc.body.childNodes.length; i++) {\n const vnode = domNodeToVNode(doc.body.childNodes[i]);\n if (vnode !== \"\") {\n vNodes.push(vnode);\n }\n }\n return vNodes;\n}\n\n// src/renderer.ts\nvar CLASS_ATTRIBUTE_NAME = \"class\";\nvar XLINK_ATTRIBUTE_NAME = \"xlink\";\nvar XMLNS_ATTRIBUTE_NAME = \"xmlns\";\nvar REF_ATTRIBUTE_NAME = \"ref\";\nvar DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE = \"dangerouslySetInnerHTML\";\nvar nsMap = {\n [XMLNS_ATTRIBUTE_NAME]: \"http://www.w3.org/2000/xmlns/\",\n [XLINK_ATTRIBUTE_NAME]: \"http://www.w3.org/1999/xlink\",\n svg: \"http://www.w3.org/2000/svg\"\n};\nvar observeUnmount = (domNode, onUnmount) => {\n if (!domNode || typeof onUnmount !== \"function\") {\n throw new Error(\"Invalid arguments. Ensure domNode and onUnmount are valid.\");\n }\n if (typeof MutationObserver === \"undefined\") {\n return;\n }\n let parentNode = domNode.parentNode;\n if (!parentNode) {\n throw new Error(\"The provided domNode does not have a parentNode.\");\n }\n const observer = new MutationObserver((mutationsList) => {\n for (const mutation of mutationsList) {\n if (mutation.removedNodes.length > 0) {\n for (const removedNode of mutation.removedNodes) {\n if (removedNode === domNode) {\n queueMicrotask(() => {\n if (!domNode.isConnected) {\n onUnmount();\n observer.disconnect();\n return;\n }\n const newParent = domNode.parentNode;\n if (newParent && newParent !== parentNode) {\n parentNode = newParent;\n observer.disconnect();\n observer.observe(parentNode, { childList: true });\n }\n });\n return;\n }\n }\n }\n }\n });\n observer.observe(parentNode, { childList: true });\n};\nvar handleLifecycleEventsForOnMount = (newEl) => {\n if (typeof newEl?.$onMount === \"function\") {\n newEl.$onMount(newEl);\n newEl.$onMount = null;\n }\n if (typeof newEl?.$onUnmount === \"function\") {\n observeUnmount(newEl, newEl.$onUnmount);\n }\n};\nvar getRenderer = (document2) => {\n const renderer = {\n hasElNamespace: (domElement) => domElement.namespaceURI === nsMap.svg,\n hasSvgNamespace: (parentElement, type) => renderer.hasElNamespace(parentElement) && type !== \"STYLE\" && type !== \"SCRIPT\",\n createElementOrElements: (virtualNode, parentDomElement) => {\n if (Array.isArray(virtualNode)) {\n return renderer.createChildElements(virtualNode, parentDomElement);\n }\n if (typeof virtualNode !== \"undefined\") {\n return renderer.createElement(virtualNode, parentDomElement);\n }\n return renderer.createTextNode(\"\", parentDomElement);\n },\n createElement: (virtualNode, parentDomElement) => {\n let newEl;\n if (isCommentVNode(virtualNode)) {\n const comment = document2.createComment(virtualNode.value ?? \"\");\n parentDomElement?.appendChild(comment);\n return comment;\n }\n try {\n if (typeof virtualNode === \"function\" && virtualNode.constructor.name === \"AsyncFunction\") {\n newEl = document2.createElement(\"div\");\n } else if (typeof virtualNode === \"object\" && virtualNode !== null && \"type\" in virtualNode) {\n const vNode = virtualNode;\n if (typeof vNode.type === \"function\") {\n newEl = document2.createElement(\"div\");\n newEl.innerText = `FATAL ERROR: ${vNode.type._error}`;\n } else if (typeof vNode.type === \"string\" && vNode.type.toUpperCase() === \"SVG\" || parentDomElement && renderer.hasSvgNamespace(parentDomElement, typeof vNode.type === \"string\" ? vNode.type.toUpperCase() : \"\")) {\n newEl = document2.createElementNS(nsMap.svg, vNode.type);\n } else {\n newEl = document2.createElement(vNode.type);\n }\n if (vNode.attributes) {\n renderer.setAttributes(vNode, newEl);\n if (vNode.attributes.dangerouslySetInnerHTML) {\n newEl.innerHTML = vNode.attributes.dangerouslySetInnerHTML.__html;\n }\n }\n if (vNode.children && !vNode.attributes?.dangerouslySetInnerHTML) {\n renderer.createChildElements(vNode.children, newEl);\n }\n } else {\n if (typeof virtualNode === \"string\" || typeof virtualNode === \"number\") {\n newEl = document2.createElement(String(virtualNode));\n }\n }\n if (newEl && parentDomElement) {\n parentDomElement.appendChild(newEl);\n handleLifecycleEventsForOnMount(newEl);\n }\n } catch (e) {\n console.error(\"Fatal error! Error happend while rendering the VDOM!\", e, virtualNode);\n throw e;\n }\n return newEl;\n },\n createTextNode: (text, domElement) => {\n const node = document2.createTextNode(text.toString());\n if (domElement) {\n domElement.appendChild(node);\n }\n return node;\n },\n createChildElements: (virtualChildren, domElement) => {\n const children = [];\n for (let i = 0;i < virtualChildren.length; i++) {\n const virtualChild = virtualChildren[i];\n if (typeof virtualChild === \"boolean\") {\n continue;\n }\n if (virtualChild === null || typeof virtualChild !== \"object\" && typeof virtualChild !== \"function\") {\n children.push(renderer.createTextNode((typeof virtualChild === \"undefined\" || virtualChild === null ? \"\" : virtualChild).toString(), domElement));\n } else {\n children.push(renderer.createElement(virtualChild, domElement));\n }\n }\n return children;\n },\n setAttribute: (name, value, domElement) => {\n if (typeof value === \"undefined\")\n return;\n if (name === DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE)\n return;\n if (name === \"key\") {\n domElement._defussKey = String(value);\n return;\n }\n if (name === REF_ATTRIBUTE_NAME && typeof value !== \"function\") {\n const ref = value;\n ref.current = domElement;\n domElement._defussRef = value;\n domElement.$onUnmount = queueCallback(() => {});\n if (domElement.parentNode) {\n observeUnmount(domElement, domElement.$onUnmount);\n } else {\n queueMicrotask(() => {\n if (domElement.parentNode) {\n observeUnmount(domElement, domElement.$onUnmount);\n }\n });\n }\n return;\n }\n const parsed = parseEventPropName(name);\n if (parsed && typeof value === \"function\") {\n const { eventType, capture } = parsed;\n if (eventType === \"mount\") {\n domElement.$onMount = queueCallback(value);\n return;\n }\n if (eventType === \"unmount\") {\n if (domElement.$onUnmount) {\n const existingUnmount = domElement.$onUnmount;\n domElement.$onUnmount = () => {\n existingUnmount();\n value();\n };\n } else {\n domElement.$onUnmount = queueCallback(value);\n }\n return;\n }\n registerDelegatedEvent(domElement, eventType, value, { capture });\n return;\n }\n if (name === \"className\") {\n name = CLASS_ATTRIBUTE_NAME;\n }\n if (name === CLASS_ATTRIBUTE_NAME && Array.isArray(value)) {\n value = value.filter((val) => !!val).join(\" \");\n }\n const nsEndIndex = name.match(/[A-Z]/)?.index;\n if (renderer.hasElNamespace(domElement) && nsEndIndex) {\n const ns = name.substring(0, nsEndIndex).toLowerCase();\n const attrName = name.substring(nsEndIndex, name.length).toLowerCase();\n const namespace = nsMap[ns] || null;\n domElement.setAttributeNS(namespace, ns === XLINK_ATTRIBUTE_NAME || ns === XMLNS_ATTRIBUTE_NAME ? `${ns}:${attrName}` : name, String(value));\n } else if (name === \"style\" && typeof value !== \"string\") {\n const styleObj = value;\n for (const prop of Object.keys(styleObj)) {\n domElement.style[prop] = String(styleObj[prop]);\n }\n } else if (typeof value === \"boolean\") {\n domElement[name] = value;\n if (value) {\n domElement.setAttribute(name, \"\");\n } else {\n domElement.removeAttribute(name);\n }\n } else if ((name === \"value\" || name === \"checked\" || name === \"selectedIndex\") && (domElement.nodeName === \"INPUT\" || domElement.nodeName === \"TEXTAREA\" || domElement.nodeName === \"SELECT\")) {\n domElement[name] = value;\n if (name === \"checked\") {\n if (value) {\n domElement.setAttribute(\"checked\", \"\");\n } else {\n domElement.removeAttribute(\"checked\");\n }\n } else if (name === \"value\") {\n domElement.setAttribute(\"value\", String(value));\n }\n } else {\n domElement.setAttribute(name, String(value));\n }\n },\n setAttributes: (virtualNode, domElement) => {\n const attrNames = Object.keys(virtualNode.attributes ?? {});\n for (let i = 0;i < attrNames.length; i++) {\n renderer.setAttribute(attrNames[i], virtualNode.attributes[attrNames[i]], domElement);\n }\n }\n };\n return renderer;\n};\n\n// src/morph.ts\nvar areDomNodesEqual = (oldNode, newNode) => {\n if (oldNode === newNode)\n return true;\n if (oldNode.nodeType !== newNode.nodeType)\n return false;\n if (oldNode.nodeType === 1) {\n const oldElement = oldNode;\n const newElement = newNode;\n if (oldElement.tagName !== newElement.tagName)\n return false;\n const oldAttrs = oldElement.attributes;\n const newAttrs = newElement.attributes;\n if (oldAttrs.length !== newAttrs.length)\n return false;\n for (let i = 0;i < oldAttrs.length; i++) {\n const oldAttr = oldAttrs[i];\n const newAttrValue = newElement.getAttribute(oldAttr.name);\n if (oldAttr.value !== newAttrValue)\n return false;\n }\n }\n if (oldNode.nodeType === 3 || oldNode.nodeType === 8) {\n if (oldNode.nodeValue !== newNode.nodeValue)\n return false;\n }\n return true;\n};\nfunction isTextLike(value) {\n return typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\";\n}\nfunction isVNode(value) {\n return Boolean(value && typeof value === \"object\" && \"type\" in value);\n}\nfunction toValidChild(child, lenient = false) {\n if (child == null)\n return child;\n if (isTextLike(child))\n return child;\n if (isVNode(child))\n return child;\n if (lenient && child && typeof child === \"object\" && \"attributes\" in child)\n return child;\n return;\n}\nfunction normalizeChildren(input, lenient = false) {\n const raw = [];\n const pushChild = (child) => {\n if (Array.isArray(child)) {\n child.forEach(pushChild);\n return;\n }\n const valid = toValidChild(child, lenient);\n if (typeof valid === \"undefined\")\n return;\n if (isVNode(valid) && (valid.type === \"fragment\" || valid.type === \"Fragment\")) {\n const nested = Array.isArray(valid.children) ? valid.children : [];\n nested.forEach(pushChild);\n return;\n }\n if (valid === null || typeof valid === \"undefined\" || typeof valid === \"boolean\")\n return;\n raw.push(valid);\n };\n pushChild(input);\n const fused = [];\n let buffer = null;\n const flush = () => {\n if (buffer !== null && buffer.length > 0)\n fused.push(buffer);\n buffer = null;\n };\n for (const child of raw) {\n if (typeof child === \"string\" || typeof child === \"number\" || typeof child === \"boolean\") {\n buffer = (buffer ?? \"\") + String(child);\n continue;\n }\n flush();\n fused.push(child);\n }\n flush();\n return fused;\n}\nfunction getVNodeMatchKey(child) {\n if (!child || typeof child !== \"object\")\n return null;\n const key = child.attributes?.key;\n if (typeof key === \"string\" || typeof key === \"number\")\n return `k:${String(key)}`;\n const id = child.attributes?.id;\n if (typeof id === \"string\" && id.length > 0)\n return `id:${id}`;\n return null;\n}\nfunction describePatchItem(child) {\n if (child && typeof child === \"object\") {\n return `<${typeof child.type === \"string\" ? child.type : \"component\"}>`;\n }\n return \"plain text\";\n}\nfunction getDomMatchKeys(node) {\n if (node.nodeType !== 1)\n return [];\n const el = node;\n const keys = [];\n const internalKey = el._defussKey;\n if (internalKey)\n keys.push(`k:${internalKey}`);\n const attrKey = el.getAttribute(\"key\");\n if (attrKey)\n keys.push(`k:${attrKey}`);\n const id = el.id;\n if (id)\n keys.push(`id:${id}`);\n return keys;\n}\nfunction areNodeAndChildMatching(domNode, child) {\n if (typeof child === \"string\" || typeof child === \"number\" || typeof child === \"boolean\") {\n return domNode.nodeType === 3;\n }\n if (isCommentVNode(child))\n return domNode.nodeType === 8;\n if (child && typeof child === \"object\") {\n if (domNode.nodeType !== 1)\n return false;\n const el = domNode;\n const oldTag = el.tagName.toLowerCase();\n const newTag = typeof child.type === \"string\" ? child.type.toLowerCase() : \"\";\n if (!newTag || oldTag !== newTag)\n return false;\n return true;\n }\n return false;\n}\nfunction createDomFromChild(child, globals) {\n const renderer = getRenderer(globals.window.document);\n if (child == null)\n return;\n if (typeof child === \"string\" || typeof child === \"number\" || typeof child === \"boolean\") {\n return [globals.window.document.createTextNode(String(child))];\n }\n const created = renderer.createElementOrElements(child);\n if (!created)\n return;\n const nodes = Array.isArray(created) ? created : [created];\n return nodes.filter(Boolean);\n}\nfunction shouldPreserveFormStateAttribute(el, attrName, vnode) {\n const tag = el.tagName.toLowerCase();\n const hasExplicit = Object.hasOwn(vnode.attributes ?? {}, attrName);\n if (hasExplicit)\n return false;\n if (tag === \"input\")\n return attrName === \"value\" || attrName === \"checked\";\n if (tag === \"textarea\")\n return attrName === \"value\";\n if (tag === \"select\")\n return attrName === \"value\";\n return false;\n}\nfunction patchElementInPlace(el, vnode, globals, mergeAttributes = false) {\n const renderer = getRenderer(globals.window.document);\n const existingAttrs = mergeAttributes ? [] : Array.from(el.attributes);\n const nextAttrs = vnode.attributes ?? {};\n for (const attr of existingAttrs) {\n const { name } = attr;\n if (name === \"key\")\n continue;\n if (name.startsWith(\"on\"))\n continue;\n if (name === \"class\" && (Object.hasOwn(nextAttrs, \"class\") || Object.hasOwn(nextAttrs, \"className\"))) {\n continue;\n }\n if (!Object.hasOwn(nextAttrs, name)) {\n if (shouldPreserveFormStateAttribute(el, name, vnode))\n continue;\n el.removeAttribute(name);\n }\n }\n const preserveDelegatedHandlers = mergeAttributes || Boolean(nextAttrs[FROM_DOM_MARKER]);\n if (!preserveDelegatedHandlers) {\n const registeredKeys = getRegisteredEventKeys(el);\n const nextEventKeys = new Set;\n for (const propName of Object.keys(nextAttrs)) {\n const parsed = parseEventPropName(propName);\n if (parsed) {\n const phase = parsed.capture ? \"capture\" : \"bubble\";\n nextEventKeys.add(`${parsed.eventType}:${phase}`);\n }\n }\n for (const key of registeredKeys) {\n if (!nextEventKeys.has(key)) {\n const [eventType, phase] = key.split(\":\");\n removeDelegatedEventByKey(el, eventType, phase);\n }\n }\n }\n renderer.setAttributes(vnode, el);\n handleLifecycleEventsForOnMount(el);\n const d = vnode.attributes?.dangerouslySetInnerHTML;\n if (d && typeof d === \"object\" && typeof d.__html === \"string\") {\n el.innerHTML = d.__html;\n return;\n }\n const tag = el.tagName.toLowerCase();\n if (tag === \"textarea\") {\n const isControlled = Object.hasOwn(nextAttrs, \"value\");\n const isActive = el.ownerDocument?.activeElement === el;\n if (isActive && !isControlled)\n return;\n }\n if (mergeAttributes && (vnode.children === undefined || vnode.children.length === 0 && nextAttrs[FROM_DOM_MARKER]))\n return;\n morphDomDirect(el, vnode.children ?? [], globals);\n}\nfunction replaceNode(old, next) {\n if (old.nodeType === 1)\n clearDelegatedEventsDeep(old);\n old.parentNode?.replaceChild(next, old);\n}\nfunction morphNode(domNode, child, globals, mergeAttributes = false) {\n if (typeof child === \"string\" || typeof child === \"number\" || typeof child === \"boolean\") {\n const text = String(child);\n if (domNode.nodeType === 3) {\n if (domNode.nodeValue !== text)\n domNode.nodeValue = text;\n return domNode;\n }\n const next = globals.window.document.createTextNode(text);\n replaceNode(domNode, next);\n return next;\n }\n if (isCommentVNode(child)) {\n const data = child.value ?? \"\";\n if (domNode.nodeType === 8) {\n if (domNode.nodeValue !== data)\n domNode.nodeValue = data;\n return domNode;\n }\n const next = globals.window.document.createComment(data);\n replaceNode(domNode, next);\n return next;\n }\n if (child && typeof child === \"object\") {\n const newType = typeof child.type === \"string\" ? child.type : null;\n if (!newType)\n return domNode;\n if (domNode.nodeType !== 1) {\n const created = createDomFromChild(child, globals);\n const first = Array.isArray(created) ? created[0] : created;\n if (!first)\n return null;\n domNode.parentNode?.replaceChild(first, domNode);\n handleLifecycleEventsForOnMount(first);\n return first;\n }\n const el = domNode;\n const oldTag = el.tagName.toLowerCase();\n const newTag = newType.toLowerCase();\n if (oldTag !== newTag) {\n const created = createDomFromChild(child, globals);\n const first = Array.isArray(created) ? created[0] : created;\n if (!first)\n return null;\n replaceNode(el, first);\n handleLifecycleEventsForOnMount(first);\n return first;\n }\n patchElementInPlace(el, child, globals, mergeAttributes);\n return el;\n }\n if (domNode.nodeType === 1)\n clearDelegatedEventsDeep(domNode);\n domNode.parentNode?.removeChild(domNode);\n return null;\n}\nvar renderingNodes = new WeakSet;\nvar pendingMorphs = new Map;\nvar resolveGlobals = (el, globals) => {\n if (globals)\n return globals;\n const win = el?.ownerDocument?.defaultView ?? globalThis;\n return { window: win };\n};\nfunction isAncestorRendering(el) {\n let current = el.parentElement;\n while (current) {\n if (renderingNodes.has(current))\n return true;\n current = current.parentElement;\n }\n return false;\n}\nfunction flushPendingMorphs() {\n if (pendingMorphs.size === 0)\n return;\n const snapshot = [...pendingMorphs.entries()];\n pendingMorphs.clear();\n for (const [el, { vdom, globals, mode }] of snapshot) {\n if (!el.isConnected)\n continue;\n updateDomWithVdom(el, vdom, globals, mode);\n }\n}\nfunction updateDomWithVdom(parentElement, newVDOM, globals, mode = \"replace\") {\n const resolvedGlobals = resolveGlobals(parentElement, globals);\n if (renderingNodes.has(parentElement) || isAncestorRendering(parentElement)) {\n pendingMorphs.set(parentElement, {\n vdom: newVDOM,\n globals: resolvedGlobals,\n mode\n });\n return;\n }\n renderingNodes.add(parentElement);\n try {\n morphDomDirect(parentElement, newVDOM, resolvedGlobals, mode);\n } finally {\n renderingNodes.delete(parentElement);\n }\n flushPendingMorphs();\n}\nfunction morphDiff(targetRoot, patchItems, globals) {\n const keyedPool = new Map;\n for (const node of Array.from(targetRoot.childNodes)) {\n for (const k of getDomMatchKeys(node)) {\n if (!keyedPool.has(k))\n keyedPool.set(k, node);\n }\n }\n for (const item of patchItems) {\n if (typeof item === \"string\" && item.trim() === \"\")\n continue;\n if (isCommentVNode(item))\n continue;\n const key = getVNodeMatchKey(item);\n if (!key) {\n throw new Error(`morph diff: patch items must be elements with a key or id attribute (got ${describePatchItem(item)})`);\n }\n const match = keyedPool.get(key);\n if (match) {\n const patchItem = item && typeof item === \"object\" && !item.type ? { ...item, type: match.tagName.toLowerCase() } : item;\n morphNode(match, patchItem, globals, true);\n continue;\n }\n if (!item?.type) {\n throw new Error(`morph diff: new (unmatched) patch items must declare a tag (type), got key/id \"${key}\"`);\n }\n const created = createDomFromChild(item, globals) ?? [];\n for (const node of created) {\n targetRoot.appendChild(node);\n handleLifecycleEventsForOnMount(node);\n }\n }\n}\nfunction morphDomDirect(parentElement, newVDOM, globals, mode = \"replace\") {\n const el = parentElement;\n const isCustomElement = el.tagName.includes(\"-\");\n const targetRoot = el.shadowRoot && !isCustomElement ? el.shadowRoot : parentElement;\n const nextChildren = normalizeChildren(newVDOM, mode === \"diff\");\n if (mode === \"diff\") {\n morphDiff(targetRoot, nextChildren, globals);\n return;\n }\n const existing = Array.from(targetRoot.childNodes);\n const keyedPool = new Map;\n const nodeKeys = new WeakMap;\n const unkeyedPool = [];\n for (const node of existing) {\n const keys = getDomMatchKeys(node);\n if (keys.length > 0) {\n nodeKeys.set(node, keys);\n let addedToKeyedPool = false;\n for (const k of keys) {\n if (!keyedPool.has(k)) {\n keyedPool.set(k, node);\n addedToKeyedPool = true;\n }\n }\n if (!addedToKeyedPool) {\n unkeyedPool.push(node);\n }\n } else {\n unkeyedPool.push(node);\n }\n }\n const consumeKeyedNode = (node) => {\n const keys = nodeKeys.get(node) ?? [];\n for (const k of keys)\n keyedPool.delete(k);\n };\n const takeUnkeyedMatch = (child) => {\n for (let i = 0;i < unkeyedPool.length; i++) {\n const candidate = unkeyedPool[i];\n if (areNodeAndChildMatching(candidate, child)) {\n unkeyedPool.splice(i, 1);\n return candidate;\n }\n }\n return;\n };\n let domIndex = 0;\n for (const child of nextChildren) {\n const key = getVNodeMatchKey(child);\n let match;\n if (key) {\n match = keyedPool.get(key);\n if (match)\n consumeKeyedNode(match);\n } else {\n match = takeUnkeyedMatch(child);\n }\n const anchor = targetRoot.childNodes[domIndex] ?? null;\n if (match) {\n if (match !== anchor) {\n targetRoot.insertBefore(match, anchor);\n }\n const morphed = morphNode(match, child, globals);\n if (morphed && morphed !== match) {}\n domIndex++;\n continue;\n }\n const created = createDomFromChild(child, globals);\n if (!created || Array.isArray(created) && created.length === 0)\n continue;\n const nodes = Array.isArray(created) ? created : [created];\n for (const node of nodes) {\n targetRoot.insertBefore(node, anchor);\n handleLifecycleEventsForOnMount(node);\n domIndex++;\n }\n }\n const remaining = new Set;\n for (const node of unkeyedPool)\n remaining.add(node);\n for (const node of keyedPool.values())\n remaining.add(node);\n for (const node of remaining) {\n if (node.parentNode === targetRoot) {\n if (node.nodeType === 1) {\n clearDelegatedEventsDeep(node);\n }\n targetRoot.removeChild(node);\n }\n }\n}\nfunction replaceDomWithVdom(parentElement, newVDOM, globals) {\n const resolvedGlobals = resolveGlobals(parentElement, globals);\n while (parentElement.firstChild) {\n parentElement.removeChild(parentElement.firstChild);\n }\n const renderer = getRenderer(resolvedGlobals.window.document);\n const newDom = renderer.createElementOrElements(newVDOM);\n if (Array.isArray(newDom)) {\n for (const node of newDom) {\n if (node) {\n parentElement.appendChild(node);\n handleLifecycleEventsForOnMount(node);\n }\n }\n } else if (newDom) {\n parentElement.appendChild(newDom);\n handleLifecycleEventsForOnMount(newDom);\n }\n}\n\n// src/transitions.ts\nvar injectShakeKeyframes = (doc) => {\n if (!doc)\n return;\n if (!doc.getElementById(\"defuss-shake\")) {\n const style = doc.createElement(\"style\");\n style.id = \"defuss-shake\";\n style.textContent = \"@keyframes shake{0%,100%{transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{transform:translate3d(-10px,0,0)}20%,40%,60%,80%{transform:translate3d(10px,0,0)}}\";\n doc.head.appendChild(style);\n }\n};\nvar getTransitionStyles = (type, duration, easing = \"ease-in-out\") => {\n const t = `transform ${duration}ms ${easing}, opacity ${duration}ms ${easing}`;\n const styles = {\n fade: {\n enter: { opacity: \"0\", transition: t, transform: \"translate3d(0,0,0)\" },\n enterActive: { opacity: \"1\" },\n exit: { opacity: \"1\", transition: t, transform: \"translate3d(0,0,0)\" },\n exitActive: { opacity: \"0\" }\n },\n \"slide-left\": {\n enter: {\n transform: \"translate3d(100%,0,0)\",\n opacity: \"0.5\",\n transition: t\n },\n enterActive: { transform: \"translate3d(0,0,0)\", opacity: \"1\" },\n exit: { transform: \"translate3d(0,0,0)\", opacity: \"1\", transition: t },\n exitActive: { transform: \"translate3d(-100%,0,0)\", opacity: \"0.5\" }\n },\n \"slide-right\": {\n enter: {\n transform: \"translate3d(-100%,0,0)\",\n opacity: \"0.5\",\n transition: t\n },\n enterActive: { transform: \"translate3d(0,0,0)\", opacity: \"1\" },\n exit: { transform: \"translate3d(0,0,0)\", opacity: \"1\", transition: t },\n exitActive: { transform: \"translate3d(100%,0,0)\", opacity: \"0.5\" }\n },\n shake: (() => {\n injectShakeKeyframes(typeof document !== \"undefined\" ? document : undefined);\n return {\n enter: {\n transform: \"translate3d(0,0,0)\",\n opacity: \"1\",\n transition: \"none\"\n },\n enterActive: {\n transform: \"translate3d(0,0,0)\",\n opacity: \"1\",\n animation: `shake ${duration}ms cubic-bezier(0.36,0.07,0.19,0.97)`\n },\n exit: {\n transform: \"translate3d(0,0,0)\",\n opacity: \"1\",\n transition: \"none\"\n },\n exitActive: {\n transform: \"translate3d(0,0,0)\",\n opacity: \"1\",\n animation: `shake ${duration}ms cubic-bezier(0.36,0.07,0.19,0.97)`\n }\n };\n })()\n };\n return styles[type] || { enter: {}, enterActive: {}, exit: {}, exitActive: {} };\n};\nvar applyStyles = (el, styles) => Object.entries(styles).forEach(([k, v]) => el.style.setProperty(k, String(v)));\nvar DEFAULT_TRANSITION_CONFIG = {\n type: \"fade\",\n duration: 300,\n easing: \"ease-in-out\",\n delay: 0,\n target: \"parent\"\n};\nvar wait = (ms) => new Promise((r) => setTimeout(r, ms));\nvar performCrossfade = async (element, updateCallback, duration, easing) => {\n const originalStyle = element.style.cssText;\n const snapshot = element.cloneNode(true);\n const doc = element.ownerDocument;\n try {\n const rect = element.getBoundingClientRect();\n snapshot.style.cssText = `position:absolute;top:${rect.top}px;left:${rect.left}px;width:${rect.width}px;height:${rect.height}px;opacity:1;transition:opacity ${duration}ms ${easing};z-index:1000;`;\n element.style.opacity = \"0\";\n element.style.transition = `opacity ${duration}ms ${easing}`;\n doc.body.appendChild(snapshot);\n await updateCallback();\n element.offsetHeight;\n snapshot.style.opacity = \"0\";\n element.style.opacity = \"1\";\n await wait(duration);\n doc.body.removeChild(snapshot);\n } catch (error) {\n if (snapshot.parentElement)\n doc.body.removeChild(snapshot);\n throw error;\n } finally {\n element.style.cssText = originalStyle;\n }\n};\nvar performTransition = async (element, updateCallback, config = {}) => {\n const {\n type = \"fade\",\n duration = 300,\n easing = \"ease-in-out\",\n delay = 0\n } = { ...DEFAULT_TRANSITION_CONFIG, ...config };\n if (type === \"none\") {\n await updateCallback();\n return;\n }\n if (delay > 0)\n await wait(delay);\n if (type === \"fade\") {\n await performCrossfade(element, updateCallback, duration, easing);\n return;\n }\n const styles = config.styles || getTransitionStyles(type, duration, easing);\n const originalTransition = element.style.transition;\n const originalAnimation = element.style.animation;\n try {\n if (type === \"shake\") {\n element.style.animation = \"none\";\n element.offsetHeight;\n }\n applyStyles(element, styles.exit);\n element.offsetHeight;\n applyStyles(element, styles.exitActive);\n await wait(duration);\n await updateCallback();\n applyStyles(element, styles.enter);\n element.offsetHeight;\n applyStyles(element, styles.enterActive);\n await wait(duration);\n element.style.transition = originalTransition;\n element.style.animation = originalAnimation;\n } catch (error) {\n element.style.transition = originalTransition;\n element.style.animation = originalAnimation;\n throw error;\n }\n};\n\n// src/index.ts\nvar inflightTransitions = new WeakMap;\nvar morph2 = (el, newContent, options = {}) => {\n const globals = resolveGlobals(el);\n const win = globals.window;\n const mode = options.diff ? \"diff\" : \"replace\";\n const apply = (content) => updateDomWithVdom(el, typeof content === \"string\" ? htmlStringToVNodes(content, win.DOMParser) : content, globals, mode);\n const transition = options.transition;\n if (transition && transition.type !== \"none\") {\n const config = { ...DEFAULT_TRANSITION_CONFIG, ...transition };\n const transitionTarget = config.target === \"self\" ? el : el.parentElement;\n if (!transitionTarget) {\n apply(newContent);\n return;\n }\n const slot2 = { content: newContent };\n inflightTransitions.set(el, slot2);\n return performTransition(transitionTarget, async () => {\n if (inflightTransitions.get(el) === slot2)\n apply(slot2.content);\n }, config).finally(() => {\n if (inflightTransitions.get(el) === slot2)\n inflightTransitions.delete(el);\n });\n }\n const slot = inflightTransitions.get(el);\n if (slot)\n slot.content = newContent;\n apply(newContent);\n};\n\n// src/global.ts\nif (typeof globalThis !== \"undefined\") {\n const g = globalThis;\n const current = g.df$;\n if (current === null || typeof current !== \"object\" && typeof current !== \"function\") {\n g.df$ = {};\n }\n Object.assign(g.df$, exports_src);\n}\nexport {\n updateDomWithVdom,\n resolveGlobals,\n replaceDomWithVdom,\n renderMarkup,\n removeDelegatedEventByKey,\n removeDelegatedEvent,\n registerDelegatedEvent,\n queueCallback,\n performTransition,\n parseEventPropName,\n parseDOM,\n onClearDelegatedEvents,\n observeUnmount,\n nsMap,\n morph2 as morph,\n isSVG,\n isMarkup,\n isHTML,\n isCommentVNode,\n htmlStringToVNodes,\n handleLifecycleEventsForOnMount,\n getTransitionStyles,\n getRenderer,\n getRegisteredEventTypes,\n getRegisteredEventKeys,\n getMimeType,\n domNodeToVNode,\n clearDelegatedEventsDeep,\n clearDelegatedEvents,\n areDomNodesEqual,\n applyStyles,\n XMLNS_ATTRIBUTE_NAME,\n XLINK_ATTRIBUTE_NAME,\n REF_ATTRIBUTE_NAME,\n FROM_DOM_MARKER,\n DEFAULT_TRANSITION_CONFIG,\n DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE,\n COMMENT_TYPE,\n CLASS_ATTRIBUTE_NAME,\n CAPTURE_ONLY_EVENTS\n};\n\n//# debugId=2B212A8922F1193364756E2164756E21\n//# sourceMappingURL=all.js.map\n"],"file":"all.min.js"}
|