ouider 0.0.7 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/dom/dom.ts"],"names":["stringToHex","str","hexString","i","length","hex","charCodeAt","toString","ELEMENT_REGISTRY","Map","storedElementMap","WeakMap","OBJECT_INDEX","DOM_EVENT_LISTENER","query","selector","filter","nodeId","doc","get","document","isElementNode","element","querySelector","htmlElementToONode","queryAll","querySelectorAll","map","e","childNodes","node","children","treeWalker","createTreeWalker","tmp","firstChild","parentNode","push","nextSibling","c","nodeType","Node","TEXT_NODE","ELEMENT_NODE","ATTRIBUTE_NODE","COMMENT_NODE","elementAttributes","attributes","attr","name","value","recursiveLevel","uid","putInRegistry","tag","tagName","toLocaleLowerCase","type","isArray","objType","fullFilter","Set","forEach","f","classes","classList","style","cssText","textContent","createElement","props","el","has","createElementNS","k","setAttribute","createComment","data","elementId","id","padStart","set","error","console","removeFromRegistry","n","delete","appendChild","childId","child","setInnerText","text","innerText","setContentText","getContentText","removeClass","tokens","remove","addClass","add","getInnerText","setStyle","key","setProperty","removeAttribute","getAttribte","getAttribute","getAttribteNames","getAttributeNames","cloneNode","subtree","removeNode","removeChild","replaceWith","toReplaceId","toReplace","insertAfter","toInsertId","toInsert","after","insertBefore","setInputValue","inputValue","attachEventListener","cbId","eventName","cb","__name","target","emit","addEventListener","dettachEventListener","removeEventListener","injectComponentStyles","css","styleEl","innerHTML","head","rejectComponentStyles","styleId","replaceChildNode","parentId","parent","replaceChild","arrayBufferToBase64","buffer","binary","String","fromCharCode","btoa","httpFetch","url","encodeAs","result","fetch","bytes","json","setInnerHTML","html","getInnerHTML","invokeObjectMethod","fn","args","getAdvanceObjectProperty","method","apply","getObjectProperty","obj","path","els","split","current","setAdvanceObjectProperty","setObjectProperty","listeners","NativeOUID","invoke","JSON","stringify","subscribe","event","callback","window","fnName","argsJson","releaseNode","locationPath","location","pathname","historyPushState","history","pushState","dispatchPopStateEvent","dispatchEvent","PopStateEvent","state","eventClass","initDict","CustomEvent","asOObject","Array","getOObject","acquireObject","objId","addSetTimeout","delay","setTimeout","addSetInterval","setInterval","removeSetTimeout","timerId","clearTimeout","removeSetInterval","clearInterval","initDOM","__WEB_OUID_EMULATION__","globalThis","__OUI_PUR_JS_CONTEXT__","WebOUID","observer","MutationObserver","mutations","mutation","removedNodes","_ouid_query","_ouid_queryAll","_ouid_createElement","_ouid_createComment","_ouid_invokeObjectMethod","_ouid_getObjectProperty","_ouid_setObjectProperty","_ouid_appendChild","_ouid_addClass","_ouid_removeClass","_ouid_setInnerHTML","_ouid_getInnerHTML","_ouid_setInnerText","_ouid_getInnerText","_ouid_setContentText","_ouid_getContentText","_ouid_setAttribute","_ouid_removeAttribute","_ouid_getAttribte","_ouid_getAttribteNames","_ouid_childNodes","_ouid_cloneNode","_ouid_removeNode","_ouid_removeChild","_ouid_replaceChildNode","_ouid_replaceNode","_ouid_insertAfter","_ouid_insertBefore","_ouid_setInputValue","_ouid_inputValue","_ouid_attachEventListener","_ouid_dettachEventListener","_ouid_injectComponentStyles","_ouid_rejectComponentStyles","_ouid_locationPath","_ouid_historyPushState","_ouid_dispatchPopStateEvent","_ouid_parentNode","_ouid_releaseNode","_ouid_getOObject","_ouid_acquireObject","_ouid_dispatchEvent","_ouid_setTimeout","_ouid_clearTimeout","_ouid_dsetInterval","_ouid_clearInterval","_ouid_setStyle","_ouid_nextSibling","_ouid_fetch","_ouid_alert","alert","_ouid_prompt","prompt","observe","body","childList","parse","status"],"mappings":"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","file":"dom.js","sourcesContent":["export function stringToHex(str: string): string {\n\tlet hexString = '';\n\tfor (let i = 0; i < str.length; i++) {\n\t\tconst charCode = str.charCodeAt(i);\n\t\tlet hex = charCode.toString(16);\n\t\thex = hex.length === 1 ? '0' + hex : hex;\n\t\thexString += hex;\n\t}\n\treturn hexString;\n}\n\ntype OObject = { uid: string, objType: string, tag: string, isArray: boolean }\nexport type ONode = OObject & { textContent?: string | null, type: 'Element' | 'Text' | 'Comment' | 'Attribute' | 'Unknown', attributes?: { name: string, value: string }[], children?: ONode[], classes?: string[], style?: string }\nexport const ELEMENT_REGISTRY = new Map<string, any>()\nconst storedElementMap = new WeakMap<Node, string>()\nlet OBJECT_INDEX = 0\nconst DOM_EVENT_LISTENER = new Map<string, any>()\n/**\n * Query a dom element and store it in ELEMENT_REGISTRY for usage in js engine\n * @param selector \n */\nfunction query<T extends 'children' | 'classes' | 'style' | 'attributes'>(selector: string, filter?: T[], nodeId?: string): ONode | null {\n\tconst doc = nodeId ? ELEMENT_REGISTRY.get(nodeId) : document\n\tif (!isElementNode(doc)) {\n\t\treturn null\n\t}\n\tconst element = doc.querySelector(selector)\n\tif (!element) {\n\t\treturn null\n\t}\n\treturn htmlElementToONode(element, filter, 1)\n}\nfunction queryAll<T extends 'children' | 'classes' | 'style' | 'attributes'>(selector: string, filter?: T[], nodeId?: string): ONode[] {\n\tconst doc = nodeId ? ELEMENT_REGISTRY.get(nodeId) : document\n\tif (!isElementNode(doc)) {\n\t\treturn []\n\t}\n\tconst elements = [...doc.querySelectorAll(selector)]\n\tconst nodes: ONode[] = elements.map(e => htmlElementToONode(e, filter, 1)).filter(e => e !== null)\n\treturn nodes\n}\nfunction childNodes(nodeId: string): ONode[] {\n\tconst node = ELEMENT_REGISTRY.get(nodeId)\n\tif (!isElementNode(node)) {\n\t\treturn []\n\t}\n\tconst children: ChildNode[] = []\n\tconst treeWalker = document.createTreeWalker(node)\n\tlet tmp: Node | null = treeWalker.firstChild();\n\twhile (tmp) {\n\t\tif (tmp.parentNode === node) {\n\t\t\tchildren.push(tmp as ChildNode)\n\t\t}\n\t\ttmp = treeWalker.nextSibling();\n\t}\n\n\treturn children.map(c => htmlElementToONode(c, ['attributes'], 0)).filter(e => e !== null)\n}\nfunction nodeType(element: Node): 'Element' | 'Text' | 'Comment' | 'Attribute' | 'Unknown' {\n\tswitch (element.nodeType) {\n\t\tcase Node.TEXT_NODE:\n\t\t\treturn 'Text'\n\t\tcase Node.ELEMENT_NODE:\n\t\t\treturn 'Element'\n\t\tcase Node.ATTRIBUTE_NODE:\n\t\t\treturn 'Attribute'\n\t\tcase Node.COMMENT_NODE:\n\t\t\treturn 'Comment'\n\t\tdefault:\n\t\t\treturn 'Unknown'\n\t}\n}\ntype Attributes = { name: string, value: string }[]\nfunction elementAttributes(element: Element): Attributes {\n\treturn [...element.attributes].map((attr) => {\n\t\treturn { name: attr.name, value: attr.value }\n\t})\n}\nfunction htmlElementToONode<T extends 'children' | 'classes' | 'style' | 'attributes'>(element: Node, filter?: Array<T>, recursiveLevel: number = 1): ONode | null {\n\tif (!element) {\n\t\treturn null\n\t}\n\tconst node: ONode = { uid: putInRegistry(element), tag: isElementNode(element) ? element.tagName.toLocaleLowerCase() : '', type: nodeType(element), isArray: false, objType: typeof element }\n\tconst fullFilter = filter ? new Set([...filter, 'attributes', 'classes']) : new Set(['attributes', 'classes'])\n\tif (isElementNode(element)) {\n\t\tfullFilter.forEach(f => {\n\t\t\tswitch (f) {\n\t\t\t\tcase 'attributes':\n\t\t\t\t\tnode.attributes = elementAttributes(element)\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'children':\n\t\t\t\t\tif (recursiveLevel > 0) {\n\t\t\t\t\t\tnode.children = [...element.children].map(c => htmlElementToONode(c, filter, recursiveLevel - 1)).filter(e => e !== null)\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'classes':\n\t\t\t\t\tnode.classes = [...element.classList]\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'style':\n\t\t\t\t\tnode.style = (element as HTMLElement)?.style.cssText\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t})\n\t}\n\tif (node.type === 'Text') {\n\t\tnode.textContent = element.textContent\n\t}\n\treturn node\n}\n/**\n * Create a new DOM element\n * @param tag The element tag name\n * @param props The attributes to set on the new created element\n * @returns a node instance\n */\nfunction createElement(tag: string, props: Record<string, string>): ONode | null {\n\tconst SVG_NS = \"http://www.w3.org/2000/svg\";\n\tconst SVG_TAGS = new Set([\n\t\t\"svg\", \"path\", \"circle\", \"rect\", \"line\", \"polyline\", \"polygon\",\n\t\t\"ellipse\", \"g\", \"defs\", \"marker\", \"clipPath\", \"mask\", \"text\", \"tspan\"\n\t]);\n\n\tconst isSvgTag = SVG_TAGS.has(tag);\n\n\t// Create element in the right namespace\n\tconst el = isSvgTag\n\t\t? document.createElementNS(SVG_NS, tag)\n\t\t: document.createElement(tag);\n\n\t// Apply props as attributes (works for both HTML and SVG)\n\tfor (const k in props) {\n\t\tel.setAttribute(k, props[k]);\n\t}\n\n\treturn htmlElementToONode(el);\n}\nfunction createComment(data: string) {\n\tconst el = document.createComment(data)\n\treturn htmlElementToONode(el)\n}\nfunction putInRegistry(element: any, elementId?: string): string {\n\n\tif (storedElementMap.has(element)) {\n\t\treturn storedElementMap.get(element)!\n\t}\n\tconst id = elementId ?? stringToHex(`${OBJECT_INDEX++}`.padStart(16, '0'))\n\tELEMENT_REGISTRY.set(id, element)\n\n\ttry {\n\t\tstoredElementMap.set(element, id)\n\t} catch (error) {\n\t\tconsole.error(error)\n\t}\n\treturn id\n}\nfunction removeFromRegistry(n: Node | string): void {\n\tlet node: any = n\n\tif (typeof n === 'string') {\n\t\tnode = ELEMENT_REGISTRY.get(n)\n\t\tif (!node) {\n\t\t\treturn\n\t\t}\n\t}\n\tif (storedElementMap.has(node)) {\n\t\tconst id = storedElementMap.get(node)!\n\t\tELEMENT_REGISTRY.delete(id)\n\t\tstoredElementMap.delete(node)\n\t\treturn\n\t}\n}\n\nfunction appendChild(nodeId: string, childId: string) {\n\tconst node = ELEMENT_REGISTRY.get(nodeId)\n\tconst child = ELEMENT_REGISTRY.get(childId)\n\tif (!node || !child) {\n\t\treturn\n\t}\n\tnode.appendChild(child)\n}\nfunction isElementNode(node: Node | null | undefined): node is HTMLElement {\n\treturn node === document || node?.nodeType === Node.ELEMENT_NODE\n}\nfunction setInnerText(nodeId: string, text: string) {\n\tconst node = ELEMENT_REGISTRY.get(nodeId)\n\tif (!isElementNode(node)) {\n\t\treturn\n\t}\n\tnode.innerText = text\n}\nfunction setContentText(nodeId: string, text: string) {\n\tconst node = ELEMENT_REGISTRY.get(nodeId)\n\tif (!node || isElementNode(node)) {\n\t\treturn\n\t}\n\tnode!.textContent = text\n}\nfunction getContentText(nodeId: string) {\n\tconst node = ELEMENT_REGISTRY.get(nodeId)\n\tif (!node || isElementNode(node)) {\n\t\treturn ''\n\t}\n\treturn node!.textContent\n}\n\nfunction removeClass(nodeId: string, ...tokens: string[]) {\n\tconst node = ELEMENT_REGISTRY.get(nodeId)\n\tif (!isElementNode(node)) {\n\t\treturn\n\t}\n\tnode.classList.remove(...tokens)\n}\nfunction addClass(nodeId: string, ...tokens: string[]) {\n\tconst node = ELEMENT_REGISTRY.get(nodeId)\n\tif (!isElementNode(node)) {\n\t\treturn\n\t}\n\tnode.classList.add(...tokens)\n\n}\n\nfunction getInnerText(nodeId: string): string {\n\tconst node = ELEMENT_REGISTRY.get(nodeId)\n\tif (!isElementNode(node)) {\n\t\treturn ''\n\t}\n\treturn node.innerText\n}\nfunction setStyle(nodeId: string, key: string, value: any) {\n\tconst node = ELEMENT_REGISTRY.get(nodeId)\n\tif (!isElementNode(node)) {\n\t\treturn\n\t}\n\tnode.style.setProperty(key, value)\n}\nfunction setAttribute(nodeId: string, name: string, value: string) {\n\tconst node = ELEMENT_REGISTRY.get(nodeId)\n\tif (!isElementNode(node)) {\n\t\treturn\n\t}\n\tnode.setAttribute(name, value)\n\treturn elementAttributes(node)\n}\nfunction removeAttribute(nodeId: string, name: string): Attributes {\n\tconst node = ELEMENT_REGISTRY.get(nodeId)\n\tif (!isElementNode(node)) {\n\t\treturn []\n\t}\n\tnode.removeAttribute(name)\n\treturn elementAttributes(node)\n}\nfunction getAttribte(nodeId: string, name: string): string {\n\tconst node = ELEMENT_REGISTRY.get(nodeId)\n\tif (!isElementNode(node)) {\n\t\treturn ''\n\t}\n\treturn node.getAttribute(name) ?? ''\n}\nfunction getAttribteNames(nodeId: string): string[] {\n\tconst node = ELEMENT_REGISTRY.get(nodeId)\n\tif (!isElementNode(node)) {\n\t\treturn []\n\t}\n\treturn node.getAttributeNames()\n}\nfunction cloneNode(nodeId: string, subtree: boolean): ONode | null {\n\tconst node = ELEMENT_REGISTRY.get(nodeId)\n\tif (!(node)) {\n\t\treturn null\n\t}\n\treturn htmlElementToONode(node.cloneNode(subtree))\n}\nfunction removeNode(nodeId: string): void {\n\tconst node = ELEMENT_REGISTRY.get(nodeId) as Element | null\n\tnode?.remove()\n}\nfunction removeChild(nodeId: string, childId: string): void {\n\tconst node = ELEMENT_REGISTRY.get(nodeId) as Element | null\n\tconst child = ELEMENT_REGISTRY.get(childId)\n\tif (!child) {\n\t\treturn\n\t}\n\tnode?.removeChild(child)\n}\nfunction replaceWith(nodeId: string, toReplaceId: string): void {\n\tconst node = ELEMENT_REGISTRY.get(nodeId)\n\tconst toReplace = ELEMENT_REGISTRY.get(toReplaceId)\n\t\t// if (!isElementNode(node) || !toReplace) {\n\t\t// \treturn\n\t\t// }\n\t\t; (node as any).replaceWith(toReplace)\n}\nfunction insertAfter(nodeId: string, toInsertId: string): void {\n\tconst node = ELEMENT_REGISTRY.get(nodeId)\n\tconst toInsert = ELEMENT_REGISTRY.get(toInsertId)\n\tif (!toInsert) {\n\t\treturn\n\t}\n\t; (node as any).after(toInsert)\n}\nfunction insertBefore(nodeId: string, childId: string, toInsertId: string): void {\n\tconst node = ELEMENT_REGISTRY.get(nodeId)\n\tconst child = ELEMENT_REGISTRY.get(childId)\n\tconst toInsert = ELEMENT_REGISTRY.get(toInsertId)\n\tif (!isElementNode(node) || !toInsert || !child) {\n\t\treturn\n\t}\n\tnode.insertBefore(toInsert, child)\n}\nfunction setInputValue(nodeId: string, value: string): void {\n\tconst node = ELEMENT_REGISTRY.get(nodeId)\n\tif (!isElementNode(node)) {\n\t\treturn\n\t}\n\t(node as HTMLInputElement | HTMLTextAreaElement).value = value\n}\nfunction inputValue(nodeId: string): string {\n\tconst node = ELEMENT_REGISTRY.get(nodeId)\n\tif (!isElementNode(node)) {\n\t\treturn ''\n\t}\n\treturn (node as HTMLInputElement | HTMLTextAreaElement).value\n}\n\nfunction attachEventListener(nodeId: string, cbId: string, eventName: string) {\n\tconst node = ELEMENT_REGISTRY.get(nodeId)\n\tif (!node) {\n\t\treturn\n\t}\n\tif ('addEventListener' in node) {\n\t\tconst cb = (e: Event) => {\n\t\t\tconst target = (e as any)?.target\n\t\t\temit(cbId, eventName, { target: target ? htmlElementToONode(target) : null })\n\t\t}\n\t\tDOM_EVENT_LISTENER.set(cbId, cb)\n\t\tnode.addEventListener(eventName, cb)\n\t}\n}\n\nfunction dettachEventListener(nodeId: string, cbId: string, eventName: string) {\n\tconst node = ELEMENT_REGISTRY.get(nodeId)\n\tif (!isElementNode(node)) {\n\t\treturn\n\t}\n\tconst cb = DOM_EVENT_LISTENER.get(cbId)\n\tif (cb) {\n\t\tDOM_EVENT_LISTENER.delete(cbId)\n\t\tnode.removeEventListener(eventName, cb)\n\t}\n}\nfunction injectComponentStyles(css: string) {\n\tconst styleEl = document.createElement('style')\n\tstyleEl.innerHTML = css\n\tdocument.head.appendChild(styleEl)\n\treturn htmlElementToONode(styleEl)\n}\nfunction rejectComponentStyles(styleId: string) {\n\tconst style = ELEMENT_REGISTRY.get(styleId)\n\tdocument.head.removeChild(style)\n}\n\nfunction replaceChildNode(parentId: string, nodeId: string, toReplaceId: string): void {\n\tconst parent = ELEMENT_REGISTRY.get(parentId)\n\tconst node = ELEMENT_REGISTRY.get(nodeId)\n\tconst toReplace = ELEMENT_REGISTRY.get(toReplaceId)\n\tif (!isElementNode(parent) || !node || !toReplace) {\n\t\treturn\n\t}\n\tparent.replaceChild(node, toReplace)\n}\nfunction parentNode(nodeId: string): ONode | null {\n\tconst node = ELEMENT_REGISTRY.get(nodeId)\n\tif (!node) {\n\t\treturn null\n\t}\n\treturn htmlElementToONode(node.parentNode as Node)\n}\nfunction nextSibling(nodeId: string): ONode | null {\n\tconst node = ELEMENT_REGISTRY.get(nodeId)\n\tif (!node) {\n\t\treturn null\n\t}\n\treturn htmlElementToONode((node as Element).nextSibling as Node)\n}\nfunction arrayBufferToBase64(buffer: Uint8Array) {\n const binary = String.fromCharCode(...buffer);\n return btoa(binary);\n}\nasync function httpFetch(url: string, data: { method: string, headers: Record<string, string>, body: any, credentials: \"include\" | \"omit\" | \"same-origin\"}, encodeAs?: 'json' | 'base64' | 'text'): Promise<any> {\n\tconst result = await fetch(url, data)\n\tswitch(encodeAs) {\n\t\tcase 'text':\n\t\treturn await result.text()\n\t\tcase 'base64':\n\t\t\treturn arrayBufferToBase64(await result.bytes())\n\t\tdefault: \n\t\treturn await result.json()\n\t}\n}\n\n\n\nfunction setInnerHTML(nodeId: string, html: string) {\n\tconst node = ELEMENT_REGISTRY.get(nodeId)\n\tif (!isElementNode(node)) {\n\t\treturn\n\t}\n\tnode.innerHTML = html\n}\nfunction getInnerHTML(nodeId: string): string {\n\tconst node = ELEMENT_REGISTRY.get(nodeId)\n\tif (!isElementNode(node)) {\n\t\treturn ''\n\t}\n\treturn node.innerHTML\n}\n\nfunction invokeObjectMethod(id: string, fn: string, ...args: any[]): any {\n\tconst node = ELEMENT_REGISTRY.get(id)\n\tif (!node) {\n\t\treturn null\n\t}\n\tconst tmp = getAdvanceObjectProperty(node, fn)\n\tif (!tmp) {\n\t\treturn null\n\t}\n\tconst [method, target] = tmp\n\treturn (method as Function).apply(target, args)\n}\nfunction getObjectProperty(id: string, name: string): any {\n\tconst node = ELEMENT_REGISTRY.get(id)\n\tif (!node) {\n\t\treturn null\n\t}\n\tconst tmp = getAdvanceObjectProperty(node, name)\n\tif (tmp) {\n\t\treturn tmp[0]\n\t}\n\treturn null\n}\nfunction getAdvanceObjectProperty(obj: any, path: string): [any, any] | null {\n\tconst els = path.split('.')\n\tlet current: any = obj\n\tlet target: any = obj\n\tfor (let i = 0; i < els.length; i++) {\n\t\tconst el = els[i]\n\t\tif (!(el in current)) {\n\t\t\treturn null\n\t\t}\n\t\ttarget = current\n\t\tcurrent = current[el]\n\t}\n\treturn [current, target]\n}\nfunction setAdvanceObjectProperty(obj: any, path: string, value: any): void {\n\tconst els = path.split('.')\n\n\tlet current: any = obj\n\tfor (let i = 0; i < els.length - 1; i++) {\n\t\tconst el = els[i]\n\t\tif (!(el in current)) {\n\t\t\treturn\n\t\t}\n\t\tcurrent = current[el]\n\t}\n\tconst k = els[els.length - 1]\n\tcurrent[k] = value\n}\nfunction setObjectProperty(id: string, name: string, value: any): void {\n\tconst node = ELEMENT_REGISTRY.get(id)\n\tif (!node) {\n\t\treturn\n\t}\n\tsetAdvanceObjectProperty(node, name, value)\n}\nexport declare var NativeOUID: { invoke: (id: string, fn: string, argsJson: string) => void } | undefined\n\nconst listeners = new Map<string, ((id: string, fn: string, argJson: string) => void)[]>()\n\nexport function emit(id: string, ...args: any[]): void {\n\tNativeOUID?.invoke(id, '__ouid_web_event__', JSON.stringify(args))\n}\nfunction subscribe(event: string, callback: (id: string, fnName: string, argsJson: string) => void): void {\n\tif (!listeners.has(event)) {\n\t\tlisteners.set(event, []);\n\t\t// attach a single handler for native -> JS calls\n\t\t(window as any)[event] = (id: string, fnName: string, argsJson: string) => {\n\t\t\tlisteners.get(event)?.forEach(cb => cb(id, fnName, argsJson))\n\t\t}\n\t}\n\tlisteners.get(event)!.push(callback)\n}\nfunction releaseNode(nodeId: string): void {\n\t// remove node from ELEMENT_REGISTRY\n\tremoveFromRegistry(nodeId)\n}\nfunction locationPath(): string {\n\treturn window.location.pathname\n}\nfunction historyPushState(data: any, path: string): void {\n\twindow.history.pushState(data, '', path)\n}\nfunction dispatchPopStateEvent(): void {\n\twindow.dispatchEvent(new PopStateEvent('popstate', { state: window.history.state }))\n}\nfunction dispatchEvent(id: string, eventName: string, eventClass?: string, initDict?: any): void {\n\tconst obj = ELEMENT_REGISTRY.get(id)\n\tif (!obj) {\n\t\treturn\n\t}\n\tif ('dispatchEvent' in obj) {\n\t\tconst event = eventClass ? new window[eventClass as keyof Window](eventName, initDict) : new CustomEvent(eventName, initDict)\n\t\tobj.dispatchEvent(event)\n\t}\n}\nfunction asOObject(obj: any, id: string): OObject {\n\treturn {\n\t\ttag: id.split(/\\s/)[0],\n\t\tuid: id,\n\t\tobjType: typeof obj,\n\t\tisArray: Array.isArray(obj)\n\t}\n}\nfunction getOObject(id: string): OObject | null {\n\tconst obj = ELEMENT_REGISTRY.get(id)\n\tif (!obj) {\n\t\treturn null\n\t}\n\treturn asOObject(obj, id)\n}\nfunction acquireObject(name: string): OObject | null {\n\tconst obj = window[name as keyof Window]\n\tif (!obj) {\n\t\treturn null\n\t}\n\tconst objId = putInRegistry(obj, name)\n\treturn asOObject(obj, objId)\n}\nfunction addSetTimeout(cbId: string, delay: number): number {\n\tconst cb = () => {\n\t\temit(cbId)\n\t}\n\treturn setTimeout(cb, delay) as any\n}\nfunction addSetInterval(cbId: string, delay: number): number {\n\tconst cb = () => {\n\t\temit(cbId)\n\t}\n\treturn setInterval(cb, delay) as any\n}\nfunction removeSetTimeout(timerId: number): void {\n\tclearTimeout(timerId)\n}\n\nfunction removeSetInterval(timerId: number): void {\n\tclearInterval(timerId)\n}\ndeclare const __WEB_OUID_EMULATION__: boolean;\nexport function initDOM(): void {\n\tif (__WEB_OUID_EMULATION__) {\n\t\t; (globalThis as any).__OUI_PUR_JS_CONTEXT__ = true\n\t\t\t; (window as any).NativeOUID = (window as any).NativeOUID ?? {\n\t\t\t\tinvoke: (id: string, fn: string, argsJson: string) => {\n\t\t\t\t\t(window as any)[`${fn}`](id, argsJson)\n\t\t\t\t}\n\t\t\t}\n\t\t\t; (window as any).WebOUID = (window as any).WebOUID ?? {\n\t\t\t\tinvoke: async (id: string, fn: string, argsJson: string) => {\n\t\t\t\t\t(window as any)[`__native_message__`](id, fn, argsJson)\n\t\t\t\t}\n\t\t\t}\n\t}\n\tconst observer = new MutationObserver(function (mutations) {\n\t\tmutations.forEach(mutation => {\n\t\t\tmutation.removedNodes.forEach(node => {\n\t\t\t\tif (node.nodeType === Node.ELEMENT_NODE) {\n\t\t\t\t\t// removeFromRegistry(node as Element)\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\t});\n\tputInRegistry(document, 'document');\n\tputInRegistry(window, 'window');\n\t(window as any)._ouid_query = query;\n\t(window as any)._ouid_queryAll = queryAll;\n\t(window as any)._ouid_createElement = createElement;\n\t(window as any)._ouid_createComment = createComment;\n\t(window as any)._ouid_invokeObjectMethod = invokeObjectMethod;\n\t(window as any)._ouid_getObjectProperty = getObjectProperty;\n\t(window as any)._ouid_setObjectProperty = setObjectProperty;\n\t(window as any)._ouid_appendChild = appendChild;\n\t(window as any)._ouid_addClass = addClass;\n\t(window as any)._ouid_removeClass = removeClass;\n\t(window as any)._ouid_setInnerHTML = setInnerHTML;\n\t(window as any)._ouid_getInnerHTML = getInnerHTML;\n\t(window as any)._ouid_setInnerText = setInnerText;\n\t(window as any)._ouid_getInnerText = getInnerText;\n\t(window as any)._ouid_setContentText = setContentText;\n\t(window as any)._ouid_getContentText = getContentText;\n\t(window as any)._ouid_setAttribute = setAttribute;\n\t(window as any)._ouid_removeAttribute = removeAttribute;\n\t(window as any)._ouid_getAttribte = getAttribte;\n\t(window as any)._ouid_getAttribteNames = getAttribteNames;\n\t(window as any)._ouid_childNodes = childNodes;\n\t(window as any)._ouid_cloneNode = cloneNode;\n\t(window as any)._ouid_removeNode = removeNode;\n\t(window as any)._ouid_removeChild = removeChild;\n\t(window as any)._ouid_replaceChildNode = replaceChildNode;\n\t(window as any)._ouid_replaceNode = replaceWith;\n\t(window as any)._ouid_insertAfter = insertAfter;\n\t(window as any)._ouid_insertBefore = insertBefore;\n\t(window as any)._ouid_setInputValue = setInputValue;\n\t(window as any)._ouid_inputValue = inputValue;\n\t(window as any)._ouid_attachEventListener = attachEventListener;\n\t(window as any)._ouid_dettachEventListener = dettachEventListener;\n\t(window as any)._ouid_injectComponentStyles = injectComponentStyles;\n\t(window as any)._ouid_rejectComponentStyles = rejectComponentStyles;\n\t(window as any)._ouid_locationPath = locationPath;\n\t(window as any)._ouid_historyPushState = historyPushState;\n\t(window as any)._ouid_dispatchPopStateEvent = dispatchPopStateEvent;\n\t(window as any)._ouid_parentNode = parentNode;\n\t(window as any)._ouid_releaseNode = releaseNode;\n\t(window as any)._ouid_getOObject = getOObject;\n\t(window as any)._ouid_acquireObject = acquireObject;\n\t(window as any)._ouid_dispatchEvent = dispatchEvent;\n\t(window as any)._ouid_setTimeout = addSetTimeout;\n\t(window as any)._ouid_clearTimeout = removeSetTimeout;\n\t(window as any)._ouid_dsetInterval = addSetInterval;\n\t(window as any)._ouid_clearInterval = removeSetInterval;\n\t(window as any)._ouid_setStyle = setStyle;\n\t(window as any)._ouid_nextSibling = nextSibling;\n\t(window as any)._ouid_fetch = httpFetch;\n\t(window as any)._ouid_alert = alert;\n\t(window as any)._ouid_prompt = prompt;\n\tobserver.observe(document.body, { childList: true, subtree: true });\n\tsubscribe('__native_message__', async (id, fnName: string, argsJson: string) => {\n\t\tconst fn = (window as any)[fnName]\n\t\tif (!fn) {\n\t\t\tNativeOUID?.invoke(id, '__ouid_native_event_error__', JSON.stringify({ 'message': 'No function match the given name: (' + fnName + ')' }))\n\t\t\treturn\n\t\t}\n\t\tconst result = await (fn as Function)(...(JSON.parse(argsJson) as Array<any>))\n\t\tNativeOUID?.invoke(id, '__ouid_native_event_success__', JSON.stringify([{ status: 'success', data: result }]))\n\t});\n}\n\n"]}
1
+ {"version":3,"sources":["../../src/dom/dom.ts"],"names":["stringToHex","str","hexString","i","length","hex","charCodeAt","toString","ELEMENT_REGISTRY","Map","storedElementMap","WeakMap","OBJECT_INDEX","DOM_EVENT_LISTENER","query","selector","filter","nodeId","doc","get","document","isElementNode","element","querySelector","htmlElementToONode","queryAll","querySelectorAll","map","e","childNodes","node","children","treeWalker","createTreeWalker","tmp","firstChild","parentNode","push","nextSibling","c","nodeType","Node","TEXT_NODE","ELEMENT_NODE","ATTRIBUTE_NODE","COMMENT_NODE","elementAttributes","attributes","attr","name","value","recursiveLevel","uid","putInRegistry","tag","tagName","toLocaleLowerCase","type","isArray","objType","fullFilter","Set","forEach","f","classes","classList","style","cssText","textContent","createElement","props","el","has","createElementNS","k","setAttribute","createComment","data","elementId","id","padStart","set","error","console","removeFromRegistry","n","obj","cleanupRegistryForNode","delete","root","stack","pop","cleanupDomListenersForNode","cbId","entry","target","contains","removeEventListener","handler","appendChild","childId","child","setInnerText","text","innerText","setContentText","getContentText","removeClass","tokens","remove","addClass","add","getInnerText","setStyle","key","setProperty","removeAttribute","getAttribte","getAttribute","getAttribteNames","getAttributeNames","cloneNode","subtree","removeNode","removeChild","replaceWith","toReplaceId","toReplace","insertAfter","toInsertId","toInsert","after","insertBefore","setInputValue","inputValue","applyControl","preventDefault","stopImmediatePropagation","stopPropagation","computeOffsets","t","offsetX","offsetY","getBoundingClientRect","r","clientX","left","clientY","top","serializeEvent","base","timeStamp","bubbles","cancelable","composed","mods","altKey","ctrlKey","metaKey","shiftKey","MouseEvent","Object","assign","x","y","pageX","pageY","screenX","screenY","movementX","movementY","button","buttons","PointerEvent","pointerId","width","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","WheelEvent","deltaX","deltaY","deltaZ","deltaMode","KeyboardEvent","code","repeat","location","isComposing","FocusEvent","TouchEvent","mapTouch","__name","identifier","radiusX","radiusY","rotationAngle","force","touches","Array","from","changedTouches","targetTouches","targetNode","currentTargetNode","currentTarget","relatedTarget","__eventClass__","attachEventListener","eventName","options","policy","addEventListener","payload","alwaysPreventDefault","alwaysStopImmediatePropagation","alwaysStopPropagation","emit","dettachEventListener","injectComponentStyles","css","styleEl","innerHTML","head","rejectComponentStyles","styleId","replaceChildNode","parentId","parent","replaceChild","arrayBufferToBase64","buffer","binary","String","fromCharCode","btoa","httpFetch","url","encodeAs","result","fetch","bytes","json","setInnerHTML","html","getInnerHTML","invokeObjectMethod","fn","args","getAdvanceObjectProperty","method","apply","invokeObjectMethodAndHold","res","getObjectProperty","path","els","split","current","setAdvanceObjectProperty","setObjectProperty","listeners","NativeOUID","invoke","JSON","stringify","subscribe","event","callback","window","fnName","argsJson","cb","releaseNode","locationPath","pathname","historyPushState","history","pushState","dispatchPopStateEvent","dispatchEvent","PopStateEvent","state","eventClass","initDict","CustomEvent","asOObject","getOObject","acquireObject","objId","newObject","ctr","Ctr","instance","addSetTimeout","delay","setTimeout","addSetInterval","setInterval","removeSetTimeout","timerId","clearTimeout","removeSetInterval","clearInterval","initDOM","__WEB_OUID_EMULATION__","globalThis","__OUI_PUR_JS_CONTEXT__","WebOUID","_ouid_query","_ouid_queryAll","_ouid_createElement","_ouid_createComment","_ouid_invokeObjectMethod","_ouid_invokeObjectMethodAndHold","_ouid_getObjectProperty","_ouid_setObjectProperty","_ouid_appendChild","_ouid_addClass","_ouid_removeClass","_ouid_setInnerHTML","_ouid_getInnerHTML","_ouid_setInnerText","_ouid_getInnerText","_ouid_setContentText","_ouid_getContentText","_ouid_setAttribute","_ouid_removeAttribute","_ouid_getAttribte","_ouid_getAttribteNames","_ouid_childNodes","_ouid_cloneNode","_ouid_removeNode","_ouid_removeChild","_ouid_replaceChildNode","_ouid_replaceNode","_ouid_insertAfter","_ouid_insertBefore","_ouid_setInputValue","_ouid_inputValue","_ouid_attachEventListener","_ouid_dettachEventListener","_ouid_injectComponentStyles","_ouid_rejectComponentStyles","_ouid_locationPath","_ouid_historyPushState","_ouid_dispatchPopStateEvent","_ouid_parentNode","_ouid_releaseNode","_ouid_getOObject","_ouid_acquireObject","_ouid_newObject","_ouid_dispatchEvent","_ouid_setTimeout","_ouid_clearTimeout","_ouid_dsetInterval","_ouid_clearInterval","_ouid_setStyle","_ouid_nextSibling","_ouid_fetch","_ouid_alert","alert","_ouid_prompt","prompt","parse","status"],"mappings":"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","file":"dom.js","sourcesContent":["export function stringToHex(str: string): string {\n let hexString = '';\n for (let i = 0; i < str.length; i++) {\n const charCode = str.charCodeAt(i);\n let hex = charCode.toString(16);\n hex = hex.length === 1 ? '0' + hex : hex;\n hexString += hex;\n }\n return hexString;\n}\ntype EventControl = {\n preventDefault?: boolean;\n stopPropagation?: boolean;\n stopImmediatePropagation?: boolean;\n};\n\ntype OObject = { uid: string, objType: string, tag: string, isArray: boolean }\nexport type ONode = OObject & { textContent?: string | null, type: 'Element' | 'Text' | 'Comment' | 'Attribute' | 'Unknown', attributes?: { name: string, value: string }[], children?: ONode[], classes?: string[], style?: string }\nexport const ELEMENT_REGISTRY = new Map<string, any>()\nconst storedElementMap = new WeakMap<Node, string>()\nlet OBJECT_INDEX = 0\ntype DomListenerEntry = {\n target: EventTarget;\n type: string;\n handler: (e: Event) => void;\n options?: boolean | AddEventListenerOptions;\n};\n\nconst DOM_EVENT_LISTENER = new Map<string, DomListenerEntry>()\n/**\n * Query a dom element and store it in ELEMENT_REGISTRY for usage in js engine\n * @param selector \n */\nfunction query<T extends 'children' | 'classes' | 'style' | 'attributes'>(selector: string, filter?: T[], nodeId?: string): ONode | null {\n const doc = nodeId ? ELEMENT_REGISTRY.get(nodeId) : document\n if (!isElementNode(doc)) {\n return null\n }\n const element = doc.querySelector(selector)\n if (!element) {\n return null\n }\n return htmlElementToONode(element, filter, 1)\n}\nfunction queryAll<T extends 'children' | 'classes' | 'style' | 'attributes'>(selector: string, filter?: T[], nodeId?: string): ONode[] {\n const doc = nodeId ? ELEMENT_REGISTRY.get(nodeId) : document\n if (!isElementNode(doc)) {\n return []\n }\n const elements = [...doc.querySelectorAll(selector)]\n const nodes: ONode[] = elements.map(e => htmlElementToONode(e, filter, 1)).filter(e => e !== null)\n return nodes\n}\nfunction childNodes(nodeId: string): ONode[] {\n const node = ELEMENT_REGISTRY.get(nodeId)\n if (!isElementNode(node)) {\n return []\n }\n const children: ChildNode[] = []\n const treeWalker = document.createTreeWalker(node)\n let tmp: Node | null = treeWalker.firstChild();\n while (tmp) {\n if (tmp.parentNode === node) {\n children.push(tmp as ChildNode)\n }\n tmp = treeWalker.nextSibling();\n }\n\n return children.map(c => htmlElementToONode(c, ['attributes'], 0)).filter(e => e !== null)\n}\nfunction nodeType(element: Node): 'Element' | 'Text' | 'Comment' | 'Attribute' | 'Unknown' {\n switch (element.nodeType) {\n case Node.TEXT_NODE:\n return 'Text'\n case Node.ELEMENT_NODE:\n return 'Element'\n case Node.ATTRIBUTE_NODE:\n return 'Attribute'\n case Node.COMMENT_NODE:\n return 'Comment'\n default:\n return 'Unknown'\n }\n}\ntype Attributes = { name: string, value: string }[]\nfunction elementAttributes(element: Element): Attributes {\n return [...element.attributes].map((attr) => {\n return { name: attr.name, value: attr.value }\n })\n}\nfunction htmlElementToONode<T extends 'children' | 'classes' | 'style' | 'attributes'>(element: Node, filter?: Array<T>, recursiveLevel: number = 1): ONode | null {\n if (!element) {\n return null\n }\n const node: ONode = { uid: putInRegistry(element), tag: isElementNode(element) ? element.tagName.toLocaleLowerCase() : '', type: nodeType(element), isArray: false, objType: typeof element }\n const fullFilter = filter ? new Set([...filter, 'attributes', 'classes']) : new Set(['attributes', 'classes'])\n if (isElementNode(element)) {\n fullFilter.forEach(f => {\n switch (f) {\n case 'attributes':\n node.attributes = elementAttributes(element)\n break;\n case 'children':\n if (recursiveLevel > 0) {\n node.children = [...element.children].map(c => htmlElementToONode(c, filter, recursiveLevel - 1)).filter(e => e !== null)\n }\n break;\n case 'classes':\n node.classes = [...element.classList]\n break;\n case 'style':\n node.style = (element as HTMLElement)?.style.cssText\n break;\n }\n })\n }\n if (node.type === 'Text') {\n node.textContent = element.textContent\n }\n return node\n}\n/**\n * Create a new DOM element\n * @param tag The element tag name\n * @param props The attributes to set on the new created element\n * @returns a node instance\n */\nfunction createElement(tag: string, props: Record<string, string>): ONode | null {\n const SVG_NS = \"http://www.w3.org/2000/svg\";\n const SVG_TAGS = new Set([\n \"svg\", \"path\", \"circle\", \"rect\", \"line\", \"polyline\", \"polygon\",\n \"ellipse\", \"g\", \"defs\", \"marker\", \"clipPath\", \"mask\", \"text\", \"tspan\"\n ]);\n\n const isSvgTag = SVG_TAGS.has(tag);\n\n // Create element in the right namespace\n const el = isSvgTag\n ? document.createElementNS(SVG_NS, tag)\n : document.createElement(tag);\n\n // Apply props as attributes (works for both HTML and SVG)\n for (const k in props) {\n el.setAttribute(k, props[k]);\n }\n\n return htmlElementToONode(el);\n}\nfunction createComment(data: string) {\n const el = document.createComment(data)\n return htmlElementToONode(el)\n}\nfunction putInRegistry(element: any, elementId?: string): string {\n\n if (storedElementMap.has(element)) {\n return storedElementMap.get(element)!\n }\n const id = elementId ?? stringToHex(`${OBJECT_INDEX++}`.padStart(16, '0'))\n ELEMENT_REGISTRY.set(id, element)\n\n try {\n storedElementMap.set(element, id)\n } catch (error) {\n console.error(error)\n }\n return id\n}\nfunction removeFromRegistry(n: Node | string): void {\n if (typeof n === 'string') {\n const obj = ELEMENT_REGISTRY.get(n);\n if (obj instanceof Node) {\n cleanupRegistryForNode(obj);\n } else {\n // Non-DOM object\n ELEMENT_REGISTRY.delete(n);\n }\n return;\n }\n\n // n is a DOM Node\n cleanupRegistryForNode(n);\n}\n\nfunction cleanupRegistryForNode(root: Node): void {\n const stack: Node[] = [root];\n\n while (stack.length) {\n const node = stack.pop()!;\n cleanupDomListenersForNode(node);\n\n const id = storedElementMap.get(node);\n if (id) {\n ELEMENT_REGISTRY.delete(id);\n storedElementMap.delete(node);\n }\n\n const children = node.childNodes;\n for (let i = 0; i < children.length; i++) {\n stack.push(children[i]);\n }\n }\n}\n\nfunction cleanupDomListenersForNode(root: Node): void {\n for (const [cbId, entry] of DOM_EVENT_LISTENER) {\n const target = entry.target;\n if (\n target === root ||\n (target instanceof Node && root.contains(target))\n ) {\n target.removeEventListener(entry.type, entry.handler);\n DOM_EVENT_LISTENER.delete(cbId);\n }\n }\n}\n\nfunction appendChild(nodeId: string, childId: string) {\n const node = ELEMENT_REGISTRY.get(nodeId)\n const child = ELEMENT_REGISTRY.get(childId)\n if (!node || !child) {\n return\n }\n node.appendChild(child)\n}\nfunction isElementNode(node: Node | null | undefined): node is HTMLElement {\n return node === document || node?.nodeType === Node.ELEMENT_NODE\n}\nfunction setInnerText(nodeId: string, text: string) {\n const node = ELEMENT_REGISTRY.get(nodeId)\n if (!isElementNode(node)) {\n return\n }\n node.innerText = text\n}\nfunction setContentText(nodeId: string, text: string) {\n const node = ELEMENT_REGISTRY.get(nodeId)\n if (!node || isElementNode(node)) {\n return\n }\n node!.textContent = text\n}\nfunction getContentText(nodeId: string) {\n const node = ELEMENT_REGISTRY.get(nodeId)\n if (!node || isElementNode(node)) {\n return ''\n }\n return node!.textContent\n}\n\nfunction removeClass(nodeId: string, ...tokens: string[]) {\n const node = ELEMENT_REGISTRY.get(nodeId)\n if (!isElementNode(node)) {\n return\n }\n node.classList.remove(...tokens)\n}\nfunction addClass(nodeId: string, ...tokens: string[]) {\n const node = ELEMENT_REGISTRY.get(nodeId)\n if (!isElementNode(node)) {\n return\n }\n node.classList.add(...tokens)\n\n}\n\nfunction getInnerText(nodeId: string): string {\n const node = ELEMENT_REGISTRY.get(nodeId)\n if (!isElementNode(node)) {\n return ''\n }\n return node.innerText\n}\nfunction setStyle(nodeId: string, key: string, value: any) {\n const node = ELEMENT_REGISTRY.get(nodeId)\n if (!isElementNode(node)) {\n return\n }\n node.style.setProperty(key, value)\n}\nfunction setAttribute(nodeId: string, name: string, value: string) {\n const node = ELEMENT_REGISTRY.get(nodeId)\n if (!isElementNode(node)) {\n return\n }\n node.setAttribute(name, value)\n return elementAttributes(node)\n}\nfunction removeAttribute(nodeId: string, name: string): Attributes {\n const node = ELEMENT_REGISTRY.get(nodeId)\n if (!isElementNode(node)) {\n return []\n }\n node.removeAttribute(name)\n return elementAttributes(node)\n}\nfunction getAttribte(nodeId: string, name: string): string {\n const node = ELEMENT_REGISTRY.get(nodeId)\n if (!isElementNode(node)) {\n return ''\n }\n return node.getAttribute(name) ?? ''\n}\nfunction getAttribteNames(nodeId: string): string[] {\n const node = ELEMENT_REGISTRY.get(nodeId)\n if (!isElementNode(node)) {\n return []\n }\n return node.getAttributeNames()\n}\nfunction cloneNode(nodeId: string, subtree: boolean): ONode | null {\n const node = ELEMENT_REGISTRY.get(nodeId)\n if (!(node)) {\n return null\n }\n return htmlElementToONode(node.cloneNode(subtree))\n}\nfunction removeNode(nodeId: string): void {\n const node = ELEMENT_REGISTRY.get(nodeId) as Element | null\n node?.remove()\n}\nfunction removeChild(nodeId: string, childId: string): void {\n const node = ELEMENT_REGISTRY.get(nodeId) as Element | null\n const child = ELEMENT_REGISTRY.get(childId)\n if (!child) {\n return\n }\n node?.removeChild(child)\n}\nfunction replaceWith(nodeId: string, toReplaceId: string): void {\n const node = ELEMENT_REGISTRY.get(nodeId)\n const toReplace = ELEMENT_REGISTRY.get(toReplaceId)\n // if (!isElementNode(node) || !toReplace) {\n // \treturn\n // }\n ; (node as Element).replaceWith(toReplace)\n}\nfunction insertAfter(nodeId: string, toInsertId: string): void {\n const node = ELEMENT_REGISTRY.get(nodeId)\n const toInsert = ELEMENT_REGISTRY.get(toInsertId)\n if (!toInsert) {\n return\n }\n ; (node as Element).after(toInsert)\n}\nfunction insertBefore(nodeId: string, childId: string, toInsertId: string): void {\n const node = ELEMENT_REGISTRY.get(nodeId)\n const child = ELEMENT_REGISTRY.get(childId)\n const toInsert = ELEMENT_REGISTRY.get(toInsertId)\n if (!isElementNode(node) || !toInsert || !child) {\n return\n }\n node.insertBefore(toInsert, child)\n}\nfunction setInputValue(nodeId: string, value: string): void {\n const node = ELEMENT_REGISTRY.get(nodeId)\n if (!isElementNode(node)) {\n return\n }\n (node as HTMLInputElement | HTMLTextAreaElement).value = value\n}\nfunction inputValue(nodeId: string): string {\n const node = ELEMENT_REGISTRY.get(nodeId)\n if (!isElementNode(node)) {\n return ''\n }\n return (node as HTMLInputElement | HTMLTextAreaElement).value\n}\n\n\nfunction applyControl(e: Event, c?: EventControl) {\n if (!c) return;\n if (c.preventDefault) e.preventDefault();\n if (c.stopImmediatePropagation && 'stopImmediatePropagation' in e) {\n (e as any).stopImmediatePropagation();\n } else if (c.stopPropagation) {\n e.stopPropagation();\n }\n}\n\n\nfunction computeOffsets(e: MouseEvent, t: EventTarget | null) {\n let offsetX = (e as any).offsetX as number | undefined;\n let offsetY = (e as any).offsetY as number | undefined;\n\n // Cross-browser / SVG fallback (Firefox/SVG often lacks offsetX/Y)\n if ((offsetX == null || offsetY == null) && t && (t as any).getBoundingClientRect) {\n const el = t as Element;\n const r = el.getBoundingClientRect();\n offsetX = e.clientX - r.left;\n offsetY = e.clientY - r.top;\n }\n return { offsetX, offsetY };\n}\n\nfunction serializeEvent(e: Event) {\n const base: any = {\n type: e.type,\n timeStamp: e.timeStamp,\n bubbles: e.bubbles,\n cancelable: e.cancelable,\n composed: e.composed,\n };\n\n // Common modifier keys if present\n const mods: any = {\n altKey: (e as any).altKey ?? false,\n ctrlKey: (e as any).ctrlKey ?? false,\n metaKey: (e as any).metaKey ?? false,\n shiftKey: (e as any).shiftKey ?? false,\n };\n\n // Mouse / Pointer\n if (e instanceof MouseEvent) {\n const { offsetX, offsetY } = computeOffsets(e, e.target);\n Object.assign(base, {\n x: (e as any).x, y: (e as any).y,\n clientX: e.clientX, clientY: e.clientY,\n pageX: e.pageX, pageY: e.pageY,\n screenX: e.screenX, screenY: e.screenY,\n movementX: (e as any).movementX, movementY: (e as any).movementY,\n button: e.button, buttons: e.buttons,\n offsetX, offsetY,\n });\n }\n\n // PointerEvent (if available)\n // eslint-disable-next-line no-undef\n if (typeof PointerEvent !== 'undefined' && e instanceof PointerEvent) {\n Object.assign(base, {\n pointerId: e.pointerId,\n width: e.width, height: e.height,\n pressure: e.pressure, tangentialPressure: (e as any).tangentialPressure,\n tiltX: e.tiltX, tiltY: e.tiltY, twist: (e as any).twist,\n pointerType: e.pointerType, isPrimary: e.isPrimary,\n });\n }\n\n // Wheel\n if (typeof WheelEvent !== 'undefined' && e instanceof WheelEvent) {\n Object.assign(base, {\n deltaX: e.deltaX, deltaY: e.deltaY, deltaZ: e.deltaZ, deltaMode: e.deltaMode,\n });\n }\n\n // Keyboard\n if (e instanceof KeyboardEvent) {\n Object.assign(base, {\n key: e.key, code: e.code, repeat: e.repeat, location: e.location, isComposing: e.isComposing,\n });\n }\n\n // Focus\n if (e instanceof FocusEvent) {\n Object.assign(base, {\n // relatedTarget gets serialized as a node id below\n });\n }\n\n // Touch\n if (typeof TouchEvent !== 'undefined' && e instanceof TouchEvent) {\n const mapTouch = (t: Touch) => ({\n identifier: t.identifier,\n clientX: t.clientX, clientY: t.clientY,\n pageX: t.pageX, pageY: t.pageY,\n screenX: t.screenX, screenY: t.screenY,\n radiusX: (t as any).radiusX, radiusY: (t as any).radiusY,\n rotationAngle: (t as any).rotationAngle, force: (t as any).force,\n });\n Object.assign(base, {\n touches: Array.from(e.touches).map(mapTouch),\n changedTouches: Array.from(e.changedTouches).map(mapTouch),\n targetTouches: Array.from(e.targetTouches).map(mapTouch),\n });\n }\n\n const targetNode = (e.target instanceof Node) ? htmlElementToONode(e.target) : null;\n const currentTargetNode = (e.currentTarget instanceof Node) ? htmlElementToONode(e.currentTarget) : null;\n const relatedTarget = (e as any).relatedTarget instanceof Node ? htmlElementToONode((e as any).relatedTarget) : null;\n\n return {\n ...base,\n ...mods,\n target: targetNode,\n currentTarget: currentTargetNode,\n relatedTarget,\n // Keep original type name handy for the bridge side if needed\n __eventClass__: e.constructor ? e.constructor.name : 'Event',\n };\n}\n\n\nfunction attachEventListener(nodeId: string,\n cbId: string,\n eventName: string,\n options?: boolean | AddEventListenerOptions,\n policy?: { alwaysPreventDefault?: boolean; alwaysStopPropagation?: boolean; alwaysStopImmediatePropagation?: boolean }\n ) {\n const node = ELEMENT_REGISTRY.get(nodeId) as EventTarget | undefined;\n if (!node || typeof (node as any).addEventListener !== 'function') return;\n\n const handler = (e: Event) => {\n const payload = serializeEvent(e);\n if (policy) {\n applyControl(e, {\n preventDefault: policy.alwaysPreventDefault,\n stopImmediatePropagation: policy.alwaysStopImmediatePropagation,\n stopPropagation: policy.alwaysStopPropagation\n });\n }\n emit(cbId, eventName, payload); // no native Event escapes across the bridge\n };\n\n DOM_EVENT_LISTENER.set(cbId, { target: node, type: eventName, handler, options });\n (node as any).addEventListener(eventName, handler, options);\n}\n\nfunction dettachEventListener(nodeId: string, cbId: string) {\n const entry = DOM_EVENT_LISTENER.get(cbId);\n if (!entry) return;\n DOM_EVENT_LISTENER.delete(cbId);\n entry.target.removeEventListener(entry.type, entry.handler);\n}\nfunction injectComponentStyles(css: string) {\n const styleEl = document.createElement('style')\n styleEl.innerHTML = css\n document.head.appendChild(styleEl)\n return htmlElementToONode(styleEl)\n}\nfunction rejectComponentStyles(styleId: string) {\n const style = ELEMENT_REGISTRY.get(styleId)\n document.head.removeChild(style)\n}\n\nfunction replaceChildNode(parentId: string, nodeId: string, toReplaceId: string): void {\n const parent = ELEMENT_REGISTRY.get(parentId)\n const node = ELEMENT_REGISTRY.get(nodeId)\n const toReplace = ELEMENT_REGISTRY.get(toReplaceId)\n if (!isElementNode(parent) || !node || !toReplace) {\n return\n }\n parent.replaceChild(node, toReplace)\n}\nfunction parentNode(nodeId: string): ONode | null {\n const node = ELEMENT_REGISTRY.get(nodeId)\n if (!node) {\n return null\n }\n return htmlElementToONode(node.parentNode as Node)\n}\nfunction nextSibling(nodeId: string): ONode | null {\n const node = ELEMENT_REGISTRY.get(nodeId)\n if (!node) {\n return null\n }\n return htmlElementToONode((node as Element).nextSibling as Node)\n}\nfunction arrayBufferToBase64(buffer: Uint8Array) {\n let binary = '';\n for (let i = 0; i < buffer.length; i++) {\n binary += String.fromCharCode(buffer[i]);\n }\n return btoa(binary);\n}\nasync function httpFetch(url: string, data: { method: string, headers: Record<string, string>, body: any, credentials: \"include\" | \"omit\" | \"same-origin\" }, encodeAs?: 'json' | 'base64' | 'text'): Promise<any> {\n const result = await fetch(url, data)\n switch (encodeAs) {\n case 'text':\n return await result.text()\n case 'base64':\n return arrayBufferToBase64(await result.bytes())\n default:\n return await result.json()\n }\n}\n\n\n\nfunction setInnerHTML(nodeId: string, html: string) {\n const node = ELEMENT_REGISTRY.get(nodeId)\n if (!isElementNode(node)) {\n return\n }\n node.innerHTML = html\n}\nfunction getInnerHTML(nodeId: string): string {\n const node = ELEMENT_REGISTRY.get(nodeId)\n if (!isElementNode(node)) {\n return ''\n }\n return node.innerHTML\n}\n\nfunction invokeObjectMethod(id: string, fn: string, ...args: any[]): any {\n const node = ELEMENT_REGISTRY.get(id)\n if (!node) {\n return null\n }\n const tmp = getAdvanceObjectProperty(node, fn)\n if (!tmp) {\n return null\n }\n const [method, target] = tmp\n return (method as Function).apply(target, args.map(e => {\n if (e && typeof e === 'object' && e['__ref__']) {\n return ELEMENT_REGISTRY.get(e['__ref__']) ?? e\n }\n return e\n }))\n}\nfunction invokeObjectMethodAndHold(id: string, fn: string, ...args: any[]): OObject | null {\n const node = ELEMENT_REGISTRY.get(id)\n if (!node) {\n return null\n }\n const tmp = getAdvanceObjectProperty(node, fn)\n if (!tmp) {\n return null\n }\n const [method, target] = tmp\n const res = (method as Function).apply(target, args.map(e => {\n if (e && typeof e === 'object' && e['__ref__']) {\n return ELEMENT_REGISTRY.get(e['__ref__']) ?? e\n }\n return e\n }))\n if (res) {\n return { uid: putInRegistry(res), objType: typeof res, isArray: false, tag: 'unknown' }\n }\n return res\n}\nfunction getObjectProperty(id: string, name: string): any {\n const node = ELEMENT_REGISTRY.get(id)\n if (!node) {\n return null\n }\n const tmp = getAdvanceObjectProperty(node, name)\n if (tmp) {\n return tmp[0]\n }\n return null\n}\nfunction getAdvanceObjectProperty(obj: any, path: string): [any, any] | null {\n const els = path.split('.')\n let current: any = obj\n let target: any = obj\n for (let i = 0; i < els.length; i++) {\n const el = els[i]\n if (!(el in current)) {\n return null\n }\n target = current\n current = current[el]\n }\n return [current, target]\n}\nfunction setAdvanceObjectProperty(obj: any, path: string, value: any): void {\n const els = path.split('.')\n\n let current: any = obj\n for (let i = 0; i < els.length - 1; i++) {\n const el = els[i]\n if (!(el in current)) {\n return\n }\n current = current[el]\n }\n const k = els[els.length - 1]\n current[k] = typeof value === 'object' && value['__ref__'] ? ELEMENT_REGISTRY.get(value['__ref__']) ?? value : value\n}\nfunction setObjectProperty(id: string, name: string, value: any): void {\n const node = ELEMENT_REGISTRY.get(id)\n if (!node) {\n return\n }\n setAdvanceObjectProperty(node, name, value)\n}\nexport declare var NativeOUID: { invoke: (id: string, fn: string, argsJson: string) => void } | undefined\n\nconst listeners = new Map<string, ((id: string, fn: string, argJson: string) => void)[]>()\n\nexport function emit(id: string, ...args: any[]): void {\n NativeOUID?.invoke(id, '__ouid_web_event__', JSON.stringify(args))\n}\nfunction subscribe(event: string, callback: (id: string, fnName: string, argsJson: string) => void): void {\n if (!listeners.has(event)) {\n listeners.set(event, []);\n // attach a single handler for native -> JS calls\n (window as any)[event] = (id: string, fnName: string, argsJson: string) => {\n listeners.get(event)?.forEach(cb => cb(id, fnName, argsJson))\n }\n }\n listeners.get(event)!.push(callback)\n}\nfunction releaseNode(nodeId: string): void {\n // remove node from ELEMENT_REGISTRY\n removeFromRegistry(nodeId)\n}\nfunction locationPath(): string {\n return window.location.pathname\n}\nfunction historyPushState(data: any, path: string): void {\n window.history.pushState(data, '', path)\n}\nfunction dispatchPopStateEvent(): void {\n window.dispatchEvent(new PopStateEvent('popstate', { state: window.history.state }))\n}\nfunction dispatchEvent(id: string, eventName: string, eventClass?: string, initDict?: any): void {\n const obj = ELEMENT_REGISTRY.get(id)\n if (!obj) {\n return\n }\n if ('dispatchEvent' in obj) {\n const event = eventClass ? new window[eventClass as keyof Window](eventName, initDict) : new CustomEvent(eventName, initDict)\n obj.dispatchEvent(event)\n }\n}\nfunction asOObject(obj: any, id: string): OObject {\n return {\n tag: id.split(/\\s/)[0],\n uid: id,\n objType: typeof obj,\n isArray: Array.isArray(obj)\n }\n}\nfunction getOObject(id: string): OObject | null {\n const obj = ELEMENT_REGISTRY.get(id)\n if (!obj) {\n return null\n }\n return asOObject(obj, id)\n}\nfunction acquireObject(name: string): OObject | null {\n const obj = window[name as keyof Window]\n if (!obj) {\n return null\n }\n const objId = putInRegistry(obj, name)\n return asOObject(obj, objId)\n}\nfunction newObject(ctr: string, ...args: any): OObject | null {\n const Ctr = window[ctr as keyof Window]\n if (!Ctr) {\n return null\n }\n const instance = new Ctr(...args)\n const objId = putInRegistry(instance)\n return asOObject(instance, objId)\n}\nfunction addSetTimeout(cbId: string, delay: number): number {\n const cb = () => {\n emit(cbId)\n }\n return setTimeout(cb, delay) as any\n}\nfunction addSetInterval(cbId: string, delay: number): number {\n const cb = () => {\n emit(cbId)\n }\n return setInterval(cb, delay) as any\n}\nfunction removeSetTimeout(timerId: number): void {\n clearTimeout(timerId)\n}\n\nfunction removeSetInterval(timerId: number): void {\n clearInterval(timerId)\n}\ndeclare const __WEB_OUID_EMULATION__: boolean;\nexport function initDOM(): void {\n if (__WEB_OUID_EMULATION__) {\n ; (globalThis as any).__OUI_PUR_JS_CONTEXT__ = true\n ; (window as any).NativeOUID = (window as any).NativeOUID ?? {\n invoke: (id: string, fn: string, argsJson: string) => {\n (window as any)[`${fn}`](id, argsJson)\n }\n }\n ; (window as any).WebOUID = (window as any).WebOUID ?? {\n invoke: async (id: string, fn: string, argsJson: string) => {\n (window as any)[`__native_message__`](id, fn, argsJson)\n }\n }\n }\n \n putInRegistry(document, 'document');\n putInRegistry(window, 'window');\n (window as any)._ouid_query = query;\n (window as any)._ouid_queryAll = queryAll;\n (window as any)._ouid_createElement = createElement;\n (window as any)._ouid_createComment = createComment;\n (window as any)._ouid_invokeObjectMethod = invokeObjectMethod;\n (window as any)._ouid_invokeObjectMethodAndHold = invokeObjectMethodAndHold;\n (window as any)._ouid_getObjectProperty = getObjectProperty;\n (window as any)._ouid_setObjectProperty = setObjectProperty;\n (window as any)._ouid_appendChild = appendChild;\n (window as any)._ouid_addClass = addClass;\n (window as any)._ouid_removeClass = removeClass;\n (window as any)._ouid_setInnerHTML = setInnerHTML;\n (window as any)._ouid_getInnerHTML = getInnerHTML;\n (window as any)._ouid_setInnerText = setInnerText;\n (window as any)._ouid_getInnerText = getInnerText;\n (window as any)._ouid_setContentText = setContentText;\n (window as any)._ouid_getContentText = getContentText;\n (window as any)._ouid_setAttribute = setAttribute;\n (window as any)._ouid_removeAttribute = removeAttribute;\n (window as any)._ouid_getAttribte = getAttribte;\n (window as any)._ouid_getAttribteNames = getAttribteNames;\n (window as any)._ouid_childNodes = childNodes;\n (window as any)._ouid_cloneNode = cloneNode;\n (window as any)._ouid_removeNode = removeNode;\n (window as any)._ouid_removeChild = removeChild;\n (window as any)._ouid_replaceChildNode = replaceChildNode;\n (window as any)._ouid_replaceNode = replaceWith;\n (window as any)._ouid_insertAfter = insertAfter;\n (window as any)._ouid_insertBefore = insertBefore;\n (window as any)._ouid_setInputValue = setInputValue;\n (window as any)._ouid_inputValue = inputValue;\n (window as any)._ouid_attachEventListener = attachEventListener;\n (window as any)._ouid_dettachEventListener = dettachEventListener;\n (window as any)._ouid_injectComponentStyles = injectComponentStyles;\n (window as any)._ouid_rejectComponentStyles = rejectComponentStyles;\n (window as any)._ouid_locationPath = locationPath;\n (window as any)._ouid_historyPushState = historyPushState;\n (window as any)._ouid_dispatchPopStateEvent = dispatchPopStateEvent;\n (window as any)._ouid_parentNode = parentNode;\n (window as any)._ouid_releaseNode = releaseNode;\n (window as any)._ouid_getOObject = getOObject;\n (window as any)._ouid_acquireObject = acquireObject;\n (window as any)._ouid_newObject = newObject;\n (window as any)._ouid_dispatchEvent = dispatchEvent;\n (window as any)._ouid_setTimeout = addSetTimeout;\n (window as any)._ouid_clearTimeout = removeSetTimeout;\n (window as any)._ouid_dsetInterval = addSetInterval;\n (window as any)._ouid_clearInterval = removeSetInterval;\n (window as any)._ouid_setStyle = setStyle;\n (window as any)._ouid_nextSibling = nextSibling;\n (window as any)._ouid_fetch = httpFetch;\n (window as any)._ouid_alert = alert;\n (window as any)._ouid_prompt = prompt;\n subscribe('__native_message__', async (id, fnName: string, argsJson: string) => {\n const fn = (window as any)[fnName]\n if (!fn) {\n NativeOUID?.invoke(id, '__ouid_native_event_error__', JSON.stringify([{ 'message': 'No function match the given name: (' + fnName + ')' }]))\n return\n }\n const result = await (fn as Function)(...(JSON.parse(argsJson) as Array<any>))\n NativeOUID?.invoke(id, '__ouid_native_event_success__', JSON.stringify([{ status: 'success', data: result }]))\n });\n}\n\n"]}
package/dist/index.cjs CHANGED
@@ -1,30 +1,31 @@
1
- 'use strict';var dt=require('route-parser');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var dt__default=/*#__PURE__*/_interopDefault(dt);var nt=Object.defineProperty;var mt=(i,t,e)=>t in i?nt(i,t,{enumerable:true,configurable:true,writable:true,value:e}):i[t]=e;var u=(i,t)=>nt(i,"name",{value:t,configurable:true});var l=(i,t,e)=>mt(i,typeof t!="symbol"?t+"":t,e);var q=class q{constructor(){l(this,"components",new Map);}register(t,e){console.log(`[OUID] - Registering component: ${t}`);let n=t.toLocaleLowerCase();if(this.components.has(n)){console.warn(`[OUID] - ${n} component already registered`);return}this.components.set(n,e);}unregister(t){let e=t.toLocaleLowerCase();this.components.delete(e);}get(t){return this.components.get(t.toLocaleLowerCase())}has(t){return this.components.has(t)}getAll(){return Array.from(this.components.entries())}};u(q,"ComponentsRegistry");var k=q,T=new k;var $=class ${constructor(t){l(this,"events");this.events=t;}emit(t,...e){let n=this.events[t];n&&n(...e);}};u($,"Emits");var P=$;var W=class W{constructor(t){l(this,"value");this.value=t;}};u(W,"Stated");var j=W;function st(i){return typeof i=="object"&&!Array.isArray(i)&&"value"in i&&i instanceof j}u(st,"isStated");function wt(i,t){let e=u((n,s=new Map)=>{if(s.has(n))return s.get(n);let o=new Proxy(n,{set:u((c,p,h)=>{let y=c[p];return typeof h=="object"?c[p]=e(h):c[p]=h,t.didChange(p,y,h),true},"set"),get:u((c,p)=>Reflect.get(c,p),"get")});s.set(n,o);for(let c=n;c;c=Object.getPrototypeOf(c))Object.keys(c).forEach(p=>{let h=n[p];typeof h=="object"&&(n[p]=e(h,s));});return o},"proxify");if(typeof i=="function")throw new Error("Can't create reactive element over a function");return typeof i!="object"&&typeof i!="symbol"?new Proxy(new j(i),{set:u((n,s,o)=>{if(s!=="value")throw new Error(`Undefined property ${String(s)} access`);let c=n[s];return n[s]=o,t.didChange(s,c,o),true},"set"),get:u((n,s)=>{if(s!=="value")throw new Error(`Undefined property ${String(s)} access`);return n[s]},"get")}):new j(e(i))}u(wt,"stated");var F=class F{constructor(t){l(this,"THRESHOLD_TIME",20);l(this,"debounceTime",new Date().getTime());l(this,"state");l(this,"listeners",[]);l(this,"timer",null);this.state=new Proxy(t,{set:u((e,n,s)=>{let o=e[n];return e[n]=s,this.didChange(n,o,s),true},"set"),get:u((e,n)=>e[n],"get")});}wrap(t){return wt(t,this)}has(t){return t in this.state}setValue(t,e){this.state[t]=e;}getValue(t){return this.state[t]}get value(){return this.state}dispatchChanges(t,e,n){for(let s of this.listeners)s(t,e,n);}async didChange(t,e,n){let s=Date.now();s-this.debounceTime<=this.THRESHOLD_TIME&&this.timer&&clearTimeout(this.timer),this.debounceTime=s,this.timer=setTimeout(()=>{this.dispatchChanges(t,e,n);},this.THRESHOLD_TIME);}watch(t){return this.listeners.push(t),this.listeners.length-1}unwatch(t){if(typeof t=="number"){this.listeners.splice(t,1);return}this.listeners.splice(this.listeners.indexOf(t),1);}};u(F,"State");var U=F;var yt=0;function rt(i){return function(t){var s;let e=(s=class extends t{constructor(){super(...arguments);l(this,"template",i.template);l(this,"css",i.css);l(this,"tag",i.tag);l(this,"use",i.use);l(this,"hostClasses",i.hostClasses);l(this,"hash","component-"+yt+"-"+i.tag);}},u(s,"WithDecoration"),s),n=e;return n.tag=i.tag,e}}u(rt,"Component");var V=class V{constructor(t,e=[]){l(this,"node");l(this,"children");this.node=t,this.children=e;}attachTo(t){if(typeof this.node=="string"){t.innerHTML=this.node;return}let e=this.node;for(let n of this.children)n.attachTo(e);t.appendChild(e);}static of(t,e=[]){return new V(t,e)}addChild(t){return this.children.push(t),this}};u(V,"RenderNode");var S=V,I=class I{constructor(t,e){l(this,"data");l(this,"css");this.data=t,this.css=e;}toString(){let t=this.css?this.css+`
2
- `:"";for(let e in this.data){let n=this.data[e];typeof n=="string"?t+=`${e} { ${n} }
3
- `:n instanceof I&&(t+=`${e} {
1
+ 'use strict';var At=require('route-parser');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var At__default=/*#__PURE__*/_interopDefault(At);var yt=Object.defineProperty;var Rt=(o,e,s)=>e in o?yt(o,e,{enumerable:true,configurable:true,writable:true,value:s}):o[e]=s;var f=(o,e)=>yt(o,"name",{value:e,configurable:true});var p=(o,e,s)=>Rt(o,typeof e!="symbol"?e+"":e,s);var nt=class nt{constructor(){p(this,"components",new Map);}register(e,s){console.log(`[OUID] - Registering component: ${e}`);let n=e.toLocaleLowerCase();this.components.has(n)||this.components.set(n,s);}unregister(e){let s=e.toLocaleLowerCase();this.components.delete(s);}get(e){return this.components.get(e.toLocaleLowerCase())}has(e){return this.components.has(e)}getAll(){return Array.from(this.components.entries())}};f(nt,"ComponentsRegistry");var G=nt,U=new G;var it=class it{constructor(e){p(this,"events");this.events=e;}emit(e,...s){let n=this.events[e];n&&n(...s);}};f(it,"Emits");var X=it;var rt=class rt{constructor(e){p(this,"value");this.value=e;}};f(rt,"Stated");var K=rt;function vt(o){return typeof o=="object"&&!Array.isArray(o)&&"value"in o&&o instanceof K}f(vt,"isStated");function jt(o,e){let s=f((n,r=new Map)=>{if(r.has(n))return r.get(n);let c=new Proxy(n,{set:f((u,w,m)=>{let O=u[w];return typeof m=="object"?u[w]=s(m):u[w]=m,e.didChange(w,O,m),true},"set"),get:f((u,w)=>Reflect.get(u,w),"get")});r.set(n,c);for(let u=n;u;u=Object.getPrototypeOf(u))Object.keys(u).forEach(w=>{let m=n[w];typeof m=="object"&&(n[w]=s(m,r));});return c},"proxify");if(typeof o=="function")throw new Error("Can't create reactive element over a function");return typeof o!="object"&&typeof o!="symbol"?new Proxy(new K(o),{set:f((n,r,c)=>{if(r!=="value")throw new Error(`Undefined property ${String(r)} access`);let u=n[r];return n[r]=c,e.didChange(r,u,c),true},"set"),get:f((n,r)=>{if(r!=="value")throw new Error(`Undefined property ${String(r)} access`);return n[r]},"get")}):new K(s(o))}f(jt,"stated");var at=class at{constructor(e){p(this,"THRESHOLD_TIME",20);p(this,"debounceTime",new Date().getTime());p(this,"state");p(this,"listeners",[]);p(this,"timer",null);this.state=new Proxy(e,{set:f((s,n,r)=>{let c=s[n];return s[n]=r,this.didChange(n,c,r),true},"set"),get:f((s,n)=>s[n],"get")});}wrap(e){return jt(e,this)}has(e){return e in this.state}setValue(e,s){this.state[e]=s;}getValue(e){return this.state[e]}get value(){return this.state}dispatchChanges(e,s,n){for(let r of this.listeners)r(e,s,n);}async didChange(e,s,n){let r=Date.now();r-this.debounceTime<=this.THRESHOLD_TIME&&this.timer&&clearTimeout(this.timer),this.debounceTime=r,this.timer=setTimeout(()=>{this.dispatchChanges(e,s,n);},this.THRESHOLD_TIME);}watch(e){return this.listeners.push(e),this.listeners.length-1}unwatch(e){if(typeof e=="number"){this.listeners.splice(e,1);return}this.listeners.splice(this.listeners.indexOf(e),1);}};f(at,"State");var Z=at;var Dt=0;function gt(o){return function(e){var r;let s=(r=class extends e{constructor(){super(...arguments);p(this,"template",o.template);p(this,"css",o.css);p(this,"tag",o.tag);p(this,"use",o.use);p(this,"hostClasses",o.hostClasses);p(this,"hash","component-"+Dt+"-"+o.tag);}},f(r,"WithDecoration"),r),n=s;return n.tag=o.tag,s}}f(gt,"Component");var et=class et{constructor(e,s=[]){p(this,"node");p(this,"children");this.node=e,this.children=s;}attachTo(e){if(typeof this.node=="string"){e.innerHTML=this.node;return}let s=this.node;for(let n of this.children)n.attachTo(s);e.appendChild(s);}static of(e,s=[]){return new et(e,s)}addChild(e){return this.children.push(e),this}};f(et,"RenderNode");var F=et,J=class J{constructor(e,s){p(this,"data");p(this,"css");this.data=e,this.css=s;}toString(){let e=this.css?this.css+`
2
+ `:"";for(let s in this.data){let n=this.data[s];typeof n=="string"?e+=`${s} { ${n} }
3
+ `:n instanceof J&&(e+=`${s} {
4
4
  ${n.toString()}}
5
- `);}return t}static of(t,...e){return new I(t,e.join(`
6
- `))}};u(I,"StyleData");var B=I;function Y(i,t,e){return new i(t,e)}u(Y,"createComponent");var J=class J{constructor(t={},e={}){l(this,"state");l(this,"parent");l(this,"emits");l(this,"props");l(this,"provides",new Map);this.state=new U(this),this.props=t,this.emits=new P(e);}onMounted(){}willMount(){}willUnmount(){}provide(t,e){this.provides.set(t,e);}inject(t){let e=this;for(;e;){if(e.provides.has(t))return e.provides.get(t);e=e.parent;}}decorateHostElement(t){return Promise.resolve()}};u(J,"OComponent");var _=J;function N(i){let t=Date.now();return `${(1e3+Math.floor(Math.random()*9e3)+i.length).toString(16)}-${t.toString(16)}`}u(N,"generateUIID");(function(i){var c,p,h,y,v;let t=(c=class{constructor(){l(this,"actions",[]);}async exec(){await this.commit();}add(a){return this.actions.push(a),this}async commit(){let a=this.actions;this.actions=[],await Promise.all(a.map(async r=>await r()));}},u(c,"BatchActions"),c);i.BatchActions=t;let e=(p=class{constructor(a){l(this,"node");l(this,"operations",[]);this.node=a;}async exec(){let a=this.operations.map(r=>typeof r=="object"?this.node[r.fn].apply(this.node,r.args):Promise.resolve(r()));try{await Promise.all(a);}catch{console.error("Error while batch updates");}}append(a,...r){return this.operations.push({fn:a,args:r}),this}add(a){return this.operations.push(a),this}addEventListener(a,r){return this.append("addEventListener",a,r)}setProperty(a,r){return this.append("setAttribute",a,r)}dettachEventListener(a,r){return this.append("dettachEventListener",a,r)}invoke(a,...r){return this.append("invoke",a,...r)}dispatchEvent(a,r,d){return this.append("dispatchEvent",a,r,d)}addClass(...a){return this.append("addClass",...a)}removeClass(...a){return this.append("removeClass",...a)}setAttribute(a,r){return this.append("setAttribute",a,r)}removeAttribute(a){return this.append("removeAttribute",a)}appendChild(a){return this.append("appendChild",a)}removeChild(a){return this.append("removeChild",a)}remove(){return this.append("remove")}removeAndRelease(){return this.append("removeAndRelease")}release(){return this.append("release")}innerHTML(a){return this.append("setHTML",a)}replaceChildNode(a,r){return this.append("replaceChildNode",a,r)}replaceWith(a){return this.append("replaceWith",a)}after(a){return this.append("after",a)}setInnerText(a){return this.append("setInnerText",a)}setContentText(a){return this.append("setContentText",a)}insertBefore(a,r){return this.append("insertBefore",a,r)}setInputValue(a){return this.append("setInputValue",a)}setStyle(a,r){return this.append("setStyle",a,r)}},u(p,"BatchUpdates"),p);i.BatchUpdates=e;let n=(h=class{constructor(a,r){l(this,"uid");l(this,"tag");this.uid=a,this.tag=r;}async addEventListener(a,r){return f.addEventListener(this,a,r)}async dettachEventListener(a,r){await f.dettachEventListener(this,a,r);}async invoke(a,...r){await f.call("invokeObjectMethod",this.uid,a,...r);}async getProperty(a){return await f.call("getObjectProperty",this.uid,a)}async setProperty(a,r){await f.call("setObjectProperty",this.uid,a,r);}async dispatchEvent(a,r,d){await f.call("dispatchEvent",this.uid,a,r,d);}},u(h,"OObject"),h);i.OObject=n;let s=(y=class extends n{constructor(r){super(r.uid,r.tag);l(this,"textContent");l(this,"type","Unknown");l(this,"attributes");l(this,"children");l(this,"classes");l(this,"style");for(let d in r)this[d]=r[d];this.attributes??(this.attributes=[]),this.classes??(this.classes=[]),this.style??(this.style="");}},u(y,"ONode"),y);i.ONode=s;let o=(v=class extends s{constructor(r){super(r);l(this,"_hydrated",false);}async addClass(...r){await f.call("addClass",this.uid,...r);}async removeClass(...r){await f.call("removeClass",this.uid,...r);}async setAttribute(r,d){let w=await f.call("setAttribute",this.uid,r,d);w&&(this.attributes=w);}async removeAttribute(r){let d=await f.call("removeAttribute",this.uid,r);d&&(this.attributes=d);}async appendChild(r){await f.call("appendChild",this.uid,r.uid);}set innerHTML(r){this.setHTML(r);}async cloneNode(r){let d=await f.call("cloneNode",this.uid,r);return d?new v(d):null}async remove(){await f.call("removeNode",this.uid);}async removeAndRelease(){await this.remove(),await this.release();}async removeChild(r){await f.call("removeChild",this.uid,r.uid);}async replaceChildNode(r,d){await f.call("removeChild",this.uid,r.uid,d.uid);}async replaceWith(r){await f.call("replaceWith",this.uid,r.uid);}async after(r){await f.call("insertAfter",this.uid,r.uid);}async setHTML(r){await f.call("setInnerHTML",this.uid,r);}async HTML(){return await f.call("getInnerHTML",this.uid)??""}async setInnerText(r){await f.call("setInnerText",this.uid,r);}async setContentText(r){await f.call("setContentText",this.uid,r);}async getContentText(){return await f.call("getContentText",this.uid)??""}async content(){try{return await f.call("getInnerText",this.uid)??""}catch(r){return console.error(r),""}}async childNodes(){return (await f.call("childNodes",this.uid))?.map(r=>new v(r))??[]}hasAttribute(r){return !!this.attributes.find(d=>d.name===r)}async getAttribute(r){return await f.call("getAttribte",this.uid,r)??""}attribute(r){return this.attributes.find(d=>d.name===r)?.value??null}async nextSibling(){let r=await f.call("nextSibling",this.uid);return r?new v(r):null}async getAttributeNames(){return await f.call("getAttributeNames",this.uid)??[]}async parentNode(){let r=await f.call("parentNode",this.uid);return r?new v(r):null}async insertBefore(r,d){await f.call("insertBefore",this.uid,d.uid,r.uid);}async setInputValue(r){await f.call("setInputValue",this.uid,r);}async inputValue(r){return await f.call("inputValue",this.uid,r)??""}get hydrated(){return this._hydrated}hydrate(){this._hydrated=true,this.addClass("hydrated");}async query(r,d){return await f.query(r,d,this.uid)}async queryAll(r,d){return await f.queryAll(r,d,this.uid)}async release(){await f.call("releaseNode",this.uid);}async setStyle(r,d){await f.call("setStyle",this.uid,r,d);}updates(){return new e(this)}},u(v,"OElement"),v);i.OElement=o;})(exports.ODOM||(exports.ODOM={}));function qt(){return function(i,t,e){e.value;e.value=async(...s)=>{let o=s[0];try{let c=await f.invoke(t,[{props:o.getSafePropsForNative}]);o.setSafePropsFromNative;}catch{console.error("Failed to invoke native function");}};}}u(qt,"Native");var z=class z{constructor(){l(this,"callbacks",new Map);l(this,"DOM_EVENT_LISTENERS",new Map);l(this,"timers",new Map);l(this,"_config");l(this,"listeners",new Map);this.subscribe("__ouid_native_event_success__",(t,e)=>{let n=this.callbacks.get(t);if(n)return this.callbacks.delete(t),n.success(...JSON.parse(e))}),this.subscribe("__ouid_native_event_error__",(t,e)=>{let n=this.callbacks.get(t);if(n)return console.error("Failure:",t,e),this.callbacks.delete(t),n.error(...JSON.parse(e))}),this.subscribe("__ouid_web_event__",(t,e)=>{let n=this.DOM_EVENT_LISTENERS.get(t);if(n){let o=JSON.parse(e)[1];return o&&(o.target=o?.target?new exports.ODOM.OElement(o.target):null),n(o)}});}config(t){return this._config=t,this}invoke(t,...e){let n=N(t);return new Promise((s,o)=>{this.callbacks.set(n,{success:s,error:o});try{if(!WebOUID)throw new Error("NativeOUID bridge not available");WebOUID.invoke(n,t,JSON.stringify(e));}catch(c){console.error(c),this.callbacks.delete(n);}})}registerComponent(t,e){T.register(t,e);}unregisterComponent(t,e){T.unregister(t);}async call(t,...e){try{return (await this.invoke(`_ouid_${t}`,...e)).data}catch(n){return console.error(n),null}}emit(t,e){WebOUID?.invoke("event",t,JSON.stringify(e));}subscribe(t,e){this.listeners.has(t)||(this.listeners.set(t,[]),globalThis[t]=(n,s)=>{this.listeners.get(t)?.forEach(o=>o(n,s));}),this.listeners.get(t).push(e);}async query(t,e,n){let s=await this.call("query",t,e,n);return s?new exports.ODOM.OElement(s):null}async queryAll(t,e,n){let s=await this.call("queryAll",t,e,n);return s?s.map(o=>new exports.ODOM.OElement(o)):[]}async createElement(t,e={}){let n=await this.call("createElement",t,e);return n?new exports.ODOM.OElement(n):null}async createComment(t){let e=await this.call("createComment",t);return e?new exports.ODOM.OElement(e):null}async addEventListener(t,e,n){let s=N(e+(typeof t=="string"?t:t.tag));return this.DOM_EVENT_LISTENERS.set(s,n),await f.call("attachEventListener",typeof t=="string"?t:t.uid,s,e),s}async dettachEventListener(t,e,n){this.DOM_EVENT_LISTENERS.delete(n),await f.call("dettachEventListener",typeof t=="string"?t:t.uid,n,e);}async injectComponentStyles(t){let e=await f.call("injectComponentStyles",t);return e?new exports.ODOM.OElement(e):null}async rejectComponentStyles(t){await f.call("rejectComponentStyles",t.uid);}async getOObject(t){let e=await f.call("getOObject",t);return e?new exports.ODOM.OObject(e.uid,e.tag):null}async acquireObject(t){let e=await f.call("acquireObject",t);return e?new exports.ODOM.OObject(e.uid,e.tag):null}async setTimeout(t,e){let n=N("setTimeout"+e);this.DOM_EVENT_LISTENERS.set(n,()=>{t();let o=this.timers.get(s);o&&(this.timers.delete(s),this.DOM_EVENT_LISTENERS.delete(o));});let s=await f.call("setTimeout",n,e)??-1;return s>=0&&this.timers.set(s,n),s}async clearTimeout(t){let e=this.timers.get(t);e&&(this.timers.delete(t),this.DOM_EVENT_LISTENERS.delete(e),await f.call("clearTimeout",t));}async setInterval(t,e){let n=N("setInterval"+e);this.DOM_EVENT_LISTENERS.set(n,t);let s=await f.call("setInterval",n,e)??-1;return s>=0&&this.timers.set(s,n),s}async clearInterval(t){let e=this.timers.get(t);e&&(this.timers.delete(t),this.DOM_EVENT_LISTENERS.delete(e),await f.call("clearInterval",t));}async fetch(t,e,n="json"){return await f.call("fetch",t,e,n)}};u(z,"OUIDBridge");var K=z,f=new Proxy(new K,{get:u((i,t)=>t in i?i[t]:async(...e)=>await i.call(t,...e),"get")});globalThis.OUID=f;exports.ODOM=void 0;function vt(i){return i.replace(/-([a-z])/g,(t,e)=>e.toUpperCase())}u(vt,"toCamelCase");function gt(i){return i.replace(/(?!^)([A-Z])/g,(t,e)=>`-${e.toLowerCase()}`)}u(gt,"toSnakeCase");function C(i){return st(i)?i.value:i}u(C,"normaliseValue");var bt=typeof globalThis.queueMicrotask=="function",R=u(i=>i?bt?queueMicrotask(i):Promise.resolve().then(i):Promise.resolve(),"deferMicro"),zt=u(()=>new Promise(i=>setTimeout(i,0)),"deferMacro");function Et(i){return typeof i=="function"&&!("prototype"in i)}u(Et,"isLazyLoader");var it=new Map,at=new Map,ot=new WeakMap;function ct(i){if(!i||typeof i!="object"&&typeof i!="function")return {};let t=ot.get(i);if(t)return t;let e=Object.create(null);for(let n=i;n&&n!==Object.prototype;n=Object.getPrototypeOf(n))for(let s of Object.getOwnPropertyNames(n)){if(s==="constructor"||s.startsWith("__")||s.endsWith("__")||s in e)continue;let o=Object.getOwnPropertyDescriptor(n,s);if(!o)continue;let c=o.value??(o.get?o.get.call(i):void 0);e[s]=typeof c=="function"?c.bind(i):c;}return ot.set(i,e),e}u(ct,"getMethodsView");function lt(i,t){let e=it.get(i);return e||(e=new Function("s","with (s) { return ("+i+"); }"),it.set(i,e)),e(t)}u(lt,"evalInScope");function xt(i){let t=at.get(i);if(t)return t;let e=[],n=0;for(;n<i.length;){let s=i.indexOf("{{",n);if(s<0){e.push({t:i.slice(n)});break}s>n&&e.push({t:i.slice(n,s)});let o=i.indexOf("}}",s+2),c=o>=0?i.slice(s+2,o).trim():i.slice(s+2).trim();e.push({e:c}),n=o>=0?o+2:i.length;}return t=u(s=>{let o="";for(let c of e)if(c.t!==void 0)o+=c.t;else if(c.e!==void 0){let p=lt(c.e,s);o+=p==null?"":String(p);}return o},"fn"),at.set(i,t),t}u(xt,"compileInterpolated");var x=class x{constructor(t,e,n,...s){l(this,"app");l(this,"component");l(this,"parentContext");l(this,"bindings",[]);l(this,"directives",[]);l(this,"mountedComponents",new WeakMap);l(this,"componentsRegistry",new k);l(this,"updatingDirectives",false);l(this,"updatingBindings",false);l(this,"_stack",[]);l(this,"flatStack",Object.create(null));l(this,"hydradationActions",new exports.ODOM.BatchActions);this.app=t,this.component=e,this.parentContext=n;for(let o of s)this.push(o);}get hostElement(){return this.component._hostElement}get stack(){return this._stack}set stack(t){this.flatStack=Object.create(null),this._stack=[];for(let e of t)this.push(e);}bind(t){this.bindings.push(t);}directive(t){this.directives.push(t);}evaluateExpression(t){return this.resolve(t)}resolve(t,e=true,...n){if(!t)return;let s=this.component.state?.value??{},o=ct(s),c=new Proxy(Object.create(null),{get:u((p,h)=>{for(let y=n.length-1;y>=0;y--)if(h in n[y])return n[y][h];return h in this.flatStack?this.flatStack[h]:h in o?o[h]:s[h]},"get"),has:u((p,h)=>n.some(y=>h in y)||h in this.flatStack||h in o||h in s,"has")});try{return lt(t,c)}catch(p){console.log(this,t),console.error(p);return}}updateValue(t,e){let n=t.split(/[\.\[]/)[0];n in this.component?this.resolve(`this.${t}=__o_model_value__`,true,{__o_model_value__:e}):this.resolve(`${t}=__o_model_value__`,true,{__o_model_value__:e}),this.component.state.didChange(n,void 0,e);}push(t){this._stack.unshift(t),Object.assign(this.flatStack,t);}pop(){let t=this._stack.shift();if(t)for(let e of Object.keys(t))delete this.flatStack[e];}resolveTag(t){let e=this;for(;;){if(e.componentsRegistry.has(t))return e.componentsRegistry.get(t);if(e=e?.parentContext??null,!e)break}return T.get(t)}async updateBindings(t){if(this.updatingBindings)return;let e=!t;t=t??new exports.ODOM.BatchActions,this.updatingBindings=true;for(let n of this.bindings)this.updateBinding(n,t);this.updatingBindings=false,e&&await t.commit();}updateBinding(t,e){if(t.type==="model"){t.node.setProperty("value",C(t.context.resolve(t.key)));return}if(t.type==="interpolation"){e.add(async()=>{let n=t.templateFn({...this.flatStack,...ct(this.component.state?.value??{}),...this.component.state?.value??{}});await t.node.setContentText(n);});return}if(t.type==="attribute"){let n=t.key,s=C(this.resolve(t.template));n==="class"?e.add(()=>this.expandClass(t.node,s)):n==="style"?this.expandStyle(t.node,s):typeof s!="object"&&typeof s!="function"&&typeof s!="symbol"&&typeof s<"u"&&e.add(()=>t.node.setAttribute(n,s.toString()));return}if(t.type==="prop"&&t.context.component){let n=C(this.resolve(t.template));try{t.context.component.props[t.key]=n,t.context.updateBindings(),t.context.updateDirectives();}catch(s){console.error(s);}return}}async updateDirectives(t){if(this.updatingDirectives)return;let e=!t;this.updatingDirectives=true,t=t??new exports.ODOM.BatchActions;for(let n of this.directives){if(n.type==="if"){if(!C(n.context.evaluateExpression(n.expr))){if(n.active===false)continue;n.active=false,n.renderedNode&&(n.destroy?(this.unmountComponent(n.node),await n.renderedNode.removeAndRelease()):await n.renderedNode.addClass("oui-hidden"));continue}if(n.active===true)continue;n.active=true;let o=n.renderedNode;if(!o||n.destroy){let c=await n.node.cloneNode(true);n.renderedNode=c,await n.context.render(c),await n.placeholder.after(c),await n.context.hydradationActions.commit();}else await o.removeClass("oui-hidden");}if(n.type==="for"){let s=n.children??new Map,o=new Map,c=u((r,d)=>n.key?C(n.context.resolve(n.key,true,{[n.item]:r})):d,"keyFn"),p=C(n.context.resolve(n.list))||[],h=new exports.ODOM.BatchActions,y=32,v=0,m=[],a=n.placeholder;for(let r=0;r<p.length;r++){let d=p[r],w=c(d,r),b=s.get(w),E,O,M=a;b?(E=b.node,O=b.ctx,O.stack=[{[n.item]:d},...n.context.stack],h.add(async()=>{let et=await a.nextSibling();E.uid!==et?.uid&&h.add(()=>M.after(E));}),await Promise.all([O.updateBindings(t),O.updateDirectives(t)])):(O=new x(this.app,this.component,this),O.hydradationActions=this.hydradationActions,O.stack=[{[n.item]:d},...n.context.stack],E=await n.node.cloneNode(true),h.add(async()=>{await M.after(E);}),m.push(async()=>{await O.render(E),await O.updateDirectives(t);})),a=E,o.set(w,{node:E,ctx:O}),++v>=y&&(v=0,await h.commit(),await R());}for(let[r,d]of s.entries())o.has(r)||(this.unmountComponent(d.node),h.add(()=>d.node.removeAndRelease()));if(await h.commit(),m.length)for(let d=0;d<m.length;d+=12){let w=m.slice(d,d+12).map(b=>b());await Promise.all(w),await R();}n.children=o;}}e&&await t.commit(),await this.hydradationActions.commit(),this.updatingDirectives=false;}async render(t,e){if(t.hydrated||e?.skipSlotted&&t.hasAttribute("slotted"))return;switch(t.type){case "Text":this.handleTextNode(t);break;case "Element":await this.handleElementNode(t,e);break;default:console.warn("Unknown node",t);}let n=new exports.ODOM.BatchActions;await Promise.all([this.updateBindings(n),this.updateDirectives(n)]),n.commit(),this.hydradationActions.add(()=>t.hydrate());}async expandClass(t,e){let n;typeof e=="object"?Array.isArray(e)?n=e:n=Object.keys(e).filter(s=>e[s]):n=e.toString().split(/\s+/),n.length>0&&await t.addClass(...n);}expandStyle(t,e){let n=e;typeof e=="object"&&!Array.isArray(e)&&(n=Object.keys(e).filter(s=>e[s]).map(s=>`${gt(s)}: ${e[s]}`).join(";")),n&&t.setAttribute("style",n);}expandStandardAttributes(t){let e=t.updates();[...t.attributes].filter(n=>n.name.startsWith(":")).forEach(n=>{let s=n.name.substring(1);this.bind({type:"attribute",node:t,key:s,context:this,template:n.value.trim()}),e.removeAttribute(n.name);}),e.exec();}async handleElementNode(t,e){let n=await t.parentNode(),s=null,o=t.hasAttribute("o-if")?"o-if":t.hasAttribute("o-show")?"o-show":null;if(o){let d=await t.getAttribute(o),w=await OUID.createComment(o+":"+d),b=o==="o-if";await n.insertBefore(w,t),await t.updates().removeAttribute(o).remove().exec(),this.directive({type:"if",expr:d,node:t,placeholder:w,context:this,active:void 0,destroy:b}),s="if";return}if(t.hasAttribute("o-for")){if(s==="if")throw new Error("Can't have o-if and o-for on the same component");let d=await t.getAttribute("o-for"),[w,b]=d.split(" of ").map(M=>M.trim()),E=await OUID.createComment("for:"+d),O=t.attribute(":key")??"";await n?.insertBefore(E,t),await t.updates().removeAttribute("o-for").removeAttribute(":key").remove().exec(),this.directive({type:"for",item:w,list:b,node:t,placeholder:E,context:this,key:O}),s="for";return}let c=t.tag.toLowerCase(),p=this.resolveTag(c),h=t.updates();[...t.attributes].forEach(async d=>{if(d.name==="o-model"){let w=d.value.trim();(t.tag==="input"||t.tag==="textarea")&&(h.setInputValue(C(this.resolve(w))).addEventListener("input",async b=>{let E=await b.target.getProperty("value");this.updateValue(w,E);}),this.bind({node:t,key:w,type:"model",context:this})),h.removeAttribute(d.name);}});let y={},v={},{props:m,events:a}=this.componentAttributes(t,this);if(y=m,v=a,this.expandStandardAttributes(t),Object.keys(v).forEach(async d=>{let w=v[d];p||h.addEventListener(d,b=>{typeof w=="function"&&w.apply(this.component,[b]);}),h.removeAttribute("@"+d);}),await h.exec(),p){await this.mountComponent(t,p,this,y,v);return}let r=await t.childNodes();e?.skipSlotted&&(r=r.filter(d=>!d.hasAttribute("slotted")));for(let d of r)await this.render(d,e);}handleTextNode(t){let e=t.textContent??"";e.includes("{{")&&this.bind({type:"interpolation",node:t,key:"__template__",templateFn:xt(e),context:this});}componentAttributes(t,e){let n={},s={},o=["import","interface","module","o-model","o-if","o-for"];return [...t.attributes].filter(c=>!o.includes(c.name)).forEach(c=>{let p=c.name;if(p.startsWith("@")){let v=e?.resolve(c.value,true);if(typeof v!="function")throw new Error("Event handler can only be function");p=p.substring(1),s[p]=v;return}let h=null,y=c.value;p.startsWith(":")&&(h=c.value,p=p.substring(1),y=C(e?.resolve(c.value))),p=vt(p),n[p]={name:p,value:y,expr:h};}),{props:n,events:s}}async mountComponent(t,e,n,s={},o={}){if(this.mountedComponents.has(t))return;let c=new x(this.app,{},this),p={};for(let m of Object.keys(s)){let a=s[m];a.expr&&this.bind({type:"prop",node:t,key:m,context:c,template:a.expr}),p[m]=a.value;}let h=await Ot(e,p,o);c.component=h,c.stack=[],this.mountedComponents.set(t,h);{let m=t.updates();for(let r of Object.keys(s))s[r].expr||m.setAttribute(r,s[r].value);let a=h.hostClasses??[];a&&(a=typeof a=="string"?[a]:a),a.push("o-component-host"),t.tag.toLowerCase()!=="div"&&a.push("c-"+t.tag.toLowerCase()),m.addClass(...a),await m.exec();}R(async()=>{try{await h.decorateHostElement(t);}catch{}});{let m=h.use??{};for(let a of Object.keys(m))c.componentsRegistry.register(a,m[a]);}if(h.willMount(),!e.cssInstance){let m=h.style?h.style()?.toString():h.css;m&&(e.cssInstance??(e.cssInstance=await OUID.injectComponentStyles(m)));}R(()=>{let m=e.cssInstance;if(m){let a=x.STYLE_REF.get(m)??0;x.STYLE_REF.set(m,a+1),h.cssInstance=m;}});let y=await t.childNodes();if(h.render){let m=await h.render(c);m&&m.attachTo(t);}else await t.setHTML(h.template.trim());let v=await t.queryAll("slot");v&&v.length&&await Promise.all(v.filter(m=>!m.classes?.includes("hydrated")).map(async m=>{let a=m.attribute("name"),r=y.filter(w=>a?w.type==="Element"&&w.attribute("slot")===a:w.type!=="Element"||!w.hasAttribute("slot"));if(!r.length)return;let d=new exports.ODOM.BatchActions;for(let w of r)d.add(()=>w.setAttribute("slotted","true")),d.add(()=>m.appendChild(w));await d.commit(),await Promise.all(r.map(w=>this.render(w)));})),h._hostElement=t,h.parent=n?.component??void 0,h.provide(x.PROVIDE_TOKEN,this);{let m=await t.childNodes(),a=6,r=0;for(;r<m.length;){let d=m.slice(r,r+a);await Promise.all(d.map(w=>c.render(w,{skipSlotted:true}))),r+=a;}await c.hydradationActions.commit();}R(()=>{try{h.onMounted();}catch{}}),h.state.watch(()=>{let m=new exports.ODOM.BatchActions;c.updateBindings(m),c.updateDirectives(m),m.commit();});}async unmountComponent(t){let e=this.mountedComponents.get(t);if(e){let s=e.cssInstance;if(s){let o=x.STYLE_REF.get(s)??1;o===1?(await OUID.rejectComponentStyles(s),x.STYLE_REF.delete(s)):x.STYLE_REF.set(s,o-1);}e.willUnmount(),e._hostElement=null,e.cssInstance=null;}let n=await t.queryAll("*")??[];for(let s of n)await this.unmountComponent(s);this.mountedComponents.delete(t);}};u(x,"RenderContext"),l(x,"PROVIDE_TOKEN","RENDER_CONTEXT"),l(x,"STYLE_REF",new WeakMap);var A=x;async function Gt(i,t,e=[],n){let s=t??{},o=await OUID.createElement(i,Object.keys(s).reduce((c,p)=>(c[p]=s[p],c),{}));return Object.keys(n??{}).forEach(c=>{o?.addEventListener(c,p=>{let h=n[c];typeof h=="function"&&h(p);});}),new S(o,e)}u(Gt,"node");function Ot(i,t,e){return Et(i)?i().then(n=>Y(n.default,t,e)):Y(i,t,e)}u(Ot,"o");function Ct(i){return typeof i=="function"}u(Ct,"isProvideFunction");var L=class L{constructor(t,e){l(this,"root");l(this,"options");l(this,"providers",new Map);this.root=t,this.options=e,L.currentApp=this;}provide(t,e){if(this.providers.has(t)){console.warn(`[OUID] - Provider ${t} already exists`);return}this.providers.set(t,Ct(e)?{provide:e}:{value:e});}inject(t){return this.providers.get(t)?.value}use(t,e){return t.install(this,e),this}async mount(t){if(!globalThis.__OUI_PUR_JS_CONTEXT__)return;this.options?.css&&await OUID.injectComponentStyles(this.options.css),await OUID.injectComponentStyles(`
5
+ `);}return e}static of(e,...s){return new J(e,s.join(`
6
+ `))}};f(J,"StyleData");var tt=J;function ot(o,e,s){return new o(e,s)}f(ot,"createComponent");var ct=class ct{constructor(e={},s={}){p(this,"state");p(this,"parent");p(this,"emits");p(this,"props");p(this,"provides",new Map);this.state=new Z(this),this.props=e,this.emits=new X(s);}onActivated(){}onDeactivated(){}onMounted(){}willMount(){}willUnmount(){}provide(e,s){this.provides.set(e,s);}inject(e){let s=this;for(;s;){if(s.provides.has(e))return s.provides.get(e);s=s.parent;}}decorateHostElement(e){return Promise.resolve()}};f(ct,"OComponent");var W=ct;function z(o){let e=Date.now();return `${(1e3+Math.floor(Math.random()*9e3)+o.length).toString(16)}-${e.toString(16)}`}f(z,"generateUIID");(function(o){var b,v,k,S,E,A,T,D,B,_,M,H;let e=(b=class{constructor(){p(this,"actions",[]);}async exec(){await this.commit();}add(l){return this.actions.push(l),this}async commit(){let l=this.actions;this.actions=[],await Promise.all(l.map(async t=>await t()));}},f(b,"BatchActions"),b);o.BatchActions=e;let s=(v=class{constructor(l){p(this,"node");p(this,"operations",[]);this.node=l;}async exec(){let l=this.operations;this.operations=[];let t=l.map(i=>typeof i=="object"?this.node[i.fn].apply(this.node,i.args):Promise.resolve(i()));try{await Promise.all(t);}catch{console.error("Error while batch updates");}}append(l,...t){return this.operations.push({fn:l,args:t}),this}add(l){return this.operations.push(l),this}addEventListener(l,t,i,a){return this.append("addEventListener",l,t,{options:i,policy:a})}setProperty(l,t){return this.append("setAttribute",l,t)}dettachEventListener(l){return this.append("dettachEventListener",l)}invoke(l,...t){return this.append("invoke",l,...t)}dispatchEvent(l,t,i){return this.append("dispatchEvent",l,t,i)}addClass(...l){return this.append("addClass",...l)}removeClass(...l){return this.append("removeClass",...l)}setAttribute(l,t){return this.append("setAttribute",l,t)}removeAttribute(l){return this.append("removeAttribute",l)}appendChild(l){return this.append("appendChild",l)}removeChild(l){return this.append("removeChild",l)}remove(){return this.append("remove")}removeAndRelease(){return this.append("removeAndRelease")}release(){return this.append("release")}innerHTML(l){return this.append("setHTML",l)}replaceChildNode(l,t){return this.append("replaceChildNode",l,t)}replaceWith(l){return this.append("replaceWith",l)}after(l){return this.append("after",l)}setInnerText(l){return this.append("setInnerText",l)}setContentText(l){return this.append("setContentText",l)}insertBefore(l,t){return this.append("insertBefore",l,t)}setInputValue(l){return this.append("setInputValue",l)}setStyle(l,t){return this.append("setStyle",l,t)}},f(v,"BatchUpdates"),v);o.BatchUpdates=s;let n=(k=class{constructor(l,t){p(this,"uid");p(this,"tag");this.uid=l,this.tag=t;}async release(){await y.call("releaseNode",this.uid);}async addEventListener(l,t,i){return y.addEventListener(this,l,t,{options:i?.options,policy:i?.policy})}async dettachEventListener(l){await y.dettachEventListener(l);}async invoke(l,...t){return await y.call("invokeObjectMethod",this.uid,l,...t)}async invokeAndHold(l,...t){let i=await y.call("invokeObjectMethodAndHold",this.uid,l,...t);return i&&new k(i.uid,i.tag)}async getProperty(l){return await y.call("getObjectProperty",this.uid,l)}async setProperty(l,t){await y.call("setObjectProperty",this.uid,l,t);}async dispatchEvent(l,t,i){await y.call("dispatchEvent",this.uid,l,t,i);}updates(){return new s(this)}batches(){return new s(this)}get ref(){return {__ref__:this.uid}}},f(k,"OObject"),k);o.OObject=n;let r=(S=class extends n{constructor(t){super(t.uid,t.tag);p(this,"textContent");p(this,"type","Unknown");p(this,"attributes");p(this,"children");p(this,"classes");p(this,"style");for(let i in t)this[i]=t[i];this.attributes??(this.attributes=[]),this.classes??(this.classes=[]),this.style??(this.style="");}},f(S,"ONode"),S);o.ONode=r;let c=(E=class extends r{constructor(t){super(t);p(this,"_hydrated",false);}async addClass(...t){await y.call("addClass",this.uid,...t);}async removeClass(...t){await y.call("removeClass",this.uid,...t);}async setAttribute(t,i){let a=await y.call("setAttribute",this.uid,t,i);a&&(this.attributes=a);}async removeAttribute(t){let i=await y.call("removeAttribute",this.uid,t);i&&(this.attributes=i);}async appendChild(t){await y.call("appendChild",this.uid,t.uid);}set innerHTML(t){this.setHTML(t);}async cloneNode(t){let i=await y.call("cloneNode",this.uid,t);return i?new E(i):null}async remove(){await y.call("removeNode",this.uid);}async removeAndRelease(){await this.remove(),await this.release();}async removeChild(t){await y.call("removeChild",this.uid,t.uid);}async replaceChildNode(t,i){await y.call("replaceChildNode",this.uid,t.uid,i.uid);}async replaceWith(t){await y.call("replaceWith",this.uid,t.uid);}async after(t){await y.call("insertAfter",this.uid,t.uid);}async setHTML(t){await y.call("setInnerHTML",this.uid,t);}async HTML(){return await y.call("getInnerHTML",this.uid)??""}async setInnerText(t){await y.call("setInnerText",this.uid,t);}async setContentText(t){await y.call("setContentText",this.uid,t);}async getContentText(){return await y.call("getContentText",this.uid)??""}async content(){try{return await y.call("getInnerText",this.uid)??""}catch(t){return console.error(t),""}}async childNodes(){return (await y.call("childNodes",this.uid))?.map(t=>new E(t))??[]}hasAttribute(t){return !!this.attributes.find(i=>i.name===t)}async getAttribute(t){return await y.call("getAttribte",this.uid,t)??""}attribute(t){return this.attributes.find(i=>i.name===t)?.value??null}async nextSibling(){let t=await y.call("nextSibling",this.uid);return t?new E(t):null}async getAttributeNames(){return await y.call("getAttributeNames",this.uid)??[]}async parentNode(){let t=await y.call("parentNode",this.uid);return t?new E(t):null}async insertBefore(t,i){await y.call("insertBefore",this.uid,i.uid,t.uid);}async setInputValue(t){await y.call("setInputValue",this.uid,t);}async inputValue(){return await y.call("inputValue",this.uid)??""}get hydrated(){return this._hydrated}hydrate(){this._hydrated=true,this.addClass("hydrated");}async query(t,i){return await y.query(t,i,this.uid)}async queryAll(t,i){return await y.queryAll(t,i,this.uid)}async setStyle(t,i){await y.call("setStyle",this.uid,t,i);}},f(E,"OElement"),E);o.OElement=c;let u=(A=class extends n{constructor(l){super(l.uid,l.tag);}addColorStop(l,t){return this.invoke("addColorStop",l,t),this}},f(A,"CanvasGradient"),A);o.CanvasGradient=u;let w=(T=class extends n{constructor(t){super(t.uid,t.tag);p(this,"batch",new s(this));}static async new(t){let i=typeof t<"u"?await y.newObject("DOMMatrix",t):await y.newObject("DOMMatrix");return i?new T(i):null}invertSelf(){return this.batch.invoke("invertSelf"),this}multiplySelf(t){return this.batch.invoke("multiplySelf",...t?[t.ref]:[]),this}premultiplySelf(t){return this.batch.invoke("premultiplySelf",...t?[t.ref]:[]),this}rotateAxisAngleSelf(t,i,a,h){let d=[];return t&&d.push(t),i&&d.push(i),a&&d.push(a),h&&d.push(h),this.batch.invoke("rotateAxisAngleSelf",...d),this}rotateFromVectorSelf(t,i){let a=[];return t&&a.push(t),i&&a.push(i),this.batch.invoke("rotateFromVectorSelf",...a),this}rotateSelf(t,i,a){let h=[];return t&&h.push(t),i&&h.push(i),a&&h.push(a),this.batch.invoke("rotateFromVectorSelf",...h),this}scale3dSelf(t,i,a,h){let d=[];return t&&d.push(t),i&&d.push(i),a&&d.push(a),h&&d.push(h),this.batch.invoke("scale3dSelf",...d),this}scaleSelf(t,i,a,h,d,C){let P=[];return t&&P.push(t),i&&P.push(i),a&&P.push(a),h&&P.push(h),d&&P.push(d),C&&P.push(C),this.batch.invoke("scaleSelf",...P),this}setMatrixValue(t){return this.invoke("setMatrixValue",t),this}skewXSelf(t){return this.batch.invoke("skewXSelf",t),this}skewYSelf(t){return this.batch.invoke("skewYSelf",t),this}translateSelf(t,i,a){return this.batch.invoke("translateSelf",t,i,...a?[a]:[]),this}async commit(){await this.batch.exec();}async is2D(){return await this.invoke("is2D")??false}async isIdentity(){return await this.invoke("isIdentity")??false}async flipX(){let t=await this.invokeAndHold("flipX");return t?new T(t):null}async flipY(){let t=await this.invokeAndHold("flipY");return t?new T(t):null}async inverse(){let t=await this.invokeAndHold("inverse");return t?new T(t):null}async multiply(t){let i=await this.invokeAndHold("multiply",...t?[t.ref]:[]);return i?new T(i):null}async rotate(t,i,a){let h=[];t&&h.push(t),i&&h.push(i),a&&h.push(a);let d=await this.invokeAndHold("rotate",...h);return d?new T(d):null}async rotateAxisAngle(t,i,a,h){let d=[];t&&d.push(t),i&&d.push(i),a&&d.push(a),h&&d.push(h);let C=await this.invokeAndHold("rotateAxisAngle",...d);return C?new T(C):null}async rotateFromVector(t,i){let a=[];t&&a.push(t),i&&a.push(i);let h=await this.invokeAndHold("rotateFromVector",...a);return h?new T(h):null}async scale(t,i,a,h,d,C){let P=[];t&&P.push(t),i&&P.push(i),a&&P.push(a),h&&P.push(h),d&&P.push(d),C&&P.push(C);let R=await this.invokeAndHold("scale",...P);return R?new T(R):null}async scale3d(t,i,a,h){let d=[];t&&d.push(t),i&&d.push(i),a&&d.push(a),h&&d.push(h);let C=await this.invokeAndHold("scale",...d);return C?new T(C):null}async skewX(t){let i=[];t&&i.push(t);let a=await this.invokeAndHold("skewX",...i);return a?new T(a):null}async skewY(t){let i=[];t&&i.push(t);let a=await this.invokeAndHold("skewY",...i);return a?new T(a):null}toJSON(){return this.invoke("toJSON")}async toString(){return this.invoke("toString")}async translate(t,i,a){let h=[];t&&h.push(t),i&&h.push(i),a&&h.push(a);let d=await this.invokeAndHold("translate",...h);return d?new T(d):null}},f(T,"DOMMatrix"),T);o.DOMMatrix=w;let m=(D=class extends n{constructor(l){super(l.uid,l.tag);}setTransform(l){this.invoke("setTransform",l.ref);}},f(D,"CanvasPattern"),D);o.CanvasPattern=m;let O=(B=class extends n{constructor(t){super(t,"unknown");p(this,"batch",new s(this));}arc(t,i,a,h,d,C=false){return this.batch.invoke("arc",t,i,a,h,d,C),this}arcTo(t,i,a,h,d){return this.batch.invoke("arcTo",t,i,a,h,d),this}bezierCurveTo(t,i,a,h,d,C){return this.batch.invoke("bezierCurveTo",t,i,a,h,d,C),this}clearRect(t,i,a,h){return this.batch.invoke("clearRect",t,i,a,h),this}clip(t,i){let a=[];return typeof t=="string"?a.push(t):t instanceof g&&(t.commit(),a.push(t.ref)),typeof i=="string"&&a.push(i),this.batch.invoke("clip",...a),this}beginPath(){return this.batch.invoke("beginPath"),this}closePath(){return this.batch.invoke("closePath"),this}async createConicGradient(t,i,a){let h=await this.invokeAndHold("createConicGradient",t,i,a);return h?new u(h):null}async createLinearGradient(t,i,a,h){let d=await this.invokeAndHold("createLinearGradient",t,i,a,h);return d?new u(d):null}async createPattern(t,i=""){let a=await this.invokeAndHold("createPattern",t.ref,i);return a?new m(a):null}async createRadialGradient(t,i,a,h,d,C){let P=await this.invokeAndHold("createRadialGradient",t,i,a,h,d,C);return P?new u(P):null}drawImage(t,i,a,h,d,C,P,R,Lt){let q=[t.ref];return typeof C>"u"?(q.push(i,a),h&&q.push(h),d&&q.push(d),this.batch.invoke("drawImage",...q),this):(q.push(i,a,h,d,C,P,R,Lt),this.batch.invoke("drawImage",...q),this)}ellipse(t,i,a,h,d,C,P,R=false){return this.batch.invoke("ellipse",t,i,a,h,d,C,P,R),this}fill(t,i){let a=[];return t&&a.push(typeof t=="string"?t:(t.commit(),t.ref)),i&&a.push(i),this.batch.invoke("fill",...a),this}fillRect(t,i,a,h){return this.batch.invoke("fillRect",t,i,a,h),this}fillText(t,i,a,h){return this.batch.invoke("fillText",t,i,a,...h?[h]:[]),this}getImageData(t,i,a,h,d){return this.invokeAndHold("getImageData",t,i,a,h,...d?[d]:[])}getLineDash(){return this.invoke("getLineDash")}async getTransform(){let t=await this.invokeAndHold("getTransform");return t?new w(t):null}async isContextLost(){return await this.invoke("isContextLost")}async isPointInPath(t,i,a,h){let d=[];return typeof t=="number"?(d.push(t,i),a&&d.push(a)):(t.commit(),d.push(t.ref,i,a,h??"nonzero")),await this.invoke("isPointInPath",...d)??false}async isPointInStroke(t,i,a){let h=[];return typeof t=="number"?h.push(t,i):(t.commit(),h.push(t.ref,i,a)),await this.invoke("isPointInStroke",...h)??false}lineTo(t,i){return this.batch.invoke("lineTo",t,i),this}async measureText(t){return await this.invoke("measureText",t)??0}moveTo(t,i){return this.batch.invoke("moveTo",t,i),this}putImageData(t,i,a,h,d,C,P){let R=[t.ref,i,a];return h&&R.push(h),d&&R.push(d),C&&R.push(C),P&&R.push(P),this.batch.invoke("putImageData",...R),this}quadraticCurveTo(t,i,a,h){return this.batch.invoke("quadraticCurveTo",t,i,a,h),this}rect(t,i,a,h){return this.batch.invoke("rect",t,i,a,h),this}reset(){this.invoke("reset");}resetTransform(){this.invoke("resetTransform");}restore(){return this.invoke("restore")}rotate(t){return this.batch.invoke("rotate",t),this}roundRect(t,i,a,h,d){return this.batch.invoke("roundRect",t,i,a,h,d),this}save(){return this.invoke("save")}scale(t,i){return this.batch.invoke("scale",t,i),this}setLineDash(t){return this.invoke("setLineDash",t)}async setTransform(t,i,a,h,d,C){typeof t=="number"?await this.invoke("setTransform",t,i,a,h,d,C):await this.invoke("setTransform",t.ref);}stroke(t){return this.batch.invoke("stroke",...t?[(t.commit(),t.ref)]:[]),this}strokeRect(t,i,a,h){return this.batch.invoke("strokeRect",t,i,a,h),this}strokeText(t,i,a,h){return this.batch.invoke("strokeText",t,i,a,...h?[h]:[]),this}transform(t,i,a,h,d,C){return this.batch.invoke("transform",t,i,a,h,d,C),this}translate(t,i){return this.batch.invoke("translate",t,i),this}set fillStyle(t){this.setFillStyle(t);}async setFillStyle(t){return await this.setProperty("fillStyle",typeof t=="string"?t:t instanceof n?t.ref:t),this}set filter(t){this.setFilter(t);}async setFilter(t){return await this.setProperty("filter",t),this}set font(t){this.setFont(t);}async setFont(t){return await this.setProperty("font",t),this}set fontKerning(t){this.setFontKerning(t);}async setFontKerning(t){return await this.setProperty("fontKerning",t),this}set fontStretch(t){this.setFontStretch(t);}async setFontStretch(t){return await this.setProperty("fontStretch",t),this}set fontVariantCaps(t){this.setFontVariantCaps(t);}async setFontVariantCaps(t){return await this.setProperty("fontVariantCaps",t),this}set globalAlpha(t){this.setGlobalAlpha(t);}async setGlobalAlpha(t){return await this.setProperty("globalAlpha",t),this}set globalCompositeOperation(t){this.setGlobalCompositeOperation(t);}async setGlobalCompositeOperation(t){return await this.setProperty("globalCompositeOperation",t),this}set imageSmoothingEnabled(t){this.setImageSmoothingEnabled(t);}async setImageSmoothingEnabled(t){return await this.setProperty("imageSmoothingEnabled",t),this}set imageSmoothingQuality(t){this.setImageSmoothingQuality(t);}async setImageSmoothingQuality(t){return await this.setProperty("imageSmoothingQuality",t),this}set letterSpacing(t){this.setLetterSpacing(t);}async setLetterSpacing(t){return await this.setProperty("letterSpacing",t),this}set lineCap(t){this.setLineCap(t);}async setLineCap(t){return await this.setProperty("lineCap",t),this}set lineDashOffset(t){this.setLineDashOffset(t);}async setLineDashOffset(t){return await this.setProperty("lineDashOffset",t),this}set lineJoin(t){this.setLineJoin(t);}async setLineJoin(t){return await this.setProperty("lineJoin",t),this}set lineWidth(t){this.setLineWidth(t);}async setLineWidth(t){return await this.setProperty("lineWidth",t),this}set miterLimit(t){this.setMiterLimit(t);}async setMiterLimit(t){return await this.setProperty("miterLimit",t),this}set shadowBlur(t){this.setShadowBlur(t);}async setShadowBlur(t){return await this.setProperty("shadowBlur",t),this}set shadowColor(t){this.setShadowColor(t);}async setShadowColor(t){return await this.setProperty("shadowColor",t),this}set shadowOffsetX(t){this.setShadowOffsetX(t);}async setShadowOffsetX(t){return await this.setProperty("shadowOffsetX",t),this}set shadowOffsetY(t){this.setShadowOffsetY(t);}async setShadowOffsetY(t){return await this.setProperty("shadowOffsetY",t),this}set strokeStyle(t){this.setStrokeStyle(t);}async setStrokeStyle(t){return await this.setProperty("strokeStyle",typeof t=="string"?t:t instanceof n?t.ref:t),this}set textAlign(t){this.setTextAlign(t);}async setTextAlign(t){return await this.setProperty("textAlign",t),this}set textBaseline(t){this.setTextBaseline(t);}async setTextBaseline(t){return await this.setProperty("textBaseline",t),this}set wordSpacing(t){this.setWordSpacing(t);}async setWordSpacing(t){return await this.setProperty("wordSpacing",t),this}set textRendering(t){this.setTextRendering(t);}async setTextRendering(t){return await this.setProperty("textRendering",t),this}async commit(){await this.batch.exec();}},f(B,"Canvas2DContext"),B);o.Canvas2DContext=O;let L=(_=class extends n{constructor(l){super(l.uid,l.tag);}static async new(l,t){let i=[];l&&i.push(l),t&&i.push(t);let a=await y.newObject("Image",...i);return a?new _(a):null}async width(){return await this.getProperty("width")??0}async height(){return await this.getProperty("height")??0}async naturalWidth(){return await this.getProperty("naturalWidth")??0}async naturalHeight(){return await this.getProperty("naturalHeight")??0}async src(){return await this.getProperty("src")}async currentSrc(){return await this.getProperty("currentSrc")}async setSrc(l){await this.setProperty("src",l);}},f(_,"Image"),_);o.Image=L;let g=(M=class extends n{constructor(t){super(t.uid,t.tag);p(this,"batch",new s(this));}static async create(){let t=await y.newObject("Path2D");return t?new M(t):null}addPath(t){return this.batch.invoke("addPath",t.ref),this}arc(t,i,a,h,d,C=false){return this.batch.invoke("arc",t,i,a,h,d,C),this}arcTo(t,i,a,h,d){return this.batch.invoke("arcTo",t,i,a,h,d),this}bezierCurveTo(t,i,a,h,d,C){return this.batch.invoke("bezierCurveTo",t,i,a,h,d,C),this}quadraticCurveTo(t,i,a,h){return this.batch.invoke("quadraticCurveTo",t,i,a,h),this}closePath(){return this.batch.invoke("closePath"),this}ellipse(t,i,a,h,d,C,P,R=false){return this.batch.invoke("ellipse",t,i,a,h,d,C,P,R),this}moveTo(t,i){return this.batch.invoke("moveTo",t,i),this}lineTo(t,i){return this.batch.invoke("lineTo",t,i),this}rect(t,i,a,h){return this.batch.invoke("rect",t,i,a,h),this}roundRect(t,i,a,h,d){return this.batch.invoke("roundRect",t,i,a,h,d),this}async commit(){await this.batch.exec();}},f(M,"CanvasPath2D"),M);o.CanvasPath2D=g;let x=(H=class extends c{constructor(l){super(l);}async width(){return this.getProperty("width")}async height(){return this.getProperty("height")}async setWidth(l){this.setProperty("width",l);}async setHeight(l){this.setProperty("height",l);}async getContext(l){let t=await this.invokeAndHold("getContext",l);return t&&new O(t.uid)}static async of(l,t,i){let a=await y.query(l,t);return a?new H(a):null}},f(H,"CanvasElement"),H);o.CanvasElement=x;})(exports.ODOM||(exports.ODOM={}));var lt=class lt{constructor(){p(this,"callbacks",new Map);p(this,"DOM_EVENT_LISTENERS",new Map);p(this,"timers",new Map);p(this,"_config");p(this,"listeners",new Map);this.subscribe("__ouid_native_event_success__",(e,s)=>{let n=this.callbacks.get(e);if(n)return this.callbacks.delete(e),n.success(...JSON.parse(s))}),this.subscribe("__ouid_native_event_error__",(e,s)=>{let n=this.callbacks.get(e);if(n)return this.callbacks.delete(e),console.log("Error:",s),n.error(...JSON.parse(s))}),this.subscribe("__ouid_web_event__",(e,s)=>{let n=this.DOM_EVENT_LISTENERS.get(e);if(n){let c=JSON.parse(s)[1];return c&&(c.target=c?.target?new exports.ODOM.OElement(c.target):null,c.currentTarget=c?.currentTarget?new exports.ODOM.OElement(c.currentTarget):null,c.relatedTarget=c?.relatedTarget?new exports.ODOM.OElement(c.relatedTarget):null),n(c)}});}config(e){return this._config=e,this}invoke(e,...s){let n=z(e);return new Promise((r,c)=>{this.callbacks.set(n,{success:r,error:c});try{if(!WebOUID)throw new Error("NativeOUID bridge not available");WebOUID.invoke(n,e,JSON.stringify(s));}catch(u){console.error(u),this.callbacks.delete(n);}})}registerComponent(e,s){U.register(e,s);}unregisterComponent(e,s){U.unregister(e);}async call(e,...s){try{return (await this.invoke(`_ouid_${e}`,...s)).data}catch(n){return console.error(n),null}}emit(e,s){WebOUID?.invoke("event",e,JSON.stringify(s));}subscribe(e,s){this.listeners.has(e)||(this.listeners.set(e,[]),globalThis[e]=(n,r)=>{this.listeners.get(e)?.forEach(c=>c(n,r));}),this.listeners.get(e).push(s);}async query(e,s,n){let r=await this.call("query",e,s,n);return r?new exports.ODOM.OElement(r):null}async queryAll(e,s,n){let r=await this.call("queryAll",e,s,n);return r?r.map(c=>new exports.ODOM.OElement(c)):[]}async createElement(e,s={}){let n=await this.call("createElement",e,s);return n?new exports.ODOM.OElement(n):null}async createComment(e){let s=await this.call("createComment",e);return s?new exports.ODOM.OElement(s):null}async addEventListener(e,s,n,r){let c=z(s+(typeof e=="string"?e:e.tag));return this.DOM_EVENT_LISTENERS.set(c,n),await y.call("attachEventListener",typeof e=="string"?e:e.uid,c,s,r?.options,r?.policy),c}async dettachEventListener(e){this.DOM_EVENT_LISTENERS.delete(e),await y.call("dettachEventListener",e);}async injectComponentStyles(e){let s=await y.call("injectComponentStyles",e);return s?new exports.ODOM.OElement(s):null}async rejectComponentStyles(e){await y.call("rejectComponentStyles",e.uid);}async getOObject(e){let s=await y.call("getOObject",e);return s?new exports.ODOM.OObject(s.uid,s.tag):null}async acquireObject(e){let s=await y.call("acquireObject",e);return s?new exports.ODOM.OObject(s.uid,s.tag):null}async setTimeout(e,s){let n=z("setTimeout"+s);this.DOM_EVENT_LISTENERS.set(n,()=>{e();let c=this.timers.get(r);c&&(this.timers.delete(r),this.DOM_EVENT_LISTENERS.delete(c));});let r=await y.call("setTimeout",n,s)??-1;return r>=0&&this.timers.set(r,n),r}async clearTimeout(e){let s=this.timers.get(e);s&&(this.timers.delete(e),this.DOM_EVENT_LISTENERS.delete(s),await y.call("clearTimeout",e));}async setInterval(e,s){let n=z("setInterval"+s);this.DOM_EVENT_LISTENERS.set(n,e);let r=await y.call("setInterval",n,s)??-1;return r>=0&&this.timers.set(r,n),r}async clearInterval(e){let s=this.timers.get(e);s&&(this.timers.delete(e),this.DOM_EVENT_LISTENERS.delete(s),await y.call("clearInterval",e));}async fetch(e,s,n="json"){return await y.call("fetch",e,s,n)}async alert(e){await y.call("alert",e);}async prompt(e){await y.call("prompt",e);}async newObject(e,...s){return y.call("newObject",e,...s)}};f(lt,"OUIDBridge");var ht=lt,y=new Proxy(new ht,{get:f((o,e)=>e in o?o[e]:async(...s)=>await o.call(e,...s),"get")});globalThis.OUID=y;exports.ODOM=void 0;function Nt(o){return o.replace(/-([a-z])/g,(e,s)=>s.toUpperCase())}f(Nt,"toCamelCase");function _t(o){return o.replace(/(?!^)([A-Z])/g,(e,s)=>`-${s.toLowerCase()}`)}f(_t,"toSnakeCase");function N(o){return vt(o)?o.value:o}f(N,"normaliseValue");var Mt=typeof globalThis.queueMicrotask=="function",V=f(o=>o?Mt?queueMicrotask(o):Promise.resolve().then(o):Promise.resolve(),"deferMicro"),ue=f(()=>new Promise(o=>setTimeout(o,0)),"deferMacro");function Ht(o){return typeof o=="function"&&!("prototype"in o)}f(Ht,"isLazyLoader");var bt=new Map,kt=new Map,Ct=new WeakMap;function xt(o){if(!o||typeof o!="object"&&typeof o!="function")return {};let e=Ct.get(o);if(e)return e;let s=Object.create(null);for(let n=o;n&&n!==Object.prototype;n=Object.getPrototypeOf(n))for(let r of Object.getOwnPropertyNames(n)){if(r==="constructor"||r.startsWith("__")||r.endsWith("__")||r in s)continue;let c=Object.getOwnPropertyDescriptor(n,r);if(!c)continue;let u=c.value??(c.get?c.get.call(o):void 0);s[r]=typeof u=="function"?u.bind(o):u;}return Ct.set(o,s),s}f(xt,"getMethodsView");function Et(o,e){let s=bt.get(o);return s||(s=new Function("s","with (s) { return ("+o+"); }"),bt.set(o,s)),s(e)}f(Et,"evalInScope");function Ut(o){let e=kt.get(o);if(e)return e;let s=[],n=0;for(;n<o.length;){let r=o.indexOf("{{",n);if(r<0){s.push({t:o.slice(n)});break}r>n&&s.push({t:o.slice(n,r)});let c=o.indexOf("}}",r+2),u=c>=0?o.slice(r+2,c).trim():o.slice(r+2).trim();s.push({e:u}),n=c>=0?c+2:o.length;}return e=f(r=>{let c="";for(let u of s)if(u.t!==void 0)c+=u.t;else if(u.e!==void 0){let w=N(Et(u.e,r));c+=w==null?"":String(w);}return c},"fn"),kt.set(o,e),e}f(Ut,"compileInterpolated");var j=class j{constructor(e,s,n,...r){p(this,"app");p(this,"component");p(this,"parentContext");p(this,"bindings",[]);p(this,"directives",[]);p(this,"mountedComponents",new WeakMap);p(this,"componentsRegistry",new G);p(this,"updatingDirectives",false);p(this,"updatingBindings",false);p(this,"_stack",[]);p(this,"flatStack",Object.create(null));p(this,"hydradationActions",new exports.ODOM.BatchActions);this.app=e,this.component=s,this.parentContext=n;for(let c of r)this.push(c);}get hostElement(){return this.component._hostElement}get stack(){return this._stack}set stack(e){this.flatStack=Object.create(null),this._stack=[];for(let s of e)this.push(s);}getMountedComponent(e){return this.mountedComponents.get(e)}bind(e){this.bindings.push(e);}directive(e){this.directives.push(e);}evaluateExpression(e){return this.resolve(e)}resolve(e,s=true,...n){if(!e)return;let r=this.component.state?.value??{},c=xt(r),u=new Proxy(Object.create(null),{get:f((w,m)=>{for(let O=n.length-1;O>=0;O--)if(m in n[O])return n[O][m];return m in this.flatStack?this.flatStack[m]:m in c?c[m]:r[m]},"get"),has:f((w,m)=>n.some(O=>m in O)||m in this.flatStack||m in c||m in r,"has")});try{return Et(e,u)}catch{return}}updateValue(e,s){let n=e.split(/[\.\[]/)[0];n in this.component?this.resolve(`${e}=__o_model_value__`,true,{__o_model_value__:s}):this.resolve(`${e}=__o_model_value__`,true,{__o_model_value__:s}),this.component.state.didChange(n,void 0,s);}push(e){this._stack.unshift(e),Object.assign(this.flatStack,e);}pop(){let e=this._stack.shift();if(e)for(let s of Object.keys(e))delete this.flatStack[s];}resolveTag(e){let s=this;for(;;){if(s.componentsRegistry.has(e))return s.componentsRegistry.get(e);if(s=s?.parentContext??null,!s)break}return U.get(e)}async updateBindings(e){if(this.updatingBindings)return;let s=!e;e=e??new exports.ODOM.BatchActions,this.updatingBindings=true;for(let n of this.bindings)this.updateBinding(n,e);this.updatingBindings=false,s&&await e.commit();}updateBinding(e,s){if(e.type==="model"){e.node.setProperty("value",N(e.context.resolve(e.key)));return}if(e.type==="interpolation"){s.add(async()=>{let n=e.templateFn({...this.flatStack,...xt(this.component.state?.value??{}),...this.component.state?.value??{}});await e.node.setContentText(n);});return}if(e.type==="attribute"){let n=e.key,r=N(this.resolve(e.template));n==="class"?s.add(()=>this.expandClass(e.node,r)):n==="style"?this.expandStyle(e.node,r):typeof r!="object"&&typeof r!="function"&&typeof r!="symbol"&&typeof r<"u"&&s.add(()=>e.node.setAttribute(n,r.toString()));return}if(e.type==="prop"&&e.context.component){let n=N(this.resolve(e.template));try{e.context.component.props[e.key]=n,e.context.updateBindings(),e.context.updateDirectives();}catch(r){console.error(r);}return}}async updateDirectives(e){if(this.updatingDirectives)return;let s=!e;this.updatingDirectives=true,e=e??new exports.ODOM.BatchActions;for(let n of this.directives){if(n.type==="if"){if(!N(n.context.evaluateExpression(n.expr))){if(n.active===false)continue;n.active=false,n.renderedNode&&(n.destroy?(this.unmountComponent(n.renderedNode),await n.renderedNode.removeAndRelease()):await n.renderedNode.addClass("oui-hidden"));continue}if(n.active===true)continue;n.active=true;let c=n.renderedNode;if(!c||n.destroy){let u=await n.node.cloneNode(true);n.renderedNode=u,await n.context.render(u),await n.placeholder.after(u),await n.context.hydradationActions.commit();}else await c.removeClass("oui-hidden");}if(n.type==="for"){let r=n.children??new Map,c=new Map,u=f((b,v)=>n.key?N(n.context.resolve(n.key,true,{[n.item]:b})):v,"keyFn"),w=N(n.context.resolve(n.list))||[],m=new exports.ODOM.BatchActions,O=32,L=0,g=[],x=n.placeholder;for(let b=0;b<w.length;b++){let v=w[b],k=u(v,b),S=r.get(k),E,A,T=x;S?(E=S.node,A=S.ctx,A.stack=[{[n.item]:v},...n.context.stack],m.add(async()=>{let D=await x.nextSibling();E.uid!==D?.uid&&m.add(()=>T.after(E));}),await Promise.all([A.updateBindings(e),A.updateDirectives(e)])):(A=new j(this.app,this.component,this),A.hydradationActions=this.hydradationActions,A.stack=[{[n.item]:v},...n.context.stack],E=await n.node.cloneNode(true),m.add(async()=>{await T.after(E);}),g.push(async()=>{await A.render(E),await A.updateDirectives(e);})),x=E,c.set(k,{node:E,ctx:A}),++L>=O&&(L=0,await m.commit(),await V());}for(let[b,v]of r.entries())c.has(b)||(this.unmountComponent(v.node),m.add(()=>v.node.removeAndRelease()));if(await m.commit(),g.length)for(let v=0;v<g.length;v+=12){let k=g.slice(v,v+12).map(S=>S());await Promise.all(k),await V();}n.children=c;}}s&&await e.commit(),await this.hydradationActions.commit(),this.updatingDirectives=false;}async render(e,s){if(e.hydrated||s?.skipSlotted&&e.hasAttribute("slotted"))return;switch(e.type){case "Text":this.handleTextNode(e);break;case "Element":await this.handleElementNode(e,s);break;}let n=new exports.ODOM.BatchActions;await Promise.all([this.updateBindings(n),this.updateDirectives(n)]),n.commit(),this.hydradationActions.add(()=>e.hydrate());}async expandClass(e,s){let n;typeof s=="object"?Array.isArray(s)?n=s:n=Object.keys(s).filter(r=>s[r]):n=s.toString().split(/\s+/),n.length>0&&await e.addClass(...n);}expandStyle(e,s){let n=s;typeof s=="object"&&!Array.isArray(s)&&(n=Object.keys(s).filter(r=>s[r]).map(r=>`${_t(r)}: ${s[r]}`).join(";")),n&&e.setAttribute("style",n);}expandStandardAttributes(e){let s=e.updates();[...e.attributes].filter(n=>n.name.startsWith(":")).forEach(n=>{let r=n.name.substring(1);this.bind({type:"attribute",node:e,key:r,context:this,template:n.value.trim()}),s.removeAttribute(n.name);}),s.exec();}async handleElementNode(e,s){let n=await e.parentNode(),r=null,c=e.hasAttribute("o-if")?"o-if":e.hasAttribute("o-show")?"o-show":null;if(c){let v=await e.getAttribute(c),k=await OUID.createComment(c+":"+v),S=c==="o-if";await n.insertBefore(k,e),await e.updates().removeAttribute(c).remove().exec(),this.directive({type:"if",expr:v,node:e,placeholder:k,context:this,active:void 0,destroy:S}),r="if";return}if(e.hasAttribute("o-for")){if(r==="if")throw new Error("Can't have o-if and o-for on the same component");let v=await e.getAttribute("o-for"),[k,S]=v.split(" of ").map(T=>T.trim()),E=await OUID.createComment("for:"+v),A=e.attribute(":key")??"";await n?.insertBefore(E,e),await e.updates().removeAttribute("o-for").removeAttribute(":key").remove().exec(),this.directive({type:"for",item:k,list:S,node:e,placeholder:E,context:this,key:A}),r="for";return}let u=e.tag.toLowerCase(),w=this.resolveTag(u),m=e.updates();[...e.attributes].forEach(async v=>{if(v.name==="o-model"){let k=v.value.trim();m.setInputValue(N(this.resolve(k))).addEventListener("input",async E=>{let A=await E.target.getProperty("value");this.updateValue(k,A);}),this.bind({node:e,key:k,type:"model",context:this}),m.removeAttribute(v.name);}});let O={},L={},{props:g,events:x}=this.componentAttributes(e,this);if(O=g,L=x,this.expandStandardAttributes(e),Object.keys(L).forEach(async v=>{let k=L[v];w||m.addEventListener(v,S=>{typeof k=="function"&&k.apply(this.component,[S]);}),m.removeAttribute("@"+v);}),await m.exec(),w){await this.mountComponent(e,w,this,O,L);return}let b=await e.childNodes();s?.skipSlotted&&(b=b.filter(v=>!v.hasAttribute("slotted")));for(let v of b)await this.render(v,s);}handleTextNode(e){let s=e.textContent??"";s.includes("{{")&&this.bind({type:"interpolation",node:e,key:"__template__",templateFn:Ut(s),context:this});}componentAttributes(e,s){let n={},r={},c=["import","interface","module","o-model","o-if","o-for"];return [...e.attributes].filter(u=>!c.includes(u.name)).forEach(u=>{let w=u.name;if(w.startsWith("@")){let L=s?.resolve(u.value,true);if(typeof L!="function")throw new Error("Event handler can only be function");w=w.substring(1),r[w]=L;return}let m=null,O=u.value;w.startsWith(":")&&(m=u.value,w=w.substring(1),O=N(s?.resolve(u.value))),w=Nt(w),n[w]={name:w,value:O,expr:m};}),{props:n,events:r}}async mountComponent(e,s,n,r={},c={}){if(this.mountedComponents.has(e))return this.mountedComponents.get(e);let u=new j(this.app,{},this),w={};for(let g of Object.keys(r)){let x=r[g];x.expr&&this.bind({type:"prop",node:e,key:g,context:u,template:x.expr}),w[g]=x.value;}let m=await Vt(s,w,c);u.component=m,u.stack=[],this.mountedComponents.set(e,m);{let g=e.updates();for(let b of Object.keys(r))r[b].expr||g.setAttribute(b,r[b].value);let x=m.hostClasses??[];x&&(x=typeof x=="string"?[x]:x),x.push("o-component-host"),e.tag.toLowerCase()!=="div"&&x.push("c-"+e.tag.toLowerCase()),g.addClass(...x),await g.exec();}V(async()=>{try{await m.decorateHostElement(e);}catch{}});{let g=m.use??{};for(let x of Object.keys(g))u.componentsRegistry.register(x,g[x]);}if(m.willMount(),!s.cssInstance){let g=m.style?m.style()?.toString():m.css;g&&(s.cssInstance??(s.cssInstance=await OUID.injectComponentStyles(g)));}V(()=>{let g=s.cssInstance;if(g){let x=j.STYLE_REF.get(g)??0;j.STYLE_REF.set(g,x+1),m.cssInstance=g;}});let O=await e.childNodes();if(m.render){let g=await m.render(u);g&&g.attachTo(e);}else await e.setHTML(m.template.trim());let L=await e.queryAll("slot");L&&L.length&&await Promise.all(L.filter(g=>!g.classes?.includes("hydrated")).map(async g=>{let x=g.attribute("name"),b=O.filter(k=>x?k.type==="Element"&&k.attribute("slot")===x:k.type!=="Element"||!k.hasAttribute("slot"));if(!b.length)return;let v=new exports.ODOM.BatchActions;for(let k of b)v.add(()=>k.setAttribute("slotted","true")),v.add(()=>g.appendChild(k));await v.commit(),await Promise.all(b.map(k=>this.render(k)));})),m._hostElement=e,m.parent=n?.component??void 0,m.provide(j.PROVIDE_TOKEN,this);{let g=await e.childNodes(),x=6,b=0;for(;b<g.length;){let v=g.slice(b,b+x);await Promise.all(v.map(k=>u.render(k,{skipSlotted:true}))),b+=x;}await u.hydradationActions.commit();}return V(()=>{try{m.onMounted();}catch{}e.hydrate();}),m.state.watch(()=>{let g=new exports.ODOM.BatchActions;u.updateBindings(g),u.updateDirectives(g),g.commit();}),m}async unmountComponent(e){let s=this.mountedComponents.get(e);if(s){let r=s.cssInstance;if(r){let c=j.STYLE_REF.get(r)??1;c===1?(await OUID.rejectComponentStyles(r),j.STYLE_REF.delete(r)):j.STYLE_REF.set(r,c-1);}s.willUnmount(),s._hostElement=null,s.cssInstance=null;}let n=await e.queryAll("*")??[];for(let r of n)await this.unmountComponent(r);this.mountedComponents.delete(e);}};f(j,"RenderContext"),p(j,"PROVIDE_TOKEN","RENDER_CONTEXT"),p(j,"STYLE_REF",new WeakMap);var $=j;async function de(o,e,s=[],n){let r=e??{},c=await OUID.createElement(o,Object.keys(r).reduce((u,w)=>(u[w]=r[w],u),{}));return Object.keys(n??{}).forEach(u=>{c?.addEventListener(u,w=>{let m=n[u];typeof m=="function"&&m(w);});}),new F(c,s)}f(de,"node");function Vt(o,e,s){return Ht(o)?o().then(n=>ot(n.default,e,s)):ot(o,e,s)}f(Vt,"o");function Bt(o){return typeof o=="function"}f(Bt,"isProvideFunction");var Q=class Q{constructor(e,s){p(this,"root");p(this,"options");p(this,"providers",new Map);this.root=e,this.options=s,Q.currentApp=this;}provide(e,s){if(this.providers.has(e)){console.warn(`[OUID] - Provider ${e} already exists`);return}this.providers.set(e,Bt(s)?{provide:s}:{value:s});}inject(e){return this.providers.get(e)?.value}use(e,s){return e.install(this,s),this}async mount(e){if(!globalThis.__OUI_PUR_JS_CONTEXT__)return;this.options?.css&&await OUID.injectComponentStyles(this.options.css),await OUID.injectComponentStyles(`
7
7
  * {
8
- ${t} * {
8
+ ${e} * {
9
9
  visibility: hidden;
10
10
  }
11
- ${t} *.hydrated {
11
+ ${e} *.hydrated {
12
12
  visibility: inherit;
13
13
  }
14
14
  .oui-hidden {
15
15
  display: none !important;
16
16
  }
17
- `);let e=await OUID.query(t);if(!e)throw new Error("No selector found for "+t);let n=new A(this,{},null);n.mountComponent(e,this.root,null).then(()=>{n.updateBindings(),n.updateDirectives();});}};u(L,"App"),l(L,"currentApp",null);var H=L;function te(i,t){H.currentApp?.provide(i,t);}u(te,"provide");function ut(i){return H.currentApp?.inject(i)??void 0}u(ut,"inject");function Tt(i,t,e,n){var s=arguments.length,o=s<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var p=i.length-1;p>=0;p--)(c=i[p])&&(o=(s<3?c(o):s>3?c(t,e,o):c(t,e))||o);return s>3&&o&&Object.defineProperty(t,e,o),o}u(Tt,"_ts_decorate");var Q=class Q extends _{constructor(){super(...arguments);l(this,"router");}willMount(){}onMounted(){this.router=St(),this.router?.bind(this).then(e=>{e?.();});}willUnmount(){this.router?.unbind();}};u(Q,"ORouter");exports.ORouter=Q;exports.ORouter=Tt([rt({tag:"o-router",template:`
17
+ `);let s=await OUID.query(e);if(!s)throw new Error("No selector found for "+e);let n=new $(this,{},null);n.mountComponent(s,this.root,null).then(()=>{n.updateBindings(),n.updateDirectives();});}};f(Q,"App"),p(Q,"currentApp",null);var st=Q;function we(o,e){st.currentApp?.provide(o,e);}f(we,"provide");function St(o){return st.currentApp?.inject(o)??void 0}f(St,"inject");function qt(o,e,s,n){var r=arguments.length,c=r<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,s):n,u;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")c=Reflect.decorate(o,e,s,n);else for(var w=o.length-1;w>=0;w--)(u=o[w])&&(c=(r<3?u(c):r>3?u(e,s,c):u(e,s))||c);return r>3&&c&&Object.defineProperty(e,s,c),c}f(qt,"_ts_decorate");var ft=class ft extends W{constructor(){super(...arguments);p(this,"router");}willMount(){}onMounted(){this.router=Ft(),this.router?.bind(this).then(s=>{s?.();});}willUnmount(){this.router?.unbind();}};f(ft,"ORouter");exports.ORouter=ft;exports.ORouter=qt([gt({tag:"o-router",template:`
18
18
  <div id="router-view"></div>
19
19
  `,css:`
20
- #router-view {
20
+ #router-view {
21
21
  height: 100%;
22
22
  }
23
- `})],exports.ORouter);var pt="OROUTER_TOKEN",G="ACTIVE_ROUTE";function St(){return ut(pt)}u(St,"useRouter");function oe(i){return new X(i)}u(oe,"createRouter");function ht(i,t){let e=new dt__default.default(i.path).reverse(t);return e===false?"":e}u(ht,"generatePath");var Z=class Z{constructor(t){l(this,"routes");l(this,"windowObject",null);l(this,"guards",[]);l(this,"eventRegistration",null);this.routes=t;}install(t){t.provide(pt,this),OUID.registerComponent("o-router",exports.ORouter);}resolve(t){let e=new dt__default.default(t),n=t.split("?").reverse()[0].split("&").reduce((s,o)=>{let c=o.split("=");return s[c[0]]=decodeURIComponent(c[1]),s},{});for(let s of this.routes){let o=e.match(s.path);if(o)return {route:s,params:o,query:n}}return null}push(t){if(!t.path&&!t.name){console.warn("[OUID-Router]: no path or name provided to push");return}if(t.name){let e=this.routes.find(s=>s.name===t.name);if(!e){console.warn("[OUID-Router]: No matched route name found");return}let n=ht(e,t.params??{});this.windowObject?.invoke("history.pushState",{},"",n),this.windowObject?.dispatchEvent("popstate","PopStateEvent",{state:{}});return}if(t.absolute&&t.path&&this.windowObject?.invoke("history.pushState",{},"",t.path),t.path){let e=this.routes.find(n=>n.path===t.path);if(e){let n=ht(e,t.params??{});this.windowObject?.invoke("history.pushState",{},"",n),this.windowObject?.dispatchEvent("popstate","PopStateEvent",{state:{}});return}}}pop(){this.windowObject?.invoke("history.back"),this.windowObject?.dispatchEvent("popstate","PopStateEvent",{state:{}});}async beforeRouteGoing(t,e){for(let n of this.guards.filter(s=>s.type==="before")){let s=await n.fn(t,e);if(s)return s}}async afterRouteGoing(t,e){for(let n of this.guards.filter(s=>s.type==="after")){let s=await n.fn(t,e);if(s)return s}}async bind(t){this.windowObject=await OUID.acquireObject("window");let e=u(async()=>{let n=await this.windowObject?.getProperty("location.pathname"),s=this.resolve(n);if(!s){console.warn(`[Router] No route found for: ${n}`);return}let o=await this.beforeRouteGoing({url:n,path:n,name:s.route.name},t.inject(G));if(o){typeof o=="object"&&"name"in o&&this.push({name:o.name,params:o.params});return}let c=t.inject(A.PROVIDE_TOKEN),p=await c?.hostElement.query("#router-view");p&&(t.provide(G,{params:s.params,query:s.query}),await c?.mountComponent(p,s.route.component,c),await this.afterRouteGoing({url:n,path:n,name:s.route.name},t.inject(G)));},"handler");return this.eventRegistration=await this.windowObject.addEventListener("popstate",e.bind(this)),e}unbind(){this.eventRegistration&&this.windowObject?.dettachEventListener("popstate",this.eventRegistration);}beforeEach(t){let e={fn:t,type:"before"};return this.guards.push(e),()=>{this.guards.splice(this.guards.indexOf(e));}}afterEach(t){let e={fn:t,type:"after"};return this.guards.push(e),()=>{this.guards.splice(this.guards.indexOf(e));}}};u(Z,"Router");var X=Z;var tt=class tt extends _{render(t){return S.of('<i class="o-icon"><slot></slot></i>')}style(){return B.of({i:`
23
+ .route-hidden { display: none; }
24
+ `})],exports.ORouter);var Pt="OROUTER_TOKEN",ut="ACTIVE_ROUTE";function Ft(){return St(Pt)}f(Ft,"useRouter");function xe(o){return new pt(o)}f(xe,"createRouter");function Tt(o,e){let s=new At__default.default(o.path).reverse(e);return s===false?"":s}f(Tt,"generatePath");function Ot(o){o&&(o.__isActive=true,typeof o.onActivated=="function"&&o.onActivated());}f(Ot,"activate");function dt(o){o&&(o.__isActive=false,typeof o.onDeactivated=="function"&&o.onDeactivated());}f(dt,"deactivate");var mt=class mt{constructor(e){p(this,"routes");p(this,"windowObject",null);p(this,"guards",[]);p(this,"eventRegistration",null);p(this,"compiled");p(this,"outletEl",null);p(this,"keepAlive",new Map);p(this,"keepAliveLimit",3);p(this,"pendingNav",null);this.routes=e,this.compiled=e.map(s=>({route:s,parser:new At__default.default(s.path)}));}install(e){e.provide(Pt,this),OUID.registerComponent("o-router",exports.ORouter);}resolve(e){let[s,n=""]=e.split("?"),r=n?n.split("&").reduce((c,u)=>{let[w,m=""]=u.split("=");return w&&(c[w]=decodeURIComponent(m)),c},{}):{};for(let c of this.compiled){let u=c.parser.match(s);if(u)return {route:c.route,params:u,query:r}}return null}push(e){if(!e.path&&!e.name){console.warn("[OUID-Router]: no path or name provided to push");return}if(e.name){let s=this.routes.find(r=>r.name===e.name);if(!s){console.warn("[OUID-Router]: No matched route name found");return}let n=Tt(s,e.params??{});this.windowObject?.invoke("history.pushState",{},"",n),this.windowObject?.dispatchEvent("popstate","PopStateEvent",{state:{}});return}if(e.absolute&&e.path&&this.windowObject?.invoke("history.pushState",{},"",e.path),e.path){let s=this.routes.find(n=>n.path===e.path);if(s){let n=Tt(s,e.params??{});this.windowObject?.invoke("history.pushState",{},"",n),this.windowObject?.dispatchEvent("popstate","PopStateEvent",{state:{}});return}}}pop(){this.windowObject?.invoke("history.back"),this.windowObject?.dispatchEvent("popstate","PopStateEvent",{state:{}});}async beforeRouteGoing(e,s){for(let n of this.guards.filter(r=>r.type==="before")){let r=await n.fn(e,s);if(r)return r}}async afterRouteGoing(e,s){for(let n of this.guards.filter(r=>r.type==="after")){let r=await n.fn(e,s);if(r)return r}}async bind(e){this.windowObject=await OUID.acquireObject("window");let s=f(async()=>{this.windowObject||(this.windowObject=await OUID.acquireObject("window"));let c=await this.windowObject.getProperty("location.pathname"),u=this.resolve(c);if(!u){console.warn(`[Router] No route found for: ${c}`);return}let w=e.inject($.PROVIDE_TOKEN);this.outletEl||(this.outletEl=await w.hostElement.query("#router-view"));let m=this.outletEl;if(!m)return;let O=await this.beforeRouteGoing({url:c,path:c,name:u.route.name},e.inject(ut));if(O){typeof O=="object"&&"name"in O&&this.push({name:O.name,params:O.params});return}e.provide(ut,{params:u.params,query:u.query});let L=u.route.name,g=this.keepAlive.get(L),x=await m.childNodes(),b=x[x.length-1]??null,v=await OUID.createElement("div",{class:"route-staging route-hidden"});await m.appendChild(v);let k=v;if(console.log("Changing route",c,u,g),g){k=g.host;let S=m.updates();S.add(()=>v.after(k)),S.removeChild(v),b&&S.add(()=>b.addClass("route-hidden")),S.add(()=>k.removeClass("route-hidden")),await S.exec(),console.log("Cached route",k,v),await Promise.all([g.ctx.updateBindings(),g.ctx.updateDirectives()]);let E=w.getMountedComponent(b)??null;dt(E),Ot(g.inst);}else {let S=await w.mountComponent(v,u.route.component,w),E=m.updates();if(b&&E.add(()=>b.addClass("route-hidden")),E.add(()=>v.removeClass("route-hidden")),await E.exec(),Ot(S),this.keepAlive.set(L,{host:v,ctx:w,inst:S}),this.keepAlive.size>this.keepAliveLimit){let A=this.keepAlive.keys().next().value;if(A){let T=this.keepAlive.get(A);dt(T.inst),await w.unmountComponent(T.host),await T.host.removeAndRelease(),this.keepAlive.delete(A);}}}if(b){let S=w.getMountedComponent(b)??null;[...this.keepAlive.values()].some(A=>A.host.uid===b.uid)||(dt(S),await w.unmountComponent(b),await b.removeAndRelease());}await this.afterRouteGoing({url:c,path:c,name:u.route.name},e.inject(ut)),await V();},"handler"),n=f(async()=>this.pendingNav?this.pendingNav:(this.pendingNav=(async()=>{try{await s();}finally{this.pendingNav=null;}})(),this.pendingNav),"run"),r=await this.windowObject.addEventListener("popstate",n);return this.eventRegistration=r,s}unbind(){this.eventRegistration&&this.windowObject?.dettachEventListener(this.eventRegistration);}beforeEach(e){let s={fn:e,type:"before"};return this.guards.push(s),()=>{this.guards.splice(this.guards.indexOf(s));}}afterEach(e){let s={fn:e,type:"after"};return this.guards.push(s),()=>{this.guards.splice(this.guards.indexOf(s));}}};f(mt,"Router");var pt=mt;var wt=class wt extends W{render(e){return F.of('<i class="o-icon"><slot></slot></i>')}style(){return tt.of({i:`
24
25
  display: inline-block;
25
26
  width: 1em;
26
27
  height: 1em;
27
28
  vertical-align: -0.15em;
28
29
  overflow: hidden;
29
- `})}};u(tt,"OIcon");var ft=tt;function fe(){return T.getAll().reduce((t,[e,n])=>(t[e]=n,t),{})}u(fe,"components");exports.ACTIVE_ROUTE_TOKEN=G;exports.App=H;exports.Component=rt;exports.Emits=P;exports.Native=qt;exports.OComponent=_;exports.OIcon=ft;exports.OUID=f;exports.OUIDBridge=K;exports.ROUTER_INJECTION_TOKEN=pt;exports.RenderContext=A;exports.RenderNode=S;exports.Router=X;exports.State=U;exports.Stated=j;exports.StyleData=B;exports.components=fe;exports.createComponent=Y;exports.createRouter=oe;exports.deferMacro=zt;exports.deferMicro=R;exports.inject=ut;exports.isStated=st;exports.node=Gt;exports.o=Ot;exports.provide=te;exports.stated=wt;exports.useRouter=St;//# sourceMappingURL=index.cjs.map
30
+ `})}};f(wt,"OIcon");var It=wt;function Ie(){return U.getAll().reduce((e,[s,n])=>(e[s]=n,e),{})}f(Ie,"components");exports.ACTIVE_ROUTE_TOKEN=ut;exports.App=st;exports.Component=gt;exports.Emits=X;exports.OComponent=W;exports.OIcon=It;exports.OUID=y;exports.OUIDBridge=ht;exports.ROUTER_INJECTION_TOKEN=Pt;exports.RenderContext=$;exports.RenderNode=F;exports.Router=pt;exports.State=Z;exports.Stated=K;exports.StyleData=tt;exports.components=Ie;exports.createComponent=ot;exports.createRouter=xe;exports.deferMacro=ue;exports.deferMicro=V;exports.inject=St;exports.isStated=vt;exports.node=de;exports.o=Vt;exports.provide=we;exports.stated=jt;exports.useRouter=Ft;//# sourceMappingURL=index.cjs.map
30
31
  //# sourceMappingURL=index.cjs.map