{"version":3,"file":"primeng-motion.mjs","sources":["../../src/motion/motion.utils.ts","../../src/motion/style/motion.style.ts","../../src/motion/motion.component.ts","../../src/motion/motion.directive.ts","../../src/motion/motion.module.ts","../../src/motion/primeng-motion.ts"],"sourcesContent":["const originalStyles = new WeakMap<HTMLElement, { display?: string; visibility?: string; maxHeight?: string; overflow?: string }>();\n\nexport function applyHiddenStyles(element: HTMLElement, strategy: 'display' | 'visibility') {\n    if (!element) return;\n\n    if (!originalStyles.has(element)) {\n        originalStyles.set(element, {\n            display: element.style.display,\n            visibility: element.style.visibility,\n            maxHeight: element.style.maxHeight,\n            overflow: element.style.overflow\n        });\n    }\n\n    switch (strategy) {\n        case 'display':\n            element.style.display = 'none';\n            break;\n        case 'visibility':\n            element.style.visibility = 'hidden';\n            element.style.maxHeight = '0';\n            element.style.overflow = 'hidden';\n            break;\n    }\n}\n\nexport function resetStyles(element: HTMLElement, strategy: 'display' | 'visibility') {\n    if (!element) return;\n\n    const original = originalStyles.get(element) ?? element.style;\n\n    switch (strategy) {\n        case 'display':\n            element.style.display = original?.display || '';\n            break;\n        case 'visibility':\n            element.style.visibility = original?.visibility || '';\n            element.style.maxHeight = original?.maxHeight || '';\n            element.style.overflow = original?.overflow || '';\n            break;\n    }\n\n    originalStyles.delete(element);\n}\n","import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst style = /*css*/ `\n    .p-motion {\n        display: block;\n    }\n`;\n\nconst classes = {\n    root: 'p-motion'\n};\n\n@Injectable()\nexport class MotionStyle extends BaseStyle {\n    name = 'motion';\n\n    style = style;\n\n    classes = classes;\n}\n\n/**\n *\n * Motion and MotionDirective provide an easy way to add motion effects to Angular applications.\n *\n * [Live Demo](https://www.primeng.org/motion)\n *\n * @module motionstyle\n *\n */\nexport enum MotionClasses {\n    /**\n     * Class name of the root element\n     */\n    root = 'p-motion'\n}\n\nexport interface MotionStyle extends BaseStyle {}\n","import { CommonModule } from '@angular/common';\nimport { afterRenderEffect, Component, computed, effect, inject, InjectionToken, input, output, signal, untracked } from '@angular/core';\nimport { type ClassNameOptions, createMotion, resolveDuration, type MotionEvent, type MotionInstance, type MotionOptions, type MotionPhase } from '@primeuix/motion';\nimport { nextFrame } from '@primeuix/utils';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport type { MotionPassThrough } from 'primeng/types/motion';\nimport { applyHiddenStyles, resetStyles } from './motion.utils';\nimport { MotionStyle } from './style/motion.style';\n\nconst MOTION_INSTANCE = new InjectionToken<Motion>('MOTION_INSTANCE');\n\n/**\n * Motion component is a container to apply motion effects to its content.\n * @group Components\n */\n@Component({\n    selector: 'p-motion',\n    standalone: true,\n    imports: [CommonModule, BindModule],\n    template: `\n        @if (rendered()) {\n            <ng-content />\n        }\n    `,\n    providers: [MotionStyle, { provide: MOTION_INSTANCE, useExisting: Motion }, { provide: PARENT_INSTANCE, useExisting: Motion }],\n    host: {\n        '[class]': \"cx('root')\"\n    },\n    hostDirectives: [Bind]\n})\nexport class Motion extends BaseComponent<MotionPassThrough> {\n    $pcMotion: Motion | undefined = inject(MOTION_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    onAfterViewChecked(): void {\n        const options = this.options() as any;\n        const optionsAttrs = options?.root || {};\n        this.bindDirectiveInstance.setAttrs({ ...this.ptms(['host', 'root']), ...optionsAttrs });\n    }\n\n    _componentStyle = inject(MotionStyle);\n\n    /******************** Inputs ********************/\n\n    /**\n     * Whether the element is visible or not.\n     * @group Props\n     */\n    visible = input<boolean>(false);\n    /**\n     * Whether to mount the element on enter.\n     * @group Props\n     */\n    mountOnEnter = input<boolean>(true);\n    /**\n     * Whether to unmount the element on leave.\n     * @group Props\n     */\n    unmountOnLeave = input<boolean>(true);\n    /**\n     * The name of the motion. It can be a predefined motion name or a custom one.\n     * phases:\n     *     [name]-enter\n     *     [name]-enter-active\n     *     [name]-enter-to\n     *     [name]-leave\n     *     [name]-leave-active\n     *     [name]-leave-to\n     * @group Props\n     */\n    name = input<MotionOptions['name']>(undefined);\n    /**\n     * The type of the motion, valid values 'transition' and 'animation'.\n     * @group Props\n     */\n    type = input<MotionOptions['type']>(undefined);\n    /**\n     * Whether the motion is safe.\n     * @group Props\n     */\n    safe = input<MotionOptions['safe']>(undefined);\n    /**\n     * Whether the motion is disabled.\n     * @group Props\n     */\n    disabled = input<MotionOptions['disabled']>(false);\n    /**\n     * Whether the motion should appear.\n     * @group Props\n     */\n    appear = input<MotionOptions['appear']>(false);\n    /**\n     * Whether the motion should enter.\n     * @group Props\n     */\n    enter = input<MotionOptions['enter']>(true);\n    /**\n     * Whether the motion should leave.\n     * @group Props\n     */\n    leave = input<MotionOptions['leave']>(true);\n    /**\n     * The duration of the motion.\n     * @group Props\n     */\n    duration = input<MotionOptions['duration']>(undefined);\n    /**\n     * The hide strategy of the motion, valid values 'display' and 'visibility'.\n     * @group Props\n     */\n    hideStrategy = input<'display' | 'visibility'>('display');\n    /**\n     * The enter from class of the motion.\n     * @group Props\n     */\n    enterFromClass = input<ClassNameOptions['from']>(undefined);\n    /**\n     * The enter to class of the motion.\n     * @group Props\n     */\n    enterToClass = input<ClassNameOptions['to']>(undefined);\n    /**\n     * The enter active class of the motion.\n     * @group Props\n     */\n    enterActiveClass = input<ClassNameOptions['active']>(undefined);\n    /**\n     * The leave from class of the motion.\n     * @group Props\n     */\n    leaveFromClass = input<ClassNameOptions['from']>(undefined);\n    /**\n     * The leave to class of the motion.\n     * @group Props\n     */\n    leaveToClass = input<ClassNameOptions['to']>(undefined);\n    /**\n     * The leave active class of the motion.\n     * @group Props\n     */\n    leaveActiveClass = input<ClassNameOptions['active']>(undefined);\n\n    /******************** All Inputs ********************/\n\n    /**\n     * The motion options.\n     * @group Props\n     */\n    options = input<MotionOptions>({});\n\n    /******************** Outputs ********************/\n\n    /**\n     * Callback fired before the enter transition/animation starts.\n     * @param {MotionEvent} [event] - The event object containing details about the motion.\n     * @param {Element} event.element - The element being transitioned/animated.\n     * @group Emits\n     */\n    onBeforeEnter = output<MotionEvent | undefined>();\n    /**\n     * Callback fired when the enter transition/animation starts.\n     * @param {MotionEvent} [event] - The event object containing details about the motion.\n     * @param {Element} event.element - The element being transitioned/animated.\n     * @group Emits\n     */\n    onEnter = output<MotionEvent | undefined>();\n    /**\n     * Callback fired after the enter transition/animation ends.\n     * @param {MotionEvent} [event] - The event object containing details about the motion.\n     * @param {Element} event.element - The element being transitioned/animated.\n     * @group Emits\n     */\n    onAfterEnter = output<MotionEvent | undefined>();\n    /**\n     * Callback fired when the enter transition/animation is cancelled.\n     * @param {MotionEvent} [event] - The event object containing details about the motion.\n     * @param {Element} event.element - The element being transitioned/animated.\n     * @group Emits\n     */\n    onEnterCancelled = output<MotionEvent | undefined>();\n    /**\n     * Callback fired before the leave transition/animation starts.\n     * @param {MotionEvent} [event] - The event object containing details about the motion.\n     * @param {Element} event.element - The element being transitioned/animated.\n     * @group Emits\n     */\n    onBeforeLeave = output<MotionEvent | undefined>();\n    /**\n     * Callback fired when the leave transition/animation starts.\n     * @param {MotionEvent} [event] - The event object containing details about the motion.\n     * @param {Element} event.element - The element being transitioned/animated.\n     * @group Emits\n     */\n    onLeave = output<MotionEvent | undefined>();\n    /**\n     * Callback fired after the leave transition/animation ends.\n     * @param {MotionEvent} [event] - The event object containing details about the motion.\n     * @param {Element} event.element - The element being transitioned/animated.\n     * @group Emits\n     */\n    onAfterLeave = output<MotionEvent | undefined>();\n    /**\n     * Callback fired when the leave transition/animation is cancelled.\n     * @param {MotionEvent} [event] - The event object containing details about the motion.\n     * @param {Element} event.element - The element being transitioned/animated.\n     * @group Emits\n     */\n    onLeaveCancelled = output<MotionEvent | undefined>();\n\n    /******************** Computed ********************/\n\n    private motionOptions = computed<MotionOptions>(() => {\n        const options = this.options();\n\n        return {\n            name: options.name ?? this.name(),\n            type: options.type ?? this.type(),\n            safe: options.safe ?? this.safe(),\n            disabled: options.disabled ?? this.disabled(),\n            appear: false,\n            enter: options.enter ?? this.enter(),\n            leave: options.leave ?? this.leave(),\n            duration: options.duration ?? this.duration(),\n            enterClass: {\n                from: options.enterClass?.from ?? (!options.name ? this.enterFromClass() : undefined),\n                to: options.enterClass?.to ?? (!options.name ? this.enterToClass() : undefined),\n                active: options.enterClass?.active ?? (!options.name ? this.enterActiveClass() : undefined)\n            },\n            leaveClass: {\n                from: options.leaveClass?.from ?? (!options.name ? this.leaveFromClass() : undefined),\n                to: options.leaveClass?.to ?? (!options.name ? this.leaveToClass() : undefined),\n                active: options.leaveClass?.active ?? (!options.name ? this.leaveActiveClass() : undefined)\n            },\n            onBeforeEnter: options.onBeforeEnter ?? this.handleBeforeEnter,\n            onEnter: options.onEnter ?? this.handleEnter,\n            onAfterEnter: options.onAfterEnter ?? this.handleAfterEnter,\n            onEnterCancelled: options.onEnterCancelled ?? this.handleEnterCancelled,\n            onBeforeLeave: options.onBeforeLeave ?? this.handleBeforeLeave,\n            onLeave: options.onLeave ?? this.handleLeave,\n            onAfterLeave: options.onAfterLeave ?? this.handleAfterLeave,\n            onLeaveCancelled: options.onLeaveCancelled ?? this.handleLeaveCancelled\n        };\n    });\n\n    private motion: MotionInstance | undefined;\n    private isInitialMount = true;\n    private cancelled = false;\n    private destroyed = false;\n\n    rendered = signal(false);\n\n    private readonly handleBeforeEnter = (event?: MotionEvent) => !this.destroyed && this.onBeforeEnter.emit(event);\n    private readonly handleEnter = (event?: MotionEvent) => !this.destroyed && this.onEnter.emit(event);\n    private readonly handleAfterEnter = (event?: MotionEvent) => !this.destroyed && this.onAfterEnter.emit(event);\n    private readonly handleEnterCancelled = (event?: MotionEvent) => !this.destroyed && this.onEnterCancelled.emit(event);\n    private readonly handleBeforeLeave = (event?: MotionEvent) => !this.destroyed && this.onBeforeLeave.emit(event);\n    private readonly handleLeave = (event?: MotionEvent) => !this.destroyed && this.onLeave.emit(event);\n    private readonly handleAfterLeave = (event?: MotionEvent) => !this.destroyed && this.onAfterLeave.emit(event);\n    private readonly handleLeaveCancelled = (event?: MotionEvent) => !this.destroyed && this.onLeaveCancelled.emit(event);\n\n    constructor() {\n        super();\n\n        effect(() => {\n            const hideStrategy = this.hideStrategy();\n\n            if (this.isInitialMount) {\n                applyHiddenStyles(this.$el, hideStrategy);\n                this.rendered.set((this.visible() && this.mountOnEnter()) || !this.mountOnEnter());\n            } else if (this.visible() && !this.rendered()) {\n                applyHiddenStyles(this.$el, hideStrategy);\n                this.rendered.set(true);\n            }\n        });\n\n        effect(() => {\n            if (!this.motion) {\n                this.motion = createMotion(this.$el, this.motionOptions());\n            } else {\n                // @todo: Update motion options method to update options dynamically\n                //this.motion.update(this.$el, this.motionOptions());\n            }\n        });\n\n        afterRenderEffect(async () => {\n            if (!this.$el) return;\n\n            const shouldAppear = this.isInitialMount && this.visible() && this.appear();\n            const hideStrategy = this.hideStrategy();\n\n            if (this.visible()) {\n                await nextFrame();\n                resetStyles(this.$el, hideStrategy);\n\n                if (shouldAppear || !this.isInitialMount) {\n                    this.applyMotionDuration('enter');\n                    this.motion?.enter();\n                }\n            } else if (!this.isInitialMount) {\n                await nextFrame();\n                this.applyMotionDuration('leave');\n                this.motion?.leave()?.then(async () => {\n                    if (this.$el && !this.cancelled && !this.visible()) {\n                        applyHiddenStyles(this.$el, hideStrategy);\n\n                        if (this.unmountOnLeave()) {\n                            await nextFrame();\n                            if (!this.cancelled) {\n                                this.rendered.set(false);\n                            }\n                        }\n                    }\n                });\n            }\n\n            this.isInitialMount = false;\n        });\n    }\n\n    private applyMotionDuration(phase: MotionPhase): void {\n        const options = untracked(this.motionOptions);\n        const ms = resolveDuration(options.duration, phase);\n\n        if (ms == null || !this.$el) return;\n\n        const el = this.$el as HTMLElement;\n        const durationValue = `${ms}ms`;\n\n        if (options.type === 'transition') {\n            el.style.transitionDuration = durationValue;\n        } else {\n            el.style.animationDuration = durationValue;\n        }\n    }\n\n    onDestroy(): void {\n        this.destroyed = true;\n        this.cancelled = true;\n\n        this.motion?.cancel();\n        this.motion = undefined;\n\n        resetStyles(this.$el, this.hideStrategy());\n\n        this.$el?.remove();\n\n        this.isInitialMount = true;\n    }\n}\n","import { afterRenderEffect, computed, Directive, effect, inject, InjectionToken, input, output, untracked } from '@angular/core';\nimport { createMotion, resolveDuration, type ClassNameOptions, type MotionEvent, type MotionInstance, type MotionOptions, type MotionPhase } from '@primeuix/motion';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { applyHiddenStyles, resetStyles } from './motion.utils';\nimport { MotionStyle } from './style/motion.style';\n\nconst MOTION_DIRECTIVE_INSTANCE = new InjectionToken<MotionDirective>('MOTION_DIRECTIVE_INSTANCE');\n\n/**\n * Motion Directive is directive to apply motion effects to elements.\n * @group Components\n */\n@Directive({\n    selector: '[pMotion]',\n    standalone: true,\n    providers: [MotionStyle, { provide: MOTION_DIRECTIVE_INSTANCE, useExisting: MotionDirective }, { provide: PARENT_INSTANCE, useExisting: MotionDirective }]\n})\nexport class MotionDirective extends BaseComponent {\n    $pcMotionDirective: MotionDirective | undefined = inject(MOTION_DIRECTIVE_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n    /******************** Inputs ********************/\n\n    /**\n     * Whether the element is visible or not.\n     * @group Props\n     */\n    visible = input<boolean>(false, { alias: 'pMotion' });\n    /**\n     * The name of the motion. It can be a predefined motion name or a custom one.\n     * phases:\n     *     [name]-enter\n     *     [name]-enter-active\n     *     [name]-enter-to\n     *     [name]-leave\n     *     [name]-leave-active\n     *     [name]-leave-to\n     * @group Props\n     */\n    name = input<MotionOptions['name']>(undefined, { alias: 'pMotionName' });\n    /**\n     * The type of the motion, valid values 'transition' and 'animation'.\n     * @group Props\n     */\n    type = input<MotionOptions['type']>(undefined, { alias: 'pMotionType' });\n    /**\n     * Whether the motion is safe.\n     * @group Props\n     */\n    safe = input<MotionOptions['safe']>(undefined, { alias: 'pMotionSafe' });\n    /**\n     * Whether the motion is disabled.\n     * @group Props\n     */\n    disabled = input<MotionOptions['disabled']>(false, { alias: 'pMotionDisabled' });\n    /**\n     * Whether the motion should appear.\n     * @group Props\n     */\n    appear = input<MotionOptions['appear']>(false, { alias: 'pMotionAppear' });\n    /**\n     * Whether the motion should enter.\n     * @group Props\n     */\n    enter = input<MotionOptions['enter']>(true, { alias: 'pMotionEnter' });\n    /**\n     * Whether the motion should leave.\n     * @group Props\n     */\n    leave = input<MotionOptions['leave']>(true, { alias: 'pMotionLeave' });\n    /**\n     * The duration of the motion.\n     * @group Props\n     */\n    duration = input<MotionOptions['duration']>(undefined, { alias: 'pMotionDuration' });\n    /**\n     * The hide strategy of the motion, valid values 'display' and 'visibility'.\n     * @group Props\n     */\n    hideStrategy = input<'display' | 'visibility'>('display', { alias: 'pMotionHideStrategy' });\n    /**\n     * The enter from class of the motion.\n     * @group Props\n     */\n    enterFromClass = input<ClassNameOptions['from']>(undefined, { alias: 'pMotionEnterFromClass' });\n    /**\n     * The enter to class of the motion.\n     * @group Props\n     */\n    enterToClass = input<ClassNameOptions['to']>(undefined, { alias: 'pMotionEnterToClass' });\n    /**\n     * The enter active class of the motion.\n     * @group Props\n     */\n    enterActiveClass = input<ClassNameOptions['active']>(undefined, { alias: 'pMotionEnterActiveClass' });\n    /**\n     * The leave from class of the motion.\n     * @group Props\n     */\n    leaveFromClass = input<ClassNameOptions['from']>(undefined, { alias: 'pMotionLeaveFromClass' });\n    /**\n     * The leave to class of the motion.\n     * @group Props\n     */\n    leaveToClass = input<ClassNameOptions['to']>(undefined, { alias: 'pMotionLeaveToClass' });\n    /**\n     * The leave active class of the motion.\n     * @group Props\n     */\n    leaveActiveClass = input<ClassNameOptions['active']>(undefined, { alias: 'pMotionLeaveActiveClass' });\n\n    /******************** All Inputs ********************/\n\n    /**\n     * The motion options.\n     * @group Props\n     */\n    options = input<MotionOptions>({}, { alias: 'pMotionOptions' });\n\n    /******************** Outputs ********************/\n\n    /**\n     * Callback fired before the enter transition/animation starts.\n     * @param {MotionEvent} [event] - The event object containing details about the motion.\n     * @param {Element} event.element - The element being transitioned/animated.\n     * @group Emits\n     */\n    onBeforeEnter = output<MotionEvent | undefined>({ alias: 'pMotionOnBeforeEnter' });\n    /**\n     * Callback fired when the enter transition/animation starts.\n     * @param {MotionEvent} [event] - The event object containing details about the motion.\n     * @param {Element} event.element - The element being transitioned/animated.\n     * @group Emits\n     */\n    onEnter = output<MotionEvent | undefined>({ alias: 'pMotionOnEnter' });\n    /**\n     * Callback fired after the enter transition/animation ends.\n     * @param {MotionEvent} [event] - The event object containing details about the motion.\n     * @param {Element} event.element - The element being transitioned/animated.\n     * @group Emits\n     */\n    onAfterEnter = output<MotionEvent | undefined>({ alias: 'pMotionOnAfterEnter' });\n    /**\n     * Callback fired when the enter transition/animation is cancelled.\n     * @param {MotionEvent} [event] - The event object containing details about the motion.\n     * @param {Element} event.element - The element being transitioned/animated.\n     * @group Emits\n     */\n    onEnterCancelled = output<MotionEvent | undefined>({ alias: 'pMotionOnEnterCancelled' });\n    /**\n     * Callback fired before the leave transition/animation starts.\n     * @param {MotionEvent} [event] - The event object containing details about the motion.\n     * @param {Element} event.element - The element being transitioned/animated.\n     * @group Emits\n     */\n    onBeforeLeave = output<MotionEvent | undefined>({ alias: 'pMotionOnBeforeLeave' });\n    /**\n     * Callback fired when the leave transition/animation starts.\n     * @param {MotionEvent} [event] - The event object containing details about the motion.\n     * @param {Element} event.element - The element being transitioned/animated.\n     * @group Emits\n     */\n    onLeave = output<MotionEvent | undefined>({ alias: 'pMotionOnLeave' });\n    /**\n     * Callback fired after the leave transition/animation ends.\n     * @param {MotionEvent} [event] - The event object containing details about the motion.\n     * @param {Element} event.element - The element being transitioned/animated.\n     * @group Emits\n     */\n    onAfterLeave = output<MotionEvent | undefined>({ alias: 'pMotionOnAfterLeave' });\n    /**\n     * Callback fired when the leave transition/animation is cancelled.\n     * @param {MotionEvent} [event] - The event object containing details about the motion.\n     * @param {Element} event.element - The element being transitioned/animated.\n     * @group Emits\n     */\n    onLeaveCancelled = output<MotionEvent | undefined>({ alias: 'pMotionOnLeaveCancelled' });\n\n    /******************** Computed ********************/\n\n    private motionOptions = computed<MotionOptions>(() => {\n        const options = this.options() ?? {};\n\n        return {\n            name: options.name ?? this.name(),\n            type: options.type ?? this.type(),\n            safe: options.safe ?? this.safe(),\n            disabled: options.disabled ?? this.disabled(),\n            appear: false,\n            enter: options.enter ?? this.enter(),\n            leave: options.leave ?? this.leave(),\n            duration: options.duration ?? this.duration(),\n            enterClass: {\n                from: options.enterClass?.from ?? (!options.name ? this.enterFromClass() : undefined),\n                to: options.enterClass?.to ?? (!options.name ? this.enterToClass() : undefined),\n                active: options.enterClass?.active ?? (!options.name ? this.enterActiveClass() : undefined)\n            },\n            leaveClass: {\n                from: options.leaveClass?.from ?? (!options.name ? this.leaveFromClass() : undefined),\n                to: options.leaveClass?.to ?? (!options.name ? this.leaveToClass() : undefined),\n                active: options.leaveClass?.active ?? (!options.name ? this.leaveActiveClass() : undefined)\n            },\n            onBeforeEnter: options.onBeforeEnter ?? this.handleBeforeEnter,\n            onEnter: options.onEnter ?? this.handleEnter,\n            onAfterEnter: options.onAfterEnter ?? this.handleAfterEnter,\n            onEnterCancelled: options.onEnterCancelled ?? this.handleEnterCancelled,\n            onBeforeLeave: options.onBeforeLeave ?? this.handleBeforeLeave,\n            onLeave: options.onLeave ?? this.handleLeave,\n            onAfterLeave: options.onAfterLeave ?? this.handleAfterLeave,\n            onLeaveCancelled: options.onLeaveCancelled ?? this.handleLeaveCancelled\n        };\n    });\n\n    private motion: MotionInstance | undefined;\n    private isInitialMount = true;\n    private cancelled = false;\n    private destroyed = false;\n\n    private readonly handleBeforeEnter = (event?: MotionEvent) => !this.destroyed && this.onBeforeEnter.emit(event);\n    private readonly handleEnter = (event?: MotionEvent) => !this.destroyed && this.onEnter.emit(event);\n    private readonly handleAfterEnter = (event?: MotionEvent) => !this.destroyed && this.onAfterEnter.emit(event);\n    private readonly handleEnterCancelled = (event?: MotionEvent) => !this.destroyed && this.onEnterCancelled.emit(event);\n    private readonly handleBeforeLeave = (event?: MotionEvent) => !this.destroyed && this.onBeforeLeave.emit(event);\n    private readonly handleLeave = (event?: MotionEvent) => !this.destroyed && this.onLeave.emit(event);\n    private readonly handleAfterLeave = (event?: MotionEvent) => !this.destroyed && this.onAfterLeave.emit(event);\n    private readonly handleLeaveCancelled = (event?: MotionEvent) => !this.destroyed && this.onLeaveCancelled.emit(event);\n\n    constructor() {\n        super();\n\n        effect(() => {\n            if (!this.motion) {\n                this.motion = createMotion(this.$el, this.motionOptions());\n            } else {\n                // @todo: Update motion options method to update options dynamically\n                //this.motion.update(this.$el, this.motionOptions());\n            }\n        });\n\n        afterRenderEffect(() => {\n            if (!this.$el) return;\n\n            const shouldAppear = this.isInitialMount && this.visible() && this.appear();\n            const hideStrategy = this.hideStrategy();\n\n            if (this.visible()) {\n                resetStyles(this.$el, hideStrategy);\n\n                if (shouldAppear || !this.isInitialMount) {\n                    this.applyMotionDuration('enter');\n                    this.motion?.enter();\n                }\n            } else if (!this.isInitialMount) {\n                this.applyMotionDuration('leave');\n                this.motion?.leave()?.then(() => {\n                    if (this.$el && !this.cancelled && !this.visible()) {\n                        applyHiddenStyles(this.$el, hideStrategy);\n                    }\n                });\n            } else {\n                applyHiddenStyles(this.$el, hideStrategy);\n            }\n\n            this.isInitialMount = false;\n        });\n    }\n\n    private applyMotionDuration(phase: MotionPhase): void {\n        const options = untracked(this.motionOptions);\n        const ms = resolveDuration(options.duration, phase);\n\n        if (ms == null || !this.$el) return;\n\n        const el = this.$el as HTMLElement;\n        const durationValue = `${ms}ms`;\n\n        if (options.type === 'transition') {\n            el.style.transitionDuration = durationValue;\n        } else {\n            el.style.animationDuration = durationValue;\n        }\n    }\n\n    onDestroy(): void {\n        this.destroyed = true;\n        this.cancelled = true;\n\n        this.motion?.cancel();\n        this.motion = undefined;\n\n        resetStyles(this.$el, this.hideStrategy());\n\n        this.$el?.remove();\n\n        this.isInitialMount = true;\n    }\n}\n","import { NgModule } from '@angular/core';\nimport { Motion } from './motion.component';\nimport { MotionDirective } from './motion.directive';\n\nexport * from './motion.component';\nexport * from './motion.directive';\n\n@NgModule({\n    imports: [Motion, MotionDirective],\n    exports: [Motion, MotionDirective]\n})\nexport class MotionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}