ouider 0.0.3 → 0.0.5
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 +2 -1
- package/dist/dom/dom.cjs.map +1 -1
- package/dist/dom/dom.js +2 -1
- package/dist/dom/dom.js.map +1 -1
- package/dist/index.cjs +28 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +199 -101
- package/dist/index.d.ts +199 -101
- package/dist/index.js +28 -2
- package/dist/index.js.map +1 -1
- package/package.json +7 -2
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","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","setAttribute","forEach","f","children","classes","classList","style","cssText","textContent","createElement","props","el","k","createComment","data","elementId","has","id","padStart","set","error","console","log","removeFromRegistry","n","delete","appendChild","childId","child","setInnerText","text","innerText","setContentText","getContentText","addClass","add","getInnerText","removeAttribute","getAttribte","getAttribute","getAttribteNames","getAttributeNames","cloneNode","subtree","removeNode","remove","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","parentNode","setInnerHTML","html","getInnerHTML","invokeObjectMethod","fn","args","tmp","getAdvanceObjectProperty","method","apply","getObjectProperty","obj","path","els","split","current","setAdvanceObjectProperty","setObjectProperty","listeners","NativeOUID","invoke","JSON","stringify","subscribe","event","callback","window","fnName","argsJson","push","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_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","observe","body","childList","result","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\n\treturn [...node.childNodes].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']) : new Set(['attributes'])\n\tif (isElementNode(element)) {\n\t\telement.setAttribute('ouid-uid', node.uid)\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 el = document.createElement(tag, {})\n\tfor (const k in props) {\n\t\tel.setAttribute(k, props[k])\n\t}\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 addClass(nodeId: string, name: string) {\n\tconst node = ELEMENT_REGISTRY.get(nodeId)\n\tif (!isElementNode(node)) {\n\t\treturn\n\t}\n\tnode.classList.add(name)\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 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 (!isElementNode(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}\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_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\tobserver.observe(document.body, { childList: true, subtree: true });\n\tsubscribe('__native_message__', (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 = (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","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","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\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,4 +1,30 @@
|
|
|
1
|
-
'use strict';var X=require('route-parser');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var X__default=/*#__PURE__*/_interopDefault(X);var F=Object.defineProperty;var tt=(a,t,e)=>t in a?F(a,t,{enumerable:true,configurable:true,writable:true,value:e}):a[t]=e;var h=(a,t)=>F(a,"name",{value:t,configurable:true});var u=(a,t,e)=>tt(a,typeof t!="symbol"?t+"":t,e);var E,et=(E=class{constructor(){u(this,"components",new Map);}register(t,e){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())}getAll(){return Array.from(this.components.entries())}},h(E,"ComponentsRegistry"),E),O=new et;var L=class L{constructor(t){u(this,"events");this.events=t;}emit(t,...e){let n=this.events[t];n&&n(...e);}};h(L,"Emits");var I=L;var M=class M{constructor(t){u(this,"value");this.value=t;}};h(M,"Stated");var C=M;function J(a){return typeof a=="object"&&!Array.isArray(a)&&"value"in a&&a instanceof C}h(J,"isStated");function nt(a,t){let e=h((n,s=new Map)=>{if(s.has(n))return s.get(n);let c=new Proxy(n,{set:h((o,l,r)=>{let i=o[l];return typeof r=="object"?o[l]=e(r):o[l]=r,t.didChange(l,i,r),true},"set"),get:h((o,l)=>Reflect.get(o,l),"get")});s.set(n,c);for(let o=n;o;o=Object.getPrototypeOf(o))Object.keys(o).forEach(l=>{let r=n[l];typeof r=="object"&&(n[l]=e(r,s));});return c},"proxify");if(typeof a=="function")throw new Error("Can't create reactive element over a function");return typeof a!="object"&&typeof a!="symbol"?new Proxy(new C(a),{set:h((n,s,c)=>{if(s!=="value")throw new Error(`Undefined property ${String(s)} access`);let o=n[s];return n[s]=c,t.didChange(s,o,c),true},"set"),get:h((n,s)=>{if(s!=="value")throw new Error(`Undefined property ${String(s)} access`);return n[s]},"get")}):new C(e(a))}h(nt,"stated");var P=class P{constructor(t){u(this,"THRESHOLD_TIME",50);u(this,"debounceTime",new Date().getTime());u(this,"state");u(this,"listeners",[]);u(this,"timer",null);this.state=new Proxy(t,{set:h((e,n,s)=>{let c=e[n];return e[n]=s,this.didChange(n,c,s),true},"set"),get:h((e,n)=>e[n],"get")});}wrap(t){return nt(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&&await OUID.clearTimeout(this.timer),this.debounceTime=s,this.timer=await OUID.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);}};h(P,"State");var N=P;var st=0;function K(a){return function(t){var s;let e=(s=class extends t{constructor(){super(...arguments);u(this,"template",a.template);u(this,"css",a.css);u(this,"hash","component-"+st+"-"+a.tag);}},h(s,"WithDecoration"),s),n=e;return O.register(a.tag,n),e}}h(K,"Component");function U(a,t,e){return new a(t,e)}h(U,"createComponent");var k=class k{constructor(t={},e={}){u(this,"state");u(this,"parent");u(this,"emits");u(this,"props");u(this,"provides",new Map);this.state=new N(this),this.props=t,this.emits=new I(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;}}};h(k,"OComponent");var S=k;function rt(a){return a.replace(/-([a-z])/g,(t,e)=>e.toUpperCase())}h(rt,"toCamelCase");function g(a){return J(a)?a.value:a}h(g,"normaliseValue");function it(a){let t={};for(let e=a;e;e=Object.getPrototypeOf(e))Object.getOwnPropertyNames(e).forEach(n=>{let s=a[n];typeof s=="function"&&n!=="constructor"&&!n.startsWith("__")&&!n.endsWith("__")?n in t||(t[n]=s.bind(a)):n!=="constructor"&&!n.startsWith("__")&&!n.endsWith("__")&&(n in t||(t[n]=s));});return t}h(it,"toObjectWithFunctions");function ot(a){return typeof a=="function"&&!("prototype"in a)}h(ot,"isLazyLoader");var b=class b{constructor(t,e,n,...s){u(this,"app");u(this,"component");u(this,"parentContext");u(this,"bindings",[]);u(this,"directives",[]);u(this,"mountedComponents",new WeakMap);u(this,"stack",[]);this.app=t,this.component=e,this.parentContext=n;for(let c of s)this.stack.push(c);}get hostElement(){return this.component._hostElement}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={...it(s)};for(let l of [...this.stack.reverse(),...n])Object.assign(o,l);try{let l=`${e?'"use strict";':""}return ${t};`,r=Object.keys(o),i=new Function(...r,l);return i.bind(this.component),i.apply(this.component,Object.values(o))}catch(l){console.log(this,t),console.error(l);}}updateValue(t,e){t.split(/[\.\[]/)[0]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("","","");}push(t){this.stack.unshift(t);}pop(){this.stack.shift();}async updateBindings(){this.bindings.forEach(t=>this.updateBinding(t));}async updateBinding(t){if(t.type==="model")t.node.setProperty("value",g(t.context.resolve(t.key)));else if(t.type==="interpolation")await t.node.setContentText(t.template?.replace(/\{\{(.*?)\}\}/g,(e,n)=>(n=n.trim(),g(t.context.resolve(n))))??"");else if(t.type==="attribute"){let e=t.key,n=g(this.resolve(t.template));e==="class"?this.expandClass(t.node,n):e==="style"?this.expandStyle(t.node,n):typeof n!="object"&&typeof n!="function"&&typeof n!="symbol"&&typeof n<"u"&&t.node.setAttribute(e,n.toString());}else if(t.type==="prop"&&t.context.component){let e=g(this.resolve(t.template));try{console.log({...t.context.component}),t.context.component.props[t.key]=e,t.context.updateBindings(),t.context.updateDirectives();}catch(n){console.error(n);}}}async updateDirectives(){for(let t of this.directives){if(t.type==="if"){let e=g(t.context.evaluateExpression(t.expr));e?t.active!==true&&(t.active=true,await t.placeholder.after(t.node),await t.context.render(t.node),t.context.updateBindings()):e||t.active!==false&&(this.unmountComponent(t.node),await t.node.remove(),t.active=false);}if(t.type==="for"){let e=t.children??new Map,n=new Map,s=h((l,r)=>t.key?g(t.context.resolve(t.key,true,{[t.item]:l})):r,"keyFn"),c=g(t.context.resolve(t.list))||[],o=t.placeholder;for(let l=0;l<c.length;l++){let r=c[l],d=s(r,l),y=e.get(d),f=y?.node,w={[t.item]:r},m=y?.ctx??new b(this.app,this.component,null);m.stack=[w,...t.context.stack],f?(m.updateBindings(),await m.updateDirectives()):(f=await t.node.cloneNode(true),await m.render(f),await o.after(f),m.updateBindings(),await m.updateDirectives()),o=f,n.set(d,{node:f,ctx:m});}for(let l in e){let r=e.get(l);n.has(l)||(this.unmountComponent(r.node),await r.node.remove());}t.children=n;}}}async render(t){switch(t.type){case "Text":this.handleTextNode(t);break;case "Element":await this.handleElementNode(t);break;default:console.warn("Unknown node",t);}}expandClass(t,e){let n=e;typeof e=="object"&&(Array.isArray(e)?n=e.join(" "):n=Object.keys(e).filter(s=>e[s]).join(" ")),t.setAttribute("class",n);}expandStyle(t,e){let n=e;typeof e=="object"&&!Array.isArray(e)&&(n=Object.keys(e).map(s=>`${s}: ${e[s]}`).join(";")),t.setAttribute("style",n);}expandStandardAttributes(t){[...t.attributes].filter(e=>e.name.startsWith(":")).forEach(e=>{let n=e.name.substring(1);this.bind({type:"attribute",node:t,key:n,context:this,template:e.value.trim()}),t.removeAttribute(e.name);});}async handleElementNode(t){let e=await t.parentNode(),n=null;if(t.hasAttribute("o-if")){let r=await t.getAttribute("o-if"),i=await OUID.createComment("o-if:"+r);await e.insertBefore(i,t),await t.removeAttribute("o-if"),this.directive({type:"if",expr:r,node:t,placeholder:i,context:this,active:void 0}),n="if";}if(t.hasAttribute("o-for")){if(n==="if")throw new Error("Can't have o-if and o-for on the same component");let r=await t.getAttribute("o-for"),[i,d]=r.split(" of ").map(w=>w.trim()),y=await OUID.createComment("for:"+r),f=t.attribute(":key")??"";await e?.insertBefore(y,t),await Promise.all([t.removeAttribute("o-for"),t.removeAttribute(":key")]),await t.remove(),this.directive({type:"for",item:i,list:d,node:t,placeholder:y,context:this,key:f}),n="for";}let s=t.tag.toLowerCase(),c=O.get(s);n!=="for"&&[...t.attributes].forEach(async r=>{if(r.name==="o-model"){let i=r.value.trim();if(t.tag==="input"||t.tag==="textarea"){let d=t;await d.setInputValue(g(this.resolve(i))),d.addEventListener("input",async y=>{let f=await y.target.getProperty("value");this.updateValue(i,f);}),this.bind({node:t,key:i,type:"model",context:this});}await t.removeAttribute(r.name);}});let o={},l={};if(n!=="for"){let{props:r,events:i}=this.componentAttributes(t,this);o=r,l=i,this.expandStandardAttributes(t),Object.keys(l).forEach(async d=>{let y=l[d];c||await t.addEventListener(d,f=>{typeof y=="function"&&y.apply(this.component,[f]);}),await t.removeAttribute("@"+d);});}if(!n){if(c){await this.mountComponent(t,c,this,o,l);return}for(let r of await t.childNodes())await this.render(r);}}handleTextNode(t){let e=t.textContent?.match(/\{\{(.*?)\}\}/g);e&&e.forEach(n=>{let s=n.replace(/[{}]/g,"").trim();this.bind({type:"interpolation",node:t,key:s,template:t.textContent,context:this});});}componentAttributes(t,e){let n={},s={},c=["import","interface","module","o-model","o-if","o-for"];return [...t.attributes].filter(o=>!c.includes(o.name)).forEach(o=>{let l=o.name;if(l.startsWith("@")){let d=e?.resolve(o.value,true);if(typeof d!="function")throw new Error("Event handler can only be function");l=l.substring(1),s[l]=d;return}let r=null,i=o.value;l.startsWith(":")&&(r=o.value,l=l.substring(1),i=g(e?.resolve(o.value))),l=rt(l),n[l]={name:l,value:i,expr:r};}),{props:n,events:s}}async mountComponent(t,e,n,s={},c={}){let o=await OUID.createdElement("div"),l=new b(this.app,{},null),r={};Object.keys(s).forEach(w=>{let m=s[w];m.expr&&this.bind({type:"prop",node:o,key:w,context:l,template:m.expr}),r[w]=m.value;});let i=await at(e,r,c);l.component=i,l.stack=[i.props],Object.keys(s).filter(w=>!s[w].expr).forEach(w=>o.setAttribute(w,s[w].value)),o.addClass("o-component-host"),t.tag.toLowerCase()!=="div"&&o.addClass("c-"+t.tag.toLowerCase()),i.willMount(),await o.setHTML(i.template.trim()),i.css&&(i.cssInstance=await OUID.injectComponentStyles(i.css));let d=await t.childNodes(),y=await o.queryAll("o-slot");if(y){let w=y.map(async m=>{let R=m.attribute("name"),Y=await m.parentNode();for(let Z of d.filter(j=>R?R&&j.type==="Element"&&j.attribute("slot")===R:j.type!=="Element"||!j.hasAttribute("slot")))await Y?.insertBefore(Z,m);});await Promise.all(w);}let f=o;await t.setHTML(""),await t.appendChild(o),i._hostElement=f,i.parent=n?.component??void 0,i.provide(b.PROVIDE_TOKEN,this),await l.render(f),l.updateBindings(),l.updateDirectives(),this.mountedComponents.set(f,i),i.onMounted(),i.state.watch(()=>{l.updateBindings(),l.updateDirectives();});}async unmountComponent(t){let e=this.mountedComponents.get(t);e&&(await OUID.rejectComponentStyles(e.cssInstance),e.willUnmount(),e._hostElement=null);let n=await t.queryAll("*")??[];for(let s of n)await this.unmountComponent(s);this.mountedComponents.delete(t);}};h(b,"RenderContext"),u(b,"PROVIDE_TOKEN","RENDER_CONTEXT");var x=b;function at(a,t,e){return ot(a)?a().then(n=>U(n.default,t,e)):U(a,t,e)}h(at,"o");function ct(a){return typeof a=="function"}h(ct,"isProvideFunction");var _=class _{constructor(t,e){u(this,"root");u(this,"options");u(this,"providers",new Map);this.root=t,this.options=e,_.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){return t.install(this),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));let e=await OUID.query(t);if(console.log("Mounting app on",e),!e)throw new Error("No selector found for "+t);let n=new x(this,{},null);n.mountComponent(e,this.root,null).then(()=>{n.updateBindings(),n.updateDirectives();});}};h(_,"App"),u(_,"currentApp",null);var A=_;function Nt(a,t){A.currentApp?.provide(a,t);}h(Nt,"provide");function z(a){return A.currentApp?.inject(a)??void 0}h(z,"inject");function lt(a,t,e,n){var s=arguments.length,c=s<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")c=Reflect.decorate(a,t,e,n);else for(var l=a.length-1;l>=0;l--)(o=a[l])&&(c=(s<3?o(c):s>3?o(t,e,c):o(t,e))||c);return s>3&&c&&Object.defineProperty(t,e,c),c}h(lt,"_ts_decorate");var q=class q extends S{constructor(){super(...arguments);u(this,"routeStateHander",null);u(this,"router");}willMount(){}onMounted(){this.router=ut(),console.log("Router mounted"),this.router?.bind(this).then(e=>{this.routeStateHander=e,this.routeStateHander?.();});}willUnmount(){console.log("Router will unmount"),this.router?.unbind(this.routeStateHander);}};h(q,"RouterComponent");exports.RouterComponent=q;exports.RouterComponent=lt([K({tag:"o-router",template:`
|
|
1
|
+
'use strict';var ot=require('route-parser');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var ot__default=/*#__PURE__*/_interopDefault(ot);var et=Object.defineProperty;var lt=(a,t,e)=>t in a?et(a,t,{enumerable:true,configurable:true,writable:true,value:e}):a[t]=e;var h=(a,t)=>et(a,"name",{value:t,configurable:true});var l=(a,t,e)=>lt(a,typeof t!="symbol"?t+"":t,e);var H=class H{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())}};h(H,"ComponentsRegistry");var S=H,T=new S;var q=class q{constructor(t){l(this,"events");this.events=t;}emit(t,...e){let n=this.events[t];console.log("Emitting event",t,n),n&&n(...e);}};h(q,"Emits");var P=q;var W=class W{constructor(t){l(this,"value");this.value=t;}};h(W,"Stated");var N=W;function nt(a){return typeof a=="object"&&!Array.isArray(a)&&"value"in a&&a instanceof N}h(nt,"isStated");function ut(a,t){let e=h((n,s=new Map)=>{if(s.has(n))return s.get(n);let o=new Proxy(n,{set:h((c,d,p)=>{let y=c[d];return typeof p=="object"?c[d]=e(p):c[d]=p,t.didChange(d,y,p),true},"set"),get:h((c,d)=>Reflect.get(c,d),"get")});s.set(n,o);for(let c=n;c;c=Object.getPrototypeOf(c))Object.keys(c).forEach(d=>{let p=n[d];typeof p=="object"&&(n[d]=e(p,s));});return o},"proxify");if(typeof a=="function")throw new Error("Can't create reactive element over a function");return typeof a!="object"&&typeof a!="symbol"?new Proxy(new N(a),{set:h((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:h((n,s)=>{if(s!=="value")throw new Error(`Undefined property ${String(s)} access`);return n[s]},"get")}):new N(e(a))}h(ut,"stated");var F=class F{constructor(t){l(this,"THRESHOLD_TIME",50);l(this,"debounceTime",new Date().getTime());l(this,"state");l(this,"listeners",[]);l(this,"timer",null);this.state=new Proxy(t,{set:h((e,n,s)=>{let o=e[n];return e[n]=s,this.didChange(n,o,s),true},"set"),get:h((e,n)=>e[n],"get")});}wrap(t){return ut(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&&await OUID.clearTimeout(this.timer),this.debounceTime=s,this.timer=await OUID.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);}};h(F,"State");var U=F;var ht=0;function st(a){return function(t){var s;let e=(s=class extends t{constructor(){super(...arguments);l(this,"template",a.template);l(this,"css",a.css);l(this,"tag",a.tag);l(this,"use",a.use);l(this,"hostClasses",a.hostClasses);l(this,"hash","component-"+ht+"-"+a.tag);}},h(s,"WithDecoration"),s),n=e;return n.tag=a.tag,e}}h(st,"Component");var B=class B{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 B(t,e)}addChild(t){return this.children.push(t),this}};h(B,"RenderNode");var A=B,R=class R{constructor(t,e){l(this,"data");l(this,"css");this.data=t,this.css=e;}toString(){let t=this.css?this.css+`
|
|
2
|
+
`:"";for(let e in this.data){let n=this.data[e];typeof n=="string"?t+=`${e} { ${n} }
|
|
3
|
+
`:n instanceof R&&(t+=`${e} {
|
|
4
|
+
${n.toString()}}
|
|
5
|
+
`);}return t}static of(t,...e){return new R(t,e.join(`
|
|
6
|
+
`))}};h(R,"StyleData");var V=R;function J(a,t,e){return new a(t,e)}h(J,"createComponent");var K=class K{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()}};h(K,"OComponent");var _=K;function L(a){let t=Date.now();return `${(1e3+Math.floor(Math.random()*9e3)+a.length).toString(16)}-${t.toString(16)}`}h(L,"generateUIID");(function(a){var c,d,p,y,m;let t=(c=class{constructor(){l(this,"actions",[]);}async exec(){}add(i){return this.actions.push(i),this}async commit(){let i=this.actions;this.actions=[],await Promise.all(i.map(async r=>await r()));}},h(c,"BatchActions"),c);a.BatchActions=t;let e=(d=class{constructor(i){l(this,"node");l(this,"operations",[]);this.node=i;}async exec(){let i=this.operations.map(r=>typeof r=="object"?this.node[r.fn].apply(this.node,r.args):Promise.resolve(r()));try{await Promise.all(i);}catch{console.error("Error while batch updates");}}append(i,...r){return this.operations.push({fn:i,args:r}),this}add(i){return this.operations.push(i),this}addEventListener(i,r){return this.append("addEventListener",i,r)}setProperty(i,r){return this.append("setAttribute",i,r)}dettachEventListener(i,r){return this.append("dettachEventListener",i,r)}invoke(i,...r){return this.append("invoke",i,...r)}dispatchEvent(i,r,u){return this.append("dispatchEvent",i,r,u)}addClass(...i){return this.append("addClass",...i)}removeClass(...i){return this.append("removeClass",...i)}setAttribute(i,r){return this.append("setAttribute",i,r)}removeAttribute(i){return this.append("removeAttribute",i)}appendChild(i){return this.append("appendChild",i)}removeChild(i){return this.append("removeChild",i)}remove(){return this.append("remove")}removeAndRelease(){return this.append("removeAndRelease")}release(){return this.append("release")}innerHTML(i){return this.append("setHTML",i)}replaceChildNode(i,r){return this.append("replaceChildNode",i,r)}replaceWith(i){return this.append("replaceWith",i)}after(i){return this.append("after",i)}setInnerText(i){return this.append("setInnerText",i)}setContentText(i){return this.append("setContentText",i)}insertBefore(i,r){return this.append("insertBefore",i,r)}setInputValue(i){return this.append("setInputValue",i)}setStyle(i,r){return this.append("setStyle",i,r)}},h(d,"BatchUpdates"),d);a.BatchUpdates=e;let n=(p=class{constructor(i,r){l(this,"uid");l(this,"tag");this.uid=i,this.tag=r;}async addEventListener(i,r){return f.addEventListener(this,i,r)}async dettachEventListener(i,r){await f.dettachEventListener(this,i,r);}async invoke(i,...r){await f.call("invokeObjectMethod",this.uid,i,...r);}async getProperty(i){return await f.call("getObjectProperty",this.uid,i)}async setProperty(i,r){await f.call("setObjectProperty",this.uid,i,r);}async dispatchEvent(i,r,u){await f.call("dispatchEvent",this.uid,i,r,u);}},h(p,"OObject"),p);a.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 u in r)this[u]=r[u];this.attributes??(this.attributes=[]),this.classes??(this.classes=[]),this.style??(this.style="");}},h(y,"ONode"),y);a.ONode=s;let o=(m=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,u){let v=await f.call("setAttribute",this.uid,r,u);v&&(this.attributes=v);}async removeAttribute(r){let u=await f.call("removeAttribute",this.uid,r);u&&(this.attributes=u);}async appendChild(r){await f.call("appendChild",this.uid,r.uid);}set innerHTML(r){this.setHTML(r);}async cloneNode(r){let u=await f.call("cloneNode",this.uid,r);return u?new m(u):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,u){await f.call("removeChild",this.uid,r.uid,u.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 m(r))??[]}hasAttribute(r){return !!this.attributes.find(u=>u.name===r)}async getAttribute(r){return await f.call("getAttribte",this.uid,r)??""}attribute(r){return this.attributes.find(u=>u.name===r)?.value??null}async nextSibling(){let r=await f.call("nextSibling",this.uid);return r?new m(r):null}async getAttributeNames(){return await f.call("getAttributeNames",this.uid)??[]}async parentNode(){let r=await f.call("parentNode",this.uid);return r?new m(r):null}async insertBefore(r,u){await f.call("insertBefore",this.uid,u.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,u){return await f.query(r,u,this.uid)}async queryAll(r,u){return await f.queryAll(r,u,this.uid)}async release(){await f.call("releaseNode",this.uid);}async setStyle(r,u){await f.call("setStyle",this.uid,r,u);}updates(){return new e(this)}},h(m,"OElement"),m);a.OElement=o;})(exports.ODOM||(exports.ODOM={}));function Mt(){return function(a,t,e){e.value;e.value=async(...s)=>{let o=s[0];try{let c=await f.invoke(t,[{props:o.getSafePropsForNative}]);console.log("result from native function"),o.setSafePropsFromNative;}catch{console.error("Failed to invoke native function");}};}}h(Mt,"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=L(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=L(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=L("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 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=L("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)}};h(z,"OUIDBridge");var Y=z,f=new Y;globalThis.OUID=f;exports.ODOM=void 0;function dt(a){return a.replace(/-([a-z])/g,(t,e)=>e.toUpperCase())}h(dt,"toCamelCase");function pt(a){return a.replace(/(?!^)([A-Z])/g,(t,e)=>`-${e.toLowerCase()}`)}h(pt,"toSnakeCase");function x(a){return nt(a)?a.value:a}h(x,"normaliseValue");function ft(a){let t={};for(let e=a;e;e=Object.getPrototypeOf(e))Object.getOwnPropertyNames(e).forEach(n=>{let s=a[n];typeof s=="function"&&n!=="constructor"&&!n.startsWith("__")&&!n.endsWith("__")?n in t||(t[n]=s.bind(a)):n!=="constructor"&&!n.startsWith("__")&&!n.endsWith("__")&&(n in t||(t[n]=s));});return t}h(ft,"toObjectWithFunctions");function mt(a){return typeof a=="function"&&!("prototype"in a)}h(mt,"isLazyLoader");var E=class E{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 S);l(this,"updatingDirectives",false);l(this,"updatingBindings",false);l(this,"stack",[]);l(this,"hydradationActions",new exports.ODOM.BatchActions);this.app=t,this.component=e,this.parentContext=n;for(let o of s)this.stack.push(o);}get hostElement(){return this.component._hostElement}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,c={...ft(s)};for(let d of [...this.stack.reverse(),...n])Object.assign(c,d);try{let d=`${e?'"use strict";':""}return ${t};`,p=Object.keys(c),y=new Function(...p,d);return y.bind(this.component),y.apply(this.component,Object.values(c))}catch(d){console.log(this,t),console.error(d);}}updateValue(t,e){t.split(/[\.\[]/)[0]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("","","");}push(t){this.stack.unshift(t);}pop(){this.stack.shift();}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,this.bindings.forEach(n=>this.updateBinding(n,t)),e&&await t.commit(),this.updatingBindings=false;}updateBinding(t,e){if(t.type==="model")t.node.setProperty("value",x(t.context.resolve(t.key)));else if(t.type==="interpolation")e.add(async()=>{await t.node.setContentText(t.template?.replace(/\{\{(.*?)\}\}/g,(n,s)=>(s=s.trim(),x(t.context.resolve(s))))??"");});else if(t.type==="attribute"){let n=t.key,s=x(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()));}else if(t.type==="prop"&&t.context.component){let n=x(this.resolve(t.template));try{t.context.component.props[t.key]=n,t.context.updateBindings(),t.context.updateDirectives();}catch(s){console.error(s);}}}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(!x(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=h((y,m)=>n.key?x(n.context.resolve(n.key,true,{[n.item]:y})):m,"keyFn"),d=x(n.context.resolve(n.list))||[],p=n.placeholder;for(let y=0;y<d.length;y++){let m=d[y],O=c(m,y),i=s.get(O),r,u;i?(r=i.node,u=i.ctx,console.log("Reusing entry"),u.stack=[{[n.item]:m},...n.context.stack],r.uid!==(await p.nextSibling())?.uid&&await p.after(r),await Promise.all([u.updateBindings(),u.updateDirectives()])):(u=new E(this.app,this.component,this),u.hydradationActions=this.hydradationActions,u.stack=[{[n.item]:m},...n.context.stack],r=await n.node.cloneNode(true),await u.render(r),await p.after(r),u.updateDirectives()),p=r,o.set(O,{node:r,ctx:u});}for(let[y,m]of s.entries())o.has(y)||(this.unmountComponent(m.node),t.add(()=>m.node.removeAndRelease()));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"))){switch(t.type){case "Text":this.handleTextNode(t);break;case "Element":await this.handleElementNode(t,e);break;default:console.warn("Unknown node",t);}await Promise.all([this.updateBindings(),this.updateDirectives()]),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=>`${pt(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 u=await t.getAttribute(o),v=await OUID.createComment(o+":"+u),w=o==="o-if";await n.insertBefore(v,t),await t.updates().removeAttribute(o).remove().exec(),this.directive({type:"if",expr:u,node:t,placeholder:v,context:this,active:void 0,destroy:w}),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 u=await t.getAttribute("o-for"),[v,w]=u.split(" of ").map(I=>I.trim()),g=await OUID.createComment("for:"+u),C=t.attribute(":key")??"";await n?.insertBefore(g,t),await t.updates().removeAttribute("o-for").removeAttribute(":key").remove().exec(),this.directive({type:"for",item:v,list:w,node:t,placeholder:g,context:this,key:C}),s="for";return}let c=t.tag.toLowerCase(),d=this.resolveTag(c),p=t.updates();[...t.attributes].forEach(async u=>{if(u.name==="o-model"){let v=u.value.trim();(t.tag==="input"||t.tag==="textarea")&&(p.setInputValue(x(this.resolve(v))).addEventListener("input",async w=>{let g=await w.target.getProperty("value");this.updateValue(v,g);}),this.bind({node:t,key:v,type:"model",context:this})),p.removeAttribute(u.name);}});let y={},m={},{props:O,events:i}=this.componentAttributes(t,this);if(y=O,m=i,this.expandStandardAttributes(t),Object.keys(m).forEach(async u=>{let v=m[u];d||p.addEventListener(u,w=>{typeof v=="function"&&v.apply(this.component,[w]);}),p.removeAttribute("@"+u);}),await p.exec(),d){await this.mountComponent(t,d,this,y,m);return}let r=await t.childNodes();e?.skipSlotted&&(r=r.filter(u=>!u.hasAttribute("slotted")));for(let u of r)await this.render(u,e);}handleTextNode(t){let e=t.textContent?.match(/\{\{(.*?)\}\}/g);e&&e.forEach(n=>{let s=n.replace(/[{}]/g,"").trim();this.bind({type:"interpolation",node:t,key:s,template:t.textContent,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 d=c.name;if(d.startsWith("@")){let m=e?.resolve(c.value,true);if(typeof m!="function")throw new Error("Event handler can only be function");d=d.substring(1),s[d]=m;return}let p=null,y=c.value;d.startsWith(":")&&(p=c.value,d=d.substring(1),y=x(e?.resolve(c.value))),d=dt(d),n[d]={name:d,value:y,expr:p};}),{props:n,events:s}}async mountComponent(t,e,n,s={},o={}){if(this.mountedComponents.has(t))return;let c=new E(this.app,{},this),d={};Object.keys(s).forEach(w=>{let g=s[w];g.expr&&this.bind({type:"prop",node:t,key:w,context:c,template:g.expr}),d[w]=g.value;});let p=await wt(e,d,o);c.component=p,c.stack=[],this.mountedComponents.set(t,p);let y=t.updates();Object.keys(s).filter(w=>!s[w].expr).forEach(w=>y.setAttribute(w,s[w].value));let m=p.hostClasses??[];m&&(m=typeof m=="string"?[m]:m),m.push("o-component-host"),t.tag.toLowerCase()!=="div"&&m.push("c-"+t.tag.toLowerCase()),y.addClass(...m),await y.exec(),await p.decorateHostElement(t);let O=p.use??{};if(Object.keys(O).forEach(w=>{let g=O[w],C=w;c.componentsRegistry.register(C,g);}),p.willMount(),!e.cssInstance){let w=p.style?p.style()?.toString():p.css;w&&(e.cssInstance??(e.cssInstance=await OUID.injectComponentStyles(w)));}let i=e.cssInstance;if(i){let w=E.STYLE_REF.get(i)??0;E.STYLE_REF.set(i,w+1),p.cssInstance=i;}let r=await t.childNodes();if(p.render){let w=await p.render(c);w&&w.attachTo(t);}else await t.setHTML(p.template.trim());let u=await t.queryAll("slot");if(u){let w=u.filter(g=>!g.classes?.includes("hydrated")).map(async g=>{let C=g.attribute("name");for(let I of r.filter(k=>C?C&&k.type==="Element"&&k.attribute("slot")===C:k.type!=="Element"||!k.hasAttribute("slot")))await I.setAttribute("slotted","true"),await g.appendChild(I),await this.render(I);});await Promise.all(w);}p._hostElement=t,p.parent=n?.component??void 0,p.provide(E.PROVIDE_TOKEN,this);let v=await t.childNodes();await Promise.all(v.map(w=>c.render(w,{skipSlotted:true}))),c.updateDirectives(),p.onMounted(),await c.hydradationActions.commit(),p.state.watch(()=>{c.updateBindings(),c.updateDirectives();});}async unmountComponent(t){let e=this.mountedComponents.get(t);if(e){let s=e.cssInstance;if(s){let o=E.STYLE_REF.get(s)??1;o===1?(await OUID.rejectComponentStyles(s),E.STYLE_REF.delete(s)):E.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);}};h(E,"RenderContext"),l(E,"PROVIDE_TOKEN","RENDER_CONTEXT"),l(E,"STYLE_REF",new WeakMap);var j=E;async function Ht(a,t,e=[],n){let s=t??{},o=await OUID.createElement(a,Object.keys(s).reduce((c,d)=>(c[d]=s[d],c),{}));return Object.keys(n??{}).forEach(c=>{o?.addEventListener(c,d=>{let p=n[c];typeof p=="function"&&p(d);});}),new A(o,e)}h(Ht,"node");function wt(a,t,e){return mt(a)?a().then(n=>J(n.default,t,e)):J(a,t,e)}h(wt,"o");function yt(a){return typeof a=="function"}h(yt,"isProvideFunction");var D=class D{constructor(t,e){l(this,"root");l(this,"options");l(this,"providers",new Map);this.root=t,this.options=e,D.currentApp=this;}provide(t,e){if(this.providers.has(t)){console.warn(`[OUID] - Provider ${t} already exists`);return}this.providers.set(t,yt(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(`
|
|
7
|
+
* {
|
|
8
|
+
${t} * {
|
|
9
|
+
visibility: hidden;
|
|
10
|
+
}
|
|
11
|
+
${t} *.hydrated {
|
|
12
|
+
visibility: inherit;
|
|
13
|
+
}
|
|
14
|
+
.oui-hidden {
|
|
15
|
+
display: none !important;
|
|
16
|
+
}
|
|
17
|
+
`);let e=await OUID.query(t);if(console.log("Mounting app on",e),!e)throw new Error("No selector found for "+t);let n=new j(this,{},null);n.mountComponent(e,this.root,null).then(()=>{n.updateBindings(),n.updateDirectives();});}};h(D,"App"),l(D,"currentApp",null);var $=D;function Jt(a,t){$.currentApp?.provide(a,t);}h(Jt,"provide");function rt(a){return $.currentApp?.inject(a)??void 0}h(rt,"inject");function vt(a,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(a,t,e,n);else for(var d=a.length-1;d>=0;d--)(c=a[d])&&(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}h(vt,"_ts_decorate");var Z=class Z extends _{constructor(){super(...arguments);l(this,"router");}willMount(){}onMounted(){this.router=gt(),console.log("Router mounted"),this.router?.bind(this).then(e=>{e?.();});}willUnmount(){console.log("Router will unmount"),this.router?.unbind();}};h(Z,"ORouter");exports.ORouter=Z;exports.ORouter=vt([st({tag:"o-router",template:`
|
|
2
18
|
<div id="router-view"></div>
|
|
3
|
-
`})],exports.RouterComponent);var Q="OROUTER_TOKEN",V="ACTIVE_ROUTE";function ut(){return z(Q)}h(ut,"useRouter");function Pt(a){return new H(a)}h(Pt,"createRouter");function G(a,t){let e=new X__default.default(a.path).reverse(t);return e===false?"":e}h(G,"generatePath");var W=class W{constructor(t){u(this,"routes");u(this,"windowObject",null);u(this,"guards",[]);u(this,"eventRegistration",null);this.routes=t;}install(t){t.provide(Q,this);}resolve(t){let e=new X__default.default(t),n=t.split("?").reverse()[0].split("&").reduce((s,c)=>{let o=c.split("=");return s[o[0]]=decodeURIComponent(o[1]),s},{});for(let s of this.routes){let c=e.match(s.path);if(c)return {route:s,params:c,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=G(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=G(e,t.params??{});this.windowObject?.invoke("history.pushState",{},"",n),this.windowObject?.dispatchEvent("popstate","PopStateEvent",{state:{}});return}}}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=h(async()=>{console.log("Handling routing",this);let n=await this.windowObject?.getProperty("location.pathname"),s=this.resolve(n);if(console.log("Matched::",s),!s){console.warn(`[Router] No route found for: ${n}`);return}let c=await this.beforeRouteGoing({url:n,path:n,name:s.route.name},t.inject(V));if(c){typeof c=="object"&&"name"in c&&this.push({name:c.name,params:c.params});return}let o=t.inject(x.PROVIDE_TOKEN),l=await o?.hostElement.query("#router-view");console.log("Outlet",l),l&&(l.innerHTML="",t.provide(V,{params:s.params,query:s.query}),await o?.mountComponent(l,s.route.component,o),await this.afterRouteGoing({url:n,path:n,name:s.route.name},t.inject(V)));},"handler");return this.eventRegistration=await this.windowObject.addEventListener("popstate",e.bind(this)),e}unbind(t){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));}}};h(W,"Router");var H=W;function T(a){let t=Date.now();return `${(1e3+Math.floor(Math.random()*9e3)+a.length).toString(16)}-${t.toString(16)}`}h(T,"generateUIID");(function(a){var s,c,o;let t=(s=class{constructor(r,i){u(this,"uid");u(this,"tag");this.uid=r,this.tag=i;}async addEventListener(r,i){return p.addEventListener(this,r,i)}async dettachEventListener(r,i){await p.dettachEventListener(this,r,i);}async invoke(r,...i){await p.call("invokeObjectMethod",this.uid,r,...i);}async getProperty(r){return await p.call("getObjectProperty",this.uid,r)}async setProperty(r,i){await p.call("setObjectProperty",this.uid,r,i);}async dispatchEvent(r,i,d){await p.call("dispatchEvent",this.uid,r,i,d);}},h(s,"OObject"),s);a.OObject=t;let e=(c=class extends t{constructor(i){super(i.uid,i.tag);u(this,"textContent");u(this,"type","Unknown");u(this,"attributes");u(this,"children");u(this,"classes");u(this,"style");for(let d in i)this[d]=i[d];this.attributes??(this.attributes=[]),this.classes??(this.classes=[]),this.style??(this.style="");}},h(c,"ONode"),c);a.ONode=e;let n=(o=class extends e{constructor(r){super(r);}async addClass(r){await p.call("addClass",this.uid,r);}async setAttribute(r,i){let d=await p.call("setAttribute",this.uid,r,i);d&&(this.attributes=d);}async removeAttribute(r){let i=await p.call("removeAttribute",this.uid,r);i&&(this.attributes=i);}async appendChild(r){await p.call("appendChild",this.uid,r.uid);}set innerHTML(r){this.setHTML(r);}async cloneNode(r){let i=await p.call("cloneNode",this.uid,r);return i?new o(i):null}async remove(){await p.call("removeNode",this.uid);}async removeChild(r){await p.call("removeChild",this.uid,r.uid);}async replaceChildNode(r,i){await p.call("removeChild",this.uid,r.uid,i.uid);}async replaceWith(r){await p.call("replaceWith",this.uid,r.uid);}async after(r){await p.call("insertAfter",this.uid,r.uid);}async setHTML(r){await p.call("setInnerHTML",this.uid,r);}async HTML(){return await p.call("getInnerHTML",this.uid)??""}async setInnerText(r){await await p.call("setInnerText",this.uid,r);}async setContentText(r){await await p.call("setContentText",this.uid,r);}async getContentText(){return await p.call("getContentText",this.uid)??""}async content(){try{return await p.call("getInnerText",this.uid)??""}catch(r){return console.error(r),""}}async childNodes(){return (await p.call("childNodes",this.uid))?.map(r=>new o(r))??[]}hasAttribute(r){return !!this.attributes.find(i=>i.name===r)}async getAttribute(r){return await p.call("getAttribte",this.uid,r)??""}attribute(r){return this.attributes.find(i=>i.name===r)?.value??null}async getAttributeNames(){return await p.call("getAttributeNames",this.uid)??[]}async parentNode(){let r=await p.call("parentNode",this.uid);return r?new o(r):null}async insertBefore(r,i){return await p.call("insertBefore",this.uid,i.uid,r.uid)}async setInputValue(r){await p.call("setInputValue",this.uid,r);}async inputValue(r){return await p.call("inputValue",this.uid,r)??""}async query(r,i){return await p.query(r,i,this.uid)}async queryAll(r,i){return await p.queryAll(r,i,this.uid)}async release(){await p.call("releaseNode",this.uid);}},h(o,"OElement"),o);a.OElement=n;})(exports.ODOM||(exports.ODOM={}));function Wt(){return function(a,t,e){e.value;e.value=async(...s)=>{let c=s[0];try{let o=await p.invoke(t,[{props:c.getSafePropsForNative}]);console.log("result from native function"),c.setSafePropsFromNative;}catch{console.error("Failed to invoke native function");}};}}h(Wt,"Native");var B=class B{constructor(){u(this,"callbacks",new Map);u(this,"DOM_EVENT_LISTENERS",new Map);u(this,"timers",new Map);u(this,"_config");u(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 c=JSON.parse(e)[1];return c&&(c.target=c?.target?new exports.ODOM.OElement(c.target):null),n(c)}});}config(t){return this._config=t,this}invoke(t,...e){let n=T(t);return new Promise((s,c)=>{this.callbacks.set(n,{success:s,error:c});try{if(!WebOUID)throw new Error("NativeOUID bridge not available");WebOUID.invoke(n,t,JSON.stringify(e));}catch(o){console.error(o),this.callbacks.delete(n);}})}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(c=>c(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(c=>new exports.ODOM.OElement(c)):[]}async createdElement(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=T(e+(typeof t=="string"?t:t.tag));return this.DOM_EVENT_LISTENERS.set(s,n),await p.call("attachEventListener",typeof t=="string"?t:t.uid,s,e),s}async dettachEventListener(t,e,n){this.DOM_EVENT_LISTENERS.delete(n),await p.call("dettachEventListener",typeof t=="string"?t:t.uid,n,e);}async injectComponentStyles(t){let e=await p.call("injectComponentStyles",t);return e?new exports.ODOM.OElement(e):null}async rejectComponentStyles(t){await p.call("rejectComponentStyles",t.uid);}async getOObject(t){let e=await p.call("getOObject",t);return e?new exports.ODOM.OObject(e.uid,e.tag):null}async acquireObject(t){let e=await p.call("acquireObject",t);return e?new exports.ODOM.OObject(e.uid,e.tag):null}async setTimeout(t,e){let n=T("setTimeout"+e);this.DOM_EVENT_LISTENERS.set(n,t);let s=await p.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.DOM_EVENT_LISTENERS.delete(e),await p.call("clearTimeout",t));}async setInterval(t,e){let n=T("setInterval"+e);this.DOM_EVENT_LISTENERS.set(n,t);let s=await p.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.DOM_EVENT_LISTENERS.delete(e),await p.call("clearInterval",t));}};h(B,"OUIDBridge");var $=B,p=new $;globalThis.OUID=p;exports.ODOM=void 0;function Jt(){return O.getAll().reduce((t,[e,n])=>(t[e]=n,t),{})}h(Jt,"components");exports.ACTIVE_ROUTE_TOKEN=V;exports.App=A;exports.Component=K;exports.Emits=I;exports.Native=Wt;exports.OComponent=S;exports.OUID=p;exports.OUIDBridge=$;exports.ROUTER_INJECTION_TOKEN=Q;exports.RenderContext=x;exports.Router=H;exports.State=N;exports.Stated=C;exports.components=Jt;exports.createComponent=U;exports.createRouter=Pt;exports.inject=z;exports.isStated=J;exports.o=at;exports.provide=Nt;exports.stated=nt;exports.useRouter=ut;//# sourceMappingURL=index.cjs.map
|
|
19
|
+
`,css:`
|
|
20
|
+
#router-view {
|
|
21
|
+
height: 100%;
|
|
22
|
+
}
|
|
23
|
+
`})],exports.ORouter);var at="OROUTER_TOKEN",G="ACTIVE_ROUTE";function gt(){return rt(at)}h(gt,"useRouter");function Qt(a){return new X(a)}h(Qt,"createRouter");function it(a,t){let e=new ot__default.default(a.path).reverse(t);return e===false?"":e}h(it,"generatePath");var Q=class Q{constructor(t){l(this,"routes");l(this,"windowObject",null);l(this,"guards",[]);l(this,"eventRegistration",null);this.routes=t;}install(t){t.provide(at,this),OUID.registerComponent("o-router",exports.ORouter);}resolve(t){let e=new ot__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=it(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=it(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=h(async()=>{console.log("Handling routing",this);let n=await this.windowObject?.getProperty("location.pathname"),s=this.resolve(n);if(console.log("Matched::",s),!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(j.PROVIDE_TOKEN),d=await c?.hostElement.query("#router-view");console.log("Outlet",d),d&&(d.innerHTML="",t.provide(G,{params:s.params,query:s.query}),await c?.mountComponent(d,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));}}};h(Q,"Router");var X=Q;var tt=class tt extends _{render(t){return A.of('<i class="o-icon"><slot></slot></i>')}style(){return V.of({i:`
|
|
24
|
+
display: inline-block;
|
|
25
|
+
width: 1em;
|
|
26
|
+
height: 1em;
|
|
27
|
+
vertical-align: -0.15em;
|
|
28
|
+
overflow: hidden;
|
|
29
|
+
`})}};h(tt,"OIcon");var ct=tt;function oe(){return T.getAll().reduce((t,[e,n])=>(t[e]=n,t),{})}h(oe,"components");exports.ACTIVE_ROUTE_TOKEN=G;exports.App=$;exports.Component=st;exports.Emits=P;exports.Native=Mt;exports.OComponent=_;exports.OIcon=ct;exports.OUID=f;exports.OUIDBridge=Y;exports.ROUTER_INJECTION_TOKEN=at;exports.RenderContext=j;exports.RenderNode=A;exports.Router=X;exports.State=U;exports.Stated=N;exports.StyleData=V;exports.components=oe;exports.createComponent=J;exports.createRouter=Qt;exports.inject=rt;exports.isStated=nt;exports.node=Ht;exports.o=wt;exports.provide=Jt;exports.stated=ut;exports.useRouter=gt;//# sourceMappingURL=index.cjs.map
|
|
4
30
|
//# sourceMappingURL=index.cjs.map
|