{"version":3,"file":"valtimo-shared.mjs","sources":["../../../../projects/valtimo/shared/src/lib/components/carousel/carousel.component.ts","../../../../projects/valtimo/shared/src/lib/components/carousel/carousel.component.html","../../../../projects/valtimo/shared/src/lib/utils/http-error.utils.ts","../../../../projects/valtimo/shared/src/lib/utils/router.utils.ts","../../../../projects/valtimo/shared/src/lib/utils/url.utils.ts","../../../../projects/valtimo/shared/src/lib/utils/global-notification.utils.ts","../../../../projects/valtimo/shared/src/lib/utils/route-params.utils.ts","../../../../projects/valtimo/shared/src/lib/utils/display-type.utils.ts","../../../../projects/valtimo/shared/src/lib/utils/validate-bsn.utils.ts","../../../../projects/valtimo/shared/src/lib/utils/kebab-case.utils.ts","../../../../projects/valtimo/shared/src/lib/utils/index.ts","../../../../projects/valtimo/shared/src/lib/services/base-api.service.ts","../../../../projects/valtimo/shared/src/lib/models/config.ts","../../../../projects/valtimo/shared/src/lib/models/email-notification-settings.model.ts","../../../../projects/valtimo/shared/src/lib/models/menu-item.model.ts","../../../../projects/valtimo/shared/src/lib/models/menu.config.ts","../../../../projects/valtimo/shared/src/lib/models/security.config.ts","../../../../projects/valtimo/shared/src/lib/models/extension.model.ts","../../../../projects/valtimo/shared/src/lib/models/http-loader.ts","../../../../projects/valtimo/shared/src/lib/models/roles.ts","../../../../projects/valtimo/shared/src/lib/models/user-management.model.ts","../../../../projects/valtimo/shared/src/lib/models/page.ts","../../../../projects/valtimo/shared/src/lib/models/search.model.ts","../../../../projects/valtimo/shared/src/lib/models/versions.model.ts","../../../../projects/valtimo/shared/src/lib/models/user-settings.model.ts","../../../../projects/valtimo/shared/src/lib/models/translation.model.ts","../../../../projects/valtimo/shared/src/lib/models/localization.model.ts","../../../../projects/valtimo/shared/src/lib/models/form-view-model.model.ts","../../../../projects/valtimo/shared/src/lib/models/window.model.ts","../../../../projects/valtimo/shared/src/lib/models/management.model.ts","../../../../projects/valtimo/shared/src/lib/models/tag-color.model.ts","../../../../projects/valtimo/shared/src/lib/models/global-configuration.model.ts","../../../../projects/valtimo/shared/src/lib/models/modal.model.ts","../../../../projects/valtimo/shared/src/lib/models/display-type.model.ts","../../../../projects/valtimo/shared/src/lib/models/building-block-management.model.ts","../../../../projects/valtimo/shared/src/lib/models/index.ts","../../../../projects/valtimo/shared/src/lib/services/config.service.ts","../../../../projects/valtimo/shared/src/lib/services/global-notification.service.ts","../../../../projects/valtimo/shared/src/lib/services/localization.service.ts","../../../../projects/valtimo/shared/src/lib/services/menu-include.service.ts","../../../../projects/valtimo/shared/src/lib/services/user-settings.service.ts","../../../../projects/valtimo/shared/src/lib/constants/versions.ts","../../../../projects/valtimo/shared/src/lib/constants/case-management-tab-token.ts","../../../../projects/valtimo/shared/src/lib/constants/form-view-model-token.ts","../../../../projects/valtimo/shared/src/lib/constants/error.constants.ts","../../../../projects/valtimo/shared/src/lib/constants/case-configuration-extensions-token.ts","../../../../projects/valtimo/shared/src/lib/constants/iko.token.ts","../../../../projects/valtimo/shared/src/lib/constants/building-block-management-tab-token.ts","../../../../projects/valtimo/shared/src/lib/constants/index.ts","../../../../projects/valtimo/shared/src/lib/services/environment.service.ts","../../../../projects/valtimo/shared/src/lib/services/draft-version.service.ts","../../../../projects/valtimo/shared/src/lib/services/edit-permissions.service.ts","../../../../projects/valtimo/shared/src/lib/services/configuration-issue.service.ts","../../../../projects/valtimo/shared/src/lib/services/index.ts","../../../../projects/valtimo/shared/src/lib/components/global-notification.component.ts","../../../../projects/valtimo/shared/src/lib/extension/extension.component.ts","../../../../projects/valtimo/shared/src/lib/extension/extension.component.html","../../../../projects/valtimo/shared/src/lib/config.module.ts","../../../../projects/valtimo/shared/src/lib/testing/services/mock-translate.service.ts","../../../../projects/valtimo/shared/src/lib/testing/services/mock-keycloak.service.ts","../../../../projects/valtimo/shared/src/lib/testing/services/mock-icon.service.ts","../../../../projects/valtimo/shared/src/lib/testing/services/index.ts","../../../../projects/valtimo/shared/src/lib/testing/index.ts","../../../../projects/valtimo/shared/src/lib/translation/custom-multi-translate-http-loader.ts","../../../../projects/valtimo/shared/src/lib/translation/custom-multi-translate-http-loader-factory.ts","../../../../projects/valtimo/shared/src/lib/translation/multi-translate-http-loader-factory.ts","../../../../projects/valtimo/shared/src/lib/translation/index.ts","../../../../projects/valtimo/shared/src/lib/zgw/constants/zgw-object-type-component-token.ts","../../../../projects/valtimo/shared/src/lib/zgw/constants/zgw-documenten-api-documents-component-token.ts","../../../../projects/valtimo/shared/src/lib/zgw/constants/index.ts","../../../../projects/valtimo/shared/src/lib/zgw/index.ts","../../../../projects/valtimo/shared/src/lib/guards/zgw-features.guard.ts","../../../../projects/valtimo/shared/src/lib/guards/index.ts","../../../../projects/valtimo/shared/src/lib/generated/generated-backend-types.ts","../../../../projects/valtimo/shared/src/public-api.ts","../../../../projects/valtimo/shared/src/valtimo-shared.ts"],"sourcesContent":["/*\n * Copyright 2015-2026 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  HostBinding,\n  Input,\n  NgZone,\n  OnDestroy,\n  ViewChild,\n  ViewEncapsulation,\n} from '@angular/core';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {ChevronLeft16, ChevronRight16} from '@carbon/icons';\nimport {ButtonModule, IconModule, IconService} from 'carbon-components-angular';\nimport {BehaviorSubject} from 'rxjs';\n\n@Component({\n  selector: 'valtimo-carousel',\n  templateUrl: './carousel.component.html',\n  styleUrls: ['./carousel.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [CommonModule, TranslateModule, ButtonModule, IconModule],\n})\nexport class CarouselComponent implements AfterViewInit, OnDestroy {\n  @HostBinding('class') public readonly hostClasses = 'valtimo-carousel';\n\n  @Input() public ariaLabel?: string;\n\n  @ViewChild('track') private readonly trackRef!: ElementRef<HTMLElement>;\n\n  public readonly canScrollPrev$ = new BehaviorSubject<boolean>(false);\n  public readonly canScrollNext$ = new BehaviorSubject<boolean>(false);\n  public readonly itemCount$ = new BehaviorSubject<number>(0);\n  public readonly activeIndex$ = new BehaviorSubject<number>(0);\n  public readonly dots$ = new BehaviorSubject<number[]>([]);\n\n  private resizeObserver?: ResizeObserver;\n  private mutationObserver?: MutationObserver;\n\n  constructor(\n    private readonly iconService: IconService,\n    private readonly ngZone: NgZone\n  ) {\n    this.iconService.registerAll([ChevronLeft16, ChevronRight16]);\n  }\n\n  public ngAfterViewInit(): void {\n    const track = this.trackRef.nativeElement;\n\n    this.resizeObserver = new ResizeObserver(() => this.ngZone.run(() => this.updateScrollState()));\n    this.resizeObserver.observe(track);\n\n    this.mutationObserver = new MutationObserver(() =>\n      this.ngZone.run(() => this.updateScrollState())\n    );\n    this.mutationObserver.observe(track, {childList: true});\n\n    this.updateScrollState();\n  }\n\n  public ngOnDestroy(): void {\n    this.resizeObserver?.disconnect();\n    this.mutationObserver?.disconnect();\n  }\n\n  public onScroll(): void {\n    this.updateScrollState();\n  }\n\n  public scrollPrev(): void {\n    this.scrollByViewport(-1);\n  }\n\n  public scrollNext(): void {\n    this.scrollByViewport(1);\n  }\n\n  public scrollToIndex(index: number): void {\n    const track = this.trackRef.nativeElement;\n    track.scrollTo({left: index * track.clientWidth, behavior: 'smooth'});\n  }\n\n  private scrollByViewport(direction: 1 | -1): void {\n    const track = this.trackRef.nativeElement;\n    track.scrollBy({left: direction * track.clientWidth, behavior: 'smooth'});\n  }\n\n  private updateScrollState(): void {\n    const track = this.trackRef.nativeElement;\n    const maxScrollLeft = track.scrollWidth - track.clientWidth;\n    this.canScrollPrev$.next(track.scrollLeft > 0);\n    this.canScrollNext$.next(track.scrollLeft < maxScrollLeft - 1);\n\n    const count = track.children.length;\n    if (count !== this.itemCount$.value) {\n      this.itemCount$.next(count);\n      this.dots$.next(Array.from({length: count}, (_, index) => index));\n    }\n\n    const activeIndex = track.clientWidth > 0 ? Math.round(track.scrollLeft / track.clientWidth) : 0;\n    if (activeIndex !== this.activeIndex$.value) {\n      this.activeIndex$.next(activeIndex);\n    }\n  }\n}\n","<!--\n  ~ Copyright 2015-2026 Ritense BV, the Netherlands.\n  ~\n  ~ Licensed under EUPL, Version 1.2 (the \"License\");\n  ~ you may not use this file except in compliance with the License.\n  ~ You may obtain a copy of the License at\n  ~\n  ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n  ~\n  ~ Unless required by applicable law or agreed to in writing, software\n  ~ distributed under the License is distributed on an \"AS IS\" basis,\n  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n  ~ See the License for the specific language governing permissions and\n  ~ limitations under the License.\n  -->\n\n<ng-container\n  *ngIf=\"{\n    prev: canScrollPrev$ | async,\n    next: canScrollNext$ | async,\n    count: itemCount$ | async,\n    active: activeIndex$ | async,\n    dots: dots$ | async\n  } as vm\"\n>\n  <div class=\"valtimo-carousel__viewport\">\n    <ul\n      #track\n      class=\"valtimo-carousel__track\"\n      [attr.aria-label]=\"ariaLabel\"\n      (scroll)=\"onScroll()\"\n    >\n      <ng-content></ng-content>\n    </ul>\n  </div>\n\n  <div *ngIf=\"vm.count > 1\" class=\"valtimo-carousel__controls\">\n    <cds-icon-button\n      class=\"valtimo-carousel__nav\"\n      kind=\"ghost\"\n      size=\"md\"\n      align=\"top-left\"\n      [description]=\"'carousel.previous' | translate\"\n      [disabled]=\"!vm.prev\"\n      (click)=\"scrollPrev()\"\n    >\n      <svg cdsIcon=\"chevron--left\" size=\"16\"></svg>\n    </cds-icon-button>\n\n    <div class=\"valtimo-carousel__dots\" role=\"tablist\">\n      <button\n        *ngFor=\"let index of vm.dots\"\n        type=\"button\"\n        class=\"valtimo-carousel__dot\"\n        [class.valtimo-carousel__dot--active]=\"index === vm.active\"\n        [attr.aria-label]=\"('carousel.goToSlide' | translate) + ' ' + (index + 1)\"\n        [attr.aria-current]=\"index === vm.active\"\n        (click)=\"scrollToIndex(index)\"\n      ></button>\n    </div>\n\n    <cds-icon-button\n      class=\"valtimo-carousel__nav\"\n      kind=\"ghost\"\n      size=\"md\"\n      align=\"top-right\"\n      [description]=\"'carousel.next' | translate\"\n      [disabled]=\"!vm.next\"\n      (click)=\"scrollNext()\"\n    >\n      <svg cdsIcon=\"chevron--right\" size=\"16\"></svg>\n    </cds-icon-button>\n  </div>\n</ng-container>\n","/*\n * Copyright 2015-2026 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {HttpErrorResponse} from '@angular/common/http';\n\n/** `400 BAD_REQUEST \"the message\"` — what Spring puts in `detail` for a `ResponseStatusException`. */\nconst RESPONSE_STATUS_WRAPPER = /^\\d{3}\\s+[A-Z_]+\\s+\"([\\s\\S]*)\"$/;\n\n/** The server's own sentence, or null when it sent none. Spring wraps a `ResponseStatusException` as `400 BAD_REQUEST \"…\"`, so the wrapper is unpeeled. */\nexport const getServerErrorMessage = (error: unknown): string | null => {\n  const body = (error as HttpErrorResponse)?.error;\n  const raw = body?.detail ?? body?.message ?? (typeof body === 'string' ? body : null);\n  if (typeof raw !== 'string' || !raw.trim()) return null;\n\n  const trimmed = raw.trim();\n\n  return (RESPONSE_STATUS_WRAPPER.exec(trimmed)?.[1] ?? trimmed).trim() || null;\n};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ExtraOptions} from '@angular/router';\n\nclass RouterUtils {\n  public static getRouterExtraOptions(): ExtraOptions {\n    return {canceledNavigationResolution: 'computed'};\n  }\n}\n\nexport {RouterUtils};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nclass UrlUtils {\n  static formatUrlTrailingSlash(url: string, returnWithTrailingSlash: boolean): string {\n    if (url && typeof url === 'string') {\n      const urlLastCharacter = url[url.length - 1];\n      const urlLastCharacterIsSlash = urlLastCharacter === '/';\n\n      if (!returnWithTrailingSlash && urlLastCharacterIsSlash) {\n        return url.slice(0, -1);\n      } else if (returnWithTrailingSlash && !urlLastCharacterIsSlash) {\n        return `${url}/`;\n      }\n    }\n\n    return url;\n  }\n\n  static formatUrlStartWithSlash(url: string): string {\n    if (url && typeof url === 'string' && url.length > 0 && url[0] !== '/') {\n      return `/${url}`;\n    }\n\n    return `${url}`;\n  }\n\n  static getUrlHost(urlString: string): string {\n    let url!: URL;\n\n    try {\n      url = new URL(urlString);\n    } catch (_) {}\n\n    return url ? url.host : '';\n  }\n}\n\nexport {UrlUtils};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NotificationContent} from 'carbon-components-angular';\n\nexport const DEFAULT_NOTIFICATION_PARAMS = {\n  duration: 4000,\n  showClose: true,\n};\n\nexport const getNotificationObject = (content: NotificationContent): NotificationContent => ({\n  ...DEFAULT_NOTIFICATION_PARAMS,\n  ...content,\n});\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {BuildingBlockManagementParams, CaseManagementParams, ManagementContext} from '../models';\nimport {ActivatedRoute} from '@angular/router';\nimport {combineLatest, distinctUntilChanged, filter, map, Observable, of, switchMap} from 'rxjs';\nimport {isEqual} from 'lodash';\n\nconst getCaseManagementRouteParams = (\n  route: ActivatedRoute,\n  doFilter = false\n): Observable<CaseManagementParams | undefined> => {\n  const rootParams$ = route.params ? route.params : of({});\n  const parentParams$ = route.parent?.params ? route.parent.params : of({});\n  return combineLatest([rootParams$, parentParams$]).pipe(\n    map(([rootParams, parentParams]) => {\n      const caseDefinitionKey =\n        rootParams['caseDefinitionKey'] || parentParams['caseDefinitionKey'];\n      const caseDefinitionVersionTag =\n        rootParams['caseDefinitionVersionTag'] || parentParams['caseDefinitionVersionTag'];\n      if (caseDefinitionKey && caseDefinitionVersionTag) {\n        return {caseDefinitionKey, caseDefinitionVersionTag};\n      }\n      return null;\n    }),\n    filter((params): params is CaseManagementParams => (doFilter ? params !== null : true)),\n    distinctUntilChanged((previous, current) => isEqual(previous, current))\n  );\n};\n\nconst getBuildingBlockManagementRouteParams = (\n  route: ActivatedRoute,\n  doFilter = false\n): Observable<BuildingBlockManagementParams | undefined> => {\n  const rootParams$ = route.params ? route.params : of({});\n  const parentParams$ = route.parent?.params ? route.parent.params : of({});\n  return combineLatest([rootParams$, parentParams$]).pipe(\n    map(([rootParams, parentParams]) => {\n      const buildingBlockDefinitionKey =\n        rootParams['buildingBlockDefinitionKey'] || parentParams['buildingBlockDefinitionKey'];\n      const buildingBlockDefinitionVersionTag =\n        rootParams['buildingBlockDefinitionVersionTag'] ||\n        parentParams['buildingBlockDefinitionVersionTag'];\n      if (buildingBlockDefinitionKey && buildingBlockDefinitionVersionTag) {\n        return {buildingBlockDefinitionKey, buildingBlockDefinitionVersionTag};\n      }\n      return null;\n    }),\n    filter((params): params is BuildingBlockManagementParams =>\n      doFilter ? params !== null : true\n    ),\n    distinctUntilChanged((previous, current) => isEqual(previous, current))\n  );\n};\n\nfunction getContextObservable(route: ActivatedRoute): Observable<ManagementContext | null> {\n  // Traverse the route hierarchy to find the context data\n  // The context is set on a parent route, so we need to look up the tree\n  let currentRoute: ActivatedRoute | null = route;\n  while (currentRoute) {\n    const context = currentRoute.snapshot?.data?.['context'] as ManagementContext | undefined;\n    if (context) {\n      return currentRoute.data.pipe(\n        map(data => (data && (data['context'] as ManagementContext)) || null),\n        distinctUntilChanged()\n      );\n    }\n    currentRoute = currentRoute.parent;\n  }\n\n  // Fallback to original behavior if no context found in hierarchy\n  return route.data.pipe(\n    map(data => (data && (data['context'] as ManagementContext)) || null),\n    distinctUntilChanged()\n  );\n}\n\nfunction getCaseManagementRouteParamsAndContext(\n  route: ActivatedRoute\n): Observable<[ManagementContext, CaseManagementParams]> {\n  const params$ = getCaseManagementRouteParams(route, true);\n  const context$ = getContextObservable(route);\n\n  return context$.pipe(\n    switchMap(context => {\n      if (context === 'case') {\n        return combineLatest([of(context), params$]) as Observable<\n          [ManagementContext, CaseManagementParams]\n        >;\n      }\n\n      const fallbackParams: CaseManagementParams = {\n        caseDefinitionKey: '',\n        caseDefinitionVersionTag: '',\n      };\n      return of([context, fallbackParams] as [ManagementContext, CaseManagementParams]);\n    })\n  );\n}\n\nexport {\n  getCaseManagementRouteParams,\n  getContextObservable,\n  getCaseManagementRouteParamsAndContext,\n  getBuildingBlockManagementRouteParams,\n};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {DisplayTypeParameters} from '../models';\n\nconst getDisplayTypeParametersView = (displayTypeParameters: DisplayTypeParameters): string => {\n  if (displayTypeParameters?.dateFormat) {\n    return displayTypeParameters.dateFormat;\n  } else if (displayTypeParameters?.tagAmount) {\n    return displayTypeParameters.tagAmount.toString();\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      }\n\n      return `${acc}, ${keyValuePairString}`;\n    }, '');\n  }\n\n  return '-';\n};\n\nexport {getDisplayTypeParametersView};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst validateBsn = (value: string): {isValid: boolean; errorKey: string | null} => {\n  const baseKey = 'interface.dataValidation.bsnValidator';\n\n  if (!value) {\n    return {isValid: false, errorKey: `${baseKey}.valueEmpty`};\n  }\n\n  const trimmed = value.toString().trim();\n\n  if (!/^\\d+$/.test(trimmed)) {\n    return {isValid: false, errorKey: `${baseKey}.valueOnlyDigits`};\n  }\n\n  if (trimmed.length < 8 || trimmed.length > 9) {\n    return {isValid: false, errorKey: `${baseKey}.valueMinLength`};\n  }\n\n  if (trimmed.length > 9) {\n    return {isValid: false, errorKey: `${baseKey}.valueMaxLength`};\n  }\n\n  if (/^0+$/.test(trimmed) || /^9+$/.test(trimmed)) {\n    return {isValid: false, errorKey: `${baseKey}.valueAllZerosOrNines`};\n  }\n\n  const digits = trimmed.split('').map(d => parseInt(d, 10));\n  let sum = 0;\n  const length = digits.length;\n\n  for (let i = 0; i < length; i++) {\n    const weight = i === length - 1 ? -1 : length - i;\n    sum += digits[i] * weight;\n  }\n\n  if (sum % 11 !== 0) {\n    return {isValid: false, errorKey: `${baseKey}.valueElfCheck`};\n  }\n\n  return {isValid: true, errorKey: null};\n};\n\nexport {validateBsn};\n","/*\n * Copyright 2015-2026 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst DIACRITIC_MARKS_REGEX = /[\\u0300-\\u036f]/g;\nconst DISALLOWED_REGEX = /[^a-z0-9-_]+|-[^a-z0-9]+/g;\nconst DISALLOWED_CHAR_REGEX = /[^a-z0-9-_]/g;\nconst WHITESPACE_REGEX = /\\s+/g;\nconst UNDERSCORE_RUN_REGEX = /_[-_]+/g;\nconst LEADING_NON_LETTER_REGEX = /^[^a-z]+/;\nconst TRAILING_SEPARATOR_REGEX = /[-_]+$/;\n\n// Text to key: lowercase, no whitespace, starts with a letter — safe as an XML/BPMN id\nconst toKebabCase = (source: string, maxLength?: number): string => {\n  if (!source) return '';\n\n  const kebab = source\n    .normalize('NFD')\n    .replace(DIACRITIC_MARKS_REGEX, '')\n    .toLowerCase()\n    .replace(DISALLOWED_REGEX, '-')\n    .replace(UNDERSCORE_RUN_REGEX, '_')\n    .replace(LEADING_NON_LETTER_REGEX, '')\n    .replace(TRAILING_SEPARATOR_REGEX, '');\n\n  if (!maxLength || kebab.length <= maxLength) return kebab;\n\n  return truncateOnWordBoundary(kebab, maxLength);\n};\n\nconst truncateOnWordBoundary = (kebab: string, maxLength: number): string => {\n  const truncated = kebab.slice(0, maxLength);\n  const lastSeparator = truncated.lastIndexOf('-');\n  // Only cut on a word boundary when it does not swallow most of the text\n  const onBoundary = lastSeparator > maxLength / 2;\n\n  return (onBoundary ? truncated.slice(0, lastSeparator) : truncated).replace(\n    TRAILING_SEPARATOR_REGEX,\n    ''\n  );\n};\n\n// Same character rules as toKebabCase, but keeps a separator the user just typed\nconst sanitizeKey = (source: string): string => {\n  if (!source) return '';\n\n  return source\n    .normalize('NFD')\n    .replace(DIACRITIC_MARKS_REGEX, '')\n    .toLowerCase()\n    .replace(WHITESPACE_REGEX, '-')\n    .replace(DISALLOWED_CHAR_REGEX, '')\n    .replace(LEADING_NON_LETTER_REGEX, '');\n};\n\nexport {sanitizeKey, toKebabCase};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './http-error.utils';\nexport * from './router.utils';\nexport * from './url.utils';\nexport * from './global-notification.utils';\nexport * from './route-params.utils';\nexport * from './display-type.utils';\nexport * from './validate-bsn.utils';\nexport * from './kebab-case.utils';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {HttpClient} from '@angular/common/http';\nimport {ConfigService} from './config.service';\nimport {UrlUtils} from '../utils';\n\nexport abstract class BaseApiService {\n  private readonly _valtimoEndpointUri!: string;\n\n  constructor(\n    protected readonly httpClient: HttpClient,\n    protected readonly configService: ConfigService\n  ) {\n    this._valtimoEndpointUri = configService.config.valtimoApi.endpointUri;\n  }\n\n  public getApiUrl(urlPart: string): string {\n    const urlWithStartSlash = UrlUtils.formatUrlStartWithSlash(urlPart);\n    const urlFormattedWithTrailingSlash = `${UrlUtils.formatUrlTrailingSlash(this._valtimoEndpointUri, false)}${urlWithStartSlash}`;\n    return urlFormattedWithTrailingSlash;\n  }\n}\n","/*\n * Copyright 2015-2026 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {InjectionToken, Injector} from '@angular/core';\nimport {Auth} from './security.config';\nimport {MenuConfig} from './menu.config';\nimport {CSPHeaderParams} from 'csp-header';\n\nconst VALTIMO_CONFIG = new InjectionToken<ValtimoConfig>('valtimoConfig');\n\n// eslint-disable-next-line\nconst INITIALIZERS = new InjectionToken<(() => Function)[]>('initializers');\n\ndeclare type Direction = 'ASC' | 'DESC';\n\ninterface DefinitionColumn {\n  propertyName: string;\n  translationKey: string;\n  sortable?: boolean;\n  viewType?: string;\n  default?: boolean | string;\n  enum?: Array<string> | {[key: string]: string};\n  title?: string;\n  format?: string;\n  key?: string;\n  tagAmount?: number;\n}\n\ninterface CustomTaskList {\n  fields: Array<DefinitionColumn>;\n  defaultSortedColumn?: SortState;\n}\n\ninterface CustomLeftSidebar {\n  defaultMenuWidth?: number;\n  maxMenuWidth?: number;\n  minMenuWidth?: number;\n}\n\ninterface Sort {\n  name: string;\n  direction: Direction;\n}\n\ninterface SortState {\n  state: Sort;\n  isSorting: boolean;\n}\n\ninterface FormioOptions {\n  [key: string]: any;\n}\n\ninterface OverrideFormioOptions extends FormioOptions {\n  [key: string]: any;\n}\n\ninterface ValtimoConfigFeatureToggles {\n  applicationTitleAsSuffix?: boolean;\n  showUserNameInTopBar?: boolean;\n  showPlantATreeButton?: boolean;\n  disableCaseCount?: boolean;\n  caseListColumn?: boolean;\n  enableObjectManagement?: boolean;\n  largeLogoMargin?: boolean;\n  sortFilesByDate?: boolean;\n  returnToLastUrlAfterTokenExpiration?: boolean;\n  enableTabManagement?: boolean;\n  hideValtimoVersionsForNonAdmins?: boolean;\n  useStartEventNameAsStartFormTitle?: boolean;\n  allowUserThemeSwitching?: boolean;\n  enableCompactModeToggle?: boolean;\n  compactModeOnByDefault?: boolean;\n  enableUserNameInTopBarToggle?: boolean;\n  enableFormViewModel?: boolean;\n  enableIntermediateSave?: boolean;\n  enableTaskPanel?: boolean;\n  enableFormFlowBreadcrumbs?: boolean;\n  enablePbacDocumentenApiDocuments?: boolean;\n  enableSuppressDocumentError?: boolean;\n  enableIkoType?: boolean;\n  enableGenericCaseList?: boolean;\n  enableManualTaskListRefresh?: boolean;\n  menuCollapsedByDefault?: boolean;\n  enableOpenSearch?: boolean;\n  /**\n   * @deprecated DMN decision table editing is always enabled and is no longer gated by a\n   * feature toggle. This option is ignored and will be removed in a future major release.\n   */\n  experimentalDmnEditing?: boolean;\n  enableZgwFeatures?: boolean;\n  /**\n   * When enabled, the form.io token is kept in memory only and is no longer persisted to\n   * localStorage. Enable this when your forms rely solely on the Keycloak token (attached\n   * via the HTTP interceptor) and do not depend on form.io's own token-authenticated requests.\n   */\n  disableFormioTokenInLocalStorage?: boolean;\n}\n\ninterface ValtimoConfig {\n  // eslint-disable-next-line\n  logoSvgBase64?: string;\n  darkModeLogoSvgBase64?: string;\n  logoPngBase64?: string;\n  darkModeLogoPngBase64?: string;\n  applicationTitle?: string;\n  /**@deprecated Initializers will be removed in the future. */\n  initializers?: ((injector: Injector) => () => void)[];\n  menu: MenuConfig;\n  authentication: Auth;\n  production: boolean;\n  whitelistedDomains: string[];\n  langKey?: Language;\n  valtimoApi: {\n    endpointUri: string;\n  };\n  changePasswordUrl?: {\n    endpointUri: string;\n  };\n  swagger: {\n    endpointUri: string;\n  };\n  mockApi: {\n    endpointUri: string;\n  };\n  logger: any;\n  definitions: any;\n  openZaak: {\n    catalogus: string;\n  };\n  uploadProvider: UploadProvider;\n  caseFileSizeUploadLimitMB?: number;\n  caseFileUploadAcceptedFiles?: string;\n  supportedDocumentFileTypesToViewInBrowser?: string[];\n  defaultDefinitionTable: Array<DefinitionColumn>;\n  translationResources?: Array<string>;\n  featureToggles?: ValtimoConfigFeatureToggles;\n  visibleTaskListTabs?: Array<TaskListTab>;\n  visibleCaseListTabs?: Array<CaseListTab>;\n  customTaskList?: CustomTaskList;\n  customLeftSidebar?: CustomLeftSidebar;\n  caseObjectTypes?: {\n    [definitionNameId: string]: Array<string>;\n  };\n  overrideFeedbackMenuItemToMailTo?: FeedbackMailTo;\n  csp?: CSPHeaderParams;\n  formioOptions?: OverrideFormioOptions;\n}\n\ninterface FeedbackMailTo {\n  email?: string;\n  subjectTranslationKey: string;\n  bodyTranslationKey: string;\n}\n\nenum UploadProvider {\n  S3,\n  /**@deprecated This upload provider will be removed in the future. */\n  OPEN_ZAAK,\n  DOCUMENTEN_API,\n}\n\nenum TaskListTab {\n  MINE = 'mine',\n  OPEN = 'open',\n  ALL = 'all',\n  TEAM = 'team',\n}\n\nenum CaseListTab {\n  MINE = 'MINE',\n  OPEN = 'OPEN',\n  ALL = 'ALL',\n  TEAM = 'TEAM',\n}\n\nenum Language {\n  NL = 'nl',\n  EN = 'en',\n}\n\nexport {\n  VALTIMO_CONFIG,\n  INITIALIZERS,\n  Direction,\n  DefinitionColumn,\n  CustomTaskList,\n  CustomLeftSidebar,\n  Sort,\n  SortState,\n  OverrideFormioOptions,\n  ValtimoConfigFeatureToggles,\n  ValtimoConfig,\n  FeedbackMailTo,\n  UploadProvider,\n  TaskListTab,\n  CaseListTab,\n  Language,\n};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface EmailNotificationSettings {\n  emailNotifications: boolean;\n  taskNotifications: boolean;\n  emailNotificationOnMonday: boolean;\n  emailNotificationOnTuesday: boolean;\n  emailNotificationOnWednesday: boolean;\n  emailNotificationOnThursday: boolean;\n  emailNotificationOnFriday: boolean;\n  emailNotificationOnSaturday: boolean;\n  emailNotificationOnSunday: boolean;\n}\n","/*\n *\n * Copyright 2015-2026 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport {Observable} from 'rxjs';\n\nenum IncludeFunction {\n  ObjectManagementEnabled,\n  OpenSearchEnabled,\n  ZgwFeaturesEnabled,\n}\n\ninterface MenuItem {\n  title: string;\n  sequence?: number;\n  id?: string;\n  link?: string[] | null;\n  textClass?: string;\n  iconClass?: string;\n  children?: MenuItem[];\n  roles?: string[];\n  show?: boolean;\n  count$?: Observable<number>;\n  includeFunction?: IncludeFunction | IncludeFunction[];\n}\n\nexport {MenuItem, IncludeFunction};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {MenuItem} from './menu-item.model';\n\nexport interface MenuConfig {\n  menuItems: MenuItem[];\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Observable, ReplaySubject} from 'rxjs';\nimport {EmailNotificationSettings} from './email-notification-settings.model';\nimport {Injector} from '@angular/core';\n\nexport interface UserIdentity {\n  email: string;\n  firstName: string;\n  lastName: string;\n  roles: Array<string>;\n  username?: string;\n  id?: string;\n}\n\nexport class ValtimoUserIdentity implements UserIdentity {\n  private readonly _email: string;\n  private readonly _firstName: string;\n  private readonly _lastName: string;\n  private readonly _roles: string[];\n  private readonly _username?: string;\n  private readonly _id?: string;\n\n  constructor(\n    email: string,\n    firstName: string,\n    lastName: string,\n    roles: Array<string>,\n    username?: string,\n    id?: string\n  ) {\n    this._email = email;\n    this._firstName = firstName;\n    this._lastName = lastName;\n    this._roles = roles;\n    this._username = username;\n    this._id = id;\n  }\n\n  get email(): string {\n    return this._email;\n  }\n\n  get firstName(): string {\n    return this._firstName;\n  }\n\n  get lastName(): string {\n    return this._lastName;\n  }\n\n  get roles(): string[] {\n    return this._roles;\n  }\n\n  get username(): string | undefined {\n    return this._username;\n  }\n\n  get id(): string | undefined {\n    return this._id;\n  }\n}\n\nexport interface UserService {\n  getUserSubject(): ReplaySubject<UserIdentity>;\n\n  logout(): void;\n\n  getToken(): Promise<string>;\n\n  updateToken?(minValidity: number): Promise<boolean>;\n}\n\nexport interface EmailNotificationService {\n  getEmailNotificationSettings(): Observable<EmailNotificationSettings>;\n\n  updateEmailNotificationSettings(\n    settings: EmailNotificationSettings\n  ): Observable<EmailNotificationSettings>;\n}\n\nexport interface AuthProviders {\n  guardServiceProvider: any;\n  userServiceProvider: any;\n}\n\nexport interface Auth {\n  module: any;\n  // eslint-disable-next-line\n  initializer: (injector: Injector) => Function;\n  authProviders: AuthProviders;\n  options: any;\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ComponentFactoryResolver, ComponentRef, ViewContainerRef} from '@angular/core';\n\nexport interface ExtensionPoint {\n  module: string;\n  page: string;\n  section: string;\n  component: any;\n}\n\nexport class ExtensionLoader {\n  private readonly componentFactoryResolver: ComponentFactoryResolver = null;\n  private componentRef: ComponentRef<any> = null;\n\n  constructor(componentFactoryResolver: ComponentFactoryResolver) {\n    this.componentFactoryResolver = componentFactoryResolver;\n  }\n\n  loadExtensionPoint(viewContainerRef: ViewContainerRef, extensionPoint: ExtensionPoint) {\n    const componentFactory = this.componentFactoryResolver.resolveComponentFactory(\n      extensionPoint.component\n    );\n    this.componentRef = viewContainerRef.createComponent(componentFactory);\n  }\n\n  loadAndClearExtensionPoint(viewContainerRef: ViewContainerRef, extensionPoint: ExtensionPoint) {\n    const componentFactory = this.componentFactoryResolver.resolveComponentFactory(\n      extensionPoint.component\n    );\n    viewContainerRef.clear();\n    return (this.componentRef = viewContainerRef.createComponent(componentFactory));\n  }\n}\n\nexport class Extension {\n  public readonly _name: string;\n  public readonly _extensionPoint: BasicExtensionPoint;\n\n  constructor(name: string, extensionPoint: BasicExtensionPoint) {\n    this._name = name;\n    this._extensionPoint = extensionPoint;\n  }\n\n  get extensionPoint(): BasicExtensionPoint {\n    return this._extensionPoint;\n  }\n}\n\nexport class BasicExtensionPoint implements ExtensionPoint {\n  private readonly _module: string;\n  private readonly _page: string;\n  private readonly _section: string;\n  private readonly _component: any;\n\n  constructor(module: string, page: string, section: string, component: any) {\n    this._module = module;\n    this._page = page;\n    this._section = section;\n    this._component = component;\n  }\n\n  supports(module: string, page: string, section: string): boolean {\n    return this._module === module && this._page === page && this._section === section;\n  }\n\n  get module(): string {\n    return this._module;\n  }\n\n  get page(): string {\n    return this._page;\n  }\n\n  get section(): string {\n    return this._section;\n  }\n\n  get component(): any {\n    return this._component;\n  }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {TranslateHttpLoader} from '@ngx-translate/http-loader';\nimport {HttpClient} from '@angular/common/http';\n\nexport function HttpLoaderFactory(httpClient: HttpClient) {\n  return new TranslateHttpLoader(httpClient);\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport const ROLE_ADMIN = 'ROLE_ADMIN';\nexport const ROLE_USER = 'ROLE_USER';\nexport const ROLE_DEVELOPER = 'ROLE_DEVELOPER';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface User {\n  id: string;\n  fullName: string;\n  firstName: string;\n  lastName: string;\n  email: string;\n  roles: Array<string>;\n  langKey: string;\n  activated: boolean;\n  emailVerified: boolean;\n  verified: string;\n  status: string;\n}\n\nexport interface NamedUser {\n  id: string;\n  email: string;\n  firstName: string;\n  lastName: string;\n  label: string;\n  userName: string;\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface SortResult {\n  sorted: boolean;\n  unsorted: boolean;\n}\n\ninterface Pageable {\n  sort: SortResult;\n  pageSize: number;\n  pageNumber: number;\n  offset: number;\n  unpaged: boolean;\n  paged: boolean;\n}\n\ninterface Page<T> {\n  content: Array<T>;\n  pageable: Pageable;\n  last: boolean;\n  totalPages: number;\n  totalElements: number;\n  first: boolean;\n  sort: SortResult;\n  numberOfElements: number;\n  size: number;\n  number: number;\n  [key: string]: any;\n}\n\nexport {SortResult, Pageable, Page};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {SearchFieldMatchType} from '../generated';\n\ntype SearchFieldDataType = 'text' | 'number' | 'date' | 'datetime' | 'boolean' | 'bsn';\n\ntype SearchFieldFieldType =\n  | 'single'\n  | 'multiple'\n  | 'range'\n  | 'single-select-dropdown'\n  | 'multi-select-dropdown';\n\n\ntype SearchFieldBoolean = 'booleanPositive' | 'booleanNegative';\n\ntype BooleanValueSingle = boolean;\n\ntype TextValueSingle = string;\ntype ValueMultiple = Array<\n  BooleanValueSingle | TextValueSingle | NumberValueSingle | NumberValueRange\n>;\n\ntype NumberValueSingle = number;\n\ninterface NumberValueRange {\n  start: NumberValueSingle;\n  end: NumberValueSingle;\n}\n\ntype SearchFieldValue =\n  | BooleanValueSingle\n  | TextValueSingle\n  | ValueMultiple\n  | NumberValueSingle\n  | NumberValueRange;\n\ninterface SearchField {\n  ownerId?: string;\n  title?: string;\n  key: string;\n  path?: string;\n  order?: number;\n  dataType: SearchFieldDataType;\n  fieldType: SearchFieldFieldType;\n  matchType?: SearchFieldMatchType;\n  dropdownDataProvider?: string;\n  uuid?: string;\n}\n\ninterface SearchFieldWithValue extends SearchField {\n  value: SearchFieldValue;\n}\n\ninterface SearchFieldValues {\n  [searchFieldKey: string]: SearchFieldValue;\n}\n\ninterface SearchFieldColumnView {\n  title: string;\n  key: string;\n  path: string;\n  dataType: string;\n  fieldType: string;\n}\n\ntype SearchOperator = 'AND' | 'OR';\n\ntype AssigneeFilter = 'OPEN' | 'MINE' | 'ALL' | 'TEAM';\n\ninterface SearchFilter {\n  key: string;\n  values: Array<string>;\n  multiValue?: boolean;\n}\n\ninterface SearchFilterRange {\n  key: string;\n  rangeFrom: string;\n  rangeTo: string;\n}\n\nexport {\n  SearchFieldDataType,\n  SearchFieldFieldType,\n  SearchFieldMatchType,\n  SearchFieldBoolean,\n  SearchField,\n  SearchFieldValue,\n  SearchFieldWithValue,\n  SearchFieldValues,\n  SearchFieldColumnView,\n  SearchOperator,\n  SearchFilter,\n  SearchFilterRange,\n  AssigneeFilter,\n};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface Versions {\n  frontendLibraries: string;\n}\n\nexport {Versions};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface UserSettings {\n  collapsibleWidescreenMenu?: boolean;\n  languageCode?: string;\n  compactMode?: boolean;\n  showUserNameInTopBar?: boolean;\n  preferredTheme?: string;\n  caseListPageSizes?: {[key: string]: number};\n  taskListPageSizes?: {[key: string]: number};\n  taskPanelWidth?: number;\n}\n\nexport {UserSettings};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface ITranslationResource {\n  prefix: string;\n  suffix?: string;\n  optional?: boolean;\n}\n\nexport {ITranslationResource};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ntype LocalizationContent = object;\n\ninterface Localization {\n  languageKey: string;\n  content: LocalizationContent;\n}\n\ninterface MergedLocalizations {\n  [languageKey: string]: LocalizationContent;\n}\n\nexport {Localization, LocalizationContent, MergedLocalizations};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Type} from '@angular/core';\n\ninterface FormViewModel {\n  component: Type<any>;\n}\n\nexport {FormViewModel};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {editor} from 'monaco-editor';\n\ntype MonacoEditor = typeof editor;\n\ninterface ValtimoWindow extends Window {\n  monaco?: {\n    editor?: MonacoEditor;\n  };\n  flags?: {\n    formioValueResolverSelectorComponentRegistered: boolean;\n  };\n}\n\nexport {ValtimoWindow};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ntype ManagementContext = 'case' | 'independent' | 'buildingBlock';\n\nexport {ManagementContext};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport enum TagColor {\n  WarmGray = 'WARMGRAY',\n  Red = 'RED',\n  Magenta = 'MAGENTA',\n  Purple = 'PURPLE',\n  Blue = 'BLUE',\n  Cyan = 'CYAN',\n  Teal = 'TEAL',\n  Green = 'GREEN',\n  Gray = 'GRAY',\n  CoolGray = 'COOLGRAY',\n  HighContrast = 'HIGHCONTRAST',\n  Outline = 'OUTLINE',\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface GlobalConfiguration {\n  canUpdateGlobalConfiguration: boolean;\n}\n\nexport {GlobalConfiguration};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ntype ModalMode = 'add' | 'edit' | 'delete' | 'duplicate';\n\ntype ModalCloseEvent = 'close' | 'closeAndRefresh';\n\nexport {ModalMode, ModalCloseEvent};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface DisplayType {\n  type: string;\n  displayTypeParameters: DisplayTypeParameters;\n}\n\ninterface DisplayTypeParameters {\n  enum?: {\n    [key: string]: string;\n  };\n  dateFormat?: string;\n  tagAmount?: number;\n}\n\nexport {DisplayTypeParameters, DisplayType};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Type} from '@angular/core';\nimport {Observable} from 'rxjs';\n\ninterface BuildingBlockManagementParams {\n  buildingBlockDefinitionKey: string;\n  buildingBlockDefinitionVersionTag: string;\n}\n\ninterface BuildingBlockManagementTabConfig {\n  translationKey: string;\n  component: Type<any>;\n  tabRoute: string;\n  enabled$?: Observable<boolean>;\n}\n\nexport {BuildingBlockManagementParams, BuildingBlockManagementTabConfig};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './config';\nexport * from './email-notification-settings.model';\nexport * from './menu-item.model';\nexport * from './menu.config';\nexport * from './security.config';\nexport * from './extension.model';\nexport * from './http-loader';\nexport * from './roles';\nexport * from './user-management.model';\nexport * from './page';\nexport * from './search.model';\nexport * from './versions.model';\nexport * from './user-settings.model';\nexport * from './translation.model';\nexport * from './localization.model';\nexport * from './form-view-model.model';\nexport * from './window.model';\nexport * from './management.model';\nexport * from './tag-color.model';\nexport * from './global-configuration.model';\nexport * from './case-management.model';\nexport * from './modal.model';\nexport * from './display-type.model';\nexport * from './building-block-management.model';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ComponentFactoryResolver, Inject, Injectable, ViewContainerRef} from '@angular/core';\nimport {\n  Extension,\n  ExtensionLoader,\n  ExtensionPoint,\n  VALTIMO_CONFIG,\n  ValtimoConfig,\n  ValtimoConfigFeatureToggles,\n} from '../models';\nimport {UrlUtils} from '../utils';\nimport {BehaviorSubject, distinctUntilChanged, map, Observable} from 'rxjs';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ConfigService {\n  private readonly extensionLoader: ExtensionLoader;\n  private readonly extensions: Array<Extension> = [];\n  private readonly DEFAULT_APPLICATION_TITLE = 'Valtimo';\n\n  private readonly _featureToggles$ = new BehaviorSubject<ValtimoConfigFeatureToggles>(\n    this.valtimoConfig?.featureToggles ?? ({} as ValtimoConfigFeatureToggles)\n  );\n\n  public readonly featureToggles$: Observable<ValtimoConfigFeatureToggles> =\n    this._featureToggles$.asObservable();\n\n  constructor(\n    @Inject(VALTIMO_CONFIG) private valtimoConfig: ValtimoConfig,\n    private componentFactoryResolver: ComponentFactoryResolver\n  ) {\n    this.extensionLoader = new ExtensionLoader(componentFactoryResolver);\n  }\n\n  public get config(): ValtimoConfig {\n    const config = this.valtimoConfig;\n    const translationResourcesConfig = config.translationResources;\n\n    return {\n      ...config,\n      initializers: config.initializers || [],\n      whitelistedDomains: config.whitelistedDomains.map(domain =>\n        UrlUtils.formatUrlTrailingSlash(domain, false)\n      ),\n      mockApi: {\n        ...config.mockApi,\n        endpointUri: UrlUtils.formatUrlTrailingSlash(config.mockApi.endpointUri, true),\n      },\n      swagger: {\n        ...config.swagger,\n        endpointUri: UrlUtils.formatUrlTrailingSlash(config.swagger.endpointUri, false),\n      },\n      valtimoApi: {\n        ...config.valtimoApi,\n        endpointUri: UrlUtils.formatUrlTrailingSlash(config.valtimoApi.endpointUri, true),\n      },\n      ...(translationResourcesConfig && {\n        translationResources: translationResourcesConfig.map(resource =>\n          UrlUtils.formatUrlTrailingSlash(resource, true)\n        ),\n      }),\n      applicationTitle: config.applicationTitle || this.DEFAULT_APPLICATION_TITLE,\n    };\n  }\n\n  public get featureToggles(): ValtimoConfigFeatureToggles {\n    return this._featureToggles$.value;\n  }\n\n  public get config$(): Observable<ValtimoConfig> {\n    return this._featureToggles$.pipe(\n      map(featureToggles => ({...this.config, featureToggles}))\n    );\n  }\n\n  public get initializers() {\n    return this.valtimoConfig?.initializers || [];\n  }\n\n  public addExtension(extension: Extension) {\n    return this.extensions.push(extension);\n  }\n\n  public getSupportedExtensionPoint(module: string, page: string, section: string) {\n    return this.extensions.find(extension =>\n      extension.extensionPoint.supports(module, page, section)\n    );\n  }\n\n  public getSupportedExtensionPoints(module: string, page: string, section: string) {\n    return this.extensions.filter(extension =>\n      extension.extensionPoint.supports(module, page, section)\n    );\n  }\n\n  public loadExtensionPoint(viewContainerRef: ViewContainerRef, extensionPoint: ExtensionPoint) {\n    this.extensionLoader.loadExtensionPoint(viewContainerRef, extensionPoint);\n  }\n\n  public loadAndReturnExtensionPoint(\n    viewContainerRef: ViewContainerRef,\n    extensionPoint: ExtensionPoint\n  ) {\n    return this.extensionLoader.loadAndClearExtensionPoint(viewContainerRef, extensionPoint);\n  }\n\n  public getFeatureToggleObservable(\n    featureToggle: keyof ValtimoConfigFeatureToggles,\n    defaultValue = false\n  ): Observable<boolean> {\n    return this.featureToggles$.pipe(\n      map(featureToggles =>\n        featureToggles?.hasOwnProperty(featureToggle)\n          ? !!featureToggles[featureToggle]\n          : defaultValue\n      ),\n      distinctUntilChanged()\n    );\n  }\n\n  public getFeatureToggle(featureToggle: keyof ValtimoConfigFeatureToggles): boolean {\n    return !!(this.featureToggles && this.featureToggles[featureToggle]);\n  }\n\n  public patchFeatureToggles(overrides: Partial<ValtimoConfigFeatureToggles>): void {\n    const merged = {\n      ...this._featureToggles$.value,\n      ...overrides,\n    };\n    this.valtimoConfig = {\n      ...this.valtimoConfig,\n      featureToggles: merged,\n    };\n    this._featureToggles$.next(merged as ValtimoConfigFeatureToggles);\n  }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {ComponentRef, EventEmitter, Injectable} from '@angular/core';\nimport {\n  ActionableContent,\n  ActionableNotification,\n  Notification,\n  NotificationContent,\n  NotificationService,\n  Toast,\n  ToastContent,\n} from 'carbon-components-angular';\nimport {take} from 'rxjs';\nimport {getNotificationObject} from '../utils';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class GlobalNotificationService {\n  private _notificationService: NotificationService | null = null;\n  private readonly _notificationQueue: (Notification & {id: string})[] = [];\n\n  public setNotificationService(service: NotificationService): void {\n    this._notificationService = service;\n  }\n\n  public getNotificationService(): NotificationService | null {\n    return this._notificationService;\n  }\n\n  public showNotification(\n    notificationObj: NotificationContent | ToastContent | ActionableContent,\n    notificationComp: typeof Notification = Notification\n  ): Notification | null {\n    if (!this._notificationService) return null;\n\n    return this.handleNotificationRef(\n      this._notificationService?.showNotification(\n        getNotificationObject(notificationObj),\n        notificationComp\n      )\n    );\n  }\n\n  public showToast(\n    notificationObj: NotificationContent | ToastContent,\n    notificationComp: typeof Toast = Toast\n  ): Notification | null {\n    if (!this._notificationService) return null;\n\n    return this.handleNotificationRef(\n      this._notificationService?.showToast(getNotificationObject(notificationObj), notificationComp)\n    );\n  }\n\n  public showActionable(\n    notificationObj: ActionableContent,\n    notificationComp: typeof ActionableNotification = ActionableNotification\n  ): Notification | null {\n    if (!this._notificationService) return null;\n\n    return this.handleNotificationRef(\n      this._notificationService?.showActionable(\n        getNotificationObject(notificationObj),\n        notificationComp\n      )\n    );\n  }\n\n  public close(notificationRef: any): void {\n    notificationRef.close.emit();\n  }\n\n  public getSmartTimeout(notificationObj: any): number | null {\n    if (!this._notificationService) return null;\n    return this._notificationService?.getSmartTimeout(notificationObj);\n  }\n\n  public getNotificationRefs(): ComponentRef<any>[] | null {\n    if (!this._notificationService) return null;\n    return this._notificationService?.notificationRefs;\n  }\n\n  public getOnCloseEmitter(): EventEmitter<any> | null {\n    if (!this._notificationService) return null;\n    return this._notificationService?.onClose;\n  }\n\n  public ngOnDestroy(): void {\n    this._notificationService?.ngOnDestroy();\n    this._notificationQueue.splice(0, this._notificationQueue.length);\n  }\n\n  private handleNotificationRef(notificationRef: any): Notification | null {\n    const notification = {\n      ...notificationRef,\n      id:\n        notificationRef.toastID ??\n        notificationRef.notificationID ??\n        notificationRef.actionableNotificationID,\n    };\n\n    if (this._notificationQueue.length > 3) {\n      this._notificationQueue.splice(0, 1);\n      this.close(notificationRef);\n    }\n\n    this._notificationQueue.push(notification);\n    setTimeout(() => this.removeNotificationInQueue(notification.id), 4000);\n\n    notificationRef.close\n      .pipe(take(1))\n      .subscribe(() => this.removeNotificationInQueue(notification.id));\n\n    return notificationRef;\n  }\n\n  private removeNotificationInQueue(id: string): void {\n    const index = this._notificationQueue.findIndex(\n      (notification: Notification & {id: string}) => notification.id === id\n    );\n    if (index === -1) return;\n\n    this._notificationQueue.splice(index, 1);\n  }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {Localization, LocalizationContent, MergedLocalizations} from '../models';\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\nimport {ConfigService} from './config.service';\nimport {map, Observable, of} from 'rxjs';\nimport {catchError} from 'rxjs/operators';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class LocalizationService {\n  private readonly valtimoApiUri!: string;\n\n  constructor(\n    private readonly http: HttpClient,\n    private readonly configService: ConfigService\n  ) {\n    this.valtimoApiUri = configService?.config?.valtimoApi?.endpointUri;\n  }\n\n  public getLocalization(languageKey: string): Observable<LocalizationContent> {\n    return this.http\n      .get<LocalizationContent>(`${this.valtimoApiUri}v1/localization/${languageKey}`, {\n        headers: new HttpHeaders().set('X-Skip-Interceptor', '403'),\n      })\n      .pipe(catchError(() => of({})));\n  }\n\n  public getLocalizations(): Observable<Localization[]> {\n    return this.http.get<Localization[]>(`${this.valtimoApiUri}v1/localization`);\n  }\n\n  public getMergedLocalizations(): Observable<MergedLocalizations> {\n    return this.getLocalizations().pipe(\n      map(res => res.reduce((acc, curr) => ({...acc, [curr.languageKey]: curr.content}), {}))\n    );\n  }\n\n  public updateLocalization(\n    languageKey: string,\n    updatedLocalizationContent: LocalizationContent\n  ): Observable<LocalizationContent> {\n    return this.http.put<LocalizationContent>(\n      `${this.valtimoApiUri}management/v1/localization/${languageKey}`,\n      updatedLocalizationContent\n    );\n  }\n\n  public updateLocalizations(updatedLocalizations: Localization[]): Observable<Localization[]> {\n    return this.http.put<Localization[]>(\n      `${this.valtimoApiUri}management/v1/localization`,\n      updatedLocalizations\n    );\n  }\n}\n","/*\n * Copyright 2015-2026 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {IncludeFunction} from '../models';\nimport {ConfigService} from './config.service';\nimport {combineLatest, map, Observable, of} from 'rxjs';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class MenuIncludeService {\n  constructor(private readonly configService: ConfigService) {}\n\n  getIncludeFunctionObservable(\n    includeFunction: IncludeFunction | IncludeFunction[]\n  ): Observable<boolean> {\n    if (Array.isArray(includeFunction)) {\n      if (includeFunction.length === 0) {\n        return of(true);\n      }\n      const observables = includeFunction.map(fn => this.getSingleIncludeFunction(fn));\n      return combineLatest(observables).pipe(map(results => results.every(result => result)));\n    }\n    return this.getSingleIncludeFunction(includeFunction);\n  }\n\n  private getSingleIncludeFunction(includeFunction: IncludeFunction): Observable<boolean> {\n    switch (includeFunction) {\n      case IncludeFunction.ObjectManagementEnabled:\n        return this.configService.getFeatureToggleObservable('enableObjectManagement', true);\n      case IncludeFunction.OpenSearchEnabled:\n        return this.configService.getFeatureToggleObservable('enableOpenSearch', false);\n      case IncludeFunction.ZgwFeaturesEnabled:\n        return this.configService.getFeatureToggleObservable('enableZgwFeatures', false);\n      default:\n        return of(true);\n    }\n  }\n\n  /**\n   * @deprecated Use getIncludeFunctionObservable instead\n   */\n  getIncludeFunction(includeFunction: IncludeFunction): Observable<boolean> {\n    return this.getSingleIncludeFunction(includeFunction);\n  }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {UserSettings} from '../models';\nimport {HttpClient} from '@angular/common/http';\nimport {ConfigService} from './config.service';\nimport {Observable} from 'rxjs';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class UserSettingsService {\n  private readonly valtimoApiUri!: string;\n\n  constructor(\n    private readonly http: HttpClient,\n    private readonly configService: ConfigService\n  ) {\n    this.valtimoApiUri = configService?.config?.valtimoApi?.endpointUri;\n  }\n\n  getUserSettings(): Observable<UserSettings> {\n    return this.http.get<UserSettings>(`${this.valtimoApiUri}v1/user/settings`);\n  }\n\n  saveUserSettings(settings: UserSettings): Observable<any> {\n    return this.http.put(`${this.valtimoApiUri}v1/user/settings`, settings);\n  }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Versions} from '../models';\n\nconst VERSIONS: Versions = {\n  frontendLibraries: '13.51.0',\n};\n\nexport {VERSIONS};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {InjectionToken} from '@angular/core';\nimport {CaseManagementTabConfig} from '../models';\n\nconst CASE_MANAGEMENT_TAB_TOKEN = new InjectionToken<CaseManagementTabConfig>(\n  'Specify a component to display per configured tab translation key.'\n);\n\nexport {CASE_MANAGEMENT_TAB_TOKEN};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {InjectionToken} from '@angular/core';\nimport {FormViewModel} from '../models';\n\nconst FORM_VIEW_MODEL_TOKEN = new InjectionToken<FormViewModel>(\n  'Specify the form view model component.'\n);\n\nexport {FORM_VIEW_MODEL_TOKEN};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {HttpHeaders} from '@angular/common/http';\n\nconst InterceptorSkip = 'X-Skip-Interceptor';\nconst InterceptorSkipHeader = new HttpHeaders().set(InterceptorSkip, 'all');\n\nexport {InterceptorSkip, InterceptorSkipHeader};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {InjectionToken, Type} from '@angular/core';\n\nconst CASE_CONFIGURATION_EXTENSIONS_TOKEN = new InjectionToken<Type<any>[]>(\n  'Specify components to display on on the case management general page.'\n);\n\nexport {CASE_CONFIGURATION_EXTENSIONS_TOKEN};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {InjectionToken} from '@angular/core';\n\nconst IKO_TOKEN = new InjectionToken<boolean>('IKO is enabled when this token is provided');\n\nexport {IKO_TOKEN};\n","/*\n * Copyright 2015-2026 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {InjectionToken} from '@angular/core';\nimport {BuildingBlockManagementTabConfig} from '../models';\n\nconst BUILDING_BLOCK_MANAGEMENT_TAB_TOKEN = new InjectionToken<BuildingBlockManagementTabConfig[]>(\n  'Specify components to display as tabs on the building block management detail page.'\n);\n\nexport {BUILDING_BLOCK_MANAGEMENT_TAB_TOKEN};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './versions';\nexport * from './case-management-tab-token';\nexport * from './form-view-model-token';\nexport * from './error.constants';\nexport * from './case-configuration-extensions-token';\nexport * from './iko.token';\nexport * from './building-block-management-tab-token';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\nimport {map, Observable, of} from 'rxjs';\nimport {ConfigService} from './config.service';\nimport {BaseApiService} from './base-api.service';\nimport {GlobalConfiguration} from '../models';\nimport {catchError} from 'rxjs/operators';\nimport {InterceptorSkip} from '../constants';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class EnvironmentService extends BaseApiService {\n  constructor(\n    protected readonly httpClient: HttpClient,\n    protected readonly configService: ConfigService\n  ) {\n    super(httpClient, configService);\n  }\n\n  public canUpdateGlobalConfiguration(): Observable<boolean> {\n    return this.httpClient\n      .get<GlobalConfiguration>(this.getApiUrl('management/v1/case-definition/check'), {\n        headers: new HttpHeaders().set(InterceptorSkip, '404'),\n      })\n      .pipe(\n        map(response => response.canUpdateGlobalConfiguration),\n        catchError(() => of(true))\n      );\n  }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\nimport {map, Observable, of} from 'rxjs';\nimport {ConfigService} from './config.service';\nimport {BaseApiService} from './base-api.service';\nimport {InterceptorSkip} from '../constants';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class DraftVersionService extends BaseApiService {\n  constructor(\n    protected readonly httpClient: HttpClient,\n    protected readonly configService: ConfigService\n  ) {\n    super(httpClient, configService);\n  }\n\n  public isDraftVersion(\n    caseDefinitionKey: string,\n    caseDefinitionVersionTag: string\n  ): Observable<boolean> {\n    if (!caseDefinitionKey || !caseDefinitionVersionTag) {\n      return of(false);\n    }\n\n    return this.httpClient\n      .get<any>(\n        this.getApiUrl(\n          `management/v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}`\n        ),\n        {\n          headers: new HttpHeaders().set(InterceptorSkip, '403'),\n        }\n      )\n      .pipe(map(caseDefinition => !caseDefinition.final));\n  }\n\n  public isDraftVersionBuildingBlock(\n    buildingBlockDefinitionKey: string,\n    buildingBlockDefinitionVersionTag: string\n  ): Observable<boolean> {\n    if (!buildingBlockDefinitionKey || !buildingBlockDefinitionVersionTag) {\n      return of(false);\n    }\n\n    return this.httpClient\n      .get<any>(\n        this.getApiUrl(\n          `management/v1/building-block/${buildingBlockDefinitionKey}/version/${buildingBlockDefinitionVersionTag}`\n        ),\n        {\n          headers: new HttpHeaders().set(InterceptorSkip, '403'),\n        }\n      )\n      .pipe(map(buildingBlockDefinition => !buildingBlockDefinition.final));\n  }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {BaseApiService} from './base-api.service';\nimport {HttpClient} from '@angular/common/http';\nimport {ConfigService} from './config.service';\nimport {combineLatest, map, Observable, of} from 'rxjs';\nimport {EnvironmentService} from './environment.service';\nimport {DraftVersionService} from './draft-version.service';\nimport {Injectable} from '@angular/core';\nimport {BuildingBlockManagementParams, CaseManagementParams} from '../models';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class EditPermissionsService extends BaseApiService {\n  constructor(\n    protected readonly httpClient: HttpClient,\n    protected readonly configService: ConfigService,\n    public readonly environmentService: EnvironmentService,\n    public readonly draftVersionService: DraftVersionService\n  ) {\n    super(httpClient, configService);\n  }\n\n  public hasEditPermissions(\n    caseDefinitionKey: string,\n    caseDefinitionVersionTag: string\n  ): Observable<boolean> {\n    return combineLatest([\n      this.environmentService.canUpdateGlobalConfiguration(),\n      this.draftVersionService.isDraftVersion(caseDefinitionKey, caseDefinitionVersionTag),\n    ]).pipe(map(([canUpdate, isDraftVersion]) => canUpdate && isDraftVersion));\n  }\n\n  public hasPermissionsToEditBasedOnContext(\n    params: CaseManagementParams | BuildingBlockManagementParams,\n    context: string\n  ): Observable<boolean> {\n    if (context === 'case') {\n      const caseManagementParams = params as CaseManagementParams;\n      return this.hasEditPermissions(\n        caseManagementParams.caseDefinitionKey,\n        caseManagementParams.caseDefinitionVersionTag\n      );\n    } else if (context === 'independent') {\n      return this.environmentService.canUpdateGlobalConfiguration();\n    } else if (context === 'buildingBlock') {\n      return of(true);\n    }\n    return of(false);\n  }\n}\n","/*\n * Copyright 2015-2026 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, map, Observable} from 'rxjs';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ConfigurationIssueService {\n  private readonly _unresolvedIssueTypes$ = new BehaviorSubject<Set<string>>(new Set());\n\n  public setUnresolvedIssueTypes(issueTypes: string[]): void {\n    this._unresolvedIssueTypes$.next(new Set(issueTypes));\n  }\n\n  public readonly hasAnyIssues$: Observable<boolean> = this._unresolvedIssueTypes$.pipe(\n    map(types => types.size > 0)\n  );\n\n  public hasIssue$(issueType: string): Observable<boolean> {\n    return this._unresolvedIssueTypes$.pipe(map(types => types.has(issueType)));\n  }\n\n  public hasAnyOfIssues$(issueTypes: string[]): Observable<boolean> {\n    return this._unresolvedIssueTypes$.pipe(map(types => issueTypes.some(t => types.has(t))));\n  }\n}\n","/*\n * Copyright 2015-2026 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './base-api.service';\nexport * from './config.service';\nexport * from './global-notification.service';\nexport * from './localization.service';\nexport * from './menu-include.service';\nexport * from './user-settings.service';\nexport * from './environment.service';\nexport * from './draft-version.service';\nexport * from './edit-permissions.service';\nexport * from './configuration-issue.service';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {Component, OnInit} from '@angular/core';\nimport {NotificationService} from 'carbon-components-angular';\nimport {GlobalNotificationService} from '../services';\n\n@Component({\n  selector: 'valtimo-global-notification',\n  template: ``,\n  styles: `\n    ::ng-deep.cds--toast-notification {\n      width: 100%;\n    }\n  `,\n  providers: [NotificationService],\n  standalone: true,\n  imports: [CommonModule],\n})\nexport class GlobalNotificationComponent implements OnInit {\n  constructor(\n    private readonly globalNotificationService: GlobalNotificationService,\n    private readonly notificationService: NotificationService\n  ) {}\n\n  public ngOnInit(): void {\n    this.globalNotificationService.setNotificationService(this.notificationService);\n  }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, Input, OnInit, ViewChild, ViewContainerRef} from '@angular/core';\nimport {ConfigService} from '../services/config.service';\nimport {Extension, ExtensionLoader, ExtensionPoint} from '../models';\n\n@Component({\n  selector: 'valtimo-extension',\n  templateUrl: './extension.component.html',\n  styleUrls: ['./extension.component.css'],\n  standalone: false,\n})\nexport class ExtensionComponent implements OnInit {\n  public extensionLoader: ExtensionLoader = null;\n  public selectedExtensionPoint: ExtensionPoint;\n  public supportedExtensions: Array<Extension>;\n  @Input() public module: string;\n  @Input() public page: string;\n  @Input() public section: string;\n  @ViewChild('injectExtension', {read: ViewContainerRef, static: true})\n  viewContainerRef: ViewContainerRef;\n\n  constructor(private configService: ConfigService) {}\n\n  ngOnInit() {\n    this.configService\n      .getSupportedExtensionPoints(this.module, this.page, this.section)\n      .forEach(extension => {\n        this.configService.loadExtensionPoint(this.viewContainerRef, extension.extensionPoint);\n      });\n  }\n}\n","<!--\n  ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n  ~\n  ~ Licensed under EUPL, Version 1.2 (the \"License\");\n  ~ you may not use this file except in compliance with the License.\n  ~ You may obtain a copy of the License at\n  ~\n  ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n  ~\n  ~ Unless required by applicable law or agreed to in writing, software\n  ~ distributed under the License is distributed on an \"AS IS\" basis,\n  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n  ~ See the License for the specific language governing permissions and\n  ~ limitations under the License.\n  -->\n\n<ng-template #injectExtension></ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ModuleWithProviders, NgModule} from '@angular/core';\nimport {ConfigService} from './services/config.service';\nimport {VALTIMO_CONFIG, ValtimoConfig} from './models';\nimport {ExtensionComponent} from './extension/extension.component';\n\n@NgModule({\n  declarations: [ExtensionComponent],\n  imports: [],\n  exports: [ExtensionComponent],\n})\nexport class ConfigModule {\n  static forRoot(config: ValtimoConfig): ModuleWithProviders<ConfigModule> {\n    return {\n      ngModule: ConfigModule,\n      providers: [\n        ConfigService,\n        {\n          provide: VALTIMO_CONFIG,\n          useValue: config,\n        },\n      ],\n    };\n  }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {Observable, of} from 'rxjs';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class MockTranslateService {\n  public stream(key: string): Observable<any> {\n    return of(null);\n  }\n\n  public instant(key: string): string {\n    return '';\n  }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {Observable, of} from 'rxjs';\nimport {KeycloakProfile} from 'keycloak-js';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class MockKeycloakService {\n  public get keycloakEvents$(): Observable<{type: string}> {\n    return of({type: ''});\n  }\n\n  public isLoggedIn(): Observable<boolean> {\n    return of(true);\n  }\n\n  private readonly MOCK_USER_PROFILE: KeycloakProfile = {\n    id: '',\n    username: '',\n    email: '',\n    firstName: '',\n    lastName: '',\n    enabled: true,\n    emailVerified: true,\n    totp: true,\n    createdTimestamp: 0,\n  };\n\n  public async loadUserProfile(): Promise<KeycloakProfile> {\n    return this.MOCK_USER_PROFILE;\n  }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class MockIconService {\n  public registerAll(value: Array<any>): void {\n    return;\n  }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './mock-translate.service';\nexport * from './mock-keycloak.service';\nexport * from './mock-icon.service';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './services';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {HttpBackend, HttpClient} from '@angular/common/http';\nimport {catchError, map, switchMap} from 'rxjs/operators';\nimport {combineLatest, forkJoin, Observable, of} from 'rxjs';\nimport {deepmerge} from 'deepmerge-ts';\nimport {ITranslationResource} from '../models';\nimport {TranslateLoader} from '@ngx-translate/core';\nimport {LocalizationService} from '../services/localization.service';\n\nexport class CustomMultiTranslateHttpLoader implements TranslateLoader {\n  private readonly _handler: HttpBackend;\n  private readonly _httpClient: HttpClient;\n  private readonly _resourcesPrefix: Array<string> | ITranslationResource[];\n  private readonly _localizationService: LocalizationService;\n  constructor(\n    _handler: HttpBackend,\n    _httpClient: HttpClient,\n    _localizationService: LocalizationService,\n    _resourcesPrefix: Array<string> | ITranslationResource[]\n  ) {\n    this._handler = _handler;\n    this._httpClient = _httpClient;\n    this._resourcesPrefix = _resourcesPrefix;\n    this._localizationService = _localizationService;\n  }\n  getTranslation(lang: string): Observable<any> {\n    const requests = this._resourcesPrefix.map(resource => {\n      let path;\n      if (resource.prefix) path = `${resource.prefix}${lang}${resource.suffix || '.json'}`;\n      else path = `${resource}${lang}.json`;\n      return new HttpClient(this._handler).get(path).pipe(\n        catchError(res => {\n          if (!resource.optional) {\n            console.group();\n            console.error('Something went wrong for the following translation file:', path);\n            console.error(res);\n            console.groupEnd();\n          }\n          return of({});\n        })\n      );\n    });\n\n    return forkJoin(requests).pipe(\n      switchMap(localResourcesResponse =>\n        combineLatest([of(localResourcesResponse), this._localizationService.getLocalization(lang)])\n      ),\n      map(([localResourcesResponse, localizationResponse]) =>\n        deepmerge(...[...localResourcesResponse, localizationResponse])\n      )\n    );\n  }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {HttpBackend, HttpClient} from '@angular/common/http';\nimport {ConfigService} from '../services/config.service';\nimport {CustomMultiTranslateHttpLoader} from './custom-multi-translate-http-loader';\nimport {LocalizationService} from '../services/localization.service';\n\nexport function CustomMultiTranslateHttpLoaderFactory(\n  http: HttpBackend,\n  httpClient: HttpClient,\n  configService: ConfigService,\n  localizationService: LocalizationService\n) {\n  const translationResources = configService?.config?.translationResources;\n\n  return new CustomMultiTranslateHttpLoader(http, httpClient, localizationService, [\n    './valtimo-translation/core/',\n    ...(translationResources &&\n    Array.isArray(translationResources) &&\n    translationResources.length > 0\n      ? translationResources\n      : []),\n  ]);\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {HttpBackend} from '@angular/common/http';\nimport {MultiTranslateHttpLoader} from 'ngx-translate-multi-http-loader';\nimport {ConfigService} from '../services/config.service';\n\nexport function MultiTranslateHttpLoaderFactory(http: HttpBackend, configService: ConfigService) {\n  const translationResources = configService.config.translationResources;\n\n  return new MultiTranslateHttpLoader(http, [\n    './valtimo-translation/core/',\n    ...(translationResources &&\n    Array.isArray(translationResources) &&\n    translationResources.length > 0\n      ? translationResources\n      : []),\n  ]);\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './custom-multi-translate-http-loader';\nexport * from './custom-multi-translate-http-loader-factory';\nexport * from './multi-translate-http-loader-factory';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {InjectionToken, Type} from '@angular/core';\n\nconst ZGW_OBJECT_TYPE_COMPONENT_TOKEN = new InjectionToken<Type<any>>(\n  'Specify a component to display ZGW object types.'\n);\n\nexport {ZGW_OBJECT_TYPE_COMPONENT_TOKEN};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {InjectionToken, Type} from '@angular/core';\n\nconst ZGW_DOCUMENTEN_API_DOCUMENTS_COMPONENT_TOKEN = new InjectionToken<Type<any>>(\n  'Specify a component to display on documents tab when Documenten API is set as the upload provider in the environment file.'\n);\n\nexport {ZGW_DOCUMENTEN_API_DOCUMENTS_COMPONENT_TOKEN};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './zgw-object-type-component-token';\nexport * from './zgw-documenten-api-documents-component-token';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './constants';\n","/*\n * Copyright 2015-2026 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {inject} from '@angular/core';\nimport {CanActivateFn, Router} from '@angular/router';\nimport {ConfigService} from '../services';\n\nexport const zgwFeaturesGuard: CanActivateFn = () => {\n  const configService = inject(ConfigService);\n  const router = inject(Router);\n\n  const enabled = configService.featureToggles?.enableZgwFeatures !== false;\n\n  if (!enabled) {\n    return router.createUrlTree(['/']);\n  }\n\n  return true;\n};\n","/*\n * Copyright 2015-2026 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './zgw-features.guard';\n","/* tslint:disable */\n/* eslint-disable */\n// Generated using typescript-generator version 3.2.1263 on 2026-08-26 15:15:30.\n\nexport interface AccentColorsDto {\n    colors: { [index: string]: string };\n}\n\nexport interface AdminSettingsLogoDto {\n    logoType: string;\n    imageBase64: string;\n}\n\nexport interface AdminSettingsLogosDto {\n    logo: AdminSettingsLogoDto | null;\n    logoDarkMode: AdminSettingsLogoDto | null;\n}\n\nexport interface CreateAdminSettingsLogoDto {\n    imageBase64: string;\n}\n\nexport interface FeatureToggleOverridesDto {\n    overrides: { [index: string]: boolean };\n}\n\nexport interface UpdateFeatureToggleDto {\n    key: string;\n    enabled: boolean;\n}\n\nexport interface PbacConditionFieldDto {\n    name: string;\n    type: string;\n}\n\nexport interface PbacConditionTypeDto {\n    key: string;\n}\n\nexport interface PbacEntityMapperDto {\n    fromResourceType: string;\n    toResourceType: string;\n}\n\nexport interface PbacFieldAliasDto {\n    alias: string;\n    field: string;\n}\n\nexport interface PbacOperatorDto {\n    key: string;\n}\n\nexport interface PbacRegistryDto {\n    resources: PbacResourceDto[];\n    operators: PbacOperatorDto[];\n    conditionTypes: PbacConditionTypeDto[];\n    entityMappers: PbacEntityMapperDto[];\n    roles: string[];\n}\n\nexport interface PbacResourceDto {\n    resourceType: string;\n    shortName: string;\n    actions: string[];\n    fields: PbacConditionFieldDto[];\n    fieldAliases: PbacFieldAliasDto[];\n    hasSpecificationFactory: boolean;\n    containerTargets: string[];\n}\n\nexport interface BuildingBlockDefinitionArtworkDto {\n    key: string;\n    versionTag: string;\n    imageBase64: string;\n}\n\nexport interface BuildingBlockDefinitionDto {\n    key: string;\n    versionTag: string;\n    name: string;\n    description: string | null;\n    createdBy: string | null;\n    createdDate: DateAsString | null;\n    basedOnVersionTag: string | null;\n    final: boolean;\n    imageBase64: string | null;\n}\n\nexport interface BuildingBlockFormDefinitionDto {\n    id: string;\n    name: string;\n    formDefinition: any;\n    readOnly: boolean;\n}\n\nexport interface BuildingBlockInstanceDto {\n    id: string;\n    documentId: string;\n    caseDocumentId: string | null;\n    definitionKey: string;\n    definitionVersionTag: string;\n    activityId: string | null;\n    callerProcessDefinitionId: string | null;\n    processInstanceId: string | null;\n    parentBuildingBlockInstanceId: string | null;\n    rootBuildingBlockInstanceId: string | null;\n}\n\nexport interface BuildingBlockProcessDefinitionDto {\n    id: string;\n    key: string;\n    name: string | null;\n    versionTag: string | null;\n    main: boolean;\n    draft: boolean;\n}\n\nexport interface BuildingBlockProcessDefinitionWithLinksDto {\n    processDefinition: ProcessDefinitionWithPropertiesDto;\n    processLinks: ProcessLinkResponseDto[];\n    bpmn20Xml: string;\n    draft: boolean;\n}\n\nexport interface BuildingBlockVersionDto {\n    versionTag: string;\n    final: boolean;\n}\n\nexport interface CaseDefinitionBuildingBlockLinkDto {\n    id: string;\n    caseDefinitionKey: string;\n    caseDefinitionVersionTag: string;\n    buildingBlockDefinitionKey: string;\n    buildingBlockDefinitionVersionTag: string;\n    inputMappings: BuildingBlockInputMapping[];\n    outputMappings: BuildingBlockOutputMapping[];\n    pluginConfigurationMappings: { [index: string]: string };\n}\n\nexport interface CreateBuildingBlockDefinitionArtworkDto {\n    imageBase64: string;\n}\n\nexport interface CreateBuildingBlockDefinitionDto {\n    key: string;\n    versionTag: string;\n    name: string;\n    description: string | null;\n}\n\nexport interface CreateBuildingBlockDraftDto {\n    versionTag: string;\n}\n\nexport interface CreateBuildingBlockFormDefinitionDto {\n    name: string;\n    formDefinition: string;\n    readOnly: boolean | null;\n}\n\nexport interface CreateCaseDefinitionBuildingBlockLinkDto {\n    buildingBlockDefinitionKey: string;\n    buildingBlockDefinitionVersionTag: string;\n    inputMappings: BuildingBlockInputMapping[];\n    outputMappings: BuildingBlockOutputMapping[];\n    pluginConfigurationMappings: { [index: string]: string };\n}\n\nexport interface UpdateBuildingBlockDefinitionArtworkDto {\n    imageBase64: string;\n}\n\nexport interface UpdateBuildingBlockDefinitionDto {\n    name: string;\n    description: string | null;\n}\n\nexport interface UpdateBuildingBlockFormDefinitionDto {\n    name: string;\n    formDefinition: string;\n}\n\nexport interface UpdateCaseDefinitionBuildingBlockLinkDto {\n    inputMappings: BuildingBlockInputMapping[];\n    outputMappings: BuildingBlockOutputMapping[];\n    pluginConfigurationMappings: { [index: string]: string };\n}\n\nexport interface CaseDefinitionCheckResponse {\n    canUpdateGlobalConfiguration: boolean;\n}\n\nexport interface CaseDefinitionConfigurationIssueDto {\n    id: string;\n    issueType: string;\n    resolved: boolean;\n    createdAt: DateAsString;\n    resolvedAt: DateAsString | null;\n}\n\nexport interface CaseDefinitionDraftCreateRequest {\n    caseDefinitionKey: string;\n    caseDefinitionVersion: string;\n    name: string | null;\n    description: string | null;\n    basedOnCaseDefinitionVersion: string | null;\n    basedOnCaseDefinitionId: CaseDefinitionId | null;\n    caseDefinitionId: CaseDefinitionId;\n}\n\nexport interface CaseDefinitionImportPreviewResponse {\n    key: string;\n    name: string;\n    versionTag: string;\n    pluginConfigurations: PluginConfigurationPreviewDto[];\n    final: boolean;\n}\n\nexport interface CaseDefinitionImportResponse {\n    caseDefinitionId: CaseDefinitionId | null;\n}\n\nexport interface CaseDefinitionQuickSearchDto {\n    queryPath: string;\n    title: string;\n}\n\nexport interface CaseDefinitionResponseDto {\n    caseDefinitionKey: string;\n    caseDefinitionVersionTag: string;\n    name: string;\n    description: string | null;\n    createdBy: string | null;\n    createdDate: DateAsString | null;\n    basedOnVersionTag: string | null;\n    final: boolean;\n    active: boolean;\n    canHaveAssignee: boolean;\n    autoAssignTasks: boolean;\n    hasExternalStartForm: boolean | null;\n    externalStartFormUrl: string | null;\n    externalStartFormDescription: string | null;\n    conflictingVersions: string | null;\n    hasConfigurationIssues: boolean;\n    originalKey: string | null;\n    originalName: string | null;\n    originalVersionTag: string | null;\n}\n\nexport interface CaseDefinitionSettingsResponseDto {\n    caseDefinitionKey: string;\n    caseDefinitionVersionTag: string;\n    canHaveAssignee: boolean;\n    autoAssignTasks: boolean;\n    hasExternalStartForm: boolean | null;\n    externalStartFormUrl: string | null;\n    externalStartFormDescription: string | null;\n}\n\nexport interface CaseDefinitionUpdateRequest {\n    name: string | null;\n    description: string | null;\n}\n\nexport interface CaseListColumnDto {\n    title: string | null;\n    key: string;\n    path: string;\n    displayType: any;\n    sortable: boolean;\n    defaultSort: ColumnDefaultSort | null;\n    order: number | null;\n    exportable: boolean;\n}\n\nexport interface CaseListRowDto {\n    id: string;\n    items: CaseListItemDto[];\n}\n\nexport interface CaseSettingsDto {\n    canHaveAssignee: boolean | null;\n    autoAssignTasks: boolean | null;\n    hasExternalStartForm: boolean | null;\n    externalStartFormUrl: string | null;\n    externalStartFormDescription: string | null;\n}\n\nexport interface CaseTabDto {\n    key: string;\n    name: string | null;\n    type: CaseTabType;\n    contentKey: string;\n    showTasks: boolean;\n}\n\nexport interface CaseTabUpdateDto {\n    name: string | null;\n    type: CaseTabType;\n    contentKey: string;\n    showTasks: boolean;\n}\n\nexport interface CaseTabUpdateOrderDto {\n    key: string;\n    name: string | null;\n    type: CaseTabType;\n    contentKey: string;\n    showTasks: boolean;\n}\n\nexport interface CaseTabWithMetadataDto {\n    key: string;\n    name: string | null;\n    type: CaseTabType;\n    contentKey: string;\n    createdOn: DateAsString | null;\n    createdBy: string | null;\n    showTasks: boolean;\n}\n\nexport interface CaseVersionDto {\n    versionTag: string;\n    active: boolean;\n    final: boolean;\n}\n\nexport interface CreateStartableItemRequest {\n    type: StartableItemType;\n    properties: any;\n}\n\nexport interface HiddenCaseListColumnDto {\n    columnKey: string;\n}\n\nexport interface HiddenTaskListColumnDto {\n    columnKey: string;\n}\n\nexport interface ManagementStartableItemDto {\n    type: StartableItemType;\n    name: string | null;\n    key: string;\n    versionTag: string | null;\n    processDefinitionId: string | null;\n    sortOrder: number | null;\n    startableByUser: boolean;\n}\n\nexport interface PluginConfigurationPreviewDto {\n    pluginConfigurationId: string;\n    pluginDefinitionKey: string | null;\n    pluginActionDefinitionKey: string;\n    processDefinitionKey: string;\n    activityId: string;\n    existsInTargetEnvironment: boolean;\n}\n\nexport interface StartableItemDto {\n    type: StartableItemType;\n    name: string | null;\n    key: string;\n    versionTag: string | null;\n    processDefinitionId: string | null;\n    draft: boolean;\n    startableByUser: boolean;\n}\n\nexport interface StartableItemOrderEntry {\n    key: string;\n    type: StartableItemType;\n    versionTag: string | null;\n    sortOrder: number;\n}\n\nexport interface TaskListColumnDto {\n    title: string | null;\n    key: string;\n    path: string;\n    displayType: any;\n    sortable: boolean;\n    defaultSort: ColumnDefaultSort | null;\n    order: number | null;\n}\n\nexport interface UpdateStartableItemOrderRequest {\n    items: StartableItemOrderEntry[];\n}\n\nexport interface UpdateStartableItemRequest {\n    type: StartableItemType;\n    properties: any;\n}\n\nexport interface AdminWidgetConfigurationResponseDto {\n    key: string;\n    title: string;\n    dataSourceKey: string;\n    displayType: string;\n    dataSourceProperties: ObjectNode;\n    displayTypeProperties: ObjectNode;\n    url: string | null;\n}\n\nexport interface DashboardCreateRequestDto {\n    title: string;\n    description: string;\n    widgetLayout: DashboardWidgetLayout | null;\n}\n\nexport interface DashboardResponseDto {\n    key: string;\n    title: string;\n    description: string;\n    createdBy: string;\n    createdOn: DateAsString;\n    widgetLayout: DashboardWidgetLayout | null;\n}\n\nexport interface DashboardUpdateRequestDto {\n    key: string;\n    title: string;\n    description: string;\n    widgetLayout: DashboardWidgetLayout | null;\n}\n\nexport interface DashboardWidgetDataResultDto {\n    key: string;\n    data: any;\n}\n\nexport interface DashboardWithWidgetsResponseDto {\n    key: string;\n    title: string;\n    widgets: WidgetConfigurationResponseDto[];\n    widgetLayout: DashboardWidgetLayout | null;\n}\n\nexport interface SingleWidgetConfigurationUpdateRequestDto {\n    title: string;\n    dataSourceKey: string;\n    displayType: string;\n    dataSourceProperties: ObjectNode;\n    displayTypeProperties: ObjectNode;\n    url: string | null;\n}\n\nexport interface WidgetConfigurationCreateRequestDto {\n    title: string;\n    dataSourceKey: string;\n    displayType: string;\n    dataSourceProperties: ObjectNode;\n    displayTypeProperties: ObjectNode;\n    url: string | null;\n}\n\nexport interface WidgetConfigurationResponseDto {\n    key: string;\n    title: string;\n    displayType: string;\n    displayTypeProperties: ObjectNode;\n    url: string | null;\n}\n\nexport interface WidgetConfigurationUpdateRequestDto {\n    key: string;\n    title: string;\n    dataSourceKey: string;\n    displayType: string;\n    dataSourceProperties: ObjectNode;\n    displayTypeProperties: ObjectNode;\n    url: string | null;\n}\n\nexport interface CaseTagCreateRequestDto {\n    key: string;\n    title: string;\n    color: CaseTagColor;\n}\n\nexport interface CaseTagResponseDto {\n    key: string;\n    caseDefinitionKey: string;\n    caseDefinitionVersionTag: string;\n    title: string;\n    color: CaseTagColor;\n    order: number;\n}\n\nexport interface CaseTagUpdateRequestDto {\n    key: string;\n    title: string;\n    color: CaseTagColor;\n}\n\nexport interface DocumentInspectionDto {\n    id: string;\n    definitionId: DocumentDefinitionId;\n    createdOn: DateAsString;\n    modifiedOn: DateAsString;\n    createdBy: string;\n    sequence: number;\n    version: number;\n    assigneeId: string;\n    assigneeFullName: string;\n    assignedTeamKey: string;\n    assignedTeamTitle: string;\n    internalStatus: string;\n    caseTags: CaseTagResponseDto[];\n    relations: DocumentRelation[];\n    relatedFiles: RelatedFile[];\n    content: any;\n}\n\nexport interface InternalCaseStatusCreateRequestDto {\n    key: string;\n    title: string;\n    visibleInCaseListByDefault: boolean;\n    retentionPeriodInDays: number;\n    color: InternalCaseStatusColor;\n    label: string | null;\n}\n\nexport interface InternalCaseStatusResponseDto {\n    key: string;\n    caseDefinitionName: string;\n    title: string;\n    visibleInCaseListByDefault: boolean;\n    retentionPeriodInDays: number;\n    order: number;\n    color: InternalCaseStatusColor;\n    label: string | null;\n}\n\nexport interface InternalCaseStatusUpdateOrderRequestDto {\n    key: string;\n    title: string;\n    visibleInCaseListByDefault: boolean;\n    retentionPeriodInDays: number;\n    color: InternalCaseStatusColor;\n    label: string | null;\n}\n\nexport interface InternalCaseStatusUpdateRequestDto {\n    key: string;\n    title: string;\n    visibleInCaseListByDefault: boolean;\n    retentionPeriodInDays: number;\n    color: InternalCaseStatusColor;\n    label: string | null;\n}\n\nexport interface ColumnKeyResponse {\n    key: string;\n    sortable: boolean;\n    filterable: boolean;\n}\n\nexport interface ColumnResponse {\n    key: string;\n    sortable: boolean;\n    filterable: boolean;\n    defaultSort: string | null;\n}\n\nexport interface DocumentSearchRequest {\n    informatieobjecttype: string | null;\n    titel: string | null;\n    vertrouwelijkheidaanduiding: string | null;\n    creatiedatumFrom: DateAsString | null;\n    creatiedatumTo: DateAsString | null;\n    auteur: string | null;\n    trefwoorden: string[] | null;\n}\n\nexport interface DocumentenApiDocumentDto {\n    fileId: string;\n    pluginConfigurationId: string;\n    bestandsnaam: string | null;\n    bestandsomvang: number | null;\n    creatiedatum: DateAsString;\n    auteur: string | null;\n    titel: string | null;\n    status: string | null;\n    taal: string | null;\n    identificatie: string | null;\n    beschrijving: string | null;\n    informatieobjecttype: string | null;\n    informatieobjecttypeOmschrijving: string | null;\n    trefwoorden: string[] | null;\n    formaat: string | null;\n    verzenddatum: DateAsString | null;\n    ontvangstdatum: DateAsString | null;\n    vertrouwelijkheidaanduiding: string | null;\n    versie: number | null;\n    indicatieGebruiksrecht: boolean | null;\n    canView: boolean;\n    canModify: boolean;\n    canDelete: boolean;\n}\n\nexport interface DocumentenApiUploadFieldDto {\n    key: string;\n    defaultValue: string | null;\n    visible: boolean;\n    readonly: boolean;\n}\n\nexport interface DocumentenApiVersionDetailsDto {\n    version: string;\n    supportsFilterableColumns: boolean;\n    supportsSortableColumns: boolean;\n    supportsTrefwoorden: boolean;\n    supportsUpdatingDefinitiveDocument: boolean;\n    supportsObjectInformatieObjecten: boolean;\n    experimentalVersion: boolean;\n}\n\nexport interface DocumentenApiVersionDto {\n    selectedVersion: string | null;\n    supportsFilterableColumns: boolean;\n    supportsSortableColumns: boolean;\n    supportsTrefwoorden: boolean;\n    supportsUpdatingDefinitiveDocument: boolean;\n    supportsObjectInformatieObjecten: boolean;\n}\n\nexport interface DocumentenApiVersionManagementDto {\n    selectedVersion: string | null;\n    detectedVersions: string[];\n    supportsFilterableColumns: boolean;\n    supportsSortableColumns: boolean;\n    supportsTrefwoorden: boolean;\n}\n\nexport interface DocumentenApiVersionsManagementDto {\n    versions: string[];\n    versionDetails: DocumentenApiVersionDetailsDto[];\n}\n\nexport interface ModifyDocumentRequest {\n    creatiedatum: DateAsString;\n    titel: string;\n    auteur: string;\n    status: DocumentStatusType | null;\n    taal: string;\n    bestandsnaam: string | null;\n    beschrijving: string | null;\n    ontvangstdatum: DateAsString | null;\n    verzenddatum: DateAsString | null;\n    indicatieGebruiksrecht: boolean | null;\n    vertrouwelijkheidaanduiding: string | null;\n    informatieobjecttype: string | null;\n    trefwoorden: string[] | null;\n}\n\nexport interface RelatedFileDto extends RelatedFile {\n    fileName: string | null;\n    sizeInBytes: number | null;\n    pluginConfigurationId: string;\n    author: string | null;\n    title: string | null;\n    status: string | null;\n    language: string | null;\n    identification: string | null;\n    description: string | null;\n    informatieobjecttype: string | null;\n    informatieobjecttypeOmschrijving: string | null;\n    keywords: string[] | null;\n    format: string | null;\n    sendDate: DateAsString | null;\n    receiptDate: DateAsString | null;\n    confidentialityLevel: string | null;\n    version: number | null;\n    indicationUsageRights: boolean | null;\n    canView: boolean;\n    canModify: boolean;\n    canDelete: boolean;\n}\n\nexport interface ReorderColumnRequest {\n    key: string;\n    defaultSort: string | null;\n}\n\nexport interface UpdateColumnRequest {\n    defaultSort: string | null;\n}\n\nexport interface FormOption {\n    id: string;\n    name: string;\n}\n\nexport interface FormProcessLinkCreateRequestDto extends ProcessLinkCreateRequestDto {\n    formDefinitionId: string;\n    viewModelEnabled: boolean | null;\n    formDisplayType: FormDisplayType | null;\n    formSize: FormSizes | null;\n    subtitles: string[] | null;\n}\n\nexport interface FormProcessLinkExportResponseDto extends ProcessLinkExportResponseDto {\n    formDefinitionName: string;\n    viewModelEnabled: boolean;\n    formDisplayType: FormDisplayType;\n    formSize: FormSizes;\n    subtitles: string[] | null;\n}\n\nexport interface FormProcessLinkResponseDto extends ProcessLinkResponseDto {\n    formDefinitionId: string;\n    viewModelEnabled: boolean;\n    formDisplayType: FormDisplayType;\n    formSize: FormSizes;\n    subtitles: string[] | null;\n}\n\nexport interface FormProcessLinkUpdateRequestDto extends ProcessLinkUpdateRequestDto {\n    formDefinitionId: string;\n    viewModelEnabled: boolean | null;\n    formDisplayType: FormDisplayType | null;\n    formSize: FormSizes | null;\n    subtitles: string[] | null;\n}\n\nexport interface FormSubmissionResult {\n    documentId: string | null;\n    errors: OperationError[];\n}\n\nexport interface FormSubmissionResultFailed extends FormSubmissionResult, TransactionalResult {\n}\n\nexport interface FormSubmissionResultSucceeded extends FormSubmissionResult {\n    documentId: string;\n}\n\nexport interface IntermediateSaveRequest {\n    submission: ObjectNode;\n    taskInstanceId: string;\n}\n\nexport interface IntermediateSubmission {\n    submission: ObjectNode;\n    taskInstanceId: string;\n    createdBy: string;\n    createdOn: DateAsString;\n    editedBy: string | null;\n    editedOn: DateAsString | null;\n}\n\nexport interface IntermediateSubmissionKt {\n}\n\nexport interface FormFlowAdditionalPropertyDto {\n    name: string;\n    context: string;\n    alwaysPresent: boolean;\n}\n\nexport interface FormFlowBreadcrumbResponse {\n    title: string | null;\n    key: string;\n    stepInstanceId: string | null;\n    completed: boolean;\n}\n\nexport interface FormFlowBreadcrumbsResponse {\n    currentStepIndex: number;\n    breadcrumbs: FormFlowBreadcrumbResponse[];\n}\n\nexport interface FormFlowExpressionBeanDto {\n    name: string;\n    methods: FormFlowExpressionMethodDto[];\n}\n\nexport interface FormFlowExpressionMethodDto {\n    name: string;\n    parameters: FormFlowExpressionParameterDto[];\n    returnType: string;\n}\n\nexport interface FormFlowExpressionParameterDto {\n    name: string;\n    type: string;\n}\n\nexport interface FormFlowProcessLinkCreateRequestDto extends ProcessLinkCreateRequestDto {\n    formFlowDefinitionKey: string;\n    formDisplayType: FormDisplayType | null;\n    formSize: FormSizes | null;\n    subtitles: string[] | null;\n}\n\nexport interface FormFlowProcessLinkExportResponseDto extends ProcessLinkExportResponseDto {\n    formFlowDefinitionKey: string;\n    formDisplayType: FormDisplayType;\n    formSize: FormSizes;\n    subtitles: string[] | null;\n}\n\nexport interface FormFlowProcessLinkResponseDto extends ProcessLinkResponseDto {\n    formFlowDefinitionKey: string;\n    formDisplayType: FormDisplayType;\n    formSize: FormSizes;\n    subtitles: string[] | null;\n}\n\nexport interface FormFlowProcessLinkUpdateRequestDto extends ProcessLinkUpdateRequestDto {\n    formFlowDefinitionKey: string;\n    formDisplayType: FormDisplayType | null;\n    formSize: FormSizes | null;\n    subtitles: string[] | null;\n}\n\nexport interface FormFlowRegistryDto {\n    stepTypes: FormFlowStepTypeDto[];\n    expressionBeans: FormFlowExpressionBeanDto[];\n    additionalProperties: FormFlowAdditionalPropertyDto[];\n}\n\nexport interface FormFlowStepTypeDto {\n    name: string;\n    properties: FormFlowStepTypePropertyDto[];\n}\n\nexport interface FormFlowStepTypePropertyDto {\n    name: string;\n    type: string;\n}\n\nexport interface MultipleFormErrors {\n    componentErrors: ComponentError[];\n}\n\nexport interface SingleFormError {\n    error: string;\n    component: string | null;\n}\n\nexport interface StartFormSubmissionResult {\n    documentId: string | null;\n}\n\nexport interface LocalizationResponseDto {\n    languageKey: string;\n    content: ObjectNode;\n}\n\nexport interface LocalizationUpdateRequestDto {\n    languageKey: string;\n    content: ObjectNode;\n}\n\nexport interface LoggingEventPropertyDto {\n    key: string;\n    value: string;\n}\n\nexport interface LoggingEventResponse {\n    timestamp: DateAsString;\n    formattedMessage: string;\n    level: string;\n    properties: LoggingEventPropertyDto[];\n    stacktrace: string | null;\n}\n\nexport interface LoggingEventSearchRequest {\n    afterTimestamp: DateAsString | null;\n    beforeTimestamp: DateAsString | null;\n    level: string | null;\n    likeFormattedMessage: string | null;\n    properties: LoggingEventPropertyDto[];\n}\n\nexport interface NoteCreateRequestDto {\n    content: string;\n}\n\nexport interface NoteResponseDto {\n    id: string;\n    createdByUserId: string;\n    createdByUserFullName: string;\n    createdDate: DateAsString;\n    content: string;\n    documentId: string;\n}\n\nexport interface NoteUpdateRequestDto {\n    content: string;\n}\n\nexport interface JobInspectionDto {\n    id: string;\n    jobDefinitionId: string | null;\n    executionId: string | null;\n    activityId: string | null;\n    jobType: JobType;\n    retries: number;\n    exceptionMessage: string | null;\n    dueDate: DateAsString | null;\n    suspended: boolean;\n}\n\nexport interface LogInspectionSearchRequest {\n    level: string | null;\n    likeFormattedMessage: string | null;\n    afterTimestamp: DateAsString | null;\n    beforeTimestamp: DateAsString | null;\n    additionalProperties: LoggingEventPropertyDto[];\n}\n\nexport interface ProcessInstanceInspectionDto {\n    processInstanceId: string;\n    processDefinitionId: string | null;\n    processDefinitionKey: string | null;\n    processName: string | null;\n    version: number;\n    latestVersion: number;\n    active: boolean;\n    startedBy: string | null;\n    startedByUserId: string | null;\n    startedOn: DateAsString | null;\n    incidents: IncidentDto[];\n    tasks: TaskInspectionDto[];\n    variables: ProcessVariableDto[];\n    jobs: JobInspectionDto[];\n    buildingBlock: BuildingBlockProcessReference | null;\n}\n\nexport interface TaskInspectionDto {\n    id: string;\n    name: string | null;\n    assignee: string | null;\n    created: DateAsString | null;\n    dueDate: DateAsString | null;\n    taskDefinitionKey: string | null;\n}\n\nexport interface URLProcessLinkCreateRequestDto extends ProcessLinkCreateRequestDto {\n    url: string;\n}\n\nexport interface URLProcessLinkDeployDto extends ProcessLinkDeployDto {\n    processLinkType: \"url\";\n    url: string;\n}\n\nexport interface URLProcessLinkExportResponseDto extends ProcessLinkExportResponseDto {\n    url: string;\n}\n\nexport interface URLProcessLinkResponseDto extends ProcessLinkResponseDto {\n    url: string;\n}\n\nexport interface URLProcessLinkUpdateRequestDto extends ProcessLinkUpdateRequestDto {\n    url: string;\n}\n\nexport interface URLSubmissionResult {\n    errors: string[];\n    documentId: string;\n}\n\nexport interface URLVariables {\n    variables: { [index: string]: string };\n}\n\nexport interface CaseProcessDefinitionResponseDto {\n    processDefinition: ProcessDefinitionWithPropertiesDto;\n    processCaseLink: ProcessDefinitionCaseDefinition;\n    processLinks: ProcessLinkResponseDto[];\n    bpmn20Xml: string;\n    draft: boolean;\n    autofilledElements: AutofilledElementDto[];\n}\n\nexport interface MissingReferenceDto {\n    type: MissingReferenceType;\n    reference: string;\n    activityId: string | null;\n    processDefinitionKey: string | null;\n    blocksImport: boolean;\n}\n\nexport interface ProcessDefinitionConflictResponseDto {\n    processDefinitionKey: string;\n    processDefinitionId: string;\n    processDefinitionName: string | null;\n}\n\nexport interface ProcessDefinitionImportPreviewResponseDto {\n    processDefinitionKeys: string[];\n    existingProcessDefinitionKeys: string[];\n    pluginConfigurations: ProcessLinkPluginConfigurationPreviewDto[];\n    missingReferences: MissingReferenceDto[];\n    elementsToReplace: ReplacedElementDto[];\n    canImport: boolean;\n}\n\nexport interface ProcessDefinitionImportResponseDto {\n    processDefinitionKeys: string[];\n    missingReferences: MissingReferenceDto[];\n}\n\nexport interface ProcessDefinitionResponseDto {\n    processDefinition: ProcessDefinitionWithPropertiesDto;\n    processLinks: ProcessLinkResponseDto[];\n    bpmn20Xml: string;\n    draft: boolean;\n    autofilledElements: AutofilledElementDto[];\n}\n\nexport interface ProcessDefinitionValidateRequestDto {\n    bpmnXml: string;\n    processLinks: ProcessLinkCreateRequestDto[];\n    canInitializeDocument: boolean;\n    startableByUser: boolean;\n}\n\nexport interface ProcessDefinitionValidateResponseDto {\n    hasWarnings: boolean;\n    errors: ProcessDefinitionValidationError[];\n    valid: boolean;\n}\n\nexport interface ProcessLinkActivityResult<T> {\n    processLinkId: string;\n    type: string;\n    assignee: string | null;\n    due: DateAsString | null;\n    properties: T;\n}\n\nexport interface ProcessLinkActivityResultWithTask {\n    task: TaskInstanceWithIdentityLink;\n    processLinkActivityResult: ProcessLinkActivityResult<any> | null;\n}\n\nexport interface ProcessLinkCreateRequestDto {\n    activityId: string;\n    processDefinitionId: string;\n    activityType: ActivityTypeWithEventName;\n    processLinkType: string;\n}\n\nexport interface ProcessLinkExportResponseDto {\n    activityId: string;\n    activityType: ActivityTypeWithEventName;\n    processLinkType: string;\n}\n\nexport interface ProcessLinkPluginConfigurationPreviewDto {\n    pluginConfigurationId: string;\n    pluginDefinitionKey: string | null;\n    pluginActionDefinitionKey: string;\n    processDefinitionKey: string;\n    activityId: string;\n    existsInTargetEnvironment: boolean;\n}\n\nexport interface ProcessLinkResponseDto {\n    activityId: string;\n    processDefinitionId: string;\n    activityType: ActivityTypeWithEventName;\n    processLinkType: string;\n    id: string;\n}\n\nexport interface ProcessLinkUpdateRequestDto {\n    processLinkType: string;\n    id: string;\n}\n\nexport interface ReplacedElementDto {\n    type: ReplacedElementType;\n    key: string;\n}\n\nexport interface SearchFieldV2Dto {\n    id: string;\n    ownerId: string;\n    ownerType: string;\n    key: string;\n    title: string | null;\n    path: string;\n    order: number;\n    dataType: DataType;\n    fieldType: FieldType;\n    matchType: SearchFieldMatchType | null;\n    dropdownDataProvider: string | null;\n    required: boolean;\n}\n\nexport interface TabDto {\n    key: string;\n    title: string | null;\n    type: string;\n    properties: { [index: string]: any | null } | null;\n    widgetLayout: TabWidgetLayout | null;\n}\n\nexport interface TeamCreateRequestDto {\n    key: string;\n    title: string;\n}\n\nexport interface TeamImportExportDto {\n    key: string;\n    title: string;\n}\n\nexport interface TeamListResponseDto {\n    key: string;\n    title: string;\n    userCount: number;\n}\n\nexport interface TeamResponseDto {\n    key: string;\n    title: string;\n}\n\nexport interface TeamUpdateRequestDto {\n    key: string;\n    title: string;\n}\n\nexport interface TeamUserCreateRequestDto {\n    username: string;\n}\n\nexport interface TeamUserResponseDto {\n    username: string;\n    fullName: string | null;\n    email: string | null;\n}\n\nexport interface AutofilledElementDto {\n    activityId: string;\n    modificationType: string;\n    appliedValue: string;\n}\n\nexport interface BatchAssignTaskDTO {\n    assignee: string;\n    assignedTeamKey: string;\n    tasksIds: string[];\n}\n\nexport interface ChoiceFieldCreateRequestDTO {\n    keyName: string;\n    title: string;\n}\n\nexport interface ChoiceFieldDTO {\n    id: number;\n    keyName: string;\n    choiceFieldValues: ChoiceFieldValue[];\n}\n\nexport interface ChoiceFieldUpdateRequestDTO {\n    id: number;\n    keyName: string;\n    title: string;\n}\n\nexport interface ChoiceFieldValueCreateRequestDTO {\n    name: string;\n    deprecated: boolean;\n    sortOrder: number;\n    value: string;\n}\n\nexport interface ChoiceFieldValueUpdateRequestDTO {\n    id: number;\n    name: string;\n    deprecated: boolean;\n    sortOrder: number;\n    value: string;\n}\n\nexport interface CommentDto {\n    text: string;\n}\n\nexport interface CustomTaskDto {\n    task: OperatonTaskDto;\n    formFields: FormField[];\n    variables: { [index: string]: any };\n    formLocation: string;\n    processName: string;\n    processKey: string;\n    processVersion: string;\n    businessKey: string;\n}\n\nexport interface DecisionDefinitionResponseDto {\n    id: string;\n    key: string;\n    category: string | null;\n    name: string | null;\n    version: number;\n    resource: string | null;\n    deploymentId: string | null;\n    tenantId: string | null;\n    decisionRequirementsDefinitionId: string | null;\n    decisionRequirementsDefinitionKey: string | null;\n    versionTag: string | null;\n    historyTimeToLive: number | null;\n}\n\nexport interface DefinitionDeploymentResponseDto {\n    identifier: string;\n}\n\nexport interface FlowNodeMigrationDTO {\n    sourceFlowNodeMap: { [index: string]: string };\n    targetFlowNodeMap: { [index: string]: string };\n    uniqueFlowNodeMap: { [index: string]: string };\n}\n\nexport interface HeatmapTaskAverageDurationDTO extends HeatmapTaskDTO {\n    averageDurationInMilliseconds: number;\n}\n\nexport interface HeatmapTaskCountDTO extends HeatmapTaskDTO {\n}\n\nexport interface HeatmapTaskDTO {\n    name: string;\n    count: number;\n    totalCount: number;\n}\n\nexport interface IncidentDto {\n    id: string;\n    processInstanceId: string;\n    processDefinitionId: string;\n    executionId: string;\n    activityId: string;\n    incidentType: string;\n    incidentMessage: string;\n    incidentTimestamp: DateAsString;\n    causeIncidentId: string;\n    rootCauseIncidentId: string;\n    configuration: string;\n    tenantId: string;\n    jobDefinitionId: string;\n}\n\nexport interface KeyAndPasswordDTO {\n    key: string;\n    newPassword: string;\n}\n\nexport interface LoginDTO {\n    username: string;\n    password: string;\n    rememberMe: boolean;\n}\n\nexport interface ProcessDefinitionDiagramWithPropertyDto {\n    id: string;\n    bpmn20Xml: string;\n    readOnly: boolean;\n    systemProcess: boolean;\n    autofilledElements: AutofilledElementDto[];\n}\n\nexport interface ProcessDefinitionWithPropertiesDto extends ProcessDefinitionDto {\n    readOnly: boolean;\n    systemProcess: boolean;\n}\n\nexport interface ProcessInstanceDiagramDto {\n    id: string;\n    bpmn20Xml: string;\n    historicActivityInstances: HistoricActivityInstance[];\n}\n\nexport interface ProcessInstanceSearchDTO {\n    processVariables: ProcessVariableDTOV2Union[];\n}\n\nexport interface ProcessInstanceStatisticsDTO {\n    duration: number;\n    processName: string;\n}\n\nexport interface ProcessVariableDto {\n    name: string;\n    type: string;\n    value: any;\n}\n\nexport interface ProcessVariableMutationRequest {\n    name: string;\n    type: ProcessVariableType;\n    value: any;\n}\n\nexport interface StartFormDto {\n    formLocation: string;\n    formFields: FormField[];\n    genericForm: boolean;\n}\n\nexport interface TaskCompletionDTO {\n    variables: { [index: string]: any };\n    filesToDelete: string[];\n}\n\nexport interface UserTeamDto {\n    key: string;\n}\n\nexport interface TemplatePreviewRequest {\n    fileName: string;\n    content: string;\n}\n\nexport interface CreateTemplateRequest {\n    key: string;\n    caseDefinitionKey: string | null;\n    caseDefinitionVersionTag: string | null;\n    buildingBlockDefinitionKey: string | null;\n    buildingBlockDefinitionVersionTag: string | null;\n    type: string;\n    metadata: { [index: string]: any | null };\n}\n\nexport interface DeleteTemplateRequest {\n    caseDefinitionKey: string | null;\n    caseDefinitionVersionTag: string | null;\n    buildingBlockDefinitionKey: string | null;\n    buildingBlockDefinitionVersionTag: string | null;\n    templates: TemplateKeyType[];\n}\n\nexport interface TemplateKeyType {\n    key: string;\n    type: string;\n}\n\nexport interface TemplateListItemResponse {\n    key: string;\n    type: string;\n}\n\nexport interface TemplateResponse {\n    key: string;\n    caseDefinitionKey: string | null;\n    caseDefinitionVersionTag: string | null;\n    buildingBlockDefinitionKey: string | null;\n    buildingBlockDefinitionVersionTag: string | null;\n    type: string;\n    metadata: { [index: string]: any | null };\n    content: string;\n}\n\nexport interface UpdateTemplateRequest {\n    key: string;\n    caseDefinitionKey: string | null;\n    caseDefinitionVersionTag: string | null;\n    buildingBlockDefinitionKey: string | null;\n    buildingBlockDefinitionVersionTag: string | null;\n    type: string;\n    metadata: { [index: string]: any | null };\n    content: string;\n}\n\nexport interface WidgetDto {\n    type: string;\n    title: string;\n    icon: string | null;\n    compact: boolean | null;\n    width: number;\n    color: WidgetColor | null;\n    highContrast: boolean;\n    displayConditions: Condition<any>[] | null;\n    key: string;\n    actions: WidgetAction[];\n}\n\nexport interface CaseZaakdetailsInspectionDto {\n    syncConfig: ZaakdetailsSyncConfigDto | null;\n    zaakdetailsObject: ZaakdetailsObjectDto | null;\n}\n\nexport interface ZaakdetailsObjectContentDto {\n    resolved: boolean;\n    record: any | null;\n    message: string | null;\n    objectUrl: string | null;\n}\n\nexport interface ZaakdetailsObjectDto {\n    documentId: string;\n    objectUrl: string;\n    linkedToZaak: boolean;\n}\n\nexport interface ZaakdetailsSyncConfigDto {\n    caseDefinitionKey: string;\n    caseDefinitionVersionTag: string;\n    objectManagementConfigurationId: string | null;\n    objectManagementTitle: string | null;\n    enabled: boolean;\n}\n\nexport interface CaseZgwInspectionDto {\n    zaakInstanceLink: ZaakInstanceLinkDto | null;\n    zaak: any | null;\n    eigenschappen: ZaakEigenschapDto[];\n    rollen: ZaakRolDto[];\n    statusHistory: ZaakStatusDto[];\n    resultaat: ZaakResultaatDto | null;\n    zaakObjecten: ZaakObjectDto[];\n    zaakInformatieObjecten: ZaakInformatieObjectDto[];\n    besluiten: ZaakBesluitDto[];\n    warnings: string[];\n}\n\nexport interface ZaakBesluitDto {\n    url: string;\n    besluit: string;\n}\n\nexport interface ZaakEigenschapDto {\n    url: string;\n    eigenschap: string;\n    naam: string | null;\n    waarde: string;\n}\n\nexport interface ZaakInformatieObjectDto {\n    url: string;\n    informatieobject: string;\n    titel: string | null;\n    registratiedatum: DateAsString;\n}\n\nexport interface ZaakInstanceLinkDto {\n    zaakInstanceUrl: string;\n    zaakInstanceId: string;\n    zaakTypeUrl: string;\n}\n\nexport interface ZaakObjectDto {\n    url: string;\n    objectUrl: string;\n    objectType: string;\n    objectTypeOverige: string | null;\n    relatieomschrijving: string | null;\n}\n\nexport interface ZaakResultaatDto {\n    url: string;\n    resultaattype: string;\n    toelichting: string | null;\n}\n\nexport interface ZaakRolDto {\n    url: string | null;\n    betrokkeneType: string;\n    roltype: string;\n    omschrijving: string | null;\n    omschrijvingGeneriek: string | null;\n    indicatieMachtiging: string | null;\n    betrokkeneIdentificatie: any | null;\n}\n\nexport interface ZaakStatusDto {\n    url: string;\n    statustype: string;\n    datumStatusGezet: DateAsString;\n    statustoelichting: string | null;\n}\n\nexport interface ZaakobjectResolveResultDto {\n    resolved: boolean;\n    record: any | null;\n    message: string | null;\n    objectUrl: string;\n}\n\nexport interface BuildingBlockInputMapping {\n    source: string;\n    target: string;\n    prefixedTarget: string;\n}\n\nexport interface BuildingBlockOutputMapping {\n    source: string;\n    target: string;\n    syncTiming: BuildingBlockSyncTiming;\n    prefixedSource: string;\n}\n\nexport interface CaseDefinitionId extends AbstractId<CaseDefinitionId>, BlueprintId {\n    key: string;\n    versionTag: string;\n}\n\nexport interface CaseListItemDto {\n    key: string;\n    value: any | null;\n}\n\nexport interface ObjectNode extends ContainerNode<ObjectNode>, Serializable {\n}\n\nexport interface DocumentDefinitionId {\n    buildingBlockDefinitionId: BuildingBlockDefinitionId;\n    caseDefinitionId: CaseDefinitionId;\n    name: string;\n}\n\nexport interface DocumentRelation {\n    relationType: DocumentRelationType;\n    id: string;\n}\n\nexport interface RelatedFile {\n    fileId: string;\n    createdOn: DateAsString;\n    createdBy: string;\n    sizeInBytes: number;\n    fileName: string;\n}\n\nexport interface OperationError {\n}\n\nexport interface TransactionalResult {\n}\n\nexport interface ComponentError {\n    component: string | null;\n    message: string;\n}\n\nexport interface BuildingBlockProcessReference {\n    instanceId: string;\n    definitionKey: string;\n    definitionVersionTag: string;\n    documentId: string;\n}\n\nexport interface ProcessLinkDeployDto {\n    processLinkType: \"url\";\n    activityId: string;\n    processDefinitionId: string;\n    activityType: ActivityTypeWithEventName;\n}\n\nexport interface ProcessDefinitionCaseDefinition {\n    id: ProcessDefinitionCaseDefinitionId;\n    canInitializeDocument: boolean;\n    startableByUser: boolean;\n    processDefinitionName: string | null;\n    processDefinitionKey: string | null;\n    draft: boolean;\n}\n\nexport interface ProcessDefinitionValidationError {\n    elementId: string;\n    elementType: string;\n    elementName: string | null;\n    reason: string;\n    errorCode: string | null;\n    expression: string | null;\n    severity: ValidationSeverity;\n    invalidFields: string[] | null;\n    invalidArguments: number[] | null;\n    listenerType: string | null;\n    listenerIndex: number | null;\n}\n\nexport interface TaskInstanceWithIdentityLink {\n    businessKey: string;\n    id: string | null;\n    name: string | null;\n    assignee: string | null;\n    created: DateAsString | null;\n    due: DateAsString | null;\n    followUp: DateAsString | null;\n    lastUpdated: DateAsString | null;\n    delegationState: string | null;\n    description: string | null;\n    executionId: string | null;\n    owner: string | null;\n    parentTaskId: string | null;\n    priority: number;\n    processDefinitionId: string | null;\n    processInstanceId: string | null;\n    taskDefinitionKey: string | null;\n    caseExecutionId: string | null;\n    caseInstanceId: string | null;\n    caseDefinitionId: string | null;\n    suspended: boolean;\n    tenantId: string | null;\n    assignedTeam: TeamDto | null;\n    valtimoAssignee: AssigneeDto | null;\n    external: boolean;\n    processDefinitionKey: string;\n    identityLinks: OperatonIdentityLinkDto[];\n    subtitles: string[];\n}\n\nexport interface ChoiceFieldValue extends AbstractAuditingEntity, Serializable {\n    id: number;\n    name: string;\n    deprecated: boolean;\n    sortOrder: number;\n    value: string;\n    choiceField: ChoiceField;\n}\n\nexport interface OperatonTaskDto {\n    id: string | null;\n    name: string | null;\n    assignee: string | null;\n    created: DateAsString | null;\n    due: DateAsString | null;\n    followUp: DateAsString | null;\n    lastUpdated: DateAsString | null;\n    delegationState: string | null;\n    description: string | null;\n    executionId: string | null;\n    owner: string | null;\n    parentTaskId: string | null;\n    priority: number;\n    processDefinitionId: string | null;\n    processInstanceId: string | null;\n    taskDefinitionKey: string | null;\n    caseExecutionId: string | null;\n    caseInstanceId: string | null;\n    caseDefinitionId: string | null;\n    suspended: boolean;\n    tenantId: string | null;\n    assignedTeam: TeamDto | null;\n    valtimoAssignee: AssigneeDto | null;\n}\n\nexport interface FormField {\n    businessKey: boolean;\n    validationConstraints: FormFieldValidationConstraint[];\n    label: string;\n    value: TypedValue;\n    typeName: string;\n    properties: { [index: string]: string };\n    id: string;\n    type: FormType;\n    /**\n     * @deprecated since 1.0\n     */\n    defaultValue: any;\n}\n\nexport interface ProcessDefinitionDto {\n    id: string;\n    key: string;\n    category: string;\n    description: string;\n    name: string;\n    version: number;\n    resource: string;\n    deploymentId: string;\n    diagram: string;\n    suspended: boolean;\n    tenantId: string;\n    versionTag: string;\n    historyTimeToLive: number;\n    startableInTasklist: boolean;\n}\n\nexport interface HistoricActivityInstance {\n    rootProcessInstanceId: string;\n    processDefinitionKey: string;\n    canceled: boolean;\n    removalTime: DateAsString;\n    parentActivityInstanceId: string;\n    calledProcessInstanceId: string;\n    calledCaseInstanceId: string;\n    activityId: string;\n    tenantId: string;\n    executionId: string;\n    assignee: string;\n    taskId: string;\n    startTime: DateAsString;\n    endTime: DateAsString;\n    processDefinitionId: string;\n    processInstanceId: string;\n    activityType: string;\n    activityName: string;\n    durationInMillis: number;\n    completeScope: boolean;\n    id: string;\n}\n\nexport interface ProcessVariableDTOV2 {\n    \"@type\": \"string\" | \"date\" | \"boolean\" | \"enum\" | \"long\" | \"fileUpload\";\n    name: string;\n}\n\nexport interface Condition<T> {\n    path: string;\n    operator: ExpressionOperator;\n    value: T;\n}\n\nexport interface WidgetAction {\n}\n\nexport interface BlueprintId {\n    tagPrefix: string;\n    idKey: string;\n}\n\nexport interface Serializable {\n}\n\nexport interface BuildingBlockDefinitionId extends AbstractId<BuildingBlockDefinitionId>, BlueprintId {\n    key: string;\n    versionTag: string;\n}\n\nexport interface ProcessDefinitionCaseDefinitionId extends AbstractId<ProcessDefinitionCaseDefinitionId> {\n    processDefinitionId: ProcessDefinitionId;\n    caseDefinitionId: CaseDefinitionId;\n}\n\nexport interface OperatonIdentityLinkDto {\n    userId: string | null;\n    groupId: string | null;\n    type: string | null;\n}\n\nexport interface ChoiceField extends AbstractAuditingEntity, Serializable {\n    id: number;\n    keyName: string;\n    title: string;\n}\n\nexport interface AbstractAuditingEntity {\n}\n\nexport interface TeamDto extends Team {\n}\n\nexport interface AssigneeDto {\n    username: string;\n    firstName: string | null;\n    lastName: string | null;\n    fullName: string;\n}\n\nexport interface FormFieldValidationConstraint {\n    configuration: any;\n    name: string;\n}\n\nexport interface TypedValue extends Serializable {\n    value: any;\n    type: ValueType;\n    transient: boolean;\n}\n\nexport interface FormType {\n    name: string;\n}\n\nexport interface StringProcessVariableDTOV2 extends ProcessVariableDTOV2 {\n    \"@type\": \"string\";\n    value: string;\n}\n\nexport interface DateProcessVariableDTOV2 extends ProcessVariableDTOV2 {\n    \"@type\": \"date\";\n    range: DateRange;\n}\n\nexport interface BooleanProcessVariableDTOV2 extends ProcessVariableDTOV2 {\n    \"@type\": \"boolean\";\n    value: boolean;\n}\n\nexport interface EnumProcessVariableDTOV2 extends ProcessVariableDTOV2 {\n    \"@type\": \"enum\";\n    values: string[];\n}\n\nexport interface LongProcessVariableDTOV2 extends ProcessVariableDTOV2 {\n    \"@type\": \"long\";\n    value: number;\n}\n\nexport interface FileUploadProcessVariableDTOV2 extends ProcessVariableDTOV2 {\n    \"@type\": \"fileUpload\";\n    value: boolean;\n}\n\nexport interface AbstractId<SELF> extends Identity, Serializable {\n}\n\nexport interface ContainerNode<T> extends BaseJsonNode, JsonNodeCreator {\n}\n\nexport interface ProcessDefinitionId {\n    id: string;\n}\n\nexport interface Team {\n    title: string;\n    key: string;\n}\n\nexport interface ValueType extends Serializable {\n    primitiveValueType: boolean;\n    name: string;\n    parent: ValueType;\n    abstract: boolean;\n}\n\nexport interface DateRange {\n    from: DateAsString;\n    to: DateAsString;\n}\n\nexport interface Identity {\n}\n\nexport interface BaseJsonNode extends Serializable {\n}\n\nexport interface JsonNodeCreator {\n}\n\nexport type DateAsString = string;\n\nexport type StartableItemType = \"PROCESS\" | \"BUILDING_BLOCK\";\n\nexport type JobType = \"TIMER\" | \"ASYNC_CONTINUATION\" | \"MESSAGE\" | \"BATCH\" | \"OTHER\";\n\nexport type MissingReferenceType = \"SUB_PROCESS\" | \"DECISION_DEFINITION\" | \"FORM\" | \"FORM_FLOW\" | \"READ_ONLY_SYSTEM_PROCESS\";\n\nexport type ReplacedElementType = \"PROCESS_DEFINITION\" | \"DECISION_DEFINITION\" | \"FORM\";\n\nexport type ProcessVariableType = \"STRING\" | \"INTEGER\" | \"LONG\" | \"DOUBLE\" | \"BOOLEAN\" | \"JSON\";\n\nexport type ColumnDefaultSort = \"ASC\" | \"DESC\";\n\nexport type CaseTabType = \"standard\" | \"formio\" | \"custom\" | \"widgets\";\n\nexport type DashboardWidgetLayout = \"MUURI_GAP_FREE\" | \"MUURI\" | \"BEAUTIFUL\";\n\nexport type CaseTagColor = \"WARMGRAY\" | \"RED\" | \"MAGENTA\" | \"PURPLE\" | \"BLUE\" | \"CYAN\" | \"TEAL\" | \"GREEN\" | \"GRAY\" | \"COOLGRAY\" | \"HIGHCONTRAST\" | \"OUTLINE\";\n\nexport type InternalCaseStatusColor = \"WARMGRAY\" | \"RED\" | \"MAGENTA\" | \"PURPLE\" | \"BLUE\" | \"CYAN\" | \"TEAL\" | \"GREEN\" | \"GRAY\" | \"COOLGRAY\" | \"HIGHCONTRAST\" | \"OUTLINE\";\n\nexport type DocumentStatusType = \"in_bewerking\" | \"ter_vaststelling\" | \"definitief\" | \"gearchiveerd\";\n\nexport type ActivityTypeWithEventName = \"bpmn:MultiInstanceBody:start\" | \"bpmn:MultiInstanceBody:end\" | \"bpmn:ExclusiveGateway:start\" | \"bpmn:ExclusiveGateway:end\" | \"bpmn:InclusiveGateway:start\" | \"bpmn:InclusiveGateway:end\" | \"bpmn:ParallelGateway:start\" | \"bpmn:ParallelGateway:end\" | \"bpmn:ComplexGateway:start\" | \"bpmn:ComplexGateway:end\" | \"bpmn:EventBasedGateway:start\" | \"bpmn:EventBasedGateway:end\" | \"bpmn:Task:start\" | \"bpmn:Task:end\" | \"bpmn:ScriptTask:start\" | \"bpmn:ScriptTask:end\" | \"bpmn:ServiceTask:start\" | \"bpmn:ServiceTask:end\" | \"bpmn:BusinessRuleTask:start\" | \"bpmn:BusinessRuleTask:end\" | \"bpmn:ManualTask:start\" | \"bpmn:ManualTask:end\" | \"bpmn:UserTask:create\" | \"bpmn:UserTask:assignment\" | \"bpmn:UserTask:complete\" | \"bpmn:UserTask:update\" | \"bpmn:UserTask:delete\" | \"bpmn:UserTask:timeout\" | \"bpmn:UserTask:start\" | \"bpmn:UserTask:end\" | \"bpmn:SendTask:start\" | \"bpmn:SendTask:end\" | \"bpmn:ReceiveTask:start\" | \"bpmn:ReceiveTask:end\" | \"bpmn:SubProcess:start\" | \"bpmn:SubProcess:end\" | \"bpmn:AdHocSubProcess:start\" | \"bpmn:AdHocSubProcess:end\" | \"bpmn:CallActivity:start\" | \"bpmn:CallActivity:end\" | \"bpmn:Transaction:start\" | \"bpmn:Transaction:end\" | \"bpmn:BoundaryTimer:start\" | \"bpmn:BoundaryTimer:end\" | \"bpmn:BoundaryMessage:start\" | \"bpmn:BoundaryMessage:end\" | \"bpmn:BoundarySignal:start\" | \"bpmn:BoundarySignal:end\" | \"bpmn:CompensationBoundaryCatch:start\" | \"bpmn:CompensationBoundaryCatch:end\" | \"bpmn:BoundaryError:start\" | \"bpmn:BoundaryError:end\" | \"bpmn:BoundaryEscalation:start\" | \"bpmn:BoundaryEscalation:end\" | \"bpmn:CancelBoundaryCatch:start\" | \"bpmn:CancelBoundaryCatch:end\" | \"bpmn:BoundaryConditional:start\" | \"bpmn:BoundaryConditional:end\" | \"bpmn:StartEvent:start\" | \"bpmn:StartEvent:end\" | \"bpmn:StartTimerEvent:start\" | \"bpmn:StartTimerEvent:end\" | \"bpmn:MessageStartEvent:start\" | \"bpmn:MessageStartEvent:end\" | \"bpmn:SignalStartEvent:start\" | \"bpmn:SignalStartEvent:end\" | \"bpmn:EscalationStartEvent:start\" | \"bpmn:EscalationStartEvent:end\" | \"bpmn:CompensationStartEvent:start\" | \"bpmn:CompensationStartEvent:end\" | \"bpmn:ErrorStartEvent:start\" | \"bpmn:ErrorStartEvent:end\" | \"bpmn:ConditionalStartEvent:start\" | \"bpmn:ConditionalStartEvent:end\" | \"bpmn:IntermediateCatchEvent:start\" | \"bpmn:IntermediateCatchEvent:end\" | \"bpmn:IntermediateMessageCatch:start\" | \"bpmn:IntermediateMessageCatch:end\" | \"bpmn:IntermediateTimer:start\" | \"bpmn:IntermediateTimer:end\" | \"bpmn:IntermediateLinkCatch:start\" | \"bpmn:IntermediateLinkCatch:end\" | \"bpmn:IntermediateSignalCatch:start\" | \"bpmn:IntermediateSignalCatch:end\" | \"bpmn:IntermediateConditional:start\" | \"bpmn:IntermediateConditional:end\" | \"bpmn:IntermediateThrowEvent:start\" | \"bpmn:IntermediateThrowEvent:end\" | \"bpmn:IntermediateSignalThrow:start\" | \"bpmn:IntermediateSignalThrow:end\" | \"bpmn:IntermediateCompensationThrowEvent:start\" | \"bpmn:IntermediateCompensationThrowEvent:end\" | \"bpmn:IntermediateMessageThrowEvent:start\" | \"bpmn:IntermediateMessageThrowEvent:end\" | \"bpmn:IntermediateNoneThrowEvent:start\" | \"bpmn:IntermediateNoneThrowEvent:end\" | \"bpmn:IntermediateEscalationThrowEvent:start\" | \"bpmn:IntermediateEscalationThrowEvent:end\" | \"bpmn:ErrorEndEvent:start\" | \"bpmn:ErrorEndEvent:end\" | \"bpmn:CancelEndEvent:start\" | \"bpmn:CancelEndEvent:end\" | \"bpmn:TerminateEndEvent:start\" | \"bpmn:TerminateEndEvent:end\" | \"bpmn:MessageEndEvent:start\" | \"bpmn:MessageEndEvent:end\" | \"bpmn:SignalEndEvent:start\" | \"bpmn:SignalEndEvent:end\" | \"bpmn:CompensationEndEvent:start\" | \"bpmn:CompensationEndEvent:end\" | \"bpmn:EscalationEndEvent:start\" | \"bpmn:EscalationEndEvent:end\" | \"bpmn:NoneEndEvent:start\" | \"bpmn:NoneEndEvent:end\";\n\nexport type FormDisplayType = \"modal\" | \"panel\";\n\nexport type FormSizes = \"extraSmall\" | \"small\" | \"medium\" | \"large\";\n\nexport type DataType = \"text\" | \"number\" | \"date\" | \"datetime\" | \"time\" | \"boolean\" | \"bsn\";\n\nexport type FieldType = \"text_contains\" | \"single\" | \"range\" | \"single-select-dropdown\" | \"multi-select-dropdown\";\n\nexport type SearchFieldMatchType = \"like\" | \"exact\";\n\nexport type TabWidgetLayout = \"MUURI_GAP_FREE\" | \"MUURI\" | \"BEAUTIFUL\";\n\nexport type WidgetColor = \"YELLOW\" | \"ORANGE\" | \"RED\" | \"BROWN\" | \"GREEN\" | \"TURQOISE\" | \"PURPLE\" | \"PERIWINKLE\" | \"BLUE\" | \"HIGHCONTRAST\" | \"WHITE\";\n\nexport type BuildingBlockSyncTiming = \"CONTINUOUS\" | \"END\";\n\nexport type DocumentRelationType = \"PREVIOUS\" | \"NEXT\" | \"SUPPORTING\";\n\nexport type ValidationSeverity = \"ERROR\" | \"WARNING\";\n\nexport type ExpressionOperator = \"!=\" | \"==\" | \">\" | \">=\" | \"<\" | \"<=\" | \"list_contains\" | \"in\";\n\nexport type ProcessVariableDTOV2Union = StringProcessVariableDTOV2 | DateProcessVariableDTOV2 | BooleanProcessVariableDTOV2 | EnumProcessVariableDTOV2 | LongProcessVariableDTOV2 | FileUploadProcessVariableDTOV2;\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of shared\n */\n\nexport * from './lib/components/carousel/carousel.component';\nexport * from './lib/components/global-notification.component';\nexport * from './lib/config.module';\nexport * from './lib/constants';\nexport * from './lib/extension/extension.component';\nexport * from './lib/models';\nexport * from './lib/services';\nexport * from './lib/testing';\nexport * from './lib/translation';\nexport * from './lib/utils';\nexport * from './lib/zgw';\nexport * from './lib/guards';\nexport * from './lib/generated'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.ConfigService","i1.ConfigService","i3.EnvironmentService","i4.DraftVersionService","i1.GlobalNotificationService","i2","switchMap","map"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;AAcG;MA4BU,iBAAiB,CAAA;IAgB5B,WAAA,CACmB,WAAwB,EACxB,MAAc,EAAA;QADd,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,MAAM,GAAN,MAAM;QAjBa,IAAA,CAAA,WAAW,GAAG,kBAAkB;AAMtD,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC;AACpD,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC;AACpD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,eAAe,CAAS,CAAC,CAAC;AAC3C,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,eAAe,CAAS,CAAC,CAAC;AAC7C,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,eAAe,CAAW,EAAE,CAAC;QASvD,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IAC/D;IAEO,eAAe,GAAA;AACpB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa;QAEzC,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;AAC/F,QAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC;QAElC,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,MAC3C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAChD;AACD,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC;QAEvD,IAAI,CAAC,iBAAiB,EAAE;IAC1B;IAEO,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE;AACjC,QAAA,IAAI,CAAC,gBAAgB,EAAE,UAAU,EAAE;IACrC;IAEO,QAAQ,GAAA;QACb,IAAI,CAAC,iBAAiB,EAAE;IAC1B;IAEO,UAAU,GAAA;AACf,QAAA,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC3B;IAEO,UAAU,GAAA;AACf,QAAA,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC1B;AAEO,IAAA,aAAa,CAAC,KAAa,EAAA;AAChC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa;AACzC,QAAA,KAAK,CAAC,QAAQ,CAAC,EAAC,IAAI,EAAE,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAC,CAAC;IACvE;AAEQ,IAAA,gBAAgB,CAAC,SAAiB,EAAA;AACxC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa;AACzC,QAAA,KAAK,CAAC,QAAQ,CAAC,EAAC,IAAI,EAAE,SAAS,GAAG,KAAK,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAC,CAAC;IAC3E;IAEQ,iBAAiB,GAAA;AACvB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa;QACzC,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW;QAC3D,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,aAAa,GAAG,CAAC,CAAC;AAE9D,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM;QACnC,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AACnC,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,KAAK,EAAC,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,CAAC,CAAC;QACnE;QAEA,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC;QAChG,IAAI,WAAW,KAAK,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;AAC3C,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;QACrC;IACF;+GAhFW,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1C9B,syEA0EA,EAAA,MAAA,EAAA,CAAA,m/DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDlCY,YAAY,oTAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,cAAA,EAAA,UAAA,EAAA,aAAA,EAAA,yBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,UAAU,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAEtD,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAT7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,mBAGX,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,UAAA,EACzB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,CAAC,EAAA,QAAA,EAAA,syEAAA,EAAA,MAAA,EAAA,CAAA,m/DAAA,CAAA,EAAA;qGAG5B,WAAW,EAAA,CAAA;sBAAhD,WAAW;uBAAC,OAAO;gBAEJ,SAAS,EAAA,CAAA;sBAAxB;gBAEoC,QAAQ,EAAA,CAAA;sBAA5C,SAAS;uBAAC,OAAO;;;AE/CpB;;;;;;;;;;;;;;AAcG;AAIH;AACA,MAAM,uBAAuB,GAAG,iCAAiC;AAEjE;AACO,MAAM,qBAAqB,GAAG,CAAC,KAAc,KAAmB;AACrE,IAAA,MAAM,IAAI,GAAI,KAA2B,EAAE,KAAK;IAChD,MAAM,GAAG,GAAG,IAAI,EAAE,MAAM,IAAI,IAAI,EAAE,OAAO,KAAK,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;IACrF,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;AAAE,QAAA,OAAO,IAAI;AAEvD,IAAA,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE;AAE1B,IAAA,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI;AAC/E;;AC9BA;;;;;;;;;;;;;;AAcG;AAIH,MAAM,WAAW,CAAA;AACR,IAAA,OAAO,qBAAqB,GAAA;AACjC,QAAA,OAAO,EAAC,4BAA4B,EAAE,UAAU,EAAC;IACnD;AACD;;ACtBD;;;;;;;;;;;;;;AAcG;AAEH,MAAM,QAAQ,CAAA;AACZ,IAAA,OAAO,sBAAsB,CAAC,GAAW,EAAE,uBAAgC,EAAA;AACzE,QAAA,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAClC,MAAM,gBAAgB,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5C,YAAA,MAAM,uBAAuB,GAAG,gBAAgB,KAAK,GAAG;AAExD,YAAA,IAAI,CAAC,uBAAuB,IAAI,uBAAuB,EAAE;gBACvD,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACzB;AAAO,iBAAA,IAAI,uBAAuB,IAAI,CAAC,uBAAuB,EAAE;gBAC9D,OAAO,CAAA,EAAG,GAAG,CAAA,CAAA,CAAG;YAClB;QACF;AAEA,QAAA,OAAO,GAAG;IACZ;IAEA,OAAO,uBAAuB,CAAC,GAAW,EAAA;QACxC,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YACtE,OAAO,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE;QAClB;QAEA,OAAO,CAAA,EAAG,GAAG,CAAA,CAAE;IACjB;IAEA,OAAO,UAAU,CAAC,SAAiB,EAAA;AACjC,QAAA,IAAI,GAAS;AAEb,QAAA,IAAI;AACF,YAAA,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC;QAC1B;AAAE,QAAA,OAAO,CAAC,EAAE,EAAC;QAEb,OAAO,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,EAAE;IAC5B;AACD;;ACjDD;;;;;;;;;;;;;;AAcG;AAII,MAAM,2BAA2B,GAAG;AACzC,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,SAAS,EAAE,IAAI;;MAGJ,qBAAqB,GAAG,CAAC,OAA4B,MAA2B;AAC3F,IAAA,GAAG,2BAA2B;AAC9B,IAAA,GAAG,OAAO;AACX,CAAA;;ACND,MAAM,4BAA4B,GAAG,CACnC,KAAqB,EACrB,QAAQ,GAAG,KAAK,KACgC;AAChD,IAAA,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC;IACxD,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC;IACzE,OAAO,aAAa,CAAC,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CACrD,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,YAAY,CAAC,KAAI;QACjC,MAAM,iBAAiB,GACrB,UAAU,CAAC,mBAAmB,CAAC,IAAI,YAAY,CAAC,mBAAmB,CAAC;QACtE,MAAM,wBAAwB,GAC5B,UAAU,CAAC,0BAA0B,CAAC,IAAI,YAAY,CAAC,0BAA0B,CAAC;AACpF,QAAA,IAAI,iBAAiB,IAAI,wBAAwB,EAAE;AACjD,YAAA,OAAO,EAAC,iBAAiB,EAAE,wBAAwB,EAAC;QACtD;AACA,QAAA,OAAO,IAAI;AACb,IAAA,CAAC,CAAC,EACF,MAAM,CAAC,CAAC,MAAM,MAAsC,QAAQ,GAAG,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC,CAAC,EACvF,oBAAoB,CAAC,CAAC,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CACxE;AACH;AAEA,MAAM,qCAAqC,GAAG,CAC5C,KAAqB,EACrB,QAAQ,GAAG,KAAK,KACyC;AACzD,IAAA,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC;IACxD,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC;IACzE,OAAO,aAAa,CAAC,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CACrD,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,YAAY,CAAC,KAAI;QACjC,MAAM,0BAA0B,GAC9B,UAAU,CAAC,4BAA4B,CAAC,IAAI,YAAY,CAAC,4BAA4B,CAAC;AACxF,QAAA,MAAM,iCAAiC,GACrC,UAAU,CAAC,mCAAmC,CAAC;YAC/C,YAAY,CAAC,mCAAmC,CAAC;AACnD,QAAA,IAAI,0BAA0B,IAAI,iCAAiC,EAAE;AACnE,YAAA,OAAO,EAAC,0BAA0B,EAAE,iCAAiC,EAAC;QACxE;AACA,QAAA,OAAO,IAAI;AACb,IAAA,CAAC,CAAC,EACF,MAAM,CAAC,CAAC,MAAM,KACZ,QAAQ,GAAG,MAAM,KAAK,IAAI,GAAG,IAAI,CAClC,EACD,oBAAoB,CAAC,CAAC,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CACxE;AACH;AAEA,SAAS,oBAAoB,CAAC,KAAqB,EAAA;;;IAGjD,IAAI,YAAY,GAA0B,KAAK;IAC/C,OAAO,YAAY,EAAE;QACnB,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,IAAI,GAAG,SAAS,CAAkC;QACzF,IAAI,OAAO,EAAE;YACX,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAC3B,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,IAAK,IAAI,CAAC,SAAS,CAAuB,KAAK,IAAI,CAAC,EACrE,oBAAoB,EAAE,CACvB;QACH;AACA,QAAA,YAAY,GAAG,YAAY,CAAC,MAAM;IACpC;;IAGA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CACpB,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,IAAK,IAAI,CAAC,SAAS,CAAuB,KAAK,IAAI,CAAC,EACrE,oBAAoB,EAAE,CACvB;AACH;AAEA,SAAS,sCAAsC,CAC7C,KAAqB,EAAA;IAErB,MAAM,OAAO,GAAG,4BAA4B,CAAC,KAAK,EAAE,IAAI,CAAC;AACzD,IAAA,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC;IAE5C,OAAO,QAAQ,CAAC,IAAI,CAClB,SAAS,CAAC,OAAO,IAAG;AAClB,QAAA,IAAI,OAAO,KAAK,MAAM,EAAE;YACtB,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAE1C;QACH;AAEA,QAAA,MAAM,cAAc,GAAyB;AAC3C,YAAA,iBAAiB,EAAE,EAAE;AACrB,YAAA,wBAAwB,EAAE,EAAE;SAC7B;QACD,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,cAAc,CAA8C,CAAC;IACnF,CAAC,CAAC,CACH;AACH;;AC9GA;;;;;;;;;;;;;;AAcG;AAIH,MAAM,4BAA4B,GAAG,CAAC,qBAA4C,KAAY;AAC5F,IAAA,IAAI,qBAAqB,EAAE,UAAU,EAAE;QACrC,OAAO,qBAAqB,CAAC,UAAU;IACzC;AAAO,SAAA,IAAI,qBAAqB,EAAE,SAAS,EAAE;AAC3C,QAAA,OAAO,qBAAqB,CAAC,SAAS,CAAC,QAAQ,EAAE;IACnD;AAAO,SAAA,IAAI,qBAAqB,EAAE,IAAI,EAAE;AACtC,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAI;AAClE,YAAA,MAAM,kBAAkB,GAAG,CAAA,EAAG,IAAI,CAAA,EAAA,EAAK,qBAAqB,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE;YAC3E,IAAI,CAAC,GAAG,EAAE;gBACR,OAAO,CAAA,EAAG,kBAAkB,CAAA,CAAE;YAChC;AAEA,YAAA,OAAO,CAAA,EAAG,GAAG,CAAA,EAAA,EAAK,kBAAkB,EAAE;QACxC,CAAC,EAAE,EAAE,CAAC;IACR;AAEA,IAAA,OAAO,GAAG;AACZ;;ACnCA;;;;;;;;;;;;;;AAcG;AAEH,MAAM,WAAW,GAAG,CAAC,KAAa,KAAiD;IACjF,MAAM,OAAO,GAAG,uCAAuC;IAEvD,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,EAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA,EAAG,OAAO,CAAA,WAAA,CAAa,EAAC;IAC5D;IAEA,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE;IAEvC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;QAC1B,OAAO,EAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA,EAAG,OAAO,CAAA,gBAAA,CAAkB,EAAC;IACjE;AAEA,IAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QAC5C,OAAO,EAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA,EAAG,OAAO,CAAA,eAAA,CAAiB,EAAC;IAChE;AAEA,IAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACtB,OAAO,EAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA,EAAG,OAAO,CAAA,eAAA,CAAiB,EAAC;IAChE;AAEA,IAAA,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;QAChD,OAAO,EAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA,EAAG,OAAO,CAAA,qBAAA,CAAuB,EAAC;IACtE;IAEA,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1D,IAAI,GAAG,GAAG,CAAC;AACX,IAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;AAE5B,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/B,QAAA,MAAM,MAAM,GAAG,CAAC,KAAK,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC;AACjD,QAAA,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM;IAC3B;AAEA,IAAA,IAAI,GAAG,GAAG,EAAE,KAAK,CAAC,EAAE;QAClB,OAAO,EAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA,EAAG,OAAO,CAAA,cAAA,CAAgB,EAAC;IAC/D;IAEA,OAAO,EAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC;AACxC;;ACvDA;;;;;;;;;;;;;;AAcG;AAEH,MAAM,qBAAqB,GAAG,kBAAkB;AAChD,MAAM,gBAAgB,GAAG,2BAA2B;AACpD,MAAM,qBAAqB,GAAG,cAAc;AAC5C,MAAM,gBAAgB,GAAG,MAAM;AAC/B,MAAM,oBAAoB,GAAG,SAAS;AACtC,MAAM,wBAAwB,GAAG,UAAU;AAC3C,MAAM,wBAAwB,GAAG,QAAQ;AAEzC;AACA,MAAM,WAAW,GAAG,CAAC,MAAc,EAAE,SAAkB,KAAY;AACjE,IAAA,IAAI,CAAC,MAAM;AAAE,QAAA,OAAO,EAAE;IAEtB,MAAM,KAAK,GAAG;SACX,SAAS,CAAC,KAAK;AACf,SAAA,OAAO,CAAC,qBAAqB,EAAE,EAAE;AACjC,SAAA,WAAW;AACX,SAAA,OAAO,CAAC,gBAAgB,EAAE,GAAG;AAC7B,SAAA,OAAO,CAAC,oBAAoB,EAAE,GAAG;AACjC,SAAA,OAAO,CAAC,wBAAwB,EAAE,EAAE;AACpC,SAAA,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC;AAExC,IAAA,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,IAAI,SAAS;AAAE,QAAA,OAAO,KAAK;AAEzD,IAAA,OAAO,sBAAsB,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD;AAEA,MAAM,sBAAsB,GAAG,CAAC,KAAa,EAAE,SAAiB,KAAY;IAC1E,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC;IAC3C,MAAM,aAAa,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC;;AAEhD,IAAA,MAAM,UAAU,GAAG,aAAa,GAAG,SAAS,GAAG,CAAC;IAEhD,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,GAAG,SAAS,EAAE,OAAO,CACzE,wBAAwB,EACxB,EAAE,CACH;AACH,CAAC;AAED;AACA,MAAM,WAAW,GAAG,CAAC,MAAc,KAAY;AAC7C,IAAA,IAAI,CAAC,MAAM;AAAE,QAAA,OAAO,EAAE;AAEtB,IAAA,OAAO;SACJ,SAAS,CAAC,KAAK;AACf,SAAA,OAAO,CAAC,qBAAqB,EAAE,EAAE;AACjC,SAAA,WAAW;AACX,SAAA,OAAO,CAAC,gBAAgB,EAAE,GAAG;AAC7B,SAAA,OAAO,CAAC,qBAAqB,EAAE,EAAE;AACjC,SAAA,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC;AAC1C;;ACjEA;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;MAMmB,cAAc,CAAA;IAGlC,WAAA,CACqB,UAAsB,EACtB,aAA4B,EAAA;QAD5B,IAAA,CAAA,UAAU,GAAV,UAAU;QACV,IAAA,CAAA,aAAa,GAAb,aAAa;QAEhC,IAAI,CAAC,mBAAmB,GAAG,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW;IACxE;AAEO,IAAA,SAAS,CAAC,OAAe,EAAA;QAC9B,MAAM,iBAAiB,GAAG,QAAQ,CAAC,uBAAuB,CAAC,OAAO,CAAC;AACnE,QAAA,MAAM,6BAA6B,GAAG,CAAA,EAAG,QAAQ,CAAC,sBAAsB,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAA,EAAG,iBAAiB,EAAE;AAC/H,QAAA,OAAO,6BAA6B;IACtC;AACD;;ACnCD;;;;;;;;;;;;;;AAcG;AAOH,MAAM,cAAc,GAAG,IAAI,cAAc,CAAgB,eAAe;AAExE;AACA,MAAM,YAAY,GAAG,IAAI,cAAc,CAAqB,cAAc;AAgJ1E,IAAK;AAAL,CAAA,UAAK,cAAc,EAAA;AACjB,IAAA,cAAA,CAAA,cAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAE;;AAEF,IAAA,cAAA,CAAA,cAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS;AACT,IAAA,cAAA,CAAA,cAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAc;AAChB,CAAC,EALI,cAAc,KAAd,cAAc,GAAA,EAAA,CAAA,CAAA;AAOnB,IAAK;AAAL,CAAA,UAAK,WAAW,EAAA;AACd,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,WAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACf,CAAC,EALI,WAAW,KAAX,WAAW,GAAA,EAAA,CAAA,CAAA;AAOhB,IAAK;AAAL,CAAA,UAAK,WAAW,EAAA;AACd,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,WAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACf,CAAC,EALI,WAAW,KAAX,WAAW,GAAA,EAAA,CAAA,CAAA;AAOhB,IAAK;AAAL,CAAA,UAAK,QAAQ,EAAA;AACX,IAAA,QAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACT,IAAA,QAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACX,CAAC,EAHI,QAAQ,KAAR,QAAQ,GAAA,EAAA,CAAA,CAAA;;AC7Lb;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;;;AAgBG;AAIH,IAAK;AAAL,CAAA,UAAK,eAAe,EAAA;AAClB,IAAA,eAAA,CAAA,eAAA,CAAA,yBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,yBAAuB;AACvB,IAAA,eAAA,CAAA,eAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAiB;AACjB,IAAA,eAAA,CAAA,eAAA,CAAA,oBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,oBAAkB;AACpB,CAAC,EAJI,eAAe,KAAf,eAAe,GAAA,EAAA,CAAA,CAAA;;ACpBpB;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;MAeU,mBAAmB,CAAA;IAQ9B,WAAA,CACE,KAAa,EACb,SAAiB,EACjB,QAAgB,EAChB,KAAoB,EACpB,QAAiB,EACjB,EAAW,EAAA;AAEX,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS;AAC3B,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;AACzB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;AACzB,QAAA,IAAI,CAAC,GAAG,GAAG,EAAE;IACf;AAEA,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM;IACpB;AAEA,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,UAAU;IACxB;AAEA,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;IACvB;AAEA,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM;IACpB;AAEA,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;IACvB;AAEA,IAAA,IAAI,EAAE,GAAA;QACJ,OAAO,IAAI,CAAC,GAAG;IACjB;AACD;;AC5ED;;;;;;;;;;;;;;AAcG;MAWU,eAAe,CAAA;AAI1B,IAAA,WAAA,CAAY,wBAAkD,EAAA;QAH7C,IAAA,CAAA,wBAAwB,GAA6B,IAAI;QAClE,IAAA,CAAA,YAAY,GAAsB,IAAI;AAG5C,QAAA,IAAI,CAAC,wBAAwB,GAAG,wBAAwB;IAC1D;IAEA,kBAAkB,CAAC,gBAAkC,EAAE,cAA8B,EAAA;AACnF,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAC5E,cAAc,CAAC,SAAS,CACzB;QACD,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAAC,eAAe,CAAC,gBAAgB,CAAC;IACxE;IAEA,0BAA0B,CAAC,gBAAkC,EAAE,cAA8B,EAAA;AAC3F,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAC5E,cAAc,CAAC,SAAS,CACzB;QACD,gBAAgB,CAAC,KAAK,EAAE;AACxB,QAAA,QAAQ,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAAC,eAAe,CAAC,gBAAgB,CAAC;IAChF;AACD;MAEY,SAAS,CAAA;IAIpB,WAAA,CAAY,IAAY,EAAE,cAAmC,EAAA;AAC3D,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,CAAC,eAAe,GAAG,cAAc;IACvC;AAEA,IAAA,IAAI,cAAc,GAAA;QAChB,OAAO,IAAI,CAAC,eAAe;IAC7B;AACD;MAEY,mBAAmB,CAAA;AAM9B,IAAA,WAAA,CAAY,MAAc,EAAE,IAAY,EAAE,OAAe,EAAE,SAAc,EAAA;AACvE,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM;AACrB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS;IAC7B;AAEA,IAAA,QAAQ,CAAC,MAAc,EAAE,IAAY,EAAE,OAAe,EAAA;AACpD,QAAA,OAAO,IAAI,CAAC,OAAO,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO;IACpF;AAEA,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,OAAO;IACrB;AAEA,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,KAAK;IACnB;AAEA,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ;IACtB;AAEA,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,UAAU;IACxB;AACD;;AC/FD;;;;;;;;;;;;;;AAcG;AAKG,SAAU,iBAAiB,CAAC,UAAsB,EAAA;AACtD,IAAA,OAAO,IAAI,mBAAmB,CAAC,UAAU,CAAC;AAC5C;;ACrBA;;;;;;;;;;;;;;AAcG;AAEI,MAAM,UAAU,GAAG;AACnB,MAAM,SAAS,GAAG;AAClB,MAAM,cAAc,GAAG;;AClB9B;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;IAES;AAAZ,CAAA,UAAY,QAAQ,EAAA;AAClB,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,QAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,QAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,QAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,QAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,QAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACrB,CAAC,EAbW,QAAQ,KAAR,QAAQ,GAAA,EAAA,CAAA,CAAA;;AChBpB;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;MAiBU,aAAa,CAAA;IAYxB,WAAA,CACkC,aAA4B,EACpD,wBAAkD,EAAA;QAD1B,IAAA,CAAA,aAAa,GAAb,aAAa;QACrC,IAAA,CAAA,wBAAwB,GAAxB,wBAAwB;QAZjB,IAAA,CAAA,UAAU,GAAqB,EAAE;QACjC,IAAA,CAAA,yBAAyB,GAAG,SAAS;AAErC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,eAAe,CACrD,IAAI,CAAC,aAAa,EAAE,cAAc,IAAK,EAAkC,CAC1E;AAEe,QAAA,IAAA,CAAA,eAAe,GAC7B,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE;QAMpC,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC,wBAAwB,CAAC;IACtE;AAEA,IAAA,IAAW,MAAM,GAAA;AACf,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa;AACjC,QAAA,MAAM,0BAA0B,GAAG,MAAM,CAAC,oBAAoB;QAE9D,OAAO;AACL,YAAA,GAAG,MAAM;AACT,YAAA,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE;AACvC,YAAA,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,IACtD,QAAQ,CAAC,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,CAC/C;AACD,YAAA,OAAO,EAAE;gBACP,GAAG,MAAM,CAAC,OAAO;AACjB,gBAAA,WAAW,EAAE,QAAQ,CAAC,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC;AAC/E,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,GAAG,MAAM,CAAC,OAAO;AACjB,gBAAA,WAAW,EAAE,QAAQ,CAAC,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC;AAChF,aAAA;AACD,YAAA,UAAU,EAAE;gBACV,GAAG,MAAM,CAAC,UAAU;AACpB,gBAAA,WAAW,EAAE,QAAQ,CAAC,sBAAsB,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC;AAClF,aAAA;YACD,IAAI,0BAA0B,IAAI;AAChC,gBAAA,oBAAoB,EAAE,0BAA0B,CAAC,GAAG,CAAC,QAAQ,IAC3D,QAAQ,CAAC,sBAAsB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAChD;aACF,CAAC;AACF,YAAA,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,IAAI,IAAI,CAAC,yBAAyB;SAC5E;IACH;AAEA,IAAA,IAAW,cAAc,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK;IACpC;AAEA,IAAA,IAAW,OAAO,GAAA;QAChB,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAC/B,GAAG,CAAC,cAAc,KAAK,EAAC,GAAG,IAAI,CAAC,MAAM,EAAE,cAAc,EAAC,CAAC,CAAC,CAC1D;IACH;AAEA,IAAA,IAAW,YAAY,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE,YAAY,IAAI,EAAE;IAC/C;AAEO,IAAA,YAAY,CAAC,SAAoB,EAAA;QACtC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;IACxC;AAEO,IAAA,0BAA0B,CAAC,MAAc,EAAE,IAAY,EAAE,OAAe,EAAA;QAC7E,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,IACnC,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CACzD;IACH;AAEO,IAAA,2BAA2B,CAAC,MAAc,EAAE,IAAY,EAAE,OAAe,EAAA;QAC9E,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,IACrC,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CACzD;IACH;IAEO,kBAAkB,CAAC,gBAAkC,EAAE,cAA8B,EAAA;QAC1F,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,cAAc,CAAC;IAC3E;IAEO,2BAA2B,CAChC,gBAAkC,EAClC,cAA8B,EAAA;QAE9B,OAAO,IAAI,CAAC,eAAe,CAAC,0BAA0B,CAAC,gBAAgB,EAAE,cAAc,CAAC;IAC1F;AAEO,IAAA,0BAA0B,CAC/B,aAAgD,EAChD,YAAY,GAAG,KAAK,EAAA;AAEpB,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAC9B,GAAG,CAAC,cAAc,IAChB,cAAc,EAAE,cAAc,CAAC,aAAa;AAC1C,cAAE,CAAC,CAAC,cAAc,CAAC,aAAa;AAChC,cAAE,YAAY,CACjB,EACD,oBAAoB,EAAE,CACvB;IACH;AAEO,IAAA,gBAAgB,CAAC,aAAgD,EAAA;AACtE,QAAA,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IACtE;AAEO,IAAA,mBAAmB,CAAC,SAA+C,EAAA;AACxE,QAAA,MAAM,MAAM,GAAG;AACb,YAAA,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK;AAC9B,YAAA,GAAG,SAAS;SACb;QACD,IAAI,CAAC,aAAa,GAAG;YACnB,GAAG,IAAI,CAAC,aAAa;AACrB,YAAA,cAAc,EAAE,MAAM;SACvB;AACD,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAqC,CAAC;IACnE;AAvHW,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,kBAad,cAAc,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAbb,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA,CAAA;;4FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;0BAcI,MAAM;2BAAC,cAAc;;;AC5C1B;;;;;;;;;;;;;;AAcG;MAiBU,yBAAyB,CAAA;AAHtC,IAAA,WAAA,GAAA;QAIU,IAAA,CAAA,oBAAoB,GAA+B,IAAI;QAC9C,IAAA,CAAA,kBAAkB,GAAoC,EAAE;AAyG1E,IAAA;AAvGQ,IAAA,sBAAsB,CAAC,OAA4B,EAAA;AACxD,QAAA,IAAI,CAAC,oBAAoB,GAAG,OAAO;IACrC;IAEO,sBAAsB,GAAA;QAC3B,OAAO,IAAI,CAAC,oBAAoB;IAClC;AAEO,IAAA,gBAAgB,CACrB,eAAuE,EACvE,gBAAA,GAAwC,YAAY,EAAA;QAEpD,IAAI,CAAC,IAAI,CAAC,oBAAoB;AAAE,YAAA,OAAO,IAAI;AAE3C,QAAA,OAAO,IAAI,CAAC,qBAAqB,CAC/B,IAAI,CAAC,oBAAoB,EAAE,gBAAgB,CACzC,qBAAqB,CAAC,eAAe,CAAC,EACtC,gBAAgB,CACjB,CACF;IACH;AAEO,IAAA,SAAS,CACd,eAAmD,EACnD,gBAAA,GAAiC,KAAK,EAAA;QAEtC,IAAI,CAAC,IAAI,CAAC,oBAAoB;AAAE,YAAA,OAAO,IAAI;AAE3C,QAAA,OAAO,IAAI,CAAC,qBAAqB,CAC/B,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,qBAAqB,CAAC,eAAe,CAAC,EAAE,gBAAgB,CAAC,CAC/F;IACH;AAEO,IAAA,cAAc,CACnB,eAAkC,EAClC,gBAAA,GAAkD,sBAAsB,EAAA;QAExE,IAAI,CAAC,IAAI,CAAC,oBAAoB;AAAE,YAAA,OAAO,IAAI;AAE3C,QAAA,OAAO,IAAI,CAAC,qBAAqB,CAC/B,IAAI,CAAC,oBAAoB,EAAE,cAAc,CACvC,qBAAqB,CAAC,eAAe,CAAC,EACtC,gBAAgB,CACjB,CACF;IACH;AAEO,IAAA,KAAK,CAAC,eAAoB,EAAA;AAC/B,QAAA,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE;IAC9B;AAEO,IAAA,eAAe,CAAC,eAAoB,EAAA;QACzC,IAAI,CAAC,IAAI,CAAC,oBAAoB;AAAE,YAAA,OAAO,IAAI;QAC3C,OAAO,IAAI,CAAC,oBAAoB,EAAE,eAAe,CAAC,eAAe,CAAC;IACpE;IAEO,mBAAmB,GAAA;QACxB,IAAI,CAAC,IAAI,CAAC,oBAAoB;AAAE,YAAA,OAAO,IAAI;AAC3C,QAAA,OAAO,IAAI,CAAC,oBAAoB,EAAE,gBAAgB;IACpD;IAEO,iBAAiB,GAAA;QACtB,IAAI,CAAC,IAAI,CAAC,oBAAoB;AAAE,YAAA,OAAO,IAAI;AAC3C,QAAA,OAAO,IAAI,CAAC,oBAAoB,EAAE,OAAO;IAC3C;IAEO,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,oBAAoB,EAAE,WAAW,EAAE;AACxC,QAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;IACnE;AAEQ,IAAA,qBAAqB,CAAC,eAAoB,EAAA;AAChD,QAAA,MAAM,YAAY,GAAG;AACnB,YAAA,GAAG,eAAe;YAClB,EAAE,EACA,eAAe,CAAC,OAAO;AACvB,gBAAA,eAAe,CAAC,cAAc;AAC9B,gBAAA,eAAe,CAAC,wBAAwB;SAC3C;QAED,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;YACtC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AACpC,YAAA,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;QAC7B;AAEA,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC;AAC1C,QAAA,UAAU,CAAC,MAAM,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;AAEvE,QAAA,eAAe,CAAC;AACb,aAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACZ,aAAA,SAAS,CAAC,MAAM,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;AAEnE,QAAA,OAAO,eAAe;IACxB;AAEQ,IAAA,yBAAyB,CAAC,EAAU,EAAA;AAC1C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAC7C,CAAC,YAAyC,KAAK,YAAY,CAAC,EAAE,KAAK,EAAE,CACtE;QACD,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE;QAElB,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1C;+GA1GW,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,cAFxB,MAAM,EAAA,CAAA,CAAA;;4FAEP,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;AC9BD;;;;;;;;;;;;;;AAcG;MAYU,mBAAmB,CAAA;IAG9B,WAAA,CACmB,IAAgB,EAChB,aAA4B,EAAA;QAD5B,IAAA,CAAA,IAAI,GAAJ,IAAI;QACJ,IAAA,CAAA,aAAa,GAAb,aAAa;QAE9B,IAAI,CAAC,aAAa,GAAG,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW;IACrE;AAEO,IAAA,eAAe,CAAC,WAAmB,EAAA;QACxC,OAAO,IAAI,CAAC;aACT,GAAG,CAAsB,GAAG,IAAI,CAAC,aAAa,CAAA,gBAAA,EAAmB,WAAW,EAAE,EAAE;YAC/E,OAAO,EAAE,IAAI,WAAW,EAAE,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,CAAC;SAC5D;AACA,aAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACnC;IAEO,gBAAgB,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAA,eAAA,CAAiB,CAAC;IAC9E;IAEO,sBAAsB,GAAA;QAC3B,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,CACjC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM,EAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CACxF;IACH;IAEO,kBAAkB,CACvB,WAAmB,EACnB,0BAA+C,EAAA;AAE/C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,CAAA,EAAG,IAAI,CAAC,aAAa,8BAA8B,WAAW,CAAA,CAAE,EAChE,0BAA0B,CAC3B;IACH;AAEO,IAAA,mBAAmB,CAAC,oBAAoC,EAAA;AAC7D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAA,0BAAA,CAA4B,EACjD,oBAAoB,CACrB;IACH;+GA3CW,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA;;4FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;ACzBD;;;;;;;;;;;;;;AAcG;MAUU,kBAAkB,CAAA;AAC7B,IAAA,WAAA,CAA6B,aAA4B,EAAA;QAA5B,IAAA,CAAA,aAAa,GAAb,aAAa;IAAkB;AAE5D,IAAA,4BAA4B,CAC1B,eAAoD,EAAA;AAEpD,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;AAClC,YAAA,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;AAChC,gBAAA,OAAO,EAAE,CAAC,IAAI,CAAC;YACjB;AACA,YAAA,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;YAChF,OAAO,aAAa,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC;QACzF;AACA,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAAC;IACvD;AAEQ,IAAA,wBAAwB,CAAC,eAAgC,EAAA;QAC/D,QAAQ,eAAe;YACrB,KAAK,eAAe,CAAC,uBAAuB;gBAC1C,OAAO,IAAI,CAAC,aAAa,CAAC,0BAA0B,CAAC,wBAAwB,EAAE,IAAI,CAAC;YACtF,KAAK,eAAe,CAAC,iBAAiB;gBACpC,OAAO,IAAI,CAAC,aAAa,CAAC,0BAA0B,CAAC,kBAAkB,EAAE,KAAK,CAAC;YACjF,KAAK,eAAe,CAAC,kBAAkB;gBACrC,OAAO,IAAI,CAAC,aAAa,CAAC,0BAA0B,CAAC,mBAAmB,EAAE,KAAK,CAAC;AAClF,YAAA;AACE,gBAAA,OAAO,EAAE,CAAC,IAAI,CAAC;;IAErB;AAEA;;AAEG;AACH,IAAA,kBAAkB,CAAC,eAAgC,EAAA;AACjD,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAAC;IACvD;+GAlCW,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA,CAAA;;4FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;ACvBD;;;;;;;;;;;;;;AAcG;MAWU,mBAAmB,CAAA;IAG9B,WAAA,CACmB,IAAgB,EAChB,aAA4B,EAAA;QAD5B,IAAA,CAAA,IAAI,GAAJ,IAAI;QACJ,IAAA,CAAA,aAAa,GAAb,aAAa;QAE9B,IAAI,CAAC,aAAa,GAAG,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW;IACrE;IAEA,eAAe,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAe,CAAA,EAAG,IAAI,CAAC,aAAa,CAAA,gBAAA,CAAkB,CAAC;IAC7E;AAEA,IAAA,gBAAgB,CAAC,QAAsB,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAA,gBAAA,CAAkB,EAAE,QAAQ,CAAC;IACzE;+GAhBW,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,IAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA;;4FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;ACxBD;;;;;;;;;;;;;;AAcG;AAIH,MAAM,QAAQ,GAAa;AACzB,IAAA,iBAAiB,EAAE,SAAS;;;ACnB9B;;;;;;;;;;;;;;AAcG;AAKH,MAAM,yBAAyB,GAAG,IAAI,cAAc,CAClD,oEAAoE;;ACpBtE;;;;;;;;;;;;;;AAcG;AAKH,MAAM,qBAAqB,GAAG,IAAI,cAAc,CAC9C,wCAAwC;;ACpB1C;;;;;;;;;;;;;;AAcG;AAIH,MAAM,eAAe,GAAG;AACxB,MAAM,qBAAqB,GAAG,IAAI,WAAW,EAAE,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK;;ACnB1E;;;;;;;;;;;;;;AAcG;AAIH,MAAM,mCAAmC,GAAG,IAAI,cAAc,CAC5D,uEAAuE;;ACnBzE;;;;;;;;;;;;;;AAcG;AAIH,MAAM,SAAS,GAAG,IAAI,cAAc,CAAU,4CAA4C;;AClB1F;;;;;;;;;;;;;;AAcG;AAKH,MAAM,mCAAmC,GAAG,IAAI,cAAc,CAC5D,qFAAqF;;ACpBvF;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;AAcG,MAAO,kBAAmB,SAAQ,cAAc,CAAA;IACpD,WAAA,CACqB,UAAsB,EACtB,aAA4B,EAAA;AAE/C,QAAA,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC;QAHb,IAAA,CAAA,UAAU,GAAV,UAAU;QACV,IAAA,CAAA,aAAa,GAAb,aAAa;IAGlC;IAEO,4BAA4B,GAAA;QACjC,OAAO,IAAI,CAAC;AACT,aAAA,GAAG,CAAsB,IAAI,CAAC,SAAS,CAAC,qCAAqC,CAAC,EAAE;YAC/E,OAAO,EAAE,IAAI,WAAW,EAAE,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC;SACvD;aACA,IAAI,CACH,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,4BAA4B,CAAC,EACtD,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAC3B;IACL;+GAjBW,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA,CAAA;;4FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;AC3BD;;;;;;;;;;;;;;AAcG;AAYG,MAAO,mBAAoB,SAAQ,cAAc,CAAA;IACrD,WAAA,CACqB,UAAsB,EACtB,aAA4B,EAAA;AAE/C,QAAA,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC;QAHb,IAAA,CAAA,UAAU,GAAV,UAAU;QACV,IAAA,CAAA,aAAa,GAAb,aAAa;IAGlC;IAEO,cAAc,CACnB,iBAAyB,EACzB,wBAAgC,EAAA;AAEhC,QAAA,IAAI,CAAC,iBAAiB,IAAI,CAAC,wBAAwB,EAAE;AACnD,YAAA,OAAO,EAAE,CAAC,KAAK,CAAC;QAClB;QAEA,OAAO,IAAI,CAAC;aACT,GAAG,CACF,IAAI,CAAC,SAAS,CACZ,CAAA,8BAAA,EAAiC,iBAAiB,CAAA,SAAA,EAAY,wBAAwB,CAAA,CAAE,CACzF,EACD;YACE,OAAO,EAAE,IAAI,WAAW,EAAE,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC;SACvD;AAEF,aAAA,IAAI,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACvD;IAEO,2BAA2B,CAChC,0BAAkC,EAClC,iCAAyC,EAAA;AAEzC,QAAA,IAAI,CAAC,0BAA0B,IAAI,CAAC,iCAAiC,EAAE;AACrE,YAAA,OAAO,EAAE,CAAC,KAAK,CAAC;QAClB;QAEA,OAAO,IAAI,CAAC;aACT,GAAG,CACF,IAAI,CAAC,SAAS,CACZ,CAAA,6BAAA,EAAgC,0BAA0B,CAAA,SAAA,EAAY,iCAAiC,CAAA,CAAE,CAC1G,EACD;YACE,OAAO,EAAE,IAAI,WAAW,EAAE,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC;SACvD;AAEF,aAAA,IAAI,CAAC,GAAG,CAAC,uBAAuB,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACzE;+GA9CW,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA;;4FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;ACzBD;;;;;;;;;;;;;;AAcG;AAcG,MAAO,sBAAuB,SAAQ,cAAc,CAAA;AACxD,IAAA,WAAA,CACqB,UAAsB,EACtB,aAA4B,EAC/B,kBAAsC,EACtC,mBAAwC,EAAA;AAExD,QAAA,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC;QALb,IAAA,CAAA,UAAU,GAAV,UAAU;QACV,IAAA,CAAA,aAAa,GAAb,aAAa;QAChB,IAAA,CAAA,kBAAkB,GAAlB,kBAAkB;QAClB,IAAA,CAAA,mBAAmB,GAAnB,mBAAmB;IAGrC;IAEO,kBAAkB,CACvB,iBAAyB,EACzB,wBAAgC,EAAA;AAEhC,QAAA,OAAO,aAAa,CAAC;AACnB,YAAA,IAAI,CAAC,kBAAkB,CAAC,4BAA4B,EAAE;YACtD,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;AACrF,SAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,cAAc,CAAC,KAAK,SAAS,IAAI,cAAc,CAAC,CAAC;IAC5E;IAEO,kCAAkC,CACvC,MAA4D,EAC5D,OAAe,EAAA;AAEf,QAAA,IAAI,OAAO,KAAK,MAAM,EAAE;YACtB,MAAM,oBAAoB,GAAG,MAA8B;AAC3D,YAAA,OAAO,IAAI,CAAC,kBAAkB,CAC5B,oBAAoB,CAAC,iBAAiB,EACtC,oBAAoB,CAAC,wBAAwB,CAC9C;QACH;AAAO,aAAA,IAAI,OAAO,KAAK,aAAa,EAAE;AACpC,YAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,4BAA4B,EAAE;QAC/D;AAAO,aAAA,IAAI,OAAO,KAAK,eAAe,EAAE;AACtC,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC;QACjB;AACA,QAAA,OAAO,EAAE,CAAC,KAAK,CAAC;IAClB;+GApCW,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cAFrB,MAAM,EAAA,CAAA,CAAA;;4FAEP,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;AC3BD;;;;;;;;;;;;;;AAcG;MAQU,yBAAyB,CAAA;AAHtC,IAAA,WAAA,GAAA;QAImB,IAAA,CAAA,sBAAsB,GAAG,IAAI,eAAe,CAAc,IAAI,GAAG,EAAE,CAAC;QAMrE,IAAA,CAAA,aAAa,GAAwB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CACnF,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAC7B;AASF,IAAA;AAfQ,IAAA,uBAAuB,CAAC,UAAoB,EAAA;QACjD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;IACvD;AAMO,IAAA,SAAS,CAAC,SAAiB,EAAA;QAChC,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7E;AAEO,IAAA,eAAe,CAAC,UAAoB,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3F;+GAjBW,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,cAFxB,MAAM,EAAA,CAAA,CAAA;;4FAEP,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;ACrBD;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;MAkBU,2BAA2B,CAAA;IACtC,WAAA,CACmB,yBAAoD,EACpD,mBAAwC,EAAA;QADxC,IAAA,CAAA,yBAAyB,GAAzB,yBAAyB;QACzB,IAAA,CAAA,mBAAmB,GAAnB,mBAAmB;IACnC;IAEI,QAAQ,GAAA;QACb,IAAI,CAAC,yBAAyB,CAAC,sBAAsB,CAAC,IAAI,CAAC,mBAAmB,CAAC;IACjF;+GARW,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,0EAJ3B,CAAC,mBAAmB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EANtB,CAAA,CAAE,yHAQF,YAAY,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEX,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAZvC,SAAS;+BACE,6BAA6B,EAAA,QAAA,EAC7B,CAAA,CAAE,EAAA,SAAA,EAMD,CAAC,mBAAmB,CAAC,EAAA,UAAA,EACpB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,MAAA,EAAA,CAAA,kDAAA,CAAA,EAAA;;;AC9BzB;;;;;;;;;;;;;;AAcG;MAYU,kBAAkB,CAAA;AAU7B,IAAA,WAAA,CAAoB,aAA4B,EAAA;QAA5B,IAAA,CAAA,aAAa,GAAb,aAAa;QAT1B,IAAA,CAAA,eAAe,GAAoB,IAAI;IASK;IAEnD,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC;AACF,aAAA,2BAA2B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO;aAChE,OAAO,CAAC,SAAS,IAAG;AACnB,YAAA,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,cAAc,CAAC;AACxF,QAAA,CAAC,CAAC;IACN;+GAlBW,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAJ,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAOQ,gBAAgB,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjCvD,gsBAiBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDSa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,cAGjB,KAAK,EAAA,QAAA,EAAA,gsBAAA,EAAA;+EAMD,MAAM,EAAA,CAAA;sBAArB;gBACe,IAAI,EAAA,CAAA;sBAAnB;gBACe,OAAO,EAAA,CAAA;sBAAtB;gBAED,gBAAgB,EAAA,CAAA;sBADf,SAAS;uBAAC,iBAAiB,EAAE,EAAC,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAC;;;AEjCtE;;;;;;;;;;;;;;AAcG;MAYU,YAAY,CAAA;IACvB,OAAO,OAAO,CAAC,MAAqB,EAAA;QAClC,OAAO;AACL,YAAA,QAAQ,EAAE,YAAY;AACtB,YAAA,SAAS,EAAE;gBACT,aAAa;AACb,gBAAA;AACE,oBAAA,OAAO,EAAE,cAAc;AACvB,oBAAA,QAAQ,EAAE,MAAM;AACjB,iBAAA;AACF,aAAA;SACF;IACH;+GAZW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAZ,YAAY,EAAA,YAAA,EAAA,CAJR,kBAAkB,CAAA,EAAA,OAAA,EAAA,CAEvB,kBAAkB,CAAA,EAAA,CAAA,CAAA;gHAEjB,YAAY,EAAA,CAAA,CAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBALxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,kBAAkB,CAAC;AAClC,oBAAA,OAAO,EAAE,EAAE;oBACX,OAAO,EAAE,CAAC,kBAAkB,CAAC;AAC9B,iBAAA;;;ACzBD;;;;;;;;;;;;;;AAcG;MAQU,oBAAoB,CAAA;AACxB,IAAA,MAAM,CAAC,GAAW,EAAA;AACvB,QAAA,OAAO,EAAE,CAAC,IAAI,CAAC;IACjB;AAEO,IAAA,OAAO,CAAC,GAAW,EAAA;AACxB,QAAA,OAAO,EAAE;IACX;+GAPW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cAFnB,MAAM,EAAA,CAAA,CAAA;;4FAEP,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;ACrBD;;;;;;;;;;;;;;AAcG;MASU,mBAAmB,CAAA;AAHhC,IAAA,WAAA,GAAA;AAYmB,QAAA,IAAA,CAAA,iBAAiB,GAAoB;AACpD,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,gBAAgB,EAAE,CAAC;SACpB;AAKF,IAAA;AAvBC,IAAA,IAAW,eAAe,GAAA;QACxB,OAAO,EAAE,CAAC,EAAC,IAAI,EAAE,EAAE,EAAC,CAAC;IACvB;IAEO,UAAU,GAAA;AACf,QAAA,OAAO,EAAE,CAAC,IAAI,CAAC;IACjB;AAcO,IAAA,MAAM,eAAe,GAAA;QAC1B,OAAO,IAAI,CAAC,iBAAiB;IAC/B;+GAvBW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA;;4FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;ACtBD;;;;;;;;;;;;;;AAcG;MAOU,eAAe,CAAA;AACnB,IAAA,WAAW,CAAC,KAAiB,EAAA;QAClC;IACF;+GAHW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA,CAAA;;4FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;ACpBD;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;MAUU,8BAA8B,CAAA;AAKzC,IAAA,WAAA,CACE,QAAqB,EACrB,WAAuB,EACvB,oBAAyC,EACzC,gBAAwD,EAAA;AAExD,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW;AAC9B,QAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB;AACxC,QAAA,IAAI,CAAC,oBAAoB,GAAG,oBAAoB;IAClD;AACA,IAAA,cAAc,CAAC,IAAY,EAAA;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,IAAG;AACpD,YAAA,IAAI,IAAI;YACR,IAAI,QAAQ,CAAC,MAAM;AAAE,gBAAA,IAAI,GAAG,CAAA,EAAG,QAAQ,CAAC,MAAM,CAAA,EAAG,IAAI,CAAA,EAAG,QAAQ,CAAC,MAAM,IAAI,OAAO,EAAE;;AAC/E,gBAAA,IAAI,GAAG,CAAA,EAAG,QAAQ,CAAA,EAAG,IAAI,OAAO;AACrC,YAAA,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CACjD,UAAU,CAAC,GAAG,IAAG;AACf,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;oBACtB,OAAO,CAAC,KAAK,EAAE;AACf,oBAAA,OAAO,CAAC,KAAK,CAAC,0DAA0D,EAAE,IAAI,CAAC;AAC/E,oBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;oBAClB,OAAO,CAAC,QAAQ,EAAE;gBACpB;AACA,gBAAA,OAAO,EAAE,CAAC,EAAE,CAAC;YACf,CAAC,CAAC,CACH;AACH,QAAA,CAAC,CAAC;QAEF,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC5BK,WAAS,CAAC,sBAAsB,IAC9B,aAAa,CAAC,CAAC,EAAE,CAAC,sBAAsB,CAAC,EAAE,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAC7F,EACDC,KAAG,CAAC,CAAC,CAAC,sBAAsB,EAAE,oBAAoB,CAAC,KACjD,SAAS,CAAC,GAAG,CAAC,GAAG,sBAAsB,EAAE,oBAAoB,CAAC,CAAC,CAChE,CACF;IACH;AACD;;ACnED;;;;;;;;;;;;;;AAcG;AAOG,SAAU,qCAAqC,CACnD,IAAiB,EACjB,UAAsB,EACtB,aAA4B,EAC5B,mBAAwC,EAAA;AAExC,IAAA,MAAM,oBAAoB,GAAG,aAAa,EAAE,MAAM,EAAE,oBAAoB;IAExE,OAAO,IAAI,8BAA8B,CAAC,IAAI,EAAE,UAAU,EAAE,mBAAmB,EAAE;QAC/E,6BAA6B;AAC7B,QAAA,IAAI,oBAAoB;AACxB,YAAA,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC;YACnC,oBAAoB,CAAC,MAAM,GAAG;AAC5B,cAAE;cACA,EAAE,CAAC;AACR,KAAA,CAAC;AACJ;;ACrCA;;;;;;;;;;;;;;AAcG;AAMG,SAAU,+BAA+B,CAAC,IAAiB,EAAE,aAA4B,EAAA;AAC7F,IAAA,MAAM,oBAAoB,GAAG,aAAa,CAAC,MAAM,CAAC,oBAAoB;AAEtE,IAAA,OAAO,IAAI,wBAAwB,CAAC,IAAI,EAAE;QACxC,6BAA6B;AAC7B,QAAA,IAAI,oBAAoB;AACxB,YAAA,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC;YACnC,oBAAoB,CAAC,MAAM,GAAG;AAC5B,cAAE;cACA,EAAE,CAAC;AACR,KAAA,CAAC;AACJ;;AC/BA;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;AAIH,MAAM,+BAA+B,GAAG,IAAI,cAAc,CACxD,kDAAkD;;ACnBpD;;;;;;;;;;;;;;AAcG;AAIH,MAAM,4CAA4C,GAAG,IAAI,cAAc,CACrE,4HAA4H;;ACnB9H;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;AAMI,MAAM,gBAAgB,GAAkB,MAAK;AAClD,IAAA,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AAC3C,IAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAE7B,MAAM,OAAO,GAAG,aAAa,CAAC,cAAc,EAAE,iBAAiB,KAAK,KAAK;IAEzE,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC;IACpC;AAEA,IAAA,OAAO,IAAI;AACb;;AC/BA;;;;;;;;;;;;;;AAcG;;ACdH;AACA;AACA;;ACFA;;;;;;;;;;;;;;AAcG;AAEH;;AAEG;;AClBH;;AAEG;;;;"}