@valtimo/object-management 10.8.0 → 11.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/{esm2020 → esm2022}/lib/components/object-management-detail-container/object-management-detail-container.component.mjs +4 -4
  2. package/{esm2020 → esm2022}/lib/components/object-management-detail-container/tabs/object-management-detail/object-management-detail.component.mjs +4 -4
  3. package/esm2022/lib/components/object-management-detail-container/tabs/object-management-list-columns/object-management-list-columns.component.mjs +446 -0
  4. package/esm2022/lib/components/object-management-detail-container/tabs/object-management-list-search-fields/object-management-list-search-fields.component.mjs +341 -0
  5. package/{esm2020 → esm2022}/lib/components/object-management-list/object-management-list.component.mjs +4 -4
  6. package/esm2022/lib/components/object-management-modal/object-management-modal.component.mjs +146 -0
  7. package/esm2022/lib/components/object-management-upload-modal/object-management-upload-modal.component.mjs +184 -0
  8. package/{esm2020 → esm2022}/lib/object-management-routing.module.mjs +5 -5
  9. package/esm2022/lib/object-management.module.mjs +141 -0
  10. package/{esm2020 → esm2022}/lib/services/object-management-state.service.mjs +4 -4
  11. package/{esm2020 → esm2022}/lib/services/object-management.service.mjs +4 -4
  12. package/{esm2020 → esm2022}/lib/services/tab.service.mjs +4 -4
  13. package/{fesm2020 → fesm2022}/valtimo-object-management.mjs +110 -109
  14. package/fesm2022/valtimo-object-management.mjs.map +1 -0
  15. package/lib/components/object-management-detail-container/object-management-detail-container.component.d.ts +1 -1
  16. package/lib/components/object-management-detail-container/tabs/object-management-detail/object-management-detail.component.d.ts +1 -1
  17. package/lib/components/object-management-detail-container/tabs/object-management-list-columns/object-management-list-columns.component.d.ts +2 -3
  18. package/lib/components/object-management-detail-container/tabs/object-management-list-search-fields/object-management-list-search-fields.component.d.ts +1 -1
  19. package/lib/components/object-management-list/object-management-list.component.d.ts +1 -1
  20. package/lib/components/object-management-modal/object-management-modal.component.d.ts +3 -3
  21. package/lib/components/object-management-upload-modal/object-management-upload-modal.component.d.ts +3 -3
  22. package/lib/models/object-management.model.d.ts +1 -1
  23. package/lib/object-management.module.d.ts +3 -4
  24. package/package.json +8 -14
  25. package/esm2020/lib/components/object-management-detail-container/tabs/object-management-list-columns/object-management-list-columns.component.mjs +0 -447
  26. package/esm2020/lib/components/object-management-detail-container/tabs/object-management-list-search-fields/object-management-list-search-fields.component.mjs +0 -342
  27. package/esm2020/lib/components/object-management-modal/object-management-modal.component.mjs +0 -146
  28. package/esm2020/lib/components/object-management-upload-modal/object-management-upload-modal.component.mjs +0 -185
  29. package/esm2020/lib/object-management.module.mjs +0 -142
  30. package/fesm2015/valtimo-object-management.mjs +0 -1590
  31. package/fesm2015/valtimo-object-management.mjs.map +0 -1
  32. package/fesm2020/valtimo-object-management.mjs.map +0 -1
  33. /package/{esm2020 → esm2022}/lib/models/object-management.model.mjs +0 -0
  34. /package/{esm2020 → esm2022}/lib/services/tab.enum.mjs +0 -0
  35. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  36. /package/{esm2020 → esm2022}/valtimo-object-management.mjs +0 -0
@@ -1,146 +0,0 @@
1
- /*
2
- * Copyright 2015-2023 Ritense BV, the Netherlands.
3
- *
4
- * Licensed under EUPL, Version 1.2 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" basis,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- import { Component, Input, ViewChild } from '@angular/core';
17
- import { BehaviorSubject, combineLatest, map } from 'rxjs';
18
- import { take } from 'rxjs/operators';
19
- import * as i0 from "@angular/core";
20
- import * as i1 from "../../services/object-management-state.service";
21
- import * as i2 from "../../services/object-management.service";
22
- import * as i3 from "@valtimo/form";
23
- import * as i4 from "@valtimo/plugin";
24
- import * as i5 from "@valtimo/user-interface";
25
- import * as i6 from "@angular/common";
26
- import * as i7 from "@ngx-translate/core";
27
- export class ObjectManagementModalComponent {
28
- constructor(objectManagementState, objectManagementService, formService, pluginManagementService, modalService) {
29
- this.objectManagementState = objectManagementState;
30
- this.objectManagementService = objectManagementService;
31
- this.formService = formService;
32
- this.pluginManagementService = pluginManagementService;
33
- this.modalService = modalService;
34
- this.valid$ = new BehaviorSubject(false);
35
- this.showForm$ = this.modalService.modalVisible$;
36
- this.modalType$ = this.objectManagementState.modalType$;
37
- this.formData$ = new BehaviorSubject(null);
38
- this.selectedObjecttype$ = new BehaviorSubject(null);
39
- this.formDefinitions$ = this.formService
40
- .getAllFormDefinitions()
41
- .pipe(map(results => results?.map(configuration => ({
42
- id: configuration.name,
43
- text: configuration.name,
44
- }))));
45
- this.configurationInstances$ = this.pluginManagementService
46
- .getAllPluginConfigurations()
47
- .pipe(map(configurations => configurations));
48
- this.objectsApiConfigurations$ = this.configurationInstances$.pipe(map(configurations => {
49
- const filteredObjectsApiConfigurations = configurations.filter(configuration => configuration?.pluginDefinition?.key === 'objectenapi');
50
- return filteredObjectsApiConfigurations.map(configuration => ({
51
- id: configuration.id,
52
- text: configuration.title,
53
- }));
54
- }));
55
- this.objecttypesApiConfigurations$ = this.configurationInstances$.pipe(map(configurations => {
56
- const filteredObjecttypesApiConfigurations = configurations.filter(configuration => configuration?.pluginDefinition?.key === 'objecttypenapi');
57
- return filteredObjecttypesApiConfigurations.map(configuration => ({
58
- id: configuration.id,
59
- text: configuration.title,
60
- properties: configuration.properties,
61
- }));
62
- }));
63
- }
64
- ngAfterViewInit() {
65
- this.openShowSubscription();
66
- this.openHideSubscription();
67
- }
68
- ngOnDestroy() {
69
- this.showSubscription?.unsubscribe();
70
- this.hideSubscription?.unsubscribe();
71
- }
72
- hide() {
73
- this.formData$.next(null);
74
- this.valid$.next(false);
75
- this.modalService.closeModal();
76
- }
77
- cancel() {
78
- this.hide();
79
- }
80
- save() {
81
- combineLatest([this.valid$, this.formData$, this.modalType$])
82
- .pipe(take(1))
83
- .subscribe(([valid, formData, modalType]) => {
84
- if (valid) {
85
- if (modalType === 'add') {
86
- this.objectManagementService.createObject({ ...formData }).subscribe(() => {
87
- this.objectManagementState.refresh();
88
- this.objectManagementState.hideModal();
89
- });
90
- }
91
- else if (modalType === 'edit') {
92
- this.objectManagementService.editObject({ ...formData }).subscribe(() => {
93
- this.objectManagementState.refresh();
94
- this.objectManagementState.hideModal();
95
- });
96
- }
97
- }
98
- });
99
- }
100
- openShowSubscription() {
101
- this.showSubscription = this.objectManagementState.showModal$.subscribe(() => {
102
- this.show();
103
- });
104
- }
105
- openHideSubscription() {
106
- this.hideSubscription = this.objectManagementState.hideModal$.subscribe(() => {
107
- this.hide();
108
- });
109
- }
110
- show() {
111
- this.objectManagementState.modalType$.pipe(take(1)).subscribe(modalType => {
112
- if (modalType === 'edit' || modalType === 'add') {
113
- this.modalService.openModal(this.objectManagementModal);
114
- }
115
- });
116
- }
117
- formValueChange(data) {
118
- if (data.showInDataMenu === '') {
119
- data.showInDataMenu = false;
120
- }
121
- this.formData$.next(data);
122
- this.setValid(data);
123
- }
124
- setValid(data) {
125
- this.valid$.next(!!(data.title &&
126
- data.objectenApiPluginConfigurationId &&
127
- data.objecttypenApiPluginConfigurationId &&
128
- data.objecttypeId &&
129
- data.objecttypeVersion));
130
- }
131
- selectObjectType(objecttype) {
132
- this.selectedObjecttype$.next(objecttype);
133
- }
134
- }
135
- ObjectManagementModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectManagementModalComponent, deps: [{ token: i1.ObjectManagementStateService }, { token: i2.ObjectManagementService }, { token: i3.FormService }, { token: i4.PluginManagementService }, { token: i5.ModalService }], target: i0.ɵɵFactoryTarget.Component });
136
- ObjectManagementModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ObjectManagementModalComponent, selector: "valtimo-object-management-modal", inputs: { prefillObject$: "prefillObject$" }, viewQueries: [{ propertyName: "objectManagementModal", first: true, predicate: ["objectManagementModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-modal\n #objectManagementModal\n *ngIf=\"{\n disabled: disabled$ | async,\n valid: valid$ | async,\n modalType: modalType$ | async,\n prefillObject: prefillObject$ | async\n } as obs\"\n>\n <div role=\"header\">\n <div class=\"add-title\">\n <v-title [margin]=\"false\">{{\n (obs.modalType === 'add'\n ? 'objectManagement.createObjecttype'\n : 'objectManagement.editObjecttype'\n ) | translate\n }}</v-title>\n </div>\n </div>\n <div role=\"content\">\n <ng-container\n *ngTemplateOutlet=\"\n form;\n context: {prefillObject: obs.prefillObject, modalType: obs.modalType}\n \"\n ></ng-container>\n </div>\n <div role=\"footer\">\n <div class=\"buttons\">\n <v-button (clickEvent)=\"cancel()\" [disabled]=\"obs.disabled\" type=\"secondary\">\n {{ 'objectManagement.cancel' | translate }}\n </v-button>\n <v-button\n (clickEvent)=\"save()\"\n [disabled]=\"obs.disabled || !obs.valid\"\n mdiIcon=\"plus\"\n type=\"success\"\n >\n {{\n (obs.modalType === 'add' ? 'objectManagement.add' : 'objectManagement.edit') | translate\n }}\n </v-button>\n </div>\n </div>\n</v-modal>\n\n<ng-template #form let-prefillObject=\"prefillObject\" let-modalType=\"modalType\">\n <ng-container *ngIf=\"showForm$ | async\">\n <v-form (valueChange)=\"formValueChange($event)\">\n <v-input\n *ngIf=\"modalType === 'edit'\"\n hidden\n [disabled]=\"true\"\n [defaultValue]=\"prefillObject?.id\"\n name=\"id\"\n ></v-input>\n\n <v-input\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'objectManagement.labels.title' | translate\"\n [tooltip]=\"'objectManagement.tooltips.title' | translate\"\n [widthPx]=\"350\"\n [defaultValue]=\"prefillObject?.title\"\n name=\"title\"\n ></v-input>\n\n <ng-container\n *ngIf=\"{\n connectionInstances: configurationInstances$ | async,\n objectsApiConfigurations: objectsApiConfigurations$ | async,\n objecttypesApiConfigurations: objecttypesApiConfigurations$ | async\n } as objectObs\"\n >\n <v-select\n [items]=\"objectObs.objectsApiConfigurations\"\n [margin]=\"true\"\n [widthInPx]=\"350\"\n name=\"objectenApiPluginConfigurationId\"\n [title]=\"'objectManagement.labels.objects' | translate\"\n [defaultSelectionId]=\"prefillObject?.objectenApiPluginConfigurationId\"\n [required]=\"true\"\n ></v-select>\n\n <v-select\n [items]=\"objectObs.objecttypesApiConfigurations\"\n [margin]=\"true\"\n [widthInPx]=\"350\"\n name=\"objecttypenApiPluginConfigurationId\"\n [title]=\"'objectManagement.labels.objecttypes' | translate\"\n [defaultSelectionId]=\"prefillObject?.objecttypenApiPluginConfigurationId\"\n [required]=\"true\"\n (selectedChange)=\"selectObjectType($event)\"\n ></v-select>\n </ng-container>\n\n <v-input\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'objectManagement.labels.objecttypeId' | translate\"\n [tooltip]=\"'objectManagement.tooltips.objecttypeId' | translate\"\n [widthPx]=\"350\"\n [defaultValue]=\"prefillObject?.objecttypeId\"\n name=\"objecttypeId\"\n ></v-input>\n\n <v-input\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'objectManagement.labels.objecttypeVersion' | translate\"\n [tooltip]=\"'objectManagement.tooltips.objecttypeVersion' | translate\"\n [widthPx]=\"350\"\n [defaultValue]=\"prefillObject?.objecttypeVersion\"\n [min]=\"1\"\n type=\"number\"\n name=\"objecttypeVersion\"\n ></v-input>\n\n <ng-container *ngIf=\"{formDefinitions: formDefinitions$ | async} as formObs\">\n <v-select\n [items]=\"formObs.formDefinitions\"\n [margin]=\"true\"\n [widthInPx]=\"350\"\n name=\"formDefinitionView\"\n [title]=\"'objectManagement.labels.formDefinitionView' | translate\"\n [tooltip]=\"'objectManagement.tooltips.formDefinitionView' | translate\"\n [defaultSelectionId]=\"prefillObject?.formDefinitionView\"\n ></v-select>\n\n <v-select\n [items]=\"formObs.formDefinitions\"\n [margin]=\"true\"\n [widthInPx]=\"350\"\n name=\"formDefinitionEdit\"\n [title]=\"'objectManagement.labels.formDefinitionEdit' | translate\"\n [tooltip]=\"'objectManagement.tooltips.formDefinitionEdit' | translate\"\n [defaultSelectionId]=\"prefillObject?.formDefinitionEdit\"\n ></v-select>\n </ng-container>\n\n <v-input\n [margin]=\"true\"\n type=\"checkbox\"\n [title]=\"'objectManagement.labels.showInDataMenu' | translate\"\n [tooltip]=\"'objectManagement.tooltips.showInDataMenu' | translate\"\n name=\"showInDataMenu\"\n [defaultValue]=\"prefillObject?.showInDataMenu\"\n ></v-input>\n </v-form>\n </ng-container>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */.buttons{width:100%;display:flex;flex-direction:row;justify-content:space-between}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.ModalComponent, selector: "v-modal", inputs: ["appearingDelayMs", "maxWidthPx", "hideFooter"], outputs: ["closeEvent"] }, { kind: "component", type: i5.TitleComponent, selector: "v-title", inputs: ["type", "margin", "fullWidth", "center"] }, { kind: "component", type: i5.ButtonComponent, selector: "v-button", inputs: ["type", "mdiIcon", "disabled", "title", "titleTranslationKey"], outputs: ["clickEvent"] }, { kind: "component", type: i5.FormComponent, selector: "v-form", inputs: ["className"], outputs: ["valueChange"] }, { kind: "component", type: i5.InputComponent, selector: "v-input", inputs: ["name", "type", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "step", "min", "maxLength", "tooltip", "required", "hideNumberSpinBox", "smallLabel", "rows", "clear$"], outputs: ["valueChange"] }, { kind: "component", type: i5.SelectComponent, selector: "v-select", inputs: ["items", "defaultSelection", "defaultSelectionId", "defaultSelectionIds", "clearable", "disabled", "multiple", "margin", "widthInPx", "notFoundText", "clearAllText", "name", "title", "titleTranslationKey", "clearSelectionSubject$", "tooltip", "required", "loading", "loadingText", "placeholder", "smallMargin"], outputs: ["selectedChange", "clear"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] });
137
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectManagementModalComponent, decorators: [{
138
- type: Component,
139
- args: [{ selector: 'valtimo-object-management-modal', template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-modal\n #objectManagementModal\n *ngIf=\"{\n disabled: disabled$ | async,\n valid: valid$ | async,\n modalType: modalType$ | async,\n prefillObject: prefillObject$ | async\n } as obs\"\n>\n <div role=\"header\">\n <div class=\"add-title\">\n <v-title [margin]=\"false\">{{\n (obs.modalType === 'add'\n ? 'objectManagement.createObjecttype'\n : 'objectManagement.editObjecttype'\n ) | translate\n }}</v-title>\n </div>\n </div>\n <div role=\"content\">\n <ng-container\n *ngTemplateOutlet=\"\n form;\n context: {prefillObject: obs.prefillObject, modalType: obs.modalType}\n \"\n ></ng-container>\n </div>\n <div role=\"footer\">\n <div class=\"buttons\">\n <v-button (clickEvent)=\"cancel()\" [disabled]=\"obs.disabled\" type=\"secondary\">\n {{ 'objectManagement.cancel' | translate }}\n </v-button>\n <v-button\n (clickEvent)=\"save()\"\n [disabled]=\"obs.disabled || !obs.valid\"\n mdiIcon=\"plus\"\n type=\"success\"\n >\n {{\n (obs.modalType === 'add' ? 'objectManagement.add' : 'objectManagement.edit') | translate\n }}\n </v-button>\n </div>\n </div>\n</v-modal>\n\n<ng-template #form let-prefillObject=\"prefillObject\" let-modalType=\"modalType\">\n <ng-container *ngIf=\"showForm$ | async\">\n <v-form (valueChange)=\"formValueChange($event)\">\n <v-input\n *ngIf=\"modalType === 'edit'\"\n hidden\n [disabled]=\"true\"\n [defaultValue]=\"prefillObject?.id\"\n name=\"id\"\n ></v-input>\n\n <v-input\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'objectManagement.labels.title' | translate\"\n [tooltip]=\"'objectManagement.tooltips.title' | translate\"\n [widthPx]=\"350\"\n [defaultValue]=\"prefillObject?.title\"\n name=\"title\"\n ></v-input>\n\n <ng-container\n *ngIf=\"{\n connectionInstances: configurationInstances$ | async,\n objectsApiConfigurations: objectsApiConfigurations$ | async,\n objecttypesApiConfigurations: objecttypesApiConfigurations$ | async\n } as objectObs\"\n >\n <v-select\n [items]=\"objectObs.objectsApiConfigurations\"\n [margin]=\"true\"\n [widthInPx]=\"350\"\n name=\"objectenApiPluginConfigurationId\"\n [title]=\"'objectManagement.labels.objects' | translate\"\n [defaultSelectionId]=\"prefillObject?.objectenApiPluginConfigurationId\"\n [required]=\"true\"\n ></v-select>\n\n <v-select\n [items]=\"objectObs.objecttypesApiConfigurations\"\n [margin]=\"true\"\n [widthInPx]=\"350\"\n name=\"objecttypenApiPluginConfigurationId\"\n [title]=\"'objectManagement.labels.objecttypes' | translate\"\n [defaultSelectionId]=\"prefillObject?.objecttypenApiPluginConfigurationId\"\n [required]=\"true\"\n (selectedChange)=\"selectObjectType($event)\"\n ></v-select>\n </ng-container>\n\n <v-input\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'objectManagement.labels.objecttypeId' | translate\"\n [tooltip]=\"'objectManagement.tooltips.objecttypeId' | translate\"\n [widthPx]=\"350\"\n [defaultValue]=\"prefillObject?.objecttypeId\"\n name=\"objecttypeId\"\n ></v-input>\n\n <v-input\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'objectManagement.labels.objecttypeVersion' | translate\"\n [tooltip]=\"'objectManagement.tooltips.objecttypeVersion' | translate\"\n [widthPx]=\"350\"\n [defaultValue]=\"prefillObject?.objecttypeVersion\"\n [min]=\"1\"\n type=\"number\"\n name=\"objecttypeVersion\"\n ></v-input>\n\n <ng-container *ngIf=\"{formDefinitions: formDefinitions$ | async} as formObs\">\n <v-select\n [items]=\"formObs.formDefinitions\"\n [margin]=\"true\"\n [widthInPx]=\"350\"\n name=\"formDefinitionView\"\n [title]=\"'objectManagement.labels.formDefinitionView' | translate\"\n [tooltip]=\"'objectManagement.tooltips.formDefinitionView' | translate\"\n [defaultSelectionId]=\"prefillObject?.formDefinitionView\"\n ></v-select>\n\n <v-select\n [items]=\"formObs.formDefinitions\"\n [margin]=\"true\"\n [widthInPx]=\"350\"\n name=\"formDefinitionEdit\"\n [title]=\"'objectManagement.labels.formDefinitionEdit' | translate\"\n [tooltip]=\"'objectManagement.tooltips.formDefinitionEdit' | translate\"\n [defaultSelectionId]=\"prefillObject?.formDefinitionEdit\"\n ></v-select>\n </ng-container>\n\n <v-input\n [margin]=\"true\"\n type=\"checkbox\"\n [title]=\"'objectManagement.labels.showInDataMenu' | translate\"\n [tooltip]=\"'objectManagement.tooltips.showInDataMenu' | translate\"\n name=\"showInDataMenu\"\n [defaultValue]=\"prefillObject?.showInDataMenu\"\n ></v-input>\n </v-form>\n </ng-container>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */.buttons{width:100%;display:flex;flex-direction:row;justify-content:space-between}\n"] }]
140
- }], ctorParameters: function () { return [{ type: i1.ObjectManagementStateService }, { type: i2.ObjectManagementService }, { type: i3.FormService }, { type: i4.PluginManagementService }, { type: i5.ModalService }]; }, propDecorators: { objectManagementModal: [{
141
- type: ViewChild,
142
- args: ['objectManagementModal']
143
- }], prefillObject$: [{
144
- type: Input
145
- }] } });
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LW1hbmFnZW1lbnQtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9vYmplY3QtbWFuYWdlbWVudC9zcmMvbGliL2NvbXBvbmVudHMvb2JqZWN0LW1hbmFnZW1lbnQtbW9kYWwvb2JqZWN0LW1hbmFnZW1lbnQtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9vYmplY3QtbWFuYWdlbWVudC9zcmMvbGliL2NvbXBvbmVudHMvb2JqZWN0LW1hbmFnZW1lbnQtbW9kYWwvb2JqZWN0LW1hbmFnZW1lbnQtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQWdCLFNBQVMsRUFBRSxLQUFLLEVBQWEsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXBGLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBMkIsTUFBTSxNQUFNLENBQUM7QUFDbkYsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7QUFZcEMsTUFBTSxPQUFPLDhCQUE4QjtJQXdEekMsWUFDbUIscUJBQW1ELEVBQ25ELHVCQUFnRCxFQUNoRCxXQUF3QixFQUN4Qix1QkFBZ0QsRUFDaEQsWUFBMEI7UUFKMUIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUE4QjtRQUNuRCw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBQ2hELGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDaEQsaUJBQVksR0FBWixZQUFZLENBQWM7UUF4RHBDLFdBQU0sR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUM3QyxjQUFTLEdBQXdCLElBQUksQ0FB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Y0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNb2RhbENvbXBvbmVudCBhcyB2TW9kYWxDb21wb25lbnQsIE1vZGFsU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vdXNlci1pbnRlcmZhY2UnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7dGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtPYmplY3RNYW5hZ2VtZW50U3RhdGVTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vYmplY3QtbWFuYWdlbWVudC1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7UGx1Z2luQ29uZmlndXJhdGlvbiwgUGx1Z2luTWFuYWdlbWVudFNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL3BsdWdpbic7XG5pbXBvcnQge09iamVjdE1hbmFnZW1lbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vYmplY3QtbWFuYWdlbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7T2JqZWN0dHlwZX0gZnJvbSAnLi4vLi4vbW9kZWxzL29iamVjdC1tYW5hZ2VtZW50Lm1vZGVsJztcbmltcG9ydCB7Rm9ybVNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2Zvcm0nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLW9iamVjdC1tYW5hZ2VtZW50LW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL29iamVjdC1tYW5hZ2VtZW50LW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb2JqZWN0LW1hbmFnZW1lbnQtbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgT2JqZWN0TWFuYWdlbWVudE1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZCgnb2JqZWN0TWFuYWdlbWVudE1vZGFsJykgb2JqZWN0TWFuYWdlbWVudE1vZGFsOiB2TW9kYWxDb21wb25lbnQ7XG4gIEBJbnB1dCgpIHByZWZpbGxPYmplY3QkITogT2JzZXJ2YWJsZTxPYmplY3R0eXBlPjtcblxuICByZWFkb25seSBkaXNhYmxlZCQhOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICByZWFkb25seSB2YWxpZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgc2hvd0Zvcm0kOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5tb2RhbFNlcnZpY2UubW9kYWxWaXNpYmxlJDtcbiAgcmVhZG9ubHkgbW9kYWxUeXBlJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5vYmplY3RNYW5hZ2VtZW50U3RhdGUubW9kYWxUeXBlJDtcbiAgcmVhZG9ubHkgZm9ybURhdGEkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xuXG4gIHNob3dTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG4gIGhpZGVTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG5cbiAgcmVhZG9ubHkgc2VsZWN0ZWRPYmplY3R0eXBlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgcmVhZG9ubHkgZm9ybURlZmluaXRpb25zJDogT2JzZXJ2YWJsZTxBcnJheTx7aWQ6IHN0cmluZzsgdGV4dDogc3RyaW5nfT4+ID0gdGhpcy5mb3JtU2VydmljZVxuICAgIC5nZXRBbGxGb3JtRGVmaW5pdGlvbnMoKVxuICAgIC5waXBlKFxuICAgICAgbWFwKHJlc3VsdHMgPT5cbiAgICAgICAgcmVzdWx0cz8ubWFwKGNvbmZpZ3VyYXRpb24gPT4gKHtcbiAgICAgICAgICBpZDogY29uZmlndXJhdGlvbi5uYW1lLFxuICAgICAgICAgIHRleHQ6IGNvbmZpZ3VyYXRpb24ubmFtZSxcbiAgICAgICAgfSkpXG4gICAgICApXG4gICAgKTtcblxuICByZWFkb25seSBjb25maWd1cmF0aW9uSW5zdGFuY2VzJDogT2JzZXJ2YWJsZTxBcnJheTxQbHVnaW5Db25maWd1cmF0aW9uPj4gPVxuICAgIHRoaXMucGx1Z2luTWFuYWdlbWVudFNlcnZpY2VcbiAgICAgIC5nZXRBbGxQbHVnaW5Db25maWd1cmF0aW9ucygpXG4gICAgICAucGlwZShtYXAoY29uZmlndXJhdGlvbnMgPT4gY29uZmlndXJhdGlvbnMpKTtcblxuICByZWFkb25seSBvYmplY3RzQXBpQ29uZmlndXJhdGlvbnMkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLmNvbmZpZ3VyYXRpb25JbnN0YW5jZXMkLnBpcGUoXG4gICAgbWFwKGNvbmZpZ3VyYXRpb25zID0+IHtcbiAgICAgIGNvbnN0IGZpbHRlcmVkT2JqZWN0c0FwaUNvbmZpZ3VyYXRpb25zID0gY29uZmlndXJhdGlvbnMuZmlsdGVyKFxuICAgICAgICBjb25maWd1cmF0aW9uID0+IGNvbmZpZ3VyYXRpb24/LnBsdWdpbkRlZmluaXRpb24/LmtleSA9PT0gJ29iamVjdGVuYXBpJ1xuICAgICAgKTtcbiAgICAgIHJldHVybiBmaWx0ZXJlZE9iamVjdHNBcGlDb25maWd1cmF0aW9ucy5tYXAoY29uZmlndXJhdGlvbiA9PiAoe1xuICAgICAgICBpZDogY29uZmlndXJhdGlvbi5pZCxcbiAgICAgICAgdGV4dDogY29uZmlndXJhdGlvbi50aXRsZSxcbiAgICAgIH0pKTtcbiAgICB9KVxuICApO1xuXG4gIHJlYWRvbmx5IG9iamVjdHR5cGVzQXBpQ29uZmlndXJhdGlvbnMkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLmNvbmZpZ3VyYXRpb25JbnN0YW5jZXMkLnBpcGUoXG4gICAgbWFwKGNvbmZpZ3VyYXRpb25zID0+IHtcbiAgICAgIGNvbnN0IGZpbHRlcmVkT2JqZWN0dHlwZXNBcGlDb25maWd1cmF0aW9ucyA9IGNvbmZpZ3VyYXRpb25zLmZpbHRlcihcbiAgICAgICAgY29uZmlndXJhdGlvbiA9PiBjb25maWd1cmF0aW9uPy5wbHVnaW5EZWZpbml0aW9uPy5rZXkgPT09ICdvYmplY3R0eXBlbmFwaSdcbiAgICAgICk7XG4gICAgICByZXR1cm4gZmlsdGVyZWRPYmplY3R0eXBlc0FwaUNvbmZpZ3VyYXRpb25zLm1hcChjb25maWd1cmF0aW9uID0+ICh7XG4gICAgICAgIGlkOiBjb25maWd1cmF0aW9uLmlkLFxuICAgICAgICB0ZXh0OiBjb25maWd1cmF0aW9uLnRpdGxlLFxuICAgICAgICBwcm9wZXJ0aWVzOiBjb25maWd1cmF0aW9uLnByb3BlcnRpZXMsXG4gICAgICB9KSk7XG4gICAgfSlcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9iamVjdE1hbmFnZW1lbnRTdGF0ZTogT2JqZWN0TWFuYWdlbWVudFN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9iamVjdE1hbmFnZW1lbnRTZXJ2aWNlOiBPYmplY3RNYW5hZ2VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1TZXJ2aWNlOiBGb3JtU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBsdWdpbk1hbmFnZW1lbnRTZXJ2aWNlOiBQbHVnaW5NYW5hZ2VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlXG4gICkge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuU2hvd1N1YnNjcmlwdGlvbigpO1xuICAgIHRoaXMub3BlbkhpZGVTdWJzY3JpcHRpb24oKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmhpZGVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBoaWRlKCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybURhdGEkLm5leHQobnVsbCk7XG4gICAgdGhpcy52YWxpZCQubmV4dChmYWxzZSk7XG4gICAgdGhpcy5tb2RhbFNlcnZpY2UuY2xvc2VNb2RhbCgpO1xuICB9XG5cbiAgY2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMuaGlkZSgpO1xuICB9XG5cbiAgc2F2ZSgpOiB2b2lkIHtcbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLnZhbGlkJCwgdGhpcy5mb3JtRGF0YSQsIHRoaXMubW9kYWxUeXBlJF0pXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgoW3ZhbGlkLCBmb3JtRGF0YSwgbW9kYWxUeXBlXSkgPT4ge1xuICAgICAgICBpZiAodmFsaWQpIHtcbiAgICAgICAgICBpZiAobW9kYWxUeXBlID09PSAnYWRkJykge1xuICAgICAgICAgICAgdGhpcy5vYmplY3RNYW5hZ2VtZW50U2VydmljZS5jcmVhdGVPYmplY3Qoey4uLmZvcm1EYXRhfSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5vYmplY3RNYW5hZ2VtZW50U3RhdGUucmVmcmVzaCgpO1xuICAgICAgICAgICAgICB0aGlzLm9iamVjdE1hbmFnZW1lbnRTdGF0ZS5oaWRlTW9kYWwoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSBpZiAobW9kYWxUeXBlID09PSAnZWRpdCcpIHtcbiAgICAgICAgICAgIHRoaXMub2JqZWN0TWFuYWdlbWVudFNlcnZpY2UuZWRpdE9iamVjdCh7Li4uZm9ybURhdGF9KS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLm9iamVjdE1hbmFnZW1lbnRTdGF0ZS5yZWZyZXNoKCk7XG4gICAgICAgICAgICAgIHRoaXMub2JqZWN0TWFuYWdlbWVudFN0YXRlLmhpZGVNb2RhbCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlblNob3dTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5zaG93U3Vic2NyaXB0aW9uID0gdGhpcy5vYmplY3RNYW5hZ2VtZW50U3RhdGUuc2hvd01vZGFsJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5zaG93KCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5IaWRlU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuaGlkZVN1YnNjcmlwdGlvbiA9IHRoaXMub2JqZWN0TWFuYWdlbWVudFN0YXRlLmhpZGVNb2RhbCQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG93KCk6IHZvaWQge1xuICAgIHRoaXMub2JqZWN0TWFuYWdlbWVudFN0YXRlLm1vZGFsVHlwZSQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUobW9kYWxUeXBlID0+IHtcbiAgICAgIGlmIChtb2RhbFR5cGUgPT09ICdlZGl0JyB8fCBtb2RhbFR5cGUgPT09ICdhZGQnKSB7XG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW5Nb2RhbCh0aGlzLm9iamVjdE1hbmFnZW1lbnRNb2RhbCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBmb3JtVmFsdWVDaGFuZ2UoZGF0YTogYW55KTogdm9pZCB7XG4gICAgaWYgKGRhdGEuc2hvd0luRGF0YU1lbnUgPT09ICcnKSB7XG4gICAgICBkYXRhLnNob3dJbkRhdGFNZW51ID0gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMuZm9ybURhdGEkLm5leHQoZGF0YSk7XG4gICAgdGhpcy5zZXRWYWxpZChkYXRhKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VmFsaWQoZGF0YTogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWxpZCQubmV4dChcbiAgICAgICEhKFxuICAgICAgICBkYXRhLnRpdGxlICYmXG4gICAgICAgIGRhdGEub2JqZWN0ZW5BcGlQbHVnaW5Db25maWd1cmF0aW9uSWQgJiZcbiAgICAgICAgZGF0YS5vYmplY3R0eXBlbkFwaVBsdWdpbkNvbmZpZ3VyYXRpb25JZCAmJlxuICAgICAgICBkYXRhLm9iamVjdHR5cGVJZCAmJlxuICAgICAgICBkYXRhLm9iamVjdHR5cGVWZXJzaW9uXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHNlbGVjdE9iamVjdFR5cGUob2JqZWN0dHlwZSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRPYmplY3R0eXBlJC5uZXh0KG9iamVjdHR5cGUpO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyMyBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjx2LW1vZGFsXG4gICNvYmplY3RNYW5hZ2VtZW50TW9kYWxcbiAgKm5nSWY9XCJ7XG4gICAgZGlzYWJsZWQ6IGRpc2FibGVkJCB8IGFzeW5jLFxuICAgIHZhbGlkOiB2YWxpZCQgfCBhc3luYyxcbiAgICBtb2RhbFR5cGU6IG1vZGFsVHlwZSQgfCBhc3luYyxcbiAgICBwcmVmaWxsT2JqZWN0OiBwcmVmaWxsT2JqZWN0JCB8IGFzeW5jXG4gIH0gYXMgb2JzXCJcbj5cbiAgPGRpdiByb2xlPVwiaGVhZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImFkZC10aXRsZVwiPlxuICAgICAgPHYtdGl0bGUgW21hcmdpbl09XCJmYWxzZVwiPnt7XG4gICAgICAgIChvYnMubW9kYWxUeXBlID09PSAnYWRkJ1xuICAgICAgICAgID8gJ29iamVjdE1hbmFnZW1lbnQuY3JlYXRlT2JqZWN0dHlwZSdcbiAgICAgICAgICA6ICdvYmplY3RNYW5hZ2VtZW50LmVkaXRPYmplY3R0eXBlJ1xuICAgICAgICApIHwgdHJhbnNsYXRlXG4gICAgICB9fTwvdi10aXRsZT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgcm9sZT1cImNvbnRlbnRcIj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICBmb3JtO1xuICAgICAgICBjb250ZXh0OiB7cHJlZmlsbE9iamVjdDogb2JzLnByZWZpbGxPYmplY3QsIG1vZGFsVHlwZTogb2JzLm1vZGFsVHlwZX1cbiAgICAgIFwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgPGRpdiByb2xlPVwiZm9vdGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImJ1dHRvbnNcIj5cbiAgICAgIDx2LWJ1dHRvbiAoY2xpY2tFdmVudCk9XCJjYW5jZWwoKVwiIFtkaXNhYmxlZF09XCJvYnMuZGlzYWJsZWRcIiB0eXBlPVwic2Vjb25kYXJ5XCI+XG4gICAgICAgIHt7ICdvYmplY3RNYW5hZ2VtZW50LmNhbmNlbCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvdi1idXR0b24+XG4gICAgICA8di1idXR0b25cbiAgICAgICAgKGNsaWNrRXZlbnQpPVwic2F2ZSgpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlZCB8fCAhb2JzLnZhbGlkXCJcbiAgICAgICAgbWRpSWNvbj1cInBsdXNcIlxuICAgICAgICB0eXBlPVwic3VjY2Vzc1wiXG4gICAgICA+XG4gICAgICAgIHt7XG4gICAgICAgICAgKG9icy5tb2RhbFR5cGUgPT09ICdhZGQnID8gJ29iamVjdE1hbmFnZW1lbnQuYWRkJyA6ICdvYmplY3RNYW5hZ2VtZW50LmVkaXQnKSB8IHRyYW5zbGF0ZVxuICAgICAgICB9fVxuICAgICAgPC92LWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3YtbW9kYWw+XG5cbjxuZy10ZW1wbGF0ZSAjZm9ybSBsZXQtcHJlZmlsbE9iamVjdD1cInByZWZpbGxPYmplY3RcIiBsZXQtbW9kYWxUeXBlPVwibW9kYWxUeXBlXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93Rm9ybSQgfCBhc3luY1wiPlxuICAgIDx2LWZvcm0gKHZhbHVlQ2hhbmdlKT1cImZvcm1WYWx1ZUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICA8di1pbnB1dFxuICAgICAgICAqbmdJZj1cIm1vZGFsVHlwZSA9PT0gJ2VkaXQnXCJcbiAgICAgICAgaGlkZGVuXG4gICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgW2RlZmF1bHRWYWx1ZV09XCJwcmVmaWxsT2JqZWN0Py5pZFwiXG4gICAgICAgIG5hbWU9XCJpZFwiXG4gICAgICA+PC92LWlucHV0PlxuXG4gICAgICA8di1pbnB1dFxuICAgICAgICBbbWFyZ2luXT1cInRydWVcIlxuICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgIFt0aXRsZV09XCInb2JqZWN0TWFuYWdlbWVudC5sYWJlbHMudGl0bGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW3Rvb2x0aXBdPVwiJ29iamVjdE1hbmFnZW1lbnQudG9vbHRpcHMudGl0bGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW3dpZHRoUHhdPVwiMzUwXCJcbiAgICAgICAgW2RlZmF1bHRWYWx1ZV09XCJwcmVmaWxsT2JqZWN0Py50aXRsZVwiXG4gICAgICAgIG5hbWU9XCJ0aXRsZVwiXG4gICAgICA+PC92LWlucHV0PlxuXG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0lmPVwie1xuICAgICAgICAgIGNvbm5lY3Rpb25JbnN0YW5jZXM6IGNvbmZpZ3VyYXRpb25JbnN0YW5jZXMkIHwgYXN5bmMsXG4gICAgICAgICAgb2JqZWN0c0FwaUNvbmZpZ3VyYXRpb25zOiBvYmplY3RzQXBpQ29uZmlndXJhdGlvbnMkIHwgYXN5bmMsXG4gICAgICAgICAgb2JqZWN0dHlwZXNBcGlDb25maWd1cmF0aW9uczogb2JqZWN0dHlwZXNBcGlDb25maWd1cmF0aW9ucyQgfCBhc3luY1xuICAgICAgICB9IGFzIG9iamVjdE9ic1wiXG4gICAgICA+XG4gICAgICAgIDx2LXNlbGVjdFxuICAgICAgICAgIFtpdGVtc109XCJvYmplY3RPYnMub2JqZWN0c0FwaUNvbmZpZ3VyYXRpb25zXCJcbiAgICAgICAgICBbbWFyZ2luXT1cInRydWVcIlxuICAgICAgICAgIFt3aWR0aEluUHhdPVwiMzUwXCJcbiAgICAgICAgICBuYW1lPVwib2JqZWN0ZW5BcGlQbHVnaW5Db25maWd1cmF0aW9uSWRcIlxuICAgICAgICAgIFt0aXRsZV09XCInb2JqZWN0TWFuYWdlbWVudC5sYWJlbHMub2JqZWN0cycgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFtkZWZhdWx0U2VsZWN0aW9uSWRdPVwicHJlZmlsbE9iamVjdD8ub2JqZWN0ZW5BcGlQbHVnaW5Db25maWd1cmF0aW9uSWRcIlxuICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgPjwvdi1zZWxlY3Q+XG5cbiAgICAgICAgPHYtc2VsZWN0XG4gICAgICAgICAgW2l0ZW1zXT1cIm9iamVjdE9icy5vYmplY3R0eXBlc0FwaUNvbmZpZ3VyYXRpb25zXCJcbiAgICAgICAgICBbbWFyZ2luXT1cInRydWVcIlxuICAgICAgICAgIFt3aWR0aEluUHhdPVwiMzUwXCJcbiAgICAgICAgICBuYW1lPVwib2JqZWN0dHlwZW5BcGlQbHVnaW5Db25maWd1cmF0aW9uSWRcIlxuICAgICAgICAgIFt0aXRsZV09XCInb2JqZWN0TWFuYWdlbWVudC5sYWJlbHMub2JqZWN0dHlwZXMnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICBbZGVmYXVsdFNlbGVjdGlvbklkXT1cInByZWZpbGxPYmplY3Q/Lm9iamVjdHR5cGVuQXBpUGx1Z2luQ29uZmlndXJhdGlvbklkXCJcbiAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cInNlbGVjdE9iamVjdFR5cGUoJGV2ZW50KVwiXG4gICAgICAgID48L3Ytc2VsZWN0PlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDx2LWlucHV0XG4gICAgICAgIFttYXJnaW5dPVwidHJ1ZVwiXG4gICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgW3RpdGxlXT1cIidvYmplY3RNYW5hZ2VtZW50LmxhYmVscy5vYmplY3R0eXBlSWQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW3Rvb2x0aXBdPVwiJ29iamVjdE1hbmFnZW1lbnQudG9vbHRpcHMub2JqZWN0dHlwZUlkJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFt3aWR0aFB4XT1cIjM1MFwiXG4gICAgICAgIFtkZWZhdWx0VmFsdWVdPVwicHJlZmlsbE9iamVjdD8ub2JqZWN0dHlwZUlkXCJcbiAgICAgICAgbmFtZT1cIm9iamVjdHR5cGVJZFwiXG4gICAgICA+PC92LWlucHV0PlxuXG4gICAgICA8di1pbnB1dFxuICAgICAgICBbbWFyZ2luXT1cInRydWVcIlxuICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgIFt0aXRsZV09XCInb2JqZWN0TWFuYWdlbWVudC5sYWJlbHMub2JqZWN0dHlwZVZlcnNpb24nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW3Rvb2x0aXBdPVwiJ29iamVjdE1hbmFnZW1lbnQudG9vbHRpcHMub2JqZWN0dHlwZVZlcnNpb24nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW3dpZHRoUHhdPVwiMzUwXCJcbiAgICAgICAgW2RlZmF1bHRWYWx1ZV09XCJwcmVmaWxsT2JqZWN0Py5vYmplY3R0eXBlVmVyc2lvblwiXG4gICAgICAgIFttaW5dPVwiMVwiXG4gICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICBuYW1lPVwib2JqZWN0dHlwZVZlcnNpb25cIlxuICAgICAgPjwvdi1pbnB1dD5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIntmb3JtRGVmaW5pdGlvbnM6IGZvcm1EZWZpbml0aW9ucyQgfCBhc3luY30gYXMgZm9ybU9ic1wiPlxuICAgICAgICA8di1zZWxlY3RcbiAgICAgICAgICBbaXRlbXNdPVwiZm9ybU9icy5mb3JtRGVmaW5pdGlvbnNcIlxuICAgICAgICAgIFttYXJnaW5dPVwidHJ1ZVwiXG4gICAgICAgICAgW3dpZHRoSW5QeF09XCIzNTBcIlxuICAgICAgICAgIG5hbWU9XCJmb3JtRGVmaW5pdGlvblZpZXdcIlxuICAgICAgICAgIFt0aXRsZV09XCInb2JqZWN0TWFuYWdlbWVudC5sYWJlbHMuZm9ybURlZmluaXRpb25WaWV3JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBdPVwiJ29iamVjdE1hbmFnZW1lbnQudG9vbHRpcHMuZm9ybURlZmluaXRpb25WaWV3JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgW2RlZmF1bHRTZWxlY3Rpb25JZF09XCJwcmVmaWxsT2JqZWN0Py5mb3JtRGVmaW5pdGlvblZpZXdcIlxuICAgICAgICA+PC92LXNlbGVjdD5cblxuICAgICAgICA8di1zZWxlY3RcbiAgICAgICAgICBbaXRlbXNdPVwiZm9ybU9icy5mb3JtRGVmaW5pdGlvbnNcIlxuICAgICAgICAgIFttYXJnaW5dPVwidHJ1ZVwiXG4gICAgICAgICAgW3dpZHRoSW5QeF09XCIzNTBcIlxuICAgICAgICAgIG5hbWU9XCJmb3JtRGVmaW5pdGlvbkVkaXRcIlxuICAgICAgICAgIFt0aXRsZV09XCInb2JqZWN0TWFuYWdlbWVudC5sYWJlbHMuZm9ybURlZmluaXRpb25FZGl0JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBdPVwiJ29iamVjdE1hbmFnZW1lbnQudG9vbHRpcHMuZm9ybURlZmluaXRpb25FZGl0JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgW2RlZmF1bHRTZWxlY3Rpb25JZF09XCJwcmVmaWxsT2JqZWN0Py5mb3JtRGVmaW5pdGlvbkVkaXRcIlxuICAgICAgICA+PC92LXNlbGVjdD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8di1pbnB1dFxuICAgICAgICBbbWFyZ2luXT1cInRydWVcIlxuICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICBbdGl0bGVdPVwiJ29iamVjdE1hbmFnZW1lbnQubGFiZWxzLnNob3dJbkRhdGFNZW51JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFt0b29sdGlwXT1cIidvYmplY3RNYW5hZ2VtZW50LnRvb2x0aXBzLnNob3dJbkRhdGFNZW51JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIG5hbWU9XCJzaG93SW5EYXRhTWVudVwiXG4gICAgICAgIFtkZWZhdWx0VmFsdWVdPVwicHJlZmlsbE9iamVjdD8uc2hvd0luRGF0YU1lbnVcIlxuICAgICAgPjwvdi1pbnB1dD5cbiAgICA8L3YtZm9ybT5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -1,185 +0,0 @@
1
- /*
2
- * Copyright 2015-2023 Ritense BV, the Netherlands.
3
- *
4
- * Licensed under EUPL, Version 1.2 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" basis,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- import { Component, Input, ViewChild, } from '@angular/core';
17
- import { BehaviorSubject, Subject } from 'rxjs';
18
- import { take } from 'rxjs/operators';
19
- import * as i0 from "@angular/core";
20
- import * as i1 from "../../services/object-management-state.service";
21
- import * as i2 from "../../services/object-management.service";
22
- import * as i3 from "@valtimo/form-management";
23
- import * as i4 from "@valtimo/plugin";
24
- import * as i5 from "@valtimo/user-interface";
25
- import * as i6 from "@ngx-translate/core";
26
- import * as i7 from "@angular/common";
27
- import * as i8 from "@valtimo/components";
28
- export class ObjectManagementUploadModalComponent {
29
- constructor(objectManagementState, objectManagementService, formManagementService, pluginManagementService, modalService, translateService) {
30
- this.objectManagementState = objectManagementState;
31
- this.objectManagementService = objectManagementService;
32
- this.formManagementService = formManagementService;
33
- this.pluginManagementService = pluginManagementService;
34
- this.modalService = modalService;
35
- this.translateService = translateService;
36
- this.clear$ = new Subject();
37
- this.jsonString$ = new BehaviorSubject('');
38
- this.error$ = new BehaviorSubject('');
39
- this.disabled$ = new BehaviorSubject(false);
40
- this.showForm$ = this.modalService.modalVisible$;
41
- this.file$ = new BehaviorSubject(undefined);
42
- }
43
- ngAfterViewInit() {
44
- this.openShowSubscription();
45
- this.openFileSubscription();
46
- this.openHideSubscription();
47
- }
48
- ngOnDestroy() {
49
- this.showSubscription?.unsubscribe();
50
- this.hideSubscription?.unsubscribe();
51
- this.fileSubscription.unsubscribe();
52
- }
53
- hide() {
54
- this.modalService.closeModal();
55
- }
56
- cancel() {
57
- this.hide();
58
- }
59
- setFile(file) {
60
- this.clearError();
61
- this.file$.next(file);
62
- }
63
- uploadDefinition() {
64
- this.disable();
65
- this.jsonString$.pipe(take(1)).subscribe(objecttypeDefinition => {
66
- this.objectManagementService
67
- .createObject({ ...JSON.parse(objecttypeDefinition) })
68
- .subscribe(() => {
69
- this.objectManagementState.refresh();
70
- this.objectManagementState.hideModal();
71
- });
72
- this.closeErrorSubscription();
73
- this.clearError();
74
- this.enable();
75
- this.hide();
76
- });
77
- }
78
- openErrorSubscription(errorCode) {
79
- this.closeErrorSubscription();
80
- this.errorSubscription = this.translateService.stream(errorCode).subscribe(error => {
81
- this.error$.next(error);
82
- });
83
- }
84
- closeErrorSubscription() {
85
- if (this.errorSubscription) {
86
- this.errorSubscription.unsubscribe();
87
- }
88
- }
89
- openFileSubscription() {
90
- this.fileSubscription = this.file$.subscribe(file => {
91
- if (file) {
92
- const reader = new FileReader();
93
- reader.onloadend = () => {
94
- const result = reader.result.toString();
95
- if (this.isValidJsonObjecttype(result)) {
96
- this.jsonString$.next(result);
97
- }
98
- else {
99
- this.clearJsonString();
100
- }
101
- };
102
- reader.readAsText(file);
103
- }
104
- else {
105
- this.clearJsonString();
106
- }
107
- });
108
- }
109
- openShowSubscription() {
110
- this.showSubscription = this.objectManagementState.showModal$.subscribe(() => {
111
- this.show();
112
- this.clearJsonString();
113
- this.clearError();
114
- this.clearDropzone();
115
- });
116
- }
117
- openHideSubscription() {
118
- this.hideSubscription = this.objectManagementState.hideModal$.subscribe(() => {
119
- this.hide();
120
- });
121
- }
122
- show() {
123
- this.objectManagementState.modalType$.pipe(take(1)).subscribe(modalType => {
124
- if (modalType === 'upload') {
125
- this.modalService.openModal(this.objectManagementUploadModal);
126
- }
127
- });
128
- }
129
- clearError() {
130
- this.error$.next('');
131
- }
132
- clearJsonString() {
133
- this.jsonString$.next('');
134
- }
135
- clearDropzone() {
136
- this.clear$.next(null);
137
- }
138
- isValidJsonObjecttype(string) {
139
- const jsonObjecttype = JSON.parse(string);
140
- const isValid = this.validateObject(jsonObjecttype, [
141
- 'title',
142
- 'objecttypenApiPluginConfigurationId',
143
- 'objecttypeId',
144
- 'objecttypeVersion',
145
- 'objectenApiPluginConfigurationId',
146
- 'showInDataMenu',
147
- ]);
148
- const isObjecttypeTitleUnique = !this.objecttypes?.find(objecttype => objecttype.title === jsonObjecttype.title);
149
- if (isValid && isObjecttypeTitleUnique) {
150
- return true;
151
- }
152
- else if (isValid && !isObjecttypeTitleUnique) {
153
- this.clearDropzone();
154
- this.openErrorSubscription('dropzone.error.objecttypeAlreadyExists');
155
- return false;
156
- }
157
- else if (!isValid && isObjecttypeTitleUnique) {
158
- this.clearDropzone();
159
- this.openErrorSubscription('dropzone.error.invalidObjecttypeDef');
160
- return false;
161
- }
162
- }
163
- validateObject(obj, requiredKeys) {
164
- const objKeys = Object.keys(obj);
165
- return requiredKeys.every(key => objKeys.includes(key));
166
- }
167
- disable() {
168
- this.disabled$.next(true);
169
- }
170
- enable() {
171
- this.disabled$.next(false);
172
- }
173
- }
174
- ObjectManagementUploadModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectManagementUploadModalComponent, deps: [{ token: i1.ObjectManagementStateService }, { token: i2.ObjectManagementService }, { token: i3.FormManagementService }, { token: i4.PluginManagementService }, { token: i5.ModalService }, { token: i6.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
175
- ObjectManagementUploadModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ObjectManagementUploadModalComponent, selector: "valtimo-object-management-upload-modal", inputs: { objecttypes: "objecttypes" }, viewQueries: [{ propertyName: "objectManagementUploadModal", first: true, predicate: ["objectManagementUploadModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-modal\n #objectManagementUploadModal\n *ngIf=\"{\n disabled: disabled$ | async,\n jsonString: jsonString$ | async,\n error: error$ | async\n } as obs\"\n>\n <div role=\"header\">\n <div class=\"add-title\">\n <v-title [margin]=\"false\">{{ 'objectManagement.uploadObjecttype' | translate }}</v-title>\n </div>\n </div>\n <div role=\"content\">\n <ng-container *ngTemplateOutlet=\"uploadForm\"></ng-container>\n </div>\n <div role=\"footer\">\n <div class=\"buttons\">\n <v-button (clickEvent)=\"cancel()\" [disabled]=\"obs.disabled\" type=\"secondary\">\n {{ 'objectManagement.cancel' | translate }}\n </v-button>\n <v-button\n (clickEvent)=\"uploadDefinition()\"\n [disabled]=\"obs.jsonString === '' || obs.disabled\"\n mdiIcon=\"plus\"\n type=\"success\"\n >\n {{ 'Upload' | translate }}\n </v-button>\n </div>\n </div>\n</v-modal>\n\n<ng-template #uploadForm>\n <ng-container *ngIf=\"showForm$ | async\">\n <valtimo-dropzone\n [clear$]=\"clear$\"\n (fileSelected)=\"setFile($event)\"\n [disabled]=\"disabled$ | async\"\n [subtitle]=\"'dropzone.objecttypeDef' | translate\"\n [externalError$]=\"error$\"\n [maxFiles]=\"1\"\n ></valtimo-dropzone>\n </ng-container>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */.buttons{width:100%;display:flex;flex-direction:row;justify-content:space-between}\n"], dependencies: [{ kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i8.DropzoneComponent, selector: "valtimo-dropzone", inputs: ["title", "hideTitle", "subtitle", "externalError$", "maxFileSize", "showMaxFileSize", "acceptedFiles", "clear$", "disabled", "hideFilePreview", "uploading", "camera", "maxFiles"], outputs: ["fileSelected"] }, { kind: "component", type: i5.ModalComponent, selector: "v-modal", inputs: ["appearingDelayMs", "maxWidthPx", "hideFooter"], outputs: ["closeEvent"] }, { kind: "component", type: i5.TitleComponent, selector: "v-title", inputs: ["type", "margin", "fullWidth", "center"] }, { kind: "component", type: i5.ButtonComponent, selector: "v-button", inputs: ["type", "mdiIcon", "disabled", "title", "titleTranslationKey"], outputs: ["clickEvent"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] });
176
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectManagementUploadModalComponent, decorators: [{
177
- type: Component,
178
- args: [{ selector: 'valtimo-object-management-upload-modal', template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-modal\n #objectManagementUploadModal\n *ngIf=\"{\n disabled: disabled$ | async,\n jsonString: jsonString$ | async,\n error: error$ | async\n } as obs\"\n>\n <div role=\"header\">\n <div class=\"add-title\">\n <v-title [margin]=\"false\">{{ 'objectManagement.uploadObjecttype' | translate }}</v-title>\n </div>\n </div>\n <div role=\"content\">\n <ng-container *ngTemplateOutlet=\"uploadForm\"></ng-container>\n </div>\n <div role=\"footer\">\n <div class=\"buttons\">\n <v-button (clickEvent)=\"cancel()\" [disabled]=\"obs.disabled\" type=\"secondary\">\n {{ 'objectManagement.cancel' | translate }}\n </v-button>\n <v-button\n (clickEvent)=\"uploadDefinition()\"\n [disabled]=\"obs.jsonString === '' || obs.disabled\"\n mdiIcon=\"plus\"\n type=\"success\"\n >\n {{ 'Upload' | translate }}\n </v-button>\n </div>\n </div>\n</v-modal>\n\n<ng-template #uploadForm>\n <ng-container *ngIf=\"showForm$ | async\">\n <valtimo-dropzone\n [clear$]=\"clear$\"\n (fileSelected)=\"setFile($event)\"\n [disabled]=\"disabled$ | async\"\n [subtitle]=\"'dropzone.objecttypeDef' | translate\"\n [externalError$]=\"error$\"\n [maxFiles]=\"1\"\n ></valtimo-dropzone>\n </ng-container>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */.buttons{width:100%;display:flex;flex-direction:row;justify-content:space-between}\n"] }]
179
- }], ctorParameters: function () { return [{ type: i1.ObjectManagementStateService }, { type: i2.ObjectManagementService }, { type: i3.FormManagementService }, { type: i4.PluginManagementService }, { type: i5.ModalService }, { type: i6.TranslateService }]; }, propDecorators: { objectManagementUploadModal: [{
180
- type: ViewChild,
181
- args: ['objectManagementUploadModal']
182
- }], objecttypes: [{
183
- type: Input
184
- }] } });
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LW1hbmFnZW1lbnQtdXBsb2FkLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vb2JqZWN0LW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL29iamVjdC1tYW5hZ2VtZW50LXVwbG9hZC1tb2RhbC9vYmplY3QtbWFuYWdlbWVudC11cGxvYWQtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9vYmplY3QtbWFuYWdlbWVudC9zcmMvbGliL2NvbXBvbmVudHMvb2JqZWN0LW1hbmFnZW1lbnQtdXBsb2FkLW1vZGFsL29iamVjdC1tYW5hZ2VtZW50LXVwbG9hZC1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFFTCxTQUFTLEVBRVQsS0FBSyxFQUdMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsZUFBZSxFQUFjLE9BQU8sRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUN4RSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7QUFhcEMsTUFBTSxPQUFPLG9DQUFvQztJQWlCL0MsWUFDbUIscUJBQW1ELEVBQ25ELHVCQUFnRCxFQUNoRCxxQkFBNEMsRUFDNUMsdUJBQWdELEVBQ2hELFlBQTBCLEVBQzFCLGdCQUFrQztRQUxsQywwQkFBcUIsR0FBckIscUJBQXFCLENBQThCO1FBQ25ELDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDaEQsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1Qyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBQ2hELGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FB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SUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1lBQ2xFLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRUQsY0FBYyxDQUFDLEdBQVcsRUFBRSxZQUE4QjtRQUN4RCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU8sT0FBTztRQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFTyxNQUFNO1FBQ1osSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQzs7aUlBL0tVLG9DQUFvQztxSEFBcEMsb0NBQW9DLGtRQ3hDakQsbThEQTZEQTsyRkRyQmEsb0NBQW9DO2tCQUxoRCxTQUFTOytCQUNFLHdDQUF3Qzs2UkFLUiwyQkFBMkI7c0JBQXBFLFNBQVM7dUJBQUMsNkJBQTZCO2dCQUMvQixXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TW9kYWxDb21wb25lbnQgYXMgdk1vZGFsQ29tcG9uZW50LCBNb2RhbFNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL3VzZXItaW50ZXJmYWNlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHt0YWtlfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge09iamVjdE1hbmFnZW1lbnRTdGF0ZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL29iamVjdC1tYW5hZ2VtZW50LXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHtGb3JtTWFuYWdlbWVudFNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2Zvcm0tbWFuYWdlbWVudCc7XG5pbXBvcnQge1BsdWdpbk1hbmFnZW1lbnRTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9wbHVnaW4nO1xuaW1wb3J0IHtPYmplY3RNYW5hZ2VtZW50U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvb2JqZWN0LW1hbmFnZW1lbnQuc2VydmljZSc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtPYmplY3R0eXBlLCBPYmplY3R0eXBlS2V5c30gZnJvbSAnLi4vLi4vbW9kZWxzL29iamVjdC1tYW5hZ2VtZW50Lm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1vYmplY3QtbWFuYWdlbWVudC11cGxvYWQtbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vb2JqZWN0LW1hbmFnZW1lbnQtdXBsb2FkLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb2JqZWN0LW1hbmFnZW1lbnQtdXBsb2FkLW1vZGFsLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE9iamVjdE1hbmFnZW1lbnRVcGxvYWRNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ29iamVjdE1hbmFnZW1lbnRVcGxvYWRNb2RhbCcpIG9iamVjdE1hbmFnZW1lbnRVcGxvYWRNb2RhbDogdk1vZGFsQ29tcG9uZW50O1xuICBASW5wdXQoKSBvYmplY3R0eXBlcz86IE9iamVjdHR5cGVbXTtcblxuICByZWFkb25seSBjbGVhciQgPSBuZXcgU3ViamVjdCgpO1xuICByZWFkb25seSBqc29uU3RyaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gIHJlYWRvbmx5IGVycm9yJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gIHJlYWRvbmx5IGRpc2FibGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBzaG93Rm9ybSQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLm1vZGFsU2VydmljZS5tb2RhbFZpc2libGUkO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZmlsZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZpbGU+KHVuZGVmaW5lZCk7XG5cbiAgcHJpdmF0ZSBzaG93U3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGhpZGVTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgZmlsZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGVycm9yU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBvYmplY3RNYW5hZ2VtZW50U3RhdGU6IE9iamVjdE1hbmFnZW1lbnRTdGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBvYmplY3RNYW5hZ2VtZW50U2VydmljZTogT2JqZWN0TWFuYWdlbWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtTWFuYWdlbWVudFNlcnZpY2U6IEZvcm1NYW5hZ2VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBsdWdpbk1hbmFnZW1lbnRTZXJ2aWNlOiBQbHVnaW5NYW5hZ2VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxuICApIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMub3BlblNob3dTdWJzY3JpcHRpb24oKTtcbiAgICB0aGlzLm9wZW5GaWxlU3Vic2NyaXB0aW9uKCk7XG4gICAgdGhpcy5vcGVuSGlkZVN1YnNjcmlwdGlvbigpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zaG93U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuaGlkZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmZpbGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGhpZGUoKTogdm9pZCB7XG4gICAgdGhpcy5tb2RhbFNlcnZpY2UuY2xvc2VNb2RhbCgpO1xuICB9XG5cbiAgY2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMuaGlkZSgpO1xuICB9XG5cbiAgc2V0RmlsZShmaWxlOiBGaWxlKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhckVycm9yKCk7XG4gICAgdGhpcy5maWxlJC5uZXh0KGZpbGUpO1xuICB9XG5cbiAgdXBsb2FkRGVmaW5pdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGUoKTtcblxuICAgIHRoaXMuanNvblN0cmluZyQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUob2JqZWN0dHlwZURlZmluaXRpb24gPT4ge1xuICAgICAgdGhpcy5vYmplY3RNYW5hZ2VtZW50U2VydmljZVxuICAgICAgICAuY3JlYXRlT2JqZWN0KHsuLi5KU09OLnBhcnNlKG9iamVjdHR5cGVEZWZpbml0aW9uKX0pXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMub2JqZWN0TWFuYWdlbWVudFN0YXRlLnJlZnJlc2goKTtcbiAgICAgICAgICB0aGlzLm9iamVjdE1hbmFnZW1lbnRTdGF0ZS5oaWRlTW9kYWwoKTtcbiAgICAgICAgfSk7XG4gICAgICB0aGlzLmNsb3NlRXJyb3JTdWJzY3JpcHRpb24oKTtcbiAgICAgIHRoaXMuY2xlYXJFcnJvcigpO1xuICAgICAgdGhpcy5lbmFibGUoKTtcbiAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuRXJyb3JTdWJzY3JpcHRpb24oZXJyb3JDb2RlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlRXJyb3JTdWJzY3JpcHRpb24oKTtcbiAgICB0aGlzLmVycm9yU3Vic2NyaXB0aW9uID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbShlcnJvckNvZGUpLnN1YnNjcmliZShlcnJvciA9PiB7XG4gICAgICB0aGlzLmVycm9yJC5uZXh0KGVycm9yKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY2xvc2VFcnJvclN1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5lcnJvclN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5lcnJvclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb3BlbkZpbGVTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5maWxlU3Vic2NyaXB0aW9uID0gdGhpcy5maWxlJC5zdWJzY3JpYmUoZmlsZSA9PiB7XG4gICAgICBpZiAoZmlsZSkge1xuICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuXG4gICAgICAgIHJlYWRlci5vbmxvYWRlbmQgPSAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gcmVhZGVyLnJlc3VsdC50b1N0cmluZygpO1xuICAgICAgICAgIGlmICh0aGlzLmlzVmFsaWRKc29uT2JqZWN0dHlwZShyZXN1bHQpKSB7XG4gICAgICAgICAgICB0aGlzLmpzb25TdHJpbmckLm5leHQocmVzdWx0KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jbGVhckpzb25TdHJpbmcoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgcmVhZGVyLnJlYWRBc1RleHQoZmlsZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNsZWFySnNvblN0cmluZygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuU2hvd1N1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dTdWJzY3JpcHRpb24gPSB0aGlzLm9iamVjdE1hbmFnZW1lbnRTdGF0ZS5zaG93TW9kYWwkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnNob3coKTtcblxuICAgICAgdGhpcy5jbGVhckpzb25TdHJpbmcoKTtcbiAgICAgIHRoaXMuY2xlYXJFcnJvcigpO1xuICAgICAgdGhpcy5jbGVhckRyb3B6b25lKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5IaWRlU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuaGlkZVN1YnNjcmlwdGlvbiA9IHRoaXMub2JqZWN0TWFuYWdlbWVudFN0YXRlLmhpZGVNb2RhbCQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG93KCk6IHZvaWQge1xuICAgIHRoaXMub2JqZWN0TWFuYWdlbWVudFN0YXRlLm1vZGFsVHlwZSQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUobW9kYWxUeXBlID0+IHtcbiAgICAgIGlmIChtb2RhbFR5cGUgPT09ICd1cGxvYWQnKSB7XG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW5Nb2RhbCh0aGlzLm9iamVjdE1hbmFnZW1lbnRVcGxvYWRNb2RhbCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyRXJyb3IoKTogdm9pZCB7XG4gICAgdGhpcy5lcnJvciQubmV4dCgnJyk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFySnNvblN0cmluZygpOiB2b2lkIHtcbiAgICB0aGlzLmpzb25TdHJpbmckLm5leHQoJycpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckRyb3B6b25lKCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXIkLm5leHQobnVsbCk7XG4gIH1cblxuICBwcml2YXRlIGlzVmFsaWRKc29uT2JqZWN0dHlwZShzdHJpbmc6IHN0cmluZykge1xuICAgIGNvbnN0IGpzb25PYmplY3R0eXBlID0gSlNPTi5wYXJzZShzdHJpbmcpO1xuICAgIGNvbnN0IGlzVmFsaWQgPSB0aGlzLnZhbGlkYXRlT2JqZWN0KGpzb25PYmplY3R0eXBlLCBbXG4gICAgICAndGl0bGUnLFxuICAgICAgJ29iamVjdHR5cGVuQXBpUGx1Z2luQ29uZmlndXJhdGlvbklkJyxcbiAgICAgICdvYmplY3R0eXBlSWQnLFxuICAgICAgJ29iamVjdHR5cGVWZXJzaW9uJyxcbiAgICAgICdvYmplY3RlbkFwaVBsdWdpbkNvbmZpZ3VyYXRpb25JZCcsXG4gICAgICAnc2hvd0luRGF0YU1lbnUnLFxuICAgIF0pO1xuICAgIGNvbnN0IGlzT2JqZWN0dHlwZVRpdGxlVW5pcXVlID0gIXRoaXMub2JqZWN0dHlwZXM/LmZpbmQoXG4gICAgICBvYmplY3R0eXBlID0+IG9iamVjdHR5cGUudGl0bGUgPT09IGpzb25PYmplY3R0eXBlLnRpdGxlXG4gICAgKTtcbiAgICBpZiAoaXNWYWxpZCAmJiBpc09iamVjdHR5cGVUaXRsZVVuaXF1ZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIGlmIChpc1ZhbGlkICYmICFpc09iamVjdHR5cGVUaXRsZVVuaXF1ZSkge1xuICAgICAgdGhpcy5jbGVhckRyb3B6b25lKCk7XG4gICAgICB0aGlzLm9wZW5FcnJvclN1YnNjcmlwdGlvbignZHJvcHpvbmUuZXJyb3Iub2JqZWN0dHlwZUFscmVhZHlFeGlzdHMnKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKCFpc1ZhbGlkICYmIGlzT2JqZWN0dHlwZVRpdGxlVW5pcXVlKSB7XG4gICAgICB0aGlzLmNsZWFyRHJvcHpvbmUoKTtcbiAgICAgIHRoaXMub3BlbkVycm9yU3Vic2NyaXB0aW9uKCdkcm9wem9uZS5lcnJvci5pbnZhbGlkT2JqZWN0dHlwZURlZicpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlT2JqZWN0KG9iajogb2JqZWN0LCByZXF1aXJlZEtleXM6IE9iamVjdHR5cGVLZXlzW10pIHtcbiAgICBjb25zdCBvYmpLZXlzID0gT2JqZWN0LmtleXMob2JqKTtcbiAgICByZXR1cm4gcmVxdWlyZWRLZXlzLmV2ZXJ5KGtleSA9PiBvYmpLZXlzLmluY2x1ZGVzKGtleSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNhYmxlKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIGVuYWJsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkJC5uZXh0KGZhbHNlKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48di1tb2RhbFxuICAjb2JqZWN0TWFuYWdlbWVudFVwbG9hZE1vZGFsXG4gICpuZ0lmPVwie1xuICAgIGRpc2FibGVkOiBkaXNhYmxlZCQgfCBhc3luYyxcbiAgICBqc29uU3RyaW5nOiBqc29uU3RyaW5nJCB8IGFzeW5jLFxuICAgIGVycm9yOiBlcnJvciQgfCBhc3luY1xuICB9IGFzIG9ic1wiXG4+XG4gIDxkaXYgcm9sZT1cImhlYWRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJhZGQtdGl0bGVcIj5cbiAgICAgIDx2LXRpdGxlIFttYXJnaW5dPVwiZmFsc2VcIj57eyAnb2JqZWN0TWFuYWdlbWVudC51cGxvYWRPYmplY3R0eXBlJyB8IHRyYW5zbGF0ZSB9fTwvdi10aXRsZT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgcm9sZT1cImNvbnRlbnRcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidXBsb2FkRm9ybVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgPGRpdiByb2xlPVwiZm9vdGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImJ1dHRvbnNcIj5cbiAgICAgIDx2LWJ1dHRvbiAoY2xpY2tFdmVudCk9XCJjYW5jZWwoKVwiIFtkaXNhYmxlZF09XCJvYnMuZGlzYWJsZWRcIiB0eXBlPVwic2Vjb25kYXJ5XCI+XG4gICAgICAgIHt7ICdvYmplY3RNYW5hZ2VtZW50LmNhbmNlbCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvdi1idXR0b24+XG4gICAgICA8di1idXR0b25cbiAgICAgICAgKGNsaWNrRXZlbnQpPVwidXBsb2FkRGVmaW5pdGlvbigpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIm9icy5qc29uU3RyaW5nID09PSAnJyB8fCBvYnMuZGlzYWJsZWRcIlxuICAgICAgICBtZGlJY29uPVwicGx1c1wiXG4gICAgICAgIHR5cGU9XCJzdWNjZXNzXCJcbiAgICAgID5cbiAgICAgICAge3sgJ1VwbG9hZCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvdi1idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC92LW1vZGFsPlxuXG48bmctdGVtcGxhdGUgI3VwbG9hZEZvcm0+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93Rm9ybSQgfCBhc3luY1wiPlxuICAgIDx2YWx0aW1vLWRyb3B6b25lXG4gICAgICBbY2xlYXIkXT1cImNsZWFyJFwiXG4gICAgICAoZmlsZVNlbGVjdGVkKT1cInNldEZpbGUoJGV2ZW50KVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQkIHwgYXN5bmNcIlxuICAgICAgW3N1YnRpdGxlXT1cIidkcm9wem9uZS5vYmplY3R0eXBlRGVmJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbZXh0ZXJuYWxFcnJvciRdPVwiZXJyb3IkXCJcbiAgICAgIFttYXhGaWxlc109XCIxXCJcbiAgICA+PC92YWx0aW1vLWRyb3B6b25lPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -1,142 +0,0 @@
1
- /*
2
- * Copyright 2015-2023 Ritense BV, the Netherlands.
3
- *
4
- * Licensed under EUPL, Version 1.2 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" basis,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- import { NgModule } from '@angular/core';
17
- import { ObjectManagementRoutingModule } from './object-management-routing.module';
18
- import { CommonModule } from '@angular/common';
19
- import { TranslateModule } from '@ngx-translate/core';
20
- import { CarbonMultiInputModule, ConfirmationModalModule, DropzoneModule, ListModule, ModalModule, SpinnerModule, ValtimoCdsModalDirectiveModule, WidgetModule, } from '@valtimo/components';
21
- import { ButtonModule, FormModule, InputModule as InputModule, ModalModule as VModalModule, SelectModule, TitleModule, TooltipIconModule, } from '@valtimo/user-interface';
22
- import { ObjectManagementDetailContainerComponent } from './components/object-management-detail-container/object-management-detail-container.component';
23
- import { ObjectManagementDetailComponent } from './components/object-management-detail-container/tabs/object-management-detail/object-management-detail.component';
24
- import { ObjectManagementListComponent } from './components/object-management-list/object-management-list.component';
25
- import { ObjectManagementUploadModalComponent } from './components/object-management-upload-modal/object-management-upload-modal.component';
26
- import { ObjectManagementModalComponent } from './components/object-management-modal/object-management-modal.component';
27
- import { ObjectManagementListColumnsComponent } from './components/object-management-detail-container/tabs/object-management-list-columns/object-management-list-columns.component';
28
- import { ButtonModule as CarbonButtonModule, CheckboxModule, DropdownModule, IconModule, InputModule as CarbonInputModule, LinkModule, LoadingModule, ModalModule as CarbonModalModule, NotificationModule, } from 'carbon-components-angular';
29
- import { ReactiveFormsModule } from '@angular/forms';
30
- import { ObjectManagementListSearchFieldsComponent } from './components/object-management-detail-container/tabs/object-management-list-search-fields/object-management-list-search-fields.component';
31
- import * as i0 from "@angular/core";
32
- export class ObjectManagementModule {
33
- }
34
- ObjectManagementModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
35
- ObjectManagementModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ObjectManagementModule, declarations: [ObjectManagementListComponent,
36
- ObjectManagementDetailContainerComponent,
37
- ObjectManagementDetailComponent,
38
- ObjectManagementListColumnsComponent,
39
- ObjectManagementModalComponent,
40
- ObjectManagementUploadModalComponent,
41
- ObjectManagementListSearchFieldsComponent], imports: [CommonModule,
42
- DropzoneModule,
43
- WidgetModule,
44
- ListModule,
45
- TranslateModule,
46
- ObjectManagementRoutingModule,
47
- VModalModule,
48
- TitleModule,
49
- ButtonModule,
50
- FormModule,
51
- InputModule,
52
- SelectModule,
53
- CarbonInputModule,
54
- CarbonButtonModule,
55
- TooltipIconModule,
56
- CarbonMultiInputModule,
57
- CarbonModalModule,
58
- NotificationModule,
59
- LoadingModule,
60
- DropdownModule,
61
- CheckboxModule,
62
- LinkModule,
63
- IconModule,
64
- ReactiveFormsModule,
65
- ConfirmationModalModule,
66
- SpinnerModule,
67
- ModalModule,
68
- ValtimoCdsModalDirectiveModule] });
69
- ObjectManagementModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectManagementModule, imports: [CommonModule,
70
- DropzoneModule,
71
- WidgetModule,
72
- ListModule,
73
- TranslateModule,
74
- ObjectManagementRoutingModule,
75
- VModalModule,
76
- TitleModule,
77
- ButtonModule,
78
- FormModule,
79
- InputModule,
80
- SelectModule,
81
- CarbonInputModule,
82
- CarbonButtonModule,
83
- TooltipIconModule,
84
- CarbonMultiInputModule,
85
- CarbonModalModule,
86
- NotificationModule,
87
- LoadingModule,
88
- DropdownModule,
89
- CheckboxModule,
90
- LinkModule,
91
- IconModule,
92
- ReactiveFormsModule,
93
- ConfirmationModalModule,
94
- SpinnerModule,
95
- ModalModule,
96
- ValtimoCdsModalDirectiveModule] });
97
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectManagementModule, decorators: [{
98
- type: NgModule,
99
- args: [{
100
- declarations: [
101
- ObjectManagementListComponent,
102
- ObjectManagementDetailContainerComponent,
103
- ObjectManagementDetailComponent,
104
- ObjectManagementListColumnsComponent,
105
- ObjectManagementModalComponent,
106
- ObjectManagementUploadModalComponent,
107
- ObjectManagementListSearchFieldsComponent,
108
- ],
109
- imports: [
110
- CommonModule,
111
- DropzoneModule,
112
- WidgetModule,
113
- ListModule,
114
- TranslateModule,
115
- ObjectManagementRoutingModule,
116
- VModalModule,
117
- TitleModule,
118
- ButtonModule,
119
- FormModule,
120
- InputModule,
121
- SelectModule,
122
- CarbonInputModule,
123
- CarbonButtonModule,
124
- TooltipIconModule,
125
- CarbonMultiInputModule,
126
- CarbonModalModule,
127
- NotificationModule,
128
- LoadingModule,
129
- DropdownModule,
130
- CheckboxModule,
131
- LinkModule,
132
- IconModule,
133
- ReactiveFormsModule,
134
- ConfirmationModalModule,
135
- SpinnerModule,
136
- ModalModule,
137
- ValtimoCdsModalDirectiveModule,
138
- ],
139
- exports: [],
140
- }]
141
- }] });
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LW1hbmFnZW1lbnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9vYmplY3QtbWFuYWdlbWVudC9zcmMvbGliL29iamVjdC1tYW5hZ2VtZW50Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDakYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixjQUFjLEVBQ2QsVUFBVSxFQUNWLFdBQVcsRUFDWCxhQUFhLEVBQ2IsOEJBQThCLEVBQzlCLFlBQVksR0FDYixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFDTCxZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsSUFBSSxXQUFXLEVBQzFCLFdBQVcsSUFBSSxZQUFZLEVBQzNCLFlBQVksRUFDWixXQUFXLEVBQ1gsaUJBQWlCLEdBQ2xCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFDLHdDQUF3QyxFQUFDLE1BQU0sOEZBQThGLENBQUM7QUFDdEosT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0sa0hBQWtILENBQUM7QUFDakssT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sc0VBQXNFLENBQUM7QUFDbkgsT0FBTyxFQUFDLG9DQUFvQyxFQUFDLE1BQU0sc0ZBQXNGLENBQUM7QUFDMUksT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sd0VBQXdFLENBQUM7QUFDdEgsT0FBTyxFQUFDLG9DQUFvQyxFQUFDLE1BQU0sOEhBQThILENBQUM7QUFDbEwsT0FBTyxFQUNMLFlBQVksSUFBSSxrQkFBa0IsRUFDbEMsY0FBYyxFQUNkLGNBQWMsRUFDZCxVQUFVLEVBQ1YsV0FBVyxJQUFJLGlCQUFpQixFQUNoQyxVQUFVLEVBQ1YsYUFBYSxFQUNiLFdBQVcsSUFBSSxpQkFBaUIsRUFDaEMsa0JBQWtCLEdBQ25CLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFDLHlDQUF5QyxFQUFDLE1BQU0sMElBQTBJLENBQUM7O0FBNENuTSxNQUFNLE9BQU8sc0JBQXNCOzttSEFBdEIsc0JBQXNCO29IQUF0QixzQkFBc0IsaUJBeEMvQiw2QkFBNkI7UUFDN0Isd0NBQXdDO1FBQ3hDLCtCQUErQjtRQUMvQixvQ0FBb0M7UUFDcEMsOEJBQThCO1FBQzlCLG9DQUFvQztRQUNwQyx5Q0FBeUMsYUFHekMsWUFBWTtRQUNaLGNBQWM7UUFDZCxZQUFZO1FBQ1osVUFBVTtRQUNWLGVBQWU7UUFDZiw2QkFBNkI7UUFDN0IsWUFBWTtRQUNaLFdBQVc7UUFDWCxZQUFZO1FBQ1osVUFBVTtRQUNWLFdBQVc7UUFDWCxZQUFZO1FBQ1osaUJBQWlCO1FBQ2pCLGtCQUFrQjtRQUNsQixpQkFBaUI7UUFDakIsc0JBQXNCO1FBQ3RCLGlCQUFpQjtRQUNqQixrQkFBa0I7UUFDbEIsYUFBYTtRQUNiLGNBQWM7UUFDZCxjQUFjO1FBQ2QsVUFBVTtRQUNWLFVBQVU7UUFDVixtQkFBbUI7UUFDbkIsdUJBQXVCO1FBQ3ZCLGFBQWE7UUFDYixXQUFXO1FBQ1gsOEJBQThCO29IQUlyQixzQkFBc0IsWUEvQi9CLFlBQVk7UUFDWixjQUFjO1FBQ2QsWUFBWTtRQUNaLFVBQVU7UUFDVixlQUFlO1FBQ2YsNkJBQTZCO1FBQzdCLFlBQVk7UUFDWixXQUFXO1FBQ1gsWUFBWTtRQUNaLFVBQVU7UUFDVixXQUFXO1FBQ1gsWUFBWTtRQUNaLGlCQUFpQjtRQUNqQixrQkFBa0I7UUFDbEIsaUJBQWlCO1FBQ2pCLHNCQUFzQjtRQUN0QixpQkFBaUI7UUFDakIsa0JBQWtCO1FBQ2xCLGFBQWE7UUFDYixjQUFjO1FBQ2QsY0FBYztRQUNkLFVBQVU7UUFDVixVQUFVO1FBQ1YsbUJBQW1CO1FBQ25CLHVCQUF1QjtRQUN2QixhQUFhO1FBQ2IsV0FBVztRQUNYLDhCQUE4QjsyRkFJckIsc0JBQXNCO2tCQTFDbEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osNkJBQTZCO3dCQUM3Qix3Q0FBd0M7d0JBQ3hDLCtCQUErQjt3QkFDL0Isb0NBQW9DO3dCQUNwQyw4QkFBOEI7d0JBQzlCLG9DQUFvQzt3QkFDcEMseUNBQXlDO3FCQUMxQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixjQUFjO3dCQUNkLFlBQVk7d0JBQ1osVUFBVTt3QkFDVixlQUFlO3dCQUNmLDZCQUE2Qjt3QkFDN0IsWUFBWTt3QkFDWixXQUFXO3dCQUNYLFlBQVk7d0JBQ1osVUFBVTt3QkFDVixXQUFXO3dCQUNYLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixrQkFBa0I7d0JBQ2xCLGlCQUFpQjt3QkFDakIsc0JBQXNCO3dCQUN0QixpQkFBaUI7d0JBQ2pCLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsVUFBVTt3QkFDVixVQUFVO3dCQUNWLG1CQUFtQjt3QkFDbkIsdUJBQXVCO3dCQUN2QixhQUFhO3dCQUNiLFdBQVc7d0JBQ1gsOEJBQThCO3FCQUMvQjtvQkFDRCxPQUFPLEVBQUUsRUFBRTtpQkFDWiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYmplY3RNYW5hZ2VtZW50Um91dGluZ01vZHVsZX0gZnJvbSAnLi9vYmplY3QtbWFuYWdlbWVudC1yb3V0aW5nLm1vZHVsZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7XG4gIENhcmJvbk11bHRpSW5wdXRNb2R1bGUsXG4gIENvbmZpcm1hdGlvbk1vZGFsTW9kdWxlLFxuICBEcm9wem9uZU1vZHVsZSxcbiAgTGlzdE1vZHVsZSxcbiAgTW9kYWxNb2R1bGUsXG4gIFNwaW5uZXJNb2R1bGUsXG4gIFZhbHRpbW9DZHNNb2RhbERpcmVjdGl2ZU1vZHVsZSxcbiAgV2lkZ2V0TW9kdWxlLFxufSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIEJ1dHRvbk1vZHVsZSxcbiAgRm9ybU1vZHVsZSxcbiAgSW5wdXRNb2R1bGUgYXMgSW5wdXRNb2R1bGUsXG4gIE1vZGFsTW9kdWxlIGFzIFZNb2RhbE1vZHVsZSxcbiAgU2VsZWN0TW9kdWxlLFxuICBUaXRsZU1vZHVsZSxcbiAgVG9vbHRpcEljb25Nb2R1bGUsXG59IGZyb20gJ0B2YWx0aW1vL3VzZXItaW50ZXJmYWNlJztcbmltcG9ydCB7T2JqZWN0TWFuYWdlbWVudERldGFpbENvbnRhaW5lckNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL29iamVjdC1tYW5hZ2VtZW50LWRldGFpbC1jb250YWluZXIvb2JqZWN0LW1hbmFnZW1lbnQtZGV0YWlsLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHtPYmplY3RNYW5hZ2VtZW50RGV0YWlsQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvb2JqZWN0LW1hbmFnZW1lbnQtZGV0YWlsLWNvbnRhaW5lci90YWJzL29iamVjdC1tYW5hZ2VtZW50LWRldGFpbC9vYmplY3QtbWFuYWdlbWVudC1kZXRhaWwuY29tcG9uZW50JztcbmltcG9ydCB7T2JqZWN0TWFuYWdlbWVudExpc3RDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9vYmplY3QtbWFuYWdlbWVudC1saXN0L29iamVjdC1tYW5hZ2VtZW50LWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7T2JqZWN0TWFuYWdlbWVudFVwbG9hZE1vZGFsQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvb2JqZWN0LW1hbmFnZW1lbnQtdXBsb2FkLW1vZGFsL29iamVjdC1tYW5hZ2VtZW50LXVwbG9hZC1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHtPYmplY3RNYW5hZ2VtZW50TW9kYWxDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9vYmplY3QtbWFuYWdlbWVudC1tb2RhbC9vYmplY3QtbWFuYWdlbWVudC1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHtPYmplY3RNYW5hZ2VtZW50TGlzdENvbHVtbnNDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9vYmplY3QtbWFuYWdlbWVudC1kZXRhaWwtY29udGFpbmVyL3RhYnMvb2JqZWN0LW1hbmFnZW1lbnQtbGlzdC1jb2x1bW5zL29iamVjdC1tYW5hZ2VtZW50LWxpc3QtY29sdW1ucy5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQnV0dG9uTW9kdWxlIGFzIENhcmJvbkJ1dHRvbk1vZHVsZSxcbiAgQ2hlY2tib3hNb2R1bGUsXG4gIERyb3Bkb3duTW9kdWxlLFxuICBJY29uTW9kdWxlLFxuICBJbnB1dE1vZHVsZSBhcyBDYXJib25JbnB1dE1vZHVsZSxcbiAgTGlua01vZHVsZSxcbiAgTG9hZGluZ01vZHVsZSxcbiAgTW9kYWxNb2R1bGUgYXMgQ2FyYm9uTW9kYWxNb2R1bGUsXG4gIE5vdGlmaWNhdGlvbk1vZHVsZSxcbn0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge1JlYWN0aXZlRm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7T2JqZWN0TWFuYWdlbWVudExpc3RTZWFyY2hGaWVsZHNDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9vYmplY3QtbWFuYWdlbWVudC1kZXRhaWwtY29udGFpbmVyL3RhYnMvb2JqZWN0LW1hbmFnZW1lbnQtbGlzdC1zZWFyY2gtZmllbGRzL29iamVjdC1tYW5hZ2VtZW50LWxpc3Qtc2VhcmNoLWZpZWxkcy5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBPYmplY3RNYW5hZ2VtZW50TGlzdENvbXBvbmVudCxcbiAgICBPYmplY3RNYW5hZ2VtZW50RGV0YWlsQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIE9iamVjdE1hbmFnZW1lbnREZXRhaWxDb21wb25lbnQsXG4gICAgT2JqZWN0TWFuYWdlbWVudExpc3RDb2x1bW5zQ29tcG9uZW50LFxuICAgIE9iamVjdE1hbmFnZW1lbnRNb2RhbENvbXBvbmVudCxcbiAgICBPYmplY3RNYW5hZ2VtZW50VXBsb2FkTW9kYWxDb21wb25lbnQsXG4gICAgT2JqZWN0TWFuYWdlbWVudExpc3RTZWFyY2hGaWVsZHNDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRHJvcHpvbmVNb2R1bGUsXG4gICAgV2lkZ2V0TW9kdWxlLFxuICAgIExpc3RNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIE9iamVjdE1hbmFnZW1lbnRSb3V0aW5nTW9kdWxlLFxuICAgIFZNb2RhbE1vZHVsZSxcbiAgICBUaXRsZU1vZHVsZSxcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgRm9ybU1vZHVsZSxcbiAgICBJbnB1dE1vZHVsZSxcbiAgICBTZWxlY3RNb2R1bGUsXG4gICAgQ2FyYm9uSW5wdXRNb2R1bGUsXG4gICAgQ2FyYm9uQnV0dG9uTW9kdWxlLFxuICAgIFRvb2x0aXBJY29uTW9kdWxlLFxuICAgIENhcmJvbk11bHRpSW5wdXRNb2R1bGUsXG4gICAgQ2FyYm9uTW9kYWxNb2R1bGUsXG4gICAgTm90aWZpY2F0aW9uTW9kdWxlLFxuICAgIExvYWRpbmdNb2R1bGUsXG4gICAgRHJvcGRvd25Nb2R1bGUsXG4gICAgQ2hlY2tib3hNb2R1bGUsXG4gICAgTGlua01vZHVsZSxcbiAgICBJY29uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgQ29uZmlybWF0aW9uTW9kYWxNb2R1bGUsXG4gICAgU3Bpbm5lck1vZHVsZSxcbiAgICBNb2RhbE1vZHVsZSxcbiAgICBWYWx0aW1vQ2RzTW9kYWxEaXJlY3RpdmVNb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBPYmplY3RNYW5hZ2VtZW50TW9kdWxlIHt9XG4iXX0=