@valtimo/form-flow-management 13.4.1 → 13.6.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.
|
@@ -538,7 +538,7 @@ class FormFlowEditorComponent {
|
|
|
538
538
|
});
|
|
539
539
|
}
|
|
540
540
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: FormFlowEditorComponent, deps: [{ token: i1$2.BreadcrumbService }, { token: FormFlowDownloadService }, { token: FormFlowService }, { token: i2$1.IconService }, { token: i2.GlobalNotificationService }, { token: i1$2.PageHeaderService }, { token: i1$2.PageTitleService }, { token: i3.ActivatedRoute }, { token: i3.Router }, { token: i4.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
541
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: FormFlowEditorComponent, isStandalone: false, 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@if (model$ | async; as model) {\n <valtimo-editor\n [disabled]=\"(loading$ | async) === false && readOnly$ | async\"\n [model]=\"model\"\n [jsonSchema]=\"formFlowSchemaJson\"\n (validEvent)=\"onValid($event)\"\n (valueChangeEvent)=\"onValueChange($event)\"\n [fitPage]=\"true\"\n ></valtimo-editor>\n} @else {\n <cds-loading></cds-loading>\n}\n\n<ng-container renderInPageHeader>\n <ng-template>\n <div\n *ngIf=\"{\n compactMode: compactMode$ | async,\n valid: valid$ | async,\n readOnly: readOnly$ | async,\n model: model$ | async,\n } as obs\"\n class=\"buttons-container\"\n >\n <cds-overflow-menu>\n <cds-overflow-menu-option\n [disabled]=\"!obs.valid && !obs.readOnly\"\n (selected)=\"downloadFormFlowDefinition(obs.model)\"\n >{{ 'interface.export' | translate }}\n </cds-overflow-menu-option>\n\n <cds-overflow-menu-option\n [disabled]=\"obs.readOnly\"\n type=\"danger\"\n (selected)=\"showDeleteModal()\"\n >{{ 'interface.delete' | translate }}\n </cds-overflow-menu-option>\n </cds-overflow-menu>\n\n <button cdsButton=\"secondary\" [size]=\"obs.compactMode ? 'sm' : 'md'\" (click)=\"navigateBack()\">\n {{ 'interface.back' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"arrow--left\" size=\"16\"></svg>\n </button>\n\n <button\n [disabled]=\"!obs.valid || obs.readOnly\"\n cdsButton=\"primary\"\n [size]=\"obs.compactMode ? 'sm' : 'md'\"\n (click)=\"updateFormFlowDefinition()\"\n >\n {{ 'interface.save' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"save\" size=\"16\"></svg>\n </button>\n </div>\n </ng-template>\n</ng-container>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"formFlow.deleteModalContent\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDelete()\"\n></valtimo-confirmation-modal>\n", styles: ["cds-loading{display:flex;justify-content:center}.buttons-container{display:flex;align-items:center;justify-self:flex-end;gap:16px}\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: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i2$1.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i1$2.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "showOptionalButton", "optionalButtonText", "optionalButtonTextTranslationKey", "optionalButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm", "outputOnOptional", "spacerAfterCancelButton"], outputs: ["confirmEvent", "optionalEvent", "cancelEvent"] }, { kind: "component", type: i1$2.EditorComponent, selector: "valtimo-editor", inputs: ["editorOptions", "model", "disabled", "formatOnLoad", "widthPx", "heightPx", "heightStyle", "jsonSchema", "fitPage", "
|
|
541
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: FormFlowEditorComponent, isStandalone: false, 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@if (model$ | async; as model) {\n <valtimo-editor\n [disabled]=\"(loading$ | async) === false && readOnly$ | async\"\n [model]=\"model\"\n [jsonSchema]=\"formFlowSchemaJson\"\n (validEvent)=\"onValid($event)\"\n (valueChangeEvent)=\"onValueChange($event)\"\n [fitPage]=\"true\"\n ></valtimo-editor>\n} @else {\n <cds-loading></cds-loading>\n}\n\n<ng-container renderInPageHeader>\n <ng-template>\n <div\n *ngIf=\"{\n compactMode: compactMode$ | async,\n valid: valid$ | async,\n readOnly: readOnly$ | async,\n model: model$ | async,\n } as obs\"\n class=\"buttons-container\"\n >\n <cds-overflow-menu>\n <cds-overflow-menu-option\n [disabled]=\"!obs.valid && !obs.readOnly\"\n (selected)=\"downloadFormFlowDefinition(obs.model)\"\n >{{ 'interface.export' | translate }}\n </cds-overflow-menu-option>\n\n <cds-overflow-menu-option\n [disabled]=\"obs.readOnly\"\n type=\"danger\"\n (selected)=\"showDeleteModal()\"\n >{{ 'interface.delete' | translate }}\n </cds-overflow-menu-option>\n </cds-overflow-menu>\n\n <button cdsButton=\"secondary\" [size]=\"obs.compactMode ? 'sm' : 'md'\" (click)=\"navigateBack()\">\n {{ 'interface.back' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"arrow--left\" size=\"16\"></svg>\n </button>\n\n <button\n [disabled]=\"!obs.valid || obs.readOnly\"\n cdsButton=\"primary\"\n [size]=\"obs.compactMode ? 'sm' : 'md'\"\n (click)=\"updateFormFlowDefinition()\"\n >\n {{ 'interface.save' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"save\" size=\"16\"></svg>\n </button>\n </div>\n </ng-template>\n</ng-container>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"formFlow.deleteModalContent\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDelete()\"\n></valtimo-confirmation-modal>\n", styles: ["cds-loading{display:flex;justify-content:center}.buttons-container{display:flex;align-items:center;justify-self:flex-end;gap:16px}\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: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i2$1.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i1$2.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "showOptionalButton", "optionalButtonText", "optionalButtonTextTranslationKey", "optionalButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm", "outputOnOptional", "spacerAfterCancelButton"], outputs: ["confirmEvent", "optionalEvent", "cancelEvent"] }, { kind: "component", type: i1$2.EditorComponent, selector: "valtimo-editor", inputs: ["editorOptions", "model", "disabled", "formatOnLoad", "widthPx", "heightPx", "heightStyle", "jsonSchema", "fitPage", "fitPageSpaceAdjustment"], outputs: ["validEvent", "valueChangeEvent"] }, { kind: "directive", type: i1$2.RenderInPageHeaderDirective, selector: "[renderInPageHeader]", inputs: ["fullWidth"] }, { kind: "component", type: i2$1.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "component", type: i2$1.OverflowMenu, selector: "cds-overflow-menu, ibm-overflow-menu", inputs: ["buttonLabel", "description", "flip", "placement", "open", "customTrigger", "offset", "wrapperClass", "triggerClass"], outputs: ["openChange"] }, { kind: "component", type: i2$1.OverflowMenuOption, selector: "cds-overflow-menu-option, ibm-overflow-menu-option", inputs: ["divider", "type", "disabled", "href", "target", "innerClass"], outputs: ["selected"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
542
542
|
}
|
|
543
543
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: FormFlowEditorComponent, decorators: [{
|
|
544
544
|
type: Component,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valtimo-form-flow-management.mjs","sources":["../../../../projects/valtimo/form-flow-management/src/lib/models/form-flow.model.ts","../../../../projects/valtimo/form-flow-management/src/lib/models/index.ts","../../../../projects/valtimo/form-flow-management/src/lib/services/form-flow.service.ts","../../../../projects/valtimo/form-flow-management/src/lib/services/index.ts","../../../../projects/valtimo/form-flow-management/src/lib/components/new-form-flow-modal/new-form-flow-modal.component.ts","../../../../projects/valtimo/form-flow-management/src/lib/components/new-form-flow-modal/new-form-flow-modal.component.html","../../../../projects/valtimo/form-flow-management/src/lib/components/overview/form-flow-overview.component.ts","../../../../projects/valtimo/form-flow-management/src/lib/components/overview/form-flow-overview.component.html","../../../../projects/valtimo/form-flow-management/src/lib/services/form-flow-download.service.ts","../../../../projects/valtimo/form-flow-management/src/lib/components/editor/form-flow-editor.component.ts","../../../../projects/valtimo/form-flow-management/src/lib/components/editor/form-flow-editor.component.html","../../../../projects/valtimo/form-flow-management/src/lib/components/delete-form-flow-modal/delete-form-flow-modal.component.ts","../../../../projects/valtimo/form-flow-management/src/lib/components/delete-form-flow-modal/delete-form-flow-modal.component.html","../../../../projects/valtimo/form-flow-management/src/lib/form-flow-management.module.ts","../../../../projects/valtimo/form-flow-management/src/public-api.ts","../../../../projects/valtimo/form-flow-management/src/valtimo-form-flow-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\ninterface ListFormFlowDefinition {\n key: string;\n versions: Array<number>;\n readOnly?: boolean;\n}\n\ninterface FormFlowDefinition {\n key: string;\n readOnly?: boolean;\n startStep: string;\n steps: Array<FormFlowStep>;\n}\n\ninterface FormFlowDefinitionId {\n key: string;\n version: number;\n}\n\ninterface FormFlowStep {\n key: string;\n nextSteps: Array<FormFlowNextStep>;\n onBack: Array<string>;\n onOpen: Array<string>;\n onComplete: Array<string>;\n type: FormFlowStepType;\n}\n\ninterface FormFlowNextStep {\n condition?: string;\n step: string;\n}\n\ninterface FormFlowStepType {\n name: string;\n properties: FormStepTypeProperties | CustomComponentStepTypeProperties;\n}\n\ninterface FormStepTypeProperties {\n definition: string;\n}\n\ninterface CustomComponentStepTypeProperties {\n componentId: string;\n}\n\ninterface DeleteFormFlowsRequest {\n formFlowKeys: Array<string>;\n}\n\ninterface LoadedValue<T> {\n isLoading: boolean;\n value?: T;\n}\n\ninterface FormFlowEditorParams {\n formFlowDefinitionKey: string;\n caseDefinitionKey: string;\n caseDefinitionVersionTag: string;\n}\n\nexport {\n ListFormFlowDefinition,\n FormFlowDefinition,\n FormFlowDefinitionId,\n FormFlowStep,\n FormFlowNextStep,\n FormFlowStepType,\n FormStepTypeProperties,\n CustomComponentStepTypeProperties,\n DeleteFormFlowsRequest,\n LoadedValue,\n FormFlowEditorParams,\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-flow.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 {HttpClient} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {ConfigService, Page, BaseApiService} from '@valtimo/shared';\nimport {BehaviorSubject, catchError, Observable, of, switchMap, take, tap} from 'rxjs';\nimport {FormFlowDefinition, FormFlowDefinitionId, ListFormFlowDefinition} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormFlowService extends BaseApiService {\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public getFormFlowDefinitions(\n caseDefinitionKey: string,\n caseVersionTag: string\n ): Observable<Page<ListFormFlowDefinition>> {\n return this.httpClient.get<Page<ListFormFlowDefinition>>(\n this.getApiUrl(\n `management/v1/case-definition/${caseDefinitionKey}/version/${caseVersionTag}/form-flow-definition`\n )\n );\n }\n\n public getFormFlowDefinitionByKey(\n caseDefinitionKey: string,\n caseVersionTag: string,\n formFlowDefinitionKey: string\n ): Observable<FormFlowDefinition> {\n return this.httpClient.get<FormFlowDefinition>(\n this.getApiUrl(\n `management/v1/case-definition/${caseDefinitionKey}/version/${caseVersionTag}/form-flow-definition/${formFlowDefinitionKey}`\n )\n );\n }\n\n public createFormFlowDefinition(\n caseDefinitionKey: string,\n caseVersionTag: string,\n definition: FormFlowDefinition\n ): Observable<FormFlowDefinition> {\n return this.httpClient.post<FormFlowDefinition>(\n this.getApiUrl(\n `management/v1/case-definition/${caseDefinitionKey}/version/${caseVersionTag}/form-flow-definition`\n ),\n definition\n );\n }\n\n public deleteFormFlowDefinition(\n caseDefinitionKey: string,\n caseVersionTag: string,\n definitionKey: string\n ): Observable<null> {\n return this.httpClient.delete<null>(\n this.getApiUrl(\n `management/v1/case-definition/${caseDefinitionKey}/version/${caseVersionTag}/form-flow-definition/${definitionKey}`\n )\n );\n }\n\n public updateFormFlowDefinition(\n caseDefinitionKey: string,\n caseVersionTag: string,\n definitionKey: string,\n updatedDefinition: FormFlowDefinition\n ): Observable<FormFlowDefinition> {\n return this.httpClient.put<FormFlowDefinition>(\n this.getApiUrl(\n `management/v1/case-definition/${caseDefinitionKey}/version/${caseVersionTag}/form-flow-definition/${definitionKey}`\n ),\n updatedDefinition\n );\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './form-flow.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 {ChangeDetectionStrategy, Component, EventEmitter, Input, Output} from '@angular/core';\nimport {FormBuilder, Validators} from '@angular/forms';\nimport {FormFlowDefinition} from '../../models';\nimport {CARBON_CONSTANTS} from '@valtimo/components';\n\n@Component({\n standalone: false,\n selector: 'valtimo-new-form-flow-modal',\n templateUrl: './new-form-flow-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NewFormFlowModalComponent {\n @Input() open = false;\n @Output() closeEvent = new EventEmitter<FormFlowDefinition | null>();\n\n public form = this.fb.group({\n key: this.fb.control('', Validators.required),\n });\n\n public get key() {\n return this.form?.get('key');\n }\n\n constructor(private readonly fb: FormBuilder) {}\n\n public onCancel(): void {\n this.closeEvent.emit(null);\n this.resetForm();\n }\n\n public onConfirm(): void {\n if (!this.key) {\n return;\n }\n\n this.closeEvent.emit({\n key: this.key.value ?? '',\n startStep: 'start-step',\n steps: [],\n });\n this.resetForm();\n }\n\n private resetForm(): void {\n setTimeout(() => {\n this.form.reset();\n }, CARBON_CONSTANTS.modalAnimationMs);\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 [open]=\"open\"\n showFooter=\"true\"\n [title]=\"'formFlow.add' | translate\"\n valtimoCdsModal\n (close)=\"onCancel()\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCancel()\">\n <h3 cdsModalHeaderHeading>\n {{ 'formFlow.add' | translate }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <form [formGroup]=\"form\">\n <cds-label [invalid]=\"key.dirty && key.invalid\">\n {{ 'formFlow.key' | translate }}\n\n <input\n formControlName=\"key\"\n cdsText\n placeholder=\"{{ 'formFlow.key' | translate }}\"\n [attr.modal-primary-focus]=\"true\"\n [invalid]=\"key.dirty && key.invalid\"\n />\n </cds-label>\n </form>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"onCancel()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button [disabled]=\"this.form.invalid\" (click)=\"onConfirm()\" cdsButton=\"primary\">\n {{ 'interface.create' | 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 */\nimport {ChangeDetectionStrategy, Component, ViewChild} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ActionItem, CarbonListComponent, ColumnConfig, ViewType} from '@valtimo/components';\nimport {\n CaseManagementParams,\n EditPermissionsService,\n getCaseManagementRouteParams,\n GlobalNotificationService,\n Page,\n} from '@valtimo/shared';\nimport {BehaviorSubject, combineLatest, map, Observable, of, switchMap, tap} from 'rxjs';\nimport {FormFlowDefinition, ListFormFlowDefinition} from '../../models';\nimport {FormFlowService} from '../../services';\n\n@Component({\n standalone: false,\n templateUrl: './form-flow-overview.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FormFlowOverviewComponent {\n @ViewChild(CarbonListComponent) carbonList: CarbonListComponent;\n\n public readonly FIELDS: ColumnConfig[] = [\n {\n viewType: ViewType.TEXT,\n key: 'key',\n label: 'formFlow.key',\n },\n {\n viewType: ViewType.TEXT,\n key: 'versions.0',\n label: 'formFlow.version',\n },\n {\n viewType: ViewType.BOOLEAN,\n key: 'readOnly',\n label: 'formFlow.readOnly',\n },\n ];\n\n public readonly ACTION_ITEMS: ActionItem[] = [\n {\n callback: this.editFormFlowDetails.bind(this),\n label: 'interface.edit',\n },\n {\n callback: this.deleteFormFlow.bind(this),\n label: 'interface.delete',\n type: 'danger',\n },\n ];\n\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n public readonly showDeleteModal$ = new BehaviorSubject<boolean>(false);\n public readonly deleteDefinitionKey$ = new BehaviorSubject<string | null>(null);\n\n private _params: CaseManagementParams | undefined = undefined;\n private readonly _refresh$ = new BehaviorSubject<null>(null);\n public readonly formFlowDefinitions$: Observable<ListFormFlowDefinition[]> = combineLatest([\n getCaseManagementRouteParams(this.route),\n this._refresh$,\n ]).pipe(\n tap(([params]) => {\n this.loading$.next(true);\n this._params = params;\n }),\n switchMap(([params]) =>\n !params\n ? of(null)\n : this.formFlowService.getFormFlowDefinitions(\n params.caseDefinitionKey,\n params.caseDefinitionVersionTag\n )\n ),\n map((formFlows: Page<ListFormFlowDefinition> | null) => {\n this.loading$.next(false);\n return !formFlows ? [] : formFlows.content;\n })\n );\n public readonly showAddModal$ = new BehaviorSubject<boolean>(false);\n\n public readonly params$ = getCaseManagementRouteParams(this.route);\n\n public readonly hasEditPermissions$: Observable<boolean> = this.params$.pipe(\n switchMap(params =>\n this.editPermissionsService.hasEditPermissions(\n params?.caseDefinitionKey,\n params?.caseDefinitionVersionTag\n )\n )\n );\n\n constructor(\n private readonly formFlowService: FormFlowService,\n private readonly globalNotificationService: GlobalNotificationService,\n private readonly route: ActivatedRoute,\n private readonly router: Router,\n private readonly translateService: TranslateService,\n private readonly editPermissionsService: EditPermissionsService\n ) {}\n\n public openAddModal(): void {\n this.showAddModal$.next(true);\n }\n\n public onAdd(formFlowDefinition: FormFlowDefinition | null): void {\n this.showAddModal$.next(false);\n\n if (!formFlowDefinition || !this._params) return;\n\n this.formFlowService\n .createFormFlowDefinition(\n this._params.caseDefinitionKey,\n this._params.caseDefinitionVersionTag,\n formFlowDefinition\n )\n .subscribe((formFlowDefinition: FormFlowDefinition) => {\n this.showAddModal$.next(false);\n this.router.navigate([formFlowDefinition.key], {relativeTo: this.route});\n });\n }\n\n public editFormFlowDetails(formFlowDefinition: ListFormFlowDefinition): void {\n this.router.navigate([formFlowDefinition.key], {relativeTo: this.route});\n }\n\n public deleteFormFlow(item: ListFormFlowDefinition): void {\n this.deleteDefinitionKey$.next(item.key);\n this.showDeleteModal$.next(true);\n }\n\n public onDelete(definitionKey: string): void {\n if (!this._params) return;\n\n this.formFlowService\n .deleteFormFlowDefinition(\n this._params.caseDefinitionKey,\n this._params.caseDefinitionVersionTag,\n definitionKey\n )\n .subscribe(() => {\n this.globalNotificationService.showToast({\n title: this.translateService.instant('interface.delete'),\n caption: this.translateService.instant('formFlow.deletedSuccessfully', {\n key: definitionKey,\n }),\n type: 'success',\n });\n this._refresh$.next(null);\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<valtimo-carbon-list\n [actionItems]=\"ACTION_ITEMS\"\n [header]=\"false\"\n [items]=\"formFlowDefinitions$ | async\"\n [fields]=\"FIELDS\"\n [loading]=\"loading$ | async\"\n (rowClicked)=\"editFormFlowDetails($event)\"\n>\n <ng-container header> {{ 'formFlow.title' | translate }} </ng-container>\n\n <div carbonToolbarContent>\n <ng-container [ngTemplateOutlet]=\"addFormFlowButton\"></ng-container>\n </div>\n\n <valtimo-no-results\n [action]=\"addFormFlowButton\"\n description=\"{{ 'formFlow.noResults.description' | translate }}\"\n title=\"{{ 'formFlow.noResults.title' | translate }}\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<valtimo-new-form-flow-modal\n [open]=\"showAddModal$ | async\"\n (closeEvent)=\"onAdd($event)\"\n></valtimo-new-form-flow-modal>\n\n<ng-template #addFormFlowButton>\n <button *ngIf=\"hasEditPermissions$ | async\" cdsButton=\"primary\" (click)=\"openAddModal()\">\n {{ 'formFlow.add' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"formFlow.deleteModalContent\"\n [outputOnConfirm]=\"deleteDefinitionKey$ | async\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDelete($event)\"\n></valtimo-confirmation-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 */\nimport {Injectable} from '@angular/core';\nimport {CaseManagementParams} from '@valtimo/shared';\n\n@Injectable({providedIn: 'root'})\nexport class FormFlowDownloadService {\n public downloadJson(\n json: object,\n params: CaseManagementParams & {formFlowDefinitionKey: string}\n ): void {\n const sJson = JSON.stringify(json, null, 2);\n const element = document.createElement('a');\n element.setAttribute('href', 'data:text/json;charset=UTF-8,' + encodeURIComponent(sJson));\n element.setAttribute(\n 'download',\n `${params.caseDefinitionKey}-${params.caseDefinitionVersionTag}-${params.formFlowDefinitionKey}.formflow.json`\n );\n element.style.display = 'none';\n document.body.appendChild(element);\n element.click(); // simulate click\n document.body.removeChild(element);\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 */\nimport {ChangeDetectionStrategy, Component, OnDestroy} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {ArrowLeft16} from '@carbon/icons';\nimport {TranslateService} from '@ngx-translate/core';\nimport {\n BreadcrumbService,\n EditorModel,\n PageHeaderService,\n PageTitleService,\n} from '@valtimo/components';\nimport {\n CaseManagementParams,\n getCaseManagementRouteParams,\n GlobalNotificationService,\n} from '@valtimo/shared';\nimport {IconService} from 'carbon-components-angular';\nimport {\n BehaviorSubject,\n combineLatest,\n finalize,\n map,\n Observable,\n switchMap,\n take,\n tap,\n} from 'rxjs';\nimport {FormFlowDefinition, FormFlowDefinitionId, FormFlowEditorParams} from '../../models';\nimport {FormFlowService} from '../../services';\nimport {FormFlowDownloadService} from '../../services/form-flow-download.service';\nimport formFlowSchemaJson from './formflow.schema.json';\n\n@Component({\n standalone: false,\n templateUrl: './form-flow-editor.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./form-flow-editor.component.scss'],\n})\nexport class FormFlowEditorComponent implements OnDestroy {\n public readonly readOnly$ = new BehaviorSubject<boolean>(false);\n public readonly valid$ = new BehaviorSubject<boolean>(false);\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n public readonly showDeleteModal$ = new BehaviorSubject<boolean>(false);\n public readonly formFlowDefinitionId$ = new BehaviorSubject<FormFlowDefinitionId | null>(null);\n public readonly CARBON_THEME = 'g10';\n\n private readonly _params$: Observable<FormFlowEditorParams> = combineLatest([\n getCaseManagementRouteParams(this.route),\n this.route.params as Observable<{formFlowDefinitionKey: string}>,\n ]).pipe(\n map(([caseManagementParams, params]) => ({\n ...(caseManagementParams ?? {caseDefinitionKey: '', caseDefinitionVersionTag: ''}),\n ...params,\n }))\n );\n public readonly formFlowSchemaJson = formFlowSchemaJson;\n\n private readonly _formFlowDefinition2$ = this._params$.pipe(\n tap(() => this.loading$.next(true)),\n switchMap((params: FormFlowEditorParams) => {\n this.initBreadcrumbs(params);\n\n return this.formFlowService.getFormFlowDefinitionByKey(\n params.caseDefinitionKey,\n params.caseDefinitionVersionTag,\n params.formFlowDefinitionKey\n );\n }),\n tap((formFlowDefinition: FormFlowDefinition) => {\n this.pageTitleService.setCustomPageTitle(formFlowDefinition.key);\n this.readOnly$.next(formFlowDefinition.readOnly === true);\n this.loading$.next(false);\n })\n );\n public readonly model$: Observable<EditorModel> = this._formFlowDefinition2$.pipe(\n map((formFlowDefinition: FormFlowDefinition) => this.getEditorModel(formFlowDefinition))\n );\n\n private readonly _updatedModelValue$ = new BehaviorSubject<string>('');\n\n public readonly compactMode$ = this.pageHeaderService.compactMode$;\n\n constructor(\n private readonly breadcrumbService: BreadcrumbService,\n private readonly formFlowDownloadService: FormFlowDownloadService,\n private readonly formFlowService: FormFlowService,\n private readonly iconService: IconService,\n private readonly notificationService: GlobalNotificationService,\n private readonly pageHeaderService: PageHeaderService,\n private readonly pageTitleService: PageTitleService,\n private readonly route: ActivatedRoute,\n private readonly router: Router,\n private readonly translateService: TranslateService\n ) {\n this.iconService.registerAll([ArrowLeft16]);\n this.pageTitleService.disableReset();\n }\n\n public ngOnDestroy(): void {\n this.pageTitleService.enableReset();\n this.breadcrumbService.clearThirdBreadcrumb();\n this.breadcrumbService.clearFourthBreadcrumb();\n }\n\n public onValid(valid: boolean): void {\n this.valid$.next(valid);\n }\n\n public onValueChange(value: string): void {\n this._updatedModelValue$.next(value);\n }\n\n public updateFormFlowDefinition(): void {\n this.loading$.next(true);\n\n combineLatest([this._params$, this._updatedModelValue$])\n .pipe(\n take(1),\n switchMap(([params, updatedModelValue]) =>\n this.formFlowService.updateFormFlowDefinition(\n params.caseDefinitionKey,\n params.caseDefinitionVersionTag,\n params.formFlowDefinitionKey,\n {\n ...(JSON.parse(updatedModelValue) as FormFlowDefinition),\n key: params.formFlowDefinitionKey,\n }\n )\n ),\n finalize(() => this.loading$.next(false))\n )\n .subscribe(result => {\n this.showSuccessMessage(result.key);\n });\n }\n\n public onDelete(): void {\n this.loading$.next(true);\n this._params$\n .pipe(\n take(1),\n switchMap((params: CaseManagementParams & {formFlowDefinitionKey: string}) =>\n this.formFlowService.deleteFormFlowDefinition(\n params.caseDefinitionKey,\n params.caseDefinitionVersionTag,\n params.formFlowDefinitionKey\n )\n )\n )\n .subscribe(() => {\n this.router.navigate(['../'], {relativeTo: this.route});\n });\n }\n\n public showDeleteModal(): void {\n this.showDeleteModal$.next(true);\n }\n\n public downloadFormFlowDefinition(model: EditorModel): void {\n this._params$\n .pipe(take(1))\n .subscribe((params: CaseManagementParams & {formFlowDefinitionKey: string}) =>\n this.formFlowDownloadService.downloadJson(JSON.parse(model.value), params)\n );\n }\n\n public navigateBack(): void {\n this.router.navigate(['../'], {relativeTo: this.route});\n }\n\n private getEditorModel(formFlowDefinition: FormFlowDefinition): EditorModel {\n const clone = {...formFlowDefinition};\n delete clone.readOnly;\n return {\n value: JSON.stringify(clone),\n language: 'json',\n };\n }\n\n private showSuccessMessage(formFlowDefinitionKey: string): void {\n this.notificationService.showToast({\n caption: this.translateService.instant('formFlow.savedSuccessTitleMessage', {\n key: formFlowDefinitionKey,\n }),\n type: 'success',\n title: this.translateService.instant('formFlow.savedSuccessTitle'),\n });\n }\n\n private initBreadcrumbs(params: FormFlowEditorParams): void {\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 routeWithFormFlows = `${route}/form-flows`;\n\n this.breadcrumbService.setFourthBreadcrumb({\n route: [routeWithFormFlows],\n content: this.translateService.instant('caseManagement.tabs.formFlows'),\n href: routeWithFormFlows,\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@if (model$ | async; as model) {\n <valtimo-editor\n [disabled]=\"(loading$ | async) === false && readOnly$ | async\"\n [model]=\"model\"\n [jsonSchema]=\"formFlowSchemaJson\"\n (validEvent)=\"onValid($event)\"\n (valueChangeEvent)=\"onValueChange($event)\"\n [fitPage]=\"true\"\n ></valtimo-editor>\n} @else {\n <cds-loading></cds-loading>\n}\n\n<ng-container renderInPageHeader>\n <ng-template>\n <div\n *ngIf=\"{\n compactMode: compactMode$ | async,\n valid: valid$ | async,\n readOnly: readOnly$ | async,\n model: model$ | async,\n } as obs\"\n class=\"buttons-container\"\n >\n <cds-overflow-menu>\n <cds-overflow-menu-option\n [disabled]=\"!obs.valid && !obs.readOnly\"\n (selected)=\"downloadFormFlowDefinition(obs.model)\"\n >{{ 'interface.export' | translate }}\n </cds-overflow-menu-option>\n\n <cds-overflow-menu-option\n [disabled]=\"obs.readOnly\"\n type=\"danger\"\n (selected)=\"showDeleteModal()\"\n >{{ 'interface.delete' | translate }}\n </cds-overflow-menu-option>\n </cds-overflow-menu>\n\n <button cdsButton=\"secondary\" [size]=\"obs.compactMode ? 'sm' : 'md'\" (click)=\"navigateBack()\">\n {{ 'interface.back' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"arrow--left\" size=\"16\"></svg>\n </button>\n\n <button\n [disabled]=\"!obs.valid || obs.readOnly\"\n cdsButton=\"primary\"\n [size]=\"obs.compactMode ? 'sm' : 'md'\"\n (click)=\"updateFormFlowDefinition()\"\n >\n {{ 'interface.save' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"save\" size=\"16\"></svg>\n </button>\n </div>\n </ng-template>\n</ng-container>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"formFlow.deleteModalContent\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDelete()\"\n></valtimo-confirmation-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\nimport {ChangeDetectionStrategy, Component, EventEmitter, Input, Output} from '@angular/core';\nimport {Observable} from 'rxjs';\n\n@Component({\n standalone: false,\n selector: 'valtimo-delete-form-flow-modal',\n templateUrl: './delete-form-flow-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DeleteFormFlowModalComponent {\n @Input() deleteFormFlowDefinitionKey: string;\n @Input() showDeleteModal$: Observable<boolean>;\n @Output() deleteEvent = new EventEmitter<string>();\n\n public onDelete(formFlowDefinitionKey: string): void {\n this.deleteEvent.emit(formFlowDefinitionKey);\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<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"formFlow.deleteModalContent\"\n [outputOnConfirm]=\"deleteFormFlowDefinitionKey\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDelete($event)\"\n></valtimo-confirmation-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\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {\n CarbonListModule,\n ConfirmationModalModule,\n EditorModule,\n RenderInPageHeaderDirective,\n} from '@valtimo/components';\nimport {FormFlowOverviewComponent} from './components/overview/form-flow-overview.component';\nimport {NewFormFlowModalComponent} from './components/new-form-flow-modal/new-form-flow-modal.component';\nimport {\n ButtonModule,\n DialogModule,\n DropdownModule,\n IconModule,\n InputModule,\n LoadingModule,\n ModalModule,\n NotificationModule,\n} from 'carbon-components-angular';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {FormFlowEditorComponent} from './components/editor/form-flow-editor.component';\nimport {DeleteFormFlowModalComponent} from './components/delete-form-flow-modal/delete-form-flow-modal.component';\n\n@NgModule({\n declarations: [\n FormFlowOverviewComponent,\n NewFormFlowModalComponent,\n FormFlowEditorComponent,\n DeleteFormFlowModalComponent,\n ],\n imports: [\n CommonModule,\n ButtonModule,\n FormsModule,\n ModalModule,\n TranslateModule,\n ReactiveFormsModule,\n InputModule,\n IconModule,\n ConfirmationModalModule,\n EditorModule,\n RenderInPageHeaderDirective,\n LoadingModule,\n IconModule,\n DialogModule,\n NotificationModule,\n CarbonListModule,\n DropdownModule,\n ConfirmationModalModule,\n ],\n})\nexport class FormFlowManagementModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of form-flow\n */\n\nexport * from './lib/models';\nexport * from './lib/services';\nexport * from './lib/components/overview/form-flow-overview.component';\nexport * from './lib/components/editor/form-flow-editor.component';\nexport * from './lib/form-flow-management.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i1.FormFlowService","i6","i7","i8.NewFormFlowModalComponent","i2.FormFlowDownloadService","i3.FormFlowService","i4","i5","i8"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;;ACWG,MAAO,eAAgB,SAAQ,cAAc,CAAA;IACjD,WACqB,CAAA,UAAsB,EACtB,aAA4B,EAAA;AAE/C,QAAA,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC;QAHb,IAAU,CAAA,UAAA,GAAV,UAAU;QACV,IAAa,CAAA,aAAA,GAAb,aAAa;;IAK3B,sBAAsB,CAC3B,iBAAyB,EACzB,cAAsB,EAAA;AAEtB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,IAAI,CAAC,SAAS,CACZ,iCAAiC,iBAAiB,CAAA,SAAA,EAAY,cAAc,CAAuB,qBAAA,CAAA,CACpG,CACF;;AAGI,IAAA,0BAA0B,CAC/B,iBAAyB,EACzB,cAAsB,EACtB,qBAA6B,EAAA;AAE7B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,IAAI,CAAC,SAAS,CACZ,CAAiC,8BAAA,EAAA,iBAAiB,YAAY,cAAc,CAAA,sBAAA,EAAyB,qBAAqB,CAAE,CAAA,CAC7H,CACF;;AAGI,IAAA,wBAAwB,CAC7B,iBAAyB,EACzB,cAAsB,EACtB,UAA8B,EAAA;AAE9B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CACzB,IAAI,CAAC,SAAS,CACZ,CAAiC,8BAAA,EAAA,iBAAiB,YAAY,cAAc,CAAA,qBAAA,CAAuB,CACpG,EACD,UAAU,CACX;;AAGI,IAAA,wBAAwB,CAC7B,iBAAyB,EACzB,cAAsB,EACtB,aAAqB,EAAA;AAErB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAC3B,IAAI,CAAC,SAAS,CACZ,CAAiC,8BAAA,EAAA,iBAAiB,YAAY,cAAc,CAAA,sBAAA,EAAyB,aAAa,CAAE,CAAA,CACrH,CACF;;AAGI,IAAA,wBAAwB,CAC7B,iBAAyB,EACzB,cAAsB,EACtB,aAAqB,EACrB,iBAAqC,EAAA;QAErC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,IAAI,CAAC,SAAS,CACZ,iCAAiC,iBAAiB,CAAA,SAAA,EAAY,cAAc,CAAyB,sBAAA,EAAA,aAAa,EAAE,CACrH,EACD,iBAAiB,CAClB;;+GAnEQ,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAf,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,eAAe,cAFd,MAAM,EAAA,CAAA,CAAA;;4FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;ACxBD;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;MAaU,yBAAyB,CAAA;AAQpC,IAAA,IAAW,GAAG,GAAA;QACZ,OAAO,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC;;AAG9B,IAAA,WAAA,CAA6B,EAAe,EAAA;QAAf,IAAE,CAAA,EAAA,GAAF,EAAE;QAXtB,IAAI,CAAA,IAAA,GAAG,KAAK;AACX,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAA6B;AAE7D,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;AAC1B,YAAA,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC9C,SAAA,CAAC;;IAQK,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,SAAS,EAAE;;IAGX,SAAS,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACb;;AAGF,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACnB,YAAA,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;AACzB,YAAA,SAAS,EAAE,YAAY;AACvB,YAAA,KAAK,EAAE,EAAE;AACV,SAAA,CAAC;QACF,IAAI,CAAC,SAAS,EAAE;;IAGV,SAAS,GAAA;QACf,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACnB,SAAC,EAAE,gBAAgB,CAAC,gBAAgB,CAAC;;+GAnC5B,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,yJC3BtC,yuDAuDA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,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,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,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,EAAAD,IAAA,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,IAAA,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,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,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FD5Ba,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBANrC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,KAAK,EACP,QAAA,EAAA,6BAA6B,EAEtB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,yuDAAA,EAAA;kFAGtC,IAAI,EAAA,CAAA;sBAAZ;gBACS,UAAU,EAAA,CAAA;sBAAnB;;;AE7BH;;;;;;;;;;;;;;AAcG;MAqBU,yBAAyB,CAAA;IAyEpC,WACmB,CAAA,eAAgC,EAChC,yBAAoD,EACpD,KAAqB,EACrB,MAAc,EACd,gBAAkC,EAClC,sBAA8C,EAAA;QAL9C,IAAe,CAAA,eAAA,GAAf,eAAe;QACf,IAAyB,CAAA,yBAAA,GAAzB,yBAAyB;QACzB,IAAK,CAAA,KAAA,GAAL,KAAK;QACL,IAAM,CAAA,MAAA,GAAN,MAAM;QACN,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB;QAChB,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB;AA5EzB,QAAA,IAAA,CAAA,MAAM,GAAmB;AACvC,YAAA;gBACE,QAAQ,EAAE,QAAQ,CAAC,IAAI;AACvB,gBAAA,GAAG,EAAE,KAAK;AACV,gBAAA,KAAK,EAAE,cAAc;AACtB,aAAA;AACD,YAAA;gBACE,QAAQ,EAAE,QAAQ,CAAC,IAAI;AACvB,gBAAA,GAAG,EAAE,YAAY;AACjB,gBAAA,KAAK,EAAE,kBAAkB;AAC1B,aAAA;AACD,YAAA;gBACE,QAAQ,EAAE,QAAQ,CAAC,OAAO;AAC1B,gBAAA,GAAG,EAAE,UAAU;AACf,gBAAA,KAAK,EAAE,mBAAmB;AAC3B,aAAA;SACF;AAEe,QAAA,IAAA,CAAA,YAAY,GAAiB;AAC3C,YAAA;gBACE,QAAQ,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7C,gBAAA,KAAK,EAAE,gBAAgB;AACxB,aAAA;AACD,YAAA;gBACE,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,gBAAA,KAAK,EAAE,kBAAkB;AACzB,gBAAA,IAAI,EAAE,QAAQ;AACf,aAAA;SACF;AAEe,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAAU,IAAI,CAAC;AAC7C,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC;AACtD,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,eAAe,CAAgB,IAAI,CAAC;QAEvE,IAAO,CAAA,OAAA,GAAqC,SAAS;AAC5C,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,eAAe,CAAO,IAAI,CAAC;QAC5C,IAAoB,CAAA,oBAAA,GAAyC,aAAa,CAAC;AACzF,YAAA,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC;AACxC,YAAA,IAAI,CAAC,SAAS;SACf,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAI;AACf,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,YAAA,IAAI,CAAC,OAAO,GAAG,MAAM;AACvB,SAAC,CAAC,EACF,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KACjB,CAAC;AACC,cAAE,EAAE,CAAC,IAAI;cACP,IAAI,CAAC,eAAe,CAAC,sBAAsB,CACzC,MAAM,CAAC,iBAAiB,EACxB,MAAM,CAAC,wBAAwB,CAChC,CACN,EACD,GAAG,CAAC,CAAC,SAA8C,KAAI;AACrD,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AACzB,YAAA,OAAO,CAAC,SAAS,GAAG,EAAE,GAAG,SAAS,CAAC,OAAO;SAC3C,CAAC,CACH;AACe,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC;AAEnD,QAAA,IAAA,CAAA,OAAO,GAAG,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC;AAElD,QAAA,IAAA,CAAA,mBAAmB,GAAwB,IAAI,CAAC,OAAO,CAAC,IAAI,CAC1E,SAAS,CAAC,MAAM,IACd,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,CAC5C,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,wBAAwB,CACjC,CACF,CACF;;IAWM,YAAY,GAAA;AACjB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;;AAGxB,IAAA,KAAK,CAAC,kBAA6C,EAAA;AACxD,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;AAE9B,QAAA,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE;AAE1C,QAAA,IAAI,CAAC;AACF,aAAA,wBAAwB,CACvB,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAC9B,IAAI,CAAC,OAAO,CAAC,wBAAwB,EACrC,kBAAkB;AAEnB,aAAA,SAAS,CAAC,CAAC,kBAAsC,KAAI;AACpD,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;AAC9B,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAC,CAAC;AAC1E,SAAC,CAAC;;AAGC,IAAA,mBAAmB,CAAC,kBAA0C,EAAA;AACnE,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAC,CAAC;;AAGnE,IAAA,cAAc,CAAC,IAA4B,EAAA;QAChD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACxC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;;AAG3B,IAAA,QAAQ,CAAC,aAAqB,EAAA;QACnC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE;AAEnB,QAAA,IAAI,CAAC;AACF,aAAA,wBAAwB,CACvB,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAC9B,IAAI,CAAC,OAAO,CAAC,wBAAwB,EACrC,aAAa;aAEd,SAAS,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC;gBACvC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,kBAAkB,CAAC;gBACxD,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,8BAA8B,EAAE;AACrE,oBAAA,GAAG,EAAE,aAAa;iBACnB,CAAC;AACF,gBAAA,IAAI,EAAE,SAAS;AAChB,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3B,SAAC,CAAC;;+GAlIK,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,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;mGAAzB,yBAAyB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,cAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACzB,mBAAmB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpChC,2kEA2DA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,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,WAAA,EAAA,IAAA,EAAAA,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,WAAA,EAAA,IAAA,EAAAC,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,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,6BAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,qBAAA,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,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDxBa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;iCACI,KAAK,EAAA,eAAA,EAEA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2kEAAA,EAAA;+OAGf,UAAU,EAAA,CAAA;sBAAzC,SAAS;uBAAC,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEpChC;;;;;;;;;;;;;;AAcG;MAKU,uBAAuB,CAAA;IAC3B,YAAY,CACjB,IAAY,EACZ,MAA8D,EAAA;AAE9D,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;AAC3C,QAAA,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,+BAA+B,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACzF,QAAA,OAAO,CAAC,YAAY,CAClB,UAAU,EACV,CAAA,EAAG,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,wBAAwB,CAAI,CAAA,EAAA,MAAM,CAAC,qBAAqB,CAAA,cAAA,CAAgB,CAC/G;AACD,QAAA,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;AAC9B,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;AAClC,QAAA,OAAO,CAAC,KAAK,EAAE,CAAC;AAChB,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;;+GAfzB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAvB,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,uBAAuB,cADX,MAAM,EAAA,CAAA,CAAA;;4FAClB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC;;;AClBhC;;;;;;;;;;;;;;AAcG;MAsCU,uBAAuB,CAAA;AA4ClC,IAAA,WAAA,CACmB,iBAAoC,EACpC,uBAAgD,EAChD,eAAgC,EAChC,WAAwB,EACxB,mBAA8C,EAC9C,iBAAoC,EACpC,gBAAkC,EAClC,KAAqB,EACrB,MAAc,EACd,gBAAkC,EAAA;QATlC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB;QACjB,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB;QACvB,IAAe,CAAA,eAAA,GAAf,eAAe;QACf,IAAW,CAAA,WAAA,GAAX,WAAW;QACX,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB;QACnB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB;QACjB,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB;QAChB,IAAK,CAAA,KAAA,GAAL,KAAK;QACL,IAAM,CAAA,MAAA,GAAN,MAAM;QACN,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB;AArDnB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC;AAC/C,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC;AAC5C,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAAU,IAAI,CAAC;AAC7C,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC;AACtD,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,eAAe,CAA8B,IAAI,CAAC;QAC9E,IAAY,CAAA,YAAA,GAAG,KAAK;QAEnB,IAAQ,CAAA,QAAA,GAAqC,aAAa,CAAC;AAC1E,YAAA,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC;YACxC,IAAI,CAAC,KAAK,CAAC,MAAqD;AACjE,SAAA,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,CAAC,CAAC,oBAAoB,EAAE,MAAM,CAAC,MAAM;AACvC,YAAA,IAAI,oBAAoB,IAAI,EAAC,iBAAiB,EAAE,EAAE,EAAE,wBAAwB,EAAE,EAAE,EAAC,CAAC;AAClF,YAAA,GAAG,MAAM;SACV,CAAC,CAAC,CACJ;QACe,IAAkB,CAAA,kBAAA,GAAG,kBAAkB;QAEtC,IAAqB,CAAA,qBAAA,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CACzD,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EACnC,SAAS,CAAC,CAAC,MAA4B,KAAI;AACzC,YAAA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;AAE5B,YAAA,OAAO,IAAI,CAAC,eAAe,CAAC,0BAA0B,CACpD,MAAM,CAAC,iBAAiB,EACxB,MAAM,CAAC,wBAAwB,EAC/B,MAAM,CAAC,qBAAqB,CAC7B;AACH,SAAC,CAAC,EACF,GAAG,CAAC,CAAC,kBAAsC,KAAI;YAC7C,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,GAAG,CAAC;YAChE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,KAAK,IAAI,CAAC;AACzD,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;SAC1B,CAAC,CACH;QACe,IAAM,CAAA,MAAA,GAA4B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAC/E,GAAG,CAAC,CAAC,kBAAsC,KAAK,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CACzF;AAEgB,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,eAAe,CAAS,EAAE,CAAC;AAEtD,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY;QAchE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,CAAC;AAC3C,QAAA,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE;;IAG/B,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE;AACnC,QAAA,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,EAAE;AAC7C,QAAA,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,EAAE;;AAGzC,IAAA,OAAO,CAAC,KAAc,EAAA;AAC3B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;;AAGlB,IAAA,aAAa,CAAC,KAAa,EAAA;AAChC,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC;;IAG/B,wBAAwB,GAAA;AAC7B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAExB,aAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,mBAAmB,CAAC;AACpD,aAAA,IAAI,CACH,IAAI,CAAC,CAAC,CAAC,EACP,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,iBAAiB,CAAC,KACpC,IAAI,CAAC,eAAe,CAAC,wBAAwB,CAC3C,MAAM,CAAC,iBAAiB,EACxB,MAAM,CAAC,wBAAwB,EAC/B,MAAM,CAAC,qBAAqB,EAC5B;AACE,YAAA,GAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAwB;YACxD,GAAG,EAAE,MAAM,CAAC,qBAAqB;AAClC,SAAA,CACF,CACF,EACD,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAE1C,SAAS,CAAC,MAAM,IAAG;AAClB,YAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC;AACrC,SAAC,CAAC;;IAGC,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC;AACF,aAAA,IAAI,CACH,IAAI,CAAC,CAAC,CAAC,EACP,SAAS,CAAC,CAAC,MAA8D,KACvE,IAAI,CAAC,eAAe,CAAC,wBAAwB,CAC3C,MAAM,CAAC,iBAAiB,EACxB,MAAM,CAAC,wBAAwB,EAC/B,MAAM,CAAC,qBAAqB,CAC7B,CACF;aAEF,SAAS,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,EAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAC,CAAC;AACzD,SAAC,CAAC;;IAGC,eAAe,GAAA;AACpB,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;;AAG3B,IAAA,0BAA0B,CAAC,KAAkB,EAAA;AAClD,QAAA,IAAI,CAAC;AACF,aAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACZ,SAAS,CAAC,CAAC,MAA8D,KACxE,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAC3E;;IAGE,YAAY,GAAA;AACjB,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,EAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAC,CAAC;;AAGjD,IAAA,cAAc,CAAC,kBAAsC,EAAA;AAC3D,QAAA,MAAM,KAAK,GAAG,EAAC,GAAG,kBAAkB,EAAC;QACrC,OAAO,KAAK,CAAC,QAAQ;QACrB,OAAO;AACL,YAAA,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAC5B,YAAA,QAAQ,EAAE,MAAM;SACjB;;AAGK,IAAA,kBAAkB,CAAC,qBAA6B,EAAA;AACtD,QAAA,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC;YACjC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,mCAAmC,EAAE;AAC1E,gBAAA,GAAG,EAAE,qBAAqB;aAC3B,CAAC;AACF,YAAA,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,4BAA4B,CAAC;AACnE,SAAA,CAAC;;AAGI,IAAA,eAAe,CAAC,MAA4B,EAAA;QAClD,MAAM,KAAK,GAAG,CAAA,sBAAA,EAAyB,MAAM,CAAC,iBAAiB,CAAA,SAAA,EAAY,MAAM,CAAC,wBAAwB,CAAA,CAAE;AAE5G,QAAA,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC;YACxC,KAAK,EAAE,CAAC,KAAK,CAAC;YACd,OAAO,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAK,EAAA,EAAA,MAAM,CAAC,wBAAwB,CAAG,CAAA,CAAA;AAC3E,YAAA,IAAI,EAAE,KAAK;AACZ,SAAA,CAAC;AAEF,QAAA,MAAM,kBAAkB,GAAG,CAAG,EAAA,KAAK,aAAa;AAEhD,QAAA,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC;YACzC,KAAK,EAAE,CAAC,kBAAkB,CAAC;YAC3B,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,+BAA+B,CAAC;AACvE,YAAA,IAAI,EAAE,kBAAkB;AACzB,SAAA,CAAC;;+GAtKO,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAN,IAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAO,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAAV,IAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAI,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,yECpDpC,6vFAmFA,EAAA,MAAA,EAAA,CAAA,owBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,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,WAAA,EAAA,IAAA,EAAAA,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,WAAA,EAAA,IAAA,EAAAT,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,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,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAS,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAAA,MAAA,EAAA,WAAA,EAAA,MAAA,EAAA,eAAA,EAAA,QAAA,EAAA,cAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,oDAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAN,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FD/Ba,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,SAAS;iCACI,KAAK,EAAA,eAAA,EAEA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6vFAAA,EAAA,MAAA,EAAA,CAAA,owBAAA,CAAA,EAAA;;;AEjDjD;;;;;;;;;;;;;;AAcG;MAWU,4BAA4B,CAAA;AANzC,IAAA,WAAA,GAAA;AASY,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAU;AAKnD;AAHQ,IAAA,QAAQ,CAAC,qBAA6B,EAAA;AAC3C,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC;;+GANnC,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,kPCzBzC,ohCAyBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,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,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDAa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBANxC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,KAAK,EACP,QAAA,EAAA,gCAAgC,EAEzB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,ohCAAA,EAAA;8BAGtC,2BAA2B,EAAA,CAAA;sBAAnC;gBACQ,gBAAgB,EAAA,CAAA;sBAAxB;gBACS,WAAW,EAAA,CAAA;sBAApB;;;AE5BH;;;;;;;;;;;;;;AAcG;MAuDU,wBAAwB,CAAA;+GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAxB,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,wBAAwB,iBA1BjC,yBAAyB;YACzB,yBAAyB;YACzB,uBAAuB;AACvB,YAAA,4BAA4B,aAG5B,YAAY;YACZ,YAAY;YACZ,WAAW;YACX,WAAW;YACX,eAAe;YACf,mBAAmB;YACnB,WAAW;YACX,UAAU;YACV,uBAAuB;YACvB,YAAY;YACZ,2BAA2B;YAC3B,aAAa;YACb,UAAU;YACV,YAAY;YACZ,kBAAkB;YAClB,gBAAgB;YAChB,cAAc;YACd,uBAAuB,CAAA,EAAA,CAAA,CAAA;AAGd,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,wBAAwB,YApBjC,YAAY;YACZ,YAAY;YACZ,WAAW;YACX,WAAW;YACX,eAAe;YACf,mBAAmB;YACnB,WAAW;YACX,UAAU;YACV,uBAAuB;YACvB,YAAY;YAEZ,aAAa;YACb,UAAU;YACV,YAAY;YACZ,kBAAkB;YAClB,gBAAgB;YAChB,cAAc;YACd,uBAAuB,CAAA,EAAA,CAAA,CAAA;;4FAGd,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBA5BpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,yBAAyB;wBACzB,yBAAyB;wBACzB,uBAAuB;wBACvB,4BAA4B;AAC7B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,YAAY;wBACZ,WAAW;wBACX,WAAW;wBACX,eAAe;wBACf,mBAAmB;wBACnB,WAAW;wBACX,UAAU;wBACV,uBAAuB;wBACvB,YAAY;wBACZ,2BAA2B;wBAC3B,aAAa;wBACb,UAAU;wBACV,YAAY;wBACZ,kBAAkB;wBAClB,gBAAgB;wBAChB,cAAc;wBACd,uBAAuB;AACxB,qBAAA;AACF,iBAAA;;;ACpED;;;;;;;;;;;;;;AAcG;AAEH;;AAEG;;AClBH;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"valtimo-form-flow-management.mjs","sources":["../../../../projects/valtimo/form-flow-management/src/lib/models/form-flow.model.ts","../../../../projects/valtimo/form-flow-management/src/lib/models/index.ts","../../../../projects/valtimo/form-flow-management/src/lib/services/form-flow.service.ts","../../../../projects/valtimo/form-flow-management/src/lib/services/index.ts","../../../../projects/valtimo/form-flow-management/src/lib/components/new-form-flow-modal/new-form-flow-modal.component.ts","../../../../projects/valtimo/form-flow-management/src/lib/components/new-form-flow-modal/new-form-flow-modal.component.html","../../../../projects/valtimo/form-flow-management/src/lib/components/overview/form-flow-overview.component.ts","../../../../projects/valtimo/form-flow-management/src/lib/components/overview/form-flow-overview.component.html","../../../../projects/valtimo/form-flow-management/src/lib/services/form-flow-download.service.ts","../../../../projects/valtimo/form-flow-management/src/lib/components/editor/form-flow-editor.component.ts","../../../../projects/valtimo/form-flow-management/src/lib/components/editor/form-flow-editor.component.html","../../../../projects/valtimo/form-flow-management/src/lib/components/delete-form-flow-modal/delete-form-flow-modal.component.ts","../../../../projects/valtimo/form-flow-management/src/lib/components/delete-form-flow-modal/delete-form-flow-modal.component.html","../../../../projects/valtimo/form-flow-management/src/lib/form-flow-management.module.ts","../../../../projects/valtimo/form-flow-management/src/public-api.ts","../../../../projects/valtimo/form-flow-management/src/valtimo-form-flow-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\ninterface ListFormFlowDefinition {\n key: string;\n versions: Array<number>;\n readOnly?: boolean;\n}\n\ninterface FormFlowDefinition {\n key: string;\n readOnly?: boolean;\n startStep: string;\n steps: Array<FormFlowStep>;\n}\n\ninterface FormFlowDefinitionId {\n key: string;\n version: number;\n}\n\ninterface FormFlowStep {\n key: string;\n nextSteps: Array<FormFlowNextStep>;\n onBack: Array<string>;\n onOpen: Array<string>;\n onComplete: Array<string>;\n type: FormFlowStepType;\n}\n\ninterface FormFlowNextStep {\n condition?: string;\n step: string;\n}\n\ninterface FormFlowStepType {\n name: string;\n properties: FormStepTypeProperties | CustomComponentStepTypeProperties;\n}\n\ninterface FormStepTypeProperties {\n definition: string;\n}\n\ninterface CustomComponentStepTypeProperties {\n componentId: string;\n}\n\ninterface DeleteFormFlowsRequest {\n formFlowKeys: Array<string>;\n}\n\ninterface LoadedValue<T> {\n isLoading: boolean;\n value?: T;\n}\n\ninterface FormFlowEditorParams {\n formFlowDefinitionKey: string;\n caseDefinitionKey: string;\n caseDefinitionVersionTag: string;\n}\n\nexport {\n ListFormFlowDefinition,\n FormFlowDefinition,\n FormFlowDefinitionId,\n FormFlowStep,\n FormFlowNextStep,\n FormFlowStepType,\n FormStepTypeProperties,\n CustomComponentStepTypeProperties,\n DeleteFormFlowsRequest,\n LoadedValue,\n FormFlowEditorParams,\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-flow.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 {HttpClient} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {ConfigService, Page, BaseApiService} from '@valtimo/shared';\nimport {BehaviorSubject, catchError, Observable, of, switchMap, take, tap} from 'rxjs';\nimport {FormFlowDefinition, FormFlowDefinitionId, ListFormFlowDefinition} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormFlowService extends BaseApiService {\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public getFormFlowDefinitions(\n caseDefinitionKey: string,\n caseVersionTag: string\n ): Observable<Page<ListFormFlowDefinition>> {\n return this.httpClient.get<Page<ListFormFlowDefinition>>(\n this.getApiUrl(\n `management/v1/case-definition/${caseDefinitionKey}/version/${caseVersionTag}/form-flow-definition`\n )\n );\n }\n\n public getFormFlowDefinitionByKey(\n caseDefinitionKey: string,\n caseVersionTag: string,\n formFlowDefinitionKey: string\n ): Observable<FormFlowDefinition> {\n return this.httpClient.get<FormFlowDefinition>(\n this.getApiUrl(\n `management/v1/case-definition/${caseDefinitionKey}/version/${caseVersionTag}/form-flow-definition/${formFlowDefinitionKey}`\n )\n );\n }\n\n public createFormFlowDefinition(\n caseDefinitionKey: string,\n caseVersionTag: string,\n definition: FormFlowDefinition\n ): Observable<FormFlowDefinition> {\n return this.httpClient.post<FormFlowDefinition>(\n this.getApiUrl(\n `management/v1/case-definition/${caseDefinitionKey}/version/${caseVersionTag}/form-flow-definition`\n ),\n definition\n );\n }\n\n public deleteFormFlowDefinition(\n caseDefinitionKey: string,\n caseVersionTag: string,\n definitionKey: string\n ): Observable<null> {\n return this.httpClient.delete<null>(\n this.getApiUrl(\n `management/v1/case-definition/${caseDefinitionKey}/version/${caseVersionTag}/form-flow-definition/${definitionKey}`\n )\n );\n }\n\n public updateFormFlowDefinition(\n caseDefinitionKey: string,\n caseVersionTag: string,\n definitionKey: string,\n updatedDefinition: FormFlowDefinition\n ): Observable<FormFlowDefinition> {\n return this.httpClient.put<FormFlowDefinition>(\n this.getApiUrl(\n `management/v1/case-definition/${caseDefinitionKey}/version/${caseVersionTag}/form-flow-definition/${definitionKey}`\n ),\n updatedDefinition\n );\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './form-flow.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 {ChangeDetectionStrategy, Component, EventEmitter, Input, Output} from '@angular/core';\nimport {FormBuilder, Validators} from '@angular/forms';\nimport {FormFlowDefinition} from '../../models';\nimport {CARBON_CONSTANTS} from '@valtimo/components';\n\n@Component({\n standalone: false,\n selector: 'valtimo-new-form-flow-modal',\n templateUrl: './new-form-flow-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NewFormFlowModalComponent {\n @Input() open = false;\n @Output() closeEvent = new EventEmitter<FormFlowDefinition | null>();\n\n public form = this.fb.group({\n key: this.fb.control('', Validators.required),\n });\n\n public get key() {\n return this.form?.get('key');\n }\n\n constructor(private readonly fb: FormBuilder) {}\n\n public onCancel(): void {\n this.closeEvent.emit(null);\n this.resetForm();\n }\n\n public onConfirm(): void {\n if (!this.key) {\n return;\n }\n\n this.closeEvent.emit({\n key: this.key.value ?? '',\n startStep: 'start-step',\n steps: [],\n });\n this.resetForm();\n }\n\n private resetForm(): void {\n setTimeout(() => {\n this.form.reset();\n }, CARBON_CONSTANTS.modalAnimationMs);\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 [open]=\"open\"\n showFooter=\"true\"\n [title]=\"'formFlow.add' | translate\"\n valtimoCdsModal\n (close)=\"onCancel()\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCancel()\">\n <h3 cdsModalHeaderHeading>\n {{ 'formFlow.add' | translate }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <form [formGroup]=\"form\">\n <cds-label [invalid]=\"key.dirty && key.invalid\">\n {{ 'formFlow.key' | translate }}\n\n <input\n formControlName=\"key\"\n cdsText\n placeholder=\"{{ 'formFlow.key' | translate }}\"\n [attr.modal-primary-focus]=\"true\"\n [invalid]=\"key.dirty && key.invalid\"\n />\n </cds-label>\n </form>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"onCancel()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button [disabled]=\"this.form.invalid\" (click)=\"onConfirm()\" cdsButton=\"primary\">\n {{ 'interface.create' | 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 */\nimport {ChangeDetectionStrategy, Component, ViewChild} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ActionItem, CarbonListComponent, ColumnConfig, ViewType} from '@valtimo/components';\nimport {\n CaseManagementParams,\n EditPermissionsService,\n getCaseManagementRouteParams,\n GlobalNotificationService,\n Page,\n} from '@valtimo/shared';\nimport {BehaviorSubject, combineLatest, map, Observable, of, switchMap, tap} from 'rxjs';\nimport {FormFlowDefinition, ListFormFlowDefinition} from '../../models';\nimport {FormFlowService} from '../../services';\n\n@Component({\n standalone: false,\n templateUrl: './form-flow-overview.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FormFlowOverviewComponent {\n @ViewChild(CarbonListComponent) carbonList: CarbonListComponent;\n\n public readonly FIELDS: ColumnConfig[] = [\n {\n viewType: ViewType.TEXT,\n key: 'key',\n label: 'formFlow.key',\n },\n {\n viewType: ViewType.TEXT,\n key: 'versions.0',\n label: 'formFlow.version',\n },\n {\n viewType: ViewType.BOOLEAN,\n key: 'readOnly',\n label: 'formFlow.readOnly',\n },\n ];\n\n public readonly ACTION_ITEMS: ActionItem[] = [\n {\n callback: this.editFormFlowDetails.bind(this),\n label: 'interface.edit',\n },\n {\n callback: this.deleteFormFlow.bind(this),\n label: 'interface.delete',\n type: 'danger',\n },\n ];\n\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n public readonly showDeleteModal$ = new BehaviorSubject<boolean>(false);\n public readonly deleteDefinitionKey$ = new BehaviorSubject<string | null>(null);\n\n private _params: CaseManagementParams | undefined = undefined;\n private readonly _refresh$ = new BehaviorSubject<null>(null);\n public readonly formFlowDefinitions$: Observable<ListFormFlowDefinition[]> = combineLatest([\n getCaseManagementRouteParams(this.route),\n this._refresh$,\n ]).pipe(\n tap(([params]) => {\n this.loading$.next(true);\n this._params = params;\n }),\n switchMap(([params]) =>\n !params\n ? of(null)\n : this.formFlowService.getFormFlowDefinitions(\n params.caseDefinitionKey,\n params.caseDefinitionVersionTag\n )\n ),\n map((formFlows: Page<ListFormFlowDefinition> | null) => {\n this.loading$.next(false);\n return !formFlows ? [] : formFlows.content;\n })\n );\n public readonly showAddModal$ = new BehaviorSubject<boolean>(false);\n\n public readonly params$ = getCaseManagementRouteParams(this.route);\n\n public readonly hasEditPermissions$: Observable<boolean> = this.params$.pipe(\n switchMap(params =>\n this.editPermissionsService.hasEditPermissions(\n params?.caseDefinitionKey,\n params?.caseDefinitionVersionTag\n )\n )\n );\n\n constructor(\n private readonly formFlowService: FormFlowService,\n private readonly globalNotificationService: GlobalNotificationService,\n private readonly route: ActivatedRoute,\n private readonly router: Router,\n private readonly translateService: TranslateService,\n private readonly editPermissionsService: EditPermissionsService\n ) {}\n\n public openAddModal(): void {\n this.showAddModal$.next(true);\n }\n\n public onAdd(formFlowDefinition: FormFlowDefinition | null): void {\n this.showAddModal$.next(false);\n\n if (!formFlowDefinition || !this._params) return;\n\n this.formFlowService\n .createFormFlowDefinition(\n this._params.caseDefinitionKey,\n this._params.caseDefinitionVersionTag,\n formFlowDefinition\n )\n .subscribe((formFlowDefinition: FormFlowDefinition) => {\n this.showAddModal$.next(false);\n this.router.navigate([formFlowDefinition.key], {relativeTo: this.route});\n });\n }\n\n public editFormFlowDetails(formFlowDefinition: ListFormFlowDefinition): void {\n this.router.navigate([formFlowDefinition.key], {relativeTo: this.route});\n }\n\n public deleteFormFlow(item: ListFormFlowDefinition): void {\n this.deleteDefinitionKey$.next(item.key);\n this.showDeleteModal$.next(true);\n }\n\n public onDelete(definitionKey: string): void {\n if (!this._params) return;\n\n this.formFlowService\n .deleteFormFlowDefinition(\n this._params.caseDefinitionKey,\n this._params.caseDefinitionVersionTag,\n definitionKey\n )\n .subscribe(() => {\n this.globalNotificationService.showToast({\n title: this.translateService.instant('interface.delete'),\n caption: this.translateService.instant('formFlow.deletedSuccessfully', {\n key: definitionKey,\n }),\n type: 'success',\n });\n this._refresh$.next(null);\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<valtimo-carbon-list\n [actionItems]=\"ACTION_ITEMS\"\n [header]=\"false\"\n [items]=\"formFlowDefinitions$ | async\"\n [fields]=\"FIELDS\"\n [loading]=\"loading$ | async\"\n (rowClicked)=\"editFormFlowDetails($event)\"\n>\n <ng-container header> {{ 'formFlow.title' | translate }} </ng-container>\n\n <div carbonToolbarContent>\n <ng-container [ngTemplateOutlet]=\"addFormFlowButton\"></ng-container>\n </div>\n\n <valtimo-no-results\n [action]=\"addFormFlowButton\"\n description=\"{{ 'formFlow.noResults.description' | translate }}\"\n title=\"{{ 'formFlow.noResults.title' | translate }}\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<valtimo-new-form-flow-modal\n [open]=\"showAddModal$ | async\"\n (closeEvent)=\"onAdd($event)\"\n></valtimo-new-form-flow-modal>\n\n<ng-template #addFormFlowButton>\n <button *ngIf=\"hasEditPermissions$ | async\" cdsButton=\"primary\" (click)=\"openAddModal()\">\n {{ 'formFlow.add' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"formFlow.deleteModalContent\"\n [outputOnConfirm]=\"deleteDefinitionKey$ | async\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDelete($event)\"\n></valtimo-confirmation-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 */\nimport {Injectable} from '@angular/core';\nimport {CaseManagementParams} from '@valtimo/shared';\n\n@Injectable({providedIn: 'root'})\nexport class FormFlowDownloadService {\n public downloadJson(\n json: object,\n params: CaseManagementParams & {formFlowDefinitionKey: string}\n ): void {\n const sJson = JSON.stringify(json, null, 2);\n const element = document.createElement('a');\n element.setAttribute('href', 'data:text/json;charset=UTF-8,' + encodeURIComponent(sJson));\n element.setAttribute(\n 'download',\n `${params.caseDefinitionKey}-${params.caseDefinitionVersionTag}-${params.formFlowDefinitionKey}.formflow.json`\n );\n element.style.display = 'none';\n document.body.appendChild(element);\n element.click(); // simulate click\n document.body.removeChild(element);\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 */\nimport {ChangeDetectionStrategy, Component, OnDestroy} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {ArrowLeft16} from '@carbon/icons';\nimport {TranslateService} from '@ngx-translate/core';\nimport {\n BreadcrumbService,\n EditorModel,\n PageHeaderService,\n PageTitleService,\n} from '@valtimo/components';\nimport {\n CaseManagementParams,\n getCaseManagementRouteParams,\n GlobalNotificationService,\n} from '@valtimo/shared';\nimport {IconService} from 'carbon-components-angular';\nimport {\n BehaviorSubject,\n combineLatest,\n finalize,\n map,\n Observable,\n switchMap,\n take,\n tap,\n} from 'rxjs';\nimport {FormFlowDefinition, FormFlowDefinitionId, FormFlowEditorParams} from '../../models';\nimport {FormFlowService} from '../../services';\nimport {FormFlowDownloadService} from '../../services/form-flow-download.service';\nimport formFlowSchemaJson from './formflow.schema.json';\n\n@Component({\n standalone: false,\n templateUrl: './form-flow-editor.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./form-flow-editor.component.scss'],\n})\nexport class FormFlowEditorComponent implements OnDestroy {\n public readonly readOnly$ = new BehaviorSubject<boolean>(false);\n public readonly valid$ = new BehaviorSubject<boolean>(false);\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n public readonly showDeleteModal$ = new BehaviorSubject<boolean>(false);\n public readonly formFlowDefinitionId$ = new BehaviorSubject<FormFlowDefinitionId | null>(null);\n public readonly CARBON_THEME = 'g10';\n\n private readonly _params$: Observable<FormFlowEditorParams> = combineLatest([\n getCaseManagementRouteParams(this.route),\n this.route.params as Observable<{formFlowDefinitionKey: string}>,\n ]).pipe(\n map(([caseManagementParams, params]) => ({\n ...(caseManagementParams ?? {caseDefinitionKey: '', caseDefinitionVersionTag: ''}),\n ...params,\n }))\n );\n public readonly formFlowSchemaJson = formFlowSchemaJson;\n\n private readonly _formFlowDefinition2$ = this._params$.pipe(\n tap(() => this.loading$.next(true)),\n switchMap((params: FormFlowEditorParams) => {\n this.initBreadcrumbs(params);\n\n return this.formFlowService.getFormFlowDefinitionByKey(\n params.caseDefinitionKey,\n params.caseDefinitionVersionTag,\n params.formFlowDefinitionKey\n );\n }),\n tap((formFlowDefinition: FormFlowDefinition) => {\n this.pageTitleService.setCustomPageTitle(formFlowDefinition.key);\n this.readOnly$.next(formFlowDefinition.readOnly === true);\n this.loading$.next(false);\n })\n );\n public readonly model$: Observable<EditorModel> = this._formFlowDefinition2$.pipe(\n map((formFlowDefinition: FormFlowDefinition) => this.getEditorModel(formFlowDefinition))\n );\n\n private readonly _updatedModelValue$ = new BehaviorSubject<string>('');\n\n public readonly compactMode$ = this.pageHeaderService.compactMode$;\n\n constructor(\n private readonly breadcrumbService: BreadcrumbService,\n private readonly formFlowDownloadService: FormFlowDownloadService,\n private readonly formFlowService: FormFlowService,\n private readonly iconService: IconService,\n private readonly notificationService: GlobalNotificationService,\n private readonly pageHeaderService: PageHeaderService,\n private readonly pageTitleService: PageTitleService,\n private readonly route: ActivatedRoute,\n private readonly router: Router,\n private readonly translateService: TranslateService\n ) {\n this.iconService.registerAll([ArrowLeft16]);\n this.pageTitleService.disableReset();\n }\n\n public ngOnDestroy(): void {\n this.pageTitleService.enableReset();\n this.breadcrumbService.clearThirdBreadcrumb();\n this.breadcrumbService.clearFourthBreadcrumb();\n }\n\n public onValid(valid: boolean): void {\n this.valid$.next(valid);\n }\n\n public onValueChange(value: string): void {\n this._updatedModelValue$.next(value);\n }\n\n public updateFormFlowDefinition(): void {\n this.loading$.next(true);\n\n combineLatest([this._params$, this._updatedModelValue$])\n .pipe(\n take(1),\n switchMap(([params, updatedModelValue]) =>\n this.formFlowService.updateFormFlowDefinition(\n params.caseDefinitionKey,\n params.caseDefinitionVersionTag,\n params.formFlowDefinitionKey,\n {\n ...(JSON.parse(updatedModelValue) as FormFlowDefinition),\n key: params.formFlowDefinitionKey,\n }\n )\n ),\n finalize(() => this.loading$.next(false))\n )\n .subscribe(result => {\n this.showSuccessMessage(result.key);\n });\n }\n\n public onDelete(): void {\n this.loading$.next(true);\n this._params$\n .pipe(\n take(1),\n switchMap((params: CaseManagementParams & {formFlowDefinitionKey: string}) =>\n this.formFlowService.deleteFormFlowDefinition(\n params.caseDefinitionKey,\n params.caseDefinitionVersionTag,\n params.formFlowDefinitionKey\n )\n )\n )\n .subscribe(() => {\n this.router.navigate(['../'], {relativeTo: this.route});\n });\n }\n\n public showDeleteModal(): void {\n this.showDeleteModal$.next(true);\n }\n\n public downloadFormFlowDefinition(model: EditorModel): void {\n this._params$\n .pipe(take(1))\n .subscribe((params: CaseManagementParams & {formFlowDefinitionKey: string}) =>\n this.formFlowDownloadService.downloadJson(JSON.parse(model.value), params)\n );\n }\n\n public navigateBack(): void {\n this.router.navigate(['../'], {relativeTo: this.route});\n }\n\n private getEditorModel(formFlowDefinition: FormFlowDefinition): EditorModel {\n const clone = {...formFlowDefinition};\n delete clone.readOnly;\n return {\n value: JSON.stringify(clone),\n language: 'json',\n };\n }\n\n private showSuccessMessage(formFlowDefinitionKey: string): void {\n this.notificationService.showToast({\n caption: this.translateService.instant('formFlow.savedSuccessTitleMessage', {\n key: formFlowDefinitionKey,\n }),\n type: 'success',\n title: this.translateService.instant('formFlow.savedSuccessTitle'),\n });\n }\n\n private initBreadcrumbs(params: FormFlowEditorParams): void {\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 routeWithFormFlows = `${route}/form-flows`;\n\n this.breadcrumbService.setFourthBreadcrumb({\n route: [routeWithFormFlows],\n content: this.translateService.instant('caseManagement.tabs.formFlows'),\n href: routeWithFormFlows,\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@if (model$ | async; as model) {\n <valtimo-editor\n [disabled]=\"(loading$ | async) === false && readOnly$ | async\"\n [model]=\"model\"\n [jsonSchema]=\"formFlowSchemaJson\"\n (validEvent)=\"onValid($event)\"\n (valueChangeEvent)=\"onValueChange($event)\"\n [fitPage]=\"true\"\n ></valtimo-editor>\n} @else {\n <cds-loading></cds-loading>\n}\n\n<ng-container renderInPageHeader>\n <ng-template>\n <div\n *ngIf=\"{\n compactMode: compactMode$ | async,\n valid: valid$ | async,\n readOnly: readOnly$ | async,\n model: model$ | async,\n } as obs\"\n class=\"buttons-container\"\n >\n <cds-overflow-menu>\n <cds-overflow-menu-option\n [disabled]=\"!obs.valid && !obs.readOnly\"\n (selected)=\"downloadFormFlowDefinition(obs.model)\"\n >{{ 'interface.export' | translate }}\n </cds-overflow-menu-option>\n\n <cds-overflow-menu-option\n [disabled]=\"obs.readOnly\"\n type=\"danger\"\n (selected)=\"showDeleteModal()\"\n >{{ 'interface.delete' | translate }}\n </cds-overflow-menu-option>\n </cds-overflow-menu>\n\n <button cdsButton=\"secondary\" [size]=\"obs.compactMode ? 'sm' : 'md'\" (click)=\"navigateBack()\">\n {{ 'interface.back' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"arrow--left\" size=\"16\"></svg>\n </button>\n\n <button\n [disabled]=\"!obs.valid || obs.readOnly\"\n cdsButton=\"primary\"\n [size]=\"obs.compactMode ? 'sm' : 'md'\"\n (click)=\"updateFormFlowDefinition()\"\n >\n {{ 'interface.save' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"save\" size=\"16\"></svg>\n </button>\n </div>\n </ng-template>\n</ng-container>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"formFlow.deleteModalContent\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDelete()\"\n></valtimo-confirmation-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\nimport {ChangeDetectionStrategy, Component, EventEmitter, Input, Output} from '@angular/core';\nimport {Observable} from 'rxjs';\n\n@Component({\n standalone: false,\n selector: 'valtimo-delete-form-flow-modal',\n templateUrl: './delete-form-flow-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DeleteFormFlowModalComponent {\n @Input() deleteFormFlowDefinitionKey: string;\n @Input() showDeleteModal$: Observable<boolean>;\n @Output() deleteEvent = new EventEmitter<string>();\n\n public onDelete(formFlowDefinitionKey: string): void {\n this.deleteEvent.emit(formFlowDefinitionKey);\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<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"formFlow.deleteModalContent\"\n [outputOnConfirm]=\"deleteFormFlowDefinitionKey\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDelete($event)\"\n></valtimo-confirmation-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\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {\n CarbonListModule,\n ConfirmationModalModule,\n EditorModule,\n RenderInPageHeaderDirective,\n} from '@valtimo/components';\nimport {FormFlowOverviewComponent} from './components/overview/form-flow-overview.component';\nimport {NewFormFlowModalComponent} from './components/new-form-flow-modal/new-form-flow-modal.component';\nimport {\n ButtonModule,\n DialogModule,\n DropdownModule,\n IconModule,\n InputModule,\n LoadingModule,\n ModalModule,\n NotificationModule,\n} from 'carbon-components-angular';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {FormFlowEditorComponent} from './components/editor/form-flow-editor.component';\nimport {DeleteFormFlowModalComponent} from './components/delete-form-flow-modal/delete-form-flow-modal.component';\n\n@NgModule({\n declarations: [\n FormFlowOverviewComponent,\n NewFormFlowModalComponent,\n FormFlowEditorComponent,\n DeleteFormFlowModalComponent,\n ],\n imports: [\n CommonModule,\n ButtonModule,\n FormsModule,\n ModalModule,\n TranslateModule,\n ReactiveFormsModule,\n InputModule,\n IconModule,\n ConfirmationModalModule,\n EditorModule,\n RenderInPageHeaderDirective,\n LoadingModule,\n IconModule,\n DialogModule,\n NotificationModule,\n CarbonListModule,\n DropdownModule,\n ConfirmationModalModule,\n ],\n})\nexport class FormFlowManagementModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of form-flow\n */\n\nexport * from './lib/models';\nexport * from './lib/services';\nexport * from './lib/components/overview/form-flow-overview.component';\nexport * from './lib/components/editor/form-flow-editor.component';\nexport * from './lib/form-flow-management.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i1.FormFlowService","i6","i7","i8.NewFormFlowModalComponent","i2.FormFlowDownloadService","i3.FormFlowService","i4","i5","i8"],"mappings":"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"}
|