UNPKG

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
/** * @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>&times;</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