ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
1 lines • 32.3 kB
Source Map (JSON)
{"version":3,"file":"ng-zorro-antd-notification.mjs","sources":["../../components/notification/notification.component.ts","../../components/notification/notification-container.component.ts","../../components/notification/notification.module.ts","../../components/notification/typings.ts","../../components/notification/notification.service.ts","../../components/notification/notification.service.module.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 { NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectorRef, Component, EventEmitter, Input, OnDestroy, Output, ViewEncapsulation } from '@angular/core';\n\nimport { notificationMotion } from 'ng-zorro-antd/core/animation';\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 encapsulation: ViewEncapsulation.None,\n selector: 'nz-notification',\n exportAs: 'nzNotification',\n preserveWhitespaces: false,\n animations: [notificationMotion],\n template: `\n <div\n class=\"ant-notification-notice ant-notification-notice-closable\"\n [ngStyle]=\"instance.options?.nzStyle || null\"\n [ngClass]=\"instance.options?.nzClass || ''\"\n [@notificationMotion]=\"state\"\n (@notificationMotion.done)=\"animationStateChanged.next($event)\"\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 <span\n nz-icon\n nzType=\"check-circle\"\n class=\"ant-notification-notice-icon ant-notification-notice-icon-success\"\n ></span>\n }\n @case ('info') {\n <span\n nz-icon\n nzType=\"info-circle\"\n class=\"ant-notification-notice-icon ant-notification-notice-icon-info\"\n ></span>\n }\n @case ('warning') {\n <span\n nz-icon\n nzType=\"exclamation-circle\"\n class=\"ant-notification-notice-icon ant-notification-notice-icon-warning\"\n ></span>\n }\n @case ('error') {\n <span\n nz-icon\n nzType=\"close-circle\"\n class=\"ant-notification-notice-icon ant-notification-notice-icon-error\"\n ></span>\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 *nzStringTemplateOutlet=\"instance.content\">\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 <span nz-icon [nzType]=\"closeIcon\"></span>\n </ng-container>\n } @else {\n <span nz-icon nzType=\"close\" class=\"ant-notification-close-icon\"></span>\n }\n </span>\n </a>\n </div>\n `,\n imports: [NgStyle, NgClass, NzIconModule, NzOutletModule, NgTemplateOutlet],\n standalone: true\n})\nexport class NzNotificationComponent extends NzMNComponent implements OnDestroy {\n @Input() override instance!: Required<NzNotificationData>;\n @Input() override index!: number;\n @Input() placement?: string;\n\n @Output() override readonly destroyed = new EventEmitter<{ id: string; userAction: boolean }>();\n\n constructor(cdr: ChangeDetectorRef) {\n super(cdr);\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this.instance.onClick.complete();\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 get state(): string | undefined {\n if (this.instance.state === 'enter') {\n switch (this.placement) {\n case 'topLeft':\n case 'bottomLeft':\n return 'enterLeft';\n case 'topRight':\n case 'bottomRight':\n return 'enterRight';\n case 'top':\n return 'enterTop';\n case 'bottom':\n return 'enterBottom';\n default:\n return 'enterRight';\n }\n } else {\n return this.instance.state;\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 { Direction } from '@angular/cdk/bidi';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewEncapsulation } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { NotificationConfig, NzConfigService } 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 preserveWhitespaces: false,\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\n [instance]=\"instance\"\n [placement]=\"'topLeft'\"\n (destroyed)=\"remove($event.id, $event.userAction)\"\n />\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\n [instance]=\"instance\"\n [placement]=\"'bottom'\"\n (destroyed)=\"remove($event.id, $event.userAction)\"\n />\n }\n </div>\n `,\n imports: [NzNotificationComponent],\n standalone: true\n})\nexport class NzNotificationContainerComponent extends NzMNContainerComponent {\n dir: Direction = 'ltr';\n bottom?: string | null;\n top?: string | null;\n override config!: Required<NotificationConfig>; // initialized by parent class constructor\n override instances: Array<Required<NzNotificationData>> = [];\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(cdr: ChangeDetectorRef, nzConfigService: NzConfigService) {\n super(cdr, nzConfigService);\n const config = this.nzConfigService.getConfigForComponent(NZ_CONFIG_MODULE_NAME);\n this.dir = config?.nzDirection || 'ltr';\n }\n\n override create(notification: NzNotificationData): Required<NzNotificationData> {\n const noti = this.onCreate(notification);\n const key = noti.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, noti);\n } else {\n if (this.instances.length >= this.config.nzMaxStack) {\n this.instances = this.instances.slice(1);\n }\n this.instances = [...this.instances, noti];\n }\n\n this.readyInstances();\n\n return noti;\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 this.nzConfigService\n .getConfigChangeEventForComponent(NZ_CONFIG_MODULE_NAME)\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.updateConfig();\n const config = this.nzConfigService.getConfigForComponent(NZ_CONFIG_MODULE_NAME);\n if (config) {\n const { nzDirection } = config;\n this.dir = nzDirection || this.dir;\n }\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 { NgModule } from '@angular/core';\n\nimport { NzNotificationContainerComponent } from './notification-container.component';\nimport { NzNotificationComponent } from './notification.component';\n\n@NgModule({\n imports: [NzNotificationComponent, NzNotificationContainerComponent]\n})\nexport class NzNotificationModule {}\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 } 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 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?: string | TemplateRef<void>;\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 { Overlay } from '@angular/cdk/overlay';\nimport { Injectable, Injector, TemplateRef } from '@angular/core';\n\nimport { NzSingletonService } from 'ng-zorro-antd/core/services';\nimport { NzMNService } from 'ng-zorro-antd/message';\n\nimport { NzNotificationContainerComponent } from './notification-container.component';\nimport { NzNotificationData, NzNotificationDataOptions, NzNotificationRef } from './typings';\n\nlet notificationId = 0;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NzNotificationService extends NzMNService {\n protected override container!: NzNotificationContainerComponent;\n protected componentPrefix = 'notification-';\n\n constructor(nzSingletonService: NzSingletonService, overlay: Overlay, injector: Injector) {\n super(nzSingletonService, overlay, injector);\n }\n\n success(\n title: string | TemplateRef<void>,\n content: string | TemplateRef<void>,\n options?: NzNotificationDataOptions\n ): NzNotificationRef {\n return this.create('success', title, content, options);\n }\n\n error(\n title: string | TemplateRef<void>,\n content: string | TemplateRef<void>,\n options?: NzNotificationDataOptions\n ): NzNotificationRef {\n return this.create('error', title, content, options);\n }\n\n info(\n title: string | TemplateRef<void>,\n content: string | TemplateRef<void>,\n options?: NzNotificationDataOptions\n ): NzNotificationRef {\n return this.create('info', title, content, options);\n }\n\n warning(\n title: string | TemplateRef<void>,\n content: string | TemplateRef<void>,\n options?: NzNotificationDataOptions\n ): NzNotificationRef {\n return this.create('warning', title, content, options);\n }\n\n blank(\n title: string | TemplateRef<void>,\n content: string | TemplateRef<void>,\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: string | TemplateRef<void>,\n options?: NzNotificationDataOptions\n ): NzNotificationRef {\n return this.createInstance({ type, title, content }, options);\n }\n\n template(template: TemplateRef<{}>, options?: NzNotificationDataOptions): 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\nimport { NgModule } from '@angular/core';\n\n@NgModule()\nexport class NzNotificationServiceModule {}\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 './notification.module';\nexport * from './typings';\nexport * from './notification.service';\nexport * from './notification.service.module';\nexport * from './notification-container.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2"],"mappings":"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"}