{"version":3,"file":"index.umd.cjs","sources":["../../lib/core/dom-render/render/root-render.ts","../../lib/core/dom-render/create-root.ts","../../lib/core/create-ref.ts"],"sourcesContent":["import { keyBuilder } from \"@/common/key-builder/key-builder\";\nimport { VirtualElement } from \"@/types\";\nimport { render } from \"./core-render\";\nimport { DOM } from \"@/core/html\";\n\nexport function rootRender(\n    element: VirtualElement,\n    container: HTMLElement,\n): HTMLElement | Text {\n    const key = keyBuilder().pushRoot();\n    const dom = render(element, container, key);\n    if (dom.parentElement !== container) {\n        DOM.appendChild(container, dom);\n    }\n    return dom;\n}\n","import { setRenderedRoot, getGlobal, addRoot } from \"../global\";\nimport { render } from \"./render\";\nimport { adaptVirtualElementChild } from \"./create-element/adapt-virtual-element-child\";\nimport { observeRoot } from \"../global/global-hook-executioner\";\nimport type { Renderable } from \"../../types\";\nimport type { RootSSRMetadata } from \"../ssr/ssr.types\";\n\n\ninterface CreateRootOptions {\n    ssr?: RootSSRMetadata;\n}\n\ninterface RootElement {\n    render: (element: Renderable) => void;\n    domElement?: HTMLElement;\n}\n\ninterface RootElementWithMetadata extends RootElement {\n    id: string;\n    ssr?: RootSSRMetadata\n}\n\nfunction createRoot(domElement?: HTMLElement | null, options?: CreateRootOptions): RootElement {\n    if(!domElement) {\n        throw new Error('No root element found');\n    }\n    observeRoot(domElement);\n    const rootId = `[[r-${Object.keys(getGlobal().roots).length}]]`;\n    const root: RootElementWithMetadata = {\n        id: rootId,\n        domElement,\n        render(element: Renderable) {\n            if (!domElement) {\n                throw new Error('No root element provided');\n            }\n            setRenderedRoot(root.id);\n            render(adaptVirtualElementChild(element), domElement);\n        },\n        ssr: options?.ssr\n    };\n    addRoot(root);\n    return root;\n}\n\nexport type { RootElement, RootElementWithMetadata, CreateRootOptions };\nexport { createRoot };","import { ElementRef } from \"@/types\";\n\nfunction createRef<T = HTMLElement>(initValue?: T): ElementRef<T> {\n    return {\n        current: initValue\n    };\n}\n\nexport { createRef };"],"names":["rootRender","element","container","key","keyBuilder","dom","render","DOM","createRoot","domElement","options","observeRoot","root","getGlobal","setRenderedRoot","adaptVirtualElementChild","addRoot","createRef","initValue"],"mappings":"uPAKgB,SAAAA,EACZC,EACAC,EACkB,CACZ,MAAAC,EAAMC,aAAW,EAAE,SAAS,EAC5BC,EAAMC,EAAA,OAAOL,EAASC,EAAWC,CAAG,EACtC,OAAAE,EAAI,gBAAkBH,GAClBK,MAAA,YAAYL,EAAWG,CAAG,EAE3BA,CACX,CCOA,SAASG,EAAWC,EAAiCC,EAA0C,CAC3F,GAAG,CAACD,EACM,MAAA,IAAI,MAAM,uBAAuB,EAE3CE,EAAAA,YAAYF,CAAU,EAEtB,MAAMG,EAAgC,CAClC,GAFW,OAAO,OAAO,KAAKC,cAAY,KAAK,EAAE,MAAM,KAGvD,WAAAJ,EACA,OAAOR,EAAqB,CACxB,GAAI,CAACQ,EACK,MAAA,IAAI,MAAM,0BAA0B,EAE9CK,EAAA,gBAAgBF,EAAK,EAAE,EAChBN,EAAAS,EAAA,yBAAyBd,CAAO,EAAGQ,CAAU,CACxD,EACA,IAAKC,GAAA,YAAAA,EAAS,GAClB,EACAM,OAAAA,EAAAA,QAAQJ,CAAI,EACLA,CACX,CCxCA,SAASK,EAA2BC,EAA8B,CACvD,MAAA,CACH,QAASA,CACb,CACJ"}