@po-ui/ng-components 14.4.0 → 14.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/po-button-group/po-button-group-base.component.mjs +2 -2
- package/esm2020/lib/components/po-field/po-combo/po-combo.component.mjs +6 -6
- package/esm2020/lib/components/po-field/po-datepicker/po-datepicker.component.mjs +5 -5
- package/esm2020/lib/components/po-field/po-datepicker-range/po-datepicker-range.component.mjs +7 -3
- package/esm2020/lib/components/po-field/po-decimal/po-decimal.component.mjs +5 -5
- package/esm2020/lib/components/po-field/po-email/po-email.component.mjs +9 -7
- package/esm2020/lib/components/po-field/po-input/po-input.component.mjs +9 -7
- package/esm2020/lib/components/po-field/po-login/po-login.component.mjs +12 -11
- package/esm2020/lib/components/po-field/po-lookup/po-lookup-modal/po-lookup-modal.component.mjs +3 -3
- package/esm2020/lib/components/po-field/po-lookup/po-lookup.component.mjs +6 -5
- package/esm2020/lib/components/po-field/po-multiselect/po-multiselect-base.component.mjs +31 -20
- package/esm2020/lib/components/po-field/po-multiselect/po-multiselect-dropdown/po-multiselect-dropdown.component.mjs +19 -13
- package/esm2020/lib/components/po-field/po-multiselect/po-multiselect-filter.interface.mjs +1 -1
- package/esm2020/lib/components/po-field/po-multiselect/po-multiselect-filter.service.mjs +2 -2
- package/esm2020/lib/components/po-field/po-multiselect/po-multiselect-search/po-multiselect-search.component.mjs +7 -4
- package/esm2020/lib/components/po-field/po-multiselect/po-multiselect.component.mjs +24 -17
- package/esm2020/lib/components/po-field/po-number/po-number.component.mjs +5 -5
- package/esm2020/lib/components/po-field/po-password/po-password.component.mjs +14 -13
- package/esm2020/lib/components/po-field/po-radio/po-radio-size.enum.mjs +10 -3
- package/esm2020/lib/components/po-field/po-radio/po-radio.component.mjs +98 -34
- package/esm2020/lib/components/po-field/po-radio-group/po-radio-group-base.component.mjs +16 -2
- package/esm2020/lib/components/po-field/po-radio-group/po-radio-group.component.mjs +18 -25
- package/esm2020/lib/components/po-field/po-select/po-select.component.mjs +38 -250
- package/esm2020/lib/components/po-field/po-textarea/po-textarea-base.component.mjs +11 -1
- package/esm2020/lib/components/po-field/po-textarea/po-textarea.component.mjs +6 -7
- package/esm2020/lib/components/po-field/po-url/po-url.component.mjs +9 -7
- package/esm2020/lib/components/po-page/po-page-list/po-page-list.component.mjs +3 -3
- package/esm2020/lib/components/po-table/po-table-column-manager/po-table-column-manager.component.mjs +26 -73
- package/esm2020/lib/components/po-table/po-table-detail/po-table-detail.component.mjs +27 -8
- package/esm2020/lib/components/po-table/po-table-list-manager/po-table-list-manager.component.mjs +111 -0
- package/esm2020/lib/components/po-table/po-table.module.mjs +4 -1
- package/esm2020/lib/components/po-tag/po-tag-base.component.mjs +11 -3
- package/esm2020/lib/components/po-tag/po-tag.component.mjs +16 -9
- package/esm2020/lib/components/po-tree-view/po-tree-view-base.component.mjs +6 -4
- package/fesm2015/po-ui-ng-components.mjs +889 -984
- package/fesm2015/po-ui-ng-components.mjs.map +1 -1
- package/fesm2020/po-ui-ng-components.mjs +871 -962
- package/fesm2020/po-ui-ng-components.mjs.map +1 -1
- package/lib/components/po-button-group/po-button-group-base.component.d.ts +1 -1
- package/lib/components/po-field/po-multiselect/po-multiselect-base.component.d.ts +26 -15
- package/lib/components/po-field/po-multiselect/po-multiselect-dropdown/po-multiselect-dropdown.component.d.ts +5 -3
- package/lib/components/po-field/po-multiselect/po-multiselect-filter.interface.d.ts +2 -2
- package/lib/components/po-field/po-multiselect/po-multiselect-filter.service.d.ts +2 -2
- package/lib/components/po-field/po-multiselect/po-multiselect-search/po-multiselect-search.component.d.ts +2 -1
- package/lib/components/po-field/po-multiselect/po-multiselect.component.d.ts +7 -1
- package/lib/components/po-field/po-radio/po-radio-size.enum.d.ts +9 -2
- package/lib/components/po-field/po-radio/po-radio.component.d.ts +27 -10
- package/lib/components/po-field/po-radio-group/po-radio-group-base.component.d.ts +21 -1
- package/lib/components/po-field/po-select/po-select.component.d.ts +1 -32
- package/lib/components/po-field/po-textarea/po-textarea-base.component.d.ts +10 -0
- package/lib/components/po-modal/po-modal.component.d.ts +1 -1
- package/lib/components/po-table/po-table-column-manager/po-table-column-manager.component.d.ts +4 -12
- package/lib/components/po-table/po-table-detail/po-table-detail.component.d.ts +1 -0
- package/lib/components/po-table/po-table-list-manager/po-table-list-manager.component.d.ts +35 -0
- package/lib/components/po-table/po-table.module.d.ts +25 -24
- package/lib/components/po-tag/po-tag-base.component.d.ts +8 -2
- package/package.json +4 -4
- package/po-ui-ng-components-14.5.0.tgz +0 -0
- package/schematics/ng-add/index.js +1 -1
- package/schematics/ng-update/v14/index.js +1 -1
- package/schematics/ng-update/v2/index.js +1 -1
- package/schematics/ng-update/v3/index.js +1 -1
- package/schematics/ng-update/v4/index.js +1 -1
- package/schematics/ng-update/v5/index.js +1 -1
- package/schematics/ng-update/v6/index.js +1 -1
- package/esm2020/lib/components/po-field/po-radio/po-radio-base.component.mjs +0 -104
- package/lib/components/po-field/po-radio/po-radio-base.component.d.ts +0 -58
- package/po-ui-ng-components-14.4.0.tgz +0 -0
|
@@ -7,43 +7,23 @@ import * as i1 from "../../../services/po-language/po-language.service";
|
|
|
7
7
|
import * as i2 from "@angular/common";
|
|
8
8
|
import * as i3 from "@angular/forms";
|
|
9
9
|
import * as i4 from "../../po-button/po-button.component";
|
|
10
|
-
import * as i5 from "../../po-
|
|
11
|
-
import * as i6 from "
|
|
12
|
-
import * as i7 from "../../../directives/po-tooltip/po-tooltip.directive";
|
|
13
|
-
function PoTableColumnManagerComponent_po_popover_0_div_10_Template(rf, ctx) { if (rf & 1) {
|
|
14
|
-
const _r5 = i0.ɵɵgetCurrentView();
|
|
15
|
-
i0.ɵɵelementStart(0, "div")(1, "div", 13)(2, "po-button", 14);
|
|
16
|
-
i0.ɵɵlistener("click", function PoTableColumnManagerComponent_po_popover_0_div_10_Template_po_button_click_2_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r5); const option_r3 = restoredCtx.$implicit; const ctx_r4 = i0.ɵɵnextContext(2); ctx_r4.changePosition(option_r3, "up"); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
17
|
-
i0.ɵɵelementEnd();
|
|
18
|
-
i0.ɵɵelementStart(3, "po-button", 15);
|
|
19
|
-
i0.ɵɵlistener("click", function PoTableColumnManagerComponent_po_popover_0_div_10_Template_po_button_click_3_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r5); const option_r3 = restoredCtx.$implicit; const ctx_r6 = i0.ɵɵnextContext(2); ctx_r6.changePosition(option_r3, "down"); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
20
|
-
i0.ɵɵelementEnd()()();
|
|
21
|
-
} if (rf & 2) {
|
|
22
|
-
const option_r3 = ctx.$implicit;
|
|
23
|
-
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
24
|
-
i0.ɵɵadvance(2);
|
|
25
|
-
i0.ɵɵproperty("p-tooltip", ctx_r2.literals.up)("p-disabled", ctx_r2.verifyArrowDisabled(option_r3, "up"));
|
|
26
|
-
i0.ɵɵadvance(1);
|
|
27
|
-
i0.ɵɵproperty("p-tooltip", ctx_r2.literals.down)("p-disabled", ctx_r2.verifyArrowDisabled(option_r3, "down"));
|
|
28
|
-
} }
|
|
10
|
+
import * as i5 from "../../po-popover/po-popover.component";
|
|
11
|
+
import * as i6 from "../po-table-list-manager/po-table-list-manager.component";
|
|
29
12
|
function PoTableColumnManagerComponent_po_popover_0_Template(rf, ctx) { if (rf & 1) {
|
|
30
|
-
const
|
|
13
|
+
const _r3 = i0.ɵɵgetCurrentView();
|
|
31
14
|
i0.ɵɵelementStart(0, "po-popover", 1, 2);
|
|
32
|
-
i0.ɵɵlistener("p-close", function PoTableColumnManagerComponent_po_popover_0_Template_po_popover_p_close_0_listener() { i0.ɵɵrestoreView(
|
|
15
|
+
i0.ɵɵlistener("p-close", function PoTableColumnManagerComponent_po_popover_0_Template_po_popover_p_close_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.checkChanges([], true)); });
|
|
33
16
|
i0.ɵɵelementStart(2, "div", 3)(3, "div", 4);
|
|
34
17
|
i0.ɵɵtext(4);
|
|
35
18
|
i0.ɵɵelementEnd();
|
|
36
19
|
i0.ɵɵelementStart(5, "div", 5)(6, "button", 6);
|
|
37
|
-
i0.ɵɵlistener("click", function PoTableColumnManagerComponent_po_popover_0_Template_button_click_6_listener() { i0.ɵɵrestoreView(
|
|
20
|
+
i0.ɵɵlistener("click", function PoTableColumnManagerComponent_po_popover_0_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r3); const _r1 = i0.ɵɵreference(1); return i0.ɵɵresetView(_r1.close()); });
|
|
38
21
|
i0.ɵɵelementEnd()()();
|
|
39
|
-
i0.ɵɵelementStart(7, "div", 7)(8, "po-
|
|
40
|
-
i0.ɵɵlistener("ngModelChange", function
|
|
41
|
-
i0.ɵɵelementEnd();
|
|
42
|
-
i0.ɵɵelementStart(9, "div", 9);
|
|
43
|
-
i0.ɵɵtemplate(10, PoTableColumnManagerComponent_po_popover_0_div_10_Template, 4, 4, "div", 10);
|
|
22
|
+
i0.ɵɵelementStart(7, "div", 7)(8, "po-table-list-manager", 8);
|
|
23
|
+
i0.ɵɵlistener("ngModelChange", function PoTableColumnManagerComponent_po_popover_0_Template_po_table_list_manager_ngModelChange_8_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r5 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r5.visibleColumns = $event); })("p-change", function PoTableColumnManagerComponent_po_popover_0_Template_po_table_list_manager_p_change_8_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r6 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r6.checkChanges($event, false)); })("p-change-position", function PoTableColumnManagerComponent_po_popover_0_Template_po_table_list_manager_p_change_position_8_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r7 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r7.changePosition($event)); });
|
|
44
24
|
i0.ɵɵelementEnd()();
|
|
45
|
-
i0.ɵɵelementStart(
|
|
46
|
-
i0.ɵɵlistener("p-click", function
|
|
25
|
+
i0.ɵɵelementStart(9, "div", 9)(10, "po-button", 10);
|
|
26
|
+
i0.ɵɵlistener("p-click", function PoTableColumnManagerComponent_po_popover_0_Template_po_button_p_click_10_listener() { i0.ɵɵrestoreView(_r3); const ctx_r8 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r8.restore()); });
|
|
47
27
|
i0.ɵɵelementEnd()()();
|
|
48
28
|
} if (rf & 2) {
|
|
49
29
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
@@ -51,9 +31,7 @@ function PoTableColumnManagerComponent_po_popover_0_Template(rf, ctx) { if (rf &
|
|
|
51
31
|
i0.ɵɵadvance(4);
|
|
52
32
|
i0.ɵɵtextInterpolate(ctx_r0.literals.columnsManager);
|
|
53
33
|
i0.ɵɵadvance(4);
|
|
54
|
-
i0.ɵɵproperty("ngModel", ctx_r0.visibleColumns)("p-options", ctx_r0.columnsOptions);
|
|
55
|
-
i0.ɵɵadvance(2);
|
|
56
|
-
i0.ɵɵproperty("ngForOf", ctx_r0.columnsOptions);
|
|
34
|
+
i0.ɵɵproperty("ngModel", ctx_r0.visibleColumns)("p-options", ctx_r0.columnsOptions)("p-columns-manager", ctx_r0.columns);
|
|
57
35
|
i0.ɵɵadvance(2);
|
|
58
36
|
i0.ɵɵproperty("p-label", ctx_r0.literals.restoreDefault);
|
|
59
37
|
} }
|
|
@@ -61,27 +39,19 @@ const PoTableColumnManagerMaxColumnsDefault = 99999;
|
|
|
61
39
|
export const poTableColumnManagerLiteralsDefault = {
|
|
62
40
|
en: {
|
|
63
41
|
columnsManager: 'Columns manager',
|
|
64
|
-
restoreDefault: 'Restore default'
|
|
65
|
-
up: 'up',
|
|
66
|
-
down: 'down'
|
|
42
|
+
restoreDefault: 'Restore default'
|
|
67
43
|
},
|
|
68
44
|
es: {
|
|
69
45
|
columnsManager: 'Gerente de columna',
|
|
70
|
-
restoreDefault: 'Restaurar por defecto'
|
|
71
|
-
up: 'arriba',
|
|
72
|
-
down: 'abajo'
|
|
46
|
+
restoreDefault: 'Restaurar por defecto'
|
|
73
47
|
},
|
|
74
48
|
pt: {
|
|
75
49
|
columnsManager: 'Gerenciador de colunas',
|
|
76
|
-
restoreDefault: 'Restaurar padrão'
|
|
77
|
-
up: 'acima',
|
|
78
|
-
down: 'abaixo'
|
|
50
|
+
restoreDefault: 'Restaurar padrão'
|
|
79
51
|
},
|
|
80
52
|
ru: {
|
|
81
53
|
columnsManager: 'менеджер колонок',
|
|
82
|
-
restoreDefault: 'сброс настроек'
|
|
83
|
-
up: 'вверх',
|
|
84
|
-
down: 'вниз'
|
|
54
|
+
restoreDefault: 'сброс настроек'
|
|
85
55
|
}
|
|
86
56
|
};
|
|
87
57
|
export class PoTableColumnManagerComponent {
|
|
@@ -140,36 +110,19 @@ export class PoTableColumnManagerComponent {
|
|
|
140
110
|
this.initialColumns.emit(this.getVisibleColumns(this.colunsDefault));
|
|
141
111
|
this.checkChanges(defaultColumns, this.restoreDefaultEvent);
|
|
142
112
|
}
|
|
143
|
-
changePosition(option, direction) {
|
|
113
|
+
changePosition({ option, direction }) {
|
|
144
114
|
const indexColumn = this.columns.findIndex(el => el.property === option.value);
|
|
145
115
|
const newColumn = [...this.columns];
|
|
146
|
-
|
|
147
|
-
this.changePositionColumn(newColumn, indexColumn, direction, hasDisabled);
|
|
116
|
+
this.changePositionColumn(newColumn, indexColumn, direction);
|
|
148
117
|
this.columns = newColumn;
|
|
149
118
|
this.visibleColumnsChange.emit(this.columns);
|
|
150
119
|
}
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
return el.property === 'detail';
|
|
155
|
-
});
|
|
156
|
-
const valueSubtraction = existsDetail ? 2 : 1;
|
|
157
|
-
if (index === 0 && direction === 'up') {
|
|
158
|
-
return true;
|
|
159
|
-
}
|
|
160
|
-
if (index === this.columns.length - valueSubtraction && direction === 'down') {
|
|
161
|
-
return true;
|
|
120
|
+
changePositionColumn(array, index, direction) {
|
|
121
|
+
if (direction === 'up') {
|
|
122
|
+
array.splice(index, 0, array.splice(index - 1, 1)[0]);
|
|
162
123
|
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
changePositionColumn(array, index, direction, hasDisabled) {
|
|
166
|
-
if (!hasDisabled) {
|
|
167
|
-
if (direction === 'up') {
|
|
168
|
-
array.splice(index, 0, array.splice(index - 1, 1)[0]);
|
|
169
|
-
}
|
|
170
|
-
if (direction === 'down') {
|
|
171
|
-
array.splice(index, 0, array.splice(index + 1, 1)[0]);
|
|
172
|
-
}
|
|
124
|
+
if (direction === 'down') {
|
|
125
|
+
array.splice(index, 0, array.splice(index + 1, 1)[0]);
|
|
173
126
|
}
|
|
174
127
|
}
|
|
175
128
|
verifyToEmitChange(event) {
|
|
@@ -348,14 +301,14 @@ PoTableColumnManagerComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ typ
|
|
|
348
301
|
} if (rf & 2) {
|
|
349
302
|
let _t;
|
|
350
303
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.popover = _t.first);
|
|
351
|
-
} }, inputs: { columns: ["p-columns", "columns"], target: ["p-target", "target"], colunsDefault: ["p-columns-default", "colunsDefault"], lastVisibleColumnsSelected: ["p-last-visible-columns-selected", "lastVisibleColumnsSelected"], maxColumns: ["p-max-columns", "maxColumns"] }, outputs: { visibleColumnsChange: "p-visible-columns-change", changeVisibleColumns: "p-change-visible-columns", initialColumns: "p-initial-columns" }, features: [i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [["p-position", "bottom-left", 3, "p-target", "p-close", 4, "ngIf"], ["p-position", "bottom-left", 3, "p-target", "p-close"], ["popover", ""], [1, "po-table-column-manager-header"], [1, "po-table-column-manager-header-title"], [1, "po-table-column-manager-header-close"], [1, "po-table-column-manager-header-close-button", "po-clickable", "po-icon", "po-icon-close", 3, "click"], [1, "po-table-column-manager-body"], ["name", "visibleColumns", "p-columns", "1",
|
|
352
|
-
i0.ɵɵtemplate(0, PoTableColumnManagerComponent_po_popover_0_Template,
|
|
304
|
+
} }, inputs: { columns: ["p-columns", "columns"], target: ["p-target", "target"], colunsDefault: ["p-columns-default", "colunsDefault"], lastVisibleColumnsSelected: ["p-last-visible-columns-selected", "lastVisibleColumnsSelected"], maxColumns: ["p-max-columns", "maxColumns"] }, outputs: { visibleColumnsChange: "p-visible-columns-change", changeVisibleColumns: "p-change-visible-columns", initialColumns: "p-initial-columns" }, features: [i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [["p-position", "bottom-left", 3, "p-target", "p-close", 4, "ngIf"], ["p-position", "bottom-left", 3, "p-target", "p-close"], ["popover", ""], [1, "po-table-column-manager-header"], [1, "po-table-column-manager-header-title"], [1, "po-table-column-manager-header-close"], [1, "po-table-column-manager-header-close-button", "po-clickable", "po-icon", "po-icon-close", 3, "click"], [1, "po-table-column-manager-body"], ["name", "visibleColumns", "p-columns", "1", 3, "ngModel", "p-options", "p-columns-manager", "ngModelChange", "p-change", "p-change-position"], [1, "po-table-column-manager-footer"], ["p-kind", "tertiary", 1, "po-table-column-manager-footer-restore", 3, "p-label", "p-click"]], template: function PoTableColumnManagerComponent_Template(rf, ctx) { if (rf & 1) {
|
|
305
|
+
i0.ɵɵtemplate(0, PoTableColumnManagerComponent_po_popover_0_Template, 11, 6, "po-popover", 0);
|
|
353
306
|
} if (rf & 2) {
|
|
354
307
|
i0.ɵɵproperty("ngIf", ctx.target);
|
|
355
|
-
} }, dependencies: [i2.
|
|
308
|
+
} }, dependencies: [i2.NgIf, i3.NgControlStatus, i3.NgModel, i4.PoButtonComponent, i5.PoPopoverComponent, i6.PoTableListManagerComponent], encapsulation: 2 });
|
|
356
309
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoTableColumnManagerComponent, [{
|
|
357
310
|
type: Component,
|
|
358
|
-
args: [{ selector: 'po-table-column-manager', template: "<po-popover #popover *ngIf=\"target\" [p-target]=\"target\" p-position=\"bottom-left\" (p-close)=\"checkChanges([], true)\">\n <div class=\"po-table-column-manager-header\">\n <div class=\"po-table-column-manager-header-title\">{{ literals.columnsManager }}</div>\n\n <div class=\"po-table-column-manager-header-close\">\n <button\n class=\"po-table-column-manager-header-close-button po-clickable po-icon po-icon-close\"\n (click)=\"popover.close()\"\n ></button>\n </div>\n </div>\n\n <div class=\"po-table-column-manager-body\">\n <po-
|
|
311
|
+
args: [{ selector: 'po-table-column-manager', template: "<po-popover #popover *ngIf=\"target\" [p-target]=\"target\" p-position=\"bottom-left\" (p-close)=\"checkChanges([], true)\">\n <div class=\"po-table-column-manager-header\">\n <div class=\"po-table-column-manager-header-title\">{{ literals.columnsManager }}</div>\n\n <div class=\"po-table-column-manager-header-close\">\n <button\n class=\"po-table-column-manager-header-close-button po-clickable po-icon po-icon-close\"\n (click)=\"popover.close()\"\n ></button>\n </div>\n </div>\n\n <div class=\"po-table-column-manager-body\">\n <po-table-list-manager\n name=\"visibleColumns\"\n [(ngModel)]=\"visibleColumns\"\n p-columns=\"1\"\n [p-options]=\"columnsOptions\"\n (p-change)=\"checkChanges($event, false)\"\n (p-change-position)=\"changePosition($event)\"\n [p-columns-manager]=\"columns\"\n >\n </po-table-list-manager>\n </div>\n\n <div class=\"po-table-column-manager-footer\">\n <po-button\n class=\"po-table-column-manager-footer-restore\"\n p-kind=\"tertiary\"\n [p-label]=\"literals.restoreDefault\"\n (p-click)=\"restore()\"\n >\n </po-button>\n </div>\n</po-popover>\n" }]
|
|
359
312
|
}], function () { return [{ type: i0.Renderer2 }, { type: i1.PoLanguageService }]; }, { popover: [{
|
|
360
313
|
type: ViewChild,
|
|
361
314
|
args: [PoPopoverComponent]
|
|
@@ -384,4 +337,4 @@ PoTableColumnManagerComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ typ
|
|
|
384
337
|
type: Input,
|
|
385
338
|
args: ['p-max-columns']
|
|
386
339
|
}] }); })();
|
|
387
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tdGFibGUtY29sdW1uLW1hbmFnZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLXRhYmxlL3BvLXRhYmxlLWNvbHVtbi1tYW5hZ2VyL3BvLXRhYmxlLWNvbHVtbi1tYW5hZ2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby10YWJsZS9wby10YWJsZS1jb2x1bW4tbWFuYWdlci9wby10YWJsZS1jb2x1bW4tbWFuYWdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUlOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFMUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7Ozs7Ozs7OztJQ00vRSwyQkFBMkMsY0FBQSxvQkFBQTtJQU1yQyx3UEFBUyxpQ0FBdUIsSUFBSSxDQUFDLFNBQUUsZUFBQSx3QkFBd0IsQ0FBQSxJQUFDO0lBSWxFLGlCQUFZO0lBQ1oscUNBT0M7SUFIQyx3UEFBUyxpQ0FBdUIsTUFBTSxDQUFDLFNBQUUsZUFBQSx3QkFBd0IsQ0FBQSxJQUFDO0lBSXBFLGlCQUFZLEVBQUEsRUFBQTs7OztJQWhCVixlQUF5QjtJQUF6Qiw4Q0FBeUIsMkRBQUE7SUFTekIsZUFBMkI7SUFBM0IsZ0RBQTJCLDZEQUFBOzs7O0lBcEN2Qyx3Q0FBb0g7SUFBbkMseUxBQVcsZUFBQSx3QkFBaUIsSUFBSSxDQUFDLENBQUEsSUFBQztJ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QUFnSDtRQUNoSCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzVDLElBQUksR0FBRyxLQUFLLE1BQU0sSUFBSSxHQUFHLEtBQUssZUFBZSxFQUFFO2dCQUM3QyxPQUFPLEtBQUssQ0FBQzthQUNkO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzswR0EvVVUsNkJBQTZCO2dGQUE3Qiw2QkFBNkI7dUJBQzdCLGtCQUFrQjs7Ozs7UUN6RC9CLDZGQTBEYTs7UUExRFMsaUNBQVk7O3VGRHdEckIsNkJBQTZCO2NBSnpDLFNBQVM7MkJBQ0UseUJBQXlCOzRGQUlKLE9BQU87a0JBQXJDLFNBQVM7bUJBQUMsa0JBQWtCO1lBRVQsT0FBTztrQkFBMUIsS0FBSzttQkFBQyxXQUFXO1lBRUMsTUFBTTtrQkFBeEIsS0FBSzttQkFBQyxVQUFVO1lBRVcsYUFBYTtrQkFBeEMsS0FBSzttQkFBQyxtQkFBbUI7WUFFZ0IsMEJBQTBCO2tCQUFuRSxLQUFLO21CQUFDLGlDQUFpQztZQUVKLG9CQUFvQjtrQkFBdkQsTUFBTTttQkFBQywwQkFBMEI7WUFJRSxvQkFBb0I7a0JBQXZELE1BQU07bUJBQUMsMEJBQTBCO1lBRUwsY0FBYztrQkFBMUMsTUFBTTttQkFBQyxtQkFBbUI7WUFjQyxVQUFVO2tCQUFyQyxLQUFLO21CQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZSxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgUmVuZGVyZXIyLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IGNhcGl0YWxpemVGaXJzdExldHRlciwgY29udmVydFRvSW50IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvdXRpbCc7XG5pbXBvcnQgeyBQb0NoZWNrYm94R3JvdXBPcHRpb24gfSBmcm9tICcuLi8uLi9wby1maWVsZC9wby1jaGVja2JveC1ncm91cC9pbnRlcmZhY2VzL3BvLWNoZWNrYm94LWdyb3VwLW9wdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9Qb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcG8tcG9wb3Zlci9wby1wb3BvdmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb0xhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3BvLWxhbmd1YWdlL3BvLWxhbmd1YWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgcG9Mb2NhbGVEZWZhdWx0IH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcG8tbGFuZ3VhZ2UvcG8tbGFuZ3VhZ2UuY29uc3RhbnQnO1xuaW1wb3J0IHsgUG9UYWJsZUNvbHVtbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvcG8tdGFibGUtY29sdW1uLmludGVyZmFjZSc7XG5cbmNvbnN0IFBvVGFibGVDb2x1bW5NYW5hZ2VyTWF4Q29sdW1uc0RlZmF1bHQgPSA5OTk5OTtcblxuZXhwb3J0IGNvbnN0IHBvVGFibGVDb2x1bW5NYW5hZ2VyTGl0ZXJhbHNEZWZhdWx0ID0ge1xuICBlbjoge1xuICAgIGNvbHVtbnNNYW5hZ2VyOiAnQ29sdW1ucyBtYW5hZ2VyJyxcbiAgICByZXN0b3JlRGVmYXVsdDogJ1Jlc3RvcmUgZGVmYXVsdCcsXG4gICAgdXA6ICd1cCcsXG4gICAgZG93bjogJ2Rvd24nXG4gIH0sXG4gIGVzOiB7XG4gICAgY29sdW1uc01hbmFnZXI6ICdHZXJlbnRlIGRlIGNvbHVtbmEnLFxuICAgIHJlc3RvcmVEZWZhdWx0OiAnUmVzdGF1cmFyIHBvciBkZWZlY3RvJyxcbiAgICB1cDogJ2FycmliYScsXG4gICAgZG93bjogJ2FiYWpvJ1xuICB9LFxuICBwdDoge1xuICAgIGNvbHVtbnNNYW5hZ2VyOiAnR2VyZW5jaWFkb3IgZGUgY29sdW5hcycsXG4gICAgcmVzdG9yZURlZmF1bHQ6ICdSZXN0YXVyYXIgcGFkcsOjbycsXG4gICAgdXA6ICdhY2ltYScsXG4gICAgZG93bjogJ2FiYWl4bydcbiAgfSxcbiAgcnU6IHtcbiAgICBjb2x1bW5zTWFuYWdlcjogJ9C80LXQvdC10LTQttC10YAg0LrQvtC70L7QvdC+0LonLFxuICAgIHJlc3RvcmVEZWZhdWx0OiAn0YHQsdGA0L7RgSDQvdCw0YHRgtGA0L7QtdC6JyxcbiAgICB1cDogJ9Cy0LLQtdGA0YUnLFxuICAgIGRvd246ICfQstC90LjQtydcbiAgfVxufTtcblxudHlwZSBEaXJlY3Rpb24gPSAndXAnIHwgJ2Rvd24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwby10YWJsZS1jb2x1bW4tbWFuYWdlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wby10YWJsZS1jb2x1bW4tbWFuYWdlci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUG9UYWJsZUNvbHVtbk1hbmFnZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoUG9Qb3BvdmVyQ29tcG9uZW50KSBwb3BvdmVyOiBQb1BvcG92ZXJDb21wb25lbnQ7XG5cbiAgQElucHV0KCdwLWNvbHVtbnMnKSBjb2x1bW5zOiBBcnJheTxQb1RhYmxlQ29sdW1uPiA9IFtdO1xuXG4gIEBJbnB1dCgncC10YXJnZXQnKSB0YXJnZXQ6IEVsZW1lbnRSZWY7XG5cbiAgQElucHV0KCdwLWNvbHVtbnMtZGVmYXVsdCcpIGNvbHVuc0RlZmF1bHQ6IEFycmF5PFBvVGFibGVDb2x1bW4+O1xuXG4gIEBJbnB1dCgncC1sYXN0LXZpc2libGUtY29sdW1ucy1zZWxlY3RlZCcpIGxhc3RWaXNpYmxlQ29sdW1uc1NlbGVjdGVkOiBBcnJheTxQb1RhYmxlQ29sdW1uPiA9IFtdO1xuXG4gIEBPdXRwdXQoJ3AtdmlzaWJsZS1jb2x1bW5zLWNoYW5nZScpIHZpc2libGVDb2x1bW5zQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxBcnJheTxQb1RhYmxlQ29sdW1uPj4oKTtcblxuICAvLyBFdmVudG8gZGlzcGFyYWRvIGFvIGZlY2hhciBvIHBvcG92ZXIgZG8gZ2VyZW5jaWFkb3IgZGUgY29sdW5hcyBhcMOzcyBhbHRlcmFyIGFzIGNvbHVuYXMgdmlzw612ZWlzLlxuICAvLyBPIHBvLXRhYmxlIGVudmlhIGNvbW8gcGFyw6JtZXRybyB1bSBhcnJheSBkZSBzdHJpbmcgY29tIGFzIGNvbHVuYXMgdmlzw612ZWlzIGF0dWFsaXphZGFzLiBQb3IgZXhlbXBsbzogW1wiaWRDYXJkXCIsIFwibmFtZVwiLCBcImhpcmVTdGF0dXNcIiwgXCJhZ2VcIl0uXG4gIEBPdXRwdXQoJ3AtY2hhbmdlLXZpc2libGUtY29sdW1ucycpIGNoYW5nZVZpc2libGVDb2x1bW5zID0gbmV3IEV2ZW50RW1pdHRlcjxBcnJheTxzdHJpbmc+PigpO1xuXG4gIEBPdXRwdXQoJ3AtaW5pdGlhbC1jb2x1bW5zJykgaW5pdGlhbENvbHVtbnMgPSBuZXcgRXZlbnRFbWl0dGVyPEFycmF5PFN0cmluZz4+KCk7XG5cbiAgbGl0ZXJhbHM7XG4gIGNvbHVtbnNPcHRpb25zOiBBcnJheTxQb0NoZWNrYm94R3JvdXBPcHRpb24+ID0gW107XG4gIHZpc2libGVDb2x1bW5zOiBBcnJheTxzdHJpbmc+ID0gW107XG4gIGNvbHVtblVwZGF0ZTtcblxuICBwcml2YXRlIF9tYXhDb2x1bW5zOiBudW1iZXIgPSBQb1RhYmxlQ29sdW1uTWFuYWdlck1heENvbHVtbnNEZWZhdWx0O1xuICBwcml2YXRlIGRlZmF1bHRDb2x1bW5zOiBBcnJheTxQb1RhYmxlQ29sdW1uPiA9IFtdO1xuICBwcml2YXRlIHJlc2l6ZUxpc3RlbmVyOiAoKSA9PiB2b2lkO1xuICBwcml2YXRlIHJlc3RvcmVEZWZhdWx0RXZlbnQ6IGJvb2xlYW47XG4gIHByaXZhdGUgbGFzdEVtaXR0ZWRWYWx1ZTogQXJyYXk8c3RyaW5nPjtcbiAgcHJpdmF0ZSBtaW5Db2x1bW5zOiBudW1iZXIgPSAxO1xuXG4gIEBJbnB1dCgncC1tYXgtY29sdW1ucycpIHNldCBtYXhDb2x1bW5zKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9tYXhDb2x1bW5zID0gY29udmVydFRvSW50KHZhbHVlLCBQb1RhYmxlQ29sdW1uTWFuYWdlck1heENvbHVtbnNEZWZhdWx0KTtcbiAgfVxuXG4gIGdldCBtYXhDb2x1bW5zKCkge1xuICAgIHJldHVybiB0aGlzLl9tYXhDb2x1bW5zO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBsYW5ndWFnZVNlcnZpY2U6IFBvTGFuZ3VhZ2VTZXJ2aWNlKSB7XG4gICAgY29uc3QgbGFuZ3VhZ2UgPSBsYW5ndWFnZVNlcnZpY2UuZ2V0U2hvcnRMYW5ndWFnZSgpO1xuXG4gICAgdGhpcy5saXRlcmFscyA9IHtcbiAgICAgIC4uLnBvVGFibGVDb2x1bW5NYW5hZ2VyTGl0ZXJhbHNEZWZhdWx0W3BvTG9jYWxlRGVmYXVsdF0sXG4gICAgICAuLi5wb1RhYmxlQ29sdW1uTWFuYWdlckxpdGVyYWxzRGVmYXVsdFtsYW5ndWFnZV1cbiAgICB9O1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGNvbnN0IHsgY29sdW1ucywgbWF4Q29sdW1ucywgdGFyZ2V0IH0gPSBjaGFuZ2VzO1xuXG4gICAgaWYgKHRhcmdldCAmJiB0YXJnZXQuZmlyc3RDaGFuZ2UpIHtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZUxpc3RlbmVycygpO1xuICAgIH1cblxuICAgIGlmIChjb2x1bW5zKSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlQ29sdW1ucyhjb2x1bW5zKTtcbiAgICB9XG5cbiAgICBpZiAobWF4Q29sdW1ucykge1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZXModGhpcy5jb2x1bW5zKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnJlbW92ZUxpc3RlbmVycygpO1xuICB9XG5cbiAgLy8gYXF1aSBjaGVnYW0gb3MgZXZlbnRvcyBkbyBjaGVja2JveCBlIGRvIGNsb3NlIGRvIHBvcG92ZXIgcXVlIHRhbWLDqW0gw6kgZGlzcGFyYWRvIG5vIHJlc2l6ZVxuICBjaGVja0NoYW5nZXMoZXZlbnQ6IEFycmF5PHN0cmluZz4gPSBbXSwgZW1pdDogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgdGhpcy52ZXJpZnlUb0VtaXRDaGFuZ2UoZXZlbnQpO1xuXG4gICAgaWYgKGVtaXQpIHtcbiAgICAgIC8vIGNvbnRyb2xhIGVtaXNzw7VlcyBwYXJhIG8gZGV2XG4gICAgICB0aGlzLnZlcmlmeVRvRW1pdFZpc2libGVDb2x1bW5zKCk7XG4gICAgfVxuICB9XG5cbiAgcmVzdG9yZSgpIHtcbiAgICB0aGlzLnJlc3RvcmVEZWZhdWx0RXZlbnQgPSB0cnVlO1xuICAgIGNvbnN0IGRlZmF1bHRDb2x1bW5zID0gdGhpcy5nZXRWaXNpYmxlQ29sdW1ucyh0aGlzLmRlZmF1bHRDb2x1bW5zKTtcbiAgICB0aGlzLmluaXRpYWxDb2x1bW5zLmVtaXQodGhpcy5nZXRWaXNpYmxlQ29sdW1ucyh0aGlzLmNvbHVuc0RlZmF1bHQpKTtcbiAgICB0aGlzLmNoZWNrQ2hhbmdlcyhkZWZhdWx0Q29sdW1ucywgdGhpcy5yZXN0b3JlRGVmYXVsdEV2ZW50KTtcbiAgfVxuXG4gIGNoYW5nZVBvc2l0aW9uKG9wdGlvbiwgZGlyZWN0aW9uOiBEaXJlY3Rpb24pIHtcbiAgICBjb25zdCBpbmRleENvbHVtbiA9IHRoaXMuY29sdW1ucy5maW5kSW5kZXgoZWwgPT4gZWwucHJvcGVydHkgPT09IG9wdGlvbi52YWx1ZSk7XG4gICAgY29uc3QgbmV3Q29sdW1uID0gWy4uLnRoaXMuY29sdW1uc107XG5cbiAgICBjb25zdCBoYXNEaXNhYmxlZDogYm9vbGVhbiA9IHRoaXMudmVyaWZ5QXJyb3dEaXNhYmxlZChvcHRpb24sIGRpcmVjdGlvbik7XG5cbiAgICB0aGlzLmNoYW5nZVBvc2l0aW9uQ29sdW1uKG5ld0NvbHVtbiwgaW5kZXhDb2x1bW4sIGRpcmVjdGlvbiwgaGFzRGlzYWJsZWQpO1xuICAgIHRoaXMuY29sdW1ucyA9IG5ld0NvbHVtbjtcbiAgICB0aGlzLnZpc2libGVDb2x1bW5zQ2hhbmdlLmVtaXQodGhpcy5jb2x1bW5zKTtcbiAgfVxuXG4gIHZlcmlmeUFycm93RGlzYWJsZWQob3B0aW9uLCBkaXJlY3Rpb246IERpcmVjdGlvbikge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jb2x1bW5zLmZpbmRJbmRleChlbCA9PiBlbC5wcm9wZXJ0eSA9PT0gb3B0aW9uLnZhbHVlKTtcbiAgICBjb25zdCBleGlzdHNEZXRhaWwgPSB0aGlzLmNvbHVtbnMuc29tZShmdW5jdGlvbiAoZWwpIHtcbiAgICAgIHJldHVybiBlbC5wcm9wZXJ0eSA9PT0gJ2RldGFpbCc7XG4gICAgfSk7XG4gICAgY29uc3QgdmFsdWVTdWJ0cmFjdGlvbiA9IGV4aXN0c0RldGFpbCA/IDIgOiAxO1xuXG4gICAgaWYgKGluZGV4ID09PSAwICYmIGRpcmVjdGlvbiA9PT0gJ3VwJykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKGluZGV4ID09PSB0aGlzLmNvbHVtbnMubGVuZ3RoIC0gdmFsdWVTdWJ0cmFjdGlvbiAmJiBkaXJlY3Rpb24gPT09ICdkb3duJykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGFuZ2VQb3NpdGlvbkNvbHVtbihhcnJheTogQXJyYXk8UG9UYWJsZUNvbHVtbj4sIGluZGV4OiBudW1iZXIsIGRpcmVjdGlvbjogRGlyZWN0aW9uLCBoYXNEaXNhYmxlZDogYm9vbGVhbikge1xuICAgIGlmICghaGFzRGlzYWJsZWQpIHtcbiAgICAgIGlmIChkaXJlY3Rpb24gPT09ICd1cCcpIHtcbiAgICAgICAgYXJyYXkuc3BsaWNlKGluZGV4LCAwLCBhcnJheS5zcGxpY2UoaW5kZXggLSAxLCAxKVswXSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChkaXJlY3Rpb24gPT09ICdkb3duJykge1xuICAgICAgICBhcnJheS5zcGxpY2UoaW5kZXgsIDAsIGFycmF5LnNwbGljZShpbmRleCArIDEsIDEpWzBdKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHZlcmlmeVRvRW1pdENoYW5nZShldmVudDogQXJyYXk8c3RyaW5nPikge1xuICAgIGNvbnN0IG5ld0NvbHVtbnMgPSBbLi4uZXZlbnRdO1xuICAgIGlmIChuZXdDb2x1bW5zLmxlbmd0aCA+PSAxICYmIHRoaXMuYWxsb3dzQ2hhbmdlVmlzaWJsZUNvbHVtbnMoKSkge1xuICAgICAgdGhpcy5lbWl0Q2hhbmdlc1RvU2VsZWN0ZWRDb2x1bW5zKG5ld0NvbHVtbnMpO1xuICAgIH1cbiAgICAvLyBEZXNhYmlsaXRhIHVsdGltbyBjaGVja2JveCBhdGl2b1xuICAgIGlmIChuZXdDb2x1bW5zLmxlbmd0aCA9PT0gMSkge1xuICAgICAgY29uc3QgY29sdW1uc09wdGlvbnMgPSB0aGlzLm1hcFRhYmxlQ29sdW1uc1RvQ2hlY2tib3hPcHRpb25zKHRoaXMuY29sdW1uVXBkYXRlKTtcbiAgICAgIHRoaXMuY29sdW1uc09wdGlvbnMgPSB0aGlzLmRpc2FibGVkTGFzdENvbHVtbihjb2x1bW5zT3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Q2hhbmdlc1RvU2VsZWN0ZWRDb2x1bW5zKG5ld0NvbHVtbnM6IEFycmF5PHN0cmluZz4pIHtcbiAgICB0aGlzLnZpc2libGVDb2x1bW5zID0gWy4uLm5ld0NvbHVtbnNdO1xuICAgIGNvbnN0IHZpc2libGVUYWJsZUNvbHVtbnMgPSB0aGlzLmdldFZpc2libGVUYWJsZUNvbHVtbnModGhpcy52aXNpYmxlQ29sdW1ucyk7XG5cbiAgICAvLyBlbWl0ZSBhbHRlcmHDp8OjbyBuYXMgY29sdW5hcyBzZWxlY2lvbmFkYXMsIHBvcsOpbSBuw6NvIGVtaXRlIHBhcmEgbyBkZXYuXG4gICAgdGhpcy52aXNpYmxlQ29sdW1uc0NoYW5nZS5lbWl0KHZpc2libGVUYWJsZUNvbHVtbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBhbGxvd3NDaGFuZ2VWaXNpYmxlQ29sdW1ucygpOiBib29sZWFuIHtcbiAgICBjb25zdCB2aXNpYmxlVGFibGVDb2x1bW5zID0gdGhpcy5nZXRWaXNpYmxlVGFibGVDb2x1bW5zKHRoaXMudmlzaWJsZUNvbHVtbnMpO1xuXG4gICAgcmV0dXJuIHRoaXMuc3RyaW5naWZ5KHZpc2libGVUYWJsZUNvbHVtbnMpICE9PSB0aGlzLnN0cmluZ2lmeSh0aGlzLmNvbHVtbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSB2ZXJpZnlUb0VtaXRWaXNpYmxlQ29sdW1ucygpIHtcbiAgICBpZiAodGhpcy5yZXN0b3JlRGVmYXVsdEV2ZW50KSB7XG4gICAgICAvLyB2ZWlvIGRvIHJlc3RvcmUgZGVmYXVsdFxuICAgICAgdGhpcy52ZXJpZnlSZXN0b3JlVmFsdWVzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGZvaSBkaXNwYXJhZG8gbm8gY2xvc2UgcG9wb3ZlcjtcbiAgICAgIHRoaXMudmVyaWZ5T25DbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdmVyaWZ5UmVzdG9yZVZhbHVlcygpIHtcbiAgICBjb25zdCBkZWZhdWx0Q29sdW1ucyA9IFsuLi50aGlzLmRlZmF1bHRDb2x1bW5zXTtcbiAgICBjb25zdCBkZWZhdWx0VmlzaWJsZUNvbHVtbnMgPSB0aGlzLmdldFZpc2libGVDb2x1bW5zKGRlZmF1bHRDb2x1bW5zKTtcblxuICAgIGlmICh0aGlzLmFsbG93c0NoYW5nZVNlbGVjdGVkQ29sdW1ucyhkZWZhdWx0VmlzaWJsZUNvbHVtbnMpKSB7XG4gICAgICB0aGlzLnZpc2libGVDb2x1bW5zQ2hhbmdlLmVtaXQodGhpcy5kZWZhdWx0Q29sdW1ucyk7XG4gICAgfVxuXG4gICAgdGhpcy5yZXN0b3JlRGVmYXVsdEV2ZW50ID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGFsbG93c0NoYW5nZVNlbGVjdGVkQ29sdW1ucyhkZWZhdWx0VmlzaWJsZUNvbHVtbnM6IEFycmF5PHN0cmluZz4pIHtcbiAgICBjb25zdCB2aXNpYmxlQ29sdW1ucyA9IHRoaXMuZ2V0VmlzaWJsZUNvbHVtbnModGhpcy5jb2x1bW5zKTtcblxuICAgIHJldHVybiAhdGhpcy5pc0VxdWFsQXJyYXlzKGRlZmF1bHRWaXNpYmxlQ29sdW1ucywgdmlzaWJsZUNvbHVtbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSB2ZXJpZnlPbkNsb3NlKCkge1xuICAgIGlmICh0aGlzLmFsbG93c0VtaXNzaW9uKCkpIHtcbiAgICAgIHRoaXMuZW1pdFZpc2libGVDb2x1bW5zKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbWl0VmlzaWJsZUNvbHVtbnMoKSB7XG4gICAgdGhpcy5sYXN0RW1pdHRlZFZhbHVlID0gWy4uLnRoaXMudmlzaWJsZUNvbHVtbnNdO1xuICAgIHRoaXMuY2hhbmdlVmlzaWJsZUNvbHVtbnMuZW1pdCh0aGlzLnZpc2libGVDb2x1bW5zKTtcbiAgfVxuXG4gIHByaXZhdGUgYWxsb3dzRW1pc3Npb24oKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdXBkYXRlZFZpc2libGVDb2x1bW5zID0gdGhpcy52aXNpYmxlQ29sdW1ucyA/IFsuLi50aGlzLnZpc2libGVDb2x1bW5zXSA6IFtdO1xuICAgIGNvbnN0IGxhc3RFbWl0dGVkVmFsdWUgPSB0aGlzLmxhc3RFbWl0dGVkVmFsdWUgPyBbLi4udGhpcy5sYXN0RW1pdHRlZFZhbHVlXSA6IFtdO1xuICAgIGNvbnN0IGxhc3RWaXNpYmxlQ29sdW1uc1NlbGVjdGVkID0gdGhpcy5sYXN0VmlzaWJsZUNvbHVtbnNTZWxlY3RlZCA/IFsuLi50aGlzLmxhc3RWaXNpYmxlQ29sdW1uc1NlbGVjdGVkXSA6IFtdO1xuICAgIGNvbnN0IGxhc3RWaXNpYmxlQ29sdW1ucyA9IHRoaXMuZ2V0VmlzaWJsZUNvbHVtbnMobGFzdFZpc2libGVDb2x1bW5zU2VsZWN0ZWQpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuaXNVcGRhdGUodXBkYXRlZFZpc2libGVDb2x1bW5zLCBsYXN0RW1pdHRlZFZhbHVlKSB8fFxuICAgICAgdGhpcy5pc0ZpcnN0VGltZSh1cGRhdGVkVmlzaWJsZUNvbHVtbnMsIGxhc3RWaXNpYmxlQ29sdW1ucylcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0ZpcnN0VGltZSh1cGRhdGVkVmlzaWJsZUNvbHVtbnM6IEFycmF5PHN0cmluZz4sIGxhc3RWaXNpYmxlQ29sdW1uczogQXJyYXk8c3RyaW5nPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5sYXN0RW1pdHRlZFZhbHVlICYmICF0aGlzLmlzRXF1YWxBcnJheXModXBkYXRlZFZpc2libGVDb2x1bW5zLCBsYXN0VmlzaWJsZUNvbHVtbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1VwZGF0ZSh1cGRhdGVkVmlzaWJsZUNvbHVtbnM6IEFycmF5PHN0cmluZz4sIGxhc3RFbWl0dGVkVmFsdWU6IEFycmF5PHN0cmluZz4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5sYXN0RW1pdHRlZFZhbHVlICYmICF0aGlzLmlzRXF1YWxBcnJheXModXBkYXRlZFZpc2libGVDb2x1bW5zLCBsYXN0RW1pdHRlZFZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNFcXVhbEFycmF5cyhmaXJzdDogQXJyYXk8c3RyaW5nPiwgc2Vjb25kOiBBcnJheTxzdHJpbmc+KTogYm9vbGVhbiB7XG4gICAgY29uc3Qgb25lID0gZmlyc3QgPyBbLi4uZmlyc3RdIDogW107XG4gICAgY29uc3QgdHdvID0gc2Vjb25kID8gWy4uLnNlY29uZF0gOiBbXTtcbiAgICBjb25zdCBmaXJzdFNvcnQgPSBvbmUuc2xpY2UoKTtcbiAgICBjb25zdCBzZWNvbmRTb3J0ID0gdHdvLnNsaWNlKCk7XG4gICAgY29uc3QgZmlyc3RTdHJpbmcgPSBKU09OLnN0cmluZ2lmeShmaXJzdFNvcnQpO1xuICAgIGNvbnN0IHNlY29uZFN0cmluZyA9IEpTT04uc3RyaW5naWZ5KHNlY29uZFNvcnQpO1xuXG4gICAgcmV0dXJuIGZpcnN0U3RyaW5nID09PSBzZWNvbmRTdHJpbmc7XG4gIH1cblxuICAvLyBkZXNhYmlsaXRhcsOhIGFzIGNvbHVuYXMsIHF1ZSBuw6NvIGVzdGl2ZXJlbSBzZWxlY2lvbmFkYXMsIGFww7NzIGV4ZWRlciBvIG51bWVybyBtYXhpbW8gZGUgY29sdW5hcy5cbiAgcHJpdmF0ZSBkaXNhYmxlQ29sdW1uc09wdGlvbnMoY29sdW1uczogQXJyYXk8UG9DaGVja2JveEdyb3VwT3B0aW9uPiA9IFtdKSB7XG4gICAgcmV0dXJuIGNvbHVtbnMubWFwKGNvbHVtbiA9PiAoe1xuICAgICAgLi4uY29sdW1uLFxuICAgICAgZGlzYWJsZWQ6IHRoaXMuaXNEaXNhYmxlQ29sdW1uKGNvbHVtbi52YWx1ZSlcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIGdldENvbHVtblRpdGxlTGFiZWwoY29sdW1uOiBQb1RhYmxlQ29sdW1uKSB7XG4gICAgcmV0dXJuIGNvbHVtbi5sYWJlbCB8fCBjYXBpdGFsaXplRmlyc3RMZXR0ZXIoY29sdW1uLnByb3BlcnR5KTtcbiAgfVxuXG4gIC8qKiBSZXRvcm5hIHVtIEFycmF5IGRlIGNvbHVtbi5wcm9wZXJ0eSBkYXMgY29sdW5hcyBxdWUgc8OjbyB2aXNpdmVpcy4gKi9cbiAgcHJpdmF0ZSBnZXRWaXNpYmxlQ29sdW1ucyhjb2x1bW5zOiBBcnJheTxQb1RhYmxlQ29sdW1uPik6IEFycmF5PHN0cmluZz4ge1xuICAgIGxldCB2aXNpYmxlQ29sdW1ucyA9IFtdO1xuXG4gICAgY29sdW1ucy5mb3JFYWNoKGNvbHVtbiA9PiB7XG4gICAgICBpZiAodGhpcy5pc1Zpc2libGVDb2x1bW4oY29sdW1uLCB2aXNpYmxlQ29sdW1ucykpIHtcbiAgICAgICAgdmlzaWJsZUNvbHVtbnMgPSBbLi4udmlzaWJsZUNvbHVtbnMsIGNvbHVtbi5wcm9wZXJ0eV07XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdmlzaWJsZUNvbHVtbnM7XG4gIH1cblxuICBwcml2YXRlIGlzVmlzaWJsZUNvbHVtbihjb2x1bW46IFBvVGFibGVDb2x1bW4sIHZpc2libGVDb2x1bW5zOiBBcnJheTxzdHJpbmc+KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGNvbHVtbi52aXNpYmxlICE9PSBmYWxzZSAmJiB2aXNpYmxlQ29sdW1ucy5sZW5ndGggPCB0aGlzLm1heENvbHVtbnMgJiYgY29sdW1uLnR5cGUgIT09ICdkZXRhaWwnO1xuICB9XG5cbiAgLyoqIFJldG9ybmEgdW0gQXJyYXkgUG9UYWJsZUNvbHVtbiBhIHBhcnRpciBkYXMgY29sdW5hcyB2aXNpdmVpcyBubyBnZXJlbmNpYWRvciBkZSBjb2x1bmFzLiAqL1xuICBwcml2YXRlIGdldFZpc2libGVUYWJsZUNvbHVtbnModmlzaWJsZUNvbHVtbnM6IEFycmF5PHN0cmluZz4pOiBBcnJheTxQb1RhYmxlQ29sdW1uPiB7XG4gICAgY29uc3QgY29sdW1ucyA9IHRoaXMuY29sdW1ucyA/IFsuLi50aGlzLmNvbHVtbnNdIDogW107XG5cbiAgICByZXR1cm4gY29sdW1ucy5tYXAoY29sdW1uID0+ICh7XG4gICAgICAuLi5jb2x1bW4sXG4gICAgICB2aXNpYmxlOiB2aXNpYmxlQ29sdW1ucy5pbmNsdWRlcyhjb2x1bW4ucHJvcGVydHkpIHx8IGNvbHVtbi50eXBlID09PSAnZGV0YWlsJ1xuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUxpc3RlbmVycygpIHtcbiAgICB0aGlzLnJlc2l6ZUxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oJ3dpbmRvdycsICdyZXNpemUnLCAoKSA9PiB7XG4gICAgICBpZiAodGhpcy5wb3BvdmVyICYmICF0aGlzLnBvcG92ZXIuaXNIaWRkZW4pIHtcbiAgICAgICAgdGhpcy5wb3BvdmVyLmNsb3NlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGlzRGlzYWJsZUNvbHVtbihwcm9wZXJ0eTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmlzaWJsZUNvbHVtbnMubGVuZ3RoID49IHRoaXMubWF4Q29sdW1ucyA/ICF0aGlzLnZpc2libGVDb2x1bW5zLmluY2x1ZGVzKHByb3BlcnR5KSA6IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBtYXBUYWJsZUNvbHVtbnNUb0NoZWNrYm94T3B0aW9ucyhjb2x1bW5zOiBBcnJheTxQb1RhYmxlQ29sdW1uPiA9IFtdKSB7XG4gICAgY29uc3QgdGFibGVDb2x1bW5zID0gWy4uLmNvbHVtbnNdO1xuICAgIGNvbnN0IGNvbHVtbnNPcHRpb25zID0gW107XG5cbiAgICB0YWJsZUNvbHVtbnMuZm9yRWFjaChjb2x1bW4gPT4ge1xuICAgICAgaWYgKGNvbHVtbi50eXBlICE9PSAnZGV0YWlsJykge1xuICAgICAgICBjb2x1bW5zT3B0aW9ucy5wdXNoKHtcbiAgICAgICAgICB2YWx1ZTogY29sdW1uLnByb3BlcnR5LFxuICAgICAgICAgIGxhYmVsOiB0aGlzLmdldENvbHVtblRpdGxlTGFiZWwoY29sdW1uKSxcbiAgICAgICAgICBkaXNhYmxlZDogdGhpcy5pc0Rpc2FibGVDb2x1bW4oY29sdW1uLnByb3BlcnR5KSxcbiAgICAgICAgICB2aXNpYmxlOiBjb2x1bW4udmlzaWJsZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBjb2x1bW5zT3B0aW9ucztcbiAgfVxuXG4gIHByaXZhdGUgZGlzYWJsZWRMYXN0Q29sdW1uKGNvbHVtbnM6IEFycmF5PGFueT4pIHtcbiAgICByZXR1cm4gY29sdW1ucy5tYXAoY29sdW1uID0+ICh7XG4gICAgICAuLi5jb2x1bW4sXG4gICAgICBkaXNhYmxlZDogY29sdW1uLnR5cGUgIT09ICdkZXRhaWwnICYmIGNvbHVtbi52aXNpYmxlID8gdHJ1ZSA6IGZhbHNlXG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZUNvbHVtbnMoY29sdW1uczogU2ltcGxlQ2hhbmdlKSB7XG4gICAgY29uc3QgeyBjdXJyZW50VmFsdWUgPSBbXSwgcHJldmlvdXNWYWx1ZSA9IFtdIH0gPSBjb2x1bW5zO1xuICAgIHRoaXMuY29sdW1uVXBkYXRlID0gY29sdW1ucy5jdXJyZW50VmFsdWU7XG5cbiAgICAvLyBhdHVhbGl6YXJhIG8gZGVmYXVsdENvbHVtbnMsIHF1YW5kbyBmb3IgYSBwcmltZWlyYSB2ZXogb3UgcXVhbmRvIG8gZGVmYXVsdENvbHVtbnMgZm9yIGRpZmVyZW50ZSBkbyBjdXJyZW50VmFsdWVcbiAgICBpZiAoIXRoaXMubGFzdFZpc2libGVDb2x1bW5zU2VsZWN0ZWQgJiYgdGhpcy5zdHJpbmdpZnkodGhpcy5kZWZhdWx0Q29sdW1ucykgIT09IHRoaXMuc3RyaW5naWZ5KGN1cnJlbnRWYWx1ZSkpIHtcbiAgICAgIHRoaXMuZGVmYXVsdENvbHVtbnMgPSBbLi4uY3VycmVudFZhbHVlXTtcbiAgICB9XG5cbiAgICAvLyB2ZXJpZmljYSBzZSBvIHZhbG9yIGFudGVyaW9yIMOpIGRpZmVyZW50ZSBkbyBhdHVhbCBwYXJhIGF0dWFsaXphciBhcyBjb2x1bW5zT3B0aW9ucyBhcGVuYXMgcXVhbmRvIGZvciBuZWNlc3NhcmlvXG4gICAgaWYgKHRoaXMuc3RyaW5naWZ5KHByZXZpb3VzVmFsdWUpICE9PSB0aGlzLnN0cmluZ2lmeShjdXJyZW50VmFsdWUpKSB7XG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlcyhjdXJyZW50VmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVmFsdWVzKGN1cnJlbnRWYWx1ZTogQXJyYXk8UG9UYWJsZUNvbHVtbj4pIHtcbiAgICBjb25zdCB2aXNpYmxlQ29sdW1ucyA9IHRoaXMuZ2V0VmlzaWJsZUNvbHVtbnMoY3VycmVudFZhbHVlKTtcbiAgICB0aGlzLnZpc2libGVDb2x1bW5zID0gWy4uLnZpc2libGVDb2x1bW5zXTtcblxuICAgIGNvbnN0IGNvbHVtbnNPcHRpb25zID0gdGhpcy5tYXBUYWJsZUNvbHVtbnNUb0NoZWNrYm94T3B0aW9ucyhjdXJyZW50VmFsdWUpO1xuICAgIHRoaXMuY29sdW1uc09wdGlvbnMgPSB0aGlzLmRpc2FibGVDb2x1bW5zT3B0aW9ucyhjb2x1bW5zT3B0aW9ucyk7XG5cbiAgICB0aGlzLmNoZWNrQ2hhbmdlcyh2aXNpYmxlQ29sdW1ucywgZmFsc2UpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVMaXN0ZW5lcnMoKSB7XG4gICAgaWYgKHRoaXMucmVzaXplTGlzdGVuZXIpIHtcbiAgICAgIHRoaXMucmVzaXplTGlzdGVuZXIoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0cmluZ2lmeShjb2x1bW5zOiBBcnJheTxQb1RhYmxlQ29sdW1uPikge1xuICAgIC8vIG7Do28gZmF6IG8gc3RyaW5naWZ5IGRhIHByb3ByaWVkYWRlIGljb24gZSBzZWFyY2hTZXJ2aWNlLCBwb2lzIHBvZGUgY29udGVyIG9iamV0byBjb21wbGV4byBlIGRpc3BhcmFyIHVtIGVycm8uXG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGNvbHVtbnMsIChrZXksIHZhbHVlKSA9PiB7XG4gICAgICBpZiAoa2V5ICE9PSAnaWNvbicgJiYga2V5ICE9PSAnc2VhcmNoU2VydmljZScpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8cG8tcG9wb3ZlciAjcG9wb3ZlciAqbmdJZj1cInRhcmdldFwiIFtwLXRhcmdldF09XCJ0YXJnZXRcIiBwLXBvc2l0aW9uPVwiYm90dG9tLWxlZnRcIiAocC1jbG9zZSk9XCJjaGVja0NoYW5nZXMoW10sIHRydWUpXCI+XG4gIDxkaXYgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4tbWFuYWdlci1oZWFkZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwicG8tdGFibGUtY29sdW1uLW1hbmFnZXItaGVhZGVyLXRpdGxlXCI+e3sgbGl0ZXJhbHMuY29sdW1uc01hbmFnZXIgfX08L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4tbWFuYWdlci1oZWFkZXItY2xvc2VcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4tbWFuYWdlci1oZWFkZXItY2xvc2UtYnV0dG9uIHBvLWNsaWNrYWJsZSBwby1pY29uIHBvLWljb24tY2xvc2VcIlxuICAgICAgICAoY2xpY2spPVwicG9wb3Zlci5jbG9zZSgpXCJcbiAgICAgID48L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInBvLXRhYmxlLWNvbHVtbi1tYW5hZ2VyLWJvZHlcIj5cbiAgICA8cG8tY2hlY2tib3gtZ3JvdXBcbiAgICAgIGNsYXNzPVwicG8tY2hlY2tib3gtZ3JvdXAtY29sdW1uLW1hbmFnZXJcIlxuICAgICAgbmFtZT1cInZpc2libGVDb2x1bW5zXCJcbiAgICAgIFsobmdNb2RlbCldPVwidmlzaWJsZUNvbHVtbnNcIlxuICAgICAgcC1jb2x1bW5zPVwiMVwiXG4gICAgICBbcC1vcHRpb25zXT1cImNvbHVtbnNPcHRpb25zXCJcbiAgICAgIChwLWNoYW5nZSk9XCJjaGVja0NoYW5nZXMoJGV2ZW50LCBmYWxzZSlcIlxuICAgID5cbiAgICA8L3BvLWNoZWNrYm94LWdyb3VwPlxuXG4gICAgPGRpdiBjbGFzcz1cInBvLWNvbnRhaW5lci1hcnJvd3MtY29sdW1ucy1tYW5hZ2VyXCI+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgY29sdW1uc09wdGlvbnNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBvLWNvbnRhaW5lci1pY29ucy1hcnJvd3MtY29sdW1ucy1tYW5hZ2VyXCI+XG4gICAgICAgICAgPHBvLWJ1dHRvblxuICAgICAgICAgICAgW3AtdG9vbHRpcF09XCJsaXRlcmFscy51cFwiXG4gICAgICAgICAgICBwLXRvb2x0aXAtcG9zaXRpb249XCJsZWZ0XCJcbiAgICAgICAgICAgIFtwLWRpc2FibGVkXT1cInZlcmlmeUFycm93RGlzYWJsZWQob3B0aW9uLCAndXAnKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlUG9zaXRpb24ob3B0aW9uLCAndXAnKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgIHAta2luZD1cInRlcnRpYXJ5XCJcbiAgICAgICAgICAgIHAtaWNvbj1cInBvLWljb24gcG8taWNvbi1hcnJvdy11cFwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvcG8tYnV0dG9uPlxuICAgICAgICAgIDxwby1idXR0b25cbiAgICAgICAgICAgIFtwLXRvb2x0aXBdPVwibGl0ZXJhbHMuZG93blwiXG4gICAgICAgICAgICBwLXRvb2x0aXAtcG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgICAgW3AtZGlzYWJsZWRdPVwidmVyaWZ5QXJyb3dEaXNhYmxlZChvcHRpb24sICdkb3duJylcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNoYW5nZVBvc2l0aW9uKG9wdGlvbiwgJ2Rvd24nKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgIHAta2luZD1cInRlcnRpYXJ5XCJcbiAgICAgICAgICAgIHAtaWNvbj1cInBvLWljb24gcG8taWNvbi1hcnJvdy1kb3duXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9wby1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4tbWFuYWdlci1mb290ZXJcIj5cbiAgICA8cG8tYnV0dG9uXG4gICAgICBjbGFzcz1cInBvLXRhYmxlLWNvbHVtbi1tYW5hZ2VyLWZvb3Rlci1yZXN0b3JlXCJcbiAgICAgIHAta2luZD1cInRlcnRpYXJ5XCJcbiAgICAgIFtwLWxhYmVsXT1cImxpdGVyYWxzLnJlc3RvcmVEZWZhdWx0XCJcbiAgICAgIChwLWNsaWNrKT1cInJlc3RvcmUoKVwiXG4gICAgPlxuICAgIDwvcG8tYnV0dG9uPlxuICA8L2Rpdj5cbjwvcG8tcG9wb3Zlcj5cbiJdfQ==
|
|
340
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tdGFibGUtY29sdW1uLW1hbmFnZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLXRhYmxlL3BvLXRhYmxlLWNvbHVtbi1tYW5hZ2VyL3BvLXRhYmxlLWNvbHVtbi1tYW5hZ2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby10YWJsZS9wby10YWJsZS1jb2x1bW4tbWFuYWdlci9wby10YWJsZS1jb2x1bW4tbWFuYWdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUlOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFMUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7Ozs7Ozs7O0lDbEJyRix3Q0FBb0g7SUFBbkMseUxBQVcsZUFBQSx3QkFBaUIsSUFBSSxDQUFDLENBQUEsSUFBQztJQUNqSCw4QkFBNEMsYUFBQTtJQUNRLFlBQTZCO0lBQUEsaUJBQU07SUFFckYsOEJBQWtELGdCQUFBO0lBRzlDLDZLQUFTLGVBQUEsV0FBZSxDQUFBLElBQUM7SUFDMUIsaUJBQVMsRUFBQSxFQUFBO0lBSWQsOEJBQTBDLCtCQUFBO0lBR3RDLHdRQUE0QiwrTEFHaEIsZUFBQSw0QkFBcUIsS0FBSyxDQUFDLENBQUEsSUFIWCxpTkFJUCxlQUFBLDZCQUFzQixDQUFBLElBSmY7SUFPOUIsaUJBQXdCLEVBQUE7SUFHMUIsOEJBQTRDLHFCQUFBO0lB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QTZCO3VCQUM3QixrQkFBa0I7Ozs7O1FDakQvQiw2RkFrQ2E7O1FBbENTLGlDQUFZOzt1RkRnRHJCLDZCQUE2QjtjQUp6QyxTQUFTOzJCQUNFLHlCQUF5Qjs0RkFJSixPQUFPO2tCQUFyQyxTQUFTO21CQUFDLGtCQUFrQjtZQUVULE9BQU87a0JBQTFCLEtBQUs7bUJBQUMsV0FBVztZQUVDLE1BQU07a0JBQXhCLEtBQUs7bUJBQUMsVUFBVTtZQUVXLGFBQWE7a0JBQXhDLEtBQUs7bUJBQUMsbUJBQW1CO1lBRWdCLDBCQUEwQjtrQkFBbkUsS0FBSzttQkFBQyxpQ0FBaUM7WUFFSixvQkFBb0I7a0JBQXZELE1BQU07bUJBQUMsMEJBQTBCO1lBSUUsb0JBQW9CO2tCQUF2RCxNQUFNO21CQUFDLDBCQUEwQjtZQUVMLGNBQWM7a0JBQTFDLE1BQU07bUJBQUMsbUJBQW1CO1lBY0MsVUFBVTtrQkFBckMsS0FBSzttQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2UsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFJlbmRlcmVyMixcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBjYXBpdGFsaXplRmlyc3RMZXR0ZXIsIGNvbnZlcnRUb0ludCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3V0aWwnO1xuaW1wb3J0IHsgUG9DaGVja2JveEdyb3VwT3B0aW9uIH0gZnJvbSAnLi4vLi4vcG8tZmllbGQvcG8tY2hlY2tib3gtZ3JvdXAvaW50ZXJmYWNlcy9wby1jaGVja2JveC1ncm91cC1vcHRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3BvLXBvcG92ZXIvcG8tcG9wb3Zlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUG9MYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wby1sYW5ndWFnZS9wby1sYW5ndWFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IHBvTG9jYWxlRGVmYXVsdCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3BvLWxhbmd1YWdlL3BvLWxhbmd1YWdlLmNvbnN0YW50JztcbmltcG9ydCB7IFBvVGFibGVDb2x1bW4gfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvLXRhYmxlLWNvbHVtbi5pbnRlcmZhY2UnO1xuXG5jb25zdCBQb1RhYmxlQ29sdW1uTWFuYWdlck1heENvbHVtbnNEZWZhdWx0ID0gOTk5OTk7XG5cbmV4cG9ydCBjb25zdCBwb1RhYmxlQ29sdW1uTWFuYWdlckxpdGVyYWxzRGVmYXVsdCA9IHtcbiAgZW46IHtcbiAgICBjb2x1bW5zTWFuYWdlcjogJ0NvbHVtbnMgbWFuYWdlcicsXG4gICAgcmVzdG9yZURlZmF1bHQ6ICdSZXN0b3JlIGRlZmF1bHQnXG4gIH0sXG4gIGVzOiB7XG4gICAgY29sdW1uc01hbmFnZXI6ICdHZXJlbnRlIGRlIGNvbHVtbmEnLFxuICAgIHJlc3RvcmVEZWZhdWx0OiAnUmVzdGF1cmFyIHBvciBkZWZlY3RvJ1xuICB9LFxuICBwdDoge1xuICAgIGNvbHVtbnNNYW5hZ2VyOiAnR2VyZW5jaWFkb3IgZGUgY29sdW5hcycsXG4gICAgcmVzdG9yZURlZmF1bHQ6ICdSZXN0YXVyYXIgcGFkcsOjbydcbiAgfSxcbiAgcnU6IHtcbiAgICBjb2x1bW5zTWFuYWdlcjogJ9C80LXQvdC10LTQttC10YAg0LrQvtC70L7QvdC+0LonLFxuICAgIHJlc3RvcmVEZWZhdWx0OiAn0YHQsdGA0L7RgSDQvdCw0YHRgtGA0L7QtdC6J1xuICB9XG59O1xuXG50eXBlIERpcmVjdGlvbiA9ICd1cCcgfCAnZG93bic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BvLXRhYmxlLWNvbHVtbi1tYW5hZ2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLXRhYmxlLWNvbHVtbi1tYW5hZ2VyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQb1RhYmxlQ29sdW1uTWFuYWdlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZChQb1BvcG92ZXJDb21wb25lbnQpIHBvcG92ZXI6IFBvUG9wb3ZlckNvbXBvbmVudDtcblxuICBASW5wdXQoJ3AtY29sdW1ucycpIGNvbHVtbnM6IEFycmF5PFBvVGFibGVDb2x1bW4+ID0gW107XG5cbiAgQElucHV0KCdwLXRhcmdldCcpIHRhcmdldDogRWxlbWVudFJlZjtcblxuICBASW5wdXQoJ3AtY29sdW1ucy1kZWZhdWx0JykgY29sdW5zRGVmYXVsdDogQXJyYXk8UG9UYWJsZUNvbHVtbj47XG5cbiAgQElucHV0KCdwLWxhc3QtdmlzaWJsZS1jb2x1bW5zLXNlbGVjdGVkJykgbGFzdFZpc2libGVDb2x1bW5zU2VsZWN0ZWQ6IEFycmF5PFBvVGFibGVDb2x1bW4+ID0gW107XG5cbiAgQE91dHB1dCgncC12aXNpYmxlLWNvbHVtbnMtY2hhbmdlJykgdmlzaWJsZUNvbHVtbnNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEFycmF5PFBvVGFibGVDb2x1bW4+PigpO1xuXG4gIC8vIEV2ZW50byBkaXNwYXJhZG8gYW8gZmVjaGFyIG8gcG9wb3ZlciBkbyBnZXJlbmNpYWRvciBkZSBjb2x1bmFzIGFww7NzIGFsdGVyYXIgYXMgY29sdW5hcyB2aXPDrXZlaXMuXG4gIC8vIE8gcG8tdGFibGUgZW52aWEgY29tbyBwYXLDom1ldHJvIHVtIGFycmF5IGRlIHN0cmluZyBjb20gYXMgY29sdW5hcyB2aXPDrXZlaXMgYXR1YWxpemFkYXMuIFBvciBleGVtcGxvOiBbXCJpZENhcmRcIiwgXCJuYW1lXCIsIFwiaGlyZVN0YXR1c1wiLCBcImFnZVwiXS5cbiAgQE91dHB1dCgncC1jaGFuZ2UtdmlzaWJsZS1jb2x1bW5zJykgY2hhbmdlVmlzaWJsZUNvbHVtbnMgPSBuZXcgRXZlbnRFbWl0dGVyPEFycmF5PHN0cmluZz4+KCk7XG5cbiAgQE91dHB1dCgncC1pbml0aWFsLWNvbHVtbnMnKSBpbml0aWFsQ29sdW1ucyA9IG5ldyBFdmVudEVtaXR0ZXI8QXJyYXk8U3RyaW5nPj4oKTtcblxuICBsaXRlcmFscztcbiAgY29sdW1uc09wdGlvbnM6IEFycmF5PFBvQ2hlY2tib3hHcm91cE9wdGlvbj4gPSBbXTtcbiAgdmlzaWJsZUNvbHVtbnM6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgY29sdW1uVXBkYXRlO1xuXG4gIHByaXZhdGUgX21heENvbHVtbnM6IG51bWJlciA9IFBvVGFibGVDb2x1bW5NYW5hZ2VyTWF4Q29sdW1uc0RlZmF1bHQ7XG4gIHByaXZhdGUgZGVmYXVsdENvbHVtbnM6IEFycmF5PFBvVGFibGVDb2x1bW4+ID0gW107XG4gIHByaXZhdGUgcmVzaXplTGlzdGVuZXI6ICgpID0+IHZvaWQ7XG4gIHByaXZhdGUgcmVzdG9yZURlZmF1bHRFdmVudDogYm9vbGVhbjtcbiAgcHJpdmF0ZSBsYXN0RW1pdHRlZFZhbHVlOiBBcnJheTxzdHJpbmc+O1xuICBwcml2YXRlIG1pbkNvbHVtbnM6IG51bWJlciA9IDE7XG5cbiAgQElucHV0KCdwLW1heC1jb2x1bW5zJykgc2V0IG1heENvbHVtbnModmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX21heENvbHVtbnMgPSBjb252ZXJ0VG9JbnQodmFsdWUsIFBvVGFibGVDb2x1bW5NYW5hZ2VyTWF4Q29sdW1uc0RlZmF1bHQpO1xuICB9XG5cbiAgZ2V0IG1heENvbHVtbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX21heENvbHVtbnM7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIGxhbmd1YWdlU2VydmljZTogUG9MYW5ndWFnZVNlcnZpY2UpIHtcbiAgICBjb25zdCBsYW5ndWFnZSA9IGxhbmd1YWdlU2VydmljZS5nZXRTaG9ydExhbmd1YWdlKCk7XG5cbiAgICB0aGlzLmxpdGVyYWxzID0ge1xuICAgICAgLi4ucG9UYWJsZUNvbHVtbk1hbmFnZXJMaXRlcmFsc0RlZmF1bHRbcG9Mb2NhbGVEZWZhdWx0XSxcbiAgICAgIC4uLnBvVGFibGVDb2x1bW5NYW5hZ2VyTGl0ZXJhbHNEZWZhdWx0W2xhbmd1YWdlXVxuICAgIH07XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgY29uc3QgeyBjb2x1bW5zLCBtYXhDb2x1bW5zLCB0YXJnZXQgfSA9IGNoYW5nZXM7XG5cbiAgICBpZiAodGFyZ2V0ICYmIHRhcmdldC5maXJzdENoYW5nZSkge1xuICAgICAgdGhpcy5pbml0aWFsaXplTGlzdGVuZXJzKCk7XG4gICAgfVxuXG4gICAgaWYgKGNvbHVtbnMpIHtcbiAgICAgIHRoaXMub25DaGFuZ2VDb2x1bW5zKGNvbHVtbnMpO1xuICAgIH1cblxuICAgIGlmIChtYXhDb2x1bW5zKSB7XG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlcyh0aGlzLmNvbHVtbnMpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMucmVtb3ZlTGlzdGVuZXJzKCk7XG4gIH1cblxuICAvLyBhcXVpIGNoZWdhbSBvcyBldmVudG9zIGRvIGNoZWNrYm94IGUgZG8gY2xvc2UgZG8gcG9wb3ZlciBxdWUgdGFtYsOpbSDDqSBkaXNwYXJhZG8gbm8gcmVzaXplXG4gIGNoZWNrQ2hhbmdlcyhldmVudDogQXJyYXk8c3RyaW5nPiA9IFtdLCBlbWl0OiBib29sZWFuID0gZmFsc2UpIHtcbiAgICB0aGlzLnZlcmlmeVRvRW1pdENoYW5nZShldmVudCk7XG5cbiAgICBpZiAoZW1pdCkge1xuICAgICAgLy8gY29udHJvbGEgZW1pc3PDtWVzIHBhcmEgbyBkZXZcbiAgICAgIHRoaXMudmVyaWZ5VG9FbWl0VmlzaWJsZUNvbHVtbnMoKTtcbiAgICB9XG4gIH1cblxuICByZXN0b3JlKCkge1xuICAgIHRoaXMucmVzdG9yZURlZmF1bHRFdmVudCA9IHRydWU7XG4gICAgY29uc3QgZGVmYXVsdENvbHVtbnMgPSB0aGlzLmdldFZpc2libGVDb2x1bW5zKHRoaXMuZGVmYXVsdENvbHVtbnMpO1xuICAgIHRoaXMuaW5pdGlhbENvbHVtbnMuZW1pdCh0aGlzLmdldFZpc2libGVDb2x1bW5zKHRoaXMuY29sdW5zRGVmYXVsdCkpO1xuICAgIHRoaXMuY2hlY2tDaGFuZ2VzKGRlZmF1bHRDb2x1bW5zLCB0aGlzLnJlc3RvcmVEZWZhdWx0RXZlbnQpO1xuICB9XG5cbiAgY2hhbmdlUG9zaXRpb24oeyBvcHRpb24sIGRpcmVjdGlvbiB9KSB7XG4gICAgY29uc3QgaW5kZXhDb2x1bW4gPSB0aGlzLmNvbHVtbnMuZmluZEluZGV4KGVsID0+IGVsLnByb3BlcnR5ID09PSBvcHRpb24udmFsdWUpO1xuICAgIGNvbnN0IG5ld0NvbHVtbiA9IFsuLi50aGlzLmNvbHVtbnNdO1xuXG4gICAgdGhpcy5jaGFuZ2VQb3NpdGlvbkNvbHVtbihuZXdDb2x1bW4sIGluZGV4Q29sdW1uLCBkaXJlY3Rpb24pO1xuICAgIHRoaXMuY29sdW1ucyA9IG5ld0NvbHVtbjtcbiAgICB0aGlzLnZpc2libGVDb2x1bW5zQ2hhbmdlLmVtaXQodGhpcy5jb2x1bW5zKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hhbmdlUG9zaXRpb25Db2x1bW4oYXJyYXk6IEFycmF5PFBvVGFibGVDb2x1bW4+LCBpbmRleDogbnVtYmVyLCBkaXJlY3Rpb246IERpcmVjdGlvbikge1xuICAgIGlmIChkaXJlY3Rpb24gPT09ICd1cCcpIHtcbiAgICAgIGFycmF5LnNwbGljZShpbmRleCwgMCwgYXJyYXkuc3BsaWNlKGluZGV4IC0gMSwgMSlbMF0pO1xuICAgIH1cblxuICAgIGlmIChkaXJlY3Rpb24gPT09ICdkb3duJykge1xuICAgICAgYXJyYXkuc3BsaWNlKGluZGV4LCAwLCBhcnJheS5zcGxpY2UoaW5kZXggKyAxLCAxKVswXSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB2ZXJpZnlUb0VtaXRDaGFuZ2UoZXZlbnQ6IEFycmF5PHN0cmluZz4pIHtcbiAgICBjb25zdCBuZXdDb2x1bW5zID0gWy4uLmV2ZW50XTtcbiAgICBpZiAobmV3Q29sdW1ucy5sZW5ndGggPj0gMSAmJiB0aGlzLmFsbG93c0NoYW5nZVZpc2libGVDb2x1bW5zKCkpIHtcbiAgICAgIHRoaXMuZW1pdENoYW5nZXNUb1NlbGVjdGVkQ29sdW1ucyhuZXdDb2x1bW5zKTtcbiAgICB9XG4gICAgLy8gRGVzYWJpbGl0YSB1bHRpbW8gY2hlY2tib3ggYXRpdm9cbiAgICBpZiAobmV3Q29sdW1ucy5sZW5ndGggPT09IDEpIHtcbiAgICAgIGNvbnN0IGNvbHVtbnNPcHRpb25zID0gdGhpcy5tYXBUYWJsZUNvbHVtbnNUb0NoZWNrYm94T3B0aW9ucyh0aGlzLmNvbHVtblVwZGF0ZSk7XG4gICAgICB0aGlzLmNvbHVtbnNPcHRpb25zID0gdGhpcy5kaXNhYmxlZExhc3RDb2x1bW4oY29sdW1uc09wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZW1pdENoYW5nZXNUb1NlbGVjdGVkQ29sdW1ucyhuZXdDb2x1bW5zOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgdGhpcy52aXNpYmxlQ29sdW1ucyA9IFsuLi5uZXdDb2x1bW5zXTtcbiAgICBjb25zdCB2aXNpYmxlVGFibGVDb2x1bW5zID0gdGhpcy5nZXRWaXNpYmxlVGFibGVDb2x1bW5zKHRoaXMudmlzaWJsZUNvbHVtbnMpO1xuXG4gICAgLy8gZW1pdGUgYWx0ZXJhw6fDo28gbmFzIGNvbHVuYXMgc2VsZWNpb25hZGFzLCBwb3LDqW0gbsOjbyBlbWl0ZSBwYXJhIG8gZGV2LlxuICAgIHRoaXMudmlzaWJsZUNvbHVtbnNDaGFuZ2UuZW1pdCh2aXNpYmxlVGFibGVDb2x1bW5zKTtcbiAgfVxuXG4gIHByaXZhdGUgYWxsb3dzQ2hhbmdlVmlzaWJsZUNvbHVtbnMoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdmlzaWJsZVRhYmxlQ29sdW1ucyA9IHRoaXMuZ2V0VmlzaWJsZVRhYmxlQ29sdW1ucyh0aGlzLnZpc2libGVDb2x1bW5zKTtcblxuICAgIHJldHVybiB0aGlzLnN0cmluZ2lmeSh2aXNpYmxlVGFibGVDb2x1bW5zKSAhPT0gdGhpcy5zdHJpbmdpZnkodGhpcy5jb2x1bW5zKTtcbiAgfVxuXG4gIHByaXZhdGUgdmVyaWZ5VG9FbWl0VmlzaWJsZUNvbHVtbnMoKSB7XG4gICAgaWYgKHRoaXMucmVzdG9yZURlZmF1bHRFdmVudCkge1xuICAgICAgLy8gdmVpbyBkbyByZXN0b3JlIGRlZmF1bHRcbiAgICAgIHRoaXMudmVyaWZ5UmVzdG9yZVZhbHVlcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBmb2kgZGlzcGFyYWRvIG5vIGNsb3NlIHBvcG92ZXI7XG4gICAgICB0aGlzLnZlcmlmeU9uQ2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHZlcmlmeVJlc3RvcmVWYWx1ZXMoKSB7XG4gICAgY29uc3QgZGVmYXVsdENvbHVtbnMgPSBbLi4udGhpcy5kZWZhdWx0Q29sdW1uc107XG4gICAgY29uc3QgZGVmYXVsdFZpc2libGVDb2x1bW5zID0gdGhpcy5nZXRWaXNpYmxlQ29sdW1ucyhkZWZhdWx0Q29sdW1ucyk7XG5cbiAgICBpZiAodGhpcy5hbGxvd3NDaGFuZ2VTZWxlY3RlZENvbHVtbnMoZGVmYXVsdFZpc2libGVDb2x1bW5zKSkge1xuICAgICAgdGhpcy52aXNpYmxlQ29sdW1uc0NoYW5nZS5lbWl0KHRoaXMuZGVmYXVsdENvbHVtbnMpO1xuICAgIH1cblxuICAgIHRoaXMucmVzdG9yZURlZmF1bHRFdmVudCA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBhbGxvd3NDaGFuZ2VTZWxlY3RlZENvbHVtbnMoZGVmYXVsdFZpc2libGVDb2x1bW5zOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgY29uc3QgdmlzaWJsZUNvbHVtbnMgPSB0aGlzLmdldFZpc2libGVDb2x1bW5zKHRoaXMuY29sdW1ucyk7XG5cbiAgICByZXR1cm4gIXRoaXMuaXNFcXVhbEFycmF5cyhkZWZhdWx0VmlzaWJsZUNvbHVtbnMsIHZpc2libGVDb2x1bW5zKTtcbiAgfVxuXG4gIHByaXZhdGUgdmVyaWZ5T25DbG9zZSgpIHtcbiAgICBpZiAodGhpcy5hbGxvd3NFbWlzc2lvbigpKSB7XG4gICAgICB0aGlzLmVtaXRWaXNpYmxlQ29sdW1ucygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZW1pdFZpc2libGVDb2x1bW5zKCkge1xuICAgIHRoaXMubGFzdEVtaXR0ZWRWYWx1ZSA9IFsuLi50aGlzLnZpc2libGVDb2x1bW5zXTtcbiAgICB0aGlzLmNoYW5nZVZpc2libGVDb2x1bW5zLmVtaXQodGhpcy52aXNpYmxlQ29sdW1ucyk7XG4gIH1cblxuICBwcml2YXRlIGFsbG93c0VtaXNzaW9uKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHVwZGF0ZWRWaXNpYmxlQ29sdW1ucyA9IHRoaXMudmlzaWJsZUNvbHVtbnMgPyBbLi4udGhpcy52aXNpYmxlQ29sdW1uc10gOiBbXTtcbiAgICBjb25zdCBsYXN0RW1pdHRlZFZhbHVlID0gdGhpcy5sYXN0RW1pdHRlZFZhbHVlID8gWy4uLnRoaXMubGFzdEVtaXR0ZWRWYWx1ZV0gOiBbXTtcbiAgICBjb25zdCBsYXN0VmlzaWJsZUNvbHVtbnNTZWxlY3RlZCA9IHRoaXMubGFzdFZpc2libGVDb2x1bW5zU2VsZWN0ZWQgPyBbLi4udGhpcy5sYXN0VmlzaWJsZUNvbHVtbnNTZWxlY3RlZF0gOiBbXTtcbiAgICBjb25zdCBsYXN0VmlzaWJsZUNvbHVtbnMgPSB0aGlzLmdldFZpc2libGVDb2x1bW5zKGxhc3RWaXNpYmxlQ29sdW1uc1NlbGVjdGVkKTtcblxuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmlzVXBkYXRlKHVwZGF0ZWRWaXNpYmxlQ29sdW1ucywgbGFzdEVtaXR0ZWRWYWx1ZSkgfHxcbiAgICAgIHRoaXMuaXNGaXJzdFRpbWUodXBkYXRlZFZpc2libGVDb2x1bW5zLCBsYXN0VmlzaWJsZUNvbHVtbnMpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNGaXJzdFRpbWUodXBkYXRlZFZpc2libGVDb2x1bW5zOiBBcnJheTxzdHJpbmc+LCBsYXN0VmlzaWJsZUNvbHVtbnM6IEFycmF5PHN0cmluZz4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMubGFzdEVtaXR0ZWRWYWx1ZSAmJiAhdGhpcy5pc0VxdWFsQXJyYXlzKHVwZGF0ZWRWaXNpYmxlQ29sdW1ucywgbGFzdFZpc2libGVDb2x1bW5zKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNVcGRhdGUodXBkYXRlZFZpc2libGVDb2x1bW5zOiBBcnJheTxzdHJpbmc+LCBsYXN0RW1pdHRlZFZhbHVlOiBBcnJheTxzdHJpbmc+KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubGFzdEVtaXR0ZWRWYWx1ZSAmJiAhdGhpcy5pc0VxdWFsQXJyYXlzKHVwZGF0ZWRWaXNpYmxlQ29sdW1ucywgbGFzdEVtaXR0ZWRWYWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGlzRXF1YWxBcnJheXMoZmlyc3Q6IEFycmF5PHN0cmluZz4sIHNlY29uZDogQXJyYXk8c3RyaW5nPik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG9uZSA9IGZpcnN0ID8gWy4uLmZpcnN0XSA6IFtdO1xuICAgIGNvbnN0IHR3byA9IHNlY29uZCA/IFsuLi5zZWNvbmRdIDogW107XG4gICAgY29uc3QgZmlyc3RTb3J0ID0gb25lLnNsaWNlKCk7XG4gICAgY29uc3Qgc2Vjb25kU29ydCA9IHR3by5zbGljZSgpO1xuICAgIGNvbnN0IGZpcnN0U3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoZmlyc3RTb3J0KTtcbiAgICBjb25zdCBzZWNvbmRTdHJpbmcgPSBKU09OLnN0cmluZ2lmeShzZWNvbmRTb3J0KTtcblxuICAgIHJldHVybiBmaXJzdFN0cmluZyA9PT0gc2Vjb25kU3RyaW5nO1xuICB9XG5cbiAgLy8gZGVzYWJpbGl0YXLDoSBhcyBjb2x1bmFzLCBxdWUgbsOjbyBlc3RpdmVyZW0gc2VsZWNpb25hZGFzLCBhcMOzcyBleGVkZXIgbyBudW1lcm8gbWF4aW1vIGRlIGNvbHVuYXMuXG4gIHByaXZhdGUgZGlzYWJsZUNvbHVtbnNPcHRpb25zKGNvbHVtbnM6IEFycmF5PFBvQ2hlY2tib3hHcm91cE9wdGlvbj4gPSBbXSkge1xuICAgIHJldHVybiBjb2x1bW5zLm1hcChjb2x1bW4gPT4gKHtcbiAgICAgIC4uLmNvbHVtbixcbiAgICAgIGRpc2FibGVkOiB0aGlzLmlzRGlzYWJsZUNvbHVtbihjb2x1bW4udmFsdWUpXG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb2x1bW5UaXRsZUxhYmVsKGNvbHVtbjogUG9UYWJsZUNvbHVtbikge1xuICAgIHJldHVybiBjb2x1bW4ubGFiZWwgfHwgY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGNvbHVtbi5wcm9wZXJ0eSk7XG4gIH1cblxuICAvKiogUmV0b3JuYSB1bSBBcnJheSBkZSBjb2x1bW4ucHJvcGVydHkgZGFzIGNvbHVuYXMgcXVlIHPDo28gdmlzaXZlaXMuICovXG4gIHByaXZhdGUgZ2V0VmlzaWJsZUNvbHVtbnMoY29sdW1uczogQXJyYXk8UG9UYWJsZUNvbHVtbj4pOiBBcnJheTxzdHJpbmc+IHtcbiAgICBsZXQgdmlzaWJsZUNvbHVtbnMgPSBbXTtcblxuICAgIGNvbHVtbnMuZm9yRWFjaChjb2x1bW4gPT4ge1xuICAgICAgaWYgKHRoaXMuaXNWaXNpYmxlQ29sdW1uKGNvbHVtbiwgdmlzaWJsZUNvbHVtbnMpKSB7XG4gICAgICAgIHZpc2libGVDb2x1bW5zID0gWy4uLnZpc2libGVDb2x1bW5zLCBjb2x1bW4ucHJvcGVydHldO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHZpc2libGVDb2x1bW5zO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1Zpc2libGVDb2x1bW4oY29sdW1uOiBQb1RhYmxlQ29sdW1uLCB2aXNpYmxlQ29sdW1uczogQXJyYXk8c3RyaW5nPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBjb2x1bW4udmlzaWJsZSAhPT0gZmFsc2UgJiYgdmlzaWJsZUNvbHVtbnMubGVuZ3RoIDwgdGhpcy5tYXhDb2x1bW5zICYmIGNvbHVtbi50eXBlICE9PSAnZGV0YWlsJztcbiAgfVxuXG4gIC8qKiBSZXRvcm5hIHVtIEFycmF5IFBvVGFibGVDb2x1bW4gYSBwYXJ0aXIgZGFzIGNvbHVuYXMgdmlzaXZlaXMgbm8gZ2VyZW5jaWFkb3IgZGUgY29sdW5hcy4gKi9cbiAgcHJpdmF0ZSBnZXRWaXNpYmxlVGFibGVDb2x1bW5zKHZpc2libGVDb2x1bW5zOiBBcnJheTxzdHJpbmc+KTogQXJyYXk8UG9UYWJsZUNvbHVtbj4ge1xuICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLmNvbHVtbnMgPyBbLi4udGhpcy5jb2x1bW5zXSA6IFtdO1xuXG4gICAgcmV0dXJuIGNvbHVtbnMubWFwKGNvbHVtbiA9PiAoe1xuICAgICAgLi4uY29sdW1uLFxuICAgICAgdmlzaWJsZTogdmlzaWJsZUNvbHVtbnMuaW5jbHVkZXMoY29sdW1uLnByb3BlcnR5KSB8fCBjb2x1bW4udHlwZSA9PT0gJ2RldGFpbCdcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVMaXN0ZW5lcnMoKSB7XG4gICAgdGhpcy5yZXNpemVMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKCd3aW5kb3cnLCAncmVzaXplJywgKCkgPT4ge1xuICAgICAgaWYgKHRoaXMucG9wb3ZlciAmJiAhdGhpcy5wb3BvdmVyLmlzSGlkZGVuKSB7XG4gICAgICAgIHRoaXMucG9wb3Zlci5jbG9zZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0Rpc2FibGVDb2x1bW4ocHJvcGVydHk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZpc2libGVDb2x1bW5zLmxlbmd0aCA+PSB0aGlzLm1heENvbHVtbnMgPyAhdGhpcy52aXNpYmxlQ29sdW1ucy5pbmNsdWRlcyhwcm9wZXJ0eSkgOiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgbWFwVGFibGVDb2x1bW5zVG9DaGVja2JveE9wdGlvbnMoY29sdW1uczogQXJyYXk8UG9UYWJsZUNvbHVtbj4gPSBbXSkge1xuICAgIGNvbnN0IHRhYmxlQ29sdW1ucyA9IFsuLi5jb2x1bW5zXTtcbiAgICBjb25zdCBjb2x1bW5zT3B0aW9ucyA9IFtdO1xuXG4gICAgdGFibGVDb2x1bW5zLmZvckVhY2goY29sdW1uID0+IHtcbiAgICAgIGlmIChjb2x1bW4udHlwZSAhPT0gJ2RldGFpbCcpIHtcbiAgICAgICAgY29sdW1uc09wdGlvbnMucHVzaCh7XG4gICAgICAgICAgdmFsdWU6IGNvbHVtbi5wcm9wZXJ0eSxcbiAgICAgICAgICBsYWJlbDogdGhpcy5nZXRDb2x1bW5UaXRsZUxhYmVsKGNvbHVtbiksXG4gICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuaXNEaXNhYmxlQ29sdW1uKGNvbHVtbi5wcm9wZXJ0eSksXG4gICAgICAgICAgdmlzaWJsZTogY29sdW1uLnZpc2libGVcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gY29sdW1uc09wdGlvbnM7XG4gIH1cblxuICBwcml2YXRlIGRpc2FibGVkTGFzdENvbHVtbihjb2x1bW5zOiBBcnJheTxhbnk+KSB7XG4gICAgcmV0dXJuIGNvbHVtbnMubWFwKGNvbHVtbiA9PiAoe1xuICAgICAgLi4uY29sdW1uLFxuICAgICAgZGlzYWJsZWQ6IGNvbHVtbi50eXBlICE9PSAnZGV0YWlsJyAmJiBjb2x1bW4udmlzaWJsZSA/IHRydWUgOiBmYWxzZVxuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgb25DaGFuZ2VDb2x1bW5zKGNvbHVtbnM6IFNpbXBsZUNoYW5nZSkge1xuICAgIGNvbnN0IHsgY3VycmVudFZhbHVlID0gW10sIHByZXZpb3VzVmFsdWUgPSBbXSB9ID0gY29sdW1ucztcbiAgICB0aGlzLmNvbHVtblVwZGF0ZSA9IGNvbHVtbnMuY3VycmVudFZhbHVlO1xuXG4gICAgLy8gYXR1YWxpemFyYSBvIGRlZmF1bHRDb2x1bW5zLCBxdWFuZG8gZm9yIGEgcHJpbWVpcmEgdmV6IG91IHF1YW5kbyBvIGRlZmF1bHRDb2x1bW5zIGZvciBkaWZlcmVudGUgZG8gY3VycmVudFZhbHVlXG4gICAgaWYgKCF0aGlzLmxhc3RWaXNpYmxlQ29sdW1uc1NlbGVjdGVkICYmIHRoaXMuc3RyaW5naWZ5KHRoaXMuZGVmYXVsdENvbHVtbnMpICE9PSB0aGlzLnN0cmluZ2lmeShjdXJyZW50VmFsdWUpKSB7XG4gICAgICB0aGlzLmRlZmF1bHRDb2x1bW5zID0gWy4uLmN1cnJlbnRWYWx1ZV07XG4gICAgfVxuXG4gICAgLy8gdmVyaWZpY2Egc2UgbyB2YWxvciBhbnRlcmlvciDDqSBkaWZlcmVudGUgZG8gYXR1YWwgcGFyYSBhdHVhbGl6YXIgYXMgY29sdW1uc09wdGlvbnMgYXBlbmFzIHF1YW5kbyBmb3IgbmVjZXNzYXJpb1xuICAgIGlmICh0aGlzLnN0cmluZ2lmeShwcmV2aW91c1ZhbHVlKSAhPT0gdGhpcy5zdHJpbmdpZnkoY3VycmVudFZhbHVlKSkge1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZXMoY3VycmVudFZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVZhbHVlcyhjdXJyZW50VmFsdWU6IEFycmF5PFBvVGFibGVDb2x1bW4+KSB7XG4gICAgY29uc3QgdmlzaWJsZUNvbHVtbnMgPSB0aGlzLmdldFZpc2libGVDb2x1bW5zKGN1cnJlbnRWYWx1ZSk7XG4gICAgdGhpcy52aXNpYmxlQ29sdW1ucyA9IFsuLi52aXNpYmxlQ29sdW1uc107XG5cbiAgICBjb25zdCBjb2x1bW5zT3B0aW9ucyA9IHRoaXMubWFwVGFibGVDb2x1bW5zVG9DaGVja2JveE9wdGlvbnMoY3VycmVudFZhbHVlKTtcbiAgICB0aGlzLmNvbHVtbnNPcHRpb25zID0gdGhpcy5kaXNhYmxlQ29sdW1uc09wdGlvbnMoY29sdW1uc09wdGlvbnMpO1xuXG4gICAgdGhpcy5jaGVja0NoYW5nZXModmlzaWJsZUNvbHVtbnMsIGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlTGlzdGVuZXJzKCkge1xuICAgIGlmICh0aGlzLnJlc2l6ZUxpc3RlbmVyKSB7XG4gICAgICB0aGlzLnJlc2l6ZUxpc3RlbmVyKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdHJpbmdpZnkoY29sdW1uczogQXJyYXk8UG9UYWJsZUNvbHVtbj4pIHtcbiAgICAvLyBuw6NvIGZheiBvIHN0cmluZ2lmeSBkYSBwcm9wcmllZGFkZSBpY29uIGUgc2VhcmNoU2VydmljZSwgcG9pcyBwb2RlIGNvbnRlciBvYmpldG8gY29tcGxleG8gZSBkaXNwYXJhciB1bSBlcnJvLlxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShjb2x1bW5zLCAoa2V5LCB2YWx1ZSkgPT4ge1xuICAgICAgaWYgKGtleSAhPT0gJ2ljb24nICYmIGtleSAhPT0gJ3NlYXJjaFNlcnZpY2UnKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPHBvLXBvcG92ZXIgI3BvcG92ZXIgKm5nSWY9XCJ0YXJnZXRcIiBbcC10YXJnZXRdPVwidGFyZ2V0XCIgcC1wb3NpdGlvbj1cImJvdHRvbS1sZWZ0XCIgKHAtY2xvc2UpPVwiY2hlY2tDaGFuZ2VzKFtdLCB0cnVlKVwiPlxuICA8ZGl2IGNsYXNzPVwicG8tdGFibGUtY29sdW1uLW1hbmFnZXItaGVhZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInBvLXRhYmxlLWNvbHVtbi1tYW5hZ2VyLWhlYWRlci10aXRsZVwiPnt7IGxpdGVyYWxzLmNvbHVtbnNNYW5hZ2VyIH19PC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwicG8tdGFibGUtY29sdW1uLW1hbmFnZXItaGVhZGVyLWNsb3NlXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwicG8tdGFibGUtY29sdW1uLW1hbmFnZXItaGVhZGVyLWNsb3NlLWJ1dHRvbiBwby1jbGlja2FibGUgcG8taWNvbiBwby1pY29uLWNsb3NlXCJcbiAgICAgICAgKGNsaWNrKT1cInBvcG92ZXIuY2xvc2UoKVwiXG4gICAgICA+PC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4tbWFuYWdlci1ib2R5XCI+XG4gICAgPHBvLXRhYmxlLWxpc3QtbWFuYWdlclxuICAgICAgbmFtZT1cInZpc2libGVDb2x1bW5zXCJcbiAgICAgIFsobmdNb2RlbCldPVwidmlzaWJsZUNvbHVtbnNcIlxuICAgICAgcC1jb2x1bW5zPVwiMVwiXG4gICAgICBbcC1vcHRpb25zXT1cImNvbHVtbnNPcHRpb25zXCJcbiAgICAgIChwLWNoYW5nZSk9XCJjaGVja0NoYW5nZXMoJGV2ZW50LCBmYWxzZSlcIlxuICAgICAgKHAtY2hhbmdlLXBvc2l0aW9uKT1cImNoYW5nZVBvc2l0aW9uKCRldmVudClcIlxuICAgICAgW3AtY29sdW1ucy1tYW5hZ2VyXT1cImNvbHVtbnNcIlxuICAgID5cbiAgICA8L3BvLXRhYmxlLWxpc3QtbWFuYWdlcj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInBvLXRhYmxlLWNvbHVtbi1tYW5hZ2VyLWZvb3RlclwiPlxuICAgIDxwby1idXR0b25cbiAgICAgIGNsYXNzPVwicG8tdGFibGUtY29sdW1uLW1hbmFnZXItZm9vdGVyLXJlc3RvcmVcIlxuICAgICAgcC1raW5kPVwidGVydGlhcnlcIlxuICAgICAgW3AtbGFiZWxdPVwibGl0ZXJhbHMucmVzdG9yZURlZmF1bHRcIlxuICAgICAgKHAtY2xpY2spPVwicmVzdG9yZSgpXCJcbiAgICA+XG4gICAgPC9wby1idXR0b24+XG4gIDwvZGl2PlxuPC9wby1wb3BvdmVyPlxuIl19
|
|
@@ -65,8 +65,9 @@ function PoTableDetailComponent_tr_3_td_4_span_3_Template(rf, ctx) { if (rf & 1)
|
|
|
65
65
|
} if (rf & 2) {
|
|
66
66
|
const detail_r18 = i0.ɵɵnextContext().$implicit;
|
|
67
67
|
const item_r5 = i0.ɵɵnextContext().$implicit;
|
|
68
|
+
const ctx_r20 = i0.ɵɵnextContext();
|
|
68
69
|
i0.ɵɵadvance(1);
|
|
69
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind4(2, 1, item_r5
|
|
70
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind4(2, 1, ctx_r20.getDetailData(item_r5, detail_r18), detail_r18.format, "symbol", "1.2-2"));
|
|
70
71
|
} }
|
|
71
72
|
function PoTableDetailComponent_tr_3_td_4_span_4_Template(rf, ctx) { if (rf & 1) {
|
|
72
73
|
i0.ɵɵelementStart(0, "span");
|
|
@@ -76,8 +77,9 @@ function PoTableDetailComponent_tr_3_td_4_span_4_Template(rf, ctx) { if (rf & 1)
|
|
|
76
77
|
} if (rf & 2) {
|
|
77
78
|
const detail_r18 = i0.ɵɵnextContext().$implicit;
|
|
78
79
|
const item_r5 = i0.ɵɵnextContext().$implicit;
|
|
80
|
+
const ctx_r21 = i0.ɵɵnextContext();
|
|
79
81
|
i0.ɵɵadvance(1);
|
|
80
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 1, item_r5
|
|
82
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 1, ctx_r21.getDetailData(item_r5, detail_r18), detail_r18.format || "dd/MM/yyyy"));
|
|
81
83
|
} }
|
|
82
84
|
function PoTableDetailComponent_tr_3_td_4_span_5_Template(rf, ctx) { if (rf & 1) {
|
|
83
85
|
i0.ɵɵelementStart(0, "span");
|
|
@@ -87,8 +89,9 @@ function PoTableDetailComponent_tr_3_td_4_span_5_Template(rf, ctx) { if (rf & 1)
|
|
|
87
89
|
} if (rf & 2) {
|
|
88
90
|
const detail_r18 = i0.ɵɵnextContext().$implicit;
|
|
89
91
|
const item_r5 = i0.ɵɵnextContext().$implicit;
|
|
92
|
+
const ctx_r22 = i0.ɵɵnextContext();
|
|
90
93
|
i0.ɵɵadvance(1);
|
|
91
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 1, item_r5
|
|
94
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 1, ctx_r22.getDetailData(item_r5, detail_r18), detail_r18.format || "HH:mm:ss.ffffff"));
|
|
92
95
|
} }
|
|
93
96
|
function PoTableDetailComponent_tr_3_td_4_span_6_Template(rf, ctx) { if (rf & 1) {
|
|
94
97
|
i0.ɵɵelementStart(0, "span");
|
|
@@ -98,8 +101,9 @@ function PoTableDetailComponent_tr_3_td_4_span_6_Template(rf, ctx) { if (rf & 1)
|
|
|
98
101
|
} if (rf & 2) {
|
|
99
102
|
const detail_r18 = i0.ɵɵnextContext().$implicit;
|
|
100
103
|
const item_r5 = i0.ɵɵnextContext().$implicit;
|
|
104
|
+
const ctx_r23 = i0.ɵɵnextContext();
|
|
101
105
|
i0.ɵɵadvance(1);
|
|
102
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, item_r5
|
|
106
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, ctx_r23.getDetailData(item_r5, detail_r18), detail_r18.format || "dd/MM/yyyy HH:mm:ss"), " ");
|
|
103
107
|
} }
|
|
104
108
|
function PoTableDetailComponent_tr_3_td_4_span_7_Template(rf, ctx) { if (rf & 1) {
|
|
105
109
|
i0.ɵɵelementStart(0, "span");
|
|
@@ -110,7 +114,7 @@ function PoTableDetailComponent_tr_3_td_4_span_7_Template(rf, ctx) { if (rf & 1)
|
|
|
110
114
|
const item_r5 = i0.ɵɵnextContext().$implicit;
|
|
111
115
|
const ctx_r24 = i0.ɵɵnextContext();
|
|
112
116
|
i0.ɵɵadvance(1);
|
|
113
|
-
i0.ɵɵtextInterpolate(ctx_r24.formatNumberDetail(item_r5
|
|
117
|
+
i0.ɵɵtextInterpolate(ctx_r24.formatNumberDetail(ctx_r24.getDetailData(item_r5, detail_r18), detail_r18.format));
|
|
114
118
|
} }
|
|
115
119
|
function PoTableDetailComponent_tr_3_td_4_span_8_Template(rf, ctx) { if (rf & 1) {
|
|
116
120
|
i0.ɵɵelementStart(0, "span");
|
|
@@ -119,8 +123,9 @@ function PoTableDetailComponent_tr_3_td_4_span_8_Template(rf, ctx) { if (rf & 1)
|
|
|
119
123
|
} if (rf & 2) {
|
|
120
124
|
const detail_r18 = i0.ɵɵnextContext().$implicit;
|
|
121
125
|
const item_r5 = i0.ɵɵnextContext().$implicit;
|
|
126
|
+
const ctx_r25 = i0.ɵɵnextContext();
|
|
122
127
|
i0.ɵɵadvance(1);
|
|
123
|
-
i0.ɵɵtextInterpolate(item_r5
|
|
128
|
+
i0.ɵɵtextInterpolate(ctx_r25.getDetailData(item_r5, detail_r18));
|
|
124
129
|
} }
|
|
125
130
|
function PoTableDetailComponent_tr_3_td_4_Template(rf, ctx) { if (rf & 1) {
|
|
126
131
|
const _r40 = i0.ɵɵgetCurrentView();
|
|
@@ -220,6 +225,20 @@ export class PoTableDetailComponent {
|
|
|
220
225
|
getColumnTitleLabel(detail) {
|
|
221
226
|
return detail.label || capitalizeFirstLetter(detail.property);
|
|
222
227
|
}
|
|
228
|
+
getDetailData(item, detail) {
|
|
229
|
+
const arrayProperty = detail.property.split('.');
|
|
230
|
+
if (arrayProperty.length > 1) {
|
|
231
|
+
const nestedProperties = arrayProperty;
|
|
232
|
+
let value = item;
|
|
233
|
+
for (const property of nestedProperties) {
|
|
234
|
+
value = value[property] || value[property] === 0 ? value[property] : '';
|
|
235
|
+
}
|
|
236
|
+
return value;
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
return item[detail.property];
|
|
240
|
+
}
|
|
241
|
+
}
|
|
223
242
|
onSelectRow(item) {
|
|
224
243
|
item.$selected = !item.$selected;
|
|
225
244
|
this.selectRow.emit(item);
|
|
@@ -253,7 +272,7 @@ PoTableDetailComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoTa
|
|
|
253
272
|
} }, dependencies: [i1.NgForOf, i1.NgIf, i1.NgSwitch, i1.NgSwitchCase, i1.NgSwitchDefault, i2.NgControlStatus, i2.NgModel, i3.PoCheckboxComponent, i1.CurrencyPipe, i1.DatePipe, i4.PoTimePipe], encapsulation: 2 });
|
|
254
273
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoTableDetailComponent, [{
|
|
255
274
|
type: Component,
|
|
256
|
-
args: [{ selector: 'po-table-detail', template: "<table class=\"po-table-master-detail\">\n <thead *ngIf=\"typeHeaderTop\">\n <tr>\n <th class=\"po-table-header po-table-column-selectable\" *ngIf=\"isSelectable\"></th>\n <th class=\"po-table-header po-table-header-column po-table-header-master-detail\"></th>\n <th class=\"po-table-header po-table-header-ellipsis\" *ngFor=\"let detail of detail.columns\">\n {{ getColumnTitleLabel(detail) }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr\n class=\"po-table-detail-row\"\n [class.po-table-row-active]=\"item.$selected && isSelectable\"\n *ngFor=\"let item of items\"\n >\n <ng-container *ngIf=\"isSelectable; else masterDetailSpace\">\n <td class=\"po-table-column-master-detail-space-checkbox\"></td>\n <td class=\"po-table-column po-table-column-selectable\">\n <po-checkbox\n name=\"checkbox\"\n (click)=\"onSelectRow(item)\"\n (p-change)=\"onSelectRow(item)\"\n [(ngModel)]=\"item.$selected\"\n ></po-checkbox>\n </td>\n </ng-container>\n\n <ng-template #masterDetailSpace>\n <td class=\"po-table-column-master-detail-space\"></td>\n </ng-template>\n\n <td\n class=\"po-table-column-master-detail po-table-master-detail-label\"\n (click)=\"isSelectable ? onSelectRow(item) : 'javascript:;'\"\n *ngFor=\"let detail of detailColumns\"\n >\n <strong *ngIf=\"typeHeaderInline\"> {{ getColumnTitleLabel(detail) }}: </strong>\n\n <ng-container [ngSwitch]=\"detail.type\">\n <span *ngSwitchCase=\"'currency'\">{{
|
|
275
|
+
args: [{ selector: 'po-table-detail', template: "<table class=\"po-table-master-detail\">\n <thead *ngIf=\"typeHeaderTop\">\n <tr>\n <th class=\"po-table-header po-table-column-selectable\" *ngIf=\"isSelectable\"></th>\n <th class=\"po-table-header po-table-header-column po-table-header-master-detail\"></th>\n <th class=\"po-table-header po-table-header-ellipsis\" *ngFor=\"let detail of detail.columns\">\n {{ getColumnTitleLabel(detail) }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr\n class=\"po-table-detail-row\"\n [class.po-table-row-active]=\"item.$selected && isSelectable\"\n *ngFor=\"let item of items\"\n >\n <ng-container *ngIf=\"isSelectable; else masterDetailSpace\">\n <td class=\"po-table-column-master-detail-space-checkbox\"></td>\n <td class=\"po-table-column po-table-column-selectable\">\n <po-checkbox\n name=\"checkbox\"\n (click)=\"onSelectRow(item)\"\n (p-change)=\"onSelectRow(item)\"\n [(ngModel)]=\"item.$selected\"\n ></po-checkbox>\n </td>\n </ng-container>\n\n <ng-template #masterDetailSpace>\n <td class=\"po-table-column-master-detail-space\"></td>\n </ng-template>\n\n <td\n class=\"po-table-column-master-detail po-table-master-detail-label\"\n (click)=\"isSelectable ? onSelectRow(item) : 'javascript:;'\"\n *ngFor=\"let detail of detailColumns\"\n >\n <strong *ngIf=\"typeHeaderInline\"> {{ getColumnTitleLabel(detail) }}: </strong>\n\n <ng-container [ngSwitch]=\"detail.type\">\n <span *ngSwitchCase=\"'currency'\">{{\n getDetailData(item, detail) | currency: detail.format:'symbol':'1.2-2'\n }}</span>\n <span *ngSwitchCase=\"'date'\">{{ getDetailData(item, detail) | date: detail.format || 'dd/MM/yyyy' }}</span>\n <span *ngSwitchCase=\"'time'\">{{\n getDetailData(item, detail) | po_time: detail.format || 'HH:mm:ss.ffffff'\n }}</span>\n <span *ngSwitchCase=\"'dateTime'\">\n {{ getDetailData(item, detail) | date: detail.format || 'dd/MM/yyyy HH:mm:ss' }}\n </span>\n <span *ngSwitchCase=\"'number'\">{{ formatNumberDetail(getDetailData(item, detail), detail.format) }}</span>\n <span *ngSwitchDefault>{{ getDetailData(item, detail) }}</span>\n </ng-container>\n </td>\n </tr>\n </tbody>\n</table>\n" }]
|
|
257
276
|
}], function () { return [{ type: i1.DecimalPipe }]; }, { items: [{
|
|
258
277
|
type: Input,
|
|
259
278
|
args: ['p-items']
|
|
@@ -267,4 +286,4 @@ PoTableDetailComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoTa
|
|
|
267
286
|
type: Input,
|
|
268
287
|
args: ['p-detail']
|
|
269
288
|
}] }); })();
|
|
270
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tdGFibGUtZGV0YWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby10YWJsZS9wby10YWJsZS1kZXRhaWwvcG8tdGFibGUtZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby10YWJsZS9wby10YWJsZS1kZXRhaWwvcG8tdGFibGUtZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0lDQWhFLHdCQUFpRjs7O0lBRWpGLDZCQUEyRjtJQUN6RixZQUNGO0lBQUEsaUJBQUs7Ozs7SUFESCxlQUNGO0lBREUsc0VBQ0Y7OztJQU5KLDZCQUE2QixTQUFBO0lBRXpCLDZFQUFpRjtJQUNqRix3QkFBc0Y7SUFDdEYsNkVBRUs7SUFDUCxpQkFBSyxFQUFBOzs7SUFMcUQsZUFBa0I7SUFBbEIsMENBQWtCO0lBRUYsZUFBaUI7SUFBakIsK0NBQWlCOzs7O0lBV3pGLDZCQUEyRDtJQUN6RCx5QkFBOEQ7SUFDOUQsOEJBQXVELHNCQUFBO0lBR25ELHNPQUFTLGVBQUEsNEJBQWlCLENBQUEsSUFBQywrTkFDZixlQUFBLDRCQUFpQixDQUFBLElBREYsMk1BRWQsMENBQ25CLElBSGlDO0lBRzVCLGlCQUFjLEVBQUE7SUFFbkIsMEJBQWU7OztJQUhULGVBQTRCO0lBQTVCLDJDQUE0Qjs7O0lBTWhDLHlCQUFxRDs7O0lBUXJELDhCQUFpQztJQUFDLFlBQW1DO0lBQUEsaUJBQVM7Ozs7SUFBNUMsZUFBbUM7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LFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGVjaW1hbFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBjYXBpdGFsaXplRmlyc3RMZXR0ZXIsIGlzVHlwZW9mIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvdXRpbCc7XG5cbmltcG9ydCB7IFBvVGFibGVEZXRhaWwgfSBmcm9tICcuL3BvLXRhYmxlLWRldGFpbC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9UYWJsZURldGFpbENvbHVtbiB9IGZyb20gJy4vcG8tdGFibGUtZGV0YWlsLWNvbHVtbi5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIEBkb2NzUHJpdmF0ZVxuICpcbiAqIEBkZXNjcmlwdGlvblxuICpcbiAqIENvbXBvbmVudGUgcmVzcG9uc8OhdmVsIHBvciBhcHJlc2VudGFyIG8gZGV0YWxoZSBkZSBjYWRhIGxpbmhhIGRhIHRhYmVsYS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncG8tdGFibGUtZGV0YWlsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLXRhYmxlLWRldGFpbC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUG9UYWJsZURldGFpbENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBMaXN0YSBkZSBpdGVucyBkbyBfZGV0YWlsXyBkYSB0YWJlbGEuXG4gICAqL1xuICBASW5wdXQoJ3AtaXRlbXMnKSBpdGVtczogQXJyYXk8YW55PjtcblxuICAvKipcbiAgICogRGVmaW5lIHNlIGEgdGFiZWxhIHBvc3N1aSBhIG9ww6fDo28gZGUgYHNlbGVjdGFibGVgIGhhYmlsaXRhZGEuXG4gICAqL1xuICBASW5wdXQoJ3Atc2VsZWN0YWJsZScpIGlzU2VsZWN0YWJsZT86IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBBw6fDo28gZXhlY3V0YWRhIGFvIHNlbGVjaW9uYXIgb3UgZGVzbWFyY2FyIGEgc2VsZcOnw6NvIGRlIHVtYSBsaW5oYSBkZSBkZXRhbGhlIGRvIGBwby10YWJsZWAuXG4gICAqL1xuICBAT3V0cHV0KCdwLXNlbGVjdC1yb3cnKSBzZWxlY3RSb3c6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgcHJpdmF0ZSBfZGV0YWlsOiBQb1RhYmxlRGV0YWlsO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmHDp8OjbyBkYSBsaW5oYSBkZSBkZXRhbGhlcy5cbiAgICovXG4gIEBJbnB1dCgncC1kZXRhaWwnKSBzZXQgZGV0YWlsKHZhbHVlOiBQb1RhYmxlRGV0YWlsKSB7XG4gICAgdGhpcy5fZGV0YWlsID0gdGhpcy5yZXR1cm5Qb1RhYmxlRGV0YWlsT2JqZWN0KHZhbHVlKTtcbiAgfVxuXG4gIGdldCBkZXRhaWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RldGFpbDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGVjaW1hbFBpcGU6IERlY2ltYWxQaXBlKSB7fVxuXG4gIGdldCBkZXRhaWxDb2x1bW5zKCk6IEFycmF5PFBvVGFibGVEZXRhaWxDb2x1bW4+IHtcbiAgICByZXR1cm4gdGhpcy5kZXRhaWw/LmNvbHVtbnMgfHwgW107XG4gIH1cblxuICBnZXQgdHlwZUhlYWRlcklubGluZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMuZGV0YWlsICYmICF0aGlzLmRldGFpbFsndHlwZUhlYWRlciddKSB8fCB0aGlzLmRldGFpbFsndHlwZUhlYWRlciddID09PSAnaW5saW5lJztcbiAgfVxuXG4gIGdldCB0eXBlSGVhZGVyVG9wKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRldGFpbCAmJiB0aGlzLmRldGFpbFsndHlwZUhlYWRlciddID09PSAndG9wJztcbiAgfVxuXG4gIGZvcm1hdE51bWJlckRldGFpbCh2YWx1ZTogYW55LCBmb3JtYXQ6IHN0cmluZykge1xuICAgIGlmICghZm9ybWF0KSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZGVjaW1hbFBpcGUudHJhbnNmb3JtKHZhbHVlLCBmb3JtYXQpO1xuICB9XG5cbiAgZ2V0Q29sdW1uVGl0bGVMYWJlbChkZXRhaWw6IFBvVGFibGVEZXRhaWxDb2x1bW4pIHtcbiAgICByZXR1cm4gZGV0YWlsLmxhYmVsIHx8IGNhcGl0YWxpemVGaXJzdExldHRlcihkZXRhaWwucHJvcGVydHkpO1xuICB9XG5cbiAgb25TZWxlY3RSb3coaXRlbSkge1xuICAgIGl0ZW0uJHNlbGVjdGVkID0gIWl0ZW0uJHNlbGVjdGVkO1xuICAgIHRoaXMuc2VsZWN0Um93LmVtaXQoaXRlbSk7XG4gIH1cblxuICBwcml2YXRlIHJldHVyblBvVGFibGVEZXRhaWxPYmplY3QodmFsdWU6IGFueSkge1xuICAgIGlmICh2YWx1ZSAmJiBpc1R5cGVvZih2YWx1ZSwgJ29iamVjdCcpKSB7XG4gICAgICBpZiAodmFsdWUuY29sdW1ucykge1xuICAgICAgICB2YWx1ZS5jb2x1bW5zLmZvckVhY2goY29sdW1uID0+IChjb2x1bW4ucHJvcGVydHkgPSBjb2x1bW4ucHJvcGVydHkgfHwgY29sdW1uLmNvbHVtbikpO1xuICAgICAgfVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHsgY29sdW1uczogdmFsdWUgfTtcbiAgICAgIH1cblxuICAgICAgaWYgKHZhbHVlLmNvbHVtbnMpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPHRhYmxlIGNsYXNzPVwicG8tdGFibGUtbWFzdGVyLWRldGFpbFwiPlxuICA8dGhlYWQgKm5nSWY9XCJ0eXBlSGVhZGVyVG9wXCI+XG4gICAgPHRyPlxuICAgICAgPHRoIGNsYXNzPVwicG8tdGFibGUtaGVhZGVyIHBvLXRhYmxlLWNvbHVtbi1zZWxlY3RhYmxlXCIgKm5nSWY9XCJpc1NlbGVjdGFibGVcIj48L3RoPlxuICAgICAgPHRoIGNsYXNzPVwicG8tdGFibGUtaGVhZGVyIHBvLXRhYmxlLWhlYWRlci1jb2x1bW4gcG8tdGFibGUtaGVhZGVyLW1hc3Rlci1kZXRhaWxcIj48L3RoPlxuICAgICAgPHRoIGNsYXNzPVwicG8tdGFibGUtaGVhZGVyIHBvLXRhYmxlLWhlYWRlci1lbGxpcHNpc1wiICpuZ0Zvcj1cImxldCBkZXRhaWwgb2YgZGV0YWlsLmNvbHVtbnNcIj5cbiAgICAgICAge3sgZ2V0Q29sdW1uVGl0bGVMYWJlbChkZXRhaWwpIH19XG4gICAgICA8L3RoPlxuICAgIDwvdHI+XG4gIDwvdGhlYWQ+XG4gIDx0Ym9keT5cbiAgICA8dHJcbiAgICAgIGNsYXNzPVwicG8tdGFibGUtZGV0YWlsLXJvd1wiXG4gICAgICBbY2xhc3MucG8tdGFibGUtcm93LWFjdGl2ZV09XCJpdGVtLiRzZWxlY3RlZCAmJiBpc1NlbGVjdGFibGVcIlxuICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1NlbGVjdGFibGU7IGVsc2UgbWFzdGVyRGV0YWlsU3BhY2VcIj5cbiAgICAgICAgPHRkIGNsYXNzPVwicG8tdGFibGUtY29sdW1uLW1hc3Rlci1kZXRhaWwtc3BhY2UtY2hlY2tib3hcIj48L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4gcG8tdGFibGUtY29sdW1uLXNlbGVjdGFibGVcIj5cbiAgICAgICAgICA8cG8tY2hlY2tib3hcbiAgICAgICAgICAgIG5hbWU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3RSb3coaXRlbSlcIlxuICAgICAgICAgICAgKHAtY2hhbmdlKT1cIm9uU2VsZWN0Um93KGl0ZW0pXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaXRlbS4kc2VsZWN0ZWRcIlxuICAgICAgICAgID48L3BvLWNoZWNrYm94PlxuICAgICAgICA8L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjbWFzdGVyRGV0YWlsU3BhY2U+XG4gICAgICAgIDx0ZCBjbGFzcz1cInBvLXRhYmxlLWNvbHVtbi1tYXN0ZXItZGV0YWlsLXNwYWNlXCI+PC90ZD5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgIDx0ZFxuICAgICAgICBjbGFzcz1cInBvLXRhYmxlLWNvbHVtbi1tYXN0ZXItZGV0YWlsIHBvLXRhYmxlLW1hc3Rlci1kZXRhaWwtbGFiZWxcIlxuICAgICAgICAoY2xpY2spPVwiaXNTZWxlY3RhYmxlID8gb25TZWxlY3RSb3coaXRlbSkgOiAnamF2YXNjcmlwdDo7J1wiXG4gICAgICAgICpuZ0Zvcj1cImxldCBkZXRhaWwgb2YgZGV0YWlsQ29sdW1uc1wiXG4gICAgICA+XG4gICAgICAgIDxzdHJvbmcgKm5nSWY9XCJ0eXBlSGVhZGVySW5saW5lXCI+IHt7IGdldENvbHVtblRpdGxlTGFiZWwoZGV0YWlsKSB9fTogPC9zdHJvbmc+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZGV0YWlsLnR5cGVcIj5cbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ2N1cnJlbmN5J1wiPnt7IGl0ZW1bZGV0YWlsLnByb3BlcnR5XSB8IGN1cnJlbmN5OiBkZXRhaWwuZm9ybWF0OidzeW1ib2wnOicxLjItMicgfX08L3NwYW4+XG4gICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidkYXRlJ1wiPnt7IGl0ZW1bZGV0YWlsLnByb3BlcnR5XSB8IGRhdGU6IGRldGFpbC5mb3JtYXQgfHwgJ2RkL01NL3l5eXknIH19PC9zcGFuPlxuICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCIndGltZSdcIj57eyBpdGVtW2RldGFpbC5wcm9wZXJ0eV0gfCBwb190aW1lOiBkZXRhaWwuZm9ybWF0IHx8ICdISDptbTpzcy5mZmZmZmYnIH19PC9zcGFuPlxuICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInZGF0ZVRpbWUnXCI+XG4gICAgICAgICAgICB7eyBpdGVtW2RldGFpbC5wcm9wZXJ0eV0gfCBkYXRlOiBkZXRhaWwuZm9ybWF0IHx8ICdkZC9NTS95eXl5IEhIOm1tOnNzJyB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ251bWJlcidcIj57eyBmb3JtYXROdW1iZXJEZXRhaWwoaXRlbVtkZXRhaWwucHJvcGVydHldLCBkZXRhaWwuZm9ybWF0KSB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hEZWZhdWx0Pnt7IGl0ZW1bZGV0YWlsLnByb3BlcnR5XSB9fTwvc3Bhbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L3RkPlxuICAgIDwvdHI+XG4gIDwvdGJvZHk+XG48L3RhYmxlPlxuIl19
|
|
289
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tdGFibGUtZGV0YWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby10YWJsZS9wby10YWJsZS1kZXRhaWwvcG8tdGFibGUtZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby10YWJsZS9wby10YWJsZS1kZXRhaWwvcG8tdGFibGUtZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0lDQWhFLHdCQUFpRjs7O0lBRWpGLDZCQUEyRjtJQUN6RixZQUNGO0lBQUEsaUJBQUs7Ozs7SUFESCxlQUNGO0lBREUsc0VBQ0Y7OztJQU5KLDZCQUE2QixTQUFBO0lBRXpCLDZFQUFpRjtJQUNqRix3QkFBc0Y7SUFDdEYsNkVBRUs7SUFDUCxpQkFBSyxFQUFBOzs7SUFMcUQsZUFBa0I7SUFBbEIsMENBQWtCO0lBRUYsZUFBaUI7SUFBakIsK0NBQWlCOzs7O0lBV3pGLDZCQUEyRDtJQUN6RCx5QkFBOEQ7SUFDOUQsOEJBQXVELHNCQUFBO0lBR25ELHNPQUFTLGVBQUEsNEJBQWlCLENBQUEsSUFBQywrTkFDZixlQUFBLDRCQUFpQixDQUFBLElBREYsMk1BRWQsMENBQ25CLElBSGlDO0lBRzVCLGlCQUFjLEVBQUE7SUFFbkIsMEJBQWU7OztJQUhULGVBQTRCO0lBQTVCLDJDQUE0Qjs7O0lBTWhDLHlCQUFxRDs7O0lBUXJELDhCQUFpQztJQUFDLFlBQW1DO0lBQUEsaUJBQVM7Ozs7SUFBNUMsZUFBbUM7SUFBbkMseUVBQW1DOzs7SUFHbkUsNEJBQWlDO0lBQUEsWUFFL0I7O0lBQUEsaUJBQU87Ozs7O0lBRndCLGVBRS9CO0lBRitCLDRIQUUvQjs7O0lBQ0YsNEJBQTZCO0lBQUEsWUFBdUU7O0lBQUEsaUJBQU87Ozs7O0lBQTlFLGVBQXVFO0lBQXZFLHlIQUF1RTs7O0lBQ3BHLDRCQUE2QjtJQUFBLFlBRTNCOztJQUFBLGlCQUFPOzs7OztJQUZvQixlQUUzQjtJQUYyQiw4SEFFM0I7OztJQUNGLDRCQUFpQztJQUMvQixZQUNGOztJQUFBLGlCQUFPOzs7OztJQURMLGVBQ0Y7SUFERSw2SUFDRjs7O0lBQ0EsNEJBQStCO0lBQUEsWUFBb0U7SUFBQSxpQkFBTzs7Ozs7SUFBM0UsZUFBb0U7SUFBcEUsK0dBQW9FOzs7SUFDbkcsNEJBQXVCO0lBQUEsWUFBaUM7SUFBQSxpQkFBTzs7Ozs7SUFBeEMsZUFBaUM7SUFBakMsZ0VBQWlDOzs7O0lBbkI1RCw4QkFJQztJQUZDLG1OQUFTLHNDQUFlLDRCQUFpQixHQUFHLGNBQWMsQ0FBQSxJQUFDO0lBRzNELHVGQUE4RTtJQUU5RSxpQ0FBdUM7SUFDckMsb0ZBRVM7SUFDVCxvRkFBMkc7SUFDM0csb0ZBRVM7SUFDVCxvRkFFTztJQUNQLG9GQUEwRztJQUMxRyxvRkFBK0Q7SUFDakUsMEJBQWU7SUFDakIsaUJBQUs7Ozs7SUFoQk0sZUFBc0I7SUFBdEIsOENBQXNCO0lBRWpCLGVBQXdCO0lBQXhCLDBDQUF3QjtJQUM3QixlQUF3QjtJQUF4Qix5Q0FBd0I7SUFHeEIsZUFBb0I7SUFBcEIscUNBQW9CO0lBQ3BCLGVBQW9CO0lBQXBCLHFDQUFvQjtJQUdwQixlQUF3QjtJQUF4Qix5Q0FBd0I7SUFHeEIsZUFBc0I7SUFBdEIsdUNBQXNCOzs7SUF2Q25DLDZCQUlDO0lBQ0MsOEZBVWU7SUFFZiw4SEFFYztJQUVkLDJFQXFCSztJQUNQLGlCQUFLOzs7OztJQXpDSCwrRUFBNEQ7SUFHN0MsZUFBb0I7SUFBcEIsMENBQW9CLGlCQUFBO0lBbUJkLGVBQWdCO0lBQWhCLDhDQUFnQjs7QUQzQjNDOzs7Ozs7R0FNRztBQUtILE1BQU0sT0FBTyxzQkFBc0I7SUFpQ2pDLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBM0I1Qzs7V0FFRztRQUNvQixpQkFBWSxHQUFhLEtBQUssQ0FBQztRQUV0RDs7Ozs7O1dBTUc7UUFDcUIsY0FBUyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBZWhDLENBQUM7SUFYaEQ7O09BRUc7SUFDSCxJQUF1QixNQUFNLENBQUMsS0FBb0I7UUFDaEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBSUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssUUFBUSxDQUFDO0lBQy9GLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxLQUFLLENBQUM7SUFDNUQsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQVUsRUFBRSxNQUFjO1FBQzNDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELG1CQUFtQixDQUFDLE1BQTJCO1FBQzdDLE9BQU8sTUFBTSxDQUFDLEtBQUssSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUFTLEVBQUUsTUFBMkI7UUFDbEQsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakQsSUFBSSxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM1QixNQUFNLGdCQUFnQixHQUFHLGFBQWEsQ0FBQztZQUN2QyxJQUFJLEtBQUssR0FBUSxJQUFJLENBQUM7WUFDdEIsS0FBSyxNQUFNLFFBQVEsSUFBSSxnQkFBZ0IsRUFBRTtnQkFDdkMsS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzthQUN6RTtZQUNELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUM5QjtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsSUFBSTtRQUNkLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxLQUFVO1FBQzFDLElBQUksS0FBSyxJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLEVBQUU7WUFDdEMsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFO2dCQUNqQixLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2FBQ3ZGO1lBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN4QixPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO2FBQzNCO1lBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFO2dCQUNqQixPQUFPLEtBQUssQ0FBQzthQUNkO1NBQ0Y7SUFDSCxDQUFDOzs0RkE1RlUsc0JBQXNCO3lFQUF0QixzQkFBc0I7UUNuQm5DLGdDQUFzQztRQUNwQywyRUFRUTtRQUNSLDZCQUFPO1FBQ0wscUVBMkNLO1FBQ1AsaUJBQVEsRUFBQTs7UUF0REEsZUFBbUI7UUFBbkIsd0NBQW1CO1FBYU4sZUFBUTtRQUFSLG1DQUFROzt1RkRLbEIsc0JBQXNCO2NBSmxDLFNBQVM7MkJBQ0UsaUJBQWlCOzhEQU9ULEtBQUs7a0JBQXRCLEtBQUs7bUJBQUMsU0FBUztZQUtPLFlBQVk7a0JBQWxDLEtBQUs7bUJBQUMsY0FBYztZQVNHLFNBQVM7a0JBQWhDLE1BQU07bUJBQUMsY0FBYztZQU9DLE1BQU07a0JBQTVCLEtBQUs7bUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEZWNpbWFsUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IGNhcGl0YWxpemVGaXJzdExldHRlciwgaXNUeXBlb2YgfSBmcm9tICcuLi8uLi8uLi91dGlscy91dGlsJztcblxuaW1wb3J0IHsgUG9UYWJsZURldGFpbCB9IGZyb20gJy4vcG8tdGFibGUtZGV0YWlsLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb1RhYmxlRGV0YWlsQ29sdW1uIH0gZnJvbSAnLi9wby10YWJsZS1kZXRhaWwtY29sdW1uLmludGVyZmFjZSc7XG5cbi8qKlxuICogQGRvY3NQcml2YXRlXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogQ29tcG9uZW50ZSByZXNwb25zw6F2ZWwgcG9yIGFwcmVzZW50YXIgbyBkZXRhbGhlIGRlIGNhZGEgbGluaGEgZGEgdGFiZWxhLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwby10YWJsZS1kZXRhaWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vcG8tdGFibGUtZGV0YWlsLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQb1RhYmxlRGV0YWlsQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIExpc3RhIGRlIGl0ZW5zIGRvIF9kZXRhaWxfIGRhIHRhYmVsYS5cbiAgICovXG4gIEBJbnB1dCgncC1pdGVtcycpIGl0ZW1zOiBBcnJheTxhbnk+O1xuXG4gIC8qKlxuICAgKiBEZWZpbmUgc2UgYSB0YWJlbGEgcG9zc3VpIGEgb3DDp8OjbyBkZSBgc2VsZWN0YWJsZWAgaGFiaWxpdGFkYS5cbiAgICovXG4gIEBJbnB1dCgncC1zZWxlY3RhYmxlJykgaXNTZWxlY3RhYmxlPzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEHDp8OjbyBleGVjdXRhZGEgYW8gc2VsZWNpb25hciBvdSBkZXNtYXJjYXIgYSBzZWxlw6fDo28gZGUgdW1hIGxpbmhhIGRlIGRldGFsaGUgZG8gYHBvLXRhYmxlYC5cbiAgICovXG4gIEBPdXRwdXQoJ3Atc2VsZWN0LXJvdycpIHNlbGVjdFJvdzogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBwcml2YXRlIF9kZXRhaWw6IFBvVGFibGVEZXRhaWw7XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyYcOnw6NvIGRhIGxpbmhhIGRlIGRldGFsaGVzLlxuICAgKi9cbiAgQElucHV0KCdwLWRldGFpbCcpIHNldCBkZXRhaWwodmFsdWU6IFBvVGFibGVEZXRhaWwpIHtcbiAgICB0aGlzLl9kZXRhaWwgPSB0aGlzLnJldHVyblBvVGFibGVEZXRhaWxPYmplY3QodmFsdWUpO1xuICB9XG5cbiAgZ2V0IGRldGFpbCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGV0YWlsO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkZWNpbWFsUGlwZTogRGVjaW1hbFBpcGUpIHt9XG5cbiAgZ2V0IGRldGFpbENvbHVtbnMoKTogQXJyYXk8UG9UYWJsZURldGFpbENvbHVtbj4ge1xuICAgIHJldHVybiB0aGlzLmRldGFpbD8uY29sdW1ucyB8fCBbXTtcbiAgfVxuXG4gIGdldCB0eXBlSGVhZGVySW5saW5lKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5kZXRhaWwgJiYgIXRoaXMuZGV0YWlsWyd0eXBlSGVhZGVyJ10pIHx8IHRoaXMuZGV0YWlsWyd0eXBlSGVhZGVyJ10gPT09ICdpbmxpbmUnO1xuICB9XG5cbiAgZ2V0IHR5cGVIZWFkZXJUb3AoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGV0YWlsICYmIHRoaXMuZGV0YWlsWyd0eXBlSGVhZGVyJ10gPT09ICd0b3AnO1xuICB9XG5cbiAgZm9ybWF0TnVtYmVyRGV0YWlsKHZhbHVlOiBhbnksIGZvcm1hdDogc3RyaW5nKSB7XG4gICAgaWYgKCFmb3JtYXQpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5kZWNpbWFsUGlwZS50cmFuc2Zvcm0odmFsdWUsIGZvcm1hdCk7XG4gIH1cblxuICBnZXRDb2x1bW5UaXRsZUxhYmVsKGRldGFpbDogUG9UYWJsZURldGFpbENvbHVtbikge1xuICAgIHJldHVybiBkZXRhaWwubGFiZWwgfHwgY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGRldGFpbC5wcm9wZXJ0eSk7XG4gIH1cblxuICBnZXREZXRhaWxEYXRhKGl0ZW06IGFueSwgZGV0YWlsOiBQb1RhYmxlRGV0YWlsQ29sdW1uKSB7XG4gICAgY29uc3QgYXJyYXlQcm9wZXJ0eSA9IGRldGFpbC5wcm9wZXJ0eS5zcGxpdCgnLicpO1xuICAgIGlmIChhcnJheVByb3BlcnR5Lmxlbmd0aCA+IDEpIHtcbiAgICAgIGNvbnN0IG5lc3RlZFByb3BlcnRpZXMgPSBhcnJheVByb3BlcnR5O1xuICAgICAgbGV0IHZhbHVlOiBhbnkgPSBpdGVtO1xuICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBuZXN0ZWRQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHZhbHVlID0gdmFsdWVbcHJvcGVydHldIHx8IHZhbHVlW3Byb3BlcnR5XSA9PT0gMCA/IHZhbHVlW3Byb3BlcnR5XSA6ICcnO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gaXRlbVtkZXRhaWwucHJvcGVydHldO1xuICAgIH1cbiAgfVxuXG4gIG9uU2VsZWN0Um93KGl0ZW0pIHtcbiAgICBpdGVtLiRzZWxlY3RlZCA9ICFpdGVtLiRzZWxlY3RlZDtcbiAgICB0aGlzLnNlbGVjdFJvdy5lbWl0KGl0ZW0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZXR1cm5Qb1RhYmxlRGV0YWlsT2JqZWN0KHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodmFsdWUgJiYgaXNUeXBlb2YodmFsdWUsICdvYmplY3QnKSkge1xuICAgICAgaWYgKHZhbHVlLmNvbHVtbnMpIHtcbiAgICAgICAgdmFsdWUuY29sdW1ucy5mb3JFYWNoKGNvbHVtbiA9PiAoY29sdW1uLnByb3BlcnR5ID0gY29sdW1uLnByb3BlcnR5IHx8IGNvbHVtbi5jb2x1bW4pKTtcbiAgICAgIH1cblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB7IGNvbHVtbnM6IHZhbHVlIH07XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWx1ZS5jb2x1bW5zKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIjx0YWJsZSBjbGFzcz1cInBvLXRhYmxlLW1hc3Rlci1kZXRhaWxcIj5cbiAgPHRoZWFkICpuZ0lmPVwidHlwZUhlYWRlclRvcFwiPlxuICAgIDx0cj5cbiAgICAgIDx0aCBjbGFzcz1cInBvLXRhYmxlLWhlYWRlciBwby10YWJsZS1jb2x1bW4tc2VsZWN0YWJsZVwiICpuZ0lmPVwiaXNTZWxlY3RhYmxlXCI+PC90aD5cbiAgICAgIDx0aCBjbGFzcz1cInBvLXRhYmxlLWhlYWRlciBwby10YWJsZS1oZWFkZXItY29sdW1uIHBvLXRhYmxlLWhlYWRlci1tYXN0ZXItZGV0YWlsXCI+PC90aD5cbiAgICAgIDx0aCBjbGFzcz1cInBvLXRhYmxlLWhlYWRlciBwby10YWJsZS1oZWFkZXItZWxsaXBzaXNcIiAqbmdGb3I9XCJsZXQgZGV0YWlsIG9mIGRldGFpbC5jb2x1bW5zXCI+XG4gICAgICAgIHt7IGdldENvbHVtblRpdGxlTGFiZWwoZGV0YWlsKSB9fVxuICAgICAgPC90aD5cbiAgICA8L3RyPlxuICA8L3RoZWFkPlxuICA8dGJvZHk+XG4gICAgPHRyXG4gICAgICBjbGFzcz1cInBvLXRhYmxlLWRldGFpbC1yb3dcIlxuICAgICAgW2NsYXNzLnBvLXRhYmxlLXJvdy1hY3RpdmVdPVwiaXRlbS4kc2VsZWN0ZWQgJiYgaXNTZWxlY3RhYmxlXCJcbiAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNTZWxlY3RhYmxlOyBlbHNlIG1hc3RlckRldGFpbFNwYWNlXCI+XG4gICAgICAgIDx0ZCBjbGFzcz1cInBvLXRhYmxlLWNvbHVtbi1tYXN0ZXItZGV0YWlsLXNwYWNlLWNoZWNrYm94XCI+PC90ZD5cbiAgICAgICAgPHRkIGNsYXNzPVwicG8tdGFibGUtY29sdW1uIHBvLXRhYmxlLWNvbHVtbi1zZWxlY3RhYmxlXCI+XG4gICAgICAgICAgPHBvLWNoZWNrYm94XG4gICAgICAgICAgICBuYW1lPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0Um93KGl0ZW0pXCJcbiAgICAgICAgICAgIChwLWNoYW5nZSk9XCJvblNlbGVjdFJvdyhpdGVtKVwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cIml0ZW0uJHNlbGVjdGVkXCJcbiAgICAgICAgICA+PC9wby1jaGVja2JveD5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctdGVtcGxhdGUgI21hc3RlckRldGFpbFNwYWNlPlxuICAgICAgICA8dGQgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4tbWFzdGVyLWRldGFpbC1zcGFjZVwiPjwvdGQ+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICA8dGRcbiAgICAgICAgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4tbWFzdGVyLWRldGFpbCBwby10YWJsZS1tYXN0ZXItZGV0YWlsLWxhYmVsXCJcbiAgICAgICAgKGNsaWNrKT1cImlzU2VsZWN0YWJsZSA/IG9uU2VsZWN0Um93KGl0ZW0pIDogJ2phdmFzY3JpcHQ6OydcIlxuICAgICAgICAqbmdGb3I9XCJsZXQgZGV0YWlsIG9mIGRldGFpbENvbHVtbnNcIlxuICAgICAgPlxuICAgICAgICA8c3Ryb25nICpuZ0lmPVwidHlwZUhlYWRlcklubGluZVwiPiB7eyBnZXRDb2x1bW5UaXRsZUxhYmVsKGRldGFpbCkgfX06IDwvc3Ryb25nPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImRldGFpbC50eXBlXCI+XG4gICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidjdXJyZW5jeSdcIj57e1xuICAgICAgICAgICAgZ2V0RGV0YWlsRGF0YShpdGVtLCBkZXRhaWwpIHwgY3VycmVuY3k6IGRldGFpbC5mb3JtYXQ6J3N5bWJvbCc6JzEuMi0yJ1xuICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInZGF0ZSdcIj57eyBnZXREZXRhaWxEYXRhKGl0ZW0sIGRldGFpbCkgfCBkYXRlOiBkZXRhaWwuZm9ybWF0IHx8ICdkZC9NTS95eXl5JyB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ3RpbWUnXCI+e3tcbiAgICAgICAgICAgIGdldERldGFpbERhdGEoaXRlbSwgZGV0YWlsKSB8IHBvX3RpbWU6IGRldGFpbC5mb3JtYXQgfHwgJ0hIOm1tOnNzLmZmZmZmZidcbiAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGVUaW1lJ1wiPlxuICAgICAgICAgICAge3sgZ2V0RGV0YWlsRGF0YShpdGVtLCBkZXRhaWwpIHwgZGF0ZTogZGV0YWlsLmZvcm1hdCB8fCAnZGQvTU0veXl5eSBISDptbTpzcycgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidudW1iZXInXCI+e3sgZm9ybWF0TnVtYmVyRGV0YWlsKGdldERldGFpbERhdGEoaXRlbSwgZGV0YWlsKSwgZGV0YWlsLmZvcm1hdCkgfX08L3NwYW4+XG4gICAgICAgICAgPHNwYW4gKm5nU3dpdGNoRGVmYXVsdD57eyBnZXREZXRhaWxEYXRhKGl0ZW0sIGRldGFpbCkgfX08L3NwYW4+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC90ZD5cbiAgICA8L3RyPlxuICA8L3Rib2R5PlxuPC90YWJsZT5cbiJdfQ==
|