UNPKG

3.62 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var core_1 = require("@angular/core");
4var flash_message_1 = require("./flash-message");
5var flash_messages_service_1 = require("./flash-messages.service");
6var FlashMessagesComponent = /** @class */ (function () {
7 function FlashMessagesComponent(_flashMessagesService, _cdRef) {
8 this._flashMessagesService = _flashMessagesService;
9 this._cdRef = _cdRef;
10 this._defaults = {
11 text: 'default message',
12 closeOnClick: false,
13 showCloseBtn: false,
14 cssClass: ''
15 };
16 this.messages = [];
17 this.classes = '';
18 this._grayOut = false;
19 this._flashMessagesService.show = this.show.bind(this);
20 this._flashMessagesService.grayOut = this.grayOut.bind(this);
21 }
22 FlashMessagesComponent.prototype.ngOnInit = function () { };
23 FlashMessagesComponent.prototype.show = function (text, options) {
24 var _this = this;
25 if (options === void 0) { options = {}; }
26 var defaults = {
27 timeout: 2500,
28 closeOnClick: false,
29 showCloseBtn: false,
30 cssClass: '',
31 text: "default message"
32 };
33 for (var attrname in options) {
34 defaults[attrname] = options[attrname];
35 }
36 var message = new flash_message_1.FlashMessage(text, defaults.cssClass, defaults.closeOnClick, defaults.showCloseBtn);
37 message.timer = window.setTimeout(function () {
38 _this._remove(message);
39 _this._cdRef.detectChanges();
40 }, defaults.timeout);
41 this.messages.push(message);
42 this._cdRef.detectChanges();
43 };
44 FlashMessagesComponent.prototype.close = function (message) {
45 clearTimeout(message.timer);
46 this._remove(message);
47 this._cdRef.detectChanges();
48 };
49 FlashMessagesComponent.prototype.alertClicked = function (message) {
50 if (message.closeOnClick) {
51 this.close(message);
52 }
53 };
54 FlashMessagesComponent.prototype.grayOut = function (value) {
55 if (value === void 0) { value = false; }
56 this._grayOut = value;
57 };
58 FlashMessagesComponent.prototype._remove = function (message) {
59 this.messages = this.messages.filter(function (msg) { return msg.id !== message.id; });
60 };
61 FlashMessagesComponent.decorators = [
62 { type: core_1.Component, args: [{
63 selector: 'flash-messages',
64 template: "\n <div id=\"flashMessages\" class=\"flash-messages\">\n <div id=\"grayOutDiv\" *ngIf='_grayOut && messages.length'></div>\n <div class=\"alert flash-message {{message.cssClass}}\" [ngClass]=\"{'alert-dismissible':message.showCloseBtn}\" [style.cursor]=\"message.closeOnClick?'pointer':'inherit'\" *ngFor='let message of messages' (click)=\"alertClicked(message)\">\n <button *ngIf=\"message.showCloseBtn\" type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-label=\"Close\" (click)=\"close(message)\"><span aria-hidden=\"true\">&times;</span></button>\n <div [innerHTML]=\"message.text\"></div>\n </div> \n </div>\n "
65 },] },
66 ];
67 /** @nocollapse */
68 FlashMessagesComponent.ctorParameters = function () { return [
69 { type: flash_messages_service_1.FlashMessagesService },
70 { type: core_1.ChangeDetectorRef }
71 ]; };
72 return FlashMessagesComponent;
73}());
74exports.FlashMessagesComponent = FlashMessagesComponent;
75//# sourceMappingURL=flash-messages.component.js.map
\No newline at end of file