mmhglobal-dynamicform 2.37.2 → 2.38.1
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 +13 -1
- package/esm2020/lib/components/datalistingfieldbase.component.mjs +75 -2
- package/esm2020/lib/sfdatetimepicker/sfdatetimepicker.component.mjs +57 -6
- package/esm2020/lib/zgrid/container/zgrid-container.component.mjs +7 -7
- package/esm2020/lib/zgrid/date-range-cell-filter.component.mjs +10 -10
- package/esm2020/lib/zgrid/zgrid.component.mjs +67 -92
- package/esm2020/lib/ztreelist/ztreelist.component.mjs +58 -111
- package/esm2020/lib/zudf/zudf.component.mjs +2 -2
- package/fesm2015/mmhglobal-dynamicform.mjs +244 -197
- package/fesm2015/mmhglobal-dynamicform.mjs.map +1 -1
- package/fesm2020/mmhglobal-dynamicform.mjs +243 -197
- package/fesm2020/mmhglobal-dynamicform.mjs.map +1 -1
- package/lib/components/datalistingfieldbase.component.d.ts +7 -0
- package/lib/sfdatetimepicker/sfdatetimepicker.component.d.ts +8 -1
- package/lib/zgrid/container/zgrid-container.component.d.ts +5 -5
- package/lib/zgrid/date-range-cell-filter.component.d.ts +2 -2
- package/lib/zgrid/zgrid.component.d.ts +11 -14
- package/lib/ztreelist/ztreelist.component.d.ts +4 -7
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,7 +4,19 @@ This library was generated with [Angular CLI](https://github.com/angular/angular
|
|
|
4
4
|
|
|
5
5
|
## Changelog
|
|
6
6
|
### Upcoming
|
|
7
|
-
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### 2.38.1
|
|
10
|
+
- [sfdatetimepicker] - Fix: Revert back setDateRange from private back to public.
|
|
11
|
+
|
|
12
|
+
### 2.38.0
|
|
13
|
+
- [date-range-cell-filter, ztreelist, zgrid] Enhancement: Replace string concatenation (+) with string interpolation ($) for better readability and performance. Replace double quotes to single quotes for consistency and readability.
|
|
14
|
+
- [zgrid.component.ts] - Bug Fix: Fix the tooltip for nowrap cell text misalignment issue by attaching it to the correct `<td>`, not the overflowing `<span>`, ensuring proper alignment and visibility.
|
|
15
|
+
- [ztreelist, zgrid, datalistingfieldbase] - Enhancement: Moved `showTooltip` from zgrid and ztreelist to `DataListingFieldBase`, allowing inheritance for the `listingfield` component type.
|
|
16
|
+
- [zudf] - Bug Fix: Fix the issue where a null zmodel value in the zudf component causes an error, preventing users from saving or submitting the record.
|
|
17
|
+
- [sfdatetimepicker] - Enhancement: Implement the "ReadOnly" property within the field element.
|
|
18
|
+
- [sfdatetimepicker] - Enhancement:Implement validation checking for sfdatetimepicker. Ensure that error messages are displayed consistently and clearly across various input fields.
|
|
19
|
+
- [sfdatetimepicker] - Enhancement: Added styling (ngClass = 'updateElementClasses') to control the "ReadOnly" property.
|
|
8
20
|
|
|
9
21
|
### 2.37.2 ~~2.37.1~~ ~~2.37.0~~
|
|
10
22
|
- [ksplitter] - Enhancement: Added `resizePanelByIndex()` to allow users to programmatically resize panels.
|
|
@@ -3,6 +3,7 @@ import { Component, EventEmitter, Output, ViewChild } from "@angular/core";
|
|
|
3
3
|
/********** Ionic **********/
|
|
4
4
|
/********** Plugin **********/
|
|
5
5
|
import { isObservable, map, of } from "rxjs";
|
|
6
|
+
import { TooltipDirective } from "@progress/kendo-angular-tooltip";
|
|
6
7
|
/********** Component & Service **********/
|
|
7
8
|
import { FieldBase } from "./fieldbase.component";
|
|
8
9
|
import { ZComponentHelper } from "mmhglobal-zcore";
|
|
@@ -184,9 +185,78 @@ export class DataListingFieldBase extends FieldBase {
|
|
|
184
185
|
});
|
|
185
186
|
}
|
|
186
187
|
}
|
|
188
|
+
//#endregion
|
|
189
|
+
//#region Tooltip
|
|
190
|
+
showTooltip(e) {
|
|
191
|
+
if (!this.data.IsShowToolTip)
|
|
192
|
+
return; // Exit if tooltips are disabled
|
|
193
|
+
const element = e.target; // Get the element that triggered the event
|
|
194
|
+
if (this.isCommandColumn(element)) {
|
|
195
|
+
this.tooltipDir.hide();
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
const targetCell = this.getTargetCell(element); // Check if it's a command column (buttons, actions, etc.)
|
|
199
|
+
if (!targetCell || !targetCell.textContent?.trim()) {
|
|
200
|
+
this.tooltipDir.hide();
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
const visibleWidth = this.calculateVisibleWidth(targetCell);
|
|
204
|
+
const finalWidth = this.calculateTooltipWidth(targetCell, visibleWidth);
|
|
205
|
+
// Show tooltip only if text is truncated within cell
|
|
206
|
+
if (targetCell.offsetWidth < targetCell.scrollWidth) {
|
|
207
|
+
this.tooltipDir.tooltipWidth = finalWidth;
|
|
208
|
+
this.tooltipDir.toggle(targetCell);
|
|
209
|
+
}
|
|
210
|
+
else {
|
|
211
|
+
this.tooltipDir.hide();
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
// Helper function to check if it's a command column
|
|
215
|
+
isCommandColumn(element) {
|
|
216
|
+
return element.classList.contains('k-command-cell');
|
|
217
|
+
}
|
|
218
|
+
// Helper function to determine the target cell
|
|
219
|
+
getTargetCell(element) {
|
|
220
|
+
if (element.nodeName === 'TD' || element.nodeName === 'TH') {
|
|
221
|
+
return element;
|
|
222
|
+
}
|
|
223
|
+
else if (element.nodeName === 'SPAN' && element.classList.contains('grid-cell-data')) {
|
|
224
|
+
return element.parentElement;
|
|
225
|
+
}
|
|
226
|
+
return null;
|
|
227
|
+
}
|
|
228
|
+
// Helper function to calculate the visible width of the cell within the grid container
|
|
229
|
+
calculateVisibleWidth(targetCell) {
|
|
230
|
+
const cellRect = targetCell.getBoundingClientRect();
|
|
231
|
+
const gridContainer = document.querySelector('.k-grid');
|
|
232
|
+
if (!gridContainer) {
|
|
233
|
+
console.warn('Grid container not found.');
|
|
234
|
+
return 0;
|
|
235
|
+
}
|
|
236
|
+
const gridRect = gridContainer.getBoundingClientRect();
|
|
237
|
+
const visibleLeft = Math.max(cellRect.left, gridRect.left);
|
|
238
|
+
const visibleRight = Math.min(cellRect.right, gridRect.right);
|
|
239
|
+
return Math.max(0, visibleRight - visibleLeft);
|
|
240
|
+
}
|
|
241
|
+
// Helper function to calculate the tooltip width based on visible width and column size
|
|
242
|
+
calculateTooltipWidth(targetCell, visibleWidth) {
|
|
243
|
+
const maxWidth = window.innerWidth / 2;
|
|
244
|
+
// Use characters width if the visible width is too small (less than 100px)
|
|
245
|
+
let columnWidth = targetCell.offsetWidth;
|
|
246
|
+
if (columnWidth < 100) {
|
|
247
|
+
const tooltipText = targetCell.innerText || targetCell.textContent || '';
|
|
248
|
+
const charWidth = 9; // Average width of a character
|
|
249
|
+
columnWidth = tooltipText.length * charWidth;
|
|
250
|
+
}
|
|
251
|
+
// If visible width is too small, use the full column width
|
|
252
|
+
if (visibleWidth < 100) {
|
|
253
|
+
visibleWidth = columnWidth;
|
|
254
|
+
}
|
|
255
|
+
return Math.min(maxWidth, visibleWidth);
|
|
256
|
+
}
|
|
187
257
|
}
|
|
188
258
|
DataListingFieldBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: DataListingFieldBase, deps: [{ token: i1.ZComponentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
189
|
-
DataListingFieldBase.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: DataListingFieldBase, selector: "ng-component", outputs: { showFormPage: "showFormPage" }, viewQueries: [{ propertyName: "popovercontainer", first: true, predicate: ["popovercontainer"], descendants: true }, { propertyName: "dataItemContextMenu", first: true, predicate: ["dataitemcontextmenu"], descendants: true }], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
|
|
259
|
+
DataListingFieldBase.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: DataListingFieldBase, selector: "ng-component", outputs: { showFormPage: "showFormPage" }, viewQueries: [{ propertyName: "popovercontainer", first: true, predicate: ["popovercontainer"], descendants: true }, { propertyName: "dataItemContextMenu", first: true, predicate: ["dataitemcontextmenu"], descendants: true }, { propertyName: "tooltipDir", first: true, predicate: TooltipDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
|
|
190
260
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: DataListingFieldBase, decorators: [{
|
|
191
261
|
type: Component,
|
|
192
262
|
args: [{
|
|
@@ -200,5 +270,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImpor
|
|
|
200
270
|
}], dataItemContextMenu: [{
|
|
201
271
|
type: ViewChild,
|
|
202
272
|
args: ['dataitemcontextmenu']
|
|
273
|
+
}], tooltipDir: [{
|
|
274
|
+
type: ViewChild,
|
|
275
|
+
args: [TooltipDirective]
|
|
203
276
|
}] } });
|
|
204
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWxpc3RpbmdmaWVsZGJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvY29tcG9uZW50cy9kYXRhbGlzdGluZ2ZpZWxkYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0UsNkJBQTZCO0FBRTdCLDhCQUE4QjtBQUM5QixPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHekQsMkNBQTJDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBUzNELDRDQUE0QztBQUM1QyxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsU0FBUztJQWNqRCxZQUNTLGdCQUFtQztRQUUxQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUZqQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBZGxDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUkzQyxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNwQixvQkFBZSxHQUFHO1lBQ3ZCLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO1lBQ2xDLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFO1lBQ2hELEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRTtZQUN0RCxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtZ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Q0FBQztZQUV6QyxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDeEIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDaEU7aUJBQ0k7Z0JBQ0gsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7YUFDNUM7U0FDRjtJQUNILENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxNQUFNO1FBQy9CLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFO1lBQzlCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMvQjthQUNJO1lBQ0gsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUNuQjtnQkFDRSxJQUFJLEVBQUUsTUFBTSxJQUFJLEVBQUU7YUFDbkIsQ0FDRixDQUFDO1NBQ0g7SUFDSCxDQUFDOztpSEF0TlUsb0JBQW9CO3FHQUFwQixvQkFBb0IseVZBSnJCLEVBQUU7MkZBSUQsb0JBQW9CO2tCQUxoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxFQUFFO2lCQUNiO3dHQUlXLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ21ELGdCQUFnQjtzQkFBekUsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ2QsbUJBQW1CO3NCQUFwRCxTQUFTO3VCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8qKioqKioqKioqIElvbmljICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBQbHVnaW4gKioqKioqKioqKi9cclxuaW1wb3J0IHsgaXNPYnNlcnZhYmxlLCBtYXAsIE9ic2VydmFibGUsIG9mIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgUG9wb3ZlckNvbnRhaW5lckRpcmVjdGl2ZSB9IGZyb20gXCJAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci10b29sdGlwXCI7XHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmltcG9ydCB7IEZpZWxkQmFzZSB9IGZyb20gXCIuL2ZpZWxkYmFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgWkNvbXBvbmVudFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvemNvbXBvbmVudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnRIZWxwZXIsIFpGaWVsZCB9IGZyb20gXCJtbWhnbG9iYWwtemNvcmVcIjtcclxuaW1wb3J0IHsgUm93Q2xhc3NBcmdzIH0gZnJvbSBcIkBwcm9ncmVzcy9rZW5kby1hbmd1bGFyLWdyaWRcIjtcclxuaW1wb3J0IHsgQ29udGV4dE1lbnVDb21wb25lbnQgfSBmcm9tIFwiLi4vZW1iZWQtY29tcG9uZW50cy9jb250ZXh0LW1lbnUvY29udGV4dC1tZW51LmNvbXBvbmVudFwiO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlOiBgYCxcclxufSlcclxuXHJcbi8vIEZvcjogemdyaWQsIHp0cmVlLCB6dHJlZWxpc3QsIHpnYW50dGNoYXJ0XHJcbmV4cG9ydCBjbGFzcyBEYXRhTGlzdGluZ0ZpZWxkQmFzZSBleHRlbmRzIEZpZWxkQmFzZSB7XHJcbiAgQE91dHB1dCgpIHNob3dGb3JtUGFnZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBAVmlld0NoaWxkKFwicG9wb3ZlcmNvbnRhaW5lclwiLCB7IHN0YXRpYzogZmFsc2UgfSkgcHJpdmF0ZSBwb3BvdmVyY29udGFpbmVyOiBQb3BvdmVyQ29udGFpbmVyRGlyZWN0aXZlO1xyXG4gIEBWaWV3Q2hpbGQoJ2RhdGFpdGVtY29udGV4dG1lbnUnKSBkYXRhSXRlbUNvbnRleHRNZW51OiBDb250ZXh0TWVudUNvbXBvbmVudDtcclxuXHJcbiAgcHJvdGVjdGVkIHBvcG92ZXJEYXRhID0gW107XHJcbiAgcHVibGljIHRvb2xiYXJJdGVtTGlzdCA9IFtcclxuICAgIHsgbmFtZTogXCJTZWFyY2hcIiwgdGV4dDogXCJTZWFyY2hcIiB9LFxyXG4gICAgeyBuYW1lOiBcIlNhdmUgU2V0dGluZ3NcIiwgdGV4dDogXCJTYXZlIFNldHRpbmdzXCIgfSxcclxuICAgIHsgbmFtZTogXCJSZXN0b3JlIFNldHRpbmdzXCIsIHRleHQ6IFwiUmVzdG9yZSBTZXR0aW5nc1wiIH0sXHJcbiAgICB7IG5hbWU6IFwiQWRkIE5ld1wiLCB0ZXh0OiBcIkFkZCBOZXdcIiB9LFxyXG4gICAgeyBuYW1lOiBcIkFkdmFuY2VkIFNlYXJjaFwiLCB0ZXh0OiBcIkFkdmFuY2VkIFNlYXJjaFwiIH0sXHJcbiAgXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgY29tcG9uZW50U2VydmljZTogWkNvbXBvbmVudFNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKGNvbXBvbmVudFNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGluaXRDb21wb25lbnQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiBzdXBlci5pbml0Q29tcG9uZW50KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0R3JpZENvbHVtblN0eWxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTMgPyB0aGlzLmNvbXBvbmVudFNlcnZpY2UuY29udmVydFN0eWxlU3RyaW5nVG9PYmplY3QodGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlMykgOiB7fVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEdyaWRIZWFkZXJTdHlsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGU0ID8gdGhpcy5jb21wb25lbnRTZXJ2aWNlLmNvbnZlcnRTdHlsZVN0cmluZ1RvT2JqZWN0KHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTQpIDoge31cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRHcmlkRm9vdGVyU3R5bGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlOSA/IHRoaXMuY29tcG9uZW50U2VydmljZS5jb252ZXJ0U3R5bGVTdHJpbmdUb09iamVjdCh0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGU5KSA6IHt9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0Q2VsbFN0eWxlKGNvbHVtbkZpZWxkOiBaRmllbGQsIGRhdGFJdGVtOiBhbnkpOiBhbnkge1xyXG4gICAgY29uc3Qgc3R5bGUgPSBjb2x1bW5GaWVsZFtgU3R5bGUxMGBdO1xyXG4gICAgY29uc3QgZnVuYyA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCBzdHlsZSk7XHJcbiAgICBpZiAodHlwZW9mIGZ1bmMgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgY29uc3QgY2FsbEZ1bmMgPSBmdW5jLmJpbmQodGhpcy5ncm91cC5jdHJsU2NvcGUpO1xyXG4gICAgICByZXR1cm4gY2FsbEZ1bmMoZGF0YUl0ZW0sIGNvbHVtbkZpZWxkKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHR5cGVvZiBmdW5jID09PSAnc3RyaW5nJykge1xyXG4gICAgICByZXR1cm4gZnVuYztcclxuICAgIH1cclxuICAgIHJldHVybiBzdHlsZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjZWxsU3R5bGVDb25kaXRpb24oY29sLCBjb2xWYWx1ZTogYW55KSB7XHJcbiAgICBpZiAoY29sWydDZWxsU3R5bGVDb25kaXRpb24nXSkge1xyXG4gICAgICBjb25zdCBjb25kaXRpb25IaWdobGlnaHRjb2w6IFtdID0gY29sWydDZWxsU3R5bGVDb25kaXRpb24nXTtcclxuICAgICAgbGV0IGNvbmRpdGlvblJlc3VsdCA9IGZhbHNlO1xyXG5cclxuICAgICAgY29uZGl0aW9uSGlnaGxpZ2h0Y29sLmZvckVhY2goZGF0YSA9PiB7XHJcbiAgICAgICAgaWYgKCFjb25kaXRpb25SZXN1bHQpIHtcclxuICAgICAgICAgIGlmIChkYXRhWydWYWx1ZSddID09IGNvbFZhbHVlKSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvblJlc3VsdCA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHJldHVybiBjb25kaXRpb25SZXN1bHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0Q2VsbFN0eWxlQ29uZGl0aW9uKGNvbCwgY29sVmFsdWU6IGFueSkge1xyXG4gICAgaWYgKGNvbFsnQ2VsbFN0eWxlQ29uZGl0aW9uJ10pIHtcclxuICAgICAgY29uc3QgY29uZGl0aW9uSGlnaGxpZ2h0Y29sOiBbXSA9IGNvbFsnQ2VsbFN0eWxlQ29uZGl0aW9uJ107XHJcbiAgICAgIGxldCBjb25kaXRpb25SZXN1bHQgPSAnJztcclxuXHJcbiAgICAgIGNvbmRpdGlvbkhpZ2hsaWdodGNvbC5mb3JFYWNoKGRhdGEgPT4ge1xyXG4gICAgICAgIGlmIChkYXRhWydWYWx1ZSddID09IGNvbFZhbHVlKSB7XHJcbiAgICAgICAgICBpZiAoZGF0YVsnQmFja2dyb3VuZENvbG9yJ10pIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uUmVzdWx0ID0gJ2JhY2tncm91bmQtY29sb3I6JyArIGRhdGFbJ0JhY2tncm91bmRDb2xvciddICsgJzsnO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmIChkYXRhWydDb2xvciddKSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvblJlc3VsdCArPSAnY29sb3I6JyArIGRhdGFbJ0NvbG9yJ10gKyAnOyc7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKGRhdGFbJ1N0eWxlRXhwcmVzc2lvbiddKSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvblJlc3VsdCArPSBkYXRhWydTdHlsZUV4cHJlc3Npb24nXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgcmV0dXJuIGNvbmRpdGlvblJlc3VsdDtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0cmFuc2xhdGVUb29sQmFySXRlbXMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudFNlcnZpY2UudHJhbnNsYXRlVG9vbEJhckl0ZW1zKHRoaXMudG9vbGJhckl0ZW1MaXN0LCB0aGlzLmdyb3VwKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRUb29sQmFySXRlbUxhYmVsTmFtZShuYW1lOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLnRvb2xiYXJJdGVtTGlzdC5maW5kKHQgPT4gdC5uYW1lID09PSBuYW1lKT8udGV4dCB8fCBuYW1lO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRyYW5zbGF0ZUNvbHVtbkhlYWRlcihjb2x1bW5zOiBhbnlbXSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnRTZXJ2aWNlLnRyYW5zbGF0ZUdyaWRDb2x1bW5IZWFkZXIoY29sdW1ucywgdGhpcy5ncm91cCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcm93Q2FsbGJhY2soY29udGV4dDogUm93Q2xhc3NBcmdzKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLmRhdGEuRGF0YVJvd0NsYXNzICYmIHR5cGVvZiB0aGlzLmRhdGEuRGF0YVJvd0NsYXNzID09ICdzdHJpbmcnICYmIHRoaXMuZGF0YS5EYXRhUm93Q2xhc3Muc3RhcnRzV2l0aCgnZ3JvdXAuJykpIHtcclxuICAgICAgY29uc3QgZnVuYyA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBWYWx1ZSh0aGlzLmRhdGEuRGF0YVJvd0NsYXNzLCB0aGlzLmdyb3VwKTtcclxuXHJcbiAgICAgIGlmICh0eXBlb2YgZnVuYyA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgIHJldHVybiBmdW5jKGNvbnRleHQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcbiAgLy8jcmVnaW9uIFBvcG92ZXJcclxuICBwdWJsaWMgc2V0dXBQb3BvdmVyRmVhdHVyZShjb2x1bW5zOiBBcnJheTxhbnk+LCBncmlkRGF0YTogQXJyYXk8YW55Pikge1xyXG4gICAgY29uc3QgcG9wb3ZlckNvbHMgPSBjb2x1bW5zLmZpbHRlcihjID0+IGMuUG9wT3ZlckNvbnRlbnQpO1xyXG4gICAgaWYgKHBvcG92ZXJDb2xzLmxlbmd0aCA+IDAgJiYgZ3JpZERhdGEubGVuZ3RoID4gMCkge1xyXG5cclxuICAgICAgZm9yIChjb25zdCBkYXRhIG9mIGdyaWREYXRhKSB7XHJcbiAgICAgICAgdGhpcy5wb3BvdmVyRGF0YS5wdXNoKFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBpZDogZGF0YS5JZCxcclxuICAgICAgICAgICAgcG9wb3ZlckNvbnRlbnQ6IHRoaXMuZ2V0UG9wT3ZlckNvbnRlbnRCeUNvbChwb3BvdmVyQ29scywgZGF0YSlcclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd1BvcE92ZXIoY29sdW1uRmllbGQ6IFpGaWVsZCwgZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKCFjb2x1bW5GaWVsZC5Qb3BPdmVyQ29udGVudCB8fCAhdGhpcy5wb3BvdmVyY29udGFpbmVyKSB7XHJcbiAgICAgIHRoaXMucG9wb3ZlcmNvbnRhaW5lci5oaWRlKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBlbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgdGhpcy5wb3BvdmVyY29udGFpbmVyLmhpZGUoKTtcclxuICAgIGlmIChlbGVtZW50Lm5vZGVOYW1lID09PSAnRElWJyB8fCBlbGVtZW50Lm5vZGVOYW1lID09PSAnU1BBTicpIHtcclxuICAgICAgdGhpcy5wb3BvdmVyY29udGFpbmVyLnNob3coZWxlbWVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xvc2VQb3BPdmVyKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmIChldmVudCAmJiBldmVudC50b0VsZW1lbnQgJiYgZXZlbnQudG9FbGVtZW50Lm5vZGVOYW1lID09IFwiRElWXCIgJiYgKGV2ZW50LnRvRWxlbWVudC5wYXJlbnRFbGVtZW50Lm5vZGVOYW1lID09IFwiVERcIiB8fCAoZXZlbnQudG9FbGVtZW50LnBhcmVudEVsZW1lbnQubm9kZU5hbWUgPT0gXCJESVZcIiAmJiBldmVudC50b0VsZW1lbnQucGFyZW50RWxlbWVudC5jbGFzc05hbWUuaW5jbHVkZXMoXCJrLXBvcG92ZXItYm9keVwiKSkpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMucG9wb3ZlcmNvbnRhaW5lci5oaWRlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0Q29udGV4dERhdGEoYW5jaG9yOiBIVE1MRWxlbWVudCkge1xyXG4gICAgaWYgKGFuY2hvci5hdHRyaWJ1dGVzW1wiZGF0YS1pZFwiXSAmJiBhbmNob3IuYXR0cmlidXRlc1tcImRhdGEtaWRcIl0udmFsdWUgJiYgYW5jaG9yLmF0dHJpYnV0ZXNbXCJjb2x1bW4tbmFtZVwiXSAmJiBhbmNob3IuYXR0cmlidXRlc1tcImNvbHVtbi1uYW1lXCJdLnZhbHVlKSB7XHJcbiAgICAgIGNvbnN0IHJlY29yZElkID0gYW5jaG9yLmF0dHJpYnV0ZXNbXCJkYXRhLWlkXCJdLnZhbHVlO1xyXG4gICAgICBjb25zdCBjb2x1bW5OYW1lID0gYW5jaG9yLmF0dHJpYnV0ZXNbXCJjb2x1bW4tbmFtZVwiXS52YWx1ZTtcclxuICAgICAgY29uc3QgcG9wb3ZlckFsbENvbERhdGEgPSB0aGlzLnBvcG92ZXJEYXRhLmZpbmQoZCA9PiBkLmlkID09IHJlY29yZElkKTtcclxuICAgICAgY29uc3QgcG9wb3ZlckNvbERhdGEgPSBwb3BvdmVyQWxsQ29sRGF0YS5wb3BvdmVyQ29udGVudC5maW5kKGQgPT4gZC5jb2x1bW5OYW1lID09IGNvbHVtbk5hbWUpO1xyXG4gICAgICByZXR1cm4gSlNPTi5wYXJzZShwb3BvdmVyQ29sRGF0YS5jb250ZW50KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRQb3BPdmVyQ29udGVudEJ5Q29sKGNvbHVtbnM6IEFycmF5PGFueT4sIGRhdGE6IGFueSk6IEFycmF5PGFueT4ge1xyXG4gICAgY29uc3QgcG9wT3ZlckNvbnRlbnQgPSBbXTtcclxuICAgIGZvciAoY29uc3QgY29sIG9mIGNvbHVtbnMpIHtcclxuICAgICAgdGhpcy5nZXRQb3BPdmVyQ29udGVudChjb2wsIGRhdGEpLnN1YnNjcmliZShjb250ZW50ID0+IHtcclxuICAgICAgICBwb3BPdmVyQ29udGVudC5wdXNoKHtcclxuICAgICAgICAgIGNvbHVtbk5hbWU6IGNvbC5maWVsZCxcclxuICAgICAgICAgIGNvbnRlbnQ6IGNvbnRlbnRcclxuICAgICAgICB9KTtcclxuICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcG9wT3ZlckNvbnRlbnQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFBvcE92ZXJDb250ZW50KGNvbHVtbkZpZWxkOiBaRmllbGQsIGRhdGFJdGVtOiBhbnkpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgY29uc3QgY29udGVudCA9IGNvbHVtbkZpZWxkLlBvcE92ZXJDb250ZW50O1xyXG4gICAgaWYgKCFjb250ZW50KSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgLy8gcmV0dXJuIHtcclxuICAgIC8vICAgQm9keTogYDxiPjI8L2I+IG1vcmUgZ29hbHMgYW5kIDxiPjU8L2I+IG1vcmUgY29tcGV0ZW5jaWVzIHRvIGdyYWRlLiA8YnIvPlxyXG4gICAgLy8gICBHb2FsIDE6IDxiIHN0eWxlPSdjb2xvcjp2YXIoLS1pb24tY29sb3ItcHJpbWFyeSk7Jz4xPC9iPiA8YnIvPmAsXHJcbiAgICAvLyAgIEJvZHlDbGFzczonYXBwcmFpc2FsLXBvcG92ZXInXHJcbiAgICAvLyB9O1xyXG4gICAgY29uc3QgZnVuYyA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCBjb250ZW50KTtcclxuXHJcbiAgICBsZXQgcmVzdWx0ID0gZnVuYztcclxuICAgIGlmICh0eXBlb2YgZnVuYyA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICBjb25zdCBjYWxsRnVuYyA9IGZ1bmMuYmluZCh0aGlzLmdyb3VwLmN0cmxTY29wZSk7XHJcbiAgICAgIHJlc3VsdCA9IGNhbGxGdW5jKGNvbHVtbkZpZWxkLCBkYXRhSXRlbSk7XHJcblxyXG4gICAgICBpZiAoaXNPYnNlcnZhYmxlKHJlc3VsdCkpIHtcclxuICAgICAgICByZXR1cm4gcmVzdWx0LnBpcGUobWFwKGRhdGEgPT4gdGhpcy5wYXJzZVBvcG92ZXJPYmplY3QoZGF0YSkpKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICByZXR1cm4gb2YodGhpcy5wYXJzZVBvcG92ZXJPYmplY3QocmVzdWx0KSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgcGFyc2VQb3BvdmVyT2JqZWN0KHJlc3VsdCk6IHN0cmluZyB7XHJcbiAgICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gXCJvYmplY3RcIikge1xyXG4gICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkocmVzdWx0KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgQm9keTogcmVzdWx0IHx8ICcnLFxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbiAgLy8jZW5kcmVnaW9uXHJcbn1cclxuIl19
|
|
277
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWxpc3RpbmdmaWVsZGJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvY29tcG9uZW50cy9kYXRhbGlzdGluZ2ZpZWxkYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0UsNkJBQTZCO0FBRTdCLDhCQUE4QjtBQUM5QixPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxFQUE2QixnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTlGLDJDQUEyQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFVLE1BQU0saUJBQWlCLENBQUM7OztBQVMzRCw0Q0FBNEM7QUFDNUMsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFNBQVM7SUFlakQsWUFDUyxnQkFBbUM7UUFFMUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFGakIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFtQjtRQWZsQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFLM0MsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDcEIsb0JBQWUsR0FBRztZQUN2QixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUNsQyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRTtZQUNoRCxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUU7WUFDdEQs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Q0FBQztJQUMxQyxDQUFDOztpSEF0U1Usb0JBQW9CO3FHQUFwQixvQkFBb0IsK1ZBSXBCLGdCQUFnQix1RUFSakIsRUFBRTsyRkFJRCxvQkFBb0I7a0JBTGhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLEVBQUU7aUJBQ2I7d0dBSVcsWUFBWTtzQkFBckIsTUFBTTtnQkFDbUQsZ0JBQWdCO3NCQUF6RSxTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDZCxtQkFBbUI7c0JBQXBELFNBQVM7dUJBQUMscUJBQXFCO2dCQUNJLFVBQVU7c0JBQTdDLFNBQVM7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKiogQW5ndWxhciAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBpc09ic2VydmFibGUsIG1hcCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBQb3BvdmVyQ29udGFpbmVyRGlyZWN0aXZlLCBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSBcIkBwcm9ncmVzcy9rZW5kby1hbmd1bGFyLXRvb2x0aXBcIjtcclxuXHJcbi8qKioqKioqKioqIENvbXBvbmVudCAmIFNlcnZpY2UgKioqKioqKioqKi9cclxuaW1wb3J0IHsgRmllbGRCYXNlIH0gZnJvbSBcIi4vZmllbGRiYXNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBaQ29tcG9uZW50U2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy96Y29tcG9uZW50LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgWkNvbXBvbmVudEhlbHBlciwgWkZpZWxkIH0gZnJvbSBcIm1taGdsb2JhbC16Y29yZVwiO1xyXG5pbXBvcnQgeyBSb3dDbGFzc0FyZ3MgfSBmcm9tIFwiQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItZ3JpZFwiO1xyXG5pbXBvcnQgeyBDb250ZXh0TWVudUNvbXBvbmVudCB9IGZyb20gXCIuLi9lbWJlZC1jb21wb25lbnRzL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuY29tcG9uZW50XCI7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGU6IGBgLFxyXG59KVxyXG5cclxuLy8gRm9yOiB6Z3JpZCwgenRyZWUsIHp0cmVlbGlzdCwgemdhbnR0Y2hhcnRcclxuZXhwb3J0IGNsYXNzIERhdGFMaXN0aW5nRmllbGRCYXNlIGV4dGVuZHMgRmllbGRCYXNlIHtcclxuICBAT3V0cHV0KCkgc2hvd0Zvcm1QYWdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIEBWaWV3Q2hpbGQoXCJwb3BvdmVyY29udGFpbmVyXCIsIHsgc3RhdGljOiBmYWxzZSB9KSBwcml2YXRlIHBvcG92ZXJjb250YWluZXI6IFBvcG92ZXJDb250YWluZXJEaXJlY3RpdmU7XHJcbiAgQFZpZXdDaGlsZCgnZGF0YWl0ZW1jb250ZXh0bWVudScpIGRhdGFJdGVtQ29udGV4dE1lbnU6IENvbnRleHRNZW51Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoVG9vbHRpcERpcmVjdGl2ZSkgcHVibGljIHRvb2x0aXBEaXI6IFRvb2x0aXBEaXJlY3RpdmU7XHJcblxyXG4gIHByb3RlY3RlZCBwb3BvdmVyRGF0YSA9IFtdO1xyXG4gIHB1YmxpYyB0b29sYmFySXRlbUxpc3QgPSBbXHJcbiAgICB7IG5hbWU6IFwiU2VhcmNoXCIsIHRleHQ6IFwiU2VhcmNoXCIgfSxcclxuICAgIHsgbmFtZTogXCJTYXZlIFNldHRpbmdzXCIsIHRleHQ6IFwiU2F2ZSBTZXR0aW5nc1wiIH0sXHJcbiAgICB7IG5hbWU6IFwiUmVzdG9yZSBTZXR0aW5nc1wiLCB0ZXh0OiBcIlJlc3RvcmUgU2V0dGluZ3NcIiB9LFxyXG4gICAgeyBuYW1lOiBcIkFkZCBOZXdcIiwgdGV4dDogXCJBZGQgTmV3XCIgfSxcclxuICAgIHsgbmFtZTogXCJBZHZhbmNlZCBTZWFyY2hcIiwgdGV4dDogXCJBZHZhbmNlZCBTZWFyY2hcIiB9LFxyXG4gIF07XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGNvbXBvbmVudFNlcnZpY2U6IFpDb21wb25lbnRTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihjb21wb25lbnRTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbml0Q29tcG9uZW50KCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gc3VwZXIuaW5pdENvbXBvbmVudCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEdyaWRDb2x1bW5TdHlsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUzID8gdGhpcy5jb21wb25lbnRTZXJ2aWNlLmNvbnZlcnRTdHlsZVN0cmluZ1RvT2JqZWN0KHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTMpIDoge31cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRHcmlkSGVhZGVyU3R5bGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlNCA/IHRoaXMuY29tcG9uZW50U2VydmljZS5jb252ZXJ0U3R5bGVTdHJpbmdUb09iamVjdCh0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGU0KSA6IHt9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0R3JpZEZvb3RlclN0eWxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTkgPyB0aGlzLmNvbXBvbmVudFNlcnZpY2UuY29udmVydFN0eWxlU3RyaW5nVG9PYmplY3QodGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlOSkgOiB7fVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldENlbGxTdHlsZShjb2x1bW5GaWVsZDogWkZpZWxkLCBkYXRhSXRlbTogYW55KTogYW55IHtcclxuICAgIGNvbnN0IHN0eWxlID0gY29sdW1uRmllbGRbYFN0eWxlMTBgXTtcclxuICAgIGNvbnN0IGZ1bmMgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgc3R5bGUpO1xyXG4gICAgaWYgKHR5cGVvZiBmdW5jID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIGNvbnN0IGNhbGxGdW5jID0gZnVuYy5iaW5kKHRoaXMuZ3JvdXAuY3RybFNjb3BlKTtcclxuICAgICAgcmV0dXJuIGNhbGxGdW5jKGRhdGFJdGVtLCBjb2x1bW5GaWVsZCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0eXBlb2YgZnVuYyA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgcmV0dXJuIGZ1bmM7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3R5bGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2VsbFN0eWxlQ29uZGl0aW9uKGNvbCwgY29sVmFsdWU6IGFueSkge1xyXG4gICAgaWYgKGNvbFsnQ2VsbFN0eWxlQ29uZGl0aW9uJ10pIHtcclxuICAgICAgY29uc3QgY29uZGl0aW9uSGlnaGxpZ2h0Y29sOiBbXSA9IGNvbFsnQ2VsbFN0eWxlQ29uZGl0aW9uJ107XHJcbiAgICAgIGxldCBjb25kaXRpb25SZXN1bHQgPSBmYWxzZTtcclxuXHJcbiAgICAgIGNvbmRpdGlvbkhpZ2hsaWdodGNvbC5mb3JFYWNoKGRhdGEgPT4ge1xyXG4gICAgICAgIGlmICghY29uZGl0aW9uUmVzdWx0KSB7XHJcbiAgICAgICAgICBpZiAoZGF0YVsnVmFsdWUnXSA9PSBjb2xWYWx1ZSkge1xyXG4gICAgICAgICAgICBjb25kaXRpb25SZXN1bHQgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICByZXR1cm4gY29uZGl0aW9uUmVzdWx0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldENlbGxTdHlsZUNvbmRpdGlvbihjb2wsIGNvbFZhbHVlOiBhbnkpIHtcclxuICAgIGlmIChjb2xbJ0NlbGxTdHlsZUNvbmRpdGlvbiddKSB7XHJcbiAgICAgIGNvbnN0IGNvbmRpdGlvbkhpZ2hsaWdodGNvbDogW10gPSBjb2xbJ0NlbGxTdHlsZUNvbmRpdGlvbiddO1xyXG4gICAgICBsZXQgY29uZGl0aW9uUmVzdWx0ID0gJyc7XHJcblxyXG4gICAgICBjb25kaXRpb25IaWdobGlnaHRjb2wuZm9yRWFjaChkYXRhID0+IHtcclxuICAgICAgICBpZiAoZGF0YVsnVmFsdWUnXSA9PSBjb2xWYWx1ZSkge1xyXG4gICAgICAgICAgaWYgKGRhdGFbJ0JhY2tncm91bmRDb2xvciddKSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvblJlc3VsdCA9ICdiYWNrZ3JvdW5kLWNvbG9yOicgKyBkYXRhWydCYWNrZ3JvdW5kQ29sb3InXSArICc7JztcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAoZGF0YVsnQ29sb3InXSkge1xyXG4gICAgICAgICAgICBjb25kaXRpb25SZXN1bHQgKz0gJ2NvbG9yOicgKyBkYXRhWydDb2xvciddICsgJzsnO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmIChkYXRhWydTdHlsZUV4cHJlc3Npb24nXSkge1xyXG4gICAgICAgICAgICBjb25kaXRpb25SZXN1bHQgKz0gZGF0YVsnU3R5bGVFeHByZXNzaW9uJ107XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHJldHVybiBjb25kaXRpb25SZXN1bHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdHJhbnNsYXRlVG9vbEJhckl0ZW1zKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnRTZXJ2aWNlLnRyYW5zbGF0ZVRvb2xCYXJJdGVtcyh0aGlzLnRvb2xiYXJJdGVtTGlzdCwgdGhpcy5ncm91cCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0VG9vbEJhckl0ZW1MYWJlbE5hbWUobmFtZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy50b29sYmFySXRlbUxpc3QuZmluZCh0ID0+IHQubmFtZSA9PT0gbmFtZSk/LnRleHQgfHwgbmFtZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0cmFuc2xhdGVDb2x1bW5IZWFkZXIoY29sdW1uczogYW55W10pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50U2VydmljZS50cmFuc2xhdGVHcmlkQ29sdW1uSGVhZGVyKGNvbHVtbnMsIHRoaXMuZ3JvdXApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJvd0NhbGxiYWNrKGNvbnRleHQ6IFJvd0NsYXNzQXJncyk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5kYXRhLkRhdGFSb3dDbGFzcyAmJiB0eXBlb2YgdGhpcy5kYXRhLkRhdGFSb3dDbGFzcyA9PSAnc3RyaW5nJyAmJiB0aGlzLmRhdGEuRGF0YVJvd0NsYXNzLnN0YXJ0c1dpdGgoJ2dyb3VwLicpKSB7XHJcbiAgICAgIGNvbnN0IGZ1bmMgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwVmFsdWUodGhpcy5kYXRhLkRhdGFSb3dDbGFzcywgdGhpcy5ncm91cCk7XHJcblxyXG4gICAgICBpZiAodHlwZW9mIGZ1bmMgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICByZXR1cm4gZnVuYyhjb250ZXh0KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG4gIC8vI3JlZ2lvbiBQb3BvdmVyXHJcbiAgcHVibGljIHNldHVwUG9wb3ZlckZlYXR1cmUoY29sdW1uczogQXJyYXk8YW55PiwgZ3JpZERhdGE6IEFycmF5PGFueT4pIHtcclxuICAgIGNvbnN0IHBvcG92ZXJDb2xzID0gY29sdW1ucy5maWx0ZXIoYyA9PiBjLlBvcE92ZXJDb250ZW50KTtcclxuICAgIGlmIChwb3BvdmVyQ29scy5sZW5ndGggPiAwICYmIGdyaWREYXRhLmxlbmd0aCA+IDApIHtcclxuXHJcbiAgICAgIGZvciAoY29uc3QgZGF0YSBvZiBncmlkRGF0YSkge1xyXG4gICAgICAgIHRoaXMucG9wb3ZlckRhdGEucHVzaChcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgaWQ6IGRhdGEuSWQsXHJcbiAgICAgICAgICAgIHBvcG92ZXJDb250ZW50OiB0aGlzLmdldFBvcE92ZXJDb250ZW50QnlDb2wocG9wb3ZlckNvbHMsIGRhdGEpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dQb3BPdmVyKGNvbHVtbkZpZWxkOiBaRmllbGQsIGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICghY29sdW1uRmllbGQuUG9wT3ZlckNvbnRlbnQgfHwgIXRoaXMucG9wb3ZlcmNvbnRhaW5lcikge1xyXG4gICAgICB0aGlzLnBvcG92ZXJjb250YWluZXIuaGlkZSgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICAgIHRoaXMucG9wb3ZlcmNvbnRhaW5lci5oaWRlKCk7XHJcbiAgICBpZiAoZWxlbWVudC5ub2RlTmFtZSA9PT0gJ0RJVicgfHwgZWxlbWVudC5ub2RlTmFtZSA9PT0gJ1NQQU4nKSB7XHJcbiAgICAgIHRoaXMucG9wb3ZlcmNvbnRhaW5lci5zaG93KGVsZW1lbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlUG9wT3ZlcihldmVudDogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoZXZlbnQgJiYgZXZlbnQudG9FbGVtZW50ICYmIGV2ZW50LnRvRWxlbWVudC5ub2RlTmFtZSA9PSBcIkRJVlwiICYmIChldmVudC50b0VsZW1lbnQucGFyZW50RWxlbWVudC5ub2RlTmFtZSA9PSBcIlREXCIgfHwgKGV2ZW50LnRvRWxlbWVudC5wYXJlbnRFbGVtZW50Lm5vZGVOYW1lID09IFwiRElWXCIgJiYgZXZlbnQudG9FbGVtZW50LnBhcmVudEVsZW1lbnQuY2xhc3NOYW1lLmluY2x1ZGVzKFwiay1wb3BvdmVyLWJvZHlcIikpKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnBvcG92ZXJjb250YWluZXIuaGlkZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldENvbnRleHREYXRhKGFuY2hvcjogSFRNTEVsZW1lbnQpIHtcclxuICAgIGlmIChhbmNob3IuYXR0cmlidXRlc1tcImRhdGEtaWRcIl0gJiYgYW5jaG9yLmF0dHJpYnV0ZXNbXCJkYXRhLWlkXCJdLnZhbHVlICYmIGFuY2hvci5hdHRyaWJ1dGVzW1wiY29sdW1uLW5hbWVcIl0gJiYgYW5jaG9yLmF0dHJpYnV0ZXNbXCJjb2x1bW4tbmFtZVwiXS52YWx1ZSkge1xyXG4gICAgICBjb25zdCByZWNvcmRJZCA9IGFuY2hvci5hdHRyaWJ1dGVzW1wiZGF0YS1pZFwiXS52YWx1ZTtcclxuICAgICAgY29uc3QgY29sdW1uTmFtZSA9IGFuY2hvci5hdHRyaWJ1dGVzW1wiY29sdW1uLW5hbWVcIl0udmFsdWU7XHJcbiAgICAgIGNvbnN0IHBvcG92ZXJBbGxDb2xEYXRhID0gdGhpcy5wb3BvdmVyRGF0YS5maW5kKGQgPT4gZC5pZCA9PSByZWNvcmRJZCk7XHJcbiAgICAgIGNvbnN0IHBvcG92ZXJDb2xEYXRhID0gcG9wb3ZlckFsbENvbERhdGEucG9wb3ZlckNvbnRlbnQuZmluZChkID0+IGQuY29sdW1uTmFtZSA9PSBjb2x1bW5OYW1lKTtcclxuICAgICAgcmV0dXJuIEpTT04ucGFyc2UocG9wb3ZlckNvbERhdGEuY29udGVudClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UG9wT3ZlckNvbnRlbnRCeUNvbChjb2x1bW5zOiBBcnJheTxhbnk+LCBkYXRhOiBhbnkpOiBBcnJheTxhbnk+IHtcclxuICAgIGNvbnN0IHBvcE92ZXJDb250ZW50ID0gW107XHJcbiAgICBmb3IgKGNvbnN0IGNvbCBvZiBjb2x1bW5zKSB7XHJcbiAgICAgIHRoaXMuZ2V0UG9wT3ZlckNvbnRlbnQoY29sLCBkYXRhKS5zdWJzY3JpYmUoY29udGVudCA9PiB7XHJcbiAgICAgICAgcG9wT3ZlckNvbnRlbnQucHVzaCh7XHJcbiAgICAgICAgICBjb2x1bW5OYW1lOiBjb2wuZmllbGQsXHJcbiAgICAgICAgICBjb250ZW50OiBjb250ZW50XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHBvcE92ZXJDb250ZW50O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRQb3BPdmVyQ29udGVudChjb2x1bW5GaWVsZDogWkZpZWxkLCBkYXRhSXRlbTogYW55KTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgIGNvbnN0IGNvbnRlbnQgPSBjb2x1bW5GaWVsZC5Qb3BPdmVyQ29udGVudDtcclxuICAgIGlmICghY29udGVudCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIC8vIHJldHVybiB7XHJcbiAgICAvLyAgIEJvZHk6IGA8Yj4yPC9iPiBtb3JlIGdvYWxzIGFuZCA8Yj41PC9iPiBtb3JlIGNvbXBldGVuY2llcyB0byBncmFkZS4gPGJyLz5cclxuICAgIC8vICAgR29hbCAxOiA8YiBzdHlsZT0nY29sb3I6dmFyKC0taW9uLWNvbG9yLXByaW1hcnkpOyc+MTwvYj4gPGJyLz5gLFxyXG4gICAgLy8gICBCb2R5Q2xhc3M6J2FwcHJhaXNhbC1wb3BvdmVyJ1xyXG4gICAgLy8gfTtcclxuICAgIGNvbnN0IGZ1bmMgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgY29udGVudCk7XHJcblxyXG4gICAgbGV0IHJlc3VsdCA9IGZ1bmM7XHJcbiAgICBpZiAodHlwZW9mIGZ1bmMgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgY29uc3QgY2FsbEZ1bmMgPSBmdW5jLmJpbmQodGhpcy5ncm91cC5jdHJsU2NvcGUpO1xyXG4gICAgICByZXN1bHQgPSBjYWxsRnVuYyhjb2x1bW5GaWVsZCwgZGF0YUl0ZW0pO1xyXG5cclxuICAgICAgaWYgKGlzT2JzZXJ2YWJsZShyZXN1bHQpKSB7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdC5waXBlKG1hcChkYXRhID0+IHRoaXMucGFyc2VQb3BvdmVyT2JqZWN0KGRhdGEpKSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIG9mKHRoaXMucGFyc2VQb3BvdmVyT2JqZWN0KHJlc3VsdCkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBhcnNlUG9wb3Zlck9iamVjdChyZXN1bHQpOiBzdHJpbmcge1xyXG4gICAgaWYgKHR5cGVvZiByZXN1bHQgPT09IFwib2JqZWN0XCIpIHtcclxuICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHJlc3VsdCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIEJvZHk6IHJlc3VsdCB8fCAnJyxcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICAvLyNyZWdpb24gVG9vbHRpcFxyXG4gIHB1YmxpYyBzaG93VG9vbHRpcChlOiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuZGF0YS5Jc1Nob3dUb29sVGlwKSByZXR1cm47IC8vIEV4aXQgaWYgdG9vbHRpcHMgYXJlIGRpc2FibGVkXHJcblxyXG4gICAgY29uc3QgZWxlbWVudCA9IGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50OyAvLyBHZXQgdGhlIGVsZW1lbnQgdGhhdCB0cmlnZ2VyZWQgdGhlIGV2ZW50XHJcbiAgICBpZiAodGhpcy5pc0NvbW1hbmRDb2x1bW4oZWxlbWVudCkpIHtcclxuICAgICAgdGhpcy50b29sdGlwRGlyLmhpZGUoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHRhcmdldENlbGwgPSB0aGlzLmdldFRhcmdldENlbGwoZWxlbWVudCk7ICAgLy8gQ2hlY2sgaWYgaXQncyBhIGNvbW1hbmQgY29sdW1uIChidXR0b25zLCBhY3Rpb25zLCBldGMuKVxyXG4gICAgaWYgKCF0YXJnZXRDZWxsIHx8ICF0YXJnZXRDZWxsLnRleHRDb250ZW50Py50cmltKCkpIHtcclxuICAgICAgdGhpcy50b29sdGlwRGlyLmhpZGUoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHZpc2libGVXaWR0aCA9IHRoaXMuY2FsY3VsYXRlVmlzaWJsZVdpZHRoKHRhcmdldENlbGwpO1xyXG4gICAgY29uc3QgZmluYWxXaWR0aCA9IHRoaXMuY2FsY3VsYXRlVG9vbHRpcFdpZHRoKHRhcmdldENlbGwsIHZpc2libGVXaWR0aCk7XHJcblxyXG4gICAgLy8gU2hvdyB0b29sdGlwIG9ubHkgaWYgdGV4dCBpcyB0cnVuY2F0ZWQgd2l0aGluIGNlbGxcclxuICAgIGlmICh0YXJnZXRDZWxsLm9mZnNldFdpZHRoIDwgdGFyZ2V0Q2VsbC5zY3JvbGxXaWR0aCkge1xyXG4gICAgICB0aGlzLnRvb2x0aXBEaXIudG9vbHRpcFdpZHRoID0gZmluYWxXaWR0aDtcclxuICAgICAgdGhpcy50b29sdGlwRGlyLnRvZ2dsZSh0YXJnZXRDZWxsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudG9vbHRpcERpci5oaWRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBIZWxwZXIgZnVuY3Rpb24gdG8gY2hlY2sgaWYgaXQncyBhIGNvbW1hbmQgY29sdW1uXHJcbiAgcHJpdmF0ZSBpc0NvbW1hbmRDb2x1bW4oZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnay1jb21tYW5kLWNlbGwnKTtcclxuICB9XHJcblxyXG4gIC8vIEhlbHBlciBmdW5jdGlvbiB0byBkZXRlcm1pbmUgdGhlIHRhcmdldCBjZWxsXHJcbiAgcHJpdmF0ZSBnZXRUYXJnZXRDZWxsKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogSFRNTEVsZW1lbnQgfCBudWxsIHtcclxuICAgIGlmIChlbGVtZW50Lm5vZGVOYW1lID09PSAnVEQnIHx8IGVsZW1lbnQubm9kZU5hbWUgPT09ICdUSCcpIHtcclxuICAgICAgcmV0dXJuIGVsZW1lbnQ7XHJcbiAgICB9IGVsc2UgaWYgKGVsZW1lbnQubm9kZU5hbWUgPT09ICdTUEFOJyAmJiBlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnZ3JpZC1jZWxsLWRhdGEnKSkge1xyXG4gICAgICByZXR1cm4gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAvLyBIZWxwZXIgZnVuY3Rpb24gdG8gY2FsY3VsYXRlIHRoZSB2aXNpYmxlIHdpZHRoIG9mIHRoZSBjZWxsIHdpdGhpbiB0aGUgZ3JpZCBjb250YWluZXJcclxuICBwcml2YXRlIGNhbGN1bGF0ZVZpc2libGVXaWR0aCh0YXJnZXRDZWxsOiBIVE1MRWxlbWVudCk6IG51bWJlciB7XHJcbiAgICBjb25zdCBjZWxsUmVjdCA9IHRhcmdldENlbGwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICBjb25zdCBncmlkQ29udGFpbmVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmstZ3JpZCcpIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgaWYgKCFncmlkQ29udGFpbmVyKSB7XHJcbiAgICAgIGNvbnNvbGUud2FybignR3JpZCBjb250YWluZXIgbm90IGZvdW5kLicpO1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuICAgIGNvbnN0IGdyaWRSZWN0ID0gZ3JpZENvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuXHJcbiAgICBjb25zdCB2aXNpYmxlTGVmdCA9IE1hdGgubWF4KGNlbGxSZWN0LmxlZnQsIGdyaWRSZWN0LmxlZnQpO1xyXG4gICAgY29uc3QgdmlzaWJsZVJpZ2h0ID0gTWF0aC5taW4oY2VsbFJlY3QucmlnaHQsIGdyaWRSZWN0LnJpZ2h0KTtcclxuICAgIHJldHVybiBNYXRoLm1heCgwLCB2aXNpYmxlUmlnaHQgLSB2aXNpYmxlTGVmdCk7XHJcbiAgfVxyXG5cclxuICAvLyBIZWxwZXIgZnVuY3Rpb24gdG8gY2FsY3VsYXRlIHRoZSB0b29sdGlwIHdpZHRoIGJhc2VkIG9uIHZpc2libGUgd2lkdGggYW5kIGNvbHVtbiBzaXplXHJcbiAgcHJpdmF0ZSBjYWxjdWxhdGVUb29sdGlwV2lkdGgodGFyZ2V0Q2VsbDogSFRNTEVsZW1lbnQsIHZpc2libGVXaWR0aDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgIGNvbnN0IG1heFdpZHRoID0gd2luZG93LmlubmVyV2lkdGggLyAyO1xyXG5cclxuICAgIC8vIFVzZSBjaGFyYWN0ZXJzIHdpZHRoIGlmIHRoZSB2aXNpYmxlIHdpZHRoIGlzIHRvbyBzbWFsbCAobGVzcyB0aGFuIDEwMHB4KVxyXG4gICAgbGV0IGNvbHVtbldpZHRoID0gdGFyZ2V0Q2VsbC5vZmZzZXRXaWR0aDtcclxuICAgIGlmIChjb2x1bW5XaWR0aCA8IDEwMCkge1xyXG4gICAgICBjb25zdCB0b29sdGlwVGV4dCA9IHRhcmdldENlbGwuaW5uZXJUZXh0IHx8IHRhcmdldENlbGwudGV4dENvbnRlbnQgfHwgJyc7XHJcbiAgICAgIGNvbnN0IGNoYXJXaWR0aCA9IDk7IC8vIEF2ZXJhZ2Ugd2lkdGggb2YgYSBjaGFyYWN0ZXJcclxuICAgICAgY29sdW1uV2lkdGggPSB0b29sdGlwVGV4dC5sZW5ndGggKiBjaGFyV2lkdGg7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSWYgdmlzaWJsZSB3aWR0aCBpcyB0b28gc21hbGwsIHVzZSB0aGUgZnVsbCBjb2x1bW4gd2lkdGhcclxuICAgIGlmICh2aXNpYmxlV2lkdGggPCAxMDApIHtcclxuICAgICAgdmlzaWJsZVdpZHRoID0gY29sdW1uV2lkdGg7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIE1hdGgubWluKG1heFdpZHRoLCB2aXNpYmxlV2lkdGgpO1xyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbn1cclxuIl19
|
|
@@ -7,9 +7,10 @@ import * as i0 from "@angular/core";
|
|
|
7
7
|
import * as i1 from "../services/zcomponent.service";
|
|
8
8
|
import * as i2 from "@syncfusion/ej2-angular-calendars";
|
|
9
9
|
import * as i3 from "@angular/common";
|
|
10
|
-
import * as i4 from "@angular/
|
|
11
|
-
import * as i5 from "
|
|
12
|
-
import * as i6 from "../zdatetime/
|
|
10
|
+
import * as i4 from "@angular/flex-layout/extended";
|
|
11
|
+
import * as i5 from "@angular/forms";
|
|
12
|
+
import * as i6 from "../zdatetime/dateParser.pipe";
|
|
13
|
+
import * as i7 from "../zdatetime/dateKendoFormatParser.pipe";
|
|
13
14
|
export class SfdatetimepickerComponent extends InputFieldBase {
|
|
14
15
|
constructor(componentService) {
|
|
15
16
|
super(componentService);
|
|
@@ -26,6 +27,8 @@ export class SfdatetimepickerComponent extends InputFieldBase {
|
|
|
26
27
|
};
|
|
27
28
|
}
|
|
28
29
|
ngOnInit() {
|
|
30
|
+
ZComponentHelper.setComponentProperties(this);
|
|
31
|
+
ZComponentHelper.registerComponent(this);
|
|
29
32
|
super.setupInnerField();
|
|
30
33
|
this.interval = this.data.StepValue ? Number(this.data.StepValue) : 30;
|
|
31
34
|
this.disableStrictMode = !this.data.DisableStrictMode;
|
|
@@ -34,6 +37,54 @@ export class SfdatetimepickerComponent extends InputFieldBase {
|
|
|
34
37
|
ngAfterViewInit() {
|
|
35
38
|
this.componentService.decrementComponentCounterForField(this.data);
|
|
36
39
|
}
|
|
40
|
+
convertDateTimeValueToString(value) {
|
|
41
|
+
if (value == undefined) {
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
const valueDate = value;
|
|
45
|
+
if (this.data.IsIgnoreTimeZone) {
|
|
46
|
+
const timezoneOffSet = new Date(value).getTimezoneOffset();
|
|
47
|
+
valueDate.setMinutes(valueDate.getMinutes() + (-timezoneOffSet));
|
|
48
|
+
return valueDate.toISOString();
|
|
49
|
+
}
|
|
50
|
+
return (value instanceof Date ? value : new Date(value)).toISOString();
|
|
51
|
+
}
|
|
52
|
+
updateElementClasses(form, fieldData) {
|
|
53
|
+
const inputElements = document.querySelectorAll('app-sfdatetimepicker .e-keyboard.e-datetimepicker');
|
|
54
|
+
const textboxElements = document.querySelectorAll('app-sfdatetimepicker .e-custom.e-datetime-wrapper');
|
|
55
|
+
this.updateInputElements(inputElements, fieldData);
|
|
56
|
+
this.updateTextboxElements(textboxElements, fieldData);
|
|
57
|
+
}
|
|
58
|
+
updateInputElements(inputElements, fieldData) {
|
|
59
|
+
inputElements.forEach((input) => {
|
|
60
|
+
const className = fieldData["componentProperties"].isReadOnly ? 'read-only-input' : 'editable-input';
|
|
61
|
+
input.classList.add(className);
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
updateTextboxElements(textboxElements, fieldData) {
|
|
65
|
+
textboxElements.forEach((textbox) => {
|
|
66
|
+
const className = fieldData["componentProperties"].isReadOnly ? 'read-only-textbox' : 'editable-textbox';
|
|
67
|
+
textbox.classList.add(className);
|
|
68
|
+
});
|
|
69
|
+
textboxElements.forEach(element => {
|
|
70
|
+
if (element.hasAttribute('style')) {
|
|
71
|
+
const styles = element.getAttribute('style');
|
|
72
|
+
if (!styles.includes('height')) {
|
|
73
|
+
element["style"].height = '30px'; // Set height to 90%
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
onChange(args) {
|
|
79
|
+
const value = args.value;
|
|
80
|
+
const formControl = this.form.controls[this.data.Value];
|
|
81
|
+
const val = this.convertDateTimeValueToString(value);
|
|
82
|
+
if (formControl) {
|
|
83
|
+
formControl.setValue(val);
|
|
84
|
+
formControl.markAsTouched();
|
|
85
|
+
}
|
|
86
|
+
super.onChange(null, val);
|
|
87
|
+
}
|
|
37
88
|
setMinAndMaxDateRange() {
|
|
38
89
|
const minDateGroupValue = ZComponentHelper.getGroupValue(this.data.MinDate, this.group);
|
|
39
90
|
const minDateValue = minDateGroupValue || this.data.MinDate;
|
|
@@ -43,12 +94,12 @@ export class SfdatetimepickerComponent extends InputFieldBase {
|
|
|
43
94
|
}
|
|
44
95
|
}
|
|
45
96
|
SfdatetimepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SfdatetimepickerComponent, deps: [{ token: i1.ZComponentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
46
|
-
SfdatetimepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: SfdatetimepickerComponent, selector: "app-sfdatetimepicker", viewQueries: [{ propertyName: "sfdatetimepicker", first: true, predicate: ["sfdatetimepicker"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"zdate-container e1tag-style\" [style]=\"componentProperties.style.style\">\r\n <div class=\"dateTimeDesktopContainer\" *ngIf=\"!isMobileScreen()\">\r\n <ejs-datetimepicker #sfdatetimepicker\r\n [ngModel]=\"form.get(data.Value).value | dateParser : data\"
|
|
97
|
+
SfdatetimepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: SfdatetimepickerComponent, selector: "app-sfdatetimepicker", viewQueries: [{ propertyName: "sfdatetimepicker", first: true, predicate: ["sfdatetimepicker"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"zdate-container e1tag-style\" [style]=\"componentProperties.style.style\">\r\n <div class=\"dateTimeDesktopContainer\" *ngIf=\"!isMobileScreen()\" [ngClass]=\"updateElementClasses(form, data)\">\r\n <ejs-datetimepicker #sfdatetimepicker\r\n [ngModel]=\"form.get(data.Value).value | dateParser : data\"\r\n (change)=\"onChange($event)\"\r\n [min]=\"minDate\"\r\n [max]=\"maxDate\"\r\n [step]=\"interval\"\r\n [format]=\"data | dateFormatKendo\"\r\n [required]=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\"\r\n [placeholder]=\"data.PlaceHolder\"\r\n [showClearButton]=\"data.ClearButton\"\r\n [strictMode]=\"disableStrictMode\"\r\n cssClass=\"e-custom\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [style]=\"componentProperties.style.style1\">\r\n </ejs-datetimepicker>\r\n </div>\r\n</div>\r\n", styles: [".e-custom.e-input-group.e-control-wrapper input.e-input,.e-custom.e-input-focus input.e-input{font-size:var(--content-font-size);padding-left:8px}.e-custom.e-input-group.e-control-wrapper{border-radius:5px!important;border:.1px solid rgba(0,0,0,.3)!important}.e-custom.e-input-group.e-control-wrapper:focus-within{box-shadow:0 0 3px 1px var(--ion-color-primary)!important}.e-custom.e-input-group.e-control-wrapper input.e-input:focus{padding-left:8px}.e-custom.e-input-group:not(.e-float-icon-left):not(.e-float-input):before,.e-custom.e-input-group:not(.e-float-icon-left):not(.e-float-input):after{background:transparent!important}.e-custom.e-input-group.e-error,.e-custom.e-input-group.e-control-wrapper.e-error,.e-custom.e-input-group.e-error:not(.e-float-icon-left),.e-custom.e-input-group.e-control-wrapper.e-error:not(.e-float-icon-left){border-color:#f31700!important}.e-custom.e-input-group.e-error.e-control-wrapper:focus-within{box-shadow:0 0 3px #f31700!important}.read-only-input{color:gray!important}.read-only-textbox{background:#f2f2f2!important}.editable-input{color:#000!important;opacity:.8}.editable-textbox{background:#fff!important}\n"], components: [{ type: i2.DateTimePickerComponent, selector: "ejs-datetimepicker", inputs: ["allowEdit", "calendarMode", "cssClass", "dayHeaderFormat", "depth", "enableMask", "enablePersistence", "enableRtl", "enabled", "firstDayOfWeek", "floatLabelType", "format", "htmlAttributes", "isMultiSelection", "keyConfigs", "locale", "maskPlaceholder", "max", "min", "openOnFocus", "placeholder", "readonly", "scrollTo", "serverTimezoneOffset", "showClearButton", "showTodayButton", "start", "step", "strictMode", "timeFormat", "value", "values", "weekNumber", "weekRule", "width", "zIndex"], outputs: ["blur", "change", "cleared", "close", "created", "destroyed", "focus", "navigated", "open", "renderDayCell", "valueChange"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }], pipes: { "dateParser": i6.DateParserFilter, "dateFormatKendo": i7.DateKendoFormatParser }, encapsulation: i0.ViewEncapsulation.None });
|
|
47
98
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SfdatetimepickerComponent, decorators: [{
|
|
48
99
|
type: Component,
|
|
49
|
-
args: [{ selector: 'app-sfdatetimepicker', encapsulation: ViewEncapsulation.None, template: "<div class=\"zdate-container e1tag-style\" [style]=\"componentProperties.style.style\">\r\n <div class=\"dateTimeDesktopContainer\" *ngIf=\"!isMobileScreen()\">\r\n <ejs-datetimepicker #sfdatetimepicker\r\n [ngModel]=\"form.get(data.Value).value | dateParser : data\"
|
|
100
|
+
args: [{ selector: 'app-sfdatetimepicker', encapsulation: ViewEncapsulation.None, template: "<div class=\"zdate-container e1tag-style\" [style]=\"componentProperties.style.style\">\r\n <div class=\"dateTimeDesktopContainer\" *ngIf=\"!isMobileScreen()\" [ngClass]=\"updateElementClasses(form, data)\">\r\n <ejs-datetimepicker #sfdatetimepicker\r\n [ngModel]=\"form.get(data.Value).value | dateParser : data\"\r\n (change)=\"onChange($event)\"\r\n [min]=\"minDate\"\r\n [max]=\"maxDate\"\r\n [step]=\"interval\"\r\n [format]=\"data | dateFormatKendo\"\r\n [required]=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\"\r\n [placeholder]=\"data.PlaceHolder\"\r\n [showClearButton]=\"data.ClearButton\"\r\n [strictMode]=\"disableStrictMode\"\r\n cssClass=\"e-custom\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [style]=\"componentProperties.style.style1\">\r\n </ejs-datetimepicker>\r\n </div>\r\n</div>\r\n", styles: [".e-custom.e-input-group.e-control-wrapper input.e-input,.e-custom.e-input-focus input.e-input{font-size:var(--content-font-size);padding-left:8px}.e-custom.e-input-group.e-control-wrapper{border-radius:5px!important;border:.1px solid rgba(0,0,0,.3)!important}.e-custom.e-input-group.e-control-wrapper:focus-within{box-shadow:0 0 3px 1px var(--ion-color-primary)!important}.e-custom.e-input-group.e-control-wrapper input.e-input:focus{padding-left:8px}.e-custom.e-input-group:not(.e-float-icon-left):not(.e-float-input):before,.e-custom.e-input-group:not(.e-float-icon-left):not(.e-float-input):after{background:transparent!important}.e-custom.e-input-group.e-error,.e-custom.e-input-group.e-control-wrapper.e-error,.e-custom.e-input-group.e-error:not(.e-float-icon-left),.e-custom.e-input-group.e-control-wrapper.e-error:not(.e-float-icon-left){border-color:#f31700!important}.e-custom.e-input-group.e-error.e-control-wrapper:focus-within{box-shadow:0 0 3px #f31700!important}.read-only-input{color:gray!important}.read-only-textbox{background:#f2f2f2!important}.editable-input{color:#000!important;opacity:.8}.editable-textbox{background:#fff!important}\n"] }]
|
|
50
101
|
}], ctorParameters: function () { return [{ type: i1.ZComponentService }]; }, propDecorators: { sfdatetimepicker: [{
|
|
51
102
|
type: ViewChild,
|
|
52
103
|
args: ["sfdatetimepicker"]
|
|
53
104
|
}] } });
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ZkYXRldGltZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi9zZmRhdGV0aW1lcGlja2VyL3NmZGF0ZXRpbWVwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvc2ZkYXRldGltZXBpY2tlci9zZmRhdGV0aW1lcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU9oRiwyQ0FBMkM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRXhFLE9BQU8sRUFBYyxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7OztBQVUvRCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsY0FBYztJQVEzRCxZQUNFLGdCQUFtQztRQUVuQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQVJuQixZQUFPLEdBQVMsSUFBSSxDQUFDO1FBQ3JCLFlBQU8sR0FBUyxJQUFJLENBQUM7UUFFckIsc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBbUJuQyxpQkFBWSxHQUFHLENBQUMsT0FBWSxFQUFFLE9BQVksRUFBTyxFQUFFO1lBQ3hELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFO2dCQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ2xDO1lBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDbEM7UUFDSCxDQUFDLENBQUE7SUFwQkQsQ0FBQztJQUVELFFBQVE7UUFDTixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN2RSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBQ3RELElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBV08scUJBQXFCO1FBQzNCLE1BQU0saUJBQWlCLEdBQUcsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBYyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvRixNQUFNLFlBQVksR0FBRyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUU1RCxNQUFNLGlCQUFpQixHQUFHLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQWMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0YsTUFBTSxZQUFZLEdBQUcsaUJBQWlCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDNUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDaEQsQ0FBQzs7c0hBekNVLHlCQUF5QjswR0FBekIseUJBQXlCLHlNQ3JCdEMscWpDQWtCQTsyRkRHYSx5QkFBeUI7a0JBUHJDLFNBQVM7K0JBQ0Usc0JBQXNCLGlCQUdqQixpQkFBaUIsQ0FBQyxJQUFJO3dHQUlOLGdCQUFnQjtzQkFBOUMsU0FBUzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8qKioqKioqKioqIElvbmljICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBQbHVnaW4gKioqKioqKioqKi8gXHJcbmltcG9ydCB7IERhdGVUaW1lUGlja2VyIH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWNhbGVuZGFyc1wiOyBcclxuXHJcbi8qKioqKioqKioqIENvbXBvbmVudCAmIFNlcnZpY2UgKioqKioqKioqKi9cclxuaW1wb3J0IHsgSW5wdXRGaWVsZEJhc2UgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9pbnB1dGZpZWxkYmFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgWkNvbXBvbmVudFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvemNvbXBvbmVudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnQsIFpDb21wb25lbnRIZWxwZXIgfSBmcm9tIFwibW1oZ2xvYmFsLXpjb3JlXCI7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtc2ZkYXRldGltZXBpY2tlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NmZGF0ZXRpbWVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NmZGF0ZXRpbWVwaWNrZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFNmZGF0ZXRpbWVwaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBJbnB1dEZpZWxkQmFzZSBpbXBsZW1lbnRzIFpDb21wb25lbnQsIE9uSW5pdCB7IFxyXG4gIEBWaWV3Q2hpbGQoXCJzZmRhdGV0aW1lcGlja2VyXCIpIHNmZGF0ZXRpbWVwaWNrZXI6IERhdGVUaW1lUGlja2VyOyBcclxuICBcclxuICBwdWJsaWMgbWluRGF0ZTogRGF0ZSA9IG51bGw7XHJcbiAgcHVibGljIG1heERhdGU6IERhdGUgPSBudWxsO1xyXG4gIHB1YmxpYyBpbnRlcnZhbDogbnVtYmVyOyBcclxuICBwdWJsaWMgZGlzYWJsZVN0cmljdE1vZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBjb21wb25lbnRTZXJ2aWNlOiBaQ29tcG9uZW50U2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoY29tcG9uZW50U2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHN1cGVyLnNldHVwSW5uZXJGaWVsZCgpOyBcclxuICAgIHRoaXMuaW50ZXJ2YWwgPSB0aGlzLmRhdGEuU3RlcFZhbHVlID8gTnVtYmVyKHRoaXMuZGF0YS5TdGVwVmFsdWUpIDogMzA7XHJcbiAgICB0aGlzLmRpc2FibGVTdHJpY3RNb2RlID0gIXRoaXMuZGF0YS5EaXNhYmxlU3RyaWN0TW9kZTtcclxuICAgIHRoaXMuc2V0TWluQW5kTWF4RGF0ZVJhbmdlKCk7IFxyXG4gIH1cclxuIFxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuY29tcG9uZW50U2VydmljZS5kZWNyZW1lbnRDb21wb25lbnRDb3VudGVyRm9yRmllbGQodGhpcy5kYXRhKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXREYXRlUmFuZ2UgPSAoTWluRGF0ZTogYW55LCBNYXhEYXRlOiBhbnkpOiBhbnkgPT4ge1xyXG4gICAgaWYgKCFpc05hTihEYXRlLnBhcnNlKE1pbkRhdGUpKSkge1xyXG4gICAgICB0aGlzLm1pbkRhdGUgPSBuZXcgRGF0ZShNaW5EYXRlKTtcclxuICAgIH1cclxuICAgIGlmICghaXNOYU4oRGF0ZS5wYXJzZShNYXhEYXRlKSkpIHtcclxuICAgICAgdGhpcy5tYXhEYXRlID0gbmV3IERhdGUoTWF4RGF0ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldE1pbkFuZE1heERhdGVSYW5nZSgpIHtcclxuICAgIGNvbnN0IG1pbkRhdGVHcm91cFZhbHVlID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cFZhbHVlKHRoaXMuZGF0YS5NaW5EYXRlIGFzIGFueSwgdGhpcy5ncm91cCk7XHJcbiAgICBjb25zdCBtaW5EYXRlVmFsdWUgPSBtaW5EYXRlR3JvdXBWYWx1ZSB8fCB0aGlzLmRhdGEuTWluRGF0ZTtcclxuXHJcbiAgICBjb25zdCBtYXhEYXRlR3JvdXBWYWx1ZSA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBWYWx1ZSh0aGlzLmRhdGEuTWF4RGF0ZSBhcyBhbnksIHRoaXMuZ3JvdXApO1xyXG4gICAgY29uc3QgbWF4RGF0ZVZhbHVlID0gbWF4RGF0ZUdyb3VwVmFsdWUgfHwgdGhpcy5kYXRhLk1heERhdGU7XHJcbiAgICB0aGlzLnNldERhdGVSYW5nZShtaW5EYXRlVmFsdWUsIG1heERhdGVWYWx1ZSk7XHJcbiAgfSBcclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiemRhdGUtY29udGFpbmVyIGUxdGFnLXN0eWxlXCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGVcIj5cclxuICA8ZGl2IGNsYXNzPVwiZGF0ZVRpbWVEZXNrdG9wQ29udGFpbmVyXCIgKm5nSWY9XCIhaXNNb2JpbGVTY3JlZW4oKVwiPlxyXG4gICAgPGVqcy1kYXRldGltZXBpY2tlciAjc2ZkYXRldGltZXBpY2tlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJmb3JtLmdldChkYXRhLlZhbHVlKS52YWx1ZSB8IGRhdGVQYXJzZXIgOiBkYXRhXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttaW5dPVwibWluRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttYXhdPVwibWF4RGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdGVwXT1cImludGVydmFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1hdF09XCJkYXRhIHwgZGF0ZUZvcm1hdEtlbmRvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cImRhdGEuSXNSZXF1aXJlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJkYXRhLlBsYWNlSG9sZGVyXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93Q2xlYXJCdXR0b25dPVwiZGF0YS5DbGVhckJ1dHRvblwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3RyaWN0TW9kZV09XCJkaXNhYmxlU3RyaWN0TW9kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNzc0NsYXNzPVwiZS1jdXN0b21cIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIighIWNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGRdIDogY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5KVwiPlxyXG4gICAgPC9lanMtZGF0ZXRpbWVwaWNrZXI+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiBcclxuIl19
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ZkYXRldGltZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi9zZmRhdGV0aW1lcGlja2VyL3NmZGF0ZXRpbWVwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvc2ZkYXRldGltZXBpY2tlci9zZmRhdGV0aW1lcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVFoRiwyQ0FBMkM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRXhFLE9BQU8sRUFBYyxnQkFBZ0IsRUFBVSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7QUFVdkUsTUFBTSxPQUFPLHlCQUEwQixTQUFRLGNBQWM7SUFRM0QsWUFDRSxnQkFBbUM7UUFFbkMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFUbkIsWUFBTyxHQUFTLElBQUksQ0FBQztRQUNyQixZQUFPLEdBQVMsSUFBSSxDQUFDO1FBRXJCLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQXVDbkMsaUJBQVksR0FBRyxDQUFDLE9BQVksRUFBRSxPQUFZLEVBQU8sRUFBRTtZQUN4RCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNsQztZQUNELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFF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LElBQUksQ0FBQyxPQUFjLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9GLE1BQU0sWUFBWSxHQUFHLGlCQUFpQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzVELElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ2hELENBQUM7O3NIQTFHVSx5QkFBeUI7MEdBQXpCLHlCQUF5Qix5TUN0QnRDLHV3Q0FtQkE7MkZER2EseUJBQXlCO2tCQVByQyxTQUFTOytCQUNFLHNCQUFzQixpQkFHakIsaUJBQWlCLENBQUMsSUFBSTt3R0FJTixnQkFBZ0I7c0JBQTlDLFNBQVM7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKiogQW5ndWxhciAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vKioqKioqKioqKiBJb25pYyAqKioqKioqKioqL1xyXG5cclxuLyoqKioqKioqKiogUGx1Z2luICoqKioqKioqKiovXHJcbmltcG9ydCB7IERhdGVUaW1lUGlja2VyIH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWNhbGVuZGFyc1wiO1xyXG5pbXBvcnQgeyBGb3JtVmFsaWRhdG9yLCBGb3JtVmFsaWRhdG9yTW9kZWwgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItaW5wdXRzJztcclxuXHJcbi8qKioqKioqKioqIENvbXBvbmVudCAmIFNlcnZpY2UgKioqKioqKioqKi9cclxuaW1wb3J0IHsgSW5wdXRGaWVsZEJhc2UgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9pbnB1dGZpZWxkYmFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgWkNvbXBvbmVudFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvemNvbXBvbmVudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnQsIFpDb21wb25lbnRIZWxwZXIsIFpGaWVsZCB9IGZyb20gXCJtbWhnbG9iYWwtemNvcmVcIjtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1zZmRhdGV0aW1lcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2ZkYXRldGltZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2ZkYXRldGltZXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgU2ZkYXRldGltZXBpY2tlckNvbXBvbmVudCBleHRlbmRzIElucHV0RmllbGRCYXNlIGltcGxlbWVudHMgWkNvbXBvbmVudCwgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKFwic2ZkYXRldGltZXBpY2tlclwiKSBzZmRhdGV0aW1lcGlja2VyOiBEYXRlVGltZVBpY2tlcjtcclxuICBwdWJsaWMgbWluRGF0ZTogRGF0ZSA9IG51bGw7XHJcbiAgcHVibGljIG1heERhdGU6IERhdGUgPSBudWxsO1xyXG4gIHB1YmxpYyBpbnRlcnZhbDogbnVtYmVyO1xyXG4gIHB1YmxpYyBkaXNhYmxlU3RyaWN0TW9kZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBmb3JtT2JqZWN0PzogRm9ybVZhbGlkYXRvcjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBjb21wb25lbnRTZXJ2aWNlOiBaQ29tcG9uZW50U2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoY29tcG9uZW50U2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIFpDb21wb25lbnRIZWxwZXIuc2V0Q29tcG9uZW50UHJvcGVydGllcyh0aGlzKTtcclxuICAgIFpDb21wb25lbnRIZWxwZXIucmVnaXN0ZXJDb21wb25lbnQodGhpcyk7XHJcbiAgICBzdXBlci5zZXR1cElubmVyRmllbGQoKTtcclxuICAgIHRoaXMuaW50ZXJ2YWwgPSB0aGlzLmRhdGEuU3RlcFZhbHVlID8gTnVtYmVyKHRoaXMuZGF0YS5TdGVwVmFsdWUpIDogMzA7XHJcbiAgICB0aGlzLmRpc2FibGVTdHJpY3RNb2RlID0gIXRoaXMuZGF0YS5EaXNhYmxlU3RyaWN0TW9kZTtcclxuICAgIHRoaXMuc2V0TWluQW5kTWF4RGF0ZVJhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmNvbXBvbmVudFNlcnZpY2UuZGVjcmVtZW50Q29tcG9uZW50Q291bnRlckZvckZpZWxkKHRoaXMuZGF0YSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnZlcnREYXRlVGltZVZhbHVlVG9TdHJpbmcodmFsdWU6IGFueSk6IGFueSB7XHJcbiAgICBpZiAodmFsdWUgPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdmFsdWVEYXRlID0gdmFsdWUgYXMgRGF0ZTtcclxuXHJcbiAgICBpZiAodGhpcy5kYXRhLklzSWdub3JlVGltZVpvbmUpIHtcclxuICAgICAgY29uc3QgdGltZXpvbmVPZmZTZXQgPSBuZXcgRGF0ZSh2YWx1ZSkuZ2V0VGltZXpvbmVPZmZzZXQoKTtcclxuICAgICAgdmFsdWVEYXRlLnNldE1pbnV0ZXModmFsdWVEYXRlLmdldE1pbnV0ZXMoKSArICgtdGltZXpvbmVPZmZTZXQpKTtcclxuICAgICAgcmV0dXJuIHZhbHVlRGF0ZS50b0lTT1N0cmluZygpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlID8gdmFsdWUgOiBuZXcgRGF0ZSh2YWx1ZSkpLnRvSVNPU3RyaW5nKCk7XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldERhdGVSYW5nZSA9IChNaW5EYXRlOiBhbnksIE1heERhdGU6IGFueSk6IGFueSA9PiB7XHJcbiAgICBpZiAoIWlzTmFOKERhdGUucGFyc2UoTWluRGF0ZSkpKSB7XHJcbiAgICAgIHRoaXMubWluRGF0ZSA9IG5ldyBEYXRlKE1pbkRhdGUpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpc05hTihEYXRlLnBhcnNlKE1heERhdGUpKSkge1xyXG4gICAgICB0aGlzLm1heERhdGUgPSBuZXcgRGF0ZShNYXhEYXRlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVFbGVtZW50Q2xhc3Nlcyhmb3JtOiBhbnksIGZpZWxkRGF0YTogWkZpZWxkKSB7XHJcblxyXG4gICAgY29uc3QgaW5wdXRFbGVtZW50cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2FwcC1zZmRhdGV0aW1lcGlja2VyIC5lLWtleWJvYXJkLmUtZGF0ZXRpbWVwaWNrZXInKTtcclxuICAgIGNvbnN0IHRleHRib3hFbGVtZW50cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2FwcC1zZmRhdGV0aW1lcGlja2VyIC5lLWN1c3RvbS5lLWRhdGV0aW1lLXdyYXBwZXInKTtcclxuXHJcbiAgICB0aGlzLnVwZGF0ZUlucHV0RWxlbWVudHMoaW5wdXRFbGVtZW50cywgZmllbGREYXRhKTtcclxuICAgIHRoaXMudXBkYXRlVGV4dGJveEVsZW1lbnRzKHRleHRib3hFbGVtZW50cywgZmllbGREYXRhKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlSW5wdXRFbGVtZW50cyhpbnB1dEVsZW1lbnRzOiBOb2RlTGlzdE9mPEVsZW1lbnQ+LCBmaWVsZERhdGE6IFpGaWVsZCk6IHZvaWQge1xyXG4gICAgaW5wdXRFbGVtZW50cy5mb3JFYWNoKChpbnB1dDogRWxlbWVudCkgPT4ge1xyXG4gICAgICBjb25zdCBjbGFzc05hbWUgPSBmaWVsZERhdGFbXCJjb21wb25lbnRQcm9wZXJ0aWVzXCJdLmlzUmVhZE9ubHkgPyAncmVhZC1vbmx5LWlucHV0JyA6ICdlZGl0YWJsZS1pbnB1dCc7XHJcbiAgICAgIChpbnB1dCBhcyBIVE1MRWxlbWVudCkuY2xhc3NMaXN0LmFkZChjbGFzc05hbWUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZVRleHRib3hFbGVtZW50cyh0ZXh0Ym94RWxlbWVudHM6IE5vZGVMaXN0T2Y8RWxlbWVudD4sIGZpZWxkRGF0YTogWkZpZWxkKTogdm9pZCB7XHJcbiAgICB0ZXh0Ym94RWxlbWVudHMuZm9yRWFjaCgodGV4dGJveDogRWxlbWVudCkgPT4ge1xyXG4gICAgICBjb25zdCBjbGFzc05hbWUgPSBmaWVsZERhdGFbXCJjb21wb25lbnRQcm9wZXJ0aWVzXCJdLmlzUmVhZE9ubHkgPyAncmVhZC1vbmx5LXRleHRib3gnIDogJ2VkaXRhYmxlLXRleHRib3gnO1xyXG4gICAgICAodGV4dGJveCBhcyBIVE1MRWxlbWVudCkuY2xhc3NMaXN0LmFkZChjbGFzc05hbWUpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGV4dGJveEVsZW1lbnRzLmZvckVhY2goZWxlbWVudCA9PiB7XHJcblxyXG4gICAgICBpZiAoZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3N0eWxlJykpIHtcclxuICAgICAgICBjb25zdCBzdHlsZXMgPSBlbGVtZW50LmdldEF0dHJpYnV0ZSgnc3R5bGUnKTtcclxuICAgICAgICBpZiAoIXN0eWxlcy5pbmNsdWRlcygnaGVpZ2h0JykpIHtcclxuICAgICAgICAgIGVsZW1lbnRbXCJzdHlsZVwiXS5oZWlnaHQgPSAnMzBweCc7IC8vIFNldCBoZWlnaHQgdG8gOTAlXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNoYW5nZShhcmdzOiBhbnkpIHtcclxuXHJcbiAgICBjb25zdCB2YWx1ZSA9IGFyZ3MudmFsdWU7XHJcbiAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLmRhdGEuVmFsdWVdO1xyXG4gICAgY29uc3QgdmFsID0gdGhpcy5jb252ZXJ0RGF0ZVRpbWVWYWx1ZVRvU3RyaW5nKHZhbHVlKTtcclxuXHJcbiAgICBpZiAoZm9ybUNvbnRyb2wpIHtcclxuICAgICAgZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsKTtcclxuICAgICAgZm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgfVxyXG4gICAgc3VwZXIub25DaGFuZ2UobnVsbCwgdmFsKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0TWluQW5kTWF4RGF0ZVJhbmdlKCkge1xyXG4gICAgY29uc3QgbWluRGF0ZUdyb3VwVmFsdWUgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwVmFsdWUodGhpcy5kYXRhLk1pbkRhdGUgYXMgYW55LCB0aGlzLmdyb3VwKTtcclxuICAgIGNvbnN0IG1pbkRhdGVWYWx1ZSA9IG1pbkRhdGVHcm91cFZhbHVlIHx8IHRoaXMuZGF0YS5NaW5EYXRlO1xyXG5cclxuICAgIGNvbnN0IG1heERhdGVHcm91cFZhbHVlID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cFZhbHVlKHRoaXMuZGF0YS5NYXhEYXRlIGFzIGFueSwgdGhpcy5ncm91cCk7XHJcbiAgICBjb25zdCBtYXhEYXRlVmFsdWUgPSBtYXhEYXRlR3JvdXBWYWx1ZSB8fCB0aGlzLmRhdGEuTWF4RGF0ZTtcclxuICAgIHRoaXMuc2V0RGF0ZVJhbmdlKG1pbkRhdGVWYWx1ZSwgbWF4RGF0ZVZhbHVlKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ6ZGF0ZS1jb250YWluZXIgZTF0YWctc3R5bGVcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJkYXRlVGltZURlc2t0b3BDb250YWluZXJcIiAqbmdJZj1cIiFpc01vYmlsZVNjcmVlbigpXCIgW25nQ2xhc3NdPVwidXBkYXRlRWxlbWVudENsYXNzZXMoZm9ybSwgZGF0YSlcIj5cclxuICAgIDxlanMtZGF0ZXRpbWVwaWNrZXIgI3NmZGF0ZXRpbWVwaWNrZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwiZm9ybS5nZXQoZGF0YS5WYWx1ZSkudmFsdWUgfCBkYXRlUGFyc2VyIDogZGF0YVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttaW5dPVwibWluRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttYXhdPVwibWF4RGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdGVwXT1cImludGVydmFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1hdF09XCJkYXRhIHwgZGF0ZUZvcm1hdEtlbmRvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cIighIWNvbXBvbmVudFByb3BlcnRpZXMuaXNSZXF1aXJlZEZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1JlcXVpcmVkRmllbGRdIDogY29tcG9uZW50UHJvcGVydGllcy5pc1JlcXVpcmVkKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJkYXRhLlBsYWNlSG9sZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dDbGVhckJ1dHRvbl09XCJkYXRhLkNsZWFyQnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0cmljdE1vZGVdPVwiZGlzYWJsZVN0cmljdE1vZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjc3NDbGFzcz1cImUtY3VzdG9tXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cIighIWNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGRdIDogY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlMVwiPlxyXG4gICAgPC9lanMtZGF0ZXRpbWVwaWNrZXI+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/********** Angular **********/
|
|
2
|
-
import { Component, ViewChild, ViewContainerRef, HostListener } from
|
|
2
|
+
import { Component, ViewChild, ViewContainerRef, HostListener } from '@angular/core';
|
|
3
3
|
/********** Ionic **********/
|
|
4
4
|
/********** Plugin **********/
|
|
5
|
-
import { filter, interval, tap, first } from
|
|
6
|
-
import { DrawerComponent } from
|
|
5
|
+
import { filter, interval, tap, first } from 'rxjs';
|
|
6
|
+
import { DrawerComponent } from '@progress/kendo-angular-layout';
|
|
7
7
|
/********** Component & Service **********/
|
|
8
|
-
import { FieldBase } from
|
|
9
|
-
import { ZComponentHelper } from
|
|
8
|
+
import { FieldBase } from '../../components/fieldbase.component';
|
|
9
|
+
import { ZComponentHelper } from 'mmhglobal-zcore';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
11
|
import * as i1 from "../../services/zcomponent.service";
|
|
12
12
|
import * as i2 from "../../services/main.service";
|
|
@@ -93,7 +93,7 @@ ZgridContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0",
|
|
|
93
93
|
ZgridContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: ZgridContainerComponent, selector: "app-zgrid-container", host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "formPage", first: true, predicate: ["formPage"], descendants: true, read: ViewContainerRef }, { propertyName: "drawer", first: true, predicate: DrawerComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"grid-container\" *ngIf=\"data.ComponentStyleType === 'style2'\">\r\n <kendo-drawer-container [style]=\"componentProperties.containerStyle.style\" class=\"e1tag-container-style\">\r\n <kendo-drawer #drawer mode=\"overlay\" [position]=\"'end'\" [mini]=\"false\" [animation]=\"{duration: 800}\" [expanded]=\"isShowFormPage\"\r\n [style]=\"componentProperties.containerStyle.style1\" class=\"e1tag-container-style1\" [width]=\"innerWidth\"\r\n (expandedChange)=\"onExpandChange($event)\">\r\n <ng-template kendoDrawerTemplate>\r\n <div [style]=\"componentProperties.containerStyle.style2\" class=\"e1tag-container-style2\">\r\n <div class=\"formHeader\">\r\n <label class=\"formHeader-title\">Employee Profile</label>\r\n <ion-button size=\"small\" fill=\"clear\" color=\"medium\" (click)=\"drawer.toggle()\">\r\n <fa-icon class=\"close-btn-icon\" icon=\"times\"></fa-icon>\r\n </ion-button>\r\n </div>\r\n <ng-container #formPage></ng-container>\r\n </div>\r\n </ng-template>\r\n </kendo-drawer>\r\n\r\n <kendo-drawer-content [style]=\"componentProperties.containerStyle.style3\" class=\"e1tag-container-style3\">\r\n <app-zgrid [style]=\"componentProperties.containerStyle.style4\" class=\"e1tag-container-style4\" [data]=\"data\"\r\n [group]=\"group\" [form]=\"form\" [containerField]=\"containerField\" [componentProperties]=\"componentProperties\"\r\n (showFormPage)=\"drawer.toggle($event)\">\r\n </app-zgrid>\r\n </kendo-drawer-content>\r\n </kendo-drawer-container>\r\n</div>\r\n\r\n\r\n<div class=\"grid-container\" *ngIf=\"data.ComponentStyleType !== 'style2'\">\r\n <app-zgrid [style]=\"componentProperties.containerStyle.style4\" class=\"e1tag-container-style4\" [data]=\"data\"\r\n [group]=\"group\" [form]=\"form\" [containerField]=\"containerField\" [componentProperties]=\"componentProperties\"\r\n (showFormPage)=\"toggleFormPage($event)\">\r\n </app-zgrid>\r\n <div>\r\n <div *ngIf=\"!group.isLoading\" [class.embeddedFormPage]=\"isShowFormPage\">\r\n <ng-container #formPage></ng-container>\r\n </div>\r\n <div *ngIf=\"group.isLoading\" class=\"spinner-container\">\r\n <app-page-loader></app-page-loader>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host ::ng-deep kendo-drawer{box-shadow:-1px 0 11px 1px var(--ion-color-primary);background:#f1f9ff}:host ::ng-deep kendo-drawer .k-drawer-wrapper{padding:10px;padding-top:calc(var(--ion-header-height) + 10px)}:host ::ng-deep kendo-drawer .formHeader{display:flex}:host ::ng-deep kendo-drawer .formHeader>.formHeader-title{margin:10px 0 0 20px;font-size:calc(var(--page-title-font-size) + 2px);font-weight:600;flex-grow:1}:host ::ng-deep kendo-drawer .formHeader .close-btn-icon{font-size:calc(var(--page-title-font-size) + 4px)}.embeddedFormPage{min-height:1200px;padding:8px 10px 20px;background:#ffffff;border-radius:5px;box-shadow:0 -3px 9px 4px #0167ae;margin:30px 15px 15px}\n"], components: [{ type: i3.DrawerContainerComponent, selector: "kendo-drawer-container" }, { type: i3.DrawerComponent, selector: "kendo-drawer", inputs: ["mode", "position", "mini", "expanded", "width", "miniWidth", "autoCollapse", "items", "isItemExpanded", "animation"], outputs: ["expand", "collapse", "select", "expandedChange"], exportAs: ["kendoDrawer"] }, { type: i4.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { type: i5.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { type: i3.DrawerContentComponent, selector: "kendo-drawer-content" }, { type: i6.ZgridComponent, selector: "app-zgrid" }, { type: i7.PageLoaderComponent, selector: "app-page-loader" }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.DrawerTemplateDirective, selector: "[kendoDrawerTemplate]" }] });
|
|
94
94
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZgridContainerComponent, decorators: [{
|
|
95
95
|
type: Component,
|
|
96
|
-
args: [{ selector:
|
|
96
|
+
args: [{ selector: 'app-zgrid-container', template: "<div class=\"grid-container\" *ngIf=\"data.ComponentStyleType === 'style2'\">\r\n <kendo-drawer-container [style]=\"componentProperties.containerStyle.style\" class=\"e1tag-container-style\">\r\n <kendo-drawer #drawer mode=\"overlay\" [position]=\"'end'\" [mini]=\"false\" [animation]=\"{duration: 800}\" [expanded]=\"isShowFormPage\"\r\n [style]=\"componentProperties.containerStyle.style1\" class=\"e1tag-container-style1\" [width]=\"innerWidth\"\r\n (expandedChange)=\"onExpandChange($event)\">\r\n <ng-template kendoDrawerTemplate>\r\n <div [style]=\"componentProperties.containerStyle.style2\" class=\"e1tag-container-style2\">\r\n <div class=\"formHeader\">\r\n <label class=\"formHeader-title\">Employee Profile</label>\r\n <ion-button size=\"small\" fill=\"clear\" color=\"medium\" (click)=\"drawer.toggle()\">\r\n <fa-icon class=\"close-btn-icon\" icon=\"times\"></fa-icon>\r\n </ion-button>\r\n </div>\r\n <ng-container #formPage></ng-container>\r\n </div>\r\n </ng-template>\r\n </kendo-drawer>\r\n\r\n <kendo-drawer-content [style]=\"componentProperties.containerStyle.style3\" class=\"e1tag-container-style3\">\r\n <app-zgrid [style]=\"componentProperties.containerStyle.style4\" class=\"e1tag-container-style4\" [data]=\"data\"\r\n [group]=\"group\" [form]=\"form\" [containerField]=\"containerField\" [componentProperties]=\"componentProperties\"\r\n (showFormPage)=\"drawer.toggle($event)\">\r\n </app-zgrid>\r\n </kendo-drawer-content>\r\n </kendo-drawer-container>\r\n</div>\r\n\r\n\r\n<div class=\"grid-container\" *ngIf=\"data.ComponentStyleType !== 'style2'\">\r\n <app-zgrid [style]=\"componentProperties.containerStyle.style4\" class=\"e1tag-container-style4\" [data]=\"data\"\r\n [group]=\"group\" [form]=\"form\" [containerField]=\"containerField\" [componentProperties]=\"componentProperties\"\r\n (showFormPage)=\"toggleFormPage($event)\">\r\n </app-zgrid>\r\n <div>\r\n <div *ngIf=\"!group.isLoading\" [class.embeddedFormPage]=\"isShowFormPage\">\r\n <ng-container #formPage></ng-container>\r\n </div>\r\n <div *ngIf=\"group.isLoading\" class=\"spinner-container\">\r\n <app-page-loader></app-page-loader>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host ::ng-deep kendo-drawer{box-shadow:-1px 0 11px 1px var(--ion-color-primary);background:#f1f9ff}:host ::ng-deep kendo-drawer .k-drawer-wrapper{padding:10px;padding-top:calc(var(--ion-header-height) + 10px)}:host ::ng-deep kendo-drawer .formHeader{display:flex}:host ::ng-deep kendo-drawer .formHeader>.formHeader-title{margin:10px 0 0 20px;font-size:calc(var(--page-title-font-size) + 2px);font-weight:600;flex-grow:1}:host ::ng-deep kendo-drawer .formHeader .close-btn-icon{font-size:calc(var(--page-title-font-size) + 4px)}.embeddedFormPage{min-height:1200px;padding:8px 10px 20px;background:#ffffff;border-radius:5px;box-shadow:0 -3px 9px 4px #0167ae;margin:30px 15px 15px}\n"] }]
|
|
97
97
|
}], ctorParameters: function () { return [{ type: i1.ZComponentService }, { type: i2.MainService }]; }, propDecorators: { formPage: [{
|
|
98
98
|
type: ViewChild,
|
|
99
99
|
args: ['formPage', { read: ViewContainerRef }]
|
|
@@ -104,4 +104,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImpor
|
|
|
104
104
|
type: HostListener,
|
|
105
105
|
args: ['window:resize', ['$event']]
|
|
106
106
|
}] } });
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemdyaWQtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL3pncmlkL2NvbnRhaW5lci96Z3JpZC1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemdyaWQvY29udGFpbmVyL3pncmlkLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBcUIsU0FBUyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4Ryw2QkFBNkI7QUFFN0IsOEJBQThCO0FBQzlCLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRWpFLDJDQUEyQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFHakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7QUFTbkQsTUFBTSxPQUFPLHVCQUF3QixTQUFRLFNBQVM7SUFPcEQsWUFDUyxnQkFBbUMsRUFDbEMsV0FBd0I7UUFFaEMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFIakIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFtQjtRQUNsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUozQixtQkFBYyxHQUFHLEtBQUssQ0FBQztJQU85QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxRQUFRLENB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LENBQUMsQ0FBQztJQUM5QyxDQUFDOztvSEFoR1UsdUJBQXVCO3dHQUF2Qix1QkFBdUIsME1BQ0gsZ0JBQWdCLHNEQUNwQyxlQUFlLHVFQ3hCNUIsNHlFQTBDQTsyRkRwQmEsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNFLHFCQUFxQjtrSUFNb0IsUUFBUTtzQkFBMUQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ2QsTUFBTTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQXlEMUIsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmLCBIb3N0TGlzdGVuZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBmaWx0ZXIsIGludGVydmFsLCB0YXAsIGZpcnN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgRHJhd2VyQ29tcG9uZW50IH0gZnJvbSBcIkBwcm9ncmVzcy9rZW5kby1hbmd1bGFyLWxheW91dFwiO1xyXG5cclxuLyoqKioqKioqKiogQ29tcG9uZW50ICYgU2VydmljZSAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBGaWVsZEJhc2UgfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9maWVsZGJhc2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3pjb21wb25lbnQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBNYWluU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9tYWluLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgWkNvbXBvbmVudEhlbHBlciB9IGZyb20gXCJtbWhnbG9iYWwtemNvcmVcIjtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhcHAtemdyaWQtY29udGFpbmVyXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi96Z3JpZC1jb250YWluZXIuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vemdyaWQtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFpncmlkQ29udGFpbmVyQ29tcG9uZW50IGV4dGVuZHMgRmllbGRCYXNlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBWaWV3Q2hpbGQoJ2Zvcm1QYWdlJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIGZvcm1QYWdlO1xyXG4gIEBWaWV3Q2hpbGQoRHJhd2VyQ29tcG9uZW50KSBwdWJsaWMgZHJhd2VyOiBEcmF3ZXJDb21wb25lbnQ7XHJcblxyXG4gIHB1YmxpYyBpbm5lcldpZHRoOiBhbnk7XHJcbiAgcHVibGljIGlzU2hvd0Zvcm1QYWdlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGNvbXBvbmVudFNlcnZpY2U6IFpDb21wb25lbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtYWluU2VydmljZTogTWFpblNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKGNvbXBvbmVudFNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5kYXRhLkNvbXBvbmVudFN0eWxlVHlwZSA9PT0gYHN0eWxlJHsyfWApIHtcclxuICAgICAgdGhpcy5zZXR1cFN0eWxlMigpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5kYXRhLkNvbXBvbmVudFN0eWxlVHlwZSA9PT0gYHN0eWxlJHszfWApIHtcclxuICAgICAgdGhpcy5zZXR1cFN0eWxlMygpO1xyXG4gICAgfVxyXG4gICAgc3VwZXIuaW5pdENvbXBvbmVudCgpLnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5jb21wb25lbnRTZXJ2aWNlLmRlY3JlbWVudENvbXBvbmVudENvdW50ZXJGb3JGaWVsZCh0aGlzLmRhdGEpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgfVxyXG5cclxuICAvLyNyZWdpb24gSGVscGVyIEZ1bmN0aW9uc1xyXG4gIHByaXZhdGUgZGlzcGxheUZvcm1QYWdlKCkge1xyXG4gICAgY29uc3QgcGFnZUVsZW1lbnQgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwVmFsdWUodGhpcy5kYXRhWydDb250YWluZXJGb3JtJ10sIHRoaXMuZ3JvdXApO1xyXG4gICAgdGhpcy5tYWluU2VydmljZS5sb2FkQ29udGFpbmVyVmlldyh7IHZpZXdDb250YWluZXJSZWY6IHRoaXMuZm9ybVBhZ2UgfSwgcGFnZUVsZW1lbnQsIHRoaXMuZGF0YSwgdGhpcy5ncm91cCk7XHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICAvLyNyZWdpb24gU3R5bGUgMzogREVDXHJcbiAgcHJpdmF0ZSBzZXR1cFN0eWxlMygpIHtcclxuICAgIHRoaXMuZ3JvdXBbYGUxQ2xvc2VHcmlkQ29udGFpbmVyYF0gPSB0aGlzLnRvZ2dsZUZvcm1QYWdlLmJpbmQodGhpcywgZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvZ2dsZUZvcm1QYWdlKGlzU2hvdz86IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuaXNTaG93Rm9ybVBhZ2UgPSBpc1Nob3c7XHJcbiAgICBpZiAoaXNTaG93KSB7XHJcbiAgICAgIHRoaXMuZGlzcGxheUZvcm1QYWdlKCk7XHJcbiAgICAgIHRoaXMubWFpblNlcnZpY2Uuc2Nyb2xsVG9FbWJiZWRDb21wb25lbnRQYWdlKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuZGF0YS5Db250YWluZXJGb3JtQXV0b1Njcm9sbCkge1xyXG4gICAgICAgIHRoaXMubWFpblNlcnZpY2Uuc2Nyb2xsVG9Ub3BPZlBhZ2UoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmZvcm1QYWdlLmNsZWFyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyNyZWdpb24gU3RseWUgMjogRHJhd2VyXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXHJcbiAgb25SZXNpemUoZXZlbnQpIHtcclxuICAgIHRoaXMuc2V0RHJhd2VyV2lkdGgoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0dXBTdHlsZTIoKSB7XHJcbiAgICB0aGlzLnNldERyYXdlcldpZHRoKCk7XHJcbiAgICB0aGlzLmdyb3VwW2BlMUNsb3NlR3JpZENvbnRhaW5lcmBdID0gdGhpcy50b2dnbGVEcmF3ZXIuYmluZCh0aGlzLCBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHRvZ2dsZURyYXdlcigpIHtcclxuICAgIHRoaXMuZHJhd2VyLnRvZ2dsZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uRXhwYW5kQ2hhbmdlKGlzRXhwYW5kZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuaXNTaG93Rm9ybVBhZ2UgPSBpc0V4cGFuZGVkO1xyXG4gICAgaWYgKGlzRXhwYW5kZWQpIHtcclxuICAgICAgdGhpcy5zZXR1cERyYXdlckNvbnRlbnQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0dXBEcmF3ZXJDb250ZW50KCkge1xyXG4gICAgLy8gTmVlZCB0byB3YWl0IGZvciBmb3JtIHBhZ2UgdG8gcmVuZGVyIGluIERPTVxyXG4gICAgaWYgKHRoaXMuZGF0YVsnQ29udGFpbmVyRm9ybSddKSB7XHJcbiAgICAgIGludGVydmFsKDUwMCkucGlwZShcclxuICAgICAgICBmaWx0ZXIoeCA9PlxyXG4gICAgICAgICAgdGhpcy5mb3JtUGFnZVxyXG4gICAgICAgICksXHJcbiAgICAgICAgZmlyc3QoKSxcclxuICAgICAgICB0YXAoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5kaXNwbGF5Rm9ybVBhZ2UoKTtcclxuICAgICAgICB9KVxyXG4gICAgICApLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXREcmF3ZXJXaWR0aCgpIHtcclxuICAgIHRoaXMuaW5uZXJXaWR0aCA9ICh3aW5kb3cuaW5uZXJXaWR0aCAqIDAuOCk7XHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJncmlkLWNvbnRhaW5lclwiICpuZ0lmPVwiZGF0YS5Db21wb25lbnRTdHlsZVR5cGUgPT09ICdzdHlsZTInXCI+XHJcbiAgPGtlbmRvLWRyYXdlci1jb250YWluZXIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGVcIiBjbGFzcz1cImUxdGFnLWNvbnRhaW5lci1zdHlsZVwiPlxyXG4gICAgPGtlbmRvLWRyYXdlciAjZHJhd2VyIG1vZGU9XCJvdmVybGF5XCIgW3Bvc2l0aW9uXT1cIidlbmQnXCIgW21pbmldPVwiZmFsc2VcIiBbYW5pbWF0aW9uXT1cIntkdXJhdGlvbjogODAwfVwiIFtleHBhbmRlZF09XCJpc1Nob3dGb3JtUGFnZVwiXHJcbiAgICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlMVwiIGNsYXNzPVwiZTF0YWctY29udGFpbmVyLXN0eWxlMVwiIFt3aWR0aF09XCJpbm5lcldpZHRoXCJcclxuICAgICAgKGV4cGFuZGVkQ2hhbmdlKT1cIm9uRXhwYW5kQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvRHJhd2VyVGVtcGxhdGU+XHJcbiAgICAgICAgPGRpdiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTJcIiBjbGFzcz1cImUxdGFnLWNvbnRhaW5lci1zdHlsZTJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtSGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm1IZWFkZXItdGl0bGVcIj5FbXBsb3llZSBQcm9maWxlPC9sYWJlbD5cclxuICAgICAgICAgICAgPGlvbi1idXR0b24gc2l6ZT1cInNtYWxsXCIgZmlsbD1cImNsZWFyXCIgY29sb3I9XCJtZWRpdW1cIiAoY2xpY2spPVwiZHJhd2VyLnRvZ2dsZSgpXCI+XHJcbiAgICAgICAgICAgICAgPGZhLWljb24gY2xhc3M9XCJjbG9zZS1idG4taWNvblwiIGljb249XCJ0aW1lc1wiPjwvZmEtaWNvbj5cclxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICNmb3JtUGFnZT48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwva2VuZG8tZHJhd2VyPlxyXG5cclxuICAgIDxrZW5kby1kcmF3ZXItY29udGVudCBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTNcIiBjbGFzcz1cImUxdGFnLWNvbnRhaW5lci1zdHlsZTNcIj5cclxuICAgICAgPGFwcC16Z3JpZCBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTRcIiBjbGFzcz1cImUxdGFnLWNvbnRhaW5lci1zdHlsZTRcIiBbZGF0YV09XCJkYXRhXCJcclxuICAgICAgICBbZ3JvdXBdPVwiZ3JvdXBcIiBbZm9ybV09XCJmb3JtXCIgW2NvbnRhaW5lckZpZWxkXT1cImNvbnRhaW5lckZpZWxkXCIgW2NvbXBvbmVudFByb3BlcnRpZXNdPVwiY29tcG9uZW50UHJvcGVydGllc1wiXHJcbiAgICAgICAgKHNob3dGb3JtUGFnZSk9XCJkcmF3ZXIudG9nZ2xlKCRldmVudClcIj5cclxuICAgICAgPC9hcHAtemdyaWQ+XHJcbiAgICA8L2tlbmRvLWRyYXdlci1jb250ZW50PlxyXG4gIDwva2VuZG8tZHJhd2VyLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcblxyXG5cclxuPGRpdiBjbGFzcz1cImdyaWQtY29udGFpbmVyXCIgKm5nSWY9XCJkYXRhLkNvbXBvbmVudFN0eWxlVHlwZSAhPT0gJ3N0eWxlMidcIj5cclxuICA8YXBwLXpncmlkIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlNFwiIGNsYXNzPVwiZTF0YWctY29udGFpbmVyLXN0eWxlNFwiIFtkYXRhXT1cImRhdGFcIlxyXG4gICAgW2dyb3VwXT1cImdyb3VwXCIgW2Zvcm1dPVwiZm9ybVwiIFtjb250YWluZXJGaWVsZF09XCJjb250YWluZXJGaWVsZFwiIFtjb21wb25lbnRQcm9wZXJ0aWVzXT1cImNvbXBvbmVudFByb3BlcnRpZXNcIlxyXG4gICAgKHNob3dGb3JtUGFnZSk9XCJ0b2dnbGVGb3JtUGFnZSgkZXZlbnQpXCI+XHJcbiAgPC9hcHAtemdyaWQ+XHJcbiAgPGRpdj5cclxuICAgIDxkaXYgKm5nSWY9XCIhZ3JvdXAuaXNMb2FkaW5nXCIgW2NsYXNzLmVtYmVkZGVkRm9ybVBhZ2VdPVwiaXNTaG93Rm9ybVBhZ2VcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAjZm9ybVBhZ2U+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJncm91cC5pc0xvYWRpbmdcIiBjbGFzcz1cInNwaW5uZXItY29udGFpbmVyXCI+XHJcbiAgICAgIDxhcHAtcGFnZS1sb2FkZXI+PC9hcHAtcGFnZS1sb2FkZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemdyaWQtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL3pncmlkL2NvbnRhaW5lci96Z3JpZC1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemdyaWQvY29udGFpbmVyL3pncmlkLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBcUIsU0FBUyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4Ryw2QkFBNkI7QUFFN0IsOEJBQThCO0FBQzlCLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRWpFLDJDQUEyQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFHakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7QUFTbkQsTUFBTSxPQUFPLHVCQUF3QixTQUFRLFNBQVM7SUFPcEQsWUFDUyxnQkFBbUMsRUFDbEMsV0FBd0I7UUFFaEMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFIakIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFtQjtRQUNsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUozQixtQkFBYyxHQUFHLEtBQUssQ0FBQztJQU85QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxRQUFRLENB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LENBQUMsQ0FBQztJQUM5QyxDQUFDOztvSEFoR1UsdUJBQXVCO3dHQUF2Qix1QkFBdUIsME1BQ0gsZ0JBQWdCLHNEQUNwQyxlQUFlLHVFQ3hCNUIsNHlFQTBDQTsyRkRwQmEsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNFLHFCQUFxQjtrSUFNb0IsUUFBUTtzQkFBMUQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ2QsTUFBTTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQXlEMUIsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKioqKioqKioqIElvbmljICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBQbHVnaW4gKioqKioqKioqKi9cclxuaW1wb3J0IHsgZmlsdGVyLCBpbnRlcnZhbCwgdGFwLCBmaXJzdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBEcmF3ZXJDb21wb25lbnQgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1sYXlvdXQnO1xyXG5cclxuLyoqKioqKioqKiogQ29tcG9uZW50ICYgU2VydmljZSAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBGaWVsZEJhc2UgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2ZpZWxkYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBaQ29tcG9uZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3pjb21wb25lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IE1haW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWFpbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgWkNvbXBvbmVudEhlbHBlciB9IGZyb20gJ21taGdsb2JhbC16Y29yZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtemdyaWQtY29udGFpbmVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vemdyaWQtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi96Z3JpZC1jb250YWluZXIuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBaZ3JpZENvbnRhaW5lckNvbXBvbmVudCBleHRlbmRzIEZpZWxkQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBAVmlld0NoaWxkKCdmb3JtUGFnZScsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KSBmb3JtUGFnZTtcclxuICBAVmlld0NoaWxkKERyYXdlckNvbXBvbmVudCkgcHVibGljIGRyYXdlcjogRHJhd2VyQ29tcG9uZW50O1xyXG5cclxuICBwdWJsaWMgaW5uZXJXaWR0aDogYW55O1xyXG4gIHB1YmxpYyBpc1Nob3dGb3JtUGFnZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjb21wb25lbnRTZXJ2aWNlOiBaQ29tcG9uZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgbWFpblNlcnZpY2U6IE1haW5TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihjb21wb25lbnRTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMuZGF0YS5Db21wb25lbnRTdHlsZVR5cGUgPT09IGBzdHlsZSR7Mn1gKSB7XHJcbiAgICAgIHRoaXMuc2V0dXBTdHlsZTIoKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuZGF0YS5Db21wb25lbnRTdHlsZVR5cGUgPT09IGBzdHlsZSR7M31gKSB7XHJcbiAgICAgIHRoaXMuc2V0dXBTdHlsZTMoKTtcclxuICAgIH1cclxuICAgIHN1cGVyLmluaXRDb21wb25lbnQoKS5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuY29tcG9uZW50U2VydmljZS5kZWNyZW1lbnRDb21wb25lbnRDb3VudGVyRm9yRmllbGQodGhpcy5kYXRhKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gIH1cclxuXHJcbiAgLy8jcmVnaW9uIEhlbHBlciBGdW5jdGlvbnNcclxuICBwcml2YXRlIGRpc3BsYXlGb3JtUGFnZSgpIHtcclxuICAgIGNvbnN0IHBhZ2VFbGVtZW50ID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cFZhbHVlKHRoaXMuZGF0YVsnQ29udGFpbmVyRm9ybSddLCB0aGlzLmdyb3VwKTtcclxuICAgIHRoaXMubWFpblNlcnZpY2UubG9hZENvbnRhaW5lclZpZXcoeyB2aWV3Q29udGFpbmVyUmVmOiB0aGlzLmZvcm1QYWdlIH0sIHBhZ2VFbGVtZW50LCB0aGlzLmRhdGEsIHRoaXMuZ3JvdXApO1xyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgLy8jcmVnaW9uIFN0eWxlIDM6IERFQ1xyXG4gIHByaXZhdGUgc2V0dXBTdHlsZTMoKSB7XHJcbiAgICB0aGlzLmdyb3VwW2BlMUNsb3NlR3JpZENvbnRhaW5lcmBdID0gdGhpcy50b2dnbGVGb3JtUGFnZS5iaW5kKHRoaXMsIGZhbHNlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0b2dnbGVGb3JtUGFnZShpc1Nob3c/OiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmlzU2hvd0Zvcm1QYWdlID0gaXNTaG93O1xyXG4gICAgaWYgKGlzU2hvdykge1xyXG4gICAgICB0aGlzLmRpc3BsYXlGb3JtUGFnZSgpO1xyXG4gICAgICB0aGlzLm1haW5TZXJ2aWNlLnNjcm9sbFRvRW1iYmVkQ29tcG9uZW50UGFnZSgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLmRhdGEuQ29udGFpbmVyRm9ybUF1dG9TY3JvbGwpIHtcclxuICAgICAgICB0aGlzLm1haW5TZXJ2aWNlLnNjcm9sbFRvVG9wT2ZQYWdlKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5mb3JtUGFnZS5jbGVhcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8jcmVnaW9uIFN0bHllIDI6IERyYXdlclxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxyXG4gIG9uUmVzaXplKGV2ZW50KSB7XHJcbiAgICB0aGlzLnNldERyYXdlcldpZHRoKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldHVwU3R5bGUyKCkge1xyXG4gICAgdGhpcy5zZXREcmF3ZXJXaWR0aCgpO1xyXG4gICAgdGhpcy5ncm91cFtgZTFDbG9zZUdyaWRDb250YWluZXJgXSA9IHRoaXMudG9nZ2xlRHJhd2VyLmJpbmQodGhpcywgZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB0b2dnbGVEcmF3ZXIoKSB7XHJcbiAgICB0aGlzLmRyYXdlci50b2dnbGUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkV4cGFuZENoYW5nZShpc0V4cGFuZGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzU2hvd0Zvcm1QYWdlID0gaXNFeHBhbmRlZDtcclxuICAgIGlmIChpc0V4cGFuZGVkKSB7XHJcbiAgICAgIHRoaXMuc2V0dXBEcmF3ZXJDb250ZW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldHVwRHJhd2VyQ29udGVudCgpIHtcclxuICAgIC8vIE5lZWQgdG8gd2FpdCBmb3IgZm9ybSBwYWdlIHRvIHJlbmRlciBpbiBET01cclxuICAgIGlmICh0aGlzLmRhdGFbJ0NvbnRhaW5lckZvcm0nXSkge1xyXG4gICAgICBpbnRlcnZhbCg1MDApLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKHggPT5cclxuICAgICAgICAgIHRoaXMuZm9ybVBhZ2VcclxuICAgICAgICApLFxyXG4gICAgICAgIGZpcnN0KCksXHJcbiAgICAgICAgdGFwKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuZGlzcGxheUZvcm1QYWdlKCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKS5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0RHJhd2VyV2lkdGgoKSB7XHJcbiAgICB0aGlzLmlubmVyV2lkdGggPSAod2luZG93LmlubmVyV2lkdGggKiAwLjgpO1xyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZ3JpZC1jb250YWluZXJcIiAqbmdJZj1cImRhdGEuQ29tcG9uZW50U3R5bGVUeXBlID09PSAnc3R5bGUyJ1wiPlxyXG4gIDxrZW5kby1kcmF3ZXItY29udGFpbmVyIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlXCIgY2xhc3M9XCJlMXRhZy1jb250YWluZXItc3R5bGVcIj5cclxuICAgIDxrZW5kby1kcmF3ZXIgI2RyYXdlciBtb2RlPVwib3ZlcmxheVwiIFtwb3NpdGlvbl09XCInZW5kJ1wiIFttaW5pXT1cImZhbHNlXCIgW2FuaW1hdGlvbl09XCJ7ZHVyYXRpb246IDgwMH1cIiBbZXhwYW5kZWRdPVwiaXNTaG93Rm9ybVBhZ2VcIlxyXG4gICAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTFcIiBjbGFzcz1cImUxdGFnLWNvbnRhaW5lci1zdHlsZTFcIiBbd2lkdGhdPVwiaW5uZXJXaWR0aFwiXHJcbiAgICAgIChleHBhbmRlZENoYW5nZSk9XCJvbkV4cGFuZENoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0RyYXdlclRlbXBsYXRlPlxyXG4gICAgICAgIDxkaXYgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGUyXCIgY2xhc3M9XCJlMXRhZy1jb250YWluZXItc3R5bGUyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybUhlYWRlclwiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtSGVhZGVyLXRpdGxlXCI+RW1wbG95ZWUgUHJvZmlsZTwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxpb24tYnV0dG9uIHNpemU9XCJzbWFsbFwiIGZpbGw9XCJjbGVhclwiIGNvbG9yPVwibWVkaXVtXCIgKGNsaWNrKT1cImRyYXdlci50b2dnbGUoKVwiPlxyXG4gICAgICAgICAgICAgIDxmYS1pY29uIGNsYXNzPVwiY2xvc2UtYnRuLWljb25cIiBpY29uPVwidGltZXNcIj48L2ZhLWljb24+XHJcbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAjZm9ybVBhZ2U+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2tlbmRvLWRyYXdlcj5cclxuXHJcbiAgICA8a2VuZG8tZHJhd2VyLWNvbnRlbnQgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGUzXCIgY2xhc3M9XCJlMXRhZy1jb250YWluZXItc3R5bGUzXCI+XHJcbiAgICAgIDxhcHAtemdyaWQgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGU0XCIgY2xhc3M9XCJlMXRhZy1jb250YWluZXItc3R5bGU0XCIgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICAgICAgW2dyb3VwXT1cImdyb3VwXCIgW2Zvcm1dPVwiZm9ybVwiIFtjb250YWluZXJGaWVsZF09XCJjb250YWluZXJGaWVsZFwiIFtjb21wb25lbnRQcm9wZXJ0aWVzXT1cImNvbXBvbmVudFByb3BlcnRpZXNcIlxyXG4gICAgICAgIChzaG93Rm9ybVBhZ2UpPVwiZHJhd2VyLnRvZ2dsZSgkZXZlbnQpXCI+XHJcbiAgICAgIDwvYXBwLXpncmlkPlxyXG4gICAgPC9rZW5kby1kcmF3ZXItY29udGVudD5cclxuICA8L2tlbmRvLWRyYXdlci1jb250YWluZXI+XHJcbjwvZGl2PlxyXG5cclxuXHJcbjxkaXYgY2xhc3M9XCJncmlkLWNvbnRhaW5lclwiICpuZ0lmPVwiZGF0YS5Db21wb25lbnRTdHlsZVR5cGUgIT09ICdzdHlsZTInXCI+XHJcbiAgPGFwcC16Z3JpZCBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTRcIiBjbGFzcz1cImUxdGFnLWNvbnRhaW5lci1zdHlsZTRcIiBbZGF0YV09XCJkYXRhXCJcclxuICAgIFtncm91cF09XCJncm91cFwiIFtmb3JtXT1cImZvcm1cIiBbY29udGFpbmVyRmllbGRdPVwiY29udGFpbmVyRmllbGRcIiBbY29tcG9uZW50UHJvcGVydGllc109XCJjb21wb25lbnRQcm9wZXJ0aWVzXCJcclxuICAgIChzaG93Rm9ybVBhZ2UpPVwidG9nZ2xlRm9ybVBhZ2UoJGV2ZW50KVwiPlxyXG4gIDwvYXBwLXpncmlkPlxyXG4gIDxkaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiIWdyb3VwLmlzTG9hZGluZ1wiIFtjbGFzcy5lbWJlZGRlZEZvcm1QYWdlXT1cImlzU2hvd0Zvcm1QYWdlXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgI2Zvcm1QYWdlPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiZ3JvdXAuaXNMb2FkaW5nXCIgY2xhc3M9XCJzcGlubmVyLWNvbnRhaW5lclwiPlxyXG4gICAgICA8YXBwLXBhZ2UtbG9hZGVyPjwvYXBwLXBhZ2UtbG9hZGVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Component, Input } from
|
|
2
|
-
import { BaseFilterCellComponent } from
|
|
3
|
-
import { ZComponentHelper } from
|
|
4
|
-
import { ComponentConstant } from
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { BaseFilterCellComponent } from '@progress/kendo-angular-grid';
|
|
3
|
+
import { ZComponentHelper } from 'mmhglobal-zcore';
|
|
4
|
+
import { ComponentConstant } from '../constants/constant';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@progress/kendo-angular-grid";
|
|
7
7
|
import * as i2 from "@progress/kendo-angular-dateinputs";
|
|
@@ -11,11 +11,11 @@ export class DateRangeFilterCellComponent extends BaseFilterCellComponent {
|
|
|
11
11
|
super(filterService);
|
|
12
12
|
}
|
|
13
13
|
get start() {
|
|
14
|
-
const first = this.findByOperator(
|
|
14
|
+
const first = this.findByOperator('gte');
|
|
15
15
|
return (first || {}).value;
|
|
16
16
|
}
|
|
17
17
|
get end() {
|
|
18
|
-
const end = this.findByOperator(
|
|
18
|
+
const end = this.findByOperator('lte');
|
|
19
19
|
return (end || {}).value;
|
|
20
20
|
}
|
|
21
21
|
get hasFilter() {
|
|
@@ -30,7 +30,7 @@ export class DateRangeFilterCellComponent extends BaseFilterCellComponent {
|
|
|
30
30
|
if (start) {
|
|
31
31
|
filters.push({
|
|
32
32
|
field: this.getFieldName(),
|
|
33
|
-
operator:
|
|
33
|
+
operator: 'gte',
|
|
34
34
|
value: start
|
|
35
35
|
});
|
|
36
36
|
}
|
|
@@ -38,12 +38,12 @@ export class DateRangeFilterCellComponent extends BaseFilterCellComponent {
|
|
|
38
38
|
end.setHours(23, 59, 59, 999);
|
|
39
39
|
filters.push({
|
|
40
40
|
field: this.getFieldName(),
|
|
41
|
-
operator:
|
|
41
|
+
operator: 'lte',
|
|
42
42
|
value: end
|
|
43
43
|
});
|
|
44
44
|
}
|
|
45
45
|
const root = this.filter || {
|
|
46
|
-
logic:
|
|
46
|
+
logic: 'and',
|
|
47
47
|
filters: []
|
|
48
48
|
};
|
|
49
49
|
if (filters.length) {
|
|
@@ -143,4 +143,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImpor
|
|
|
143
143
|
}], data: [{
|
|
144
144
|
type: Input
|
|
145
145
|
}] } });
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1jZWxsLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi96Z3JpZC9kYXRlLXJhbmdlLWNlbGwtZmlsdGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsdUJBQXVCLEVBQWlCLE1BQU0sOEJBQThCLENBQUM7QUFFdEYsT0FBTyxFQUFFLGdCQUFnQixFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7O0FBMkMxRCxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsdUJBQXVCO0lBVXZFLFlBQVksYUFBNEI7UUFDdEMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDZCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXpDLE9BQU8sQ0FBQyxLQUFLLElBQXNCLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFBVyxHQUFHO1FBQ1osTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxPQUFPLENBQUMsR0FBRyxJQUFzQixFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FDdkMsQ0FBQztJQUNKLENBQUM7SUFFTSxXQUFXLENBQUMsS0FBVyxFQUFFLEdBQVM7UUFDdkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBRXJELE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUVuQixJQUFJLEtBQUssRUFBRTtZQUNULE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ1gsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQzFCLFFBQVEsRUFBRSxLQUFLO2dCQUNmLEtBQUssRUFBRSxLQUFLO2FBQ2IsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxJQUFJLEdBQUcsRUFBRTtZQUNQLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDOUIsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDWCxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDMUIsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsS0FBSyxFQUFFLEdBQUc7YUFDWCxDQUFDLENBQUM7U0FDSjtRQUVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUk7WUFDMUIsS0FBSyxFQUFFLEtBQUs7WUFDWixPQUFPLEVBQUUsRUFBRTtTQUNaLENBQUM7UUFFRixJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztTQUMvQjtRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTyxjQUFjLENBQUMsRUFBVTtRQUMvQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQzVDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLFFBQVEsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU8sWUFBWTtRQUNsQixPQUFPLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLGlCQUFpQixDQUFDLHVCQUF1QixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDMUcsQ0FBQztJQUVPLGNBQWM7UUFDcEIsT0FBTyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7O3lIQWhGVSw0QkFBNEI7NkdBQTVCLDRCQUE0QixpSkEvQjdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQTZCUDsyRkFFUSw0QkFBNEI7a0JBekN4QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLE1BQU0sRUFBRSxDQUFDOzs7Ozs7O0tBT04sQ0FBRTtvQkFDTCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBNkJQO2lCQUNKO29HQUdRLE1BQU07c0JBRFosS0FBSztnQkFJQyxLQUFLO3NCQURYLEtBQUs7Z0JBSUMsSUFBSTtzQkFEVixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCYXNlRmlsdGVyQ2VsbENvbXBvbmVudCwgRmlsdGVyU2VydmljZSB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLWdyaWQnO1xyXG5pbXBvcnQgeyBGaWx0ZXJEZXNjcmlwdG9yIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWRhdGEtcXVlcnkvZGlzdC9lcy9tYWluJztcclxuaW1wb3J0IHsgWkNvbXBvbmVudEhlbHBlciwgWkZpZWxkIH0gZnJvbSAnbW1oZ2xvYmFsLXpjb3JlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50Q29uc3RhbnQgfSBmcm9tICcuLi9jb25zdGFudHMvY29uc3RhbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkYXRlLXJhbmdlLWZpbHRlci1jZWxsJyxcclxuICBzdHlsZXM6IFtgXHJcbiAgICAgICAga2VuZG8tZGF0ZXJhbmdlID4ga2VuZG8tZGF0ZWlucHV0LnJhbmdlLWZpbHRlciB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICB9XHJcbiAgICAgICAgLmstYnV0dG9uIHtcclxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDRweDtcclxuICAgICAgICB9XHJcbiAgICBgIF0sXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8a2VuZG8tZGF0ZXJhbmdlID5cclxuICAgICAgICAgICA8a2VuZG8tZGF0ZWlucHV0XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInJhbmdlLWZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBrZW5kb0RhdGVSYW5nZVN0YXJ0SW5wdXRcclxuICAgICAgICAgICAgICAgIFtmb3JtYXRdPVwiJ2RkLU1NLXl5eXknXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiZGQtTU0teXl5eVwiXHJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwic3RhcnRcIlxyXG4gICAgICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cImZpbHRlclJhbmdlKCRldmVudCwgZW5kKVwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOjg0cHhcIj5cclxuICAgICAgICAgICAgPC9rZW5kby1kYXRlaW5wdXQ+XHJcbiAgICAgICAgICAgIC1cclxuICAgICAgICAgICAgPGtlbmRvLWRhdGVpbnB1dFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJyYW5nZS1maWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAga2VuZG9EYXRlUmFuZ2VFbmRJbnB1dFxyXG4gICAgICAgICAgICAgICAgW2Zvcm1hdF09XCInZGQtTU0teXl5eSdcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJkZC1NTS15eXl5XCJcclxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJlbmRcIlxyXG4gICAgICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cImZpbHRlclJhbmdlKHN0YXJ0LCAkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6ODVweFwiPlxyXG4gICAgICAgICAgICA8L2tlbmRvLWRhdGVpbnB1dD5cclxuICAgICAgICA8L2tlbmRvLWRhdGVyYW5nZT5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICpuZ0lmPVwiaGFzRmlsdGVyXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJrLWJ1dHRvbiBrLWJ1dHRvbi1pY29uXCJcclxuICAgICAgICAgICAgdGl0bGU9XCJDbGVhclwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJjbGVhckZpbHRlcigpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiay1pY29uIGstaS1maWx0ZXItY2xlYXJcIiBzdHlsZT1cIndpZHRoOjE1cHhcIj48L3NwYW4+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICBgXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRlUmFuZ2VGaWx0ZXJDZWxsQ29tcG9uZW50IGV4dGVuZHMgQmFzZUZpbHRlckNlbGxDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGZpbHRlcjogYW55O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBmaWVsZDogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBkYXRhOiBaRmllbGQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGZpbHRlclNlcnZpY2U6IEZpbHRlclNlcnZpY2UpIHtcclxuICAgIHN1cGVyKGZpbHRlclNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzdGFydCgpOiBEYXRlIHtcclxuICAgIGNvbnN0IGZpcnN0ID0gdGhpcy5maW5kQnlPcGVyYXRvcignZ3RlJyk7XHJcblxyXG4gICAgcmV0dXJuIChmaXJzdCB8fCA8RmlsdGVyRGVzY3JpcHRvcj57fSkudmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGVuZCgpOiBEYXRlIHtcclxuICAgIGNvbnN0IGVuZCA9IHRoaXMuZmluZEJ5T3BlcmF0b3IoJ2x0ZScpO1xyXG4gICAgcmV0dXJuIChlbmQgfHwgPEZpbHRlckRlc2NyaXB0b3I+e30pLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBoYXNGaWx0ZXIoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJzQnlGaWVsZCh0aGlzLmdldEZpZWxkTmFtZSgpKS5sZW5ndGggPiAwO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsZWFyRmlsdGVyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5maWx0ZXJTZXJ2aWNlLmZpbHRlcihcclxuICAgICAgdGhpcy5yZW1vdmVGaWx0ZXIodGhpcy5nZXRGaWVsZE5hbWUoKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZmlsdGVyUmFuZ2Uoc3RhcnQ6IERhdGUsIGVuZDogRGF0ZSk6IHZvaWQge1xyXG4gICAgdGhpcy5maWx0ZXIgPSB0aGlzLnJlbW92ZUZpbHRlcih0aGlzLmdldEZpZWxkTmFtZSgpKTtcclxuXHJcbiAgICBjb25zdCBmaWx0ZXJzID0gW107XHJcblxyXG4gICAgaWYgKHN0YXJ0KSB7XHJcbiAgICAgIGZpbHRlcnMucHVzaCh7XHJcbiAgICAgICAgZmllbGQ6IHRoaXMuZ2V0RmllbGROYW1lKCksXHJcbiAgICAgICAgb3BlcmF0b3I6ICdndGUnLFxyXG4gICAgICAgIHZhbHVlOiBzdGFydFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZW5kKSB7XHJcbiAgICAgIGVuZC5zZXRIb3VycygyMywgNTksIDU5LCA5OTkpO1xyXG4gICAgICBmaWx0ZXJzLnB1c2goe1xyXG4gICAgICAgIGZpZWxkOiB0aGlzLmdldEZpZWxkTmFtZSgpLFxyXG4gICAgICAgIG9wZXJhdG9yOiAnbHRlJyxcclxuICAgICAgICB2YWx1ZTogZW5kXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJvb3QgPSB0aGlzLmZpbHRlciB8fCB7XHJcbiAgICAgIGxvZ2ljOiAnYW5kJyxcclxuICAgICAgZmlsdGVyczogW11cclxuICAgIH07XHJcblxyXG4gICAgaWYgKGZpbHRlcnMubGVuZ3RoKSB7XHJcbiAgICAgIHJvb3QuZmlsdGVycy5wdXNoKC4uLmZpbHRlcnMpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZmlsdGVyU2VydmljZS5maWx0ZXIocm9vdCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmRCeU9wZXJhdG9yKG9wOiBzdHJpbmcpOiBGaWx0ZXJEZXNjcmlwdG9yIHtcclxuICAgIHJldHVybiB0aGlzLmZpbHRlcnNCeUZpZWxkKHRoaXMuZ2V0RmllbGROYW1lKCkpXHJcbiAgICAgIC5maWx0ZXIoKHsgb3BlcmF0b3IgfSkgPT4gb3BlcmF0b3IgPT09IG9wKVswXTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RmllbGROYW1lKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5pc1VzZUxvY2FsRGF0YSgpID8gYCR7dGhpcy5maWVsZH0ke0NvbXBvbmVudENvbnN0YW50LkdyaWRDb2xEYXRlRmlsdGVyU3VmZml4fWAgOiB0aGlzLmZpZWxkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc1VzZUxvY2FsRGF0YSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBaQ29tcG9uZW50SGVscGVyLmlzTnVsbFVuZGVmaW5lZEVtcHR5KHRoaXMuZGF0YS5SZXNvdXJjZVVSTCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|