ouider 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/registry.ts","../src/emits.ts","../src/state.ts","../src/component.ts","../src/interfaces/helpers.ts","../src/interfaces/bridge.ts","../src/context.ts","../src/app.ts","../src/router/Router.ts","../src/components/Icon.ts","../index.ts"],"names":["ComponentsRegistry","components","Map","register","tag","compClass","console","log","key","toLocaleLowerCase","has","set","unregister","delete","get","getAll","Array","from","entries","_ComponentsRegistry","componentsRegistry","Emits","events","emit","event","args","handler","_Emits","Stated","value","_Stated","isStated","ob","isArray","stated","target","state","proxify","__name","seen","proxy","Proxy","t","p","v","o","didChange","Reflect","current","Object","getPrototypeOf","keys","forEach","obj","Error","String","State","data","THRESHOLD_TIME","debounceTime","Date","getTime","listeners","timer","oldValue","wrap","setValue","getValue","dispatchChanges","newValue","listener","path","now","clearTimeout","setTimeout","watch","push","length","unwatch","splice","indexOf","_State","componentCreationOrder","Component","options","constructor","_a","WithDecoration","template","css","use","hostClasses","hash","RenderNode","node","children","attachTo","host","innerHTML","fullNode","child","appendChild","of","addChild","_RenderNode","StyleData","toString","str","join","_StyleData","createComponent","ctr","props","emits","OComponent","parent","provides","onActivated","onDeactivated","onMounted","willMount","willUnmount","provide","inject","decorateHostElement","hostElement","Promise","resolve","_OComponent","generateUIID","name","Math","floor","random","ODOM","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","BatchActions","actions","exec","commit","add","action","all","map","a","BatchUpdates","operations","ops","promises","op","fn","apply","error","append","addEventListener","callback","policy","setProperty","dettachEventListener","cbId","invoke","dispatchEvent","eventName","eventClass","initDict","addClass","tokens","removeClass","setAttribute","removeAttribute","removeChild","remove","removeAndRelease","release","html","replaceChildNode","replaceWith","after","toInsert","setInnerText","text","setContentText","insertBefore","element","setInputValue","setStyle","OObject","uid","OUID","call","extra","invokeAndHold","res","getProperty","updates","batches","ref","ONode","textContent","type","attributes","classes","style","k","OElement","_hydrated","attrs","setHTML","cloneNode","cloned","HTML","getContentText","content","err","childNodes","c","hasAttribute","find","attr","getAttribute","attribute","nextSibling","getAttributeNames","parentNode","inputValue","hydrated","hydrate","query","selector","filter","queryAll","CanvasGradient","addColorStop","offset","color","DOMMatrix","batch","new","arg","newObject","invertSelf","multiplySelf","other","premultiplySelf","rotateAxisAngleSelf","rotX","rotY","rotZ","angle","rotateFromVectorSelf","rotateSelf","scale3dSelf","scale","originX","originY","originZ","scaleSelf","scaleX","scaleY","scaleZ","setMatrixValue","transformList","skewXSelf","sX","skewYSelf","translateSelf","translateX","translateY","translateZ","is2D","isIdentity","flipX","flipY","inverse","multiply","rotate","rotateAxisAngle","rotateFromVector","scale3d","skewX","skewY","sY","toJSON","translate","CanvasPattern","setTransform","matrix","Canvas2DContext","arc","x","y","radius","startAngle","endAngle","counterclockwise","arcTo","x1","y1","x2","y2","bezierCurveTo","cp1x","cp1y","cp2x","cp2y","clearRect","width","height","clip","arg1","arg2","CanvasPath2D","beginPath","closePath","createConicGradient","createLinearGradient","x0","y0","createPattern","image","repetition","createRadialGradient","r0","r1","drawImage","sx","sy","sWidth","sHeight","dx","dy","dWidth","dHeight","ellipse","radiusX","radiusY","rotation","fill","fillRule","fillRect","fillText","maxWidth","getImageData","sw","sh","settings","getLineDash","getTransform","mat","isContextLost","isPointInPath","arg3","arg4","isPointInStroke","lineTo","measureText","moveTo","putImageData","imageData","dirtyX","dirtyY","dirtyWidth","dirtyHeight","quadraticCurveTo","cpx","cpy","rect","reset","resetTransform","restore","roundRect","radii","save","setLineDash","segments","b","d","e","f","stroke","strokeRect","strokeText","transform","fillStyle","setFillStyle","setFilter","font","setFont","fontKerning","setFontKerning","kerning","fontStretch","setFontStretch","fontVariantCaps","setFontVariantCaps","globalAlpha","setGlobalAlpha","globalCompositeOperation","setGlobalCompositeOperation","imageSmoothingEnabled","setImageSmoothingEnabled","imageSmoothingQuality","setImageSmoothingQuality","letterSpacing","setLetterSpacing","lineCap","setLineCap","lineDashOffset","setLineDashOffset","lineJoin","setLineJoin","lineWidth","setLineWidth","miterLimit","setMiterLimit","shadowBlur","setShadowBlur","shadowColor","setShadowColor","shadowOffsetX","setShadowOffsetX","shadowOffsetY","setShadowOffsetY","strokeStyle","setStrokeStyle","textAlign","setTextAlign","textBaseline","setTextBaseline","wordSpacing","setWordSpacing","textRendering","setTextRendering","Image","img","naturalWidth","naturalHeight","src","currentSrc","setSrc","create","ret","addPath","CanvasElement","setWidth","setHeight","getContext","context","nodeId","OUIDBridge","callbacks","DOM_EVENT_LISTENERS","timers","_config","subscribe","id","cb","success","JSON","parse","currentTarget","relatedTarget","config","conf","rej","WebOUID","stringify","registerComponent","unregisterComponent","globalThis","nodes","n","createElement","createComment","injectComponentStyles","rejectComponentStyles","cssNode","getOObject","acquireObject","delay","setInterval","clearInterval","fetch","url","input","encodeAs","alert","message","prompt","_OUIDBridge","toCamelCase","replace","_","char","toUpperCase","toSnakeCase","toLowerCase","normaliseValue","hasQueueMicrotask","queueMicrotask","deferMicro","then","deferMacro","r","isLazyLoader","comp","EXPR_FN","TEMPLATE_CACHE","METHODS_CACHE","WeakMap","getMethodsView","cached","out","cur","prototype","getOwnPropertyNames","startsWith","endsWith","desc","getOwnPropertyDescriptor","undefined","bind","evalInScope","expr","scope","compiled","Function","compileInterpolated","parts","i","open","slice","close","trim","RenderContext","app","component","parentContext","frames","bindings","directives","mountedComponents","updatingDirectives","updatingBindings","_stack","flatStack","hydradationActions","stack","getMountedComponent","binding","directive","evaluateExpression","strict","additionFrames","stateObj","methodsView","_t","prop","some","updateValue","firstPart","split","frame","unshift","assign","pop","shift","resolveTag","ctx","updateBindings","root","updateBinding","s","templateFn","expandClass","expandStyle","updateDirectives","active","renderedNode","destroy","unmountComponent","clone","render","placeholder","oldChildren","newChildren","keyFn","val","idx","item","arr","list","domOps","YIELD_EVERY","opsSinceYield","newHydrations","last","entry","anchor","next","BURST","chunk","skipSlotted","handleTextNode","handleElementNode","styleString","expandStandardAttributes","substring","controlled","conditionAttr","cc","componentAttributes","mountComponent","txt","includes","ignoredAttrs","hostNode","newCtx","handledProps","instance","dependants","styleInstance","STYLE_REF","hostChildrenBefore","rendered","slots","slot","toMove","PROVIDE_TOKEN","CONCURRENCY","__publicField","_RenderContext","el","reduce","acc","default","isProvideFunction","App","providers","currentApp","token","warn","plugin","install","mount","__OUI_PUR_JS_CONTEXT__","globalContext","_App","ORouter","router","useRouter","unbind","_ORouter","ROUTER_INJECTION_TOKEN","ACTIVE_ROUTE_TOKEN","createRouter","routes","Router","generatePath","route","params","RouteParser","reverse","activate","inst","__isActive","deactivate","windowObject","guards","eventRegistration","outletEl","keepAlive","keepAliveLimit","pendingNav","parser","queryStr","kv","decodeURIComponent","match","absolute","beforeRouteGoing","to","guard","g","afterRouteGoing","matched","outlet","guarded","cacheKey","currentChildren","currentHost","staging","class","nextHost","currentInst","size","firstKey","victim","values","run","beforeEach","afterEach","_Router","OIcon","_OIcon"],"mappings":"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","file":"index.cjs","sourcesContent":["import { OComponentType } from \"./component\"\n\nexport class ComponentsRegistry {\n private components: Map<string, OComponentType<any, any>> = new Map()\n register(tag: string, compClass: OComponentType<any, any>) {\n console.log(`[OUID] - Registering component: ${tag}`)\n const key = tag.toLocaleLowerCase()\n if(this.components.has(key)) {\n return\n }\n this.components.set(key, compClass)\n }\n unregister(tag: string) {\n const key = tag.toLocaleLowerCase()\n this.components.delete(key)\n }\n get(tag: string): OComponentType<any, any> | undefined {\n return this.components.get(tag.toLocaleLowerCase())\n }\n has(tag: string): boolean {\n return this.components.has(tag)\n }\n getAll() {\n return Array.from(this.components.entries())\n }\n}\n\nexport const componentsRegistry = new ComponentsRegistry()","export class Emits<O extends Record<string, any>> {\n constructor(private events: O) {\n }\n\n emit(event: keyof O, ...args: any) {\n const handler = this.events[event] as Function\n if(handler) {\n handler(...args)\n }\n }\n}","export type StateWatcher<T> = <K extends keyof T>(key: K, oldValue: T[K], newValue: T[K]) => void\nexport class Stated<T> {\n constructor(public value: T) { }\n}\nexport function isStated<T>(ob: any): ob is Stated<T> {\n return typeof ob === 'object' && !Array.isArray(ob) && 'value' in ob && ob instanceof Stated;\n}\nexport function stated<S extends Record<string, string>, T>(target: T, state: State<S>): Stated<T> {\n const proxify = (target: any, seen: Map<any, any> = new Map()) => {\n if (seen.has(target)) {\n return seen.get(target)\n }\n const proxy = new Proxy(target, {\n set: (t, p, v) => {\n const o = t[p]\n if (typeof v === 'object') {\n t[p] = proxify(v)\n } else {\n t[p] = v\n }\n state.didChange(p as any, o, v)\n return true\n },\n get: (t, p) => {\n const v = Reflect.get(t, p)\n return v\n }\n })\n seen.set(target, proxy)\n for (let current = target; current; current = Object.getPrototypeOf(current)) {\n Object.keys(current).forEach(key => {\n const obj = target[key]\n if (typeof obj === 'object') {\n target[key] = proxify(obj, seen)\n }\n })\n }\n return proxy\n }\n if (typeof target === 'function') {\n throw new Error('Can\\'t create reactive element over a function')\n }\n if (typeof target !== 'object' && typeof target !== 'symbol') {\n return new Proxy(new Stated<T>(target), {\n set: (t, p, v) => {\n if (p !== 'value') throw new Error(`Undefined property ${String(p)} access`)\n const o = t[p]\n t[p] = v\n state.didChange(p as any, o, v)\n return true\n },\n get: (t, p) => {\n if (p !== 'value') throw new Error(`Undefined property ${String(p)} access`)\n return t[p]\n }\n })\n }\n\n return new Stated<T>(proxify(target))\n}\nexport class State<T extends Record<string, any>> {\n private THRESHOLD_TIME = 20\n private debounceTime = new Date().getTime()\n private state: T\n private listeners: StateWatcher<T>[] = []\n private timer: number | null = null\n constructor(data: T) {\n this.state = new Proxy(data, {\n set: (target, key: string, value: any) => {\n const oldValue = (target as any)[key];\n target[key as keyof T] = value\n this.didChange(key as keyof T, oldValue, value)\n return true\n },\n\n get: (target, key) => target[key as keyof T]\n }) as T\n }\n wrap<T>(obj: T): Stated<T> {\n return stated(obj, this)\n }\n has(key: keyof T): boolean {\n return key in this.state\n }\n setValue(key: keyof T, value: any) {\n this.state[key as keyof T] = value\n }\n getValue(key: keyof T): any {\n return this.state[key]\n }\n get value(): T {\n return this.state\n }\n\n private dispatchChanges<K extends keyof T>(key: K, oldValue: T[K], newValue: T[K]): void {\n for (const listener of this.listeners) {\n listener(key, oldValue, newValue)\n }\n }\n\n async didChange(path: keyof T, oldValue: any, newValue: any) {\n const now = Date.now()\n if (now - this.debounceTime <= this.THRESHOLD_TIME) {\n if(this.timer) clearTimeout(this.timer);\n }\n\n this.debounceTime = now;\n\n this.timer = setTimeout(() => {\n this.dispatchChanges(path, oldValue, newValue);\n }, this.THRESHOLD_TIME);\n }\n\n watch(listener: StateWatcher<T>) {\n this.listeners.push(listener)\n return this.listeners.length - 1\n }\n\n unwatch(listener: StateWatcher<T> | number) {\n if (typeof listener === \"number\") {\n this.listeners.splice(listener, 1)\n return\n }\n this.listeners.splice(this.listeners.indexOf(listener), 1)\n }\n}","import { RenderContext } from \"./context\";\nimport { Emits } from \"./emits\";\nimport { ODOM } from \"./interfaces/bridge\";\nimport { componentsRegistry } from \"./registry\";\nimport { State } from \"./state\"\nexport type ComponentProps<K extends Record<string, any>> = K\n\nlet componentCreationOrder = 0\n/**\n * Component decorator, it allow an auto registration of components\n * @param options \n * @returns \n */\nexport function Component(options: { template: string, tag: string, use?: Record<string, OComponentType>, css?: string, hostClasses?: string | string[] }) {\n return function <T extends { new(...args: any[]): {} }>(constructor: T) {\n const WithDecoration = class extends constructor {\n template = options.template;\n css = options.css;\n tag = options.tag\n use = options.use\n hostClasses = options.hostClasses\n hash = 'component-' + componentCreationOrder + '-' + options.tag\n };\n\n const compClass = WithDecoration as unknown as ComponentConstructor<any, any>;\n (compClass as any)['tag'] = options.tag\n // componentsRegistry.register(options.tag, compClass);\n return WithDecoration;\n\n };\n}\ntype ExposedKeyAsPromise<T extends Record<string, any>> = {\n [K in keyof T]: Promise<T[K]>;\n};\n\nexport class RenderNode {\n constructor(private node: ODOM.OElement | string, private children: RenderNode[] = []) { }\n\n attachTo(host: ODOM.OElement): void {\n if (typeof this.node === 'string') {\n // html string\n host.innerHTML = this.node\n return\n }\n const fullNode = this.node;\n for (const child of this.children) {\n child.attachTo(fullNode)\n }\n host.appendChild(fullNode)\n }\n static of(node: ODOM.OElement | string, children: RenderNode[] = []): RenderNode {\n return new RenderNode(node, children)\n }\n addChild(node: RenderNode): RenderNode {\n this.children.push(node)\n return this\n }\n\n}\nexport class StyleData {\n constructor(private data: Record<string, StyleData | string>, private css: string) { }\n toString(): string {\n let str = this.css ? this.css + '\\n' : ''\n for (const key in this.data) {\n const value = this.data[key]\n if (typeof value === 'string') {\n str += `${key} { ${value} }\\n`\n } else if (value instanceof StyleData) {\n str += `${key} {\\n${value.toString()}}\\n`\n }\n }\n return str\n }\n static of(data: Record<string, StyleData | string>, ...css: string[]): StyleData {\n return new StyleData(data, css.join('\\n'))\n }\n}\nexport interface Component<P extends Record<string, any>, O extends Record<string, any>> {\n // template: string\n state: State<any>\n readonly emits: Emits<O>\n readonly props: ComponentProps<P>\n onActivated(): void\n onDeactivated(): void\n onMounted(): void\n willMount(): void\n willUnmount(): void\n provide<T>(key: string, value: T): void\n inject<T>(key: string): T | undefined\n render?(ctx: RenderContext): RenderNode | null | Promise<RenderNode | null>\n style?(): StyleData | null,\n decorateHostElement(hostElement: ODOM.OElement): Promise<void>\n}\n\nexport interface ComponentConstructor<P extends Record<string, any>, O extends Record<string, any>> {\n new(props?: P, emits?: O): Component<P, O>\n}\nexport function createComponent<P extends Record<string, any>, O extends Record<string, any>>(ctr: ComponentConstructor<P, O>, props?: P, emits?: O): Component<P, O> {\n // const handled = OUID.invoke()\n return new ctr(props, emits)\n}\n\nexport class OComponent<P extends Record<string, any> = {}, O extends Record<string, any> = {}> implements Component<P, O> {\n // template: string = \"\"\n state: State<any>\n private parent?: OComponent<any, any> = undefined\n readonly emits: Emits<O>\n readonly props: ComponentProps<P>\n private provides: Map<string, any> = new Map();\n\n constructor(props: P = {} as P, emits: O = {} as O) {\n this.state = new State(this)\n this.props = props\n this.emits = new Emits(emits)\n }\n onActivated(): void {}\n onDeactivated(): void {}\n onMounted(): void {\n }\n willMount(): void {\n\n }\n willUnmount(): void {\n\n }\n /** Provide a value for descendants */\n provide<T>(key: string, value: T) {\n this.provides.set(key, value);\n }\n\n /** Inject a value from nearest ancestor */\n inject<T>(key: string): T | undefined {\n let current: OComponent<any, any> | undefined = this;\n while (current) {\n if (current.provides.has(key)) {\n return current.provides.get(key);\n }\n current = current.parent;\n }\n return undefined;\n }\n render?(ctx: RenderContext): RenderNode | null|Promise<RenderNode | null>\n style?(): StyleData | null\n decorateHostElement(hostElement: ODOM.OElement): Promise<void> {\n return Promise.resolve()\n }\n}\nexport type LazyLoader<P extends Record<string, any>, O extends Record<string, any>> = () => Promise<{ default: ComponentConstructor<P, O> }>;\nexport type OComponentType<P extends Record<string, any> = {}, O extends Record<string, any> = {}> =\n | ComponentConstructor<P, O>\n | LazyLoader<P, O>","export function generateUIID(name: string): string {\n const now = Date.now()\n const salt = 1000 + Math.floor((Math.random() * 9000)) + name.length\n return `${salt.toString(16)}-${now.toString(16)}`\n}\n","import { componentsRegistry } from \"../registry\"\nimport { OComponentType } from \"../component\"\nimport { generateUIID } from \"./helpers\"\n\ntype QueryFilter = \"children\" | \"classes\" | \"style\" | \"attributes\"\nexport namespace ODOM {\n export class BatchActions {\n private actions: (() => any)[] = []\n constructor() { }\n async exec(): Promise<any> {\n await this.commit()\n }\n add(action: () => void) {\n this.actions.push(action)\n return this\n }\n async commit(): Promise<void> {\n const actions = this.actions\n this.actions = []\n await Promise.all(actions.map(async a => await a()))\n }\n }\n export class BatchUpdates {\n private operations: ({ fn: keyof OElement, args: any[] } | (() => void))[] = []\n constructor(private node: OObject) { }\n async exec(): Promise<any> {\n const ops = this.operations\n this.operations = []\n const promises = ops.map(op => {\n if (typeof op === 'object') {\n return (this.node[op.fn as keyof OObject] as Function).apply(this.node, op.args)\n } else {\n return Promise.resolve(op())\n }\n })\n try {\n await Promise.all(promises)\n } catch (error) {\n console.error('Error while batch updates')\n }\n }\n private append(fn: keyof OElement, ...args: any[]): BatchUpdates {\n this.operations.push({ fn, args })\n return this\n }\n add(fn: () => void) {\n this.operations.push(fn)\n return this\n }\n addEventListener(event: string, callback: (...args: any[]) => void, options?: EventListenerOptions, policy?: EventControlPolicy) {\n return this.append('addEventListener', event, callback, { options, policy })\n }\n setProperty(key: string, value: string) {\n return this.append('setAttribute', key, value)\n }\n dettachEventListener(cbId: string) {\n return this.append('dettachEventListener', cbId)\n }\n invoke(fn: string, ...args: any[]) {\n return this.append('invoke', fn, ...args)\n }\n dispatchEvent(eventName: string, eventClass?: string, initDict?: any) {\n return this.append('dispatchEvent', eventName, eventClass, initDict)\n }\n addClass(...tokens: string[]) {\n return this.append('addClass', ...tokens)\n }\n removeClass(...tokens: string[]) {\n return this.append('removeClass', ...tokens)\n }\n setAttribute(name: string, value: string) {\n return this.append('setAttribute', name, value)\n }\n removeAttribute(name: string) {\n return this.append('removeAttribute', name)\n }\n appendChild(child: ONode) {\n return this.append('appendChild', child)\n }\n removeChild(child: ONode) {\n return this.append('removeChild', child)\n }\n remove() {\n return this.append('remove')\n }\n removeAndRelease() {\n return this.append('removeAndRelease')\n }\n release() {\n return this.append('release')\n }\n innerHTML(html: string) {\n return this.append('setHTML', html)\n }\n replaceChildNode(node: ONode, child: ONode) {\n return this.append('replaceChildNode', node, child)\n }\n replaceWith(node: ONode) {\n return this.append('replaceWith', node)\n }\n after(toInsert: ONode) {\n return this.append('after', toInsert)\n }\n setInnerText(text: string) {\n return this.append('setInnerText', text)\n }\n setContentText(text: string) {\n return this.append('setContentText', text)\n }\n insertBefore(element: ONode, node: ONode) {\n return this.append('insertBefore', element, node)\n }\n setInputValue(value: string) {\n return this.append('setInputValue', value)\n }\n setStyle(key: string, value: any) {\n return this.append('setStyle', key, value)\n }\n\n }\n export type NodeType = 'Element' | 'Text' | 'Comment' | 'Attribute' | 'Unknown'\n type Attributes = { name: string, value: string }[]\n export class OObject {\n constructor(public uid: string, public tag: string) {\n }\n async release(): Promise<void> {\n await OUID.call('releaseNode', this.uid)\n }\n async addEventListener(event: string, callback: (...args: any[]) => void, extra?: {options?: EventListenerOptions, policy?: EventControlPolicy}): Promise<string> {\n return OUID.addEventListener(this, event, callback, { options: extra?.options, policy: extra?.policy })\n }\n async dettachEventListener(cbId: string) {\n await OUID.dettachEventListener(cbId)\n }\n async invoke<T>(fn: string, ...args: any[]) {\n return await OUID.call<T>('invokeObjectMethod', this.uid, fn, ...args)\n }\n async invokeAndHold(fn: string, ...args: any[]) {\n const res = await OUID.call<OObject>('invokeObjectMethodAndHold', this.uid, fn, ...args)\n if (!res) return res\n return new OObject(res.uid, res.tag)\n }\n async getProperty<T>(name: string): Promise<T | null> {\n return await OUID.call<T>('getObjectProperty', this.uid, name)\n }\n async setProperty<T>(name: string, value: T) {\n await OUID.call('setObjectProperty', this.uid, name, value)\n }\n async dispatchEvent(eventName: string, eventClass?: string, initDict?: any): Promise<void> {\n await OUID.call('dispatchEvent', this.uid, eventName, eventClass, initDict)\n }\n updates(): BatchUpdates {\n return new BatchUpdates(this)\n }\n batches(): BatchUpdates {\n return new BatchUpdates(this)\n }\n get ref() {\n return { '__ref__': this.uid }\n }\n }\n export abstract class ONode extends OObject {\n textContent?: string | null\n type: NodeType = 'Unknown'\n attributes: Attributes\n children?: ONode[]\n classes?: string[]\n style?: string\n\n constructor(node: ONode) {\n super(node.uid, node.tag)\n for (const k in node) {\n (this as any)[k] = node[k as keyof ONode]\n }\n this.attributes ??= []\n this.classes ??= []\n this.style ??= \"\"\n }\n }\n export class OElement extends ONode {\n [x: string]: any\n private _hydrated: boolean = false\n constructor(node: ONode) {\n super(node)\n // this._hydrated = this.classes?.includes('hydrated') ?? false\n }\n async addClass(...tokens: string[]): Promise<void> {\n await OUID.call('addClass', this.uid, ...tokens)\n }\n async removeClass(...tokens: string[]): Promise<void> {\n await OUID.call('removeClass', this.uid, ...tokens)\n }\n async setAttribute(name: string, value: string): Promise<void> {\n const attrs = await OUID.call<Attributes>('setAttribute', this.uid, name, value)\n if (attrs) {\n // update local attributes\n this.attributes = attrs\n }\n }\n async removeAttribute(name: string): Promise<void> {\n const attrs = await OUID.call<Attributes>('removeAttribute', this.uid, name)\n if (attrs) {\n this.attributes = attrs\n }\n }\n async appendChild(child: ONode): Promise<void> {\n await OUID.call('appendChild', this.uid, child.uid)\n }\n set innerHTML(value: string) {\n this.setHTML(value)\n }\n async cloneNode(state: boolean): Promise<OElement | null> {\n const cloned = await OUID.call<ODOM.ONode>('cloneNode', this.uid, state)\n return cloned ? new OElement(cloned!) : null\n }\n async remove(): Promise<void> {\n await OUID.call('removeNode', this.uid)\n }\n async removeAndRelease(): Promise<void> {\n await this.remove();\n await this.release();\n }\n async removeChild(child: ONode): Promise<void> {\n await OUID.call('removeChild', this.uid, child.uid)\n }\n async replaceChildNode(node: ONode, child: ONode): Promise<void> {\n await OUID.call('replaceChildNode', this.uid, node.uid, child.uid)\n }\n async replaceWith(node: ONode): Promise<void> {\n await OUID.call('replaceWith', this.uid, node.uid)\n }\n async after(toInsert: ONode): Promise<void> {\n await OUID.call('insertAfter', this.uid, toInsert.uid)\n }\n async setHTML(html: string): Promise<void> {\n await OUID.call('setInnerHTML', this.uid, html)\n }\n async HTML(): Promise<string> {\n return await OUID.call<string>('getInnerHTML', this.uid) ?? ''\n }\n async setInnerText(text: string): Promise<void> {\n await OUID.call('setInnerText', this.uid, text)\n }\n async setContentText(text: string): Promise<void> {\n await OUID.call('setContentText', this.uid, text)\n }\n async getContentText(): Promise<string> {\n return await OUID.call('getContentText', this.uid) ?? ''\n }\n async content(): Promise<string> {\n try {\n return await OUID.call<string>('getInnerText', this.uid) ?? ''\n } catch (err) {\n console.error(err)\n return ''\n }\n }\n async childNodes(): Promise<OElement[]> {\n return (await OUID.call<ODOM.ONode[]>('childNodes', this.uid))?.map(c => new OElement(c)) ?? []\n }\n hasAttribute(name: string): boolean {\n return !!this.attributes!.find(attr => attr.name === name);\n }\n async getAttribute(name: string): Promise<string> {\n return await OUID.call<string>('getAttribte', this.uid, name) ?? ''\n }\n attribute(name: string): string | null {\n return this.attributes.find(attr => attr.name === name)?.value ?? null\n }\n async nextSibling(): Promise<OElement | null> {\n const res = await OUID.call<ODOM.ONode>('nextSibling', this.uid)\n return res ? new OElement(res) : null;\n }\n async getAttributeNames(): Promise<string[]> {\n return await OUID.call<string[]>('getAttributeNames', this.uid) ?? []\n }\n async parentNode(): Promise<OElement | null> {\n const node = await OUID.call<ONode>('parentNode', this.uid)\n return node ? new OElement(node) : null\n }\n async insertBefore(element: ONode, node: ONode): Promise<void> {\n await OUID.call('insertBefore', this.uid, node.uid, element.uid)\n }\n async setInputValue(value: string): Promise<void> {\n await OUID.call('setInputValue', this.uid, value)\n }\n async inputValue(): Promise<string> {\n return await OUID.call('inputValue', this.uid) ?? ''\n }\n get hydrated() {\n return this._hydrated\n }\n hydrate() {\n this._hydrated = true\n this.addClass('hydrated')\n }\n\n\n async query(selector: string, filter?: QueryFilter[]) {\n return await OUID.query(selector, filter, this.uid)\n }\n async queryAll(selector: string, filter?: QueryFilter[]) {\n return await OUID.queryAll(selector, filter, this.uid)\n }\n\n async setStyle(key: string, value: any) {\n await OUID.call('setStyle', this.uid, key, value)\n }\n\n }\n export class CanvasGradient extends OObject {\n constructor(obj: OObject) {\n super(obj.uid, obj.tag)\n }\n addColorStop(offset: number, color: string) {\n this.invoke('addColorStop', offset, color)\n return this\n }\n }\n export class DOMMatrix extends OObject {\n batch = new BatchUpdates(this)\n constructor(obj: OObject) {\n super(obj.uid, obj.tag)\n }\n static new(): Promise<DOMMatrix>\n static new(initString: string): Promise<DOMMatrix>\n static new(initArray: number[]): Promise<DOMMatrix>\n static async new(arg?: number[] | string): Promise<DOMMatrix | null> {\n const res = typeof arg !== 'undefined' ? await OUID.newObject('DOMMatrix', arg) : await OUID.newObject('DOMMatrix')\n if (!res) return null\n return new DOMMatrix(res)\n }\n\n invertSelf() {\n this.batch.invoke('invertSelf')\n return this\n }\n multiplySelf(): DOMMatrix\n multiplySelf(other?: DOMMatrix): DOMMatrix {\n this.batch.invoke('multiplySelf', ...(other ? [other.ref] : []))\n return this\n }\n premultiplySelf(): DOMMatrix\n premultiplySelf(other?: DOMMatrix): DOMMatrix {\n this.batch.invoke('premultiplySelf', ...(other ? [other.ref] : []))\n return this\n }\n\n\n rotateAxisAngleSelf(rotX?: number, rotY?: number, rotZ?: number, angle?: number) {\n const args = []\n if (rotX) {\n args.push(rotX)\n }\n if (rotY) {\n args.push(rotY)\n }\n if (rotZ) {\n args.push(rotZ)\n }\n if (angle) {\n args.push(angle)\n }\n this.batch.invoke('rotateAxisAngleSelf', ...args)\n return this\n }\n\n rotateFromVectorSelf(rotX?: number, rotY?: number) {\n const args = []\n if (rotX) {\n args.push(rotX)\n }\n if (rotY) {\n args.push(rotY)\n }\n this.batch.invoke('rotateFromVectorSelf', ...args)\n return this\n }\n rotateSelf(rotX?: number, rotY?: number, rotZ?: number) {\n const args = []\n if (rotX) {\n args.push(rotX)\n }\n if (rotY) {\n args.push(rotY)\n }\n if (rotZ) {\n args.push(rotZ)\n }\n this.batch.invoke('rotateFromVectorSelf', ...args)\n return this\n }\n scale3dSelf(scale?: number, originX?: number, originY?: number, originZ?: number) {\n const args = []\n if (scale) {\n args.push(scale)\n }\n if (originX) {\n args.push(originX)\n }\n if (originY) {\n args.push(originY)\n }\n if (originZ) {\n args.push(originZ)\n }\n this.batch.invoke('scale3dSelf', ...args)\n return this\n }\n scaleSelf(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number) {\n const args = []\n if (scaleX) {\n args.push(scaleX)\n }\n if (scaleY) {\n args.push(scaleY)\n }\n if (scaleZ) {\n args.push(scaleZ)\n }\n if (originX) {\n args.push(originX)\n }\n if (originY) {\n args.push(originY)\n }\n if (originZ) {\n args.push(originZ)\n }\n this.batch.invoke('scaleSelf', ...args)\n return this\n }\n setMatrixValue(transformList: string) {\n this.invoke<void>('setMatrixValue', transformList)\n return this\n }\n skewXSelf(sX: number) {\n this.batch.invoke('skewXSelf', sX)\n return this\n }\n skewYSelf(sX: number) {\n this.batch.invoke('skewYSelf', sX)\n return this\n }\n\n translateSelf(translateX: number, translateY: number, translateZ?: number) {\n this.batch.invoke('translateSelf', translateX, translateY, ...(translateZ ? [translateZ] : []))\n return this\n }\n async commit() {\n await this.batch.exec()\n }\n async is2D(): Promise<boolean> {\n return (await this.invoke<boolean>('is2D')) ?? false\n }\n async isIdentity(): Promise<boolean> {\n return (await this.invoke<boolean>('isIdentity')) ?? false\n }\n\n async flipX(): Promise<DOMMatrix | null> {\n const res = await this.invokeAndHold('flipX')\n if (!res) {\n return null\n }\n return new DOMMatrix(res)\n }\n async flipY(): Promise<DOMMatrix | null> {\n const res = await this.invokeAndHold('flipY')\n if (!res) {\n return null\n }\n return new DOMMatrix(res)\n }\n async inverse(): Promise<DOMMatrix | null> {\n const res = await this.invokeAndHold('inverse')\n if (!res) {\n return null\n }\n return new DOMMatrix(res)\n }\n async multiply(other?: DOMMatrix) {\n const res = await this.invokeAndHold('multiply', ...(other ? [other.ref] : []))\n if (!res) {\n return null\n }\n return new DOMMatrix(res)\n }\n async rotate(rotX?: number, rotY?: number, rotZ?: number) {\n const args = []\n if (rotX) {\n args.push(rotX)\n }\n if (rotY) {\n args.push(rotY)\n }\n if (rotZ) {\n args.push(rotZ)\n }\n const res = await this.invokeAndHold('rotate', ...args)\n if (!res) {\n return null\n }\n return new DOMMatrix(res)\n }\n async rotateAxisAngle(rotX?: number, rotY?: number, rotZ?: number, angle?: number) {\n const args = []\n if (rotX) {\n args.push(rotX)\n }\n if (rotY) {\n args.push(rotY)\n }\n if (rotZ) {\n args.push(rotZ)\n }\n if (angle) {\n args.push(angle)\n }\n const res = await this.invokeAndHold('rotateAxisAngle', ...args)\n if (!res) {\n return null\n }\n return new DOMMatrix(res)\n }\n async rotateFromVector(rotX?: number, rotY?: number) {\n const args = []\n if (rotX) {\n args.push(rotX)\n }\n if (rotY) {\n args.push(rotY)\n }\n const res = await this.invokeAndHold('rotateFromVector', ...args)\n if (!res) {\n return null\n }\n return new DOMMatrix(res)\n }\n async scale(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number) {\n const args = []\n if (scaleX) {\n args.push(scaleX)\n }\n if (scaleY) {\n args.push(scaleY)\n }\n if (scaleZ) {\n args.push(scaleZ)\n }\n if (originX) {\n args.push(originX)\n }\n if (originY) {\n args.push(originY)\n }\n if (originZ) {\n args.push(originZ)\n }\n const res = await this.invokeAndHold('scale', ...args)\n if (!res) {\n return null\n }\n return new DOMMatrix(res)\n }\n async scale3d(scale?: number, originX?: number, originY?: number, originZ?: number) {\n const args = []\n if (scale) {\n args.push(scale)\n }\n if (originX) {\n args.push(originX)\n }\n if (originY) {\n args.push(originY)\n }\n if (originZ) {\n args.push(originZ)\n }\n const res = await this.invokeAndHold('scale', ...args)\n if (!res) {\n return null\n }\n return new DOMMatrix(res)\n }\n async skewX(sX?: number) {\n const args = []\n if (sX) {\n args.push(sX)\n }\n const res = await this.invokeAndHold('skewX', ...args)\n if (!res) {\n return null\n }\n return new DOMMatrix(res)\n }\n async skewY(sY?: number) {\n const args = []\n if (sY) {\n args.push(sY)\n }\n const res = await this.invokeAndHold('skewY', ...args)\n if (!res) {\n return null\n }\n return new DOMMatrix(res)\n }\n toJSON(): Promise<any> {\n return this.invoke<any>('toJSON')\n }\n async toString(): Promise<string | null> {\n return this.invoke<string>('toString')\n }\n async translate(translateX?: number, translateY?: number, translateZ?: number) {\n const args = []\n if (translateX) {\n args.push(translateX)\n }\n if (translateY) {\n args.push(translateY)\n }\n if (translateZ) {\n args.push(translateZ)\n }\n const res = await this.invokeAndHold('translate', ...args)\n if (!res) {\n return null\n }\n return new DOMMatrix(res)\n }\n\n }\n export class CanvasPattern extends OObject {\n constructor(obj: OObject) {\n super(obj.uid, obj.tag)\n }\n setTransform(matrix: DOMMatrix) {\n this.invoke('setTransform', matrix.ref)\n }\n }\n export class Canvas2DContext extends OObject {\n private batch = new BatchUpdates(this);\n constructor(uid: string) {\n super(uid, 'unknown')\n }\n arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise: boolean = false) {\n this.batch.invoke('arc', x, y, radius, startAngle, endAngle, counterclockwise)\n return this\n }\n arcTo(x1: number, y1: number, x2: number, y2: number, radius: number) {\n this.batch.invoke('arcTo', x1, y1, x2, y2, radius)\n return this\n }\n bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number) {\n this.batch.invoke('bezierCurveTo', cp1x, cp1y, cp2x, cp2y, x, y)\n return this\n }\n clearRect(x: number, y: number, width: number, height: number) {\n this.batch.invoke('clearRect', x, y, width, height)\n return this\n }\n clip(path?: CanvasPath2D): Canvas2DContext\n clip(fillRule?: 'nonzero' | 'evenodd'): Canvas2DContext\n clip(path: CanvasPath2D, fillRule?: 'nonzero' | 'evenodd'): Canvas2DContext\n clip(arg1?: CanvasPath2D | 'nonzero' | 'evenodd', arg2?: 'nonzero' | 'evenodd'): Canvas2DContext {\n const args = []\n if (typeof arg1 === 'string') {\n args.push(arg1)\n } else if (arg1 instanceof CanvasPath2D) {\n arg1.commit()\n args.push(arg1.ref)\n }\n if (typeof arg2 === 'string') {\n args.push(arg2)\n }\n this.batch.invoke('clip', ...args)\n return this\n }\n beginPath() {\n this.batch.invoke('beginPath')\n return this\n }\n closePath() {\n this.batch.invoke('closePath')\n return this\n }\n async createConicGradient(startAngle: number, x: number, y: number): Promise<CanvasGradient | null> {\n const res = await this.invokeAndHold('createConicGradient', startAngle, x, y)\n if (!res) {\n return null;\n }\n return new CanvasGradient(res)\n }\n async createLinearGradient(x0: number, y0: number, x1: number, y1: number): Promise<CanvasGradient | null> {\n const res = await this.invokeAndHold('createLinearGradient', x0, y0, x1, y1)\n if (!res) {\n return null;\n }\n return new CanvasGradient(res)\n }\n async createPattern(image: OObject, repetition: 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat' | '' = '') {\n const res = await this.invokeAndHold('createPattern', image.ref, repetition)\n if (!res) {\n return null;\n }\n return new CanvasPattern(res)\n }\n async createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): Promise<CanvasGradient | null> {\n const res = await this.invokeAndHold('createRadialGradient', x0, y0, r0, x1, y1, r1)\n if (!res) {\n return null;\n }\n return new CanvasGradient(res)\n }\n drawImage(image: Image | OObject, dx: number, dy: number): Canvas2DContext\n drawImage(image: Image | OObject, dx: number, dy: number, dWidth: number, dHeight: number): Canvas2DContext\n drawImage(image: Image | OObject, sx: number, sy: number, sWidth: number, sHeight: number, dx: number, dy: number, dWidth: number, dHeight: number): Canvas2DContext\n drawImage(image: Image | OObject, sx: number, sy: number, sWidth?: number, sHeight?: number, dx?: number, dy?: number, dWidth?: number, dHeight?: number) {\n const args: any[] = [image.ref]\n if (typeof dx === 'undefined') {\n args.push(sx, sy)\n if (sWidth) args.push(sWidth)\n if (sHeight) args.push(sHeight)\n this.batch.invoke('drawImage', ...args)\n return this\n }\n args.push(sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)\n this.batch.invoke('drawImage', ...args)\n return this\n }\n ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise: boolean = false) {\n this.batch.invoke('ellipse', x, y, radiusX, radiusY, rotation, startAngle, endAngle, counterclockwise)\n return this\n }\n fill(path?: CanvasPath2D | 'nonzero' | 'evenodd', fillRule?: 'nonzero' | 'evenodd') {\n const args = []\n if (path) {\n args.push(typeof path === 'string' ? path : (path.commit(), path.ref))\n }\n if (fillRule) {\n args.push(fillRule)\n }\n this.batch.invoke('fill', ...args)\n return this\n }\n fillRect(x: number, y: number, width: number, height: number) {\n this.batch.invoke('fillRect', x, y, width, height)\n return this\n }\n fillText(text: string, x: number, y: number, maxWidth?: number) {\n this.batch.invoke('fillText', text, x, y, ...(maxWidth ? [maxWidth] : []))\n return this\n }\n\n getImageData(sx: number, sy: number, sw: number, sh: number, settings?: { colorSpace: 'srgb' | 'display-p3', pixelFormat: 'rgba-unorm8' | 'rgba-float16' }) {\n return this.invokeAndHold('getImageData', sx, sy, sw, sh, ...(settings ? [settings] : []))\n }\n getLineDash() {\n return this.invoke<number[]>('getLineDash')\n }\n async getTransform() {\n const mat = await this.invokeAndHold('getTransform')\n if (!mat) {\n return null\n }\n return new DOMMatrix(mat)\n }\n async isContextLost() {\n return await this.invoke<boolean>('isContextLost')\n }\n isPointInPath(x: number, y: number, fillRule?: 'nonzero' | 'evenodd'): Promise<boolean>;\n isPointInPath(path: CanvasPath2D, x: number, y: number, fillRule?: 'nonzero' | 'evenodd'): Promise<boolean>;\n async isPointInPath(\n arg1: number | CanvasPath2D,\n arg2: number,\n arg3?: number | ('nonzero' | 'evenodd'),\n arg4?: ('nonzero' | 'evenodd'),\n ): Promise<boolean> {\n\n const args = []\n if (typeof arg1 === 'number') {\n args.push(arg1, arg2)\n if (arg3) {\n args.push(arg3)\n }\n } else {\n arg1.commit()\n args.push(arg1.ref, arg2, arg3, arg4 ?? 'nonzero')\n }\n return (await this.invoke<boolean>('isPointInPath', ...args)) ?? false\n\n }\n isPointInStroke(x: number, y: number): Promise<boolean>\n isPointInStroke(path: CanvasPath2D, x: number, y: number): Promise<boolean>\n async isPointInStroke(arg1: CanvasPath2D | number, arg2: number, arg3?: number): Promise<boolean> {\n const args = []\n if (typeof arg1 === 'number') {\n args.push(arg1, arg2)\n } else {\n arg1.commit()\n args.push(arg1.ref, arg2, arg3)\n }\n return (await this.invoke('isPointInStroke', ...args)) ?? false\n }\n\n\n lineTo(x: number, y: number): Canvas2DContext {\n this.batch.invoke('lineTo', x, y)\n return this\n }\n async measureText(text: number): Promise<number> {\n return (await this.invoke('measureText', text)) ?? 0\n }\n moveTo(x: number, y: number): Canvas2DContext {\n this.batch.invoke('moveTo', x, y)\n return this\n }\n putImageData(imageData: OObject, dx: number, dy: number): Canvas2DContext\n putImageData(imageData: OObject, dx: number, dy: number, dirtyX: number, dirtyY: number, dirtyWidth: number, dirtyHeight: number): Canvas2DContext\n putImageData(imageData: OObject, dx: number, dy: number, dirtyX?: number, dirtyY?: number, dirtyWidth?: number, dirtyHeight?: number) {\n const args = [imageData.ref, dx, dy]\n if (dirtyX) args.push(dirtyX)\n if (dirtyY) args.push(dirtyY)\n if (dirtyWidth) args.push(dirtyWidth)\n if (dirtyHeight) args.push(dirtyHeight)\n this.batch.invoke('putImageData', ...args)\n return this\n }\n quadraticCurveTo(cpx: number, cpy: number, x: number, y: number) {\n this.batch.invoke('quadraticCurveTo', cpx, cpy, x, y)\n return this\n }\n rect(x: number, y: number, width: number, height: number) {\n this.batch.invoke('rect', x, y, width, height)\n return this\n }\n reset() {\n this.invoke('reset')\n }\n resetTransform() {\n this.invoke('resetTransform')\n }\n restore() {\n return this.invoke<void>('restore')\n }\n rotate(angle: number): Canvas2DContext {\n this.batch.invoke('rotate', angle)\n return this\n }\n roundRect(x: number, y: number, width: number, height: number, radii: number | number[]) {\n this.batch.invoke('roundRect', x, y, width, height, radii)\n return this\n }\n save() {\n return this.invoke<void>('save')\n }\n scale(x: number, y: number): Canvas2DContext {\n this.batch.invoke('scale', x, y)\n return this\n }\n setLineDash(segments: number[]) {\n return this.invoke<void>('setLineDash', segments)\n }\n setTransform(matrix: DOMMatrix): Promise<void>\n setTransform(a: number, b: number, c: number, d: number, e: number, f: number): Promise<void>\n async setTransform(a: number | DOMMatrix, b?: number, c?: number, d?: number, e?: number, f?: number): Promise<void> {\n if (typeof a === 'number') {\n await this.invoke('setTransform', a, b, c, d, e, f)\n } else {\n await this.invoke('setTransform', a.ref)\n }\n }\n stroke(path?: CanvasPath2D): Canvas2DContext {\n this.batch.invoke('stroke', ...(path ? [(path.commit(), path.ref)] : []))\n return this\n }\n strokeRect(x: number, y: number, width: number, height: number): Canvas2DContext {\n this.batch.invoke('strokeRect', x, y, width, height)\n return this\n }\n strokeText(text: string, x: number, y: number, maxWidth?: number): Canvas2DContext {\n this.batch.invoke('strokeText', text, x, y, ...(maxWidth ? [maxWidth] : []))\n return this\n }\n transform(a: number, b: number, c: number, d: number, e: number, f: number): Canvas2DContext {\n this.batch.invoke('transform', a, b, c, d, e, f)\n return this\n }\n translate(x: number, y: number): Canvas2DContext {\n this.batch.invoke('translate', x, y)\n return this\n }\n set fillStyle(value: string | CanvasGradient | CanvasPattern) {\n this.setFillStyle(value)\n }\n async setFillStyle(style: string | CanvasGradient | CanvasPattern): Promise<Canvas2DContext> {\n await this.setProperty('fillStyle', typeof style === 'string' ? style : style instanceof OObject ? style.ref : style)\n return this\n }\n set filter(value: string) {\n this.setFilter(value)\n }\n async setFilter(filter: string) {\n await this.setProperty('filter', filter)\n return this\n }\n set font(value: string) {\n this.setFont(value)\n }\n async setFont(font: string) {\n await this.setProperty('font', font)\n return this\n }\n set fontKerning(value: string) {\n this.setFontKerning(value)\n }\n async setFontKerning(kerning: string) {\n await this.setProperty('fontKerning', kerning)\n return this\n }\n set fontStretch(value: string) {\n this.setFontStretch(value)\n }\n async setFontStretch(value: string) {\n await this.setProperty('fontStretch', value)\n return this\n }\n set fontVariantCaps(value: string) {\n this.setFontVariantCaps(value)\n }\n async setFontVariantCaps(value: string) {\n await this.setProperty('fontVariantCaps', value)\n return this\n }\n set globalAlpha(value: number) {\n this.setGlobalAlpha(value)\n }\n async setGlobalAlpha(value: number) {\n await this.setProperty('globalAlpha', value)\n return this\n }\n set globalCompositeOperation(value: string) {\n this.setGlobalCompositeOperation(value)\n }\n async setGlobalCompositeOperation(value: string) {\n await this.setProperty('globalCompositeOperation', value)\n return this\n }\n set imageSmoothingEnabled(value: boolean) {\n this.setImageSmoothingEnabled(value)\n }\n async setImageSmoothingEnabled(value: boolean) {\n await this.setProperty('imageSmoothingEnabled', value)\n return this\n }\n set imageSmoothingQuality(value: string) {\n this.setImageSmoothingQuality(value)\n }\n async setImageSmoothingQuality(value: string) {\n await this.setProperty('imageSmoothingQuality', value)\n return this\n }\n set letterSpacing(value: string) {\n this.setLetterSpacing(value)\n }\n async setLetterSpacing(value: string) {\n await this.setProperty('letterSpacing', value)\n return this\n }\n set lineCap(value: string) {\n this.setLineCap(value)\n }\n async setLineCap(value: string) {\n await this.setProperty('lineCap', value)\n return this\n }\n set lineDashOffset(value: number) {\n this.setLineDashOffset(value)\n }\n async setLineDashOffset(value: number) {\n await this.setProperty('lineDashOffset', value)\n return this\n }\n set lineJoin(value: string) {\n this.setLineJoin(value)\n }\n async setLineJoin(value: string) {\n await this.setProperty('lineJoin', value)\n return this\n }\n set lineWidth(value: number) {\n this.setLineWidth(value)\n }\n async setLineWidth(value: number) {\n await this.setProperty('lineWidth', value)\n return this\n }\n set miterLimit(value: number) {\n this.setMiterLimit(value)\n }\n async setMiterLimit(value: number) {\n await this.setProperty('miterLimit', value)\n return this\n }\n set shadowBlur(value: number) {\n this.setShadowBlur(value)\n }\n async setShadowBlur(value: number) {\n await this.setProperty('shadowBlur', value)\n return this\n }\n set shadowColor(value: string) {\n this.setShadowColor(value)\n }\n async setShadowColor(value: string) {\n await this.setProperty('shadowColor', value)\n return this\n }\n set shadowOffsetX(value: number) {\n this.setShadowOffsetX(value)\n }\n async setShadowOffsetX(value: number) {\n await this.setProperty('shadowOffsetX', value)\n return this\n }\n set shadowOffsetY(value: number) {\n this.setShadowOffsetY(value)\n }\n async setShadowOffsetY(value: number) {\n await this.setProperty('shadowOffsetY', value)\n return this\n }\n set strokeStyle(value: any) {\n this.setStrokeStyle(value)\n }\n async setStrokeStyle(value: any) {\n await this.setProperty('strokeStyle', typeof value === 'string' ? value : value instanceof OObject ? value.ref : value)\n return this\n }\n set textAlign(value: string) {\n this.setTextAlign(value)\n }\n async setTextAlign(value: string) {\n await this.setProperty('textAlign', value)\n return this\n }\n set textBaseline(value: string) {\n this.setTextBaseline(value)\n }\n async setTextBaseline(value: string) {\n await this.setProperty('textBaseline', value)\n return this\n }\n set wordSpacing(value: string) {\n this.setWordSpacing(value)\n }\n async setWordSpacing(value: string) {\n await this.setProperty('wordSpacing', value)\n return this\n }\n set textRendering(value: string) {\n this.setTextRendering(value)\n }\n async setTextRendering(value: string) {\n await this.setProperty('textRendering', value)\n return this\n }\n async commit(): Promise<void> {\n await this.batch.exec()\n }\n }\n export class Image extends OObject {\n constructor(obj: OObject) {\n super(obj.uid, obj.tag)\n }\n static async new(width?: number, height?: number): Promise<Image | null> {\n const args = []\n if (width) args.push(width)\n if (height) args.push(height)\n const img = await OUID.newObject('Image', ...args)\n if (!img) return null\n return new Image(img)\n }\n async width(): Promise<number> {\n return (await this.getProperty<number>('width')) ?? 0\n }\n async height(): Promise<number> {\n return (await this.getProperty<number>('height')) ?? 0\n }\n async naturalWidth(): Promise<number> {\n return (await this.getProperty<number>('naturalWidth')) ?? 0\n }\n async naturalHeight(): Promise<number> {\n return (await this.getProperty<number>('naturalHeight')) ?? 0\n }\n async src() {\n return await this.getProperty<string>('src')\n }\n async currentSrc() {\n return await this.getProperty<string>('currentSrc')\n }\n async setSrc(src: string) {\n await this.setProperty('src', src)\n }\n }\n export class CanvasPath2D extends OObject {\n private batch = new BatchUpdates(this);\n constructor(obj: OObject) {\n super(obj.uid, obj.tag)\n }\n\n static async create() {\n const ret = await OUID.newObject('Path2D')\n if (!ret) {\n return null\n }\n return new CanvasPath2D(ret)\n }\n addPath(path: CanvasPath2D) {\n this.batch.invoke('addPath', path.ref)\n return this\n }\n arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise: boolean = false) {\n this.batch.invoke('arc', x, y, radius, startAngle, endAngle, counterclockwise)\n return this\n }\n arcTo(x1: number, y1: number, x2: number, y2: number, radius: number) {\n this.batch.invoke('arcTo', x1, y1, x2, y2, radius)\n return this\n }\n bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number) {\n this.batch.invoke('bezierCurveTo', cp1x, cp1y, cp2x, cp2y, x, y)\n return this\n }\n quadraticCurveTo(cpx: number, cpy: number, x: number, y: number) {\n this.batch.invoke('quadraticCurveTo', cpx, cpy, x, y)\n return this\n }\n closePath() {\n this.batch.invoke('closePath')\n return this\n }\n ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise: boolean = false) {\n this.batch.invoke('ellipse', x, y, radiusX, radiusY, rotation, startAngle, endAngle, counterclockwise)\n return this\n }\n moveTo(x: number, y: number) {\n this.batch.invoke('moveTo', x, y)\n return this\n }\n lineTo(x: number, y: number) {\n this.batch.invoke('lineTo', x, y)\n return this\n }\n rect(x: number, y: number, width: number, height: number) {\n this.batch.invoke('rect', x, y, width, height)\n return this\n }\n roundRect(x: number, y: number, width: number, height: number, radii: number | number[]) {\n this.batch.invoke('roundRect', x, y, width, height, radii)\n return this\n }\n async commit(): Promise<void> {\n await this.batch.exec()\n }\n\n }\n export class CanvasElement extends OElement {\n constructor(node: OElement) {\n super(node)\n }\n async width() {\n return this.getProperty<number>('width')\n }\n async height() {\n return this.getProperty<number>('height')\n }\n async setWidth(width: number) {\n this.setProperty('width', width)\n }\n async setHeight(height: number) {\n this.setProperty('height', height)\n }\n async getContext(context: string): Promise<Canvas2DContext | null> {\n const obj = await this.invokeAndHold('getContext', context)\n if (!obj) return obj\n return new Canvas2DContext(obj.uid)\n }\n static async of(selector: string, filter?: QueryFilter[], nodeId?: string): Promise<CanvasElement | null> {\n const node = await OUID.query(selector, filter)\n if (!node) return null\n return new CanvasElement(node)\n }\n }\n}\n\nexport interface EventListenerOptions {\n once?: boolean;\n passive?: boolean; capture?: boolean\n}\nexport interface EventControlPolicy {\n alwaysPreventDefault?: boolean;\n alwaysStopPropagation?: boolean;\n alwaysStopImmediatePropagation?: boolean\n}\nexport interface OUIDBridgeInterface {\n invoke(name: string): Promise<any>\n emit(event: string, data: any): void\n subscribe(event: string, callback: (id: string, data: string) => void): void\n}\n\nexport type OUIDConfig = {\n appId: string;\n appName: string,\n appSecret: string\n}\nexport declare var WebOUID: { invoke: (id: string, name: string, argsJson: string) => void } | undefined\ntype SuccessCallback = (...args: any[]) => void\ntype ErrorCallback = (...args: any[]) => void\ntype InvokeCallback = { success: SuccessCallback, error: ErrorCallback }\ntype RequestData = { method: string, headers: Record<string, string>, body: any, credentials: \"include\" | \"omit\" | \"same-origin\" }\nexport class OUIDBridge implements OUIDBridgeInterface {\n private callbacks = new Map<string, InvokeCallback>()\n private DOM_EVENT_LISTENERS = new Map<string, (...args: any[]) => void>()\n private timers = new Map<number, string>()\n private _config?: OUIDConfig = undefined\n private listeners = new Map<string, ((id: string, data: string) => void)[]>()\n constructor() {\n this.subscribe('__ouid_native_event_success__', (id, data) => {\n const cb = this.callbacks.get(id)\n if (cb) {\n this.callbacks.delete(id)\n return cb.success(...JSON.parse(data))\n }\n })\n this.subscribe('__ouid_native_event_error__', (id, data) => {\n const cb = this.callbacks.get(id)\n if (cb) {\n this.callbacks.delete(id)\n console.log('Error:', data)\n return cb.error(...JSON.parse(data))\n }\n })\n this.subscribe('__ouid_web_event__', (id, data) => {\n const cb = this.DOM_EVENT_LISTENERS.get(id)\n if (cb) {\n // this.callbacks.delete(id)\n const args = JSON.parse(data)\n const event = args[1]\n if (event) {\n event['target'] = event?.target ? new ODOM.OElement(event.target) : null\n event['currentTarget'] = event?.currentTarget ? new ODOM.OElement(event.currentTarget) : null\n event['relatedTarget'] = event?.relatedTarget ? new ODOM.OElement(event.relatedTarget) : null\n }\n return cb(event)\n }\n })\n }\n config(conf?: OUIDConfig): OUIDBridge {\n this._config = conf\n return this\n }\n\n invoke(name: string, ...args: any[]): Promise<any> {\n const id = generateUIID(name)\n return new Promise((res, rej) => {\n this.callbacks.set(id, { success: res, error: rej })\n try {\n if (!WebOUID) throw new Error(\"NativeOUID bridge not available\")\n WebOUID.invoke(id, name, JSON.stringify(args))\n } catch (error) {\n console.error(error)\n this.callbacks.delete(id)\n }\n })\n }\n registerComponent(tag: string, compClass: OComponentType<any, any>) {\n componentsRegistry.register(tag, compClass)\n }\n unregisterComponent(tag: string, compClass: OComponentType<any, any>) {\n componentsRegistry.unregister(tag)\n }\n /**\n * Make a synchronous class\n * @param name the name without '_oui' prefix\n * @param args the arguments list\n * @returns a promise of T\n */\n async call<T>(name: string, ...args: any[]): Promise<T | null> {\n try {\n const res = await this.invoke(`_ouid_${name}`, ...args)\n return res.data as T\n } catch (error) {\n console.error(error)\n return null\n }\n }\n emit(event: string, data: any): void {\n WebOUID?.invoke('event', event, JSON.stringify(data))\n }\n /**\n * \n * @param event Create a subscription for a given event name, should be possible to register only once ??\n * @param callback \n */\n\n\n subscribe(event: string, callback: (id: string, ...args: any[]) => void): void {\n if (!this.listeners.has(event)) {\n this.listeners.set(event, []);\n // attach a single handler for native -> JS calls\n (globalThis as any)[event] = (id: string, data: string) => {\n this.listeners.get(event)?.forEach(cb => cb(id, data))\n }\n // if (window && document) {\n // (window as any)[event] = (globalThis as any)[event]\n // }\n }\n this.listeners.get(event)!.push(callback)\n }\n\n\n async query(selector: string, filter?: QueryFilter[], nodeId?: string): Promise<ODOM.OElement | null> {\n const node = await this.call<ODOM.ONode>('query', selector, filter, nodeId)\n return node ? new ODOM.OElement(node) : null\n }\n async queryAll(selector: string, filter?: QueryFilter[], nodeId?: string): Promise<ODOM.OElement[] | null> {\n const nodes = await this.call<ODOM.ONode[]>('queryAll', selector, filter, nodeId)\n return nodes ? nodes.map(n => new ODOM.OElement(n)) : []\n }\n\n async createElement(tag: string, props: Record<string, string> = {}): Promise<ODOM.OElement | null> {\n const node = await this.call<ODOM.ONode>('createElement', tag, props)\n return node ? new ODOM.OElement(node) : null\n }\n async createComment(data: string): Promise<ODOM.OElement | null> {\n const node = await this.call<ODOM.ONode>('createComment', data)\n return node ? new ODOM.OElement(node) : null\n }\n\n async addEventListener(node: ODOM.OObject | 'window' | 'document',\n event: string,\n callback: (...args: any[]) => void,\n extra?: {\n options?: EventListenerOptions,\n policy?: EventControlPolicy\n }\n ): Promise<string> {\n const cbId = generateUIID(event + (typeof node == 'string' ? node : node.tag))\n this.DOM_EVENT_LISTENERS.set(cbId, callback)\n await OUID.call('attachEventListener', typeof node == 'string' ? node : node.uid, cbId, event, extra?.options, extra?.policy)\n return cbId\n }\n async dettachEventListener(cbId: string) {\n this.DOM_EVENT_LISTENERS.delete(cbId)\n await OUID.call('dettachEventListener', cbId)\n }\n\n\n async injectComponentStyles(css: string): Promise<ODOM.OElement | null> {\n const node = await OUID.call<ODOM.OElement>('injectComponentStyles', css)\n return node ? new ODOM.OElement(node) : null;\n }\n async rejectComponentStyles(cssNode: ODOM.ONode): Promise<void> {\n await OUID.call('rejectComponentStyles', cssNode.uid)\n }\n\n async getOObject(id: string): Promise<ODOM.OObject | null> {\n const obj = await OUID.call<ODOM.OObject>('getOObject', id)\n return obj ? new ODOM.OObject(obj.uid, obj.tag) : null\n }\n async acquireObject(name: string): Promise<ODOM.OObject | null> {\n const obj = await OUID.call<ODOM.OObject>('acquireObject', name)\n return obj ? new ODOM.OObject(obj.uid, obj.tag) : null\n }\n\n async setTimeout(callback: () => void, delay: number): Promise<number> {\n const cbId = generateUIID('setTimeout' + delay)\n this.DOM_EVENT_LISTENERS.set(cbId, () => {\n callback()\n // remove from queue\n const cb = this.timers.get(id)\n if (cb) {\n this.timers.delete(id)\n this.DOM_EVENT_LISTENERS.delete(cb)\n }\n })\n const id = await OUID.call<number>('setTimeout', cbId, delay) ?? -1\n if (id >= 0) {\n this.timers.set(id, cbId)\n }\n return id\n }\n async clearTimeout(id: number): Promise<void> {\n const cb = this.timers.get(id)\n if (cb) {\n this.timers.delete(id)\n this.DOM_EVENT_LISTENERS.delete(cb)\n await OUID.call<number>('clearTimeout', id)\n }\n }\n async setInterval(callback: () => void, delay: number): Promise<number> {\n const cbId = generateUIID('setInterval' + delay)\n this.DOM_EVENT_LISTENERS.set(cbId, callback)\n const id = await OUID.call<number>('setInterval', cbId, delay) ?? -1\n if (id >= 0) {\n this.timers.set(id, cbId)\n }\n return id\n }\n async clearInterval(id: number): Promise<void> {\n const cb = this.timers.get(id)\n if (cb) {\n this.timers.delete(id)\n this.DOM_EVENT_LISTENERS.delete(cb)\n await OUID.call<number>('clearInterval', id)\n }\n }\n\n\n fetch(url: string, input: RequestData, encodeAs: \"json\"): Promise<any>\n fetch(url: string, input: RequestData, encodeAs: \"text\"): Promise<string>\n fetch(url: string, input: RequestData, encodeAs: \"base64\"): Promise<string>\n async fetch(\n url: string,\n input: RequestData,\n encodeAs: \"json\" | \"text\" | \"base64\" = \"json\"\n ): Promise<any> {\n return await OUID.call(\"fetch\", url, input, encodeAs);\n }\n\n async alert(message: string): Promise<void> {\n await OUID.call(\"alert\", message);\n }\n async prompt(message: string): Promise<void> {\n await OUID.call(\"prompt\", message);\n }\n\n async newObject(ctr: string, ...args: any[]) {\n return OUID.call<ODOM.OObject>('newObject', ctr, ...args)\n }\n}\n\n\nexport const OUID = new Proxy(new OUIDBridge(), {\n get: (target, p) => {\n if (p in target) {\n return target[p as keyof OUIDBridge]\n }\n return async <T>(...args: any) => {\n return await target.call<T>(p as string, ...args)\n }\n }\n}) as OUIDBridge & Record<string, (...args: any[]) => Promise<any>>;\n\n; (globalThis as any).OUID = OUID\n\ndeclare global {\n var OUID: OUIDBridge & Record<string, (...args: any[]) => Promise<any>>;\n}","import { Component, ComponentConstructor, createComponent, OComponent, OComponentType, RenderNode } from \"./component\";\nimport { App } from \"./app\";\nimport { isStated } from \"./state\";\nimport { ComponentsRegistry, componentsRegistry } from \"./registry\";\nimport { ODOM } from \"./interfaces/bridge\";\n\nfunction toCamelCase(name: string): string {\n return name.replace(/-([a-z])/g, (_, char) => char.toUpperCase());\n}\nfunction toSnakeCase(name: string): string {\n return name.replace(/(?!^)([A-Z])/g, (_, char) => `-${char.toLowerCase()}`);\n}\n\nfunction normaliseValue<T>(value: T) {\n if (isStated(value)) {\n return value.value as T\n }\n return value\n}\n\n// ---- DOM-free schedulers ----\nconst hasQueueMicrotask = typeof (globalThis as any).queueMicrotask === 'function';\n\nexport const deferMicro = (fn?: () => void) =>\n fn\n ? (hasQueueMicrotask ? queueMicrotask(fn) : Promise.resolve().then(fn))\n : Promise.resolve(); // await deferMicro() yields to microtask queue\n\nexport const deferMacro = () =>\n new Promise<void>(r => setTimeout(r, 0)); // await deferMacro() yields one macrotask\n// ---- end schedulers ----\n\nfunction isLazyLoader<P extends Record<string, any>, O extends Record<string, any>>(\n comp: OComponentType<P, O>\n): comp is () => Promise<{ default: ComponentConstructor<P, O> }> {\n return typeof comp === \"function\" && !(\"prototype\" in comp);\n}\n\n// --- helpers (can live in the same file or be moved to cache.ts) ---\ntype TemplateFn = (scope: any) => string;\n\nconst EXPR_FN = new Map<string, (s: any) => any>();\nconst TEMPLATE_CACHE = new Map<string, TemplateFn>();\nconst METHODS_CACHE = new WeakMap<object, any>();\n\nfunction getMethodsView(obj: any) {\n if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) return {};\n const cached = METHODS_CACHE.get(obj);\n if (cached) return cached;\n\n const out: Record<string, any> = Object.create(null);\n for (let cur = obj; cur && cur !== Object.prototype; cur = Object.getPrototypeOf(cur)) {\n for (const key of Object.getOwnPropertyNames(cur)) {\n if (key === 'constructor' || key.startsWith('__') || key.endsWith('__')) continue;\n if (key in out) continue;\n\n const desc = Object.getOwnPropertyDescriptor(cur, key);\n if (!desc) continue;\n const v = (desc.value ?? (desc.get ? desc.get.call(obj) : undefined));\n out[key] = typeof v === 'function' ? v.bind(obj) : v;\n }\n }\n METHODS_CACHE.set(obj, out);\n return out;\n}\n\nfunction evalInScope(expr: string, scope: any) {\n let compiled = EXPR_FN.get(expr);\n if (!compiled) {\n // Compile ONCE per expr; use with(s) to avoid rebuilding arg lists each call\n compiled = new Function('s', 'with (s) { return (' + expr + '); }') as (s: any) => any;\n EXPR_FN.set(expr, compiled);\n }\n return compiled(scope);\n}\n\nfunction compileInterpolated(template: string): TemplateFn {\n let fn = TEMPLATE_CACHE.get(template);\n if (fn) return fn;\n\n const parts: Array<{ t?: string; e?: string }> = [];\n let i = 0;\n while (i < template.length) {\n const open = template.indexOf('{{', i);\n if (open < 0) { parts.push({ t: template.slice(i) }); break; }\n if (open > i) parts.push({ t: template.slice(i, open) });\n const close = template.indexOf('}}', open + 2);\n const expr = close >= 0 ? template.slice(open + 2, close).trim() : template.slice(open + 2).trim();\n parts.push({ e: expr });\n i = (close >= 0 ? close + 2 : template.length);\n }\n\n fn = (scope: any) => {\n let out = '';\n for (const p of parts) {\n if (p.t !== undefined) out += p.t;\n else if (p.e !== undefined) {\n const v = normaliseValue(evalInScope(p.e, scope));\n out += v == null ? '' : String(v);\n }\n }\n return out;\n };\n TEMPLATE_CACHE.set(template, fn);\n return fn;\n}\n\nexport class RenderContext {\n static PROVIDE_TOKEN = \"RENDER_CONTEXT\"\n static STYLE_REF = new WeakMap<any, number>()\n private bindings: Binding[] = []\n private directives: Directive[] = []\n private mountedComponents: WeakMap<any, OComponent> = new WeakMap()\n private componentsRegistry = new ComponentsRegistry()\n private updatingDirectives = false;\n private updatingBindings = false;\n private _stack: Record<string, any>[] = []\n private flatStack: Record<string, any> = Object.create(null);\n hydradationActions = new ODOM.BatchActions()\n\n constructor(private app: App, public component: OComponent<Record<string, any>, Record<string, any>>, private parentContext: RenderContext | null, ...frames: Record<string, any>[]) {\n for (const f of frames) {\n this.push(f)\n }\n }\n get hostElement(): ODOM.OElement {\n return (this.component as any)['_hostElement']\n }\n get stack() {\n return this._stack;\n }\n set stack(value: Record<string, any>[]) {\n this.flatStack = Object.create(null);\n this._stack = [];\n for (const f of value) {\n this.push(f)\n }\n }\n getMountedComponent(node: ODOM.OElement): OComponent | undefined {\n return this.mountedComponents.get(node)\n }\n bind(binding: Binding) {\n this.bindings.push(binding)\n }\n directive(directive: Directive) {\n this.directives.push(directive)\n }\n evaluateExpression(expr: string | null | undefined): boolean {\n return this.resolve(expr)\n }\n resolve(key: string | null | undefined, strict: boolean = true, ...additionFrames: Record<string, any>[]) {\n if (!key) return undefined;\n\n const stateObj = this.component.state?.value ?? {};\n const methodsView = getMethodsView(stateObj);\n\n const scope = new Proxy(Object.create(null), {\n get: (_t, prop: string) => {\n for (let i = additionFrames.length - 1; i >= 0; i--) {\n if (prop in additionFrames[i]) return (additionFrames[i] as any)[prop];\n }\n if (prop in this.flatStack) return (this.flatStack as any)[prop];\n if (prop in methodsView) return (methodsView as any)[prop];\n return (stateObj as any)[prop];\n },\n has: (_t, prop: string) =>\n additionFrames.some(f => prop in f) || (prop in this.flatStack) || (prop in methodsView) || (prop in stateObj)\n });\n\n try {\n return evalInScope(key, scope);\n } catch (error) {\n return undefined;\n }\n }\n /** \n * Handing (o-model) like (ngModel) update, we should support mutliple syntaxe like o-mode=\"value\" where value is defined directly on the component\n * o-model=\"data['key']\" where data is either defined on the component, of in the enclosing scope in case of for-loop for instance\n * */\n updateValue(key: string, value: any) {\n const firstPart = key.split(/[\\.\\[]/)[0];\n if (firstPart in this.component) {\n this.resolve(`${key}=__o_model_value__`, true, { '__o_model_value__': value });\n } else {\n this.resolve(`${key}=__o_model_value__`, true, { '__o_model_value__': value });\n }\n this.component.state.didChange(firstPart as any, undefined, value);\n }\n // setFrames(...frames: Record<string, any>[]) {\n // this._stack = []\n // this.flatStack = Object.create(null);\n // for (const f of frames) {\n // this.push(f)\n // }\n // }\n push(frame: Record<string, any>) {\n this._stack.unshift(frame);\n Object.assign(this.flatStack, frame);\n }\n\n pop() {\n const f = this._stack.shift();\n if (f) for (const k of Object.keys(f)) delete this.flatStack[k];\n }\n resolveTag(tag: string): OComponentType<any, any> | undefined {\n // resolve from context hiearchy\n let ctx: RenderContext | null = this\n while (true) {\n if (ctx.componentsRegistry.has(tag)) {\n return ctx.componentsRegistry.get(tag)\n }\n ctx = ctx?.parentContext ?? null\n if (!ctx) {\n break;\n }\n }\n return componentsRegistry.get(tag)\n }\n // --- Interpolation & two-way binding ---\n async updateBindings(updates?: ODOM.BatchActions): Promise<void> {\n if (this.updatingBindings) return;\n const root = !updates;\n updates = updates ?? new ODOM.BatchActions();\n\n this.updatingBindings = true;\n for (const b of this.bindings) this.updateBinding(b, updates);\n this.updatingBindings = false;\n\n if (root) await updates.commit();\n }\n updateBinding(binding: Binding, updates: ODOM.BatchActions): void {\n if (binding.type === \"model\") {\n (binding.node).setProperty('value', normaliseValue<string>(binding.context.resolve(binding.key)));\n return;\n }\n\n if (binding.type === 'interpolation') {\n // Precompiled template; resolve in one shot\n updates.add(async () => {\n const s = binding.templateFn({\n ...this.flatStack,\n ...getMethodsView(this.component.state?.value ?? {}),\n ...(this.component.state?.value ?? {})\n });\n await binding.node.setContentText(s);\n });\n return;\n }\n\n if (binding.type === 'attribute') {\n const name = binding.key;\n const v = normaliseValue(this.resolve(binding.template!));\n if (name === 'class') {\n updates.add(() => this.expandClass(binding.node, v));\n } else if (name === 'style') {\n this.expandStyle(binding.node, v); // single attribute set inside\n } else if (typeof v !== 'object' && typeof v !== 'function' && typeof v !== 'symbol' && typeof v !== 'undefined') {\n updates.add(() => binding.node.setAttribute(name, v.toString()));\n }\n return;\n }\n\n if (binding.type === 'prop' && binding.context.component) {\n const value = normaliseValue<string>(this.resolve(binding.template));\n try {\n binding.context.component.props[binding.key] = value;\n // when props change, re-evaluate the child context\n binding.context.updateBindings();\n binding.context.updateDirectives();\n } catch (error) {\n console.error(error);\n }\n return;\n }\n }\n // --- Directives ---\n async updateDirectives(updates?: ODOM.BatchActions) {\n if (this.updatingDirectives) {\n return\n }\n const root = !updates\n this.updatingDirectives = true\n updates = updates ?? new ODOM.BatchActions()\n for (let d of this.directives) {\n if (d.type === \"if\") {\n const show = normaliseValue(d.context.evaluateExpression(d.expr));\n if (!show) {\n if (d.active === false) {\n continue\n }\n d.active = false;\n if (d.renderedNode) {\n if (d.destroy) {\n this.unmountComponent(d.renderedNode)\n await d.renderedNode.removeAndRelease()\n } else {\n await d.renderedNode.addClass('oui-hidden')\n }\n }\n continue\n }\n\n if (d.active === true) {\n continue;\n }\n d.active = true;\n const renderedNode = d.renderedNode\n if (!renderedNode || d.destroy) {\n const clone = (await d.node.cloneNode(true))!\n d.renderedNode = clone\n await d.context.render(clone)\n await d.placeholder.after(clone)\n await d.context.hydradationActions.commit()\n } else {\n await renderedNode.removeClass(\"oui-hidden\");\n }\n // d.context.updateDirectives()\n }\n\n if (d.type === \"for\") {\n const oldChildren: Map<any, { node: ODOM.OElement, ctx: RenderContext }> = d.children ?? new Map();\n const newChildren: Map<any, { node: ODOM.OElement, ctx: RenderContext }> = new Map();\n\n const keyFn = (val: any, idx: number) =>\n d.key ? normaliseValue<any>(d.context.resolve(d.key, true, { [d.item!]: val })) : idx;\n\n const arr = normaliseValue<any[]>(d.context.resolve(d.list!)) || [];\n\n // We accumulate DOM moves/inserts, then commit once per chunk\n const domOps = new ODOM.BatchActions();\n const YIELD_EVERY = 32; // tune for device; 16~32 is usually sweet in WebView\n let opsSinceYield = 0;\n\n // Queue of async hydrations for new rows (run in small parallel bursts after DOM ops)\n const newHydrations: Array<() => Promise<void>> = [];\n\n let last: ODOM.OElement = d.placeholder;\n\n for (let i = 0; i < arr.length; i++) {\n const val = arr[i];\n const key = keyFn(val, i);\n\n let entry = oldChildren.get(key);\n let node: ODOM.OElement;\n let ctx: RenderContext;\n\n const anchor = last;\n if (entry) {\n node = entry.node;\n ctx = entry.ctx;\n\n // update loop-local frame quickly\n ctx.stack = [{ [d.item!]: val }, ...d.context.stack];\n\n // Reorder only if needed (batch it)\n domOps.add(async () => {\n const next = await last.nextSibling();\n if (node.uid !== next?.uid) {\n domOps.add(() => anchor.after(node)); // no async, anchor is stable\n }\n });\n\n // Schedule updates for the reused child; do not force immediate commit\n await Promise.all([ctx.updateBindings(updates), ctx.updateDirectives(updates)]);\n } else {\n // brand new row: create ctx + clone; avoid immediate DOM awaits\n ctx = new RenderContext(this.app, this.component, this);\n ctx.hydradationActions = this.hydradationActions;\n ctx.stack = [{ [d.item!]: val }, ...d.context.stack];\n\n const clone = await d.node.cloneNode(true);\n node = clone!;\n\n // Insert into DOM in the same batch (fast)\n domOps.add(async () => {\n await anchor.after(node);\n });\n\n // Hydration for this new row runs in parallel *after* the batch\n newHydrations.push(async () => {\n await ctx.render(node);\n await ctx.updateDirectives(updates);\n });\n }\n\n last = node;\n newChildren.set(key, { node, ctx });\n\n // yield periodically to keep main thread responsive in WebView\n if (++opsSinceYield >= YIELD_EVERY) {\n opsSinceYield = 0;\n await domOps.commit(); // flush moves so far\n await deferMicro(); // let microtasks run\n }\n }\n\n // Remove stale nodes (batched)\n for (const [key, entry] of oldChildren.entries()) {\n if (!newChildren.has(key)) {\n this.unmountComponent(entry.node);\n domOps.add(() => entry.node.removeAndRelease());\n }\n }\n\n // Final DOM batch flush for this directive pass\n await domOps.commit();\n\n // Hydrate all newly added rows in small bursts (breadth-first feel)\n if (newHydrations.length) {\n const BURST = 12; // parallelism; 4~8 keeps things smooth\n for (let i = 0; i < newHydrations.length; i += BURST) {\n const chunk = newHydrations.slice(i, i + BURST).map(fn => fn());\n await Promise.all(chunk);\n await deferMicro(); // small yield between bursts\n }\n }\n\n d.children = newChildren;\n }\n }\n // commit updates\n if (root) {\n await updates.commit()\n }\n await this.hydradationActions.commit()\n this.updatingDirectives = false\n }\n\n private async render(node: ODOM.OElement, options?: { skipSlotted: boolean }): Promise<void> {\n if (node.hydrated) {\n return;\n }\n if (options?.skipSlotted && node.hasAttribute('slotted')) {\n return;\n }\n switch (node.type) {\n case 'Text':\n this.handleTextNode(node)\n break\n case 'Element':\n await this.handleElementNode(node, options)\n break\n default:\n }\n const batch = new ODOM.BatchActions()\n await Promise.all([this.updateBindings(batch), this.updateDirectives(batch)])\n batch.commit()\n this.hydradationActions.add(() => node.hydrate())\n \n }\n private async expandClass(node: ODOM.OElement, value: any) {\n let classes: string[]\n if (typeof value === 'object') {\n if (Array.isArray(value)) {\n classes = value\n } else {\n classes = Object.keys(value).filter(e => value[e])\n }\n } else {\n classes = value.toString().split(/\\s+/)\n }\n if (classes.length > 0) {\n await node.addClass(...classes)\n }\n }\n private expandStyle(node: ODOM.OElement, value: any) {\n let styleString = value\n if (typeof value === 'object' && !Array.isArray(value)) {\n styleString = Object.keys(value).filter(e => value[e]).map(e => `${toSnakeCase(e)}: ${value[e]}`).join(';')\n }\n if (styleString) {\n node.setAttribute('style', styleString)\n }\n }\n private expandStandardAttributes(node: ODOM.OElement) {\n const batches = node.updates();\n [...node.attributes!].filter(attr => attr.name.startsWith(':')).forEach(attr => {\n const key = attr.name.substring(1)\n this.bind({\n type: 'attribute',\n node,\n key,\n context: this,\n template: attr.value.trim()\n })\n batches.removeAttribute(attr.name)\n })\n batches.exec()\n }\n async handleElementNode(node: ODOM.OElement, options?: { skipSlotted: boolean }) {\n // expand style and classes\n const parentNode = (await node.parentNode())!\n let controlled: 'for' | 'if' | null = null\n // *if directive\n const conditionAttr = node.hasAttribute(\"o-if\") ? \"o-if\" : node.hasAttribute('o-show') ? 'o-show' : null\n if (conditionAttr) {\n const expr = await (node.getAttribute(conditionAttr))!;\n const placeholder = (await OUID.createComment(conditionAttr + \":\" + expr))!;\n const destroy = conditionAttr === 'o-if'\n await parentNode.insertBefore(placeholder, node);\n await node.updates()\n .removeAttribute(conditionAttr)\n .remove()\n .exec()\n this.directive({\n type: \"if\",\n expr,\n node,\n placeholder,\n context: this,\n active: undefined,\n destroy\n });\n controlled = 'if'\n return\n }\n\n // *for directive\n if (node.hasAttribute(\"o-for\")) {\n if (controlled === 'if') {\n throw new Error('Can\\'t have o-if and o-for on the same component')\n }\n const expr = (await node.getAttribute(\"o-for\"))!;\n const [item, list] = expr.split(\" of \").map(s => s.trim());\n const placeholder = (await OUID.createComment(\"for:\" + expr))!;\n const key = node.attribute(':key') ?? \"\"\n await parentNode?.insertBefore(placeholder, node);\n await node.updates()\n .removeAttribute(\"o-for\")\n .removeAttribute(':key')\n .remove()\n .exec()\n this.directive({\n type: \"for\",\n item,\n list,\n node,\n placeholder,\n context: this,\n key,\n });\n controlled = 'for'\n return\n }\n const tag = node.tag.toLowerCase();\n const cc = this.resolveTag(tag);\n\n const batches = node.updates();\n // Two-way binding [(model)]\n [...node.attributes].forEach(async attr => {\n if (attr.name === 'o-model') {\n const key = attr.value.trim();\n const event = 'input'\n batches\n .setInputValue(normaliseValue(this.resolve(key,)))\n .addEventListener(event, async (e) => {\n // this.state[key] = (e.target as any).value;\n const value = await (e.target as ODOM.OElement).getProperty('value')\n this.updateValue(key, value)\n })\n this.bind({ node, key, type: \"model\", context: this });\n \n batches.removeAttribute(attr.name);\n }\n });\n\n\n\n\n let props = {} as any, events = {} as any\n\n const { props: p, events: e } = this.componentAttributes(node, this)\n props = p\n events = e\n this.expandStandardAttributes(node)\n // Event binding @(event)=\"fn()\"\n Object.keys(events).forEach(async k => {\n const handler = events[k]\n if (!cc) {\n batches.addEventListener(k, e => {\n if (typeof handler === \"function\") (handler as Function).apply(this.component, [e]);\n });\n }\n batches.removeAttribute('@' + k);\n });\n\n await batches.exec()\n\n\n if (cc) {\n await this.mountComponent(node, cc, this, props, events);\n return; // stop scanning original node\n }\n let children = await node.childNodes()\n if (options?.skipSlotted) {\n children = children.filter(c => !c.hasAttribute('slotted'))\n }\n for (const child of children) {\n /// AWAIT??\n await this.render(child, options)\n }\n }\n handleTextNode(node: ODOM.OElement) {\n const txt = node.textContent ?? '';\n if (txt.includes('{{')) {\n this.bind({\n type: 'interpolation',\n node,\n key: '__template__',\n templateFn: compileInterpolated(txt),\n context: this\n });\n }\n }\n private componentAttributes(node: ODOM.OElement, parentContext: RenderContext | null) {\n const props: Record<string, { name: string, expr?: string | null, value: any }> = {};\n const events: any = {};\n const ignoredAttrs = ['import', 'interface', 'module', 'o-model', 'o-if', 'o-for'];\n [...node.attributes].filter(a => !ignoredAttrs.includes(a.name)).forEach(attr => {\n let name = attr.name\n if (name.startsWith('@')) {\n // attach an event\n const handler = parentContext?.resolve(attr.value, true)\n if (typeof handler !== 'function') {\n throw new Error('Event handler can only be function')\n }\n name = name.substring(1)\n events[name] = handler\n return\n }\n let expr: string | null = null\n let p: any = attr.value\n if (name.startsWith(':')) {\n expr = attr.value\n name = name.substring(1)\n p = normaliseValue(parentContext?.resolve(attr.value))\n }\n name = toCamelCase(name)\n props[name] = {\n name,\n value: p,\n expr\n };\n });\n return { props, events }\n }\n async mountComponent<T extends Record<string, any>, O extends Record<string, string>>(\n hostNode: ODOM.OElement,\n component: OComponentType<T, O>,\n parentContext: RenderContext | null,\n props: Record<string, { name: string, value: any, expr?: string }> = {},\n emits: O = {} as O\n): Promise<OComponent> {\n if (this.mountedComponents.has(hostNode)) return this.mountedComponents.get(hostNode)!;\n\n // Child context prepared early (but heavy tasks deferred)\n const newCtx = new RenderContext(this.app, {} as OComponent, this);\n\n // Bind reactive props before instance creation (so the first render sees values)\n const handledProps = {} as T;\n for (const k of Object.keys(props)) {\n const p = props[k];\n if (p.expr) {\n this.bind({ type: 'prop', node: hostNode, key: k, context: newCtx, template: p.expr });\n }\n handledProps[k as keyof T] = p.value;\n }\n\n // Create instance ASAP (can be a Promise if lazy)\n const instance = await o(component, handledProps, emits);\n newCtx.component = instance;\n newCtx.stack = [];\n this.mountedComponents.set(hostNode, instance);\n\n // Minimal initial host setup in a single batch (so the host appears fast)\n {\n const batch = hostNode.updates();\n for (const attr of Object.keys(props)) {\n if (!props[attr].expr) batch.setAttribute(attr, props[attr].value);\n }\n let hostClasses: string[] = (instance as any)['hostClasses'] ?? [];\n if (hostClasses) hostClasses = typeof hostClasses === 'string' ? [hostClasses] : hostClasses;\n hostClasses.push('o-component-host');\n if (hostNode.tag.toLowerCase() !== 'div') hostClasses.push('c-' + hostNode.tag.toLowerCase());\n batch.addClass(...hostClasses);\n await batch.exec();\n }\n\n // Defer costly non-critical decoration to next paint (improves TTI)\n deferMicro(async () => {\n try {\n await instance.decorateHostElement(hostNode);\n } catch {}\n });\n\n // Register dependants in the child registry (cheap, keep sync)\n {\n const dependants = (instance as any)['use'] as Record<string, OComponentType> ?? {};\n for (const d of Object.keys(dependants)) {\n newCtx.componentsRegistry.register(d, dependants[d]);\n }\n }\n\n // Call lifecycle (cheap hook), but keep CSS injection/decorate for afterPaint\n instance.willMount();\n\n // CSS injection can be expensive (style recalcs). Defer unless not cached.\n if (!(component as any)['cssInstance']) {\n const css = instance.style ? instance.style()?.toString() : (instance as any)['css'] as string;\n if (css) {\n // inject now but refcount bump later; this avoids FOUC while still deferring some work\n (component as any)['cssInstance'] ??= await OUID.injectComponentStyles(css);\n }\n }\n // Refcount bump can be deferred (no visual impact)\n deferMicro(() => {\n const styleInstance = (component as any)['cssInstance'];\n if (styleInstance) {\n const ref = RenderContext.STYLE_REF.get(styleInstance) ?? 0;\n RenderContext.STYLE_REF.set(styleInstance, ref + 1);\n (instance as any)['cssInstance'] = styleInstance;\n }\n });\n\n // Render content: prefer template path for a fast first paint, then hydrate\n // If the component has a custom render(), use it—but avoid blocking on its children.\n let hostChildrenBefore = await hostNode.childNodes(); // will be used for slotting\n if (instance.render) {\n const rendered = await instance.render(newCtx);\n if (rendered) rendered.attachTo(hostNode);\n } else {\n // template string path is generally fastest in a WebView bridge\n await hostNode.setHTML((instance as any)['template'].trim());\n }\n\n // Slot distribution: move nodes first, then hydrate in parallel\n const slots = await hostNode.queryAll('slot');\n if (slots && slots.length) {\n // Move all matching nodes with minimal awaits; hydrate after\n await Promise.all(\n slots\n .filter(s => !s.classes?.includes('hydrated'))\n .map(async slot => {\n const name = slot.attribute('name');\n const toMove = hostChildrenBefore.filter(e => {\n if (!name) return e.type !== 'Element' || !e.hasAttribute('slot');\n return e.type === 'Element' && e.attribute('slot') === name;\n });\n if (!toMove.length) return;\n\n const batch = new ODOM.BatchActions();\n for (const n of toMove) {\n batch.add(() => n.setAttribute('slotted', 'true'));\n batch.add(() => slot.appendChild(n));\n }\n await batch.commit();\n\n // Hydrate moved nodes in parallel after they’re in place\n await Promise.all(toMove.map(n => this.render(n)));\n })\n );\n }\n\n // Finalize links & provide context\n (instance as any)['_hostElement'] = hostNode;\n instance['parent'] = parentContext?.component ?? undefined;\n instance.provide(RenderContext.PROVIDE_TOKEN, this);\n\n // Hydrate children breadth-first with bounded concurrency (keeps UI responsive)\n {\n const children = await hostNode.childNodes();\n const CONCURRENCY = 6; // tweak for your WebView; 4-8 is usually sweet\n let i = 0;\n while (i < children.length) {\n const chunk = children.slice(i, i + CONCURRENCY);\n await Promise.all(chunk.map(c => newCtx.render(c, { skipSlotted: true })));\n i += CONCURRENCY;\n }\n await newCtx.hydradationActions.commit();\n }\n\n // Post-mount lifecycle after first paint\n deferMicro(() => {\n try { instance.onMounted(); } catch {}\n hostNode.hydrate()\n });\n\n // Use your debounced State to coalesce updates; keep a single commit per tick\n instance.state.watch(() => {\n const batch = new ODOM.BatchActions();\n newCtx.updateBindings(batch);\n newCtx.updateDirectives(batch);\n batch.commit();\n });\n return instance\n}\n async unmountComponent(node: ODOM.OElement) {\n const comp = this.mountedComponents.get(node)\n if (comp) {\n // emit will unmount\n const styleInstance = (comp as any)['cssInstance'];\n if (styleInstance) {\n const ref = RenderContext.STYLE_REF.get(styleInstance) ?? 1\n if (ref === 1) {\n await OUID.rejectComponentStyles(styleInstance)\n RenderContext.STYLE_REF.delete(styleInstance)\n } else {\n RenderContext.STYLE_REF.set(styleInstance, ref - 1);\n }\n }\n comp.willUnmount();\n (comp as any)['_hostElement'] = null;\n (comp as any)['cssInstance'] = null;\n }\n const children = await node.queryAll('*') ?? [];\n for (const child of children) {\n await this.unmountComponent(child)\n }\n this.mountedComponents.delete(node)\n }\n}\nexport type Binding =\n | { type: 'model', node: ODOM.OElement, key: string, context: RenderContext }\n | { type: 'interpolation', node: ODOM.OElement, key: string, templateFn: TemplateFn, context: RenderContext }\n | { type: 'attribute', node: ODOM.OElement, key: string, template: string | null, context: RenderContext }\n | { type: 'prop', node: ODOM.OElement, key: string, template: string, context: RenderContext };\n\nexport type Directive = { type: 'if' | 'for', node: ODOM.OElement, expr?: string, placeholder: ODOM.OElement, context: RenderContext, active?: boolean, renderedNode?: ODOM.OElement, list?: string, item?: string, children?: Map<any, { node: ODOM.ONode, ctx: RenderContext }>, key?: string, destroy?: boolean }\nexport async function node<P extends Record<string, any>, O extends Record<string, any>>(component: string, p?: P, children: RenderNode[] = [], emits?: O): Promise<RenderNode> {\n const props = p ?? {} as P\n const el = await OUID.createElement(component, Object.keys(props).reduce((acc, key) => {\n acc[key as keyof P] = props[key as keyof P]\n return acc\n }, {} as P))\n Object.keys(emits ?? {}).forEach(k => {\n el?.addEventListener(k, (e) => {\n const fn = emits![k]\n if (typeof fn === 'function') {\n fn(e)\n }\n });\n })\n return new RenderNode(el!, children)\n\n}\n\nexport function o<P extends Record<string, any>, O extends Record<string, any>>(component: ComponentConstructor<P, O>, props: P, emits?: O): OComponent<P>;\nexport function o<P extends Record<string, any>, O extends Record<string, any>>(component: OComponentType<P, O>, props: P, emits?: O): Promise<OComponent<P>>\nexport function o<P extends Record<string, any>, O extends Record<string, any>>(component: OComponentType<P, O>, props: P, emits?: O): Component<P, O> | Promise<Component<P, O>> {\n if (isLazyLoader(component)) {\n return component().then((c) => createComponent(c.default, props, emits))\n } else {\n return createComponent(component, props, emits);\n }\n}","import { ComponentConstructor, OComponent } from \"./component\";\nimport { RenderContext } from \"./context\";\n\n\n\ntype ProvideFunction<T> = () => T\nexport type Provider<T = any> = {\n value?: T,\n provide?: ProvideFunction<T>\n}\nfunction isProvideFunction<T>(fn: T | ProvideFunction<T>): fn is ProvideFunction<T> {\n return typeof fn === 'function'\n}\nexport interface Plugin<T> {\n install(app: App, options?: T): void\n}\n/** Injection token key */\nexport type InjectionKey = string\n/** Providers type */\nexport type Providers = Map<InjectionKey, Provider>\n/**\n * OUIDesigner App\n */\nexport class App {\n static currentApp: App | null = null\n private providers: Providers = new Map()\n /**\n * Provide a value through a key to all the app globally\n * @param token the registration key\n * @param value the provider value\n */\n provide<T>(token: InjectionKey, value: T | (() => T)): void {\n if (this.providers.has(token)) {\n console.warn(`[OUID] - Provider ${token} already exists`)\n return\n }\n this.providers.set(token, isProvideFunction(value) ? { provide: value } : { value: value })\n }\n /**\n * Get globally a provider through a given key\n * @param token the key to look up globally\n * @returns a provider value\n */\n inject<T>(token: InjectionKey): T | undefined {\n return this.providers.get(token)?.value as T\n }\n /**\n * Register a plugin to be used by this app\n * @param plugin the plugin to register\n * @returns `this` App instance\n */\n use<T>(plugin: Plugin<T>, options?: T) {\n plugin.install(this, options)\n return this\n }\n constructor(private root: ComponentConstructor<any, any>, private options?: {css?: string}) {\n App.currentApp = this\n }\n /**\n * Mount the App in a host element\n * @param selector the host element where the app's root component should be mounted\n */\n async mount(selector: string) {\n if((!(globalThis as any).__OUI_PUR_JS_CONTEXT__)) {\n return\n }\n if(this.options?.css) {\n await OUID.injectComponentStyles(this.options.css)\n }\n await OUID.injectComponentStyles(`\n * {\n ${selector} * {\n visibility: hidden;\n }\n ${selector} *.hydrated {\n visibility: inherit;\n }\n .oui-hidden {\n display: none !important;\n }\n `)\n const host = await OUID.query(selector)\n if (!host) throw new Error(\"No selector found for \" + selector)\n\n const globalContext = new RenderContext(this, {} as OComponent, null)\n globalContext.mountComponent(host, this.root, null).then(() => {\n globalContext.updateBindings()\n globalContext.updateDirectives()\n })\n }\n}\n\n/**\n * Provide a value through a key to all the app globally\n * @param token the registration key\n * @param value the provider value\n */\nexport function provide<T>(token: InjectionKey, value: T | (() => T)): void {\n App.currentApp?.provide(token, value)\n}\n/**\n * Get globally a provider through a given key\n * @param token the key to look up globally\n * @returns a provider value\n */\nexport function inject<T>(token: InjectionKey): T | undefined {\n return App.currentApp?.inject(token) ?? undefined\n}","import RouteParser from 'route-parser'\nimport { App, inject, Plugin } from '../app'\nimport { Component, OComponent, OComponentType } from '../component'\nimport { deferMicro, RenderContext } from '../context'\nimport { ODOM } from 'src/interfaces/bridge'\n/**\n * Component responsible for display routes\n * Usage: `<o-router></o-router>`\n */\n@Component({\n tag: 'o-router',\n template: `\n <div id=\"router-view\"></div>\n `,\n css: `\n #router-view {\n height: 100%;\n }\n .route-hidden { display: none; }\n `\n})\nexport class ORouter extends OComponent {\n private router: Router | undefined = undefined\n willMount(): void {\n }\n onMounted(): void {\n this.router = useRouter()\n this.router?.bind(this).then((handler) => {\n handler?.();\n })\n }\n willUnmount(): void {\n this.router?.unbind();\n }\n}\nexport const ROUTER_INJECTION_TOKEN = \"OROUTER_TOKEN\"\nexport const ACTIVE_ROUTE_TOKEN = \"ACTIVE_ROUTE\"\nexport interface Route {\n path: string\n name: string\n component?: OComponentType<any, any>,\n redirectTo?: string\n}\n\nexport function useRouter(): Router | undefined {\n return inject<Router>(ROUTER_INJECTION_TOKEN)\n}\nexport function createRouter(routes: Routes): Router {\n return new Router(routes)\n}\nexport type Routes = Array<Route>\nfunction generatePath(route: Route, params: Record<string, string>): string {\n let path = new RouteParser(route.path!).reverse(params)\n if (path === false) return \"\"\n return path\n}\ntype MatchedRoute = { route: Route, params: Record<string, any>, query: Record<string, string> }\nexport type Promised<T> = T | Promise<T>\nexport type RouteLocationNamed = { name: string, params?: Record<string, any> }\nexport type RouteGuardReturn = void | boolean | RouteLocationNamed\nexport type RouteGaurdFunction = (to: { url: string, path: string, name: string }, from?: { query: Record<string, string>, params: Record<string, string> }) => Promised<RouteGuardReturn>\nexport interface RouteGuard {\n type: 'before' | 'after',\n fn: RouteGaurdFunction\n}\n\nfunction activate(inst: OComponent | null) {\n if (!inst) return;\n (inst as any).__isActive = true;\n if (typeof inst.onActivated === 'function') {\n inst.onActivated();\n }\n\n}\n\nfunction deactivate(inst: OComponent | null) {\n if (!inst) return;\n (inst as any).__isActive = false;\n if (typeof inst.onDeactivated === 'function') {\n inst.onDeactivated();\n }\n\n}\ntype CompiledRoute = { route: Route; parser: RouteParser };\nexport class Router implements Plugin<any> {\n private windowObject: ODOM.OObject | null = null\n private guards: Array<RouteGuard> = []\n private eventRegistration: string | null = null\n // NEW:\n private compiled: CompiledRoute[];\n private outletEl: ODOM.OElement | null = null;\n\n // keep-alive cache (optional, bounded):\n private keepAlive = new Map<string, { host: ODOM.OElement; ctx: RenderContext; inst: OComponent | null }>();\n private keepAliveLimit = 3;\n private pendingNav: Promise<void> | null = null;\n constructor(public routes: Routes) {\n this.compiled = routes.map(r => ({ route: r, parser: new RouteParser(r.path) }));\n }\n\n install(app: App) {\n app.provide(ROUTER_INJECTION_TOKEN, this)\n OUID.registerComponent('o-router', ORouter)\n }\n resolve(url: string): MatchedRoute | null {\n const [path, queryStr = ''] = url.split('?');\n const query: Record<string, string> = queryStr\n ? queryStr.split('&').reduce((acc, kv) => {\n const [k, v = ''] = kv.split('=');\n if (k) acc[k] = decodeURIComponent(v);\n return acc;\n }, {} as Record<string, string>)\n : {};\n\n for (const c of this.compiled) {\n const params = c.parser.match(path);\n if (params) return { route: c.route, params, query };\n }\n return null;\n }\n push(options: { name?: string, path?: string, params?: Record<string, string>, absolute?: boolean }): void {\n if (!options.path && !options.name) {\n console.warn('[OUID-Router]: no path or name provided to push')\n return\n }\n\n if (options.name) {\n const route = this.routes.find(r => r.name === options.name)\n if (!route) {\n console.warn('[OUID-Router]: No matched route name found')\n return\n }\n const path = generatePath(route, options.params ?? {})\n this.windowObject?.invoke('history.pushState', {}, '', path)\n this.windowObject?.dispatchEvent('popstate', 'PopStateEvent', { state: {} })\n return\n }\n if (options.absolute && options.path) {\n this.windowObject?.invoke('history.pushState', {}, '', options.path)\n }\n if (options.path) {\n // first try to match direct path\n const route = this.routes.find(r => r.path === options.path)\n if (route) {\n const path = generatePath(route, options.params ?? {})\n this.windowObject?.invoke('history.pushState', {}, '', path)\n this.windowObject?.dispatchEvent('popstate', 'PopStateEvent', { state: {} })\n return\n }\n }\n\n }\n pop(): void {\n this.windowObject?.invoke('history.back')\n this.windowObject?.dispatchEvent('popstate', 'PopStateEvent', { state: {} })\n }\n\n private async beforeRouteGoing(to: { url: string, path: string, name: string }, from: { params: Record<string, any>, query: Record<string, any> }): Promise<RouteGuardReturn> {\n for (const guard of this.guards.filter(g => g.type === 'before')) {\n const res = await guard.fn(to, from)\n if (res) {\n return res\n }\n }\n return\n }\n private async afterRouteGoing(to: { url: string, path: string, name: string }, from: { params: Record<string, any>, query: Record<string, any> }): Promise<RouteGuardReturn> {\n for (const guard of this.guards.filter(g => g.type === 'after')) {\n const res = await guard.fn(to, from)\n if (res) {\n return res\n }\n }\n return\n }\n\n async bind(component: ORouter): Promise<(() => void)> {\n this.windowObject = await OUID.acquireObject('window')\n const handler = async () => {\n // ensure window & outlet once\n if (!this.windowObject) this.windowObject = await OUID.acquireObject('window');\n\n const path = (await this.windowObject!.getProperty<string>('location.pathname'))!;\n const matched = this.resolve(path);\n\n if (!matched) {\n console.warn(`[Router] No route found for: ${path}`);\n return;\n }\n const ctx = component.inject<RenderContext>(RenderContext.PROVIDE_TOKEN);\n if (!this.outletEl) this.outletEl = await ctx!.hostElement.query(\"#router-view\");\n const outlet = this.outletEl;\n if (!outlet) return;\n\n // guards BEFORE heavy work\n const guarded = await this.beforeRouteGoing(\n { url: path, path, name: matched.route.name },\n component.inject(ACTIVE_ROUTE_TOKEN) as any\n );\n if (guarded) {\n if (typeof guarded === 'object' && 'name' in guarded) {\n this.push({ name: guarded.name, params: guarded.params });\n }\n return;\n }\n\n // Provide active route data for child resolution\n component.provide(ACTIVE_ROUTE_TOKEN, { params: matched.params, query: matched.query });\n\n // KEEP-ALIVE: if cached, fast-swap without rebuilding\n const cacheKey = matched.route.name;\n const cached = this.keepAlive.get(cacheKey);\n\n // Snapshot current visible host (if any) for fade-out later\n const currentChildren = await outlet.childNodes();\n const currentHost = currentChildren[currentChildren.length - 1] ?? null;\n\n // Prepare staging container (hidden)\n const staging = (await OUID.createElement('div', { class: 'route-staging route-hidden' }))!;\n // Append staging immediately (old stays visible)\n await outlet.appendChild(staging);\n\n let nextHost = staging;\n\n console.log('Changing route', path, matched, cached)\n if (cached) {\n // Fast path: reattach cached host into outlet (before hydration so user sees something)\n nextHost = cached.host;\n // Insert cached host after staging placeholder (then remove staging)\n const ops = outlet.updates();\n ops.add(() => staging.after(nextHost));\n ops.removeChild(staging!);\n if (currentHost) {\n ops.add(() => currentHost.addClass('route-hidden'));\n }\n ops.add(() => nextHost.removeClass('route-hidden'))\n await ops.exec();\n console.log('Cached route', nextHost, staging)\n\n // Optionally refresh bindings (cheap) without full remount\n await Promise.all([\n cached.ctx.updateBindings(),\n cached.ctx.updateDirectives()\n ]);\n\n const currentInst = ctx!.getMountedComponent(currentHost) ?? null\n deactivate(currentInst)\n activate(cached.inst)\n\n } else {\n // Cold path: mount into staging while old is still visible\n const instance = await ctx!.mountComponent<any, any>(staging, matched.route.component!, ctx!);\n\n // After mountComponent returns, staging holds the new page content.\n // Reveal new, hide old in one batch:\n const ops = outlet.updates();\n if (currentHost) ops.add(() => currentHost.addClass('route-hidden'));\n ops.add(() => staging.removeClass('route-hidden'));\n\n await ops.exec();\n activate(instance)\n // Cache it (keepAlive)\n // We store the host node (staging), plus its ctx & instance\n // If you can't fetch instance, you can store staging + a child ctx you created during mount.\n this.keepAlive.set(cacheKey, { host: staging, ctx: ctx!, inst: instance });\n\n // Trim cache\n if (this.keepAlive.size > this.keepAliveLimit) {\n const firstKey = this.keepAlive.keys().next().value;\n if (firstKey) {\n const victim = this.keepAlive.get(firstKey)!;\n // unmount and remove from DOM\n deactivate(victim.inst)\n await ctx!.unmountComponent(victim.host);\n await victim.host.removeAndRelease();\n this.keepAlive.delete(firstKey);\n }\n }\n }\n\n // Remove previous host (if not kept alive) AFTER we show the next\n if (currentHost) {\n const currentInst = ctx!.getMountedComponent(currentHost) ?? null\n // If previous route is different and not cached for keep-alive, remove it\n const isKept = [...this.keepAlive.values()].some(v => v.host.uid === currentHost.uid);\n if (!isKept) {\n deactivate(currentInst)\n await ctx!.unmountComponent(currentHost);\n await currentHost.removeAndRelease();\n }\n }\n\n await this.afterRouteGoing({ url: path, path, name: matched.route.name }, component.inject(ACTIVE_ROUTE_TOKEN) as any);\n await deferMicro(); // let microtasks breathe\n };\n const run = async () => {\n if (this.pendingNav) return this.pendingNav;\n this.pendingNav = (async () => {\n try { await handler(); } finally { this.pendingNav = null; }\n })();\n return this.pendingNav;\n };\n\n const id = await this.windowObject!.addEventListener('popstate', run);\n this.eventRegistration = id;\n return handler\n }\n\n unbind() {\n if (this.eventRegistration) {\n this.windowObject?.dettachEventListener(this.eventRegistration)\n }\n }\n\n beforeEach(fn: RouteGaurdFunction): (() => void) {\n const guard = {\n fn,\n type: 'before'\n } as RouteGuard\n this.guards.push(guard)\n return () => {\n this.guards.splice(this.guards.indexOf(guard))\n }\n }\n afterEach(fn: RouteGaurdFunction): (() => void) {\n const guard = {\n fn,\n type: 'after'\n } as RouteGuard\n this.guards.push(guard)\n return () => {\n this.guards.splice(this.guards.indexOf(guard))\n }\n }\n\n}","import { OComponent, RenderNode, StyleData } from \"../component\";\nimport { RenderContext } from \"../context\";\n\n\nexport class OIcon extends OComponent {\n render(_: RenderContext): RenderNode {\n return RenderNode.of(`<i class=\"o-icon\"><slot></slot></i>`)\n }\n style(): StyleData | null {\n return StyleData.of({\n 'i': `\n display: inline-block;\n width: 1em;\n height: 1em;\n vertical-align: -0.15em;\n overflow: hidden;\n `\n })\n }\n} \n\n","import { componentsRegistry } from './src/registry'\nimport { OComponent } from './src/component'\n\nexport * from './src/component'\nexport * from './src/app'\nexport * from './src/emits'\nexport * from './src/state'\nexport * from './src/context'\nexport * from './src/router/Router'\nexport * from './src/interfaces/bridge'\nexport * from './src/components/Icon'\n\nexport function components(): Record<string, OComponent<any, any>> {\n const arr = componentsRegistry.getAll()\n return arr.reduce((acc, [key, value]) => {\n acc[key] = value\n return acc\n }, {} as Record<string, any>)\n}\n"]}
1
+ {"version":3,"sources":["../src/registry.ts","../src/emits.ts","../src/state.ts","../src/component.ts","../src/interfaces/helpers.ts","../src/interfaces/bridge.ts","../src/context.ts","../src/app.ts","../src/router/Router.ts","../src/components/Icon.ts","../index.ts"],"names":["ComponentsRegistry","components","Map","register","tag","compClass","console","log","key","toLocaleLowerCase","has","set","unregister","delete","get","getAll","Array","from","entries","_ComponentsRegistry","componentsRegistry","Emits","events","emit","event","args","handler","_Emits","Stated","value","_Stated","isStated","ob","isArray","stated","target","state","proxify","__name","seen","proxy","Proxy","t","p","v","o","didChange","Reflect","current","Object","getPrototypeOf","keys","forEach","obj","Error","String","State","data","THRESHOLD_TIME","debounceTime","Date","getTime","listeners","timer","oldValue","wrap","setValue","getValue","dispatchChanges","newValue","listener","path","now","OUID","clearTimeout","setTimeout","watch","push","length","unwatch","splice","indexOf","_State","componentCreationOrder","Component","options","constructor","_a","WithDecoration","template","css","use","hostClasses","hash","RenderNode","node","children","attachTo","host","innerHTML","fullNode","child","appendChild","of","addChild","_RenderNode","StyleData","toString","str","join","_StyleData","createComponent","ctr","props","emits","OComponent","parent","provides","onActivated","onDeactivated","onMounted","willMount","willUnmount","provide","inject","decorateHostElement","hostElement","Promise","resolve","_OComponent","generateUIID","name","Math","floor","random","delay","ms","ODOM","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","BatchActions","actions","exec","commit","add","action","all","map","a","BatchUpdates","operations","ops","promises","op","fn","apply","error","append","addEventListener","callback","policy","setProperty","dettachEventListener","cbId","invoke","dispatchEvent","eventName","eventClass","initDict","addClass","tokens","removeClass","setAttribute","removeAttribute","removeChild","remove","removeAndRelease","release","html","replaceChildNode","replaceWith","after","toInsert","setInnerText","text","setContentText","insertBefore","element","setInputValue","setStyle","OObject","uid","call","extra","invokeAndHold","res","getProperty","updates","batches","ref","ONode","textContent","type","attributes","classes","style","k","OElement","_hydrated","attrs","setHTML","cloneNode","cloned","HTML","getContentText","content","err","childNodes","c","hasAttribute","find","attr","getAttribute","attribute","nextSibling","getAttributeNames","parentNode","inputValue","hydrated","hydrate","query","selector","filter","queryAll","CanvasGradient","addColorStop","offset","color","DOMMatrix","batch","new","arg","newObject","invertSelf","multiplySelf","other","premultiplySelf","rotateAxisAngleSelf","rotX","rotY","rotZ","angle","rotateFromVectorSelf","rotateSelf","scale3dSelf","scale","originX","originY","originZ","scaleSelf","scaleX","scaleY","scaleZ","setMatrixValue","transformList","skewXSelf","sX","skewYSelf","translateSelf","translateX","translateY","translateZ","is2D","isIdentity","flipX","flipY","inverse","multiply","rotate","rotateAxisAngle","rotateFromVector","scale3d","skewX","skewY","sY","toJSON","translate","CanvasPattern","setTransform","matrix","Canvas2DContext","arc","x","y","radius","startAngle","endAngle","counterclockwise","arcTo","x1","y1","x2","y2","bezierCurveTo","cp1x","cp1y","cp2x","cp2y","clearRect","width","height","clip","arg1","arg2","CanvasPath2D","beginPath","closePath","createConicGradient","createLinearGradient","x0","y0","createPattern","image","repetition","createRadialGradient","r0","r1","drawImage","sx","sy","sWidth","sHeight","dx","dy","dWidth","dHeight","ellipse","radiusX","radiusY","rotation","fill","fillRule","fillRect","fillText","maxWidth","getImageData","sw","sh","settings","getLineDash","getTransform","mat","isContextLost","isPointInPath","arg3","arg4","isPointInStroke","lineTo","measureText","moveTo","putImageData","imageData","dirtyX","dirtyY","dirtyWidth","dirtyHeight","quadraticCurveTo","cpx","cpy","rect","reset","resetTransform","restore","roundRect","radii","save","setLineDash","segments","b","d","e","f","stroke","strokeRect","strokeText","transform","fillStyle","setFillStyle","setFilter","font","setFont","fontKerning","setFontKerning","kerning","fontStretch","setFontStretch","fontVariantCaps","setFontVariantCaps","globalAlpha","setGlobalAlpha","globalCompositeOperation","setGlobalCompositeOperation","imageSmoothingEnabled","setImageSmoothingEnabled","imageSmoothingQuality","setImageSmoothingQuality","letterSpacing","setLetterSpacing","lineCap","setLineCap","lineDashOffset","setLineDashOffset","lineJoin","setLineJoin","lineWidth","setLineWidth","miterLimit","setMiterLimit","shadowBlur","setShadowBlur","shadowColor","setShadowColor","shadowOffsetX","setShadowOffsetX","shadowOffsetY","setShadowOffsetY","strokeStyle","setStrokeStyle","textAlign","setTextAlign","textBaseline","setTextBaseline","wordSpacing","setWordSpacing","textRendering","setTextRendering","Image","img","naturalWidth","naturalHeight","src","currentSrc","setSrc","create","ret","addPath","CanvasElement","setWidth","setHeight","getContext","context","nodeId","OUIDBridge","callbacks","DOM_EVENT_LISTENERS","timers","_config","subscribe","id","cb","success","JSON","parse","currentTarget","relatedTarget","config","conf","rej","WebOUID","stringify","registerComponent","unregisterComponent","globalThis","nodes","n","createElement","createComment","injectComponentStyles","rejectComponentStyles","cssNode","getOObject","acquireObject","setInterval","clearInterval","fetch","url","input","encodeAs","alert","message","prompt","_OUIDBridge","toCamelCase","replace","_","char","toUpperCase","toSnakeCase","toLowerCase","normaliseValue","hasQueueMicrotask","queueMicrotask","deferMicro","then","deferMacro","r","isLazyLoader","comp","EXPR_FN","TEMPLATE_CACHE","METHODS_CACHE","WeakMap","getMethodsView","cached","out","cur","prototype","getOwnPropertyNames","startsWith","endsWith","desc","getOwnPropertyDescriptor","undefined","bind","evalInScope","expr","scope","compiled","Function","compileInterpolated","parts","i","open","slice","close","trim","RenderContext","app","component","parentContext","frames","bindings","directives","mountedComponents","updatingDirectives","updatingBindings","_stack","flatStack","hydradationActions","stack","getMountedComponent","binding","directive","evaluateExpression","strict","additionFrames","stateObj","methodsView","_t","prop","some","updateValue","firstPart","split","frame","unshift","assign","pop","shift","resolveTag","ctx","updateBindings","root","updateBinding","s","templateFn","__spreadValues","expandClass","expandStyle","updateDirectives","active","renderedNode","destroy","unmountComponent","clone","render","placeholder","oldChildren","newChildren","keyFn","val","idx","item","arr","list","domOps","YIELD_EVERY","opsSinceYield","newHydrations","last","entry","anchor","next","BURST","chunk","skipSlotted","handleTextNode","handleElementNode","styleString","expandStandardAttributes","substring","controlled","conditionAttr","cc","componentAttributes","mountComponent","txt","includes","ignoredAttrs","hostNode","newCtx","handledProps","instance","dependants","styleInstance","STYLE_REF","hostChildrenBefore","rendered","slots","slot","toMove","PROVIDE_TOKEN","CONCURRENCY","__publicField","_RenderContext","el","reduce","acc","default","isProvideFunction","App","providers","currentApp","token","warn","plugin","install","mount","__OUI_PUR_JS_CONTEXT__","globalContext","_App","ORouter","router","useRouter","unbind","_ORouter","Y","ROUTER_INJECTION_TOKEN","ACTIVE_ROUTE_TOKEN","ROUTE_SLIDE_DURATION","createRouter","routes","Router","generatePath","route","params","RouteParser","reverse","activate","inst","__isActive","deactivate","windowObject","guards","eventRegistration","outletEl","keepAlive","keepAliveLimit","pendingNav","lastDirection","historyIndex","parser","queryStr","kv","decodeURIComponent","match","dispatchPushEvent","fire","newState","navIndex","absolute","beforeRouteGoing","to","guard","g","afterRouteGoing","matched","outlet","guarded","cacheKey","currentChildren","currentHost","currentInst","mode","getNavMode","nextHost","nextInst","staging","class","size","firstKey","victim","runTransitionPush","runTransitionPop","values","run","newIndex","baseOps","animOps","cleanup","previousHost","beforeEach","afterEach","_Router","OIcon","_OIcon"],"mappings":"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","file":"index.cjs","sourcesContent":["import { OComponentType } from \"./component\"\n\nexport class ComponentsRegistry {\n private components: Map<string, OComponentType<any, any>> = new Map()\n register(tag: string, compClass: OComponentType<any, any>) {\n console.log(`[OUID] - Registering component: ${tag}`)\n const key = tag.toLocaleLowerCase()\n if(this.components.has(key)) {\n return\n }\n this.components.set(key, compClass)\n }\n unregister(tag: string) {\n const key = tag.toLocaleLowerCase()\n this.components.delete(key)\n }\n get(tag: string): OComponentType<any, any> | undefined {\n return this.components.get(tag.toLocaleLowerCase())\n }\n has(tag: string): boolean {\n return this.components.has(tag)\n }\n getAll() {\n return Array.from(this.components.entries())\n }\n}\n\nexport const componentsRegistry = new ComponentsRegistry()","export class Emits<O extends Record<string, any>> {\n constructor(private events: O) {\n }\n\n emit(event: keyof O, ...args: any) {\n const handler = this.events[event] as Function\n if(handler) {\n handler(...args)\n }\n }\n}","export type StateWatcher<T> = <K extends keyof T>(key: K, oldValue: T[K], newValue: T[K]) => void\nexport class Stated<T> {\n constructor(public value: T) { }\n}\nexport function isStated<T>(ob: any): ob is Stated<T> {\n return typeof ob === 'object' && !Array.isArray(ob) && 'value' in ob && ob instanceof Stated;\n}\nexport function stated<S extends Record<string, string>, T>(target: T, state: State<S>): Stated<T> {\n const proxify = (target: any, seen: Map<any, any> = new Map()) => {\n if (seen.has(target)) {\n return seen.get(target)\n }\n const proxy = new Proxy(target, {\n set: (t, p, v) => {\n const o = t[p]\n if (typeof v === 'object') {\n t[p] = proxify(v)\n } else {\n t[p] = v\n }\n state.didChange(p as any, o, v)\n return true\n },\n get: (t, p) => {\n const v = Reflect.get(t, p)\n return v\n }\n })\n seen.set(target, proxy)\n for (let current = target; current; current = Object.getPrototypeOf(current)) {\n Object.keys(current).forEach(key => {\n const obj = target[key]\n if (typeof obj === 'object') {\n target[key] = proxify(obj, seen)\n }\n })\n }\n return proxy\n }\n if (typeof target === 'function') {\n throw new Error('Can\\'t create reactive element over a function')\n }\n if (typeof target !== 'object' && typeof target !== 'symbol') {\n return new Proxy(new Stated<T>(target), {\n set: (t, p, v) => {\n if (p !== 'value') throw new Error(`Undefined property ${String(p)} access`)\n const o = t[p]\n t[p] = v\n state.didChange(p as any, o, v)\n return true\n },\n get: (t, p) => {\n if (p !== 'value') throw new Error(`Undefined property ${String(p)} access`)\n return t[p]\n }\n })\n }\n\n return new Stated<T>(proxify(target))\n}\nexport class State<T extends Record<string, any>> {\n private THRESHOLD_TIME = 20\n private debounceTime = new Date().getTime()\n private state: T\n private listeners: StateWatcher<T>[] = []\n private timer: number | null = null\n constructor(data: T) {\n this.state = new Proxy(data, {\n set: (target, key: string, value: any) => {\n const oldValue = (target as any)[key];\n target[key as keyof T] = value\n this.didChange(key as keyof T, oldValue, value)\n return true\n },\n\n get: (target, key) => target[key as keyof T]\n }) as T\n }\n wrap<T>(obj: T): Stated<T> {\n return stated(obj, this)\n }\n has(key: keyof T): boolean {\n return key in this.state\n }\n setValue(key: keyof T, value: any) {\n this.state[key as keyof T] = value\n }\n getValue(key: keyof T): any {\n return this.state[key]\n }\n get value(): T {\n return this.state\n }\n\n private dispatchChanges<K extends keyof T>(key: K, oldValue: T[K], newValue: T[K]): void {\n for (const listener of this.listeners) {\n listener(key, oldValue, newValue)\n }\n }\n\n async didChange(path: keyof T, oldValue: any, newValue: any) {\n const now = Date.now()\n if (now - this.debounceTime <= this.THRESHOLD_TIME) {\n if(this.timer) await OUID.clearTimeout(this.timer);\n }\n\n this.debounceTime = now;\n\n this.timer = await OUID.setTimeout(() => {\n this.dispatchChanges(path, oldValue, newValue);\n }, this.THRESHOLD_TIME);\n }\n\n watch(listener: StateWatcher<T>) {\n this.listeners.push(listener)\n return this.listeners.length - 1\n }\n\n unwatch(listener: StateWatcher<T> | number) {\n if (typeof listener === \"number\") {\n this.listeners.splice(listener, 1)\n return\n }\n this.listeners.splice(this.listeners.indexOf(listener), 1)\n }\n}","import { RenderContext } from \"./context\";\nimport { Emits } from \"./emits\";\nimport { ODOM } from \"./interfaces/bridge\";\nimport { componentsRegistry } from \"./registry\";\nimport { State } from \"./state\"\nexport type ComponentProps<K extends Record<string, any>> = K\n\nlet componentCreationOrder = 0\n/**\n * Component decorator, it allow an auto registration of components\n * @param options \n * @returns \n */\nexport function Component(options: { template: string, tag: string, use?: Record<string, OComponentType>, css?: string, hostClasses?: string | string[] }) {\n return function <T extends { new(...args: any[]): {} }>(constructor: T) {\n const WithDecoration = class extends constructor {\n template = options.template;\n css = options.css;\n tag = options.tag\n use = options.use\n hostClasses = options.hostClasses\n hash = 'component-' + componentCreationOrder + '-' + options.tag\n };\n\n const compClass = WithDecoration as unknown as ComponentConstructor<any, any>;\n (compClass as any)['tag'] = options.tag\n // componentsRegistry.register(options.tag, compClass);\n return WithDecoration;\n\n };\n}\ntype ExposedKeyAsPromise<T extends Record<string, any>> = {\n [K in keyof T]: Promise<T[K]>;\n};\n\nexport class RenderNode {\n constructor(private node: ODOM.OElement | string, private children: RenderNode[] = []) { }\n\n attachTo(host: ODOM.OElement): void {\n if (typeof this.node === 'string') {\n // html string\n host.innerHTML = this.node\n return\n }\n const fullNode = this.node;\n for (const child of this.children) {\n child.attachTo(fullNode)\n }\n host.appendChild(fullNode)\n }\n static of(node: ODOM.OElement | string, children: RenderNode[] = []): RenderNode {\n return new RenderNode(node, children)\n }\n addChild(node: RenderNode): RenderNode {\n this.children.push(node)\n return this\n }\n\n}\nexport class StyleData {\n constructor(private data: Record<string, StyleData | string>, private css: string) { }\n toString(): string {\n let str = this.css ? this.css + '\\n' : ''\n for (const key in this.data) {\n const value = this.data[key]\n if (typeof value === 'string') {\n str += `${key} { ${value} }\\n`\n } else if (value instanceof StyleData) {\n str += `${key} {\\n${value.toString()}}\\n`\n }\n }\n return str\n }\n static of(data: Record<string, StyleData | string>, ...css: string[]): StyleData {\n return new StyleData(data, css.join('\\n'))\n }\n}\nexport interface Component<P extends Record<string, any>, O extends Record<string, any>> {\n // template: string\n state: State<any>\n readonly emits: Emits<O>\n readonly props: ComponentProps<P>\n onActivated(): void\n onDeactivated(): void\n onMounted(): void\n willMount(): void\n willUnmount(): void\n provide<T>(key: string, value: T): void\n inject<T>(key: string): T | undefined\n render?(ctx: RenderContext): RenderNode | null | Promise<RenderNode | null>\n style?(): StyleData | null,\n decorateHostElement(hostElement: ODOM.OElement): Promise<void>\n}\n\nexport interface ComponentConstructor<P extends Record<string, any>, O extends Record<string, any>> {\n new(props?: P, emits?: O): Component<P, O>\n}\nexport function createComponent<P extends Record<string, any>, O extends Record<string, any>>(ctr: ComponentConstructor<P, O>, props?: P, emits?: O): Component<P, O> {\n // const handled = OUID.invoke()\n return new ctr(props, emits)\n}\n\nexport class OComponent<P extends Record<string, any> = {}, O extends Record<string, any> = {}> implements Component<P, O> {\n // template: string = \"\"\n state: State<any>\n private parent?: OComponent<any, any> = undefined\n readonly emits: Emits<O>\n readonly props: ComponentProps<P>\n private provides: Map<string, any> = new Map();\n\n constructor(props: P = {} as P, emits: O = {} as O) {\n this.state = new State(this)\n this.props = props\n this.emits = new Emits(emits)\n }\n onActivated(): void {}\n onDeactivated(): void {}\n onMounted(): void {\n }\n willMount(): void {\n\n }\n willUnmount(): void {\n\n }\n /** Provide a value for descendants */\n provide<T>(key: string, value: T) {\n this.provides.set(key, value);\n }\n\n /** Inject a value from nearest ancestor */\n inject<T>(key: string): T | undefined {\n let current: OComponent<any, any> | undefined = this;\n while (current) {\n if (current.provides.has(key)) {\n return current.provides.get(key);\n }\n current = current.parent;\n }\n return undefined;\n }\n render?(ctx: RenderContext): RenderNode | null|Promise<RenderNode | null>\n style?(): StyleData | null\n decorateHostElement(hostElement: ODOM.OElement): Promise<void> {\n return Promise.resolve()\n }\n}\nexport type LazyLoader<P extends Record<string, any>, O extends Record<string, any>> = () => Promise<{ default: ComponentConstructor<P, O> }>;\nexport type OComponentType<P extends Record<string, any> = {}, O extends Record<string, any> = {}> =\n | ComponentConstructor<P, O>\n | LazyLoader<P, O>","export function generateUIID(name: string): string {\n const now = Date.now()\n const salt = 1000 + Math.floor((Math.random() * 9000)) + name.length\n return `${salt.toString(16)}-${now.toString(16)}`\n}\n\nexport function delay(ms: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, ms));\n}","import { componentsRegistry } from \"../registry\"\nimport { OComponentType } from \"../component\"\nimport { generateUIID } from \"./helpers\"\n\ntype QueryFilter = \"children\" | \"classes\" | \"style\" | \"attributes\"\nexport namespace ODOM {\n export class BatchActions {\n private actions: (() => any)[] = []\n constructor() { }\n async exec(): Promise<any> {\n await this.commit()\n }\n add(action: () => void) {\n this.actions.push(action)\n return this\n }\n async commit(): Promise<void> {\n const actions = this.actions\n this.actions = []\n await Promise.all(actions.map(async a => await a()))\n }\n }\n export class BatchUpdates {\n private operations: ({ fn: keyof OElement, args: any[] } | (() => void))[] = []\n constructor(private node: OObject) { }\n async exec(): Promise<any> {\n const ops = this.operations\n this.operations = []\n const promises = ops.map(op => {\n if (typeof op === 'object') {\n return (this.node[op.fn as keyof OObject] as Function).apply(this.node, op.args)\n } else {\n return Promise.resolve(op())\n }\n })\n try {\n await Promise.all(promises)\n } catch (error) {\n console.error('Error while batch updates')\n }\n }\n private append(fn: keyof OElement, ...args: any[]): BatchUpdates {\n this.operations.push({ fn, args })\n return this\n }\n add(fn: () => void) {\n this.operations.push(fn)\n return this\n }\n addEventListener(event: string, callback: (...args: any[]) => void, options?: EventListenerOptions, policy?: EventControlPolicy) {\n return this.append('addEventListener', event, callback, { options, policy })\n }\n setProperty(key: string, value: string) {\n return this.append('setAttribute', key, value)\n }\n dettachEventListener(cbId: string) {\n return this.append('dettachEventListener', cbId)\n }\n invoke(fn: string, ...args: any[]) {\n return this.append('invoke', fn, ...args)\n }\n dispatchEvent(eventName: string, eventClass?: string, initDict?: any) {\n return this.append('dispatchEvent', eventName, eventClass, initDict)\n }\n addClass(...tokens: string[]) {\n return this.append('addClass', ...tokens)\n }\n removeClass(...tokens: string[]) {\n return this.append('removeClass', ...tokens)\n }\n setAttribute(name: string, value: string) {\n return this.append('setAttribute', name, value)\n }\n removeAttribute(name: string) {\n return this.append('removeAttribute', name)\n }\n appendChild(child: ONode) {\n return this.append('appendChild', child)\n }\n removeChild(child: ONode) {\n return this.append('removeChild', child)\n }\n remove() {\n return this.append('remove')\n }\n removeAndRelease() {\n return this.append('removeAndRelease')\n }\n release() {\n return this.append('release')\n }\n innerHTML(html: string) {\n return this.append('setHTML', html)\n }\n replaceChildNode(node: ONode, child: ONode) {\n return this.append('replaceChildNode', node, child)\n }\n replaceWith(node: ONode) {\n return this.append('replaceWith', node)\n }\n after(toInsert: ONode) {\n return this.append('after', toInsert)\n }\n setInnerText(text: string) {\n return this.append('setInnerText', text)\n }\n setContentText(text: string) {\n return this.append('setContentText', text)\n }\n insertBefore(element: ONode, node: ONode) {\n return this.append('insertBefore', element, node)\n }\n setInputValue(value: string) {\n return this.append('setInputValue', value)\n }\n setStyle(key: string, value: any) {\n return this.append('setStyle', key, value)\n }\n\n }\n export type NodeType = 'Element' | 'Text' | 'Comment' | 'Attribute' | 'Unknown'\n type Attributes = { name: string, value: string }[]\n export class OObject {\n constructor(public uid: string, public tag: string) {\n }\n async release(): Promise<void> {\n await OUID.call('releaseNode', this.uid)\n }\n async addEventListener(event: string, callback: (...args: any[]) => void, extra?: {options?: EventListenerOptions, policy?: EventControlPolicy}): Promise<string> {\n return OUID.addEventListener(this, event, callback, { options: extra?.options, policy: extra?.policy })\n }\n async dettachEventListener(cbId: string) {\n await OUID.dettachEventListener(cbId)\n }\n async invoke<T>(fn: string, ...args: any[]) {\n return await OUID.call<T>('invokeObjectMethod', this.uid, fn, ...args)\n }\n async invokeAndHold(fn: string, ...args: any[]) {\n const res = await OUID.call<OObject>('invokeObjectMethodAndHold', this.uid, fn, ...args)\n if (!res) return res\n return new OObject(res.uid, res.tag)\n }\n async getProperty<T>(name: string): Promise<T | null> {\n return await OUID.call<T>('getObjectProperty', this.uid, name)\n }\n async setProperty<T>(name: string, value: T) {\n await OUID.call('setObjectProperty', this.uid, name, value)\n }\n async dispatchEvent(eventName: string, eventClass?: string, initDict?: any): Promise<void> {\n await OUID.call('dispatchEvent', this.uid, eventName, eventClass, initDict)\n }\n updates(): BatchUpdates {\n return new BatchUpdates(this)\n }\n batches(): BatchUpdates {\n return new BatchUpdates(this)\n }\n get ref() {\n return { '__ref__': this.uid }\n }\n }\n export abstract class ONode extends OObject {\n textContent?: string | null\n type: NodeType = 'Unknown'\n attributes: Attributes\n children?: ONode[]\n classes?: string[]\n style?: string\n\n constructor(node: ONode) {\n super(node.uid, node.tag)\n for (const k in node) {\n (this as any)[k] = node[k as keyof ONode]\n }\n this.attributes ??= []\n this.classes ??= []\n this.style ??= \"\"\n }\n }\n export class OElement extends ONode {\n [x: string]: any\n private _hydrated: boolean = false\n constructor(node: ONode) {\n super(node)\n // this._hydrated = this.classes?.includes('hydrated') ?? false\n }\n async addClass(...tokens: string[]): Promise<void> {\n await OUID.call('addClass', this.uid, ...tokens)\n }\n async removeClass(...tokens: string[]): Promise<void> {\n await OUID.call('removeClass', this.uid, ...tokens)\n }\n async setAttribute(name: string, value: string): Promise<void> {\n const attrs = await OUID.call<Attributes>('setAttribute', this.uid, name, value)\n if (attrs) {\n // update local attributes\n this.attributes = attrs\n }\n }\n async removeAttribute(name: string): Promise<void> {\n const attrs = await OUID.call<Attributes>('removeAttribute', this.uid, name)\n if (attrs) {\n this.attributes = attrs\n }\n }\n async appendChild(child: ONode): Promise<void> {\n await OUID.call('appendChild', this.uid, child.uid)\n }\n set innerHTML(value: string) {\n this.setHTML(value)\n }\n async cloneNode(state: boolean): Promise<OElement | null> {\n const cloned = await OUID.call<ODOM.ONode>('cloneNode', this.uid, state)\n return cloned ? new OElement(cloned!) : null\n }\n async remove(): Promise<void> {\n await OUID.call('removeNode', this.uid)\n }\n async removeAndRelease(): Promise<void> {\n await this.remove();\n await this.release();\n }\n async removeChild(child: ONode): Promise<void> {\n await OUID.call('removeChild', this.uid, child.uid)\n }\n async replaceChildNode(node: ONode, child: ONode): Promise<void> {\n await OUID.call('replaceChildNode', this.uid, node.uid, child.uid)\n }\n async replaceWith(node: ONode): Promise<void> {\n await OUID.call('replaceWith', this.uid, node.uid)\n }\n async after(toInsert: ONode): Promise<void> {\n await OUID.call('insertAfter', this.uid, toInsert.uid)\n }\n async setHTML(html: string): Promise<void> {\n await OUID.call('setInnerHTML', this.uid, html)\n }\n async HTML(): Promise<string> {\n return await OUID.call<string>('getInnerHTML', this.uid) ?? ''\n }\n async setInnerText(text: string): Promise<void> {\n await OUID.call('setInnerText', this.uid, text)\n }\n async setContentText(text: string): Promise<void> {\n await OUID.call('setContentText', this.uid, text)\n }\n async getContentText(): Promise<string> {\n return await OUID.call('getContentText', this.uid) ?? ''\n }\n async content(): Promise<string> {\n try {\n return await OUID.call<string>('getInnerText', this.uid) ?? ''\n } catch (err) {\n console.error(err)\n return ''\n }\n }\n async childNodes(): Promise<OElement[]> {\n return (await OUID.call<ODOM.ONode[]>('childNodes', this.uid))?.map(c => new OElement(c)) ?? []\n }\n hasAttribute(name: string): boolean {\n return !!this.attributes!.find(attr => attr.name === name);\n }\n async getAttribute(name: string): Promise<string> {\n return await OUID.call<string>('getAttribte', this.uid, name) ?? ''\n }\n attribute(name: string): string | null {\n return this.attributes.find(attr => attr.name === name)?.value ?? null\n }\n async nextSibling(): Promise<OElement | null> {\n const res = await OUID.call<ODOM.ONode>('nextSibling', this.uid)\n return res ? new OElement(res) : null;\n }\n async getAttributeNames(): Promise<string[]> {\n return await OUID.call<string[]>('getAttributeNames', this.uid) ?? []\n }\n async parentNode(): Promise<OElement | null> {\n const node = await OUID.call<ONode>('parentNode', this.uid)\n return node ? new OElement(node) : null\n }\n async insertBefore(element: ONode, node: ONode): Promise<void> {\n await OUID.call('insertBefore', this.uid, node.uid, element.uid)\n }\n async setInputValue(value: string): Promise<void> {\n await OUID.call('setInputValue', this.uid, value)\n }\n async inputValue(): Promise<string> {\n return await OUID.call('inputValue', this.uid) ?? ''\n }\n get hydrated() {\n return this._hydrated\n }\n hydrate() {\n this._hydrated = true\n this.addClass('hydrated')\n }\n\n\n async query(selector: string, filter?: QueryFilter[]) {\n return await OUID.query(selector, filter, this.uid)\n }\n async queryAll(selector: string, filter?: QueryFilter[]) {\n return await OUID.queryAll(selector, filter, this.uid)\n }\n\n async setStyle(key: string, value: any) {\n await OUID.call('setStyle', this.uid, key, value)\n }\n\n }\n export class CanvasGradient extends OObject {\n constructor(obj: OObject) {\n super(obj.uid, obj.tag)\n }\n addColorStop(offset: number, color: string) {\n this.invoke('addColorStop', offset, color)\n return this\n }\n }\n export class DOMMatrix extends OObject {\n batch = new BatchUpdates(this)\n constructor(obj: OObject) {\n super(obj.uid, obj.tag)\n }\n static new(): Promise<DOMMatrix>\n static new(initString: string): Promise<DOMMatrix>\n static new(initArray: number[]): Promise<DOMMatrix>\n static async new(arg?: number[] | string): Promise<DOMMatrix | null> {\n const res = typeof arg !== 'undefined' ? await OUID.newObject('DOMMatrix', arg) : await OUID.newObject('DOMMatrix')\n if (!res) return null\n return new DOMMatrix(res)\n }\n\n invertSelf() {\n this.batch.invoke('invertSelf')\n return this\n }\n multiplySelf(): DOMMatrix\n multiplySelf(other?: DOMMatrix): DOMMatrix {\n this.batch.invoke('multiplySelf', ...(other ? [other.ref] : []))\n return this\n }\n premultiplySelf(): DOMMatrix\n premultiplySelf(other?: DOMMatrix): DOMMatrix {\n this.batch.invoke('premultiplySelf', ...(other ? [other.ref] : []))\n return this\n }\n\n\n rotateAxisAngleSelf(rotX?: number, rotY?: number, rotZ?: number, angle?: number) {\n const args = []\n if (rotX) {\n args.push(rotX)\n }\n if (rotY) {\n args.push(rotY)\n }\n if (rotZ) {\n args.push(rotZ)\n }\n if (angle) {\n args.push(angle)\n }\n this.batch.invoke('rotateAxisAngleSelf', ...args)\n return this\n }\n\n rotateFromVectorSelf(rotX?: number, rotY?: number) {\n const args = []\n if (rotX) {\n args.push(rotX)\n }\n if (rotY) {\n args.push(rotY)\n }\n this.batch.invoke('rotateFromVectorSelf', ...args)\n return this\n }\n rotateSelf(rotX?: number, rotY?: number, rotZ?: number) {\n const args = []\n if (rotX) {\n args.push(rotX)\n }\n if (rotY) {\n args.push(rotY)\n }\n if (rotZ) {\n args.push(rotZ)\n }\n this.batch.invoke('rotateFromVectorSelf', ...args)\n return this\n }\n scale3dSelf(scale?: number, originX?: number, originY?: number, originZ?: number) {\n const args = []\n if (scale) {\n args.push(scale)\n }\n if (originX) {\n args.push(originX)\n }\n if (originY) {\n args.push(originY)\n }\n if (originZ) {\n args.push(originZ)\n }\n this.batch.invoke('scale3dSelf', ...args)\n return this\n }\n scaleSelf(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number) {\n const args = []\n if (scaleX) {\n args.push(scaleX)\n }\n if (scaleY) {\n args.push(scaleY)\n }\n if (scaleZ) {\n args.push(scaleZ)\n }\n if (originX) {\n args.push(originX)\n }\n if (originY) {\n args.push(originY)\n }\n if (originZ) {\n args.push(originZ)\n }\n this.batch.invoke('scaleSelf', ...args)\n return this\n }\n setMatrixValue(transformList: string) {\n this.invoke<void>('setMatrixValue', transformList)\n return this\n }\n skewXSelf(sX: number) {\n this.batch.invoke('skewXSelf', sX)\n return this\n }\n skewYSelf(sX: number) {\n this.batch.invoke('skewYSelf', sX)\n return this\n }\n\n translateSelf(translateX: number, translateY: number, translateZ?: number) {\n this.batch.invoke('translateSelf', translateX, translateY, ...(translateZ ? [translateZ] : []))\n return this\n }\n async commit() {\n await this.batch.exec()\n }\n async is2D(): Promise<boolean> {\n return (await this.invoke<boolean>('is2D')) ?? false\n }\n async isIdentity(): Promise<boolean> {\n return (await this.invoke<boolean>('isIdentity')) ?? false\n }\n\n async flipX(): Promise<DOMMatrix | null> {\n const res = await this.invokeAndHold('flipX')\n if (!res) {\n return null\n }\n return new DOMMatrix(res)\n }\n async flipY(): Promise<DOMMatrix | null> {\n const res = await this.invokeAndHold('flipY')\n if (!res) {\n return null\n }\n return new DOMMatrix(res)\n }\n async inverse(): Promise<DOMMatrix | null> {\n const res = await this.invokeAndHold('inverse')\n if (!res) {\n return null\n }\n return new DOMMatrix(res)\n }\n async multiply(other?: DOMMatrix) {\n const res = await this.invokeAndHold('multiply', ...(other ? [other.ref] : []))\n if (!res) {\n return null\n }\n return new DOMMatrix(res)\n }\n async rotate(rotX?: number, rotY?: number, rotZ?: number) {\n const args = []\n if (rotX) {\n args.push(rotX)\n }\n if (rotY) {\n args.push(rotY)\n }\n if (rotZ) {\n args.push(rotZ)\n }\n const res = await this.invokeAndHold('rotate', ...args)\n if (!res) {\n return null\n }\n return new DOMMatrix(res)\n }\n async rotateAxisAngle(rotX?: number, rotY?: number, rotZ?: number, angle?: number) {\n const args = []\n if (rotX) {\n args.push(rotX)\n }\n if (rotY) {\n args.push(rotY)\n }\n if (rotZ) {\n args.push(rotZ)\n }\n if (angle) {\n args.push(angle)\n }\n const res = await this.invokeAndHold('rotateAxisAngle', ...args)\n if (!res) {\n return null\n }\n return new DOMMatrix(res)\n }\n async rotateFromVector(rotX?: number, rotY?: number) {\n const args = []\n if (rotX) {\n args.push(rotX)\n }\n if (rotY) {\n args.push(rotY)\n }\n const res = await this.invokeAndHold('rotateFromVector', ...args)\n if (!res) {\n return null\n }\n return new DOMMatrix(res)\n }\n async scale(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number) {\n const args = []\n if (scaleX) {\n args.push(scaleX)\n }\n if (scaleY) {\n args.push(scaleY)\n }\n if (scaleZ) {\n args.push(scaleZ)\n }\n if (originX) {\n args.push(originX)\n }\n if (originY) {\n args.push(originY)\n }\n if (originZ) {\n args.push(originZ)\n }\n const res = await this.invokeAndHold('scale', ...args)\n if (!res) {\n return null\n }\n return new DOMMatrix(res)\n }\n async scale3d(scale?: number, originX?: number, originY?: number, originZ?: number) {\n const args = []\n if (scale) {\n args.push(scale)\n }\n if (originX) {\n args.push(originX)\n }\n if (originY) {\n args.push(originY)\n }\n if (originZ) {\n args.push(originZ)\n }\n const res = await this.invokeAndHold('scale', ...args)\n if (!res) {\n return null\n }\n return new DOMMatrix(res)\n }\n async skewX(sX?: number) {\n const args = []\n if (sX) {\n args.push(sX)\n }\n const res = await this.invokeAndHold('skewX', ...args)\n if (!res) {\n return null\n }\n return new DOMMatrix(res)\n }\n async skewY(sY?: number) {\n const args = []\n if (sY) {\n args.push(sY)\n }\n const res = await this.invokeAndHold('skewY', ...args)\n if (!res) {\n return null\n }\n return new DOMMatrix(res)\n }\n toJSON(): Promise<any> {\n return this.invoke<any>('toJSON')\n }\n async toString(): Promise<string | null> {\n return this.invoke<string>('toString')\n }\n async translate(translateX?: number, translateY?: number, translateZ?: number) {\n const args = []\n if (translateX) {\n args.push(translateX)\n }\n if (translateY) {\n args.push(translateY)\n }\n if (translateZ) {\n args.push(translateZ)\n }\n const res = await this.invokeAndHold('translate', ...args)\n if (!res) {\n return null\n }\n return new DOMMatrix(res)\n }\n\n }\n export class CanvasPattern extends OObject {\n constructor(obj: OObject) {\n super(obj.uid, obj.tag)\n }\n setTransform(matrix: DOMMatrix) {\n this.invoke('setTransform', matrix.ref)\n }\n }\n export class Canvas2DContext extends OObject {\n private batch = new BatchUpdates(this);\n constructor(uid: string) {\n super(uid, 'unknown')\n }\n arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise: boolean = false) {\n this.batch.invoke('arc', x, y, radius, startAngle, endAngle, counterclockwise)\n return this\n }\n arcTo(x1: number, y1: number, x2: number, y2: number, radius: number) {\n this.batch.invoke('arcTo', x1, y1, x2, y2, radius)\n return this\n }\n bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number) {\n this.batch.invoke('bezierCurveTo', cp1x, cp1y, cp2x, cp2y, x, y)\n return this\n }\n clearRect(x: number, y: number, width: number, height: number) {\n this.batch.invoke('clearRect', x, y, width, height)\n return this\n }\n clip(path?: CanvasPath2D): Canvas2DContext\n clip(fillRule?: 'nonzero' | 'evenodd'): Canvas2DContext\n clip(path: CanvasPath2D, fillRule?: 'nonzero' | 'evenodd'): Canvas2DContext\n clip(arg1?: CanvasPath2D | 'nonzero' | 'evenodd', arg2?: 'nonzero' | 'evenodd'): Canvas2DContext {\n const args = []\n if (typeof arg1 === 'string') {\n args.push(arg1)\n } else if (arg1 instanceof CanvasPath2D) {\n arg1.commit()\n args.push(arg1.ref)\n }\n if (typeof arg2 === 'string') {\n args.push(arg2)\n }\n this.batch.invoke('clip', ...args)\n return this\n }\n beginPath() {\n this.batch.invoke('beginPath')\n return this\n }\n closePath() {\n this.batch.invoke('closePath')\n return this\n }\n async createConicGradient(startAngle: number, x: number, y: number): Promise<CanvasGradient | null> {\n const res = await this.invokeAndHold('createConicGradient', startAngle, x, y)\n if (!res) {\n return null;\n }\n return new CanvasGradient(res)\n }\n async createLinearGradient(x0: number, y0: number, x1: number, y1: number): Promise<CanvasGradient | null> {\n const res = await this.invokeAndHold('createLinearGradient', x0, y0, x1, y1)\n if (!res) {\n return null;\n }\n return new CanvasGradient(res)\n }\n async createPattern(image: OObject, repetition: 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat' | '' = '') {\n const res = await this.invokeAndHold('createPattern', image.ref, repetition)\n if (!res) {\n return null;\n }\n return new CanvasPattern(res)\n }\n async createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): Promise<CanvasGradient | null> {\n const res = await this.invokeAndHold('createRadialGradient', x0, y0, r0, x1, y1, r1)\n if (!res) {\n return null;\n }\n return new CanvasGradient(res)\n }\n drawImage(image: Image | OObject, dx: number, dy: number): Canvas2DContext\n drawImage(image: Image | OObject, dx: number, dy: number, dWidth: number, dHeight: number): Canvas2DContext\n drawImage(image: Image | OObject, sx: number, sy: number, sWidth: number, sHeight: number, dx: number, dy: number, dWidth: number, dHeight: number): Canvas2DContext\n drawImage(image: Image | OObject, sx: number, sy: number, sWidth?: number, sHeight?: number, dx?: number, dy?: number, dWidth?: number, dHeight?: number) {\n const args: any[] = [image.ref]\n if (typeof dx === 'undefined') {\n args.push(sx, sy)\n if (sWidth) args.push(sWidth)\n if (sHeight) args.push(sHeight)\n this.batch.invoke('drawImage', ...args)\n return this\n }\n args.push(sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)\n this.batch.invoke('drawImage', ...args)\n return this\n }\n ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise: boolean = false) {\n this.batch.invoke('ellipse', x, y, radiusX, radiusY, rotation, startAngle, endAngle, counterclockwise)\n return this\n }\n fill(path?: CanvasPath2D | 'nonzero' | 'evenodd', fillRule?: 'nonzero' | 'evenodd') {\n const args = []\n if (path) {\n args.push(typeof path === 'string' ? path : (path.commit(), path.ref))\n }\n if (fillRule) {\n args.push(fillRule)\n }\n this.batch.invoke('fill', ...args)\n return this\n }\n fillRect(x: number, y: number, width: number, height: number) {\n this.batch.invoke('fillRect', x, y, width, height)\n return this\n }\n fillText(text: string, x: number, y: number, maxWidth?: number) {\n this.batch.invoke('fillText', text, x, y, ...(maxWidth ? [maxWidth] : []))\n return this\n }\n\n getImageData(sx: number, sy: number, sw: number, sh: number, settings?: { colorSpace: 'srgb' | 'display-p3', pixelFormat: 'rgba-unorm8' | 'rgba-float16' }) {\n return this.invokeAndHold('getImageData', sx, sy, sw, sh, ...(settings ? [settings] : []))\n }\n getLineDash() {\n return this.invoke<number[]>('getLineDash')\n }\n async getTransform() {\n const mat = await this.invokeAndHold('getTransform')\n if (!mat) {\n return null\n }\n return new DOMMatrix(mat)\n }\n async isContextLost() {\n return await this.invoke<boolean>('isContextLost')\n }\n isPointInPath(x: number, y: number, fillRule?: 'nonzero' | 'evenodd'): Promise<boolean>;\n isPointInPath(path: CanvasPath2D, x: number, y: number, fillRule?: 'nonzero' | 'evenodd'): Promise<boolean>;\n async isPointInPath(\n arg1: number | CanvasPath2D,\n arg2: number,\n arg3?: number | ('nonzero' | 'evenodd'),\n arg4?: ('nonzero' | 'evenodd'),\n ): Promise<boolean> {\n\n const args = []\n if (typeof arg1 === 'number') {\n args.push(arg1, arg2)\n if (arg3) {\n args.push(arg3)\n }\n } else {\n arg1.commit()\n args.push(arg1.ref, arg2, arg3, arg4 ?? 'nonzero')\n }\n return (await this.invoke<boolean>('isPointInPath', ...args)) ?? false\n\n }\n isPointInStroke(x: number, y: number): Promise<boolean>\n isPointInStroke(path: CanvasPath2D, x: number, y: number): Promise<boolean>\n async isPointInStroke(arg1: CanvasPath2D | number, arg2: number, arg3?: number): Promise<boolean> {\n const args = []\n if (typeof arg1 === 'number') {\n args.push(arg1, arg2)\n } else {\n arg1.commit()\n args.push(arg1.ref, arg2, arg3)\n }\n return (await this.invoke('isPointInStroke', ...args)) ?? false\n }\n\n\n lineTo(x: number, y: number): Canvas2DContext {\n this.batch.invoke('lineTo', x, y)\n return this\n }\n async measureText(text: number): Promise<number> {\n return (await this.invoke('measureText', text)) ?? 0\n }\n moveTo(x: number, y: number): Canvas2DContext {\n this.batch.invoke('moveTo', x, y)\n return this\n }\n putImageData(imageData: OObject, dx: number, dy: number): Canvas2DContext\n putImageData(imageData: OObject, dx: number, dy: number, dirtyX: number, dirtyY: number, dirtyWidth: number, dirtyHeight: number): Canvas2DContext\n putImageData(imageData: OObject, dx: number, dy: number, dirtyX?: number, dirtyY?: number, dirtyWidth?: number, dirtyHeight?: number) {\n const args = [imageData.ref, dx, dy]\n if (dirtyX) args.push(dirtyX)\n if (dirtyY) args.push(dirtyY)\n if (dirtyWidth) args.push(dirtyWidth)\n if (dirtyHeight) args.push(dirtyHeight)\n this.batch.invoke('putImageData', ...args)\n return this\n }\n quadraticCurveTo(cpx: number, cpy: number, x: number, y: number) {\n this.batch.invoke('quadraticCurveTo', cpx, cpy, x, y)\n return this\n }\n rect(x: number, y: number, width: number, height: number) {\n this.batch.invoke('rect', x, y, width, height)\n return this\n }\n reset() {\n this.invoke('reset')\n }\n resetTransform() {\n this.invoke('resetTransform')\n }\n restore() {\n return this.invoke<void>('restore')\n }\n rotate(angle: number): Canvas2DContext {\n this.batch.invoke('rotate', angle)\n return this\n }\n roundRect(x: number, y: number, width: number, height: number, radii: number | number[]) {\n this.batch.invoke('roundRect', x, y, width, height, radii)\n return this\n }\n save() {\n return this.invoke<void>('save')\n }\n scale(x: number, y: number): Canvas2DContext {\n this.batch.invoke('scale', x, y)\n return this\n }\n setLineDash(segments: number[]) {\n return this.invoke<void>('setLineDash', segments)\n }\n setTransform(matrix: DOMMatrix): Promise<void>\n setTransform(a: number, b: number, c: number, d: number, e: number, f: number): Promise<void>\n async setTransform(a: number | DOMMatrix, b?: number, c?: number, d?: number, e?: number, f?: number): Promise<void> {\n if (typeof a === 'number') {\n await this.invoke('setTransform', a, b, c, d, e, f)\n } else {\n await this.invoke('setTransform', a.ref)\n }\n }\n stroke(path?: CanvasPath2D): Canvas2DContext {\n this.batch.invoke('stroke', ...(path ? [(path.commit(), path.ref)] : []))\n return this\n }\n strokeRect(x: number, y: number, width: number, height: number): Canvas2DContext {\n this.batch.invoke('strokeRect', x, y, width, height)\n return this\n }\n strokeText(text: string, x: number, y: number, maxWidth?: number): Canvas2DContext {\n this.batch.invoke('strokeText', text, x, y, ...(maxWidth ? [maxWidth] : []))\n return this\n }\n transform(a: number, b: number, c: number, d: number, e: number, f: number): Canvas2DContext {\n this.batch.invoke('transform', a, b, c, d, e, f)\n return this\n }\n translate(x: number, y: number): Canvas2DContext {\n this.batch.invoke('translate', x, y)\n return this\n }\n set fillStyle(value: string | CanvasGradient | CanvasPattern) {\n this.setFillStyle(value)\n }\n async setFillStyle(style: string | CanvasGradient | CanvasPattern): Promise<Canvas2DContext> {\n await this.setProperty('fillStyle', typeof style === 'string' ? style : style instanceof OObject ? style.ref : style)\n return this\n }\n set filter(value: string) {\n this.setFilter(value)\n }\n async setFilter(filter: string) {\n await this.setProperty('filter', filter)\n return this\n }\n set font(value: string) {\n this.setFont(value)\n }\n async setFont(font: string) {\n await this.setProperty('font', font)\n return this\n }\n set fontKerning(value: string) {\n this.setFontKerning(value)\n }\n async setFontKerning(kerning: string) {\n await this.setProperty('fontKerning', kerning)\n return this\n }\n set fontStretch(value: string) {\n this.setFontStretch(value)\n }\n async setFontStretch(value: string) {\n await this.setProperty('fontStretch', value)\n return this\n }\n set fontVariantCaps(value: string) {\n this.setFontVariantCaps(value)\n }\n async setFontVariantCaps(value: string) {\n await this.setProperty('fontVariantCaps', value)\n return this\n }\n set globalAlpha(value: number) {\n this.setGlobalAlpha(value)\n }\n async setGlobalAlpha(value: number) {\n await this.setProperty('globalAlpha', value)\n return this\n }\n set globalCompositeOperation(value: string) {\n this.setGlobalCompositeOperation(value)\n }\n async setGlobalCompositeOperation(value: string) {\n await this.setProperty('globalCompositeOperation', value)\n return this\n }\n set imageSmoothingEnabled(value: boolean) {\n this.setImageSmoothingEnabled(value)\n }\n async setImageSmoothingEnabled(value: boolean) {\n await this.setProperty('imageSmoothingEnabled', value)\n return this\n }\n set imageSmoothingQuality(value: string) {\n this.setImageSmoothingQuality(value)\n }\n async setImageSmoothingQuality(value: string) {\n await this.setProperty('imageSmoothingQuality', value)\n return this\n }\n set letterSpacing(value: string) {\n this.setLetterSpacing(value)\n }\n async setLetterSpacing(value: string) {\n await this.setProperty('letterSpacing', value)\n return this\n }\n set lineCap(value: string) {\n this.setLineCap(value)\n }\n async setLineCap(value: string) {\n await this.setProperty('lineCap', value)\n return this\n }\n set lineDashOffset(value: number) {\n this.setLineDashOffset(value)\n }\n async setLineDashOffset(value: number) {\n await this.setProperty('lineDashOffset', value)\n return this\n }\n set lineJoin(value: string) {\n this.setLineJoin(value)\n }\n async setLineJoin(value: string) {\n await this.setProperty('lineJoin', value)\n return this\n }\n set lineWidth(value: number) {\n this.setLineWidth(value)\n }\n async setLineWidth(value: number) {\n await this.setProperty('lineWidth', value)\n return this\n }\n set miterLimit(value: number) {\n this.setMiterLimit(value)\n }\n async setMiterLimit(value: number) {\n await this.setProperty('miterLimit', value)\n return this\n }\n set shadowBlur(value: number) {\n this.setShadowBlur(value)\n }\n async setShadowBlur(value: number) {\n await this.setProperty('shadowBlur', value)\n return this\n }\n set shadowColor(value: string) {\n this.setShadowColor(value)\n }\n async setShadowColor(value: string) {\n await this.setProperty('shadowColor', value)\n return this\n }\n set shadowOffsetX(value: number) {\n this.setShadowOffsetX(value)\n }\n async setShadowOffsetX(value: number) {\n await this.setProperty('shadowOffsetX', value)\n return this\n }\n set shadowOffsetY(value: number) {\n this.setShadowOffsetY(value)\n }\n async setShadowOffsetY(value: number) {\n await this.setProperty('shadowOffsetY', value)\n return this\n }\n set strokeStyle(value: any) {\n this.setStrokeStyle(value)\n }\n async setStrokeStyle(value: any) {\n await this.setProperty('strokeStyle', typeof value === 'string' ? value : value instanceof OObject ? value.ref : value)\n return this\n }\n set textAlign(value: string) {\n this.setTextAlign(value)\n }\n async setTextAlign(value: string) {\n await this.setProperty('textAlign', value)\n return this\n }\n set textBaseline(value: string) {\n this.setTextBaseline(value)\n }\n async setTextBaseline(value: string) {\n await this.setProperty('textBaseline', value)\n return this\n }\n set wordSpacing(value: string) {\n this.setWordSpacing(value)\n }\n async setWordSpacing(value: string) {\n await this.setProperty('wordSpacing', value)\n return this\n }\n set textRendering(value: string) {\n this.setTextRendering(value)\n }\n async setTextRendering(value: string) {\n await this.setProperty('textRendering', value)\n return this\n }\n async commit(): Promise<void> {\n await this.batch.exec()\n }\n }\n export class Image extends OObject {\n constructor(obj: OObject) {\n super(obj.uid, obj.tag)\n }\n static async new(width?: number, height?: number): Promise<Image | null> {\n const args = []\n if (width) args.push(width)\n if (height) args.push(height)\n const img = await OUID.newObject('Image', ...args)\n if (!img) return null\n return new Image(img)\n }\n async width(): Promise<number> {\n return (await this.getProperty<number>('width')) ?? 0\n }\n async height(): Promise<number> {\n return (await this.getProperty<number>('height')) ?? 0\n }\n async naturalWidth(): Promise<number> {\n return (await this.getProperty<number>('naturalWidth')) ?? 0\n }\n async naturalHeight(): Promise<number> {\n return (await this.getProperty<number>('naturalHeight')) ?? 0\n }\n async src() {\n return await this.getProperty<string>('src')\n }\n async currentSrc() {\n return await this.getProperty<string>('currentSrc')\n }\n async setSrc(src: string) {\n await this.setProperty('src', src)\n }\n }\n export class CanvasPath2D extends OObject {\n private batch = new BatchUpdates(this);\n constructor(obj: OObject) {\n super(obj.uid, obj.tag)\n }\n\n static async create() {\n const ret = await OUID.newObject('Path2D')\n if (!ret) {\n return null\n }\n return new CanvasPath2D(ret)\n }\n addPath(path: CanvasPath2D) {\n this.batch.invoke('addPath', path.ref)\n return this\n }\n arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise: boolean = false) {\n this.batch.invoke('arc', x, y, radius, startAngle, endAngle, counterclockwise)\n return this\n }\n arcTo(x1: number, y1: number, x2: number, y2: number, radius: number) {\n this.batch.invoke('arcTo', x1, y1, x2, y2, radius)\n return this\n }\n bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number) {\n this.batch.invoke('bezierCurveTo', cp1x, cp1y, cp2x, cp2y, x, y)\n return this\n }\n quadraticCurveTo(cpx: number, cpy: number, x: number, y: number) {\n this.batch.invoke('quadraticCurveTo', cpx, cpy, x, y)\n return this\n }\n closePath() {\n this.batch.invoke('closePath')\n return this\n }\n ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise: boolean = false) {\n this.batch.invoke('ellipse', x, y, radiusX, radiusY, rotation, startAngle, endAngle, counterclockwise)\n return this\n }\n moveTo(x: number, y: number) {\n this.batch.invoke('moveTo', x, y)\n return this\n }\n lineTo(x: number, y: number) {\n this.batch.invoke('lineTo', x, y)\n return this\n }\n rect(x: number, y: number, width: number, height: number) {\n this.batch.invoke('rect', x, y, width, height)\n return this\n }\n roundRect(x: number, y: number, width: number, height: number, radii: number | number[]) {\n this.batch.invoke('roundRect', x, y, width, height, radii)\n return this\n }\n async commit(): Promise<void> {\n await this.batch.exec()\n }\n\n }\n export class CanvasElement extends OElement {\n constructor(node: OElement) {\n super(node)\n }\n async width() {\n return this.getProperty<number>('width')\n }\n async height() {\n return this.getProperty<number>('height')\n }\n async setWidth(width: number) {\n this.setProperty('width', width)\n }\n async setHeight(height: number) {\n this.setProperty('height', height)\n }\n async getContext(context: string): Promise<Canvas2DContext | null> {\n const obj = await this.invokeAndHold('getContext', context)\n if (!obj) return obj\n return new Canvas2DContext(obj.uid)\n }\n static async of(selector: string, filter?: QueryFilter[], nodeId?: string): Promise<CanvasElement | null> {\n const node = await OUID.query(selector, filter)\n if (!node) return null\n return new CanvasElement(node)\n }\n }\n}\n\nexport interface EventListenerOptions {\n once?: boolean;\n passive?: boolean; capture?: boolean\n}\nexport interface EventControlPolicy {\n alwaysPreventDefault?: boolean;\n alwaysStopPropagation?: boolean;\n alwaysStopImmediatePropagation?: boolean\n}\nexport interface OUIDBridgeInterface {\n invoke(name: string): Promise<any>\n emit(event: string, data: any): void\n subscribe(event: string, callback: (id: string, data: string) => void): void\n}\n\nexport type OUIDConfig = {\n appId: string;\n appName: string,\n appSecret: string\n}\nexport declare var WebOUID: { invoke: (id: string, name: string, argsJson: string) => void } | undefined\ntype SuccessCallback = (...args: any[]) => void\ntype ErrorCallback = (...args: any[]) => void\ntype InvokeCallback = { success: SuccessCallback, error: ErrorCallback }\ntype RequestData = { method: string, headers: Record<string, string>, body: any, credentials: \"include\" | \"omit\" | \"same-origin\" }\nexport class OUIDBridge implements OUIDBridgeInterface {\n private callbacks = new Map<string, InvokeCallback>()\n private DOM_EVENT_LISTENERS = new Map<string, (...args: any[]) => void>()\n private timers = new Map<number, string>()\n private _config?: OUIDConfig = undefined\n private listeners = new Map<string, ((id: string, data: string) => void)[]>()\n constructor() {\n this.subscribe('__ouid_native_event_success__', (id, data) => {\n const cb = this.callbacks.get(id)\n if (cb) {\n this.callbacks.delete(id)\n return cb.success(...JSON.parse(data))\n }\n })\n this.subscribe('__ouid_native_event_error__', (id, data) => {\n const cb = this.callbacks.get(id)\n if (cb) {\n this.callbacks.delete(id)\n console.log('Error:', data)\n return cb.error(...JSON.parse(data))\n }\n })\n this.subscribe('__ouid_web_event__', (id, data) => {\n const cb = this.DOM_EVENT_LISTENERS.get(id)\n if (cb) {\n // this.callbacks.delete(id)\n const args = JSON.parse(data)\n const event = args[1]\n if (event) {\n event['target'] = event?.target ? new ODOM.OElement(event.target) : null\n event['currentTarget'] = event?.currentTarget ? new ODOM.OElement(event.currentTarget) : null\n event['relatedTarget'] = event?.relatedTarget ? new ODOM.OElement(event.relatedTarget) : null\n }\n return cb(event)\n }\n })\n }\n config(conf?: OUIDConfig): OUIDBridge {\n this._config = conf\n return this\n }\n\n invoke(name: string, ...args: any[]): Promise<any> {\n const id = generateUIID(name)\n return new Promise((res, rej) => {\n this.callbacks.set(id, { success: res, error: rej })\n try {\n if (!WebOUID) throw new Error(\"NativeOUID bridge not available\")\n WebOUID.invoke(id, name, JSON.stringify(args))\n } catch (error) {\n console.error(error)\n this.callbacks.delete(id)\n }\n })\n }\n registerComponent(tag: string, compClass: OComponentType<any, any>) {\n componentsRegistry.register(tag, compClass)\n }\n unregisterComponent(tag: string, compClass: OComponentType<any, any>) {\n componentsRegistry.unregister(tag)\n }\n /**\n * Make a synchronous class\n * @param name the name without '_oui' prefix\n * @param args the arguments list\n * @returns a promise of T\n */\n async call<T>(name: string, ...args: any[]): Promise<T | null> {\n try {\n const res = await this.invoke(`_ouid_${name}`, ...args)\n return res.data as T\n } catch (error) {\n console.error(error)\n return null\n }\n }\n emit(event: string, data: any): void {\n WebOUID?.invoke('event', event, JSON.stringify(data))\n }\n /**\n * \n * @param event Create a subscription for a given event name, should be possible to register only once ??\n * @param callback \n */\n\n\n subscribe(event: string, callback: (id: string, ...args: any[]) => void): void {\n if (!this.listeners.has(event)) {\n this.listeners.set(event, []);\n // attach a single handler for native -> JS calls\n (globalThis as any)[event] = (id: string, data: string) => {\n this.listeners.get(event)?.forEach(cb => cb(id, data))\n }\n // if (window && document) {\n // (window as any)[event] = (globalThis as any)[event]\n // }\n }\n this.listeners.get(event)!.push(callback)\n }\n\n\n async query(selector: string, filter?: QueryFilter[], nodeId?: string): Promise<ODOM.OElement | null> {\n const node = await this.call<ODOM.ONode>('query', selector, filter, nodeId)\n return node ? new ODOM.OElement(node) : null\n }\n async queryAll(selector: string, filter?: QueryFilter[], nodeId?: string): Promise<ODOM.OElement[] | null> {\n const nodes = await this.call<ODOM.ONode[]>('queryAll', selector, filter, nodeId)\n return nodes ? nodes.map(n => new ODOM.OElement(n)) : []\n }\n\n async createElement(tag: string, props: Record<string, string> = {}): Promise<ODOM.OElement | null> {\n const node = await this.call<ODOM.ONode>('createElement', tag, props)\n return node ? new ODOM.OElement(node) : null\n }\n async createComment(data: string): Promise<ODOM.OElement | null> {\n const node = await this.call<ODOM.ONode>('createComment', data)\n return node ? new ODOM.OElement(node) : null\n }\n\n async addEventListener(node: ODOM.OObject | 'window' | 'document',\n event: string,\n callback: (...args: any[]) => void,\n extra?: {\n options?: EventListenerOptions,\n policy?: EventControlPolicy\n }\n ): Promise<string> {\n const cbId = generateUIID(event + (typeof node == 'string' ? node : node.tag))\n this.DOM_EVENT_LISTENERS.set(cbId, callback)\n await OUID.call('attachEventListener', typeof node == 'string' ? node : node.uid, cbId, event, extra?.options, extra?.policy)\n return cbId\n }\n async dettachEventListener(cbId: string) {\n this.DOM_EVENT_LISTENERS.delete(cbId)\n await OUID.call('dettachEventListener', cbId)\n }\n\n\n async injectComponentStyles(css: string): Promise<ODOM.OElement | null> {\n const node = await OUID.call<ODOM.OElement>('injectComponentStyles', css)\n return node ? new ODOM.OElement(node) : null;\n }\n async rejectComponentStyles(cssNode: ODOM.ONode): Promise<void> {\n await OUID.call('rejectComponentStyles', cssNode.uid)\n }\n\n async getOObject(id: string): Promise<ODOM.OObject | null> {\n const obj = await OUID.call<ODOM.OObject>('getOObject', id)\n return obj ? new ODOM.OObject(obj.uid, obj.tag) : null\n }\n async acquireObject(name: string): Promise<ODOM.OObject | null> {\n const obj = await OUID.call<ODOM.OObject>('acquireObject', name)\n return obj ? new ODOM.OObject(obj.uid, obj.tag) : null\n }\n\n async setTimeout(callback: () => void, delay: number): Promise<number> {\n const cbId = generateUIID('setTimeout' + delay)\n this.DOM_EVENT_LISTENERS.set(cbId, () => {\n callback()\n // remove from queue\n const cb = this.timers.get(id)\n if (cb) {\n this.timers.delete(id)\n this.DOM_EVENT_LISTENERS.delete(cb)\n }\n })\n const id = await OUID.call<number>('setTimeout', cbId, delay) ?? -1\n if (id >= 0) {\n this.timers.set(id, cbId)\n }\n return id\n }\n async clearTimeout(id: number): Promise<void> {\n const cb = this.timers.get(id)\n if (cb) {\n this.timers.delete(id)\n this.DOM_EVENT_LISTENERS.delete(cb)\n await OUID.call<number>('clearTimeout', id)\n }\n }\n async setInterval(callback: () => void, delay: number): Promise<number> {\n const cbId = generateUIID('setInterval' + delay)\n this.DOM_EVENT_LISTENERS.set(cbId, callback)\n const id = await OUID.call<number>('setInterval', cbId, delay) ?? -1\n if (id >= 0) {\n this.timers.set(id, cbId)\n }\n return id\n }\n async clearInterval(id: number): Promise<void> {\n const cb = this.timers.get(id)\n if (cb) {\n this.timers.delete(id)\n this.DOM_EVENT_LISTENERS.delete(cb)\n await OUID.call<number>('clearInterval', id)\n }\n }\n\n\n fetch(url: string, input: RequestData, encodeAs: \"json\"): Promise<any>\n fetch(url: string, input: RequestData, encodeAs: \"text\"): Promise<string>\n fetch(url: string, input: RequestData, encodeAs: \"base64\"): Promise<string>\n async fetch(\n url: string,\n input: RequestData,\n encodeAs: \"json\" | \"text\" | \"base64\" = \"json\"\n ): Promise<any> {\n return await OUID.call(\"fetch\", url, input, encodeAs);\n }\n\n async alert(message: string): Promise<void> {\n await OUID.call(\"alert\", message);\n }\n async prompt(message: string): Promise<void> {\n await OUID.call(\"prompt\", message);\n }\n\n async newObject(ctr: string, ...args: any[]) {\n return OUID.call<ODOM.OObject>('newObject', ctr, ...args)\n }\n}\n\n\nexport const OUID = new Proxy(new OUIDBridge(), {\n get: (target, p) => {\n if (p in target) {\n return target[p as keyof OUIDBridge]\n }\n return async <T>(...args: any) => {\n return await target.call<T>(p as string, ...args)\n }\n }\n}) as OUIDBridge & Record<string, (...args: any[]) => Promise<any>>;\n\n; (globalThis as any).OUID = OUID\n\ndeclare global {\n var OUID: OUIDBridge & Record<string, (...args: any[]) => Promise<any>>;\n}","import { Component, ComponentConstructor, createComponent, OComponent, OComponentType, RenderNode } from \"./component\";\nimport { App } from \"./app\";\nimport { isStated } from \"./state\";\nimport { ComponentsRegistry, componentsRegistry } from \"./registry\";\nimport { ODOM } from \"./interfaces/bridge\";\n\nfunction toCamelCase(name: string): string {\n return name.replace(/-([a-z])/g, (_, char) => char.toUpperCase());\n}\nfunction toSnakeCase(name: string): string {\n return name.replace(/(?!^)([A-Z])/g, (_, char) => `-${char.toLowerCase()}`);\n}\n\nfunction normaliseValue<T>(value: T) {\n if (isStated(value)) {\n return value.value as T\n }\n return value\n}\n\n// ---- DOM-free schedulers ----\nconst hasQueueMicrotask = typeof (globalThis as any).queueMicrotask === 'function';\n\nexport const deferMicro = (fn?: () => void) =>\n fn\n ? (hasQueueMicrotask ? queueMicrotask(fn) : Promise.resolve().then(fn))\n : Promise.resolve(); // await deferMicro() yields to microtask queue\n\nexport const deferMacro = () =>\n new Promise<void>(r => setTimeout(r, 0)); // await deferMacro() yields one macrotask\n// ---- end schedulers ----\n\nfunction isLazyLoader<P extends Record<string, any>, O extends Record<string, any>>(\n comp: OComponentType<P, O>\n): comp is () => Promise<{ default: ComponentConstructor<P, O> }> {\n return typeof comp === \"function\" && !(\"prototype\" in comp);\n}\n\n// --- helpers (can live in the same file or be moved to cache.ts) ---\ntype TemplateFn = (scope: any) => string;\n\nconst EXPR_FN = new Map<string, (s: any) => any>();\nconst TEMPLATE_CACHE = new Map<string, TemplateFn>();\nconst METHODS_CACHE = new WeakMap<object, any>();\n\nfunction getMethodsView(obj: any) {\n if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) return {};\n const cached = METHODS_CACHE.get(obj);\n if (cached) return cached;\n\n const out: Record<string, any> = Object.create(null);\n for (let cur = obj; cur && cur !== Object.prototype; cur = Object.getPrototypeOf(cur)) {\n for (const key of Object.getOwnPropertyNames(cur)) {\n if (key === 'constructor' || key.startsWith('__') || key.endsWith('__')) continue;\n if (key in out) continue;\n\n const desc = Object.getOwnPropertyDescriptor(cur, key);\n if (!desc) continue;\n const v = (desc.value ?? (desc.get ? desc.get.call(obj) : undefined));\n out[key] = typeof v === 'function' ? v.bind(obj) : v;\n }\n }\n METHODS_CACHE.set(obj, out);\n return out;\n}\n\nfunction evalInScope(expr: string, scope: any) {\n let compiled = EXPR_FN.get(expr);\n if (!compiled) {\n // Compile ONCE per expr; use with(s) to avoid rebuilding arg lists each call\n compiled = new Function('s', 'with (s) { return (' + expr + '); }') as (s: any) => any;\n EXPR_FN.set(expr, compiled);\n }\n return compiled(scope);\n}\n\nfunction compileInterpolated(template: string): TemplateFn {\n let fn = TEMPLATE_CACHE.get(template);\n if (fn) return fn;\n\n const parts: Array<{ t?: string; e?: string }> = [];\n let i = 0;\n while (i < template.length) {\n const open = template.indexOf('{{', i);\n if (open < 0) { parts.push({ t: template.slice(i) }); break; }\n if (open > i) parts.push({ t: template.slice(i, open) });\n const close = template.indexOf('}}', open + 2);\n const expr = close >= 0 ? template.slice(open + 2, close).trim() : template.slice(open + 2).trim();\n parts.push({ e: expr });\n i = (close >= 0 ? close + 2 : template.length);\n }\n\n fn = (scope: any) => {\n let out = '';\n for (const p of parts) {\n if (p.t !== undefined) out += p.t;\n else if (p.e !== undefined) {\n const v = normaliseValue(evalInScope(p.e, scope));\n out += v == null ? '' : String(v);\n }\n }\n return out;\n };\n TEMPLATE_CACHE.set(template, fn);\n return fn;\n}\n\nexport class RenderContext {\n static PROVIDE_TOKEN = \"RENDER_CONTEXT\"\n static STYLE_REF = new WeakMap<any, number>()\n private bindings: Binding[] = []\n private directives: Directive[] = []\n private mountedComponents: Map<string, OComponent> = new Map()\n private componentsRegistry = new ComponentsRegistry()\n private updatingDirectives = false;\n private updatingBindings = false;\n private _stack: Record<string, any>[] = []\n private flatStack: Record<string, any> = Object.create(null);\n hydradationActions = new ODOM.BatchActions()\n\n constructor(private app: App, public component: OComponent<Record<string, any>, Record<string, any>>, private parentContext: RenderContext | null, ...frames: Record<string, any>[]) {\n for (const f of frames) {\n this.push(f)\n }\n }\n get hostElement(): ODOM.OElement {\n return (this.component as any)['_hostElement']\n }\n get stack() {\n return this._stack;\n }\n set stack(value: Record<string, any>[]) {\n this.flatStack = Object.create(null);\n this._stack = [];\n for (const f of value) {\n this.push(f)\n }\n }\n getMountedComponent(node: ODOM.OElement): OComponent | undefined {\n return this.mountedComponents.get(node.uid)\n }\n bind(binding: Binding) {\n this.bindings.push(binding)\n }\n directive(directive: Directive) {\n this.directives.push(directive)\n }\n evaluateExpression(expr: string | null | undefined): boolean {\n return this.resolve(expr)\n }\n resolve(key: string | null | undefined, strict: boolean = true, ...additionFrames: Record<string, any>[]) {\n if (!key) return undefined;\n\n const stateObj = this.component.state?.value ?? {};\n const methodsView = getMethodsView(stateObj);\n\n const scope = new Proxy(Object.create(null), {\n get: (_t, prop: string) => {\n for (let i = additionFrames.length - 1; i >= 0; i--) {\n if (prop in additionFrames[i]) return (additionFrames[i] as any)[prop];\n }\n if (prop in this.flatStack) return (this.flatStack as any)[prop];\n if (prop in methodsView) return (methodsView as any)[prop];\n return (stateObj as any)[prop];\n },\n has: (_t, prop: string) =>\n additionFrames.some(f => prop in f) || (prop in this.flatStack) || (prop in methodsView) || (prop in stateObj)\n });\n\n try {\n return evalInScope(key, scope);\n } catch (error) {\n return undefined;\n }\n }\n /** \n * Handing (o-model) like (ngModel) update, we should support mutliple syntaxe like o-mode=\"value\" where value is defined directly on the component\n * o-model=\"data['key']\" where data is either defined on the component, of in the enclosing scope in case of for-loop for instance\n * */\n updateValue(key: string, value: any) {\n const firstPart = key.split(/[\\.\\[]/)[0];\n if (firstPart in this.component) {\n this.resolve(`${key}=__o_model_value__`, true, { '__o_model_value__': value });\n } else {\n this.resolve(`${key}=__o_model_value__`, true, { '__o_model_value__': value });\n }\n this.component.state.didChange(firstPart as any, undefined, value);\n }\n // setFrames(...frames: Record<string, any>[]) {\n // this._stack = []\n // this.flatStack = Object.create(null);\n // for (const f of frames) {\n // this.push(f)\n // }\n // }\n push(frame: Record<string, any>) {\n this._stack.unshift(frame);\n Object.assign(this.flatStack, frame);\n }\n\n pop() {\n const f = this._stack.shift();\n if (f) for (const k of Object.keys(f)) delete this.flatStack[k];\n }\n resolveTag(tag: string): OComponentType<any, any> | undefined {\n // resolve from context hiearchy\n let ctx: RenderContext | null = this\n while (true) {\n if (ctx.componentsRegistry.has(tag)) {\n return ctx.componentsRegistry.get(tag)\n }\n ctx = ctx?.parentContext ?? null\n if (!ctx) {\n break;\n }\n }\n return componentsRegistry.get(tag)\n }\n // --- Interpolation & two-way binding ---\n async updateBindings(updates?: ODOM.BatchActions): Promise<void> {\n if (this.updatingBindings) return;\n const root = !updates;\n updates = updates ?? new ODOM.BatchActions();\n\n this.updatingBindings = true;\n for (const b of this.bindings) this.updateBinding(b, updates);\n this.updatingBindings = false;\n\n if (root) await updates.commit();\n }\n updateBinding(binding: Binding, updates: ODOM.BatchActions): void {\n if (binding.type === \"model\") {\n (binding.node).setProperty('value', normaliseValue<string>(binding.context.resolve(binding.key)));\n return;\n }\n\n if (binding.type === 'interpolation') {\n // Precompiled template; resolve in one shot\n updates.add(async () => {\n const s = binding.templateFn({\n ...this.flatStack,\n ...getMethodsView(this.component.state?.value ?? {}),\n ...(this.component.state?.value ?? {})\n });\n await binding.node.setContentText(s);\n });\n return;\n }\n\n if (binding.type === 'attribute') {\n const name = binding.key;\n const v = normaliseValue(this.resolve(binding.template!));\n if (name === 'class') {\n updates.add(() => this.expandClass(binding.node, v));\n } else if (name === 'style') {\n this.expandStyle(binding.node, v); // single attribute set inside\n } else if (typeof v !== 'object' && typeof v !== 'function' && typeof v !== 'symbol' && typeof v !== 'undefined') {\n updates.add(() => binding.node.setAttribute(name, v.toString()));\n }\n return;\n }\n\n if (binding.type === 'prop' && binding.context.component) {\n const value = normaliseValue<string>(this.resolve(binding.template));\n try {\n binding.context.component.props[binding.key] = value;\n // when props change, re-evaluate the child context\n binding.context.updateBindings();\n binding.context.updateDirectives();\n } catch (error) {\n console.error(error);\n }\n return;\n }\n }\n // --- Directives ---\n async updateDirectives(updates?: ODOM.BatchActions) {\n if (this.updatingDirectives) {\n return\n }\n const root = !updates\n this.updatingDirectives = true\n updates = updates ?? new ODOM.BatchActions()\n for (let d of this.directives) {\n if (d.type === \"if\") {\n const show = normaliseValue(d.context.evaluateExpression(d.expr));\n if (!show) {\n if (d.active === false) {\n continue\n }\n d.active = false;\n if (d.renderedNode) {\n if (d.destroy) {\n this.unmountComponent(d.renderedNode)\n await d.renderedNode.removeAndRelease()\n } else {\n await d.renderedNode.addClass('oui-hidden')\n }\n }\n continue\n }\n\n if (d.active === true) {\n continue;\n }\n d.active = true;\n const renderedNode = d.renderedNode\n if (!renderedNode || d.destroy) {\n const clone = (await d.node.cloneNode(true))!\n d.renderedNode = clone\n await d.context.render(clone)\n await d.placeholder.after(clone)\n await d.context.hydradationActions.commit()\n } else {\n await renderedNode.removeClass(\"oui-hidden\");\n }\n // d.context.updateDirectives()\n }\n\n if (d.type === \"for\") {\n const oldChildren: Map<any, { node: ODOM.OElement, ctx: RenderContext }> = d.children ?? new Map();\n const newChildren: Map<any, { node: ODOM.OElement, ctx: RenderContext }> = new Map();\n\n const keyFn = (val: any, idx: number) =>\n d.key ? normaliseValue<any>(d.context.resolve(d.key, true, { [d.item!]: val })) : idx;\n\n const arr = normaliseValue<any[]>(d.context.resolve(d.list!)) || [];\n\n // We accumulate DOM moves/inserts, then commit once per chunk\n const domOps = new ODOM.BatchActions();\n const YIELD_EVERY = 32; // tune for device; 16~32 is usually sweet in WebView\n let opsSinceYield = 0;\n\n // Queue of async hydrations for new rows (run in small parallel bursts after DOM ops)\n const newHydrations: Array<() => Promise<void>> = [];\n\n let last: ODOM.OElement = d.placeholder;\n\n for (let i = 0; i < arr.length; i++) {\n const val = arr[i];\n const key = keyFn(val, i);\n\n let entry = oldChildren.get(key);\n let node: ODOM.OElement;\n let ctx: RenderContext;\n\n const anchor = last;\n if (entry) {\n node = entry.node;\n ctx = entry.ctx;\n\n // update loop-local frame quickly\n ctx.stack = [{ [d.item!]: val }, ...d.context.stack];\n\n // Reorder only if needed (batch it)\n domOps.add(async () => {\n const next = await last.nextSibling();\n if (node.uid !== next?.uid) {\n domOps.add(() => anchor.after(node)); // no async, anchor is stable\n }\n });\n\n // Schedule updates for the reused child; do not force immediate commit\n await Promise.all([ctx.updateBindings(updates), ctx.updateDirectives(updates)]);\n } else {\n // brand new row: create ctx + clone; avoid immediate DOM awaits\n ctx = new RenderContext(this.app, this.component, this);\n ctx.hydradationActions = this.hydradationActions;\n ctx.stack = [{ [d.item!]: val }, ...d.context.stack];\n\n const clone = await d.node.cloneNode(true);\n node = clone!;\n\n // Insert into DOM in the same batch (fast)\n domOps.add(async () => {\n await anchor.after(node);\n });\n\n // Hydration for this new row runs in parallel *after* the batch\n newHydrations.push(async () => {\n await ctx.render(node);\n await ctx.updateDirectives(updates);\n });\n }\n\n last = node;\n newChildren.set(key, { node, ctx });\n\n // yield periodically to keep main thread responsive in WebView\n if (++opsSinceYield >= YIELD_EVERY) {\n opsSinceYield = 0;\n await domOps.commit(); // flush moves so far\n await deferMicro(); // let microtasks run\n }\n }\n\n // Remove stale nodes (batched)\n for (const [key, entry] of oldChildren.entries()) {\n if (!newChildren.has(key)) {\n this.unmountComponent(entry.node);\n domOps.add(() => entry.node.removeAndRelease());\n }\n }\n\n // Final DOM batch flush for this directive pass\n await domOps.commit();\n\n // Hydrate all newly added rows in small bursts (breadth-first feel)\n if (newHydrations.length) {\n const BURST = 12; // parallelism; 4~8 keeps things smooth\n for (let i = 0; i < newHydrations.length; i += BURST) {\n const chunk = newHydrations.slice(i, i + BURST).map(fn => fn());\n await Promise.all(chunk);\n await deferMicro(); // small yield between bursts\n }\n }\n\n d.children = newChildren;\n }\n }\n // commit updates\n if (root) {\n await updates.commit()\n }\n await this.hydradationActions.commit()\n this.updatingDirectives = false\n }\n\n private async render(node: ODOM.OElement, options?: { skipSlotted: boolean }): Promise<void> {\n if (node.hydrated) {\n return;\n }\n if (options?.skipSlotted && node.hasAttribute('slotted')) {\n return;\n }\n switch (node.type) {\n case 'Text':\n this.handleTextNode(node)\n break\n case 'Element':\n await this.handleElementNode(node, options)\n break\n default:\n }\n const batch = new ODOM.BatchActions()\n await Promise.all([this.updateBindings(batch), this.updateDirectives(batch)])\n batch.commit()\n this.hydradationActions.add(() => node.hydrate())\n \n }\n private async expandClass(node: ODOM.OElement, value: any) {\n let classes: string[]\n if (typeof value === 'object') {\n if (Array.isArray(value)) {\n classes = value\n } else {\n classes = Object.keys(value).filter(e => value[e])\n }\n } else {\n classes = value.toString().split(/\\s+/)\n }\n if (classes.length > 0) {\n await node.addClass(...classes)\n }\n }\n private expandStyle(node: ODOM.OElement, value: any) {\n let styleString = value\n if (typeof value === 'object' && !Array.isArray(value)) {\n styleString = Object.keys(value).filter(e => value[e]).map(e => `${toSnakeCase(e)}: ${value[e]}`).join(';')\n }\n if (styleString) {\n node.setAttribute('style', styleString)\n }\n }\n private expandStandardAttributes(node: ODOM.OElement) {\n const batches = node.updates();\n [...node.attributes!].filter(attr => attr.name.startsWith(':')).forEach(attr => {\n const key = attr.name.substring(1)\n this.bind({\n type: 'attribute',\n node,\n key,\n context: this,\n template: attr.value.trim()\n })\n batches.removeAttribute(attr.name)\n })\n batches.exec()\n }\n async handleElementNode(node: ODOM.OElement, options?: { skipSlotted: boolean }) {\n // expand style and classes\n const parentNode = (await node.parentNode())!\n let controlled: 'for' | 'if' | null = null\n // *if directive\n const conditionAttr = node.hasAttribute(\"o-if\") ? \"o-if\" : node.hasAttribute('o-show') ? 'o-show' : null\n if (conditionAttr) {\n const expr = await (node.getAttribute(conditionAttr))!;\n const placeholder = (await OUID.createComment(conditionAttr + \":\" + expr))!;\n const destroy = conditionAttr === 'o-if'\n await parentNode.insertBefore(placeholder, node);\n await node.updates()\n .removeAttribute(conditionAttr)\n .remove()\n .exec()\n this.directive({\n type: \"if\",\n expr,\n node,\n placeholder,\n context: this,\n active: undefined,\n destroy\n });\n controlled = 'if'\n return\n }\n\n // *for directive\n if (node.hasAttribute(\"o-for\")) {\n if (controlled === 'if') {\n throw new Error('Can\\'t have o-if and o-for on the same component')\n }\n const expr = (await node.getAttribute(\"o-for\"))!;\n const [item, list] = expr.split(\" of \").map(s => s.trim());\n const placeholder = (await OUID.createComment(\"for:\" + expr))!;\n const key = node.attribute(':key') ?? \"\"\n await parentNode?.insertBefore(placeholder, node);\n await node.updates()\n .removeAttribute(\"o-for\")\n .removeAttribute(':key')\n .remove()\n .exec()\n this.directive({\n type: \"for\",\n item,\n list,\n node,\n placeholder,\n context: this,\n key,\n });\n controlled = 'for'\n return\n }\n const tag = node.tag.toLowerCase();\n const cc = this.resolveTag(tag);\n\n const batches = node.updates();\n // Two-way binding [(model)]\n [...node.attributes].forEach(async attr => {\n if (attr.name === 'o-model') {\n const key = attr.value.trim();\n const event = 'input'\n batches\n .setInputValue(normaliseValue(this.resolve(key,)))\n .addEventListener(event, async (e) => {\n // this.state[key] = (e.target as any).value;\n const value = await (e.target as ODOM.OElement).getProperty('value')\n this.updateValue(key, value)\n })\n this.bind({ node, key, type: \"model\", context: this });\n \n batches.removeAttribute(attr.name);\n }\n });\n\n\n\n\n let props = {} as any, events = {} as any\n\n const { props: p, events: e } = this.componentAttributes(node, this)\n props = p\n events = e\n this.expandStandardAttributes(node)\n // Event binding @(event)=\"fn()\"\n Object.keys(events).forEach(async k => {\n const handler = events[k]\n if (!cc) {\n batches.addEventListener(k, e => {\n if (typeof handler === \"function\") (handler as Function).apply(this.component, [e]);\n });\n }\n batches.removeAttribute('@' + k);\n });\n\n await batches.exec()\n\n\n if (cc) {\n await this.mountComponent(node, cc, this, props, events);\n return; // stop scanning original node\n }\n let children = await node.childNodes()\n if (options?.skipSlotted) {\n children = children.filter(c => !c.hasAttribute('slotted'))\n }\n for (const child of children) {\n /// AWAIT??\n await this.render(child, options)\n }\n }\n handleTextNode(node: ODOM.OElement) {\n const txt = node.textContent ?? '';\n if (txt.includes('{{')) {\n this.bind({\n type: 'interpolation',\n node,\n key: '__template__',\n templateFn: compileInterpolated(txt),\n context: this\n });\n }\n }\n private componentAttributes(node: ODOM.OElement, parentContext: RenderContext | null) {\n const props: Record<string, { name: string, expr?: string | null, value: any }> = {};\n const events: any = {};\n const ignoredAttrs = ['import', 'interface', 'module', 'o-model', 'o-if', 'o-for'];\n [...node.attributes].filter(a => !ignoredAttrs.includes(a.name)).forEach(attr => {\n let name = attr.name\n if (name.startsWith('@')) {\n // attach an event\n const handler = parentContext?.resolve(attr.value, true)\n if (typeof handler !== 'function') {\n throw new Error('Event handler can only be function')\n }\n name = name.substring(1)\n events[name] = handler\n return\n }\n let expr: string | null = null\n let p: any = attr.value\n if (name.startsWith(':')) {\n expr = attr.value\n name = name.substring(1)\n p = normaliseValue(parentContext?.resolve(attr.value))\n }\n name = toCamelCase(name)\n props[name] = {\n name,\n value: p,\n expr\n };\n });\n return { props, events }\n }\n async mountComponent<T extends Record<string, any>, O extends Record<string, string>>(\n hostNode: ODOM.OElement,\n component: OComponentType<T, O>,\n parentContext: RenderContext | null,\n props: Record<string, { name: string, value: any, expr?: string }> = {},\n emits: O = {} as O\n): Promise<OComponent> {\n if (this.mountedComponents.has(hostNode.uid)) return this.mountedComponents.get(hostNode.uid)!;\n\n // Child context prepared early (but heavy tasks deferred)\n const newCtx = new RenderContext(this.app, {} as OComponent, this);\n\n // Bind reactive props before instance creation (so the first render sees values)\n const handledProps = {} as T;\n for (const k of Object.keys(props)) {\n const p = props[k];\n if (p.expr) {\n this.bind({ type: 'prop', node: hostNode, key: k, context: newCtx, template: p.expr });\n }\n handledProps[k as keyof T] = p.value;\n }\n\n // Create instance ASAP (can be a Promise if lazy)\n const instance = await o(component, handledProps, emits);\n newCtx.component = instance;\n newCtx.stack = [];\n this.mountedComponents.set(hostNode.uid, instance);\n\n // Minimal initial host setup in a single batch (so the host appears fast)\n {\n const batch = hostNode.updates();\n for (const attr of Object.keys(props)) {\n if (!props[attr].expr) batch.setAttribute(attr, props[attr].value);\n }\n let hostClasses: string[] = (instance as any)['hostClasses'] ?? [];\n if (hostClasses) hostClasses = typeof hostClasses === 'string' ? [hostClasses] : hostClasses;\n hostClasses.push('o-component-host');\n if (hostNode.tag.toLowerCase() !== 'div') hostClasses.push('c-' + hostNode.tag.toLowerCase());\n batch.addClass(...hostClasses);\n await batch.exec();\n }\n\n // Defer costly non-critical decoration to next paint (improves TTI)\n deferMicro(async () => {\n try {\n await instance.decorateHostElement(hostNode);\n } catch {}\n });\n\n // Register dependants in the child registry (cheap, keep sync)\n {\n const dependants = (instance as any)['use'] as Record<string, OComponentType> ?? {};\n for (const d of Object.keys(dependants)) {\n newCtx.componentsRegistry.register(d, dependants[d]);\n }\n }\n\n // Call lifecycle (cheap hook), but keep CSS injection/decorate for afterPaint\n instance.willMount();\n\n // CSS injection can be expensive (style recalcs). Defer unless not cached.\n if (!(component as any)['cssInstance']) {\n const css = instance.style ? instance.style()?.toString() : (instance as any)['css'] as string;\n if (css) {\n // inject now but refcount bump later; this avoids FOUC while still deferring some work\n (component as any)['cssInstance'] ??= await OUID.injectComponentStyles(css);\n }\n }\n // Refcount bump can be deferred (no visual impact)\n deferMicro(() => {\n const styleInstance = (component as any)['cssInstance'];\n if (styleInstance) {\n const ref = RenderContext.STYLE_REF.get(styleInstance) ?? 0;\n RenderContext.STYLE_REF.set(styleInstance, ref + 1);\n (instance as any)['cssInstance'] = styleInstance;\n }\n });\n\n // Render content: prefer template path for a fast first paint, then hydrate\n // If the component has a custom render(), use it—but avoid blocking on its children.\n let hostChildrenBefore = await hostNode.childNodes(); // will be used for slotting\n if (instance.render) {\n const rendered = await instance.render(newCtx);\n if (rendered) rendered.attachTo(hostNode);\n } else {\n // template string path is generally fastest in a WebView bridge\n await hostNode.setHTML((instance as any)['template'].trim());\n }\n\n // Slot distribution: move nodes first, then hydrate in parallel\n const slots = await hostNode.queryAll('slot');\n if (slots && slots.length) {\n // Move all matching nodes with minimal awaits; hydrate after\n await Promise.all(\n slots\n .filter(s => !s.classes?.includes('hydrated'))\n .map(async slot => {\n const name = slot.attribute('name');\n const toMove = hostChildrenBefore.filter(e => {\n if (!name) return e.type !== 'Element' || !e.hasAttribute('slot');\n return e.type === 'Element' && e.attribute('slot') === name;\n });\n if (!toMove.length) return;\n\n const batch = new ODOM.BatchActions();\n for (const n of toMove) {\n batch.add(() => n.setAttribute('slotted', 'true'));\n batch.add(() => slot.appendChild(n));\n }\n await batch.commit();\n\n // Hydrate moved nodes in parallel after they’re in place\n await Promise.all(toMove.map(n => this.render(n)));\n })\n );\n }\n\n // Finalize links & provide context\n (instance as any)['_hostElement'] = hostNode;\n instance['parent'] = parentContext?.component ?? undefined;\n instance.provide(RenderContext.PROVIDE_TOKEN, this);\n\n // Hydrate children breadth-first with bounded concurrency (keeps UI responsive)\n {\n const children = await hostNode.childNodes();\n const CONCURRENCY = 6; // tweak for your WebView; 4-8 is usually sweet\n let i = 0;\n while (i < children.length) {\n const chunk = children.slice(i, i + CONCURRENCY);\n await Promise.all(chunk.map(c => newCtx.render(c, { skipSlotted: true })));\n i += CONCURRENCY;\n }\n await newCtx.hydradationActions.commit();\n }\n\n // Post-mount lifecycle after first paint\n deferMicro(() => {\n try { instance.onMounted(); } catch {}\n hostNode.hydrate()\n });\n\n // Use your debounced State to coalesce updates; keep a single commit per tick\n instance.state.watch(() => {\n const batch = new ODOM.BatchActions();\n newCtx.updateBindings(batch);\n newCtx.updateDirectives(batch);\n batch.commit();\n });\n return instance\n}\n async unmountComponent(node: ODOM.OElement) {\n const comp = this.mountedComponents.get(node.uid)\n if (comp) {\n // emit will unmount\n const styleInstance = (comp as any)['cssInstance'];\n if (styleInstance) {\n const ref = RenderContext.STYLE_REF.get(styleInstance) ?? 1\n if (ref === 1) {\n await OUID.rejectComponentStyles(styleInstance)\n RenderContext.STYLE_REF.delete(styleInstance)\n } else {\n RenderContext.STYLE_REF.set(styleInstance, ref - 1);\n }\n }\n comp.willUnmount();\n (comp as any)['_hostElement'] = null;\n (comp as any)['cssInstance'] = null;\n }\n const children = await node.queryAll('*') ?? [];\n for (const child of children) {\n await this.unmountComponent(child)\n }\n this.mountedComponents.delete(node.uid)\n }\n}\nexport type Binding =\n | { type: 'model', node: ODOM.OElement, key: string, context: RenderContext }\n | { type: 'interpolation', node: ODOM.OElement, key: string, templateFn: TemplateFn, context: RenderContext }\n | { type: 'attribute', node: ODOM.OElement, key: string, template: string | null, context: RenderContext }\n | { type: 'prop', node: ODOM.OElement, key: string, template: string, context: RenderContext };\n\nexport type Directive = { type: 'if' | 'for', node: ODOM.OElement, expr?: string, placeholder: ODOM.OElement, context: RenderContext, active?: boolean, renderedNode?: ODOM.OElement, list?: string, item?: string, children?: Map<any, { node: ODOM.ONode, ctx: RenderContext }>, key?: string, destroy?: boolean }\nexport async function node<P extends Record<string, any>, O extends Record<string, any>>(component: string, p?: P, children: RenderNode[] = [], emits?: O): Promise<RenderNode> {\n const props = p ?? {} as P\n const el = await OUID.createElement(component, Object.keys(props).reduce((acc, key) => {\n acc[key as keyof P] = props[key as keyof P]\n return acc\n }, {} as P))\n Object.keys(emits ?? {}).forEach(k => {\n el?.addEventListener(k, (e) => {\n const fn = emits![k]\n if (typeof fn === 'function') {\n fn(e)\n }\n });\n })\n return new RenderNode(el!, children)\n\n}\n\nexport function o<P extends Record<string, any>, O extends Record<string, any>>(component: ComponentConstructor<P, O>, props: P, emits?: O): OComponent<P>;\nexport function o<P extends Record<string, any>, O extends Record<string, any>>(component: OComponentType<P, O>, props: P, emits?: O): Promise<OComponent<P>>\nexport function o<P extends Record<string, any>, O extends Record<string, any>>(component: OComponentType<P, O>, props: P, emits?: O): Component<P, O> | Promise<Component<P, O>> {\n if (isLazyLoader(component)) {\n return component().then((c) => createComponent(c.default, props, emits))\n } else {\n return createComponent(component, props, emits);\n }\n}","import { ComponentConstructor, OComponent } from \"./component\";\nimport { RenderContext } from \"./context\";\n\n\n\ntype ProvideFunction<T> = () => T\nexport type Provider<T = any> = {\n value?: T,\n provide?: ProvideFunction<T>\n}\nfunction isProvideFunction<T>(fn: T | ProvideFunction<T>): fn is ProvideFunction<T> {\n return typeof fn === 'function'\n}\nexport interface Plugin<T> {\n install(app: App, options?: T): void\n}\n/** Injection token key */\nexport type InjectionKey = string\n/** Providers type */\nexport type Providers = Map<InjectionKey, Provider>\n/**\n * OUIDesigner App\n */\nexport class App {\n static currentApp: App | null = null\n private providers: Providers = new Map()\n /**\n * Provide a value through a key to all the app globally\n * @param token the registration key\n * @param value the provider value\n */\n provide<T>(token: InjectionKey, value: T | (() => T)): void {\n if (this.providers.has(token)) {\n console.warn(`[OUID] - Provider ${token} already exists`)\n return\n }\n this.providers.set(token, isProvideFunction(value) ? { provide: value } : { value: value })\n }\n /**\n * Get globally a provider through a given key\n * @param token the key to look up globally\n * @returns a provider value\n */\n inject<T>(token: InjectionKey): T | undefined {\n return this.providers.get(token)?.value as T\n }\n /**\n * Register a plugin to be used by this app\n * @param plugin the plugin to register\n * @returns `this` App instance\n */\n use<T>(plugin: Plugin<T>, options?: T) {\n plugin.install(this, options)\n return this\n }\n constructor(private root: ComponentConstructor<any, any>, private options?: {css?: string}) {\n App.currentApp = this\n }\n /**\n * Mount the App in a host element\n * @param selector the host element where the app's root component should be mounted\n */\n async mount(selector: string) {\n if((!(globalThis as any).__OUI_PUR_JS_CONTEXT__)) {\n return\n }\n if(this.options?.css) {\n await OUID.injectComponentStyles(this.options.css)\n }\n await OUID.injectComponentStyles(`\n * {\n ${selector} * {\n visibility: hidden;\n }\n ${selector} *.hydrated {\n visibility: inherit;\n }\n .oui-hidden {\n display: none !important;\n }\n `)\n const host = await OUID.query(selector)\n if (!host) throw new Error(\"No selector found for \" + selector)\n\n const globalContext = new RenderContext(this, {} as OComponent, null)\n globalContext.mountComponent(host, this.root, null).then(() => {\n globalContext.updateBindings()\n globalContext.updateDirectives()\n })\n }\n}\n\n/**\n * Provide a value through a key to all the app globally\n * @param token the registration key\n * @param value the provider value\n */\nexport function provide<T>(token: InjectionKey, value: T | (() => T)): void {\n App.currentApp?.provide(token, value)\n}\n/**\n * Get globally a provider through a given key\n * @param token the key to look up globally\n * @returns a provider value\n */\nexport function inject<T>(token: InjectionKey): T | undefined {\n return App.currentApp?.inject(token) ?? undefined\n}","import RouteParser from 'route-parser'\nimport { App, inject, Plugin } from '../app'\nimport { Component, OComponent, OComponentType } from '../component'\nimport { deferMacro, deferMicro, RenderContext } from '../context'\nimport { ODOM } from '../interfaces/bridge'\nimport { delay } from '../interfaces/helpers'\n/**\n * Component responsible for display routes\n * Usage: `<o-router></o-router>`\n */\n@Component({\n tag: 'o-router',\n template: `\n <div id=\"router-view\"></div>\n `,\n css: `\n #router-view {\n position: relative;\n min-height: 100vh;\n width: 100%;\n overflow: hidden;\n }\n\n .route-view {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n will-change: transform, opacity;\n background: var(--o-background, #FEFEFE)\n }\n\n .route-hidden {\n display: none;\n }\n\n /* shared transition */\n .route-transitioning {\n transition: transform 0.25s ease-out;\n z-index: 999\n }\n\n /* PUSH: new page comes from right */\n .route-push-start {\n transform: translateX(100%);\n }\n .route-push-end {\n transform: translateX(0%);\n }\n\n /* POP: current page goes to right, revealing underneath */\n .route-pop-start {\n transform: translateX(0%);\n }\n .route-pop-end {\n transform: translateX(100%);\n }\n `\n})\nexport class ORouter extends OComponent {\n private router: Router | undefined = undefined\n willMount(): void {\n }\n onMounted(): void {\n this.router = useRouter()\n this.router?.bind(this).then((handler) => {\n handler?.();\n })\n }\n willUnmount(): void {\n this.router?.unbind();\n }\n}\nexport const ROUTER_INJECTION_TOKEN = \"OROUTER_TOKEN\"\nexport const ACTIVE_ROUTE_TOKEN = \"ACTIVE_ROUTE\"\ninterface ORouterHistoryState {\n navIndex: number;\n}\ntype NavMode = 'push' | 'pop';\n\nconst ROUTE_SLIDE_DURATION = 250;\n\nexport interface Route {\n path: string\n name: string\n component?: OComponentType<any, any>,\n redirectTo?: string\n transition?: 'fade' | 'slide';\n}\n\nexport function useRouter(): Router | undefined {\n return inject<Router>(ROUTER_INJECTION_TOKEN)\n}\nexport function createRouter(routes: Routes): Router {\n return new Router(routes)\n}\nexport type Routes = Array<Route>\nfunction generatePath(route: Route, params: Record<string, string>): string {\n let path = new RouteParser(route.path!).reverse(params)\n if (path === false) return \"\"\n return path\n}\ntype MatchedRoute = { route: Route, params: Record<string, any>, query: Record<string, string> }\nexport type Promised<T> = T | Promise<T>\nexport type RouteLocationNamed = { name: string, params?: Record<string, any> }\nexport type RouteGuardReturn = void | boolean | RouteLocationNamed\nexport type RouteGaurdFunction = (to: { url: string, path: string, name: string }, from?: { query: Record<string, string>, params: Record<string, string> }) => Promised<RouteGuardReturn>\nexport interface RouteGuard {\n type: 'before' | 'after',\n fn: RouteGaurdFunction\n}\n\nfunction activate(inst: OComponent | null) {\n if (!inst) return;\n (inst as any).__isActive = true;\n if (typeof inst.onActivated === 'function') {\n inst.onActivated();\n }\n\n}\n\nfunction deactivate(inst: OComponent | null) {\n if (!inst) return;\n (inst as any).__isActive = false;\n if (typeof inst.onDeactivated === 'function') {\n inst.onDeactivated();\n }\n\n}\ntype CompiledRoute = { route: Route; parser: RouteParser };\nexport class Router implements Plugin<any> {\n private windowObject: ODOM.OObject | null = null\n private guards: Array<RouteGuard> = []\n private eventRegistration: string | null = null\n // NEW:\n private compiled: CompiledRoute[];\n private outletEl: ODOM.OElement | null = null;\n\n // keep-alive cache (optional, bounded):\n private keepAlive = new Map<string, { host: ODOM.OElement; ctx: RenderContext; inst: OComponent | null }>();\n private keepAliveLimit = 3;\n private pendingNav: Promise<void> | null = null;\n private lastDirection: 'forward' | 'back' | 'none' = 'none';\n private historyIndex = 0;\n\n constructor(public routes: Routes) {\n this.compiled = routes.map(r => ({ route: r, parser: new RouteParser(r.path) }));\n }\n\n install(app: App) {\n app.provide(ROUTER_INJECTION_TOKEN, this)\n OUID.registerComponent('o-router', ORouter)\n }\n resolve(url: string): MatchedRoute | null {\n const [path, queryStr = ''] = url.split('?');\n const query: Record<string, string> = queryStr\n ? queryStr.split('&').reduce((acc, kv) => {\n const [k, v = ''] = kv.split('=');\n if (k) acc[k] = decodeURIComponent(v);\n return acc;\n }, {} as Record<string, string>)\n : {};\n\n for (const c of this.compiled) {\n const params = c.parser.match(path);\n if (params) return { route: c.route, params, query };\n }\n return null;\n }\n push(options: { name?: string, path?: string, params?: Record<string, string>, absolute?: boolean }): void {\n if (!options.path && !options.name) {\n console.warn('[OUID-Router]: no path or name provided to push')\n return\n }\n this.lastDirection = 'forward';\n const dispatchPushEvent = (path: string, fire: boolean = true) => {\n this.historyIndex++;\n const newState: ORouterHistoryState = { navIndex: this.historyIndex };\n this.windowObject?.invoke('history.pushState', newState, '', path)\n if(fire) {\n this.windowObject?.dispatchEvent('popstate', 'PopStateEvent', { state: newState })\n }\n }\n if (options.name) {\n const route = this.routes.find(r => r.name === options.name)\n if (!route) {\n console.warn('[OUID-Router]: No matched route name found')\n return\n }\n const path = generatePath(route, options.params ?? {})\n dispatchPushEvent(path)\n return\n }\n if (options.absolute && options.path) {\n // this.windowObject?.invoke('history.pushState', {}, '', options.path)\n dispatchPushEvent(options.path, false)\n }\n if (options.path) {\n // first try to match direct path\n const route = this.routes.find(r => r.path === options.path)\n if (route) {\n const path = generatePath(route, options.params ?? {})\n dispatchPushEvent(path)\n return\n }\n }\n\n }\n pop(): void {\n this.lastDirection = 'back';\n this.windowObject?.invoke('history.back')\n this.windowObject?.dispatchEvent('popstate', 'PopStateEvent', { state: {} })\n }\n\n private async beforeRouteGoing(to: { url: string, path: string, name: string }, from: { params: Record<string, any>, query: Record<string, any> }): Promise<RouteGuardReturn> {\n for (const guard of this.guards.filter(g => g.type === 'before')) {\n const res = await guard.fn(to, from)\n if (res) {\n return res\n }\n }\n return\n }\n private async afterRouteGoing(to: { url: string, path: string, name: string }, from: { params: Record<string, any>, query: Record<string, any> }): Promise<RouteGuardReturn> {\n for (const guard of this.guards.filter(g => g.type === 'after')) {\n const res = await guard.fn(to, from)\n if (res) {\n return res\n }\n }\n return\n }\n\n async bind(component: ORouter): Promise<() => void> {\n this.windowObject = await OUID.acquireObject('window');\n \n const handler = async () => {\n if (!this.windowObject) this.windowObject = await OUID.acquireObject('window');\n\n const path = (await this.windowObject!.getProperty<string>('location.pathname'))!;\n const matched = this.resolve(path);\n\n if (!matched) {\n console.warn(`[Router] No route found for: ${path}`);\n return;\n }\n\n const ctx = component.inject<RenderContext>(RenderContext.PROVIDE_TOKEN);\n if (!this.outletEl) this.outletEl = await ctx!.hostElement.query(\"#router-view\");\n const outlet = this.outletEl;\n if (!outlet) return;\n\n // guards BEFORE anything heavy\n const guarded = await this.beforeRouteGoing(\n { url: path, path, name: matched.route.name },\n component.inject(ACTIVE_ROUTE_TOKEN) as any\n );\n if (guarded) {\n if (typeof guarded === 'object' && 'name' in guarded) {\n this.push({ name: guarded.name, params: guarded.params });\n }\n return;\n }\n\n component.provide(ACTIVE_ROUTE_TOKEN, { params: matched.params, query: matched.query });\n\n const cacheKey = matched.route.name;\n const cached = this.keepAlive.get(cacheKey);\n\n // current host & instance\n const currentChildren = await outlet.childNodes();\n const currentHost = currentChildren[currentChildren.length - 1] ?? null;\n const currentInst = currentHost ? ctx!.getMountedComponent(currentHost) ?? null : null;\n\n const mode = this.getNavMode(); // 'push' or 'pop'\n\n let nextHost: ODOM.OElement;\n let nextInst: OComponent;\n\n if (cached) {\n // --- CACHED PATH ---\n nextHost = cached.host;\n nextInst = cached.inst!;\n\n // ensure cached host is attached and on top\n const ops = outlet.updates();\n if (!currentChildren.some(c => c.uid === nextHost.uid)) {\n ops.add(() => outlet.appendChild(nextHost));\n } else {\n // ensure it's last child => on top (for push) or at least present (for pop)\n ops.add(() => outlet.appendChild(nextHost));\n }\n // ops.add(() => currentHost.addClass('route-hidden'));\n ops.add(() => nextHost.removeClass('route-hidden'));\n await ops.exec();\n\n await Promise.all([\n cached.ctx.updateBindings(),\n cached.ctx.updateDirectives()\n ]);\n } else {\n // --- COLD PATH ---\n const staging = (await OUID.createElement('div', { class: 'route-view route-hidden' }))!;\n await outlet.appendChild(staging);\n\n const instance = await ctx!.mountComponent<any, any>(staging, matched.route.component!, ctx!);\n nextHost = staging;\n nextInst = instance;\n\n this.keepAlive.set(cacheKey, { host: staging, ctx: ctx!, inst: instance });\n\n // trim keepAlive if needed\n if (this.keepAlive.size > this.keepAliveLimit) {\n const firstKey = this.keepAlive.keys().next().value;\n if (firstKey) {\n const victim = this.keepAlive.get(firstKey)!;\n deactivate(victim.inst);\n await ctx!.unmountComponent(victim.host);\n await victim.host.removeAndRelease();\n this.keepAlive.delete(firstKey);\n }\n }\n }\n\n // --- RUN ANIMATION ---\n if (mode === 'push') {\n console.log('Push animation: ' + currentHost !== null, currentHost)\n // current stays, next slides on top\n await this.runTransitionPush(outlet, currentHost, nextHost);\n } else if (mode === 'pop') {\n // previous is nextHost (already attached), current slides away\n if (currentHost) {\n await this.runTransitionPop(outlet, currentHost, nextHost);\n }\n }\n\n // --- LIFECYCLE & CLEANUP ---\n\n // decide if currentHost stays in keepAlive or is removed\n if (currentHost && currentInst && currentHost.uid !== nextHost.uid) {\n const isKept = [...this.keepAlive.values()].some(v => v.host.uid === currentHost.uid);\n if (!isKept) {\n deactivate(currentInst);\n await ctx!.unmountComponent(currentHost);\n await currentHost.removeAndRelease();\n } else {\n // still in cache, now hidden\n deactivate(currentInst);\n }\n }\n\n activate(nextInst);\n\n await this.afterRouteGoing(\n { url: path, path, name: matched.route.name },\n component.inject(ACTIVE_ROUTE_TOKEN) as any\n );\n\n await deferMicro();\n };\n\n const run = async (event: any) => {\n if (this.pendingNav) return this.pendingNav;\n this.pendingNav = (async () => {\n try {\n const state = event?.state || await this.windowObject!.getProperty('history.state');\n\n let newIndex = 0;\n if (state && typeof state.navIndex === 'number') {\n newIndex = state.navIndex;\n }\n\n if (newIndex > this.historyIndex) {\n this.lastDirection = 'forward';\n } else if (newIndex < this.historyIndex) {\n this.lastDirection = 'back';\n } else {\n this.lastDirection = 'none';\n }\n\n this.historyIndex = newIndex;\n await handler(); \n } finally { this.pendingNav = null; }\n })();\n return this.pendingNav;\n };\n\n const path = (await this.windowObject!.getProperty<string>('location.pathname'))!;\n const state = await this.windowObject!.getProperty<any>('history.state');\n if (!state || typeof state.navIndex !== 'number') {\n await this.windowObject!.invoke('history.replaceState', { navIndex: this.historyIndex }, '', path);\n }\n\n const id = await this.windowObject!.addEventListener('popstate', run);\n this.eventRegistration = id;\n return handler;\n }\n\n unbind() {\n if (this.eventRegistration) {\n this.windowObject?.dettachEventListener(this.eventRegistration)\n }\n }\n private async runTransitionPush(\n outlet: ODOM.OElement,\n currentHost: ODOM.OElement | null,\n nextHost: ODOM.OElement\n ) {\n if(!currentHost) {\n // no animation, just show\n const cleanup = nextHost.updates();\n await cleanup\n .removeClass('route-hidden', 'route-transitioning', 'route-push-start')\n .addClass('route-view', 'route-push-end').exec()\n return\n }\n const baseOps = nextHost.updates();\n baseOps.addClass('route-view');\n if (currentHost) baseOps.add(() => currentHost.addClass('route-view'));\n // currentHost stays as-is, visible; nextHost starts off-screen\n baseOps.removeClass('route-hidden', 'route-push-end', 'route-pop-end').addClass('route-push-start');\n await baseOps.exec();\n \n // let CSS see starting transform\n \n await deferMacro();\n const animOps = nextHost.updates();\n animOps.addClass('route-transitioning')\n .removeClass('route-push-start')\n .addClass('route-push-end'); // 100% -> 0\n\n await animOps.exec();\n\n await delay(ROUTE_SLIDE_DURATION + 40);\n\n // cleanup\n const cleanup = nextHost.updates();\n cleanup.removeClass('route-transitioning', 'route-push-start')\n cleanup.add(() => currentHost?.addClass('route-hidden'))\n await cleanup.exec();\n }\n\n private async runTransitionPop(\n outlet: ODOM.OElement,\n currentHost: ODOM.OElement,\n previousHost: ODOM.OElement\n ) {\n const baseOps = currentHost.updates();\n baseOps.addClass('route-view')\n baseOps.add(() => previousHost.updates().addClass('route-view').removeClass('route-hidden').exec());\n // current starts at 0, will go to 100%\n baseOps.addClass('route-pop-start').removeClass('route-push-end', 'route-pop-end');\n await baseOps.exec();\n\n await deferMicro();\n // await delay(ROUTE_SLIDE_DURATION + 100);\n\n const animOps = currentHost.updates();\n animOps.addClass('route-transitioning');\n animOps.removeClass('route-pop-start').addClass('route-pop-end'); // 0 -> 100%\n await animOps.exec();\n\n await delay(ROUTE_SLIDE_DURATION + 40);\n\n const cleanup = currentHost.updates();\n cleanup.addClass('route-hidden').removeClass('route-transitioning', 'route-pop-start');\n await cleanup.exec();\n }\n private getNavMode(): NavMode {\n return this.lastDirection === 'back' ? 'pop' : 'push';\n }\n beforeEach(fn: RouteGaurdFunction): (() => void) {\n const guard = {\n fn,\n type: 'before'\n } as RouteGuard\n this.guards.push(guard)\n return () => {\n this.guards.splice(this.guards.indexOf(guard))\n }\n }\n afterEach(fn: RouteGaurdFunction): (() => void) {\n const guard = {\n fn,\n type: 'after'\n } as RouteGuard\n this.guards.push(guard)\n return () => {\n this.guards.splice(this.guards.indexOf(guard))\n }\n }\n\n}","import { OComponent, RenderNode, StyleData } from \"../component\";\nimport { RenderContext } from \"../context\";\n\n\nexport class OIcon extends OComponent {\n render(_: RenderContext): RenderNode {\n return RenderNode.of(`<i class=\"o-icon\"><slot></slot></i>`)\n }\n style(): StyleData | null {\n return StyleData.of({\n 'i': `\n display: inline-block;\n width: 1em;\n height: 1em;\n vertical-align: -0.15em;\n overflow: hidden;\n `\n })\n }\n} \n\n","import { componentsRegistry } from './src/registry'\nimport { OComponent } from './src/component'\n\nexport * from './src/component'\nexport * from './src/app'\nexport * from './src/emits'\nexport * from './src/state'\nexport * from './src/context'\nexport * from './src/router/Router'\nexport * from './src/interfaces/bridge'\nexport * from './src/components/Icon'\n\nexport function components(): Record<string, OComponent<any, any>> {\n const arr = componentsRegistry.getAll()\n return arr.reduce((acc, [key, value]) => {\n acc[key] = value\n return acc\n }, {} as Record<string, any>)\n}\n"]}