@valtimo/object 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 (26) hide show
  1. package/{esm2020 → esm2022}/lib/components/object-detail-container/object-detail-container.component.mjs +6 -6
  2. package/{esm2020 → esm2022}/lib/components/object-detail-container/tabs/object-detail/object-detail.component.mjs +6 -6
  3. package/esm2022/lib/components/object-list/object-list.component.mjs +261 -0
  4. package/{esm2020 → esm2022}/lib/models/object.model.mjs +2 -2
  5. package/{esm2020 → esm2022}/lib/object-routing.module.mjs +6 -6
  6. package/esm2022/lib/object.module.mjs +92 -0
  7. package/esm2022/lib/services/object-column.service.mjs +65 -0
  8. package/{esm2020 → esm2022}/lib/services/object-state.service.mjs +5 -5
  9. package/{esm2020 → esm2022}/lib/services/object.service.mjs +5 -5
  10. package/{esm2020 → esm2022}/lib/services/tab.enum.mjs +2 -2
  11. package/{esm2020 → esm2022}/lib/services/tab.service.mjs +5 -5
  12. package/{esm2020 → esm2022}/public-api.mjs +2 -2
  13. package/{fesm2020 → fesm2022}/valtimo-object.mjs +110 -94
  14. package/fesm2022/valtimo-object.mjs.map +1 -0
  15. package/lib/components/object-detail-container/object-detail-container.component.d.ts +1 -1
  16. package/lib/components/object-detail-container/tabs/object-detail/object-detail.component.d.ts +1 -1
  17. package/lib/components/object-list/object-list.component.d.ts +1 -1
  18. package/lib/object.module.d.ts +1 -2
  19. package/package.json +8 -14
  20. package/esm2020/lib/components/object-list/object-list.component.mjs +0 -262
  21. package/esm2020/lib/object.module.mjs +0 -93
  22. package/esm2020/lib/services/object-column.service.mjs +0 -50
  23. package/fesm2015/valtimo-object.mjs +0 -851
  24. package/fesm2015/valtimo-object.mjs.map +0 -1
  25. package/fesm2020/valtimo-object.mjs.map +0 -1
  26. /package/{esm2020 → esm2022}/valtimo-object.mjs +0 -0
@@ -1,262 +0,0 @@
1
- /*
2
- * Copyright 2015-2020 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 } from '@angular/core';
17
- import { BehaviorSubject, combineLatest, distinctUntilChanged, filter, map, of, startWith, throwError, } from 'rxjs';
18
- import { catchError, finalize, switchMap, take, tap } from 'rxjs/operators';
19
- import { ColumnType, FormType } from '../../models/object.model';
20
- import * as i0 from "@angular/core";
21
- import * as i1 from "../../services/object.service";
22
- import * as i2 from "../../services/object-column.service";
23
- import * as i3 from "@valtimo/object-management";
24
- import * as i4 from "@ngx-translate/core";
25
- import * as i5 from "@angular/router";
26
- import * as i6 from "ngx-toastr";
27
- import * as i7 from "@valtimo/components";
28
- import * as i8 from "@angular/common";
29
- import * as i9 from "carbon-components-angular";
30
- export class ObjectListComponent {
31
- constructor(objectService, objectColumnService, objectManagementService, translateService, router, route, toastr, translate, pageTitleService) {
32
- this.objectService = objectService;
33
- this.objectColumnService = objectColumnService;
34
- this.objectManagementService = objectManagementService;
35
- this.translateService = translateService;
36
- this.router = router;
37
- this.route = route;
38
- this.toastr = toastr;
39
- this.translate = translate;
40
- this.pageTitleService = pageTitleService;
41
- this.loading$ = new BehaviorSubject(true);
42
- this.submission$ = new BehaviorSubject({});
43
- this.formValid$ = new BehaviorSubject(false);
44
- this.showModal$ = new BehaviorSubject(false);
45
- this.disableInput$ = new BehaviorSubject(false);
46
- this.clearForm$ = new BehaviorSubject(false);
47
- this.columnType$ = new BehaviorSubject(ColumnType.DEFAULT);
48
- this.objectManagementId$ = this.route.params.pipe(map(params => params.objectManagementId), tap(objectManagementId => {
49
- if (!this._settingPageTitle && objectManagementId) {
50
- this._settingPageTitle = true;
51
- this.objectManagementService.getObjectById(objectManagementId).subscribe(objectType => {
52
- if (objectType.title) {
53
- this.pageTitleService.setCustomPageTitle(objectType.title);
54
- }
55
- });
56
- }
57
- }));
58
- this.refreshObjectList$ = new BehaviorSubject(null);
59
- this.currentPageAndSize$ = new BehaviorSubject({
60
- page: 0,
61
- size: 10,
62
- });
63
- this.pageSizes$ = new BehaviorSubject({
64
- collectionSize: 0,
65
- maxPaginationItemSize: 5,
66
- });
67
- this.pagination$ = combineLatest([
68
- this.currentPageAndSize$,
69
- this.pageSizes$,
70
- ]).pipe(map(([currentPage, sizes]) => ({ ...currentPage, ...sizes, page: currentPage.page + 1 })));
71
- this.searchFieldValues$ = new BehaviorSubject({});
72
- this.objectSearchFields$ = this.objectManagementId$.pipe(distinctUntilChanged(), switchMap(objectManagementId => this.objectManagementService.getSearchField(objectManagementId)), map(searchFields => searchFields.map(searchField => {
73
- // @ts-ignore
74
- searchField.dataType = searchField.dataType.toLowerCase();
75
- // @ts-ignore
76
- searchField.fieldType = searchField.fieldType.toLowerCase();
77
- return searchField;
78
- })));
79
- this.objectConfiguration$ = combineLatest([
80
- this.objectManagementId$,
81
- this.currentPageAndSize$,
82
- this.columnType$,
83
- this.searchFieldValues$,
84
- this.translateService.stream('key'),
85
- this.refreshObjectList$,
86
- ]).pipe(switchMap(([objectManagementId, currentPage, columnType, searchFieldValues]) => {
87
- const handleError = () => {
88
- this.disableInput();
89
- return of(null);
90
- };
91
- if (columnType === ColumnType.CUSTOM) {
92
- return this.objectService
93
- .postObjectsByObjectManagementId(objectManagementId, {
94
- page: currentPage.page,
95
- size: currentPage.size,
96
- }, Object.keys(searchFieldValues).length > 0
97
- ? { otherFilters: this.mapSearchValuesToFilters(searchFieldValues) }
98
- : {})
99
- .pipe(catchError(() => handleError()));
100
- }
101
- return this.objectService
102
- .getObjectsByObjectManagementId(objectManagementId, {
103
- page: currentPage.page,
104
- size: currentPage.size,
105
- })
106
- .pipe(catchError(() => handleError()));
107
- }), tap(instanceRes => {
108
- if (instanceRes != null) {
109
- this.pageSizes$.pipe(take(1)).subscribe(sizes => {
110
- // @ts-ignore
111
- this.pageSizes$.next({ ...sizes, collectionSize: instanceRes.totalElements });
112
- });
113
- }
114
- }), map(res => res?.content?.map(record => record?.items?.reduce((obj, item) => Object.assign(obj, { objectId: record.id }, { [item.key]: item.value }), {}))), tap(() => this.loading$.next(false)));
115
- this.formDefinition$ = combineLatest([
116
- this.objectManagementId$,
117
- this.clearForm$,
118
- ]).pipe(switchMap(([objectManagementId]) => this.objectService
119
- .getPrefilledObjectFromObjectUrl({ objectManagementId, formType: FormType.EDITFORM })
120
- .pipe(catchError(error => {
121
- this.handleRetrievingFormError(error);
122
- this.disableInput();
123
- return of(null).pipe(startWith(null));
124
- }))), map(res => {
125
- if (res != null) {
126
- this.enableInput();
127
- }
128
- return res?.formDefinition;
129
- }), startWith(null), finalize(() => this.loading$.next(false)));
130
- this.columns$ = this.objectManagementId$.pipe(switchMap(objectManagementId => this.objectColumnService.getObjectColumns(objectManagementId)), map(res => res));
131
- this.fields$ = combineLatest([
132
- this.columns$,
133
- this.translateService.stream('key'),
134
- ]).pipe(map(([columns]) => {
135
- if (columns?.length > 0) {
136
- this.columnType$.next(ColumnType.CUSTOM);
137
- return [
138
- ...columns.map(column => {
139
- const translationKey = `fieldLabels.${column.translationKey}`;
140
- const translation = this.translateService.instant(translationKey);
141
- const validTranslation = translation !== translationKey && translation;
142
- return {
143
- key: column.translationKey,
144
- label: column.title || validTranslation || column.translationKey,
145
- sortable: column.sortable,
146
- ...(column.viewType && { viewType: column.viewType }),
147
- ...(column.enum && { enum: column.enum }),
148
- ...(column.format && { format: column.format }),
149
- };
150
- }),
151
- ];
152
- }
153
- this.columnType$.next(ColumnType.DEFAULT);
154
- return this.setDefaultFields();
155
- }));
156
- this._settingPageTitle = false;
157
- }
158
- paginationClicked(newPageNumber) {
159
- this.currentPageAndSize$.pipe(take(1)).subscribe(currentPage => {
160
- this.currentPageAndSize$.next({ ...currentPage, page: newPageNumber - 1 });
161
- });
162
- }
163
- paginationSet(newPageSize) {
164
- if (newPageSize) {
165
- this.currentPageAndSize$.pipe(take(1)).subscribe(currentPage => {
166
- this.currentPageAndSize$.next({ ...currentPage, size: newPageSize });
167
- });
168
- }
169
- }
170
- openModal() {
171
- this.showModal$.next(true);
172
- }
173
- closeModal() {
174
- this.showModal$.next(false);
175
- this.clearForm$.next(true);
176
- }
177
- onFormioChange(formio) {
178
- if (formio.data != null) {
179
- this.submission$.next(formio.data);
180
- this.formValid$.next(formio.isValid);
181
- }
182
- }
183
- addObject() {
184
- this.disableInput();
185
- combineLatest([this.objectManagementId$, this.submission$, this.formValid$])
186
- .pipe(take(1), filter(([objectManagementId, submission, formValid]) => formValid), switchMap(([objectManagementId, submission]) => this.objectService
187
- .createObject({ objectManagementId }, { ...this.objectService.removeEmptyStringValuesFromSubmission(submission) })
188
- .pipe(take(1), catchError((error) => {
189
- this.handleCreateObjectError(error);
190
- return throwError(error);
191
- }))), finalize(() => {
192
- this.enableInput();
193
- }))
194
- .subscribe({
195
- next: () => {
196
- this.closeModal();
197
- this.refreshObjectList();
198
- this.clearForm$.next(true);
199
- this.toastr.success(this.translate.instant('object.messages.objectCreated'));
200
- },
201
- });
202
- }
203
- redirectToDetails(record) {
204
- const objectId = record.objectUrl ? record.objectUrl.split('/').pop() : record.objectId;
205
- this.objectManagementId$.pipe(take(1)).subscribe(configurationId => {
206
- this.router.navigate([`/objects/${configurationId}/${objectId}`]);
207
- });
208
- }
209
- search(searchFieldValues) {
210
- this.searchFieldValues$.next(searchFieldValues || {});
211
- }
212
- refreshObjectList() {
213
- this.refreshObjectList$.next(null);
214
- }
215
- disableInput() {
216
- this.disableInput$.next(true);
217
- }
218
- enableInput() {
219
- this.disableInput$.next(false);
220
- }
221
- setDefaultFields() {
222
- const keys = ['recordIndex', 'objectUrl'];
223
- return keys.map(key => ({
224
- label: `${this.translateService.instant(`object.labels.${key}`)}`,
225
- key,
226
- sortable: true,
227
- viewType: 'string',
228
- }));
229
- }
230
- handleRetrievingFormError(error) {
231
- this.toastr.error(this.translate.instant('object.messages.objectRetrievingFormError'));
232
- return throwError(error);
233
- }
234
- handleCreateObjectError(error) {
235
- this.toastr.error(this.translate.instant('object.messages.objectCreationError'));
236
- return throwError(error);
237
- }
238
- mapSearchValuesToFilters(values) {
239
- const filters = [];
240
- Object.keys(values).forEach(valueKey => {
241
- const searchValue = values[valueKey];
242
- if (searchValue.start) {
243
- filters.push({ key: valueKey, rangeFrom: searchValue.start, rangeTo: searchValue.end });
244
- }
245
- else if (Array.isArray(searchValue)) {
246
- filters.push({ key: valueKey, values: searchValue });
247
- }
248
- else {
249
- // @ts-ignore
250
- filters.push({ key: valueKey, values: [searchValue] });
251
- }
252
- });
253
- return filters;
254
- }
255
- }
256
- ObjectListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectListComponent, deps: [{ token: i1.ObjectService }, { token: i2.ObjectColumnService }, { token: i3.ObjectManagementService }, { token: i4.TranslateService }, { token: i5.Router }, { token: i5.ActivatedRoute }, { token: i6.ToastrService }, { token: i4.TranslateService }, { token: i7.PageTitleService }], target: i0.ɵɵFactoryTarget.Component });
257
- ObjectListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ObjectListComponent, selector: "valtimo-object-list", ngImport: i0, template: "<!--\n ~ Copyright 2015-2020 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<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n pagination: pagination$ | async,\n disableInput: disableInput$ | async,\n fields: fields$ | async,\n objectConfiguration: objectConfiguration$ | async\n } as obs\"\n>\n <div class=\"main-content pt-0\">\n <div class=\"container-fluid pr-0 pl-0\">\n <div class=\"text-right\">\n <div class=\"btn-group mt-m3px mb-3 mr-0\">\n <ng-container *ngTemplateOutlet=\"buttons; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <ng-container *ngTemplateOutlet=\"searchFields; context: {obs: obs}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n </ng-container>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"createNewModal\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <button\n (click)=\"openModal()\"\n cdsButton=\"primary\"\n size=\"md\"\n class=\"ml-3\"\n [disabled]=\"obs.disableInput || obs.loading\"\n >\n {{ 'object.createObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #searchFields let-obs=\"obs\">\n <div class=\"mb-3\">\n <valtimo-search-fields\n [loading]=\"obs.loading\"\n [searchFields]=\"objectSearchFields$ | async\"\n (doSearch)=\"search($event)\"\n [documentDefinitionName]=\"objectManagementId$ | async\"\n [setValuesSubject$]=\"null\"\n ></valtimo-search-fields>\n </div>\n</ng-template>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-widget>\n <valtimo-list\n [items]=\"obs.objectConfiguration\"\n [fields]=\"obs.fields\"\n [viewMode]=\"true\"\n [header]=\"true\"\n [pagination]=\"obs.pagination\"\n paginationIdentifier=\"objectConfigurationList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"redirectToDetails($event)\"\n >\n <div header>\n <h3 class=\"list-header-title\">\n {{ 'object.title' | translate }}\n <sup class=\"ml-1 badge badge-pill badge-primary\">{{\n obs.objectConfiguration?.length || 0\n }}</sup>\n </h3>\n </div>\n </valtimo-list>\n </valtimo-widget>\n</ng-template>\n\n<ng-template #createNewModal>\n <cds-modal\n valtimoCdsModal\n *ngIf=\"{\n show: showModal$ | async,\n formValid: formValid$ | async,\n formDefinition: formDefinition$ | async,\n disableInput: disableInput$ | async\n } as modalObs\"\n [open]=\"modalObs.show\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'object.createObject' | translate }}\n </h3>\n </cds-modal-header>\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"modalContent; context: {modalObs: modalObs}\"></ng-container>\n </section>\n <ng-container *ngTemplateOutlet=\"modalFooter; context: {modalObs: modalObs}\"></ng-container>\n </cds-modal>\n</ng-template>\n\n<ng-template #modalContent let-modalObs=\"modalObs\">\n <valtimo-form-io\n [form]=\"modalObs.formDefinition\"\n (change)=\"onFormioChange($event)\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #modalFooter let-modalObs=\"modalObs\">\n <cds-modal-footer>\n <ng-container>\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeModal()\"\n [disabled]=\"modalObs.disableInput\"\n >\n {{ 'object.close' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"addObject()\"\n [disabled]=\"modalObs.disableInput || modalObs.formValid === false\"\n >\n {{ 'object.save' | translate }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"loading-icon\"><cds-loading></cds-loading></div>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2020 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 */.loading-icon{display:flex;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i7.WidgetComponent, selector: "valtimo-widget", inputs: ["type", "name", "icon", "contrast", "divider", "title", "subtitle", "collapseAble", "collapse", "additionalClasses"] }, { kind: "component", type: i7.ListComponent, selector: "valtimo-list", inputs: ["items", "fields", "pagination", "viewMode", "isSearchable", "header", "actions", "paginationIdentifier", "initialSortState", "lastColumnTemplate"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged"] }, { kind: "directive", type: i9.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i9.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i9.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "component", type: i7.FormioComponent, selector: "valtimo-form-io", inputs: ["form", "options", "submission", "readOnly", "formRefresh$"], outputs: ["submit", "change"] }, { kind: "component", type: i9.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i9.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i9.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i9.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i9.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "component", type: i7.SearchFieldsComponent, selector: "valtimo-search-fields", inputs: ["loading", "searchFields", "documentDefinitionName", "setValuesSubject$", "defaultValues"], outputs: ["doSearch"] }, { kind: "directive", type: i7.ValtimoCdsModalDirective, selector: "[valtimoCdsModal]" }, { kind: "pipe", type: i8.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
258
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectListComponent, decorators: [{
259
- type: Component,
260
- args: [{ selector: 'valtimo-object-list', template: "<!--\n ~ Copyright 2015-2020 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<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n pagination: pagination$ | async,\n disableInput: disableInput$ | async,\n fields: fields$ | async,\n objectConfiguration: objectConfiguration$ | async\n } as obs\"\n>\n <div class=\"main-content pt-0\">\n <div class=\"container-fluid pr-0 pl-0\">\n <div class=\"text-right\">\n <div class=\"btn-group mt-m3px mb-3 mr-0\">\n <ng-container *ngTemplateOutlet=\"buttons; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <ng-container *ngTemplateOutlet=\"searchFields; context: {obs: obs}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n </ng-container>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"createNewModal\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <button\n (click)=\"openModal()\"\n cdsButton=\"primary\"\n size=\"md\"\n class=\"ml-3\"\n [disabled]=\"obs.disableInput || obs.loading\"\n >\n {{ 'object.createObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #searchFields let-obs=\"obs\">\n <div class=\"mb-3\">\n <valtimo-search-fields\n [loading]=\"obs.loading\"\n [searchFields]=\"objectSearchFields$ | async\"\n (doSearch)=\"search($event)\"\n [documentDefinitionName]=\"objectManagementId$ | async\"\n [setValuesSubject$]=\"null\"\n ></valtimo-search-fields>\n </div>\n</ng-template>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-widget>\n <valtimo-list\n [items]=\"obs.objectConfiguration\"\n [fields]=\"obs.fields\"\n [viewMode]=\"true\"\n [header]=\"true\"\n [pagination]=\"obs.pagination\"\n paginationIdentifier=\"objectConfigurationList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"redirectToDetails($event)\"\n >\n <div header>\n <h3 class=\"list-header-title\">\n {{ 'object.title' | translate }}\n <sup class=\"ml-1 badge badge-pill badge-primary\">{{\n obs.objectConfiguration?.length || 0\n }}</sup>\n </h3>\n </div>\n </valtimo-list>\n </valtimo-widget>\n</ng-template>\n\n<ng-template #createNewModal>\n <cds-modal\n valtimoCdsModal\n *ngIf=\"{\n show: showModal$ | async,\n formValid: formValid$ | async,\n formDefinition: formDefinition$ | async,\n disableInput: disableInput$ | async\n } as modalObs\"\n [open]=\"modalObs.show\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'object.createObject' | translate }}\n </h3>\n </cds-modal-header>\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"modalContent; context: {modalObs: modalObs}\"></ng-container>\n </section>\n <ng-container *ngTemplateOutlet=\"modalFooter; context: {modalObs: modalObs}\"></ng-container>\n </cds-modal>\n</ng-template>\n\n<ng-template #modalContent let-modalObs=\"modalObs\">\n <valtimo-form-io\n [form]=\"modalObs.formDefinition\"\n (change)=\"onFormioChange($event)\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #modalFooter let-modalObs=\"modalObs\">\n <cds-modal-footer>\n <ng-container>\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeModal()\"\n [disabled]=\"modalObs.disableInput\"\n >\n {{ 'object.close' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"addObject()\"\n [disabled]=\"modalObs.disableInput || modalObs.formValid === false\"\n >\n {{ 'object.save' | translate }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"loading-icon\"><cds-loading></cds-loading></div>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2020 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 */.loading-icon{display:flex;justify-content:center}\n"] }]
261
- }], ctorParameters: function () { return [{ type: i1.ObjectService }, { type: i2.ObjectColumnService }, { type: i3.ObjectManagementService }, { type: i4.TranslateService }, { type: i5.Router }, { type: i5.ActivatedRoute }, { type: i6.ToastrService }, { type: i4.TranslateService }, { type: i7.PageTitleService }]; } });
262
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9vYmplY3Qvc3JjL2xpYi9jb21wb25lbnRzL29iamVjdC1saXN0L29iamVjdC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vb2JqZWN0L3NyYy9saWIvY29tcG9uZW50cy9vYmplY3QtbGlzdC9vYmplY3QtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixHQUFHLEVBRUgsRUFBRSxFQUNGLFNBQVMsRUFDVCxVQUFVLEdBQ1gsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBSzFFLE9BQU8sRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7Ozs7O0FBVy9ELE1BQU0sT0FBTyxtQkFBbUI7SUFtTTlCLFlBQ21CLGFBQTRCLEVBQzVCLG1CQUF3QyxFQUN4Qyx1QkFBZ0QsRUFDaEQsZ0JBQWtDLEVBQ2xDLE1BQWMsRUFDZCxLQUFxQixFQUNyQixNQUFxQixFQUNyQixTQUEyQixFQUMzQixnQkFBa0M7UUFSbEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4Qyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBQ2hELHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsV0FB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LEVBQUMsQ0FBQyxDQUFDO2FBQ3ZGO2lCQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDckMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBQyxDQUFDLENBQUM7YUFDcEQ7aUJBQU07Z0JBQ0wsYUFBYTtnQkFDYixPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBQyxDQUFDLENBQUM7YUFDdEQ7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7O2dIQTlUVSxtQkFBbUI7b0dBQW5CLG1CQUFtQiwyREM1Q2hDLGd2SkFrSkE7MkZEdEdhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIHN0YXJ0V2l0aCxcbiAgdGhyb3dFcnJvcixcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2NhdGNoRXJyb3IsIGZpbmFsaXplLCBzd2l0Y2hNYXAsIHRha2UsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7T2JqZWN0U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvb2JqZWN0LnNlcnZpY2UnO1xuaW1wb3J0IHtMaXN0RmllbGQsIFBhZ2VUaXRsZVNlcnZpY2UsIFBhZ2luYXRpb259IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtDb2x1bW5UeXBlLCBGb3JtVHlwZX0gZnJvbSAnLi4vLi4vbW9kZWxzL29iamVjdC5tb2RlbCc7XG5pbXBvcnQge1RvYXN0clNlcnZpY2V9IGZyb20gJ25neC10b2FzdHInO1xuaW1wb3J0IHtPYmplY3RDb2x1bW5TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vYmplY3QtY29sdW1uLnNlcnZpY2UnO1xuaW1wb3J0IHtPYmplY3RNYW5hZ2VtZW50U2VydmljZSwgU2VhcmNoQ29sdW1ufSBmcm9tICdAdmFsdGltby9vYmplY3QtbWFuYWdlbWVudCc7XG5pbXBvcnQge1NlYXJjaEZpZWxkLCBTZWFyY2hGaWVsZFZhbHVlcywgU2VhcmNoRmlsdGVyLCBTZWFyY2hGaWx0ZXJSYW5nZX0gZnJvbSAnQHZhbHRpbW8vY29uZmlnJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1vYmplY3QtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9vYmplY3QtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL29iamVjdC1saXN0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE9iamVjdExpc3RDb21wb25lbnQge1xuICByZWFkb25seSBsb2FkaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIHJlYWRvbmx5IHN1Ym1pc3Npb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KHt9KTtcbiAgcmVhZG9ubHkgZm9ybVZhbGlkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBzaG93TW9kYWwkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGRpc2FibGVJbnB1dCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgY2xlYXJGb3JtJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBjb2x1bW5UeXBlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29sdW1uVHlwZT4oQ29sdW1uVHlwZS5ERUZBVUxUKTtcblxuICByZWFkb25seSBvYmplY3RNYW5hZ2VtZW50SWQkOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLnJvdXRlLnBhcmFtcy5waXBlKFxuICAgIG1hcChwYXJhbXMgPT4gcGFyYW1zLm9iamVjdE1hbmFnZW1lbnRJZCksXG4gICAgdGFwKG9iamVjdE1hbmFnZW1lbnRJZCA9PiB7XG4gICAgICBpZiAoIXRoaXMuX3NldHRpbmdQYWdlVGl0bGUgJiYgb2JqZWN0TWFuYWdlbWVudElkKSB7XG4gICAgICAgIHRoaXMuX3NldHRpbmdQYWdlVGl0bGUgPSB0cnVlO1xuICAgICAgICB0aGlzLm9iamVjdE1hbmFnZW1lbnRTZXJ2aWNlLmdldE9iamVjdEJ5SWQob2JqZWN0TWFuYWdlbWVudElkKS5zdWJzY3JpYmUob2JqZWN0VHlwZSA9PiB7XG4gICAgICAgICAgaWYgKG9iamVjdFR5cGUudGl0bGUpIHtcbiAgICAgICAgICAgIHRoaXMucGFnZVRpdGxlU2VydmljZS5zZXRDdXN0b21QYWdlVGl0bGUob2JqZWN0VHlwZS50aXRsZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KVxuICApO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVmcmVzaE9iamVjdExpc3QkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudWxsPihudWxsKTtcblxuICByZWFkb25seSBjdXJyZW50UGFnZUFuZFNpemUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYXJ0aWFsPFBhZ2luYXRpb24+Pih7XG4gICAgcGFnZTogMCxcbiAgICBzaXplOiAxMCxcbiAgfSk7XG5cbiAgcmVhZG9ubHkgcGFnZVNpemVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UGFydGlhbDxQYWdpbmF0aW9uPj4oe1xuICAgIGNvbGxlY3Rpb25TaXplOiAwLFxuICAgIG1heFBhZ2luYXRpb25JdGVtU2l6ZTogNSxcbiAgfSk7XG5cbiAgcmVhZG9ubHkgcGFnaW5hdGlvbiQ6IE9ic2VydmFibGU8UGFnaW5hdGlvbj4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmN1cnJlbnRQYWdlQW5kU2l6ZSQsXG4gICAgdGhpcy5wYWdlU2l6ZXMkLFxuICBdKS5waXBlKFxuICAgIG1hcChcbiAgICAgIChbY3VycmVudFBhZ2UsIHNpemVzXSkgPT5cbiAgICAgICAgKHsuLi5jdXJyZW50UGFnZSwgLi4uc2l6ZXMsIHBhZ2U6IGN1cnJlbnRQYWdlLnBhZ2UgKyAxfSBhcyBQYWdpbmF0aW9uKVxuICAgIClcbiAgKTtcblxuICBwYWdpbmF0aW9uQ2xpY2tlZChuZXdQYWdlTnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50UGFnZUFuZFNpemUkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGN1cnJlbnRQYWdlID0+IHtcbiAgICAgIHRoaXMuY3VycmVudFBhZ2VBbmRTaXplJC5uZXh0KHsuLi5jdXJyZW50UGFnZSwgcGFnZTogbmV3UGFnZU51bWJlciAtIDF9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHBhZ2luYXRpb25TZXQobmV3UGFnZVNpemUpOiB2b2lkIHtcbiAgICBpZiAobmV3UGFnZVNpemUpIHtcbiAgICAgIHRoaXMuY3VycmVudFBhZ2VBbmRTaXplJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShjdXJyZW50UGFnZSA9PiB7XG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2VBbmRTaXplJC5uZXh0KHsuLi5jdXJyZW50UGFnZSwgc2l6ZTogbmV3UGFnZVNpemV9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2VhcmNoRmllbGRWYWx1ZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTZWFyY2hGaWVsZFZhbHVlcz4oe30pO1xuICByZWFkb25seSBvYmplY3RTZWFyY2hGaWVsZHMkOiBPYnNlcnZhYmxlPEFycmF5PFNlYXJjaEZpZWxkPiB8IG51bGw+ID1cbiAgICB0aGlzLm9iamVjdE1hbmFnZW1lbnRJZCQucGlwZShcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBzd2l0Y2hNYXAob2JqZWN0TWFuYWdlbWVudElkID0+XG4gICAgICAgIHRoaXMub2JqZWN0TWFuYWdlbWVudFNlcnZpY2UuZ2V0U2VhcmNoRmllbGQob2JqZWN0TWFuYWdlbWVudElkKVxuICAgICAgKSxcbiAgICAgIG1hcChzZWFyY2hGaWVsZHMgPT5cbiAgICAgICAgc2VhcmNoRmllbGRzLm1hcChzZWFyY2hGaWVsZCA9PiB7XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIHNlYXJjaEZpZWxkLmRhdGFUeXBlID0gc2VhcmNoRmllbGQuZGF0YVR5cGUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgc2VhcmNoRmllbGQuZmllbGRUeXBlID0gc2VhcmNoRmllbGQuZmllbGRUeXBlLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgcmV0dXJuIHNlYXJjaEZpZWxkO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICk7XG5cbiAgcmVhZG9ubHkgb2JqZWN0Q29uZmlndXJhdGlvbiQ6IE9ic2VydmFibGU8QXJyYXk8YW55Pj4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLm9iamVjdE1hbmFnZW1lbnRJZCQsXG4gICAgdGhpcy5jdXJyZW50UGFnZUFuZFNpemUkLFxuICAgIHRoaXMuY29sdW1uVHlwZSQsXG4gICAgdGhpcy5zZWFyY2hGaWVsZFZhbHVlcyQsXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbSgna2V5JyksXG4gICAgdGhpcy5yZWZyZXNoT2JqZWN0TGlzdCQsXG4gIF0pLnBpcGUoXG4gICAgc3dpdGNoTWFwKChbb2JqZWN0TWFuYWdlbWVudElkLCBjdXJyZW50UGFnZSwgY29sdW1uVHlwZSwgc2VhcmNoRmllbGRWYWx1ZXNdKSA9PiB7XG4gICAgICBjb25zdCBoYW5kbGVFcnJvciA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5kaXNhYmxlSW5wdXQoKTtcbiAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgfTtcblxuICAgICAgaWYgKGNvbHVtblR5cGUgPT09IENvbHVtblR5cGUuQ1VTVE9NKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9iamVjdFNlcnZpY2VcbiAgICAgICAgICAucG9zdE9iamVjdHNCeU9iamVjdE1hbmFnZW1lbnRJZChcbiAgICAgICAgICAgIG9iamVjdE1hbmFnZW1lbnRJZCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcGFnZTogY3VycmVudFBhZ2UucGFnZSxcbiAgICAgICAgICAgICAgc2l6ZTogY3VycmVudFBhZ2Uuc2l6ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBPYmplY3Qua2V5cyhzZWFyY2hGaWVsZFZhbHVlcykubGVuZ3RoID4gMFxuICAgICAgICAgICAgICA/IHtvdGhlckZpbHRlcnM6IHRoaXMubWFwU2VhcmNoVmFsdWVzVG9GaWx0ZXJzKHNlYXJjaEZpZWxkVmFsdWVzKX1cbiAgICAgICAgICAgICAgOiB7fVxuICAgICAgICAgIClcbiAgICAgICAgICAucGlwZShjYXRjaEVycm9yKCgpID0+IGhhbmRsZUVycm9yKCkpKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMub2JqZWN0U2VydmljZVxuICAgICAgICAuZ2V0T2JqZWN0c0J5T2JqZWN0TWFuYWdlbWVudElkKG9iamVjdE1hbmFnZW1lbnRJZCwge1xuICAgICAgICAgIHBhZ2U6IGN1cnJlbnRQYWdlLnBhZ2UsXG4gICAgICAgICAgc2l6ZTogY3VycmVudFBhZ2Uuc2l6ZSxcbiAgICAgICAgfSlcbiAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcigoKSA9PiBoYW5kbGVFcnJvcigpKSk7XG4gICAgfSksXG4gICAgdGFwKGluc3RhbmNlUmVzID0+IHtcbiAgICAgIGlmIChpbnN0YW5jZVJlcyAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMucGFnZVNpemVzJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShzaXplcyA9PiB7XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIHRoaXMucGFnZVNpemVzJC5uZXh0KHsuLi5zaXplcywgY29sbGVjdGlvblNpemU6IGluc3RhbmNlUmVzLnRvdGFsRWxlbWVudHN9KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSksXG4gICAgbWFwKHJlcyA9PlxuICAgICAgcmVzPy5jb250ZW50Py5tYXAocmVjb3JkID0+XG4gICAgICAgIHJlY29yZD8uaXRlbXM/LnJlZHVjZShcbiAgICAgICAgICAob2JqLCBpdGVtKSA9PiBPYmplY3QuYXNzaWduKG9iaiwge29iamVjdElkOiByZWNvcmQuaWR9LCB7W2l0ZW0ua2V5XTogaXRlbS52YWx1ZX0pLFxuICAgICAgICAgIHt9XG4gICAgICAgIClcbiAgICAgIClcbiAgICApLFxuICAgIHRhcCgoKSA9PiB0aGlzLmxvYWRpbmckLm5leHQoZmFsc2UpKVxuICApO1xuXG4gIHJlYWRvbmx5IGZvcm1EZWZpbml0aW9uJDogT2JzZXJ2YWJsZTxhbnk+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5vYmplY3RNYW5hZ2VtZW50SWQkLFxuICAgIHRoaXMuY2xlYXJGb3JtJCxcbiAgXSkucGlwZShcbiAgICBzd2l0Y2hNYXAoKFtvYmplY3RNYW5hZ2VtZW50SWRdKSA9PlxuICAgICAgdGhpcy5vYmplY3RTZXJ2aWNlXG4gICAgICAgIC5nZXRQcmVmaWxsZWRPYmplY3RGcm9tT2JqZWN0VXJsKHtvYmplY3RNYW5hZ2VtZW50SWQsIGZvcm1UeXBlOiBGb3JtVHlwZS5FRElURk9STX0pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVSZXRyaWV2aW5nRm9ybUVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZUlucHV0KCk7XG4gICAgICAgICAgICByZXR1cm4gb2YobnVsbCkucGlwZShzdGFydFdpdGgobnVsbCkpO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICApLFxuICAgIG1hcChyZXMgPT4ge1xuICAgICAgaWYgKHJlcyAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMuZW5hYmxlSW5wdXQoKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlcz8uZm9ybURlZmluaXRpb247XG4gICAgfSksXG4gICAgc3RhcnRXaXRoKG51bGwpLFxuICAgIGZpbmFsaXplKCgpID0+IHRoaXMubG9hZGluZyQubmV4dChmYWxzZSkpXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjb2x1bW5zJDogT2JzZXJ2YWJsZTxBcnJheTxTZWFyY2hDb2x1bW4+PiA9IHRoaXMub2JqZWN0TWFuYWdlbWVudElkJC5waXBlKFxuICAgIHN3aXRjaE1hcChvYmplY3RNYW5hZ2VtZW50SWQgPT4gdGhpcy5vYmplY3RDb2x1bW5TZXJ2aWNlLmdldE9iamVjdENvbHVtbnMob2JqZWN0TWFuYWdlbWVudElkKSksXG4gICAgbWFwKHJlcyA9PiByZXMpXG4gICk7XG5cbiAgcmVhZG9ubHkgZmllbGRzJDogT2JzZXJ2YWJsZTxBcnJheTxMaXN0RmllbGQ+PiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuY29sdW1ucyQsXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbSgna2V5JyksXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbY29sdW1uc10pID0+IHtcbiAgICAgIGlmIChjb2x1bW5zPy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuY29sdW1uVHlwZSQubmV4dChDb2x1bW5UeXBlLkNVU1RPTSk7XG5cbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAuLi5jb2x1bW5zLm1hcChjb2x1bW4gPT4ge1xuICAgICAgICAgICAgY29uc3QgdHJhbnNsYXRpb25LZXkgPSBgZmllbGRMYWJlbHMuJHtjb2x1bW4udHJhbnNsYXRpb25LZXl9YDtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zbGF0aW9uID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodHJhbnNsYXRpb25LZXkpO1xuICAgICAgICAgICAgY29uc3QgdmFsaWRUcmFuc2xhdGlvbiA9IHRyYW5zbGF0aW9uICE9PSB0cmFuc2xhdGlvbktleSAmJiB0cmFuc2xhdGlvbjtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGtleTogY29sdW1uLnRyYW5zbGF0aW9uS2V5LFxuICAgICAgICAgICAgICBsYWJlbDogY29sdW1uLnRpdGxlIHx8IHZhbGlkVHJhbnNsYXRpb24gfHwgY29sdW1uLnRyYW5zbGF0aW9uS2V5LFxuICAgICAgICAgICAgICBzb3J0YWJsZTogY29sdW1uLnNvcnRhYmxlLFxuICAgICAgICAgICAgICAuLi4oY29sdW1uLnZpZXdUeXBlICYmIHt2aWV3VHlwZTogY29sdW1uLnZpZXdUeXBlfSksXG4gICAgICAgICAgICAgIC4uLihjb2x1bW4uZW51bSAmJiB7ZW51bTogY29sdW1uLmVudW19KSxcbiAgICAgICAgICAgICAgLi4uKGNvbHVtbi5mb3JtYXQgJiYge2Zvcm1hdDogY29sdW1uLmZvcm1hdH0pLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgXTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jb2x1bW5UeXBlJC5uZXh0KENvbHVtblR5cGUuREVGQVVMVCk7XG4gICAgICByZXR1cm4gdGhpcy5zZXREZWZhdWx0RmllbGRzKCk7XG4gICAgfSlcbiAgKTtcblxuICBwcml2YXRlIF9zZXR0aW5nUGFnZVRpdGxlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBvYmplY3RTZXJ2aWNlOiBPYmplY3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgb2JqZWN0Q29sdW1uU2VydmljZTogT2JqZWN0Q29sdW1uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9iamVjdE1hbmFnZW1lbnRTZXJ2aWNlOiBPYmplY3RNYW5hZ2VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRvYXN0cjogVG9hc3RyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhZ2VUaXRsZVNlcnZpY2U6IFBhZ2VUaXRsZVNlcnZpY2VcbiAgKSB7fVxuXG4gIG9wZW5Nb2RhbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dNb2RhbCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIGNsb3NlTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93TW9kYWwkLm5leHQoZmFsc2UpO1xuICAgIHRoaXMuY2xlYXJGb3JtJC5uZXh0KHRydWUpO1xuICB9XG5cbiAgb25Gb3JtaW9DaGFuZ2UoZm9ybWlvKTogdm9pZCB7XG4gICAgaWYgKGZvcm1pby5kYXRhICE9IG51bGwpIHtcbiAgICAgIHRoaXMuc3VibWlzc2lvbiQubmV4dChmb3JtaW8uZGF0YSk7XG4gICAgICB0aGlzLmZvcm1WYWxpZCQubmV4dChmb3JtaW8uaXNWYWxpZCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFkZE9iamVjdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVJbnB1dCgpO1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMub2JqZWN0TWFuYWdlbWVudElkJCwgdGhpcy5zdWJtaXNzaW9uJCwgdGhpcy5mb3JtVmFsaWQkXSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICBmaWx0ZXIoKFtvYmplY3RNYW5hZ2VtZW50SWQsIHN1Ym1pc3Npb24sIGZvcm1WYWxpZF0pID0+IGZvcm1WYWxpZCksXG4gICAgICAgIHN3aXRjaE1hcCgoW29iamVjdE1hbmFnZW1lbnRJZCwgc3VibWlzc2lvbl0pID0+XG4gICAgICAgICAgdGhpcy5vYmplY3RTZXJ2aWNlXG4gICAgICAgICAgICAuY3JlYXRlT2JqZWN0KFxuICAgICAgICAgICAgICB7b2JqZWN0TWFuYWdlbWVudElkfSxcbiAgICAgICAgICAgICAgey4uLnRoaXMub2JqZWN0U2VydmljZS5yZW1vdmVFbXB0eVN0cmluZ1ZhbHVlc0Zyb21TdWJtaXNzaW9uKHN1Ym1pc3Npb24pfVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUNyZWF0ZU9iamVjdEVycm9yKGVycm9yKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICksXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmVuYWJsZUlucHV0KCk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgIHRoaXMuY2xvc2VNb2RhbCgpO1xuICAgICAgICAgIHRoaXMucmVmcmVzaE9iamVjdExpc3QoKTtcbiAgICAgICAgICB0aGlzLmNsZWFyRm9ybSQubmV4dCh0cnVlKTtcbiAgICAgICAgICB0aGlzLnRvYXN0ci5zdWNjZXNzKHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ29iamVjdC5tZXNzYWdlcy5vYmplY3RDcmVhdGVkJykpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gIH1cblxuICByZWRpcmVjdFRvRGV0YWlscyhyZWNvcmQpOiB2b2lkIHtcbiAgICBjb25zdCBvYmplY3RJZCA9IHJlY29yZC5vYmplY3RVcmwgPyByZWNvcmQub2JqZWN0VXJsLnNwbGl0KCcvJykucG9wKCkgOiByZWNvcmQub2JqZWN0SWQ7XG4gICAgdGhpcy5vYmplY3RNYW5hZ2VtZW50SWQkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGNvbmZpZ3VyYXRpb25JZCA9PiB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC9vYmplY3RzLyR7Y29uZmlndXJhdGlvbklkfS8ke29iamVjdElkfWBdKTtcbiAgICB9KTtcbiAgfVxuXG4gIHNlYXJjaChzZWFyY2hGaWVsZFZhbHVlczogU2VhcmNoRmllbGRWYWx1ZXMpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaEZpZWxkVmFsdWVzJC5uZXh0KHNlYXJjaEZpZWxkVmFsdWVzIHx8IHt9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVmcmVzaE9iamVjdExpc3QoKTogdm9pZCB7XG4gICAgdGhpcy5yZWZyZXNoT2JqZWN0TGlzdCQubmV4dChudWxsKTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzYWJsZUlucHV0KCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZUlucHV0JC5uZXh0KHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbmFibGVJbnB1dCgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVJbnB1dCQubmV4dChmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIHNldERlZmF1bHRGaWVsZHMoKSB7XG4gICAgY29uc3Qga2V5czogQXJyYXk8c3RyaW5nPiA9IFsncmVjb3JkSW5kZXgnLCAnb2JqZWN0VXJsJ107XG4gICAgcmV0dXJuIGtleXMubWFwKGtleSA9PiAoe1xuICAgICAgbGFiZWw6IGAke3RoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGBvYmplY3QubGFiZWxzLiR7a2V5fWApfWAsXG4gICAgICBrZXksXG4gICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgIHZpZXdUeXBlOiAnc3RyaW5nJyxcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVJldHJpZXZpbmdGb3JtRXJyb3IoZXJyb3I6IGFueSkge1xuICAgIHRoaXMudG9hc3RyLmVycm9yKHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ29iamVjdC5tZXNzYWdlcy5vYmplY3RSZXRyaWV2aW5nRm9ybUVycm9yJykpO1xuICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQ3JlYXRlT2JqZWN0RXJyb3IoZXJyb3I6IGFueSkge1xuICAgIHRoaXMudG9hc3RyLmVycm9yKHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ29iamVjdC5tZXNzYWdlcy5vYmplY3RDcmVhdGlvbkVycm9yJykpO1xuICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgfVxuXG4gIHByaXZhdGUgbWFwU2VhcmNoVmFsdWVzVG9GaWx0ZXJzKFxuICAgIHZhbHVlczogU2VhcmNoRmllbGRWYWx1ZXNcbiAgKTogQXJyYXk8U2VhcmNoRmlsdGVyIHwgU2VhcmNoRmlsdGVyUmFuZ2U+IHtcbiAgICBjb25zdCBmaWx0ZXJzOiBBcnJheTxTZWFyY2hGaWx0ZXIgfCBTZWFyY2hGaWx0ZXJSYW5nZT4gPSBbXTtcblxuICAgIE9iamVjdC5rZXlzKHZhbHVlcykuZm9yRWFjaCh2YWx1ZUtleSA9PiB7XG4gICAgICBjb25zdCBzZWFyY2hWYWx1ZSA9IHZhbHVlc1t2YWx1ZUtleV0gYXMgYW55O1xuICAgICAgaWYgKHNlYXJjaFZhbHVlLnN0YXJ0KSB7XG4gICAgICAgIGZpbHRlcnMucHVzaCh7a2V5OiB2YWx1ZUtleSwgcmFuZ2VGcm9tOiBzZWFyY2hWYWx1ZS5zdGFydCwgcmFuZ2VUbzogc2VhcmNoVmFsdWUuZW5kfSk7XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoc2VhcmNoVmFsdWUpKSB7XG4gICAgICAgIGZpbHRlcnMucHVzaCh7a2V5OiB2YWx1ZUtleSwgdmFsdWVzOiBzZWFyY2hWYWx1ZX0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBmaWx0ZXJzLnB1c2goe2tleTogdmFsdWVLZXksIHZhbHVlczogW3NlYXJjaFZhbHVlXX0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZpbHRlcnM7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDIwIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cbjxuZy1jb250YWluZXJcbiAgKm5nSWY9XCJ7XG4gICAgbG9hZGluZzogbG9hZGluZyQgfCBhc3luYyxcbiAgICBwYWdpbmF0aW9uOiBwYWdpbmF0aW9uJCB8IGFzeW5jLFxuICAgIGRpc2FibGVJbnB1dDogZGlzYWJsZUlucHV0JCB8IGFzeW5jLFxuICAgIGZpZWxkczogZmllbGRzJCB8IGFzeW5jLFxuICAgIG9iamVjdENvbmZpZ3VyYXRpb246IG9iamVjdENvbmZpZ3VyYXRpb24kIHwgYXN5bmNcbiAgfSBhcyBvYnNcIlxuPlxuICA8ZGl2IGNsYXNzPVwibWFpbi1jb250ZW50IHB0LTBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkIHByLTAgcGwtMFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtcmlnaHRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1ncm91cCBtdC1tM3B4IG1iLTMgbXItMFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25zOyBjb250ZXh0OiB7b2JzOiBvYnN9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib2JzLmxvYWRpbmcgPT09IGZhbHNlOyBlbHNlIGxvYWRpbmdcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNlYXJjaEZpZWxkczsgY29udGV4dDoge29iczogb2JzfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibGlzdDsgY29udGV4dDoge29iczogb2JzfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3JlYXRlTmV3TW9kYWxcIj48L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2J1dHRvbnMgbGV0LW9icz1cIm9ic1wiPlxuICA8YnV0dG9uXG4gICAgKGNsaWNrKT1cIm9wZW5Nb2RhbCgpXCJcbiAgICBjZHNCdXR0b249XCJwcmltYXJ5XCJcbiAgICBzaXplPVwibWRcIlxuICAgIGNsYXNzPVwibWwtM1wiXG4gICAgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlSW5wdXQgfHwgb2JzLmxvYWRpbmdcIlxuICA+XG4gICAge3sgJ29iamVjdC5jcmVhdGVPYmplY3QnIHwgdHJhbnNsYXRlIH19XG4gICAgPHN2ZyBjbGFzcz1cImNkcy0tYnRuX19pY29uXCIgY2RzSWNvbj1cImFkZFwiIHNpemU9XCIxNlwiPjwvc3ZnPlxuICA8L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc2VhcmNoRmllbGRzIGxldC1vYnM9XCJvYnNcIj5cbiAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICA8dmFsdGltby1zZWFyY2gtZmllbGRzXG4gICAgICBbbG9hZGluZ109XCJvYnMubG9hZGluZ1wiXG4gICAgICBbc2VhcmNoRmllbGRzXT1cIm9iamVjdFNlYXJjaEZpZWxkcyQgfCBhc3luY1wiXG4gICAgICAoZG9TZWFyY2gpPVwic2VhcmNoKCRldmVudClcIlxuICAgICAgW2RvY3VtZW50RGVmaW5pdGlvbk5hbWVdPVwib2JqZWN0TWFuYWdlbWVudElkJCB8IGFzeW5jXCJcbiAgICAgIFtzZXRWYWx1ZXNTdWJqZWN0JF09XCJudWxsXCJcbiAgICA+PC92YWx0aW1vLXNlYXJjaC1maWVsZHM+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNsaXN0IGxldC1vYnM9XCJvYnNcIj5cbiAgPHZhbHRpbW8td2lkZ2V0PlxuICAgIDx2YWx0aW1vLWxpc3RcbiAgICAgIFtpdGVtc109XCJvYnMub2JqZWN0Q29uZmlndXJhdGlvblwiXG4gICAgICBbZmllbGRzXT1cIm9icy5maWVsZHNcIlxuICAgICAgW3ZpZXdNb2RlXT1cInRydWVcIlxuICAgICAgW2hlYWRlcl09XCJ0cnVlXCJcbiAgICAgIFtwYWdpbmF0aW9uXT1cIm9icy5wYWdpbmF0aW9uXCJcbiAgICAgIHBhZ2luYXRpb25JZGVudGlmaWVyPVwib2JqZWN0Q29uZmlndXJhdGlvbkxpc3RcIlxuICAgICAgKHBhZ2luYXRpb25DbGlja2VkKT1cInBhZ2luYXRpb25DbGlja2VkKCRldmVudClcIlxuICAgICAgKHBhZ2luYXRpb25TZXQpPVwicGFnaW5hdGlvblNldCgkZXZlbnQpXCJcbiAgICAgIChyb3dDbGlja2VkKT1cInJlZGlyZWN0VG9EZXRhaWxzKCRldmVudClcIlxuICAgID5cbiAgICAgIDxkaXYgaGVhZGVyPlxuICAgICAgICA8aDMgY2xhc3M9XCJsaXN0LWhlYWRlci10aXRsZVwiPlxuICAgICAgICAgIHt7ICdvYmplY3QudGl0bGUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPHN1cCBjbGFzcz1cIm1sLTEgYmFkZ2UgYmFkZ2UtcGlsbCBiYWRnZS1wcmltYXJ5XCI+e3tcbiAgICAgICAgICAgIG9icy5vYmplY3RDb25maWd1cmF0aW9uPy5sZW5ndGggfHwgMFxuICAgICAgICAgIH19PC9zdXA+XG4gICAgICAgIDwvaDM+XG4gICAgICA8L2Rpdj5cbiAgICA8L3ZhbHRpbW8tbGlzdD5cbiAgPC92YWx0aW1vLXdpZGdldD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY3JlYXRlTmV3TW9kYWw+XG4gIDxjZHMtbW9kYWxcbiAgICB2YWx0aW1vQ2RzTW9kYWxcbiAgICAqbmdJZj1cIntcbiAgICAgIHNob3c6IHNob3dNb2RhbCQgfCBhc3luYyxcbiAgICAgIGZvcm1WYWxpZDogZm9ybVZhbGlkJCB8IGFzeW5jLFxuICAgICAgZm9ybURlZmluaXRpb246IGZvcm1EZWZpbml0aW9uJCB8IGFzeW5jLFxuICAgICAgZGlzYWJsZUlucHV0OiBkaXNhYmxlSW5wdXQkIHwgYXN5bmNcbiAgICB9IGFzIG1vZGFsT2JzXCJcbiAgICBbb3Blbl09XCJtb2RhbE9icy5zaG93XCJcbiAgPlxuICAgIDxjZHMtbW9kYWwtaGVhZGVyIFtzaG93Q2xvc2VCdXR0b25dPVwidHJ1ZVwiIChjbG9zZVNlbGVjdCk9XCJjbG9zZU1vZGFsKClcIj5cbiAgICAgIDxoMyBjZHNNb2RhbEhlYWRlckhlYWRpbmc+XG4gICAgICAgIHt7ICdvYmplY3QuY3JlYXRlT2JqZWN0JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9oMz5cbiAgICA8L2Nkcy1tb2RhbC1oZWFkZXI+XG4gICAgPHNlY3Rpb24gY2RzTW9kYWxDb250ZW50PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1vZGFsQ29udGVudDsgY29udGV4dDoge21vZGFsT2JzOiBtb2RhbE9ic31cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L3NlY3Rpb24+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1vZGFsRm9vdGVyOyBjb250ZXh0OiB7bW9kYWxPYnM6IG1vZGFsT2JzfVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Nkcy1tb2RhbD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbW9kYWxDb250ZW50IGxldC1tb2RhbE9icz1cIm1vZGFsT2JzXCI+XG4gIDx2YWx0aW1vLWZvcm0taW9cbiAgICBbZm9ybV09XCJtb2RhbE9icy5mb3JtRGVmaW5pdGlvblwiXG4gICAgKGNoYW5nZSk9XCJvbkZvcm1pb0NoYW5nZSgkZXZlbnQpXCJcbiAgPjwvdmFsdGltby1mb3JtLWlvPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNtb2RhbEZvb3RlciBsZXQtbW9kYWxPYnM9XCJtb2RhbE9ic1wiPlxuICA8Y2RzLW1vZGFsLWZvb3Rlcj5cbiAgICA8bmctY29udGFpbmVyPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjZHNCdXR0b249XCJzZWNvbmRhcnlcIlxuICAgICAgICBbYXR0ci5tb2RhbC1wcmltYXJ5LWZvY3VzXT1cInRydWVcIlxuICAgICAgICAoY2xpY2spPVwiY2xvc2VNb2RhbCgpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIm1vZGFsT2JzLmRpc2FibGVJbnB1dFwiXG4gICAgICA+XG4gICAgICAgIHt7ICdvYmplY3QuY2xvc2UnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2RzQnV0dG9uPVwicHJpbWFyeVwiXG4gICAgICAgIFthdHRyLm1vZGFsLXByaW1hcnktZm9jdXNdPVwidHJ1ZVwiXG4gICAgICAgIChjbGljayk9XCJhZGRPYmplY3QoKVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJtb2RhbE9icy5kaXNhYmxlSW5wdXQgfHwgbW9kYWxPYnMuZm9ybVZhbGlkID09PSBmYWxzZVwiXG4gICAgICA+XG4gICAgICAgIHt7ICdvYmplY3Quc2F2ZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Nkcy1tb2RhbC1mb290ZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2xvYWRpbmc+XG4gIDxkaXYgY2xhc3M9XCJsb2FkaW5nLWljb25cIj48Y2RzLWxvYWRpbmc+PC9jZHMtbG9hZGluZz48L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -1,93 +0,0 @@
1
- /*
2
- * Copyright 2015-2020 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 { ObjectRoutingModule } from './object-routing.module';
18
- import { ObjectListComponent } from './components/object-list/object-list.component';
19
- import { TranslateModule } from '@ngx-translate/core';
20
- import { AsyncPipe, CommonModule } from '@angular/common';
21
- import { ConfirmationModalModule, FormIoModule, ListModule, SearchFieldsModule, SpinnerModule, ValtimoCdsModalDirectiveModule, WidgetModule, } from '@valtimo/components';
22
- import { ObjectDetailContainerComponent } from './components/object-detail-container/object-detail-container.component';
23
- import { ObjectDetailComponent } from './components/object-detail-container/tabs/object-detail/object-detail.component';
24
- import { ButtonModule, IconModule, InputModule, LoadingModule, ModalModule, } from 'carbon-components-angular';
25
- import { ReactiveFormsModule } from '@angular/forms';
26
- import { TooltipIconModule } from '@valtimo/user-interface';
27
- import * as i0 from "@angular/core";
28
- export class ObjectModule {
29
- }
30
- ObjectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
31
- ObjectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ObjectModule, declarations: [ObjectListComponent, ObjectDetailContainerComponent, ObjectDetailComponent], imports: [CommonModule,
32
- ObjectRoutingModule,
33
- TranslateModule,
34
- AsyncPipe,
35
- WidgetModule,
36
- ListModule,
37
- ButtonModule,
38
- IconModule,
39
- SpinnerModule,
40
- LoadingModule,
41
- FormIoModule,
42
- ModalModule,
43
- ReactiveFormsModule,
44
- InputModule,
45
- TooltipIconModule,
46
- ConfirmationModalModule,
47
- SearchFieldsModule,
48
- ValtimoCdsModalDirectiveModule] });
49
- ObjectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectModule, imports: [CommonModule,
50
- ObjectRoutingModule,
51
- TranslateModule,
52
- WidgetModule,
53
- ListModule,
54
- ButtonModule,
55
- IconModule,
56
- SpinnerModule,
57
- LoadingModule,
58
- FormIoModule,
59
- ModalModule,
60
- ReactiveFormsModule,
61
- InputModule,
62
- TooltipIconModule,
63
- ConfirmationModalModule,
64
- SearchFieldsModule,
65
- ValtimoCdsModalDirectiveModule] });
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectModule, decorators: [{
67
- type: NgModule,
68
- args: [{
69
- declarations: [ObjectListComponent, ObjectDetailContainerComponent, ObjectDetailComponent],
70
- imports: [
71
- CommonModule,
72
- ObjectRoutingModule,
73
- TranslateModule,
74
- AsyncPipe,
75
- WidgetModule,
76
- ListModule,
77
- ButtonModule,
78
- IconModule,
79
- SpinnerModule,
80
- LoadingModule,
81
- FormIoModule,
82
- ModalModule,
83
- ReactiveFormsModule,
84
- InputModule,
85
- TooltipIconModule,
86
- ConfirmationModalModule,
87
- SearchFieldsModule,
88
- ValtimoCdsModalDirectiveModule,
89
- ],
90
- exports: [],
91
- }]
92
- }] });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vb2JqZWN0L3NyYy9saWIvb2JqZWN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUFDbkYsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixZQUFZLEVBQ1osVUFBVSxFQUNWLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsOEJBQThCLEVBQzlCLFlBQVksR0FDYixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLHdFQUF3RSxDQUFDO0FBQ3RILE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGlGQUFpRixDQUFDO0FBQ3RILE9BQU8sRUFDTCxZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxhQUFhLEVBQ2IsV0FBVyxHQUNaLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0seUJBQXlCLENBQUM7O0FBMEIxRCxNQUFNLE9BQU8sWUFBWTs7eUdBQVosWUFBWTswR0FBWixZQUFZLGlCQXZCUixtQkFBbUIsRUFBRSw4QkFBOEIsRUFBRSxxQkFBcUIsYUFFdkYsWUFBWTtRQUNaLG1CQUFtQjtRQUNuQixlQUFlO1FBQ2YsU0FBUztRQUNULFlBQVk7UUFDWixVQUFVO1FBQ1YsWUFBWTtRQUNaLFVBQVU7UUFDVixhQUFhO1FBQ2IsYUFBYTtRQUNiLFlBQVk7UUFDWixXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLFdBQVc7UUFDWCxpQkFBaUI7UUFDakIsdUJBQXVCO1FBQ3ZCLGtCQUFrQjtRQUNsQiw4QkFBOEI7MEdBSXJCLFlBQVksWUFyQnJCLFlBQVk7UUFDWixtQkFBbUI7UUFDbkIsZUFBZTtRQUVmLFlBQVk7UUFDWixVQUFVO1FBQ1YsWUFBWTtRQUNaLFVBQVU7UUFDVixhQUFhO1FBQ2IsYUFBYTtRQUNiLFlBQVk7UUFDWixXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLFdBQVc7UUFDWCxpQkFBaUI7UUFDakIsdUJBQXVCO1FBQ3ZCLGtCQUFrQjtRQUNsQiw4QkFBOEI7MkZBSXJCLFlBQVk7a0JBeEJ4QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLG1CQUFtQixFQUFFLDhCQUE4QixFQUFFLHFCQUFxQixDQUFDO29CQUMxRixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsU0FBUzt3QkFDVCxZQUFZO3dCQUNaLFVBQVU7d0JBQ1YsWUFBWTt3QkFDWixVQUFVO3dCQUNWLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLGlCQUFpQjt3QkFDakIsdUJBQXVCO3dCQUN2QixrQkFBa0I7d0JBQ2xCLDhCQUE4QjtxQkFDL0I7b0JBQ0QsT0FBTyxFQUFFLEVBQUU7aUJBQ1oiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7T2JqZWN0Um91dGluZ01vZHVsZX0gZnJvbSAnLi9vYmplY3Qtcm91dGluZy5tb2R1bGUnO1xuaW1wb3J0IHtPYmplY3RMaXN0Q29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvb2JqZWN0LWxpc3Qvb2JqZWN0LWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7QXN5bmNQaXBlLCBDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb25maXJtYXRpb25Nb2RhbE1vZHVsZSxcbiAgRm9ybUlvTW9kdWxlLFxuICBMaXN0TW9kdWxlLFxuICBTZWFyY2hGaWVsZHNNb2R1bGUsXG4gIFNwaW5uZXJNb2R1bGUsXG4gIFZhbHRpbW9DZHNNb2RhbERpcmVjdGl2ZU1vZHVsZSxcbiAgV2lkZ2V0TW9kdWxlLFxufSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7T2JqZWN0RGV0YWlsQ29udGFpbmVyQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvb2JqZWN0LWRldGFpbC1jb250YWluZXIvb2JqZWN0LWRldGFpbC1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7T2JqZWN0RGV0YWlsQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvb2JqZWN0LWRldGFpbC1jb250YWluZXIvdGFicy9vYmplY3QtZGV0YWlsL29iamVjdC1kZXRhaWwuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEJ1dHRvbk1vZHVsZSxcbiAgSWNvbk1vZHVsZSxcbiAgSW5wdXRNb2R1bGUsXG4gIExvYWRpbmdNb2R1bGUsXG4gIE1vZGFsTW9kdWxlLFxufSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyJztcbmltcG9ydCB7UmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtUb29sdGlwSWNvbk1vZHVsZX0gZnJvbSAnQHZhbHRpbW8vdXNlci1pbnRlcmZhY2UnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtPYmplY3RMaXN0Q29tcG9uZW50LCBPYmplY3REZXRhaWxDb250YWluZXJDb21wb25lbnQsIE9iamVjdERldGFpbENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgT2JqZWN0Um91dGluZ01vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgQXN5bmNQaXBlLFxuICAgIFdpZGdldE1vZHVsZSxcbiAgICBMaXN0TW9kdWxlLFxuICAgIEJ1dHRvbk1vZHVsZSxcbiAgICBJY29uTW9kdWxlLFxuICAgIFNwaW5uZXJNb2R1bGUsXG4gICAgTG9hZGluZ01vZHVsZSxcbiAgICBGb3JtSW9Nb2R1bGUsXG4gICAgTW9kYWxNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBJbnB1dE1vZHVsZSxcbiAgICBUb29sdGlwSWNvbk1vZHVsZSxcbiAgICBDb25maXJtYXRpb25Nb2RhbE1vZHVsZSxcbiAgICBTZWFyY2hGaWVsZHNNb2R1bGUsXG4gICAgVmFsdGltb0Nkc01vZGFsRGlyZWN0aXZlTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgT2JqZWN0TW9kdWxlIHt9XG4iXX0=
@@ -1,50 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { map } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@valtimo/config";
5
- import * as i2 from "@valtimo/object-management";
6
- export class ObjectColumnService {
7
- constructor(configService, objectManagementService) {
8
- this.configService = configService;
9
- this.objectManagementService = objectManagementService;
10
- }
11
- getObjectColumns(configurationId) {
12
- return this.objectManagementService
13
- .getSearchList(configurationId)
14
- .pipe(map(objectListColumns => objectListColumns &&
15
- Array.isArray(objectListColumns) &&
16
- objectListColumns.length > 0 &&
17
- this.mapObjectListColumnsToSearchColumns(objectListColumns)));
18
- }
19
- mapObjectListColumnsToSearchColumns(searchListColumns) {
20
- return searchListColumns.map(searchListColumn => ({
21
- translationKey: searchListColumn.key,
22
- sortable: searchListColumn.sortable,
23
- defaultSort: searchListColumn.defaultSort,
24
- viewType: this.getDisplayType(searchListColumn.displayType.type),
25
- propertyName: searchListColumn.path,
26
- ...(searchListColumn.title && { title: searchListColumn.title }),
27
- ...(searchListColumn?.displayType?.displayTypeParameters?.enum && {
28
- enum: searchListColumn.displayType.displayTypeParameters.enum,
29
- }),
30
- ...(searchListColumn.displayType?.displayTypeParameters?.dateFormat && {
31
- format: searchListColumn.displayType?.displayTypeParameters?.dateFormat,
32
- }),
33
- }));
34
- }
35
- getDisplayType(searchListColumnDisplayType) {
36
- switch (searchListColumnDisplayType) {
37
- default:
38
- return searchListColumnDisplayType;
39
- }
40
- }
41
- }
42
- ObjectColumnService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectColumnService, deps: [{ token: i1.ConfigService }, { token: i2.ObjectManagementService }], target: i0.ɵɵFactoryTarget.Injectable });
43
- ObjectColumnService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectColumnService, providedIn: 'root' });
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectColumnService, decorators: [{
45
- type: Injectable,
46
- args: [{
47
- providedIn: 'root',
48
- }]
49
- }], ctorParameters: function () { return [{ type: i1.ConfigService }, { type: i2.ObjectManagementService }]; } });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWNvbHVtbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9vYmplY3Qvc3JjL2xpYi9zZXJ2aWNlcy9vYmplY3QtY29sdW1uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUMsR0FBRyxFQUFhLE1BQU0sTUFBTSxDQUFDOzs7O0FBTXJDLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsWUFDbUIsYUFBNEIsRUFDNUIsdUJBQWdEO1FBRGhELGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7SUFDaEUsQ0FBQztJQUVKLGdCQUFnQixDQUFDLGVBQXVCO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLHVCQUF1QjthQUNoQyxhQUFhLENBQUMsZUFBZSxDQUFDO2FBQzlCLElBQUksQ0FDSCxHQUFHLENBQ0QsaUJBQWlCLENBQUMsRUFBRSxDQUNsQixpQkFBaUI7WUFDakIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztZQUNoQyxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUM1QixJQUFJLENBQUMsbUNBQW1DLENBQUMsaUJBQWlCLENBQUMsQ0FDOUQsQ0FDRixDQUFDO0lBQ04sQ0FBQztJQUVPLG1DQUFtQyxDQUN6QyxpQkFBMEM7UUFFMUMsT0FBTyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDaEQsY0FBYyxFQUFFLGdCQUFnQixDQUFDLEdBQUc7WUFDcEMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLFFBQVE7WUFDbkMsV0FBVyxFQUFFLGdCQUFnQixDQUFDLFdBQVc7WUFDekMsUUFBUSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztZQUNoRSxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsSUFBSTtZQUNuQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxJQUFJLEVBQUMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLEtBQUssRUFBQyxDQUFDO1lBQzlELEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxJQUFJO2dCQUNoRSxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLElBQVc7YUFDckUsQ0FBQztZQUNGLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUscUJBQXFCLEVBQUUsVUFBVSxJQUFJO2dCQUNyRSxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLHFCQUFxQixFQUFFLFVBQVU7YUFDeEUsQ0FBQztTQUNILENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVPLGNBQWMsQ0FBQywyQkFBbUM7UUFDeEQsUUFBUSwyQkFBMkIsRUFBRTtZQUNuQztnQkFDRSxPQUFPLDJCQUEyQixDQUFDO1NBQ3RDO0lBQ0gsQ0FBQzs7Z0hBNUNVLG1CQUFtQjtvSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07MkZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbmZpZ1NlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2NvbmZpZyc7XG5pbXBvcnQge21hcCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge09iamVjdE1hbmFnZW1lbnRTZXJ2aWNlLCBTZWFyY2hMaXN0Q29sdW1uLCBTZWFyY2hDb2x1bW59IGZyb20gJ0B2YWx0aW1vL29iamVjdC1tYW5hZ2VtZW50JztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE9iamVjdENvbHVtblNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBvYmplY3RNYW5hZ2VtZW50U2VydmljZTogT2JqZWN0TWFuYWdlbWVudFNlcnZpY2VcbiAgKSB7fVxuXG4gIGdldE9iamVjdENvbHVtbnMoY29uZmlndXJhdGlvbklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEFycmF5PFNlYXJjaENvbHVtbj4+IHtcbiAgICByZXR1cm4gdGhpcy5vYmplY3RNYW5hZ2VtZW50U2VydmljZVxuICAgICAgLmdldFNlYXJjaExpc3QoY29uZmlndXJhdGlvbklkKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChcbiAgICAgICAgICBvYmplY3RMaXN0Q29sdW1ucyA9PlxuICAgICAgICAgICAgb2JqZWN0TGlzdENvbHVtbnMgJiZcbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkob2JqZWN0TGlzdENvbHVtbnMpICYmXG4gICAgICAgICAgICBvYmplY3RMaXN0Q29sdW1ucy5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICB0aGlzLm1hcE9iamVjdExpc3RDb2x1bW5zVG9TZWFyY2hDb2x1bW5zKG9iamVjdExpc3RDb2x1bW5zKVxuICAgICAgICApXG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBtYXBPYmplY3RMaXN0Q29sdW1uc1RvU2VhcmNoQ29sdW1ucyhcbiAgICBzZWFyY2hMaXN0Q29sdW1uczogQXJyYXk8U2VhcmNoTGlzdENvbHVtbj5cbiAgKTogQXJyYXk8U2VhcmNoQ29sdW1uPiB7XG4gICAgcmV0dXJuIHNlYXJjaExpc3RDb2x1bW5zLm1hcChzZWFyY2hMaXN0Q29sdW1uID0+ICh7XG4gICAgICB0cmFuc2xhdGlvbktleTogc2VhcmNoTGlzdENvbHVtbi5rZXksXG4gICAgICBzb3J0YWJsZTogc2VhcmNoTGlzdENvbHVtbi5zb3J0YWJsZSxcbiAgICAgIGRlZmF1bHRTb3J0OiBzZWFyY2hMaXN0Q29sdW1uLmRlZmF1bHRTb3J0LFxuICAgICAgdmlld1R5cGU6IHRoaXMuZ2V0RGlzcGxheVR5cGUoc2VhcmNoTGlzdENvbHVtbi5kaXNwbGF5VHlwZS50eXBlKSxcbiAgICAgIHByb3BlcnR5TmFtZTogc2VhcmNoTGlzdENvbHVtbi5wYXRoLFxuICAgICAgLi4uKHNlYXJjaExpc3RDb2x1bW4udGl0bGUgJiYge3RpdGxlOiBzZWFyY2hMaXN0Q29sdW1uLnRpdGxlfSksXG4gICAgICAuLi4oc2VhcmNoTGlzdENvbHVtbj8uZGlzcGxheVR5cGU/LmRpc3BsYXlUeXBlUGFyYW1ldGVycz8uZW51bSAmJiB7XG4gICAgICAgIGVudW06IHNlYXJjaExpc3RDb2x1bW4uZGlzcGxheVR5cGUuZGlzcGxheVR5cGVQYXJhbWV0ZXJzLmVudW0gYXMgYW55LFxuICAgICAgfSksXG4gICAgICAuLi4oc2VhcmNoTGlzdENvbHVtbi5kaXNwbGF5VHlwZT8uZGlzcGxheVR5cGVQYXJhbWV0ZXJzPy5kYXRlRm9ybWF0ICYmIHtcbiAgICAgICAgZm9ybWF0OiBzZWFyY2hMaXN0Q29sdW1uLmRpc3BsYXlUeXBlPy5kaXNwbGF5VHlwZVBhcmFtZXRlcnM/LmRhdGVGb3JtYXQsXG4gICAgICB9KSxcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIGdldERpc3BsYXlUeXBlKHNlYXJjaExpc3RDb2x1bW5EaXNwbGF5VHlwZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHNlYXJjaExpc3RDb2x1bW5EaXNwbGF5VHlwZSkge1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHNlYXJjaExpc3RDb2x1bW5EaXNwbGF5VHlwZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==