UNPKG

@ngx-performance-ui/ui

Version:
200 lines 15.9 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ElementRef, EventEmitter, Injector, Input, Output, Renderer2, TemplateRef, ViewChild, ViewEncapsulation, } from '@angular/core'; import { Select } from '@ngxs/store'; import { Observable, Subject, timer } from 'rxjs'; import { filter, take, takeUntil } from 'rxjs/operators'; import { EventListenerState } from '@ngx-performance-ui/core'; var ModalComponent = /** @class */ (function () { function ModalComponent(injector, renderer) { this.injector = injector; this.renderer = renderer; this.centered = true; this.modalClass = ''; this.size = 'md'; this.visibleChange = new EventEmitter(); this._visible = false; this.closable = false; this.destroy$ = new Subject(); this.cdRef = injector.get(ChangeDetectorRef); } Object.defineProperty(ModalComponent.prototype, "visible", { get: /** * @return {?} */ function () { return this._visible; }, set: /** * @param {?} value * @return {?} */ function (value) { var _this = this; if (value) { this.setVisible(value); this.listen(); } else { this.closable = false; this.renderer.addClass(this.modalContent.nativeElement, 'fade-out-top'); setTimeout((/** * @return {?} */ function () { _this.setVisible(value); _this.renderer.removeClass(_this.modalContent.nativeElement, 'fade-out-top'); _this.ngOnDestroy(); }), 400); } }, enumerable: true, configurable: true }); /** * @return {?} */ ModalComponent.prototype.ngOnDestroy = /** * @return {?} */ function () { this.destroy$.next(); }; /** * @param {?} value * @return {?} */ ModalComponent.prototype.setVisible = /** * @param {?} value * @return {?} */ function (value) { var _this = this; this._visible = value; this.visibleChange.emit(value); value ? timer(500) .pipe(take(1)) .subscribe((/** * @param {?} _ * @return {?} */ function (_) { return (_this.closable = true); })) : (this.closable = false); }; /** * @return {?} */ ModalComponent.prototype.listen = /** * @return {?} */ function () { var _this = this; this.click$ .pipe(takeUntil(this.destroy$), filter((/** * @param {?} event * @return {?} */ function (event) { return event && _this.closable && _this.modalContent && !_this.modalContent.nativeElement.contains(event.target); }))) .subscribe((/** * @param {?} _ * @return {?} */ function (_) { _this.visible = false; })); this.keyup$ .pipe(takeUntil(this.destroy$), filter((/** * @param {?} key * @return {?} */ function (key) { return key && key.code === 'Escape' && _this.closable; }))) .subscribe((/** * @param {?} _ * @return {?} */ function (_) { _this.visible = false; })); }; ModalComponent.decorators = [ { type: Component, args: [{ selector: 'p-modal', template: "<!-- Modal -->\n<div\n id=\"p-modal\"\n tabindex=\"-1\"\n class=\"modal fade {{ modalClass }}\"\n [class.show]=\"visible\"\n [style.display]=\"visible ? 'block' : 'none'\"\n [style.padding-right.px]=\"'15'\"\n>\n <perfect-scrollbar style=\"max-height: auto;\" [config]=\"{ suppressScrollX: true }\">\n <div\n style=\"position: relative; max-width: 600px;\"\n id=\"p-modal-container\"\n class=\"modal-dialog modal-{{ size }} fade-in-top\"\n [class.modal-dialog-centered]=\"centered\"\n #pModalContent\n >\n <div #content id=\"p-modal-content\" class=\"modal-content\">\n <div id=\"p-modal-header\" class=\"modal-header\">\n <ng-container *ngTemplateOutlet=\"pHeader\"></ng-container>\n\n <button id=\"p-modal-close-button\" type=\"button\" class=\"close\" (click)=\"visible = false\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n <div id=\"p-modal-body\" class=\"modal-body\">\n <ng-container *ngTemplateOutlet=\"pBody\"></ng-container>\n\n <div id=\"p-modal-footer\" class=\"modal-footer\">\n <ng-container *ngTemplateOutlet=\"pFooter\"></ng-container>\n </div>\n </div>\n </div>\n </div>\n </perfect-scrollbar>\n\n <ng-content></ng-content>\n</div>\n", changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None }] } ]; /** @nocollapse */ ModalComponent.ctorParameters = function () { return [ { type: Injector }, { type: Renderer2 } ]; }; ModalComponent.propDecorators = { visible: [{ type: Input }], centered: [{ type: Input }], modalClass: [{ type: Input }], size: [{ type: Input }], visibleChange: [{ type: Output }], pHeader: [{ type: ContentChild, args: ['pHeader',] }], pBody: [{ type: ContentChild, args: ['pBody',] }], pFooter: [{ type: ContentChild, args: ['pFooter',] }], modalContent: [{ type: ViewChild, args: ['pModalContent',] }] }; tslib_1.__decorate([ Select(EventListenerState.getOne('click')), tslib_1.__metadata("design:type", Observable) ], ModalComponent.prototype, "click$", void 0); tslib_1.__decorate([ Select(EventListenerState.getOne('keyup')), tslib_1.__metadata("design:type", Observable) ], ModalComponent.prototype, "keyup$", void 0); return ModalComponent; }()); export { ModalComponent }; if (false) { /** @type {?} */ ModalComponent.prototype.centered; /** @type {?} */ ModalComponent.prototype.modalClass; /** @type {?} */ ModalComponent.prototype.size; /** @type {?} */ ModalComponent.prototype.visibleChange; /** @type {?} */ ModalComponent.prototype.pHeader; /** @type {?} */ ModalComponent.prototype.pBody; /** @type {?} */ ModalComponent.prototype.pFooter; /** @type {?} */ ModalComponent.prototype.modalContent; /** @type {?} */ ModalComponent.prototype.click$; /** @type {?} */ ModalComponent.prototype.keyup$; /** @type {?} */ ModalComponent.prototype._visible; /** @type {?} */ ModalComponent.prototype.closable; /** * @type {?} * @protected */ ModalComponent.prototype.cdRef; /** @type {?} */ ModalComponent.prototype.destroy$; /** @type {?} */ ModalComponent.prototype.injector; /** * @type {?} * @private */ ModalComponent.prototype.renderer; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neC1wZXJmb3JtYW5jZS11aS91aS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL21vZGFsL21vZGFsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixRQUFRLEVBQ1IsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJOUQ7SUF3REUsd0JBQW1CLFFBQWtCLEVBQVUsUUFBbUI7UUFBL0MsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUE5QnpELGFBQVEsR0FBWSxJQUFJLENBQUM7UUFFekIsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUV4QixTQUFJLEdBQWMsSUFBSSxDQUFDO1FBRXRCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQWdCdEQsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUUxQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBSTFCLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRzdCLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFD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QUFTOzs7MEJBbUJSLEtBQUs7MkJBbUJMLEtBQUs7NkJBRUwsS0FBSzt1QkFFTCxLQUFLO2dDQUVMLE1BQU07MEJBRU4sWUFBWSxTQUFDLFNBQVM7d0JBRXRCLFlBQVksU0FBQyxPQUFPOzBCQUVwQixZQUFZLFNBQUMsU0FBUzsrQkFFdEIsU0FBUyxTQUFDLGVBQWU7O0lBRzFCO1FBREMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQzswQ0FDbkMsVUFBVTtrREFBUTtJQUcxQjtRQURDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7MENBQ25DLFVBQVU7a0RBQWdCO0lBa0RwQyxxQkFBQztDQUFBLEFBaEdELElBZ0dDO1NBMUZZLGNBQWM7OztJQW9CekIsa0NBQWtDOztJQUVsQyxvQ0FBaUM7O0lBRWpDLDhCQUFnQzs7SUFFaEMsdUNBQXNEOztJQUV0RCxpQ0FBbUQ7O0lBRW5ELCtCQUErQzs7SUFFL0MsaUNBQW1EOztJQUVuRCxzQ0FBcUQ7O0lBRXJELGdDQUMwQjs7SUFFMUIsZ0NBQ2tDOztJQUVsQyxrQ0FBMEI7O0lBRTFCLGtDQUEwQjs7Ozs7SUFFMUIsK0JBQW1DOztJQUVuQyxrQ0FBK0I7O0lBRW5CLGtDQUF5Qjs7Ozs7SUFBRSxrQ0FBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VsZWN0IH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRXZlbnRMaXN0ZW5lclN0YXRlIH0gZnJvbSAnQG5neC1wZXJmb3JtYW5jZS11aS9jb3JlJztcblxuZXhwb3J0IHR5cGUgTW9kYWxTaXplID0gJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ3hsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpXG4gIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xuICB9XG4gIHNldCB2aXNpYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLnNldFZpc2libGUodmFsdWUpO1xuICAgICAgdGhpcy5saXN0ZW4oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jbG9zYWJsZSA9IGZhbHNlO1xuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLm1vZGFsQ29udGVudC5uYXRpdmVFbGVtZW50LCAnZmFkZS1vdXQtdG9wJyk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRWaXNpYmxlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLm1vZGFsQ29udGVudC5uYXRpdmVFbGVtZW50LCAnZmFkZS1vdXQtdG9wJyk7XG4gICAgICAgIHRoaXMubmdPbkRlc3Ryb3koKTtcbiAgICAgIH0sIDQwMCk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCkgY2VudGVyZWQ6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBJbnB1dCgpIG1vZGFsQ2xhc3M6IHN0cmluZyA9ICcnO1xuXG4gIEBJbnB1dCgpIHNpemU6IE1vZGFsU2l6ZSA9ICdtZCc7XG5cbiAgQE91dHB1dCgpIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQENvbnRlbnRDaGlsZCgncEhlYWRlcicpIHBIZWFkZXI6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQENvbnRlbnRDaGlsZCgncEJvZHknKSBwQm9keTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAQ29udGVudENoaWxkKCdwRm9vdGVyJykgcEZvb3RlcjogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAVmlld0NoaWxkKCdwTW9kYWxDb250ZW50JykgbW9kYWxDb250ZW50OiBFbGVtZW50UmVmO1xuXG4gIEBTZWxlY3QoRXZlbnRMaXN0ZW5lclN0YXRlLmdldE9uZSgnY2xpY2snKSlcbiAgY2xpY2skOiBPYnNlcnZhYmxlPEV2ZW50PjtcblxuICBAU2VsZWN0KEV2ZW50TGlzdGVuZXJTdGF0ZS5nZXRPbmUoJ2tleXVwJykpXG4gIGtleXVwJDogT2JzZXJ2YWJsZTxLZXlib2FyZEV2ZW50PjtcblxuICBfdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNsb3NhYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZjtcblxuICBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGluamVjdG9yOiBJbmplY3RvciwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7XG4gICAgdGhpcy5jZFJlZiA9IGluamVjdG9yLmdldChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgfVxuXG4gIHNldFZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl92aXNpYmxlID0gdmFsdWU7XG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgIHZhbHVlXG4gICAgICA/IHRpbWVyKDUwMClcbiAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoXyA9PiAodGhpcy5jbG9zYWJsZSA9IHRydWUpKVxuICAgICAgOiAodGhpcy5jbG9zYWJsZSA9IGZhbHNlKTtcbiAgfVxuXG4gIGxpc3RlbigpIHtcbiAgICB0aGlzLmNsaWNrJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgZmlsdGVyKFxuICAgICAgICAgIChldmVudDogTW91c2VFdmVudCkgPT5cbiAgICAgICAgICAgIGV2ZW50ICYmIHRoaXMuY2xvc2FibGUgJiYgdGhpcy5tb2RhbENvbnRlbnQgJiYgIXRoaXMubW9kYWxDb250ZW50Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSxcbiAgICAgICAgKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoXyA9PiB7XG4gICAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLmtleXVwJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgZmlsdGVyKChrZXk6IEtleWJvYXJkRXZlbnQpID0+IGtleSAmJiBrZXkuY29kZSA9PT0gJ0VzY2FwZScgJiYgdGhpcy5jbG9zYWJsZSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKF8gPT4ge1xuICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICAgIH0pO1xuICB9XG59XG4iXX0=