ngx-bootstrap
Version:
Native Angular Bootstrap Components
155 lines • 11 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';
import { AlertConfig } from './alert.config';
import { OnChange } from 'ngx-bootstrap/utils';
var AlertComponent = /** @class */ (function () {
function AlertComponent(_config, changeDetection) {
var _this = this;
this.changeDetection = changeDetection;
/**
* Alert type.
* Provides one of four bootstrap supported contextual classes:
* `success`, `info`, `warning` and `danger`
*/
this.type = 'warning';
/**
* If set, displays an inline "Close" button
*/
this.dismissible = false;
/**
* Is alert visible
*/
this.isOpen = true;
/**
* This event fires immediately after close instance method is called,
* $event is an instance of Alert component.
*/
this.onClose = new EventEmitter();
/**
* This event fires when alert closed, $event is an instance of Alert component
*/
this.onClosed = new EventEmitter();
this.classes = '';
this.dismissibleChange = new EventEmitter();
Object.assign(this, _config);
this.dismissibleChange.subscribe(function (dismissible) {
_this.classes = _this.dismissible ? 'alert-dismissible' : '';
_this.changeDetection.markForCheck();
});
}
/**
* @return {?}
*/
AlertComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
var _this = this;
if (this.dismissOnTimeout) {
// if dismissOnTimeout used as attr without binding, it will be a string
setTimeout(function () { return _this.close(); }, parseInt((/** @type {?} */ (this.dismissOnTimeout)), 10));
}
};
// todo: animation ` If the .fade and .in classes are present on the element,
// the alert will fade out before it is removed`
/**
* Closes an alert by removing it from the DOM.
*/
// todo: animation ` If the .fade and .in classes are present on the element,
// the alert will fade out before it is removed`
/**
* Closes an alert by removing it from the DOM.
* @return {?}
*/
AlertComponent.prototype.close =
// todo: animation ` If the .fade and .in classes are present on the element,
// the alert will fade out before it is removed`
/**
* Closes an alert by removing it from the DOM.
* @return {?}
*/
function () {
if (!this.isOpen) {
return;
}
this.onClose.emit(this);
this.isOpen = false;
this.changeDetection.markForCheck();
this.onClosed.emit(this);
};
AlertComponent.decorators = [
{ type: Component, args: [{
selector: 'alert,bs-alert',
template: "<ng-template [ngIf]=\"isOpen\">\n <div [class]=\"'alert alert-' + type\" role=\"alert\" [ngClass]=\"classes\">\n <ng-template [ngIf]=\"dismissible\">\n <button type=\"button\" class=\"close\" aria-label=\"Close\" (click)=\"close()\">\n <span aria-hidden=\"true\">×</span>\n <span class=\"sr-only\">Close</span>\n </button>\n </ng-template>\n <ng-content></ng-content>\n </div>\n</ng-template>\n",
changeDetection: ChangeDetectionStrategy.OnPush
}] }
];
/** @nocollapse */
AlertComponent.ctorParameters = function () { return [
{ type: AlertConfig },
{ type: ChangeDetectorRef }
]; };
AlertComponent.propDecorators = {
type: [{ type: Input }],
dismissible: [{ type: Input }],
dismissOnTimeout: [{ type: Input }],
isOpen: [{ type: Input }],
onClose: [{ type: Output }],
onClosed: [{ type: Output }]
};
tslib_1.__decorate([
OnChange(),
tslib_1.__metadata("design:type", Object)
], AlertComponent.prototype, "dismissible", void 0);
return AlertComponent;
}());
export { AlertComponent };
if (false) {
/**
* Alert type.
* Provides one of four bootstrap supported contextual classes:
* `success`, `info`, `warning` and `danger`
* @type {?}
*/
AlertComponent.prototype.type;
/**
* If set, displays an inline "Close" button
* @type {?}
*/
AlertComponent.prototype.dismissible;
/**
* Number in milliseconds, after which alert will be closed
* @type {?}
*/
AlertComponent.prototype.dismissOnTimeout;
/**
* Is alert visible
* @type {?}
*/
AlertComponent.prototype.isOpen;
/**
* This event fires immediately after close instance method is called,
* $event is an instance of Alert component.
* @type {?}
*/
AlertComponent.prototype.onClose;
/**
* This event fires when alert closed, $event is an instance of Alert component
* @type {?}
*/
AlertComponent.prototype.onClosed;
/** @type {?} */
AlertComponent.prototype.classes;
/** @type {?} */
AlertComponent.prototype.dismissibleChange;
/**
* @type {?}
* @private
*/
AlertComponent.prototype.changeDetection;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWJvb3RzdHJhcC9hbGVydC8iLCJzb3VyY2VzIjpbImFsZXJ0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRS9DO0lBOEJFLHdCQUFZLE9BQW9CLEVBQVUsZUFBa0M7UUFBNUUsaUJBTUM7UUFOeUMsb0JBQWUsR0FBZixlQUFlLENBQW1COzs7Ozs7UUFwQm5FLFNBQUksR0FBRyxTQUFTLENBQUM7Ozs7UUFFRCxnQkFBVyxHQUFHLEtBQUssQ0FBQzs7OztRQUtwQyxXQUFNLEdBQUcsSUFBSSxDQUFDOzs7OztRQUtiLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBa0IsQ0FBQzs7OztRQUU3QyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFHeEQsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFHOUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxVQUFDLFdBQW9CO1lBQ3BELEtBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUMzRCxLQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7OztJQUVELGlDQUFROzs7SUFBUjtRQUFBLGlCQVFDO1FBUEMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDekIsd0VBQXdFO1lBQ3hFLFVBQVUsQ0FDUixjQUFNLE9BQUEsS0FBSSxDQUFDLEtBQUssRUFBRSxFQUFaLENBQVksRUFDbEIsUUFBUSxDQUFDLG1CQUFBLElBQUksQ0FBQyxnQkFBZ0IsRUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUM5QyxDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRUQsNkVBQTZFO0lBQzdFLGdEQUFnRDtJQUNoRDs7T0FFRzs7Ozs7OztJQUNILDhCQUFLOzs7Ozs7O0lBQUw7UUFDRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNoQixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7O2dCQTlERixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsK2JBQXFDO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7Ozs7Z0JBUFEsV0FBVztnQkFQbEIsaUJBQWlCOzs7dUJBb0JoQixLQUFLOzhCQUVTLEtBQUs7bUNBRW5CLEtBQUs7eUJBR0wsS0FBSzswQkFLTCxNQUFNOzJCQUVOLE1BQU07O0lBWmtCO1FBQXhCLFFBQVEsRUFBRTs7dURBQWtDO0lBbUQvQyxxQkFBQztDQUFBLEFBL0RELElBK0RDO1NBMURZLGNBQWM7Ozs7Ozs7O0lBS3pCLDhCQUEwQjs7Ozs7SUFFMUIscUNBQTZDOzs7OztJQUU3QywwQ0FBMkM7Ozs7O0lBRzNDLGdDQUF1Qjs7Ozs7O0lBS3ZCLGlDQUF1RDs7Ozs7SUFFdkQsa0NBQXdEOztJQUd4RCxpQ0FBYTs7SUFDYiwyQ0FBZ0Q7Ozs7O0lBRWQseUNBQTBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWxlcnRDb25maWcgfSBmcm9tICcuL2FsZXJ0LmNvbmZpZyc7XG5pbXBvcnQgeyBPbkNoYW5nZSB9IGZyb20gJ25neC1ib290c3RyYXAvdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhbGVydCxicy1hbGVydCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hbGVydC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEFsZXJ0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqIEFsZXJ0IHR5cGUuXG4gICAqIFByb3ZpZGVzIG9uZSBvZiBmb3VyIGJvb3RzdHJhcCBzdXBwb3J0ZWQgY29udGV4dHVhbCBjbGFzc2VzOlxuICAgKiBgc3VjY2Vzc2AsIGBpbmZvYCwgYHdhcm5pbmdgIGFuZCBgZGFuZ2VyYFxuICAgKi9cbiAgQElucHV0KCkgdHlwZSA9ICd3YXJuaW5nJztcbiAgLyoqIElmIHNldCwgZGlzcGxheXMgYW4gaW5saW5lIFwiQ2xvc2VcIiBidXR0b24gKi9cbiAgQE9uQ2hhbmdlKCkgICBASW5wdXQoKSAgIGRpc21pc3NpYmxlID0gZmFsc2U7XG4gIC8qKiBOdW1iZXIgaW4gbWlsbGlzZWNvbmRzLCBhZnRlciB3aGljaCBhbGVydCB3aWxsIGJlIGNsb3NlZCAqL1xuICBASW5wdXQoKSBkaXNtaXNzT25UaW1lb3V0OiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgLyoqIElzIGFsZXJ0IHZpc2libGUgKi9cbiAgQElucHV0KCkgaXNPcGVuID0gdHJ1ZTtcblxuICAvKiogVGhpcyBldmVudCBmaXJlcyBpbW1lZGlhdGVseSBhZnRlciBjbG9zZSBpbnN0YW5jZSBtZXRob2QgaXMgY2FsbGVkLFxuICAgKiAkZXZlbnQgaXMgYW4gaW5zdGFuY2Ugb2YgQWxlcnQgY29tcG9uZW50LlxuICAgKi9cbiAgQE91dHB1dCgpIG9uQ2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPEFsZXJ0Q29tcG9uZW50PigpO1xuICAvKiogVGhpcyBldmVudCBmaXJlcyB3aGVuIGFsZXJ0IGNsb3NlZCwgJGV2ZW50IGlzIGFuIGluc3RhbmNlIG9mIEFsZXJ0IGNvbXBvbmVudCAqL1xuICBAT3V0cHV0KCkgb25DbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEFsZXJ0Q29tcG9uZW50PigpO1xuXG5cbiAgY2xhc3NlcyA9ICcnO1xuICBkaXNtaXNzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBjb25zdHJ1Y3RvcihfY29uZmlnOiBBbGVydENvbmZpZywgcHJpdmF0ZSBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLCBfY29uZmlnKTtcbiAgICB0aGlzLmRpc21pc3NpYmxlQ2hhbmdlLnN1YnNjcmliZSgoZGlzbWlzc2libGU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHRoaXMuY2xhc3NlcyA9IHRoaXMuZGlzbWlzc2libGUgPyAnYWxlcnQtZGlzbWlzc2libGUnIDogJyc7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdGlvbi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc21pc3NPblRpbWVvdXQpIHtcbiAgICAgIC8vIGlmIGRpc21pc3NPblRpbWVvdXQgdXNlZCBhcyBhdHRyIHdpdGhvdXQgYmluZGluZywgaXQgd2lsbCBiZSBhIHN0cmluZ1xuICAgICAgc2V0VGltZW91dChcbiAgICAgICAgKCkgPT4gdGhpcy5jbG9zZSgpLFxuICAgICAgICBwYXJzZUludCh0aGlzLmRpc21pc3NPblRpbWVvdXQgYXMgc3RyaW5nLCAxMClcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLy8gdG9kbzogYW5pbWF0aW9uIGAgSWYgdGhlIC5mYWRlIGFuZCAuaW4gY2xhc3NlcyBhcmUgcHJlc2VudCBvbiB0aGUgZWxlbWVudCxcbiAgLy8gdGhlIGFsZXJ0IHdpbGwgZmFkZSBvdXQgYmVmb3JlIGl0IGlzIHJlbW92ZWRgXG4gIC8qKlxuICAgKiBDbG9zZXMgYW4gYWxlcnQgYnkgcmVtb3ZpbmcgaXQgZnJvbSB0aGUgRE9NLlxuICAgKi9cbiAgY2xvc2UoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzT3Blbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMub25DbG9zZS5lbWl0KHRoaXMpO1xuICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rpb24ubWFya0ZvckNoZWNrKCk7XG4gICAgdGhpcy5vbkNsb3NlZC5lbWl0KHRoaXMpO1xuICB9XG59XG4iXX0=