@valtimo/form-management 13.36.1 → 13.38.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.
@@ -108,10 +108,10 @@ class FormManagementService extends BaseApiService {
108
108
  deleteFormDefinitionBuildingBlock(buildingBlockDefinitionKey, buildingBlockDefinitionVersionTag, formDefinitionId) {
109
109
  return this.httpClient.delete(this.getApiUrl(`/management/v1/building-block/${buildingBlockDefinitionKey}/version/${buildingBlockDefinitionVersionTag}/form/${formDefinitionId}`));
110
110
  }
111
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: FormManagementService, deps: [{ token: i1.HttpClient }, { token: i4.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
112
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: FormManagementService, providedIn: 'root' }); }
111
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: FormManagementService, deps: [{ token: i1.HttpClient }, { token: i4.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
112
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: FormManagementService, providedIn: 'root' }); }
113
113
  }
114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: FormManagementService, decorators: [{
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: FormManagementService, decorators: [{
115
115
  type: Injectable,
116
116
  args: [{
117
117
  providedIn: 'root',
@@ -343,10 +343,10 @@ class FormManagementCreateComponent {
343
343
  }
344
344
  this.createFormDefinition();
345
345
  }
346
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: FormManagementCreateComponent, deps: [{ token: FormManagementService }, { token: i2.FormBuilder }, { token: i3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
347
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: FormManagementCreateComponent, isStandalone: true, selector: "valtimo-form-management-create", inputs: { upload: "upload" }, outputs: { goBackEvent: "goBackEvent", afterCreateEvent: "afterCreateEvent", afterUploadEvent: "afterUploadEvent" }, 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<cds-modal\n valtimoCdsModal\n class=\"form-management-create\"\n size=\"sm\"\n [cdsLayer]=\"0\"\n [open]=\"true\"\n (close)=\"onCloseEvent()\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCloseEvent()\">\n <h3 cdsModalHeaderHeading>\n {{ 'formManagement.add' | translate }}\n </h3>\n </cds-modal-header>\n\n <form *ngIf=\"form\" [formGroup]=\"form\" (ngSubmit)=\"onSubmit($event)\">\n <section cdsModalContent [cdsLayer]=\"1\">\n <cds-label\n [invalid]=\"formControls?.name?.touched && formControls?.name?.errors\"\n [invalidText]=\"\n (formControls?.name?.errors?.required && ('formManagement.nameIsRequired' | translate)) ||\n (formControls?.name?.errors?.duplicate && ('formManagement.nameIsInUse' | translate))\n \"\n >\n {{ 'formManagement.name' | translate }}\n\n <input\n cdsText\n type=\"text\"\n id=\"name\"\n formControlName=\"name\"\n [invalid]=\"formControls?.name?.touched && formControls?.name?.errors\"\n required\n [attr.data-test-id]=\"testIds.nameInput\"\n />\n </cds-label>\n </section>\n\n <cds-modal-footer [cdsLayer]=\"1\">\n <button cdsButton=\"secondary\" (click)=\"$event.preventDefault(); onBackButtonClick()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n cdsButton=\"primary\"\n type=\"submit\"\n [disabled]=\"form?.invalid\"\n [attr.data-test-id]=\"testIds.submitButton\"\n >\n {{ 'formManagement.submit' | translate }}\n </button>\n </cds-modal-footer>\n </form>\n</cds-modal>\n", styles: [".form-management-create{max-width:512px;margin:0 auto}cds-modal-footer{width:100%}\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"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2$1.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i2$1.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i2$1.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: WidgetModule }, { kind: "ngmodule", type: TilesModule }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i2$1.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i2$1.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i2$1.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i2$1.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i2$1.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i2$1.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "directive", type: ValtimoCdsModalDirective, selector: "[valtimoCdsModal]", inputs: ["minContentHeight"] }] }); }
346
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: FormManagementCreateComponent, deps: [{ token: FormManagementService }, { token: i2.FormBuilder }, { token: i3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
347
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: FormManagementCreateComponent, isStandalone: true, selector: "valtimo-form-management-create", inputs: { upload: "upload" }, outputs: { goBackEvent: "goBackEvent", afterCreateEvent: "afterCreateEvent", afterUploadEvent: "afterUploadEvent" }, 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<cds-modal\n valtimoCdsModal\n class=\"form-management-create\"\n size=\"sm\"\n [cdsLayer]=\"0\"\n [open]=\"true\"\n (close)=\"onCloseEvent()\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCloseEvent()\">\n <h3 cdsModalHeaderHeading>\n {{ 'formManagement.add' | translate }}\n </h3>\n </cds-modal-header>\n\n <form *ngIf=\"form\" [formGroup]=\"form\" (ngSubmit)=\"onSubmit($event)\">\n <section cdsModalContent [cdsLayer]=\"1\">\n <cds-label\n [invalid]=\"formControls?.name?.touched && formControls?.name?.errors\"\n [invalidText]=\"\n (formControls?.name?.errors?.required && ('formManagement.nameIsRequired' | translate)) ||\n (formControls?.name?.errors?.duplicate && ('formManagement.nameIsInUse' | translate))\n \"\n >\n {{ 'formManagement.name' | translate }}\n\n <input\n cdsText\n type=\"text\"\n id=\"name\"\n formControlName=\"name\"\n [invalid]=\"formControls?.name?.touched && formControls?.name?.errors\"\n required\n [attr.data-test-id]=\"testIds.nameInput\"\n />\n </cds-label>\n </section>\n\n <cds-modal-footer [cdsLayer]=\"1\">\n <button cdsButton=\"secondary\" (click)=\"$event.preventDefault(); onBackButtonClick()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n cdsButton=\"primary\"\n type=\"submit\"\n [disabled]=\"form?.invalid\"\n [attr.data-test-id]=\"testIds.submitButton\"\n >\n {{ 'interface.create' | translate }}\n </button>\n </cds-modal-footer>\n </form>\n</cds-modal>\n", styles: [".form-management-create{max-width:512px;margin:0 auto}cds-modal-footer{width:100%}\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"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2$1.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i2$1.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i2$1.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: WidgetModule }, { kind: "ngmodule", type: TilesModule }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i2$1.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i2$1.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i2$1.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i2$1.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i2$1.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i2$1.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "directive", type: ValtimoCdsModalDirective, selector: "[valtimoCdsModal]", inputs: ["minContentHeight"] }] }); }
348
348
  }
349
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: FormManagementCreateComponent, decorators: [{
349
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: FormManagementCreateComponent, decorators: [{
350
350
  type: Component,
351
351
  args: [{ selector: 'valtimo-form-management-create', standalone: true, imports: [
352
352
  CommonModule,
@@ -361,7 +361,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
361
361
  ModalModule,
362
362
  ValtimoCdsModalDirective,
363
363
  ButtonModule,
364
- ], 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<cds-modal\n valtimoCdsModal\n class=\"form-management-create\"\n size=\"sm\"\n [cdsLayer]=\"0\"\n [open]=\"true\"\n (close)=\"onCloseEvent()\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCloseEvent()\">\n <h3 cdsModalHeaderHeading>\n {{ 'formManagement.add' | translate }}\n </h3>\n </cds-modal-header>\n\n <form *ngIf=\"form\" [formGroup]=\"form\" (ngSubmit)=\"onSubmit($event)\">\n <section cdsModalContent [cdsLayer]=\"1\">\n <cds-label\n [invalid]=\"formControls?.name?.touched && formControls?.name?.errors\"\n [invalidText]=\"\n (formControls?.name?.errors?.required && ('formManagement.nameIsRequired' | translate)) ||\n (formControls?.name?.errors?.duplicate && ('formManagement.nameIsInUse' | translate))\n \"\n >\n {{ 'formManagement.name' | translate }}\n\n <input\n cdsText\n type=\"text\"\n id=\"name\"\n formControlName=\"name\"\n [invalid]=\"formControls?.name?.touched && formControls?.name?.errors\"\n required\n [attr.data-test-id]=\"testIds.nameInput\"\n />\n </cds-label>\n </section>\n\n <cds-modal-footer [cdsLayer]=\"1\">\n <button cdsButton=\"secondary\" (click)=\"$event.preventDefault(); onBackButtonClick()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n cdsButton=\"primary\"\n type=\"submit\"\n [disabled]=\"form?.invalid\"\n [attr.data-test-id]=\"testIds.submitButton\"\n >\n {{ 'formManagement.submit' | translate }}\n </button>\n </cds-modal-footer>\n </form>\n</cds-modal>\n", styles: [".form-management-create{max-width:512px;margin:0 auto}cds-modal-footer{width:100%}\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"] }]
364
+ ], 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<cds-modal\n valtimoCdsModal\n class=\"form-management-create\"\n size=\"sm\"\n [cdsLayer]=\"0\"\n [open]=\"true\"\n (close)=\"onCloseEvent()\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCloseEvent()\">\n <h3 cdsModalHeaderHeading>\n {{ 'formManagement.add' | translate }}\n </h3>\n </cds-modal-header>\n\n <form *ngIf=\"form\" [formGroup]=\"form\" (ngSubmit)=\"onSubmit($event)\">\n <section cdsModalContent [cdsLayer]=\"1\">\n <cds-label\n [invalid]=\"formControls?.name?.touched && formControls?.name?.errors\"\n [invalidText]=\"\n (formControls?.name?.errors?.required && ('formManagement.nameIsRequired' | translate)) ||\n (formControls?.name?.errors?.duplicate && ('formManagement.nameIsInUse' | translate))\n \"\n >\n {{ 'formManagement.name' | translate }}\n\n <input\n cdsText\n type=\"text\"\n id=\"name\"\n formControlName=\"name\"\n [invalid]=\"formControls?.name?.touched && formControls?.name?.errors\"\n required\n [attr.data-test-id]=\"testIds.nameInput\"\n />\n </cds-label>\n </section>\n\n <cds-modal-footer [cdsLayer]=\"1\">\n <button cdsButton=\"secondary\" (click)=\"$event.preventDefault(); onBackButtonClick()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n cdsButton=\"primary\"\n type=\"submit\"\n [disabled]=\"form?.invalid\"\n [attr.data-test-id]=\"testIds.submitButton\"\n >\n {{ 'interface.create' | translate }}\n </button>\n </cds-modal-footer>\n </form>\n</cds-modal>\n", styles: [".form-management-create{max-width:512px;margin:0 auto}cds-modal-footer{width:100%}\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"] }]
365
365
  }], ctorParameters: () => [{ type: FormManagementService }, { type: i2.FormBuilder }, { type: i3.ActivatedRoute }], propDecorators: { upload: [{
366
366
  type: Input
367
367
  }], goBackEvent: [{
@@ -528,10 +528,10 @@ class FormManagementListComponent {
528
528
  updatePagination(update) {
529
529
  this._partialPagination$.next({ ...this._partialPagination, ...update });
530
530
  }
531
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: FormManagementListComponent, deps: [{ token: FormManagementService }, { token: i2$1.IconService }, { token: i3.ActivatedRoute }, { token: i4.EnvironmentService }, { token: i4.DraftVersionService }, { token: i4.GlobalNotificationService }, { token: i5.TranslateService }, { token: i4.EditPermissionsService }], target: i0.ɵɵFactoryTarget.Component }); }
532
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: FormManagementListComponent, isStandalone: true, selector: "valtimo-form-management-list", outputs: { navigateToCreateEvent: "navigateToCreateEvent", navigateToUploadEvent: "navigateToUploadEvent", navigateToEditEvent: "navigateToEditEvent" }, 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<valtimo-carbon-list\n *ngIf=\"{\n formDefinitions: formDefinitions$ | async,\n pagination: pagination$ | async,\n loading: loading$ | async,\n context: context$ | async,\n hasEditPermissions: hasEditPermissions$ | async,\n } as obs\"\n [showActionItems]=\"obs.hasEditPermissions\"\n [actionItems]=\"ACTION_ITEMS\"\n [fields]=\"FIELDS\"\n [header]=\"false\"\n [isSearchable]=\"true\"\n [items]=\"obs?.formDefinitions || []\"\n [pagination]=\"obs.pagination\"\n [loading]=\"obs.loading\"\n paginationIdentifier=\"formManagementList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"editFormDefinition($event)\"\n (search)=\"searchTermEntered($event)\"\n>\n <ng-container *ngIf=\"obs.hasEditPermissions\" carbonToolbarContent>\n <button cdsButton=\"ghost\" [iconOnly]=\"true\" (click)=\"navigateToUploadRoute()\">\n <svg cdsIcon=\"upload\" size=\"16\"></svg>\n </button>\n\n <ng-container [ngTemplateOutlet]=\"createFormButton\"></ng-container>\n </ng-container>\n\n <valtimo-no-results\n [action]=\"createFormButton\"\n [description]=\"'formManagement.noResults.' + obs.context + 'Description' | translate\"\n [title]=\"'formManagement.noResults.title' | translate\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"interface.deleteConfirmation\"\n cancelButtonTextTranslationKey=\"interface.cancel\"\n [outputOnConfirm]=\"formDefinitionToDelete$ | async\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"dashboardManagement.delete\"\n (confirmEvent)=\"deleteFormDefinition($event)\"\n></valtimo-confirmation-modal>\n\n<ng-template #createFormButton>\n <button\n *ngIf=\"hasEditPermissions$ | async\"\n cdsButton=\"primary\"\n (click)=\"navigateToCreateRoute()\"\n [attr.data-test-id]=\"testIds.createFormButton\"\n >\n {{ 'Create Form' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n", styles: ["/*!\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"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i4$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i3$1.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "skeletonRowCount", "actions", "actionItems", "showActionItems", "header", "hideColumnHeader", "initialSortState", "sortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled", "dragAndDrop", "dragAndDropDisabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "component", type: i3$1.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i2$1.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2$1.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: ConfirmationModalModule }, { kind: "component", type: i3$1.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "showOptionalButton", "optionalButtonText", "optionalButtonTextTranslationKey", "optionalButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm", "outputOnOptional", "spacerAfterCancelButton"], outputs: ["confirmEvent", "optionalEvent", "cancelEvent"] }] }); }
531
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: FormManagementListComponent, deps: [{ token: FormManagementService }, { token: i2$1.IconService }, { token: i3.ActivatedRoute }, { token: i4.EnvironmentService }, { token: i4.DraftVersionService }, { token: i4.GlobalNotificationService }, { token: i5.TranslateService }, { token: i4.EditPermissionsService }], target: i0.ɵɵFactoryTarget.Component }); }
532
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: FormManagementListComponent, isStandalone: true, selector: "valtimo-form-management-list", outputs: { navigateToCreateEvent: "navigateToCreateEvent", navigateToUploadEvent: "navigateToUploadEvent", navigateToEditEvent: "navigateToEditEvent" }, 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<valtimo-carbon-list\n *ngIf=\"{\n formDefinitions: formDefinitions$ | async,\n pagination: pagination$ | async,\n loading: loading$ | async,\n context: context$ | async,\n hasEditPermissions: hasEditPermissions$ | async,\n } as obs\"\n [showActionItems]=\"obs.hasEditPermissions\"\n [actionItems]=\"ACTION_ITEMS\"\n [fields]=\"FIELDS\"\n [header]=\"false\"\n [isSearchable]=\"true\"\n [items]=\"obs?.formDefinitions || []\"\n [pagination]=\"obs.pagination\"\n [loading]=\"obs.loading\"\n paginationIdentifier=\"formManagementList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"editFormDefinition($event)\"\n (search)=\"searchTermEntered($event)\"\n>\n <ng-container *ngIf=\"obs.hasEditPermissions\" carbonToolbarContent>\n <button cdsButton=\"ghost\" [iconOnly]=\"true\" (click)=\"navigateToUploadRoute()\">\n <svg cdsIcon=\"upload\" size=\"16\"></svg>\n </button>\n\n <ng-container [ngTemplateOutlet]=\"createFormButton\"></ng-container>\n </ng-container>\n\n <valtimo-no-results\n [action]=\"createFormButton\"\n [description]=\"'formManagement.noResults.' + obs.context + 'Description' | translate\"\n [title]=\"'formManagement.noResults.title' | translate\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"interface.deleteConfirmation\"\n cancelButtonTextTranslationKey=\"interface.cancel\"\n [outputOnConfirm]=\"formDefinitionToDelete$ | async\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"dashboardManagement.delete\"\n (confirmEvent)=\"deleteFormDefinition($event)\"\n></valtimo-confirmation-modal>\n\n<ng-template #createFormButton>\n <button\n *ngIf=\"hasEditPermissions$ | async\"\n cdsButton=\"primary\"\n (click)=\"navigateToCreateRoute()\"\n [attr.data-test-id]=\"testIds.createFormButton\"\n >\n {{ 'Create Form' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n", styles: ["/*!\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"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i4$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i3$1.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "skeletonRowCount", "actions", "actionItems", "showActionItems", "header", "hideColumnHeader", "initialSortState", "sortState", "isSearchable", "initialSearchValue", "searchDebounceMs", "invalidSearchFields", "searchFields", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled", "dragAndDrop", "dragAndDropDisabled", "expandedRowTemplate", "expandedRowKey"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "component", type: i3$1.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i2$1.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2$1.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: ConfirmationModalModule }, { kind: "component", type: i3$1.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "showOptionalButton", "optionalButtonText", "optionalButtonTextTranslationKey", "optionalButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm", "outputOnOptional", "spacerAfterCancelButton"], outputs: ["confirmEvent", "optionalEvent", "cancelEvent"] }] }); }
533
533
  }
534
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: FormManagementListComponent, decorators: [{
534
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: FormManagementListComponent, decorators: [{
535
535
  type: Component,
536
536
  args: [{ selector: 'valtimo-form-management-list', standalone: true, imports: [
537
537
  CommonModule,
@@ -629,10 +629,10 @@ class FormManagementComponent {
629
629
  ?.getNotificationRefs()
630
630
  .forEach(ref => this.notificationService.close(ref));
631
631
  }
632
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: FormManagementComponent, deps: [{ token: i3.ActivatedRoute }, { token: i3.Router }, { token: i4.GlobalNotificationService }, { token: i5.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
633
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: FormManagementComponent, isStandalone: true, selector: "ng-component", 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<ng-container\n *ngIf=\"{\n create: create$ | async,\n upload: upload$ | async,\n } as obs\"\n>\n <valtimo-form-management-list\n (navigateToCreateEvent)=\"onNavigateToCreateEvent()\"\n (navigateToUploadEvent)=\"onNavigateToUploadEvent()\"\n (navigateToEditEvent)=\"onFormDefinitionEditEvent($event)\"\n ></valtimo-form-management-list>\n\n <valtimo-form-management-create\n *ngIf=\"obs.create\"\n [upload]=\"obs.upload\"\n (goBackEvent)=\"onGoBackFromCreateEvent()\"\n (afterCreateEvent)=\"onFormDefinitionCreateEvent($event)\"\n (afterUploadEvent)=\"onFormDefinitionUploadEvent($event)\"\n ></valtimo-form-management-create>\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: FormManagementListComponent, selector: "valtimo-form-management-list", outputs: ["navigateToCreateEvent", "navigateToUploadEvent", "navigateToEditEvent"] }, { kind: "component", type: FormManagementCreateComponent, selector: "valtimo-form-management-create", inputs: ["upload"], outputs: ["goBackEvent", "afterCreateEvent", "afterUploadEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
632
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: FormManagementComponent, deps: [{ token: i3.ActivatedRoute }, { token: i3.Router }, { token: i4.GlobalNotificationService }, { token: i5.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
633
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: FormManagementComponent, isStandalone: true, selector: "ng-component", 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<ng-container\n *ngIf=\"{\n create: create$ | async,\n upload: upload$ | async,\n } as obs\"\n>\n <valtimo-form-management-list\n (navigateToCreateEvent)=\"onNavigateToCreateEvent()\"\n (navigateToUploadEvent)=\"onNavigateToUploadEvent()\"\n (navigateToEditEvent)=\"onFormDefinitionEditEvent($event)\"\n ></valtimo-form-management-list>\n\n <valtimo-form-management-create\n *ngIf=\"obs.create\"\n [upload]=\"obs.upload\"\n (goBackEvent)=\"onGoBackFromCreateEvent()\"\n (afterCreateEvent)=\"onFormDefinitionCreateEvent($event)\"\n (afterUploadEvent)=\"onFormDefinitionUploadEvent($event)\"\n ></valtimo-form-management-create>\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: FormManagementListComponent, selector: "valtimo-form-management-list", outputs: ["navigateToCreateEvent", "navigateToUploadEvent", "navigateToEditEvent"] }, { kind: "component", type: FormManagementCreateComponent, selector: "valtimo-form-management-create", inputs: ["upload"], outputs: ["goBackEvent", "afterCreateEvent", "afterUploadEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
634
634
  }
635
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: FormManagementComponent, decorators: [{
635
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: FormManagementComponent, decorators: [{
636
636
  type: Component,
637
637
  args: [{ changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
638
638
  CommonModule,
@@ -819,10 +819,10 @@ class FormManagementDuplicateComponent extends BaseModal {
819
819
  return false;
820
820
  }
821
821
  }
822
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: FormManagementDuplicateComponent, deps: [{ token: 'formToDuplicate' }, { token: 'context' }, { token: 'params' }, { token: i2$1.ModalService }, { token: FormManagementService }, { token: i3.ActivatedRoute }, { token: i3.Router }, { token: i4.GlobalNotificationService }, { token: i5.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
823
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: FormManagementDuplicateComponent, isStandalone: true, selector: "valtimo-form-management-duplicate-modal", usesInheritance: 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<cds-modal\n valtimoCdsModal\n class=\"form-management-create\"\n size=\"sm\"\n [cdsLayer]=\"0\"\n [open]=\"true\"\n (close)=\"closeModal()\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'formManagement.duplicate' | translate }}\n </h3>\n </cds-modal-header>\n\n <form [formGroup]=\"duplicateForm\">\n <section cdsModalContent [cdsLayer]=\"1\">\n <cds-label\n [invalid]=\"duplicateFormName?.touched && duplicateFormName?.errors\"\n [invalidText]=\"\n (duplicateFormName?.errors?.required && ('formManagement.nameIsRequired' | translate)) ||\n (duplicateFormName?.errors?.duplicate && ('formManagement.nameIsInUse' | translate)) ||\n 'Error'\n \"\n >\n {{ 'formManagement.name' | translate }}\n\n <input\n cdsText\n type=\"text\"\n id=\"duplicateFormName\"\n formControlName=\"duplicateFormName\"\n [invalid]=\"duplicateFormName?.touched && duplicateFormName?.errors\"\n required\n />\n </cds-label>\n </section>\n\n <cds-modal-footer [cdsLayer]=\"1\">\n <cds-modal-footer>\n <button cdsButton=\"secondary\" (click)=\"closeModal()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button [disabled]=\"duplicateForm.invalid\" cdsButton=\"primary\" (click)=\"duplicate()\">\n {{ 'formManagement.submit' | translate }}\n </button>\n </cds-modal-footer>\n </cds-modal-footer>\n </form>\n</cds-modal>\n", styles: ["/*!\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"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i2$1.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i2$1.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i2$1.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i2$1.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i2$1.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2$1.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i2$1.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i2$1.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i2$1.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "directive", type: ValtimoCdsModalDirective, selector: "[valtimoCdsModal]", inputs: ["minContentHeight"] }] }); }
822
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: FormManagementDuplicateComponent, deps: [{ token: 'formToDuplicate' }, { token: 'context' }, { token: 'params' }, { token: i2$1.ModalService }, { token: FormManagementService }, { token: i3.ActivatedRoute }, { token: i3.Router }, { token: i4.GlobalNotificationService }, { token: i5.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
823
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: FormManagementDuplicateComponent, isStandalone: true, selector: "valtimo-form-management-duplicate-modal", usesInheritance: 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<cds-modal\n valtimoCdsModal\n class=\"form-management-create\"\n size=\"sm\"\n [cdsLayer]=\"0\"\n [open]=\"true\"\n (close)=\"closeModal()\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'formManagement.duplicate' | translate }}\n </h3>\n </cds-modal-header>\n\n <form [formGroup]=\"duplicateForm\">\n <section cdsModalContent [cdsLayer]=\"1\">\n <cds-label\n [invalid]=\"duplicateFormName?.touched && duplicateFormName?.errors\"\n [invalidText]=\"\n (duplicateFormName?.errors?.required && ('formManagement.nameIsRequired' | translate)) ||\n (duplicateFormName?.errors?.duplicate && ('formManagement.nameIsInUse' | translate)) ||\n 'Error'\n \"\n >\n {{ 'formManagement.name' | translate }}\n\n <input\n cdsText\n type=\"text\"\n id=\"duplicateFormName\"\n formControlName=\"duplicateFormName\"\n [invalid]=\"duplicateFormName?.touched && duplicateFormName?.errors\"\n required\n />\n </cds-label>\n </section>\n\n <cds-modal-footer [cdsLayer]=\"1\">\n <cds-modal-footer>\n <button cdsButton=\"secondary\" (click)=\"closeModal()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button [disabled]=\"duplicateForm.invalid\" cdsButton=\"primary\" (click)=\"duplicate()\">\n {{ 'formManagement.submit' | translate }}\n </button>\n </cds-modal-footer>\n </cds-modal-footer>\n </form>\n</cds-modal>\n", styles: ["/*!\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"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i2$1.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i2$1.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i2$1.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i2$1.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i2$1.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2$1.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i2$1.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i2$1.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i2$1.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "directive", type: ValtimoCdsModalDirective, selector: "[valtimoCdsModal]", inputs: ["minContentHeight"] }] }); }
824
824
  }
825
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: FormManagementDuplicateComponent, decorators: [{
825
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: FormManagementDuplicateComponent, decorators: [{
826
826
  type: Component,
827
827
  args: [{ selector: 'valtimo-form-management-duplicate-modal', standalone: true, imports: [
828
828
  CommonModule,
@@ -917,10 +917,10 @@ class FormManagementUploadComponent {
917
917
  this.definitionUploaded.emit(formioDefinitionString);
918
918
  this.modalOpen$.next(false);
919
919
  }
920
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: FormManagementUploadComponent, deps: [{ token: i2.FormBuilder }, { token: i4.GlobalNotificationService }, { token: i5.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
921
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: FormManagementUploadComponent, isStandalone: true, selector: "valtimo-form-management-upload", inputs: { show$: "show$" }, outputs: { definitionUploaded: "definitionUploaded" }, 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<cds-modal valtimoCdsModal [open]=\"modalOpen$ | async\" size=\"sm\" (close)=\"closeModal()\">\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>{{ 'formManagement.upload.modalTitle' | translate }}</h3>\n </cds-modal-header>\n\n <section cdsModalContent [cdsLayer]=\"1\" [formGroup]=\"form\">\n <cds-file-uploader\n [accept]=\"ACCEPTED_FILES\"\n [buttonText]=\"'formManagement.upload.buttonText' | translate\"\n [description]=\"'formManagement.upload.description' | translate\"\n [multiple]=\"false\"\n [title]=\"'formManagement.upload.title' | translate\"\n buttonType=\"primary\"\n formControlName=\"file\"\n >\n </cds-file-uploader>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"secondary\" (click)=\"closeModal()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n cdsButton=\"primary\"\n [disabled]=\"(fileSelected$ | async) === false\"\n (click)=\"uploadFormDefinition()\"\n >\n {{ 'interface.upload' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: ["/*!\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"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i4$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: FileUploaderModule }, { kind: "component", type: i2$1.FileUploader, selector: "cds-file-uploader, ibm-file-uploader", inputs: ["buttonText", "buttonType", "title", "description", "accept", "multiple", "skeleton", "size", "fileItemSize", "drop", "dropText", "fileUploaderId", "files", "disabled"], outputs: ["filesChange"] }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i2$1.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i2$1.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i2$1.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i2$1.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i2$1.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i2$1.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2$1.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
920
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: FormManagementUploadComponent, deps: [{ token: i2.FormBuilder }, { token: i4.GlobalNotificationService }, { token: i5.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
921
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: FormManagementUploadComponent, isStandalone: true, selector: "valtimo-form-management-upload", inputs: { show$: "show$" }, outputs: { definitionUploaded: "definitionUploaded" }, 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<cds-modal valtimoCdsModal [open]=\"modalOpen$ | async\" size=\"sm\" (close)=\"closeModal()\">\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>{{ 'formManagement.upload.modalTitle' | translate }}</h3>\n </cds-modal-header>\n\n <section cdsModalContent [cdsLayer]=\"1\" [formGroup]=\"form\">\n <cds-file-uploader\n [accept]=\"ACCEPTED_FILES\"\n [buttonText]=\"'formManagement.upload.buttonText' | translate\"\n [description]=\"'formManagement.upload.description' | translate\"\n [multiple]=\"false\"\n [title]=\"'formManagement.upload.title' | translate\"\n buttonType=\"primary\"\n formControlName=\"file\"\n >\n </cds-file-uploader>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"secondary\" (click)=\"closeModal()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n cdsButton=\"primary\"\n [disabled]=\"(fileSelected$ | async) === false\"\n (click)=\"uploadFormDefinition()\"\n >\n {{ 'interface.upload' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: ["/*!\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"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i4$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: FileUploaderModule }, { kind: "component", type: i2$1.FileUploader, selector: "cds-file-uploader, ibm-file-uploader", inputs: ["buttonText", "buttonType", "title", "description", "accept", "multiple", "skeleton", "size", "fileItemSize", "drop", "dropText", "fileUploaderId", "files", "disabled"], outputs: ["filesChange"] }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i2$1.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i2$1.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i2$1.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i2$1.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i2$1.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i2$1.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2$1.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
922
922
  }
923
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: FormManagementUploadComponent, decorators: [{
923
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: FormManagementUploadComponent, decorators: [{
924
924
  type: Component,
925
925
  args: [{ selector: 'valtimo-form-management-upload', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
926
926
  CommonModule,
@@ -1296,10 +1296,10 @@ class FormManagementEditComponent {
1296
1296
  }
1297
1297
  });
1298
1298
  }
1299
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: FormManagementEditComponent, deps: [{ token: FormManagementService }, { token: i2$1.ModalService }, { token: i3$1.PageTitleService }, { token: i3.ActivatedRoute }, { token: i3$1.ShellService }, { token: i3$1.PageHeaderService }, { token: i2$1.IconService }, { token: i3.Router }, { token: i5.TranslateService }, { token: i4.GlobalNotificationService }, { token: i3$1.BreadcrumbService }, { token: i4.EnvironmentService }, { token: i4.DraftVersionService }, { token: i3$1.FormIoTagsService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
1300
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: FormManagementEditComponent, isStandalone: true, selector: "valtimo-form-management-edit", outputs: { deleteEvent: "deleteEvent", goBackEvent: "goBackEvent", formModifiedEvent: "formModifiedEvent", formDeletedEvent: "formDeletedEvent", deleteErrorEvent: "deleteErrorEvent", deployErrorEvent: "deployErrorEvent" }, host: { properties: { "class": "this.class" } }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2026 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<ng-container\n *ngIf=\"{\n formDefinition: formDefinition$ | async,\n jsonFormDefinition: jsonFormDefinition$ | async,\n jsonOutput: jsonOutput$ | async,\n compactMode: compactMode$ | async,\n context: context$ | async,\n canUpdateGlobalConfiguration: canUpdateGlobalConfiguration$ | async,\n isDraftVersion: isDraftVersion$ | async,\n } as obs\"\n>\n @if (obs.formDefinition) {\n <ng-container renderInPageHeader [fullWidth]=\"true\">\n <ng-template>\n <ng-container *ngTemplateOutlet=\"actions; context: {obs: obs}\"></ng-container>\n </ng-template>\n </ng-container>\n\n <cds-tabs type=\"contained\">\n <cds-tab [heading]=\"TABS.BUILDER | translate\" (selected)=\"onSelectedTab(TABS.BUILDER)\">\n <valtimo-form-io-builder\n *ngIf=\"(reloading$ | async) === false && activeTab === TABS.BUILDER\"\n [form]=\"obs.formDefinition.formDefinition\"\n (change)=\"formBuilderChanged($event, obs.jsonFormDefinition)\"\n ></valtimo-form-io-builder>\n </cds-tab>\n\n <cds-tab [heading]=\"TABS.EDITOR | translate\" (selected)=\"onSelectedTab(TABS.EDITOR)\">\n @if (activeTab === TABS.EDITOR && obs.jsonFormDefinition) {\n <ng-container\n *ngTemplateOutlet=\"\n jsonEditor;\n context: {\n data: {\n disabled: obs.formDefinition.readOnly || !obs.canUpdateGlobalConfiguration,\n formDefinition: obs.formDefinition,\n model: obs.jsonFormDefinition,\n },\n }\n \"\n ></ng-container>\n }\n </cds-tab>\n\n <cds-tab\n [heading]=\"TABS.OUTPUT | translate\"\n (selected)=\"onSelectedTab(TABS.OUTPUT)\"\n class=\"valtimo-form-management-edit__output\"\n >\n <valtimo-form-io\n *ngIf=\"activeTab === TABS.OUTPUT\"\n [form]=\"obs.formDefinition.formDefinition\"\n (change)=\"onOutputChange($event)\"\n ></valtimo-form-io>\n\n @if (activeTab === TABS.OUTPUT && obs.jsonOutput) {\n <ng-container\n *ngTemplateOutlet=\"\n jsonEditor;\n context: {\n data: {disabled: true, formDefinition: obs.formDefinition, model: obs.jsonOutput},\n }\n \"\n ></ng-container>\n }\n </cds-tab>\n </cds-tabs>\n } @else {\n <cds-loading></cds-loading>\n }\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"interface.deleteConfirmation\"\n cancelButtonTextTranslationKey=\"interface.cancel\"\n [outputOnConfirm]=\"obs.formDefinition\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"dashboardManagement.delete\"\n (confirmEvent)=\"deleteFormDefinition($event)\"\n ></valtimo-confirmation-modal>\n\n <valtimo-form-management-upload\n [show$]=\"showModal$\"\n (definitionUploaded)=\"setFormDefinition($event)\"\n ></valtimo-form-management-upload>\n\n <ng-template #jsonEditor let-data=\"data\">\n <valtimo-editor\n [model]=\"data.model\"\n [disabled]=\"data.disabled\"\n (validEvent)=\"onValidEvent($event, data.disabled)\"\n (valueChangeEvent)=\"onValueChangeEvent($event, data.formDefinition, data.disabled)\"\n [fitPage]=\"true\"\n ></valtimo-editor>\n </ng-template>\n</ng-container>\n\n<ng-template #actions let-obs=\"obs\">\n <div\n class=\"valtimo-form-management-edit__header-container\"\n [ngClass]=\"{\n '--compact': obs.compactMode,\n }\"\n >\n @if (obs.formDefinition.readOnly || !obs.canUpdateGlobalConfiguration || !obs.isDraftVersion) {\n <cds-tag size=\"sm\" type=\"blue\">{{ 'formManagement.readOnly' | translate }}</cds-tag>\n }\n\n <div class=\"valtimo-form-management-edit__header\">\n <v-overflow-menu placement=\"bottom-end\">\n <v-overflow-menu-trigger overflowTrigger></v-overflow-menu-trigger>\n <v-overflow-menu-option (selected)=\"downloadFormDefinition(obs.formDefinition)\">\n {{ 'Download' | translate }}\n </v-overflow-menu-option>\n\n <v-overflow-menu-option\n [disabled]=\"\n obs.formDefinition.readOnly || !obs.canUpdateGlobalConfiguration || !obs.isDraftVersion\n \"\n (selected)=\"showUploadModal()\"\n >\n {{ 'Upload' | translate }}\n </v-overflow-menu-option>\n\n <v-overflow-menu-option\n *ngIf=\"(obs.context === 'case' && obs.isDraftVersion) || obs.context === 'independent'\"\n (selected)=\"showDuplicateModal(obs.formDefinition)\"\n >\n {{ 'formManagement.duplicate' | translate }}\n </v-overflow-menu-option>\n\n <v-overflow-menu-option\n [disabled]=\"\n obs.formDefinition.readOnly || !obs.canUpdateGlobalConfiguration || !obs.isDraftVersion\n \"\n type=\"danger\"\n (selected)=\"delete()\"\n >\n {{ 'interface.delete' | translate }}\n </v-overflow-menu-option>\n </v-overflow-menu>\n\n @if (obs.context === 'case') {\n <button\n cdsButton=\"secondary\"\n [size]=\"obs.compactMode ? 'sm' : 'md'\"\n (click)=\"onGoBackButtonClick()\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"arrow--left\" size=\"16\"></svg>\n\n <span>{{ 'interface.back' | translate }}</span>\n </button>\n }\n\n <button\n *ngIf=\"obs?.canUpdateGlobalConfiguration || obs.context === 'independent'\"\n cdsButton=\"primary\"\n [disabled]=\"obs.formDefinition.readOnly || !obs.isDraftVersion\"\n [size]=\"obs.compactMode ? 'sm' : 'md'\"\n (click)=\"modifyFormDefinition(obs.formDefinition)\"\n [attr.data-test-id]=\"testIds.saveButton\"\n >\n {{ 'interface.save' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"save\" size=\"16\"></svg>\n </button>\n </div>\n </div>\n</ng-template>\n", styles: [".valtimo-form-management-edit__header{display:flex;align-items:center;justify-content:flex-end;gap:16px;margin-left:auto}.valtimo-form-management-edit__case-header{display:flex;width:100%;justify-content:flex-end}.valtimo-form-management-edit__header-container{width:100%;display:flex;justify-content:space-between;align-items:flex-end;padding-bottom:4px}.valtimo-form-management-edit__header-container .cds--tag{margin:0;height:var(--cds-layout-size-height-md)}.valtimo-form-management-edit__header-container.--compact{align-items:flex-start;padding-bottom:0}.valtimo-form-management-edit__output .cds--tab-content{display:grid;grid-template-columns:1fr 1fr}.valtimo-form-management-edit__output .cds--tab-content>*{min-width:100%!important}.valtimo-form-management-edit .formbuilder .btn.formcomponent.drag-copy,.valtimo-form-management-edit .btn.formcomponent.gu-mirror{font-weight:400;background-color:silver;border-color:silver;color:#fff}.valtimo-form-management-edit .formbuilder .btn.formcomponent.drag-copy:hover,.valtimo-form-management-edit .formbuilder .btn.formcomponent.drag-copy:active,.valtimo-form-management-edit .btn.formcomponent.gu-mirror:hover,.valtimo-form-management-edit .btn.formcomponent.gu-mirror:active{box-shadow:none}.valtimo-form-management-edit .formbuilder .btn.formcomponent.drag-copy:active,.valtimo-form-management-edit .btn.formcomponent.gu-mirror:active{background-color:silver;border-color:silver}.valtimo-form-management-edit .formbuilder-header{padding-left:18px;padding-right:18px;font-size:18px;height:80px;border:1px solid #dee2e6;border-bottom:0}.valtimo-form-management-edit .formbuilder-header .formbuilder-title{margin-top:21px;margin-bottom:7px}.valtimo-form-management-edit .formbuilder-header .formbuilder-subtitle{margin-top:0;margin-bottom:12px}.valtimo-form-management-edit .formbuilder{background:#fff;padding:1rem;border:1px solid #dee2e6;margin-right:0!important;margin-left:0!important}.valtimo-form-management-edit .formbuilder .form-builder-panel .builder-group-button[aria-expanded=false],.valtimo-form-management-edit .formbuilder .form-builder-panel .builder-group-button[aria-expanded=\"\"]{color:#a9a9a9}.valtimo-form-management-edit .formbuilder .form-builder-panel .builder-group-button[aria-expanded=true]{color:#000}.valtimo-form-management-edit .formbuilder .drag-and-drop-alert{display:none}.valtimo-form-management-edit .formbuilder .formarea{padding:10px;border:solid 1px silver;background-color:#fff}.valtimo-form-management-edit .increase-size{font-size:1rem}.valtimo-form-management-edit .cds--tab-content{background:#fff!important}\n/*!\n * Copyright 2015-2026 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i4$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ModalModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2$1.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: InputModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: WidgetModule }, { kind: "ngmodule", type: CarbonListModule }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: i2$1.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i2$1.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive", "tabContent", "templateContext"], outputs: ["selected"] }, { kind: "ngmodule", type: EditorModule }, { kind: "component", type: i3$1.EditorComponent, selector: "valtimo-editor", inputs: ["editorOptions", "model", "disabled", "formatOnLoad", "widthPx", "heightPx", "heightStyle", "jsonSchema", "fitPage"], outputs: ["validEvent", "valueChangeEvent"] }, { kind: "ngmodule", type: FormIoModule }, { kind: "component", type: i3$1.FormioComponent, selector: "valtimo-form-io", inputs: ["options", "submission", "form", "readOnly", "errors", "formRefresh$"], outputs: ["submit", "change", "event"] }, { kind: "component", type: i3$1.FormioBuilderComponent, selector: "valtimo-form-io-builder", inputs: ["form"], outputs: ["change"] }, { kind: "directive", type: RenderInPageHeaderDirective, selector: "[renderInPageHeader]", inputs: ["fullWidth"] }, { kind: "component", type: OverflowMenuComponent, selector: "v-overflow-menu", inputs: ["open", "placement", "menuWidth", "offsetX", "offsetY", "closeOnSelect", "useHostAsReference", "portalToBody"], outputs: ["openChange"] }, { kind: "component", type: OverflowMenuOptionComponent, selector: "v-overflow-menu-option", inputs: ["disabled", "type", "testId", "optionId"], outputs: ["selected"] }, { kind: "component", type: OverflowMenuTriggerComponent, selector: "v-overflow-menu-trigger", inputs: ["compact"] }, { kind: "ngmodule", type: TagModule }, { kind: "component", type: i2$1.Tag, selector: "cds-tag, ibm-tag", inputs: ["type", "size", "class", "skeleton"] }, { kind: "ngmodule", type: ConfirmationModalModule }, { kind: "component", type: i3$1.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "showOptionalButton", "optionalButtonText", "optionalButtonTextTranslationKey", "optionalButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm", "outputOnOptional", "spacerAfterCancelButton"], outputs: ["confirmEvent", "optionalEvent", "cancelEvent"] }, { kind: "ngmodule", type: SpinnerModule }, { kind: "component", type: FormManagementUploadComponent, selector: "valtimo-form-management-upload", inputs: ["show$"], outputs: ["definitionUploaded"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i2$1.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: LoadingModule }, { kind: "component", type: i2$1.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }], encapsulation: i0.ViewEncapsulation.None }); }
1299
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: FormManagementEditComponent, deps: [{ token: FormManagementService }, { token: i2$1.ModalService }, { token: i3$1.PageTitleService }, { token: i3.ActivatedRoute }, { token: i3$1.ShellService }, { token: i3$1.PageHeaderService }, { token: i2$1.IconService }, { token: i3.Router }, { token: i5.TranslateService }, { token: i4.GlobalNotificationService }, { token: i3$1.BreadcrumbService }, { token: i4.EnvironmentService }, { token: i4.DraftVersionService }, { token: i3$1.FormIoTagsService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
1300
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: FormManagementEditComponent, isStandalone: true, selector: "valtimo-form-management-edit", outputs: { deleteEvent: "deleteEvent", goBackEvent: "goBackEvent", formModifiedEvent: "formModifiedEvent", formDeletedEvent: "formDeletedEvent", deleteErrorEvent: "deleteErrorEvent", deployErrorEvent: "deployErrorEvent" }, host: { properties: { "class": "this.class" } }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2026 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<ng-container\n *ngIf=\"{\n formDefinition: formDefinition$ | async,\n jsonFormDefinition: jsonFormDefinition$ | async,\n jsonOutput: jsonOutput$ | async,\n compactMode: compactMode$ | async,\n context: context$ | async,\n canUpdateGlobalConfiguration: canUpdateGlobalConfiguration$ | async,\n isDraftVersion: isDraftVersion$ | async,\n } as obs\"\n>\n @if (obs.formDefinition) {\n <ng-container renderInPageHeader [fullWidth]=\"true\">\n <ng-template>\n <ng-container *ngTemplateOutlet=\"actions; context: {obs: obs}\"></ng-container>\n </ng-template>\n </ng-container>\n\n <cds-tabs type=\"contained\">\n <cds-tab [heading]=\"TABS.BUILDER | translate\" (selected)=\"onSelectedTab(TABS.BUILDER)\">\n <valtimo-form-io-builder\n *ngIf=\"(reloading$ | async) === false && activeTab === TABS.BUILDER\"\n [form]=\"obs.formDefinition.formDefinition\"\n (change)=\"formBuilderChanged($event, obs.jsonFormDefinition)\"\n ></valtimo-form-io-builder>\n </cds-tab>\n\n <cds-tab [heading]=\"TABS.EDITOR | translate\" (selected)=\"onSelectedTab(TABS.EDITOR)\">\n @if (activeTab === TABS.EDITOR && obs.jsonFormDefinition) {\n <ng-container\n *ngTemplateOutlet=\"\n jsonEditor;\n context: {\n data: {\n disabled: obs.formDefinition.readOnly || !obs.canUpdateGlobalConfiguration,\n formDefinition: obs.formDefinition,\n model: obs.jsonFormDefinition,\n },\n }\n \"\n ></ng-container>\n }\n </cds-tab>\n\n <cds-tab\n [heading]=\"TABS.OUTPUT | translate\"\n (selected)=\"onSelectedTab(TABS.OUTPUT)\"\n class=\"valtimo-form-management-edit__output\"\n >\n <valtimo-form-io\n *ngIf=\"activeTab === TABS.OUTPUT\"\n [form]=\"obs.formDefinition.formDefinition\"\n (change)=\"onOutputChange($event)\"\n ></valtimo-form-io>\n\n @if (activeTab === TABS.OUTPUT && obs.jsonOutput) {\n <ng-container\n *ngTemplateOutlet=\"\n jsonEditor;\n context: {\n data: {disabled: true, formDefinition: obs.formDefinition, model: obs.jsonOutput},\n }\n \"\n ></ng-container>\n }\n </cds-tab>\n </cds-tabs>\n } @else {\n <cds-loading></cds-loading>\n }\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"interface.deleteConfirmation\"\n cancelButtonTextTranslationKey=\"interface.cancel\"\n [outputOnConfirm]=\"obs.formDefinition\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"dashboardManagement.delete\"\n (confirmEvent)=\"deleteFormDefinition($event)\"\n ></valtimo-confirmation-modal>\n\n <valtimo-form-management-upload\n [show$]=\"showModal$\"\n (definitionUploaded)=\"setFormDefinition($event)\"\n ></valtimo-form-management-upload>\n\n <ng-template #jsonEditor let-data=\"data\">\n <valtimo-editor\n [model]=\"data.model\"\n [disabled]=\"data.disabled\"\n (validEvent)=\"onValidEvent($event, data.disabled)\"\n (valueChangeEvent)=\"onValueChangeEvent($event, data.formDefinition, data.disabled)\"\n [fitPage]=\"true\"\n ></valtimo-editor>\n </ng-template>\n</ng-container>\n\n<ng-template #actions let-obs=\"obs\">\n <div\n class=\"valtimo-form-management-edit__header-container\"\n [ngClass]=\"{\n '--compact': obs.compactMode,\n }\"\n >\n @if (obs.formDefinition.readOnly || !obs.canUpdateGlobalConfiguration || !obs.isDraftVersion) {\n <cds-tag size=\"sm\" type=\"blue\">{{ 'formManagement.readOnly' | translate }}</cds-tag>\n }\n\n <div class=\"valtimo-form-management-edit__header\">\n <v-overflow-menu placement=\"bottom-end\">\n <v-overflow-menu-trigger overflowTrigger></v-overflow-menu-trigger>\n <v-overflow-menu-option (selected)=\"downloadFormDefinition(obs.formDefinition)\">\n {{ 'Download' | translate }}\n </v-overflow-menu-option>\n\n <v-overflow-menu-option\n [disabled]=\"\n obs.formDefinition.readOnly || !obs.canUpdateGlobalConfiguration || !obs.isDraftVersion\n \"\n (selected)=\"showUploadModal()\"\n >\n {{ 'Upload' | translate }}\n </v-overflow-menu-option>\n\n <v-overflow-menu-option\n *ngIf=\"(obs.context === 'case' && obs.isDraftVersion) || obs.context === 'independent'\"\n (selected)=\"showDuplicateModal(obs.formDefinition)\"\n >\n {{ 'formManagement.duplicate' | translate }}\n </v-overflow-menu-option>\n\n <v-overflow-menu-option\n [disabled]=\"\n obs.formDefinition.readOnly || !obs.canUpdateGlobalConfiguration || !obs.isDraftVersion\n \"\n type=\"danger\"\n (selected)=\"delete()\"\n >\n {{ 'interface.delete' | translate }}\n </v-overflow-menu-option>\n </v-overflow-menu>\n\n @if (obs.context === 'case') {\n <button\n cdsButton=\"secondary\"\n [size]=\"obs.compactMode ? 'sm' : 'md'\"\n (click)=\"onGoBackButtonClick()\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"arrow--left\" size=\"16\"></svg>\n\n <span>{{ 'interface.back' | translate }}</span>\n </button>\n }\n\n <button\n *ngIf=\"obs?.canUpdateGlobalConfiguration || obs.context === 'independent'\"\n cdsButton=\"primary\"\n [disabled]=\"obs.formDefinition.readOnly || !obs.isDraftVersion\"\n [size]=\"obs.compactMode ? 'sm' : 'md'\"\n (click)=\"modifyFormDefinition(obs.formDefinition)\"\n [attr.data-test-id]=\"testIds.saveButton\"\n >\n {{ 'interface.save' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"save\" size=\"16\"></svg>\n </button>\n </div>\n </div>\n</ng-template>\n", styles: [".valtimo-form-management-edit__header{display:flex;align-items:center;justify-content:flex-end;gap:16px;margin-left:auto}.valtimo-form-management-edit__case-header{display:flex;width:100%;justify-content:flex-end}.valtimo-form-management-edit__header-container{width:100%;display:flex;justify-content:space-between;align-items:flex-end;padding-bottom:4px}.valtimo-form-management-edit__header-container .cds--tag{margin:0;height:var(--cds-layout-size-height-md)}.valtimo-form-management-edit__header-container.--compact{align-items:flex-start;padding-bottom:0}.valtimo-form-management-edit__output .cds--tab-content{display:grid;grid-template-columns:1fr 1fr}.valtimo-form-management-edit__output .cds--tab-content>*{min-width:100%!important}.valtimo-form-management-edit .formbuilder .btn.formcomponent.drag-copy,.valtimo-form-management-edit .btn.formcomponent.gu-mirror{font-weight:400;background-color:silver;border-color:silver;color:#fff}.valtimo-form-management-edit .formbuilder .btn.formcomponent.drag-copy:hover,.valtimo-form-management-edit .formbuilder .btn.formcomponent.drag-copy:active,.valtimo-form-management-edit .btn.formcomponent.gu-mirror:hover,.valtimo-form-management-edit .btn.formcomponent.gu-mirror:active{box-shadow:none}.valtimo-form-management-edit .formbuilder .btn.formcomponent.drag-copy:active,.valtimo-form-management-edit .btn.formcomponent.gu-mirror:active{background-color:silver;border-color:silver}.valtimo-form-management-edit .formbuilder-header{padding-left:18px;padding-right:18px;font-size:18px;height:80px;border:1px solid #dee2e6;border-bottom:0}.valtimo-form-management-edit .formbuilder-header .formbuilder-title{margin-top:21px;margin-bottom:7px}.valtimo-form-management-edit .formbuilder-header .formbuilder-subtitle{margin-top:0;margin-bottom:12px}.valtimo-form-management-edit .formbuilder{background:#fff;padding:1rem;border:1px solid #dee2e6;margin-right:0!important;margin-left:0!important}.valtimo-form-management-edit .formbuilder .form-builder-panel .builder-group-button[aria-expanded=false],.valtimo-form-management-edit .formbuilder .form-builder-panel .builder-group-button[aria-expanded=\"\"]{color:#a9a9a9}.valtimo-form-management-edit .formbuilder .form-builder-panel .builder-group-button[aria-expanded=true]{color:#000}.valtimo-form-management-edit .formbuilder .drag-and-drop-alert{display:none}.valtimo-form-management-edit .formbuilder .formarea{padding:10px;border:solid 1px silver;background-color:#fff}.valtimo-form-management-edit .increase-size{font-size:1rem}.valtimo-form-management-edit .cds--tab-content{background:#fff!important}\n/*!\n * Copyright 2015-2026 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i4$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ModalModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2$1.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: InputModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: WidgetModule }, { kind: "ngmodule", type: CarbonListModule }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: i2$1.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i2$1.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive", "tabContent", "templateContext"], outputs: ["selected"] }, { kind: "ngmodule", type: EditorModule }, { kind: "component", type: i3$1.EditorComponent, selector: "valtimo-editor", inputs: ["editorOptions", "model", "disabled", "formatOnLoad", "widthPx", "heightPx", "heightStyle", "jsonSchema", "fitPage"], outputs: ["validEvent", "valueChangeEvent"] }, { kind: "ngmodule", type: FormIoModule }, { kind: "component", type: i3$1.FormioComponent, selector: "valtimo-form-io", inputs: ["options", "submission", "form", "readOnly", "errors", "formRefresh$"], outputs: ["submit", "change", "event"] }, { kind: "component", type: i3$1.FormioBuilderComponent, selector: "valtimo-form-io-builder", inputs: ["form"], outputs: ["change"] }, { kind: "directive", type: RenderInPageHeaderDirective, selector: "[renderInPageHeader]", inputs: ["fullWidth"] }, { kind: "component", type: OverflowMenuComponent, selector: "v-overflow-menu", inputs: ["open", "placement", "menuWidth", "offsetX", "offsetY", "closeOnSelect", "useHostAsReference", "portalToBody"], outputs: ["openChange"] }, { kind: "component", type: OverflowMenuOptionComponent, selector: "v-overflow-menu-option", inputs: ["disabled", "type", "testId", "optionId"], outputs: ["selected"] }, { kind: "component", type: OverflowMenuTriggerComponent, selector: "v-overflow-menu-trigger", inputs: ["compact"] }, { kind: "ngmodule", type: TagModule }, { kind: "component", type: i2$1.Tag, selector: "cds-tag, ibm-tag", inputs: ["type", "size", "class", "skeleton"] }, { kind: "ngmodule", type: ConfirmationModalModule }, { kind: "component", type: i3$1.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "showOptionalButton", "optionalButtonText", "optionalButtonTextTranslationKey", "optionalButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm", "outputOnOptional", "spacerAfterCancelButton"], outputs: ["confirmEvent", "optionalEvent", "cancelEvent"] }, { kind: "ngmodule", type: SpinnerModule }, { kind: "component", type: FormManagementUploadComponent, selector: "valtimo-form-management-upload", inputs: ["show$"], outputs: ["definitionUploaded"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i2$1.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: LoadingModule }, { kind: "component", type: i2$1.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }], encapsulation: i0.ViewEncapsulation.None }); }
1301
1301
  }
1302
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: FormManagementEditComponent, decorators: [{
1302
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: FormManagementEditComponent, decorators: [{
1303
1303
  type: Component,
1304
1304
  args: [{ selector: 'valtimo-form-management-edit', encapsulation: ViewEncapsulation.None, standalone: true, imports: [
1305
1305
  CommonModule,
@@ -1410,11 +1410,11 @@ const routes = [
1410
1410
  },
1411
1411
  ];
1412
1412
  class FormManagementRoutingModule {
1413
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: FormManagementRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1414
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.20", ngImport: i0, type: FormManagementRoutingModule, imports: [i3.RouterModule], exports: [RouterModule] }); }
1415
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: FormManagementRoutingModule, imports: [RouterModule.forRoot(routes, RouterUtils.getRouterExtraOptions()), RouterModule] }); }
1413
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: FormManagementRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1414
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.25", ngImport: i0, type: FormManagementRoutingModule, imports: [i3.RouterModule], exports: [RouterModule] }); }
1415
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: FormManagementRoutingModule, imports: [RouterModule.forRoot(routes, RouterUtils.getRouterExtraOptions()), RouterModule] }); }
1416
1416
  }
1417
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: FormManagementRoutingModule, decorators: [{
1417
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: FormManagementRoutingModule, decorators: [{
1418
1418
  type: NgModule,
1419
1419
  args: [{
1420
1420
  imports: [RouterModule.forRoot(routes, RouterUtils.getRouterExtraOptions())],
@@ -1422,11 +1422,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
1422
1422
  }]
1423
1423
  }] });
1424
1424
  class FormManagementModule {
1425
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: FormManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1426
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.20", ngImport: i0, type: FormManagementModule, imports: [FormManagementComponent, FormManagementRoutingModule] }); }
1427
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: FormManagementModule, imports: [FormManagementComponent, FormManagementRoutingModule] }); }
1425
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: FormManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1426
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.25", ngImport: i0, type: FormManagementModule, imports: [FormManagementComponent, FormManagementRoutingModule] }); }
1427
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: FormManagementModule, imports: [FormManagementComponent, FormManagementRoutingModule] }); }
1428
1428
  }
1429
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: FormManagementModule, decorators: [{
1429
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: FormManagementModule, decorators: [{
1430
1430
  type: NgModule,
1431
1431
  args: [{
1432
1432
  imports: [FormManagementComponent, FormManagementRoutingModule],
@@ -1 +1 @@
1
- {"version":3,"file":"valtimo-form-management.mjs","sources":["../../../../projects/valtimo/form-management/src/lib/services/form-management.service.ts","../../../../projects/valtimo/form-management/src/lib/constants/form-management.test-ids.ts","../../../../projects/valtimo/form-management/src/lib/constants/index.ts","../../../../projects/valtimo/form-management/src/lib/utils/form-management.utils.ts","../../../../projects/valtimo/form-management/src/lib/utils/index.ts","../../../../projects/valtimo/form-management/src/lib/validators/no-duplicate-form.validator.ts","../../../../projects/valtimo/form-management/src/lib/services/index.ts","../../../../projects/valtimo/form-management/src/lib/components/form-management-create/form-management-create.component.ts","../../../../projects/valtimo/form-management/src/lib/components/form-management-create/form-management-create.component.html","../../../../projects/valtimo/form-management/src/lib/components/form-management-create/index.ts","../../../../projects/valtimo/form-management/src/lib/components/form-management-list/form-management-list.component.ts","../../../../projects/valtimo/form-management/src/lib/components/form-management-list/form-management-list.component.html","../../../../projects/valtimo/form-management/src/lib/components/form-management-list/index.ts","../../../../projects/valtimo/form-management/src/lib/components/form-management/form-management.component.ts","../../../../projects/valtimo/form-management/src/lib/components/form-management/form-management.component.html","../../../../projects/valtimo/form-management/src/lib/models/form-definition.model.ts","../../../../projects/valtimo/form-management/src/lib/models/form-edit-tabs.enum.ts","../../../../projects/valtimo/form-management/src/lib/models/form-management.model.ts","../../../../projects/valtimo/form-management/src/lib/models/index.ts","../../../../projects/valtimo/form-management/src/lib/components/form-management-duplicate/form-management-duplicate.component.ts","../../../../projects/valtimo/form-management/src/lib/components/form-management-duplicate/form-management-duplicate.component.html","../../../../projects/valtimo/form-management/src/lib/components/form-management-duplicate/index.ts","../../../../projects/valtimo/form-management/src/lib/components/form-management-upload/form-management-upload.component.ts","../../../../projects/valtimo/form-management/src/lib/components/form-management-upload/form-management-upload.component.html","../../../../projects/valtimo/form-management/src/lib/components/form-management-upload/index.ts","../../../../projects/valtimo/form-management/src/lib/components/form-management-edit/form-management-edit.component.ts","../../../../projects/valtimo/form-management/src/lib/components/form-management-edit/form-management-edit.component.html","../../../../projects/valtimo/form-management/src/lib/components/form-management-edit/index.ts","../../../../projects/valtimo/form-management/src/lib/components/index.ts","../../../../projects/valtimo/form-management/src/lib/form-management.module.ts","../../../../projects/valtimo/form-management/src/public-api.ts","../../../../projects/valtimo/form-management/src/valtimo-form-management.ts"],"sourcesContent":["/*\n * Copyright 2015-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\nimport {Injectable} from '@angular/core';\nimport {HttpClient} from '@angular/common/http';\nimport {\n CreateFormDefinitionRequest,\n FormDefinition,\n ModifyFormDefinitionRequest,\n QueryFormsResponse,\n} from '../models';\nimport {Observable, of} from 'rxjs';\nimport {BaseApiService, ConfigService, Page} from '@valtimo/shared';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormManagementService extends BaseApiService {\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public getFormDefinition(formDefinitionId: string): Observable<FormDefinition> {\n return this.httpClient.get<FormDefinition>(\n this.getApiUrl(`/management/v1/form/${formDefinitionId}`)\n );\n }\n\n public getFormDefinitionCase(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string,\n formDefinitionId: string\n ): Observable<FormDefinition> {\n return this.httpClient.get<FormDefinition>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/form/${formDefinitionId}`\n )\n );\n }\n\n public existsFormDefinition(formDefinitionName: string): Observable<boolean> {\n if (!formDefinitionName) return of(false);\n\n return this.httpClient.get<boolean>(\n this.getApiUrl(`/management/v1/form/exists/${formDefinitionName}`)\n );\n }\n\n public existsFormDefinitionCase(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string,\n formDefinitionName: string\n ): Observable<boolean> {\n if (!formDefinitionName || !caseDefinitionKey || !caseDefinitionVersionTag) return of(false);\n\n return this.httpClient.get<boolean>(\n this.getApiUrl(\n `management/v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/form/${formDefinitionName}/exists`\n )\n );\n }\n\n public queryFormDefinitions(params?: any): Observable<QueryFormsResponse> {\n return this.httpClient.get<QueryFormsResponse>(this.getApiUrl(`/management/v1/form`), {\n params,\n });\n }\n\n public queryFormDefinitionsCase(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string,\n params?: any\n ): Observable<QueryFormsResponse> {\n return this.httpClient.get<QueryFormsResponse>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/form`\n ),\n {\n params,\n }\n );\n }\n\n public createFormDefinition(request: CreateFormDefinitionRequest): Observable<FormDefinition> {\n return this.httpClient.post<FormDefinition>(this.getApiUrl(`/management/v1/form`), request);\n }\n\n public createFormDefinitionsCase(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string,\n request: CreateFormDefinitionRequest\n ): Observable<FormDefinition> {\n return this.httpClient.post<FormDefinition>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/form`\n ),\n request\n );\n }\n\n public modifyFormDefinition(request: ModifyFormDefinitionRequest): Observable<FormDefinition> {\n return this.httpClient.put<FormDefinition>(this.getApiUrl(`/management/v1/form`), request);\n }\n\n public modifyFormDefinitionCase(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string,\n request: ModifyFormDefinitionRequest\n ): Observable<FormDefinition> {\n return this.httpClient.put<FormDefinition>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/form`\n ),\n request\n );\n }\n\n public deleteFormDefinition(formDefinitionId: string): Observable<void> {\n return this.httpClient.delete<void>(this.getApiUrl(`/management/v1/form/${formDefinitionId}`));\n }\n\n public deleteFormDefinitionCase(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string,\n formDefinitionId: string\n ): Observable<void> {\n return this.httpClient.delete<void>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/form/${formDefinitionId}`\n )\n );\n }\n\n // Building block form management methods\n\n public getFormDefinitionBuildingBlock(\n buildingBlockDefinitionKey: string,\n buildingBlockDefinitionVersionTag: string,\n formDefinitionId: string\n ): Observable<FormDefinition> {\n return this.httpClient.get<FormDefinition>(\n this.getApiUrl(\n `/management/v1/building-block/${buildingBlockDefinitionKey}/version/${buildingBlockDefinitionVersionTag}/form/${formDefinitionId}`\n )\n );\n }\n\n public existsFormDefinitionBuildingBlock(\n buildingBlockDefinitionKey: string,\n buildingBlockDefinitionVersionTag: string,\n formDefinitionName: string\n ): Observable<boolean> {\n if (!formDefinitionName || !buildingBlockDefinitionKey || !buildingBlockDefinitionVersionTag)\n return of(false);\n\n return this.httpClient.get<boolean>(\n this.getApiUrl(\n `management/v1/building-block/${buildingBlockDefinitionKey}/version/${buildingBlockDefinitionVersionTag}/form/${formDefinitionName}/exists`\n )\n );\n }\n\n public queryFormDefinitionsBuildingBlock(\n buildingBlockDefinitionKey: string,\n buildingBlockDefinitionVersionTag: string,\n params?: any\n ): Observable<Page<FormDefinition>> {\n return this.httpClient.get<Page<FormDefinition>>(\n this.getApiUrl(\n `/management/v1/building-block/${buildingBlockDefinitionKey}/version/${buildingBlockDefinitionVersionTag}/form`\n ),\n {\n params,\n }\n );\n }\n\n public createFormDefinitionsBuildingBlock(\n buildingBlockDefinitionKey: string,\n buildingBlockDefinitionVersionTag: string,\n request: CreateFormDefinitionRequest\n ): Observable<FormDefinition> {\n return this.httpClient.post<FormDefinition>(\n this.getApiUrl(\n `/management/v1/building-block/${buildingBlockDefinitionKey}/version/${buildingBlockDefinitionVersionTag}/form`\n ),\n request\n );\n }\n\n public modifyFormDefinitionBuildingBlock(\n buildingBlockDefinitionKey: string,\n buildingBlockDefinitionVersionTag: string,\n request: ModifyFormDefinitionRequest\n ): Observable<FormDefinition> {\n return this.httpClient.put<FormDefinition>(\n this.getApiUrl(\n `/management/v1/building-block/${buildingBlockDefinitionKey}/version/${buildingBlockDefinitionVersionTag}/form/${request.id}`\n ),\n request\n );\n }\n\n public deleteFormDefinitionBuildingBlock(\n buildingBlockDefinitionKey: string,\n buildingBlockDefinitionVersionTag: string,\n formDefinitionId: string\n ): Observable<void> {\n return this.httpClient.delete<void>(\n this.getApiUrl(\n `/management/v1/building-block/${buildingBlockDefinitionKey}/version/${buildingBlockDefinitionVersionTag}/form/${formDefinitionId}`\n )\n );\n }\n}\n","/*\n * Copyright 2015-2026 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 const FORM_MANAGEMENT_LIST_TEST_IDS = {\n createFormButton: 'formManagementCreateFormButton',\n} as const;\n\nexport const FORM_MANAGEMENT_CREATE_TEST_IDS = {\n nameInput: 'formManagementCreateNameInput',\n submitButton: 'formManagementCreateSubmitButton',\n} as const;\n\nexport const FORM_MANAGEMENT_EDIT_TEST_IDS = {\n saveButton: 'formManagementEditSaveButton',\n} as const;\n","/*\n * Copyright 2015-2026 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-management.test-ids';\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 {ActivatedRoute} from '@angular/router';\nimport {\n getBuildingBlockManagementRouteParams,\n getCaseManagementRouteParams,\n ManagementContext,\n} from '@valtimo/shared';\nimport {combineLatest, Observable, of} from 'rxjs';\nimport {distinctUntilChanged, map, switchMap} from 'rxjs/operators';\nimport {FormManagementParams} from '../models';\n\nfunction getContextObservable(route: ActivatedRoute): Observable<ManagementContext | '' | null> {\n return route.data.pipe(\n map(data => (data && (data['context'] as ManagementContext)) || null),\n distinctUntilChanged()\n );\n}\n\nfunction getFormManagementRouteParamsAndContext(\n route: ActivatedRoute\n): Observable<[ManagementContext | null, FormManagementParams]> {\n const context$ = getContextObservable(route);\n\n return context$.pipe(\n switchMap(context => {\n if (context === 'case') {\n return combineLatest([of(context), getCaseManagementRouteParams(route, true)]).pipe(\n map(\n ([ctx, params]) =>\n [\n ctx,\n {\n caseDefinitionKey: params?.caseDefinitionKey,\n caseDefinitionVersionTag: params?.caseDefinitionVersionTag,\n },\n ] as [ManagementContext, FormManagementParams]\n )\n );\n }\n\n if (context === 'buildingBlock') {\n return combineLatest([of(context), getBuildingBlockManagementRouteParams(route, true)]).pipe(\n map(\n ([ctx, params]) =>\n [\n ctx,\n {\n buildingBlockDefinitionKey: params?.buildingBlockDefinitionKey,\n buildingBlockDefinitionVersionTag: params?.buildingBlockDefinitionVersionTag,\n },\n ] as [ManagementContext, FormManagementParams]\n )\n );\n }\n\n const fallbackParams: FormManagementParams = {};\n return of([context, fallbackParams] as [ManagementContext | null, FormManagementParams]);\n })\n );\n}\n\nexport {getContextObservable, getFormManagementRouteParamsAndContext};\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-management.utils';\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\nimport {FormManagementService} from '../services';\nimport {AbstractControl, AsyncValidatorFn, ValidationErrors} from '@angular/forms';\nimport {ManagementContext} from '@valtimo/shared';\nimport {map, Observable} from 'rxjs';\nimport {FormManagementParams} from '../models';\n\nexport function noDuplicateFormValidator(\n context: ManagementContext | '' | null,\n params: FormManagementParams,\n formManagementService: FormManagementService\n): AsyncValidatorFn {\n return (control: AbstractControl): Observable<ValidationErrors> => {\n let exists$: Observable<boolean>;\n\n switch (context) {\n case 'case':\n exists$ = formManagementService.existsFormDefinitionCase(\n params.caseDefinitionKey!,\n params.caseDefinitionVersionTag!,\n control.value.toString()\n );\n break;\n case 'buildingBlock':\n exists$ = formManagementService.existsFormDefinitionBuildingBlock(\n params.buildingBlockDefinitionKey!,\n params.buildingBlockDefinitionVersionTag!,\n control.value.toString()\n );\n break;\n default:\n exists$ = formManagementService.existsFormDefinition(control.value.toString());\n break;\n }\n\n return exists$.pipe(map((result: boolean) => (result ? {duplicate: true} : null)));\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 './form-management.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 */\n\nimport {CommonModule} from '@angular/common';\nimport {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {FormBuilder, FormControl, FormGroup, ReactiveFormsModule, Validators} from '@angular/forms';\nimport {ActivatedRoute} from '@angular/router';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {ValtimoCdsModalDirective, WidgetModule} from '@valtimo/components';\nimport {getCaseManagementRouteParams} from '@valtimo/shared';\nimport {\n ButtonModule,\n InputModule,\n LayerModule,\n ModalModule,\n TilesModule,\n} from 'carbon-components-angular';\nimport {switchMap, tap} from 'rxjs';\nimport {filter, take} from 'rxjs/operators';\nimport {FORM_MANAGEMENT_CREATE_TEST_IDS} from '../../constants';\nimport {CreateFormDefinitionRequest} from '../../models';\nimport {FormManagementService} from '../../services';\nimport {getContextObservable, getFormManagementRouteParamsAndContext} from '../../utils';\nimport {noDuplicateFormValidator} from '../../validators/no-duplicate-form.validator';\n\n@Component({\n selector: 'valtimo-form-management-create',\n templateUrl: './form-management-create.component.html',\n styleUrls: ['./form-management-create.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n TranslateModule,\n ButtonModule,\n InputModule,\n WidgetModule,\n InputModule,\n TilesModule,\n LayerModule,\n ModalModule,\n ValtimoCdsModalDirective,\n ButtonModule,\n ],\n})\nexport class FormManagementCreateComponent implements OnInit {\n @Input() public readonly upload = false;\n\n @Output() public readonly goBackEvent = new EventEmitter<void>();\n @Output() public readonly afterCreateEvent = new EventEmitter<string>();\n @Output() public readonly afterUploadEvent = new EventEmitter<string>();\n\n public readonly context$ = getContextObservable(this.route);\n\n public readonly caseManagementRouteParams$ = this.context$.pipe(\n filter(context => context === 'case'),\n switchMap(() => getCaseManagementRouteParams(this.route))\n );\n\n public form: FormGroup;\n\n protected readonly testIds = FORM_MANAGEMENT_CREATE_TEST_IDS;\n\n constructor(\n private readonly formManagementService: FormManagementService,\n private readonly formBuilder: FormBuilder,\n private readonly route: ActivatedRoute\n ) {}\n\n public ngOnInit(): void {\n this.initForm();\n }\n\n private initForm(): void {\n getFormManagementRouteParamsAndContext(this.route)\n .pipe(\n take(1),\n tap(([context, params]) => {\n this.form = this.formBuilder.group({\n name: new FormControl('', Validators.required, [\n noDuplicateFormValidator(context, params, this.formManagementService),\n ]),\n });\n })\n )\n .subscribe();\n }\n\n public get formControls(): FormGroup['controls'] {\n return this.form?.controls;\n }\n\n public onBackButtonClick(): void {\n this.goBackEvent.emit();\n }\n\n public reset(): void {\n this.form.setValue({name: ''});\n }\n\n public onCloseEvent(): void {\n this.goBackEvent.emit();\n }\n\n public createFormDefinition(): void {\n const emptyForm = {display: 'form', components: []};\n const request: CreateFormDefinitionRequest = {\n name: this.form.value.name,\n formDefinition: JSON.stringify(emptyForm),\n };\n\n getFormManagementRouteParamsAndContext(this.route)\n .pipe(\n take(1),\n switchMap(([context, params]) => {\n switch (context) {\n case 'case':\n return this.formManagementService.createFormDefinitionsCase(\n params.caseDefinitionKey!,\n params.caseDefinitionVersionTag!,\n request\n );\n case 'buildingBlock':\n return this.formManagementService.createFormDefinitionsBuildingBlock(\n params.buildingBlockDefinitionKey!,\n params.buildingBlockDefinitionVersionTag!,\n request\n );\n default:\n return this.formManagementService.createFormDefinition(request);\n }\n }),\n tap(formDefinition => {\n if (this.upload) {\n this.afterUploadEvent.emit(formDefinition.id);\n } else {\n this.afterCreateEvent.emit(formDefinition.id);\n }\n })\n )\n .subscribe();\n }\n\n public onSubmit(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n return;\n }\n\n this.createFormDefinition();\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<cds-modal\n valtimoCdsModal\n class=\"form-management-create\"\n size=\"sm\"\n [cdsLayer]=\"0\"\n [open]=\"true\"\n (close)=\"onCloseEvent()\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCloseEvent()\">\n <h3 cdsModalHeaderHeading>\n {{ 'formManagement.add' | translate }}\n </h3>\n </cds-modal-header>\n\n <form *ngIf=\"form\" [formGroup]=\"form\" (ngSubmit)=\"onSubmit($event)\">\n <section cdsModalContent [cdsLayer]=\"1\">\n <cds-label\n [invalid]=\"formControls?.name?.touched && formControls?.name?.errors\"\n [invalidText]=\"\n (formControls?.name?.errors?.required && ('formManagement.nameIsRequired' | translate)) ||\n (formControls?.name?.errors?.duplicate && ('formManagement.nameIsInUse' | translate))\n \"\n >\n {{ 'formManagement.name' | translate }}\n\n <input\n cdsText\n type=\"text\"\n id=\"name\"\n formControlName=\"name\"\n [invalid]=\"formControls?.name?.touched && formControls?.name?.errors\"\n required\n [attr.data-test-id]=\"testIds.nameInput\"\n />\n </cds-label>\n </section>\n\n <cds-modal-footer [cdsLayer]=\"1\">\n <button cdsButton=\"secondary\" (click)=\"$event.preventDefault(); onBackButtonClick()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n cdsButton=\"primary\"\n type=\"submit\"\n [disabled]=\"form?.invalid\"\n [attr.data-test-id]=\"testIds.submitButton\"\n >\n {{ 'formManagement.submit' | translate }}\n </button>\n </cds-modal-footer>\n </form>\n</cds-modal>\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-management-create.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 */\n\nimport {CommonModule} from '@angular/common';\nimport {Component, EventEmitter, Output} from '@angular/core';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {ActivatedRoute} from '@angular/router';\nimport {Upload16} from '@carbon/icons';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {\n ActionItem,\n CarbonListModule,\n ColumnConfig,\n ConfirmationModalModule,\n Pagination,\n ViewType,\n} from '@valtimo/components';\nimport {\n DraftVersionService,\n EditPermissionsService,\n EnvironmentService,\n getCaseManagementRouteParams,\n getCaseManagementRouteParamsAndContext,\n GlobalNotificationService,\n} from '@valtimo/shared';\nimport {ButtonModule, IconModule, IconService} from 'carbon-components-angular';\nimport {\n BehaviorSubject,\n combineLatest,\n filter,\n map,\n Observable,\n startWith,\n switchMap,\n take,\n tap,\n} from 'rxjs';\nimport {FORM_MANAGEMENT_LIST_TEST_IDS} from '../../constants';\nimport {FormDefinition} from '../../models';\nimport {FormManagementService} from '../../services';\nimport {getContextObservable} from '../../utils';\n\n@Component({\n selector: 'valtimo-form-management-list',\n templateUrl: './form-management-list.component.html',\n styleUrls: ['./form-management-list.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TranslateModule,\n CarbonListModule,\n IconModule,\n ButtonModule,\n ConfirmationModalModule,\n ],\n})\nexport class FormManagementListComponent {\n @Output() public readonly navigateToCreateEvent = new EventEmitter<void>();\n @Output() public readonly navigateToUploadEvent = new EventEmitter<void>();\n @Output() public readonly navigateToEditEvent = new EventEmitter<string>();\n\n public readonly ACTION_ITEMS: ActionItem[] = [\n {\n callback: this.editFormDefinition.bind(this),\n label: 'interface.edit',\n },\n {callback: this.showDeleteModal.bind(this), label: 'interface.delete', type: 'danger'},\n ];\n\n public readonly showDeleteModal$ = new BehaviorSubject<boolean>(false);\n public readonly formDefinitionToDelete$ = new BehaviorSubject<FormDefinition | null>(null);\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n public readonly searchTerm$ = new BehaviorSubject<string>('');\n\n protected readonly testIds = FORM_MANAGEMENT_LIST_TEST_IDS;\n\n public readonly context$ = getContextObservable(this.route);\n\n public readonly caseManagementRouteParams$ = this.context$.pipe(\n filter(context => context === 'case'),\n switchMap(() => getCaseManagementRouteParams(this.route))\n );\n\n public readonly hasEditPermissions$: Observable<boolean> = combineLatest([\n getCaseManagementRouteParams(this.route),\n this.context$,\n ]).pipe(\n switchMap(([params, context]) =>\n this.editPermissionsService.hasPermissionsToEditBasedOnContext(params, context)\n )\n );\n\n private readonly _collectionSize$ = new BehaviorSubject<number>(0);\n\n private readonly _partialPagination$ = new BehaviorSubject<Partial<Pagination>>({\n page: 1,\n size: 10,\n });\n\n private get _partialPagination(): Partial<Pagination> {\n return this._partialPagination$.getValue();\n }\n\n public pagination$: Observable<Pagination> = combineLatest([\n this._collectionSize$,\n this._partialPagination$,\n ]).pipe(\n map(\n ([collectionSize, partialPagination]) =>\n ({...partialPagination, collectionSize}) as Pagination\n )\n );\n\n public readonly formDefinitions$ = combineLatest([\n this.context$,\n this.caseManagementRouteParams$.pipe(startWith(null)),\n this._partialPagination$,\n this.searchTerm$,\n ]).pipe(\n filter(([context, params]) =>\n context === 'case' ? !!(params?.caseDefinitionVersionTag && params?.caseDefinitionKey) : true\n ),\n switchMap(([context, routeParams, pagination, searchTerm]) => {\n const params = {\n ...pagination,\n page: (pagination?.page ?? 1) - 1,\n ...(searchTerm && {searchTerm}),\n };\n\n switch (context) {\n case 'case':\n return this.formManagementService.queryFormDefinitionsCase(\n routeParams?.caseDefinitionKey ?? '',\n routeParams?.caseDefinitionVersionTag ?? '',\n params\n );\n default:\n case 'independent':\n return this.formManagementService.queryFormDefinitions(params);\n }\n }),\n map((res: any) => {\n this._collectionSize$.next(res?.totalElements);\n\n return res?.content\n ? [...res.content].sort((firstForm, secondForm) =>\n (firstForm.name ?? '').localeCompare(secondForm.name ?? '')\n )\n : [];\n }),\n tap(() => this.loading$.next(false))\n );\n\n public readonly FIELDS: ColumnConfig[] = [\n {key: 'name', label: 'Form name'},\n {key: 'readOnly', label: 'Read-only', viewType: ViewType.BOOLEAN},\n ];\n\n constructor(\n private readonly formManagementService: FormManagementService,\n private readonly iconService: IconService,\n private readonly route: ActivatedRoute,\n private readonly environmentService: EnvironmentService,\n private readonly draftVersionService: DraftVersionService,\n private readonly notificationService: GlobalNotificationService,\n private readonly translateService: TranslateService,\n private readonly editPermissionsService: EditPermissionsService\n ) {\n this.iconService.registerAll([Upload16]);\n }\n\n public navigateToCreateRoute(): void {\n this.navigateToCreateEvent.emit();\n }\n\n public navigateToUploadRoute(): void {\n this.navigateToUploadEvent.emit();\n }\n\n public paginationClicked(page: number): void {\n this.updatePagination({page});\n }\n\n public paginationSet(size: number): void {\n this.updatePagination({size, page: 1});\n }\n\n public editFormDefinition(formDefinition: FormDefinition): void {\n this.navigateToEditEvent.emit(formDefinition.id);\n }\n\n public searchTermEntered(searchTerm: string): void {\n this.searchTerm$.next(searchTerm);\n }\n\n public showDeleteModal(definition: FormDefinition): void {\n this.formDefinitionToDelete$.next(definition);\n this.showDeleteModal$.next(true);\n }\n\n public deleteFormDefinition(definition: FormDefinition): void {\n getCaseManagementRouteParamsAndContext(this.route)\n .pipe(\n take(1),\n switchMap(([context, caseManagementRouteParams]) => {\n switch (context) {\n case 'case':\n return this.formManagementService.deleteFormDefinitionCase(\n caseManagementRouteParams?.caseDefinitionKey,\n caseManagementRouteParams?.caseDefinitionVersionTag,\n definition.id\n );\n\n case 'independent':\n default:\n return this.formManagementService.deleteFormDefinition(definition.id);\n }\n })\n )\n .subscribe({\n next: () => {\n this.notificationService.showToast({\n type: 'success',\n title: this.translateService.instant('formManagement.notifications.deleted'),\n });\n this._partialPagination$.next({...this._partialPagination});\n },\n error: () => {\n this.notificationService.showToast({\n type: 'error',\n title: this.translateService.instant('formManagement.notifications.deletionError'),\n });\n },\n });\n }\n\n private updatePagination(update: Partial<Pagination>): void {\n this._partialPagination$.next({...this._partialPagination, ...update});\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<valtimo-carbon-list\n *ngIf=\"{\n formDefinitions: formDefinitions$ | async,\n pagination: pagination$ | async,\n loading: loading$ | async,\n context: context$ | async,\n hasEditPermissions: hasEditPermissions$ | async,\n } as obs\"\n [showActionItems]=\"obs.hasEditPermissions\"\n [actionItems]=\"ACTION_ITEMS\"\n [fields]=\"FIELDS\"\n [header]=\"false\"\n [isSearchable]=\"true\"\n [items]=\"obs?.formDefinitions || []\"\n [pagination]=\"obs.pagination\"\n [loading]=\"obs.loading\"\n paginationIdentifier=\"formManagementList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"editFormDefinition($event)\"\n (search)=\"searchTermEntered($event)\"\n>\n <ng-container *ngIf=\"obs.hasEditPermissions\" carbonToolbarContent>\n <button cdsButton=\"ghost\" [iconOnly]=\"true\" (click)=\"navigateToUploadRoute()\">\n <svg cdsIcon=\"upload\" size=\"16\"></svg>\n </button>\n\n <ng-container [ngTemplateOutlet]=\"createFormButton\"></ng-container>\n </ng-container>\n\n <valtimo-no-results\n [action]=\"createFormButton\"\n [description]=\"'formManagement.noResults.' + obs.context + 'Description' | translate\"\n [title]=\"'formManagement.noResults.title' | translate\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"interface.deleteConfirmation\"\n cancelButtonTextTranslationKey=\"interface.cancel\"\n [outputOnConfirm]=\"formDefinitionToDelete$ | async\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"dashboardManagement.delete\"\n (confirmEvent)=\"deleteFormDefinition($event)\"\n></valtimo-confirmation-modal>\n\n<ng-template #createFormButton>\n <button\n *ngIf=\"hasEditPermissions$ | async\"\n cdsButton=\"primary\"\n (click)=\"navigateToCreateRoute()\"\n [attr.data-test-id]=\"testIds.createFormButton\"\n >\n {{ 'Create Form' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\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-management-list.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 {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {TranslateService} from '@ngx-translate/core';\nimport {GlobalNotificationService} from '@valtimo/shared';\nimport {ButtonModule} from 'carbon-components-angular';\nimport {BehaviorSubject} from 'rxjs';\nimport {FormManagementCreateComponent} from '../form-management-create';\nimport {FormManagementListComponent} from '../form-management-list';\n\n@Component({\n templateUrl: './form-management.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n ButtonModule,\n FormManagementListComponent,\n FormManagementCreateComponent,\n ],\n})\nexport class FormManagementComponent {\n public readonly create$ = new BehaviorSubject<boolean>(false);\n public readonly upload$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly router: Router,\n private readonly notificationService: GlobalNotificationService,\n private readonly translateService: TranslateService\n ) {}\n\n public onNavigateToCreateEvent(): void {\n this.create$.next(true);\n }\n\n public onGoBackFromCreateEvent(): void {\n this.create$.next(false);\n this.upload$.next(false);\n }\n\n public onFormDefinitionEditEvent(formDefinitionId: string, upload = false): void {\n this.router.navigate([formDefinitionId], {\n relativeTo: this.route,\n queryParams: {...(upload && {upload: true})},\n });\n }\n\n public onFormDefinitionCreateEvent(formDefinitionId: string): void {\n this.resetNotifications();\n\n this.notificationService.showToast({\n type: 'success',\n title: this.translateService.instant('formManagement.notifications.created'),\n });\n\n this.onFormDefinitionEditEvent(formDefinitionId);\n }\n\n public onFormDefinitionUploadEvent(formDefinitionId: string): void {\n this.resetNotifications();\n\n this.notificationService.showToast({\n type: 'success',\n title: this.translateService.instant('formManagement.notifications.created'),\n });\n\n this.onFormDefinitionEditEvent(formDefinitionId, true);\n }\n\n public onNavigateToUploadEvent(): void {\n this.create$.next(true);\n this.upload$.next(true);\n }\n\n private resetNotifications(): void {\n this.notificationService\n ?.getNotificationRefs()\n .forEach(ref => this.notificationService.close(ref));\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<ng-container\n *ngIf=\"{\n create: create$ | async,\n upload: upload$ | async,\n } as obs\"\n>\n <valtimo-form-management-list\n (navigateToCreateEvent)=\"onNavigateToCreateEvent()\"\n (navigateToUploadEvent)=\"onNavigateToUploadEvent()\"\n (navigateToEditEvent)=\"onFormDefinitionEditEvent($event)\"\n ></valtimo-form-management-list>\n\n <valtimo-form-management-create\n *ngIf=\"obs.create\"\n [upload]=\"obs.upload\"\n (goBackEvent)=\"onGoBackFromCreateEvent()\"\n (afterCreateEvent)=\"onFormDefinitionCreateEvent($event)\"\n (afterUploadEvent)=\"onFormDefinitionUploadEvent($event)\"\n ></valtimo-form-management-create>\n</ng-container>\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\nimport {FormioForm} from '@formio/angular';\n\nexport function compareFormDefinitions(fd1: FormDefinition, fd2: FormDefinition) {\n if (fd1 === null && fd2 === null) {\n return true;\n }\n if (fd1 === null || fd2 === null) {\n return false;\n }\n return fd1.id === fd2.id;\n}\n\nexport interface FormDefinition {\n id: string;\n name: string;\n formDefinition: FormioForm;\n readOnly: boolean;\n}\n\nexport interface CreateFormDefinitionRequest {\n name: string;\n formDefinition: string;\n}\n\nexport interface ModifyFormDefinitionRequest {\n id: string;\n name: string;\n formDefinition: string;\n}\n\nexport interface QueryFormsResponse {\n content: {readonly: boolean; id: string; formDefinition: FormioForm}[];\n first: boolean;\n last: boolean;\n totalPages: number;\n totalElements: number;\n numberOfElements: number;\n size: number;\n number: number;\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 enum EDIT_TABS {\n BUILDER = 'formManagement.tabs.formBuilder',\n EDITOR = 'formManagement.tabs.jsonEditor',\n OUTPUT = 'formManagement.tabs.output',\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\nimport {ManagementContext} from '@valtimo/shared';\n\ninterface FormManagementParams {\n caseDefinitionKey?: string;\n caseDefinitionVersionTag?: string;\n buildingBlockDefinitionKey?: string;\n buildingBlockDefinitionVersionTag?: string;\n}\n\ninterface FormManagementRouteData {\n [key: string]: any;\n context: ManagementContext;\n}\n\nexport {FormManagementParams, FormManagementRouteData};\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-definition.model';\nexport * from './form-edit-tabs.enum';\nexport * from './form-management.model';\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\nimport {Component, Inject, OnInit} from '@angular/core';\nimport {FormControl, FormGroup, FormsModule, ReactiveFormsModule, Validators} from '@angular/forms';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {take} from 'rxjs/operators';\nimport {\n BaseModal,\n ButtonModule,\n InputModule,\n LayerModule,\n ModalModule,\n ModalService,\n} from 'carbon-components-angular';\nimport {CreateFormDefinitionRequest, FormDefinition, FormManagementParams} from '../../models';\nimport {FormManagementService} from '../../services';\nimport {noDuplicateFormValidator} from '../../validators/no-duplicate-form.validator';\nimport {CommonModule} from '@angular/common';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {ValtimoCdsModalDirective} from '@valtimo/components';\nimport {GlobalNotificationService, ManagementContext} from '@valtimo/shared';\n\n@Component({\n selector: 'valtimo-form-management-duplicate-modal',\n templateUrl: './form-management-duplicate.component.html',\n styleUrls: ['./form-management-duplicate.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n ModalModule,\n ButtonModule,\n InputModule,\n ReactiveFormsModule,\n FormsModule,\n LayerModule,\n ValtimoCdsModalDirective,\n ],\n})\nexport class FormManagementDuplicateComponent extends BaseModal implements OnInit {\n public duplicateForm!: FormGroup;\n\n public get duplicateFormName(): FormControl {\n return this.duplicateForm.controls['duplicateFormName'] as FormControl;\n }\n\n public getDefaultName(): string {\n return this.formToDuplicate.name + '-duplicate';\n }\n\n constructor(\n @Inject('formToDuplicate') public readonly formToDuplicate: FormDefinition,\n @Inject('context') public readonly context: ManagementContext,\n @Inject('params') public readonly params: FormManagementParams,\n protected modalService: ModalService,\n protected formManagementService: FormManagementService,\n protected route: ActivatedRoute,\n private router: Router,\n private readonly notificationService: GlobalNotificationService,\n private readonly translateService: TranslateService\n ) {\n super();\n }\n\n public ngOnInit(): void {\n this.initForm();\n }\n\n private initForm(): void {\n this.duplicateForm = new FormGroup({\n duplicateFormName: new FormControl(\n this.getDefaultName(),\n Validators.compose([Validators.required]),\n [noDuplicateFormValidator(this.context, this.params, this.formManagementService)]\n ),\n });\n this.duplicateForm.markAllAsTouched();\n }\n\n public duplicate(): void {\n const control = this.duplicateFormName;\n this.formToDuplicate.name = this.duplicateForm.controls['duplicateFormName'].value;\n const request: CreateFormDefinitionRequest = {\n name: control.value.toString(),\n formDefinition: JSON.stringify(this.formToDuplicate.formDefinition),\n };\n\n let create$;\n switch (this.context) {\n case 'case':\n create$ = this.formManagementService.createFormDefinitionsCase(\n this.params.caseDefinitionKey!,\n this.params.caseDefinitionVersionTag!,\n request\n );\n break;\n case 'buildingBlock':\n create$ = this.formManagementService.createFormDefinitionsBuildingBlock(\n this.params.buildingBlockDefinitionKey!,\n this.params.buildingBlockDefinitionVersionTag!,\n request\n );\n break;\n default:\n create$ = this.formManagementService.createFormDefinition(request);\n break;\n }\n\n create$.pipe(take(1)).subscribe({\n next: formDefinition => {\n this.navigateWithNewId(formDefinition.id).then(() => {\n this.closeModal();\n this.notificationService.showToast({\n type: 'success',\n title: this.translateService.instant('formManagement.notifications.duplicated'),\n });\n });\n },\n error: err => {\n if (err.toString().includes('Duplicate name')) {\n control.setErrors({duplicate: true});\n } else {\n control.setErrors({incorrect: true});\n }\n },\n });\n }\n\n private async navigateWithNewId(newId: string): Promise<boolean> {\n const currentUrl = this.router.url.split('?')[0];\n const segments = currentUrl.split('/');\n\n const formIdIndex = segments.findIndex(segment => segment.match(/^[a-f0-9-]{36}$/));\n\n if (formIdIndex !== -1) {\n segments[formIdIndex] = newId;\n }\n\n const updatedUrl = segments.join('/');\n const queryParams = {...this.route.snapshot.queryParams};\n\n try {\n return await this.router.navigate([updatedUrl], {queryParams});\n } catch (error) {\n return false;\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\n<cds-modal\n valtimoCdsModal\n class=\"form-management-create\"\n size=\"sm\"\n [cdsLayer]=\"0\"\n [open]=\"true\"\n (close)=\"closeModal()\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'formManagement.duplicate' | translate }}\n </h3>\n </cds-modal-header>\n\n <form [formGroup]=\"duplicateForm\">\n <section cdsModalContent [cdsLayer]=\"1\">\n <cds-label\n [invalid]=\"duplicateFormName?.touched && duplicateFormName?.errors\"\n [invalidText]=\"\n (duplicateFormName?.errors?.required && ('formManagement.nameIsRequired' | translate)) ||\n (duplicateFormName?.errors?.duplicate && ('formManagement.nameIsInUse' | translate)) ||\n 'Error'\n \"\n >\n {{ 'formManagement.name' | translate }}\n\n <input\n cdsText\n type=\"text\"\n id=\"duplicateFormName\"\n formControlName=\"duplicateFormName\"\n [invalid]=\"duplicateFormName?.touched && duplicateFormName?.errors\"\n required\n />\n </cds-label>\n </section>\n\n <cds-modal-footer [cdsLayer]=\"1\">\n <cds-modal-footer>\n <button cdsButton=\"secondary\" (click)=\"closeModal()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button [disabled]=\"duplicateForm.invalid\" cdsButton=\"primary\" (click)=\"duplicate()\">\n {{ 'formManagement.submit' | translate }}\n </button>\n </cds-modal-footer>\n </cds-modal-footer>\n </form>\n</cds-modal>\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-management-duplicate.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 {CommonModule} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport {FormBuilder, ReactiveFormsModule, Validators} from '@angular/forms';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {CARBON_CONSTANTS} from '@valtimo/components';\nimport {GlobalNotificationService} from '@valtimo/shared';\nimport {\n ButtonModule,\n FileUploaderModule,\n LayerModule,\n ModalModule,\n} from 'carbon-components-angular';\nimport {BehaviorSubject, map, Observable, startWith, Subscription} from 'rxjs';\n\n@Component({\n selector: 'valtimo-form-management-upload',\n templateUrl: './form-management-upload.component.html',\n styleUrls: ['./form-management-upload.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n FileUploaderModule,\n ModalModule,\n LayerModule,\n ReactiveFormsModule,\n ButtonModule,\n ],\n})\nexport class FormManagementUploadComponent implements OnInit, OnDestroy {\n @Input() public readonly show$: Observable<boolean>;\n\n @Output() public readonly definitionUploaded: EventEmitter<any> = new EventEmitter();\n\n public readonly modalOpen$ = new BehaviorSubject<boolean>(false);\n\n public readonly ACCEPTED_FILES: string[] = ['json'];\n\n public readonly form = this.formBuilder.group({\n file: this.formBuilder.control(new Set<any>(), [Validators.required]),\n });\n\n public readonly fileSelected$ = this.form.get('file')?.valueChanges.pipe(\n startWith(null),\n map(value => !!(value instanceof Set && value.size > 0))\n );\n\n private readonly _subscriptions = new Subscription();\n\n constructor(\n private readonly formBuilder: FormBuilder,\n private readonly notificationService: GlobalNotificationService,\n private readonly translateService: TranslateService\n ) {}\n\n public ngOnInit(): void {\n this._subscriptions.add(\n this.show$.subscribe(show => {\n this.modalOpen$.next(show);\n })\n );\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public closeModal(): void {\n this.modalOpen$.next(false);\n\n setTimeout(() => {\n this.form.reset();\n }, CARBON_CONSTANTS.modalAnimationMs);\n }\n\n public async uploadFormDefinition(): Promise<void> {\n const formioDefinition: File = this.form.value?.file?.values()?.next()?.value?.file;\n const formioDefinitionString = await formioDefinition.text();\n\n if (!formioDefinitionString) return;\n\n this.notificationService.showNotification({\n type: 'success',\n title: this.translateService.instant('formManagement.upload.success'),\n });\n\n this.definitionUploaded.emit(formioDefinitionString);\n\n this.modalOpen$.next(false);\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<cds-modal valtimoCdsModal [open]=\"modalOpen$ | async\" size=\"sm\" (close)=\"closeModal()\">\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>{{ 'formManagement.upload.modalTitle' | translate }}</h3>\n </cds-modal-header>\n\n <section cdsModalContent [cdsLayer]=\"1\" [formGroup]=\"form\">\n <cds-file-uploader\n [accept]=\"ACCEPTED_FILES\"\n [buttonText]=\"'formManagement.upload.buttonText' | translate\"\n [description]=\"'formManagement.upload.description' | translate\"\n [multiple]=\"false\"\n [title]=\"'formManagement.upload.title' | translate\"\n buttonType=\"primary\"\n formControlName=\"file\"\n >\n </cds-file-uploader>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"secondary\" (click)=\"closeModal()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n cdsButton=\"primary\"\n [disabled]=\"(fileSelected$ | async) === false\"\n (click)=\"uploadFormDefinition()\"\n >\n {{ 'interface.upload' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\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-management-upload.component';\n","/*\n * Copyright 2015-2026 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 {CommonModule} from '@angular/common';\nimport {\n Component,\n EventEmitter,\n HostBinding,\n Injector,\n OnDestroy,\n OnInit,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {ArrowLeft16} from '@carbon/icons';\nimport {FormioForm} from '@formio/angular';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {\n BreadcrumbService,\n CarbonListModule,\n ConfirmationModalModule,\n EditorModel,\n EditorModule,\n FormIoModule,\n FormIoTagsService,\n OverflowMenuComponent,\n OverflowMenuOptionComponent,\n OverflowMenuTriggerComponent,\n PageHeaderService,\n PageTitleService,\n RenderInPageHeaderDirective,\n ShellService,\n SpinnerModule,\n WidgetModule,\n} from '@valtimo/components';\nimport {\n DraftVersionService,\n EnvironmentService,\n getCaseManagementRouteParams,\n GlobalNotificationService,\n} from '@valtimo/shared';\nimport {\n ButtonModule,\n IconModule,\n IconService,\n InputModule,\n LoadingModule,\n ModalModule,\n ModalService,\n TabsModule,\n TagModule,\n} from 'carbon-components-angular';\nimport {BehaviorSubject, combineLatest, map, Observable, of, Subscription} from 'rxjs';\nimport {distinctUntilChanged, filter, switchMap, take, tap} from 'rxjs/operators';\nimport {FORM_MANAGEMENT_EDIT_TEST_IDS} from '../../constants';\nimport {EDIT_TABS, FormDefinition, ModifyFormDefinitionRequest} from '../../models';\nimport {FormManagementService} from '../../services';\nimport {getContextObservable, getFormManagementRouteParamsAndContext} from '../../utils';\nimport {FormManagementDuplicateComponent} from '../form-management-duplicate';\nimport {FormManagementUploadComponent} from '../form-management-upload';\n\n@Component({\n selector: 'valtimo-form-management-edit',\n templateUrl: './form-management-edit.component.html',\n styleUrls: ['./form-management-edit.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n ModalModule,\n ButtonModule,\n InputModule,\n ReactiveFormsModule,\n FormsModule,\n WidgetModule,\n CarbonListModule,\n TabsModule,\n EditorModule,\n FormIoModule,\n RenderInPageHeaderDirective,\n OverflowMenuComponent,\n OverflowMenuOptionComponent,\n OverflowMenuTriggerComponent,\n TagModule,\n ConfirmationModalModule,\n SpinnerModule,\n FormManagementUploadComponent,\n IconModule,\n SpinnerModule,\n LoadingModule,\n ],\n})\nexport class FormManagementEditComponent implements OnInit, OnDestroy {\n @HostBinding('class') public readonly class = 'valtimo-form-management-edit';\n\n @Output() public readonly deleteEvent = new EventEmitter<void>();\n @Output() public readonly goBackEvent = new EventEmitter<void>();\n @Output() public readonly formModifiedEvent = new EventEmitter<void>();\n @Output() public readonly formDeletedEvent = new EventEmitter<void>();\n @Output() public readonly deleteErrorEvent = new EventEmitter<boolean>();\n @Output() public readonly deployErrorEvent = new EventEmitter<boolean>();\n\n public modifiedFormDefinition: FormioForm | null = null;\n public validJsonChange: boolean | null = null;\n\n public readonly TABS = EDIT_TABS;\n\n public activeTab = EDIT_TABS.BUILDER;\n\n protected readonly testIds = FORM_MANAGEMENT_EDIT_TEST_IDS;\n\n public readonly editParam$: Observable<string | null> = this.route.paramMap.pipe(\n map(params => (params.has('formDefinitionId') ? params.get('formDefinitionId') : null))\n );\n\n public readonly context$ = getContextObservable(this.route);\n\n public readonly caseManagementRouteParams$ = this.context$.pipe(\n filter(context => context === 'case'),\n switchMap(() => getCaseManagementRouteParams(this.route))\n );\n\n private readonly _formDefinition$ = new BehaviorSubject<FormDefinition | null>(null);\n\n public readonly canUpdateGlobalConfiguration$ =\n this.environmentService.canUpdateGlobalConfiguration();\n\n public readonly isDraftVersion$: Observable<boolean> = getFormManagementRouteParamsAndContext(\n this.route\n ).pipe(\n switchMap(([context, params]) => {\n if (context === 'case') {\n return this.draftVersionService.isDraftVersion(\n params?.caseDefinitionKey,\n params?.caseDefinitionVersionTag\n );\n }\n if (context === 'buildingBlock') {\n return this.draftVersionService.isDraftVersionBuildingBlock(\n params?.buildingBlockDefinitionKey,\n params?.buildingBlockDefinitionVersionTag\n );\n }\n return of(true); // Independent forms are always editable\n })\n );\n\n private get _formDefinition(): FormDefinition {\n return this._formDefinition$.getValue();\n }\n\n public readonly formDefinition$ = this._formDefinition$.pipe(\n filter((definition: FormDefinition | null) => !!definition),\n distinctUntilChanged(\n (prevFormDefinition, currFormDefinition) =>\n JSON.stringify(prevFormDefinition?.formDefinition?.components) ===\n JSON.stringify(currFormDefinition?.formDefinition?.components)\n ),\n tap(() => {\n if (!this._editorInitialized) {\n this._editorInitialized = true;\n return;\n }\n })\n );\n\n public readonly jsonFormDefinition$ = new BehaviorSubject<EditorModel | null>(null);\n public readonly jsonOutput$ = new BehaviorSubject<EditorModel | null>(null);\n public readonly reloading$ = new BehaviorSubject<boolean>(false);\n public readonly showDeleteModal$ = new BehaviorSubject<boolean>(false);\n public readonly showModal$ = new BehaviorSubject<boolean>(false);\n public readonly compactMode$ = this.pageHeaderService.compactMode$;\n\n private _activeOuput: string;\n private _alertSub: Subscription = Subscription.EMPTY;\n private _changeActive = false;\n private _editorInitialized = false;\n\n constructor(\n private readonly formManagementService: FormManagementService,\n private readonly modalService: ModalService,\n private readonly pageTitleService: PageTitleService,\n private readonly route: ActivatedRoute,\n private readonly shellService: ShellService,\n private readonly pageHeaderService: PageHeaderService,\n private readonly iconService: IconService,\n private readonly router: Router,\n private readonly translateService: TranslateService,\n private readonly notificationService: GlobalNotificationService,\n private readonly breadcrumbService: BreadcrumbService,\n private readonly environmentService: EnvironmentService,\n private readonly draftVersionService: DraftVersionService,\n private readonly formIoTagsService: FormIoTagsService,\n private readonly injector: Injector\n ) {\n this.iconService.registerAll([ArrowLeft16]);\n this.formIoTagsService.reregisterTags(this.injector);\n }\n\n public ngOnInit(): void {\n this.loadFormDefinition().subscribe();\n this.checkToOpenUploadModal();\n this.pageTitleService.disableReset();\n this.initBreadcrumbs();\n }\n\n public ngOnDestroy(): void {\n this._alertSub.unsubscribe();\n this.pageTitleService.enableReset();\n this.pageTitleService.clearPageActionsViewContainerRef();\n this.breadcrumbService.clearThirdBreadcrumb();\n this.breadcrumbService.clearFourthBreadcrumb();\n }\n\n public formBuilderChanged(event, definition: EditorModel): void {\n if (event.type === 'updateComponent') {\n return;\n }\n this._changeActive = true;\n this.modifiedFormDefinition = event.form;\n this._formDefinition$.next({...this._formDefinition, formDefinition: event.form});\n this.jsonFormDefinition$.next({...definition, value: JSON.stringify(event.form), language: 'json'});\n this._changeActive = false;\n }\n\n public delete(): void {\n this.showDeleteModal$.next(true);\n }\n\n public deleteFormDefinition(definition: FormDefinition): void {\n getFormManagementRouteParamsAndContext(this.route)\n .pipe(\n switchMap(([context, params]) => {\n switch (context) {\n case 'case':\n return this.formManagementService.deleteFormDefinitionCase(\n params?.caseDefinitionKey!,\n params?.caseDefinitionVersionTag!,\n definition.id\n );\n case 'buildingBlock':\n return this.formManagementService.deleteFormDefinitionBuildingBlock(\n params?.buildingBlockDefinitionKey!,\n params?.buildingBlockDefinitionVersionTag!,\n definition.id\n );\n default:\n return this.formManagementService.deleteFormDefinition(definition.id);\n }\n })\n )\n .subscribe({\n next: () => {\n this.notificationService.showToast({\n type: 'success',\n title: this.translateService.instant('formManagement.notifications.deleted'),\n });\n this.navigateBack();\n },\n error: () => {\n this.notificationService.showToast({\n type: 'error',\n title: this.translateService.instant('formManagement.notifications.deletionError'),\n });\n },\n });\n }\n\n public onGoBackButtonClick(): void {\n this.navigateBack();\n }\n\n public modifyFormDefinition(definition: FormDefinition): void {\n combineLatest([this.pageTitleService.customPageTitle$, this.editParam$])\n .pipe(take(1))\n .subscribe(([customPageTitle, formDefinitionId]) => {\n if (!customPageTitle || !formDefinitionId) return;\n\n const form = JSON.stringify(\n this.modifiedFormDefinition !== null\n ? this.modifiedFormDefinition\n : definition.formDefinition\n );\n\n const request: ModifyFormDefinitionRequest = {\n id: formDefinitionId,\n name: customPageTitle,\n formDefinition: form,\n };\n\n getFormManagementRouteParamsAndContext(this.route)\n .pipe(\n switchMap(([context, params]) => {\n switch (context) {\n case 'case':\n return this.formManagementService.modifyFormDefinitionCase(\n params.caseDefinitionKey!,\n params.caseDefinitionVersionTag!,\n request\n );\n case 'buildingBlock':\n return this.formManagementService.modifyFormDefinitionBuildingBlock(\n params.buildingBlockDefinitionKey!,\n params.buildingBlockDefinitionVersionTag!,\n request\n );\n default:\n return this.formManagementService.modifyFormDefinition(request);\n }\n })\n )\n .subscribe({\n next: () => {\n this.notificationService.showToast({\n type: 'success',\n title: this.translateService.instant('formManagement.notifications.deployed'),\n });\n\n this.navigateBack();\n },\n error: () => {\n this.notificationService.showToast({\n type: 'error',\n title: this.translateService.instant(\n 'formManagement.notifications.deploymentError'\n ),\n });\n },\n });\n });\n }\n\n private loadFormDefinition(setDefinition = true): Observable<FormDefinition> {\n return getFormManagementRouteParamsAndContext(this.route).pipe(\n switchMap(([context, params]) => combineLatest([of(context), of(params), this.editParam$])),\n switchMap(([context, params, formDefinitionId]) => {\n if (!formDefinitionId) return of(null);\n\n switch (context) {\n case 'case':\n return this.formManagementService.getFormDefinitionCase(\n params.caseDefinitionKey!,\n params.caseDefinitionVersionTag!,\n formDefinitionId\n );\n case 'buildingBlock':\n return this.formManagementService.getFormDefinitionBuildingBlock(\n params.buildingBlockDefinitionKey!,\n params.buildingBlockDefinitionVersionTag!,\n formDefinitionId\n );\n default:\n return this.formManagementService.getFormDefinition(formDefinitionId);\n }\n }),\n tap((definition: FormDefinition | null) => {\n if (!definition) return;\n\n if (setDefinition) this._formDefinition$.next(definition);\n if (setDefinition)\n this.jsonFormDefinition$.next({\n value: JSON.stringify(definition.formDefinition),\n language: 'json',\n });\n this.pageTitleService.setCustomPageTitle(definition.name);\n })\n );\n }\n\n public downloadFormDefinition(definition: FormDefinition): void {\n const file = new Blob([JSON.stringify(definition.formDefinition)], {\n type: 'text/json',\n });\n const link = document.createElement('a');\n link.download = `form_${definition.name}.json`;\n link.href = window.URL.createObjectURL(file);\n link.click();\n window.URL.revokeObjectURL(link.href);\n link.remove();\n }\n\n public onSelectedTab(tab: EDIT_TABS): void {\n this.activeTab = tab;\n this.formIoTagsService.reregisterTags(this.injector);\n\n if (tab === EDIT_TABS.BUILDER) {\n return;\n }\n\n setTimeout(() => {\n this.shellService.onMainContentResize();\n });\n }\n\n public onOutputChange(event: {data: object | undefined}): void {\n this.reloading$.next(false);\n\n if (!event.data) {\n return;\n } else if (JSON.stringify(event.data) === this._activeOuput) {\n return;\n }\n\n this._activeOuput = JSON.stringify(event.data);\n this.jsonOutput$.next({value: this._activeOuput, language: 'json'});\n }\n\n public onValueChangeEvent(value: string, definition: FormDefinition, disabled: boolean): void {\n if (this._changeActive || this.validJsonChange === false || disabled) {\n return;\n }\n\n const parsedDefinition = JSON.parse(value);\n\n this.modifiedFormDefinition = parsedDefinition;\n\n this._formDefinition$.next({\n ...definition,\n formDefinition: parsedDefinition,\n });\n }\n\n public onValidEvent(value: boolean, disabled: boolean): void {\n if (this._changeActive || disabled) {\n return;\n }\n\n this.validJsonChange = value;\n }\n\n public showUploadModal(): void {\n this.showModal$.next(true);\n }\n\n public showDuplicateModal(definition: FormDefinition): void {\n getFormManagementRouteParamsAndContext(this.route)\n .pipe(take(1))\n .subscribe(([context, params]) => {\n this.modalService.create({\n component: FormManagementDuplicateComponent,\n inputs: {\n formToDuplicate: definition,\n context,\n params,\n },\n });\n });\n }\n\n public setFormDefinition(formDefinition: any): void {\n this.reloading$.next(true);\n\n const definition = JSON.parse(formDefinition);\n if (!definition?.components) {\n this.reloading$.next(false);\n return;\n }\n\n const components = definition.components;\n const currentDefinition = this.modifiedFormDefinition || definition.formDefinition;\n const newDefinition = {...currentDefinition, ...(components && {components})};\n\n this.modifiedFormDefinition = newDefinition;\n definition.formDefinition = newDefinition;\n this._formDefinition$.next(definition);\n\n this.jsonFormDefinition$.next({\n value: JSON.stringify(newDefinition),\n language: 'json',\n });\n\n this.loadFormDefinition(false).subscribe(() => this.reloading$.next(false));\n }\n\n protected onConfirmRedirect(): void {\n const cancelButton: HTMLElement | null = document.querySelector('button[ref=\"cancelButton\"]');\n if (!cancelButton) {\n return;\n }\n\n cancelButton.click();\n }\n\n private checkToOpenUploadModal(): void {\n this.route.queryParams.pipe(take(1)).subscribe(params => {\n if (params?.upload === 'true') {\n this.showUploadModal();\n }\n });\n }\n\n private navigateBack(): void {\n this.router.navigate(['../'], {relativeTo: this.route});\n }\n\n private initBreadcrumbs(): void {\n getFormManagementRouteParamsAndContext(this.route)\n .pipe(take(1))\n .subscribe(([context, params]) => {\n if (context === 'independent' || !context) return;\n\n if (context === 'case') {\n const route = `/case-management/case/${params.caseDefinitionKey}/version/${params.caseDefinitionVersionTag}`;\n\n this.breadcrumbService.setThirdBreadcrumb({\n route: [route],\n content: `${params.caseDefinitionKey} (${params.caseDefinitionVersionTag})`,\n href: route,\n });\n\n const routeWithForms = `${route}/forms`;\n\n this.breadcrumbService.setFourthBreadcrumb({\n route: [routeWithForms],\n content: this.translateService.instant('caseManagement.tabs.forms'),\n href: routeWithForms,\n });\n } else if (context === 'buildingBlock') {\n const route = `/building-block-management/building-block/${params.buildingBlockDefinitionKey}/version/${params.buildingBlockDefinitionVersionTag}`;\n const generalRoute = `${route}/general`;\n\n this.breadcrumbService.setThirdBreadcrumb({\n route: [generalRoute],\n content: `${params.buildingBlockDefinitionKey} (${params.buildingBlockDefinitionVersionTag})`,\n href: generalRoute,\n });\n\n const routeWithForms = `${route}/forms`;\n\n this.breadcrumbService.setFourthBreadcrumb({\n route: [`${route}/forms`],\n content: this.translateService.instant('buildingBlockManagement.tabs.forms'),\n href: routeWithForms,\n });\n }\n });\n }\n}\n","<!--\n ~ Copyright 2015-2026 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<ng-container\n *ngIf=\"{\n formDefinition: formDefinition$ | async,\n jsonFormDefinition: jsonFormDefinition$ | async,\n jsonOutput: jsonOutput$ | async,\n compactMode: compactMode$ | async,\n context: context$ | async,\n canUpdateGlobalConfiguration: canUpdateGlobalConfiguration$ | async,\n isDraftVersion: isDraftVersion$ | async,\n } as obs\"\n>\n @if (obs.formDefinition) {\n <ng-container renderInPageHeader [fullWidth]=\"true\">\n <ng-template>\n <ng-container *ngTemplateOutlet=\"actions; context: {obs: obs}\"></ng-container>\n </ng-template>\n </ng-container>\n\n <cds-tabs type=\"contained\">\n <cds-tab [heading]=\"TABS.BUILDER | translate\" (selected)=\"onSelectedTab(TABS.BUILDER)\">\n <valtimo-form-io-builder\n *ngIf=\"(reloading$ | async) === false && activeTab === TABS.BUILDER\"\n [form]=\"obs.formDefinition.formDefinition\"\n (change)=\"formBuilderChanged($event, obs.jsonFormDefinition)\"\n ></valtimo-form-io-builder>\n </cds-tab>\n\n <cds-tab [heading]=\"TABS.EDITOR | translate\" (selected)=\"onSelectedTab(TABS.EDITOR)\">\n @if (activeTab === TABS.EDITOR && obs.jsonFormDefinition) {\n <ng-container\n *ngTemplateOutlet=\"\n jsonEditor;\n context: {\n data: {\n disabled: obs.formDefinition.readOnly || !obs.canUpdateGlobalConfiguration,\n formDefinition: obs.formDefinition,\n model: obs.jsonFormDefinition,\n },\n }\n \"\n ></ng-container>\n }\n </cds-tab>\n\n <cds-tab\n [heading]=\"TABS.OUTPUT | translate\"\n (selected)=\"onSelectedTab(TABS.OUTPUT)\"\n class=\"valtimo-form-management-edit__output\"\n >\n <valtimo-form-io\n *ngIf=\"activeTab === TABS.OUTPUT\"\n [form]=\"obs.formDefinition.formDefinition\"\n (change)=\"onOutputChange($event)\"\n ></valtimo-form-io>\n\n @if (activeTab === TABS.OUTPUT && obs.jsonOutput) {\n <ng-container\n *ngTemplateOutlet=\"\n jsonEditor;\n context: {\n data: {disabled: true, formDefinition: obs.formDefinition, model: obs.jsonOutput},\n }\n \"\n ></ng-container>\n }\n </cds-tab>\n </cds-tabs>\n } @else {\n <cds-loading></cds-loading>\n }\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"interface.deleteConfirmation\"\n cancelButtonTextTranslationKey=\"interface.cancel\"\n [outputOnConfirm]=\"obs.formDefinition\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"dashboardManagement.delete\"\n (confirmEvent)=\"deleteFormDefinition($event)\"\n ></valtimo-confirmation-modal>\n\n <valtimo-form-management-upload\n [show$]=\"showModal$\"\n (definitionUploaded)=\"setFormDefinition($event)\"\n ></valtimo-form-management-upload>\n\n <ng-template #jsonEditor let-data=\"data\">\n <valtimo-editor\n [model]=\"data.model\"\n [disabled]=\"data.disabled\"\n (validEvent)=\"onValidEvent($event, data.disabled)\"\n (valueChangeEvent)=\"onValueChangeEvent($event, data.formDefinition, data.disabled)\"\n [fitPage]=\"true\"\n ></valtimo-editor>\n </ng-template>\n</ng-container>\n\n<ng-template #actions let-obs=\"obs\">\n <div\n class=\"valtimo-form-management-edit__header-container\"\n [ngClass]=\"{\n '--compact': obs.compactMode,\n }\"\n >\n @if (obs.formDefinition.readOnly || !obs.canUpdateGlobalConfiguration || !obs.isDraftVersion) {\n <cds-tag size=\"sm\" type=\"blue\">{{ 'formManagement.readOnly' | translate }}</cds-tag>\n }\n\n <div class=\"valtimo-form-management-edit__header\">\n <v-overflow-menu placement=\"bottom-end\">\n <v-overflow-menu-trigger overflowTrigger></v-overflow-menu-trigger>\n <v-overflow-menu-option (selected)=\"downloadFormDefinition(obs.formDefinition)\">\n {{ 'Download' | translate }}\n </v-overflow-menu-option>\n\n <v-overflow-menu-option\n [disabled]=\"\n obs.formDefinition.readOnly || !obs.canUpdateGlobalConfiguration || !obs.isDraftVersion\n \"\n (selected)=\"showUploadModal()\"\n >\n {{ 'Upload' | translate }}\n </v-overflow-menu-option>\n\n <v-overflow-menu-option\n *ngIf=\"(obs.context === 'case' && obs.isDraftVersion) || obs.context === 'independent'\"\n (selected)=\"showDuplicateModal(obs.formDefinition)\"\n >\n {{ 'formManagement.duplicate' | translate }}\n </v-overflow-menu-option>\n\n <v-overflow-menu-option\n [disabled]=\"\n obs.formDefinition.readOnly || !obs.canUpdateGlobalConfiguration || !obs.isDraftVersion\n \"\n type=\"danger\"\n (selected)=\"delete()\"\n >\n {{ 'interface.delete' | translate }}\n </v-overflow-menu-option>\n </v-overflow-menu>\n\n @if (obs.context === 'case') {\n <button\n cdsButton=\"secondary\"\n [size]=\"obs.compactMode ? 'sm' : 'md'\"\n (click)=\"onGoBackButtonClick()\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"arrow--left\" size=\"16\"></svg>\n\n <span>{{ 'interface.back' | translate }}</span>\n </button>\n }\n\n <button\n *ngIf=\"obs?.canUpdateGlobalConfiguration || obs.context === 'independent'\"\n cdsButton=\"primary\"\n [disabled]=\"obs.formDefinition.readOnly || !obs.isDraftVersion\"\n [size]=\"obs.compactMode ? 'sm' : 'md'\"\n (click)=\"modifyFormDefinition(obs.formDefinition)\"\n [attr.data-test-id]=\"testIds.saveButton\"\n >\n {{ 'interface.save' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"save\" size=\"16\"></svg>\n </button>\n </div>\n </div>\n</ng-template>\n","/*\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-management-edit.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 */\n\nexport * from './form-management-create';\nexport * from './form-management-edit';\nexport * from './form-management-duplicate';\nexport * from './form-management-list';\nexport * from './form-management-upload';\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 {RouterModule, Routes} from '@angular/router';\nimport {ROLE_ADMIN, RouterUtils} from '@valtimo/shared';\nimport {AuthGuardService} from '@valtimo/security';\nimport {FormManagementComponent} from './components/form-management/form-management.component';\nimport {FormManagementRouteData} from './models';\nimport {FormManagementEditComponent} from './components';\n\nconst routes: Routes = [\n {\n path: 'form-management',\n component: FormManagementComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Forms', roles: [ROLE_ADMIN], context: 'independent'} as FormManagementRouteData,\n },\n {\n path: 'form-management/:formDefinitionId',\n component: FormManagementEditComponent,\n canActivate: [AuthGuardService],\n data: {\n title: 'Forms',\n roles: [ROLE_ADMIN],\n context: 'independent',\n customPageTitle: true,\n } as FormManagementRouteData,\n },\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes, RouterUtils.getRouterExtraOptions())],\n exports: [RouterModule],\n})\nexport class FormManagementRoutingModule {}\n\n@NgModule({\n imports: [FormManagementComponent, FormManagementRoutingModule],\n})\nexport class FormManagementModule {}\n","/*\n * Copyright 2015-2026 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of form-management\n */\n\nexport * from './lib/services/form-management.service';\nexport * from './lib/components/form-management/form-management.component';\nexport * from './lib/models';\nexport * from './lib/form-management.module';\nexport * from './lib/components/form-management-edit/form-management-edit.component';\nexport * from './lib/components/form-management-create/form-management-create.component';\nexport * from './lib/constants';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","map","switchMap","i1.FormManagementService","i6","filter","take","i7","i1","i3","i2.FormManagementService","i5","tap","i4"],"mappings":"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"}
1
+ {"version":3,"file":"valtimo-form-management.mjs","sources":["../../../../projects/valtimo/form-management/src/lib/services/form-management.service.ts","../../../../projects/valtimo/form-management/src/lib/constants/form-management.test-ids.ts","../../../../projects/valtimo/form-management/src/lib/constants/index.ts","../../../../projects/valtimo/form-management/src/lib/utils/form-management.utils.ts","../../../../projects/valtimo/form-management/src/lib/utils/index.ts","../../../../projects/valtimo/form-management/src/lib/validators/no-duplicate-form.validator.ts","../../../../projects/valtimo/form-management/src/lib/services/index.ts","../../../../projects/valtimo/form-management/src/lib/components/form-management-create/form-management-create.component.ts","../../../../projects/valtimo/form-management/src/lib/components/form-management-create/form-management-create.component.html","../../../../projects/valtimo/form-management/src/lib/components/form-management-create/index.ts","../../../../projects/valtimo/form-management/src/lib/components/form-management-list/form-management-list.component.ts","../../../../projects/valtimo/form-management/src/lib/components/form-management-list/form-management-list.component.html","../../../../projects/valtimo/form-management/src/lib/components/form-management-list/index.ts","../../../../projects/valtimo/form-management/src/lib/components/form-management/form-management.component.ts","../../../../projects/valtimo/form-management/src/lib/components/form-management/form-management.component.html","../../../../projects/valtimo/form-management/src/lib/models/form-definition.model.ts","../../../../projects/valtimo/form-management/src/lib/models/form-edit-tabs.enum.ts","../../../../projects/valtimo/form-management/src/lib/models/form-management.model.ts","../../../../projects/valtimo/form-management/src/lib/models/index.ts","../../../../projects/valtimo/form-management/src/lib/components/form-management-duplicate/form-management-duplicate.component.ts","../../../../projects/valtimo/form-management/src/lib/components/form-management-duplicate/form-management-duplicate.component.html","../../../../projects/valtimo/form-management/src/lib/components/form-management-duplicate/index.ts","../../../../projects/valtimo/form-management/src/lib/components/form-management-upload/form-management-upload.component.ts","../../../../projects/valtimo/form-management/src/lib/components/form-management-upload/form-management-upload.component.html","../../../../projects/valtimo/form-management/src/lib/components/form-management-upload/index.ts","../../../../projects/valtimo/form-management/src/lib/components/form-management-edit/form-management-edit.component.ts","../../../../projects/valtimo/form-management/src/lib/components/form-management-edit/form-management-edit.component.html","../../../../projects/valtimo/form-management/src/lib/components/form-management-edit/index.ts","../../../../projects/valtimo/form-management/src/lib/components/index.ts","../../../../projects/valtimo/form-management/src/lib/form-management.module.ts","../../../../projects/valtimo/form-management/src/public-api.ts","../../../../projects/valtimo/form-management/src/valtimo-form-management.ts"],"sourcesContent":["/*\n * Copyright 2015-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\nimport {Injectable} from '@angular/core';\nimport {HttpClient} from '@angular/common/http';\nimport {\n CreateFormDefinitionRequest,\n FormDefinition,\n ModifyFormDefinitionRequest,\n QueryFormsResponse,\n} from '../models';\nimport {Observable, of} from 'rxjs';\nimport {BaseApiService, ConfigService, Page} from '@valtimo/shared';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormManagementService extends BaseApiService {\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public getFormDefinition(formDefinitionId: string): Observable<FormDefinition> {\n return this.httpClient.get<FormDefinition>(\n this.getApiUrl(`/management/v1/form/${formDefinitionId}`)\n );\n }\n\n public getFormDefinitionCase(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string,\n formDefinitionId: string\n ): Observable<FormDefinition> {\n return this.httpClient.get<FormDefinition>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/form/${formDefinitionId}`\n )\n );\n }\n\n public existsFormDefinition(formDefinitionName: string): Observable<boolean> {\n if (!formDefinitionName) return of(false);\n\n return this.httpClient.get<boolean>(\n this.getApiUrl(`/management/v1/form/exists/${formDefinitionName}`)\n );\n }\n\n public existsFormDefinitionCase(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string,\n formDefinitionName: string\n ): Observable<boolean> {\n if (!formDefinitionName || !caseDefinitionKey || !caseDefinitionVersionTag) return of(false);\n\n return this.httpClient.get<boolean>(\n this.getApiUrl(\n `management/v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/form/${formDefinitionName}/exists`\n )\n );\n }\n\n public queryFormDefinitions(params?: any): Observable<QueryFormsResponse> {\n return this.httpClient.get<QueryFormsResponse>(this.getApiUrl(`/management/v1/form`), {\n params,\n });\n }\n\n public queryFormDefinitionsCase(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string,\n params?: any\n ): Observable<QueryFormsResponse> {\n return this.httpClient.get<QueryFormsResponse>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/form`\n ),\n {\n params,\n }\n );\n }\n\n public createFormDefinition(request: CreateFormDefinitionRequest): Observable<FormDefinition> {\n return this.httpClient.post<FormDefinition>(this.getApiUrl(`/management/v1/form`), request);\n }\n\n public createFormDefinitionsCase(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string,\n request: CreateFormDefinitionRequest\n ): Observable<FormDefinition> {\n return this.httpClient.post<FormDefinition>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/form`\n ),\n request\n );\n }\n\n public modifyFormDefinition(request: ModifyFormDefinitionRequest): Observable<FormDefinition> {\n return this.httpClient.put<FormDefinition>(this.getApiUrl(`/management/v1/form`), request);\n }\n\n public modifyFormDefinitionCase(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string,\n request: ModifyFormDefinitionRequest\n ): Observable<FormDefinition> {\n return this.httpClient.put<FormDefinition>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/form`\n ),\n request\n );\n }\n\n public deleteFormDefinition(formDefinitionId: string): Observable<void> {\n return this.httpClient.delete<void>(this.getApiUrl(`/management/v1/form/${formDefinitionId}`));\n }\n\n public deleteFormDefinitionCase(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string,\n formDefinitionId: string\n ): Observable<void> {\n return this.httpClient.delete<void>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/form/${formDefinitionId}`\n )\n );\n }\n\n // Building block form management methods\n\n public getFormDefinitionBuildingBlock(\n buildingBlockDefinitionKey: string,\n buildingBlockDefinitionVersionTag: string,\n formDefinitionId: string\n ): Observable<FormDefinition> {\n return this.httpClient.get<FormDefinition>(\n this.getApiUrl(\n `/management/v1/building-block/${buildingBlockDefinitionKey}/version/${buildingBlockDefinitionVersionTag}/form/${formDefinitionId}`\n )\n );\n }\n\n public existsFormDefinitionBuildingBlock(\n buildingBlockDefinitionKey: string,\n buildingBlockDefinitionVersionTag: string,\n formDefinitionName: string\n ): Observable<boolean> {\n if (!formDefinitionName || !buildingBlockDefinitionKey || !buildingBlockDefinitionVersionTag)\n return of(false);\n\n return this.httpClient.get<boolean>(\n this.getApiUrl(\n `management/v1/building-block/${buildingBlockDefinitionKey}/version/${buildingBlockDefinitionVersionTag}/form/${formDefinitionName}/exists`\n )\n );\n }\n\n public queryFormDefinitionsBuildingBlock(\n buildingBlockDefinitionKey: string,\n buildingBlockDefinitionVersionTag: string,\n params?: any\n ): Observable<Page<FormDefinition>> {\n return this.httpClient.get<Page<FormDefinition>>(\n this.getApiUrl(\n `/management/v1/building-block/${buildingBlockDefinitionKey}/version/${buildingBlockDefinitionVersionTag}/form`\n ),\n {\n params,\n }\n );\n }\n\n public createFormDefinitionsBuildingBlock(\n buildingBlockDefinitionKey: string,\n buildingBlockDefinitionVersionTag: string,\n request: CreateFormDefinitionRequest\n ): Observable<FormDefinition> {\n return this.httpClient.post<FormDefinition>(\n this.getApiUrl(\n `/management/v1/building-block/${buildingBlockDefinitionKey}/version/${buildingBlockDefinitionVersionTag}/form`\n ),\n request\n );\n }\n\n public modifyFormDefinitionBuildingBlock(\n buildingBlockDefinitionKey: string,\n buildingBlockDefinitionVersionTag: string,\n request: ModifyFormDefinitionRequest\n ): Observable<FormDefinition> {\n return this.httpClient.put<FormDefinition>(\n this.getApiUrl(\n `/management/v1/building-block/${buildingBlockDefinitionKey}/version/${buildingBlockDefinitionVersionTag}/form/${request.id}`\n ),\n request\n );\n }\n\n public deleteFormDefinitionBuildingBlock(\n buildingBlockDefinitionKey: string,\n buildingBlockDefinitionVersionTag: string,\n formDefinitionId: string\n ): Observable<void> {\n return this.httpClient.delete<void>(\n this.getApiUrl(\n `/management/v1/building-block/${buildingBlockDefinitionKey}/version/${buildingBlockDefinitionVersionTag}/form/${formDefinitionId}`\n )\n );\n }\n}\n","/*\n * Copyright 2015-2026 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 const FORM_MANAGEMENT_LIST_TEST_IDS = {\n createFormButton: 'formManagementCreateFormButton',\n} as const;\n\nexport const FORM_MANAGEMENT_CREATE_TEST_IDS = {\n nameInput: 'formManagementCreateNameInput',\n submitButton: 'formManagementCreateSubmitButton',\n} as const;\n\nexport const FORM_MANAGEMENT_EDIT_TEST_IDS = {\n saveButton: 'formManagementEditSaveButton',\n} as const;\n","/*\n * Copyright 2015-2026 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-management.test-ids';\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 {ActivatedRoute} from '@angular/router';\nimport {\n getBuildingBlockManagementRouteParams,\n getCaseManagementRouteParams,\n ManagementContext,\n} from '@valtimo/shared';\nimport {combineLatest, Observable, of} from 'rxjs';\nimport {distinctUntilChanged, map, switchMap} from 'rxjs/operators';\nimport {FormManagementParams} from '../models';\n\nfunction getContextObservable(route: ActivatedRoute): Observable<ManagementContext | '' | null> {\n return route.data.pipe(\n map(data => (data && (data['context'] as ManagementContext)) || null),\n distinctUntilChanged()\n );\n}\n\nfunction getFormManagementRouteParamsAndContext(\n route: ActivatedRoute\n): Observable<[ManagementContext | null, FormManagementParams]> {\n const context$ = getContextObservable(route);\n\n return context$.pipe(\n switchMap(context => {\n if (context === 'case') {\n return combineLatest([of(context), getCaseManagementRouteParams(route, true)]).pipe(\n map(\n ([ctx, params]) =>\n [\n ctx,\n {\n caseDefinitionKey: params?.caseDefinitionKey,\n caseDefinitionVersionTag: params?.caseDefinitionVersionTag,\n },\n ] as [ManagementContext, FormManagementParams]\n )\n );\n }\n\n if (context === 'buildingBlock') {\n return combineLatest([of(context), getBuildingBlockManagementRouteParams(route, true)]).pipe(\n map(\n ([ctx, params]) =>\n [\n ctx,\n {\n buildingBlockDefinitionKey: params?.buildingBlockDefinitionKey,\n buildingBlockDefinitionVersionTag: params?.buildingBlockDefinitionVersionTag,\n },\n ] as [ManagementContext, FormManagementParams]\n )\n );\n }\n\n const fallbackParams: FormManagementParams = {};\n return of([context, fallbackParams] as [ManagementContext | null, FormManagementParams]);\n })\n );\n}\n\nexport {getContextObservable, getFormManagementRouteParamsAndContext};\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-management.utils';\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\nimport {FormManagementService} from '../services';\nimport {AbstractControl, AsyncValidatorFn, ValidationErrors} from '@angular/forms';\nimport {ManagementContext} from '@valtimo/shared';\nimport {map, Observable} from 'rxjs';\nimport {FormManagementParams} from '../models';\n\nexport function noDuplicateFormValidator(\n context: ManagementContext | '' | null,\n params: FormManagementParams,\n formManagementService: FormManagementService\n): AsyncValidatorFn {\n return (control: AbstractControl): Observable<ValidationErrors> => {\n let exists$: Observable<boolean>;\n\n switch (context) {\n case 'case':\n exists$ = formManagementService.existsFormDefinitionCase(\n params.caseDefinitionKey!,\n params.caseDefinitionVersionTag!,\n control.value.toString()\n );\n break;\n case 'buildingBlock':\n exists$ = formManagementService.existsFormDefinitionBuildingBlock(\n params.buildingBlockDefinitionKey!,\n params.buildingBlockDefinitionVersionTag!,\n control.value.toString()\n );\n break;\n default:\n exists$ = formManagementService.existsFormDefinition(control.value.toString());\n break;\n }\n\n return exists$.pipe(map((result: boolean) => (result ? {duplicate: true} : null)));\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 './form-management.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 */\n\nimport {CommonModule} from '@angular/common';\nimport {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {FormBuilder, FormControl, FormGroup, ReactiveFormsModule, Validators} from '@angular/forms';\nimport {ActivatedRoute} from '@angular/router';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {ValtimoCdsModalDirective, WidgetModule} from '@valtimo/components';\nimport {getCaseManagementRouteParams} from '@valtimo/shared';\nimport {\n ButtonModule,\n InputModule,\n LayerModule,\n ModalModule,\n TilesModule,\n} from 'carbon-components-angular';\nimport {switchMap, tap} from 'rxjs';\nimport {filter, take} from 'rxjs/operators';\nimport {FORM_MANAGEMENT_CREATE_TEST_IDS} from '../../constants';\nimport {CreateFormDefinitionRequest} from '../../models';\nimport {FormManagementService} from '../../services';\nimport {getContextObservable, getFormManagementRouteParamsAndContext} from '../../utils';\nimport {noDuplicateFormValidator} from '../../validators/no-duplicate-form.validator';\n\n@Component({\n selector: 'valtimo-form-management-create',\n templateUrl: './form-management-create.component.html',\n styleUrls: ['./form-management-create.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n TranslateModule,\n ButtonModule,\n InputModule,\n WidgetModule,\n InputModule,\n TilesModule,\n LayerModule,\n ModalModule,\n ValtimoCdsModalDirective,\n ButtonModule,\n ],\n})\nexport class FormManagementCreateComponent implements OnInit {\n @Input() public readonly upload = false;\n\n @Output() public readonly goBackEvent = new EventEmitter<void>();\n @Output() public readonly afterCreateEvent = new EventEmitter<string>();\n @Output() public readonly afterUploadEvent = new EventEmitter<string>();\n\n public readonly context$ = getContextObservable(this.route);\n\n public readonly caseManagementRouteParams$ = this.context$.pipe(\n filter(context => context === 'case'),\n switchMap(() => getCaseManagementRouteParams(this.route))\n );\n\n public form: FormGroup;\n\n protected readonly testIds = FORM_MANAGEMENT_CREATE_TEST_IDS;\n\n constructor(\n private readonly formManagementService: FormManagementService,\n private readonly formBuilder: FormBuilder,\n private readonly route: ActivatedRoute\n ) {}\n\n public ngOnInit(): void {\n this.initForm();\n }\n\n private initForm(): void {\n getFormManagementRouteParamsAndContext(this.route)\n .pipe(\n take(1),\n tap(([context, params]) => {\n this.form = this.formBuilder.group({\n name: new FormControl('', Validators.required, [\n noDuplicateFormValidator(context, params, this.formManagementService),\n ]),\n });\n })\n )\n .subscribe();\n }\n\n public get formControls(): FormGroup['controls'] {\n return this.form?.controls;\n }\n\n public onBackButtonClick(): void {\n this.goBackEvent.emit();\n }\n\n public reset(): void {\n this.form.setValue({name: ''});\n }\n\n public onCloseEvent(): void {\n this.goBackEvent.emit();\n }\n\n public createFormDefinition(): void {\n const emptyForm = {display: 'form', components: []};\n const request: CreateFormDefinitionRequest = {\n name: this.form.value.name,\n formDefinition: JSON.stringify(emptyForm),\n };\n\n getFormManagementRouteParamsAndContext(this.route)\n .pipe(\n take(1),\n switchMap(([context, params]) => {\n switch (context) {\n case 'case':\n return this.formManagementService.createFormDefinitionsCase(\n params.caseDefinitionKey!,\n params.caseDefinitionVersionTag!,\n request\n );\n case 'buildingBlock':\n return this.formManagementService.createFormDefinitionsBuildingBlock(\n params.buildingBlockDefinitionKey!,\n params.buildingBlockDefinitionVersionTag!,\n request\n );\n default:\n return this.formManagementService.createFormDefinition(request);\n }\n }),\n tap(formDefinition => {\n if (this.upload) {\n this.afterUploadEvent.emit(formDefinition.id);\n } else {\n this.afterCreateEvent.emit(formDefinition.id);\n }\n })\n )\n .subscribe();\n }\n\n public onSubmit(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n\n this.form.markAllAsTouched();\n\n if (this.form.invalid) {\n return;\n }\n\n this.createFormDefinition();\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<cds-modal\n valtimoCdsModal\n class=\"form-management-create\"\n size=\"sm\"\n [cdsLayer]=\"0\"\n [open]=\"true\"\n (close)=\"onCloseEvent()\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCloseEvent()\">\n <h3 cdsModalHeaderHeading>\n {{ 'formManagement.add' | translate }}\n </h3>\n </cds-modal-header>\n\n <form *ngIf=\"form\" [formGroup]=\"form\" (ngSubmit)=\"onSubmit($event)\">\n <section cdsModalContent [cdsLayer]=\"1\">\n <cds-label\n [invalid]=\"formControls?.name?.touched && formControls?.name?.errors\"\n [invalidText]=\"\n (formControls?.name?.errors?.required && ('formManagement.nameIsRequired' | translate)) ||\n (formControls?.name?.errors?.duplicate && ('formManagement.nameIsInUse' | translate))\n \"\n >\n {{ 'formManagement.name' | translate }}\n\n <input\n cdsText\n type=\"text\"\n id=\"name\"\n formControlName=\"name\"\n [invalid]=\"formControls?.name?.touched && formControls?.name?.errors\"\n required\n [attr.data-test-id]=\"testIds.nameInput\"\n />\n </cds-label>\n </section>\n\n <cds-modal-footer [cdsLayer]=\"1\">\n <button cdsButton=\"secondary\" (click)=\"$event.preventDefault(); onBackButtonClick()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n cdsButton=\"primary\"\n type=\"submit\"\n [disabled]=\"form?.invalid\"\n [attr.data-test-id]=\"testIds.submitButton\"\n >\n {{ 'interface.create' | translate }}\n </button>\n </cds-modal-footer>\n </form>\n</cds-modal>\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-management-create.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 */\n\nimport {CommonModule} from '@angular/common';\nimport {Component, EventEmitter, Output} from '@angular/core';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {ActivatedRoute} from '@angular/router';\nimport {Upload16} from '@carbon/icons';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {\n ActionItem,\n CarbonListModule,\n ColumnConfig,\n ConfirmationModalModule,\n Pagination,\n ViewType,\n} from '@valtimo/components';\nimport {\n DraftVersionService,\n EditPermissionsService,\n EnvironmentService,\n getCaseManagementRouteParams,\n getCaseManagementRouteParamsAndContext,\n GlobalNotificationService,\n} from '@valtimo/shared';\nimport {ButtonModule, IconModule, IconService} from 'carbon-components-angular';\nimport {\n BehaviorSubject,\n combineLatest,\n filter,\n map,\n Observable,\n startWith,\n switchMap,\n take,\n tap,\n} from 'rxjs';\nimport {FORM_MANAGEMENT_LIST_TEST_IDS} from '../../constants';\nimport {FormDefinition} from '../../models';\nimport {FormManagementService} from '../../services';\nimport {getContextObservable} from '../../utils';\n\n@Component({\n selector: 'valtimo-form-management-list',\n templateUrl: './form-management-list.component.html',\n styleUrls: ['./form-management-list.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TranslateModule,\n CarbonListModule,\n IconModule,\n ButtonModule,\n ConfirmationModalModule,\n ],\n})\nexport class FormManagementListComponent {\n @Output() public readonly navigateToCreateEvent = new EventEmitter<void>();\n @Output() public readonly navigateToUploadEvent = new EventEmitter<void>();\n @Output() public readonly navigateToEditEvent = new EventEmitter<string>();\n\n public readonly ACTION_ITEMS: ActionItem[] = [\n {\n callback: this.editFormDefinition.bind(this),\n label: 'interface.edit',\n },\n {callback: this.showDeleteModal.bind(this), label: 'interface.delete', type: 'danger'},\n ];\n\n public readonly showDeleteModal$ = new BehaviorSubject<boolean>(false);\n public readonly formDefinitionToDelete$ = new BehaviorSubject<FormDefinition | null>(null);\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n public readonly searchTerm$ = new BehaviorSubject<string>('');\n\n protected readonly testIds = FORM_MANAGEMENT_LIST_TEST_IDS;\n\n public readonly context$ = getContextObservable(this.route);\n\n public readonly caseManagementRouteParams$ = this.context$.pipe(\n filter(context => context === 'case'),\n switchMap(() => getCaseManagementRouteParams(this.route))\n );\n\n public readonly hasEditPermissions$: Observable<boolean> = combineLatest([\n getCaseManagementRouteParams(this.route),\n this.context$,\n ]).pipe(\n switchMap(([params, context]) =>\n this.editPermissionsService.hasPermissionsToEditBasedOnContext(params, context)\n )\n );\n\n private readonly _collectionSize$ = new BehaviorSubject<number>(0);\n\n private readonly _partialPagination$ = new BehaviorSubject<Partial<Pagination>>({\n page: 1,\n size: 10,\n });\n\n private get _partialPagination(): Partial<Pagination> {\n return this._partialPagination$.getValue();\n }\n\n public pagination$: Observable<Pagination> = combineLatest([\n this._collectionSize$,\n this._partialPagination$,\n ]).pipe(\n map(\n ([collectionSize, partialPagination]) =>\n ({...partialPagination, collectionSize}) as Pagination\n )\n );\n\n public readonly formDefinitions$ = combineLatest([\n this.context$,\n this.caseManagementRouteParams$.pipe(startWith(null)),\n this._partialPagination$,\n this.searchTerm$,\n ]).pipe(\n filter(([context, params]) =>\n context === 'case' ? !!(params?.caseDefinitionVersionTag && params?.caseDefinitionKey) : true\n ),\n switchMap(([context, routeParams, pagination, searchTerm]) => {\n const params = {\n ...pagination,\n page: (pagination?.page ?? 1) - 1,\n ...(searchTerm && {searchTerm}),\n };\n\n switch (context) {\n case 'case':\n return this.formManagementService.queryFormDefinitionsCase(\n routeParams?.caseDefinitionKey ?? '',\n routeParams?.caseDefinitionVersionTag ?? '',\n params\n );\n default:\n case 'independent':\n return this.formManagementService.queryFormDefinitions(params);\n }\n }),\n map((res: any) => {\n this._collectionSize$.next(res?.totalElements);\n\n return res?.content\n ? [...res.content].sort((firstForm, secondForm) =>\n (firstForm.name ?? '').localeCompare(secondForm.name ?? '')\n )\n : [];\n }),\n tap(() => this.loading$.next(false))\n );\n\n public readonly FIELDS: ColumnConfig[] = [\n {key: 'name', label: 'Form name'},\n {key: 'readOnly', label: 'Read-only', viewType: ViewType.BOOLEAN},\n ];\n\n constructor(\n private readonly formManagementService: FormManagementService,\n private readonly iconService: IconService,\n private readonly route: ActivatedRoute,\n private readonly environmentService: EnvironmentService,\n private readonly draftVersionService: DraftVersionService,\n private readonly notificationService: GlobalNotificationService,\n private readonly translateService: TranslateService,\n private readonly editPermissionsService: EditPermissionsService\n ) {\n this.iconService.registerAll([Upload16]);\n }\n\n public navigateToCreateRoute(): void {\n this.navigateToCreateEvent.emit();\n }\n\n public navigateToUploadRoute(): void {\n this.navigateToUploadEvent.emit();\n }\n\n public paginationClicked(page: number): void {\n this.updatePagination({page});\n }\n\n public paginationSet(size: number): void {\n this.updatePagination({size, page: 1});\n }\n\n public editFormDefinition(formDefinition: FormDefinition): void {\n this.navigateToEditEvent.emit(formDefinition.id);\n }\n\n public searchTermEntered(searchTerm: string): void {\n this.searchTerm$.next(searchTerm);\n }\n\n public showDeleteModal(definition: FormDefinition): void {\n this.formDefinitionToDelete$.next(definition);\n this.showDeleteModal$.next(true);\n }\n\n public deleteFormDefinition(definition: FormDefinition): void {\n getCaseManagementRouteParamsAndContext(this.route)\n .pipe(\n take(1),\n switchMap(([context, caseManagementRouteParams]) => {\n switch (context) {\n case 'case':\n return this.formManagementService.deleteFormDefinitionCase(\n caseManagementRouteParams?.caseDefinitionKey,\n caseManagementRouteParams?.caseDefinitionVersionTag,\n definition.id\n );\n\n case 'independent':\n default:\n return this.formManagementService.deleteFormDefinition(definition.id);\n }\n })\n )\n .subscribe({\n next: () => {\n this.notificationService.showToast({\n type: 'success',\n title: this.translateService.instant('formManagement.notifications.deleted'),\n });\n this._partialPagination$.next({...this._partialPagination});\n },\n error: () => {\n this.notificationService.showToast({\n type: 'error',\n title: this.translateService.instant('formManagement.notifications.deletionError'),\n });\n },\n });\n }\n\n private updatePagination(update: Partial<Pagination>): void {\n this._partialPagination$.next({...this._partialPagination, ...update});\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<valtimo-carbon-list\n *ngIf=\"{\n formDefinitions: formDefinitions$ | async,\n pagination: pagination$ | async,\n loading: loading$ | async,\n context: context$ | async,\n hasEditPermissions: hasEditPermissions$ | async,\n } as obs\"\n [showActionItems]=\"obs.hasEditPermissions\"\n [actionItems]=\"ACTION_ITEMS\"\n [fields]=\"FIELDS\"\n [header]=\"false\"\n [isSearchable]=\"true\"\n [items]=\"obs?.formDefinitions || []\"\n [pagination]=\"obs.pagination\"\n [loading]=\"obs.loading\"\n paginationIdentifier=\"formManagementList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"editFormDefinition($event)\"\n (search)=\"searchTermEntered($event)\"\n>\n <ng-container *ngIf=\"obs.hasEditPermissions\" carbonToolbarContent>\n <button cdsButton=\"ghost\" [iconOnly]=\"true\" (click)=\"navigateToUploadRoute()\">\n <svg cdsIcon=\"upload\" size=\"16\"></svg>\n </button>\n\n <ng-container [ngTemplateOutlet]=\"createFormButton\"></ng-container>\n </ng-container>\n\n <valtimo-no-results\n [action]=\"createFormButton\"\n [description]=\"'formManagement.noResults.' + obs.context + 'Description' | translate\"\n [title]=\"'formManagement.noResults.title' | translate\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"interface.deleteConfirmation\"\n cancelButtonTextTranslationKey=\"interface.cancel\"\n [outputOnConfirm]=\"formDefinitionToDelete$ | async\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"dashboardManagement.delete\"\n (confirmEvent)=\"deleteFormDefinition($event)\"\n></valtimo-confirmation-modal>\n\n<ng-template #createFormButton>\n <button\n *ngIf=\"hasEditPermissions$ | async\"\n cdsButton=\"primary\"\n (click)=\"navigateToCreateRoute()\"\n [attr.data-test-id]=\"testIds.createFormButton\"\n >\n {{ 'Create Form' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\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-management-list.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 {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {TranslateService} from '@ngx-translate/core';\nimport {GlobalNotificationService} from '@valtimo/shared';\nimport {ButtonModule} from 'carbon-components-angular';\nimport {BehaviorSubject} from 'rxjs';\nimport {FormManagementCreateComponent} from '../form-management-create';\nimport {FormManagementListComponent} from '../form-management-list';\n\n@Component({\n templateUrl: './form-management.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n ButtonModule,\n FormManagementListComponent,\n FormManagementCreateComponent,\n ],\n})\nexport class FormManagementComponent {\n public readonly create$ = new BehaviorSubject<boolean>(false);\n public readonly upload$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly router: Router,\n private readonly notificationService: GlobalNotificationService,\n private readonly translateService: TranslateService\n ) {}\n\n public onNavigateToCreateEvent(): void {\n this.create$.next(true);\n }\n\n public onGoBackFromCreateEvent(): void {\n this.create$.next(false);\n this.upload$.next(false);\n }\n\n public onFormDefinitionEditEvent(formDefinitionId: string, upload = false): void {\n this.router.navigate([formDefinitionId], {\n relativeTo: this.route,\n queryParams: {...(upload && {upload: true})},\n });\n }\n\n public onFormDefinitionCreateEvent(formDefinitionId: string): void {\n this.resetNotifications();\n\n this.notificationService.showToast({\n type: 'success',\n title: this.translateService.instant('formManagement.notifications.created'),\n });\n\n this.onFormDefinitionEditEvent(formDefinitionId);\n }\n\n public onFormDefinitionUploadEvent(formDefinitionId: string): void {\n this.resetNotifications();\n\n this.notificationService.showToast({\n type: 'success',\n title: this.translateService.instant('formManagement.notifications.created'),\n });\n\n this.onFormDefinitionEditEvent(formDefinitionId, true);\n }\n\n public onNavigateToUploadEvent(): void {\n this.create$.next(true);\n this.upload$.next(true);\n }\n\n private resetNotifications(): void {\n this.notificationService\n ?.getNotificationRefs()\n .forEach(ref => this.notificationService.close(ref));\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<ng-container\n *ngIf=\"{\n create: create$ | async,\n upload: upload$ | async,\n } as obs\"\n>\n <valtimo-form-management-list\n (navigateToCreateEvent)=\"onNavigateToCreateEvent()\"\n (navigateToUploadEvent)=\"onNavigateToUploadEvent()\"\n (navigateToEditEvent)=\"onFormDefinitionEditEvent($event)\"\n ></valtimo-form-management-list>\n\n <valtimo-form-management-create\n *ngIf=\"obs.create\"\n [upload]=\"obs.upload\"\n (goBackEvent)=\"onGoBackFromCreateEvent()\"\n (afterCreateEvent)=\"onFormDefinitionCreateEvent($event)\"\n (afterUploadEvent)=\"onFormDefinitionUploadEvent($event)\"\n ></valtimo-form-management-create>\n</ng-container>\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\nimport {FormioForm} from '@formio/angular';\n\nexport function compareFormDefinitions(fd1: FormDefinition, fd2: FormDefinition) {\n if (fd1 === null && fd2 === null) {\n return true;\n }\n if (fd1 === null || fd2 === null) {\n return false;\n }\n return fd1.id === fd2.id;\n}\n\nexport interface FormDefinition {\n id: string;\n name: string;\n formDefinition: FormioForm;\n readOnly: boolean;\n}\n\nexport interface CreateFormDefinitionRequest {\n name: string;\n formDefinition: string;\n}\n\nexport interface ModifyFormDefinitionRequest {\n id: string;\n name: string;\n formDefinition: string;\n}\n\nexport interface QueryFormsResponse {\n content: {readonly: boolean; id: string; formDefinition: FormioForm}[];\n first: boolean;\n last: boolean;\n totalPages: number;\n totalElements: number;\n numberOfElements: number;\n size: number;\n number: number;\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 enum EDIT_TABS {\n BUILDER = 'formManagement.tabs.formBuilder',\n EDITOR = 'formManagement.tabs.jsonEditor',\n OUTPUT = 'formManagement.tabs.output',\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\nimport {ManagementContext} from '@valtimo/shared';\n\ninterface FormManagementParams {\n caseDefinitionKey?: string;\n caseDefinitionVersionTag?: string;\n buildingBlockDefinitionKey?: string;\n buildingBlockDefinitionVersionTag?: string;\n}\n\ninterface FormManagementRouteData {\n [key: string]: any;\n context: ManagementContext;\n}\n\nexport {FormManagementParams, FormManagementRouteData};\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-definition.model';\nexport * from './form-edit-tabs.enum';\nexport * from './form-management.model';\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\nimport {Component, Inject, OnInit} from '@angular/core';\nimport {FormControl, FormGroup, FormsModule, ReactiveFormsModule, Validators} from '@angular/forms';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {take} from 'rxjs/operators';\nimport {\n BaseModal,\n ButtonModule,\n InputModule,\n LayerModule,\n ModalModule,\n ModalService,\n} from 'carbon-components-angular';\nimport {CreateFormDefinitionRequest, FormDefinition, FormManagementParams} from '../../models';\nimport {FormManagementService} from '../../services';\nimport {noDuplicateFormValidator} from '../../validators/no-duplicate-form.validator';\nimport {CommonModule} from '@angular/common';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {ValtimoCdsModalDirective} from '@valtimo/components';\nimport {GlobalNotificationService, ManagementContext} from '@valtimo/shared';\n\n@Component({\n selector: 'valtimo-form-management-duplicate-modal',\n templateUrl: './form-management-duplicate.component.html',\n styleUrls: ['./form-management-duplicate.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n ModalModule,\n ButtonModule,\n InputModule,\n ReactiveFormsModule,\n FormsModule,\n LayerModule,\n ValtimoCdsModalDirective,\n ],\n})\nexport class FormManagementDuplicateComponent extends BaseModal implements OnInit {\n public duplicateForm!: FormGroup;\n\n public get duplicateFormName(): FormControl {\n return this.duplicateForm.controls['duplicateFormName'] as FormControl;\n }\n\n public getDefaultName(): string {\n return this.formToDuplicate.name + '-duplicate';\n }\n\n constructor(\n @Inject('formToDuplicate') public readonly formToDuplicate: FormDefinition,\n @Inject('context') public readonly context: ManagementContext,\n @Inject('params') public readonly params: FormManagementParams,\n protected modalService: ModalService,\n protected formManagementService: FormManagementService,\n protected route: ActivatedRoute,\n private router: Router,\n private readonly notificationService: GlobalNotificationService,\n private readonly translateService: TranslateService\n ) {\n super();\n }\n\n public ngOnInit(): void {\n this.initForm();\n }\n\n private initForm(): void {\n this.duplicateForm = new FormGroup({\n duplicateFormName: new FormControl(\n this.getDefaultName(),\n Validators.compose([Validators.required]),\n [noDuplicateFormValidator(this.context, this.params, this.formManagementService)]\n ),\n });\n this.duplicateForm.markAllAsTouched();\n }\n\n public duplicate(): void {\n const control = this.duplicateFormName;\n this.formToDuplicate.name = this.duplicateForm.controls['duplicateFormName'].value;\n const request: CreateFormDefinitionRequest = {\n name: control.value.toString(),\n formDefinition: JSON.stringify(this.formToDuplicate.formDefinition),\n };\n\n let create$;\n switch (this.context) {\n case 'case':\n create$ = this.formManagementService.createFormDefinitionsCase(\n this.params.caseDefinitionKey!,\n this.params.caseDefinitionVersionTag!,\n request\n );\n break;\n case 'buildingBlock':\n create$ = this.formManagementService.createFormDefinitionsBuildingBlock(\n this.params.buildingBlockDefinitionKey!,\n this.params.buildingBlockDefinitionVersionTag!,\n request\n );\n break;\n default:\n create$ = this.formManagementService.createFormDefinition(request);\n break;\n }\n\n create$.pipe(take(1)).subscribe({\n next: formDefinition => {\n this.navigateWithNewId(formDefinition.id).then(() => {\n this.closeModal();\n this.notificationService.showToast({\n type: 'success',\n title: this.translateService.instant('formManagement.notifications.duplicated'),\n });\n });\n },\n error: err => {\n if (err.toString().includes('Duplicate name')) {\n control.setErrors({duplicate: true});\n } else {\n control.setErrors({incorrect: true});\n }\n },\n });\n }\n\n private async navigateWithNewId(newId: string): Promise<boolean> {\n const currentUrl = this.router.url.split('?')[0];\n const segments = currentUrl.split('/');\n\n const formIdIndex = segments.findIndex(segment => segment.match(/^[a-f0-9-]{36}$/));\n\n if (formIdIndex !== -1) {\n segments[formIdIndex] = newId;\n }\n\n const updatedUrl = segments.join('/');\n const queryParams = {...this.route.snapshot.queryParams};\n\n try {\n return await this.router.navigate([updatedUrl], {queryParams});\n } catch (error) {\n return false;\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\n<cds-modal\n valtimoCdsModal\n class=\"form-management-create\"\n size=\"sm\"\n [cdsLayer]=\"0\"\n [open]=\"true\"\n (close)=\"closeModal()\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'formManagement.duplicate' | translate }}\n </h3>\n </cds-modal-header>\n\n <form [formGroup]=\"duplicateForm\">\n <section cdsModalContent [cdsLayer]=\"1\">\n <cds-label\n [invalid]=\"duplicateFormName?.touched && duplicateFormName?.errors\"\n [invalidText]=\"\n (duplicateFormName?.errors?.required && ('formManagement.nameIsRequired' | translate)) ||\n (duplicateFormName?.errors?.duplicate && ('formManagement.nameIsInUse' | translate)) ||\n 'Error'\n \"\n >\n {{ 'formManagement.name' | translate }}\n\n <input\n cdsText\n type=\"text\"\n id=\"duplicateFormName\"\n formControlName=\"duplicateFormName\"\n [invalid]=\"duplicateFormName?.touched && duplicateFormName?.errors\"\n required\n />\n </cds-label>\n </section>\n\n <cds-modal-footer [cdsLayer]=\"1\">\n <cds-modal-footer>\n <button cdsButton=\"secondary\" (click)=\"closeModal()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button [disabled]=\"duplicateForm.invalid\" cdsButton=\"primary\" (click)=\"duplicate()\">\n {{ 'formManagement.submit' | translate }}\n </button>\n </cds-modal-footer>\n </cds-modal-footer>\n </form>\n</cds-modal>\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-management-duplicate.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 {CommonModule} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport {FormBuilder, ReactiveFormsModule, Validators} from '@angular/forms';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {CARBON_CONSTANTS} from '@valtimo/components';\nimport {GlobalNotificationService} from '@valtimo/shared';\nimport {\n ButtonModule,\n FileUploaderModule,\n LayerModule,\n ModalModule,\n} from 'carbon-components-angular';\nimport {BehaviorSubject, map, Observable, startWith, Subscription} from 'rxjs';\n\n@Component({\n selector: 'valtimo-form-management-upload',\n templateUrl: './form-management-upload.component.html',\n styleUrls: ['./form-management-upload.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n FileUploaderModule,\n ModalModule,\n LayerModule,\n ReactiveFormsModule,\n ButtonModule,\n ],\n})\nexport class FormManagementUploadComponent implements OnInit, OnDestroy {\n @Input() public readonly show$: Observable<boolean>;\n\n @Output() public readonly definitionUploaded: EventEmitter<any> = new EventEmitter();\n\n public readonly modalOpen$ = new BehaviorSubject<boolean>(false);\n\n public readonly ACCEPTED_FILES: string[] = ['json'];\n\n public readonly form = this.formBuilder.group({\n file: this.formBuilder.control(new Set<any>(), [Validators.required]),\n });\n\n public readonly fileSelected$ = this.form.get('file')?.valueChanges.pipe(\n startWith(null),\n map(value => !!(value instanceof Set && value.size > 0))\n );\n\n private readonly _subscriptions = new Subscription();\n\n constructor(\n private readonly formBuilder: FormBuilder,\n private readonly notificationService: GlobalNotificationService,\n private readonly translateService: TranslateService\n ) {}\n\n public ngOnInit(): void {\n this._subscriptions.add(\n this.show$.subscribe(show => {\n this.modalOpen$.next(show);\n })\n );\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public closeModal(): void {\n this.modalOpen$.next(false);\n\n setTimeout(() => {\n this.form.reset();\n }, CARBON_CONSTANTS.modalAnimationMs);\n }\n\n public async uploadFormDefinition(): Promise<void> {\n const formioDefinition: File = this.form.value?.file?.values()?.next()?.value?.file;\n const formioDefinitionString = await formioDefinition.text();\n\n if (!formioDefinitionString) return;\n\n this.notificationService.showNotification({\n type: 'success',\n title: this.translateService.instant('formManagement.upload.success'),\n });\n\n this.definitionUploaded.emit(formioDefinitionString);\n\n this.modalOpen$.next(false);\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<cds-modal valtimoCdsModal [open]=\"modalOpen$ | async\" size=\"sm\" (close)=\"closeModal()\">\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>{{ 'formManagement.upload.modalTitle' | translate }}</h3>\n </cds-modal-header>\n\n <section cdsModalContent [cdsLayer]=\"1\" [formGroup]=\"form\">\n <cds-file-uploader\n [accept]=\"ACCEPTED_FILES\"\n [buttonText]=\"'formManagement.upload.buttonText' | translate\"\n [description]=\"'formManagement.upload.description' | translate\"\n [multiple]=\"false\"\n [title]=\"'formManagement.upload.title' | translate\"\n buttonType=\"primary\"\n formControlName=\"file\"\n >\n </cds-file-uploader>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"secondary\" (click)=\"closeModal()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n cdsButton=\"primary\"\n [disabled]=\"(fileSelected$ | async) === false\"\n (click)=\"uploadFormDefinition()\"\n >\n {{ 'interface.upload' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\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-management-upload.component';\n","/*\n * Copyright 2015-2026 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 {CommonModule} from '@angular/common';\nimport {\n Component,\n EventEmitter,\n HostBinding,\n Injector,\n OnDestroy,\n OnInit,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {ArrowLeft16} from '@carbon/icons';\nimport {FormioForm} from '@formio/angular';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {\n BreadcrumbService,\n CarbonListModule,\n ConfirmationModalModule,\n EditorModel,\n EditorModule,\n FormIoModule,\n FormIoTagsService,\n OverflowMenuComponent,\n OverflowMenuOptionComponent,\n OverflowMenuTriggerComponent,\n PageHeaderService,\n PageTitleService,\n RenderInPageHeaderDirective,\n ShellService,\n SpinnerModule,\n WidgetModule,\n} from '@valtimo/components';\nimport {\n DraftVersionService,\n EnvironmentService,\n getCaseManagementRouteParams,\n GlobalNotificationService,\n} from '@valtimo/shared';\nimport {\n ButtonModule,\n IconModule,\n IconService,\n InputModule,\n LoadingModule,\n ModalModule,\n ModalService,\n TabsModule,\n TagModule,\n} from 'carbon-components-angular';\nimport {BehaviorSubject, combineLatest, map, Observable, of, Subscription} from 'rxjs';\nimport {distinctUntilChanged, filter, switchMap, take, tap} from 'rxjs/operators';\nimport {FORM_MANAGEMENT_EDIT_TEST_IDS} from '../../constants';\nimport {EDIT_TABS, FormDefinition, ModifyFormDefinitionRequest} from '../../models';\nimport {FormManagementService} from '../../services';\nimport {getContextObservable, getFormManagementRouteParamsAndContext} from '../../utils';\nimport {FormManagementDuplicateComponent} from '../form-management-duplicate';\nimport {FormManagementUploadComponent} from '../form-management-upload';\n\n@Component({\n selector: 'valtimo-form-management-edit',\n templateUrl: './form-management-edit.component.html',\n styleUrls: ['./form-management-edit.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n ModalModule,\n ButtonModule,\n InputModule,\n ReactiveFormsModule,\n FormsModule,\n WidgetModule,\n CarbonListModule,\n TabsModule,\n EditorModule,\n FormIoModule,\n RenderInPageHeaderDirective,\n OverflowMenuComponent,\n OverflowMenuOptionComponent,\n OverflowMenuTriggerComponent,\n TagModule,\n ConfirmationModalModule,\n SpinnerModule,\n FormManagementUploadComponent,\n IconModule,\n SpinnerModule,\n LoadingModule,\n ],\n})\nexport class FormManagementEditComponent implements OnInit, OnDestroy {\n @HostBinding('class') public readonly class = 'valtimo-form-management-edit';\n\n @Output() public readonly deleteEvent = new EventEmitter<void>();\n @Output() public readonly goBackEvent = new EventEmitter<void>();\n @Output() public readonly formModifiedEvent = new EventEmitter<void>();\n @Output() public readonly formDeletedEvent = new EventEmitter<void>();\n @Output() public readonly deleteErrorEvent = new EventEmitter<boolean>();\n @Output() public readonly deployErrorEvent = new EventEmitter<boolean>();\n\n public modifiedFormDefinition: FormioForm | null = null;\n public validJsonChange: boolean | null = null;\n\n public readonly TABS = EDIT_TABS;\n\n public activeTab = EDIT_TABS.BUILDER;\n\n protected readonly testIds = FORM_MANAGEMENT_EDIT_TEST_IDS;\n\n public readonly editParam$: Observable<string | null> = this.route.paramMap.pipe(\n map(params => (params.has('formDefinitionId') ? params.get('formDefinitionId') : null))\n );\n\n public readonly context$ = getContextObservable(this.route);\n\n public readonly caseManagementRouteParams$ = this.context$.pipe(\n filter(context => context === 'case'),\n switchMap(() => getCaseManagementRouteParams(this.route))\n );\n\n private readonly _formDefinition$ = new BehaviorSubject<FormDefinition | null>(null);\n\n public readonly canUpdateGlobalConfiguration$ =\n this.environmentService.canUpdateGlobalConfiguration();\n\n public readonly isDraftVersion$: Observable<boolean> = getFormManagementRouteParamsAndContext(\n this.route\n ).pipe(\n switchMap(([context, params]) => {\n if (context === 'case') {\n return this.draftVersionService.isDraftVersion(\n params?.caseDefinitionKey,\n params?.caseDefinitionVersionTag\n );\n }\n if (context === 'buildingBlock') {\n return this.draftVersionService.isDraftVersionBuildingBlock(\n params?.buildingBlockDefinitionKey,\n params?.buildingBlockDefinitionVersionTag\n );\n }\n return of(true); // Independent forms are always editable\n })\n );\n\n private get _formDefinition(): FormDefinition {\n return this._formDefinition$.getValue();\n }\n\n public readonly formDefinition$ = this._formDefinition$.pipe(\n filter((definition: FormDefinition | null) => !!definition),\n distinctUntilChanged(\n (prevFormDefinition, currFormDefinition) =>\n JSON.stringify(prevFormDefinition?.formDefinition?.components) ===\n JSON.stringify(currFormDefinition?.formDefinition?.components)\n ),\n tap(() => {\n if (!this._editorInitialized) {\n this._editorInitialized = true;\n return;\n }\n })\n );\n\n public readonly jsonFormDefinition$ = new BehaviorSubject<EditorModel | null>(null);\n public readonly jsonOutput$ = new BehaviorSubject<EditorModel | null>(null);\n public readonly reloading$ = new BehaviorSubject<boolean>(false);\n public readonly showDeleteModal$ = new BehaviorSubject<boolean>(false);\n public readonly showModal$ = new BehaviorSubject<boolean>(false);\n public readonly compactMode$ = this.pageHeaderService.compactMode$;\n\n private _activeOuput: string;\n private _alertSub: Subscription = Subscription.EMPTY;\n private _changeActive = false;\n private _editorInitialized = false;\n\n constructor(\n private readonly formManagementService: FormManagementService,\n private readonly modalService: ModalService,\n private readonly pageTitleService: PageTitleService,\n private readonly route: ActivatedRoute,\n private readonly shellService: ShellService,\n private readonly pageHeaderService: PageHeaderService,\n private readonly iconService: IconService,\n private readonly router: Router,\n private readonly translateService: TranslateService,\n private readonly notificationService: GlobalNotificationService,\n private readonly breadcrumbService: BreadcrumbService,\n private readonly environmentService: EnvironmentService,\n private readonly draftVersionService: DraftVersionService,\n private readonly formIoTagsService: FormIoTagsService,\n private readonly injector: Injector\n ) {\n this.iconService.registerAll([ArrowLeft16]);\n this.formIoTagsService.reregisterTags(this.injector);\n }\n\n public ngOnInit(): void {\n this.loadFormDefinition().subscribe();\n this.checkToOpenUploadModal();\n this.pageTitleService.disableReset();\n this.initBreadcrumbs();\n }\n\n public ngOnDestroy(): void {\n this._alertSub.unsubscribe();\n this.pageTitleService.enableReset();\n this.pageTitleService.clearPageActionsViewContainerRef();\n this.breadcrumbService.clearThirdBreadcrumb();\n this.breadcrumbService.clearFourthBreadcrumb();\n }\n\n public formBuilderChanged(event, definition: EditorModel): void {\n if (event.type === 'updateComponent') {\n return;\n }\n this._changeActive = true;\n this.modifiedFormDefinition = event.form;\n this._formDefinition$.next({...this._formDefinition, formDefinition: event.form});\n this.jsonFormDefinition$.next({...definition, value: JSON.stringify(event.form), language: 'json'});\n this._changeActive = false;\n }\n\n public delete(): void {\n this.showDeleteModal$.next(true);\n }\n\n public deleteFormDefinition(definition: FormDefinition): void {\n getFormManagementRouteParamsAndContext(this.route)\n .pipe(\n switchMap(([context, params]) => {\n switch (context) {\n case 'case':\n return this.formManagementService.deleteFormDefinitionCase(\n params?.caseDefinitionKey!,\n params?.caseDefinitionVersionTag!,\n definition.id\n );\n case 'buildingBlock':\n return this.formManagementService.deleteFormDefinitionBuildingBlock(\n params?.buildingBlockDefinitionKey!,\n params?.buildingBlockDefinitionVersionTag!,\n definition.id\n );\n default:\n return this.formManagementService.deleteFormDefinition(definition.id);\n }\n })\n )\n .subscribe({\n next: () => {\n this.notificationService.showToast({\n type: 'success',\n title: this.translateService.instant('formManagement.notifications.deleted'),\n });\n this.navigateBack();\n },\n error: () => {\n this.notificationService.showToast({\n type: 'error',\n title: this.translateService.instant('formManagement.notifications.deletionError'),\n });\n },\n });\n }\n\n public onGoBackButtonClick(): void {\n this.navigateBack();\n }\n\n public modifyFormDefinition(definition: FormDefinition): void {\n combineLatest([this.pageTitleService.customPageTitle$, this.editParam$])\n .pipe(take(1))\n .subscribe(([customPageTitle, formDefinitionId]) => {\n if (!customPageTitle || !formDefinitionId) return;\n\n const form = JSON.stringify(\n this.modifiedFormDefinition !== null\n ? this.modifiedFormDefinition\n : definition.formDefinition\n );\n\n const request: ModifyFormDefinitionRequest = {\n id: formDefinitionId,\n name: customPageTitle,\n formDefinition: form,\n };\n\n getFormManagementRouteParamsAndContext(this.route)\n .pipe(\n switchMap(([context, params]) => {\n switch (context) {\n case 'case':\n return this.formManagementService.modifyFormDefinitionCase(\n params.caseDefinitionKey!,\n params.caseDefinitionVersionTag!,\n request\n );\n case 'buildingBlock':\n return this.formManagementService.modifyFormDefinitionBuildingBlock(\n params.buildingBlockDefinitionKey!,\n params.buildingBlockDefinitionVersionTag!,\n request\n );\n default:\n return this.formManagementService.modifyFormDefinition(request);\n }\n })\n )\n .subscribe({\n next: () => {\n this.notificationService.showToast({\n type: 'success',\n title: this.translateService.instant('formManagement.notifications.deployed'),\n });\n\n this.navigateBack();\n },\n error: () => {\n this.notificationService.showToast({\n type: 'error',\n title: this.translateService.instant(\n 'formManagement.notifications.deploymentError'\n ),\n });\n },\n });\n });\n }\n\n private loadFormDefinition(setDefinition = true): Observable<FormDefinition> {\n return getFormManagementRouteParamsAndContext(this.route).pipe(\n switchMap(([context, params]) => combineLatest([of(context), of(params), this.editParam$])),\n switchMap(([context, params, formDefinitionId]) => {\n if (!formDefinitionId) return of(null);\n\n switch (context) {\n case 'case':\n return this.formManagementService.getFormDefinitionCase(\n params.caseDefinitionKey!,\n params.caseDefinitionVersionTag!,\n formDefinitionId\n );\n case 'buildingBlock':\n return this.formManagementService.getFormDefinitionBuildingBlock(\n params.buildingBlockDefinitionKey!,\n params.buildingBlockDefinitionVersionTag!,\n formDefinitionId\n );\n default:\n return this.formManagementService.getFormDefinition(formDefinitionId);\n }\n }),\n tap((definition: FormDefinition | null) => {\n if (!definition) return;\n\n if (setDefinition) this._formDefinition$.next(definition);\n if (setDefinition)\n this.jsonFormDefinition$.next({\n value: JSON.stringify(definition.formDefinition),\n language: 'json',\n });\n this.pageTitleService.setCustomPageTitle(definition.name);\n })\n );\n }\n\n public downloadFormDefinition(definition: FormDefinition): void {\n const file = new Blob([JSON.stringify(definition.formDefinition)], {\n type: 'text/json',\n });\n const link = document.createElement('a');\n link.download = `form_${definition.name}.json`;\n link.href = window.URL.createObjectURL(file);\n link.click();\n window.URL.revokeObjectURL(link.href);\n link.remove();\n }\n\n public onSelectedTab(tab: EDIT_TABS): void {\n this.activeTab = tab;\n this.formIoTagsService.reregisterTags(this.injector);\n\n if (tab === EDIT_TABS.BUILDER) {\n return;\n }\n\n setTimeout(() => {\n this.shellService.onMainContentResize();\n });\n }\n\n public onOutputChange(event: {data: object | undefined}): void {\n this.reloading$.next(false);\n\n if (!event.data) {\n return;\n } else if (JSON.stringify(event.data) === this._activeOuput) {\n return;\n }\n\n this._activeOuput = JSON.stringify(event.data);\n this.jsonOutput$.next({value: this._activeOuput, language: 'json'});\n }\n\n public onValueChangeEvent(value: string, definition: FormDefinition, disabled: boolean): void {\n if (this._changeActive || this.validJsonChange === false || disabled) {\n return;\n }\n\n const parsedDefinition = JSON.parse(value);\n\n this.modifiedFormDefinition = parsedDefinition;\n\n this._formDefinition$.next({\n ...definition,\n formDefinition: parsedDefinition,\n });\n }\n\n public onValidEvent(value: boolean, disabled: boolean): void {\n if (this._changeActive || disabled) {\n return;\n }\n\n this.validJsonChange = value;\n }\n\n public showUploadModal(): void {\n this.showModal$.next(true);\n }\n\n public showDuplicateModal(definition: FormDefinition): void {\n getFormManagementRouteParamsAndContext(this.route)\n .pipe(take(1))\n .subscribe(([context, params]) => {\n this.modalService.create({\n component: FormManagementDuplicateComponent,\n inputs: {\n formToDuplicate: definition,\n context,\n params,\n },\n });\n });\n }\n\n public setFormDefinition(formDefinition: any): void {\n this.reloading$.next(true);\n\n const definition = JSON.parse(formDefinition);\n if (!definition?.components) {\n this.reloading$.next(false);\n return;\n }\n\n const components = definition.components;\n const currentDefinition = this.modifiedFormDefinition || definition.formDefinition;\n const newDefinition = {...currentDefinition, ...(components && {components})};\n\n this.modifiedFormDefinition = newDefinition;\n definition.formDefinition = newDefinition;\n this._formDefinition$.next(definition);\n\n this.jsonFormDefinition$.next({\n value: JSON.stringify(newDefinition),\n language: 'json',\n });\n\n this.loadFormDefinition(false).subscribe(() => this.reloading$.next(false));\n }\n\n protected onConfirmRedirect(): void {\n const cancelButton: HTMLElement | null = document.querySelector('button[ref=\"cancelButton\"]');\n if (!cancelButton) {\n return;\n }\n\n cancelButton.click();\n }\n\n private checkToOpenUploadModal(): void {\n this.route.queryParams.pipe(take(1)).subscribe(params => {\n if (params?.upload === 'true') {\n this.showUploadModal();\n }\n });\n }\n\n private navigateBack(): void {\n this.router.navigate(['../'], {relativeTo: this.route});\n }\n\n private initBreadcrumbs(): void {\n getFormManagementRouteParamsAndContext(this.route)\n .pipe(take(1))\n .subscribe(([context, params]) => {\n if (context === 'independent' || !context) return;\n\n if (context === 'case') {\n const route = `/case-management/case/${params.caseDefinitionKey}/version/${params.caseDefinitionVersionTag}`;\n\n this.breadcrumbService.setThirdBreadcrumb({\n route: [route],\n content: `${params.caseDefinitionKey} (${params.caseDefinitionVersionTag})`,\n href: route,\n });\n\n const routeWithForms = `${route}/forms`;\n\n this.breadcrumbService.setFourthBreadcrumb({\n route: [routeWithForms],\n content: this.translateService.instant('caseManagement.tabs.forms'),\n href: routeWithForms,\n });\n } else if (context === 'buildingBlock') {\n const route = `/building-block-management/building-block/${params.buildingBlockDefinitionKey}/version/${params.buildingBlockDefinitionVersionTag}`;\n const generalRoute = `${route}/general`;\n\n this.breadcrumbService.setThirdBreadcrumb({\n route: [generalRoute],\n content: `${params.buildingBlockDefinitionKey} (${params.buildingBlockDefinitionVersionTag})`,\n href: generalRoute,\n });\n\n const routeWithForms = `${route}/forms`;\n\n this.breadcrumbService.setFourthBreadcrumb({\n route: [`${route}/forms`],\n content: this.translateService.instant('buildingBlockManagement.tabs.forms'),\n href: routeWithForms,\n });\n }\n });\n }\n}\n","<!--\n ~ Copyright 2015-2026 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<ng-container\n *ngIf=\"{\n formDefinition: formDefinition$ | async,\n jsonFormDefinition: jsonFormDefinition$ | async,\n jsonOutput: jsonOutput$ | async,\n compactMode: compactMode$ | async,\n context: context$ | async,\n canUpdateGlobalConfiguration: canUpdateGlobalConfiguration$ | async,\n isDraftVersion: isDraftVersion$ | async,\n } as obs\"\n>\n @if (obs.formDefinition) {\n <ng-container renderInPageHeader [fullWidth]=\"true\">\n <ng-template>\n <ng-container *ngTemplateOutlet=\"actions; context: {obs: obs}\"></ng-container>\n </ng-template>\n </ng-container>\n\n <cds-tabs type=\"contained\">\n <cds-tab [heading]=\"TABS.BUILDER | translate\" (selected)=\"onSelectedTab(TABS.BUILDER)\">\n <valtimo-form-io-builder\n *ngIf=\"(reloading$ | async) === false && activeTab === TABS.BUILDER\"\n [form]=\"obs.formDefinition.formDefinition\"\n (change)=\"formBuilderChanged($event, obs.jsonFormDefinition)\"\n ></valtimo-form-io-builder>\n </cds-tab>\n\n <cds-tab [heading]=\"TABS.EDITOR | translate\" (selected)=\"onSelectedTab(TABS.EDITOR)\">\n @if (activeTab === TABS.EDITOR && obs.jsonFormDefinition) {\n <ng-container\n *ngTemplateOutlet=\"\n jsonEditor;\n context: {\n data: {\n disabled: obs.formDefinition.readOnly || !obs.canUpdateGlobalConfiguration,\n formDefinition: obs.formDefinition,\n model: obs.jsonFormDefinition,\n },\n }\n \"\n ></ng-container>\n }\n </cds-tab>\n\n <cds-tab\n [heading]=\"TABS.OUTPUT | translate\"\n (selected)=\"onSelectedTab(TABS.OUTPUT)\"\n class=\"valtimo-form-management-edit__output\"\n >\n <valtimo-form-io\n *ngIf=\"activeTab === TABS.OUTPUT\"\n [form]=\"obs.formDefinition.formDefinition\"\n (change)=\"onOutputChange($event)\"\n ></valtimo-form-io>\n\n @if (activeTab === TABS.OUTPUT && obs.jsonOutput) {\n <ng-container\n *ngTemplateOutlet=\"\n jsonEditor;\n context: {\n data: {disabled: true, formDefinition: obs.formDefinition, model: obs.jsonOutput},\n }\n \"\n ></ng-container>\n }\n </cds-tab>\n </cds-tabs>\n } @else {\n <cds-loading></cds-loading>\n }\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"interface.deleteConfirmation\"\n cancelButtonTextTranslationKey=\"interface.cancel\"\n [outputOnConfirm]=\"obs.formDefinition\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"dashboardManagement.delete\"\n (confirmEvent)=\"deleteFormDefinition($event)\"\n ></valtimo-confirmation-modal>\n\n <valtimo-form-management-upload\n [show$]=\"showModal$\"\n (definitionUploaded)=\"setFormDefinition($event)\"\n ></valtimo-form-management-upload>\n\n <ng-template #jsonEditor let-data=\"data\">\n <valtimo-editor\n [model]=\"data.model\"\n [disabled]=\"data.disabled\"\n (validEvent)=\"onValidEvent($event, data.disabled)\"\n (valueChangeEvent)=\"onValueChangeEvent($event, data.formDefinition, data.disabled)\"\n [fitPage]=\"true\"\n ></valtimo-editor>\n </ng-template>\n</ng-container>\n\n<ng-template #actions let-obs=\"obs\">\n <div\n class=\"valtimo-form-management-edit__header-container\"\n [ngClass]=\"{\n '--compact': obs.compactMode,\n }\"\n >\n @if (obs.formDefinition.readOnly || !obs.canUpdateGlobalConfiguration || !obs.isDraftVersion) {\n <cds-tag size=\"sm\" type=\"blue\">{{ 'formManagement.readOnly' | translate }}</cds-tag>\n }\n\n <div class=\"valtimo-form-management-edit__header\">\n <v-overflow-menu placement=\"bottom-end\">\n <v-overflow-menu-trigger overflowTrigger></v-overflow-menu-trigger>\n <v-overflow-menu-option (selected)=\"downloadFormDefinition(obs.formDefinition)\">\n {{ 'Download' | translate }}\n </v-overflow-menu-option>\n\n <v-overflow-menu-option\n [disabled]=\"\n obs.formDefinition.readOnly || !obs.canUpdateGlobalConfiguration || !obs.isDraftVersion\n \"\n (selected)=\"showUploadModal()\"\n >\n {{ 'Upload' | translate }}\n </v-overflow-menu-option>\n\n <v-overflow-menu-option\n *ngIf=\"(obs.context === 'case' && obs.isDraftVersion) || obs.context === 'independent'\"\n (selected)=\"showDuplicateModal(obs.formDefinition)\"\n >\n {{ 'formManagement.duplicate' | translate }}\n </v-overflow-menu-option>\n\n <v-overflow-menu-option\n [disabled]=\"\n obs.formDefinition.readOnly || !obs.canUpdateGlobalConfiguration || !obs.isDraftVersion\n \"\n type=\"danger\"\n (selected)=\"delete()\"\n >\n {{ 'interface.delete' | translate }}\n </v-overflow-menu-option>\n </v-overflow-menu>\n\n @if (obs.context === 'case') {\n <button\n cdsButton=\"secondary\"\n [size]=\"obs.compactMode ? 'sm' : 'md'\"\n (click)=\"onGoBackButtonClick()\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"arrow--left\" size=\"16\"></svg>\n\n <span>{{ 'interface.back' | translate }}</span>\n </button>\n }\n\n <button\n *ngIf=\"obs?.canUpdateGlobalConfiguration || obs.context === 'independent'\"\n cdsButton=\"primary\"\n [disabled]=\"obs.formDefinition.readOnly || !obs.isDraftVersion\"\n [size]=\"obs.compactMode ? 'sm' : 'md'\"\n (click)=\"modifyFormDefinition(obs.formDefinition)\"\n [attr.data-test-id]=\"testIds.saveButton\"\n >\n {{ 'interface.save' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"save\" size=\"16\"></svg>\n </button>\n </div>\n </div>\n</ng-template>\n","/*\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-management-edit.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 */\n\nexport * from './form-management-create';\nexport * from './form-management-edit';\nexport * from './form-management-duplicate';\nexport * from './form-management-list';\nexport * from './form-management-upload';\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 {RouterModule, Routes} from '@angular/router';\nimport {ROLE_ADMIN, RouterUtils} from '@valtimo/shared';\nimport {AuthGuardService} from '@valtimo/security';\nimport {FormManagementComponent} from './components/form-management/form-management.component';\nimport {FormManagementRouteData} from './models';\nimport {FormManagementEditComponent} from './components';\n\nconst routes: Routes = [\n {\n path: 'form-management',\n component: FormManagementComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Forms', roles: [ROLE_ADMIN], context: 'independent'} as FormManagementRouteData,\n },\n {\n path: 'form-management/:formDefinitionId',\n component: FormManagementEditComponent,\n canActivate: [AuthGuardService],\n data: {\n title: 'Forms',\n roles: [ROLE_ADMIN],\n context: 'independent',\n customPageTitle: true,\n } as FormManagementRouteData,\n },\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes, RouterUtils.getRouterExtraOptions())],\n exports: [RouterModule],\n})\nexport class FormManagementRoutingModule {}\n\n@NgModule({\n imports: [FormManagementComponent, FormManagementRoutingModule],\n})\nexport class FormManagementModule {}\n","/*\n * Copyright 2015-2026 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of form-management\n */\n\nexport * from './lib/services/form-management.service';\nexport * from './lib/components/form-management/form-management.component';\nexport * from './lib/models';\nexport * from './lib/form-management.module';\nexport * from './lib/components/form-management-edit/form-management-edit.component';\nexport * from './lib/components/form-management-create/form-management-create.component';\nexport * from './lib/constants';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","map","switchMap","i1.FormManagementService","i6","filter","take","i7","i1","i3","i2.FormManagementService","i5","tap","i4"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;AAcG;AAgBG,MAAO,qBAAsB,SAAQ,cAAc,CAAA;IACvD,WAAA,CACqB,UAAsB,EACtB,aAA4B,EAAA;AAE/C,QAAA,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC;QAHb,IAAA,CAAA,UAAU,GAAV,UAAU;QACV,IAAA,CAAA,aAAa,GAAb,aAAa;IAGlC;AAEO,IAAA,iBAAiB,CAAC,gBAAwB,EAAA;AAC/C,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,IAAI,CAAC,SAAS,CAAC,CAAA,oBAAA,EAAuB,gBAAgB,CAAA,CAAE,CAAC,CAC1D;IACH;AAEO,IAAA,qBAAqB,CAC1B,iBAAyB,EACzB,wBAAgC,EAChC,gBAAwB,EAAA;AAExB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,IAAI,CAAC,SAAS,CACZ,CAAA,+BAAA,EAAkC,iBAAiB,YAAY,wBAAwB,CAAA,MAAA,EAAS,gBAAgB,CAAA,CAAE,CACnH,CACF;IACH;AAEO,IAAA,oBAAoB,CAAC,kBAA0B,EAAA;AACpD,QAAA,IAAI,CAAC,kBAAkB;AAAE,YAAA,OAAO,EAAE,CAAC,KAAK,CAAC;AAEzC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,IAAI,CAAC,SAAS,CAAC,CAAA,2BAAA,EAA8B,kBAAkB,CAAA,CAAE,CAAC,CACnE;IACH;AAEO,IAAA,wBAAwB,CAC7B,iBAAyB,EACzB,wBAAgC,EAChC,kBAA0B,EAAA;AAE1B,QAAA,IAAI,CAAC,kBAAkB,IAAI,CAAC,iBAAiB,IAAI,CAAC,wBAAwB;AAAE,YAAA,OAAO,EAAE,CAAC,KAAK,CAAC;AAE5F,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,IAAI,CAAC,SAAS,CACZ,CAAA,8BAAA,EAAiC,iBAAiB,YAAY,wBAAwB,CAAA,MAAA,EAAS,kBAAkB,CAAA,OAAA,CAAS,CAC3H,CACF;IACH;AAEO,IAAA,oBAAoB,CAAC,MAAY,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAqB,IAAI,CAAC,SAAS,CAAC,CAAA,mBAAA,CAAqB,CAAC,EAAE;YACpF,MAAM;AACP,SAAA,CAAC;IACJ;AAEO,IAAA,wBAAwB,CAC7B,iBAAyB,EACzB,wBAAgC,EAChC,MAAY,EAAA;AAEZ,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,IAAI,CAAC,SAAS,CACZ,kCAAkC,iBAAiB,CAAA,SAAA,EAAY,wBAAwB,CAAA,KAAA,CAAO,CAC/F,EACD;YACE,MAAM;AACP,SAAA,CACF;IACH;AAEO,IAAA,oBAAoB,CAAC,OAAoC,EAAA;AAC9D,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAiB,IAAI,CAAC,SAAS,CAAC,CAAA,mBAAA,CAAqB,CAAC,EAAE,OAAO,CAAC;IAC7F;AAEO,IAAA,yBAAyB,CAC9B,iBAAyB,EACzB,wBAAgC,EAChC,OAAoC,EAAA;AAEpC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CACzB,IAAI,CAAC,SAAS,CACZ,CAAA,+BAAA,EAAkC,iBAAiB,YAAY,wBAAwB,CAAA,KAAA,CAAO,CAC/F,EACD,OAAO,CACR;IACH;AAEO,IAAA,oBAAoB,CAAC,OAAoC,EAAA;AAC9D,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAiB,IAAI,CAAC,SAAS,CAAC,CAAA,mBAAA,CAAqB,CAAC,EAAE,OAAO,CAAC;IAC5F;AAEO,IAAA,wBAAwB,CAC7B,iBAAyB,EACzB,wBAAgC,EAChC,OAAoC,EAAA;AAEpC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,IAAI,CAAC,SAAS,CACZ,CAAA,+BAAA,EAAkC,iBAAiB,YAAY,wBAAwB,CAAA,KAAA,CAAO,CAC/F,EACD,OAAO,CACR;IACH;AAEO,IAAA,oBAAoB,CAAC,gBAAwB,EAAA;AAClD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAO,IAAI,CAAC,SAAS,CAAC,CAAA,oBAAA,EAAuB,gBAAgB,CAAA,CAAE,CAAC,CAAC;IAChG;AAEO,IAAA,wBAAwB,CAC7B,iBAAyB,EACzB,wBAAgC,EAChC,gBAAwB,EAAA;AAExB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAC3B,IAAI,CAAC,SAAS,CACZ,CAAA,+BAAA,EAAkC,iBAAiB,YAAY,wBAAwB,CAAA,MAAA,EAAS,gBAAgB,CAAA,CAAE,CACnH,CACF;IACH;;AAIO,IAAA,8BAA8B,CACnC,0BAAkC,EAClC,iCAAyC,EACzC,gBAAwB,EAAA;AAExB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,IAAI,CAAC,SAAS,CACZ,CAAA,8BAAA,EAAiC,0BAA0B,YAAY,iCAAiC,CAAA,MAAA,EAAS,gBAAgB,CAAA,CAAE,CACpI,CACF;IACH;AAEO,IAAA,iCAAiC,CACtC,0BAAkC,EAClC,iCAAyC,EACzC,kBAA0B,EAAA;AAE1B,QAAA,IAAI,CAAC,kBAAkB,IAAI,CAAC,0BAA0B,IAAI,CAAC,iCAAiC;AAC1F,YAAA,OAAO,EAAE,CAAC,KAAK,CAAC;AAElB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,IAAI,CAAC,SAAS,CACZ,CAAA,6BAAA,EAAgC,0BAA0B,YAAY,iCAAiC,CAAA,MAAA,EAAS,kBAAkB,CAAA,OAAA,CAAS,CAC5I,CACF;IACH;AAEO,IAAA,iCAAiC,CACtC,0BAAkC,EAClC,iCAAyC,EACzC,MAAY,EAAA;AAEZ,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,IAAI,CAAC,SAAS,CACZ,iCAAiC,0BAA0B,CAAA,SAAA,EAAY,iCAAiC,CAAA,KAAA,CAAO,CAChH,EACD;YACE,MAAM;AACP,SAAA,CACF;IACH;AAEO,IAAA,kCAAkC,CACvC,0BAAkC,EAClC,iCAAyC,EACzC,OAAoC,EAAA;AAEpC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CACzB,IAAI,CAAC,SAAS,CACZ,CAAA,8BAAA,EAAiC,0BAA0B,YAAY,iCAAiC,CAAA,KAAA,CAAO,CAChH,EACD,OAAO,CACR;IACH;AAEO,IAAA,iCAAiC,CACtC,0BAAkC,EAClC,iCAAyC,EACzC,OAAoC,EAAA;QAEpC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,IAAI,CAAC,SAAS,CACZ,CAAA,8BAAA,EAAiC,0BAA0B,CAAA,SAAA,EAAY,iCAAiC,CAAA,MAAA,EAAS,OAAO,CAAC,EAAE,EAAE,CAC9H,EACD,OAAO,CACR;IACH;AAEO,IAAA,iCAAiC,CACtC,0BAAkC,EAClC,iCAAyC,EACzC,gBAAwB,EAAA;AAExB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAC3B,IAAI,CAAC,SAAS,CACZ,CAAA,8BAAA,EAAiC,0BAA0B,YAAY,iCAAiC,CAAA,MAAA,EAAS,gBAAgB,CAAA,CAAE,CACpI,CACF;IACH;+GAvMW,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA,CAAA;;4FAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;AC7BD;;;;;;;;;;;;;;AAcG;AAEI,MAAM,6BAA6B,GAAG;AAC3C,IAAA,gBAAgB,EAAE,gCAAgC;;AAG7C,MAAM,+BAA+B,GAAG;AAC7C,IAAA,SAAS,EAAE,+BAA+B;AAC1C,IAAA,YAAY,EAAE,kCAAkC;;AAG3C,MAAM,6BAA6B,GAAG;AAC3C,IAAA,UAAU,EAAE,8BAA8B;;;AC1B5C;;;;;;;;;;;;;;AAcG;;ACWH,SAAS,oBAAoB,CAAC,KAAqB,EAAA;IACjD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CACpB,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,IAAK,IAAI,CAAC,SAAS,CAAuB,KAAK,IAAI,CAAC,EACrE,oBAAoB,EAAE,CACvB;AACH;AAEA,SAAS,sCAAsC,CAC7C,KAAqB,EAAA;AAErB,IAAA,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC;IAE5C,OAAO,QAAQ,CAAC,IAAI,CAClB,SAAS,CAAC,OAAO,IAAG;AAClB,QAAA,IAAI,OAAO,KAAK,MAAM,EAAE;AACtB,YAAA,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,4BAA4B,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CACjF,GAAG,CACD,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,KACZ;gBACE,GAAG;AACH,gBAAA;oBACE,iBAAiB,EAAE,MAAM,EAAE,iBAAiB;oBAC5C,wBAAwB,EAAE,MAAM,EAAE,wBAAwB;AAC3D,iBAAA;AAC2C,aAAA,CACjD,CACF;QACH;AAEA,QAAA,IAAI,OAAO,KAAK,eAAe,EAAE;AAC/B,YAAA,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,qCAAqC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAC1F,GAAG,CACD,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,KACZ;gBACE,GAAG;AACH,gBAAA;oBACE,0BAA0B,EAAE,MAAM,EAAE,0BAA0B;oBAC9D,iCAAiC,EAAE,MAAM,EAAE,iCAAiC;AAC7E,iBAAA;AAC2C,aAAA,CACjD,CACF;QACH;QAEA,MAAM,cAAc,GAAyB,EAAE;QAC/C,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,cAAc,CAAqD,CAAC;IAC1F,CAAC,CAAC,CACH;AACH;;ACzEA;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;SAQa,wBAAwB,CACtC,OAAsC,EACtC,MAA4B,EAC5B,qBAA4C,EAAA;IAE5C,OAAO,CAAC,OAAwB,KAAkC;AAChE,QAAA,IAAI,OAA4B;QAEhC,QAAQ,OAAO;AACb,YAAA,KAAK,MAAM;gBACT,OAAO,GAAG,qBAAqB,CAAC,wBAAwB,CACtD,MAAM,CAAC,iBAAkB,EACzB,MAAM,CAAC,wBAAyB,EAChC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CACzB;gBACD;AACF,YAAA,KAAK,eAAe;gBAClB,OAAO,GAAG,qBAAqB,CAAC,iCAAiC,CAC/D,MAAM,CAAC,0BAA2B,EAClC,MAAM,CAAC,iCAAkC,EACzC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CACzB;gBACD;AACF,YAAA;AACE,gBAAA,OAAO,GAAG,qBAAqB,CAAC,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC9E;;AAGJ,QAAA,OAAO,OAAO,CAAC,IAAI,CAACC,KAAG,CAAC,CAAC,MAAe,MAAM,MAAM,GAAG,EAAC,SAAS,EAAE,IAAI,EAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACpF,IAAA,CAAC;AACH;;ACpDA;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;MA4CU,6BAA6B,CAAA;AAkBxC,IAAA,WAAA,CACmB,qBAA4C,EAC5C,WAAwB,EACxB,KAAqB,EAAA;QAFrB,IAAA,CAAA,qBAAqB,GAArB,qBAAqB;QACrB,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,KAAK,GAAL,KAAK;QApBC,IAAA,CAAA,MAAM,GAAG,KAAK;AAEb,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAQ;AACtC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAU;AAC7C,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAU;AAEvD,QAAA,IAAA,CAAA,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC;AAE3C,QAAA,IAAA,CAAA,0BAA0B,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAC7D,MAAM,CAAC,OAAO,IAAI,OAAO,KAAK,MAAM,CAAC,EACrCC,WAAS,CAAC,MAAM,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAC1D;QAIkB,IAAA,CAAA,OAAO,GAAG,+BAA+B;IAMzD;IAEI,QAAQ,GAAA;QACb,IAAI,CAAC,QAAQ,EAAE;IACjB;IAEQ,QAAQ,GAAA;AACd,QAAA,sCAAsC,CAAC,IAAI,CAAC,KAAK;AAC9C,aAAA,IAAI,CACH,IAAI,CAAC,CAAC,CAAC,EACP,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,KAAI;YACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;gBACjC,IAAI,EAAE,IAAI,WAAW,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,EAAE;oBAC7C,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,qBAAqB,CAAC;iBACtE,CAAC;AACH,aAAA,CAAC;AACJ,QAAA,CAAC,CAAC;AAEH,aAAA,SAAS,EAAE;IAChB;AAEA,IAAA,IAAW,YAAY,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,QAAQ;IAC5B;IAEO,iBAAiB,GAAA;AACtB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;IACzB;IAEO,KAAK,GAAA;QACV,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC,IAAI,EAAE,EAAE,EAAC,CAAC;IAChC;IAEO,YAAY,GAAA;AACjB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;IACzB;IAEO,oBAAoB,GAAA;QACzB,MAAM,SAAS,GAAG,EAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAC;AACnD,QAAA,MAAM,OAAO,GAAgC;AAC3C,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;AAC1B,YAAA,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;SAC1C;AAED,QAAA,sCAAsC,CAAC,IAAI,CAAC,KAAK;AAC9C,aAAA,IAAI,CACH,IAAI,CAAC,CAAC,CAAC,EACPA,WAAS,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,KAAI;YAC9B,QAAQ,OAAO;AACb,gBAAA,KAAK,MAAM;AACT,oBAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,yBAAyB,CACzD,MAAM,CAAC,iBAAkB,EACzB,MAAM,CAAC,wBAAyB,EAChC,OAAO,CACR;AACH,gBAAA,KAAK,eAAe;AAClB,oBAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,kCAAkC,CAClE,MAAM,CAAC,0BAA2B,EAClC,MAAM,CAAC,iCAAkC,EACzC,OAAO,CACR;AACH,gBAAA;oBACE,OAAO,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,OAAO,CAAC;;AAErE,QAAA,CAAC,CAAC,EACF,GAAG,CAAC,cAAc,IAAG;AACnB,YAAA,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YAC/C;iBAAO;gBACL,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YAC/C;AACF,QAAA,CAAC,CAAC;AAEH,aAAA,SAAS,EAAE;IAChB;AAEO,IAAA,QAAQ,CAAC,KAAY,EAAA;QAC1B,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,eAAe,EAAE;AAEvB,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AAE5B,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACrB;QACF;QAEA,IAAI,CAAC,oBAAoB,EAAE;IAC7B;+GA7GW,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1D1C,uyEAqEA,EAAA,MAAA,EAAA,CAAA,otBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDzBI,YAAY,oIACZ,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACnB,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,YAAY,kMACZ,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,KAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,SAAA,EAAA,MAAA,EAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,SAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAEZ,WAAW,8BACX,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,KAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,SAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,kDAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,wBAAwB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAIf,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBApBzC,SAAS;+BACE,gCAAgC,EAAA,UAAA,EAG9B,IAAI,EAAA,OAAA,EACP;wBACP,YAAY;wBACZ,mBAAmB;wBACnB,eAAe;wBACf,YAAY;wBACZ,WAAW;wBACX,YAAY;wBACZ,WAAW;wBACX,WAAW;wBACX,WAAW;wBACX,WAAW;wBACX,wBAAwB;wBACxB,YAAY;AACb,qBAAA,EAAA,QAAA,EAAA,uyEAAA,EAAA,MAAA,EAAA,CAAA,otBAAA,CAAA,EAAA;8IAGwB,MAAM,EAAA,CAAA;sBAA9B;gBAEyB,WAAW,EAAA,CAAA;sBAApC;gBACyB,gBAAgB,EAAA,CAAA;sBAAzC;gBACyB,gBAAgB,EAAA,CAAA;sBAAzC;;;AE/DH;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;MAyDU,2BAA2B,CAAA;AA2CtC,IAAA,IAAY,kBAAkB,GAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE;IAC5C;AAyDA,IAAA,WAAA,CACmB,qBAA4C,EAC5C,WAAwB,EACxB,KAAqB,EACrB,kBAAsC,EACtC,mBAAwC,EACxC,mBAA8C,EAC9C,gBAAkC,EAClC,sBAA8C,EAAA;QAP9C,IAAA,CAAA,qBAAqB,GAArB,qBAAqB;QACrB,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,KAAK,GAAL,KAAK;QACL,IAAA,CAAA,kBAAkB,GAAlB,kBAAkB;QAClB,IAAA,CAAA,mBAAmB,GAAnB,mBAAmB;QACnB,IAAA,CAAA,mBAAmB,GAAnB,mBAAmB;QACnB,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;QAChB,IAAA,CAAA,sBAAsB,GAAtB,sBAAsB;AA7Gf,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAQ;AAChD,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAQ;AAChD,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAU;AAE1D,QAAA,IAAA,CAAA,YAAY,GAAiB;AAC3C,YAAA;gBACE,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5C,gBAAA,KAAK,EAAE,gBAAgB;AACxB,aAAA;AACD,YAAA,EAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,EAAC;SACvF;AAEe,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC;AACtD,QAAA,IAAA,CAAA,uBAAuB,GAAG,IAAI,eAAe,CAAwB,IAAI,CAAC;AAC1E,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAAU,IAAI,CAAC;AAC7C,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,eAAe,CAAS,EAAE,CAAC;QAE1C,IAAA,CAAA,OAAO,GAAG,6BAA6B;AAE1C,QAAA,IAAA,CAAA,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC;AAE3C,QAAA,IAAA,CAAA,0BAA0B,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAC7DC,QAAM,CAAC,OAAO,IAAI,OAAO,KAAK,MAAM,CAAC,EACrCH,WAAS,CAAC,MAAM,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAC1D;QAEe,IAAA,CAAA,mBAAmB,GAAwB,aAAa,CAAC;AACvE,YAAA,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC;AACxC,YAAA,IAAI,CAAC,QAAQ;SACd,CAAC,CAAC,IAAI,CACLA,WAAS,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,KAC1B,IAAI,CAAC,sBAAsB,CAAC,kCAAkC,CAAC,MAAM,EAAE,OAAO,CAAC,CAChF,CACF;AAEgB,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,eAAe,CAAS,CAAC,CAAC;QAEjD,IAAA,CAAA,mBAAmB,GAAG,IAAI,eAAe,CAAsB;AAC9E,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,IAAI,EAAE,EAAE;AACT,SAAA,CAAC;QAMK,IAAA,CAAA,WAAW,GAA2B,aAAa,CAAC;AACzD,YAAA,IAAI,CAAC,gBAAgB;AACrB,YAAA,IAAI,CAAC,mBAAmB;SACzB,CAAC,CAAC,IAAI,CACLD,KAAG,CACD,CAAC,CAAC,cAAc,EAAE,iBAAiB,CAAC,MACjC,EAAC,GAAG,iBAAiB,EAAE,cAAc,EAAC,CAAe,CACzD,CACF;QAEe,IAAA,CAAA,gBAAgB,GAAG,aAAa,CAAC;AAC/C,YAAA,IAAI,CAAC,QAAQ;YACb,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACrD,YAAA,IAAI,CAAC,mBAAmB;AACxB,YAAA,IAAI,CAAC,WAAW;SACjB,CAAC,CAAC,IAAI,CACLI,QAAM,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,KACvB,OAAO,KAAK,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,wBAAwB,IAAI,MAAM,EAAE,iBAAiB,CAAC,GAAG,IAAI,CAC9F,EACDH,WAAS,CAAC,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC,KAAI;AAC3D,YAAA,MAAM,MAAM,GAAG;AACb,gBAAA,GAAG,UAAU;gBACb,IAAI,EAAE,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC;AACjC,gBAAA,IAAI,UAAU,IAAI,EAAC,UAAU,EAAC,CAAC;aAChC;YAED,QAAQ,OAAO;AACb,gBAAA,KAAK,MAAM;oBACT,OAAO,IAAI,CAAC,qBAAqB,CAAC,wBAAwB,CACxD,WAAW,EAAE,iBAAiB,IAAI,EAAE,EACpC,WAAW,EAAE,wBAAwB,IAAI,EAAE,EAC3C,MAAM,CACP;gBACH;AACA,gBAAA,KAAK,aAAa;oBAChB,OAAO,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,MAAM,CAAC;;AAEpE,QAAA,CAAC,CAAC,EACFD,KAAG,CAAC,CAAC,GAAQ,KAAI;YACf,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC;YAE9C,OAAO,GAAG,EAAE;AACV,kBAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,KAC1C,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,EAAE,aAAa,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC;kBAE7D,EAAE;AACR,QAAA,CAAC,CAAC,EACF,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CACrC;AAEe,QAAA,IAAA,CAAA,MAAM,GAAmB;AACvC,YAAA,EAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAC;AACjC,YAAA,EAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAC;SAClE;QAYC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC1C;IAEO,qBAAqB,GAAA;AAC1B,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE;IACnC;IAEO,qBAAqB,GAAA;AAC1B,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE;IACnC;AAEO,IAAA,iBAAiB,CAAC,IAAY,EAAA;AACnC,QAAA,IAAI,CAAC,gBAAgB,CAAC,EAAC,IAAI,EAAC,CAAC;IAC/B;AAEO,IAAA,aAAa,CAAC,IAAY,EAAA;QAC/B,IAAI,CAAC,gBAAgB,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAC,CAAC;IACxC;AAEO,IAAA,kBAAkB,CAAC,cAA8B,EAAA;QACtD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;IAClD;AAEO,IAAA,iBAAiB,CAAC,UAAkB,EAAA;AACzC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;IACnC;AAEO,IAAA,eAAe,CAAC,UAA0B,EAAA;AAC/C,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC;AAC7C,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;IAClC;AAEO,IAAA,oBAAoB,CAAC,UAA0B,EAAA;AACpD,QAAA,sCAAsC,CAAC,IAAI,CAAC,KAAK;AAC9C,aAAA,IAAI,CACHK,MAAI,CAAC,CAAC,CAAC,EACPJ,WAAS,CAAC,CAAC,CAAC,OAAO,EAAE,yBAAyB,CAAC,KAAI;YACjD,QAAQ,OAAO;AACb,gBAAA,KAAK,MAAM;AACT,oBAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,wBAAwB,CACxD,yBAAyB,EAAE,iBAAiB,EAC5C,yBAAyB,EAAE,wBAAwB,EACnD,UAAU,CAAC,EAAE,CACd;AAEH,gBAAA,KAAK,aAAa;AAClB,gBAAA;oBACE,OAAO,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAC;;AAE3E,QAAA,CAAC,CAAC;AAEH,aAAA,SAAS,CAAC;YACT,IAAI,EAAE,MAAK;AACT,gBAAA,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC;AACjC,oBAAA,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,sCAAsC,CAAC;AAC7E,iBAAA,CAAC;AACF,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAC,GAAG,IAAI,CAAC,kBAAkB,EAAC,CAAC;YAC7D,CAAC;YACD,KAAK,EAAE,MAAK;AACV,gBAAA,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC;AACjC,oBAAA,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,4CAA4C,CAAC;AACnF,iBAAA,CAAC;YACJ,CAAC;AACF,SAAA,CAAC;IACN;AAEQ,IAAA,gBAAgB,CAAC,MAA2B,EAAA;AAClD,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAC,GAAG,IAAI,CAAC,kBAAkB,EAAE,GAAG,MAAM,EAAC,CAAC;IACxE;+GAtLW,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAH,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,iPCvExC,kwFA2EA,EAAA,MAAA,EAAA,CAAA,goBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDdI,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACnB,eAAe,2FACf,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,6BAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,QAAA,EAAA,aAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,cAAA,EAAA,OAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,wBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,UAAU,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAP,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACV,YAAY,kMACZ,uBAAuB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAO,IAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,iCAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,kCAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,gCAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,yBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,eAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAGd,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAhBvC,SAAS;+BACE,8BAA8B,EAAA,UAAA,EAG5B,IAAI,EAAA,OAAA,EACP;wBACP,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,eAAe;wBACf,gBAAgB;wBAChB,UAAU;wBACV,YAAY;wBACZ,uBAAuB;AACxB,qBAAA,EAAA,QAAA,EAAA,kwFAAA,EAAA,MAAA,EAAA,CAAA,goBAAA,CAAA,EAAA;+TAGyB,qBAAqB,EAAA,CAAA;sBAA9C;gBACyB,qBAAqB,EAAA,CAAA;sBAA9C;gBACyB,mBAAmB,EAAA,CAAA;sBAA5C;;;AE1EH;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;MAsBU,uBAAuB,CAAA;AAIlC,IAAA,WAAA,CACmB,KAAqB,EACrB,MAAc,EACd,mBAA8C,EAC9C,gBAAkC,EAAA;QAHlC,IAAA,CAAA,KAAK,GAAL,KAAK;QACL,IAAA,CAAA,MAAM,GAAN,MAAM;QACN,IAAA,CAAA,mBAAmB,GAAnB,mBAAmB;QACnB,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;AAPnB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC;AAC7C,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC;IAO1D;IAEI,uBAAuB,GAAA;AAC5B,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;IACzB;IAEO,uBAAuB,GAAA;AAC5B,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;IAC1B;AAEO,IAAA,yBAAyB,CAAC,gBAAwB,EAAE,MAAM,GAAG,KAAK,EAAA;QACvE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,EAAE;YACvC,UAAU,EAAE,IAAI,CAAC,KAAK;AACtB,YAAA,WAAW,EAAE,EAAC,IAAI,MAAM,IAAI,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC,EAAC;AAC7C,SAAA,CAAC;IACJ;AAEO,IAAA,2BAA2B,CAAC,gBAAwB,EAAA;QACzD,IAAI,CAAC,kBAAkB,EAAE;AAEzB,QAAA,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC;AACjC,YAAA,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,sCAAsC,CAAC;AAC7E,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,yBAAyB,CAAC,gBAAgB,CAAC;IAClD;AAEO,IAAA,2BAA2B,CAAC,gBAAwB,EAAA;QACzD,IAAI,CAAC,kBAAkB,EAAE;AAEzB,QAAA,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC;AACjC,YAAA,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,sCAAsC,CAAC;AAC7E,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,yBAAyB,CAAC,gBAAgB,EAAE,IAAI,CAAC;IACxD;IAEO,uBAAuB,GAAA;AAC5B,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;IACzB;IAEQ,kBAAkB,GAAA;AACxB,QAAA,IAAI,CAAC;AACH,cAAE,mBAAmB;AACpB,aAAA,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxD;+GA1DW,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAR,EAAA,CAAA,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAAS,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpCpC,2zCAoCA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDNI,YAAY,2LACZ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACZ,2BAA2B,EAAA,QAAA,EAAA,8BAAA,EAAA,OAAA,EAAA,CAAA,uBAAA,EAAA,uBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC3B,6BAA6B,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAGpB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAXnC,SAAS;AAES,YAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EAAA,OAAA,EACP;wBACP,YAAY;wBACZ,YAAY;wBACZ,2BAA2B;wBAC3B,6BAA6B;AAC9B,qBAAA,EAAA,QAAA,EAAA,2zCAAA,EAAA;;;AElCH;;;;;;;;;;;;;;AAcG;AAIG,SAAU,sBAAsB,CAAC,GAAmB,EAAE,GAAmB,EAAA;IAC7E,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,EAAE;AAChC,QAAA,OAAO,IAAI;IACb;IACA,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,EAAE;AAChC,QAAA,OAAO,KAAK;IACd;AACA,IAAA,OAAO,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE;AAC1B;;AC1BA;;;;;;;;;;;;;;AAcG;IAES;AAAZ,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,iCAA2C;AAC3C,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,gCAAyC;AACzC,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,4BAAqC;AACvC,CAAC,EAJW,SAAS,KAAT,SAAS,GAAA,EAAA,CAAA,CAAA;;AChBrB;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;AAuCG,MAAO,gCAAiC,SAAQ,SAAS,CAAA;AAG7D,IAAA,IAAW,iBAAiB,GAAA;QAC1B,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,mBAAmB,CAAgB;IACxE;IAEO,cAAc,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,YAAY;IACjD;AAEA,IAAA,WAAA,CAC6C,eAA+B,EACvC,OAA0B,EAC3B,MAA4B,EACpD,YAA0B,EAC1B,qBAA4C,EAC5C,KAAqB,EACvB,MAAc,EACL,mBAA8C,EAC9C,gBAAkC,EAAA;AAEnD,QAAA,KAAK,EAAE;QAVoC,IAAA,CAAA,eAAe,GAAf,eAAe;QACvB,IAAA,CAAA,OAAO,GAAP,OAAO;QACR,IAAA,CAAA,MAAM,GAAN,MAAM;QAC9B,IAAA,CAAA,YAAY,GAAZ,YAAY;QACZ,IAAA,CAAA,qBAAqB,GAArB,qBAAqB;QACrB,IAAA,CAAA,KAAK,GAAL,KAAK;QACP,IAAA,CAAA,MAAM,GAAN,MAAM;QACG,IAAA,CAAA,mBAAmB,GAAnB,mBAAmB;QACnB,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;IAGnC;IAEO,QAAQ,GAAA;QACb,IAAI,CAAC,QAAQ,EAAE;IACjB;IAEQ,QAAQ,GAAA;AACd,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,SAAS,CAAC;AACjC,YAAA,iBAAiB,EAAE,IAAI,WAAW,CAChC,IAAI,CAAC,cAAc,EAAE,EACrB,UAAU,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EACzC,CAAC,wBAAwB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAClF;AACF,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE;IACvC;IAEO,SAAS,GAAA;AACd,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB;AACtC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,KAAK;AAClF,QAAA,MAAM,OAAO,GAAgC;AAC3C,YAAA,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE;YAC9B,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC;SACpE;AAED,QAAA,IAAI,OAAO;AACX,QAAA,QAAQ,IAAI,CAAC,OAAO;AAClB,YAAA,KAAK,MAAM;gBACT,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,yBAAyB,CAC5D,IAAI,CAAC,MAAM,CAAC,iBAAkB,EAC9B,IAAI,CAAC,MAAM,CAAC,wBAAyB,EACrC,OAAO,CACR;gBACD;AACF,YAAA,KAAK,eAAe;gBAClB,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,kCAAkC,CACrE,IAAI,CAAC,MAAM,CAAC,0BAA2B,EACvC,IAAI,CAAC,MAAM,CAAC,iCAAkC,EAC9C,OAAO,CACR;gBACD;AACF,YAAA;gBACE,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,OAAO,CAAC;gBAClE;;QAGJ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9B,IAAI,EAAE,cAAc,IAAG;gBACrB,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAK;oBAClD,IAAI,CAAC,UAAU,EAAE;AACjB,oBAAA,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC;AACjC,wBAAA,IAAI,EAAE,SAAS;wBACf,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,yCAAyC,CAAC;AAChF,qBAAA,CAAC;AACJ,gBAAA,CAAC,CAAC;YACJ,CAAC;YACD,KAAK,EAAE,GAAG,IAAG;gBACX,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;oBAC7C,OAAO,CAAC,SAAS,CAAC,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC;gBACtC;qBAAO;oBACL,OAAO,CAAC,SAAS,CAAC,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC;gBACtC;YACF,CAAC;AACF,SAAA,CAAC;IACJ;IAEQ,MAAM,iBAAiB,CAAC,KAAa,EAAA;AAC3C,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC;AAEtC,QAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;AAEnF,QAAA,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE;AACtB,YAAA,QAAQ,CAAC,WAAW,CAAC,GAAG,KAAK;QAC/B;QAEA,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;AACrC,QAAA,MAAM,WAAW,GAAG,EAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAC;AAExD,QAAA,IAAI;AACF,YAAA,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE,EAAC,WAAW,EAAC,CAAC;QAChE;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,KAAK;QACd;IACF;AA3GW,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gCAAgC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAYjC,iBAAiB,EAAA,EAAA,EAAA,KAAA,EACjB,SAAS,aACT,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAdP,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gCAAgC,0HCrD7C,qtEAkEA,EAAA,MAAA,EAAA,CAAA,goBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDxBI,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,eAAe,2FACf,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,KAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,SAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,kDAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,WAAW,6WACX,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACnB,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,WAAW,4KACX,wBAAwB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAGf,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAjB5C,SAAS;+BACE,yCAAyC,EAAA,UAAA,EAGvC,IAAI,EAAA,OAAA,EACP;wBACP,YAAY;wBACZ,eAAe;wBACf,WAAW;wBACX,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,WAAW;wBACX,WAAW;wBACX,wBAAwB;AACzB,qBAAA,EAAA,QAAA,EAAA,qtEAAA,EAAA,MAAA,EAAA,CAAA,goBAAA,CAAA,EAAA;;0BAcE,MAAM;2BAAC,iBAAiB;;0BACxB,MAAM;2BAAC,SAAS;;0BAChB,MAAM;2BAAC,QAAQ;;;AEnEpB;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;MAuCU,6BAA6B,CAAA;AAoBxC,IAAA,WAAA,CACmB,WAAwB,EACxB,mBAA8C,EAC9C,gBAAkC,EAAA;QAFlC,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,mBAAmB,GAAnB,mBAAmB;QACnB,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;AApBT,QAAA,IAAA,CAAA,kBAAkB,GAAsB,IAAI,YAAY,EAAE;AAEpE,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC;AAEhD,QAAA,IAAA,CAAA,cAAc,GAAa,CAAC,MAAM,CAAC;AAEnC,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC5C,YAAA,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,GAAG,EAAO,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACtE,SAAA,CAAC;AAEc,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,IAAI,CACtE,SAAS,CAAC,IAAI,CAAC,EACfH,KAAG,CAAC,KAAK,IAAI,CAAC,EAAE,KAAK,YAAY,GAAG,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CACzD;AAEgB,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE;IAMjD;IAEI,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CACrB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,IAAG;AAC1B,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5B,CAAC,CAAC,CACH;IACH;IAEO,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;IACnC;IAEO,UAAU,GAAA;AACf,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;QAE3B,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACnB,QAAA,CAAC,EAAE,gBAAgB,CAAC,gBAAgB,CAAC;IACvC;AAEO,IAAA,MAAM,oBAAoB,GAAA;AAC/B,QAAA,MAAM,gBAAgB,GAAS,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI;AACnF,QAAA,MAAM,sBAAsB,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE;AAE5D,QAAA,IAAI,CAAC,sBAAsB;YAAE;AAE7B,QAAA,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC;AACxC,YAAA,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,+BAA+B,CAAC;AACtE,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,sBAAsB,CAAC;AAEpD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;IAC7B;+GA5DW,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAO,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAR,EAAA,CAAA,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAAS,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrD1C,6wDAgDA,EAAA,MAAA,EAAA,CAAA,goBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDJI,YAAY,qFACZ,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,kBAAkB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,OAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,cAAA,EAAA,MAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAClB,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,KAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,SAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,kDAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,mBAAmB,mlBACnB,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,cAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAGH,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAhBzC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gCAAgC,mBAGzB,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EAAA,OAAA,EACP;wBACP,YAAY;wBACZ,eAAe;wBACf,kBAAkB;wBAClB,WAAW;wBACX,WAAW;wBACX,mBAAmB;wBACnB,YAAY;AACb,qBAAA,EAAA,QAAA,EAAA,6wDAAA,EAAA,MAAA,EAAA,CAAA,goBAAA,CAAA,EAAA;uJAGwB,KAAK,EAAA,CAAA;sBAA7B;gBAEyB,kBAAkB,EAAA,CAAA;sBAA3C;;;AExDH;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;MA8FU,2BAA2B,CAAA;AAuDtC,IAAA,IAAY,eAAe,GAAA;AACzB,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE;IACzC;AA6BA,IAAA,WAAA,CACmB,qBAA4C,EAC5C,YAA0B,EAC1B,gBAAkC,EAClC,KAAqB,EACrB,YAA0B,EAC1B,iBAAoC,EACpC,WAAwB,EACxB,MAAc,EACd,gBAAkC,EAClC,mBAA8C,EAC9C,iBAAoC,EACpC,kBAAsC,EACtC,mBAAwC,EACxC,iBAAoC,EACpC,QAAkB,EAAA;QAdlB,IAAA,CAAA,qBAAqB,GAArB,qBAAqB;QACrB,IAAA,CAAA,YAAY,GAAZ,YAAY;QACZ,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;QAChB,IAAA,CAAA,KAAK,GAAL,KAAK;QACL,IAAA,CAAA,YAAY,GAAZ,YAAY;QACZ,IAAA,CAAA,iBAAiB,GAAjB,iBAAiB;QACjB,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,MAAM,GAAN,MAAM;QACN,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;QAChB,IAAA,CAAA,mBAAmB,GAAnB,mBAAmB;QACnB,IAAA,CAAA,iBAAiB,GAAjB,iBAAiB;QACjB,IAAA,CAAA,kBAAkB,GAAlB,kBAAkB;QAClB,IAAA,CAAA,mBAAmB,GAAnB,mBAAmB;QACnB,IAAA,CAAA,iBAAiB,GAAjB,iBAAiB;QACjB,IAAA,CAAA,QAAQ,GAAR,QAAQ;QApGW,IAAA,CAAA,KAAK,GAAG,8BAA8B;AAElD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAQ;AACtC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAQ;AACtC,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAQ;AAC5C,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAQ;AAC3C,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAW;AAC9C,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAW;QAEjE,IAAA,CAAA,sBAAsB,GAAsB,IAAI;QAChD,IAAA,CAAA,eAAe,GAAmB,IAAI;QAE7B,IAAA,CAAA,IAAI,GAAG,SAAS;AAEzB,QAAA,IAAA,CAAA,SAAS,GAAG,SAAS,CAAC,OAAO;QAEjB,IAAA,CAAA,OAAO,GAAG,6BAA6B;AAE1C,QAAA,IAAA,CAAA,UAAU,GAA8B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAC9EV,KAAG,CAAC,MAAM,KAAK,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,CAAC,CACxF;AAEe,QAAA,IAAA,CAAA,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC;AAE3C,QAAA,IAAA,CAAA,0BAA0B,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAC7D,MAAM,CAAC,OAAO,IAAI,OAAO,KAAK,MAAM,CAAC,EACrC,SAAS,CAAC,MAAM,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAC1D;AAEgB,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,eAAe,CAAwB,IAAI,CAAC;AAEpE,QAAA,IAAA,CAAA,6BAA6B,GAC3C,IAAI,CAAC,kBAAkB,CAAC,4BAA4B,EAAE;AAExC,QAAA,IAAA,CAAA,eAAe,GAAwB,sCAAsC,CAC3F,IAAI,CAAC,KAAK,CACX,CAAC,IAAI,CACJ,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,KAAI;AAC9B,YAAA,IAAI,OAAO,KAAK,MAAM,EAAE;AACtB,gBAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAC5C,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,wBAAwB,CACjC;YACH;AACA,YAAA,IAAI,OAAO,KAAK,eAAe,EAAE;AAC/B,gBAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,2BAA2B,CACzD,MAAM,EAAE,0BAA0B,EAClC,MAAM,EAAE,iCAAiC,CAC1C;YACH;AACA,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC,CAAC,CACH;AAMe,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAC1D,MAAM,CAAC,CAAC,UAAiC,KAAK,CAAC,CAAC,UAAU,CAAC,EAC3D,oBAAoB,CAClB,CAAC,kBAAkB,EAAE,kBAAkB,KACrC,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,cAAc,EAAE,UAAU,CAAC;AAC9D,YAAA,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,cAAc,EAAE,UAAU,CAAC,CACjE,EACDW,KAAG,CAAC,MAAK;AACP,YAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC5B,gBAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;gBAC9B;YACF;QACF,CAAC,CAAC,CACH;AAEe,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,eAAe,CAAqB,IAAI,CAAC;AACnE,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,eAAe,CAAqB,IAAI,CAAC;AAC3D,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC;AAChD,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC;AACtD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC;AAChD,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY;AAG1D,QAAA,IAAA,CAAA,SAAS,GAAiB,YAAY,CAAC,KAAK;QAC5C,IAAA,CAAA,aAAa,GAAG,KAAK;QACrB,IAAA,CAAA,kBAAkB,GAAG,KAAK;QAmBhC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC;IACtD;IAEO,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,kBAAkB,EAAE,CAAC,SAAS,EAAE;QACrC,IAAI,CAAC,sBAAsB,EAAE;AAC7B,QAAA,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE;QACpC,IAAI,CAAC,eAAe,EAAE;IACxB;IAEO,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;AAC5B,QAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE;AACnC,QAAA,IAAI,CAAC,gBAAgB,CAAC,gCAAgC,EAAE;AACxD,QAAA,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,EAAE;AAC7C,QAAA,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,EAAE;IAChD;IAEO,kBAAkB,CAAC,KAAK,EAAE,UAAuB,EAAA;AACtD,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE;YACpC;QACF;AACA,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AACzB,QAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC,IAAI;AACxC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAC,GAAG,IAAI,CAAC,eAAe,EAAE,cAAc,EAAE,KAAK,CAAC,IAAI,EAAC,CAAC;QACjF,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAC,GAAG,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAC,CAAC;AACnG,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;IAC5B;IAEO,MAAM,GAAA;AACX,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;IAClC;AAEO,IAAA,oBAAoB,CAAC,UAA0B,EAAA;AACpD,QAAA,sCAAsC,CAAC,IAAI,CAAC,KAAK;aAC9C,IAAI,CACH,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,KAAI;YAC9B,QAAQ,OAAO;AACb,gBAAA,KAAK,MAAM;AACT,oBAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,wBAAwB,CACxD,MAAM,EAAE,iBAAkB,EAC1B,MAAM,EAAE,wBAAyB,EACjC,UAAU,CAAC,EAAE,CACd;AACH,gBAAA,KAAK,eAAe;AAClB,oBAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,iCAAiC,CACjE,MAAM,EAAE,0BAA2B,EACnC,MAAM,EAAE,iCAAkC,EAC1C,UAAU,CAAC,EAAE,CACd;AACH,gBAAA;oBACE,OAAO,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAC;;AAE3E,QAAA,CAAC,CAAC;AAEH,aAAA,SAAS,CAAC;YACT,IAAI,EAAE,MAAK;AACT,gBAAA,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC;AACjC,oBAAA,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,sCAAsC,CAAC;AAC7E,iBAAA,CAAC;gBACF,IAAI,CAAC,YAAY,EAAE;YACrB,CAAC;YACD,KAAK,EAAE,MAAK;AACV,gBAAA,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC;AACjC,oBAAA,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,4CAA4C,CAAC;AACnF,iBAAA,CAAC;YACJ,CAAC;AACF,SAAA,CAAC;IACN;IAEO,mBAAmB,GAAA;QACxB,IAAI,CAAC,YAAY,EAAE;IACrB;AAEO,IAAA,oBAAoB,CAAC,UAA0B,EAAA;AACpD,QAAA,aAAa,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC;AACpE,aAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACZ,SAAS,CAAC,CAAC,CAAC,eAAe,EAAE,gBAAgB,CAAC,KAAI;AACjD,YAAA,IAAI,CAAC,eAAe,IAAI,CAAC,gBAAgB;gBAAE;YAE3C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CACzB,IAAI,CAAC,sBAAsB,KAAK;kBAC5B,IAAI,CAAC;AACP,kBAAE,UAAU,CAAC,cAAc,CAC9B;AAED,YAAA,MAAM,OAAO,GAAgC;AAC3C,gBAAA,EAAE,EAAE,gBAAgB;AACpB,gBAAA,IAAI,EAAE,eAAe;AACrB,gBAAA,cAAc,EAAE,IAAI;aACrB;AAED,YAAA,sCAAsC,CAAC,IAAI,CAAC,KAAK;iBAC9C,IAAI,CACH,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,KAAI;gBAC9B,QAAQ,OAAO;AACb,oBAAA,KAAK,MAAM;AACT,wBAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,wBAAwB,CACxD,MAAM,CAAC,iBAAkB,EACzB,MAAM,CAAC,wBAAyB,EAChC,OAAO,CACR;AACH,oBAAA,KAAK,eAAe;AAClB,wBAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,iCAAiC,CACjE,MAAM,CAAC,0BAA2B,EAClC,MAAM,CAAC,iCAAkC,EACzC,OAAO,CACR;AACH,oBAAA;wBACE,OAAO,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,OAAO,CAAC;;AAErE,YAAA,CAAC,CAAC;AAEH,iBAAA,SAAS,CAAC;gBACT,IAAI,EAAE,MAAK;AACT,oBAAA,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC;AACjC,wBAAA,IAAI,EAAE,SAAS;wBACf,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,uCAAuC,CAAC;AAC9E,qBAAA,CAAC;oBAEF,IAAI,CAAC,YAAY,EAAE;gBACrB,CAAC;gBACD,KAAK,EAAE,MAAK;AACV,oBAAA,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC;AACjC,wBAAA,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAClC,8CAA8C,CAC/C;AACF,qBAAA,CAAC;gBACJ,CAAC;AACF,aAAA,CAAC;AACN,QAAA,CAAC,CAAC;IACN;IAEQ,kBAAkB,CAAC,aAAa,GAAG,IAAI,EAAA;QAC7C,OAAO,sCAAsC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAC5D,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,aAAa,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAC3F,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,KAAI;AAChD,YAAA,IAAI,CAAC,gBAAgB;AAAE,gBAAA,OAAO,EAAE,CAAC,IAAI,CAAC;YAEtC,QAAQ,OAAO;AACb,gBAAA,KAAK,MAAM;AACT,oBAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,qBAAqB,CACrD,MAAM,CAAC,iBAAkB,EACzB,MAAM,CAAC,wBAAyB,EAChC,gBAAgB,CACjB;AACH,gBAAA,KAAK,eAAe;AAClB,oBAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,8BAA8B,CAC9D,MAAM,CAAC,0BAA2B,EAClC,MAAM,CAAC,iCAAkC,EACzC,gBAAgB,CACjB;AACH,gBAAA;oBACE,OAAO,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;;AAE3E,QAAA,CAAC,CAAC,EACFA,KAAG,CAAC,CAAC,UAAiC,KAAI;AACxC,YAAA,IAAI,CAAC,UAAU;gBAAE;AAEjB,YAAA,IAAI,aAAa;AAAE,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC;AACzD,YAAA,IAAI,aAAa;AACf,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;oBAC5B,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC;AAChD,oBAAA,QAAQ,EAAE,MAAM;AACjB,iBAAA,CAAC;YACJ,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC;QAC3D,CAAC,CAAC,CACH;IACH;AAEO,IAAA,sBAAsB,CAAC,UAA0B,EAAA;AACtD,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,EAAE;AACjE,YAAA,IAAI,EAAE,WAAW;AAClB,SAAA,CAAC;QACF,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,CAAA,KAAA,EAAQ,UAAU,CAAC,IAAI,OAAO;QAC9C,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;QAC5C,IAAI,CAAC,KAAK,EAAE;QACZ,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;QACrC,IAAI,CAAC,MAAM,EAAE;IACf;AAEO,IAAA,aAAa,CAAC,GAAc,EAAA;AACjC,QAAA,IAAI,CAAC,SAAS,GAAG,GAAG;QACpB,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC;AAEpD,QAAA,IAAI,GAAG,KAAK,SAAS,CAAC,OAAO,EAAE;YAC7B;QACF;QAEA,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE;AACzC,QAAA,CAAC,CAAC;IACJ;AAEO,IAAA,cAAc,CAAC,KAAiC,EAAA;AACrD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;AAE3B,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YACf;QACF;AAAO,aAAA,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY,EAAE;YAC3D;QACF;QAEA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AAC9C,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAC,CAAC;IACrE;AAEO,IAAA,kBAAkB,CAAC,KAAa,EAAE,UAA0B,EAAE,QAAiB,EAAA;AACpF,QAAA,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,IAAI,QAAQ,EAAE;YACpE;QACF;QAEA,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AAE1C,QAAA,IAAI,CAAC,sBAAsB,GAAG,gBAAgB;AAE9C,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;AACzB,YAAA,GAAG,UAAU;AACb,YAAA,cAAc,EAAE,gBAAgB;AACjC,SAAA,CAAC;IACJ;IAEO,YAAY,CAAC,KAAc,EAAE,QAAiB,EAAA;AACnD,QAAA,IAAI,IAAI,CAAC,aAAa,IAAI,QAAQ,EAAE;YAClC;QACF;AAEA,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK;IAC9B;IAEO,eAAe,GAAA;AACpB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B;AAEO,IAAA,kBAAkB,CAAC,UAA0B,EAAA;AAClD,QAAA,sCAAsC,CAAC,IAAI,CAAC,KAAK;AAC9C,aAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACZ,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,KAAI;AAC/B,YAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;AACvB,gBAAA,SAAS,EAAE,gCAAgC;AAC3C,gBAAA,MAAM,EAAE;AACN,oBAAA,eAAe,EAAE,UAAU;oBAC3B,OAAO;oBACP,MAAM;AACP,iBAAA;AACF,aAAA,CAAC;AACJ,QAAA,CAAC,CAAC;IACN;AAEO,IAAA,iBAAiB,CAAC,cAAmB,EAAA;AAC1C,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;QAE1B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;AAC7C,QAAA,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE;AAC3B,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;YAC3B;QACF;AAEA,QAAA,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU;QACxC,MAAM,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,IAAI,UAAU,CAAC,cAAc;AAClF,QAAA,MAAM,aAAa,GAAG,EAAC,GAAG,iBAAiB,EAAE,IAAI,UAAU,IAAI,EAAC,UAAU,EAAC,CAAC,EAAC;AAE7E,QAAA,IAAI,CAAC,sBAAsB,GAAG,aAAa;AAC3C,QAAA,UAAU,CAAC,cAAc,GAAG,aAAa;AACzC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC;AAEtC,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;AAC5B,YAAA,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;AACpC,YAAA,QAAQ,EAAE,MAAM;AACjB,SAAA,CAAC;QAEF,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7E;IAEU,iBAAiB,GAAA;QACzB,MAAM,YAAY,GAAuB,QAAQ,CAAC,aAAa,CAAC,4BAA4B,CAAC;QAC7F,IAAI,CAAC,YAAY,EAAE;YACjB;QACF;QAEA,YAAY,CAAC,KAAK,EAAE;IACtB;IAEQ,sBAAsB,GAAA;AAC5B,QAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAG;AACtD,YAAA,IAAI,MAAM,EAAE,MAAM,KAAK,MAAM,EAAE;gBAC7B,IAAI,CAAC,eAAe,EAAE;YACxB;AACF,QAAA,CAAC,CAAC;IACJ;IAEQ,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,EAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAC,CAAC;IACzD;IAEQ,eAAe,GAAA;AACrB,QAAA,sCAAsC,CAAC,IAAI,CAAC,KAAK;AAC9C,aAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACZ,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,KAAI;AAC/B,YAAA,IAAI,OAAO,KAAK,aAAa,IAAI,CAAC,OAAO;gBAAE;AAE3C,YAAA,IAAI,OAAO,KAAK,MAAM,EAAE;gBACtB,MAAM,KAAK,GAAG,CAAA,sBAAA,EAAyB,MAAM,CAAC,iBAAiB,CAAA,SAAA,EAAY,MAAM,CAAC,wBAAwB,CAAA,CAAE;AAE5G,gBAAA,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC;oBACxC,KAAK,EAAE,CAAC,KAAK,CAAC;oBACd,OAAO,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAA,EAAA,EAAK,MAAM,CAAC,wBAAwB,CAAA,CAAA,CAAG;AAC3E,oBAAA,IAAI,EAAE,KAAK;AACZ,iBAAA,CAAC;AAEF,gBAAA,MAAM,cAAc,GAAG,CAAA,EAAG,KAAK,QAAQ;AAEvC,gBAAA,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC;oBACzC,KAAK,EAAE,CAAC,cAAc,CAAC;oBACvB,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,2BAA2B,CAAC;AACnE,oBAAA,IAAI,EAAE,cAAc;AACrB,iBAAA,CAAC;YACJ;AAAO,iBAAA,IAAI,OAAO,KAAK,eAAe,EAAE;gBACtC,MAAM,KAAK,GAAG,CAAA,0CAAA,EAA6C,MAAM,CAAC,0BAA0B,CAAA,SAAA,EAAY,MAAM,CAAC,iCAAiC,CAAA,CAAE;AAClJ,gBAAA,MAAM,YAAY,GAAG,CAAA,EAAG,KAAK,UAAU;AAEvC,gBAAA,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC;oBACxC,KAAK,EAAE,CAAC,YAAY,CAAC;oBACrB,OAAO,EAAE,GAAG,MAAM,CAAC,0BAA0B,CAAA,EAAA,EAAK,MAAM,CAAC,iCAAiC,CAAA,CAAA,CAAG;AAC7F,oBAAA,IAAI,EAAE,YAAY;AACnB,iBAAA,CAAC;AAEF,gBAAA,MAAM,cAAc,GAAG,CAAA,EAAG,KAAK,QAAQ;AAEvC,gBAAA,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC;AACzC,oBAAA,KAAK,EAAE,CAAC,CAAA,EAAG,KAAK,QAAQ,CAAC;oBACzB,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,oCAAoC,CAAC;AAC5E,oBAAA,IAAI,EAAE,cAAc;AACrB,iBAAA,CAAC;YACJ;AACF,QAAA,CAAC,CAAC;IACN;+GA5bW,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAT,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAH,IAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAS,IAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAI,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAJ,IAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAT,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAa,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAT,EAAA,CAAA,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAAK,IAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAK,IAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,YAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5GxC,uoNAyLA,EAAA,MAAA,EAAA,CAAA,mrGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDtGI,YAAY,ocACZ,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,YAAY,kMACZ,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACnB,WAAW,8BACX,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,UAAU,mcACV,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,OAAA,EAAA,UAAA,EAAA,cAAA,EAAA,SAAA,EAAA,UAAA,EAAA,aAAA,EAAA,YAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,MAAA,EAAA,UAAA,EAAA,QAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACZ,2BAA2B,wFAC3B,qBAAqB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,EAAA,WAAA,EAAA,SAAA,EAAA,SAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACrB,2BAA2B,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC3B,4BAA4B,wFAC5B,SAAS,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAT,IAAA,CAAA,GAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACT,uBAAuB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAS,IAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,iCAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,kCAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,gCAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,yBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,eAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACvB,aAAa,+BACb,6BAA6B,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAC7B,UAAU,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAT,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAEV,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAGJ,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAhCvC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,8BAA8B,iBAGzB,iBAAiB,CAAC,IAAI,EAAA,UAAA,EACzB,IAAI,EAAA,OAAA,EACP;wBACP,YAAY;wBACZ,eAAe;wBACf,WAAW;wBACX,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,WAAW;wBACX,YAAY;wBACZ,gBAAgB;wBAChB,UAAU;wBACV,YAAY;wBACZ,YAAY;wBACZ,2BAA2B;wBAC3B,qBAAqB;wBACrB,2BAA2B;wBAC3B,4BAA4B;wBAC5B,SAAS;wBACT,uBAAuB;wBACvB,aAAa;wBACb,6BAA6B;wBAC7B,UAAU;wBACV,aAAa;wBACb,aAAa;AACd,qBAAA,EAAA,QAAA,EAAA,uoNAAA,EAAA,MAAA,EAAA,CAAA,mrGAAA,CAAA,EAAA;ugBAGqC,KAAK,EAAA,CAAA;sBAA1C,WAAW;uBAAC,OAAO;gBAEM,WAAW,EAAA,CAAA;sBAApC;gBACyB,WAAW,EAAA,CAAA;sBAApC;gBACyB,iBAAiB,EAAA,CAAA;sBAA1C;gBACyB,gBAAgB,EAAA,CAAA;sBAAzC;gBACyB,gBAAgB,EAAA,CAAA;sBAAzC;gBACyB,gBAAgB,EAAA,CAAA;sBAAzC;;;AEpHH;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;AASH,MAAM,MAAM,GAAW;AACrB,IAAA;AACE,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,SAAS,EAAE,uBAAuB;QAClC,WAAW,EAAE,CAAC,gBAAgB,CAAC;AAC/B,QAAA,IAAI,EAAE,EAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,aAAa,EAA4B;AAC/F,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,mCAAmC;AACzC,QAAA,SAAS,EAAE,2BAA2B;QACtC,WAAW,EAAE,CAAC,gBAAgB,CAAC;AAC/B,QAAA,IAAI,EAAE;AACJ,YAAA,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,CAAC,UAAU,CAAC;AACnB,YAAA,OAAO,EAAE,aAAa;AACtB,YAAA,eAAe,EAAE,IAAI;AACK,SAAA;AAC7B,KAAA;CACF;MAMY,2BAA2B,CAAA;+GAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,wCAF5B,YAAY,CAAA,EAAA,CAAA,CAAA;AAEX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,EAAA,OAAA,EAAA,CAH5B,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,qBAAqB,EAAE,CAAC,EACjE,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAEX,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAJvC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,qBAAqB,EAAE,CAAC,CAAC;oBAC5E,OAAO,EAAE,CAAC,YAAY,CAAC;AACxB,iBAAA;;MAMY,oBAAoB,CAAA;+GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAApB,oBAAoB,EAAA,OAAA,EAAA,CAFrB,uBAAuB,EAHtB,2BAA2B,CAAA,EAAA,CAAA,CAAA;gHAK3B,oBAAoB,EAAA,OAAA,EAAA,CAFrB,uBAAuB,EAAE,2BAA2B,CAAA,EAAA,CAAA,CAAA;;4FAEnD,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,uBAAuB,EAAE,2BAA2B,CAAC;AAChE,iBAAA;;;ACnDD;;;;;;;;;;;;;;AAcG;AAEH;;AAEG;;AClBH;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@valtimo/form-management",
3
3
  "license": "EUPL-1.2",
4
- "version": "13.36.1",
4
+ "version": "13.38.0",
5
5
  "peerDependencies": {
6
- "@angular/common": "19.2.20",
7
- "@angular/core": "19.2.20"
6
+ "@angular/common": "19.2.25",
7
+ "@angular/core": "19.2.25"
8
8
  },
9
9
  "dependencies": {
10
10
  "tslib": "2.8.1"