{"version":3,"file":"taiga-ui-cdk-directives-animated.mjs","sources":["../../../projects/cdk/directives/animated/animated.directive.ts","../../../projects/cdk/directives/animated/taiga-ui-cdk-directives-animated.ts"],"sourcesContent":["import {isPlatformBrowser} from '@angular/common';\nimport {\n    afterNextRender,\n    Directive,\n    inject,\n    PLATFORM_ID,\n    type Renderer2,\n    ViewContainerRef,\n} from '@angular/core';\nimport {tuiInjectElement, tuiIsElement} from '@taiga-ui/cdk/utils/dom';\n\nexport const TUI_ENTER = 'tui-enter';\nexport const TUI_LEAVE = 'tui-leave';\n\n@Directive({\n    selector: '[tuiAnimated]',\n    host: {\n        class: TUI_ENTER,\n        '(animationend.self)': 'remove()',\n        '(animationcancel.self)': 'remove()',\n    },\n})\nexport class TuiAnimated {\n    // @ts-ignore https://github.com/angular/angular/blob/main/packages/core/src/render3/interfaces/view.ts#L56\n    private readonly renderer = inject(ViewContainerRef)._hostLView?.[11];\n    private readonly el = tuiInjectElement();\n\n    constructor() {\n        afterNextRender(() => this.remove());\n\n        if (this.renderer && isPlatformBrowser(inject(PLATFORM_ID))) {\n            // delegate is used in Angular Animations renderer\n            wrap(this.renderer.delegate || this.renderer);\n        }\n    }\n\n    protected remove(): void {\n        if (this.el.isConnected && !this.el.getAnimations?.().length) {\n            this.el.classList.remove(TUI_ENTER);\n        }\n    }\n}\n\nfunction wrap(renderer: Renderer2): void {\n    if (renderer.data[TUI_LEAVE]) {\n        return;\n    }\n\n    const {removeChild} = renderer;\n\n    renderer.data[TUI_LEAVE] = true;\n\n    renderer.removeChild = (parent: Node, el: Node, host?: boolean): void => {\n        if (!tuiIsElement(el)) {\n            removeChild.call(renderer, parent, el, host);\n\n            return;\n        }\n\n        el.classList.remove(TUI_ENTER);\n\n        const {length} = el.getAnimations?.() || [];\n\n        el.classList.add(TUI_LEAVE);\n\n        const animations = el.getAnimations?.() ?? [];\n        const last = animations[animations.length - 1];\n        const finish = (): void => {\n            if (!parent || parent.contains(el)) {\n                removeChild.call(renderer, parent, el, host);\n            }\n        };\n\n        if (animations.length > length && last) {\n            last.onfinish = finish;\n            last.oncancel = finish;\n        } else {\n            finish();\n        }\n    };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}