UNPKG

carbon-components-angular

Version:
87 lines 8.95 kB
import { Output, EventEmitter, HostBinding, Component } from "@angular/core"; import { isObservable } from "rxjs"; import * as i0 from "@angular/core"; import * as i1 from "./notification-display.service"; import * as i2 from "carbon-components-angular/i18n"; /** * Base class for `Notification`, `ActionableNotification`, & `Toast` * consisting of common functionality * * Get started with importing the module: * * ```typescript * import { NotificationModule } from 'carbon-components-angular'; * ``` * * [See demo](../../?path=/story/components-notification--inline-notification) */ export class BaseNotification { constructor(notificationDisplayService, i18n) { this.notificationDisplayService = notificationDisplayService; this.i18n = i18n; /** * Emits on close. */ this.close = new EventEmitter(); // Get icon name(value) for service based on the notification type (key) this.iconDictionary = { "error": "error--filled", "info": "information--filled", "info-square": "information--square--filled", "success": "checkmark--filled", "warning": "warning--filled", "warning-alt": "warning--alt--filled" }; this.defaultNotificationObj = { title: "", message: "", type: "info", showClose: true, closeLabel: this.i18n.get("NOTIFICATION.CLOSE_BUTTON"), role: "status" }; this._notificationObj = Object.assign({}, this.defaultNotificationObj); } /** * Set role attribute for component * `Status` is default for inline-notification & toast component * `alertdialog` is default for actionable-notification */ get roleAttr() { return this._notificationObj.role; } /** * Emits close event. */ onClose() { this.close.emit(); } onClick(action, event) { if (!action.click) { return; } if (isObservable(action.click)) { action.click.next({ event, action }); } else { action.click({ event, action }); } } destroy() { this.notificationDisplayService.close(this); } } BaseNotification.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BaseNotification, deps: [{ token: i1.NotificationDisplayService }, { token: i2.I18n }], target: i0.ɵɵFactoryTarget.Component }); BaseNotification.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: BaseNotification, selector: "ng-component", outputs: { close: "close" }, host: { properties: { "attr.role": "this.roleAttr" } }, ngImport: i0, template: "", isInline: true }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BaseNotification, decorators: [{ type: Component, args: [{ template: "" }] }], ctorParameters: function () { return [{ type: i1.NotificationDisplayService }, { type: i2.I18n }]; }, propDecorators: { roleAttr: [{ type: HostBinding, args: ["attr.role"] }], close: [{ type: Output }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1ub3RpZmljYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25vdGlmaWNhdGlvbi9iYXNlLW5vdGlmaWNhdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLE1BQU0sRUFDTixZQUFZLEVBQ1osV0FBVyxFQUNYLFNBQVMsRUFFVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFXLE1BQU0sTUFBTSxDQUFDOzs7O0FBSzdDOzs7Ozs7Ozs7OztHQVdHO0FBSUgsTUFBTSxPQUFPLGdCQUFnQjtJQXVDNUIsWUFDVywwQkFBc0QsRUFDdEQsSUFBVTtRQURWLCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBNEI7UUFDdEQsU0FBSSxHQUFKLElBQUksQ0FBTTtRQS9CckI7O1dBRUc7UUFDTyxVQUFLLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFLeEQsd0VBQXdFO1FBQy9ELG1CQUFjLEdBQUc7WUFDekIsT0FBTyxFQUFFLGVBQWU7WUFDeEIsTUFBTSxFQUFFLHFCQUFxQjtZQUM3QixhQUFhLEVBQUUsNkJBQTZCO1lBQzVDLFNBQVMsRUFBRSxtQkFBbUI7WUFDOUIsU0FBUyxFQUFFLGlCQUFpQjtZQUM1QixhQUFhLEVBQUUsc0JBQXNCO1NBQ3JDLENBQUM7UUFFUSwyQkFBc0IsR0FBd0I7WUFDdkQsS0FBSyxFQUFFLEVBQUU7WUFDVCxPQUFPLEVBQUUsRUFBRTtZQUNYLElBQUksRUFBRSxNQUEwQjtZQUNoQyxTQUFTLEVBQUUsSUFBSTtZQUNmLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQztZQUN0RCxJQUFJLEVBQUUsUUFBUTtTQUNkLENBQUM7UUFFUSxxQkFBZ0IsR0FBd0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFLN0YsQ0FBQztJQXpDTDs7OztPQUlHO0lBQ0gsSUFBOEIsUUFBUTtRQUNyQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7SUFDbkMsQ0FBQztJQW9DRDs7T0FFRztJQUNILE9BQU87UUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUs7UUFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7WUFDbEIsT0FBTztTQUNQO1FBQ0QsSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzlCLE1BQU0sQ0FBQyxLQUFnRCxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQ2pGO2FBQU07WUFDTixNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7U0FDaEM7SUFDRixDQUFDO0lBRUQsT0FBTztRQUNOLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0MsQ0FBQzs7NkdBaEVXLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLHlJQUZsQixFQUFFOzJGQUVBLGdCQUFnQjtrQkFINUIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsRUFBRTtpQkFDWjtvSUFPOEIsUUFBUTtzQkFBckMsV0FBVzt1QkFBQyxXQUFXO2dCQU9kLEtBQUs7c0JBQWQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdE91dHB1dCxcblx0RXZlbnRFbWl0dGVyLFxuXHRIb3N0QmluZGluZyxcblx0Q29tcG9uZW50LFxuXHRDb21wb25lbnRSZWZcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IGlzT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBJMThuIH0gZnJvbSBcImNhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXIvaTE4blwiO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uQ29udGVudCwgTm90aWZpY2F0aW9uVHlwZSB9IGZyb20gXCIuL25vdGlmaWNhdGlvbi1jb250ZW50LmludGVyZmFjZVwiO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uRGlzcGxheVNlcnZpY2UgfSBmcm9tIFwiLi9ub3RpZmljYXRpb24tZGlzcGxheS5zZXJ2aWNlXCI7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgYE5vdGlmaWNhdGlvbmAsIGBBY3Rpb25hYmxlTm90aWZpY2F0aW9uYCwgJiBgVG9hc3RgXG4gKiBjb25zaXN0aW5nIG9mIGNvbW1vbiBmdW5jdGlvbmFsaXR5XG4gKlxuICogR2V0IHN0YXJ0ZWQgd2l0aCBpbXBvcnRpbmcgdGhlIG1vZHVsZTpcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgeyBOb3RpZmljYXRpb25Nb2R1bGUgfSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyJztcbiAqIGBgYFxuICpcbiAqIFtTZWUgZGVtb10oLi4vLi4vP3BhdGg9L3N0b3J5L2NvbXBvbmVudHMtbm90aWZpY2F0aW9uLS1pbmxpbmUtbm90aWZpY2F0aW9uKVxuICovXG5AQ29tcG9uZW50KHtcblx0dGVtcGxhdGU6IFwiXCJcbn0pXG5leHBvcnQgY2xhc3MgQmFzZU5vdGlmaWNhdGlvbiB7XG5cdC8qKlxuXHQgKiBTZXQgcm9sZSBhdHRyaWJ1dGUgZm9yIGNvbXBvbmVudFxuXHQgKiBgU3RhdHVzYCBpcyBkZWZhdWx0IGZvciBpbmxpbmUtbm90aWZpY2F0aW9uICYgdG9hc3QgY29tcG9uZW50XG5cdCAqIGBhbGVydGRpYWxvZ2AgaXMgZGVmYXVsdCBmb3IgYWN0aW9uYWJsZS1ub3RpZmljYXRpb25cblx0ICovXG5cdEBIb3N0QmluZGluZyhcImF0dHIucm9sZVwiKSBnZXQgcm9sZUF0dHIoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5fbm90aWZpY2F0aW9uT2JqLnJvbGU7XG5cdH1cblxuXHQvKipcblx0ICogRW1pdHMgb24gY2xvc2UuXG5cdCAqL1xuXHRAT3V0cHV0KCkgY2xvc2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cdC8vIFByb3ZpZGVzIGFjY2VzcyB0byB0aGUgY29tcG9uZW50IGluc3RhbmNlXG5cdGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPEJhc2VOb3RpZmljYXRpb24+O1xuXG5cdC8vIEdldCBpY29uIG5hbWUodmFsdWUpIGZvciBzZXJ2aWNlIGJhc2VkIG9uIHRoZSBub3RpZmljYXRpb24gdHlwZSAoa2V5KVxuXHRyZWFkb25seSBpY29uRGljdGlvbmFyeSA9IHtcblx0XHRcImVycm9yXCI6IFwiZXJyb3ItLWZpbGxlZFwiLFxuXHRcdFwiaW5mb1wiOiBcImluZm9ybWF0aW9uLS1maWxsZWRcIixcblx0XHRcImluZm8tc3F1YXJlXCI6IFwiaW5mb3JtYXRpb24tLXNxdWFyZS0tZmlsbGVkXCIsXG5cdFx0XCJzdWNjZXNzXCI6IFwiY2hlY2ttYXJrLS1maWxsZWRcIixcblx0XHRcIndhcm5pbmdcIjogXCJ3YXJuaW5nLS1maWxsZWRcIixcblx0XHRcIndhcm5pbmctYWx0XCI6IFwid2FybmluZy0tYWx0LS1maWxsZWRcIlxuXHR9O1xuXG5cdHByb3RlY3RlZCBkZWZhdWx0Tm90aWZpY2F0aW9uT2JqOiBOb3RpZmljYXRpb25Db250ZW50ID0ge1xuXHRcdHRpdGxlOiBcIlwiLFxuXHRcdG1lc3NhZ2U6IFwiXCIsXG5cdFx0dHlwZTogXCJpbmZvXCIgYXMgTm90aWZpY2F0aW9uVHlwZSxcblx0XHRzaG93Q2xvc2U6IHRydWUsXG5cdFx0Y2xvc2VMYWJlbDogdGhpcy5pMThuLmdldChcIk5PVElGSUNBVElPTi5DTE9TRV9CVVRUT05cIiksXG5cdFx0cm9sZTogXCJzdGF0dXNcIlxuXHR9O1xuXG5cdHByb3RlY3RlZCBfbm90aWZpY2F0aW9uT2JqOiBOb3RpZmljYXRpb25Db250ZW50ID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5kZWZhdWx0Tm90aWZpY2F0aW9uT2JqKTtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRwcm90ZWN0ZWQgbm90aWZpY2F0aW9uRGlzcGxheVNlcnZpY2U6IE5vdGlmaWNhdGlvbkRpc3BsYXlTZXJ2aWNlLFxuXHRcdHByb3RlY3RlZCBpMThuOiBJMThuXG5cdCkgeyB9XG5cblx0LyoqXG5cdCAqIEVtaXRzIGNsb3NlIGV2ZW50LlxuXHQgKi9cblx0b25DbG9zZSgpIHtcblx0XHR0aGlzLmNsb3NlLmVtaXQoKTtcblx0fVxuXG5cdG9uQ2xpY2soYWN0aW9uLCBldmVudCkge1xuXHRcdGlmICghYWN0aW9uLmNsaWNrKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGlmIChpc09ic2VydmFibGUoYWN0aW9uLmNsaWNrKSkge1xuXHRcdFx0KGFjdGlvbi5jbGljayBhcyBTdWJqZWN0PHsgZXZlbnQ6IEV2ZW50LCBhY3Rpb246IGFueSB9PikubmV4dCh7IGV2ZW50LCBhY3Rpb24gfSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGFjdGlvbi5jbGljayh7IGV2ZW50LCBhY3Rpb24gfSk7XG5cdFx0fVxuXHR9XG5cblx0ZGVzdHJveSgpIHtcblx0XHR0aGlzLm5vdGlmaWNhdGlvbkRpc3BsYXlTZXJ2aWNlLmNsb3NlKHRoaXMpO1xuXHR9XG59XG4iXX0=