UNPKG

carbon-components-angular

Version:
1 lines 52.2 kB
{"version":3,"file":"carbon-components-angular-notification.mjs","sources":["../../src/notification/actionable-button.directive.ts","../../src/notification/actionable-subtitle.directive.ts","../../src/notification/actionable-title.directive.ts","../../src/notification/notification-display.service.ts","../../src/notification/base-notification.component.ts","../../src/notification/actionable-notification.component.ts","../../src/notification/notification-subtitle.directive.ts","../../src/notification/notification-title.directive.ts","../../src/notification/notification.component.ts","../../src/notification/toast-title.directive.ts","../../src/notification/toast-subtitle.directive.ts","../../src/notification/toast-caption.directive.ts","../../src/notification/toast.component.ts","../../src/notification/notification.service.ts","../../src/notification/notification.module.ts","../../src/notification/carbon-components-angular-notification.ts"],"sourcesContent":["import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n\tselector: \"[cdsActionableButton], [ibmActionableButton]\"\n})\nexport class ActionableButton {\n\t@HostBinding(\"class.cds--actionable-notification__action-button\") actionableButton = true;\n\t@HostBinding(\"attr.type\") type = \"button\";\n}\n","import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n\tselector: \"[cdsActionableSubtitle], [ibmActionableSubtitle]\"\n})\nexport class ActionableSubtitle {\n\t@HostBinding(\"class.cds--actionable-notification__subtitle\") baseClass = true;\n}\n","import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n\tselector: \"[cdsActionableTitle], [ibmActionableTitle]\"\n})\nexport class ActionableTitle {\n\t@HostBinding(\"class.cds--actionable-notification__title\") baseClass = true;\n}\n","import {\n\tInjectable,\n\tApplicationRef\n} from \"@angular/core\";\n\n@Injectable()\nexport class NotificationDisplayService {\n\tconstructor(protected applicationRef: ApplicationRef) {}\n\n\t/**\n\t * Programatically closes notification based on `notificationRef`.\t *\n\t */\n\tclose(notificationRef: any) {\n\t\tif (notificationRef.hostView) {\n\t\t\tsetTimeout( () => {\n\t\t\t\tthis.applicationRef.detachView(notificationRef.hostView);\n\t\t\t\tnotificationRef.destroy();\n\t\t\t}, 200);\n\t\t}\n\t}\n}\n","import {\n\tOutput,\n\tEventEmitter,\n\tHostBinding,\n\tComponent,\n\tComponentRef\n} from \"@angular/core\";\nimport { isObservable, Subject } from \"rxjs\";\nimport { I18n } from \"carbon-components-angular/i18n\";\nimport { NotificationContent, NotificationType } from \"./notification-content.interface\";\nimport { NotificationDisplayService } from \"./notification-display.service\";\n\n/**\n * Base class for `Notification`, `ActionableNotification`, & `Toast`\n * consisting of common functionality\n *\n * Get started with importing the module:\n *\n * ```typescript\n * import { NotificationModule } from 'carbon-components-angular';\n * ```\n *\n * [See demo](../../?path=/story/components-notification--inline-notification)\n */\n@Component({\n\ttemplate: \"\"\n})\nexport class BaseNotification {\n\t/**\n\t * Set role attribute for component\n\t * `Status` is default for inline-notification & toast component\n\t * `alertdialog` is default for actionable-notification\n\t */\n\t@HostBinding(\"attr.role\") get roleAttr(): string {\n\t\treturn this._notificationObj.role;\n\t}\n\n\t/**\n\t * Emits on close.\n\t */\n\t@Output() close: EventEmitter<any> = new EventEmitter();\n\n\t// Provides access to the component instance\n\tcomponentRef: ComponentRef<BaseNotification>;\n\n\t// Get icon name(value) for service based on the notification type (key)\n\treadonly iconDictionary = {\n\t\t\"error\": \"error--filled\",\n\t\t\"info\": \"information--filled\",\n\t\t\"info-square\": \"information--square--filled\",\n\t\t\"success\": \"checkmark--filled\",\n\t\t\"warning\": \"warning--filled\",\n\t\t\"warning-alt\": \"warning--alt--filled\"\n\t};\n\n\tprotected defaultNotificationObj: NotificationContent = {\n\t\ttitle: \"\",\n\t\tmessage: \"\",\n\t\ttype: \"info\" as NotificationType,\n\t\tshowClose: true,\n\t\tcloseLabel: this.i18n.get(\"NOTIFICATION.CLOSE_BUTTON\"),\n\t\trole: \"status\"\n\t};\n\n\tprotected _notificationObj: NotificationContent = Object.assign({}, this.defaultNotificationObj);\n\n\tconstructor(\n\t\tprotected notificationDisplayService: NotificationDisplayService,\n\t\tprotected i18n: I18n\n\t) { }\n\n\t/**\n\t * Emits close event.\n\t */\n\tonClose() {\n\t\tthis.close.emit();\n\t}\n\n\tonClick(action, event) {\n\t\tif (!action.click) {\n\t\t\treturn;\n\t\t}\n\t\tif (isObservable(action.click)) {\n\t\t\t(action.click as Subject<{ event: Event, action: any }>).next({ event, action });\n\t\t} else {\n\t\t\taction.click({ event, action });\n\t\t}\n\t}\n\n\tdestroy() {\n\t\tthis.notificationDisplayService.close(this);\n\t}\n}\n","import {\n\tComponent,\n\tInput,\n\tHostBinding\n} from \"@angular/core\";\n\nimport { isObservable, of } from \"rxjs\";\nimport { ActionableContent, NotificationVariants } from \"./notification-content.interface\";\nimport { I18n } from \"carbon-components-angular/i18n\";\nimport { NotificationDisplayService } from \"./notification-display.service\";\nimport { BaseNotification } from \"./base-notification.component\";\n\n/**\n * Actionable notification allows for interactive elements within a notification. There are two variants offered, inline & toast.\n *\n * [See demo](../../?path=/story/components-notification--actionable-notification)\n */\n@Component({\n\tselector: \"cds-actionable-notification, ibm-actionable-notification\",\n\ttemplate: `\n\t\t<div class=\"cds--actionable-notification__details\">\n\t\t\t<svg\n\t\t\t\t[cdsIcon]=\"iconDictionary[notificationObj.type]\"\n\t\t\t\tsize=\"20\"\n\t\t\t\t*ngIf=\"notificationObj.type\"\n\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t'cds--inline-notification__icon': notificationObj.variant === 'inline',\n\t\t\t\t\t'cds--toast-notification__icon': notificationObj.variant === 'toast'\n\t\t\t\t}\"\n\t\t\t\tclass=\"cds--actionable-notification__icon\">\n\t\t\t</svg>\n\t\t\t<div class=\"cds--actionable-notification__text-wrapper\">\n\t\t\t\t<div class=\"cds--actionable-notification__content\">\n\t\t\t\t\t<div *ngIf=\"!notificationObj.template\" cdsActionableTitle [innerHTML]=\"notificationObj.title\"></div>\n\t\t\t\t\t<div *ngIf=\"!notificationObj.template\" cdsActionableSubtitle>\n\t\t\t\t\t\t<span [innerHTML]=\"notificationObj.message\"></span>\n\t\t\t\t\t\t<ng-container *ngFor=\"let link of notificationObj.links\">\n\t\t\t\t\t\t\t<a cdsLink [href]=\"link.href\">{{link.text}}</a>\n\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t</div>\n\t\t\t\t\t<ng-container *ngTemplateOutlet=\"notificationObj.template; context: { $implicit: notificationObj }\"></ng-container>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<ng-container *ngIf=\"!notificationObj.actionsTemplate\">\n\t\t\t<button\n\t\t\t\t*ngFor=\"let action of notificationObj.actions\"\n\t\t\t\t(click)=\"onClick(action, $event)\"\n\t\t\t\t[cdsButton]=\"notificationObj.variant === 'inline' ? 'ghost' : 'tertiary'\"\n\t\t\t\tsize=\"sm\"\n\t\t\t\tcdsActionableButton>\n\t\t\t\t{{action.text}}\n\t\t\t</button>\n\t\t</ng-container>\n\t\t<ng-container *ngTemplateOutlet=\"notificationObj.actionsTemplate; context: { $implicit: notificationObj }\"></ng-container>\n\t\t<button\n\t\t\t*ngIf=\"!isCloseHidden\"\n\t\t\t(click)=\"onClose()\"\n\t\t\tclass=\"cds--actionable-notification__close-button\"\n\t\t\t[attr.aria-label]=\"notificationObj.closeLabel | async\"\n\t\t\ttype=\"button\">\n\t\t\t<svg cdsIcon=\"close\" size=\"16\" class=\"cds--actionable-notification__close-icon\"></svg>\n\t\t</button>\n\t`\n})\nexport class ActionableNotification extends BaseNotification {\n\tprivate static notificationCount = 0;\n\t/**\n\t * Can have `type`, `title`, and `message` members.\n\t *\n\t * `type` can be one of `\"error\"`, `\"info\"`, `\"info-square\"`, `\"warning\"`, `\"warning-alt\"`, or `\"success\"`\n\t *\n\t * `message` is the message to display\n\t */\n\t@Input() get notificationObj(): ActionableContent {\n\t\treturn this._notificationObj;\n\t}\n\tset notificationObj(obj: ActionableContent) {\n\t\tif (obj.closeLabel && !isObservable(obj.closeLabel)) {\n\t\t\tobj.closeLabel = of(obj.closeLabel);\n\t\t}\n\t\tthis._notificationObj = Object.assign({}, this.defaultNotificationObj, obj);\n\t}\n\n\t@HostBinding(\"attr.id\") notificationID = `notification-${ActionableNotification.notificationCount++}`;\n\t@HostBinding(\"class.cds--actionable-notification\") notificationClass = true;\n\t@HostBinding(\"class.cds--actionable-notification--toast\") get toastVariant() { return this.notificationObj.variant === \"toast\"; }\n\t@HostBinding(\"class.cds--actionable-notification--error\") get isError() { return this.notificationObj.type === \"error\"; }\n\t@HostBinding(\"class.cds--actionable-notification--info\") get isInfo() { return this.notificationObj.type === \"info\"; }\n\t@HostBinding(\"class.cds--actionable-notification--info-square\") get isInfoSquare() { return this.notificationObj.type === \"info-square\"; }\n\t@HostBinding(\"class.cds--actionable-notification--success\") get isSuccess() { return this.notificationObj.type === \"success\"; }\n\t@HostBinding(\"class.cds--actionable-notification--warning\") get isWarning() { return this.notificationObj.type === \"warning\"; }\n\t@HostBinding(\"class.cds--actionable-notification--warning-alt\") get isWarningAlt() { return this.notificationObj.type === \"warning-alt\"; }\n\t@HostBinding(\"class.cds--actionable-notification--low-contrast\") get isLowContrast() { return this.notificationObj.lowContrast; }\n\t@HostBinding(\"class.cds--actionable-notification--hide-close-button\") get isCloseHidden() { return !this._notificationObj.showClose; }\n\n\t/**\n\t * Set default variant & role, alternatives can be provided through notificationObj property\n\t */\n\tdefaultNotificationObj = {\n\t\t...this.defaultNotificationObj,\n\t\tvariant: \"inline\" as NotificationVariants,\n\t\trole: \"alertdialog\"\n\t};\n\n\tconstructor(protected notificationDisplayService: NotificationDisplayService, protected i18n: I18n) {\n\t\tsuper(notificationDisplayService, i18n);\n\t}\n}\n","import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n\tselector: \"[cdsNotificationSubtitle], [ibmNotificationSubtitle]\"\n})\nexport class NotificationSubtitle {\n\t@HostBinding(\"class.cds--inline-notification__subtitle\") baseClass = true;\n}\n","import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n\tselector: \"[cdsNotificationTitle], [ibmNotificationTitle]\"\n})\nexport class NotificationTitle {\n\t@HostBinding(\"class.cds--inline-notification__title\") baseClass = true;\n}\n","import {\n\tComponent,\n\tInput,\n\tHostBinding\n} from \"@angular/core\";\n\nimport { NotificationContent } from \"./notification-content.interface\";\nimport { I18n } from \"carbon-components-angular/i18n\";\nimport { NotificationDisplayService } from \"./notification-display.service\";\nimport { isObservable, of } from \"rxjs\";\nimport { BaseNotification } from \"./base-notification.component\";\n\n/**\n * Notification messages are displayed toward the top of the UI and do not interrupt user’s work.\n *\n * [See demo](../../?path=/story/components-notification--basic)\n */\n@Component({\n\tselector: \"cds-notification, cds-inline-notification, ibm-notification, ibm-inline-notification\",\n\ttemplate: `\n\t\t<div class=\"cds--inline-notification__details\">\n\t\t\t<svg\n\t\t\t\t[cdsIcon]=\"iconDictionary[notificationObj.type]\"\n\t\t\t\tsize=\"20\"\n\t\t\t\t*ngIf=\"notificationObj.type\"\n\t\t\t\tclass=\"cds--inline-notification__icon\">\n\t\t\t</svg>\n\t\t\t<div class=\"cds--inline-notification__text-wrapper\">\n\t\t\t\t<div *ngIf=\"!notificationObj.template\" cdsNotificationTitle [innerHTML]=\"notificationObj.title\"></div>\n\t\t\t\t<div *ngIf=\"!notificationObj.template\" cdsNotificationSubtitle>\n\t\t\t\t\t<span [innerHTML]=\"notificationObj.message\"></span>\n\t\t\t\t</div>\n\t\t\t\t<ng-container *ngTemplateOutlet=\"notificationObj.template; context: { $implicit: notificationObj}\"></ng-container>\n\t\t\t</div>\n\t\t</div>\n\t\t<button\n\t\t\t*ngIf=\"!isCloseHidden\"\n\t\t\t(click)=\"onClose()\"\n\t\t\tclass=\"cds--inline-notification__close-button\"\n\t\t\t[attr.aria-label]=\"notificationObj.closeLabel | async\"\n\t\t\ttype=\"button\">\n\t\t\t<svg cdsIcon=\"close\" size=\"16\" class=\"cds--inline-notification__close-icon\"></svg>\n\t\t</button>\n\t`\n})\nexport class Notification extends BaseNotification {\n\tprivate static notificationCount = 0;\n\t/**\n\t * Can have `type`, `title`, and `message` members.\n\t *\n\t * `type` can be one of `\"error\"`, `\"info\"`, `\"info-square\"`, `\"warning\"`, `\"warning-alt\"`, or `\"success\"`\n\t *\n\t * `message` is the message to display\n\t */\n\t@Input() get notificationObj(): NotificationContent {\n\t\treturn this._notificationObj;\n\t}\n\tset notificationObj(obj: NotificationContent) {\n\t\tif (obj.closeLabel && !isObservable(obj.closeLabel)) {\n\t\t\tobj.closeLabel = of(obj.closeLabel);\n\t\t}\n\t\tthis._notificationObj = Object.assign({}, this.defaultNotificationObj, obj);\n\t}\n\n\t@HostBinding(\"attr.id\") notificationID = `notification-${Notification.notificationCount++}`;\n\t@HostBinding(\"class.cds--inline-notification\") notificationClass = true;\n\t@HostBinding(\"class.cds--inline-notification--error\") get isError() { return this.notificationObj.type === \"error\"; }\n\t@HostBinding(\"class.cds--inline-notification--info\") get isInfo() { return this.notificationObj.type === \"info\"; }\n\t@HostBinding(\"class.cds--inline-notification--info-square\") get isInfoSquare() { return this.notificationObj.type === \"info-square\"; }\n\t@HostBinding(\"class.cds--inline-notification--success\") get isSuccess() { return this.notificationObj.type === \"success\"; }\n\t@HostBinding(\"class.cds--inline-notification--warning\") get isWarning() { return this.notificationObj.type === \"warning\"; }\n\t@HostBinding(\"class.cds--inline-notification--warning-alt\") get isWarningAlt() { return this.notificationObj.type === \"warning-alt\"; }\n\t@HostBinding(\"class.cds--inline-notification--low-contrast\") get isLowContrast() { return this.notificationObj.lowContrast; }\n\t@HostBinding(\"class.cds--inline-notification--hide-close-button\") get isCloseHidden() { return !this.notificationObj.showClose; }\n\n\tconstructor(protected notificationDisplayService: NotificationDisplayService, protected i18n: I18n) {\n\t\tsuper(notificationDisplayService, i18n);\n\t}\n}\n","import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n\tselector: \"[cdsToastTitle], [ibmToastTitle]\"\n})\nexport class ToastTitle {\n\t@HostBinding(\"class.cds--toast-notification__title\") baseClass = true;\n}\n","import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n\tselector: \"[cdsToastSubtitle], [ibmToastSubtitle]\"\n})\nexport class ToastSubtitle {\n\t@HostBinding(\"class.cds--toast-notification__subtitle\") baseClass = true;\n}\n","import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n\tselector: \"[cdsToastCaption], [ibmToastCaption]\"\n})\nexport class ToastCaption {\n\t@HostBinding(\"class.cds--toast-notification__caption\") baseClass = true;\n}\n","import {\n\tComponent,\n\tInput,\n\tOnInit,\n\tHostBinding\n} from \"@angular/core\";\n\nimport { isObservable, of } from \"rxjs\";\nimport { ToastContent } from \"./notification-content.interface\";\nimport { NotificationDisplayService } from \"./notification-display.service\";\nimport { I18n } from \"carbon-components-angular/i18n\";\nimport { BaseNotification } from \"./base-notification.component\";\n\n/**\n * Toast messages are displayed toward the top of the UI and do not interrupt user’s work.\n *\n * [See demo](../../?path=/story/components-notification--toast)\n */\n@Component({\n\tselector: \"cds-toast, ibm-toast\",\n\ttemplate: `\n\t\t<svg\n\t\t\t[cdsIcon]=\"iconDictionary[notificationObj.type]\"\n\t\t\tsize=\"20\"\n\t\t\t*ngIf=\"notificationObj.type\"\n\t\t\tclass=\"cds--toast-notification__icon\">\n\t\t</svg>\n\t\t<div class=\"cds--toast-notification__details\">\n\t\t\t<h3 *ngIf=\"!notificationObj.template\" cdsToastTitle [innerHTML]=\"notificationObj.title\"></h3>\n\t\t\t<div *ngIf=\"!notificationObj.template\" cdsToastSubtitle>\n\t\t\t\t<span [innerHTML]=\"notificationObj.subtitle\"></span>\n\t\t\t</div>\n\t\t\t<p *ngIf=\"!notificationObj.template\" cdsToastCaption [innerHTML]=\"notificationObj.caption\"></p>\n\t\t\t<ng-container *ngTemplateOutlet=\"notificationObj.template; context: { $implicit: notificationObj }\"></ng-container>\n\t\t</div>\n\t\t<button\n\t\t\t*ngIf=\"!isCloseHidden\"\n\t\t\tclass=\"cds--toast-notification__close-button\"\n\t\t\ttype=\"button\"\n\t\t\t[attr.aria-label]=\"notificationObj.closeLabel | async\"\n\t\t\t(click)=\"onClose()\">\n\t\t\t<svg cdsIcon=\"close\" size=\"16\" class=\"cds--toast-notification__close-icon\"></svg>\n\t\t</button>\n\t`\n})\nexport class Toast extends BaseNotification implements OnInit {\n\tprivate static toastCount = 0;\n\t/**\n\t * Can have `type`, `title`, `subtitle`, and `caption` members.\n\t *\n\t * `type` can be one of `\"error\"`, `\"info\"`, `\"info-square\"`, `\"warning\"`, `\"warning-alt\"`, or `\"success\"`\n\t */\n\t@Input() set notificationObj(obj: ToastContent) {\n\t\tif (obj.closeLabel && !isObservable(obj.closeLabel)) {\n\t\t\tobj.closeLabel = of(obj.closeLabel);\n\t\t}\n\t\tthis._notificationObj = Object.assign({}, this.defaultNotificationObj, obj);\n\t}\n\n\tget notificationObj(): ToastContent {\n\t\treturn this._notificationObj as ToastContent;\n\t}\n\n\n\t@HostBinding(\"attr.id\") toastID = `toast-${Toast.toastCount++}`;\n\t@HostBinding(\"class.cds--toast-notification\") toastClass = true;\n\t@HostBinding(\"class.cds--toast-notification--error\") get isError() { return this.notificationObj.type === \"error\"; }\n\t@HostBinding(\"class.cds--toast-notification--info\") get isInfo() { return this.notificationObj.type === \"info\"; }\n\t@HostBinding(\"class.cds--toast-notification--info-square\") get isInfoSquare() { return this.notificationObj.type === \"info-square\"; }\n\t@HostBinding(\"class.cds--toast-notification--success\") get isSuccess() { return this.notificationObj.type === \"success\"; }\n\t@HostBinding(\"class.cds--toast-notification--warning\") get isWarning() { return this.notificationObj.type === \"warning\"; }\n\t@HostBinding(\"class.cds--toast-notification--warning-alt\") get isWarningAlt() { return this.notificationObj.type === \"warning-alt\"; }\n\t@HostBinding(\"class.cds--toast-notification--low-contrast\") get isLowContrast() { return this.notificationObj.lowContrast; }\n\t@HostBinding(\"class.cds--toast-notification--hide-close-button\") get isCloseHidden() { return !this.notificationObj.showClose; }\n\n\tconstructor(protected notificationDisplayService: NotificationDisplayService, protected i18n: I18n) {\n\t\tsuper(notificationDisplayService, i18n);\n\t}\n\n\tngOnInit() {\n\t\tif (!this.notificationObj.closeLabel) {\n\t\t\tthis.notificationObj.closeLabel = this.i18n.get().NOTIFICATION.CLOSE_BUTTON;\n\t\t}\n\t}\n}\n","import {\n\tComponentRef,\n\tEventEmitter,\n\tInjectable,\n\tOnDestroy,\n\tNgZone,\n\tViewContainerRef,\n\tInjector\n} from \"@angular/core\";\n\nimport { NotificationContent, ToastContent, ActionableContent } from \"./notification-content.interface\";\nimport { Notification } from \"./notification.component\";\nimport { Toast } from \"./toast.component\";\nimport { ActionableNotification } from \"./actionable-notification.component\";\n\n/**\n * Provides a way to use the notification component.\n *\n * Notifications are displayed toward the top of the UI and do not interrupt the user’s work.\n */\n@Injectable()\nexport class NotificationService implements OnDestroy {\n\t/**\n\t * An array containing `ComponentRef`s to all the notifications this service instance\n\t * is responsible for.\n\t *\n\t */\n\tpublic notificationRefs = new Array<ComponentRef<any>>();\n\tpublic onClose: EventEmitter<any> = new EventEmitter();\n\n\t/**\n\t * Constructs Notification Service\n\t */\n\tconstructor(\n\t\tprotected injector: Injector,\n\t\tprotected viewContainer: ViewContainerRef,\n\t\tprotected ngZone: NgZone\n\t) {}\n\n\t/**\n\t * Shows the notification based on the `notificationObj`.\n\t *\n\t * @param notificationObj Can have `type`, `message`, `target`, `duration` and `smart` members.\n\t *\n\t * **Members:**\n\t *\n\t * * `type` can be one of `\"info\"`, `\"warning\"`, `\"danger\"`, `\"success\"`\n\t * * `message` is message for notification to display\n\t * * `target` is css selector defining an element to append notification to. If not provided,\n\t * `showNotification()` creates a place for the notification in `body`\n\t * * `duration` is number of ms to close the notification after. If used in combination with `smart`,\n\t * it's added to the calculated timeout\n\t * * `smart`, set to `true` if you want to use smart notification.\n\t *\n\t * **Example:**\n\t * ```typescript\n\t * // Info notification, saying \"Sample message.\" added to the element with id notification-container\n\t * // uses smart timeout with added duration of 1 second.\n\t * {\n\t *\ttype: \"info\",\n\t *\tmessage: \"Sample message.\",\n\t *\ttarget: \"#notification-container\",\n\t *\tduration: 1000,\n\t *\tsmart: true\n\t * }\n\t * ```\n\t *\n\t * @param [notificationComp=Notification] If provided, used to resolve component factory\n\t */\n\tshowNotification(\n\t\tnotificationObj: NotificationContent | ToastContent | ActionableContent,\n\t\tnotificationComp = Notification\n\t) {\n\t\tconst notificationRef = this.viewContainer.createComponent(notificationComp);\n\t\tnotificationRef.instance.notificationObj = notificationObj;\n\t\tthis.notificationRefs.push(notificationRef);\n\n\t\tthis.onClose = notificationRef.instance.close;\n\n\t\tif (notificationObj.target) {\n\t\t\tdocument.querySelector(notificationObj.target).appendChild(notificationRef.location.nativeElement);\n\t\t} else {\n\t\t\tlet body = document.querySelector(\"body\");\n\n\t\t\t// get or create a container for alert list\n\t\t\tlet notificationClassName = \"notification-overlay\";\n\t\t\tlet notificationList = body.querySelector(`.${notificationClassName}`);\n\t\t\tif (!notificationList) {\n\t\t\t\tnotificationList = document.createElement(\"div\");\n\t\t\t\tnotificationList.className = notificationClassName;\n\t\t\t\tbody.appendChild(notificationList);\n\t\t\t}\n\n\t\t\t// add the notification to the top of the list\n\t\t\tif (notificationList.firstChild) {\n\t\t\t\tnotificationList.insertBefore(notificationRef.location.nativeElement, notificationList.firstChild);\n\t\t\t} else {\n\t\t\t\tnotificationList.appendChild(notificationRef.location.nativeElement);\n\t\t\t}\n\t\t}\n\n\t\tif (notificationObj.duration && notificationObj.duration > 0) {\n\t\t\tthis.ngZone.runOutsideAngular(() => {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.ngZone.run(() => {\n\t\t\t\t\t\tthis.close(notificationRef);\n\t\t\t\t\t});\n\t\t\t\t}, notificationObj.duration);\n\t\t\t});\n\t\t}\n\n\t\tif (notificationObj.smart) {\n\t\t\tthis.ngZone.runOutsideAngular(() => {\n\t\t\t\t// let it disappear after calculated timeout\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.ngZone.run(() => {\n\t\t\t\t\t\tthis.close(notificationRef);\n\t\t\t\t\t});\n\t\t\t\t}, this.getSmartTimeout(notificationObj));\n\t\t\t});\n\t\t}\n\n\t\tthis.onClose.subscribe(() => {\n\t\t\tthis.close(notificationRef);\n\t\t});\n\n\t\tnotificationRef.instance.componentRef = notificationRef;\n\t\treturn notificationRef.instance;\n\t}\n\n\tshowToast(notificationObj: NotificationContent | ToastContent, notificationComp = Toast) {\n\t\treturn this.showNotification(notificationObj, notificationComp as any);\n\t}\n\n\tshowActionable(notificationObj: ActionableContent, notificationComp = ActionableNotification) {\n\t\treturn this.showNotification(notificationObj, notificationComp as any);\n\t}\n\n\t/**\n\t * Programatically closes notification based on `notificationRef`.\n\t *\n\t * @param notificationRef `ComponentRef` of a notification or `Notification` component you wish to close\n\t */\n\tclose(notificationRef: any) {\n\t\tif (notificationRef) {\n\t\t\tif (notificationRef instanceof Notification) {\n\t\t\t\tthis.close(notificationRef.componentRef);\n\t\t\t} else {\n\t\t\t\tnotificationRef.destroy();\n\t\t\t\tconst index = this.notificationRefs.indexOf(notificationRef);\n\t\t\t\tif (index !== -1) {\n\t\t\t\t\tthis.notificationRefs.splice(index, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Calculates the amount of time user needs to read the message in the notification.\n\t *\n\t * @param notificationObj Same object used to instantiate notification.\n\t *\n\t * In addition to `type` and `message` members, use `duration` member to add\n\t * some extra time (in ms) to timeout if you need to.\n\t * @returns calculated timeout (in ms) for smart notification\n\t */\n\tgetSmartTimeout(notificationObj): number {\n\t\t// calculate timeout\n\t\tlet timeout = 600; // start with reaction time\n\n\t\t// custom duration\n\t\ttimeout += notificationObj.duration || 0;\n\n\t\t// message type\n\t\tswitch (notificationObj.type) {\n\t\t\tcase \"info\":\n\t\t\tcase \"info-square\":\n\t\t\tcase \"success\":\n\t\t\tdefault: {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"danger\": {\n\t\t\t\ttimeout += 3000;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"warning\":\n\t\t\tcase \"warning-alt\": {\n\t\t\t\ttimeout += 1500;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t// message length\n\t\t// average reader reads around 200 words per minute, or it takes them ~0.3s per word\n\t\t// let's use 1.5 factor for below average speed readers and have 0.45s per word\n\t\tlet wordCount = notificationObj.message.trim().split(/\\s+/).length;\n\t\ttimeout += wordCount * 450;\n\n\t\treturn timeout;\n\t}\n\n\t/**\n\t * OnDestroy hook.\n\t *\n\t * Destroys all living notifications it is responsible for.\n\t *\n\t */\n\tngOnDestroy() {\n\t\tthis.notificationRefs.forEach((ref) => {\n\t\t\tref.destroy();\n\t\t});\n\t}\n}\n","import { NgModule } from \"@angular/core\";\nimport { ButtonModule } from \"carbon-components-angular/button\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { ActionableNotification } from \"./actionable-notification.component\";\nimport { ActionableButton } from \"./actionable-button.directive\";\nimport { ActionableTitle } from \"./actionable-title.directive\";\nimport { ActionableSubtitle } from \"./actionable-subtitle.directive\";\nimport { BaseNotification } from \"./base-notification.component\";\nimport { Toast } from \"./toast.component\";\nimport { ToastTitle } from \"./toast-title.directive\";\nimport { ToastSubtitle } from \"./toast-subtitle.directive\";\nimport { ToastCaption } from \"./toast-caption.directive\";\nimport { NotificationTitle } from \"./notification-title.directive\";\nimport { NotificationSubtitle } from \"./notification-subtitle.directive\";\nimport { Notification } from \"./notification.component\";\nimport { NotificationService } from \"./notification.service\";\nimport { NotificationDisplayService } from \"./notification-display.service\";\nimport { I18nModule } from \"carbon-components-angular/i18n\";\nimport { ExperimentalModule } from \"carbon-components-angular/experimental\";\nimport { LinkModule } from \"carbon-components-angular/link\";\nimport { IconModule } from \"carbon-components-angular/icon\";\n\n@NgModule({\n\tdeclarations: [\n\t\tActionableButton,\n\t\tActionableNotification,\n\t\tActionableTitle,\n\t\tActionableSubtitle,\n\t\tBaseNotification,\n\t\tNotification,\n\t\tToast,\n\t\tToastTitle,\n\t\tToastSubtitle,\n\t\tToastCaption,\n\t\tNotificationTitle,\n\t\tNotificationSubtitle\n\t],\n\texports: [\n\t\tNotification,\n\t\tActionableButton,\n\t\tActionableNotification,\n\t\tActionableTitle,\n\t\tActionableSubtitle,\n\t\tToast,\n\t\tToastTitle,\n\t\tToastSubtitle,\n\t\tToastCaption,\n\t\tNotificationTitle,\n\t\tNotificationSubtitle\n\t],\n\timports: [\n\t\tButtonModule,\n\t\tCommonModule,\n\t\tI18nModule,\n\t\tExperimentalModule,\n\t\tLinkModule,\n\t\tIconModule\n\t],\n\tproviders: [NotificationService, NotificationDisplayService]\n})\nexport class NotificationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.NotificationDisplayService","i4","i6","i7.ActionableButton","i8.ActionableTitle","i9.ActionableSubtitle","i3","i5.NotificationTitle","i6.NotificationSubtitle","i5.ToastTitle","i6.ToastSubtitle","i7.ToastCaption"],"mappings":"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