@valtimo/components 12.6.1 → 12.8.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/assets/css/formio-carbon.scss +132 -14
- package/esm2022/lib/components/carbon-list/carbon-list.component.mjs +28 -19
- package/esm2022/lib/components/form-io/formio-value-resolver-selector/formio-value-resolver-selector.component.mjs +1 -1
- package/esm2022/lib/components/multi-input/carbon-multi-input.component.mjs +122 -74
- package/esm2022/lib/components/multi-input/carbon-multi-input.module.mjs +25 -3
- package/esm2022/lib/components/multi-input/components/arbitrary-amount-value/arbitrary-amount-value.component.mjs +63 -0
- package/esm2022/lib/components/multi-input/components/arbitrary-amount-value/index.mjs +17 -0
- package/esm2022/lib/components/multi-input/components/index.mjs +23 -0
- package/esm2022/lib/components/multi-input/components/key-dropdown-value/index.mjs +17 -0
- package/esm2022/lib/components/multi-input/components/key-dropdown-value/key-dropdown-value.component.mjs +71 -0
- package/esm2022/lib/components/multi-input/components/key-value/index.mjs +17 -0
- package/esm2022/lib/components/multi-input/components/key-value/key-value.component.mjs +62 -0
- package/esm2022/lib/components/multi-input/components/key-value-path-selector/index.mjs +17 -0
- package/esm2022/lib/components/multi-input/components/key-value-path-selector/key-value-path-selector.component.mjs +82 -0
- package/esm2022/lib/components/multi-input/components/single-value/index.mjs +17 -0
- package/esm2022/lib/components/multi-input/components/single-value/single-value.component.mjs +49 -0
- package/esm2022/lib/components/multi-input/components/value-path-selector-dropdown-value/index.mjs +17 -0
- package/esm2022/lib/components/multi-input/components/value-path-selector-dropdown-value/value-path-selector-dropdown-value.component.mjs +92 -0
- package/esm2022/lib/components/multi-input/components/value-path-selector-value/index.mjs +17 -0
- package/esm2022/lib/components/multi-input/components/value-path-selector-value/value-path-selector-value.component.mjs +82 -0
- package/esm2022/lib/components/value-path-selector/index.mjs +17 -0
- package/esm2022/lib/components/value-path-selector/value-path-selector.component.mjs +62 -22
- package/esm2022/lib/models/multi-input.model.mjs +1 -1
- package/esm2022/lib/models/value-path-selector.model.mjs +7 -2
- package/esm2022/lib/services/key-generator.service.mjs +2 -2
- package/esm2022/lib/services/value-path-selector.service.mjs +55 -40
- package/fesm2022/valtimo-components.mjs +1042 -315
- package/fesm2022/valtimo-components.mjs.map +1 -1
- package/lib/components/carbon-list/carbon-list.component.d.ts.map +1 -1
- package/lib/components/multi-input/carbon-multi-input.component.d.ts +33 -23
- package/lib/components/multi-input/carbon-multi-input.component.d.ts.map +1 -1
- package/lib/components/multi-input/carbon-multi-input.module.d.ts +8 -1
- package/lib/components/multi-input/carbon-multi-input.module.d.ts.map +1 -1
- package/lib/components/multi-input/components/arbitrary-amount-value/arbitrary-amount-value.component.d.ts +23 -0
- package/lib/components/multi-input/components/arbitrary-amount-value/arbitrary-amount-value.component.d.ts.map +1 -0
- package/lib/components/multi-input/components/arbitrary-amount-value/index.d.ts +2 -0
- package/lib/components/multi-input/components/arbitrary-amount-value/index.d.ts.map +1 -0
- package/lib/components/multi-input/components/index.d.ts +8 -0
- package/lib/components/multi-input/components/index.d.ts.map +1 -0
- package/lib/components/multi-input/components/key-dropdown-value/index.d.ts +2 -0
- package/lib/components/multi-input/components/key-dropdown-value/index.d.ts.map +1 -0
- package/lib/components/multi-input/components/key-dropdown-value/key-dropdown-value.component.d.ts +27 -0
- package/lib/components/multi-input/components/key-dropdown-value/key-dropdown-value.component.d.ts.map +1 -0
- package/lib/components/multi-input/components/key-value/index.d.ts +2 -0
- package/lib/components/multi-input/components/key-value/index.d.ts.map +1 -0
- package/lib/components/multi-input/components/key-value/key-value.component.d.ts +22 -0
- package/lib/components/multi-input/components/key-value/key-value.component.d.ts.map +1 -0
- package/lib/components/multi-input/components/key-value-path-selector/index.d.ts +2 -0
- package/lib/components/multi-input/components/key-value-path-selector/index.d.ts.map +1 -0
- package/lib/components/multi-input/components/key-value-path-selector/key-value-path-selector.component.d.ts +26 -0
- package/lib/components/multi-input/components/key-value-path-selector/key-value-path-selector.component.d.ts.map +1 -0
- package/lib/components/multi-input/components/single-value/index.d.ts +2 -0
- package/lib/components/multi-input/components/single-value/index.d.ts.map +1 -0
- package/lib/components/multi-input/components/single-value/single-value.component.d.ts +16 -0
- package/lib/components/multi-input/components/single-value/single-value.component.d.ts.map +1 -0
- package/lib/components/multi-input/components/value-path-selector-dropdown-value/index.d.ts +2 -0
- package/lib/components/multi-input/components/value-path-selector-dropdown-value/index.d.ts.map +1 -0
- package/lib/components/multi-input/components/value-path-selector-dropdown-value/value-path-selector-dropdown-value.component.d.ts +31 -0
- package/lib/components/multi-input/components/value-path-selector-dropdown-value/value-path-selector-dropdown-value.component.d.ts.map +1 -0
- package/lib/components/multi-input/components/value-path-selector-value/index.d.ts +2 -0
- package/lib/components/multi-input/components/value-path-selector-value/index.d.ts.map +1 -0
- package/lib/components/multi-input/components/value-path-selector-value/value-path-selector-value.component.d.ts +26 -0
- package/lib/components/multi-input/components/value-path-selector-value/value-path-selector-value.component.d.ts.map +1 -0
- package/lib/components/value-path-selector/index.d.ts +2 -0
- package/lib/components/value-path-selector/index.d.ts.map +1 -0
- package/lib/components/value-path-selector/value-path-selector.component.d.ts +13 -7
- package/lib/components/value-path-selector/value-path-selector.component.d.ts.map +1 -1
- package/lib/models/multi-input.model.d.ts +3 -2
- package/lib/models/multi-input.model.d.ts.map +1 -1
- package/lib/models/value-path-selector.model.d.ts +17 -2
- package/lib/models/value-path-selector.model.d.ts.map +1 -1
- package/lib/services/value-path-selector.service.d.ts +8 -4
- package/lib/services/value-path-selector.service.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -13,15 +13,16 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { Component, EventEmitter, forwardRef, HostBinding, HostListener, Input, Output, } from '@angular/core';
|
|
17
16
|
import { CommonModule } from '@angular/common';
|
|
18
|
-
import {
|
|
19
|
-
import { ValuePathSelectorInputMode, } from '../../models/value-path-selector.model';
|
|
20
|
-
import { DropdownModule, InputModule, LoadingModule, ToggleModule, } from 'carbon-components-angular';
|
|
17
|
+
import { Component, EventEmitter, forwardRef, HostBinding, HostListener, Input, Output, } from '@angular/core';
|
|
21
18
|
import { FormControl, NG_VALUE_ACCESSOR, ReactiveFormsModule, } from '@angular/forms';
|
|
22
|
-
import { InputLabelModule } from '../input-label/input-label.module';
|
|
23
19
|
import { TranslateModule } from '@ngx-translate/core';
|
|
20
|
+
import { DropdownModule, InputModule, LoadingModule, ToggleModule, } from 'carbon-components-angular';
|
|
21
|
+
import { BehaviorSubject, combineLatest, filter, map, of, startWith, Subscription, switchMap, tap, } from 'rxjs';
|
|
24
22
|
import { distinctUntilChanged } from 'rxjs/operators';
|
|
23
|
+
import { ValuePathType } from '../../models';
|
|
24
|
+
import { ValuePathSelectorInputMode, } from '../../models/value-path-selector.model';
|
|
25
|
+
import { InputLabelModule } from '../input-label/input-label.module';
|
|
25
26
|
import * as i0 from "@angular/core";
|
|
26
27
|
import * as i1 from "../../services";
|
|
27
28
|
import * as i2 from "@angular/forms";
|
|
@@ -84,15 +85,18 @@ export class ValuePathSelectorComponent {
|
|
|
84
85
|
if (this.showDocumentDefinitionSelector)
|
|
85
86
|
this._inputMode$.next(ValuePathSelectorInputMode.MANUAL);
|
|
86
87
|
}
|
|
88
|
+
set type(value) {
|
|
89
|
+
this._type$.next(value);
|
|
90
|
+
}
|
|
91
|
+
set parentItem(value) {
|
|
92
|
+
this._parentItem$.next(value);
|
|
93
|
+
}
|
|
87
94
|
get _documentDefinitionName$() {
|
|
88
95
|
return this._documentDefinitionNameSubject$.pipe(filter(value => !!value));
|
|
89
96
|
}
|
|
90
97
|
get _prefixes$() {
|
|
91
98
|
return this._prefixesSubject$.pipe(filter(value => !!value));
|
|
92
99
|
}
|
|
93
|
-
get inputModeIsDropdown$() {
|
|
94
|
-
return this._inputMode$.pipe(map(mode => mode === ValuePathSelectorInputMode.DROPDOWN));
|
|
95
|
-
}
|
|
96
100
|
constructor(valuePathSelectorService, formBuilder, documentService) {
|
|
97
101
|
this.valuePathSelectorService = valuePathSelectorService;
|
|
98
102
|
this.formBuilder = formBuilder;
|
|
@@ -110,24 +114,51 @@ export class ValuePathSelectorComponent {
|
|
|
110
114
|
this.required = false;
|
|
111
115
|
this.showDocumentDefinitionSelector = false;
|
|
112
116
|
this.notation = 'dots';
|
|
117
|
+
this._type$ = new BehaviorSubject(ValuePathType.FIELD);
|
|
118
|
+
this._parentItem$ = new BehaviorSubject(null);
|
|
113
119
|
this.valueChangeEvent = new EventEmitter();
|
|
120
|
+
this.collectionSelected = new EventEmitter();
|
|
114
121
|
this._documentDefinitionNameSubject$ = new BehaviorSubject('');
|
|
115
122
|
this._version$ = new BehaviorSubject(null);
|
|
116
123
|
this._prefixesSubject$ = new BehaviorSubject(null);
|
|
117
124
|
this._inputMode$ = new BehaviorSubject(ValuePathSelectorInputMode.DROPDOWN);
|
|
125
|
+
this.inputModeIsDropdown$ = this._inputMode$.pipe(map(mode => {
|
|
126
|
+
return mode === ValuePathSelectorInputMode.DROPDOWN;
|
|
127
|
+
}));
|
|
118
128
|
this.loadingValuePathItems$ = new BehaviorSubject(true);
|
|
119
129
|
this.disabled$ = new BehaviorSubject(false);
|
|
120
130
|
this._cachedOptions = [];
|
|
121
|
-
this.valuePathListItems$ =
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
131
|
+
this.valuePathListItems$ = this._parentItem$.pipe(tap(() => this.loadingValuePathItems$.next(true)), switchMap((parentItem) => parentItem
|
|
132
|
+
? of(parentItem.children?.map((child) => ({ path: child })) ?? [])
|
|
133
|
+
: combineLatest([
|
|
134
|
+
this._documentDefinitionName$,
|
|
135
|
+
this._prefixes$,
|
|
136
|
+
this._type$,
|
|
137
|
+
this._version$,
|
|
138
|
+
]).pipe(switchMap(([documentDefinitionName, prefixes, type, version]) => typeof version === 'number'
|
|
139
|
+
? this.valuePathSelectorService.getResolvableKeys(prefixes, documentDefinitionName, type, version)
|
|
140
|
+
: this.valuePathSelectorService.getResolvableKeys(prefixes, documentDefinitionName, type)))), map((results) => results
|
|
141
|
+
.map((result) => ({
|
|
142
|
+
...result,
|
|
143
|
+
formattedPath: !this._parentItem$.getValue()
|
|
144
|
+
? this.getFormattedPath(result.path)
|
|
145
|
+
: result.path,
|
|
146
|
+
}))
|
|
147
|
+
.sort((a, b) => a.formattedPath.localeCompare(b.formattedPath))), tap(options => (this._cachedOptions = options)), switchMap(options => combineLatest([of(options), this._selectedPath$, this.inputModeIsDropdown$])), tap(([options, selectedPath, inputModeIsDropdown]) => {
|
|
148
|
+
const formattedOptions = options.map(option => option.formattedPath);
|
|
149
|
+
if (!formattedOptions.includes(selectedPath) && !!selectedPath && inputModeIsDropdown)
|
|
129
150
|
this._inputMode$.next(ValuePathSelectorInputMode.MANUAL);
|
|
130
|
-
}), map(([options, selectedPath]) => options.map(option =>
|
|
151
|
+
}), map(([options, selectedPath]) => options.map(option => {
|
|
152
|
+
const mappedOption = {
|
|
153
|
+
content: option.formattedPath,
|
|
154
|
+
selected: option.formattedPath === selectedPath,
|
|
155
|
+
path: option.path,
|
|
156
|
+
...(!!option.children && { children: option.children }),
|
|
157
|
+
};
|
|
158
|
+
if (mappedOption.selected)
|
|
159
|
+
this.onPathSelected({ item: mappedOption });
|
|
160
|
+
return mappedOption;
|
|
161
|
+
})), tap(() => this.loadingValuePathItems$.next(false)));
|
|
131
162
|
this.loadingDocumentDefinitionItems$ = new BehaviorSubject(true);
|
|
132
163
|
this.documentDefinitionListItems$ = this.valuePathSelectorService.getDocumentDefinitionCache().pipe(switchMap(cache => combineLatest([
|
|
133
164
|
cache ? of(cache) : this.documentService.getAllDefinitions(),
|
|
@@ -174,6 +205,8 @@ export class ValuePathSelectorComponent {
|
|
|
174
205
|
const selectedPath = event?.item?.content;
|
|
175
206
|
if (!selectedPath)
|
|
176
207
|
return;
|
|
208
|
+
if (this.collectionSelected.observed)
|
|
209
|
+
this.collectionSelected.emit(event.item);
|
|
177
210
|
this.selectedPath.setValue(selectedPath);
|
|
178
211
|
}
|
|
179
212
|
onDocumentDefinitionSelected(event) {
|
|
@@ -185,7 +218,8 @@ export class ValuePathSelectorComponent {
|
|
|
185
218
|
}
|
|
186
219
|
onInputModeChange(toDropdownMode) {
|
|
187
220
|
const currentPathValue = this.selectedPath.value;
|
|
188
|
-
if (toDropdownMode &&
|
|
221
|
+
if (toDropdownMode &&
|
|
222
|
+
!this._cachedOptions.map(option => option.formattedPath).includes(currentPathValue)) {
|
|
189
223
|
this.selectedPath.setValue('');
|
|
190
224
|
}
|
|
191
225
|
this._inputMode$.next(toDropdownMode ? ValuePathSelectorInputMode.DROPDOWN : ValuePathSelectorInputMode.MANUAL);
|
|
@@ -207,13 +241,13 @@ export class ValuePathSelectorComponent {
|
|
|
207
241
|
return `${prefix}:${requiredNotation === 'dots' ? formattedPath.substring(1) : formattedPath}`;
|
|
208
242
|
}
|
|
209
243
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ValuePathSelectorComponent, deps: [{ token: i1.ValuePathSelectorService }, { token: i2.FormBuilder }, { token: i3.DocumentService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
210
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ValuePathSelectorComponent, isStandalone: true, selector: "valtimo-value-path-selector", inputs: { name: "name", appendInline: "appendInline", margin: "margin", marginLg: "marginLg", marginXl: "marginXl", disabled: "disabled", documentDefinitionName: "documentDefinitionName", version: "version", prefixes: "prefixes", label: "label", tooltip: "tooltip", required: "required", showDocumentDefinitionSelector: "showDocumentDefinitionSelector", notation: "notation", defaultValue: "defaultValue" }, outputs: { valueChangeEvent: "valueChangeEvent" }, host: { listeners: { "focusout": "onBlur()" }, properties: { "class.value-path-selector--margin-bottom": "this._showMargin", "class.value-path-selector--margin-bottom-lg": "this._showMarginLg", "class.value-path-selector--margin-bottom-xl": "this._showMarginXl" } }, providers: [
|
|
244
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ValuePathSelectorComponent, isStandalone: true, selector: "valtimo-value-path-selector", inputs: { name: "name", appendInline: "appendInline", margin: "margin", marginLg: "marginLg", marginXl: "marginXl", disabled: "disabled", documentDefinitionName: "documentDefinitionName", version: "version", prefixes: "prefixes", label: "label", tooltip: "tooltip", required: "required", showDocumentDefinitionSelector: "showDocumentDefinitionSelector", notation: "notation", defaultValue: "defaultValue", type: "type", parentItem: "parentItem" }, outputs: { valueChangeEvent: "valueChangeEvent", collectionSelected: "collectionSelected" }, host: { listeners: { "focusout": "onBlur()" }, properties: { "class.value-path-selector--margin-bottom": "this._showMargin", "class.value-path-selector--margin-bottom-lg": "this._showMarginLg", "class.value-path-selector--margin-bottom-xl": "this._showMarginXl" } }, providers: [
|
|
211
245
|
{
|
|
212
246
|
provide: NG_VALUE_ACCESSOR,
|
|
213
247
|
multi: true,
|
|
214
248
|
useExisting: forwardRef(() => ValuePathSelectorComponent),
|
|
215
249
|
},
|
|
216
|
-
], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n inputModeIsDropdown: inputModeIsDropdown$ | async,\n valuePathListItems: valuePathListItems$ | async,\n loadingValuePathItems: loadingValuePathItems$ | async,\n disabled: disabled$ | async,\n } as obs\"\n>\n <v-input-label [required]=\"required\" [title]=\"label\" [tooltip]=\"tooltip\"> </v-input-label>\n\n <form
|
|
250
|
+
], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n inputModeIsDropdown: inputModeIsDropdown$ | async,\n valuePathListItems: valuePathListItems$ | async,\n loadingValuePathItems: loadingValuePathItems$ | async,\n disabled: disabled$ | async,\n } as obs\"\n>\n <v-input-label [required]=\"required\" [title]=\"label\" [tooltip]=\"tooltip\"> </v-input-label>\n\n <form\n [formGroup]=\"formGroup\"\n class=\"value-path-selector__form\"\n [ngClass]=\"{\n 'value-path-selector__form--doc-def-selection':\n showDocumentDefinitionSelector && obs.inputModeIsDropdown,\n }\"\n >\n <cds-toggle\n data-testid=\"value-path-selector-toggle\"\n size=\"sm\"\n [disabled]=\"obs.disabled\"\n [onText]=\"'valuePathSelector.dropdown' | translate\"\n [offText]=\"'valuePathSelector.manual' | translate\"\n [checked]=\"obs.inputModeIsDropdown\"\n (checkedChange)=\"onInputModeChange($event)\"\n ></cds-toggle>\n\n @if (obs.inputModeIsDropdown) {\n <ng-container\n *ngIf=\"\n showDocumentDefinitionSelector && {\n loadingDocumentDefinitionItems: loadingDocumentDefinitionItems$ | async,\n documentDefinitionListItems: documentDefinitionListItems$ | async,\n } as docObs\n \"\n >\n <cds-dropdown\n data-testid=\"value-path-selector-documentDefinition\"\n [appendInline]=\"appendInline\"\n [disabled]=\"\n obs.disabled ||\n docObs.loadingDocumentDefinitionItems ||\n !docObs.documentDefinitionListItems ||\n (docObs.documentDefinitionListItems || []).length === 0\n \"\n (selected)=\"onDocumentDefinitionSelected($event)\"\n [placeholder]=\"'valuePathSelector.selectDocDefPlaceholder' | translate\"\n >\n <cds-dropdown-list [items]=\"docObs.documentDefinitionListItems || []\"></cds-dropdown-list>\n </cds-dropdown>\n </ng-container>\n\n <cds-dropdown\n data-testid=\"value-path-selector-valuePath\"\n [appendInline]=\"appendInline\"\n [disabled]=\"\n obs.disabled ||\n obs.loadingValuePathItems ||\n !obs.valuePathListItems ||\n (obs.valuePathListItems || []).length === 0\n \"\n (selected)=\"onPathSelected($event)\"\n [placeholder]=\"'valuePathSelector.placeholder' | translate\"\n >\n <cds-dropdown-list [items]=\"obs.valuePathListItems || []\"></cds-dropdown-list>\n </cds-dropdown>\n } @else {\n <input\n data-testid=\"value-path-selector-input\"\n cdsText\n type=\"text\"\n formControlName=\"selectedPath\"\n />\n }\n </form>\n</ng-container>\n", styles: [":host{width:100%;display:flex;flex-direction:column}::ng-deep .value-path-selector--margin-bottom{margin-bottom:16px}::ng-deep .value-path-selector--margin-bottom-lg{margin-bottom:24px}::ng-deep .value-path-selector--margin-bottom-xl{margin-bottom:34px}.value-path-selector__form{display:grid;grid-template-columns:110px 1fr;width:100%;align-items:center;gap:16px;justify-content:space-between}.value-path-selector__form--doc-def-selection{grid-template-columns:110px 1fr 1fr}.value-path-selector__form ::ng-deep cds-dropdown{width:100%;min-width:0}.value-path-selector__form ::ng-deep .cds--toggle__label-text{display:none}.value-path-selector__form ::ng-deep .cds--toggle__label{display:flex}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i5.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i5.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "ngmodule", type: LoadingModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: ToggleModule }, { kind: "component", type: i5.Toggle, selector: "cds-toggle, ibm-toggle", inputs: ["offText", "onText", "label", "size", "hideLabel", "skeleton"] }, { kind: "ngmodule", type: InputModule }, { kind: "directive", type: i5.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: InputLabelModule }, { kind: "component", type: i6.InputLabelComponent, selector: "v-input-label", inputs: ["name", "tooltip", "largeMargin", "small", "noMargin", "title", "titleTranslationKey", "required", "disabled", "carbonTheme"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] }); }
|
|
217
251
|
}
|
|
218
252
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ValuePathSelectorComponent, decorators: [{
|
|
219
253
|
type: Component,
|
|
@@ -233,7 +267,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
233
267
|
multi: true,
|
|
234
268
|
useExisting: forwardRef(() => ValuePathSelectorComponent),
|
|
235
269
|
},
|
|
236
|
-
], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n inputModeIsDropdown: inputModeIsDropdown$ | async,\n valuePathListItems: valuePathListItems$ | async,\n loadingValuePathItems: loadingValuePathItems$ | async,\n disabled: disabled$ | async,\n } as obs\"\n>\n <v-input-label [required]=\"required\" [title]=\"label\" [tooltip]=\"tooltip\"> </v-input-label>\n\n <form
|
|
270
|
+
], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n inputModeIsDropdown: inputModeIsDropdown$ | async,\n valuePathListItems: valuePathListItems$ | async,\n loadingValuePathItems: loadingValuePathItems$ | async,\n disabled: disabled$ | async,\n } as obs\"\n>\n <v-input-label [required]=\"required\" [title]=\"label\" [tooltip]=\"tooltip\"> </v-input-label>\n\n <form\n [formGroup]=\"formGroup\"\n class=\"value-path-selector__form\"\n [ngClass]=\"{\n 'value-path-selector__form--doc-def-selection':\n showDocumentDefinitionSelector && obs.inputModeIsDropdown,\n }\"\n >\n <cds-toggle\n data-testid=\"value-path-selector-toggle\"\n size=\"sm\"\n [disabled]=\"obs.disabled\"\n [onText]=\"'valuePathSelector.dropdown' | translate\"\n [offText]=\"'valuePathSelector.manual' | translate\"\n [checked]=\"obs.inputModeIsDropdown\"\n (checkedChange)=\"onInputModeChange($event)\"\n ></cds-toggle>\n\n @if (obs.inputModeIsDropdown) {\n <ng-container\n *ngIf=\"\n showDocumentDefinitionSelector && {\n loadingDocumentDefinitionItems: loadingDocumentDefinitionItems$ | async,\n documentDefinitionListItems: documentDefinitionListItems$ | async,\n } as docObs\n \"\n >\n <cds-dropdown\n data-testid=\"value-path-selector-documentDefinition\"\n [appendInline]=\"appendInline\"\n [disabled]=\"\n obs.disabled ||\n docObs.loadingDocumentDefinitionItems ||\n !docObs.documentDefinitionListItems ||\n (docObs.documentDefinitionListItems || []).length === 0\n \"\n (selected)=\"onDocumentDefinitionSelected($event)\"\n [placeholder]=\"'valuePathSelector.selectDocDefPlaceholder' | translate\"\n >\n <cds-dropdown-list [items]=\"docObs.documentDefinitionListItems || []\"></cds-dropdown-list>\n </cds-dropdown>\n </ng-container>\n\n <cds-dropdown\n data-testid=\"value-path-selector-valuePath\"\n [appendInline]=\"appendInline\"\n [disabled]=\"\n obs.disabled ||\n obs.loadingValuePathItems ||\n !obs.valuePathListItems ||\n (obs.valuePathListItems || []).length === 0\n \"\n (selected)=\"onPathSelected($event)\"\n [placeholder]=\"'valuePathSelector.placeholder' | translate\"\n >\n <cds-dropdown-list [items]=\"obs.valuePathListItems || []\"></cds-dropdown-list>\n </cds-dropdown>\n } @else {\n <input\n data-testid=\"value-path-selector-input\"\n cdsText\n type=\"text\"\n formControlName=\"selectedPath\"\n />\n }\n </form>\n</ng-container>\n", styles: [":host{width:100%;display:flex;flex-direction:column}::ng-deep .value-path-selector--margin-bottom{margin-bottom:16px}::ng-deep .value-path-selector--margin-bottom-lg{margin-bottom:24px}::ng-deep .value-path-selector--margin-bottom-xl{margin-bottom:34px}.value-path-selector__form{display:grid;grid-template-columns:110px 1fr;width:100%;align-items:center;gap:16px;justify-content:space-between}.value-path-selector__form--doc-def-selection{grid-template-columns:110px 1fr 1fr}.value-path-selector__form ::ng-deep cds-dropdown{width:100%;min-width:0}.value-path-selector__form ::ng-deep .cds--toggle__label-text{display:none}.value-path-selector__form ::ng-deep .cds--toggle__label{display:flex}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
|
|
237
271
|
}], ctorParameters: () => [{ type: i1.ValuePathSelectorService }, { type: i2.FormBuilder }, { type: i3.DocumentService }], propDecorators: { _showMargin: [{
|
|
238
272
|
type: HostBinding,
|
|
239
273
|
args: ['class.value-path-selector--margin-bottom']
|
|
@@ -276,7 +310,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
276
310
|
type: Input
|
|
277
311
|
}], defaultValue: [{
|
|
278
312
|
type: Input
|
|
313
|
+
}], type: [{
|
|
314
|
+
type: Input
|
|
315
|
+
}], parentItem: [{
|
|
316
|
+
type: Input
|
|
279
317
|
}], valueChangeEvent: [{
|
|
280
318
|
type: Output
|
|
319
|
+
}], collectionSelected: [{
|
|
320
|
+
type: Output
|
|
281
321
|
}] } });
|
|
282
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtcGF0aC1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2NvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3ZhbHVlLXBhdGgtc2VsZWN0b3IvdmFsdWUtcGF0aC1zZWxlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2NvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3ZhbHVlLXBhdGgtc2VsZWN0b3IvdmFsdWUtcGF0aC1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLE1BQU0sRUFDTixHQUFHLEVBRUgsRUFBRSxFQUNGLFNBQVMsRUFDVCxZQUFZLEVBQ1osU0FBUyxFQUNULEdBQUcsR0FDSixNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFDTCwwQkFBMEIsR0FHM0IsTUFBTSx3Q0FBd0MsQ0FBQztBQUNoRCxPQUFPLEVBQ0wsY0FBYyxFQUNkLFdBQVcsRUFFWCxhQUFhLEVBQ2IsWUFBWSxHQUNiLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUlMLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsbUJBQW1CLEdBQ3BCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFDLGVBQWUsRUFBQyxN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LFVBQVU7Z0JBNEJSLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFDYyxNQUFNO3NCQUF6QixLQUFLO2dCQUdjLFFBQVE7c0JBQTNCLEtBQUs7Z0JBR2MsUUFBUTtzQkFBM0IsS0FBSztnQkFHYyxRQUFRO3NCQUEzQixLQUFLO2dCQVNjLHNCQUFzQjtzQkFBekMsS0FBSztnQkFJYyxPQUFPO3NCQUExQixLQUFLO2dCQUljLFFBQVE7c0JBQTNCLEtBQUs7Z0JBSVUsS0FBSztzQkFBcEIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsOEJBQThCO3NCQUE3QyxLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBRWMsWUFBWTtzQkFBL0IsS0FBSztnQkFNSSxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1ZhbHVlUGF0aFNlbGVjdG9yU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBmaWx0ZXIsXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIHN0YXJ0V2l0aCxcbiAgU3Vic2NyaXB0aW9uLFxuICBzd2l0Y2hNYXAsXG4gIHRhcCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBWYWx1ZVBhdGhTZWxlY3RvcklucHV0TW9kZSxcbiAgVmFsdWVQYXRoU2VsZWN0b3JOb3RhdGlvbixcbiAgVmFsdWVQYXRoU2VsZWN0b3JQcmVmaXgsXG59IGZyb20gJy4uLy4uL21vZGVscy92YWx1ZS1wYXRoLXNlbGVjdG9yLm1vZGVsJztcbmltcG9ydCB7XG4gIERyb3Bkb3duTW9kdWxlLFxuICBJbnB1dE1vZHVsZSxcbiAgTGlzdEl0ZW0sXG4gIExvYWRpbmdNb2R1bGUsXG4gIFRvZ2dsZU1vZHVsZSxcbn0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3JtQnVpbGRlcixcbiAgRm9ybUNvbnRyb2wsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0lucHV0TGFiZWxNb2R1bGV9IGZyb20gJy4uL2lucHV0LWxhYmVsL2lucHV0LWxhYmVsLm1vZHVsZSc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0RvY3VtZW50U2VydmljZX0gZnJvbSAnQHZhbHRpbW8vZG9jdW1lbnQnO1xuaW1wb3J0IHtkaXN0aW5jdFVudGlsQ2hhbmdlZH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLXZhbHVlLXBhdGgtc2VsZWN0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vdmFsdWUtcGF0aC1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3ZhbHVlLXBhdGgtc2VsZWN0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBEcm9wZG93bk1vZHVsZSxcbiAgICBMb2FkaW5nTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgVG9nZ2xlTW9kdWxlLFxuICAgIElucHV0TW9kdWxlLFxuICAgIElucHV0TGFiZWxNb2R1bGUsXG4gICAgSW5wdXRMYWJlbE1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBWYWx1ZVBhdGhTZWxlY3RvckNvbXBvbmVudCksXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVmFsdWVQYXRoU2VsZWN0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnZhbHVlLXBhdGgtc2VsZWN0b3ItLW1hcmdpbi1ib3R0b20nKSBwcml2YXRlIF9zaG93TWFyZ2luOiBib29sZWFuID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3MudmFsdWUtcGF0aC1zZWxlY3Rvci0tbWFyZ2luLWJvdHRvbS1sZycpIHByaXZhdGUgX3Nob3dNYXJnaW5MZzogYm9vbGVhbiA9XG4gICAgZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3MudmFsdWUtcGF0aC1zZWxlY3Rvci0tbWFyZ2luLWJvdHRvbS14bCcpIHByaXZhdGUgX3Nob3dNYXJnaW5YbDogYm9vbGVhbiA9XG4gICAgZmFsc2U7XG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JylcbiAgcHVibGljIG9uQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLm9uQmx1ckV2ZW50KCk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgZm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgc2VsZWN0ZWRQYXRoOiBuZXcgRm9ybUNvbnRyb2woJycpLFxuICB9KTtcblxuICBwdWJsaWMgZ2V0IHNlbGVjdGVkUGF0aCgpOiBBYnN0cmFjdENvbnRyb2w8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwLmdldCgnc2VsZWN0ZWRQYXRoJyk7XG4gIH1cblxuICBwcml2YXRlIF9vbkNoYW5nZUZ1bmN0aW9uITogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7XG4gIHByaXZhdGUgX29uVG91Y2hlZEZ1bmN0aW9uITogKCkgPT4gdm9pZDtcblxuICBwdWJsaWMgZ2V0IF9zZWxlY3RlZFBhdGgkKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRQYXRoLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgc3RhcnRXaXRoKHRoaXMuc2VsZWN0ZWRQYXRoLnZhbHVlKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICB0YXAodmFsdWUgPT4ge1xuICAgICAgICBpZiAodGhpcy5fb25DaGFuZ2VGdW5jdGlvbikge1xuICAgICAgICAgIHRoaXMuX29uQ2hhbmdlRnVuY3Rpb24odmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBASW5wdXQoKSBwdWJsaWMgbmFtZSA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgYXBwZW5kSW5saW5lID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgbWFyZ2luKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2hvd01hcmdpbiA9IHZhbHVlO1xuICB9XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgbWFyZ2luTGcodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zaG93TWFyZ2luTGcgPSB2YWx1ZTtcbiAgfVxuICBASW5wdXQoKSBwdWJsaWMgc2V0IG1hcmdpblhsKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2hvd01hcmdpblhsID0gdmFsdWU7XG4gIH1cbiAgQElucHV0KCkgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuZGlzYWJsZWQkLm5leHQoISF2YWx1ZSk7XG5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmRpc2FibGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtR3JvdXAuZW5hYmxlKCk7XG4gICAgfVxuICB9XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgZG9jdW1lbnREZWZpbml0aW9uTmFtZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuICAgIHRoaXMuX2RvY3VtZW50RGVmaW5pdGlvbk5hbWVTdWJqZWN0JC5uZXh0KHZhbHVlKTtcbiAgfVxuICBASW5wdXQoKSBwdWJsaWMgc2V0IHZlcnNpb24odmFsdWU6IG51bWJlcikge1xuICAgIGlmICghdmFsdWUpIHJldHVybjtcbiAgICB0aGlzLl92ZXJzaW9uJC5uZXh0KHZhbHVlKTtcbiAgfVxuICBASW5wdXQoKSBwdWJsaWMgc2V0IHByZWZpeGVzKHZhbHVlOiBWYWx1ZVBhdGhTZWxlY3RvclByZWZpeFtdKSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuICAgIHRoaXMuX3ByZWZpeGVzU3ViamVjdCQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgQElucHV0KCkgcHVibGljIGxhYmVsID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyB0b29sdGlwID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyByZXF1aXJlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgc2hvd0RvY3VtZW50RGVmaW5pdGlvblNlbGVjdG9yID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBub3RhdGlvbjogVmFsdWVQYXRoU2VsZWN0b3JOb3RhdGlvbiA9ICdkb3RzJztcblxuICBASW5wdXQoKSBwdWJsaWMgc2V0IGRlZmF1bHRWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuICAgIHRoaXMuc2VsZWN0ZWRQYXRoLnNldFZhbHVlKHZhbHVlKTtcbiAgICBpZiAodGhpcy5zaG93RG9jdW1lbnREZWZpbml0aW9uU2VsZWN0b3IpXG4gICAgICB0aGlzLl9pbnB1dE1vZGUkLm5leHQoVmFsdWVQYXRoU2VsZWN0b3JJbnB1dE1vZGUuTUFOVUFMKTtcbiAgfVxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2VFdmVudDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZG9jdW1lbnREZWZpbml0aW9uTmFtZVN1YmplY3QkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcbiAgcHJpdmF0ZSBnZXQgX2RvY3VtZW50RGVmaW5pdGlvbk5hbWUkKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuX2RvY3VtZW50RGVmaW5pdGlvbk5hbWVTdWJqZWN0JC5waXBlKGZpbHRlcih2YWx1ZSA9PiAhIXZhbHVlKSk7XG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSBfdmVyc2lvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlciB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9wcmVmaXhlc1N1YmplY3QkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxWYWx1ZVBhdGhTZWxlY3RvclByZWZpeFtdIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgZ2V0IF9wcmVmaXhlcyQoKTogT2JzZXJ2YWJsZTxWYWx1ZVBhdGhTZWxlY3RvclByZWZpeFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuX3ByZWZpeGVzU3ViamVjdCQucGlwZShmaWx0ZXIodmFsdWUgPT4gISF2YWx1ZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfaW5wdXRNb2RlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VmFsdWVQYXRoU2VsZWN0b3JJbnB1dE1vZGU+KFxuICAgIFZhbHVlUGF0aFNlbGVjdG9ySW5wdXRNb2RlLkRST1BET1dOXG4gICk7XG4gIHB1YmxpYyBnZXQgaW5wdXRNb2RlSXNEcm9wZG93biQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0TW9kZSQucGlwZShtYXAobW9kZSA9PiBtb2RlID09PSBWYWx1ZVBhdGhTZWxlY3RvcklucHV0TW9kZS5EUk9QRE9XTikpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IGxvYWRpbmdWYWx1ZVBhdGhJdGVtcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICBwdWJsaWMgcmVhZG9ubHkgZGlzYWJsZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHJpdmF0ZSBfY2FjaGVkT3B0aW9uczogc3RyaW5nW10gPSBbXTtcblxuICBwdWJsaWMgdmFsdWVQYXRoTGlzdEl0ZW1zJDogT2JzZXJ2YWJsZTxMaXN0SXRlbVtdPiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuX2RvY3VtZW50RGVmaW5pdGlvbk5hbWUkLFxuICAgIHRoaXMuX3ByZWZpeGVzJCxcbiAgICB0aGlzLl92ZXJzaW9uJCxcbiAgXSkucGlwZShcbiAgICB0YXAoKCkgPT4gdGhpcy5sb2FkaW5nVmFsdWVQYXRoSXRlbXMkLm5leHQodHJ1ZSkpLFxuICAgIHN3aXRjaE1hcCgoW2RvY3VtZW50RGVmaW5pdGlvbk5hbWUsIHByZWZpeGVzLCB2ZXJzaW9uXSkgPT5cbiAgICAgIHR5cGVvZiB2ZXJzaW9uID09PSAnbnVtYmVyJ1xuICAgICAgICA/IHRoaXMudmFsdWVQYXRoU2VsZWN0b3JTZXJ2aWNlLmdldFJlc29sdmFibGVLZXlzUGVyUHJlZml4KFxuICAgICAgICAgICAgcHJlZml4ZXMsXG4gICAgICAgICAgICBkb2N1bWVudERlZmluaXRpb25OYW1lLFxuICAgICAgICAgICAgdmVyc2lvblxuICAgICAgICAgIClcbiAgICAgICAgOiB0aGlzLnZhbHVlUGF0aFNlbGVjdG9yU2VydmljZS5nZXRSZXNvbHZhYmxlS2V5c1BlclByZWZpeChwcmVmaXhlcywgZG9jdW1lbnREZWZpbml0aW9uTmFtZSlcbiAgICApLFxuICAgIG1hcChyZXN1bHQgPT5cbiAgICAgIHJlc3VsdC5tYXAocGF0aCA9PiB0aGlzLmdldEZvcm1hdHRlZFBhdGgocGF0aCkpLnNvcnQoKGEsIGIpID0+IGEubG9jYWxlQ29tcGFyZShiKSlcbiAgICApLFxuICAgIHRhcChvcHRpb25zID0+ICh0aGlzLl9jYWNoZWRPcHRpb25zID0gb3B0aW9ucykpLFxuICAgIHN3aXRjaE1hcChvcHRpb25zID0+XG4gICAgICBjb21iaW5lTGF0ZXN0KFtvZihvcHRpb25zKSwgdGhpcy5fc2VsZWN0ZWRQYXRoJCwgdGhpcy5pbnB1dE1vZGVJc0Ryb3Bkb3duJF0pXG4gICAgKSxcbiAgICB0YXAoKFtvcHRpb25zLCBzZWxlY3RlZFBhdGgsIGlucHV0TW9kZUlzRHJvcGRvd25dKSA9PiB7XG4gICAgICBpZiAoIW9wdGlvbnMuaW5jbHVkZXMoc2VsZWN0ZWRQYXRoKSAmJiAhIXNlbGVjdGVkUGF0aCAmJiBpbnB1dE1vZGVJc0Ryb3Bkb3duKVxuICAgICAgICB0aGlzLl9pbnB1dE1vZGUkLm5leHQoVmFsdWVQYXRoU2VsZWN0b3JJbnB1dE1vZGUuTUFOVUFMKTtcbiAgICB9KSxcbiAgICBtYXAoKFtvcHRpb25zLCBzZWxlY3RlZFBhdGhdKSA9PlxuICAgICAgb3B0aW9ucy5tYXAob3B0aW9uID0+ICh7Y29udGVudDogb3B0aW9uLCBzZWxlY3RlZDogb3B0aW9uID09PSBzZWxlY3RlZFBhdGh9KSlcbiAgICApLFxuICAgIHRhcCgoKSA9PiB0aGlzLmxvYWRpbmdWYWx1ZVBhdGhJdGVtcyQubmV4dChmYWxzZSkpXG4gICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGxvYWRpbmdEb2N1bWVudERlZmluaXRpb25JdGVtcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuXG4gIHB1YmxpYyByZWFkb25seSBkb2N1bWVudERlZmluaXRpb25MaXN0SXRlbXMkOiBPYnNlcnZhYmxlPExpc3RJdGVtW10+ID1cbiAgICB0aGlzLnZhbHVlUGF0aFNlbGVjdG9yU2VydmljZS5nZXREb2N1bWVudERlZmluaXRpb25DYWNoZSgpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoY2FjaGUgPT5cbiAgICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgY2FjaGUgPyBvZihjYWNoZSkgOiB0aGlzLmRvY3VtZW50U2VydmljZS5nZXRBbGxEZWZpbml0aW9ucygpLFxuICAgICAgICAgIHRoaXMuX2RvY3VtZW50RGVmaW5pdGlvbk5hbWUkLnBpcGUoc3RhcnRXaXRoKG51bGwpKSxcbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICB0YXAoKFtkZWZpbml0aW9uc10pID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZ0RvY3VtZW50RGVmaW5pdGlvbkl0ZW1zJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMudmFsdWVQYXRoU2VsZWN0b3JTZXJ2aWNlLnNldERvY3VtZW50RGVmaW5pdGlvbkNhY2hlKGRlZmluaXRpb25zKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBtYXAoKFtkZWZpbml0aW9ucywgZG9jdW1lbnREZWZpbml0aW9uTmFtZV0pID0+XG4gICAgICAgICAgICBkZWZpbml0aW9ucy5jb250ZW50Lm1hcChkZWZpbml0aW9uID0+ICh7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IGRlZmluaXRpb24uaWQubmFtZSxcbiAgICAgICAgICAgICAgaWQ6IGRlZmluaXRpb24uaWQubmFtZSxcbiAgICAgICAgICAgICAgc2VsZWN0ZWQ6IGRlZmluaXRpb24uaWQubmFtZSA9PT0gZG9jdW1lbnREZWZpbml0aW9uTmFtZSxcbiAgICAgICAgICAgIH0pKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKVxuICAgICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZhbHVlUGF0aFNlbGVjdG9yU2VydmljZTogVmFsdWVQYXRoU2VsZWN0b3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRTZXJ2aWNlOiBEb2N1bWVudFNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuX3NlbGVjdGVkUGF0aCQuc3Vic2NyaWJlKHBhdGggPT4gdGhpcy52YWx1ZUNoYW5nZUV2ZW50LmVtaXQocGF0aCkpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zZWxlY3RlZFBhdGguc2V0VmFsdWUodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fb25DaGFuZ2VGdW5jdGlvbiA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fb25Ub3VjaGVkRnVuY3Rpb24gPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyBvbkJsdXJFdmVudCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX29uVG91Y2hlZEZ1bmN0aW9uKSByZXR1cm47XG5cbiAgICB0aGlzLl9vblRvdWNoZWRGdW5jdGlvbigpO1xuICB9XG5cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5kaXNhYmxlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmVuYWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvblBhdGhTZWxlY3RlZChldmVudDoge2l0ZW06IHtjb250ZW50OiBzdHJpbmd9fSk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdGVkUGF0aCA9IGV2ZW50Py5pdGVtPy5jb250ZW50O1xuICAgIGlmICghc2VsZWN0ZWRQYXRoKSByZXR1cm47XG4gICAgdGhpcy5zZWxlY3RlZFBhdGguc2V0VmFsdWUoc2VsZWN0ZWRQYXRoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkRvY3VtZW50RGVmaW5pdGlvblNlbGVjdGVkKGV2ZW50OiB7aXRlbToge2lkOiBzdHJpbmd9fSk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdGVkRGVmID0gZXZlbnQ/Lml0ZW0/LmlkO1xuICAgIGlmICghc2VsZWN0ZWREZWYpIHJldHVybjtcbiAgICB0aGlzLnNlbGVjdGVkUGF0aC5zZXRWYWx1ZSgnJyk7XG4gICAgdGhpcy5fZG9jdW1lbnREZWZpbml0aW9uTmFtZVN1YmplY3QkLm5leHQoc2VsZWN0ZWREZWYpO1xuICB9XG5cbiAgcHVibGljIG9uSW5wdXRNb2RlQ2hhbmdlKHRvRHJvcGRvd25Nb2RlOiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFBhdGhWYWx1ZSA9IHRoaXMuc2VsZWN0ZWRQYXRoLnZhbHVlO1xuXG4gICAgaWYgKHRvRHJvcGRvd25Nb2RlICYmICF0aGlzLl9jYWNoZWRPcHRpb25zLmluY2x1ZGVzKGN1cnJlbnRQYXRoVmFsdWUpKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkUGF0aC5zZXRWYWx1ZSgnJyk7XG4gICAgfVxuXG4gICAgdGhpcy5faW5wdXRNb2RlJC5uZXh0KFxuICAgICAgdG9Ecm9wZG93bk1vZGUgPyBWYWx1ZVBhdGhTZWxlY3RvcklucHV0TW9kZS5EUk9QRE9XTiA6IFZhbHVlUGF0aFNlbGVjdG9ySW5wdXRNb2RlLk1BTlVBTFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldEZvcm1hdHRlZFBhdGgodW5mb3JtYXR0ZWRQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNwbGl0UGF0aFByZWZpeCA9IHVuZm9ybWF0dGVkUGF0aC5zcGxpdCgnOicpO1xuICAgIGNvbnN0IHByZWZpeCA9IHNwbGl0UGF0aFByZWZpeFswXTtcbiAgICBjb25zdCByZW1haW5pbmdQYXRoID0gc3BsaXRQYXRoUHJlZml4WzFdO1xuICAgIGNvbnN0IHJlcXVpcmVkTm90YXRpb24gPSB0aGlzLm5vdGF0aW9uO1xuICAgIGNvbnN0IHBhdGhOb3RhdGlvbjogVmFsdWVQYXRoU2VsZWN0b3JOb3RhdGlvbiA9IHJlbWFpbmluZ1BhdGguaW5jbHVkZXMoJy8nKVxuICAgICAgPyAnc2xhc2hlcydcbiAgICAgIDogJ2RvdHMnO1xuICAgIGNvbnN0IHNwbGl0UGF0aCA9IHJlbWFpbmluZ1BhdGhcbiAgICAgIC5zcGxpdChwYXRoTm90YXRpb24gPT09ICdzbGFzaGVzJyA/ICcvJyA6ICcuJylcbiAgICAgIC5maWx0ZXIocGF0aFBhcnQgPT4gcGF0aFBhcnQgIT09ICcvJyAmJiBwYXRoUGFydCAhPT0gJy4nKVxuICAgICAgLmZpbHRlcihwYXRoUGFydCA9PiAhIXBhdGhQYXJ0KVxuICAgICAgLm1hcChwYXRoUGFydCA9PiBwYXRoUGFydC5yZXBsYWNlKCcvJywgJycpLnJlcGxhY2UoJy4nLCAnJykpO1xuICAgIGNvbnN0IGZvcm1hdHRlZFBhdGggPSBzcGxpdFBhdGgucmVkdWNlKFxuICAgICAgKGFjYywgcGF0aFBhcnQpID0+IGAke2FjY30ke3JlcXVpcmVkTm90YXRpb24gPT09ICdzbGFzaGVzJyA/ICcvJyA6ICcuJ30ke3BhdGhQYXJ0fWAsXG4gICAgICAnJ1xuICAgICk7XG5cbiAgICByZXR1cm4gYCR7cHJlZml4fToke3JlcXVpcmVkTm90YXRpb24gPT09ICdkb3RzJyA/IGZvcm1hdHRlZFBhdGguc3Vic3RyaW5nKDEpIDogZm9ybWF0dGVkUGF0aH1gO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxuZy1jb250YWluZXJcbiAgKm5nSWY9XCJ7XG4gICAgaW5wdXRNb2RlSXNEcm9wZG93bjogaW5wdXRNb2RlSXNEcm9wZG93biQgfCBhc3luYyxcbiAgICB2YWx1ZVBhdGhMaXN0SXRlbXM6IHZhbHVlUGF0aExpc3RJdGVtcyQgfCBhc3luYyxcbiAgICBsb2FkaW5nVmFsdWVQYXRoSXRlbXM6IGxvYWRpbmdWYWx1ZVBhdGhJdGVtcyQgfCBhc3luYyxcbiAgICBkaXNhYmxlZDogZGlzYWJsZWQkIHwgYXN5bmMsXG4gIH0gYXMgb2JzXCJcbj5cbiAgPHYtaW5wdXQtbGFiZWwgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIgW3RpdGxlXT1cImxhYmVsXCIgW3Rvb2x0aXBdPVwidG9vbHRpcFwiPiA8L3YtaW5wdXQtbGFiZWw+XG5cbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiBjbGFzcz1cInZhbHVlLXBhdGgtc2VsZWN0b3JfX2Zvcm1cIj5cbiAgICBAaWYgKG9icy5pbnB1dE1vZGVJc0Ryb3Bkb3duKSB7XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgc2hvd0RvY3VtZW50RGVmaW5pdGlvblNlbGVjdG9yICYmIHtcbiAgICAgICAgICAgIGxvYWRpbmdEb2N1bWVudERlZmluaXRpb25JdGVtczogbG9hZGluZ0RvY3VtZW50RGVmaW5pdGlvbkl0ZW1zJCB8IGFzeW5jLFxuICAgICAgICAgICAgZG9jdW1lbnREZWZpbml0aW9uTGlzdEl0ZW1zOiBkb2N1bWVudERlZmluaXRpb25MaXN0SXRlbXMkIHwgYXN5bmMsXG4gICAgICAgICAgfSBhcyBkb2NPYnNcbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgICAgPGNkcy1kcm9wZG93blxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwidmFsdWUtcGF0aC1zZWxlY3Rvci1kb2N1bWVudERlZmluaXRpb25cIlxuICAgICAgICAgIFthcHBlbmRJbmxpbmVdPVwiYXBwZW5kSW5saW5lXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiXG4gICAgICAgICAgICBvYnMuZGlzYWJsZWQgfHxcbiAgICAgICAgICAgIGRvY09icy5sb2FkaW5nRG9jdW1lbnREZWZpbml0aW9uSXRlbXMgfHxcbiAgICAgICAgICAgICFkb2NPYnMuZG9jdW1lbnREZWZpbml0aW9uTGlzdEl0ZW1zXG4gICAgICAgICAgXCJcbiAgICAgICAgICAoc2VsZWN0ZWQpPVwib25Eb2N1bWVudERlZmluaXRpb25TZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ3ZhbHVlUGF0aFNlbGVjdG9yLnNlbGVjdERvY0RlZlBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8Y2RzLWRyb3Bkb3duLWxpc3QgW2l0ZW1zXT1cImRvY09icy5kb2N1bWVudERlZmluaXRpb25MaXN0SXRlbXMgfHwgW11cIj48L2Nkcy1kcm9wZG93bi1saXN0PlxuICAgICAgICA8L2Nkcy1kcm9wZG93bj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8Y2RzLWRyb3Bkb3duXG4gICAgICAgIGRhdGEtdGVzdGlkPVwidmFsdWUtcGF0aC1zZWxlY3Rvci12YWx1ZVBhdGhcIlxuICAgICAgICBbYXBwZW5kSW5saW5lXT1cImFwcGVuZElubGluZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJvYnMuZGlzYWJsZWQgfHwgb2JzLmxvYWRpbmdWYWx1ZVBhdGhJdGVtcyB8fCAhb2JzLnZhbHVlUGF0aExpc3RJdGVtc1wiXG4gICAgICAgIChzZWxlY3RlZCk9XCJvblBhdGhTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIid2YWx1ZVBhdGhTZWxlY3Rvci5wbGFjZWhvbGRlcicgfCB0cmFuc2xhdGVcIlxuICAgICAgPlxuICAgICAgICA8Y2RzLWRyb3Bkb3duLWxpc3QgW2l0ZW1zXT1cIm9icy52YWx1ZVBhdGhMaXN0SXRlbXMgfHwgW11cIj48L2Nkcy1kcm9wZG93bi1saXN0PlxuICAgICAgPC9jZHMtZHJvcGRvd24+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8aW5wdXRcbiAgICAgICAgZGF0YS10ZXN0aWQ9XCJ2YWx1ZS1wYXRoLXNlbGVjdG9yLWlucHV0XCJcbiAgICAgICAgY2RzVGV4dFxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNlbGVjdGVkUGF0aFwiXG4gICAgICAvPlxuICAgIH1cblxuICAgIDxjZHMtdG9nZ2xlXG4gICAgICBkYXRhLXRlc3RpZD1cInZhbHVlLXBhdGgtc2VsZWN0b3ItdG9nZ2xlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJvYnMuZGlzYWJsZWRcIlxuICAgICAgW29uVGV4dF09XCIndmFsdWVQYXRoU2VsZWN0b3IuZHJvcGRvd24nIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtvZmZUZXh0XT1cIid2YWx1ZVBhdGhTZWxlY3Rvci5tYW51YWwnIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtjaGVja2VkXT1cIm9icy5pbnB1dE1vZGVJc0Ryb3Bkb3duXCJcbiAgICAgIChjaGVja2VkQ2hhbmdlKT1cIm9uSW5wdXRNb2RlQ2hhbmdlKCRldmVudClcIlxuICAgID48L2Nkcy10b2dnbGU+XG4gIDwvZm9ybT5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
322
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtcGF0aC1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2NvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3ZhbHVlLXBhdGgtc2VsZWN0b3IvdmFsdWUtcGF0aC1zZWxlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2NvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3ZhbHVlLXBhdGgtc2VsZWN0b3IvdmFsdWUtcGF0aC1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFJTCxXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLG1CQUFtQixHQUNwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVwRCxPQUFPLEVBQ0wsY0FBYyxFQUNkLFdBQVcsRUFFWCxhQUFhLEVBQ2IsWUFBWSxHQUNiLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2IsTUFBTSxFQUNOLEdBQUcsRUFFSCxFQUFFLEVBQ0YsU0FBUyxFQUNULFlBQVksRUFDWixTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFnQixhQUFhLEVBQUMsTUFB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LCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgRm9ybUJ1aWxkZXIsXG4gIEZvcm1Db250cm9sLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtEb2N1bWVudFNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2RvY3VtZW50JztcbmltcG9ydCB7XG4gIERyb3Bkb3duTW9kdWxlLFxuICBJbnB1dE1vZHVsZSxcbiAgTGlzdEl0ZW0sXG4gIExvYWRpbmdNb2R1bGUsXG4gIFRvZ2dsZU1vZHVsZSxcbn0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGZpbHRlcixcbiAgbWFwLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgc3RhcnRXaXRoLFxuICBTdWJzY3JpcHRpb24sXG4gIHN3aXRjaE1hcCxcbiAgdGFwLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZGlzdGluY3RVbnRpbENoYW5nZWR9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7VmFsdWVQYXRoSXRlbSwgVmFsdWVQYXRoVHlwZX0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7XG4gIFZhbHVlUGF0aFNlbGVjdG9ySW5wdXRNb2RlLFxuICBWYWx1ZVBhdGhTZWxlY3Rvck5vdGF0aW9uLFxuICBWYWx1ZVBhdGhTZWxlY3RvclByZWZpeCxcbn0gZnJvbSAnLi4vLi4vbW9kZWxzL3ZhbHVlLXBhdGgtc2VsZWN0b3IubW9kZWwnO1xuaW1wb3J0IHtWYWx1ZVBhdGhTZWxlY3RvclNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7SW5wdXRMYWJlbE1vZHVsZX0gZnJvbSAnLi4vaW5wdXQtbGFiZWwvaW5wdXQtbGFiZWwubW9kdWxlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby12YWx1ZS1wYXRoLXNlbGVjdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ZhbHVlLXBhdGgtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi92YWx1ZS1wYXRoLXNlbGVjdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRHJvcGRvd25Nb2R1bGUsXG4gICAgTG9hZGluZ01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFRvZ2dsZU1vZHVsZSxcbiAgICBJbnB1dE1vZHVsZSxcbiAgICBJbnB1dExhYmVsTW9kdWxlLFxuICAgIElucHV0TGFiZWxNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVmFsdWVQYXRoU2VsZWN0b3JDb21wb25lbnQpLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFZhbHVlUGF0aFNlbGVjdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy52YWx1ZS1wYXRoLXNlbGVjdG9yLS1tYXJnaW4tYm90dG9tJykgcHJpdmF0ZSBfc2hvd01hcmdpbjogYm9vbGVhbiA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnZhbHVlLXBhdGgtc2VsZWN0b3ItLW1hcmdpbi1ib3R0b20tbGcnKSBwcml2YXRlIF9zaG93TWFyZ2luTGc6IGJvb2xlYW4gPVxuICAgIGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnZhbHVlLXBhdGgtc2VsZWN0b3ItLW1hcmdpbi1ib3R0b20teGwnKSBwcml2YXRlIF9zaG93TWFyZ2luWGw6IGJvb2xlYW4gPVxuICAgIGZhbHNlO1xuICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcpXG4gIHB1YmxpYyBvbkJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5vbkJsdXJFdmVudCgpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IGZvcm1Hcm91cCA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgIHNlbGVjdGVkUGF0aDogbmV3IEZvcm1Db250cm9sKCcnKSxcbiAgfSk7XG5cbiAgcHVibGljIGdldCBzZWxlY3RlZFBhdGgoKTogQWJzdHJhY3RDb250cm9sPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmZvcm1Hcm91cC5nZXQoJ3NlbGVjdGVkUGF0aCcpO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25DaGFuZ2VGdW5jdGlvbiE6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xuICBwcml2YXRlIF9vblRvdWNoZWRGdW5jdGlvbiE6ICgpID0+IHZvaWQ7XG5cbiAgcHVibGljIGdldCBfc2VsZWN0ZWRQYXRoJCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkUGF0aC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIHN0YXJ0V2l0aCh0aGlzLnNlbGVjdGVkUGF0aC52YWx1ZSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgdGFwKHZhbHVlID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX29uQ2hhbmdlRnVuY3Rpb24pIHtcbiAgICAgICAgICB0aGlzLl9vbkNoYW5nZUZ1bmN0aW9uKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgQElucHV0KCkgcHVibGljIG5hbWUgPSAnJztcbiAgQElucHV0KCkgcHVibGljIGFwcGVuZElubGluZSA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IG1hcmdpbih2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3Nob3dNYXJnaW4gPSB2YWx1ZTtcbiAgfVxuICBASW5wdXQoKSBwdWJsaWMgc2V0IG1hcmdpbkxnKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2hvd01hcmdpbkxnID0gdmFsdWU7XG4gIH1cbiAgQElucHV0KCkgcHVibGljIHNldCBtYXJnaW5YbCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3Nob3dNYXJnaW5YbCA9IHZhbHVlO1xuICB9XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRpc2FibGVkJC5uZXh0KCEhdmFsdWUpO1xuXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5kaXNhYmxlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmVuYWJsZSgpO1xuICAgIH1cbiAgfVxuICBASW5wdXQoKSBwdWJsaWMgc2V0IGRvY3VtZW50RGVmaW5pdGlvbk5hbWUodmFsdWU6IHN0cmluZykge1xuICAgIGlmICghdmFsdWUpIHJldHVybjtcbiAgICB0aGlzLl9kb2N1bWVudERlZmluaXRpb25OYW1lU3ViamVjdCQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgQElucHV0KCkgcHVibGljIHNldCB2ZXJzaW9uKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm47XG4gICAgdGhpcy5fdmVyc2lvbiQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgQElucHV0KCkgcHVibGljIHNldCBwcmVmaXhlcyh2YWx1ZTogVmFsdWVQYXRoU2VsZWN0b3JQcmVmaXhbXSkge1xuICAgIGlmICghdmFsdWUpIHJldHVybjtcbiAgICB0aGlzLl9wcmVmaXhlc1N1YmplY3QkLm5leHQodmFsdWUpO1xuICB9XG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbCA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgdG9vbHRpcCA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgcmVxdWlyZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIHNob3dEb2N1bWVudERlZmluaXRpb25TZWxlY3RvciA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgbm90YXRpb246IFZhbHVlUGF0aFNlbGVjdG9yTm90YXRpb24gPSAnZG90cyc7XG5cbiAgQElucHV0KCkgcHVibGljIHNldCBkZWZhdWx0VmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIGlmICghdmFsdWUpIHJldHVybjtcbiAgICB0aGlzLnNlbGVjdGVkUGF0aC5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgaWYgKHRoaXMuc2hvd0RvY3VtZW50RGVmaW5pdGlvblNlbGVjdG9yKVxuICAgICAgdGhpcy5faW5wdXRNb2RlJC5uZXh0KFZhbHVlUGF0aFNlbGVjdG9ySW5wdXRNb2RlLk1BTlVBTCk7XG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSBfdHlwZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFZhbHVlUGF0aFR5cGU+KFZhbHVlUGF0aFR5cGUuRklFTEQpO1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IHR5cGUodmFsdWU6IFZhbHVlUGF0aFR5cGUpIHtcbiAgICB0aGlzLl90eXBlJC5uZXh0KHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIHJlYWRvbmx5IF9wYXJlbnRJdGVtJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VmFsdWVQYXRoSXRlbSB8IG51bGw+KG51bGwpO1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IHBhcmVudEl0ZW0odmFsdWU6IFZhbHVlUGF0aEl0ZW0gfCBudWxsKSB7XG4gICAgdGhpcy5fcGFyZW50SXRlbSQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlRXZlbnQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgY29sbGVjdGlvblNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8VmFsdWVQYXRoSXRlbT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZG9jdW1lbnREZWZpbml0aW9uTmFtZVN1YmplY3QkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcbiAgcHJpdmF0ZSBnZXQgX2RvY3VtZW50RGVmaW5pdGlvbk5hbWUkKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuX2RvY3VtZW50RGVmaW5pdGlvbk5hbWVTdWJqZWN0JC5waXBlKGZpbHRlcih2YWx1ZSA9PiAhIXZhbHVlKSk7XG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSBfdmVyc2lvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlciB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9wcmVmaXhlc1N1YmplY3QkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxWYWx1ZVBhdGhTZWxlY3RvclByZWZpeFtdIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgZ2V0IF9wcmVmaXhlcyQoKTogT2JzZXJ2YWJsZTxWYWx1ZVBhdGhTZWxlY3RvclByZWZpeFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuX3ByZWZpeGVzU3ViamVjdCQucGlwZShmaWx0ZXIodmFsdWUgPT4gISF2YWx1ZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfaW5wdXRNb2RlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VmFsdWVQYXRoU2VsZWN0b3JJbnB1dE1vZGU+KFxuICAgIFZhbHVlUGF0aFNlbGVjdG9ySW5wdXRNb2RlLkRST1BET1dOXG4gICk7XG4gIHB1YmxpYyBpbnB1dE1vZGVJc0Ryb3Bkb3duJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuX2lucHV0TW9kZSQucGlwZShcbiAgICBtYXAobW9kZSA9PiB7XG4gICAgICByZXR1cm4gbW9kZSA9PT0gVmFsdWVQYXRoU2VsZWN0b3JJbnB1dE1vZGUuRFJPUERPV047XG4gICAgfSlcbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgbG9hZGluZ1ZhbHVlUGF0aEl0ZW1zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIHB1YmxpYyByZWFkb25seSBkaXNhYmxlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBwcml2YXRlIF9jYWNoZWRPcHRpb25zOiAoVmFsdWVQYXRoSXRlbSAmIHtmb3JtYXR0ZWRQYXRoOiBzdHJpbmd9KVtdID0gW107XG5cbiAgcHVibGljIHZhbHVlUGF0aExpc3RJdGVtcyQ6IE9ic2VydmFibGU8TGlzdEl0ZW1bXT4gPSB0aGlzLl9wYXJlbnRJdGVtJC5waXBlKFxuICAgIHRhcCgoKSA9PiB0aGlzLmxvYWRpbmdWYWx1ZVBhdGhJdGVtcyQubmV4dCh0cnVlKSksXG4gICAgc3dpdGNoTWFwKChwYXJlbnRJdGVtOiBWYWx1ZVBhdGhJdGVtIHwgbnVsbCkgPT5cbiAgICAgIHBhcmVudEl0ZW1cbiAgICAgICAgPyBvZihwYXJlbnRJdGVtLmNoaWxkcmVuPy5tYXAoKGNoaWxkOiBzdHJpbmcpID0+ICh7cGF0aDogY2hpbGR9KSkgPz8gW10pXG4gICAgICAgIDogY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLl9kb2N1bWVudERlZmluaXRpb25OYW1lJCxcbiAgICAgICAgICAgIHRoaXMuX3ByZWZpeGVzJCxcbiAgICAgICAgICAgIHRoaXMuX3R5cGUkLFxuICAgICAgICAgICAgdGhpcy5fdmVyc2lvbiQsXG4gICAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoW2RvY3VtZW50RGVmaW5pdGlvbk5hbWUsIHByZWZpeGVzLCB0eXBlLCB2ZXJzaW9uXSkgPT5cbiAgICAgICAgICAgICAgdHlwZW9mIHZlcnNpb24gPT09ICdudW1iZXInXG4gICAgICAgICAgICAgICAgPyB0aGlzLnZhbHVlUGF0aFNlbGVjdG9yU2VydmljZS5nZXRSZXNvbHZhYmxlS2V5cyhcbiAgICAgICAgICAgICAgICAgICAgcHJlZml4ZXMsXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50RGVmaW5pdGlvbk5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb25cbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICA6IHRoaXMudmFsdWVQYXRoU2VsZWN0b3JTZXJ2aWNlLmdldFJlc29sdmFibGVLZXlzKFxuICAgICAgICAgICAgICAgICAgICBwcmVmaXhlcyxcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnREZWZpbml0aW9uTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICApLFxuICAgIG1hcCgocmVzdWx0czogVmFsdWVQYXRoSXRlbVtdKSA9PlxuICAgICAgcmVzdWx0c1xuICAgICAgICAubWFwKChyZXN1bHQ6IFZhbHVlUGF0aEl0ZW0pID0+ICh7XG4gICAgICAgICAgLi4ucmVzdWx0LFxuICAgICAgICAgIGZvcm1hdHRlZFBhdGg6ICF0aGlzLl9wYXJlbnRJdGVtJC5nZXRWYWx1ZSgpXG4gICAgICAgICAgICA/IHRoaXMuZ2V0Rm9ybWF0dGVkUGF0aChyZXN1bHQucGF0aClcbiAgICAgICAgICAgIDogcmVzdWx0LnBhdGgsXG4gICAgICAgIH0pKVxuICAgICAgICAuc29ydCgoYSwgYikgPT4gYS5mb3JtYXR0ZWRQYXRoLmxvY2FsZUNvbXBhcmUoYi5mb3JtYXR0ZWRQYXRoKSlcbiAgICApLFxuICAgIHRhcChvcHRpb25zID0+ICh0aGlzLl9jYWNoZWRPcHRpb25zID0gb3B0aW9ucykpLFxuICAgIHN3aXRjaE1hcChvcHRpb25zID0+XG4gICAgICBjb21iaW5lTGF0ZXN0KFtvZihvcHRpb25zKSwgdGhpcy5fc2VsZWN0ZWRQYXRoJCwgdGhpcy5pbnB1dE1vZGVJc0Ryb3Bkb3duJF0pXG4gICAgKSxcbiAgICB0YXAoKFtvcHRpb25zLCBzZWxlY3RlZFBhdGgsIGlucHV0TW9kZUlzRHJvcGRvd25dKSA9PiB7XG4gICAgICBjb25zdCBmb3JtYXR0ZWRPcHRpb25zID0gb3B0aW9ucy5tYXAob3B0aW9uID0+IG9wdGlvbi5mb3JtYXR0ZWRQYXRoKTtcbiAgICAgIGlmICghZm9ybWF0dGVkT3B0aW9ucy5pbmNsdWRlcyhzZWxlY3RlZFBhdGgpICYmICEhc2VsZWN0ZWRQYXRoICYmIGlucHV0TW9kZUlzRHJvcGRvd24pXG4gICAgICAgIHRoaXMuX2lucHV0TW9kZSQubmV4dChWYWx1ZVBhdGhTZWxlY3RvcklucHV0TW9kZS5NQU5VQUwpO1xuICAgIH0pLFxuICAgIG1hcCgoW29wdGlvbnMsIHNlbGVjdGVkUGF0aF0pID0+XG4gICAgICBvcHRpb25zLm1hcChvcHRpb24gPT4ge1xuICAgICAgICBjb25zdCBtYXBwZWRPcHRpb24gPSB7XG4gICAgICAgICAgY29udGVudDogb3B0aW9uLmZvcm1hdHRlZFBhdGgsXG4gICAgICAgICAgc2VsZWN0ZWQ6IG9wdGlvbi5mb3JtYXR0ZWRQYXRoID09PSBzZWxlY3RlZFBhdGgsXG4gICAgICAgICAgcGF0aDogb3B0aW9uLnBhdGgsXG4gICAgICAgICAgLi4uKCEhb3B0aW9uLmNoaWxkcmVuICYmIHtjaGlsZHJlbjogb3B0aW9uLmNoaWxkcmVufSksXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKG1hcHBlZE9wdGlvbi5zZWxlY3RlZCkgdGhpcy5vblBhdGhTZWxlY3RlZCh7aXRlbTogbWFwcGVkT3B0aW9ufSk7XG4gICAgICAgIHJldHVybiBtYXBwZWRPcHRpb247XG4gICAgICB9KVxuICAgICksXG4gICAgdGFwKCgpID0+IHRoaXMubG9hZGluZ1ZhbHVlUGF0aEl0ZW1zJC5uZXh0KGZhbHNlKSlcbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgbG9hZGluZ0RvY3VtZW50RGVmaW5pdGlvbkl0ZW1zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGRvY3VtZW50RGVmaW5pdGlvbkxpc3RJdGVtcyQ6IE9ic2VydmFibGU8TGlzdEl0ZW1bXT4gPVxuICAgIHRoaXMudmFsdWVQYXRoU2VsZWN0b3JTZXJ2aWNlLmdldERvY3VtZW50RGVmaW5pdGlvbkNhY2hlKCkucGlwZShcbiAgICAgIHN3aXRjaE1hcChjYWNoZSA9PlxuICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICBjYWNoZSA/IG9mKGNhY2hlKSA6IHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmdldEFsbERlZmluaXRpb25zKCksXG4gICAgICAgICAgdGhpcy5fZG9jdW1lbnREZWZpbml0aW9uTmFtZSQucGlwZShzdGFydFdpdGgobnVsbCkpLFxuICAgICAgICBdKS5waXBlKFxuICAgICAgICAgIHRhcCgoW2RlZmluaXRpb25zXSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nRG9jdW1lbnREZWZpbml0aW9uSXRlbXMkLm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgdGhpcy52YWx1ZVBhdGhTZWxlY3RvclNlcnZpY2Uuc2V0RG9jdW1lbnREZWZpbml0aW9uQ2FjaGUoZGVmaW5pdGlvbnMpO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIG1hcCgoW2RlZmluaXRpb25zLCBkb2N1bWVudERlZmluaXRpb25OYW1lXSkgPT5cbiAgICAgICAgICAgIGRlZmluaXRpb25zLmNvbnRlbnQubWFwKGRlZmluaXRpb24gPT4gKHtcbiAgICAgICAgICAgICAgY29udGVudDogZGVmaW5pdGlvbi5pZC5uYW1lLFxuICAgICAgICAgICAgICBpZDogZGVmaW5pdGlvbi5pZC5uYW1lLFxuICAgICAgICAgICAgICBzZWxlY3RlZDogZGVmaW5pdGlvbi5pZC5uYW1lID09PSBkb2N1bWVudERlZmluaXRpb25OYW1lLFxuICAgICAgICAgICAgfSkpXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdmFsdWVQYXRoU2VsZWN0b3JTZXJ2aWNlOiBWYWx1ZVBhdGhTZWxlY3RvclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudFNlcnZpY2U6IERvY3VtZW50U2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5fc2VsZWN0ZWRQYXRoJC5zdWJzY3JpYmUocGF0aCA9PiB0aGlzLnZhbHVlQ2hhbmdlRXZlbnQuZW1pdChwYXRoKSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlbGVjdGVkUGF0aC5zZXRWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkNoYW5nZUZ1bmN0aW9uID0gZm47XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vblRvdWNoZWRGdW5jdGlvbiA9IGZuO1xuICB9XG5cbiAgcHVibGljIG9uQmx1ckV2ZW50KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fb25Ub3VjaGVkRnVuY3Rpb24pIHJldHVybjtcblxuICAgIHRoaXMuX29uVG91Y2hlZEZ1bmN0aW9uKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmRpc2FibGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtR3JvdXAuZW5hYmxlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uUGF0aFNlbGVjdGVkKGV2ZW50OiB7aXRlbToge2NvbnRlbnQ6IHN0cmluZ30gJiBWYWx1ZVBhdGhJdGVtfSk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdGVkUGF0aCA9IGV2ZW50Py5pdGVtPy5jb250ZW50O1xuICAgIGlmICghc2VsZWN0ZWRQYXRoKSByZXR1cm47XG5cbiAgICBpZiAodGhpcy5jb2xsZWN0aW9uU2VsZWN0ZWQub2JzZXJ2ZWQpIHRoaXMuY29sbGVjdGlvblNlbGVjdGVkLmVtaXQoZXZlbnQuaXRlbSk7XG5cbiAgICB0aGlzLnNlbGVjdGVkUGF0aC5zZXRWYWx1ZShzZWxlY3RlZFBhdGgpO1xuICB9XG5cbiAgcHVibGljIG9uRG9jdW1lbnREZWZpbml0aW9uU2VsZWN0ZWQoZXZlbnQ6IHtpdGVtOiB7aWQ6IHN0cmluZ319KTogdm9pZCB7XG4gICAgY29uc3Qgc2VsZWN0ZWREZWYgPSBldmVudD8uaXRlbT8uaWQ7XG4gICAgaWYgKCFzZWxlY3RlZERlZikgcmV0dXJuO1xuICAgIHRoaXMuc2VsZWN0ZWRQYXRoLnNldFZhbHVlKCcnKTtcbiAgICB0aGlzLl9kb2N1bWVudERlZmluaXRpb25OYW1lU3ViamVjdCQubmV4dChzZWxlY3RlZERlZik7XG4gIH1cblxuICBwdWJsaWMgb25JbnB1dE1vZGVDaGFuZ2UodG9Ecm9wZG93bk1vZGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50UGF0aFZhbHVlID0gdGhpcy5zZWxlY3RlZFBhdGgudmFsdWU7XG5cbiAgICBpZiAoXG4gICAgICB0b0Ryb3Bkb3duTW9kZSAmJlxuICAgICAgIXRoaXMuX2NhY2hlZE9wdGlvbnMubWFwKG9wdGlvbiA9PiBvcHRpb24uZm9ybWF0dGVkUGF0aCkuaW5jbHVkZXMoY3VycmVudFBhdGhWYWx1ZSlcbiAgICApIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRQYXRoLnNldFZhbHVlKCcnKTtcbiAgICB9XG5cbiAgICB0aGlzLl9pbnB1dE1vZGUkLm5leHQoXG4gICAgICB0b0Ryb3Bkb3duTW9kZSA/IFZhbHVlUGF0aFNlbGVjdG9ySW5wdXRNb2RlLkRST1BET1dOIDogVmFsdWVQYXRoU2VsZWN0b3JJbnB1dE1vZGUuTUFOVUFMXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Rm9ybWF0dGVkUGF0aCh1bmZvcm1hdHRlZFBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3Qgc3BsaXRQYXRoUHJlZml4ID0gdW5mb3JtYXR0ZWRQYXRoLnNwbGl0KCc6Jyk7XG4gICAgY29uc3QgcHJlZml4ID0gc3BsaXRQYXRoUHJlZml4WzBdO1xuICAgIGNvbnN0IHJlbWFpbmluZ1BhdGggPSBzcGxpdFBhdGhQcmVmaXhbMV07XG4gICAgY29uc3QgcmVxdWlyZWROb3RhdGlvbiA9IHRoaXMubm90YXRpb247XG4gICAgY29uc3QgcGF0aE5vdGF0aW9uOiBWYWx1ZVBhdGhTZWxlY3Rvck5vdGF0aW9uID0gcmVtYWluaW5nUGF0aC5pbmNsdWRlcygnLycpXG4gICAgICA/ICdzbGFzaGVzJ1xuICAgICAgOiAnZG90cyc7XG4gICAgY29uc3Qgc3BsaXRQYXRoID0gcmVtYWluaW5nUGF0aFxuICAgICAgLnNwbGl0KHBhdGhOb3RhdGlvbiA9PT0gJ3NsYXNoZXMnID8gJy8nIDogJy4nKVxuICAgICAgLmZpbHRlcihwYXRoUGFydCA9PiBwYXRoUGFydCAhPT0gJy8nICYmIHBhdGhQYXJ0ICE9PSAnLicpXG4gICAgICAuZmlsdGVyKHBhdGhQYXJ0ID0+ICEhcGF0aFBhcnQpXG4gICAgICAubWFwKHBhdGhQYXJ0ID0+IHBhdGhQYXJ0LnJlcGxhY2UoJy8nLCAnJykucmVwbGFjZSgnLicsICcnKSk7XG4gICAgY29uc3QgZm9ybWF0dGVkUGF0aCA9IHNwbGl0UGF0aC5yZWR1Y2UoXG4gICAgICAoYWNjLCBwYXRoUGFydCkgPT4gYCR7YWNjfSR7cmVxdWlyZWROb3RhdGlvbiA9PT0gJ3NsYXNoZXMnID8gJy8nIDogJy4nfSR7cGF0aFBhcnR9YCxcbiAgICAgICcnXG4gICAgKTtcblxuICAgIHJldHVybiBgJHtwcmVmaXh9OiR7cmVxdWlyZWROb3RhdGlvbiA9PT0gJ2RvdHMnID8gZm9ybWF0dGVkUGF0aC5zdWJzdHJpbmcoMSkgOiBmb3JtYXR0ZWRQYXRofWA7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPG5nLWNvbnRhaW5lclxuICAqbmdJZj1cIntcbiAgICBpbnB1dE1vZGVJc0Ryb3Bkb3duOiBpbnB1dE1vZGVJc0Ryb3Bkb3duJCB8IGFzeW5jLFxuICAgIHZhbHVlUGF0aExpc3RJdGVtczogdmFsdWVQYXRoTGlzdEl0ZW1zJCB8IGFzeW5jLFxuICAgIGxvYWRpbmdWYWx1ZVBhdGhJdGVtczogbG9hZGluZ1ZhbHVlUGF0aEl0ZW1zJCB8IGFzeW5jLFxuICAgIGRpc2FibGVkOiBkaXNhYmxlZCQgfCBhc3luYyxcbiAgfSBhcyBvYnNcIlxuPlxuICA8di1pbnB1dC1sYWJlbCBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIiBbdGl0bGVdPVwibGFiZWxcIiBbdG9vbHRpcF09XCJ0b29sdGlwXCI+IDwvdi1pbnB1dC1sYWJlbD5cblxuICA8Zm9ybVxuICAgIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCJcbiAgICBjbGFzcz1cInZhbHVlLXBhdGgtc2VsZWN0b3JfX2Zvcm1cIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICd2YWx1ZS1wYXRoLXNlbGVjdG9yX19mb3JtLS1kb2MtZGVmLXNlbGVjdGlvbic6XG4gICAgICAgIHNob3dEb2N1bWVudERlZmluaXRpb25TZWxlY3RvciAmJiBvYnMuaW5wdXRNb2RlSXNEcm9wZG93bixcbiAgICB9XCJcbiAgPlxuICAgIDxjZHMtdG9nZ2xlXG4gICAgICBkYXRhLXRlc3RpZD1cInZhbHVlLXBhdGgtc2VsZWN0b3ItdG9nZ2xlXCJcbiAgICAgIHNpemU9XCJzbVwiXG4gICAgICBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCJcbiAgICAgIFtvblRleHRdPVwiJ3ZhbHVlUGF0aFNlbGVjdG9yLmRyb3Bkb3duJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbb2ZmVGV4dF09XCIndmFsdWVQYXRoU2VsZWN0b3IubWFudWFsJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbY2hlY2tlZF09XCJvYnMuaW5wdXRNb2RlSXNEcm9wZG93blwiXG4gICAgICAoY2hlY2tlZENoYW5nZSk9XCJvbklucHV0TW9kZUNoYW5nZSgkZXZlbnQpXCJcbiAgICA+PC9jZHMtdG9nZ2xlPlxuXG4gICAgQGlmIChvYnMuaW5wdXRNb2RlSXNEcm9wZG93bikge1xuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIHNob3dEb2N1bWVudERlZmluaXRpb25TZWxlY3RvciAmJiB7XG4gICAgICAgICAgICBsb2FkaW5nRG9jdW1lbnREZWZpbml0aW9uSXRlbXM6IGxvYWRpbmdEb2N1bWVudERlZmluaXRpb25JdGVtcyQgfCBhc3luYyxcbiAgICAgICAgICAgIGRvY3VtZW50RGVmaW5pdGlvbkxpc3RJdGVtczogZG9jdW1lbnREZWZpbml0aW9uTGlzdEl0ZW1zJCB8IGFzeW5jLFxuICAgICAgICAgIH0gYXMgZG9jT2JzXG4gICAgICAgIFwiXG4gICAgICA+XG4gICAgICAgIDxjZHMtZHJvcGRvd25cbiAgICAgICAgICBkYXRhLXRlc3RpZD1cInZhbHVlLXBhdGgtc2VsZWN0b3ItZG9jdW1lbnREZWZpbml0aW9uXCJcbiAgICAgICAgICBbYXBwZW5kSW5saW5lXT1cImFwcGVuZElubGluZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIlxuICAgICAgICAgICAgb2JzLmRpc2FibGVkIHx8XG4gICAgICAgICAgICBkb2NPYnMubG9hZGluZ0RvY3VtZW50RGVmaW5pdGlvbkl0ZW1zIHx8XG4gICAgICAgICAgICAhZG9jT2JzLmRvY3VtZW50RGVmaW5pdGlvbkxpc3RJdGVtcyB8fFxuICAgICAgICAgICAgKGRvY09icy5kb2N1bWVudERlZmluaXRpb25MaXN0SXRlbXMgfHwgW10pLmxlbmd0aCA9PT0gMFxuICAgICAgICAgIFwiXG4gICAgICAgICAgKHNlbGVjdGVkKT1cIm9uRG9jdW1lbnREZWZpbml0aW9uU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIid2YWx1ZVBhdGhTZWxlY3Rvci5zZWxlY3REb2NEZWZQbGFjZWhvbGRlcicgfCB0cmFuc2xhdGVcIlxuICAgICAgICA+XG4gICAgICAgICAgPGNkcy1kcm9wZG93bi1saXN0IFtpdGVtc109XCJkb2NPYnMuZG9jdW1lbnREZWZpbml0aW9uTGlzdEl0ZW1zIHx8IFtdXCI+PC9jZHMtZHJvcGRvd24tbGlzdD5cbiAgICAgICAgPC9jZHMtZHJvcGRvd24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPGNkcy1kcm9wZG93blxuICAgICAgICBkYXRhLXRlc3RpZD1cInZhbHVlLXBhdGgtc2VsZWN0b3ItdmFsdWVQYXRoXCJcbiAgICAgICAgW2FwcGVuZElubGluZV09XCJhcHBlbmRJbmxpbmVcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiXG4gICAgICAgICAgb2JzLmRpc2FibGVkIHx8XG4gICAgICAgICAgb2JzLmxvYWRpbmdWYWx1ZVBhdGhJdGVtcyB8fFxuICAgICAgICAgICFvYnMudmFsdWVQYXRoTGlzdEl0ZW1zIHx8XG4gICAgICAgICAgKG9icy52YWx1ZVBhdGhMaXN0SXRlbXMgfHwgW10pLmxlbmd0aCA9PT0gMFxuICAgICAgICBcIlxuICAgICAgICAoc2VsZWN0ZWQpPVwib25QYXRoU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCIndmFsdWVQYXRoU2VsZWN0b3IucGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgID5cbiAgICAgICAgPGNkcy1kcm9wZG93bi1saXN0IFtpdGVtc109XCJvYnMudmFsdWVQYXRoTGlzdEl0ZW1zIHx8IFtdXCI+PC9jZHMtZHJvcGRvd24tbGlzdD5cbiAgICAgIDwvY2RzLWRyb3Bkb3duPlxuICAgIH0gQGVsc2Uge1xuICAgICAgPGlucHV0XG4gICAgICAgIGRhdGEtdGVzdGlkPVwidmFsdWUtcGF0aC1zZWxlY3Rvci1pbnB1dFwiXG4gICAgICAgIGNkc1RleHRcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZWxlY3RlZFBhdGhcIlxuICAgICAgLz5cbiAgICB9XG4gIDwvZm9ybT5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
@@ -14,4 +14,4 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
export {};
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktaW5wdXQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2NvbXBvbmVudHMvc3JjL2xpYi9tb2RlbHMvbXVsdGktaW5wdXQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0Zvcm1PdXRwdXR9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQge0xpc3RJdGVtfSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyJztcblxudHlwZSBNdWx0aUlucHV0VHlwZSA9XG4gIHwgJ2tleVZhbHVlJ1xuICB8ICd2YWx1ZSdcbiAgfCAna2V5RHJvcGRvd25WYWx1ZSdcbiAgfCAnYXJiaXRyYXJ5QW1vdW50J1xuICB8ICdrZXlWYWx1ZVBhdGhTZWxlY3RvcidcbiAgfCAndmFsdWVQYXRoU2VsZWN0b3JWYWx1ZSdcbiAgfCAndmFsdWVQYXRoU2VsZWN0b3JEcm9wZG93blZhbHVlJztcblxuaW50ZXJmYWNlIE11bHRpSW5wdXRLZXlWYWx1ZSB7XG4gIHV1aWQ/OiBzdHJpbmc7XG4gIGtleT86IHN0cmluZztcbiAgdmFsdWU/OiBzdHJpbmc7XG4gIGRyb3Bkb3duPzogc3RyaW5nO1xuICBbaW5kZXg6IHN0cmluZ106IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIE11bHRpSW5wdXRGb3JtVmFsdWUge1xuICB1dWlkPzogc3RyaW5nO1xuICB2YWx1ZTogRm9ybU91dHB1dCB8IG9iamVjdDtcbiAgZXhwYW5kZWQ/OiBib29sZWFuO1xufVxuXG50eXBlIE11bHRpSW5wdXRWYWx1ZXMgPSBBcnJheTxNdWx0aUlucHV0S2V5VmFsdWU+O1xuXG50eXBlIE11bHRpSW5wdXRGb3Jtc1ZhbHVlcyA9IEFycmF5PE11bHRpSW5wdXRGb3JtVmFsdWU+O1xuXG50eXBlIE11bHRpSW5wdXRPdXRwdXQgPSBNdWx0aUlucHV0VmFsdWVzIHwgQXJyYXk8c3RyaW5nPjtcblxuaW50ZXJmYWNlIExpc3RJdGVtV2l0aElkIGV4dGVuZHMgTGlzdEl0ZW0ge1xuICBpZDogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQXJiaXRyYXJ5SW5wdXRUaXRsZXMge1xuICBbaW5kZXhLZXk6IHN0cmluZ106IHN0cmluZztcbn1cblxudHlwZSBNdWx0aUlucHV0Q2hhbmdlRXZlbnRUeXBlID0gJ2tleScgfCAndmFsdWUnIHwgJ2Ryb3Bkb3duJyB8ICdhcmJpdHJhcnknO1xuXG5leHBvcnQge1xuICBNdWx0aUlucHV0VHlwZSxcbiAgTXVsdGlJbnB1dFZhbHVlcyxcbiAgTXVsdGlJbnB1dEtleVZhbHVlLFxuICBNdWx0aUlucHV0T3V0cHV0LFxuICBNdWx0aUlucHV0Rm9ybVZhbHVlLFxuICBNdWx0aUlucHV0Rm9ybXNWYWx1ZXMsXG4gIExpc3RJdGVtV2l0aElkLFxuICBBcmJpdHJhcnlJbnB1dFRpdGxlcyxcbiAgTXVsdGlJbnB1dENoYW5nZUV2ZW50VHlwZSxcbn07XG4iXX0=
|
|
@@ -13,6 +13,11 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
+
var ValuePathType;
|
|
17
|
+
(function (ValuePathType) {
|
|
18
|
+
ValuePathType["FIELD"] = "FIELD";
|
|
19
|
+
ValuePathType["COLLECTION"] = "COLLECTION";
|
|
20
|
+
})(ValuePathType || (ValuePathType = {}));
|
|
16
21
|
var ValuePathSelectorPrefix;
|
|
17
22
|
(function (ValuePathSelectorPrefix) {
|
|
18
23
|
ValuePathSelectorPrefix["DOC"] = "doc";
|
|
@@ -27,5 +32,5 @@ var ValuePathSelectorInputMode;
|
|
|
27
32
|
ValuePathSelectorInputMode[ValuePathSelectorInputMode["DROPDOWN"] = 0] = "DROPDOWN";
|
|
28
33
|
ValuePathSelectorInputMode[ValuePathSelectorInputMode["MANUAL"] = 1] = "MANUAL";
|
|
29
34
|
})(ValuePathSelectorInputMode || (ValuePathSelectorInputMode = {}));
|
|
30
|
-
export { ValuePathSelectorPrefix, ValuePathSelectorInputMode, };
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
export { ValuePathSelectorPrefix, ValuePathSelectorInputMode, ValuePathType, };
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtcGF0aC1zZWxlY3Rvci5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vY29tcG9uZW50cy9zcmMvbGliL21vZGVscy92YWx1ZS1wYXRoLXNlbGVjdG9yLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBSUgsSUFBSyxhQUdKO0FBSEQsV0FBSyxhQUFhO0lBQ2hCLGdDQUFlLENBQUE7SUFDZiwwQ0FBeUIsQ0FBQTtBQUMzQixDQUFDLEVBSEksYUFBYSxLQUFiLGFBQWEsUUFHakI7QUF5QkQsSUFBSyx1QkFPSjtBQVBELFdBQUssdUJBQXVCO0lBQzFCLHNDQUFXLENBQUE7SUFDWCx3Q0FBYSxDQUFBO0lBQ2Isb0RBQXlCLENBQUE7SUFDekIsMERBQStCLENBQUE7SUFDL0Isb0RBQXlCLENBQUE7SUFDekIsd0NBQWEsQ0FBQTtBQUNmLENBQUMsRUFQSSx1QkFBdUIsS0FBdkIsdUJBQXVCLFFBTzNCO0FBRUQsSUFBSywwQkFHSjtBQUhELFdBQUssMEJBQTBCO0lBQzdCLG1GQUFRLENBQUE7SUFDUiwrRUFBTSxDQUFBO0FBQ1IsQ0FBQyxFQUhJLDBCQUEwQixLQUExQiwwQkFBMEIsUUFHOUI7QUFNRCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLDBCQUEwQixFQUkxQixhQUFhLEdBSWQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7TGlzdEl0ZW19IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuXG5lbnVtIFZhbHVlUGF0aFR5cGUge1xuICBGSUVMRCA9ICdGSUVMRCcsXG4gIENPTExFQ1RJT04gPSAnQ09MTEVDVElPTicsXG59XG5cbmludGVyZmFjZSBWYWx1ZVBhdGhSZXNwb25zZSB7XG4gIHBhdGg6IHN0cmluZztcbiAgdHlwZTogVmFsdWVQYXRoVHlwZTtcbiAgY2hpbGRyZW4/OiBWYWx1ZVBhdGhSZXNwb25zZVtdO1xufVxuXG5pbnRlcmZhY2UgVmFsdWVQYXRoU2VsZWN0b3JDYWNoZSB7XG4gIFtkb2N1bWVudERlZmluaXRpb25OYW1lOiBzdHJpbmddOiB7XG4gICAgW3ZlcnNpb246IHN0cmluZyB8IG51bWJlcl06IHtcbiAgICAgIFtwcmVmaXg6IHN0cmluZ106IHtcbiAgICAgICAgW3R5cGUgaW4gVmFsdWVQYXRoVHlwZV06IFZhbHVlUGF0aEl0ZW1bXTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFZhbHVlUGF0aEl0ZW0ge1xuICBwYXRoOiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogc3RyaW5nW107XG59XG5cbnR5cGUgRG9jdW1lbnREZWZpbml0aW9uSXRlbXNDYWNoZSA9IExpc3RJdGVtW107XG5cbmVudW0gVmFsdWVQYXRoU2VsZWN0b3JQcmVmaXgge1xuICBET0MgPSAnZG9jJyxcbiAgQ0FTRSA9ICdjYXNlJyxcbiAgWkFBS09CSkVDVCA9ICd6YWFrb2JqZWN0JyxcbiAgWkFBS1JFU1VMVEFBVCA9ICd6YWFrcmVzdWx0YWF0JyxcbiAgWkFBS1NUQVRVUyA9ICd6YWFrc3RhdHVzJyxcbiAgWkFBSyA9ICd6YWFrJyxcbn1cblxuZW51bSBWYWx1ZVBhdGhTZWxlY3RvcklucHV0TW9kZSB7XG4gIERST1BET1dOLFxuICBNQU5VQUwsXG59XG5cbnR5cGUgVmFsdWVQYXRoU2VsZWN0b3JOb3RhdGlvbiA9ICdkb3RzJyB8ICdzbGFzaGVzJztcblxudHlwZSBWYWx1ZVBhdGhWZXJzaW9uQXJndW1lbnQgPSBudW1iZXIgfCAnbGF0ZXN0JztcblxuZXhwb3J0IHtcbiAgVmFsdWVQYXRoU2VsZWN0b3JQcmVmaXgsXG4gIFZhbHVlUGF0aFNlbGVjdG9ySW5wdXRNb2RlLFxuICBWYWx1ZVBhdGhWZXJzaW9uQXJndW1lbnQsXG4gIERvY3VtZW50RGVmaW5pdGlvbkl0ZW1zQ2FjaGUsXG4gIFZhbHVlUGF0aFNlbGVjdG9yTm90YXRpb24sXG4gIFZhbHVlUGF0aFR5cGUsXG4gIFZhbHVlUGF0aFJlc3BvbnNlLFxuICBWYWx1ZVBhdGhTZWxlY3RvckNhY2hlLFxuICBWYWx1ZVBhdGhJdGVtLFxufTtcbiJdfQ==
|
|
@@ -21,7 +21,7 @@ export class KeyGeneratorService {
|
|
|
21
21
|
.toLowerCase()
|
|
22
22
|
.replace(/[^a-z0-9-_]+|-[^a-z0-9]+/g, '-')
|
|
23
23
|
.replace(/_[-_]+/g, '_')
|
|
24
|
-
.replace(/^[^a-z]
|
|
24
|
+
.replace(/^[^a-z]+|[^a-z0-9]+$/g, '');
|
|
25
25
|
if (!usedKeys.includes(dashCaseKey)) {
|
|
26
26
|
return dashCaseKey;
|
|
27
27
|
}
|
|
@@ -47,4 +47,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
47
47
|
providedIn: 'root',
|
|
48
48
|
}]
|
|
49
49
|
}] });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LWdlbmVyYXRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9jb21wb25lbnRzL3NyYy9saWIvc2VydmljZXMva2V5LWdlbmVyYXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFLekMsTUFBTSxPQUFPLG1CQUFtQjtJQUN2QixZQUFZLENBQUMsVUFBa0IsRUFBRSxRQUFrQjtRQUN4RCxNQUFNLFdBQVcsR0FBRyxHQUFHLFVBQVUsRUFBRTthQUNoQyxXQUFXLEVBQUU7YUFDYixPQUFPLENBQUMsMkJBQTJCLEVBQUUsR0FBRyxDQUFDO2FBQ3pDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDO2FBQ3ZCLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUV4QyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ3BDLE9BQU8sV0FBVyxDQUFDO1FBQ3JCLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVPLHNCQUFzQixDQUFDLFdBQW1CLEVBQUUsUUFBa0I7UUFDcEUsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQ2xGLENBQUMsV0FBbUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQ3RDLENBQUM7UUFDRixNQUFNLHdCQUF3QixHQUM1QixxQkFBcUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLHFCQUFxQixDQUFDLHFCQUFxQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM5RixNQUFNLE1BQU0sR0FBRyx3QkFBd0I7WUFDckMsQ0FBQyxDQUFDLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLHdCQUF3QixFQUFFLEVBQUUsR0FBRyx3QkFBd0IsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQzVGLENBQUMsQ0FBQyxHQUFHLFdBQVcsSUFBSSxDQUFDO1FBRXZCLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzlCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzsrR0E5QlUsbUJBQW1CO21IQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBLZXlHZW5lcmF0b3JTZXJ2aWNlIHtcbiAgcHVibGljIGdldFVuaXF1ZUtleShlbnRpdHlOYW1lOiBzdHJpbmcsIHVzZWRLZXlzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgY29uc3QgZGFzaENhc2VLZXkgPSBgJHtlbnRpdHlOYW1lfWBcbiAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAucmVwbGFjZSgvW15hLXowLTktX10rfC1bXmEtejAtOV0rL2csICctJylcbiAgICAgIC5yZXBsYWNlKC9fWy1fXSsvZywgJ18nKVxuICAgICAgLnJlcGxhY2UoL15bXmEtel0rfFteYS16MC05XSskL2csICcnKTtcblxuICAgIGlmICghdXNlZEtleXMuaW5jbHVkZXMoZGFzaENhc2VLZXkpKSB7XG4gICAgICByZXR1cm4gZGFzaENhc2VLZXk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZ2V0VW5pcXVlS2V5V2l0aE51bWJlcihkYXNoQ2FzZUtleSwgdXNlZEtleXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRVbmlxdWVLZXlXaXRoTnVtYmVyKGRhc2hDYXNlS2V5OiBzdHJpbmcsIHVzZWRLZXlzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgY29uc3QgbnVtYmVyc0Zyb21DdXJyZW50S2V5ID0gKGRhc2hDYXNlS2V5Lm1hdGNoKC9eXFxkK3xcXGQrXFxifFxcZCsoPz1cXHcpL2cpIHx8IFtdKS5tYXAoXG4gICAgICAobnVtYmVyVmFsdWU6IHN0cmluZykgPT4gK251bWJlclZhbHVlXG4gICAgKTtcbiAgICBjb25zdCBsYXN0TnVtYmVyRnJvbUN1cnJlbnRLZXkgPVxuICAgICAgbnVtYmVyc0Zyb21DdXJyZW50S2V5Lmxlbmd0aCA+IDAgJiYgbnVtYmVyc0Zyb21DdXJyZW50S2V5W251bWJlcnNGcm9tQ3VycmVudEtleS5sZW5ndGggLSAxXTtcbiAgICBjb25zdCBuZXdLZXkgPSBsYXN0TnVtYmVyRnJvbUN1cnJlbnRLZXlcbiAgICAgID8gYCR7ZGFzaENhc2VLZXkucmVwbGFjZShgJHtsYXN0TnVtYmVyRnJvbUN1cnJlbnRLZXl9YCwgYCR7bGFzdE51bWJlckZyb21DdXJyZW50S2V5ICsgMX1gKX1gXG4gICAgICA6IGAke2Rhc2hDYXNlS2V5fS0xYDtcblxuICAgIGlmICh1c2VkS2V5cy5pbmNsdWRlcyhuZXdLZXkpKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRVbmlxdWVLZXlXaXRoTnVtYmVyKG5ld0tleSwgdXNlZEtleXMpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXdLZXk7XG4gIH1cbn1cbiJdfQ==
|