{"version":3,"file":"ng-zorro-antd-message.mjs","sources":["../../components/message/base.ts","../../components/message/message.component.ts","../../components/message/message-container.component.ts","../../components/message/message.service.ts","../../components/message/typings.ts","../../components/message/public-api.ts","../../components/message/ng-zorro-antd-message.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\nimport {\n  ComponentType,\n  createGlobalPositionStrategy,\n  createNoopScrollStrategy,\n  createOverlayRef\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n  ChangeDetectorRef,\n  DestroyRef,\n  Directive,\n  ElementRef,\n  EventEmitter,\n  inject,\n  Injector,\n  OnInit,\n  Signal\n} from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { MessageConfig, NzConfigService } from 'ng-zorro-antd/core/config';\nimport { NzSingletonService } from 'ng-zorro-antd/core/services';\n\nimport { NzMessageData, NzMessageDataOptions } from './typings';\n\nlet globalCounter = 0;\n\nexport abstract class NzMNService<T extends NzMNContainerComponent> {\n  protected abstract componentPrefix: string;\n  protected container?: T;\n  protected nzSingletonService = inject(NzSingletonService);\n  protected injector = inject(Injector);\n\n  remove(id?: string): void {\n    if (this.container) {\n      if (id) {\n        this.container.remove(id);\n      } else {\n        this.container.removeAll();\n      }\n    }\n  }\n\n  protected getInstanceId(): string {\n    return `${this.componentPrefix}-${globalCounter++}`;\n  }\n\n  protected withContainer(ctor: ComponentType<T>): T {\n    let containerInstance = this.nzSingletonService.getSingletonWithKey(this.componentPrefix);\n    if (containerInstance) {\n      return containerInstance as T;\n    }\n\n    const overlayRef = createOverlayRef(this.injector, {\n      hasBackdrop: false,\n      scrollStrategy: createNoopScrollStrategy(),\n      positionStrategy: createGlobalPositionStrategy(this.injector)\n    });\n    const componentPortal = new ComponentPortal(ctor, null, this.injector);\n    const componentRef = overlayRef.attach(componentPortal);\n    const overlayWrapper = overlayRef.hostElement;\n    overlayWrapper.style.zIndex = '1010';\n\n    if (!containerInstance) {\n      this.container = containerInstance = componentRef.instance;\n      this.nzSingletonService.registerSingletonWithKey(this.componentPrefix, containerInstance);\n      this.container.afterAllInstancesRemoved.subscribe(() => {\n        this.container = undefined;\n        this.nzSingletonService.unregisterSingletonWithKey(this.componentPrefix);\n        overlayRef.dispose();\n      });\n    }\n\n    return containerInstance as T;\n  }\n}\n\n@Directive()\nexport abstract class NzMNContainerComponent<\n  C extends MessageConfig = MessageConfig,\n  D extends NzMessageData = NzMessageData\n> {\n  config?: Required<C>;\n  instances: Array<Required<D>> = [];\n\n  private readonly _afterAllInstancesRemoved = new Subject<void>();\n\n  readonly afterAllInstancesRemoved = this._afterAllInstancesRemoved.asObservable();\n\n  protected cdr = inject(ChangeDetectorRef);\n  protected nzConfigService = inject(NzConfigService);\n\n  constructor() {\n    this.subscribeConfigChange();\n  }\n\n  create(data: D): Required<D> {\n    const instance = this.onCreate(data);\n\n    if (this.instances.length >= this.config!.nzMaxStack!) {\n      this.instances = this.instances.slice(1);\n    }\n\n    this.instances = [...this.instances, instance];\n\n    this.readyInstances();\n\n    return instance;\n  }\n\n  remove(id: string, userAction: boolean = false): void {\n    this.instances\n      .map((instance, index) => ({ index, instance }))\n      .filter(({ instance }) => instance.messageId === id)\n      .forEach(({ index, instance }) => {\n        this.instances.splice(index, 1);\n        this.instances = [...this.instances];\n        this.onRemove(instance, userAction);\n        this.readyInstances();\n      });\n\n    if (!this.instances.length) {\n      this.onAllInstancesRemoved();\n    }\n  }\n\n  removeAll(): void {\n    this.instances.forEach(i => this.onRemove(i, false));\n    this.instances = [];\n\n    this.readyInstances();\n    this.onAllInstancesRemoved();\n  }\n\n  protected onCreate(instance: D): Required<D> {\n    instance.options = this.mergeOptions(instance.options);\n    instance.onClose = new Subject<boolean>();\n    return instance as Required<D>;\n  }\n\n  protected onRemove(instance: Required<D>, userAction: boolean): void {\n    instance.onClose!.next(userAction);\n    instance.onClose!.complete();\n  }\n\n  private onAllInstancesRemoved(): void {\n    this._afterAllInstancesRemoved.next();\n    this._afterAllInstancesRemoved.complete();\n  }\n\n  protected readyInstances(): void {\n    this.cdr.detectChanges();\n  }\n\n  protected abstract subscribeConfigChange(): void;\n\n  protected mergeOptions(options?: D['options']): D['options'] {\n    const { nzDuration, nzAnimate, nzPauseOnHover } = this.config!;\n    return { nzDuration, nzAnimate, nzPauseOnHover, ...options };\n  }\n}\n\n@Directive()\nexport abstract class NzMNComponent implements OnInit {\n  abstract instance: Required<NzMessageData>;\n  abstract index?: number;\n  abstract destroyed: EventEmitter<{ id: string; userAction: boolean }>;\n\n  protected destroyRef = inject(DestroyRef);\n  protected elementRef = inject(ElementRef);\n\n  /**\n   * To get the element which triggers the animation.\n   */\n  protected abstract animationElement: Signal<ElementRef<HTMLElement>>;\n\n  /**\n   * When the animation is enabled, it is used to judge whether the leave animation is done or not.\n   * @note Keyframe of notification may have different keyframe names with individual placements, so use array here.\n   */\n  protected abstract _animationKeyframeMap: Record<'enter' | 'leave', string | string[]>;\n\n  /**\n   * The animation class map for enter and leave.\n   */\n  protected abstract _animationClassMap: Record<'enter' | 'leave', string>;\n\n  protected options!: Required<NzMessageDataOptions>;\n  protected autoClose?: boolean;\n  protected userAction: boolean = false;\n  protected eraseTimer?: ReturnType<typeof setTimeout>;\n  protected eraseTimingStart?: number;\n  protected eraseTTL!: number;\n\n  constructor() {\n    this.destroyRef.onDestroy(() => {\n      if (this.autoClose) {\n        this.clearEraseTimeout();\n      }\n    });\n  }\n\n  ngOnInit(): void {\n    this.options = this.instance.options as Required<NzMessageDataOptions>;\n\n    if (this.options.nzAnimate) {\n      // todo: remove this line in v22.0.0\n      this.instance.state = 'enter';\n      this._startEnterAnimation();\n    }\n\n    this.autoClose = this.options.nzDuration > 0;\n\n    if (this.autoClose) {\n      this.initErase();\n      this.startEraseTimeout();\n    }\n  }\n\n  onEnter(): void {\n    if (this.autoClose && this.options.nzPauseOnHover) {\n      this.clearEraseTimeout();\n      this.updateTTL();\n    }\n  }\n\n  onLeave(): void {\n    if (this.autoClose && this.options.nzPauseOnHover) {\n      this.startEraseTimeout();\n    }\n  }\n\n  protected destroy(userAction: boolean = false): void {\n    this.userAction = userAction;\n    if (this.options.nzAnimate) {\n      // todo: remove this line in v22.0.0\n      this.instance.state = 'leave';\n      this._startLeaveAnimation(() => this.destroyed.next({ id: this.instance.messageId, userAction }));\n    } else {\n      this.destroyed.next({ id: this.instance.messageId, userAction });\n    }\n  }\n\n  private initErase(): void {\n    this.eraseTTL = this.options.nzDuration;\n    this.eraseTimingStart = Date.now();\n  }\n\n  private updateTTL(): void {\n    if (this.autoClose) {\n      this.eraseTTL -= Date.now() - this.eraseTimingStart!;\n    }\n  }\n\n  private startEraseTimeout(): void {\n    if (this.eraseTTL > 0) {\n      this.clearEraseTimeout();\n      this.eraseTimer = setTimeout(() => this.destroy(), this.eraseTTL);\n      this.eraseTimingStart = Date.now();\n    } else {\n      this.destroy();\n    }\n  }\n\n  private clearEraseTimeout(): void {\n    if (this.eraseTimer !== null) {\n      clearTimeout(this.eraseTimer);\n      this.eraseTimer = undefined;\n    }\n  }\n\n  private _startEnterAnimation(): void {\n    const element = this.animationElement().nativeElement;\n    element.classList.add(this._animationClassMap.enter);\n\n    const onAnimationEnd = (event: AnimationEvent): void => {\n      if (this.matchAnimationKeyframe(event, this._animationKeyframeMap.enter)) {\n        element.removeEventListener('animationend', onAnimationEnd);\n        // should remove animation enter class once animation is done\n        element.classList.remove(this._animationClassMap.enter);\n      }\n    };\n\n    element.addEventListener('animationend', onAnimationEnd);\n  }\n\n  private _startLeaveAnimation(callback: () => void): void {\n    const element = this.animationElement().nativeElement;\n    element.classList.remove(this._animationClassMap.enter);\n    element.classList.add(this._animationClassMap.leave);\n\n    const onAnimationEnd = (event: AnimationEvent): void => {\n      if (this.matchAnimationKeyframe(event, this._animationKeyframeMap.leave)) {\n        element.removeEventListener('animationend', onAnimationEnd);\n        callback();\n      }\n    };\n\n    element.addEventListener('animationend', onAnimationEnd);\n  }\n\n  private matchAnimationKeyframe(event: AnimationEvent, animationName: string | string[]): boolean {\n    return typeof animationName === 'string'\n      ? event.animationName === animationName\n      : animationName.includes(event.animationName);\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 {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  viewChild,\n  ViewEncapsulation\n} from '@angular/core';\n\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\n\nimport { NzMNComponent } from './base';\nimport { NzMessageData } from './typings';\n\n@Component({\n  selector: 'nz-message',\n  exportAs: 'nzMessage',\n  imports: [NzIconModule, NzOutletModule],\n  template: `\n    <div\n      #animationElement\n      class=\"ant-message-notice\"\n      [class]=\"instance.options?.nzClass\"\n      [style]=\"instance.options?.nzStyle\"\n      (mouseenter)=\"onEnter()\"\n      (mouseleave)=\"onLeave()\"\n    >\n      <div class=\"ant-message-notice-content\">\n        <div class=\"ant-message-custom-content\" [class]=\"'ant-message-' + instance.type\">\n          @switch (instance.type) {\n            @case ('success') {\n              <nz-icon nzType=\"check-circle\" />\n            }\n            @case ('info') {\n              <nz-icon nzType=\"info-circle\" />\n            }\n            @case ('warning') {\n              <nz-icon nzType=\"exclamation-circle\" />\n            }\n            @case ('error') {\n              <nz-icon nzType=\"close-circle\" />\n            }\n            @case ('loading') {\n              <nz-icon nzType=\"loading\" />\n            }\n          }\n          <ng-container\n            *nzStringTemplateOutlet=\"instance.content; context: { $implicit: this, data: instance.options?.nzData }\"\n          >\n            <span [innerHTML]=\"instance.content\"></span>\n          </ng-container>\n        </div>\n      </div>\n    </div>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None\n})\nexport class NzMessageComponent extends NzMNComponent implements OnInit {\n  @Input() override instance!: Required<NzMessageData>;\n  @Output() override readonly destroyed = new EventEmitter<{ id: string; userAction: boolean }>();\n  index?: number;\n\n  readonly animationElement = viewChild.required('animationElement', { read: ElementRef });\n  protected readonly _animationKeyframeMap = {\n    enter: 'MessageMoveIn',\n    leave: 'MessageMoveOut'\n  };\n  protected readonly _animationClassMap = {\n    enter: 'ant-message-move-up-enter',\n    leave: 'ant-message-move-up-leave'\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 { Direction } from '@angular/cdk/bidi';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\nimport { MessageConfig, onConfigChangeEventForComponent } from 'ng-zorro-antd/core/config';\nimport { toCssPixel } from 'ng-zorro-antd/core/util';\n\nimport { NzMNContainerComponent } from './base';\nimport { NzMessageComponent } from './message.component';\n\nconst NZ_CONFIG_COMPONENT_NAME = 'message';\n\nconst NZ_MESSAGE_DEFAULT_CONFIG: Required<MessageConfig> = {\n  nzAnimate: true,\n  nzDuration: 3000,\n  nzMaxStack: 7,\n  nzPauseOnHover: true,\n  nzTop: 24,\n  nzDirection: 'ltr'\n};\n\n@Component({\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  selector: 'nz-message-container',\n  exportAs: 'nzMessageContainer',\n  template: `\n    <div class=\"ant-message\" [class.ant-message-rtl]=\"dir === 'rtl'\" [style.top]=\"top\">\n      @for (instance of instances; track instance) {\n        <nz-message [instance]=\"instance\" (destroyed)=\"remove($event.id, $event.userAction)\" />\n      }\n    </div>\n  `,\n  imports: [NzMessageComponent]\n})\nexport class NzMessageContainerComponent extends NzMNContainerComponent {\n  dir: Direction = this.nzConfigService.getConfigForComponent(NZ_CONFIG_COMPONENT_NAME)?.nzDirection || 'ltr';\n  top?: string | null;\n\n  constructor() {\n    super();\n    this.updateConfig();\n  }\n\n  protected subscribeConfigChange(): void {\n    onConfigChangeEventForComponent(NZ_CONFIG_COMPONENT_NAME, () => {\n      this.updateConfig();\n      this.dir = this.nzConfigService.getConfigForComponent(NZ_CONFIG_COMPONENT_NAME)?.nzDirection || this.dir;\n    });\n  }\n\n  protected updateConfig(): void {\n    this.config = {\n      ...NZ_MESSAGE_DEFAULT_CONFIG,\n      ...this.config,\n      ...this.nzConfigService.getConfigForComponent(NZ_CONFIG_COMPONENT_NAME)\n    };\n\n    this.top = toCssPixel(this.config.nzTop);\n    this.cdr.markForCheck();\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 { Injectable } from '@angular/core';\n\nimport { NzMNService } from './base';\nimport { NzMessageContainerComponent } from './message-container.component';\nimport { NzMessageContentType, NzMessageData, NzMessageDataOptions, NzMessageRef, NzMessageType } from './typings';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class NzMessageService extends NzMNService<NzMessageContainerComponent> {\n  protected componentPrefix = 'message-';\n\n  success(content: NzMessageContentType, options?: NzMessageDataOptions): NzMessageRef {\n    return this.createInstance({ type: 'success', content }, options);\n  }\n\n  error(content: NzMessageContentType, options?: NzMessageDataOptions): NzMessageRef {\n    return this.createInstance({ type: 'error', content }, options);\n  }\n\n  info(content: NzMessageContentType, options?: NzMessageDataOptions): NzMessageRef {\n    return this.createInstance({ type: 'info', content }, options);\n  }\n\n  warning(content: NzMessageContentType, options?: NzMessageDataOptions): NzMessageRef {\n    return this.createInstance({ type: 'warning', content }, options);\n  }\n\n  loading(content: NzMessageContentType, options?: NzMessageDataOptions): NzMessageRef {\n    return this.createInstance({ type: 'loading', content }, options);\n  }\n\n  create(type: NzMessageType | string, content: NzMessageContentType, options?: NzMessageDataOptions): NzMessageRef {\n    return this.createInstance({ type, content }, options);\n  }\n\n  private createInstance(message: NzMessageData, options?: NzMessageDataOptions): NzMessageRef {\n    this.container = this.withContainer(NzMessageContainerComponent);\n\n    return this.container.create({\n      ...message,\n      ...{\n        createdAt: new Date(),\n        messageId: this.getInstanceId(),\n        options\n      }\n    });\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 { TemplateRef } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { NzSafeAny, type NgClassInterface, type NgStyleInterface } from 'ng-zorro-antd/core/types';\n\nimport { NzMNComponent } from './base';\n\nexport type NzMessageType = 'success' | 'info' | 'warning' | 'error' | 'loading';\n\nexport type NzMessageContentType = string | TemplateRef<void | { $implicit: NzMNComponent; data: NzSafeAny }>;\n\nexport interface NzMessageDataOptions {\n  nzDuration?: number;\n  nzAnimate?: boolean;\n  nzPauseOnHover?: boolean;\n  nzData?: NzSafeAny;\n  nzStyle?: NgStyleInterface | string;\n  nzClass?: NgClassInterface | string;\n}\n\nexport interface NzMessageData {\n  type?: NzMessageType | string;\n  content?: NzMessageContentType;\n  messageId?: string;\n  createdAt?: Date;\n  options?: NzMessageDataOptions;\n  /**\n   * @deprecated Will be removed in v22.0.0\n   */\n  state?: 'enter' | 'leave';\n  onClose?: Subject<boolean>;\n}\n\nexport type NzMessageRef = Pick<Required<NzMessageData>, 'onClose' | 'messageId'>;\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 './base';\nexport * from './message-container.component';\nexport * from './message.component';\nexport * from './message.service';\nexport * from './typings';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}