1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var core_1 = require("@angular/core");
|
4 | var flash_message_1 = require("./flash-message");
|
5 | var flash_messages_service_1 = require("./flash-messages.service");
|
6 | var FlashMessagesComponent = (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\">×</span></button>\n <div [innerHTML]=\"message.text\"></div>\n </div> \n </div>\n "
|
65 | },] },
|
66 | ];
|
67 |
|
68 | FlashMessagesComponent.ctorParameters = function () { return [
|
69 | { type: flash_messages_service_1.FlashMessagesService },
|
70 | { type: core_1.ChangeDetectorRef }
|
71 | ]; };
|
72 | return FlashMessagesComponent;
|
73 | }());
|
74 | exports.FlashMessagesComponent = FlashMessagesComponent;
|
75 |
|
\ | No newline at end of file |