@valtimo/dossier-management 10.0.0 → 10.1.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.
Files changed (21) hide show
  1. package/esm2020/lib/dossier-management-detail-container/dossier-management-detail-container.component.mjs +30 -13
  2. package/esm2020/lib/dossier-management-detail-container/tabs/dossier-management-list-columns/dossier-management-list-columns.component.mjs +124 -0
  3. package/esm2020/lib/dossier-management-upload/dossier-management-upload.component.mjs +3 -3
  4. package/esm2020/lib/dossier-management.module.mjs +5 -2
  5. package/esm2020/lib/tab.enum.mjs +7 -0
  6. package/esm2020/lib/tab.service.mjs +39 -0
  7. package/fesm2015/valtimo-dossier-management.mjs +175 -11
  8. package/fesm2015/valtimo-dossier-management.mjs.map +1 -1
  9. package/fesm2020/valtimo-dossier-management.mjs +184 -11
  10. package/fesm2020/valtimo-dossier-management.mjs.map +1 -1
  11. package/lib/dossier-management-detail-container/dossier-management-detail-container.component.d.ts +18 -6
  12. package/lib/dossier-management-detail-container/dossier-management-detail-container.component.d.ts.map +1 -1
  13. package/lib/dossier-management-detail-container/tabs/dossier-management-list-columns/dossier-management-list-columns.component.d.ts +20 -0
  14. package/lib/dossier-management-detail-container/tabs/dossier-management-list-columns/dossier-management-list-columns.component.d.ts.map +1 -0
  15. package/lib/dossier-management.module.d.ts +10 -9
  16. package/lib/dossier-management.module.d.ts.map +1 -1
  17. package/lib/tab.enum.d.ts +6 -0
  18. package/lib/tab.enum.d.ts.map +1 -0
  19. package/lib/tab.service.d.ts +11 -0
  20. package/lib/tab.service.d.ts.map +1 -0
  21. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"valtimo-dossier-management.mjs","sources":["../../../../projects/valtimo/dossier-management/src/lib/dossier-management-connect-modal/dossier-management-connect-modal.component.ts","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-connect-modal/dossier-management-connect-modal.component.html","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-remove-modal/dossier-management-remove-modal.component.ts","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-remove-modal/dossier-management-remove-modal.component.html","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-roles/dossier-management-roles.component.ts","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-roles/dossier-management-roles.component.html","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-link-process/dossier-management-link-process.component.ts","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-link-process/dossier-management-link-process.component.html","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-assignee/dossier-management-assignee.component.ts","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-assignee/dossier-management-assignee.component.html","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-detail-container/tabs/dossier-management-detail/dossier-management-detail.component.ts","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-detail-container/tabs/dossier-management-detail/dossier-management-detail.component.html","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-upload/dossier-management-upload.component.ts","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-upload/dossier-management-upload.component.html","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-list/dossier-management-list.component.ts","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-list/dossier-management-list.component.html","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-detail-container/tabs/dossier-management-search-fields/dossier-management-search-fields.component.ts","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-detail-container/tabs/dossier-management-search-fields/dossier-management-search-fields.component.html","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-detail-container/dossier-management-detail-container.component.ts","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-detail-container/dossier-management-detail-container.component.html","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-routing.module.ts","../../../../projects/valtimo/dossier-management/src/lib/dossier-management.module.ts","../../../../projects/valtimo/dossier-management/src/public-api.ts","../../../../projects/valtimo/dossier-management/src/valtimo-dossier-management.ts"],"sourcesContent":["/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, OnInit, Output, ViewChild} from '@angular/core';\nimport {\n DocumentService,\n ProcessDocumentDefinitionRequest,\n ProcessDocumentDefinition,\n DocumentDefinition,\n} from '@valtimo/document';\nimport {ProcessService, ProcessDefinition} from '@valtimo/process';\nimport {ToastrService} from 'ngx-toastr';\nimport {ModalComponent} from '@valtimo/components';\n\n@Component({\n selector: 'valtimo-dossier-management-connect-modal',\n templateUrl: './dossier-management-connect-modal.component.html',\n styleUrls: ['./dossier-management-connect-modal.component.scss'],\n})\nexport class DossierManagementConnectModalComponent implements OnInit {\n public documentDefinition: DocumentDefinition | null = null;\n public processDefinitions: ProcessDefinition[];\n public newDocumentProcessDefinition: ProcessDefinition | null = null;\n public newDocumentProcessDefinitionInit = true;\n public newDocumentProcessDefinitionStartableByUser = false;\n public processDocumentDefinitionExists: any = {};\n @Output() public reloadProcessDocumentDefinitions = new EventEmitter<any>();\n @ViewChild('dossierConnectModal') modal: ModalComponent;\n\n constructor(\n private processService: ProcessService,\n private documentService: DocumentService,\n private toasterService: ToastrService\n ) {}\n\n loadProcessDocumentDefinitions() {\n this.processDocumentDefinitionExists = {};\n this.documentService\n .findProcessDocumentDefinitions(this.documentDefinition.id.name)\n .subscribe((processDocumentDefinitions: ProcessDocumentDefinition[]) => {\n processDocumentDefinitions.forEach(\n (processDocumentDefinition: ProcessDocumentDefinition) => {\n this.processDocumentDefinitionExists[\n processDocumentDefinition.id.processDefinitionKey\n ] = true;\n }\n );\n });\n }\n\n loadProcessDefinitions() {\n this.processService\n .getProcessDefinitions()\n .subscribe((processDefinitions: ProcessDefinition[]) => {\n this.processDefinitions = processDefinitions;\n });\n }\n\n ngOnInit() {\n this.loadProcessDefinitions();\n }\n\n openModal(dossier: DocumentDefinition) {\n this.documentDefinition = dossier;\n this.newDocumentProcessDefinition = null;\n this.newDocumentProcessDefinitionInit = true;\n this.newDocumentProcessDefinitionStartableByUser = false;\n this.loadProcessDocumentDefinitions();\n this.modal.show();\n }\n\n submit() {\n const request: ProcessDocumentDefinitionRequest = {\n canInitializeDocument: this.newDocumentProcessDefinitionInit,\n startableByUser: this.newDocumentProcessDefinitionStartableByUser,\n documentDefinitionName: this.documentDefinition.id.name,\n processDefinitionKey: this.newDocumentProcessDefinition.key,\n };\n this.documentService.createProcessDocumentDefinition(request).subscribe(\n () => {\n this.toasterService.success('Successfully added new process document definition');\n this.reloadProcessDocumentDefinitions.emit();\n },\n err => {\n this.toasterService.error('Failed to add new process document definition');\n }\n );\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-modal\n #dossierConnectModal\n elementId=\"dossierConnectModal\"\n [title]=\"documentDefinition ? documentDefinition.schema.title : 'Document definition'\"\n subtitle=\"Connect document definition to process definition\"\n showFooter=\"true\"\n>\n <div body *ngIf=\"documentDefinition\">\n <p>\n {{ 'Select process definition for document definition' | translate }}\n <strong>{{ documentDefinition.id.name }} *</strong>\n </p>\n <div class=\"input-group mb-3 align-items-center\">\n <select class=\"form-control\" [(ngModel)]=\"newDocumentProcessDefinition\">\n <option [ngValue]=\"null\">{{ 'dossierManagement.selectProcessDef' | translate }}</option>\n <option\n *ngFor=\"let processDefinition of processDefinitions\"\n [disabled]=\"processDocumentDefinitionExists[processDefinition.key]\"\n [ngValue]=\"processDefinition\"\n >\n {{ processDefinition.name }} ({{ processDefinition.key }})\n </option>\n </select>\n </div>\n <p>\n {{ 'Select options for the selected process' | translate }}\n </p>\n <div class=\"input-group mb-3 align-items-center\">\n <label\n class=\"custom-control custom-checkbox custom-control-inline pl-6 mb-0\"\n placement=\"bottom\"\n ngbTooltip=\"{{ 'processCaseConnection.processCreatesCaseTooltip' | translate }}\"\n >\n <input\n class=\"custom-control-input\"\n type=\"checkbox\"\n [(ngModel)]=\"newDocumentProcessDefinitionInit\"\n /><span class=\"custom-control-label custom-control-color\">{{\n 'processCaseConnection.processCreatesCase' | translate\n }}</span>\n </label>\n <label\n class=\"custom-control custom-checkbox custom-control-inline ml-2 pl-6 mb-0\"\n placement=\"bottom\"\n ngbTooltip=\"{{ 'processCaseConnection.startableWithinCaseTooltip' | translate }}\"\n >\n <input\n class=\"custom-control-input\"\n type=\"checkbox\"\n [(ngModel)]=\"newDocumentProcessDefinitionStartableByUser\"\n /><span class=\"custom-control-label custom-control-color\">{{\n 'processCaseConnection.startableWithinCase' | translate\n }}</span>\n </label>\n </div>\n </div>\n <div footer>\n <button\n (click)=\"submit()\"\n class=\"btn btn-primary\"\n data-dismiss=\"modal\"\n [disabled]=\"!newDocumentProcessDefinition\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n</valtimo-modal>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, ViewChild} from '@angular/core';\nimport {\n DocumentService,\n DocumentDefinition,\n UndeployDocumentDefinitionResult,\n} from '@valtimo/document';\nimport {MenuService, ModalComponent} from '@valtimo/components';\nimport {ToastrService} from 'ngx-toastr';\nimport {Router} from '@angular/router';\nimport {TranslateService} from '@ngx-translate/core';\n\n@Component({\n selector: 'valtimo-dossier-management-remove-modal',\n templateUrl: './dossier-management-remove-modal.component.html',\n styleUrls: ['./dossier-management-remove-modal.component.scss'],\n})\nexport class DossierManagementRemoveModalComponent {\n public documentDefinition: DocumentDefinition | null = null;\n public errors: string[] = [];\n @ViewChild('documentDefinitionRemoveModal') modal: ModalComponent;\n\n constructor(\n private documentService: DocumentService,\n private toasterService: ToastrService,\n private router: Router,\n private translateService: TranslateService,\n private menuService: MenuService\n ) {}\n\n openModal(documentDefinition: DocumentDefinition) {\n this.documentDefinition = documentDefinition;\n this.modal.show();\n }\n\n removeDocumentDefinition() {\n this.documentService.removeDocumentDefinition(this.documentDefinition.id.name).subscribe(\n () => {\n this.menuService.reload();\n this.router.navigate(['/dossier-management']);\n this.toasterService.success(\n this.translateService.instant('remove-document-definition-success')\n );\n },\n (result: UndeployDocumentDefinitionResult) => {\n this.errors = result.errors;\n }\n );\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-modal\n #documentDefinitionRemoveModal\n elementId=\"documentDefinitionRemoveModal\"\n [title]=\"documentDefinition ? documentDefinition.schema.title : 'Document definition'\"\n subtitle=\"{{ 'Remove document definition' | translate }}\"\n showFooter=\"true\"\n>\n <div body *ngIf=\"documentDefinition\">\n <div class=\"alert alert-contrast alert-danger mt-2\" role=\"alert\">\n <div class=\"icon\"><span class=\"mdi mdi-alert-triangle\"></span></div>\n <div\n class=\"message\"\n [innerHTML]=\"'remove-document-definition-confirmation' | translate\"\n ></div>\n </div>\n <div *ngIf=\"errors.length > 0\" class=\"alert alert-danger pt-5 pb-5 mb-2\">\n <ol>\n <li *ngFor=\"let error of errors\">\n {{ error }}\n </li>\n </ol>\n </div>\n </div>\n <div footer>\n <button (click)=\"removeDocumentDefinition()\" class=\"btn btn-primary\" data-dismiss=\"modal\">\n {{ 'remove-document-definition-confirmation-button' | translate }}\n </button>\n </div>\n</valtimo-modal>\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component, Input, OnInit} from '@angular/core';\nimport {IDropdownSettings} from 'ng-multiselect-dropdown';\nimport {BehaviorSubject} from 'rxjs';\nimport {Authority, AuthorityService} from '@valtimo/authority';\nimport {DocumentService} from '@valtimo/document';\nimport {AlertService} from '@valtimo/components';\nimport {TranslateService} from '@ngx-translate/core';\nimport {isEqual} from 'lodash';\n\n@Component({\n selector: 'valtimo-dossier-management-roles',\n templateUrl: './dossier-management-roles.component.html',\n styleUrls: ['./dossier-management-roles.component.scss'],\n})\nexport class DossierManagementRolesComponent implements OnInit {\n @Input() public documentDefinitionName: string;\n public dropdownSettings: IDropdownSettings = {\n singleSelection: false,\n idField: 'name',\n textField: 'name',\n selectAllText: 'Select All',\n unSelectAllText: 'UnSelect All',\n itemsShowLimit: 3,\n enableCheckAll: true,\n allowSearchFilter: true,\n };\n public roles = new BehaviorSubject<Array<Authority>>(undefined);\n public preSelectedItems = new BehaviorSubject<Array<string>>(undefined);\n\n constructor(\n private readonly authorityService: AuthorityService,\n private readonly documentService: DocumentService,\n private readonly alertService: AlertService,\n private readonly translateService: TranslateService\n ) {}\n\n ngOnInit(): void {\n this.loadAllRoles();\n }\n\n loadAllRoles(): void {\n this.authorityService.query().subscribe(result => {\n this.roles.next(result.body);\n this.loadDocumentRoles();\n });\n }\n\n loadDocumentRoles(): void {\n if (this.documentDefinitionName) {\n this.documentService.getDocumentRoles(this.documentDefinitionName).subscribe(\n result => {\n this.preSelectedItems.next(result);\n },\n err => {\n this.alertService.warning(\n this.translateService.instant(\n 'dossierManagement.roles.messages.unsuccessfullyRetrievedRoles'\n )\n );\n }\n );\n }\n }\n\n onSelectedItems(data: any): void {\n const roles = this.returnArrayOfString(data);\n\n if (isEqual(roles, this.preSelectedItems.value)) {\n return;\n }\n this.documentService.modifyDocumentRoles(this.documentDefinitionName, roles).subscribe(\n () => {\n this.alertService.success(\n this.translateService.instant('dossierManagement.roles.messages.successfullyStored')\n );\n this.preSelectedItems.next(roles);\n },\n err => {\n this.alertService.error(\n this.translateService.instant('dossierManagement.roles.messages.unsuccessfullyStored')\n );\n }\n );\n }\n\n /**\n * The data could be either an array of string (i.e. [\"ROLE_ADMIN\", \"ROLE_DEVELOPER\"]\n * or an array of object with name parameters (i.e. [{\"name\": \"ROLE_ADMIN\"},{\"name\":\"ROLE_DEVELOPER}]\n *\n * This method will always make sure an array of strings is returned\n */\n private returnArrayOfString(data): Array<string> {\n return data.map(el => {\n if (typeof el === 'string') {\n return el;\n }\n\n return el.name;\n });\n }\n}\n","<!--\n ~ Copyright 2015-2022 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<!--<h2 class=\"mb-4 mt-6\">{{ 'connectorManagement.extension.title' | translate }}</h2>-->\n<h2 class=\"mb-4 mt-6\">{{ 'dossierManagement.roles.rolesTitle' | translate }}</h2>\n<p class=\"card-text\">{{ 'dossierManagement.roles.rolesDescription' | translate }}</p>\n\n<valtimo-multiselect-dropdown\n [items]=\"roles | async\"\n [selectedItems]=\"preSelectedItems | async\"\n [dropdownSettings]=\"dropdownSettings\"\n [placeHolder]=\"'dossierManagement.roles.rolesPlaceHolder' | translate\"\n (itemsSelected)=\"onSelectedItems($event)\"\n></valtimo-multiselect-dropdown>\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component, OnInit} from '@angular/core';\nimport {ConfigService, UploadProvider, ValtimoConfig} from '@valtimo/config';\nimport {BehaviorSubject, map, Observable} from 'rxjs';\nimport {SelectItem} from '@valtimo/user-interface';\nimport {ProcessService} from '@valtimo/process';\nimport {ActivatedRoute} from '@angular/router';\nimport {DocumentService} from '@valtimo/document';\n\n@Component({\n selector: 'valtimo-dossier-management-link-process',\n templateUrl: './dossier-management-link-process.component.html',\n styleUrls: ['./dossier-management-link-process.component.scss'],\n})\nexport class DossierManagementLinkProcessComponent implements OnInit {\n documentenApiUploadProvider!: boolean;\n documentDefinitionName: string | null = null;\n\n readonly selectionId$ = new BehaviorSubject<string>('');\n readonly processItems$: Observable<Array<SelectItem>> = this.processService\n .getProcessDefinitions()\n .pipe(map(processes => processes.map(process => ({text: process.name, id: process.key}))));\n\n readonly disabled$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private readonly configService: ConfigService,\n private readonly processService: ProcessService,\n private readonly route: ActivatedRoute,\n private readonly documentService: DocumentService\n ) {\n this.setDocumentenApiUploaderProvider(configService.config);\n this.documentDefinitionName = this.route.snapshot.paramMap.get('name');\n }\n\n ngOnInit(): void {\n if (this.documentenApiUploadProvider) {\n this.getDefaultSelection();\n }\n }\n\n selectProcess(processDefinitionKey: string): void {\n this.disabled$.next(true);\n const currentSelectionId = this.selectionId$.getValue();\n if (processDefinitionKey && processDefinitionKey !== currentSelectionId) {\n this.disabled$.next(true);\n this.documentService\n .updateLinkedUploadProcess(this.documentDefinitionName, processDefinitionKey)\n .subscribe(processLink => {\n this.selectionId$.next(processLink.processDefinitionKey);\n this.disabled$.next(false);\n });\n } else if (!processDefinitionKey) {\n this.documentService.deleteLinkedUploadProcess(this.documentDefinitionName).subscribe(() => {\n this.disabled$.next(false);\n });\n }\n }\n\n private setDocumentenApiUploaderProvider(config: ValtimoConfig): void {\n this.documentenApiUploadProvider = config.uploadProvider === UploadProvider.DOCUMENTEN_API;\n }\n\n private getDefaultSelection(): void {\n this.documentService\n .getLinkedUploadProcess(this.documentDefinitionName)\n .subscribe(linkedUploadProcess => {\n if (linkedUploadProcess) {\n this.selectionId$.next(linkedUploadProcess.processDefinitionKey);\n }\n });\n }\n}\n","<!--\n ~ Copyright 2015-2022 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"documentenApiUploadProvider\">\n <h2 class=\"mb-4 mt-6\">{{ 'dossierManagement.linkProcess.title' | translate }}</h2>\n <v-paragraph [margin]=\"true\">{{\n 'dossierManagement.linkProcess.description' | translate\n }}</v-paragraph>\n <ng-container\n *ngIf=\"{\n processItems: processItems$ | async,\n disabled: disabled$ | async,\n defaultSelectionId: selectionId$ | async\n } as obs\"\n >\n <v-select\n (selectedChange)=\"selectProcess($event)\"\n [defaultSelectionId]=\"obs.defaultSelectionId\"\n [disabled]=\"obs.disabled\"\n [items]=\"obs.processItems\"\n [loading]=\"!obs.processItems\"\n [margin]=\"true\"\n [required]=\"false\"\n ></v-select>\n </ng-container>\n</ng-container>\n","import {Component} from '@angular/core';\nimport {DocumentService, CaseSettings} from '@valtimo/document';\nimport {BehaviorSubject, map, Observable, switchMap} from 'rxjs';\nimport {ActivatedRoute} from '@angular/router';\nimport {tap} from 'rxjs/operators';\n\n@Component({\n selector: 'valtimo-dossier-management-assignee',\n templateUrl: './dossier-management-assignee.component.html',\n styleUrls: ['./dossier-management-assignee.component.css'],\n})\nexport class DossierManagementAssigneeComponent {\n readonly disabled$ = new BehaviorSubject<boolean>(false);\n\n private readonly _refresh$ = new BehaviorSubject<null>(null);\n\n readonly loading$ = new BehaviorSubject<boolean>(true);\n\n readonly documentDefinitionName$: Observable<string> = this.route.params.pipe(\n map(params => params.name || '')\n );\n\n readonly currentValue$: Observable<CaseSettings> = this._refresh$.pipe(\n switchMap(() => this.documentDefinitionName$),\n switchMap(documentDefinitionName =>\n this.documentService.getCaseSettings(documentDefinitionName)\n ),\n tap(() => this.loading$.next(false))\n );\n\n constructor(private readonly documentService: DocumentService, private route: ActivatedRoute) {\n this.disabled$ = new BehaviorSubject<boolean>(false);\n }\n\n toggleAssignee(currentValue: boolean, documentDefinitionName: string): void {\n this.disableInput();\n\n this.documentService\n .patchCaseSettings(documentDefinitionName, {\n canHaveAssignee: currentValue,\n })\n .subscribe(\n () => {\n this.enableInput();\n this.refreshAssignee();\n },\n () => {\n this.enableInput();\n }\n );\n }\n\n disableInput(): void {\n this.disabled$.next(true);\n }\n\n enableInput(): void {\n this.disabled$.next(false);\n }\n\n private refreshAssignee(): void {\n this._refresh$.next(null);\n }\n}\n","<h2 class=\"mb-4 mt-6\">{{ 'dossierManagement.handleAssignee.title' | translate }}</h2>\n\n<ng-container\n *ngIf=\"{\n currentValue: currentValue$ | async,\n documentDefinitionName: documentDefinitionName$ | async,\n loading: loading$ | async,\n disabled: disabled$ | async\n } as obs\"\n>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <label\n class=\"custom-control custom-checkbox custom-control-inline pl-6 mr-5\"\n placement=\"bottom\"\n >\n <input\n [checked]=\"obs.currentValue.canHaveAssignee\"\n class=\"custom-control-input\"\n type=\"checkbox\"\n [disabled]=\"obs.disabled\"\n (click)=\"toggleAssignee(!obs.currentValue.canHaveAssignee, obs.documentDefinitionName)\"\n /><span class=\"custom-control-label custom-control-color\">{{\n 'dossierManagement.handleAssignee.checkboxDescription' | translate\n }}</span>\n </label>\n </ng-container>\n</ng-container>\n\n<ng-template #loading>\n <valtimo-spinner></valtimo-spinner>\n</ng-template>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnInit, ViewChild} from '@angular/core';\nimport {DocumentDefinition, DocumentService, ProcessDocumentDefinition} from '@valtimo/document';\nimport {ActivatedRoute} from '@angular/router';\nimport {DossierManagementConnectModalComponent} from '../../../dossier-management-connect-modal/dossier-management-connect-modal.component';\nimport {AlertService} from '@valtimo/components';\nimport {DossierManagementRemoveModalComponent} from '../../../dossier-management-remove-modal/dossier-management-remove-modal.component';\nimport {DossierManagementRolesComponent} from '../../../dossier-management-roles/dossier-management-roles.component';\n\n@Component({\n selector: 'valtimo-dossier-management-detail',\n templateUrl: './dossier-management-detail.component.html',\n styleUrls: ['./dossier-management-detail.component.scss'],\n})\nexport class DossierManagementDetailComponent implements OnInit {\n public documentDefinitionName: string | null = null;\n public documentDefinition: DocumentDefinition | null = null;\n public processDocumentDefinitions: ProcessDocumentDefinition[] = [];\n\n @ViewChild('dossierConnectModal')\n dossierConnectModal: DossierManagementConnectModalComponent;\n @ViewChild('dossierRemoveModal')\n dossierRemoveModal: DossierManagementRemoveModalComponent;\n @ViewChild('documentRoles') documentRoles: DossierManagementRolesComponent;\n\n constructor(\n private documentService: DocumentService,\n private route: ActivatedRoute,\n private alertService: AlertService\n ) {\n this.documentDefinitionName = this.route.snapshot.paramMap.get('name');\n }\n\n ngOnInit() {\n this.loadDocumentDefinition();\n this.loadProcessDocumentDefinitions();\n }\n\n loadProcessDocumentDefinitions() {\n this.documentService\n .findProcessDocumentDefinitions(this.documentDefinitionName)\n .subscribe((processDocumentDefinitions: ProcessDocumentDefinition[]) => {\n this.processDocumentDefinitions = processDocumentDefinitions;\n });\n }\n\n loadDocumentDefinition() {\n this.documentService\n .getDocumentDefinition(this.documentDefinitionName)\n .subscribe((documentDefinition: DocumentDefinition) => {\n this.documentDefinition = documentDefinition;\n });\n }\n\n openDossierConnectModal() {\n this.dossierConnectModal.openModal(this.documentDefinition);\n }\n\n openDossierRemoveModal() {\n this.dossierRemoveModal.openModal(this.documentDefinition);\n }\n\n deleteProcessDocumentDefinition(processDocumentDefinition: ProcessDocumentDefinition) {\n this.documentService\n .deleteProcessDocumentDefinition({\n documentDefinitionName: processDocumentDefinition.id.documentDefinitionId.name,\n processDefinitionKey: processDocumentDefinition.id.processDefinitionKey,\n canInitializeDocument: processDocumentDefinition.canInitializeDocument,\n startableByUser: processDocumentDefinition.startableByUser,\n })\n .subscribe(\n () => {\n this.alertService.success('Successfully deleted process document definition');\n this.loadProcessDocumentDefinitions();\n },\n () => {\n this.alertService.error('Failed to delete process document definition');\n }\n );\n }\n\n downloadDefinition(): void {\n const definition = this.documentDefinition;\n const dataString =\n 'data:text/json;charset=utf-8,' +\n encodeURIComponent(JSON.stringify(definition.schema, null, 2));\n const downloadAnchorElement = document.getElementById('downloadAnchorElement');\n downloadAnchorElement.setAttribute('href', dataString);\n downloadAnchorElement.setAttribute(\n 'download',\n `${definition.id.name}-v${definition.id.version}.json`\n );\n downloadAnchorElement.click();\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div id=\"management-datail-content\" class=\"pt-0\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n <div class=\"clearfix\"></div>\n <ng-container *ngTemplateOutlet=\"widget\"></ng-container>\n</div>\n\n<ng-template #widget>\n <valtimo-widget *ngIf=\"documentDefinition\">\n <div class=\"row bg-white mt-5 mb-2 pl-2 pr-2\">\n <div class=\"col-5\">\n <h2>{{ 'document definition' | translate }}</h2>\n </div>\n <div class=\"col-5 offset-2\">\n <h2>{{ 'dossierManagement.connectedProcesses' | translate }}</h2>\n </div>\n </div>\n <div class=\"row bg-white mb-5 pb-4 pl-2 pr-2\">\n <div class=\"col-5 bg-red\">\n <textarea class=\"w-100 dossier-schema\" disabled rows=\"25\"\n >{{ documentDefinition | json }}\n </textarea\n >\n </div>\n <div class=\"col-5 offset-2 bg-blue\">\n <div\n *ngFor=\"let processDocumentDefinition of processDocumentDefinitions\"\n class=\"input-group mb-5\"\n >\n <div class=\"input-group-prepend w-75\">\n <button\n (click)=\"deleteProcessDocumentDefinition(processDocumentDefinition)\"\n class=\"btn btn-danger\"\n data-placement=\"left\"\n data-toggle=\"tooltip\"\n title=\"Delete this connected process\"\n >\n <i class=\"icon mdi mdi-delete mr-1\"></i>\n </button>\n <input\n [value]=\"\n processDocumentDefinition.processName\n ? processDocumentDefinition.processName\n : '' + ' (' + processDocumentDefinition.id.processDefinitionKey + ')'\n \"\n class=\"form-control\"\n disabled\n type=\"text\"\n />\n </div>\n <div class=\"row mb-2 mt-2\">\n <label\n class=\"custom-control custom-checkbox custom-control-inline pl-6 mr-5\"\n ngbTooltip=\"{{ 'processCaseConnection.processCreatesCaseTooltip' | translate }}\"\n placement=\"bottom\"\n >\n <input\n [checked]=\"processDocumentDefinition.canInitializeDocument\"\n class=\"custom-control-input\"\n disabled\n type=\"checkbox\"\n /><span class=\"custom-control-label custom-control-color\">{{\n 'processCaseConnection.processCreatesCase' | translate\n }}</span>\n </label>\n <label\n class=\"custom-control custom-checkbox custom-control-inline pl-6\"\n ngbTooltip=\"{{ 'processCaseConnection.startableWithinCaseTooltip' | translate }}\"\n placement=\"bottom\"\n >\n <input\n [checked]=\"processDocumentDefinition.startableByUser\"\n class=\"custom-control-input\"\n disabled\n type=\"checkbox\"\n /><span class=\"custom-control-label custom-control-color\">{{\n 'processCaseConnection.startableWithinCase' | translate\n }}</span>\n </label>\n </div>\n </div>\n <div class=\"text-right mt-5 mb-5\">\n <button (click)=\"openDossierConnectModal()\" class=\"btn btn-primary\">\n <i class=\"icon mdi mdi-plus mr-1\"></i\n >{{ 'dossierManagement.connectProcess' | translate }}\n </button>\n </div>\n <valtimo-dossier-management-roles [documentDefinitionName]=\"documentDefinitionName\">\n </valtimo-dossier-management-roles>\n <valtimo-dossier-management-link-process></valtimo-dossier-management-link-process\n ><valtimo-extension\n module=\"dossier-management\"\n page=\"dossier\"\n section=\"right-panel\"\n ></valtimo-extension>\n <valtimo-dossier-management-assignee></valtimo-dossier-management-assignee>\n </div>\n </div>\n </valtimo-widget>\n</ng-template>\n\n<ng-template #buttons>\n <div *ngIf=\"documentDefinition\" class=\"btn-group mt-m3px mb-3 pr-2 float-right\">\n <button (click)=\"downloadDefinition()\" class=\"btn btn-primary btn-space\">\n <i class=\"icon mdi mdi-download mr-1\"></i>\n {{ 'Download document definition' | translate }}\n </button>\n <a id=\"downloadAnchorElement\" style=\"display: none\"></a>\n <button\n (click)=\"openDossierRemoveModal()\"\n *ngIf=\"!this.documentDefinition.readOnly\"\n class=\"btn btn-secondary btn-space mr-0\"\n >\n <i class=\"icon mdi mdi-delete mr-1\"></i>\n {{ 'Remove document definition' | translate }}\n </button>\n </div>\n</ng-template>\n\n<valtimo-dossier-management-connect-modal\n #dossierConnectModal\n (reloadProcessDocumentDefinitions)=\"loadProcessDocumentDefinitions()\"\n></valtimo-dossier-management-connect-modal>\n<valtimo-dossier-management-remove-modal\n #dossierRemoveModal\n></valtimo-dossier-management-remove-modal>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AfterViewInit,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\nimport {MenuService, ModalComponent} from '@valtimo/components';\nimport {DocumentService, DocumentDefinitionCreateRequest} from '@valtimo/document';\nimport {BehaviorSubject, Observable, Subject, Subscription} from 'rxjs';\nimport {switchMap, take, tap} from 'rxjs/operators';\n\n@Component({\n selector: 'valtimo-dossier-management-upload',\n templateUrl: './dossier-management-upload.component.html',\n styleUrls: ['./dossier-management-upload.component.scss'],\n})\nexport class DossierManagementUploadComponent implements AfterViewInit, OnDestroy {\n @Input() show$: Observable<boolean>;\n @Output() definitionUploaded: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('uploadDefinitionModal') modal: ModalComponent;\n\n readonly clear$ = new Subject();\n\n readonly jsonString$ = new BehaviorSubject<string>('');\n\n readonly error$ = new BehaviorSubject<string>('');\n\n readonly disabled$ = new BehaviorSubject<boolean>(false);\n\n private showSubscription: Subscription;\n\n private fileSubscription: Subscription;\n\n private errorSubscription: Subscription;\n\n private readonly file$ = new BehaviorSubject<File>(undefined);\n\n constructor(\n private readonly documentService: DocumentService,\n private readonly translateService: TranslateService,\n private readonly menuService: MenuService\n ) {}\n\n ngAfterViewInit(): void {\n this.openShowSubscription();\n this.openFileSubscription();\n }\n\n ngOnDestroy(): void {\n this.showSubscription.unsubscribe();\n this.fileSubscription.unsubscribe();\n this.closeErrorSubscription();\n }\n\n setFile(file: File): void {\n this.clearError();\n this.file$.next(file);\n }\n\n uploadDefinition(): void {\n this.disable();\n\n this.jsonString$\n .pipe(\n switchMap(jsonString =>\n this.documentService\n .createDocumentDefinition(new DocumentDefinitionCreateRequest(jsonString))\n .pipe(\n tap(\n // success\n () => {\n this.closeErrorSubscription();\n this.clearError();\n this.enable();\n this.hideModal();\n this.menuService.reload();\n this.definitionUploaded.emit();\n },\n // error\n () => {\n this.openErrorSubscription('dropzone.error.invalidDocDef');\n this.enable();\n }\n )\n )\n ),\n take(1)\n )\n .subscribe();\n }\n\n private openErrorSubscription(errorCode: string): void {\n this.closeErrorSubscription();\n this.errorSubscription = this.translateService.stream(errorCode).subscribe(error => {\n this.error$.next(error);\n });\n }\n\n private closeErrorSubscription(): void {\n if (this.errorSubscription) {\n this.errorSubscription.unsubscribe();\n }\n }\n\n private clearError(): void {\n this.error$.next('');\n }\n\n private openFileSubscription(): void {\n this.fileSubscription = this.file$.subscribe(file => {\n if (file) {\n const reader = new FileReader();\n\n reader.onloadend = () => {\n const result = reader.result.toString();\n if (this.stringIsValidJson(result)) {\n this.jsonString$.next(result);\n } else {\n this.clearJsonString();\n this.error$.next(this.translateService.instant('dropzone.error.invalidJson'));\n }\n };\n\n reader.readAsText(file);\n } else {\n this.clearJsonString();\n }\n });\n }\n\n private openShowSubscription(): void {\n this.showSubscription = this.show$.subscribe(show => {\n if (show) {\n this.showModal();\n } else {\n this.hideModal();\n }\n\n this.clearJsonString();\n this.clearError();\n this.clearDropzone();\n });\n }\n\n private clearJsonString(): void {\n this.jsonString$.next('');\n }\n\n private clearDropzone(): void {\n this.clear$.next(null);\n }\n\n private showModal(): void {\n this.modal.show();\n }\n\n private hideModal(): void {\n this.modal.hide();\n }\n\n private stringIsValidJson(string: string) {\n try {\n JSON.parse(string);\n } catch (e) {\n return false;\n }\n return true;\n }\n\n private disable(): void {\n this.disabled$.next(true);\n }\n\n private enable(): void {\n this.disabled$.next(false);\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-modal\n #uploadDefinitionModal\n [title]=\"'Upload document definition' | translate\"\n showFooter=\"true\"\n>\n <div class=\"mt-2\" body>\n <valtimo-dropzone\n [clear$]=\"clear$\"\n (fileSelected)=\"setFile($event)\"\n [disabled]=\"disabled$ | async\"\n [subtitle]=\"'dropzone.jsonDocDef' | translate\"\n [externalError$]=\"error$\"\n [maxFiles]=\"1\"\n ></valtimo-dropzone>\n </div>\n <div footer>\n <ng-container *ngIf=\"(jsonString$ | async) && (error$ | async) === ''; else disabledUpload\">\n <button [disabled]=\"disabled$ | async\" class=\"btn btn-primary\" (click)=\"uploadDefinition()\">\n <i class=\"icon mdi mdi-upload mr-1\"></i>\n {{ 'Upload' | translate }}\n </button>\n </ng-container>\n </div>\n</valtimo-modal>\n\n<ng-template #disabledUpload>\n <button [disabled]=\"true\" class=\"btn btn-primary\" >\n <i class=\"icon mdi mdi-upload mr-1\"></i>\n {{ 'Upload' | translate }}\n </button>\n</ng-template>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component} from '@angular/core';\nimport {DocumentService, DocumentDefinition, Page} from '@valtimo/document';\nimport {Router} from '@angular/router';\nimport moment from 'moment';\nimport {BehaviorSubject} from 'rxjs';\n\nmoment.locale(localStorage.getItem('langKey') || '');\n\n@Component({\n selector: 'valtimo-dossier-management-list',\n templateUrl: './dossier-management-list.component.html',\n styleUrls: ['./dossier-management-list.component.scss'],\n})\nexport class DossierManagementListComponent {\n public dossiers: DocumentDefinition[] = [];\n public pagination = {\n collectionSize: 0,\n page: 1,\n size: 10,\n maxPaginationItemSize: 5,\n };\n public pageParam = 0;\n public dossierFields = [\n {key: 'schema.title', label: 'Title'},\n {key: 'createdOn', label: 'Created On'},\n {key: 'readOnly', label: 'Read-only'},\n ];\n\n readonly showModal$ = new BehaviorSubject<boolean>(false);\n\n constructor(private documentService: DocumentService, private router: Router) {}\n\n public paginationClicked(page) {\n this.pageParam = page - 1;\n this.getDocumentDefinitions();\n }\n\n paginationSet() {\n this.getDocumentDefinitions();\n }\n\n redirectToDetails(documentDefinition: DocumentDefinition) {\n this.router.navigate(['/dossier-management/dossier', documentDefinition.id.name]);\n }\n\n private getDocumentDefinitions() {\n this.documentService\n .queryDefinitions({filteredOnRole: false, page: this.pageParam, size: this.pagination.size})\n .subscribe((documentDefinitionPage: Page<DocumentDefinition>) => {\n this.pagination.collectionSize = documentDefinitionPage.totalElements;\n this.dossiers = documentDefinitionPage.content;\n this.dossiers.map((dossier: DocumentDefinition) => {\n dossier.createdOn = moment(dossier.createdOn).format('DD MMM YYYY HH:mm');\n });\n });\n }\n\n showModal() {\n this.showModal$.next(true);\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"btn-group mt-m3px mb-3 float-right\">\n <button class=\"btn btn-secondary btn-space mr-0\" (click)=\"showModal()\">\n <i class=\"icon mdi mdi-upload mr-1\"></i>\n {{ 'Upload document definition' | translate }}\n </button>\n </div>\n <div class=\"clearfix\"></div>\n <valtimo-widget>\n <valtimo-list\n [items]=\"dossiers\"\n [fields]=\"dossierFields\"\n [header]=\"true\"\n [viewMode]=\"true\"\n [isSearchable]=\"true\"\n [pagination]=\"pagination\"\n paginationIdentifier=\"dossierManagementList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet()\"\n (rowClicked)=\"redirectToDetails($event)\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ 'Dossiers' | translate }}</h3>\n <h5 class=\"list-header-description\">{{ 'Overview of all Dossiers' | translate }}</h5>\n </div>\n </valtimo-list>\n </valtimo-widget>\n </div>\n</div>\n\n<valtimo-dossier-management-upload\n [show$]=\"showModal$\"\n (definitionUploaded)=\"paginationSet()\"\n></valtimo-dossier-management-upload>\n","/*\n * Copyright 2015-2022 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 {\n AfterViewInit,\n Component,\n EventEmitter,\n OnDestroy,\n OnInit,\n Output,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {DocumentService} from '@valtimo/document';\nimport {\n BehaviorSubject,\n combineLatest,\n filter,\n map,\n Observable,\n Subscription,\n switchMap,\n take,\n tap,\n} from 'rxjs';\nimport {ActivatedRoute} from '@angular/router';\nimport {ListField, ModalComponent} from '@valtimo/components';\nimport {TranslateService} from '@ngx-translate/core';\nimport {\n DefinitionColumn,\n SearchField,\n SearchFieldDataType,\n SearchFieldFieldType,\n SearchFieldMatchType,\n} from '@valtimo/config';\nimport {DomSanitizer, SafeUrl} from '@angular/platform-browser';\nimport {SelectItem} from '@valtimo/user-interface';\n\n@Component({\n selector: 'valtimo-dossier-management-search-fields',\n templateUrl: './dossier-management-search-fields.component.html',\n styleUrls: ['./dossier-management-search-fields.component.scss'],\n})\nexport class DossierManagementSearchFieldsComponent implements OnInit, OnDestroy, AfterViewInit {\n @ViewChild('moveRowButtons') public moveRowButtonsTemplateRef: TemplateRef<any>;\n @ViewChild('searchFieldModal') modal: ModalComponent;\n\n @Output() searchField: EventEmitter<SearchField> = new EventEmitter();\n\n readonly downloadName$ = new BehaviorSubject<string>('');\n readonly downloadUrl$ = new BehaviorSubject<SafeUrl>(undefined);\n readonly disableInput$ = new BehaviorSubject<boolean>(false);\n readonly selectedSearchField$ = new BehaviorSubject<SearchField | null>(null);\n readonly formData$ = new BehaviorSubject<SearchField>(null);\n readonly valid$ = new BehaviorSubject<boolean>(false);\n\n private subscriptions = new Subscription();\n\n private readonly COLUMNS: Array<DefinitionColumn> = [\n {\n viewType: 'string',\n sortable: false,\n propertyName: 'title',\n translationKey: 'title',\n },\n {\n viewType: 'string',\n sortable: false,\n propertyName: 'key',\n translationKey: 'key',\n },\n {\n viewType: 'string',\n sortable: false,\n propertyName: 'path',\n translationKey: 'path',\n },\n {\n viewType: 'string',\n sortable: false,\n propertyName: 'dataType',\n translationKey: 'dataType',\n },\n {\n viewType: 'string',\n sortable: false,\n propertyName: 'fieldType',\n translationKey: 'fieldType',\n },\n {\n viewType: 'string',\n sortable: false,\n propertyName: 'matchType',\n translationKey: 'matchType',\n },\n ];\n\n private readonly DATA_TYPES: Array<SearchFieldDataType> = [\n 'text',\n 'number',\n 'date',\n 'datetime',\n 'boolean',\n ];\n readonly dataTypeItems$: Observable<Array<SelectItem>> = this.translateService.stream('key').pipe(\n map(() =>\n this.DATA_TYPES.map(dataType => ({\n id: dataType,\n text: this.translateService.instant(`searchFields.${dataType}`),\n }))\n )\n );\n\n private readonly FIELD_TYPES: Array<SearchFieldFieldType> = ['single', 'range'];\n readonly fieldTypeItems$: Observable<Array<SelectItem>> = this.translateService\n .stream('key')\n .pipe(\n map(() =>\n this.FIELD_TYPES.map(fieldType => ({\n id: fieldType,\n text: this.translateService.instant(`searchFieldsOverview.${fieldType}`),\n }))\n )\n );\n\n private readonly MATCH_TYPES: Array<SearchFieldMatchType> = ['exact', 'like'];\n readonly matchTypeItems$: Observable<Array<SelectItem>> = this.translateService\n .stream('key')\n .pipe(\n map(() =>\n this.MATCH_TYPES.map(matchType => ({\n id: matchType,\n text: this.translateService.instant(`searchFieldsOverview.${matchType}`),\n }))\n )\n );\n\n readonly fields$: Observable<Array<ListField>> = this.translateService.stream('key').pipe(\n map(() =>\n this.COLUMNS.map(column => ({\n key: column.propertyName,\n label: this.translateService.instant(`searchFieldsOverview.${column.translationKey}`),\n sortable: column.sortable,\n ...(column.viewType && {viewType: column.viewType}),\n ...(column.enum && {enum: column.enum}),\n }))\n )\n );\n\n readonly documentDefinitionName$: Observable<string> = this.route.params.pipe(\n map(params => params.name || ''),\n filter(docDefName => !!docDefName)\n );\n\n private cachedSearchFields!: Array<SearchField>;\n searchFieldActionTypeIsAdd: boolean;\n loadingSearchFields = true;\n showSearchFieldsForm = false;\n\n private readonly refreshSearchFields$ = new BehaviorSubject<null>(null);\n\n private readonly searchFields$: Observable<Array<SearchField>> = combineLatest([\n this.documentDefinitionName$,\n this.refreshSearchFields$,\n ]).pipe(\n switchMap(([documentDefinitionName]) =>\n this.documentService.getDocumentSearchFields(documentDefinitionName)\n ),\n tap(searchFields => {\n this.documentDefinitionName$.pipe(take(1)).subscribe(documentDefinitionName => {\n if (searchFields && Array.isArray(searchFields) && searchFields.length > 0) {\n this.setDownload(documentDefinitionName, searchFields);\n }\n });\n }),\n tap(searchFields => {\n this.cachedSearchFields = searchFields;\n this.loadingSearchFields = false;\n })\n );\n\n readonly translatedSearchFields$: Observable<Array<SearchField>> = combineLatest([\n this.searchFields$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([searchFields]) =>\n searchFields.map(searchField => ({\n ...searchField,\n title: searchField.title ? searchField.title : '',\n dataType: this.translateService.instant(`searchFields.${searchField.dataType}`),\n matchType: this.translateService.instant(`searchFieldsOverview.${searchField.matchType}`),\n fieldType: this.translateService.instant(`searchFieldsOverview.${searchField.fieldType}`),\n }))\n )\n );\n\n constructor(\n private readonly documentService: DocumentService,\n private readonly route: ActivatedRoute,\n private readonly translateService: TranslateService,\n private readonly sanitizer: DomSanitizer\n ) {}\n\n ngOnInit(): void {\n this.openSelectedSearchFieldSubscription();\n }\n\n ngAfterViewInit(): void {\n this.openModalShowingSubscription();\n }\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n\n searchFieldClicked(searchField: SearchField, searchFieldActionTypeIsAdd: boolean): void {\n this.disableInput$.pipe(take(1)).subscribe(inputDisabled => {\n if (!inputDisabled) {\n this.searchFieldActionTypeIsAdd = searchFieldActionTypeIsAdd;\n const searchFieldToSelect = this.cachedSearchFields.find(\n field => field.key === searchField.key\n );\n this.selectedSearchField$.next(searchFieldToSelect);\n }\n });\n }\n\n formValueChange(data: SearchField): void {\n const containsAllValues = !!(\n data.key &&\n data.dataType &&\n data.fieldType &&\n data.matchType &&\n data.path\n );\n const keyIsUnique =\n !this.searchFieldActionTypeIsAdd ||\n this.cachedSearchFields.findIndex(field => field.key === data.key) === -1;\n\n this.formData$.next(data);\n this.valid$.next(containsAllValues && keyIsUnique);\n }\n\n moveRow(\n searchFieldRowIndex: number,\n moveUp: boolean,\n clickEvent: MouseEvent,\n documentDefinitionName: string\n ): void {\n const searchFields = [...this.cachedSearchFields];\n const searchFieldRow = searchFields[searchFieldRowIndex];\n\n clickEvent.stopPropagation();\n\n const searchFieldIndex = searchFields.findIndex(field => field.key === searchFieldRow.key);\n const foundSearchField = {...searchFields[searchFieldIndex]};\n const filteredSearchFields = searchFields.filter(field => field.key !== searchFieldRow.key);\n const multipleSearchFields = searchFields.length > 1;\n\n if (multipleSearchFields && moveUp && searchFieldIndex > 0) {\n const searchFieldBeforeKey = `${searchFields[searchFieldIndex - 1].key}`;\n const searchFieldBeforeIndex = filteredSearchFields.findIndex(\n field => field.key === searchFieldBeforeKey\n );\n filteredSearchFields.splice(searchFieldBeforeIndex, 0, foundSearchField);\n this.updateSearchFields(documentDefinitionName, filteredSearchFields);\n } else if (multipleSearchFields && !moveUp && searchFieldIndex < searchFields.length) {\n const searchFieldAfterKey = `${searchFields[searchFieldIndex + 1].key}`;\n const searchFieldAfterIndex = filteredSearchFields.findIndex(\n field => field.key === searchFieldAfterKey\n );\n filteredSearchFields.splice(searchFieldAfterIndex + 1, 0, foundSearchField);\n this.updateSearchFields(documentDefinitionName, filteredSearchFields);\n }\n }\n\n deleteSelectedSearchField(\n documentDefinitionName: string,\n selectedSearchField: SearchField\n ): void {\n this.disableInput();\n\n this.documentService\n .deleteDocumentSearch(documentDefinitionName, selectedSearchField.key)\n .subscribe(\n () => {\n this.enableInput();\n this.hideModal();\n this.refreshSearchFields();\n },\n () => {\n this.enableInput();\n }\n );\n }\n\n saveSearchField(documentDefinitionName: string): void {\n this.disableInput();\n\n this.formData$.pipe(take(1)).subscribe(formData => {\n if (this.searchFieldActionTypeIsAdd) {\n this.documentService.postDocumentSearch(documentDefinitionName, formData).subscribe(\n () => {\n this.enableInput();\n this.hideModal();\n this.refreshSearchFields();\n },\n () => {\n this.enableInput();\n }\n );\n } else {\n const newFields = [...this.cachedSearchFields];\n const indexToReplace = newFields.findIndex(field => field.key === formData.key);\n const filteredFields = newFields.filter(field => field.key !== formData.key);\n\n filteredFields.splice(indexToReplace, 0, formData);\n this.updateSearchFields(documentDefinitionName, filteredFields);\n }\n });\n }\n\n updateSearchFields(documentDefinitionName: string, newSearchFields: Array<SearchField>): void {\n this.disableInput();\n\n this.documentService.putDocumentSearch(documentDefinitionName, newSearchFields).subscribe(\n () => {\n this.enableInput();\n this.hideModal();\n this.refreshSearchFields();\n },\n () => {\n this.enableInput();\n }\n );\n }\n\n private openSelectedSearchFieldSubscription(): void {\n this.subscriptions.add(\n this.selectedSearchField$.subscribe(() => {\n this.showModal();\n })\n );\n }\n\n private openModalShowingSubscription(): void {\n this.subscriptions.add(\n this.modal.modalShowing$.subscribe(modalShowing => {\n if (modalShowing) {\n this.showSearchFieldsForm = true;\n } else {\n setTimeout(() => {\n this.showSearchFieldsForm = false;\n }, 150);\n }\n })\n );\n }\n\n private setDownload(documentDefinitionName: string, searchFields: Array<SearchField>): void {\n this.downloadName$.next(`${documentDefinitionName}.json`);\n this.downloadUrl$.next(\n this.sanitizer.bypassSecurityTrustUrl(\n 'data:text/json;charset=UTF-8,' +\n encodeURIComponent(JSON.stringify({searchFields}, null, 2))\n )\n );\n }\n\n private disableInput(): void {\n this.disableInput$.next(true);\n }\n\n private enableInput(): void {\n this.disableInput$.next(false);\n }\n\n private showModal(): void {\n this.modal?.show();\n }\n\n private hideModal(): void {\n this.modal?.hide();\n }\n\n private refreshSearchFields(): void {\n this.refreshSearchFields$.next(null);\n }\n}\n","<!--\n ~ Copyright 2015-2022 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n searchFields: translatedSearchFields$ | async,\n fields: fields$ | async,\n downloadUrl: downloadUrl$ | async,\n downloadName: downloadName$ | async,\n documentDefinitionName: documentDefinitionName$ | async,\n valid: valid$ | async,\n disableInput: disableInput$ | async\n } as obs\"\n>\n <ng-container *ngTemplateOutlet=\"buttons; context: {obs: obs}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"modal; context: {obs: obs}\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <div class=\"btn-group mt-m3px mb-3 pr-2 float-right\">\n <a\n class=\"btn btn-secondary btn-space\"\n [href]=\"obs.downloadUrl\"\n [download]=\"obs.downloadName\"\n [ngClass]=\"{\n disabled:\n !obs.downloadUrl || !obs.downloadName || obs.searchFields.length <= 0 || obs.disableInput\n }\"\n >\n <i class=\"icon mdi mdi-download mr-1\"></i>\n {{ 'searchFields.downloadButtonText' | translate }}\n </a>\n <button\n (click)=\"searchFieldClicked($event, true)\"\n class=\"btn btn-primary btn-space\"\n [ngClass]=\"{disabled: loadingSearchFields || obs.disableInput}\"\n >\n <i class=\"icon mdi mdi-plus mr-1\"></i>\n {{ 'searchFieldsOverview.addRow' | translate }}\n </button>\n </div>\n</ng-template>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-list\n [items]=\"obs.searchFields\"\n [fields]=\"obs.fields\"\n [viewMode]=\"false\"\n [header]=\"false\"\n (rowClicked)=\"searchFieldClicked($event, false)\"\n *ngIf=\"obs.searchFields; else loading\"\n [lastColumnTemplate]=\"moveRowButtonsTemplateRef\"\n >\n </valtimo-list>\n</ng-template>\n\n<ng-template #moveRowButtons let-index=\"index\" let-length=\"length\">\n <div\n class=\"move-row-buttons\"\n *ngIf=\"{\n disableInput: disableInput$ | async,\n documentDefinitionName: documentDefinitionName$ | async\n } as obs\"\n >\n <i\n class=\"mdi mdi-arrow-up-bold btn btn-outline-primary mr-1\"\n (click)=\"moveRow(index, true, $event, obs.documentDefinitionName)\"\n [ngClass]=\"{'disabled disabled-move-row-button': index === 0 || obs.disableInput}\"\n ></i>\n <i\n class=\"mdi mdi-arrow-down-bold btn btn-outline-secondary\"\n (click)=\"moveRow(index, false, $event, obs.documentDefinitionName)\"\n [ngClass]=\"{'disabled disabled-move-row-button': index === length - 1 || obs.disableInput}\"\n ></i>\n </div>\n</ng-template>\n\n<ng-template #modal let-obs=\"obs\">\n <valtimo-modal\n #searchFieldModal\n elementId=\"searchFieldModal\"\n [title]=\"\n searchFieldActionTypeIsAdd\n ? ('searchFieldsOverview.addRow' | translate)\n : ('searchFieldsOverview.edit' | translate)\n \"\n [showFooter]=\"true\"\n >\n <div body class=\"mt-2\">\n <v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"showSearchFieldsForm && {searchField: selectedSearchField$ | async} as searchObs\"\n >\n <v-input\n name=\"title\"\n [title]=\"'searchFieldsOverview.title' | translate\"\n [margin]=\"true\"\n [defaultValue]=\"searchObs.searchField?.title\"\n [disabled]=\"obs.disableInput\"\n [required]=\"false\"\n [fullWidth]=\"true\"\n [tooltip]=\"'searchFieldsOverviewTooltips.title' | translate\"\n >\n </v-input>\n <v-input\n name=\"key\"\n [title]=\"'searchFieldsOverview.key' | translate\"\n [margin]=\"true\"\n [defaultValue]=\"searchObs.searchField?.key\"\n [disabled]=\"obs.disableInput || !searchFieldActionTypeIsAdd\"\n [required]=\"true\"\n [widthPx]=\"200\"\n [tooltip]=\"'searchFieldsOverviewTooltips.key' | translate\"\n >\n </v-input>\n <v-input\n name=\"path\"\n [title]=\"'searchFieldsOverview.path' | translate\"\n [margin]=\"true\"\n [defaultValue]=\"searchObs.searchField?.path\"\n [disabled]=\"obs.disableInput\"\n [required]=\"true\"\n [fullWidth]=\"true\"\n [tooltip]=\"'searchFieldsOverviewTooltips.path' | translate\"\n >\n </v-input>\n <v-select\n *ngIf=\"dataTypeItems$ | async as dataTypeItems\"\n [items]=\"dataTypeItems\"\n [placeholder]=\"'searchFieldsOverview.searchFieldPlaceholder' | translate\"\n [title]=\"'searchFieldsOverview.dataType' | translate\"\n [disabled]=\"obs.disableInput\"\n [margin]=\"true\"\n [required]=\"true\"\n name=\"dataType\"\n [defaultSelectionId]=\"searchObs.searchField?.dataType\"\n [widthInPx]=\"200\"\n [tooltip]=\"'searchFieldsOverviewTooltips.dataType' | translate\"\n ></v-select>\n <v-select\n *ngIf=\"fieldTypeItems$ | async as fieldTypeItems\"\n [items]=\"fieldTypeItems\"\n [placeholder]=\"'searchFieldsOverview.searchFieldPlaceholder' | translate\"\n [title]=\"'searchFieldsOverview.fieldType' | translate\"\n [disabled]=\"obs.disableInput\"\n [margin]=\"true\"\n [required]=\"true\"\n name=\"fieldType\"\n [defaultSelectionId]=\"searchObs.searchField?.fieldType\"\n [widthInPx]=\"200\"\n [tooltip]=\"'searchFieldsOverviewTooltips.fieldType' | translate\"\n ></v-select>\n <v-select\n *ngIf=\"matchTypeItems$ | async as matchTypeItems\"\n [items]=\"matchTypeItems\"\n [placeholder]=\"'searchFieldsOverview.searchFieldPlaceholder' | translate\"\n [title]=\"'searchFieldsOverview.matchType' | translate\"\n [disabled]=\"obs.disableInput\"\n [margin]=\"true\"\n [required]=\"true\"\n name=\"matchType\"\n [defaultSelectionId]=\"searchObs.searchField?.matchType\"\n [widthInPx]=\"200\"\n [tooltip]=\"'searchFieldsOverviewTooltips.matchType' | translate\"\n ></v-select>\n </v-form>\n </div>\n <div footer>\n <div class=\"col-12 p-0\">\n <ng-container *ngTemplateOutlet=\"buttonsFooterModal; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n </valtimo-modal>\n</ng-template>\n\n<ng-template #buttonsFooterModal let-obs=\"obs\">\n <div class=\"buttons-container\" *ngIf=\"{searchField: selectedSearchField$ | async} as searchObs\">\n <div class=\"right-buttons\">\n <button\n class=\"btn btn-space btn-secondary\"\n *ngIf=\"!searchFieldActionTypeIsAdd\"\n [disabled]=\"obs.disableInput\"\n (click)=\"deleteSelectedSearchField(obs.documentDefinitionName, searchObs.searchField)\"\n >\n {{ 'searchFieldsOverview.delete' | translate }}\n </button>\n <button\n (click)=\"saveSearchField(obs.documentDefinitionName)\"\n type=\"button\"\n class=\"btn btn-primary btn-space mr-0\"\n [disabled]=\"obs.disableInput || !obs.valid\"\n >\n {{ 'searchFieldsOverview.submit' | translate }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"mb-3\">\n <valtimo-spinner></valtimo-spinner>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {DocumentService} from '@valtimo/document';\nimport {filter, map, Observable, switchMap} from 'rxjs';\n\n@Component({\n selector: 'valtimo-dossier-management-detail-container',\n templateUrl: './dossier-management-detail-container.component.html',\n styleUrls: ['./dossier-management-detail-container.component.css'],\n})\nexport class DossierManagementDetailContainerComponent {\n public isCase = true;\n\n readonly documentDefinitionName$: Observable<string> = this.route.params.pipe(\n map(params => params.name || ''),\n filter(docDefName => !!docDefName)\n );\n\n readonly documentDefinition$ = this.documentDefinitionName$.pipe(\n switchMap(documentDefinitionName =>\n this.documentService.getDocumentDefinition(documentDefinitionName)\n )\n );\n\n constructor(private documentService: DocumentService, private route: ActivatedRoute) {}\n\n displayBodyComponent(tab: string): void {\n this.isCase = tab === 'case';\n }\n}\n","<!--\n ~ Copyright 2015-2022 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget>\n <ng-container *ngTemplateOutlet=\"title\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tabContent\"></ng-container>\n </valtimo-widget>\n </div>\n </div>\n</div>\n\n<ng-template #title>\n <div class=\"bg-light dossier-header\" *ngIf=\"documentDefinition$ | async as documentDefinition\">\n <h3 class=\"dossier-title\">\n {{ documentDefinition.schema.title }}\n <div *ngIf=\"documentDefinition.readOnly\" class=\"pull-right\">\n <span class=\"badge badge-pill badge-info increase-size\">{{\n 'dossierManagement.readonly' | translate\n }}</span>\n </div>\n </h3>\n </div>\n</ng-template>\n\n<ng-template #tabs>\n <ul class=\"nav nav-tabs\">\n <li class=\"nav-item\">\n <a\n id=\"test-tab\"\n class=\"nav-link clickable active\"\n data-toggle=\"tab\"\n (click)=\"displayBodyComponent('case')\"\n >\n {{ 'dossierManagement.tabs.cases' | translate }}\n </a>\n </li>\n <li class=\"nav-item\">\n <a\n id=\"test-tab-1\"\n class=\"nav-link clickable\"\n data-toggle=\"tab\"\n (click)=\"displayBodyComponent('search')\"\n >\n {{ 'dossierManagement.tabs.searchFields' | translate }}\n </a>\n </li>\n </ul>\n</ng-template>\n\n<ng-template #tabContent>\n <div class=\"pt-3 bg-white position-relative tab-container\">\n <div *ngIf=\"isCase\">\n <valtimo-dossier-management-detail></valtimo-dossier-management-detail>\n </div>\n <div *ngIf=\"!isCase\">\n <valtimo-dossier-management-search-fields></valtimo-dossier-management-search-fields>\n </div>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {AuthGuardService} from '@valtimo/security';\nimport {DossierManagementListComponent} from './dossier-management-list/dossier-management-list.component';\nimport {ROLE_ADMIN} from '@valtimo/config';\nimport {DossierManagementDetailContainerComponent} from './dossier-management-detail-container/dossier-management-detail-container.component';\n\nconst routes: Routes = [\n {\n path: 'dossier-management',\n component: DossierManagementListComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Dossiers', roles: [ROLE_ADMIN]},\n },\n {\n path: 'dossier-management/dossier/:name',\n component: DossierManagementDetailContainerComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Dossier details', roles: [ROLE_ADMIN]},\n },\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule],\n declarations: [],\n})\nexport class DossierManagementRoutingModule {}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {\n DropzoneModule,\n ListModule,\n ModalModule,\n MultiselectDropdownModule,\n SpinnerModule,\n WidgetModule,\n} from '@valtimo/components';\nimport {ConfigModule} from '@valtimo/config';\nimport {DossierManagementConnectModalComponent} from './dossier-management-connect-modal/dossier-management-connect-modal.component';\nimport {DossierManagementDetailComponent} from './dossier-management-detail-container/tabs/dossier-management-detail/dossier-management-detail.component';\nimport {DossierManagementListComponent} from './dossier-management-list/dossier-management-list.component';\nimport {DossierManagementRoutingModule} from './dossier-management-routing.module';\nimport {DossierManagementUploadComponent} from './dossier-management-upload/dossier-management-upload.component';\nimport {DossierManagementRemoveModalComponent} from './dossier-management-remove-modal/dossier-management-remove-modal.component';\nimport {NgbTooltipModule} from '@ng-bootstrap/ng-bootstrap';\nimport {DossierManagementRolesComponent} from './dossier-management-roles/dossier-management-roles.component';\nimport {DossierManagementLinkProcessComponent} from './dossier-management-link-process/dossier-management-link-process.component';\nimport {ParagraphModule, SelectModule, InputModule, FormModule} from '@valtimo/user-interface';\nimport {DossierManagementSearchFieldsComponent} from './dossier-management-detail-container/tabs/dossier-management-search-fields/dossier-management-search-fields.component';\nimport {DossierManagementDetailContainerComponent} from './dossier-management-detail-container/dossier-management-detail-container.component';\nimport {DossierManagementAssigneeComponent} from './dossier-management-assignee/dossier-management-assignee.component';\n\n@NgModule({\n declarations: [\n DossierManagementListComponent,\n DossierManagementDetailComponent,\n DossierManagementConnectModalComponent,\n DossierManagementRemoveModalComponent,\n DossierManagementUploadComponent,\n DossierManagementRolesComponent,\n DossierManagementLinkProcessComponent,\n DossierManagementSearchFieldsComponent,\n DossierManagementDetailContainerComponent,\n DossierManagementAssigneeComponent,\n ],\n imports: [\n CommonModule,\n WidgetModule,\n DropzoneModule,\n ListModule,\n DossierManagementRoutingModule,\n FormsModule,\n TranslateModule,\n ModalModule,\n ConfigModule,\n NgbTooltipModule,\n MultiselectDropdownModule,\n ParagraphModule,\n SelectModule,\n SpinnerModule,\n InputModule,\n SelectModule,\n FormModule,\n ],\n exports: [],\n})\nexport class DossierManagementModule {}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of dossier-management\n */\n\nexport * from './lib/dossier-management.module';\nexport * from './lib/dossier-management-list/dossier-management-list.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i6","i8","i1","i3","i4","i5","i7","i7.DossierManagementConnectModalComponent","i8.DossierManagementRemoveModalComponent","i9.DossierManagementRolesComponent","i10.DossierManagementLinkProcessComponent","i11.DossierManagementAssigneeComponent","i12","switchMap","i4.DossierManagementUploadComponent","tap","take","i5.DossierManagementDetailComponent","i6.DossierManagementSearchFieldsComponent"],"mappings":"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"}
1
+ {"version":3,"file":"valtimo-dossier-management.mjs","sources":["../../../../projects/valtimo/dossier-management/src/lib/dossier-management-connect-modal/dossier-management-connect-modal.component.ts","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-connect-modal/dossier-management-connect-modal.component.html","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-remove-modal/dossier-management-remove-modal.component.ts","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-remove-modal/dossier-management-remove-modal.component.html","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-roles/dossier-management-roles.component.ts","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-roles/dossier-management-roles.component.html","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-link-process/dossier-management-link-process.component.ts","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-link-process/dossier-management-link-process.component.html","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-assignee/dossier-management-assignee.component.ts","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-assignee/dossier-management-assignee.component.html","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-detail-container/tabs/dossier-management-detail/dossier-management-detail.component.ts","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-detail-container/tabs/dossier-management-detail/dossier-management-detail.component.html","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-upload/dossier-management-upload.component.ts","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-upload/dossier-management-upload.component.html","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-list/dossier-management-list.component.ts","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-list/dossier-management-list.component.html","../../../../projects/valtimo/dossier-management/src/lib/tab.enum.ts","../../../../projects/valtimo/dossier-management/src/lib/tab.service.ts","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-detail-container/tabs/dossier-management-search-fields/dossier-management-search-fields.component.ts","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-detail-container/tabs/dossier-management-search-fields/dossier-management-search-fields.component.html","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-detail-container/tabs/dossier-management-list-columns/dossier-management-list-columns.component.ts","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-detail-container/tabs/dossier-management-list-columns/dossier-management-list-columns.component.html","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-detail-container/dossier-management-detail-container.component.ts","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-detail-container/dossier-management-detail-container.component.html","../../../../projects/valtimo/dossier-management/src/lib/dossier-management-routing.module.ts","../../../../projects/valtimo/dossier-management/src/lib/dossier-management.module.ts","../../../../projects/valtimo/dossier-management/src/public-api.ts","../../../../projects/valtimo/dossier-management/src/valtimo-dossier-management.ts"],"sourcesContent":["/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, OnInit, Output, ViewChild} from '@angular/core';\nimport {\n DocumentService,\n ProcessDocumentDefinitionRequest,\n ProcessDocumentDefinition,\n DocumentDefinition,\n} from '@valtimo/document';\nimport {ProcessService, ProcessDefinition} from '@valtimo/process';\nimport {ToastrService} from 'ngx-toastr';\nimport {ModalComponent} from '@valtimo/components';\n\n@Component({\n selector: 'valtimo-dossier-management-connect-modal',\n templateUrl: './dossier-management-connect-modal.component.html',\n styleUrls: ['./dossier-management-connect-modal.component.scss'],\n})\nexport class DossierManagementConnectModalComponent implements OnInit {\n public documentDefinition: DocumentDefinition | null = null;\n public processDefinitions: ProcessDefinition[];\n public newDocumentProcessDefinition: ProcessDefinition | null = null;\n public newDocumentProcessDefinitionInit = true;\n public newDocumentProcessDefinitionStartableByUser = false;\n public processDocumentDefinitionExists: any = {};\n @Output() public reloadProcessDocumentDefinitions = new EventEmitter<any>();\n @ViewChild('dossierConnectModal') modal: ModalComponent;\n\n constructor(\n private processService: ProcessService,\n private documentService: DocumentService,\n private toasterService: ToastrService\n ) {}\n\n loadProcessDocumentDefinitions() {\n this.processDocumentDefinitionExists = {};\n this.documentService\n .findProcessDocumentDefinitions(this.documentDefinition.id.name)\n .subscribe((processDocumentDefinitions: ProcessDocumentDefinition[]) => {\n processDocumentDefinitions.forEach(\n (processDocumentDefinition: ProcessDocumentDefinition) => {\n this.processDocumentDefinitionExists[\n processDocumentDefinition.id.processDefinitionKey\n ] = true;\n }\n );\n });\n }\n\n loadProcessDefinitions() {\n this.processService\n .getProcessDefinitions()\n .subscribe((processDefinitions: ProcessDefinition[]) => {\n this.processDefinitions = processDefinitions;\n });\n }\n\n ngOnInit() {\n this.loadProcessDefinitions();\n }\n\n openModal(dossier: DocumentDefinition) {\n this.documentDefinition = dossier;\n this.newDocumentProcessDefinition = null;\n this.newDocumentProcessDefinitionInit = true;\n this.newDocumentProcessDefinitionStartableByUser = false;\n this.loadProcessDocumentDefinitions();\n this.modal.show();\n }\n\n submit() {\n const request: ProcessDocumentDefinitionRequest = {\n canInitializeDocument: this.newDocumentProcessDefinitionInit,\n startableByUser: this.newDocumentProcessDefinitionStartableByUser,\n documentDefinitionName: this.documentDefinition.id.name,\n processDefinitionKey: this.newDocumentProcessDefinition.key,\n };\n this.documentService.createProcessDocumentDefinition(request).subscribe(\n () => {\n this.toasterService.success('Successfully added new process document definition');\n this.reloadProcessDocumentDefinitions.emit();\n },\n err => {\n this.toasterService.error('Failed to add new process document definition');\n }\n );\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-modal\n #dossierConnectModal\n elementId=\"dossierConnectModal\"\n [title]=\"documentDefinition ? documentDefinition.schema.title : 'Document definition'\"\n subtitle=\"Connect document definition to process definition\"\n showFooter=\"true\"\n>\n <div body *ngIf=\"documentDefinition\">\n <p>\n {{ 'Select process definition for document definition' | translate }}\n <strong>{{ documentDefinition.id.name }} *</strong>\n </p>\n <div class=\"input-group mb-3 align-items-center\">\n <select class=\"form-control\" [(ngModel)]=\"newDocumentProcessDefinition\">\n <option [ngValue]=\"null\">{{ 'dossierManagement.selectProcessDef' | translate }}</option>\n <option\n *ngFor=\"let processDefinition of processDefinitions\"\n [disabled]=\"processDocumentDefinitionExists[processDefinition.key]\"\n [ngValue]=\"processDefinition\"\n >\n {{ processDefinition.name }} ({{ processDefinition.key }})\n </option>\n </select>\n </div>\n <p>\n {{ 'Select options for the selected process' | translate }}\n </p>\n <div class=\"input-group mb-3 align-items-center\">\n <label\n class=\"custom-control custom-checkbox custom-control-inline pl-6 mb-0\"\n placement=\"bottom\"\n ngbTooltip=\"{{ 'processCaseConnection.processCreatesCaseTooltip' | translate }}\"\n >\n <input\n class=\"custom-control-input\"\n type=\"checkbox\"\n [(ngModel)]=\"newDocumentProcessDefinitionInit\"\n /><span class=\"custom-control-label custom-control-color\">{{\n 'processCaseConnection.processCreatesCase' | translate\n }}</span>\n </label>\n <label\n class=\"custom-control custom-checkbox custom-control-inline ml-2 pl-6 mb-0\"\n placement=\"bottom\"\n ngbTooltip=\"{{ 'processCaseConnection.startableWithinCaseTooltip' | translate }}\"\n >\n <input\n class=\"custom-control-input\"\n type=\"checkbox\"\n [(ngModel)]=\"newDocumentProcessDefinitionStartableByUser\"\n /><span class=\"custom-control-label custom-control-color\">{{\n 'processCaseConnection.startableWithinCase' | translate\n }}</span>\n </label>\n </div>\n </div>\n <div footer>\n <button\n (click)=\"submit()\"\n class=\"btn btn-primary\"\n data-dismiss=\"modal\"\n [disabled]=\"!newDocumentProcessDefinition\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n</valtimo-modal>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, ViewChild} from '@angular/core';\nimport {\n DocumentService,\n DocumentDefinition,\n UndeployDocumentDefinitionResult,\n} from '@valtimo/document';\nimport {MenuService, ModalComponent} from '@valtimo/components';\nimport {ToastrService} from 'ngx-toastr';\nimport {Router} from '@angular/router';\nimport {TranslateService} from '@ngx-translate/core';\n\n@Component({\n selector: 'valtimo-dossier-management-remove-modal',\n templateUrl: './dossier-management-remove-modal.component.html',\n styleUrls: ['./dossier-management-remove-modal.component.scss'],\n})\nexport class DossierManagementRemoveModalComponent {\n public documentDefinition: DocumentDefinition | null = null;\n public errors: string[] = [];\n @ViewChild('documentDefinitionRemoveModal') modal: ModalComponent;\n\n constructor(\n private documentService: DocumentService,\n private toasterService: ToastrService,\n private router: Router,\n private translateService: TranslateService,\n private menuService: MenuService\n ) {}\n\n openModal(documentDefinition: DocumentDefinition) {\n this.documentDefinition = documentDefinition;\n this.modal.show();\n }\n\n removeDocumentDefinition() {\n this.documentService.removeDocumentDefinition(this.documentDefinition.id.name).subscribe(\n () => {\n this.menuService.reload();\n this.router.navigate(['/dossier-management']);\n this.toasterService.success(\n this.translateService.instant('remove-document-definition-success')\n );\n },\n (result: UndeployDocumentDefinitionResult) => {\n this.errors = result.errors;\n }\n );\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-modal\n #documentDefinitionRemoveModal\n elementId=\"documentDefinitionRemoveModal\"\n [title]=\"documentDefinition ? documentDefinition.schema.title : 'Document definition'\"\n subtitle=\"{{ 'Remove document definition' | translate }}\"\n showFooter=\"true\"\n>\n <div body *ngIf=\"documentDefinition\">\n <div class=\"alert alert-contrast alert-danger mt-2\" role=\"alert\">\n <div class=\"icon\"><span class=\"mdi mdi-alert-triangle\"></span></div>\n <div\n class=\"message\"\n [innerHTML]=\"'remove-document-definition-confirmation' | translate\"\n ></div>\n </div>\n <div *ngIf=\"errors.length > 0\" class=\"alert alert-danger pt-5 pb-5 mb-2\">\n <ol>\n <li *ngFor=\"let error of errors\">\n {{ error }}\n </li>\n </ol>\n </div>\n </div>\n <div footer>\n <button (click)=\"removeDocumentDefinition()\" class=\"btn btn-primary\" data-dismiss=\"modal\">\n {{ 'remove-document-definition-confirmation-button' | translate }}\n </button>\n </div>\n</valtimo-modal>\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component, Input, OnInit} from '@angular/core';\nimport {IDropdownSettings} from 'ng-multiselect-dropdown';\nimport {BehaviorSubject} from 'rxjs';\nimport {Authority, AuthorityService} from '@valtimo/authority';\nimport {DocumentService} from '@valtimo/document';\nimport {AlertService} from '@valtimo/components';\nimport {TranslateService} from '@ngx-translate/core';\nimport {isEqual} from 'lodash';\n\n@Component({\n selector: 'valtimo-dossier-management-roles',\n templateUrl: './dossier-management-roles.component.html',\n styleUrls: ['./dossier-management-roles.component.scss'],\n})\nexport class DossierManagementRolesComponent implements OnInit {\n @Input() public documentDefinitionName: string;\n public dropdownSettings: IDropdownSettings = {\n singleSelection: false,\n idField: 'name',\n textField: 'name',\n selectAllText: 'Select All',\n unSelectAllText: 'UnSelect All',\n itemsShowLimit: 3,\n enableCheckAll: true,\n allowSearchFilter: true,\n };\n public roles = new BehaviorSubject<Array<Authority>>(undefined);\n public preSelectedItems = new BehaviorSubject<Array<string>>(undefined);\n\n constructor(\n private readonly authorityService: AuthorityService,\n private readonly documentService: DocumentService,\n private readonly alertService: AlertService,\n private readonly translateService: TranslateService\n ) {}\n\n ngOnInit(): void {\n this.loadAllRoles();\n }\n\n loadAllRoles(): void {\n this.authorityService.query().subscribe(result => {\n this.roles.next(result.body);\n this.loadDocumentRoles();\n });\n }\n\n loadDocumentRoles(): void {\n if (this.documentDefinitionName) {\n this.documentService.getDocumentRoles(this.documentDefinitionName).subscribe(\n result => {\n this.preSelectedItems.next(result);\n },\n err => {\n this.alertService.warning(\n this.translateService.instant(\n 'dossierManagement.roles.messages.unsuccessfullyRetrievedRoles'\n )\n );\n }\n );\n }\n }\n\n onSelectedItems(data: any): void {\n const roles = this.returnArrayOfString(data);\n\n if (isEqual(roles, this.preSelectedItems.value)) {\n return;\n }\n this.documentService.modifyDocumentRoles(this.documentDefinitionName, roles).subscribe(\n () => {\n this.alertService.success(\n this.translateService.instant('dossierManagement.roles.messages.successfullyStored')\n );\n this.preSelectedItems.next(roles);\n },\n err => {\n this.alertService.error(\n this.translateService.instant('dossierManagement.roles.messages.unsuccessfullyStored')\n );\n }\n );\n }\n\n /**\n * The data could be either an array of string (i.e. [\"ROLE_ADMIN\", \"ROLE_DEVELOPER\"]\n * or an array of object with name parameters (i.e. [{\"name\": \"ROLE_ADMIN\"},{\"name\":\"ROLE_DEVELOPER}]\n *\n * This method will always make sure an array of strings is returned\n */\n private returnArrayOfString(data): Array<string> {\n return data.map(el => {\n if (typeof el === 'string') {\n return el;\n }\n\n return el.name;\n });\n }\n}\n","<!--\n ~ Copyright 2015-2022 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<!--<h2 class=\"mb-4 mt-6\">{{ 'connectorManagement.extension.title' | translate }}</h2>-->\n<h2 class=\"mb-4 mt-6\">{{ 'dossierManagement.roles.rolesTitle' | translate }}</h2>\n<p class=\"card-text\">{{ 'dossierManagement.roles.rolesDescription' | translate }}</p>\n\n<valtimo-multiselect-dropdown\n [items]=\"roles | async\"\n [selectedItems]=\"preSelectedItems | async\"\n [dropdownSettings]=\"dropdownSettings\"\n [placeHolder]=\"'dossierManagement.roles.rolesPlaceHolder' | translate\"\n (itemsSelected)=\"onSelectedItems($event)\"\n></valtimo-multiselect-dropdown>\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component, OnInit} from '@angular/core';\nimport {ConfigService, UploadProvider, ValtimoConfig} from '@valtimo/config';\nimport {BehaviorSubject, map, Observable} from 'rxjs';\nimport {SelectItem} from '@valtimo/user-interface';\nimport {ProcessService} from '@valtimo/process';\nimport {ActivatedRoute} from '@angular/router';\nimport {DocumentService} from '@valtimo/document';\n\n@Component({\n selector: 'valtimo-dossier-management-link-process',\n templateUrl: './dossier-management-link-process.component.html',\n styleUrls: ['./dossier-management-link-process.component.scss'],\n})\nexport class DossierManagementLinkProcessComponent implements OnInit {\n documentenApiUploadProvider!: boolean;\n documentDefinitionName: string | null = null;\n\n readonly selectionId$ = new BehaviorSubject<string>('');\n readonly processItems$: Observable<Array<SelectItem>> = this.processService\n .getProcessDefinitions()\n .pipe(map(processes => processes.map(process => ({text: process.name, id: process.key}))));\n\n readonly disabled$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private readonly configService: ConfigService,\n private readonly processService: ProcessService,\n private readonly route: ActivatedRoute,\n private readonly documentService: DocumentService\n ) {\n this.setDocumentenApiUploaderProvider(configService.config);\n this.documentDefinitionName = this.route.snapshot.paramMap.get('name');\n }\n\n ngOnInit(): void {\n if (this.documentenApiUploadProvider) {\n this.getDefaultSelection();\n }\n }\n\n selectProcess(processDefinitionKey: string): void {\n this.disabled$.next(true);\n const currentSelectionId = this.selectionId$.getValue();\n if (processDefinitionKey && processDefinitionKey !== currentSelectionId) {\n this.disabled$.next(true);\n this.documentService\n .updateLinkedUploadProcess(this.documentDefinitionName, processDefinitionKey)\n .subscribe(processLink => {\n this.selectionId$.next(processLink.processDefinitionKey);\n this.disabled$.next(false);\n });\n } else if (!processDefinitionKey) {\n this.documentService.deleteLinkedUploadProcess(this.documentDefinitionName).subscribe(() => {\n this.disabled$.next(false);\n });\n }\n }\n\n private setDocumentenApiUploaderProvider(config: ValtimoConfig): void {\n this.documentenApiUploadProvider = config.uploadProvider === UploadProvider.DOCUMENTEN_API;\n }\n\n private getDefaultSelection(): void {\n this.documentService\n .getLinkedUploadProcess(this.documentDefinitionName)\n .subscribe(linkedUploadProcess => {\n if (linkedUploadProcess) {\n this.selectionId$.next(linkedUploadProcess.processDefinitionKey);\n }\n });\n }\n}\n","<!--\n ~ Copyright 2015-2022 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"documentenApiUploadProvider\">\n <h2 class=\"mb-4 mt-6\">{{ 'dossierManagement.linkProcess.title' | translate }}</h2>\n <v-paragraph [margin]=\"true\">{{\n 'dossierManagement.linkProcess.description' | translate\n }}</v-paragraph>\n <ng-container\n *ngIf=\"{\n processItems: processItems$ | async,\n disabled: disabled$ | async,\n defaultSelectionId: selectionId$ | async\n } as obs\"\n >\n <v-select\n (selectedChange)=\"selectProcess($event)\"\n [defaultSelectionId]=\"obs.defaultSelectionId\"\n [disabled]=\"obs.disabled\"\n [items]=\"obs.processItems\"\n [loading]=\"!obs.processItems\"\n [margin]=\"true\"\n [required]=\"false\"\n ></v-select>\n </ng-container>\n</ng-container>\n","import {Component} from '@angular/core';\nimport {DocumentService, CaseSettings} from '@valtimo/document';\nimport {BehaviorSubject, map, Observable, switchMap} from 'rxjs';\nimport {ActivatedRoute} from '@angular/router';\nimport {tap} from 'rxjs/operators';\n\n@Component({\n selector: 'valtimo-dossier-management-assignee',\n templateUrl: './dossier-management-assignee.component.html',\n styleUrls: ['./dossier-management-assignee.component.css'],\n})\nexport class DossierManagementAssigneeComponent {\n readonly disabled$ = new BehaviorSubject<boolean>(false);\n\n private readonly _refresh$ = new BehaviorSubject<null>(null);\n\n readonly loading$ = new BehaviorSubject<boolean>(true);\n\n readonly documentDefinitionName$: Observable<string> = this.route.params.pipe(\n map(params => params.name || '')\n );\n\n readonly currentValue$: Observable<CaseSettings> = this._refresh$.pipe(\n switchMap(() => this.documentDefinitionName$),\n switchMap(documentDefinitionName =>\n this.documentService.getCaseSettings(documentDefinitionName)\n ),\n tap(() => this.loading$.next(false))\n );\n\n constructor(private readonly documentService: DocumentService, private route: ActivatedRoute) {\n this.disabled$ = new BehaviorSubject<boolean>(false);\n }\n\n toggleAssignee(currentValue: boolean, documentDefinitionName: string): void {\n this.disableInput();\n\n this.documentService\n .patchCaseSettings(documentDefinitionName, {\n canHaveAssignee: currentValue,\n })\n .subscribe(\n () => {\n this.enableInput();\n this.refreshAssignee();\n },\n () => {\n this.enableInput();\n }\n );\n }\n\n disableInput(): void {\n this.disabled$.next(true);\n }\n\n enableInput(): void {\n this.disabled$.next(false);\n }\n\n private refreshAssignee(): void {\n this._refresh$.next(null);\n }\n}\n","<h2 class=\"mb-4 mt-6\">{{ 'dossierManagement.handleAssignee.title' | translate }}</h2>\n\n<ng-container\n *ngIf=\"{\n currentValue: currentValue$ | async,\n documentDefinitionName: documentDefinitionName$ | async,\n loading: loading$ | async,\n disabled: disabled$ | async\n } as obs\"\n>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <label\n class=\"custom-control custom-checkbox custom-control-inline pl-6 mr-5\"\n placement=\"bottom\"\n >\n <input\n [checked]=\"obs.currentValue.canHaveAssignee\"\n class=\"custom-control-input\"\n type=\"checkbox\"\n [disabled]=\"obs.disabled\"\n (click)=\"toggleAssignee(!obs.currentValue.canHaveAssignee, obs.documentDefinitionName)\"\n /><span class=\"custom-control-label custom-control-color\">{{\n 'dossierManagement.handleAssignee.checkboxDescription' | translate\n }}</span>\n </label>\n </ng-container>\n</ng-container>\n\n<ng-template #loading>\n <valtimo-spinner></valtimo-spinner>\n</ng-template>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnInit, ViewChild} from '@angular/core';\nimport {DocumentDefinition, DocumentService, ProcessDocumentDefinition} from '@valtimo/document';\nimport {ActivatedRoute} from '@angular/router';\nimport {DossierManagementConnectModalComponent} from '../../../dossier-management-connect-modal/dossier-management-connect-modal.component';\nimport {AlertService} from '@valtimo/components';\nimport {DossierManagementRemoveModalComponent} from '../../../dossier-management-remove-modal/dossier-management-remove-modal.component';\nimport {DossierManagementRolesComponent} from '../../../dossier-management-roles/dossier-management-roles.component';\n\n@Component({\n selector: 'valtimo-dossier-management-detail',\n templateUrl: './dossier-management-detail.component.html',\n styleUrls: ['./dossier-management-detail.component.scss'],\n})\nexport class DossierManagementDetailComponent implements OnInit {\n public documentDefinitionName: string | null = null;\n public documentDefinition: DocumentDefinition | null = null;\n public processDocumentDefinitions: ProcessDocumentDefinition[] = [];\n\n @ViewChild('dossierConnectModal')\n dossierConnectModal: DossierManagementConnectModalComponent;\n @ViewChild('dossierRemoveModal')\n dossierRemoveModal: DossierManagementRemoveModalComponent;\n @ViewChild('documentRoles') documentRoles: DossierManagementRolesComponent;\n\n constructor(\n private documentService: DocumentService,\n private route: ActivatedRoute,\n private alertService: AlertService\n ) {\n this.documentDefinitionName = this.route.snapshot.paramMap.get('name');\n }\n\n ngOnInit() {\n this.loadDocumentDefinition();\n this.loadProcessDocumentDefinitions();\n }\n\n loadProcessDocumentDefinitions() {\n this.documentService\n .findProcessDocumentDefinitions(this.documentDefinitionName)\n .subscribe((processDocumentDefinitions: ProcessDocumentDefinition[]) => {\n this.processDocumentDefinitions = processDocumentDefinitions;\n });\n }\n\n loadDocumentDefinition() {\n this.documentService\n .getDocumentDefinition(this.documentDefinitionName)\n .subscribe((documentDefinition: DocumentDefinition) => {\n this.documentDefinition = documentDefinition;\n });\n }\n\n openDossierConnectModal() {\n this.dossierConnectModal.openModal(this.documentDefinition);\n }\n\n openDossierRemoveModal() {\n this.dossierRemoveModal.openModal(this.documentDefinition);\n }\n\n deleteProcessDocumentDefinition(processDocumentDefinition: ProcessDocumentDefinition) {\n this.documentService\n .deleteProcessDocumentDefinition({\n documentDefinitionName: processDocumentDefinition.id.documentDefinitionId.name,\n processDefinitionKey: processDocumentDefinition.id.processDefinitionKey,\n canInitializeDocument: processDocumentDefinition.canInitializeDocument,\n startableByUser: processDocumentDefinition.startableByUser,\n })\n .subscribe(\n () => {\n this.alertService.success('Successfully deleted process document definition');\n this.loadProcessDocumentDefinitions();\n },\n () => {\n this.alertService.error('Failed to delete process document definition');\n }\n );\n }\n\n downloadDefinition(): void {\n const definition = this.documentDefinition;\n const dataString =\n 'data:text/json;charset=utf-8,' +\n encodeURIComponent(JSON.stringify(definition.schema, null, 2));\n const downloadAnchorElement = document.getElementById('downloadAnchorElement');\n downloadAnchorElement.setAttribute('href', dataString);\n downloadAnchorElement.setAttribute(\n 'download',\n `${definition.id.name}-v${definition.id.version}.json`\n );\n downloadAnchorElement.click();\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div id=\"management-datail-content\" class=\"pt-0\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n <div class=\"clearfix\"></div>\n <ng-container *ngTemplateOutlet=\"widget\"></ng-container>\n</div>\n\n<ng-template #widget>\n <valtimo-widget *ngIf=\"documentDefinition\">\n <div class=\"row bg-white mt-5 mb-2 pl-2 pr-2\">\n <div class=\"col-5\">\n <h2>{{ 'document definition' | translate }}</h2>\n </div>\n <div class=\"col-5 offset-2\">\n <h2>{{ 'dossierManagement.connectedProcesses' | translate }}</h2>\n </div>\n </div>\n <div class=\"row bg-white mb-5 pb-4 pl-2 pr-2\">\n <div class=\"col-5 bg-red\">\n <textarea class=\"w-100 dossier-schema\" disabled rows=\"25\"\n >{{ documentDefinition | json }}\n </textarea\n >\n </div>\n <div class=\"col-5 offset-2 bg-blue\">\n <div\n *ngFor=\"let processDocumentDefinition of processDocumentDefinitions\"\n class=\"input-group mb-5\"\n >\n <div class=\"input-group-prepend w-75\">\n <button\n (click)=\"deleteProcessDocumentDefinition(processDocumentDefinition)\"\n class=\"btn btn-danger\"\n data-placement=\"left\"\n data-toggle=\"tooltip\"\n title=\"Delete this connected process\"\n >\n <i class=\"icon mdi mdi-delete mr-1\"></i>\n </button>\n <input\n [value]=\"\n processDocumentDefinition.processName\n ? processDocumentDefinition.processName\n : '' + ' (' + processDocumentDefinition.id.processDefinitionKey + ')'\n \"\n class=\"form-control\"\n disabled\n type=\"text\"\n />\n </div>\n <div class=\"row mb-2 mt-2\">\n <label\n class=\"custom-control custom-checkbox custom-control-inline pl-6 mr-5\"\n ngbTooltip=\"{{ 'processCaseConnection.processCreatesCaseTooltip' | translate }}\"\n placement=\"bottom\"\n >\n <input\n [checked]=\"processDocumentDefinition.canInitializeDocument\"\n class=\"custom-control-input\"\n disabled\n type=\"checkbox\"\n /><span class=\"custom-control-label custom-control-color\">{{\n 'processCaseConnection.processCreatesCase' | translate\n }}</span>\n </label>\n <label\n class=\"custom-control custom-checkbox custom-control-inline pl-6\"\n ngbTooltip=\"{{ 'processCaseConnection.startableWithinCaseTooltip' | translate }}\"\n placement=\"bottom\"\n >\n <input\n [checked]=\"processDocumentDefinition.startableByUser\"\n class=\"custom-control-input\"\n disabled\n type=\"checkbox\"\n /><span class=\"custom-control-label custom-control-color\">{{\n 'processCaseConnection.startableWithinCase' | translate\n }}</span>\n </label>\n </div>\n </div>\n <div class=\"text-right mt-5 mb-5\">\n <button (click)=\"openDossierConnectModal()\" class=\"btn btn-primary\">\n <i class=\"icon mdi mdi-plus mr-1\"></i\n >{{ 'dossierManagement.connectProcess' | translate }}\n </button>\n </div>\n <valtimo-dossier-management-roles [documentDefinitionName]=\"documentDefinitionName\">\n </valtimo-dossier-management-roles>\n <valtimo-dossier-management-link-process></valtimo-dossier-management-link-process\n ><valtimo-extension\n module=\"dossier-management\"\n page=\"dossier\"\n section=\"right-panel\"\n ></valtimo-extension>\n <valtimo-dossier-management-assignee></valtimo-dossier-management-assignee>\n </div>\n </div>\n </valtimo-widget>\n</ng-template>\n\n<ng-template #buttons>\n <div *ngIf=\"documentDefinition\" class=\"btn-group mt-m3px mb-3 pr-2 float-right\">\n <button (click)=\"downloadDefinition()\" class=\"btn btn-primary btn-space\">\n <i class=\"icon mdi mdi-download mr-1\"></i>\n {{ 'Download document definition' | translate }}\n </button>\n <a id=\"downloadAnchorElement\" style=\"display: none\"></a>\n <button\n (click)=\"openDossierRemoveModal()\"\n *ngIf=\"!this.documentDefinition.readOnly\"\n class=\"btn btn-secondary btn-space mr-0\"\n >\n <i class=\"icon mdi mdi-delete mr-1\"></i>\n {{ 'Remove document definition' | translate }}\n </button>\n </div>\n</ng-template>\n\n<valtimo-dossier-management-connect-modal\n #dossierConnectModal\n (reloadProcessDocumentDefinitions)=\"loadProcessDocumentDefinitions()\"\n></valtimo-dossier-management-connect-modal>\n<valtimo-dossier-management-remove-modal\n #dossierRemoveModal\n></valtimo-dossier-management-remove-modal>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AfterViewInit,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\nimport {MenuService, ModalComponent} from '@valtimo/components';\nimport {DocumentService, DocumentDefinitionCreateRequest} from '@valtimo/document';\nimport {BehaviorSubject, Observable, Subject, Subscription} from 'rxjs';\nimport {switchMap, take, tap} from 'rxjs/operators';\n\n@Component({\n selector: 'valtimo-dossier-management-upload',\n templateUrl: './dossier-management-upload.component.html',\n styleUrls: ['./dossier-management-upload.component.scss'],\n})\nexport class DossierManagementUploadComponent implements AfterViewInit, OnDestroy {\n @Input() show$: Observable<boolean>;\n @Output() definitionUploaded: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('uploadDefinitionModal') modal: ModalComponent;\n\n readonly clear$ = new Subject();\n\n readonly jsonString$ = new BehaviorSubject<string>('');\n\n readonly error$ = new BehaviorSubject<string>('');\n\n readonly disabled$ = new BehaviorSubject<boolean>(false);\n\n private showSubscription: Subscription;\n\n private fileSubscription: Subscription;\n\n private errorSubscription: Subscription;\n\n private readonly file$ = new BehaviorSubject<File>(undefined);\n\n constructor(\n private readonly documentService: DocumentService,\n private readonly translateService: TranslateService,\n private readonly menuService: MenuService\n ) {}\n\n ngAfterViewInit(): void {\n this.openShowSubscription();\n this.openFileSubscription();\n }\n\n ngOnDestroy(): void {\n this.showSubscription.unsubscribe();\n this.fileSubscription.unsubscribe();\n this.closeErrorSubscription();\n }\n\n setFile(file: File): void {\n this.clearError();\n this.file$.next(file);\n }\n\n uploadDefinition(): void {\n this.disable();\n\n this.jsonString$\n .pipe(\n switchMap(jsonString =>\n this.documentService\n .createDocumentDefinition(new DocumentDefinitionCreateRequest(jsonString))\n .pipe(\n tap(\n // success\n () => {\n this.closeErrorSubscription();\n this.clearError();\n this.enable();\n this.hideModal();\n this.menuService.reload();\n this.definitionUploaded.emit();\n },\n // error\n () => {\n this.openErrorSubscription('dropzone.error.invalidDocDef');\n this.enable();\n }\n )\n )\n ),\n take(1)\n )\n .subscribe();\n }\n\n private openErrorSubscription(errorCode: string): void {\n this.closeErrorSubscription();\n this.errorSubscription = this.translateService.stream(errorCode).subscribe(error => {\n this.error$.next(error);\n });\n }\n\n private closeErrorSubscription(): void {\n if (this.errorSubscription) {\n this.errorSubscription.unsubscribe();\n }\n }\n\n private clearError(): void {\n this.error$.next('');\n }\n\n private openFileSubscription(): void {\n this.fileSubscription = this.file$.subscribe(file => {\n if (file) {\n const reader = new FileReader();\n\n reader.onloadend = () => {\n const result = reader.result.toString();\n if (this.stringIsValidJson(result)) {\n this.jsonString$.next(result);\n } else {\n this.clearJsonString();\n this.error$.next(this.translateService.instant('dropzone.error.invalidJson'));\n }\n };\n\n reader.readAsText(file);\n } else {\n this.clearJsonString();\n }\n });\n }\n\n private openShowSubscription(): void {\n this.showSubscription = this.show$.subscribe(show => {\n if (show) {\n this.showModal();\n } else {\n this.hideModal();\n }\n\n this.clearJsonString();\n this.clearError();\n this.clearDropzone();\n });\n }\n\n private clearJsonString(): void {\n this.jsonString$.next('');\n }\n\n private clearDropzone(): void {\n this.clear$.next(null);\n }\n\n private showModal(): void {\n this.modal.show();\n }\n\n private hideModal(): void {\n this.modal.hide();\n }\n\n private stringIsValidJson(string: string) {\n try {\n JSON.parse(string);\n } catch (e) {\n return false;\n }\n return true;\n }\n\n private disable(): void {\n this.disabled$.next(true);\n }\n\n private enable(): void {\n this.disabled$.next(false);\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-modal\n #uploadDefinitionModal\n [title]=\"'Upload document definition' | translate\"\n showFooter=\"true\"\n>\n <div class=\"mt-2\" body>\n <valtimo-dropzone\n [clear$]=\"clear$\"\n (fileSelected)=\"setFile($event)\"\n [disabled]=\"disabled$ | async\"\n [subtitle]=\"'dropzone.jsonDocDef' | translate\"\n [externalError$]=\"error$\"\n [maxFiles]=\"1\"\n ></valtimo-dropzone>\n </div>\n <div footer>\n <ng-container *ngIf=\"(jsonString$ | async) && (error$ | async) === ''; else disabledUpload\">\n <button [disabled]=\"disabled$ | async\" class=\"btn btn-primary\" (click)=\"uploadDefinition()\">\n <i class=\"icon mdi mdi-upload mr-1\"></i>\n {{ 'Upload' | translate }}\n </button>\n </ng-container>\n </div>\n</valtimo-modal>\n\n<ng-template #disabledUpload>\n <button [disabled]=\"true\" class=\"btn btn-primary\">\n <i class=\"icon mdi mdi-upload mr-1\"></i>\n {{ 'Upload' | translate }}\n </button>\n</ng-template>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component} from '@angular/core';\nimport {DocumentService, DocumentDefinition, Page} from '@valtimo/document';\nimport {Router} from '@angular/router';\nimport moment from 'moment';\nimport {BehaviorSubject} from 'rxjs';\n\nmoment.locale(localStorage.getItem('langKey') || '');\n\n@Component({\n selector: 'valtimo-dossier-management-list',\n templateUrl: './dossier-management-list.component.html',\n styleUrls: ['./dossier-management-list.component.scss'],\n})\nexport class DossierManagementListComponent {\n public dossiers: DocumentDefinition[] = [];\n public pagination = {\n collectionSize: 0,\n page: 1,\n size: 10,\n maxPaginationItemSize: 5,\n };\n public pageParam = 0;\n public dossierFields = [\n {key: 'schema.title', label: 'Title'},\n {key: 'createdOn', label: 'Created On'},\n {key: 'readOnly', label: 'Read-only'},\n ];\n\n readonly showModal$ = new BehaviorSubject<boolean>(false);\n\n constructor(private documentService: DocumentService, private router: Router) {}\n\n public paginationClicked(page) {\n this.pageParam = page - 1;\n this.getDocumentDefinitions();\n }\n\n paginationSet() {\n this.getDocumentDefinitions();\n }\n\n redirectToDetails(documentDefinition: DocumentDefinition) {\n this.router.navigate(['/dossier-management/dossier', documentDefinition.id.name]);\n }\n\n private getDocumentDefinitions() {\n this.documentService\n .queryDefinitions({filteredOnRole: false, page: this.pageParam, size: this.pagination.size})\n .subscribe((documentDefinitionPage: Page<DocumentDefinition>) => {\n this.pagination.collectionSize = documentDefinitionPage.totalElements;\n this.dossiers = documentDefinitionPage.content;\n this.dossiers.map((dossier: DocumentDefinition) => {\n dossier.createdOn = moment(dossier.createdOn).format('DD MMM YYYY HH:mm');\n });\n });\n }\n\n showModal() {\n this.showModal$.next(true);\n }\n}\n","<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"btn-group mt-m3px mb-3 float-right\">\n <button class=\"btn btn-secondary btn-space mr-0\" (click)=\"showModal()\">\n <i class=\"icon mdi mdi-upload mr-1\"></i>\n {{ 'Upload document definition' | translate }}\n </button>\n </div>\n <div class=\"clearfix\"></div>\n <valtimo-widget>\n <valtimo-list\n [items]=\"dossiers\"\n [fields]=\"dossierFields\"\n [header]=\"true\"\n [viewMode]=\"true\"\n [isSearchable]=\"true\"\n [pagination]=\"pagination\"\n paginationIdentifier=\"dossierManagementList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet()\"\n (rowClicked)=\"redirectToDetails($event)\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ 'Dossiers' | translate }}</h3>\n <h5 class=\"list-header-description\">{{ 'Overview of all Dossiers' | translate }}</h5>\n </div>\n </valtimo-list>\n </valtimo-widget>\n </div>\n</div>\n\n<valtimo-dossier-management-upload\n [show$]=\"showModal$\"\n (definitionUploaded)=\"paginationSet()\"\n></valtimo-dossier-management-upload>\n","export enum TabEnum {\n CASE = 'case',\n SEARCH = 'search',\n LIST = 'list',\n}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {TabEnum} from './tab.enum';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TabService {\n private _currentTab$ = new BehaviorSubject<TabEnum>(TabEnum.CASE);\n\n public get currentTab$(): Observable<TabEnum> {\n return this._currentTab$.asObservable();\n }\n\n public set currentTab(tab: TabEnum) {\n this._currentTab$.next(tab);\n }\n}\n","/*\n * Copyright 2015-2022 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 {\n AfterViewInit,\n Component,\n EventEmitter,\n OnDestroy,\n OnInit,\n Output,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {DocumentService} from '@valtimo/document';\nimport {\n BehaviorSubject,\n combineLatest,\n filter,\n map,\n Observable,\n Subscription,\n switchMap,\n take,\n tap,\n} from 'rxjs';\nimport {ActivatedRoute} from '@angular/router';\nimport {ListField, ModalComponent} from '@valtimo/components';\nimport {TranslateService} from '@ngx-translate/core';\nimport {\n DefinitionColumn,\n SearchField,\n SearchFieldDataType,\n SearchFieldFieldType,\n SearchFieldMatchType,\n} from '@valtimo/config';\nimport {DomSanitizer, SafeUrl} from '@angular/platform-browser';\nimport {SelectItem} from '@valtimo/user-interface';\n\n@Component({\n selector: 'valtimo-dossier-management-search-fields',\n templateUrl: './dossier-management-search-fields.component.html',\n styleUrls: ['./dossier-management-search-fields.component.scss'],\n})\nexport class DossierManagementSearchFieldsComponent implements OnInit, OnDestroy, AfterViewInit {\n @ViewChild('moveRowButtons') public moveRowButtonsTemplateRef: TemplateRef<any>;\n @ViewChild('searchFieldModal') modal: ModalComponent;\n\n @Output() searchField: EventEmitter<SearchField> = new EventEmitter();\n\n readonly downloadName$ = new BehaviorSubject<string>('');\n readonly downloadUrl$ = new BehaviorSubject<SafeUrl>(undefined);\n readonly disableInput$ = new BehaviorSubject<boolean>(false);\n readonly selectedSearchField$ = new BehaviorSubject<SearchField | null>(null);\n readonly formData$ = new BehaviorSubject<SearchField>(null);\n readonly valid$ = new BehaviorSubject<boolean>(false);\n\n private subscriptions = new Subscription();\n\n private readonly COLUMNS: Array<DefinitionColumn> = [\n {\n viewType: 'string',\n sortable: false,\n propertyName: 'title',\n translationKey: 'title',\n },\n {\n viewType: 'string',\n sortable: false,\n propertyName: 'key',\n translationKey: 'key',\n },\n {\n viewType: 'string',\n sortable: false,\n propertyName: 'path',\n translationKey: 'path',\n },\n {\n viewType: 'string',\n sortable: false,\n propertyName: 'dataType',\n translationKey: 'dataType',\n },\n {\n viewType: 'string',\n sortable: false,\n propertyName: 'fieldType',\n translationKey: 'fieldType',\n },\n {\n viewType: 'string',\n sortable: false,\n propertyName: 'matchType',\n translationKey: 'matchType',\n },\n ];\n\n private readonly DATA_TYPES: Array<SearchFieldDataType> = [\n 'text',\n 'number',\n 'date',\n 'datetime',\n 'boolean',\n ];\n readonly dataTypeItems$: Observable<Array<SelectItem>> = this.translateService.stream('key').pipe(\n map(() =>\n this.DATA_TYPES.map(dataType => ({\n id: dataType,\n text: this.translateService.instant(`searchFields.${dataType}`),\n }))\n )\n );\n\n private readonly FIELD_TYPES: Array<SearchFieldFieldType> = ['single', 'range'];\n readonly fieldTypeItems$: Observable<Array<SelectItem>> = this.translateService\n .stream('key')\n .pipe(\n map(() =>\n this.FIELD_TYPES.map(fieldType => ({\n id: fieldType,\n text: this.translateService.instant(`searchFieldsOverview.${fieldType}`),\n }))\n )\n );\n\n private readonly MATCH_TYPES: Array<SearchFieldMatchType> = ['exact', 'like'];\n readonly matchTypeItems$: Observable<Array<SelectItem>> = this.translateService\n .stream('key')\n .pipe(\n map(() =>\n this.MATCH_TYPES.map(matchType => ({\n id: matchType,\n text: this.translateService.instant(`searchFieldsOverview.${matchType}`),\n }))\n )\n );\n\n readonly fields$: Observable<Array<ListField>> = this.translateService.stream('key').pipe(\n map(() =>\n this.COLUMNS.map(column => ({\n key: column.propertyName,\n label: this.translateService.instant(`searchFieldsOverview.${column.translationKey}`),\n sortable: column.sortable,\n ...(column.viewType && {viewType: column.viewType}),\n ...(column.enum && {enum: column.enum}),\n }))\n )\n );\n\n readonly documentDefinitionName$: Observable<string> = this.route.params.pipe(\n map(params => params.name || ''),\n filter(docDefName => !!docDefName)\n );\n\n private cachedSearchFields!: Array<SearchField>;\n searchFieldActionTypeIsAdd: boolean;\n loadingSearchFields = true;\n showSearchFieldsForm = false;\n\n private readonly refreshSearchFields$ = new BehaviorSubject<null>(null);\n\n private readonly searchFields$: Observable<Array<SearchField>> = combineLatest([\n this.documentDefinitionName$,\n this.refreshSearchFields$,\n ]).pipe(\n switchMap(([documentDefinitionName]) =>\n this.documentService.getDocumentSearchFields(documentDefinitionName)\n ),\n tap(searchFields => {\n this.documentDefinitionName$.pipe(take(1)).subscribe(documentDefinitionName => {\n if (searchFields && Array.isArray(searchFields) && searchFields.length > 0) {\n this.setDownload(documentDefinitionName, searchFields);\n }\n });\n }),\n tap(searchFields => {\n this.cachedSearchFields = searchFields;\n this.loadingSearchFields = false;\n })\n );\n\n readonly translatedSearchFields$: Observable<Array<SearchField>> = combineLatest([\n this.searchFields$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([searchFields]) =>\n searchFields.map(searchField => ({\n ...searchField,\n title: searchField.title ? searchField.title : '',\n dataType: this.translateService.instant(`searchFields.${searchField.dataType}`),\n matchType: this.translateService.instant(`searchFieldsOverview.${searchField.matchType}`),\n fieldType: this.translateService.instant(`searchFieldsOverview.${searchField.fieldType}`),\n }))\n )\n );\n\n constructor(\n private readonly documentService: DocumentService,\n private readonly route: ActivatedRoute,\n private readonly translateService: TranslateService,\n private readonly sanitizer: DomSanitizer\n ) {}\n\n ngOnInit(): void {\n this.openSelectedSearchFieldSubscription();\n }\n\n ngAfterViewInit(): void {\n this.openModalShowingSubscription();\n }\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n\n searchFieldClicked(searchField: SearchField, searchFieldActionTypeIsAdd: boolean): void {\n this.disableInput$.pipe(take(1)).subscribe(inputDisabled => {\n if (!inputDisabled) {\n this.searchFieldActionTypeIsAdd = searchFieldActionTypeIsAdd;\n const searchFieldToSelect = this.cachedSearchFields.find(\n field => field.key === searchField.key\n );\n this.selectedSearchField$.next(searchFieldToSelect);\n }\n });\n }\n\n formValueChange(data: SearchField): void {\n const containsAllValues = !!(\n data.key &&\n data.dataType &&\n data.fieldType &&\n data.matchType &&\n data.path\n );\n const keyIsUnique =\n !this.searchFieldActionTypeIsAdd ||\n this.cachedSearchFields.findIndex(field => field.key === data.key) === -1;\n\n this.formData$.next(data);\n this.valid$.next(containsAllValues && keyIsUnique);\n }\n\n moveRow(\n searchFieldRowIndex: number,\n moveUp: boolean,\n clickEvent: MouseEvent,\n documentDefinitionName: string\n ): void {\n const searchFields = [...this.cachedSearchFields];\n const searchFieldRow = searchFields[searchFieldRowIndex];\n\n clickEvent.stopPropagation();\n\n const searchFieldIndex = searchFields.findIndex(field => field.key === searchFieldRow.key);\n const foundSearchField = {...searchFields[searchFieldIndex]};\n const filteredSearchFields = searchFields.filter(field => field.key !== searchFieldRow.key);\n const multipleSearchFields = searchFields.length > 1;\n\n if (multipleSearchFields && moveUp && searchFieldIndex > 0) {\n const searchFieldBeforeKey = `${searchFields[searchFieldIndex - 1].key}`;\n const searchFieldBeforeIndex = filteredSearchFields.findIndex(\n field => field.key === searchFieldBeforeKey\n );\n filteredSearchFields.splice(searchFieldBeforeIndex, 0, foundSearchField);\n this.updateSearchFields(documentDefinitionName, filteredSearchFields);\n } else if (multipleSearchFields && !moveUp && searchFieldIndex < searchFields.length) {\n const searchFieldAfterKey = `${searchFields[searchFieldIndex + 1].key}`;\n const searchFieldAfterIndex = filteredSearchFields.findIndex(\n field => field.key === searchFieldAfterKey\n );\n filteredSearchFields.splice(searchFieldAfterIndex + 1, 0, foundSearchField);\n this.updateSearchFields(documentDefinitionName, filteredSearchFields);\n }\n }\n\n deleteSelectedSearchField(\n documentDefinitionName: string,\n selectedSearchField: SearchField\n ): void {\n this.disableInput();\n\n this.documentService\n .deleteDocumentSearch(documentDefinitionName, selectedSearchField.key)\n .subscribe(\n () => {\n this.enableInput();\n this.hideModal();\n this.refreshSearchFields();\n },\n () => {\n this.enableInput();\n }\n );\n }\n\n saveSearchField(documentDefinitionName: string): void {\n this.disableInput();\n\n this.formData$.pipe(take(1)).subscribe(formData => {\n if (this.searchFieldActionTypeIsAdd) {\n this.documentService.postDocumentSearch(documentDefinitionName, formData).subscribe(\n () => {\n this.enableInput();\n this.hideModal();\n this.refreshSearchFields();\n },\n () => {\n this.enableInput();\n }\n );\n } else {\n const newFields = [...this.cachedSearchFields];\n const indexToReplace = newFields.findIndex(field => field.key === formData.key);\n const filteredFields = newFields.filter(field => field.key !== formData.key);\n\n filteredFields.splice(indexToReplace, 0, formData);\n this.updateSearchFields(documentDefinitionName, filteredFields);\n }\n });\n }\n\n updateSearchFields(documentDefinitionName: string, newSearchFields: Array<SearchField>): void {\n this.disableInput();\n\n this.documentService.putDocumentSearch(documentDefinitionName, newSearchFields).subscribe(\n () => {\n this.enableInput();\n this.hideModal();\n this.refreshSearchFields();\n },\n () => {\n this.enableInput();\n }\n );\n }\n\n private openSelectedSearchFieldSubscription(): void {\n this.subscriptions.add(\n this.selectedSearchField$.subscribe(() => {\n this.showModal();\n })\n );\n }\n\n private openModalShowingSubscription(): void {\n this.subscriptions.add(\n this.modal.modalShowing$.subscribe(modalShowing => {\n if (modalShowing) {\n this.showSearchFieldsForm = true;\n } else {\n setTimeout(() => {\n this.showSearchFieldsForm = false;\n }, 150);\n }\n })\n );\n }\n\n private setDownload(documentDefinitionName: string, searchFields: Array<SearchField>): void {\n this.downloadName$.next(`${documentDefinitionName}.json`);\n this.downloadUrl$.next(\n this.sanitizer.bypassSecurityTrustUrl(\n 'data:text/json;charset=UTF-8,' +\n encodeURIComponent(JSON.stringify({searchFields}, null, 2))\n )\n );\n }\n\n private disableInput(): void {\n this.disableInput$.next(true);\n }\n\n private enableInput(): void {\n this.disableInput$.next(false);\n }\n\n private showModal(): void {\n this.modal?.show();\n }\n\n private hideModal(): void {\n this.modal?.hide();\n }\n\n private refreshSearchFields(): void {\n this.refreshSearchFields$.next(null);\n }\n}\n","<!--\n ~ Copyright 2015-2022 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n searchFields: translatedSearchFields$ | async,\n fields: fields$ | async,\n downloadUrl: downloadUrl$ | async,\n downloadName: downloadName$ | async,\n documentDefinitionName: documentDefinitionName$ | async,\n valid: valid$ | async,\n disableInput: disableInput$ | async\n } as obs\"\n>\n <ng-container *ngTemplateOutlet=\"buttons; context: {obs: obs}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"modal; context: {obs: obs}\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <div class=\"btn-group mt-m3px mb-3 pr-2 float-right\">\n <a\n class=\"btn btn-secondary btn-space\"\n [href]=\"obs.downloadUrl\"\n [download]=\"obs.downloadName\"\n [ngClass]=\"{\n disabled:\n !obs.downloadUrl || !obs.downloadName || obs.searchFields.length <= 0 || obs.disableInput\n }\"\n >\n <i class=\"icon mdi mdi-download mr-1\"></i>\n {{ 'searchFields.downloadButtonText' | translate }}\n </a>\n <button\n (click)=\"searchFieldClicked($event, true)\"\n class=\"btn btn-primary btn-space\"\n [ngClass]=\"{disabled: loadingSearchFields || obs.disableInput}\"\n >\n <i class=\"icon mdi mdi-plus mr-1\"></i>\n {{ 'searchFieldsOverview.addRow' | translate }}\n </button>\n </div>\n</ng-template>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-list\n [items]=\"obs.searchFields\"\n [fields]=\"obs.fields\"\n [viewMode]=\"false\"\n [header]=\"false\"\n (rowClicked)=\"searchFieldClicked($event, false)\"\n *ngIf=\"obs.searchFields; else loading\"\n [lastColumnTemplate]=\"moveRowButtonsTemplateRef\"\n >\n </valtimo-list>\n</ng-template>\n\n<ng-template #moveRowButtons let-index=\"index\" let-length=\"length\">\n <div\n class=\"move-row-buttons\"\n *ngIf=\"{\n disableInput: disableInput$ | async,\n documentDefinitionName: documentDefinitionName$ | async\n } as obs\"\n >\n <i\n class=\"mdi mdi-arrow-up-bold btn btn-outline-primary mr-1\"\n (click)=\"moveRow(index, true, $event, obs.documentDefinitionName)\"\n [ngClass]=\"{'disabled disabled-move-row-button': index === 0 || obs.disableInput}\"\n ></i>\n <i\n class=\"mdi mdi-arrow-down-bold btn btn-outline-secondary\"\n (click)=\"moveRow(index, false, $event, obs.documentDefinitionName)\"\n [ngClass]=\"{'disabled disabled-move-row-button': index === length - 1 || obs.disableInput}\"\n ></i>\n </div>\n</ng-template>\n\n<ng-template #modal let-obs=\"obs\">\n <valtimo-modal\n #searchFieldModal\n elementId=\"searchFieldModal\"\n [title]=\"\n searchFieldActionTypeIsAdd\n ? ('searchFieldsOverview.addRow' | translate)\n : ('searchFieldsOverview.edit' | translate)\n \"\n [showFooter]=\"true\"\n >\n <div body class=\"mt-2\">\n <v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"showSearchFieldsForm && {searchField: selectedSearchField$ | async} as searchObs\"\n >\n <v-input\n name=\"title\"\n [title]=\"'searchFieldsOverview.title' | translate\"\n [margin]=\"true\"\n [defaultValue]=\"searchObs.searchField?.title\"\n [disabled]=\"obs.disableInput\"\n [required]=\"false\"\n [fullWidth]=\"true\"\n [tooltip]=\"'searchFieldsOverviewTooltips.title' | translate\"\n >\n </v-input>\n <v-input\n name=\"key\"\n [title]=\"'searchFieldsOverview.key' | translate\"\n [margin]=\"true\"\n [defaultValue]=\"searchObs.searchField?.key\"\n [disabled]=\"obs.disableInput || !searchFieldActionTypeIsAdd\"\n [required]=\"true\"\n [widthPx]=\"200\"\n [tooltip]=\"'searchFieldsOverviewTooltips.key' | translate\"\n >\n </v-input>\n <v-input\n name=\"path\"\n [title]=\"'searchFieldsOverview.path' | translate\"\n [margin]=\"true\"\n [defaultValue]=\"searchObs.searchField?.path\"\n [disabled]=\"obs.disableInput\"\n [required]=\"true\"\n [fullWidth]=\"true\"\n [tooltip]=\"'searchFieldsOverviewTooltips.path' | translate\"\n >\n </v-input>\n <v-select\n *ngIf=\"dataTypeItems$ | async as dataTypeItems\"\n [items]=\"dataTypeItems\"\n [placeholder]=\"'searchFieldsOverview.searchFieldPlaceholder' | translate\"\n [title]=\"'searchFieldsOverview.dataType' | translate\"\n [disabled]=\"obs.disableInput\"\n [margin]=\"true\"\n [required]=\"true\"\n name=\"dataType\"\n [defaultSelectionId]=\"searchObs.searchField?.dataType\"\n [widthInPx]=\"200\"\n [tooltip]=\"'searchFieldsOverviewTooltips.dataType' | translate\"\n ></v-select>\n <v-select\n *ngIf=\"fieldTypeItems$ | async as fieldTypeItems\"\n [items]=\"fieldTypeItems\"\n [placeholder]=\"'searchFieldsOverview.searchFieldPlaceholder' | translate\"\n [title]=\"'searchFieldsOverview.fieldType' | translate\"\n [disabled]=\"obs.disableInput\"\n [margin]=\"true\"\n [required]=\"true\"\n name=\"fieldType\"\n [defaultSelectionId]=\"searchObs.searchField?.fieldType\"\n [widthInPx]=\"200\"\n [tooltip]=\"'searchFieldsOverviewTooltips.fieldType' | translate\"\n ></v-select>\n <v-select\n *ngIf=\"matchTypeItems$ | async as matchTypeItems\"\n [items]=\"matchTypeItems\"\n [placeholder]=\"'searchFieldsOverview.searchFieldPlaceholder' | translate\"\n [title]=\"'searchFieldsOverview.matchType' | translate\"\n [disabled]=\"obs.disableInput\"\n [margin]=\"true\"\n [required]=\"true\"\n name=\"matchType\"\n [defaultSelectionId]=\"searchObs.searchField?.matchType\"\n [widthInPx]=\"200\"\n [tooltip]=\"'searchFieldsOverviewTooltips.matchType' | translate\"\n ></v-select>\n </v-form>\n </div>\n <div footer>\n <div class=\"col-12 p-0\">\n <ng-container *ngTemplateOutlet=\"buttonsFooterModal; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n </valtimo-modal>\n</ng-template>\n\n<ng-template #buttonsFooterModal let-obs=\"obs\">\n <div class=\"buttons-container\" *ngIf=\"{searchField: selectedSearchField$ | async} as searchObs\">\n <div class=\"right-buttons\">\n <button\n class=\"btn btn-space btn-secondary\"\n *ngIf=\"!searchFieldActionTypeIsAdd\"\n [disabled]=\"obs.disableInput\"\n (click)=\"deleteSelectedSearchField(obs.documentDefinitionName, searchObs.searchField)\"\n >\n {{ 'searchFieldsOverview.delete' | translate }}\n </button>\n <button\n (click)=\"saveSearchField(obs.documentDefinitionName)\"\n type=\"button\"\n class=\"btn btn-primary btn-space mr-0\"\n [disabled]=\"obs.disableInput || !obs.valid\"\n >\n {{ 'searchFieldsOverview.submit' | translate }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"mb-3\">\n <valtimo-spinner></valtimo-spinner>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component} from '@angular/core';\nimport {ListField} from '@valtimo/components';\nimport {DefinitionColumn} from '@valtimo/config';\nimport {filter, map, Observable, switchMap} from 'rxjs';\nimport {CaseListColumnView, DisplayTypeParameters, DocumentService} from '@valtimo/document';\nimport {ActivatedRoute} from '@angular/router';\nimport {TranslateService} from '@ngx-translate/core';\n\n@Component({\n selector: 'valtimo-dossier-management-list-columns',\n templateUrl: './dossier-management-list-columns.component.html',\n styleUrls: ['./dossier-management-list-columns.component.css'],\n})\nexport class DossierManagementListColumnsComponent {\n private readonly COLUMNS: Array<DefinitionColumn> = [\n {\n viewType: 'string',\n sortable: false,\n propertyName: 'title',\n translationKey: 'title',\n },\n {\n viewType: 'string',\n sortable: false,\n propertyName: 'key',\n translationKey: 'key',\n },\n {\n viewType: 'string',\n sortable: false,\n propertyName: 'path',\n translationKey: 'path',\n },\n {\n viewType: 'string',\n sortable: false,\n propertyName: 'displayType',\n translationKey: 'displayType',\n },\n {\n viewType: 'string',\n sortable: false,\n propertyName: 'displayTypeParameters',\n translationKey: 'displayTypeParameters',\n },\n {\n viewType: 'string',\n sortable: false,\n propertyName: 'sortable',\n translationKey: 'sortable',\n },\n {\n viewType: 'string',\n sortable: false,\n propertyName: 'defaultSort',\n translationKey: 'defaultSort',\n },\n ];\n\n readonly fields$: Observable<Array<ListField>> = this.translateService.stream('key').pipe(\n map(() =>\n this.COLUMNS.map(column => ({\n key: column.propertyName,\n label: this.translateService.instant(`listColumn.${column.translationKey}`),\n sortable: column.sortable,\n ...(column.viewType && {viewType: column.viewType}),\n ...(column.enum && {enum: column.enum}),\n }))\n )\n );\n\n readonly documentDefinitionName$: Observable<string> = this.route.params.pipe(\n map(params => params.name || ''),\n filter(docDefName => !!docDefName)\n );\n\n readonly caseListColumns$: Observable<Array<CaseListColumnView>> = this.translateService\n .stream('key')\n .pipe(\n switchMap(() => this.documentDefinitionName$),\n switchMap(documentDefinitionName => this.documentService.getCaseList(documentDefinitionName)),\n map(columns =>\n columns.map(column => ({\n ...column,\n title: column.title || '-',\n sortable: column.sortable\n ? this.translateService.instant('listColumn.sortableYes')\n : this.translateService.instant('listColumn.sortableNo'),\n defaultSort:\n (column.defaultSort === 'ASC' &&\n this.translateService.instant('listColumn.sortableAsc')) ||\n (column.defaultSort === 'DESC' &&\n this.translateService.instant('listColumn.sortableDesc')) ||\n '-',\n displayType: this.translateService.instant(\n `listColumnDisplayType.${column?.displayType?.type}`\n ),\n displayTypeParameters: this.getDisplayTypeParametersView(\n column.displayType.displayTypeParameters\n ),\n }))\n )\n );\n\n constructor(\n private readonly documentService: DocumentService,\n private readonly route: ActivatedRoute,\n private readonly translateService: TranslateService\n ) {}\n\n private getDisplayTypeParametersView(displayTypeParameters: DisplayTypeParameters): string {\n if (displayTypeParameters?.dateFormat) {\n return displayTypeParameters.dateFormat;\n } else if (displayTypeParameters?.enum) {\n return Object.keys(displayTypeParameters.enum).reduce((acc, curr) => {\n const keyValuePairString = `${curr}: ${displayTypeParameters.enum[curr]}`;\n if (!acc) {\n return `${keyValuePairString}`;\n } else {\n return `${acc}, ${keyValuePairString}`;\n }\n }, '');\n } else {\n return '-';\n }\n }\n}\n","<!--\n ~ Copyright 2015-2022 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n caseListColumn: caseListColumns$ | async,\n fields: fields$ | async,\n documentDefinitionName: documentDefinitionName$ | async\n } as obs\"\n>\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n</ng-container>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-list\n [items]=\"obs.caseListColumn\"\n [fields]=\"obs.fields\"\n [viewMode]=\"false\"\n [header]=\"false\"\n *ngIf=\"obs.caseListColumn; else loading\"\n >\n </valtimo-list>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"mb-3\">\n <valtimo-spinner></valtimo-spinner>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {DocumentService} from '@valtimo/document';\nimport {filter, map, Observable, Subscription, switchMap} from 'rxjs';\nimport {ConfigService} from '@valtimo/config';\nimport {TabService} from '../tab.service';\nimport {TabEnum} from '../tab.enum';\n\n@Component({\n selector: 'valtimo-dossier-management-detail-container',\n templateUrl: './dossier-management-detail-container.component.html',\n styleUrls: ['./dossier-management-detail-container.component.css'],\n})\nexport class DossierManagementDetailContainerComponent implements OnInit, OnDestroy {\n public currentTab: TabEnum;\n public caseListColumn!: boolean;\n\n private tabSubscription: Subscription;\n\n readonly TabEnum = TabEnum;\n\n readonly documentDefinitionName$: Observable<string> = this.route.params.pipe(\n map(params => params.name || ''),\n filter(docDefName => !!docDefName)\n );\n\n readonly documentDefinition$ = this.documentDefinitionName$.pipe(\n switchMap(documentDefinitionName =>\n this.documentService.getDocumentDefinition(documentDefinitionName)\n )\n );\n\n constructor(\n private readonly documentService: DocumentService,\n private readonly route: ActivatedRoute,\n private readonly configService: ConfigService,\n private readonly tabService: TabService\n ) {\n this.caseListColumn = this.configService.config.featureToggles.caseListColumn;\n }\n\n ngOnInit(): void {\n this.openCurrentTabSubscription();\n }\n\n displayBodyComponent(tab: TabEnum): void {\n this.tabService.currentTab = tab;\n }\n\n openCurrentTabSubscription(): void {\n this.tabSubscription = this.tabService.currentTab$.subscribe(\n value => (this.currentTab = value)\n );\n }\n\n ngOnDestroy(): void {\n this.tabService.currentTab = TabEnum.CASE;\n this.tabSubscription?.unsubscribe();\n }\n}\n","<!--\n ~ Copyright 2015-2022 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget>\n <ng-container *ngTemplateOutlet=\"title\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tabContent\"></ng-container>\n </valtimo-widget>\n </div>\n </div>\n</div>\n\n<ng-template #title>\n <div class=\"bg-light dossier-header\" *ngIf=\"documentDefinition$ | async as documentDefinition\">\n <h3 class=\"dossier-title\">\n {{ documentDefinition.schema.title }}\n <div *ngIf=\"documentDefinition.readOnly\" class=\"pull-right\">\n <span class=\"badge badge-pill badge-info increase-size\">{{\n 'dossierManagement.readonly' | translate\n }}</span>\n </div>\n </h3>\n </div>\n</ng-template>\n\n<ng-template #tabs>\n <ul class=\"nav nav-tabs\">\n <li class=\"nav-item\">\n <a\n id=\"case-tab\"\n class=\"nav-link clickable active\"\n data-toggle=\"tab\"\n (click)=\"displayBodyComponent(TabEnum.CASE)\"\n >\n {{ 'dossierManagement.tabs.cases' | translate }}\n </a>\n </li>\n <li class=\"nav-item\">\n <a\n id=\"search-tab\"\n class=\"nav-link clickable\"\n data-toggle=\"tab\"\n (click)=\"displayBodyComponent(TabEnum.SEARCH)\"\n >\n {{ 'dossierManagement.tabs.searchFields' | translate }}\n </a>\n </li>\n <li class=\"nav-item\" *ngIf=\"caseListColumn\">\n <a\n id=\"list-tab\"\n class=\"nav-link clickable\"\n data-toggle=\"tab\"\n (click)=\"displayBodyComponent(TabEnum.LIST)\"\n >\n {{ 'dossierManagement.tabs.listColumns' | translate }}\n </a>\n </li>\n </ul>\n</ng-template>\n\n<ng-template #tabContent>\n <div class=\"pt-3 bg-white position-relative tab-container\">\n <div *ngIf=\"currentTab && currentTab === TabEnum.CASE\">\n <valtimo-dossier-management-detail></valtimo-dossier-management-detail>\n </div>\n <div *ngIf=\"currentTab && currentTab === TabEnum.SEARCH\">\n <valtimo-dossier-management-search-fields></valtimo-dossier-management-search-fields>\n </div>\n <div *ngIf=\"currentTab && currentTab === TabEnum.LIST\">\n <valtimo-dossier-management-list-columns></valtimo-dossier-management-list-columns>\n </div>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {AuthGuardService} from '@valtimo/security';\nimport {DossierManagementListComponent} from './dossier-management-list/dossier-management-list.component';\nimport {ROLE_ADMIN} from '@valtimo/config';\nimport {DossierManagementDetailContainerComponent} from './dossier-management-detail-container/dossier-management-detail-container.component';\n\nconst routes: Routes = [\n {\n path: 'dossier-management',\n component: DossierManagementListComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Dossiers', roles: [ROLE_ADMIN]},\n },\n {\n path: 'dossier-management/dossier/:name',\n component: DossierManagementDetailContainerComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Dossier details', roles: [ROLE_ADMIN]},\n },\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule],\n declarations: [],\n})\nexport class DossierManagementRoutingModule {}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {\n DropzoneModule,\n ListModule,\n ModalModule,\n MultiselectDropdownModule,\n SpinnerModule,\n WidgetModule,\n} from '@valtimo/components';\nimport {ConfigModule} from '@valtimo/config';\nimport {DossierManagementConnectModalComponent} from './dossier-management-connect-modal/dossier-management-connect-modal.component';\nimport {DossierManagementDetailComponent} from './dossier-management-detail-container/tabs/dossier-management-detail/dossier-management-detail.component';\nimport {DossierManagementListComponent} from './dossier-management-list/dossier-management-list.component';\nimport {DossierManagementRoutingModule} from './dossier-management-routing.module';\nimport {DossierManagementUploadComponent} from './dossier-management-upload/dossier-management-upload.component';\nimport {DossierManagementRemoveModalComponent} from './dossier-management-remove-modal/dossier-management-remove-modal.component';\nimport {NgbTooltipModule} from '@ng-bootstrap/ng-bootstrap';\nimport {DossierManagementRolesComponent} from './dossier-management-roles/dossier-management-roles.component';\nimport {DossierManagementLinkProcessComponent} from './dossier-management-link-process/dossier-management-link-process.component';\nimport {ParagraphModule, SelectModule, InputModule, FormModule} from '@valtimo/user-interface';\nimport {DossierManagementSearchFieldsComponent} from './dossier-management-detail-container/tabs/dossier-management-search-fields/dossier-management-search-fields.component';\nimport {DossierManagementDetailContainerComponent} from './dossier-management-detail-container/dossier-management-detail-container.component';\nimport {DossierManagementAssigneeComponent} from './dossier-management-assignee/dossier-management-assignee.component';\nimport {DossierManagementListColumnsComponent} from './dossier-management-detail-container/tabs/dossier-management-list-columns/dossier-management-list-columns.component';\n\n@NgModule({\n declarations: [\n DossierManagementListComponent,\n DossierManagementDetailComponent,\n DossierManagementConnectModalComponent,\n DossierManagementRemoveModalComponent,\n DossierManagementUploadComponent,\n DossierManagementRolesComponent,\n DossierManagementLinkProcessComponent,\n DossierManagementSearchFieldsComponent,\n DossierManagementDetailContainerComponent,\n DossierManagementAssigneeComponent,\n DossierManagementListColumnsComponent,\n ],\n imports: [\n CommonModule,\n WidgetModule,\n DropzoneModule,\n ListModule,\n DossierManagementRoutingModule,\n FormsModule,\n TranslateModule,\n ModalModule,\n ConfigModule,\n NgbTooltipModule,\n MultiselectDropdownModule,\n ParagraphModule,\n SelectModule,\n SpinnerModule,\n InputModule,\n SelectModule,\n FormModule,\n ],\n exports: [],\n})\nexport class DossierManagementModule {}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of dossier-management\n */\n\nexport * from './lib/dossier-management.module';\nexport * from './lib/dossier-management-list/dossier-management-list.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i6","i8","i1","i3","i4","i5","i7","i7.DossierManagementConnectModalComponent","i8.DossierManagementRemoveModalComponent","i9.DossierManagementRolesComponent","i10.DossierManagementLinkProcessComponent","i11.DossierManagementAssigneeComponent","i12","switchMap","i4.DossierManagementUploadComponent","tap","take","i4.TabService","i7.DossierManagementDetailComponent","i8.DossierManagementSearchFieldsComponent","i9.DossierManagementListColumnsComponent","i10"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;AAcG;MAkBU,sCAAsC,CAAA;AAUjD,IAAA,WAAA,CACU,cAA8B,EAC9B,eAAgC,EAChC,cAA6B,EAAA;QAF7B,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAe;QAZhC,IAAkB,CAAA,kBAAA,GAA8B,IAAI,CAAC;QAErD,IAA4B,CAAA,4BAAA,GAA6B,IAAI,CAAC;QAC9D,IAAgC,CAAA,gCAAA,GAAG,IAAI,CAAC;QACxC,IAA2C,CAAA,2CAAA,GAAG,KAAK,CAAC;QACpD,IAA+B,CAAA,+BAAA,GAAQ,EAAE,CAAC;AAChC,QAAA,IAAA,CAAA,gCAAgC,GAAG,IAAI,YAAY,EAAO,CAAC;KAOxE;IAEJ,8BAA8B,GAAA;AAC5B,QAAA,IAAI,CAAC,+BAA+B,GAAG,EAAE,CAAC;AAC1C,QAAA,IAAI,CAAC,eAAe;aACjB,8BAA8B,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,IAAI,CAAC;AAC/D,aAAA,SAAS,CAAC,CAAC,0BAAuD,KAAI;AACrE,YAAA,0BAA0B,CAAC,OAAO,CAChC,CAAC,yBAAoD,KAAI;gBACvD,IAAI,CAAC,+BAA+B,CAClC,yBAAyB,CAAC,EAAE,CAAC,oBAAoB,CAClD,GAAG,IAAI,CAAC;AACX,aAAC,CACF,CAAC;AACJ,SAAC,CAAC,CAAC;KACN;IAED,sBAAsB,GAAA;AACpB,QAAA,IAAI,CAAC,cAAc;AAChB,aAAA,qBAAqB,EAAE;AACvB,aAAA,SAAS,CAAC,CAAC,kBAAuC,KAAI;AACrD,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;AAC/C,SAAC,CAAC,CAAC;KACN;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;AAED,IAAA,SAAS,CAAC,OAA2B,EAAA;AACnC,QAAA,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC;AAClC,QAAA,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC;AACzC,QAAA,IAAI,CAAC,gCAAgC,GAAG,IAAI,CAAC;AAC7C,QAAA,IAAI,CAAC,2CAA2C,GAAG,KAAK,CAAC;QACzD,IAAI,CAAC,8BAA8B,EAAE,CAAC;AACtC,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;KACnB;IAED,MAAM,GAAA;AACJ,QAAA,MAAM,OAAO,GAAqC;YAChD,qBAAqB,EAAE,IAAI,CAAC,gCAAgC;YAC5D,eAAe,EAAE,IAAI,CAAC,2CAA2C;AACjE,YAAA,sBAAsB,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,IAAI;AACvD,YAAA,oBAAoB,EAAE,IAAI,CAAC,4BAA4B,CAAC,GAAG;SAC5D,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,+BAA+B,CAAC,OAAO,CAAC,CAAC,SAAS,CACrE,MAAK;AACH,YAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,oDAAoD,CAAC,CAAC;AAClF,YAAA,IAAI,CAAC,gCAAgC,CAAC,IAAI,EAAE,CAAC;SAC9C,EACD,GAAG,IAAG;AACJ,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;AAC7E,SAAC,CACF,CAAC;KACH;;oIApEU,sCAAsC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtC,sCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sCAAsC,iRChCnD,ypGAmFA,EAAA,MAAA,EAAA,CAAA,goBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,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,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FDnDa,sCAAsC,EAAA,UAAA,EAAA,CAAA;kBALlD,SAAS;+BACE,0CAA0C,EAAA,QAAA,EAAA,ypGAAA,EAAA,MAAA,EAAA,CAAA,goBAAA,CAAA,EAAA,CAAA;iKAWnC,gCAAgC,EAAA,CAAA;sBAAhD,MAAM;gBAC2B,KAAK,EAAA,CAAA;sBAAtC,SAAS;uBAAC,qBAAqB,CAAA;;;AExClC;;;;;;;;;;;;;;AAcG;MAkBU,qCAAqC,CAAA;IAKhD,WACU,CAAA,eAAgC,EAChC,cAA6B,EAC7B,MAAc,EACd,gBAAkC,EAClC,WAAwB,EAAA;QAJxB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAe;QAC7B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAT3B,IAAkB,CAAA,kBAAA,GAA8B,IAAI,CAAC;QACrD,IAAM,CAAA,MAAA,GAAa,EAAE,CAAC;KASzB;AAEJ,IAAA,SAAS,CAAC,kBAAsC,EAAA;AAC9C,QAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;AAC7C,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;KACnB;IAED,wBAAwB,GAAA;AACtB,QAAA,IAAI,CAAC,eAAe,CAAC,wBAAwB,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,CACtF,MAAK;AACH,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC;AAC9C,YAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CACzB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,oCAAoC,CAAC,CACpE,CAAC;AACJ,SAAC,EACD,CAAC,MAAwC,KAAI;AAC3C,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC9B,SAAC,CACF,CAAC;KACH;;mIA/BU,qCAAqC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAH,EAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAI,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArC,qCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qCAAqC,uMChClD,+rDA6CA,EAAA,MAAA,EAAA,CAAA,goBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,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,EAAAK,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FDba,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBALjD,SAAS;+BACE,yCAAyC,EAAA,QAAA,EAAA,+rDAAA,EAAA,MAAA,EAAA,CAAA,goBAAA,CAAA,EAAA,CAAA;sNAOP,KAAK,EAAA,CAAA;sBAAhD,SAAS;uBAAC,+BAA+B,CAAA;;;AEnC5C;;;;;;;;;;;;;;AAcG;MAeU,+BAA+B,CAAA;AAe1C,IAAA,WAAA,CACmB,gBAAkC,EAClC,eAAgC,EAChC,YAA0B,EAC1B,gBAAkC,EAAA;QAHlC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAC1B,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AAjB9C,QAAA,IAAA,CAAA,gBAAgB,GAAsB;AAC3C,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,aAAa,EAAE,YAAY;AAC3B,YAAA,eAAe,EAAE,cAAc;AAC/B,YAAA,cAAc,EAAE,CAAC;AACjB,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,iBAAiB,EAAE,IAAI;SACxB,CAAC;AACK,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,eAAe,CAAmB,SAAS,CAAC,CAAC;AACzD,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,eAAe,CAAgB,SAAS,CAAC,CAAC;KAOpE;IAEJ,QAAQ,GAAA;QACN,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;IAED,YAAY,GAAA;QACV,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,MAAM,IAAG;YAC/C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC3B,SAAC,CAAC,CAAC;KACJ;IAED,iBAAiB,GAAA;QACf,IAAI,IAAI,CAAC,sBAAsB,EAAE;AAC/B,YAAA,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,SAAS,CAC1E,MAAM,IAAG;AACP,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACpC,EACD,GAAG,IAAG;AACJ,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CACvB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAC3B,+DAA+D,CAChE,CACF,CAAC;AACJ,aAAC,CACF,CAAC;AACH,SAAA;KACF;AAED,IAAA,eAAe,CAAC,IAAS,EAAA;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE7C,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE;YAC/C,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,IAAI,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC,SAAS,CACpF,MAAK;AACH,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CACvB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,qDAAqD,CAAC,CACrF,CAAC;AACF,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACnC,EACD,GAAG,IAAG;AACJ,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CACrB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,uDAAuD,CAAC,CACvF,CAAC;AACJ,SAAC,CACF,CAAC;KACH;AAED;;;;;AAKG;AACK,IAAA,mBAAmB,CAAC,IAAI,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,IAAG;AACnB,YAAA,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;AAC1B,gBAAA,OAAO,EAAE,CAAC;AACX,aAAA;YAED,OAAO,EAAE,CAAC,IAAI,CAAC;AACjB,SAAC,CAAC,CAAC;KACJ;;6HArFU,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,IAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAH,IAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAI,IAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA/B,+BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,+BAA+B,sIC7B5C,mtCA2BA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,OAAA,EAAA,aAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,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,EAAAD,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FDEa,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAL3C,SAAS;+BACE,kCAAkC,EAAA,QAAA,EAAA,mtCAAA,EAAA,CAAA;uMAK5B,sBAAsB,EAAA,CAAA;sBAArC,KAAK;;;AE9BR;;;;;;;;;;;;;;AAcG;MAcU,qCAAqC,CAAA;AAWhD,IAAA,WAAA,CACmB,aAA4B,EAC5B,cAA8B,EAC9B,KAAqB,EACrB,eAAgC,EAAA;QAHhC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QACrB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAbnD,IAAsB,CAAA,sBAAA,GAAkB,IAAI,CAAC;AAEpC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,eAAe,CAAS,EAAE,CAAC,CAAC;QAC/C,IAAa,CAAA,aAAA,GAAkC,IAAI,CAAC,cAAc;AACxE,aAAA,qBAAqB,EAAE;AACvB,aAAA,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,KAAK,EAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,GAAG,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpF,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AAQvD,QAAA,IAAI,CAAC,gCAAgC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC5D,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;KACxE;IAED,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,2BAA2B,EAAE;YACpC,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC5B,SAAA;KACF;AAED,IAAA,aAAa,CAAC,oBAA4B,EAAA;AACxC,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;AACxD,QAAA,IAAI,oBAAoB,IAAI,oBAAoB,KAAK,kBAAkB,EAAE;AACvE,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,YAAA,IAAI,CAAC,eAAe;AACjB,iBAAA,yBAAyB,CAAC,IAAI,CAAC,sBAAsB,EAAE,oBAAoB,CAAC;iBAC5E,SAAS,CAAC,WAAW,IAAG;gBACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;AACzD,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7B,aAAC,CAAC,CAAC;AACN,SAAA;aAAM,IAAI,CAAC,oBAAoB,EAAE;AAChC,YAAA,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,SAAS,CAAC,MAAK;AACzF,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7B,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;AAEO,IAAA,gCAAgC,CAAC,MAAqB,EAAA;QAC5D,IAAI,CAAC,2BAA2B,GAAG,MAAM,CAAC,cAAc,KAAK,cAAc,CAAC,cAAc,CAAC;KAC5F;IAEO,mBAAmB,GAAA;AACzB,QAAA,IAAI,CAAC,eAAe;AACjB,aAAA,sBAAsB,CAAC,IAAI,CAAC,sBAAsB,CAAC;aACnD,SAAS,CAAC,mBAAmB,IAAG;AAC/B,YAAA,IAAI,mBAAmB,EAAE;gBACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;AAClE,aAAA;AACH,SAAC,CAAC,CAAC;KACN;;mIAzDU,qCAAqC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,IAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAH,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAI,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArC,qCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qCAAqC,+EC5BlD,45CAuCA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,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,EAAAL,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,WAAA,EAAA,QAAA,EAAA,QAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,WAAA,EAAA,cAAA,EAAA,cAAA,EAAA,MAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,wBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAK,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FDXa,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBALjD,SAAS;+BACE,yCAAyC,EAAA,QAAA,EAAA,45CAAA,EAAA,CAAA;;;MEbxC,kCAAkC,CAAA;IAmB7C,WAA6B,CAAA,eAAgC,EAAU,KAAqB,EAAA;QAA/D,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAAU,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;AAlBnF,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AAExC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,eAAe,CAAO,IAAI,CAAC,CAAC;AAEpD,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAAU,IAAI,CAAC,CAAC;QAE9C,IAAuB,CAAA,uBAAA,GAAuB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAC3E,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CACjC,CAAC;QAEO,IAAa,CAAA,aAAA,GAA6B,IAAI,CAAC,SAAS,CAAC,IAAI,CACpE,SAAS,CAAC,MAAM,IAAI,CAAC,uBAAuB,CAAC,EAC7C,SAAS,CAAC,sBAAsB,IAC9B,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAC7D,EACD,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CACrC,CAAC;QAGA,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;KACtD;IAED,cAAc,CAAC,YAAqB,EAAE,sBAA8B,EAAA;QAClE,IAAI,CAAC,YAAY,EAAE,CAAC;AAEpB,QAAA,IAAI,CAAC,eAAe;aACjB,iBAAiB,CAAC,sBAAsB,EAAE;AACzC,YAAA,eAAe,EAAE,YAAY;SAC9B,CAAC;aACD,SAAS,CACR,MAAK;YACH,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB,EACD,MAAK;YACH,IAAI,CAAC,WAAW,EAAE,CAAC;AACrB,SAAC,CACF,CAAC;KACL;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3B;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5B;IAEO,eAAe,GAAA;AACrB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3B;;gIAnDU,kCAAkC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAJ,IAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlC,kCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kCAAkC,2ECX/C,yiCA+BA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,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,EAAAC,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FDpBa,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAL9C,SAAS;+BACE,qCAAqC,EAAA,QAAA,EAAA,yiCAAA,EAAA,CAAA;;;AEPjD;;;;;;;;;;;;;;AAcG;MAeU,gCAAgC,CAAA;AAW3C,IAAA,WAAA,CACU,eAAgC,EAChC,KAAqB,EACrB,YAA0B,EAAA;QAF1B,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QACrB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAb7B,IAAsB,CAAA,sBAAA,GAAkB,IAAI,CAAC;QAC7C,IAAkB,CAAA,kBAAA,GAA8B,IAAI,CAAC;QACrD,IAA0B,CAAA,0BAAA,GAAgC,EAAE,CAAC;AAalE,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;KACxE;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,8BAA8B,EAAE,CAAC;KACvC;IAED,8BAA8B,GAAA;AAC5B,QAAA,IAAI,CAAC,eAAe;AACjB,aAAA,8BAA8B,CAAC,IAAI,CAAC,sBAAsB,CAAC;AAC3D,aAAA,SAAS,CAAC,CAAC,0BAAuD,KAAI;AACrE,YAAA,IAAI,CAAC,0BAA0B,GAAG,0BAA0B,CAAC;AAC/D,SAAC,CAAC,CAAC;KACN;IAED,sBAAsB,GAAA;AACpB,QAAA,IAAI,CAAC,eAAe;AACjB,aAAA,qBAAqB,CAAC,IAAI,CAAC,sBAAsB,CAAC;AAClD,aAAA,SAAS,CAAC,CAAC,kBAAsC,KAAI;AACpD,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;AAC/C,SAAC,CAAC,CAAC;KACN;IAED,uBAAuB,GAAA;QACrB,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;KAC7D;IAED,sBAAsB,GAAA;QACpB,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;KAC5D;AAED,IAAA,+BAA+B,CAAC,yBAAoD,EAAA;AAClF,QAAA,IAAI,CAAC,eAAe;AACjB,aAAA,+BAA+B,CAAC;AAC/B,YAAA,sBAAsB,EAAE,yBAAyB,CAAC,EAAE,CAAC,oBAAoB,CAAC,IAAI;AAC9E,YAAA,oBAAoB,EAAE,yBAAyB,CAAC,EAAE,CAAC,oBAAoB;YACvE,qBAAqB,EAAE,yBAAyB,CAAC,qBAAqB;YACtE,eAAe,EAAE,yBAAyB,CAAC,eAAe;SAC3D,CAAC;aACD,SAAS,CACR,MAAK;AACH,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC;YAC9E,IAAI,CAAC,8BAA8B,EAAE,CAAC;SACvC,EACD,MAAK;AACH,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;AAC1E,SAAC,CACF,CAAC;KACL;IAED,kBAAkB,GAAA;AAChB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAC3C,MAAM,UAAU,GACd,+BAA+B;AAC/B,YAAA,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACjE,MAAM,qBAAqB,GAAG,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;AAC/E,QAAA,qBAAqB,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AACvD,QAAA,qBAAqB,CAAC,YAAY,CAChC,UAAU,EACV,CAAA,EAAG,UAAU,CAAC,EAAE,CAAC,IAAI,CAAA,EAAA,EAAK,UAAU,CAAC,EAAE,CAAC,OAAO,CAAA,KAAA,CAAO,CACvD,CAAC;QACF,qBAAqB,CAAC,KAAK,EAAE,CAAC;KAC/B;;8HA/EU,gCAAgC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAH,IAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhC,gCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gCAAgC,iZC7B7C,qmLA6IA,EAAA,MAAA,EAAA,CAAA,6uBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,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,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAO,sCAAA,EAAA,QAAA,EAAA,0CAAA,EAAA,OAAA,EAAA,CAAA,kCAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qCAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,+BAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qCAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kCAAA,EAAA,QAAA,EAAA,qCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FDhHa,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAL5C,SAAS;+BACE,mCAAmC,EAAA,QAAA,EAAA,qmLAAA,EAAA,MAAA,EAAA,CAAA,6uBAAA,CAAA,EAAA,CAAA;kKAU7C,mBAAmB,EAAA,CAAA;sBADlB,SAAS;uBAAC,qBAAqB,CAAA;gBAGhC,kBAAkB,EAAA,CAAA;sBADjB,SAAS;uBAAC,oBAAoB,CAAA;gBAEH,aAAa,EAAA,CAAA;sBAAxC,SAAS;uBAAC,eAAe,CAAA;;;AEtC5B;;;;;;;;;;;;;;AAcG;MAsBU,gCAAgC,CAAA;AAsB3C,IAAA,WAAA,CACmB,eAAgC,EAChC,gBAAkC,EAClC,WAAwB,EAAA;QAFxB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AAvBjC,QAAA,IAAA,CAAA,kBAAkB,GAAsB,IAAI,YAAY,EAAE,CAAC;AAI5D,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;AAEvB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,eAAe,CAAS,EAAE,CAAC,CAAC;AAE9C,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,eAAe,CAAS,EAAE,CAAC,CAAC;AAEzC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AAQxC,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,eAAe,CAAO,SAAS,CAAC,CAAC;KAM1D;IAEJ,eAAe,GAAA;QACb,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;AACpC,QAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;AAED,IAAA,OAAO,CAAC,IAAU,EAAA;QAChB,IAAI,CAAC,UAAU,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACvB;IAED,gBAAgB,GAAA;QACd,IAAI,CAAC,OAAO,EAAE,CAAC;AAEf,QAAA,IAAI,CAAC,WAAW;aACb,IAAI,CACHC,WAAS,CAAC,UAAU,IAClB,IAAI,CAAC,eAAe;AACjB,aAAA,wBAAwB,CAAC,IAAI,+BAA+B,CAAC,UAAU,CAAC,CAAC;AACzE,aAAA,IAAI,CACH,GAAG;;AAED,QAAA,MAAK;YACH,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,SAAS,EAAE,CAAC;AACjB,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;AAC1B,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;SAChC;;AAED,QAAA,MAAK;AACH,YAAA,IAAI,CAAC,qBAAqB,CAAC,8BAA8B,CAAC,CAAC;YAC3D,IAAI,CAAC,MAAM,EAAE,CAAC;SACf,CACF,CACF,CACJ,EACD,IAAI,CAAC,CAAC,CAAC,CACR;AACA,aAAA,SAAS,EAAE,CAAC;KAChB;AAEO,IAAA,qBAAqB,CAAC,SAAiB,EAAA;QAC7C,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;AACjF,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,SAAC,CAAC,CAAC;KACJ;IAEO,sBAAsB,GAAA;QAC5B,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;AACtC,SAAA;KACF;IAEO,UAAU,GAAA;AAChB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACtB;IAEO,oBAAoB,GAAA;QAC1B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,IAAG;AAClD,YAAA,IAAI,IAAI,EAAE;AACR,gBAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAEhC,gBAAA,MAAM,CAAC,SAAS,GAAG,MAAK;oBACtB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;AACxC,oBAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE;AAClC,wBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/B,qBAAA;AAAM,yBAAA;wBACL,IAAI,CAAC,eAAe,EAAE,CAAC;AACvB,wBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,CAAC;AAC/E,qBAAA;AACH,iBAAC,CAAC;AAEF,gBAAA,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACzB,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,eAAe,EAAE,CAAC;AACxB,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;IAEO,oBAAoB,GAAA;QAC1B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,IAAG;AAClD,YAAA,IAAI,IAAI,EAAE;gBACR,IAAI,CAAC,SAAS,EAAE,CAAC;AAClB,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,SAAS,EAAE,CAAC;AAClB,aAAA;YAED,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,aAAa,EAAE,CAAC;AACvB,SAAC,CAAC,CAAC;KACJ;IAEO,eAAe,GAAA;AACrB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAC3B;IAEO,aAAa,GAAA;AACnB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACxB;IAEO,SAAS,GAAA;AACf,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;KACnB;IAEO,SAAS,GAAA;AACf,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;KACnB;AAEO,IAAA,iBAAiB,CAAC,MAAc,EAAA;QACtC,IAAI;AACF,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACpB,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;IAEO,OAAO,GAAA;AACb,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3B;IAEO,MAAM,GAAA;AACZ,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5B;;8HAhKU,gCAAgC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAX,IAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAH,IAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAI,IAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhC,gCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gCAAgC,4QCpC7C,soDA+CA,EAAA,MAAA,EAAA,CAAA,goBAAA,CAAA,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,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,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,EAAAJ,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FDXa,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAL5C,SAAS;+BACE,mCAAmC,EAAA,QAAA,EAAA,soDAAA,EAAA,MAAA,EAAA,CAAA,goBAAA,CAAA,EAAA,CAAA;qKAKpC,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;gBAE6B,KAAK,EAAA,CAAA;sBAAxC,SAAS;uBAAC,uBAAuB,CAAA;;;AExCpC;;;;;;;;;;;;;;AAcG;AAQH,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;MAOxC,8BAA8B,CAAA;IAiBzC,WAAoB,CAAA,eAAgC,EAAU,MAAc,EAAA;QAAxD,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAAU,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QAhBrE,IAAQ,CAAA,QAAA,GAAyB,EAAE,CAAC;AACpC,QAAA,IAAA,CAAA,UAAU,GAAG;AAClB,YAAA,cAAc,EAAE,CAAC;AACjB,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,qBAAqB,EAAE,CAAC;SACzB,CAAC;QACK,IAAS,CAAA,SAAA,GAAG,CAAC,CAAC;AACd,QAAA,IAAA,CAAA,aAAa,GAAG;AACrB,YAAA,EAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAC;AACrC,YAAA,EAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAC;AACvC,YAAA,EAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAC;SACtC,CAAC;AAEO,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;KAEsB;AAEzE,IAAA,iBAAiB,CAAC,IAAI,EAAA;AAC3B,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAED,aAAa,GAAA;QACX,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;AAED,IAAA,iBAAiB,CAAC,kBAAsC,EAAA;AACtD,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,6BAA6B,EAAE,kBAAkB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;KACnF;IAEO,sBAAsB,GAAA;AAC5B,QAAA,IAAI,CAAC,eAAe;aACjB,gBAAgB,CAAC,EAAC,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAC,CAAC;AAC3F,aAAA,SAAS,CAAC,CAAC,sBAAgD,KAAI;YAC9D,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,sBAAsB,CAAC,aAAa,CAAC;AACtE,YAAA,IAAI,CAAC,QAAQ,GAAG,sBAAsB,CAAC,OAAO,CAAC;YAC/C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAA2B,KAAI;AAChD,gBAAA,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAC5E,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACN;IAED,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC5B;;4HA9CU,8BAA8B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAG,IAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA9B,8BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,uEC7B3C,i4DAmDA,EAAA,MAAA,EAAA,CAAA,goBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,YAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAW,gCAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAT,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FDtBa,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAL1C,SAAS;+BACE,iCAAiC,EAAA,QAAA,EAAA,i4DAAA,EAAA,MAAA,EAAA,CAAA,goBAAA,CAAA,EAAA,CAAA;;;AEzB7C,IAAY,OAIX,CAAA;AAJD,CAAA,UAAY,OAAO,EAAA;AACjB,IAAA,OAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,OAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,OAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EAJW,OAAO,KAAP,OAAO,GAIlB,EAAA,CAAA,CAAA;;ACJD;;;;;;;;;;;;;;AAcG;MASU,UAAU,CAAA;AAHvB,IAAA,WAAA,GAAA;QAIU,IAAY,CAAA,YAAA,GAAG,IAAI,eAAe,CAAU,OAAO,CAAC,IAAI,CAAC,CAAC;AASnE,KAAA;AAPC,IAAA,IAAW,WAAW,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;KACzC;IAED,IAAW,UAAU,CAAC,GAAY,EAAA;AAChC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC7B;;wGATU,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAV,UAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,cAFT,MAAM,EAAA,CAAA,CAAA;4FAEP,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACtBD;;;;;;;;;;;;;;AAcG;MAyCU,sCAAsC,CAAA;AAyJjD,IAAA,WAAA,CACmB,eAAgC,EAChC,KAAqB,EACrB,gBAAkC,EAClC,SAAuB,EAAA;QAHvB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QACrB,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;AAzJhC,QAAA,IAAA,CAAA,WAAW,GAA8B,IAAI,YAAY,EAAE,CAAC;AAE7D,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,eAAe,CAAS,EAAE,CAAC,CAAC;AAChD,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,eAAe,CAAU,SAAS,CAAC,CAAC;AACvD,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AACpD,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,eAAe,CAAqB,IAAI,CAAC,CAAC;AACrE,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,eAAe,CAAc,IAAI,CAAC,CAAC;AACnD,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AAE9C,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;AAE1B,QAAA,IAAA,CAAA,OAAO,GAA4B;AAClD,YAAA;AACE,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,YAAY,EAAE,OAAO;AACrB,gBAAA,cAAc,EAAE,OAAO;AACxB,aAAA;AACD,YAAA;AACE,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,YAAY,EAAE,KAAK;AACnB,gBAAA,cAAc,EAAE,KAAK;AACtB,aAAA;AACD,YAAA;AACE,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,YAAY,EAAE,MAAM;AACpB,gBAAA,cAAc,EAAE,MAAM;AACvB,aAAA;AACD,YAAA;AACE,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,YAAY,EAAE,UAAU;AACxB,gBAAA,cAAc,EAAE,UAAU;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,YAAY,EAAE,WAAW;AACzB,gBAAA,cAAc,EAAE,WAAW;AAC5B,aAAA;AACD,YAAA;AACE,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,YAAY,EAAE,WAAW;AACzB,gBAAA,cAAc,EAAE,WAAW;AAC5B,aAAA;SACF,CAAC;AAEe,QAAA,IAAA,CAAA,UAAU,GAA+B;YACxD,MAAM;YACN,QAAQ;YACR,MAAM;YACN,UAAU;YACV,SAAS;SACV,CAAC;QACO,IAAc,CAAA,cAAA,GAAkC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAC/F,GAAG,CAAC,MACF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,KAAK;AAC/B,YAAA,EAAE,EAAE,QAAQ;YACZ,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA,aAAA,EAAgB,QAAQ,CAAA,CAAE,CAAC;SAChE,CAAC,CAAC,CACJ,CACF,CAAC;AAEe,QAAA,IAAA,CAAA,WAAW,GAAgC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACvE,IAAe,CAAA,eAAA,GAAkC,IAAI,CAAC,gBAAgB;aAC5E,MAAM,CAAC,KAAK,CAAC;AACb,aAAA,IAAI,CACH,GAAG,CAAC,MACF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,KAAK;AACjC,YAAA,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA,qBAAA,EAAwB,SAAS,CAAA,CAAE,CAAC;SACzE,CAAC,CAAC,CACJ,CACF,CAAC;AAEa,QAAA,IAAA,CAAA,WAAW,GAAgC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACrE,IAAe,CAAA,eAAA,GAAkC,IAAI,CAAC,gBAAgB;aAC5E,MAAM,CAAC,KAAK,CAAC;AACb,aAAA,IAAI,CACH,GAAG,CAAC,MACF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,KAAK;AACjC,YAAA,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA,qBAAA,EAAwB,SAAS,CAAA,CAAE,CAAC;SACzE,CAAC,CAAC,CACJ,CACF,CAAC;QAEK,IAAO,CAAA,OAAA,GAAiC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CACvF,GAAG,CAAC,MACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK;YAC1B,GAAG,EAAE,MAAM,CAAC,YAAY;AACxB,YAAA,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA,qBAAA,EAAwB,MAAM,CAAC,cAAc,CAAA,CAAE,CAAC;YACrF,QAAQ,EAAE,MAAM,CAAC,QAAQ;AACzB,YAAA,IAAI,MAAM,CAAC,QAAQ,IAAI,EAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAC,CAAC;AACnD,YAAA,IAAI,MAAM,CAAC,IAAI,IAAI,EAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAC,CAAC;SACxC,CAAC,CAAC,CACJ,CACF,CAAC;AAEO,QAAA,IAAA,CAAA,uBAAuB,GAAuB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAC3E,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,EAChC,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC,CACnC,CAAC;QAIF,IAAmB,CAAA,mBAAA,GAAG,IAAI,CAAC;QAC3B,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;AAEZ,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,eAAe,CAAO,IAAI,CAAC,CAAC;QAEvD,IAAa,CAAA,aAAA,GAAmC,aAAa,CAAC;AAC7E,YAAA,IAAI,CAAC,uBAAuB;AAC5B,YAAA,IAAI,CAAC,oBAAoB;SAC1B,CAAC,CAAC,IAAI,CACL,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,KACjC,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,sBAAsB,CAAC,CACrE,EACDU,KAAG,CAAC,YAAY,IAAG;AACjB,YAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAACC,MAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,sBAAsB,IAAG;AAC5E,gBAAA,IAAI,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AAC1E,oBAAA,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,YAAY,CAAC,CAAC;AACxD,iBAAA;AACH,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,EACFD,KAAG,CAAC,YAAY,IAAG;AACjB,YAAA,IAAI,CAAC,kBAAkB,GAAG,YAAY,CAAC;AACvC,YAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;SAClC,CAAC,CACH,CAAC;QAEO,IAAuB,CAAA,uBAAA,GAAmC,aAAa,CAAC;AAC/E,YAAA,IAAI,CAAC,aAAa;AAClB,YAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC;SACpC,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,KACjB,YAAY,CAAC,GAAG,CAAC,WAAW,KAAK;AAC/B,YAAA,GAAG,WAAW;AACd,YAAA,KAAK,EAAE,WAAW,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,GAAG,EAAE;AACjD,YAAA,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA,aAAA,EAAgB,WAAW,CAAC,QAAQ,CAAA,CAAE,CAAC;AAC/E,YAAA,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA,qBAAA,EAAwB,WAAW,CAAC,SAAS,CAAA,CAAE,CAAC;AACzF,YAAA,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA,qBAAA,EAAwB,WAAW,CAAC,SAAS,CAAA,CAAE,CAAC;SAC1F,CAAC,CAAC,CACJ,CACF,CAAC;KAOE;IAEJ,QAAQ,GAAA;QACN,IAAI,CAAC,mCAAmC,EAAE,CAAC;KAC5C;IAED,eAAe,GAAA;QACb,IAAI,CAAC,4BAA4B,EAAE,CAAC;KACrC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;KAClC;IAED,kBAAkB,CAAC,WAAwB,EAAE,0BAAmC,EAAA;AAC9E,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAACC,MAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,IAAG;YACzD,IAAI,CAAC,aAAa,EAAE;AAClB,gBAAA,IAAI,CAAC,0BAA0B,GAAG,0BAA0B,CAAC;gBAC7D,MAAM,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CACtD,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,CAAC,GAAG,CACvC,CAAC;AACF,gBAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AACrD,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,eAAe,CAAC,IAAiB,EAAA;AAC/B,QAAA,MAAM,iBAAiB,GAAG,CAAC,EACzB,IAAI,CAAC,GAAG;AACR,YAAA,IAAI,CAAC,QAAQ;AACb,YAAA,IAAI,CAAC,SAAS;AACd,YAAA,IAAI,CAAC,SAAS;YACd,IAAI,CAAC,IAAI,CACV,CAAC;AACF,QAAA,MAAM,WAAW,GACf,CAAC,IAAI,CAAC,0BAA0B;YAChC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAE5E,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,IAAI,WAAW,CAAC,CAAC;KACpD;AAED,IAAA,OAAO,CACL,mBAA2B,EAC3B,MAAe,EACf,UAAsB,EACtB,sBAA8B,EAAA;QAE9B,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAClD,QAAA,MAAM,cAAc,GAAG,YAAY,CAAC,mBAAmB,CAAC,CAAC;QAEzD,UAAU,CAAC,eAAe,EAAE,CAAC;AAE7B,QAAA,MAAM,gBAAgB,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,cAAc,CAAC,GAAG,CAAC,CAAC;QAC3F,MAAM,gBAAgB,GAAG,EAAC,GAAG,YAAY,CAAC,gBAAgB,CAAC,EAAC,CAAC;AAC7D,QAAA,MAAM,oBAAoB,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,cAAc,CAAC,GAAG,CAAC,CAAC;AAC5F,QAAA,MAAM,oBAAoB,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;AAErD,QAAA,IAAI,oBAAoB,IAAI,MAAM,IAAI,gBAAgB,GAAG,CAAC,EAAE;AAC1D,YAAA,MAAM,oBAAoB,GAAG,CAAG,EAAA,YAAY,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA,CAAE,CAAC;AACzE,YAAA,MAAM,sBAAsB,GAAG,oBAAoB,CAAC,SAAS,CAC3D,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,oBAAoB,CAC5C,CAAC;YACF,oBAAoB,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAC;AACzE,YAAA,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,EAAE,oBAAoB,CAAC,CAAC;AACvE,SAAA;aAAM,IAAI,oBAAoB,IAAI,CAAC,MAAM,IAAI,gBAAgB,GAAG,YAAY,CAAC,MAAM,EAAE;AACpF,YAAA,MAAM,mBAAmB,GAAG,CAAG,EAAA,YAAY,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA,CAAE,CAAC;AACxE,YAAA,MAAM,qBAAqB,GAAG,oBAAoB,CAAC,SAAS,CAC1D,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,mBAAmB,CAC3C,CAAC;YACF,oBAAoB,CAAC,MAAM,CAAC,qBAAqB,GAAG,CAAC,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAC;AAC5E,YAAA,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,EAAE,oBAAoB,CAAC,CAAC;AACvE,SAAA;KACF;IAED,yBAAyB,CACvB,sBAA8B,EAC9B,mBAAgC,EAAA;QAEhC,IAAI,CAAC,YAAY,EAAE,CAAC;AAEpB,QAAA,IAAI,CAAC,eAAe;AACjB,aAAA,oBAAoB,CAAC,sBAAsB,EAAE,mBAAmB,CAAC,GAAG,CAAC;aACrE,SAAS,CACR,MAAK;YACH,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC5B,EACD,MAAK;YACH,IAAI,CAAC,WAAW,EAAE,CAAC;AACrB,SAAC,CACF,CAAC;KACL;AAED,IAAA,eAAe,CAAC,sBAA8B,EAAA;QAC5C,IAAI,CAAC,YAAY,EAAE,CAAC;AAEpB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAACA,MAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,IAAG;YAChD,IAAI,IAAI,CAAC,0BAA0B,EAAE;AACnC,gBAAA,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC,SAAS,CACjF,MAAK;oBACH,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,IAAI,CAAC,SAAS,EAAE,CAAC;oBACjB,IAAI,CAAC,mBAAmB,EAAE,CAAC;iBAC5B,EACD,MAAK;oBACH,IAAI,CAAC,WAAW,EAAE,CAAC;AACrB,iBAAC,CACF,CAAC;AACH,aAAA;AAAM,iBAAA;gBACL,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAC/C,gBAAA,MAAM,cAAc,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,CAAC,CAAC;AAChF,gBAAA,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAE7E,cAAc,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;AACnD,gBAAA,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,EAAE,cAAc,CAAC,CAAC;AACjE,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;IAED,kBAAkB,CAAC,sBAA8B,EAAE,eAAmC,EAAA;QACpF,IAAI,CAAC,YAAY,EAAE,CAAC;AAEpB,QAAA,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC,SAAS,CACvF,MAAK;YACH,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC5B,EACD,MAAK;YACH,IAAI,CAAC,WAAW,EAAE,CAAC;AACrB,SAAC,CACF,CAAC;KACH;IAEO,mCAAmC,GAAA;AACzC,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CACpB,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,MAAK;YACvC,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB,CAAC,CACH,CAAC;KACH;IAEO,4BAA4B,GAAA;AAClC,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CACpB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,YAAY,IAAG;AAChD,YAAA,IAAI,YAAY,EAAE;AAChB,gBAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AAClC,aAAA;AAAM,iBAAA;gBACL,UAAU,CAAC,MAAK;AACd,oBAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;iBACnC,EAAE,GAAG,CAAC,CAAC;AACT,aAAA;SACF,CAAC,CACH,CAAC;KACH;IAEO,WAAW,CAAC,sBAA8B,EAAE,YAAgC,EAAA;QAClF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAG,EAAA,sBAAsB,CAAO,KAAA,CAAA,CAAC,CAAC;QAC1D,IAAI,CAAC,YAAY,CAAC,IAAI,CACpB,IAAI,CAAC,SAAS,CAAC,sBAAsB,CACnC,+BAA+B;AAC7B,YAAA,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAC,YAAY,EAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAC9D,CACF,CAAC;KACH;IAEO,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC/B;IAEO,WAAW,GAAA;AACjB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;IAEO,SAAS,GAAA;AACf,QAAA,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;KACpB;IAEO,SAAS,GAAA;AACf,QAAA,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;KACpB;IAEO,mBAAmB,GAAA;AACzB,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACtC;;oIAxVU,sCAAsC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAd,IAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtC,sCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sCAAsC,kVCvDnD,83PAyNA,EAAA,MAAA,EAAA,CAAA,8WAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,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,EAAAA,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,EAAAL,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,YAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,WAAA,EAAA,cAAA,EAAA,cAAA,EAAA,MAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,wBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,EAAA,WAAA,EAAA,SAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FDlKa,sCAAsC,EAAA,UAAA,EAAA,CAAA;kBALlD,SAAS;+BACE,0CAA0C,EAAA,QAAA,EAAA,83PAAA,EAAA,MAAA,EAAA,CAAA,8WAAA,CAAA,EAAA,CAAA;mMAKhB,yBAAyB,EAAA,CAAA;sBAA5D,SAAS;uBAAC,gBAAgB,CAAA;gBACI,KAAK,EAAA,CAAA;sBAAnC,SAAS;uBAAC,kBAAkB,CAAA;gBAEnB,WAAW,EAAA,CAAA;sBAApB,MAAM;;;AE3DT;;;;;;;;;;;;;;AAcG;MAeU,qCAAqC,CAAA;AA2FhD,IAAA,WAAA,CACmB,eAAgC,EAChC,KAAqB,EACrB,gBAAkC,EAAA;QAFlC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QACrB,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AA7FpC,QAAA,IAAA,CAAA,OAAO,GAA4B;AAClD,YAAA;AACE,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,YAAY,EAAE,OAAO;AACrB,gBAAA,cAAc,EAAE,OAAO;AACxB,aAAA;AACD,YAAA;AACE,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,YAAY,EAAE,KAAK;AACnB,gBAAA,cAAc,EAAE,KAAK;AACtB,aAAA;AACD,YAAA;AACE,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,YAAY,EAAE,MAAM;AACpB,gBAAA,cAAc,EAAE,MAAM;AACvB,aAAA;AACD,YAAA;AACE,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,YAAY,EAAE,aAAa;AAC3B,gBAAA,cAAc,EAAE,aAAa;AAC9B,aAAA;AACD,YAAA;AACE,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,YAAY,EAAE,uBAAuB;AACrC,gBAAA,cAAc,EAAE,uBAAuB;AACxC,aAAA;AACD,YAAA;AACE,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,YAAY,EAAE,UAAU;AACxB,gBAAA,cAAc,EAAE,UAAU;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,YAAY,EAAE,aAAa;AAC3B,gBAAA,cAAc,EAAE,aAAa;AAC9B,aAAA;SACF,CAAC;QAEO,IAAO,CAAA,OAAA,GAAiC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CACvF,GAAG,CAAC,MACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK;YAC1B,GAAG,EAAE,MAAM,CAAC,YAAY;AACxB,YAAA,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA,WAAA,EAAc,MAAM,CAAC,cAAc,CAAA,CAAE,CAAC;YAC3E,QAAQ,EAAE,MAAM,CAAC,QAAQ;AACzB,YAAA,IAAI,MAAM,CAAC,QAAQ,IAAI,EAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAC,CAAC;AACnD,YAAA,IAAI,MAAM,CAAC,IAAI,IAAI,EAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAC,CAAC;SACxC,CAAC,CAAC,CACJ,CACF,CAAC;AAEO,QAAA,IAAA,CAAA,uBAAuB,GAAuB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAC3E,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,EAChC,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC,CACnC,CAAC;QAEO,IAAgB,CAAA,gBAAA,GAA0C,IAAI,CAAC,gBAAgB;aACrF,MAAM,CAAC,KAAK,CAAC;AACb,aAAA,IAAI,CACH,SAAS,CAAC,MAAM,IAAI,CAAC,uBAAuB,CAAC,EAC7C,SAAS,CAAC,sBAAsB,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC,EAC7F,GAAG,CAAC,OAAO,IACT,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK;AACrB,YAAA,GAAG,MAAM;AACT,YAAA,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,GAAG;YAC1B,QAAQ,EAAE,MAAM,CAAC,QAAQ;kBACrB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,wBAAwB,CAAC;kBACvD,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,uBAAuB,CAAC;AAC1D,YAAA,WAAW,EACT,CAAC,MAAM,CAAC,WAAW,KAAK,KAAK;AAC3B,gBAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,wBAAwB,CAAC;AACzD,iBAAC,MAAM,CAAC,WAAW,KAAK,MAAM;AAC5B,oBAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;gBAC3D,GAAG;AACL,YAAA,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CACxC,CAAyB,sBAAA,EAAA,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CACrD;YACD,qBAAqB,EAAE,IAAI,CAAC,4BAA4B,CACtD,MAAM,CAAC,WAAW,CAAC,qBAAqB,CACzC;SACF,CAAC,CAAC,CACJ,CACF,CAAC;KAMA;AAEI,IAAA,4BAA4B,CAAC,qBAA4C,EAAA;QAC/E,IAAI,qBAAqB,EAAE,UAAU,EAAE;YACrC,OAAO,qBAAqB,CAAC,UAAU,CAAC;AACzC,SAAA;aAAM,IAAI,qBAAqB,EAAE,IAAI,EAAE;AACtC,YAAA,OAAO,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAI;AAClE,gBAAA,MAAM,kBAAkB,GAAG,CAAG,EAAA,IAAI,CAAK,EAAA,EAAA,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAE,CAAC;gBAC1E,IAAI,CAAC,GAAG,EAAE;oBACR,OAAO,CAAA,EAAG,kBAAkB,CAAA,CAAE,CAAC;AAChC,iBAAA;AAAM,qBAAA;AACL,oBAAA,OAAO,CAAG,EAAA,GAAG,CAAK,EAAA,EAAA,kBAAkB,EAAE,CAAC;AACxC,iBAAA;aACF,EAAE,EAAE,CAAC,CAAC;AACR,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,GAAG,CAAC;AACZ,SAAA;KACF;;mIAhHU,qCAAqC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArC,qCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qCAAqC,+EC7BlD,myCA0CA,EAAA,MAAA,EAAA,CAAA,wDAAA,CAAA,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,EAAAE,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,YAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FDba,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBALjD,SAAS;+BACE,yCAAyC,EAAA,QAAA,EAAA,myCAAA,EAAA,MAAA,EAAA,CAAA,wDAAA,CAAA,EAAA,CAAA;;;AEzBrD;;;;;;;;;;;;;;AAcG;MAeU,yCAAyC,CAAA;AAmBpD,IAAA,WAAA,CACmB,eAAgC,EAChC,KAAqB,EACrB,aAA4B,EAC5B,UAAsB,EAAA;QAHtB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QACrB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAjBhC,IAAO,CAAA,OAAA,GAAG,OAAO,CAAC;AAElB,QAAA,IAAA,CAAA,uBAAuB,GAAuB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAC3E,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,EAChC,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC,CACnC,CAAC;QAEO,IAAmB,CAAA,mBAAA,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAC9D,SAAS,CAAC,sBAAsB,IAC9B,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,sBAAsB,CAAC,CACnE,CACF,CAAC;AAQA,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC;KAC/E;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,0BAA0B,EAAE,CAAC;KACnC;AAED,IAAA,oBAAoB,CAAC,GAAY,EAAA;AAC/B,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,GAAG,CAAC;KAClC;IAED,0BAA0B,GAAA;QACxB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAC1D,KAAK,KAAK,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,CACnC,CAAC;KACH;IAED,WAAW,GAAA;QACT,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;AAC1C,QAAA,IAAI,CAAC,eAAe,EAAE,WAAW,EAAE,CAAC;KACrC;;uIA7CU,yCAAyC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAH,IAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAc,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzC,yCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yCAAyC,mFC7BtD,4gGAyFA,EAAA,MAAA,EAAA,CAAA,6MAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAZ,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,EAAAA,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,EAAAL,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkB,gCAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sCAAA,EAAA,QAAA,EAAA,0CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qCAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAf,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAgB,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FD5Da,yCAAyC,EAAA,UAAA,EAAA,CAAA;kBALrD,SAAS;+BACE,6CAA6C,EAAA,QAAA,EAAA,4gGAAA,EAAA,MAAA,EAAA,CAAA,6MAAA,CAAA,EAAA,CAAA;;;AEzBzD;;;;;;;;;;;;;;AAcG;AASH,MAAM,MAAM,GAAW;AACrB,IAAA;AACE,QAAA,IAAI,EAAE,oBAAoB;AAC1B,QAAA,SAAS,EAAE,8BAA8B;QACzC,WAAW,EAAE,CAAC,gBAAgB,CAAC;QAC/B,IAAI,EAAE,EAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,UAAU,CAAC,EAAC;AAC/C,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,kCAAkC;AACxC,QAAA,SAAS,EAAE,yCAAyC;QACpD,WAAW,EAAE,CAAC,gBAAgB,CAAC;QAC/B,IAAI,EAAE,EAAC,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,UAAU,CAAC,EAAC;AACtD,KAAA;CACF,CAAC;MAOW,8BAA8B,CAAA;;4HAA9B,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAA9B,8BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,wCAH/B,YAAY,CAAA,EAAA,CAAA,CAAA;6HAGX,8BAA8B,EAAA,OAAA,EAAA,CAJ/B,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,EAC5B,YAAY,CAAA,EAAA,CAAA,CAAA;4FAGX,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAL1C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBACvC,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,YAAY,EAAE,EAAE;AACjB,iBAAA,CAAA;;;AC1CD;;;;;;;;;;;;;;AAcG;MAiEU,uBAAuB,CAAA;;qHAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,iBAjChC,8BAA8B;QAC9B,gCAAgC;QAChC,sCAAsC;QACtC,qCAAqC;QACrC,gCAAgC;QAChC,+BAA+B;QAC/B,qCAAqC;QACrC,sCAAsC;QACtC,yCAAyC;QACzC,kCAAkC;AAClC,QAAA,qCAAqC,aAGrC,YAAY;QACZ,YAAY;QACZ,cAAc;QACd,UAAU;QACV,8BAA8B;QAC9B,WAAW;QACX,eAAe;QACf,WAAW;QACX,YAAY;QACZ,gBAAgB;QAChB,yBAAyB;QACzB,eAAe;QACf,YAAY;QACZ,aAAa;QACb,WAAW;QACX,YAAY;QACZ,UAAU,CAAA,EAAA,CAAA,CAAA;AAID,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,YApBhC,YAAY;QACZ,YAAY;QACZ,cAAc;QACd,UAAU;QACV,8BAA8B;QAC9B,WAAW;QACX,eAAe;QACf,WAAW;QACX,YAAY;QACZ,gBAAgB;QAChB,yBAAyB;QACzB,eAAe;QACf,YAAY;QACZ,aAAa;QACb,WAAW;QACX,YAAY;QACZ,UAAU,CAAA,EAAA,CAAA,CAAA;4FAID,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAnCnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,8BAA8B;wBAC9B,gCAAgC;wBAChC,sCAAsC;wBACtC,qCAAqC;wBACrC,gCAAgC;wBAChC,+BAA+B;wBAC/B,qCAAqC;wBACrC,sCAAsC;wBACtC,yCAAyC;wBACzC,kCAAkC;wBAClC,qCAAqC;AACtC,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,YAAY;wBACZ,cAAc;wBACd,UAAU;wBACV,8BAA8B;wBAC9B,WAAW;wBACX,eAAe;wBACf,WAAW;wBACX,YAAY;wBACZ,gBAAgB;wBAChB,yBAAyB;wBACzB,eAAe;wBACf,YAAY;wBACZ,aAAa;wBACb,WAAW;wBACX,YAAY;wBACZ,UAAU;AACX,qBAAA;AACD,oBAAA,OAAO,EAAE,EAAE;AACZ,iBAAA,CAAA;;;AC9ED;;;;;;;;;;;;;;AAcG;;ACdH;;AAEG;;;;"}