{"version":3,"file":"ngx-notification-bar.mjs","sources":["../../../projects/ngx-notification-bar/src/lib/notification-bar.service.ts","../../../projects/ngx-notification-bar/src/lib/notification-bar.models.ts","../../../projects/ngx-notification-bar/src/lib/notification-bar.component.ts","../../../projects/ngx-notification-bar/src/lib/notification-bar.module.ts","../../../projects/ngx-notification-bar/src/public_api.ts","../../../projects/ngx-notification-bar/src/ngx-notification-bar.ts"],"sourcesContent":["import { Injectable, EventEmitter } from '@angular/core';\r\n\r\nimport { Notification } from './notification-bar.models';\r\n\r\n/**\r\n * A service to create notification, It can be used from any component or guard\r\n */\r\n@Injectable()\r\nexport class NotificationBarService {\r\n\r\n\r\n    onCreate = new EventEmitter<Notification>();\r\n    onClose = new EventEmitter<Notification>();\r\n\r\n    constructor() {\r\n    }\r\n\r\n    create(notification: Notification) {\r\n        this.onCreate.emit(notification);\r\n    }\r\n\r\n    close(notification: Notification) {\r\n        this.onClose.emit(notification);\r\n    }\r\n}\r\n","export enum NotificationType { Info, Success, Error, Warning }\r\n\r\nexport interface Notification {\r\n  message: string;\r\n  type?: NotificationType;\r\n  typeValue?: string;\r\n  autoHide?: boolean;\r\n  hideDelay?: number;\r\n  isHtml?: boolean;\r\n  allowClose?: boolean;\r\n  hideOnHover?: boolean;\r\n}\r\n","import { trigger, state, style, transition, animate } from '@angular/animations';\r\nimport {\r\n    Component, OnInit, Optional, Inject,\r\n    InjectionToken, OnDestroy\r\n} from '@angular/core';\r\n\r\nimport { NotificationBarService } from './notification-bar.service';\r\nimport { Notification, NotificationType } from './notification-bar.models';\r\nimport { MessagesConfig } from './message-config';\r\nimport { Subscription } from 'rxjs';\r\n\r\nexport const MESSAGES_CONFIG = new InjectionToken('notification-bar.messages.config');\r\n\r\n@Component({\r\n    selector: 'notification-bar',\r\n    styles: [`\r\n        :host {\r\n          position: relative;\r\n          display: block;\r\n        }\r\n        .notifications-container {\r\n          position: fixed;\r\n          top: 0px;\r\n          right: 0;\r\n          left: 0;\r\n          line-height: 25px;\r\n          width: 100%;\r\n          z-index: 6;\r\n          overflow: hidden;\r\n        }\r\n        .notification {\r\n          position: relative;\r\n          text-align: center;\r\n          font-size: 12px;\r\n          color: #fff;\r\n        }\r\n        .message {\r\n          padding: 0 12px;\r\n        }\r\n        .error {\r\n          background-color: #F64747;\r\n          border-bottom: 1px solid #f31515;\r\n        }\r\n        .success {\r\n          background-color: #03C9A9;\r\n          border-bottom: 1px solid #02aa8f;\r\n        }\r\n        .warning {\r\n          background-color: #F7CA18;\r\n          border-bottom: 1px solid #e7ba08;\r\n        }\r\n        .info {\r\n          background-color: #0c6997;\r\n          border-bottom: 1px solid #0c6997;\r\n        }\r\n        .close-click {\r\n          font-size: 22px;\r\n          cursor: pointer;\r\n          padding: 10px;\r\n          position: relative;\r\n          top: 2px;\r\n          margin: 0 auto;\r\n        }\r\n    `],\r\n    template: `\r\n        <div class=\"notifications-container\">\r\n            <div *ngFor=\"let notification of notifications; let i = index;\"\r\n                 class=\"notification {{notification.typeValue}}\"\r\n                 (mouseover)=\"hideOnHover(notification)\"\r\n                 [@flyDown]>\r\n                <span *ngIf=\"notification.isHtml\" class=\"message\" [innerHTML]=\"notification.message\"></span>\r\n                <span *ngIf=\"!notification.isHtml\" class=\"message\">{{notification.message}}</span>\r\n                <span class=\"close-click\" *ngIf=\"notification.allowClose\" (click)=\"hideNotification(notification)\">×</span>\r\n            </div>\r\n        </div>\r\n    `,\r\n    animations: [\r\n        trigger('flyDown', [\r\n            state('in', style({\r\n                opacity: 1,\r\n                transform: 'translateY(0)'\r\n            })),\r\n            transition('void => *', [\r\n                style({\r\n                    opacity: 0,\r\n                    transform: 'translateY(-100%)'\r\n                }),\r\n                animate('600ms ease-in')\r\n            ]),\r\n            transition('* => void', [\r\n                animate('200ms ease-out', style({\r\n                    opacity: 0,\r\n                    transform: 'translateY(-100%)'\r\n                }))\r\n            ])\r\n        ])\r\n    ]\r\n})\r\nexport class NotificationBarComponent implements OnInit, OnDestroy {\r\n\r\n    notifications: Notification[] = [];\r\n\r\n    defaults = {\r\n        message: '',\r\n        type: NotificationType.Info,\r\n        autoHide: true,\r\n        hideDelay: 3000,\r\n        isHtml: false,\r\n        allowClose: false,\r\n        hideOnHover: true\r\n    };\r\n\r\n    subscription: Subscription;\r\n    // closeSubscription: Subscription;\r\n    constructor(\r\n        private notificationBarService: NotificationBarService,\r\n        @Inject(MESSAGES_CONFIG) @Optional() private config?: MessagesConfig\r\n    ) {\r\n        this.subscription = this.notificationBarService.onCreate.subscribe(this.addNotification.bind(this));\r\n        this.notificationBarService.onClose.subscribe(this.hideNotification.bind(this));\r\n    }\r\n\r\n    ngOnInit() { }\r\n\r\n    addNotification(notification: Notification) {\r\n        const newNotification = Object.assign({}, this.defaults, notification);\r\n        newNotification.typeValue = NotificationType[newNotification.type].toLowerCase();\r\n        if (this.config && this.config.messages) {\r\n            newNotification.message = this.config.messages[notification.message] || notification.message;\r\n        }\r\n\r\n        this.notifications.push(newNotification);\r\n\r\n        if (newNotification.autoHide) {\r\n            window.setTimeout(() => {\r\n                this.hideNotification(newNotification);\r\n            }, newNotification.hideDelay);\r\n        }\r\n    }\r\n\r\n    hideNotification(notification: Notification) {\r\n        const index = this.notifications.indexOf(notification);\r\n\r\n        this.notifications.splice(index, 1);\r\n    }\r\n\r\n    ngOnDestroy() {\r\n        this.subscription.unsubscribe();\r\n        // this.closeSubscription.unsubscribe();\r\n    }\r\n\r\n    hideOnHover(notification: Notification) {\r\n        if (notification.hideOnHover) {\r\n            this.hideNotification(notification);\r\n        }\r\n    }\r\n}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { NotificationBarService } from './notification-bar.service';\r\nimport { NotificationBarComponent, MESSAGES_CONFIG } from './notification-bar.component';\r\nimport { MessagesConfig } from './message-config';\r\n\r\n\r\n\r\n@NgModule({\r\n    imports: [\r\n        CommonModule,\r\n    ],\r\n    declarations: [NotificationBarComponent],\r\n    providers: [NotificationBarService],\r\n    exports: [NotificationBarComponent]\r\n})\r\nexport class NotificationBarModule {\r\n\r\n    static forRoot(config: MessagesConfig): ModuleWithProviders<NotificationBarModule> {\r\n        return {\r\n            ngModule: NotificationBarModule,\r\n            providers: [\r\n                { provide: MESSAGES_CONFIG, useValue: config }\r\n            ]\r\n        };\r\n    }\r\n}\r\n","/*\n * Public API Surface of ngx-notification-bar\n */\nexport * from './lib/message-config';\nexport * from './lib/notification-bar.component';\nexport * from './lib/notification-bar.module';\nexport * from './lib/notification-bar.service';\nexport * from './lib/notification-bar.models';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}