@valtimo/object 10.8.0 → 11.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{esm2020 → esm2022}/lib/components/object-detail-container/object-detail-container.component.mjs +6 -6
- package/{esm2020 → esm2022}/lib/components/object-detail-container/tabs/object-detail/object-detail.component.mjs +6 -6
- package/esm2022/lib/components/object-list/object-list.component.mjs +261 -0
- package/{esm2020 → esm2022}/lib/models/object.model.mjs +2 -2
- package/{esm2020 → esm2022}/lib/object-routing.module.mjs +6 -6
- package/esm2022/lib/object.module.mjs +92 -0
- package/esm2022/lib/services/object-column.service.mjs +65 -0
- package/{esm2020 → esm2022}/lib/services/object-state.service.mjs +5 -5
- package/{esm2020 → esm2022}/lib/services/object.service.mjs +5 -5
- package/{esm2020 → esm2022}/lib/services/tab.enum.mjs +2 -2
- package/{esm2020 → esm2022}/lib/services/tab.service.mjs +5 -5
- package/{esm2020 → esm2022}/public-api.mjs +2 -2
- package/{fesm2020 → fesm2022}/valtimo-object.mjs +110 -94
- package/fesm2022/valtimo-object.mjs.map +1 -0
- package/lib/components/object-detail-container/object-detail-container.component.d.ts +1 -1
- package/lib/components/object-detail-container/tabs/object-detail/object-detail.component.d.ts +1 -1
- package/lib/components/object-list/object-list.component.d.ts +1 -1
- package/lib/object.module.d.ts +1 -2
- package/package.json +8 -14
- package/esm2020/lib/components/object-list/object-list.component.mjs +0 -262
- package/esm2020/lib/object.module.mjs +0 -93
- package/esm2020/lib/services/object-column.service.mjs +0 -50
- package/fesm2015/valtimo-object.mjs +0 -851
- package/fesm2015/valtimo-object.mjs.map +0 -1
- package/fesm2020/valtimo-object.mjs.map +0 -1
- /package/{esm2020 → esm2022}/valtimo-object.mjs +0 -0
|
@@ -0,0 +1,261 @@
|
|
|
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 } 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
|
+
paginationClicked(newPageNumber) {
|
|
32
|
+
this.currentPageAndSize$.pipe(take(1)).subscribe(currentPage => {
|
|
33
|
+
this.currentPageAndSize$.next({ ...currentPage, page: newPageNumber - 1 });
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
paginationSet(newPageSize) {
|
|
37
|
+
if (newPageSize) {
|
|
38
|
+
this.currentPageAndSize$.pipe(take(1)).subscribe(currentPage => {
|
|
39
|
+
this.currentPageAndSize$.next({ ...currentPage, size: newPageSize });
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
constructor(objectService, objectColumnService, objectManagementService, translateService, router, route, toastr, translate, pageTitleService) {
|
|
44
|
+
this.objectService = objectService;
|
|
45
|
+
this.objectColumnService = objectColumnService;
|
|
46
|
+
this.objectManagementService = objectManagementService;
|
|
47
|
+
this.translateService = translateService;
|
|
48
|
+
this.router = router;
|
|
49
|
+
this.route = route;
|
|
50
|
+
this.toastr = toastr;
|
|
51
|
+
this.translate = translate;
|
|
52
|
+
this.pageTitleService = pageTitleService;
|
|
53
|
+
this.loading$ = new BehaviorSubject(true);
|
|
54
|
+
this.submission$ = new BehaviorSubject({});
|
|
55
|
+
this.formValid$ = new BehaviorSubject(false);
|
|
56
|
+
this.showModal$ = new BehaviorSubject(false);
|
|
57
|
+
this.disableInput$ = new BehaviorSubject(false);
|
|
58
|
+
this.clearForm$ = new BehaviorSubject(false);
|
|
59
|
+
this.columnType$ = new BehaviorSubject(ColumnType.DEFAULT);
|
|
60
|
+
this.objectManagementId$ = this.route.params.pipe(map(params => params.objectManagementId), tap(objectManagementId => {
|
|
61
|
+
if (!this._settingPageTitle && objectManagementId) {
|
|
62
|
+
this._settingPageTitle = true;
|
|
63
|
+
this.objectManagementService.getObjectById(objectManagementId).subscribe(objectType => {
|
|
64
|
+
if (objectType.title) {
|
|
65
|
+
this.pageTitleService.setCustomPageTitle(objectType.title);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}));
|
|
70
|
+
this.refreshObjectList$ = new BehaviorSubject(null);
|
|
71
|
+
this.currentPageAndSize$ = new BehaviorSubject({
|
|
72
|
+
page: 0,
|
|
73
|
+
size: 10,
|
|
74
|
+
});
|
|
75
|
+
this.pageSizes$ = new BehaviorSubject({
|
|
76
|
+
collectionSize: 0,
|
|
77
|
+
});
|
|
78
|
+
this.pagination$ = combineLatest([
|
|
79
|
+
this.currentPageAndSize$,
|
|
80
|
+
this.pageSizes$,
|
|
81
|
+
]).pipe(map(([currentPage, sizes]) => ({ ...currentPage, ...sizes, page: currentPage.page + 1 })));
|
|
82
|
+
this.searchFieldValues$ = new BehaviorSubject({});
|
|
83
|
+
this.objectSearchFields$ = this.objectManagementId$.pipe(distinctUntilChanged(), switchMap(objectManagementId => this.objectManagementService.getSearchField(objectManagementId)), map(searchFields => searchFields.map(searchField => {
|
|
84
|
+
// @ts-ignore
|
|
85
|
+
searchField.dataType = searchField.dataType.toLowerCase();
|
|
86
|
+
// @ts-ignore
|
|
87
|
+
searchField.fieldType = searchField.fieldType.toLowerCase();
|
|
88
|
+
return searchField;
|
|
89
|
+
})));
|
|
90
|
+
this.objectConfiguration$ = combineLatest([
|
|
91
|
+
this.objectManagementId$,
|
|
92
|
+
this.currentPageAndSize$,
|
|
93
|
+
this.columnType$,
|
|
94
|
+
this.searchFieldValues$,
|
|
95
|
+
this.translateService.stream('key'),
|
|
96
|
+
this.refreshObjectList$,
|
|
97
|
+
]).pipe(switchMap(([objectManagementId, currentPage, columnType, searchFieldValues]) => {
|
|
98
|
+
const handleError = () => {
|
|
99
|
+
this.disableInput();
|
|
100
|
+
return of(null);
|
|
101
|
+
};
|
|
102
|
+
if (columnType === ColumnType.CUSTOM) {
|
|
103
|
+
return this.objectService
|
|
104
|
+
.postObjectsByObjectManagementId(objectManagementId, {
|
|
105
|
+
page: currentPage.page,
|
|
106
|
+
size: currentPage.size,
|
|
107
|
+
}, Object.keys(searchFieldValues).length > 0
|
|
108
|
+
? { otherFilters: this.mapSearchValuesToFilters(searchFieldValues) }
|
|
109
|
+
: {})
|
|
110
|
+
.pipe(catchError(() => handleError()));
|
|
111
|
+
}
|
|
112
|
+
return this.objectService
|
|
113
|
+
.getObjectsByObjectManagementId(objectManagementId, {
|
|
114
|
+
page: currentPage.page,
|
|
115
|
+
size: currentPage.size,
|
|
116
|
+
})
|
|
117
|
+
.pipe(catchError(() => handleError()));
|
|
118
|
+
}), tap(instanceRes => {
|
|
119
|
+
if (instanceRes != null) {
|
|
120
|
+
this.pageSizes$.pipe(take(1)).subscribe(sizes => {
|
|
121
|
+
// @ts-ignore
|
|
122
|
+
this.pageSizes$.next({ ...sizes, collectionSize: instanceRes.totalElements });
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
}), 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)));
|
|
126
|
+
this.formDefinition$ = combineLatest([
|
|
127
|
+
this.objectManagementId$,
|
|
128
|
+
this.clearForm$,
|
|
129
|
+
]).pipe(switchMap(([objectManagementId]) => this.objectService
|
|
130
|
+
.getPrefilledObjectFromObjectUrl({ objectManagementId, formType: FormType.EDITFORM })
|
|
131
|
+
.pipe(catchError(error => {
|
|
132
|
+
this.handleRetrievingFormError(error);
|
|
133
|
+
this.disableInput();
|
|
134
|
+
return of(null).pipe(startWith(null));
|
|
135
|
+
}))), map(res => {
|
|
136
|
+
if (res != null) {
|
|
137
|
+
this.enableInput();
|
|
138
|
+
}
|
|
139
|
+
return res?.formDefinition;
|
|
140
|
+
}), startWith(null), finalize(() => this.loading$.next(false)));
|
|
141
|
+
this.columns$ = this.objectManagementId$.pipe(switchMap(objectManagementId => this.objectColumnService.getObjectColumns(objectManagementId)), map(res => res));
|
|
142
|
+
this.fields$ = combineLatest([
|
|
143
|
+
this.columns$,
|
|
144
|
+
this.translateService.stream('key'),
|
|
145
|
+
]).pipe(map(([columns]) => {
|
|
146
|
+
if (columns?.length > 0) {
|
|
147
|
+
this.columnType$.next(ColumnType.CUSTOM);
|
|
148
|
+
return [
|
|
149
|
+
...columns.map(column => {
|
|
150
|
+
const translationKey = `fieldLabels.${column.translationKey}`;
|
|
151
|
+
const translation = this.translateService.instant(translationKey);
|
|
152
|
+
const validTranslation = translation !== translationKey && translation;
|
|
153
|
+
return {
|
|
154
|
+
key: column.translationKey,
|
|
155
|
+
label: column.title || validTranslation || column.translationKey,
|
|
156
|
+
sortable: column.sortable,
|
|
157
|
+
...(column.viewType && { viewType: column.viewType || '' }),
|
|
158
|
+
...(column.enum && { enum: column.enum }),
|
|
159
|
+
...(column.format && { format: column.format }),
|
|
160
|
+
};
|
|
161
|
+
}),
|
|
162
|
+
];
|
|
163
|
+
}
|
|
164
|
+
this.columnType$.next(ColumnType.DEFAULT);
|
|
165
|
+
return this.setDefaultFields();
|
|
166
|
+
}));
|
|
167
|
+
this._settingPageTitle = false;
|
|
168
|
+
}
|
|
169
|
+
openModal() {
|
|
170
|
+
this.showModal$.next(true);
|
|
171
|
+
}
|
|
172
|
+
closeModal() {
|
|
173
|
+
this.showModal$.next(false);
|
|
174
|
+
this.clearForm$.next(true);
|
|
175
|
+
}
|
|
176
|
+
onFormioChange(formio) {
|
|
177
|
+
if (formio.data != null) {
|
|
178
|
+
this.submission$.next(formio.data);
|
|
179
|
+
this.formValid$.next(formio.isValid);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
addObject() {
|
|
183
|
+
this.disableInput();
|
|
184
|
+
combineLatest([this.objectManagementId$, this.submission$, this.formValid$])
|
|
185
|
+
.pipe(take(1), filter(([objectManagementId, submission, formValid]) => formValid), switchMap(([objectManagementId, submission]) => this.objectService
|
|
186
|
+
.createObject({ objectManagementId }, { ...this.objectService.removeEmptyStringValuesFromSubmission(submission) })
|
|
187
|
+
.pipe(take(1), catchError((error) => {
|
|
188
|
+
this.handleCreateObjectError(error);
|
|
189
|
+
return throwError(error);
|
|
190
|
+
}))), finalize(() => {
|
|
191
|
+
this.enableInput();
|
|
192
|
+
}))
|
|
193
|
+
.subscribe({
|
|
194
|
+
next: () => {
|
|
195
|
+
this.closeModal();
|
|
196
|
+
this.refreshObjectList();
|
|
197
|
+
this.clearForm$.next(true);
|
|
198
|
+
this.toastr.success(this.translate.instant('object.messages.objectCreated'));
|
|
199
|
+
},
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
redirectToDetails(record) {
|
|
203
|
+
const objectId = record.objectUrl ? record.objectUrl.split('/').pop() : record.objectId;
|
|
204
|
+
this.objectManagementId$.pipe(take(1)).subscribe(configurationId => {
|
|
205
|
+
this.router.navigate([`/objects/${configurationId}/${objectId}`]);
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
search(searchFieldValues) {
|
|
209
|
+
this.searchFieldValues$.next(searchFieldValues || {});
|
|
210
|
+
}
|
|
211
|
+
refreshObjectList() {
|
|
212
|
+
this.refreshObjectList$.next(null);
|
|
213
|
+
}
|
|
214
|
+
disableInput() {
|
|
215
|
+
this.disableInput$.next(true);
|
|
216
|
+
}
|
|
217
|
+
enableInput() {
|
|
218
|
+
this.disableInput$.next(false);
|
|
219
|
+
}
|
|
220
|
+
setDefaultFields() {
|
|
221
|
+
const keys = ['recordIndex', 'objectUrl'];
|
|
222
|
+
return keys.map(key => ({
|
|
223
|
+
label: `${this.translateService.instant(`object.labels.${key}`)}`,
|
|
224
|
+
key,
|
|
225
|
+
sortable: true,
|
|
226
|
+
type: 'string',
|
|
227
|
+
}));
|
|
228
|
+
}
|
|
229
|
+
handleRetrievingFormError(error) {
|
|
230
|
+
this.toastr.error(this.translate.instant('object.messages.objectRetrievingFormError'));
|
|
231
|
+
return throwError(error);
|
|
232
|
+
}
|
|
233
|
+
handleCreateObjectError(error) {
|
|
234
|
+
this.toastr.error(this.translate.instant('object.messages.objectCreationError'));
|
|
235
|
+
return throwError(error);
|
|
236
|
+
}
|
|
237
|
+
mapSearchValuesToFilters(values) {
|
|
238
|
+
const filters = [];
|
|
239
|
+
Object.keys(values).forEach(valueKey => {
|
|
240
|
+
const searchValue = values[valueKey];
|
|
241
|
+
if (searchValue.start) {
|
|
242
|
+
filters.push({ key: valueKey, rangeFrom: searchValue.start, rangeTo: searchValue.end });
|
|
243
|
+
}
|
|
244
|
+
else if (Array.isArray(searchValue)) {
|
|
245
|
+
filters.push({ key: valueKey, values: searchValue });
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
248
|
+
// @ts-ignore
|
|
249
|
+
filters.push({ key: valueKey, values: [searchValue] });
|
|
250
|
+
}
|
|
251
|
+
});
|
|
252
|
+
return filters;
|
|
253
|
+
}
|
|
254
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", 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 }); }
|
|
255
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ObjectListComponent, selector: "valtimo-object-list", 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<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-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 */.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", "inputDisabled"], outputs: ["doSearch"] }, { kind: "directive", type: i7.ValtimoCdsModalDirective, selector: "[valtimoCdsModal]" }, { kind: "pipe", type: i8.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
|
|
256
|
+
}
|
|
257
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ObjectListComponent, decorators: [{
|
|
258
|
+
type: Component,
|
|
259
|
+
args: [{ selector: 'valtimo-object-list', 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<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-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 */.loading-icon{display:flex;justify-content:center}\n"] }]
|
|
260
|
+
}], 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 }]; } });
|
|
261
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9vYmplY3Qvc3JjL2xpYi9jb21wb25lbnRzL29iamVjdC1saXN0L29iamVjdC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vb2JqZWN0L3NyYy9saWIvY29tcG9uZW50cy9vYmplY3QtbGlzdC9vYmplY3QtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixHQUFHLEVBRUgsRUFBRSxFQUNGLFNBQVMsRUFDVCxVQUFVLEdBQ1gsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBSzFFLE9BQU8sRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7Ozs7O0FBVy9ELE1BQU0sT0FBTyxtQkFBbUI7SUE0QzlCLGlCQUFpQixDQUFDLGFBQWE7UUFDN0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDN0QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFDLEdBQUcsV0FBVyxFQUFFLElBQUksRUFBRSxhQUFhLEdBQUcsQ0FBQyxFQUFDLENBQUMsQ0FBQztRQUMzRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFF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QUN2RjtpQkFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQ3JDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUMsQ0FBQyxDQUFDO2FBQ3BEO2lCQUFNO2dCQUNMLGFBQWE7Z0JBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUMsQ0FBQyxDQUFDO2FBQ3REO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDOytHQS9UVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiwyREM1Q2hDLGd2SkFrSkE7OzRGRHRHYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZmlsdGVyLFxuICBtYXAsXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBzdGFydFdpdGgsXG4gIHRocm93RXJyb3IsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBmaW5hbGl6ZSwgc3dpdGNoTWFwLCB0YWtlLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge09iamVjdFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL29iamVjdC5zZXJ2aWNlJztcbmltcG9ydCB7TGlzdEZpZWxkLCBQYWdlVGl0bGVTZXJ2aWNlLCBQYWdpbmF0aW9ufSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7Q29sdW1uVHlwZSwgRm9ybVR5cGV9IGZyb20gJy4uLy4uL21vZGVscy9vYmplY3QubW9kZWwnO1xuaW1wb3J0IHtUb2FzdHJTZXJ2aWNlfSBmcm9tICduZ3gtdG9hc3RyJztcbmltcG9ydCB7T2JqZWN0Q29sdW1uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvb2JqZWN0LWNvbHVtbi5zZXJ2aWNlJztcbmltcG9ydCB7T2JqZWN0TWFuYWdlbWVudFNlcnZpY2UsIFNlYXJjaENvbHVtbn0gZnJvbSAnQHZhbHRpbW8vb2JqZWN0LW1hbmFnZW1lbnQnO1xuaW1wb3J0IHtTZWFyY2hGaWVsZCwgU2VhcmNoRmllbGRWYWx1ZXMsIFNlYXJjaEZpbHRlciwgU2VhcmNoRmlsdGVyUmFuZ2V9IGZyb20gJ0B2YWx0aW1vL2NvbmZpZyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tb2JqZWN0LWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vb2JqZWN0LWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vYmplY3QtbGlzdC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBPYmplY3RMaXN0Q29tcG9uZW50IHtcbiAgcmVhZG9ubHkgbG9hZGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICByZWFkb25seSBzdWJtaXNzaW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55Pih7fSk7XG4gIHJlYWRvbmx5IGZvcm1WYWxpZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgc2hvd01vZGFsJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBkaXNhYmxlSW5wdXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGNsZWFyRm9ybSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgY29sdW1uVHlwZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENvbHVtblR5cGU+KENvbHVtblR5cGUuREVGQVVMVCk7XG5cbiAgcmVhZG9ubHkgb2JqZWN0TWFuYWdlbWVudElkJDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGhpcy5yb3V0ZS5wYXJhbXMucGlwZShcbiAgICBtYXAocGFyYW1zID0+IHBhcmFtcy5vYmplY3RNYW5hZ2VtZW50SWQpLFxuICAgIHRhcChvYmplY3RNYW5hZ2VtZW50SWQgPT4ge1xuICAgICAgaWYgKCF0aGlzLl9zZXR0aW5nUGFnZVRpdGxlICYmIG9iamVjdE1hbmFnZW1lbnRJZCkge1xuICAgICAgICB0aGlzLl9zZXR0aW5nUGFnZVRpdGxlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5vYmplY3RNYW5hZ2VtZW50U2VydmljZS5nZXRPYmplY3RCeUlkKG9iamVjdE1hbmFnZW1lbnRJZCkuc3Vic2NyaWJlKG9iamVjdFR5cGUgPT4ge1xuICAgICAgICAgIGlmIChvYmplY3RUeXBlLnRpdGxlKSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2VUaXRsZVNlcnZpY2Uuc2V0Q3VzdG9tUGFnZVRpdGxlKG9iamVjdFR5cGUudGl0bGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSlcbiAgKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHJlZnJlc2hPYmplY3RMaXN0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVsbD4obnVsbCk7XG5cbiAgcmVhZG9ubHkgY3VycmVudFBhZ2VBbmRTaXplJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UGFydGlhbDxQYWdpbmF0aW9uPj4oe1xuICAgIHBhZ2U6IDAsXG4gICAgc2l6ZTogMTAsXG4gIH0pO1xuXG4gIHJlYWRvbmx5IHBhZ2VTaXplcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFBhcnRpYWw8UGFnaW5hdGlvbj4+KHtcbiAgICBjb2xsZWN0aW9uU2l6ZTogMCxcbiAgfSk7XG5cbiAgcmVhZG9ubHkgcGFnaW5hdGlvbiQ6IE9ic2VydmFibGU8UGFnaW5hdGlvbj4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmN1cnJlbnRQYWdlQW5kU2l6ZSQsXG4gICAgdGhpcy5wYWdlU2l6ZXMkLFxuICBdKS5waXBlKFxuICAgIG1hcChcbiAgICAgIChbY3VycmVudFBhZ2UsIHNpemVzXSkgPT5cbiAgICAgICAgKHsuLi5jdXJyZW50UGFnZSwgLi4uc2l6ZXMsIHBhZ2U6IGN1cnJlbnRQYWdlLnBhZ2UgKyAxfSkgYXMgUGFnaW5hdGlvblxuICAgIClcbiAgKTtcblxuICBwYWdpbmF0aW9uQ2xpY2tlZChuZXdQYWdlTnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50UGFnZUFuZFNpemUkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGN1cnJlbnRQYWdlID0+IHtcbiAgICAgIHRoaXMuY3VycmVudFBhZ2VBbmRTaXplJC5uZXh0KHsuLi5jdXJyZW50UGFnZSwgcGFnZTogbmV3UGFnZU51bWJlciAtIDF9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHBhZ2luYXRpb25TZXQobmV3UGFnZVNpemUpOiB2b2lkIHtcbiAgICBpZiAobmV3UGFnZVNpemUpIHtcbiAgICAgIHRoaXMuY3VycmVudFBhZ2VBbmRTaXplJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShjdXJyZW50UGFnZSA9PiB7XG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2VBbmRTaXplJC5uZXh0KHsuLi5jdXJyZW50UGFnZSwgc2l6ZTogbmV3UGFnZVNpemV9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2VhcmNoRmllbGRWYWx1ZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTZWFyY2hGaWVsZFZhbHVlcz4oe30pO1xuICByZWFkb25seSBvYmplY3RTZWFyY2hGaWVsZHMkOiBPYnNlcnZhYmxlPEFycmF5PFNlYXJjaEZpZWxkPiB8IG51bGw+ID1cbiAgICB0aGlzLm9iamVjdE1hbmFnZW1lbnRJZCQucGlwZShcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBzd2l0Y2hNYXAob2JqZWN0TWFuYWdlbWVudElkID0+XG4gICAgICAgIHRoaXMub2JqZWN0TWFuYWdlbWVudFNlcnZpY2UuZ2V0U2VhcmNoRmllbGQob2JqZWN0TWFuYWdlbWVudElkKVxuICAgICAgKSxcbiAgICAgIG1hcChzZWFyY2hGaWVsZHMgPT5cbiAgICAgICAgc2VhcmNoRmllbGRzLm1hcChzZWFyY2hGaWVsZCA9PiB7XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIHNlYXJjaEZpZWxkLmRhdGFUeXBlID0gc2VhcmNoRmllbGQuZGF0YVR5cGUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgc2VhcmNoRmllbGQuZmllbGRUeXBlID0gc2VhcmNoRmllbGQuZmllbGRUeXBlLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgcmV0dXJuIHNlYXJjaEZpZWxkO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICk7XG5cbiAgcmVhZG9ubHkgb2JqZWN0Q29uZmlndXJhdGlvbiQ6IE9ic2VydmFibGU8QXJyYXk8YW55Pj4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLm9iamVjdE1hbmFnZW1lbnRJZCQsXG4gICAgdGhpcy5jdXJyZW50UGFnZUFuZFNpemUkLFxuICAgIHRoaXMuY29sdW1uVHlwZSQsXG4gICAgdGhpcy5zZWFyY2hGaWVsZFZhbHVlcyQsXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbSgna2V5JyksXG4gICAgdGhpcy5yZWZyZXNoT2JqZWN0TGlzdCQsXG4gIF0pLnBpcGUoXG4gICAgc3dpdGNoTWFwKChbb2JqZWN0TWFuYWdlbWVudElkLCBjdXJyZW50UGFnZSwgY29sdW1uVHlwZSwgc2VhcmNoRmllbGRWYWx1ZXNdKSA9PiB7XG4gICAgICBjb25zdCBoYW5kbGVFcnJvciA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5kaXNhYmxlSW5wdXQoKTtcbiAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgfTtcblxuICAgICAgaWYgKGNvbHVtblR5cGUgPT09IENvbHVtblR5cGUuQ1VTVE9NKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9iamVjdFNlcnZpY2VcbiAgICAgICAgICAucG9zdE9iamVjdHNCeU9iamVjdE1hbmFnZW1lbnRJZChcbiAgICAgICAgICAgIG9iamVjdE1hbmFnZW1lbnRJZCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcGFnZTogY3VycmVudFBhZ2UucGFnZSxcbiAgICAgICAgICAgICAgc2l6ZTogY3VycmVudFBhZ2Uuc2l6ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBPYmplY3Qua2V5cyhzZWFyY2hGaWVsZFZhbHVlcykubGVuZ3RoID4gMFxuICAgICAgICAgICAgICA/IHtvdGhlckZpbHRlcnM6IHRoaXMubWFwU2VhcmNoVmFsdWVzVG9GaWx0ZXJzKHNlYXJjaEZpZWxkVmFsdWVzKX1cbiAgICAgICAgICAgICAgOiB7fVxuICAgICAgICAgIClcbiAgICAgICAgICAucGlwZShjYXRjaEVycm9yKCgpID0+IGhhbmRsZUVycm9yKCkpKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMub2JqZWN0U2VydmljZVxuICAgICAgICAuZ2V0T2JqZWN0c0J5T2JqZWN0TWFuYWdlbWVudElkKG9iamVjdE1hbmFnZW1lbnRJZCwge1xuICAgICAgICAgIHBhZ2U6IGN1cnJlbnRQYWdlLnBhZ2UsXG4gICAgICAgICAgc2l6ZTogY3VycmVudFBhZ2Uuc2l6ZSxcbiAgICAgICAgfSlcbiAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcigoKSA9PiBoYW5kbGVFcnJvcigpKSk7XG4gICAgfSksXG4gICAgdGFwKGluc3RhbmNlUmVzID0+IHtcbiAgICAgIGlmIChpbnN0YW5jZVJlcyAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMucGFnZVNpemVzJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShzaXplcyA9PiB7XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIHRoaXMucGFnZVNpemVzJC5uZXh0KHsuLi5zaXplcywgY29sbGVjdGlvblNpemU6IGluc3RhbmNlUmVzLnRvdGFsRWxlbWVudHN9KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSksXG4gICAgbWFwKFxuICAgICAgcmVzID0+XG4gICAgICAgIHJlcz8uY29udGVudD8ubWFwKFxuICAgICAgICAgIHJlY29yZCA9PlxuICAgICAgICAgICAgcmVjb3JkPy5pdGVtcz8ucmVkdWNlKFxuICAgICAgICAgICAgICAob2JqLCBpdGVtKSA9PiBPYmplY3QuYXNzaWduKG9iaiwge29iamVjdElkOiByZWNvcmQuaWR9LCB7W2l0ZW0ua2V5XTogaXRlbS52YWx1ZX0pLFxuICAgICAgICAgICAgICB7fVxuICAgICAgICAgICAgKVxuICAgICAgICApXG4gICAgKSxcbiAgICB0YXAoKCkgPT4gdGhpcy5sb2FkaW5nJC5uZXh0KGZhbHNlKSlcbiAgKTtcblxuICByZWFkb25seSBmb3JtRGVmaW5pdGlvbiQ6IE9ic2VydmFibGU8YW55PiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMub2JqZWN0TWFuYWdlbWVudElkJCxcbiAgICB0aGlzLmNsZWFyRm9ybSQsXG4gIF0pLnBpcGUoXG4gICAgc3dpdGNoTWFwKChbb2JqZWN0TWFuYWdlbWVudElkXSkgPT5cbiAgICAgIHRoaXMub2JqZWN0U2VydmljZVxuICAgICAgICAuZ2V0UHJlZmlsbGVkT2JqZWN0RnJvbU9iamVjdFVybCh7b2JqZWN0TWFuYWdlbWVudElkLCBmb3JtVHlwZTogRm9ybVR5cGUuRURJVEZPUk19KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlUmV0cmlldmluZ0Zvcm1FcnJvcihlcnJvcik7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVJbnB1dCgpO1xuICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpLnBpcGUoc3RhcnRXaXRoKG51bGwpKTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgKSxcbiAgICBtYXAocmVzID0+IHtcbiAgICAgIGlmIChyZXMgIT0gbnVsbCkge1xuICAgICAgICB0aGlzLmVuYWJsZUlucHV0KCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXM/LmZvcm1EZWZpbml0aW9uO1xuICAgIH0pLFxuICAgIHN0YXJ0V2l0aChudWxsKSxcbiAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLmxvYWRpbmckLm5leHQoZmFsc2UpKVxuICApO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY29sdW1ucyQ6IE9ic2VydmFibGU8QXJyYXk8U2VhcmNoQ29sdW1uPj4gPSB0aGlzLm9iamVjdE1hbmFnZW1lbnRJZCQucGlwZShcbiAgICBzd2l0Y2hNYXAob2JqZWN0TWFuYWdlbWVudElkID0+IHRoaXMub2JqZWN0Q29sdW1uU2VydmljZS5nZXRPYmplY3RDb2x1bW5zKG9iamVjdE1hbmFnZW1lbnRJZCkpLFxuICAgIG1hcChyZXMgPT4gcmVzKVxuICApO1xuXG4gIHJlYWRvbmx5IGZpZWxkcyQ6IE9ic2VydmFibGU8QXJyYXk8TGlzdEZpZWxkPj4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmNvbHVtbnMkLFxuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5zdHJlYW0oJ2tleScpLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW2NvbHVtbnNdKSA9PiB7XG4gICAgICBpZiAoY29sdW1ucz8ubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLmNvbHVtblR5cGUkLm5leHQoQ29sdW1uVHlwZS5DVVNUT00pO1xuXG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgLi4uY29sdW1ucy5tYXAoY29sdW1uID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zbGF0aW9uS2V5ID0gYGZpZWxkTGFiZWxzLiR7Y29sdW1uLnRyYW5zbGF0aW9uS2V5fWA7XG4gICAgICAgICAgICBjb25zdCB0cmFuc2xhdGlvbiA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRyYW5zbGF0aW9uS2V5KTtcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkVHJhbnNsYXRpb24gPSB0cmFuc2xhdGlvbiAhPT0gdHJhbnNsYXRpb25LZXkgJiYgdHJhbnNsYXRpb247XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBrZXk6IGNvbHVtbi50cmFuc2xhdGlvbktleSxcbiAgICAgICAgICAgICAgbGFiZWw6IGNvbHVtbi50aXRsZSB8fCB2YWxpZFRyYW5zbGF0aW9uIHx8IGNvbHVtbi50cmFuc2xhdGlvbktleSxcbiAgICAgICAgICAgICAgc29ydGFibGU6IGNvbHVtbi5zb3J0YWJsZSxcbiAgICAgICAgICAgICAgLi4uKGNvbHVtbi52aWV3VHlwZSAmJiB7dmlld1R5cGU6IGNvbHVtbi52aWV3VHlwZSB8fCAnJ30pLFxuICAgICAgICAgICAgICAuLi4oY29sdW1uLmVudW0gJiYge2VudW06IGNvbHVtbi5lbnVtfSksXG4gICAgICAgICAgICAgIC4uLihjb2x1bW4uZm9ybWF0ICYmIHtmb3JtYXQ6IGNvbHVtbi5mb3JtYXR9KSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSksXG4gICAgICAgIF07XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY29sdW1uVHlwZSQubmV4dChDb2x1bW5UeXBlLkRFRkFVTFQpO1xuICAgICAgcmV0dXJuIHRoaXMuc2V0RGVmYXVsdEZpZWxkcygpO1xuICAgIH0pXG4gICk7XG5cbiAgcHJpdmF0ZSBfc2V0dGluZ1BhZ2VUaXRsZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgb2JqZWN0U2VydmljZTogT2JqZWN0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9iamVjdENvbHVtblNlcnZpY2U6IE9iamVjdENvbHVtblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBvYmplY3RNYW5hZ2VtZW50U2VydmljZTogT2JqZWN0TWFuYWdlbWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0b2FzdHI6IFRvYXN0clNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwYWdlVGl0bGVTZXJ2aWNlOiBQYWdlVGl0bGVTZXJ2aWNlXG4gICkge31cblxuICBvcGVuTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93TW9kYWwkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBjbG9zZU1vZGFsKCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd01vZGFsJC5uZXh0KGZhbHNlKTtcbiAgICB0aGlzLmNsZWFyRm9ybSQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIG9uRm9ybWlvQ2hhbmdlKGZvcm1pbyk6IHZvaWQge1xuICAgIGlmIChmb3JtaW8uZGF0YSAhPSBudWxsKSB7XG4gICAgICB0aGlzLnN1Ym1pc3Npb24kLm5leHQoZm9ybWlvLmRhdGEpO1xuICAgICAgdGhpcy5mb3JtVmFsaWQkLm5leHQoZm9ybWlvLmlzVmFsaWQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhZGRPYmplY3QoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlSW5wdXQoKTtcbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLm9iamVjdE1hbmFnZW1lbnRJZCQsIHRoaXMuc3VibWlzc2lvbiQsIHRoaXMuZm9ybVZhbGlkJF0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgZmlsdGVyKChbb2JqZWN0TWFuYWdlbWVudElkLCBzdWJtaXNzaW9uLCBmb3JtVmFsaWRdKSA9PiBmb3JtVmFsaWQpLFxuICAgICAgICBzd2l0Y2hNYXAoKFtvYmplY3RNYW5hZ2VtZW50SWQsIHN1Ym1pc3Npb25dKSA9PlxuICAgICAgICAgIHRoaXMub2JqZWN0U2VydmljZVxuICAgICAgICAgICAgLmNyZWF0ZU9iamVjdChcbiAgICAgICAgICAgICAge29iamVjdE1hbmFnZW1lbnRJZH0sXG4gICAgICAgICAgICAgIHsuLi50aGlzLm9iamVjdFNlcnZpY2UucmVtb3ZlRW1wdHlTdHJpbmdWYWx1ZXNGcm9tU3VibWlzc2lvbihzdWJtaXNzaW9uKX1cbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVDcmVhdGVPYmplY3RFcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5lbmFibGVJbnB1dCgpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLmNsb3NlTW9kYWwoKTtcbiAgICAgICAgICB0aGlzLnJlZnJlc2hPYmplY3RMaXN0KCk7XG4gICAgICAgICAgdGhpcy5jbGVhckZvcm0kLm5leHQodHJ1ZSk7XG4gICAgICAgICAgdGhpcy50b2FzdHIuc3VjY2Vzcyh0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdvYmplY3QubWVzc2FnZXMub2JqZWN0Q3JlYXRlZCcpKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9XG5cbiAgcmVkaXJlY3RUb0RldGFpbHMocmVjb3JkKTogdm9pZCB7XG4gICAgY29uc3Qgb2JqZWN0SWQgPSByZWNvcmQub2JqZWN0VXJsID8gcmVjb3JkLm9iamVjdFVybC5zcGxpdCgnLycpLnBvcCgpIDogcmVjb3JkLm9iamVjdElkO1xuICAgIHRoaXMub2JqZWN0TWFuYWdlbWVudElkJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShjb25maWd1cmF0aW9uSWQgPT4ge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2Avb2JqZWN0cy8ke2NvbmZpZ3VyYXRpb25JZH0vJHtvYmplY3RJZH1gXSk7XG4gICAgfSk7XG4gIH1cblxuICBzZWFyY2goc2VhcmNoRmllbGRWYWx1ZXM6IFNlYXJjaEZpZWxkVmFsdWVzKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hGaWVsZFZhbHVlcyQubmV4dChzZWFyY2hGaWVsZFZhbHVlcyB8fCB7fSk7XG4gIH1cblxuICBwcml2YXRlIHJlZnJlc2hPYmplY3RMaXN0KCk6IHZvaWQge1xuICAgIHRoaXMucmVmcmVzaE9iamVjdExpc3QkLm5leHQobnVsbCk7XG4gIH1cblxuICBwcml2YXRlIGRpc2FibGVJbnB1dCgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVJbnB1dCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgZW5hYmxlSW5wdXQoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlSW5wdXQkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXREZWZhdWx0RmllbGRzKCkge1xuICAgIGNvbnN0IGtleXM6IEFycmF5PHN0cmluZz4gPSBbJ3JlY29yZEluZGV4JywgJ29iamVjdFVybCddO1xuICAgIHJldHVybiBrZXlzLm1hcChrZXkgPT4gKHtcbiAgICAgIGxhYmVsOiBgJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChgb2JqZWN0LmxhYmVscy4ke2tleX1gKX1gLFxuICAgICAga2V5LFxuICAgICAgc29ydGFibGU6IHRydWUsXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVJldHJpZXZpbmdGb3JtRXJyb3IoZXJyb3I6IGFueSkge1xuICAgIHRoaXMudG9hc3RyLmVycm9yKHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ29iamVjdC5tZXNzYWdlcy5vYmplY3RSZXRyaWV2aW5nRm9ybUVycm9yJykpO1xuICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQ3JlYXRlT2JqZWN0RXJyb3IoZXJyb3I6IGFueSkge1xuICAgIHRoaXMudG9hc3RyLmVycm9yKHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ29iamVjdC5tZXNzYWdlcy5vYmplY3RDcmVhdGlvbkVycm9yJykpO1xuICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgfVxuXG4gIHByaXZhdGUgbWFwU2VhcmNoVmFsdWVzVG9GaWx0ZXJzKFxuICAgIHZhbHVlczogU2VhcmNoRmllbGRWYWx1ZXNcbiAgKTogQXJyYXk8U2VhcmNoRmlsdGVyIHwgU2VhcmNoRmlsdGVyUmFuZ2U+IHtcbiAgICBjb25zdCBmaWx0ZXJzOiBBcnJheTxTZWFyY2hGaWx0ZXIgfCBTZWFyY2hGaWx0ZXJSYW5nZT4gPSBbXTtcblxuICAgIE9iamVjdC5rZXlzKHZhbHVlcykuZm9yRWFjaCh2YWx1ZUtleSA9PiB7XG4gICAgICBjb25zdCBzZWFyY2hWYWx1ZSA9IHZhbHVlc1t2YWx1ZUtleV0gYXMgYW55O1xuICAgICAgaWYgKHNlYXJjaFZhbHVlLnN0YXJ0KSB7XG4gICAgICAgIGZpbHRlcnMucHVzaCh7a2V5OiB2YWx1ZUtleSwgcmFuZ2VGcm9tOiBzZWFyY2hWYWx1ZS5zdGFydCwgcmFuZ2VUbzogc2VhcmNoVmFsdWUuZW5kfSk7XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoc2VhcmNoVmFsdWUpKSB7XG4gICAgICAgIGZpbHRlcnMucHVzaCh7a2V5OiB2YWx1ZUtleSwgdmFsdWVzOiBzZWFyY2hWYWx1ZX0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBmaWx0ZXJzLnB1c2goe2tleTogdmFsdWVLZXksIHZhbHVlczogW3NlYXJjaFZhbHVlXX0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZpbHRlcnM7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+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,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright 2015-
|
|
2
|
+
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
3
3
|
*
|
|
4
4
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
5
|
* you may not use this file except in compliance with the License.
|
|
@@ -24,4 +24,4 @@ var ColumnType;
|
|
|
24
24
|
ColumnType["CUSTOM"] = "CUSTOM";
|
|
25
25
|
})(ColumnType || (ColumnType = {}));
|
|
26
26
|
export { FormType, ColumnType };
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9vYmplY3Qvc3JjL2xpYi9tb2RlbHMvb2JqZWN0Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBZ0JILElBQUssUUFHSjtBQUhELFdBQUssUUFBUTtJQUNYLCtCQUFtQixDQUFBO0lBQ25CLGlDQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFISSxRQUFRLEtBQVIsUUFBUSxRQUdaO0FBRUQsSUFBSyxVQUdKO0FBSEQsV0FBSyxVQUFVO0lBQ2IsaUNBQW1CLENBQUE7SUFDbkIsK0JBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUhJLFVBQVUsS0FBVixVQUFVLFFBR2Q7QUFFRCxPQUFPLEVBQXFELFFBQVEsRUFBRSxVQUFVLEVBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmludGVyZmFjZSBPYmplY3RDb25maWd1cmF0aW9uIHtcbiAgY29udGVudDogT2JqZWN0Q29uZmlndXJhdGlvbkl0ZW1bXTtcbn1cblxuaW50ZXJmYWNlIE9iamVjdENvbmZpZ3VyYXRpb25JdGVtIHtcbiAgaWQ6IHN0cmluZztcbiAgaXRlbXM6IEl0ZW1bXTtcbn1cblxuaW50ZXJmYWNlIEl0ZW0ge1xuICBrZXk6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbn1cblxuZW51bSBGb3JtVHlwZSB7XG4gIFNVTU1BUlkgPSAnU1VNTUFSWScsXG4gIEVESVRGT1JNID0gJ0VESVRGT1JNJyxcbn1cblxuZW51bSBDb2x1bW5UeXBlIHtcbiAgREVGQVVMVCA9ICdERUZBVUxUJyxcbiAgQ1VTVE9NID0gJ0NVU1RPTScsXG59XG5cbmV4cG9ydCB7T2JqZWN0Q29uZmlndXJhdGlvbiwgT2JqZWN0Q29uZmlndXJhdGlvbkl0ZW0sIEl0ZW0sIEZvcm1UeXBlLCBDb2x1bW5UeXBlfTtcbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright 2015-
|
|
2
|
+
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
3
3
|
*
|
|
4
4
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
5
|
* you may not use this file except in compliance with the License.
|
|
@@ -37,11 +37,11 @@ const routes = [
|
|
|
37
37
|
},
|
|
38
38
|
];
|
|
39
39
|
export class ObjectRoutingModule {
|
|
40
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ObjectRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
41
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ObjectRoutingModule, imports: [CommonModule, i1.RouterModule], exports: [RouterModule] }); }
|
|
42
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ObjectRoutingModule, imports: [CommonModule, RouterModule.forChild(routes), RouterModule] }); }
|
|
40
43
|
}
|
|
41
|
-
|
|
42
|
-
ObjectRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ObjectRoutingModule, imports: [CommonModule, i1.RouterModule], exports: [RouterModule] });
|
|
43
|
-
ObjectRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectRoutingModule, imports: [CommonModule, RouterModule.forChild(routes), RouterModule] });
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectRoutingModule, decorators: [{
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ObjectRoutingModule, decorators: [{
|
|
45
45
|
type: NgModule,
|
|
46
46
|
args: [{
|
|
47
47
|
imports: [CommonModule, RouterModule.forChild(routes)],
|
|
@@ -49,4 +49,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
49
49
|
declarations: [],
|
|
50
50
|
}]
|
|
51
51
|
}] });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9vYmplY3Qvc3JjL2xpYi9vYmplY3Qtcm91dGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQ25GLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLHdFQUF3RSxDQUFDOzs7QUFFdEgsTUFBTSxNQUFNLEdBQVc7SUFDckI7UUFDRSxJQUFJLEVBQUUsNkJBQTZCO1FBQ25DLFdBQVcsRUFBRSxDQUFDLGdCQUFnQixDQUFDO1FBQy9CLFNBQVMsRUFBRSxtQkFBbUI7UUFDOUIsSUFBSSxFQUFFLEVBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFDO0tBQ3BFO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsdUNBQXVDO1FBQzdDLFdBQVcsRUFBRSxDQUFDLGdCQUFnQixDQUFDO1FBQy9CLFNBQVMsRUFBRSw4QkFBOEI7UUFDekMsSUFBSSxFQUFFLEVBQUMsS0FBSyxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUM7S0FDM0U7Q0FDRixDQUFDO0FBT0YsTUFBTSxPQUFPLG1CQUFtQjsrR0FBbkIsbUJBQW1CO2dIQUFuQixtQkFBbUIsWUFKcEIsWUFBWSw4QkFDWixZQUFZO2dIQUdYLG1CQUFtQixZQUpwQixZQUFZLEVBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFDM0MsWUFBWTs7NEZBR1gsbUJBQW1CO2tCQUwvQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN0RCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFlBQVksRUFBRSxFQUFFO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXJNb2R1bGUsIFJvdXRlc30gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtBdXRoR3VhcmRTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9zZWN1cml0eSc7XG5pbXBvcnQge1JPTEVfVVNFUn0gZnJvbSAnQHZhbHRpbW8vY29uZmlnJztcbmltcG9ydCB7T2JqZWN0TGlzdENvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL29iamVjdC1saXN0L29iamVjdC1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQge09iamVjdERldGFpbENvbnRhaW5lckNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL29iamVjdC1kZXRhaWwtY29udGFpbmVyL29iamVjdC1kZXRhaWwtY29udGFpbmVyLmNvbXBvbmVudCc7XG5cbmNvbnN0IHJvdXRlczogUm91dGVzID0gW1xuICB7XG4gICAgcGF0aDogJ29iamVjdHMvOm9iamVjdE1hbmFnZW1lbnRJZCcsXG4gICAgY2FuQWN0aXZhdGU6IFtBdXRoR3VhcmRTZXJ2aWNlXSxcbiAgICBjb21wb25lbnQ6IE9iamVjdExpc3RDb21wb25lbnQsXG4gICAgZGF0YToge3RpdGxlOiAnT2JqZWN0cycsIHJvbGVzOiBbUk9MRV9VU0VSXSwgY3VzdG9tUGFnZVRpdGxlOiB0cnVlfSxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdvYmplY3RzLzpvYmplY3RNYW5hZ2VtZW50SWQvOm9iamVjdElkJyxcbiAgICBjYW5BY3RpdmF0ZTogW0F1dGhHdWFyZFNlcnZpY2VdLFxuICAgIGNvbXBvbmVudDogT2JqZWN0RGV0YWlsQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIGRhdGE6IHt0aXRsZTogJ09iamVjdCBkZXRhaWxzJywgcm9sZXM6IFtST0xFX1VTRVJdLCBjdXN0b21QYWdlVGl0bGU6IHRydWV9LFxuICB9LFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUm91dGVyTW9kdWxlLmZvckNoaWxkKHJvdXRlcyldLFxuICBleHBvcnRzOiBbUm91dGVyTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgT2JqZWN0Um91dGluZ01vZHVsZSB7fVxuIl19
|
|
@@ -0,0 +1,92 @@
|
|
|
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 { 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, TooltipIconModule, } 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 * as i0 from "@angular/core";
|
|
27
|
+
export class ObjectModule {
|
|
28
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ObjectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
29
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ObjectModule, declarations: [ObjectListComponent, ObjectDetailContainerComponent, ObjectDetailComponent], imports: [CommonModule,
|
|
30
|
+
ObjectRoutingModule,
|
|
31
|
+
TranslateModule,
|
|
32
|
+
AsyncPipe,
|
|
33
|
+
WidgetModule,
|
|
34
|
+
ListModule,
|
|
35
|
+
ButtonModule,
|
|
36
|
+
IconModule,
|
|
37
|
+
SpinnerModule,
|
|
38
|
+
LoadingModule,
|
|
39
|
+
FormIoModule,
|
|
40
|
+
ModalModule,
|
|
41
|
+
ReactiveFormsModule,
|
|
42
|
+
InputModule,
|
|
43
|
+
TooltipIconModule,
|
|
44
|
+
ConfirmationModalModule,
|
|
45
|
+
SearchFieldsModule,
|
|
46
|
+
ValtimoCdsModalDirectiveModule] }); }
|
|
47
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ObjectModule, imports: [CommonModule,
|
|
48
|
+
ObjectRoutingModule,
|
|
49
|
+
TranslateModule,
|
|
50
|
+
WidgetModule,
|
|
51
|
+
ListModule,
|
|
52
|
+
ButtonModule,
|
|
53
|
+
IconModule,
|
|
54
|
+
SpinnerModule,
|
|
55
|
+
LoadingModule,
|
|
56
|
+
FormIoModule,
|
|
57
|
+
ModalModule,
|
|
58
|
+
ReactiveFormsModule,
|
|
59
|
+
InputModule,
|
|
60
|
+
TooltipIconModule,
|
|
61
|
+
ConfirmationModalModule,
|
|
62
|
+
SearchFieldsModule,
|
|
63
|
+
ValtimoCdsModalDirectiveModule] }); }
|
|
64
|
+
}
|
|
65
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ObjectModule, decorators: [{
|
|
66
|
+
type: NgModule,
|
|
67
|
+
args: [{
|
|
68
|
+
declarations: [ObjectListComponent, ObjectDetailContainerComponent, ObjectDetailComponent],
|
|
69
|
+
imports: [
|
|
70
|
+
CommonModule,
|
|
71
|
+
ObjectRoutingModule,
|
|
72
|
+
TranslateModule,
|
|
73
|
+
AsyncPipe,
|
|
74
|
+
WidgetModule,
|
|
75
|
+
ListModule,
|
|
76
|
+
ButtonModule,
|
|
77
|
+
IconModule,
|
|
78
|
+
SpinnerModule,
|
|
79
|
+
LoadingModule,
|
|
80
|
+
FormIoModule,
|
|
81
|
+
ModalModule,
|
|
82
|
+
ReactiveFormsModule,
|
|
83
|
+
InputModule,
|
|
84
|
+
TooltipIconModule,
|
|
85
|
+
ConfirmationModalModule,
|
|
86
|
+
SearchFieldsModule,
|
|
87
|
+
ValtimoCdsModalDirectiveModule,
|
|
88
|
+
],
|
|
89
|
+
exports: [],
|
|
90
|
+
}]
|
|
91
|
+
}] });
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vb2JqZWN0L3NyYy9saWIvb2JqZWN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUFDbkYsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixZQUFZLEVBQ1osVUFBVSxFQUNWLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsOEJBQThCLEVBQzlCLFlBQVksRUFDWixpQkFBaUIsR0FDbEIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSx3RUFBd0UsQ0FBQztBQUN0SCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxpRkFBaUYsQ0FBQztBQUN0SCxPQUFPLEVBQ0wsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsYUFBYSxFQUNiLFdBQVcsR0FDWixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDOztBQTBCbkQsTUFBTSxPQUFPLFlBQVk7K0dBQVosWUFBWTtnSEFBWixZQUFZLGlCQXZCUixtQkFBbUIsRUFBRSw4QkFBOEIsRUFBRSxxQkFBcUIsYUFFdkYsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixlQUFlO1lBQ2YsU0FBUztZQUNULFlBQVk7WUFDWixVQUFVO1lBQ1YsWUFBWTtZQUNaLFVBQVU7WUFDVixhQUFhO1lBQ2IsYUFBYTtZQUNiLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLFdBQVc7WUFDWCxpQkFBaUI7WUFDakIsdUJBQXVCO1lBQ3ZCLGtCQUFrQjtZQUNsQiw4QkFBOEI7Z0hBSXJCLFlBQVksWUFyQnJCLFlBQVk7WUFDWixtQkFBbUI7WUFDbkIsZUFBZTtZQUVmLFlBQVk7WUFDWixVQUFVO1lBQ1YsWUFBWTtZQUNaLFVBQVU7WUFDVixhQUFhO1lBQ2IsYUFBYTtZQUNiLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLFdBQVc7WUFDWCxpQkFBaUI7WUFDakIsdUJBQXVCO1lBQ3ZCLGtCQUFrQjtZQUNsQiw4QkFBOEI7OzRGQUlyQixZQUFZO2tCQXhCeEIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSw4QkFBOEIsRUFBRSxxQkFBcUIsQ0FBQztvQkFDMUYsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLFNBQVM7d0JBQ1QsWUFBWTt3QkFDWixVQUFVO3dCQUNWLFlBQVk7d0JBQ1osVUFBVTt3QkFDVixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIsa0JBQWtCO3dCQUNsQiw4QkFBOEI7cUJBQy9CO29CQUNELE9BQU8sRUFBRSxFQUFFO2lCQUNaIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09iamVjdFJvdXRpbmdNb2R1bGV9IGZyb20gJy4vb2JqZWN0LXJvdXRpbmcubW9kdWxlJztcbmltcG9ydCB7T2JqZWN0TGlzdENvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL29iamVjdC1saXN0L29iamVjdC1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0FzeW5jUGlwZSwgQ29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29uZmlybWF0aW9uTW9kYWxNb2R1bGUsXG4gIEZvcm1Jb01vZHVsZSxcbiAgTGlzdE1vZHVsZSxcbiAgU2VhcmNoRmllbGRzTW9kdWxlLFxuICBTcGlubmVyTW9kdWxlLFxuICBWYWx0aW1vQ2RzTW9kYWxEaXJlY3RpdmVNb2R1bGUsXG4gIFdpZGdldE1vZHVsZSxcbiAgVG9vbHRpcEljb25Nb2R1bGUsXG59IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtPYmplY3REZXRhaWxDb250YWluZXJDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9vYmplY3QtZGV0YWlsLWNvbnRhaW5lci9vYmplY3QtZGV0YWlsLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHtPYmplY3REZXRhaWxDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9vYmplY3QtZGV0YWlsLWNvbnRhaW5lci90YWJzL29iamVjdC1kZXRhaWwvb2JqZWN0LWRldGFpbC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQnV0dG9uTW9kdWxlLFxuICBJY29uTW9kdWxlLFxuICBJbnB1dE1vZHVsZSxcbiAgTG9hZGluZ01vZHVsZSxcbiAgTW9kYWxNb2R1bGUsXG59IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuaW1wb3J0IHtSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW09iamVjdExpc3RDb21wb25lbnQsIE9iamVjdERldGFpbENvbnRhaW5lckNvbXBvbmVudCwgT2JqZWN0RGV0YWlsQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBPYmplY3RSb3V0aW5nTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBBc3luY1BpcGUsXG4gICAgV2lkZ2V0TW9kdWxlLFxuICAgIExpc3RNb2R1bGUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIEljb25Nb2R1bGUsXG4gICAgU3Bpbm5lck1vZHVsZSxcbiAgICBMb2FkaW5nTW9kdWxlLFxuICAgIEZvcm1Jb01vZHVsZSxcbiAgICBNb2RhbE1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIElucHV0TW9kdWxlLFxuICAgIFRvb2x0aXBJY29uTW9kdWxlLFxuICAgIENvbmZpcm1hdGlvbk1vZGFsTW9kdWxlLFxuICAgIFNlYXJjaEZpZWxkc01vZHVsZSxcbiAgICBWYWx0aW1vQ2RzTW9kYWxEaXJlY3RpdmVNb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBPYmplY3RNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,65 @@
|
|
|
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 { Injectable } from '@angular/core';
|
|
17
|
+
import { map } from 'rxjs';
|
|
18
|
+
import * as i0 from "@angular/core";
|
|
19
|
+
import * as i1 from "@valtimo/config";
|
|
20
|
+
import * as i2 from "@valtimo/object-management";
|
|
21
|
+
export class ObjectColumnService {
|
|
22
|
+
constructor(configService, objectManagementService) {
|
|
23
|
+
this.configService = configService;
|
|
24
|
+
this.objectManagementService = objectManagementService;
|
|
25
|
+
}
|
|
26
|
+
getObjectColumns(configurationId) {
|
|
27
|
+
return this.objectManagementService
|
|
28
|
+
.getSearchList(configurationId)
|
|
29
|
+
.pipe(map(objectListColumns => objectListColumns &&
|
|
30
|
+
Array.isArray(objectListColumns) &&
|
|
31
|
+
objectListColumns.length > 0 &&
|
|
32
|
+
this.mapObjectListColumnsToSearchColumns(objectListColumns)));
|
|
33
|
+
}
|
|
34
|
+
mapObjectListColumnsToSearchColumns(searchListColumns) {
|
|
35
|
+
return searchListColumns.map(searchListColumn => ({
|
|
36
|
+
translationKey: searchListColumn.key,
|
|
37
|
+
sortable: searchListColumn.sortable,
|
|
38
|
+
defaultSort: searchListColumn.defaultSort,
|
|
39
|
+
viewType: this.getDisplayType(searchListColumn.displayType.type),
|
|
40
|
+
propertyName: searchListColumn.path,
|
|
41
|
+
...(searchListColumn.title && { title: searchListColumn.title }),
|
|
42
|
+
...(searchListColumn?.displayType?.displayTypeParameters?.enum && {
|
|
43
|
+
enum: searchListColumn.displayType.displayTypeParameters.enum,
|
|
44
|
+
}),
|
|
45
|
+
...(searchListColumn.displayType?.displayTypeParameters?.dateFormat && {
|
|
46
|
+
format: searchListColumn.displayType?.displayTypeParameters?.dateFormat,
|
|
47
|
+
}),
|
|
48
|
+
}));
|
|
49
|
+
}
|
|
50
|
+
getDisplayType(searchListColumnDisplayType) {
|
|
51
|
+
switch (searchListColumnDisplayType) {
|
|
52
|
+
default:
|
|
53
|
+
return searchListColumnDisplayType;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ObjectColumnService, deps: [{ token: i1.ConfigService }, { token: i2.ObjectManagementService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
57
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ObjectColumnService, providedIn: 'root' }); }
|
|
58
|
+
}
|
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ObjectColumnService, decorators: [{
|
|
60
|
+
type: Injectable,
|
|
61
|
+
args: [{
|
|
62
|
+
providedIn: 'root',
|
|
63
|
+
}]
|
|
64
|
+
}], ctorParameters: function () { return [{ type: i1.ConfigService }, { type: i2.ObjectManagementService }]; } });
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWNvbHVtbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9vYmplY3Qvc3JjL2xpYi9zZXJ2aWNlcy9vYmplY3QtY29sdW1uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBQyxHQUFHLEVBQWEsTUFBTSxNQUFNLENBQUM7Ozs7QUFNckMsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixZQUNtQixhQUE0QixFQUM1Qix1QkFBZ0Q7UUFEaEQsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtJQUNoRSxDQUFDO0lBRUosZ0JBQWdCLENBQUMsZUFBdUI7UUFDdEMsT0FBTyxJQUFJLENBQUMsdUJBQXVCO2FBQ2hDLGFBQWEsQ0FBQyxlQUFlLENBQUM7YUFDOUIsSUFBSSxDQUNILEdBQUcsQ0FDRCxpQkFBaUIsQ0FBQyxFQUFFLENBQ2xCLGlCQUFpQjtZQUNqQixLQUFLLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDO1lBQ2hDLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQzVCLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUM5RCxDQUNGLENBQUM7SUFDTixDQUFDO0lBRU8sbUNBQW1DLENBQ3pDLGlCQUEwQztRQUUxQyxPQUFPLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNoRCxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsR0FBRztZQUNwQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsUUFBUTtZQUNuQyxXQUFXLEVBQUUsZ0JBQWdCLENBQUMsV0FBVztZQUN6QyxRQUFRLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQ2hFLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJO1lBQ25DLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLElBQUksRUFBQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsS0FBSyxFQUFDLENBQUM7WUFDOUQsR0FBRyxDQUFDLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxxQkFBcUIsRUFBRSxJQUFJLElBQUk7Z0JBQ2hFLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQUMsSUFBVzthQUNyRSxDQUFDO1lBQ0YsR0FBRyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxxQkFBcUIsRUFBRSxVQUFVLElBQUk7Z0JBQ3JFLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUscUJBQXFCLEVBQUUsVUFBVTthQUN4RSxDQUFDO1NBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRU8sY0FBYyxDQUFDLDJCQUFtQztRQUN4RCxRQUFRLDJCQUEyQixFQUFFO1lBQ25DO2dCQUNFLE9BQU8sMkJBQTJCLENBQUM7U0FDdEM7SUFDSCxDQUFDOytHQTVDVSxtQkFBbUI7bUhBQW5CLG1CQUFtQixjQUZsQixNQUFNOzs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29uZmlnU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vY29uZmlnJztcbmltcG9ydCB7bWFwLCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7T2JqZWN0TWFuYWdlbWVudFNlcnZpY2UsIFNlYXJjaENvbHVtbiwgU2VhcmNoTGlzdENvbHVtbn0gZnJvbSAnQHZhbHRpbW8vb2JqZWN0LW1hbmFnZW1lbnQnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgT2JqZWN0Q29sdW1uU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9iamVjdE1hbmFnZW1lbnRTZXJ2aWNlOiBPYmplY3RNYW5hZ2VtZW50U2VydmljZVxuICApIHt9XG5cbiAgZ2V0T2JqZWN0Q29sdW1ucyhjb25maWd1cmF0aW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8QXJyYXk8U2VhcmNoQ29sdW1uPj4ge1xuICAgIHJldHVybiB0aGlzLm9iamVjdE1hbmFnZW1lbnRTZXJ2aWNlXG4gICAgICAuZ2V0U2VhcmNoTGlzdChjb25maWd1cmF0aW9uSWQpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKFxuICAgICAgICAgIG9iamVjdExpc3RDb2x1bW5zID0+XG4gICAgICAgICAgICBvYmplY3RMaXN0Q29sdW1ucyAmJlxuICAgICAgICAgICAgQXJyYXkuaXNBcnJheShvYmplY3RMaXN0Q29sdW1ucykgJiZcbiAgICAgICAgICAgIG9iamVjdExpc3RDb2x1bW5zLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICAgIHRoaXMubWFwT2JqZWN0TGlzdENvbHVtbnNUb1NlYXJjaENvbHVtbnMob2JqZWN0TGlzdENvbHVtbnMpXG4gICAgICAgIClcbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIG1hcE9iamVjdExpc3RDb2x1bW5zVG9TZWFyY2hDb2x1bW5zKFxuICAgIHNlYXJjaExpc3RDb2x1bW5zOiBBcnJheTxTZWFyY2hMaXN0Q29sdW1uPlxuICApOiBBcnJheTxTZWFyY2hDb2x1bW4+IHtcbiAgICByZXR1cm4gc2VhcmNoTGlzdENvbHVtbnMubWFwKHNlYXJjaExpc3RDb2x1bW4gPT4gKHtcbiAgICAgIHRyYW5zbGF0aW9uS2V5OiBzZWFyY2hMaXN0Q29sdW1uLmtleSxcbiAgICAgIHNvcnRhYmxlOiBzZWFyY2hMaXN0Q29sdW1uLnNvcnRhYmxlLFxuICAgICAgZGVmYXVsdFNvcnQ6IHNlYXJjaExpc3RDb2x1bW4uZGVmYXVsdFNvcnQsXG4gICAgICB2aWV3VHlwZTogdGhpcy5nZXREaXNwbGF5VHlwZShzZWFyY2hMaXN0Q29sdW1uLmRpc3BsYXlUeXBlLnR5cGUpLFxuICAgICAgcHJvcGVydHlOYW1lOiBzZWFyY2hMaXN0Q29sdW1uLnBhdGgsXG4gICAgICAuLi4oc2VhcmNoTGlzdENvbHVtbi50aXRsZSAmJiB7dGl0bGU6IHNlYXJjaExpc3RDb2x1bW4udGl0bGV9KSxcbiAgICAgIC4uLihzZWFyY2hMaXN0Q29sdW1uPy5kaXNwbGF5VHlwZT8uZGlzcGxheVR5cGVQYXJhbWV0ZXJzPy5lbnVtICYmIHtcbiAgICAgICAgZW51bTogc2VhcmNoTGlzdENvbHVtbi5kaXNwbGF5VHlwZS5kaXNwbGF5VHlwZVBhcmFtZXRlcnMuZW51bSBhcyBhbnksXG4gICAgICB9KSxcbiAgICAgIC4uLihzZWFyY2hMaXN0Q29sdW1uLmRpc3BsYXlUeXBlPy5kaXNwbGF5VHlwZVBhcmFtZXRlcnM/LmRhdGVGb3JtYXQgJiYge1xuICAgICAgICBmb3JtYXQ6IHNlYXJjaExpc3RDb2x1bW4uZGlzcGxheVR5cGU/LmRpc3BsYXlUeXBlUGFyYW1ldGVycz8uZGF0ZUZvcm1hdCxcbiAgICAgIH0pLFxuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGlzcGxheVR5cGUoc2VhcmNoTGlzdENvbHVtbkRpc3BsYXlUeXBlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAoc2VhcmNoTGlzdENvbHVtbkRpc3BsYXlUeXBlKSB7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gc2VhcmNoTGlzdENvbHVtbkRpc3BsYXlUeXBlO1xuICAgIH1cbiAgfVxufVxuIl19
|