{"version":3,"file":"tethys-cdk-dom.mjs","sources":["../../../cdk/dom/abstract-element-renderer.ts","../../../cdk/dom/element-renderer.ts","../../../cdk/dom/host-renderer.ts","../../../cdk/dom/stealth-view-renderer.ts","../../../cdk/dom/stealth-view-directive.ts","../../../cdk/dom/tethys-cdk-dom.ts"],"sourcesContent":["import { Renderer2, inject, RendererStyleFlags2 } from '@angular/core';\n\nexport abstract class AbstractElementRenderer {\n    private renderer = inject(Renderer2);\n\n    protected abstract element?: Element;\n\n    private classNames: string[] = [];\n\n    private get safeElement() {\n        if (!this.element) {\n            throw new Error(`Element is null, should call setElement method for ElementRenderer before update dom.`);\n        }\n        return this.element;\n    }\n\n    updateClass(classNames: string[]) {\n        if (this.classNames) {\n            this.classNames.forEach(className => {\n                if (classNames.indexOf(className) < 0) {\n                    this.removeClass(className);\n                }\n            });\n        }\n        const newClasses: string[] = [];\n        classNames.forEach(className => {\n            if (className) {\n                newClasses.push(className);\n                if (this.classNames.indexOf(className) < 0) {\n                    this.addClass(className);\n                }\n            }\n        });\n        this.classNames = newClasses;\n        return this;\n    }\n\n    updateClassByMap(classMap: Record<string, boolean>) {\n        const newClasses = [];\n        for (const key in classMap) {\n            if (classMap.hasOwnProperty(key) && classMap[key]) {\n                newClasses.push(key);\n            }\n        }\n        this.updateClass(newClasses);\n    }\n\n    addClass(className: string) {\n        this.renderer.addClass(this.safeElement, className);\n        return this;\n    }\n\n    removeClass(className: string) {\n        this.renderer.removeClass(this.safeElement, className);\n        return this;\n    }\n\n    setStyle(style: string, value: any, flags?: RendererStyleFlags2) {\n        this.renderer.setStyle(this.safeElement, style, value, flags);\n        return this;\n    }\n}\n","import { AbstractElementRenderer } from './abstract-element-renderer';\n\nexport class ElementRenderer extends AbstractElementRenderer {\n    protected element?: Element;\n\n    setElement(element: Element) {\n        this.element = element;\n    }\n\n    constructor(element?: Element) {\n        super();\n        this.element = element;\n    }\n}\n\nexport function useElementRenderer(element?: Element): ElementRenderer {\n    return new ElementRenderer(element);\n}\n","import { Injectable, inject, ElementRef } from '@angular/core';\nimport { AbstractElementRenderer } from './abstract-element-renderer';\n\n/**\n * @private\n */\n@Injectable()\nexport class HostRenderer extends AbstractElementRenderer {\n    private elementRef = inject(ElementRef);\n\n    protected get element() {\n        return this.elementRef.nativeElement;\n    }\n}\n\nexport function useHostRenderer() {\n    return new HostRenderer();\n}\n","import { ApplicationRef, DestroyRef, Directive, EmbeddedViewRef, inject, Injector, isSignal, Signal, TemplateRef } from '@angular/core';\n\nexport interface StealthViewRenderer {\n    rootNodes: Node[];\n}\n\nexport function useStealthViewRenderer(templateRefInput: Signal<TemplateRef<any>> | TemplateRef<any>): StealthViewRenderer {\n    const injector = inject(Injector);\n    const applicationRef = inject(ApplicationRef);\n    const destroyRef = inject(DestroyRef);\n\n    let embeddedViewRef!: EmbeddedViewRef<any>;\n\n    destroyRef.onDestroy(() => {\n        if (embeddedViewRef) {\n            embeddedViewRef.destroy();\n            applicationRef.detachView(embeddedViewRef);\n        }\n    });\n\n    const result = {\n        get rootNodes() {\n            if (!embeddedViewRef) {\n                const templateRef = isSignal(templateRefInput) ? templateRefInput() : templateRefInput;\n                embeddedViewRef = templateRef.createEmbeddedView({}, injector);\n                applicationRef.attachView(embeddedViewRef);\n            }\n            return embeddedViewRef.rootNodes;\n        }\n    };\n    return result;\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { useStealthViewRenderer } from './stealth-view-renderer';\n\n@Directive({\n    selector: 'ng-template[thyStealthView]',\n    exportAs: 'thyStealthView'\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class ThyStealthView {\n    private templateRef = inject(TemplateRef<any>);\n\n    private stealthViewBehavior = useStealthViewRenderer(this.templateRef);\n\n    get rootNodes() {\n        return this.stealthViewBehavior.rootNodes;\n    }\n\n    constructor() {}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}