@eo-sdk/client 11.10.1 → 11.12.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/eo-client/about-state/about-state.component.d.ts.map +1 -1
- package/app/eo-client/inbox-state/inbox-state/inbox-state.component.d.ts +27 -3
- package/app/eo-client/inbox-state/inbox-state/inbox-state.component.d.ts.map +1 -1
- package/app/eo-client/settings/settings.component.d.ts +10 -3
- package/app/eo-client/settings/settings.component.d.ts.map +1 -1
- package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts +1 -0
- package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts.map +1 -1
- package/app/eo-framework/form-elements/codesystem/codesystem.component.d.ts +14 -2
- package/app/eo-framework/form-elements/codesystem/codesystem.component.d.ts.map +1 -1
- package/app/eo-framework/form-elements/datetime-range/datetime-range.component.d.ts.map +1 -1
- package/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.d.ts +1 -0
- package/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.d.ts.map +1 -1
- package/app/eo-framework/grid/extensions/filter/custom/custom-filter.component.d.ts +3 -1
- package/app/eo-framework/grid/extensions/filter/custom/custom-filter.component.d.ts.map +1 -1
- package/app/eo-framework/grid/filters/codesystem-filter.component.d.ts +1 -1
- package/app/eo-framework/grid/grid.module.d.ts +2 -1
- package/app/eo-framework/grid/grid.module.d.ts.map +1 -1
- package/app/eo-framework/object-form/object-form-edit/object-form-edit.component.d.ts +8 -0
- package/app/eo-framework/object-form/object-form-edit/object-form-edit.component.d.ts.map +1 -1
- package/app/eo-framework/tree/tree.component.interface.d.ts +1 -0
- package/app/eo-framework/tree/tree.component.interface.d.ts.map +1 -1
- package/assets/_default/config/main.json +16 -0
- package/esm2022/app/eo-client/about-state/about-state.component.mjs +3 -3
- package/esm2022/app/eo-client/favorite-state/favorite-state.component.mjs +1 -1
- package/esm2022/app/eo-client/inbox-state/inbox-state/inbox-state.component.mjs +134 -31
- package/esm2022/app/eo-client/notifications-state/notifications-state.component.mjs +1 -1
- package/esm2022/app/eo-client/prepare-state/prepare-state/prepare-state.component.mjs +1 -1
- package/esm2022/app/eo-client/process-state/process-state.component.mjs +1 -1
- package/esm2022/app/eo-client/recyclebin-state/recyclebin-state.component.mjs +1 -1
- package/esm2022/app/eo-client/settings/settings.component.mjs +37 -9
- package/esm2022/app/eo-client/stored-queries-state/stored-queries-state.component.mjs +1 -1
- package/esm2022/app/eo-client/version-state/version-state.component.mjs +1 -1
- package/esm2022/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +10 -2
- package/esm2022/app/eo-framework/cta/component/cta.component.mjs +2 -2
- package/esm2022/app/eo-framework/form-elements/codesystem/codesystem.component.mjs +47 -11
- package/esm2022/app/eo-framework/form-elements/datetime-range/datetime-range.component.mjs +2 -2
- package/esm2022/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.mjs +21 -14
- package/esm2022/app/eo-framework/form-elements/form-input/form-input.component.mjs +3 -3
- package/esm2022/app/eo-framework/form-elements/organization/organization.component.mjs +1 -1
- package/esm2022/app/eo-framework/grid/extensions/filter/custom/custom-filter.component.mjs +11 -5
- package/esm2022/app/eo-framework/grid/extensions/reset-filter/reset-filter.component.mjs +2 -2
- package/esm2022/app/eo-framework/grid/filters/codesystem-filter.component.mjs +6 -5
- package/esm2022/app/eo-framework/grid/filters/dynamic-list-filter.component.mjs +3 -3
- package/esm2022/app/eo-framework/grid/filters/organization-filter.component.mjs +1 -1
- package/esm2022/app/eo-framework/grid/grid.module.mjs +8 -4
- package/esm2022/app/eo-framework/object-form/object-form-edit/object-form-edit.component.mjs +24 -2
- package/esm2022/app/eo-framework/prepare-details/prepare-details.component.mjs +1 -1
- package/esm2022/app/eo-framework/tree/tree-node/tree-node.component.mjs +3 -3
- package/esm2022/app/eo-framework/tree/tree.component.interface.mjs +1 -1
- package/fesm2022/eo-sdk-client.mjs +291 -86
- package/fesm2022/eo-sdk-client.mjs.map +1 -1
- package/package.json +3 -3
|
@@ -9,6 +9,7 @@ import * as i4 from "../../ui/eo-dialog/eo-dialog.component";
|
|
|
9
9
|
import * as i5 from "@angular/forms";
|
|
10
10
|
import * as i6 from "../../tree/tree.component";
|
|
11
11
|
import * as i7 from "@yuuvis/components/autocomplete";
|
|
12
|
+
import * as i8 from "@yuuvis/components/dropdown";
|
|
12
13
|
export class CodesystemFilterComponent extends CodesystemComponent {
|
|
13
14
|
constructor(systemService, translate, eventService) {
|
|
14
15
|
super(systemService);
|
|
@@ -40,7 +41,7 @@ export class CodesystemFilterComponent extends CodesystemComponent {
|
|
|
40
41
|
this.onValueChange();
|
|
41
42
|
}
|
|
42
43
|
isFilterActive() {
|
|
43
|
-
return !!(this.value && this.value.length);
|
|
44
|
+
return !!(this.value && this.value.value.length);
|
|
44
45
|
}
|
|
45
46
|
doesFilterPass(params) {
|
|
46
47
|
if (this.selectedNodes && this.selectedNodes.length) {
|
|
@@ -51,7 +52,7 @@ export class CodesystemFilterComponent extends CodesystemComponent {
|
|
|
51
52
|
return false;
|
|
52
53
|
}
|
|
53
54
|
getModel() {
|
|
54
|
-
return this.value && this.value.length ? {
|
|
55
|
+
return this.value && this.value.value.length ? {
|
|
55
56
|
filterType: 'CodesystemFilterComponent',
|
|
56
57
|
filter: this.value
|
|
57
58
|
} : null;
|
|
@@ -69,13 +70,13 @@ export class CodesystemFilterComponent extends CodesystemComponent {
|
|
|
69
70
|
// this.autoCompleteInput.multiInputEL.nativeElement.focus();
|
|
70
71
|
}
|
|
71
72
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CodesystemFilterComponent, deps: [{ token: i1.SystemService }, { token: i1.TranslateService }, { token: i1.EventService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
72
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
73
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: CodesystemFilterComponent, selector: "eo-codesystem-filter", viewQueries: [{ propertyName: "eoDialog", first: true, predicate: EoDialogComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"eo-codesystem\" *ngIf=\"codesystem\"\n [ngClass]=\"{full: selectedNodes && selectedNodes.length === autocompleteValues.length, readonly: readonly}\">\n\n @if (isSearch) {\n <yvc-dropdown [(ngModel)]=\"searchOption\" (ngModelChange)=\"onValueChange()\" [options]=\"availableSearchOptions\"\n [disabled]=\"readonly\" [disableClearButton]=\"true\"></yvc-dropdown>\n }\n\n <yvc-autocomplete #autocomplete (suggestionSelect)=\"onAutoCompleteSelect($event)\"\n (suggestionUnselect)=\"onAutoCompleteUnselect($event)\" [autocompleteValues]=\"autocompleteRes\" field=\"name\"\n [disabled]=\"readonly\" [placeholder]=\"placeholder\" [forceSelection]=\"true\" (autocompleteFnc)=\"autocompleteFn($event)\"\n [multiple]=\"multiselect\" (ngModelChange)=\"onAutocompleteValueChange($event)\" [(ngModel)]=\"selectedNodes\">\n </yvc-autocomplete>\n @if (!readonly) {\n <button type=\"button\" #button (click)=\"setDialogVisible(true, $event)\" (keydown.enter)=\"setDialogVisible(true, $event)\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\"></eo-icon>\n </button>\n }\n</div>\n\n<eo-dialog [title]=\"pickerTitle || ''\" [visible]=\"display\" (hide)=\"display = false\">\n @if (display) {\n <eo-tree [tree]=\"tree\" [isDisplayed]=\"display\" [options]=\"{multiselect: multiselect}\"\n [(ngModel)]=\"selectedNodes\" (ngModelChange)=\"onTreeSelectionChanged($event)\" [readonly]=\"readonly\"\n [emptyMessage]=\"emptyMessage\">\n </eo-tree>\n }\n</eo-dialog>\n", styles: [".eo-codesystem{display:flex;align-items:center;justify-content:space-between}.eo-codesystem yvc-autocomplete{display:flex;flex:1;border:0;outline:0}.eo-codesystem>button{padding:0}.eo-codesystem>button eo-icon{width:16px;height:16px;margin:auto}.eo-codesystem.full ::ng-deep yvc-autocomplete .inputToken{display:none}.eo-codesystem yvc-dropdown{min-width:min-content;border:0;cursor:pointer;border-radius:2px;outline:1px solid rgba(0,0,0,.2);background-color:var(--list-item-hover-background);margin-right:4px}.eo-codesystem yvc-dropdown:hover{background-color:var(--list-item-selected-background)}.eo-codesystem yvc-dropdown ::ng-deep yvc-icon{display:none}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i4.EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.TreeComponent, selector: "eo-tree", inputs: ["options", "isDisplayed", "readonly", "emptyMessage", "selectionKey", "highlightedNodes", "tree", "treeUpdate"], outputs: ["expandedNodesChanged", "onSelected"] }, { kind: "component", type: i7.AutoComplete, selector: "yvc-autocomplete", inputs: ["field", "placeholder", "minLength", "multiple", "typeahead", "distinctValues", "forceSelection", "autocompleteValues", "disabled"], outputs: ["autocompleteFnc", "blur", "focus", "suggestionUnselect", "suggestionSelect"] }, { kind: "component", type: i8.Dropdown, selector: "yvc-dropdown", inputs: ["options", "filter", "disabled", "multiple", "disableClearButton"], outputs: ["onDropdownOptionsClose"] }] }); }
|
|
73
74
|
}
|
|
74
75
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CodesystemFilterComponent, decorators: [{
|
|
75
76
|
type: Component,
|
|
76
|
-
args: [{ selector: 'eo-codesystem-filter', template: "<div class=\"eo-codesystem\" *ngIf=\"codesystem\"\n [ngClass]=\"{full: selectedNodes && selectedNodes.length === autocompleteValues.length, readonly: readonly}\">\n\n <yvc-autocomplete #autocomplete (suggestionSelect)=\"onAutoCompleteSelect($event)\"\n (suggestionUnselect)=\"onAutoCompleteUnselect($event)\" [autocompleteValues]=\"autocompleteRes\" field=\"name\"\n [disabled]=\"readonly\" [placeholder]=\"placeholder\" [forceSelection]=\"true\" (autocompleteFnc)=\"autocompleteFn($event)\"\n [multiple]=\"multiselect\" (ngModelChange)=\"onAutocompleteValueChange($event)\" [(ngModel)]=\"selectedNodes\">\n </yvc-autocomplete>\n <button type=\"button\" #button
|
|
77
|
+
args: [{ selector: 'eo-codesystem-filter', template: "<div class=\"eo-codesystem\" *ngIf=\"codesystem\"\n [ngClass]=\"{full: selectedNodes && selectedNodes.length === autocompleteValues.length, readonly: readonly}\">\n\n @if (isSearch) {\n <yvc-dropdown [(ngModel)]=\"searchOption\" (ngModelChange)=\"onValueChange()\" [options]=\"availableSearchOptions\"\n [disabled]=\"readonly\" [disableClearButton]=\"true\"></yvc-dropdown>\n }\n\n <yvc-autocomplete #autocomplete (suggestionSelect)=\"onAutoCompleteSelect($event)\"\n (suggestionUnselect)=\"onAutoCompleteUnselect($event)\" [autocompleteValues]=\"autocompleteRes\" field=\"name\"\n [disabled]=\"readonly\" [placeholder]=\"placeholder\" [forceSelection]=\"true\" (autocompleteFnc)=\"autocompleteFn($event)\"\n [multiple]=\"multiselect\" (ngModelChange)=\"onAutocompleteValueChange($event)\" [(ngModel)]=\"selectedNodes\">\n </yvc-autocomplete>\n @if (!readonly) {\n <button type=\"button\" #button (click)=\"setDialogVisible(true, $event)\" (keydown.enter)=\"setDialogVisible(true, $event)\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\"></eo-icon>\n </button>\n }\n</div>\n\n<eo-dialog [title]=\"pickerTitle || ''\" [visible]=\"display\" (hide)=\"display = false\">\n @if (display) {\n <eo-tree [tree]=\"tree\" [isDisplayed]=\"display\" [options]=\"{multiselect: multiselect}\"\n [(ngModel)]=\"selectedNodes\" (ngModelChange)=\"onTreeSelectionChanged($event)\" [readonly]=\"readonly\"\n [emptyMessage]=\"emptyMessage\">\n </eo-tree>\n }\n</eo-dialog>\n", styles: [".eo-codesystem{display:flex;align-items:center;justify-content:space-between}.eo-codesystem yvc-autocomplete{display:flex;flex:1;border:0;outline:0}.eo-codesystem>button{padding:0}.eo-codesystem>button eo-icon{width:16px;height:16px;margin:auto}.eo-codesystem.full ::ng-deep yvc-autocomplete .inputToken{display:none}.eo-codesystem yvc-dropdown{min-width:min-content;border:0;cursor:pointer;border-radius:2px;outline:1px solid rgba(0,0,0,.2);background-color:var(--list-item-hover-background);margin-right:4px}.eo-codesystem yvc-dropdown:hover{background-color:var(--list-item-selected-background)}.eo-codesystem yvc-dropdown ::ng-deep yvc-icon{display:none}\n"] }]
|
|
77
78
|
}], ctorParameters: () => [{ type: i1.SystemService }, { type: i1.TranslateService }, { type: i1.EventService }], propDecorators: { eoDialog: [{
|
|
78
79
|
type: ViewChild,
|
|
79
80
|
args: [EoDialogComponent]
|
|
80
81
|
}] } });
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZXN5c3RlbS1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvZ3JpZC9maWx0ZXJzL2NvZGVzeXN0ZW0tZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL2Zvcm0tZWxlbWVudHMvY29kZXN5c3RlbS9jb2Rlc3lzdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxTQUFTLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBSXhGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHdDQUF3QyxDQUFDOzs7Ozs7Ozs7O0FBUXpFLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxtQkFBbUI7SUFRaEUsWUFBWSxhQUE0QixFQUFFLFNBQTJCLEVBQVUsWUFBMEI7UUFDdkcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRHdELGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBUHpHLFdBQU0sR0FBUSxFQUFFLENBQUM7UUFFakIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFDbkIsY0FBUyxHQUFHLFFBQVEsQ0FBQztRQU1uQixJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ2xDLHlCQUF5QjtZQUN6QixxQkFBcUI7WUFDckIsMEhBQTBIO1lBQzFILFNBQVM7UUFDWCxDQUFDO0lBQ0gsQ0FBQztJQUVELG9CQUFvQixDQUFDLElBQUk7UUFDdkIsS0FBSyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsc0JBQXNCLENBQUMsSUFBSTtRQUN6QixLQUFLLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxHQUFHO1FBQ3hCLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUE2QjtRQUMxQyxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BELE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQzVDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDN0MsVUFBVSxFQUFFLDJCQUEyQjtZQUN2QyxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDbkIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ1gsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFVO1FBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFXO1FBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUNuRCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsTUFBK0I7UUFDOUMseUJBQXlCO1FBQ3pCLDZEQUE2RDtJQUMvRCxDQUFDOzhHQXZFVSx5QkFBeUI7a0dBQXpCLHlCQUF5QixzR0FNekIsaUJBQWlCLHVFQ3BCOUIsaWhEQTRCQTs7MkZEZGEseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHNCQUFzQjs0SUFVRixRQUFRO3NCQUFyQyxTQUFTO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHtDb21wb25lbnQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvZGVzeXN0ZW1Db21wb25lbnR9IGZyb20gJy4uLy4uL2Zvcm0tZWxlbWVudHMvY29kZXN5c3RlbS9jb2Rlc3lzdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQge0lGaWx0ZXJBbmd1bGFyQ29tcH0gZnJvbSAnQGFnLWdyaWQtY29tbXVuaXR5L2FuZ3VsYXInO1xuaW1wb3J0IHtJQWZ0ZXJHdWlBdHRhY2hlZFBhcmFtcywgSURvZXNGaWx0ZXJQYXNzUGFyYW1zfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvY29yZSc7XG5pbXBvcnQge0VuYWlvRXZlbnQsIFN5c3RlbVNlcnZpY2UsIEV2ZW50U2VydmljZX0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7RW9EaWFsb2dDb21wb25lbnR9IGZyb20gJy4uLy4uL3VpL2VvLWRpYWxvZy9lby1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQGVvLXNkay9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tY29kZXN5c3RlbS1maWx0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4uLy4uL2Zvcm0tZWxlbWVudHMvY29kZXN5c3RlbS9jb2Rlc3lzdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4uLy4uL2Zvcm0tZWxlbWVudHMvY29kZXN5c3RlbS9jb2Rlc3lzdGVtLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ29kZXN5c3RlbUZpbHRlckNvbXBvbmVudCBleHRlbmRzIENvZGVzeXN0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBJRmlsdGVyQW5ndWxhckNvbXAge1xuICBwYXJhbXM6IGFueSA9IHt9O1xuICBjb2x1bW46IGFueTtcbiAgbXVsdGlzZWxlY3QgPSB0cnVlO1xuICBzaXR1YXRpb24gPSAnU0VBUkNIJztcblxuICBAVmlld0NoaWxkKEVvRGlhbG9nQ29tcG9uZW50KSBlb0RpYWxvZzogRW9EaWFsb2dDb21wb25lbnQ7XG5cbiAgY29uc3RydWN0b3Ioc3lzdGVtU2VydmljZTogU3lzdGVtU2VydmljZSwgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlKSB7XG4gICAgc3VwZXIoc3lzdGVtU2VydmljZSk7XG4gICAgdGhpcy5wbGFjZWhvbGRlciA9IHRyYW5zbGF0ZS5pbnN0YW50KCdlby5maWx0ZXIuaW5wdXQucGxhY2Vob2xkZXInKTtcbiAgfVxuXG4gIG9uVmFsdWVDaGFuZ2UoKSB7XG4gICAgaWYgKCF0aGlzLnBhcmFtcy5maWx0ZXJQYXJhbXMgfHwgIXRoaXMucGFyYW1zLmZpbHRlclBhcmFtcy5hcHBseUJ1dHRvbikge1xuICAgICAgdGhpcy5wYXJhbXMuYXBpLm9uRmlsdGVyQ2hhbmdlZCgpO1xuICAgICAgLy8gVE9ETzogc3RpbGwgbmVjZXNzYXJ5P1xuICAgICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvLyAgIHRoaXMuYXV0b0NvbXBsZXRlQnV0dG9uLm5hdGl2ZUVsZW1lbnQuc3R5bGUudG9wID0gdGhpcy5hdXRvQ29tcGxldGVJbnB1dC5tdWx0aUlucHV0RUwubmF0aXZlRWxlbWVudC5vZmZzZXRUb3AgKyAncHgnO1xuICAgICAgLy8gfSwgMCk7XG4gICAgfVxuICB9XG5cbiAgb25BdXRvQ29tcGxldGVTZWxlY3Qobm9kZSkge1xuICAgIHN1cGVyLm9uQXV0b0NvbXBsZXRlU2VsZWN0KG5vZGUpO1xuICAgIHRoaXMub25WYWx1ZUNoYW5nZSgpO1xuICB9XG5cbiAgb25BdXRvQ29tcGxldGVVbnNlbGVjdChub2RlKSB7XG4gICAgc3VwZXIub25BdXRvQ29tcGxldGVVbnNlbGVjdChub2RlKTtcbiAgICB0aGlzLm9uVmFsdWVDaGFuZ2UoKTtcbiAgfVxuXG4gIG9uVHJlZVNlbGVjdGlvbkNoYW5nZWQoZXZ0KSB7XG4gICAgc3VwZXIub25UcmVlU2VsZWN0aW9uQ2hhbmdlZChldnQpO1xuICAgIHRoaXMub25WYWx1ZUNoYW5nZSgpO1xuICB9XG5cbiAgaXNGaWx0ZXJBY3RpdmUoKSB7XG4gICAgcmV0dXJuICEhKHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS52YWx1ZS5sZW5ndGgpO1xuICB9XG5cbiAgZG9lc0ZpbHRlclBhc3MocGFyYW1zOiBJRG9lc0ZpbHRlclBhc3NQYXJhbXMpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZE5vZGVzICYmIHRoaXMuc2VsZWN0ZWROb2Rlcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gcGFyYW1zLmRhdGFbdGhpcy5wYXJhbXMuY29sRGVmLmZpZWxkXTtcbiAgICAgIHJldHVybiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV0pXG4gICAgICAgIC5zb21lKHZhbCA9PiAhIX50aGlzLnNlbGVjdGVkTm9kZXMubWFwKHYgPT4gdi5uYW1lKS5pbmRleE9mKHZhbCkpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBnZXRNb2RlbCgpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlLnZhbHVlLmxlbmd0aCA/IHtcbiAgICAgIGZpbHRlclR5cGU6ICdDb2Rlc3lzdGVtRmlsdGVyQ29tcG9uZW50JyxcbiAgICAgIGZpbHRlcjogdGhpcy52YWx1ZVxuICAgIH0gOiBudWxsO1xuICB9XG5cbiAgc2V0TW9kZWwodmFsdWU6IGFueSkge1xuICAgIHRoaXMud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBhZ0luaXQocGFyYW1zOiBhbnkpIHtcbiAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcbiAgICB0aGlzLmNvZGVzeXN0ZW0gPSB0aGlzLl9nZXRDb2Rlc3lzdGVtQnlRbmFtZSh0aGlzLnBhcmFtcy5jb2xEZWYucmVmRGF0YS5xbmFtZSk7XG4gICAgdGhpcy5waWNrZXJUaXRsZSA9IHRoaXMucGFyYW1zLmNvbERlZi5oZWFkZXJOYW1lO1xuICB9XG5cbiAgYWZ0ZXJHdWlBdHRhY2hlZChwYXJhbXM6IElBZnRlckd1aUF0dGFjaGVkUGFyYW1zKTogdm9pZCB7XG4gICAgLy8gVE9ETzogc3RpbGwgbmVjZXNzYXJ5P1xuICAgIC8vIHRoaXMuYXV0b0NvbXBsZXRlSW5wdXQubXVsdGlJbnB1dEVMLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImVvLWNvZGVzeXN0ZW1cIiAqbmdJZj1cImNvZGVzeXN0ZW1cIlxuICBbbmdDbGFzc109XCJ7ZnVsbDogc2VsZWN0ZWROb2RlcyAmJiBzZWxlY3RlZE5vZGVzLmxlbmd0aCA9PT0gYXV0b2NvbXBsZXRlVmFsdWVzLmxlbmd0aCwgcmVhZG9ubHk6IHJlYWRvbmx5fVwiPlxuXG4gIEBpZiAoaXNTZWFyY2gpIHtcbiAgICA8eXZjLWRyb3Bkb3duIFsobmdNb2RlbCldPVwic2VhcmNoT3B0aW9uXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgpXCIgW29wdGlvbnNdPVwiYXZhaWxhYmxlU2VhcmNoT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwicmVhZG9ubHlcIiBbZGlzYWJsZUNsZWFyQnV0dG9uXT1cInRydWVcIj48L3l2Yy1kcm9wZG93bj5cbiAgfVxuXG4gIDx5dmMtYXV0b2NvbXBsZXRlICNhdXRvY29tcGxldGUgKHN1Z2dlc3Rpb25TZWxlY3QpPVwib25BdXRvQ29tcGxldGVTZWxlY3QoJGV2ZW50KVwiXG4gICAgKHN1Z2dlc3Rpb25VbnNlbGVjdCk9XCJvbkF1dG9Db21wbGV0ZVVuc2VsZWN0KCRldmVudClcIiBbYXV0b2NvbXBsZXRlVmFsdWVzXT1cImF1dG9jb21wbGV0ZVJlc1wiIGZpZWxkPVwibmFtZVwiXG4gICAgW2Rpc2FibGVkXT1cInJlYWRvbmx5XCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW2ZvcmNlU2VsZWN0aW9uXT1cInRydWVcIiAoYXV0b2NvbXBsZXRlRm5jKT1cImF1dG9jb21wbGV0ZUZuKCRldmVudClcIlxuICAgIFttdWx0aXBsZV09XCJtdWx0aXNlbGVjdFwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQXV0b2NvbXBsZXRlVmFsdWVDaGFuZ2UoJGV2ZW50KVwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWROb2Rlc1wiPlxuICA8L3l2Yy1hdXRvY29tcGxldGU+XG4gIEBpZiAoIXJlYWRvbmx5KSB7XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgI2J1dHRvbiAoY2xpY2spPVwic2V0RGlhbG9nVmlzaWJsZSh0cnVlLCAkZXZlbnQpXCIgKGtleWRvd24uZW50ZXIpPVwic2V0RGlhbG9nVmlzaWJsZSh0cnVlLCAkZXZlbnQpXCI+XG4gICAgICA8ZW8taWNvbiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19hcnJvd19kb3duLnN2ZydcIj48L2VvLWljb24+XG4gICAgPC9idXR0b24+XG4gIH1cbjwvZGl2PlxuXG48ZW8tZGlhbG9nIFt0aXRsZV09XCJwaWNrZXJUaXRsZSB8fCAnJ1wiIFt2aXNpYmxlXT1cImRpc3BsYXlcIiAoaGlkZSk9XCJkaXNwbGF5ID0gZmFsc2VcIj5cbiAgQGlmIChkaXNwbGF5KSB7XG4gICAgPGVvLXRyZWUgW3RyZWVdPVwidHJlZVwiIFtpc0Rpc3BsYXllZF09XCJkaXNwbGF5XCIgW29wdGlvbnNdPVwie211bHRpc2VsZWN0OiBtdWx0aXNlbGVjdH1cIlxuICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWROb2Rlc1wiIChuZ01vZGVsQ2hhbmdlKT1cIm9uVHJlZVNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50KVwiIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgICAgICAgW2VtcHR5TWVzc2FnZV09XCJlbXB0eU1lc3NhZ2VcIj5cbiAgICA8L2VvLXRyZWU+XG4gIH1cbjwvZW8tZGlhbG9nPlxuIl19
|
|
@@ -62,13 +62,13 @@ export class DynamicListFilterComponent extends DynamicListComponent {
|
|
|
62
62
|
this.pickerTitle = this.params.colDef.headerName;
|
|
63
63
|
}
|
|
64
64
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DynamicListFilterComponent, deps: [{ token: i1.LocalStorageService }, { token: i2.ObjectFormHelperService }, { token: i3.DynamicListService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
65
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: DynamicListFilterComponent, selector: "eo-dynamic-list-filter", viewQueries: [{ propertyName: "eoDialog", first: true, predicate: EoDialogComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<eo-dialog #listDialog [title]=\"pickerTitle\" [visible]=\"display\" [ngClass]=\"{empty: !(list?.entries?.length)}\"\n [styleClass]=\"'dynlist-dialog'\" (hide)=\"display = false\">\n\n <eo-tree [tree]=\"tree\" *ngIf=\"display && tree\" [isDisplayed]=\"display\" [options]=\"{multiselect: multiselect}\"\n [(ngModel)]=\"selectedNodes\" (keyup.enter)=\"showDialog($event, false)\"\n (ngModelChange)=\"onTreeSelectionChanged($event)\">\n </eo-tree>\n\n <div class=\"empty\" *ngIf=\"!(list?.entries?.length)\">\n <div translate>eo.form.property.dynamic.list.empty</div>\n </div>\n</eo-dialog>\n\n<div class=\"eo-dynamic-list\" [ngClass]=\"{full: selectedNodes && selectedNodes.length === autocompleteValues.length}\">\n\n <yvc-autocomplete [(ngModel)]=\"selectedNodes\" #autocomplete (suggestionSelect)=\"onAutoCompleteSelect($event)\"\n [disabled]=\"readonly\" (suggestionUnselect)=\"onAutoCompleteUnselect($event)\" [forceSelection]=\"true\"\n [autocompleteValues]=\"autocompleteRes\" (ngModelChange)=\"onTreeSelectionChanged($event)\" field=\"{{valueField}}\" (autocompleteFnc)=\"autocompleteFn($event)\"\n [multiple]=\"multiselect\">\n\n <ng-template let-item #chipTemplate>\n <div>\n <div class=\"value\">{{item[valueField]}}</div>\n </div>\n </ng-template>\n\n <ng-template #autocompleteOptionTemplate let-item>\n <div>\n <div class=\"value\">{{item[valueField]}}</div>\n <div class=\"description\" style=\"font-style: italic; color: var(--text-color-caption)\">{{item[descriptionField]}}</div>\n </div>\n </ng-template>\n </yvc-autocomplete>\n\n <button #button class=\"ui-button\" *ngIf=\"!readonly\" [disabled]=\"readonly\" (click)=\"showDialog($event, !!$event.detail)\"\n (keyup.arrowDown)=\"showDialog($event)\" (keyup.enter)=\"showDialog($event)\" (keyup.space)=\"showDialog($event)\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\"></eo-icon>\n </button>\n</div>\n", styles: [".rtl .form-element .form-field>div label{text-align:left!important}:host .eo-dynamic-list{display:flex;align-items:center;justify-content:space-between}:host .eo-dynamic-list .description{padding-left:0!important}:host .eo-dynamic-list yvc-autocomplete{flex:1 1 auto;border:0;outline:0}:host .eo-dynamic-list>button{flex:0 0 auto;padding:0}:host .eo-dynamic-list>button eo-icon{width:16px;height:16px;margin:auto}:host .eo-dynamic-list.full ::ng-deep yvc-autocomplete .inputToken{display:none}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i6.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i7.EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i9.TreeComponent, selector: "eo-tree", inputs: ["options", "isDisplayed", "readonly", "emptyMessage", "selectionKey", "highlightedNodes", "tree", "treeUpdate"], outputs: ["expandedNodesChanged", "onSelected"] }, { kind: "component", type: i10.AutoComplete, selector: "yvc-autocomplete", inputs: ["field", "placeholder", "minLength", "multiple", "typeahead", "distinctValues", "forceSelection", "autocompleteValues", "disabled"], outputs: ["autocompleteFnc", "blur", "focus", "suggestionUnselect", "suggestionSelect"] }] }); }
|
|
65
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: DynamicListFilterComponent, selector: "eo-dynamic-list-filter", viewQueries: [{ propertyName: "eoDialog", first: true, predicate: EoDialogComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<eo-dialog #listDialog [title]=\"pickerTitle\" [visible]=\"display\" [ngClass]=\"{empty: !(list?.entries?.length)}\"\n [styleClass]=\"'dynlist-dialog'\" (hide)=\"display = false\">\n\n <eo-tree [tree]=\"tree\" *ngIf=\"display && tree\" [isDisplayed]=\"display\" [options]=\"{multiselect: multiselect}\"\n [(ngModel)]=\"selectedNodes\" (keyup.enter)=\"showDialog($event, false)\"\n (ngModelChange)=\"onTreeSelectionChanged($event)\">\n </eo-tree>\n\n <div class=\"empty\" *ngIf=\"!(list?.entries?.length)\">\n <div translate>eo.form.property.dynamic.list.empty</div>\n </div>\n</eo-dialog>\n\n<div class=\"eo-dynamic-list\" [ngClass]=\"{full: selectedNodes && selectedNodes.length === autocompleteValues.length}\">\n\n <yvc-autocomplete [(ngModel)]=\"selectedNodes\" #autocomplete (suggestionSelect)=\"onAutoCompleteSelect($event)\"\n [disabled]=\"readonly\" (suggestionUnselect)=\"onAutoCompleteUnselect($event)\" [forceSelection]=\"true\"\n [autocompleteValues]=\"autocompleteRes\" (ngModelChange)=\"onTreeSelectionChanged($event)\" field=\"{{selectedNodes?.title ? title : valueField}}\" (autocompleteFnc)=\"autocompleteFn($event)\"\n [multiple]=\"multiselect\">\n\n <ng-template let-item #chipTemplate>\n <div>\n <div class=\"value\">{{item[valueField]}}</div>\n </div>\n </ng-template>\n\n <ng-template #autocompleteOptionTemplate let-item>\n <div>\n <div class=\"value\">{{item[valueField]}}</div>\n <div class=\"description\" style=\"font-style: italic; color: var(--text-color-caption)\">{{item[descriptionField]}}</div>\n </div>\n </ng-template>\n </yvc-autocomplete>\n\n <button #button class=\"ui-button\" *ngIf=\"!readonly\" [disabled]=\"readonly\" (click)=\"showDialog($event, !!$event.detail)\"\n (keyup.arrowDown)=\"showDialog($event)\" (keyup.enter)=\"showDialog($event)\" (keyup.space)=\"showDialog($event)\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\"></eo-icon>\n </button>\n</div>\n", styles: [".rtl .form-element .form-field>div label{text-align:left!important}:host .eo-dynamic-list{display:flex;align-items:center;justify-content:space-between}:host .eo-dynamic-list .description{padding-left:0!important}:host .eo-dynamic-list yvc-autocomplete{flex:1 1 auto;border:0;outline:0}:host .eo-dynamic-list>button{flex:0 0 auto;padding:0}:host .eo-dynamic-list>button eo-icon{width:16px;height:16px;margin:auto}:host .eo-dynamic-list.full ::ng-deep yvc-autocomplete .inputToken{display:none}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i6.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i7.EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i9.TreeComponent, selector: "eo-tree", inputs: ["options", "isDisplayed", "readonly", "emptyMessage", "selectionKey", "highlightedNodes", "tree", "treeUpdate"], outputs: ["expandedNodesChanged", "onSelected"] }, { kind: "component", type: i10.AutoComplete, selector: "yvc-autocomplete", inputs: ["field", "placeholder", "minLength", "multiple", "typeahead", "distinctValues", "forceSelection", "autocompleteValues", "disabled"], outputs: ["autocompleteFnc", "blur", "focus", "suggestionUnselect", "suggestionSelect"] }] }); }
|
|
66
66
|
}
|
|
67
67
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DynamicListFilterComponent, decorators: [{
|
|
68
68
|
type: Component,
|
|
69
|
-
args: [{ selector: 'eo-dynamic-list-filter', template: "<eo-dialog #listDialog [title]=\"pickerTitle\" [visible]=\"display\" [ngClass]=\"{empty: !(list?.entries?.length)}\"\n [styleClass]=\"'dynlist-dialog'\" (hide)=\"display = false\">\n\n <eo-tree [tree]=\"tree\" *ngIf=\"display && tree\" [isDisplayed]=\"display\" [options]=\"{multiselect: multiselect}\"\n [(ngModel)]=\"selectedNodes\" (keyup.enter)=\"showDialog($event, false)\"\n (ngModelChange)=\"onTreeSelectionChanged($event)\">\n </eo-tree>\n\n <div class=\"empty\" *ngIf=\"!(list?.entries?.length)\">\n <div translate>eo.form.property.dynamic.list.empty</div>\n </div>\n</eo-dialog>\n\n<div class=\"eo-dynamic-list\" [ngClass]=\"{full: selectedNodes && selectedNodes.length === autocompleteValues.length}\">\n\n <yvc-autocomplete [(ngModel)]=\"selectedNodes\" #autocomplete (suggestionSelect)=\"onAutoCompleteSelect($event)\"\n [disabled]=\"readonly\" (suggestionUnselect)=\"onAutoCompleteUnselect($event)\" [forceSelection]=\"true\"\n [autocompleteValues]=\"autocompleteRes\" (ngModelChange)=\"onTreeSelectionChanged($event)\" field=\"{{valueField}}\" (autocompleteFnc)=\"autocompleteFn($event)\"\n [multiple]=\"multiselect\">\n\n <ng-template let-item #chipTemplate>\n <div>\n <div class=\"value\">{{item[valueField]}}</div>\n </div>\n </ng-template>\n\n <ng-template #autocompleteOptionTemplate let-item>\n <div>\n <div class=\"value\">{{item[valueField]}}</div>\n <div class=\"description\" style=\"font-style: italic; color: var(--text-color-caption)\">{{item[descriptionField]}}</div>\n </div>\n </ng-template>\n </yvc-autocomplete>\n\n <button #button class=\"ui-button\" *ngIf=\"!readonly\" [disabled]=\"readonly\" (click)=\"showDialog($event, !!$event.detail)\"\n (keyup.arrowDown)=\"showDialog($event)\" (keyup.enter)=\"showDialog($event)\" (keyup.space)=\"showDialog($event)\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\"></eo-icon>\n </button>\n</div>\n", styles: [".rtl .form-element .form-field>div label{text-align:left!important}:host .eo-dynamic-list{display:flex;align-items:center;justify-content:space-between}:host .eo-dynamic-list .description{padding-left:0!important}:host .eo-dynamic-list yvc-autocomplete{flex:1 1 auto;border:0;outline:0}:host .eo-dynamic-list>button{flex:0 0 auto;padding:0}:host .eo-dynamic-list>button eo-icon{width:16px;height:16px;margin:auto}:host .eo-dynamic-list.full ::ng-deep yvc-autocomplete .inputToken{display:none}\n"] }]
|
|
69
|
+
args: [{ selector: 'eo-dynamic-list-filter', template: "<eo-dialog #listDialog [title]=\"pickerTitle\" [visible]=\"display\" [ngClass]=\"{empty: !(list?.entries?.length)}\"\n [styleClass]=\"'dynlist-dialog'\" (hide)=\"display = false\">\n\n <eo-tree [tree]=\"tree\" *ngIf=\"display && tree\" [isDisplayed]=\"display\" [options]=\"{multiselect: multiselect}\"\n [(ngModel)]=\"selectedNodes\" (keyup.enter)=\"showDialog($event, false)\"\n (ngModelChange)=\"onTreeSelectionChanged($event)\">\n </eo-tree>\n\n <div class=\"empty\" *ngIf=\"!(list?.entries?.length)\">\n <div translate>eo.form.property.dynamic.list.empty</div>\n </div>\n</eo-dialog>\n\n<div class=\"eo-dynamic-list\" [ngClass]=\"{full: selectedNodes && selectedNodes.length === autocompleteValues.length}\">\n\n <yvc-autocomplete [(ngModel)]=\"selectedNodes\" #autocomplete (suggestionSelect)=\"onAutoCompleteSelect($event)\"\n [disabled]=\"readonly\" (suggestionUnselect)=\"onAutoCompleteUnselect($event)\" [forceSelection]=\"true\"\n [autocompleteValues]=\"autocompleteRes\" (ngModelChange)=\"onTreeSelectionChanged($event)\" field=\"{{selectedNodes?.title ? title : valueField}}\" (autocompleteFnc)=\"autocompleteFn($event)\"\n [multiple]=\"multiselect\">\n\n <ng-template let-item #chipTemplate>\n <div>\n <div class=\"value\">{{item[valueField]}}</div>\n </div>\n </ng-template>\n\n <ng-template #autocompleteOptionTemplate let-item>\n <div>\n <div class=\"value\">{{item[valueField]}}</div>\n <div class=\"description\" style=\"font-style: italic; color: var(--text-color-caption)\">{{item[descriptionField]}}</div>\n </div>\n </ng-template>\n </yvc-autocomplete>\n\n <button #button class=\"ui-button\" *ngIf=\"!readonly\" [disabled]=\"readonly\" (click)=\"showDialog($event, !!$event.detail)\"\n (keyup.arrowDown)=\"showDialog($event)\" (keyup.enter)=\"showDialog($event)\" (keyup.space)=\"showDialog($event)\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\"></eo-icon>\n </button>\n</div>\n", styles: [".rtl .form-element .form-field>div label{text-align:left!important}:host .eo-dynamic-list{display:flex;align-items:center;justify-content:space-between}:host .eo-dynamic-list .description{padding-left:0!important}:host .eo-dynamic-list yvc-autocomplete{flex:1 1 auto;border:0;outline:0}:host .eo-dynamic-list>button{flex:0 0 auto;padding:0}:host .eo-dynamic-list>button eo-icon{width:16px;height:16px;margin:auto}:host .eo-dynamic-list.full ::ng-deep yvc-autocomplete .inputToken{display:none}\n"] }]
|
|
70
70
|
}], ctorParameters: () => [{ type: i1.LocalStorageService }, { type: i2.ObjectFormHelperService }, { type: i3.DynamicListService }], propDecorators: { eoDialog: [{
|
|
71
71
|
type: ViewChild,
|
|
72
72
|
args: [EoDialogComponent]
|
|
73
73
|
}] } });
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1saXN0LWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9ncmlkL2ZpbHRlcnMvZHluYW1pYy1saXN0LWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9mb3JtLWVsZW1lbnRzL2R5bmFtaWMtbGlzdC9keW5hbWljLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFDN0YsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7Ozs7Ozs7Ozs7OztBQVV6RSxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsb0JBQW9CO0lBUWxFLFlBQVksbUJBQXdDLEVBQUUsdUJBQWdELEVBQUUsa0JBQXNDO1FBQzVJLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSx1QkFBdUIsQ0FBRSxDQUFDO1FBUjNFLFdBQU0sR0FBUSxFQUFFLENBQUM7UUFFakIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFDbkIsY0FBUyxHQUFHLFFBQVEsQ0FBQztJQU1yQixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3BDLENBQUM7SUFDSCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsSUFBSTtRQUN2QixLQUFLLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxJQUFJO1FBQ3pCLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELHNCQUFzQixDQUFDLEdBQUc7UUFDeEIsS0FBSyxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxjQUFjLENBQUMsTUFBNkI7UUFDMUMsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDcEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwRCxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUM1QyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDdkMsVUFBVSxFQUFFLDRCQUE0QjtZQUN4QyxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDbkIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ1gsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFVO1FBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFXO1FBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLEVBQXlCLENBQUM7UUFDNUgsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7SUFFbkQsQ0FBQzs4R0E5RFUsMEJBQTBCO2tHQUExQiwwQkFBMEIsd0dBTTFCLGlCQUFpQix1RUNyQjlCLDI5REF1Q0E7OzJGRHhCYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0Usd0JBQXdCOytKQVVKLFFBQVE7c0JBQXJDLFNBQVM7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJRmlsdGVyQW5ndWxhckNvbXB9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9hbmd1bGFyJztcbmltcG9ydCB7SURvZXNGaWx0ZXJQYXNzUGFyYW1zfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvY29yZSc7XG5pbXBvcnQge0NvbXBvbmVudCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TG9jYWxTdG9yYWdlU2VydmljZSwgQXV0b2NvbXBsZXRlUmVzcG9uc2V9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge0R5bmFtaWNMaXN0Q29tcG9uZW50fSBmcm9tICcuLi8uLi9mb3JtLWVsZW1lbnRzL2R5bmFtaWMtbGlzdC9keW5hbWljLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7RW9EaWFsb2dDb21wb25lbnR9IGZyb20gJy4uLy4uL3VpL2VvLWRpYWxvZy9lby1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7T2JqZWN0Rm9ybUhlbHBlclNlcnZpY2V9IGZyb20gJy4uLy4uL29iamVjdC1mb3JtL29iamVjdC1mb3JtLWhlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7RHluYW1pY0xpc3RTZXJ2aWNlfSBmcm9tICcuLy4uLy4uL2Zvcm0tZWxlbWVudHMvZHluYW1pYy1saXN0L2R5bmFtaWMtbGlzdC5zZXJ2aWNlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1keW5hbWljLWxpc3QtZmlsdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuLi8uLi9mb3JtLWVsZW1lbnRzL2R5bmFtaWMtbGlzdC9keW5hbWljLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi4vLi4vZm9ybS1lbGVtZW50cy9keW5hbWljLWxpc3QvZHluYW1pYy1saXN0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0xpc3RGaWx0ZXJDb21wb25lbnQgZXh0ZW5kcyBEeW5hbWljTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIElGaWx0ZXJBbmd1bGFyQ29tcCB7XG4gIHBhcmFtczogYW55ID0ge307XG4gIGNvbHVtbjogYW55O1xuICBtdWx0aXNlbGVjdCA9IHRydWU7XG4gIHNpdHVhdGlvbiA9ICdTRUFSQ0gnO1xuXG4gIEBWaWV3Q2hpbGQoRW9EaWFsb2dDb21wb25lbnQpIGVvRGlhbG9nOiBFb0RpYWxvZ0NvbXBvbmVudDtcblxuICBjb25zdHJ1Y3Rvcihsb2NhbFN0b3JhZ2VTZXJ2aWNlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlLCBvYmplY3RGb3JtSGVscGVyU2VydmljZTogT2JqZWN0Rm9ybUhlbHBlclNlcnZpY2UsIGR5bmFtaWNMaXN0U2VydmljZTogRHluYW1pY0xpc3RTZXJ2aWNlKSB7XG4gICAgc3VwZXIoZHluYW1pY0xpc3RTZXJ2aWNlLCBsb2NhbFN0b3JhZ2VTZXJ2aWNlLCBvYmplY3RGb3JtSGVscGVyU2VydmljZSwpO1xuICB9XG5cbiAgb25WYWx1ZUNoYW5nZSgpIHtcbiAgICBpZiAoIXRoaXMucGFyYW1zLmZpbHRlclBhcmFtcyB8fCAhdGhpcy5wYXJhbXMuZmlsdGVyUGFyYW1zLmFwcGx5QnV0dG9uKSB7XG4gICAgICB0aGlzLnBhcmFtcy5hcGkub25GaWx0ZXJDaGFuZ2VkKCk7XG4gICAgfVxuICB9XG5cbiAgb25BdXRvQ29tcGxldGVTZWxlY3Qobm9kZSkge1xuICAgIHN1cGVyLm9uQXV0b0NvbXBsZXRlU2VsZWN0KG5vZGUpO1xuICAgIHRoaXMub25WYWx1ZUNoYW5nZSgpO1xuICB9XG5cbiAgb25BdXRvQ29tcGxldGVVbnNlbGVjdChub2RlKSB7XG4gICAgc3VwZXIub25BdXRvQ29tcGxldGVVbnNlbGVjdChub2RlKTtcbiAgICB0aGlzLm9uVmFsdWVDaGFuZ2UoKTtcbiAgfVxuXG4gIG9uVHJlZVNlbGVjdGlvbkNoYW5nZWQoZXZ0KSB7XG4gICAgc3VwZXIub25UcmVlU2VsZWN0aW9uQ2hhbmdlZChldnQpO1xuICAgIHRoaXMub25WYWx1ZUNoYW5nZSgpO1xuICB9XG5cbiAgaXNGaWx0ZXJBY3RpdmUoKSB7XG4gICAgcmV0dXJuICEhKHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS5sZW5ndGgpO1xuICB9XG5cbiAgZG9lc0ZpbHRlclBhc3MocGFyYW1zOiBJRG9lc0ZpbHRlclBhc3NQYXJhbXMpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZE5vZGVzICYmIHRoaXMuc2VsZWN0ZWROb2Rlcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gcGFyYW1zLmRhdGFbdGhpcy5wYXJhbXMuY29sRGVmLmZpZWxkXTtcbiAgICAgIHJldHVybiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV0pXG4gICAgICAgIC5zb21lKHZhbCA9PiAhIX50aGlzLnNlbGVjdGVkTm9kZXMubWFwKHYgPT4gdi5uYW1lKS5pbmRleE9mKHZhbCkpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBnZXRNb2RlbCgpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlLmxlbmd0aCA/IHtcbiAgICAgIGZpbHRlclR5cGU6ICdEeW5hbWljTGlzdEZpbHRlckNvbXBvbmVudCcsXG4gICAgICBmaWx0ZXI6IHRoaXMudmFsdWVcbiAgICB9IDogbnVsbDtcbiAgfVxuXG4gIHNldE1vZGVsKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUpO1xuICB9XG5cbiAgYWdJbml0KHBhcmFtczogYW55KSB7XG4gICAgdGhpcy5wYXJhbXMgPSBwYXJhbXM7XG4gICAgdGhpcy5saXN0T2JqZWN0ID0ge2VudHJpZXM6ICh0aGlzLnBhcmFtcy5jb2xEZWYuZmlsdGVyUGFyYW1zLnZhbHVlcyB8fCBbXSkubWFwKHZhbHVlID0+ICh7dmFsdWV9KSl9IGFzIEF1dG9jb21wbGV0ZVJlc3BvbnNlO1xuICAgIHRoaXMucGlja2VyVGl0bGUgPSB0aGlzLnBhcmFtcy5jb2xEZWYuaGVhZGVyTmFtZTtcblxuICB9XG59XG4iLCI8ZW8tZGlhbG9nICNsaXN0RGlhbG9nIFt0aXRsZV09XCJwaWNrZXJUaXRsZVwiIFt2aXNpYmxlXT1cImRpc3BsYXlcIiBbbmdDbGFzc109XCJ7ZW1wdHk6ICEobGlzdD8uZW50cmllcz8ubGVuZ3RoKX1cIlxuICBbc3R5bGVDbGFzc109XCInZHlubGlzdC1kaWFsb2cnXCIgKGhpZGUpPVwiZGlzcGxheSA9IGZhbHNlXCI+XG5cbiAgPGVvLXRyZWUgW3RyZWVdPVwidHJlZVwiICpuZ0lmPVwiZGlzcGxheSAmJiB0cmVlXCIgW2lzRGlzcGxheWVkXT1cImRpc3BsYXlcIiBbb3B0aW9uc109XCJ7bXVsdGlzZWxlY3Q6IG11bHRpc2VsZWN0fVwiXG4gICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZE5vZGVzXCIgKGtleXVwLmVudGVyKT1cInNob3dEaWFsb2coJGV2ZW50LCBmYWxzZSlcIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uVHJlZVNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50KVwiPlxuICA8L2VvLXRyZWU+XG5cbiAgPGRpdiBjbGFzcz1cImVtcHR5XCIgKm5nSWY9XCIhKGxpc3Q/LmVudHJpZXM/Lmxlbmd0aClcIj5cbiAgICA8ZGl2IHRyYW5zbGF0ZT5lby5mb3JtLnByb3BlcnR5LmR5bmFtaWMubGlzdC5lbXB0eTwvZGl2PlxuICA8L2Rpdj5cbjwvZW8tZGlhbG9nPlxuXG48ZGl2IGNsYXNzPVwiZW8tZHluYW1pYy1saXN0XCIgW25nQ2xhc3NdPVwie2Z1bGw6IHNlbGVjdGVkTm9kZXMgJiYgc2VsZWN0ZWROb2Rlcy5sZW5ndGggPT09IGF1dG9jb21wbGV0ZVZhbHVlcy5sZW5ndGh9XCI+XG5cbiAgPHl2Yy1hdXRvY29tcGxldGUgWyhuZ01vZGVsKV09XCJzZWxlY3RlZE5vZGVzXCIgI2F1dG9jb21wbGV0ZSAoc3VnZ2VzdGlvblNlbGVjdCk9XCJvbkF1dG9Db21wbGV0ZVNlbGVjdCgkZXZlbnQpXCJcbiAgICBbZGlzYWJsZWRdPVwicmVhZG9ubHlcIiAoc3VnZ2VzdGlvblVuc2VsZWN0KT1cIm9uQXV0b0NvbXBsZXRlVW5zZWxlY3QoJGV2ZW50KVwiIFtmb3JjZVNlbGVjdGlvbl09XCJ0cnVlXCJcbiAgICBbYXV0b2NvbXBsZXRlVmFsdWVzXT1cImF1dG9jb21wbGV0ZVJlc1wiIChuZ01vZGVsQ2hhbmdlKT1cIm9uVHJlZVNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50KVwiIGZpZWxkPVwie3tzZWxlY3RlZE5vZGVzPy50aXRsZSA/IHRpdGxlIDogdmFsdWVGaWVsZH19XCIgKGF1dG9jb21wbGV0ZUZuYyk9XCJhdXRvY29tcGxldGVGbigkZXZlbnQpXCJcbiAgICBbbXVsdGlwbGVdPVwibXVsdGlzZWxlY3RcIj5cblxuICAgIDxuZy10ZW1wbGF0ZSBsZXQtaXRlbSAjY2hpcFRlbXBsYXRlPlxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+e3tpdGVtW3ZhbHVlRmllbGRdfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI2F1dG9jb21wbGV0ZU9wdGlvblRlbXBsYXRlIGxldC1pdGVtPlxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+e3tpdGVtW3ZhbHVlRmllbGRdfX08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCIgc3R5bGU9XCJmb250LXN0eWxlOiBpdGFsaWM7IGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLWNhcHRpb24pXCI+e3tpdGVtW2Rlc2NyaXB0aW9uRmllbGRdfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwveXZjLWF1dG9jb21wbGV0ZT5cblxuICA8YnV0dG9uICNidXR0b24gY2xhc3M9XCJ1aS1idXR0b25cIiAqbmdJZj1cIiFyZWFkb25seVwiIFtkaXNhYmxlZF09XCJyZWFkb25seVwiIChjbGljayk9XCJzaG93RGlhbG9nKCRldmVudCwgISEkZXZlbnQuZGV0YWlsKVwiXG4gICAgKGtleXVwLmFycm93RG93bik9XCJzaG93RGlhbG9nKCRldmVudClcIiAoa2V5dXAuZW50ZXIpPVwic2hvd0RpYWxvZygkZXZlbnQpXCIgKGtleXVwLnNwYWNlKT1cInNob3dEaWFsb2coJGV2ZW50KVwiPlxuICAgIDxlby1pY29uIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2Fycm93X2Rvd24uc3ZnJ1wiPjwvZW8taWNvbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -55,7 +55,7 @@ export class OrganizationFilterComponent extends OrganizationComponent {
|
|
|
55
55
|
// this.autoCompleteInput.multiInputEL.nativeElement.focus();
|
|
56
56
|
}
|
|
57
57
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: OrganizationFilterComponent, deps: [{ token: i1.BackendService }, { token: i1.SystemService }, { token: i1.TranslateService }, { token: i1.UserService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
58
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: OrganizationFilterComponent, selector: "eo-organization-filter", usesInheritance: true, ngImport: i0, template: "<div class=\"eo-organization\" [ngClass]=\"{acInputHidden: !multiselect && innerValue.length}\">\n\n <yvc-autocomplete [(ngModel)]=\"innerValue\" #autocomplete (suggestionSelect)=\"onSelect($event)\"\n [placeholder]=\"placeholder\" (suggestionUnselect)=\"onUnselect($event)\" (blur)=\"onAutoCompleteBlur()\"\n [disabled]=\"readonly\" [autocompleteValues]=\"autocompleteRes\" field=\"id\"\n [forceSelection]=\"true\"\n (autocompleteFnc)=\"autocompleteFn($event)\" [multiple]=\"true\">\n\n <ng-template #autocompleteOptionTemplate let-item>\n <div class=\"org-item\">\n <yvc-icon [svg]=\"item.type === 'group' ? icon.group : icon.user\"></yvc-icon>\n <span *ngIf=\"(item.firstname?.length && item.lastname?.length) || item.type === 'group'\">{{item.title}}\n ({{item.name}})</span>\n <span *ngIf=\"!item.firstname?.length && !item.lastname?.length && item.type !== 'group'\">({{item.name}})</span>\n <span *ngIf=\"!item.firstname?.length && item.lastname?.length\">{{item.lastname}} ({{item.name}})</span>\n <span *ngIf=\"item.firstname?.length && !item.lastname?.length\">{{item.firstname}} ({{item.name}})</span>\n </div>\n </ng-template>\n\n <ng-template #chipTemplate let-item>\n <div class=\"org-item\">\n <yvc-icon [svg]=\"item.type === 'group' ? icon.group : icon.user\"></yvc-icon>\n <span\n *ngIf=\"(item.firstname?.length && item.lastname?.length && item.active) || item.type === 'group'\">{{item.title}}\n ({{item.name}})</span>\n <span class=\"inactive\"\n *ngIf=\"(item.firstname?.length && item.lastname?.length && !item.active)\">{{item.title}}\n ({{item.name}})</span>\n <span *ngIf=\"(!item.firstname?.length && !item.lastname?.length && !item.active && !item.type)\"\n class=\"deleted-user-label\">{{'eo.form.property.organization.error.usernotfound'|translate}}</span>\n <span\n *ngIf=\"!item.firstname?.length && !item.lastname?.length && item.active && item.type !== 'group'\">({{item.name}})</span>\n <span *ngIf=\"!item.firstname?.length && item.lastname?.length\">{{item.lastname}} ({{item.name}})</span>\n <span *ngIf=\"item.firstname?.length && !item.lastname?.length\">{{item.firstname}} ({{item.name}})</span>\n </div>\n </ng-template>\n\n </yvc-autocomplete>\n</div>\n", styles: [".eo-organization yvc-autocomplete{width:100%;border:0;outline:0!important}.eo-organization .org-item{display:flex;align-items:center}.eo-organization .inactive{text-decoration:line-through}:host.readonly ::ng-deep .ui-autocomplete-token-icon{display:none}:host ::ng-deep .chip yvc-icon{flex:0 0 auto;width:18px;height:18px;color:var(--text-color-caption)}:host ::ng-deep .deleted-user-label{color:var(--color-error)}:host ::ng-deep .eo-organization.acInputHidden .inputToken{width:0!important;margin:0;padding:0}:host ::ng-deep .eo-organization.acInputHidden .inputToken input{width:0!important}:host ::ng-deep .ui-autocomplete-panel{left:0!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.AutoComplete, selector: "yvc-autocomplete", inputs: ["field", "placeholder", "minLength", "multiple", "typeahead", "distinctValues", "forceSelection", "autocompleteValues", "disabled"], outputs: ["autocompleteFnc", "blur", "focus", "suggestionUnselect", "suggestionSelect"] }, { kind: "component", type: i5.Icon, selector: "yvc-icon", inputs: ["svg", "svgSrc"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
|
|
58
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: OrganizationFilterComponent, selector: "eo-organization-filter", usesInheritance: true, ngImport: i0, template: "<div class=\"eo-organization\" [ngClass]=\"{acInputHidden: !multiselect && innerValue.length}\">\n\n <yvc-autocomplete [(ngModel)]=\"innerValue\" #autocomplete (suggestionSelect)=\"onSelect($event)\"\n [placeholder]=\"placeholder\" (suggestionUnselect)=\"onUnselect($event)\" (blur)=\"onAutoCompleteBlur()\"\n [disabled]=\"readonly\" [autocompleteValues]=\"autocompleteRes\" field=\"id\"\n [forceSelection]=\"true\"\n (autocompleteFnc)=\"autocompleteFn($event)\" [multiple]=\"true\">\n\n <ng-template #autocompleteOptionTemplate let-item>\n <div class=\"org-item\">\n <yvc-icon [svg]=\"item.type === 'group' ? icon.group : icon.user\"></yvc-icon>\n <span *ngIf=\"(item.firstname?.length && item.lastname?.length) || item.type === 'group'\">{{item.title}}\n ({{item.name}})</span>\n <span *ngIf=\"!item.firstname?.length && !item.lastname?.length && item.type !== 'group'\">({{item.name}})</span>\n <span *ngIf=\"!item.firstname?.length && item.lastname?.length\">{{item.lastname}} ({{item.name}})</span>\n <span *ngIf=\"item.firstname?.length && !item.lastname?.length\">{{item.firstname}} ({{item.name}})</span>\n </div>\n </ng-template>\n\n <ng-template #chipTemplate let-item>\n <div class=\"org-item\">\n <yvc-icon [svg]=\"item.type === 'group' ? icon.group : icon.user\"></yvc-icon>\n <span\n *ngIf=\"(item.firstname?.length && item.lastname?.length && item.active) || item.type === 'group'\">{{item.title}}\n ({{item.name}})</span>\n <span class=\"inactive\"\n *ngIf=\"(item.firstname?.length && item.lastname?.length && !item.active)\">{{item.title}}\n ({{item.name}})</span>\n <span *ngIf=\"(!item.firstname?.length && !item.lastname?.length && !item.active && !item.type)\"\n class=\"deleted-user-label\">{{'eo.form.property.organization.error.usernotfound'|translate}}</span>\n <span\n *ngIf=\"!item.firstname?.length && !item.lastname?.length && item.active && item.type !== 'group'\">({{item.name}})</span>\n <span *ngIf=\"!item.firstname?.length && item.lastname?.length\">{{item.lastname}} ({{item.name}})</span>\n <span *ngIf=\"item.firstname?.length && !item.lastname?.length\">{{item.firstname}} ({{item.name}})</span>\n </div>\n </ng-template>\n\n </yvc-autocomplete>\n</div>\n", styles: [".eo-organization yvc-autocomplete{width:100%;border:0;outline:0!important}.eo-organization .org-item{display:flex;align-items:center}.eo-organization .inactive{text-decoration:line-through}:host.readonly ::ng-deep .ui-autocomplete-token-icon{display:none}:host ::ng-deep .chip yvc-icon{flex:0 0 auto;width:18px;height:18px;color:var(--text-color-caption)}:host ::ng-deep .deleted-user-label{color:var(--color-error)}:host ::ng-deep .eo-organization.acInputHidden .inputToken{width:0!important;margin:0;padding:0}:host ::ng-deep .eo-organization.acInputHidden .inputToken input{width:0!important}:host ::ng-deep .ui-autocomplete-panel{left:0!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.AutoComplete, selector: "yvc-autocomplete", inputs: ["field", "placeholder", "minLength", "multiple", "typeahead", "distinctValues", "forceSelection", "autocompleteValues", "disabled"], outputs: ["autocompleteFnc", "blur", "focus", "suggestionUnselect", "suggestionSelect"] }, { kind: "component", type: i5.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
|
|
59
59
|
}
|
|
60
60
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: OrganizationFilterComponent, decorators: [{
|
|
61
61
|
type: Component,
|
|
@@ -27,6 +27,7 @@ import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
|
27
27
|
import { YvcAutocompleteModule } from '@yuuvis/components/autocomplete';
|
|
28
28
|
import { YvcIconModule } from '@yuuvis/components/icon';
|
|
29
29
|
import { YvcDatepickerModule } from '@yuuvis/components/datepicker';
|
|
30
|
+
import { YvcDropdownModule } from '@yuuvis/components/dropdown';
|
|
30
31
|
import * as i0 from "@angular/core";
|
|
31
32
|
import * as i1 from "@eo-sdk/core";
|
|
32
33
|
const filterComponents = [TextFilterComponent, SetFilterComponent, DatetimeFilterComponent, CodesystemFilterComponent, OrganizationFilterComponent,
|
|
@@ -53,7 +54,8 @@ export class GridModule {
|
|
|
53
54
|
YvcIconModule,
|
|
54
55
|
YvcDatepickerModule,
|
|
55
56
|
DragDropModule,
|
|
56
|
-
AgGridModule
|
|
57
|
+
AgGridModule,
|
|
58
|
+
YvcDropdownModule], exports: [GridComponent, ColumnConfiguratorComponent, TotalCountComponent, QuickFilterComponent,
|
|
57
59
|
CustomSortComponent, CustomFilterComponent, TextFilterComponent, SetFilterComponent, DatetimeFilterComponent,
|
|
58
60
|
CodesystemFilterComponent, OrganizationFilterComponent, ResetFilterComponent, EmptyComponent, PaginationComponent, DynamicListFilterComponent, ListFilterComponent] }); }
|
|
59
61
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: GridModule, imports: [UiModule,
|
|
@@ -67,7 +69,8 @@ export class GridModule {
|
|
|
67
69
|
YvcIconModule,
|
|
68
70
|
YvcDatepickerModule,
|
|
69
71
|
DragDropModule,
|
|
70
|
-
AgGridModule
|
|
72
|
+
AgGridModule,
|
|
73
|
+
YvcDropdownModule] }); }
|
|
71
74
|
}
|
|
72
75
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: GridModule, decorators: [{
|
|
73
76
|
type: NgModule,
|
|
@@ -84,7 +87,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
84
87
|
YvcIconModule,
|
|
85
88
|
YvcDatepickerModule,
|
|
86
89
|
DragDropModule,
|
|
87
|
-
AgGridModule
|
|
90
|
+
AgGridModule,
|
|
91
|
+
YvcDropdownModule
|
|
88
92
|
],
|
|
89
93
|
declarations: [GridComponent, ColumnConfiguratorComponent, TotalCountComponent, QuickFilterComponent,
|
|
90
94
|
CustomSortComponent, CustomFilterComponent, TextFilterComponent, SetFilterComponent, DatetimeFilterComponent,
|
|
@@ -94,4 +98,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
94
98
|
CodesystemFilterComponent, OrganizationFilterComponent, ResetFilterComponent, EmptyComponent, PaginationComponent, DynamicListFilterComponent, ListFilterComponent]
|
|
95
99
|
}]
|
|
96
100
|
}], ctorParameters: () => [{ type: i1.EventService }, { type: i1.Config }] });
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9ncmlkL2dyaWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBc0IsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBZSxVQUFVLEVBQVMsTUFBTSxjQUFjLENBQUM7QUFDOUQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUV4RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0scURBQXFELENBQUM7QUFDaEcsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQ25GLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQ3RGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQ25GLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQ3pGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQ25GLE9BQU8sRUFBQyxXQUFXLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxxREFBcUQsQ0FBQztBQUN2RixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDNUMsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0scUNB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QixjQUFjO3dCQUNkLFlBQVk7d0JBQ1osaUJBQWlCO3FCQUNsQjtvQkFDRCxZQUFZLEVBQUUsQ0FBQyxhQUFhLEVBQUUsMkJBQTJCLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CO3dCQUNsRyxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSx1QkFBdUI7d0JBQzVHLHlCQUF5QixFQUFFLDJCQUEyQixFQUFFLG9CQUFvQixFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSwwQkFBMEIsRUFBRSxtQkFBbUIsQ0FBQztvQkFDckssT0FBTyxFQUFFLENBQUMsYUFBYSxFQUFFLDJCQUEyQixFQUFFLG1CQUFtQixFQUFFLG9CQUFvQjt3QkFDN0YsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsdUJBQXVCO3dCQUM1Ryx5QkFBeUIsRUFBRSwyQkFBMkIsRUFBRSxvQkFBb0IsRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsMEJBQTBCLEVBQUUsbUJBQW1CLENBQUM7aUJBQ3RLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0V2ZW50U2VydmljZSwgRW5haW9FdmVudCwgQ29uZmlnfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtVaU1vZHVsZX0gZnJvbSAnLi4vdWkvdWkubW9kdWxlJztcbmltcG9ydCB7QWdHcmlkTW9kdWxlfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvYW5ndWxhcic7XG5cbmltcG9ydCB7R3JpZENvbXBvbmVudH0gZnJvbSAnLi9ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQge0NvbHVtbkNvbmZpZ3VyYXRvckNvbXBvbmVudH0gZnJvbSAnLi9jb2x1bW4tY29uZmlndXJhdG9yL2NvbHVtbi1jb25maWd1cmF0b3IuY29tcG9uZW50JztcbmltcG9ydCB7VXRpbE1vZHVsZX0gZnJvbSAnLi4vdXRpbC91dGlsLm1vZHVsZSc7XG5pbXBvcnQge1RvdGFsQ291bnRDb21wb25lbnR9IGZyb20gJy4vZXh0ZW5zaW9ucy90b3RhbC1jb3VudC90b3RhbC1jb3VudC5jb21wb25lbnQnO1xuaW1wb3J0IHtRdWlja0ZpbHRlckNvbXBvbmVudH0gZnJvbSAnLi9leHRlbnNpb25zL3F1aWNrLWZpbHRlci9xdWljay1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7Q3VzdG9tU29ydENvbXBvbmVudH0gZnJvbSAnLi9leHRlbnNpb25zL2N1c3RvbS1zb3J0L2N1c3RvbS1zb3J0LmNvbXBvbmVudCc7XG5pbXBvcnQge0N1c3RvbUZpbHRlckNvbXBvbmVudH0gZnJvbSAnLi9leHRlbnNpb25zL2ZpbHRlci9jdXN0b20vY3VzdG9tLWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHtUZXh0RmlsdGVyQ29tcG9uZW50fSBmcm9tICcuL2V4dGVuc2lvbnMvZmlsdGVyL3RleHQvdGV4dC1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7Rm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7U2V0RmlsdGVyQ29tcG9uZW50fSBmcm9tICcuL2V4dGVuc2lvbnMvZmlsdGVyL3NldEZpbHRlcnMvc2V0LWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHtGb3JtRWxlbWVudHNNb2R1bGV9IGZyb20gJy4uL2Zvcm0tZWxlbWVudHMvZm9ybS1lbGVtZW50cy5tb2R1bGUnO1xuaW1wb3J0IHtDdGFNb2R1bGV9IGZyb20gJy4uL2N0YS9jdGEubW9kdWxlJztcbmltcG9ydCB7RGF0ZXRpbWVGaWx0ZXJDb21wb25lbnR9IGZyb20gJy4vZmlsdGVycy9kYXRldGltZS1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7T3JnYW5pemF0aW9uRmlsdGVyQ29tcG9uZW50fSBmcm9tICcuL2ZpbHRlcnMvb3JnYW5pemF0aW9uLWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHtDb2Rlc3lzdGVtRmlsdGVyQ29tcG9uZW50fSBmcm9tICcuL2ZpbHRlcnMvY29kZXN5c3RlbS1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7RHluYW1pY0xpc3RGaWx0ZXJDb21wb25lbnR9IGZyb20gJy4vZmlsdGVycy9keW5hbWljLWxpc3QtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQge1RyZWVNb2R1bGV9IGZyb20gJy4uL3RyZWUvdHJlZS5tb2R1bGUnO1xuaW1wb3J0IHtSZXNldEZpbHRlckNvbXBvbmVudH0gZnJvbSAnLi9leHRlbnNpb25zL3Jlc2V0LWZpbHRlci9yZXNldC1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7RW1wdHlDb21wb25lbnR9IGZyb20gJy4vZXh0ZW5zaW9ucy9lbXB0eS9lbXB0eS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vZXh0ZW5zaW9ucy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7TGlzdEZpbHRlckNvbXBvbmVudH0gZnJvbSAnLi9maWx0ZXJzL2xpc3QtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQge0RyYWdEcm9wTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7WXZjQXV0b2NvbXBsZXRlTW9kdWxlfSBmcm9tICdAeXV1dmlzL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7WXZjSWNvbk1vZHVsZX0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHtZdmNEYXRlcGlja2VyTW9kdWxlfSBmcm9tICdAeXV1dmlzL2NvbXBvbmVudHMvZGF0ZXBpY2tlcic7XG5pbXBvcnQge1l2Y0Ryb3Bkb3duTW9kdWxlfSBmcm9tICdAeXV1dmlzL2NvbXBvbmVudHMvZHJvcGRvd24nO1xuXG5jb25zdCBmaWx0ZXJDb21wb25lbnRzID0gW1RleHRGaWx0ZXJDb21wb25lbnQsIFNldEZpbHRlckNvbXBvbmVudCwgRGF0ZXRpbWVGaWx0ZXJDb21wb25lbnQsIENvZGVzeXN0ZW1GaWx0ZXJDb21wb25lbnQsIE9yZ2FuaXphdGlvbkZpbHRlckNvbXBvbmVudCxcbiAgRHluYW1pY0xpc3RGaWx0ZXJDb21wb25lbnQsIExpc3RGaWx0ZXJDb21wb25lbnRdO1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIFVpTW9kdWxlLFxuICAgIFV0aWxNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBGb3JtRWxlbWVudHNNb2R1bGUsXG4gICAgVHJlZU1vZHVsZSxcbiAgICBDdGFNb2R1bGUsXG4gICAgWXZjQXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgIFl2Y0ljb25Nb2R1bGUsXG4gICAgWXZjRGF0ZXBpY2tlck1vZHVsZSxcbiAgICBEcmFnRHJvcE1vZHVsZSxcbiAgICBBZ0dyaWRNb2R1bGUsXG4gICAgWXZjRHJvcGRvd25Nb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbR3JpZENvbXBvbmVudCwgQ29sdW1uQ29uZmlndXJhdG9yQ29tcG9uZW50LCBUb3RhbENvdW50Q29tcG9uZW50LCBRdWlja0ZpbHRlckNvbXBvbmVudCxcbiAgICBDdXN0b21Tb3J0Q29tcG9uZW50LCBDdXN0b21GaWx0ZXJDb21wb25lbnQsIFRleHRGaWx0ZXJDb21wb25lbnQsIFNldEZpbHRlckNvbXBvbmVudCwgRGF0ZXRpbWVGaWx0ZXJDb21wb25lbnQsXG4gICAgQ29kZXN5c3RlbUZpbHRlckNvbXBvbmVudCwgT3JnYW5pemF0aW9uRmlsdGVyQ29tcG9uZW50LCBSZXNldEZpbHRlckNvbXBvbmVudCwgRW1wdHlDb21wb25lbnQsIFBhZ2luYXRpb25Db21wb25lbnQsIER5bmFtaWNMaXN0RmlsdGVyQ29tcG9uZW50LCBMaXN0RmlsdGVyQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW0dyaWRDb21wb25lbnQsIENvbHVtbkNvbmZpZ3VyYXRvckNvbXBvbmVudCwgVG90YWxDb3VudENvbXBvbmVudCwgUXVpY2tGaWx0ZXJDb21wb25lbnQsXG4gICAgQ3VzdG9tU29ydENvbXBvbmVudCwgQ3VzdG9tRmlsdGVyQ29tcG9uZW50LCBUZXh0RmlsdGVyQ29tcG9uZW50LCBTZXRGaWx0ZXJDb21wb25lbnQsIERhdGV0aW1lRmlsdGVyQ29tcG9uZW50LFxuICAgIENvZGVzeXN0ZW1GaWx0ZXJDb21wb25lbnQsIE9yZ2FuaXphdGlvbkZpbHRlckNvbXBvbmVudCwgUmVzZXRGaWx0ZXJDb21wb25lbnQsIEVtcHR5Q29tcG9uZW50LCBQYWdpbmF0aW9uQ29tcG9uZW50LCBEeW5hbWljTGlzdEZpbHRlckNvbXBvbmVudCwgTGlzdEZpbHRlckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgR3JpZE1vZHVsZSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBldmVudDogRXZlbnRTZXJ2aWNlLCBwcml2YXRlIGNvbmZpZzogQ29uZmlnKSB7XG4gICAgdGhpcy5ldmVudFxuICAgICAgLm9uKEVuYWlvRXZlbnQuRU9fTElDRU5TRV9HUklEKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7fSk7XG4gIH1cbn1cbiJdfQ==
|
package/esm2022/app/eo-framework/object-form/object-form-edit/object-form-edit.component.mjs
CHANGED
|
@@ -114,7 +114,8 @@ export class ObjectFormEditComponent {
|
|
|
114
114
|
setTimeout(() => {
|
|
115
115
|
if (this.formState.dirty && !this.formState.invalid) {
|
|
116
116
|
this.controls.saving = true;
|
|
117
|
-
const
|
|
117
|
+
const rawFormData = this.objectForm.getFormData();
|
|
118
|
+
const formData = rawFormData && this.extractObjectValues(rawFormData);
|
|
118
119
|
const { id, typeName, version } = this._dmsObject;
|
|
119
120
|
this.dmsService.updateObject(id, formData, typeName, ignoreConflicts ? null : version, false)
|
|
120
121
|
.pipe(finalize(() => this.finishPending()))
|
|
@@ -139,6 +140,27 @@ export class ObjectFormEditComponent {
|
|
|
139
140
|
}
|
|
140
141
|
}, 500);
|
|
141
142
|
}
|
|
143
|
+
/**
|
|
144
|
+
* Extracts the `value` property from any nested objects within the formData object
|
|
145
|
+
* and assigns it back to the corresponding key in the formData object.
|
|
146
|
+
*
|
|
147
|
+
* @param {any} formData - The form data object to process.
|
|
148
|
+
* @returns {any} The modified form data object with extracted values.
|
|
149
|
+
*/
|
|
150
|
+
extractObjectValues(formData) {
|
|
151
|
+
for (const key in formData) {
|
|
152
|
+
if (formData.hasOwnProperty(key)) {
|
|
153
|
+
const value = formData[key];
|
|
154
|
+
if (value && typeof value === 'object' && 'value' in value) {
|
|
155
|
+
formData[key] = value.value;
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
formData[key] = value ? value : [];
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return formData;
|
|
163
|
+
}
|
|
142
164
|
openConflictDialog() {
|
|
143
165
|
this.showConflictDialog = true;
|
|
144
166
|
}
|
|
@@ -213,4 +235,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
213
235
|
}], indexDataSaved: [{
|
|
214
236
|
type: Output
|
|
215
237
|
}] } });
|
|
216
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0tZWRpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS1lZGl0L29iamVjdC1mb3JtLWVkaXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0tZWRpdC9vYmplY3QtZm9ybS1lZGl0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxRQUFRLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRCxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUMsT0FBTyxFQUFtQixNQUFNLGNBQWMsQ0FBQztBQUN2RCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUt6RSxPQUFPLEVBQTZELEtBQUssRUFBQyxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7OztBQVEvRixNQUFNLE9BQU8sdUJBQXVCO0lBZWxDLElBQ0ksU0FBUyxDQUFDLFNBQW9CO1FBQ2hDLElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztZQUU1Qiw4QkFBOEI7WUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQzdCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUU5QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUM7SUFFRCxJ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QyxLQUFVO1FBQ3BELElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUMvQixLQUFLLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1QyxDQUFDO2FBQU0sSUFBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDekIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUNBQW1DLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM3RSxDQUFDO0lBQ0gsQ0FBQztJQUVPLFVBQVUsQ0FBQyxTQUFvQjtRQUNyQyxPQUFPLFNBQVMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO0lBQy9GLENBQUM7OEdBN05VLHVCQUF1QjtrR0FBdkIsdUJBQXVCLHdOQVd2QixtQkFBbUIsZ0RDNUJoQywwcURBNEJBOzsyRkRYYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0UscUJBQXFCOytQQWVDLFVBQVU7c0JBQXpDLFNBQVM7dUJBQUMsbUJBQW1CO2dCQUVyQixZQUFZO3NCQUFwQixLQUFLO2dCQUdGLFNBQVM7c0JBRFosS0FBSzt1QkFBQyxXQUFXO2dCQWtCUixjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOYXZpZ2F0aW9uRXh0cmFzLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge2ZpbmFsaXplLCBjYXRjaEVycm9yfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIFZpZXdDaGlsZCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEVsZW1lbnRSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFb0Vycm9yLCBUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtPYmplY3RGb3JtQ29tcG9uZW50fSBmcm9tICcuLi9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHtHbG9iYWxTaG9ydGN1dENvbXBvbmVudH0gZnJvbSAnLi4vLi4vc2hvcnRjdXRzL2dsb2JhbC1zaG9ydGN1dC1jb21wb25lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7T2JqZWN0Rm9ybU9wdGlvbnN9IGZyb20gJy4uL29iamVjdC1mb3JtLW9wdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7Rm9ybVN0YXR1c0NoYW5nZWRFdmVudH0gZnJvbSAnLi4vZm9ybS1zdGF0dXMtY2hhbmdlZC1ldmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3BlbmRpbmctY2hhbmdlcy9wZW5kaW5nLWNoYW5nZXMuc2VydmljZSc7XG5pbXBvcnQge0Rtc09iamVjdCwgU3lzdGVtU2VydmljZSwgRG1zU2VydmljZSwgTm90aWZpY2F0aW9uc1NlcnZpY2UsIFV0aWxzfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLW9iamVjdC1mb3JtLWVkaXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vb2JqZWN0LWZvcm0tZWRpdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL29iamVjdC1mb3JtLWVkaXQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBPYmplY3RGb3JtRWRpdENvbXBvbmVudCB7XG5cbiAgc2hvd0NvbmZsaWN0RGlhbG9nID0gZmFsc2U7XG4gIGNvbmZsaWN0RXJyb3I6IGFueTtcblxuICAvLyBJRCBzZXQgYnkgcGVuZGluZ0NoYW5nZXMgc2VydmljZSB3aGVuIGVkaXRpbmcgaW5kZXhkYXRhXG4gIC8vIFVzZWQgdG8gZmluaXNoIHRoZSBwZW5kaW5nIHRhc2sgd2hlbiBlZGl0aW5nIGlzIGRvbmVcbiAgcHJpdmF0ZSBwZW5kaW5nVGFza0lkOiBzdHJpbmc7XG5cbiAgLy8gZmV0Y2ggYSByZWZlcmVuY2UgdG8gdGhlIG9wYmplY3QgZm9ybSBjb21wb25lbnQgdG8gYmUgYWJsZSB0b1xuICAvLyBnZXQgdGhlIGZvcm0gZGF0YVxuICBAVmlld0NoaWxkKE9iamVjdEZvcm1Db21wb25lbnQpIG9iamVjdEZvcm06IE9iamVjdEZvcm1Db21wb25lbnQ7XG5cbiAgQElucHV0KCkgZm9ybURpc2FibGVkOiBib29sZWFuO1xuXG4gIEBJbnB1dCgnZG1zT2JqZWN0JylcbiAgc2V0IGRtc09iamVjdChkbXNPYmplY3Q6IERtc09iamVjdCkge1xuICAgIGlmIChkbXNPYmplY3QpIHtcbiAgICAgIHRoaXMuX2Rtc09iamVjdCA9IGRtc09iamVjdDtcblxuICAgICAgLy8gcmVzZXQgdGhlIHN0YXRlIG9mIHRoZSBmb3JtXG4gICAgICB0aGlzLmZvcm1TdGF0ZSA9IG51bGw7XG4gICAgICB0aGlzLmNvbnRyb2xzLnNhdmluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5jb250cm9scy52aXNpYmxlID0gZmFsc2U7XG5cbiAgICAgIHRoaXMuY3JlYXRlT2JqZWN0Rm9ybShkbXNPYmplY3QpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBkbXNPYmplY3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rtc09iamVjdDtcbiAgfVxuXG4gIEBPdXRwdXQoKSBpbmRleERhdGFTYXZlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGZvcm1PcHRpb25zOiBPYmplY3RGb3JtT3B0aW9ucztcbiAgZm9ybVN0YXRlOiBGb3JtU3RhdHVzQ2hhbmdlZEV2ZW50O1xuICBjb250cm9scyA9IHtcbiAgICB2aXNpYmxlOiBmYWxzZSxcbiAgICBzYXZpbmc6IGZhbHNlXG4gIH07XG5cbiAgcHJpdmF0ZSBfZG1zT2JqZWN0OiBEbXNPYmplY3Q7XG4gIHByaXZhdGUgbWVzc2FnZXMgPSB7XG4gICAgZm9ybVN1Y2Nlc3M6IG51bGwsXG4gICAgZm9ybUVycm9yOiBudWxsXG4gIH07XG5cbiAgLy8gc2hvcnRjdXQgYWN0aW9uc1xuICBzaG9ydGN1dHM6IEdsb2JhbFNob3J0Y3V0Q29tcG9uZW50ID0ge1xuICAgIGlkOiAnZW8uYXBwLmZvcm0uZWRpdCcsXG4gICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnNob3J0Y3V0cy5mb3JtLnRpdGxlJyksXG4gICAgbGFiZWxLZXk6ICdlby5zaG9ydGN1dHMuZm9ybS50aXRsZScsXG4gICAgYWN0aW9uczogW3tcbiAgICAgIG5hbWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnNob3J0Y3V0cy5mb3JtLmFjdGlvbi5zYXZlJyksXG4gICAgICBuYW1lS2V5OiAnZW8uc2hvcnRjdXRzLmZvcm0uYWN0aW9uLnNhdmUnLFxuICAgICAgc2hvcnRjdXQ6ICdTJyxcbiAgICAgIG9uRXhlY3V0ZUFjdGlvbjogKCkgPT4ge1xuICAgICAgICB0aGlzLnNhdmUoKTtcbiAgICAgIH0sXG4gICAgICBpc0hpZGRlbjogKCkgPT4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuZm9ybVN0YXRlIHx8ICF0aGlzLmZvcm1TdGF0ZS5kaXJ0eSB8fCB0aGlzLmZvcm1TdGF0ZS5pbnZhbGlkIHx8ICFVdGlscy5pc1Zpc2libGUodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCk7XG4gICAgICB9XG4gICAgfSwge1xuICAgICAgbmFtZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc2hvcnRjdXRzLmZvcm0uYWN0aW9uLnJlc2V0JyksXG4gICAgICBuYW1lS2V5OiAnZW8uc2hvcnRjdXRzLmZvcm0uYWN0aW9uLnJlc2V0JyxcbiAgICAgIHNob3J0Y3V0OiAnUicsXG4gICAgICBvbkV4ZWN1dGVBY3Rpb246ICgpID0+IHtcbiAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgfSxcbiAgICAgIGlzSGlkZGVuOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5mb3JtU3RhdGUgfHwgIXRoaXMuZm9ybVN0YXRlLmRpcnR5IHx8ICFVdGlscy5pc1Zpc2libGUodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCk7XG4gICAgICB9XG4gICAgfSwge1xuICAgICAgbmFtZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc2hvcnRjdXRzLmZvcm0uYWN0aW9uLmVkaXQnKSxcbiAgICAgIG5hbWVLZXk6ICdlby5zaG9ydGN1dHMuZm9ybS5hY3Rpb24uZWRpdCcsXG4gICAgICBzaG9ydGN1dDogJ0UnLFxuICAgICAgb25FeGVjdXRlQWN0aW9uOiAoKSA9PiB7XG4gICAgICAgIHRoaXMub2JqZWN0Rm9ybS5mb2N1c0Zvcm0oKTtcbiAgICAgIH0sXG4gICAgICBpc0hpZGRlbjogKHRhcmdldCkgPT4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuZm9ybU9wdGlvbnMgfHwgdGhpcy5mb3JtU3RhdGUuZGlydHkgfHwgIVV0aWxzLmlzVmlzaWJsZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50KSB8fCB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5jb250YWlucyh0YXJnZXQpO1xuICAgICAgfVxuICAgIH1dXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzeXN0ZW1TZXJ2aWNlOiBTeXN0ZW1TZXJ2aWNlLFxuICAgIHByaXZhdGUgZG1zU2VydmljZTogRG1zU2VydmljZSxcbiAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBub3RpY2F0aW9uOiBOb3RpZmljYXRpb25zU2VydmljZSxcbiAgICBwcml2YXRlIHBlbmRpbmdDaGFuZ2VzOiBQZW5kaW5nQ2hhbmdlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwdWJsaWMgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XG5cbiAgICB0aGlzLnRyYW5zbGF0ZS5nZXQoW1xuICAgICAgJ2VvLm9iamVjdC5pbmRleGRhdGEuc2F2ZS5zdWNjZXNzJyxcbiAgICAgICdlby5vYmplY3QuaW5kZXhkYXRhLnNhdmUuZXJyb3InXG4gICAgXSkuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgIHRoaXMubWVzc2FnZXMuZm9ybVN1Y2Nlc3MgPSByZXNbJ2VvLm9iamVjdC5pbmRleGRhdGEuc2F2ZS5zdWNjZXNzJ107XG4gICAgICB0aGlzLm1lc3NhZ2VzLmZvcm1FcnJvciA9IHJlc1snZW8ub2JqZWN0LmluZGV4ZGF0YS5zYXZlLmVycm9yJ107XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXJ0UGVuZGluZygpIHtcbiAgICAvLyBiZWNhdXNlIHRoaXMgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIGV2ZXJ5IHRpbWUgdGhlIGZvcm0gc3RhdHVzIGNoYW5nZXMsXG4gICAgLy8gcGVuZGluZyB0YXNrIHdpbGwgb25seSBiZSBzdGFydGVkIG9uY2UgdW50aWwgaXQgd2FzIGZpbmlzaGVkXG4gICAgaWYgKCF0aGlzLnBlbmRpbmdDaGFuZ2VzLmhhc1BlbmRpbmdUYXNrKHRoaXMucGVuZGluZ1Rhc2tJZCB8fCAnICcpKSB7XG4gICAgICB0aGlzLnBlbmRpbmdUYXNrSWQgPSB0aGlzLnBlbmRpbmdDaGFuZ2VzLnN0YXJ0VGFzaygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmluaXNoUGVuZGluZygpIHtcbiAgICB0aGlzLnBlbmRpbmdDaGFuZ2VzLmZpbmlzaFRhc2sodGhpcy5wZW5kaW5nVGFza0lkKTtcbiAgfVxuXG4gIG9uRm9ybVN0YXR1c0NoYW5nZWQoZXZ0KSB7XG4gICAgdGhpcy5mb3JtU3RhdGUgPSBldnQ7XG4gICAgdGhpcy5jb250cm9scy52aXNpYmxlID0gdGhpcy5mb3JtU3RhdGUuaW52YWxpZCB8fCB0aGlzLmZvcm1TdGF0ZS5kaXJ0eTtcbiAgICBpZiAodGhpcy5mb3JtU3RhdGUuZGlydHkpIHtcbiAgICAgIHRoaXMuc3RhcnRQZW5kaW5nKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmluaXNoUGVuZGluZygpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHNhdmUgdGhlIGN1cnJlbnQgZG1zIG9iamVjdFxuICBzYXZlKGlnbm9yZUNvbmZsaWN0cz86IGJvb2xlYW4pIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmZvcm1TdGF0ZS5kaXJ0eSAmJiAhdGhpcy5mb3JtU3RhdGUuaW52YWxpZCkge1xuICAgICAgICB0aGlzLmNvbnRyb2xzLnNhdmluZyA9IHRydWU7XG4gICAgICAgIGNvbnN0IGZvcm1EYXRhID0gdGhpcy5vYmplY3RGb3JtLmdldEZvcm1EYXRhKCk7XG4gICAgICAgIGNvbnN0IHtpZCwgdHlwZU5hbWUsIHZlcnNpb259ID0gdGhpcy5fZG1zT2JqZWN0O1xuXG4gICAgICAgIHRoaXMuZG1zU2VydmljZS51cGRhdGVPYmplY3QoaWQsIGZvcm1EYXRhLCB0eXBlTmFtZSwgaWdub3JlQ29uZmxpY3RzID8gbnVsbCA6IHZlcnNpb24sIGZhbHNlKVxuICAgICAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+IHRoaXMuZmluaXNoUGVuZGluZygpKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKCh1cGRhdGVkT2JqZWN0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9kbXNPYmplY3QgPSB1cGRhdGVkT2JqZWN0O1xuICAgICAgICAgICAgdGhpcy5mb3JtT3B0aW9ucy5kYXRhID0gdXBkYXRlZE9iamVjdC5kYXRhO1xuICAgICAgICAgICAgdGhpcy5mb3JtT3B0aW9ucy5vYmplY3QgPSB1cGRhdGVkT2JqZWN0O1xuICAgICAgICAgICAgdGhpcy5jb250cm9scy5zYXZpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbHMudmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5vYmplY3RGb3JtLnNldEZvcm1QcmlzdGluZSgpO1xuICAgICAgICAgICAgdGhpcy5pbmRleERhdGFTYXZlZC5lbWl0KGZvcm1EYXRhKTtcbiAgICAgICAgICB9LCAoZXJyKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2xzLnNhdmluZyA9IGZhbHNlO1xuICAgICAgICAgICAgaWYoZXJyLnN0YXR1cyA9PT0gNDA5KXtcbiAgICAgICAgICAgICAgdGhpcy5jb25mbGljdEVycm9yID0gZXJyLmVycm9yO1xuICAgICAgICAgICAgICB0aGlzLm9wZW5Db25mbGljdERpYWxvZygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFb0Vycm9yKGVyciwgdGhpcy5fZG1zT2JqZWN0LnRpdGxlLCB0aGlzLm1lc3NhZ2VzLmZvcm1FcnJvciwgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIDUwMCk7XG4gIH1cblxuICBvcGVuQ29uZmxpY3REaWFsb2coKXtcbiAgICB0aGlzLnNob3dDb25mbGljdERpYWxvZyA9IHRydWU7XG4gIH1cblxuICBjbG9zZUNvbmZsaWN0RGlhbG9nKCl7XG4gICAgdGhpcy5zaG93Q29uZmxpY3REaWFsb2cgPSBmYWxzZTtcbiAgfVxuXG4gIHNob3dDb25mbGljdENoYW5nZXMoKXtcbiAgICBjb25zdCBuYXZpZ2F0aW9uRXh0cmFzOiBOYXZpZ2F0aW9uRXh0cmFzID0ge1xuICAgICAgcXVlcnlQYXJhbXM6IHtcbiAgICAgICAgdmVyc2lvbjogdGhpcy5fZG1zT2JqZWN0LnZlcnNpb24sXG4gICAgICAgIHZlcnNpb24yOiB0aGlzLmNvbmZsaWN0RXJyb3IuZG1zb2JqZWN0LnZlcnNpb25cbiAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IHVybCA9IHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoW2B2ZXJzaW9ucy8ke3RoaXMuX2Rtc09iamVjdC5pZH1gXSwgbmF2aWdhdGlvbkV4dHJhcykudG9TdHJpbmcoKS5yZXBsYWNlKC9eXFwvKy9nLCAnJyk7XG4gICAgd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJyk7XG4gIH1cblxuICBjYW5jZWxTYXZpbmcoKXtcbiAgICB0aGlzLmNsb3NlQ29uZmxpY3REaWFsb2coKTtcbiAgfVxuXG4gIC8vIHJlc2V0IHRoZSBmb3JtIHRvIGl0cyBpbml0aWFsIHN0YXRlXG4gIHJlc2V0KCkge1xuICAgIHRoaXMub2JqZWN0Rm9ybS5yZXNldEZvcm0oKTtcbiAgfVxuXG4gIC8vIGNyZWF0ZSB0aGUgZm9ybU9wdGlvbnMgcmVxdWlyZWQgYnkgb2JqZWN0IGZvcm0gY29tcG9uZW50XG4gIHByaXZhdGUgY3JlYXRlT2JqZWN0Rm9ybShkbXNPYmplY3Q6IERtc09iamVjdCkge1xuXG4gICAgdGhpcy5zeXN0ZW1TZXJ2aWNlXG4gICAgICAuZ2V0T2JqZWN0VHlwZUZvcm0oZG1zT2JqZWN0LnR5cGUubmFtZSwgJ0VESVQnKVxuICAgICAgLnN1YnNjcmliZSgobW9kZWwpID0+IHtcbiAgICAgICAgdGhpcy5hZGRFeGNlcHRpb25JRHNGb3JJRFJlZmVyZW5jZUZpZWxkcyhtb2RlbCk7XG4gICAgICAgIHRoaXMuZm9ybU9wdGlvbnMgPSB7XG4gICAgICAgICAgbGF5b3V0U2V0dGluZ3NJRDogZG1zT2JqZWN0LnR5cGUubmFtZSxcbiAgICAgICAgICBmb3JtTW9kZWw6IG1vZGVsLFxuICAgICAgICAgIGRhdGE6IGRtc09iamVjdC5kYXRhLFxuICAgICAgICAgIG9iamVjdDogZG1zT2JqZWN0LFxuICAgICAgICAgIG9iamVjdElkOiBkbXNPYmplY3QuaWQsXG4gICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuZm9ybURpc2FibGVkIHx8ICF0aGlzLmlzRWRpdGFibGUoZG1zT2JqZWN0KVxuICAgICAgICB9O1xuICAgICAgICBpZiAoZG1zT2JqZWN0LmNvbnRleHRGb2xkZXIpIHtcbiAgICAgICAgICB0aGlzLmZvcm1PcHRpb25zLmNvbnRleHQgPSB7XG4gICAgICAgICAgICBpZDogZG1zT2JqZWN0LmNvbnRleHRGb2xkZXIuaWQsXG4gICAgICAgICAgICB0aXRsZTogZG1zT2JqZWN0LmNvbnRleHRGb2xkZXIudGl0bGUsXG4gICAgICAgICAgICB0eXBlTmFtZTogZG1zT2JqZWN0LmNvbnRleHRGb2xkZXIudHlwZU5hbWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRFeGNlcHRpb25JRHNGb3JJRFJlZmVyZW5jZUZpZWxkcyhtb2RlbDogYW55KSB7XG4gICAgaWYgKG1vZGVsLnR5cGUgPT09ICdSRUZFUkVOQ0UnKSB7XG4gICAgICBtb2RlbC5leGNlcHRpb25JRHMgPSBbdGhpcy5fZG1zT2JqZWN0LmlkXTtcbiAgICB9IGVsc2UgaWYobW9kZWwuZWxlbWVudHMpIHtcbiAgICAgIG1vZGVsLmVsZW1lbnRzLmZvckVhY2goZWwgPT4gdGhpcy5hZGRFeGNlcHRpb25JRHNGb3JJRFJlZmVyZW5jZUZpZWxkcyhlbCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNFZGl0YWJsZShkbXNPYmplY3Q6IERtc09iamVjdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBkbXNPYmplY3QuaGFzT3duUHJvcGVydHkoJ3JpZ2h0cycpICYmIGRtc09iamVjdC5yaWdodHMuZWRpdCAmJiAhZG1zT2JqZWN0LmlzRmluYWxpemVkO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwib2JqZWN0LWZvcm0tZWRpdFwiIFtuZ0NsYXNzXT1cIntpbnZhbGlkOiBmb3JtU3RhdGU/LmludmFsaWQgPT09IHRydWV9XCIgW2VvU2hvcnRjdXRzXT1cInNob3J0Y3V0c1wiPlxuICA8ZW8tb2JqZWN0LWZvcm0gW2Zvcm1PcHRpb25zXT1cImZvcm1PcHRpb25zXCIgKm5nSWY9XCJmb3JtT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAoc3RhdHVzQ2hhbmdlZCk9XCJvbkZvcm1TdGF0dXNDaGFuZ2VkKCRldmVudClcIj48L2VvLW9iamVjdC1mb3JtPlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250cm9sc1wiICpuZ0lmPVwiY29udHJvbHMudmlzaWJsZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJlcnItbXNnXCIgKm5nSWY9XCJmb3JtU3RhdGU/LmludmFsaWRcIiB0cmFuc2xhdGU+ZW8ub2JqZWN0LmluZGV4ZGF0YS5mb3JtLmludmFsaWQ8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJidXR0b25zXCI+XG5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJzZWNvbmRhcnlcIiAoY2xpY2spPVwicmVzZXQoKVwiIFtkaXNhYmxlZF09XCJjb250cm9scy5zYXZpbmdcIiB0cmFuc2xhdGU+ZW8ub2JqZWN0LmluZGV4ZGF0YS5yZXNldDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cInByaW1hcnlcIiBbbmdDbGFzc109XCJ7c3Bpbm5lcjogY29udHJvbHMuc2F2aW5nfVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmb3JtU3RhdGU/LmludmFsaWQgfHwgY29udHJvbHMuc2F2aW5nXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNhdmUoKVwiIHRyYW5zbGF0ZT5lby5vYmplY3QuaW5kZXhkYXRhLnNhdmU8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGVvLWRpYWxvZyBbdGl0bGVdPVwiKCdlby5vYmplY3QuaW5kZXhkYXRhLnNhdmUuY29uZmxpY3QuZGlhbG9nLnRpdGxlJyB8IHRyYW5zbGF0ZSA6IHttb2RpZmllcjogY29uZmxpY3RFcnJvcj8uZG1zb2JqZWN0Lm1vZGlmaWVkLmJ5LmZpcnN0bmFtZSArICcgJyArIGNvbmZsaWN0RXJyb3I/LmRtc29iamVjdC5tb2RpZmllZC5ieS5sYXN0bmFtZX0pXCJcbiAgKGhpZGUpPVwiY29udHJvbHMuc2F2aW5nID0gZmFsc2U7XCIgWyh2aXNpYmxlKV09XCJzaG93Q29uZmxpY3REaWFsb2dcIiBbbWluV2lkdGhdPVwiNDAwXCIgW3N0eWxlQ2xhc3NdPVwiJ2NvbmZsaWN0X19kaWFsb2cnXCI+XG5cbiAgPGRpdiBjbGFzcz1cImFjdGlvbi1idXR0b25zIGNvbmZsaWN0LS1hY3Rpb24tYnV0dG9ucyBmbGV4LXJvd1wiPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnV0dG9uIGNhbmNlbFwiIChjbGljayk9XCJjYW5jZWxTYXZpbmcoKVwiXG4gICAgICB0cmFuc2xhdGU+ZW8uY3RhLmJ1dHRvbi5jYW5jZWw8L2J1dHRvbj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ1dHRvbiBjYW5jZWxcIiAoY2xpY2spPVwic2hvd0NvbmZsaWN0Q2hhbmdlcygpXCJcbiAgICAgIHRyYW5zbGF0ZT5lby5vYmplY3QuaW5kZXhkYXRhLnNhdmUuY2hhbmdlczwvYnV0dG9uPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzYXZlKHRydWUpOyBjbG9zZUNvbmZsaWN0RGlhbG9nKCk7XCIgY2xhc3M9XCJidXR0b24gcHJpbWFyeVwiXG4gICAgICB0cmFuc2xhdGU+ZW8ub2JqZWN0LmluZGV4ZGF0YS5zYXZlPC9idXR0b24+XG4gIDwvZGl2PlxuPC9lby1kaWFsb2c+XG4iXX0=
|
|
238
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0tZWRpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS1lZGl0L29iamVjdC1mb3JtLWVkaXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0tZWRpdC9vYmplY3QtZm9ybS1lZGl0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxRQUFRLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRCxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUMsT0FBTyxFQUFtQixNQUFNLGNBQWMsQ0FBQztBQUN2RCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUt6RSxPQUFPLEVBQTZELEtBQUssRUFBQyxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7OztBQVEvRixNQUFNLE9BQU8sdUJBQXVCO0lBZWxDLElBQ0ksU0FBUyxDQUFDLFNBQW9CO1FBQ2hDLElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztZQUU1Qiw4QkFBOEI7WUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQzdCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUU5QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUM7SUFFRCxJ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TSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7SUFDL0YsQ0FBQzs4R0FuUFUsdUJBQXVCO2tHQUF2Qix1QkFBdUIsd05BV3ZCLG1CQUFtQixnREM1QmhDLDBxREE0QkE7OzJGRFhhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxxQkFBcUI7K1BBZUMsVUFBVTtzQkFBekMsU0FBUzt1QkFBQyxtQkFBbUI7Z0JBRXJCLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR0YsU0FBUztzQkFEWixLQUFLO3VCQUFDLFdBQVc7Z0JBa0JSLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05hdmlnYXRpb25FeHRyYXMsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7ZmluYWxpemUsIGNhdGNoRXJyb3J9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgVmlld0NoaWxkLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgRWxlbWVudFJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0VvRXJyb3IsIFRyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge09iamVjdEZvcm1Db21wb25lbnR9IGZyb20gJy4uL29iamVjdC1mb3JtL29iamVjdC1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQge0dsb2JhbFNob3J0Y3V0Q29tcG9uZW50fSBmcm9tICcuLi8uLi9zaG9ydGN1dHMvZ2xvYmFsLXNob3J0Y3V0LWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtPYmplY3RGb3JtT3B0aW9uc30gZnJvbSAnLi4vb2JqZWN0LWZvcm0tb3B0aW9ucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHtGb3JtU3RhdHVzQ2hhbmdlZEV2ZW50fSBmcm9tICcuLi9mb3JtLXN0YXR1cy1jaGFuZ2VkLWV2ZW50LmludGVyZmFjZSc7XG5pbXBvcnQge1BlbmRpbmdDaGFuZ2VzU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcGVuZGluZy1jaGFuZ2VzL3BlbmRpbmctY2hhbmdlcy5zZXJ2aWNlJztcbmltcG9ydCB7RG1zT2JqZWN0LCBTeXN0ZW1TZXJ2aWNlLCBEbXNTZXJ2aWNlLCBOb3RpZmljYXRpb25zU2VydmljZSwgVXRpbHN9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tb2JqZWN0LWZvcm0tZWRpdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9vYmplY3QtZm9ybS1lZGl0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb2JqZWN0LWZvcm0tZWRpdC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE9iamVjdEZvcm1FZGl0Q29tcG9uZW50IHtcblxuICBzaG93Q29uZmxpY3REaWFsb2cgPSBmYWxzZTtcbiAgY29uZmxpY3RFcnJvcjogYW55O1xuXG4gIC8vIElEIHNldCBieSBwZW5kaW5nQ2hhbmdlcyBzZXJ2aWNlIHdoZW4gZWRpdGluZyBpbmRleGRhdGFcbiAgLy8gVXNlZCB0byBmaW5pc2ggdGhlIHBlbmRpbmcgdGFzayB3aGVuIGVkaXRpbmcgaXMgZG9uZVxuICBwcml2YXRlIHBlbmRpbmdUYXNrSWQ6IHN0cmluZztcblxuICAvLyBmZXRjaCBhIHJlZmVyZW5jZSB0byB0aGUgb3BiamVjdCBmb3JtIGNvbXBvbmVudCB0byBiZSBhYmxlIHRvXG4gIC8vIGdldCB0aGUgZm9ybSBkYXRhXG4gIEBWaWV3Q2hpbGQoT2JqZWN0Rm9ybUNvbXBvbmVudCkgb2JqZWN0Rm9ybTogT2JqZWN0Rm9ybUNvbXBvbmVudDtcblxuICBASW5wdXQoKSBmb3JtRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgQElucHV0KCdkbXNPYmplY3QnKVxuICBzZXQgZG1zT2JqZWN0KGRtc09iamVjdDogRG1zT2JqZWN0KSB7XG4gICAgaWYgKGRtc09iamVjdCkge1xuICAgICAgdGhpcy5fZG1zT2JqZWN0ID0gZG1zT2JqZWN0O1xuXG4gICAgICAvLyByZXNldCB0aGUgc3RhdGUgb2YgdGhlIGZvcm1cbiAgICAgIHRoaXMuZm9ybVN0YXRlID0gbnVsbDtcbiAgICAgIHRoaXMuY29udHJvbHMuc2F2aW5nID0gZmFsc2U7XG4gICAgICB0aGlzLmNvbnRyb2xzLnZpc2libGUgPSBmYWxzZTtcblxuICAgICAgdGhpcy5jcmVhdGVPYmplY3RGb3JtKGRtc09iamVjdCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGRtc09iamVjdCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZG1zT2JqZWN0O1xuICB9XG5cbiAgQE91dHB1dCgpIGluZGV4RGF0YVNhdmVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgZm9ybU9wdGlvbnM6IE9iamVjdEZvcm1PcHRpb25zO1xuICBmb3JtU3RhdGU6IEZvcm1TdGF0dXNDaGFuZ2VkRXZlbnQ7XG4gIGNvbnRyb2xzID0ge1xuICAgIHZpc2libGU6IGZhbHNlLFxuICAgIHNhdmluZzogZmFsc2VcbiAgfTtcblxuICBwcml2YXRlIF9kbXNPYmplY3Q6IERtc09iamVjdDtcbiAgcHJpdmF0ZSBtZXNzYWdlcyA9IHtcbiAgICBmb3JtU3VjY2VzczogbnVsbCxcbiAgICBmb3JtRXJyb3I6IG51bGxcbiAgfTtcblxuICAvLyBzaG9ydGN1dCBhY3Rpb25zXG4gIHNob3J0Y3V0czogR2xvYmFsU2hvcnRjdXRDb21wb25lbnQgPSB7XG4gICAgaWQ6ICdlby5hcHAuZm9ybS5lZGl0JyxcbiAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc2hvcnRjdXRzLmZvcm0udGl0bGUnKSxcbiAgICBsYWJlbEtleTogJ2VvLnNob3J0Y3V0cy5mb3JtLnRpdGxlJyxcbiAgICBhY3Rpb25zOiBbe1xuICAgICAgbmFtZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc2hvcnRjdXRzLmZvcm0uYWN0aW9uLnNhdmUnKSxcbiAgICAgIG5hbWVLZXk6ICdlby5zaG9ydGN1dHMuZm9ybS5hY3Rpb24uc2F2ZScsXG4gICAgICBzaG9ydGN1dDogJ1MnLFxuICAgICAgb25FeGVjdXRlQWN0aW9uOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuc2F2ZSgpO1xuICAgICAgfSxcbiAgICAgIGlzSGlkZGVuOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5mb3JtU3RhdGUgfHwgIXRoaXMuZm9ybVN0YXRlLmRpcnR5IHx8IHRoaXMuZm9ybVN0YXRlLmludmFsaWQgfHwgIVV0aWxzLmlzVmlzaWJsZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50KTtcbiAgICAgIH1cbiAgICB9LCB7XG4gICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zaG9ydGN1dHMuZm9ybS5hY3Rpb24ucmVzZXQnKSxcbiAgICAgIG5hbWVLZXk6ICdlby5zaG9ydGN1dHMuZm9ybS5hY3Rpb24ucmVzZXQnLFxuICAgICAgc2hvcnRjdXQ6ICdSJyxcbiAgICAgIG9uRXhlY3V0ZUFjdGlvbjogKCkgPT4ge1xuICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICB9LFxuICAgICAgaXNIaWRkZW46ICgpID0+IHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmZvcm1TdGF0ZSB8fCAhdGhpcy5mb3JtU3RhdGUuZGlydHkgfHwgIVV0aWxzLmlzVmlzaWJsZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50KTtcbiAgICAgIH1cbiAgICB9LCB7XG4gICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zaG9ydGN1dHMuZm9ybS5hY3Rpb24uZWRpdCcpLFxuICAgICAgbmFtZUtleTogJ2VvLnNob3J0Y3V0cy5mb3JtLmFjdGlvbi5lZGl0JyxcbiAgICAgIHNob3J0Y3V0OiAnRScsXG4gICAgICBvbkV4ZWN1dGVBY3Rpb246ICgpID0+IHtcbiAgICAgICAgdGhpcy5vYmplY3RGb3JtLmZvY3VzRm9ybSgpO1xuICAgICAgfSxcbiAgICAgIGlzSGlkZGVuOiAodGFyZ2V0KSA9PiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5mb3JtT3B0aW9ucyB8fCB0aGlzLmZvcm1TdGF0ZS5kaXJ0eSB8fCAhVXRpbHMuaXNWaXNpYmxlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQpIHx8IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKHRhcmdldCk7XG4gICAgICB9XG4gICAgfV1cbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN5c3RlbVNlcnZpY2U6IFN5c3RlbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkbXNTZXJ2aWNlOiBEbXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIG5vdGljYXRpb246IE5vdGlmaWNhdGlvbnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGVuZGluZ0NoYW5nZXM6IFBlbmRpbmdDaGFuZ2VzU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcblxuICAgIHRoaXMudHJhbnNsYXRlLmdldChbXG4gICAgICAnZW8ub2JqZWN0LmluZGV4ZGF0YS5zYXZlLnN1Y2Nlc3MnLFxuICAgICAgJ2VvLm9iamVjdC5pbmRleGRhdGEuc2F2ZS5lcnJvcidcbiAgICBdKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgdGhpcy5tZXNzYWdlcy5mb3JtU3VjY2VzcyA9IHJlc1snZW8ub2JqZWN0LmluZGV4ZGF0YS5zYXZlLnN1Y2Nlc3MnXTtcbiAgICAgIHRoaXMubWVzc2FnZXMuZm9ybUVycm9yID0gcmVzWydlby5vYmplY3QuaW5kZXhkYXRhLnNhdmUuZXJyb3InXTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRQZW5kaW5nKCkge1xuICAgIC8vIGJlY2F1c2UgdGhpcyBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgZXZlcnkgdGltZSB0aGUgZm9ybSBzdGF0dXMgY2hhbmdlcyxcbiAgICAvLyBwZW5kaW5nIHRhc2sgd2lsbCBvbmx5IGJlIHN0YXJ0ZWQgb25jZSB1bnRpbCBpdCB3YXMgZmluaXNoZWRcbiAgICBpZiAoIXRoaXMucGVuZGluZ0NoYW5nZXMuaGFzUGVuZGluZ1Rhc2sodGhpcy5wZW5kaW5nVGFza0lkIHx8ICcgJykpIHtcbiAgICAgIHRoaXMucGVuZGluZ1Rhc2tJZCA9IHRoaXMucGVuZGluZ0NoYW5nZXMuc3RhcnRUYXNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmaW5pc2hQZW5kaW5nKCkge1xuICAgIHRoaXMucGVuZGluZ0NoYW5nZXMuZmluaXNoVGFzayh0aGlzLnBlbmRpbmdUYXNrSWQpO1xuICB9XG5cbiAgb25Gb3JtU3RhdHVzQ2hhbmdlZChldnQpIHtcbiAgICB0aGlzLmZvcm1TdGF0ZSA9IGV2dDtcbiAgICB0aGlzLmNvbnRyb2xzLnZpc2libGUgPSB0aGlzLmZvcm1TdGF0ZS5pbnZhbGlkIHx8IHRoaXMuZm9ybVN0YXRlLmRpcnR5O1xuICAgIGlmICh0aGlzLmZvcm1TdGF0ZS5kaXJ0eSkge1xuICAgICAgdGhpcy5zdGFydFBlbmRpbmcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maW5pc2hQZW5kaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gc2F2ZSB0aGUgY3VycmVudCBkbXMgb2JqZWN0XG4gIHNhdmUoaWdub3JlQ29uZmxpY3RzPzogYm9vbGVhbikge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZm9ybVN0YXRlLmRpcnR5ICYmICF0aGlzLmZvcm1TdGF0ZS5pbnZhbGlkKSB7XG4gICAgICAgIHRoaXMuY29udHJvbHMuc2F2aW5nID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgcmF3Rm9ybURhdGEgPSB0aGlzLm9iamVjdEZvcm0uZ2V0Rm9ybURhdGEoKTtcbiAgICAgICAgY29uc3QgZm9ybURhdGEgPXJhd0Zvcm1EYXRhICYmIHRoaXMuZXh0cmFjdE9iamVjdFZhbHVlcyhyYXdGb3JtRGF0YSk7XG4gICAgICAgIGNvbnN0IHtpZCwgdHlwZU5hbWUsIHZlcnNpb259ID0gdGhpcy5fZG1zT2JqZWN0O1xuXG4gICAgICAgIHRoaXMuZG1zU2VydmljZS51cGRhdGVPYmplY3QoaWQsIGZvcm1EYXRhLCB0eXBlTmFtZSwgaWdub3JlQ29uZmxpY3RzID8gbnVsbCA6IHZlcnNpb24sIGZhbHNlKVxuICAgICAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+IHRoaXMuZmluaXNoUGVuZGluZygpKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKCh1cGRhdGVkT2JqZWN0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9kbXNPYmplY3QgPSB1cGRhdGVkT2JqZWN0O1xuICAgICAgICAgICAgdGhpcy5mb3JtT3B0aW9ucy5kYXRhID0gdXBkYXRlZE9iamVjdC5kYXRhO1xuICAgICAgICAgICAgdGhpcy5mb3JtT3B0aW9ucy5vYmplY3QgPSB1cGRhdGVkT2JqZWN0O1xuICAgICAgICAgICAgdGhpcy5jb250cm9scy5zYXZpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbHMudmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5vYmplY3RGb3JtLnNldEZvcm1QcmlzdGluZSgpO1xuICAgICAgICAgICAgdGhpcy5pbmRleERhdGFTYXZlZC5lbWl0KGZvcm1EYXRhKTtcbiAgICAgICAgICB9LCAoZXJyKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2xzLnNhdmluZyA9IGZhbHNlO1xuICAgICAgICAgICAgaWYoZXJyLnN0YXR1cyA9PT0gNDA5KXtcbiAgICAgICAgICAgICAgdGhpcy5jb25mbGljdEVycm9yID0gZXJyLmVycm9yO1xuICAgICAgICAgICAgICB0aGlzLm9wZW5Db25mbGljdERpYWxvZygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFb0Vycm9yKGVyciwgdGhpcy5fZG1zT2JqZWN0LnRpdGxlLCB0aGlzLm1lc3NhZ2VzLmZvcm1FcnJvciwgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIDUwMCk7XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFjdHMgdGhlIGB2YWx1ZWAgcHJvcGVydHkgZnJvbSBhbnkgbmVzdGVkIG9iamVjdHMgd2l0aGluIHRoZSBmb3JtRGF0YSBvYmplY3RcbiAgICogYW5kIGFzc2lnbnMgaXQgYmFjayB0byB0aGUgY29ycmVzcG9uZGluZyBrZXkgaW4gdGhlIGZvcm1EYXRhIG9iamVjdC5cbiAgICpcbiAgICogQHBhcmFtIHthbnl9IGZvcm1EYXRhIC0gVGhlIGZvcm0gZGF0YSBvYmplY3QgdG8gcHJvY2Vzcy5cbiAgICogQHJldHVybnMge2FueX0gVGhlIG1vZGlmaWVkIGZvcm0gZGF0YSBvYmplY3Qgd2l0aCBleHRyYWN0ZWQgdmFsdWVzLlxuICAgKi9cbiAgZXh0cmFjdE9iamVjdFZhbHVlcyhmb3JtRGF0YTogYW55KTogYW55IHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBmb3JtRGF0YSkge1xuICAgICAgaWYgKGZvcm1EYXRhLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBmb3JtRGF0YVtrZXldO1xuICAgICAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAndmFsdWUnIGluIHZhbHVlKSB7XG4gICAgICAgICAgZm9ybURhdGFba2V5XSA9IHZhbHVlLnZhbHVlO1xuICAgICAgICB9ZWxzZXtcbiAgICAgICAgICBmb3JtRGF0YVtrZXldID0gdmFsdWUgPyB2YWx1ZTogW107XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZvcm1EYXRhO1xuICB9XG5cbiAgb3BlbkNvbmZsaWN0RGlhbG9nKCl7XG4gICAgdGhpcy5zaG93Q29uZmxpY3REaWFsb2cgPSB0cnVlO1xuICB9XG5cbiAgY2xvc2VDb25mbGljdERpYWxvZygpe1xuICAgIHRoaXMuc2hvd0NvbmZsaWN0RGlhbG9nID0gZmFsc2U7XG4gIH1cblxuICBzaG93Q29uZmxpY3RDaGFuZ2VzKCl7XG4gICAgY29uc3QgbmF2aWdhdGlvbkV4dHJhczogTmF2aWdhdGlvbkV4dHJhcyA9IHtcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgIHZlcnNpb246IHRoaXMuX2Rtc09iamVjdC52ZXJzaW9uLFxuICAgICAgICB2ZXJzaW9uMjogdGhpcy5jb25mbGljdEVycm9yLmRtc29iamVjdC52ZXJzaW9uXG4gICAgICB9XG4gICAgfTtcbiAgICBjb25zdCB1cmwgPSB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFtgdmVyc2lvbnMvJHt0aGlzLl9kbXNPYmplY3QuaWR9YF0sIG5hdmlnYXRpb25FeHRyYXMpLnRvU3RyaW5nKCkucmVwbGFjZSgvXlxcLysvZywgJycpO1xuICAgIHdpbmRvdy5vcGVuKHVybCwgJ19ibGFuaycpO1xuICB9XG5cbiAgY2FuY2VsU2F2aW5nKCl7XG4gICAgdGhpcy5jbG9zZUNvbmZsaWN0RGlhbG9nKCk7XG4gIH1cblxuICAvLyByZXNldCB0aGUgZm9ybSB0byBpdHMgaW5pdGlhbCBzdGF0ZVxuICByZXNldCgpIHtcbiAgICB0aGlzLm9iamVjdEZvcm0ucmVzZXRGb3JtKCk7XG4gIH1cblxuICAvLyBjcmVhdGUgdGhlIGZvcm1PcHRpb25zIHJlcXVpcmVkIGJ5IG9iamVjdCBmb3JtIGNvbXBvbmVudFxuICBwcml2YXRlIGNyZWF0ZU9iamVjdEZvcm0oZG1zT2JqZWN0OiBEbXNPYmplY3QpIHtcblxuICAgIHRoaXMuc3lzdGVtU2VydmljZVxuICAgICAgLmdldE9iamVjdFR5cGVGb3JtKGRtc09iamVjdC50eXBlLm5hbWUsICdFRElUJylcbiAgICAgIC5zdWJzY3JpYmUoKG1vZGVsKSA9PiB7XG4gICAgICAgIHRoaXMuYWRkRXhjZXB0aW9uSURzRm9ySURSZWZlcmVuY2VGaWVsZHMobW9kZWwpO1xuICAgICAgICB0aGlzLmZvcm1PcHRpb25zID0ge1xuICAgICAgICAgIGxheW91dFNldHRpbmdzSUQ6IGRtc09iamVjdC50eXBlLm5hbWUsXG4gICAgICAgICAgZm9ybU1vZGVsOiBtb2RlbCxcbiAgICAgICAgICBkYXRhOiBkbXNPYmplY3QuZGF0YSxcbiAgICAgICAgICBvYmplY3Q6IGRtc09iamVjdCxcbiAgICAgICAgICBvYmplY3RJZDogZG1zT2JqZWN0LmlkLFxuICAgICAgICAgIGRpc2FibGVkOiB0aGlzLmZvcm1EaXNhYmxlZCB8fCAhdGhpcy5pc0VkaXRhYmxlKGRtc09iamVjdClcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGRtc09iamVjdC5jb250ZXh0Rm9sZGVyKSB7XG4gICAgICAgICAgdGhpcy5mb3JtT3B0aW9ucy5jb250ZXh0ID0ge1xuICAgICAgICAgICAgaWQ6IGRtc09iamVjdC5jb250ZXh0Rm9sZGVyLmlkLFxuICAgICAgICAgICAgdGl0bGU6IGRtc09iamVjdC5jb250ZXh0Rm9sZGVyLnRpdGxlLFxuICAgICAgICAgICAgdHlwZU5hbWU6IGRtc09iamVjdC5jb250ZXh0Rm9sZGVyLnR5cGVOYW1lXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkRXhjZXB0aW9uSURzRm9ySURSZWZlcmVuY2VGaWVsZHMobW9kZWw6IGFueSkge1xuICAgIGlmIChtb2RlbC50eXBlID09PSAnUkVGRVJFTkNFJykge1xuICAgICAgbW9kZWwuZXhjZXB0aW9uSURzID0gW3RoaXMuX2Rtc09iamVjdC5pZF07XG4gICAgfSBlbHNlIGlmKG1vZGVsLmVsZW1lbnRzKSB7XG4gICAgICBtb2RlbC5lbGVtZW50cy5mb3JFYWNoKGVsID0+IHRoaXMuYWRkRXhjZXB0aW9uSURzRm9ySURSZWZlcmVuY2VGaWVsZHMoZWwpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzRWRpdGFibGUoZG1zT2JqZWN0OiBEbXNPYmplY3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZG1zT2JqZWN0Lmhhc093blByb3BlcnR5KCdyaWdodHMnKSAmJiBkbXNPYmplY3QucmlnaHRzLmVkaXQgJiYgIWRtc09iamVjdC5pc0ZpbmFsaXplZDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm9iamVjdC1mb3JtLWVkaXRcIiBbbmdDbGFzc109XCJ7aW52YWxpZDogZm9ybVN0YXRlPy5pbnZhbGlkID09PSB0cnVlfVwiIFtlb1Nob3J0Y3V0c109XCJzaG9ydGN1dHNcIj5cbiAgPGVvLW9iamVjdC1mb3JtIFtmb3JtT3B0aW9uc109XCJmb3JtT3B0aW9uc1wiICpuZ0lmPVwiZm9ybU9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgKHN0YXR1c0NoYW5nZWQpPVwib25Gb3JtU3RhdHVzQ2hhbmdlZCgkZXZlbnQpXCI+PC9lby1vYmplY3QtZm9ybT5cbiAgPGRpdiBjbGFzcz1cImZvcm0tY29udHJvbHNcIiAqbmdJZj1cImNvbnRyb2xzLnZpc2libGVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZXJyLW1zZ1wiICpuZ0lmPVwiZm9ybVN0YXRlPy5pbnZhbGlkXCIgdHJhbnNsYXRlPmVvLm9iamVjdC5pbmRleGRhdGEuZm9ybS5pbnZhbGlkPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uc1wiPlxuXG4gICAgICA8YnV0dG9uIGNsYXNzPVwic2Vjb25kYXJ5XCIgKGNsaWNrKT1cInJlc2V0KClcIiBbZGlzYWJsZWRdPVwiY29udHJvbHMuc2F2aW5nXCIgdHJhbnNsYXRlPmVvLm9iamVjdC5pbmRleGRhdGEucmVzZXQ8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJwcmltYXJ5XCIgW25nQ2xhc3NdPVwie3NwaW5uZXI6IGNvbnRyb2xzLnNhdmluZ31cIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybVN0YXRlPy5pbnZhbGlkIHx8IGNvbnRyb2xzLnNhdmluZ1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJzYXZlKClcIiB0cmFuc2xhdGU+ZW8ub2JqZWN0LmluZGV4ZGF0YS5zYXZlPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxlby1kaWFsb2cgW3RpdGxlXT1cIignZW8ub2JqZWN0LmluZGV4ZGF0YS5zYXZlLmNvbmZsaWN0LmRpYWxvZy50aXRsZScgfCB0cmFuc2xhdGUgOiB7bW9kaWZpZXI6IGNvbmZsaWN0RXJyb3I/LmRtc29iamVjdC5tb2RpZmllZC5ieS5maXJzdG5hbWUgKyAnICcgKyBjb25mbGljdEVycm9yPy5kbXNvYmplY3QubW9kaWZpZWQuYnkubGFzdG5hbWV9KVwiXG4gIChoaWRlKT1cImNvbnRyb2xzLnNhdmluZyA9IGZhbHNlO1wiIFsodmlzaWJsZSldPVwic2hvd0NvbmZsaWN0RGlhbG9nXCIgW21pbldpZHRoXT1cIjQwMFwiIFtzdHlsZUNsYXNzXT1cIidjb25mbGljdF9fZGlhbG9nJ1wiPlxuXG4gIDxkaXYgY2xhc3M9XCJhY3Rpb24tYnV0dG9ucyBjb25mbGljdC0tYWN0aW9uLWJ1dHRvbnMgZmxleC1yb3dcIj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ1dHRvbiBjYW5jZWxcIiAoY2xpY2spPVwiY2FuY2VsU2F2aW5nKClcIlxuICAgICAgdHJhbnNsYXRlPmVvLmN0YS5idXR0b24uY2FuY2VsPC9idXR0b24+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidXR0b24gY2FuY2VsXCIgKGNsaWNrKT1cInNob3dDb25mbGljdENoYW5nZXMoKVwiXG4gICAgICB0cmFuc2xhdGU+ZW8ub2JqZWN0LmluZGV4ZGF0YS5zYXZlLmNoYW5nZXM8L2J1dHRvbj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic2F2ZSh0cnVlKTsgY2xvc2VDb25mbGljdERpYWxvZygpO1wiIGNsYXNzPVwiYnV0dG9uIHByaW1hcnlcIlxuICAgICAgdHJhbnNsYXRlPmVvLm9iamVjdC5pbmRleGRhdGEuc2F2ZTwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZW8tZGlhbG9nPlxuIl19
|