ouider 0.0.6 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dom/dom.cjs +1 -1
- package/dist/dom/dom.cjs.map +1 -1
- package/dist/dom/dom.js +1 -1
- package/dist/dom/dom.js.map +1 -1
- package/dist/index.cjs +5 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/dom/dom.js.map
CHANGED
|
@@ -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","log","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.log('element', element)\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\tconsole.log('setting style for:', key, value, node)\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\tconsole.log('event fired:', eventName, e, 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","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"]}
|
package/dist/index.cjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
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];
|
|
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
2
|
`:"";for(let e in this.data){let n=this.data[e];typeof n=="string"?t+=`${e} { ${n} }
|
|
3
3
|
`:n instanceof I&&(t+=`${e} {
|
|
4
4
|
${n.toString()}}
|
|
5
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(o){return this.actions.push(o),this}async commit(){let o=this.actions;this.actions=[],await Promise.all(o.map(async r=>await r()));}},u(c,"BatchActions"),c);i.BatchActions=t;let e=(p=class{constructor(o){l(this,"node");l(this,"operations",[]);this.node=o;}async exec(){let o=this.operations.map(r=>typeof r=="object"?this.node[r.fn].apply(this.node,r.args):Promise.resolve(r()));try{await Promise.all(o);}catch{console.error("Error while batch updates");}}append(o,...r){return this.operations.push({fn:o,args:r}),this}add(o){return this.operations.push(o),this}addEventListener(o,r){return this.append("addEventListener",o,r)}setProperty(o,r){return this.append("setAttribute",o,r)}dettachEventListener(o,r){return this.append("dettachEventListener",o,r)}invoke(o,...r){return this.append("invoke",o,...r)}dispatchEvent(o,r,d){return this.append("dispatchEvent",o,r,d)}addClass(...o){return this.append("addClass",...o)}removeClass(...o){return this.append("removeClass",...o)}setAttribute(o,r){return this.append("setAttribute",o,r)}removeAttribute(o){return this.append("removeAttribute",o)}appendChild(o){return this.append("appendChild",o)}removeChild(o){return this.append("removeChild",o)}remove(){return this.append("remove")}removeAndRelease(){return this.append("removeAndRelease")}release(){return this.append("release")}innerHTML(o){return this.append("setHTML",o)}replaceChildNode(o,r){return this.append("replaceChildNode",o,r)}replaceWith(o){return this.append("replaceWith",o)}after(o){return this.append("after",o)}setInnerText(o){return this.append("setInnerText",o)}setContentText(o){return this.append("setContentText",o)}insertBefore(o,r){return this.append("insertBefore",o,r)}setInputValue(o){return this.append("setInputValue",o)}setStyle(o,r){return this.append("setStyle",o,r)}},u(p,"BatchUpdates"),p);i.BatchUpdates=e;let n=(h=class{constructor(o,r){l(this,"uid");l(this,"tag");this.uid=o,this.tag=r;}async addEventListener(o,r){return f.addEventListener(this,o,r)}async dettachEventListener(o,r){await f.dettachEventListener(this,o,r);}async invoke(o,...r){await f.call("invokeObjectMethod",this.uid,o,...r);}async getProperty(o){return await f.call("getObjectProperty",this.uid,o)}async setProperty(o,r){await f.call("setObjectProperty",this.uid,o,r);}async dispatchEvent(o,r,d){await f.call("dispatchEvent",this.uid,o,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 a=(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=a;})(exports.ODOM||(exports.ODOM={}));function qt(){return function(i,t,e){e.value;e.value=async(...s)=>{let a=s[0];try{let c=await f.invoke(t,[{props:a.getSafePropsForNative}]);console.log("result from native function"),a.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 a=JSON.parse(e)[1];return a&&(a.target=a?.target?new exports.ODOM.OElement(a.target):null),n(a)}});}config(t){return this._config=t,this}invoke(t,...e){let n=N(t);return new Promise((s,a)=>{this.callbacks.set(n,{success:s,error:a});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(a=>a(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(a=>new exports.ODOM.OElement(a)):[]}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 a=this.timers.get(s);a&&(this.timers.delete(s),this.DOM_EVENT_LISTENERS.delete(a));});let s=await f.call("setTimeout",n,e)??-1;return console.log("Timer id",s),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,ot=new Map,at=new WeakMap;function ct(i){if(!i||typeof i!="object"&&typeof i!="function")return {};let t=at.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 a=Object.getOwnPropertyDescriptor(n,s);if(!a)continue;let c=a.value??(a.get?a.get.call(i):void 0);e[s]=typeof c=="function"?c.bind(i):c;}return at.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=ot.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 a=i.indexOf("}}",s+2),c=a>=0?i.slice(s+2,a).trim():i.slice(s+2).trim();e.push({e:c}),n=a>=0?a+2:i.length;}return t=u(s=>{let a="";for(let c of e)if(c.t!==void 0)a+=c.t;else if(c.e!==void 0){let p=lt(c.e,s);a+=p==null?"":String(p);}return a},"fn"),ot.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 a of s)this.push(a);}get hostElement(){return this.component._hostElement}get stack(){return this._stack}set stack(t){console.log("value::",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??{},a=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 a?a[h]:s[h]},"get"),has:u((p,h)=>n.some(y=>h in y)||h in this.flatStack||h in a||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 a=n.renderedNode;if(!a||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 a.removeClass("oui-hidden");}if(n.type==="for"){let s=n.children??new Map,a=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=[],o=n.placeholder;for(let r=0;r<p.length;r++){let d=p[r],w=c(d,r),b=s.get(w),E,O,D=o;b?(E=b.node,O=b.ctx,O.stack=[{[n.item]:d},...n.context.stack],h.add(async()=>{let et=await o.nextSibling();E.uid!==et?.uid&&h.add(()=>D.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 D.after(E);}),m.push(async()=>{await O.render(E),await O.updateDirectives(t);})),o=E,a.set(w,{node:E,ctx:O}),++v>=y&&(v=0,await h.commit(),await R());}for(let[r,d]of s.entries())a.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=a;}}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,a=t.hasAttribute("o-if")?"o-if":t.hasAttribute("o-show")?"o-show":null;if(a){let d=await t.getAttribute(a),w=await OUID.createComment(a+":"+d),b=a==="o-if";await n.insertBefore(w,t),await t.updates().removeAttribute(a).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(D=>D.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:o}=this.componentAttributes(t,this);if(y=m,v=o,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={},a=["import","interface","module","o-model","o-if","o-for"];return [...t.attributes].filter(c=>!a.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={},a={}){if(this.mountedComponents.has(t))return;let c=new x(this.app,{},this),p={};for(let m of Object.keys(s)){let o=s[m];o.expr&&this.bind({type:"prop",node:t,key:m,context:c,template:o.expr}),p[m]=o.value;}let h=await Ot(e,p,a);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 o=h.hostClasses??[];o&&(o=typeof o=="string"?[o]:o),o.push("o-component-host"),t.tag.toLowerCase()!=="div"&&o.push("c-"+t.tag.toLowerCase()),m.addClass(...o),await m.exec();}R(async()=>{try{await h.decorateHostElement(t);}catch{}});{let m=h.use??{};for(let o of Object.keys(m))c.componentsRegistry.register(o,m[o]);}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 o=x.STYLE_REF.get(m)??0;x.STYLE_REF.set(m,o+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 o=m.attribute("name"),r=y.filter(w=>o?w.type==="Element"&&w.attribute("slot")===o: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(),o=6,r=0;for(;r<m.length;){let d=m.slice(r,r+o);await Promise.all(d.map(w=>c.render(w,{skipSlotted:true}))),r+=o;}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 a=x.STYLE_REF.get(s)??1;a===1?(await OUID.rejectComponentStyles(s),x.STYLE_REF.delete(s)):x.STYLE_REF.set(s,a-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??{},a=await OUID.createElement(i,Object.keys(s).reduce((c,p)=>(c[p]=s[p],c),{}));return Object.keys(n??{}).forEach(c=>{a?.addEventListener(c,p=>{let h=n[c];typeof h=="function"&&h(p);});}),new S(a,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&&(console.log("Injecting app css",this.options.css),await OUID.injectComponentStyles(this.options.css)),await OUID.injectComponentStyles(`
|
|
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(`
|
|
7
7
|
* {
|
|
8
8
|
${t} * {
|
|
9
9
|
visibility: hidden;
|
|
@@ -14,17 +14,17 @@ ${n.toString()}}
|
|
|
14
14
|
.oui-hidden {
|
|
15
15
|
display: none !important;
|
|
16
16
|
}
|
|
17
|
-
`);let e=await OUID.query(t);if(
|
|
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:`
|
|
18
18
|
<div id="router-view"></div>
|
|
19
19
|
`,css:`
|
|
20
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
|
|
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:`
|
|
24
24
|
display: inline-block;
|
|
25
25
|
width: 1em;
|
|
26
26
|
height: 1em;
|
|
27
27
|
vertical-align: -0.15em;
|
|
28
28
|
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=
|
|
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
30
|
//# sourceMappingURL=index.cjs.map
|