@valtimo/object 10.6.0 → 10.8.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/lib/components/object-detail-container/object-detail-container.component.mjs +4 -4
- package/esm2020/lib/components/object-detail-container/tabs/object-detail/object-detail.component.mjs +35 -12
- package/esm2020/lib/components/object-list/object-list.component.mjs +29 -22
- package/esm2020/lib/object-routing.module.mjs +7 -7
- package/esm2020/lib/object.module.mjs +9 -9
- package/esm2020/lib/services/object-column.service.mjs +4 -4
- package/esm2020/lib/services/object-state.service.mjs +4 -4
- package/esm2020/lib/services/object.service.mjs +4 -4
- package/esm2020/lib/services/tab.service.mjs +4 -4
- package/fesm2015/valtimo-object.mjs +88 -59
- package/fesm2015/valtimo-object.mjs.map +1 -1
- package/fesm2020/valtimo-object.mjs +88 -59
- package/fesm2020/valtimo-object.mjs.map +1 -1
- package/lib/components/object-detail-container/tabs/object-detail/object-detail.component.d.ts +12 -5
- package/lib/components/object-list/object-list.component.d.ts +8 -6
- package/lib/object.module.d.ts +1 -1
- package/package.json +5 -4
|
@@ -5,17 +5,17 @@ import * as i2 from '@valtimo/config';
|
|
|
5
5
|
import { ROLE_USER } from '@valtimo/config';
|
|
6
6
|
import * as i3 from '@angular/router';
|
|
7
7
|
import { RouterModule } from '@angular/router';
|
|
8
|
-
import * as
|
|
8
|
+
import * as i8 from '@angular/common';
|
|
9
9
|
import { CommonModule, AsyncPipe } from '@angular/common';
|
|
10
10
|
import { AuthGuardService } from '@valtimo/security';
|
|
11
11
|
import { map, BehaviorSubject, combineLatest, distinctUntilChanged, of, startWith, filter, throwError, Subject } from 'rxjs';
|
|
12
|
-
import { switchMap, catchError,
|
|
12
|
+
import { tap, switchMap, catchError, take, finalize } from 'rxjs/operators';
|
|
13
13
|
import * as i2$1 from '@valtimo/object-management';
|
|
14
14
|
import * as i4 from '@ngx-translate/core';
|
|
15
15
|
import { TranslateModule } from '@ngx-translate/core';
|
|
16
16
|
import * as i6 from 'ngx-toastr';
|
|
17
|
-
import * as
|
|
18
|
-
import { WidgetModule, ListModule, SpinnerModule, FormIoModule, ConfirmationModalModule, SearchFieldsModule,
|
|
17
|
+
import * as i7 from '@valtimo/components';
|
|
18
|
+
import { WidgetModule, ListModule, SpinnerModule, FormIoModule, ConfirmationModalModule, SearchFieldsModule, ValtimoCdsModalDirectiveModule } from '@valtimo/components';
|
|
19
19
|
import * as i9 from 'carbon-components-angular';
|
|
20
20
|
import { ButtonModule, IconModule, LoadingModule, ModalModule, InputModule } from 'carbon-components-angular';
|
|
21
21
|
import { ReactiveFormsModule } from '@angular/forms';
|
|
@@ -63,9 +63,9 @@ class ObjectService {
|
|
|
63
63
|
return Object.fromEntries(Object.entries(submission).filter(([_, value]) => value !== ''));
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
|
-
ObjectService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
67
|
-
ObjectService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.
|
|
68
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
66
|
+
ObjectService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
67
|
+
ObjectService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectService, providedIn: 'root' });
|
|
68
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectService, decorators: [{
|
|
69
69
|
type: Injectable,
|
|
70
70
|
args: [{
|
|
71
71
|
providedIn: 'root',
|
|
@@ -134,9 +134,9 @@ class ObjectColumnService {
|
|
|
134
134
|
}
|
|
135
135
|
}
|
|
136
136
|
}
|
|
137
|
-
ObjectColumnService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
138
|
-
ObjectColumnService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.
|
|
139
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
137
|
+
ObjectColumnService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectColumnService, deps: [{ token: i2.ConfigService }, { token: i2$1.ObjectManagementService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
138
|
+
ObjectColumnService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectColumnService, providedIn: 'root' });
|
|
139
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectColumnService, decorators: [{
|
|
140
140
|
type: Injectable,
|
|
141
141
|
args: [{
|
|
142
142
|
providedIn: 'root',
|
|
@@ -159,7 +159,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
159
159
|
* limitations under the License.
|
|
160
160
|
*/
|
|
161
161
|
class ObjectListComponent {
|
|
162
|
-
constructor(objectService, objectColumnService, objectManagementService, translateService, router, route, toastr, translate) {
|
|
162
|
+
constructor(objectService, objectColumnService, objectManagementService, translateService, router, route, toastr, translate, pageTitleService) {
|
|
163
163
|
this.objectService = objectService;
|
|
164
164
|
this.objectColumnService = objectColumnService;
|
|
165
165
|
this.objectManagementService = objectManagementService;
|
|
@@ -168,6 +168,7 @@ class ObjectListComponent {
|
|
|
168
168
|
this.route = route;
|
|
169
169
|
this.toastr = toastr;
|
|
170
170
|
this.translate = translate;
|
|
171
|
+
this.pageTitleService = pageTitleService;
|
|
171
172
|
this.loading$ = new BehaviorSubject(true);
|
|
172
173
|
this.submission$ = new BehaviorSubject({});
|
|
173
174
|
this.formValid$ = new BehaviorSubject(false);
|
|
@@ -175,7 +176,16 @@ class ObjectListComponent {
|
|
|
175
176
|
this.disableInput$ = new BehaviorSubject(false);
|
|
176
177
|
this.clearForm$ = new BehaviorSubject(false);
|
|
177
178
|
this.columnType$ = new BehaviorSubject(ColumnType.DEFAULT);
|
|
178
|
-
this.objectManagementId$ = this.route.params.pipe(map(params => params.objectManagementId)
|
|
179
|
+
this.objectManagementId$ = this.route.params.pipe(map(params => params.objectManagementId), tap(objectManagementId => {
|
|
180
|
+
if (!this._settingPageTitle && objectManagementId) {
|
|
181
|
+
this._settingPageTitle = true;
|
|
182
|
+
this.objectManagementService.getObjectById(objectManagementId).subscribe(objectType => {
|
|
183
|
+
if (objectType.title) {
|
|
184
|
+
this.pageTitleService.setCustomPageTitle(objectType.title);
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
}));
|
|
179
189
|
this.refreshObjectList$ = new BehaviorSubject(null);
|
|
180
190
|
this.currentPageAndSize$ = new BehaviorSubject({
|
|
181
191
|
page: 0,
|
|
@@ -219,14 +229,12 @@ class ObjectListComponent {
|
|
|
219
229
|
: {})
|
|
220
230
|
.pipe(catchError(() => handleError()));
|
|
221
231
|
}
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
.pipe(catchError(() => handleError()));
|
|
229
|
-
}
|
|
232
|
+
return this.objectService
|
|
233
|
+
.getObjectsByObjectManagementId(objectManagementId, {
|
|
234
|
+
page: currentPage.page,
|
|
235
|
+
size: currentPage.size,
|
|
236
|
+
})
|
|
237
|
+
.pipe(catchError(() => handleError()));
|
|
230
238
|
}), tap(instanceRes => {
|
|
231
239
|
if (instanceRes != null) {
|
|
232
240
|
this.pageSizes$.pipe(take(1)).subscribe(sizes => {
|
|
@@ -273,11 +281,10 @@ class ObjectListComponent {
|
|
|
273
281
|
}),
|
|
274
282
|
];
|
|
275
283
|
}
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
return this.setDefaultFields();
|
|
279
|
-
}
|
|
284
|
+
this.columnType$.next(ColumnType.DEFAULT);
|
|
285
|
+
return this.setDefaultFields();
|
|
280
286
|
}));
|
|
287
|
+
this._settingPageTitle = false;
|
|
281
288
|
}
|
|
282
289
|
paginationClicked(newPageNumber) {
|
|
283
290
|
this.currentPageAndSize$.pipe(take(1)).subscribe(currentPage => {
|
|
@@ -377,12 +384,12 @@ class ObjectListComponent {
|
|
|
377
384
|
return filters;
|
|
378
385
|
}
|
|
379
386
|
}
|
|
380
|
-
ObjectListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
381
|
-
ObjectListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
382
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
387
|
+
ObjectListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectListComponent, deps: [{ token: ObjectService }, { token: ObjectColumnService }, { token: i2$1.ObjectManagementService }, { token: i4.TranslateService }, { token: i3.Router }, { token: i3.ActivatedRoute }, { token: i6.ToastrService }, { token: i4.TranslateService }, { token: i7.PageTitleService }], target: i0.ɵɵFactoryTarget.Component });
|
|
388
|
+
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" }] });
|
|
389
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectListComponent, decorators: [{
|
|
383
390
|
type: Component,
|
|
384
|
-
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
|
|
385
|
-
}], ctorParameters: function () { return [{ type: ObjectService }, { type: ObjectColumnService }, { type: i2$1.ObjectManagementService }, { type: i4.TranslateService }, { type: i3.Router }, { type: i3.ActivatedRoute }, { type: i6.ToastrService }, { type: i4.TranslateService }]; } });
|
|
391
|
+
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"] }]
|
|
392
|
+
}], ctorParameters: function () { return [{ type: ObjectService }, { type: ObjectColumnService }, { type: i2$1.ObjectManagementService }, { type: i4.TranslateService }, { type: i3.Router }, { type: i3.ActivatedRoute }, { type: i6.ToastrService }, { type: i4.TranslateService }, { type: i7.PageTitleService }]; } });
|
|
386
393
|
|
|
387
394
|
/*
|
|
388
395
|
* Copyright 2015-2020 Ritense BV, the Netherlands.
|
|
@@ -451,9 +458,9 @@ class ObjectStateService {
|
|
|
451
458
|
this._modalType$.next(type);
|
|
452
459
|
}
|
|
453
460
|
}
|
|
454
|
-
ObjectStateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
455
|
-
ObjectStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.
|
|
456
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
461
|
+
ObjectStateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
462
|
+
ObjectStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectStateService, providedIn: 'root' });
|
|
463
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectStateService, decorators: [{
|
|
457
464
|
type: Injectable,
|
|
458
465
|
args: [{
|
|
459
466
|
providedIn: 'root',
|
|
@@ -486,9 +493,9 @@ class TabService {
|
|
|
486
493
|
this._currentTab$.next(tab);
|
|
487
494
|
}
|
|
488
495
|
}
|
|
489
|
-
TabService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
490
|
-
TabService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.
|
|
491
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
496
|
+
TabService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TabService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
497
|
+
TabService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TabService, providedIn: 'root' });
|
|
498
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TabService, decorators: [{
|
|
492
499
|
type: Injectable,
|
|
493
500
|
args: [{
|
|
494
501
|
providedIn: 'root',
|
|
@@ -511,13 +518,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
511
518
|
* limitations under the License.
|
|
512
519
|
*/
|
|
513
520
|
class ObjectDetailComponent {
|
|
514
|
-
constructor(objectService, objectState, route, router, translate, toastr) {
|
|
521
|
+
constructor(objectService, objectState, route, router, translate, toastr, pageTitleService, breadcrumbService, objectManagementService) {
|
|
515
522
|
this.objectService = objectService;
|
|
516
523
|
this.objectState = objectState;
|
|
517
524
|
this.route = route;
|
|
518
525
|
this.router = router;
|
|
519
526
|
this.translate = translate;
|
|
520
527
|
this.toastr = toastr;
|
|
528
|
+
this.pageTitleService = pageTitleService;
|
|
529
|
+
this.breadcrumbService = breadcrumbService;
|
|
530
|
+
this.objectManagementService = objectManagementService;
|
|
521
531
|
this.loading$ = new BehaviorSubject(true);
|
|
522
532
|
this.submission$ = new BehaviorSubject({});
|
|
523
533
|
this.formValid$ = new BehaviorSubject(false);
|
|
@@ -526,8 +536,19 @@ class ObjectDetailComponent {
|
|
|
526
536
|
this.showDeleteModal$ = new Subject();
|
|
527
537
|
this.deleteObjectUrl$ = new BehaviorSubject('');
|
|
528
538
|
this.refreshObject$ = new BehaviorSubject(null);
|
|
529
|
-
this.objectManagementId$ = this.route.params.pipe(map(params => params.objectManagementId)
|
|
530
|
-
|
|
539
|
+
this.objectManagementId$ = this.route.params.pipe(map(params => params.objectManagementId), tap(objectManagementId => {
|
|
540
|
+
if (!this._settingBreadcrumb && objectManagementId) {
|
|
541
|
+
this._settingBreadcrumb = true;
|
|
542
|
+
this.objectManagementService.getObjectById(objectManagementId).subscribe(objectType => {
|
|
543
|
+
if (objectType.id && objectType.title) {
|
|
544
|
+
this.setBreadcrumb(objectType.id, objectType.title);
|
|
545
|
+
}
|
|
546
|
+
});
|
|
547
|
+
}
|
|
548
|
+
}));
|
|
549
|
+
this.objectId$ = this.route.params.pipe(map(params => params.objectId), tap(objectId => {
|
|
550
|
+
this.pageTitleService.setCustomPageTitle(objectId);
|
|
551
|
+
}));
|
|
531
552
|
this.formioFormSummary$ = combineLatest([
|
|
532
553
|
this.objectManagementId$,
|
|
533
554
|
this.objectId$,
|
|
@@ -549,6 +570,7 @@ class ObjectDetailComponent {
|
|
|
549
570
|
this.disableInput();
|
|
550
571
|
return this.handleRetrievingFormError();
|
|
551
572
|
}))), map(res => res?.formDefinition), tap(() => this.loading$.next(false)));
|
|
573
|
+
this._settingBreadcrumb = false;
|
|
552
574
|
}
|
|
553
575
|
saveObject() {
|
|
554
576
|
this.disableInput();
|
|
@@ -631,13 +653,20 @@ class ObjectDetailComponent {
|
|
|
631
653
|
this.toastr.error(this.translate.instant('object.messages.objectDeleteError'));
|
|
632
654
|
return throwError(error);
|
|
633
655
|
}
|
|
656
|
+
setBreadcrumb(objectTypeId, title) {
|
|
657
|
+
this.breadcrumbService.setSecondBreadcrumb({
|
|
658
|
+
route: [`/objects/${objectTypeId}`],
|
|
659
|
+
content: title,
|
|
660
|
+
href: `/objects/${objectTypeId}`,
|
|
661
|
+
});
|
|
662
|
+
}
|
|
634
663
|
}
|
|
635
|
-
ObjectDetailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
636
|
-
ObjectDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
637
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
664
|
+
ObjectDetailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectDetailComponent, deps: [{ token: ObjectService }, { token: ObjectStateService }, { token: i3.ActivatedRoute }, { token: i3.Router }, { token: i4.TranslateService }, { token: i6.ToastrService }, { token: i7.PageTitleService }, { token: i7.BreadcrumbService }, { token: i2$1.ObjectManagementService }], target: i0.ɵɵFactoryTarget.Component });
|
|
665
|
+
ObjectDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ObjectDetailComponent, selector: "valtimo-object-detail", 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 formioFormSummary: formioFormSummary$ | async,\n disableInput: disableInput$ | async\n } as obs\"\n>\n <div class=\"container-fluid pr-0 pl-0\">\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"text-right\">\n <div class=\"btn-group mb-1\">\n <ng-container *ngTemplateOutlet=\"buttons; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n </div>\n <div class=\"col-12\">\n <ng-container *ngTemplateOutlet=\"widget; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"createEditModal\"></ng-container>\n <ng-container *ngTemplateOutlet=\"deleteModal\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <button [disabled]=\"obs.disableInput\" (click)=\"openModal()\" cdsButton=\"primary\" size=\"md\">\n {{ 'object.editObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n\n <button (click)=\"deleteObject()\" cdsButton=\"danger\" size=\"md\" class=\"ml-3\">\n {{ 'object.deleteObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #widget let-obs=\"obs\">\n <valtimo-form-io\n *ngIf=\"obs.formioFormSummary\"\n [form]=\"obs.formioFormSummary\"\n [readOnly]=\"true\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #createEditModal>\n <cds-modal\n valtimoCdsModal\n *ngIf=\"{\n show: showModal$ | async,\n formValid: formValid$ | async,\n disableInput: disableInput$ | async,\n formioFormEdit: formioFormEdit$ | async\n } as modalObs\"\n [open]=\"modalObs.show\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'object.editObject' | 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.formioFormEdit\"\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)=\"saveObject()\"\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\n<ng-template #deleteModal>\n <valtimo-confirmation-modal\n [showModalSubject$]=\"showDeleteModal$\"\n [outputOnConfirm]=\"deleteObjectUrl$ | async\"\n (confirmEvent)=\"deleteObjectConfirmation()\"\n confirmButtonTextTranslationKey=\"object.deleteObject\"\n titleTranslationKey=\"object.deleteObject\"\n contentTranslationKey=\"object.deleteObjectConfirmation\"\n ></valtimo-confirmation-modal>\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 */.row{margin:0}.object-schema{resize:none}valtimo-widget::ng-deep .card-border.card-full-default{border:none}\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: "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.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm"], outputs: ["confirmEvent"] }, { kind: "directive", type: i7.ValtimoCdsModalDirective, selector: "[valtimoCdsModal]" }, { kind: "pipe", type: i8.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
|
|
666
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectDetailComponent, decorators: [{
|
|
638
667
|
type: Component,
|
|
639
|
-
args: [{ selector: 'valtimo-object-detail', 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 formioFormSummary: formioFormSummary$ | async,\n disableInput: disableInput$ | async\n } as obs\"\n>\n <div class=\"container-fluid pr-0 pl-0\">\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"text-right\">\n <div class=\"btn-group mb-1\">\n <ng-container *ngTemplateOutlet=\"buttons; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n </div>\n <div class=\"col-12\">\n <ng-container *ngTemplateOutlet=\"widget; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"createEditModal\"></ng-container>\n <ng-container *ngTemplateOutlet=\"deleteModal\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <button [disabled]=\"obs.disableInput\" (click)=\"openModal()\"
|
|
640
|
-
}], ctorParameters: function () { return [{ type: ObjectService }, { type: ObjectStateService }, { type: i3.ActivatedRoute }, { type: i3.Router }, { type: i4.TranslateService }, { type: i6.ToastrService }]; } });
|
|
668
|
+
args: [{ selector: 'valtimo-object-detail', 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 formioFormSummary: formioFormSummary$ | async,\n disableInput: disableInput$ | async\n } as obs\"\n>\n <div class=\"container-fluid pr-0 pl-0\">\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"text-right\">\n <div class=\"btn-group mb-1\">\n <ng-container *ngTemplateOutlet=\"buttons; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n </div>\n <div class=\"col-12\">\n <ng-container *ngTemplateOutlet=\"widget; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"createEditModal\"></ng-container>\n <ng-container *ngTemplateOutlet=\"deleteModal\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <button [disabled]=\"obs.disableInput\" (click)=\"openModal()\" cdsButton=\"primary\" size=\"md\">\n {{ 'object.editObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n\n <button (click)=\"deleteObject()\" cdsButton=\"danger\" size=\"md\" class=\"ml-3\">\n {{ 'object.deleteObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #widget let-obs=\"obs\">\n <valtimo-form-io\n *ngIf=\"obs.formioFormSummary\"\n [form]=\"obs.formioFormSummary\"\n [readOnly]=\"true\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #createEditModal>\n <cds-modal\n valtimoCdsModal\n *ngIf=\"{\n show: showModal$ | async,\n formValid: formValid$ | async,\n disableInput: disableInput$ | async,\n formioFormEdit: formioFormEdit$ | async\n } as modalObs\"\n [open]=\"modalObs.show\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'object.editObject' | 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.formioFormEdit\"\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)=\"saveObject()\"\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\n<ng-template #deleteModal>\n <valtimo-confirmation-modal\n [showModalSubject$]=\"showDeleteModal$\"\n [outputOnConfirm]=\"deleteObjectUrl$ | async\"\n (confirmEvent)=\"deleteObjectConfirmation()\"\n confirmButtonTextTranslationKey=\"object.deleteObject\"\n titleTranslationKey=\"object.deleteObject\"\n contentTranslationKey=\"object.deleteObjectConfirmation\"\n ></valtimo-confirmation-modal>\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 */.row{margin:0}.object-schema{resize:none}valtimo-widget::ng-deep .card-border.card-full-default{border:none}\n"] }]
|
|
669
|
+
}], ctorParameters: function () { return [{ type: ObjectService }, { type: ObjectStateService }, { type: i3.ActivatedRoute }, { type: i3.Router }, { type: i4.TranslateService }, { type: i6.ToastrService }, { type: i7.PageTitleService }, { type: i7.BreadcrumbService }, { type: i2$1.ObjectManagementService }]; } });
|
|
641
670
|
|
|
642
671
|
/*
|
|
643
672
|
* Copyright 2015-2020 Ritense BV, the Netherlands.
|
|
@@ -679,9 +708,9 @@ class ObjectDetailContainerComponent {
|
|
|
679
708
|
this.tabSubscription?.unsubscribe();
|
|
680
709
|
}
|
|
681
710
|
}
|
|
682
|
-
ObjectDetailContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
683
|
-
ObjectDetailContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
684
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
711
|
+
ObjectDetailContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectDetailContainerComponent, deps: [{ token: ObjectStateService }, { token: ObjectService }, { token: i3.ActivatedRoute }, { token: i2.ConfigService }, { token: TabService }], target: i0.ɵɵFactoryTarget.Component });
|
|
712
|
+
ObjectDetailContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ObjectDetailContainerComponent, selector: "valtimo-object-detail-container", ngImport: i0, template: "<!--\n ~ Copyright 2015-2022 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget>\n <ng-container *ngTemplateOutlet=\"title\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tabContent\"></ng-container>\n </valtimo-widget>\n </div>\n </div>\n</div>\n\n<ng-template #title>\n <div class=\"bg-light dossier-header\">\n <h3 class=\"dossier-title\">\n {{ 'object.header' | translate }}\n </h3>\n </div>\n</ng-template>\n\n<ng-template #tabs>\n <ul class=\"nav nav-tabs\">\n <li class=\"nav-item\">\n <a\n id=\"general-tab\"\n class=\"nav-link clickable active\"\n data-toggle=\"tab\"\n (click)=\"displayBodyComponent(TabEnum.GENERAL)\"\n >\n {{ 'object.tabs.general' | translate }}\n </a>\n </li>\n </ul>\n</ng-template>\n\n<ng-template #tabContent>\n <div class=\"pl-1 pr-1 pt-3 bg-white position-relative tab-container\">\n <div *ngIf=\"currentTab && currentTab === TabEnum.GENERAL\">\n <valtimo-object-detail></valtimo-object-detail>\n </div>\n </div>\n</ng-template>\n", styles: [".tab-container{min-height:300px}.dossier-header{height:80px;padding-top:21px;padding-left:18px;padding-right:18px;border-bottom:1px solid rgba(0,0,0,.125)}.dossier-title{margin-top:0;margin-bottom:7px}\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: ObjectDetailComponent, selector: "valtimo-object-detail" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
|
|
713
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectDetailContainerComponent, decorators: [{
|
|
685
714
|
type: Component,
|
|
686
715
|
args: [{ selector: 'valtimo-object-detail-container', template: "<!--\n ~ Copyright 2015-2022 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget>\n <ng-container *ngTemplateOutlet=\"title\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tabContent\"></ng-container>\n </valtimo-widget>\n </div>\n </div>\n</div>\n\n<ng-template #title>\n <div class=\"bg-light dossier-header\">\n <h3 class=\"dossier-title\">\n {{ 'object.header' | translate }}\n </h3>\n </div>\n</ng-template>\n\n<ng-template #tabs>\n <ul class=\"nav nav-tabs\">\n <li class=\"nav-item\">\n <a\n id=\"general-tab\"\n class=\"nav-link clickable active\"\n data-toggle=\"tab\"\n (click)=\"displayBodyComponent(TabEnum.GENERAL)\"\n >\n {{ 'object.tabs.general' | translate }}\n </a>\n </li>\n </ul>\n</ng-template>\n\n<ng-template #tabContent>\n <div class=\"pl-1 pr-1 pt-3 bg-white position-relative tab-container\">\n <div *ngIf=\"currentTab && currentTab === TabEnum.GENERAL\">\n <valtimo-object-detail></valtimo-object-detail>\n </div>\n </div>\n</ng-template>\n", styles: [".tab-container{min-height:300px}.dossier-header{height:80px;padding-top:21px;padding-left:18px;padding-right:18px;border-bottom:1px solid rgba(0,0,0,.125)}.dossier-title{margin-top:0;margin-bottom:7px}\n"] }]
|
|
687
716
|
}], ctorParameters: function () { return [{ type: ObjectStateService }, { type: ObjectService }, { type: i3.ActivatedRoute }, { type: i2.ConfigService }, { type: TabService }]; } });
|
|
@@ -706,21 +735,21 @@ const routes = [
|
|
|
706
735
|
path: 'objects/:objectManagementId',
|
|
707
736
|
canActivate: [AuthGuardService],
|
|
708
737
|
component: ObjectListComponent,
|
|
709
|
-
data: { title: 'Objects', roles: [ROLE_USER] },
|
|
738
|
+
data: { title: 'Objects', roles: [ROLE_USER], customPageTitle: true },
|
|
710
739
|
},
|
|
711
740
|
{
|
|
712
741
|
path: 'objects/:objectManagementId/:objectId',
|
|
713
742
|
canActivate: [AuthGuardService],
|
|
714
743
|
component: ObjectDetailContainerComponent,
|
|
715
|
-
data: { title: 'Object details', roles: [ROLE_USER] },
|
|
744
|
+
data: { title: 'Object details', roles: [ROLE_USER], customPageTitle: true },
|
|
716
745
|
},
|
|
717
746
|
];
|
|
718
747
|
class ObjectRoutingModule {
|
|
719
748
|
}
|
|
720
|
-
ObjectRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
721
|
-
ObjectRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.
|
|
722
|
-
ObjectRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.
|
|
723
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
749
|
+
ObjectRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
750
|
+
ObjectRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ObjectRoutingModule, imports: [CommonModule, i3.RouterModule], exports: [RouterModule] });
|
|
751
|
+
ObjectRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectRoutingModule, imports: [CommonModule, RouterModule.forChild(routes), RouterModule] });
|
|
752
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectRoutingModule, decorators: [{
|
|
724
753
|
type: NgModule,
|
|
725
754
|
args: [{
|
|
726
755
|
imports: [CommonModule, RouterModule.forChild(routes)],
|
|
@@ -746,8 +775,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
746
775
|
*/
|
|
747
776
|
class ObjectModule {
|
|
748
777
|
}
|
|
749
|
-
ObjectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
750
|
-
ObjectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.
|
|
778
|
+
ObjectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
779
|
+
ObjectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ObjectModule, declarations: [ObjectListComponent, ObjectDetailContainerComponent, ObjectDetailComponent], imports: [CommonModule,
|
|
751
780
|
ObjectRoutingModule,
|
|
752
781
|
TranslateModule,
|
|
753
782
|
AsyncPipe,
|
|
@@ -764,8 +793,8 @@ ObjectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
|
764
793
|
TooltipIconModule,
|
|
765
794
|
ConfirmationModalModule,
|
|
766
795
|
SearchFieldsModule,
|
|
767
|
-
|
|
768
|
-
ObjectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.
|
|
796
|
+
ValtimoCdsModalDirectiveModule] });
|
|
797
|
+
ObjectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectModule, imports: [CommonModule,
|
|
769
798
|
ObjectRoutingModule,
|
|
770
799
|
TranslateModule,
|
|
771
800
|
WidgetModule,
|
|
@@ -781,8 +810,8 @@ ObjectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
|
781
810
|
TooltipIconModule,
|
|
782
811
|
ConfirmationModalModule,
|
|
783
812
|
SearchFieldsModule,
|
|
784
|
-
|
|
785
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
813
|
+
ValtimoCdsModalDirectiveModule] });
|
|
814
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectModule, decorators: [{
|
|
786
815
|
type: NgModule,
|
|
787
816
|
args: [{
|
|
788
817
|
declarations: [ObjectListComponent, ObjectDetailContainerComponent, ObjectDetailComponent],
|
|
@@ -804,7 +833,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
804
833
|
TooltipIconModule,
|
|
805
834
|
ConfirmationModalModule,
|
|
806
835
|
SearchFieldsModule,
|
|
807
|
-
|
|
836
|
+
ValtimoCdsModalDirectiveModule,
|
|
808
837
|
],
|
|
809
838
|
exports: [],
|
|
810
839
|
}]
|