ad-custom-lib
Version:
This is an UI custom library based on Adminlte library with purpose for personal use, if you need a full template of Primeng please visit https://github.com/mledour/angular-admin-lte
202 lines • 16.1 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, NgZone, Output, Renderer2, ViewChild, ViewContainerRef } from '@angular/core';
import { removeListeners } from '../helpers';
/*
*
*/
export class AlertComponent {
/**
* \@method constructor
* @param {?} changeDetectorRef [description]
* @param {?} ngZone [description]
* @param {?} renderer2 [description]
* @param {?} viewContainerRef [description]
*/
constructor(changeDetectorRef, ngZone, renderer2, viewContainerRef) {
this.changeDetectorRef = changeDetectorRef;
this.ngZone = ngZone;
this.renderer2 = renderer2;
this.viewContainerRef = viewContainerRef;
this.dismissibleClass = 'alert-dismissible';
this.isDismissible = true;
this.remove = false;
this.type = 'alert';
this.listeners = [];
this.backgroundColor = 'danger';
this.styleClass = '';
this.onCollapseStart = new EventEmitter();
this.onCollapseDone = new EventEmitter();
}
/**
* @param {?} value
* @return {?}
*/
set callout(value) {
this.type = value ? 'callout' : 'alert';
}
/**
* @param {?} value
* @return {?}
*/
set _isDismissible(value) {
this.isDismissible = value;
if (value) {
this.dismissibleClass = `${this.type}-dismissible`;
}
else {
this.dismissibleClass = '';
}
}
/**
* \@method ngOnInit
* @return {?}
*/
ngAfterViewInit() {
this.ngZone.runOutsideAngular((/**
* @return {?}
*/
() => {
if (this.dismissOnTimeout) {
setTimeout((/**
* @return {?}
*/
() => {
if (!((/** @type {?} */ (this.changeDetectorRef))).destroyed) {
this.remove = true;
this.changeDetectorRef.detectChanges();
}
}), this.dismissOnTimeout);
}
if (this.removeButtonElement) {
this.listeners.push(this.renderer2.listen(this.removeButtonElement.nativeElement, 'click', (/**
* @return {?}
*/
() => {
this.remove = true;
this.changeDetectorRef.detectChanges();
})));
}
}));
}
/**
* \@method ngOnDesroy
* @return {?}
*/
ngOnDestroy() {
removeListeners(this.listeners);
}
/**
* [collapseStart description]
* \@method collapseStart
* @param {?} event [description]
* @return {?}
*/
collapseStart(event) {
this.onCollapseStart.emit(event);
}
/**
* [collapseDone description]
* \@method collapseDone
* @param {?} event [description]
* @return {?}
*/
collapseDone(event) {
if (event.toState === '1') {
this.listeners = removeListeners(this.listeners);
this.removed = true;
this.viewContainerRef.clear();
this.changeDetectorRef.detectChanges();
}
this.onCollapseDone.emit(event);
}
}
AlertComponent.decorators = [
{ type: Component, args: [{
selector: 'mk-alert',
template: "<div *ngIf=\"!removed\" [mkCollapseAnimation]=\"remove\" (mkCollapseAnimation.start)=\"collapseStart($event)\"\r\n (mkCollapseAnimation.done)=\"collapseDone($event)\">\r\n <div [mkColor]=\"backgroundColor\" mkColorProperty=\"background-color\" [mkColorPrefix]=\"type\" [mkFontColor]=\"color\"\r\n [ngClass]=\"[styleClass, dismissibleClass, type]\">\r\n <button *ngIf=\"isDismissible\" type=\"button\" class=\"close\" #removeButtonElement>×</button>\r\n <ng-content></ng-content>\r\n </div>\r\n</div>",
changeDetection: ChangeDetectionStrategy.OnPush,
styles: [".callout-dismissable,.callout-dismissible{padding-right:35px}.callout-dismissable .close,.callout-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.callout .close{color:#000;opacity:.2}.callout .icon{margin-right:10px}"]
}] }
];
/** @nocollapse */
AlertComponent.ctorParameters = () => [
{ type: ChangeDetectorRef },
{ type: NgZone },
{ type: Renderer2 },
{ type: ViewContainerRef }
];
AlertComponent.propDecorators = {
backgroundColor: [{ type: Input }],
callout: [{ type: Input }],
color: [{ type: Input }],
dismissOnTimeout: [{ type: Input }],
_isDismissible: [{ type: Input, args: ['isDismissible',] }],
styleClass: [{ type: Input }],
onCollapseStart: [{ type: Output }],
onCollapseDone: [{ type: Output }],
removeButtonElement: [{ type: ViewChild, args: ['removeButtonElement', { static: true },] }],
containerElementRef: [{ type: ViewChild, args: ['containerElementRef', { static: true, read: ViewContainerRef },] }]
};
if (false) {
/** @type {?} */
AlertComponent.prototype.dismissibleClass;
/** @type {?} */
AlertComponent.prototype.isDismissible;
/** @type {?} */
AlertComponent.prototype.remove;
/** @type {?} */
AlertComponent.prototype.removed;
/** @type {?} */
AlertComponent.prototype.type;
/**
* @type {?}
* @private
*/
AlertComponent.prototype.listeners;
/** @type {?} */
AlertComponent.prototype.backgroundColor;
/** @type {?} */
AlertComponent.prototype.color;
/** @type {?} */
AlertComponent.prototype.dismissOnTimeout;
/** @type {?} */
AlertComponent.prototype.styleClass;
/** @type {?} */
AlertComponent.prototype.onCollapseStart;
/** @type {?} */
AlertComponent.prototype.onCollapseDone;
/**
* @type {?}
* @private
*/
AlertComponent.prototype.removeButtonElement;
/**
* @type {?}
* @private
*/
AlertComponent.prototype.containerElementRef;
/**
* @type {?}
* @private
*/
AlertComponent.prototype.changeDetectorRef;
/**
* @type {?}
* @private
*/
AlertComponent.prototype.ngZone;
/**
* @type {?}
* @private
*/
AlertComponent.prototype.renderer2;
/**
* @type {?}
* @private
*/
AlertComponent.prototype.viewContainerRef;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vYWQtY3VzdG9tLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9hbGVydC9hbGVydC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDWSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFDOUYsS0FBSyxFQUFFLE1BQU0sRUFBYSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFDM0UsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7OztBQVc3QyxNQUFNLE9BQU8sY0FBYzs7Ozs7Ozs7SUFzQ3ZCLFlBQ1ksaUJBQW9DLEVBQ3BDLE1BQWMsRUFDZCxTQUFvQixFQUNwQixnQkFBa0M7UUFIbEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBekN2QyxxQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQztRQUN2QyxrQkFBYSxHQUFHLElBQUksQ0FBQztRQUNyQixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBRWYsU0FBSSxHQUFHLE9BQU8sQ0FBQztRQUVkLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFFUCxvQkFBZSxHQUFHLFFBQVEsQ0FBQztRQWMzQixlQUFVLEdBQUcsRUFBRSxDQUFDO1FBRWYsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3JDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQWlCakQsQ0FBQzs7Ozs7SUFqQ0wsSUFBb0IsT0FBTyxDQUFDLEtBQWM7UUFDdEMsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENB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OztJQUV2Qix5Q0FBMkM7O0lBSTNDLCtCQUE4Qjs7SUFDOUIsMENBQXlDOztJQVN6QyxvQ0FBZ0M7O0lBRWhDLHlDQUFzRDs7SUFDdEQsd0NBQXFEOzs7OztJQUVyRCw2Q0FBNEY7Ozs7O0lBQzVGLDZDQUEwSDs7Ozs7SUFVdEgsMkNBQTRDOzs7OztJQUM1QyxnQ0FBc0I7Ozs7O0lBQ3RCLG1DQUE0Qjs7Ozs7SUFDNUIsMENBQTBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsXHJcbiAgICBJbnB1dCwgTmdab25lLCBPbkRlc3Ryb3ksIE91dHB1dCwgUmVuZGVyZXIyLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYsIFZpZXdSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEFuaW1hdGlvbkV2ZW50IH0gZnJvbSAnLi4vYW5pbWF0aW9ucy9hbmltYXRpb25zLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IHJlbW92ZUxpc3RlbmVycyB9IGZyb20gJy4uL2hlbHBlcnMnO1xyXG5cclxuLypcclxuICpcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdtay1hbGVydCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYWxlcnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vYWxlcnQuY29tcG9uZW50LmNzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEFsZXJ0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICAgIHB1YmxpYyBkaXNtaXNzaWJsZUNsYXNzID0gJ2FsZXJ0LWRpc21pc3NpYmxlJztcclxuICAgIHB1YmxpYyBpc0Rpc21pc3NpYmxlID0gdHJ1ZTtcclxuICAgIHB1YmxpYyByZW1vdmUgPSBmYWxzZTtcclxuICAgIHB1YmxpYyByZW1vdmVkOiBib29sZWFuO1xyXG4gICAgcHVibGljIHR5cGUgPSAnYWxlcnQnO1xyXG5cclxuICAgIHByaXZhdGUgbGlzdGVuZXJzID0gW107XHJcblxyXG4gICAgQElucHV0KCkgcHVibGljIGJhY2tncm91bmRDb2xvciA9ICdkYW5nZXInO1xyXG4gICAgQElucHV0KCkgcHVibGljIHNldCBjYWxsb3V0KHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy50eXBlID0gdmFsdWUgPyAnY2FsbG91dCcgOiAnYWxlcnQnO1xyXG4gICAgfVxyXG4gICAgQElucHV0KCkgcHVibGljIGNvbG9yOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgZGlzbWlzc09uVGltZW91dDogbnVtYmVyO1xyXG4gICAgQElucHV0KCdpc0Rpc21pc3NpYmxlJykgcHVibGljIHNldCBfaXNEaXNtaXNzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuaXNEaXNtaXNzaWJsZSA9IHZhbHVlO1xyXG4gICAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmRpc21pc3NpYmxlQ2xhc3MgPSBgJHt0aGlzLnR5cGV9LWRpc21pc3NpYmxlYDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmRpc21pc3NpYmxlQ2xhc3MgPSAnJztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgc3R5bGVDbGFzcyA9ICcnO1xyXG5cclxuICAgIEBPdXRwdXQoKSBwdWJsaWMgb25Db2xsYXBzZVN0YXJ0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIHB1YmxpYyBvbkNvbGxhcHNlRG9uZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdyZW1vdmVCdXR0b25FbGVtZW50JywgeyBzdGF0aWM6IHRydWUgfSkgcHJpdmF0ZSByZW1vdmVCdXR0b25FbGVtZW50OiBFbGVtZW50UmVmO1xyXG4gICAgQFZpZXdDaGlsZCgnY29udGFpbmVyRWxlbWVudFJlZicsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIHByaXZhdGUgY29udGFpbmVyRWxlbWVudFJlZjogVmlld0NvbnRhaW5lclJlZjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBtZXRob2QgY29uc3RydWN0b3JcclxuICAgICAqIEBwYXJhbSAgY2hhbmdlRGV0ZWN0b3JSZWYgW2Rlc2NyaXB0aW9uXVxyXG4gICAgICogQHBhcmFtICBuZ1pvbmUgICAgICAgICAgICBbZGVzY3JpcHRpb25dXHJcbiAgICAgKiBAcGFyYW0gIHJlbmRlcmVyMiAgICAgICAgIFtkZXNjcmlwdGlvbl1cclxuICAgICAqIEBwYXJhbSAgdmlld0NvbnRhaW5lclJlZiAgW2Rlc2NyaXB0aW9uXVxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxyXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXIyOiBSZW5kZXJlcjIsXHJcbiAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmXHJcbiAgICApIHsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQG1ldGhvZCBuZ09uSW5pdFxyXG4gICAgICovXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5kaXNtaXNzT25UaW1lb3V0KSB7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoISh0aGlzLmNoYW5nZURldGVjdG9yUmVmIGFzIFZpZXdSZWYpLmRlc3Ryb3llZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sIHRoaXMuZGlzbWlzc09uVGltZW91dCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRoaXMucmVtb3ZlQnV0dG9uRWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5saXN0ZW5lcnMucHVzaCh0aGlzLnJlbmRlcmVyMi5saXN0ZW4odGhpcy5yZW1vdmVCdXR0b25FbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdjbGljaycsICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBtZXRob2QgbmdPbkRlc3JveVxyXG4gICAgICovXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICByZW1vdmVMaXN0ZW5lcnModGhpcy5saXN0ZW5lcnMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2NvbGxhcHNlU3RhcnQgZGVzY3JpcHRpb25dXHJcbiAgICAgKiBAbWV0aG9kIGNvbGxhcHNlU3RhcnRcclxuICAgICAqIEBwYXJhbSBldmVudCBbZGVzY3JpcHRpb25dXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjb2xsYXBzZVN0YXJ0KGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25Db2xsYXBzZVN0YXJ0LmVtaXQoZXZlbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2NvbGxhcHNlRG9uZSBkZXNjcmlwdGlvbl1cclxuICAgICAqIEBtZXRob2QgY29sbGFwc2VEb25lXHJcbiAgICAgKiBAcGFyYW0gZXZlbnQgW2Rlc2NyaXB0aW9uXVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY29sbGFwc2VEb25lKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGlmIChldmVudC50b1N0YXRlID09PSAnMScpIHtcclxuICAgICAgICAgICAgdGhpcy5saXN0ZW5lcnMgPSByZW1vdmVMaXN0ZW5lcnModGhpcy5saXN0ZW5lcnMpO1xyXG4gICAgICAgICAgICB0aGlzLnJlbW92ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcclxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMub25Db2xsYXBzZURvbmUuZW1pdChldmVudCk7XHJcbiAgICB9XHJcbn1cclxuIl19