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
249 lines • 17.8 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';
/*
*
*/
var AlertComponent = /** @class */ (function () {
/**
* @method constructor
* @param changeDetectorRef [description]
* @param ngZone [description]
* @param renderer2 [description]
* @param viewContainerRef [description]
*/
function AlertComponent(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();
}
Object.defineProperty(AlertComponent.prototype, "callout", {
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this.type = value ? 'callout' : 'alert';
},
enumerable: true,
configurable: true
});
Object.defineProperty(AlertComponent.prototype, "_isDismissible", {
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this.isDismissible = value;
if (value) {
this.dismissibleClass = this.type + "-dismissible";
}
else {
this.dismissibleClass = '';
}
},
enumerable: true,
configurable: true
});
/**
* @method ngOnInit
*/
/**
* \@method ngOnInit
* @return {?}
*/
AlertComponent.prototype.ngAfterViewInit = /**
* \@method ngOnInit
* @return {?}
*/
function () {
var _this = this;
this.ngZone.runOutsideAngular((/**
* @return {?}
*/
function () {
if (_this.dismissOnTimeout) {
setTimeout((/**
* @return {?}
*/
function () {
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 {?}
*/
function () {
_this.remove = true;
_this.changeDetectorRef.detectChanges();
})));
}
}));
};
/**
* @method ngOnDesroy
*/
/**
* \@method ngOnDesroy
* @return {?}
*/
AlertComponent.prototype.ngOnDestroy = /**
* \@method ngOnDesroy
* @return {?}
*/
function () {
removeListeners(this.listeners);
};
/**
* [collapseStart description]
* @method collapseStart
* @param event [description]
*/
/**
* [collapseStart description]
* \@method collapseStart
* @param {?} event [description]
* @return {?}
*/
AlertComponent.prototype.collapseStart = /**
* [collapseStart description]
* \@method collapseStart
* @param {?} event [description]
* @return {?}
*/
function (event) {
this.onCollapseStart.emit(event);
};
/**
* [collapseDone description]
* @method collapseDone
* @param event [description]
*/
/**
* [collapseDone description]
* \@method collapseDone
* @param {?} event [description]
* @return {?}
*/
AlertComponent.prototype.collapseDone = /**
* [collapseDone description]
* \@method collapseDone
* @param {?} event [description]
* @return {?}
*/
function (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 = function () { return [
{ 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 },] }]
};
return AlertComponent;
}());
export { AlertComponent };
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vYWQtY3VzdG9tLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9hbGVydC9hbGVydC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDWSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFDOUYsS0FBSyxFQUFFLE1BQU0sRUFBYSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFDM0UsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7OztBQUs3QztJQXFDSTs7Ozs7O09BTUc7SUFDSCx3QkFDWSxpQkFBb0MsRUFDcEMsTUFBYyxFQUNkLFNBQW9CLEVBQ3BCLGdCQUFrQztRQUhsQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUF6Q3ZDLHFCQUFnQixHQUFHLG1CQUFtQixDQUFDO1FBQ3ZDLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFFZixTQUFJLEdBQUcsT0FBTyxDQUFDO1FBRWQsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUVQLG9CQUFlLEdBQUcsUUFBUSxDQUFDO1FBYzNCLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFFZixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDckMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBaUJqRCxDQUFDO0lBakNMLHNCQUFvQixtQ0FBTzs7Ozs7UUFBM0IsVUFBNEIsS0FBYztZQUN0QyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMs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QUUsZ0JBQWdCLEVBQUU7O0lBb0U5RSxxQkFBQztDQUFBLEFBdkdELElBdUdDO1NBakdZLGNBQWM7OztJQUN2QiwwQ0FBOEM7O0lBQzlDLHVDQUE0Qjs7SUFDNUIsZ0NBQXNCOztJQUN0QixpQ0FBd0I7O0lBQ3hCLDhCQUFzQjs7Ozs7SUFFdEIsbUNBQXVCOztJQUV2Qix5Q0FBMkM7O0lBSTNDLCtCQUE4Qjs7SUFDOUIsMENBQXlDOztJQVN6QyxvQ0FBZ0M7O0lBRWhDLHlDQUFzRDs7SUFDdEQsd0NBQXFEOzs7OztJQUVyRCw2Q0FBNEY7Ozs7O0lBQzVGLDZDQUEwSDs7Ozs7SUFVdEgsMkNBQTRDOzs7OztJQUM1QyxnQ0FBc0I7Ozs7O0lBQ3RCLG1DQUE0Qjs7Ozs7SUFDNUIsMENBQTBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsXHJcbiAgICBJbnB1dCwgTmdab25lLCBPbkRlc3Ryb3ksIE91dHB1dCwgUmVuZGVyZXIyLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYsIFZpZXdSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEFuaW1hdGlvbkV2ZW50IH0gZnJvbSAnLi4vYW5pbWF0aW9ucy9hbmltYXRpb25zLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IHJlbW92ZUxpc3RlbmVycyB9IGZyb20gJy4uL2hlbHBlcnMnO1xyXG5cclxuLypcclxuICpcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdtay1hbGVydCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYWxlcnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vYWxlcnQuY29tcG9uZW50LmNzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEFsZXJ0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICAgIHB1YmxpYyBkaXNtaXNzaWJsZUNsYXNzID0gJ2FsZXJ0LWRpc21pc3NpYmxlJztcclxuICAgIHB1YmxpYyBpc0Rpc21pc3NpYmxlID0gdHJ1ZTtcclxuICAgIHB1YmxpYyByZW1vdmUgPSBmYWxzZTtcclxuICAgIHB1YmxpYyByZW1vdmVkOiBib29sZWFuO1xyXG4gICAgcHVibGljIHR5cGUgPSAnYWxlcnQnO1xyXG5cclxuICAgIHByaXZhdGUgbGlzdGVuZXJzID0gW107XHJcblxyXG4gICAgQElucHV0KCkgcHVibGljIGJhY2tncm91bmRDb2xvciA9ICdkYW5nZXInO1xyXG4gICAgQElucHV0KCkgcHVibGljIHNldCBjYWxsb3V0KHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy50eXBlID0gdmFsdWUgPyAnY2FsbG91dCcgOiAnYWxlcnQnO1xyXG4gICAgfVxyXG4gICAgQElucHV0KCkgcHVibGljIGNvbG9yOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgZGlzbWlzc09uVGltZW91dDogbnVtYmVyO1xyXG4gICAgQElucHV0KCdpc0Rpc21pc3NpYmxlJykgcHVibGljIHNldCBfaXNEaXNtaXNzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuaXNEaXNtaXNzaWJsZSA9IHZhbHVlO1xyXG4gICAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmRpc21pc3NpYmxlQ2xhc3MgPSBgJHt0aGlzLnR5cGV9LWRpc21pc3NpYmxlYDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmRpc21pc3NpYmxlQ2xhc3MgPSAnJztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgc3R5bGVDbGFzcyA9ICcnO1xyXG5cclxuICAgIEBPdXRwdXQoKSBwdWJsaWMgb25Db2xsYXBzZVN0YXJ0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIHB1YmxpYyBvbkNvbGxhcHNlRG9uZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdyZW1vdmVCdXR0b25FbGVtZW50JywgeyBzdGF0aWM6IHRydWUgfSkgcHJpdmF0ZSByZW1vdmVCdXR0b25FbGVtZW50OiBFbGVtZW50UmVmO1xyXG4gICAgQFZpZXdDaGlsZCgnY29udGFpbmVyRWxlbWVudFJlZicsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIHByaXZhdGUgY29udGFpbmVyRWxlbWVudFJlZjogVmlld0NvbnRhaW5lclJlZjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBtZXRob2QgY29uc3RydWN0b3JcclxuICAgICAqIEBwYXJhbSAgY2hhbmdlRGV0ZWN0b3JSZWYgW2Rlc2NyaXB0aW9uXVxyXG4gICAgICogQHBhcmFtICBuZ1pvbmUgICAgICAgICAgICBbZGVzY3JpcHRpb25dXHJcbiAgICAgKiBAcGFyYW0gIHJlbmRlcmVyMiAgICAgICAgIFtkZXNjcmlwdGlvbl1cclxuICAgICAqIEBwYXJhbSAgdmlld0NvbnRhaW5lclJlZiAgW2Rlc2NyaXB0aW9uXVxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxyXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXIyOiBSZW5kZXJlcjIsXHJcbiAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmXHJcbiAgICApIHsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQG1ldGhvZCBuZ09uSW5pdFxyXG4gICAgICovXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5kaXNtaXNzT25UaW1lb3V0KSB7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoISh0aGlzLmNoYW5nZURldGVjdG9yUmVmIGFzIFZpZXdSZWYpLmRlc3Ryb3llZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sIHRoaXMuZGlzbWlzc09uVGltZW91dCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRoaXMucmVtb3ZlQnV0dG9uRWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5saXN0ZW5lcnMucHVzaCh0aGlzLnJlbmRlcmVyMi5saXN0ZW4odGhpcy5yZW1vdmVCdXR0b25FbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdjbGljaycsICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBtZXRob2QgbmdPbkRlc3JveVxyXG4gICAgICovXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICByZW1vdmVMaXN0ZW5lcnModGhpcy5saXN0ZW5lcnMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2NvbGxhcHNlU3RhcnQgZGVzY3JpcHRpb25dXHJcbiAgICAgKiBAbWV0aG9kIGNvbGxhcHNlU3RhcnRcclxuICAgICAqIEBwYXJhbSBldmVudCBbZGVzY3JpcHRpb25dXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjb2xsYXBzZVN0YXJ0KGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25Db2xsYXBzZVN0YXJ0LmVtaXQoZXZlbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2NvbGxhcHNlRG9uZSBkZXNjcmlwdGlvbl1cclxuICAgICAqIEBtZXRob2QgY29sbGFwc2VEb25lXHJcbiAgICAgKiBAcGFyYW0gZXZlbnQgW2Rlc2NyaXB0aW9uXVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY29sbGFwc2VEb25lKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGlmIChldmVudC50b1N0YXRlID09PSAnMScpIHtcclxuICAgICAgICAgICAgdGhpcy5saXN0ZW5lcnMgPSByZW1vdmVMaXN0ZW5lcnModGhpcy5saXN0ZW5lcnMpO1xyXG4gICAgICAgICAgICB0aGlzLnJlbW92ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcclxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMub25Db2xsYXBzZURvbmUuZW1pdChldmVudCk7XHJcbiAgICB9XHJcbn1cclxuIl19