@valtimo/dossier-management 12.6.0 → 12.7.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/esm2022/lib/components/dossier-management-list-columns/dossier-management-list-columns.component.mjs +1 -1
- package/esm2022/lib/components/dossier-management-search-fields/dossier-management-search-fields.component.mjs +1 -1
- package/esm2022/lib/components/dossier-management-widget-configurators/collection/dossier-management-widget-collection.component.mjs +13 -8
- package/esm2022/lib/components/dossier-management-widget-configurators/custom/dossier-management-widget-custom.component.mjs +17 -12
- package/esm2022/lib/components/dossier-management-widget-configurators/fields/dossier-management-widget-fields.component.mjs +15 -10
- package/esm2022/lib/components/dossier-management-widget-configurators/formio/dossier-management-widget-formio.component.mjs +14 -9
- package/esm2022/lib/components/dossier-management-widget-configurators/index.mjs +4 -3
- package/esm2022/lib/components/dossier-management-widget-configurators/process-selector/dossier-management-widget-process-selector.component.mjs +100 -0
- package/esm2022/lib/components/dossier-management-widget-configurators/table/dossier-management-widget-table.component.mjs +14 -9
- package/esm2022/lib/components/dossier-management-widget-tab/editor/dossier-management-widgets-editor.component.mjs +12 -1
- package/esm2022/lib/components/dossier-management-widget-wizard/dossier-management-widget-wizard.component.mjs +2 -2
- package/esm2022/lib/services/widget-wizard.service.mjs +5 -2
- package/fesm2022/valtimo-dossier-management.mjs +482 -368
- package/fesm2022/valtimo-dossier-management.mjs.map +1 -1
- package/lib/components/dossier-management-widget-configurators/collection/dossier-management-widget-collection.component.d.ts +4 -1
- package/lib/components/dossier-management-widget-configurators/collection/dossier-management-widget-collection.component.d.ts.map +1 -1
- package/lib/components/dossier-management-widget-configurators/custom/dossier-management-widget-custom.component.d.ts +8 -5
- package/lib/components/dossier-management-widget-configurators/custom/dossier-management-widget-custom.component.d.ts.map +1 -1
- package/lib/components/dossier-management-widget-configurators/fields/dossier-management-widget-fields.component.d.ts +6 -2
- package/lib/components/dossier-management-widget-configurators/fields/dossier-management-widget-fields.component.d.ts.map +1 -1
- package/lib/components/dossier-management-widget-configurators/formio/dossier-management-widget-formio.component.d.ts +4 -1
- package/lib/components/dossier-management-widget-configurators/formio/dossier-management-widget-formio.component.d.ts.map +1 -1
- package/lib/components/dossier-management-widget-configurators/index.d.ts +3 -2
- package/lib/components/dossier-management-widget-configurators/index.d.ts.map +1 -1
- package/lib/components/dossier-management-widget-configurators/process-selector/dossier-management-widget-process-selector.component.d.ts +29 -0
- package/lib/components/dossier-management-widget-configurators/process-selector/dossier-management-widget-process-selector.component.d.ts.map +1 -0
- package/lib/components/dossier-management-widget-configurators/table/dossier-management-widget-table.component.d.ts +4 -1
- package/lib/components/dossier-management-widget-configurators/table/dossier-management-widget-table.component.d.ts.map +1 -1
- package/lib/components/dossier-management-widget-tab/editor/dossier-management-widgets-editor.component.d.ts +1 -0
- package/lib/components/dossier-management-widget-tab/editor/dossier-management-widgets-editor.component.d.ts.map +1 -1
- package/lib/services/widget-wizard.service.d.ts +2 -1
- package/lib/services/widget-wizard.service.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -13,35 +13,39 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Optional, Output, } from '@angular/core';
|
|
17
16
|
import { CommonModule } from '@angular/common';
|
|
18
|
-
import {
|
|
19
|
-
import { DropdownModule, InputModule, SelectModule } from 'carbon-components-angular';
|
|
17
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Optional, Output, } from '@angular/core';
|
|
20
18
|
import { ReactiveFormsModule, Validators } from '@angular/forms';
|
|
19
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
21
20
|
import { CARBON_THEME, CurrentCarbonTheme } from '@valtimo/components';
|
|
22
21
|
import { CUSTOM_CASE_WIDGET_TOKEN, } from '@valtimo/dossier';
|
|
22
|
+
import { DropdownModule, InputModule, SelectModule } from 'carbon-components-angular';
|
|
23
23
|
import { BehaviorSubject, combineLatest, filter, map, Subscription } from 'rxjs';
|
|
24
|
+
import { DossierManagementWidgetProcessSelectorComponent } from '../process-selector/dossier-management-widget-process-selector.component';
|
|
24
25
|
import * as i0 from "@angular/core";
|
|
25
26
|
import * as i1 from "@valtimo/components";
|
|
26
27
|
import * as i2 from "@angular/forms";
|
|
27
28
|
import * as i3 from "../../../services";
|
|
28
|
-
import * as i4 from "@angular/
|
|
29
|
-
import * as i5 from "@
|
|
30
|
-
import * as i6 from "
|
|
29
|
+
import * as i4 from "@angular/router";
|
|
30
|
+
import * as i5 from "@angular/common";
|
|
31
|
+
import * as i6 from "@ngx-translate/core";
|
|
32
|
+
import * as i7 from "carbon-components-angular";
|
|
31
33
|
export class DossierManagementWidgetCustomComponent {
|
|
32
34
|
get widgetTitle() {
|
|
33
35
|
return this.form.get('widgetTitle');
|
|
34
36
|
}
|
|
35
|
-
constructor(customCaseWidgetConfig, cdsThemeService, fb, widgetWizardService) {
|
|
37
|
+
constructor(customCaseWidgetConfig, cdsThemeService, fb, widgetWizardService, route) {
|
|
36
38
|
this.customCaseWidgetConfig = customCaseWidgetConfig;
|
|
37
39
|
this.cdsThemeService = cdsThemeService;
|
|
38
40
|
this.fb = fb;
|
|
39
41
|
this.widgetWizardService = widgetWizardService;
|
|
42
|
+
this.route = route;
|
|
40
43
|
this.changeValidEvent = new EventEmitter();
|
|
41
44
|
this.form = this.fb.group({
|
|
42
45
|
widgetTitle: this.fb.control(this.widgetWizardService.widgetTitle(), Validators.required),
|
|
43
46
|
});
|
|
44
47
|
this.theme$ = this.cdsThemeService.currentTheme$.pipe(map((theme) => theme === CurrentCarbonTheme.G10 ? CARBON_THEME.WHITE : CARBON_THEME.G90));
|
|
48
|
+
this.documentDefinitionName$ = this.route.paramMap.pipe(map((paramMap) => paramMap.get('name') ?? ''));
|
|
45
49
|
this._selectedCustomComponentKey$ = new BehaviorSubject(null);
|
|
46
50
|
this._customCaseWidgetConfig$ = new BehaviorSubject({});
|
|
47
51
|
this.componentListItems$ = combineLatest([
|
|
@@ -80,8 +84,8 @@ export class DossierManagementWidgetCustomComponent {
|
|
|
80
84
|
this._selectedCustomComponentKey$.next(componentKey);
|
|
81
85
|
this.changeValidEvent.emit(true);
|
|
82
86
|
}
|
|
83
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DossierManagementWidgetCustomComponent, deps: [{ token: CUSTOM_CASE_WIDGET_TOKEN, optional: true }, { token: i1.CdsThemeService }, { token: i2.FormBuilder }, { token: i3.WidgetWizardService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
84
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DossierManagementWidgetCustomComponent, isStandalone: true, selector: "ng-component", outputs: { changeValidEvent: "changeValidEvent" }, 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<form\n class=\"valtimo-dossier-management-widget-custom\"\n [formGroup]=\"form\"\n [attr.data-carbon-theme]=\"theme$ | async\"\n>\n <cds-text-label class=\"valtimo-dossier-management-widget-field__input\">\n {{ 'widgetTabManagement.content.widgetTitle' | translate }}\n\n <input\n formControlName=\"widgetTitle\"\n cdsText\n [placeholder]=\"'widgetTabManagement.content.widgetTitlePlaceholder' | translate\"\n type=\"text\"\n />\n </cds-text-label>\n\n <cds-label class=\"dropdown-label\">\n {{ 'widgetTabManagement.content.custom.selectComponent' | translate }}\n\n <cds-dropdown\n *ngIf=\"componentListItems$ | async as componentListItems\"\n [appendInline]=\"false\"\n [placeholder]=\"'widgetTabManagement.content.custom.placeholder' | translate\"\n [disabled]=\"componentListItems.length === 0\"\n (selected)=\"componentDropDownChange($event)\"\n >\n <cds-dropdown-list [items]=\"componentListItems\"> </cds-dropdown-list>\n </cds-dropdown>\n </cds-label>\n</form>\n", styles: [".valtimo-dossier-management-widget-custom{display:flex;flex-direction:column
|
|
87
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DossierManagementWidgetCustomComponent, deps: [{ token: CUSTOM_CASE_WIDGET_TOKEN, optional: true }, { token: i1.CdsThemeService }, { token: i2.FormBuilder }, { token: i3.WidgetWizardService }, { token: i4.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
88
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DossierManagementWidgetCustomComponent, isStandalone: true, selector: "ng-component", outputs: { changeValidEvent: "changeValidEvent" }, 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<form\n class=\"valtimo-dossier-management-widget-custom\"\n [formGroup]=\"form\"\n [attr.data-carbon-theme]=\"theme$ | async\"\n>\n <cds-text-label class=\"valtimo-dossier-management-widget-field__input\">\n {{ 'widgetTabManagement.content.widgetTitle' | translate }}\n\n <input\n formControlName=\"widgetTitle\"\n cdsText\n [placeholder]=\"'widgetTabManagement.content.widgetTitlePlaceholder' | translate\"\n type=\"text\"\n />\n </cds-text-label>\n\n <valtimo-dossier-management-widget-process-selector\n [documentDefinitionName]=\"documentDefinitionName$ | async\"\n ></valtimo-dossier-management-widget-process-selector>\n\n <cds-label class=\"dropdown-label\">\n {{ 'widgetTabManagement.content.custom.selectComponent' | translate }}\n\n <cds-dropdown\n *ngIf=\"componentListItems$ | async as componentListItems\"\n [appendInline]=\"false\"\n [placeholder]=\"'widgetTabManagement.content.custom.placeholder' | translate\"\n [disabled]=\"componentListItems.length === 0\"\n (selected)=\"componentDropDownChange($event)\"\n >\n <cds-dropdown-list [items]=\"componentListItems\"> </cds-dropdown-list>\n </cds-dropdown>\n </cds-label>\n</form>\n", styles: [".valtimo-dossier-management-widget-custom{display:flex;flex-direction:column;gap:16px}.valtimo-dossier-management-widget-custom ::ng-deep .dropdown-label label{display:flex;flex-direction:column;width:100%}.valtimo-dossier-management-widget-custom ::ng-deep .dropdown-label cds-dropdown{margin-top:8px}\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: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i7.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "component", type: i7.TextInputLabelComponent, selector: "cds-text-label, ibm-text-label", inputs: ["labelInputID", "disabled", "skeleton", "labelTemplate", "textInputTemplate", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i7.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { 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: SelectModule }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i7.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: i7.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: DossierManagementWidgetProcessSelectorComponent, selector: "valtimo-dossier-management-widget-process-selector", inputs: ["documentDefinitionName"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
85
89
|
}
|
|
86
90
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DossierManagementWidgetCustomComponent, decorators: [{
|
|
87
91
|
type: Component,
|
|
@@ -92,13 +96,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
92
96
|
ReactiveFormsModule,
|
|
93
97
|
SelectModule,
|
|
94
98
|
DropdownModule,
|
|
95
|
-
|
|
99
|
+
DossierManagementWidgetProcessSelectorComponent,
|
|
100
|
+
], 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<form\n class=\"valtimo-dossier-management-widget-custom\"\n [formGroup]=\"form\"\n [attr.data-carbon-theme]=\"theme$ | async\"\n>\n <cds-text-label class=\"valtimo-dossier-management-widget-field__input\">\n {{ 'widgetTabManagement.content.widgetTitle' | translate }}\n\n <input\n formControlName=\"widgetTitle\"\n cdsText\n [placeholder]=\"'widgetTabManagement.content.widgetTitlePlaceholder' | translate\"\n type=\"text\"\n />\n </cds-text-label>\n\n <valtimo-dossier-management-widget-process-selector\n [documentDefinitionName]=\"documentDefinitionName$ | async\"\n ></valtimo-dossier-management-widget-process-selector>\n\n <cds-label class=\"dropdown-label\">\n {{ 'widgetTabManagement.content.custom.selectComponent' | translate }}\n\n <cds-dropdown\n *ngIf=\"componentListItems$ | async as componentListItems\"\n [appendInline]=\"false\"\n [placeholder]=\"'widgetTabManagement.content.custom.placeholder' | translate\"\n [disabled]=\"componentListItems.length === 0\"\n (selected)=\"componentDropDownChange($event)\"\n >\n <cds-dropdown-list [items]=\"componentListItems\"> </cds-dropdown-list>\n </cds-dropdown>\n </cds-label>\n</form>\n", styles: [".valtimo-dossier-management-widget-custom{display:flex;flex-direction:column;gap:16px}.valtimo-dossier-management-widget-custom ::ng-deep .dropdown-label label{display:flex;flex-direction:column;width:100%}.valtimo-dossier-management-widget-custom ::ng-deep .dropdown-label cds-dropdown{margin-top:8px}\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"] }]
|
|
96
101
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
97
102
|
type: Optional
|
|
98
103
|
}, {
|
|
99
104
|
type: Inject,
|
|
100
105
|
args: [CUSTOM_CASE_WIDGET_TOKEN]
|
|
101
|
-
}] }, { type: i1.CdsThemeService }, { type: i2.FormBuilder }, { type: i3.WidgetWizardService }], propDecorators: { changeValidEvent: [{
|
|
106
|
+
}] }, { type: i1.CdsThemeService }, { type: i2.FormBuilder }, { type: i3.WidgetWizardService }, { type: i4.ActivatedRoute }], propDecorators: { changeValidEvent: [{
|
|
102
107
|
type: Output
|
|
103
108
|
}] } });
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1jdXN0b20uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtY29uZmlndXJhdG9ycy9jdXN0b20vZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1jdXN0b20uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtY29uZmlndXJhdG9ycy9jdXN0b20vZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1jdXN0b20uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUdOLFFBQVEsRUFDUixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsY0FBYyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRixPQUFPLEVBQStCLG1CQUFtQixFQUFFLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTdGLE9BQU8sRUFBQyxZQUFZLEVBQW1CLGtCQUFrQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFdEYsT0FBTyxFQUNMLHdCQUF3QixHQUd6QixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9B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WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0Ryb3Bkb3duTW9kdWxlLCBJbnB1dE1vZHVsZSwgU2VsZWN0TW9kdWxlfSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyJztcbmltcG9ydCB7QWJzdHJhY3RDb250cm9sLCBGb3JtQnVpbGRlciwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtXaWRnZXRDb250ZW50Q29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtDQVJCT05fVEhFTUUsIENkc1RoZW1lU2VydmljZSwgQ3VycmVudENhcmJvblRoZW1lfSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7V2lkZ2V0V2l6YXJkU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtcbiAgQ1VTVE9NX0NBU0VfV0lER0VUX1RPS0VOLFxuICBDdXN0b21DYXNlV2lkZ2V0Q29uZmlnLFxuICBXaWRnZXRDdXN0b21Db250ZW50LFxufSBmcm9tICdAdmFsdGltby9kb3NzaWVyJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7TGlzdEl0ZW19IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXIvZHJvcGRvd24vbGlzdC1pdGVtLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1jdXN0b20uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWN1c3RvbS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgSW5wdXRNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBTZWxlY3RNb2R1bGUsXG4gICAgRHJvcGRvd25Nb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIERvc3NpZXJNYW5hZ2VtZW50V2lkZ2V0Q3VzdG9tQ29tcG9uZW50XG4gIGltcGxlbWVudHMgV2lkZ2V0Q29udGVudENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXRcbntcbiAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBjaGFuZ2VWYWxpZEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHB1YmxpYyByZWFkb25seSBmb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgd2lkZ2V0VGl0bGU6IHRoaXMuZmIuY29udHJvbCh0aGlzLndpZGdldFdpemFyZFNlcnZpY2Uud2lkZ2V0VGl0bGUoKSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gIH0pO1xuXG4gIHB1YmxpYyBnZXQgd2lkZ2V0VGl0bGUoKTogQWJzdHJhY3RDb250cm9sPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCd3aWRnZXRUaXRsZScpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHRoZW1lJCA9IHRoaXMuY2RzVGhlbWVTZXJ2aWNlLmN1cnJlbnRUaGVtZSQucGlwZShcbiAgICBtYXAoKHRoZW1lOiBDdXJyZW50Q2FyYm9uVGhlbWUpID0+XG4gICAgICB0aGVtZSA9PT0gQ3VycmVudENhcmJvblRoZW1lLkcxMCA/IENBUkJPTl9USEVNRS5XSElURSA6IENBUkJPTl9USEVNRS5HOTBcbiAgICApXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc2VsZWN0ZWRDdXN0b21Db21wb25lbnRLZXkkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY3VzdG9tQ2FzZVdpZGdldENvbmZpZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEN1c3RvbUNhc2VXaWRnZXRDb25maWc+KHt9KTtcblxuICBwdWJsaWMgcmVhZG9ubHkgY29tcG9uZW50TGlzdEl0ZW1zJDogT2JzZXJ2YWJsZTxMaXN0SXRlbVtdPiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuX2N1c3RvbUNhc2VXaWRnZXRDb25maWckLFxuICAgIHRoaXMuX3NlbGVjdGVkQ3VzdG9tQ29tcG9uZW50S2V5JCxcbiAgXSkucGlwZShcbiAgICBmaWx0ZXIoKFtjb25maWddKSA9PiAhIWNvbmZpZyksXG4gICAgbWFwKChbY29uZmlnLCBzZWxlY3RlZEtleV0pID0+XG4gICAgICBPYmplY3Qua2V5cyhjb25maWcpLnJlZHVjZShcbiAgICAgICAgKGFjYywgY3VycikgPT4gWy4uLmFjYywge2NvbnRlbnQ6IGN1cnIsIHNlbGVjdGVkOiBjdXJyID09PSBzZWxlY3RlZEtleX1dLFxuICAgICAgICBbXVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChDVVNUT01fQ0FTRV9XSURHRVRfVE9LRU4pXG4gICAgcHJpdmF0ZSByZWFkb25seSBjdXN0b21DYXNlV2lkZ2V0Q29uZmlnOiBDdXN0b21DYXNlV2lkZ2V0Q29uZmlnLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RzVGhlbWVTZXJ2aWNlOiBDZHNUaGVtZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSB3aWRnZXRXaXphcmRTZXJ2aWNlOiBXaWRnZXRXaXphcmRTZXJ2aWNlXG4gICkge1xuICAgIGlmIChjdXN0b21DYXNlV2lkZ2V0Q29uZmlnKSB0aGlzLl9jdXN0b21DYXNlV2lkZ2V0Q29uZmlnJC5uZXh0KGN1c3RvbUNhc2VXaWRnZXRDb25maWcpO1xuICB9XG5cbiAgcHVibGljIGNvbXBvbmVudERyb3BEb3duQ2hhbmdlKGV2ZW50OiB7XG4gICAgaXRlbToge2NvbnRlbnQ6IHN0cmluZzsgc2VsZWN0ZWQ6IGJvb2xlYW59O1xuICAgIGlzVXBkYXRlOiBib29sZWFuO1xuICB9KTogdm9pZCB7XG4gICAgY29uc3QgY29tcG9uZW50S2V5ID0gZXZlbnQ/Lml0ZW0/LmNvbnRlbnQ7XG5cbiAgICBpZiAoIWNvbXBvbmVudEtleSkgcmV0dXJuO1xuXG4gICAgdGhpcy5fc2VsZWN0ZWRDdXN0b21Db21wb25lbnRLZXkkLm5leHQoY29tcG9uZW50S2V5KTtcbiAgICB0aGlzLndpZGdldFdpemFyZFNlcnZpY2Uud2lkZ2V0Q29udGVudC5zZXQoe2NvbXBvbmVudEtleX0pO1xuICAgIHRoaXMuY2hhbmdlVmFsaWRFdmVudC5lbWl0KHRydWUpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMub3BlblRpdGxlU3Vic2NyaXB0aW9uKCk7XG4gICAgdGhpcy5wcmVmaWxsKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuVGl0bGVTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLndpZGdldFRpdGxlLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodGl0bGUgPT4ge1xuICAgICAgICB0aGlzLndpZGdldFdpemFyZFNlcnZpY2Uud2lkZ2V0VGl0bGUuc2V0KHRpdGxlKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgcHJlZmlsbCgpOiB2b2lkIHtcbiAgICBjb25zdCBjb21wb25lbnRLZXkgPSAodGhpcy53aWRnZXRXaXphcmRTZXJ2aWNlLndpZGdldENvbnRlbnQoKSBhcyBXaWRnZXRDdXN0b21Db250ZW50KVxuICAgICAgPy5jb21wb25lbnRLZXk7XG5cbiAgICBpZiAoIWNvbXBvbmVudEtleSB8fCBPYmplY3Qua2V5cyh0aGlzLmN1c3RvbUNhc2VXaWRnZXRDb25maWcgfHwge30pLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gICAgdGhpcy5fc2VsZWN0ZWRDdXN0b21Db21wb25lbnRLZXkkLm5leHQoY29tcG9uZW50S2V5KTtcbiAgICB0aGlzLmNoYW5nZVZhbGlkRXZlbnQuZW1pdCh0cnVlKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48Zm9ybVxuICBjbGFzcz1cInZhbHRpbW8tZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1jdXN0b21cIlxuICBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICBbYXR0ci5kYXRhLWNhcmJvbi10aGVtZV09XCJ0aGVtZSQgfCBhc3luY1wiXG4+XG4gIDxjZHMtdGV4dC1sYWJlbCBjbGFzcz1cInZhbHRpbW8tZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1maWVsZF9faW5wdXRcIj5cbiAgICB7eyAnd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LndpZGdldFRpdGxlJyB8IHRyYW5zbGF0ZSB9fVxuXG4gICAgPGlucHV0XG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJ3aWRnZXRUaXRsZVwiXG4gICAgICBjZHNUZXh0XG4gICAgICBbcGxhY2Vob2xkZXJdPVwiJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC53aWRnZXRUaXRsZVBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgLz5cbiAgPC9jZHMtdGV4dC1sYWJlbD5cblxuICA8Y2RzLWxhYmVsIGNsYXNzPVwiZHJvcGRvd24tbGFiZWxcIj5cbiAgICB7eyAnd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LmN1c3RvbS5zZWxlY3RDb21wb25lbnQnIHwgdHJhbnNsYXRlIH19XG5cbiAgICA8Y2RzLWRyb3Bkb3duXG4gICAgICAqbmdJZj1cImNvbXBvbmVudExpc3RJdGVtcyQgfCBhc3luYyBhcyBjb21wb25lbnRMaXN0SXRlbXNcIlxuICAgICAgW2FwcGVuZElubGluZV09XCJmYWxzZVwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC5jdXN0b20ucGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJjb21wb25lbnRMaXN0SXRlbXMubGVuZ3RoID09PSAwXCJcbiAgICAgIChzZWxlY3RlZCk9XCJjb21wb25lbnREcm9wRG93bkNoYW5nZSgkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8Y2RzLWRyb3Bkb3duLWxpc3QgW2l0ZW1zXT1cImNvbXBvbmVudExpc3RJdGVtc1wiPiA8L2Nkcy1kcm9wZG93bi1saXN0PlxuICAgIDwvY2RzLWRyb3Bkb3duPlxuICA8L2Nkcy1sYWJlbD5cbjwvZm9ybT5cbiJdfQ==
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1jdXN0b20uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtY29uZmlndXJhdG9ycy9jdXN0b20vZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1jdXN0b20uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtY29uZmlndXJhdG9ycy9jdXN0b20vZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1jdXN0b20uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFHTixRQUFRLEVBQ1IsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBK0IsbUJBQW1CLEVBQUUsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0YsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxZQUFZLEVBQW1CLGtCQUFrQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDdEYsT0FBTyxFQUNMLHdCQUF3QixHQUd6QixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBQyxjQUFjLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBRXBGLE9B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WSw4QkFDWixjQUFjLGlzQkFDZCwrQ0FBK0M7OzRGQUd0QyxzQ0FBc0M7a0JBZmxELFNBQVM7c0NBR1MsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixlQUFlO3dCQUNmLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsK0NBQStDO3FCQUNoRDs7MEJBNENFLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsd0JBQXdCO2dLQXhDUixnQkFBZ0I7c0JBQXpDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIEZvcm1CdWlsZGVyLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBQYXJhbU1hcH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7Q0FSQk9OX1RIRU1FLCBDZHNUaGVtZVNlcnZpY2UsIEN1cnJlbnRDYXJib25UaGVtZX0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge1xuICBDVVNUT01fQ0FTRV9XSURHRVRfVE9LRU4sXG4gIEN1c3RvbUNhc2VXaWRnZXRDb25maWcsXG4gIFdpZGdldEN1c3RvbUNvbnRlbnQsXG59IGZyb20gJ0B2YWx0aW1vL2Rvc3NpZXInO1xuaW1wb3J0IHtEcm9wZG93bk1vZHVsZSwgSW5wdXRNb2R1bGUsIFNlbGVjdE1vZHVsZX0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge0xpc3RJdGVtfSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyL2Ryb3Bkb3duL2xpc3QtaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtXaWRnZXRDb250ZW50Q29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtXaWRnZXRXaXphcmRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge0Rvc3NpZXJNYW5hZ2VtZW50V2lkZ2V0UHJvY2Vzc1NlbGVjdG9yQ29tcG9uZW50fSBmcm9tICcuLi9wcm9jZXNzLXNlbGVjdG9yL2Rvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtcHJvY2Vzcy1zZWxlY3Rvci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL2Rvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtY3VzdG9tLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1jdXN0b20uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIElucHV0TW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgU2VsZWN0TW9kdWxlLFxuICAgIERyb3Bkb3duTW9kdWxlLFxuICAgIERvc3NpZXJNYW5hZ2VtZW50V2lkZ2V0UHJvY2Vzc1NlbGVjdG9yQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEb3NzaWVyTWFuYWdlbWVudFdpZGdldEN1c3RvbUNvbXBvbmVudFxuICBpbXBsZW1lbnRzIFdpZGdldENvbnRlbnRDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0XG57XG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgY2hhbmdlVmFsaWRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgIHdpZGdldFRpdGxlOiB0aGlzLmZiLmNvbnRyb2wodGhpcy53aWRnZXRXaXphcmRTZXJ2aWNlLndpZGdldFRpdGxlKCksIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICB9KTtcblxuICBwdWJsaWMgZ2V0IHdpZGdldFRpdGxlKCk6IEFic3RyYWN0Q29udHJvbDxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgnd2lkZ2V0VGl0bGUnKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSB0aGVtZSQgPSB0aGlzLmNkc1RoZW1lU2VydmljZS5jdXJyZW50VGhlbWUkLnBpcGUoXG4gICAgbWFwKCh0aGVtZTogQ3VycmVudENhcmJvblRoZW1lKSA9PlxuICAgICAgdGhlbWUgPT09IEN1cnJlbnRDYXJib25UaGVtZS5HMTAgPyBDQVJCT05fVEhFTUUuV0hJVEUgOiBDQVJCT05fVEhFTUUuRzkwXG4gICAgKVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBkb2N1bWVudERlZmluaXRpb25OYW1lJDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGhpcy5yb3V0ZS5wYXJhbU1hcC5waXBlKFxuICAgIG1hcCgocGFyYW1NYXA6IFBhcmFtTWFwKSA9PiBwYXJhbU1hcC5nZXQoJ25hbWUnKSA/PyAnJylcbiAgKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zZWxlY3RlZEN1c3RvbUNvbXBvbmVudEtleSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jdXN0b21DYXNlV2lkZ2V0Q29uZmlnJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q3VzdG9tQ2FzZVdpZGdldENvbmZpZz4oe30pO1xuXG4gIHB1YmxpYyByZWFkb25seSBjb21wb25lbnRMaXN0SXRlbXMkOiBPYnNlcnZhYmxlPExpc3RJdGVtW10+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5fY3VzdG9tQ2FzZVdpZGdldENvbmZpZyQsXG4gICAgdGhpcy5fc2VsZWN0ZWRDdXN0b21Db21wb25lbnRLZXkkLFxuICBdKS5waXBlKFxuICAgIGZpbHRlcigoW2NvbmZpZ10pID0+ICEhY29uZmlnKSxcbiAgICBtYXAoKFtjb25maWcsIHNlbGVjdGVkS2V5XSkgPT5cbiAgICAgIE9iamVjdC5rZXlzKGNvbmZpZykucmVkdWNlKFxuICAgICAgICAoYWNjLCBjdXJyKSA9PiBbLi4uYWNjLCB7Y29udGVudDogY3Vyciwgc2VsZWN0ZWQ6IGN1cnIgPT09IHNlbGVjdGVkS2V5fV0sXG4gICAgICAgIFtdXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KENVU1RPTV9DQVNFX1dJREdFVF9UT0tFTilcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1c3RvbUNhc2VXaWRnZXRDb25maWc6IEN1c3RvbUNhc2VXaWRnZXRDb25maWcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHNUaGVtZVNlcnZpY2U6IENkc1RoZW1lU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpZGdldFdpemFyZFNlcnZpY2U6IFdpZGdldFdpemFyZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGVcbiAgKSB7XG4gICAgaWYgKGN1c3RvbUNhc2VXaWRnZXRDb25maWcpIHRoaXMuX2N1c3RvbUNhc2VXaWRnZXRDb25maWckLm5leHQoY3VzdG9tQ2FzZVdpZGdldENvbmZpZyk7XG4gIH1cblxuICBwdWJsaWMgY29tcG9uZW50RHJvcERvd25DaGFuZ2UoZXZlbnQ6IHtcbiAgICBpdGVtOiB7Y29udGVudDogc3RyaW5nOyBzZWxlY3RlZDogYm9vbGVhbn07XG4gICAgaXNVcGRhdGU6IGJvb2xlYW47XG4gIH0pOiB2b2lkIHtcbiAgICBjb25zdCBjb21wb25lbnRLZXkgPSBldmVudD8uaXRlbT8uY29udGVudDtcblxuICAgIGlmICghY29tcG9uZW50S2V5KSByZXR1cm47XG5cbiAgICB0aGlzLl9zZWxlY3RlZEN1c3RvbUNvbXBvbmVudEtleSQubmV4dChjb21wb25lbnRLZXkpO1xuICAgIHRoaXMud2lkZ2V0V2l6YXJkU2VydmljZS53aWRnZXRDb250ZW50LnNldCh7Y29tcG9uZW50S2V5fSk7XG4gICAgdGhpcy5jaGFuZ2VWYWxpZEV2ZW50LmVtaXQodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuVGl0bGVTdWJzY3JpcHRpb24oKTtcbiAgICB0aGlzLnByZWZpbGwoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5UaXRsZVN1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMud2lkZ2V0VGl0bGUudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh0aXRsZSA9PiB7XG4gICAgICAgIHRoaXMud2lkZ2V0V2l6YXJkU2VydmljZS53aWRnZXRUaXRsZS5zZXQodGl0bGUpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBwcmVmaWxsKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbXBvbmVudEtleSA9ICh0aGlzLndpZGdldFdpemFyZFNlcnZpY2Uud2lkZ2V0Q29udGVudCgpIGFzIFdpZGdldEN1c3RvbUNvbnRlbnQpXG4gICAgICA/LmNvbXBvbmVudEtleTtcblxuICAgIGlmICghY29tcG9uZW50S2V5IHx8IE9iamVjdC5rZXlzKHRoaXMuY3VzdG9tQ2FzZVdpZGdldENvbmZpZyB8fCB7fSkubGVuZ3RoID09PSAwKSByZXR1cm47XG5cbiAgICB0aGlzLl9zZWxlY3RlZEN1c3RvbUNvbXBvbmVudEtleSQubmV4dChjb21wb25lbnRLZXkpO1xuICAgIHRoaXMuY2hhbmdlVmFsaWRFdmVudC5lbWl0KHRydWUpO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxmb3JtXG4gIGNsYXNzPVwidmFsdGltby1kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWN1c3RvbVwiXG4gIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gIFthdHRyLmRhdGEtY2FyYm9uLXRoZW1lXT1cInRoZW1lJCB8IGFzeW5jXCJcbj5cbiAgPGNkcy10ZXh0LWxhYmVsIGNsYXNzPVwidmFsdGltby1kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZpZWxkX19pbnB1dFwiPlxuICAgIHt7ICd3aWRnZXRUYWJNYW5hZ2VtZW50LmNvbnRlbnQud2lkZ2V0VGl0bGUnIHwgdHJhbnNsYXRlIH19XG5cbiAgICA8aW5wdXRcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cIndpZGdldFRpdGxlXCJcbiAgICAgIGNkc1RleHRcbiAgICAgIFtwbGFjZWhvbGRlcl09XCInd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LndpZGdldFRpdGxlUGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAvPlxuICA8L2Nkcy10ZXh0LWxhYmVsPlxuXG4gIDx2YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtcHJvY2Vzcy1zZWxlY3RvclxuICAgIFtkb2N1bWVudERlZmluaXRpb25OYW1lXT1cImRvY3VtZW50RGVmaW5pdGlvbk5hbWUkIHwgYXN5bmNcIlxuICA+PC92YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtcHJvY2Vzcy1zZWxlY3Rvcj5cblxuICA8Y2RzLWxhYmVsIGNsYXNzPVwiZHJvcGRvd24tbGFiZWxcIj5cbiAgICB7eyAnd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LmN1c3RvbS5zZWxlY3RDb21wb25lbnQnIHwgdHJhbnNsYXRlIH19XG5cbiAgICA8Y2RzLWRyb3Bkb3duXG4gICAgICAqbmdJZj1cImNvbXBvbmVudExpc3RJdGVtcyQgfCBhc3luYyBhcyBjb21wb25lbnRMaXN0SXRlbXNcIlxuICAgICAgW2FwcGVuZElubGluZV09XCJmYWxzZVwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC5jdXN0b20ucGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJjb21wb25lbnRMaXN0SXRlbXMubGVuZ3RoID09PSAwXCJcbiAgICAgIChzZWxlY3RlZCk9XCJjb21wb25lbnREcm9wRG93bkNoYW5nZSgkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8Y2RzLWRyb3Bkb3duLWxpc3QgW2l0ZW1zXT1cImNvbXBvbmVudExpc3RJdGVtc1wiPiA8L2Nkcy1kcm9wZG93bi1saXN0PlxuICAgIDwvY2RzLWRyb3Bkb3duPlxuICA8L2Nkcy1sYWJlbD5cbjwvZm9ybT5cbiJdfQ==
|
|
@@ -21,17 +21,20 @@ import { CARBON_THEME, CurrentCarbonTheme, InputLabelModule, } from '@valtimo/co
|
|
|
21
21
|
import { ButtonModule, IconModule, InputModule, Tab, TabsModule } from 'carbon-components-angular';
|
|
22
22
|
import { debounceTime, map, Subscription } from 'rxjs';
|
|
23
23
|
import { DossierManagementWidgetFieldsColumnComponent } from './column/dossier-management-widget-fields-column.component';
|
|
24
|
+
import { DossierManagementWidgetProcessSelectorComponent } from '../process-selector/dossier-management-widget-process-selector.component';
|
|
24
25
|
import * as i0 from "@angular/core";
|
|
25
26
|
import * as i1 from "@valtimo/components";
|
|
26
27
|
import * as i2 from "@angular/forms";
|
|
27
|
-
import * as i3 from "
|
|
28
|
-
import * as i4 from "
|
|
29
|
-
import * as i5 from "@
|
|
30
|
-
import * as i6 from "
|
|
28
|
+
import * as i3 from "@angular/router";
|
|
29
|
+
import * as i4 from "../../../services";
|
|
30
|
+
import * as i5 from "@angular/common";
|
|
31
|
+
import * as i6 from "@ngx-translate/core";
|
|
32
|
+
import * as i7 from "carbon-components-angular";
|
|
31
33
|
export class DossierManagementWidgetFieldsComponent {
|
|
32
|
-
constructor(cdsThemeService, fb, widgetWizardService) {
|
|
34
|
+
constructor(cdsThemeService, fb, route, widgetWizardService) {
|
|
33
35
|
this.cdsThemeService = cdsThemeService;
|
|
34
36
|
this.fb = fb;
|
|
37
|
+
this.route = route;
|
|
35
38
|
this.widgetWizardService = widgetWizardService;
|
|
36
39
|
this.class = 'valtimo-dossier-management-widget-field';
|
|
37
40
|
this.changeValidEvent = new EventEmitter();
|
|
@@ -47,6 +50,7 @@ export class DossierManagementWidgetFieldsComponent {
|
|
|
47
50
|
[index]: curr,
|
|
48
51
|
}), {}));
|
|
49
52
|
this.activeTab = signal(0);
|
|
53
|
+
this.documentDefinitionName$ = this.route.paramMap.pipe(map((paramMap) => paramMap.get('name') ?? ''));
|
|
50
54
|
this._subscriptions = new Subscription();
|
|
51
55
|
this._contentValid = signal(false);
|
|
52
56
|
}
|
|
@@ -113,8 +117,8 @@ export class DossierManagementWidgetFieldsComponent {
|
|
|
113
117
|
this._contentValid.set(event.valid);
|
|
114
118
|
this.changeValidEvent.emit(event.valid && this.form.valid);
|
|
115
119
|
}
|
|
116
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DossierManagementWidgetFieldsComponent, deps: [{ token: i1.CdsThemeService }, { token: i2.FormBuilder }, { token: i3.WidgetWizardService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
117
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: DossierManagementWidgetFieldsComponent, isStandalone: true, selector: "ng-component", outputs: { changeValidEvent: "changeValidEvent" }, host: { properties: { "class": "this.class" } }, viewQueries: [{ propertyName: "_tab", first: true, predicate: Tab, descendants: true }], 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<p>{{ 'widgetTabManagement.content.description' | translate }}</p>\n\n<form [formGroup]=\"form\">\n <cds-text-label\n [attr.data-carbon-theme]=\"theme$ | async\"\n class=\"valtimo-dossier-management-widget-field__input\"\n >\n <v-input-label\n [title]=\"'widgetTabManagement.content.widgetTitle' | translate\"\n [tooltip]=\"'widgetTabManagement.content.widgetTitleTooltip' | translate\"\n >\n </v-input-label>\n\n <input\n formControlName=\"widgetTitle\"\n cdsText\n [placeholder]=\"'widgetTabManagement.content.widgetTitlePlaceholder' | translate\"\n type=\"text\"\n />\n </cds-text-label>\n</form>\n\n<cds-tabs type=\"contained\">\n @for (column of columns(); track $index) {\n <cds-tab\n [active]=\"activeTab() === $index\"\n [heading]=\"columnHeading\"\n [context]=\"{index: $index, count: $count}\"\n (selected)=\"onTabSelected($index)\"\n >\n <valtimo-dossier-management-widget-fields-column\n *ngIf=\"activeTab() === $index\"\n [isFieldWidget]=\"true\"\n [columnData]=\"selectedWidgetContent()?.[$index]\"\n (columnUpdateEvent)=\"onColumnUpdateEvent($event, $index)\"\n ></valtimo-dossier-management-widget-fields-column>\n </cds-tab>\n }\n <cds-tab\n *ngIf=\"columns().length < widgetWidth\"\n [heading]=\"addColumn\"\n [id]=\"'addColumn'\"\n class=\"valtimo-dossier-management-widget-field__add\"\n ></cds-tab>\n</cds-tabs>\n\n<ng-template #addColumn>\n <button\n cdsButton=\"ghost\"\n [iconOnly]=\"true\"\n (click)=\"$event.stopImmediatePropagation(); onAddColumnClick()\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #columnHeading let-data>\n <div class=\"valtimo-dossier-management-widget-field__heading\">\n {{ 'widgetTabManagement.content.column' | translate: {number: data.index + 1} }}\n\n <button\n cdsButton=\"ghost\"\n [disabled]=\"data.count === 1\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (click)=\"onDeleteColumnClick(data.index)\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"close\" size=\"16\"></svg>\n </button>\n </div>\n</ng-template>\n", styles: [".valtimo-dossier-management-widget-field{display:flex;flex-direction:column
|
|
120
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DossierManagementWidgetFieldsComponent, deps: [{ token: i1.CdsThemeService }, { token: i2.FormBuilder }, { token: i3.ActivatedRoute }, { token: i4.WidgetWizardService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
121
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: DossierManagementWidgetFieldsComponent, isStandalone: true, selector: "ng-component", outputs: { changeValidEvent: "changeValidEvent" }, host: { properties: { "class": "this.class" } }, viewQueries: [{ propertyName: "_tab", first: true, predicate: Tab, descendants: true }], 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<p>{{ 'widgetTabManagement.content.description' | translate }}</p>\n\n<form [formGroup]=\"form\">\n <cds-text-label\n [attr.data-carbon-theme]=\"theme$ | async\"\n class=\"valtimo-dossier-management-widget-field__input\"\n >\n <v-input-label\n [title]=\"'widgetTabManagement.content.widgetTitle' | translate\"\n [tooltip]=\"'widgetTabManagement.content.widgetTitleTooltip' | translate\"\n >\n </v-input-label>\n\n <input\n formControlName=\"widgetTitle\"\n cdsText\n [placeholder]=\"'widgetTabManagement.content.widgetTitlePlaceholder' | translate\"\n type=\"text\"\n />\n </cds-text-label>\n</form>\n\n<valtimo-dossier-management-widget-process-selector\n [documentDefinitionName]=\"documentDefinitionName$ | async\"\n></valtimo-dossier-management-widget-process-selector>\n\n<cds-tabs type=\"contained\">\n @for (column of columns(); track $index) {\n <cds-tab\n [active]=\"activeTab() === $index\"\n [heading]=\"columnHeading\"\n [context]=\"{index: $index, count: $count}\"\n (selected)=\"onTabSelected($index)\"\n >\n <valtimo-dossier-management-widget-fields-column\n *ngIf=\"activeTab() === $index\"\n [isFieldWidget]=\"true\"\n [columnData]=\"selectedWidgetContent()?.[$index]\"\n (columnUpdateEvent)=\"onColumnUpdateEvent($event, $index)\"\n ></valtimo-dossier-management-widget-fields-column>\n </cds-tab>\n }\n <cds-tab\n *ngIf=\"columns().length < widgetWidth\"\n [heading]=\"addColumn\"\n [id]=\"'addColumn'\"\n class=\"valtimo-dossier-management-widget-field__add\"\n ></cds-tab>\n</cds-tabs>\n\n<ng-template #addColumn>\n <button\n cdsButton=\"ghost\"\n [iconOnly]=\"true\"\n (click)=\"$event.stopImmediatePropagation(); onAddColumnClick()\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #columnHeading let-data>\n <div class=\"valtimo-dossier-management-widget-field__heading\">\n {{ 'widgetTabManagement.content.column' | translate: {number: data.index + 1} }}\n\n <button\n cdsButton=\"ghost\"\n [disabled]=\"data.count === 1\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (click)=\"onDeleteColumnClick(data.index)\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"close\" size=\"16\"></svg>\n </button>\n </div>\n</ng-template>\n", styles: [".valtimo-dossier-management-widget-field{display:flex;flex-direction:column;gap:16px}.valtimo-dossier-management-widget-field__input{max-width:288px}.valtimo-dossier-management-widget-field__heading{display:flex;align-items:center}.valtimo-dossier-management-widget-field #addColumn-header{padding:0!important}.valtimo-dossier-management-widget-field .cds--tabs__nav-item{padding-right:0!important}\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: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i7.TextInputLabelComponent, selector: "cds-text-label, ibm-text-label", inputs: ["labelInputID", "disabled", "skeleton", "labelTemplate", "textInputTemplate", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i7.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: i7.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i7.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive", "tabContent", "templateContext"], outputs: ["selected"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i7.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { 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: ButtonModule }, { kind: "directive", type: i7.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: DossierManagementWidgetFieldsColumnComponent, selector: "valtimo-dossier-management-widget-fields-column", inputs: ["columnData", "addTranslateKey", "isFieldWidget", "fieldWidthDropdown"], outputs: ["columnUpdateEvent"] }, { kind: "component", type: DossierManagementWidgetProcessSelectorComponent, selector: "valtimo-dossier-management-widget-process-selector", inputs: ["documentDefinitionName"] }, { kind: "ngmodule", type: InputLabelModule }, { kind: "component", type: i1.InputLabelComponent, selector: "v-input-label", inputs: ["name", "tooltip", "largeMargin", "small", "noMargin", "title", "titleTranslationKey", "required", "disabled", "carbonTheme"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
118
122
|
}
|
|
119
123
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DossierManagementWidgetFieldsComponent, decorators: [{
|
|
120
124
|
type: Component,
|
|
@@ -127,9 +131,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
127
131
|
ReactiveFormsModule,
|
|
128
132
|
ButtonModule,
|
|
129
133
|
DossierManagementWidgetFieldsColumnComponent,
|
|
134
|
+
DossierManagementWidgetProcessSelectorComponent,
|
|
130
135
|
InputLabelModule,
|
|
131
|
-
], 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<p>{{ 'widgetTabManagement.content.description' | translate }}</p>\n\n<form [formGroup]=\"form\">\n <cds-text-label\n [attr.data-carbon-theme]=\"theme$ | async\"\n class=\"valtimo-dossier-management-widget-field__input\"\n >\n <v-input-label\n [title]=\"'widgetTabManagement.content.widgetTitle' | translate\"\n [tooltip]=\"'widgetTabManagement.content.widgetTitleTooltip' | translate\"\n >\n </v-input-label>\n\n <input\n formControlName=\"widgetTitle\"\n cdsText\n [placeholder]=\"'widgetTabManagement.content.widgetTitlePlaceholder' | translate\"\n type=\"text\"\n />\n </cds-text-label>\n</form>\n\n<cds-tabs type=\"contained\">\n @for (column of columns(); track $index) {\n <cds-tab\n [active]=\"activeTab() === $index\"\n [heading]=\"columnHeading\"\n [context]=\"{index: $index, count: $count}\"\n (selected)=\"onTabSelected($index)\"\n >\n <valtimo-dossier-management-widget-fields-column\n *ngIf=\"activeTab() === $index\"\n [isFieldWidget]=\"true\"\n [columnData]=\"selectedWidgetContent()?.[$index]\"\n (columnUpdateEvent)=\"onColumnUpdateEvent($event, $index)\"\n ></valtimo-dossier-management-widget-fields-column>\n </cds-tab>\n }\n <cds-tab\n *ngIf=\"columns().length < widgetWidth\"\n [heading]=\"addColumn\"\n [id]=\"'addColumn'\"\n class=\"valtimo-dossier-management-widget-field__add\"\n ></cds-tab>\n</cds-tabs>\n\n<ng-template #addColumn>\n <button\n cdsButton=\"ghost\"\n [iconOnly]=\"true\"\n (click)=\"$event.stopImmediatePropagation(); onAddColumnClick()\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #columnHeading let-data>\n <div class=\"valtimo-dossier-management-widget-field__heading\">\n {{ 'widgetTabManagement.content.column' | translate: {number: data.index + 1} }}\n\n <button\n cdsButton=\"ghost\"\n [disabled]=\"data.count === 1\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (click)=\"onDeleteColumnClick(data.index)\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"close\" size=\"16\"></svg>\n </button>\n </div>\n</ng-template>\n", styles: [".valtimo-dossier-management-widget-field{display:flex;flex-direction:column
|
|
132
|
-
}], ctorParameters: () => [{ type: i1.CdsThemeService }, { type: i2.FormBuilder }, { type: i3.WidgetWizardService }], propDecorators: { class: [{
|
|
136
|
+
], 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<p>{{ 'widgetTabManagement.content.description' | translate }}</p>\n\n<form [formGroup]=\"form\">\n <cds-text-label\n [attr.data-carbon-theme]=\"theme$ | async\"\n class=\"valtimo-dossier-management-widget-field__input\"\n >\n <v-input-label\n [title]=\"'widgetTabManagement.content.widgetTitle' | translate\"\n [tooltip]=\"'widgetTabManagement.content.widgetTitleTooltip' | translate\"\n >\n </v-input-label>\n\n <input\n formControlName=\"widgetTitle\"\n cdsText\n [placeholder]=\"'widgetTabManagement.content.widgetTitlePlaceholder' | translate\"\n type=\"text\"\n />\n </cds-text-label>\n</form>\n\n<valtimo-dossier-management-widget-process-selector\n [documentDefinitionName]=\"documentDefinitionName$ | async\"\n></valtimo-dossier-management-widget-process-selector>\n\n<cds-tabs type=\"contained\">\n @for (column of columns(); track $index) {\n <cds-tab\n [active]=\"activeTab() === $index\"\n [heading]=\"columnHeading\"\n [context]=\"{index: $index, count: $count}\"\n (selected)=\"onTabSelected($index)\"\n >\n <valtimo-dossier-management-widget-fields-column\n *ngIf=\"activeTab() === $index\"\n [isFieldWidget]=\"true\"\n [columnData]=\"selectedWidgetContent()?.[$index]\"\n (columnUpdateEvent)=\"onColumnUpdateEvent($event, $index)\"\n ></valtimo-dossier-management-widget-fields-column>\n </cds-tab>\n }\n <cds-tab\n *ngIf=\"columns().length < widgetWidth\"\n [heading]=\"addColumn\"\n [id]=\"'addColumn'\"\n class=\"valtimo-dossier-management-widget-field__add\"\n ></cds-tab>\n</cds-tabs>\n\n<ng-template #addColumn>\n <button\n cdsButton=\"ghost\"\n [iconOnly]=\"true\"\n (click)=\"$event.stopImmediatePropagation(); onAddColumnClick()\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #columnHeading let-data>\n <div class=\"valtimo-dossier-management-widget-field__heading\">\n {{ 'widgetTabManagement.content.column' | translate: {number: data.index + 1} }}\n\n <button\n cdsButton=\"ghost\"\n [disabled]=\"data.count === 1\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (click)=\"onDeleteColumnClick(data.index)\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"close\" size=\"16\"></svg>\n </button>\n </div>\n</ng-template>\n", styles: [".valtimo-dossier-management-widget-field{display:flex;flex-direction:column;gap:16px}.valtimo-dossier-management-widget-field__input{max-width:288px}.valtimo-dossier-management-widget-field__heading{display:flex;align-items:center}.valtimo-dossier-management-widget-field #addColumn-header{padding:0!important}.valtimo-dossier-management-widget-field .cds--tabs__nav-item{padding-right:0!important}\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"] }]
|
|
137
|
+
}], ctorParameters: () => [{ type: i1.CdsThemeService }, { type: i2.FormBuilder }, { type: i3.ActivatedRoute }, { type: i4.WidgetWizardService }], propDecorators: { class: [{
|
|
133
138
|
type: HostBinding,
|
|
134
139
|
args: ['class']
|
|
135
140
|
}], changeValidEvent: [{
|
|
@@ -138,4 +143,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
138
143
|
type: ViewChild,
|
|
139
144
|
args: [Tab]
|
|
140
145
|
}] } });
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1maWVsZHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtY29uZmlndXJhdG9ycy9maWVsZHMvZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1maWVsZHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtY29uZmlndXJhdG9ycy9maWVsZHMvZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1maWVsZHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFlBQVksRUFDWixXQUFXLEVBR1gsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBYyxtQkFBbUIsRUFBRSxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUNMLFlBQVksRUFFWixrQkFBa0IsRUFDbEIsZ0JBQWdCLEdBQ2pCLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUMsTUFBTSwy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QUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTzthQUMvRSxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0QsQ0FBQzsrR0ExSFUsc0NBQXNDO21HQUF0QyxzQ0FBc0Msa05BS3RDLEdBQUcsZ0RDcEVoQix3MEZBdUZBLGdzQ0RuQ0ksWUFBWSx1TEFDWixlQUFlLDJGQUNmLFdBQVcsMmFBQ1gsVUFBVSwrYkFDVixVQUFVLDROQUNWLG1CQUFtQiw0OEJBQ25CLFlBQVksaU1BQ1osNENBQTRDLDZNQUM1QyxnQkFBZ0I7OzRGQUdQLHNDQUFzQztrQkFsQmxELFNBQVM7c0NBR1MsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxjQUN6QixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixlQUFlO3dCQUNmLFdBQVc7d0JBQ1gsVUFBVTt3QkFDVixVQUFVO3dCQUNWLG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDWiw0Q0FBNEM7d0JBQzVDLGdCQUFnQjtxQkFDakI7Z0pBS3FDLEtBQUs7c0JBQTFDLFdBQVc7dUJBQUMsT0FBTztnQkFDTSxnQkFBZ0I7c0JBQXpDLE1BQU07Z0JBQzBCLElBQUk7c0JBQXBDLFNBQVM7dUJBQUMsR0FBRyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBzaWduYWwsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtQnVpbGRlciwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ0FSQk9OX1RIRU1FLFxuICBDZHNUaGVtZVNlcnZpY2UsXG4gIEN1cnJlbnRDYXJib25UaGVtZSxcbiAgSW5wdXRMYWJlbE1vZHVsZSxcbn0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge0ZpZWxkc0Nhc2VXaWRnZXRWYWx1ZSwgV2lkZ2V0RmllbGRzQ29udGVudH0gZnJvbSAnQHZhbHRpbW8vZG9zc2llcic7XG5pbXBvcnQge0J1dHRvbk1vZHVsZSwgSWNvbk1vZHVsZSwgSW5wdXRNb2R1bGUsIFRhYiwgVGFic01vZHVsZX0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgbWFwLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtXaWRnZXRDb250ZW50Q29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtXaWRnZXRXaXphcmRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge0Rvc3NpZXJNYW5hZ2VtZW50V2lkZ2V0RmllbGRzQ29sdW1uQ29tcG9uZW50fSBmcm9tICcuL2NvbHVtbi9kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZpZWxkcy1jb2x1bW4uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZpZWxkcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Rvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtZmllbGRzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBJbnB1dE1vZHVsZSxcbiAgICBUYWJzTW9kdWxlLFxuICAgIEljb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgRG9zc2llck1hbmFnZW1lbnRXaWRnZXRGaWVsZHNDb2x1bW5Db21wb25lbnQsXG4gICAgSW5wdXRMYWJlbE1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRG9zc2llck1hbmFnZW1lbnRXaWRnZXRGaWVsZHNDb21wb25lbnRcbiAgaW1wbGVtZW50cyBXaWRnZXRDb250ZW50Q29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdFxue1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgcHVibGljIHJlYWRvbmx5IGNsYXNzID0gJ3ZhbHRpbW8tZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1maWVsZCc7XG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgY2hhbmdlVmFsaWRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQFZpZXdDaGlsZChUYWIpIHByaXZhdGUgcmVhZG9ubHkgX3RhYjogVGFiO1xuXG4gIHB1YmxpYyBmb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgd2lkZ2V0VGl0bGU6IHRoaXMuZmIuY29udHJvbCh0aGlzLndpZGdldFdpemFyZFNlcnZpY2Uud2lkZ2V0VGl0bGUoKSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gIH0pO1xuXG4gIHB1YmxpYyByZWFkb25seSBjb2x1bW5zID0gc2lnbmFsPG51bGxbXT4oW251bGxdKTtcbiAgcHVibGljIHJlYWRvbmx5IHdpZGdldFdpZHRoID0gdGhpcy53aWRnZXRXaXphcmRTZXJ2aWNlLndpZGdldFdpZHRoKCk7XG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZFRhYkluZGV4ID0gLTE7XG4gIHB1YmxpYyByZWFkb25seSB0aGVtZSQgPSB0aGlzLmNkc1RoZW1lU2VydmljZS5jdXJyZW50VGhlbWUkLnBpcGUoXG4gICAgbWFwKCh0aGVtZTogQ3VycmVudENhcmJvblRoZW1lKSA9PlxuICAgICAgdGhlbWUgPT09IEN1cnJlbnRDYXJib25UaGVtZS5HMTAgPyBDQVJCT05fVEhFTUUuV0hJVEUgOiBDQVJCT05fVEhFTUUuRzkwXG4gICAgKVxuICApO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWRXaWRnZXRDb250ZW50ID0gY29tcHV0ZWQoKCkgPT5cbiAgICAodGhpcy53aWRnZXRXaXphcmRTZXJ2aWNlLndpZGdldENvbnRlbnQoKSBhcyBXaWRnZXRGaWVsZHNDb250ZW50KT8uY29sdW1ucy5yZWR1Y2UoXG4gICAgICAoYWNjLCBjdXJyLCBpbmRleCkgPT4gKHtcbiAgICAgICAgLi4uYWNjLFxuICAgICAgICBbaW5kZXhdOiBjdXJyLFxuICAgICAgfSksXG4gICAgICB7fVxuICAgIClcbiAgKTtcbiAgcHVibGljIHJlYWRvbmx5IGFjdGl2ZVRhYiA9IHNpZ25hbDxudW1iZXI+KDApO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvbnRlbnRWYWxpZCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHNUaGVtZVNlcnZpY2U6IENkc1RoZW1lU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpZGdldFdpemFyZFNlcnZpY2U6IFdpZGdldFdpemFyZFNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoMTAwKSkuc3Vic2NyaWJlKGZvcm1WYWx1ZSA9PiB7XG4gICAgICAgIHRoaXMud2lkZ2V0V2l6YXJkU2VydmljZS53aWRnZXRUaXRsZS5zZXQoZm9ybVZhbHVlLndpZGdldFRpdGxlID8/ICcnKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VWYWxpZEV2ZW50LmVtaXQodGhpcy5mb3JtLnZhbGlkICYmIHRoaXMuX2NvbnRlbnRWYWxpZCgpKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICBjb25zdCB3aWRnZXRDb250ZW50ID0gKHRoaXMud2lkZ2V0V2l6YXJkU2VydmljZS53aWRnZXRDb250ZW50KCkgYXMgV2lkZ2V0RmllbGRzQ29udGVudClcbiAgICAgID8uY29sdW1ucztcbiAgICBpZiAoIXdpZGdldENvbnRlbnQpIHJldHVybjtcblxuICAgIHRoaXMuY29sdW1ucy5zZXQoT2JqZWN0LmtleXMod2lkZ2V0Q29udGVudCkubWFwKCgpID0+IG51bGwpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fdGFiLnRhYkluZGV4ID0gLTE7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuY2hhbmdlVmFsaWRFdmVudC5lbWl0KGZhbHNlKTtcbiAgICB0aGlzLmZvcm0ucmVzZXQoKTtcbiAgICB0aGlzLl9jb250ZW50VmFsaWQuc2V0KGZhbHNlKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkFkZENvbHVtbkNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuY29sdW1ucy51cGRhdGUodmFsdWUgPT4gWy4uLnZhbHVlLCBudWxsXSk7XG4gICAgdGhpcy5hY3RpdmVUYWIuc2V0KHRoaXMuY29sdW1ucygpLmxlbmd0aCAtIDEpO1xuICAgIHRoaXMuY2hhbmdlVmFsaWRFdmVudC5lbWl0KGZhbHNlKTtcbiAgfVxuXG4gIHB1YmxpYyBvblRhYlNlbGVjdGVkKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2ZVRhYi5zZXQoaW5kZXgpO1xuICB9XG5cbiAgcHVibGljIG9uRGVsZXRlQ29sdW1uQ2xpY2soaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMud2lkZ2V0V2l6YXJkU2VydmljZS53aWRnZXRDb250ZW50LnVwZGF0ZShjb250ZW50ID0+IHtcbiAgICAgIGlmICghY29udGVudCkgcmV0dXJuIG51bGw7XG5cbiAgICAgIGNvbnN0IHdpZGdldENvbnRlbnQgPSBjb250ZW50IGFzIFdpZGdldEZpZWxkc0NvbnRlbnQ7XG5cbiAgICAgIGxldCB0ZW1wSW5kZXggPSBpbmRleDtcbiAgICAgIGxldCB0ZW1wQ29udGVudCA9IHsuLi53aWRnZXRDb250ZW50fTtcbiAgICAgIHdoaWxlICh0ZW1wSW5kZXggPCB0aGlzLmNvbHVtbnMoKS5sZW5ndGggLSAxKSB7XG4gICAgICAgIHRlbXBDb250ZW50LmNvbHVtbnNbdGVtcEluZGV4XSA9IHRlbXBDb250ZW50LmNvbHVtbnNbdGVtcEluZGV4ICsgMV07XG4gICAgICAgIHRlbXBJbmRleCsrO1xuICAgICAgfVxuICAgICAgdGVtcENvbnRlbnQuY29sdW1ucy5zcGxpY2UodGVtcEluZGV4LCAxKTtcblxuICAgICAgcmV0dXJuIHRlbXBDb250ZW50O1xuICAgIH0pO1xuXG4gICAgdGhpcy5jb2x1bW5zLnVwZGF0ZSgoY29sdW1uczogbnVsbFtdKSA9PiB7XG4gICAgICBjb25zdCB0ZW1wID0gY29sdW1ucztcbiAgICAgIHRlbXAuc3BsaWNlKGluZGV4LCAxKTtcblxuICAgICAgcmV0dXJuIHRlbXA7XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5hY3RpdmVUYWIoKSAhPT0gaW5kZXgpIHJldHVybjtcblxuICAgIHRoaXMuYWN0aXZlVGFiLnNldCgtMSk7XG4gIH1cblxuICBwdWJsaWMgb25Db2x1bW5VcGRhdGVFdmVudChcbiAgICBldmVudDoge1xuICAgICAgZGF0YTogRmllbGRzQ2FzZVdpZGdldFZhbHVlW107XG4gICAgICB2YWxpZDogYm9vbGVhbjtcbiAgICB9LFxuICAgIGNvbHVtbkluZGV4OiBudW1iZXJcbiAgKTogdm9pZCB7XG4gICAgdGhpcy53aWRnZXRXaXphcmRTZXJ2aWNlLndpZGdldENvbnRlbnQudXBkYXRlKGNvbnRlbnQgPT4ge1xuICAgICAgaWYgKCFjb250ZW50KSByZXR1cm4ge2NvbHVtbnM6IFtldmVudC5kYXRhXX07XG5cbiAgICAgIGNvbnN0IGNvbHVtbnMgPSAoY29udGVudCBhcyBXaWRnZXRGaWVsZHNDb250ZW50KT8uY29sdW1ucy5tYXAoKGNvbHVtbiwgaW5kZXgpID0+XG4gICAgICAgIGluZGV4ID09PSBjb2x1bW5JbmRleCA/IGV2ZW50LmRhdGEgOiBjb2x1bW5cbiAgICAgICk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb2x1bW5zOiBjb2x1bW5JbmRleCA+IGNvbHVtbnMubGVuZ3RoIC0gMSA/IFsuLi5jb2x1bW5zLCBldmVudC5kYXRhXSA6IGNvbHVtbnMsXG4gICAgICB9O1xuICAgIH0pO1xuICAgIHRoaXMuX2NvbnRlbnRWYWxpZC5zZXQoZXZlbnQudmFsaWQpO1xuICAgIHRoaXMuY2hhbmdlVmFsaWRFdmVudC5lbWl0KGV2ZW50LnZhbGlkICYmIHRoaXMuZm9ybS52YWxpZCk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPHA+e3sgJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC5kZXNjcmlwdGlvbicgfCB0cmFuc2xhdGUgfX08L3A+XG5cbjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICA8Y2RzLXRleHQtbGFiZWxcbiAgICBbYXR0ci5kYXRhLWNhcmJvbi10aGVtZV09XCJ0aGVtZSQgfCBhc3luY1wiXG4gICAgY2xhc3M9XCJ2YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtZmllbGRfX2lucHV0XCJcbiAgPlxuICAgIDx2LWlucHV0LWxhYmVsXG4gICAgICBbdGl0bGVdPVwiJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC53aWRnZXRUaXRsZScgfCB0cmFuc2xhdGVcIlxuICAgICAgW3Rvb2x0aXBdPVwiJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC53aWRnZXRUaXRsZVRvb2x0aXAnIHwgdHJhbnNsYXRlXCJcbiAgICA+XG4gICAgPC92LWlucHV0LWxhYmVsPlxuXG4gICAgPGlucHV0XG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJ3aWRnZXRUaXRsZVwiXG4gICAgICBjZHNUZXh0XG4gICAgICBbcGxhY2Vob2xkZXJdPVwiJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC53aWRnZXRUaXRsZVBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgLz5cbiAgPC9jZHMtdGV4dC1sYWJlbD5cbjwvZm9ybT5cblxuPGNkcy10YWJzIHR5cGU9XCJjb250YWluZWRcIj5cbiAgQGZvciAoY29sdW1uIG9mIGNvbHVtbnMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgPGNkcy10YWJcbiAgICAgIFthY3RpdmVdPVwiYWN0aXZlVGFiKCkgPT09ICRpbmRleFwiXG4gICAgICBbaGVhZGluZ109XCJjb2x1bW5IZWFkaW5nXCJcbiAgICAgIFtjb250ZXh0XT1cIntpbmRleDogJGluZGV4LCBjb3VudDogJGNvdW50fVwiXG4gICAgICAoc2VsZWN0ZWQpPVwib25UYWJTZWxlY3RlZCgkaW5kZXgpXCJcbiAgICA+XG4gICAgICA8dmFsdGltby1kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZpZWxkcy1jb2x1bW5cbiAgICAgICAgKm5nSWY9XCJhY3RpdmVUYWIoKSA9PT0gJGluZGV4XCJcbiAgICAgICAgW2lzRmllbGRXaWRnZXRdPVwidHJ1ZVwiXG4gICAgICAgIFtjb2x1bW5EYXRhXT1cInNlbGVjdGVkV2lkZ2V0Q29udGVudCgpPy5bJGluZGV4XVwiXG4gICAgICAgIChjb2x1bW5VcGRhdGVFdmVudCk9XCJvbkNvbHVtblVwZGF0ZUV2ZW50KCRldmVudCwgJGluZGV4KVwiXG4gICAgICA+PC92YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtZmllbGRzLWNvbHVtbj5cbiAgICA8L2Nkcy10YWI+XG4gIH1cbiAgPGNkcy10YWJcbiAgICAqbmdJZj1cImNvbHVtbnMoKS5sZW5ndGggPCB3aWRnZXRXaWR0aFwiXG4gICAgW2hlYWRpbmddPVwiYWRkQ29sdW1uXCJcbiAgICBbaWRdPVwiJ2FkZENvbHVtbidcIlxuICAgIGNsYXNzPVwidmFsdGltby1kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZpZWxkX19hZGRcIlxuICA+PC9jZHMtdGFiPlxuPC9jZHMtdGFicz5cblxuPG5nLXRlbXBsYXRlICNhZGRDb2x1bW4+XG4gIDxidXR0b25cbiAgICBjZHNCdXR0b249XCJnaG9zdFwiXG4gICAgW2ljb25Pbmx5XT1cInRydWVcIlxuICAgIChjbGljayk9XCIkZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7IG9uQWRkQ29sdW1uQ2xpY2soKVwiXG4gID5cbiAgICA8c3ZnIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIiBjZHNJY29uPVwiYWRkXCIgc2l6ZT1cIjE2XCI+PC9zdmc+XG4gIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjb2x1bW5IZWFkaW5nIGxldC1kYXRhPlxuICA8ZGl2IGNsYXNzPVwidmFsdGltby1kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZpZWxkX19oZWFkaW5nXCI+XG4gICAge3sgJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC5jb2x1bW4nIHwgdHJhbnNsYXRlOiB7bnVtYmVyOiBkYXRhLmluZGV4ICsgMX0gfX1cblxuICAgIDxidXR0b25cbiAgICAgIGNkc0J1dHRvbj1cImdob3N0XCJcbiAgICAgIFtkaXNhYmxlZF09XCJkYXRhLmNvdW50ID09PSAxXCJcbiAgICAgIFtpY29uT25seV09XCJ0cnVlXCJcbiAgICAgIHNpemU9XCJzbVwiXG4gICAgICAoY2xpY2spPVwib25EZWxldGVDb2x1bW5DbGljayhkYXRhLmluZGV4KVwiXG4gICAgPlxuICAgICAgPHN2ZyBjbGFzcz1cImNkcy0tYnRuX19pY29uXCIgY2RzSWNvbj1cImNsb3NlXCIgc2l6ZT1cIjE2XCI+PC9zdmc+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1maWVsZHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtY29uZmlndXJhdG9ycy9maWVsZHMvZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1maWVsZHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtY29uZmlndXJhdG9ycy9maWVsZHMvZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1maWVsZHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFlBQVksRUFDWixXQUFXLEVBR1gsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBYyxtQkFBbUIsRUFBRSxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUNMLFlBQVksRUFFWixrQkFBa0IsRUFDbEIsZ0JBQWdCLEdBQ2pCLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUMsTUFBTSwy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QUM1QywrQ0FBK0M7d0JBQy9DLGdCQUFnQjtxQkFDakI7NktBS3FDLEtBQUs7c0JBQTFDLFdBQVc7dUJBQUMsT0FBTztnQkFDTSxnQkFBZ0I7c0JBQXpDLE1BQU07Z0JBQzBCLElBQUk7c0JBQXBDLFNBQVM7dUJBQUMsR0FBRyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBzaWduYWwsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtQnVpbGRlciwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ0FSQk9OX1RIRU1FLFxuICBDZHNUaGVtZVNlcnZpY2UsXG4gIEN1cnJlbnRDYXJib25UaGVtZSxcbiAgSW5wdXRMYWJlbE1vZHVsZSxcbn0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge0ZpZWxkc0Nhc2VXaWRnZXRWYWx1ZSwgV2lkZ2V0RmllbGRzQ29udGVudH0gZnJvbSAnQHZhbHRpbW8vZG9zc2llcic7XG5pbXBvcnQge0J1dHRvbk1vZHVsZSwgSWNvbk1vZHVsZSwgSW5wdXRNb2R1bGUsIFRhYiwgVGFic01vZHVsZX0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgbWFwLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtXaWRnZXRDb250ZW50Q29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtXaWRnZXRXaXphcmRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge0Rvc3NpZXJNYW5hZ2VtZW50V2lkZ2V0RmllbGRzQ29sdW1uQ29tcG9uZW50fSBmcm9tICcuL2NvbHVtbi9kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZpZWxkcy1jb2x1bW4uY29tcG9uZW50JztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFBhcmFtTWFwfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtEb3NzaWVyTWFuYWdlbWVudFdpZGdldFByb2Nlc3NTZWxlY3RvckNvbXBvbmVudH0gZnJvbSAnLi4vcHJvY2Vzcy1zZWxlY3Rvci9kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LXByb2Nlc3Mtc2VsZWN0b3IuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZpZWxkcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Rvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtZmllbGRzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBJbnB1dE1vZHVsZSxcbiAgICBUYWJzTW9kdWxlLFxuICAgIEljb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgRG9zc2llck1hbmFnZW1lbnRXaWRnZXRGaWVsZHNDb2x1bW5Db21wb25lbnQsXG4gICAgRG9zc2llck1hbmFnZW1lbnRXaWRnZXRQcm9jZXNzU2VsZWN0b3JDb21wb25lbnQsXG4gICAgSW5wdXRMYWJlbE1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRG9zc2llck1hbmFnZW1lbnRXaWRnZXRGaWVsZHNDb21wb25lbnRcbiAgaW1wbGVtZW50cyBXaWRnZXRDb250ZW50Q29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdFxue1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgcHVibGljIHJlYWRvbmx5IGNsYXNzID0gJ3ZhbHRpbW8tZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1maWVsZCc7XG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgY2hhbmdlVmFsaWRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQFZpZXdDaGlsZChUYWIpIHByaXZhdGUgcmVhZG9ubHkgX3RhYjogVGFiO1xuXG4gIHB1YmxpYyBmb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgd2lkZ2V0VGl0bGU6IHRoaXMuZmIuY29udHJvbCh0aGlzLndpZGdldFdpemFyZFNlcnZpY2Uud2lkZ2V0VGl0bGUoKSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gIH0pO1xuXG4gIHB1YmxpYyByZWFkb25seSBjb2x1bW5zID0gc2lnbmFsPG51bGxbXT4oW251bGxdKTtcbiAgcHVibGljIHJlYWRvbmx5IHdpZGdldFdpZHRoID0gdGhpcy53aWRnZXRXaXphcmRTZXJ2aWNlLndpZGdldFdpZHRoKCk7XG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZFRhYkluZGV4ID0gLTE7XG4gIHB1YmxpYyByZWFkb25seSB0aGVtZSQgPSB0aGlzLmNkc1RoZW1lU2VydmljZS5jdXJyZW50VGhlbWUkLnBpcGUoXG4gICAgbWFwKCh0aGVtZTogQ3VycmVudENhcmJvblRoZW1lKSA9PlxuICAgICAgdGhlbWUgPT09IEN1cnJlbnRDYXJib25UaGVtZS5HMTAgPyBDQVJCT05fVEhFTUUuV0hJVEUgOiBDQVJCT05fVEhFTUUuRzkwXG4gICAgKVxuICApO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWRXaWRnZXRDb250ZW50ID0gY29tcHV0ZWQoKCkgPT5cbiAgICAodGhpcy53aWRnZXRXaXphcmRTZXJ2aWNlLndpZGdldENvbnRlbnQoKSBhcyBXaWRnZXRGaWVsZHNDb250ZW50KT8uY29sdW1ucy5yZWR1Y2UoXG4gICAgICAoYWNjLCBjdXJyLCBpbmRleCkgPT4gKHtcbiAgICAgICAgLi4uYWNjLFxuICAgICAgICBbaW5kZXhdOiBjdXJyLFxuICAgICAgfSksXG4gICAgICB7fVxuICAgIClcbiAgKTtcbiAgcHVibGljIHJlYWRvbmx5IGFjdGl2ZVRhYiA9IHNpZ25hbDxudW1iZXI+KDApO1xuICBwdWJsaWMgcmVhZG9ubHkgZG9jdW1lbnREZWZpbml0aW9uTmFtZSQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMucm91dGUucGFyYW1NYXAucGlwZShcbiAgICBtYXAoKHBhcmFtTWFwOiBQYXJhbU1hcCkgPT4gcGFyYW1NYXAuZ2V0KCduYW1lJykgPz8gJycpXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY29udGVudFZhbGlkID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkc1RoZW1lU2VydmljZTogQ2RzVGhlbWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgd2lkZ2V0V2l6YXJkU2VydmljZTogV2lkZ2V0V2l6YXJkU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgxMDApKS5zdWJzY3JpYmUoZm9ybVZhbHVlID0+IHtcbiAgICAgICAgdGhpcy53aWRnZXRXaXphcmRTZXJ2aWNlLndpZGdldFRpdGxlLnNldChmb3JtVmFsdWUud2lkZ2V0VGl0bGUgPz8gJycpO1xuICAgICAgICB0aGlzLmNoYW5nZVZhbGlkRXZlbnQuZW1pdCh0aGlzLmZvcm0udmFsaWQgJiYgdGhpcy5fY29udGVudFZhbGlkKCkpO1xuICAgICAgfSlcbiAgICApO1xuICAgIGNvbnN0IHdpZGdldENvbnRlbnQgPSAodGhpcy53aWRnZXRXaXphcmRTZXJ2aWNlLndpZGdldENvbnRlbnQoKSBhcyBXaWRnZXRGaWVsZHNDb250ZW50KVxuICAgICAgPy5jb2x1bW5zO1xuICAgIGlmICghd2lkZ2V0Q29udGVudCkgcmV0dXJuO1xuXG4gICAgdGhpcy5jb2x1bW5zLnNldChPYmplY3Qua2V5cyh3aWRnZXRDb250ZW50KS5tYXAoKCkgPT4gbnVsbCkpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl90YWIudGFiSW5kZXggPSAtMTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5jaGFuZ2VWYWxpZEV2ZW50LmVtaXQoZmFsc2UpO1xuICAgIHRoaXMuZm9ybS5yZXNldCgpO1xuICAgIHRoaXMuX2NvbnRlbnRWYWxpZC5zZXQoZmFsc2UpO1xuICB9XG5cbiAgcHVibGljIG9uQWRkQ29sdW1uQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5jb2x1bW5zLnVwZGF0ZSh2YWx1ZSA9PiBbLi4udmFsdWUsIG51bGxdKTtcbiAgICB0aGlzLmFjdGl2ZVRhYi5zZXQodGhpcy5jb2x1bW5zKCkubGVuZ3RoIC0gMSk7XG4gICAgdGhpcy5jaGFuZ2VWYWxpZEV2ZW50LmVtaXQoZmFsc2UpO1xuICB9XG5cbiAgcHVibGljIG9uVGFiU2VsZWN0ZWQoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZlVGFiLnNldChpbmRleCk7XG4gIH1cblxuICBwdWJsaWMgb25EZWxldGVDb2x1bW5DbGljayhpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy53aWRnZXRXaXphcmRTZXJ2aWNlLndpZGdldENvbnRlbnQudXBkYXRlKGNvbnRlbnQgPT4ge1xuICAgICAgaWYgKCFjb250ZW50KSByZXR1cm4gbnVsbDtcblxuICAgICAgY29uc3Qgd2lkZ2V0Q29udGVudCA9IGNvbnRlbnQgYXMgV2lkZ2V0RmllbGRzQ29udGVudDtcblxuICAgICAgbGV0IHRlbXBJbmRleCA9IGluZGV4O1xuICAgICAgbGV0IHRlbXBDb250ZW50ID0gey4uLndpZGdldENvbnRlbnR9O1xuICAgICAgd2hpbGUgKHRlbXBJbmRleCA8IHRoaXMuY29sdW1ucygpLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgdGVtcENvbnRlbnQuY29sdW1uc1t0ZW1wSW5kZXhdID0gdGVtcENvbnRlbnQuY29sdW1uc1t0ZW1wSW5kZXggKyAxXTtcbiAgICAgICAgdGVtcEluZGV4Kys7XG4gICAgICB9XG4gICAgICB0ZW1wQ29udGVudC5jb2x1bW5zLnNwbGljZSh0ZW1wSW5kZXgsIDEpO1xuXG4gICAgICByZXR1cm4gdGVtcENvbnRlbnQ7XG4gICAgfSk7XG5cbiAgICB0aGlzLmNvbHVtbnMudXBkYXRlKChjb2x1bW5zOiBudWxsW10pID0+IHtcbiAgICAgIGNvbnN0IHRlbXAgPSBjb2x1bW5zO1xuICAgICAgdGVtcC5zcGxpY2UoaW5kZXgsIDEpO1xuXG4gICAgICByZXR1cm4gdGVtcDtcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmFjdGl2ZVRhYigpICE9PSBpbmRleCkgcmV0dXJuO1xuXG4gICAgdGhpcy5hY3RpdmVUYWIuc2V0KC0xKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNvbHVtblVwZGF0ZUV2ZW50KFxuICAgIGV2ZW50OiB7XG4gICAgICBkYXRhOiBGaWVsZHNDYXNlV2lkZ2V0VmFsdWVbXTtcbiAgICAgIHZhbGlkOiBib29sZWFuO1xuICAgIH0sXG4gICAgY29sdW1uSW5kZXg6IG51bWJlclxuICApOiB2b2lkIHtcbiAgICB0aGlzLndpZGdldFdpemFyZFNlcnZpY2Uud2lkZ2V0Q29udGVudC51cGRhdGUoY29udGVudCA9PiB7XG4gICAgICBpZiAoIWNvbnRlbnQpIHJldHVybiB7Y29sdW1uczogW2V2ZW50LmRhdGFdfTtcblxuICAgICAgY29uc3QgY29sdW1ucyA9IChjb250ZW50IGFzIFdpZGdldEZpZWxkc0NvbnRlbnQpPy5jb2x1bW5zLm1hcCgoY29sdW1uLCBpbmRleCkgPT5cbiAgICAgICAgaW5kZXggPT09IGNvbHVtbkluZGV4ID8gZXZlbnQuZGF0YSA6IGNvbHVtblxuICAgICAgKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbHVtbnM6IGNvbHVtbkluZGV4ID4gY29sdW1ucy5sZW5ndGggLSAxID8gWy4uLmNvbHVtbnMsIGV2ZW50LmRhdGFdIDogY29sdW1ucyxcbiAgICAgIH07XG4gICAgfSk7XG4gICAgdGhpcy5fY29udGVudFZhbGlkLnNldChldmVudC52YWxpZCk7XG4gICAgdGhpcy5jaGFuZ2VWYWxpZEV2ZW50LmVtaXQoZXZlbnQudmFsaWQgJiYgdGhpcy5mb3JtLnZhbGlkKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48cD57eyAnd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LmRlc2NyaXB0aW9uJyB8IHRyYW5zbGF0ZSB9fTwvcD5cblxuPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gIDxjZHMtdGV4dC1sYWJlbFxuICAgIFthdHRyLmRhdGEtY2FyYm9uLXRoZW1lXT1cInRoZW1lJCB8IGFzeW5jXCJcbiAgICBjbGFzcz1cInZhbHRpbW8tZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1maWVsZF9faW5wdXRcIlxuICA+XG4gICAgPHYtaW5wdXQtbGFiZWxcbiAgICAgIFt0aXRsZV09XCInd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LndpZGdldFRpdGxlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbdG9vbHRpcF09XCInd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LndpZGdldFRpdGxlVG9vbHRpcCcgfCB0cmFuc2xhdGVcIlxuICAgID5cbiAgICA8L3YtaW5wdXQtbGFiZWw+XG5cbiAgICA8aW5wdXRcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cIndpZGdldFRpdGxlXCJcbiAgICAgIGNkc1RleHRcbiAgICAgIFtwbGFjZWhvbGRlcl09XCInd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LndpZGdldFRpdGxlUGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAvPlxuICA8L2Nkcy10ZXh0LWxhYmVsPlxuPC9mb3JtPlxuXG48dmFsdGltby1kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LXByb2Nlc3Mtc2VsZWN0b3JcbiAgW2RvY3VtZW50RGVmaW5pdGlvbk5hbWVdPVwiZG9jdW1lbnREZWZpbml0aW9uTmFtZSQgfCBhc3luY1wiXG4+PC92YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtcHJvY2Vzcy1zZWxlY3Rvcj5cblxuPGNkcy10YWJzIHR5cGU9XCJjb250YWluZWRcIj5cbiAgQGZvciAoY29sdW1uIG9mIGNvbHVtbnMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgPGNkcy10YWJcbiAgICAgIFthY3RpdmVdPVwiYWN0aXZlVGFiKCkgPT09ICRpbmRleFwiXG4gICAgICBbaGVhZGluZ109XCJjb2x1bW5IZWFkaW5nXCJcbiAgICAgIFtjb250ZXh0XT1cIntpbmRleDogJGluZGV4LCBjb3VudDogJGNvdW50fVwiXG4gICAgICAoc2VsZWN0ZWQpPVwib25UYWJTZWxlY3RlZCgkaW5kZXgpXCJcbiAgICA+XG4gICAgICA8dmFsdGltby1kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZpZWxkcy1jb2x1bW5cbiAgICAgICAgKm5nSWY9XCJhY3RpdmVUYWIoKSA9PT0gJGluZGV4XCJcbiAgICAgICAgW2lzRmllbGRXaWRnZXRdPVwidHJ1ZVwiXG4gICAgICAgIFtjb2x1bW5EYXRhXT1cInNlbGVjdGVkV2lkZ2V0Q29udGVudCgpPy5bJGluZGV4XVwiXG4gICAgICAgIChjb2x1bW5VcGRhdGVFdmVudCk9XCJvbkNvbHVtblVwZGF0ZUV2ZW50KCRldmVudCwgJGluZGV4KVwiXG4gICAgICA+PC92YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtZmllbGRzLWNvbHVtbj5cbiAgICA8L2Nkcy10YWI+XG4gIH1cbiAgPGNkcy10YWJcbiAgICAqbmdJZj1cImNvbHVtbnMoKS5sZW5ndGggPCB3aWRnZXRXaWR0aFwiXG4gICAgW2hlYWRpbmddPVwiYWRkQ29sdW1uXCJcbiAgICBbaWRdPVwiJ2FkZENvbHVtbidcIlxuICAgIGNsYXNzPVwidmFsdGltby1kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZpZWxkX19hZGRcIlxuICA+PC9jZHMtdGFiPlxuPC9jZHMtdGFicz5cblxuPG5nLXRlbXBsYXRlICNhZGRDb2x1bW4+XG4gIDxidXR0b25cbiAgICBjZHNCdXR0b249XCJnaG9zdFwiXG4gICAgW2ljb25Pbmx5XT1cInRydWVcIlxuICAgIChjbGljayk9XCIkZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7IG9uQWRkQ29sdW1uQ2xpY2soKVwiXG4gID5cbiAgICA8c3ZnIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIiBjZHNJY29uPVwiYWRkXCIgc2l6ZT1cIjE2XCI+PC9zdmc+XG4gIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjb2x1bW5IZWFkaW5nIGxldC1kYXRhPlxuICA8ZGl2IGNsYXNzPVwidmFsdGltby1kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZpZWxkX19oZWFkaW5nXCI+XG4gICAge3sgJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC5jb2x1bW4nIHwgdHJhbnNsYXRlOiB7bnVtYmVyOiBkYXRhLmluZGV4ICsgMX0gfX1cblxuICAgIDxidXR0b25cbiAgICAgIGNkc0J1dHRvbj1cImdob3N0XCJcbiAgICAgIFtkaXNhYmxlZF09XCJkYXRhLmNvdW50ID09PSAxXCJcbiAgICAgIFtpY29uT25seV09XCJ0cnVlXCJcbiAgICAgIHNpemU9XCJzbVwiXG4gICAgICAoY2xpY2spPVwib25EZWxldGVDb2x1bW5DbGljayhkYXRhLmluZGV4KVwiXG4gICAgPlxuICAgICAgPHN2ZyBjbGFzcz1cImNkcy0tYnRuX19pY29uXCIgY2RzSWNvbj1cImNsb3NlXCIgc2l6ZT1cIjE2XCI+PC9zdmc+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -20,23 +20,26 @@ import { TranslateModule } from '@ngx-translate/core';
|
|
|
20
20
|
import { CARBON_THEME, CurrentCarbonTheme } from '@valtimo/components';
|
|
21
21
|
import { DropdownModule, InputModule, SelectModule } from 'carbon-components-angular';
|
|
22
22
|
import { BehaviorSubject, combineLatest, filter, map, Subscription } from 'rxjs';
|
|
23
|
+
import { DossierManagementWidgetProcessSelectorComponent } from '../process-selector/dossier-management-widget-process-selector.component';
|
|
23
24
|
import * as i0 from "@angular/core";
|
|
24
25
|
import * as i1 from "@valtimo/components";
|
|
25
26
|
import * as i2 from "@angular/forms";
|
|
26
27
|
import * as i3 from "../../../services";
|
|
27
28
|
import * as i4 from "@valtimo/form";
|
|
28
|
-
import * as i5 from "@angular/
|
|
29
|
-
import * as i6 from "@
|
|
30
|
-
import * as i7 from "
|
|
29
|
+
import * as i5 from "@angular/router";
|
|
30
|
+
import * as i6 from "@angular/common";
|
|
31
|
+
import * as i7 from "@ngx-translate/core";
|
|
32
|
+
import * as i8 from "carbon-components-angular";
|
|
31
33
|
export class DossierManagementWidgetFormioComponent {
|
|
32
34
|
get widgetTitle() {
|
|
33
35
|
return this.form.get('widgetTitle');
|
|
34
36
|
}
|
|
35
|
-
constructor(cdsThemeService, fb, widgetWizardService, formService) {
|
|
37
|
+
constructor(cdsThemeService, fb, widgetWizardService, formService, route) {
|
|
36
38
|
this.cdsThemeService = cdsThemeService;
|
|
37
39
|
this.fb = fb;
|
|
38
40
|
this.widgetWizardService = widgetWizardService;
|
|
39
41
|
this.formService = formService;
|
|
42
|
+
this.route = route;
|
|
40
43
|
this.changeValidEvent = new EventEmitter();
|
|
41
44
|
this.form = this.fb.group({
|
|
42
45
|
widgetTitle: this.fb.control(this.widgetWizardService.widgetTitle(), Validators.required),
|
|
@@ -44,6 +47,7 @@ export class DossierManagementWidgetFormioComponent {
|
|
|
44
47
|
this.theme$ = this.cdsThemeService.currentTheme$.pipe(map((theme) => theme === CurrentCarbonTheme.G10 ? CARBON_THEME.WHITE : CARBON_THEME.G90));
|
|
45
48
|
this._selectedFormDefinitionId$ = new BehaviorSubject(null);
|
|
46
49
|
this._formDefinitionOptions$ = new BehaviorSubject([]);
|
|
50
|
+
this.documentDefinitionName$ = this.route.paramMap.pipe(map((paramMap) => paramMap.get('name') ?? ''));
|
|
47
51
|
this.formListItems$ = combineLatest([
|
|
48
52
|
this._formDefinitionOptions$,
|
|
49
53
|
this._selectedFormDefinitionId$,
|
|
@@ -88,8 +92,8 @@ export class DossierManagementWidgetFormioComponent {
|
|
|
88
92
|
this._selectedFormDefinitionId$.next(formDefinitionId);
|
|
89
93
|
this.changeValidEvent.emit(true);
|
|
90
94
|
}
|
|
91
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DossierManagementWidgetFormioComponent, deps: [{ token: i1.CdsThemeService }, { token: i2.FormBuilder }, { token: i3.WidgetWizardService }, { token: i4.FormService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
92
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DossierManagementWidgetFormioComponent, isStandalone: true, selector: "ng-component", outputs: { changeValidEvent: "changeValidEvent" }, 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<form\n class=\"valtimo-dossier-management-widget-formio\"\n [formGroup]=\"form\"\n [attr.data-carbon-theme]=\"theme$ | async\"\n>\n <cds-text-label class=\"valtimo-dossier-management-widget-field__input\">\n {{ 'widgetTabManagement.content.widgetTitle' | translate }}\n\n <input\n formControlName=\"widgetTitle\"\n cdsText\n [placeholder]=\"'widgetTabManagement.content.widgetTitlePlaceholder' | translate\"\n type=\"text\"\n />\n </cds-text-label>\n\n <cds-label class=\"dropdown-label\">\n {{ 'widgetTabManagement.content.formio.selectForm' | translate }}\n\n <cds-dropdown\n *ngIf=\"formListItems$ | async as formListItems\"\n [appendInline]=\"false\"\n [placeholder]=\"'widgetTabManagement.content.formio.placeholder' | translate\"\n [disabled]=\"formListItems.length === 0\"\n [dropUp]=\"false\"\n (selected)=\"componentDropDownChange($event)\"\n >\n <cds-dropdown-list [items]=\"formListItems\"> </cds-dropdown-list>\n </cds-dropdown>\n </cds-label>\n</form>\n", styles: [".valtimo-dossier-management-widget-formio{display:flex;flex-direction:column
|
|
95
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DossierManagementWidgetFormioComponent, deps: [{ token: i1.CdsThemeService }, { token: i2.FormBuilder }, { token: i3.WidgetWizardService }, { token: i4.FormService }, { token: i5.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
96
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DossierManagementWidgetFormioComponent, isStandalone: true, selector: "ng-component", outputs: { changeValidEvent: "changeValidEvent" }, 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<form\n class=\"valtimo-dossier-management-widget-formio\"\n [formGroup]=\"form\"\n [attr.data-carbon-theme]=\"theme$ | async\"\n>\n <cds-text-label class=\"valtimo-dossier-management-widget-field__input\">\n {{ 'widgetTabManagement.content.widgetTitle' | translate }}\n\n <input\n formControlName=\"widgetTitle\"\n cdsText\n [placeholder]=\"'widgetTabManagement.content.widgetTitlePlaceholder' | translate\"\n type=\"text\"\n />\n </cds-text-label>\n\n <valtimo-dossier-management-widget-process-selector\n [documentDefinitionName]=\"documentDefinitionName$ | async\"\n ></valtimo-dossier-management-widget-process-selector>\n\n <cds-label class=\"dropdown-label\">\n {{ 'widgetTabManagement.content.formio.selectForm' | translate }}\n\n <cds-dropdown\n *ngIf=\"formListItems$ | async as formListItems\"\n [appendInline]=\"false\"\n [placeholder]=\"'widgetTabManagement.content.formio.placeholder' | translate\"\n [disabled]=\"formListItems.length === 0\"\n [dropUp]=\"false\"\n (selected)=\"componentDropDownChange($event)\"\n >\n <cds-dropdown-list [items]=\"formListItems\"> </cds-dropdown-list>\n </cds-dropdown>\n </cds-label>\n</form>\n", styles: [".valtimo-dossier-management-widget-formio{display:flex;flex-direction:column;gap:16px}.valtimo-dossier-management-widget-formio ::ng-deep .dropdown-label label{display:flex;flex-direction:column;width:100%}.valtimo-dossier-management-widget-formio ::ng-deep .dropdown-label cds-dropdown{margin-top:8px}\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: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i8.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "component", type: i8.TextInputLabelComponent, selector: "cds-text-label, ibm-text-label", inputs: ["labelInputID", "disabled", "skeleton", "labelTemplate", "textInputTemplate", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i8.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { 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: SelectModule }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i8.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: i8.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: DossierManagementWidgetProcessSelectorComponent, selector: "valtimo-dossier-management-widget-process-selector", inputs: ["documentDefinitionName"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
93
97
|
}
|
|
94
98
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DossierManagementWidgetFormioComponent, decorators: [{
|
|
95
99
|
type: Component,
|
|
@@ -100,8 +104,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
100
104
|
ReactiveFormsModule,
|
|
101
105
|
SelectModule,
|
|
102
106
|
DropdownModule,
|
|
103
|
-
|
|
104
|
-
|
|
107
|
+
DossierManagementWidgetProcessSelectorComponent,
|
|
108
|
+
], 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<form\n class=\"valtimo-dossier-management-widget-formio\"\n [formGroup]=\"form\"\n [attr.data-carbon-theme]=\"theme$ | async\"\n>\n <cds-text-label class=\"valtimo-dossier-management-widget-field__input\">\n {{ 'widgetTabManagement.content.widgetTitle' | translate }}\n\n <input\n formControlName=\"widgetTitle\"\n cdsText\n [placeholder]=\"'widgetTabManagement.content.widgetTitlePlaceholder' | translate\"\n type=\"text\"\n />\n </cds-text-label>\n\n <valtimo-dossier-management-widget-process-selector\n [documentDefinitionName]=\"documentDefinitionName$ | async\"\n ></valtimo-dossier-management-widget-process-selector>\n\n <cds-label class=\"dropdown-label\">\n {{ 'widgetTabManagement.content.formio.selectForm' | translate }}\n\n <cds-dropdown\n *ngIf=\"formListItems$ | async as formListItems\"\n [appendInline]=\"false\"\n [placeholder]=\"'widgetTabManagement.content.formio.placeholder' | translate\"\n [disabled]=\"formListItems.length === 0\"\n [dropUp]=\"false\"\n (selected)=\"componentDropDownChange($event)\"\n >\n <cds-dropdown-list [items]=\"formListItems\"> </cds-dropdown-list>\n </cds-dropdown>\n </cds-label>\n</form>\n", styles: [".valtimo-dossier-management-widget-formio{display:flex;flex-direction:column;gap:16px}.valtimo-dossier-management-widget-formio ::ng-deep .dropdown-label label{display:flex;flex-direction:column;width:100%}.valtimo-dossier-management-widget-formio ::ng-deep .dropdown-label cds-dropdown{margin-top:8px}\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"] }]
|
|
109
|
+
}], ctorParameters: () => [{ type: i1.CdsThemeService }, { type: i2.FormBuilder }, { type: i3.WidgetWizardService }, { type: i4.FormService }, { type: i5.ActivatedRoute }], propDecorators: { changeValidEvent: [{
|
|
105
110
|
type: Output
|
|
106
111
|
}] } });
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1mb3JtaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtY29uZmlndXJhdG9ycy9mb3JtaW8vZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1mb3JtaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtY29uZmlndXJhdG9ycy9mb3JtaW8vZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1mb3JtaW8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUdaLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQStCLG1CQUFtQixFQUFFLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzdGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsWUFBWSxFQUFtQixrQkFBa0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBR3RGLE9BQU8sRUFBQyxjQUFjLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBRXBGLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWMsWUFBWSxFQUFDLE1BQU0sTUFB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QVksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDL0MsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFTyxtQkFBbUI7UUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUMvRCxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLE9BQU87UUFDYixNQUFNLGdCQUFnQixHQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLEVBQTBCO1lBQ3hGLEVBQUUsa0JBQWtCLENBQUM7UUFFdkIsSUFBSSxDQUFDLGdCQUFnQjtZQUFFLE9BQU87UUFFOUIsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQzsrR0EzRlUsc0NBQXNDO21HQUF0QyxzQ0FBc0MsMkhDakRuRCw0cURBK0NBLHlpQ0ROSSxZQUFZLHVMQUNaLGVBQWUsMkZBQ2YsV0FBVywrbUJBQ1gsbUJBQW1CLDQ4QkFDbkIsWUFBWSw4QkFDWixjQUFjOzs0RkFHTCxzQ0FBc0M7a0JBZGxELFNBQVM7c0NBR1MsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixlQUFlO3dCQUNmLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixZQUFZO3dCQUNaLGNBQWM7cUJBQ2Y7MEtBS3lCLGdCQUFnQjtzQkFBekMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Fic3RyYWN0Q29udHJvbCwgRm9ybUJ1aWxkZXIsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7Q0FSQk9OX1RIRU1FLCBDZHNUaGVtZVNlcnZpY2UsIEN1cnJlbnRDYXJib25UaGVtZX0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge1dpZGdldEZvcm1pb0NvbnRlbnR9IGZyb20gJ0B2YWx0aW1vL2Rvc3NpZXInO1xuaW1wb3J0IHtGb3JtRGVmaW5pdGlvbk9wdGlvbiwgRm9ybVNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2Zvcm0nO1xuaW1wb3J0IHtEcm9wZG93bk1vZHVsZSwgSW5wdXRNb2R1bGUsIFNlbGVjdE1vZHVsZX0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge0xpc3RJdGVtfSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyL2Ryb3Bkb3duL2xpc3QtaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtXaWRnZXRDb250ZW50Q29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtXaWRnZXRXaXphcmRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1mb3JtaW8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZvcm1pby5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgSW5wdXRNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBTZWxlY3RNb2R1bGUsXG4gICAgRHJvcGRvd25Nb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIERvc3NpZXJNYW5hZ2VtZW50V2lkZ2V0Rm9ybWlvQ29tcG9uZW50XG4gIGltcGxlbWVudHMgV2lkZ2V0Q29udGVudENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXRcbntcbiAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBjaGFuZ2VWYWxpZEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHB1YmxpYyByZWFkb25seSBmb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgd2lkZ2V0VGl0bGU6IHRoaXMuZmIuY29udHJvbCh0aGlzLndpZGdldFdpemFyZFNlcnZpY2Uud2lkZ2V0VGl0bGUoKSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gIH0pO1xuXG4gIHB1YmxpYyBnZXQgd2lkZ2V0VGl0bGUoKTogQWJzdHJhY3RDb250cm9sPHN0cmluZyB8IG51bGw+IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ3dpZGdldFRpdGxlJyk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgdGhlbWUkID0gdGhpcy5jZHNUaGVtZVNlcnZpY2UuY3VycmVudFRoZW1lJC5waXBlKFxuICAgIG1hcCgodGhlbWU6IEN1cnJlbnRDYXJib25UaGVtZSkgPT5cbiAgICAgIHRoZW1lID09PSBDdXJyZW50Q2FyYm9uVGhlbWUuRzEwID8gQ0FSQk9OX1RIRU1FLldISVRFIDogQ0FSQk9OX1RIRU1FLkc5MFxuICAgIClcbiAgKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zZWxlY3RlZEZvcm1EZWZpbml0aW9uSWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9mb3JtRGVmaW5pdGlvbk9wdGlvbnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGb3JtRGVmaW5pdGlvbk9wdGlvbltdPihbXSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZvcm1MaXN0SXRlbXMkOiBPYnNlcnZhYmxlPExpc3RJdGVtW10+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5fZm9ybURlZmluaXRpb25PcHRpb25zJCxcbiAgICB0aGlzLl9zZWxlY3RlZEZvcm1EZWZpbml0aW9uSWQkLFxuICBdKS5waXBlKFxuICAgIGZpbHRlcigoW29wdGlvbnNdKSA9PiAhIW9wdGlvbnMpLFxuICAgIG1hcCgoW29wdGlvbnMsIHNlbGVjdGVkRm9ybUlkXSkgPT5cbiAgICAgIG9wdGlvbnMubWFwKG9wdGlvbiA9PiAoe1xuICAgICAgICBjb250ZW50OiBvcHRpb24ubmFtZSxcbiAgICAgICAgaWQ6IG9wdGlvbi5uYW1lLFxuICAgICAgICBzZWxlY3RlZDogb3B0aW9uLm5hbWUgPT09IHNlbGVjdGVkRm9ybUlkLFxuICAgICAgfSkpXG4gICAgKVxuICApO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHNUaGVtZVNlcnZpY2U6IENkc1RoZW1lU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpZGdldFdpemFyZFNlcnZpY2U6IFdpZGdldFdpemFyZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtU2VydmljZTogRm9ybVNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBjb21wb25lbnREcm9wRG93bkNoYW5nZShldmVudDoge1xuICAgIGl0ZW06IHtpZDogc3RyaW5nOyBzZWxlY3RlZDogYm9vbGVhbn07XG4gICAgaXNVcGRhdGU6IGJvb2xlYW47XG4gIH0pOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtRGVmaW5pdGlvbklkID0gZXZlbnQ/Lml0ZW0/LmlkO1xuXG4gICAgaWYgKCFmb3JtRGVmaW5pdGlvbklkKSByZXR1cm47XG5cbiAgICB0aGlzLl9zZWxlY3RlZEZvcm1EZWZpbml0aW9uSWQkLm5leHQoZm9ybURlZmluaXRpb25JZCk7XG4gICAgdGhpcy53aWRnZXRXaXphcmRTZXJ2aWNlLndpZGdldENvbnRlbnQuc2V0KHtmb3JtRGVmaW5pdGlvbk5hbWU6IGZvcm1EZWZpbml0aW9uSWR9KTtcbiAgICB0aGlzLmNoYW5nZVZhbGlkRXZlbnQuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZldGNoRm9ybURlZmluaXRpb24oKTtcbiAgICB0aGlzLm9wZW5UaXRsZVN1YnNjcmlwdGlvbigpO1xuICAgIHRoaXMucHJlZmlsbCgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlblRpdGxlU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy53aWRnZXRUaXRsZT8udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh0aXRsZSA9PiB7XG4gICAgICAgIHRoaXMud2lkZ2V0V2l6YXJkU2VydmljZS53aWRnZXRUaXRsZS5zZXQodGl0bGUpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmZXRjaEZvcm1EZWZpbml0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybVNlcnZpY2UuZ2V0QWxsRm9ybURlZmluaXRpb25zKCkuc3Vic2NyaWJlKGRlZmluaXRpb25zID0+IHtcbiAgICAgIHRoaXMuX2Zvcm1EZWZpbml0aW9uT3B0aW9ucyQubmV4dChkZWZpbml0aW9ucyk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHByZWZpbGwoKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybURlZmluaXRpb25JZCA9ICh0aGlzLndpZGdldFdpemFyZFNlcnZpY2Uud2lkZ2V0Q29udGVudCgpIGFzIFdpZGdldEZvcm1pb0NvbnRlbnQpXG4gICAgICA/LmZvcm1EZWZpbml0aW9uTmFtZTtcblxuICAgIGlmICghZm9ybURlZmluaXRpb25JZCkgcmV0dXJuO1xuXG4gICAgdGhpcy5fc2VsZWN0ZWRGb3JtRGVmaW5pdGlvbklkJC5uZXh0KGZvcm1EZWZpbml0aW9uSWQpO1xuICAgIHRoaXMuY2hhbmdlVmFsaWRFdmVudC5lbWl0KHRydWUpO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxmb3JtXG4gIGNsYXNzPVwidmFsdGltby1kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZvcm1pb1wiXG4gIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gIFthdHRyLmRhdGEtY2FyYm9uLXRoZW1lXT1cInRoZW1lJCB8IGFzeW5jXCJcbj5cbiAgPGNkcy10ZXh0LWxhYmVsIGNsYXNzPVwidmFsdGltby1kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZpZWxkX19pbnB1dFwiPlxuICAgIHt7ICd3aWRnZXRUYWJNYW5hZ2VtZW50LmNvbnRlbnQud2lkZ2V0VGl0bGUnIHwgdHJhbnNsYXRlIH19XG5cbiAgICA8aW5wdXRcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cIndpZGdldFRpdGxlXCJcbiAgICAgIGNkc1RleHRcbiAgICAgIFtwbGFjZWhvbGRlcl09XCInd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LndpZGdldFRpdGxlUGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAvPlxuICA8L2Nkcy10ZXh0LWxhYmVsPlxuXG4gIDxjZHMtbGFiZWwgY2xhc3M9XCJkcm9wZG93bi1sYWJlbFwiPlxuICAgIHt7ICd3aWRnZXRUYWJNYW5hZ2VtZW50LmNvbnRlbnQuZm9ybWlvLnNlbGVjdEZvcm0nIHwgdHJhbnNsYXRlIH19XG5cbiAgICA8Y2RzLWRyb3Bkb3duXG4gICAgICAqbmdJZj1cImZvcm1MaXN0SXRlbXMkIHwgYXN5bmMgYXMgZm9ybUxpc3RJdGVtc1wiXG4gICAgICBbYXBwZW5kSW5saW5lXT1cImZhbHNlXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCInd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LmZvcm1pby5wbGFjZWhvbGRlcicgfCB0cmFuc2xhdGVcIlxuICAgICAgW2Rpc2FibGVkXT1cImZvcm1MaXN0SXRlbXMubGVuZ3RoID09PSAwXCJcbiAgICAgIFtkcm9wVXBdPVwiZmFsc2VcIlxuICAgICAgKHNlbGVjdGVkKT1cImNvbXBvbmVudERyb3BEb3duQ2hhbmdlKCRldmVudClcIlxuICAgID5cbiAgICAgIDxjZHMtZHJvcGRvd24tbGlzdCBbaXRlbXNdPVwiZm9ybUxpc3RJdGVtc1wiPiA8L2Nkcy1kcm9wZG93bi1saXN0PlxuICAgIDwvY2RzLWRyb3Bkb3duPlxuICA8L2Nkcy1sYWJlbD5cbjwvZm9ybT5cbiJdfQ==
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1mb3JtaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtY29uZmlndXJhdG9ycy9mb3JtaW8vZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1mb3JtaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtY29uZmlndXJhdG9ycy9mb3JtaW8vZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1mb3JtaW8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUdaLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQStCLG1CQUFtQixFQUFFLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzdGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsWUFBWSxFQUFtQixrQkFBa0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBR3RGLE9BQU8sRUFBQyxjQUFjLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBRXBGLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWMsWUFBWSxFQUFDLE1BQU0sTUFB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Ozs0RkFHdEMsc0NBQXNDO2tCQWZsRCxTQUFTO3NDQUdTLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDWixjQUFjO3dCQUNkLCtDQUErQztxQkFDaEQ7dU1BS3lCLGdCQUFnQjtzQkFBekMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Fic3RyYWN0Q29udHJvbCwgRm9ybUJ1aWxkZXIsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7Q0FSQk9OX1RIRU1FLCBDZHNUaGVtZVNlcnZpY2UsIEN1cnJlbnRDYXJib25UaGVtZX0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge1dpZGdldEZvcm1pb0NvbnRlbnR9IGZyb20gJ0B2YWx0aW1vL2Rvc3NpZXInO1xuaW1wb3J0IHtGb3JtRGVmaW5pdGlvbk9wdGlvbiwgRm9ybVNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2Zvcm0nO1xuaW1wb3J0IHtEcm9wZG93bk1vZHVsZSwgSW5wdXRNb2R1bGUsIFNlbGVjdE1vZHVsZX0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge0xpc3RJdGVtfSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyL2Ryb3Bkb3duL2xpc3QtaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtXaWRnZXRDb250ZW50Q29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtXaWRnZXRXaXphcmRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge0Rvc3NpZXJNYW5hZ2VtZW50V2lkZ2V0UHJvY2Vzc1NlbGVjdG9yQ29tcG9uZW50fSBmcm9tICcuLi9wcm9jZXNzLXNlbGVjdG9yL2Rvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtcHJvY2Vzcy1zZWxlY3Rvci5jb21wb25lbnQnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUGFyYW1NYXB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1mb3JtaW8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb3NzaWVyLW1hbmFnZW1lbnQtd2lkZ2V0LWZvcm1pby5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgSW5wdXRNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBTZWxlY3RNb2R1bGUsXG4gICAgRHJvcGRvd25Nb2R1bGUsXG4gICAgRG9zc2llck1hbmFnZW1lbnRXaWRnZXRQcm9jZXNzU2VsZWN0b3JDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIERvc3NpZXJNYW5hZ2VtZW50V2lkZ2V0Rm9ybWlvQ29tcG9uZW50XG4gIGltcGxlbWVudHMgV2lkZ2V0Q29udGVudENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXRcbntcbiAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBjaGFuZ2VWYWxpZEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHB1YmxpYyByZWFkb25seSBmb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgd2lkZ2V0VGl0bGU6IHRoaXMuZmIuY29udHJvbCh0aGlzLndpZGdldFdpemFyZFNlcnZpY2Uud2lkZ2V0VGl0bGUoKSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gIH0pO1xuXG4gIHB1YmxpYyBnZXQgd2lkZ2V0VGl0bGUoKTogQWJzdHJhY3RDb250cm9sPHN0cmluZyB8IG51bGw+IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ3dpZGdldFRpdGxlJyk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgdGhlbWUkID0gdGhpcy5jZHNUaGVtZVNlcnZpY2UuY3VycmVudFRoZW1lJC5waXBlKFxuICAgIG1hcCgodGhlbWU6IEN1cnJlbnRDYXJib25UaGVtZSkgPT5cbiAgICAgIHRoZW1lID09PSBDdXJyZW50Q2FyYm9uVGhlbWUuRzEwID8gQ0FSQk9OX1RIRU1FLldISVRFIDogQ0FSQk9OX1RIRU1FLkc5MFxuICAgIClcbiAgKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zZWxlY3RlZEZvcm1EZWZpbml0aW9uSWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9mb3JtRGVmaW5pdGlvbk9wdGlvbnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGb3JtRGVmaW5pdGlvbk9wdGlvbltdPihbXSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGRvY3VtZW50RGVmaW5pdGlvbk5hbWUkOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLnJvdXRlLnBhcmFtTWFwLnBpcGUoXG4gICAgbWFwKChwYXJhbU1hcDogUGFyYW1NYXApID0+IHBhcmFtTWFwLmdldCgnbmFtZScpID8/ICcnKVxuICApO1xuICBwdWJsaWMgcmVhZG9ubHkgZm9ybUxpc3RJdGVtcyQ6IE9ic2VydmFibGU8TGlzdEl0ZW1bXT4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLl9mb3JtRGVmaW5pdGlvbk9wdGlvbnMkLFxuICAgIHRoaXMuX3NlbGVjdGVkRm9ybURlZmluaXRpb25JZCQsXG4gIF0pLnBpcGUoXG4gICAgZmlsdGVyKChbb3B0aW9uc10pID0+ICEhb3B0aW9ucyksXG4gICAgbWFwKChbb3B0aW9ucywgc2VsZWN0ZWRGb3JtSWRdKSA9PlxuICAgICAgb3B0aW9ucy5tYXAob3B0aW9uID0+ICh7XG4gICAgICAgIGNvbnRlbnQ6IG9wdGlvbi5uYW1lLFxuICAgICAgICBpZDogb3B0aW9uLm5hbWUsXG4gICAgICAgIHNlbGVjdGVkOiBvcHRpb24ubmFtZSA9PT0gc2VsZWN0ZWRGb3JtSWQsXG4gICAgICB9KSlcbiAgICApXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkc1RoZW1lU2VydmljZTogQ2RzVGhlbWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgd2lkZ2V0V2l6YXJkU2VydmljZTogV2lkZ2V0V2l6YXJkU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1TZXJ2aWNlOiBGb3JtU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVxuICApIHt9XG5cbiAgcHVibGljIGNvbXBvbmVudERyb3BEb3duQ2hhbmdlKGV2ZW50OiB7XG4gICAgaXRlbToge2lkOiBzdHJpbmc7IHNlbGVjdGVkOiBib29sZWFufTtcbiAgICBpc1VwZGF0ZTogYm9vbGVhbjtcbiAgfSk6IHZvaWQge1xuICAgIGNvbnN0IGZvcm1EZWZpbml0aW9uSWQgPSBldmVudD8uaXRlbT8uaWQ7XG5cbiAgICBpZiAoIWZvcm1EZWZpbml0aW9uSWQpIHJldHVybjtcblxuICAgIHRoaXMuX3NlbGVjdGVkRm9ybURlZmluaXRpb25JZCQubmV4dChmb3JtRGVmaW5pdGlvbklkKTtcbiAgICB0aGlzLndpZGdldFdpemFyZFNlcnZpY2Uud2lkZ2V0Q29udGVudC5zZXQoe2Zvcm1EZWZpbml0aW9uTmFtZTogZm9ybURlZmluaXRpb25JZH0pO1xuICAgIHRoaXMuY2hhbmdlVmFsaWRFdmVudC5lbWl0KHRydWUpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZmV0Y2hGb3JtRGVmaW5pdGlvbigpO1xuICAgIHRoaXMub3BlblRpdGxlU3Vic2NyaXB0aW9uKCk7XG4gICAgdGhpcy5wcmVmaWxsKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuVGl0bGVTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLndpZGdldFRpdGxlPy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHRpdGxlID0+IHtcbiAgICAgICAgdGhpcy53aWRnZXRXaXphcmRTZXJ2aWNlLndpZGdldFRpdGxlLnNldCh0aXRsZSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGZldGNoRm9ybURlZmluaXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtU2VydmljZS5nZXRBbGxGb3JtRGVmaW5pdGlvbnMoKS5zdWJzY3JpYmUoZGVmaW5pdGlvbnMgPT4ge1xuICAgICAgdGhpcy5fZm9ybURlZmluaXRpb25PcHRpb25zJC5uZXh0KGRlZmluaXRpb25zKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcHJlZmlsbCgpOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtRGVmaW5pdGlvbklkID0gKHRoaXMud2lkZ2V0V2l6YXJkU2VydmljZS53aWRnZXRDb250ZW50KCkgYXMgV2lkZ2V0Rm9ybWlvQ29udGVudClcbiAgICAgID8uZm9ybURlZmluaXRpb25OYW1lO1xuXG4gICAgaWYgKCFmb3JtRGVmaW5pdGlvbklkKSByZXR1cm47XG5cbiAgICB0aGlzLl9zZWxlY3RlZEZvcm1EZWZpbml0aW9uSWQkLm5leHQoZm9ybURlZmluaXRpb25JZCk7XG4gICAgdGhpcy5jaGFuZ2VWYWxpZEV2ZW50LmVtaXQodHJ1ZSk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPGZvcm1cbiAgY2xhc3M9XCJ2YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtZm9ybWlvXCJcbiAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgW2F0dHIuZGF0YS1jYXJib24tdGhlbWVdPVwidGhlbWUkIHwgYXN5bmNcIlxuPlxuICA8Y2RzLXRleHQtbGFiZWwgY2xhc3M9XCJ2YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC13aWRnZXQtZmllbGRfX2lucHV0XCI+XG4gICAge3sgJ3dpZGdldFRhYk1hbmFnZW1lbnQuY29udGVudC53aWRnZXRUaXRsZScgfCB0cmFuc2xhdGUgfX1cblxuICAgIDxpbnB1dFxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwid2lkZ2V0VGl0bGVcIlxuICAgICAgY2RzVGV4dFxuICAgICAgW3BsYWNlaG9sZGVyXT1cIid3aWRnZXRUYWJNYW5hZ2VtZW50LmNvbnRlbnQud2lkZ2V0VGl0bGVQbGFjZWhvbGRlcicgfCB0cmFuc2xhdGVcIlxuICAgICAgdHlwZT1cInRleHRcIlxuICAgIC8+XG4gIDwvY2RzLXRleHQtbGFiZWw+XG5cbiAgPHZhbHRpbW8tZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1wcm9jZXNzLXNlbGVjdG9yXG4gICAgW2RvY3VtZW50RGVmaW5pdGlvbk5hbWVdPVwiZG9jdW1lbnREZWZpbml0aW9uTmFtZSQgfCBhc3luY1wiXG4gID48L3ZhbHRpbW8tZG9zc2llci1tYW5hZ2VtZW50LXdpZGdldC1wcm9jZXNzLXNlbGVjdG9yPlxuXG4gIDxjZHMtbGFiZWwgY2xhc3M9XCJkcm9wZG93bi1sYWJlbFwiPlxuICAgIHt7ICd3aWRnZXRUYWJNYW5hZ2VtZW50LmNvbnRlbnQuZm9ybWlvLnNlbGVjdEZvcm0nIHwgdHJhbnNsYXRlIH19XG5cbiAgICA8Y2RzLWRyb3Bkb3duXG4gICAgICAqbmdJZj1cImZvcm1MaXN0SXRlbXMkIHwgYXN5bmMgYXMgZm9ybUxpc3RJdGVtc1wiXG4gICAgICBbYXBwZW5kSW5saW5lXT1cImZhbHNlXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCInd2lkZ2V0VGFiTWFuYWdlbWVudC5jb250ZW50LmZvcm1pby5wbGFjZWhvbGRlcicgfCB0cmFuc2xhdGVcIlxuICAgICAgW2Rpc2FibGVkXT1cImZvcm1MaXN0SXRlbXMubGVuZ3RoID09PSAwXCJcbiAgICAgIFtkcm9wVXBdPVwiZmFsc2VcIlxuICAgICAgKHNlbGVjdGVkKT1cImNvbXBvbmVudERyb3BEb3duQ2hhbmdlKCRldmVudClcIlxuICAgID5cbiAgICAgIDxjZHMtZHJvcGRvd24tbGlzdCBbaXRlbXNdPVwiZm9ybUxpc3RJdGVtc1wiPiA8L2Nkcy1kcm9wZG93bi1saXN0PlxuICAgIDwvY2RzLWRyb3Bkb3duPlxuICA8L2Nkcy1sYWJlbD5cbjwvZm9ybT5cbiJdfQ==
|