@valtimo/object 12.14.0 → 13.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/valtimo-object.mjs +100 -81
- package/fesm2022/valtimo-object.mjs.map +1 -1
- 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 +5 -5
- package/lib/components/object-list/object-list.component.d.ts +11 -12
- package/lib/object.module.d.ts +1 -1
- package/lib/services/object-column.service.d.ts +1 -1
- package/lib/services/object.service.d.ts +1 -1
- package/package.json +4 -6
- package/esm2022/lib/components/object-detail-container/object-detail-container.component.mjs +0 -60
- package/esm2022/lib/components/object-detail-container/tabs/object-detail/object-detail.component.mjs +0 -178
- package/esm2022/lib/components/object-list/object-list.component.mjs +0 -259
- package/esm2022/lib/models/object.model.mjs +0 -27
- package/esm2022/lib/object-routing.module.mjs +0 -52
- package/esm2022/lib/object.module.mjs +0 -95
- package/esm2022/lib/services/object-column.service.mjs +0 -65
- package/esm2022/lib/services/object-state.service.mjs +0 -59
- package/esm2022/lib/services/object.service.mjs +0 -55
- package/esm2022/lib/services/tab.enum.mjs +0 -20
- package/esm2022/lib/services/tab.service.mjs +0 -39
- package/esm2022/public-api.mjs +0 -21
- package/esm2022/valtimo-object.mjs +0 -5
package/esm2022/lib/components/object-detail-container/object-detail-container.component.mjs
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2024 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 { map } from 'rxjs';
|
|
18
|
-
import { TabEnum } from '../../services/tab.enum';
|
|
19
|
-
import * as i0 from "@angular/core";
|
|
20
|
-
import * as i1 from "../../services/object-state.service";
|
|
21
|
-
import * as i2 from "../../services/object.service";
|
|
22
|
-
import * as i3 from "@angular/router";
|
|
23
|
-
import * as i4 from "@valtimo/config";
|
|
24
|
-
import * as i5 from "../../services/tab.service";
|
|
25
|
-
import * as i6 from "@angular/common";
|
|
26
|
-
import * as i7 from "@valtimo/components";
|
|
27
|
-
import * as i8 from "./tabs/object-detail/object-detail.component";
|
|
28
|
-
import * as i9 from "@ngx-translate/core";
|
|
29
|
-
export class ObjectDetailContainerComponent {
|
|
30
|
-
constructor(objectState, objectService, route, configService, tabService) {
|
|
31
|
-
this.objectState = objectState;
|
|
32
|
-
this.objectService = objectService;
|
|
33
|
-
this.route = route;
|
|
34
|
-
this.configService = configService;
|
|
35
|
-
this.tabService = tabService;
|
|
36
|
-
this.TabEnum = TabEnum;
|
|
37
|
-
this.objectManagementId$ = this.route.params.pipe(map(params => params.objectManagementId));
|
|
38
|
-
this.caseListColumn = this.configService.config.featureToggles?.caseListColumn ?? true;
|
|
39
|
-
}
|
|
40
|
-
ngOnInit() {
|
|
41
|
-
this.openCurrentTabSubscription();
|
|
42
|
-
}
|
|
43
|
-
displayBodyComponent(tab) {
|
|
44
|
-
this.tabService.currentTab = tab;
|
|
45
|
-
}
|
|
46
|
-
openCurrentTabSubscription() {
|
|
47
|
-
this.tabSubscription = this.tabService.currentTab$.subscribe(value => (this.currentTab = value));
|
|
48
|
-
}
|
|
49
|
-
ngOnDestroy() {
|
|
50
|
-
this.tabService.currentTab = TabEnum.GENERAL;
|
|
51
|
-
this.tabSubscription?.unsubscribe();
|
|
52
|
-
}
|
|
53
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ObjectDetailContainerComponent, deps: [{ token: i1.ObjectStateService }, { token: i2.ObjectService }, { token: i3.ActivatedRoute }, { token: i4.ConfigService }, { token: i5.TabService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
54
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ObjectDetailContainerComponent, selector: "valtimo-object-detail-container", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i7.WidgetComponent, selector: "valtimo-widget", inputs: ["type", "name", "icon", "contrast", "divider", "title", "subtitle", "collapseAble", "collapse", "additionalClasses"] }, { kind: "component", type: i8.ObjectDetailComponent, selector: "valtimo-object-detail" }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }] }); }
|
|
55
|
-
}
|
|
56
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ObjectDetailContainerComponent, decorators: [{
|
|
57
|
-
type: Component,
|
|
58
|
-
args: [{ selector: 'valtimo-object-detail-container', template: "<!--\n ~ Copyright 2015-2024 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/*!\n * Copyright 2015-2024 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"] }]
|
|
59
|
-
}], ctorParameters: () => [{ type: i1.ObjectStateService }, { type: i2.ObjectService }, { type: i3.ActivatedRoute }, { type: i4.ConfigService }, { type: i5.TabService }] });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWRldGFpbC1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9vYmplY3Qvc3JjL2xpYi9jb21wb25lbnRzL29iamVjdC1kZXRhaWwtY29udGFpbmVyL29iamVjdC1kZXRhaWwtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vb2JqZWN0L3NyYy9saWIvY29tcG9uZW50cy9vYmplY3QtZGV0YWlsLWNvbnRhaW5lci9vYmplY3QtZGV0YWlsLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBRTNELE9BQU8sRUFBQyxHQUFHLEVBQTJCLE1BQU0sTUFBTSxDQUFDO0FBSW5ELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7Ozs7QUFRaEQsTUFBTSxPQUFPLDhCQUE4QjtJQVl6QyxZQUNtQixXQUErQixFQUMvQixhQUE0QixFQUM1QixLQUFxQixFQUNyQixhQUE0QixFQUM1QixVQUFzQjtRQUp0QixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDL0Isa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQVhoQyxZQUFPLEdBQUcsT0FBTyxDQUFDO1FBRWxCLHdCQUFtQixHQUF1QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3ZFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUN6QyxDQUFDO1FBU0EsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsY0FBYyxJQUFJLElBQUksQ0FBQztJQUN6RixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxHQUFZO1FBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQztJQUNuQyxDQUFDO0lBRUQsMEJBQTBCO1FBQ3hCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUMxRCxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsQ0FDbkMsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUM3QyxJQUFJLENBQUMsZUFBZSxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ3RDLENBQUM7K0dBdkNVLDhCQUE4QjttR0FBOUIsOEJBQThCLHVFQzlCM0MsdXpEQTBEQTs7NEZENUJhLDhCQUE4QjtrQkFMMUMsU0FBUzsrQkFDRSxpQ0FBaUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7bWFwLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDb25maWdTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuaW1wb3J0IHtPYmplY3RTdGF0ZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL29iamVjdC1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7T2JqZWN0U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvb2JqZWN0LnNlcnZpY2UnO1xuaW1wb3J0IHtUYWJFbnVtfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YWIuZW51bSc7XG5pbXBvcnQge1RhYlNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RhYi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1vYmplY3QtZGV0YWlsLWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9vYmplY3QtZGV0YWlsLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL29iamVjdC1kZXRhaWwtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE9iamVjdERldGFpbENvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIGN1cnJlbnRUYWI6IFRhYkVudW07XG4gIHB1YmxpYyBjYXNlTGlzdENvbHVtbiE6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSB0YWJTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICByZWFkb25seSBUYWJFbnVtID0gVGFiRW51bTtcblxuICByZWFkb25seSBvYmplY3RNYW5hZ2VtZW50SWQkOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLnJvdXRlLnBhcmFtcy5waXBlKFxuICAgIG1hcChwYXJhbXMgPT4gcGFyYW1zLm9iamVjdE1hbmFnZW1lbnRJZClcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9iamVjdFN0YXRlOiBPYmplY3RTdGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBvYmplY3RTZXJ2aWNlOiBPYmplY3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRhYlNlcnZpY2U6IFRhYlNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5jYXNlTGlzdENvbHVtbiA9IHRoaXMuY29uZmlnU2VydmljZS5jb25maWcuZmVhdHVyZVRvZ2dsZXM/LmNhc2VMaXN0Q29sdW1uID8/IHRydWU7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5DdXJyZW50VGFiU3Vic2NyaXB0aW9uKCk7XG4gIH1cblxuICBkaXNwbGF5Qm9keUNvbXBvbmVudCh0YWI6IFRhYkVudW0pOiB2b2lkIHtcbiAgICB0aGlzLnRhYlNlcnZpY2UuY3VycmVudFRhYiA9IHRhYjtcbiAgfVxuXG4gIG9wZW5DdXJyZW50VGFiU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMudGFiU3Vic2NyaXB0aW9uID0gdGhpcy50YWJTZXJ2aWNlLmN1cnJlbnRUYWIkLnN1YnNjcmliZShcbiAgICAgIHZhbHVlID0+ICh0aGlzLmN1cnJlbnRUYWIgPSB2YWx1ZSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy50YWJTZXJ2aWNlLmN1cnJlbnRUYWIgPSBUYWJFbnVtLkdFTkVSQUw7XG4gICAgdGhpcy50YWJTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPGRpdiBjbGFzcz1cIm1haW4tY29udGVudFwiPlxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMiBweC0wIG1iLTVcIj5cbiAgICAgIDx2YWx0aW1vLXdpZGdldD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRpdGxlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0YWJzXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0YWJDb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L3ZhbHRpbW8td2lkZ2V0PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3RpdGxlPlxuICA8ZGl2IGNsYXNzPVwiYmctbGlnaHQgZG9zc2llci1oZWFkZXJcIj5cbiAgICA8aDMgY2xhc3M9XCJkb3NzaWVyLXRpdGxlXCI+XG4gICAgICB7eyAnb2JqZWN0LmhlYWRlcicgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2gzPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjdGFicz5cbiAgPHVsIGNsYXNzPVwibmF2IG5hdi10YWJzXCI+XG4gICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIj5cbiAgICAgIDxhXG4gICAgICAgIGlkPVwiZ2VuZXJhbC10YWJcIlxuICAgICAgICBjbGFzcz1cIm5hdi1saW5rIGNsaWNrYWJsZSBhY3RpdmVcIlxuICAgICAgICBkYXRhLXRvZ2dsZT1cInRhYlwiXG4gICAgICAgIChjbGljayk9XCJkaXNwbGF5Qm9keUNvbXBvbmVudChUYWJFbnVtLkdFTkVSQUwpXCJcbiAgICAgID5cbiAgICAgICAge3sgJ29iamVjdC50YWJzLmdlbmVyYWwnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2E+XG4gICAgPC9saT5cbiAgPC91bD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjdGFiQ29udGVudD5cbiAgPGRpdiBjbGFzcz1cInBsLTEgcHItMSBwdC0zIGJnLXdoaXRlIHBvc2l0aW9uLXJlbGF0aXZlIHRhYi1jb250YWluZXJcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiY3VycmVudFRhYiAmJiBjdXJyZW50VGFiID09PSBUYWJFbnVtLkdFTkVSQUxcIj5cbiAgICAgIDx2YWx0aW1vLW9iamVjdC1kZXRhaWw+PC92YWx0aW1vLW9iamVjdC1kZXRhaWw+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2024 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, map, of, Subject, throwError } from 'rxjs';
|
|
18
|
-
import { catchError, finalize, switchMap, take, tap } from 'rxjs/operators';
|
|
19
|
-
import { 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 "@angular/router";
|
|
23
|
-
import * as i3 from "@ngx-translate/core";
|
|
24
|
-
import * as i4 from "ngx-toastr";
|
|
25
|
-
import * as i5 from "@valtimo/components";
|
|
26
|
-
import * as i6 from "@valtimo/object-management";
|
|
27
|
-
import * as i7 from "@angular/common";
|
|
28
|
-
import * as i8 from "carbon-components-angular";
|
|
29
|
-
export class ObjectDetailComponent {
|
|
30
|
-
constructor(objectService, route, router, translate, toastr, breadcrumbService, objectManagementService) {
|
|
31
|
-
this.objectService = objectService;
|
|
32
|
-
this.route = route;
|
|
33
|
-
this.router = router;
|
|
34
|
-
this.translate = translate;
|
|
35
|
-
this.toastr = toastr;
|
|
36
|
-
this.breadcrumbService = breadcrumbService;
|
|
37
|
-
this.objectManagementService = objectManagementService;
|
|
38
|
-
this.loading$ = new BehaviorSubject(true);
|
|
39
|
-
this.submission$ = new BehaviorSubject({});
|
|
40
|
-
this.formValid$ = new BehaviorSubject(false);
|
|
41
|
-
this.showModal$ = new BehaviorSubject(false);
|
|
42
|
-
this.disableInput$ = new BehaviorSubject(false);
|
|
43
|
-
this.showDeleteModal$ = new Subject();
|
|
44
|
-
this.deleteObjectUrl$ = new BehaviorSubject('');
|
|
45
|
-
this.refreshObject$ = new BehaviorSubject(null);
|
|
46
|
-
this.objectManagementId$ = this.route.params.pipe(map(params => params.objectManagementId), tap(objectManagementId => {
|
|
47
|
-
if (!this._settingBreadcrumb && objectManagementId) {
|
|
48
|
-
this._settingBreadcrumb = true;
|
|
49
|
-
this.objectManagementService.getObjectById(objectManagementId).subscribe(objectType => {
|
|
50
|
-
if (objectType.id && objectType.title) {
|
|
51
|
-
this.setBreadcrumb(objectType.id, objectType.title);
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
}));
|
|
56
|
-
this.objectId$ = this.route.params.pipe(map(params => params.objectId));
|
|
57
|
-
this.formioFormSummary$ = combineLatest([
|
|
58
|
-
this.objectManagementId$,
|
|
59
|
-
this.objectId$,
|
|
60
|
-
this.refreshObject$,
|
|
61
|
-
]).pipe(switchMap(([objectManagementId, objectId]) => this.objectService
|
|
62
|
-
.getPrefilledObjectFromObjectUrl({ objectManagementId, objectId, formType: FormType.SUMMARY })
|
|
63
|
-
.pipe(catchError(() => this.handleRetrievingFormError()))), map(res => res?.formDefinition), tap(() => this.loading$.next(false)));
|
|
64
|
-
this.formioFormEdit$ = combineLatest([
|
|
65
|
-
this.objectManagementId$,
|
|
66
|
-
this.objectId$,
|
|
67
|
-
this.refreshObject$,
|
|
68
|
-
]).pipe(switchMap(([objectManagementId, objectId]) => this.objectService
|
|
69
|
-
.getPrefilledObjectFromObjectUrl({
|
|
70
|
-
objectManagementId,
|
|
71
|
-
objectId,
|
|
72
|
-
formType: FormType.EDITFORM,
|
|
73
|
-
})
|
|
74
|
-
.pipe(catchError(() => {
|
|
75
|
-
this.disableInput();
|
|
76
|
-
return this.handleRetrievingFormError();
|
|
77
|
-
}))), map(res => res?.formDefinition), tap(() => this.loading$.next(false)));
|
|
78
|
-
this._settingBreadcrumb = false;
|
|
79
|
-
}
|
|
80
|
-
ngOnDestroy() {
|
|
81
|
-
this.breadcrumbService.clearSecondBreadcrumb();
|
|
82
|
-
}
|
|
83
|
-
saveObject() {
|
|
84
|
-
this.disableInput();
|
|
85
|
-
this.updateObject();
|
|
86
|
-
}
|
|
87
|
-
deleteObject() {
|
|
88
|
-
this.showDeleteModal$.next(true);
|
|
89
|
-
}
|
|
90
|
-
deleteObjectConfirmation() {
|
|
91
|
-
this.disableInput();
|
|
92
|
-
combineLatest([this.objectManagementId$, this.objectId$])
|
|
93
|
-
.pipe(take(1))
|
|
94
|
-
.subscribe(([objectManagementId, objectId]) => {
|
|
95
|
-
this.objectService
|
|
96
|
-
.deleteObject({ objectManagementId, objectId })
|
|
97
|
-
.pipe(take(1), catchError((error) => this.handleDeleteObjectError(error)), finalize(() => {
|
|
98
|
-
this.enableInput();
|
|
99
|
-
}))
|
|
100
|
-
.subscribe(() => {
|
|
101
|
-
this.closeModal();
|
|
102
|
-
this.toastr.success(this.translate.instant('object.messages.objectDeleted'));
|
|
103
|
-
this.router.navigate([`/objects/${objectManagementId}`]);
|
|
104
|
-
});
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
openModal() {
|
|
108
|
-
this.showModal$.next(true);
|
|
109
|
-
this.enableInput();
|
|
110
|
-
}
|
|
111
|
-
onFormioChange(formio) {
|
|
112
|
-
if (formio.data != null) {
|
|
113
|
-
this.submission$.next(formio.data);
|
|
114
|
-
this.formValid$.next(formio.isValid);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
closeModal() {
|
|
118
|
-
this.showModal$.next(false);
|
|
119
|
-
}
|
|
120
|
-
updateObject() {
|
|
121
|
-
this.disableInput();
|
|
122
|
-
combineLatest([this.objectManagementId$, this.objectId$, this.submission$, this.formValid$])
|
|
123
|
-
.pipe(take(1))
|
|
124
|
-
.subscribe(([objectManagementId, objectId, submission, formValid]) => {
|
|
125
|
-
if (formValid) {
|
|
126
|
-
submission = this.objectService.removeEmptyStringValuesFromSubmission(submission);
|
|
127
|
-
this.objectService
|
|
128
|
-
.updateObject({ objectManagementId, objectId }, { ...submission })
|
|
129
|
-
.pipe(take(1), catchError((error) => this.handleUpdateObjectError(error)), finalize(() => {
|
|
130
|
-
this.enableInput();
|
|
131
|
-
}))
|
|
132
|
-
.subscribe(() => {
|
|
133
|
-
this.closeModal();
|
|
134
|
-
this.refreshObject();
|
|
135
|
-
this.toastr.success(this.translate.instant('object.messages.objectUpdated'));
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
refreshObject() {
|
|
141
|
-
this.refreshObject$.next(null);
|
|
142
|
-
}
|
|
143
|
-
disableInput() {
|
|
144
|
-
this.disableInput$.next(true);
|
|
145
|
-
}
|
|
146
|
-
enableInput() {
|
|
147
|
-
this.disableInput$.next(false);
|
|
148
|
-
}
|
|
149
|
-
handleRetrievingFormError() {
|
|
150
|
-
this.toastr.error(this.translate.instant('object.messages.objectRetrievingFormError'));
|
|
151
|
-
this.loading$.next(false);
|
|
152
|
-
return of(null);
|
|
153
|
-
}
|
|
154
|
-
handleUpdateObjectError(error) {
|
|
155
|
-
this.closeModal();
|
|
156
|
-
this.toastr.error(this.translate.instant('object.messages.objectUpdateError'));
|
|
157
|
-
return throwError(error);
|
|
158
|
-
}
|
|
159
|
-
handleDeleteObjectError(error) {
|
|
160
|
-
this.closeModal();
|
|
161
|
-
this.toastr.error(this.translate.instant('object.messages.objectDeleteError'));
|
|
162
|
-
return throwError(error);
|
|
163
|
-
}
|
|
164
|
-
setBreadcrumb(objectTypeId, title) {
|
|
165
|
-
this.breadcrumbService.setSecondBreadcrumb({
|
|
166
|
-
route: [`/objects/${objectTypeId}`],
|
|
167
|
-
content: title,
|
|
168
|
-
href: `/objects/${objectTypeId}`,
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ObjectDetailComponent, deps: [{ token: i1.ObjectService }, { token: i2.ActivatedRoute }, { token: i2.Router }, { token: i3.TranslateService }, { token: i4.ToastrService }, { token: i5.BreadcrumbService }, { token: i6.ObjectManagementService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
172
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ObjectDetailComponent, selector: "valtimo-object-detail", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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: [".row{margin:0}.object-schema{resize:none}valtimo-widget::ng-deep .card-border.card-full-default{border:none}\n/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i8.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i8.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i8.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "component", type: i5.FormioComponent, selector: "valtimo-form-io", inputs: ["options", "submission", "form", "readOnly", "formRefresh$"], outputs: ["submit", "change", "event"] }, { kind: "component", type: i8.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i8.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i8.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i8.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i8.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "component", type: i5.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "showOptionalButton", "optionalButtonText", "optionalButtonTextTranslationKey", "optionalButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm", "outputOnOptional", "spacerAfterCancelButton"], outputs: ["confirmEvent", "optionalEvent", "cancelEvent"] }, { kind: "directive", type: i5.ValtimoCdsModalDirective, selector: "[valtimoCdsModal]", inputs: ["enableOverflow"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
|
|
173
|
-
}
|
|
174
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ObjectDetailComponent, decorators: [{
|
|
175
|
-
type: Component,
|
|
176
|
-
args: [{ selector: 'valtimo-object-detail', template: "<!--\n ~ Copyright 2015-2024 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: [".row{margin:0}.object-schema{resize:none}valtimo-widget::ng-deep .card-border.card-full-default{border:none}\n/*!\n * Copyright 2015-2024 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"] }]
|
|
177
|
-
}], ctorParameters: () => [{ type: i1.ObjectService }, { type: i2.ActivatedRoute }, { type: i2.Router }, { type: i3.TranslateService }, { type: i4.ToastrService }, { type: i5.BreadcrumbService }, { type: i6.ObjectManagementService }] });
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL29iamVjdC9zcmMvbGliL2NvbXBvbmVudHMvb2JqZWN0LWRldGFpbC1jb250YWluZXIvdGFicy9vYmplY3QtZGV0YWlsL29iamVjdC1kZXRhaWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9vYmplY3Qvc3JjL2xpYi9jb21wb25lbnRzL29iamVjdC1kZXRhaWwtY29udGFpbmVyL3RhYnMvb2JqZWN0LWRldGFpbC9vYmplY3QtZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFDLFNBQVMsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQU1uRCxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDOUYsT0FBTyxFQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7QUFRekQsTUFBTSxPQUFPLHFCQUFxQjtJQWlFaEMsWUFDbUIsYUFBNEIsRUFDNUIsS0FBcUIsRUFDckIsTUFBYyxFQUNkLFNBQTJCLEVBQzNCLE1BQXFCLEVBQ3JCLGlCQUFvQyxFQUNwQyx1QkFBZ0Q7UUFOaEQsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNC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c3VJQThIQTs7NEZEL0ZhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHtDb21wb25lbnQsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtCcmVhZGNydW1iU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge09iamVjdE1hbmFnZW1lbnRTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9vYmplY3QtbWFuYWdlbWVudCc7XG5pbXBvcnQge1RvYXN0clNlcnZpY2V9IGZyb20gJ25neC10b2FzdHInO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QsIHRocm93RXJyb3J9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBmaW5hbGl6ZSwgc3dpdGNoTWFwLCB0YWtlLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Rm9ybVR5cGV9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9vYmplY3QubW9kZWwnO1xuaW1wb3J0IHtPYmplY3RTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9vYmplY3Quc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tb2JqZWN0LWRldGFpbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9vYmplY3QtZGV0YWlsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb2JqZWN0LWRldGFpbC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBPYmplY3REZXRhaWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICByZWFkb25seSBsb2FkaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIHJlYWRvbmx5IHN1Ym1pc3Npb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KHt9KTtcbiAgcmVhZG9ubHkgZm9ybVZhbGlkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBzaG93TW9kYWwkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGRpc2FibGVJbnB1dCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgc2hvd0RlbGV0ZU1vZGFsJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGRlbGV0ZU9iamVjdFVybCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVmcmVzaE9iamVjdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bGw+KG51bGwpO1xuXG4gIHJlYWRvbmx5IG9iamVjdE1hbmFnZW1lbnRJZCQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMucm91dGUucGFyYW1zLnBpcGUoXG4gICAgbWFwKHBhcmFtcyA9PiBwYXJhbXMub2JqZWN0TWFuYWdlbWVudElkKSxcbiAgICB0YXAob2JqZWN0TWFuYWdlbWVudElkID0+IHtcbiAgICAgIGlmICghdGhpcy5fc2V0dGluZ0JyZWFkY3J1bWIgJiYgb2JqZWN0TWFuYWdlbWVudElkKSB7XG4gICAgICAgIHRoaXMuX3NldHRpbmdCcmVhZGNydW1iID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5vYmplY3RNYW5hZ2VtZW50U2VydmljZS5nZXRPYmplY3RCeUlkKG9iamVjdE1hbmFnZW1lbnRJZCkuc3Vic2NyaWJlKG9iamVjdFR5cGUgPT4ge1xuICAgICAgICAgIGlmIChvYmplY3RUeXBlLmlkICYmIG9iamVjdFR5cGUudGl0bGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0QnJlYWRjcnVtYihvYmplY3RUeXBlLmlkLCBvYmplY3RUeXBlLnRpdGxlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pXG4gICk7XG4gIHJlYWRvbmx5IG9iamVjdElkJDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGhpcy5yb3V0ZS5wYXJhbXMucGlwZShtYXAocGFyYW1zID0+IHBhcmFtcy5vYmplY3RJZCkpO1xuXG4gIHJlYWRvbmx5IGZvcm1pb0Zvcm1TdW1tYXJ5JDogT2JzZXJ2YWJsZTxhbnk+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5vYmplY3RNYW5hZ2VtZW50SWQkLFxuICAgIHRoaXMub2JqZWN0SWQkLFxuICAgIHRoaXMucmVmcmVzaE9iamVjdCQsXG4gIF0pLnBpcGUoXG4gICAgc3dpdGNoTWFwKChbb2JqZWN0TWFuYWdlbWVudElkLCBvYmplY3RJZF0pID0+XG4gICAgICB0aGlzLm9iamVjdFNlcnZpY2VcbiAgICAgICAgLmdldFByZWZpbGxlZE9iamVjdEZyb21PYmplY3RVcmwoe29iamVjdE1hbmFnZW1lbnRJZCwgb2JqZWN0SWQsIGZvcm1UeXBlOiBGb3JtVHlwZS5TVU1NQVJZfSlcbiAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcigoKSA9PiB0aGlzLmhhbmRsZVJldHJpZXZpbmdGb3JtRXJyb3IoKSkpXG4gICAgKSxcbiAgICBtYXAocmVzID0+IHJlcz8uZm9ybURlZmluaXRpb24pLFxuICAgIHRhcCgoKSA9PiB0aGlzLmxvYWRpbmckLm5leHQoZmFsc2UpKVxuICApO1xuXG4gIHJlYWRvbmx5IGZvcm1pb0Zvcm1FZGl0JDogT2JzZXJ2YWJsZTxhbnk+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5vYmplY3RNYW5hZ2VtZW50SWQkLFxuICAgIHRoaXMub2JqZWN0SWQkLFxuICAgIHRoaXMucmVmcmVzaE9iamVjdCQsXG4gIF0pLnBpcGUoXG4gICAgc3dpdGNoTWFwKChbb2JqZWN0TWFuYWdlbWVudElkLCBvYmplY3RJZF0pID0+XG4gICAgICB0aGlzLm9iamVjdFNlcnZpY2VcbiAgICAgICAgLmdldFByZWZpbGxlZE9iamVjdEZyb21PYmplY3RVcmwoe1xuICAgICAgICAgIG9iamVjdE1hbmFnZW1lbnRJZCxcbiAgICAgICAgICBvYmplY3RJZCxcbiAgICAgICAgICBmb3JtVHlwZTogRm9ybVR5cGUuRURJVEZPUk0sXG4gICAgICAgIH0pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlSW5wdXQoKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZVJldHJpZXZpbmdGb3JtRXJyb3IoKTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgKSxcbiAgICBtYXAocmVzID0+IHJlcz8uZm9ybURlZmluaXRpb24pLFxuICAgIHRhcCgoKSA9PiB0aGlzLmxvYWRpbmckLm5leHQoZmFsc2UpKVxuICApO1xuXG4gIHByaXZhdGUgX3NldHRpbmdCcmVhZGNydW1iID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBvYmplY3RTZXJ2aWNlOiBPYmplY3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0b2FzdHI6IFRvYXN0clNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBicmVhZGNydW1iU2VydmljZTogQnJlYWRjcnVtYlNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBvYmplY3RNYW5hZ2VtZW50U2VydmljZTogT2JqZWN0TWFuYWdlbWVudFNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmJyZWFkY3J1bWJTZXJ2aWNlLmNsZWFyU2Vjb25kQnJlYWRjcnVtYigpO1xuICB9XG5cbiAgc2F2ZU9iamVjdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVJbnB1dCgpO1xuXG4gICAgdGhpcy51cGRhdGVPYmplY3QoKTtcbiAgfVxuXG4gIGRlbGV0ZU9iamVjdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dEZWxldGVNb2RhbCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIGRlbGV0ZU9iamVjdENvbmZpcm1hdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVJbnB1dCgpO1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMub2JqZWN0TWFuYWdlbWVudElkJCwgdGhpcy5vYmplY3RJZCRdKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKFtvYmplY3RNYW5hZ2VtZW50SWQsIG9iamVjdElkXSkgPT4ge1xuICAgICAgICB0aGlzLm9iamVjdFNlcnZpY2VcbiAgICAgICAgICAuZGVsZXRlT2JqZWN0KHtvYmplY3RNYW5hZ2VtZW50SWQsIG9iamVjdElkfSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogYW55KSA9PiB0aGlzLmhhbmRsZURlbGV0ZU9iamVjdEVycm9yKGVycm9yKSksXG4gICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuZW5hYmxlSW5wdXQoKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jbG9zZU1vZGFsKCk7XG4gICAgICAgICAgICB0aGlzLnRvYXN0ci5zdWNjZXNzKHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ29iamVjdC5tZXNzYWdlcy5vYmplY3REZWxldGVkJykpO1xuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2Avb2JqZWN0cy8ke29iamVjdE1hbmFnZW1lbnRJZH1gXSk7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG9wZW5Nb2RhbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dNb2RhbCQubmV4dCh0cnVlKTtcbiAgICB0aGlzLmVuYWJsZUlucHV0KCk7XG4gIH1cblxuICBvbkZvcm1pb0NoYW5nZShmb3JtaW8pOiB2b2lkIHtcbiAgICBpZiAoZm9ybWlvLmRhdGEgIT0gbnVsbCkge1xuICAgICAgdGhpcy5zdWJtaXNzaW9uJC5uZXh0KGZvcm1pby5kYXRhKTtcbiAgICAgIHRoaXMuZm9ybVZhbGlkJC5uZXh0KGZvcm1pby5pc1ZhbGlkKTtcbiAgICB9XG4gIH1cblxuICBjbG9zZU1vZGFsKCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd01vZGFsJC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlT2JqZWN0KCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZUlucHV0KCk7XG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5vYmplY3RNYW5hZ2VtZW50SWQkLCB0aGlzLm9iamVjdElkJCwgdGhpcy5zdWJtaXNzaW9uJCwgdGhpcy5mb3JtVmFsaWQkXSlcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKChbb2JqZWN0TWFuYWdlbWVudElkLCBvYmplY3RJZCwgc3VibWlzc2lvbiwgZm9ybVZhbGlkXSkgPT4ge1xuICAgICAgICBpZiAoZm9ybVZhbGlkKSB7XG4gICAgICAgICAgc3VibWlzc2lvbiA9IHRoaXMub2JqZWN0U2VydmljZS5yZW1vdmVFbXB0eVN0cmluZ1ZhbHVlc0Zyb21TdWJtaXNzaW9uKHN1Ym1pc3Npb24pO1xuICAgICAgICAgIHRoaXMub2JqZWN0U2VydmljZVxuICAgICAgICAgICAgLnVwZGF0ZU9iamVjdCh7b2JqZWN0TWFuYWdlbWVudElkLCBvYmplY3RJZH0sIHsuLi5zdWJtaXNzaW9ufSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogYW55KSA9PiB0aGlzLmhhbmRsZVVwZGF0ZU9iamVjdEVycm9yKGVycm9yKSksXG4gICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVuYWJsZUlucHV0KCk7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5jbG9zZU1vZGFsKCk7XG4gICAgICAgICAgICAgIHRoaXMucmVmcmVzaE9iamVjdCgpO1xuICAgICAgICAgICAgICB0aGlzLnRvYXN0ci5zdWNjZXNzKHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ29iamVjdC5tZXNzYWdlcy5vYmplY3RVcGRhdGVkJykpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZyZXNoT2JqZWN0KCk6IHZvaWQge1xuICAgIHRoaXMucmVmcmVzaE9iamVjdCQubmV4dChudWxsKTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzYWJsZUlucHV0KCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZUlucHV0JC5uZXh0KHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbmFibGVJbnB1dCgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVJbnB1dCQubmV4dChmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVJldHJpZXZpbmdGb3JtRXJyb3IoKSB7XG4gICAgdGhpcy50b2FzdHIuZXJyb3IodGhpcy50cmFuc2xhdGUuaW5zdGFudCgnb2JqZWN0Lm1lc3NhZ2VzLm9iamVjdFJldHJpZXZpbmdGb3JtRXJyb3InKSk7XG4gICAgdGhpcy5sb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgICByZXR1cm4gb2YobnVsbCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVVwZGF0ZU9iamVjdEVycm9yKGVycm9yOiBhbnkpIHtcbiAgICB0aGlzLmNsb3NlTW9kYWwoKTtcbiAgICB0aGlzLnRvYXN0ci5lcnJvcih0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdvYmplY3QubWVzc2FnZXMub2JqZWN0VXBkYXRlRXJyb3InKSk7XG4gICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVEZWxldGVPYmplY3RFcnJvcihlcnJvcjogYW55KSB7XG4gICAgdGhpcy5jbG9zZU1vZGFsKCk7XG4gICAgdGhpcy50b2FzdHIuZXJyb3IodGhpcy50cmFuc2xhdGUuaW5zdGFudCgnb2JqZWN0Lm1lc3NhZ2VzLm9iamVjdERlbGV0ZUVycm9yJykpO1xuICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0QnJlYWRjcnVtYihvYmplY3RUeXBlSWQ6IHN0cmluZywgdGl0bGU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuYnJlYWRjcnVtYlNlcnZpY2Uuc2V0U2Vjb25kQnJlYWRjcnVtYih7XG4gICAgICByb3V0ZTogW2Avb2JqZWN0cy8ke29iamVjdFR5cGVJZH1gXSxcbiAgICAgIGNvbnRlbnQ6IHRpdGxlLFxuICAgICAgaHJlZjogYC9vYmplY3RzLyR7b2JqZWN0VHlwZUlkfWAsXG4gICAgfSk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cbjxuZy1jb250YWluZXJcbiAgKm5nSWY9XCJ7XG4gICAgZm9ybWlvRm9ybVN1bW1hcnk6IGZvcm1pb0Zvcm1TdW1tYXJ5JCB8IGFzeW5jLFxuICAgIGRpc2FibGVJbnB1dDogZGlzYWJsZUlucHV0JCB8IGFzeW5jLFxuICB9IGFzIG9ic1wiXG4+XG4gIDxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWQgcHItMCBwbC0wXCI+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1yaWdodFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4tZ3JvdXAgbWItMVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbnM7IGNvbnRleHQ6IHtvYnM6IG9ic31cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIndpZGdldDsgY29udGV4dDoge29iczogb2JzfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3JlYXRlRWRpdE1vZGFsXCI+PC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkZWxldGVNb2RhbFwiPjwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjYnV0dG9ucyBsZXQtb2JzPVwib2JzXCI+XG4gIDxidXR0b24gW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlSW5wdXRcIiAoY2xpY2spPVwib3Blbk1vZGFsKClcIiBjZHNCdXR0b249XCJwcmltYXJ5XCIgc2l6ZT1cIm1kXCI+XG4gICAge3sgJ29iamVjdC5lZGl0T2JqZWN0JyB8IHRyYW5zbGF0ZSB9fVxuICAgIDxzdmcgY2xhc3M9XCJjZHMtLWJ0bl9faWNvblwiIGNkc0ljb249XCJhZGRcIiBzaXplPVwiMTZcIj48L3N2Zz5cbiAgPC9idXR0b24+XG5cbiAgPGJ1dHRvbiAoY2xpY2spPVwiZGVsZXRlT2JqZWN0KClcIiBjZHNCdXR0b249XCJkYW5nZXJcIiBzaXplPVwibWRcIiBjbGFzcz1cIm1sLTNcIj5cbiAgICB7eyAnb2JqZWN0LmRlbGV0ZU9iamVjdCcgfCB0cmFuc2xhdGUgfX1cbiAgICA8c3ZnIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIiBjZHNJY29uPVwidHJhc2gtY2FuXCIgc2l6ZT1cIjE2XCI+PC9zdmc+XG4gIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICN3aWRnZXQgbGV0LW9icz1cIm9ic1wiPlxuICA8dmFsdGltby1mb3JtLWlvXG4gICAgKm5nSWY9XCJvYnMuZm9ybWlvRm9ybVN1bW1hcnlcIlxuICAgIFtmb3JtXT1cIm9icy5mb3JtaW9Gb3JtU3VtbWFyeVwiXG4gICAgW3JlYWRPbmx5XT1cInRydWVcIlxuICA+PC92YWx0aW1vLWZvcm0taW8+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NyZWF0ZUVkaXRNb2RhbD5cbiAgPGNkcy1tb2RhbFxuICAgIHZhbHRpbW9DZHNNb2RhbFxuICAgICpuZ0lmPVwie1xuICAgICAgc2hvdzogc2hvd01vZGFsJCB8IGFzeW5jLFxuICAgICAgZm9ybVZhbGlkOiBmb3JtVmFsaWQkIHwgYXN5bmMsXG4gICAgICBkaXNhYmxlSW5wdXQ6IGRpc2FibGVJbnB1dCQgfCBhc3luYyxcbiAgICAgIGZvcm1pb0Zvcm1FZGl0OiBmb3JtaW9Gb3JtRWRpdCQgfCBhc3luYyxcbiAgICB9IGFzIG1vZGFsT2JzXCJcbiAgICBbb3Blbl09XCJtb2RhbE9icy5zaG93XCJcbiAgPlxuICAgIDxjZHMtbW9kYWwtaGVhZGVyIFtzaG93Q2xvc2VCdXR0b25dPVwidHJ1ZVwiIChjbG9zZVNlbGVjdCk9XCJjbG9zZU1vZGFsKClcIj5cbiAgICAgIDxoMyBjZHNNb2RhbEhlYWRlckhlYWRpbmc+XG4gICAgICAgIHt7ICdvYmplY3QuZWRpdE9iamVjdCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvaDM+XG4gICAgPC9jZHMtbW9kYWwtaGVhZGVyPlxuICAgIDxzZWN0aW9uIGNkc01vZGFsQ29udGVudD5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtb2RhbENvbnRlbnQ7IGNvbnRleHQ6IHttb2RhbE9iczogbW9kYWxPYnN9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9zZWN0aW9uPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtb2RhbEZvb3RlcjsgY29udGV4dDoge21vZGFsT2JzOiBtb2RhbE9ic31cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9jZHMtbW9kYWw+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI21vZGFsQ29udGVudCBsZXQtbW9kYWxPYnM9XCJtb2RhbE9ic1wiPlxuICA8dmFsdGltby1mb3JtLWlvXG4gICAgW2Zvcm1dPVwibW9kYWxPYnMuZm9ybWlvRm9ybUVkaXRcIlxuICAgIChjaGFuZ2UpPVwib25Gb3JtaW9DaGFuZ2UoJGV2ZW50KVwiXG4gID48L3ZhbHRpbW8tZm9ybS1pbz5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbW9kYWxGb290ZXIgbGV0LW1vZGFsT2JzPVwibW9kYWxPYnNcIj5cbiAgPGNkcy1tb2RhbC1mb290ZXI+XG4gICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2RzQnV0dG9uPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgW2F0dHIubW9kYWwtcHJpbWFyeS1mb2N1c109XCJ0cnVlXCJcbiAgICAgICAgKGNsaWNrKT1cImNsb3NlTW9kYWwoKVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJtb2RhbE9icy5kaXNhYmxlSW5wdXRcIlxuICAgICAgPlxuICAgICAgICB7eyAnb2JqZWN0LmNsb3NlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNkc0J1dHRvbj1cInByaW1hcnlcIlxuICAgICAgICBbYXR0ci5tb2RhbC1wcmltYXJ5LWZvY3VzXT1cInRydWVcIlxuICAgICAgICAoY2xpY2spPVwic2F2ZU9iamVjdCgpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIm1vZGFsT2JzLmRpc2FibGVJbnB1dCB8fCBtb2RhbE9icy5mb3JtVmFsaWQgPT09IGZhbHNlXCJcbiAgICAgID5cbiAgICAgICAge3sgJ29iamVjdC5zYXZlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvY2RzLW1vZGFsLWZvb3Rlcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbG9hZGluZz5cbiAgPGRpdiBjbGFzcz1cImxvYWRpbmctaWNvblwiPjxjZHMtbG9hZGluZz48L2Nkcy1sb2FkaW5nPjwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWxldGVNb2RhbD5cbiAgPHZhbHRpbW8tY29uZmlybWF0aW9uLW1vZGFsXG4gICAgW3Nob3dNb2RhbFN1YmplY3QkXT1cInNob3dEZWxldGVNb2RhbCRcIlxuICAgIFtvdXRwdXRPbkNvbmZpcm1dPVwiZGVsZXRlT2JqZWN0VXJsJCB8IGFzeW5jXCJcbiAgICAoY29uZmlybUV2ZW50KT1cImRlbGV0ZU9iamVjdENvbmZpcm1hdGlvbigpXCJcbiAgICBjb25maXJtQnV0dG9uVGV4dFRyYW5zbGF0aW9uS2V5PVwib2JqZWN0LmRlbGV0ZU9iamVjdFwiXG4gICAgdGl0bGVUcmFuc2xhdGlvbktleT1cIm9iamVjdC5kZWxldGVPYmplY3RcIlxuICAgIGNvbnRlbnRUcmFuc2xhdGlvbktleT1cIm9iamVjdC5kZWxldGVPYmplY3RDb25maXJtYXRpb25cIlxuICA+PC92YWx0aW1vLWNvbmZpcm1hdGlvbi1tb2RhbD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|