@valtimo/form-view-model 12.14.0 → 13.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/valtimo-form-view-model.mjs +19 -20
- package/fesm2022/valtimo-form-view-model.mjs.map +1 -1
- package/lib/services/view-model.service.d.ts +1 -1
- package/lib/services/view-model.service.d.ts.map +1 -1
- package/package.json +4 -6
- package/esm2022/lib/components/form-view-model/form-view-model.component.mjs +0 -380
- package/esm2022/lib/components/form-view-model/index.mjs +0 -17
- package/esm2022/lib/form-view-model.module.mjs +0 -41
- package/esm2022/lib/services/index.mjs +0 -17
- package/esm2022/lib/services/view-model.service.mjs +0 -100
- package/esm2022/public_api.mjs +0 -22
- package/esm2022/valtimo-form-view-model.mjs +0 -5
|
@@ -12,14 +12,13 @@ import * as i4 from '@angular/common';
|
|
|
12
12
|
import { CommonModule } from '@angular/common';
|
|
13
13
|
import * as i6 from 'carbon-components-angular';
|
|
14
14
|
import { LayerModule } from 'carbon-components-angular';
|
|
15
|
-
import * as i2 from '@valtimo/
|
|
16
|
-
import { BaseApiService, FORM_VIEW_MODEL_TOKEN } from '@valtimo/
|
|
17
|
-
import { InterceptorSkip } from '@valtimo/security';
|
|
15
|
+
import * as i2 from '@valtimo/shared';
|
|
16
|
+
import { BaseApiService, InterceptorSkip, FORM_VIEW_MODEL_TOKEN } from '@valtimo/shared';
|
|
18
17
|
import * as i2$1 from '@ngx-translate/core';
|
|
19
18
|
import * as i3 from '@valtimo/components';
|
|
20
19
|
|
|
21
20
|
/*
|
|
22
|
-
* Copyright 2015-
|
|
21
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
23
22
|
*
|
|
24
23
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
25
24
|
* you may not use this file except in compliance with the License.
|
|
@@ -103,16 +102,16 @@ class ViewModelService extends BaseApiService {
|
|
|
103
102
|
headers: new HttpHeaders().set(InterceptorSkip, '400'),
|
|
104
103
|
});
|
|
105
104
|
}
|
|
106
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
107
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
105
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ViewModelService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
106
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ViewModelService, providedIn: 'root' }); }
|
|
108
107
|
}
|
|
109
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
108
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ViewModelService, decorators: [{
|
|
110
109
|
type: Injectable,
|
|
111
110
|
args: [{ providedIn: 'root' }]
|
|
112
111
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ConfigService }] });
|
|
113
112
|
|
|
114
113
|
/*
|
|
115
|
-
* Copyright 2015-
|
|
114
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
116
115
|
*
|
|
117
116
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
118
117
|
* you may not use this file except in compliance with the License.
|
|
@@ -128,7 +127,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
128
127
|
*/
|
|
129
128
|
|
|
130
129
|
/*
|
|
131
|
-
* Copyright 2015-
|
|
130
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
132
131
|
*
|
|
133
132
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
134
133
|
* you may not use this file except in compliance with the License.
|
|
@@ -460,12 +459,12 @@ class FormViewModelComponent {
|
|
|
460
459
|
setWaitCursor(enabled) {
|
|
461
460
|
document.body.style.cursor = enabled ? 'wait' : 'auto';
|
|
462
461
|
}
|
|
463
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
464
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
462
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: FormViewModelComponent, deps: [{ token: ViewModelService }, { token: i2$1.TranslateService }, { token: i3.FormIoStateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
463
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: FormViewModelComponent, isStandalone: true, selector: "valtimo-form-view-model", inputs: { options: "options", submission: "submission", form: "form", formName: "formName", taskInstanceId: "taskInstanceId", isStartForm: "isStartForm", documentId: "documentId", processDefinitionKey: "processDefinitionKey", documentDefinitionName: "documentDefinitionName" }, outputs: { formSubmit: "formSubmit" }, viewQueries: [{ propertyName: "formio", first: true, predicate: ["formio"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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\n class=\"form-container formio-carbon\"\n cdsLayer=\"1.0\"\n *ngIf=\"{\n submission: submission$ | async,\n form: form$ | async,\n tokenSetInLocalStorage: tokenSetInLocalStorage$ | async,\n formioOptions: formioOptions$ | async,\n loading: loading$ | async,\n errors: formErrors$ | async,\n renderOptions: renderOptions$ | async,\n } as obs\"\n>\n <div *ngIf=\"obs.loading\" class=\"overlay\">\n <div class=\"spinner\">\n <i class=\"fa fa-spinner fa-spin\"></i>\n </div>\n </div>\n\n <div *ngIf=\"obs.errors.length > 0\" class=\"alert alert-danger pt-5 pb-5 mb-2\">\n <ol>\n <li *ngFor=\"let error of obs.errors\" class=\"pl-2\">\n {{ error }}\n </li>\n </ol>\n </div>\n\n <formio\n #formio\n [submission]=\"obs.submission\"\n [form]=\"obs.form\"\n [options]=\"obs.formioOptions\"\n [renderOptions]=\"obs.renderOptions\"\n [refresh]=\"refreshForm\"\n (submit)=\"onSubmit($event)\"\n (change)=\"onChange($event)\"\n (focusin)=\"onFocus($event)\"\n (focusout)=\"onBlur($event)\"\n (nextPage)=\"onNextPage()\"\n (prevPage)=\"onPreviousPage()\"\n ></formio>\n</div>\n", styles: [".form-container{position:relative}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#fffc;z-index:1000;display:flex;justify-content:center;align-items:center;pointer-events:all}.spinner{font-size:3rem;color:#007bff}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormioModule }, { kind: "component", type: i5.FormioComponent, selector: "formio" }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i6.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }] }); }
|
|
465
464
|
}
|
|
466
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
465
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: FormViewModelComponent, decorators: [{
|
|
467
466
|
type: Component,
|
|
468
|
-
args: [{ selector: 'valtimo-form-view-model', standalone: true, imports: [CommonModule, FormioModule, LayerModule], template: "<!--\n ~ Copyright 2015-
|
|
467
|
+
args: [{ selector: 'valtimo-form-view-model', standalone: true, imports: [CommonModule, FormioModule, LayerModule], template: "<!--\n ~ Copyright 2015-2025 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\n class=\"form-container formio-carbon\"\n cdsLayer=\"1.0\"\n *ngIf=\"{\n submission: submission$ | async,\n form: form$ | async,\n tokenSetInLocalStorage: tokenSetInLocalStorage$ | async,\n formioOptions: formioOptions$ | async,\n loading: loading$ | async,\n errors: formErrors$ | async,\n renderOptions: renderOptions$ | async,\n } as obs\"\n>\n <div *ngIf=\"obs.loading\" class=\"overlay\">\n <div class=\"spinner\">\n <i class=\"fa fa-spinner fa-spin\"></i>\n </div>\n </div>\n\n <div *ngIf=\"obs.errors.length > 0\" class=\"alert alert-danger pt-5 pb-5 mb-2\">\n <ol>\n <li *ngFor=\"let error of obs.errors\" class=\"pl-2\">\n {{ error }}\n </li>\n </ol>\n </div>\n\n <formio\n #formio\n [submission]=\"obs.submission\"\n [form]=\"obs.form\"\n [options]=\"obs.formioOptions\"\n [renderOptions]=\"obs.renderOptions\"\n [refresh]=\"refreshForm\"\n (submit)=\"onSubmit($event)\"\n (change)=\"onChange($event)\"\n (focusin)=\"onFocus($event)\"\n (focusout)=\"onBlur($event)\"\n (nextPage)=\"onNextPage()\"\n (prevPage)=\"onPreviousPage()\"\n ></formio>\n</div>\n", styles: [".form-container{position:relative}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#fffc;z-index:1000;display:flex;justify-content:center;align-items:center;pointer-events:all}.spinner{font-size:3rem;color:#007bff}\n"] }]
|
|
469
468
|
}], ctorParameters: () => [{ type: ViewModelService }, { type: i2$1.TranslateService }, { type: i3.FormIoStateService }], propDecorators: { formio: [{
|
|
470
469
|
type: ViewChild,
|
|
471
470
|
args: ['formio']
|
|
@@ -492,7 +491,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
492
491
|
}] } });
|
|
493
492
|
|
|
494
493
|
/*
|
|
495
|
-
* Copyright 2015-
|
|
494
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
496
495
|
*
|
|
497
496
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
498
497
|
* you may not use this file except in compliance with the License.
|
|
@@ -508,7 +507,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
508
507
|
*/
|
|
509
508
|
|
|
510
509
|
/*
|
|
511
|
-
* Copyright 2015-
|
|
510
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
512
511
|
*
|
|
513
512
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
514
513
|
* you may not use this file except in compliance with the License.
|
|
@@ -523,16 +522,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
523
522
|
* limitations under the License.
|
|
524
523
|
*/
|
|
525
524
|
class FormViewModelModule {
|
|
526
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
527
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
528
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
525
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: FormViewModelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
526
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: FormViewModelModule }); }
|
|
527
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: FormViewModelModule, providers: [
|
|
529
528
|
{
|
|
530
529
|
provide: FORM_VIEW_MODEL_TOKEN,
|
|
531
530
|
useValue: { component: FormViewModelComponent },
|
|
532
531
|
},
|
|
533
532
|
] }); }
|
|
534
533
|
}
|
|
535
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
534
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: FormViewModelModule, decorators: [{
|
|
536
535
|
type: NgModule,
|
|
537
536
|
args: [{
|
|
538
537
|
providers: [
|
|
@@ -545,7 +544,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
545
544
|
}] });
|
|
546
545
|
|
|
547
546
|
/*
|
|
548
|
-
* Copyright 2015-
|
|
547
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
549
548
|
*
|
|
550
549
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
551
550
|
* you may not use this file except in compliance with the License.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valtimo-form-view-model.mjs","sources":["../../../../projects/valtimo/form-view-model/src/lib/services/view-model.service.ts","../../../../projects/valtimo/form-view-model/src/lib/services/index.ts","../../../../projects/valtimo/form-view-model/src/lib/components/form-view-model/form-view-model.component.ts","../../../../projects/valtimo/form-view-model/src/lib/components/form-view-model/form-view-model.component.html","../../../../projects/valtimo/form-view-model/src/lib/components/form-view-model/index.ts","../../../../projects/valtimo/form-view-model/src/lib/form-view-model.module.ts","../../../../projects/valtimo/form-view-model/src/public_api.ts","../../../../projects/valtimo/form-view-model/src/valtimo-form-view-model.ts"],"sourcesContent":["/*\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 */\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService} from '@valtimo/config';\nimport {InterceptorSkip} from '@valtimo/security';\nimport {Observable} from 'rxjs';\n\n@Injectable({providedIn: 'root'})\nexport class ViewModelService extends BaseApiService {\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public getViewModel(formName: string, taskInstanceId: string): Observable<object> {\n return this.httpClient.get<any>(this.getApiUrl('/v1/form/view-model/user-task'), {\n params: {\n formName,\n taskInstanceId,\n },\n headers: new HttpHeaders().set(InterceptorSkip, '400'),\n });\n }\n\n public updateViewModel(\n formName: string,\n taskInstanceId: string,\n viewModel: object,\n page: number,\n isWizard: boolean\n ): Observable<object> {\n const params = {\n formName,\n taskInstanceId,\n isWizard,\n ...(!isNaN(page) && {page}),\n };\n return this.httpClient.post(this.getApiUrl(`/v1/form/view-model/user-task`), viewModel, {\n params,\n headers: new HttpHeaders().set(InterceptorSkip, '400'),\n });\n }\n\n public submitViewModel(\n formName: string,\n taskInstanceId: string,\n viewModel: object\n ): Observable<object> {\n return this.httpClient.post(this.getApiUrl(`/v1/form/view-model/submit/user-task`), viewModel, {\n params: {\n formName,\n taskInstanceId,\n },\n headers: new HttpHeaders().set(InterceptorSkip, '400'),\n });\n }\n\n public getViewModelForStartForm(\n formName: string,\n processDefinitionKey: string,\n documentId: string = null\n ): Observable<object> {\n return this.httpClient.get<any>(this.getApiUrl('/v1/form/view-model/start-form'), {\n params: {\n formName,\n processDefinitionKey,\n ...(!!documentId && {documentId}),\n },\n headers: new HttpHeaders().set(InterceptorSkip, '400'),\n });\n }\n\n public updateViewModelForStartForm(\n formName: string,\n processDefinitionKey: string,\n documentId: string,\n viewModel: object,\n page: number,\n isWizard: boolean\n ): Observable<object> {\n const params = {\n formName,\n processDefinitionKey,\n isWizard,\n ...(!isNaN(page) && {page}),\n ...(!!documentId && {documentId}),\n };\n return this.httpClient.post(this.getApiUrl(`/v1/form/view-model/start-form`), viewModel, {\n params,\n headers: new HttpHeaders().set(InterceptorSkip, '400'),\n });\n }\n\n public submitViewModelForStartForm(\n formName: string,\n processDefinitionKey: string,\n documentId: string,\n documentDefinitionName: string,\n viewModel: object\n ): Observable<object> {\n return this.httpClient.post(\n this.getApiUrl(`/v1/form/view-model/submit/start-form`),\n viewModel,\n {\n params: {\n formName,\n processDefinitionKey,\n documentDefinitionName,\n ...(!!documentId && {documentId}),\n },\n headers: new HttpHeaders().set(InterceptorSkip, '400'),\n }\n );\n }\n}\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\nexport * from './view-model.service';\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 */\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild} from '@angular/core';\nimport moment from 'moment';\nimport {\n BehaviorSubject,\n combineLatest,\n filter,\n interval,\n merge,\n Observable,\n Subject,\n Subscription,\n switchMap,\n take,\n tap,\n} from 'rxjs';\nimport {\n FormioComponent,\n FormioModule,\n FormioOptions,\n FormioSubmission,\n FormioSubmissionCallback,\n} from '@formio/angular';\nimport {ViewModelService} from '../../services';\nimport {distinctUntilChanged, map} from 'rxjs/operators';\nimport {deepmerge} from 'deepmerge-ts';\nimport {FormIoStateService, ValtimoFormioOptions} from '@valtimo/components';\nimport {TranslateService} from '@ngx-translate/core';\nimport {HttpErrorResponse} from '@angular/common/http';\nimport {CommonModule} from '@angular/common';\nimport {LayerModule} from 'carbon-components-angular';\n\nmoment.defaultFormat = 'DD MMM YYYY HH:mm';\n\n@Component({\n selector: 'valtimo-form-view-model',\n templateUrl: './form-view-model.component.html',\n styleUrls: ['./form-view-model.component.css'],\n standalone: true,\n imports: [CommonModule, FormioModule, LayerModule],\n})\nexport class FormViewModelComponent implements OnInit, OnDestroy {\n @ViewChild('formio') formio: FormioComponent;\n\n @Input() set options(optionsValue: any) {\n this.options$.next(optionsValue);\n }\n\n @Input() set submission(submissionValue: FormioSubmission) {\n this.submission$.next(submissionValue);\n }\n\n @Input() set form(formValue: object) {\n const instance = this;\n const form = {\n loadInitialViewModel: () => instance.loadInitialViewModel(),\n updateViewModel: () => instance.updateViewModel(),\n loadInitialStartFormViewModel: () => instance.loadInitialViewModelForStartForm(),\n updateViewStartFormModel: () => instance.updateViewModelForStartForm(),\n ...formValue,\n };\n this.form$.next(form);\n }\n\n @Input() set formName(formName: string) {\n this.formName$.next(formName);\n }\n\n @Input() set taskInstanceId(taskInstanceId: string) {\n this.taskInstanceId$.next(taskInstanceId);\n }\n\n @Input() set isStartForm(isStartFormValue: boolean) {\n this.isStartForm$.next(isStartFormValue);\n }\n\n @Input() set documentId(documentId: string) {\n this.documentId$.next(documentId);\n }\n\n @Input() set processDefinitionKey(processDefinitionKeyValue: string) {\n this.processDefinitionKey$.next(processDefinitionKeyValue);\n }\n\n @Input() set documentDefinitionName(documentDefinitionNameValue: string) {\n this.documentDefinitionName$.next(documentDefinitionNameValue);\n }\n\n @Output() formSubmit = new EventEmitter<any>();\n\n public refreshForm = new EventEmitter();\n\n private _preventNextPage = false;\n private _preventPreviousPage = false;\n private _isWizard: boolean = false;\n\n public pendingUpdateSubscription: Subscription | null = null;\n\n public readonly submission$ = new BehaviorSubject<any>({});\n public readonly form$ = new BehaviorSubject<object>(undefined);\n public readonly formName$ = new BehaviorSubject<string>(undefined);\n public readonly formErrors$ = new BehaviorSubject<string[]>([]);\n public readonly options$ = new BehaviorSubject<ValtimoFormioOptions>(undefined);\n public readonly taskInstanceId$ = new BehaviorSubject<string>(undefined);\n public readonly tokenSetInLocalStorage$ = new BehaviorSubject<boolean>(false);\n public readonly data$ = new BehaviorSubject<any>(null);\n public readonly changeEvents$ = new Subject<any>();\n public readonly blur$ = new Subject<FocusEvent>();\n public readonly focus$ = new BehaviorSubject<FocusEvent>(null);\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n public readonly isStartForm$ = new BehaviorSubject<boolean>(false);\n public readonly documentId$ = new BehaviorSubject<string>(null);\n public readonly processDefinitionKey$ = new BehaviorSubject<string>(undefined);\n public readonly documentDefinitionName$ = new BehaviorSubject<string>(undefined);\n public readonly updateForm = new Subject<boolean>();\n\n public readonly currentLanguage$ = this.translateService.stream('key').pipe(\n map(() => this.translateService.currentLang),\n distinctUntilChanged()\n );\n\n private readonly _overrideOptions$ = new BehaviorSubject<FormioOptions>({\n hooks: {\n beforeSubmit: this.beforeSubmitHook(this),\n },\n });\n\n public readonly formioOptions$: Observable<ValtimoFormioOptions | FormioOptions> = combineLatest([\n this.options$,\n this._overrideOptions$,\n ]).pipe(\n map(([options, overrideOptions]) => {\n return deepmerge(options, overrideOptions);\n })\n );\n\n public readonly renderOptions$: Observable<any> = combineLatest([this.currentLanguage$]).pipe(\n map(([language]) => {\n const formioTranslations = this.translateService.instant('formioTranslations');\n\n return {\n language,\n ...(typeof formioTranslations === 'object'\n ? {\n language,\n i18n: {\n [language]: this.stateService.flattenTranslationsObject(formioTranslations),\n },\n }\n : {}),\n };\n })\n );\n\n private focusSubscription: Subscription;\n private blurSubscription: Subscription;\n private updateSubscription: Subscription;\n\n constructor(\n private readonly viewModelService: ViewModelService,\n private readonly translateService: TranslateService,\n private readonly stateService: FormIoStateService\n ) {}\n\n public ngOnInit(): void {\n if (this.isStartForm$.value) {\n this.loadInitialViewModelForStartForm();\n } else {\n this.loadInitialViewModel();\n }\n\n this.focusSubscription = this.focus$\n .pipe(\n filter(e => {\n // We only want to handle blur events after entering an input\n return !!e && e.target instanceof HTMLInputElement;\n })\n )\n .subscribe(() => {\n this.pendingUpdateSubscription?.unsubscribe();\n this.blurSubscription?.unsubscribe();\n this.blurSubscription = this.blur$\n .pipe(\n filter(e => {\n // Filter out events where relatedTarget is not null.\n // The relatedTarget will be null when no new input is focused.\n return !e.relatedTarget;\n })\n )\n .subscribe(() => {\n this.blurSubscription?.unsubscribe();\n this.setWaitCursor(true);\n this.updateForm.next(true);\n });\n });\n\n this.updateSubscription = this.updateForm.subscribe(() => {\n if (this.isStartForm$.value) {\n this.updateViewModelForStartForm();\n } else {\n this.updateViewModel();\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.blurSubscription?.unsubscribe();\n this.focusSubscription?.unsubscribe();\n this.updateSubscription?.unsubscribe();\n this.pendingUpdateSubscription?.unsubscribe();\n this.setWaitCursor(false);\n }\n\n public beforeSubmitHook(instance: FormViewModelComponent): (submission, callback) => void {\n return (submission, callback) => instance.beforeSubmit(submission, callback);\n }\n\n public beforeSubmit(submission: any, callback: FormioSubmissionCallback): void {\n this.changeEvents$.pipe(take(1)).subscribe({\n next: () => {\n this.pendingUpdateSubscription?.unsubscribe();\n this.setWaitCursor(false);\n\n combineLatest([\n this.formName$,\n this.taskInstanceId$,\n this.processDefinitionKey$,\n this.documentDefinitionName$,\n this.isStartForm$,\n this.documentId$,\n ])\n .pipe(\n take(1),\n switchMap(\n ([\n formName,\n taskInstanceId,\n processDefinitionKey,\n documentDefinitionName,\n isStartForm,\n documentId,\n ]) =>\n isStartForm\n ? this.viewModelService.submitViewModelForStartForm(\n formName,\n processDefinitionKey,\n documentId,\n documentDefinitionName,\n submission.data\n )\n : this.viewModelService.submitViewModel(formName, taskInstanceId, submission.data)\n )\n )\n .subscribe({\n next: _ => {\n callback(null, submission);\n },\n error: err => {\n this.handleSubmissionError(err, callback);\n },\n });\n },\n });\n }\n\n private handleSubmissionError(error: any, callback: FormioSubmissionCallback): void {\n if (error instanceof HttpErrorResponse) {\n merge(this.changeEvents$, interval(200))\n .pipe(take(1))\n .subscribe({\n next: () => {\n this.handleFormError(error);\n },\n });\n }\n\n callback({message: 'error', component: null, silent: false}, null);\n }\n\n private handleFormError(error: HttpErrorResponse): void {\n const formio = this.formio.formio;\n const formErrors = [];\n\n this.formErrors$.next([]);\n\n const componentErrors = error?.error?.componentErrors;\n const genericMessage = error?.error?.error;\n const componentKey = error?.error?.component;\n\n // Handle field-level (component) errors\n if (Array.isArray(componentErrors)) {\n for (const {component, message} of componentErrors) {\n const field = formio.getComponent(component);\n if (field) {\n field.setCustomValidity(message, true); // Mark dirty\n } else {\n formErrors.push(message);\n }\n }\n this.formErrors$.next(formErrors);\n return;\n }\n\n // Handle single (generic or component-specific) error\n if (genericMessage) {\n const field = formio.getComponent(componentKey);\n if (field) {\n field.setCustomValidity(genericMessage, true);\n } else {\n this.formErrors$.next([genericMessage]);\n }\n }\n }\n\n public onSubmit(submission: FormioSubmission): void {\n this.formSubmit.next(submission);\n }\n\n public onFocus($event: FocusEvent): void {\n this.focus$.next($event);\n }\n\n public onBlur(blurEvent: FocusEvent): void {\n this.blur$.next(blurEvent);\n }\n\n public onChange(object: any): void {\n this.changeEvents$.next(object);\n if (object.data) {\n this.data$.next(object.data);\n }\n }\n\n public onNextPage(): void {\n this._preventNextPage = true;\n this.formio.formio.setPage(this.formio.formio.page - 1);\n this.updateForm.next(true);\n }\n\n public onPreviousPage(): void {\n this._preventPreviousPage = true;\n this.formio.formio.setPage(this.formio.formio.page + 1);\n this.updateForm.next(true);\n }\n\n private handlePageChange(): void {\n if (this._preventNextPage) {\n this._preventNextPage = false;\n this.formio.formio.setPage(this.formio.formio.page + 1);\n } else if (this._preventPreviousPage) {\n this._preventPreviousPage = false;\n this.formio.formio.setPage(this.formio.formio.page - 1);\n }\n }\n\n public loadInitialViewModel(): void {\n combineLatest([this.formName$, this.taskInstanceId$])\n .pipe(\n take(1),\n switchMap(([formName, taskInstanceId]) =>\n this.viewModelService.getViewModel(formName, taskInstanceId).pipe(\n tap(viewModel => {\n this.changeEvents$.pipe(take(1)).subscribe(() => {\n this.loading$.next(false);\n });\n this.submission$.next({data: viewModel});\n this._isWizard = this.formio.form.display === 'wizard';\n })\n )\n )\n )\n .subscribe();\n }\n\n public loadInitialViewModelForStartForm(): void {\n combineLatest([this.formName$, this.processDefinitionKey$, this.documentId$])\n .pipe(\n take(1),\n switchMap(([formName, processDefinitionKey, documentId]) =>\n this.viewModelService\n .getViewModelForStartForm(formName, processDefinitionKey, documentId)\n .pipe(\n tap(viewModel => {\n this.changeEvents$.pipe(take(1)).subscribe(() => {\n this.loading$.next(false);\n });\n this.submission$.next({data: viewModel});\n this._isWizard = this.formio.form.display === 'wizard';\n })\n )\n )\n )\n .subscribe();\n }\n\n public updateViewModel(): void {\n this.pendingUpdateSubscription?.unsubscribe();\n\n this.pendingUpdateSubscription = combineLatest([\n this.formName$,\n this.taskInstanceId$,\n this.data$,\n ])\n .pipe(\n take(1),\n switchMap(([formName, taskInstanceId, data]) =>\n this.viewModelService\n .updateViewModel(\n formName,\n taskInstanceId,\n data,\n this.formio.formio.page,\n this._isWizard\n )\n .pipe(\n tap({\n next: viewModel => this.handleViewModelUpdate(viewModel),\n error: error => this.handleViewModelUpdateError(error),\n })\n )\n )\n )\n .subscribe();\n }\n\n public updateViewModelForStartForm(): void {\n this.pendingUpdateSubscription?.unsubscribe();\n\n this.pendingUpdateSubscription = combineLatest([\n this.formName$,\n this.processDefinitionKey$,\n this.data$,\n this.documentId$,\n ])\n .pipe(\n take(1),\n switchMap(([formName, processDefinitionKey, data, documentId]) =>\n this.viewModelService\n .updateViewModelForStartForm(\n formName,\n processDefinitionKey,\n documentId,\n data,\n this.formio.formio.page,\n this._isWizard\n )\n .pipe(\n tap({\n next: viewModel => this.handleViewModelUpdate(viewModel),\n error: error => this.handleViewModelUpdateError(error),\n })\n )\n )\n )\n .subscribe();\n }\n\n public handleViewModelUpdate(viewModel: object): void {\n const submission = this.submission$.value;\n submission.data = viewModel;\n this.submission$.next(submission);\n this.handlePageChange();\n this.refreshForm.emit({submission});\n this.pendingUpdateSubscription?.unsubscribe();\n this.pendingUpdateSubscription = null;\n this.formErrors$.next([]);\n this.setWaitCursor(false);\n }\n\n public handleViewModelUpdateError(error: HttpErrorResponse): void {\n this.pendingUpdateSubscription?.unsubscribe();\n this.pendingUpdateSubscription = null;\n this.handleFormError(error);\n this.setWaitCursor(false);\n }\n\n private setWaitCursor(enabled: boolean): void {\n document.body.style.cursor = enabled ? 'wait' : 'auto';\n }\n}\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\n<div\n class=\"form-container formio-carbon\"\n cdsLayer=\"1.0\"\n *ngIf=\"{\n submission: submission$ | async,\n form: form$ | async,\n tokenSetInLocalStorage: tokenSetInLocalStorage$ | async,\n formioOptions: formioOptions$ | async,\n loading: loading$ | async,\n errors: formErrors$ | async,\n renderOptions: renderOptions$ | async,\n } as obs\"\n>\n <div *ngIf=\"obs.loading\" class=\"overlay\">\n <div class=\"spinner\">\n <i class=\"fa fa-spinner fa-spin\"></i>\n </div>\n </div>\n\n <div *ngIf=\"obs.errors.length > 0\" class=\"alert alert-danger pt-5 pb-5 mb-2\">\n <ol>\n <li *ngFor=\"let error of obs.errors\" class=\"pl-2\">\n {{ error }}\n </li>\n </ol>\n </div>\n\n <formio\n #formio\n [submission]=\"obs.submission\"\n [form]=\"obs.form\"\n [options]=\"obs.formioOptions\"\n [renderOptions]=\"obs.renderOptions\"\n [refresh]=\"refreshForm\"\n (submit)=\"onSubmit($event)\"\n (change)=\"onChange($event)\"\n (focusin)=\"onFocus($event)\"\n (focusout)=\"onBlur($event)\"\n (nextPage)=\"onNextPage()\"\n (prevPage)=\"onPreviousPage()\"\n ></formio>\n</div>\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\nexport * from './form-view-model.component';\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 */\nimport {NgModule} from '@angular/core';\nimport {FORM_VIEW_MODEL_TOKEN} from '@valtimo/config';\nimport {FormViewModelComponent} from './components/form-view-model';\n\n@NgModule({\n providers: [\n {\n provide: FORM_VIEW_MODEL_TOKEN,\n useValue: {component: FormViewModelComponent},\n },\n ],\n})\nexport class FormViewModelModule {}\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\n/*\n * Public API Surface of form view model\n */\n\nexport * from './lib/components/form-view-model/form-view-model.component';\nexport * from './lib/services';\nexport * from './lib/form-view-model.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.ViewModelService","i2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"valtimo-form-view-model.mjs","sources":["../../../../projects/valtimo/form-view-model/src/lib/services/view-model.service.ts","../../../../projects/valtimo/form-view-model/src/lib/services/index.ts","../../../../projects/valtimo/form-view-model/src/lib/components/form-view-model/form-view-model.component.ts","../../../../projects/valtimo/form-view-model/src/lib/components/form-view-model/form-view-model.component.html","../../../../projects/valtimo/form-view-model/src/lib/components/form-view-model/index.ts","../../../../projects/valtimo/form-view-model/src/lib/form-view-model.module.ts","../../../../projects/valtimo/form-view-model/src/public_api.ts","../../../../projects/valtimo/form-view-model/src/valtimo-form-view-model.ts"],"sourcesContent":["/*\n * Copyright 2015-2025 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 */\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService, InterceptorSkip} from '@valtimo/shared';\nimport {Observable} from 'rxjs';\n\n@Injectable({providedIn: 'root'})\nexport class ViewModelService extends BaseApiService {\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public getViewModel(formName: string, taskInstanceId: string): Observable<object> {\n return this.httpClient.get<any>(this.getApiUrl('/v1/form/view-model/user-task'), {\n params: {\n formName,\n taskInstanceId,\n },\n headers: new HttpHeaders().set(InterceptorSkip, '400'),\n });\n }\n\n public updateViewModel(\n formName: string,\n taskInstanceId: string,\n viewModel: object,\n page: number,\n isWizard: boolean\n ): Observable<object> {\n const params = {\n formName,\n taskInstanceId,\n isWizard,\n ...(!isNaN(page) && {page}),\n };\n return this.httpClient.post(this.getApiUrl(`/v1/form/view-model/user-task`), viewModel, {\n params,\n headers: new HttpHeaders().set(InterceptorSkip, '400'),\n });\n }\n\n public submitViewModel(\n formName: string,\n taskInstanceId: string,\n viewModel: object\n ): Observable<object> {\n return this.httpClient.post(this.getApiUrl(`/v1/form/view-model/submit/user-task`), viewModel, {\n params: {\n formName,\n taskInstanceId,\n },\n headers: new HttpHeaders().set(InterceptorSkip, '400'),\n });\n }\n\n public getViewModelForStartForm(\n formName: string,\n processDefinitionKey: string,\n documentId: string = null\n ): Observable<object> {\n return this.httpClient.get<any>(this.getApiUrl('/v1/form/view-model/start-form'), {\n params: {\n formName,\n processDefinitionKey,\n ...(!!documentId && {documentId}),\n },\n headers: new HttpHeaders().set(InterceptorSkip, '400'),\n });\n }\n\n public updateViewModelForStartForm(\n formName: string,\n processDefinitionKey: string,\n documentId: string,\n viewModel: object,\n page: number,\n isWizard: boolean\n ): Observable<object> {\n const params = {\n formName,\n processDefinitionKey,\n isWizard,\n ...(!isNaN(page) && {page}),\n ...(!!documentId && {documentId}),\n };\n return this.httpClient.post(this.getApiUrl(`/v1/form/view-model/start-form`), viewModel, {\n params,\n headers: new HttpHeaders().set(InterceptorSkip, '400'),\n });\n }\n\n public submitViewModelForStartForm(\n formName: string,\n processDefinitionKey: string,\n documentId: string,\n documentDefinitionName: string,\n viewModel: object\n ): Observable<object> {\n return this.httpClient.post(\n this.getApiUrl(`/v1/form/view-model/submit/start-form`),\n viewModel,\n {\n params: {\n formName,\n processDefinitionKey,\n documentDefinitionName,\n ...(!!documentId && {documentId}),\n },\n headers: new HttpHeaders().set(InterceptorSkip, '400'),\n }\n );\n }\n}\n","/*\n * Copyright 2015-2025 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\nexport * from './view-model.service';\n","/*\n * Copyright 2015-2025 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 */\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild} from '@angular/core';\nimport moment from 'moment';\nimport {\n BehaviorSubject,\n combineLatest,\n filter,\n interval,\n merge,\n Observable,\n Subject,\n Subscription,\n switchMap,\n take,\n tap,\n} from 'rxjs';\nimport {\n FormioComponent,\n FormioModule,\n FormioOptions,\n FormioSubmission,\n FormioSubmissionCallback,\n} from '@formio/angular';\nimport {ViewModelService} from '../../services';\nimport {distinctUntilChanged, map} from 'rxjs/operators';\nimport {deepmerge} from 'deepmerge-ts';\nimport {FormIoStateService, ValtimoFormioOptions} from '@valtimo/components';\nimport {TranslateService} from '@ngx-translate/core';\nimport {HttpErrorResponse} from '@angular/common/http';\nimport {CommonModule} from '@angular/common';\nimport {LayerModule} from 'carbon-components-angular';\n\nmoment.defaultFormat = 'DD MMM YYYY HH:mm';\n\n@Component({\n selector: 'valtimo-form-view-model',\n templateUrl: './form-view-model.component.html',\n styleUrls: ['./form-view-model.component.css'],\n standalone: true,\n imports: [CommonModule, FormioModule, LayerModule],\n})\nexport class FormViewModelComponent implements OnInit, OnDestroy {\n @ViewChild('formio') formio: FormioComponent;\n\n @Input() set options(optionsValue: any) {\n this.options$.next(optionsValue);\n }\n\n @Input() set submission(submissionValue: FormioSubmission) {\n this.submission$.next(submissionValue);\n }\n\n @Input() set form(formValue: object) {\n const instance = this;\n const form = {\n loadInitialViewModel: () => instance.loadInitialViewModel(),\n updateViewModel: () => instance.updateViewModel(),\n loadInitialStartFormViewModel: () => instance.loadInitialViewModelForStartForm(),\n updateViewStartFormModel: () => instance.updateViewModelForStartForm(),\n ...formValue,\n };\n this.form$.next(form);\n }\n\n @Input() set formName(formName: string) {\n this.formName$.next(formName);\n }\n\n @Input() set taskInstanceId(taskInstanceId: string) {\n this.taskInstanceId$.next(taskInstanceId);\n }\n\n @Input() set isStartForm(isStartFormValue: boolean) {\n this.isStartForm$.next(isStartFormValue);\n }\n\n @Input() set documentId(documentId: string) {\n this.documentId$.next(documentId);\n }\n\n @Input() set processDefinitionKey(processDefinitionKeyValue: string) {\n this.processDefinitionKey$.next(processDefinitionKeyValue);\n }\n\n @Input() set documentDefinitionName(documentDefinitionNameValue: string) {\n this.documentDefinitionName$.next(documentDefinitionNameValue);\n }\n\n @Output() formSubmit = new EventEmitter<any>();\n\n public refreshForm = new EventEmitter();\n\n private _preventNextPage = false;\n private _preventPreviousPage = false;\n private _isWizard: boolean = false;\n\n public pendingUpdateSubscription: Subscription | null = null;\n\n public readonly submission$ = new BehaviorSubject<any>({});\n public readonly form$ = new BehaviorSubject<object>(undefined);\n public readonly formName$ = new BehaviorSubject<string>(undefined);\n public readonly formErrors$ = new BehaviorSubject<string[]>([]);\n public readonly options$ = new BehaviorSubject<ValtimoFormioOptions>(undefined);\n public readonly taskInstanceId$ = new BehaviorSubject<string>(undefined);\n public readonly tokenSetInLocalStorage$ = new BehaviorSubject<boolean>(false);\n public readonly data$ = new BehaviorSubject<any>(null);\n public readonly changeEvents$ = new Subject<any>();\n public readonly blur$ = new Subject<FocusEvent>();\n public readonly focus$ = new BehaviorSubject<FocusEvent>(null);\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n public readonly isStartForm$ = new BehaviorSubject<boolean>(false);\n public readonly documentId$ = new BehaviorSubject<string>(null);\n public readonly processDefinitionKey$ = new BehaviorSubject<string>(undefined);\n public readonly documentDefinitionName$ = new BehaviorSubject<string>(undefined);\n public readonly updateForm = new Subject<boolean>();\n\n public readonly currentLanguage$ = this.translateService.stream('key').pipe(\n map(() => this.translateService.currentLang),\n distinctUntilChanged()\n );\n\n private readonly _overrideOptions$ = new BehaviorSubject<FormioOptions>({\n hooks: {\n beforeSubmit: this.beforeSubmitHook(this),\n },\n });\n\n public readonly formioOptions$: Observable<ValtimoFormioOptions | FormioOptions> = combineLatest([\n this.options$,\n this._overrideOptions$,\n ]).pipe(\n map(([options, overrideOptions]) => {\n return deepmerge(options, overrideOptions);\n })\n );\n\n public readonly renderOptions$: Observable<any> = combineLatest([this.currentLanguage$]).pipe(\n map(([language]) => {\n const formioTranslations = this.translateService.instant('formioTranslations');\n\n return {\n language,\n ...(typeof formioTranslations === 'object'\n ? {\n language,\n i18n: {\n [language]: this.stateService.flattenTranslationsObject(formioTranslations),\n },\n }\n : {}),\n };\n })\n );\n\n private focusSubscription: Subscription;\n private blurSubscription: Subscription;\n private updateSubscription: Subscription;\n\n constructor(\n private readonly viewModelService: ViewModelService,\n private readonly translateService: TranslateService,\n private readonly stateService: FormIoStateService\n ) {}\n\n public ngOnInit(): void {\n if (this.isStartForm$.value) {\n this.loadInitialViewModelForStartForm();\n } else {\n this.loadInitialViewModel();\n }\n\n this.focusSubscription = this.focus$\n .pipe(\n filter(e => {\n // We only want to handle blur events after entering an input\n return !!e && e.target instanceof HTMLInputElement;\n })\n )\n .subscribe(() => {\n this.pendingUpdateSubscription?.unsubscribe();\n this.blurSubscription?.unsubscribe();\n this.blurSubscription = this.blur$\n .pipe(\n filter(e => {\n // Filter out events where relatedTarget is not null.\n // The relatedTarget will be null when no new input is focused.\n return !e.relatedTarget;\n })\n )\n .subscribe(() => {\n this.blurSubscription?.unsubscribe();\n this.setWaitCursor(true);\n this.updateForm.next(true);\n });\n });\n\n this.updateSubscription = this.updateForm.subscribe(() => {\n if (this.isStartForm$.value) {\n this.updateViewModelForStartForm();\n } else {\n this.updateViewModel();\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.blurSubscription?.unsubscribe();\n this.focusSubscription?.unsubscribe();\n this.updateSubscription?.unsubscribe();\n this.pendingUpdateSubscription?.unsubscribe();\n this.setWaitCursor(false);\n }\n\n public beforeSubmitHook(instance: FormViewModelComponent): (submission, callback) => void {\n return (submission, callback) => instance.beforeSubmit(submission, callback);\n }\n\n public beforeSubmit(submission: any, callback: FormioSubmissionCallback): void {\n this.changeEvents$.pipe(take(1)).subscribe({\n next: () => {\n this.pendingUpdateSubscription?.unsubscribe();\n this.setWaitCursor(false);\n\n combineLatest([\n this.formName$,\n this.taskInstanceId$,\n this.processDefinitionKey$,\n this.documentDefinitionName$,\n this.isStartForm$,\n this.documentId$,\n ])\n .pipe(\n take(1),\n switchMap(\n ([\n formName,\n taskInstanceId,\n processDefinitionKey,\n documentDefinitionName,\n isStartForm,\n documentId,\n ]) =>\n isStartForm\n ? this.viewModelService.submitViewModelForStartForm(\n formName,\n processDefinitionKey,\n documentId,\n documentDefinitionName,\n submission.data\n )\n : this.viewModelService.submitViewModel(formName, taskInstanceId, submission.data)\n )\n )\n .subscribe({\n next: _ => {\n callback(null, submission);\n },\n error: err => {\n this.handleSubmissionError(err, callback);\n },\n });\n },\n });\n }\n\n private handleSubmissionError(error: any, callback: FormioSubmissionCallback): void {\n if (error instanceof HttpErrorResponse) {\n merge(this.changeEvents$, interval(200))\n .pipe(take(1))\n .subscribe({\n next: () => {\n this.handleFormError(error);\n },\n });\n }\n\n callback({message: 'error', component: null, silent: false}, null);\n }\n\n private handleFormError(error: HttpErrorResponse): void {\n const formio = this.formio.formio;\n const formErrors = [];\n\n this.formErrors$.next([]);\n\n const componentErrors = error?.error?.componentErrors;\n const genericMessage = error?.error?.error;\n const componentKey = error?.error?.component;\n\n // Handle field-level (component) errors\n if (Array.isArray(componentErrors)) {\n for (const {component, message} of componentErrors) {\n const field = formio.getComponent(component);\n if (field) {\n field.setCustomValidity(message, true); // Mark dirty\n } else {\n formErrors.push(message);\n }\n }\n this.formErrors$.next(formErrors);\n return;\n }\n\n // Handle single (generic or component-specific) error\n if (genericMessage) {\n const field = formio.getComponent(componentKey);\n if (field) {\n field.setCustomValidity(genericMessage, true);\n } else {\n this.formErrors$.next([genericMessage]);\n }\n }\n }\n\n public onSubmit(submission: FormioSubmission): void {\n this.formSubmit.next(submission);\n }\n\n public onFocus($event: FocusEvent): void {\n this.focus$.next($event);\n }\n\n public onBlur(blurEvent: FocusEvent): void {\n this.blur$.next(blurEvent);\n }\n\n public onChange(object: any): void {\n this.changeEvents$.next(object);\n if (object.data) {\n this.data$.next(object.data);\n }\n }\n\n public onNextPage(): void {\n this._preventNextPage = true;\n this.formio.formio.setPage(this.formio.formio.page - 1);\n this.updateForm.next(true);\n }\n\n public onPreviousPage(): void {\n this._preventPreviousPage = true;\n this.formio.formio.setPage(this.formio.formio.page + 1);\n this.updateForm.next(true);\n }\n\n private handlePageChange(): void {\n if (this._preventNextPage) {\n this._preventNextPage = false;\n this.formio.formio.setPage(this.formio.formio.page + 1);\n } else if (this._preventPreviousPage) {\n this._preventPreviousPage = false;\n this.formio.formio.setPage(this.formio.formio.page - 1);\n }\n }\n\n public loadInitialViewModel(): void {\n combineLatest([this.formName$, this.taskInstanceId$])\n .pipe(\n take(1),\n switchMap(([formName, taskInstanceId]) =>\n this.viewModelService.getViewModel(formName, taskInstanceId).pipe(\n tap(viewModel => {\n this.changeEvents$.pipe(take(1)).subscribe(() => {\n this.loading$.next(false);\n });\n this.submission$.next({data: viewModel});\n this._isWizard = this.formio.form.display === 'wizard';\n })\n )\n )\n )\n .subscribe();\n }\n\n public loadInitialViewModelForStartForm(): void {\n combineLatest([this.formName$, this.processDefinitionKey$, this.documentId$])\n .pipe(\n take(1),\n switchMap(([formName, processDefinitionKey, documentId]) =>\n this.viewModelService\n .getViewModelForStartForm(formName, processDefinitionKey, documentId)\n .pipe(\n tap(viewModel => {\n this.changeEvents$.pipe(take(1)).subscribe(() => {\n this.loading$.next(false);\n });\n this.submission$.next({data: viewModel});\n this._isWizard = this.formio.form.display === 'wizard';\n })\n )\n )\n )\n .subscribe();\n }\n\n public updateViewModel(): void {\n this.pendingUpdateSubscription?.unsubscribe();\n\n this.pendingUpdateSubscription = combineLatest([\n this.formName$,\n this.taskInstanceId$,\n this.data$,\n ])\n .pipe(\n take(1),\n switchMap(([formName, taskInstanceId, data]) =>\n this.viewModelService\n .updateViewModel(\n formName,\n taskInstanceId,\n data,\n this.formio.formio.page,\n this._isWizard\n )\n .pipe(\n tap({\n next: viewModel => this.handleViewModelUpdate(viewModel),\n error: error => this.handleViewModelUpdateError(error),\n })\n )\n )\n )\n .subscribe();\n }\n\n public updateViewModelForStartForm(): void {\n this.pendingUpdateSubscription?.unsubscribe();\n\n this.pendingUpdateSubscription = combineLatest([\n this.formName$,\n this.processDefinitionKey$,\n this.data$,\n this.documentId$,\n ])\n .pipe(\n take(1),\n switchMap(([formName, processDefinitionKey, data, documentId]) =>\n this.viewModelService\n .updateViewModelForStartForm(\n formName,\n processDefinitionKey,\n documentId,\n data,\n this.formio.formio.page,\n this._isWizard\n )\n .pipe(\n tap({\n next: viewModel => this.handleViewModelUpdate(viewModel),\n error: error => this.handleViewModelUpdateError(error),\n })\n )\n )\n )\n .subscribe();\n }\n\n public handleViewModelUpdate(viewModel: object): void {\n const submission = this.submission$.value;\n submission.data = viewModel;\n this.submission$.next(submission);\n this.handlePageChange();\n this.refreshForm.emit({submission});\n this.pendingUpdateSubscription?.unsubscribe();\n this.pendingUpdateSubscription = null;\n this.formErrors$.next([]);\n this.setWaitCursor(false);\n }\n\n public handleViewModelUpdateError(error: HttpErrorResponse): void {\n this.pendingUpdateSubscription?.unsubscribe();\n this.pendingUpdateSubscription = null;\n this.handleFormError(error);\n this.setWaitCursor(false);\n }\n\n private setWaitCursor(enabled: boolean): void {\n document.body.style.cursor = enabled ? 'wait' : 'auto';\n }\n}\n","<!--\n ~ Copyright 2015-2025 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\n class=\"form-container formio-carbon\"\n cdsLayer=\"1.0\"\n *ngIf=\"{\n submission: submission$ | async,\n form: form$ | async,\n tokenSetInLocalStorage: tokenSetInLocalStorage$ | async,\n formioOptions: formioOptions$ | async,\n loading: loading$ | async,\n errors: formErrors$ | async,\n renderOptions: renderOptions$ | async,\n } as obs\"\n>\n <div *ngIf=\"obs.loading\" class=\"overlay\">\n <div class=\"spinner\">\n <i class=\"fa fa-spinner fa-spin\"></i>\n </div>\n </div>\n\n <div *ngIf=\"obs.errors.length > 0\" class=\"alert alert-danger pt-5 pb-5 mb-2\">\n <ol>\n <li *ngFor=\"let error of obs.errors\" class=\"pl-2\">\n {{ error }}\n </li>\n </ol>\n </div>\n\n <formio\n #formio\n [submission]=\"obs.submission\"\n [form]=\"obs.form\"\n [options]=\"obs.formioOptions\"\n [renderOptions]=\"obs.renderOptions\"\n [refresh]=\"refreshForm\"\n (submit)=\"onSubmit($event)\"\n (change)=\"onChange($event)\"\n (focusin)=\"onFocus($event)\"\n (focusout)=\"onBlur($event)\"\n (nextPage)=\"onNextPage()\"\n (prevPage)=\"onPreviousPage()\"\n ></formio>\n</div>\n","/*\n * Copyright 2015-2025 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\nexport * from './form-view-model.component';\n","/*\n * Copyright 2015-2025 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 */\nimport {NgModule} from '@angular/core';\nimport {FORM_VIEW_MODEL_TOKEN} from '@valtimo/shared';\nimport {FormViewModelComponent} from './components/form-view-model';\n\n@NgModule({\n providers: [\n {\n provide: FORM_VIEW_MODEL_TOKEN,\n useValue: {component: FormViewModelComponent},\n },\n ],\n})\nexport class FormViewModelModule {}\n","/*\n * Copyright 2015-2025 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 view model\n */\n\nexport * from './lib/components/form-view-model/form-view-model.component';\nexport * from './lib/services';\nexport * from './lib/form-view-model.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.ViewModelService","i2"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { HttpClient } from '@angular/common/http';
|
|
2
|
-
import { BaseApiService, ConfigService } from '@valtimo/
|
|
2
|
+
import { BaseApiService, ConfigService } from '@valtimo/shared';
|
|
3
3
|
import { Observable } from 'rxjs';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class ViewModelService extends BaseApiService {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view-model.service.d.ts","sourceRoot":"","sources":["../../../../../projects/valtimo/form-view-model/src/lib/services/view-model.service.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,UAAU,EAAc,MAAM,sBAAsB,CAAC;AAE7D,OAAO,EAAC,cAAc,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"view-model.service.d.ts","sourceRoot":"","sources":["../../../../../projects/valtimo/form-view-model/src/lib/services/view-model.service.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,UAAU,EAAc,MAAM,sBAAsB,CAAC;AAE7D,OAAO,EAAC,cAAc,EAAE,aAAa,EAAkB,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAC,UAAU,EAAC,MAAM,MAAM,CAAC;;AAEhC,qBACa,gBAAiB,SAAQ,cAAc;IAEhD,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU;IACzC,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa;gBAD5B,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,aAAa;IAK1C,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAU1E,eAAe,CACpB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,GAChB,UAAU,CAAC,MAAM,CAAC;IAad,eAAe,CACpB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,GAChB,UAAU,CAAC,MAAM,CAAC;IAUd,wBAAwB,CAC7B,QAAQ,EAAE,MAAM,EAChB,oBAAoB,EAAE,MAAM,EAC5B,UAAU,GAAE,MAAa,GACxB,UAAU,CAAC,MAAM,CAAC;IAWd,2BAA2B,CAChC,QAAQ,EAAE,MAAM,EAChB,oBAAoB,EAAE,MAAM,EAC5B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,GAChB,UAAU,CAAC,MAAM,CAAC;IAcd,2BAA2B,CAChC,QAAQ,EAAE,MAAM,EAChB,oBAAoB,EAAE,MAAM,EAC5B,UAAU,EAAE,MAAM,EAClB,sBAAsB,EAAE,MAAM,EAC9B,SAAS,EAAE,MAAM,GAChB,UAAU,CAAC,MAAM,CAAC;yCA7FV,gBAAgB;6CAAhB,gBAAgB;CA4G5B"}
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@valtimo/form-view-model",
|
|
3
3
|
"license": "EUPL-1.2",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "13.0.0",
|
|
5
5
|
"peerDependencies": {
|
|
6
|
-
"@angular/common": "^
|
|
7
|
-
"@angular/core": "^
|
|
6
|
+
"@angular/common": "^19.2.8",
|
|
7
|
+
"@angular/core": "^19.2.8"
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"formiojs": "4.19.5",
|
|
11
10
|
"@formio/angular": "7.0.0",
|
|
11
|
+
"formiojs": "4.19.5",
|
|
12
12
|
"tslib": "^2.3.0"
|
|
13
13
|
},
|
|
14
14
|
"module": "fesm2022/valtimo-form-view-model.mjs",
|
|
@@ -19,8 +19,6 @@
|
|
|
19
19
|
},
|
|
20
20
|
".": {
|
|
21
21
|
"types": "./index.d.ts",
|
|
22
|
-
"esm2022": "./esm2022/valtimo-form-view-model.mjs",
|
|
23
|
-
"esm": "./esm2022/valtimo-form-view-model.mjs",
|
|
24
22
|
"default": "./fesm2022/valtimo-form-view-model.mjs"
|
|
25
23
|
}
|
|
26
24
|
},
|
|
@@ -1,380 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
17
|
-
import moment from 'moment';
|
|
18
|
-
import { BehaviorSubject, combineLatest, filter, interval, merge, Subject, switchMap, take, tap, } from 'rxjs';
|
|
19
|
-
import { FormioModule, } from '@formio/angular';
|
|
20
|
-
import { distinctUntilChanged, map } from 'rxjs/operators';
|
|
21
|
-
import { deepmerge } from 'deepmerge-ts';
|
|
22
|
-
import { HttpErrorResponse } from '@angular/common/http';
|
|
23
|
-
import { CommonModule } from '@angular/common';
|
|
24
|
-
import { LayerModule } from 'carbon-components-angular';
|
|
25
|
-
import * as i0 from "@angular/core";
|
|
26
|
-
import * as i1 from "../../services";
|
|
27
|
-
import * as i2 from "@ngx-translate/core";
|
|
28
|
-
import * as i3 from "@valtimo/components";
|
|
29
|
-
import * as i4 from "@angular/common";
|
|
30
|
-
import * as i5 from "@formio/angular";
|
|
31
|
-
import * as i6 from "carbon-components-angular";
|
|
32
|
-
moment.defaultFormat = 'DD MMM YYYY HH:mm';
|
|
33
|
-
export class FormViewModelComponent {
|
|
34
|
-
set options(optionsValue) {
|
|
35
|
-
this.options$.next(optionsValue);
|
|
36
|
-
}
|
|
37
|
-
set submission(submissionValue) {
|
|
38
|
-
this.submission$.next(submissionValue);
|
|
39
|
-
}
|
|
40
|
-
set form(formValue) {
|
|
41
|
-
const instance = this;
|
|
42
|
-
const form = {
|
|
43
|
-
loadInitialViewModel: () => instance.loadInitialViewModel(),
|
|
44
|
-
updateViewModel: () => instance.updateViewModel(),
|
|
45
|
-
loadInitialStartFormViewModel: () => instance.loadInitialViewModelForStartForm(),
|
|
46
|
-
updateViewStartFormModel: () => instance.updateViewModelForStartForm(),
|
|
47
|
-
...formValue,
|
|
48
|
-
};
|
|
49
|
-
this.form$.next(form);
|
|
50
|
-
}
|
|
51
|
-
set formName(formName) {
|
|
52
|
-
this.formName$.next(formName);
|
|
53
|
-
}
|
|
54
|
-
set taskInstanceId(taskInstanceId) {
|
|
55
|
-
this.taskInstanceId$.next(taskInstanceId);
|
|
56
|
-
}
|
|
57
|
-
set isStartForm(isStartFormValue) {
|
|
58
|
-
this.isStartForm$.next(isStartFormValue);
|
|
59
|
-
}
|
|
60
|
-
set documentId(documentId) {
|
|
61
|
-
this.documentId$.next(documentId);
|
|
62
|
-
}
|
|
63
|
-
set processDefinitionKey(processDefinitionKeyValue) {
|
|
64
|
-
this.processDefinitionKey$.next(processDefinitionKeyValue);
|
|
65
|
-
}
|
|
66
|
-
set documentDefinitionName(documentDefinitionNameValue) {
|
|
67
|
-
this.documentDefinitionName$.next(documentDefinitionNameValue);
|
|
68
|
-
}
|
|
69
|
-
constructor(viewModelService, translateService, stateService) {
|
|
70
|
-
this.viewModelService = viewModelService;
|
|
71
|
-
this.translateService = translateService;
|
|
72
|
-
this.stateService = stateService;
|
|
73
|
-
this.formSubmit = new EventEmitter();
|
|
74
|
-
this.refreshForm = new EventEmitter();
|
|
75
|
-
this._preventNextPage = false;
|
|
76
|
-
this._preventPreviousPage = false;
|
|
77
|
-
this._isWizard = false;
|
|
78
|
-
this.pendingUpdateSubscription = null;
|
|
79
|
-
this.submission$ = new BehaviorSubject({});
|
|
80
|
-
this.form$ = new BehaviorSubject(undefined);
|
|
81
|
-
this.formName$ = new BehaviorSubject(undefined);
|
|
82
|
-
this.formErrors$ = new BehaviorSubject([]);
|
|
83
|
-
this.options$ = new BehaviorSubject(undefined);
|
|
84
|
-
this.taskInstanceId$ = new BehaviorSubject(undefined);
|
|
85
|
-
this.tokenSetInLocalStorage$ = new BehaviorSubject(false);
|
|
86
|
-
this.data$ = new BehaviorSubject(null);
|
|
87
|
-
this.changeEvents$ = new Subject();
|
|
88
|
-
this.blur$ = new Subject();
|
|
89
|
-
this.focus$ = new BehaviorSubject(null);
|
|
90
|
-
this.loading$ = new BehaviorSubject(true);
|
|
91
|
-
this.isStartForm$ = new BehaviorSubject(false);
|
|
92
|
-
this.documentId$ = new BehaviorSubject(null);
|
|
93
|
-
this.processDefinitionKey$ = new BehaviorSubject(undefined);
|
|
94
|
-
this.documentDefinitionName$ = new BehaviorSubject(undefined);
|
|
95
|
-
this.updateForm = new Subject();
|
|
96
|
-
this.currentLanguage$ = this.translateService.stream('key').pipe(map(() => this.translateService.currentLang), distinctUntilChanged());
|
|
97
|
-
this._overrideOptions$ = new BehaviorSubject({
|
|
98
|
-
hooks: {
|
|
99
|
-
beforeSubmit: this.beforeSubmitHook(this),
|
|
100
|
-
},
|
|
101
|
-
});
|
|
102
|
-
this.formioOptions$ = combineLatest([
|
|
103
|
-
this.options$,
|
|
104
|
-
this._overrideOptions$,
|
|
105
|
-
]).pipe(map(([options, overrideOptions]) => {
|
|
106
|
-
return deepmerge(options, overrideOptions);
|
|
107
|
-
}));
|
|
108
|
-
this.renderOptions$ = combineLatest([this.currentLanguage$]).pipe(map(([language]) => {
|
|
109
|
-
const formioTranslations = this.translateService.instant('formioTranslations');
|
|
110
|
-
return {
|
|
111
|
-
language,
|
|
112
|
-
...(typeof formioTranslations === 'object'
|
|
113
|
-
? {
|
|
114
|
-
language,
|
|
115
|
-
i18n: {
|
|
116
|
-
[language]: this.stateService.flattenTranslationsObject(formioTranslations),
|
|
117
|
-
},
|
|
118
|
-
}
|
|
119
|
-
: {}),
|
|
120
|
-
};
|
|
121
|
-
}));
|
|
122
|
-
}
|
|
123
|
-
ngOnInit() {
|
|
124
|
-
if (this.isStartForm$.value) {
|
|
125
|
-
this.loadInitialViewModelForStartForm();
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
this.loadInitialViewModel();
|
|
129
|
-
}
|
|
130
|
-
this.focusSubscription = this.focus$
|
|
131
|
-
.pipe(filter(e => {
|
|
132
|
-
// We only want to handle blur events after entering an input
|
|
133
|
-
return !!e && e.target instanceof HTMLInputElement;
|
|
134
|
-
}))
|
|
135
|
-
.subscribe(() => {
|
|
136
|
-
this.pendingUpdateSubscription?.unsubscribe();
|
|
137
|
-
this.blurSubscription?.unsubscribe();
|
|
138
|
-
this.blurSubscription = this.blur$
|
|
139
|
-
.pipe(filter(e => {
|
|
140
|
-
// Filter out events where relatedTarget is not null.
|
|
141
|
-
// The relatedTarget will be null when no new input is focused.
|
|
142
|
-
return !e.relatedTarget;
|
|
143
|
-
}))
|
|
144
|
-
.subscribe(() => {
|
|
145
|
-
this.blurSubscription?.unsubscribe();
|
|
146
|
-
this.setWaitCursor(true);
|
|
147
|
-
this.updateForm.next(true);
|
|
148
|
-
});
|
|
149
|
-
});
|
|
150
|
-
this.updateSubscription = this.updateForm.subscribe(() => {
|
|
151
|
-
if (this.isStartForm$.value) {
|
|
152
|
-
this.updateViewModelForStartForm();
|
|
153
|
-
}
|
|
154
|
-
else {
|
|
155
|
-
this.updateViewModel();
|
|
156
|
-
}
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
ngOnDestroy() {
|
|
160
|
-
this.blurSubscription?.unsubscribe();
|
|
161
|
-
this.focusSubscription?.unsubscribe();
|
|
162
|
-
this.updateSubscription?.unsubscribe();
|
|
163
|
-
this.pendingUpdateSubscription?.unsubscribe();
|
|
164
|
-
this.setWaitCursor(false);
|
|
165
|
-
}
|
|
166
|
-
beforeSubmitHook(instance) {
|
|
167
|
-
return (submission, callback) => instance.beforeSubmit(submission, callback);
|
|
168
|
-
}
|
|
169
|
-
beforeSubmit(submission, callback) {
|
|
170
|
-
this.changeEvents$.pipe(take(1)).subscribe({
|
|
171
|
-
next: () => {
|
|
172
|
-
this.pendingUpdateSubscription?.unsubscribe();
|
|
173
|
-
this.setWaitCursor(false);
|
|
174
|
-
combineLatest([
|
|
175
|
-
this.formName$,
|
|
176
|
-
this.taskInstanceId$,
|
|
177
|
-
this.processDefinitionKey$,
|
|
178
|
-
this.documentDefinitionName$,
|
|
179
|
-
this.isStartForm$,
|
|
180
|
-
this.documentId$,
|
|
181
|
-
])
|
|
182
|
-
.pipe(take(1), switchMap(([formName, taskInstanceId, processDefinitionKey, documentDefinitionName, isStartForm, documentId,]) => isStartForm
|
|
183
|
-
? this.viewModelService.submitViewModelForStartForm(formName, processDefinitionKey, documentId, documentDefinitionName, submission.data)
|
|
184
|
-
: this.viewModelService.submitViewModel(formName, taskInstanceId, submission.data)))
|
|
185
|
-
.subscribe({
|
|
186
|
-
next: _ => {
|
|
187
|
-
callback(null, submission);
|
|
188
|
-
},
|
|
189
|
-
error: err => {
|
|
190
|
-
this.handleSubmissionError(err, callback);
|
|
191
|
-
},
|
|
192
|
-
});
|
|
193
|
-
},
|
|
194
|
-
});
|
|
195
|
-
}
|
|
196
|
-
handleSubmissionError(error, callback) {
|
|
197
|
-
if (error instanceof HttpErrorResponse) {
|
|
198
|
-
merge(this.changeEvents$, interval(200))
|
|
199
|
-
.pipe(take(1))
|
|
200
|
-
.subscribe({
|
|
201
|
-
next: () => {
|
|
202
|
-
this.handleFormError(error);
|
|
203
|
-
},
|
|
204
|
-
});
|
|
205
|
-
}
|
|
206
|
-
callback({ message: 'error', component: null, silent: false }, null);
|
|
207
|
-
}
|
|
208
|
-
handleFormError(error) {
|
|
209
|
-
const formio = this.formio.formio;
|
|
210
|
-
const formErrors = [];
|
|
211
|
-
this.formErrors$.next([]);
|
|
212
|
-
const componentErrors = error?.error?.componentErrors;
|
|
213
|
-
const genericMessage = error?.error?.error;
|
|
214
|
-
const componentKey = error?.error?.component;
|
|
215
|
-
// Handle field-level (component) errors
|
|
216
|
-
if (Array.isArray(componentErrors)) {
|
|
217
|
-
for (const { component, message } of componentErrors) {
|
|
218
|
-
const field = formio.getComponent(component);
|
|
219
|
-
if (field) {
|
|
220
|
-
field.setCustomValidity(message, true); // Mark dirty
|
|
221
|
-
}
|
|
222
|
-
else {
|
|
223
|
-
formErrors.push(message);
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
this.formErrors$.next(formErrors);
|
|
227
|
-
return;
|
|
228
|
-
}
|
|
229
|
-
// Handle single (generic or component-specific) error
|
|
230
|
-
if (genericMessage) {
|
|
231
|
-
const field = formio.getComponent(componentKey);
|
|
232
|
-
if (field) {
|
|
233
|
-
field.setCustomValidity(genericMessage, true);
|
|
234
|
-
}
|
|
235
|
-
else {
|
|
236
|
-
this.formErrors$.next([genericMessage]);
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
onSubmit(submission) {
|
|
241
|
-
this.formSubmit.next(submission);
|
|
242
|
-
}
|
|
243
|
-
onFocus($event) {
|
|
244
|
-
this.focus$.next($event);
|
|
245
|
-
}
|
|
246
|
-
onBlur(blurEvent) {
|
|
247
|
-
this.blur$.next(blurEvent);
|
|
248
|
-
}
|
|
249
|
-
onChange(object) {
|
|
250
|
-
this.changeEvents$.next(object);
|
|
251
|
-
if (object.data) {
|
|
252
|
-
this.data$.next(object.data);
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
onNextPage() {
|
|
256
|
-
this._preventNextPage = true;
|
|
257
|
-
this.formio.formio.setPage(this.formio.formio.page - 1);
|
|
258
|
-
this.updateForm.next(true);
|
|
259
|
-
}
|
|
260
|
-
onPreviousPage() {
|
|
261
|
-
this._preventPreviousPage = true;
|
|
262
|
-
this.formio.formio.setPage(this.formio.formio.page + 1);
|
|
263
|
-
this.updateForm.next(true);
|
|
264
|
-
}
|
|
265
|
-
handlePageChange() {
|
|
266
|
-
if (this._preventNextPage) {
|
|
267
|
-
this._preventNextPage = false;
|
|
268
|
-
this.formio.formio.setPage(this.formio.formio.page + 1);
|
|
269
|
-
}
|
|
270
|
-
else if (this._preventPreviousPage) {
|
|
271
|
-
this._preventPreviousPage = false;
|
|
272
|
-
this.formio.formio.setPage(this.formio.formio.page - 1);
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
loadInitialViewModel() {
|
|
276
|
-
combineLatest([this.formName$, this.taskInstanceId$])
|
|
277
|
-
.pipe(take(1), switchMap(([formName, taskInstanceId]) => this.viewModelService.getViewModel(formName, taskInstanceId).pipe(tap(viewModel => {
|
|
278
|
-
this.changeEvents$.pipe(take(1)).subscribe(() => {
|
|
279
|
-
this.loading$.next(false);
|
|
280
|
-
});
|
|
281
|
-
this.submission$.next({ data: viewModel });
|
|
282
|
-
this._isWizard = this.formio.form.display === 'wizard';
|
|
283
|
-
}))))
|
|
284
|
-
.subscribe();
|
|
285
|
-
}
|
|
286
|
-
loadInitialViewModelForStartForm() {
|
|
287
|
-
combineLatest([this.formName$, this.processDefinitionKey$, this.documentId$])
|
|
288
|
-
.pipe(take(1), switchMap(([formName, processDefinitionKey, documentId]) => this.viewModelService
|
|
289
|
-
.getViewModelForStartForm(formName, processDefinitionKey, documentId)
|
|
290
|
-
.pipe(tap(viewModel => {
|
|
291
|
-
this.changeEvents$.pipe(take(1)).subscribe(() => {
|
|
292
|
-
this.loading$.next(false);
|
|
293
|
-
});
|
|
294
|
-
this.submission$.next({ data: viewModel });
|
|
295
|
-
this._isWizard = this.formio.form.display === 'wizard';
|
|
296
|
-
}))))
|
|
297
|
-
.subscribe();
|
|
298
|
-
}
|
|
299
|
-
updateViewModel() {
|
|
300
|
-
this.pendingUpdateSubscription?.unsubscribe();
|
|
301
|
-
this.pendingUpdateSubscription = combineLatest([
|
|
302
|
-
this.formName$,
|
|
303
|
-
this.taskInstanceId$,
|
|
304
|
-
this.data$,
|
|
305
|
-
])
|
|
306
|
-
.pipe(take(1), switchMap(([formName, taskInstanceId, data]) => this.viewModelService
|
|
307
|
-
.updateViewModel(formName, taskInstanceId, data, this.formio.formio.page, this._isWizard)
|
|
308
|
-
.pipe(tap({
|
|
309
|
-
next: viewModel => this.handleViewModelUpdate(viewModel),
|
|
310
|
-
error: error => this.handleViewModelUpdateError(error),
|
|
311
|
-
}))))
|
|
312
|
-
.subscribe();
|
|
313
|
-
}
|
|
314
|
-
updateViewModelForStartForm() {
|
|
315
|
-
this.pendingUpdateSubscription?.unsubscribe();
|
|
316
|
-
this.pendingUpdateSubscription = combineLatest([
|
|
317
|
-
this.formName$,
|
|
318
|
-
this.processDefinitionKey$,
|
|
319
|
-
this.data$,
|
|
320
|
-
this.documentId$,
|
|
321
|
-
])
|
|
322
|
-
.pipe(take(1), switchMap(([formName, processDefinitionKey, data, documentId]) => this.viewModelService
|
|
323
|
-
.updateViewModelForStartForm(formName, processDefinitionKey, documentId, data, this.formio.formio.page, this._isWizard)
|
|
324
|
-
.pipe(tap({
|
|
325
|
-
next: viewModel => this.handleViewModelUpdate(viewModel),
|
|
326
|
-
error: error => this.handleViewModelUpdateError(error),
|
|
327
|
-
}))))
|
|
328
|
-
.subscribe();
|
|
329
|
-
}
|
|
330
|
-
handleViewModelUpdate(viewModel) {
|
|
331
|
-
const submission = this.submission$.value;
|
|
332
|
-
submission.data = viewModel;
|
|
333
|
-
this.submission$.next(submission);
|
|
334
|
-
this.handlePageChange();
|
|
335
|
-
this.refreshForm.emit({ submission });
|
|
336
|
-
this.pendingUpdateSubscription?.unsubscribe();
|
|
337
|
-
this.pendingUpdateSubscription = null;
|
|
338
|
-
this.formErrors$.next([]);
|
|
339
|
-
this.setWaitCursor(false);
|
|
340
|
-
}
|
|
341
|
-
handleViewModelUpdateError(error) {
|
|
342
|
-
this.pendingUpdateSubscription?.unsubscribe();
|
|
343
|
-
this.pendingUpdateSubscription = null;
|
|
344
|
-
this.handleFormError(error);
|
|
345
|
-
this.setWaitCursor(false);
|
|
346
|
-
}
|
|
347
|
-
setWaitCursor(enabled) {
|
|
348
|
-
document.body.style.cursor = enabled ? 'wait' : 'auto';
|
|
349
|
-
}
|
|
350
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormViewModelComponent, deps: [{ token: i1.ViewModelService }, { token: i2.TranslateService }, { token: i3.FormIoStateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
351
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FormViewModelComponent, isStandalone: true, selector: "valtimo-form-view-model", inputs: { options: "options", submission: "submission", form: "form", formName: "formName", taskInstanceId: "taskInstanceId", isStartForm: "isStartForm", documentId: "documentId", processDefinitionKey: "processDefinitionKey", documentDefinitionName: "documentDefinitionName" }, outputs: { formSubmit: "formSubmit" }, viewQueries: [{ propertyName: "formio", first: true, predicate: ["formio"], descendants: 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\n<div\n class=\"form-container formio-carbon\"\n cdsLayer=\"1.0\"\n *ngIf=\"{\n submission: submission$ | async,\n form: form$ | async,\n tokenSetInLocalStorage: tokenSetInLocalStorage$ | async,\n formioOptions: formioOptions$ | async,\n loading: loading$ | async,\n errors: formErrors$ | async,\n renderOptions: renderOptions$ | async,\n } as obs\"\n>\n <div *ngIf=\"obs.loading\" class=\"overlay\">\n <div class=\"spinner\">\n <i class=\"fa fa-spinner fa-spin\"></i>\n </div>\n </div>\n\n <div *ngIf=\"obs.errors.length > 0\" class=\"alert alert-danger pt-5 pb-5 mb-2\">\n <ol>\n <li *ngFor=\"let error of obs.errors\" class=\"pl-2\">\n {{ error }}\n </li>\n </ol>\n </div>\n\n <formio\n #formio\n [submission]=\"obs.submission\"\n [form]=\"obs.form\"\n [options]=\"obs.formioOptions\"\n [renderOptions]=\"obs.renderOptions\"\n [refresh]=\"refreshForm\"\n (submit)=\"onSubmit($event)\"\n (change)=\"onChange($event)\"\n (focusin)=\"onFocus($event)\"\n (focusout)=\"onBlur($event)\"\n (nextPage)=\"onNextPage()\"\n (prevPage)=\"onPreviousPage()\"\n ></formio>\n</div>\n", styles: [".form-container{position:relative}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#fffc;z-index:1000;display:flex;justify-content:center;align-items:center;pointer-events:all}.spinner{font-size:3rem;color:#007bff}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormioModule }, { kind: "component", type: i5.FormioComponent, selector: "formio" }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i6.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }] }); }
|
|
352
|
-
}
|
|
353
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormViewModelComponent, decorators: [{
|
|
354
|
-
type: Component,
|
|
355
|
-
args: [{ selector: 'valtimo-form-view-model', standalone: true, imports: [CommonModule, FormioModule, LayerModule], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"form-container formio-carbon\"\n cdsLayer=\"1.0\"\n *ngIf=\"{\n submission: submission$ | async,\n form: form$ | async,\n tokenSetInLocalStorage: tokenSetInLocalStorage$ | async,\n formioOptions: formioOptions$ | async,\n loading: loading$ | async,\n errors: formErrors$ | async,\n renderOptions: renderOptions$ | async,\n } as obs\"\n>\n <div *ngIf=\"obs.loading\" class=\"overlay\">\n <div class=\"spinner\">\n <i class=\"fa fa-spinner fa-spin\"></i>\n </div>\n </div>\n\n <div *ngIf=\"obs.errors.length > 0\" class=\"alert alert-danger pt-5 pb-5 mb-2\">\n <ol>\n <li *ngFor=\"let error of obs.errors\" class=\"pl-2\">\n {{ error }}\n </li>\n </ol>\n </div>\n\n <formio\n #formio\n [submission]=\"obs.submission\"\n [form]=\"obs.form\"\n [options]=\"obs.formioOptions\"\n [renderOptions]=\"obs.renderOptions\"\n [refresh]=\"refreshForm\"\n (submit)=\"onSubmit($event)\"\n (change)=\"onChange($event)\"\n (focusin)=\"onFocus($event)\"\n (focusout)=\"onBlur($event)\"\n (nextPage)=\"onNextPage()\"\n (prevPage)=\"onPreviousPage()\"\n ></formio>\n</div>\n", styles: [".form-container{position:relative}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#fffc;z-index:1000;display:flex;justify-content:center;align-items:center;pointer-events:all}.spinner{font-size:3rem;color:#007bff}\n"] }]
|
|
356
|
-
}], ctorParameters: () => [{ type: i1.ViewModelService }, { type: i2.TranslateService }, { type: i3.FormIoStateService }], propDecorators: { formio: [{
|
|
357
|
-
type: ViewChild,
|
|
358
|
-
args: ['formio']
|
|
359
|
-
}], options: [{
|
|
360
|
-
type: Input
|
|
361
|
-
}], submission: [{
|
|
362
|
-
type: Input
|
|
363
|
-
}], form: [{
|
|
364
|
-
type: Input
|
|
365
|
-
}], formName: [{
|
|
366
|
-
type: Input
|
|
367
|
-
}], taskInstanceId: [{
|
|
368
|
-
type: Input
|
|
369
|
-
}], isStartForm: [{
|
|
370
|
-
type: Input
|
|
371
|
-
}], documentId: [{
|
|
372
|
-
type: Input
|
|
373
|
-
}], processDefinitionKey: [{
|
|
374
|
-
type: Input
|
|
375
|
-
}], documentDefinitionName: [{
|
|
376
|
-
type: Input
|
|
377
|
-
}], formSubmit: [{
|
|
378
|
-
type: Output
|
|
379
|
-
}] } });
|
|
380
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LW1vZGVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZm9ybS12aWV3LW1vZGVsL3NyYy9saWIvY29tcG9uZW50cy9mb3JtLXZpZXctbW9kZWwvZm9ybS12aWV3LW1vZGVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZm9ybS12aWV3LW1vZGVsL3NyYy9saWIvY29tcG9uZW50cy9mb3JtLXZpZXctbW9kZWwvZm9ybS12aWV3LW1vZGVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFFTCxPQUFPLEVBRVAsU0FBUyxFQUNULElBQUksRUFDSixHQUFHLEdBQ0osTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBRUwsWUFBWSxHQUliLE1BQU0saUJBQWlCLENBQUM7QUFFekIsT0FBTyxFQUFDLG9CQUFvQixFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFHdkMsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7QUFFdEQsTUFBTSxDQUFDLGFBQWEsR0FB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QUFzQjtrQkFQbEMsU0FBUzsrQkFDRSx5QkFBeUIsY0FHdkIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxXQUFXLENBQUM7cUpBRzdCLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFFTixPQUFPO3NCQUFuQixLQUFLO2dCQUlPLFVBQVU7c0JBQXRCLEtBQUs7Z0JBSU8sSUFBSTtzQkFBaEIsS0FBSztnQkFZTyxRQUFRO3NCQUFwQixLQUFLO2dCQUlPLGNBQWM7c0JBQTFCLEtBQUs7Z0JBSU8sV0FBVztzQkFBdkIsS0FBSztnQkFJTyxVQUFVO3NCQUF0QixLQUFLO2dCQUlPLG9CQUFvQjtzQkFBaEMsS0FBSztnQkFJTyxzQkFBc0I7c0JBQWxDLEtBQUs7Z0JBSUksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgZmlsdGVyLFxuICBpbnRlcnZhbCxcbiAgbWVyZ2UsXG4gIE9ic2VydmFibGUsXG4gIFN1YmplY3QsXG4gIFN1YnNjcmlwdGlvbixcbiAgc3dpdGNoTWFwLFxuICB0YWtlLFxuICB0YXAsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgRm9ybWlvQ29tcG9uZW50LFxuICBGb3JtaW9Nb2R1bGUsXG4gIEZvcm1pb09wdGlvbnMsXG4gIEZvcm1pb1N1Ym1pc3Npb24sXG4gIEZvcm1pb1N1Ym1pc3Npb25DYWxsYmFjayxcbn0gZnJvbSAnQGZvcm1pby9hbmd1bGFyJztcbmltcG9ydCB7Vmlld01vZGVsU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge2RlZXBtZXJnZX0gZnJvbSAnZGVlcG1lcmdlLXRzJztcbmltcG9ydCB7Rm9ybUlvU3RhdGVTZXJ2aWNlLCBWYWx0aW1vRm9ybWlvT3B0aW9uc30gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtIdHRwRXJyb3JSZXNwb25zZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0xheWVyTW9kdWxlfSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyJztcblxubW9tZW50LmRlZmF1bHRGb3JtYXQgPSAnREQgTU1NIFlZWVkgSEg6bW0nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLWZvcm0tdmlldy1tb2RlbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLXZpZXctbW9kZWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLXZpZXctbW9kZWwuY29tcG9uZW50LmNzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3JtaW9Nb2R1bGUsIExheWVyTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybVZpZXdNb2RlbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZCgnZm9ybWlvJykgZm9ybWlvOiBGb3JtaW9Db21wb25lbnQ7XG5cbiAgQElucHV0KCkgc2V0IG9wdGlvbnMob3B0aW9uc1ZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLm9wdGlvbnMkLm5leHQob3B0aW9uc1ZhbHVlKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBzdWJtaXNzaW9uKHN1Ym1pc3Npb25WYWx1ZTogRm9ybWlvU3VibWlzc2lvbikge1xuICAgIHRoaXMuc3VibWlzc2lvbiQubmV4dChzdWJtaXNzaW9uVmFsdWUpO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGZvcm0oZm9ybVZhbHVlOiBvYmplY3QpIHtcbiAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXM7XG4gICAgY29uc3QgZm9ybSA9IHtcbiAgICAgIGxvYWRJbml0aWFsVmlld01vZGVsOiAoKSA9PiBpbnN0YW5jZS5sb2FkSW5pdGlhbFZpZXdNb2RlbCgpLFxuICAgICAgdXBkYXRlVmlld01vZGVsOiAoKSA9PiBpbnN0YW5jZS51cGRhdGVWaWV3TW9kZWwoKSxcbiAgICAgIGxvYWRJbml0aWFsU3RhcnRGb3JtVmlld01vZGVsOiAoKSA9PiBpbnN0YW5jZS5sb2FkSW5pdGlhbFZpZXdNb2RlbEZvclN0YXJ0Rm9ybSgpLFxuICAgICAgdXBkYXRlVmlld1N0YXJ0Rm9ybU1vZGVsOiAoKSA9PiBpbnN0YW5jZS51cGRhdGVWaWV3TW9kZWxGb3JTdGFydEZvcm0oKSxcbiAgICAgIC4uLmZvcm1WYWx1ZSxcbiAgICB9O1xuICAgIHRoaXMuZm9ybSQubmV4dChmb3JtKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBmb3JtTmFtZShmb3JtTmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5mb3JtTmFtZSQubmV4dChmb3JtTmFtZSk7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgdGFza0luc3RhbmNlSWQodGFza0luc3RhbmNlSWQ6IHN0cmluZykge1xuICAgIHRoaXMudGFza0luc3RhbmNlSWQkLm5leHQodGFza0luc3RhbmNlSWQpO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGlzU3RhcnRGb3JtKGlzU3RhcnRGb3JtVmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlzU3RhcnRGb3JtJC5uZXh0KGlzU3RhcnRGb3JtVmFsdWUpO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGRvY3VtZW50SWQoZG9jdW1lbnRJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5kb2N1bWVudElkJC5uZXh0KGRvY3VtZW50SWQpO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHByb2Nlc3NEZWZpbml0aW9uS2V5KHByb2Nlc3NEZWZpbml0aW9uS2V5VmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMucHJvY2Vzc0RlZmluaXRpb25LZXkkLm5leHQocHJvY2Vzc0RlZmluaXRpb25LZXlWYWx1ZSk7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgZG9jdW1lbnREZWZpbml0aW9uTmFtZShkb2N1bWVudERlZmluaXRpb25OYW1lVmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuZG9jdW1lbnREZWZpbml0aW9uTmFtZSQubmV4dChkb2N1bWVudERlZmluaXRpb25OYW1lVmFsdWUpO1xuICB9XG5cbiAgQE91dHB1dCgpIGZvcm1TdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBwdWJsaWMgcmVmcmVzaEZvcm0gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHJpdmF0ZSBfcHJldmVudE5leHRQYWdlID0gZmFsc2U7XG4gIHByaXZhdGUgX3ByZXZlbnRQcmV2aW91c1BhZ2UgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfaXNXaXphcmQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgcGVuZGluZ1VwZGF0ZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIHJlYWRvbmx5IHN1Ym1pc3Npb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KHt9KTtcbiAgcHVibGljIHJlYWRvbmx5IGZvcm0kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxvYmplY3Q+KHVuZGVmaW5lZCk7XG4gIHB1YmxpYyByZWFkb25seSBmb3JtTmFtZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4odW5kZWZpbmVkKTtcbiAgcHVibGljIHJlYWRvbmx5IGZvcm1FcnJvcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmdbXT4oW10pO1xuICBwdWJsaWMgcmVhZG9ubHkgb3B0aW9ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFZhbHRpbW9Gb3JtaW9PcHRpb25zPih1bmRlZmluZWQpO1xuICBwdWJsaWMgcmVhZG9ubHkgdGFza0luc3RhbmNlSWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KHVuZGVmaW5lZCk7XG4gIHB1YmxpYyByZWFkb25seSB0b2tlblNldEluTG9jYWxTdG9yYWdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgZGF0YSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSBjaGFuZ2VFdmVudHMkID0gbmV3IFN1YmplY3Q8YW55PigpO1xuICBwdWJsaWMgcmVhZG9ubHkgYmx1ciQgPSBuZXcgU3ViamVjdDxGb2N1c0V2ZW50PigpO1xuICBwdWJsaWMgcmVhZG9ubHkgZm9jdXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGb2N1c0V2ZW50PihudWxsKTtcbiAgcHVibGljIHJlYWRvbmx5IGxvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgcHVibGljIHJlYWRvbmx5IGlzU3RhcnRGb3JtJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgZG9jdW1lbnRJZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSBwcm9jZXNzRGVmaW5pdGlvbktleSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4odW5kZWZpbmVkKTtcbiAgcHVibGljIHJlYWRvbmx5IGRvY3VtZW50RGVmaW5pdGlvbk5hbWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KHVuZGVmaW5lZCk7XG4gIHB1YmxpYyByZWFkb25seSB1cGRhdGVGb3JtID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgY3VycmVudExhbmd1YWdlJCA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5zdHJlYW0oJ2tleScpLnBpcGUoXG4gICAgbWFwKCgpID0+IHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZyksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICApO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX292ZXJyaWRlT3B0aW9ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZvcm1pb09wdGlvbnM+KHtcbiAgICBob29rczoge1xuICAgICAgYmVmb3JlU3VibWl0OiB0aGlzLmJlZm9yZVN1Ym1pdEhvb2sodGhpcyksXG4gICAgfSxcbiAgfSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZvcm1pb09wdGlvbnMkOiBPYnNlcnZhYmxlPFZhbHRpbW9Gb3JtaW9PcHRpb25zIHwgRm9ybWlvT3B0aW9ucz4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLm9wdGlvbnMkLFxuICAgIHRoaXMuX292ZXJyaWRlT3B0aW9ucyQsXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbb3B0aW9ucywgb3ZlcnJpZGVPcHRpb25zXSkgPT4ge1xuICAgICAgcmV0dXJuIGRlZXBtZXJnZShvcHRpb25zLCBvdmVycmlkZU9wdGlvbnMpO1xuICAgIH0pXG4gICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHJlbmRlck9wdGlvbnMkOiBPYnNlcnZhYmxlPGFueT4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmN1cnJlbnRMYW5ndWFnZSRdKS5waXBlKFxuICAgIG1hcCgoW2xhbmd1YWdlXSkgPT4ge1xuICAgICAgY29uc3QgZm9ybWlvVHJhbnNsYXRpb25zID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2Zvcm1pb1RyYW5zbGF0aW9ucycpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBsYW5ndWFnZSxcbiAgICAgICAgLi4uKHR5cGVvZiBmb3JtaW9UcmFuc2xhdGlvbnMgPT09ICdvYmplY3QnXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIGxhbmd1YWdlLFxuICAgICAgICAgICAgICBpMThuOiB7XG4gICAgICAgICAgICAgICAgW2xhbmd1YWdlXTogdGhpcy5zdGF0ZVNlcnZpY2UuZmxhdHRlblRyYW5zbGF0aW9uc09iamVjdChmb3JtaW9UcmFuc2xhdGlvbnMpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge30pLFxuICAgICAgfTtcbiAgICB9KVxuICApO1xuXG4gIHByaXZhdGUgZm9jdXNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBibHVyU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgdXBkYXRlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB2aWV3TW9kZWxTZXJ2aWNlOiBWaWV3TW9kZWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXRlU2VydmljZTogRm9ybUlvU3RhdGVTZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNTdGFydEZvcm0kLnZhbHVlKSB7XG4gICAgICB0aGlzLmxvYWRJbml0aWFsVmlld01vZGVsRm9yU3RhcnRGb3JtKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9hZEluaXRpYWxWaWV3TW9kZWwoKTtcbiAgICB9XG5cbiAgICB0aGlzLmZvY3VzU3Vic2NyaXB0aW9uID0gdGhpcy5mb2N1cyRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoZSA9PiB7XG4gICAgICAgICAgLy8gV2Ugb25seSB3YW50IHRvIGhhbmRsZSBibHVyIGV2ZW50cyBhZnRlciBlbnRlcmluZyBhbiBpbnB1dFxuICAgICAgICAgIHJldHVybiAhIWUgJiYgZS50YXJnZXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50O1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMucGVuZGluZ1VwZGF0ZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5ibHVyU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmJsdXJTdWJzY3JpcHRpb24gPSB0aGlzLmJsdXIkXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoZSA9PiB7XG4gICAgICAgICAgICAgIC8vIEZpbHRlciBvdXQgZXZlbnRzIHdoZXJlIHJlbGF0ZWRUYXJnZXQgaXMgbm90IG51bGwuXG4gICAgICAgICAgICAgIC8vIFRoZSByZWxhdGVkVGFyZ2V0IHdpbGwgYmUgbnVsbCB3aGVuIG5vIG5ldyBpbnB1dCBpcyBmb2N1c2VkLlxuICAgICAgICAgICAgICByZXR1cm4gIWUucmVsYXRlZFRhcmdldDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5ibHVyU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy5zZXRXYWl0Q3Vyc29yKHRydWUpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVGb3JtLm5leHQodHJ1ZSk7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIHRoaXMudXBkYXRlU3Vic2NyaXB0aW9uID0gdGhpcy51cGRhdGVGb3JtLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5pc1N0YXJ0Rm9ybSQudmFsdWUpIHtcbiAgICAgICAgdGhpcy51cGRhdGVWaWV3TW9kZWxGb3JTdGFydEZvcm0oKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmlld01vZGVsKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5ibHVyU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuZm9jdXNTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy51cGRhdGVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5wZW5kaW5nVXBkYXRlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc2V0V2FpdEN1cnNvcihmYWxzZSk7XG4gIH1cblxuICBwdWJsaWMgYmVmb3JlU3VibWl0SG9vayhpbnN0YW5jZTogRm9ybVZpZXdNb2RlbENvbXBvbmVudCk6IChzdWJtaXNzaW9uLCBjYWxsYmFjaykgPT4gdm9pZCB7XG4gICAgcmV0dXJuIChzdWJtaXNzaW9uLCBjYWxsYmFjaykgPT4gaW5zdGFuY2UuYmVmb3JlU3VibWl0KHN1Ym1pc3Npb24sIGNhbGxiYWNrKTtcbiAgfVxuXG4gIHB1YmxpYyBiZWZvcmVTdWJtaXQoc3VibWlzc2lvbjogYW55LCBjYWxsYmFjazogRm9ybWlvU3VibWlzc2lvbkNhbGxiYWNrKTogdm9pZCB7XG4gICAgdGhpcy5jaGFuZ2VFdmVudHMkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgdGhpcy5wZW5kaW5nVXBkYXRlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLnNldFdhaXRDdXJzb3IoZmFsc2UpO1xuXG4gICAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgIHRoaXMuZm9ybU5hbWUkLFxuICAgICAgICAgIHRoaXMudGFza0luc3RhbmNlSWQkLFxuICAgICAgICAgIHRoaXMucHJvY2Vzc0RlZmluaXRpb25LZXkkLFxuICAgICAgICAgIHRoaXMuZG9jdW1lbnREZWZpbml0aW9uTmFtZSQsXG4gICAgICAgICAgdGhpcy5pc1N0YXJ0Rm9ybSQsXG4gICAgICAgICAgdGhpcy5kb2N1bWVudElkJCxcbiAgICAgICAgXSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICBzd2l0Y2hNYXAoXG4gICAgICAgICAgICAgIChbXG4gICAgICAgICAgICAgICAgZm9ybU5hbWUsXG4gICAgICAgICAgICAgICAgdGFza0luc3RhbmNlSWQsXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0RlZmluaXRpb25LZXksXG4gICAgICAgICAgICAgICAgZG9jdW1lbnREZWZpbml0aW9uTmFtZSxcbiAgICAgICAgICAgICAgICBpc1N0YXJ0Rm9ybSxcbiAgICAgICAgICAgICAgICBkb2N1bWVudElkLFxuICAgICAgICAgICAgICBdKSA9PlxuICAgICAgICAgICAgICAgIGlzU3RhcnRGb3JtXG4gICAgICAgICAgICAgICAgICA/IHRoaXMudmlld01vZGVsU2VydmljZS5zdWJtaXRWaWV3TW9kZWxGb3JTdGFydEZvcm0oXG4gICAgICAgICAgICAgICAgICAgICAgZm9ybU5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0RlZmluaXRpb25LZXksXG4gICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRJZCxcbiAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudERlZmluaXRpb25OYW1lLFxuICAgICAgICAgICAgICAgICAgICAgIHN1Ym1pc3Npb24uZGF0YVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICA6IHRoaXMudmlld01vZGVsU2VydmljZS5zdWJtaXRWaWV3TW9kZWwoZm9ybU5hbWUsIHRhc2tJbnN0YW5jZUlkLCBzdWJtaXNzaW9uLmRhdGEpXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogXyA9PiB7XG4gICAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsIHN1Ym1pc3Npb24pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmhhbmRsZVN1Ym1pc3Npb25FcnJvcihlcnIsIGNhbGxiYWNrKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTdWJtaXNzaW9uRXJyb3IoZXJyb3I6IGFueSwgY2FsbGJhY2s6IEZvcm1pb1N1Ym1pc3Npb25DYWxsYmFjayk6IHZvaWQge1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgICBtZXJnZSh0aGlzLmNoYW5nZUV2ZW50cyQsIGludGVydmFsKDIwMCkpXG4gICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlRm9ybUVycm9yKGVycm9yKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjYWxsYmFjayh7bWVzc2FnZTogJ2Vycm9yJywgY29tcG9uZW50OiBudWxsLCBzaWxlbnQ6IGZhbHNlfSwgbnVsbCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUZvcm1FcnJvcihlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtaW8gPSB0aGlzLmZvcm1pby5mb3JtaW87XG4gICAgY29uc3QgZm9ybUVycm9ycyA9IFtdO1xuXG4gICAgdGhpcy5mb3JtRXJyb3JzJC5uZXh0KFtdKTtcblxuICAgIGNvbnN0IGNvbXBvbmVudEVycm9ycyA9IGVycm9yPy5lcnJvcj8uY29tcG9uZW50RXJyb3JzO1xuICAgIGNvbnN0IGdlbmVyaWNNZXNzYWdlID0gZXJyb3I/LmVycm9yPy5lcnJvcjtcbiAgICBjb25zdCBjb21wb25lbnRLZXkgPSBlcnJvcj8uZXJyb3I/LmNvbXBvbmVudDtcblxuICAgIC8vIEhhbmRsZSBmaWVsZC1sZXZlbCAoY29tcG9uZW50KSBlcnJvcnNcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjb21wb25lbnRFcnJvcnMpKSB7XG4gICAgICBmb3IgKGNvbnN0IHtjb21wb25lbnQsIG1lc3NhZ2V9IG9mIGNvbXBvbmVudEVycm9ycykge1xuICAgICAgICBjb25zdCBmaWVsZCA9IGZvcm1pby5nZXRDb21wb25lbnQoY29tcG9uZW50KTtcbiAgICAgICAgaWYgKGZpZWxkKSB7XG4gICAgICAgICAgZmllbGQuc2V0Q3VzdG9tVmFsaWRpdHkobWVzc2FnZSwgdHJ1ZSk7IC8vIE1hcmsgZGlydHlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmb3JtRXJyb3JzLnB1c2gobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuZm9ybUVycm9ycyQubmV4dChmb3JtRXJyb3JzKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgc2luZ2xlIChnZW5lcmljIG9yIGNvbXBvbmVudC1zcGVjaWZpYykgZXJyb3JcbiAgICBpZiAoZ2VuZXJpY01lc3NhZ2UpIHtcbiAgICAgIGNvbnN0IGZpZWxkID0gZm9ybWlvLmdldENvbXBvbmVudChjb21wb25lbnRLZXkpO1xuICAgICAgaWYgKGZpZWxkKSB7XG4gICAgICAgIGZpZWxkLnNldEN1c3RvbVZhbGlkaXR5KGdlbmVyaWNNZXNzYWdlLCB0cnVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZm9ybUVycm9ycyQubmV4dChbZ2VuZXJpY01lc3NhZ2VdKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25TdWJtaXQoc3VibWlzc2lvbjogRm9ybWlvU3VibWlzc2lvbik6IHZvaWQge1xuICAgIHRoaXMuZm9ybVN1Ym1pdC5uZXh0KHN1Ym1pc3Npb24pO1xuICB9XG5cbiAgcHVibGljIG9uRm9jdXMoJGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5mb2N1cyQubmV4dCgkZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIG9uQmx1cihibHVyRXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmJsdXIkLm5leHQoYmx1ckV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNoYW5nZShvYmplY3Q6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuY2hhbmdlRXZlbnRzJC5uZXh0KG9iamVjdCk7XG4gICAgaWYgKG9iamVjdC5kYXRhKSB7XG4gICAgICB0aGlzLmRhdGEkLm5leHQob2JqZWN0LmRhdGEpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbk5leHRQYWdlKCk6IHZvaWQge1xuICAgIHRoaXMuX3ByZXZlbnROZXh0UGFnZSA9IHRydWU7XG4gICAgdGhpcy5mb3JtaW8uZm9ybWlvLnNldFBhZ2UodGhpcy5mb3JtaW8uZm9ybWlvLnBhZ2UgLSAxKTtcbiAgICB0aGlzLnVwZGF0ZUZvcm0ubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBvblByZXZpb3VzUGFnZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9wcmV2ZW50UHJldmlvdXNQYWdlID0gdHJ1ZTtcbiAgICB0aGlzLmZvcm1pby5mb3JtaW8uc2V0UGFnZSh0aGlzLmZvcm1pby5mb3JtaW8ucGFnZSArIDEpO1xuICAgIHRoaXMudXBkYXRlRm9ybS5uZXh0KHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVQYWdlQ2hhbmdlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9wcmV2ZW50TmV4dFBhZ2UpIHtcbiAgICAgIHRoaXMuX3ByZXZlbnROZXh0UGFnZSA9IGZhbHNlO1xuICAgICAgdGhpcy5mb3JtaW8uZm9ybWlvLnNldFBhZ2UodGhpcy5mb3JtaW8uZm9ybWlvLnBhZ2UgKyAxKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX3ByZXZlbnRQcmV2aW91c1BhZ2UpIHtcbiAgICAgIHRoaXMuX3ByZXZlbnRQcmV2aW91c1BhZ2UgPSBmYWxzZTtcbiAgICAgIHRoaXMuZm9ybWlvLmZvcm1pby5zZXRQYWdlKHRoaXMuZm9ybWlvLmZvcm1pby5wYWdlIC0gMSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGxvYWRJbml0aWFsVmlld01vZGVsKCk6IHZvaWQge1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuZm9ybU5hbWUkLCB0aGlzLnRhc2tJbnN0YW5jZUlkJF0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgc3dpdGNoTWFwKChbZm9ybU5hbWUsIHRhc2tJbnN0YW5jZUlkXSkgPT5cbiAgICAgICAgICB0aGlzLnZpZXdNb2RlbFNlcnZpY2UuZ2V0Vmlld01vZGVsKGZvcm1OYW1lLCB0YXNrSW5zdGFuY2VJZCkucGlwZShcbiAgICAgICAgICAgIHRhcCh2aWV3TW9kZWwgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmNoYW5nZUV2ZW50cyQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyQubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB0aGlzLnN1Ym1pc3Npb24kLm5leHQoe2RhdGE6IHZpZXdNb2RlbH0pO1xuICAgICAgICAgICAgICB0aGlzLl9pc1dpemFyZCA9IHRoaXMuZm9ybWlvLmZvcm0uZGlzcGxheSA9PT0gJ3dpemFyZCc7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGxvYWRJbml0aWFsVmlld01vZGVsRm9yU3RhcnRGb3JtKCk6IHZvaWQge1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuZm9ybU5hbWUkLCB0aGlzLnByb2Nlc3NEZWZpbml0aW9uS2V5JCwgdGhpcy5kb2N1bWVudElkJF0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgc3dpdGNoTWFwKChbZm9ybU5hbWUsIHByb2Nlc3NEZWZpbml0aW9uS2V5LCBkb2N1bWVudElkXSkgPT5cbiAgICAgICAgICB0aGlzLnZpZXdNb2RlbFNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRWaWV3TW9kZWxGb3JTdGFydEZvcm0oZm9ybU5hbWUsIHByb2Nlc3NEZWZpbml0aW9uS2V5LCBkb2N1bWVudElkKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIHRhcCh2aWV3TW9kZWwgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRXZlbnRzJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmckLm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuc3VibWlzc2lvbiQubmV4dCh7ZGF0YTogdmlld01vZGVsfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5faXNXaXphcmQgPSB0aGlzLmZvcm1pby5mb3JtLmRpc3BsYXkgPT09ICd3aXphcmQnO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlVmlld01vZGVsKCk6IHZvaWQge1xuICAgIHRoaXMucGVuZGluZ1VwZGF0ZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMucGVuZGluZ1VwZGF0ZVN1YnNjcmlwdGlvbiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5mb3JtTmFtZSQsXG4gICAgICB0aGlzLnRhc2tJbnN0YW5jZUlkJCxcbiAgICAgIHRoaXMuZGF0YSQsXG4gICAgXSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICBzd2l0Y2hNYXAoKFtmb3JtTmFtZSwgdGFza0luc3RhbmNlSWQsIGRhdGFdKSA9PlxuICAgICAgICAgIHRoaXMudmlld01vZGVsU2VydmljZVxuICAgICAgICAgICAgLnVwZGF0ZVZpZXdNb2RlbChcbiAgICAgICAgICAgICAgZm9ybU5hbWUsXG4gICAgICAgICAgICAgIHRhc2tJbnN0YW5jZUlkLFxuICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICB0aGlzLmZvcm1pby5mb3JtaW8ucGFnZSxcbiAgICAgICAgICAgICAgdGhpcy5faXNXaXphcmRcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICB0YXAoe1xuICAgICAgICAgICAgICAgIG5leHQ6IHZpZXdNb2RlbCA9PiB0aGlzLmhhbmRsZVZpZXdNb2RlbFVwZGF0ZSh2aWV3TW9kZWwpLFxuICAgICAgICAgICAgICAgIGVycm9yOiBlcnJvciA9PiB0aGlzLmhhbmRsZVZpZXdNb2RlbFVwZGF0ZUVycm9yKGVycm9yKSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVZpZXdNb2RlbEZvclN0YXJ0Rm9ybSgpOiB2b2lkIHtcbiAgICB0aGlzLnBlbmRpbmdVcGRhdGVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLnBlbmRpbmdVcGRhdGVTdWJzY3JpcHRpb24gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuZm9ybU5hbWUkLFxuICAgICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbktleSQsXG4gICAgICB0aGlzLmRhdGEkLFxuICAgICAgdGhpcy5kb2N1bWVudElkJCxcbiAgICBdKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIHN3aXRjaE1hcCgoW2Zvcm1OYW1lLCBwcm9jZXNzRGVmaW5pdGlvbktleSwgZGF0YSwgZG9jdW1lbnRJZF0pID0+XG4gICAgICAgICAgdGhpcy52aWV3TW9kZWxTZXJ2aWNlXG4gICAgICAgICAgICAudXBkYXRlVmlld01vZGVsRm9yU3RhcnRGb3JtKFxuICAgICAgICAgICAgICBmb3JtTmFtZSxcbiAgICAgICAgICAgICAgcHJvY2Vzc0RlZmluaXRpb25LZXksXG4gICAgICAgICAgICAgIGRvY3VtZW50SWQsXG4gICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgIHRoaXMuZm9ybWlvLmZvcm1pby5wYWdlLFxuICAgICAgICAgICAgICB0aGlzLl9pc1dpemFyZFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIHRhcCh7XG4gICAgICAgICAgICAgICAgbmV4dDogdmlld01vZGVsID0+IHRoaXMuaGFuZGxlVmlld01vZGVsVXBkYXRlKHZpZXdNb2RlbCksXG4gICAgICAgICAgICAgICAgZXJyb3I6IGVycm9yID0+IHRoaXMuaGFuZGxlVmlld01vZGVsVXBkYXRlRXJyb3IoZXJyb3IpLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlVmlld01vZGVsVXBkYXRlKHZpZXdNb2RlbDogb2JqZWN0KTogdm9pZCB7XG4gICAgY29uc3Qgc3VibWlzc2lvbiA9IHRoaXMuc3VibWlzc2lvbiQudmFsdWU7XG4gICAgc3VibWlzc2lvbi5kYXRhID0gdmlld01vZGVsO1xuICAgIHRoaXMuc3VibWlzc2lvbiQubmV4dChzdWJtaXNzaW9uKTtcbiAgICB0aGlzLmhhbmRsZVBhZ2VDaGFuZ2UoKTtcbiAgICB0aGlzLnJlZnJlc2hGb3JtLmVtaXQoe3N1Ym1pc3Npb259KTtcbiAgICB0aGlzLnBlbmRpbmdVcGRhdGVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5wZW5kaW5nVXBkYXRlU3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICB0aGlzLmZvcm1FcnJvcnMkLm5leHQoW10pO1xuICAgIHRoaXMuc2V0V2FpdEN1cnNvcihmYWxzZSk7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlVmlld01vZGVsVXBkYXRlRXJyb3IoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKTogdm9pZCB7XG4gICAgdGhpcy5wZW5kaW5nVXBkYXRlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMucGVuZGluZ1VwZGF0ZVN1YnNjcmlwdGlvbiA9IG51bGw7XG4gICAgdGhpcy5oYW5kbGVGb3JtRXJyb3IoZXJyb3IpO1xuICAgIHRoaXMuc2V0V2FpdEN1cnNvcihmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIHNldFdhaXRDdXJzb3IoZW5hYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yID0gZW5hYmxlZCA/ICd3YWl0JyA6ICdhdXRvJztcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48ZGl2XG4gIGNsYXNzPVwiZm9ybS1jb250YWluZXIgZm9ybWlvLWNhcmJvblwiXG4gIGNkc0xheWVyPVwiMS4wXCJcbiAgKm5nSWY9XCJ7XG4gICAgc3VibWlzc2lvbjogc3VibWlzc2lvbiQgfCBhc3luYyxcbiAgICBmb3JtOiBmb3JtJCB8IGFzeW5jLFxuICAgIHRva2VuU2V0SW5Mb2NhbFN0b3JhZ2U6IHRva2VuU2V0SW5Mb2NhbFN0b3JhZ2UkIHwgYXN5bmMsXG4gICAgZm9ybWlvT3B0aW9uczogZm9ybWlvT3B0aW9ucyQgfCBhc3luYyxcbiAgICBsb2FkaW5nOiBsb2FkaW5nJCB8IGFzeW5jLFxuICAgIGVycm9yczogZm9ybUVycm9ycyQgfCBhc3luYyxcbiAgICByZW5kZXJPcHRpb25zOiByZW5kZXJPcHRpb25zJCB8IGFzeW5jLFxuICB9IGFzIG9ic1wiXG4+XG4gIDxkaXYgKm5nSWY9XCJvYnMubG9hZGluZ1wiIGNsYXNzPVwib3ZlcmxheVwiPlxuICAgIDxkaXYgY2xhc3M9XCJzcGlubmVyXCI+XG4gICAgICA8aSBjbGFzcz1cImZhIGZhLXNwaW5uZXIgZmEtc3BpblwiPjwvaT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdJZj1cIm9icy5lcnJvcnMubGVuZ3RoID4gMFwiIGNsYXNzPVwiYWxlcnQgYWxlcnQtZGFuZ2VyIHB0LTUgcGItNSBtYi0yXCI+XG4gICAgPG9sPlxuICAgICAgPGxpICpuZ0Zvcj1cImxldCBlcnJvciBvZiBvYnMuZXJyb3JzXCIgY2xhc3M9XCJwbC0yXCI+XG4gICAgICAgIHt7IGVycm9yIH19XG4gICAgICA8L2xpPlxuICAgIDwvb2w+XG4gIDwvZGl2PlxuXG4gIDxmb3JtaW9cbiAgICAjZm9ybWlvXG4gICAgW3N1Ym1pc3Npb25dPVwib2JzLnN1Ym1pc3Npb25cIlxuICAgIFtmb3JtXT1cIm9icy5mb3JtXCJcbiAgICBbb3B0aW9uc109XCJvYnMuZm9ybWlvT3B0aW9uc1wiXG4gICAgW3JlbmRlck9wdGlvbnNdPVwib2JzLnJlbmRlck9wdGlvbnNcIlxuICAgIFtyZWZyZXNoXT1cInJlZnJlc2hGb3JtXCJcbiAgICAoc3VibWl0KT1cIm9uU3VibWl0KCRldmVudClcIlxuICAgIChjaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgKGZvY3VzaW4pPVwib25Gb2N1cygkZXZlbnQpXCJcbiAgICAoZm9jdXNvdXQpPVwib25CbHVyKCRldmVudClcIlxuICAgIChuZXh0UGFnZSk9XCJvbk5leHRQYWdlKClcIlxuICAgIChwcmV2UGFnZSk9XCJvblByZXZpb3VzUGFnZSgpXCJcbiAgPjwvZm9ybWlvPlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
export * from './form-view-model.component';
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Zvcm0tdmlldy1tb2RlbC9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS12aWV3LW1vZGVsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsY0FBYyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vZm9ybS12aWV3LW1vZGVsLmNvbXBvbmVudCc7XG4iXX0=
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import { NgModule } from '@angular/core';
|
|
17
|
-
import { FORM_VIEW_MODEL_TOKEN } from '@valtimo/config';
|
|
18
|
-
import { FormViewModelComponent } from './components/form-view-model';
|
|
19
|
-
import * as i0 from "@angular/core";
|
|
20
|
-
export class FormViewModelModule {
|
|
21
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormViewModelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
22
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: FormViewModelModule }); }
|
|
23
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormViewModelModule, providers: [
|
|
24
|
-
{
|
|
25
|
-
provide: FORM_VIEW_MODEL_TOKEN,
|
|
26
|
-
useValue: { component: FormViewModelComponent },
|
|
27
|
-
},
|
|
28
|
-
] }); }
|
|
29
|
-
}
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormViewModelModule, decorators: [{
|
|
31
|
-
type: NgModule,
|
|
32
|
-
args: [{
|
|
33
|
-
providers: [
|
|
34
|
-
{
|
|
35
|
-
provide: FORM_VIEW_MODEL_TOKEN,
|
|
36
|
-
useValue: { component: FormViewModelComponent },
|
|
37
|
-
},
|
|
38
|
-
],
|
|
39
|
-
}]
|
|
40
|
-
}] });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LW1vZGVsLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZm9ybS12aWV3LW1vZGVsL3NyYy9saWIvZm9ybS12aWV3LW1vZGVsLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdEQsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sOEJBQThCLENBQUM7O0FBVXBFLE1BQU0sT0FBTyxtQkFBbUI7K0dBQW5CLG1CQUFtQjtnSEFBbkIsbUJBQW1CO2dIQUFuQixtQkFBbUIsYUFQbkI7WUFDVDtnQkFDRSxPQUFPLEVBQUUscUJBQXFCO2dCQUM5QixRQUFRLEVBQUUsRUFBQyxTQUFTLEVBQUUsc0JBQXNCLEVBQUM7YUFDOUM7U0FDRjs7NEZBRVUsbUJBQW1CO2tCQVIvQixRQUFRO21CQUFDO29CQUNSLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixRQUFRLEVBQUUsRUFBQyxTQUFTLEVBQUUsc0JBQXNCLEVBQUM7eUJBQzlDO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGT1JNX1ZJRVdfTU9ERUxfVE9LRU59IGZyb20gJ0B2YWx0aW1vL2NvbmZpZyc7XG5pbXBvcnQge0Zvcm1WaWV3TW9kZWxDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9mb3JtLXZpZXctbW9kZWwnO1xuXG5ATmdNb2R1bGUoe1xuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBGT1JNX1ZJRVdfTU9ERUxfVE9LRU4sXG4gICAgICB1c2VWYWx1ZToge2NvbXBvbmVudDogRm9ybVZpZXdNb2RlbENvbXBvbmVudH0sXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybVZpZXdNb2RlbE1vZHVsZSB7fVxuIl19
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
export * from './view-model.service';
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Zvcm0tdmlldy1tb2RlbC9zcmMvbGliL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vdmlldy1tb2RlbC5zZXJ2aWNlJztcbiJdfQ==
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import { HttpHeaders } from '@angular/common/http';
|
|
17
|
-
import { Injectable } from '@angular/core';
|
|
18
|
-
import { BaseApiService } from '@valtimo/config';
|
|
19
|
-
import { InterceptorSkip } from '@valtimo/security';
|
|
20
|
-
import * as i0 from "@angular/core";
|
|
21
|
-
import * as i1 from "@angular/common/http";
|
|
22
|
-
import * as i2 from "@valtimo/config";
|
|
23
|
-
export class ViewModelService extends BaseApiService {
|
|
24
|
-
constructor(httpClient, configService) {
|
|
25
|
-
super(httpClient, configService);
|
|
26
|
-
this.httpClient = httpClient;
|
|
27
|
-
this.configService = configService;
|
|
28
|
-
}
|
|
29
|
-
getViewModel(formName, taskInstanceId) {
|
|
30
|
-
return this.httpClient.get(this.getApiUrl('/v1/form/view-model/user-task'), {
|
|
31
|
-
params: {
|
|
32
|
-
formName,
|
|
33
|
-
taskInstanceId,
|
|
34
|
-
},
|
|
35
|
-
headers: new HttpHeaders().set(InterceptorSkip, '400'),
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
updateViewModel(formName, taskInstanceId, viewModel, page, isWizard) {
|
|
39
|
-
const params = {
|
|
40
|
-
formName,
|
|
41
|
-
taskInstanceId,
|
|
42
|
-
isWizard,
|
|
43
|
-
...(!isNaN(page) && { page }),
|
|
44
|
-
};
|
|
45
|
-
return this.httpClient.post(this.getApiUrl(`/v1/form/view-model/user-task`), viewModel, {
|
|
46
|
-
params,
|
|
47
|
-
headers: new HttpHeaders().set(InterceptorSkip, '400'),
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
submitViewModel(formName, taskInstanceId, viewModel) {
|
|
51
|
-
return this.httpClient.post(this.getApiUrl(`/v1/form/view-model/submit/user-task`), viewModel, {
|
|
52
|
-
params: {
|
|
53
|
-
formName,
|
|
54
|
-
taskInstanceId,
|
|
55
|
-
},
|
|
56
|
-
headers: new HttpHeaders().set(InterceptorSkip, '400'),
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
getViewModelForStartForm(formName, processDefinitionKey, documentId = null) {
|
|
60
|
-
return this.httpClient.get(this.getApiUrl('/v1/form/view-model/start-form'), {
|
|
61
|
-
params: {
|
|
62
|
-
formName,
|
|
63
|
-
processDefinitionKey,
|
|
64
|
-
...(!!documentId && { documentId }),
|
|
65
|
-
},
|
|
66
|
-
headers: new HttpHeaders().set(InterceptorSkip, '400'),
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
updateViewModelForStartForm(formName, processDefinitionKey, documentId, viewModel, page, isWizard) {
|
|
70
|
-
const params = {
|
|
71
|
-
formName,
|
|
72
|
-
processDefinitionKey,
|
|
73
|
-
isWizard,
|
|
74
|
-
...(!isNaN(page) && { page }),
|
|
75
|
-
...(!!documentId && { documentId }),
|
|
76
|
-
};
|
|
77
|
-
return this.httpClient.post(this.getApiUrl(`/v1/form/view-model/start-form`), viewModel, {
|
|
78
|
-
params,
|
|
79
|
-
headers: new HttpHeaders().set(InterceptorSkip, '400'),
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
submitViewModelForStartForm(formName, processDefinitionKey, documentId, documentDefinitionName, viewModel) {
|
|
83
|
-
return this.httpClient.post(this.getApiUrl(`/v1/form/view-model/submit/start-form`), viewModel, {
|
|
84
|
-
params: {
|
|
85
|
-
formName,
|
|
86
|
-
processDefinitionKey,
|
|
87
|
-
documentDefinitionName,
|
|
88
|
-
...(!!documentId && { documentId }),
|
|
89
|
-
},
|
|
90
|
-
headers: new HttpHeaders().set(InterceptorSkip, '400'),
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ViewModelService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
94
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ViewModelService, providedIn: 'root' }); }
|
|
95
|
-
}
|
|
96
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ViewModelService, decorators: [{
|
|
97
|
-
type: Injectable,
|
|
98
|
-
args: [{ providedIn: 'root' }]
|
|
99
|
-
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ConfigService }] });
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1tb2RlbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9mb3JtLXZpZXctbW9kZWwvc3JjL2xpYi9zZXJ2aWNlcy92aWV3LW1vZGVsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQWEsV0FBVyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsY0FBYyxFQUFnQixNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQUlsRCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsY0FBYztJQUNsRCxZQUNxQixVQUFzQixFQUN0QixhQUE0QjtRQUUvQyxLQUFLLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBSGQsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUdqRCxDQUFDO0lBRU0sWUFBWSxDQUFDLFFBQWdCLEVBQUUsY0FBc0I7UUFDMUQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBTSxJQUFJLENBQUMsU0FBUyxDQUFDLCtCQUErQixDQUFDLEVBQUU7WUFDL0UsTUFBTSxFQUFFO2dCQUNOLFFBQVE7Z0JBQ1IsY0FBYzthQUNmO1lBQ0QsT0FBTyxFQUFFLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUM7U0FDdkQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGVBQWUsQ0FDcEIsUUFBZ0IsRUFDaEIsY0FBc0IsRUFDdEIsU0FBaUIsRUFDakIsSUFBWSxFQUNaLFFBQWlCO1FBRWpCLE1BQU0sTUFBTSxHQUFHO1lBQ2IsUUFBUTtZQUNSLGNB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b3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwSGVhZGVyc30gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmFzZUFwaVNlcnZpY2UsIENvbmZpZ1NlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2NvbmZpZyc7XG5pbXBvcnQge0ludGVyY2VwdG9yU2tpcH0gZnJvbSAnQHZhbHRpbW8vc2VjdXJpdHknO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgVmlld01vZGVsU2VydmljZSBleHRlbmRzIEJhc2VBcGlTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoaHR0cENsaWVudCwgY29uZmlnU2VydmljZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Vmlld01vZGVsKGZvcm1OYW1lOiBzdHJpbmcsIHRhc2tJbnN0YW5jZUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PGFueT4odGhpcy5nZXRBcGlVcmwoJy92MS9mb3JtL3ZpZXctbW9kZWwvdXNlci10YXNrJyksIHtcbiAgICAgIHBhcmFtczoge1xuICAgICAgICBmb3JtTmFtZSxcbiAgICAgICAgdGFza0luc3RhbmNlSWQsXG4gICAgICB9LFxuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKCkuc2V0KEludGVyY2VwdG9yU2tpcCwgJzQwMCcpLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVZpZXdNb2RlbChcbiAgICBmb3JtTmFtZTogc3RyaW5nLFxuICAgIHRhc2tJbnN0YW5jZUlkOiBzdHJpbmcsXG4gICAgdmlld01vZGVsOiBvYmplY3QsXG4gICAgcGFnZTogbnVtYmVyLFxuICAgIGlzV2l6YXJkOiBib29sZWFuXG4gICk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgZm9ybU5hbWUsXG4gICAgICB0YXNrSW5zdGFuY2VJZCxcbiAgICAgIGlzV2l6YXJkLFxuICAgICAgLi4uKCFpc05hTihwYWdlKSAmJiB7cGFnZX0pLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KHRoaXMuZ2V0QXBpVXJsKGAvdjEvZm9ybS92aWV3LW1vZGVsL3VzZXItdGFza2ApLCB2aWV3TW9kZWwsIHtcbiAgICAgIHBhcmFtcyxcbiAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycygpLnNldChJbnRlcmNlcHRvclNraXAsICc0MDAnKSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXRWaWV3TW9kZWwoXG4gICAgZm9ybU5hbWU6IHN0cmluZyxcbiAgICB0YXNrSW5zdGFuY2VJZDogc3RyaW5nLFxuICAgIHZpZXdNb2RlbDogb2JqZWN0XG4gICk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KHRoaXMuZ2V0QXBpVXJsKGAvdjEvZm9ybS92aWV3LW1vZGVsL3N1Ym1pdC91c2VyLXRhc2tgKSwgdmlld01vZGVsLCB7XG4gICAgICBwYXJhbXM6IHtcbiAgICAgICAgZm9ybU5hbWUsXG4gICAgICAgIHRhc2tJbnN0YW5jZUlkLFxuICAgICAgfSxcbiAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycygpLnNldChJbnRlcmNlcHRvclNraXAsICc0MDAnKSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRWaWV3TW9kZWxGb3JTdGFydEZvcm0oXG4gICAgZm9ybU5hbWU6IHN0cmluZyxcbiAgICBwcm9jZXNzRGVmaW5pdGlvbktleTogc3RyaW5nLFxuICAgIGRvY3VtZW50SWQ6IHN0cmluZyA9IG51bGxcbiAgKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxhbnk+KHRoaXMuZ2V0QXBpVXJsKCcvdjEvZm9ybS92aWV3LW1vZGVsL3N0YXJ0LWZvcm0nKSwge1xuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIGZvcm1OYW1lLFxuICAgICAgICBwcm9jZXNzRGVmaW5pdGlvbktleSxcbiAgICAgICAgLi4uKCEhZG9jdW1lbnRJZCAmJiB7ZG9jdW1lbnRJZH0pLFxuICAgICAgfSxcbiAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycygpLnNldChJbnRlcmNlcHRvclNraXAsICc0MDAnKSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVWaWV3TW9kZWxGb3JTdGFydEZvcm0oXG4gICAgZm9ybU5hbWU6IHN0cmluZyxcbiAgICBwcm9jZXNzRGVmaW5pdGlvbktleTogc3RyaW5nLFxuICAgIGRvY3VtZW50SWQ6IHN0cmluZyxcbiAgICB2aWV3TW9kZWw6IG9iamVjdCxcbiAgICBwYWdlOiBudW1iZXIsXG4gICAgaXNXaXphcmQ6IGJvb2xlYW5cbiAgKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICBmb3JtTmFtZSxcbiAgICAgIHByb2Nlc3NEZWZpbml0aW9uS2V5LFxuICAgICAgaXNXaXphcmQsXG4gICAgICAuLi4oIWlzTmFOKHBhZ2UpICYmIHtwYWdlfSksXG4gICAgICAuLi4oISFkb2N1bWVudElkICYmIHtkb2N1bWVudElkfSksXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QodGhpcy5nZXRBcGlVcmwoYC92MS9mb3JtL3ZpZXctbW9kZWwvc3RhcnQtZm9ybWApLCB2aWV3TW9kZWwsIHtcbiAgICAgIHBhcmFtcyxcbiAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycygpLnNldChJbnRlcmNlcHRvclNraXAsICc0MDAnKSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXRWaWV3TW9kZWxGb3JTdGFydEZvcm0oXG4gICAgZm9ybU5hbWU6IHN0cmluZyxcbiAgICBwcm9jZXNzRGVmaW5pdGlvbktleTogc3RyaW5nLFxuICAgIGRvY3VtZW50SWQ6IHN0cmluZyxcbiAgICBkb2N1bWVudERlZmluaXRpb25OYW1lOiBzdHJpbmcsXG4gICAgdmlld01vZGVsOiBvYmplY3RcbiAgKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoXG4gICAgICB0aGlzLmdldEFwaVVybChgL3YxL2Zvcm0vdmlldy1tb2RlbC9zdWJtaXQvc3RhcnQtZm9ybWApLFxuICAgICAgdmlld01vZGVsLFxuICAgICAge1xuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICBmb3JtTmFtZSxcbiAgICAgICAgICBwcm9jZXNzRGVmaW5pdGlvbktleSxcbiAgICAgICAgICBkb2N1bWVudERlZmluaXRpb25OYW1lLFxuICAgICAgICAgIC4uLighIWRvY3VtZW50SWQgJiYge2RvY3VtZW50SWR9KSxcbiAgICAgICAgfSxcbiAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKCkuc2V0KEludGVyY2VwdG9yU2tpcCwgJzQwMCcpLFxuICAgICAgfVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
package/esm2022/public_api.mjs
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
/*
|
|
17
|
-
* Public API Surface of form view model
|
|
18
|
-
*/
|
|
19
|
-
export * from './lib/components/form-view-model/form-view-model.component';
|
|
20
|
-
export * from './lib/services';
|
|
21
|
-
export * from './lib/form-view-model.module';
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZm9ybS12aWV3LW1vZGVsL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUg7O0dBRUc7QUFFSCxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyw4QkFBOEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgZm9ybSB2aWV3IG1vZGVsXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3JtLXZpZXctbW9kZWwvZm9ybS12aWV3LW1vZGVsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3JtLXZpZXctbW9kZWwubW9kdWxlJztcbiJdfQ==
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public_api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdGltby1mb3JtLXZpZXctbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Zvcm0tdmlldy1tb2RlbC9zcmMvdmFsdGltby1mb3JtLXZpZXctbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
|