cps-ui-kit 0.128.0 → 0.130.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 +1 -0
- package/assets/icons.svg +8 -0
- package/esm2020/lib/components/cps-autocomplete/cps-autocomplete.component.mjs +3 -3
- package/esm2020/lib/components/cps-button-toggle/cps-button-toggle.component.mjs +3 -3
- package/esm2020/lib/components/cps-checkbox/cps-checkbox.component.mjs +1 -1
- package/esm2020/lib/components/cps-datepicker/cps-datepicker.component.mjs +3 -3
- package/esm2020/lib/components/cps-expansion-panel/cps-expansion-panel.component.mjs +3 -3
- package/esm2020/lib/components/cps-icon/cps-icon.component.mjs +3 -1
- package/esm2020/lib/components/cps-info-circle/cps-info-circle.component.mjs +1 -1
- package/esm2020/lib/components/cps-input/cps-input.component.mjs +1 -1
- package/esm2020/lib/components/cps-menu/cps-menu.component.mjs +3 -3
- package/esm2020/lib/components/cps-paginator/cps-paginator.component.mjs +3 -3
- package/esm2020/lib/components/cps-radio-group/cps-radio-group.component.mjs +1 -1
- package/esm2020/lib/components/cps-select/cps-select.component.mjs +3 -3
- package/esm2020/lib/components/cps-sidebar-menu/cps-sidebar-menu.component.mjs +3 -3
- package/esm2020/lib/components/cps-table/cps-table.component.mjs +3 -3
- package/esm2020/lib/components/cps-textarea/cps-textarea.component.mjs +1 -1
- package/esm2020/lib/components/cps-tree-autocomplete/cps-tree-autocomplete.component.mjs +8 -5
- package/esm2020/lib/components/cps-tree-select/cps-tree-select.component.mjs +8 -5
- package/esm2020/lib/components/cps-tree-table/cps-tree-table.component.mjs +76 -47
- package/esm2020/lib/components/cps-tree-table/tree-table-sort-icon/tree-table-sort-icon.component.mjs +3 -5
- package/esm2020/lib/components/internal/cps-base-tree-dropdown/cps-base-tree-dropdown.component.mjs +499 -0
- package/esm2020/lib/directives/cps-tooltip.directive.mjs +1 -1
- package/esm2020/lib/services/cps-dialog/cps-dialog.service.mjs +87 -0
- package/esm2020/lib/services/cps-dialog/internal/components/cps-confirmation/cps-confirmation.component.mjs +25 -0
- package/esm2020/lib/services/cps-dialog/internal/components/cps-dialog/cps-dialog.component.mjs +466 -0
- package/esm2020/lib/services/cps-dialog/internal/directives/cps-dialog-content.directive.mjs +18 -0
- package/esm2020/lib/services/cps-dialog/utils/cps-dialog-config.mjs +3 -0
- package/esm2020/lib/services/cps-dialog/utils/cps-dialog-ref.mjs +128 -0
- package/esm2020/public-api.mjs +4 -1
- package/fesm2015/cps-ui-kit.mjs +829 -84
- package/fesm2015/cps-ui-kit.mjs.map +1 -1
- package/fesm2020/cps-ui-kit.mjs +813 -85
- package/fesm2020/cps-ui-kit.mjs.map +1 -1
- package/lib/components/cps-autocomplete/cps-autocomplete.component.d.ts +2 -2
- package/lib/components/cps-button-toggle/cps-button-toggle.component.d.ts +3 -3
- package/lib/components/cps-checkbox/cps-checkbox.component.d.ts +2 -2
- package/lib/components/cps-datepicker/cps-datepicker.component.d.ts +2 -2
- package/lib/components/cps-info-circle/cps-info-circle.component.d.ts +2 -2
- package/lib/components/cps-input/cps-input.component.d.ts +2 -2
- package/lib/components/cps-radio-group/cps-radio-group.component.d.ts +2 -2
- package/lib/components/cps-select/cps-select.component.d.ts +2 -2
- package/lib/components/cps-textarea/cps-textarea.component.d.ts +2 -2
- package/lib/components/cps-tree-autocomplete/cps-tree-autocomplete.component.d.ts +4 -3
- package/lib/components/cps-tree-select/cps-tree-select.component.d.ts +4 -3
- package/lib/components/cps-tree-table/cps-tree-table.component.d.ts +6 -1
- package/lib/{base_components/base-tree-dropdown.component.d.ts → components/internal/cps-base-tree-dropdown/cps-base-tree-dropdown.component.d.ts} +7 -8
- package/lib/directives/cps-tooltip.directive.d.ts +4 -4
- package/lib/services/cps-dialog/cps-dialog.service.d.ts +22 -0
- package/lib/services/cps-dialog/internal/components/cps-confirmation/cps-confirmation.component.d.ts +12 -0
- package/lib/services/cps-dialog/internal/components/cps-dialog/cps-dialog.component.d.ts +93 -0
- package/lib/services/cps-dialog/internal/directives/cps-dialog-content.directive.d.ts +8 -0
- package/lib/services/cps-dialog/utils/cps-dialog-config.d.ts +151 -0
- package/lib/services/cps-dialog/utils/cps-dialog-ref.d.ts +101 -0
- package/package.json +1 -1
- package/public-api.d.ts +3 -0
- package/styles/_colors.scss +4 -0
- package/esm2020/lib/base_components/base-tree-dropdown.component.mjs +0 -502
package/esm2020/lib/services/cps-dialog/internal/components/cps-dialog/cps-dialog.component.mjs
ADDED
|
@@ -0,0 +1,466 @@
|
|
|
1
|
+
import { animate, animation, style, transition, trigger, useAnimation } from '@angular/animations';
|
|
2
|
+
import { CommonModule, DOCUMENT, isPlatformBrowser } from '@angular/common';
|
|
3
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Inject, PLATFORM_ID, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
4
|
+
import { SharedModule } from 'primeng/api';
|
|
5
|
+
import { DomHandler } from 'primeng/dom';
|
|
6
|
+
import { ZIndexUtils } from 'primeng/utils';
|
|
7
|
+
import { CpsDialogContentDirective } from '../../directives/cps-dialog-content.directive';
|
|
8
|
+
import { CpsButtonComponent } from '../../../../../components/cps-button/cps-button.component';
|
|
9
|
+
import { CpsInfoCircleComponent } from '../../../../../components/cps-info-circle/cps-info-circle.component';
|
|
10
|
+
import { CpsIconComponent } from '../../../../../components/cps-icon/cps-icon.component';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "../../../utils/cps-dialog-ref";
|
|
13
|
+
import * as i2 from "../../../utils/cps-dialog-config";
|
|
14
|
+
import * as i3 from "primeng/api";
|
|
15
|
+
import * as i4 from "@angular/common";
|
|
16
|
+
const showAnimation = animation([
|
|
17
|
+
style({ transform: '{{transform}}', opacity: 0 }),
|
|
18
|
+
animate('{{transition}}', style({ transform: 'none', opacity: 1 }))
|
|
19
|
+
]);
|
|
20
|
+
const hideAnimation = animation([
|
|
21
|
+
animate('{{transition}}', style({ transform: '{{transform}}', opacity: 0 }))
|
|
22
|
+
]);
|
|
23
|
+
export class CpsDialogComponent {
|
|
24
|
+
get minX() {
|
|
25
|
+
return this.config.minX ? this.config.minX : 0;
|
|
26
|
+
}
|
|
27
|
+
get minY() {
|
|
28
|
+
return this.config.minY ? this.config.minY : 0;
|
|
29
|
+
}
|
|
30
|
+
get keepInViewport() {
|
|
31
|
+
return this.config.keepInViewport || false;
|
|
32
|
+
}
|
|
33
|
+
get maximizable() {
|
|
34
|
+
return this.config.maximizable || false;
|
|
35
|
+
}
|
|
36
|
+
get draggable() {
|
|
37
|
+
return this.config.draggable || false;
|
|
38
|
+
}
|
|
39
|
+
get resizable() {
|
|
40
|
+
return this.config.resizable || false;
|
|
41
|
+
}
|
|
42
|
+
get style() {
|
|
43
|
+
return this._style;
|
|
44
|
+
}
|
|
45
|
+
set style(value) {
|
|
46
|
+
if (value) {
|
|
47
|
+
this._style = { ...value };
|
|
48
|
+
this.originalStyle = value;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
get position() {
|
|
52
|
+
return this.config.position || '';
|
|
53
|
+
}
|
|
54
|
+
get parent() {
|
|
55
|
+
const domElements = Array.from(this.document.getElementsByClassName('cps-dialog'));
|
|
56
|
+
return domElements.length > 1 ? domElements.pop() : undefined;
|
|
57
|
+
}
|
|
58
|
+
// eslint-disable-next-line no-useless-constructor
|
|
59
|
+
constructor(document, platformId, _dialogRef, _cdRef, renderer, config, zone, primeNGConfig) {
|
|
60
|
+
this.document = document;
|
|
61
|
+
this.platformId = platformId;
|
|
62
|
+
this._dialogRef = _dialogRef;
|
|
63
|
+
this._cdRef = _cdRef;
|
|
64
|
+
this.renderer = renderer;
|
|
65
|
+
this.config = config;
|
|
66
|
+
this.zone = zone;
|
|
67
|
+
this.primeNGConfig = primeNGConfig;
|
|
68
|
+
this.visible = true;
|
|
69
|
+
this._style = {};
|
|
70
|
+
this.transformOptions = 'scale(0.7)';
|
|
71
|
+
this._openStateChanged = new EventEmitter();
|
|
72
|
+
this._dragStarted = new EventEmitter();
|
|
73
|
+
this._dragEnded = new EventEmitter();
|
|
74
|
+
this._resizeStarted = new EventEmitter();
|
|
75
|
+
this._resizeEnded = new EventEmitter();
|
|
76
|
+
this._maximizedStateChanged = new EventEmitter();
|
|
77
|
+
}
|
|
78
|
+
ngAfterViewInit() {
|
|
79
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
80
|
+
this.loadChildComponent(this.childComponentType);
|
|
81
|
+
if (this.config.maximized && this.maximizable) {
|
|
82
|
+
this.toggleMaximized();
|
|
83
|
+
}
|
|
84
|
+
this._cdRef.detectChanges();
|
|
85
|
+
}
|
|
86
|
+
loadChildComponent(componentType) {
|
|
87
|
+
const viewContainerRef = this.insertionPoint?.viewContainerRef;
|
|
88
|
+
viewContainerRef?.clear();
|
|
89
|
+
this.componentRef = viewContainerRef?.createComponent(componentType);
|
|
90
|
+
if (this._dialogRef)
|
|
91
|
+
this._dialogRef.componentInstance = this.componentRef?.instance;
|
|
92
|
+
}
|
|
93
|
+
moveOnTop() {
|
|
94
|
+
if (this.config.autoZIndex !== false) {
|
|
95
|
+
ZIndexUtils.set('modal', this.container, (this.config.baseZIndex || 0) + this.primeNGConfig.zIndex.modal);
|
|
96
|
+
this.wrapper.style.zIndex = String(parseInt(this.container.style.zIndex, 10) - 1);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
onAnimationStart(event) {
|
|
100
|
+
switch (event.toState) {
|
|
101
|
+
case 'visible':
|
|
102
|
+
this.container = event.element;
|
|
103
|
+
this.wrapper = this.container.parentElement;
|
|
104
|
+
this.moveOnTop();
|
|
105
|
+
if (this.parent) {
|
|
106
|
+
this.unbindGlobalListeners();
|
|
107
|
+
}
|
|
108
|
+
this.bindGlobalListeners();
|
|
109
|
+
if (this.config.modal !== false) {
|
|
110
|
+
this.enableModality();
|
|
111
|
+
}
|
|
112
|
+
this.focus();
|
|
113
|
+
break;
|
|
114
|
+
case 'void':
|
|
115
|
+
if (this.wrapper && this.config.modal !== false) {
|
|
116
|
+
DomHandler.addClass(this.wrapper, 'cps-dialog-overlay-leave');
|
|
117
|
+
}
|
|
118
|
+
break;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
onAnimationEnd(event) {
|
|
122
|
+
if (event.toState === 'void') {
|
|
123
|
+
this.onContainerDestroy();
|
|
124
|
+
this._dialogRef.destroy();
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
this._openStateChanged.emit();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
onContainerDestroy() {
|
|
131
|
+
this.unbindGlobalListeners();
|
|
132
|
+
if (this.container && this.config.autoZIndex !== false) {
|
|
133
|
+
ZIndexUtils.clear(this.container);
|
|
134
|
+
}
|
|
135
|
+
if (this.config.modal !== false) {
|
|
136
|
+
this.disableModality();
|
|
137
|
+
}
|
|
138
|
+
this.container = null;
|
|
139
|
+
}
|
|
140
|
+
close() {
|
|
141
|
+
if (this.config?.disableClose || this._dialogRef?.disableClose)
|
|
142
|
+
return;
|
|
143
|
+
this.visible = false;
|
|
144
|
+
this._cdRef.markForCheck();
|
|
145
|
+
}
|
|
146
|
+
hide() {
|
|
147
|
+
if (this.config?.disableClose)
|
|
148
|
+
return;
|
|
149
|
+
if (this._dialogRef) {
|
|
150
|
+
if (!this._dialogRef.disableClose)
|
|
151
|
+
this._dialogRef.close();
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
enableModality() {
|
|
155
|
+
if (!this.config.disableClose) {
|
|
156
|
+
this.maskClickListener = this.renderer.listen(this.wrapper, 'mousedown', (event) => {
|
|
157
|
+
if (this.wrapper && this.wrapper.isSameNode(event.target)) {
|
|
158
|
+
this.hide();
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
if (this.config.modal !== false) {
|
|
163
|
+
DomHandler.addClass(this.document.body, 'cps-overflow-hidden');
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
disableModality() {
|
|
167
|
+
if (this.wrapper) {
|
|
168
|
+
if (!this.config.disableClose) {
|
|
169
|
+
this.unbindMaskClickListener();
|
|
170
|
+
}
|
|
171
|
+
if (this.config.modal !== false) {
|
|
172
|
+
DomHandler.removeClass(this.document.body, 'cps-overflow-hidden');
|
|
173
|
+
}
|
|
174
|
+
if (!this._cdRef.destroyed) {
|
|
175
|
+
this._cdRef.detectChanges();
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
focus() {
|
|
180
|
+
const focusable = DomHandler.getFocusableElements(this.container);
|
|
181
|
+
if (focusable && focusable.length > 0) {
|
|
182
|
+
this.zone.runOutsideAngular(() => {
|
|
183
|
+
setTimeout(() => focusable[0].focus(), 5);
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
toggleMaximized(value) {
|
|
188
|
+
if (!this.maximizable)
|
|
189
|
+
return;
|
|
190
|
+
if (typeof value === 'boolean') {
|
|
191
|
+
if (value === this.maximized || (!value && !this.maximized))
|
|
192
|
+
return;
|
|
193
|
+
this.maximized = value;
|
|
194
|
+
}
|
|
195
|
+
else
|
|
196
|
+
this.maximized = !this.maximized;
|
|
197
|
+
if (this.maximized) {
|
|
198
|
+
DomHandler.addClass(this.document.body, 'cps-overflow-hidden');
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
DomHandler.removeClass(this.document.body, 'cps-overflow-hidden');
|
|
202
|
+
}
|
|
203
|
+
this._maximizedStateChanged.emit(this.maximized);
|
|
204
|
+
}
|
|
205
|
+
initResize(event) {
|
|
206
|
+
if (this.resizable) {
|
|
207
|
+
if (!this.documentResizeListener) {
|
|
208
|
+
this.bindDocumentResizeListeners();
|
|
209
|
+
}
|
|
210
|
+
this.resizing = true;
|
|
211
|
+
this.lastPageX = event.pageX;
|
|
212
|
+
this.lastPageY = event.pageY;
|
|
213
|
+
DomHandler.addClass(this.document.body, 'cps-unselectable-text');
|
|
214
|
+
this._resizeStarted.emit(event);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
onResize(event) {
|
|
218
|
+
if (this.resizing) {
|
|
219
|
+
const deltaX = event.pageX - this.lastPageX;
|
|
220
|
+
const deltaY = event.pageY - this.lastPageY;
|
|
221
|
+
const containerWidth = DomHandler.getOuterWidth(this.container);
|
|
222
|
+
const containerHeight = DomHandler.getOuterHeight(this.container);
|
|
223
|
+
const contentHeight = DomHandler.getOuterHeight(this.contentViewChild.nativeElement);
|
|
224
|
+
const contentWidth = DomHandler.getOuterWidth(this.contentViewChild.nativeElement);
|
|
225
|
+
const headerHeight = this.headerViewChild
|
|
226
|
+
? DomHandler.getOuterHeight(this.headerViewChild.nativeElement)
|
|
227
|
+
: 0;
|
|
228
|
+
const headerWidth = this.headerViewChild
|
|
229
|
+
? DomHandler.getOuterWidth(this.headerViewChild.nativeElement)
|
|
230
|
+
: 0;
|
|
231
|
+
let newWidth = containerWidth + deltaX;
|
|
232
|
+
let newHeight = containerHeight + deltaY;
|
|
233
|
+
const minWidth = this.container.style.minWidth;
|
|
234
|
+
const minHeight = this.container.style.minHeight;
|
|
235
|
+
const offset = this.container.getBoundingClientRect();
|
|
236
|
+
const viewport = DomHandler.getViewport();
|
|
237
|
+
const hasBeenDragged = !parseInt(this.container.style.top) ||
|
|
238
|
+
!parseInt(this.container.style.left);
|
|
239
|
+
if (hasBeenDragged) {
|
|
240
|
+
newWidth += deltaX;
|
|
241
|
+
newHeight += deltaY;
|
|
242
|
+
}
|
|
243
|
+
if ((!minWidth || newWidth > parseInt(minWidth)) &&
|
|
244
|
+
offset.left + newWidth < viewport.width) {
|
|
245
|
+
const newContentWidth = contentWidth + newWidth - containerWidth;
|
|
246
|
+
const newHeaderWidth = headerWidth + newWidth - containerWidth;
|
|
247
|
+
this._style.width =
|
|
248
|
+
Math.max(newWidth, newContentWidth, newHeaderWidth) + 'px';
|
|
249
|
+
this.container.style.width = this._style.width;
|
|
250
|
+
}
|
|
251
|
+
if ((!minHeight || newHeight > parseInt(minHeight)) &&
|
|
252
|
+
offset.top + newHeight < viewport.height) {
|
|
253
|
+
const newContentHeight = contentHeight + newHeight - containerHeight;
|
|
254
|
+
this._style.height =
|
|
255
|
+
Math.max(newHeight, headerHeight + newContentHeight) + 'px';
|
|
256
|
+
this.container.style.height = this._style.height;
|
|
257
|
+
}
|
|
258
|
+
this.lastPageX = event.pageX;
|
|
259
|
+
this.lastPageY = event.pageY;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
resizeEnd(event) {
|
|
263
|
+
if (this.resizing) {
|
|
264
|
+
this.resizing = false;
|
|
265
|
+
DomHandler.removeClass(this.document.body, 'cps-unselectable-text');
|
|
266
|
+
this._resizeEnded.emit(event);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
initDrag(event) {
|
|
270
|
+
function isHeaderActionButton(element) {
|
|
271
|
+
while (element &&
|
|
272
|
+
!element.classList.contains('cps-dialog-header-action-button') &&
|
|
273
|
+
!element.classList.contains('cps-dialog-header-info-circle')) {
|
|
274
|
+
element = element.parentElement;
|
|
275
|
+
}
|
|
276
|
+
return !!element;
|
|
277
|
+
}
|
|
278
|
+
if (!this.draggable || this.maximized)
|
|
279
|
+
return;
|
|
280
|
+
if (isHeaderActionButton(event.target))
|
|
281
|
+
return;
|
|
282
|
+
this.dragging = true;
|
|
283
|
+
this.lastPageX = event.pageX;
|
|
284
|
+
this.lastPageY = event.pageY;
|
|
285
|
+
this.container.style.margin = '0';
|
|
286
|
+
DomHandler.addClass(this.document.body, 'cps-unselectable-text');
|
|
287
|
+
this._dragStarted.emit(event);
|
|
288
|
+
}
|
|
289
|
+
onDrag(event) {
|
|
290
|
+
if (this.dragging) {
|
|
291
|
+
const containerWidth = DomHandler.getOuterWidth(this.container);
|
|
292
|
+
const containerHeight = DomHandler.getOuterHeight(this.container);
|
|
293
|
+
const deltaX = event.pageX - this.lastPageX;
|
|
294
|
+
const deltaY = event.pageY - this.lastPageY;
|
|
295
|
+
const offset = this.container.getBoundingClientRect();
|
|
296
|
+
const leftPos = offset.left + deltaX;
|
|
297
|
+
const topPos = offset.top + deltaY;
|
|
298
|
+
const viewport = DomHandler.getViewport();
|
|
299
|
+
this.container.style.position = 'fixed';
|
|
300
|
+
if (this.keepInViewport) {
|
|
301
|
+
if (leftPos >= this.minX && leftPos + containerWidth < viewport.width) {
|
|
302
|
+
this._style.left = leftPos + 'px';
|
|
303
|
+
this.lastPageX = event.pageX;
|
|
304
|
+
this.container.style.left = leftPos + 'px';
|
|
305
|
+
}
|
|
306
|
+
if (topPos >= this.minY && topPos + containerHeight < viewport.height) {
|
|
307
|
+
this._style.top = topPos + 'px';
|
|
308
|
+
this.lastPageY = event.pageY;
|
|
309
|
+
this.container.style.top = topPos + 'px';
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
else {
|
|
313
|
+
this.lastPageX = event.pageX;
|
|
314
|
+
this.container.style.left = leftPos + 'px';
|
|
315
|
+
this.lastPageY = event.pageY;
|
|
316
|
+
this.container.style.top = topPos + 'px';
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
endDrag(event) {
|
|
321
|
+
if (this.dragging) {
|
|
322
|
+
this.dragging = false;
|
|
323
|
+
DomHandler.removeClass(this.document.body, 'cps-unselectable-text');
|
|
324
|
+
this._dragEnded.emit(event);
|
|
325
|
+
this._cdRef.detectChanges();
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
resetPosition() {
|
|
329
|
+
this.container.style.position = '';
|
|
330
|
+
this.container.style.left = '';
|
|
331
|
+
this.container.style.top = '';
|
|
332
|
+
this.container.style.margin = '';
|
|
333
|
+
}
|
|
334
|
+
bindDocumentDragListener() {
|
|
335
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
336
|
+
this.zone.runOutsideAngular(() => {
|
|
337
|
+
this.documentDragListener = this.renderer.listen(this.document, 'mousemove', this.onDrag.bind(this));
|
|
338
|
+
});
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
bindDocumentDragEndListener() {
|
|
342
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
343
|
+
this.zone.runOutsideAngular(() => {
|
|
344
|
+
this.documentDragEndListener = this.renderer.listen(this.document, 'mouseup', this.endDrag.bind(this));
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
unbindDocumentDragEndListener() {
|
|
349
|
+
if (this.documentDragEndListener) {
|
|
350
|
+
this.documentDragEndListener();
|
|
351
|
+
this.documentDragListener = null;
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
unbindDocumentDragListener() {
|
|
355
|
+
if (this.documentDragListener) {
|
|
356
|
+
this.documentDragListener();
|
|
357
|
+
this.documentDragListener = null;
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
bindDocumentResizeListeners() {
|
|
361
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
362
|
+
this.zone.runOutsideAngular(() => {
|
|
363
|
+
this.documentResizeListener = this.renderer.listen(this.document, 'mousemove', this.onResize.bind(this));
|
|
364
|
+
this.documentResizeEndListener = this.renderer.listen(this.document, 'mouseup', this.resizeEnd.bind(this));
|
|
365
|
+
});
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
unbindDocumentResizeListeners() {
|
|
369
|
+
if (this.documentResizeListener && this.documentResizeEndListener) {
|
|
370
|
+
this.documentResizeListener();
|
|
371
|
+
this.documentResizeEndListener();
|
|
372
|
+
this.documentResizeListener = null;
|
|
373
|
+
this.documentResizeEndListener = null;
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
bindGlobalListeners() {
|
|
377
|
+
if (this.config.closeOnEscape !== false &&
|
|
378
|
+
this.config.disableClose !== false) {
|
|
379
|
+
this.bindDocumentEscapeListener();
|
|
380
|
+
}
|
|
381
|
+
if (this.resizable) {
|
|
382
|
+
this.bindDocumentResizeListeners();
|
|
383
|
+
}
|
|
384
|
+
if (this.draggable) {
|
|
385
|
+
this.bindDocumentDragListener();
|
|
386
|
+
this.bindDocumentDragEndListener();
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
unbindGlobalListeners() {
|
|
390
|
+
this.unbindDocumentEscapeListener();
|
|
391
|
+
this.unbindDocumentResizeListeners();
|
|
392
|
+
this.unbindDocumentDragListener();
|
|
393
|
+
this.unbindDocumentDragEndListener();
|
|
394
|
+
}
|
|
395
|
+
bindDocumentEscapeListener() {
|
|
396
|
+
const documentTarget = this.maskViewChild
|
|
397
|
+
? this.maskViewChild.nativeElement.ownerDocument
|
|
398
|
+
: 'document';
|
|
399
|
+
this.documentEscapeListener = this.renderer.listen(documentTarget, 'keydown', (event) => {
|
|
400
|
+
if (event.which === 27) {
|
|
401
|
+
if (parseInt(this.container.style.zIndex) ===
|
|
402
|
+
ZIndexUtils.getCurrent()) {
|
|
403
|
+
this.hide();
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
});
|
|
407
|
+
}
|
|
408
|
+
unbindDocumentEscapeListener() {
|
|
409
|
+
if (this.documentEscapeListener) {
|
|
410
|
+
this.documentEscapeListener();
|
|
411
|
+
this.documentEscapeListener = null;
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
unbindMaskClickListener() {
|
|
415
|
+
if (this.maskClickListener) {
|
|
416
|
+
this.maskClickListener();
|
|
417
|
+
this.maskClickListener = null;
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
ngOnDestroy() {
|
|
421
|
+
this.onContainerDestroy();
|
|
422
|
+
this.componentRef?.destroy();
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
CpsDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CpsDialogComponent, deps: [{ token: DOCUMENT }, { token: PLATFORM_ID }, { token: i1.CpsDialogRef }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i2.CpsDialogConfig }, { token: i0.NgZone }, { token: i3.PrimeNGConfig }], target: i0.ɵɵFactoryTarget.Component });
|
|
426
|
+
CpsDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: CpsDialogComponent, isStandalone: true, selector: "cps-dialog", viewQueries: [{ propertyName: "insertionPoint", first: true, predicate: CpsDialogContentDirective, descendants: true }, { propertyName: "maskViewChild", first: true, predicate: ["mask"], descendants: true }, { propertyName: "contentViewChild", first: true, predicate: ["content"], descendants: true }, { propertyName: "headerViewChild", first: true, predicate: ["header"], descendants: true }], ngImport: i0, template: "<div\n #mask\n [ngClass]=\"{\n 'cps-dialog-mask': true,\n 'cps-dialog-overlay cps-dialog-overlay-enter': config.modal !== false,\n 'cps-dialog-left': position === 'left',\n 'cps-dialog-right': position === 'right',\n 'cps-dialog-top': position === 'top',\n 'cps-dialog-bottom': position === 'bottom',\n 'cps-dialog-top-left': position === 'topleft' || position === 'top-left',\n 'cps-dialog-top-right': position === 'topright' || position === 'top-right',\n 'cps-dialog-bottom-left':\n position === 'bottomleft' || position === 'bottom-left',\n 'cps-dialog-bottom-right':\n position === 'bottomright' || position === 'bottom-right'\n }\"\n [class]=\"config.maskStyleClass || ''\">\n <div\n #container\n [ngClass]=\"{\n 'cps-dialog': true,\n 'cps-dialog-resizable': resizable,\n 'cps-dialog-draggable': draggable && !maximized,\n 'cps-dialog-dragging': dragging,\n 'cps-dialog-maximized': maximized\n }\"\n [ngStyle]=\"config.style\"\n [class]=\"config.styleClass || ''\"\n [@animation]=\"{\n value: 'visible',\n params: {\n transform: transformOptions,\n transition:\n config.transitionOptions || '150ms cubic-bezier(0, 0, 0.2, 1)'\n }\n }\"\n (@animation.start)=\"onAnimationStart($event)\"\n (@animation.done)=\"onAnimationEnd($event)\"\n role=\"dialog\"\n *ngIf=\"visible\"\n [style.width]=\"config.width\"\n [style.height]=\"config.height\"\n [style.minWidth]=\"config.minWidth\"\n [style.minHeight]=\"config.minHeight\"\n [style.maxWidth]=\"maximized ? '' : config.maxWidth\"\n [style.maxHeight]=\"maximized ? '' : config.maxHeight\">\n <div\n *ngIf=\"resizable && !maximized\"\n class=\"cps-dialog-resizable-handle\"\n style=\"z-index: 90\"\n (mousedown)=\"initResize($event)\"></div>\n <div\n #header\n *ngIf=\"config.showHeader !== false\"\n class=\"cps-dialog-header\"\n [ngClass]=\"{\n 'cps-dialog-header-left-bordered':\n config.showHeaderLeftBorder !== false,\n 'cps-dialog-header-bottom-bordered':\n config.showHeaderBottomBorder !== false\n }\"\n (mousedown)=\"initDrag($event)\">\n <div class=\"cps-dialog-header-left\">\n <div class=\"cps-dialog-header-icon\">\n <cps-icon\n *ngIf=\"config.headerIcon\"\n [icon]=\"config.headerIcon\"\n [color]=\"config.headerIconColor || 'currentColor'\">\n </cps-icon>\n </div>\n <span class=\"cps-dialog-header-title\">{{ config.headerTitle }}</span>\n <div class=\"cps-dialog-header-info-circle\">\n <cps-info-circle\n *ngIf=\"config.headerInfoTooltip\"\n size=\"small\"\n [tooltipPosition]=\"config.headerInfoTooltipPosition || 'top'\"\n [tooltipText]=\"config.headerInfoTooltip\">\n </cps-info-circle>\n </div>\n </div>\n <div class=\"cps-dialog-header-action-buttons\">\n <cps-button\n *ngIf=\"maximizable\"\n class=\"cps-dialog-header-action-button\"\n [icon]=\"maximized ? 'minimize' : 'maximize'\"\n size=\"small\"\n width=\"32\"\n color=\"graphite\"\n type=\"borderless\"\n (clicked)=\"toggleMaximized()\">\n </cps-button>\n <cps-button\n *ngIf=\"config.showCloseBtn !== false\"\n class=\"cps-dialog-header-action-button\"\n icon=\"close-x-2\"\n size=\"small\"\n width=\"32\"\n color=\"graphite\"\n type=\"borderless\"\n (clicked)=\"hide()\">\n </cps-button>\n </div>\n </div>\n <div\n #content\n class=\"cps-dialog-content\"\n [ngStyle]=\"config.contentStyle\"\n [class]=\"config.contentStyleClass || ''\">\n <ng-template cpsDialogContent></ng-template>\n </div>\n </div>\n</div>\n", styles: [".cps-dialog-mask{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;pointer-events:none}.cps-dialog-mask.cps-dialog-overlay{pointer-events:auto}.cps-dialog-overlay-enter{animation:cps-dialog-overlay-enter-animation .15s forwards}.cps-dialog-overlay-leave{animation:cps-dialog-overlay-leave-animation .15s forwards}.cps-dialog-overlay{background-color:#0003;transition-duration:.2s}@keyframes cps-dialog-overlay-enter-animation{0%{background-color:transparent}to{background-color:#0003}}@keyframes cps-dialog-overlay-leave-animation{0%{background-color:#0003}to{background-color:transparent}}.cps-dialog{box-sizing:border-box;display:flex;flex-direction:column;pointer-events:auto;transform:scale(1);position:relative;border-radius:4px;box-shadow:0 1px 3px #0000004d;border:0 none;font-family:Source Sans Pro,sans-serif;font-size:1rem;font-weight:400}.cps-dialog .cps-dialog-header{overflow:hidden;border-bottom:0 none;background:#ffffff;color:var(--cps-color-text-dark);padding:1rem;border-top-right-radius:4px;border-top-left-radius:4px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.cps-dialog .cps-dialog-header.cps-dialog-header-left-bordered{border-left:4px solid var(--cps-color-surprise)}.cps-dialog .cps-dialog-header.cps-dialog-header-bottom-bordered{border-bottom:1px solid var(--cps-color-line-mid)}.cps-dialog .cps-dialog-header .cps-dialog-header-left{display:flex;align-items:center}.cps-dialog .cps-dialog-header .cps-dialog-header-left .cps-dialog-header-icon{margin-right:8px;display:flex}.cps-dialog .cps-dialog-header .cps-dialog-header-left .cps-dialog-header-title{cursor:default;font-weight:700;font-size:1.25rem}.cps-dialog .cps-dialog-header .cps-dialog-header-left .cps-dialog-header-info-circle{margin-left:8px;cursor:default;display:flex}.cps-dialog .cps-dialog-header .cps-dialog-header-left .cps-dialog-header-info-circle cps-info-circle{margin-top:2px}.cps-dialog .cps-dialog-content{background:#ffffff;color:var(--cps-color-text-dark);padding:1rem}.cps-dialog .cps-dialog-content:last-of-type{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.cps-dialog-content{overflow-y:auto;flex-grow:1}.cps-dialog-dragging .cps-dialog-header{background-color:var(--cps-color-highlight-active)!important}.cps-dialog-draggable .cps-dialog-header{cursor:move}.cps-dialog-draggable .cps-dialog-header:hover{background-color:var(--cps-color-highlight-hover)}.cps-dialog-draggable .cps-dialog-header .cps-dialog-header-left .cps-dialog-header-title{cursor:unset}.cps-dialog .cps-dialog-header-action-buttons{display:flex;align-items:center}.cps-dialog-top .cps-dialog,.cps-dialog-bottom .cps-dialog,.cps-dialog-left .cps-dialog,.cps-dialog-right .cps-dialog,.cps-dialog-top-left .cps-dialog,.cps-dialog-top-right .cps-dialog,.cps-dialog-bottom-left .cps-dialog,.cps-dialog-bottom-right .cps-dialog{margin:.75rem;transform:translateZ(0)}.cps-dialog-maximized{transition:none;transform:none;width:100vw!important;height:100vh!important;top:0!important;left:0!important;max-height:100%;height:100%}.cps-dialog-maximized .cps-dialog-content{flex-grow:1;border-radius:0!important}.cps-dialog-maximized .cps-dialog-header{border-radius:0!important}.cps-dialog-left{justify-content:flex-start}.cps-dialog-right{justify-content:flex-end}.cps-dialog-top{align-items:flex-start}.cps-dialog-top-left{justify-content:flex-start;align-items:flex-start}.cps-dialog-top-right{justify-content:flex-end;align-items:flex-start}.cps-dialog-bottom{align-items:flex-end}.cps-dialog-bottom-left{justify-content:flex-start;align-items:flex-end}.cps-dialog-bottom-right{justify-content:flex-end;align-items:flex-end}.cps-dialog .cps-dialog-resizable-handle{position:absolute;display:block;cursor:nwse-resize;width:12px;height:12px;right:0;bottom:0;overflow:hidden}.cps-dialog .cps-dialog-resizable-handle:after{content:\"\";position:absolute;display:block;width:40px;height:0;box-shadow:0 0 0 1px var(--cps-color-calm),0 7px 0 1px var(--cps-color-calm),0 14px 0 1px var(--cps-color-calm);transform:translate(-50%,-50%) rotate(-45deg) scale(.5);top:50%;left:50%}.cps-unselectable-text{-webkit-user-select:none;user-select:none}.cps-overflow-hidden{overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: SharedModule }, { kind: "directive", type: CpsDialogContentDirective, selector: "[cpsDialogContent]" }, { kind: "component", type: CpsButtonComponent, selector: "cps-button", inputs: ["color", "contentColor", "type", "label", "icon", "iconPosition", "size", "width", "height", "disabled", "loading"], outputs: ["clicked"] }, { kind: "component", type: CpsInfoCircleComponent, selector: "cps-info-circle", inputs: ["size", "tooltipText", "tooltipPosition", "tooltipContentClass", "tooltipMaxWidth", "tooltipPersistent"] }, { kind: "component", type: CpsIconComponent, selector: "cps-icon", inputs: ["icon", "size", "color"] }], animations: [
|
|
427
|
+
trigger('animation', [
|
|
428
|
+
transition('void => visible', [useAnimation(showAnimation)]),
|
|
429
|
+
transition('visible => void', [useAnimation(hideAnimation)])
|
|
430
|
+
])
|
|
431
|
+
], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
|
|
432
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CpsDialogComponent, decorators: [{
|
|
433
|
+
type: Component,
|
|
434
|
+
args: [{ selector: 'cps-dialog', standalone: true, imports: [
|
|
435
|
+
CommonModule,
|
|
436
|
+
SharedModule,
|
|
437
|
+
CpsDialogContentDirective,
|
|
438
|
+
CpsButtonComponent,
|
|
439
|
+
CpsInfoCircleComponent,
|
|
440
|
+
CpsIconComponent
|
|
441
|
+
], animations: [
|
|
442
|
+
trigger('animation', [
|
|
443
|
+
transition('void => visible', [useAnimation(showAnimation)]),
|
|
444
|
+
transition('visible => void', [useAnimation(hideAnimation)])
|
|
445
|
+
])
|
|
446
|
+
], changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, template: "<div\n #mask\n [ngClass]=\"{\n 'cps-dialog-mask': true,\n 'cps-dialog-overlay cps-dialog-overlay-enter': config.modal !== false,\n 'cps-dialog-left': position === 'left',\n 'cps-dialog-right': position === 'right',\n 'cps-dialog-top': position === 'top',\n 'cps-dialog-bottom': position === 'bottom',\n 'cps-dialog-top-left': position === 'topleft' || position === 'top-left',\n 'cps-dialog-top-right': position === 'topright' || position === 'top-right',\n 'cps-dialog-bottom-left':\n position === 'bottomleft' || position === 'bottom-left',\n 'cps-dialog-bottom-right':\n position === 'bottomright' || position === 'bottom-right'\n }\"\n [class]=\"config.maskStyleClass || ''\">\n <div\n #container\n [ngClass]=\"{\n 'cps-dialog': true,\n 'cps-dialog-resizable': resizable,\n 'cps-dialog-draggable': draggable && !maximized,\n 'cps-dialog-dragging': dragging,\n 'cps-dialog-maximized': maximized\n }\"\n [ngStyle]=\"config.style\"\n [class]=\"config.styleClass || ''\"\n [@animation]=\"{\n value: 'visible',\n params: {\n transform: transformOptions,\n transition:\n config.transitionOptions || '150ms cubic-bezier(0, 0, 0.2, 1)'\n }\n }\"\n (@animation.start)=\"onAnimationStart($event)\"\n (@animation.done)=\"onAnimationEnd($event)\"\n role=\"dialog\"\n *ngIf=\"visible\"\n [style.width]=\"config.width\"\n [style.height]=\"config.height\"\n [style.minWidth]=\"config.minWidth\"\n [style.minHeight]=\"config.minHeight\"\n [style.maxWidth]=\"maximized ? '' : config.maxWidth\"\n [style.maxHeight]=\"maximized ? '' : config.maxHeight\">\n <div\n *ngIf=\"resizable && !maximized\"\n class=\"cps-dialog-resizable-handle\"\n style=\"z-index: 90\"\n (mousedown)=\"initResize($event)\"></div>\n <div\n #header\n *ngIf=\"config.showHeader !== false\"\n class=\"cps-dialog-header\"\n [ngClass]=\"{\n 'cps-dialog-header-left-bordered':\n config.showHeaderLeftBorder !== false,\n 'cps-dialog-header-bottom-bordered':\n config.showHeaderBottomBorder !== false\n }\"\n (mousedown)=\"initDrag($event)\">\n <div class=\"cps-dialog-header-left\">\n <div class=\"cps-dialog-header-icon\">\n <cps-icon\n *ngIf=\"config.headerIcon\"\n [icon]=\"config.headerIcon\"\n [color]=\"config.headerIconColor || 'currentColor'\">\n </cps-icon>\n </div>\n <span class=\"cps-dialog-header-title\">{{ config.headerTitle }}</span>\n <div class=\"cps-dialog-header-info-circle\">\n <cps-info-circle\n *ngIf=\"config.headerInfoTooltip\"\n size=\"small\"\n [tooltipPosition]=\"config.headerInfoTooltipPosition || 'top'\"\n [tooltipText]=\"config.headerInfoTooltip\">\n </cps-info-circle>\n </div>\n </div>\n <div class=\"cps-dialog-header-action-buttons\">\n <cps-button\n *ngIf=\"maximizable\"\n class=\"cps-dialog-header-action-button\"\n [icon]=\"maximized ? 'minimize' : 'maximize'\"\n size=\"small\"\n width=\"32\"\n color=\"graphite\"\n type=\"borderless\"\n (clicked)=\"toggleMaximized()\">\n </cps-button>\n <cps-button\n *ngIf=\"config.showCloseBtn !== false\"\n class=\"cps-dialog-header-action-button\"\n icon=\"close-x-2\"\n size=\"small\"\n width=\"32\"\n color=\"graphite\"\n type=\"borderless\"\n (clicked)=\"hide()\">\n </cps-button>\n </div>\n </div>\n <div\n #content\n class=\"cps-dialog-content\"\n [ngStyle]=\"config.contentStyle\"\n [class]=\"config.contentStyleClass || ''\">\n <ng-template cpsDialogContent></ng-template>\n </div>\n </div>\n</div>\n", styles: [".cps-dialog-mask{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;pointer-events:none}.cps-dialog-mask.cps-dialog-overlay{pointer-events:auto}.cps-dialog-overlay-enter{animation:cps-dialog-overlay-enter-animation .15s forwards}.cps-dialog-overlay-leave{animation:cps-dialog-overlay-leave-animation .15s forwards}.cps-dialog-overlay{background-color:#0003;transition-duration:.2s}@keyframes cps-dialog-overlay-enter-animation{0%{background-color:transparent}to{background-color:#0003}}@keyframes cps-dialog-overlay-leave-animation{0%{background-color:#0003}to{background-color:transparent}}.cps-dialog{box-sizing:border-box;display:flex;flex-direction:column;pointer-events:auto;transform:scale(1);position:relative;border-radius:4px;box-shadow:0 1px 3px #0000004d;border:0 none;font-family:Source Sans Pro,sans-serif;font-size:1rem;font-weight:400}.cps-dialog .cps-dialog-header{overflow:hidden;border-bottom:0 none;background:#ffffff;color:var(--cps-color-text-dark);padding:1rem;border-top-right-radius:4px;border-top-left-radius:4px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.cps-dialog .cps-dialog-header.cps-dialog-header-left-bordered{border-left:4px solid var(--cps-color-surprise)}.cps-dialog .cps-dialog-header.cps-dialog-header-bottom-bordered{border-bottom:1px solid var(--cps-color-line-mid)}.cps-dialog .cps-dialog-header .cps-dialog-header-left{display:flex;align-items:center}.cps-dialog .cps-dialog-header .cps-dialog-header-left .cps-dialog-header-icon{margin-right:8px;display:flex}.cps-dialog .cps-dialog-header .cps-dialog-header-left .cps-dialog-header-title{cursor:default;font-weight:700;font-size:1.25rem}.cps-dialog .cps-dialog-header .cps-dialog-header-left .cps-dialog-header-info-circle{margin-left:8px;cursor:default;display:flex}.cps-dialog .cps-dialog-header .cps-dialog-header-left .cps-dialog-header-info-circle cps-info-circle{margin-top:2px}.cps-dialog .cps-dialog-content{background:#ffffff;color:var(--cps-color-text-dark);padding:1rem}.cps-dialog .cps-dialog-content:last-of-type{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.cps-dialog-content{overflow-y:auto;flex-grow:1}.cps-dialog-dragging .cps-dialog-header{background-color:var(--cps-color-highlight-active)!important}.cps-dialog-draggable .cps-dialog-header{cursor:move}.cps-dialog-draggable .cps-dialog-header:hover{background-color:var(--cps-color-highlight-hover)}.cps-dialog-draggable .cps-dialog-header .cps-dialog-header-left .cps-dialog-header-title{cursor:unset}.cps-dialog .cps-dialog-header-action-buttons{display:flex;align-items:center}.cps-dialog-top .cps-dialog,.cps-dialog-bottom .cps-dialog,.cps-dialog-left .cps-dialog,.cps-dialog-right .cps-dialog,.cps-dialog-top-left .cps-dialog,.cps-dialog-top-right .cps-dialog,.cps-dialog-bottom-left .cps-dialog,.cps-dialog-bottom-right .cps-dialog{margin:.75rem;transform:translateZ(0)}.cps-dialog-maximized{transition:none;transform:none;width:100vw!important;height:100vh!important;top:0!important;left:0!important;max-height:100%;height:100%}.cps-dialog-maximized .cps-dialog-content{flex-grow:1;border-radius:0!important}.cps-dialog-maximized .cps-dialog-header{border-radius:0!important}.cps-dialog-left{justify-content:flex-start}.cps-dialog-right{justify-content:flex-end}.cps-dialog-top{align-items:flex-start}.cps-dialog-top-left{justify-content:flex-start;align-items:flex-start}.cps-dialog-top-right{justify-content:flex-end;align-items:flex-start}.cps-dialog-bottom{align-items:flex-end}.cps-dialog-bottom-left{justify-content:flex-start;align-items:flex-end}.cps-dialog-bottom-right{justify-content:flex-end;align-items:flex-end}.cps-dialog .cps-dialog-resizable-handle{position:absolute;display:block;cursor:nwse-resize;width:12px;height:12px;right:0;bottom:0;overflow:hidden}.cps-dialog .cps-dialog-resizable-handle:after{content:\"\";position:absolute;display:block;width:40px;height:0;box-shadow:0 0 0 1px var(--cps-color-calm),0 7px 0 1px var(--cps-color-calm),0 14px 0 1px var(--cps-color-calm);transform:translate(-50%,-50%) rotate(-45deg) scale(.5);top:50%;left:50%}.cps-unselectable-text{-webkit-user-select:none;user-select:none}.cps-overflow-hidden{overflow:hidden}\n"] }]
|
|
447
|
+
}], ctorParameters: function () { return [{ type: Document, decorators: [{
|
|
448
|
+
type: Inject,
|
|
449
|
+
args: [DOCUMENT]
|
|
450
|
+
}] }, { type: undefined, decorators: [{
|
|
451
|
+
type: Inject,
|
|
452
|
+
args: [PLATFORM_ID]
|
|
453
|
+
}] }, { type: i1.CpsDialogRef }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i2.CpsDialogConfig }, { type: i0.NgZone }, { type: i3.PrimeNGConfig }]; }, propDecorators: { insertionPoint: [{
|
|
454
|
+
type: ViewChild,
|
|
455
|
+
args: [CpsDialogContentDirective]
|
|
456
|
+
}], maskViewChild: [{
|
|
457
|
+
type: ViewChild,
|
|
458
|
+
args: ['mask']
|
|
459
|
+
}], contentViewChild: [{
|
|
460
|
+
type: ViewChild,
|
|
461
|
+
args: ['content']
|
|
462
|
+
}], headerViewChild: [{
|
|
463
|
+
type: ViewChild,
|
|
464
|
+
args: ['header']
|
|
465
|
+
}] } });
|
|
466
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcHMtdWkta2l0L3NyYy9saWIvc2VydmljZXMvY3BzLWRpYWxvZy9pbnRlcm5hbC9jb21wb25lbnRzL2Nwcy1kaWFsb2cvY3BzLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcHMtdWkta2l0L3NyYy9saWIvc2VydmljZXMvY3BzLWRpYWxvZy9pbnRlcm5hbC9jb21wb25lbnRzL2Nwcy1kaWFsb2cvY3BzLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsT0FBTyxFQUNQLFNBQVMsRUFFVCxLQUFLLEVBQ0wsVUFBVSxFQUNWLE9BQU8sRUFDUCxZQUFZLEVBQ2IsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVFLE9BQU8sRUFFTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUdULFlBQVksRUFDWixNQUFNLEVBR04sV0FBVyxFQUdYLFNBQVMsRUFDVCxpQkFBaUIsRUFFbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFpQixZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRzFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFFQUFxRSxDQUFDO0FBQzdHLE9BQU8sRUFB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S0FDdEIsZ0JBQWdCLDBFQUlOO1FBQ1YsT0FBTyxDQUFDLFdBQVcsRUFBRTtZQUNuQixVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztZQUM1RCxVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztTQUM3RCxDQUFDO0tBQ0g7MkZBSVUsa0JBQWtCO2tCQXRCOUIsU0FBUzsrQkFDRSxZQUFZLGNBQ1YsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osWUFBWTt3QkFDWix5QkFBeUI7d0JBQ3pCLGtCQUFrQjt3QkFDbEIsc0JBQXNCO3dCQUN0QixnQkFBZ0I7cUJBQ2pCLGNBR1c7d0JBQ1YsT0FBTyxDQUFDLFdBQVcsRUFBRTs0QkFDbkIsVUFBVSxDQUFDLGlCQUFpQixFQUFFLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7NEJBQzVELFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO3lCQUM3RCxDQUFDO3FCQUNILG1CQUNnQix1QkFBdUIsQ0FBQyxPQUFPLGlCQUNqQyxpQkFBaUIsQ0FBQyxJQUFJOzswQkF1R2xDLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsTUFBTTsyQkFBQyxXQUFXOzhNQWxGckIsY0FBYztzQkFEYixTQUFTO3VCQUFDLHlCQUF5QjtnQkFHakIsYUFBYTtzQkFBL0IsU0FBUzt1QkFBQyxNQUFNO2dCQUNLLGdCQUFnQjtzQkFBckMsU0FBUzt1QkFBQyxTQUFTO2dCQUNDLGVBQWU7c0JBQW5DLFNBQVM7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFuaW1hdGUsXG4gIGFuaW1hdGlvbixcbiAgQW5pbWF0aW9uRXZlbnQsXG4gIHN0eWxlLFxuICB0cmFuc2l0aW9uLFxuICB0cmlnZ2VyLFxuICB1c2VBbmltYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIERPQ1VNRU5ULCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29tcG9uZW50UmVmLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIFBMQVRGT1JNX0lELFxuICBSZW5kZXJlcjIsXG4gIFR5cGUsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIFZpZXdSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcmltZU5HQ29uZmlnLCBTaGFyZWRNb2R1bGUgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBEb21IYW5kbGVyIH0gZnJvbSAncHJpbWVuZy9kb20nO1xuaW1wb3J0IHsgWkluZGV4VXRpbHMgfSBmcm9tICdwcmltZW5nL3V0aWxzJztcbmltcG9ydCB7IENwc0RpYWxvZ0NvbnRlbnREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2Nwcy1kaWFsb2ctY29udGVudC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ3BzRGlhbG9nQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY3BzLWRpYWxvZy1jb25maWcnO1xuaW1wb3J0IHsgQ3BzRGlhbG9nUmVmIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY3BzLWRpYWxvZy1yZWYnO1xuaW1wb3J0IHsgQ3BzQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29tcG9uZW50cy9jcHMtYnV0dG9uL2Nwcy1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IENwc0luZm9DaXJjbGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9jb21wb25lbnRzL2Nwcy1pbmZvLWNpcmNsZS9jcHMtaW5mby1jaXJjbGUuY29tcG9uZW50JztcbmltcG9ydCB7IENwc0ljb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9jb21wb25lbnRzL2Nwcy1pY29uL2Nwcy1pY29uLmNvbXBvbmVudCc7XG5cbmNvbnN0IHNob3dBbmltYXRpb24gPSBhbmltYXRpb24oW1xuICBzdHlsZSh7IHRyYW5zZm9ybTogJ3t7dHJhbnNmb3JtfX0nLCBvcGFjaXR5OiAwIH0pLFxuICBhbmltYXRlKCd7e3RyYW5zaXRpb259fScsIHN0eWxlKHsgdHJhbnNmb3JtOiAnbm9uZScsIG9wYWNpdHk6IDEgfSkpXG5dKTtcblxuY29uc3QgaGlkZUFuaW1hdGlvbiA9IGFuaW1hdGlvbihbXG4gIGFuaW1hdGUoJ3t7dHJhbnNpdGlvbn19Jywgc3R5bGUoeyB0cmFuc2Zvcm06ICd7e3RyYW5zZm9ybX19Jywgb3BhY2l0eTogMCB9KSlcbl0pO1xuXG50eXBlIE51bGxhYmxlPFQgPSB2b2lkPiA9IFQgfCBudWxsIHwgdW5kZWZpbmVkO1xudHlwZSBWb2lkTGlzdGVuZXIgPSAoKSA9PiB2b2lkIHwgbnVsbCB8IHVuZGVmaW5lZDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3BzLWRpYWxvZycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU2hhcmVkTW9kdWxlLFxuICAgIENwc0RpYWxvZ0NvbnRlbnREaXJlY3RpdmUsXG4gICAgQ3BzQnV0dG9uQ29tcG9uZW50LFxuICAgIENwc0luZm9DaXJjbGVDb21wb25lbnQsXG4gICAgQ3BzSWNvbkNvbXBvbmVudFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vY3BzLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Nwcy1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ2FuaW1hdGlvbicsIFtcbiAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gdmlzaWJsZScsIFt1c2VBbmltYXRpb24oc2hvd0FuaW1hdGlvbildKSxcbiAgICAgIHRyYW5zaXRpb24oJ3Zpc2libGUgPT4gdm9pZCcsIFt1c2VBbmltYXRpb24oaGlkZUFuaW1hdGlvbildKVxuICAgIF0pXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBDcHNEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICB2aXNpYmxlID0gdHJ1ZTtcblxuICBjb21wb25lbnRSZWY6IE51bGxhYmxlPENvbXBvbmVudFJlZjxhbnk+PjtcblxuICByZXNpemluZzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICBkcmFnZ2luZzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICBtYXhpbWl6ZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgX3N0eWxlOiBhbnkgPSB7fTtcblxuICBvcmlnaW5hbFN0eWxlOiBhbnk7XG5cbiAgbGFzdFBhZ2VYOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgbGFzdFBhZ2VZOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZChDcHNEaWFsb2dDb250ZW50RGlyZWN0aXZlKVxuICBpbnNlcnRpb25Qb2ludDogTnVsbGFibGU8Q3BzRGlhbG9nQ29udGVudERpcmVjdGl2ZT47XG5cbiAgQFZpZXdDaGlsZCgnbWFzaycpIG1hc2tWaWV3Q2hpbGQ6IE51bGxhYmxlPEVsZW1lbnRSZWY+O1xuICBAVmlld0NoaWxkKCdjb250ZW50JykgY29udGVudFZpZXdDaGlsZDogTnVsbGFibGU8RWxlbWVudFJlZj47XG4gIEBWaWV3Q2hpbGQoJ2hlYWRlcicpIGhlYWRlclZpZXdDaGlsZDogTnVsbGFibGU8RWxlbWVudFJlZj47XG5cbiAgY2hpbGRDb21wb25lbnRUeXBlOiBOdWxsYWJsZTxUeXBlPGFueT4+O1xuXG4gIGNvbnRhaW5lcjogTnVsbGFibGU8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIHdyYXBwZXI6IE51bGxhYmxlPEhUTUxFbGVtZW50PjtcblxuICBkb2N1bWVudEVzY2FwZUxpc3RlbmVyITogVm9pZExpc3RlbmVyIHwgbnVsbDtcblxuICBtYXNrQ2xpY2tMaXN0ZW5lciE6IFZvaWRMaXN0ZW5lciB8IG51bGw7XG5cbiAgdHJhbnNmb3JtT3B0aW9ucyA9ICdzY2FsZSgwLjcpJztcblxuICBkb2N1bWVudFJlc2l6ZUxpc3RlbmVyITogVm9pZExpc3RlbmVyIHwgbnVsbDtcblxuICBkb2N1bWVudFJlc2l6ZUVuZExpc3RlbmVyITogVm9pZExpc3RlbmVyIHwgbnVsbDtcblxuICBkb2N1bWVudERyYWdMaXN0ZW5lciE6IFZvaWRMaXN0ZW5lciB8IG51bGw7XG5cbiAgZG9jdW1lbnREcmFnRW5kTGlzdGVuZXIhOiBWb2lkTGlzdGVuZXIgfCBudWxsO1xuXG4gIF9vcGVuU3RhdGVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBfZHJhZ1N0YXJ0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG4gIF9kcmFnRW5kZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG4gIF9yZXNpemVTdGFydGVkID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuICBfcmVzaXplRW5kZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG4gIF9tYXhpbWl6ZWRTdGF0ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgZ2V0IG1pblgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcubWluWCA/IHRoaXMuY29uZmlnLm1pblggOiAwO1xuICB9XG5cbiAgZ2V0IG1pblkoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcubWluWSA/IHRoaXMuY29uZmlnLm1pblkgOiAwO1xuICB9XG5cbiAgZ2V0IGtlZXBJblZpZXdwb3J0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5rZWVwSW5WaWV3cG9ydCB8fCBmYWxzZTtcbiAgfVxuXG4gIGdldCBtYXhpbWl6YWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcubWF4aW1pemFibGUgfHwgZmFsc2U7XG4gIH1cblxuICBnZXQgZHJhZ2dhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5kcmFnZ2FibGUgfHwgZmFsc2U7XG4gIH1cblxuICBnZXQgcmVzaXphYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXNpemFibGUgfHwgZmFsc2U7XG4gIH1cblxuICBnZXQgc3R5bGUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fc3R5bGU7XG4gIH1cblxuICBzZXQgc3R5bGUodmFsdWU6IGFueSkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5fc3R5bGUgPSB7IC4uLnZhbHVlIH07XG4gICAgICB0aGlzLm9yaWdpbmFsU3R5bGUgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBnZXQgcG9zaXRpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucG9zaXRpb24gfHwgJyc7XG4gIH1cblxuICBnZXQgcGFyZW50KCkge1xuICAgIGNvbnN0IGRvbUVsZW1lbnRzID0gQXJyYXkuZnJvbShcbiAgICAgIHRoaXMuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnY3BzLWRpYWxvZycpXG4gICAgKTtcbiAgICByZXR1cm4gZG9tRWxlbWVudHMubGVuZ3RoID4gMSA/IGRvbUVsZW1lbnRzLnBvcCgpIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtY29uc3RydWN0b3JcbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBhbnksXG4gICAgcHJpdmF0ZSBfZGlhbG9nUmVmOiBDcHNEaWFsb2dSZWYsXG4gICAgcHJpdmF0ZSBfY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHB1YmxpYyBjb25maWc6IENwc0RpYWxvZ0NvbmZpZyxcbiAgICBwdWJsaWMgem9uZTogTmdab25lLFxuICAgIHB1YmxpYyBwcmltZU5HQ29uZmlnOiBQcmltZU5HQ29uZmlnXG4gICkge31cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICB0aGlzLmxvYWRDaGlsZENvbXBvbmVudCh0aGlzLmNoaWxkQ29tcG9uZW50VHlwZSEpO1xuXG4gICAgaWYgKHRoaXMuY29uZmlnLm1heGltaXplZCAmJiB0aGlzLm1heGltaXphYmxlKSB7XG4gICAgICB0aGlzLnRvZ2dsZU1heGltaXplZCgpO1xuICAgIH1cbiAgICB0aGlzLl9jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBsb2FkQ2hpbGRDb21wb25lbnQoY29tcG9uZW50VHlwZTogVHlwZTxhbnk+KSB7XG4gICAgY29uc3Qgdmlld0NvbnRhaW5lclJlZiA9IHRoaXMuaW5zZXJ0aW9uUG9pbnQ/LnZpZXdDb250YWluZXJSZWY7XG4gICAgdmlld0NvbnRhaW5lclJlZj8uY2xlYXIoKTtcblxuICAgIHRoaXMuY29tcG9uZW50UmVmID0gdmlld0NvbnRhaW5lclJlZj8uY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudFR5cGUpO1xuICAgIGlmICh0aGlzLl9kaWFsb2dSZWYpXG4gICAgICB0aGlzLl9kaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UgPSB0aGlzLmNvbXBvbmVudFJlZj8uaW5zdGFuY2U7XG4gIH1cblxuICBtb3ZlT25Ub3AoKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLmF1dG9aSW5kZXggIT09IGZhbHNlKSB7XG4gICAgICBaSW5kZXhVdGlscy5zZXQoXG4gICAgICAgICdtb2RhbCcsXG4gICAgICAgIHRoaXMuY29udGFpbmVyLFxuICAgICAgICAodGhpcy5jb25maWcuYmFzZVpJbmRleCB8fCAwKSArIHRoaXMucHJpbWVOR0NvbmZpZy56SW5kZXgubW9kYWxcbiAgICAgICk7XG4gICAgICAodGhpcy53cmFwcGVyIGFzIEhUTUxFbGVtZW50KS5zdHlsZS56SW5kZXggPSBTdHJpbmcoXG4gICAgICAgIHBhcnNlSW50KCh0aGlzLmNvbnRhaW5lciBhcyBIVE1MRGl2RWxlbWVudCkuc3R5bGUuekluZGV4LCAxMCkgLSAxXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIG9uQW5pbWF0aW9uU3RhcnQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KSB7XG4gICAgc3dpdGNoIChldmVudC50b1N0YXRlKSB7XG4gICAgICBjYXNlICd2aXNpYmxlJzpcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSBldmVudC5lbGVtZW50O1xuICAgICAgICB0aGlzLndyYXBwZXIgPSAodGhpcy5jb250YWluZXIgYXMgSFRNTERpdkVsZW1lbnQpLnBhcmVudEVsZW1lbnQ7XG4gICAgICAgIHRoaXMubW92ZU9uVG9wKCk7XG4gICAgICAgIGlmICh0aGlzLnBhcmVudCkge1xuICAgICAgICAgIHRoaXMudW5iaW5kR2xvYmFsTGlzdGVuZXJzKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5iaW5kR2xvYmFsTGlzdGVuZXJzKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLm1vZGFsICE9PSBmYWxzZSkge1xuICAgICAgICAgIHRoaXMuZW5hYmxlTW9kYWxpdHkoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICd2b2lkJzpcbiAgICAgICAgaWYgKHRoaXMud3JhcHBlciAmJiB0aGlzLmNvbmZpZy5tb2RhbCAhPT0gZmFsc2UpIHtcbiAgICAgICAgICBEb21IYW5kbGVyLmFkZENsYXNzKHRoaXMud3JhcHBlciwgJ2Nwcy1kaWFsb2ctb3ZlcmxheS1sZWF2ZScpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIG9uQW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCkge1xuICAgIGlmIChldmVudC50b1N0YXRlID09PSAndm9pZCcpIHtcbiAgICAgIHRoaXMub25Db250YWluZXJEZXN0cm95KCk7XG4gICAgICB0aGlzLl9kaWFsb2dSZWYuZGVzdHJveSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9vcGVuU3RhdGVDaGFuZ2VkLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBvbkNvbnRhaW5lckRlc3Ryb3koKSB7XG4gICAgdGhpcy51bmJpbmRHbG9iYWxMaXN0ZW5lcnMoKTtcblxuICAgIGlmICh0aGlzLmNvbnRhaW5lciAmJiB0aGlzLmNvbmZpZy5hdXRvWkluZGV4ICE9PSBmYWxzZSkge1xuICAgICAgWkluZGV4VXRpbHMuY2xlYXIodGhpcy5jb250YWluZXIpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbmZpZy5tb2RhbCAhPT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuZGlzYWJsZU1vZGFsaXR5KCk7XG4gICAgfVxuICAgIHRoaXMuY29udGFpbmVyID0gbnVsbDtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIGlmICh0aGlzLmNvbmZpZz8uZGlzYWJsZUNsb3NlIHx8IHRoaXMuX2RpYWxvZ1JlZj8uZGlzYWJsZUNsb3NlKSByZXR1cm47XG5cbiAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnPy5kaXNhYmxlQ2xvc2UpIHJldHVybjtcblxuICAgIGlmICh0aGlzLl9kaWFsb2dSZWYpIHtcbiAgICAgIGlmICghdGhpcy5fZGlhbG9nUmVmLmRpc2FibGVDbG9zZSkgdGhpcy5fZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgZW5hYmxlTW9kYWxpdHkoKSB7XG4gICAgaWYgKCF0aGlzLmNvbmZpZy5kaXNhYmxlQ2xvc2UpIHtcbiAgICAgIHRoaXMubWFza0NsaWNrTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgdGhpcy53cmFwcGVyLFxuICAgICAgICAnbW91c2Vkb3duJyxcbiAgICAgICAgKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy53cmFwcGVyICYmIHRoaXMud3JhcHBlci5pc1NhbWVOb2RlKGV2ZW50LnRhcmdldCkpIHtcbiAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb25maWcubW9kYWwgIT09IGZhbHNlKSB7XG4gICAgICBEb21IYW5kbGVyLmFkZENsYXNzKHRoaXMuZG9jdW1lbnQuYm9keSwgJ2Nwcy1vdmVyZmxvdy1oaWRkZW4nKTtcbiAgICB9XG4gIH1cblxuICBkaXNhYmxlTW9kYWxpdHkoKSB7XG4gICAgaWYgKHRoaXMud3JhcHBlcikge1xuICAgICAgaWYgKCF0aGlzLmNvbmZpZy5kaXNhYmxlQ2xvc2UpIHtcbiAgICAgICAgdGhpcy51bmJpbmRNYXNrQ2xpY2tMaXN0ZW5lcigpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5jb25maWcubW9kYWwgIT09IGZhbHNlKSB7XG4gICAgICAgIERvbUhhbmRsZXIucmVtb3ZlQ2xhc3ModGhpcy5kb2N1bWVudC5ib2R5LCAnY3BzLW92ZXJmbG93LWhpZGRlbicpO1xuICAgICAgfVxuXG4gICAgICBpZiAoISh0aGlzLl9jZFJlZiBhcyBWaWV3UmVmKS5kZXN0cm95ZWQpIHtcbiAgICAgICAgdGhpcy5fY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZvY3VzKCkge1xuICAgIGNvbnN0IGZvY3VzYWJsZSA9IERvbUhhbmRsZXIuZ2V0Rm9jdXNhYmxlRWxlbWVudHMoXG4gICAgICB0aGlzLmNvbnRhaW5lciBhcyBIVE1MRGl2RWxlbWVudFxuICAgICk7XG4gICAgaWYgKGZvY3VzYWJsZSAmJiBmb2N1c2FibGUubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiBmb2N1c2FibGVbMF0uZm9jdXMoKSwgNSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVNYXhpbWl6ZWQodmFsdWU/OiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLm1heGltaXphYmxlKSByZXR1cm47XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICBpZiAodmFsdWUgPT09IHRoaXMubWF4aW1pemVkIHx8ICghdmFsdWUgJiYgIXRoaXMubWF4aW1pemVkKSkgcmV0dXJuO1xuICAgICAgdGhpcy5tYXhpbWl6ZWQgPSB2YWx1ZTtcbiAgICB9IGVsc2UgdGhpcy5tYXhpbWl6ZWQgPSAhdGhpcy5tYXhpbWl6ZWQ7XG5cbiAgICBpZiAodGhpcy5tYXhpbWl6ZWQpIHtcbiAgICAgIERvbUhhbmRsZXIuYWRkQ2xhc3ModGhpcy5kb2N1bWVudC5ib2R5LCAnY3BzLW92ZXJmbG93LWhpZGRlbicpO1xuICAgIH0gZWxzZSB7XG4gICAgICBEb21IYW5kbGVyLnJlbW92ZUNsYXNzKHRoaXMuZG9jdW1lbnQuYm9keSwgJ2Nwcy1vdmVyZmxvdy1oaWRkZW4nKTtcbiAgICB9XG5cbiAgICB0aGlzLl9tYXhpbWl6ZWRTdGF0ZUNoYW5nZWQuZW1pdCh0aGlzLm1heGltaXplZCk7XG4gIH1cblxuICBpbml0UmVzaXplKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKHRoaXMucmVzaXphYmxlKSB7XG4gICAgICBpZiAoIXRoaXMuZG9jdW1lbnRSZXNpemVMaXN0ZW5lcikge1xuICAgICAgICB0aGlzLmJpbmREb2N1bWVudFJlc2l6ZUxpc3RlbmVycygpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnJlc2l6aW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMubGFzdFBhZ2VYID0gZXZlbnQucGFnZVg7XG4gICAgICB0aGlzLmxhc3RQYWdlWSA9IGV2ZW50LnBhZ2VZO1xuICAgICAgRG9tSGFuZGxlci5hZGRDbGFzcyh0aGlzLmRvY3VtZW50LmJvZHksICdjcHMtdW5zZWxlY3RhYmxlLXRleHQnKTtcbiAgICAgIHRoaXMuX3Jlc2l6ZVN0YXJ0ZWQuZW1pdChldmVudCk7XG4gICAgfVxuICB9XG5cbiAgb25SZXNpemUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAodGhpcy5yZXNpemluZykge1xuICAgICAgY29uc3QgZGVsdGFYID0gZXZlbnQucGFnZVggLSAodGhpcy5sYXN0UGFnZVggYXMgbnVtYmVyKTtcbiAgICAgIGNvbnN0IGRlbHRhWSA9IGV2ZW50LnBhZ2VZIC0gKHRoaXMubGFzdFBhZ2VZIGFzIG51bWJlcik7XG4gICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IERvbUhhbmRsZXIuZ2V0T3V0ZXJXaWR0aCh0aGlzLmNvbnRhaW5lcik7XG4gICAgICBjb25zdCBjb250YWluZXJIZWlnaHQgPSBEb21IYW5kbGVyLmdldE91dGVySGVpZ2h0KHRoaXMuY29udGFpbmVyKTtcbiAgICAgIGNvbnN0IGNvbnRlbnRIZWlnaHQgPSBEb21IYW5kbGVyLmdldE91dGVySGVpZ2h0KFxuICAgICAgICAoPEVsZW1lbnRSZWY+dGhpcy5jb250ZW50Vmlld0NoaWxkKS5uYXRpdmVFbGVtZW50XG4gICAgICApO1xuICAgICAgY29uc3QgY29udGVudFdpZHRoID0gRG9tSGFuZGxlci5nZXRPdXRlcldpZHRoKFxuICAgICAgICAoPEVsZW1lbnRSZWY+dGhpcy5jb250ZW50Vmlld0NoaWxkKS5uYXRpdmVFbGVtZW50XG4gICAgICApO1xuICAgICAgY29uc3QgaGVhZGVySGVpZ2h0ID0gdGhpcy5oZWFkZXJWaWV3Q2hpbGRcbiAgICAgICAgPyBEb21IYW5kbGVyLmdldE91dGVySGVpZ2h0KFxuICAgICAgICAgICAgKDxFbGVtZW50UmVmPnRoaXMuaGVhZGVyVmlld0NoaWxkKS5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgKVxuICAgICAgICA6IDA7XG4gICAgICBjb25zdCBoZWFkZXJXaWR0aCA9IHRoaXMuaGVhZGVyVmlld0NoaWxkXG4gICAgICAgID8gRG9tSGFuZGxlci5nZXRPdXRlcldpZHRoKFxuICAgICAgICAgICAgKDxFbGVtZW50UmVmPnRoaXMuaGVhZGVyVmlld0NoaWxkKS5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgKVxuICAgICAgICA6IDA7XG4gICAgICBsZXQgbmV3V2lkdGggPSBjb250YWluZXJXaWR0aCArIGRlbHRhWDtcbiAgICAgIGxldCBuZXdIZWlnaHQgPSBjb250YWluZXJIZWlnaHQgKyBkZWx0YVk7XG4gICAgICBjb25zdCBtaW5XaWR0aCA9ICh0aGlzLmNvbnRhaW5lciBhcyBIVE1MRGl2RWxlbWVudCkuc3R5bGUubWluV2lkdGg7XG4gICAgICBjb25zdCBtaW5IZWlnaHQgPSAodGhpcy5jb250YWluZXIgYXMgSFRNTERpdkVsZW1lbnQpLnN0eWxlLm1pbkhlaWdodDtcbiAgICAgIGNvbnN0IG9mZnNldCA9ICh0aGlzLmNvbnRhaW5lciBhcyBIVE1MRGl2RWxlbWVudCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCB2aWV3cG9ydCA9IERvbUhhbmRsZXIuZ2V0Vmlld3BvcnQoKTtcbiAgICAgIGNvbnN0IGhhc0JlZW5EcmFnZ2VkID1cbiAgICAgICAgIXBhcnNlSW50KCh0aGlzLmNvbnRhaW5lciBhcyBIVE1MRGl2RWxlbWVudCkuc3R5bGUudG9wKSB8fFxuICAgICAgICAhcGFyc2VJbnQoKHRoaXMuY29udGFpbmVyIGFzIEhUTUxEaXZFbGVtZW50KS5zdHlsZS5sZWZ0KTtcblxuICAgICAgaWYgKGhhc0JlZW5EcmFnZ2VkKSB7XG4gICAgICAgIG5ld1dpZHRoICs9IGRlbHRhWDtcbiAgICAgICAgbmV3SGVpZ2h0ICs9IGRlbHRhWTtcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICAoIW1pbldpZHRoIHx8IG5ld1dpZHRoID4gcGFyc2VJbnQobWluV2lkdGgpKSAmJlxuICAgICAgICBvZmZzZXQubGVmdCArIG5ld1dpZHRoIDwgdmlld3BvcnQud2lkdGhcbiAgICAgICkge1xuICAgICAgICBjb25zdCBuZXdDb250ZW50V2lkdGggPSBjb250ZW50V2lkdGggKyBuZXdXaWR0aCAtIGNvbnRhaW5lcldpZHRoO1xuICAgICAgICBjb25zdCBuZXdIZWFkZXJXaWR0aCA9IGhlYWRlcldpZHRoICsgbmV3V2lkdGggLSBjb250YWluZXJXaWR0aDtcbiAgICAgICAgdGhpcy5fc3R5bGUud2lkdGggPVxuICAgICAgICAgIE1hdGgubWF4KG5ld1dpZHRoLCBuZXdDb250ZW50V2lkdGgsIG5ld0hlYWRlcldpZHRoKSArICdweCc7XG4gICAgICAgICh0aGlzLmNvbnRhaW5lciBhcyBIVE1MRGl2RWxlbWVudCkuc3R5bGUud2lkdGggPSB0aGlzLl9zdHlsZS53aWR0aDtcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICAoIW1pbkhlaWdodCB8fCBuZXdIZWlnaHQgPiBwYXJzZUludChtaW5IZWlnaHQpKSAmJlxuICAgICAgICBvZmZzZXQudG9wICsgbmV3SGVpZ2h0IDwgdmlld3BvcnQuaGVpZ2h0XG4gICAgICApIHtcbiAgICAgICAgY29uc3QgbmV3Q29udGVudEhlaWdodCA9IGNvbnRlbnRIZWlnaHQgKyBuZXdIZWlnaHQgLSBjb250YWluZXJIZWlnaHQ7XG4gICAgICAgIHRoaXMuX3N0eWxlLmhlaWdodCA9XG4gICAgICAgICAgTWF0aC5tYXgobmV3SGVpZ2h0LCBoZWFkZXJIZWlnaHQgKyBuZXdDb250ZW50SGVpZ2h0KSArICdweCc7XG4gICAgICAgICh0aGlzLmNvbnRhaW5lciBhcyBIVE1MRGl2RWxlbWVudCkuc3R5bGUuaGVpZ2h0ID0gdGhpcy5fc3R5bGUuaGVpZ2h0O1xuICAgICAgfVxuXG4gICAgICB0aGlzLmxhc3RQYWdlWCA9IGV2ZW50LnBhZ2VYO1xuICAgICAgdGhpcy5sYXN0UGFnZVkgPSBldmVudC5wYWdlWTtcbiAgICB9XG4gIH1cblxuICByZXNpemVFbmQoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAodGhpcy5yZXNpemluZykge1xuICAgICAgdGhpcy5yZXNpemluZyA9IGZhbHNlO1xuICAgICAgRG9tSGFuZGxlci5yZW1vdmVDbGFzcyh0aGlzLmRvY3VtZW50LmJvZHksICdjcHMtdW5zZWxlY3RhYmxlLXRleHQnKTtcbiAgICAgIHRoaXMuX3Jlc2l6ZUVuZGVkLmVtaXQoZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIGluaXREcmFnKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgZnVuY3Rpb24gaXNIZWFkZXJBY3Rpb25CdXR0b24oZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgICB3aGlsZSAoXG4gICAgICAgIGVsZW1lbnQgJiZcbiAgICAgICAgIWVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdjcHMtZGlhbG9nLWhlYWRlci1hY3Rpb24tYnV0dG9uJykgJiZcbiAgICAgICAgIWVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdjcHMtZGlhbG9nLWhlYWRlci1pbmZvLWNpcmNsZScpXG4gICAgICApIHtcbiAgICAgICAgZWxlbWVudCA9IGVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICEhZWxlbWVudDtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZHJhZ2dhYmxlIHx8IHRoaXMubWF4aW1pemVkKSByZXR1cm47XG5cbiAgICBpZiAoaXNIZWFkZXJBY3Rpb25CdXR0b24oPEhUTUxFbGVtZW50PmV2ZW50LnRhcmdldCkpIHJldHVybjtcblxuICAgIHRoaXMuZHJhZ2dpbmcgPSB0cnVlO1xuICAgIHRoaXMubGFzdFBhZ2VYID0gZXZlbnQucGFnZVg7XG4gICAgdGhpcy5sYXN0UGFnZVkgPSBldmVudC5wYWdlWTtcblxuICAgICh0aGlzLmNvbnRhaW5lciBhcyBIVE1MRGl2RWxlbWVudCkuc3R5bGUubWFyZ2luID0gJzAnO1xuICAgIERvbUhhbmRsZXIuYWRkQ2xhc3ModGhpcy5kb2N1bWVudC5ib2R5LCAnY3BzLXVuc2VsZWN0YWJsZS10ZXh0Jyk7XG4gICAgdGhpcy5fZHJhZ1N0YXJ0ZWQuZW1pdChldmVudCk7XG4gIH1cblxuICBvbkRyYWcoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAodGhpcy5kcmFnZ2luZykge1xuICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSBEb21IYW5kbGVyLmdldE91dGVyV2lkdGgodGhpcy5jb250YWluZXIpO1xuICAgICAgY29uc3QgY29udGFpbmVySGVpZ2h0ID0gRG9tSGFuZGxlci5nZXRPdXRlckhlaWdodCh0aGlzLmNvbnRhaW5lcik7XG4gICAgICBjb25zdCBkZWx0YVggPSBldmVudC5wYWdlWCAtICh0aGlzLmxhc3RQYWdlWCBhcyBudW1iZXIpO1xuICAgICAgY29uc3QgZGVsdGFZID0gZXZlbnQucGFnZVkgLSAodGhpcy5sYXN0UGFnZVkgYXMgbnVtYmVyKTtcbiAgICAgIGNvbnN0IG9mZnNldCA9ICh0aGlzLmNvbnRhaW5lciBhcyBIVE1MRGl2RWxlbWVudCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCBsZWZ0UG9zID0gb2Zmc2V0LmxlZnQgKyBkZWx0YVg7XG4gICAgICBjb25zdCB0b3BQb3MgPSBvZmZzZXQudG9wICsgZGVsdGFZO1xuICAgICAgY29uc3Qgdmlld3BvcnQgPSBEb21IYW5kbGVyLmdldFZpZXdwb3J0KCk7XG5cbiAgICAgICh0aGlzLmNvbnRhaW5lciBhcyBIVE1MRGl2RWxlbWVudCkuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnO1xuXG4gICAgICBpZiAodGhpcy5rZWVwSW5WaWV3cG9ydCkge1xuICAgICAgICBpZiAobGVmdFBvcyA+PSB0aGlzLm1pblggJiYgbGVmdFBvcyArIGNvbnRhaW5lcldpZHRoIDwgdmlld3BvcnQud2lkdGgpIHtcbiAgICAgICAgICB0aGlzLl9zdHlsZS5sZWZ0ID0gbGVmdFBvcyArICdweCc7XG4gICAgICAgICAgdGhpcy5sYXN0UGFnZVggPSBldmVudC5wYWdlWDtcbiAgICAgICAgICAodGhpcy5jb250YWluZXIgYXMgSFRNTERpdkVsZW1lbnQpLnN0eWxlLmxlZnQgPSBsZWZ0UG9zICsgJ3B4JztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0b3BQb3MgPj0gdGhpcy5taW5ZICYmIHRvcFBvcyArIGNvbnRhaW5lckhlaWdodCA8IHZpZXdwb3J0LmhlaWdodCkge1xuICAgICAgICAgIHRoaXMuX3N0eWxlLnRvcCA9IHRvcFBvcyArICdweCc7XG4gICAgICAgICAgdGhpcy5sYXN0UGFnZVkgPSBldmVudC5wYWdlWTtcbiAgICAgICAgICAodGhpcy5jb250YWluZXIgYXMgSFRNTERpdkVsZW1lbnQpLnN0eWxlLnRvcCA9IHRvcFBvcyArICdweCc7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubGFzdFBhZ2VYID0gZXZlbnQucGFnZVg7XG4gICAgICAgICh0aGlzLmNvbnRhaW5lciBhcyBIVE1MRGl2RWxlbWVudCkuc3R5bGUubGVmdCA9IGxlZnRQb3MgKyAncHgnO1xuICAgICAgICB0aGlzLmxhc3RQYWdlWSA9IGV2ZW50LnBhZ2VZO1xuICAgICAgICAodGhpcy5jb250YWluZXIgYXMgSFRNTERpdkVsZW1lbnQpLnN0eWxlLnRvcCA9IHRvcFBvcyArICdweCc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZW5kRHJhZyhldmVudDogTW91c2VFdmVudCkge1xuICAgIGlmICh0aGlzLmRyYWdnaW5nKSB7XG4gICAgICB0aGlzLmRyYWdnaW5nID0gZmFsc2U7XG4gICAgICBEb21IYW5kbGVyLnJlbW92ZUNsYXNzKHRoaXMuZG9jdW1lbnQuYm9keSwgJ2Nwcy11bnNlbGVjdGFibGUtdGV4dCcpO1xuICAgICAgdGhpcy5fZHJhZ0VuZGVkLmVtaXQoZXZlbnQpO1xuICAgICAgdGhpcy5fY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0UG9zaXRpb24oKSB7XG4gICAgKHRoaXMuY29udGFpbmVyIGFzIEhUTUxEaXZFbGVtZW50KS5zdHlsZS5wb3NpdGlvbiA9ICcnO1xuICAgICh0aGlzLmNvbnRhaW5lciBhcyBIVE1MRGl2RWxlbWVudCkuc3R5bGUubGVmdCA9ICcnO1xuICAgICh0aGlzLmNvbnRhaW5lciBhcyBIVE1MRGl2RWxlbWVudCkuc3R5bGUudG9wID0gJyc7XG4gICAgKHRoaXMuY29udGFpbmVyIGFzIEhUTUxEaXZFbGVtZW50KS5zdHlsZS5tYXJnaW4gPSAnJztcbiAgfVxuXG4gIGJpbmREb2N1bWVudERyYWdMaXN0ZW5lcigpIHtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgdGhpcy5kb2N1bWVudERyYWdMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKFxuICAgICAgICAgIHRoaXMuZG9jdW1lbnQsXG4gICAgICAgICAgJ21vdXNlbW92ZScsXG4gICAgICAgICAgdGhpcy5vbkRyYWcuYmluZCh0aGlzKVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgYmluZERvY3VtZW50RHJhZ0VuZExpc3RlbmVyKCkge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICB0aGlzLmRvY3VtZW50RHJhZ0VuZExpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oXG4gICAgICAgICAgdGhpcy5kb2N1bWVudCxcbiAgICAgICAgICAnbW91c2V1cCcsXG4gICAgICAgICAgdGhpcy5lbmREcmFnLmJpbmQodGhpcylcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHVuYmluZERvY3VtZW50RHJhZ0VuZExpc3RlbmVyKCkge1xuICAgIGlmICh0aGlzLmRvY3VtZW50RHJhZ0VuZExpc3RlbmVyKSB7XG4gICAgICB0aGlzLmRvY3VtZW50RHJhZ0VuZExpc3RlbmVyKCk7XG4gICAgICB0aGlzLmRvY3VtZW50RHJhZ0xpc3RlbmVyID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICB1bmJpbmREb2N1bWVudERyYWdMaXN0ZW5lcigpIHtcbiAgICBpZiAodGhpcy5kb2N1bWVudERyYWdMaXN0ZW5lcikge1xuICAgICAgdGhpcy5kb2N1bWVudERyYWdMaXN0ZW5lcigpO1xuICAgICAgdGhpcy5kb2N1bWVudERyYWdMaXN0ZW5lciA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgYmluZERvY3VtZW50UmVzaXplTGlzdGVuZXJzKCkge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICB0aGlzLmRvY3VtZW50UmVzaXplTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgICB0aGlzLmRvY3VtZW50LFxuICAgICAgICAgICdtb3VzZW1vdmUnLFxuICAgICAgICAgIHRoaXMub25SZXNpemUuYmluZCh0aGlzKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmRvY3VtZW50UmVzaXplRW5kTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgICB0aGlzLmRvY3VtZW50LFxuICAgICAgICAgICdtb3VzZXVwJyxcbiAgICAgICAgICB0aGlzLnJlc2l6ZUVuZC5iaW5kKHRoaXMpXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICB1bmJpbmREb2N1bWVudFJlc2l6ZUxpc3RlbmVycygpIHtcbiAgICBpZiAodGhpcy5kb2N1bWVudFJlc2l6ZUxpc3RlbmVyICYmIHRoaXMuZG9jdW1lbnRSZXNpemVFbmRMaXN0ZW5lcikge1xuICAgICAgdGhpcy5kb2N1bWVudFJlc2l6ZUxpc3RlbmVyKCk7XG4gICAgICB0aGlzLmRvY3VtZW50UmVzaXplRW5kTGlzdGVuZXIoKTtcbiAgICAgIHRoaXMuZG9jdW1lbnRSZXNpemVMaXN0ZW5lciA9IG51bGw7XG4gICAgICB0aGlzLmRvY3VtZW50UmVzaXplRW5kTGlzdGVuZXIgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGJpbmRHbG9iYWxMaXN0ZW5lcnMoKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5jb25maWcuY2xvc2VPbkVzY2FwZSAhPT0gZmFsc2UgJiZcbiAgICAgIHRoaXMuY29uZmlnLmRpc2FibGVDbG9zZSAhPT0gZmFsc2VcbiAgICApIHtcbiAgICAgIHRoaXMuYmluZERvY3VtZW50RXNjYXBlTGlzdGVuZXIoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5yZXNpemFibGUpIHtcbiAgICAgIHRoaXMuYmluZERvY3VtZW50UmVzaXplTGlzdGVuZXJzKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZHJhZ2dhYmxlKSB7XG4gICAgICB0aGlzLmJpbmREb2N1bWVudERyYWdMaXN0ZW5lcigpO1xuICAgICAgdGhpcy5iaW5kRG9jdW1lbnREcmFnRW5kTGlzdGVuZXIoKTtcbiAgICB9XG4gIH1cblxuICB1bmJpbmRHbG9iYWxMaXN0ZW5lcnMoKSB7XG4gICAgdGhpcy51bmJpbmREb2N1bWVudEVzY2FwZUxpc3RlbmVyKCk7XG4gICAgdGhpcy51bmJpbmREb2N1bWVudFJlc2l6ZUxpc3RlbmVycygpO1xuICAgIHRoaXMudW5iaW5kRG9jdW1lbnREcmFnTGlzdGVuZXIoKTtcbiAgICB0aGlzLnVuYmluZERvY3VtZW50RHJhZ0VuZExpc3RlbmVyKCk7XG4gIH1cblxuICBiaW5kRG9jdW1lbnRFc2NhcGVMaXN0ZW5lcigpIHtcbiAgICBjb25zdCBkb2N1bWVudFRhcmdldDogYW55ID0gdGhpcy5tYXNrVmlld0NoaWxkXG4gICAgICA/IHRoaXMubWFza1ZpZXdDaGlsZC5uYXRpdmVFbGVtZW50Lm93bmVyRG9jdW1lbnRcbiAgICAgIDogJ2RvY3VtZW50JztcblxuICAgIHRoaXMuZG9jdW1lbnRFc2NhcGVMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKFxuICAgICAgZG9jdW1lbnRUYXJnZXQsXG4gICAgICAna2V5ZG93bicsXG4gICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LndoaWNoID09PSAyNykge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHBhcnNlSW50KCh0aGlzLmNvbnRhaW5lciBhcyBIVE1MRGl2RWxlbWVudCkuc3R5bGUuekluZGV4KSA9PT1cbiAgICAgICAgICAgIFpJbmRleFV0aWxzLmdldEN1cnJlbnQoKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHVuYmluZERvY3VtZW50RXNjYXBlTGlzdGVuZXIoKSB7XG4gICAgaWYgKHRoaXMuZG9jdW1lbnRFc2NhcGVMaXN0ZW5lcikge1xuICAgICAgdGhpcy5kb2N1bWVudEVzY2FwZUxpc3RlbmVyKCk7XG4gICAgICB0aGlzLmRvY3VtZW50RXNjYXBlTGlzdGVuZXIgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHVuYmluZE1hc2tDbGlja0xpc3RlbmVyKCkge1xuICAgIGlmICh0aGlzLm1hc2tDbGlja0xpc3RlbmVyKSB7XG4gICAgICB0aGlzLm1hc2tDbGlja0xpc3RlbmVyKCk7XG4gICAgICB0aGlzLm1hc2tDbGlja0xpc3RlbmVyID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm9uQ29udGFpbmVyRGVzdHJveSgpO1xuICAgIHRoaXMuY29tcG9uZW50UmVmPy5kZXN0cm95KCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgI21hc2tcbiAgW25nQ2xhc3NdPVwie1xuICAgICdjcHMtZGlhbG9nLW1hc2snOiB0cnVlLFxuICAgICdjcHMtZGlhbG9nLW92ZXJsYXkgY3BzLWRpYWxvZy1vdmVybGF5LWVudGVyJzogY29uZmlnLm1vZGFsICE9PSBmYWxzZSxcbiAgICAnY3BzLWRpYWxvZy1sZWZ0JzogcG9zaXRpb24gPT09ICdsZWZ0JyxcbiAgICAnY3BzLWRpYWxvZy1yaWdodCc6IHBvc2l0aW9uID09PSAncmlnaHQnLFxuICAgICdjcHMtZGlhbG9nLXRvcCc6IHBvc2l0aW9uID09PSAndG9wJyxcbiAgICAnY3BzLWRpYWxvZy1ib3R0b20nOiBwb3NpdGlvbiA9PT0gJ2JvdHRvbScsXG4gICAgJ2Nwcy1kaWFsb2ctdG9wLWxlZnQnOiBwb3NpdGlvbiA9PT0gJ3RvcGxlZnQnIHx8IHBvc2l0aW9uID09PSAndG9wLWxlZnQnLFxuICAgICdjcHMtZGlhbG9nLXRvcC1yaWdodCc6IHBvc2l0aW9uID09PSAndG9wcmlnaHQnIHx8IHBvc2l0aW9uID09PSAndG9wLXJpZ2h0JyxcbiAgICAnY3BzLWRpYWxvZy1ib3R0b20tbGVmdCc6XG4gICAgICBwb3NpdGlvbiA9PT0gJ2JvdHRvbWxlZnQnIHx8IHBvc2l0aW9uID09PSAnYm90dG9tLWxlZnQnLFxuICAgICdjcHMtZGlhbG9nLWJvdHRvbS1yaWdodCc6XG4gICAgICBwb3NpdGlvbiA9PT0gJ2JvdHRvbXJpZ2h0JyB8fCBwb3NpdGlvbiA9PT0gJ2JvdHRvbS1yaWdodCdcbiAgfVwiXG4gIFtjbGFzc109XCJjb25maWcubWFza1N0eWxlQ2xhc3MgfHwgJydcIj5cbiAgPGRpdlxuICAgICNjb250YWluZXJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnY3BzLWRpYWxvZyc6IHRydWUsXG4gICAgICAnY3BzLWRpYWxvZy1yZXNpemFibGUnOiByZXNpemFibGUsXG4gICAgICAnY3BzLWRpYWxvZy1kcmFnZ2FibGUnOiBkcmFnZ2FibGUgJiYgIW1heGltaXplZCxcbiAgICAgICdjcHMtZGlhbG9nLWRyYWdnaW5nJzogZHJhZ2dpbmcsXG4gICAgICAnY3BzLWRpYWxvZy1tYXhpbWl6ZWQnOiBtYXhpbWl6ZWRcbiAgICB9XCJcbiAgICBbbmdTdHlsZV09XCJjb25maWcuc3R5bGVcIlxuICAgIFtjbGFzc109XCJjb25maWcuc3R5bGVDbGFzcyB8fCAnJ1wiXG4gICAgW0BhbmltYXRpb25dPVwie1xuICAgICAgdmFsdWU6ICd2aXNpYmxlJyxcbiAgICAgIHBhcmFtczoge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zZm9ybU9wdGlvbnMsXG4gICAgICAgIHRyYW5zaXRpb246XG4gICAgICAgICAgY29uZmlnLnRyYW5zaXRpb25PcHRpb25zIHx8ICcxNTBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSdcbiAgICAgIH1cbiAgICB9XCJcbiAgICAoQGFuaW1hdGlvbi5zdGFydCk9XCJvbkFuaW1hdGlvblN0YXJ0KCRldmVudClcIlxuICAgIChAYW5pbWF0aW9uLmRvbmUpPVwib25BbmltYXRpb25FbmQoJGV2ZW50KVwiXG4gICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgKm5nSWY9XCJ2aXNpYmxlXCJcbiAgICBbc3R5bGUud2lkdGhdPVwiY29uZmlnLndpZHRoXCJcbiAgICBbc3R5bGUuaGVpZ2h0XT1cImNvbmZpZy5oZWlnaHRcIlxuICAgIFtzdHlsZS5taW5XaWR0aF09XCJjb25maWcubWluV2lkdGhcIlxuICAgIFtzdHlsZS5taW5IZWlnaHRdPVwiY29uZmlnLm1pbkhlaWdodFwiXG4gICAgW3N0eWxlLm1heFdpZHRoXT1cIm1heGltaXplZCA/ICcnIDogY29uZmlnLm1heFdpZHRoXCJcbiAgICBbc3R5bGUubWF4SGVpZ2h0XT1cIm1heGltaXplZCA/ICcnIDogY29uZmlnLm1heEhlaWdodFwiPlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwicmVzaXphYmxlICYmICFtYXhpbWl6ZWRcIlxuICAgICAgY2xhc3M9XCJjcHMtZGlhbG9nLXJlc2l6YWJsZS1oYW5kbGVcIlxuICAgICAgc3R5bGU9XCJ6LWluZGV4OiA5MFwiXG4gICAgICAobW91c2Vkb3duKT1cImluaXRSZXNpemUoJGV2ZW50KVwiPjwvZGl2PlxuICAgIDxkaXZcbiAgICAgICNoZWFkZXJcbiAgICAgICpuZ0lmPVwiY29uZmlnLnNob3dIZWFkZXIgIT09IGZhbHNlXCJcbiAgICAgIGNsYXNzPVwiY3BzLWRpYWxvZy1oZWFkZXJcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnY3BzLWRpYWxvZy1oZWFkZXItbGVmdC1ib3JkZXJlZCc6XG4gICAgICAgICAgY29uZmlnLnNob3dIZWFkZXJMZWZ0Qm9yZGVyICE9PSBmYWxzZSxcbiAgICAgICAgJ2Nwcy1kaWFsb2ctaGVhZGVyLWJvdHRvbS1ib3JkZXJlZCc6XG4gICAgICAgICAgY29uZmlnLnNob3dIZWFkZXJCb3R0b21Cb3JkZXIgIT09IGZhbHNlXG4gICAgICB9XCJcbiAgICAgIChtb3VzZWRvd24pPVwiaW5pdERyYWcoJGV2ZW50KVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNwcy1kaWFsb2ctaGVhZGVyLWxlZnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNwcy1kaWFsb2ctaGVhZGVyLWljb25cIj5cbiAgICAgICAgICA8Y3BzLWljb25cbiAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnLmhlYWRlckljb25cIlxuICAgICAgICAgICAgW2ljb25dPVwiY29uZmlnLmhlYWRlckljb25cIlxuICAgICAgICAgICAgW2NvbG9yXT1cImNvbmZpZy5oZWFkZXJJY29uQ29sb3IgfHwgJ2N1cnJlbnRDb2xvcidcIj5cbiAgICAgICAgICA8L2Nwcy1pY29uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjcHMtZGlhbG9nLWhlYWRlci10aXRsZVwiPnt7IGNvbmZpZy5oZWFkZXJUaXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNwcy1kaWFsb2ctaGVhZGVyLWluZm8tY2lyY2xlXCI+XG4gICAgICAgICAgPGNwcy1pbmZvLWNpcmNsZVxuICAgICAgICAgICAgKm5nSWY9XCJjb25maWcuaGVhZGVySW5mb1Rvb2x0aXBcIlxuICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiY29uZmlnLmhlYWRlckluZm9Ub29sdGlwUG9zaXRpb24gfHwgJ3RvcCdcIlxuICAgICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cImNvbmZpZy5oZWFkZXJJbmZvVG9vbHRpcFwiPlxuICAgICAgICAgIDwvY3BzLWluZm8tY2lyY2xlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNwcy1kaWFsb2ctaGVhZGVyLWFjdGlvbi1idXR0b25zXCI+XG4gICAgICAgIDxjcHMtYnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCJtYXhpbWl6YWJsZVwiXG4gICAgICAgICAgY2xhc3M9XCJjcHMtZGlhbG9nLWhlYWRlci1hY3Rpb24tYnV0dG9uXCJcbiAgICAgICAgICBbaWNvbl09XCJtYXhpbWl6ZWQgPyAnbWluaW1pemUnIDogJ21heGltaXplJ1wiXG4gICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICB3aWR0aD1cIjMyXCJcbiAgICAgICAgICBjb2xvcj1cImdyYXBoaXRlXCJcbiAgICAgICAgICB0eXBlPVwiYm9yZGVybGVzc1wiXG4gICAgICAgICAgKGNsaWNrZWQpPVwidG9nZ2xlTWF4aW1pemVkKClcIj5cbiAgICAgICAgPC9jcHMtYnV0dG9uPlxuICAgICAgICA8Y3BzLWJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiY29uZmlnLnNob3dDbG9zZUJ0biAhPT0gZmFsc2VcIlxuICAgICAgICAgIGNsYXNzPVwiY3BzLWRpYWxvZy1oZWFkZXItYWN0aW9uLWJ1dHRvblwiXG4gICAgICAgICAgaWNvbj1cImNsb3NlLXgtMlwiXG4gICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICB3aWR0aD1cIjMyXCJcbiAgICAgICAgICBjb2xvcj1cImdyYXBoaXRlXCJcbiAgICAgICAgICB0eXBlPVwiYm9yZGVybGVzc1wiXG4gICAgICAgICAgKGNsaWNrZWQpPVwiaGlkZSgpXCI+XG4gICAgICAgIDwvY3BzLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICNjb250ZW50XG4gICAgICBjbGFzcz1cImNwcy1kaWFsb2ctY29udGVudFwiXG4gICAgICBbbmdTdHlsZV09XCJjb25maWcuY29udGVudFN0eWxlXCJcbiAgICAgIFtjbGFzc109XCJjb25maWcuY29udGVudFN0eWxlQ2xhc3MgfHwgJydcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBjcHNEaWFsb2dDb250ZW50PjwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Directive } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class CpsDialogContentDirective {
|
|
4
|
+
// eslint-disable-next-line no-useless-constructor
|
|
5
|
+
constructor(viewContainerRef) {
|
|
6
|
+
this.viewContainerRef = viewContainerRef;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
CpsDialogContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CpsDialogContentDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
10
|
+
CpsDialogContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: CpsDialogContentDirective, isStandalone: true, selector: "[cpsDialogContent]", ngImport: i0 });
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CpsDialogContentDirective, decorators: [{
|
|
12
|
+
type: Directive,
|
|
13
|
+
args: [{
|
|
14
|
+
standalone: true,
|
|
15
|
+
selector: '[cpsDialogContent]'
|
|
16
|
+
}]
|
|
17
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; } });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLWRpYWxvZy1jb250ZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nwcy11aS1raXQvc3JjL2xpYi9zZXJ2aWNlcy9jcHMtZGlhbG9nL2ludGVybmFsL2RpcmVjdGl2ZXMvY3BzLWRpYWxvZy1jb250ZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFvQixNQUFNLGVBQWUsQ0FBQzs7QUFNNUQsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQyxrREFBa0Q7SUFDbEQsWUFBbUIsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFBRyxDQUFDOztzSEFGOUMseUJBQXlCOzBHQUF6Qix5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFKckMsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLG9CQUFvQjtpQkFDL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnW2Nwc0RpYWxvZ0NvbnRlbnRdJ1xufSlcbmV4cG9ydCBjbGFzcyBDcHNEaWFsb2dDb250ZW50RGlyZWN0aXZlIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtY29uc3RydWN0b3JcbiAgY29uc3RydWN0b3IocHVibGljIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHt9XG59XG4iXX0=
|