@ng-nest/ui 12.0.11 → 12.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/ng-nest-ui-alert.umd.js +1 -1
- package/bundles/ng-nest-ui-alert.umd.js.map +1 -1
- package/bundles/ng-nest-ui-core.umd.js.map +1 -1
- package/bundles/ng-nest-ui-dialog.umd.js +284 -32
- package/bundles/ng-nest-ui-dialog.umd.js.map +1 -1
- package/bundles/ng-nest-ui-drawer.umd.js +245 -14
- package/bundles/ng-nest-ui-drawer.umd.js.map +1 -1
- package/bundles/ng-nest-ui-input.umd.js +2 -1
- package/bundles/ng-nest-ui-input.umd.js.map +1 -1
- package/bundles/ng-nest-ui-message.umd.js +3 -3
- package/bundles/ng-nest-ui-message.umd.js.map +1 -1
- package/bundles/ng-nest-ui-portal.umd.js +8 -8
- package/bundles/ng-nest-ui-portal.umd.js.map +1 -1
- package/bundles/ng-nest-ui-progress.umd.js +235 -20
- package/bundles/ng-nest-ui-progress.umd.js.map +1 -1
- package/bundles/ng-nest-ui-select.umd.js +1 -1
- package/bundles/ng-nest-ui-steps.umd.js +19 -7
- package/bundles/ng-nest-ui-steps.umd.js.map +1 -1
- package/bundles/ng-nest-ui-table.umd.js.map +1 -1
- package/core/config/config.d.ts +4 -0
- package/dialog/dialog-container.component.d.ts +18 -0
- package/dialog/dialog-container.directives.d.ts +24 -0
- package/dialog/dialog-ref.d.ts +9 -0
- package/dialog/dialog.module.d.ts +13 -11
- package/dialog/dialog.property.d.ts +84 -6
- package/dialog/dialog.service.d.ts +19 -0
- package/dialog/public-api.d.ts +4 -0
- package/drawer/drawer-container.component.d.ts +18 -0
- package/drawer/drawer-container.directives.d.ts +19 -0
- package/drawer/drawer-ref.d.ts +9 -0
- package/drawer/drawer.module.d.ts +8 -6
- package/drawer/drawer.property.d.ts +83 -2
- package/drawer/drawer.service.d.ts +19 -0
- package/drawer/public-api.d.ts +5 -0
- package/esm2015/alert/alert.component.js +2 -2
- package/esm2015/core/config/config.js +1 -1
- package/esm2015/dialog/dialog-container.component.js +59 -0
- package/esm2015/dialog/dialog-container.directives.js +73 -0
- package/esm2015/dialog/dialog-ref.js +17 -0
- package/esm2015/dialog/dialog.component.js +2 -2
- package/esm2015/dialog/dialog.module.js +37 -7
- package/esm2015/dialog/dialog.property.js +17 -16
- package/esm2015/dialog/dialog.service.js +67 -0
- package/esm2015/dialog/public-api.js +5 -1
- package/esm2015/drawer/drawer-container.component.js +59 -0
- package/esm2015/drawer/drawer-container.directives.js +57 -0
- package/esm2015/drawer/drawer-ref.js +17 -0
- package/esm2015/drawer/drawer.component.js +2 -2
- package/esm2015/drawer/drawer.module.js +22 -6
- package/esm2015/drawer/drawer.property.js +22 -6
- package/esm2015/drawer/drawer.service.js +65 -0
- package/esm2015/drawer/public-api.js +6 -1
- package/esm2015/input/input.component.js +3 -2
- package/esm2015/message/message.property.js +2 -2
- package/esm2015/message/message.service.js +3 -3
- package/esm2015/portal/portal.module.js +4 -3
- package/esm2015/portal/portal.service.js +8 -9
- package/esm2015/progress/progress.component.js +177 -15
- package/esm2015/progress/progress.property.js +50 -3
- package/esm2015/select/select.component.js +1 -1
- package/esm2015/steps/steps.component.js +14 -7
- package/esm2015/steps/steps.property.js +8 -3
- package/esm2015/table/table.property.js +1 -1
- package/fesm2015/ng-nest-ui-alert.js +1 -1
- package/fesm2015/ng-nest-ui-alert.js.map +1 -1
- package/fesm2015/ng-nest-ui-core.js.map +1 -1
- package/fesm2015/ng-nest-ui-dialog.js +254 -25
- package/fesm2015/ng-nest-ui-dialog.js.map +1 -1
- package/fesm2015/ng-nest-ui-drawer.js +224 -13
- package/fesm2015/ng-nest-ui-drawer.js.map +1 -1
- package/fesm2015/ng-nest-ui-input.js +2 -1
- package/fesm2015/ng-nest-ui-input.js.map +1 -1
- package/fesm2015/ng-nest-ui-message.js +3 -3
- package/fesm2015/ng-nest-ui-message.js.map +1 -1
- package/fesm2015/ng-nest-ui-portal.js +10 -10
- package/fesm2015/ng-nest-ui-portal.js.map +1 -1
- package/fesm2015/ng-nest-ui-progress.js +225 -17
- package/fesm2015/ng-nest-ui-progress.js.map +1 -1
- package/fesm2015/ng-nest-ui-select.js +1 -1
- package/fesm2015/ng-nest-ui-steps.js +20 -8
- package/fesm2015/ng-nest-ui-steps.js.map +1 -1
- package/fesm2015/ng-nest-ui-table.js.map +1 -1
- package/message/message.property.d.ts +1 -1
- package/package.json +1 -1
- package/portal/portal.module.d.ts +1 -1
- package/portal/portal.service.d.ts +2 -3
- package/progress/progress.component.d.ts +31 -3
- package/progress/progress.property.d.ts +80 -5
- package/steps/steps.property.d.ts +7 -2
- package/table/table.property.d.ts +1 -1
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { EventEmitter, Component, Input, Output, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, NgModule } from '@angular/core';
|
|
3
|
-
import
|
|
2
|
+
import { InjectionToken, EventEmitter, Component, Input, Output, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, HostBinding, HostListener, Directive, Optional, TemplateRef, Injectable, NgModule } from '@angular/core';
|
|
3
|
+
import * as i2$1 from '@ng-nest/ui/core';
|
|
4
|
+
import { XInputBoolean, XWithConfig, XIsChange, XIsFunction, XMoveBoxAnimation, fillDefault } from '@ng-nest/ui/core';
|
|
4
5
|
import { __decorate } from 'tslib';
|
|
5
6
|
import * as i3 from '@ng-nest/ui/alert';
|
|
6
7
|
import { XAlertProperty, XAlertModule } from '@ng-nest/ui/alert';
|
|
7
8
|
import { Subject } from 'rxjs';
|
|
8
|
-
import { map, takeUntil } from 'rxjs/operators';
|
|
9
|
+
import { map, takeUntil, filter, take } from 'rxjs/operators';
|
|
9
10
|
import * as i1 from '@ng-nest/ui/portal';
|
|
10
11
|
import { XPortalModule } from '@ng-nest/ui/portal';
|
|
11
12
|
import * as i2 from '@ng-nest/ui/i18n';
|
|
@@ -15,10 +16,13 @@ import * as i5 from '@ng-nest/ui/outlet';
|
|
|
15
16
|
import { XOutletModule } from '@ng-nest/ui/outlet';
|
|
16
17
|
import * as i6 from '@angular/common';
|
|
17
18
|
import { CommonModule } from '@angular/common';
|
|
19
|
+
import * as i1$1 from '@angular/cdk/portal';
|
|
20
|
+
import { BasePortalOutlet, CdkPortalOutlet, TemplatePortal, ComponentPortal } from '@angular/cdk/portal';
|
|
18
21
|
import { XIconModule } from '@ng-nest/ui/icon';
|
|
19
22
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
20
23
|
import { XInputModule } from '@ng-nest/ui/input';
|
|
21
24
|
import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
25
|
+
import * as i3$1 from '@angular/cdk/overlay';
|
|
22
26
|
|
|
23
27
|
/**
|
|
24
28
|
* Dialog
|
|
@@ -26,8 +30,9 @@ import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
|
26
30
|
* @decorator component
|
|
27
31
|
*/
|
|
28
32
|
const XDialogPrefix = 'x-dialog';
|
|
29
|
-
const
|
|
33
|
+
const X_DIALOG_CONFIG_NAME = 'dialog';
|
|
30
34
|
const XDialogPortal = 'x-dialog-portal';
|
|
35
|
+
const X_DIALOG_DATA = new InjectionToken('XDialogData');
|
|
31
36
|
/**
|
|
32
37
|
* Dialog Property
|
|
33
38
|
*/
|
|
@@ -73,44 +78,44 @@ __decorate([
|
|
|
73
78
|
XInputBoolean()
|
|
74
79
|
], XDialogProperty.prototype, "visible", void 0);
|
|
75
80
|
__decorate([
|
|
76
|
-
XWithConfig(
|
|
81
|
+
XWithConfig(X_DIALOG_CONFIG_NAME, 'center')
|
|
77
82
|
], XDialogProperty.prototype, "placement", void 0);
|
|
78
83
|
__decorate([
|
|
79
|
-
XWithConfig(
|
|
84
|
+
XWithConfig(X_DIALOG_CONFIG_NAME, '1rem')
|
|
80
85
|
], XDialogProperty.prototype, "offset", void 0);
|
|
81
86
|
__decorate([
|
|
82
|
-
XWithConfig(
|
|
87
|
+
XWithConfig(X_DIALOG_CONFIG_NAME, '32rem')
|
|
83
88
|
], XDialogProperty.prototype, "width", void 0);
|
|
84
89
|
__decorate([
|
|
85
|
-
XWithConfig(
|
|
90
|
+
XWithConfig(X_DIALOG_CONFIG_NAME, 'white')
|
|
86
91
|
], XDialogProperty.prototype, "effect", void 0);
|
|
87
92
|
__decorate([
|
|
88
|
-
XWithConfig(
|
|
93
|
+
XWithConfig(X_DIALOG_CONFIG_NAME, true)
|
|
89
94
|
], XDialogProperty.prototype, "showCancel", void 0);
|
|
90
95
|
__decorate([
|
|
91
|
-
XWithConfig(
|
|
96
|
+
XWithConfig(X_DIALOG_CONFIG_NAME)
|
|
92
97
|
], XDialogProperty.prototype, "cancelText", void 0);
|
|
93
98
|
__decorate([
|
|
94
|
-
XWithConfig(
|
|
99
|
+
XWithConfig(X_DIALOG_CONFIG_NAME, true)
|
|
95
100
|
], XDialogProperty.prototype, "showConfirm", void 0);
|
|
96
101
|
__decorate([
|
|
97
|
-
XWithConfig(
|
|
102
|
+
XWithConfig(X_DIALOG_CONFIG_NAME)
|
|
98
103
|
], XDialogProperty.prototype, "confirmText", void 0);
|
|
99
104
|
__decorate([
|
|
100
|
-
XWithConfig(
|
|
105
|
+
XWithConfig(X_DIALOG_CONFIG_NAME, true)
|
|
101
106
|
], XDialogProperty.prototype, "backdropClose", void 0);
|
|
102
107
|
__decorate([
|
|
103
|
-
XWithConfig(
|
|
108
|
+
XWithConfig(X_DIALOG_CONFIG_NAME, true)
|
|
104
109
|
], XDialogProperty.prototype, "hasBackdrop", void 0);
|
|
105
110
|
__decorate([
|
|
106
|
-
XWithConfig(
|
|
111
|
+
XWithConfig(X_DIALOG_CONFIG_NAME, '')
|
|
107
112
|
], XDialogProperty.prototype, "className", void 0);
|
|
108
113
|
__decorate([
|
|
109
|
-
XWithConfig(
|
|
114
|
+
XWithConfig(X_DIALOG_CONFIG_NAME),
|
|
110
115
|
XInputBoolean()
|
|
111
116
|
], XDialogProperty.prototype, "buttonsCenter", void 0);
|
|
112
117
|
__decorate([
|
|
113
|
-
XWithConfig(
|
|
118
|
+
XWithConfig(X_DIALOG_CONFIG_NAME, false),
|
|
114
119
|
XInputBoolean()
|
|
115
120
|
], XDialogProperty.prototype, "draggable", void 0);
|
|
116
121
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XDialogProperty, decorators: [{
|
|
@@ -272,7 +277,7 @@ class XDialogComponent extends XDialogProperty {
|
|
|
272
277
|
}
|
|
273
278
|
}
|
|
274
279
|
/** @nocollapse */ XDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XDialogComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.ViewContainerRef }, { token: i1.XPortalService }, { token: i2.XI18nService }], target: i0.ɵɵFactoryTarget.Component });
|
|
275
|
-
/** @nocollapse */ XDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XDialogComponent, selector: "x-dialog", viewQueries: [{ propertyName: "dialogTpl", first: true, predicate: ["dialogTpl"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-template #dialogTpl>\r\n <div class=\"x-dialog\" [@x-move-box-animation]=\"placement\" (@x-move-box-animation.done)=\"moveDone($event)\">\r\n <x-alert\r\n [draggable]=\"draggable\"\r\n [dragBoundary]=\"'.cdk-overlay-container'\"\r\n (close)=\"onClose()\"\r\n [title]=\"title\"\r\n [content]=\"contentTpl\"\r\n [type]=\"type\"\r\n [effect]=\"effect\"\r\n [hideClose]=\"hideClose\"\r\n [closeText]=\"closeText\"\r\n showIcon=\"false\"\r\n duration=\"0\"\r\n manual\r\n disabledAnimation\r\n ></x-alert>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #contentTpl>\r\n <div class=\"x-dialog-inner\">\r\n <div class=\"x-dialog-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"x-dialog-buttons\" [class.x-dialog-buttons-center]=\"buttonsCenter\">\r\n <ng-container *xOutlet=\"footer\">\r\n <x-buttons space=\"1\" *ngIf=\"showCancel || showConfirm\">\r\n <x-button *ngIf=\"showCancel\" (click)=\"onCancel()\">{{ getCancelText }}</x-button>\r\n <x-button *ngIf=\"showConfirm\" type=\"primary\" (click)=\"onConfirm()\">{{ getConfirmText }}</x-button>\r\n </x-buttons>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [".x-dialog{margin:0;padding:0;width:100%;height:100%}.x-dialog x-alert{height:100%}.x-dialog x-alert .x-alert{min-height:100%;height:-moz-fit-content;height:fit-content;align-items:inherit;padding:0}.x-dialog x-alert .x-alert-inner{min-height:100%;display:flex;flex-direction:column}.x-dialog x-alert .x-alert-title{padding
|
|
280
|
+
/** @nocollapse */ XDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XDialogComponent, selector: "x-dialog", viewQueries: [{ propertyName: "dialogTpl", first: true, predicate: ["dialogTpl"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-template #dialogTpl>\r\n <div class=\"x-dialog\" [@x-move-box-animation]=\"placement\" (@x-move-box-animation.done)=\"moveDone($event)\">\r\n <x-alert\r\n [draggable]=\"draggable\"\r\n [dragBoundary]=\"'.cdk-overlay-container'\"\r\n (close)=\"onClose()\"\r\n [title]=\"title\"\r\n [content]=\"contentTpl\"\r\n [type]=\"type\"\r\n [effect]=\"effect\"\r\n [hideClose]=\"hideClose\"\r\n [closeText]=\"closeText\"\r\n showIcon=\"false\"\r\n duration=\"0\"\r\n manual\r\n disabledAnimation\r\n ></x-alert>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #contentTpl>\r\n <div class=\"x-dialog-inner\">\r\n <div class=\"x-dialog-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"x-dialog-buttons\" [class.x-dialog-buttons-center]=\"buttonsCenter\">\r\n <ng-container *xOutlet=\"footer\">\r\n <x-buttons space=\"1\" *ngIf=\"showCancel || showConfirm\">\r\n <x-button *ngIf=\"showCancel\" (click)=\"onCancel()\">{{ getCancelText }}</x-button>\r\n <x-button *ngIf=\"showConfirm\" type=\"primary\" (click)=\"onConfirm()\">{{ getConfirmText }}</x-button>\r\n </x-buttons>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [".x-dialog{margin:0;padding:0;width:100%;height:100%}.x-dialog x-alert{height:100%}.x-dialog x-alert .x-alert{min-height:100%;height:-moz-fit-content;height:fit-content;align-items:inherit;padding:0}.x-dialog x-alert .x-alert-inner{min-height:100%;display:flex;flex-direction:column}.x-dialog x-alert .x-alert-title{padding:1rem 1rem 0}.x-dialog x-alert .x-alert-content{flex:1;display:flex;flex-direction:column;padding:0 1rem .5rem}.x-dialog-inner{display:flex;flex-direction:column;margin:.5rem 0;flex:1}.x-dialog-buttons{display:flex;justify-content:flex-end}.x-dialog-buttons>x-buttons{margin-top:1rem;align-self:flex-end}.x-dialog-buttons-center{justify-content:center}.x-dialog-content{display:inline-flex;flex:1}.x-dialog-portal x-dialog{width:100%}\n"], components: [{ type: i3.XAlertComponent, selector: "x-alert" }, { type: i4.XButtonsComponent, selector: "x-buttons" }, { type: i4.XButtonComponent, selector: "x-button" }], directives: [{ type: i5.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [XMoveBoxAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
276
281
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XDialogComponent, decorators: [{
|
|
277
282
|
type: Component,
|
|
278
283
|
args: [{
|
|
@@ -288,10 +293,213 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImpor
|
|
|
288
293
|
args: ['dialogTpl', { static: false }]
|
|
289
294
|
}] } });
|
|
290
295
|
|
|
296
|
+
class XDialogContainerComponent extends BasePortalOutlet {
|
|
297
|
+
constructor() {
|
|
298
|
+
super();
|
|
299
|
+
this._has = true;
|
|
300
|
+
this.animationChanged = new EventEmitter();
|
|
301
|
+
}
|
|
302
|
+
done({ toState, totalTime }) {
|
|
303
|
+
this.animationChanged.next({ action: 'done', state: toState, totalTime });
|
|
304
|
+
}
|
|
305
|
+
start({ toState, totalTime }) {
|
|
306
|
+
this.animationChanged.next({ action: 'start', state: toState, totalTime });
|
|
307
|
+
}
|
|
308
|
+
attachComponentPortal(portal) {
|
|
309
|
+
if (this.portalOutlet.hasAttached()) {
|
|
310
|
+
throw Error('dialog portal has attached');
|
|
311
|
+
}
|
|
312
|
+
return this.portalOutlet.attachComponentPortal(portal);
|
|
313
|
+
}
|
|
314
|
+
attachTemplatePortal(portal) {
|
|
315
|
+
if (this.portalOutlet.hasAttached()) {
|
|
316
|
+
throw Error('dialog portal has attached');
|
|
317
|
+
}
|
|
318
|
+
return this.portalOutlet.attachTemplatePortal(portal);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
/** @nocollapse */ XDialogContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XDialogContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
322
|
+
/** @nocollapse */ XDialogContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XDialogContainerComponent, selector: "x-dialog-container", host: { listeners: { "@x-move-box-animation.done": "done($event)", "@x-move-box-animation.start": "start($event)" }, properties: { "class.x-dialog-container": "this._has", "@x-move-box-animation": "this.placement" } }, viewQueries: [{ propertyName: "portalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-template cdkPortalOutlet></ng-template>\r\n", styles: [".x-dialog-container{margin:0;width:100%;height:100%;overflow:auto;display:block;padding:1rem;box-sizing:border-box;min-height:inherit;max-height:inherit;background-color:var(--x-background);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);border:.0625rem solid transparent;border-radius:var(--x-border-radius)}.x-dialog-container-title{display:block;margin:0 0 .5rem;font-weight:600;color:var(--x-text-300);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.x-dialog-container-content{display:block;margin:0 -1rem;padding:0 1rem;max-height:70vh;overflow:auto;color:var(--x-text-300);font-size:calc(var(--x-font-size) - .0625rem);line-height:1.325rem}.x-dialog-container-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;box-sizing:content-box;margin-bottom:-1rem;min-height:4rem}.x-dialog-container-actions[align=center]{justify-content:center}.x-dialog-container-actions[align=start]{justify-content:flex-start}.x-dialog-container-actions x-button:not(:first-child){margin-left:1rem}\n"], directives: [{ type: i1$1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], animations: [XMoveBoxAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
323
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XDialogContainerComponent, decorators: [{
|
|
324
|
+
type: Component,
|
|
325
|
+
args: [{
|
|
326
|
+
selector: 'x-dialog-container',
|
|
327
|
+
templateUrl: './dialog-container.component.html',
|
|
328
|
+
styleUrls: ['./dialog-container.component.scss'],
|
|
329
|
+
encapsulation: ViewEncapsulation.None,
|
|
330
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
331
|
+
animations: [XMoveBoxAnimation]
|
|
332
|
+
}]
|
|
333
|
+
}], ctorParameters: function () { return []; }, propDecorators: { _has: [{
|
|
334
|
+
type: HostBinding,
|
|
335
|
+
args: ['class.x-dialog-container']
|
|
336
|
+
}], placement: [{
|
|
337
|
+
type: HostBinding,
|
|
338
|
+
args: ['@x-move-box-animation']
|
|
339
|
+
}], done: [{
|
|
340
|
+
type: HostListener,
|
|
341
|
+
args: ['@x-move-box-animation.done', ['$event']]
|
|
342
|
+
}], start: [{
|
|
343
|
+
type: HostListener,
|
|
344
|
+
args: ['@x-move-box-animation.start', ['$event']]
|
|
345
|
+
}], portalOutlet: [{
|
|
346
|
+
type: ViewChild,
|
|
347
|
+
args: [CdkPortalOutlet, { static: true }]
|
|
348
|
+
}] } });
|
|
349
|
+
|
|
350
|
+
// TODO: add more function
|
|
351
|
+
class XDialogRef {
|
|
352
|
+
constructor(overlayRef, containerInstance) {
|
|
353
|
+
this.overlayRef = overlayRef;
|
|
354
|
+
this.containerInstance = containerInstance;
|
|
355
|
+
}
|
|
356
|
+
close() {
|
|
357
|
+
this.containerInstance.animationChanged
|
|
358
|
+
.pipe(filter((event) => event.state === 'void' && event.action === 'done'), take(1))
|
|
359
|
+
.subscribe(() => {
|
|
360
|
+
this.overlayRef.detach();
|
|
361
|
+
});
|
|
362
|
+
this.containerInstance.placement = 'void';
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
class XDialogCloseDirective {
|
|
367
|
+
constructor(dialogRef) {
|
|
368
|
+
this.dialogRef = dialogRef;
|
|
369
|
+
}
|
|
370
|
+
onCloseClick() {
|
|
371
|
+
this.dialogRef && this.dialogRef.close();
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
/** @nocollapse */ XDialogCloseDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XDialogCloseDirective, deps: [{ token: XDialogRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
375
|
+
/** @nocollapse */ XDialogCloseDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.0.5", type: XDialogCloseDirective, selector: "[x-dialog-close]", host: { listeners: { "click": "onCloseClick($event)" } }, ngImport: i0 });
|
|
376
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XDialogCloseDirective, decorators: [{
|
|
377
|
+
type: Directive,
|
|
378
|
+
args: [{
|
|
379
|
+
selector: `[x-dialog-close]`
|
|
380
|
+
}]
|
|
381
|
+
}], ctorParameters: function () { return [{ type: XDialogRef, decorators: [{
|
|
382
|
+
type: Optional
|
|
383
|
+
}] }]; }, propDecorators: { onCloseClick: [{
|
|
384
|
+
type: HostListener,
|
|
385
|
+
args: ['click', ['$event']]
|
|
386
|
+
}] } });
|
|
387
|
+
class XDialogTitleDirective {
|
|
388
|
+
constructor() {
|
|
389
|
+
this._has = true;
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
/** @nocollapse */ XDialogTitleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XDialogTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
393
|
+
/** @nocollapse */ XDialogTitleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.0.5", type: XDialogTitleDirective, selector: "[x-dialog-title]", host: { properties: { "class.x-dialog-container-title": "this._has" } }, ngImport: i0 });
|
|
394
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XDialogTitleDirective, decorators: [{
|
|
395
|
+
type: Directive,
|
|
396
|
+
args: [{
|
|
397
|
+
selector: `[x-dialog-title]`
|
|
398
|
+
}]
|
|
399
|
+
}], propDecorators: { _has: [{
|
|
400
|
+
type: HostBinding,
|
|
401
|
+
args: ['class.x-dialog-container-title']
|
|
402
|
+
}] } });
|
|
403
|
+
class XDialogContentDirective {
|
|
404
|
+
constructor() {
|
|
405
|
+
this._has = true;
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
/** @nocollapse */ XDialogContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XDialogContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
409
|
+
/** @nocollapse */ XDialogContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.0.5", type: XDialogContentDirective, selector: "[x-dialog-content], x-dialog-content", host: { properties: { "class.x-dialog-container-content": "this._has" } }, ngImport: i0 });
|
|
410
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XDialogContentDirective, decorators: [{
|
|
411
|
+
type: Directive,
|
|
412
|
+
args: [{
|
|
413
|
+
selector: `[x-dialog-content], x-dialog-content`
|
|
414
|
+
}]
|
|
415
|
+
}], propDecorators: { _has: [{
|
|
416
|
+
type: HostBinding,
|
|
417
|
+
args: ['class.x-dialog-container-content']
|
|
418
|
+
}] } });
|
|
419
|
+
class XDialogActionsDirective {
|
|
420
|
+
constructor() {
|
|
421
|
+
this._has = true;
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
/** @nocollapse */ XDialogActionsDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XDialogActionsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
425
|
+
/** @nocollapse */ XDialogActionsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.0.5", type: XDialogActionsDirective, selector: "[x-dialog-actions], x-dialog-actions", host: { properties: { "class.x-dialog-container-actions": "this._has" } }, ngImport: i0 });
|
|
426
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XDialogActionsDirective, decorators: [{
|
|
427
|
+
type: Directive,
|
|
428
|
+
args: [{
|
|
429
|
+
selector: `[x-dialog-actions], x-dialog-actions`
|
|
430
|
+
}]
|
|
431
|
+
}], propDecorators: { _has: [{
|
|
432
|
+
type: HostBinding,
|
|
433
|
+
args: ['class.x-dialog-container-actions']
|
|
434
|
+
}] } });
|
|
435
|
+
|
|
436
|
+
class XDialogService {
|
|
437
|
+
constructor(portalService, configService, overlay) {
|
|
438
|
+
this.portalService = portalService;
|
|
439
|
+
this.configService = configService;
|
|
440
|
+
this.overlay = overlay;
|
|
441
|
+
this.default = {
|
|
442
|
+
placement: 'center',
|
|
443
|
+
offset: '1rem',
|
|
444
|
+
width: '32rem',
|
|
445
|
+
backdropClose: true,
|
|
446
|
+
hasBackdrop: true,
|
|
447
|
+
draggable: false
|
|
448
|
+
};
|
|
449
|
+
this.configDefault = this.configService.getConfigForComponent(X_DIALOG_CONFIG_NAME);
|
|
450
|
+
Object.assign(this.default, this.configDefault);
|
|
451
|
+
}
|
|
452
|
+
create(content, option = {}) {
|
|
453
|
+
fillDefault(option, this.default);
|
|
454
|
+
const portal = this.portalService.attach({
|
|
455
|
+
content: XDialogContainerComponent,
|
|
456
|
+
viewContainerRef: option.viewContainerRef,
|
|
457
|
+
overlayConfig: {
|
|
458
|
+
hasBackdrop: option.hasBackdrop,
|
|
459
|
+
panelClass: option.className,
|
|
460
|
+
scrollStrategy: this.overlay.scrollStrategies.reposition(),
|
|
461
|
+
positionStrategy: this.portalService.setPlace(option.placement, option.width, option.height, option.offset)
|
|
462
|
+
}
|
|
463
|
+
});
|
|
464
|
+
const { overlayRef, componentRef } = portal || {};
|
|
465
|
+
const { instance } = componentRef || {};
|
|
466
|
+
instance.placement = option.placement;
|
|
467
|
+
const dialogRef = new XDialogRef(overlayRef, instance);
|
|
468
|
+
if (content instanceof TemplateRef) {
|
|
469
|
+
instance.attachTemplatePortal(new TemplatePortal(content, option.viewContainerRef, { $implicit: option.data, dialogRef: dialogRef }));
|
|
470
|
+
}
|
|
471
|
+
else {
|
|
472
|
+
const injector = this.portalService.createInjector([
|
|
473
|
+
{ provide: X_DIALOG_DATA, useValue: option.data },
|
|
474
|
+
{ provide: XDialogRef, useValue: dialogRef }
|
|
475
|
+
]);
|
|
476
|
+
const comRef = instance.attachComponentPortal(new ComponentPortal(content, option.viewContainerRef, injector));
|
|
477
|
+
dialogRef.componentInstance = comRef.instance;
|
|
478
|
+
}
|
|
479
|
+
if (option.hasBackdrop && option.backdropClose && overlayRef) {
|
|
480
|
+
overlayRef.backdropClick().subscribe(() => {
|
|
481
|
+
dialogRef.close();
|
|
482
|
+
});
|
|
483
|
+
}
|
|
484
|
+
return dialogRef;
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
/** @nocollapse */ XDialogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XDialogService, deps: [{ token: i1.XPortalService }, { token: i2$1.XConfigService }, { token: i3$1.Overlay }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
488
|
+
/** @nocollapse */ XDialogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XDialogService });
|
|
489
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XDialogService, decorators: [{
|
|
490
|
+
type: Injectable
|
|
491
|
+
}], ctorParameters: function () { return [{ type: i1.XPortalService }, { type: i2$1.XConfigService }, { type: i3$1.Overlay }]; } });
|
|
492
|
+
|
|
291
493
|
class XDialogModule {
|
|
292
494
|
}
|
|
293
495
|
/** @nocollapse */ XDialogModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
294
|
-
/** @nocollapse */ XDialogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XDialogModule, declarations: [XDialogComponent,
|
|
496
|
+
/** @nocollapse */ XDialogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XDialogModule, declarations: [XDialogComponent,
|
|
497
|
+
XDialogCloseDirective,
|
|
498
|
+
XDialogTitleDirective,
|
|
499
|
+
XDialogContentDirective,
|
|
500
|
+
XDialogActionsDirective,
|
|
501
|
+
XDialogContainerComponent,
|
|
502
|
+
XDialogProperty], imports: [CommonModule,
|
|
295
503
|
FormsModule,
|
|
296
504
|
ReactiveFormsModule,
|
|
297
505
|
DragDropModule,
|
|
@@ -300,8 +508,13 @@ class XDialogModule {
|
|
|
300
508
|
XIconModule,
|
|
301
509
|
XPortalModule,
|
|
302
510
|
XAlertModule,
|
|
303
|
-
XOutletModule], exports: [XDialogComponent
|
|
304
|
-
|
|
511
|
+
XOutletModule], exports: [XDialogComponent,
|
|
512
|
+
XDialogCloseDirective,
|
|
513
|
+
XDialogTitleDirective,
|
|
514
|
+
XDialogContentDirective,
|
|
515
|
+
XDialogActionsDirective,
|
|
516
|
+
XDialogContainerComponent] });
|
|
517
|
+
/** @nocollapse */ XDialogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XDialogModule, providers: [XDialogService], imports: [[
|
|
305
518
|
CommonModule,
|
|
306
519
|
FormsModule,
|
|
307
520
|
ReactiveFormsModule,
|
|
@@ -316,8 +529,23 @@ class XDialogModule {
|
|
|
316
529
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XDialogModule, decorators: [{
|
|
317
530
|
type: NgModule,
|
|
318
531
|
args: [{
|
|
319
|
-
declarations: [
|
|
320
|
-
|
|
532
|
+
declarations: [
|
|
533
|
+
XDialogComponent,
|
|
534
|
+
XDialogCloseDirective,
|
|
535
|
+
XDialogTitleDirective,
|
|
536
|
+
XDialogContentDirective,
|
|
537
|
+
XDialogActionsDirective,
|
|
538
|
+
XDialogContainerComponent,
|
|
539
|
+
XDialogProperty
|
|
540
|
+
],
|
|
541
|
+
exports: [
|
|
542
|
+
XDialogComponent,
|
|
543
|
+
XDialogCloseDirective,
|
|
544
|
+
XDialogTitleDirective,
|
|
545
|
+
XDialogContentDirective,
|
|
546
|
+
XDialogActionsDirective,
|
|
547
|
+
XDialogContainerComponent
|
|
548
|
+
],
|
|
321
549
|
imports: [
|
|
322
550
|
CommonModule,
|
|
323
551
|
FormsModule,
|
|
@@ -329,7 +557,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImpor
|
|
|
329
557
|
XPortalModule,
|
|
330
558
|
XAlertModule,
|
|
331
559
|
XOutletModule
|
|
332
|
-
]
|
|
560
|
+
],
|
|
561
|
+
providers: [XDialogService]
|
|
333
562
|
}]
|
|
334
563
|
}] });
|
|
335
564
|
|
|
@@ -337,5 +566,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImpor
|
|
|
337
566
|
* Generated bundle index. Do not edit.
|
|
338
567
|
*/
|
|
339
568
|
|
|
340
|
-
export { XDialogComponent, XDialogModule, XDialogPortal, XDialogPrefix, XDialogProperty };
|
|
569
|
+
export { XDialogActionsDirective, XDialogCloseDirective, XDialogComponent, XDialogContainerComponent, XDialogContentDirective, XDialogModule, XDialogPortal, XDialogPrefix, XDialogProperty, XDialogRef, XDialogService, XDialogTitleDirective, X_DIALOG_CONFIG_NAME, X_DIALOG_DATA };
|
|
341
570
|
//# sourceMappingURL=ng-nest-ui-dialog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-nest-ui-dialog.js","sources":["../../../../lib/ng-nest/ui/dialog/dialog.property.ts","../../../../lib/ng-nest/ui/dialog/dialog.component.ts","../../../../lib/ng-nest/ui/dialog/dialog.component.html","../../../../lib/ng-nest/ui/dialog/dialog.module.ts","../../../../lib/ng-nest/ui/dialog/ng-nest-ui-dialog.ts"],"sourcesContent":["import { Input, Output, EventEmitter, Component } from '@angular/core';\r\nimport { XStatus, XPlace, XInputBoolean, XTemplate, XEffect, XBoolean, XWithConfig } from '@ng-nest/ui/core';\r\nimport { XAlertProperty, XAlertOption } from '@ng-nest/ui/alert';\r\nimport { XPortalOverlayRef } from '@ng-nest/ui/portal';\r\nimport { XDialogComponent } from './dialog.component';\r\n\r\n/**\r\n * Dialog\r\n * @selector x-dialog\r\n * @decorator component\r\n */\r\nexport const XDialogPrefix = 'x-dialog';\r\n\r\nconst X_CONFIG_NAME = 'dialog';\r\n\r\nexport const XDialogPortal = 'x-dialog-portal';\r\n\r\n/**\r\n * Dialog Property\r\n */\r\n@Component({ template: '' })\r\nexport class XDialogProperty extends XAlertProperty {\r\n @Input() @XInputBoolean() visible: boolean = false;\r\n /**\r\n * @zh_CN 方位,九宫格\r\n * @en_US Direction, nine grid\r\n */\r\n @Input() @XWithConfig<XPlace>(X_CONFIG_NAME, 'center') placement!: XPlace;\r\n /**\r\n * @zh_CN 偏移距离\r\n * @en_US Offset distance\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, '1rem') offset!: string;\r\n /**\r\n * @zh_CN 类型\r\n * @en_US Types of\r\n */\r\n @Input() type: XDialogType = 'info';\r\n /**\r\n * @zh_CN 宽度\r\n * @en_US Width\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, '32rem') width?: string;\r\n /**\r\n * @zh_CN 高度\r\n * @en_US Height\r\n */\r\n @Input() height?: string;\r\n /**\r\n * @zh_CN 样式主题\r\n * @en_US Style theme\r\n */\r\n @Input() @XWithConfig<XEffect>(X_CONFIG_NAME, 'white') effect!: XEffect;\r\n /**\r\n * @zh_CN 底部自定义模板\r\n * @en_US Custom template at the bottom\r\n */\r\n @Input() footer?: XTemplate;\r\n /**\r\n * @zh_CN 显示取消按钮\r\n * @en_US Show cancel button\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) showCancel!: XBoolean;\r\n /**\r\n * @zh_CN 取消按钮文字\r\n * @en_US Cancel button text\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME) cancelText?: string;\r\n /**\r\n * @zh_CN 显示确认按钮\r\n * @en_US Show confirmation button\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) showConfirm!: XBoolean;\r\n /**\r\n * @zh_CN 确认按钮文字\r\n * @en_US Confirm button text\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME) confirmText?: string;\r\n /**\r\n * @zh_CN 点击遮罩关闭\r\n * @en_US Click the mask to close\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) backdropClose!: XBoolean;\r\n /**\r\n * @zh_CN 是否显示背景遮罩\r\n * @en_US Whether to display the background mask\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) hasBackdrop!: XBoolean;\r\n /**\r\n * @zh_CN 自定义样式名\r\n * @en_US Custom style name\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, '') className!: string;\r\n /**\r\n * @zh_CN 按钮居中\r\n * @en_US Button center\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME) @XInputBoolean() buttonsCenter?: XBoolean;\r\n /**\r\n * @zh_CN 拖动对话框\r\n * @en_US Drag dialog\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, false) @XInputBoolean() draggable?: XBoolean;\r\n /**\r\n * @zh_CN 关闭前处理函数\r\n * @en_US Processing function before closing\r\n */\r\n @Input() beforeClose!: Function;\r\n /**\r\n * @zh_CN 取消按钮的事件\r\n * @en_US Cancel button event\r\n */\r\n @Output() cancel = new EventEmitter();\r\n /**\r\n * @zh_CN 确认按钮的事件\r\n * @en_US Confirm button event\r\n */\r\n @Output() confirm = new EventEmitter();\r\n /**\r\n * @zh_CN 显示/隐藏改变事件\r\n * @en_US Show/hide change events\r\n */\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n /**\r\n * @zh_CN 弹出完成动画加载\r\n * @en_US Pop up complete animation loading\r\n */\r\n @Output() showDone = new EventEmitter<any>();\r\n /**\r\n * @zh_CN 关闭完成动画\r\n * @en_US Close complete animation\r\n */\r\n @Output() closeDone = new EventEmitter<any>();\r\n}\r\n\r\nexport interface XDialogOption extends XAlertOption {\r\n visible?: boolean;\r\n /**\r\n * @zh_CN 方位,九宫格\r\n * @en_US Direction, nine grid\r\n */\r\n placement?: XPlace;\r\n /**\r\n * @zh_CN 偏移距离\r\n * @en_US Offset distance\r\n */\r\n offset?: string;\r\n /**\r\n * @zh_CN 类型\r\n * @en_US Types of\r\n */\r\n type?: XDialogType;\r\n /**\r\n * @zh_CN 宽度\r\n * @en_US Width\r\n */\r\n width?: string;\r\n /**\r\n * @zh_CN 高度\r\n * @en_US Height\r\n */\r\n height?: string;\r\n /**\r\n * @zh_CN 样式主题\r\n * @en_US Style theme\r\n */\r\n effect?: XEffect;\r\n /**\r\n * @zh_CN 底部自定义模板\r\n * @en_US Custom template at the bottom\r\n */\r\n footer?: XTemplate;\r\n /**\r\n * @zh_CN 显示取消按钮\r\n * @en_US Show cancel button\r\n */\r\n showCancel?: XBoolean;\r\n /**\r\n * @zh_CN 取消按钮文字\r\n * @en_US Cancel button text\r\n */\r\n cancelText?: string;\r\n /**\r\n * @zh_CN 显示确认按钮\r\n * @en_US Show confirmation button\r\n */\r\n showConfirm?: XBoolean;\r\n /**\r\n * @zh_CN 确认按钮文字\r\n * @en_US Confirm button text\r\n */\r\n confirmText?: string;\r\n /**\r\n * @zh_CN 点击遮罩关闭\r\n * @en_US Click the mask to close\r\n */\r\n backdropClose?: XBoolean;\r\n /**\r\n * @zh_CN 是否显示背景遮罩\r\n * @en_US Whether to display the background mask\r\n */\r\n hasBackdrop?: XBoolean;\r\n /**\r\n * @zh_CN 自定义样式名\r\n * @en_US Custom style name\r\n */\r\n className?: string;\r\n /**\r\n * @zh_CN 按钮居中\r\n * @en_US Button center\r\n */\r\n buttonsCenter?: XBoolean;\r\n /**\r\n * @zh_CN 拖动对话框\r\n * @en_US Drag dialog\r\n */\r\n draggable?: XBoolean;\r\n /**\r\n * @zh_CN 关闭前处理函数\r\n * @en_US Processing function before closing\r\n */\r\n beforeClose?: Function;\r\n}\r\n\r\nexport interface XDialogCallback {\r\n (action: XDialogAction, message?: string): void;\r\n}\r\n\r\nexport type XDialogAction = 'confirm' | 'cancel';\r\n\r\n/**\r\n * @zh_CN 创建的消息对象\r\n * @en_US Message object created\r\n */\r\nexport interface XDialogOverlayRef extends XPortalOverlayRef<XDialogComponent> {}\r\n\r\nexport interface XDialogRef {\r\n ref?: XDialogOverlayRef;\r\n input?: XDialogProperty;\r\n}\r\n\r\n/**\r\n * @zh_CN 类型\r\n * @en_US Types of\r\n */\r\nexport type XDialogType = XStatus;\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n OnChanges,\r\n SimpleChanges,\r\n ViewChild,\r\n TemplateRef,\r\n ViewContainerRef,\r\n OnDestroy\r\n} from '@angular/core';\r\nimport { XMoveBoxAnimation, XIsChange, XIsFunction } from '@ng-nest/ui/core';\r\nimport { XDialogPrefix, XDialogOverlayRef, XDialogPortal, XDialogProperty } from './dialog.property';\r\nimport { XPortalService } from '@ng-nest/ui/portal';\r\nimport { Subscription, Subject } from 'rxjs';\r\nimport { BlockScrollStrategy } from '@angular/cdk/overlay';\r\nimport { XI18nDialog, XI18nService } from '@ng-nest/ui/i18n';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: `${XDialogPrefix}`,\r\n templateUrl: './dialog.component.html',\r\n styleUrls: ['./dialog.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XMoveBoxAnimation]\r\n})\r\nexport class XDialogComponent extends XDialogProperty implements OnChanges, OnDestroy {\r\n @ViewChild('dialogTpl', { static: false }) dialogTpl!: TemplateRef<void>;\r\n dialogRef!: XDialogOverlayRef;\r\n backdropClick$!: Subscription;\r\n scrollStrategy: BlockScrollStrategy;\r\n locale: XI18nDialog = {};\r\n\r\n private _unSubject = new Subject<void>();\r\n\r\n get getCancelText() {\r\n return this.cancelText || this.locale.cancelText;\r\n }\r\n\r\n get getConfirmText() {\r\n return this.confirmText || this.locale.confirmText;\r\n }\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public viewContainerRef: ViewContainerRef,\r\n public protalService: XPortalService,\r\n public i18n: XI18nService\r\n ) {\r\n super();\r\n this.scrollStrategy = this.protalService.overlay.scrollStrategies.block();\r\n }\r\n\r\n ngOnInit() {\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.dialog as XI18nDialog),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { visible } = changes;\r\n XIsChange(visible) && this.setVisible();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe();\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n unsubscribe() {\r\n this.backdropClick$?.unsubscribe();\r\n }\r\n\r\n setVisible() {\r\n if (this.visible) {\r\n this.create();\r\n } else {\r\n this.detach();\r\n // this.visibleChange.emit(false);\r\n }\r\n }\r\n\r\n create() {\r\n this.dialogRef = this.protalService.attach({\r\n content: this.dialogTpl,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: {\r\n panelClass: [XDialogPortal, this.className],\r\n hasBackdrop: Boolean(this.hasBackdrop),\r\n positionStrategy: this.protalService.setPlace(this.placement, this.width, this.height, this.offset)\r\n }\r\n });\r\n // this.scrollStrategy.enable();\r\n if (this.hasBackdrop && this.backdropClose && this.dialogRef?.overlayRef) {\r\n this.backdropClick$ = this.dialogRef.overlayRef.backdropClick().subscribe(() => this.onClose());\r\n }\r\n }\r\n\r\n detach() {\r\n if (this.portalAttached()) {\r\n this.visible = false;\r\n this.visibleChange.emit(this.visible);\r\n this.dialogRef?.overlayRef?.detach();\r\n // this.scrollStrategy.disable();\r\n this.unsubscribe();\r\n this.close.emit();\r\n }\r\n }\r\n\r\n portalAttached() {\r\n return this.dialogRef?.overlayRef?.hasAttached();\r\n }\r\n\r\n onClose() {\r\n if (XIsFunction(this.beforeClose)) {\r\n this.beforeClose();\r\n } else {\r\n this.detach();\r\n }\r\n }\r\n\r\n onCancel() {\r\n this.onClose();\r\n this.cancel.emit();\r\n }\r\n\r\n onConfirm() {\r\n this.onClose();\r\n this.confirm.emit();\r\n }\r\n\r\n moveDone($event: { toState: string }) {\r\n if ($event.toState === 'void') {\r\n this.closeDone.emit($event);\r\n this.dialogRef?.overlayRef?.dispose();\r\n } else {\r\n this.showDone.emit($event);\r\n }\r\n }\r\n}\r\n","<ng-template #dialogTpl>\r\n <div class=\"x-dialog\" [@x-move-box-animation]=\"placement\" (@x-move-box-animation.done)=\"moveDone($event)\">\r\n <x-alert\r\n [draggable]=\"draggable\"\r\n [dragBoundary]=\"'.cdk-overlay-container'\"\r\n (close)=\"onClose()\"\r\n [title]=\"title\"\r\n [content]=\"contentTpl\"\r\n [type]=\"type\"\r\n [effect]=\"effect\"\r\n [hideClose]=\"hideClose\"\r\n [closeText]=\"closeText\"\r\n showIcon=\"false\"\r\n duration=\"0\"\r\n manual\r\n disabledAnimation\r\n ></x-alert>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #contentTpl>\r\n <div class=\"x-dialog-inner\">\r\n <div class=\"x-dialog-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"x-dialog-buttons\" [class.x-dialog-buttons-center]=\"buttonsCenter\">\r\n <ng-container *xOutlet=\"footer\">\r\n <x-buttons space=\"1\" *ngIf=\"showCancel || showConfirm\">\r\n <x-button *ngIf=\"showCancel\" (click)=\"onCancel()\">{{ getCancelText }}</x-button>\r\n <x-button *ngIf=\"showConfirm\" type=\"primary\" (click)=\"onConfirm()\">{{ getConfirmText }}</x-button>\r\n </x-buttons>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XDialogComponent } from './dialog.component';\r\nimport { XAlertModule } from '@ng-nest/ui/alert';\r\nimport { XPortalModule } from '@ng-nest/ui/portal';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { XInputModule } from '@ng-nest/ui/input';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { XDialogProperty } from './dialog.property';\r\n\r\n@NgModule({\r\n declarations: [XDialogComponent, XDialogProperty],\r\n exports: [XDialogComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n DragDropModule,\r\n XInputModule,\r\n XButtonModule,\r\n XIconModule,\r\n XPortalModule,\r\n XAlertModule,\r\n XOutletModule\r\n ]\r\n})\r\nexport class XDialogModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAMA;;;;;MAKa,aAAa,GAAG,WAAW;AAExC,MAAM,aAAa,GAAG,QAAQ,CAAC;MAElB,aAAa,GAAG,kBAAkB;AAE/C;;;MAIa,eAAgB,SAAQ,cAAc;IADnD;;QAE4B,YAAO,GAAY,KAAK,CAAC;;;;;QAe1C,SAAI,GAAgB,MAAM,CAAC;;;;;QA2E1B,WAAM,GAAG,IAAI,YAAY,EAAE,CAAC;;;;;QAK5B,YAAO,GAAG,IAAI,YAAY,EAAE,CAAC;;;;;QAK7B,kBAAa,GAAG,IAAI,YAAY,EAAW,CAAC;;;;;QAK5C,aAAQ,GAAG,IAAI,YAAY,EAAO,CAAC;;;;;QAKnC,cAAS,GAAG,IAAI,YAAY,EAAO,CAAC;KAC/C;;+HAhHY,eAAe;mHAAf,eAAe,8nBADL,EAAE;AAEG;IAAhB,aAAa,EAAE;gDAA0B;AAKI;IAA7C,WAAW,CAAS,aAAa,EAAE,QAAQ,CAAC;kDAAoB;AAKrB;IAA3C,WAAW,CAAS,aAAa,EAAE,MAAM,CAAC;+CAAiB;AAUf;IAA5C,WAAW,CAAS,aAAa,EAAE,OAAO,CAAC;8CAAgB;AAUd;IAA7C,WAAW,CAAU,aAAa,EAAE,OAAO,CAAC;+CAAkB;AAUnB;IAA3C,WAAW,CAAW,aAAa,EAAE,IAAI,CAAC;mDAAuB;AAK9B;IAAnC,WAAW,CAAS,aAAa,CAAC;mDAAqB;AAKZ;IAA3C,WAAW,CAAW,aAAa,EAAE,IAAI,CAAC;oDAAwB;AAK/B;IAAnC,WAAW,CAAS,aAAa,CAAC;oDAAsB;AAKb;IAA3C,WAAW,CAAW,aAAa,EAAE,IAAI,CAAC;sDAA0B;AAKzB;IAA3C,WAAW,CAAW,aAAa,EAAE,IAAI,CAAC;oDAAwB;AAK3B;IAAvC,WAAW,CAAS,aAAa,EAAE,EAAE,CAAC;kDAAoB;AAKJ;IAAtD,WAAW,CAAW,aAAa,CAAC;IAAE,aAAa,EAAE;sDAA0B;AAKlB;IAA7D,WAAW,CAAW,aAAa,EAAE,KAAK,CAAC;IAAE,aAAa,EAAE;kDAAsB;2FAjFjF,eAAe;kBAD3B,SAAS;mBAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;8BAEC,OAAO;sBAAhC,KAAK;gBAKiD,SAAS;sBAA/D,KAAK;gBAK+C,MAAM;sBAA1D,KAAK;gBAKG,IAAI;sBAAZ,KAAK;gBAKgD,KAAK;sBAA1D,KAAK;gBAKG,MAAM;sBAAd,KAAK;gBAKiD,MAAM;sBAA5D,KAAK;gBAKG,MAAM;sBAAd,KAAK;gBAK+C,UAAU;sBAA9D,KAAK;gBAKuC,UAAU;sBAAtD,KAAK;gBAK+C,WAAW;sBAA/D,KAAK;gBAKuC,WAAW;sBAAvD,KAAK;gBAK+C,aAAa;sBAAjE,KAAK;gBAK+C,WAAW;sBAA/D,KAAK;gBAK2C,SAAS;sBAAzD,KAAK;gBAK0D,aAAa;sBAA5E,KAAK;gBAKiE,SAAS;sBAA/E,KAAK;gBAKG,WAAW;sBAAnB,KAAK;gBAKI,MAAM;sBAAf,MAAM;gBAKG,OAAO;sBAAhB,MAAM;gBAKG,aAAa;sBAAtB,MAAM;gBAKG,QAAQ;sBAAjB,MAAM;gBAKG,SAAS;sBAAlB,MAAM;;;MCtGI,gBAAiB,SAAQ,eAAe;IAiBnD,YACS,QAAmB,EACnB,UAAsB,EACtB,GAAsB,EACtB,gBAAkC,EAClC,aAA6B,EAC7B,IAAkB;QAEzB,KAAK,EAAE,CAAC;QAPD,aAAQ,GAAR,QAAQ,CAAW;QACnB,eAAU,GAAV,UAAU,CAAY;QACtB,QAAG,GAAH,GAAG,CAAmB;QACtB,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,kBAAa,GAAb,aAAa,CAAgB;QAC7B,SAAI,GAAJ,IAAI,CAAc;QAlB3B,WAAM,GAAgB,EAAE,CAAC;QAEjB,eAAU,GAAG,IAAI,OAAO,EAAQ,CAAC;QAmBvC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;KAC3E;IAlBD,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;KAClD;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;KACpD;IAcD,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,YAAY;aACnB,IAAI,CACH,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAqB,CAAC,EACnC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAC3B;aACA,SAAS,CAAC,CAAC,CAAC;YACX,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SACzB,CAAC,CAAC;KACN;IAED,WAAW,CAAC,OAAsB;QAChC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAC5B,SAAS,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;KACzC;IAED,WAAW;QACT,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;KAC/B;IAED,WAAW;;QACT,MAAA,IAAI,CAAC,cAAc,0CAAE,WAAW,EAAE,CAAC;KACpC;IAED,UAAU;QACR,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,MAAM,EAAE,CAAC;SACf;aAAM;YACL,IAAI,CAAC,MAAM,EAAE,CAAC;;SAEf;KACF;IAED,MAAM;;QACJ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;YACzC,OAAO,EAAE,IAAI,CAAC,SAAS;YACvB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,aAAa,EAAE;gBACb,UAAU,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC;gBAC3C,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;gBACtC,gBAAgB,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;aACpG;SACF,CAAC,CAAC;;QAEH,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,aAAa,KAAI,MAAA,IAAI,CAAC,SAAS,0CAAE,UAAU,CAAA,EAAE;YACxE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;SACjG;KACF;IAED,MAAM;;QACJ,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;YACzB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtC,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,UAAU,0CAAE,MAAM,EAAE,CAAC;;YAErC,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SACnB;KACF;IAED,cAAc;;QACZ,OAAO,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,UAAU,0CAAE,WAAW,EAAE,CAAC;KAClD;IAED,OAAO;QACL,IAAI,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YACjC,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;aAAM;YACL,IAAI,CAAC,MAAM,EAAE,CAAC;SACf;KACF;IAED,QAAQ;QACN,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KACpB;IAED,SAAS;QACP,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACrB;IAED,QAAQ,CAAC,MAA2B;;QAClC,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,EAAE;YAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5B,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,UAAU,0CAAE,OAAO,EAAE,CAAC;SACvC;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC5B;KACF;;gIAzHU,gBAAgB;oHAAhB,gBAAgB,oMC9B7B,owCAmCA,4nCDPc,CAAC,iBAAiB,CAAC;2FAEpB,gBAAgB;kBAR5B,SAAS;mBAAC;oBACT,QAAQ,EAAE,GAAG,aAAa,EAAE;oBAC5B,WAAW,EAAE,yBAAyB;oBACtC,SAAS,EAAE,CAAC,yBAAyB,CAAC;oBACtC,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,UAAU,EAAE,CAAC,iBAAiB,CAAC;iBAChC;gPAE4C,SAAS;sBAAnD,SAAS;uBAAC,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;;MEF9B,aAAa;;6HAAb,aAAa;8HAAb,aAAa,iBAfT,gBAAgB,EAAE,eAAe,aAG9C,YAAY;QACZ,WAAW;QACX,mBAAmB;QACnB,cAAc;QACd,YAAY;QACZ,aAAa;QACb,WAAW;QACX,aAAa;QACb,YAAY;QACZ,aAAa,aAXL,gBAAgB;8HAcf,aAAa,YAbf;YACP,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,cAAc;YACd,YAAY;YACZ,aAAa;YACb,WAAW;YACX,aAAa;YACb,YAAY;YACZ,aAAa;SACd;2FAEU,aAAa;kBAhBzB,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,gBAAgB,EAAE,eAAe,CAAC;oBACjD,OAAO,EAAE,CAAC,gBAAgB,CAAC;oBAC3B,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,cAAc;wBACd,YAAY;wBACZ,aAAa;wBACb,WAAW;wBACX,aAAa;wBACb,YAAY;wBACZ,aAAa;qBACd;iBACF;;;AC5BD;;;;;;"}
|
|
1
|
+
{"version":3,"file":"ng-nest-ui-dialog.js","sources":["../../../../lib/ng-nest/ui/dialog/dialog.property.ts","../../../../lib/ng-nest/ui/dialog/dialog.component.ts","../../../../lib/ng-nest/ui/dialog/dialog.component.html","../../../../lib/ng-nest/ui/dialog/dialog-container.component.ts","../../../../lib/ng-nest/ui/dialog/dialog-container.component.html","../../../../lib/ng-nest/ui/dialog/dialog-ref.ts","../../../../lib/ng-nest/ui/dialog/dialog-container.directives.ts","../../../../lib/ng-nest/ui/dialog/dialog.service.ts","../../../../lib/ng-nest/ui/dialog/dialog.module.ts","../../../../lib/ng-nest/ui/dialog/ng-nest-ui-dialog.ts"],"sourcesContent":["import { Input, Output, EventEmitter, Component, ViewContainerRef, InjectionToken } from '@angular/core';\r\nimport { XStatus, XPlace, XInputBoolean, XTemplate, XEffect, XBoolean, XWithConfig } from '@ng-nest/ui/core';\r\nimport { XAlertProperty, XAlertOption } from '@ng-nest/ui/alert';\r\nimport { XPortalOverlayRef } from '@ng-nest/ui/portal';\r\nimport { XDialogComponent } from './dialog.component';\r\nimport { XDialogContainerComponent } from './dialog-container.component';\r\n\r\n/**\r\n * Dialog\r\n * @selector x-dialog\r\n * @decorator component\r\n */\r\nexport const XDialogPrefix = 'x-dialog';\r\nexport const X_DIALOG_CONFIG_NAME = 'dialog';\r\nexport const XDialogPortal = 'x-dialog-portal';\r\nexport const X_DIALOG_DATA = new InjectionToken<any>('XDialogData');\r\n\r\n/**\r\n * Dialog Property\r\n */\r\n@Component({ template: '' })\r\nexport class XDialogProperty extends XAlertProperty {\r\n @Input() @XInputBoolean() visible: boolean = false;\r\n /**\r\n * @zh_CN 方位,九宫格\r\n * @en_US Direction, nine grid\r\n */\r\n @Input() @XWithConfig<XPlace>(X_DIALOG_CONFIG_NAME, 'center') placement!: XPlace;\r\n /**\r\n * @zh_CN 偏移距离\r\n * @en_US Offset distance\r\n */\r\n @Input() @XWithConfig<string>(X_DIALOG_CONFIG_NAME, '1rem') offset!: string;\r\n /**\r\n * @zh_CN 类型\r\n * @en_US Types of\r\n */\r\n @Input() type: XDialogType = 'info';\r\n /**\r\n * @zh_CN 宽度\r\n * @en_US Width\r\n */\r\n @Input() @XWithConfig<string>(X_DIALOG_CONFIG_NAME, '32rem') width?: string;\r\n /**\r\n * @zh_CN 高度\r\n * @en_US Height\r\n */\r\n @Input() height?: string;\r\n /**\r\n * @zh_CN 样式主题\r\n * @en_US Style theme\r\n */\r\n @Input() @XWithConfig<XEffect>(X_DIALOG_CONFIG_NAME, 'white') effect!: XEffect;\r\n /**\r\n * @zh_CN 底部自定义模板\r\n * @en_US Custom template at the bottom\r\n */\r\n @Input() footer?: XTemplate;\r\n /**\r\n * @zh_CN 显示取消按钮\r\n * @en_US Show cancel button\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_DIALOG_CONFIG_NAME, true) showCancel!: XBoolean;\r\n /**\r\n * @zh_CN 取消按钮文字\r\n * @en_US Cancel button text\r\n */\r\n @Input() @XWithConfig<string>(X_DIALOG_CONFIG_NAME) cancelText?: string;\r\n /**\r\n * @zh_CN 显示确认按钮\r\n * @en_US Show confirmation button\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_DIALOG_CONFIG_NAME, true) showConfirm!: XBoolean;\r\n /**\r\n * @zh_CN 确认按钮文字\r\n * @en_US Confirm button text\r\n */\r\n @Input() @XWithConfig<string>(X_DIALOG_CONFIG_NAME) confirmText?: string;\r\n /**\r\n * @zh_CN 点击遮罩关闭\r\n * @en_US Click the mask to close\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_DIALOG_CONFIG_NAME, true) backdropClose!: XBoolean;\r\n /**\r\n * @zh_CN 是否显示背景遮罩\r\n * @en_US Whether to display the background mask\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_DIALOG_CONFIG_NAME, true) hasBackdrop!: XBoolean;\r\n /**\r\n * @zh_CN 自定义样式名\r\n * @en_US Custom style name\r\n */\r\n @Input() @XWithConfig<string>(X_DIALOG_CONFIG_NAME, '') className!: string;\r\n /**\r\n * @zh_CN 按钮居中\r\n * @en_US Button center\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_DIALOG_CONFIG_NAME) @XInputBoolean() buttonsCenter?: XBoolean;\r\n /**\r\n * @zh_CN 拖动对话框\r\n * @en_US Drag dialog\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_DIALOG_CONFIG_NAME, false) @XInputBoolean() draggable?: XBoolean;\r\n /**\r\n * @zh_CN 关闭前处理函数\r\n * @en_US Processing function before closing\r\n */\r\n @Input() beforeClose!: Function;\r\n /**\r\n * @zh_CN 取消按钮的事件\r\n * @en_US Cancel button event\r\n */\r\n @Output() cancel = new EventEmitter();\r\n /**\r\n * @zh_CN 确认按钮的事件\r\n * @en_US Confirm button event\r\n */\r\n @Output() confirm = new EventEmitter();\r\n /**\r\n * @zh_CN 显示/隐藏改变事件\r\n * @en_US Show/hide change events\r\n */\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n /**\r\n * @zh_CN 弹出完成动画加载\r\n * @en_US Pop up complete animation loading\r\n */\r\n @Output() showDone = new EventEmitter<any>();\r\n /**\r\n * @zh_CN 关闭完成动画\r\n * @en_US Close complete animation\r\n */\r\n @Output() closeDone = new EventEmitter<any>();\r\n}\r\n\r\nexport interface XDialogOption extends XAlertOption {\r\n visible?: boolean;\r\n /**\r\n * @zh_CN 方位,九宫格\r\n * @en_US Direction, nine grid\r\n */\r\n placement?: XPlace;\r\n /**\r\n * @zh_CN 偏移距离\r\n * @en_US Offset distance\r\n */\r\n offset?: string;\r\n /**\r\n * @zh_CN 类型\r\n * @en_US Types of\r\n */\r\n type?: XDialogType;\r\n /**\r\n * @zh_CN 宽度\r\n * @en_US Width\r\n */\r\n width?: string;\r\n /**\r\n * @zh_CN 高度\r\n * @en_US Height\r\n */\r\n height?: string;\r\n /**\r\n * @zh_CN 样式主题\r\n * @en_US Style theme\r\n */\r\n effect?: XEffect;\r\n /**\r\n * @zh_CN 底部自定义模板\r\n * @en_US Custom template at the bottom\r\n */\r\n footer?: XTemplate;\r\n /**\r\n * @zh_CN 显示取消按钮\r\n * @en_US Show cancel button\r\n */\r\n showCancel?: XBoolean;\r\n /**\r\n * @zh_CN 取消按钮文字\r\n * @en_US Cancel button text\r\n */\r\n cancelText?: string;\r\n /**\r\n * @zh_CN 显示确认按钮\r\n * @en_US Show confirmation button\r\n */\r\n showConfirm?: XBoolean;\r\n /**\r\n * @zh_CN 确认按钮文字\r\n * @en_US Confirm button text\r\n */\r\n confirmText?: string;\r\n /**\r\n * @zh_CN 点击遮罩关闭\r\n * @en_US Click the mask to close\r\n */\r\n backdropClose?: XBoolean;\r\n /**\r\n * @zh_CN 是否显示背景遮罩\r\n * @en_US Whether to display the background mask\r\n */\r\n hasBackdrop?: XBoolean;\r\n /**\r\n * @zh_CN 自定义样式名\r\n * @en_US Custom style name\r\n */\r\n className?: string;\r\n /**\r\n * @zh_CN 按钮居中\r\n * @en_US Button center\r\n */\r\n buttonsCenter?: XBoolean;\r\n /**\r\n * @zh_CN 拖动对话框\r\n * @en_US Drag dialog\r\n */\r\n draggable?: XBoolean;\r\n /**\r\n * @zh_CN 关闭前处理函数\r\n * @en_US Processing function before closing\r\n */\r\n beforeClose?: Function;\r\n}\r\n\r\n/**\r\n * Dialog option by service\r\n */\r\nexport interface XDialogRefOption {\r\n /**\r\n * @zh_CN 展示方向\r\n * @en_US Display direction\r\n * @default 'center'\r\n * @withConfig true\r\n */\r\n placement?: XPlace;\r\n /**\r\n * @zh_CN 偏移距离\r\n * @en_US Offset distance\r\n * @default '1rem'\r\n * @withConfig true\r\n */\r\n offset?: string;\r\n /**\r\n * @zh_CN 宽度\r\n * @en_US Width\r\n * @default '32rem'\r\n * @withConfig true\r\n */\r\n width?: string;\r\n /**\r\n * @zh_CN 高度\r\n * @en_US Height\r\n */\r\n height?: string;\r\n /**\r\n * @zh_CN 自定义样式名\r\n * @en_US Custom style name\r\n */\r\n className?: string;\r\n /**\r\n * @zh_CN 点击遮罩关闭\r\n * @en_US Click the mask to close\r\n * @default true\r\n * @withConfig true\r\n */\r\n backdropClose?: boolean;\r\n /**\r\n * @zh_CN 是否显示背景遮罩\r\n * @en_US Whether to display the background mask\r\n * @default true\r\n * @withConfig true\r\n */\r\n hasBackdrop?: boolean;\r\n /**\r\n * @zh_CN 拖动对话框\r\n * @en_US Drag dialog\r\n * @default false\r\n * @withConfig true\r\n */\r\n draggable?: boolean;\r\n /**\r\n * @zh_CN 数据,通过 \"@Inject(X_DIALOG_DATA)\" 来接收数据\r\n * @en_US Data. Receive data by \"@Inject(X_DIALOG_DATA)\"\r\n */\r\n data?: any;\r\n /**\r\n * @en_US 视图容器实例可以包含其他视图容器。\r\n * @en_US A view container instance can contain other view containers.\r\n */\r\n viewContainerRef?: ViewContainerRef;\r\n}\r\n\r\nexport type XDialogAnimationState = XPlace | 'void';\r\n\r\nexport interface XDialogAnimationEvent {\r\n state: XDialogAnimationState;\r\n action: 'start' | 'done';\r\n totalTime: number;\r\n}\r\n\r\nexport interface XDialogCallback {\r\n (action: XDialogAction, message?: string): void;\r\n}\r\n\r\nexport type XDialogAction = 'confirm' | 'cancel';\r\n\r\n/**\r\n * @zh_CN 创建的弹框对象\r\n * @en_US Dialog object created\r\n */\r\nexport interface XDialogOverlayRef extends XPortalOverlayRef<XDialogComponent> {}\r\n\r\n/**\r\n * @zh_CN 创建的弹框对象,通过服务\r\n * @en_US Dialog object created by service\r\n */\r\nexport interface XDialogContainerOverlayRef extends XPortalOverlayRef<XDialogContainerComponent> {}\r\n\r\n/**\r\n * @zh_CN 类型\r\n * @en_US Types of\r\n */\r\nexport type XDialogType = XStatus;\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n OnChanges,\r\n SimpleChanges,\r\n ViewChild,\r\n TemplateRef,\r\n ViewContainerRef,\r\n OnDestroy\r\n} from '@angular/core';\r\nimport { XMoveBoxAnimation, XIsChange, XIsFunction } from '@ng-nest/ui/core';\r\nimport { XDialogPrefix, XDialogOverlayRef, XDialogPortal, XDialogProperty } from './dialog.property';\r\nimport { XPortalService } from '@ng-nest/ui/portal';\r\nimport { Subscription, Subject } from 'rxjs';\r\nimport { BlockScrollStrategy } from '@angular/cdk/overlay';\r\nimport { XI18nDialog, XI18nService } from '@ng-nest/ui/i18n';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: `${XDialogPrefix}`,\r\n templateUrl: './dialog.component.html',\r\n styleUrls: ['./dialog.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XMoveBoxAnimation]\r\n})\r\nexport class XDialogComponent extends XDialogProperty implements OnChanges, OnDestroy {\r\n @ViewChild('dialogTpl', { static: false }) dialogTpl!: TemplateRef<void>;\r\n dialogRef!: XDialogOverlayRef;\r\n backdropClick$!: Subscription;\r\n scrollStrategy: BlockScrollStrategy;\r\n locale: XI18nDialog = {};\r\n\r\n private _unSubject = new Subject<void>();\r\n\r\n get getCancelText() {\r\n return this.cancelText || this.locale.cancelText;\r\n }\r\n\r\n get getConfirmText() {\r\n return this.confirmText || this.locale.confirmText;\r\n }\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public viewContainerRef: ViewContainerRef,\r\n public protalService: XPortalService,\r\n public i18n: XI18nService\r\n ) {\r\n super();\r\n this.scrollStrategy = this.protalService.overlay.scrollStrategies.block();\r\n }\r\n\r\n ngOnInit() {\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.dialog as XI18nDialog),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { visible } = changes;\r\n XIsChange(visible) && this.setVisible();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe();\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n unsubscribe() {\r\n this.backdropClick$?.unsubscribe();\r\n }\r\n\r\n setVisible() {\r\n if (this.visible) {\r\n this.create();\r\n } else {\r\n this.detach();\r\n // this.visibleChange.emit(false);\r\n }\r\n }\r\n\r\n create() {\r\n this.dialogRef = this.protalService.attach({\r\n content: this.dialogTpl,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: {\r\n panelClass: [XDialogPortal, this.className],\r\n hasBackdrop: Boolean(this.hasBackdrop),\r\n positionStrategy: this.protalService.setPlace(this.placement, this.width, this.height, this.offset)\r\n }\r\n });\r\n // this.scrollStrategy.enable();\r\n if (this.hasBackdrop && this.backdropClose && this.dialogRef?.overlayRef) {\r\n this.backdropClick$ = this.dialogRef.overlayRef.backdropClick().subscribe(() => this.onClose());\r\n }\r\n }\r\n\r\n detach() {\r\n if (this.portalAttached()) {\r\n this.visible = false;\r\n this.visibleChange.emit(this.visible);\r\n this.dialogRef?.overlayRef?.detach();\r\n // this.scrollStrategy.disable();\r\n this.unsubscribe();\r\n this.close.emit();\r\n }\r\n }\r\n\r\n portalAttached() {\r\n return this.dialogRef?.overlayRef?.hasAttached();\r\n }\r\n\r\n onClose() {\r\n if (XIsFunction(this.beforeClose)) {\r\n this.beforeClose();\r\n } else {\r\n this.detach();\r\n }\r\n }\r\n\r\n onCancel() {\r\n this.onClose();\r\n this.cancel.emit();\r\n }\r\n\r\n onConfirm() {\r\n this.onClose();\r\n this.confirm.emit();\r\n }\r\n\r\n moveDone($event: { toState: string }) {\r\n if ($event.toState === 'void') {\r\n this.closeDone.emit($event);\r\n this.dialogRef?.overlayRef?.dispose();\r\n } else {\r\n this.showDone.emit($event);\r\n }\r\n }\r\n}\r\n","<ng-template #dialogTpl>\r\n <div class=\"x-dialog\" [@x-move-box-animation]=\"placement\" (@x-move-box-animation.done)=\"moveDone($event)\">\r\n <x-alert\r\n [draggable]=\"draggable\"\r\n [dragBoundary]=\"'.cdk-overlay-container'\"\r\n (close)=\"onClose()\"\r\n [title]=\"title\"\r\n [content]=\"contentTpl\"\r\n [type]=\"type\"\r\n [effect]=\"effect\"\r\n [hideClose]=\"hideClose\"\r\n [closeText]=\"closeText\"\r\n showIcon=\"false\"\r\n duration=\"0\"\r\n manual\r\n disabledAnimation\r\n ></x-alert>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #contentTpl>\r\n <div class=\"x-dialog-inner\">\r\n <div class=\"x-dialog-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"x-dialog-buttons\" [class.x-dialog-buttons-center]=\"buttonsCenter\">\r\n <ng-container *xOutlet=\"footer\">\r\n <x-buttons space=\"1\" *ngIf=\"showCancel || showConfirm\">\r\n <x-button *ngIf=\"showCancel\" (click)=\"onCancel()\">{{ getCancelText }}</x-button>\r\n <x-button *ngIf=\"showConfirm\" type=\"primary\" (click)=\"onConfirm()\">{{ getConfirmText }}</x-button>\r\n </x-buttons>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n","import { BasePortalOutlet, CdkPortalOutlet, ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ComponentRef,\r\n EmbeddedViewRef,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { XMoveBoxAnimation } from '@ng-nest/ui/core';\r\nimport { XDialogAnimationEvent, XDialogAnimationState } from './dialog.property';\r\nimport { AnimationEvent } from '@angular/animations';\r\n\r\n@Component({\r\n selector: 'x-dialog-container',\r\n templateUrl: './dialog-container.component.html',\r\n styleUrls: ['./dialog-container.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XMoveBoxAnimation]\r\n})\r\nexport class XDialogContainerComponent extends BasePortalOutlet {\r\n @HostBinding('class.x-dialog-container') _has = true;\r\n @HostBinding('@x-move-box-animation') public placement?: XDialogAnimationState;\r\n @HostListener('@x-move-box-animation.done', ['$event']) done({ toState, totalTime }: AnimationEvent) {\r\n this.animationChanged.next({ action: 'done', state: toState as XDialogAnimationState, totalTime });\r\n }\r\n @HostListener('@x-move-box-animation.start', ['$event']) start({ toState, totalTime }: AnimationEvent) {\r\n this.animationChanged.next({ action: 'start', state: toState as XDialogAnimationState, totalTime });\r\n }\r\n @ViewChild(CdkPortalOutlet, { static: true }) portalOutlet!: CdkPortalOutlet;\r\n\r\n animationChanged = new EventEmitter<XDialogAnimationEvent>();\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\r\n if (this.portalOutlet.hasAttached()) {\r\n throw Error('dialog portal has attached');\r\n }\r\n return this.portalOutlet.attachComponentPortal(portal);\r\n }\r\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\r\n if (this.portalOutlet.hasAttached()) {\r\n throw Error('dialog portal has attached');\r\n }\r\n return this.portalOutlet.attachTemplatePortal(portal);\r\n }\r\n}\r\n","<ng-template cdkPortalOutlet></ng-template>\r\n","import { OverlayRef } from '@angular/cdk/overlay';\r\nimport { filter, take } from 'rxjs/operators';\r\nimport { XDialogContainerComponent } from './dialog-container.component';\r\n\r\n// TODO: add more function\r\nexport class XDialogRef<C> {\r\n componentInstance!: C;\r\n constructor(public overlayRef: OverlayRef, public containerInstance: XDialogContainerComponent) {}\r\n close() {\r\n this.containerInstance.animationChanged\r\n .pipe(\r\n filter((event) => event.state === 'void' && event.action === 'done'),\r\n take(1)\r\n )\r\n .subscribe(() => {\r\n this.overlayRef.detach();\r\n });\r\n this.containerInstance.placement = 'void';\r\n }\r\n}\r\n","import { Directive, HostBinding, HostListener, Optional } from '@angular/core';\r\nimport { XDialogRef } from './dialog-ref';\r\n\r\n@Directive({\r\n selector: `[x-dialog-close]`\r\n})\r\nexport class XDialogCloseDirective {\r\n @HostListener('click', ['$event']) onCloseClick() {\r\n this.dialogRef && this.dialogRef.close();\r\n }\r\n constructor(@Optional() public dialogRef: XDialogRef<any>) {}\r\n}\r\n\r\n@Directive({\r\n selector: `[x-dialog-title]`\r\n})\r\nexport class XDialogTitleDirective {\r\n @HostBinding('class.x-dialog-container-title') _has = true;\r\n}\r\n\r\n@Directive({\r\n selector: `[x-dialog-content], x-dialog-content`\r\n})\r\nexport class XDialogContentDirective {\r\n @HostBinding('class.x-dialog-container-content') _has = true;\r\n}\r\n\r\n@Directive({\r\n selector: `[x-dialog-actions], x-dialog-actions`\r\n})\r\nexport class XDialogActionsDirective {\r\n @HostBinding('class.x-dialog-container-actions') _has = true;\r\n}\r\n","import { Overlay } from '@angular/cdk/overlay';\r\nimport { ComponentPortal, ComponentType, TemplatePortal } from '@angular/cdk/portal';\r\nimport { Injectable, TemplateRef } from '@angular/core';\r\nimport { fillDefault, XConfigService, XDialogConfig } from '@ng-nest/ui/core';\r\nimport { XPortalService } from '@ng-nest/ui/portal';\r\nimport { XDialogContainerComponent } from './dialog-container.component';\r\nimport { XDialogRef } from './dialog-ref';\r\nimport { XDialogRefOption, X_DIALOG_CONFIG_NAME, X_DIALOG_DATA } from './dialog.property';\r\n\r\n@Injectable()\r\nexport class XDialogService {\r\n default: XDialogRefOption = {\r\n placement: 'center',\r\n offset: '1rem',\r\n width: '32rem',\r\n backdropClose: true,\r\n hasBackdrop: true,\r\n draggable: false\r\n };\r\n configDefault?: XDialogConfig;\r\n\r\n constructor(public portalService: XPortalService, public configService: XConfigService, public overlay: Overlay) {\r\n this.configDefault = this.configService.getConfigForComponent(X_DIALOG_CONFIG_NAME);\r\n Object.assign(this.default, this.configDefault);\r\n }\r\n\r\n create<T>(content: TemplateRef<any> | ComponentType<T>, option: XDialogRefOption = {}): XDialogRef<T> {\r\n fillDefault(option, this.default);\r\n const portal = this.portalService.attach<XDialogContainerComponent>({\r\n content: XDialogContainerComponent,\r\n viewContainerRef: option.viewContainerRef,\r\n overlayConfig: {\r\n hasBackdrop: option.hasBackdrop,\r\n panelClass: option.className,\r\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\r\n positionStrategy: this.portalService.setPlace(option.placement, option.width, option.height, option.offset!)\r\n }\r\n });\r\n const { overlayRef, componentRef } = portal || {};\r\n const { instance } = componentRef! || {};\r\n instance.placement = option.placement;\r\n const dialogRef = new XDialogRef<T>(overlayRef!, instance);\r\n if (content instanceof TemplateRef) {\r\n instance.attachTemplatePortal(\r\n new TemplatePortal(content, option.viewContainerRef!, { $implicit: option.data, dialogRef: dialogRef })\r\n );\r\n } else {\r\n const injector = this.portalService.createInjector([\r\n { provide: X_DIALOG_DATA, useValue: option.data },\r\n { provide: XDialogRef, useValue: dialogRef }\r\n ]);\r\n const comRef = instance.attachComponentPortal(new ComponentPortal(content, option.viewContainerRef, injector));\r\n dialogRef.componentInstance = comRef.instance;\r\n }\r\n\r\n if (option.hasBackdrop && option.backdropClose && overlayRef) {\r\n overlayRef.backdropClick().subscribe(() => {\r\n dialogRef.close();\r\n });\r\n }\r\n\r\n return dialogRef;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XDialogComponent } from './dialog.component';\r\nimport { XAlertModule } from '@ng-nest/ui/alert';\r\nimport { XPortalModule } from '@ng-nest/ui/portal';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { XInputModule } from '@ng-nest/ui/input';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { XDialogProperty } from './dialog.property';\r\nimport {\r\n XDialogActionsDirective,\r\n XDialogCloseDirective,\r\n XDialogContentDirective,\r\n XDialogTitleDirective\r\n} from './dialog-container.directives';\r\nimport { XDialogContainerComponent } from './dialog-container.component';\r\nimport { XDialogService } from './dialog.service';\r\n\r\n@NgModule({\r\n declarations: [\r\n XDialogComponent,\r\n XDialogCloseDirective,\r\n XDialogTitleDirective,\r\n XDialogContentDirective,\r\n XDialogActionsDirective,\r\n XDialogContainerComponent,\r\n XDialogProperty\r\n ],\r\n exports: [\r\n XDialogComponent,\r\n XDialogCloseDirective,\r\n XDialogTitleDirective,\r\n XDialogContentDirective,\r\n XDialogActionsDirective,\r\n XDialogContainerComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n DragDropModule,\r\n XInputModule,\r\n XButtonModule,\r\n XIconModule,\r\n XPortalModule,\r\n XAlertModule,\r\n XOutletModule\r\n ],\r\n providers: [XDialogService]\r\n})\r\nexport class XDialogModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|