{"version":3,"file":"ng-zorro-antd-notification.mjs","sources":["../../components/notification/notification.component.ts","../../components/notification/typings.ts","../../components/notification/notification-container.component.ts","../../components/notification/notification.service.ts","../../components/notification/public-api.ts","../../components/notification/ng-zorro-antd-notification.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 { NgTemplateOutlet } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\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';\nimport { NzMNComponent } from 'ng-zorro-antd/message';\n\nimport { NzNotificationData } from './typings';\n\n@Component({\n  selector: 'nz-notification',\n  exportAs: 'nzNotification',\n  imports: [NzIconModule, NzOutletModule, NgTemplateOutlet],\n  template: `\n    <div\n      #animationElement\n      class=\"ant-notification-notice ant-notification-notice-closable\"\n      [style]=\"instance.options?.nzStyle || null\"\n      [class]=\"instance.options?.nzClass || ''\"\n      (click)=\"onClick($event)\"\n      (mouseenter)=\"onEnter()\"\n      (mouseleave)=\"onLeave()\"\n    >\n      @if (instance.template) {\n        <ng-template\n          [ngTemplateOutlet]=\"instance.template!\"\n          [ngTemplateOutletContext]=\"{ $implicit: this, data: instance.options?.nzData }\"\n        />\n      } @else {\n        <div class=\"ant-notification-notice-content\">\n          <div class=\"ant-notification-notice-content\">\n            <div [class.ant-notification-notice-with-icon]=\"instance.type !== 'blank'\">\n              @switch (instance.type) {\n                @case ('success') {\n                  <nz-icon\n                    nzType=\"check-circle\"\n                    class=\"ant-notification-notice-icon ant-notification-notice-icon-success\"\n                  />\n                }\n                @case ('info') {\n                  <nz-icon\n                    nzType=\"info-circle\"\n                    class=\"ant-notification-notice-icon ant-notification-notice-icon-info\"\n                  />\n                }\n                @case ('warning') {\n                  <nz-icon\n                    nzType=\"exclamation-circle\"\n                    class=\"ant-notification-notice-icon ant-notification-notice-icon-warning\"\n                  />\n                }\n                @case ('error') {\n                  <nz-icon\n                    nzType=\"close-circle\"\n                    class=\"ant-notification-notice-icon ant-notification-notice-icon-error\"\n                  />\n                }\n              }\n              <div class=\"ant-notification-notice-message\">\n                <ng-container *nzStringTemplateOutlet=\"instance.title\">\n                  <div [innerHTML]=\"instance.title\"></div>\n                </ng-container>\n              </div>\n              <div class=\"ant-notification-notice-description\">\n                <ng-container\n                  *nzStringTemplateOutlet=\"\n                    instance.content;\n                    context: { $implicit: this, data: instance.options?.nzData }\n                  \"\n                >\n                  <div [innerHTML]=\"instance.content\"></div>\n                </ng-container>\n              </div>\n              @if (instance.options?.nzButton; as btn) {\n                <span class=\"ant-notification-notice-btn\">\n                  <ng-template [ngTemplateOutlet]=\"btn\" [ngTemplateOutletContext]=\"{ $implicit: this }\" />\n                </span>\n              }\n            </div>\n          </div>\n        </div>\n      }\n      <a tabindex=\"0\" class=\"ant-notification-notice-close\" (click)=\"close()\">\n        <span class=\"ant-notification-notice-close-x\">\n          @if (instance.options?.nzCloseIcon) {\n            <ng-container *nzStringTemplateOutlet=\"instance.options?.nzCloseIcon; let closeIcon\">\n              <nz-icon [nzType]=\"closeIcon\" />\n            </ng-container>\n          } @else {\n            <nz-icon nzType=\"close\" class=\"ant-notification-close-icon\" />\n          }\n        </span>\n      </a>\n    </div>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None\n})\nexport class NzNotificationComponent extends NzMNComponent {\n  @Input() instance!: Required<NzNotificationData>;\n  @Input() index!: number;\n  @Input() placement?: string;\n  @Output() readonly destroyed = new EventEmitter<{ id: string; userAction: boolean }>();\n\n  readonly animationElement = viewChild.required('animationElement', { read: ElementRef });\n  protected readonly _animationKeyframeMap = {\n    enter: [\n      'antNotificationFadeIn',\n      'antNotificationTopFadeIn',\n      'antNotificationBottomFadeIn',\n      'antNotificationLeftFadeIn'\n    ],\n    leave: 'antNotificationFadeOut'\n  };\n  protected readonly _animationClassMap = {\n    enter: 'ant-notification-fade-enter',\n    leave: 'ant-notification-fade-leave'\n  };\n\n  constructor() {\n    super();\n    this.destroyRef.onDestroy(() => {\n      this.instance.onClick.complete();\n    });\n  }\n\n  onClick(event: MouseEvent): void {\n    this.instance.onClick.next(event);\n  }\n\n  close(): void {\n    this.destroy(true);\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 { NgClassInterface, NgStyleInterface, NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport type { NzNotificationComponent } from './notification.component';\n\nexport type NzNotificationPlacement = 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight' | 'top' | 'bottom';\n\nexport type NzNotificationContentType =\n  | string\n  | TemplateRef<void | {\n      $implicit: NzNotificationComponent;\n      data: NzSafeAny;\n    }>;\n\nexport interface NzNotificationDataOptions<T = {}> {\n  nzKey?: string;\n  nzStyle?: NgStyleInterface;\n  nzClass?: NgClassInterface | string;\n  nzCloseIcon?: TemplateRef<void> | string;\n  nzButton?: TemplateRef<{ $implicit: NzNotificationComponent }>;\n  nzPlacement?: NzNotificationPlacement;\n  nzData?: T;\n  nzDuration?: number;\n  nzAnimate?: boolean;\n  nzPauseOnHover?: boolean;\n}\n\nexport interface NzNotificationData {\n  title?: string | TemplateRef<void>;\n  content?: NzNotificationContentType;\n  createdAt?: Date;\n  messageId?: string;\n  options?: NzNotificationDataOptions;\n  state?: 'enter' | 'leave';\n  template?: TemplateRef<{}>;\n  type?: 'success' | 'info' | 'warning' | 'error' | 'blank' | string;\n\n  // observables exposed to users\n  onClose?: Subject<boolean>;\n  onClick?: Subject<MouseEvent>;\n}\n\nexport type NzNotificationRef = Pick<Required<NzNotificationData>, 'onClose' | 'onClick' | '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\nimport { Direction } from '@angular/cdk/bidi';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { NotificationConfig, onConfigChangeEventForComponent } from 'ng-zorro-antd/core/config';\nimport { toCssPixel } from 'ng-zorro-antd/core/util';\nimport { NzMNContainerComponent } from 'ng-zorro-antd/message';\n\nimport { NzNotificationComponent } from './notification.component';\nimport { NzNotificationData, NzNotificationDataOptions, NzNotificationPlacement } from './typings';\n\nconst NZ_CONFIG_MODULE_NAME = 'notification';\n\nconst NZ_NOTIFICATION_DEFAULT_CONFIG: Required<NotificationConfig> = {\n  nzTop: '24px',\n  nzBottom: '24px',\n  nzPlacement: 'topRight',\n  nzDuration: 4500,\n  nzMaxStack: 8,\n  nzPauseOnHover: true,\n  nzAnimate: true,\n  nzDirection: 'ltr'\n};\n\n@Component({\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  selector: 'nz-notification-container',\n  exportAs: 'nzNotificationContainer',\n  template: `\n    <div\n      class=\"ant-notification ant-notification-topLeft\"\n      [class.ant-notification-rtl]=\"dir === 'rtl'\"\n      [style.top]=\"top\"\n      [style.left]=\"'0px'\"\n    >\n      @for (instance of topLeftInstances; track instance) {\n        <nz-notification [instance]=\"instance\" placement=\"topLeft\" (destroyed)=\"remove($event.id, $event.userAction)\" />\n      }\n    </div>\n    <div\n      class=\"ant-notification ant-notification-topRight\"\n      [class.ant-notification-rtl]=\"dir === 'rtl'\"\n      [style.top]=\"top\"\n      [style.right]=\"'0px'\"\n    >\n      @for (instance of topRightInstances; track instance) {\n        <nz-notification\n          [instance]=\"instance\"\n          placement=\"topRight\"\n          (destroyed)=\"remove($event.id, $event.userAction)\"\n        />\n      }\n    </div>\n    <div\n      class=\"ant-notification ant-notification-bottomLeft\"\n      [class.ant-notification-rtl]=\"dir === 'rtl'\"\n      [style.bottom]=\"bottom\"\n      [style.left]=\"'0px'\"\n    >\n      @for (instance of bottomLeftInstances; track instance) {\n        <nz-notification\n          [instance]=\"instance\"\n          placement=\"bottomLeft\"\n          (destroyed)=\"remove($event.id, $event.userAction)\"\n        />\n      }\n    </div>\n    <div\n      class=\"ant-notification ant-notification-bottomRight\"\n      [class.ant-notification-rtl]=\"dir === 'rtl'\"\n      [style.bottom]=\"bottom\"\n      [style.right]=\"'0px'\"\n    >\n      @for (instance of bottomRightInstances; track instance) {\n        <nz-notification\n          [instance]=\"instance\"\n          placement=\"bottomRight\"\n          (destroyed)=\"remove($event.id, $event.userAction)\"\n        />\n      }\n    </div>\n    <div\n      class=\"ant-notification ant-notification-top\"\n      [class.ant-notification-rtl]=\"dir === 'rtl'\"\n      [style.top]=\"top\"\n      [style.left]=\"'50%'\"\n      [style.transform]=\"'translateX(-50%)'\"\n    >\n      @for (instance of topInstances; track instance) {\n        <nz-notification [instance]=\"instance\" placement=\"top\" (destroyed)=\"remove($event.id, $event.userAction)\" />\n      }\n    </div>\n    <div\n      class=\"ant-notification ant-notification-bottom\"\n      [class.ant-notification-rtl]=\"dir === 'rtl'\"\n      [style.bottom]=\"bottom\"\n      [style.left]=\"'50%'\"\n      [style.transform]=\"'translateX(-50%)'\"\n    >\n      @for (instance of bottomInstances; track instance) {\n        <nz-notification [instance]=\"instance\" placement=\"bottom\" (destroyed)=\"remove($event.id, $event.userAction)\" />\n      }\n    </div>\n  `,\n  imports: [NzNotificationComponent]\n})\nexport class NzNotificationContainerComponent extends NzMNContainerComponent<NotificationConfig, NzNotificationData> {\n  dir: Direction = this.nzConfigService.getConfigForComponent(NZ_CONFIG_MODULE_NAME)?.nzDirection || 'ltr';\n  bottom?: string | null;\n  top?: string | null;\n  topLeftInstances: Array<Required<NzNotificationData>> = [];\n  topRightInstances: Array<Required<NzNotificationData>> = [];\n  bottomLeftInstances: Array<Required<NzNotificationData>> = [];\n  bottomRightInstances: Array<Required<NzNotificationData>> = [];\n  topInstances: Array<Required<NzNotificationData>> = [];\n  bottomInstances: Array<Required<NzNotificationData>> = [];\n\n  constructor() {\n    super();\n    this.updateConfig();\n  }\n\n  override create(notification: NzNotificationData): Required<NzNotificationData> {\n    const instance = this.onCreate(notification);\n    const key = instance.options.nzKey;\n    const notificationWithSameKey = this.instances.find(\n      msg => msg.options.nzKey === (notification.options as Required<NzNotificationDataOptions>).nzKey\n    );\n    if (key && notificationWithSameKey) {\n      this.replaceNotification(notificationWithSameKey, instance);\n    } else {\n      if (this.instances.length >= this.config!.nzMaxStack) {\n        this.instances = this.instances.slice(1);\n      }\n      this.instances = [...this.instances, instance];\n    }\n\n    this.readyInstances();\n\n    return instance;\n  }\n\n  protected override onCreate(instance: NzNotificationData): Required<NzNotificationData> {\n    instance.options = this.mergeOptions(instance.options);\n    instance.onClose = new Subject<boolean>();\n    instance.onClick = new Subject<MouseEvent>();\n    return instance as Required<NzNotificationData>;\n  }\n\n  protected subscribeConfigChange(): void {\n    onConfigChangeEventForComponent(NZ_CONFIG_MODULE_NAME, () => {\n      this.updateConfig();\n      this.dir = this.nzConfigService.getConfigForComponent(NZ_CONFIG_MODULE_NAME)?.nzDirection || this.dir;\n    });\n  }\n\n  protected updateConfig(): void {\n    this.config = {\n      ...NZ_NOTIFICATION_DEFAULT_CONFIG,\n      ...this.config,\n      ...this.nzConfigService.getConfigForComponent(NZ_CONFIG_MODULE_NAME)\n    };\n\n    this.top = toCssPixel(this.config.nzTop!);\n    this.bottom = toCssPixel(this.config.nzBottom!);\n\n    this.cdr.markForCheck();\n  }\n\n  private replaceNotification(old: NzNotificationData, _new: NzNotificationData): void {\n    old.title = _new.title;\n    old.content = _new.content;\n    old.template = _new.template;\n    old.type = _new.type;\n    old.options = _new.options;\n  }\n\n  protected override readyInstances(): void {\n    const instancesMap: Record<NzNotificationPlacement, Array<Required<NzNotificationData>>> = {\n      topLeft: [],\n      topRight: [],\n      bottomLeft: [],\n      bottomRight: [],\n      top: [],\n      bottom: []\n    };\n    this.instances.forEach(m => {\n      const placement = m.options.nzPlacement;\n      switch (placement) {\n        case 'topLeft':\n          instancesMap.topLeft.unshift(m);\n          break;\n        case 'topRight':\n          instancesMap.topRight.unshift(m);\n          break;\n        case 'bottomLeft':\n          instancesMap.bottomLeft.unshift(m);\n          break;\n        case 'bottomRight':\n          instancesMap.bottomRight.unshift(m);\n          break;\n        case 'top':\n          instancesMap.top.unshift(m);\n          break;\n        case 'bottom':\n          instancesMap.bottom.unshift(m);\n          break;\n        default:\n          instancesMap.topRight.unshift(m);\n      }\n    });\n    this.topLeftInstances = instancesMap.topLeft;\n    this.topRightInstances = instancesMap.topRight;\n    this.bottomLeftInstances = instancesMap.bottomLeft;\n    this.bottomRightInstances = instancesMap.bottomRight;\n    this.topInstances = instancesMap.top;\n    this.bottomInstances = instancesMap.bottom;\n\n    this.cdr.detectChanges();\n  }\n\n  protected override mergeOptions(options?: NzNotificationDataOptions): NzNotificationDataOptions {\n    const { nzDuration, nzAnimate, nzPauseOnHover, nzPlacement } = this.config!;\n    return { nzDuration, nzAnimate, nzPauseOnHover, nzPlacement, ...options };\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, TemplateRef } from '@angular/core';\n\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { NzMNService } from 'ng-zorro-antd/message';\n\nimport { NzNotificationContainerComponent } from './notification-container.component';\nimport type { NzNotificationComponent } from './notification.component';\nimport { NzNotificationContentType, NzNotificationData, NzNotificationDataOptions, NzNotificationRef } from './typings';\n\nlet notificationId = 0;\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class NzNotificationService extends NzMNService<NzNotificationContainerComponent> {\n  protected componentPrefix = 'notification-';\n\n  success(\n    title: string | TemplateRef<void>,\n    content: NzNotificationContentType,\n    options?: NzNotificationDataOptions\n  ): NzNotificationRef {\n    return this.create('success', title, content, options);\n  }\n\n  error(\n    title: string | TemplateRef<void>,\n    content: NzNotificationContentType,\n    options?: NzNotificationDataOptions\n  ): NzNotificationRef {\n    return this.create('error', title, content, options);\n  }\n\n  info(\n    title: string | TemplateRef<void>,\n    content: NzNotificationContentType,\n    options?: NzNotificationDataOptions\n  ): NzNotificationRef {\n    return this.create('info', title, content, options);\n  }\n\n  warning(\n    title: string | TemplateRef<void>,\n    content: NzNotificationContentType,\n    options?: NzNotificationDataOptions\n  ): NzNotificationRef {\n    return this.create('warning', title, content, options);\n  }\n\n  blank(\n    title: string | TemplateRef<void>,\n    content: NzNotificationContentType,\n    options?: NzNotificationDataOptions\n  ): NzNotificationRef {\n    return this.create('blank', title, content, options);\n  }\n\n  create(\n    type: 'success' | 'info' | 'warning' | 'error' | 'blank' | string,\n    title: string | TemplateRef<void>,\n    content: NzNotificationContentType,\n    options?: NzNotificationDataOptions\n  ): NzNotificationRef {\n    return this.createInstance({ type, title, content }, options);\n  }\n\n  template(\n    template: TemplateRef<{\n      $implicit: NzNotificationComponent;\n      data: NzSafeAny;\n    }>,\n    options?: NzNotificationDataOptions\n  ): NzNotificationRef {\n    return this.createInstance({ template }, options);\n  }\n\n  protected generateMessageId(): string {\n    return `${this.componentPrefix}-${notificationId++}`;\n  }\n\n  private createInstance(message: NzNotificationData, options?: NzNotificationDataOptions): NzNotificationRef {\n    this.container = this.withContainer(NzNotificationContainerComponent);\n\n    return this.container.create({\n      ...message,\n      ...{\n        createdAt: new Date(),\n        messageId: options?.nzKey || this.generateMessageId(),\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\nexport * from './notification.component';\nexport * from './typings';\nexport * from './notification.service';\nexport * from './notification-container.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}