pdm-ui-kit 1.3.0 → 1.5.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/README.md +28 -0
- package/alert/alert-dialog.component.d.ts +14 -2
- package/alert/alert.module.d.ts +2 -1
- package/calendar/date-picker.component.d.ts +2 -1
- package/dialog/dialog.component.d.ts +18 -26
- package/dialog/dialog.module.d.ts +1 -1
- package/esm2020/alert/alert-dialog.component.mjs +101 -11
- package/esm2020/alert/alert.module.mjs +5 -4
- package/esm2020/calendar/date-picker.component.mjs +15 -5
- package/esm2020/dialog/dialog.component.mjs +43 -85
- package/esm2020/dialog/dialog.module.mjs +10 -4
- package/esm2020/src/alert/alert-dialog.component.mjs +101 -11
- package/esm2020/src/alert/alert.module.mjs +5 -4
- package/esm2020/src/calendar/date-picker.component.mjs +15 -5
- package/esm2020/src/dialog/dialog.component.mjs +43 -85
- package/esm2020/src/dialog/dialog.module.mjs +10 -4
- package/esm2020/src/utils/cn.mjs +19 -0
- package/esm2020/src/utils/public-api.mjs +2 -1
- package/fesm2015/pdm-ui-kit-src-alert.mjs +103 -12
- package/fesm2015/pdm-ui-kit-src-alert.mjs.map +1 -1
- package/fesm2015/pdm-ui-kit-src-calendar.mjs +14 -4
- package/fesm2015/pdm-ui-kit-src-calendar.mjs.map +1 -1
- package/fesm2015/pdm-ui-kit-src-dialog.mjs +50 -85
- package/fesm2015/pdm-ui-kit-src-dialog.mjs.map +1 -1
- package/fesm2015/pdm-ui-kit-src-utils.mjs +21 -1
- package/fesm2015/pdm-ui-kit-src-utils.mjs.map +1 -1
- package/fesm2015/pdm-ui-kit.mjs +175 -112
- package/fesm2015/pdm-ui-kit.mjs.map +1 -1
- package/fesm2020/pdm-ui-kit-src-alert.mjs +103 -12
- package/fesm2020/pdm-ui-kit-src-alert.mjs.map +1 -1
- package/fesm2020/pdm-ui-kit-src-calendar.mjs +14 -4
- package/fesm2020/pdm-ui-kit-src-calendar.mjs.map +1 -1
- package/fesm2020/pdm-ui-kit-src-dialog.mjs +50 -85
- package/fesm2020/pdm-ui-kit-src-dialog.mjs.map +1 -1
- package/fesm2020/pdm-ui-kit-src-utils.mjs +21 -1
- package/fesm2020/pdm-ui-kit-src-utils.mjs.map +1 -1
- package/fesm2020/pdm-ui-kit.mjs +175 -112
- package/fesm2020/pdm-ui-kit.mjs.map +1 -1
- package/package.json +3 -1
- package/src/alert/alert-dialog.component.d.ts +14 -2
- package/src/alert/alert.module.d.ts +2 -1
- package/src/calendar/date-picker.component.d.ts +2 -1
- package/src/dialog/dialog.component.d.ts +18 -26
- package/src/dialog/dialog.module.d.ts +1 -1
- package/src/utils/cn.d.ts +15 -0
- package/src/utils/public-api.d.ts +1 -0
|
@@ -1,43 +1,40 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output, } from "@angular/core";
|
|
2
|
-
import { responsive } from "pdm-ui-kit/src/utils";
|
|
3
|
-
import { Z_INDEX } from "pdm-ui-kit/src/utils";
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ContentChild, Directive, EventEmitter, HostListener, Input, Output, } from "@angular/core";
|
|
2
|
+
import { cn, responsive, Z_INDEX } from "pdm-ui-kit/src/utils";
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
4
|
import * as i1 from "@angular/common";
|
|
6
5
|
import * as i2 from "@angular/cdk/a11y";
|
|
6
|
+
export class PdmDialogHeaderDirective {
|
|
7
|
+
}
|
|
8
|
+
PdmDialogHeaderDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDialogHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
9
|
+
PdmDialogHeaderDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: PdmDialogHeaderDirective, selector: "[pdmHeader]", ngImport: i0 });
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDialogHeaderDirective, decorators: [{
|
|
11
|
+
type: Directive,
|
|
12
|
+
args: [{ selector: "[pdmHeader]" }]
|
|
13
|
+
}] });
|
|
14
|
+
export class PdmDialogFooterDirective {
|
|
15
|
+
}
|
|
16
|
+
PdmDialogFooterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDialogFooterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
17
|
+
PdmDialogFooterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: PdmDialogFooterDirective, selector: "[pdmFooter]", ngImport: i0 });
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDialogFooterDirective, decorators: [{
|
|
19
|
+
type: Directive,
|
|
20
|
+
args: [{ selector: "[pdmFooter]" }]
|
|
21
|
+
}] });
|
|
7
22
|
/**
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* MEJORADO en v0.2.0:
|
|
11
|
-
* - Modo 'responsive' (default): fullscreen en mobile, modal en desktop
|
|
12
|
-
* - Tamaños predefinidos: sm, md, lg, xl
|
|
13
|
-
* - Mejor manejo de scroll en mobile
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* // Responsive (recomendado)
|
|
17
|
-
* <pdm-dialog [open]="isOpen" size="responsive">
|
|
18
|
-
* <p>Content</p>
|
|
19
|
-
* </pdm-dialog>
|
|
20
|
-
*
|
|
21
|
-
* @example
|
|
22
|
-
* // Tamaño fijo
|
|
23
|
-
* <pdm-dialog [open]="isOpen" size="lg">
|
|
24
|
-
* <p>Content</p>
|
|
25
|
-
* </pdm-dialog>
|
|
23
|
+
* Responsive modal/dialog component.
|
|
26
24
|
*/
|
|
27
25
|
export class PdmDialogComponent {
|
|
28
26
|
constructor() {
|
|
29
27
|
this.open = false;
|
|
30
28
|
this.variant = "default";
|
|
31
29
|
/**
|
|
32
|
-
*
|
|
33
|
-
* - responsive: fullscreen mobile, modal desktop (recomendado)
|
|
34
|
-
* - sm: 400px max
|
|
35
|
-
* - md: 500px max
|
|
36
|
-
* - lg: 640px max (default)
|
|
37
|
-
* - xl: 800px max
|
|
38
|
-
* - desktop/mobile/mobile-fullscreen: legacy, deprecado
|
|
30
|
+
* Dialog size. Responsive mode is fullscreen on mobile and a modal on desktop.
|
|
39
31
|
*/
|
|
40
32
|
this.size = "responsive";
|
|
33
|
+
/**
|
|
34
|
+
* Custom desktop maximum width, such as `800px` or `min(90vw, 800px)`.
|
|
35
|
+
* Overrides `size` at the `sm` breakpoint; responsive mobile mode remains fullscreen.
|
|
36
|
+
*/
|
|
37
|
+
this.maxWidth = "";
|
|
41
38
|
this.title = "";
|
|
42
39
|
this.description = "";
|
|
43
40
|
this.closeOnBackdrop = true;
|
|
@@ -76,7 +73,6 @@ export class PdmDialogComponent {
|
|
|
76
73
|
}
|
|
77
74
|
}
|
|
78
75
|
get panelClassName() {
|
|
79
|
-
// Legacy sizes (backward compatibility)
|
|
80
76
|
if (this.size === "desktop") {
|
|
81
77
|
return this.buildPanelClasses([
|
|
82
78
|
"max-w-[640px]",
|
|
@@ -99,23 +95,19 @@ export class PdmDialogComponent {
|
|
|
99
95
|
"sm:rounded-[10px]",
|
|
100
96
|
]);
|
|
101
97
|
}
|
|
102
|
-
// New responsive mode (recomendado)
|
|
103
98
|
if (this.size === "responsive") {
|
|
104
99
|
return this.buildPanelClasses([
|
|
105
|
-
// Mobile: fullscreen con bordes redondeados solo arriba
|
|
106
100
|
"w-full",
|
|
107
101
|
"h-full",
|
|
108
102
|
"max-h-[100dvh]",
|
|
109
103
|
"rounded-t-[10px]",
|
|
110
104
|
"sm:rounded-[10px]",
|
|
111
|
-
// Desktop: modal centrado
|
|
112
105
|
"sm:w-auto",
|
|
113
106
|
"sm:h-auto",
|
|
114
107
|
"sm:max-w-[640px]",
|
|
115
108
|
"sm:max-h-[calc(100vh-4rem)]",
|
|
116
109
|
]);
|
|
117
110
|
}
|
|
118
|
-
// New size options
|
|
119
111
|
const sizeMap = {
|
|
120
112
|
sm: "sm:max-w-[400px]",
|
|
121
113
|
md: "sm:max-w-[500px]",
|
|
@@ -124,12 +116,10 @@ export class PdmDialogComponent {
|
|
|
124
116
|
};
|
|
125
117
|
const maxWidth = sizeMap[this.size] || sizeMap.lg;
|
|
126
118
|
return this.buildPanelClasses([
|
|
127
|
-
// Mobile: fullscreen
|
|
128
119
|
"w-full",
|
|
129
120
|
"h-full",
|
|
130
121
|
"max-h-[100dvh]",
|
|
131
122
|
"rounded-t-[10px]",
|
|
132
|
-
// Desktop: modal
|
|
133
123
|
"sm:rounded-[10px]",
|
|
134
124
|
"sm:w-auto",
|
|
135
125
|
"sm:h-auto",
|
|
@@ -149,65 +139,25 @@ export class PdmDialogComponent {
|
|
|
149
139
|
"text-foreground",
|
|
150
140
|
"shadow-lg",
|
|
151
141
|
"overflow-hidden",
|
|
152
|
-
...sizeClasses,
|
|
153
|
-
this.className,
|
|
154
142
|
];
|
|
155
|
-
|
|
143
|
+
const maxWidthClass = this.maxWidth ? `sm:max-w-[${this.maxWidth}]` : "";
|
|
144
|
+
return cn(...base, ...sizeClasses, maxWidthClass, this.className);
|
|
156
145
|
}
|
|
157
146
|
get bodyWrapperClassName() {
|
|
158
|
-
|
|
159
|
-
const base = [
|
|
160
|
-
"flex-1",
|
|
161
|
-
"min-h-0",
|
|
162
|
-
"overflow-y-auto",
|
|
163
|
-
"px-4",
|
|
164
|
-
"py-6",
|
|
165
|
-
"sm:px-6",
|
|
166
|
-
this.bodyClassName,
|
|
167
|
-
];
|
|
168
|
-
return base.filter(Boolean).join(" ");
|
|
147
|
+
return cn("flex-1 min-h-0 overflow-y-auto px-4 py-6 sm:px-6", this.bodyClassName);
|
|
169
148
|
}
|
|
170
149
|
get headerWrapperClassName() {
|
|
171
|
-
|
|
172
|
-
"flex",
|
|
173
|
-
"items-start",
|
|
174
|
-
"justify-between",
|
|
175
|
-
"gap-3",
|
|
176
|
-
"p-4",
|
|
177
|
-
"sm:p-6",
|
|
178
|
-
"border-b",
|
|
179
|
-
"border-border",
|
|
180
|
-
this.headerClassName,
|
|
181
|
-
];
|
|
182
|
-
return base.filter(Boolean).join(" ");
|
|
150
|
+
return cn("flex items-start justify-between gap-3 p-4 sm:p-6 border-b border-border", this.headerClassName);
|
|
183
151
|
}
|
|
184
152
|
get footerWrapperClassName() {
|
|
185
153
|
const effectiveAlign = this.alignFooter === "right" && this.variant === "custom-close"
|
|
186
154
|
? "left"
|
|
187
155
|
: this.alignFooter;
|
|
188
|
-
|
|
189
|
-
"
|
|
190
|
-
"sm:
|
|
191
|
-
"border-t",
|
|
192
|
-
"border-border",
|
|
193
|
-
// Mobile: siempre full-width
|
|
194
|
-
"flex",
|
|
195
|
-
"flex-col",
|
|
196
|
-
"gap-2",
|
|
197
|
-
// Desktop: según alignFooter
|
|
198
|
-
effectiveAlign === "full-width"
|
|
199
|
-
? "sm:flex-col"
|
|
200
|
-
: "sm:flex-row sm:items-center",
|
|
201
|
-
effectiveAlign === "left" ? "sm:justify-start" : "",
|
|
202
|
-
effectiveAlign === "right" ? "sm:justify-end" : "",
|
|
203
|
-
this.footerClassName,
|
|
204
|
-
];
|
|
205
|
-
return base.filter(Boolean).join(" ");
|
|
156
|
+
return cn("p-4 sm:p-6 border-t border-border flex flex-col gap-2", effectiveAlign === "full-width"
|
|
157
|
+
? "sm:flex-col"
|
|
158
|
+
: "sm:flex-row sm:items-center", effectiveAlign === "left" ? "sm:justify-start" : "", effectiveAlign === "right" ? "sm:justify-end" : "", this.footerClassName);
|
|
206
159
|
}
|
|
207
160
|
get containerClassName() {
|
|
208
|
-
// Container con backdrop z-40
|
|
209
|
-
// Mobile: fullscreen desde el bottom
|
|
210
|
-
// Desktop: centrado
|
|
211
161
|
return responsive({
|
|
212
162
|
default: `fixed inset-x-0 bottom-0 ${Z_INDEX.modalBackdrop} flex items-end justify-center`,
|
|
213
163
|
sm: `fixed inset-0 ${Z_INDEX.modalBackdrop} flex items-center justify-center p-4`,
|
|
@@ -215,16 +165,18 @@ export class PdmDialogComponent {
|
|
|
215
165
|
}
|
|
216
166
|
}
|
|
217
167
|
PdmDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
218
|
-
PdmDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmDialogComponent, selector: "pdm-dialog", inputs: { open: "open", variant: "variant", size: "size", title: "title", description: "description", closeOnBackdrop: "closeOnBackdrop", closeOnEsc: "closeOnEsc", showCloseButton: "showCloseButton", showHeader: "showHeader", showFooter: "showFooter", primaryActionText: "primaryActionText", secondaryActionText: "secondaryActionText", alignFooter: "alignFooter", headerClassName: "headerClassName", bodyClassName: "bodyClassName", footerClassName: "footerClassName", className: "className" }, outputs: { openChange: "openChange", primaryAction: "primaryAction", secondaryAction: "secondaryAction" }, host: { listeners: { "document:keydown.escape": "onEsc()" } }, ngImport: i0, template: "<div *ngIf=\"open\" [ngClass]=\"containerClassName\">\n <!-- Backdrop -->\n <div class=\"absolute inset-0 bg-foreground/30 backdrop-blur-sm\" (click)=\"onBackdropClick()\"></div>\n
|
|
168
|
+
PdmDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmDialogComponent, selector: "pdm-dialog", inputs: { open: "open", variant: "variant", size: "size", maxWidth: "maxWidth", title: "title", description: "description", closeOnBackdrop: "closeOnBackdrop", closeOnEsc: "closeOnEsc", showCloseButton: "showCloseButton", showHeader: "showHeader", showFooter: "showFooter", primaryActionText: "primaryActionText", secondaryActionText: "secondaryActionText", alignFooter: "alignFooter", headerClassName: "headerClassName", bodyClassName: "bodyClassName", footerClassName: "footerClassName", className: "className" }, outputs: { openChange: "openChange", primaryAction: "primaryAction", secondaryAction: "secondaryAction" }, host: { listeners: { "document:keydown.escape": "onEsc()" } }, queries: [{ propertyName: "customHeader", first: true, predicate: PdmDialogHeaderDirective, descendants: true }, { propertyName: "customFooter", first: true, predicate: PdmDialogFooterDirective, descendants: true }], ngImport: i0, template: "<div *ngIf=\"open\" [ngClass]=\"containerClassName\">\n <!-- Backdrop -->\n <div class=\"absolute inset-0 bg-foreground/30 backdrop-blur-sm\" (click)=\"onBackdropClick()\"></div>\n\n <!-- Dialog Panel -->\n <section role=\"dialog\" aria-modal=\"true\" cdkTrapFocus [ngClass]=\"panelClassName\">\n <!-- Header -->\n <div *ngIf=\"showHeader\" [ngClass]=\"headerWrapperClassName\">\n <ng-container *ngIf=\"customHeader; else defaultHeader\">\n <ng-content select=\"[pdmHeader]\"></ng-content>\n </ng-container>\n <ng-template #defaultHeader>\n <div class=\"min-w-0 flex-1\">\n <h2 class=\"m-0 text-lg font-semibold leading-none tracking-tight text-foreground\">{{ title }}</h2>\n <p *ngIf=\"description\" class=\"m-0 mt-2 text-sm text-muted-foreground\">{{ description }}</p>\n </div>\n <button\n *ngIf=\"showCloseButton\"\n type=\"button\"\n class=\"inline-flex h-6 w-6 flex-shrink-0 appearance-none box-border items-center justify-center rounded-sm border-0 bg-transparent p-0 text-foreground opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none\"\n (click)=\"close()\"\n aria-label=\"Close dialog\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 6L18 18M18 6L6 18\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n </svg>\n </button>\n </ng-template>\n </div>\n\n <!-- Body -->\n <div [ngClass]=\"bodyWrapperClassName\">\n <ng-content></ng-content>\n </div>\n\n <!-- Footer -->\n <div *ngIf=\"showFooter\" [ngClass]=\"footerWrapperClassName\">\n <ng-container *ngIf=\"customFooter; else defaultFooter\">\n <ng-content select=\"[pdmFooter]\"></ng-content>\n </ng-container>\n <ng-template #defaultFooter>\n <ng-container *ngIf=\"variant === 'custom-close'; else defaultActions\">\n <button\n type=\"button\"\n class=\"inline-flex h-9 w-full appearance-none box-border items-center justify-center rounded-md border border-solid border-input bg-background px-4 py-2 text-sm font-medium text-foreground shadow-sm sm:w-auto\"\n (click)=\"onSecondaryAction()\"\n >\n {{ secondaryActionText }}\n </button>\n </ng-container>\n\n <ng-template #defaultActions>\n <button\n type=\"button\"\n class=\"inline-flex h-9 w-full appearance-none box-border items-center justify-center rounded-md border border-solid border-input bg-background px-4 py-2 text-sm font-medium text-foreground shadow-sm sm:w-auto\"\n (click)=\"onSecondaryAction()\"\n >\n {{ secondaryActionText }}\n </button>\n <button\n type=\"button\"\n class=\"inline-flex h-9 w-full appearance-none box-border items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground shadow-sm sm:w-auto\"\n (click)=\"onPrimaryAction()\"\n >\n {{ primaryActionText }}\n </button>\n </ng-template>\n </ng-template>\n </div>\n </section>\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
219
169
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDialogComponent, decorators: [{
|
|
220
170
|
type: Component,
|
|
221
|
-
args: [{ selector: "pdm-dialog", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"open\" [ngClass]=\"containerClassName\">\n <!-- Backdrop -->\n <div class=\"absolute inset-0 bg-foreground/30 backdrop-blur-sm\" (click)=\"onBackdropClick()\"></div>\n
|
|
171
|
+
args: [{ selector: "pdm-dialog", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"open\" [ngClass]=\"containerClassName\">\n <!-- Backdrop -->\n <div class=\"absolute inset-0 bg-foreground/30 backdrop-blur-sm\" (click)=\"onBackdropClick()\"></div>\n\n <!-- Dialog Panel -->\n <section role=\"dialog\" aria-modal=\"true\" cdkTrapFocus [ngClass]=\"panelClassName\">\n <!-- Header -->\n <div *ngIf=\"showHeader\" [ngClass]=\"headerWrapperClassName\">\n <ng-container *ngIf=\"customHeader; else defaultHeader\">\n <ng-content select=\"[pdmHeader]\"></ng-content>\n </ng-container>\n <ng-template #defaultHeader>\n <div class=\"min-w-0 flex-1\">\n <h2 class=\"m-0 text-lg font-semibold leading-none tracking-tight text-foreground\">{{ title }}</h2>\n <p *ngIf=\"description\" class=\"m-0 mt-2 text-sm text-muted-foreground\">{{ description }}</p>\n </div>\n <button\n *ngIf=\"showCloseButton\"\n type=\"button\"\n class=\"inline-flex h-6 w-6 flex-shrink-0 appearance-none box-border items-center justify-center rounded-sm border-0 bg-transparent p-0 text-foreground opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none\"\n (click)=\"close()\"\n aria-label=\"Close dialog\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 6L18 18M18 6L6 18\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n </svg>\n </button>\n </ng-template>\n </div>\n\n <!-- Body -->\n <div [ngClass]=\"bodyWrapperClassName\">\n <ng-content></ng-content>\n </div>\n\n <!-- Footer -->\n <div *ngIf=\"showFooter\" [ngClass]=\"footerWrapperClassName\">\n <ng-container *ngIf=\"customFooter; else defaultFooter\">\n <ng-content select=\"[pdmFooter]\"></ng-content>\n </ng-container>\n <ng-template #defaultFooter>\n <ng-container *ngIf=\"variant === 'custom-close'; else defaultActions\">\n <button\n type=\"button\"\n class=\"inline-flex h-9 w-full appearance-none box-border items-center justify-center rounded-md border border-solid border-input bg-background px-4 py-2 text-sm font-medium text-foreground shadow-sm sm:w-auto\"\n (click)=\"onSecondaryAction()\"\n >\n {{ secondaryActionText }}\n </button>\n </ng-container>\n\n <ng-template #defaultActions>\n <button\n type=\"button\"\n class=\"inline-flex h-9 w-full appearance-none box-border items-center justify-center rounded-md border border-solid border-input bg-background px-4 py-2 text-sm font-medium text-foreground shadow-sm sm:w-auto\"\n (click)=\"onSecondaryAction()\"\n >\n {{ secondaryActionText }}\n </button>\n <button\n type=\"button\"\n class=\"inline-flex h-9 w-full appearance-none box-border items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground shadow-sm sm:w-auto\"\n (click)=\"onPrimaryAction()\"\n >\n {{ primaryActionText }}\n </button>\n </ng-template>\n </ng-template>\n </div>\n </section>\n</div>\n", styles: [":host{display:block}\n"] }]
|
|
222
172
|
}], propDecorators: { open: [{
|
|
223
173
|
type: Input
|
|
224
174
|
}], variant: [{
|
|
225
175
|
type: Input
|
|
226
176
|
}], size: [{
|
|
227
177
|
type: Input
|
|
178
|
+
}], maxWidth: [{
|
|
179
|
+
type: Input
|
|
228
180
|
}], title: [{
|
|
229
181
|
type: Input
|
|
230
182
|
}], description: [{
|
|
@@ -253,6 +205,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
253
205
|
type: Input
|
|
254
206
|
}], className: [{
|
|
255
207
|
type: Input
|
|
208
|
+
}], customHeader: [{
|
|
209
|
+
type: ContentChild,
|
|
210
|
+
args: [PdmDialogHeaderDirective]
|
|
211
|
+
}], customFooter: [{
|
|
212
|
+
type: ContentChild,
|
|
213
|
+
args: [PdmDialogFooterDirective]
|
|
256
214
|
}], openChange: [{
|
|
257
215
|
type: Output
|
|
258
216
|
}], primaryAction: [{
|
|
@@ -263,4 +221,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
263
221
|
type: HostListener,
|
|
264
222
|
args: ["document:keydown.escape"]
|
|
265
223
|
}] } });
|
|
266
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kaWFsb2cvZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9kaWFsb2cvZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7O0FBbUIvQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQWFILE1BQU0sT0FBTyxrQkFBa0I7SUFaL0I7UUFhVSxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2IsWUFBTyxHQUFxQixTQUFTLENBQUM7UUFFL0M7Ozs7Ozs7O1dBUUc7UUFDTSxTQUFJLEdBQWtCLFlBQVksQ0FBQztRQUVuQyxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDdkIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixvQkFBZSxHQUFHLElBQUksQ0FBQztRQUN2QixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIsc0JBQWlCLEdBQUcsY0FBYyxDQUFDO1FBQ25DLHdCQUFtQixHQUFHLFFBQVEsQ0FBQztRQUMvQixnQkFBVyxHQUF5QixPQUFPLENBQUM7UUFDNUMsb0JBQWUsR0FBRyxFQUFFLENBQUM7UUFDckIsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFDbkIsb0JBQWUsR0FBRyxFQUFFLENBQUM7UUFDckIsY0FBUyxHQUFHLEVBQUUsQ0FB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O2dCQUVJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUdQLEtBQUs7c0JBREosWUFBWTt1QkFBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRFdmVudEVtaXR0ZXIsXG5cdEhvc3RMaXN0ZW5lcixcblx0SW5wdXQsXG5cdE91dHB1dCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IHJlc3BvbnNpdmUgfSBmcm9tIFwicGRtLXVpLWtpdC9zcmMvdXRpbHNcIjtcbmltcG9ydCB7IFpfSU5ERVggfSBmcm9tIFwicGRtLXVpLWtpdC9zcmMvdXRpbHNcIjtcblxuZXhwb3J0IHR5cGUgUGRtRGlhbG9nVmFyaWFudCA9IFwiZGVmYXVsdFwiIHwgXCJjdXN0b20tY2xvc2VcIjtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgJ3Jlc3BvbnNpdmUnIG1vZGUgaW5zdGVhZC4gV2lsbCBiZSByZW1vdmVkIGluIHYwLjMuMFxuICovXG5leHBvcnQgdHlwZSBQZG1EaWFsb2dTaXplID1cblx0fCBcImRlc2t0b3BcIlxuXHR8IFwibW9iaWxlXCJcblx0fCBcIm1vYmlsZS1mdWxsc2NyZWVuXCJcblx0fCBcInNtXCJcblx0fCBcIm1kXCJcblx0fCBcImxnXCJcblx0fCBcInhsXCJcblx0fCBcInJlc3BvbnNpdmVcIjtcblxuZXhwb3J0IHR5cGUgUGRtRGlhbG9nRm9vdGVyQWxpZ24gPSBcInJpZ2h0XCIgfCBcImZ1bGwtd2lkdGhcIiB8IFwibGVmdFwiO1xuXG4vKipcbiAqIE1vZGFsL0RpYWxvZyBjb21wb25lbnQgY29uIHNvcG9ydGUgcmVzcG9uc2l2ZVxuICpcbiAqIE1FSk9SQURPIGVuIHYwLjIuMDpcbiAqIC0gTW9kbyAncmVzcG9uc2l2ZScgKGRlZmF1bHQpOiBmdWxsc2NyZWVuIGVuIG1vYmlsZSwgbW9kYWwgZW4gZGVza3RvcFxuICogLSBUYW1hw7FvcyBwcmVkZWZpbmlkb3M6IHNtLCBtZCwgbGcsIHhsXG4gKiAtIE1lam9yIG1hbmVqbyBkZSBzY3JvbGwgZW4gbW9iaWxlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFJlc3BvbnNpdmUgKHJlY29tZW5kYWRvKVxuICogPHBkbS1kaWFsb2cgW29wZW5dPVwiaXNPcGVuXCIgc2l6ZT1cInJlc3BvbnNpdmVcIj5cbiAqICAgPHA+Q29udGVudDwvcD5cbiAqIDwvcGRtLWRpYWxvZz5cbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gVGFtYcOxbyBmaWpvXG4gKiA8cGRtLWRpYWxvZyBbb3Blbl09XCJpc09wZW5cIiBzaXplPVwibGdcIj5cbiAqICAgPHA+Q29udGVudDwvcD5cbiAqIDwvcGRtLWRpYWxvZz5cbiAqL1xuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiBcInBkbS1kaWFsb2dcIixcblx0dGVtcGxhdGVVcmw6IFwiLi9kaWFsb2cuY29tcG9uZW50Lmh0bWxcIixcblx0c3R5bGVzOiBbXG5cdFx0YFxuICAgIDpob3N0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgYCxcblx0XSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFBkbURpYWxvZ0NvbXBvbmVudCB7XG5cdEBJbnB1dCgpIG9wZW4gPSBmYWxzZTtcblx0QElucHV0KCkgdmFyaWFudDogUGRtRGlhbG9nVmFyaWFudCA9IFwiZGVmYXVsdFwiO1xuXG5cdC8qKlxuXHQgKiBUYW1hw7FvIGRlbCBkaWFsb2dcblx0ICogLSByZXNwb25zaXZlOiBmdWxsc2NyZWVuIG1vYmlsZSwgbW9kYWwgZGVza3RvcCAocmVjb21lbmRhZG8pXG5cdCAqIC0gc206IDQwMHB4IG1heFxuXHQgKiAtIG1kOiA1MDBweCBtYXhcblx0ICogLSBsZzogNjQwcHggbWF4IChkZWZhdWx0KVxuXHQgKiAtIHhsOiA4MDBweCBtYXhcblx0ICogLSBkZXNrdG9wL21vYmlsZS9tb2JpbGUtZnVsbHNjcmVlbjogbGVnYWN5LCBkZXByZWNhZG9cblx0ICovXG5cdEBJbnB1dCgpIHNpemU6IFBkbURpYWxvZ1NpemUgPSBcInJlc3BvbnNpdmVcIjtcblxuXHRASW5wdXQoKSB0aXRsZSA9IFwiXCI7XG5cdEBJbnB1dCgpIGRlc2NyaXB0aW9uID0gXCJcIjtcblx0QElucHV0KCkgY2xvc2VPbkJhY2tkcm9wID0gdHJ1ZTtcblx0QElucHV0KCkgY2xvc2VPbkVzYyA9IHRydWU7XG5cdEBJbnB1dCgpIHNob3dDbG9zZUJ1dHRvbiA9IHRydWU7XG5cdEBJbnB1dCgpIHNob3dIZWFkZXIgPSB0cnVlO1xuXHRASW5wdXQoKSBzaG93Rm9vdGVyID0gdHJ1ZTtcblx0QElucHV0KCkgcHJpbWFyeUFjdGlvblRleHQgPSBcIlNhdmUgY2hhbmdlc1wiO1xuXHRASW5wdXQoKSBzZWNvbmRhcnlBY3Rpb25UZXh0ID0gXCJDYW5jZWxcIjtcblx0QElucHV0KCkgYWxpZ25Gb290ZXI6IFBkbURpYWxvZ0Zvb3RlckFsaWduID0gXCJyaWdodFwiO1xuXHRASW5wdXQoKSBoZWFkZXJDbGFzc05hbWUgPSBcIlwiO1xuXHRASW5wdXQoKSBib2R5Q2xhc3NOYW1lID0gXCJcIjtcblx0QElucHV0KCkgZm9vdGVyQ2xhc3NOYW1lID0gXCJcIjtcblx0QElucHV0KCkgY2xhc3NOYW1lID0gXCJcIjtcblxuXHRAT3V0cHV0KCkgb3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblx0QE91dHB1dCgpIHByaW1hcnlBY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cdEBPdXRwdXQoKSBzZWNvbmRhcnlBY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cblx0QEhvc3RMaXN0ZW5lcihcImRvY3VtZW50OmtleWRvd24uZXNjYXBlXCIpXG5cdG9uRXNjKCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLm9wZW4gJiYgdGhpcy5jbG9zZU9uRXNjKSB7XG5cdFx0XHR0aGlzLmNsb3NlKCk7XG5cdFx0fVxuXHR9XG5cblx0Y2xvc2UoKTogdm9pZCB7XG5cdFx0dGhpcy5vcGVuQ2hhbmdlLmVtaXQoZmFsc2UpO1xuXHR9XG5cblx0b25QcmltYXJ5QWN0aW9uKCk6IHZvaWQge1xuXHRcdHRoaXMucHJpbWFyeUFjdGlvbi5lbWl0KCk7XG5cdH1cblxuXHRvblNlY29uZGFyeUFjdGlvbigpOiB2b2lkIHtcblx0XHR0aGlzLnNlY29uZGFyeUFjdGlvbi5lbWl0KCk7XG5cdH1cblxuXHRvbkJhY2tkcm9wQ2xpY2soKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuY2xvc2VPbkJhY2tkcm9wKSB7XG5cdFx0XHR0aGlzLmNsb3NlKCk7XG5cdFx0fVxuXHR9XG5cblx0Z2V0IHBhbmVsQ2xhc3NOYW1lKCk6IHN0cmluZyB7XG5cdFx0Ly8gTGVnYWN5IHNpemVzIChiYWNrd2FyZCBjb21wYXRpYmlsaXR5KVxuXHRcdGlmICh0aGlzLnNpemUgPT09IFwiZGVza3RvcFwiKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5idWlsZFBhbmVsQ2xhc3NlcyhbXG5cdFx0XHRcdFwibWF4LXctWzY0MHB4XVwiLFxuXHRcdFx0XHRcIm1heC1oLVtjYWxjKDEwMHZoLTJyZW0pXVwiLFxuXHRcdFx0XHRcInJvdW5kZWQtWzEwcHhdXCIsXG5cdFx0XHRdKTtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5zaXplID09PSBcIm1vYmlsZVwiKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5idWlsZFBhbmVsQ2xhc3NlcyhbXG5cdFx0XHRcdFwibWF4LXctWzMyMHB4XVwiLFxuXHRcdFx0XHRcIm1pbi1oLVsyNDBweF1cIixcblx0XHRcdFx0XCJyb3VuZGVkLVsxMHB4XVwiLFxuXHRcdFx0XSk7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuc2l6ZSA9PT0gXCJtb2JpbGUtZnVsbHNjcmVlblwiKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5idWlsZFBhbmVsQ2xhc3NlcyhbXG5cdFx0XHRcdFwibWF4LXctWzMyMHB4XVwiLFxuXHRcdFx0XHRcImgtW21pbigxMDBkdmgsNjQwcHgpXVwiLFxuXHRcdFx0XHRcInJvdW5kZWQtbm9uZVwiLFxuXHRcdFx0XHRcInNtOnJvdW5kZWQtWzEwcHhdXCIsXG5cdFx0XHRdKTtcblx0XHR9XG5cblx0XHQvLyBOZXcgcmVzcG9uc2l2ZSBtb2RlIChyZWNvbWVuZGFkbylcblx0XHRpZiAodGhpcy5zaXplID09PSBcInJlc3BvbnNpdmVcIikge1xuXHRcdFx0cmV0dXJuIHRoaXMuYnVpbGRQYW5lbENsYXNzZXMoW1xuXHRcdFx0XHQvLyBNb2JpbGU6IGZ1bGxzY3JlZW4gY29uIGJvcmRlcyByZWRvbmRlYWRvcyBzb2xvIGFycmliYVxuXHRcdFx0XHRcInctZnVsbFwiLFxuXHRcdFx0XHRcImgtZnVsbFwiLFxuXHRcdFx0XHRcIm1heC1oLVsxMDBkdmhdXCIsXG5cdFx0XHRcdFwicm91bmRlZC10LVsxMHB4XVwiLFxuXHRcdFx0XHRcInNtOnJvdW5kZWQtWzEwcHhdXCIsXG5cdFx0XHRcdC8vIERlc2t0b3A6IG1vZGFsIGNlbnRyYWRvXG5cdFx0XHRcdFwic206dy1hdXRvXCIsXG5cdFx0XHRcdFwic206aC1hdXRvXCIsXG5cdFx0XHRcdFwic206bWF4LXctWzY0MHB4XVwiLFxuXHRcdFx0XHRcInNtOm1heC1oLVtjYWxjKDEwMHZoLTRyZW0pXVwiLFxuXHRcdFx0XSk7XG5cdFx0fVxuXG5cdFx0Ly8gTmV3IHNpemUgb3B0aW9uc1xuXHRcdGNvbnN0IHNpemVNYXAgPSB7XG5cdFx0XHRzbTogXCJzbTptYXgtdy1bNDAwcHhdXCIsXG5cdFx0XHRtZDogXCJzbTptYXgtdy1bNTAwcHhdXCIsXG5cdFx0XHRsZzogXCJzbTptYXgtdy1bNjQwcHhdXCIsXG5cdFx0XHR4bDogXCJzbTptYXgtdy1bODAwcHhdXCIsXG5cdFx0fTtcblxuXHRcdGNvbnN0IG1heFdpZHRoID0gc2l6ZU1hcFt0aGlzLnNpemUgYXMga2V5b2YgdHlwZW9mIHNpemVNYXBdIHx8IHNpemVNYXAubGc7XG5cblx0XHRyZXR1cm4gdGhpcy5idWlsZFBhbmVsQ2xhc3NlcyhbXG5cdFx0XHQvLyBNb2JpbGU6IGZ1bGxzY3JlZW5cblx0XHRcdFwidy1mdWxsXCIsXG5cdFx0XHRcImgtZnVsbFwiLFxuXHRcdFx0XCJtYXgtaC1bMTAwZHZoXVwiLFxuXHRcdFx0XCJyb3VuZGVkLXQtWzEwcHhdXCIsXG5cdFx0XHQvLyBEZXNrdG9wOiBtb2RhbFxuXHRcdFx0XCJzbTpyb3VuZGVkLVsxMHB4XVwiLFxuXHRcdFx0XCJzbTp3LWF1dG9cIixcblx0XHRcdFwic206aC1hdXRvXCIsXG5cdFx0XHRtYXhXaWR0aCxcblx0XHRcdFwic206bWF4LWgtW2NhbGMoMTAwdmgtNHJlbSldXCIsXG5cdFx0XSk7XG5cdH1cblxuXHRwcml2YXRlIGJ1aWxkUGFuZWxDbGFzc2VzKHNpemVDbGFzc2VzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG5cdFx0Y29uc3QgYmFzZSA9IFtcblx0XHRcdFwicmVsYXRpdmVcIixcblx0XHRcdFpfSU5ERVgubW9kYWwsIC8vIHotNTAgLSBkZWJlIGVzdGFyIHNvYnJlIGJhY2tkcm9wICh6LTQwKVxuXHRcdFx0XCJmbGV4XCIsXG5cdFx0XHRcImZsZXgtY29sXCIsXG5cdFx0XHRcImJvcmRlciBib3JkZXItc29saWRcIixcblx0XHRcdFwiYm9yZGVyLWJvcmRlclwiLFxuXHRcdFx0XCJiZy1iYWNrZ3JvdW5kXCIsXG5cdFx0XHRcInRleHQtZm9yZWdyb3VuZFwiLFxuXHRcdFx0XCJzaGFkb3ctbGdcIixcblx0XHRcdFwib3ZlcmZsb3ctaGlkZGVuXCIsXG5cdFx0XHQuLi5zaXplQ2xhc3Nlcyxcblx0XHRcdHRoaXMuY2xhc3NOYW1lLFxuXHRcdF07XG5cblx0XHRyZXR1cm4gYmFzZS5maWx0ZXIoQm9vbGVhbikuam9pbihcIiBcIik7XG5cdH1cblxuXHRnZXQgYm9keVdyYXBwZXJDbGFzc05hbWUoKTogc3RyaW5nIHtcblx0XHQvLyBtaW4taC0wIGlzIENSSVRJQ0FMIGZvciBmbGV4IGNoaWxkIHRvIHNocmluayBhbmQgYWxsb3cgaW50ZXJuYWwgc2Nyb2xsXG5cdFx0Y29uc3QgYmFzZSA9IFtcblx0XHRcdFwiZmxleC0xXCIsXG5cdFx0XHRcIm1pbi1oLTBcIixcblx0XHRcdFwib3ZlcmZsb3cteS1hdXRvXCIsXG5cdFx0XHRcInB4LTRcIixcblx0XHRcdFwicHktNlwiLFxuXHRcdFx0XCJzbTpweC02XCIsXG5cdFx0XHR0aGlzLmJvZHlDbGFzc05hbWUsXG5cdFx0XTtcblxuXHRcdHJldHVybiBiYXNlLmZpbHRlcihCb29sZWFuKS5qb2luKFwiIFwiKTtcblx0fVxuXG5cdGdldCBoZWFkZXJXcmFwcGVyQ2xhc3NOYW1lKCk6IHN0cmluZyB7XG5cdFx0Y29uc3QgYmFzZSA9IFtcblx0XHRcdFwiZmxleFwiLFxuXHRcdFx0XCJpdGVtcy1zdGFydFwiLFxuXHRcdFx0XCJqdXN0aWZ5LWJldHdlZW5cIixcblx0XHRcdFwiZ2FwLTNcIixcblx0XHRcdFwicC00XCIsXG5cdFx0XHRcInNtOnAtNlwiLFxuXHRcdFx0XCJib3JkZXItYlwiLFxuXHRcdFx0XCJib3JkZXItYm9yZGVyXCIsXG5cdFx0XHR0aGlzLmhlYWRlckNsYXNzTmFtZSxcblx0XHRdO1xuXG5cdFx0cmV0dXJuIGJhc2UuZmlsdGVyKEJvb2xlYW4pLmpvaW4oXCIgXCIpO1xuXHR9XG5cblx0Z2V0IGZvb3RlcldyYXBwZXJDbGFzc05hbWUoKTogc3RyaW5nIHtcblx0XHRjb25zdCBlZmZlY3RpdmVBbGlnbiA9XG5cdFx0XHR0aGlzLmFsaWduRm9vdGVyID09PSBcInJpZ2h0XCIgJiYgdGhpcy52YXJpYW50ID09PSBcImN1c3RvbS1jbG9zZVwiXG5cdFx0XHRcdD8gXCJsZWZ0XCJcblx0XHRcdFx0OiB0aGlzLmFsaWduRm9vdGVyO1xuXG5cdFx0Y29uc3QgYmFzZSA9IFtcblx0XHRcdFwicC00XCIsXG5cdFx0XHRcInNtOnAtNlwiLFxuXHRcdFx0XCJib3JkZXItdFwiLFxuXHRcdFx0XCJib3JkZXItYm9yZGVyXCIsXG5cdFx0XHQvLyBNb2JpbGU6IHNpZW1wcmUgZnVsbC13aWR0aFxuXHRcdFx0XCJmbGV4XCIsXG5cdFx0XHRcImZsZXgtY29sXCIsXG5cdFx0XHRcImdhcC0yXCIsXG5cdFx0XHQvLyBEZXNrdG9wOiBzZWfDum4gYWxpZ25Gb290ZXJcblx0XHRcdGVmZmVjdGl2ZUFsaWduID09PSBcImZ1bGwtd2lkdGhcIlxuXHRcdFx0XHQ/IFwic206ZmxleC1jb2xcIlxuXHRcdFx0XHQ6IFwic206ZmxleC1yb3cgc206aXRlbXMtY2VudGVyXCIsXG5cdFx0XHRlZmZlY3RpdmVBbGlnbiA9PT0gXCJsZWZ0XCIgPyBcInNtOmp1c3RpZnktc3RhcnRcIiA6IFwiXCIsXG5cdFx0XHRlZmZlY3RpdmVBbGlnbiA9PT0gXCJyaWdodFwiID8gXCJzbTpqdXN0aWZ5LWVuZFwiIDogXCJcIixcblx0XHRcdHRoaXMuZm9vdGVyQ2xhc3NOYW1lLFxuXHRcdF07XG5cblx0XHRyZXR1cm4gYmFzZS5maWx0ZXIoQm9vbGVhbikuam9pbihcIiBcIik7XG5cdH1cblxuXHRnZXQgY29udGFpbmVyQ2xhc3NOYW1lKCk6IHN0cmluZyB7XG5cdFx0Ly8gQ29udGFpbmVyIGNvbiBiYWNrZHJvcCB6LTQwXG5cdFx0Ly8gTW9iaWxlOiBmdWxsc2NyZWVuIGRlc2RlIGVsIGJvdHRvbVxuXHRcdC8vIERlc2t0b3A6IGNlbnRyYWRvXG5cdFx0cmV0dXJuIHJlc3BvbnNpdmUoe1xuXHRcdFx0ZGVmYXVsdDogYGZpeGVkIGluc2V0LXgtMCBib3R0b20tMCAke1pfSU5ERVgubW9kYWxCYWNrZHJvcH0gZmxleCBpdGVtcy1lbmQganVzdGlmeS1jZW50ZXJgLFxuXHRcdFx0c206IGBmaXhlZCBpbnNldC0wICR7Wl9JTkRFWC5tb2RhbEJhY2tkcm9wfSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBwLTRgLFxuXHRcdH0pO1xuXHR9XG59XG4iLCI8ZGl2ICpuZ0lmPVwib3BlblwiIFtuZ0NsYXNzXT1cImNvbnRhaW5lckNsYXNzTmFtZVwiPlxuICA8IS0tIEJhY2tkcm9wIC0tPlxuICA8ZGl2IGNsYXNzPVwiYWJzb2x1dGUgaW5zZXQtMCBiZy1mb3JlZ3JvdW5kLzMwIGJhY2tkcm9wLWJsdXItc21cIiAoY2xpY2spPVwib25CYWNrZHJvcENsaWNrKClcIj48L2Rpdj5cbiAgXG4gIDwhLS0gRGlhbG9nIFBhbmVsIC0tPlxuICA8c2VjdGlvbiByb2xlPVwiZGlhbG9nXCIgYXJpYS1tb2RhbD1cInRydWVcIiBjZGtUcmFwRm9jdXMgW25nQ2xhc3NdPVwicGFuZWxDbGFzc05hbWVcIj5cbiAgICA8IS0tIEhlYWRlciAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0hlYWRlclwiIFtuZ0NsYXNzXT1cImhlYWRlcldyYXBwZXJDbGFzc05hbWVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaW4tdy0wIGZsZXgtMVwiPlxuICAgICAgICA8aDIgY2xhc3M9XCJtLTAgdGV4dC1sZyBmb250LXNlbWlib2xkIGxlYWRpbmctbm9uZSB0cmFja2luZy10aWdodCB0ZXh0LWZvcmVncm91bmRcIj57eyB0aXRsZSB9fTwvaDI+XG4gICAgICAgIDxwICpuZ0lmPVwiZGVzY3JpcHRpb25cIiBjbGFzcz1cIm0tMCBtdC0yIHRleHQtc20gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+e3sgZGVzY3JpcHRpb24gfX08L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJzaG93Q2xvc2VCdXR0b25cIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJpbmxpbmUtZmxleCBoLTYgdy02IGZsZXgtc2hyaW5rLTAgYXBwZWFyYW5jZS1ub25lIGJveC1ib3JkZXIgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtc20gYm9yZGVyLTAgYmctdHJhbnNwYXJlbnQgcC0wIHRleHQtZm9yZWdyb3VuZCBvcGFjaXR5LTcwIHJpbmctb2Zmc2V0LWJhY2tncm91bmQgdHJhbnNpdGlvbi1vcGFjaXR5IGhvdmVyOm9wYWNpdHktMTAwIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTIgZm9jdXM6cmluZy1yaW5nIGZvY3VzOnJpbmctb2Zmc2V0LTIgZGlzYWJsZWQ6cG9pbnRlci1ldmVudHMtbm9uZVwiXG4gICAgICAgIChjbGljayk9XCJjbG9zZSgpXCJcbiAgICAgICAgYXJpYS1sYWJlbD1cIkNsb3NlIGRpYWxvZ1wiXG4gICAgICA+XG4gICAgICAgIDxzdmcgdmlld0JveD1cIjAgMCAyNCAyNFwiIGNsYXNzPVwiaC00IHctNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgIDxwYXRoIGQ9XCJNNiA2TDE4IDE4TTE4IDZMNiAxOFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIj48L3BhdGg+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIEJvZHkgLS0+XG4gICAgPGRpdiBbbmdDbGFzc109XCJib2R5V3JhcHBlckNsYXNzTmFtZVwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBGb290ZXIgLS0+XG4gICAgPGRpdiAqbmdJZj1cInNob3dGb290ZXJcIiBbbmdDbGFzc109XCJmb290ZXJXcmFwcGVyQ2xhc3NOYW1lXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidmFyaWFudCA9PT0gJ2N1c3RvbS1jbG9zZSc7IGVsc2UgZGVmYXVsdEFjdGlvbnNcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwiaW5saW5lLWZsZXggaC05IHctZnVsbCBhcHBlYXJhbmNlLW5vbmUgYm94LWJvcmRlciBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLXNvbGlkIGJvcmRlci1pbnB1dCBiZy1iYWNrZ3JvdW5kIHB4LTQgcHktMiB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZm9yZWdyb3VuZCBzaGFkb3ctc20gc206dy1hdXRvXCJcbiAgICAgICAgICAoY2xpY2spPVwib25TZWNvbmRhcnlBY3Rpb24oKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBzZWNvbmRhcnlBY3Rpb25UZXh0IH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEFjdGlvbnM+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cImlubGluZS1mbGV4IGgtOSB3LWZ1bGwgYXBwZWFyYW5jZS1ub25lIGJveC1ib3JkZXIgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1zb2xpZCBib3JkZXItaW5wdXQgYmctYmFja2dyb3VuZCBweC00IHB5LTIgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWZvcmVncm91bmQgc2hhZG93LXNtIHNtOnctYXV0b1wiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uU2Vjb25kYXJ5QWN0aW9uKClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgc2Vjb25kYXJ5QWN0aW9uVGV4dCB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwiaW5saW5lLWZsZXggaC05IHctZnVsbCBhcHBlYXJhbmNlLW5vbmUgYm94LWJvcmRlciBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1tZCBiZy1wcmltYXJ5IHB4LTQgcHktMiB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtcHJpbWFyeS1mb3JlZ3JvdW5kIHNoYWRvdy1zbSBzbTp3LWF1dG9cIlxuICAgICAgICAgIChjbGljayk9XCJvblByaW1hcnlBY3Rpb24oKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBwcmltYXJ5QWN0aW9uVGV4dCB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvc2VjdGlvbj5cbjwvZGl2PlxuIl19
|
|
224
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kaWFsb2cvZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9kaWFsb2cvZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7O0FBb0IvRCxNQUFNLE9BQU8sd0JBQXdCOztxSEFBeEIsd0JBQXdCO3lHQUF4Qix3QkFBd0I7MkZBQXhCLHdCQUF3QjtrQkFEcEMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUU7O0FBSXRDLE1BQU0sT0FBTyx3QkFBd0I7O3FIQUF4Qix3QkFBd0I7eUdBQXhCLHdCQUF3QjsyRkFBeEIsd0JBQXdCO2tCQURwQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRTs7QUFHdEM7O0dBRUc7QUFhSCxNQUFNLE9BQU8sa0JBQWtCO0lBWi9CO1FBYVUsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUNiLFlBQU8sR0FBcUIsU0FBUyxDQUFDO1FBRS9DOztXQUVHO1FBQ00sU0FBSSxHQUFrQixZQUFZLENBQUM7UUFFNUM7OztXQUdHO1FBQ00sYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUVkLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixvQkFBZSxHQUFHLElBQUksQ0FBQztRQUN2QixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLGVBQVUs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bmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0Q29udGVudENoaWxkLFxuXHREaXJlY3RpdmUsXG5cdEV2ZW50RW1pdHRlcixcblx0SG9zdExpc3RlbmVyLFxuXHRJbnB1dCxcblx0T3V0cHV0LFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgY24sIHJlc3BvbnNpdmUsIFpfSU5ERVggfSBmcm9tIFwicGRtLXVpLWtpdC9zcmMvdXRpbHNcIjtcblxuZXhwb3J0IHR5cGUgUGRtRGlhbG9nVmFyaWFudCA9IFwiZGVmYXVsdFwiIHwgXCJjdXN0b20tY2xvc2VcIjtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgJ3Jlc3BvbnNpdmUnIG1vZGUgaW5zdGVhZC4gV2lsbCBiZSByZW1vdmVkIGluIHYwLjMuMFxuICovXG5leHBvcnQgdHlwZSBQZG1EaWFsb2dTaXplID1cblx0fCBcImRlc2t0b3BcIlxuXHR8IFwibW9iaWxlXCJcblx0fCBcIm1vYmlsZS1mdWxsc2NyZWVuXCJcblx0fCBcInNtXCJcblx0fCBcIm1kXCJcblx0fCBcImxnXCJcblx0fCBcInhsXCJcblx0fCBcInJlc3BvbnNpdmVcIjtcblxuZXhwb3J0IHR5cGUgUGRtRGlhbG9nRm9vdGVyQWxpZ24gPSBcInJpZ2h0XCIgfCBcImZ1bGwtd2lkdGhcIiB8IFwibGVmdFwiO1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6IFwiW3BkbUhlYWRlcl1cIiB9KVxuZXhwb3J0IGNsYXNzIFBkbURpYWxvZ0hlYWRlckRpcmVjdGl2ZSB7fVxuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6IFwiW3BkbUZvb3Rlcl1cIiB9KVxuZXhwb3J0IGNsYXNzIFBkbURpYWxvZ0Zvb3RlckRpcmVjdGl2ZSB7fVxuXG4vKipcbiAqIFJlc3BvbnNpdmUgbW9kYWwvZGlhbG9nIGNvbXBvbmVudC5cbiAqL1xuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiBcInBkbS1kaWFsb2dcIixcblx0dGVtcGxhdGVVcmw6IFwiLi9kaWFsb2cuY29tcG9uZW50Lmh0bWxcIixcblx0c3R5bGVzOiBbXG5cdFx0YFxuICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIGAsXG5cdF0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQZG1EaWFsb2dDb21wb25lbnQge1xuXHRASW5wdXQoKSBvcGVuID0gZmFsc2U7XG5cdEBJbnB1dCgpIHZhcmlhbnQ6IFBkbURpYWxvZ1ZhcmlhbnQgPSBcImRlZmF1bHRcIjtcblxuXHQvKipcblx0ICogRGlhbG9nIHNpemUuIFJlc3BvbnNpdmUgbW9kZSBpcyBmdWxsc2NyZWVuIG9uIG1vYmlsZSBhbmQgYSBtb2RhbCBvbiBkZXNrdG9wLlxuXHQgKi9cblx0QElucHV0KCkgc2l6ZTogUGRtRGlhbG9nU2l6ZSA9IFwicmVzcG9uc2l2ZVwiO1xuXG5cdC8qKlxuXHQgKiBDdXN0b20gZGVza3RvcCBtYXhpbXVtIHdpZHRoLCBzdWNoIGFzIGA4MDBweGAgb3IgYG1pbig5MHZ3LCA4MDBweClgLlxuXHQgKiBPdmVycmlkZXMgYHNpemVgIGF0IHRoZSBgc21gIGJyZWFrcG9pbnQ7IHJlc3BvbnNpdmUgbW9iaWxlIG1vZGUgcmVtYWlucyBmdWxsc2NyZWVuLlxuXHQgKi9cblx0QElucHV0KCkgbWF4V2lkdGggPSBcIlwiO1xuXG5cdEBJbnB1dCgpIHRpdGxlID0gXCJcIjtcblx0QElucHV0KCkgZGVzY3JpcHRpb24gPSBcIlwiO1xuXHRASW5wdXQoKSBjbG9zZU9uQmFja2Ryb3AgPSB0cnVlO1xuXHRASW5wdXQoKSBjbG9zZU9uRXNjID0gdHJ1ZTtcblx0QElucHV0KCkgc2hvd0Nsb3NlQnV0dG9uID0gdHJ1ZTtcblx0QElucHV0KCkgc2hvd0hlYWRlciA9IHRydWU7XG5cdEBJbnB1dCgpIHNob3dGb290ZXIgPSB0cnVlO1xuXHRASW5wdXQoKSBwcmltYXJ5QWN0aW9uVGV4dCA9IFwiU2F2ZSBjaGFuZ2VzXCI7XG5cdEBJbnB1dCgpIHNlY29uZGFyeUFjdGlvblRleHQgPSBcIkNhbmNlbFwiO1xuXHRASW5wdXQoKSBhbGlnbkZvb3RlcjogUGRtRGlhbG9nRm9vdGVyQWxpZ24gPSBcInJpZ2h0XCI7XG5cdEBJbnB1dCgpIGhlYWRlckNsYXNzTmFtZSA9IFwiXCI7XG5cdEBJbnB1dCgpIGJvZHlDbGFzc05hbWUgPSBcIlwiO1xuXHRASW5wdXQoKSBmb290ZXJDbGFzc05hbWUgPSBcIlwiO1xuXHRASW5wdXQoKSBjbGFzc05hbWUgPSBcIlwiO1xuXG5cdEBDb250ZW50Q2hpbGQoUGRtRGlhbG9nSGVhZGVyRGlyZWN0aXZlKSBjdXN0b21IZWFkZXI/OiBQZG1EaWFsb2dIZWFkZXJEaXJlY3RpdmU7XG5cdEBDb250ZW50Q2hpbGQoUGRtRGlhbG9nRm9vdGVyRGlyZWN0aXZlKSBjdXN0b21Gb290ZXI/OiBQZG1EaWFsb2dGb290ZXJEaXJlY3RpdmU7XG5cblx0QE91dHB1dCgpIG9wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cdEBPdXRwdXQoKSBwcmltYXJ5QWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXHRAT3V0cHV0KCkgc2Vjb25kYXJ5QWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG5cdEBIb3N0TGlzdGVuZXIoXCJkb2N1bWVudDprZXlkb3duLmVzY2FwZVwiKVxuXHRvbkVzYygpOiB2b2lkIHtcblx0XHRpZiAodGhpcy5vcGVuICYmIHRoaXMuY2xvc2VPbkVzYykge1xuXHRcdFx0dGhpcy5jbG9zZSgpO1xuXHRcdH1cblx0fVxuXG5cdGNsb3NlKCk6IHZvaWQge1xuXHRcdHRoaXMub3BlbkNoYW5nZS5lbWl0KGZhbHNlKTtcblx0fVxuXG5cdG9uUHJpbWFyeUFjdGlvbigpOiB2b2lkIHtcblx0XHR0aGlzLnByaW1hcnlBY3Rpb24uZW1pdCgpO1xuXHR9XG5cblx0b25TZWNvbmRhcnlBY3Rpb24oKTogdm9pZCB7XG5cdFx0dGhpcy5zZWNvbmRhcnlBY3Rpb24uZW1pdCgpO1xuXHR9XG5cblx0b25CYWNrZHJvcENsaWNrKCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLmNsb3NlT25CYWNrZHJvcCkge1xuXHRcdFx0dGhpcy5jbG9zZSgpO1xuXHRcdH1cblx0fVxuXG5cdGdldCBwYW5lbENsYXNzTmFtZSgpOiBzdHJpbmcge1xuXHRcdGlmICh0aGlzLnNpemUgPT09IFwiZGVza3RvcFwiKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5idWlsZFBhbmVsQ2xhc3NlcyhbXG5cdFx0XHRcdFwibWF4LXctWzY0MHB4XVwiLFxuXHRcdFx0XHRcIm1heC1oLVtjYWxjKDEwMHZoLTJyZW0pXVwiLFxuXHRcdFx0XHRcInJvdW5kZWQtWzEwcHhdXCIsXG5cdFx0XHRdKTtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5zaXplID09PSBcIm1vYmlsZVwiKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5idWlsZFBhbmVsQ2xhc3NlcyhbXG5cdFx0XHRcdFwibWF4LXctWzMyMHB4XVwiLFxuXHRcdFx0XHRcIm1pbi1oLVsyNDBweF1cIixcblx0XHRcdFx0XCJyb3VuZGVkLVsxMHB4XVwiLFxuXHRcdFx0XSk7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuc2l6ZSA9PT0gXCJtb2JpbGUtZnVsbHNjcmVlblwiKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5idWlsZFBhbmVsQ2xhc3NlcyhbXG5cdFx0XHRcdFwibWF4LXctWzMyMHB4XVwiLFxuXHRcdFx0XHRcImgtW21pbigxMDBkdmgsNjQwcHgpXVwiLFxuXHRcdFx0XHRcInJvdW5kZWQtbm9uZVwiLFxuXHRcdFx0XHRcInNtOnJvdW5kZWQtWzEwcHhdXCIsXG5cdFx0XHRdKTtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5zaXplID09PSBcInJlc3BvbnNpdmVcIikge1xuXHRcdFx0cmV0dXJuIHRoaXMuYnVpbGRQYW5lbENsYXNzZXMoW1xuXHRcdFx0XHRcInctZnVsbFwiLFxuXHRcdFx0XHRcImgtZnVsbFwiLFxuXHRcdFx0XHRcIm1heC1oLVsxMDBkdmhdXCIsXG5cdFx0XHRcdFwicm91bmRlZC10LVsxMHB4XVwiLFxuXHRcdFx0XHRcInNtOnJvdW5kZWQtWzEwcHhdXCIsXG5cdFx0XHRcdFwic206dy1hdXRvXCIsXG5cdFx0XHRcdFwic206aC1hdXRvXCIsXG5cdFx0XHRcdFwic206bWF4LXctWzY0MHB4XVwiLFxuXHRcdFx0XHRcInNtOm1heC1oLVtjYWxjKDEwMHZoLTRyZW0pXVwiLFxuXHRcdFx0XSk7XG5cdFx0fVxuXG5cdFx0Y29uc3Qgc2l6ZU1hcCA9IHtcblx0XHRcdHNtOiBcInNtOm1heC13LVs0MDBweF1cIixcblx0XHRcdG1kOiBcInNtOm1heC13LVs1MDBweF1cIixcblx0XHRcdGxnOiBcInNtOm1heC13LVs2NDBweF1cIixcblx0XHRcdHhsOiBcInNtOm1heC13LVs4MDBweF1cIixcblx0XHR9O1xuXHRcdGNvbnN0IG1heFdpZHRoID0gc2l6ZU1hcFt0aGlzLnNpemUgYXMga2V5b2YgdHlwZW9mIHNpemVNYXBdIHx8IHNpemVNYXAubGc7XG5cblx0XHRyZXR1cm4gdGhpcy5idWlsZFBhbmVsQ2xhc3NlcyhbXG5cdFx0XHRcInctZnVsbFwiLFxuXHRcdFx0XCJoLWZ1bGxcIixcblx0XHRcdFwibWF4LWgtWzEwMGR2aF1cIixcblx0XHRcdFwicm91bmRlZC10LVsxMHB4XVwiLFxuXHRcdFx0XCJzbTpyb3VuZGVkLVsxMHB4XVwiLFxuXHRcdFx0XCJzbTp3LWF1dG9cIixcblx0XHRcdFwic206aC1hdXRvXCIsXG5cdFx0XHRtYXhXaWR0aCxcblx0XHRcdFwic206bWF4LWgtW2NhbGMoMTAwdmgtNHJlbSldXCIsXG5cdFx0XSk7XG5cdH1cblxuXHRwcml2YXRlIGJ1aWxkUGFuZWxDbGFzc2VzKHNpemVDbGFzc2VzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG5cdFx0Y29uc3QgYmFzZSA9IFtcblx0XHRcdFwicmVsYXRpdmVcIixcblx0XHRcdFpfSU5ERVgubW9kYWwsXG5cdFx0XHRcImZsZXhcIixcblx0XHRcdFwiZmxleC1jb2xcIixcblx0XHRcdFwiYm9yZGVyIGJvcmRlci1zb2xpZFwiLFxuXHRcdFx0XCJib3JkZXItYm9yZGVyXCIsXG5cdFx0XHRcImJnLWJhY2tncm91bmRcIixcblx0XHRcdFwidGV4dC1mb3JlZ3JvdW5kXCIsXG5cdFx0XHRcInNoYWRvdy1sZ1wiLFxuXHRcdFx0XCJvdmVyZmxvdy1oaWRkZW5cIixcblx0XHRdO1xuXHRcdGNvbnN0IG1heFdpZHRoQ2xhc3MgPSB0aGlzLm1heFdpZHRoID8gYHNtOm1heC13LVske3RoaXMubWF4V2lkdGh9XWAgOiBcIlwiO1xuXG5cdFx0cmV0dXJuIGNuKC4uLmJhc2UsIC4uLnNpemVDbGFzc2VzLCBtYXhXaWR0aENsYXNzLCB0aGlzLmNsYXNzTmFtZSk7XG5cdH1cblxuXHRnZXQgYm9keVdyYXBwZXJDbGFzc05hbWUoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gY24oXG5cdFx0XHRcImZsZXgtMSBtaW4taC0wIG92ZXJmbG93LXktYXV0byBweC00IHB5LTYgc206cHgtNlwiLFxuXHRcdFx0dGhpcy5ib2R5Q2xhc3NOYW1lLFxuXHRcdCk7XG5cdH1cblxuXHRnZXQgaGVhZGVyV3JhcHBlckNsYXNzTmFtZSgpOiBzdHJpbmcge1xuXHRcdHJldHVybiBjbihcblx0XHRcdFwiZmxleCBpdGVtcy1zdGFydCBqdXN0aWZ5LWJldHdlZW4gZ2FwLTMgcC00IHNtOnAtNiBib3JkZXItYiBib3JkZXItYm9yZGVyXCIsXG5cdFx0XHR0aGlzLmhlYWRlckNsYXNzTmFtZSxcblx0XHQpO1xuXHR9XG5cblx0Z2V0IGZvb3RlcldyYXBwZXJDbGFzc05hbWUoKTogc3RyaW5nIHtcblx0XHRjb25zdCBlZmZlY3RpdmVBbGlnbiA9XG5cdFx0XHR0aGlzLmFsaWduRm9vdGVyID09PSBcInJpZ2h0XCIgJiYgdGhpcy52YXJpYW50ID09PSBcImN1c3RvbS1jbG9zZVwiXG5cdFx0XHRcdD8gXCJsZWZ0XCJcblx0XHRcdFx0OiB0aGlzLmFsaWduRm9vdGVyO1xuXG5cdFx0cmV0dXJuIGNuKFxuXHRcdFx0XCJwLTQgc206cC02IGJvcmRlci10IGJvcmRlci1ib3JkZXIgZmxleCBmbGV4LWNvbCBnYXAtMlwiLFxuXHRcdFx0ZWZmZWN0aXZlQWxpZ24gPT09IFwiZnVsbC13aWR0aFwiXG5cdFx0XHRcdD8gXCJzbTpmbGV4LWNvbFwiXG5cdFx0XHRcdDogXCJzbTpmbGV4LXJvdyBzbTppdGVtcy1jZW50ZXJcIixcblx0XHRcdGVmZmVjdGl2ZUFsaWduID09PSBcImxlZnRcIiA/IFwic206anVzdGlmeS1zdGFydFwiIDogXCJcIixcblx0XHRcdGVmZmVjdGl2ZUFsaWduID09PSBcInJpZ2h0XCIgPyBcInNtOmp1c3RpZnktZW5kXCIgOiBcIlwiLFxuXHRcdFx0dGhpcy5mb290ZXJDbGFzc05hbWUsXG5cdFx0KTtcblx0fVxuXG5cdGdldCBjb250YWluZXJDbGFzc05hbWUoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gcmVzcG9uc2l2ZSh7XG5cdFx0XHRkZWZhdWx0OiBgZml4ZWQgaW5zZXQteC0wIGJvdHRvbS0wICR7Wl9JTkRFWC5tb2RhbEJhY2tkcm9wfSBmbGV4IGl0ZW1zLWVuZCBqdXN0aWZ5LWNlbnRlcmAsXG5cdFx0XHRzbTogYGZpeGVkIGluc2V0LTAgJHtaX0lOREVYLm1vZGFsQmFja2Ryb3B9IGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHAtNGAsXG5cdFx0fSk7XG5cdH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJvcGVuXCIgW25nQ2xhc3NdPVwiY29udGFpbmVyQ2xhc3NOYW1lXCI+XG4gIDwhLS0gQmFja2Ryb3AgLS0+XG4gIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC0wIGJnLWZvcmVncm91bmQvMzAgYmFja2Ryb3AtYmx1ci1zbVwiIChjbGljayk9XCJvbkJhY2tkcm9wQ2xpY2soKVwiPjwvZGl2PlxuXG4gIDwhLS0gRGlhbG9nIFBhbmVsIC0tPlxuICA8c2VjdGlvbiByb2xlPVwiZGlhbG9nXCIgYXJpYS1tb2RhbD1cInRydWVcIiBjZGtUcmFwRm9jdXMgW25nQ2xhc3NdPVwicGFuZWxDbGFzc05hbWVcIj5cbiAgICA8IS0tIEhlYWRlciAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0hlYWRlclwiIFtuZ0NsYXNzXT1cImhlYWRlcldyYXBwZXJDbGFzc05hbWVcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXN0b21IZWFkZXI7IGVsc2UgZGVmYXVsdEhlYWRlclwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbcGRtSGVhZGVyXVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0SGVhZGVyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWluLXctMCBmbGV4LTFcIj5cbiAgICAgICAgICA8aDIgY2xhc3M9XCJtLTAgdGV4dC1sZyBmb250LXNlbWlib2xkIGxlYWRpbmctbm9uZSB0cmFja2luZy10aWdodCB0ZXh0LWZvcmVncm91bmRcIj57eyB0aXRsZSB9fTwvaDI+XG4gICAgICAgICAgPHAgKm5nSWY9XCJkZXNjcmlwdGlvblwiIGNsYXNzPVwibS0wIG10LTIgdGV4dC1zbSB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj57eyBkZXNjcmlwdGlvbiB9fTwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAqbmdJZj1cInNob3dDbG9zZUJ1dHRvblwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJpbmxpbmUtZmxleCBoLTYgdy02IGZsZXgtc2hyaW5rLTAgYXBwZWFyYW5jZS1ub25lIGJveC1ib3JkZXIgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtc20gYm9yZGVyLTAgYmctdHJhbnNwYXJlbnQgcC0wIHRleHQtZm9yZWdyb3VuZCBvcGFjaXR5LTcwIHJpbmctb2Zmc2V0LWJhY2tncm91bmQgdHJhbnNpdGlvbi1vcGFjaXR5IGhvdmVyOm9wYWNpdHktMTAwIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTIgZm9jdXM6cmluZy1yaW5nIGZvY3VzOnJpbmctb2Zmc2V0LTIgZGlzYWJsZWQ6cG9pbnRlci1ldmVudHMtbm9uZVwiXG4gICAgICAgICAgKGNsaWNrKT1cImNsb3NlKClcIlxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbG9zZSBkaWFsb2dcIlxuICAgICAgICA+XG4gICAgICAgICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgY2xhc3M9XCJoLTQgdy00XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTYgNkwxOCAxOE0xOCA2TDYgMThcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIEJvZHkgLS0+XG4gICAgPGRpdiBbbmdDbGFzc109XCJib2R5V3JhcHBlckNsYXNzTmFtZVwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBGb290ZXIgLS0+XG4gICAgPGRpdiAqbmdJZj1cInNob3dGb290ZXJcIiBbbmdDbGFzc109XCJmb290ZXJXcmFwcGVyQ2xhc3NOYW1lXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VzdG9tRm9vdGVyOyBlbHNlIGRlZmF1bHRGb290ZXJcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3BkbUZvb3Rlcl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEZvb3Rlcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZhcmlhbnQgPT09ICdjdXN0b20tY2xvc2UnOyBlbHNlIGRlZmF1bHRBY3Rpb25zXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cImlubGluZS1mbGV4IGgtOSB3LWZ1bGwgYXBwZWFyYW5jZS1ub25lIGJveC1ib3JkZXIgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1zb2xpZCBib3JkZXItaW5wdXQgYmctYmFja2dyb3VuZCBweC00IHB5LTIgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWZvcmVncm91bmQgc2hhZG93LXNtIHNtOnctYXV0b1wiXG4gICAgICAgICAgICAoY2xpY2spPVwib25TZWNvbmRhcnlBY3Rpb24oKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgc2Vjb25kYXJ5QWN0aW9uVGV4dCB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRBY3Rpb25zPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJpbmxpbmUtZmxleCBoLTkgdy1mdWxsIGFwcGVhcmFuY2Utbm9uZSBib3gtYm9yZGVyIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItc29saWQgYm9yZGVyLWlucHV0IGJnLWJhY2tncm91bmQgcHgtNCBweS0yIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1mb3JlZ3JvdW5kIHNoYWRvdy1zbSBzbTp3LWF1dG9cIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2Vjb25kYXJ5QWN0aW9uKClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IHNlY29uZGFyeUFjdGlvblRleHQgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiaW5saW5lLWZsZXggaC05IHctZnVsbCBhcHBlYXJhbmNlLW5vbmUgYm94LWJvcmRlciBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1tZCBiZy1wcmltYXJ5IHB4LTQgcHktMiB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtcHJpbWFyeS1mb3JlZ3JvdW5kIHNoYWRvdy1zbSBzbTp3LWF1dG9cIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uUHJpbWFyeUFjdGlvbigpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBwcmltYXJ5QWN0aW9uVGV4dCB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9zZWN0aW9uPlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { NgModule } from '@angular/core';
|
|
3
2
|
import { A11yModule } from '@angular/cdk/a11y';
|
|
4
|
-
import {
|
|
3
|
+
import { NgModule } from '@angular/core';
|
|
4
|
+
import { PdmDialogComponent, PdmDialogFooterDirective, PdmDialogHeaderDirective, } from './dialog.component';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
const COMPONENTS = [
|
|
7
7
|
PdmDialogComponent,
|
|
8
|
+
PdmDialogHeaderDirective,
|
|
9
|
+
PdmDialogFooterDirective,
|
|
8
10
|
];
|
|
9
11
|
export class PdmDialogModule {
|
|
10
12
|
}
|
|
11
13
|
PdmDialogModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
12
|
-
PdmDialogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: PdmDialogModule, declarations: [PdmDialogComponent
|
|
14
|
+
PdmDialogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: PdmDialogModule, declarations: [PdmDialogComponent,
|
|
15
|
+
PdmDialogHeaderDirective,
|
|
16
|
+
PdmDialogFooterDirective], imports: [CommonModule, A11yModule], exports: [PdmDialogComponent,
|
|
17
|
+
PdmDialogHeaderDirective,
|
|
18
|
+
PdmDialogFooterDirective] });
|
|
13
19
|
PdmDialogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDialogModule, imports: [CommonModule, A11yModule] });
|
|
14
20
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDialogModule, decorators: [{
|
|
15
21
|
type: NgModule,
|
|
@@ -19,4 +25,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
19
25
|
exports: COMPONENTS
|
|
20
26
|
}]
|
|
21
27
|
}] });
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kaWFsb2cvZGlhbG9nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNMLGtCQUFrQixFQUNsQix3QkFBd0IsRUFDeEIsd0JBQXdCLEdBQ3pCLE1BQU0sb0JBQW9CLENBQUM7O0FBRTVCLE1BQU0sVUFBVSxHQUFHO0lBQ2pCLGtCQUFrQjtJQUNsQix3QkFBd0I7SUFDeEIsd0JBQXdCO0NBQ3pCLENBQUM7QUFPRixNQUFNLE9BQU8sZUFBZTs7NEdBQWYsZUFBZTs2R0FBZixlQUFlLGlCQVYxQixrQkFBa0I7UUFDbEIsd0JBQXdCO1FBQ3hCLHdCQUF3QixhQUlkLFlBQVksRUFBRSxVQUFVLGFBTmxDLGtCQUFrQjtRQUNsQix3QkFBd0I7UUFDeEIsd0JBQXdCOzZHQVFiLGVBQWUsWUFKaEIsWUFBWSxFQUFFLFVBQVU7MkZBSXZCLGVBQWU7a0JBTDNCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQztvQkFDbkMsWUFBWSxFQUFFLFVBQVU7b0JBQ3hCLE9BQU8sRUFBRSxVQUFVO2lCQUNwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFBkbURpYWxvZ0NvbXBvbmVudCxcbiAgUGRtRGlhbG9nRm9vdGVyRGlyZWN0aXZlLFxuICBQZG1EaWFsb2dIZWFkZXJEaXJlY3RpdmUsXG59IGZyb20gJy4vZGlhbG9nLmNvbXBvbmVudCc7XG5cbmNvbnN0IENPTVBPTkVOVFMgPSBbXG4gIFBkbURpYWxvZ0NvbXBvbmVudCxcbiAgUGRtRGlhbG9nSGVhZGVyRGlyZWN0aXZlLFxuICBQZG1EaWFsb2dGb290ZXJEaXJlY3RpdmUsXG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBMTF5TW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBDT01QT05FTlRTLFxuICBleHBvcnRzOiBDT01QT05FTlRTXG59KVxuZXhwb3J0IGNsYXNzIFBkbURpYWxvZ01vZHVsZSB7fVxuIl19
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { clsx } from "clsx";
|
|
2
|
+
import { twMerge } from "tailwind-merge";
|
|
3
|
+
/**
|
|
4
|
+
* Merge Tailwind classes intelligently.
|
|
5
|
+
*
|
|
6
|
+
* Combines `clsx` (conditional/array/object inputs) with `tailwind-merge`
|
|
7
|
+
* (deduplicates conflicting Tailwind utilities, last wins). This is the
|
|
8
|
+
* shadcn/ui `cn()` pattern. Use it wherever the library composes a
|
|
9
|
+
* user-supplied `className` override with internal base classes, so the
|
|
10
|
+
* override reliably wins regardless of generated CSS order.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* cn("max-w-[640px]", "max-w-[800px]") // => "max-w-[800px]"
|
|
14
|
+
* cn("p-4", condition && "p-6") // => "p-6" when condition is true
|
|
15
|
+
*/
|
|
16
|
+
export function cn(...inputs) {
|
|
17
|
+
return twMerge(clsx(inputs));
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdXRpbHMvY24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpDOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILE1BQU0sVUFBVSxFQUFFLENBQUMsR0FBRyxNQUFvQjtJQUN6QyxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUM5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBDbGFzc1ZhbHVlLCBjbHN4IH0gZnJvbSBcImNsc3hcIjtcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tIFwidGFpbHdpbmQtbWVyZ2VcIjtcblxuLyoqXG4gKiBNZXJnZSBUYWlsd2luZCBjbGFzc2VzIGludGVsbGlnZW50bHkuXG4gKlxuICogQ29tYmluZXMgYGNsc3hgIChjb25kaXRpb25hbC9hcnJheS9vYmplY3QgaW5wdXRzKSB3aXRoIGB0YWlsd2luZC1tZXJnZWBcbiAqIChkZWR1cGxpY2F0ZXMgY29uZmxpY3RpbmcgVGFpbHdpbmQgdXRpbGl0aWVzLCBsYXN0IHdpbnMpLiBUaGlzIGlzIHRoZVxuICogc2hhZGNuL3VpIGBjbigpYCBwYXR0ZXJuLiBVc2UgaXQgd2hlcmV2ZXIgdGhlIGxpYnJhcnkgY29tcG9zZXMgYVxuICogdXNlci1zdXBwbGllZCBgY2xhc3NOYW1lYCBvdmVycmlkZSB3aXRoIGludGVybmFsIGJhc2UgY2xhc3Nlcywgc28gdGhlXG4gKiBvdmVycmlkZSByZWxpYWJseSB3aW5zIHJlZ2FyZGxlc3Mgb2YgZ2VuZXJhdGVkIENTUyBvcmRlci5cbiAqXG4gKiBAZXhhbXBsZVxuICogY24oXCJtYXgtdy1bNjQwcHhdXCIsIFwibWF4LXctWzgwMHB4XVwiKSAvLyA9PiBcIm1heC13LVs4MDBweF1cIlxuICogY24oXCJwLTRcIiwgY29uZGl0aW9uICYmIFwicC02XCIpICAgICAgICAvLyA9PiBcInAtNlwiIHdoZW4gY29uZGl0aW9uIGlzIHRydWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNuKC4uLmlucHV0czogQ2xhc3NWYWx1ZVtdKTogc3RyaW5nIHtcblx0cmV0dXJuIHR3TWVyZ2UoY2xzeChpbnB1dHMpKTtcbn1cbiJdfQ==
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from "./responsive";
|
|
2
2
|
export * from "./z-index";
|
|
3
3
|
export * from "./validators";
|
|
4
|
-
|
|
4
|
+
export * from "./cn";
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy91dGlscy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsTUFBTSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vcmVzcG9uc2l2ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vei1pbmRleFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdmFsaWRhdG9yc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vY25cIjtcbiJdfQ==
|
|
@@ -2,6 +2,9 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { Component, ChangeDetectionStrategy, Input, EventEmitter, Output, HostListener, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
|
+
import { responsive, Z_INDEX, cn } from 'pdm-ui-kit/src/utils';
|
|
6
|
+
import * as i2 from '@angular/cdk/a11y';
|
|
7
|
+
import { A11yModule } from '@angular/cdk/a11y';
|
|
5
8
|
|
|
6
9
|
class PdmAlertComponent {
|
|
7
10
|
constructor() {
|
|
@@ -39,12 +42,17 @@ class PdmAlertDialogComponent {
|
|
|
39
42
|
constructor() {
|
|
40
43
|
this.open = false;
|
|
41
44
|
this.showTrigger = false;
|
|
42
|
-
this.triggerText =
|
|
43
|
-
this.title =
|
|
44
|
-
this.description =
|
|
45
|
-
this.confirmText =
|
|
46
|
-
this.cancelText =
|
|
47
|
-
this.
|
|
45
|
+
this.triggerText = "Show dialog";
|
|
46
|
+
this.title = "Are you absolutely sure?";
|
|
47
|
+
this.description = "";
|
|
48
|
+
this.confirmText = "Continue";
|
|
49
|
+
this.cancelText = "Cancel";
|
|
50
|
+
this.size = "responsive";
|
|
51
|
+
this.maxWidth = "";
|
|
52
|
+
this.className = "";
|
|
53
|
+
this.bodyClassName = "";
|
|
54
|
+
this.showFooter = true;
|
|
55
|
+
this.closeOnBackdrop = true;
|
|
48
56
|
/** Close when the ESC key is pressed. Default: `true`. */
|
|
49
57
|
this.closeOnEsc = true;
|
|
50
58
|
this.openChange = new EventEmitter();
|
|
@@ -59,6 +67,70 @@ class PdmAlertDialogComponent {
|
|
|
59
67
|
get isControlled() {
|
|
60
68
|
return this.openChange.observed;
|
|
61
69
|
}
|
|
70
|
+
get panelClassName() {
|
|
71
|
+
if (this.size === "desktop") {
|
|
72
|
+
return this.buildPanelClasses([
|
|
73
|
+
"max-w-[640px]",
|
|
74
|
+
"max-h-[calc(100vh-2rem)]",
|
|
75
|
+
"rounded-[10px]",
|
|
76
|
+
]);
|
|
77
|
+
}
|
|
78
|
+
if (this.size === "mobile") {
|
|
79
|
+
return this.buildPanelClasses([
|
|
80
|
+
"max-w-[320px]",
|
|
81
|
+
"min-h-[240px]",
|
|
82
|
+
"rounded-[10px]",
|
|
83
|
+
]);
|
|
84
|
+
}
|
|
85
|
+
if (this.size === "mobile-fullscreen") {
|
|
86
|
+
return this.buildPanelClasses([
|
|
87
|
+
"max-w-[320px]",
|
|
88
|
+
"h-[min(100dvh,640px)]",
|
|
89
|
+
"rounded-none",
|
|
90
|
+
"sm:rounded-[10px]",
|
|
91
|
+
]);
|
|
92
|
+
}
|
|
93
|
+
if (this.size === "responsive") {
|
|
94
|
+
return this.buildPanelClasses([
|
|
95
|
+
"w-full",
|
|
96
|
+
"h-full",
|
|
97
|
+
"max-h-[100dvh]",
|
|
98
|
+
"rounded-t-[10px]",
|
|
99
|
+
"sm:rounded-[10px]",
|
|
100
|
+
"sm:w-auto",
|
|
101
|
+
"sm:h-auto",
|
|
102
|
+
"sm:max-w-[640px]",
|
|
103
|
+
"sm:max-h-[calc(100vh-4rem)]",
|
|
104
|
+
]);
|
|
105
|
+
}
|
|
106
|
+
const sizeMap = {
|
|
107
|
+
sm: "sm:max-w-[400px]",
|
|
108
|
+
md: "sm:max-w-[500px]",
|
|
109
|
+
lg: "sm:max-w-[640px]",
|
|
110
|
+
xl: "sm:max-w-[800px]",
|
|
111
|
+
};
|
|
112
|
+
const maxWidth = sizeMap[this.size] || sizeMap.lg;
|
|
113
|
+
return this.buildPanelClasses([
|
|
114
|
+
"w-full",
|
|
115
|
+
"h-full",
|
|
116
|
+
"max-h-[100dvh]",
|
|
117
|
+
"rounded-t-[10px]",
|
|
118
|
+
"sm:rounded-[10px]",
|
|
119
|
+
"sm:w-auto",
|
|
120
|
+
"sm:h-auto",
|
|
121
|
+
maxWidth,
|
|
122
|
+
"sm:max-h-[calc(100vh-4rem)]",
|
|
123
|
+
]);
|
|
124
|
+
}
|
|
125
|
+
get containerClassName() {
|
|
126
|
+
return responsive({
|
|
127
|
+
default: `fixed inset-x-0 bottom-0 ${Z_INDEX.modalBackdrop} flex items-end justify-center`,
|
|
128
|
+
sm: `fixed inset-0 ${Z_INDEX.modalBackdrop} flex items-center justify-center p-4`,
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
get bodyWrapperClassName() {
|
|
132
|
+
return cn("flex-1 min-h-0 overflow-y-auto px-4 py-4 sm:px-6", this.bodyClassName);
|
|
133
|
+
}
|
|
62
134
|
onTriggerClick() {
|
|
63
135
|
if (!this.isControlled) {
|
|
64
136
|
this.open = true;
|
|
@@ -79,17 +151,26 @@ class PdmAlertDialogComponent {
|
|
|
79
151
|
}
|
|
80
152
|
this.openChange.emit(false);
|
|
81
153
|
}
|
|
154
|
+
onBackdropClick() {
|
|
155
|
+
if (this.closeOnBackdrop) {
|
|
156
|
+
this.onCancel();
|
|
157
|
+
}
|
|
158
|
+
}
|
|
82
159
|
onEsc() {
|
|
83
160
|
if (this.open && this.closeOnEsc) {
|
|
84
161
|
this.onCancel();
|
|
85
162
|
}
|
|
86
163
|
}
|
|
164
|
+
buildPanelClasses(sizeClasses) {
|
|
165
|
+
const maxWidthClass = this.maxWidth ? `sm:max-w-[${this.maxWidth}]` : "";
|
|
166
|
+
return cn("relative", Z_INDEX.modal, "flex flex-col border border-solid border-border bg-background text-foreground shadow-lg overflow-hidden", ...sizeClasses, maxWidthClass, this.className);
|
|
167
|
+
}
|
|
87
168
|
}
|
|
88
169
|
PdmAlertDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmAlertDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
89
|
-
PdmAlertDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmAlertDialogComponent, selector: "pdm-alert-dialog", inputs: { open: "open", showTrigger: "showTrigger", triggerText: "triggerText", title: "title", description: "description", confirmText: "confirmText", cancelText: "cancelText", className: "className", closeOnEsc: "closeOnEsc" }, outputs: { openChange: "openChange", confirm: "confirm", cancel: "cancel" }, host: { listeners: { "document:keydown.escape": "onEsc()" } }, ngImport: i0, template: "<button\n *ngIf=\"showTrigger && !open\"\n type=\"button\"\n class=\"inline-flex h-9 appearance-none box-border items-center justify-center rounded-md border border-solid border-input bg-background px-4 py-2 text-sm font-medium text-foreground shadow-sm\"\n (click)=\"onTriggerClick()\"\n>\n {{ triggerText }}\n</button>\n\n<div *ngIf=\"open\"
|
|
170
|
+
PdmAlertDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmAlertDialogComponent, selector: "pdm-alert-dialog", inputs: { open: "open", showTrigger: "showTrigger", triggerText: "triggerText", title: "title", description: "description", confirmText: "confirmText", cancelText: "cancelText", size: "size", maxWidth: "maxWidth", className: "className", bodyClassName: "bodyClassName", showFooter: "showFooter", closeOnBackdrop: "closeOnBackdrop", closeOnEsc: "closeOnEsc" }, outputs: { openChange: "openChange", confirm: "confirm", cancel: "cancel" }, host: { listeners: { "document:keydown.escape": "onEsc()" } }, ngImport: i0, template: "<button\n *ngIf=\"showTrigger && !open\"\n type=\"button\"\n class=\"inline-flex h-9 appearance-none box-border items-center justify-center rounded-md border border-solid border-input bg-background px-4 py-2 text-sm font-medium text-foreground shadow-sm\"\n (click)=\"onTriggerClick()\"\n>\n {{ triggerText }}\n</button>\n\n<div *ngIf=\"open\" [ngClass]=\"containerClassName\">\n <div class=\"absolute inset-0 bg-foreground/30 backdrop-blur-sm\" (click)=\"onBackdropClick()\"></div>\n <section role=\"alertdialog\" aria-modal=\"true\" cdkTrapFocus [ngClass]=\"panelClassName\">\n <div class=\"flex flex-col gap-2 p-4 sm:p-6\">\n <h2 class=\"m-0 text-lg font-semibold leading-none tracking-tight text-foreground\">{{ title }}</h2>\n <p *ngIf=\"description\" class=\"m-0 text-sm text-muted-foreground\">{{ description }}</p>\n </div>\n <div [ngClass]=\"bodyWrapperClassName\">\n <ng-content></ng-content>\n </div>\n <div *ngIf=\"showFooter\" class=\"flex flex-col gap-2 p-4 sm:p-6 border-t border-border sm:flex-row sm:justify-end\">\n <button type=\"button\" class=\"inline-flex h-9 w-full appearance-none box-border items-center justify-center rounded-md border border-solid border-input bg-background px-4 py-2 text-sm font-medium text-foreground shadow-sm sm:w-auto\" (click)=\"onCancel()\">{{ cancelText }}</button>\n <button type=\"button\" class=\"inline-flex h-9 w-full appearance-none box-border items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground shadow-sm sm:w-auto\" (click)=\"onConfirm()\">{{ confirmText }}</button>\n </div>\n </section>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
90
171
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmAlertDialogComponent, decorators: [{
|
|
91
172
|
type: Component,
|
|
92
|
-
args: [{ selector:
|
|
173
|
+
args: [{ selector: "pdm-alert-dialog", changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n *ngIf=\"showTrigger && !open\"\n type=\"button\"\n class=\"inline-flex h-9 appearance-none box-border items-center justify-center rounded-md border border-solid border-input bg-background px-4 py-2 text-sm font-medium text-foreground shadow-sm\"\n (click)=\"onTriggerClick()\"\n>\n {{ triggerText }}\n</button>\n\n<div *ngIf=\"open\" [ngClass]=\"containerClassName\">\n <div class=\"absolute inset-0 bg-foreground/30 backdrop-blur-sm\" (click)=\"onBackdropClick()\"></div>\n <section role=\"alertdialog\" aria-modal=\"true\" cdkTrapFocus [ngClass]=\"panelClassName\">\n <div class=\"flex flex-col gap-2 p-4 sm:p-6\">\n <h2 class=\"m-0 text-lg font-semibold leading-none tracking-tight text-foreground\">{{ title }}</h2>\n <p *ngIf=\"description\" class=\"m-0 text-sm text-muted-foreground\">{{ description }}</p>\n </div>\n <div [ngClass]=\"bodyWrapperClassName\">\n <ng-content></ng-content>\n </div>\n <div *ngIf=\"showFooter\" class=\"flex flex-col gap-2 p-4 sm:p-6 border-t border-border sm:flex-row sm:justify-end\">\n <button type=\"button\" class=\"inline-flex h-9 w-full appearance-none box-border items-center justify-center rounded-md border border-solid border-input bg-background px-4 py-2 text-sm font-medium text-foreground shadow-sm sm:w-auto\" (click)=\"onCancel()\">{{ cancelText }}</button>\n <button type=\"button\" class=\"inline-flex h-9 w-full appearance-none box-border items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground shadow-sm sm:w-auto\" (click)=\"onConfirm()\">{{ confirmText }}</button>\n </div>\n </section>\n</div>\n" }]
|
|
93
174
|
}], propDecorators: { open: [{
|
|
94
175
|
type: Input
|
|
95
176
|
}], showTrigger: [{
|
|
@@ -104,8 +185,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
104
185
|
type: Input
|
|
105
186
|
}], cancelText: [{
|
|
106
187
|
type: Input
|
|
188
|
+
}], size: [{
|
|
189
|
+
type: Input
|
|
190
|
+
}], maxWidth: [{
|
|
191
|
+
type: Input
|
|
107
192
|
}], className: [{
|
|
108
193
|
type: Input
|
|
194
|
+
}], bodyClassName: [{
|
|
195
|
+
type: Input
|
|
196
|
+
}], showFooter: [{
|
|
197
|
+
type: Input
|
|
198
|
+
}], closeOnBackdrop: [{
|
|
199
|
+
type: Input
|
|
109
200
|
}], closeOnEsc: [{
|
|
110
201
|
type: Input
|
|
111
202
|
}], openChange: [{
|
|
@@ -116,7 +207,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
116
207
|
type: Output
|
|
117
208
|
}], onEsc: [{
|
|
118
209
|
type: HostListener,
|
|
119
|
-
args: [
|
|
210
|
+
args: ["document:keydown.escape"]
|
|
120
211
|
}] } });
|
|
121
212
|
|
|
122
213
|
const COMPONENTS = [
|
|
@@ -127,13 +218,13 @@ class PdmAlertModule {
|
|
|
127
218
|
}
|
|
128
219
|
PdmAlertModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmAlertModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
129
220
|
PdmAlertModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: PdmAlertModule, declarations: [PdmAlertComponent,
|
|
130
|
-
PdmAlertDialogComponent], imports: [CommonModule], exports: [PdmAlertComponent,
|
|
221
|
+
PdmAlertDialogComponent], imports: [CommonModule, A11yModule], exports: [PdmAlertComponent,
|
|
131
222
|
PdmAlertDialogComponent] });
|
|
132
|
-
PdmAlertModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmAlertModule, imports: [CommonModule] });
|
|
223
|
+
PdmAlertModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmAlertModule, imports: [CommonModule, A11yModule] });
|
|
133
224
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmAlertModule, decorators: [{
|
|
134
225
|
type: NgModule,
|
|
135
226
|
args: [{
|
|
136
|
-
imports: [CommonModule],
|
|
227
|
+
imports: [CommonModule, A11yModule],
|
|
137
228
|
declarations: COMPONENTS,
|
|
138
229
|
exports: COMPONENTS
|
|
139
230
|
}]
|