{"version":3,"file":"ng-zorro-antd-core-animation.mjs","sources":["../../components/core/animation/animation-consts.ts","../../components/core/animation/no-animation.ts","../../components/core/animation/collapse.ts","../../components/core/animation/slide.ts","../../components/core/animation/public-api.ts","../../components/core/animation/ng-zorro-antd-core-animation.ts"],"sourcesContent":["/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport class AnimationDuration {\n  static SLOW = '0.3s'; // Modal\n  static BASE = '0.2s';\n  static FAST = '0.1s'; // Tooltip\n}\n\nexport class AnimationCurves {\n  static EASE_BASE_OUT = 'cubic-bezier(0.7, 0.3, 0.1, 1)';\n  static EASE_BASE_IN = 'cubic-bezier(0.9, 0, 0.3, 0.7)';\n  static EASE_OUT = 'cubic-bezier(0.215, 0.61, 0.355, 1)';\n  static EASE_IN = 'cubic-bezier(0.55, 0.055, 0.675, 0.19)';\n  static EASE_IN_OUT = 'cubic-bezier(0.645, 0.045, 0.355, 1)';\n  static EASE_OUT_BACK = 'cubic-bezier(0.12, 0.4, 0.29, 1.46)';\n  static EASE_IN_BACK = 'cubic-bezier(0.71, -0.46, 0.88, 0.6)';\n  static EASE_IN_OUT_BACK = 'cubic-bezier(0.71, -0.46, 0.29, 1.46)';\n  static EASE_OUT_CIRC = 'cubic-bezier(0.08, 0.82, 0.17, 1)';\n  static EASE_IN_CIRC = 'cubic-bezier(0.6, 0.04, 0.98, 0.34)';\n  static EASE_IN_OUT_CIRC = 'cubic-bezier(0.78, 0.14, 0.15, 0.86)';\n  static EASE_OUT_QUINT = 'cubic-bezier(0.23, 1, 0.32, 1)';\n  static EASE_IN_QUINT = 'cubic-bezier(0.755, 0.05, 0.855, 0.06)';\n  static EASE_IN_OUT_QUINT = 'cubic-bezier(0.86, 0, 0.07, 1)';\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport {\n  ANIMATION_MODULE_TYPE,\n  assertInInjectionContext,\n  booleanAttribute,\n  computed,\n  Directive,\n  inject,\n  input,\n  NgModule,\n  Provider,\n  signal,\n  Signal\n} from '@angular/core';\n\nexport const NZ_NO_ANIMATION_CLASS = 'nz-animate-disabled';\n\n@Directive({\n  selector: '[nzNoAnimation]',\n  exportAs: 'nzNoAnimation',\n  host: {\n    [`[class.${NZ_NO_ANIMATION_CLASS}]`]: `nzNoAnimation() || animationType === 'NoopAnimations'`\n  }\n})\nexport class NzNoAnimationDirective {\n  readonly animationType = inject(ANIMATION_MODULE_TYPE, { optional: true });\n  readonly nzNoAnimation = input(false, { transform: booleanAttribute });\n}\n\n/**\n * @deprecated Will be removed in v23, please use {@link NzNoAnimationDirective} instead.\n */\n@NgModule({\n  imports: [NzNoAnimationDirective],\n  exports: [NzNoAnimationDirective]\n})\nexport class NzNoAnimationModule {}\n\n/**\n * Returns the set of dependency-injection providers to disable animations in a context.\n */\nexport function provideNzNoAnimation(): Provider[] {\n  return [\n    {\n      provide: ANIMATION_MODULE_TYPE,\n      useValue: 'NoopAnimations'\n    }\n  ];\n}\n\nfunction _internalAnimationEnabled(): boolean {\n  return inject(ANIMATION_MODULE_TYPE, { optional: true }) !== 'NoopAnimations';\n}\n\n/**\n * If the current animation mode is `NoopAnimations`, returns the false as a signal.\n * Otherwise, returns the result of the provided getter as a computed signal.\n * @param getter A function that returns the outer logic for whether animations are enabled.\n */\nexport function isAnimationEnabled(getter: () => boolean): Signal<boolean> {\n  if (typeof ngDevMode !== 'undefined' && ngDevMode) {\n    assertInInjectionContext(isAnimationEnabled);\n  }\n\n  return _internalAnimationEnabled() ? computed(getter) : signal(false);\n}\n\n/**\n * If the current animation mode is `NoopAnimations`, returns the no-animation class as a signal.\n * Otherwise, returns the result of the provided class name getter as a computed signal.\n * @param classNameGetter A function that returns the class name string.\n */\nexport function withAnimationCheck(classNameGetter: () => string): Signal<string> {\n  if (typeof ngDevMode !== 'undefined' && ngDevMode) {\n    assertInInjectionContext(withAnimationCheck);\n  }\n\n  return _internalAnimationEnabled() ? computed(classNameGetter) : signal(NZ_NO_ANIMATION_CLASS);\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { coerceCssPixelValue } from '@angular/cdk/coercion';\nimport { AnimationCallbackEvent, Directive, effect, ElementRef, inject, Injectable, input } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { debounceTime, take } from 'rxjs/operators';\n\nimport { requestAnimationFrame } from 'ng-zorro-antd/core/polyfill';\n\nimport { isAnimationEnabled, NzNoAnimationDirective } from './no-animation';\n\nconst COLLAPSE_MOTION_CLASS = 'ant-motion-collapse';\n\n@Directive({\n  // eslint-disable-next-line @angular-eslint/directive-selector\n  selector: '[animation-collapse]',\n  host: {\n    '(transitionend)': 'onTransitionEnd($event)'\n  }\n})\nexport class NzAnimationCollapseDirective {\n  private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n  private readonly noAnimation = inject(NzNoAnimationDirective, { optional: true, host: true });\n  private readonly animationEnabled = isAnimationEnabled(() => !this.noAnimation?.nzNoAnimation());\n\n  readonly open = input<boolean>(false);\n  readonly leavedClassName = input<string>('');\n  private firstRender = true;\n\n  constructor() {\n    effect(() => {\n      const open = this.open();\n      // should skip the first rendering\n      const animationEnabled = this.animationEnabled() && !this.firstRender;\n      const element = this.elementRef.nativeElement;\n      const leavedClassName = this.leavedClassName();\n\n      if (open && leavedClassName) {\n        element.classList.remove(leavedClassName);\n      }\n\n      if (animationEnabled) {\n        /**\n         * | open  | animation stage | height | opacity |\n         * | ----  | --------------- | ------ | ------- |\n         * | true  | before          | 0            | 1 |\n         * | true  | active          | scrollHeight | 1 |\n         * | true  | end             | auto         | 1 |\n         * | false | before          | scrollHeight | 0 |\n         * | false | active          | 0            | 0 |\n         * | false | end             | 0            | 0 |\n         */\n        element.classList.add(COLLAPSE_MOTION_CLASS);\n\n        if (open) {\n          // Wait for next frame to get correct scrollHeight after removing hidden class\n          requestAnimationFrame(() => {\n            const scrollHeight = this.getActualScrollHeight(element);\n            element.style.height = coerceCssPixelValue(scrollHeight);\n            element.style.opacity = '1';\n          });\n        } else {\n          // Used for setting height to actual height when transition start\n          const scrollHeight = this.getActualScrollHeight(element);\n          element.style.height = coerceCssPixelValue(scrollHeight);\n          requestAnimationFrame(() => {\n            element.style.height = coerceCssPixelValue(0);\n            element.style.opacity = '0';\n          });\n        }\n      } else {\n        if (open) {\n          element.style.height = 'auto';\n          element.style.opacity = '1';\n        } else {\n          element.style.height = coerceCssPixelValue(0);\n          element.style.opacity = '0';\n          if (leavedClassName) {\n            element.classList.add(leavedClassName);\n          }\n        }\n      }\n\n      this.firstRender = false;\n    });\n  }\n\n  // Calculate height by summing up direct children's offsetHeight\n  // This naturally excludes collapsed nested submenus since they have height: 0\n  private getActualScrollHeight(element: HTMLElement): number {\n    return Array.from(element.children).reduce((acc, child) => acc + (child as HTMLElement).offsetHeight, 0);\n  }\n\n  protected onTransitionEnd(event: TransitionEvent): void {\n    if (!this.animationEnabled() || event.target !== this.elementRef.nativeElement) {\n      return;\n    }\n\n    // set height to auto after transition end, so that it's height can be changed along with content\n    if (this.open()) {\n      this.elementRef.nativeElement.style.height = 'auto';\n    } else if (this.leavedClassName()) {\n      this.elementRef.nativeElement.classList.add(this.leavedClassName());\n    }\n\n    this.elementRef.nativeElement.classList.remove(COLLAPSE_MOTION_CLASS);\n  }\n}\n\n@Injectable()\nexport class NzAnimationTreeCollapseService {\n  firstRender = true;\n  virtualScroll = false;\n\n  readonly animationDone$ = new Subject<void>();\n\n  constructor() {\n    this.animationDone$.pipe(debounceTime(50), take(1)).subscribe(() => {\n      this.firstRender = false;\n    });\n  }\n}\n\n@Directive({\n  // eslint-disable-next-line @angular-eslint/directive-selector\n  selector: '[animation-tree-collapse]',\n  host: {\n    '(animate.enter)': 'onAnimationEnter($event)',\n    '(animate.leave)': 'onAnimationLeave($event)'\n  }\n})\nexport class NzAnimationTreeCollapseDirective {\n  private readonly treeCollapseService = inject(NzAnimationTreeCollapseService, { optional: true });\n  private readonly noAnimation = inject(NzNoAnimationDirective, { optional: true, host: true });\n  // should disable animation in virtual scrolling\n  private readonly animationEnabled = isAnimationEnabled(\n    () => !this.noAnimation?.nzNoAnimation() && !(this.treeCollapseService?.virtualScroll ?? false)\n  );\n\n  private get firstRender(): boolean {\n    return this.treeCollapseService?.firstRender ?? false;\n  }\n\n  protected onAnimationEnter(event: AnimationCallbackEvent): void {\n    if (!this.animationEnabled() || this.firstRender) {\n      this.treeCollapseService?.animationDone$.next();\n      event.animationComplete();\n      return;\n    }\n\n    const element = event.target as HTMLElement;\n    element.style.height = coerceCssPixelValue(0);\n    element.style.opacity = '0';\n    element.classList.add(COLLAPSE_MOTION_CLASS);\n\n    const onTransitionEnd = (e: TransitionEvent): void => {\n      // Only handle height transition to avoid premature cleanup\n      if (e.propertyName !== 'height') {\n        return;\n      }\n      element.removeEventListener('transitionend', onTransitionEnd);\n      element.style.height = 'auto';\n      element.classList.remove(COLLAPSE_MOTION_CLASS);\n      event.animationComplete();\n    };\n\n    requestAnimationFrame(() => {\n      element.style.height = coerceCssPixelValue(element.scrollHeight);\n      element.style.opacity = '1';\n    });\n\n    element.addEventListener('transitionend', onTransitionEnd);\n  }\n\n  protected onAnimationLeave(event: AnimationCallbackEvent): void {\n    if (!this.animationEnabled()) {\n      event.animationComplete();\n      return;\n    }\n\n    const element = event.target as HTMLElement;\n    element.style.height = coerceCssPixelValue(element.scrollHeight);\n    element.style.opacity = '1';\n    element.classList.add(COLLAPSE_MOTION_CLASS);\n\n    const onTransitionEnd = (e: TransitionEvent): void => {\n      // Only handle height transition to avoid premature cleanup\n      if (e.propertyName !== 'height') {\n        return;\n      }\n      element.removeEventListener('transitionend', onTransitionEnd);\n      event.animationComplete();\n    };\n\n    requestAnimationFrame(() => {\n      element.style.height = coerceCssPixelValue(0);\n      element.style.opacity = '0';\n      element.style.marginBottom = '0';\n    });\n\n    element.addEventListener('transitionend', onTransitionEnd);\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport type { Signal } from '@angular/core';\n\nimport { withAnimationCheck } from './no-animation';\n\nexport const SLIDE_ANIMATION_CLASS = {\n  enter: 'ant-slide-up-enter ant-slide-up-enter-active',\n  leave: 'ant-slide-up-leave ant-slide-up-leave-active'\n};\n\nexport const slideAnimationEnter = (): Signal<string> => withAnimationCheck(() => SLIDE_ANIMATION_CLASS.enter);\n\nexport const slideAnimationLeave = (): Signal<string> => withAnimationCheck(() => SLIDE_ANIMATION_CLASS.leave);\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport * from './animation-consts';\nexport * from './collapse';\nexport * from './slide';\nexport * from './no-animation';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}