@valtimo/form-view-model 12.4.2 → 12.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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 */\n\nimport {Injectable} from '@angular/core';\nimport {HttpClient, HttpHeaders, HttpParams, HttpResponse} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {BaseApiService, ConfigService} from '@valtimo/config';\nimport {InterceptorSkip} from '@valtimo/security';\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 ): Observable<object> {\n return this.httpClient.post(this.getApiUrl(`/v1/form/view-model/user-task`), viewModel, {\n params: {\n formName,\n taskInstanceId,\n },\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 ): Observable<object> {\n return this.httpClient.get<any>(this.getApiUrl('/v1/form/view-model/start-form'), {\n params: {\n formName,\n processDefinitionKey,\n },\n headers: new HttpHeaders().set(InterceptorSkip, '400'),\n });\n }\n\n public updateViewModelForStartForm(\n formName: string,\n processDefinitionKey: string,\n viewModel: object\n ): Observable<object> {\n return this.httpClient.post(this.getApiUrl(`/v1/form/view-model/start-form`), viewModel, {\n params: {\n formName,\n processDefinitionKey,\n },\n headers: new HttpHeaders().set(InterceptorSkip, '400'),\n });\n }\n\n public submitViewModelForStartForm(\n formName: string,\n processDefinitionKey: 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 },\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, OnInit, Output, ViewChild} from '@angular/core';\nimport moment from 'moment';\nimport {\n BehaviorSubject,\n catchError,\n combineLatest,\n debounceTime,\n EMPTY,\n filter,\n Observable,\n of,\n pairwise,\n Subject,\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 {FormioRefreshValue} from '@formio/angular/formio.common';\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';\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],\n})\nexport class FormViewModelComponent implements OnInit {\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 ...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 readOnly(readOnlyValue: boolean) {\n this.readOnly$.next(readOnlyValue);\n }\n\n @Input() set isStartForm(isStartFormValue: boolean) {\n this.isStartForm$.next(isStartFormValue);\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 @Input() formRefresh$!: Subject<FormioRefreshValue>;\n @Output() formSubmit = new EventEmitter<any>();\n\n public refreshForm = new EventEmitter<FormioRefreshValue>();\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 options$ = new BehaviorSubject<ValtimoFormioOptions>(undefined);\n public readonly taskInstanceId$ = new BehaviorSubject<string>(undefined);\n public readonly readOnly$ = new BehaviorSubject<boolean>(false);\n public readonly tokenSetInLocalStorage$ = new BehaviorSubject<boolean>(false);\n public readonly change$ = new BehaviorSubject<any>(null);\n public readonly errors$ = new BehaviorSubject<Array<string>>([]);\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n public readonly isStartForm$ = new BehaviorSubject<boolean>(false);\n public readonly processDefinitionKey$ = new BehaviorSubject<string>(undefined);\n public readonly documentDefinitionName$ = new BehaviorSubject<string>(undefined);\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.currentLanguage$,\n this.options$,\n this._overrideOptions$,\n ]).pipe(\n map(([language, options, overrideOptions]) => {\n const formioTranslations = this.translateService.instant('formioTranslations');\n\n const defaultOptions = {\n ...options,\n language,\n ...(formioTranslations === 'object' && {\n i18n: {\n [language]: this.stateService.flattenTranslationsObject(formioTranslations),\n },\n }),\n };\n\n return deepmerge(defaultOptions, overrideOptions);\n })\n );\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\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 combineLatest([\n this.formName$,\n this.taskInstanceId$,\n this.processDefinitionKey$,\n this.documentDefinitionName$,\n this.isStartForm$,\n ])\n .pipe(\n take(1),\n switchMap(\n ([\n formName,\n taskInstanceId,\n processDefinitionKey,\n documentDefinitionName,\n isStartForm,\n ]) =>\n isStartForm\n ? this.viewModelService\n .submitViewModelForStartForm(\n formName,\n processDefinitionKey,\n documentDefinitionName,\n submission.data\n )\n .pipe(\n take(1),\n switchMap(response => {\n callback(null, submission);\n return of(response);\n }),\n catchError(error => {\n this.handleFormError(error);\n callback({message: error.error.error, component: null}, null);\n return EMPTY; // return an empty observable to complete the stream\n })\n )\n : this.viewModelService\n .submitViewModel(formName, taskInstanceId, submission.data)\n .pipe(\n take(1),\n switchMap(response => {\n callback(null, submission);\n return of(response);\n }),\n catchError(error => {\n this.handleFormError(error);\n callback({message: error.error.error, component: null}, null);\n return EMPTY; // return an empty observable to complete the stream\n })\n )\n )\n )\n .subscribe();\n }\n\n private handleFormError(error: HttpErrorResponse): void {\n const formInstance = this.formio.formio;\n const component = formInstance.getComponent(error.error?.component);\n const submitComponent = formInstance.getComponent('submit');\n if (component == null) {\n this.errors$.next([error.error.error]);\n } else {\n component?.setCustomValidity(error.error.error);\n submitComponent.disabled = true;\n }\n }\n\n public onSubmit(submission: FormioSubmission): void {\n this.formSubmit.next(submission);\n }\n\n public onChange(object: any): void {\n if (object.data) {\n this.change$.next(object);\n }\n\n if (object.changed) {\n this.handleChanges();\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.submission$.next({data: viewModel});\n this.change$.pipe(take(1)).subscribe(() => {\n this.loading$.next(false);\n });\n })\n )\n )\n )\n .subscribe();\n }\n\n public updateViewModel(): void {\n this.loading$\n .pipe(\n take(1),\n switchMap(updating => {\n if (!updating) {\n this.loading$.next(true);\n return combineLatest([this.formName$, this.taskInstanceId$, this.change$]).pipe(\n take(1),\n switchMap(([formName, taskInstanceId, change]) =>\n this.viewModelService.updateViewModel(formName, taskInstanceId, change.data).pipe(\n tap({\n next: viewModel => {\n this.submission$.next({data: viewModel});\n this.loading$.next(false);\n this.errors$.next([]);\n },\n error: error => {\n this.loading$.next(false);\n this.handleFormError(error);\n },\n })\n )\n )\n );\n }\n return of(null); // Fallback to return an observable if updating is true\n })\n )\n .subscribe();\n }\n\n public loadInitialViewModelForStartForm(): void {\n combineLatest([this.formName$, this.processDefinitionKey$])\n .pipe(\n take(1),\n switchMap(([formName, processDefinitionKey]) =>\n this.viewModelService.getViewModelForStartForm(formName, processDefinitionKey).pipe(\n tap(viewModel => {\n this.submission$.next({data: viewModel});\n this.change$.pipe(take(1)).subscribe(() => {\n this.loading$.next(false);\n });\n })\n )\n )\n )\n .subscribe();\n }\n\n public updateViewModelForStartForm(): void {\n this.loading$\n .pipe(\n take(1),\n switchMap(updating => {\n if (!updating) {\n this.loading$.next(true);\n return combineLatest([this.formName$, this.processDefinitionKey$, this.change$]).pipe(\n take(1),\n switchMap(([formName, processDefinitionKey, change]) =>\n this.viewModelService\n .updateViewModelForStartForm(formName, processDefinitionKey, change.data)\n .pipe(\n tap({\n next: viewModel => {\n this.submission$.next({data: viewModel});\n this.loading$.next(false);\n this.errors$.next([]);\n },\n error: error => {\n this.loading$.next(false);\n this.handleFormError(error);\n },\n })\n )\n )\n );\n }\n return of(null); // Fallback to return an observable if updating is true\n })\n )\n .subscribe();\n }\n\n private handleChanges(): void {\n this.change$\n .pipe(\n pairwise(),\n debounceTime(500),\n filter(\n ([prevChange, currentChange]) =>\n prevChange?.changed?.value !== undefined &&\n currentChange?.changed?.value !== undefined &&\n prevChange.changed.value !== currentChange.changed.value\n )\n )\n .subscribe(() => {\n if (this.isStartForm$.value) {\n this.updateViewModelForStartForm();\n } else {\n this.updateViewModel();\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\n<div\n class=\"form-container\"\n *ngIf=\"{\n submission: submission$ | async,\n readOnly: readOnly$ | async,\n form: form$ | async,\n tokenSetInLocalStorage: tokenSetInLocalStorage$ | async,\n formioOptions: formioOptions$ | async,\n loading: loading$ | async,\n errors: errors$ | async,\n } as obs\"\n>\n <div *ngIf=\"obs.loading\" class=\"loading-icon\">\n <i class=\"fa fa-spinner fa-spin\"></i>\n </div>\n <div *ngIf=\"obs.errors.length > 0\" class=\"alert alert-danger pt-5 pb-5 mb-2\">\n <ol>\n @for (error of obs.errors; track error) {\n <li class=\"pl-2\">\n {{ error }}\n </li>\n }\n </ol>\n </div>\n <formio\n #formio\n [submission]=\"obs.submission\"\n [form]=\"obs.form\"\n [refresh]=\"refreshForm\"\n [readOnly]=\"obs.readOnly\"\n [options]=\"obs.formioOptions\"\n (submit)=\"onSubmit($event)\"\n (change)=\"onChange($event)\"\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-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\nimport {Injectable} from '@angular/core';\nimport {HttpClient, HttpHeaders, HttpParams, HttpResponse} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {BaseApiService, ConfigService} from '@valtimo/config';\nimport {InterceptorSkip} from '@valtimo/security';\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 ): Observable<object> {\n return this.httpClient.post(this.getApiUrl(`/v1/form/view-model/user-task`), viewModel, {\n params: {\n formName,\n taskInstanceId,\n },\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 ): Observable<object> {\n return this.httpClient.get<any>(this.getApiUrl('/v1/form/view-model/start-form'), {\n params: {\n formName,\n processDefinitionKey,\n },\n headers: new HttpHeaders().set(InterceptorSkip, '400'),\n });\n }\n\n public updateViewModelForStartForm(\n formName: string,\n processDefinitionKey: string,\n viewModel: object\n ): Observable<object> {\n return this.httpClient.post(this.getApiUrl(`/v1/form/view-model/start-form`), viewModel, {\n params: {\n formName,\n processDefinitionKey,\n },\n headers: new HttpHeaders().set(InterceptorSkip, '400'),\n });\n }\n\n public submitViewModelForStartForm(\n formName: string,\n processDefinitionKey: 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 },\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, OnInit, Output, ViewChild} from '@angular/core';\nimport moment from 'moment';\nimport {\n BehaviorSubject,\n catchError,\n combineLatest,\n debounceTime,\n EMPTY,\n filter,\n Observable,\n of,\n pairwise,\n Subject,\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 {FormioRefreshValue} from '@formio/angular/formio.common';\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';\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],\n})\nexport class FormViewModelComponent implements OnInit {\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 ...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 readOnly(readOnlyValue: boolean) {\n this.readOnly$.next(readOnlyValue);\n }\n\n @Input() set isStartForm(isStartFormValue: boolean) {\n this.isStartForm$.next(isStartFormValue);\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 @Input() formRefresh$!: Subject<FormioRefreshValue>;\n @Output() formSubmit = new EventEmitter<any>();\n\n public refreshForm = new EventEmitter<FormioRefreshValue>();\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 options$ = new BehaviorSubject<ValtimoFormioOptions>(undefined);\n public readonly taskInstanceId$ = new BehaviorSubject<string>(undefined);\n public readonly readOnly$ = new BehaviorSubject<boolean>(false);\n public readonly tokenSetInLocalStorage$ = new BehaviorSubject<boolean>(false);\n public readonly change$ = new BehaviorSubject<any>(null);\n public readonly errors$ = new BehaviorSubject<Array<string>>([]);\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n public readonly isStartForm$ = new BehaviorSubject<boolean>(false);\n public readonly processDefinitionKey$ = new BehaviorSubject<string>(undefined);\n public readonly documentDefinitionName$ = new BehaviorSubject<string>(undefined);\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.currentLanguage$,\n this.options$,\n this._overrideOptions$,\n ]).pipe(\n map(([language, options, overrideOptions]) => {\n const formioTranslations = this.translateService.instant('formioTranslations');\n\n const defaultOptions = {\n ...options,\n language,\n ...(formioTranslations === 'object' && {\n i18n: {\n [language]: this.stateService.flattenTranslationsObject(formioTranslations),\n },\n }),\n };\n\n return deepmerge(defaultOptions, overrideOptions);\n })\n );\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\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 combineLatest([\n this.formName$,\n this.taskInstanceId$,\n this.processDefinitionKey$,\n this.documentDefinitionName$,\n this.isStartForm$,\n ])\n .pipe(\n take(1),\n switchMap(\n ([\n formName,\n taskInstanceId,\n processDefinitionKey,\n documentDefinitionName,\n isStartForm,\n ]) =>\n isStartForm\n ? this.viewModelService\n .submitViewModelForStartForm(\n formName,\n processDefinitionKey,\n documentDefinitionName,\n submission.data\n )\n .pipe(\n take(1),\n switchMap(response => {\n callback(null, submission);\n return of(response);\n }),\n catchError(error => {\n this.handleFormError(error);\n callback({message: error.error.error, component: null}, null);\n return EMPTY; // return an empty observable to complete the stream\n })\n )\n : this.viewModelService\n .submitViewModel(formName, taskInstanceId, submission.data)\n .pipe(\n take(1),\n switchMap(response => {\n callback(null, submission);\n return of(response);\n }),\n catchError(error => {\n this.handleFormError(error);\n callback({message: error.error.error, component: null}, null);\n return EMPTY; // return an empty observable to complete the stream\n })\n )\n )\n )\n .subscribe();\n }\n\n private handleFormError(error: HttpErrorResponse): void {\n const formInstance = this.formio.formio;\n const component = formInstance.getComponent(error.error?.component);\n const submitComponent = formInstance.getComponent('submit');\n if (component == null) {\n this.errors$.next([error.error.error]);\n } else {\n component?.setCustomValidity(error.error.error);\n submitComponent.disabled = true;\n }\n }\n\n public onSubmit(submission: FormioSubmission): void {\n this.formSubmit.next(submission);\n }\n\n public onChange(object: any): void {\n if (object.data) {\n this.change$.next(object);\n }\n\n if (object.changed) {\n this.handleChanges();\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.submission$.next({data: viewModel});\n this.change$.pipe(take(1)).subscribe(() => {\n this.loading$.next(false);\n });\n })\n )\n )\n )\n .subscribe();\n }\n\n public updateViewModel(): void {\n this.loading$\n .pipe(\n take(1),\n switchMap(updating => {\n if (!updating) {\n this.loading$.next(true);\n return combineLatest([this.formName$, this.taskInstanceId$, this.change$]).pipe(\n take(1),\n switchMap(([formName, taskInstanceId, change]) =>\n this.viewModelService.updateViewModel(formName, taskInstanceId, change.data).pipe(\n tap({\n next: viewModel => {\n this.submission$.next({data: viewModel});\n this.loading$.next(false);\n this.errors$.next([]);\n },\n error: error => {\n this.loading$.next(false);\n this.handleFormError(error);\n },\n })\n )\n )\n );\n }\n return of(null); // Fallback to return an observable if updating is true\n })\n )\n .subscribe();\n }\n\n public loadInitialViewModelForStartForm(): void {\n combineLatest([this.formName$, this.processDefinitionKey$])\n .pipe(\n take(1),\n switchMap(([formName, processDefinitionKey]) =>\n this.viewModelService.getViewModelForStartForm(formName, processDefinitionKey).pipe(\n tap(viewModel => {\n this.submission$.next({data: viewModel});\n this.change$.pipe(take(1)).subscribe(() => {\n this.loading$.next(false);\n });\n })\n )\n )\n )\n .subscribe();\n }\n\n public updateViewModelForStartForm(): void {\n this.loading$\n .pipe(\n take(1),\n switchMap(updating => {\n if (!updating) {\n this.loading$.next(true);\n return combineLatest([this.formName$, this.processDefinitionKey$, this.change$]).pipe(\n take(1),\n switchMap(([formName, processDefinitionKey, change]) =>\n this.viewModelService\n .updateViewModelForStartForm(formName, processDefinitionKey, change.data)\n .pipe(\n tap({\n next: viewModel => {\n this.submission$.next({data: viewModel});\n this.loading$.next(false);\n this.errors$.next([]);\n },\n error: error => {\n this.loading$.next(false);\n this.handleFormError(error);\n },\n })\n )\n )\n );\n }\n return of(null); // Fallback to return an observable if updating is true\n })\n )\n .subscribe();\n }\n\n private handleChanges(): void {\n this.change$\n .pipe(\n pairwise(),\n debounceTime(500),\n filter(\n ([prevChange, currentChange]) =>\n prevChange?.changed?.value !== undefined &&\n currentChange?.changed?.value !== undefined &&\n prevChange.changed.value !== currentChange.changed.value\n )\n )\n .subscribe(() => {\n if (this.isStartForm$.value) {\n this.updateViewModelForStartForm();\n } else {\n this.updateViewModel();\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\n<div\n class=\"form-container\"\n *ngIf=\"{\n submission: submission$ | async,\n readOnly: readOnly$ | async,\n form: form$ | async,\n tokenSetInLocalStorage: tokenSetInLocalStorage$ | async,\n formioOptions: formioOptions$ | async,\n loading: loading$ | async,\n errors: errors$ | async,\n } as obs\"\n>\n <div *ngIf=\"obs.loading\" class=\"loading-icon\">\n <i class=\"fa fa-spinner fa-spin\"></i>\n </div>\n <div *ngIf=\"obs.errors.length > 0\" class=\"alert alert-danger pt-5 pb-5 mb-2\">\n <ol>\n @for (error of obs.errors; track error) {\n <li class=\"pl-2\">\n {{ error }}\n </li>\n }\n </ol>\n </div>\n <formio\n #formio\n [submission]=\"obs.submission\"\n [form]=\"obs.form\"\n [refresh]=\"refreshForm\"\n [readOnly]=\"obs.readOnly\"\n [options]=\"obs.formioOptions\"\n (submit)=\"onSubmit($event)\"\n (change)=\"onChange($event)\"\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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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@valtimo/form-view-model",
3
3
  "license": "EUPL-1.2",
4
- "version": "12.4.2",
4
+ "version": "12.5.1",
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^17.2.2",
7
7
  "@angular/core": "^17.2.2"