UNPKG

@c-standard/angular-devui-extension

Version:

an extensional components lib for devui

110 lines 10.5 kB
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core'; import { PopupSizeParams } from './popup'; import * as i0 from "@angular/core"; import * as i1 from "ng-devui"; import * as i2 from "./popup-content/popup-content.component"; export class PopupComponent { constructor(modal) { this.modal = modal; this.width = 'default'; this.closed = new EventEmitter(); this.visibleChange = new EventEmitter(); } get visible() { return this._visible || false; } set visible(value) { this._visible = value; if (this._visible) { this.showPopup(); } else { this.closePopup(); } } showPopup() { const me = this; this.modalInstance = this.show({ width: this.width, template: this.modalContent, closed() { me.visible = false; me.closed.emit(); }, }).modalInstance; } closePopup() { this.modalInstance?.hide(); } onPopupClose() { this.visibleChange.emit(false); this.modalInstance?.hide(); } show(option) { // 计算 popup比例尺寸 let width = PopupComponent.calcWidth(option.width); return this.modal.open({ width: width, placement: 'top', offsetY: window.innerHeight * 0.15 + 'px', backdropCloseable: false, contentTemplate: option.template, onClose: option.closed, }); } static calcWidth(width) { if (width) { return PopupSizeParams[width]; } else { return PopupSizeParams['default']; } } } PopupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: PopupComponent, deps: [{ token: i1.ModalService }], target: i0.ɵɵFactoryTarget.Component }); PopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: PopupComponent, selector: "d-popup", inputs: { visible: "visible", title: "title", width: "width" }, outputs: { closed: "closed", visibleChange: "visibleChange" }, viewQueries: [{ propertyName: "modalContent", first: true, predicate: ["modalContent"], descendants: true, static: true }], ngImport: i0, template: ` <ng-template #modalContent let-modalInstance="modalInstance" > <d-popup-content [title]="title" (closeBtnClick)="onPopupClose()" > <ng-content></ng-content> </d-popup-content> </ng-template> `, isInline: true, components: [{ type: i2.PopupContentComponent, selector: "d-popup-content", inputs: ["title", "ref", "footerTemplate", "bodyTemplate"], outputs: ["closeBtnClick"] }] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: PopupComponent, decorators: [{ type: Component, args: [{ selector: 'd-popup', template: ` <ng-template #modalContent let-modalInstance="modalInstance" > <d-popup-content [title]="title" (closeBtnClick)="onPopupClose()" > <ng-content></ng-content> </d-popup-content> </ng-template> `, }] }], ctorParameters: function () { return [{ type: i1.ModalService }]; }, propDecorators: { visible: [{ type: Input }], title: [{ type: Input }], width: [{ type: Input }], closed: [{ type: Output }], visibleChange: [{ type: Output }], modalContent: [{ type: ViewChild, args: ['modalContent', { static: true }] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9wb3B1cC9wb3B1cC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBZSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0YsT0FBTyxFQUFFLGVBQWUsRUFBNEIsTUFBTSxTQUFTLENBQUM7Ozs7QUFrQnBFLE1BQU0sT0FBTyxjQUFjO0lBNEJ2QixZQUFvQixLQUFtQjtRQUFuQixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBVDlCLFVBQUssR0FBNEMsU0FBUyxDQUFDO1FBRTFELFdBQU0sR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN0RCxrQkFBYSxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO0lBTW5DLENBQUM7SUF6QjNDLElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQ0ksT0FBTyxDQUFDLEtBQWM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ3BCO2FBQU07WUFDSCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDckI7SUFDTCxDQUFDO0lBZUQsU0FBUztRQUNMLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQztRQUNoQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDM0IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWTtZQUMzQixNQUFNO2dCQUNGLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUNuQixFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3JCLENBQUM7U0FDSixDQUFDLENBQUMsYUFBYSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxVQUFVO1FBQ04sSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsWUFBWTtRQUNSLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVPLElBQUksQ0FBQyxNQUFvQjtRQUM3QixlQUFlO1FBQ2YsSUFBSSxLQUFLLEdBQUcsY0FBYyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUNuQixLQUFLLEVBQUUsS0FBSztZQUNaLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLE9BQU8sRUFBRSxNQUFNLENBQUMsV0FBVyxHQUFHLElBQUksR0FBRyxJQUFJO1lBQ3pDLGlCQUFpQixFQUFFLEtBQUs7WUFDeEIsZUFBZSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1lBQ2hDLE9BQU8sRUFBRSxNQUFNLENBQUMsTUFBTTtTQUN6QixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFrQjtRQUN2QyxJQUFJLEtBQUssRUFBRTtZQUNQLE9BQU8sZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2pDO2FBQU07WUFDSCxPQUFPLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNyQztJQUNMLENBQUM7OzJHQXRFUSxjQUFjOytGQUFkLGNBQWMsMFNBZGI7Ozs7Ozs7Ozs7OztLQVlUOzJGQUVRLGNBQWM7a0JBaEIxQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxTQUFTO29CQUNuQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7OztLQVlUO2lCQUNKO21HQVNPLE9BQU87c0JBRFYsS0FBSztnQkFVRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVJLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUVzQyxZQUFZO3NCQUF4RCxTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNb2RhbENvbXBvbmVudCwgTW9kYWxTZXJ2aWNlIH0gZnJvbSAnbmctZGV2dWknO1xyXG5pbXBvcnQgeyBQb3B1cFNpemVQYXJhbXMsIFBvcHVwV2lkdGgsIERQb3B1cE9wdGlvbiB9IGZyb20gJy4vcG9wdXAnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2QtcG9wdXAnLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgICAgI21vZGFsQ29udGVudFxyXG4gICAgICAgICAgICBsZXQtbW9kYWxJbnN0YW5jZT1cIm1vZGFsSW5zdGFuY2VcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPGQtcG9wdXAtY29udGVudFxyXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cInRpdGxlXCJcclxuICAgICAgICAgICAgICAgIChjbG9zZUJ0bkNsaWNrKT1cIm9uUG9wdXBDbG9zZSgpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgICAgICAgICA8L2QtcG9wdXAtY29udGVudD5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgYCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFBvcHVwQ29tcG9uZW50IHtcclxuICAgIHByaXZhdGUgX3Zpc2libGU/OiBib29sZWFuO1xyXG5cclxuICAgIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl92aXNpYmxlIHx8IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgdmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX3Zpc2libGUgPSB2YWx1ZTtcclxuICAgICAgICBpZiAodGhpcy5fdmlzaWJsZSkge1xyXG4gICAgICAgICAgICB0aGlzLnNob3dQb3B1cCgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2VQb3B1cCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKSB0aXRsZT86IHN0cmluZztcclxuXHJcbiAgICBASW5wdXQoKSB3aWR0aDogJ3NtYWxsJyB8ICdkZWZhdWx0JyB8ICdsYXJnZScgfCAnZXh0cmEnID0gJ2RlZmF1bHQnO1xyXG5cclxuICAgIEBPdXRwdXQoKSBjbG9zZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICAgIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnbW9kYWxDb250ZW50JywgeyBzdGF0aWM6IHRydWUgfSkgbW9kYWxDb250ZW50PzogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgICBtb2RhbEluc3RhbmNlPzogTW9kYWxDb21wb25lbnQ7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBtb2RhbDogTW9kYWxTZXJ2aWNlKSB7fVxyXG5cclxuICAgIHNob3dQb3B1cCgpIHtcclxuICAgICAgICBjb25zdCBtZSA9IHRoaXM7XHJcbiAgICAgICAgdGhpcy5tb2RhbEluc3RhbmNlID0gdGhpcy5zaG93KHtcclxuICAgICAgICAgICAgd2lkdGg6IHRoaXMud2lkdGgsXHJcbiAgICAgICAgICAgIHRlbXBsYXRlOiB0aGlzLm1vZGFsQ29udGVudCxcclxuICAgICAgICAgICAgY2xvc2VkKCkge1xyXG4gICAgICAgICAgICAgICAgbWUudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgbWUuY2xvc2VkLmVtaXQoKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KS5tb2RhbEluc3RhbmNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlUG9wdXAoKSB7XHJcbiAgICAgICAgdGhpcy5tb2RhbEluc3RhbmNlPy5oaWRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25Qb3B1cENsb3NlKCkge1xyXG4gICAgICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgICB0aGlzLm1vZGFsSW5zdGFuY2U/LmhpZGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNob3cob3B0aW9uOiBEUG9wdXBPcHRpb24pIHtcclxuICAgICAgICAvLyDorqHnrpcgcG9wdXDmr5TkvovlsLrlr7hcclxuICAgICAgICBsZXQgd2lkdGggPSBQb3B1cENvbXBvbmVudC5jYWxjV2lkdGgob3B0aW9uLndpZHRoKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5tb2RhbC5vcGVuKHtcclxuICAgICAgICAgICAgd2lkdGg6IHdpZHRoLFxyXG4gICAgICAgICAgICBwbGFjZW1lbnQ6ICd0b3AnLFxyXG4gICAgICAgICAgICBvZmZzZXRZOiB3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjE1ICsgJ3B4JyxcclxuICAgICAgICAgICAgYmFja2Ryb3BDbG9zZWFibGU6IGZhbHNlLFxyXG4gICAgICAgICAgICBjb250ZW50VGVtcGxhdGU6IG9wdGlvbi50ZW1wbGF0ZSxcclxuICAgICAgICAgICAgb25DbG9zZTogb3B0aW9uLmNsb3NlZCxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBjYWxjV2lkdGgod2lkdGg/OiBQb3B1cFdpZHRoKSB7XHJcbiAgICAgICAgaWYgKHdpZHRoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBQb3B1cFNpemVQYXJhbXNbd2lkdGhdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBQb3B1cFNpemVQYXJhbXNbJ2RlZmF1bHQnXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19