@valtimo/form-management 4.15.3-next-main.15 → 4.15.3-next-main.16
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/README.md +14 -6
- package/bundles/valtimo-form-management.umd.js +75 -56
- package/bundles/valtimo-form-management.umd.js.map +1 -1
- package/bundles/valtimo-form-management.umd.min.js +1 -1
- package/bundles/valtimo-form-management.umd.min.js.map +1 -1
- package/esm2015/lib/form-management-create/form-management-create.component.js +13 -8
- package/esm2015/lib/form-management-edit/form-management-edit.component.js +12 -10
- package/esm2015/lib/form-management-list/form-management-list.component.js +6 -7
- package/esm2015/lib/form-management-routing.module.js +8 -12
- package/esm2015/lib/form-management-upload/form-management-upload.component.js +4 -6
- package/esm2015/lib/form-management.component.js +4 -6
- package/esm2015/lib/form-management.module.js +5 -5
- package/esm2015/lib/form-management.service.js +6 -3
- package/esm2015/public-api.js +1 -1
- package/esm2015/valtimo-form-management.js +1 -1
- package/fesm2015/valtimo-form-management.js +48 -47
- package/fesm2015/valtimo-form-management.js.map +1 -1
- package/package.json +1 -1
- package/valtimo-form-management.metadata.json +1 -1
|
@@ -38,7 +38,10 @@ class FormManagementService {
|
|
|
38
38
|
return this.http.get(`${this.valtimoApiConfig.endpointUri}form-management/${formDefinitionId}`);
|
|
39
39
|
}
|
|
40
40
|
queryFormDefinitions(params) {
|
|
41
|
-
return this.http.get(`${this.valtimoApiConfig.endpointUri}form-management`, {
|
|
41
|
+
return this.http.get(`${this.valtimoApiConfig.endpointUri}form-management`, {
|
|
42
|
+
observe: 'response',
|
|
43
|
+
params: params,
|
|
44
|
+
});
|
|
42
45
|
}
|
|
43
46
|
createFormDefinition(request) {
|
|
44
47
|
return this.http.post(`${this.valtimoApiConfig.endpointUri}form-management`, request);
|
|
@@ -53,7 +56,7 @@ class FormManagementService {
|
|
|
53
56
|
FormManagementService.ɵprov = ɵɵdefineInjectable({ factory: function FormManagementService_Factory() { return new FormManagementService(ɵɵinject(HttpClient), ɵɵinject(ConfigService)); }, token: FormManagementService, providedIn: "root" });
|
|
54
57
|
FormManagementService.decorators = [
|
|
55
58
|
{ type: Injectable, args: [{
|
|
56
|
-
providedIn: 'root'
|
|
59
|
+
providedIn: 'root',
|
|
57
60
|
},] }
|
|
58
61
|
];
|
|
59
62
|
FormManagementService.ctorParameters = () => [
|
|
@@ -77,15 +80,13 @@ FormManagementService.ctorParameters = () => [
|
|
|
77
80
|
* limitations under the License.
|
|
78
81
|
*/
|
|
79
82
|
class FormManagementComponent {
|
|
80
|
-
constructor() {
|
|
81
|
-
}
|
|
82
|
-
ngOnInit() {
|
|
83
|
-
}
|
|
83
|
+
constructor() { }
|
|
84
|
+
ngOnInit() { }
|
|
84
85
|
}
|
|
85
86
|
FormManagementComponent.decorators = [
|
|
86
87
|
{ type: Component, args: [{
|
|
87
88
|
selector: 'valtimo-form-management',
|
|
88
|
-
template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"text-right\">\n <div class=\"btn-group mt-m3px mb-3\">\n <button
|
|
89
|
+
template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"text-right\">\n <div class=\"btn-group mt-m3px mb-3\">\n <button\n [routerLink]=\"'create'\"\n [queryParams]=\"{upload: 'true'}\"\n class=\"btn btn-secondary btn-space\"\n >\n <i class=\"icon mdi mdi-upload\"></i> \n {{ 'Upload' | translate }}\n </button>\n <button [routerLink]=\"'create'\" class=\"btn btn-primary btn-space mr-0\">\n <i class=\"icon mdi mdi-plus\"></i> \n <span>{{ 'Create new Form' | translate }}</span>\n </button>\n </div>\n </div>\n <valtimo-widget>\n <valtimo-form-management-list></valtimo-form-management-list>\n </valtimo-widget>\n </div>\n</div>\n",
|
|
89
90
|
styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */"]
|
|
90
91
|
},] }
|
|
91
92
|
];
|
|
@@ -119,29 +120,34 @@ class FormManagementCreateComponent {
|
|
|
119
120
|
}
|
|
120
121
|
ngOnInit() {
|
|
121
122
|
this.form = this.formBuilder.group({
|
|
122
|
-
name: new FormControl('', Validators.required)
|
|
123
|
+
name: new FormControl('', Validators.required),
|
|
123
124
|
});
|
|
124
125
|
}
|
|
125
126
|
reset() {
|
|
126
127
|
this.form.setValue({
|
|
127
|
-
name: ''
|
|
128
|
+
name: '',
|
|
128
129
|
});
|
|
129
130
|
}
|
|
130
131
|
createFormDefinition() {
|
|
131
132
|
const emptyForm = {
|
|
132
133
|
display: 'form',
|
|
133
|
-
components: []
|
|
134
|
+
components: [],
|
|
134
135
|
};
|
|
135
136
|
const request = {
|
|
136
137
|
name: this.form.value.name,
|
|
137
|
-
formDefinition: JSON.stringify(emptyForm)
|
|
138
|
+
formDefinition: JSON.stringify(emptyForm),
|
|
138
139
|
};
|
|
139
|
-
combineLatest([
|
|
140
|
+
combineLatest([
|
|
141
|
+
this.formManagementService.createFormDefinition(request),
|
|
142
|
+
this.route.queryParams,
|
|
143
|
+
])
|
|
140
144
|
.pipe(take(1))
|
|
141
145
|
.subscribe(([formDefinition, params]) => {
|
|
142
146
|
this.alertService.success('Created new Form');
|
|
143
147
|
if ((params === null || params === void 0 ? void 0 : params.upload) === 'true') {
|
|
144
|
-
this.router.navigate(['/form-management/edit', formDefinition.id], {
|
|
148
|
+
this.router.navigate(['/form-management/edit', formDefinition.id], {
|
|
149
|
+
queryParams: { upload: 'true' },
|
|
150
|
+
});
|
|
145
151
|
}
|
|
146
152
|
else {
|
|
147
153
|
this.router.navigate(['/form-management/edit', formDefinition.id]);
|
|
@@ -154,7 +160,7 @@ class FormManagementCreateComponent {
|
|
|
154
160
|
FormManagementCreateComponent.decorators = [
|
|
155
161
|
{ type: Component, args: [{
|
|
156
162
|
selector: 'valtimo-form-management-create',
|
|
157
|
-
template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget>\n <div class=\"bg-white p-5\">\n <form [formGroup]=\"form\" (ngSubmit)=\"createFormDefinition()\">\n <div class=\"form-group row\">\n <label class=\"col-12 col-sm-3 col-form-label text-sm-right\" for=\"name\">Name</label>\n <div class=\"col-12 col-sm-8 col-lg-6\">\n <input
|
|
163
|
+
template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget>\n <div class=\"bg-white p-5\">\n <form [formGroup]=\"form\" (ngSubmit)=\"createFormDefinition()\">\n <div class=\"form-group row\">\n <label class=\"col-12 col-sm-3 col-form-label text-sm-right\" for=\"name\">Name</label>\n <div class=\"col-12 col-sm-8 col-lg-6\">\n <input\n type=\"text\"\n id=\"name\"\n formControlName=\"name\"\n class=\"form-control\"\n placeholder=\"Form definition name\"\n [ngClass]=\"{\n 'is-valid': formControls.name.touched && formControls.name.valid,\n 'is-invalid': formControls.name.touched && formControls.name.errors\n }\"\n required\n />\n <div\n *ngIf=\"formControls.name.touched && formControls.name.errors\"\n class=\"invalid-feedback\"\n >\n <div *ngIf=\"formControls.name.errors.required\">Name is required</div>\n </div>\n </div>\n </div>\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-12 col-sm-6 text-left\">\n <a [routerLink]=\"'/forms'\" class=\"btn btn-space btn-default\">Back</a>\n </div>\n <div class=\"col-12 col-sm-6 text-right\">\n <button class=\"btn btn-space btn-secondary\" type=\"button\" (click)=\"reset()\">\n Reset\n </button>\n <button class=\"btn btn-space btn-primary\" type=\"submit\" [disabled]=\"form.invalid\">\n Submit\n </button>\n </div>\n </div>\n </form>\n </div>\n </valtimo-widget>\n </div>\n </div>\n</div>\n",
|
|
158
164
|
styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */"]
|
|
159
165
|
},] }
|
|
160
166
|
];
|
|
@@ -210,11 +216,13 @@ class FormManagementEditComponent {
|
|
|
210
216
|
});
|
|
211
217
|
}
|
|
212
218
|
modifyFormDefinition() {
|
|
213
|
-
const form = JSON.stringify(this.modifiedFormDefinition != null
|
|
219
|
+
const form = JSON.stringify(this.modifiedFormDefinition != null
|
|
220
|
+
? this.modifiedFormDefinition
|
|
221
|
+
: this.formDefinition.formDefinition);
|
|
214
222
|
const request = {
|
|
215
223
|
id: this.formDefinition.id,
|
|
216
224
|
name: this.formDefinition.name,
|
|
217
|
-
formDefinition: form
|
|
225
|
+
formDefinition: form,
|
|
218
226
|
};
|
|
219
227
|
this.formManagementService.modifyFormDefinition(request).subscribe(() => {
|
|
220
228
|
this.router.navigate(['/form-management']);
|
|
@@ -235,16 +243,17 @@ class FormManagementEditComponent {
|
|
|
235
243
|
{
|
|
236
244
|
label: 'Cancel',
|
|
237
245
|
class: 'btn btn-default',
|
|
238
|
-
value: false
|
|
246
|
+
value: false,
|
|
239
247
|
},
|
|
240
248
|
{
|
|
241
249
|
label: 'Delete',
|
|
242
250
|
class: 'btn btn-primary',
|
|
243
|
-
value: true
|
|
244
|
-
}
|
|
251
|
+
value: true,
|
|
252
|
+
},
|
|
245
253
|
];
|
|
246
254
|
this.alertService.notification(mssg, confirmations);
|
|
247
|
-
this.alertSub = this.alertService
|
|
255
|
+
this.alertSub = this.alertService
|
|
256
|
+
.getAlertConfirmChangeEmitter()
|
|
248
257
|
.pipe(first())
|
|
249
258
|
.subscribe(alert => {
|
|
250
259
|
if (alert.confirm === true) {
|
|
@@ -284,8 +293,7 @@ class FormManagementEditComponent {
|
|
|
284
293
|
this.reloading$.next(false);
|
|
285
294
|
}
|
|
286
295
|
checkToOpenUploadModal() {
|
|
287
|
-
this.route.queryParams.pipe(take(1))
|
|
288
|
-
.subscribe((params) => {
|
|
296
|
+
this.route.queryParams.pipe(take(1)).subscribe(params => {
|
|
289
297
|
if ((params === null || params === void 0 ? void 0 : params.upload) === 'true') {
|
|
290
298
|
this.showModal();
|
|
291
299
|
}
|
|
@@ -295,7 +303,7 @@ class FormManagementEditComponent {
|
|
|
295
303
|
FormManagementEditComponent.decorators = [
|
|
296
304
|
{ type: Component, args: [{
|
|
297
305
|
selector: 'valtimo-form-management-edit',
|
|
298
|
-
template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content pt-0\">\n <div class=\"container-fluid\" *ngIf=\"formDefinition\">\n <div class=\"btn-group mt-m3px mb-3 float-right\">\n <button class
|
|
306
|
+
template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content pt-0\">\n <div class=\"container-fluid\" *ngIf=\"formDefinition\">\n <div class=\"btn-group mt-m3px mb-3 float-right\">\n <button class=\"btn btn-primary btn-space\" (click)=\"downloadFormDefinition()\">\n <i class=\"fa fa-save\"></i>\n {{ 'Download' | translate }}\n </button>\n <button\n class=\"btn btn-secondary btn-space\"\n (click)=\"showModal()\"\n [disabled]=\"formDefinition.readOnly\"\n >\n <i class=\"icon mdi mdi-upload\"></i> \n {{ 'Upload' | translate }}\n </button>\n <button\n class=\"btn btn-danger btn-space\"\n (click)=\"delete()\"\n [disabled]=\"formDefinition.readOnly\"\n >\n <i class=\"fa fa-trash\"></i> Delete\n </button>\n <button\n class=\"btn btn-success btn-space\"\n (click)=\"modifyFormDefinition()\"\n [disabled]=\"formDefinition.readOnly\"\n >\n <i class=\"fa fa-upload\"></i> Deploy\n </button>\n </div>\n <div class=\"clearfix\"></div>\n <div class=\"bg-light formbuilder-header overflow-auto\">\n <h3 class=\"formbuilder-title\">\n {{ formDefinition.name }}\n <div *ngIf=\"formDefinition.readOnly\" class=\"pull-right\">\n <span class=\"badge badge-pill badge-info increase-size\">Read-only</span>\n </div>\n </h3>\n </div>\n <ng-container *ngIf=\"!(reloading$ | async)\">\n <valtimo-form-io-builder\n [form]=\"formDefinition.formDefinition\"\n (change)=\"formBuilderChanged($event)\"\n ></valtimo-form-io-builder>\n </ng-container>\n </div>\n</div>\n\n<valtimo-form-management-upload\n [show$]=\"showModal$\"\n (definitionUploaded)=\"setFormDefinition($event)\"\n></valtimo-form-management-upload>\n",
|
|
299
307
|
encapsulation: ViewEncapsulation.None,
|
|
300
308
|
styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */.btn.formcomponent.gu-mirror,.formbuilder .btn.formcomponent.drag-copy{background-color:silver;border-color:silver;color:#fff;font-weight:400}.btn.formcomponent.gu-mirror:active,.btn.formcomponent.gu-mirror:hover,.formbuilder .btn.formcomponent.drag-copy:active,.formbuilder .btn.formcomponent.drag-copy:hover{box-shadow:none}.btn.formcomponent.gu-mirror:active,.formbuilder .btn.formcomponent.drag-copy:active{background-color:silver;border-color:silver}.formbuilder-header{border:1px solid #dee2e6;border-bottom:0;font-size:18px;height:80px;padding-left:18px;padding-right:18px}.formbuilder-header .formbuilder-title{margin-bottom:7px;margin-top:21px}.formbuilder-header .formbuilder-subtitle{margin-bottom:12px;margin-top:0}.formbuilder{background:#fff;border:1px solid #dee2e6;margin-left:0!important;margin-right:0!important;padding:1rem}.formbuilder .form-builder-panel .builder-group-button[aria-expanded=\"\"],.formbuilder .form-builder-panel .builder-group-button[aria-expanded=false]{color:#a9a9a9}.formbuilder .form-builder-panel .builder-group-button[aria-expanded=true]{color:#000}.formbuilder .drag-and-drop-alert{display:none}.formbuilder .formarea{background-color:#fff;border:1px solid silver;padding:10px}.increase-size{font-size:1rem}"]
|
|
301
309
|
},] }
|
|
@@ -328,32 +336,28 @@ const routes = [
|
|
|
328
336
|
path: 'form-management',
|
|
329
337
|
component: FormManagementComponent,
|
|
330
338
|
canActivate: [AuthGuardService],
|
|
331
|
-
data: ɵ0
|
|
339
|
+
data: ɵ0,
|
|
332
340
|
},
|
|
333
341
|
{
|
|
334
342
|
path: 'form-management/create',
|
|
335
343
|
component: FormManagementCreateComponent,
|
|
336
344
|
canActivate: [AuthGuardService],
|
|
337
|
-
data: ɵ1
|
|
345
|
+
data: ɵ1,
|
|
338
346
|
},
|
|
339
347
|
{
|
|
340
348
|
path: 'form-management/edit/:id',
|
|
341
349
|
component: FormManagementEditComponent,
|
|
342
350
|
canActivate: [AuthGuardService],
|
|
343
|
-
data: ɵ2
|
|
344
|
-
}
|
|
351
|
+
data: ɵ2,
|
|
352
|
+
},
|
|
345
353
|
];
|
|
346
354
|
class FormManagementRoutingModule {
|
|
347
355
|
}
|
|
348
356
|
FormManagementRoutingModule.decorators = [
|
|
349
357
|
{ type: NgModule, args: [{
|
|
350
|
-
imports: [
|
|
351
|
-
|
|
352
|
-
],
|
|
353
|
-
exports: [
|
|
354
|
-
RouterModule
|
|
355
|
-
],
|
|
356
|
-
declarations: []
|
|
358
|
+
imports: [RouterModule.forChild(routes)],
|
|
359
|
+
exports: [RouterModule],
|
|
360
|
+
declarations: [],
|
|
357
361
|
},] }
|
|
358
362
|
];
|
|
359
363
|
|
|
@@ -379,13 +383,13 @@ class FormManagementListComponent {
|
|
|
379
383
|
this.formDefinitions = [];
|
|
380
384
|
this.formDefinitionFields = [
|
|
381
385
|
{ key: 'name', label: 'Name' },
|
|
382
|
-
{ key: 'readOnly', label: 'Read-only' }
|
|
386
|
+
{ key: 'readOnly', label: 'Read-only' },
|
|
383
387
|
];
|
|
384
388
|
this.pagination = {
|
|
385
389
|
collectionSize: 0,
|
|
386
390
|
page: 1,
|
|
387
391
|
size: 10,
|
|
388
|
-
maxPaginationItemSize: 5
|
|
392
|
+
maxPaginationItemSize: 5,
|
|
389
393
|
};
|
|
390
394
|
this.pageParam = 0;
|
|
391
395
|
}
|
|
@@ -393,8 +397,7 @@ class FormManagementListComponent {
|
|
|
393
397
|
this.pageParam = page - 1;
|
|
394
398
|
this.loadFormDefinitions();
|
|
395
399
|
}
|
|
396
|
-
ngOnInit() {
|
|
397
|
-
}
|
|
400
|
+
ngOnInit() { }
|
|
398
401
|
paginationSet() {
|
|
399
402
|
this.loadFormDefinitions();
|
|
400
403
|
}
|
|
@@ -403,7 +406,7 @@ class FormManagementListComponent {
|
|
|
403
406
|
if (searchTerm) {
|
|
404
407
|
params['searchTerm'] = searchTerm;
|
|
405
408
|
}
|
|
406
|
-
this.formManagementService.queryFormDefinitions(params).subscribe(
|
|
409
|
+
this.formManagementService.queryFormDefinitions(params).subscribe(results => {
|
|
407
410
|
this.pagination.collectionSize = results.body.totalElements;
|
|
408
411
|
this.formDefinitions = results.body.content;
|
|
409
412
|
});
|
|
@@ -418,7 +421,7 @@ class FormManagementListComponent {
|
|
|
418
421
|
FormManagementListComponent.decorators = [
|
|
419
422
|
{ type: Component, args: [{
|
|
420
423
|
selector: 'valtimo-form-management-list',
|
|
421
|
-
template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-list
|
|
424
|
+
template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-list\n [items]=\"formDefinitions\"\n [fields]=\"formDefinitionFields\"\n [viewMode]=\"true\"\n [isSearchable]=\"true\"\n [pagination]=\"pagination\"\n paginationIdentifier=\"formManagementList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet()\"\n (rowClicked)=\"editFormDefinition($event)\"\n [header]=\"true\"\n (search)=\"searchTermEntered($event)\"\n>\n <div header>\n <h3 class=\"list-header-title\">{{ 'Forms' | translate }}</h3>\n <h5 class=\"list-header-description\">{{ 'Overview of all Forms' | translate }}</h5>\n </div>\n</valtimo-list>\n",
|
|
422
425
|
styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */"]
|
|
423
426
|
},] }
|
|
424
427
|
];
|
|
@@ -468,9 +471,7 @@ class FormManagementUploadComponent {
|
|
|
468
471
|
}
|
|
469
472
|
uploadDefinition() {
|
|
470
473
|
this.disable();
|
|
471
|
-
this.jsonString
|
|
472
|
-
.pipe(take(1))
|
|
473
|
-
.subscribe((definition) => {
|
|
474
|
+
this.jsonString$.pipe(take(1)).subscribe(definition => {
|
|
474
475
|
this.closeErrorSubscription();
|
|
475
476
|
this.clearError();
|
|
476
477
|
this.enable();
|
|
@@ -557,7 +558,7 @@ class FormManagementUploadComponent {
|
|
|
557
558
|
FormManagementUploadComponent.decorators = [
|
|
558
559
|
{ type: Component, args: [{
|
|
559
560
|
selector: 'valtimo-form-management-upload',
|
|
560
|
-
template: "<valtimo-modal
|
|
561
|
+
template: "<valtimo-modal\n #uploadFormDefinitionModal\n [title]=\"'uploadFormDefinition' | translate\"\n showFooter=\"true\"\n>\n <div class=\"mt-2\" body>\n <valtimo-dropzone\n [clear$]=\"clear$\"\n (fileSelected)=\"setFile($event)\"\n [disabled]=\"disabled$ | async\"\n [subtitle]=\"'dropzone.formJsonDocDef' | translate\"\n [externalError$]=\"error$\"\n ></valtimo-dropzone>\n </div>\n <div footer>\n <ng-container *ngIf=\"(jsonString$ | async) && !(error$ | async); else pleaseSelect\">\n <button [disabled]=\"disabled$ | async\" class=\"btn btn-primary\" (click)=\"uploadDefinition()\">\n {{ 'Upload' | translate }}\n </button>\n </ng-container>\n </div>\n</valtimo-modal>\n\n<ng-template #pleaseSelect>\n <button class=\"btn btn-primary\" [disabled]=\"true\">\n {{ 'Select a document definition' | translate }}\n </button>\n</ng-template>\n",
|
|
561
562
|
styles: [""]
|
|
562
563
|
},] }
|
|
563
564
|
];
|
|
@@ -595,7 +596,7 @@ FormManagementModule.decorators = [
|
|
|
595
596
|
FormManagementCreateComponent,
|
|
596
597
|
FormManagementListComponent,
|
|
597
598
|
FormManagementEditComponent,
|
|
598
|
-
FormManagementUploadComponent
|
|
599
|
+
FormManagementUploadComponent,
|
|
599
600
|
],
|
|
600
601
|
imports: [
|
|
601
602
|
FormManagementRoutingModule,
|
|
@@ -608,9 +609,9 @@ FormManagementModule.decorators = [
|
|
|
608
609
|
TranslateModule,
|
|
609
610
|
NgbTooltipModule,
|
|
610
611
|
DropzoneModule,
|
|
611
|
-
ModalModule
|
|
612
|
+
ModalModule,
|
|
612
613
|
],
|
|
613
|
-
exports: [FormManagementComponent]
|
|
614
|
+
exports: [FormManagementComponent],
|
|
614
615
|
},] }
|
|
615
616
|
];
|
|
616
617
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valtimo-form-management.js","sources":["../../../../projects/valtimo/form-management/src/lib/form-management.service.ts","../../../../projects/valtimo/form-management/src/lib/form-management.component.ts","../../../../projects/valtimo/form-management/src/lib/form-management-create/form-management-create.component.ts","../../../../projects/valtimo/form-management/src/lib/form-management-edit/form-management-edit.component.ts","../../../../projects/valtimo/form-management/src/lib/form-management-routing.module.ts","../../../../projects/valtimo/form-management/src/lib/form-management-list/form-management-list.component.ts","../../../../projects/valtimo/form-management/src/lib/form-management-upload/form-management-upload.component.ts","../../../../projects/valtimo/form-management/src/lib/form-management.module.ts","../../../../projects/valtimo/form-management/src/public-api.ts","../../../../projects/valtimo/form-management/src/valtimo-form-management.ts"],"sourcesContent":["/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {HttpClient} from '@angular/common/http';\nimport {CreateFormDefinitionRequest, FormDefinition, ModifyFormDefinitionRequest} from '@valtimo/contract';\nimport {Observable} from 'rxjs';\nimport {ConfigService} from '@valtimo/config';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FormManagementService {\n\n private valtimoApiConfig: any;\n\n constructor(\n private http: HttpClient,\n private configService: ConfigService\n ) {\n this.valtimoApiConfig = configService.config.valtimoApi;\n }\n\n getFormDefinition(formDefinitionId: string): Observable<FormDefinition> {\n return this.http.get<FormDefinition>(`${this.valtimoApiConfig.endpointUri}form-management/${formDefinitionId}`);\n }\n\n queryFormDefinitions(params?: any): Observable<any> {\n return this.http.get(`${this.valtimoApiConfig.endpointUri}form-management`, {observe: 'response', params: params});\n }\n\n createFormDefinition(request: CreateFormDefinitionRequest): Observable<FormDefinition> {\n return this.http.post<FormDefinition>(`${this.valtimoApiConfig.endpointUri}form-management`, request);\n }\n\n modifyFormDefinition(request: ModifyFormDefinitionRequest): Observable<FormDefinition> {\n return this.http.put<FormDefinition>(`${this.valtimoApiConfig.endpointUri}form-management`, request);\n }\n\n deleteFormDefinition(formDefinitionId: string): Observable<void> {\n return this.http.delete<void>(`${this.valtimoApiConfig.endpointUri}form-management/${formDefinitionId}`);\n }\n\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnInit} from '@angular/core';\n\n@Component({\n selector: 'valtimo-form-management',\n templateUrl: './form-management.component.html',\n styleUrls: ['./form-management.component.scss']\n})\nexport class FormManagementComponent implements OnInit {\n\n constructor() {\n }\n\n ngOnInit() {\n }\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnInit} from '@angular/core';\nimport {FormBuilder, FormControl, FormGroup, Validators} from '@angular/forms';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {AlertService} from '@valtimo/components';\nimport {FormManagementService} from '../form-management.service';\nimport {CreateFormDefinitionRequest} from '@valtimo/contract';\nimport {combineLatest} from 'rxjs';\nimport {take} from 'rxjs/operators';\n\n@Component({\n selector: 'valtimo-form-management-create',\n templateUrl: './form-management-create.component.html',\n styleUrls: ['./form-management-create.component.scss']\n})\nexport class FormManagementCreateComponent implements OnInit {\n\n public form: FormGroup;\n\n constructor(\n private formManagementService: FormManagementService,\n private formBuilder: FormBuilder,\n private router: Router,\n private alertService: AlertService,\n private route: ActivatedRoute\n ) {\n }\n\n get formControls() {\n return this.form.controls;\n }\n\n ngOnInit() {\n this.form = this.formBuilder.group({\n name: new FormControl('', Validators.required)\n });\n }\n\n reset() {\n this.form.setValue({\n name: ''\n });\n }\n\n createFormDefinition() {\n const emptyForm = {\n display: 'form',\n components: []\n };\n const request: CreateFormDefinitionRequest = {\n name: this.form.value.name,\n formDefinition: JSON.stringify(emptyForm)\n };\n combineLatest([this.formManagementService.createFormDefinition(request), this.route.queryParams])\n .pipe(take(1))\n .subscribe(([formDefinition, params]) => {\n this.alertService.success('Created new Form');\n\n if (params?.upload === 'true') {\n this.router.navigate(['/form-management/edit', formDefinition.id], {queryParams: {upload: 'true'}});\n } else {\n this.router.navigate(['/form-management/edit', formDefinition.id]);\n }\n }, err => {\n this.alertService.error('Error creating new Form');\n });\n }\n\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnDestroy, OnInit, ViewEncapsulation} from '@angular/core';\nimport {FormManagementService} from '../form-management.service';\nimport {AlertService} from '@valtimo/components';\nimport {FormDefinition, ModifyFormDefinitionRequest} from '@valtimo/contract';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {first, take} from 'rxjs/operators';\nimport {BehaviorSubject, Subscription} from 'rxjs';\nimport {FormioForm} from 'angular-formio';\n\n@Component({\n selector: 'valtimo-form-management-edit',\n templateUrl: './form-management-edit.component.html',\n styleUrls: ['./form-management-edit.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FormManagementEditComponent implements OnInit, OnDestroy {\n\n readonly showModal$ = new BehaviorSubject<boolean>(false);\n readonly reloading$ = new BehaviorSubject<boolean>(false);\n public modifiedFormDefinition: FormioForm = null;\n public formDefinition: FormDefinition | null = null;\n private alertSub: Subscription = Subscription.EMPTY;\n private formDefinitionId: string | null = null;\n\n constructor(\n private formManagementService: FormManagementService,\n private alertService: AlertService,\n private route: ActivatedRoute,\n private router: Router\n ) {\n }\n\n ngOnInit() {\n this.loadFormDefinition();\n this.checkToOpenUploadModal();\n }\n\n ngOnDestroy() {\n this.alertSub.unsubscribe();\n }\n\n loadFormDefinition() {\n this.formDefinitionId = this.route.snapshot.paramMap.get('id');\n this.formManagementService.getFormDefinition(this.formDefinitionId).subscribe(formDefinition => {\n this.formDefinition = formDefinition;\n }, () => {\n this.alertService.error('Error retrieving Form Definition');\n });\n }\n\n modifyFormDefinition() {\n const form = JSON.stringify(\n this.modifiedFormDefinition != null ? this.modifiedFormDefinition : this.formDefinition.formDefinition\n );\n const request: ModifyFormDefinitionRequest = {\n id: this.formDefinition.id,\n name: this.formDefinition.name,\n formDefinition: form\n };\n this.formManagementService.modifyFormDefinition(request).subscribe(() => {\n this.router.navigate(['/form-management']);\n this.alertService.success('Form deployed');\n }, err => {\n this.alertService.error('Error deploying Form');\n });\n }\n\n public formBuilderChanged(event) {\n this.modifiedFormDefinition = event.form;\n }\n\n public delete() {\n if (!this.alertSub.closed) {\n return;\n }\n const mssg = 'Delete Form?';\n const confirmations = [\n {\n label: 'Cancel',\n class: 'btn btn-default',\n value: false\n },\n {\n label: 'Delete',\n class: 'btn btn-primary',\n value: true\n }\n ];\n this.alertService.notification(mssg, confirmations);\n this.alertSub = this.alertService.getAlertConfirmChangeEmitter()\n .pipe(first())\n .subscribe(alert => {\n if (alert.confirm === true) {\n this.deleteFormDefinition();\n }\n });\n }\n\n deleteFormDefinition() {\n this.formManagementService.deleteFormDefinition(this.formDefinition.id).subscribe(() => {\n this.router.navigate(['/form-management']);\n this.alertService.success('Form deleted');\n }, err => {\n this.alertService.error('Error deleting Form');\n });\n }\n\n downloadFormDefinition() {\n const file = new Blob([JSON.stringify(this.formDefinition)], {type: 'text/json'});\n const link = document.createElement('a');\n link.download = `form_${this.formDefinition.name}.json`;\n link.href = window.URL.createObjectURL(file);\n link.click();\n window.URL.revokeObjectURL(link.href);\n link.remove();\n }\n\n showModal() {\n this.showModal$.next(true);\n }\n\n setFormDefinition(formDefinition: any) {\n this.reloading$.next(true);\n\n const definition = JSON.parse(formDefinition);\n const components = definition?.formDefinition?.components;\n const currentDefinition = this.modifiedFormDefinition || this.formDefinition.formDefinition;\n const newDefinition = {...currentDefinition, ...(components && {components})};\n\n this.modifiedFormDefinition = newDefinition;\n this.formDefinition.formDefinition = newDefinition;\n\n this.reloading$.next(false);\n }\n\n private checkToOpenUploadModal(): void {\n this.route.queryParams.pipe(take(1))\n .subscribe((params) => {\n if (params?.upload === 'true') {\n this.showModal();\n }\n });\n }\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {FormManagementComponent} from './form-management.component';\nimport {AuthGuardService} from '@valtimo/security';\nimport {FormManagementCreateComponent} from './form-management-create/form-management-create.component';\nimport {FormManagementEditComponent} from './form-management-edit/form-management-edit.component';\nimport {ROLE_ADMIN} from '@valtimo/contract';\n\nconst routes: Routes = [\n {\n path: 'form-management',\n component: FormManagementComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Form management', roles: [ROLE_ADMIN]}\n },\n {\n path: 'form-management/create',\n component: FormManagementCreateComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Create new Form', roles: [ROLE_ADMIN]}\n },\n {\n path: 'form-management/edit/:id',\n component: FormManagementEditComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Form Builder', roles: [ROLE_ADMIN]}\n }\n];\n\n@NgModule({\n imports: [\n RouterModule.forChild(routes)\n ],\n exports: [\n RouterModule\n ],\n declarations: []\n})\nexport class FormManagementRoutingModule {\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnInit} from '@angular/core';\nimport {FormDefinition} from '@valtimo/contract';\nimport {FormManagementService} from '../form-management.service';\nimport {Router} from '@angular/router';\n\n@Component({\n selector: 'valtimo-form-management-list',\n templateUrl: './form-management-list.component.html',\n styleUrls: ['./form-management-list.component.scss']\n})\nexport class FormManagementListComponent implements OnInit {\n\n public formDefinitions: FormDefinition[] = [];\n public formDefinitionFields: any[] = [\n {key: 'name', label: 'Name'},\n {key: 'readOnly', label: 'Read-only'}\n ];\n public pagination = {\n collectionSize: 0,\n page: 1,\n size: 10,\n maxPaginationItemSize: 5\n };\n public pageParam = 0;\n\n public paginationClicked(page) {\n this.pageParam = page - 1;\n this.loadFormDefinitions();\n }\n\n constructor(\n private formManagementService: FormManagementService,\n private router: Router\n ) {\n }\n\n ngOnInit() {\n }\n\n paginationSet() {\n this.loadFormDefinitions();\n }\n\n loadFormDefinitions(searchTerm?: string) {\n const params = {page: this.pageParam, size: this.pagination.size};\n if (searchTerm) {\n params['searchTerm'] = searchTerm;\n }\n this.formManagementService.queryFormDefinitions(params).subscribe((results) => {\n this.pagination.collectionSize = results.body.totalElements;\n this.formDefinitions = results.body.content;\n });\n }\n\n editFormDefinition(formDefinition: FormDefinition) {\n this.router.navigate(['/form-management/edit', formDefinition.id]);\n }\n\n searchTermEntered(searchTerm: string) {\n this.loadFormDefinitions(searchTerm);\n }\n\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {AfterViewInit, Component, EventEmitter, Input, OnDestroy, Output, ViewChild} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ModalComponent} from '@valtimo/components';\nimport {DocumentService} from '@valtimo/document';\nimport {BehaviorSubject, Observable, Subject, Subscription} from 'rxjs';\nimport {take} from 'rxjs/operators';\n\n@Component({\n selector: 'valtimo-form-management-upload',\n templateUrl: './form-management-upload.component.html',\n styleUrls: ['./form-management-upload.component.scss']\n})\nexport class FormManagementUploadComponent implements AfterViewInit, OnDestroy {\n @ViewChild('uploadFormDefinitionModal') modal: ModalComponent;\n\n @Input() show$: Observable<boolean>;\n @Output() definitionUploaded: EventEmitter<any> = new EventEmitter();\n\n readonly clear$ = new Subject();\n readonly jsonString$ = new BehaviorSubject<string>('');\n readonly error$ = new BehaviorSubject<string>('');\n readonly disabled$ = new BehaviorSubject<boolean>(false);\n\n private showSubscription: Subscription;\n private fileSubscription: Subscription;\n private errorSubscription: Subscription;\n\n private readonly file$ = new BehaviorSubject<File>(undefined);\n\n constructor(\n private readonly documentService: DocumentService,\n private readonly translateService: TranslateService,\n ) {\n }\n\n ngAfterViewInit(): void {\n this.openShowSubscription();\n this.openFileSubscription();\n }\n\n ngOnDestroy(): void {\n this.showSubscription.unsubscribe();\n this.fileSubscription.unsubscribe();\n this.closeErrorSubscription();\n }\n\n setFile(file: File): void {\n this.clearError();\n this.file$.next(file);\n }\n\n uploadDefinition(): void {\n this.disable();\n\n this.jsonString$\n .pipe(\n take(1)\n )\n .subscribe((definition) => {\n this.closeErrorSubscription();\n this.clearError();\n this.enable();\n this.hideModal();\n this.definitionUploaded.emit(definition);\n });\n }\n\n private openErrorSubscription(errorCode: string): void {\n this.closeErrorSubscription();\n this.errorSubscription = this.translateService.stream(errorCode).subscribe(error => {\n this.error$.next(error);\n });\n }\n\n private closeErrorSubscription(): void {\n if (this.errorSubscription) {\n this.errorSubscription.unsubscribe();\n }\n }\n\n private clearError(): void {\n this.error$.next('');\n }\n\n private openFileSubscription(): void {\n this.fileSubscription = this.file$.subscribe(file => {\n if (file) {\n const reader = new FileReader();\n\n reader.onloadend = () => {\n const result = reader.result.toString();\n if (this.stringIsValidJson(result)) {\n this.jsonString$.next(result);\n }\n };\n\n reader.readAsText(file);\n } else {\n this.clearJsonString();\n }\n });\n }\n\n private openShowSubscription(): void {\n this.showSubscription = this.show$.subscribe(show => {\n if (show) {\n this.showModal();\n } else {\n this.hideModal();\n }\n\n this.clearJsonString();\n this.clearError();\n this.clearDropzone();\n });\n }\n\n private clearJsonString(): void {\n this.jsonString$.next('');\n }\n\n private clearDropzone(): void {\n this.clear$.next();\n }\n\n private showModal(): void {\n this.modal.show();\n }\n\n private hideModal(): void {\n this.modal.hide();\n }\n\n private stringIsValidJson(string: string) {\n try {\n // tslint:disable-next-line\n JSON.parse(string)?.formDefinition?.components;\n } catch (e) {\n this.clearDropzone();\n this.openErrorSubscription('dropzone.error.invalidFormDef');\n return false;\n }\n return true;\n }\n\n private disable(): void {\n this.disabled$.next(true);\n }\n\n private enable(): void {\n this.disabled$.next(false);\n }\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {FormManagementComponent} from './form-management.component';\nimport {FormManagementRoutingModule} from './form-management-routing.module';\nimport {DropzoneModule, FormIoModule, ListModule, ModalModule, WidgetModule} from '@valtimo/components';\nimport {CommonModule} from '@angular/common';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {FormManagementCreateComponent} from './form-management-create/form-management-create.component';\nimport {FormManagementListComponent} from './form-management-list/form-management-list.component';\nimport {FormManagementEditComponent} from './form-management-edit/form-management-edit.component';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {NgbTooltipModule} from '@ng-bootstrap/ng-bootstrap';\nimport {FormManagementUploadComponent} from './form-management-upload/form-management-upload.component';\n\n@NgModule({\n declarations: [\n FormManagementComponent,\n FormManagementCreateComponent,\n FormManagementListComponent,\n FormManagementEditComponent,\n FormManagementUploadComponent\n ],\n imports: [\n FormManagementRoutingModule,\n FormIoModule,\n CommonModule,\n ReactiveFormsModule,\n FormsModule,\n WidgetModule,\n ListModule,\n TranslateModule,\n NgbTooltipModule,\n DropzoneModule,\n ModalModule\n ],\n exports: [FormManagementComponent]\n})\nexport class FormManagementModule {\n\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of form-management\n */\n\nexport * from './lib/form-management.service';\nexport * from './lib/form-management.component';\nexport * from './lib/form-management.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {FormManagementCreateComponent as ɵa} from './lib/form-management-create/form-management-create.component';\nexport {FormManagementEditComponent as ɵc} from './lib/form-management-edit/form-management-edit.component';\nexport {FormManagementListComponent as ɵb} from './lib/form-management-list/form-management-list.component';\nexport {FormManagementRoutingModule as ɵe} from './lib/form-management-routing.module';\nexport {FormManagementUploadComponent as ɵd} from './lib/form-management-upload/form-management-upload.component';"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"valtimo-form-management.js","sources":["../../../../projects/valtimo/form-management/src/lib/form-management.service.ts","../../../../projects/valtimo/form-management/src/lib/form-management.component.ts","../../../../projects/valtimo/form-management/src/lib/form-management-create/form-management-create.component.ts","../../../../projects/valtimo/form-management/src/lib/form-management-edit/form-management-edit.component.ts","../../../../projects/valtimo/form-management/src/lib/form-management-routing.module.ts","../../../../projects/valtimo/form-management/src/lib/form-management-list/form-management-list.component.ts","../../../../projects/valtimo/form-management/src/lib/form-management-upload/form-management-upload.component.ts","../../../../projects/valtimo/form-management/src/lib/form-management.module.ts","../../../../projects/valtimo/form-management/src/public-api.ts","../../../../projects/valtimo/form-management/src/valtimo-form-management.ts"],"sourcesContent":["/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {HttpClient} from '@angular/common/http';\nimport {\n CreateFormDefinitionRequest,\n FormDefinition,\n ModifyFormDefinitionRequest,\n} from '@valtimo/contract';\nimport {Observable} from 'rxjs';\nimport {ConfigService} from '@valtimo/config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormManagementService {\n private valtimoApiConfig: any;\n\n constructor(private http: HttpClient, private configService: ConfigService) {\n this.valtimoApiConfig = configService.config.valtimoApi;\n }\n\n getFormDefinition(formDefinitionId: string): Observable<FormDefinition> {\n return this.http.get<FormDefinition>(\n `${this.valtimoApiConfig.endpointUri}form-management/${formDefinitionId}`\n );\n }\n\n queryFormDefinitions(params?: any): Observable<any> {\n return this.http.get(`${this.valtimoApiConfig.endpointUri}form-management`, {\n observe: 'response',\n params: params,\n });\n }\n\n createFormDefinition(request: CreateFormDefinitionRequest): Observable<FormDefinition> {\n return this.http.post<FormDefinition>(\n `${this.valtimoApiConfig.endpointUri}form-management`,\n request\n );\n }\n\n modifyFormDefinition(request: ModifyFormDefinitionRequest): Observable<FormDefinition> {\n return this.http.put<FormDefinition>(\n `${this.valtimoApiConfig.endpointUri}form-management`,\n request\n );\n }\n\n deleteFormDefinition(formDefinitionId: string): Observable<void> {\n return this.http.delete<void>(\n `${this.valtimoApiConfig.endpointUri}form-management/${formDefinitionId}`\n );\n }\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnInit} from '@angular/core';\n\n@Component({\n selector: 'valtimo-form-management',\n templateUrl: './form-management.component.html',\n styleUrls: ['./form-management.component.scss'],\n})\nexport class FormManagementComponent implements OnInit {\n constructor() {}\n\n ngOnInit() {}\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnInit} from '@angular/core';\nimport {FormBuilder, FormControl, FormGroup, Validators} from '@angular/forms';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {AlertService} from '@valtimo/components';\nimport {FormManagementService} from '../form-management.service';\nimport {CreateFormDefinitionRequest} from '@valtimo/contract';\nimport {combineLatest} from 'rxjs';\nimport {take} from 'rxjs/operators';\n\n@Component({\n selector: 'valtimo-form-management-create',\n templateUrl: './form-management-create.component.html',\n styleUrls: ['./form-management-create.component.scss'],\n})\nexport class FormManagementCreateComponent implements OnInit {\n public form: FormGroup;\n\n constructor(\n private formManagementService: FormManagementService,\n private formBuilder: FormBuilder,\n private router: Router,\n private alertService: AlertService,\n private route: ActivatedRoute\n ) {}\n\n get formControls() {\n return this.form.controls;\n }\n\n ngOnInit() {\n this.form = this.formBuilder.group({\n name: new FormControl('', Validators.required),\n });\n }\n\n reset() {\n this.form.setValue({\n name: '',\n });\n }\n\n createFormDefinition() {\n const emptyForm = {\n display: 'form',\n components: [],\n };\n const request: CreateFormDefinitionRequest = {\n name: this.form.value.name,\n formDefinition: JSON.stringify(emptyForm),\n };\n combineLatest([\n this.formManagementService.createFormDefinition(request),\n this.route.queryParams,\n ])\n .pipe(take(1))\n .subscribe(\n ([formDefinition, params]) => {\n this.alertService.success('Created new Form');\n\n if (params?.upload === 'true') {\n this.router.navigate(['/form-management/edit', formDefinition.id], {\n queryParams: {upload: 'true'},\n });\n } else {\n this.router.navigate(['/form-management/edit', formDefinition.id]);\n }\n },\n err => {\n this.alertService.error('Error creating new Form');\n }\n );\n }\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnDestroy, OnInit, ViewEncapsulation} from '@angular/core';\nimport {FormManagementService} from '../form-management.service';\nimport {AlertService} from '@valtimo/components';\nimport {FormDefinition, ModifyFormDefinitionRequest} from '@valtimo/contract';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {first, take} from 'rxjs/operators';\nimport {BehaviorSubject, Subscription} from 'rxjs';\nimport {FormioForm} from 'angular-formio';\n\n@Component({\n selector: 'valtimo-form-management-edit',\n templateUrl: './form-management-edit.component.html',\n styleUrls: ['./form-management-edit.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class FormManagementEditComponent implements OnInit, OnDestroy {\n readonly showModal$ = new BehaviorSubject<boolean>(false);\n readonly reloading$ = new BehaviorSubject<boolean>(false);\n public modifiedFormDefinition: FormioForm = null;\n public formDefinition: FormDefinition | null = null;\n private alertSub: Subscription = Subscription.EMPTY;\n private formDefinitionId: string | null = null;\n\n constructor(\n private formManagementService: FormManagementService,\n private alertService: AlertService,\n private route: ActivatedRoute,\n private router: Router\n ) {}\n\n ngOnInit() {\n this.loadFormDefinition();\n this.checkToOpenUploadModal();\n }\n\n ngOnDestroy() {\n this.alertSub.unsubscribe();\n }\n\n loadFormDefinition() {\n this.formDefinitionId = this.route.snapshot.paramMap.get('id');\n this.formManagementService.getFormDefinition(this.formDefinitionId).subscribe(\n formDefinition => {\n this.formDefinition = formDefinition;\n },\n () => {\n this.alertService.error('Error retrieving Form Definition');\n }\n );\n }\n\n modifyFormDefinition() {\n const form = JSON.stringify(\n this.modifiedFormDefinition != null\n ? this.modifiedFormDefinition\n : this.formDefinition.formDefinition\n );\n const request: ModifyFormDefinitionRequest = {\n id: this.formDefinition.id,\n name: this.formDefinition.name,\n formDefinition: form,\n };\n this.formManagementService.modifyFormDefinition(request).subscribe(\n () => {\n this.router.navigate(['/form-management']);\n this.alertService.success('Form deployed');\n },\n err => {\n this.alertService.error('Error deploying Form');\n }\n );\n }\n\n public formBuilderChanged(event) {\n this.modifiedFormDefinition = event.form;\n }\n\n public delete() {\n if (!this.alertSub.closed) {\n return;\n }\n const mssg = 'Delete Form?';\n const confirmations = [\n {\n label: 'Cancel',\n class: 'btn btn-default',\n value: false,\n },\n {\n label: 'Delete',\n class: 'btn btn-primary',\n value: true,\n },\n ];\n this.alertService.notification(mssg, confirmations);\n this.alertSub = this.alertService\n .getAlertConfirmChangeEmitter()\n .pipe(first())\n .subscribe(alert => {\n if (alert.confirm === true) {\n this.deleteFormDefinition();\n }\n });\n }\n\n deleteFormDefinition() {\n this.formManagementService.deleteFormDefinition(this.formDefinition.id).subscribe(\n () => {\n this.router.navigate(['/form-management']);\n this.alertService.success('Form deleted');\n },\n err => {\n this.alertService.error('Error deleting Form');\n }\n );\n }\n\n downloadFormDefinition() {\n const file = new Blob([JSON.stringify(this.formDefinition)], {type: 'text/json'});\n const link = document.createElement('a');\n link.download = `form_${this.formDefinition.name}.json`;\n link.href = window.URL.createObjectURL(file);\n link.click();\n window.URL.revokeObjectURL(link.href);\n link.remove();\n }\n\n showModal() {\n this.showModal$.next(true);\n }\n\n setFormDefinition(formDefinition: any) {\n this.reloading$.next(true);\n\n const definition = JSON.parse(formDefinition);\n const components = definition?.formDefinition?.components;\n const currentDefinition = this.modifiedFormDefinition || this.formDefinition.formDefinition;\n const newDefinition = {...currentDefinition, ...(components && {components})};\n\n this.modifiedFormDefinition = newDefinition;\n this.formDefinition.formDefinition = newDefinition;\n\n this.reloading$.next(false);\n }\n\n private checkToOpenUploadModal(): void {\n this.route.queryParams.pipe(take(1)).subscribe(params => {\n if (params?.upload === 'true') {\n this.showModal();\n }\n });\n }\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {FormManagementComponent} from './form-management.component';\nimport {AuthGuardService} from '@valtimo/security';\nimport {FormManagementCreateComponent} from './form-management-create/form-management-create.component';\nimport {FormManagementEditComponent} from './form-management-edit/form-management-edit.component';\nimport {ROLE_ADMIN} from '@valtimo/contract';\n\nconst routes: Routes = [\n {\n path: 'form-management',\n component: FormManagementComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Form management', roles: [ROLE_ADMIN]},\n },\n {\n path: 'form-management/create',\n component: FormManagementCreateComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Create new Form', roles: [ROLE_ADMIN]},\n },\n {\n path: 'form-management/edit/:id',\n component: FormManagementEditComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Form Builder', roles: [ROLE_ADMIN]},\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n declarations: [],\n})\nexport class FormManagementRoutingModule {}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnInit} from '@angular/core';\nimport {FormDefinition} from '@valtimo/contract';\nimport {FormManagementService} from '../form-management.service';\nimport {Router} from '@angular/router';\n\n@Component({\n selector: 'valtimo-form-management-list',\n templateUrl: './form-management-list.component.html',\n styleUrls: ['./form-management-list.component.scss'],\n})\nexport class FormManagementListComponent implements OnInit {\n public formDefinitions: FormDefinition[] = [];\n public formDefinitionFields: any[] = [\n {key: 'name', label: 'Name'},\n {key: 'readOnly', label: 'Read-only'},\n ];\n public pagination = {\n collectionSize: 0,\n page: 1,\n size: 10,\n maxPaginationItemSize: 5,\n };\n public pageParam = 0;\n\n public paginationClicked(page) {\n this.pageParam = page - 1;\n this.loadFormDefinitions();\n }\n\n constructor(private formManagementService: FormManagementService, private router: Router) {}\n\n ngOnInit() {}\n\n paginationSet() {\n this.loadFormDefinitions();\n }\n\n loadFormDefinitions(searchTerm?: string) {\n const params = {page: this.pageParam, size: this.pagination.size};\n if (searchTerm) {\n params['searchTerm'] = searchTerm;\n }\n this.formManagementService.queryFormDefinitions(params).subscribe(results => {\n this.pagination.collectionSize = results.body.totalElements;\n this.formDefinitions = results.body.content;\n });\n }\n\n editFormDefinition(formDefinition: FormDefinition) {\n this.router.navigate(['/form-management/edit', formDefinition.id]);\n }\n\n searchTermEntered(searchTerm: string) {\n this.loadFormDefinitions(searchTerm);\n }\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AfterViewInit,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ModalComponent} from '@valtimo/components';\nimport {DocumentService} from '@valtimo/document';\nimport {BehaviorSubject, Observable, Subject, Subscription} from 'rxjs';\nimport {take} from 'rxjs/operators';\n\n@Component({\n selector: 'valtimo-form-management-upload',\n templateUrl: './form-management-upload.component.html',\n styleUrls: ['./form-management-upload.component.scss'],\n})\nexport class FormManagementUploadComponent implements AfterViewInit, OnDestroy {\n @ViewChild('uploadFormDefinitionModal') modal: ModalComponent;\n\n @Input() show$: Observable<boolean>;\n @Output() definitionUploaded: EventEmitter<any> = new EventEmitter();\n\n readonly clear$ = new Subject();\n readonly jsonString$ = new BehaviorSubject<string>('');\n readonly error$ = new BehaviorSubject<string>('');\n readonly disabled$ = new BehaviorSubject<boolean>(false);\n\n private showSubscription: Subscription;\n private fileSubscription: Subscription;\n private errorSubscription: Subscription;\n\n private readonly file$ = new BehaviorSubject<File>(undefined);\n\n constructor(\n private readonly documentService: DocumentService,\n private readonly translateService: TranslateService\n ) {}\n\n ngAfterViewInit(): void {\n this.openShowSubscription();\n this.openFileSubscription();\n }\n\n ngOnDestroy(): void {\n this.showSubscription.unsubscribe();\n this.fileSubscription.unsubscribe();\n this.closeErrorSubscription();\n }\n\n setFile(file: File): void {\n this.clearError();\n this.file$.next(file);\n }\n\n uploadDefinition(): void {\n this.disable();\n\n this.jsonString$.pipe(take(1)).subscribe(definition => {\n this.closeErrorSubscription();\n this.clearError();\n this.enable();\n this.hideModal();\n this.definitionUploaded.emit(definition);\n });\n }\n\n private openErrorSubscription(errorCode: string): void {\n this.closeErrorSubscription();\n this.errorSubscription = this.translateService.stream(errorCode).subscribe(error => {\n this.error$.next(error);\n });\n }\n\n private closeErrorSubscription(): void {\n if (this.errorSubscription) {\n this.errorSubscription.unsubscribe();\n }\n }\n\n private clearError(): void {\n this.error$.next('');\n }\n\n private openFileSubscription(): void {\n this.fileSubscription = this.file$.subscribe(file => {\n if (file) {\n const reader = new FileReader();\n\n reader.onloadend = () => {\n const result = reader.result.toString();\n if (this.stringIsValidJson(result)) {\n this.jsonString$.next(result);\n }\n };\n\n reader.readAsText(file);\n } else {\n this.clearJsonString();\n }\n });\n }\n\n private openShowSubscription(): void {\n this.showSubscription = this.show$.subscribe(show => {\n if (show) {\n this.showModal();\n } else {\n this.hideModal();\n }\n\n this.clearJsonString();\n this.clearError();\n this.clearDropzone();\n });\n }\n\n private clearJsonString(): void {\n this.jsonString$.next('');\n }\n\n private clearDropzone(): void {\n this.clear$.next();\n }\n\n private showModal(): void {\n this.modal.show();\n }\n\n private hideModal(): void {\n this.modal.hide();\n }\n\n private stringIsValidJson(string: string) {\n try {\n // tslint:disable-next-line\n JSON.parse(string)?.formDefinition?.components;\n } catch (e) {\n this.clearDropzone();\n this.openErrorSubscription('dropzone.error.invalidFormDef');\n return false;\n }\n return true;\n }\n\n private disable(): void {\n this.disabled$.next(true);\n }\n\n private enable(): void {\n this.disabled$.next(false);\n }\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {FormManagementComponent} from './form-management.component';\nimport {FormManagementRoutingModule} from './form-management-routing.module';\nimport {\n DropzoneModule,\n FormIoModule,\n ListModule,\n ModalModule,\n WidgetModule,\n} from '@valtimo/components';\nimport {CommonModule} from '@angular/common';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {FormManagementCreateComponent} from './form-management-create/form-management-create.component';\nimport {FormManagementListComponent} from './form-management-list/form-management-list.component';\nimport {FormManagementEditComponent} from './form-management-edit/form-management-edit.component';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {NgbTooltipModule} from '@ng-bootstrap/ng-bootstrap';\nimport {FormManagementUploadComponent} from './form-management-upload/form-management-upload.component';\n\n@NgModule({\n declarations: [\n FormManagementComponent,\n FormManagementCreateComponent,\n FormManagementListComponent,\n FormManagementEditComponent,\n FormManagementUploadComponent,\n ],\n imports: [\n FormManagementRoutingModule,\n FormIoModule,\n CommonModule,\n ReactiveFormsModule,\n FormsModule,\n WidgetModule,\n ListModule,\n TranslateModule,\n NgbTooltipModule,\n DropzoneModule,\n ModalModule,\n ],\n exports: [FormManagementComponent],\n})\nexport class FormManagementModule {}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of form-management\n */\n\nexport * from './lib/form-management.service';\nexport * from './lib/form-management.component';\nexport * from './lib/form-management.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {FormManagementCreateComponent as ɵa} from './lib/form-management-create/form-management-create.component';\nexport {FormManagementEditComponent as ɵc} from './lib/form-management-edit/form-management-edit.component';\nexport {FormManagementListComponent as ɵb} from './lib/form-management-list/form-management-list.component';\nexport {FormManagementRoutingModule as ɵe} from './lib/form-management-routing.module';\nexport {FormManagementUploadComponent as ɵd} from './lib/form-management-upload/form-management-upload.component';"],"names":[],"mappings":"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"}
|