@valtimo/form-management 11.3.2 → 12.0.1
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/esm2022/lib/form-management-create/form-management-create.component.mjs +8 -8
- package/esm2022/lib/form-management-duplicate/form-management-duplicate.component.mjs +9 -9
- package/esm2022/lib/form-management-edit/form-management-edit.component.mjs +123 -87
- package/esm2022/lib/form-management-routing.module.mjs +8 -12
- package/esm2022/lib/form-management-upload/form-management-upload.component.mjs +8 -8
- package/esm2022/lib/form-management.component.mjs +61 -13
- package/esm2022/lib/form-management.module.mjs +37 -13
- package/esm2022/lib/models/form-definition.model.mjs +2 -2
- package/esm2022/lib/models/form-edit-tabs.enum.mjs +22 -0
- package/esm2022/lib/models/index.mjs +3 -2
- package/esm2022/lib/services/form-management-state.service.mjs +59 -0
- package/esm2022/lib/services/form-management.service.mjs +56 -0
- package/esm2022/lib/services/index.mjs +18 -0
- package/esm2022/lib/validators/no-duplicate-form.validator.mjs +2 -2
- package/esm2022/public-api.mjs +3 -3
- package/fesm2022/valtimo-form-management.mjs +358 -224
- package/fesm2022/valtimo-form-management.mjs.map +1 -1
- package/lib/form-management-create/form-management-create.component.d.ts +1 -1
- package/lib/form-management-create/form-management-create.component.d.ts.map +1 -1
- package/lib/form-management-duplicate/form-management-duplicate.component.d.ts +1 -1
- package/lib/form-management-duplicate/form-management-duplicate.component.d.ts.map +1 -1
- package/lib/form-management-edit/form-management-edit.component.d.ts +34 -13
- package/lib/form-management-edit/form-management-edit.component.d.ts.map +1 -1
- package/lib/form-management-routing.module.d.ts +0 -3
- package/lib/form-management-routing.module.d.ts.map +1 -1
- package/lib/form-management.component.d.ts +18 -4
- package/lib/form-management.component.d.ts.map +1 -1
- package/lib/form-management.module.d.ts +11 -12
- package/lib/form-management.module.d.ts.map +1 -1
- package/lib/models/form-edit-tabs.enum.d.ts +6 -0
- package/lib/models/form-edit-tabs.enum.d.ts.map +1 -0
- package/lib/models/index.d.ts +1 -0
- package/lib/models/index.d.ts.map +1 -1
- package/lib/services/form-management-state.service.d.ts +19 -0
- package/lib/services/form-management-state.service.d.ts.map +1 -0
- package/lib/{form-management.service.d.ts → services/form-management.service.d.ts} +1 -1
- package/lib/services/form-management.service.d.ts.map +1 -0
- package/lib/services/index.d.ts +3 -0
- package/lib/services/index.d.ts.map +1 -0
- package/lib/validators/no-duplicate-form.validator.d.ts +1 -1
- package/lib/validators/no-duplicate-form.validator.d.ts.map +1 -1
- package/package.json +3 -3
- package/public-api.d.ts +1 -1
- package/public-api.d.ts.map +1 -1
- package/esm2022/lib/form-management-list/form-management-list.component.mjs +0 -69
- package/esm2022/lib/form-management.service.mjs +0 -56
- package/lib/form-management-list/form-management-list.component.d.ts +0 -27
- package/lib/form-management-list/form-management-list.component.d.ts.map +0 -1
- package/lib/form-management.service.d.ts.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright 2015-
|
|
2
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3
3
|
*
|
|
4
4
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
5
|
* you may not use this file except in compliance with the License.
|
|
@@ -13,21 +13,24 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { Component, ViewEncapsulation } from '@angular/core';
|
|
17
|
-
import { PendingChangesComponent } from '@valtimo/components';
|
|
18
|
-
import { BehaviorSubject, Subscription } from 'rxjs';
|
|
19
|
-
import { first, take } from 'rxjs/operators';
|
|
16
|
+
import { Component, HostBinding, ViewEncapsulation } from '@angular/core';
|
|
17
|
+
import { PendingChangesComponent, } from '@valtimo/components';
|
|
18
|
+
import { BehaviorSubject, distinctUntilChanged, filter, Subscription, switchMap, take, tap, } from 'rxjs';
|
|
20
19
|
import { FormManagementDuplicateComponent } from '../form-management-duplicate/form-management-duplicate.component';
|
|
20
|
+
import { EDIT_TABS } from '../models';
|
|
21
21
|
import * as i0 from "@angular/core";
|
|
22
22
|
import * as i1 from "@valtimo/components";
|
|
23
|
-
import * as i2 from "../
|
|
23
|
+
import * as i2 from "../services";
|
|
24
24
|
import * as i3 from "carbon-components-angular";
|
|
25
25
|
import * as i4 from "@angular/router";
|
|
26
26
|
import * as i5 from "@angular/common";
|
|
27
27
|
import * as i6 from "../form-management-upload/form-management-upload.component";
|
|
28
28
|
import * as i7 from "@ngx-translate/core";
|
|
29
29
|
export class FormManagementEditComponent extends PendingChangesComponent {
|
|
30
|
-
|
|
30
|
+
get _formDefinition() {
|
|
31
|
+
return this._formDefinition$.getValue();
|
|
32
|
+
}
|
|
33
|
+
constructor(alertService, formManagementService, modalService, pageTitleService, route, router, shellService, pageHeaderService) {
|
|
31
34
|
super();
|
|
32
35
|
this.alertService = alertService;
|
|
33
36
|
this.formManagementService = formManagementService;
|
|
@@ -35,12 +38,32 @@ export class FormManagementEditComponent extends PendingChangesComponent {
|
|
|
35
38
|
this.pageTitleService = pageTitleService;
|
|
36
39
|
this.route = route;
|
|
37
40
|
this.router = router;
|
|
41
|
+
this.shellService = shellService;
|
|
42
|
+
this.pageHeaderService = pageHeaderService;
|
|
43
|
+
this.class = 'valtimo-form-management-edit';
|
|
38
44
|
this.modifiedFormDefinition = null;
|
|
39
|
-
this.
|
|
40
|
-
this.
|
|
45
|
+
this.validJsonChange = null;
|
|
46
|
+
this.CARBON_THEME = 'g10';
|
|
47
|
+
this.TABS = EDIT_TABS;
|
|
48
|
+
this.activeTab = EDIT_TABS.BUILDER;
|
|
49
|
+
this._formDefinition$ = new BehaviorSubject(null);
|
|
50
|
+
this.formDefinition$ = this._formDefinition$.pipe(filter((definition) => !!definition), distinctUntilChanged((prevFormDefinition, currFormDefinition) => JSON.stringify(prevFormDefinition?.formDefinition?.components) ===
|
|
51
|
+
JSON.stringify(currFormDefinition?.formDefinition?.components)), tap(() => {
|
|
52
|
+
if (!this._editorInitialized) {
|
|
53
|
+
this._editorInitialized = true;
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
this.pendingChanges = true;
|
|
57
|
+
}));
|
|
58
|
+
this.jsonFormDefinition$ = new BehaviorSubject(null);
|
|
59
|
+
this.jsonOutput$ = new BehaviorSubject(null);
|
|
41
60
|
this.reloading$ = new BehaviorSubject(false);
|
|
61
|
+
this.showDeleteModal$ = new BehaviorSubject(false);
|
|
62
|
+
this.showModal$ = new BehaviorSubject(false);
|
|
63
|
+
this.compactMode$ = this.pageHeaderService.compactMode$;
|
|
42
64
|
this._alertSub = Subscription.EMPTY;
|
|
43
|
-
this.
|
|
65
|
+
this._changeActive = false;
|
|
66
|
+
this._editorInitialized = false;
|
|
44
67
|
}
|
|
45
68
|
ngOnInit() {
|
|
46
69
|
this.pageTitleService.disableReset();
|
|
@@ -49,30 +72,50 @@ export class FormManagementEditComponent extends PendingChangesComponent {
|
|
|
49
72
|
}
|
|
50
73
|
ngOnDestroy() {
|
|
51
74
|
this._alertSub.unsubscribe();
|
|
75
|
+
this.pageTitleService.enableReset();
|
|
52
76
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
77
|
+
formBuilderChanged(event, definition) {
|
|
78
|
+
if (event.type === 'updateComponent') {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
this._changeActive = true;
|
|
82
|
+
this.modifiedFormDefinition = event.form;
|
|
83
|
+
this._formDefinition$.next({ ...this._formDefinition, formDefinition: event.form });
|
|
84
|
+
this.jsonFormDefinition$.next({ ...definition, value: JSON.stringify(event.form) });
|
|
85
|
+
this._changeActive = false;
|
|
86
|
+
}
|
|
87
|
+
delete() {
|
|
88
|
+
this.showDeleteModal$.next(true);
|
|
89
|
+
}
|
|
90
|
+
deleteFormDefinition(definition) {
|
|
91
|
+
this.pendingChanges = false;
|
|
92
|
+
this.formManagementService.deleteFormDefinition(definition.id).subscribe({
|
|
93
|
+
next: () => {
|
|
94
|
+
this.router.navigate(['/form-management']);
|
|
95
|
+
this.alertService.success('Form deleted');
|
|
59
96
|
},
|
|
60
97
|
error: () => {
|
|
61
|
-
this.alertService.error('Error
|
|
98
|
+
this.alertService.error('Error deleting Form');
|
|
62
99
|
},
|
|
63
100
|
});
|
|
64
101
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}
|
|
102
|
+
downloadFormDefinition(definition) {
|
|
103
|
+
const file = new Blob([JSON.stringify(definition.formDefinition)], {
|
|
104
|
+
type: 'text/json',
|
|
105
|
+
});
|
|
106
|
+
const link = document.createElement('a');
|
|
107
|
+
link.download = `form_${definition.name}.json`;
|
|
108
|
+
link.href = window.URL.createObjectURL(file);
|
|
109
|
+
link.click();
|
|
110
|
+
window.URL.revokeObjectURL(link.href);
|
|
111
|
+
link.remove();
|
|
112
|
+
}
|
|
113
|
+
modifyFormDefinition(definition) {
|
|
69
114
|
this.pendingChanges = false;
|
|
70
|
-
const form = JSON.stringify(this.modifiedFormDefinition !== null
|
|
71
|
-
? this.modifiedFormDefinition
|
|
72
|
-
: this.formDefinition.formDefinition);
|
|
115
|
+
const form = JSON.stringify(this.modifiedFormDefinition !== null ? this.modifiedFormDefinition : definition.formDefinition);
|
|
73
116
|
const request = {
|
|
74
|
-
id:
|
|
75
|
-
name:
|
|
117
|
+
id: definition.id,
|
|
118
|
+
name: definition.name,
|
|
76
119
|
formDefinition: form,
|
|
77
120
|
};
|
|
78
121
|
this.formManagementService.modifyFormDefinition(request).subscribe({
|
|
@@ -85,73 +128,50 @@ export class FormManagementEditComponent extends PendingChangesComponent {
|
|
|
85
128
|
},
|
|
86
129
|
});
|
|
87
130
|
}
|
|
88
|
-
|
|
89
|
-
this.
|
|
90
|
-
|
|
91
|
-
}
|
|
92
|
-
delete() {
|
|
93
|
-
if (!this._alertSub.closed) {
|
|
131
|
+
onSelectedTab(tab) {
|
|
132
|
+
this.activeTab = tab;
|
|
133
|
+
if (tab === EDIT_TABS.BUILDER) {
|
|
94
134
|
return;
|
|
95
135
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
{
|
|
99
|
-
label: 'Cancel',
|
|
100
|
-
class: 'btn btn-default',
|
|
101
|
-
value: false,
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
label: 'Delete',
|
|
105
|
-
class: 'btn btn-primary',
|
|
106
|
-
value: true,
|
|
107
|
-
},
|
|
108
|
-
];
|
|
109
|
-
this.alertService.notification(mssg, confirmations);
|
|
110
|
-
this._alertSub = this.alertService
|
|
111
|
-
.getAlertConfirmChangeEmitter()
|
|
112
|
-
.pipe(first())
|
|
113
|
-
.subscribe(alert => {
|
|
114
|
-
if (alert.confirm === true) {
|
|
115
|
-
this.deleteFormDefinition();
|
|
116
|
-
}
|
|
136
|
+
setTimeout(() => {
|
|
137
|
+
this.shellService.onMainContentResize();
|
|
117
138
|
});
|
|
118
139
|
}
|
|
119
|
-
|
|
120
|
-
if (!
|
|
140
|
+
onOutputChange(event) {
|
|
141
|
+
if (!event.data) {
|
|
121
142
|
return;
|
|
122
143
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
error: () => {
|
|
129
|
-
this.alertService.error('Error deleting Form');
|
|
130
|
-
},
|
|
131
|
-
});
|
|
144
|
+
else if (JSON.stringify(event.data) === this._activeOuput) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
this._activeOuput = JSON.stringify(event.data);
|
|
148
|
+
this.jsonOutput$.next({ value: this._activeOuput, language: 'json' });
|
|
132
149
|
}
|
|
133
|
-
|
|
134
|
-
if (
|
|
150
|
+
onValueChangeEvent(value, definition, disabled) {
|
|
151
|
+
if (this._changeActive || this.validJsonChange === false || disabled) {
|
|
135
152
|
return;
|
|
136
153
|
}
|
|
137
|
-
const
|
|
138
|
-
|
|
154
|
+
const parsedDefinition = JSON.parse(value);
|
|
155
|
+
this.modifiedFormDefinition = parsedDefinition;
|
|
156
|
+
this._formDefinition$.next({
|
|
157
|
+
...definition,
|
|
158
|
+
formDefinition: parsedDefinition,
|
|
139
159
|
});
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
160
|
+
}
|
|
161
|
+
onValidEvent(value, disabled) {
|
|
162
|
+
if (this._changeActive || disabled) {
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
this.validJsonChange = value;
|
|
146
166
|
}
|
|
147
167
|
showUploadModal() {
|
|
148
168
|
this.showModal$.next(true);
|
|
149
169
|
}
|
|
150
|
-
showDuplicateModal() {
|
|
170
|
+
showDuplicateModal(definition) {
|
|
151
171
|
this.modalService.create({
|
|
152
172
|
component: FormManagementDuplicateComponent,
|
|
153
173
|
inputs: {
|
|
154
|
-
formToDuplicate:
|
|
174
|
+
formToDuplicate: definition,
|
|
155
175
|
},
|
|
156
176
|
});
|
|
157
177
|
}
|
|
@@ -163,14 +183,15 @@ export class FormManagementEditComponent extends PendingChangesComponent {
|
|
|
163
183
|
this.alertService.error('Invalid form.io. Missing JSON field "components".');
|
|
164
184
|
return;
|
|
165
185
|
}
|
|
166
|
-
if (!this.formDefinition) {
|
|
167
|
-
return;
|
|
168
|
-
}
|
|
169
186
|
const components = definition.components;
|
|
170
|
-
const currentDefinition = this.modifiedFormDefinition ||
|
|
187
|
+
const currentDefinition = this.modifiedFormDefinition || definition.formDefinition;
|
|
171
188
|
const newDefinition = { ...currentDefinition, ...(components && { components }) };
|
|
172
189
|
this.modifiedFormDefinition = newDefinition;
|
|
173
|
-
|
|
190
|
+
definition.formDefinition = newDefinition;
|
|
191
|
+
this.jsonFormDefinition$.next({
|
|
192
|
+
value: JSON.stringify(newDefinition),
|
|
193
|
+
language: 'json',
|
|
194
|
+
});
|
|
174
195
|
this.reloading$.next(false);
|
|
175
196
|
}
|
|
176
197
|
onConfirmRedirect() {
|
|
@@ -187,11 +208,26 @@ export class FormManagementEditComponent extends PendingChangesComponent {
|
|
|
187
208
|
}
|
|
188
209
|
});
|
|
189
210
|
}
|
|
190
|
-
|
|
191
|
-
|
|
211
|
+
loadFormDefinition() {
|
|
212
|
+
this.route.paramMap
|
|
213
|
+
.pipe(take(1), switchMap((paramMap) => this.formManagementService.getFormDefinition(paramMap.get('id') ?? '')))
|
|
214
|
+
.subscribe((definition) => {
|
|
215
|
+
this._formDefinition$.next(definition);
|
|
216
|
+
this.pageTitleService.setCustomPageTitle(definition.name);
|
|
217
|
+
this.jsonFormDefinition$.next({
|
|
218
|
+
value: JSON.stringify(definition.formDefinition),
|
|
219
|
+
language: 'json',
|
|
220
|
+
});
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormManagementEditComponent, deps: [{ token: i1.AlertService }, { token: i2.FormManagementService }, { token: i3.ModalService }, { token: i1.PageTitleService }, { token: i4.ActivatedRoute }, { token: i4.Router }, { token: i1.ShellService }, { token: i1.PageHeaderService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
224
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: FormManagementEditComponent, selector: "valtimo-form-management-edit", host: { properties: { "class": "this.class" } }, usesInheritance: true, 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 formDefinition: formDefinition$ | async,\n jsonFormDefinition: jsonFormDefinition$ | async,\n jsonOutput: jsonOutput$ | async,\n compactMode: compactMode$ | async\n } as obs\"\n>\n @if (obs.formDefinition) {\n <ng-container renderInPageHeader [fullWidth]=\"true\">\n <ng-template>\n <div\n class=\"valtimo-form-management-edit__header-container\"\n [ngClass]=\"{'--compact': obs.compactMode}\"\n >\n @if (obs.formDefinition.readOnly) {\n <cds-tag size=\"sm\" type=\"blue\">{{ 'formManagement.readOnly' | translate }}</cds-tag>\n }\n\n <div class=\"valtimo-form-management-edit__header\">\n <cds-overflow-menu>\n <cds-overflow-menu-option (selected)=\"downloadFormDefinition(obs.formDefinition)\">\n {{ 'Download' | translate }}\n </cds-overflow-menu-option>\n\n <cds-overflow-menu-option\n [disabled]=\"obs.formDefinition.readOnly\"\n (selected)=\"showUploadModal()\"\n >\n {{ 'Upload' | translate }}\n </cds-overflow-menu-option>\n\n <cds-overflow-menu-option\n [disabled]=\"obs.formDefinition.readOnly\"\n (selected)=\"delete(obs.formDefinition)\"\n >\n {{ 'interface.delete' | translate }}\n </cds-overflow-menu-option>\n\n <cds-overflow-menu-option (selected)=\"showDuplicateModal(obs.formDefinition)\">\n {{ 'formManagement.duplicate' | translate }}\n </cds-overflow-menu-option>\n </cds-overflow-menu>\n\n <button\n cdsButton=\"primary\"\n [disabled]=\"obs.formDefinition.readOnly || !validJsonChange\"\n [size]=\"obs.compactMode ? 'sm' : 'md'\"\n (click)=\"modifyFormDefinition(obs.formDefinition)\"\n >\n {{ 'interface.save' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"save\" size=\"16\"></svg>\n </button>\n </div>\n </div>\n </ng-template>\n </ng-container>\n\n <cds-tabs type=\"contained\">\n <cds-tab [heading]=\"TABS.BUILDER | translate\" (selected)=\"onSelectedTab(TABS.BUILDER)\">\n <valtimo-form-io-builder\n *ngIf=\"(reloading$ | async) === false && activeTab === TABS.BUILDER\"\n [form]=\"obs.formDefinition.formDefinition\"\n (change)=\"formBuilderChanged($event, obs.jsonFormDefinition)\"\n ></valtimo-form-io-builder>\n </cds-tab>\n\n <cds-tab [heading]=\"TABS.EDITOR | translate\" (selected)=\"onSelectedTab(TABS.EDITOR)\">\n <ng-container\n *ngTemplateOutlet=\"\n jsonEditor;\n context: {\n data: {\n disabled: obs.formDefinition.readOnly,\n formDefinition: obs.formDefinition,\n model: obs.jsonFormDefinition\n }\n }\n \"\n ></ng-container>\n </cds-tab>\n\n <cds-tab\n [heading]=\"TABS.OUTPUT | translate\"\n (selected)=\"onSelectedTab(TABS.OUTPUT)\"\n class=\"valtimo-form-management-edit__output\"\n >\n <valtimo-form-io\n [form]=\"obs.formDefinition.formDefinition\"\n (change)=\"onOutputChange($event)\"\n ></valtimo-form-io>\n\n <ng-container\n *ngTemplateOutlet=\"\n jsonEditor;\n context: {\n data: {disabled: true, formDefinition: obs.formDefinition, model: obs.jsonOutput}\n }\n \"\n ></ng-container>\n </cds-tab>\n </cds-tabs>\n } @else {\n <valtimo-spinner></valtimo-spinner>\n }\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"interface.deleteConfirmation\"\n cancelButtonTextTranslationKey=\"interface.cancel\"\n [outputOnConfirm]=\"obs.formDefinition\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"dashboardManagement.delete\"\n (confirmEvent)=\"deleteFormDefinition($event)\"\n ></valtimo-confirmation-modal>\n\n <valtimo-form-management-upload\n [show$]=\"showModal$\"\n (definitionUploaded)=\"setFormDefinition($event)\"\n ></valtimo-form-management-upload>\n\n <ng-template #jsonEditor let-data=\"data\">\n <valtimo-editor\n [model]=\"data.model\"\n [disabled]=\"data.disabled\"\n (validEvent)=\"onValidEvent($event, data.disabled)\"\n (valueChangeEvent)=\"onValueChangeEvent($event, data.formDefinition, data.disabled)\"\n [fitPage]=\"true\"\n [fitPageExtraSpace]=\"80\"\n ></valtimo-editor>\n </ng-template>\n</ng-container>\n", styles: [".valtimo-form-management-edit__header{display:flex;align-items:center;justify-content:flex-end;gap:16px;margin-left:auto}.valtimo-form-management-edit__header-container{width:100%;display:flex;justify-content:space-between;align-items:flex-end;padding-bottom:4px}.valtimo-form-management-edit__header-container .cds--tag{margin:0;height:var(--cds-layout-size-height-md)}.valtimo-form-management-edit__header-container.--compact{align-items:flex-start;padding-bottom:0}.valtimo-form-management-edit__output .cds--tab-content{display:grid;grid-template-columns:1fr 1fr}.valtimo-form-management-edit__output .cds--tab-content>*{min-width:100%!important}.valtimo-form-management-edit .formbuilder .btn.formcomponent.drag-copy,.valtimo-form-management-edit .btn.formcomponent.gu-mirror{font-weight:400;background-color:silver;border-color:silver;color:#fff}.valtimo-form-management-edit .formbuilder .btn.formcomponent.drag-copy:hover,.valtimo-form-management-edit .formbuilder .btn.formcomponent.drag-copy:active,.valtimo-form-management-edit .btn.formcomponent.gu-mirror:hover,.valtimo-form-management-edit .btn.formcomponent.gu-mirror:active{box-shadow:none}.valtimo-form-management-edit .formbuilder .btn.formcomponent.drag-copy:active,.valtimo-form-management-edit .btn.formcomponent.gu-mirror:active{background-color:silver;border-color:silver}.valtimo-form-management-edit .formbuilder-header{padding-left:18px;padding-right:18px;font-size:18px;height:80px;border:1px solid #dee2e6;border-bottom:0}.valtimo-form-management-edit .formbuilder-header .formbuilder-title{margin-top:21px;margin-bottom:7px}.valtimo-form-management-edit .formbuilder-header .formbuilder-subtitle{margin-top:0;margin-bottom:12px}.valtimo-form-management-edit .formbuilder{background:#fff;padding:1rem;border:1px solid #dee2e6;margin-right:0!important;margin-left:0!important}.valtimo-form-management-edit .formbuilder .form-builder-panel .builder-group-button[aria-expanded=false],.valtimo-form-management-edit .formbuilder .form-builder-panel .builder-group-button[aria-expanded=\"\"]{color:#a9a9a9}.valtimo-form-management-edit .formbuilder .form-builder-panel .builder-group-button[aria-expanded=true]{color:#000}.valtimo-form-management-edit .formbuilder .drag-and-drop-alert{display:none}.valtimo-form-management-edit .formbuilder .formarea{padding:10px;border:solid 1px silver;background-color:#fff}.valtimo-form-management-edit .increase-size{font-size:1rem}.valtimo-form-management-edit .cds--tab-content{background:#fff!important}\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: "component", type: i1.FormioComponent, selector: "valtimo-form-io", inputs: ["options", "submission", "form", "readOnly", "formRefresh$"], outputs: ["submit", "change"] }, { kind: "component", type: i1.FormioBuilderComponent, selector: "valtimo-form-io-builder", inputs: ["form"], outputs: ["change"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: i3.OverflowMenu, selector: "cds-overflow-menu, ibm-overflow-menu", inputs: ["buttonLabel", "flip", "placement", "open", "customTrigger", "offset", "wrapperClass", "triggerClass"], outputs: ["openChange"] }, { kind: "component", type: i3.OverflowMenuOption, selector: "cds-overflow-menu-option, ibm-overflow-menu-option", inputs: ["divider", "type", "disabled", "href", "target", "innerClass"], outputs: ["selected"] }, { kind: "directive", type: i1.RenderInPageHeaderDirective, selector: "[renderInPageHeader]", inputs: ["fullWidth"] }, { kind: "component", type: i3.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i3.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive"], outputs: ["selected"] }, { kind: "component", type: i1.EditorComponent, selector: "valtimo-editor", inputs: ["editorOptions", "model", "disabled", "formatOnLoad", "widthPx", "heightPx", "heightStyle", "jsonSchema", "fitPage", "fitPageExtraSpace"], outputs: ["validEvent", "valueChangeEvent"] }, { kind: "component", type: i1.SpinnerComponent, selector: "valtimo-spinner", inputs: ["useBootstrapSpinner", "name", "type", "size", "color", "bdColor", "fullScreen", "noMarginTop"] }, { kind: "directive", type: i3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i1.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: "component", type: i3.Tag, selector: "cds-tag, ibm-tag", inputs: ["type", "size", "class"] }, { kind: "component", type: i6.FormManagementUploadComponent, selector: "valtimo-form-management-upload", inputs: ["show$"], outputs: ["definitionUploaded"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
192
225
|
}
|
|
193
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
226
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormManagementEditComponent, decorators: [{
|
|
194
227
|
type: Component,
|
|
195
|
-
args: [{ selector: 'valtimo-form-management-edit', encapsulation: ViewEncapsulation.None, template: "<!--\n ~ Copyright 2015-
|
|
196
|
-
}], ctorParameters:
|
|
197
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1tYW5hZ2VtZW50LWVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9mb3JtLW1hbmFnZW1lbnQvc3JjL2xpYi9mb3JtLW1hbmFnZW1lbnQtZWRpdC9mb3JtLW1hbmFnZW1lbnQtZWRpdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Zvcm0tbWFuYWdlbWVudC9zcmMvbGliL2Zvcm0tbWFuYWdlbWVudC1lZGl0L2Zvcm0tbWFuYWdlbWVudC1lZGl0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFDLFNBQVMsRUFBcUIsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHOUUsT0FBTyxFQUFpQyx1QkFBdUIsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRTVGLE9BQU8sRUFBQyxlQUFlLEVBQUUsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0sa0VBQWtFLENBQUM7Ozs7Ozs7OztBQVVsSCxNQUFNLE9BQU8sMkJBQ1gsU0FBUSx1QkFBdUI7SUFZL0IsWUFDbUIsWUFBMEIsRUFDMUIscUJBQTRDLEVBQzVDLFlBQTBCLEVBQzFCLGdCQUFrQyxFQUNsQyxLQUFxQixFQUNyQixNQUFjO1FBRS9CLEtBQUssRUFBRSxDQUFDO1FBUFMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLFVBQUssR0FBTCxLQUFLLENBQWdCO1FB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O1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQWpNVSwyQkFBMkI7bUdBQTNCLDJCQUEyQiwyRkNoQ3hDLHl4RkF5RUE7OzRGRHpDYSwyQkFBMkI7a0JBTnZDLFNBQVM7K0JBQ0UsOEJBQThCLGlCQUd6QixpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7Q29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtGb3JtaW9Gb3JtfSBmcm9tICdAZm9ybWlvL2FuZ3VsYXInO1xuaW1wb3J0IHtBbGVydFNlcnZpY2UsIFBhZ2VUaXRsZVNlcnZpY2UsIFBlbmRpbmdDaGFuZ2VzQ29tcG9uZW50fSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7TW9kYWxTZXJ2aWNlfSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaXJzdCwgdGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtGb3JtTWFuYWdlbWVudER1cGxpY2F0ZUNvbXBvbmVudH0gZnJvbSAnLi4vZm9ybS1tYW5hZ2VtZW50LWR1cGxpY2F0ZS9mb3JtLW1hbmFnZW1lbnQtZHVwbGljYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQge0Zvcm1NYW5hZ2VtZW50U2VydmljZX0gZnJvbSAnLi4vZm9ybS1tYW5hZ2VtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHtGb3JtRGVmaW5pdGlvbiwgTW9kaWZ5Rm9ybURlZmluaXRpb25SZXF1ZXN0fSBmcm9tICcuLi9tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLWZvcm0tbWFuYWdlbWVudC1lZGl0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tbWFuYWdlbWVudC1lZGl0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1tYW5hZ2VtZW50LWVkaXQuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybU1hbmFnZW1lbnRFZGl0Q29tcG9uZW50XG4gIGV4dGVuZHMgUGVuZGluZ0NoYW5nZXNDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveVxue1xuICBwdWJsaWMgbW9kaWZpZWRGb3JtRGVmaW5pdGlvbjogRm9ybWlvRm9ybSB8IG51bGwgPSBudWxsO1xuICBwdWJsaWMgZm9ybURlZmluaXRpb246IEZvcm1EZWZpbml0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIHJlYWRvbmx5IHNob3dNb2RhbCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IHJlbG9hZGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBwcml2YXRlIF9hbGVydFN1YjogU3Vic2NyaXB0aW9uID0gU3Vic2NyaXB0aW9uLkVNUFRZO1xuICBwcml2YXRlIF9mb3JtRGVmaW5pdGlvbklkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybU1hbmFnZW1lbnRTZXJ2aWNlOiBGb3JtTWFuYWdlbWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhZ2VUaXRsZVNlcnZpY2U6IFBhZ2VUaXRsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlclxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucGFnZVRpdGxlU2VydmljZS5kaXNhYmxlUmVzZXQoKTtcbiAgICB0aGlzLmxvYWRGb3JtRGVmaW5pdGlvbigpO1xuICAgIHRoaXMuY2hlY2tUb09wZW5VcGxvYWRNb2RhbCgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2FsZXJ0U3ViLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgbG9hZEZvcm1EZWZpbml0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX2Zvcm1EZWZpbml0aW9uSWQgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtTWFwLmdldCgnaWQnKTtcbiAgICB0aGlzLmZvcm1NYW5hZ2VtZW50U2VydmljZS5nZXRGb3JtRGVmaW5pdGlvbih0aGlzLl9mb3JtRGVmaW5pdGlvbklkID8/ICcnKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogZm9ybURlZmluaXRpb24gPT4ge1xuICAgICAgICB0aGlzLmZvcm1EZWZpbml0aW9uID0gZm9ybURlZmluaXRpb247XG4gICAgICAgIHRoaXMucGFnZVRpdGxlU2VydmljZS5zZXRDdXN0b21QYWdlVGl0bGUoZm9ybURlZmluaXRpb24ubmFtZSk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoJ0Vycm9yIHJldHJpZXZpbmcgRm9ybSBEZWZpbml0aW9uJyk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG1vZGlmeUZvcm1EZWZpbml0aW9uKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5mb3JtRGVmaW5pdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucGVuZGluZ0NoYW5nZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IGZvcm0gPSBKU09OLnN0cmluZ2lmeShcbiAgICAgIHRoaXMubW9kaWZpZWRGb3JtRGVmaW5pdGlvbiAhPT0gbnVsbFxuICAgICAgICA/IHRoaXMubW9kaWZpZWRGb3JtRGVmaW5pdGlvblxuICAgICAgICA6IHRoaXMuZm9ybURlZmluaXRpb24uZm9ybURlZmluaXRpb25cbiAgICApO1xuICAgIGNvbnN0IHJlcXVlc3Q6IE1vZGlmeUZvcm1EZWZpbml0aW9uUmVxdWVzdCA9IHtcbiAgICAgIGlkOiB0aGlzLmZvcm1EZWZpbml0aW9uLmlkLFxuICAgICAgbmFtZTogdGhpcy5mb3JtRGVmaW5pdGlvbi5uYW1lLFxuICAgICAgZm9ybURlZmluaXRpb246IGZvcm0sXG4gICAgfTtcbiAgICB0aGlzLmZvcm1NYW5hZ2VtZW50U2VydmljZS5tb2RpZnlGb3JtRGVmaW5pdGlvbihyZXF1ZXN0KS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9mb3JtLW1hbmFnZW1lbnQnXSk7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3MoJ0Zvcm0gZGVwbG95ZWQnKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcignRXJyb3IgZGVwbG95aW5nIEZvcm0nKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZm9ybUJ1aWxkZXJDaGFuZ2VkKGV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5wZW5kaW5nQ2hhbmdlcyA9IHRydWU7XG4gICAgdGhpcy5tb2RpZmllZEZvcm1EZWZpbml0aW9uID0gZXZlbnQuZm9ybTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9hbGVydFN1Yi5jbG9zZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbXNzZyA9ICdEZWxldGUgRm9ybT8nO1xuICAgIGNvbnN0IGNvbmZpcm1hdGlvbnMgPSBbXG4gICAgICB7XG4gICAgICAgIGxhYmVsOiAnQ2FuY2VsJyxcbiAgICAgICAgY2xhc3M6ICdidG4gYnRuLWRlZmF1bHQnLFxuICAgICAgICB2YWx1ZTogZmFsc2UsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBsYWJlbDogJ0RlbGV0ZScsXG4gICAgICAgIGNsYXNzOiAnYnRuIGJ0bi1wcmltYXJ5JyxcbiAgICAgICAgdmFsdWU6IHRydWUsXG4gICAgICB9LFxuICAgIF07XG4gICAgdGhpcy5hbGVydFNlcnZpY2Uubm90aWZpY2F0aW9uKG1zc2csIGNvbmZpcm1hdGlvbnMpO1xuXG4gICAgdGhpcy5fYWxlcnRTdWIgPSB0aGlzLmFsZXJ0U2VydmljZVxuICAgICAgLmdldEFsZXJ0Q29uZmlybUNoYW5nZUVtaXR0ZXIoKVxuICAgICAgLnBpcGUoZmlyc3QoKSlcbiAgICAgIC5zdWJzY3JpYmUoYWxlcnQgPT4ge1xuICAgICAgICBpZiAoYWxlcnQuY29uZmlybSA9PT0gdHJ1ZSkge1xuICAgICAgICAgIHRoaXMuZGVsZXRlRm9ybURlZmluaXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlRm9ybURlZmluaXRpb24oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmZvcm1EZWZpbml0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5mb3JtTWFuYWdlbWVudFNlcnZpY2UuZGVsZXRlRm9ybURlZmluaXRpb24odGhpcy5mb3JtRGVmaW5pdGlvbi5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvZm9ybS1tYW5hZ2VtZW50J10pO1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKCdGb3JtIGRlbGV0ZWQnKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcignRXJyb3IgZGVsZXRpbmcgRm9ybScpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkb3dubG9hZEZvcm1EZWZpbml0aW9uKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5mb3JtRGVmaW5pdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZpbGUgPSBuZXcgQmxvYihbSlNPTi5zdHJpbmdpZnkodGhpcy5mb3JtRGVmaW5pdGlvbi5mb3JtRGVmaW5pdGlvbildLCB7XG4gICAgICB0eXBlOiAndGV4dC9qc29uJyxcbiAgICB9KTtcbiAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgIGxpbmsuZG93bmxvYWQgPSBgZm9ybV8ke3RoaXMuZm9ybURlZmluaXRpb24ubmFtZX0uanNvbmA7XG4gICAgbGluay5ocmVmID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSk7XG4gICAgbGluay5jbGljaygpO1xuICAgIHdpbmRvdy5VUkwucmV2b2tlT2JqZWN0VVJMKGxpbmsuaHJlZik7XG4gICAgbGluay5yZW1vdmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93VXBsb2FkTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93TW9kYWwkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgc2hvd0R1cGxpY2F0ZU1vZGFsKCk6IHZvaWQge1xuICAgIHRoaXMubW9kYWxTZXJ2aWNlLmNyZWF0ZSh7XG4gICAgICBjb21wb25lbnQ6IEZvcm1NYW5hZ2VtZW50RHVwbGljYXRlQ29tcG9uZW50LFxuICAgICAgaW5wdXRzOiB7XG4gICAgICAgIGZvcm1Ub0R1cGxpY2F0ZTogdGhpcy5mb3JtRGVmaW5pdGlvbixcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2V0Rm9ybURlZmluaXRpb24oZm9ybURlZmluaXRpb246IGFueSk6IHZvaWQge1xuICAgIHRoaXMucmVsb2FkaW5nJC5uZXh0KHRydWUpO1xuXG4gICAgY29uc3QgZGVmaW5pdGlvbiA9IEpTT04ucGFyc2UoZm9ybURlZmluaXRpb24pO1xuICAgIGlmICghZGVmaW5pdGlvbj8uY29tcG9uZW50cykge1xuICAgICAgdGhpcy5yZWxvYWRpbmckLm5leHQoZmFsc2UpO1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoJ0ludmFsaWQgZm9ybS5pby4gTWlzc2luZyBKU09OIGZpZWxkIFwiY29tcG9uZW50c1wiLicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5mb3JtRGVmaW5pdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbXBvbmVudHMgPSBkZWZpbml0aW9uLmNvbXBvbmVudHM7XG4gICAgY29uc3QgY3VycmVudERlZmluaXRpb24gPSB0aGlzLm1vZGlmaWVkRm9ybURlZmluaXRpb24gfHwgdGhpcy5mb3JtRGVmaW5pdGlvbi5mb3JtRGVmaW5pdGlvbjtcbiAgICBjb25zdCBuZXdEZWZpbml0aW9uID0gey4uLmN1cnJlbnREZWZpbml0aW9uLCAuLi4oY29tcG9uZW50cyAmJiB7Y29tcG9uZW50c30pfTtcblxuICAgIHRoaXMubW9kaWZpZWRGb3JtRGVmaW5pdGlvbiA9IG5ld0RlZmluaXRpb247XG4gICAgdGhpcy5mb3JtRGVmaW5pdGlvbi5mb3JtRGVmaW5pdGlvbiA9IG5ld0RlZmluaXRpb247XG5cbiAgICB0aGlzLnJlbG9hZGluZyQubmV4dChmYWxzZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Db25maXJtUmVkaXJlY3QoKTogdm9pZCB7XG4gICAgY29uc3QgY2FuY2VsQnV0dG9uOiBIVE1MRWxlbWVudCB8IG51bGwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdidXR0b25bcmVmPVwiY2FuY2VsQnV0dG9uXCJdJyk7XG4gICAgaWYgKCFjYW5jZWxCdXR0b24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjYW5jZWxCdXR0b24uY2xpY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tUb09wZW5VcGxvYWRNb2RhbCgpOiB2b2lkIHtcbiAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XG4gICAgICBpZiAocGFyYW1zPy51cGxvYWQgPT09ICd0cnVlJykge1xuICAgICAgICB0aGlzLnNob3dVcGxvYWRNb2RhbCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyMyBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxkaXYgY2xhc3M9XCJtYWluLWNvbnRlbnQgcHQtMFwiPlxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCIgKm5nSWY9XCJmb3JtRGVmaW5pdGlvblwiPlxuICAgIDxkaXYgY2xhc3M9XCJidG4tZ3JvdXAgbXQtbTNweCBtYi0zIGZsb2F0LXJpZ2h0XCI+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zcGFjZVwiIChjbGljayk9XCJkb3dubG9hZEZvcm1EZWZpbml0aW9uKClcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJpY29uIG1kaSBtZGktZG93bmxvYWQgbXItMVwiPjwvaT5cbiAgICAgICAge3sgJ0Rvd25sb2FkJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNwYWNlXCJcbiAgICAgICAgKGNsaWNrKT1cInNob3dVcGxvYWRNb2RhbCgpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImZvcm1EZWZpbml0aW9uLnJlYWRPbmx5XCJcbiAgICAgID5cbiAgICAgICAgPGkgY2xhc3M9XCJpY29uIG1kaSBtZGktdXBsb2FkIG1yLTFcIj48L2k+XG4gICAgICAgIHt7ICdVcGxvYWQnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRhbmdlciBidG4tc3BhY2VcIlxuICAgICAgICAoY2xpY2spPVwiZGVsZXRlKClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybURlZmluaXRpb24ucmVhZE9ubHlcIlxuICAgICAgPlxuICAgICAgICA8aSBjbGFzcz1cImljb24gbWRpIG1kaS1kZWxldGUgbXItMVwiPjwvaT57eyAnZm9ybU1hbmFnZW1lbnQuZGVsZXRlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzIGJ0bi1zcGFjZVwiXG4gICAgICAgIChjbGljayk9XCJtb2RpZnlGb3JtRGVmaW5pdGlvbigpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImZvcm1EZWZpbml0aW9uLnJlYWRPbmx5XCJcbiAgICAgID5cbiAgICAgICAgPGkgY2xhc3M9XCJpY29uIG1kaSBtZGktdXBsb2FkIG1yLTFcIj48L2k+e3sgJ2Zvcm1NYW5hZ2VtZW50LmRlcGxveScgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zcGFjZVwiIChjbGljayk9XCJzaG93RHVwbGljYXRlTW9kYWwoKVwiPlxuICAgICAgICA8aSBjbGFzcz1cImljb24gbWRpIG1kaS1jb250ZW50LWR1cGxpY2F0ZSBtci0xXCI+PC9pXG4gICAgICAgID57eyAnZm9ybU1hbmFnZW1lbnQuZHVwbGljYXRlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNsZWFyZml4XCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImJnLWxpZ2h0IGZvcm1idWlsZGVyLWhlYWRlciBvdmVyZmxvdy1hdXRvXCI+XG4gICAgICA8aDMgY2xhc3M9XCJmb3JtYnVpbGRlci10aXRsZVwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZm9ybURlZmluaXRpb24ucmVhZE9ubHlcIiBjbGFzcz1cInB1bGwtcmlnaHRcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLXBpbGwgYmFkZ2UtaW5mbyBpbmNyZWFzZS1zaXplXCI+e3tcbiAgICAgICAgICAgICdmb3JtTWFuYWdlbWVudC5yZWFkT25seScgfCB0cmFuc2xhdGVcbiAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2gzPlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIocmVsb2FkaW5nJCB8IGFzeW5jKSA9PT0gZmFsc2VcIj5cbiAgICAgIDx2YWx0aW1vLWZvcm0taW8tYnVpbGRlclxuICAgICAgICBbZm9ybV09XCJmb3JtRGVmaW5pdGlvbi5mb3JtRGVmaW5pdGlvblwiXG4gICAgICAgIChjaGFuZ2UpPVwiZm9ybUJ1aWxkZXJDaGFuZ2VkKCRldmVudClcIlxuICAgICAgPjwvdmFsdGltby1mb3JtLWlvLWJ1aWxkZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjx2YWx0aW1vLWZvcm0tbWFuYWdlbWVudC11cGxvYWRcbiAgW3Nob3ckXT1cInNob3dNb2RhbCRcIlxuICAoZGVmaW5pdGlvblVwbG9hZGVkKT1cInNldEZvcm1EZWZpbml0aW9uKCRldmVudClcIlxuPjwvdmFsdGltby1mb3JtLW1hbmFnZW1lbnQtdXBsb2FkPlxuIl19
|
|
228
|
+
args: [{ selector: 'valtimo-form-management-edit', encapsulation: ViewEncapsulation.None, 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 formDefinition: formDefinition$ | async,\n jsonFormDefinition: jsonFormDefinition$ | async,\n jsonOutput: jsonOutput$ | async,\n compactMode: compactMode$ | async\n } as obs\"\n>\n @if (obs.formDefinition) {\n <ng-container renderInPageHeader [fullWidth]=\"true\">\n <ng-template>\n <div\n class=\"valtimo-form-management-edit__header-container\"\n [ngClass]=\"{'--compact': obs.compactMode}\"\n >\n @if (obs.formDefinition.readOnly) {\n <cds-tag size=\"sm\" type=\"blue\">{{ 'formManagement.readOnly' | translate }}</cds-tag>\n }\n\n <div class=\"valtimo-form-management-edit__header\">\n <cds-overflow-menu>\n <cds-overflow-menu-option (selected)=\"downloadFormDefinition(obs.formDefinition)\">\n {{ 'Download' | translate }}\n </cds-overflow-menu-option>\n\n <cds-overflow-menu-option\n [disabled]=\"obs.formDefinition.readOnly\"\n (selected)=\"showUploadModal()\"\n >\n {{ 'Upload' | translate }}\n </cds-overflow-menu-option>\n\n <cds-overflow-menu-option\n [disabled]=\"obs.formDefinition.readOnly\"\n (selected)=\"delete(obs.formDefinition)\"\n >\n {{ 'interface.delete' | translate }}\n </cds-overflow-menu-option>\n\n <cds-overflow-menu-option (selected)=\"showDuplicateModal(obs.formDefinition)\">\n {{ 'formManagement.duplicate' | translate }}\n </cds-overflow-menu-option>\n </cds-overflow-menu>\n\n <button\n cdsButton=\"primary\"\n [disabled]=\"obs.formDefinition.readOnly || !validJsonChange\"\n [size]=\"obs.compactMode ? 'sm' : 'md'\"\n (click)=\"modifyFormDefinition(obs.formDefinition)\"\n >\n {{ 'interface.save' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"save\" size=\"16\"></svg>\n </button>\n </div>\n </div>\n </ng-template>\n </ng-container>\n\n <cds-tabs type=\"contained\">\n <cds-tab [heading]=\"TABS.BUILDER | translate\" (selected)=\"onSelectedTab(TABS.BUILDER)\">\n <valtimo-form-io-builder\n *ngIf=\"(reloading$ | async) === false && activeTab === TABS.BUILDER\"\n [form]=\"obs.formDefinition.formDefinition\"\n (change)=\"formBuilderChanged($event, obs.jsonFormDefinition)\"\n ></valtimo-form-io-builder>\n </cds-tab>\n\n <cds-tab [heading]=\"TABS.EDITOR | translate\" (selected)=\"onSelectedTab(TABS.EDITOR)\">\n <ng-container\n *ngTemplateOutlet=\"\n jsonEditor;\n context: {\n data: {\n disabled: obs.formDefinition.readOnly,\n formDefinition: obs.formDefinition,\n model: obs.jsonFormDefinition\n }\n }\n \"\n ></ng-container>\n </cds-tab>\n\n <cds-tab\n [heading]=\"TABS.OUTPUT | translate\"\n (selected)=\"onSelectedTab(TABS.OUTPUT)\"\n class=\"valtimo-form-management-edit__output\"\n >\n <valtimo-form-io\n [form]=\"obs.formDefinition.formDefinition\"\n (change)=\"onOutputChange($event)\"\n ></valtimo-form-io>\n\n <ng-container\n *ngTemplateOutlet=\"\n jsonEditor;\n context: {\n data: {disabled: true, formDefinition: obs.formDefinition, model: obs.jsonOutput}\n }\n \"\n ></ng-container>\n </cds-tab>\n </cds-tabs>\n } @else {\n <valtimo-spinner></valtimo-spinner>\n }\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"interface.deleteConfirmation\"\n cancelButtonTextTranslationKey=\"interface.cancel\"\n [outputOnConfirm]=\"obs.formDefinition\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"dashboardManagement.delete\"\n (confirmEvent)=\"deleteFormDefinition($event)\"\n ></valtimo-confirmation-modal>\n\n <valtimo-form-management-upload\n [show$]=\"showModal$\"\n (definitionUploaded)=\"setFormDefinition($event)\"\n ></valtimo-form-management-upload>\n\n <ng-template #jsonEditor let-data=\"data\">\n <valtimo-editor\n [model]=\"data.model\"\n [disabled]=\"data.disabled\"\n (validEvent)=\"onValidEvent($event, data.disabled)\"\n (valueChangeEvent)=\"onValueChangeEvent($event, data.formDefinition, data.disabled)\"\n [fitPage]=\"true\"\n [fitPageExtraSpace]=\"80\"\n ></valtimo-editor>\n </ng-template>\n</ng-container>\n", styles: [".valtimo-form-management-edit__header{display:flex;align-items:center;justify-content:flex-end;gap:16px;margin-left:auto}.valtimo-form-management-edit__header-container{width:100%;display:flex;justify-content:space-between;align-items:flex-end;padding-bottom:4px}.valtimo-form-management-edit__header-container .cds--tag{margin:0;height:var(--cds-layout-size-height-md)}.valtimo-form-management-edit__header-container.--compact{align-items:flex-start;padding-bottom:0}.valtimo-form-management-edit__output .cds--tab-content{display:grid;grid-template-columns:1fr 1fr}.valtimo-form-management-edit__output .cds--tab-content>*{min-width:100%!important}.valtimo-form-management-edit .formbuilder .btn.formcomponent.drag-copy,.valtimo-form-management-edit .btn.formcomponent.gu-mirror{font-weight:400;background-color:silver;border-color:silver;color:#fff}.valtimo-form-management-edit .formbuilder .btn.formcomponent.drag-copy:hover,.valtimo-form-management-edit .formbuilder .btn.formcomponent.drag-copy:active,.valtimo-form-management-edit .btn.formcomponent.gu-mirror:hover,.valtimo-form-management-edit .btn.formcomponent.gu-mirror:active{box-shadow:none}.valtimo-form-management-edit .formbuilder .btn.formcomponent.drag-copy:active,.valtimo-form-management-edit .btn.formcomponent.gu-mirror:active{background-color:silver;border-color:silver}.valtimo-form-management-edit .formbuilder-header{padding-left:18px;padding-right:18px;font-size:18px;height:80px;border:1px solid #dee2e6;border-bottom:0}.valtimo-form-management-edit .formbuilder-header .formbuilder-title{margin-top:21px;margin-bottom:7px}.valtimo-form-management-edit .formbuilder-header .formbuilder-subtitle{margin-top:0;margin-bottom:12px}.valtimo-form-management-edit .formbuilder{background:#fff;padding:1rem;border:1px solid #dee2e6;margin-right:0!important;margin-left:0!important}.valtimo-form-management-edit .formbuilder .form-builder-panel .builder-group-button[aria-expanded=false],.valtimo-form-management-edit .formbuilder .form-builder-panel .builder-group-button[aria-expanded=\"\"]{color:#a9a9a9}.valtimo-form-management-edit .formbuilder .form-builder-panel .builder-group-button[aria-expanded=true]{color:#000}.valtimo-form-management-edit .formbuilder .drag-and-drop-alert{display:none}.valtimo-form-management-edit .formbuilder .formarea{padding:10px;border:solid 1px silver;background-color:#fff}.valtimo-form-management-edit .increase-size{font-size:1rem}.valtimo-form-management-edit .cds--tab-content{background:#fff!important}\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"] }]
|
|
229
|
+
}], ctorParameters: () => [{ type: i1.AlertService }, { type: i2.FormManagementService }, { type: i3.ModalService }, { type: i1.PageTitleService }, { type: i4.ActivatedRoute }, { type: i4.Router }, { type: i1.ShellService }, { type: i1.PageHeaderService }], propDecorators: { class: [{
|
|
230
|
+
type: HostBinding,
|
|
231
|
+
args: ['class']
|
|
232
|
+
}] } });
|
|
233
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1tYW5hZ2VtZW50LWVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9mb3JtLW1hbmFnZW1lbnQvc3JjL2xpYi9mb3JtLW1hbmFnZW1lbnQtZWRpdC9mb3JtLW1hbmFnZW1lbnQtZWRpdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Zvcm0tbWFuYWdlbWVudC9zcmMvbGliL2Zvcm0tbWFuYWdlbWVudC1lZGl0L2Zvcm0tbWFuYWdlbWVudC1lZGl0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFDLFNBQVMsRUFBRSxXQUFXLEVBQXFCLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRzNGLE9BQU8sRUFLTCx1QkFBdUIsR0FFeEIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQ0wsZUFBZSxFQUNmLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sWUFBWSxFQUNaLFNBQVMsRUFDVCxJQUFJLEVBQ0osR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0sa0VBQWtFLENBQUM7QUFDbEgsT0FBTyxFQUFDLFNBQVMsRUFBOEMsTUFBTSxXQUFXLENBQUM7Ozs7Ozs7OztBQVNqRixNQUFNLE9BQU8sMkJBQ1gsU0FBUSx1QkFBdUI7SUFjL0IsSUFBWSxlQUFlO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFDLENBQUM7SUE0QkQsWUFDbUIsWUFBMEIsRUFDMUIscUJBQTRDLEVBQzVDLFlBQTBCLEVBQzFCLGdCQUFrQyxFQUNsQyxLQUFxQixFQUNyQixNQUFjLEVBQ2QsWUFBMEIsRUFDMUIsaUJBQW9DO1FBRXJELEtBQUssRUFBRSxD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QUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUM7Z0JBQzVCLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUM7Z0JBQ2hELFFBQVEsRUFBRSxNQUFNO2FBQ2pCLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0F4UFUsMkJBQTJCO2tHQUEzQiwyQkFBMkIsNElDOUN4Qyx5NEtBcUpBOzsyRkR2R2EsMkJBQTJCO2tCQU52QyxTQUFTOytCQUNFLDhCQUE4QixpQkFHekIsaUJBQWlCLENBQUMsSUFBSTs0UkFNQyxLQUFLO3NCQUExQyxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHtDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUGFyYW1NYXAsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7Rm9ybWlvRm9ybX0gZnJvbSAnQGZvcm1pby9hbmd1bGFyJztcbmltcG9ydCB7XG4gIEFsZXJ0U2VydmljZSxcbiAgRWRpdG9yTW9kZWwsXG4gIFBhZ2VIZWFkZXJTZXJ2aWNlLFxuICBQYWdlVGl0bGVTZXJ2aWNlLFxuICBQZW5kaW5nQ2hhbmdlc0NvbXBvbmVudCxcbiAgU2hlbGxTZXJ2aWNlLFxufSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7TW9kYWxTZXJ2aWNlfSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbHRlcixcbiAgU3Vic2NyaXB0aW9uLFxuICBzd2l0Y2hNYXAsXG4gIHRha2UsXG4gIHRhcCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0Zvcm1NYW5hZ2VtZW50RHVwbGljYXRlQ29tcG9uZW50fSBmcm9tICcuLi9mb3JtLW1hbmFnZW1lbnQtZHVwbGljYXRlL2Zvcm0tbWFuYWdlbWVudC1kdXBsaWNhdGUuY29tcG9uZW50JztcbmltcG9ydCB7RURJVF9UQUJTLCBGb3JtRGVmaW5pdGlvbiwgTW9kaWZ5Rm9ybURlZmluaXRpb25SZXF1ZXN0fSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHtGb3JtTWFuYWdlbWVudFNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1mb3JtLW1hbmFnZW1lbnQtZWRpdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLW1hbmFnZW1lbnQtZWRpdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tbWFuYWdlbWVudC1lZGl0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1NYW5hZ2VtZW50RWRpdENvbXBvbmVudFxuICBleHRlbmRzIFBlbmRpbmdDaGFuZ2VzQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIHB1YmxpYyByZWFkb25seSBjbGFzcyA9ICd2YWx0aW1vLWZvcm0tbWFuYWdlbWVudC1lZGl0JztcblxuICBwdWJsaWMgbW9kaWZpZWRGb3JtRGVmaW5pdGlvbjogRm9ybWlvRm9ybSB8IG51bGwgPSBudWxsO1xuICBwdWJsaWMgdmFsaWRKc29uQ2hhbmdlOiBib29sZWFuIHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIHJlYWRvbmx5IENBUkJPTl9USEVNRSA9ICdnMTAnO1xuICBwdWJsaWMgcmVhZG9ubHkgVEFCUyA9IEVESVRfVEFCUztcblxuICBwdWJsaWMgYWN0aXZlVGFiID0gRURJVF9UQUJTLkJVSUxERVI7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZm9ybURlZmluaXRpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGb3JtRGVmaW5pdGlvbiB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIGdldCBfZm9ybURlZmluaXRpb24oKTogRm9ybURlZmluaXRpb24ge1xuICAgIHJldHVybiB0aGlzLl9mb3JtRGVmaW5pdGlvbiQuZ2V0VmFsdWUoKTtcbiAgfVxuICBwdWJsaWMgcmVhZG9ubHkgZm9ybURlZmluaXRpb24kID0gdGhpcy5fZm9ybURlZmluaXRpb24kLnBpcGUoXG4gICAgZmlsdGVyKChkZWZpbml0aW9uOiBGb3JtRGVmaW5pdGlvbiB8IG51bGwpID0+ICEhZGVmaW5pdGlvbiksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoXG4gICAgICAocHJldkZvcm1EZWZpbml0aW9uLCBjdXJyRm9ybURlZmluaXRpb24pID0+XG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHByZXZGb3JtRGVmaW5pdGlvbj8uZm9ybURlZmluaXRpb24/LmNvbXBvbmVudHMpID09PVxuICAgICAgICBKU09OLnN0cmluZ2lmeShjdXJyRm9ybURlZmluaXRpb24/LmZvcm1EZWZpbml0aW9uPy5jb21wb25lbnRzKVxuICAgICksXG4gICAgdGFwKCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5fZWRpdG9ySW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgdGhpcy5fZWRpdG9ySW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLnBlbmRpbmdDaGFuZ2VzID0gdHJ1ZTtcbiAgICB9KVxuICApO1xuICBwdWJsaWMgcmVhZG9ubHkganNvbkZvcm1EZWZpbml0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RWRpdG9yTW9kZWwgfCBudWxsPihudWxsKTtcbiAgcHVibGljIHJlYWRvbmx5IGpzb25PdXRwdXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxFZGl0b3JNb2RlbCB8IG51bGw+KG51bGwpO1xuICBwdWJsaWMgcmVhZG9ubHkgcmVsb2FkaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2hvd0RlbGV0ZU1vZGFsJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2hvd01vZGFsJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgY29tcGFjdE1vZGUkID0gdGhpcy5wYWdlSGVhZGVyU2VydmljZS5jb21wYWN0TW9kZSQ7XG5cbiAgcHJpdmF0ZSBfYWN0aXZlT3VwdXQ6IHN0cmluZztcbiAgcHJpdmF0ZSBfYWxlcnRTdWI6IFN1YnNjcmlwdGlvbiA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcbiAgcHJpdmF0ZSBfY2hhbmdlQWN0aXZlID0gZmFsc2U7XG4gIHByaXZhdGUgX2VkaXRvckluaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1NYW5hZ2VtZW50U2VydmljZTogRm9ybU1hbmFnZW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwYWdlVGl0bGVTZXJ2aWNlOiBQYWdlVGl0bGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzaGVsbFNlcnZpY2U6IFNoZWxsU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhZ2VIZWFkZXJTZXJ2aWNlOiBQYWdlSGVhZGVyU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucGFnZVRpdGxlU2VydmljZS5kaXNhYmxlUmVzZXQoKTtcbiAgICB0aGlzLmxvYWRGb3JtRGVmaW5pdGlvbigpO1xuICAgIHRoaXMuY2hlY2tUb09wZW5VcGxvYWRNb2RhbCgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2FsZXJ0U3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5wYWdlVGl0bGVTZXJ2aWNlLmVuYWJsZVJlc2V0KCk7XG4gIH1cblxuICBwdWJsaWMgZm9ybUJ1aWxkZXJDaGFuZ2VkKGV2ZW50LCBkZWZpbml0aW9uOiBFZGl0b3JNb2RlbCk6IHZvaWQge1xuICAgIGlmIChldmVudC50eXBlID09PSAndXBkYXRlQ29tcG9uZW50Jykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9jaGFuZ2VBY3RpdmUgPSB0cnVlO1xuICAgIHRoaXMubW9kaWZpZWRGb3JtRGVmaW5pdGlvbiA9IGV2ZW50LmZvcm07XG4gICAgdGhpcy5fZm9ybURlZmluaXRpb24kLm5leHQoey4uLnRoaXMuX2Zvcm1EZWZpbml0aW9uLCBmb3JtRGVmaW5pdGlvbjogZXZlbnQuZm9ybX0pO1xuICAgIHRoaXMuanNvbkZvcm1EZWZpbml0aW9uJC5uZXh0KHsuLi5kZWZpbml0aW9uLCB2YWx1ZTogSlNPTi5zdHJpbmdpZnkoZXZlbnQuZm9ybSl9KTtcbiAgICB0aGlzLl9jaGFuZ2VBY3RpdmUgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGUoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93RGVsZXRlTW9kYWwkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlRm9ybURlZmluaXRpb24oZGVmaW5pdGlvbjogRm9ybURlZmluaXRpb24pOiB2b2lkIHtcbiAgICB0aGlzLnBlbmRpbmdDaGFuZ2VzID0gZmFsc2U7XG4gICAgdGhpcy5mb3JtTWFuYWdlbWVudFNlcnZpY2UuZGVsZXRlRm9ybURlZmluaXRpb24oZGVmaW5pdGlvbi5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvZm9ybS1tYW5hZ2VtZW50J10pO1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKCdGb3JtIGRlbGV0ZWQnKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcignRXJyb3IgZGVsZXRpbmcgRm9ybScpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkb3dubG9hZEZvcm1EZWZpbml0aW9uKGRlZmluaXRpb246IEZvcm1EZWZpbml0aW9uKTogdm9pZCB7XG4gICAgY29uc3QgZmlsZSA9IG5ldyBCbG9iKFtKU09OLnN0cmluZ2lmeShkZWZpbml0aW9uLmZvcm1EZWZpbml0aW9uKV0sIHtcbiAgICAgIHR5cGU6ICd0ZXh0L2pzb24nLFxuICAgIH0pO1xuICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgbGluay5kb3dubG9hZCA9IGBmb3JtXyR7ZGVmaW5pdGlvbi5uYW1lfS5qc29uYDtcbiAgICBsaW5rLmhyZWYgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKTtcbiAgICBsaW5rLmNsaWNrKCk7XG4gICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwobGluay5ocmVmKTtcbiAgICBsaW5rLnJlbW92ZSgpO1xuICB9XG5cbiAgcHVibGljIG1vZGlmeUZvcm1EZWZpbml0aW9uKGRlZmluaXRpb246IEZvcm1EZWZpbml0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5wZW5kaW5nQ2hhbmdlcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgZm9ybSA9IEpTT04uc3RyaW5naWZ5KFxuICAgICAgdGhpcy5tb2RpZmllZEZvcm1EZWZpbml0aW9uICE9PSBudWxsID8gdGhpcy5tb2RpZmllZEZvcm1EZWZpbml0aW9uIDogZGVmaW5pdGlvbi5mb3JtRGVmaW5pdGlvblxuICAgICk7XG4gICAgY29uc3QgcmVxdWVzdDogTW9kaWZ5Rm9ybURlZmluaXRpb25SZXF1ZXN0ID0ge1xuICAgICAgaWQ6IGRlZmluaXRpb24uaWQsXG4gICAgICBuYW1lOiBkZWZpbml0aW9uLm5hbWUsXG4gICAgICBmb3JtRGVmaW5pdGlvbjogZm9ybSxcbiAgICB9O1xuICAgIHRoaXMuZm9ybU1hbmFnZW1lbnRTZXJ2aWNlLm1vZGlmeUZvcm1EZWZpbml0aW9uKHJlcXVlc3QpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2Zvcm0tbWFuYWdlbWVudCddKTtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc3VjY2VzcygnRm9ybSBkZXBsb3llZCcpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKCdFcnJvciBkZXBsb3lpbmcgRm9ybScpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdGVkVGFiKHRhYjogRURJVF9UQUJTKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVUYWIgPSB0YWI7XG5cbiAgICBpZiAodGFiID09PSBFRElUX1RBQlMuQlVJTERFUikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zaGVsbFNlcnZpY2Uub25NYWluQ29udGVudFJlc2l6ZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uT3V0cHV0Q2hhbmdlKGV2ZW50OiB7ZGF0YTogb2JqZWN0IHwgdW5kZWZpbmVkfSk6IHZvaWQge1xuICAgIGlmICghZXZlbnQuZGF0YSkge1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSBpZiAoSlNPTi5zdHJpbmdpZnkoZXZlbnQuZGF0YSkgPT09IHRoaXMuX2FjdGl2ZU91cHV0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fYWN0aXZlT3VwdXQgPSBKU09OLnN0cmluZ2lmeShldmVudC5kYXRhKTtcbiAgICB0aGlzLmpzb25PdXRwdXQkLm5leHQoe3ZhbHVlOiB0aGlzLl9hY3RpdmVPdXB1dCwgbGFuZ3VhZ2U6ICdqc29uJ30pO1xuICB9XG5cbiAgcHVibGljIG9uVmFsdWVDaGFuZ2VFdmVudCh2YWx1ZTogc3RyaW5nLCBkZWZpbml0aW9uOiBGb3JtRGVmaW5pdGlvbiwgZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fY2hhbmdlQWN0aXZlIHx8IHRoaXMudmFsaWRKc29uQ2hhbmdlID09PSBmYWxzZSB8fCBkaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcnNlZERlZmluaXRpb24gPSBKU09OLnBhcnNlKHZhbHVlKTtcblxuICAgIHRoaXMubW9kaWZpZWRGb3JtRGVmaW5pdGlvbiA9IHBhcnNlZERlZmluaXRpb247XG5cbiAgICB0aGlzLl9mb3JtRGVmaW5pdGlvbiQubmV4dCh7XG4gICAgICAuLi5kZWZpbml0aW9uLFxuICAgICAgZm9ybURlZmluaXRpb246IHBhcnNlZERlZmluaXRpb24sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25WYWxpZEV2ZW50KHZhbHVlOiBib29sZWFuLCBkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh0aGlzLl9jaGFuZ2VBY3RpdmUgfHwgZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnZhbGlkSnNvbkNoYW5nZSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIHNob3dVcGxvYWRNb2RhbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dNb2RhbCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93RHVwbGljYXRlTW9kYWwoZGVmaW5pdGlvbjogRm9ybURlZmluaXRpb24pOiB2b2lkIHtcbiAgICB0aGlzLm1vZGFsU2VydmljZS5jcmVhdGUoe1xuICAgICAgY29tcG9uZW50OiBGb3JtTWFuYWdlbWVudER1cGxpY2F0ZUNvbXBvbmVudCxcbiAgICAgIGlucHV0czoge1xuICAgICAgICBmb3JtVG9EdXBsaWNhdGU6IGRlZmluaXRpb24sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNldEZvcm1EZWZpbml0aW9uKGZvcm1EZWZpbml0aW9uOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnJlbG9hZGluZyQubmV4dCh0cnVlKTtcblxuICAgIGNvbnN0IGRlZmluaXRpb24gPSBKU09OLnBhcnNlKGZvcm1EZWZpbml0aW9uKTtcbiAgICBpZiAoIWRlZmluaXRpb24/LmNvbXBvbmVudHMpIHtcbiAgICAgIHRoaXMucmVsb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKCdJbnZhbGlkIGZvcm0uaW8uIE1pc3NpbmcgSlNPTiBmaWVsZCBcImNvbXBvbmVudHNcIi4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb21wb25lbnRzID0gZGVmaW5pdGlvbi5jb21wb25lbnRzO1xuICAgIGNvbnN0IGN1cnJlbnREZWZpbml0aW9uID0gdGhpcy5tb2RpZmllZEZvcm1EZWZpbml0aW9uIHx8IGRlZmluaXRpb24uZm9ybURlZmluaXRpb247XG4gICAgY29uc3QgbmV3RGVmaW5pdGlvbiA9IHsuLi5jdXJyZW50RGVmaW5pdGlvbiwgLi4uKGNvbXBvbmVudHMgJiYge2NvbXBvbmVudHN9KX07XG5cbiAgICB0aGlzLm1vZGlmaWVkRm9ybURlZmluaXRpb24gPSBuZXdEZWZpbml0aW9uO1xuICAgIGRlZmluaXRpb24uZm9ybURlZmluaXRpb24gPSBuZXdEZWZpbml0aW9uO1xuXG4gICAgdGhpcy5qc29uRm9ybURlZmluaXRpb24kLm5leHQoe1xuICAgICAgdmFsdWU6IEpTT04uc3RyaW5naWZ5KG5ld0RlZmluaXRpb24pLFxuICAgICAgbGFuZ3VhZ2U6ICdqc29uJyxcbiAgICB9KTtcblxuICAgIHRoaXMucmVsb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkNvbmZpcm1SZWRpcmVjdCgpOiB2b2lkIHtcbiAgICBjb25zdCBjYW5jZWxCdXR0b246IEhUTUxFbGVtZW50IHwgbnVsbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbltyZWY9XCJjYW5jZWxCdXR0b25cIl0nKTtcbiAgICBpZiAoIWNhbmNlbEJ1dHRvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNhbmNlbEJ1dHRvbi5jbGljaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1RvT3BlblVwbG9hZE1vZGFsKCk6IHZvaWQge1xuICAgIHRoaXMucm91dGUucXVlcnlQYXJhbXMucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUocGFyYW1zID0+IHtcbiAgICAgIGlmIChwYXJhbXM/LnVwbG9hZCA9PT0gJ3RydWUnKSB7XG4gICAgICAgIHRoaXMuc2hvd1VwbG9hZE1vZGFsKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRGb3JtRGVmaW5pdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLnJvdXRlLnBhcmFtTWFwXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgc3dpdGNoTWFwKChwYXJhbU1hcDogUGFyYW1NYXApID0+XG4gICAgICAgICAgdGhpcy5mb3JtTWFuYWdlbWVudFNlcnZpY2UuZ2V0Rm9ybURlZmluaXRpb24ocGFyYW1NYXAuZ2V0KCdpZCcpID8/ICcnKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChkZWZpbml0aW9uOiBGb3JtRGVmaW5pdGlvbikgPT4ge1xuICAgICAgICB0aGlzLl9mb3JtRGVmaW5pdGlvbiQubmV4dChkZWZpbml0aW9uKTtcbiAgICAgICAgdGhpcy5wYWdlVGl0bGVTZXJ2aWNlLnNldEN1c3RvbVBhZ2VUaXRsZShkZWZpbml0aW9uLm5hbWUpO1xuICAgICAgICB0aGlzLmpzb25Gb3JtRGVmaW5pdGlvbiQubmV4dCh7XG4gICAgICAgICAgdmFsdWU6IEpTT04uc3RyaW5naWZ5KGRlZmluaXRpb24uZm9ybURlZmluaXRpb24pLFxuICAgICAgICAgIGxhbmd1YWdlOiAnanNvbicsXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cbjxuZy1jb250YWluZXJcbiAgKm5nSWY9XCJ7XG4gICAgZm9ybURlZmluaXRpb246IGZvcm1EZWZpbml0aW9uJCB8IGFzeW5jLFxuICAgIGpzb25Gb3JtRGVmaW5pdGlvbjoganNvbkZvcm1EZWZpbml0aW9uJCB8IGFzeW5jLFxuICAgIGpzb25PdXRwdXQ6IGpzb25PdXRwdXQkIHwgYXN5bmMsXG4gICAgY29tcGFjdE1vZGU6IGNvbXBhY3RNb2RlJCB8IGFzeW5jXG4gIH0gYXMgb2JzXCJcbj5cbiAgQGlmIChvYnMuZm9ybURlZmluaXRpb24pIHtcbiAgICA8bmctY29udGFpbmVyIHJlbmRlckluUGFnZUhlYWRlciBbZnVsbFdpZHRoXT1cInRydWVcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwidmFsdGltby1mb3JtLW1hbmFnZW1lbnQtZWRpdF9faGVhZGVyLWNvbnRhaW5lclwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieyctLWNvbXBhY3QnOiBvYnMuY29tcGFjdE1vZGV9XCJcbiAgICAgICAgPlxuICAgICAgICAgIEBpZiAob2JzLmZvcm1EZWZpbml0aW9uLnJlYWRPbmx5KSB7XG4gICAgICAgICAgICA8Y2RzLXRhZyBzaXplPVwic21cIiB0eXBlPVwiYmx1ZVwiPnt7ICdmb3JtTWFuYWdlbWVudC5yZWFkT25seScgfCB0cmFuc2xhdGUgfX08L2Nkcy10YWc+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZhbHRpbW8tZm9ybS1tYW5hZ2VtZW50LWVkaXRfX2hlYWRlclwiPlxuICAgICAgICAgICAgPGNkcy1vdmVyZmxvdy1tZW51PlxuICAgICAgICAgICAgICA8Y2RzLW92ZXJmbG93LW1lbnUtb3B0aW9uIChzZWxlY3RlZCk9XCJkb3dubG9hZEZvcm1EZWZpbml0aW9uKG9icy5mb3JtRGVmaW5pdGlvbilcIj5cbiAgICAgICAgICAgICAgICB7eyAnRG93bmxvYWQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgIDwvY2RzLW92ZXJmbG93LW1lbnUtb3B0aW9uPlxuXG4gICAgICAgICAgICAgIDxjZHMtb3ZlcmZsb3ctbWVudS1vcHRpb25cbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwib2JzLmZvcm1EZWZpbml0aW9uLnJlYWRPbmx5XCJcbiAgICAgICAgICAgICAgICAoc2VsZWN0ZWQpPVwic2hvd1VwbG9hZE1vZGFsKClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgJ1VwbG9hZCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgPC9jZHMtb3ZlcmZsb3ctbWVudS1vcHRpb24+XG5cbiAgICAgICAgICAgICAgPGNkcy1vdmVyZmxvdy1tZW51LW9wdGlvblxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJvYnMuZm9ybURlZmluaXRpb24ucmVhZE9ubHlcIlxuICAgICAgICAgICAgICAgIChzZWxlY3RlZCk9XCJkZWxldGUob2JzLmZvcm1EZWZpbml0aW9uKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyAnaW50ZXJmYWNlLmRlbGV0ZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgPC9jZHMtb3ZlcmZsb3ctbWVudS1vcHRpb24+XG5cbiAgICAgICAgICAgICAgPGNkcy1vdmVyZmxvdy1tZW51LW9wdGlvbiAoc2VsZWN0ZWQpPVwic2hvd0R1cGxpY2F0ZU1vZGFsKG9icy5mb3JtRGVmaW5pdGlvbilcIj5cbiAgICAgICAgICAgICAgICB7eyAnZm9ybU1hbmFnZW1lbnQuZHVwbGljYXRlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICA8L2Nkcy1vdmVyZmxvdy1tZW51LW9wdGlvbj5cbiAgICAgICAgICAgIDwvY2RzLW92ZXJmbG93LW1lbnU+XG5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2RzQnV0dG9uPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJvYnMuZm9ybURlZmluaXRpb24ucmVhZE9ubHkgfHwgIXZhbGlkSnNvbkNoYW5nZVwiXG4gICAgICAgICAgICAgIFtzaXplXT1cIm9icy5jb21wYWN0TW9kZSA/ICdzbScgOiAnbWQnXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm1vZGlmeUZvcm1EZWZpbml0aW9uKG9icy5mb3JtRGVmaW5pdGlvbilcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyAnaW50ZXJmYWNlLnNhdmUnIHwgdHJhbnNsYXRlIH19XG5cbiAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImNkcy0tYnRuX19pY29uXCIgY2RzSWNvbj1cInNhdmVcIiBzaXplPVwiMTZcIj48L3N2Zz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8Y2RzLXRhYnMgdHlwZT1cImNvbnRhaW5lZFwiPlxuICAgICAgPGNkcy10YWIgW2hlYWRpbmddPVwiVEFCUy5CVUlMREVSIHwgdHJhbnNsYXRlXCIgKHNlbGVjdGVkKT1cIm9uU2VsZWN0ZWRUYWIoVEFCUy5CVUlMREVSKVwiPlxuICAgICAgICA8dmFsdGltby1mb3JtLWlvLWJ1aWxkZXJcbiAgICAgICAgICAqbmdJZj1cIihyZWxvYWRpbmckIHwgYXN5bmMpID09PSBmYWxzZSAmJiBhY3RpdmVUYWIgPT09IFRBQlMuQlVJTERFUlwiXG4gICAgICAgICAgW2Zvcm1dPVwib2JzLmZvcm1EZWZpbml0aW9uLmZvcm1EZWZpbml0aW9uXCJcbiAgICAgICAgICAoY2hhbmdlKT1cImZvcm1CdWlsZGVyQ2hhbmdlZCgkZXZlbnQsIG9icy5qc29uRm9ybURlZmluaXRpb24pXCJcbiAgICAgICAgPjwvdmFsdGltby1mb3JtLWlvLWJ1aWxkZXI+XG4gICAgICA8L2Nkcy10YWI+XG5cbiAgICAgIDxjZHMtdGFiIFtoZWFkaW5nXT1cIlRBQlMuRURJVE9SIHwgdHJhbnNsYXRlXCIgKHNlbGVjdGVkKT1cIm9uU2VsZWN0ZWRUYWIoVEFCUy5FRElUT1IpXCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAganNvbkVkaXRvcjtcbiAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGRpc2FibGVkOiBvYnMuZm9ybURlZmluaXRpb24ucmVhZE9ubHksXG4gICAgICAgICAgICAgICAgZm9ybURlZmluaXRpb246IG9icy5mb3JtRGVmaW5pdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbDogb2JzLmpzb25Gb3JtRGVmaW5pdGlvblxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9jZHMtdGFiPlxuXG4gICAgICA8Y2RzLXRhYlxuICAgICAgICBbaGVhZGluZ109XCJUQUJTLk9VVFBVVCB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIChzZWxlY3RlZCk9XCJvblNlbGVjdGVkVGFiKFRBQlMuT1VUUFVUKVwiXG4gICAgICAgIGNsYXNzPVwidmFsdGltby1mb3JtLW1hbmFnZW1lbnQtZWRpdF9fb3V0cHV0XCJcbiAgICAgID5cbiAgICAgICAgPHZhbHRpbW8tZm9ybS1pb1xuICAgICAgICAgIFtmb3JtXT1cIm9icy5mb3JtRGVmaW5pdGlvbi5mb3JtRGVmaW5pdGlvblwiXG4gICAgICAgICAgKGNoYW5nZSk9XCJvbk91dHB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgPjwvdmFsdGltby1mb3JtLWlvPlxuXG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAganNvbkVkaXRvcjtcbiAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgZGF0YToge2Rpc2FibGVkOiB0cnVlLCBmb3JtRGVmaW5pdGlvbjogb2JzLmZvcm1EZWZpbml0aW9uLCBtb2RlbDogb2JzLmpzb25PdXRwdXR9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9jZHMtdGFiPlxuICAgIDwvY2RzLXRhYnM+XG4gIH0gQGVsc2Uge1xuICAgIDx2YWx0aW1vLXNwaW5uZXI+PC92YWx0aW1vLXNwaW5uZXI+XG4gIH1cblxuICA8dmFsdGltby1jb25maXJtYXRpb24tbW9kYWxcbiAgICBjb25maXJtQnV0dG9uVGV4dFRyYW5zbGF0aW9uS2V5PVwiaW50ZXJmYWNlLmRlbGV0ZVwiXG4gICAgY29uZmlybUJ1dHRvblR5cGU9XCJkYW5nZXJcIlxuICAgIGNvbnRlbnRUcmFuc2xhdGlvbktleT1cImludGVyZmFjZS5kZWxldGVDb25maXJtYXRpb25cIlxuICAgIGNhbmNlbEJ1dHRvblRleHRUcmFuc2xhdGlvbktleT1cImludGVyZmFjZS5jYW5jZWxcIlxuICAgIFtvdXRwdXRPbkNvbmZpcm1dPVwib2JzLmZvcm1EZWZpbml0aW9uXCJcbiAgICBbc2hvd01vZGFsU3ViamVjdCRdPVwic2hvd0RlbGV0ZU1vZGFsJFwiXG4gICAgdGl0bGVUcmFuc2xhdGlvbktleT1cImRhc2hib2FyZE1hbmFnZW1lbnQuZGVsZXRlXCJcbiAgICAoY29uZmlybUV2ZW50KT1cImRlbGV0ZUZvcm1EZWZpbml0aW9uKCRldmVudClcIlxuICA+PC92YWx0aW1vLWNvbmZpcm1hdGlvbi1tb2RhbD5cblxuICA8dmFsdGltby1mb3JtLW1hbmFnZW1lbnQtdXBsb2FkXG4gICAgW3Nob3ckXT1cInNob3dNb2RhbCRcIlxuICAgIChkZWZpbml0aW9uVXBsb2FkZWQpPVwic2V0Rm9ybURlZmluaXRpb24oJGV2ZW50KVwiXG4gID48L3ZhbHRpbW8tZm9ybS1tYW5hZ2VtZW50LXVwbG9hZD5cblxuICA8bmctdGVtcGxhdGUgI2pzb25FZGl0b3IgbGV0LWRhdGE9XCJkYXRhXCI+XG4gICAgPHZhbHRpbW8tZWRpdG9yXG4gICAgICBbbW9kZWxdPVwiZGF0YS5tb2RlbFwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGF0YS5kaXNhYmxlZFwiXG4gICAgICAodmFsaWRFdmVudCk9XCJvblZhbGlkRXZlbnQoJGV2ZW50LCBkYXRhLmRpc2FibGVkKVwiXG4gICAgICAodmFsdWVDaGFuZ2VFdmVudCk9XCJvblZhbHVlQ2hhbmdlRXZlbnQoJGV2ZW50LCBkYXRhLmZvcm1EZWZpbml0aW9uLCBkYXRhLmRpc2FibGVkKVwiXG4gICAgICBbZml0UGFnZV09XCJ0cnVlXCJcbiAgICAgIFtmaXRQYWdlRXh0cmFTcGFjZV09XCI4MFwiXG4gICAgPjwvdmFsdGltby1lZGl0b3I+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright 2015-
|
|
2
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3
3
|
*
|
|
4
4
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
5
|
* you may not use this file except in compliance with the License.
|
|
@@ -45,19 +45,15 @@ const routes = [
|
|
|
45
45
|
},
|
|
46
46
|
];
|
|
47
47
|
export class FormManagementRoutingModule {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
}
|
|
52
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormManagementRoutingModule, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
53
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: FormManagementRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] }); }
|
|
54
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormManagementRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] }); }
|
|
48
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormManagementRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
49
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: FormManagementRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] }); }
|
|
50
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormManagementRoutingModule, imports: [RouterModule.forRoot(routes, RouterUtils.getRouterExtraOptions()), RouterModule] }); }
|
|
55
51
|
}
|
|
56
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormManagementRoutingModule, decorators: [{
|
|
57
53
|
type: NgModule,
|
|
58
54
|
args: [{
|
|
59
|
-
imports: [RouterModule.
|
|
55
|
+
imports: [RouterModule.forRoot(routes, RouterUtils.getRouterExtraOptions())],
|
|
60
56
|
exports: [RouterModule],
|
|
61
57
|
}]
|
|
62
|
-
}]
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
}] });
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1tYW5hZ2VtZW50LXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9mb3JtLW1hbmFnZW1lbnQvc3JjL2xpYi9mb3JtLW1hbmFnZW1lbnQtcm91dGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsVUFBVSxFQUFFLFdBQVcsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQ3hHLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLHVEQUF1RCxDQUFDO0FBQ2xHLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDOzs7QUFFcEUsTUFBTSxNQUFNLEdBQVc7SUFDckI7UUFDRSxJQUFJLEVBQUUsaUJBQWlCO1FBQ3ZCLFNBQVMsRUFBRSx1QkFBdUI7UUFDbEMsV0FBVyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7UUFDL0IsSUFBSSxFQUFFLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBQztLQUM1QztJQUNEO1FBQ0UsSUFBSSxFQUFFLHdCQUF3QjtRQUM5QixTQUFTLEVBQUUsNkJBQTZCO1FBQ3hDLFdBQVcsRUFBRSxDQUFDLGdCQUFnQixDQUFDO1FBQy9CLElBQUksRUFBRSxFQUFDLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBQztLQUN0RDtJQUNEO1FBQ0UsSUFBSSxFQUFFLDBCQUEwQjtRQUNoQyxTQUFTLEVBQUUsMkJBQTJCO1FBQ3RDLFdBQVcsRUFBRSxDQUFDLGdCQUFnQixDQUFDO1FBQy9CLGFBQWEsRUFBRSxDQUFDLG1CQUFtQixDQUFDO1FBQ3BDLElBQUksRUFBRSxFQUFDLEtBQUssRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBQztLQUMxRTtDQUNGLENBQUM7QUFNRixNQUFNLE9BQU8sMkJBQTJCOzhHQUEzQiwyQkFBMkI7K0dBQTNCLDJCQUEyQix3Q0FGNUIsWUFBWTsrR0FFWCwyQkFBMkIsWUFINUIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQUMsRUFDakUsWUFBWTs7MkZBRVgsMkJBQTJCO2tCQUp2QyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUM7b0JBQzVFLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JvdXRlck1vZHVsZSwgUm91dGVzfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtwZW5kaW5nQ2hhbmdlc0d1YXJkfSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7Uk9MRV9BRE1JTiwgUm91dGVyVXRpbHN9IGZyb20gJ0B2YWx0aW1vL2NvbmZpZyc7XG5pbXBvcnQge0F1dGhHdWFyZFNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL3NlY3VyaXR5JztcbmltcG9ydCB7Rm9ybU1hbmFnZW1lbnRDcmVhdGVDb21wb25lbnR9IGZyb20gJy4vZm9ybS1tYW5hZ2VtZW50LWNyZWF0ZS9mb3JtLW1hbmFnZW1lbnQtY3JlYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQge0Zvcm1NYW5hZ2VtZW50RWRpdENvbXBvbmVudH0gZnJvbSAnLi9mb3JtLW1hbmFnZW1lbnQtZWRpdC9mb3JtLW1hbmFnZW1lbnQtZWRpdC5jb21wb25lbnQnO1xuaW1wb3J0IHtGb3JtTWFuYWdlbWVudENvbXBvbmVudH0gZnJvbSAnLi9mb3JtLW1hbmFnZW1lbnQuY29tcG9uZW50JztcblxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gIHtcbiAgICBwYXRoOiAnZm9ybS1tYW5hZ2VtZW50JyxcbiAgICBjb21wb25lbnQ6IEZvcm1NYW5hZ2VtZW50Q29tcG9uZW50LFxuICAgIGNhbkFjdGl2YXRlOiBbQXV0aEd1YXJkU2VydmljZV0sXG4gICAgZGF0YToge3RpdGxlOiAnRm9ybXMnLCByb2xlczogW1JPTEVfQURNSU5dfSxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdmb3JtLW1hbmFnZW1lbnQvY3JlYXRlJyxcbiAgICBjb21wb25lbnQ6IEZvcm1NYW5hZ2VtZW50Q3JlYXRlQ29tcG9uZW50LFxuICAgIGNhbkFjdGl2YXRlOiBbQXV0aEd1YXJkU2VydmljZV0sXG4gICAgZGF0YToge3RpdGxlOiAnQ3JlYXRlIG5ldyBGb3JtJywgcm9sZXM6IFtST0xFX0FETUlOXX0sXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnZm9ybS1tYW5hZ2VtZW50L2VkaXQvOmlkJyxcbiAgICBjb21wb25lbnQ6IEZvcm1NYW5hZ2VtZW50RWRpdENvbXBvbmVudCxcbiAgICBjYW5BY3RpdmF0ZTogW0F1dGhHdWFyZFNlcnZpY2VdLFxuICAgIGNhbkRlYWN0aXZhdGU6IFtwZW5kaW5nQ2hhbmdlc0d1YXJkXSxcbiAgICBkYXRhOiB7dGl0bGU6ICdGb3JtIEJ1aWxkZXInLCByb2xlczogW1JPTEVfQURNSU5dLCBjdXN0b21QYWdlVGl0bGU6IHRydWV9LFxuICB9LFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1JvdXRlck1vZHVsZS5mb3JSb290KHJvdXRlcywgUm91dGVyVXRpbHMuZ2V0Um91dGVyRXh0cmFPcHRpb25zKCkpXSxcbiAgZXhwb3J0czogW1JvdXRlck1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1NYW5hZ2VtZW50Um91dGluZ01vZHVsZSB7fVxuIl19
|