ng-prime-tools 1.0.24 → 1.0.26
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 +8 -0
- package/esm2022/lib/enums/public-api.mjs +2 -1
- package/esm2022/lib/enums/severity.enum.mjs +8 -0
- package/esm2022/lib/models/button.model.mjs +1 -1
- package/esm2022/lib/models/chart-config.model.mjs +1 -1
- package/esm2022/lib/models/dialog-config.model.mjs +2 -0
- package/esm2022/lib/models/public-api.mjs +3 -2
- package/esm2022/lib/models/toast-message.model.mjs +2 -0
- package/esm2022/lib/pt-chart-comparison/index.mjs +2 -0
- package/esm2022/lib/pt-chart-comparison/pt-chart-comparison.component.mjs +153 -0
- package/esm2022/lib/pt-chart-comparison/pt-chart-comparison.module.mjs +18 -0
- package/esm2022/lib/pt-chart-comparison/public-api.mjs +3 -0
- package/esm2022/lib/pt-dialog/pt-dialog.component.mjs +219 -48
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/ng-prime-tools.mjs +388 -48
- package/fesm2022/ng-prime-tools.mjs.map +1 -1
- package/lib/enums/public-api.d.ts +1 -0
- package/lib/enums/public-api.d.ts.map +1 -1
- package/lib/enums/severity.enum.d.ts +7 -0
- package/lib/enums/severity.enum.d.ts.map +1 -0
- package/lib/models/button.model.d.ts +2 -0
- package/lib/models/button.model.d.ts.map +1 -1
- package/lib/models/chart-config.model.d.ts +15 -0
- package/lib/models/chart-config.model.d.ts.map +1 -1
- package/lib/models/dialog-config.model.d.ts +18 -0
- package/lib/models/dialog-config.model.d.ts.map +1 -0
- package/lib/models/public-api.d.ts +2 -1
- package/lib/models/public-api.d.ts.map +1 -1
- package/lib/models/toast-message.model.d.ts +7 -0
- package/lib/models/toast-message.model.d.ts.map +1 -0
- package/lib/pt-chart-comparison/index.d.ts +2 -0
- package/lib/pt-chart-comparison/index.d.ts.map +1 -0
- package/lib/pt-chart-comparison/pt-chart-comparison.component.d.ts +42 -0
- package/lib/pt-chart-comparison/pt-chart-comparison.component.d.ts.map +1 -0
- package/lib/pt-chart-comparison/pt-chart-comparison.module.d.ts +9 -0
- package/lib/pt-chart-comparison/pt-chart-comparison.module.d.ts.map +1 -0
- package/lib/pt-chart-comparison/public-api.d.ts +3 -0
- package/lib/pt-chart-comparison/public-api.d.ts.map +1 -0
- package/lib/pt-dialog/pt-dialog.component.d.ts +11 -3
- package/lib/pt-dialog/pt-dialog.component.d.ts.map +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/public-api.d.ts.map +1 -1
- package/esm2022/lib/models/dialog.model.mjs +0 -2
- package/lib/models/dialog.model.d.ts +0 -13
- package/lib/models/dialog.model.d.ts.map +0 -1
@@ -1,66 +1,115 @@
|
|
1
1
|
import { Component, Input, Output, EventEmitter, } from '@angular/core';
|
2
2
|
import { ConfirmationService, ConfirmEventType, MessageService, } from 'primeng/api';
|
3
|
+
import { SeverityEnum } from '../enums';
|
3
4
|
import * as i0 from "@angular/core";
|
4
5
|
import * as i1 from "primeng/api";
|
5
|
-
import * as i2 from "
|
6
|
-
import * as i3 from "primeng/
|
6
|
+
import * as i2 from "@angular/common";
|
7
|
+
import * as i3 from "primeng/toast";
|
8
|
+
import * as i4 from "primeng/confirmdialog";
|
9
|
+
// Default Styles for Different Dialog Types
|
10
|
+
const DIALOG_STYLES = {
|
11
|
+
[SeverityEnum.WARNING]: {
|
12
|
+
header: { text: 'Warning', color: '#d98300' },
|
13
|
+
content: { text: 'This is a warning message!', color: '#d98300' },
|
14
|
+
confirmButtonConfig: { backgroundColor: '#d98300', fontColor: '#fff' },
|
15
|
+
cancelButtonConfig: { backgroundColor: '#6c757d', fontColor: '#fff' },
|
16
|
+
},
|
17
|
+
[SeverityEnum.SUCCESS]: {
|
18
|
+
header: { text: 'Success', color: '#28a745' },
|
19
|
+
content: { text: 'Operation was successful!', color: '#28a745' },
|
20
|
+
confirmButtonConfig: { backgroundColor: '#28a745', fontColor: '#fff' },
|
21
|
+
cancelButtonConfig: { backgroundColor: '#6c757d', fontColor: '#fff' },
|
22
|
+
},
|
23
|
+
[SeverityEnum.DANGER]: {
|
24
|
+
header: { text: 'Error', color: '#dc3545' },
|
25
|
+
content: { text: 'An error occurred!', color: '#dc3545' },
|
26
|
+
confirmButtonConfig: { backgroundColor: '#dc3545', fontColor: '#fff' },
|
27
|
+
cancelButtonConfig: { backgroundColor: '#6c757d', fontColor: '#fff' },
|
28
|
+
},
|
29
|
+
[SeverityEnum.INFO]: {
|
30
|
+
header: { text: 'Information', color: '#007bff' },
|
31
|
+
content: { text: 'Here is some important information.', color: '#007bff' },
|
32
|
+
confirmButtonConfig: { backgroundColor: '#007bff', fontColor: '#fff' },
|
33
|
+
cancelButtonConfig: { backgroundColor: '#6c757d', fontColor: '#fff' },
|
34
|
+
},
|
35
|
+
};
|
36
|
+
// Centralized Default Values
|
37
|
+
const DEFAULT_DIALOG_CONFIG = {
|
38
|
+
header: { text: 'Confirmation' },
|
39
|
+
visible: false,
|
40
|
+
width: '400px',
|
41
|
+
height: 'auto',
|
42
|
+
content: 'Do you want to proceed?',
|
43
|
+
confirmButtonConfig: {
|
44
|
+
label: 'Confirm',
|
45
|
+
fontColor: '#fff',
|
46
|
+
backgroundColor: '#007bff',
|
47
|
+
},
|
48
|
+
cancelButtonConfig: {
|
49
|
+
label: 'Cancel',
|
50
|
+
fontColor: '#fff',
|
51
|
+
backgroundColor: '#6c757d',
|
52
|
+
},
|
53
|
+
dialogStyle: SeverityEnum.INFO,
|
54
|
+
};
|
7
55
|
export class PTDialogComponent {
|
8
56
|
constructor(confirmationService, messageService, renderer, el) {
|
9
57
|
this.confirmationService = confirmationService;
|
10
58
|
this.messageService = messageService;
|
11
59
|
this.renderer = renderer;
|
12
60
|
this.el = el;
|
13
|
-
this.
|
14
|
-
header: { text: 'Confirmation' },
|
15
|
-
visible: false,
|
16
|
-
width: '400px',
|
17
|
-
height: 'auto',
|
18
|
-
content: 'Do you want to proceed?',
|
19
|
-
confirmButtonConfig: {
|
20
|
-
label: 'Confirm',
|
21
|
-
fontColor: '#fff',
|
22
|
-
backgroundColor: '#007bff',
|
23
|
-
},
|
24
|
-
cancelButtonConfig: {
|
25
|
-
label: 'Cancel',
|
26
|
-
fontColor: '#fff',
|
27
|
-
backgroundColor: '#6c757d',
|
28
|
-
},
|
29
|
-
};
|
61
|
+
this.dialogConfig = { ...DEFAULT_DIALOG_CONFIG };
|
30
62
|
this.confirm = new EventEmitter();
|
31
63
|
this.cancel = new EventEmitter();
|
32
64
|
}
|
33
65
|
ngOnChanges(changes) {
|
34
|
-
if (changes['
|
35
|
-
|
66
|
+
if (changes['dialogConfig']) {
|
67
|
+
if (changes['dialogConfig'].currentValue?.dialogStyle !==
|
68
|
+
changes['dialogConfig'].previousValue?.dialogStyle) {
|
69
|
+
this.applyDialogStyle();
|
70
|
+
}
|
71
|
+
if (this.dialogConfig.visible) {
|
72
|
+
this.showDialog();
|
73
|
+
}
|
36
74
|
}
|
37
75
|
}
|
76
|
+
applyDialogStyle() {
|
77
|
+
const dialogStyle = this.dialogConfig.dialogStyle || SeverityEnum.INFO; // ✅ Ensure dialogStyle is always defined
|
78
|
+
const styleConfig = DIALOG_STYLES[dialogStyle] || {}; // ✅ Get the styles for the selected dialogStyle
|
79
|
+
this.dialogConfig = {
|
80
|
+
...DEFAULT_DIALOG_CONFIG, // ✅ Start with the default values
|
81
|
+
...styleConfig, // ✅ Override with the selected dialogStyle values
|
82
|
+
confirmButtonConfig: {
|
83
|
+
...DEFAULT_DIALOG_CONFIG.confirmButtonConfig, // ✅ Start with default confirm button styles
|
84
|
+
...styleConfig.confirmButtonConfig, // ✅ Override with the confirm button styles for the selected dialogStyle
|
85
|
+
},
|
86
|
+
cancelButtonConfig: {
|
87
|
+
...DEFAULT_DIALOG_CONFIG.cancelButtonConfig, // ✅ Start with default cancel button styles
|
88
|
+
...styleConfig.cancelButtonConfig, // ✅ Override with the cancel button styles for the selected dialogStyle
|
89
|
+
},
|
90
|
+
};
|
91
|
+
}
|
38
92
|
showDialog() {
|
39
93
|
this.confirmationService.confirm({
|
40
|
-
header: this.
|
41
|
-
message: this.
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
94
|
+
header: this.getDialogHeaderText(),
|
95
|
+
message: this.getDialogContentText(),
|
96
|
+
acceptLabel: this.dialogConfig.confirmButtonConfig?.label || 'Confirm',
|
97
|
+
rejectLabel: this.dialogConfig.cancelButtonConfig?.label || 'Cancel',
|
98
|
+
acceptButtonStyleClass: this.getButtonStyle(this.dialogConfig.confirmButtonConfig, true),
|
99
|
+
rejectButtonStyleClass: this.getButtonStyle(this.dialogConfig.cancelButtonConfig, false),
|
100
|
+
acceptIcon: this.dialogConfig.confirmButtonConfig?.icon || 'pi pi-check',
|
101
|
+
rejectIcon: this.dialogConfig.cancelButtonConfig?.icon || 'pi pi-times',
|
46
102
|
accept: () => {
|
47
103
|
this.confirm.emit();
|
48
|
-
this.
|
49
|
-
|
50
|
-
|
51
|
-
detail: 'Action confirmed',
|
52
|
-
life: 3000,
|
53
|
-
});
|
104
|
+
if (this.dialogConfig.toastOnConfirm) {
|
105
|
+
this.showToast(this.dialogConfig.toastOnConfirm);
|
106
|
+
}
|
54
107
|
},
|
55
108
|
reject: (type) => {
|
56
109
|
this.cancel.emit();
|
57
|
-
if (type === ConfirmEventType.REJECT
|
58
|
-
this.
|
59
|
-
|
60
|
-
summary: 'Rejected',
|
61
|
-
detail: 'Action cancelled',
|
62
|
-
life: 3000,
|
63
|
-
});
|
110
|
+
if (type === ConfirmEventType.REJECT &&
|
111
|
+
this.dialogConfig.toastOnCancel) {
|
112
|
+
this.showToast(this.dialogConfig.toastOnCancel);
|
64
113
|
}
|
65
114
|
},
|
66
115
|
});
|
@@ -68,25 +117,147 @@ export class PTDialogComponent {
|
|
68
117
|
setTimeout(() => {
|
69
118
|
const dialogElement = this.el.nativeElement.querySelector('.p-dialog');
|
70
119
|
if (dialogElement) {
|
71
|
-
this.renderer.setStyle(dialogElement, 'width', this.
|
72
|
-
this.renderer.setStyle(dialogElement, 'height', this.
|
120
|
+
this.renderer.setStyle(dialogElement, 'width', this.dialogConfig.width || '400px');
|
121
|
+
this.renderer.setStyle(dialogElement, 'height', this.dialogConfig.height || 'auto');
|
73
122
|
}
|
74
123
|
}, 0);
|
75
124
|
}
|
76
|
-
|
77
|
-
|
125
|
+
showToast(toast) {
|
126
|
+
if (toast) {
|
127
|
+
this.messageService.add({
|
128
|
+
severity: toast.severity,
|
129
|
+
summary: toast.summary,
|
130
|
+
detail: toast.detail,
|
131
|
+
life: toast.life || 3000,
|
132
|
+
});
|
133
|
+
}
|
134
|
+
}
|
135
|
+
getButtonStyle(buttonConfig, isConfirm = false) {
|
136
|
+
let styleClass = buttonConfig?.styleClass ?? 'p-button-sm'; // ✅ Default button size
|
137
|
+
// ✅ Apply width dynamically if provided, otherwise default to 100%
|
138
|
+
const buttonWidth = buttonConfig?.width ?? '100%';
|
139
|
+
// ✅ Set default severity: SUCCESS for confirm, SECONDARY for cancel
|
140
|
+
const defaultSeverity = isConfirm ? SeverityEnum.DANGER : SeverityEnum.INFO;
|
141
|
+
const severity = buttonConfig?.severity ?? defaultSeverity;
|
142
|
+
// ✅ Apply severity-based styles only if no custom background color is set
|
143
|
+
if (!buttonConfig?.backgroundColor) {
|
144
|
+
switch (severity) {
|
145
|
+
case SeverityEnum.WARNING:
|
146
|
+
styleClass += ' p-button-warning';
|
147
|
+
break;
|
148
|
+
case SeverityEnum.DANGER:
|
149
|
+
styleClass += ' p-button-danger';
|
150
|
+
break;
|
151
|
+
case SeverityEnum.SUCCESS:
|
152
|
+
styleClass += ' p-button-success';
|
153
|
+
break;
|
154
|
+
case SeverityEnum.INFO:
|
155
|
+
default:
|
156
|
+
styleClass += ' p-button-secondary';
|
157
|
+
break;
|
158
|
+
}
|
159
|
+
}
|
160
|
+
return `${styleClass.trim()} width-${buttonWidth.replace('%', '')}`;
|
161
|
+
}
|
162
|
+
getDialogHeaderText() {
|
163
|
+
const header = this.dialogConfig.header;
|
164
|
+
const dialogStyle = this.dialogConfig.dialogStyle ?? SeverityEnum.INFO;
|
165
|
+
const styleHeader = DIALOG_STYLES[dialogStyle]?.header;
|
166
|
+
return typeof header === 'object' && header !== null && 'text' in header
|
167
|
+
? header.text
|
168
|
+
: typeof header === 'string'
|
169
|
+
? header
|
170
|
+
: typeof styleHeader === 'object' &&
|
171
|
+
styleHeader !== null &&
|
172
|
+
'text' in styleHeader
|
173
|
+
? styleHeader.text
|
174
|
+
: 'Confirmation'; // ✅ Default value
|
175
|
+
}
|
176
|
+
getDialogHeaderStyle() {
|
177
|
+
const header = this.dialogConfig.header;
|
178
|
+
const dialogStyle = this.dialogConfig.dialogStyle ?? SeverityEnum.INFO; // ✅ Ensure dialogStyle is always defined
|
179
|
+
const styleHeader = DIALOG_STYLES[dialogStyle]?.header; // ✅ Store the style header separately
|
180
|
+
return typeof header === 'object' && header !== null
|
181
|
+
? {
|
182
|
+
color: header.color ||
|
183
|
+
(typeof styleHeader === 'object' ? styleHeader?.color : '#333'),
|
184
|
+
fontSize: header.fontSize || '25px',
|
185
|
+
}
|
186
|
+
: {
|
187
|
+
color: typeof styleHeader === 'object' ? styleHeader?.color : '#333',
|
188
|
+
fontSize: '25px',
|
189
|
+
};
|
190
|
+
}
|
191
|
+
getDialogIconClass() {
|
192
|
+
const header = this.dialogConfig.header;
|
193
|
+
const dialogStyle = this.dialogConfig.dialogStyle ?? SeverityEnum.INFO; // ✅ Ensure dialogStyle is always defined
|
194
|
+
const styleHeader = DIALOG_STYLES[dialogStyle]?.header; // ✅ Store the style header separately
|
195
|
+
// ✅ Ensure header.icon exists and is an object before accessing .code
|
196
|
+
const icon = typeof header === 'object' && header !== null && 'icon' in header
|
197
|
+
? header.icon
|
198
|
+
: typeof styleHeader === 'object' && 'icon' in styleHeader
|
199
|
+
? styleHeader.icon
|
200
|
+
: undefined;
|
201
|
+
// ✅ If `icon` is an object, extract `.code`, otherwise return as string or default value
|
202
|
+
return typeof icon === 'string'
|
203
|
+
? icon
|
204
|
+
: icon?.code || 'pi pi-exclamation-circle';
|
205
|
+
}
|
206
|
+
getDialogIconStyle() {
|
207
|
+
const header = this.dialogConfig.header;
|
208
|
+
const dialogStyle = this.dialogConfig.dialogStyle ?? SeverityEnum.INFO;
|
209
|
+
const styleHeader = DIALOG_STYLES[dialogStyle]?.header;
|
210
|
+
const icon = typeof header === 'object' && header !== null && 'icon' in header
|
211
|
+
? header.icon
|
212
|
+
: undefined;
|
213
|
+
return {
|
214
|
+
color: icon?.color ||
|
215
|
+
(typeof styleHeader === 'object' ? styleHeader?.color : '#f39c12'),
|
216
|
+
fontSize: icon?.fontSize || '1.5rem',
|
217
|
+
backgroundColor: icon?.backgroundColor || 'transparent',
|
218
|
+
borderRadius: icon?.shape === 'circular' ? '50%' : '4px',
|
219
|
+
padding: '5px',
|
220
|
+
};
|
221
|
+
}
|
222
|
+
getDialogContentText() {
|
223
|
+
const content = this.dialogConfig.content;
|
224
|
+
const dialogStyle = this.dialogConfig.dialogStyle ?? SeverityEnum.INFO;
|
225
|
+
const styleContent = DIALOG_STYLES[dialogStyle]?.content;
|
226
|
+
return typeof content === 'string'
|
227
|
+
? content
|
228
|
+
: content?.text ||
|
229
|
+
(typeof styleContent === 'object'
|
230
|
+
? styleContent?.text
|
231
|
+
: 'Are you sure?');
|
232
|
+
}
|
233
|
+
getDialogContentStyle() {
|
234
|
+
const content = this.dialogConfig.content;
|
235
|
+
const dialogStyle = this.dialogConfig.dialogStyle ?? SeverityEnum.INFO;
|
236
|
+
const styleContent = DIALOG_STYLES[dialogStyle]?.content;
|
237
|
+
return typeof content === 'object' && content !== null
|
238
|
+
? {
|
239
|
+
color: content.color ||
|
240
|
+
(typeof styleContent === 'object' ? styleContent?.color : '#333'),
|
241
|
+
fontSize: content.fontSize || '20px',
|
242
|
+
textAlign: content.position || 'left',
|
243
|
+
}
|
244
|
+
: {
|
245
|
+
color: typeof styleContent === 'object' ? styleContent?.color : '#333',
|
246
|
+
fontSize: '20px',
|
247
|
+
textAlign: 'left',
|
248
|
+
};
|
78
249
|
}
|
79
250
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTDialogComponent, deps: [{ token: i1.ConfirmationService }, { token: i1.MessageService }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
80
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PTDialogComponent, selector: "pt-dialog", inputs: {
|
251
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PTDialogComponent, selector: "pt-dialog", inputs: { dialogConfig: "dialogConfig" }, outputs: { confirm: "confirm", cancel: "cancel" }, providers: [ConfirmationService, MessageService], usesOnChanges: true, ngImport: i0, template: "<div class=\"pt-dialog\">\n <p-toast></p-toast>\n <p-confirmDialog>\n <!-- Header with Icon and Title aligned horizontally -->\n <ng-template pTemplate=\"header\">\n <div class=\"popup-header bordered-section\">\n <i [class]=\"getDialogIconClass()\" [ngStyle]=\"getDialogIconStyle()\"></i>\n <span class=\"popup-title\" [ngStyle]=\"getDialogHeaderStyle()\">\n {{ getDialogHeaderText() }}\n </span>\n </div>\n </ng-template>\n\n <!-- Message Content with Divider -->\n <ng-template pTemplate=\"message\" let-message>\n <div\n class=\"popup-content bordered-section\"\n [ngStyle]=\"getDialogContentStyle()\"\n >\n <p>{{ getDialogContentText() }}</p>\n </div>\n </ng-template>\n </p-confirmDialog>\n</div>\n", styles: ["::ng-deep .pt-dialog .p-dialog .p-dialog-header{padding-bottom:0}::ng-deep .pt-dialog .p-dialog .p-dialog-content{padding:0}::ng-deep .pt-dialog .full-width-button{width:100%;display:block;text-align:center}::ng-deep .pt-dialog .p-dialog-footer{display:flex;justify-content:center;gap:10px;width:100%;padding:10px}::ng-deep .pt-dialog .p-confirm-dialog-accept,::ng-deep .pt-dialog .p-confirm-dialog-reject{flex:1;max-width:50%;text-align:center;display:flex;justify-content:center;align-items:center;height:40px}::ng-deep .pt-dialog .p-confirm-dialog-accept i,::ng-deep .pt-dialog .p-confirm-dialog-reject i{margin-right:5px}::ng-deep .pt-dialog .p-confirm-dialog-accept .p-button-label,::ng-deep .pt-dialog .p-confirm-dialog-reject .p-button-label{font-weight:700;flex-grow:1;text-align:center}.pt-dialog .popup-header{display:flex;align-items:center;gap:10px;font-size:1.2rem;font-weight:700;padding-bottom:10px;width:100%}.pt-dialog .popup-title{color:#333;font-size:1.2rem}.pt-dialog .bordered-section{width:100%;border-bottom:1px solid rgba(0,0,0,.2);padding-bottom:10px;margin-bottom:10px}.pt-dialog .popup-content{display:flex;justify-content:center;text-align:center;padding:15px;width:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i3.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "component", type: i4.ConfirmDialog, selector: "p-confirmDialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }] }); }
|
81
252
|
}
|
82
253
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTDialogComponent, decorators: [{
|
83
254
|
type: Component,
|
84
|
-
args: [{ selector: 'pt-dialog', providers: [ConfirmationService, MessageService], template: "<div>\n <p-toast></p-toast>\n <p-confirmDialog>\n <ng-template pTemplate=\"
|
85
|
-
}], ctorParameters: () => [{ type: i1.ConfirmationService }, { type: i1.MessageService }, { type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: {
|
255
|
+
args: [{ selector: 'pt-dialog', providers: [ConfirmationService, MessageService], template: "<div class=\"pt-dialog\">\n <p-toast></p-toast>\n <p-confirmDialog>\n <!-- Header with Icon and Title aligned horizontally -->\n <ng-template pTemplate=\"header\">\n <div class=\"popup-header bordered-section\">\n <i [class]=\"getDialogIconClass()\" [ngStyle]=\"getDialogIconStyle()\"></i>\n <span class=\"popup-title\" [ngStyle]=\"getDialogHeaderStyle()\">\n {{ getDialogHeaderText() }}\n </span>\n </div>\n </ng-template>\n\n <!-- Message Content with Divider -->\n <ng-template pTemplate=\"message\" let-message>\n <div\n class=\"popup-content bordered-section\"\n [ngStyle]=\"getDialogContentStyle()\"\n >\n <p>{{ getDialogContentText() }}</p>\n </div>\n </ng-template>\n </p-confirmDialog>\n</div>\n", styles: ["::ng-deep .pt-dialog .p-dialog .p-dialog-header{padding-bottom:0}::ng-deep .pt-dialog .p-dialog .p-dialog-content{padding:0}::ng-deep .pt-dialog .full-width-button{width:100%;display:block;text-align:center}::ng-deep .pt-dialog .p-dialog-footer{display:flex;justify-content:center;gap:10px;width:100%;padding:10px}::ng-deep .pt-dialog .p-confirm-dialog-accept,::ng-deep .pt-dialog .p-confirm-dialog-reject{flex:1;max-width:50%;text-align:center;display:flex;justify-content:center;align-items:center;height:40px}::ng-deep .pt-dialog .p-confirm-dialog-accept i,::ng-deep .pt-dialog .p-confirm-dialog-reject i{margin-right:5px}::ng-deep .pt-dialog .p-confirm-dialog-accept .p-button-label,::ng-deep .pt-dialog .p-confirm-dialog-reject .p-button-label{font-weight:700;flex-grow:1;text-align:center}.pt-dialog .popup-header{display:flex;align-items:center;gap:10px;font-size:1.2rem;font-weight:700;padding-bottom:10px;width:100%}.pt-dialog .popup-title{color:#333;font-size:1.2rem}.pt-dialog .bordered-section{width:100%;border-bottom:1px solid rgba(0,0,0,.2);padding-bottom:10px;margin-bottom:10px}.pt-dialog .popup-content{display:flex;justify-content:center;text-align:center;padding:15px;width:100%}\n"] }]
|
256
|
+
}], ctorParameters: () => [{ type: i1.ConfirmationService }, { type: i1.MessageService }, { type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { dialogConfig: [{
|
86
257
|
type: Input
|
87
258
|
}], confirm: [{
|
88
259
|
type: Output
|
89
260
|
}], cancel: [{
|
90
261
|
type: Output
|
91
262
|
}] } });
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXByaW1lLXRvb2xzL3NyYy9saWIvcHQtZGlhbG9nL3B0LWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LWRpYWxvZy9wdC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBRUwsTUFBTSxFQUNOLFlBQVksR0FLYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixjQUFjLEdBQ2YsTUFBTSxhQUFhLENBQUM7Ozs7O0FBVXJCLE1BQU0sT0FBTyxpQkFBaUI7SUFzQjVCLFlBQ1UsbUJBQXdDLEVBQ3hDLGNBQThCLEVBQzlCLFFBQW1CLEVBQ25CLEVBQWM7UUFIZCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLE9BQUUsR0FBRixFQUFFLENBQVk7UUF6QmYsZ0JBQVcsR0FBZ0I7WUFDbEMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRTtZQUNoQyxPQUFPLEVBQUUsS0FBSztZQUNkLEtBQUssRUFBRSxPQUFPO1lBQ2QsTUFBTSxFQUFFLE1BQU07WUFDZCxPQUFPLEVBQUUseUJBQXlCO1lBQ2xDLG1CQUFtQixFQUFFO2dCQUNuQixLQUFLLEVBQUUsU0FBUztnQkFDaEIsU0FBUyxFQUFFLE1BQU07Z0JBQ2pCLGVBQWUsRUFBRSxTQUFTO2FBQzNCO1lBQ0Qsa0JBQWtCLEVBQUU7Z0JBQ2xCLEtBQUssRUFBRSxRQUFRO2dCQUNmLFNBQVMsRUFBRSxNQUFNO2dCQUNqQixlQUFlLEVBQUUs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LENBQUMsbUJBQW1CLEVBQUUsY0FBYyxDQUFDO3NLQUd2QyxXQUFXO3NCQUFuQixLQUFLO2dCQWtCSSxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIFJlbmRlcmVyMixcbiAgRWxlbWVudFJlZixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgT25DaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvbmZpcm1hdGlvblNlcnZpY2UsXG4gIENvbmZpcm1FdmVudFR5cGUsXG4gIE1lc3NhZ2VTZXJ2aWNlLFxufSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBEaWFsb2dNb2RlbCB9IGZyb20gJy4uL21vZGVscy9kaWFsb2cubW9kZWwnO1xuaW1wb3J0IHsgQnV0dG9uTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvYnV0dG9uLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHQtZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3B0LWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3B0LWRpYWxvZy5jb21wb25lbnQuY3NzJ10sXG4gIHByb3ZpZGVyczogW0NvbmZpcm1hdGlvblNlcnZpY2UsIE1lc3NhZ2VTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgUFREaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBkaWFsb2dNb2RlbDogRGlhbG9nTW9kZWwgPSB7XG4gICAgaGVhZGVyOiB7IHRleHQ6ICdDb25maXJtYXRpb24nIH0sXG4gICAgdmlzaWJsZTogZmFsc2UsXG4gICAgd2lkdGg6ICc0MDBweCcsXG4gICAgaGVpZ2h0OiAnYXV0bycsXG4gICAgY29udGVudDogJ0RvIHlvdSB3YW50IHRvIHByb2NlZWQ/JyxcbiAgICBjb25maXJtQnV0dG9uQ29uZmlnOiB7XG4gICAgICBsYWJlbDogJ0NvbmZpcm0nLFxuICAgICAgZm9udENvbG9yOiAnI2ZmZicsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjMDA3YmZmJyxcbiAgICB9LFxuICAgIGNhbmNlbEJ1dHRvbkNvbmZpZzoge1xuICAgICAgbGFiZWw6ICdDYW5jZWwnLFxuICAgICAgZm9udENvbG9yOiAnI2ZmZicsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjNmM3NTdkJyxcbiAgICB9LFxuICB9O1xuXG4gIEBPdXRwdXQoKSBjb25maXJtOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBjYW5jZWw6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWZcbiAgKSB7fVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snZGlhbG9nTW9kZWwnXSAmJiB0aGlzLmRpYWxvZ01vZGVsLnZpc2libGUpIHtcbiAgICAgIHRoaXMuc2hvd0RpYWxvZygpO1xuICAgIH1cbiAgfVxuXG4gIHNob3dEaWFsb2coKTogdm9pZCB7XG4gICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xuICAgICAgaGVhZGVyOiB0aGlzLmRpYWxvZ01vZGVsLmhlYWRlcj8udGV4dCB8fCAnQ29uZmlybWF0aW9uJyxcbiAgICAgIG1lc3NhZ2U6IHRoaXMuZGlhbG9nTW9kZWwuY29udGVudCB8fCAnQXJlIHlvdSBzdXJlPycsXG4gICAgICBhY2NlcHRCdXR0b25TdHlsZUNsYXNzOiB0aGlzLmdldEJ1dHRvblN0eWxlKFxuICAgICAgICB0aGlzLmRpYWxvZ01vZGVsLmNvbmZpcm1CdXR0b25Db25maWdcbiAgICAgICksXG4gICAgICByZWplY3RCdXR0b25TdHlsZUNsYXNzOiB0aGlzLmdldEJ1dHRvblN0eWxlKFxuICAgICAgICB0aGlzLmRpYWxvZ01vZGVsLmNhbmNlbEJ1dHRvbkNvbmZpZ1xuICAgICAgKSxcbiAgICAgIGFjY2VwdEljb246IHRoaXMuZGlhbG9nTW9kZWwuY29uZmlybUJ1dHRvbkNvbmZpZz8uaWNvbiB8fCAncGkgcGktY2hlY2snLFxuICAgICAgcmVqZWN0SWNvbjogdGhpcy5kaWFsb2dNb2RlbC5jYW5jZWxCdXR0b25Db25maWc/Lmljb24gfHwgJ3BpIHBpLXRpbWVzJyxcbiAgICAgIGFjY2VwdDogKCkgPT4ge1xuICAgICAgICB0aGlzLmNvbmZpcm0uZW1pdCgpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgc2V2ZXJpdHk6ICdpbmZvJyxcbiAgICAgICAgICBzdW1tYXJ5OiAnQ29uZmlybWVkJyxcbiAgICAgICAgICBkZXRhaWw6ICdBY3Rpb24gY29uZmlybWVkJyxcbiAgICAgICAgICBsaWZlOiAzMDAwLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICByZWplY3Q6ICh0eXBlOiBDb25maXJtRXZlbnRUeXBlKSA9PiB7XG4gICAgICAgIHRoaXMuY2FuY2VsLmVtaXQoKTtcbiAgICAgICAgaWYgKHR5cGUgPT09IENvbmZpcm1FdmVudFR5cGUuUkVKRUNUKSB7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgICAgICBzdW1tYXJ5OiAnUmVqZWN0ZWQnLFxuICAgICAgICAgICAgZGV0YWlsOiAnQWN0aW9uIGNhbmNlbGxlZCcsXG4gICAgICAgICAgICBsaWZlOiAzMDAwLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gVXNlIHJlbmRlcmVyIHRvIGFwcGx5IGR5bmFtaWMgc3R5bGVzXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCBkaWFsb2dFbGVtZW50ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5wLWRpYWxvZycpO1xuICAgICAgaWYgKGRpYWxvZ0VsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgICBkaWFsb2dFbGVtZW50LFxuICAgICAgICAgICd3aWR0aCcsXG4gICAgICAgICAgdGhpcy5kaWFsb2dNb2RlbC53aWR0aCB8fCAnNDAwcHgnXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgZGlhbG9nRWxlbWVudCxcbiAgICAgICAgICAnaGVpZ2h0JyxcbiAgICAgICAgICB0aGlzLmRpYWxvZ01vZGVsLmhlaWdodCB8fCAnYXV0bydcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9LCAwKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QnV0dG9uU3R5bGUoYnV0dG9uQ29uZmlnPzogQnV0dG9uTW9kZWwpOiBzdHJpbmcge1xuICAgIHJldHVybiBidXR0b25Db25maWc/LnN0eWxlQ2xhc3MgfHwgJ3AtYnV0dG9uLXNtJzsgLy8gRGVmYXVsdCB0byBzbWFsbCBidXR0b24gc3R5bGVcbiAgfVxufVxuIiwiPGRpdj5cbiAgPHAtdG9hc3Q+PC9wLXRvYXN0PlxuICA8cC1jb25maXJtRGlhbG9nPlxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJtZXNzYWdlXCIgbGV0LW1lc3NhZ2U+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIgdy1mdWxsIGdhcC0zIGJvcmRlci1ib3R0b20tMSBzdXJmYWNlLWJvcmRlclwiXG4gICAgICA+XG4gICAgICAgIDxpIFtjbGFzc109XCJkaWFsb2dNb2RlbC5oZWFkZXI/Lmljb24gfHwgJ3BpIHBpLWV4Y2xhbWF0aW9uLWNpcmNsZSdcIj48L2k+XG4gICAgICAgIDxwPnt7IG1lc3NhZ2UubWVzc2FnZSB9fTwvcD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvcC1jb25maXJtRGlhbG9nPlxuPC9kaXY+XG4iXX0=
|
263
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXByaW1lLXRvb2xzL3NyYy9saWIvcHQtZGlhbG9nL3B0LWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LWRpYWxvZy9wdC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksR0FLYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixjQUFjLEdBQ2YsTUFBTSxhQUFhLENBQUM7QUFJckIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQzs7Ozs7O0FBRXhDLDRDQUE0QztBQUM1QyxNQUFNLGFBQWEsR0FBZ0Q7SUFDakUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDdEIsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1FBQzdDLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSw0QkFBNEIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1FBQ2pFLG1CQUFtQixFQUFFLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFO1FBQ3RFLGtCQUFrQixFQUFFLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFO0tBQ3RFO0lBQ0QsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDdEIsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1FBQzdDLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSwyQkFBMkIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1FBQ2hFLG1CQUFtQixFQUFFLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFO1FBQ3RFLGtCQUFrQixFQUFFLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFO0tBQ3RFO0lBQ0QsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDckIsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1FBQzNDLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1FBQ3pELG1CQUFtQixFQUFFLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFO1FBQ3RFLGtCQUFrQixFQUFFLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFO0tBQ3RFO0lBQ0QsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDbkIsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1FBQ2pELE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxxQ0FBcUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1FBQzFFLG1CQUFtQixFQUFFLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFO1FBQ3RFLGtCQUFrQixFQUFFLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFO0tBQ3RFO0NBQ0YsQ0FBQztBQUVGLDZCQUE2QjtBQUM3QixNQUFNLHFCQUFxQixHQUFpQjtJQUMxQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFO0lBQ2hDLE9BQU8sRUFBRSxLQUFLO0lBQ2QsS0FBSyxFQUFFLE9BQU87SUFDZCxNQUFNLEVBQUUsTUFBTTtJQUNkLE9BQU8sRUFBRSx5QkFBeUI7SUFDbEMsbUJBQW1CLEVBQUU7UUFDbkIsS0FBSyxFQUFFLFNBQVM7UUFDaEIsU0FBUyxFQUFFLE1BQU07UUFDakIsZUFBZSxFQUFFLFNBQVM7S0FDM0I7SUFDRCxrQkFBa0IsRUFBRTtRQUNsQixLQUFLLEVBQUUsUUFBUTtRQUNmLFNBQVMsRUFBRSxNQUFNO1FBQ2pCLGVBQWUsRUFBRSxTQUFTO0tBQzNCO0lBQ0QsV0FBVyxFQUFFLFlBQVksQ0FBQyxJQUFJO0NBQy9CLENBQUM7QUFRRixNQUFNLE9BQU8saUJBQWlCO0lBSzVCLFlBQ1UsbUJBQXdDLEVBQ3hDLGNBQThCLEVBQzlCLFFBQW1CLEVBQ25CLEVBQWM7UUFIZCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLE9BQUUsR0FBRixFQUFFLENBQVk7UUFSZixpQkFBWSxHQUFpQixFQUFFLEdBQUcscUJBQXFCLEVBQUUsQ0FBQztRQUN6RCxZQUFPLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakQsV0FBTSxHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO0lBT3ZELENBQUM7SUFFSixXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztZQUM1QixJQUNFLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxZQUFZLEVBQUUsV0FBVztnQkFDakQsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQ2xELENBQUM7Z0JBQ0QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDMUIsQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMseUNBQXlDO1FBQ2pILE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxnREFBZ0Q7UUFFdEcsSUFBSSxDQUFDLFlBQVksR0FBRztZQUNsQixHQUFHLHFCQUFxQixFQUFFLGtDQUFrQztZQUM1RCxHQUFHLFdBQVcsRUFBRSxrREFBa0Q7WUFDbEUsbUJBQW1CLEVBQUU7Z0JBQ25CLEdBQUcscUJBQXFCLENBQUMsbUJBQW1CLEVBQUUsNkNBQTZDO2dCQUMzRixHQUFHLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRSx5RUFBeUU7YUFDOUc7WUFDRCxrQkFBa0IsRUFBRTtnQkFDbEIsR0FBRyxxQkFBcUIsQ0FBQyxrQkFBa0IsRUFBRSw0Q0FBNEM7Z0JBQ3pGLEdBQUcsV0FBVyxDQUFDLGtCQUFrQixFQUFFLHdFQUF3RTthQUM1RztTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUM7WUFDL0IsTUFBTSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUNsQyxPQUFPLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQ3BDLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixFQUFFLEtBQUssSUFBSSxTQUFTO1lBQ3RFLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixFQUFFLEtBQUssSUFBSSxRQUFRO1lBQ3BFLHNCQUFzQixFQUFFLElBQUksQ0FBQyxjQUFjLENBQ3pDLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEVBQ3JDLElBQUksQ0FDTDtZQUNELHNCQUFzQixFQUFFLElBQUksQ0FBQyxjQUFjLENBQ3pDLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLEVBQ3BDLEtBQUssQ0FDTjtZQUNELFVBQVUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixFQUFFLElBQUksSUFBSSxhQUFhO1lBQ3hFLFVBQVUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixFQUFFLElBQUksSUFBSSxhQUFhO1lBQ3ZFLE1BQU0sRUFBRSxHQUFHLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUNyQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQ25ELENBQUM7WUFDSCxDQUFDO1lBQ0QsTUFBTSxFQUFFLENBQUMsSUFBc0IsRUFBRSxFQUFFO2dCQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNuQixJQUNFLElBQUksS0FBSyxnQkFBZ0IsQ0FBQyxNQUFNO29CQUNoQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFDL0IsQ0FBQztvQkFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ2xELENBQUM7WUFDSCxDQUFDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsdUNBQXVDO1FBQ3ZDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDdkUsSUFBSSxhQUFhLEVBQUUsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQ3BCLGFBQWEsRUFDYixPQUFPLEVBQ1AsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksT0FBTyxDQUNuQyxDQUFDO2dCQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUNwQixhQUFhLEVBQ2IsUUFBUSxFQUNSLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FDbkMsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDO0lBRU8sU0FBUyxDQUFDLEtBQW9CO1FBQ3BDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQztnQkFDdEIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO2dCQUN4QixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87Z0JBQ3RCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtnQkFDcEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSTthQUN6QixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVPLGNBQWMsQ0FDcEIsWUFBMEIsRUFDMUIsWUFBcUIsS0FBSztRQUUxQixJQUFJLFVBQVUsR0FBRyxZQUFZLEVBQUUsVUFBVSxJQUFJLGFBQWEsQ0FBQyxDQUFDLHdCQUF3QjtRQUVwRixtRUFBbUU7UUFDbkUsTUFBTSxXQUFXLEdBQUcsWUFBWSxFQUFFLEtBQUssSUFBSSxNQUFNLENBQUM7UUFFbEQsb0VBQW9FO1FBQ3BFLE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztRQUM1RSxNQUFNLFFBQVEsR0FBRyxZQUFZLEVBQUUsUUFBUSxJQUFJLGVBQWUsQ0FBQztRQUUzRCwwRUFBMEU7UUFDMUUsSUFBSSxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsQ0FBQztZQUNuQyxRQUFRLFFBQVEsRUFBRSxDQUFDO2dCQUNqQixLQUFLLFlBQVksQ0FBQyxPQUFPO29CQUN2QixVQUFVLElBQUksbUJBQW1CLENBQUM7b0JBQ2xDLE1BQU07Z0JBQ1IsS0FBSyxZQUFZLENBQUMsTUFBTTtvQkFDdEIsVUFBVSxJQUFJLGtCQUFrQixDQUFDO29CQUNqQyxNQUFNO2dCQUNSLEtBQUssWUFBWSxDQUFDLE9BQU87b0JBQ3ZCLFVBQVUsSUFBSSxtQkFBbUIsQ0FBQztvQkFDbEMsTUFBTTtnQkFDUixLQUFLLFlBQVksQ0FBQyxJQUFJLENBQUM7Z0JBQ3ZCO29CQUNFLFVBQVUsSUFBSSxxQkFBcUIsQ0FBQztvQkFDcEMsTUFBTTtZQUNWLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3RFLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7UUFDeEMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQztRQUN2RSxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDLEVBQUUsTUFBTSxDQUFDO1FBRXZELE9BQU8sT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLE1BQU0sS0FBSyxJQUFJLElBQUksTUFBTSxJQUFJLE1BQU07WUFDdEUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJO1lBQ2IsQ0FBQyxDQUFDLE9BQU8sTUFBTSxLQUFLLFFBQVE7Z0JBQzVCLENBQUMsQ0FBQyxNQUFNO2dCQUNSLENBQUMsQ0FBQyxPQUFPLFdBQVcsS0FBSyxRQUFRO29CQUMvQixXQUFXLEtBQUssSUFBSTtvQkFDcEIsTUFBTSxJQUFJLFdBQVc7b0JBQ3ZCLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSTtvQkFDbEIsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLGtCQUFrQjtJQUN4QyxDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO1FBQ3hDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyx5Q0FBeUM7UUFDakgsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLHNDQUFzQztRQUU5RixPQUFPLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxNQUFNLEtBQUssSUFBSTtZQUNsRCxDQUFDLENBQUM7Z0JBQ0UsS0FBSyxFQUNILE1BQU0sQ0FBQyxLQUFLO29CQUNaLENBQUMsT0FBTyxXQUFXLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7Z0JBQ2pFLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxJQUFJLE1BQU07YUFDcEM7WUFDSCxDQUFDLENBQUM7Z0JBQ0UsS0FBSyxFQUFFLE9BQU8sV0FBVyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTTtnQkFDcEUsUUFBUSxFQUFFLE1BQU07YUFDakIsQ0FBQztJQUNSLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7UUFDeEMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLHlDQUF5QztRQUNqSCxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsc0NBQXNDO1FBRTlGLHNFQUFzRTtRQUN0RSxNQUFNLElBQUksR0FDUixPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxLQUFLLElBQUksSUFBSSxNQUFNLElBQUksTUFBTTtZQUMvRCxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUk7WUFDYixDQUFDLENBQUMsT0FBTyxXQUFXLEtBQUssUUFBUSxJQUFJLE1BQU0sSUFBSSxXQUFXO2dCQUMxRCxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUk7Z0JBQ2xCLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFaEIseUZBQXlGO1FBQ3pGLE9BQU8sT0FBTyxJQUFJLEtBQUssUUFBUTtZQUM3QixDQUFDLENBQUMsSUFBSTtZQUNOLENBQUMsQ0FBRSxJQUFrQixFQUFFLElBQUksSUFBSSwwQkFBMEIsQ0FBQztJQUM5RCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO1FBQ3hDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUM7UUFDdkUsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUV2RCxNQUFNLElBQUksR0FDUixPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxLQUFLLElBQUksSUFBSSxNQUFNLElBQUksTUFBTTtZQUMvRCxDQUFDLENBQUUsTUFBTSxDQUFDLElBQWtCO1lBQzVCLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFaEIsT0FBTztZQUNMLEtBQUssRUFDSCxJQUFJLEVBQUUsS0FBSztnQkFDWCxDQUFDLE9BQU8sV0FBVyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3BFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxJQUFJLFFBQVE7WUFDcEMsZUFBZSxFQUFFLElBQUksRUFBRSxlQUFlLElBQUksYUFBYTtZQUN2RCxZQUFZLEVBQUUsSUFBSSxFQUFFLEtBQUssS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSztZQUN4RCxPQUFPLEVBQUUsS0FBSztTQUNmLENBQUM7SUFDSixDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDO1FBQzFDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUM7UUFDdkUsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQyxFQUFFLE9BQU8sQ0FBQztRQUV6RCxPQUFPLE9BQU8sT0FBTyxLQUFLLFFBQVE7WUFDaEMsQ0FBQyxDQUFDLE9BQU87WUFDVCxDQUFDLENBQUMsT0FBTyxFQUFFLElBQUk7Z0JBQ1gsQ0FBQyxPQUFPLFlBQVksS0FBSyxRQUFRO29CQUMvQixDQUFDLENBQUMsWUFBWSxFQUFFLElBQUk7b0JBQ3BCLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQscUJBQXFCO1FBQ25CLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDO1FBQzFDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUM7UUFDdkUsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQyxFQUFFLE9BQU8sQ0FBQztRQUV6RCxPQUFPLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLEtBQUssSUFBSTtZQUNwRCxDQUFDLENBQUM7Z0JBQ0UsS0FBSyxFQUNILE9BQU8sQ0FBQyxLQUFLO29CQUNiLENBQUMsT0FBTyxZQUFZLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7Z0JBQ25FLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxJQUFJLE1BQU07Z0JBQ3BDLFNBQVMsRUFBRSxPQUFPLENBQUMsUUFBUSxJQUFJLE1BQU07YUFDdEM7WUFDSCxDQUFDLENBQUM7Z0JBQ0UsS0FBSyxFQUNILE9BQU8sWUFBWSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTTtnQkFDakUsUUFBUSxFQUFFLE1BQU07Z0JBQ2hCLFNBQVMsRUFBRSxNQUFNO2FBQ2xCLENBQUM7SUFDUixDQUFDOytHQXhQVSxpQkFBaUI7bUdBQWpCLGlCQUFpQixpSUFGakIsQ0FBQyxtQkFBbUIsRUFBRSxjQUFjLENBQUMsK0NDeEVsRCxteUJBd0JBOzs0RkRrRGEsaUJBQWlCO2tCQU43QixTQUFTOytCQUNFLFdBQVcsYUFHVixDQUFDLG1CQUFtQixFQUFFLGNBQWMsQ0FBQztzS0FHdkMsWUFBWTtzQkFBcEIsS0FBSztnQkFDSSxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBSZW5kZXJlcjIsXG4gIEVsZW1lbnRSZWYsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIE9uQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb25maXJtYXRpb25TZXJ2aWNlLFxuICBDb25maXJtRXZlbnRUeXBlLFxuICBNZXNzYWdlU2VydmljZSxcbn0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgRGlhbG9nQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2RpYWxvZy1jb25maWcubW9kZWwnO1xuaW1wb3J0IHsgQnV0dG9uTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvYnV0dG9uLm1vZGVsJztcbmltcG9ydCB7IEljb25TdHlsZSwgVG9hc3RNZXNzYWdlIH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IFNldmVyaXR5RW51bSB9IGZyb20gJy4uL2VudW1zJztcblxuLy8gRGVmYXVsdCBTdHlsZXMgZm9yIERpZmZlcmVudCBEaWFsb2cgVHlwZXNcbmNvbnN0IERJQUxPR19TVFlMRVM6IFJlY29yZDxTZXZlcml0eUVudW0sIFBhcnRpYWw8RGlhbG9nQ29uZmlnPj4gPSB7XG4gIFtTZXZlcml0eUVudW0uV0FSTklOR106IHtcbiAgICBoZWFkZXI6IHsgdGV4dDogJ1dhcm5pbmcnLCBjb2xvcjogJyNkOTgzMDAnIH0sXG4gICAgY29udGVudDogeyB0ZXh0OiAnVGhpcyBpcyBhIHdhcm5pbmcgbWVzc2FnZSEnLCBjb2xvcjogJyNkOTgzMDAnIH0sXG4gICAgY29uZmlybUJ1dHRvbkNvbmZpZzogeyBiYWNrZ3JvdW5kQ29sb3I6ICcjZDk4MzAwJywgZm9udENvbG9yOiAnI2ZmZicgfSxcbiAgICBjYW5jZWxCdXR0b25Db25maWc6IHsgYmFja2dyb3VuZENvbG9yOiAnIzZjNzU3ZCcsIGZvbnRDb2xvcjogJyNmZmYnIH0sXG4gIH0sXG4gIFtTZXZlcml0eUVudW0uU1VDQ0VTU106IHtcbiAgICBoZWFkZXI6IHsgdGV4dDogJ1N1Y2Nlc3MnLCBjb2xvcjogJyMyOGE3NDUnIH0sXG4gICAgY29udGVudDogeyB0ZXh0OiAnT3BlcmF0aW9uIHdhcyBzdWNjZXNzZnVsIScsIGNvbG9yOiAnIzI4YTc0NScgfSxcbiAgICBjb25maXJtQnV0dG9uQ29uZmlnOiB7IGJhY2tncm91bmRDb2xvcjogJyMyOGE3NDUnLCBmb250Q29sb3I6ICcjZmZmJyB9LFxuICAgIGNhbmNlbEJ1dHRvbkNvbmZpZzogeyBiYWNrZ3JvdW5kQ29sb3I6ICcjNmM3NTdkJywgZm9udENvbG9yOiAnI2ZmZicgfSxcbiAgfSxcbiAgW1NldmVyaXR5RW51bS5EQU5HRVJdOiB7XG4gICAgaGVhZGVyOiB7IHRleHQ6ICdFcnJvcicsIGNvbG9yOiAnI2RjMzU0NScgfSxcbiAgICBjb250ZW50OiB7IHRleHQ6ICdBbiBlcnJvciBvY2N1cnJlZCEnLCBjb2xvcjogJyNkYzM1NDUnIH0sXG4gICAgY29uZmlybUJ1dHRvbkNvbmZpZzogeyBiYWNrZ3JvdW5kQ29sb3I6ICcjZGMzNTQ1JywgZm9udENvbG9yOiAnI2ZmZicgfSxcbiAgICBjYW5jZWxCdXR0b25Db25maWc6IHsgYmFja2dyb3VuZENvbG9yOiAnIzZjNzU3ZCcsIGZvbnRDb2xvcjogJyNmZmYnIH0sXG4gIH0sXG4gIFtTZXZlcml0eUVudW0uSU5GT106IHtcbiAgICBoZWFkZXI6IHsgdGV4dDogJ0luZm9ybWF0aW9uJywgY29sb3I6ICcjMDA3YmZmJyB9LFxuICAgIGNvbnRlbnQ6IHsgdGV4dDogJ0hlcmUgaXMgc29tZSBpbXBvcnRhbnQgaW5mb3JtYXRpb24uJywgY29sb3I6ICcjMDA3YmZmJyB9LFxuICAgIGNvbmZpcm1CdXR0b25Db25maWc6IHsgYmFja2dyb3VuZENvbG9yOiAnIzAwN2JmZicsIGZvbnRDb2xvcjogJyNmZmYnIH0sXG4gICAgY2FuY2VsQnV0dG9uQ29uZmlnOiB7IGJhY2tncm91bmRDb2xvcjogJyM2Yzc1N2QnLCBmb250Q29sb3I6ICcjZmZmJyB9LFxuICB9LFxufTtcblxuLy8gQ2VudHJhbGl6ZWQgRGVmYXVsdCBWYWx1ZXNcbmNvbnN0IERFRkFVTFRfRElBTE9HX0NPTkZJRzogRGlhbG9nQ29uZmlnID0ge1xuICBoZWFkZXI6IHsgdGV4dDogJ0NvbmZpcm1hdGlvbicgfSxcbiAgdmlzaWJsZTogZmFsc2UsXG4gIHdpZHRoOiAnNDAwcHgnLFxuICBoZWlnaHQ6ICdhdXRvJyxcbiAgY29udGVudDogJ0RvIHlvdSB3YW50IHRvIHByb2NlZWQ/JyxcbiAgY29uZmlybUJ1dHRvbkNvbmZpZzoge1xuICAgIGxhYmVsOiAnQ29uZmlybScsXG4gICAgZm9udENvbG9yOiAnI2ZmZicsXG4gICAgYmFja2dyb3VuZENvbG9yOiAnIzAwN2JmZicsXG4gIH0sXG4gIGNhbmNlbEJ1dHRvbkNvbmZpZzoge1xuICAgIGxhYmVsOiAnQ2FuY2VsJyxcbiAgICBmb250Q29sb3I6ICcjZmZmJyxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjNmM3NTdkJyxcbiAgfSxcbiAgZGlhbG9nU3R5bGU6IFNldmVyaXR5RW51bS5JTkZPLFxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHQtZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3B0LWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3B0LWRpYWxvZy5jb21wb25lbnQuY3NzJ10sXG4gIHByb3ZpZGVyczogW0NvbmZpcm1hdGlvblNlcnZpY2UsIE1lc3NhZ2VTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgUFREaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBkaWFsb2dDb25maWc6IERpYWxvZ0NvbmZpZyA9IHsgLi4uREVGQVVMVF9ESUFMT0dfQ09ORklHIH07XG4gIEBPdXRwdXQoKSBjb25maXJtOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBjYW5jZWw6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWZcbiAgKSB7fVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snZGlhbG9nQ29uZmlnJ10pIHtcbiAgICAgIGlmIChcbiAgICAgICAgY2hhbmdlc1snZGlhbG9nQ29uZmlnJ10uY3VycmVudFZhbHVlPy5kaWFsb2dTdHlsZSAhPT1cbiAgICAgICAgY2hhbmdlc1snZGlhbG9nQ29uZmlnJ10ucHJldmlvdXNWYWx1ZT8uZGlhbG9nU3R5bGVcbiAgICAgICkge1xuICAgICAgICB0aGlzLmFwcGx5RGlhbG9nU3R5bGUoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuZGlhbG9nQ29uZmlnLnZpc2libGUpIHtcbiAgICAgICAgdGhpcy5zaG93RGlhbG9nKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseURpYWxvZ1N0eWxlKCk6IHZvaWQge1xuICAgIGNvbnN0IGRpYWxvZ1N0eWxlID0gdGhpcy5kaWFsb2dDb25maWcuZGlhbG9nU3R5bGUgfHwgU2V2ZXJpdHlFbnVtLklORk87IC8vIOKchSBFbnN1cmUgZGlhbG9nU3R5bGUgaXMgYWx3YXlzIGRlZmluZWRcbiAgICBjb25zdCBzdHlsZUNvbmZpZyA9IERJQUxPR19TVFlMRVNbZGlhbG9nU3R5bGVdIHx8IHt9OyAvLyDinIUgR2V0IHRoZSBzdHlsZXMgZm9yIHRoZSBzZWxlY3RlZCBkaWFsb2dTdHlsZVxuXG4gICAgdGhpcy5kaWFsb2dDb25maWcgPSB7XG4gICAgICAuLi5ERUZBVUxUX0RJQUxPR19DT05GSUcsIC8vIOKchSBTdGFydCB3aXRoIHRoZSBkZWZhdWx0IHZhbHVlc1xuICAgICAgLi4uc3R5bGVDb25maWcsIC8vIOKchSBPdmVycmlkZSB3aXRoIHRoZSBzZWxlY3RlZCBkaWFsb2dTdHlsZSB2YWx1ZXNcbiAgICAgIGNvbmZpcm1CdXR0b25Db25maWc6IHtcbiAgICAgICAgLi4uREVGQVVMVF9ESUFMT0dfQ09ORklHLmNvbmZpcm1CdXR0b25Db25maWcsIC8vIOKchSBTdGFydCB3aXRoIGRlZmF1bHQgY29uZmlybSBidXR0b24gc3R5bGVzXG4gICAgICAgIC4uLnN0eWxlQ29uZmlnLmNvbmZpcm1CdXR0b25Db25maWcsIC8vIOKchSBPdmVycmlkZSB3aXRoIHRoZSBjb25maXJtIGJ1dHRvbiBzdHlsZXMgZm9yIHRoZSBzZWxlY3RlZCBkaWFsb2dTdHlsZVxuICAgICAgfSxcbiAgICAgIGNhbmNlbEJ1dHRvbkNvbmZpZzoge1xuICAgICAgICAuLi5ERUZBVUxUX0RJQUxPR19DT05GSUcuY2FuY2VsQnV0dG9uQ29uZmlnLCAvLyDinIUgU3RhcnQgd2l0aCBkZWZhdWx0IGNhbmNlbCBidXR0b24gc3R5bGVzXG4gICAgICAgIC4uLnN0eWxlQ29uZmlnLmNhbmNlbEJ1dHRvbkNvbmZpZywgLy8g4pyFIE92ZXJyaWRlIHdpdGggdGhlIGNhbmNlbCBidXR0b24gc3R5bGVzIGZvciB0aGUgc2VsZWN0ZWQgZGlhbG9nU3R5bGVcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHNob3dEaWFsb2coKTogdm9pZCB7XG4gICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xuICAgICAgaGVhZGVyOiB0aGlzLmdldERpYWxvZ0hlYWRlclRleHQoKSxcbiAgICAgIG1lc3NhZ2U6IHRoaXMuZ2V0RGlhbG9nQ29udGVudFRleHQoKSxcbiAgICAgIGFjY2VwdExhYmVsOiB0aGlzLmRpYWxvZ0NvbmZpZy5jb25maXJtQnV0dG9uQ29uZmlnPy5sYWJlbCB8fCAnQ29uZmlybScsXG4gICAgICByZWplY3RMYWJlbDogdGhpcy5kaWFsb2dDb25maWcuY2FuY2VsQnV0dG9uQ29uZmlnPy5sYWJlbCB8fCAnQ2FuY2VsJyxcbiAgICAgIGFjY2VwdEJ1dHRvblN0eWxlQ2xhc3M6IHRoaXMuZ2V0QnV0dG9uU3R5bGUoXG4gICAgICAgIHRoaXMuZGlhbG9nQ29uZmlnLmNvbmZpcm1CdXR0b25Db25maWcsXG4gICAgICAgIHRydWVcbiAgICAgICksXG4gICAgICByZWplY3RCdXR0b25TdHlsZUNsYXNzOiB0aGlzLmdldEJ1dHRvblN0eWxlKFxuICAgICAgICB0aGlzLmRpYWxvZ0NvbmZpZy5jYW5jZWxCdXR0b25Db25maWcsXG4gICAgICAgIGZhbHNlXG4gICAgICApLFxuICAgICAgYWNjZXB0SWNvbjogdGhpcy5kaWFsb2dDb25maWcuY29uZmlybUJ1dHRvbkNvbmZpZz8uaWNvbiB8fCAncGkgcGktY2hlY2snLFxuICAgICAgcmVqZWN0SWNvbjogdGhpcy5kaWFsb2dDb25maWcuY2FuY2VsQnV0dG9uQ29uZmlnPy5pY29uIHx8ICdwaSBwaS10aW1lcycsXG4gICAgICBhY2NlcHQ6ICgpID0+IHtcbiAgICAgICAgdGhpcy5jb25maXJtLmVtaXQoKTtcbiAgICAgICAgaWYgKHRoaXMuZGlhbG9nQ29uZmlnLnRvYXN0T25Db25maXJtKSB7XG4gICAgICAgICAgdGhpcy5zaG93VG9hc3QodGhpcy5kaWFsb2dDb25maWcudG9hc3RPbkNvbmZpcm0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcmVqZWN0OiAodHlwZTogQ29uZmlybUV2ZW50VHlwZSkgPT4ge1xuICAgICAgICB0aGlzLmNhbmNlbC5lbWl0KCk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0eXBlID09PSBDb25maXJtRXZlbnRUeXBlLlJFSkVDVCAmJlxuICAgICAgICAgIHRoaXMuZGlhbG9nQ29uZmlnLnRvYXN0T25DYW5jZWxcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5zaG93VG9hc3QodGhpcy5kaWFsb2dDb25maWcudG9hc3RPbkNhbmNlbCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBVc2UgcmVuZGVyZXIgdG8gYXBwbHkgZHluYW1pYyBzdHlsZXNcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IGRpYWxvZ0VsZW1lbnQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLnAtZGlhbG9nJyk7XG4gICAgICBpZiAoZGlhbG9nRWxlbWVudCkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICAgIGRpYWxvZ0VsZW1lbnQsXG4gICAgICAgICAgJ3dpZHRoJyxcbiAgICAgICAgICB0aGlzLmRpYWxvZ0NvbmZpZy53aWR0aCB8fCAnNDAwcHgnXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgZGlhbG9nRWxlbWVudCxcbiAgICAgICAgICAnaGVpZ2h0JyxcbiAgICAgICAgICB0aGlzLmRpYWxvZ0NvbmZpZy5oZWlnaHQgfHwgJ2F1dG8nXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSwgMCk7XG4gIH1cblxuICBwcml2YXRlIHNob3dUb2FzdCh0b2FzdD86IFRvYXN0TWVzc2FnZSkge1xuICAgIGlmICh0b2FzdCkge1xuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICBzZXZlcml0eTogdG9hc3Quc2V2ZXJpdHksXG4gICAgICAgIHN1bW1hcnk6IHRvYXN0LnN1bW1hcnksXG4gICAgICAgIGRldGFpbDogdG9hc3QuZGV0YWlsLFxuICAgICAgICBsaWZlOiB0b2FzdC5saWZlIHx8IDMwMDAsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEJ1dHRvblN0eWxlKFxuICAgIGJ1dHRvbkNvbmZpZz86IEJ1dHRvbk1vZGVsLFxuICAgIGlzQ29uZmlybTogYm9vbGVhbiA9IGZhbHNlXG4gICk6IHN0cmluZyB7XG4gICAgbGV0IHN0eWxlQ2xhc3MgPSBidXR0b25Db25maWc/LnN0eWxlQ2xhc3MgPz8gJ3AtYnV0dG9uLXNtJzsgLy8g4pyFIERlZmF1bHQgYnV0dG9uIHNpemVcblxuICAgIC8vIOKchSBBcHBseSB3aWR0aCBkeW5hbWljYWxseSBpZiBwcm92aWRlZCwgb3RoZXJ3aXNlIGRlZmF1bHQgdG8gMTAwJVxuICAgIGNvbnN0IGJ1dHRvbldpZHRoID0gYnV0dG9uQ29uZmlnPy53aWR0aCA/PyAnMTAwJSc7XG5cbiAgICAvLyDinIUgU2V0IGRlZmF1bHQgc2V2ZXJpdHk6IFNVQ0NFU1MgZm9yIGNvbmZpcm0sIFNFQ09OREFSWSBmb3IgY2FuY2VsXG4gICAgY29uc3QgZGVmYXVsdFNldmVyaXR5ID0gaXNDb25maXJtID8gU2V2ZXJpdHlFbnVtLkRBTkdFUiA6IFNldmVyaXR5RW51bS5JTkZPO1xuICAgIGNvbnN0IHNldmVyaXR5ID0gYnV0dG9uQ29uZmlnPy5zZXZlcml0eSA/PyBkZWZhdWx0U2V2ZXJpdHk7XG5cbiAgICAvLyDinIUgQXBwbHkgc2V2ZXJpdHktYmFzZWQgc3R5bGVzIG9ubHkgaWYgbm8gY3VzdG9tIGJhY2tncm91bmQgY29sb3IgaXMgc2V0XG4gICAgaWYgKCFidXR0b25Db25maWc/LmJhY2tncm91bmRDb2xvcikge1xuICAgICAgc3dpdGNoIChzZXZlcml0eSkge1xuICAgICAgICBjYXNlIFNldmVyaXR5RW51bS5XQVJOSU5HOlxuICAgICAgICAgIHN0eWxlQ2xhc3MgKz0gJyBwLWJ1dHRvbi13YXJuaW5nJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBTZXZlcml0eUVudW0uREFOR0VSOlxuICAgICAgICAgIHN0eWxlQ2xhc3MgKz0gJyBwLWJ1dHRvbi1kYW5nZXInO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFNldmVyaXR5RW51bS5TVUNDRVNTOlxuICAgICAgICAgIHN0eWxlQ2xhc3MgKz0gJyBwLWJ1dHRvbi1zdWNjZXNzJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBTZXZlcml0eUVudW0uSU5GTzpcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBzdHlsZUNsYXNzICs9ICcgcC1idXR0b24tc2Vjb25kYXJ5JztcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gYCR7c3R5bGVDbGFzcy50cmltKCl9IHdpZHRoLSR7YnV0dG9uV2lkdGgucmVwbGFjZSgnJScsICcnKX1gO1xuICB9XG5cbiAgZ2V0RGlhbG9nSGVhZGVyVGV4dCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGhlYWRlciA9IHRoaXMuZGlhbG9nQ29uZmlnLmhlYWRlcjtcbiAgICBjb25zdCBkaWFsb2dTdHlsZSA9IHRoaXMuZGlhbG9nQ29uZmlnLmRpYWxvZ1N0eWxlID8/IFNldmVyaXR5RW51bS5JTkZPO1xuICAgIGNvbnN0IHN0eWxlSGVhZGVyID0gRElBTE9HX1NUWUxFU1tkaWFsb2dTdHlsZV0/LmhlYWRlcjtcblxuICAgIHJldHVybiB0eXBlb2YgaGVhZGVyID09PSAnb2JqZWN0JyAmJiBoZWFkZXIgIT09IG51bGwgJiYgJ3RleHQnIGluIGhlYWRlclxuICAgICAgPyBoZWFkZXIudGV4dFxuICAgICAgOiB0eXBlb2YgaGVhZGVyID09PSAnc3RyaW5nJ1xuICAgICAgPyBoZWFkZXJcbiAgICAgIDogdHlwZW9mIHN0eWxlSGVhZGVyID09PSAnb2JqZWN0JyAmJlxuICAgICAgICBzdHlsZUhlYWRlciAhPT0gbnVsbCAmJlxuICAgICAgICAndGV4dCcgaW4gc3R5bGVIZWFkZXJcbiAgICAgID8gc3R5bGVIZWFkZXIudGV4dFxuICAgICAgOiAnQ29uZmlybWF0aW9uJzsgLy8g4pyFIERlZmF1bHQgdmFsdWVcbiAgfVxuXG4gIGdldERpYWxvZ0hlYWRlclN0eWxlKCk6IGFueSB7XG4gICAgY29uc3QgaGVhZGVyID0gdGhpcy5kaWFsb2dDb25maWcuaGVhZGVyO1xuICAgIGNvbnN0IGRpYWxvZ1N0eWxlID0gdGhpcy5kaWFsb2dDb25maWcuZGlhbG9nU3R5bGUgPz8gU2V2ZXJpdHlFbnVtLklORk87IC8vIOKchSBFbnN1cmUgZGlhbG9nU3R5bGUgaXMgYWx3YXlzIGRlZmluZWRcbiAgICBjb25zdCBzdHlsZUhlYWRlciA9IERJQUxPR19TVFlMRVNbZGlhbG9nU3R5bGVdPy5oZWFkZXI7IC8vIOKchSBTdG9yZSB0aGUgc3R5bGUgaGVhZGVyIHNlcGFyYXRlbHlcblxuICAgIHJldHVybiB0eXBlb2YgaGVhZGVyID09PSAnb2JqZWN0JyAmJiBoZWFkZXIgIT09IG51bGxcbiAgICAgID8ge1xuICAgICAgICAgIGNvbG9yOlxuICAgICAgICAgICAgaGVhZGVyLmNvbG9yIHx8XG4gICAgICAgICAgICAodHlwZW9mIHN0eWxlSGVhZGVyID09PSAnb2JqZWN0JyA/IHN0eWxlSGVhZGVyPy5jb2xvciA6ICcjMzMzJyksXG4gICAgICAgICAgZm9udFNpemU6IGhlYWRlci5mb250U2l6ZSB8fCAnMjVweCcsXG4gICAgICAgIH1cbiAgICAgIDoge1xuICAgICAgICAgIGNvbG9yOiB0eXBlb2Ygc3R5bGVIZWFkZXIgPT09ICdvYmplY3QnID8gc3R5bGVIZWFkZXI/LmNvbG9yIDogJyMzMzMnLFxuICAgICAgICAgIGZvbnRTaXplOiAnMjVweCcsXG4gICAgICAgIH07XG4gIH1cblxuICBnZXREaWFsb2dJY29uQ2xhc3MoKTogc3RyaW5nIHtcbiAgICBjb25zdCBoZWFkZXIgPSB0aGlzLmRpYWxvZ0NvbmZpZy5oZWFkZXI7XG4gICAgY29uc3QgZGlhbG9nU3R5bGUgPSB0aGlzLmRpYWxvZ0NvbmZpZy5kaWFsb2dTdHlsZSA/PyBTZXZlcml0eUVudW0uSU5GTzsgLy8g4pyFIEVuc3VyZSBkaWFsb2dTdHlsZSBpcyBhbHdheXMgZGVmaW5lZFxuICAgIGNvbnN0IHN0eWxlSGVhZGVyID0gRElBTE9HX1NUWUxFU1tkaWFsb2dTdHlsZV0/LmhlYWRlcjsgLy8g4pyFIFN0b3JlIHRoZSBzdHlsZSBoZWFkZXIgc2VwYXJhdGVseVxuXG4gICAgLy8g4pyFIEVuc3VyZSBoZWFkZXIuaWNvbiBleGlzdHMgYW5kIGlzIGFuIG9iamVjdCBiZWZvcmUgYWNjZXNzaW5nIC5jb2RlXG4gICAgY29uc3QgaWNvbiA9XG4gICAgICB0eXBlb2YgaGVhZGVyID09PSAnb2JqZWN0JyAmJiBoZWFkZXIgIT09IG51bGwgJiYgJ2ljb24nIGluIGhlYWRlclxuICAgICAgICA/IGhlYWRlci5pY29uXG4gICAgICAgIDogdHlwZW9mIHN0eWxlSGVhZGVyID09PSAnb2JqZWN0JyAmJiAnaWNvbicgaW4gc3R5bGVIZWFkZXJcbiAgICAgICAgPyBzdHlsZUhlYWRlci5pY29uXG4gICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgLy8g4pyFIElmIGBpY29uYCBpcyBhbiBvYmplY3QsIGV4dHJhY3QgYC5jb2RlYCwgb3RoZXJ3aXNlIHJldHVybiBhcyBzdHJpbmcgb3IgZGVmYXVsdCB2YWx1ZVxuICAgIHJldHVybiB0eXBlb2YgaWNvbiA9PT0gJ3N0cmluZydcbiAgICAgID8gaWNvblxuICAgICAgOiAoaWNvbiBhcyBJY29uU3R5bGUpPy5jb2RlIHx8ICdwaSBwaS1leGNsYW1hdGlvbi1jaXJjbGUnO1xuICB9XG5cbiAgZ2V0RGlhbG9nSWNvblN0eWxlKCk6IGFueSB7XG4gICAgY29uc3QgaGVhZGVyID0gdGhpcy5kaWFsb2dDb25maWcuaGVhZGVyO1xuICAgIGNvbnN0IGRpYWxvZ1N0eWxlID0gdGhpcy5kaWFsb2dDb25maWcuZGlhbG9nU3R5bGUgPz8gU2V2ZXJpdHlFbnVtLklORk87XG4gICAgY29uc3Qgc3R5bGVIZWFkZXIgPSBESUFMT0dfU1RZTEVTW2RpYWxvZ1N0eWxlXT8uaGVhZGVyO1xuXG4gICAgY29uc3QgaWNvbjogSWNvblN0eWxlIHwgdW5kZWZpbmVkID1cbiAgICAgIHR5cGVvZiBoZWFkZXIgPT09ICdvYmplY3QnICYmIGhlYWRlciAhPT0gbnVsbCAmJiAnaWNvbicgaW4gaGVhZGVyXG4gICAgICAgID8gKGhlYWRlci5pY29uIGFzIEljb25TdHlsZSlcbiAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY29sb3I6XG4gICAgICAgIGljb24/LmNvbG9yIHx8XG4gICAgICAgICh0eXBlb2Ygc3R5bGVIZWFkZXIgPT09ICdvYmplY3QnID8gc3R5bGVIZWFkZXI/LmNvbG9yIDogJyNmMzljMTInKSxcbiAgICAgIGZvbnRTaXplOiBpY29uPy5mb250U2l6ZSB8fCAnMS41cmVtJyxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogaWNvbj8uYmFja2dyb3VuZENvbG9yIHx8ICd0cmFuc3BhcmVudCcsXG4gICAgICBib3JkZXJSYWRpdXM6IGljb24/LnNoYXBlID09PSAnY2lyY3VsYXInID8gJzUwJScgOiAnNHB4JyxcbiAgICAgIHBhZGRpbmc6ICc1cHgnLFxuICAgIH07XG4gIH1cblxuICBnZXREaWFsb2dDb250ZW50VGV4dCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmRpYWxvZ0NvbmZpZy5jb250ZW50O1xuICAgIGNvbnN0IGRpYWxvZ1N0eWxlID0gdGhpcy5kaWFsb2dDb25maWcuZGlhbG9nU3R5bGUgPz8gU2V2ZXJpdHlFbnVtLklORk87XG4gICAgY29uc3Qgc3R5bGVDb250ZW50ID0gRElBTE9HX1NUWUxFU1tkaWFsb2dTdHlsZV0/LmNvbnRlbnQ7XG5cbiAgICByZXR1cm4gdHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnXG4gICAgICA/IGNvbnRlbnRcbiAgICAgIDogY29udGVudD8udGV4dCB8fFxuICAgICAgICAgICh0eXBlb2Ygc3R5bGVDb250ZW50ID09PSAnb2JqZWN0J1xuICAgICAgICAgICAgPyBzdHlsZUNvbnRlbnQ/LnRleHRcbiAgICAgICAgICAgIDogJ0FyZSB5b3Ugc3VyZT8nKTtcbiAgfVxuXG4gIGdldERpYWxvZ0NvbnRlbnRTdHlsZSgpOiBhbnkge1xuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmRpYWxvZ0NvbmZpZy5jb250ZW50O1xuICAgIGNvbnN0IGRpYWxvZ1N0eWxlID0gdGhpcy5kaWFsb2dDb25maWcuZGlhbG9nU3R5bGUgPz8gU2V2ZXJpdHlFbnVtLklORk87XG4gICAgY29uc3Qgc3R5bGVDb250ZW50ID0gRElBTE9HX1NUWUxFU1tkaWFsb2dTdHlsZV0/LmNvbnRlbnQ7XG5cbiAgICByZXR1cm4gdHlwZW9mIGNvbnRlbnQgPT09ICdvYmplY3QnICYmIGNvbnRlbnQgIT09IG51bGxcbiAgICAgID8ge1xuICAgICAgICAgIGNvbG9yOlxuICAgICAgICAgICAgY29udGVudC5jb2xvciB8fFxuICAgICAgICAgICAgKHR5cGVvZiBzdHlsZUNvbnRlbnQgPT09ICdvYmplY3QnID8gc3R5bGVDb250ZW50Py5jb2xvciA6ICcjMzMzJyksXG4gICAgICAgICAgZm9udFNpemU6IGNvbnRlbnQuZm9udFNpemUgfHwgJzIwcHgnLFxuICAgICAgICAgIHRleHRBbGlnbjogY29udGVudC5wb3NpdGlvbiB8fCAnbGVmdCcsXG4gICAgICAgIH1cbiAgICAgIDoge1xuICAgICAgICAgIGNvbG9yOlxuICAgICAgICAgICAgdHlwZW9mIHN0eWxlQ29udGVudCA9PT0gJ29iamVjdCcgPyBzdHlsZUNvbnRlbnQ/LmNvbG9yIDogJyMzMzMnLFxuICAgICAgICAgIGZvbnRTaXplOiAnMjBweCcsXG4gICAgICAgICAgdGV4dEFsaWduOiAnbGVmdCcsXG4gICAgICAgIH07XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwdC1kaWFsb2dcIj5cbiAgPHAtdG9hc3Q+PC9wLXRvYXN0PlxuICA8cC1jb25maXJtRGlhbG9nPlxuICAgIDwhLS0gSGVhZGVyIHdpdGggSWNvbiBhbmQgVGl0bGUgYWxpZ25lZCBob3Jpem9udGFsbHkgLS0+XG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWhlYWRlciBib3JkZXJlZC1zZWN0aW9uXCI+XG4gICAgICAgIDxpIFtjbGFzc109XCJnZXREaWFsb2dJY29uQ2xhc3MoKVwiIFtuZ1N0eWxlXT1cImdldERpYWxvZ0ljb25TdHlsZSgpXCI+PC9pPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInBvcHVwLXRpdGxlXCIgW25nU3R5bGVdPVwiZ2V0RGlhbG9nSGVhZGVyU3R5bGUoKVwiPlxuICAgICAgICAgIHt7IGdldERpYWxvZ0hlYWRlclRleHQoKSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPCEtLSBNZXNzYWdlIENvbnRlbnQgd2l0aCBEaXZpZGVyIC0tPlxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJtZXNzYWdlXCIgbGV0LW1lc3NhZ2U+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwicG9wdXAtY29udGVudCBib3JkZXJlZC1zZWN0aW9uXCJcbiAgICAgICAgW25nU3R5bGVdPVwiZ2V0RGlhbG9nQ29udGVudFN0eWxlKClcIlxuICAgICAgPlxuICAgICAgICA8cD57eyBnZXREaWFsb2dDb250ZW50VGV4dCgpIH19PC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9wLWNvbmZpcm1EaWFsb2c+XG48L2Rpdj5cbiJdfQ==
|
package/esm2022/public-api.mjs
CHANGED
@@ -17,6 +17,7 @@ export * from './lib/pt-metric-card';
|
|
17
17
|
export * from './lib/pt-metric-card-group';
|
18
18
|
// Chart
|
19
19
|
export * from './lib/pt-chart';
|
20
|
+
export * from './lib/pt-chart-comparison';
|
20
21
|
export * from './lib/pt-line-chart';
|
21
22
|
// Cards
|
22
23
|
export * from './lib/pt-card';
|
@@ -44,4 +45,4 @@ export * from './lib/models';
|
|
44
45
|
export * from './lib/enums';
|
45
46
|
export * from './lib/types';
|
46
47
|
export * from './lib/pt-group';
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nLXByaW1lLXRvb2xzL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkJBQTZCLENBQUM7QUFFNUMsaUJBQWlCO0FBQ2pCLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw2QkFBNkIsQ0FBQztBQUU1QyxTQUFTO0FBQ1QsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHFCQUFxQixDQUFDO0FBRXBDLFlBQVk7QUFDWixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw0QkFBNEIsQ0FBQztBQUUzQyxRQUFRO0FBQ1IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMscUJBQXFCLENBQUM7QUFFcEMsUUFBUTtBQUNSLGNBQWMsZUFBZSxDQUFDO0FBRTlCLE9BQU87QUFDUCxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHFCQUFxQixDQUFDO0FBRXBDLFNBQVM7QUFDVCxjQUFjLHVCQUF1QixDQUFDO0FBRXRDLFNBQVM7QUFDVCxjQUFjLHdCQUF3QixDQUFDO0FBRXZDLGdCQUFnQjtBQUNoQixjQUFjLHdCQUF3QixDQUFDO0FBRXZDLFNBQVM7QUFDVCxjQUFjLGlCQUFpQixDQUFDO0FBRWhDLGNBQWM7QUFDZCxjQUFjLHNCQUFzQixDQUFDO0FBRXJDLGFBQWE7QUFDYixjQUFjLHFCQUFxQixDQUFDO0FBRXBDLFNBQVM7QUFDVCxjQUFjLGlCQUFpQixDQUFDO0FBRWhDLFNBQVM7QUFDVCxjQUFjLGlCQUFpQixDQUFDO0FBRWhDLFVBQVU7QUFDVixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvbmctcHJpbWUtdG9vbHMubW9kdWxlJztcblxuLy8gQWR2YW5jZWQgdGFibGVcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B0LWFkdmFuY2VkLXByaW1lLXRhYmxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL211bHRpLXNlYXJjaC1jcml0ZXJpYSc7XG5cbi8vIElucHV0c1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtY2hlY2stYm94LWlucHV0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B0LWRhdGUtaW5wdXQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtZHJvcGRvd24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtZm9ybS1idWlsZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B0LW51bWJlci1pbnB1dCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wdC1zd2l0Y2gtaW5wdXQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtdGV4dC1hcmVhLWlucHV0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B0LXRleHQtaW5wdXQnO1xuXG4vLyBEYXNoYm9hcmRcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B0LW1ldHJpYy1wYW5lbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wdC1tZXRyaWMtY2FyZCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wdC1tZXRyaWMtY2FyZC1ncm91cCc7XG5cbi8vIENoYXJ0XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wdC1jaGFydCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wdC1jaGFydC1jb21wYXJpc29uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B0LWxpbmUtY2hhcnQnO1xuXG4vLyBDYXJkc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtY2FyZCc7XG5cbi8vIE1lbnVcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B0LW1lbnUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtbWVudS1mYW5jeSc7XG5cbi8vIE5hdmJhclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtbmF2LWJhci1tZW51JztcblxuLy8gTmF2YmFyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wdC1zaWRlLWJhci1tZW51JztcblxuLy8gUGFnZSBza2VsZXRvblxuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtcGFnZS1za2VsZXRvbic7XG5cbi8vIGZvb3RlclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtZm9vdGVyJztcblxuLy8gYnJlYWQgY3J1bWJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B0LWJyZWFkLWNydW1iJztcblxuLy8gbG9naW4gcGFnZVxuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtbG9naW4tcGFnZSc7XG5cbi8vIGJ1dHRvblxuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtYnV0dG9uJztcblxuLy8gZGlhbG9nXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wdC1kaWFsb2cnO1xuXG4vLyBHZW5lcmljXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZW51bXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtZ3JvdXAnO1xuIl19
|