defuss 2.0.1 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ var V=Object.defineProperty;var o=(r,e)=>V(r,"name",{value:e,configurable:!0});const z=/(.*)\[(\d+)\]/,K=/^\d+$/,S=o(r=>r.split(".").flatMap(e=>{const n=e.match(z);return n?[...S(n[1]),Number(n[2])]:e}),"getAllKeysFromPath"),R=o((r,e,n)=>{e in r||(r[e]=K.test(String(n))?[]:{})},"ensureKey"),W=o((r,e)=>S(e).reduce((t,s)=>t?.[s],r),"getByPath"),k=o((r,e,n)=>{const t=S(e),s=t[0],i=Array.isArray(r)?[...r]:{...r};return t.length===1?(n===void 0?Array.isArray(i)?i.splice(Number(s),1):delete i[s]:i[s]=n,i):(R(i,s,t[1]),i[s]=k(i[s],t.slice(1).join("."),n),i)},"setByPath"),$=o(r=>{let e=r;const n=[],t=o((s,i)=>{n.forEach(l=>l(e,s,i))},"notify");return{get value(){return e},get(s){return s?W(e,s):e},set(s,i){const l=e;if(i===void 0)l!==s&&(e=s,t(l));else{const a=k(e,s,i);l!==a&&(e=a,t(l,s))}},subscribe(s){return n.push(s),()=>{const i=n.indexOf(s);i>=0&&n.splice(i,1)}}}},"createStore"),E=o(r=>r&&typeof r=="object"&&"current"in r,"isRef");function Y(r,e){const n=$(e),t={current:null,store:n,get state(){return n.value},set state(s){n.set(s)},update:o(s=>{n.set(s)},"update"),subscribe:o(s=>n.subscribe(s),"subscribe")};return typeof r=="function"&&t.subscribe(r),t}o(Y,"createRef");const u=o(r=>(r instanceof HTMLElement||console.warn("Expected HTMLElement, but found:",r?.nodeName??r),r),"elementGuard"),x={maxWaitMs:1e3,timeout:5e3,delay:0,verbose:!1,onTimeGuardError:o(()=>{},"onTimeGuardError")};class c{static{o(this,"Call")}name;fn;args;constructor(e,...n){this.name=e.name,this.fn=e,this.args=n}}class Z{static{o(this,"CallChainImpl")}options;callStack;chainStack;elements;prevElements;stoppedWithError;lastResult;isResolved;constructor(e={},n=!1){this.options={...x,...e},this.callStack=[],this.chainStack=[],this.elements=e.initialEl?[e.initialEl]:[],this.prevElements=[],this.stoppedWithError=!1,this.lastResult=null,this.isResolved=n;const t=new Proxy(this,{get(s,i){if(typeof i=="string"&&!Number.isNaN(Number(i)))return s.elements[Number(i)];const l=s[i];return typeof l=="function"?function(...a){return l.apply(t,a)}:l}});return t}resetElements(){this.prevElements=[...this.elements],this.elements=this.options.initialEl?[this.options.initialEl]:[]}getFirstElement(){return this.elements[0]}createSubChain(e=!0){if(e){const n=new y({...this.options,initialEl:this.getFirstElement()},!0);return n.elements=this.elements,n.prevElements=this.prevElements,n.callStack=this.callStack,n.chainStack=this.chainStack,n.stoppedWithError=this.stoppedWithError,n.lastResult=this.lastResult,n}else return new y({...this.options,initialEl:this.getFirstElement()},!0)}__init(e,n){if(!e)throw new Error("dequery: selector/ref/element required");if(typeof e=="string")if(e.indexOf("<")===0){this.elements=_(e);const{text:t,html:s,...i}=n;return typeof this.elements[0]<"u"&&this.elements[0]instanceof Element&&(Object.entries(i).forEach(([l,a])=>{this.elements[0].setAttribute(l,String(a))}),s?this.elements[0].innerHTML=s:t&&(this.elements[0].textContent=t)),this.createSubChain()}else return this.query(e);else{if(E(e))return this.ref(e);if(e.nodeType)return this.elements=[e],this.createSubChain();if(w(e)){const t=C(e,void 0,globalThis);return this.elements=typeof t<"u"?Array.isArray(t)?t:[t]:[],this.createSubChain()}}throw new Error("Unsupported selectorOrEl type")}debug(e){return this.callStack.push(new c(o(function(){return e(this.elements),this.createSubChain(!0)},"debug"))),this}ref(e){return this.callStack.push(new c(o(async function(t){if(await b(t,this.options.maxWaitMs),t.current)this.elements=[u(t.current)];else throw new Error("Ref is null or undefined");return this.createSubChain()},"ref2"),e)),this}query(e){return this.callStack.push(new c(o(async function(t){return await N(t,this.options.maxWaitMs),this.elements=Array.from(document.querySelectorAll(t)),this.createSubChain()},"query"),e)),this}all(){return this.callStack.push(new c(o(function(){return this.elements.map(n=>new y({...this.options,initialEl:n},!0))},"all"))),this}get length(){return this.elements.length}first(){return this.callStack.push(new c(o(function(){return this.elements=[this.elements[0]],this.createSubChain()},"first"))),this}last(){return this.callStack.push(new c(o(function(){const n=this.elements;return this.elements=[n[n.length-1]],this.createSubChain()},"last"))),this}next(){return this.callStack.push(new c(o(function(){return this.elements=this.elements.map(n=>u(n).nextElementSibling).filter(Boolean),this.createSubChain()},"next"))),this}prev(){return this.callStack.push(new c(o(function(){return this.elements=this.elements.map(n=>u(n).previousElementSibling).filter(Boolean),this.createSubChain()},"prev"))),this}find(e){return this.callStack.push(new c(o(function(t){return this.elements=this.elements.flatMap(s=>Array.from(u(s).querySelectorAll(t))),this.createSubChain()},"find"),e)),this}parent(){return this.callStack.push(new c(o(function(){return this.elements=this.elements.map(n=>n.parentElement).filter(Boolean),this.createSubChain()},"parent"))),this}children(){return this.callStack.push(new c(o(function(){return this.elements=this.elements.flatMap(n=>Array.from(u(n).children)),this.createSubChain(!0)},"children"))),this}closest(e){return this.callStack.push(new c(o(function(t){return this.elements=this.elements.map(s=>u(s).closest(t)).filter(Boolean),this.createSubChain()},"closest"),e)),this}filter(e){return this.callStack.push(new c(o(function(t){return this.elements=this.elements.filter(s=>u(s).matches(t)),this.createSubChain(this.elements.length>0)},"filter"),e)),this}attr(e,n){return n!==void 0?(this.callStack.push(new c(o(function(s,i){return this.elements.forEach(l=>u(l).setAttribute(s,i)),null},"setAttr"),e,n)),this):(this.callStack.push(new c(o(function(s){return u(this.getFirstElement()).getAttribute(s)},"getAttr"),e)),this)}prop(e,n){return n!==void 0?(this.callStack.push(new c(o(function(s,i){return this.elements.forEach(l=>u(l)[s]=i),null},"setProp"),e,n)),this):(this.callStack.push(new c(o(function(s){return u(this.getFirstElement())[s]},"getProp"),e)),this)}css(e,n){return typeof e=="string"&&n===void 0?this.callStack.push(new c(o(function(s){return u(this.getFirstElement()).style.getPropertyValue(s)},"getCss"),e)):this.callStack.push(new c(o(function(s,i){return this.elements.forEach(l=>{if(typeof s=="string")u(l).style.setProperty(s,i);else for(const a in s)u(l).style.setProperty(a,s[a])}),null},"setCss"),e,n)),this}addClass(e){return this.callStack.push(new c(o(function(t){const s=Array.isArray(t)?t:[t];return this.elements.forEach(i=>u(i).classList.add(...s)),null},"addClass"),e)),this}removeClass(e){return this.callStack.push(new c(o(function(t){const s=Array.isArray(t)?t:[t];return this.elements.forEach(i=>u(i).classList.remove(...s)),null},"removeClass"),e)),this}hasClass(e){return this.callStack.push(new c(o(function(t){return this.elements.every(s=>u(s).classList.contains(t))},"hasClass"),e)),this}toggleClass(e){return this.callStack.push(new c(o(function(t){return this.elements.forEach(s=>u(s).classList.toggle(t)),null},"toggleClass"),e)),this}animateClass(e,n){return this.callStack.push(new c(o(function(s,i){return this.elements.forEach(l=>{const a=u(l);a.classList.add(s),setTimeout(()=>a.classList.remove(s),i)}),null},"animateClass"),e,n)),this}empty(){return this.callStack.push(new c(o(function(){return this.elements.forEach(n=>u(n).innerHTML=""),null},"empty"))),this}html(e){return this.callStack.push(new c(o(function(t){return this.elements.forEach(s=>P(u(s),t)),null},"html2"),e)),this}jsx(e){return w(e)?(this.callStack.push(new c(o(function(t){return this.elements.forEach(s=>A(u(s),t,globalThis)),null},"jsx"),e)),this):(console.warn("jsx: expected JSX, got",e),this)}text(e){return this.callStack.push(new c(o(function(t){return this.elements.forEach(s=>u(s).textContent=t),null},"text2"),e)),this}update(e){return this.callStack.push(new c(o(function(t){return typeof t=="string"?/<\/?>[a-z][\s\S]*>/i.test(t)?this.elements.forEach(i=>P(u(i),t)):this.elements.forEach(i=>u(i).textContent=t):this.elements.forEach(s=>A(u(s),t,globalThis)),null},"update"),e)),this}remove(){return this.callStack.push(new c(o(function(){return this.elements.forEach(n=>u(n).remove()),null},"remove"))),this}replaceWith(e){return this.callStack.push(new c(o(async function(t){let s;if(typeof t=="string")/<\/?[a-z][\s\S]*>/i.test(t)?s=_(t)[0]:s=document.createTextNode(t);else if(w(t))s=C(t,void 0,globalThis);else if(E(t))await b(t,this.options.maxWaitMs),s=u(t.current);else if(t instanceof Node)s=t;else if(t instanceof y)s=t.getFirstElement();else return console.warn("replaceWith: unsupported content type",t),null;return this.elements.forEach(i=>{i.parentNode?.replaceChild(s.cloneNode(!0),i)}),null},"replaceWith"),e)),this}append(e){return this.callStack.push(new c(o(function(t){return this.elements.forEach(s=>{typeof t=="string"?u(s).innerHTML+=t:t instanceof y?t.elements.forEach(i=>{s.appendChild(i.cloneNode(!0))}):s.appendChild(t.cloneNode(!0))}),null},"append"),e)),this}appendTo(e){return this.callStack.push(new c(o(async function(t){let s;if(E(t))await b(t,this.options.maxWaitMs),s=u(t.current);else if(typeof t=="string")await N(t,this.options.maxWaitMs),s=u(document.querySelector(t));else if(t instanceof Node)s=u(t);else if(t instanceof y)s=u(t.getFirstElement());else return console.warn("appendTo: expected selector, ref or node, got",t),null;return this.elements.forEach(i=>{s.appendChild(i.cloneNode(!0))}),null},"appendTo"),e)),this}on(e,n){return this.callStack.push(new c(o(function(s,i){return this.elements.forEach(l=>u(l).addEventListener(s,i)),null},"on"),e,n)),this}off(e,n){return this.callStack.push(new c(o(function(s,i){return this.elements.forEach(l=>u(l).removeEventListener(s,i)),null},"off"),e,n)),this}trigger(e){return this.callStack.push(new c(o(function(t){return this.elements.forEach(s=>u(s).dispatchEvent(new Event(t,{bubbles:!0,cancelable:!0}))),null},"trigger"),e)),this}val(e){return e!==void 0?this.callStack.push(new c(o(function(t){return this.elements.forEach(s=>{s instanceof HTMLInputElement&&(s.value=String(t))}),null},"setVal"),e)):this.callStack.push(new c(o(function(){return u(this.getFirstElement()).value},"getVal"))),this}map(e){return this.callStack.push(new c(o(function(t){return this.elements.map(t)},"map"),e)),this}toArray(){return this.callStack.push(new c(o(function(){return[...this.elements]},"toArray"))),this}data(e,n){return n!==void 0?this.callStack.push(new c(o(function(s,i){return this.elements.forEach(l=>u(l).dataset[s]=i),null},"setData"),e,n)):this.callStack.push(new c(o(function(s){return u(this.getFirstElement()).dataset[s]},"getData"),e)),this}form(e){return e?this.callStack.push(new c(o(function(t){return this.elements.forEach(s=>{s instanceof Element&&s.querySelectorAll("input, select, textarea").forEach(l=>{if(["INPUT","SELECT","TEXTAREA"].includes(l.tagName)){const a=l.name||l.id;t[a]!==void 0&&(l.type==="checkbox"?l.checked=!!t[a]:l.value=String(t[a]))}})}),null},"setForm"),e)):this.callStack.push(new c(o(function(){const t={};return this.elements.forEach(s=>{s instanceof Element&&s.querySelectorAll("input, select, textarea").forEach(l=>{if(["INPUT","SELECT","TEXTAREA"].includes(l.tagName)){const a=l.name||l.id;l.type==="checkbox"?t[a]=l.checked:t[a]=l.value}})}),t},"getForm"))),this}then(e,n){this.stoppedWithError||B(this.options.timeout,async()=>{const t=[];for(const s of this.callStack){if(this.stoppedWithError)break;try{t.push(await s.fn.apply(this,s.args)),await q(this.options.delay)}catch{this.stoppedWithError=!0;break}}return this.chainStack.push([...t]),this.lastResult=t[t.length-1],this.callStack=[],this.resetElements(),this.isResolved=!0,this.lastResult},[]).then(e).catch(n)}}const y=new Proxy(Z,{construct(r,e){const n=new r(...e);return new Proxy(n,{get(t,s){return s==="then"&&n.isResolved?Promise.resolve(n.lastResult):(n.isResolved=!1,t[s])}})}});function v(r,e=x){let n=new y({...e,initialEl:void 0}).__init(r,e);return(async()=>n=await n)(),n}o(v,"dequery");const Q=v,ee=v;function L(r){return typeof r=="object"&&r!==null&&"isResolved"in r&&"lastResult"in r}o(L,"isDequery");async function M(r,e,n=1){const t=Date.now();return new Promise((s,i)=>{const l=setInterval(()=>{try{const a=r();a!=null?(clearInterval(l),s(a)):Date.now()-t>=e&&(clearInterval(l),i(new Error(`Timeout after ${e}ms`)))}catch(a){throw clearInterval(l),i(a),a}},n)})}o(M,"waitForWithPolling");async function N(r,e,n){return M(()=>document.querySelector(r),e,n)}o(N,"waitForSelectorWithPolling");async function b(r,e,n){return M(()=>r.current,e,n)}o(b,"waitForRefWithPolling");function _(r,e="text/html"){const n=new DOMParser().parseFromString(r,e);return Array.from(n.body.childNodes)}o(_,"renderHTML");function q(r){return new Promise(e=>setTimeout(e,r))}o(q,"sleep");function B(r,e,n,t){return e(...n)}o(B,"runWithTimeGuard");const U="class",j="xlink",te="xmlns",ne="ref",F={[te]:"http://www.w3.org/2000/xmlns/",[j]:"http://www.w3.org/1999/xlink",svg:"http://www.w3.org/2000/svg"},se=o(r=>r&&typeof r=="object"&&!r.attributes&&!r.type&&!r.children,"isJSXComment"),X=o(r=>r.filter(e=>!se(e)),"filterComments"),H=o(r=>({type:"p",attributes:{},children:[`FATAL ERROR: ${r?.message||r}`]}),"createInPlaceErrorMessageVNode"),I=o((r,e,n)=>{e={...e},typeof n<"u"&&(e.key=n);let t=(e?.children?[].concat(e.children):[]).filter(Boolean);if(delete e?.children,t=X([].concat.apply([],t)),r==="fragment")return X(t);if(typeof r=="function"&&r.constructor.name!=="AsyncFunction")try{return r({children:t,...e})}catch(s){return typeof s=="string"?s=`[JsxError] in ${r.name}: ${s}`:s instanceof Error&&(s.message=`[JsxError] in ${r.name}: ${s.message}`),H(s)}return{type:r,attributes:e,children:t}},"jsx"),J=o((r,e)=>{if(!r||typeof e!="function")throw new Error("Invalid arguments. Ensure domNode and onUnmount are valid.");const n=r.parentNode;if(!n)throw new Error("The provided domNode does not have a parentNode.");const t=new MutationObserver(s=>{for(const i of s)if(i.removedNodes.length>0){for(const l of i.removedNodes)if(l===r){e(),t.disconnect();return}}});t.observe(n,{childList:!0})},"observeUnmount"),m=o(r=>{typeof r?.$onMount=="function"&&(r.$onMount(),r.$onMount=null),typeof r?.$onUnmount=="function"&&J(r,r.$onUnmount)},"handleLifecycleEventsForOnMount"),g=o(r=>{const e={hasElNamespace:o(n=>n.namespaceURI===F.svg,"hasElNamespace"),hasSvgNamespace:o((n,t)=>e.hasElNamespace(n)&&t!=="STYLE"&&t!=="SCRIPT","hasSvgNamespace"),createElementOrElements:o((n,t)=>Array.isArray(n)?e.createChildElements(n,t):typeof n<"u"?e.createElement(n,t):e.createTextNode("",t),"createElementOrElements"),createElement:o((n,t)=>{let s;try{n.constructor.name==="AsyncFunction"?s=r.createElement("div"):typeof n.type=="function"?(s=r.createElement("div"),s.innerText=`FATAL ERROR: ${n.type._error}`):n.type.toUpperCase()==="SVG"||t&&e.hasSvgNamespace(t,n.type.toUpperCase())?s=r.createElementNS(F.svg,n.type):s=r.createElement(n.type),n.attributes&&(e.setAttributes(n,s),n.attributes.dangerouslySetInnerHTML&&(s.innerHTML=n.attributes.dangerouslySetInnerHTML.__html)),n.children&&e.createChildElements(n.children,s),t&&(t.appendChild(s),m(s))}catch(i){throw console.error("Fatal error! Error happend while rendering the VDOM!",i,n),i}return s},"createElement"),createTextNode:o((n,t)=>{const s=r.createTextNode(n.toString());return t&&t.appendChild(s),s},"createTextNode"),createChildElements:o((n,t)=>{const s=[];for(let i=0;i<n.length;i++){const l=n[i];l===null||typeof l!="object"&&typeof l!="function"?s.push(e.createTextNode((typeof l>"u"||l===null?"":l).toString(),t)):s.push(e.createElement(l,t))}return s},"createChildElements"),setAttribute:o((n,t,s,i)=>{if(typeof t>"u"||n==="dangerouslySetInnerHTML")return;if(n===ne&&typeof t!="function"){t.current=s;return}if(n.startsWith("on")&&typeof t=="function"){let a=n.substring(2).toLowerCase();const f=a.indexOf("capture"),h=f>-1;a==="mount"&&(s.$onMount=t),a==="unmount"&&(s.$onUnmount=t),h&&(a=a.substring(0,f)),s.addEventListener(a,t,h);return}n==="className"&&(n=U),n===U&&Array.isArray(t)&&(t=t.join(" "));const l=n.match(/[A-Z]/)?.index;if(e.hasElNamespace(s)&&l){const a=n.substring(0,l).toLowerCase(),f=n.substring(l,n.length).toLowerCase(),h=F[a]||null;s.setAttributeNS(h,a===j||a==="xmlns"?`${a}:${f}`:n,t)}else if(n==="style"&&typeof t!="string"){const a=Object.keys(t);for(let f=0;f<a.length;f++)s.style[a[f]]=t[a[f]]}else typeof t=="boolean"?s[n]=t:s.setAttribute(n,t)},"setAttribute"),setAttributes:o((n,t)=>{const s=Object.keys(n.attributes);for(let i=0;i<s.length;i++)e.setAttribute(s[i],n.attributes[s[i]],t,n)},"setAttributes")};return e},"getRenderer"),C=o((r,e,n)=>{L(e)&&(e=e.getFirstElement()||e);let t;return typeof r=="string"?t=g(n.window.document).createTextNode(r,e):t=g(n.window.document).createElementOrElements(r,e),t},"renderIsomorphicSync"),re=o(async(r,e,n)=>(e instanceof Promise&&(e=await e),L(e)&&(e=(await e.toArray())[0]),r instanceof Promise&&(r=await r),C(r,e,n)),"renderIsomorphicAsync"),ie=o((r,e)=>{globalThis.__defuss_document=e,globalThis.__defuss_window=r},"globalScopeDomApis"),w=o(r=>r===null||typeof r!="object"?!1:Array.isArray(r)?r.every(w):typeof r.type=="string"||typeof r.type=="function"||typeof r.attributes=="object"&&typeof r.children=="object","isJSX"),oe=o(r=>r.children,"Fragment"),le=I,ae=o((r,e,n,t,s,i)=>{let l;try{l=I(r,e,n)}catch(a){console.error("JSX error:",a,"in",s,"component",i)}return l},"jsxDEV"),G=o((r,e)=>{if(r===e)return!0;if(r.nodeType!==e.nodeType)return!1;if(r.nodeType===Node.ELEMENT_NODE){const n=r,t=e;if(n.tagName!==t.tagName)return!1;const s=n.attributes,i=t.attributes;if(s.length!==i.length)return!1;for(let l=0;l<s.length;l++){const a=s[l],f=t.getAttribute(a.name);if(a.value!==f)return!1}}return!(r.nodeType===Node.TEXT_NODE&&r.textContent!==e.textContent)},"areDomNodesEqual"),O=o((r,e)=>{if(!G(r,e)){r.parentNode?.replaceChild(e.cloneNode(!0),r);return}if(r.nodeType===Node.ELEMENT_NODE){const n=r.childNodes,t=e.childNodes,s=Math.max(n.length,t.length);for(let i=0;i<s;i++){const l=n[i],a=t[i];l&&a?O(l,a):a&&!l?r.appendChild(a.cloneNode(!0)):l&&!a&&r.removeChild(l)}}},"updateNode"),P=o((r,e)=>{const t=new DOMParser().parseFromString(e,"text/html"),s=Array.from(t.body.children);if(s.length===0){console.warn("No root elements found in the new HTML.");return}for(let i=0;i<s.length;i++){const l=s[i],a=r.children[i];a?O(a,l):r.appendChild(l.cloneNode(!0))}for(;r.children.length>s.length;)r.removeChild(r.lastChild)},"updateDom");function D(r){if(r==null||typeof r=="string"||typeof r=="number"||typeof r=="boolean"||typeof r=="object"&&"type"in r)return r}o(D,"toValidChild");function ce(r,e){if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return r.nodeType===Node.TEXT_NODE;if(e&&typeof e=="object"){if(r.nodeType!==Node.ELEMENT_NODE)return!1;const n=r.tagName.toLowerCase(),t=e.type.toLowerCase();return n===t}return!1}o(ce,"areNodeAndChildMatching");function ue(r,e,n){const t=g(n.window.document);if(typeof e=="string"||typeof e=="number"||typeof e=="boolean"){const s=String(e);r.nodeValue!==s&&(r.nodeValue=s);return}if(r.nodeType===Node.ELEMENT_NODE&&e&&typeof e=="object"){const s=r,i=Array.from(s.attributes);for(const l of i){const{name:a}=l;!Object.prototype.hasOwnProperty.call(e.attributes,a)&&a!=="style"&&s.removeAttribute(a)}if(t.setAttributes(e,s),e.attributes?.dangerouslySetInnerHTML){s.innerHTML=e.attributes.dangerouslySetInnerHTML.__html;return}if(e.children)A(s,e.children,n);else for(;s.firstChild;)s.removeChild(s.firstChild)}}o(ue,"patchDomInPlace");function he(r,e){const n=g(e.window.document);if(r==null)return;if(typeof r=="string"||typeof r=="number"||typeof r=="boolean")return e.window.document.createTextNode(String(r));let t=n.createElementOrElements(r);return t&&!Array.isArray(t)&&(t=[t]),t}o(he,"createDomFromChild");function A(r,e,n){let t=[];if(Array.isArray(e))t=e.map(D).filter(a=>a!==void 0);else if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")t=[e];else if(e){const a=D(e);a!==void 0&&(t=[a])}const s=t.map(a=>he(a,n)),i=Array.from(r.childNodes),l=Math.max(i.length,s.length);for(let a=0;a<l;a++){const f=i[a],h=s[a],T=t[a];if(f&&h!==void 0)if(Array.isArray(h))if(h.length===0)r.removeChild(f);else{const d=h[0];r.replaceChild(d,f),typeof d<"u"&&m(d);for(let p=1;p<h.length;p++)h[p]&&(r.insertBefore(h[p],d.nextSibling),typeof h[p]<"u"&&(console.log("inserBefore!"),m(h[p])))}else h&&(T&&ce(f,T)?ue(f,T,n):(r.replaceChild(h,f),m(h)));else!f&&h!==void 0?Array.isArray(h)?h.forEach(d=>{const p=d&&r.appendChild(d);return p&&m(d),p}):h&&(r.appendChild(h),m(h)):f&&h===void 0&&r.removeChild(f)}}o(A,"updateDomWithVdom");function fe(r,e,n){for(;r.firstChild;)r.removeChild(r.firstChild);const s=g(n.window.document).createElementOrElements(e);if(Array.isArray(s))for(const i of s)i&&r.appendChild(i);else s&&r.appendChild(s)}o(fe,"replaceDomWithVdom");export{Q as $,M as A,N as B,b as C,y as D,_ as E,oe as F,q as G,B as H,re as a,g as b,H as c,le as d,ae as e,E as f,ie as g,m as h,w as i,I as j,Y as k,$ as l,S as m,R as n,J as o,W as p,G as q,C as r,k as s,A as t,P as u,fe as v,x as w,v as x,ee as y,L as z};
2
+ //# sourceMappingURL=dom-Cm_LuWlw.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom-Cm_LuWlw.mjs","sources":["../src/common/path.ts","../src/store/store.ts","../src/render/ref.ts","../src/dequery/dequery.ts","../src/render/isomorph.ts","../src/common/dom.ts"],"sourcesContent":["const ARRAY_INDEX = /(.*)\\[(\\d+)\\]/;\nconst IS_NUMBER = /^\\d+$/;\n\nexport const getAllKeysFromPath = (path: string): Array<string | number> =>\n path.split('.').flatMap(key => {\n const match = key.match(ARRAY_INDEX);\n return match ? [...getAllKeysFromPath(match[1]), Number(match[2])] : key;\n });\n\nexport const ensureKey = (\n obj: Record<string, any>,\n key: string | number,\n nextKey?: string | number\n): void => {\n if (!(key in obj)) {\n obj[key] = IS_NUMBER.test(String(nextKey)) ? [] : {};\n }\n};\n\nexport const getByPath = (obj: any, path: string): any => {\n const keys = getAllKeysFromPath(path);\n return keys.reduce((result, key) => (result == null ? undefined : result[key]), obj);\n};\n\nexport const setByPath = (obj: any, path: string, value: any): any => {\n const keys = getAllKeysFromPath(path);\n const key = keys[0];\n const newObj = Array.isArray(obj) ? [...obj] : { ...obj };\n\n if (keys.length === 1) {\n if (value === undefined) {\n Array.isArray(newObj) ? newObj.splice(Number(key), 1) : delete newObj[key];\n } else {\n newObj[key] = value;\n }\n return newObj;\n }\n\n ensureKey(newObj, key, keys[1]);\n newObj[key] = setByPath(newObj[key], keys.slice(1).join('.'), value);\n return newObj;\n};\n","import { getByPath, setByPath } from '../common/index.js';\n\nexport type Listener<T> = (newValue: T, oldValue?: T, changedKey?: string) => void;\n\nexport interface Store<T> {\n value: T;\n get: <D = T>(path?: string) => D;\n set: <D = T>(pathOrValue: string | D, value?: D) => void;\n subscribe: (listener: Listener<T>) => () => void;\n}\n\nexport const createStore = <T>(initialValue: T): Store<T> => {\n let value: T = initialValue; // internal state\n const listeners: Array<Listener<T>> = [];\n\n const notify = (oldValue: T, changedKey?: string) => {\n listeners.forEach(listener => listener(value, oldValue, changedKey));\n };\n\n return {\n // allow reading value but prevent external mutation\n get value() {\n return value;\n },\n\n get(path?: string) {\n return path ? getByPath(value, path) : value;\n },\n\n set(pathOrValue: string | any, newValue?: any) {\n const oldValue = value;\n\n if (newValue === undefined) {\n // replace entire store value\n if (oldValue !== pathOrValue) {\n value = pathOrValue;\n notify(oldValue);\n }\n } else {\n // update a specific path\n const updatedValue = setByPath(value, pathOrValue, newValue);\n if (oldValue !== updatedValue) {\n value = updatedValue;\n notify(oldValue, pathOrValue);\n }\n }\n },\n\n subscribe(listener) {\n listeners.push(listener);\n return () => {\n const index = listeners.indexOf(listener);\n if (index >= 0) listeners.splice(index, 1);\n };\n },\n };\n};\n","import type { Ref, RefUpdateFn } from '../render/types.js';\nimport { createStore } from '../store/store.js';\n\nexport const isRef = (obj: any): obj is Ref<Element> =>\n obj && typeof obj === \"object\" && \"current\" in obj;\n\nexport function createRef<ST = any, NT extends Node | Element | Text | null = HTMLElement>(refUpdateFn?: RefUpdateFn<ST>, defaultState?: ST): Ref<NT, ST> {\n\n const stateStore = createStore<ST>(defaultState as ST);\n\n const ref: Ref<NT, ST> = {\n current: null as NT,\n store: stateStore,\n get state() {\n return stateStore.value;\n },\n set state(value: ST) {\n stateStore.set(value);\n },\n update: (state: ST) => {\n stateStore.set(state);\n },\n subscribe: (refUpdateFn: RefUpdateFn<ST>) => stateStore.subscribe(refUpdateFn),\n }\n\n if (typeof refUpdateFn === 'function') {\n ref.subscribe(refUpdateFn);\n }\n return ref;\n}","import { updateDom, updateDomWithVdom } from \"../common/dom.js\";\nimport { isJSX, isRef, renderIsomorphicSync, type AllHTMLElements, type CSSProperties, type Globals, type Ref, type RenderInput } from \"../render/index.js\";\n\n// --- Types & Helpers ---\nexport type NodeType = Node | Text | Element | Document | DocumentFragment | HTMLElement | SVGElement;\nexport type FormFieldValue = string | Date | File | boolean | number;\nexport interface FormKeyValues { [keyOrPath: string]: FormFieldValue; }\n\nconst elementGuard = <T = HTMLElement>(el: NodeType): T => {\n if (el instanceof HTMLElement) return el as T;\n console.warn(\"Expected HTMLElement, but found:\", el?.nodeName ?? el);\n return el as T;\n};\n\nexport interface DequeryOptions {\n maxWaitMs?: number;\n timeout?: number;\n delay?: number;\n initialEl?: NodeType;\n state?: any;\n verbose?: boolean;\n onTimeGuardError?: (ms: number, call: Call) => void;\n}\n\nexport const adefaultConfig: DequeryOptions = {\n maxWaitMs: 1000,\n timeout: 5000,\n delay: 0,\n verbose: false,\n onTimeGuardError: () => { }\n};\n\nexport type ElementCreationOptions = JSX.HTMLAttributesLowerCase & JSX.HTMLAttributesLowerCase & { html?: string, text?: string };\n\n// --- Core Async Call & Chain ---\nclass Call {\n name: string;\n fn: Function;\n args: any[];\n constructor(fn: Function, ...args: any[]) {\n this.name = fn.name;\n this.fn = fn;\n this.args = args;\n }\n}\n\ninterface DequeryArrayLike {\n [index: number]: NodeType;\n}\n\nclass CallChainImpl implements DequeryArrayLike {\n [index: number]: NodeType;\n\n options: DequeryOptions;\n callStack: Array<Call>;\n chainStack: Array<Array<Call>>;\n elements: Array<NodeType>;\n prevElements: Array<NodeType>;\n stoppedWithError: boolean;\n lastResult: any;\n isResolved: boolean;\n\n constructor(options: DequeryOptions = {}, isResolved = false) {\n this.options = { ...adefaultConfig, ...options };\n this.callStack = [];\n this.chainStack = [];\n this.elements = options.initialEl ? [options.initialEl] : [];\n this.prevElements = [];\n this.stoppedWithError = false;\n this.lastResult = null;\n this.isResolved = isResolved;\n\n // Create a proxy to allow array-like access and proper \"this\" binding\n const proxy = new Proxy(this, {\n get(target, prop) {\n if (typeof prop === 'string' && !Number.isNaN(Number(prop))) {\n return target.elements[Number(prop)] as NodeType;\n }\n const value = (target as any)[prop];\n if (typeof value === 'function') {\n // biome-ignore lint/complexity/useArrowFunction: <explanation>\n return function (...args: any[]) {\n // Bind method calls to the proxy so that \"this\" remains the proxy\n return value.apply(proxy, args)\n };\n }\n return value;\n }\n });\n // biome-ignore lint/correctness/noConstructorReturn: <explanation>\n return proxy;\n }\n\n // --- Internal ---\n resetElements() {\n this.prevElements = [...this.elements];\n this.elements = this.options.initialEl ? [this.options.initialEl] : [];\n }\n getFirstElement() {\n return this.elements[0];\n }\n\n createSubChain(clone = true) {\n if (clone) {\n const newChain = new DequeryChain({ ...this.options, initialEl: this.getFirstElement() }, true);\n newChain.elements = this.elements\n newChain.prevElements = this.prevElements\n newChain.callStack = this.callStack\n newChain.chainStack = this.chainStack\n newChain.stoppedWithError = this.stoppedWithError;\n newChain.lastResult = this.lastResult;\n return newChain;\n } else {\n return new DequeryChain({ ...this.options, initialEl: this.getFirstElement() }, true);\n }\n }\n\n // --- Initialization ---\n __init(selectorHtmlRefOrElementRef: string | NodeType | Ref<NodeType, any> | RenderInput,\n options: DequeryOptions | ElementCreationOptions\n ) {\n if (!selectorHtmlRefOrElementRef) throw new Error('dequery: selector/ref/element required');\n if (typeof selectorHtmlRefOrElementRef === 'string') {\n if (selectorHtmlRefOrElementRef.indexOf('<') === 0) {\n this.elements = renderHTML(selectorHtmlRefOrElementRef)\n\n const { text, html, ...attributes } = options as ElementCreationOptions;\n\n if (typeof this.elements[0] !== \"undefined\" && this.elements[0] instanceof Element) {\n // set attributes\n Object.entries(attributes).forEach(([key, value]) => {\n (this.elements[0] as Element).setAttribute(key, String(value));\n });\n\n // set innerHTML or textContent if provided\n if (html) {\n this.elements[0].innerHTML = html;\n } else if (text) {\n this.elements[0].textContent = text;\n }\n }\n return this.createSubChain();\n } else {\n return this.query(selectorHtmlRefOrElementRef);\n }\n } else if (isRef(selectorHtmlRefOrElementRef)) {\n return this.ref(selectorHtmlRefOrElementRef);\n } else if ((selectorHtmlRefOrElementRef as Node).nodeType) {\n this.elements = [selectorHtmlRefOrElementRef as NodeType];\n return this.createSubChain();\n } else if (isJSX(selectorHtmlRefOrElementRef)) {\n const renderResult = renderIsomorphicSync(selectorHtmlRefOrElementRef as RenderInput, undefined, globalThis as Globals);\n this.elements = (typeof renderResult !== \"undefined\" ? Array.isArray(renderResult) ? renderResult : [renderResult] : []) as NodeType[];\n return this.createSubChain();\n }\n throw new Error('Unsupported selectorOrEl type');\n }\n\n // --- Traversal ---\n debug(cb: (el: NodeType | Array<NodeType>) => void) {\n this.callStack.push(new Call(function debug(this: CallChainImpl) {\n cb(this.elements);\n return this.createSubChain(true);\n }));\n return this;\n }\n\n ref(ref: Ref<NodeType>) {\n this.callStack.push(new Call(async function ref(this: CallChainImpl, refObj: Ref<NodeType>) {\n await waitForRefWithPolling(refObj, this.options.maxWaitMs!);\n if (refObj.current) {\n this.elements = [elementGuard(refObj.current)];\n } else {\n throw new Error('Ref is null or undefined');\n }\n return this.createSubChain();\n }, ref));\n return this;\n }\n\n query(selector: string) {\n // @ts-ignore\n this.callStack.push(new Call(async function query(this: CallChainImpl, sel: string) {\n await waitForSelectorWithPolling(sel, this.options.maxWaitMs!);\n this.elements = Array.from(document.querySelectorAll(sel));\n return this.createSubChain();\n }, selector));\n return this;\n }\n\n all() {\n this.callStack.push(new Call(function all(this: CallChainImpl) {\n return this.elements.map(el => new DequeryChain({ ...this.options, initialEl: el }, true));\n }));\n return this;\n }\n\n get length(): number {\n return this.elements.length;\n }\n\n first() {\n this.callStack.push(new Call(function first(this: CallChainImpl) {\n this.elements = [this.elements[0]];\n return this.createSubChain();\n }));\n return this;\n }\n\n last() {\n this.callStack.push(new Call(function last(this: CallChainImpl) {\n const els = this.elements;\n this.elements = [els[els.length - 1]];\n return this.createSubChain();\n }));\n return this;\n }\n\n next() {\n this.callStack.push(new Call(function next(this: CallChainImpl) {\n this.elements = this.elements.map(el => elementGuard(el).nextElementSibling!).filter(Boolean);\n return this.createSubChain();\n }));\n return this;\n }\n\n prev() {\n this.callStack.push(new Call(function prev(this: CallChainImpl) {\n this.elements = this.elements.map(el => elementGuard(el).previousElementSibling!).filter(Boolean);\n return this.createSubChain();\n }));\n return this;\n }\n\n find(selector: string) {\n this.callStack.push(new Call(function find(this: CallChainImpl, sel: string) {\n this.elements = this.elements.flatMap(el => Array.from(elementGuard(el).querySelectorAll(sel)));\n return this.createSubChain();\n }, selector));\n return this;\n }\n\n parent() {\n this.callStack.push(new Call(function parent(this: CallChainImpl) {\n this.elements = this.elements.map(el => (el as Element).parentElement!).filter(Boolean);\n return this.createSubChain();\n }));\n return this;\n }\n\n children() {\n this.callStack.push(new Call(function children(this: CallChainImpl) {\n this.elements = this.elements.flatMap(el => Array.from(elementGuard(el).children));\n return this.createSubChain(true);\n }));\n return this;\n }\n\n closest(selector: string) {\n this.callStack.push(new Call(function closest(this: CallChainImpl, sel: string) {\n this.elements = this.elements.map(el => elementGuard(el).closest(sel)!).filter(Boolean);\n return this.createSubChain();\n }, selector));\n return this;\n }\n\n filter(selector: string) {\n this.callStack.push(new Call(function filter(this: CallChainImpl, sel: string) {\n this.elements = this.elements.filter(el => elementGuard(el).matches(sel));\n // ensure the chain is created with the correct number of elements\n return this.createSubChain(this.elements.length > 0);\n }, selector));\n return this;\n }\n\n // --- Attributes & Properties ---\n attr(name: string, value?: string) {\n if (value !== undefined) {\n this.callStack.push(new Call(function setAttr(this: CallChainImpl, n: string, v: string) {\n this.elements.forEach(el => elementGuard(el).setAttribute(n, v));\n return null;\n }, name, value));\n return this;\n }\n this.callStack.push(new Call(function getAttr(this: CallChainImpl, n: string) {\n return elementGuard(this.getFirstElement()).getAttribute(n);\n }, name));\n return this;\n }\n\n prop(name: keyof AllHTMLElements, value?: any) {\n if (value !== undefined) {\n this.callStack.push(new Call(function setProp(this: CallChainImpl, n: string, v: any) {\n // biome-ignore lint/suspicious/noAssignInExpressions: <explanation>\n this.elements.forEach(el => (elementGuard(el) as any)[n] = v);\n return null;\n }, name, value));\n return this;\n }\n this.callStack.push(new Call(function getProp(this: CallChainImpl, n: string) {\n return (elementGuard(this.getFirstElement()) as any)[n];\n }, name));\n return this;\n }\n\n // --- CSS & Classes ---\n css(prop: string | CSSProperties, value?: string) {\n if (typeof prop === 'string' && value === undefined) {\n this.callStack.push(new Call(function getCss(this: CallChainImpl, p: string) {\n return elementGuard(this.getFirstElement()).style.getPropertyValue(p);\n }, prop));\n } else {\n this.callStack.push(new Call(function setCss(this: CallChainImpl, p: any, v?: string) {\n this.elements.forEach(el => {\n if (typeof p === 'string') elementGuard(el).style.setProperty(p, v!);\n else for (const k in p) elementGuard(el).style.setProperty(k, (p as any)[k]);\n });\n return null;\n }, prop, value));\n }\n return this;\n }\n\n addClass(name: string | Array<string>) {\n this.callStack.push(new Call(function addClass(this: CallChainImpl, cl: any) {\n const list = Array.isArray(cl) ? cl : [cl];\n this.elements.forEach(el => elementGuard(el).classList.add(...list));\n return null;\n }, name));\n return this;\n }\n\n removeClass(name: string | Array<string>) {\n this.callStack.push(new Call(function removeClass(this: CallChainImpl, cl: any) {\n const list = Array.isArray(cl) ? cl : [cl];\n this.elements.forEach(el => elementGuard(el).classList.remove(...list));\n return null;\n }, name));\n return this;\n }\n\n hasClass(name: string) {\n this.callStack.push(new Call(function hasClass(this: CallChainImpl, cl: string) {\n return this.elements.every(el => elementGuard(el).classList.contains(cl));\n }, name));\n return this;\n }\n\n toggleClass(name: string) {\n this.callStack.push(new Call(function toggleClass(this: CallChainImpl, cl: string) {\n this.elements.forEach(el => elementGuard(el).classList.toggle(cl));\n return null;\n }, name));\n return this;\n }\n\n animateClass(name: string, duration: number) {\n this.callStack.push(new Call(function animateClass(this: CallChainImpl, cl: string, d: number) {\n this.elements.forEach(el => {\n const e = elementGuard(el);\n e.classList.add(cl);\n setTimeout(() => e.classList.remove(cl), d);\n });\n return null;\n }, name, duration));\n return this;\n }\n\n // --- Content Mutations ---\n empty() {\n this.callStack.push(new Call(function empty(this: CallChainImpl) {\n // biome-ignore lint/suspicious/noAssignInExpressions: <explanation>\n this.elements.forEach(el => elementGuard(el).innerHTML = '');\n return null;\n }));\n return this;\n }\n\n html(html: string) {\n this.callStack.push(new Call(function html(this: CallChainImpl, str: string) {\n this.elements.forEach(el => updateDom(elementGuard(el), str));\n return null;\n }, html));\n return this;\n }\n\n jsx(vdom: RenderInput) {\n if (!isJSX(vdom)) {\n console.warn('jsx: expected JSX, got', vdom);\n return this;\n }\n this.callStack.push(new Call(function jsx(this: CallChainImpl, v: RenderInput) {\n this.elements.forEach(el => updateDomWithVdom(elementGuard(el), v, globalThis as Globals));\n return null;\n }, vdom));\n return this;\n }\n\n text(text: string) {\n this.callStack.push(new Call(function text(this: CallChainImpl, t: string) {\n // biome-ignore lint/suspicious/noAssignInExpressions: <explanation>\n this.elements.forEach(el => elementGuard(el).textContent = t);\n return null;\n }, text));\n return this;\n }\n\n update(input: string | RenderInput) {\n this.callStack.push(new Call(function update(this: CallChainImpl, input: any) {\n if (typeof input === 'string') {\n const hasHtml = /<\\/?>[a-z][\\s\\S]*>/i.test(input);\n if (hasHtml) this.elements.forEach(el => updateDom(elementGuard(el), input));\n // biome-ignore lint/suspicious/noAssignInExpressions: <explanation>\n else this.elements.forEach(el => elementGuard(el).textContent = input);\n } else {\n this.elements.forEach(el => updateDomWithVdom(elementGuard(el), input, globalThis as Globals));\n }\n return null;\n }, input));\n return this;\n }\n\n remove() {\n this.callStack.push(new Call(function remove(this: CallChainImpl) {\n this.elements.forEach(el => elementGuard(el).remove());\n return null;\n }));\n return this;\n }\n\n replaceWith(content: string | RenderInput | NodeType | Ref<NodeType> | typeof DequeryChain) {\n this.callStack.push(new Call(async function replaceWith(this: CallChainImpl, content: string | RenderInput | NodeType | Ref<NodeType> | typeof DequeryChain) {\n let newElement: NodeType;\n\n if (typeof content === 'string') {\n const hasHtmlTags = /<\\/?[a-z][\\s\\S]*>/i.test(content);\n if (hasHtmlTags) {\n newElement = renderHTML(content)[0];\n } else {\n newElement = document.createTextNode(content);\n }\n } else if (isJSX(content)) {\n newElement = renderIsomorphicSync(content as RenderInput, undefined, globalThis as Globals) as NodeType;\n } else if (isRef(content)) {\n await waitForRefWithPolling(content as Ref, this.options.maxWaitMs!);\n newElement = elementGuard(content.current!);\n } else if (content instanceof Node) {\n newElement = content;\n } else if (content instanceof DequeryChain) {\n newElement = content.getFirstElement();\n } else {\n console.warn('replaceWith: unsupported content type', content);\n return null;\n }\n\n this.elements.forEach(el => {\n el.parentNode?.replaceChild(newElement.cloneNode(true), el);\n });\n return null;\n }, content));\n return this;\n }\n\n append(content: string | NodeType | typeof DequeryChain) {\n this.callStack.push(new Call(function append(this: CallChainImpl, c: string | NodeType | typeof DequeryChain) {\n this.elements.forEach(el => {\n if (typeof c === 'string') {\n elementGuard(el).innerHTML += c;\n } else if (c instanceof DequeryChain) {\n c.elements.forEach(childEl => {\n el.appendChild(childEl.cloneNode(true));\n });\n } else {\n el.appendChild((c as Element).cloneNode(true));\n }\n });\n return null;\n }, content));\n return this;\n }\n\n appendTo(target: NodeType | Ref<NodeType> | string | typeof DequeryChain) {\n this.callStack.push(new Call(async function appendTo(this: CallChainImpl, target: NodeType | Ref<NodeType> | string) {\n let targetElement: NodeType;\n\n if (isRef(target)) {\n await waitForRefWithPolling(target as Ref, this.options.maxWaitMs!);\n targetElement = elementGuard(target.current!);\n } else if (typeof target === 'string') {\n await waitForSelectorWithPolling(target, this.options.maxWaitMs!);\n targetElement = elementGuard(document.querySelector(target) as NodeType);\n } else if (target instanceof Node) {\n targetElement = elementGuard(target);\n } else if (target instanceof DequeryChain) {\n targetElement = elementGuard(target.getFirstElement());\n } else {\n console.warn('appendTo: expected selector, ref or node, got', target);\n return null;\n }\n\n this.elements.forEach(el => {\n targetElement.appendChild(el.cloneNode(true));\n });\n return null;\n }, target));\n return this;\n }\n\n // --- Events & Interaction ---\n on(event: string, handler: EventListener) {\n this.callStack.push(new Call(function on(this: CallChainImpl, ev: string, h: EventListener) {\n this.elements.forEach(el => elementGuard(el).addEventListener(ev, h));\n return null;\n }, event, handler));\n return this;\n }\n\n off(event: string, handler: EventListener) {\n this.callStack.push(new Call(function off(this: CallChainImpl, ev: string, h: EventListener) {\n this.elements.forEach(el => elementGuard(el).removeEventListener(ev, h));\n return null;\n }, event, handler));\n return this;\n }\n\n trigger(eventType: string) {\n this.callStack.push(new Call(function trigger(this: CallChainImpl, ev: string) {\n this.elements.forEach(el => elementGuard(el).dispatchEvent(new Event(ev, { bubbles: true, cancelable: true })));\n return null;\n }, eventType));\n return this;\n }\n\n // --- Data Extraction ---\n val(val?: string | boolean) {\n if (val !== undefined) {\n this.callStack.push(new Call(function setVal(this: CallChainImpl, v: any) {\n this.elements.forEach(el => {\n if (el instanceof HTMLInputElement) el.value = String(v);\n });\n return null;\n }, val));\n } else {\n this.callStack.push(new Call(function getVal(this: CallChainImpl) {\n const el = elementGuard<HTMLInputElement>(this.getFirstElement());\n return el.value;\n }));\n }\n return this;\n }\n\n map(cb: (el: NodeType, idx: number) => any) {\n this.callStack.push(new Call(function map(this: CallChainImpl, fn: any) {\n return this.elements.map(fn);\n }, cb));\n return this;\n }\n\n toArray() {\n this.callStack.push(new Call(function toArray(this: CallChainImpl) {\n return [...this.elements];\n }));\n return this;\n }\n\n data(name: string, val?: string) {\n if (val !== undefined) {\n this.callStack.push(new Call(function setData(this: CallChainImpl, n: string, v: string) {\n // biome-ignore lint/suspicious/noAssignInExpressions: <explanation>\n this.elements.forEach(el => elementGuard(el).dataset[n] = v);\n return null;\n }, name, val));\n } else {\n this.callStack.push(new Call(function getData(this: CallChainImpl, n: string) {\n return elementGuard(this.getFirstElement()).dataset[n];\n }, name));\n }\n return this;\n }\n\n form(formData?: Record<string, string | boolean>) {\n if (formData) {\n this.callStack.push(new Call(function setForm(this: CallChainImpl, formData: Record<string, string | boolean>) {\n this.elements.forEach(el => {\n if (el instanceof Element) {\n const inputElements = el.querySelectorAll('input, select, textarea') as NodeListOf<HTMLInputElement>;\n inputElements.forEach((input) => {\n if (['INPUT', 'SELECT', 'TEXTAREA'].includes(input.tagName)) {\n const key = input.name || input.id;\n if (formData[key] !== undefined) {\n if (input.type === 'checkbox') {\n input.checked = Boolean(formData[key]);\n } else {\n input.value = String(formData[key]);\n }\n }\n }\n });\n }\n });\n return null;\n }, formData));\n } else {\n this.callStack.push(new Call(function getForm(this: CallChainImpl) {\n const formFields: Record<string, string | boolean> = {};\n this.elements.forEach(el => {\n if (el instanceof Element) {\n const inputElements = el.querySelectorAll('input, select, textarea') as NodeListOf<HTMLInputElement>;\n inputElements.forEach((input) => {\n if (['INPUT', 'SELECT', 'TEXTAREA'].includes(input.tagName)) {\n const key = input.name || input.id;\n if (input.type === 'checkbox') {\n formFields[key] = input.checked;\n } else {\n formFields[key] = input.value;\n }\n }\n });\n }\n });\n return formFields;\n }));\n }\n return this;\n }\n\n // --- Terminal then() ---\n\n // biome-ignore lint/suspicious/noThenProperty: We're implementing a custom promise chain here\n then(resolve: (value: any) => void, reject: (reason?: any) => void) {\n if (this.stoppedWithError) return;\n runWithTimeGuard(this.options.timeout!, async () => {\n const results: any[] = [];\n for (const call of this.callStack) {\n if (this.stoppedWithError) break;\n try {\n results.push(await call.fn.apply(this, call.args));\n await sleep(this.options.delay!);\n } catch (err) {\n this.stoppedWithError = true;\n break;\n }\n }\n this.chainStack.push([...results]);\n this.lastResult = results[results.length - 1];\n this.callStack = [];\n this.resetElements();\n this.isResolved = true;\n return this.lastResult;\n }, [], (ms, call) => {\n this.stoppedWithError = true;\n this.options.onTimeGuardError!(ms, call);\n }).then(resolve).catch(reject);\n }\n}\n\n// --- Proxy Wrapper ---\nexport const DequeryChain = new Proxy(CallChainImpl, {\n construct(target, args) {\n const inst = new target(...args);\n return new Proxy(inst, {\n get(obj, prop) {\n if (prop === 'then' && inst.isResolved) {\n return Promise.resolve(inst.lastResult);\n }\n inst.isResolved = false;\n return (obj as any)[prop];\n }\n });\n }\n});\n\n// --- Entry Points ---\nexport function dequery(selectorRefOrEl: string | NodeType | Ref<NodeType, any> | RenderInput, options: DequeryOptions | ElementCreationOptions = adefaultConfig) {\n let promise = new DequeryChain({ ...options, initialEl: undefined }).__init(selectorRefOrEl, options);\n\n ; (async () => { // auto-start\n promise = await promise;\n })();\n return promise;\n}\nexport const $ = dequery;\nexport const D = dequery;\n\nexport type Dequery = CallChainImpl;\n\nexport function isDequery(obj: unknown): obj is Dequery {\n return typeof obj === 'object' && obj !== null && 'isResolved' in obj && 'lastResult' in obj;\n}\n\n// --- Helpers ---\nexport async function waitForWithPolling<T>(\n check: () => T | null | undefined,\n timeout: number,\n interval = 1\n): Promise<T> {\n const start = Date.now();\n return new Promise<T>((resolve, reject) => {\n const timer = setInterval(() => {\n try {\n const result = check();\n if (result != null) {\n clearInterval(timer);\n resolve(result);\n } else if (Date.now() - start >= timeout) {\n clearInterval(timer);\n reject(new Error(`Timeout after ${timeout}ms`));\n }\n }\n catch (err) {\n clearInterval(timer);\n reject(err);\n throw err;\n }\n }, interval);\n });\n}\n\nexport async function waitForSelectorWithPolling(\n sel: string,\n timeout: number,\n interval?: number\n): Promise<Element> {\n return waitForWithPolling(() => document.querySelector(sel), timeout, interval);\n}\n\nexport async function waitForRefWithPolling<T>(\n ref: { current: T | null },\n timeout: number,\n interval?: number\n): Promise<T> {\n return waitForWithPolling(() => ref.current, timeout, interval);\n}\n\nexport function renderHTML(html: string, type: DOMParserSupportedType = 'text/html') {\n const newDom = (new DOMParser()).parseFromString(html, type);\n return Array.from(newDom.body.childNodes);\n}\n\nexport function sleep(ms: number) { return new Promise(r => setTimeout(r, ms)); }\nexport function runWithTimeGuard(timeout: number, fn: Function, args: any[], onError: (ms: number, call: Call) => void): Promise<any> {\n return fn(...args);\n // TODO: implement the actual time guard!\n}\n","import type { Dequery } from '@/dequery/index.js'\nimport { isDequery } from '../dequery/index.js'\nimport type { VNodeChild, VNodeChildren, VNode, VNodeType, VNodeAttributes, DomAbstractionImpl, Globals } from '@/render/types.js'\n\nconst CLASS_ATTRIBUTE_NAME = 'class'\nconst XLINK_ATTRIBUTE_NAME = 'xlink'\nconst XMLNS_ATTRIBUTE_NAME = 'xmlns'\nconst REF_ATTRIBUTE_NAME = 'ref'\n\nconst 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}\n\ndeclare global {\n var __defuss_document: Document;\n var __defuss_window: Window;\n}\n\n// If a JSX comment is written, it looks like: { /* this */ }\n// Therefore, it turns into: {}, which is detected here\nconst isJSXComment = (node: VNode): boolean =>\n /* v8 ignore next */\n node && typeof node === 'object' && !node.attributes && !node.type && !node.children\n\n// Filters comments and undefines like: ['a', 'b', false, {}] to: ['a', 'b', false]\nconst filterComments = (children: Array<VNode> | Array<VNodeChild>) =>\n children.filter((child: VNodeChild) => !isJSXComment(child as VNode))\n\nexport const createInPlaceErrorMessageVNode = (error: unknown) => ({\n type: 'p',\n attributes: {},\n children: [`FATAL ERROR: ${(error as Error)?.message || error}`]\n})\n\nexport const jsx = (\n type: VNodeType | Function | any,\n attributes: (JSX.HTMLAttributes & JSX.SVGAttributes & Record<string, any>) | null,\n key?: string\n): Array<VNode> | VNode => {\n\n // clone attributes as well\n attributes = { ...attributes }\n\n if (typeof key !== \"undefined\") {\n /* key passed for instance-based lifecycle event listener registration */\n attributes.key = key;\n }\n\n // extract children from attributes and ensure it's always an array\n let children: Array<VNodeChild> = (attributes?.children ? [].concat(attributes.children) : []).filter(Boolean);\n delete attributes?.children;\n\n children = filterComments(\n // Implementation to flatten virtual node children structures like:\n // [<p>1</p>, [<p>2</p>,<p>3</p>]] to: [<p>1</p>,<p>2</p>,<p>3</p>]\n ([] as Array<VNodeChildren>).concat.apply([], children as any) as Array<VNodeChildren>,\n )\n\n // effectively unwrap by directly returning the children\n if (type === 'fragment') {\n return filterComments(children) as Array<VNode>;\n }\n\n // it's a component, divide and conquer children\n // in case of async functions, we just pass them through\n if (typeof type === 'function' && type.constructor.name !== 'AsyncFunction') {\n\n try {\n return type({\n children,\n ...attributes,\n })\n } catch (error) {\n\n if (typeof error === \"string\") {\n error = `[JsxError] in ${type.name}: ${error}`;\n } else if (error instanceof Error) {\n error.message = `[JsxError] in ${type.name}: ${error.message}`;\n }\n\n // render the error in place\n return createInPlaceErrorMessageVNode(error)\n }\n }\n\n return {\n type,\n attributes,\n children,\n };\n}\n\nexport const observeUnmount = (domNode: Node, onUnmount: () => void): void => {\n if (!domNode || typeof onUnmount !== 'function') {\n throw new Error('Invalid arguments. Ensure domNode and onUnmount are valid.');\n }\n\n const parentNode = domNode.parentNode;\n if (!parentNode) {\n throw new Error('The provided domNode does not have a parentNode.');\n }\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 onUnmount();\n observer.disconnect(); // Stop observing after unmount\n return;\n }\n }\n }\n }\n });\n\n // Observe the parentNode for child removals\n observer.observe(parentNode, { childList: true });\n}\n\n/** lifecycle event attachment has been implemented separately, because it is also required to run when partially updating the DOM */\nexport const handleLifecycleEventsForOnMount = (newEl: HTMLElement) => {\n\n // check for a lifecycle \"onMount\" hook and call it\n if (typeof (newEl as any)?.$onMount === 'function') {\n ; (newEl as any).$onMount!()\n // remove the hook after it's been called\n ; (newEl as any).$onMount = null;\n }\n\n // optionally check for a element lifecycle \"onUnmount\" and hook it up\n if (typeof (newEl as any)?.$onUnmount === 'function') {\n // register the unmount observer (MutationObserver)\n observeUnmount(newEl as HTMLElement, (newEl as any).$onUnmount!);\n }\n}\n\nexport const getRenderer = (document: Document): DomAbstractionImpl => {\n // DOM abstraction layer for manipulation\n const renderer = {\n hasElNamespace: (domElement: Element | Document): boolean => (domElement as Element).namespaceURI === nsMap.svg,\n\n hasSvgNamespace: (parentElement: Element | Document, type: string): boolean =>\n renderer.hasElNamespace(parentElement) && type !== 'STYLE' && type !== 'SCRIPT',\n\n createElementOrElements: (\n virtualNode: VNode | undefined | Array<VNode | undefined | string>,\n parentDomElement?: Element | Document,\n ): Array<Element | Text | undefined> | Element | Text | undefined => {\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 // undefined virtualNode -> e.g. when a tsx variable is used in markup which is undefined\n return renderer.createTextNode('', parentDomElement)\n },\n\n createElement: (virtualNode: VNode, parentDomElement?: Element | Document): Element | undefined => {\n let newEl: Element | undefined = undefined;\n\n try {\n // if a synchronous function is still a function, VDOM has obviously not resolved, probably an \n // Error occurred while generating the VDOM (in JSX runtime)\n if (\n virtualNode.constructor.name === 'AsyncFunction'\n ) {\n newEl = document.createElement('div')\n } else if (typeof virtualNode.type === 'function') {\n newEl = document.createElement('div')\n ; (newEl as HTMLElement).innerText = `FATAL ERROR: ${virtualNode.type._error}`\n } else if ( // SVG support\n virtualNode.type.toUpperCase() === 'SVG' ||\n (parentDomElement && renderer.hasSvgNamespace(parentDomElement, virtualNode.type.toUpperCase()))\n ) { // SVG support\n newEl = document.createElementNS(nsMap.svg, virtualNode.type as string)\n } else {\n newEl = document.createElement(virtualNode.type as string)\n }\n\n if (virtualNode.attributes) {\n renderer.setAttributes(virtualNode, newEl as Element)\n\n // Apply dangerouslySetInnerHTML if provided\n if (virtualNode.attributes.dangerouslySetInnerHTML) {\n // TODO: FIX me\n newEl.innerHTML = virtualNode.attributes.dangerouslySetInnerHTML.__html;\n }\n }\n\n if (virtualNode.children) {\n renderer.createChildElements(virtualNode.children, newEl as Element)\n }\n\n if (parentDomElement) {\n parentDomElement.appendChild(newEl)\n handleLifecycleEventsForOnMount(newEl as HTMLElement)\n }\n } catch (e) {\n console.error('Fatal error! Error happend while rendering the VDOM!', e, virtualNode);\n throw e;\n }\n return newEl as Element\n },\n\n createTextNode: (text: string, domElement?: Element | Document): Text => {\n const node = document.createTextNode(text.toString())\n\n if (domElement) {\n domElement.appendChild(node)\n }\n return node\n },\n\n createChildElements: (\n virtualChildren: VNodeChildren,\n domElement?: Element | Document,\n ): Array<Element | Text | undefined> => {\n const children: Array<Element | Text | undefined> = []\n\n for (let i = 0; i < virtualChildren.length; i++) {\n const virtualChild = virtualChildren[i]\n if (virtualChild === null || (typeof virtualChild !== 'object' && typeof virtualChild !== 'function')) {\n children.push(\n renderer.createTextNode(\n (typeof virtualChild === 'undefined' || virtualChild === null ? '' : virtualChild!).toString(),\n domElement,\n ),\n )\n } else {\n children.push(renderer.createElement(virtualChild as VNode, domElement))\n }\n }\n return children\n },\n\n setAttribute: (name: string, value: any, domElement: Element, virtualNode: VNode<VNodeAttributes>) => {\n // attributes not set (undefined) are ignored; use null value to reset an attributes state\n if (typeof value === 'undefined') return // if not set, ignore\n\n // TODO: use DANGROUSLY_SET_INNER_HTML_ATTRIBUTE here\n if (name === 'dangerouslySetInnerHTML') return; // special case, handled elsewhere\n\n // save ref as { current: DOMElement } in ref object\n // allows for ref={someRef}\n if (name === REF_ATTRIBUTE_NAME && typeof value !== 'function') {\n value.current = domElement // update ref\n return; // but do not render the ref as a string [object Object] into the DOM\n }\n\n if (name.startsWith('on') && typeof value === 'function') {\n\n let eventName = name.substring(2).toLowerCase()\n const capturePos = eventName.indexOf('capture')\n const doCapture = capturePos > -1\n\n if (eventName === 'mount') {\n ; (domElement as any).$onMount = value // DOM event lifecycle hook\n }\n\n if (eventName === 'unmount') {\n ; (domElement as any).$onUnmount = value // DOM event lifecycle hook\n }\n\n // onClickCapture={...} support\n if (doCapture) {\n eventName = eventName.substring(0, capturePos)\n }\n domElement.addEventListener(eventName, value, doCapture)\n return\n }\n\n // transforms className=\"...\" -> class=\"...\"\n // allows for React JSX to work seamlessly\n if (name === 'className') {\n name = CLASS_ATTRIBUTE_NAME\n }\n\n // transforms class={['a', 'b']} into class=\"a b\"\n if (name === CLASS_ATTRIBUTE_NAME && Array.isArray(value)) {\n value = value.join(' ')\n }\n\n // SVG support\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 as keyof typeof nsMap] || null\n domElement.setAttributeNS(\n namespace,\n ns === XLINK_ATTRIBUTE_NAME || ns === 'xmlns' ? `${ns}:${attrName}` : name,\n value,\n )\n } else if (name === 'style' && typeof value !== 'string') {\n const propNames = Object.keys(value)\n\n // allows for style={{ margin: 10 }} etc.\n for (let i = 0; i < propNames.length; i++) {\n ; (domElement as HTMLElement).style[propNames[i] as any] = value[propNames[i]]\n }\n } else if (typeof value === 'boolean') {\n // for cases like <button checked={false} />\n ; (domElement as any)[name] = value\n } else {\n // for any other case\n domElement.setAttribute(name, value)\n }\n },\n\n setAttributes: (virtualNode: VNode<VNodeAttributes>, domElement: Element) => {\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, virtualNode)\n }\n },\n }\n return renderer\n}\n\nexport type SyncRenderInput = VNode | undefined | string | Array<VNode | undefined | string>;\nexport type ParentElementInput = Element | Document | Dequery | undefined;\nexport type SyncRenderResult = Array<Element | Text | undefined> | Element | Text | undefined;\n\nexport const renderIsomorphicSync = (\n virtualNode: SyncRenderInput,\n parentDomElement: ParentElementInput,\n globals: Globals,\n): SyncRenderResult => {\n if (isDequery(parentDomElement)) {\n parentDomElement = (parentDomElement as Dequery).getFirstElement() as Element || parentDomElement\n }\n let renderResult: SyncRenderResult;\n\n if (typeof virtualNode === 'string') {\n renderResult = getRenderer(globals.window.document).createTextNode(virtualNode, parentDomElement)\n } else {\n renderResult = getRenderer(globals.window.document).createElementOrElements(virtualNode, parentDomElement)\n }\n return renderResult;\n}\n\nexport type ParentElementInputAsync = ParentElementInput | Dequery | Promise<ParentElementInput | Dequery>;\n\nexport const renderIsomorphicAsync = async (\n virtualNode: SyncRenderInput | Promise<SyncRenderInput>,\n parentDomElement: ParentElementInputAsync,\n globals: Globals,\n): Promise<SyncRenderResult> => {\n\n if (parentDomElement instanceof Promise) {\n parentDomElement = (await parentDomElement) as ParentElementInput | Dequery\n }\n\n if (isDequery(parentDomElement)) {\n // awaits the dequery chain to resolve or fail, then renders the VDOM\n parentDomElement = (await (parentDomElement as Dequery).toArray())[0] as Element\n }\n\n if (virtualNode instanceof Promise) {\n virtualNode = await virtualNode\n }\n return renderIsomorphicSync(virtualNode, parentDomElement, globals)\n}\n\nexport const globalScopeDomApis = (window: Window, document: Document) => {\n globalThis.__defuss_document = document\n globalThis.__defuss_window = window\n}\n\nexport const isJSX = (o: any): boolean => {\n if (o === null || typeof o !== 'object') return false\n if (Array.isArray(o)) return o.every(isJSX)\n if (typeof o.type === 'string') return true\n if (typeof o.type === 'function') return true\n if (typeof o.attributes === 'object' && typeof o.children === 'object') return true\n return false\n}\n\n// --- JSX standard (necessary exports for jsx-runtime)\nexport const Fragment = (props: VNode) => props.children\nexport const jsxs = jsx\nexport const jsxDEV = (\n type: VNodeType | Function | any,\n attributes: (JSX.HTMLAttributes & JSX.SVGAttributes & Record<string, any>) | null,\n key?: string,\n allChildrenAreStatic?: boolean,\n sourceInfo?: string,\n selfReference?: any,\n): Array<VNode> | VNode => {\n let renderResult: Array<VNode> | VNode;\n try {\n renderResult = jsx(type, attributes, key);\n } catch (error) {\n console.error(\"JSX error:\", error, 'in', sourceInfo, 'component', selfReference);\n }\n return renderResult!;\n}\n\nexport default {\n jsx,\n Fragment,\n renderIsomorphic: renderIsomorphicSync,\n getRenderer,\n\n // implementing the full standard\n // https://github.com/reactjs/rfcs/blob/createlement-rfc/text/0000-create-element-changes.md\n jsxs,\n jsxDEV,\n};","import type { Globals, RenderInput, VNode, VNodeAttributes, VNodeChild } from \"defuss/jsx-runtime\";\nimport { getRenderer, handleLifecycleEventsForOnMount } from \"../render/isomorph.js\";\n\n/**\n * Compares two DOM nodes for equality with performance optimizations.\n * 1. Checks for reference equality.\n * 2. Compares node types.\n * 3. For Element nodes, compares tag names and attributes.\n * 4. For Text nodes, compares text content.\n */\nexport const areDomNodesEqual = (oldNode: Node, newNode: Node): boolean => {\n // return true if both references are identical\n if (oldNode === newNode) return true;\n\n // compare node types\n if (oldNode.nodeType !== newNode.nodeType) return false;\n\n // handle Element nodes\n if (oldNode.nodeType === Node.ELEMENT_NODE) {\n const oldElement = oldNode as Element;\n const newElement = newNode as Element;\n\n // compare tag names\n if (oldElement.tagName !== newElement.tagName) return false;\n\n const oldAttrs = oldElement.attributes;\n const newAttrs = newElement.attributes;\n\n // compare number of attributes\n if (oldAttrs.length !== newAttrs.length) return false;\n\n // iterate and compare each attribute's name and value\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) return false;\n }\n }\n\n // handle Text nodes\n if (oldNode.nodeType === Node.TEXT_NODE) {\n if (oldNode.textContent !== newNode.textContent) return false;\n }\n return true;\n};\n\n/**\n * Recursively updates oldNode with the structure of newNode:\n * - If they differ (tag/attrs/text), oldNode is replaced\n * - If same, we recurse on children\n */\nconst updateNode = (oldNode: Node, newNode: Node) => {\n // 1) If different, replace old with new\n if (!areDomNodesEqual(oldNode, newNode)) {\n oldNode.parentNode?.replaceChild(newNode.cloneNode(true), oldNode);\n return;\n }\n\n // 2) If they match and are elements, recurse on their children\n if (oldNode.nodeType === Node.ELEMENT_NODE) {\n const oldChildren = oldNode.childNodes;\n const newChildren = newNode.childNodes;\n const maxLength = Math.max(oldChildren.length, newChildren.length);\n\n for (let i = 0; i < maxLength; i++) {\n const oldChild = oldChildren[i];\n const newChild = newChildren[i];\n\n if (oldChild && newChild) {\n // both exist; recurse\n updateNode(oldChild, newChild);\n } else if (newChild && !oldChild) {\n // new child doesn't exist in old => append\n oldNode.appendChild(newChild.cloneNode(true));\n } else if (oldChild && !newChild) {\n // old child doesn't exist in new => remove\n oldNode.removeChild(oldChild);\n }\n }\n }\n};\n\n/**\n * Partially updates a DOM subtree by comparing `targetElement` to\n * newly parsed HTML. No `.innerHTML` is used here; we parse via DOMParser.\n */\nexport const updateDom = (targetElement: Element, newHTML: string): void => {\n // 1) Parse the new HTML string into a DocumentFragment-like structure\n const parser = new DOMParser();\n // 'text/html' => parse as a full HTML doc. We take the <body>'s children as our new nodes\n const doc = parser.parseFromString(newHTML, 'text/html');\n\n // 2) Extract the root child elements from the newly parsed doc\n // Typically, doc.body is where your HTML snippet content is placed.\n const newRoots = Array.from(doc.body.children);\n\n if (newRoots.length === 0) {\n console.warn('No root elements found in the new HTML.');\n return;\n }\n\n // 3) For each new root, see if there's an old corresponding child to update\n for (let i = 0; i < newRoots.length; i++) {\n const newRoot = newRoots[i];\n const oldChild = targetElement.children[i];\n\n if (oldChild) {\n // partial update\n updateNode(oldChild, newRoot);\n } else {\n // target has fewer children => just append\n targetElement.appendChild(newRoot.cloneNode(true));\n }\n }\n\n // 4) Remove any old leftover children that have no matching new root\n while (targetElement.children.length > newRoots.length) {\n targetElement.removeChild(targetElement.lastChild!);\n }\n};\n\n/********************************************************\n * 1) Define a \"valid\" child type & utility\n ********************************************************/\nexport type ValidChild =\n | string\n | number\n | boolean\n | null\n | undefined\n | VNode<VNodeAttributes>;\n\nfunction toValidChild(child: VNodeChild): ValidChild | undefined {\n if (child == null) return child; // null or undefined\n if (\n typeof child === \"string\" ||\n typeof child === \"number\" ||\n typeof child === \"boolean\"\n ) {\n return child;\n }\n if (typeof child === \"object\" && \"type\" in child) {\n return child as VNode<VNodeAttributes>;\n }\n // e.g. function or {} -> filter out\n return undefined;\n}\n\n/********************************************************\n * 2) Check if a DOM node and a ValidChild match by type\n ********************************************************/\nfunction areNodeAndChildMatching(domNode: Node, child: ValidChild): boolean {\n if (\n typeof child === \"string\" ||\n typeof child === \"number\" ||\n typeof child === \"boolean\"\n ) {\n // must be a text node\n return domNode.nodeType === Node.TEXT_NODE;\n } else if (child && typeof child === \"object\") {\n // must be same tag\n if (domNode.nodeType !== Node.ELEMENT_NODE) return false;\n const oldTag = (domNode as Element).tagName.toLowerCase();\n const newTag = child.type.toLowerCase();\n return oldTag === newTag;\n }\n // if child is null/undefined => definitely no match\n return false;\n}\n\n/********************************************************\n * 3) Patch a single DOM node in place (attributes, text, children)\n ********************************************************/\nfunction patchDomInPlace(domNode: Node, child: ValidChild, globals: Globals) {\n const renderer = getRenderer(globals.window.document);\n\n // textlike\n if (typeof child === \"string\" || typeof child === \"number\" || typeof child === \"boolean\") {\n const newText = String(child);\n if (domNode.nodeValue !== newText) {\n domNode.nodeValue = newText;\n }\n return;\n }\n\n // element\n if (domNode.nodeType === Node.ELEMENT_NODE && child && typeof child === \"object\") {\n // 1) update attributes\n // remove old attributes not present\n const el = domNode as Element;\n const existingAttrs = Array.from(el.attributes);\n for (const attr of existingAttrs) {\n const { name } = attr;\n if (!Object.prototype.hasOwnProperty.call(child.attributes, name) && name !== \"style\") {\n el.removeAttribute(name);\n }\n }\n // set new attributes\n renderer.setAttributes(child, el);\n\n // 2) dangerouslySetInnerHTML => skip child updates\n if (child.attributes?.dangerouslySetInnerHTML) {\n el.innerHTML = child.attributes.dangerouslySetInnerHTML.__html;\n return;\n }\n\n // 3) recursively do partial updates for children\n if (child.children) {\n updateDomWithVdom(el, child.children as any, globals);\n } else {\n // remove old children\n while (el.firstChild) {\n el.removeChild(el.firstChild);\n }\n }\n }\n}\n\n/********************************************************\n * 4) Create brand new DOM node from a ValidChild\n ********************************************************/\nfunction createDomFromChild(child: ValidChild, globals: Globals): Node | Node[] | undefined {\n const renderer = getRenderer(globals.window.document);\n\n if (child == null) return undefined;\n if (typeof child === \"string\" || typeof child === \"number\" || typeof child === \"boolean\") {\n return globals.window.document.createTextNode(String(child));\n }\n\n // else it's a VNode, create without parent as we don't know where it goes yet\n // therefore, we need to handle the onMount lifecycle event later too\n let renderResult = renderer.createElementOrElements(child) as Node | Node[] | undefined;\n\n if (renderResult && !Array.isArray(renderResult)) {\n renderResult = [renderResult];\n }\n return renderResult;\n}\n\n/********************************************************\n * 5) Main partial-update function (index-by-index approach)\n ********************************************************/\nexport function updateDomWithVdom(\n parentElement: Element,\n newVDOM: RenderInput,\n globals: Globals\n) {\n\n //console.log('updateDomWithVdom', newVDOM, parentElement)\n\n // A) Convert newVDOM => array of \"valid\" children\n let newChildren: ValidChild[] = [];\n if (Array.isArray(newVDOM)) {\n newChildren = newVDOM.map(toValidChild).filter((c): c is ValidChild => c !== undefined);\n } else if (\n typeof newVDOM === \"string\" ||\n typeof newVDOM === \"number\" ||\n typeof newVDOM === \"boolean\"\n ) {\n newChildren = [newVDOM];\n } else if (newVDOM) {\n const child = toValidChild(newVDOM);\n if (child !== undefined) newChildren = [child];\n }\n\n //console.log(\"new children to render!\", newChildren)\n\n // B) Generate brand-new DOM for each new child in an array\n // We'll compare them 1:1 with the old nodes.\n const newDomArray: (Node | Node[] | undefined)[] = newChildren.map((vdomChild) =>\n createDomFromChild(vdomChild, globals)\n );\n\n // C) Snapshot old children\n const oldNodes = Array.from(parentElement.childNodes);\n\n // D) Walk up to max length\n const maxLen = Math.max(oldNodes.length, newDomArray.length);\n for (let i = 0; i < maxLen; i++) {\n const oldNode = oldNodes[i];\n const newDom = newDomArray[i]; // might be a single Node or an array of Nodes\n const newChild = newChildren[i];\n\n if (oldNode && newDom !== undefined) {\n // Both old & new exist\n // 1) If newDom is an array (multiple root nodes?), we do a bigger replace\n // or partial approach. Typically we might place the 1st in oldNode's position\n // and then insert the rest right after it, then remove oldNode if needed.\n if (Array.isArray(newDom)) {\n if (newDom.length === 0) {\n // no new => remove old\n parentElement.removeChild(oldNode);\n } else {\n // We might keep the first node and replace oldNode\n const first = newDom[0];\n parentElement.replaceChild(first, oldNode);\n\n if (typeof first !== \"undefined\") {\n handleLifecycleEventsForOnMount(first as HTMLElement);\n }\n\n // Insert the rest\n for (let k = 1; k < newDom.length; k++) {\n if (newDom[k]) {\n parentElement.insertBefore(newDom[k]!, first.nextSibling);\n\n if (typeof newDom[k] !== \"undefined\") {\n console.log(\"inserBefore!\")\n handleLifecycleEventsForOnMount(newDom[k] as HTMLElement);\n }\n }\n }\n }\n } else if (newDom) {\n // single new node\n // 2) If old & new match => partial patch. Else => replace\n if (newChild && areNodeAndChildMatching(oldNode, newChild)) {\n // partial patch\n patchDomInPlace(oldNode, newChild, globals);\n } else {\n // replace\n parentElement.replaceChild(newDom, oldNode);\n\n handleLifecycleEventsForOnMount(newDom as HTMLElement);\n }\n }\n } else if (!oldNode && newDom !== undefined) {\n // we have more new nodes => append\n if (Array.isArray(newDom)) {\n newDom.forEach((newNode) => {\n const wasAdded = newNode && parentElement.appendChild(newNode);\n\n if (wasAdded) {\n handleLifecycleEventsForOnMount(newNode as HTMLElement)\n }\n return wasAdded;\n });\n } else if (newDom) {\n parentElement.appendChild(newDom);\n\n handleLifecycleEventsForOnMount(newDom as HTMLElement);\n }\n } else if (oldNode && newDom === undefined) {\n // we have leftover old => remove\n parentElement.removeChild(oldNode);\n }\n }\n}\n\n/**\n * Directly blow away all children in `parentElement` and create new DOM \n * from `newVDOM`. This never skips or leaves behind stale nodes, \n * at the cost of losing partial update performance.\n */\nexport function replaceDomWithVdom(parentElement: Element, newVDOM: RenderInput, globals: Globals) {\n // 1) Clear all existing DOM children\n while (parentElement.firstChild) {\n parentElement.removeChild(parentElement.firstChild);\n }\n\n // 2) Re-render from scratch\n const renderer = getRenderer(globals.window.document);\n\n // Possibly convert `newVDOM` to array if needed, \n // but `renderer.createElementOrElements` handles it either way:\n const newDom = renderer.createElementOrElements(newVDOM as VNode | undefined | Array<VNode | undefined | string>);\n\n // 3) Append the newly created node(s)\n if (Array.isArray(newDom)) {\n for (const node of newDom) {\n if (node) parentElement.appendChild(node);\n }\n } else if (newDom) {\n parentElement.appendChild(newDom);\n }\n}"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";var G=Object.defineProperty;var o=(r,e)=>G(r,"name",{value:e,configurable:!0});const K=/(.*)\[(\d+)\]/,z=/^\d+$/,S=o(r=>r.split(".").flatMap(e=>{const n=e.match(K);return n?[...S(n[1]),Number(n[2])]:e}),"getAllKeysFromPath"),W=o((r,e,n)=>{e in r||(r[e]=z.test(String(n))?[]:{})},"ensureKey"),R=o((r,e)=>S(e).reduce((t,s)=>t?.[s],r),"getByPath"),k=o((r,e,n)=>{const t=S(e),s=t[0],i=Array.isArray(r)?[...r]:{...r};return t.length===1?(n===void 0?Array.isArray(i)?i.splice(Number(s),1):delete i[s]:i[s]=n,i):(W(i,s,t[1]),i[s]=k(i[s],t.slice(1).join("."),n),i)},"setByPath"),q=o(r=>{let e=r;const n=[],t=o((s,i)=>{n.forEach(l=>l(e,s,i))},"notify");return{get value(){return e},get(s){return s?R(e,s):e},set(s,i){const l=e;if(i===void 0)l!==s&&(e=s,t(l));else{const a=k(e,s,i);l!==a&&(e=a,t(l,s))}},subscribe(s){return n.push(s),()=>{const i=n.indexOf(s);i>=0&&n.splice(i,1)}}}},"createStore"),E=o(r=>r&&typeof r=="object"&&"current"in r,"isRef");function Y(r,e){const n=q(e),t={current:null,store:n,get state(){return n.value},set state(s){n.set(s)},update:o(s=>{n.set(s)},"update"),subscribe:o(s=>n.subscribe(s),"subscribe")};return typeof r=="function"&&t.subscribe(r),t}o(Y,"createRef");const u=o(r=>(r instanceof HTMLElement||console.warn("Expected HTMLElement, but found:",r?.nodeName??r),r),"elementGuard"),x={maxWaitMs:1e3,timeout:5e3,delay:0,verbose:!1,onTimeGuardError:o(()=>{},"onTimeGuardError")};class c{static{o(this,"Call")}name;fn;args;constructor(e,...n){this.name=e.name,this.fn=e,this.args=n}}class Z{static{o(this,"CallChainImpl")}options;callStack;chainStack;elements;prevElements;stoppedWithError;lastResult;isResolved;constructor(e={},n=!1){this.options={...x,...e},this.callStack=[],this.chainStack=[],this.elements=e.initialEl?[e.initialEl]:[],this.prevElements=[],this.stoppedWithError=!1,this.lastResult=null,this.isResolved=n;const t=new Proxy(this,{get(s,i){if(typeof i=="string"&&!Number.isNaN(Number(i)))return s.elements[Number(i)];const l=s[i];return typeof l=="function"?function(...a){return l.apply(t,a)}:l}});return t}resetElements(){this.prevElements=[...this.elements],this.elements=this.options.initialEl?[this.options.initialEl]:[]}getFirstElement(){return this.elements[0]}createSubChain(e=!0){if(e){const n=new y({...this.options,initialEl:this.getFirstElement()},!0);return n.elements=this.elements,n.prevElements=this.prevElements,n.callStack=this.callStack,n.chainStack=this.chainStack,n.stoppedWithError=this.stoppedWithError,n.lastResult=this.lastResult,n}else return new y({...this.options,initialEl:this.getFirstElement()},!0)}__init(e,n){if(!e)throw new Error("dequery: selector/ref/element required");if(typeof e=="string")if(e.indexOf("<")===0){this.elements=P(e);const{text:t,html:s,...i}=n;return typeof this.elements[0]<"u"&&this.elements[0]instanceof Element&&(Object.entries(i).forEach(([l,a])=>{this.elements[0].setAttribute(l,String(a))}),s?this.elements[0].innerHTML=s:t&&(this.elements[0].textContent=t)),this.createSubChain()}else return this.query(e);else{if(E(e))return this.ref(e);if(e.nodeType)return this.elements=[e],this.createSubChain();if(w(e)){const t=C(e,void 0,globalThis);return this.elements=typeof t<"u"?Array.isArray(t)?t:[t]:[],this.createSubChain()}}throw new Error("Unsupported selectorOrEl type")}debug(e){return this.callStack.push(new c(o(function(){return e(this.elements),this.createSubChain(!0)},"debug"))),this}ref(e){return this.callStack.push(new c(o(async function(t){if(await b(t,this.options.maxWaitMs),t.current)this.elements=[u(t.current)];else throw new Error("Ref is null or undefined");return this.createSubChain()},"ref2"),e)),this}query(e){return this.callStack.push(new c(o(async function(t){return await N(t,this.options.maxWaitMs),this.elements=Array.from(document.querySelectorAll(t)),this.createSubChain()},"query"),e)),this}all(){return this.callStack.push(new c(o(function(){return this.elements.map(n=>new y({...this.options,initialEl:n},!0))},"all"))),this}get length(){return this.elements.length}first(){return this.callStack.push(new c(o(function(){return this.elements=[this.elements[0]],this.createSubChain()},"first"))),this}last(){return this.callStack.push(new c(o(function(){const n=this.elements;return this.elements=[n[n.length-1]],this.createSubChain()},"last"))),this}next(){return this.callStack.push(new c(o(function(){return this.elements=this.elements.map(n=>u(n).nextElementSibling).filter(Boolean),this.createSubChain()},"next"))),this}prev(){return this.callStack.push(new c(o(function(){return this.elements=this.elements.map(n=>u(n).previousElementSibling).filter(Boolean),this.createSubChain()},"prev"))),this}find(e){return this.callStack.push(new c(o(function(t){return this.elements=this.elements.flatMap(s=>Array.from(u(s).querySelectorAll(t))),this.createSubChain()},"find"),e)),this}parent(){return this.callStack.push(new c(o(function(){return this.elements=this.elements.map(n=>n.parentElement).filter(Boolean),this.createSubChain()},"parent"))),this}children(){return this.callStack.push(new c(o(function(){return this.elements=this.elements.flatMap(n=>Array.from(u(n).children)),this.createSubChain(!0)},"children"))),this}closest(e){return this.callStack.push(new c(o(function(t){return this.elements=this.elements.map(s=>u(s).closest(t)).filter(Boolean),this.createSubChain()},"closest"),e)),this}filter(e){return this.callStack.push(new c(o(function(t){return this.elements=this.elements.filter(s=>u(s).matches(t)),this.createSubChain(this.elements.length>0)},"filter"),e)),this}attr(e,n){return n!==void 0?(this.callStack.push(new c(o(function(s,i){return this.elements.forEach(l=>u(l).setAttribute(s,i)),null},"setAttr"),e,n)),this):(this.callStack.push(new c(o(function(s){return u(this.getFirstElement()).getAttribute(s)},"getAttr"),e)),this)}prop(e,n){return n!==void 0?(this.callStack.push(new c(o(function(s,i){return this.elements.forEach(l=>u(l)[s]=i),null},"setProp"),e,n)),this):(this.callStack.push(new c(o(function(s){return u(this.getFirstElement())[s]},"getProp"),e)),this)}css(e,n){return typeof e=="string"&&n===void 0?this.callStack.push(new c(o(function(s){return u(this.getFirstElement()).style.getPropertyValue(s)},"getCss"),e)):this.callStack.push(new c(o(function(s,i){return this.elements.forEach(l=>{if(typeof s=="string")u(l).style.setProperty(s,i);else for(const a in s)u(l).style.setProperty(a,s[a])}),null},"setCss"),e,n)),this}addClass(e){return this.callStack.push(new c(o(function(t){const s=Array.isArray(t)?t:[t];return this.elements.forEach(i=>u(i).classList.add(...s)),null},"addClass"),e)),this}removeClass(e){return this.callStack.push(new c(o(function(t){const s=Array.isArray(t)?t:[t];return this.elements.forEach(i=>u(i).classList.remove(...s)),null},"removeClass"),e)),this}hasClass(e){return this.callStack.push(new c(o(function(t){return this.elements.every(s=>u(s).classList.contains(t))},"hasClass"),e)),this}toggleClass(e){return this.callStack.push(new c(o(function(t){return this.elements.forEach(s=>u(s).classList.toggle(t)),null},"toggleClass"),e)),this}animateClass(e,n){return this.callStack.push(new c(o(function(s,i){return this.elements.forEach(l=>{const a=u(l);a.classList.add(s),setTimeout(()=>a.classList.remove(s),i)}),null},"animateClass"),e,n)),this}empty(){return this.callStack.push(new c(o(function(){return this.elements.forEach(n=>u(n).innerHTML=""),null},"empty"))),this}html(e){return this.callStack.push(new c(o(function(t){return this.elements.forEach(s=>_(u(s),t)),null},"html2"),e)),this}jsx(e){return w(e)?(this.callStack.push(new c(o(function(t){return this.elements.forEach(s=>A(u(s),t,globalThis)),null},"jsx"),e)),this):(console.warn("jsx: expected JSX, got",e),this)}text(e){return this.callStack.push(new c(o(function(t){return this.elements.forEach(s=>u(s).textContent=t),null},"text2"),e)),this}update(e){return this.callStack.push(new c(o(function(t){return typeof t=="string"?/<\/?>[a-z][\s\S]*>/i.test(t)?this.elements.forEach(i=>_(u(i),t)):this.elements.forEach(i=>u(i).textContent=t):this.elements.forEach(s=>A(u(s),t,globalThis)),null},"update"),e)),this}remove(){return this.callStack.push(new c(o(function(){return this.elements.forEach(n=>u(n).remove()),null},"remove"))),this}replaceWith(e){return this.callStack.push(new c(o(async function(t){let s;if(typeof t=="string")/<\/?[a-z][\s\S]*>/i.test(t)?s=P(t)[0]:s=document.createTextNode(t);else if(w(t))s=C(t,void 0,globalThis);else if(E(t))await b(t,this.options.maxWaitMs),s=u(t.current);else if(t instanceof Node)s=t;else if(t instanceof y)s=t.getFirstElement();else return console.warn("replaceWith: unsupported content type",t),null;return this.elements.forEach(i=>{i.parentNode?.replaceChild(s.cloneNode(!0),i)}),null},"replaceWith"),e)),this}append(e){return this.callStack.push(new c(o(function(t){return this.elements.forEach(s=>{typeof t=="string"?u(s).innerHTML+=t:t instanceof y?t.elements.forEach(i=>{s.appendChild(i.cloneNode(!0))}):s.appendChild(t.cloneNode(!0))}),null},"append"),e)),this}appendTo(e){return this.callStack.push(new c(o(async function(t){let s;if(E(t))await b(t,this.options.maxWaitMs),s=u(t.current);else if(typeof t=="string")await N(t,this.options.maxWaitMs),s=u(document.querySelector(t));else if(t instanceof Node)s=u(t);else if(t instanceof y)s=u(t.getFirstElement());else return console.warn("appendTo: expected selector, ref or node, got",t),null;return this.elements.forEach(i=>{s.appendChild(i.cloneNode(!0))}),null},"appendTo"),e)),this}on(e,n){return this.callStack.push(new c(o(function(s,i){return this.elements.forEach(l=>u(l).addEventListener(s,i)),null},"on"),e,n)),this}off(e,n){return this.callStack.push(new c(o(function(s,i){return this.elements.forEach(l=>u(l).removeEventListener(s,i)),null},"off"),e,n)),this}trigger(e){return this.callStack.push(new c(o(function(t){return this.elements.forEach(s=>u(s).dispatchEvent(new Event(t,{bubbles:!0,cancelable:!0}))),null},"trigger"),e)),this}val(e){return e!==void 0?this.callStack.push(new c(o(function(t){return this.elements.forEach(s=>{s instanceof HTMLInputElement&&(s.value=String(t))}),null},"setVal"),e)):this.callStack.push(new c(o(function(){return u(this.getFirstElement()).value},"getVal"))),this}map(e){return this.callStack.push(new c(o(function(t){return this.elements.map(t)},"map"),e)),this}toArray(){return this.callStack.push(new c(o(function(){return[...this.elements]},"toArray"))),this}data(e,n){return n!==void 0?this.callStack.push(new c(o(function(s,i){return this.elements.forEach(l=>u(l).dataset[s]=i),null},"setData"),e,n)):this.callStack.push(new c(o(function(s){return u(this.getFirstElement()).dataset[s]},"getData"),e)),this}form(e){return e?this.callStack.push(new c(o(function(t){return this.elements.forEach(s=>{s instanceof Element&&s.querySelectorAll("input, select, textarea").forEach(l=>{if(["INPUT","SELECT","TEXTAREA"].includes(l.tagName)){const a=l.name||l.id;t[a]!==void 0&&(l.type==="checkbox"?l.checked=!!t[a]:l.value=String(t[a]))}})}),null},"setForm"),e)):this.callStack.push(new c(o(function(){const t={};return this.elements.forEach(s=>{s instanceof Element&&s.querySelectorAll("input, select, textarea").forEach(l=>{if(["INPUT","SELECT","TEXTAREA"].includes(l.tagName)){const a=l.name||l.id;l.type==="checkbox"?t[a]=l.checked:t[a]=l.value}})}),t},"getForm"))),this}then(e,n){this.stoppedWithError||B(this.options.timeout,async()=>{const t=[];for(const s of this.callStack){if(this.stoppedWithError)break;try{t.push(await s.fn.apply(this,s.args)),await $(this.options.delay)}catch{this.stoppedWithError=!0;break}}return this.chainStack.push([...t]),this.lastResult=t[t.length-1],this.callStack=[],this.resetElements(),this.isResolved=!0,this.lastResult},[]).then(e).catch(n)}}const y=new Proxy(Z,{construct(r,e){const n=new r(...e);return new Proxy(n,{get(t,s){return s==="then"&&n.isResolved?Promise.resolve(n.lastResult):(n.isResolved=!1,t[s])}})}});function v(r,e=x){let n=new y({...e,initialEl:void 0}).__init(r,e);return(async()=>n=await n)(),n}o(v,"dequery");const Q=v,ee=v;function L(r){return typeof r=="object"&&r!==null&&"isResolved"in r&&"lastResult"in r}o(L,"isDequery");async function M(r,e,n=1){const t=Date.now();return new Promise((s,i)=>{const l=setInterval(()=>{try{const a=r();a!=null?(clearInterval(l),s(a)):Date.now()-t>=e&&(clearInterval(l),i(new Error(`Timeout after ${e}ms`)))}catch(a){throw clearInterval(l),i(a),a}},n)})}o(M,"waitForWithPolling");async function N(r,e,n){return M(()=>document.querySelector(r),e,n)}o(N,"waitForSelectorWithPolling");async function b(r,e,n){return M(()=>r.current,e,n)}o(b,"waitForRefWithPolling");function P(r,e="text/html"){const n=new DOMParser().parseFromString(r,e);return Array.from(n.body.childNodes)}o(P,"renderHTML");function $(r){return new Promise(e=>setTimeout(e,r))}o($,"sleep");function B(r,e,n,t){return e(...n)}o(B,"runWithTimeGuard");const j="class",U="xlink",te="xmlns",ne="ref",F={[te]:"http://www.w3.org/2000/xmlns/",[U]:"http://www.w3.org/1999/xlink",svg:"http://www.w3.org/2000/svg"},se=o(r=>r&&typeof r=="object"&&!r.attributes&&!r.type&&!r.children,"isJSXComment"),D=o(r=>r.filter(e=>!se(e)),"filterComments"),X=o(r=>({type:"p",attributes:{},children:[`FATAL ERROR: ${r?.message||r}`]}),"createInPlaceErrorMessageVNode"),I=o((r,e,n)=>{e={...e},typeof n<"u"&&(e.key=n);let t=(e?.children?[].concat(e.children):[]).filter(Boolean);if(delete e?.children,t=D([].concat.apply([],t)),r==="fragment")return D(t);if(typeof r=="function"&&r.constructor.name!=="AsyncFunction")try{return r({children:t,...e})}catch(s){return typeof s=="string"?s=`[JsxError] in ${r.name}: ${s}`:s instanceof Error&&(s.message=`[JsxError] in ${r.name}: ${s.message}`),X(s)}return{type:r,attributes:e,children:t}},"jsx"),H=o((r,e)=>{if(!r||typeof e!="function")throw new Error("Invalid arguments. Ensure domNode and onUnmount are valid.");const n=r.parentNode;if(!n)throw new Error("The provided domNode does not have a parentNode.");const t=new MutationObserver(s=>{for(const i of s)if(i.removedNodes.length>0){for(const l of i.removedNodes)if(l===r){e(),t.disconnect();return}}});t.observe(n,{childList:!0})},"observeUnmount"),m=o(r=>{typeof r?.$onMount=="function"&&(r.$onMount(),r.$onMount=null),typeof r?.$onUnmount=="function"&&H(r,r.$onUnmount)},"handleLifecycleEventsForOnMount"),g=o(r=>{const e={hasElNamespace:o(n=>n.namespaceURI===F.svg,"hasElNamespace"),hasSvgNamespace:o((n,t)=>e.hasElNamespace(n)&&t!=="STYLE"&&t!=="SCRIPT","hasSvgNamespace"),createElementOrElements:o((n,t)=>Array.isArray(n)?e.createChildElements(n,t):typeof n<"u"?e.createElement(n,t):e.createTextNode("",t),"createElementOrElements"),createElement:o((n,t)=>{let s;try{n.constructor.name==="AsyncFunction"?s=r.createElement("div"):typeof n.type=="function"?(s=r.createElement("div"),s.innerText=`FATAL ERROR: ${n.type._error}`):n.type.toUpperCase()==="SVG"||t&&e.hasSvgNamespace(t,n.type.toUpperCase())?s=r.createElementNS(F.svg,n.type):s=r.createElement(n.type),n.attributes&&(e.setAttributes(n,s),n.attributes.dangerouslySetInnerHTML&&(s.innerHTML=n.attributes.dangerouslySetInnerHTML.__html)),n.children&&e.createChildElements(n.children,s),t&&(t.appendChild(s),m(s))}catch(i){throw console.error("Fatal error! Error happend while rendering the VDOM!",i,n),i}return s},"createElement"),createTextNode:o((n,t)=>{const s=r.createTextNode(n.toString());return t&&t.appendChild(s),s},"createTextNode"),createChildElements:o((n,t)=>{const s=[];for(let i=0;i<n.length;i++){const l=n[i];l===null||typeof l!="object"&&typeof l!="function"?s.push(e.createTextNode((typeof l>"u"||l===null?"":l).toString(),t)):s.push(e.createElement(l,t))}return s},"createChildElements"),setAttribute:o((n,t,s,i)=>{if(typeof t>"u"||n==="dangerouslySetInnerHTML")return;if(n===ne&&typeof t!="function"){t.current=s;return}if(n.startsWith("on")&&typeof t=="function"){let a=n.substring(2).toLowerCase();const f=a.indexOf("capture"),h=f>-1;a==="mount"&&(s.$onMount=t),a==="unmount"&&(s.$onUnmount=t),h&&(a=a.substring(0,f)),s.addEventListener(a,t,h);return}n==="className"&&(n=j),n===j&&Array.isArray(t)&&(t=t.join(" "));const l=n.match(/[A-Z]/)?.index;if(e.hasElNamespace(s)&&l){const a=n.substring(0,l).toLowerCase(),f=n.substring(l,n.length).toLowerCase(),h=F[a]||null;s.setAttributeNS(h,a===U||a==="xmlns"?`${a}:${f}`:n,t)}else if(n==="style"&&typeof t!="string"){const a=Object.keys(t);for(let f=0;f<a.length;f++)s.style[a[f]]=t[a[f]]}else typeof t=="boolean"?s[n]=t:s.setAttribute(n,t)},"setAttribute"),setAttributes:o((n,t)=>{const s=Object.keys(n.attributes);for(let i=0;i<s.length;i++)e.setAttribute(s[i],n.attributes[s[i]],t,n)},"setAttributes")};return e},"getRenderer"),C=o((r,e,n)=>{L(e)&&(e=e.getFirstElement()||e);let t;return typeof r=="string"?t=g(n.window.document).createTextNode(r,e):t=g(n.window.document).createElementOrElements(r,e),t},"renderIsomorphicSync"),re=o(async(r,e,n)=>(e instanceof Promise&&(e=await e),L(e)&&(e=(await e.toArray())[0]),r instanceof Promise&&(r=await r),C(r,e,n)),"renderIsomorphicAsync"),ie=o((r,e)=>{globalThis.__defuss_document=e,globalThis.__defuss_window=r},"globalScopeDomApis"),w=o(r=>r===null||typeof r!="object"?!1:Array.isArray(r)?r.every(w):typeof r.type=="string"||typeof r.type=="function"||typeof r.attributes=="object"&&typeof r.children=="object","isJSX"),oe=o(r=>r.children,"Fragment"),le=I,ae=o((r,e,n,t,s,i)=>{let l;try{l=I(r,e,n)}catch(a){console.error("JSX error:",a,"in",s,"component",i)}return l},"jsxDEV"),V=o((r,e)=>{if(r===e)return!0;if(r.nodeType!==e.nodeType)return!1;if(r.nodeType===Node.ELEMENT_NODE){const n=r,t=e;if(n.tagName!==t.tagName)return!1;const s=n.attributes,i=t.attributes;if(s.length!==i.length)return!1;for(let l=0;l<s.length;l++){const a=s[l],f=t.getAttribute(a.name);if(a.value!==f)return!1}}return!(r.nodeType===Node.TEXT_NODE&&r.textContent!==e.textContent)},"areDomNodesEqual"),J=o((r,e)=>{if(!V(r,e)){r.parentNode?.replaceChild(e.cloneNode(!0),r);return}if(r.nodeType===Node.ELEMENT_NODE){const n=r.childNodes,t=e.childNodes,s=Math.max(n.length,t.length);for(let i=0;i<s;i++){const l=n[i],a=t[i];l&&a?J(l,a):a&&!l?r.appendChild(a.cloneNode(!0)):l&&!a&&r.removeChild(l)}}},"updateNode"),_=o((r,e)=>{const t=new DOMParser().parseFromString(e,"text/html"),s=Array.from(t.body.children);if(s.length===0){console.warn("No root elements found in the new HTML.");return}for(let i=0;i<s.length;i++){const l=s[i],a=r.children[i];a?J(a,l):r.appendChild(l.cloneNode(!0))}for(;r.children.length>s.length;)r.removeChild(r.lastChild)},"updateDom");function O(r){if(r==null||typeof r=="string"||typeof r=="number"||typeof r=="boolean"||typeof r=="object"&&"type"in r)return r}o(O,"toValidChild");function ce(r,e){if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return r.nodeType===Node.TEXT_NODE;if(e&&typeof e=="object"){if(r.nodeType!==Node.ELEMENT_NODE)return!1;const n=r.tagName.toLowerCase(),t=e.type.toLowerCase();return n===t}return!1}o(ce,"areNodeAndChildMatching");function ue(r,e,n){const t=g(n.window.document);if(typeof e=="string"||typeof e=="number"||typeof e=="boolean"){const s=String(e);r.nodeValue!==s&&(r.nodeValue=s);return}if(r.nodeType===Node.ELEMENT_NODE&&e&&typeof e=="object"){const s=r,i=Array.from(s.attributes);for(const l of i){const{name:a}=l;!Object.prototype.hasOwnProperty.call(e.attributes,a)&&a!=="style"&&s.removeAttribute(a)}if(t.setAttributes(e,s),e.attributes?.dangerouslySetInnerHTML){s.innerHTML=e.attributes.dangerouslySetInnerHTML.__html;return}if(e.children)A(s,e.children,n);else for(;s.firstChild;)s.removeChild(s.firstChild)}}o(ue,"patchDomInPlace");function he(r,e){const n=g(e.window.document);if(r==null)return;if(typeof r=="string"||typeof r=="number"||typeof r=="boolean")return e.window.document.createTextNode(String(r));let t=n.createElementOrElements(r);return t&&!Array.isArray(t)&&(t=[t]),t}o(he,"createDomFromChild");function A(r,e,n){let t=[];if(Array.isArray(e))t=e.map(O).filter(a=>a!==void 0);else if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")t=[e];else if(e){const a=O(e);a!==void 0&&(t=[a])}const s=t.map(a=>he(a,n)),i=Array.from(r.childNodes),l=Math.max(i.length,s.length);for(let a=0;a<l;a++){const f=i[a],h=s[a],T=t[a];if(f&&h!==void 0)if(Array.isArray(h))if(h.length===0)r.removeChild(f);else{const d=h[0];r.replaceChild(d,f),typeof d<"u"&&m(d);for(let p=1;p<h.length;p++)h[p]&&(r.insertBefore(h[p],d.nextSibling),typeof h[p]<"u"&&(console.log("inserBefore!"),m(h[p])))}else h&&(T&&ce(f,T)?ue(f,T,n):(r.replaceChild(h,f),m(h)));else!f&&h!==void 0?Array.isArray(h)?h.forEach(d=>{const p=d&&r.appendChild(d);return p&&m(d),p}):h&&(r.appendChild(h),m(h)):f&&h===void 0&&r.removeChild(f)}}o(A,"updateDomWithVdom");function fe(r,e,n){for(;r.firstChild;)r.removeChild(r.firstChild);const s=g(n.window.document).createElementOrElements(e);if(Array.isArray(s))for(const i of s)i&&r.appendChild(i);else s&&r.appendChild(s)}o(fe,"replaceDomWithVdom"),exports.$=Q,exports.D=ee,exports.DequeryChain=y,exports.Fragment=oe,exports.adefaultConfig=x,exports.areDomNodesEqual=V,exports.createInPlaceErrorMessageVNode=X,exports.createRef=Y,exports.createStore=q,exports.dequery=v,exports.ensureKey=W,exports.getAllKeysFromPath=S,exports.getByPath=R,exports.getRenderer=g,exports.globalScopeDomApis=ie,exports.handleLifecycleEventsForOnMount=m,exports.isDequery=L,exports.isJSX=w,exports.isRef=E,exports.jsx=I,exports.jsxDEV=ae,exports.jsxs=le,exports.observeUnmount=H,exports.renderHTML=P,exports.renderIsomorphicAsync=re,exports.renderIsomorphicSync=C,exports.replaceDomWithVdom=fe,exports.runWithTimeGuard=B,exports.setByPath=k,exports.sleep=$,exports.updateDom=_,exports.updateDomWithVdom=A,exports.waitForRefWithPolling=b,exports.waitForSelectorWithPolling=N,exports.waitForWithPolling=M;
2
+ //# sourceMappingURL=dom-DLKNKVTt.cjs.map