@taiga-ui/cdk
Version:
Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance
1 lines • 8.46 kB
Source Map (JSON)
{"version":3,"file":"taiga-ui-cdk-directives-animated.mjs","sources":["../../../projects/cdk/directives/animated/animated.directive.ts","../../../projects/cdk/directives/animated/animated-parent.directive.ts","../../../projects/cdk/directives/animated/taiga-ui-cdk-directives-animated.ts"],"sourcesContent":["import {\n afterNextRender,\n ApplicationRef,\n Directive,\n inject,\n type OnDestroy,\n ViewContainerRef,\n} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\nexport const TUI_ENTER = 'tui-enter';\nexport const TUI_LEAVE = 'tui-leave';\n\n@Directive({\n standalone: true,\n selector: '[tuiAnimated]',\n host: {\n class: TUI_ENTER,\n '(animationend.self)': 'remove()',\n '(animationcancel.self)': 'remove()',\n },\n})\nexport class TuiAnimated implements OnDestroy {\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 private readonly app = inject(ApplicationRef);\n\n constructor() {\n afterNextRender(() => this.remove());\n\n if (!this.renderer) {\n return;\n }\n\n // delegate is used in Angular Animations renderer\n const renderer = this.renderer.delegate || this.renderer;\n const {removeChild, data} = renderer;\n\n if (data[TUI_LEAVE]) {\n data[TUI_LEAVE].push(this.el);\n\n return;\n }\n\n data[TUI_LEAVE] = [this.el];\n\n afterNextRender(() => {\n renderer.removeChild = (parent: Node, el: Node, host?: boolean) => {\n const remove = (): void => removeChild.call(renderer, parent, el, host);\n const elements: Element[] = data[TUI_LEAVE];\n const element = elements.find((leave) => el.contains(leave));\n\n if (!element) {\n remove();\n\n return;\n }\n\n element.classList.remove(TUI_ENTER);\n\n const {length} = element.getAnimations?.() || [];\n\n element.classList.add(TUI_LEAVE);\n\n const animations = element.getAnimations?.() ?? [];\n const last = animations[animations.length - 1];\n const finish = (): void => {\n if (!parent || parent.contains(el)) {\n remove();\n this.app.tick();\n }\n };\n\n if (animations.length > length && last) {\n last.onfinish = finish;\n last.oncancel = finish;\n } else {\n remove();\n }\n };\n });\n }\n\n public ngOnDestroy(): void {\n const data = this.renderer?.data || {[TUI_LEAVE]: []};\n\n setTimeout(() => {\n data[TUI_LEAVE] = data[TUI_LEAVE].filter((e: Element) => e !== this.el);\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","import {Directive, inject, Renderer2} from '@angular/core';\nimport {\n provideMutationObserverInit,\n WaMutationObserver,\n} from '@ng-web-apis/mutation-observer';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {TUI_ENTER, TUI_LEAVE, TuiAnimated} from './animated.directive';\n\n@Directive({\n standalone: true,\n selector: '[tuiAnimatedParent]',\n providers: [provideMutationObserverInit({childList: true})],\n hostDirectives: [\n TuiAnimated,\n {\n directive: WaMutationObserver,\n outputs: ['waMutationObserver'],\n },\n ],\n host: {\n '(waMutationObserver)': 'handle()',\n },\n})\nexport class TuiAnimatedParent {\n private readonly el = tuiInjectElement();\n private readonly renderer = inject(Renderer2);\n\n protected handle(): void {\n this.el.classList.remove(TUI_ENTER);\n this.renderer.data[TUI_LEAVE] = Array.from(this.el.children);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.TuiAnimated"],"mappings":"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"}