@c-standard/angular-devui-extension
Version:
an extensional components lib for devui
110 lines • 10.5 kB
JavaScript
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