@vality/matez 19.0.0 → 19.0.1-60eda61.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/vality-matez.mjs +81 -4
- package/fesm2022/vality-matez.mjs.map +1 -1
- package/lib/services/index.d.ts +1 -0
- package/lib/services/toast/index.d.ts +1 -0
- package/lib/services/toast/toast.component.d.ts +26 -0
- package/lib/services/toast/toast.service.d.ts +10 -0
- package/package.json +2 -2
- package/src/lib/services/toast/toast.component.scss +13 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vality-matez.mjs","sources":["../../../../libs/matez/src/lib/components/actions/actions.component.ts","../../../../libs/matez/src/lib/components/actions/actions.component.html","../../../../libs/matez/src/lib/components/actions/actions.module.ts","../../../../libs/matez/src/lib/components/progress/progress.component.ts","../../../../libs/matez/src/lib/components/progress/progress.component.html","../../../../libs/matez/src/lib/components/progress/progress.module.ts","../../../../libs/matez/src/lib/components/dialog/components/dialog-actions/dialog-actions.component.ts","../../../../libs/matez/src/lib/components/dialog/components/dialog-actions/dialog-actions.component.html","../../../../libs/matez/src/lib/components/dialog/types/dialog-response-status.ts","../../../../libs/matez/src/lib/components/dialog/dialog.component.ts","../../../../libs/matez/src/lib/components/dialog/dialog.component.html","../../../../libs/matez/src/lib/components/dialog/tokens.ts","../../../../libs/matez/src/lib/components/dialog/services/dialog.service.ts","../../../../libs/matez/src/lib/components/dialog/dialog.module.ts","../../../../libs/matez/src/lib/components/dialog/utils/dialog-superclass.ts","../../../../libs/matez/src/lib/components/content-loading/content-loading.component.ts","../../../../libs/matez/src/lib/components/content-loading/content-loading.component.html","../../../../libs/matez/src/lib/utils/json/inline-json.ts","../../../../libs/matez/src/lib/utils/string/split-by-separators.ts","../../../../libs/matez/src/lib/utils/operators/progress-to.ts","../../../../libs/matez/src/lib/utils/operators/get-observable.ts","../../../../libs/matez/src/lib/utils/operators/in-progress-from.ts","../../../../libs/matez/src/lib/utils/operators/pass-error.ts","../../../../libs/matez/src/lib/components/progress/utils/get-progress-by-count.ts","../../../../libs/matez/src/lib/utils/operators/fork-join-to-result.ts","../../../../libs/matez/src/lib/utils/async/is-async.ts","../../../../libs/matez/src/lib/utils/async/get-possibly-async-observable.ts","../../../../libs/matez/src/lib/utils/async/async-transform.ts","../../../../libs/matez/src/lib/utils/operators/switch-combine-with.ts","../../../../libs/matez/src/lib/utils/operators/debounce-time-with-first.ts","../../../../libs/matez/src/lib/utils/operators/handle-error.ts","../../../../libs/matez/src/lib/utils/operators/async-start-with.ts","../../../../libs/matez/src/lib/utils/form/has-controls.ts","../../../../libs/matez/src/lib/utils/form/get-value.ts","../../../../libs/matez/src/lib/utils/form/get-value-changes.ts","../../../../libs/matez/src/lib/utils/form/form-wrappers/utils/get-errors-tree.ts","../../../../libs/matez/src/lib/utils/form/form-wrappers/abstract-control-superclass.ts","../../../../libs/matez/src/lib/utils/form/form-wrappers/form-group-superclass.directive.ts","../../../../libs/matez/src/lib/utils/form/form-wrappers/utils/provide-validators.ts","../../../../libs/matez/src/lib/utils/form/form-wrappers/utils/provide-value-accessor.ts","../../../../libs/matez/src/lib/utils/form/form-wrappers/utils/create-control-providers.ts","../../../../libs/matez/src/lib/utils/form/form-wrappers/form-control-superclass.directive.ts","../../../../libs/matez/src/lib/utils/form/form-wrappers/form-component-superclass.directive.ts","../../../../libs/matez/src/lib/utils/empty/is-empty-primitive.ts","../../../../libs/matez/src/lib/utils/form/get-valid-value-changes.ts","../../../../libs/matez/src/lib/utils/form/set-disabled.ts","../../../../libs/matez/src/lib/utils/form/create-controls.ts","../../../../libs/matez/src/lib/utils/date/get-no-time-zone-iso-string.ts","../../../../libs/matez/src/lib/utils/currency/get-currency-exponent.ts","../../../../libs/matez/src/lib/utils/currency/to-major.ts","../../../../libs/matez/src/lib/utils/currency/to-minor.ts","../../../../libs/matez/src/lib/utils/currency/format-currency.ts","../../../../libs/matez/src/lib/utils/object/select.ts","../../../../libs/matez/src/lib/utils/object/count-props.ts","../../../../libs/matez/src/lib/utils/empty/is-empty.ts","../../../../libs/matez/src/lib/utils/object/count-changed.ts","../../../../libs/matez/src/lib/utils/enum/get-enum-keys.ts","../../../../libs/matez/src/lib/utils/clean/clean.ts","../../../../libs/matez/src/lib/utils/compare/compare-different-types.ts","../../../../libs/matez/src/lib/utils/import/get-import-value.ts","../../../../libs/matez/src/lib/utils/file/download-file.ts","../../../../libs/matez/src/lib/utils/csv/create-csv.ts","../../../../libs/matez/src/lib/utils/csv/utils/remove-line-breaks.ts","../../../../libs/matez/src/lib/utils/csv/parse-csv.ts","../../../../libs/matez/src/lib/utils/csv/utils/unify-csv-items.ts","../../../../libs/matez/src/lib/utils/transform-attribute/array-attribute.ts","../../../../libs/matez/src/lib/utils/decorators/debounce-time.ts","../../../../libs/matez/src/lib/utils/create-storage-value.ts","../../../../libs/matez/src/lib/components/input-field/input-field.component.ts","../../../../libs/matez/src/lib/components/input-field/input-field.component.html","../../../../libs/matez/src/lib/components/input-field/input-field.module.ts","../../../../libs/matez/src/lib/components/tag/tag.component.ts","../../../../libs/matez/src/lib/components/tag/tag.component.html","../../../../libs/matez/src/lib/components/tag/tag.module.ts","../../../../libs/matez/src/lib/components/table/utils/normalize-string.ts","../../../../libs/matez/src/lib/directives/highlight.directive.ts","../../../../libs/matez/src/lib/components/value/components/menu-value.component.ts","../../../../libs/matez/src/lib/components/value/components/toggle-value.component.ts","../../../../libs/matez/src/lib/components/value/utils/currency-amount-value-to-string.ts","../../../../libs/matez/src/lib/components/value/utils/datetime-value-to-string.ts","../../../../libs/matez/src/lib/components/value/utils/unknown-to-string.ts","../../../../libs/matez/src/lib/components/value/utils/value-to-string.ts","../../../../libs/matez/src/lib/components/value/value.component.ts","../../../../libs/matez/src/lib/components/value/value.component.html","../../../../libs/matez/src/lib/components/value/components/value-list.component.ts","../../../../libs/matez/src/lib/components/table/components/table-inputs.component.ts","../../../../libs/matez/src/lib/components/table/utils/create-unique-column-def.ts","../../../../libs/matez/src/lib/components/table/consts.ts","../../../../libs/matez/src/lib/components/table/types/column.ts","../../../../libs/matez/src/lib/components/table/utils/filter-sort.ts","../../../../libs/matez/src/lib/components/table/tree-data/tree-data-item-to-inline-data-item.ts","../../../../libs/matez/src/lib/components/table/utils/cached-head-map.ts","../../../../libs/matez/src/lib/components/table/utils/table-data-source.ts","../../../../libs/matez/src/lib/components/table/utils/table-to-csv-object.ts","../../../../libs/matez/src/lib/components/table/utils/to-columns-data.ts","../../../../libs/matez/src/lib/components/table/components/no-records.component.ts","../../../../libs/matez/src/lib/components/table/utils/create-intersection-observer.ts","../../../../libs/matez/src/lib/components/table/components/infinity-scroll.directive.ts","../../../../libs/matez/src/lib/components/table/components/base-column.component.ts","../../../../libs/matez/src/lib/components/table/components/select-column.component.ts","../../../../libs/matez/src/lib/components/table/components/dnd-column.component.ts","../../../../libs/matez/src/lib/components/table/components/table-info-bar/table-info-bar.component.ts","../../../../libs/matez/src/lib/components/table/components/table-info-bar/table-info-bar.component.html","../../../../libs/matez/src/lib/components/table/table.component.ts","../../../../libs/matez/src/lib/components/table/table.component.html","../../../../libs/matez/src/lib/components/table/components/customize/customize.component.ts","../../../../libs/matez/src/lib/components/table/components/customize/customize.component.html","../../../../libs/matez/src/lib/components/table/components/table-actions.component.ts","../../../../libs/matez/src/lib/components/table/components/table-progress-bar.component.ts","../../../../libs/matez/src/lib/components/table/table.module.ts","../../../../libs/matez/src/lib/components/table/utils/correct-priorities.ts","../../../../libs/matez/src/lib/components/table/utils/create-column.ts","../../../../libs/matez/src/lib/components/table/presets/create-menu-column.ts","../../../../libs/matez/src/lib/components/confirm-dialog/confirm-dialog.component.ts","../../../../libs/matez/src/lib/components/confirm-dialog/confirm-dialog.component.html","../../../../libs/matez/src/lib/components/confirm-dialog/confirm-dialog.module.ts","../../../../libs/matez/src/lib/components/filters/components/filters-dialog/filters-dialog.component.ts","../../../../libs/matez/src/lib/components/filters/components/filters-dialog/filters-dialog.component.html","../../../../libs/matez/src/lib/components/filters/components/main-filters/main-filters.directive.ts","../../../../libs/matez/src/lib/components/filters/components/other-filters/other-filters.directive.ts","../../../../libs/matez/src/lib/components/filters/filters.component.ts","../../../../libs/matez/src/lib/components/filters/filters.component.html","../../../../libs/matez/src/lib/components/filters/components/more-filters-button/more-filters-button.component.ts","../../../../libs/matez/src/lib/components/filters/components/more-filters-button/more-filters-button.component.html","../../../../libs/matez/src/lib/components/filters/filters.module.ts","../../../../libs/matez/src/lib/components/date-range-field/date-range-field.component.ts","../../../../libs/matez/src/lib/components/date-range-field/date-range-field.component.html","../../../../libs/matez/src/lib/components/date-range-field/date-range-field.module.ts","../../../../libs/matez/src/lib/components/date-range-field/utils/is-equal-date-range.ts","../../../../libs/matez/src/lib/components/date-range-field/utils/create-date-range-to-today.ts","../../../../libs/matez/src/lib/components/number-range-field/number-range-field.component.ts","../../../../libs/matez/src/lib/components/number-range-field/number-range-field.component.html","../../../../libs/matez/src/lib/components/number-range-field/number-range-field.module.ts","../../../../libs/matez/src/lib/components/list-field/list-field.component.ts","../../../../libs/matez/src/lib/components/list-field/list-field.component.html","../../../../libs/matez/src/lib/components/list-field/list-field.module.ts","../../../../libs/matez/src/lib/components/error-page/error-page.component.ts","../../../../libs/matez/src/lib/components/error-page/error-page.component.html","../../../../libs/matez/src/lib/components/error-page/error-page-routing.module.ts","../../../../libs/matez/src/lib/components/error-page/error-page.module.ts","../../../../libs/matez/src/lib/components/select-autocomplete/utils/search-options.ts","../../../../libs/matez/src/lib/components/select-autocomplete/utils/find-option-by-value.ts","../../../../libs/matez/src/lib/components/select-autocomplete/utils/get-hint-text.ts","../../../../libs/matez/src/lib/components/select-autocomplete/select-field/select-field.component.ts","../../../../libs/matez/src/lib/components/select-autocomplete/select-field/select-field.component.html","../../../../libs/matez/src/lib/components/select-autocomplete/select-field/select-field.module.ts","../../../../libs/matez/src/lib/components/select-autocomplete/autocomplete-field/autocomplete-field.component.ts","../../../../libs/matez/src/lib/components/select-autocomplete/autocomplete-field/autocomplete-field.component.html","../../../../libs/matez/src/lib/components/select-autocomplete/autocomplete-field/autocomplete-field.module.ts","../../../../libs/matez/src/lib/services/config/config.service.ts","../../../../libs/matez/src/lib/services/log/log-error.ts","../../../../libs/matez/src/lib/services/log/notify-log.service.ts","../../../../libs/matez/src/lib/services/log/log.module.ts","../../../../libs/matez/src/lib/services/fetch-superclass/fetch-superclass.ts","../../../../libs/matez/src/lib/services/query-params/utils/date-query-params-serializers.ts","../../../../libs/matez/src/lib/services/query-params/utils/query-params-serializers.ts","../../../../libs/matez/src/lib/services/query-params/utils/deserialize-query-param.ts","../../../../libs/matez/src/lib/services/query-params/utils/serialize-query-param.ts","../../../../libs/matez/src/lib/services/query-params/query-params.service.ts","../../../../libs/matez/src/lib/services/query-params/query-params.module.ts","../../../../libs/matez/src/lib/services/url.service.ts","../../../../libs/matez/src/lib/components/file-upload/file-upload.component.ts","../../../../libs/matez/src/lib/components/file-upload/file-upload.component.html","../../../../libs/matez/src/lib/components/file-upload/file-upload.module.ts","../../../../libs/matez/src/lib/components/file-upload/utils/load-file-content.ts","../../../../libs/matez/src/lib/components/datetime-field/datetime-field.component.ts","../../../../libs/matez/src/lib/components/datetime-field/datetime-field.component.html","../../../../libs/matez/src/lib/components/datetime-field/datetime-field.module.ts","../../../../libs/matez/src/lib/components/switch-button/switch-button.component.ts","../../../../libs/matez/src/lib/components/switch-button/switch-button.component.html","../../../../libs/matez/src/lib/components/switch-button/switch-button.module.ts","../../../../libs/matez/src/lib/components/nav/nav.component.ts","../../../../libs/matez/src/lib/components/nav/nav.component.html","../../../../libs/matez/src/lib/pipes/amount-currency.pipe.ts","../../../../libs/matez/src/lib/pipes/enum-key-values.pipe.ts","../../../../libs/matez/src/lib/pipes/enum-key.pipe.ts","../../../../libs/matez/src/lib/pipes/enum-keys.pipe.ts","../../../../libs/matez/src/lib/pipes/humanized-duration.pipe.ts","../../../../libs/matez/src/lib/pipes/inline-json.pipe.ts","../../../../libs/matez/src/lib/pipes/select.pipe.ts","../../../../libs/matez/src/lib/pipes/pipes.module.ts","../../../../libs/matez/src/vality-matez.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'v-actions',\n templateUrl: 'actions.component.html',\n styleUrls: ['actions.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ActionsComponent {}\n","<div class=\"v-actions\">\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\n\nimport { ActionsComponent } from './actions.component';\n\n@NgModule({\n imports: [],\n declarations: [ActionsComponent],\n exports: [ActionsComponent],\n})\nexport class ActionsModule {}\n","import { Component, Input } from '@angular/core';\n\nimport { Progressable } from '../../types/progressable';\n\n@Component({\n selector: 'v-progress',\n templateUrl: './progress.component.html',\n standalone: false,\n})\nexport class ProgressComponent implements Progressable {\n @Input() progress: Progressable['progress'];\n\n get mode() {\n return typeof this.progress === 'number' && this.progress <= 1 && this.progress > 0\n ? 'determinate'\n : !!this.progress || this.progress === ''\n ? 'indeterminate'\n : undefined;\n }\n\n get value(): number {\n return this.mode === 'determinate'\n ? Math.max(Math.min((1 - (this.progress as number)) * 100, 100), 0)\n : (undefined as never);\n }\n}\n","@if (!!mode) {\n <mat-progress-bar [mode]=\"mode\" [value]=\"value\"></mat-progress-bar>\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\n\nimport { ProgressComponent } from './progress.component';\n\n@NgModule({\n declarations: [ProgressComponent],\n imports: [CommonModule, MatProgressBarModule],\n exports: [ProgressComponent],\n})\nexport class ProgressModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'v-dialog-actions',\n templateUrl: './dialog-actions.component.html',\n standalone: false,\n})\nexport class DialogActionsComponent {}\n","<v-actions><ng-content></ng-content></v-actions>\n","export enum DialogResponseStatus {\n Success = 'success',\n Error = 'error',\n Cancelled = 'canceled',\n}\n","import {\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n booleanAttribute,\n} from '@angular/core';\n\nimport { Progressable } from '../../types/progressable';\n\nimport { DialogResponseStatus } from './types/dialog-response-status';\n\n@Component({\n selector: 'v-dialog',\n templateUrl: 'dialog.component.html',\n styleUrls: ['dialog.component.scss'],\n standalone: false,\n})\nexport class DialogComponent implements Progressable {\n @HostBinding('class.v-dialog') hostClass: boolean = true;\n\n @Input() title!: string;\n\n @Input({ transform: booleanAttribute }) disabled: boolean = false;\n @Input() progress?: Progressable['progress'];\n\n @Input({ transform: booleanAttribute }) hasDivider: boolean = true;\n\n @Input({ transform: booleanAttribute }) noContent: boolean = false;\n @Input({ transform: booleanAttribute }) noActions: boolean = false;\n @Input({ transform: booleanAttribute }) noCloseButton: boolean = false;\n\n @Input({ transform: booleanAttribute }) fullSize: boolean = false;\n\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() cancel = new EventEmitter<void>();\n\n cancelData = {\n status: DialogResponseStatus.Cancelled,\n };\n\n cancelDialog(): void {\n this.cancel.emit();\n }\n}\n","<div [ngClass]=\"{ 'full-size': fullSize }\" class=\"dialog\">\n <div class=\"dialog-title\">\n <div>\n <h2 class=\"title\">{{ title }}</h2>\n </div>\n @if (!noCloseButton) {\n <mat-icon\n [matDialogClose]=\"cancelData\"\n class=\"dialog-title-close\"\n inline\n (click)=\"cancelDialog()\"\n >clear</mat-icon\n >\n }\n </div>\n\n @if (!noContent) {\n @if (hasDivider) {\n <mat-divider></mat-divider>\n }\n <div class=\"dialog-content\">\n <ng-content></ng-content>\n </div>\n }\n @if (!noActions) {\n @if (hasDivider) {\n <mat-divider></mat-divider>\n }\n <div class=\"dialog-actions\">\n <ng-content select=\"v-dialog-actions\"></ng-content>\n </div>\n }\n\n <v-progress [progress]=\"progress\"></v-progress>\n</div>\n","import { InjectionToken } from '@angular/core';\nimport { MatDialogConfig } from '@angular/material/dialog';\nimport { ValuesType } from 'utility-types';\n\nexport type DialogConfig = Record<'small' | 'medium' | 'large', MatDialogConfig<undefined>>;\n\nexport const DIALOG_CONFIG = new InjectionToken<DialogConfig>('dialogConfig');\n\nexport const BASE_CONFIG: ValuesType<DialogConfig> = {\n maxHeight: '100vh',\n disableClose: true,\n autoFocus: false,\n minWidth: '0',\n maxWidth: 'calc(100vw - 16px)',\n width: '552px',\n};\n\nexport const DEFAULT_DIALOG_CONFIG: DialogConfig = {\n small: {\n ...BASE_CONFIG,\n width: '360px',\n },\n medium: BASE_CONFIG,\n large: {\n ...BASE_CONFIG,\n width: '1000px',\n },\n};\n\nexport const DEFAULT_DIALOG_CONFIG_FULL_HEIGHT = 'calc(90vh - 48px)';\n","import { ComponentType } from '@angular/cdk/overlay';\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\n\nimport { DEFAULT_DIALOG_CONFIG, DIALOG_CONFIG, DialogConfig } from '../tokens';\nimport { DialogResponse } from '../types/dialog-response';\nimport { DialogSuperclass } from '../utils/dialog-superclass';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DialogService {\n constructor(\n private dialog: MatDialog,\n @Optional()\n @Inject(DIALOG_CONFIG)\n private readonly dialogConfig: DialogConfig,\n ) {\n if (!dialogConfig) {\n this.dialogConfig = DEFAULT_DIALOG_CONFIG;\n }\n }\n\n open<TDialogComponent, TDialogData, TDialogResponseData, TDialogResponseStatus>(\n dialogComponent: ComponentType<\n DialogSuperclass<\n TDialogComponent,\n TDialogData,\n TDialogResponseData,\n TDialogResponseStatus\n >\n >,\n /**\n * Workaround when both conditions for the 'data' argument must be true:\n * - typing did not require passing when it is optional (for example: {param: number} | void)\n * - typing required to pass when it is required (for example: {param: number})\n */\n ...[data, configOrConfigName]: TDialogData extends void\n ? []\n : [\n data: TDialogData,\n configOrConfigName?:\n | Omit<MatDialogConfig<TDialogData>, 'data'>\n | keyof DialogConfig,\n ]\n ): MatDialogRef<TDialogComponent, DialogResponse<TDialogResponseData, TDialogResponseStatus>> {\n let config: Partial<MatDialogConfig<TDialogData>>;\n if (!configOrConfigName) {\n config = {};\n } else if (typeof configOrConfigName === 'string') {\n config = this.dialogConfig[configOrConfigName];\n } else {\n config = configOrConfigName;\n }\n\n return this.dialog.open(dialogComponent as never, {\n data,\n ...(dialogComponent as typeof DialogSuperclass).defaultDialogConfig,\n ...config,\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\n\nimport { ActionsModule } from '../actions';\nimport { ProgressModule } from '../progress/progress.module';\n\nimport { DialogActionsComponent } from './components/dialog-actions/dialog-actions.component';\nimport { DialogComponent } from './dialog.component';\nimport { DialogService } from './services/dialog.service';\n\n@NgModule({\n imports: [\n CommonModule,\n MatDividerModule,\n MatButtonModule,\n ActionsModule,\n MatIconModule,\n MatProgressBarModule,\n MatDialogModule,\n ProgressModule,\n ],\n providers: [DialogService],\n declarations: [DialogComponent, DialogActionsComponent],\n exports: [DialogComponent, DialogActionsComponent],\n})\nexport class DialogModule {}\n","import { Directive, inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nimport { DEFAULT_DIALOG_CONFIG } from '../tokens';\nimport { DialogResponse } from '../types/dialog-response';\nimport { DialogResponseStatus } from '../types/dialog-response-status';\n\n@Directive()\nexport class DialogSuperclass<\n TDialogComponent,\n TDialogData = void,\n TDialogResponseData = void,\n TDialogResponseStatus = void,\n> {\n static defaultDialogConfig = DEFAULT_DIALOG_CONFIG.medium;\n\n dialogData = inject<TDialogData>(MAT_DIALOG_DATA);\n dialogRef =\n inject<\n MatDialogRef<\n TDialogComponent,\n DialogResponse<TDialogResponseData, TDialogResponseStatus>\n >\n >(MatDialogRef);\n\n closeWithCancellation(data?: TDialogResponseData) {\n this.dialogRef.close({\n status: DialogResponseStatus.Cancelled,\n data,\n } as never);\n }\n\n closeWithSuccess(data?: TDialogResponseData) {\n this.dialogRef.close({\n status: DialogResponseStatus.Success,\n data,\n } as never);\n }\n\n closeWithError(data?: TDialogResponseData) {\n this.dialogRef.close({\n status: DialogResponseStatus.Error,\n data,\n } as never);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, input, numberAttribute } from '@angular/core';\nimport { random } from 'lodash-es';\n\n@Component({\n selector: 'v-content-loading',\n templateUrl: './content-loading.component.html',\n styleUrls: ['./content-loading.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n})\nexport class ContentLoadingComponent {\n width = input(random(35, 80) + '%');\n textSize = input(0, { transform: numberAttribute });\n hiddenText = input<string | undefined | null>();\n}\n","<span\n [ngClass]=\"{ 'content-loading__text': !!hiddenText() }\"\n [style.width]=\"hiddenText() || textSize() ? undefined : width()\"\n class=\"content-loading\"\n >{{ hiddenText() || ' '.repeat(textSize() || 1) }}</span\n>\n","import startCase from 'lodash-es/startCase';\nimport { isPrimitive } from 'utility-types';\n\nfunction renderList<T>(list: T[], renderItem: (v: T, idx: number) => string, isMore: boolean) {\n return list.length ? (isMore ? '…' : list.map(renderItem).join(', ')) : '';\n}\n\nfunction isObject(v: unknown): v is object {\n return (\n typeof v === 'object' &&\n !Array.isArray(v) &&\n !(v instanceof Map) &&\n !(v instanceof Set) &&\n v !== null\n );\n}\n\nexport function inlineJson(\n value: unknown,\n maxReadableLever = 1,\n readableKeys = false,\n level = 0,\n): string {\n const isRoot = (level = 0);\n if (isPrimitive(value)) {\n return String(value);\n }\n if (Array.isArray(value) || value instanceof Map || value instanceof Set) {\n const content = renderList(\n Array.from(value),\n (v) => inlineJson(v, maxReadableLever, readableKeys, level + 1),\n level > maxReadableLever,\n );\n if (value instanceof Set) {\n return `Set(${content})`;\n }\n if (value instanceof Map) {\n return `Map(${content})`;\n }\n return isRoot && content ? content : `[${content}]`;\n }\n const entries = Array.from(Object.entries(value as object));\n if (!entries.length) {\n return '{}';\n }\n const content = renderList(\n entries,\n ([k, v]) =>\n (readableKeys ? startCase(k) : k) +\n (isObject(v) && Object.keys(v).length <= 1 ? '/' : ': ') +\n inlineJson(v, maxReadableLever, readableKeys, level + 1),\n level > maxReadableLever,\n );\n if (isRoot || entries.length === 1) {\n return content;\n }\n return `{${content}}`;\n}\n","const SEPARATORS = ',;';\n\nexport function splitBySeparators(ids: string, separators = SEPARATORS): string[] {\n if (!ids) {\n return [];\n }\n return ids\n .split(new RegExp(`[${separators}\\\\s]`))\n .map((id) => id.trim())\n .filter(Boolean);\n}\n","import { BehaviorSubject, MonoTypeOperatorFunction, defer, isObservable } from 'rxjs';\nimport { finalize } from 'rxjs/operators';\n\nexport function progressTo<T>(\n subject$: BehaviorSubject<number> | (() => BehaviorSubject<number>),\n): MonoTypeOperatorFunction<T> {\n const getSub = () => (isObservable(subject$) ? subject$ : subject$());\n return (src$) =>\n defer(() => {\n getSub().next(getSub().getValue() + 1);\n return src$.pipe(finalize(() => getSub().next(getSub().getValue() - 1)));\n });\n}\n","import { Observable, defer } from 'rxjs';\n\nexport type ObservableOrFn<T = unknown> = (() => Observable<T>) | Observable<T>;\n\nexport function getObservable<T>(obsOrFn: ObservableOrFn<T>): Observable<T> {\n return typeof obsOrFn === 'function' ? defer(obsOrFn) : obsOrFn;\n}\n","import { EMPTY, combineLatest, merge, mergeMap } from 'rxjs';\nimport { delay, distinctUntilChanged, map, shareReplay, startWith } from 'rxjs/operators';\n\nimport { ObservableOrFn, getObservable } from './get-observable';\n\nexport function inProgressFrom(\n progress: ObservableOrFn<number | boolean> | ObservableOrFn<number | boolean>[],\n main?: ObservableOrFn,\n init = true,\n) {\n const progresses = (Array.isArray(progress) ? progress : [progress]).map((p) =>\n getObservable(p),\n );\n return merge(\n combineLatest(progresses),\n main ? getObservable(main).pipe(mergeMap(() => EMPTY)) : EMPTY,\n ).pipe(\n map((ps) => ps.some((p) => !!p)),\n // make async to bypass angular detect changes\n delay(0),\n startWith(init),\n distinctUntilChanged(),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n}\n","import { EMPTY, MonoTypeOperatorFunction, catchError, of } from 'rxjs';\n\nexport function passError<T>(\n handler: (err: unknown) => void,\n value?: T,\n): MonoTypeOperatorFunction<T> {\n return (source) =>\n source.pipe(\n catchError((err) => {\n handler(err);\n if (arguments.length >= 2) {\n return of(value as T);\n }\n return EMPTY;\n }),\n );\n}\n","export function getProgressByCount(count: number, completedCount: number = Number.MIN_VALUE) {\n return 1 - completedCount / count;\n}\n","import { Observable, Subject, catchError, merge, of, scan, takeLast } from 'rxjs';\nimport { finalize, map } from 'rxjs/operators';\nimport { Overwrite } from 'utility-types';\n\nimport { getProgressByCount } from '../../components/progress';\n\nexport interface ForkJoinResult<T, D = never> {\n index: number;\n data: D;\n hasError: boolean;\n\n result?: T;\n error?: unknown;\n}\n\nexport type ForkJoinSucceededResult<T, D = never> = Omit<\n Overwrite<ForkJoinResult<T, D>, { hasError: false; result: T }>,\n 'error'\n>;\nexport type ForkJoinErrorResult<D = never> = Omit<\n Overwrite<ForkJoinResult<never, D>, { hasError: true; error: unknown }>,\n 'result'\n>;\n\nexport function forkJoinToResult<T, D = never>(\n sources: Observable<T>[],\n progress$?: Subject<number>,\n dataItems: D[] = [],\n concurrency = 4,\n): Observable<ForkJoinResult<T, D>[]> {\n let completed = 0;\n if (progress$) {\n progress$.next(getProgressByCount(sources.length));\n }\n return merge(\n ...sources.map((source, index) =>\n source.pipe(\n map(\n (result): ForkJoinResult<T, D> => ({\n result,\n hasError: false,\n index,\n data: dataItems[index],\n }),\n ),\n catchError((error) => {\n return of<ForkJoinResult<T, D>>({\n error,\n hasError: true,\n index,\n data: dataItems[index],\n });\n }),\n finalize(() => {\n completed += 1;\n if (progress$) {\n progress$.next(getProgressByCount(sources.length, completed));\n }\n }),\n ),\n ),\n concurrency,\n ).pipe(\n scan(\n (acc, value) => {\n acc.push(value);\n return acc;\n },\n [] as ForkJoinResult<T, D>[],\n ),\n takeLast(1),\n map((r) => r.sort((a, b) => a.index - b.index)),\n );\n}\n\nexport function isResultsHasError<T, D>(res: ForkJoinResult<T, D>[]): boolean {\n return res.some((r) => r.hasError);\n}\n\nexport function splitResultsErrors<T, D>(\n res: ForkJoinResult<T, D>[],\n): [succeeded: ForkJoinSucceededResult<T, D>[], errors: ForkJoinErrorResult<D>[]] {\n return res.reduce(\n (acc, r) => {\n acc[r.hasError ? 1 : 0].push(r as never);\n return acc;\n },\n [[], []] as [succeeded: ForkJoinSucceededResult<T, D>[], errors: ForkJoinErrorResult<D>[]],\n );\n}\n","import { Observable, isObservable } from 'rxjs';\nimport { isPromise } from 'rxjs/internal/util/isPromise';\n\nexport type Async<T> = Observable<T> | Promise<T>;\nexport type PossiblyAsync<T> = Async<T> | T;\n\nexport function isAsync<T>(value: PossiblyAsync<T>): value is Async<T> {\n return isObservable(value) || isPromise(value);\n}\n","import { Observable, from, of } from 'rxjs';\n\nimport { PossiblyAsync, isAsync } from './is-async';\n\nexport function getPossiblyAsyncObservable<T>(possiblyAsync: PossiblyAsync<T>): Observable<T> {\n return isAsync(possiblyAsync) ? from(possiblyAsync) : of(possiblyAsync);\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectorRef, Injectable, OnDestroy, inject } from '@angular/core';\nimport { Observable, ReplaySubject, combineLatest, defer, of, switchMap } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { getPossiblyAsyncObservable } from './get-possibly-async-observable';\nimport { PossiblyAsync } from './is-async';\n\nexport type AsyncTransformParameters<TValue = unknown, TParams extends unknown[] = []> = [\n PossiblyAsync<TValue>,\n ...TParams,\n];\n\n@Injectable()\nexport abstract class AsyncTransform<\n TValue = unknown,\n TParams extends unknown[] = [],\n TResult = string | null,\n> implements OnDestroy\n{\n protected abstract result$: Observable<TResult>;\n\n protected params$: Observable<[TValue, ...TParams]> = defer(() => this.args$).pipe(\n switchMap((args) =>\n combineLatest([\n getPossiblyAsyncObservable(args[0] as TValue),\n of(args.slice(1) as TParams),\n ]),\n ),\n map(([value, params]) => [value, ...params] as [TValue, ...TParams]),\n );\n\n private asyncPipe!: AsyncPipe;\n private cdr = inject(ChangeDetectorRef);\n private args$ = new ReplaySubject<[PossiblyAsync<TValue>, ...TParams]>(1);\n\n constructor() {\n this.asyncPipe = new AsyncPipe(this.cdr);\n }\n\n ngOnDestroy() {\n this.asyncPipe.ngOnDestroy();\n }\n\n protected asyncTransform(args: AsyncTransformParameters<TValue, TParams>): TResult | null {\n this.args$.next(args);\n return this.asyncPipe.transform(this.result$);\n }\n}\n","import { Observable, combineLatest, of, switchMap } from 'rxjs';\n\nimport { PossiblyAsync, getPossiblyAsyncObservable } from '../async';\n\nexport type ProjectInputs<R extends readonly unknown[]> = {\n [K in keyof R]: PossiblyAsync<R[K]>;\n};\n\nexport function switchCombineWith<T, R extends readonly unknown[]>(\n project: (value: T, index: number) => readonly [...ProjectInputs<R>],\n) {\n return (src$: Observable<T>) =>\n src$.pipe(\n switchMap((value, index) => {\n const res = project(value, index);\n return combineLatest([\n of(value),\n ...(Array.isArray(res) ? res : [res]).map((r) => getPossiblyAsyncObservable(r)),\n ]);\n }),\n ) as Observable<[T, ...R]>;\n}\n","import { MonoTypeOperatorFunction, debounce, interval } from 'rxjs';\n\nexport function debounceTimeWithFirst<T>(duration: number): MonoTypeOperatorFunction<T> {\n return (source) => {\n let isFirst = true;\n return source.pipe(\n debounce(() => {\n if (isFirst) {\n isFirst = false;\n return interval(0);\n }\n return interval(duration);\n }),\n );\n };\n}\n","import { EMPTY, MonoTypeOperatorFunction } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nimport { PossiblyAsync, getPossiblyAsyncObservable } from '../async';\n\nexport function handleError<T>(\n handler: (err: unknown) => void,\n result: PossiblyAsync<T> = EMPTY,\n): MonoTypeOperatorFunction<T> {\n return (source) =>\n source.pipe(\n catchError((err, _caught) => {\n handler(err);\n return getPossiblyAsyncObservable(result);\n }),\n );\n}\n","import { Observable, concat, of, switchMap, timer } from 'rxjs';\n\nexport function asyncStartWith<V = never>(value?: V, timerMs = 0) {\n return <T>(src$: Observable<T>): Observable<T | V> =>\n concat(...((value ? [of(value)] : []) as []), timer(timerMs).pipe(switchMap(() => src$)));\n}\n","import { AbstractControl, FormArray, FormGroup } from '@angular/forms';\n\nexport function hasControls(control: AbstractControl): control is FormGroup | FormArray {\n return 'controls' in control;\n}\n","import { AbstractControl } from '@angular/forms';\n\nimport { hasControls } from './has-controls';\n\nexport function getValue<T>(control: AbstractControl<T>): T {\n if (!hasControls(control)) {\n return control.value;\n }\n if (Array.isArray(control.controls)) {\n const result: unknown[] = [];\n for (const v of control.controls) {\n result.push(getValue(v) as T);\n }\n return result as T;\n }\n const result: Record<PropertyKey, unknown> = {};\n for (const [k, v] of Object.entries(control.controls)) {\n result[k as keyof T] = getValue(v);\n }\n return result as T;\n}\n","import { AbstractControl, FormControlState } from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\n\nimport { getValue } from './get-value';\n\nexport function getValueChanges<T>(form: AbstractControl<FormControlState<T> | T>): Observable<T> {\n return form.valueChanges.pipe(\n startWith(form.value),\n map(() => getValue(form)),\n ) as Observable<T>;\n}\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\n\nimport { hasControls } from '../../has-controls';\n\n/**\n * FormGroup/FormArray don't return internal control errors,\n * so you need to get internal errors manually\n */\nexport function getErrorsTree(control: AbstractControl): ValidationErrors | null {\n if (control.valid) {\n return null;\n }\n const errors: ValidationErrors = Object.assign({}, control.errors);\n if (hasControls(control)) {\n if (Array.isArray(control.controls)) {\n errors['formArrayErrors'] = control.controls\n .map((c: AbstractControl) => getErrorsTree(c))\n .filter(Boolean);\n } else {\n errors['formGroupErrors'] = Object.fromEntries(\n Array.from(Object.entries(control.controls))\n .map(([k, c]) => [k, getErrorsTree(c)])\n .filter(([, v]) => !!v),\n ) as ValidationErrors;\n }\n }\n return errors;\n}\n","import { ChangeDetectorRef, DestroyRef, Directive, OnInit, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AbstractControl, ValidationErrors, Validator } from '@angular/forms';\nimport { WrappedControlSuperclass } from '@s-libs/ng-core';\nimport { EMPTY, Observable, concat, take, timer } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { getErrorsTree } from './utils/get-errors-tree';\n\n@Directive()\nexport abstract class AbstractControlSuperclass<OuterType, InnerType = OuterType>\n extends WrappedControlSuperclass<OuterType, InnerType>\n implements Validator, OnInit\n{\n private _cdr = inject(ChangeDetectorRef);\n private _destroyRef = inject(DestroyRef);\n\n override ngOnInit() {\n super.ngOnInit();\n concat(timer(0), timer(100))\n .pipe(\n filter(() => this.control.invalid),\n take(1),\n takeUntilDestroyed(this._destroyRef),\n )\n .subscribe(() => {\n this.onValidatorChange();\n this._cdr.markForCheck();\n });\n }\n\n validate(_control: AbstractControl): ValidationErrors | null {\n return getErrorsTree(this.control); //|| getErrorsTree(_control);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onValidatorChange = fn;\n }\n\n protected override setUpInnerToOuterErrors$(): Observable<ValidationErrors> {\n return EMPTY;\n }\n\n protected override setUpOuterToInnerErrors$(): Observable<ValidationErrors> {\n return EMPTY;\n }\n\n private onValidatorChange: () => void = () => undefined;\n}\n","import { Directive, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\nimport { getValue } from '../get-value';\nimport { hasControls } from '../has-controls';\n\nimport { AbstractControlSuperclass } from './abstract-control-superclass';\n\n@Directive()\nexport abstract class FormGroupSuperclass<OuterType, InnerType = OuterType>\n extends AbstractControlSuperclass<OuterType, InnerType>\n implements OnInit\n{\n protected emptyValue!: InnerType;\n\n override setDisabledState(_isDisabled: boolean): void {\n return;\n }\n\n override ngOnInit() {\n this.emptyValue = getValue(this.control) as InnerType;\n super.ngOnInit();\n }\n\n protected override outerToInnerValue(outer: OuterType): InnerType {\n if (hasControls(this.control)) {\n if (!outer) {\n return this.emptyValue;\n }\n if (\n Object.keys(outer).length < Object.keys((this.control as FormGroup).controls).length\n ) {\n return Object.assign({}, this.emptyValue, outer);\n }\n }\n return outer as never;\n }\n}\n","import { Provider, Type, forwardRef } from '@angular/core';\nimport { NG_VALIDATORS } from '@angular/forms';\n\nexport const provideValidators = (component: () => Type<unknown>): Provider => ({\n provide: NG_VALIDATORS,\n useExisting: forwardRef(component),\n multi: true,\n});\n","import { Provider, Type, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport const provideValueAccessor = (component: () => Type<unknown>): Provider => ({\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(component),\n multi: true,\n});\n","import { Provider, Type } from '@angular/core';\n\nimport { provideValidators } from './provide-validators';\nimport { provideValueAccessor } from './provide-value-accessor';\n\nexport const createControlProviders = (component: () => Type<unknown>): Provider[] => [\n provideValueAccessor(component),\n provideValidators(component),\n];\n","import { Directive } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\nimport { AbstractControlSuperclass } from './abstract-control-superclass';\n\n@Directive()\nexport class FormControlSuperclass<\n OuterType,\n InnerType = OuterType,\n> extends AbstractControlSuperclass<OuterType, InnerType> {\n control = new FormControl() as FormControl<InnerType>;\n}\n","import { ChangeDetectorRef, DestroyRef, Directive, OnInit, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AbstractControl, ValidationErrors, Validator } from '@angular/forms';\nimport { FormComponentSuperclass as BaseFormComponentSuperclass } from '@s-libs/ng-core';\nimport { concat, timer } from 'rxjs';\n\n@Directive()\nexport abstract class FormComponentSuperclass<OuterType>\n extends BaseFormComponentSuperclass<OuterType>\n implements Validator, OnInit\n{\n private _cdr = inject(ChangeDetectorRef);\n private _destroyRef = inject(DestroyRef);\n\n validate(_control: AbstractControl): ValidationErrors | null {\n return null;\n }\n\n ngOnInit() {\n concat(timer(0), timer(100))\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this.onValidatorChange();\n this._cdr.markForCheck();\n });\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onValidatorChange = fn;\n }\n\n private onValidatorChange: () => void = () => undefined;\n}\n","import isNil from 'lodash-es/isNil';\n\nexport function isEmptyPrimitive(value: unknown): boolean {\n return isNil(value) || value === '';\n}\n","import { AbstractControl } from '@angular/forms';\nimport omitBy from 'lodash-es/omitBy';\nimport { filter, map } from 'rxjs/operators';\n\nimport { isEmptyPrimitive } from '../empty/is-empty-primitive';\n\nimport { getValueChanges } from './get-value-changes';\n\nexport function getValidValueChanges(control: AbstractControl, predicate = isEmptyPrimitive) {\n return getValueChanges(control).pipe(\n filter(() => control.valid),\n map((value) => omitBy(value, predicate)),\n );\n}\n","import { AbstractControl } from '@angular/forms';\n\nexport function setDisabled(\n control?: AbstractControl,\n disabled: boolean = true,\n options: Parameters<AbstractControl['disable']>[0] = {},\n) {\n if (!control || control.disabled === disabled) {\n return;\n }\n if (disabled) {\n control.disable(options);\n } else {\n control.enable(options);\n }\n}\n","import { FormControl } from '@angular/forms';\n\nexport function createControls<T extends object>(values: T): { [K in keyof T]: FormControl<T[K]> } {\n return Object.fromEntries(\n Object.entries(values).map(([k, v]) => [k, new FormControl(v, { nonNullable: true })]),\n ) as never;\n}\n","function getTimeZoneOffset(date: Date) {\n return date.getTimezoneOffset() * 60_000;\n}\n\nexport function getNoTimeZoneIsoString(date?: Date | null): string {\n return date ? new Date(date.valueOf() - getTimeZoneOffset(date)).toISOString() : '';\n}\n\nexport function createDateFromNoTimeZoneString(dateStr: string): Date {\n const date = new Date(dateStr);\n return new Date(date.valueOf() + getTimeZoneOffset(date));\n}\n","import * as currencies from '@dinero.js/currencies';\n\nexport const getCurrencyExponent = (currencyCode: string): number =>\n currencies[currencyCode as keyof typeof currencies]?.exponent;\n","import round from 'lodash-es/round';\n\nimport { getCurrencyExponent } from './get-currency-exponent';\n\nexport const toMajorByExponent = (amount: number, exponent: number): number =>\n round(amount / 10 ** exponent, exponent);\n\nexport const toMajor = (amount: number, currencyCode: string): number =>\n toMajorByExponent(amount, getCurrencyExponent(currencyCode));\n","import { getCurrencyExponent } from './get-currency-exponent';\n\nexport const toMinorByExponent = (amount: number, exponent: number): number =>\n Math.round(amount * 10 ** exponent);\n\nexport const toMinor = (amount: number, currencyCode: string): number =>\n toMinorByExponent(amount, getCurrencyExponent(currencyCode));\n","import { getCurrencySymbol, formatCurrency as ngFormatCurrency } from '@angular/common';\n\nimport { getCurrencyExponent } from './get-currency-exponent';\nimport { toMajorByExponent } from './to-major';\n\nexport function formatCurrency(\n amount: number,\n currencyCode: string = 'USD',\n format: 'short' | 'long' = 'long',\n locale = 'en-GB',\n exponent?: number,\n isMajor: boolean = false,\n): string {\n if (typeof exponent !== 'number') {\n exponent = getCurrencyExponent(currencyCode) || 0;\n }\n return ngFormatCurrency(\n isMajor ? amount : toMajorByExponent(amount, exponent),\n locale,\n getCurrencySymbol(currencyCode, 'narrow', locale),\n currencyCode,\n format === 'short' ? `1.0-${exponent}` : `1.${exponent}-${exponent}`,\n );\n}\n","import { get as _get } from 'lodash-es';\nimport { Observable } from 'rxjs';\n\nexport type SelectFn<\n TObject extends object = object,\n TResult = unknown,\n TParams extends Array<unknown> = [],\n> = string | ((obj: TObject, ...params: TParams) => Observable<TResult> | TResult);\n\nexport function select<TObject extends object, TResult, TParams extends Array<unknown> = []>(\n obj: TObject,\n selectFn: SelectFn<TObject, TResult, TParams>,\n defaultValue?: TResult,\n restParams: TParams[] = [],\n): TResult | Observable<TResult> {\n if (typeof selectFn === 'string') {\n return _get(obj, selectFn, defaultValue) as TResult;\n }\n return selectFn(obj, ...(restParams as never));\n}\n\n// export function selectAsObservable<TObject extends object, TResult, TParams extends Array<unknown> = []>(\n// obj: TObject,\n// selectFn: SelectFn<TObject, TResult, TParams>,\n// defaultValue?: TResult,\n// restParams: TParams[] = [],\n// ): TResult | Observable<TResult> {\n// const res = select(obj, selectFn, defaultValue, restParams);\n// return isObservable(res) ? res : of(res);\n// }\n","export function countProps(...objects: object[]): number {\n return objects.reduce((acc, obj) => acc + (obj ? Object.keys(obj).length : 0), 0);\n}\n","import lodashIsEmpty from 'lodash-es/isEmpty';\nimport isObject from 'lodash-es/isObject';\n\nimport { isEmptyPrimitive } from './is-empty-primitive';\n\nexport function isEmpty(value: unknown): boolean {\n return isObject(value)\n ? value.constructor === Object ||\n Array.isArray(value) ||\n value instanceof Set ||\n value instanceof Map\n ? lodashIsEmpty(value)\n : false\n : isEmptyPrimitive(value);\n}\n","import { difference } from 'lodash-es';\nimport isEqual from 'lodash-es/isEqual';\n\nimport { isEmpty } from '../empty';\n\nexport function countChanged<T extends object>(\n a: T,\n b: T,\n // is equal boolean or count number\n predicates: { [K in keyof T]?: (a: T[K], b: T[K]) => number | boolean } = {},\n): number {\n const aKeys: (keyof T)[] = Object.keys(a) as never;\n const bKeys: (keyof T)[] = Object.keys(b) as never;\n const diffKeys = difference(aKeys, bKeys);\n const sameKeys = difference(aKeys, diffKeys);\n return sameKeys\n .map((k) => {\n if (k in predicates) {\n const res = predicates[k]?.(a[k], b[k]);\n return typeof res === 'boolean' ? +!res : Number(res);\n }\n return (isEmpty(a[k]) && isEmpty(b[k])) || isEqual(a[k], b[k]) ? 0 : 1;\n })\n .reduce((sum, v) => sum + v, diffKeys.length);\n}\n","import { ValuesType } from 'utility-types';\n\nexport type Enum = Record<PropertyKey, unknown>;\n\nexport function getEnumEntries<E extends Enum>(srcEnum: E): [key: keyof E, value: ValuesType<E>][] {\n if (!srcEnum) {\n return [];\n }\n const entries = Object.entries(srcEnum);\n if (!entries.length) {\n return [];\n }\n const isValueNumberEnum = entries.some(([, v]) => typeof v === 'number');\n if (isValueNumberEnum) {\n return entries.filter(([, v]) => typeof v === 'number') as never;\n }\n return entries as never;\n}\n\nexport function getEnumKeyValues<E extends Enum>(\n srcEnum: E,\n): { key: keyof E; value: ValuesType<E> }[] {\n return getEnumEntries(srcEnum).map(([key, value]) => ({ key, value }));\n}\n\nexport function getEnumKeys<E extends Enum>(srcEnum: E): (keyof E)[] {\n return getEnumEntries(srcEnum).map(([k]) => k);\n}\n\nexport function getEnumValues<E extends Enum>(srcEnum: E): ValuesType<E>[] {\n return getEnumEntries(srcEnum).map(([, v]) => v);\n}\n\nexport function getEnumKey<E extends Enum>(srcEnum: E, value: ValuesType<E>): keyof E {\n return getEnumKeyValues(srcEnum).find((e) => String(e.value) === String(value))?.key as keyof E;\n}\n\nexport function enumHasValue<E extends Enum>(\n srcEnum: E,\n value: ValuesType<E> | string,\n): value is ValuesType<E> {\n return getEnumValues(srcEnum).includes(value as ValuesType<E>);\n}\n","import { ValuesType } from 'utility-types';\n\nimport { isEmpty } from '../empty/is-empty';\nimport { isEmptyPrimitive } from '../empty/is-empty-primitive';\n\nexport function clean<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n T extends ReadonlyArray<any> | ArrayLike<any> | Record<any, any>,\n TAllowRootRemoval extends boolean = false,\n>(\n obj: T,\n allowRootRemoval: TAllowRootRemoval = false as TAllowRootRemoval,\n isNotDeep = false,\n filterPredicate: (v: unknown, k?: PropertyKey) => boolean = (v) => !isEmpty(v),\n): TAllowRootRemoval extends true ? T | null : T {\n if (allowRootRemoval && !filterPredicate(obj)) {\n return null as never;\n }\n const cleanChild = (v: unknown) =>\n isNotDeep ? v : clean(v as never, true, isNotDeep, filterPredicate);\n if (Array.isArray(obj)) {\n return (obj as ValuesType<T>[])\n .map((v) => cleanChild(v))\n .filter((v, idx) => filterPredicate(v, idx)) as never;\n }\n if (obj?.constructor === Object) {\n return Object.fromEntries(\n (Object.entries(obj) as [keyof T, ValuesType<T>][])\n .map(([k, v]) => [k, cleanChild(v)] as const)\n .filter(([k, v]) => filterPredicate(v, k)),\n ) as never;\n }\n return obj;\n}\n\nexport function cleanPrimitiveProps<T extends object>(\n obj: T,\n allowRootRemoval = false,\n isNotDeep = false,\n) {\n return clean(obj, allowRootRemoval, isNotDeep, (v) => !isEmptyPrimitive(v));\n}\n","function isNumber(v: unknown): boolean {\n return !!v && (typeof v === 'number' || /^-?\\d+.*$/.test(String(v).trim()));\n}\n\nfunction toNumber(v: unknown): number {\n return typeof v === 'string'\n ? parseFloat(v.replace(',', '.').replace(/[^0-9.-]+/g, ''))\n : Number(v);\n}\n\n/**\n * Use with sorting (arr.sort(fn))\n */\nexport function compareDifferentTypes<T>(a: T, b: T): number {\n const aIsNum = isNumber(a);\n const bIsNum = isNumber(b);\n if (aIsNum || bIsNum) {\n if (aIsNum && bIsNum) {\n return toNumber(a) - toNumber(b);\n } else if (aIsNum) {\n return -1;\n } else {\n return 1;\n }\n }\n return String(a).localeCompare(String(b));\n}\n","import { get } from 'lodash-es';\nimport { Observable, from } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nexport function getImportValue<T>(imp: Promise<unknown>, prop: string = 'default'): Observable<T> {\n return from(imp).pipe(\n map((module) => {\n if (!prop) {\n return module as T;\n }\n return get(module, prop, null) as T;\n }),\n );\n}\n","interface FileType {\n type: string;\n format: string;\n}\n\nconst FILE_TYPES = {\n csv: {\n type: 'text/csv',\n format: 'csv',\n },\n} satisfies Record<string, FileType>;\n\nexport function downloadFile(\n data: string,\n type: keyof typeof FILE_TYPES,\n filename: string = 'data',\n): void {\n const blob = new Blob([data], { type: FILE_TYPES[type].type });\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = `${filename}.${FILE_TYPES[type].format}`;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n window.URL.revokeObjectURL(url);\n}\n","import * as papaparse from 'papaparse';\n\nexport function createCsv(data: unknown[]) {\n return papaparse.unparse(data);\n}\n","export function removeLineBreaks(str: string): string {\n return str.replace(/^[\\r\\n\\s]+|[\\r\\n\\s]+$/g, '');\n}\n","import papa, { ParseConfig } from 'papaparse';\n\nimport { removeLineBreaks } from './utils/remove-line-breaks';\n\nexport function parseCsv(content: string, config?: ParseConfig) {\n return papa.parse(removeLineBreaks(content), config);\n}\n","export function unifyCsvItems<T>(\n csv: T[] | string[][],\n defaultProps: readonly (keyof T)[] | (keyof T)[],\n): T[] {\n if (!Array.isArray(csv)) {\n return [];\n }\n if (Array.isArray(csv?.[0])) {\n return (csv as string[][]).map((d) =>\n Object.fromEntries(d.map((prop, idx) => [defaultProps[idx], prop])),\n ) as T[];\n }\n return csv as T[];\n}\n","import { Nil } from '../empty';\n\nexport function arrayAttribute<T>(value: ArrayAttributeTransform<T>): T[] {\n if (!Array.isArray(value)) {\n return [];\n }\n return value;\n}\n\nexport type ArrayAttributeTransform<T> = T[] | Nil;\n","export function DebounceTime(ms: number = 500) {\n return function (target: object, propertyKey: PropertyKey, descriptor: PropertyDescriptor) {\n let timer: number | null = null;\n const method = descriptor.value;\n\n descriptor.value = function () {\n if (timer !== null) {\n window.clearTimeout(timer);\n }\n timer = window.setTimeout(() => {\n // eslint-disable-next-line prefer-rest-params\n method.apply(this, arguments);\n timer = null;\n }, ms);\n };\n };\n}\n","import { Injector } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { distinctUntilChanged, filter, fromEvent, map, shareReplay, startWith } from 'rxjs';\n\nexport function createStorageValue<T>(\n key: string,\n {\n serialize = (v) => (v === null ? null : String(v)),\n deserialize,\n injector,\n }: {\n serialize?: (v: T) => string | null;\n deserialize: (v: string | null) => T;\n injector?: Injector;\n },\n) {\n const value$ = fromEvent<StorageEvent>(document, 'storage').pipe(\n filter((v) => v.key === key),\n map((v) => v.newValue),\n startWith(localStorage.getItem(key)),\n map((v) => deserialize(v)),\n distinctUntilChanged(),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n return {\n get(): T {\n return deserialize(localStorage.getItem(key));\n },\n set(value: T): void {\n const serialized = serialize(value);\n if (serialized === null) {\n return localStorage.removeItem(key);\n }\n return localStorage.setItem(key, serialized);\n },\n value$,\n value: toSignal(value$, { injector }),\n };\n}\n","import { Component, Input, booleanAttribute, input } from '@angular/core';\nimport { MatFormFieldAppearance } from '@angular/material/form-field';\n\nimport { FormControlSuperclass, createControlProviders } from '../../utils';\n\n@Component({\n selector: 'v-input-field',\n templateUrl: './input-field.component.html',\n providers: createControlProviders(() => InputFieldComponent),\n styleUrl: 'input-field.component.scss',\n standalone: false,\n})\nexport class InputFieldComponent<T> extends FormControlSuperclass<T> {\n @Input() label?: string;\n @Input() placeholder: string = '';\n @Input() type: 'string' | 'number' = 'string';\n @Input() appearance: MatFormFieldAppearance = 'fill';\n @Input() size?: 'small' | '';\n cleanButton = input(false, { transform: booleanAttribute });\n icon = input<string>();\n}\n","<mat-form-field\n [appearance]=\"appearance\"\n [ngClass]=\"{\n 'v-input-field__small': size === 'small',\n 'v-input-field__outline': appearance === 'outline',\n }\"\n class=\"v-input-field\"\n>\n @if (icon()) {\n <div class=\"prefix\" matPrefix>\n <mat-icon>{{ icon() }}</mat-icon>\n </div>\n }\n <mat-label>{{ label }}</mat-label>\n <input\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [type]=\"type\"\n autocomplete=\"false\"\n matInput\n />\n <div class=\"postfix\" matSuffix>\n @if (cleanButton()) {\n <button\n [disabled]=\"!control.value\"\n [style.visibility]=\"control.value ? '' : 'hidden'\"\n mat-icon-button\n (click)=\"control.reset()\"\n >\n <mat-icon>clear</mat-icon>\n </button>\n }\n </div>\n</mat-form-field>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { InputFieldComponent } from './input-field.component';\n\n@NgModule({\n declarations: [InputFieldComponent],\n exports: [InputFieldComponent],\n imports: [CommonModule, MatInputModule, ReactiveFormsModule, MatIcon, MatIconButton],\n})\nexport class InputFieldModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n booleanAttribute,\n input,\n} from '@angular/core';\n\nimport { Color } from '../../styles';\n\n@Component({\n selector: 'v-tag',\n templateUrl: './tag.component.html',\n styleUrls: ['./tag.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TagComponent {\n @HostBinding('class.v-tag') hostClass: boolean = true;\n\n @Input() color?: Color;\n icon = input<string>();\n\n progress = input(false, { transform: booleanAttribute });\n}\n","<mat-chip-row\n [disabled]=\"progress()\"\n [ngClass]=\"{ loading: progress(), action: !!icon() }\"\n class=\"tag {{ 'color-' + color }}\"\n disableRipple\n>\n @if (icon()) {\n <button matChipRemove>\n <mat-icon>{{ progress() ? 'autorenew' : icon() }}</mat-icon>\n </button>\n }\n <ng-content></ng-content>\n</mat-chip-row>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { TagComponent } from './tag.component';\n\n@NgModule({\n declarations: [TagComponent],\n imports: [CommonModule, MatChipsModule, MatIconModule],\n exports: [TagComponent],\n})\nexport class TagModule {}\n","export const SPACES = /[\\s\\u00A0]/g;\n\nexport function normalizeString(str: string) {\n return (str || '').replace(SPACES, ' ');\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n Injector,\n OnInit,\n Renderer2,\n input,\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { combineLatest } from 'rxjs';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\n\nimport { SPACES } from '../components/table/utils/normalize-string';\n\n@Directive({\n standalone: true,\n selector: '[vHighlight]',\n})\nexport class HighlightDirective implements OnInit {\n vHighlightText = input('', { transform: (v) => String(v || '') });\n vHighlightSearch = input('', { transform: (v) => String(v || '') });\n\n constructor(\n private el: ElementRef,\n private renderer: Renderer2,\n private dr: DestroyRef,\n private injector: Injector,\n ) {}\n\n ngOnInit() {\n combineLatest([\n toObservable(this.vHighlightText, { injector: this.injector }).pipe(\n distinctUntilChanged(),\n map((text) => this.escapeHtml(text)),\n ),\n toObservable(this.vHighlightSearch, { injector: this.injector }).pipe(\n distinctUntilChanged(),\n map((text) => this.escapeHtml(text)),\n ),\n ])\n .pipe(\n map(([text, search]) => {\n if (!search) {\n return text;\n }\n const re = new RegExp(`(${search.replace(SPACES, '\\\\s')})`, 'gi');\n return text.replace(re, `<mark>$1</mark>`);\n }),\n distinctUntilChanged(),\n takeUntilDestroyed(this.dr),\n )\n .subscribe((text) => {\n this.renderer.setProperty(this.el.nativeElement, 'innerHTML', text);\n });\n }\n\n private escapeHtml(html: string): string {\n return html\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n }\n}\n","import { Component, input } from '@angular/core';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatMenu, MatMenuItem, MatMenuTrigger } from '@angular/material/menu';\n\nimport { TypedParamsValue } from '../types/base-type';\n\nexport interface MenuItem {\n label: string;\n click?: (event: MouseEvent) => void;\n disabled?: boolean;\n}\n\nexport type MenuValue = TypedParamsValue<'menu', { items: MenuItem[] }>;\n\n@Component({\n selector: 'v-menu-value',\n imports: [MatIcon, MatIconButton, MatMenu, MatMenuItem, MatMenuTrigger],\n template: ` @if (value(); as v) {\n <button [matMenuTriggerFor]=\"menu\" class=\"button\" mat-icon-button>\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n @for (item of v.params.items; track item; let index = $index) {\n <button [disabled]=\"!!item?.disabled\" mat-menu-item (click)=\"item?.click?.($event)\">\n {{ item.label }}\n </button>\n }\n </mat-menu>\n }`,\n styles: ``,\n})\nexport class MenuValueComponent {\n value = input.required<MenuValue>();\n}\n","import { Component, input } from '@angular/core';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\n\nimport { TypedParamsValue } from '../types/base-type';\n\nexport type ToggleValue = TypedParamsValue<'toggle'>;\n\n@Component({\n selector: 'v-toggle-value',\n imports: [MatSlideToggleModule],\n template: ` @if (value(); as v) {\n <mat-slide-toggle\n [checked]=\"value().value\"\n (change)=\"$event.source.checked = !!value().value\"\n >\n </mat-slide-toggle>\n }`,\n})\nexport class ToggleValueComponent {\n value = input.required<ToggleValue>();\n}\n","import { LOCALE_ID, inject } from '@angular/core';\n\nimport { formatCurrency } from '../../../utils';\nimport { TypedParamsValue } from '../types/base-type';\n\nexport type CurrencyAmountValue = TypedParamsValue<\n 'currency',\n { code: string; exponent?: number; major?: boolean },\n Parameters<typeof formatCurrency>[0]\n>;\n\nexport function currencyAmountValueToString(value: CurrencyAmountValue) {\n if (typeof value?.value !== 'number') {\n return '';\n }\n const locale = inject(LOCALE_ID);\n return formatCurrency(\n value.value,\n value.params.code,\n 'long',\n locale,\n value.params.exponent,\n !!value.params.major,\n );\n}\n","import { formatDate } from '@angular/common';\nimport { LOCALE_ID, inject } from '@angular/core';\n\nimport { TypedValue } from '../types/base-type';\n\nexport type DatetimeValue = TypedValue<'datetime', Parameters<typeof formatDate>[0]>;\n\nexport function datetimeValueToString(value: DatetimeValue) {\n if (!value?.value) {\n return '';\n }\n const locale = inject(LOCALE_ID);\n return formatDate(value.value, 'dd.MM.yyyy HH:mm:ss', locale, '+0000');\n}\n","import isNil from 'lodash-es/isNil';\n\nexport function unknownToString(value: unknown): string {\n if (isNil(value)) {\n return '';\n }\n return String(value);\n}\n","import { Value } from '../types/value';\n\nimport { currencyAmountValueToString } from './currency-amount-value-to-string';\nimport { datetimeValueToString } from './datetime-value-to-string';\nimport { unknownToString } from './unknown-to-string';\n\nexport function valueToString(value?: Value | null): string {\n switch (value?.type) {\n case 'currency':\n return currencyAmountValueToString(value);\n case 'datetime':\n return datetimeValueToString(value);\n }\n return unknownToString(value?.value)?.trim?.();\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Injector,\n Input,\n booleanAttribute,\n input,\n model,\n runInInjectionContext,\n} from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { Router } from '@angular/router';\nimport { Observable, combineLatest, isObservable, of, switchMap } from 'rxjs';\nimport { filter, first, map, shareReplay } from 'rxjs/operators';\n\nimport { HighlightDirective } from '../../directives';\nimport { Nil } from '../../utils';\nimport { ContentLoadingComponent } from '../content-loading';\nimport { TagModule } from '../tag';\n\nimport { MenuValueComponent } from './components/menu-value.component';\nimport { ToggleValueComponent } from './components/toggle-value.component';\nimport { Value } from './types/value';\nimport { valueToString } from './utils/value-to-string';\n\n@Component({\n selector: 'v-value',\n imports: [\n CommonModule,\n MatIcon,\n MatIconButton,\n TagModule,\n MatTooltip,\n MenuValueComponent,\n ContentLoadingComponent,\n HighlightDirective,\n ToggleValueComponent,\n ],\n templateUrl: './value.component.html',\n styleUrl: './value.component.scss',\n host: {\n '[class.inline]': 'inline',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ValueComponent {\n value = input<Value | Nil>();\n lazyValue = input<Observable<Value> | Nil>();\n lazyVisible = model<boolean>(false);\n\n progress = input(false, { transform: booleanAttribute });\n @Input({ transform: booleanAttribute }) inline = false;\n @Input({\n transform: (v: unknown): string => (v === false ? '' : typeof v === 'string' ? v : '―'),\n })\n emptySymbol = '―';\n\n @Input() highlight?: string | null;\n\n value$ = combineLatest([toObservable(this.value), toObservable(this.lazyValue)]).pipe(\n switchMap(([value, lazyValue]) => (isObservable(lazyValue) ? lazyValue : of(value))),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n valueText$ = this.value$.pipe(\n map((value) => runInInjectionContext(this.injector, () => valueToString(value))),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n inProgress$ = combineLatest([\n toObservable(this.progress),\n this.value$.pipe(map((v) => v?.inProgress ?? false)),\n ]).pipe(\n map(([compProgress, valueProgress]) => compProgress || valueProgress),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n constructor(\n private injector: Injector,\n private router: Router,\n ) {}\n\n makeLazyVisible() {\n this.lazyVisible.set(true);\n }\n\n click(event: MouseEvent) {\n this.value$.pipe(first(), filter(Boolean)).subscribe((value) => {\n runInInjectionContext(this.injector, () => {\n if (value?.click) {\n value.click(event);\n } else if (typeof value?.link === 'function') {\n const linkArgs = value.link(event);\n if (typeof linkArgs === 'string') {\n this.router.navigateByUrl(linkArgs);\n return;\n }\n this.router.navigate(...linkArgs);\n }\n });\n });\n }\n}\n","@if (!value() && lazyValue() && !lazyVisible()) {\n <button class=\"button\" mat-icon-button (click)=\"lazyVisible.set(true)\">\n <mat-icon>sync</mat-icon>\n </button>\n} @else {\n @if (value$ | async; as v) {\n <div\n [ngClass]=\"{ wrapper__action: v.click || v.link }\"\n class=\"wrapper\"\n (click)=\"click($event)\"\n >\n @if (v.template) {\n <ng-container *ngTemplateOutlet=\"v.template; context: {}\"></ng-container>\n } @else {\n @if (v.color) {\n <v-tag [color]=\"v.color\">\n <ng-container *ngTemplateOutlet=\"tooltipTemplate\"></ng-container>\n </v-tag>\n } @else {\n <ng-container *ngTemplateOutlet=\"tooltipTemplate\"></ng-container>\n }\n\n <ng-template #tooltipTemplate>\n @if (v.tooltip) {\n <span [matTooltip]=\"v.tooltip\" class=\"tooltip\">\n <ng-container *ngTemplateOutlet=\"valueTemplate\"></ng-container>\n </span>\n } @else {\n <span [title]=\"v.value\">\n <ng-container *ngTemplateOutlet=\"valueTemplate\"></ng-container>\n </span>\n }\n </ng-template>\n\n <ng-template #valueTemplate>\n @switch (v.type) {\n @case ('menu') {\n <v-menu-value [value]=\"v\"></v-menu-value>\n }\n @case ('toggle') {\n <v-toggle-value [value]=\"v\"></v-toggle-value>\n }\n @default {\n @let valueText = valueText$ | async;\n @if (inProgress$ | async) {\n <v-content-loading [hiddenText]=\"valueText\"></v-content-loading>\n } @else if (valueText) {\n <span\n [ngClass]=\"{ value__click: v.click, value__link: v.link }\"\n [vHighlightSearch]=\"highlight\"\n [vHighlightText]=\"valueText\"\n vHighlight\n ></span>\n } @else if (emptySymbol) {\n <span style=\"color: #ccc\">{{ emptySymbol }}</span>\n }\n }\n }\n </ng-template>\n }\n\n @if (v.description) {\n <div\n [title]=\"v.description\"\n [vHighlightSearch]=\"highlight\"\n [vHighlightText]=\"v.description\"\n class=\"description mat-label-medium mat-secondary-text\"\n vHighlight\n ></div>\n }\n </div>\n } @else {\n <v-content-loading></v-content-loading>\n }\n}\n","import { Component, input } from '@angular/core';\n\nimport { Value } from '../types/value';\nimport { ValueComponent } from '../value.component';\n\n@Component({\n selector: 'v-value-list',\n imports: [ValueComponent],\n template: `\n @if (list(); as items) {\n @if (items.length > 1) {\n <div class=\"list\">\n @for (item of items; track item) {\n <v-value [value]=\"item\" inline></v-value>\n }\n </div>\n } @else {\n <v-value [value]=\"items[0]\" inline></v-value>\n }\n } @else {\n <v-value [progress]=\"true\" inline></v-value>\n }\n `,\n styles: `\n .list {\n display: flex;\n flex-direction: column;\n\n & > * {\n overflow: hidden;\n text-overflow: ellipsis;\n min-height: 20px;\n }\n }\n `,\n})\nexport class ValueListComponent {\n list = input<Value[] | undefined | null>();\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'v-table-inputs',\n template: `<ng-content></ng-content>`,\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TableInputsComponent {}\n","import isNil from 'lodash-es/isNil';\n\nexport function createUniqueColumnDef(name?: unknown) {\n return `___$$${\n typeof name === 'object' || isNil(name) ? 'column' : String(name)\n }_${Math.random().toString()}`;\n}\n","import { Sort } from '@angular/material/sort';\n\nimport { createUniqueColumnDef } from './utils/create-unique-column-def';\n\nexport const DEFAULT_SORT: Sort = { active: '', direction: '' };\nexport const DEBOUNCE_TIME_MS = 500;\nexport const DEFAULT_LOADED_LAZY_ROWS_COUNT = 3;\nexport const COLUMN_DEFS = {\n select: createUniqueColumnDef('select'),\n drag: createUniqueColumnDef('drag'),\n};\n","import { get } from 'lodash-es';\nimport isNil from 'lodash-es/isNil';\nimport startCase from 'lodash-es/startCase';\nimport { Observable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { Async, PossiblyAsync, getPossiblyAsyncObservable } from '../../../utils';\nimport { Value } from '../../value';\n\nexport type Fn<R, P extends Array<unknown> = []> = (...args: P) => R;\nexport type PossiblyFn<R, P extends Array<unknown> = []> = Fn<R, P> | R;\n\nexport type CellFnArgs<T extends object> = [data: T, index: number];\n\ninterface ColumnParams {\n sticky?: 'start' | 'end';\n style?: Record<string, unknown>;\n}\n\nexport type CellValue = 'string' | Value;\n\nexport interface Column<T extends object, C extends object = object> extends ColumnParams {\n field: string;\n\n header?: PossiblyAsync<Partial<Value> | string>;\n\n cell?: PossiblyFn<PossiblyAsync<CellValue>, CellFnArgs<T>>;\n lazyCell?: PossiblyFn<Async<CellValue>, CellFnArgs<T>>;\n child?: PossiblyFn<PossiblyAsync<CellValue>, CellFnArgs<C>>;\n\n hidden?: PossiblyAsync<boolean>;\n sort?: PossiblyAsync<boolean>;\n}\n\nexport function normalizePossiblyFn<R, P extends Array<unknown>>(fn: PossiblyFn<R, P>): Fn<R, P> {\n return typeof fn === 'function' ? (fn as Fn<R, P>) : () => fn;\n}\n\nexport function normalizeCell<T extends object, C extends object>(\n field: string,\n cell: Column<T, C>['cell'],\n hasChild: boolean = false,\n): Fn<Observable<Value>, CellFnArgs<T>> {\n const cellFn = normalizePossiblyFn(cell);\n return (...args) =>\n getPossiblyAsyncObservable(cellFn(...args)).pipe(\n map((value) => {\n const defaultValue = hasChild ? { value: '' } : { value: get(args[0], field) };\n if (isNil(value)) {\n return defaultValue;\n }\n return typeof value === 'object' ? { ...defaultValue, ...value } : { value };\n }),\n );\n}\n\nexport class NormColumn<T extends object, C extends object = object> {\n field!: string;\n header!: Observable<Value>;\n cell?: Fn<Observable<Value>, CellFnArgs<T>>;\n lazyCell?: Fn<Observable<Value>, CellFnArgs<T>>;\n child?: Fn<Observable<Value>, CellFnArgs<C>>;\n hidden!: Observable<boolean>;\n sort!: Observable<boolean | null>;\n params!: ColumnParams;\n\n constructor(\n { field, header, cell, child, hidden, sort, lazyCell, ...params }: Column<T, C>,\n commonParams: ColumnParams = {},\n ) {\n this.field = field ?? (typeof header === 'string' ? header : String(Math.random()));\n const defaultHeaderValue = startCase((field || '').split('.').at(-1));\n this.header = getPossiblyAsyncObservable(header).pipe(\n map((value) =>\n typeof value === 'object'\n ? ({ value: defaultHeaderValue, ...value } as Value)\n : { value: value ?? defaultHeaderValue },\n ),\n );\n if (cell || !lazyCell) {\n this.cell = normalizeCell(this.field, cell, !!child);\n }\n if (lazyCell) {\n this.lazyCell = normalizeCell(this.field, lazyCell, !!child);\n }\n if (child) {\n this.child = normalizeCell(this.field, child);\n }\n this.params = {\n ...commonParams,\n ...params,\n style: Object.assign({}, commonParams?.style, params?.style),\n };\n this.hidden = isNil(hidden) ? of(false) : getPossiblyAsyncObservable(hidden);\n this.sort = isNil(sort) ? of(null) : getPossiblyAsyncObservable(sort);\n }\n}\n","import { Injector, inject, runInInjectionContext } from '@angular/core';\nimport { Sort } from '@angular/material/sort';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { compareDifferentTypes } from '../../../utils';\nimport { valueToString } from '../../value/utils/value-to-string';\nimport { NormColumn } from '../types';\nimport { ColumnData, DisplayedData, DisplayedDataItem } from '../utils/to-columns-data';\n\nimport { normalizeString } from './normalize-string';\n\nexport type FilterSearchData<T extends object, C extends object> = Map<\n DisplayedDataItem<T, C>,\n { byColumns: string[][]; byRow: string }\n>;\n\nexport function columnsDataToFilterSearchData<T extends object, C extends object>(\n src$: Observable<Map<DisplayedDataItem<T, C>, ColumnData>>,\n) {\n const injector = inject(Injector);\n return src$.pipe(\n map(\n (data) =>\n new Map(\n Array.from(data.entries()).map(([item, value]) => [\n item,\n {\n byColumns: value.map((el) => [\n runInInjectionContext(injector, () =>\n normalizeString(valueToString(el?.value)),\n ),\n normalizeString(String(el?.value?.description ?? '')),\n ]),\n byRow: JSON.stringify(item),\n },\n ]),\n ),\n ),\n );\n}\n\nfunction getWeight(\n searchValue: string,\n search: string,\n lowerCaseSearch: string,\n unimportance: number = 0,\n) {\n if (searchValue === search) {\n return 1000000 - unimportance;\n } else if (searchValue.includes(search)) {\n return 10000 - unimportance;\n } else if (searchValue.toLowerCase().includes(lowerCaseSearch)) {\n return 100 - unimportance;\n }\n return 0;\n}\n\nexport function filterData<T extends object, C extends object>(\n data: FilterSearchData<T, C>,\n search: string,\n) {\n const lowerCaseSearch = search.toLowerCase();\n return Array.from(data.entries())\n .map(([value, searchValuesCols]) => ({\n value,\n priority:\n searchValuesCols.byColumns.reduce(\n (priority, searchValues) =>\n searchValues.reduce(\n (colPriority, searchValue, idx) =>\n colPriority + getWeight(searchValue, search, lowerCaseSearch, idx),\n priority,\n ),\n 0,\n ) + getWeight(searchValuesCols.byRow, search, lowerCaseSearch, 1),\n }))\n .filter((v) => v.priority)\n .sort((a, b) => b.priority - a.priority)\n .map((v) => v.value);\n}\n\nexport function sortData<T extends object, C extends object>(\n source: DisplayedData<T, C>,\n data: FilterSearchData<T, C>,\n columns: NormColumn<T, C>[],\n sort: Sort,\n) {\n if (!sort?.active || !sort?.direction) {\n return source;\n }\n const colIdx = columns.findIndex((c) => c.field === sort.active);\n const sortedData = source\n .slice()\n .sort((a, b) =>\n compareDifferentTypes(\n (data.get(a)?.byColumns ?? [])[colIdx]?.[0],\n (data.get(b)?.byColumns ?? [])[colIdx]?.[0],\n ),\n );\n return sort.direction === 'desc' ? sortedData.reverse() : sortedData;\n}\n","import { TreeDataItem } from './tree-data';\n\nexport function treeDataItemToInlineDataItem<T extends object, C extends object>(\n item: TreeDataItem<T, C>,\n) {\n const children = item.children ?? [];\n return [\n children.length ? { value: item.value, child: children[0] } : { value: item.value },\n ...children.slice(1).map((child) => ({ child })),\n ];\n}\n","import { Observable, scan } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nexport function cachedHeadMap<T extends object, R>(fn: (el: T, idx: number) => R) {\n return (src$: Observable<T[] | undefined>) => {\n return src$.pipe(\n scan(\n (acc, v) => {\n return {\n prev: v ?? [],\n res: (v ?? []).map((el, idx) =>\n acc.prev[idx] === el ? acc.res[idx] : fn(el, idx),\n ),\n };\n },\n { prev: [], res: [] } as { prev: T[]; res: R[] },\n ),\n map(({ res }) => res),\n );\n };\n}\n","import { DestroyRef, EventEmitter, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatPaginator, PageEvent } from '@angular/material/paginator';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { BehaviorSubject, Observable, switchMap } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\n\nimport {\n TreeData,\n TreeInlineData,\n TreeInlineDataItem,\n treeDataItemToInlineDataItem,\n} from '../tree-data';\n\nimport { cachedHeadMap } from './cached-head-map';\n\nexport class TableDataSource<T extends object, C extends object = never> extends MatTableDataSource<\n T | TreeInlineDataItem<T, C>,\n OnePageTableDataSourcePaginator & MatPaginator\n> {\n isTreeData$ = new BehaviorSubject(false);\n sourceData$ = new BehaviorSubject<T[] | TreeData<T, C>>([]);\n data$: Observable<T[] | TreeInlineData<T, C>> = this.isTreeData$.pipe(\n switchMap((isTreeData) =>\n isTreeData\n ? (this.sourceData$ as Observable<TreeData<T, C>>).pipe(\n cachedHeadMap(treeDataItemToInlineDataItem),\n map((v) => v.flat()),\n )\n : this.sourceData$,\n ),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n override get paginator() {\n return this.__paginator as OnePageTableDataSourcePaginator & MatPaginator;\n }\n\n private __paginator = new OnePageTableDataSourcePaginator();\n\n constructor() {\n super();\n this.data$.pipe(takeUntilDestroyed(inject(DestroyRef))).subscribe((data) => {\n this.data = data;\n });\n }\n\n setData(data: T[]) {\n this.sourceData$.next(data);\n if (this.isTreeData$.value) {\n this.isTreeData$.next(false);\n }\n }\n\n setTreeData(data: TreeData<T, C>) {\n this.sourceData$.next(data);\n if (!this.isTreeData$.value) {\n this.isTreeData$.next(true);\n }\n }\n}\n\nclass OnePageTableDataSourcePaginator implements Partial<MatPaginator> {\n pageIndex = 0;\n pageSize = 0;\n page = new EventEmitter<PageEvent>();\n initialized = new BehaviorSubject(undefined);\n\n get length() {\n return this.pageSize;\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n set length(_length) {}\n\n get displayedPages() {\n return this.pageSize / this.partSize;\n }\n\n private partSize!: number;\n\n constructor(partSize?: number) {\n this.setSize(partSize);\n }\n\n setSize(partSize = 25) {\n if (partSize !== this.partSize) {\n this.pageSize = this.partSize = partSize;\n this.reload();\n }\n }\n\n reload() {\n this.pageSize = this.partSize;\n this.update();\n }\n\n more() {\n this.pageSize += this.partSize;\n this.update();\n }\n\n private update() {\n this.page.next({\n pageIndex: this.pageIndex,\n pageSize: this.pageSize,\n length: this.length,\n });\n }\n}\n","import { Value } from '../../value';\nimport { unknownToString } from '../../value/utils/unknown-to-string';\nimport { valueToString } from '../../value/utils/value-to-string';\nimport { ColumnData, DisplayedDataItem } from '../utils/to-columns-data';\n\nexport function tableToCsvObject<T extends object, C extends object>(\n cols: Value[],\n displayedData: Map<DisplayedDataItem<T, C>, ColumnData>,\n): string[][] {\n const data = Array.from(displayedData.values()).map((columnData) =>\n columnData.map((v) => v.value),\n );\n\n const res = [\n cols\n .map((v) => {\n const res = valueToString(v);\n return [res, `${res} (description)`];\n })\n .flat(),\n ...data.map((r) =>\n r.map((c) => [valueToString(c), unknownToString(c?.description)]).flat(),\n ),\n ];\n // Removing empty description columns (every second column)\n let emptyCols = [];\n for (\n let i = 1;\n i < res[0].length;\n i += 2 // description - every second column\n ) {\n let isEmpty = true;\n for (\n let j = 1; // ignore header row\n j < res.length;\n ++j\n ) {\n if (res[j][i]) {\n isEmpty = false;\n break;\n }\n }\n if (isEmpty) {\n emptyCols.push(i);\n }\n }\n emptyCols = emptyCols.reverse();\n for (const i of emptyCols) {\n for (let j = 0; j < res.length; ++j) {\n res[j].splice(i, 1);\n }\n }\n return res;\n}\n","import { isEqual } from 'lodash-es';\nimport { Observable, combineLatest, of, scan, switchMap, timer } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, map, shareReplay } from 'rxjs/operators';\nimport { Overwrite } from 'utility-types';\n\nimport { Value } from '../../value';\nimport { TreeInlineData, TreeInlineDataItem } from '../tree-data';\nimport { CellFnArgs, Fn, NormColumn } from '../types';\n\nexport type DisplayedDataItem<T extends object, C extends object> = TreeInlineDataItem<T, C> | T;\nexport type DisplayedData<T extends object, C extends object> = TreeInlineData<T, C> | T[];\n\nexport type ColumnDataItem = {\n value: Value | null;\n lazyValue?: Observable<Value>;\n isChild?: boolean;\n isNextChild?: boolean;\n};\nexport type ColumnData = ColumnDataItem[];\n\ntype ScanColumnDataItem = Overwrite<ColumnDataItem, { value: Observable<Value | null> }>;\ntype ScanColumnData<T extends object, C extends object> = Map<NormColumn<T, C>, ScanColumnDataItem>;\ntype ColumnDataMap<T extends object, C extends object> = Map<\n DisplayedDataItem<T, C>,\n ScanColumnData<T, C>\n>;\n\nfunction getValue<T extends object>(\n cellFn: Fn<Observable<Value>, CellFnArgs<T>> | undefined,\n ...[value, idx]: CellFnArgs<T>\n) {\n return cellFn ? cellFn(value, idx).pipe(toScannedValue) : of(null);\n}\n\nfunction toScannedValue(src$: Observable<Value>) {\n return src$.pipe(\n shareReplay({\n bufferSize: 1,\n refCount: true,\n }),\n );\n}\n\nexport function toObservableColumnsData<T extends object, C extends object>(\n src$: Observable<{ isTree: boolean; data: DisplayedData<T, C>; cols: NormColumn<T, C>[] }>,\n): Observable<ColumnDataMap<T, C>> {\n return src$.pipe(\n scan(\n (acc, { isTree, data, cols }) => {\n const isColsNotChanged = acc.cols === cols;\n return {\n res: new Map<TreeInlineDataItem<T, C> | T, ScanColumnData<T, C>>(\n isTree\n ? (data as TreeInlineData<T, C>).map((d, idx) => [\n d,\n isColsNotChanged &&\n d === acc.data[idx] &&\n // This is not the last value, because we need to calculate isNextChild\n idx !== acc.data.length - 1\n ? (acc.res.get(d) as ScanColumnData<T, C>)\n : new Map(\n cols.map((c) => [\n c,\n {\n value:\n d.child && c.child\n ? getValue(c.child, d.child, idx)\n : d.value\n ? getValue(c.cell, d.value, idx)\n : of({ value: '' }),\n // TODO add support of lazyValue\n isChild: !d.value,\n isNextChild: !(data as TreeInlineData<T, C>)[\n idx + 1\n ]?.value,\n },\n ]),\n ),\n ])\n : (data as T[]).map((d, idx) => [\n d,\n isColsNotChanged && d === acc.data[idx]\n ? (acc.res.get(d) as ScanColumnData<T, C>)\n : new Map(\n cols.map((c) => [\n c,\n {\n value: getValue(c.cell, d, idx),\n lazyValue: c.lazyCell\n ? c.lazyCell(d, idx).pipe(toScannedValue)\n : undefined,\n },\n ]),\n ),\n ]),\n ),\n data,\n cols,\n };\n },\n { data: [], cols: [], res: new Map() } as {\n data: DisplayedData<T, C>;\n cols: NormColumn<T, C>[];\n res: ColumnDataMap<T, C>;\n },\n ),\n map(({ res }) => res),\n );\n}\n\nexport function toColumnsData<T extends object, C extends object>(\n src$: Observable<ColumnDataMap<T, C>>,\n): Observable<Map<DisplayedDataItem<T, C>, ColumnData>> {\n return src$.pipe(\n switchMap((columnsData) => {\n if (!columnsData.size) {\n return of(new Map());\n }\n return combineLatest(\n Array.from(columnsData.values()).map((v) =>\n combineLatest(\n Array.from(v.values()).map((cell) =>\n timer(0).pipe(\n switchMap(() => cell.value),\n distinctUntilChanged(isEqual),\n ),\n ),\n ).pipe(debounceTime(0)),\n ),\n ).pipe(\n debounceTime(0),\n map(\n (res) =>\n new Map(\n Array.from(columnsData.entries()).map(([k, v], idx) => [\n k,\n Array.from(v.values()).map((cell, colIdx) => ({\n ...cell,\n value: res[idx][colIdx],\n })),\n ]),\n ),\n ),\n );\n }),\n );\n}\n","import { ChangeDetectionStrategy, Component, booleanAttribute, input } from '@angular/core';\n\n@Component({\n selector: 'v-no-records',\n template: `\n @if (noRecords()) {\n <div class=\"no-records mat-body-large\">\n {{ progress() ? 'Loading...' : 'No records' }}\n </div>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [],\n styles: `\n .no-records {\n position: absolute;\n z-index: 999;\n top: calc(50% + (56px / 2));\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n }\n `,\n})\nexport class NoRecordsComponent {\n noRecords = input(false, { transform: booleanAttribute });\n progress = input(false, { transform: booleanAttribute });\n}\n","import { Observable } from 'rxjs';\n\nexport function createIntersectionObserver(el: HTMLElement) {\n return new Observable<IntersectionObserverEntry>((subscriber) => {\n const observer = new IntersectionObserver((entries) => {\n for (const entry of entries) {\n if (entry.isIntersecting) {\n subscriber.next(entry);\n }\n }\n });\n observer.observe(el);\n return {\n unsubscribe() {\n observer.disconnect();\n },\n };\n });\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n OnInit,\n booleanAttribute,\n input,\n output,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { filter } from 'rxjs/operators';\n\nimport { createIntersectionObserver } from '../utils/create-intersection-observer';\n\n@Directive({\n selector: '[vInfinityScroll]',\n standalone: true,\n})\nexport class InfinityScrollDirective implements OnInit {\n vInfinityScroll = input(false, { transform: booleanAttribute });\n vInfinityScrollMore = output();\n\n constructor(\n private elementRef: ElementRef,\n private dr: DestroyRef,\n ) {}\n\n ngOnInit() {\n createIntersectionObserver(this.elementRef.nativeElement)\n .pipe(\n filter(() => this.vInfinityScroll()),\n takeUntilDestroyed(this.dr),\n )\n .subscribe(() => {\n this.vInfinityScrollMore.emit();\n });\n }\n}\n","import { Directive, OnDestroy, OnInit, inject, input, viewChild } from '@angular/core';\nimport {\n MatCellDef,\n MatColumnDef,\n MatFooterCellDef,\n MatHeaderCellDef,\n MatTable,\n} from '@angular/material/table';\n\n@Directive()\nexport class BaseColumnComponent implements OnDestroy, OnInit {\n name = input.required<string>();\n table = inject(MatTable);\n\n columnDef = viewChild(MatColumnDef);\n cellDef = viewChild(MatCellDef);\n headerCellDef = viewChild(MatHeaderCellDef);\n footerCellDef = viewChild(MatFooterCellDef);\n\n addedColumnDef?: MatColumnDef;\n\n ngOnInit() {\n const columnDef = this.columnDef();\n if (columnDef) {\n columnDef.name = this.name();\n columnDef.cell = this.cellDef() as never;\n columnDef.headerCell = this.headerCellDef() as never;\n columnDef.footerCell = this.footerCellDef() as never;\n this.removeColumnDef();\n this.table.addColumnDef(columnDef);\n this.addedColumnDef = columnDef;\n }\n }\n\n ngOnDestroy() {\n this.removeColumnDef();\n }\n\n private removeColumnDef() {\n if (this.table && this.addedColumnDef) {\n this.table.removeColumnDef(this.addedColumnDef);\n }\n }\n}\n","import { SelectionModel } from '@angular/cdk/collections';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n OnChanges,\n OnDestroy,\n OnInit,\n input,\n model,\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatTableModule } from '@angular/material/table';\nimport { combineLatest } from 'rxjs';\nimport { map, shareReplay, startWith } from 'rxjs/operators';\n\nimport { ArrayAttributeTransform, ComponentChanges, arrayAttribute } from '../../../utils';\n\nimport { BaseColumnComponent } from './base-column.component';\n\n@Component({\n selector: 'v-select-column',\n template: `\n <ng-container [matColumnDef]=\"name()\" [sticky]=\"true\">\n @let columnClasses = 'column';\n <th *matHeaderCellDef [class]=\"columnClasses\" mat-header-cell>\n <mat-checkbox\n [checked]=\"selection.hasValue() && (isAllSelected$ | async)\"\n [disabled]=\"!!progress() || !data()?.length\"\n [indeterminate]=\"selection.hasValue() && !(isAllSelected$ | async)\"\n (change)=\"$event ? toggleAllRows() : null\"\n >\n </mat-checkbox>\n </th>\n <td *matCellDef=\"let row\" [class]=\"columnClasses\" mat-cell>\n <mat-checkbox\n [checked]=\"selection.isSelected(row)\"\n [disabled]=\"!!progress()\"\n (change)=\"$event ? selection.toggle(row) : null\"\n (click)=\"$event.stopPropagation()\"\n >\n </mat-checkbox>\n </td>\n <td *matFooterCellDef [class]=\"columnClasses\" mat-footer-cell>\n <mat-checkbox disabled></mat-checkbox>\n </td>\n </ng-container>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, MatTableModule, MatCheckboxModule],\n styles: `\n .column {\n padding-left: 4px;\n padding-right: 4px;\n width: 48px;\n border-right: 1px solid;\n text-overflow: clip;\n }\n `,\n})\nexport class SelectColumnComponent<T>\n extends BaseColumnComponent\n implements OnInit, OnDestroy, OnChanges\n{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n selected = model<any[]>([]);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data = input<T[], ArrayAttributeTransform<any>>([], { transform: arrayAttribute });\n progress = input<boolean | number | null | undefined>(false);\n\n selection = new SelectionModel<T>(true, []);\n isAllSelected$ = combineLatest([\n this.selection.changed.pipe(startWith(null)),\n toObservable(this.data),\n ]).pipe(\n map(() => this.getIsAllSelected()),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n constructor(private dr: DestroyRef) {\n super();\n }\n\n override ngOnInit() {\n super.ngOnInit();\n this.selection.changed.pipe(takeUntilDestroyed(this.dr)).subscribe(() => {\n this.selected.set(this.selection.selected);\n });\n }\n\n ngOnChanges(changes: ComponentChanges<SelectColumnComponent<T>>) {\n if (changes.data || changes.selected) {\n this.updateSelection();\n }\n }\n\n toggleAllRows() {\n if (this.getIsAllSelected()) {\n this.selection.clear(true);\n return;\n }\n this.selection.select(...this.data());\n }\n\n private getIsAllSelected() {\n const numSelected = this.selection.selected.length;\n const numRows = this.data().length;\n return numSelected === numRows;\n }\n\n private updateSelection() {\n const newSelected = (this.selected() || []).filter((d) => !!this.data()?.includes?.(d));\n this.selection.deselect(...this.selection.selected.filter((s) => !newSelected.includes(s)));\n this.selection.select(...newSelected);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, output } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTableModule } from '@angular/material/table';\n\nimport { BaseColumnComponent } from './base-column.component';\n\n@Component({\n selector: 'v-dnd-column',\n template: `\n <ng-container [matColumnDef]=\"name()\" [sticky]=\"true\">\n @let columnClasses = 'column';\n <th *matHeaderCellDef [class]=\"columnClasses\" mat-header-cell></th>\n <td *matCellDef=\"let row\" [class]=\"columnClasses\" mat-cell>\n <div class=\"position\">\n <mat-icon class=\"dragCursor\" (mousedown)=\"dragged.emit()\">reorder</mat-icon>\n <!-- <span>{{ index + 1 }}</span>-->\n </div>\n </td>\n <td *matFooterCellDef [class]=\"columnClasses\" mat-footer-cell>\n <div class=\"position\">\n <mat-icon class=\"dragCursor\">reorder</mat-icon>\n </div>\n </td>\n </ng-container>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, MatTableModule, MatIconModule],\n styles: `\n .column {\n .position {\n display: flex;\n align-items: center;\n gap: 8px;\n\n .dragCursor {\n cursor: move;\n }\n }\n }\n `,\n})\nexport class DndColumnComponent extends BaseColumnComponent {\n dragged = output();\n}\n","import {\n Component,\n DestroyRef,\n OnInit,\n booleanAttribute,\n computed,\n input,\n numberAttribute,\n output,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormControl } from '@angular/forms';\n\nimport { NormColumn } from '../../types';\n\n@Component({\n selector: 'v-table-info-bar',\n templateUrl: 'table-info-bar.component.html',\n styleUrl: 'table-info-bar.component.scss',\n standalone: false,\n})\nexport class TableInfoBarComponent<T extends object, C extends object> implements OnInit {\n progress = input(false, { transform: booleanAttribute });\n hasMore = input(false, { transform: booleanAttribute });\n hasLoad = input(false, { transform: booleanAttribute });\n isPreload = input(false, { transform: booleanAttribute });\n noDownload = input(false, { transform: booleanAttribute });\n noToolbar = input(false, { transform: booleanAttribute });\n dataProgress = input(false, { transform: booleanAttribute });\n columns = input<NormColumn<T, C>[]>([]);\n\n size = input(0, { transform: numberAttribute });\n preloadSize = input(0, { transform: numberAttribute });\n\n count = input<number | undefined | null>(undefined);\n filteredCount = input<number | undefined | null>(0);\n selectedCount = input<number | undefined | null>(0);\n\n filter = input<string>('');\n standaloneFilter = input(false, { transform: booleanAttribute });\n hasInputs = input(false, { transform: booleanAttribute });\n filterChange = output<string>();\n filterControl = new FormControl('', { nonNullable: true });\n\n downloadCsv = output();\n // eslint-disable-next-line @angular-eslint/no-output-native\n load = output();\n preload = output();\n\n countText = computed(() =>\n this.count()\n ? (this.filter() && this.filteredCount() !== this.count()\n ? this.filteredCount() + '/'\n : '') +\n (this.hasMore() ? '>' : '') +\n this.count()\n : this.progress() || this.count() !== 0\n ? '...'\n : '0',\n );\n\n constructor(private dr: DestroyRef) {}\n\n ngOnInit() {\n this.filterControl.valueChanges.pipe(takeUntilDestroyed(this.dr)).subscribe((v) => {\n this.filterChange.emit(v);\n });\n }\n\n // tune() {\n // this.dialogService.open(CustomizeComponent, { columns: this.columns() });\n // }\n}\n","<div class=\"wrapper\">\n @if (standaloneFilter()) {\n <div class=\"header-wrapper\">\n @if (hasInputs()) {\n <ng-content select=\"v-table-inputs\"></ng-content>\n }\n <v-input-field\n [formControl]=\"filterControl\"\n class=\"filter__standalone filter\"\n cleanButton\n label=\"Search\"\n ></v-input-field>\n </div>\n }\n <v-actions>\n <v-actions>\n @if (!noToolbar()) {\n @if (!standaloneFilter()) {\n <div>\n <v-input-field\n [formControl]=\"filterControl\"\n appearance=\"outline\"\n class=\"filter filter__extended\"\n cleanButton\n icon=\"manage_search\"\n label=\"Search\"\n size=\"small\"\n ></v-input-field>\n </div>\n }\n <div class=\"details\">\n @if (hasLoad() || hasMore()) {\n <button\n [disabled]=\"progress() || !hasMore()\"\n mat-icon-button\n matTooltip=\"Preload {{ preloadSize() }}{{\n isPreload() && hasMore() ? ' more' : ''\n }} elements\"\n (click)=\"preload.emit()\"\n >\n <mat-icon>\n {{\n hasMore()\n ? isPreload()\n ? 'downloading'\n : 'download'\n : 'download_done'\n }}\n </mat-icon>\n </button>\n }\n @if (!noDownload()) {\n <button\n [disabled]=\"progress() || !count()\"\n mat-icon-button\n matTooltip=\"Download CSV\"\n (click)=\"downloadCsv.emit()\"\n >\n <mat-icon>file_save</mat-icon>\n </button>\n }\n <!-- <button mat-icon-button matTooltip=\"Customize table\" (click)=\"tune()\">\n <mat-icon>tune</mat-icon>\n </button> -->\n </div>\n }\n <div\n [matBadge]=\"selectedCount() || ''\"\n [matBadgeDisabled]=\"progress() || dataProgress()\"\n [matTooltip]=\"\n dataProgress()\n ? 'Preparing data for sorting, filtering and downloading...'\n : progress()\n ? 'Loading...'\n : 'Reload ' + size() + ' elements'\n \"\n class=\"count\"\n (click)=\"hasLoad() ? load.emit() : undefined\"\n >\n <v-tag\n [icon]=\"hasLoad() ? 'refresh' : undefined\"\n [progress]=\"progress() || dataProgress()\"\n >\n {{ countText() }}\n </v-tag>\n </div>\n </v-actions>\n <v-actions>\n <ng-content></ng-content>\n </v-actions>\n </v-actions>\n</div>\n","import { CdkDragDrop } from '@angular/cdk/drag-drop';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n DestroyRef,\n ElementRef,\n Injector,\n OnInit,\n ViewChild,\n booleanAttribute,\n computed,\n input,\n model,\n numberAttribute,\n output,\n runInInjectionContext,\n signal,\n} from '@angular/core';\nimport { outputFromObservable, takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { MatSort, Sort } from '@angular/material/sort';\nimport { MatRow, MatTable } from '@angular/material/table';\nimport {\n BehaviorSubject,\n Observable,\n Subject,\n combineLatest,\n debounceTime,\n defer,\n first,\n forkJoin,\n merge,\n switchMap,\n take,\n tap,\n} from 'rxjs';\nimport {\n delay,\n distinctUntilChanged,\n filter,\n map,\n share,\n shareReplay,\n startWith,\n} from 'rxjs/operators';\n\nimport { ArrayAttributeTransform, arrayAttribute, createCsv, downloadFile } from '../../utils';\n\nimport { TableInputsComponent } from './components/table-inputs.component';\nimport {\n COLUMN_DEFS,\n DEBOUNCE_TIME_MS,\n DEFAULT_LOADED_LAZY_ROWS_COUNT,\n DEFAULT_SORT,\n} from './consts';\nimport { TreeData } from './tree-data';\nimport { Column, DragDrop, NormColumn, UpdateOptions } from './types';\nimport { columnsDataToFilterSearchData, filterData, sortData } from './utils/filter-sort';\nimport { TableDataSource } from './utils/table-data-source';\nimport { tableToCsvObject } from './utils/table-to-csv-object';\nimport {\n DisplayedData,\n DisplayedDataItem,\n toColumnsData,\n toObservableColumnsData,\n} from './utils/to-columns-data';\n\n@Component({\n selector: 'v-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TableComponent<T extends object, C extends object> implements OnInit {\n data = input<T[], ArrayAttributeTransform<T>>([], { transform: arrayAttribute });\n treeData = input<TreeData<T, C>>();\n columns = input<Column<T, C>[], ArrayAttributeTransform<Column<T, C>>>([], {\n transform: arrayAttribute,\n });\n progress = input(false, { transform: Boolean });\n hasMore = input(false, { transform: booleanAttribute });\n size = input(25, { transform: numberAttribute });\n maxSize = input(1000, { transform: numberAttribute });\n noDownload = input(false, { transform: booleanAttribute });\n noToolbar = input(false, { transform: booleanAttribute });\n\n // Filter\n filter = model('');\n filter$ = toObservable(this.filter).pipe(\n map((v) => (v || '').trim()),\n distinctUntilChanged(),\n debounceTime(DEBOUNCE_TIME_MS),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n standaloneFilter = input(false, { transform: booleanAttribute });\n externalFilter = input(false, { transform: booleanAttribute });\n filteredSortData$ = new BehaviorSubject<DisplayedData<T, C> | null>(null);\n displayedData$ = combineLatest([\n defer(() => this.dataSource.data$),\n this.filteredSortData$.pipe(distinctUntilChanged()),\n defer(() => this.columnsDataProgress$),\n ]).pipe(\n map(\n ([data, filteredSortData, columnsDataProgress]) =>\n (filteredSortData && !columnsDataProgress ? filteredSortData : data) || [],\n ),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n displayedCount$ = this.displayedData$.pipe(\n map((data) => data.length),\n distinctUntilChanged(),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n // Select\n rowSelectable = input(false, { transform: booleanAttribute });\n rowSelected = model<DisplayedData<T, C>>([]);\n\n // Sort\n sort = model<Sort>(DEFAULT_SORT);\n @ViewChild(MatSort) sortComponent!: MatSort;\n\n // Drag & drop\n rowDragDrop = input(false, {\n transform: (v: boolean | string[]) => {\n if (Array.isArray(v)) {\n return v;\n }\n return booleanAttribute(v);\n },\n });\n rowDropped = output<DragDrop<DisplayedDataItem<T, C>>>();\n dragDisabled = true;\n\n update$ = new Subject<UpdateOptions>();\n update = outputFromObservable(this.update$);\n more = output<UpdateOptions>();\n\n loadedLazyItems = new WeakMap<DisplayedDataItem<T, C>, boolean>();\n\n dataSource = new TableDataSource<T, C>();\n normColumns = computed<NormColumn<T, C>[]>(() => this.columns().map((c) => new NormColumn(c)));\n displayedNormColumns$ = toObservable(this.normColumns).pipe(\n switchMap((cols) =>\n combineLatest(cols.map((c) => c.hidden)).pipe(\n map((c) => cols.filter((_, idx) => !c[idx])),\n ),\n ),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n columnsData$$ = combineLatest({\n isTree: this.dataSource.isTreeData$,\n data: this.dataSource.data$,\n cols: toObservable(this.normColumns),\n }).pipe(toObservableColumnsData, shareReplay({ refCount: true, bufferSize: 1 }));\n columnsDataProgress$ = new BehaviorSubject(false);\n columnsData$ = this.columnsData$$.pipe(\n tap(() => {\n this.columnsDataProgress$.next(true);\n }),\n toColumnsData,\n tap(() => {\n this.columnsDataProgress$.next(false);\n }),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n isPreload = signal(false);\n loadSize = computed(() => (this.isPreload() ? this.maxSize() : this.size()));\n hasAutoShowMore$ = combineLatest([\n toObservable(this.hasMore),\n this.dataSource.data$.pipe(map((d) => d?.length)),\n this.displayedCount$,\n this.dataSource.paginator.page.pipe(\n startWith(null),\n map(() => this.dataSource.paginator.pageSize),\n ),\n ]).pipe(\n map(\n ([hasMore, dataCount, displayedDataCount, size]) =>\n (hasMore && displayedDataCount !== 0 && displayedDataCount >= dataCount) ||\n displayedDataCount > size,\n ),\n distinctUntilChanged(),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n displayedColumns$ = combineLatest([\n this.displayedNormColumns$,\n toObservable(this.rowSelectable),\n toObservable(this.sort),\n toObservable(this.rowDragDrop),\n ]).pipe(\n map(([normColumns, rowSelectable, sort, rowDragDrop]) => [\n ...((\n Array.isArray(rowDragDrop)\n ? sort?.direction && rowDragDrop.includes(sort?.active)\n : rowDragDrop\n )\n ? [this.columnDefs.drag]\n : []),\n ...(rowSelectable ? [this.columnDefs.select] : []),\n ...normColumns.map((c) => c.field),\n ]),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n columnDefs = COLUMN_DEFS;\n\n @ViewChild('scrollViewport', { read: ElementRef }) scrollViewport!: ElementRef;\n @ViewChild('matTable', { static: false }) table!: MatTable<T>;\n @ContentChild(TableInputsComponent, { read: ElementRef }) tableInputsContent!: ElementRef;\n @ViewChild(MatRow, { static: false }) tableRow!: ElementRef;\n\n constructor(\n private dr: DestroyRef,\n private injector: Injector,\n private cdr: ChangeDetectorRef,\n ) {}\n\n ngOnInit() {\n const sort$ = toObservable(this.sort, { injector: this.injector }).pipe(\n distinctUntilChanged(),\n share(),\n );\n\n toObservable(this.data, { injector: this.injector })\n .pipe(filter(Boolean), takeUntilDestroyed(this.dr))\n .subscribe((data) => {\n this.dataSource.setData(data);\n });\n toObservable(this.treeData, { injector: this.injector })\n .pipe(filter(Boolean), takeUntilDestroyed(this.dr))\n .subscribe((data) => {\n this.dataSource.setTreeData(data);\n });\n combineLatest([\n this.filter$,\n sort$,\n this.dataSource.data$,\n runInInjectionContext(this.injector, () =>\n this.columnsData$.pipe(columnsDataToFilterSearchData),\n ),\n this.dataSource.isTreeData$,\n toObservable(this.normColumns, { injector: this.injector }),\n toObservable(this.externalFilter, { injector: this.injector }),\n ])\n .pipe(\n map(([search, sort, source, data, isTreeData, columns, isExternalFilter]) => {\n if (isTreeData) {\n return source;\n }\n const filteredData: DisplayedData<T, C> =\n !isExternalFilter && search ? filterData(data, search) : source;\n return sortData(filteredData, data, columns, sort);\n }),\n takeUntilDestroyed(this.dr),\n )\n .subscribe((filtered) => {\n this.updateSortFilter(filtered);\n this.updateLoadedLazyItems(filtered);\n this.cdr.markForCheck();\n });\n merge(\n this.filter$.pipe(filter(Boolean)),\n toObservable(this.hasMore, { injector: this.injector }).pipe(filter(Boolean)),\n )\n .pipe(takeUntilDestroyed(this.dr))\n .subscribe(() => {\n this.sort.set(DEFAULT_SORT);\n });\n merge(this.filter$, sort$)\n .pipe(takeUntilDestroyed(this.dr))\n .subscribe(() => {\n this.reset();\n });\n // TODO: 2, 3 column is torn away from the previous one, fixed by calling update\n this.dataSource.data$\n .pipe(\n filter((v) => !!v?.length),\n first(),\n delay(100),\n takeUntilDestroyed(this.dr),\n )\n .subscribe(() => {\n this.table.updateStickyColumnStyles();\n });\n }\n\n load() {\n if (this.isPreload()) {\n this.isPreload.set(false);\n }\n this.reload();\n }\n\n preload() {\n if (!this.isPreload()) {\n this.isPreload.set(true);\n this.reload();\n } else if (this.hasMore()) {\n this.more.emit({ size: this.loadSize() });\n }\n }\n\n showMore() {\n this.dataSource.paginator.more();\n if (this.hasMore() && this.dataSource.paginator.pageSize > this.dataSource.data.length) {\n this.more.emit({ size: this.loadSize() });\n }\n this.refreshTable();\n }\n\n downloadCsv() {\n this.generateCsvData()\n .pipe(takeUntilDestroyed(this.dr))\n .subscribe((csvData) => {\n downloadFile(csvData, 'csv');\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n drop(event: CdkDragDrop<any>) {\n this.dragDisabled = true;\n this.filteredSortData$.pipe(filter(Boolean), first()).subscribe((data) => {\n const item = event.item.data;\n const { previousIndex, currentIndex } = event;\n const previousData = data;\n const currentData = previousData.slice();\n let currentDataIndex = 0;\n if (previousIndex > currentIndex) {\n currentData.splice(previousIndex, 1);\n currentData.splice(currentIndex, 0, event.item.data);\n currentDataIndex = currentIndex;\n } else {\n currentData.splice(currentIndex, 0, event.item.data);\n currentData.splice(previousIndex, 1);\n currentDataIndex = currentIndex - 1;\n }\n this.rowDropped.emit({\n previousIndex,\n currentIndex,\n item,\n previousData,\n currentData,\n currentDataIndex,\n sort: this?.sortComponent,\n });\n });\n }\n\n private generateCsvData(): Observable<string> {\n return combineLatest([\n this.displayedNormColumns$.pipe(\n switchMap((cols) => forkJoin(cols.map((c) => c.header.pipe(take(1))))),\n ),\n this.columnsData$.pipe(take(1)),\n ]).pipe(\n map(([cols, data]) =>\n createCsv(runInInjectionContext(this.injector, () => tableToCsvObject(cols, data))),\n ),\n );\n }\n\n private reload() {\n this.update$.next({ size: this.loadSize() });\n this.reset();\n }\n\n private updateSortFilter(filtered: DisplayedData<T, C>) {\n this.filteredSortData$.next(filtered);\n this.dataSource.sortData = () => filtered;\n this.dataSource.sort = this.sortComponent;\n }\n\n private reset() {\n (this.scrollViewport?.nativeElement as HTMLElement)?.scrollTo?.({ top: 0 });\n this.dataSource.paginator.reload();\n this.refreshTable();\n }\n\n // TODO: Refresh table when pagination is updated\n private refreshTable() {\n // eslint-disable-next-line no-self-assign\n this.dataSource.data = this.dataSource.data;\n }\n\n private updateLoadedLazyItems(items: DisplayedData<T, C>) {\n const lazyLoadedItems = items.slice(0, DEFAULT_LOADED_LAZY_ROWS_COUNT);\n for (const item of lazyLoadedItems) {\n this.loadedLazyItems.set(item, true);\n }\n }\n}\n","@let columnsData = columnsData$$ | async;\n\n<div class=\"wrapper\">\n <v-table-info-bar\n [(filter)]=\"filter\"\n [columns]=\"normColumns()\"\n [count]=\"(dataSource.data$ | async)?.length\"\n [dataProgress]=\"!!(columnsDataProgress$ | async) && !hasMore()\"\n [filteredCount]=\"displayedCount$ | async\"\n [hasInputs]=\"!!tableInputsContent?.nativeElement\"\n [hasLoad]=\"update$.observed\"\n [hasMore]=\"hasMore()\"\n [isPreload]=\"isPreload()\"\n [noDownload]=\"noDownload()\"\n [noToolbar]=\"noToolbar()\"\n [preloadSize]=\"maxSize()\"\n [progress]=\"progress()\"\n [selectedCount]=\"rowSelected()?.length\"\n [size]=\"size()\"\n [standaloneFilter]=\"standaloneFilter()\"\n (downloadCsv)=\"downloadCsv()\"\n (load)=\"load()\"\n (preload)=\"preload()\"\n >\n <ng-content select=\"v-table-actions\"></ng-content>\n <v-table-inputs><ng-content select=\"v-table-inputs\"></ng-content></v-table-inputs>\n </v-table-info-bar>\n <mat-card #scrollViewport class=\"card\">\n <v-no-records\n [noRecords]=\"!(displayedCount$ | async)\"\n [progress]=\"progress()\"\n ></v-no-records>\n <table\n #matTable\n [cdkDropListDisabled]=\"dragDisabled\"\n [dataSource]=\"dataSource\"\n [matSortActive]=\"(columnsDataProgress$ | async) || progress() ? '' : sort().active\"\n [matSortDirection]=\"sort().direction\"\n cdkDropList\n cdkDropListData=\"dataSource\"\n mat-table\n matSort\n (cdkDropListDropped)=\"drop($event)\"\n (matSortChange)=\"sort.set($event)\"\n >\n @let displayedColumns = (displayedColumns$ | async) || [];\n\n @if (displayedColumns.includes(columnDefs.drag)) {\n <v-dnd-column\n [name]=\"columnDefs.drag\"\n (dragged)=\"dragDisabled = false\"\n ></v-dnd-column>\n }\n @if (displayedColumns.includes(columnDefs.select)) {\n <v-select-column\n [(selected)]=\"rowSelected\"\n [data]=\"displayedData$ | async\"\n [name]=\"columnDefs.select\"\n [progress]=\"progress()\"\n ></v-select-column>\n }\n @for (col of displayedNormColumns$ | async; track col; let colIndex = $index) {\n @let stickyStart = col.params.sticky === 'start';\n @let stickyEnd = col.params.sticky === 'end';\n @let columnClasses =\n {\n column: true,\n 'column__sticky-start': stickyStart,\n 'column__sticky-end': stickyEnd,\n };\n <ng-container\n [matColumnDef]=\"col.field\"\n [sticky]=\"stickyStart\"\n [stickyEnd]=\"stickyEnd\"\n >\n <th\n *matHeaderCellDef\n [disabled]=\"(col.sort | async) === false || hasMore() || progress()\"\n [mat-sort-header]=\"col.field\"\n [ngClass]=\"columnClasses\"\n mat-header-cell\n >\n <v-value [value]=\"col?.header | async\" emptySymbol=\"\" inline></v-value>\n </th>\n\n <ng-template let-element let-rowIndex=\"index\" matCellDef>\n @let cell = columnsData?.get?.(element)?.get(col);\n <td\n [ngClass]=\"columnClasses\"\n [ngStyle]=\"col?.params?.style\"\n [style.border-bottom]=\"cell?.isNextChild && !col.child ? 'none' : ''\"\n mat-cell\n >\n <v-value\n [emptySymbol]=\"!(cell?.isChild && !col?.child)\"\n [highlight]=\"filter$ | async\"\n [lazyValue]=\"cell?.lazyValue\"\n [lazyVisible]=\"loadedLazyItems.has(element)\"\n [value]=\"cell?.value | async\"\n inline\n (lazyVisibleChange)=\"loadedLazyItems.set(element, true)\"\n ></v-value>\n </td>\n </ng-template>\n <td *matFooterCellDef [ngClass]=\"columnClasses\" mat-footer-cell>\n <v-content-loading></v-content-loading>\n </td>\n </ng-container>\n }\n\n <tr *matHeaderRowDef=\"displayedColumns$ | async; sticky: true\" mat-header-row></tr>\n <tr\n *matRowDef=\"let row; columns: displayedColumns$ | async\"\n [cdkDragData]=\"row\"\n cdkDrag\n mat-row\n ></tr>\n <tr\n *matFooterRowDef=\"displayedColumns$ | async\"\n [ngClass]=\"{ row__hidden: !(hasAutoShowMore$ | async) || !tableRow }\"\n [vInfinityScroll]=\"!progress()\"\n mat-footer-row\n (vInfinityScrollMore)=\"showMore()\"\n ></tr>\n </table>\n </mat-card>\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { DialogSuperclass } from '../../../dialog';\nimport { Column, NormColumn } from '../../types';\n\ninterface CustomizedColumn {\n priority: number;\n name: string;\n hidden: boolean;\n}\n\n@Component({\n selector: 'v-customize',\n templateUrl: './customize.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class CustomizeComponent extends DialogSuperclass<\n CustomizeComponent,\n { columns: NormColumn<object>[] }\n> {\n columns: Column<CustomizedColumn>[] = [\n { field: 'priority', header: 'Number' },\n { field: 'name' },\n { field: 'hidden' },\n ];\n\n data: CustomizedColumn[] = this.dialogData.columns.map((c, idx) => ({\n priority: idx + 1,\n name: c.field,\n hidden: false,\n }));\n}\n","<v-dialog title=\"Customize table\">\n <v-table [columns]=\"columns\" [data]=\"data\" [rowDragDrop]=\"['priority']\" noToolbar></v-table>\n <v-dialog-actions>\n <button mat-button>Save</button>\n </v-dialog-actions>\n</v-dialog>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'v-table-actions',\n template: `\n <v-actions>\n <ng-content></ng-content>\n </v-actions>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TableActionsComponent {}\n","import { Component, booleanAttribute, input } from '@angular/core';\nimport { MatProgressBar } from '@angular/material/progress-bar';\n\n@Component({\n selector: 'v-table-progress-bar',\n imports: [MatProgressBar],\n template: `\n @if (progress()) {\n <mat-progress-bar class=\"progress-bar\" mode=\"indeterminate\"></mat-progress-bar>\n }\n `,\n styles: `\n .progress-bar {\n position: absolute;\n z-index: 999;\n }\n `,\n})\nexport class TableProgressBarComponent {\n progress = input(false, { transform: booleanAttribute });\n}\n","import { CdkDrag, CdkDropList } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatBadgeModule } from '@angular/material/badge';\nimport { MatButton, MatButtonModule, MatIconButton } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTooltip } from '@angular/material/tooltip';\n\nimport { ActionsModule } from '../actions';\nimport { ContentLoadingComponent } from '../content-loading';\nimport { DialogModule } from '../dialog/dialog.module';\nimport { InputFieldModule } from '../input-field';\nimport { ProgressModule } from '../progress';\nimport { TagModule } from '../tag';\nimport { ValueComponent, ValueListComponent } from '../value';\n\nimport { CustomizeComponent } from './components/customize/customize.component';\nimport { DndColumnComponent } from './components/dnd-column.component';\nimport { InfinityScrollDirective } from './components/infinity-scroll.directive';\nimport { NoRecordsComponent } from './components/no-records.component';\nimport { SelectColumnComponent } from './components/select-column.component';\nimport { TableActionsComponent } from './components/table-actions.component';\nimport { TableInfoBarComponent } from './components/table-info-bar/table-info-bar.component';\nimport { TableInputsComponent } from './components/table-inputs.component';\nimport { TableProgressBarComponent } from './components/table-progress-bar.component';\nimport { TableComponent } from './table.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatTableModule,\n MatCardModule,\n ValueComponent,\n TableProgressBarComponent,\n NoRecordsComponent,\n ContentLoadingComponent,\n MatIcon,\n MatTooltip,\n MatIconButton,\n InfinityScrollDirective,\n ValueListComponent,\n SelectColumnComponent,\n ProgressModule,\n MatSortModule,\n MatButton,\n CdkDrag,\n CdkDropList,\n DialogModule,\n MatButtonModule,\n InputFieldModule,\n ActionsModule,\n MatBadgeModule,\n ReactiveFormsModule,\n TagModule,\n DndColumnComponent,\n ],\n declarations: [\n CustomizeComponent,\n TableComponent,\n TableInfoBarComponent,\n TableInputsComponent,\n TableActionsComponent,\n ],\n exports: [TableComponent, TableInputsComponent, TableActionsComponent],\n})\nexport class TableModule {}\n","export function correctPriorities(\n priorities: number[],\n opts: {\n step: number;\n maxStep: number;\n start: number;\n } = {\n step: 1000,\n maxStep: 1000,\n start: 0,\n },\n): number[] {\n if (!priorities.length) {\n return [];\n }\n const res: number[] = [opts.start];\n for (let i = 1; i < priorities.length; ++i) {\n const last = res.at(-1) ?? opts.start;\n if (priorities[i] === priorities[i - 1]) {\n res.push(last);\n } else if (priorities[i] <= last || priorities[i] > last + opts.maxStep) {\n res.push(last + opts.step);\n } else {\n res.push(priorities[i]);\n }\n }\n return res;\n}\n","import { Injector, inject, runInInjectionContext } from '@angular/core';\nimport { combineLatest, switchMap } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { PossiblyAsync, getPossiblyAsyncObservable } from '../../../utils';\nimport { Value } from '../../value';\nimport { CellFnArgs, Column, normalizeCell } from '../types';\n\nimport { createUniqueColumnDef } from './create-unique-column-def';\n\nexport function createColumn<P, A extends object>(\n createCell: (cellParams: P, ...args: CellFnArgs<A>) => PossiblyAsync<Value>,\n columnObject: Partial<Column<A>> = {},\n) {\n return <T extends A>(\n getCellParams: (...args: CellFnArgs<T>) => PossiblyAsync<P>,\n { isLazyCell, ...column }: Partial<Column<T>> & { isLazyCell?: boolean } = {},\n ): Column<T> => {\n const injector = inject(Injector);\n const field = column?.field ?? createUniqueColumnDef(column?.header);\n const cellKey = isLazyCell ? 'lazyCell' : 'cell';\n return {\n field,\n ...columnObject,\n ...column,\n [cellKey]: (...cellArgs: CellFnArgs<T>) => {\n const cellValue$ = getPossiblyAsyncObservable(getCellParams(...cellArgs)).pipe(\n switchMap((cellParams) =>\n getPossiblyAsyncObservable(\n runInInjectionContext(injector, () =>\n createCell(cellParams, ...cellArgs),\n ),\n ),\n ),\n );\n if (column[cellKey]) {\n const columnCellValue$ = normalizeCell(\n field,\n column[cellKey],\n !!column?.child,\n )(...cellArgs);\n return combineLatest([cellValue$, columnCellValue$]).pipe(\n map(([a, b]) => Object.assign({}, a, b, { value: b?.value || a?.value })),\n );\n }\n return cellValue$;\n },\n };\n };\n}\n","import { MenuValue } from '../../value/components/menu-value.component';\n// TODO: hack\n// eslint-disable-next-line\nimport { Column } from '../types/column';\nimport { createColumn } from '../utils/create-column';\n\nexport const createMenuColumn = createColumn(\n (params: MenuValue['params']) => {\n return {\n type: 'menu',\n params,\n };\n },\n {\n field: 'menu',\n header: '',\n sticky: 'end',\n style: {\n padding: 0,\n width: '0',\n },\n },\n);\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\nimport { DialogSuperclass } from '../dialog';\n\n@Component({\n selector: 'v-action-dialog',\n templateUrl: 'confirm-dialog.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ConfirmDialogComponent extends DialogSuperclass<\n ConfirmDialogComponent,\n { title?: string; confirmLabel?: string; hasReason?: boolean; description?: string } | void,\n { reason?: string }\n> {\n control = new FormControl<string>('', { nonNullable: true });\n\n confirm() {\n this.closeWithSuccess(\n this.dialogData && this.dialogData?.hasReason\n ? { reason: this.control.value }\n : undefined,\n );\n }\n}\n","<v-dialog\n [noContent]=\"!(dialogData && (dialogData.hasReason || dialogData.description))\"\n [title]=\"dialogData?.['title'] ?? 'Confirm this action?'\"\n noCloseButton\n>\n @if (dialogData && dialogData.description) {\n <div class=\"mat-body-large\">\n {{ dialogData.description }}\n </div>\n }\n @if (dialogData && dialogData.hasReason) {\n <mat-form-field style=\"width: 100%\">\n <mat-label>Reason</mat-label>\n <input [formControl]=\"control\" matInput />\n </mat-form-field>\n }\n <v-dialog-actions>\n <button mat-button (click)=\"closeWithCancellation()\">Cancel</button>\n <button mat-flat-button (click)=\"confirm()\">\n {{ dialogData?.['confirmLabel'] || 'Confirm' }}\n </button>\n </v-dialog-actions>\n</v-dialog>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { DialogModule } from '../dialog';\n\nimport { ConfirmDialogComponent } from './confirm-dialog.component';\n\n@NgModule({\n imports: [\n MatDialogModule,\n MatButtonModule,\n DialogModule,\n MatFormFieldModule,\n CommonModule,\n MatInputModule,\n ReactiveFormsModule,\n ],\n declarations: [ConfirmDialogComponent],\n exports: [ConfirmDialogComponent],\n})\nexport class ConfirmDialogModule {}\n","import { Component } from '@angular/core';\n\nimport { DialogSuperclass } from '../../../dialog';\nimport { FiltersComponent } from '../../filters.component';\n\n@Component({\n selector: 'v-filters-dialog',\n templateUrl: './filters-dialog.component.html',\n styleUrls: ['./filters-dialog.component.scss'],\n standalone: false,\n})\nexport class FiltersDialogComponent extends DialogSuperclass<\n FiltersDialogComponent,\n { filters: FiltersComponent }\n> {\n get isShowMainFilters() {\n return (\n !this.dialogData.filters.otherFiltersDirective?.templateRef ||\n this.dialogData.filters.merge\n );\n }\n}\n","<v-dialog noActions title=\"Filters\">\n <div\n [ngClass]=\"[\n 'v-filters-dialog-cols-' +\n (isShowMainFilters ? (dialogData.filters.repeat$ | async) : 1),\n 'filters',\n ]\"\n >\n @if (isShowMainFilters) {\n <ng-container *ngTemplateOutlet=\"dialogData.filters.mainFiltersTemplate\"></ng-container>\n }\n @if (dialogData.filters.otherFiltersTemplate) {\n <div class=\"other-filters\">\n <ng-container\n *ngTemplateOutlet=\"dialogData.filters.otherFiltersTemplate\"\n ></ng-container>\n </div>\n }\n </div>\n</v-dialog>\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[vMainFilters]',\n standalone: false,\n})\nexport class MainFiltersDirective {\n constructor(public templateRef: TemplateRef<unknown>) {}\n}\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[vOtherFilters]',\n standalone: false,\n})\nexport class OtherFiltersDirective {\n constructor(public templateRef: TemplateRef<unknown>) {}\n}\n","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport {\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewChild,\n booleanAttribute,\n signal,\n} from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { BehaviorSubject, combineLatest } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { DialogService } from '../dialog';\n\nimport { FiltersDialogComponent } from './components/filters-dialog/filters-dialog.component';\nimport { MainFiltersDirective } from './components/main-filters/main-filters.directive';\nimport { OtherFiltersDirective } from './components/other-filters/other-filters.directive';\n\n@Component({\n selector: 'v-filters',\n templateUrl: './filters.component.html',\n styleUrls: ['./filters.component.scss'],\n standalone: false,\n})\nexport class FiltersComponent {\n @Input() active = 0;\n @Input({ transform: booleanAttribute }) merge = false;\n // TODO: to change from outside you need to change the logic and set $rows in two SCSS\n rows = signal(1);\n\n @Output() clear = new EventEmitter<void>();\n\n @ContentChild(TemplateRef, { static: true }) filtersTemplate!: TemplateRef<unknown>;\n @ContentChild(OtherFiltersDirective, { static: true })\n otherFiltersDirective!: OtherFiltersDirective;\n @ContentChild(MainFiltersDirective, { static: true })\n mainFiltersDirective!: MainFiltersDirective;\n\n @ViewChild('content') set content(content: ElementRef<HTMLElement>) {\n this.filtersCount$.next(content?.nativeElement?.children?.length ?? 0);\n }\n\n get mainFiltersTemplate() {\n return this.mainFiltersDirective?.templateRef ?? this.filtersTemplate;\n }\n\n get otherFiltersTemplate() {\n return this.otherFiltersDirective?.templateRef;\n }\n\n repeat$ = this.breakpointObserver.observe(Object.values(Breakpoints)).pipe(\n map((b) => {\n if (b.breakpoints[Breakpoints.XLarge]) {\n return 5;\n }\n if (b.breakpoints[Breakpoints.Large]) {\n return 4;\n }\n if (b.breakpoints[Breakpoints.Medium]) {\n return 3;\n }\n if (b.breakpoints[Breakpoints.Small]) {\n return 2;\n }\n return 1;\n }),\n );\n\n displayedFiltersCount$ = combineLatest([this.repeat$, toObservable(this.rows)]).pipe(\n map(([repeat, rows]) => repeat * rows),\n );\n filtersCount$ = new BehaviorSubject(0);\n\n constructor(\n private dialog: DialogService,\n private breakpointObserver: BreakpointObserver,\n ) {}\n\n open() {\n this.dialog.open(FiltersDialogComponent, { filters: this });\n }\n}\n","<mat-card>\n <mat-card-content #content [ngClass]=\"['v-filters-cols-' + (repeat$ | async), 'filters']\">\n <ng-container *ngTemplateOutlet=\"mainFiltersTemplate\"></ng-container>\n </mat-card-content>\n</mat-card>\n","import { Component, Input } from '@angular/core';\n\nimport { FiltersComponent } from '../../filters.component';\n\n@Component({\n selector: 'v-more-filters-button',\n templateUrl: './more-filters-button.component.html',\n styleUrls: ['./more-filters-button.component.scss'],\n standalone: false,\n})\nexport class MoreFiltersButtonComponent {\n @Input() filters!: FiltersComponent;\n}\n","<v-actions>\n @if (filters.active && filters.clear.observed) {\n <button mat-icon-button (click)=\"filters.clear.emit()\">\n <mat-icon [matBadge]=\"filters.active || undefined\" matBadgeColor=\"accent\"\n >restart_alt</mat-icon\n >\n </button>\n }\n @if (\n filters.otherFiltersDirective ||\n ((filters.filtersCount$ | async) ?? 0) - ((filters.displayedFiltersCount$ | async) ?? 0) > 0\n ) {\n <button mat-icon-button (click)=\"filters.open()\">\n <mat-icon>filter_alt</mat-icon>\n </button>\n }\n</v-actions>\n","import { LayoutModule } from '@angular/cdk/layout';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatBadgeModule } from '@angular/material/badge';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { ActionsModule } from '../actions';\nimport { DialogModule } from '../dialog';\n\nimport { FiltersDialogComponent } from './components/filters-dialog/filters-dialog.component';\nimport { MainFiltersDirective } from './components/main-filters/main-filters.directive';\nimport { MoreFiltersButtonComponent } from './components/more-filters-button/more-filters-button.component';\nimport { OtherFiltersDirective } from './components/other-filters/other-filters.directive';\nimport { FiltersComponent } from './filters.component';\n\n@NgModule({\n declarations: [\n FiltersComponent,\n MoreFiltersButtonComponent,\n FiltersDialogComponent,\n OtherFiltersDirective,\n MainFiltersDirective,\n ],\n exports: [\n FiltersComponent,\n MoreFiltersButtonComponent,\n OtherFiltersDirective,\n MainFiltersDirective,\n ],\n imports: [\n CommonModule,\n MatCardModule,\n MatButtonModule,\n MatIconModule,\n DialogModule,\n LayoutModule,\n ActionsModule,\n MatBadgeModule,\n ],\n})\nexport class FiltersModule {}\n","import { Component, Input, booleanAttribute } from '@angular/core';\nimport { NonNullableFormBuilder } from '@angular/forms';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { DateFnsAdapter, MAT_DATE_FNS_FORMATS } from '@angular/material-date-fns-adapter';\nimport { enGB } from 'date-fns/locale';\n\nimport { FormGroupSuperclass, createControlProviders } from '../../utils';\n\nimport { DateRange } from './types/date-range';\n\n@Component({\n selector: 'v-date-range-field',\n templateUrl: './date-range-field.component.html',\n styleUrls: ['./date-range-field.component.scss'],\n providers: [\n ...createControlProviders(() => DateRangeFieldComponent),\n { provide: MAT_DATE_LOCALE, useValue: enGB },\n { provide: DateAdapter, useClass: DateFnsAdapter, deps: [MAT_DATE_LOCALE] },\n { provide: MAT_DATE_FORMATS, useValue: MAT_DATE_FNS_FORMATS },\n ],\n standalone: false,\n})\nexport class DateRangeFieldComponent extends FormGroupSuperclass<Partial<DateRange>> {\n @Input({ transform: booleanAttribute }) required: boolean = false;\n\n control = this.fb.group<Partial<DateRange>>({\n start: undefined,\n end: undefined,\n });\n\n constructor(private fb: NonNullableFormBuilder) {\n super();\n }\n}\n","<mat-form-field>\n <mat-label>Date range</mat-label>\n <mat-date-range-input\n [formGroup]=\"control\"\n [rangePicker]=\"picker\"\n [required]=\"required || false\"\n >\n <input formControlName=\"start\" matStartDate placeholder=\"Start date\" />\n <input formControlName=\"end\" matEndDate placeholder=\"End date\" />\n </mat-date-range-input>\n <mat-datepicker-toggle [for]=\"picker\" matIconSuffix></mat-datepicker-toggle>\n <mat-date-range-picker #picker>\n <mat-date-range-picker-actions>\n <v-actions class=\"actions\">\n @if (!required) {\n <button\n [disabled]=\"!control.value?.start && !control.value?.end\"\n mat-button\n (click)=\"control.reset(); picker.close()\"\n >\n Reset\n </button>\n }\n <button mat-flat-button matDateRangePickerApply>Apply</button>\n </v-actions>\n </mat-date-range-picker-actions>\n </mat-date-range-picker>\n</mat-form-field>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { ActionsModule } from '../actions';\n\nimport { DateRangeFieldComponent } from './date-range-field.component';\n\n@NgModule({\n declarations: [DateRangeFieldComponent],\n imports: [\n CommonModule,\n MatDatepickerModule,\n MatInputModule,\n ReactiveFormsModule,\n MatButtonModule,\n ActionsModule,\n ],\n exports: [DateRangeFieldComponent],\n})\nexport class DateRangeFieldModule {}\n","import { isEqual } from 'date-fns';\n\nimport { DateRange } from '../types/date-range';\n\nexport function isEqualDateRange(a: DateRange, b: DateRange) {\n if (!a || !b) {\n return a === b;\n }\n return isEqual(a.start, b.start) && isEqual(a.end, b.end);\n}\n","import { endOfDay, startOfDay, subDays } from 'date-fns';\n\nimport { DateRange } from '../types/date-range';\n\nexport function createDateRangeToToday(minDays: number = 1): DateRange {\n return {\n /**\n * If we take the beginning of the previous day to the end of the current one,\n * then it is guaranteed that there will be an interval of one day,\n * as a maximum of two days\n */\n start: subDays(startOfDay(new Date()), minDays),\n end: endOfDay(new Date()),\n };\n}\n","import { Component, Input } from '@angular/core';\nimport { NonNullableFormBuilder } from '@angular/forms';\n\nimport { FormGroupSuperclass, createControlProviders } from '../../utils';\n\nexport type NumberRange = {\n start?: number;\n end?: number;\n};\n\n@Component({\n selector: 'v-number-range-field',\n templateUrl: './number-range-field.component.html',\n styleUrls: ['./number-range-field.component.scss'],\n providers: createControlProviders(() => NumberRangeFieldComponent),\n standalone: false,\n})\nexport class NumberRangeFieldComponent extends FormGroupSuperclass<NumberRange> {\n @Input() label!: string;\n\n control = this.fb.group<NumberRange>({\n start: undefined,\n end: undefined,\n });\n\n constructor(private fb: NonNullableFormBuilder) {\n super();\n }\n}\n","<div [formGroup]=\"control\" class=\"wrapper\">\n <mat-form-field>\n <mat-label>{{ label }} from</mat-label>\n <input formControlName=\"start\" matInput type=\"number\" />\n </mat-form-field>\n <mat-form-field>\n <mat-label>{{ label }} to</mat-label>\n <input formControlName=\"end\" matInput type=\"number\" />\n </mat-form-field>\n</div>\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { NumberRangeFieldComponent } from './number-range-field.component';\n\n@NgModule({\n declarations: [NumberRangeFieldComponent],\n imports: [ReactiveFormsModule, MatInputModule],\n exports: [NumberRangeFieldComponent],\n})\nexport class NumberRangeFieldModule {}\n","import { Component, Input } from '@angular/core';\nimport { map, shareReplay } from 'rxjs/operators';\n\nimport {\n FormControlSuperclass,\n createControlProviders,\n getValueChanges,\n splitBySeparators,\n} from '../../utils';\n\n@Component({\n selector: 'v-list-field',\n templateUrl: './list-field.component.html',\n providers: createControlProviders(() => ListFieldComponent),\n standalone: false,\n})\nexport class ListFieldComponent extends FormControlSuperclass<string[], string> {\n @Input() label?: string;\n @Input() focusedHint?: string;\n\n items$ = getValueChanges(this.control).pipe(\n map((v) => this.getValue(v)),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n protected override innerToOuterValue(inner: string): string[] {\n return this.getValue(inner);\n }\n\n protected override outerToInnerValue(outer: string[]): string {\n return (outer || []).join(', ');\n }\n\n private getValue(inner: string = this.control.value) {\n return splitBySeparators(inner || '');\n }\n}\n","<mat-form-field style=\"width: 100%\">\n <mat-label>{{ label }}</mat-label>\n <input #input=\"matInput\" [formControl]=\"control\" autocomplete=\"false\" matInput type=\"string\" />\n <mat-hint class=\"mat-secondary-text\">{{\n (items$ | async)?.length\n ? (items$ | async)?.length === 1\n ? '1 item'\n : (items$ | async)?.length + ' items'\n : input.focused\n ? focusedHint || 'item_1, item_2'\n : ''\n }}</mat-hint>\n</mat-form-field>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { ListFieldComponent } from './list-field.component';\n\n@NgModule({\n declarations: [ListFieldComponent],\n exports: [ListFieldComponent],\n imports: [CommonModule, MatInputModule, ReactiveFormsModule],\n})\nexport class ListFieldModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n templateUrl: 'error-page.component.html',\n styleUrls: ['error-page.component.scss'],\n standalone: false,\n})\nexport class ErrorPageComponent {}\n","<div class=\"error\">\n <div class=\"mat-display-small title\">\n <mat-icon>error</mat-icon>\n <div>Page not found</div>\n </div>\n <h2 class=\"mat-headline-small mat-secondary-text\">\n This page doesn't exist<br />or no permission to access this page\n </h2>\n</div>\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\n\nimport { ErrorPageComponent } from './error-page.component';\n\nconst ROUTES: Routes = [{ path: '', component: ErrorPageComponent }];\n\n@NgModule({\n imports: [RouterModule.forChild(ROUTES)],\n exports: [RouterModule],\n})\nexport class ErrorPageRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { ErrorPageRoutingModule } from './error-page-routing.module';\nimport { ErrorPageComponent } from './error-page.component';\n\n@NgModule({\n imports: [ErrorPageRoutingModule, MatIconModule],\n declarations: [ErrorPageComponent],\n})\nexport class ErrorPageModule {}\n","import { Option } from '../types';\n\nexport function isSearchOption<T>(option: Option<T>, termLowerCase: string) {\n return (\n !!String(option.value)?.toLowerCase().includes?.(termLowerCase) ||\n !!option.label?.toLowerCase()?.includes(termLowerCase) ||\n !!option.description?.toLowerCase().includes?.(termLowerCase)\n );\n}\n\nexport function searchOptions<T>(options: Option<T>[], term: string) {\n const termLowerCase = term.toLowerCase();\n return options?.filter?.((option) => isSearchOption(option, termLowerCase));\n}\n","import { Option } from '../types';\n\nexport function findOptionByValue<T>(options: Option<T>[], value: T) {\n return options?.find?.((o) => o.value === value);\n}\n","import isNil from 'lodash-es/isNil';\n\nimport { Option } from '../types';\n\nimport { findOptionByValue } from './find-option-by-value';\n\nexport function getHintText<T>(\n options: Option<T>[],\n selected: T[],\n hint?: string,\n opts: { multiple?: boolean; showLabel?: boolean } = {},\n) {\n if (!isNil(hint)) {\n return hint;\n }\n if (opts.multiple && options?.length > 1) {\n return (selected?.length || 0) + '/' + options.length;\n }\n if (!selected?.length) {\n return '';\n }\n const option = findOptionByValue(options, selected[0]);\n return opts.showLabel ? option?.label : option?.description;\n}\n","import { Component, EventEmitter, Input, Output, booleanAttribute } from '@angular/core';\nimport { MatFormFieldAppearance } from '@angular/material/form-field';\n\nimport { FormControlSuperclass, createControlProviders } from '../../../utils';\nimport { Option } from '../types';\nimport { isSearchOption } from '../utils';\nimport { getHintText } from '../utils/get-hint-text';\n\n@Component({\n selector: 'v-select-field',\n templateUrl: './select-field.component.html',\n styleUrls: ['./select-field.component.scss'],\n providers: createControlProviders(() => SelectFieldComponent),\n standalone: false,\n})\nexport class SelectFieldComponent<T = unknown> extends FormControlSuperclass<T[]> {\n @Input() options: Option<T>[] = [];\n @Output() searchChange = new EventEmitter<string>();\n\n @Input() appearance: MatFormFieldAppearance = 'fill';\n\n @Input() label?: string;\n @Input() hint?: string;\n @Input() error?: string;\n @Input() progress = false;\n\n @Input({ transform: booleanAttribute }) externalSearch = false;\n @Input({ transform: booleanAttribute }) multiple = false;\n @Input({ transform: booleanAttribute }) required = false;\n\n @Input() size?: 'small' | '';\n\n searchStr: string = '';\n\n get hintText() {\n return getHintText(\n this.options,\n this.multiple ? this.control.value : [this.control.value as T],\n this.hint,\n {\n multiple: this.multiple,\n },\n );\n }\n\n search = (term: string, item: Option<T>) => {\n return this.externalSearch || isSearchOption(item, term.toLowerCase());\n };\n}\n","<mat-form-field [appearance]=\"appearance\" [ngClass]=\"{ 'v-input-field__small': size === 'small' }\">\n <mat-label>{{ label }}</mat-label>\n\n <mtx-select\n [closeOnSelect]=\"!multiple\"\n [formControl]=\"control\"\n [items]=\"options\"\n [loading]=\"progress\"\n [markFirst]=\"true\"\n [multiple]=\"multiple\"\n [notFoundText]=\"externalSearch && !searchStr ? 'Enter your search term' : 'No items found'\"\n [required]=\"required\"\n [searchable]=\"true\"\n [searchFn]=\"search\"\n [selectableGroup]=\"true\"\n [selectableGroupAsModel]=\"false\"\n bindLabel=\"label\"\n bindValue=\"value\"\n groupBy=\"type\"\n (clear)=\"searchChange.emit(''); searchStr = ''\"\n (search)=\"searchChange.emit($event.term); searchStr = $event.term\"\n >\n <ng-template let-index=\"index\" let-item=\"item\" let-item$=\"item$\" ng-optgroup-tmp>\n <mat-checkbox\n *ngIf=\"multiple; else text\"\n [ngModel]=\"item$.selected\"\n class=\"checkbox-option\"\n id=\"item-{{ index }}\"\n >\n {{ item.type | uppercase }}\n </mat-checkbox>\n <ng-template #text>\n {{ item.type | uppercase }}\n </ng-template>\n </ng-template>\n <ng-template let-index=\"index\" let-item=\"item\" let-item$=\"item$\" ng-option-tmp>\n <mat-checkbox\n *ngIf=\"multiple; else text\"\n [ngModel]=\"item$.selected\"\n class=\"checkbox-option\"\n id=\"item-{{ index }}\"\n >\n <ng-container *ngTemplateOutlet=\"text\"></ng-container>\n </mat-checkbox>\n <ng-template #text>\n <div class=\"label\">{{ item.label }}</div>\n <div\n *ngIf=\"item.description\"\n class=\"description mat-label-medium mat-secondary-text\"\n >\n {{ item.description }}\n </div>\n </ng-template>\n </ng-template>\n </mtx-select>\n\n <mat-hint>{{ hintText }}</mat-hint>\n <mat-error>{{ error }}</mat-error>\n</mat-form-field>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatInputModule } from '@angular/material/input';\nimport { MtxSelectModule } from '@ng-matero/extensions/select';\n\nimport { SelectFieldComponent } from './select-field.component';\n\n@NgModule({\n declarations: [SelectFieldComponent],\n exports: [SelectFieldComponent],\n imports: [\n CommonModule,\n MatInputModule,\n MtxSelectModule,\n FormsModule,\n ReactiveFormsModule,\n MatCheckboxModule,\n ],\n})\nexport class SelectFieldModule {}\n","import { Component, Input, OnChanges, booleanAttribute } from '@angular/core';\nimport { BehaviorSubject, merge } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\n\nimport { ComponentChanges, FormControlSuperclass, createControlProviders } from '../../../utils';\nimport { Option } from '../types';\nimport { searchOptions } from '../utils';\nimport { getHintText } from '../utils/get-hint-text';\n\n@Component({\n selector: 'v-autocomplete-field',\n templateUrl: './autocomplete-field.component.html',\n styleUrls: ['./autocomplete-field.component.scss'],\n providers: createControlProviders(() => AutocompleteFieldComponent),\n standalone: false,\n})\nexport class AutocompleteFieldComponent<T> extends FormControlSuperclass<T> implements OnChanges {\n @Input() options: Option<T>[] = [];\n\n @Input() label?: string;\n @Input() hint?: string;\n @Input() error?: string;\n @Input() type = 'text';\n\n @Input({ transform: booleanAttribute }) mono = false;\n @Input({ transform: booleanAttribute }) required = false;\n\n get hintText() {\n return getHintText(this.options, [this.control.value], this.hint, { showLabel: true });\n }\n\n options$ = new BehaviorSubject<Option<T>[]>([]);\n selected$ = merge(this.control.valueChanges, this.options$).pipe(\n map(() => (this.options || []).find((o) => o.value === this.control.value)),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n filteredOptions$ = merge(this.control.valueChanges, this.options$).pipe(\n map(() => String(this.control.value ?? '').toLowerCase()),\n map((filter) => searchOptions(this.options, filter)),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n override ngOnChanges(changes: ComponentChanges<AutocompleteFieldComponent<T>>) {\n super.ngOnChanges(changes);\n if (changes.options) {\n this.options$.next(this.options || []);\n }\n }\n}\n","<mat-form-field style=\"width: 100%\">\n <mat-label>{{ label }}</mat-label>\n\n <input\n #trigger=\"matAutocompleteTrigger\"\n [formControl]=\"control\"\n [matAutocomplete]=\"auto\"\n [ngClass]=\"{ 'mat-mono': mono }\"\n [required]=\"required\"\n [type]=\"options?.length ? 'text' : type\"\n matInput\n />\n\n <mat-autocomplete #auto=\"matAutocomplete\" autoActiveFirstOption>\n @for (option of filteredOptions$ | async; track option) {\n <mat-option [value]=\"option.value\">\n <div [ngClass]=\"{ 'mat-mono': mono }\" class=\"label\">{{ option.label }}</div>\n @if (option.description) {\n <div\n [ngClass]=\"{ 'mat-mono': mono }\"\n class=\"description mat-label-medium mat-secondary-text\"\n >\n {{ option.description }}\n </div>\n }\n </mat-option>\n }\n </mat-autocomplete>\n\n <div matSuffix style=\"display: flex; gap: 4px\">\n @if (control.value) {\n <button mat-icon-button (click)=\"control.reset(); $event.stopPropagation()\">\n <mat-icon>clear</mat-icon>\n </button>\n }\n @if (options?.length) {\n <button\n mat-icon-button\n (click)=\"\n auto.isOpen ? trigger.closePanel() : trigger.openPanel();\n $event.stopPropagation()\n \"\n >\n <mat-icon>{{ auto.isOpen ? 'expand_less' : 'expand_more' }}</mat-icon>\n </button>\n }\n </div>\n <mat-hint>{{ hintText }}</mat-hint>\n <mat-error>{{\n error ??\n ((selected$ | async) ? (selected$ | async)?.label + (hint ? ' | ' + hint : '') : hint)\n }}</mat-error>\n</mat-form-field>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { AutocompleteFieldComponent } from './autocomplete-field.component';\n\n@NgModule({\n declarations: [AutocompleteFieldComponent],\n exports: [AutocompleteFieldComponent],\n imports: [\n CommonModule,\n MatInputModule,\n FormsModule,\n ReactiveFormsModule,\n MatAutocompleteModule,\n MatButtonModule,\n MatIconModule,\n ],\n})\nexport class AutocompleteFieldModule {}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { lastValueFrom } from 'rxjs';\n\n@Injectable()\nexport class ConfigServiceSuperclass<T> {\n config!: T;\n\n constructor(private http: HttpClient) {}\n\n async init({ configUrl }: { configUrl: string }): Promise<void> {\n this.config = await lastValueFrom(this.http.get<T>(configUrl));\n }\n}\n","import isObject from 'lodash-es/isObject';\n\nexport const DEFAULT_ERROR_NAME = 'Unknown error';\n\nexport class LogError {\n source!: Record<PropertyKey, unknown>;\n\n get name() {\n return String(this.source?.['name'] || DEFAULT_ERROR_NAME);\n }\n\n get message() {\n return String(this.source?.['message'] || this.name);\n }\n\n get cause() {\n return this.source?.['cause'];\n }\n\n get details() {\n return Object.fromEntries(\n Object.entries(this.source).filter(([k, v]) => k !== 'name' && k !== 'message' && v),\n );\n }\n\n constructor(error: unknown) {\n this.source = (isObject(error)\n ? error\n : new Error(\n error ? String(error) : DEFAULT_ERROR_NAME,\n )) as unknown as LogError['source'];\n }\n\n getLogMessage(message?: string) {\n return [\n message && `Caught error: ${message}`,\n this.name && `Name: ${this.name}`,\n this.message && `Message: ${this.message}`,\n Object.keys(this.details).length && JSON.stringify(this.details, null, 2),\n ]\n .filter(Boolean)\n .join('\\n');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { capitalize } from 'lodash-es';\nimport { Observer, first, timeout } from 'rxjs';\n\nimport { PossiblyAsync, getPossiblyAsyncObservable } from '../../utils';\n\nimport { DEFAULT_ERROR_NAME, LogError } from './log-error';\nimport { Operation } from './types/operation';\n\nconst DEFAULT_DURATION_MS = 3_000;\nconst DEFAULT_ERROR_DURATION_MS = 10_000;\nconst DEFAULT_TIMEOUT_MS = 10_000;\n\n@Injectable({ providedIn: 'root' })\nexport class NotifyLogService {\n constructor(private snackBar: MatSnackBar) {}\n\n success = (message: PossiblyAsync<string> = 'Completed successfully'): void => {\n this.notify(message);\n };\n\n error = (errors: unknown | unknown[], message?: PossiblyAsync<string>): void => {\n const logErrors = (Array.isArray(errors) ? errors : [errors]).map((e) => new LogError(e));\n message = message || (logErrors.length === 1 ? logErrors[0].message : DEFAULT_ERROR_NAME);\n this.subscribeWithTimeout(message, (msg) => {\n console.warn(\n [`Caught error: ${msg}.`, ...logErrors.map((e) => e.getLogMessage())].join('\\n'),\n );\n });\n this.notify(message, DEFAULT_ERROR_DURATION_MS);\n };\n\n createErrorOperation(operation: Operation, objectName: string) {\n return (err: unknown) => this.errorOperation(err, operation, objectName);\n }\n\n successOperation(operation: Operation, objectName: string): void {\n let message!: string;\n switch (operation) {\n case 'create':\n message = `${capitalize(objectName)} created successfully`;\n break;\n case 'receive':\n message = `${capitalize(objectName)} received successfully`;\n break;\n case 'update':\n message = `${capitalize(objectName)} updated successfully`;\n break;\n case 'delete':\n message = `${capitalize(objectName)} deleted successfully`;\n break;\n }\n this.success(message);\n }\n\n errorOperation(errors: unknown | unknown[], operation: Operation, objectName: string) {\n let message!: string;\n switch (operation) {\n case 'create':\n message = `Error creating ${objectName}`;\n break;\n case 'receive':\n message = `Error retrieving ${objectName}`;\n break;\n case 'update':\n message = `Error updating ${objectName}`;\n break;\n case 'delete':\n message = `Error deleting ${objectName}`;\n break;\n }\n this.error(errors, message);\n }\n\n private notify(message: PossiblyAsync<string>, duration = DEFAULT_DURATION_MS) {\n this.subscribeWithTimeout(message, {\n next: (msg) => {\n this.snackBar.open(msg, 'OK', {\n duration,\n });\n },\n error: () => {\n // TODO: Default message\n },\n });\n }\n\n private subscribeWithTimeout<T>(\n possiblyAsync: PossiblyAsync<T>,\n subscribe: Partial<Observer<T>> | Observer<T>['next'],\n ) {\n getPossiblyAsyncObservable(possiblyAsync)\n .pipe(first(), timeout(DEFAULT_TIMEOUT_MS))\n .subscribe(subscribe);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\n\nimport { NotifyLogService } from './notify-log.service';\n\n@NgModule({\n imports: [MatSnackBarModule],\n providers: [NotifyLogService],\n})\nexport class LogModule {}\n","import {\n BehaviorSubject,\n Observable,\n Subject,\n concat,\n defer,\n map,\n mergeScan,\n race,\n skip,\n skipWhile,\n take,\n takeUntil,\n tap,\n} from 'rxjs';\nimport { delay, shareReplay, startWith } from 'rxjs/operators';\n\nimport { inProgressFrom, progressTo } from '../../utils';\n\nexport interface Action<TParams> {\n type: 'load' | 'reload' | 'more' | 'init';\n params?: TParams;\n size?: number;\n}\n\nexport interface FetchResult<TResultItem, TContinuationToken = string> {\n result: TResultItem[];\n continuationToken?: TContinuationToken;\n}\n\nexport interface FetchOptions<TContinuationToken = string> {\n size: number;\n continuationToken?: TContinuationToken;\n}\n\nexport interface LoadOptions {\n size?: number;\n}\n\nexport interface Accumulator<TResultItem, TParams, TContinuationToken> {\n result: TResultItem[];\n size: number;\n params?: TParams;\n continuationToken?: TContinuationToken;\n}\n\nconst DEFAULT_SIZE = 25;\n\nexport abstract class FetchSuperclass<TResultItem, TParams = void, TContinuationToken = string> {\n result$ = defer(() => this.state$).pipe(map(({ result }) => result));\n hasMore$ = defer(() => this.state$).pipe(map(({ continuationToken }) => !!continuationToken));\n isLoading$ = inProgressFrom(\n () => this.progress$,\n () => this.state$,\n );\n\n private fetch$ = new BehaviorSubject<Action<TParams>>({ type: 'init' });\n private progress$ = new BehaviorSubject(0);\n private state$ = defer(() => {\n const resAction$ = this.fetch$.pipe(skipWhile((action) => action.type !== 'load'));\n return race(\n concat(resAction$.pipe(take(1), delay(1000)), resAction$),\n resAction$.pipe(skip(1)),\n );\n }).pipe(\n tap((action) => {\n if (action.type === 'load') {\n this.skipPrevious$.next(true);\n }\n }),\n mergeScan<Action<TParams>, Accumulator<TResultItem, TParams, TContinuationToken>>(\n (acc, action) => {\n const params = (action.type === 'load' ? action.params : acc.params) as TParams;\n const size = action.size ?? acc.size;\n const continuationToken =\n action.type === 'more' ? acc.continuationToken : undefined;\n return this.fetch(params, { size, continuationToken }).pipe(\n ...((action.type === 'load'\n ? ([\n startWith({\n params,\n result: [],\n size,\n continuationToken: undefined,\n }),\n ] as unknown)\n : []) as []),\n map(({ result, continuationToken }) => ({\n params,\n result:\n action.type === 'load' || action.type === 'reload'\n ? result\n : [...(acc.result ?? []), ...result],\n size,\n continuationToken,\n })),\n progressTo(this.progress$),\n takeUntil(this.skipPrevious$),\n );\n },\n {\n size: DEFAULT_SIZE,\n result: [],\n },\n 1,\n ),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n private skipPrevious$ = new Subject<boolean>();\n\n load(params: TParams, options: LoadOptions = {}): void {\n this.fetch$.next({ type: 'load', params, size: options.size });\n }\n\n reload(options: LoadOptions = {}): void {\n this.fetch$.next({ type: 'reload', size: options.size });\n }\n\n more(): void {\n this.fetch$.next({ type: 'more' });\n }\n\n protected abstract fetch(\n params: TParams,\n options: FetchOptions<TContinuationToken>,\n ): Observable<FetchResult<TResultItem, TContinuationToken>>;\n}\n\nexport abstract class SingleFetchSuperclass<TResultItem, TParams = void> extends FetchSuperclass<\n TResultItem,\n TParams,\n never\n> {\n override more: () => never = () => undefined as never;\n}\n","import { DateRange } from '@angular/material/datepicker';\n\nimport { Serializer } from '../types/serializer';\n\nexport const DATE_QUERY_PARAMS_SERIALIZERS: Serializer[] = [\n {\n id: 'date',\n serialize: (date: Date) => date?.toISOString(),\n deserialize: (value) => new Date(value),\n recognize: (value) => value instanceof Date,\n },\n {\n id: 'dateRange',\n serialize: ({ start, end }: DateRange<Date>) =>\n `${start?.toISOString()}|${end?.toISOString()}`,\n deserialize: (value) => {\n const [start, end] = value.split('|').map((p) => (p ? new Date(p) : null));\n return { start, end };\n },\n recognize: (value) => {\n if (typeof value !== 'object') {\n return false;\n }\n const { start, end, ...other } = value as DateRange<Date>;\n if (Object.keys(other).length) {\n return false;\n }\n return start instanceof Date || end instanceof Date;\n },\n },\n] as Serializer[];\n","import { InjectionToken } from '@angular/core';\n\nimport { Serializer } from '../types/serializer';\n\nexport const QUERY_PARAMS_SERIALIZERS = new InjectionToken<Serializer[]>(\n 'query params serializers',\n);\n","import { Serializer } from '../types/serializer';\n\nexport function deserializeQueryParam<P>(value: string, serializers: Serializer[] = []): P {\n const serializer = serializers\n .sort((a, b) => b.id.length - a.id.length)\n .find((s) => value.startsWith(s.id));\n return (\n serializer\n ? serializer.deserialize(value.slice(serializer.id.length))\n : JSON.parse(value || '')\n ) as P;\n}\n","import { Serializer } from '../types/serializer';\n\nexport function serializeQueryParam(value: unknown, serializers: Serializer[] = []): string {\n const serializer = serializers\n .sort((a, b) => b.id.length - a.id.length)\n .find((s) => s.recognize(value));\n return serializer ? serializer.id + serializer.serialize(value) : JSON.stringify(value);\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { ActivatedRoute, Params, Router } from '@angular/router';\nimport isEqual from 'lodash-es/isEqual';\nimport negate from 'lodash-es/negate';\nimport { Observable, concat, defer, skipWhile, take } from 'rxjs';\nimport { distinctUntilChanged, map, shareReplay, startWith } from 'rxjs/operators';\n\nimport { isEmpty } from '../../utils';\n\nimport { Serializer } from './types/serializer';\nimport { QUERY_PARAMS_SERIALIZERS } from './utils';\nimport { deserializeQueryParam } from './utils/deserialize-query-param';\nimport { serializeQueryParam } from './utils/serialize-query-param';\n\ninterface SerializeOptions {\n filter?: (param: unknown, key: string) => boolean;\n}\n\ninterface SetOptions extends SerializeOptions {\n isPatch?: boolean;\n}\n\ninterface SourceParams {\n main: Params;\n namespaces: Record<string, string>;\n}\n\ninterface BaseQueryParams<T extends object> {\n params$: Observable<Partial<T>>;\n params: Partial<T>;\n set: (params: T, options?: SerializeOptions) => Promise<boolean>;\n patch: (params: Partial<T>, options?: SerializeOptions) => Promise<boolean>;\n}\n\nexport interface QueryParamsNamespace<T extends object> extends BaseQueryParams<T> {\n destroy: () => void;\n}\n\nconst NS_PARAM_PREFIX = '__';\n\n@Injectable({ providedIn: 'root' })\nexport class QueryParamsService<P extends object = NonNullable<unknown>>\n implements BaseQueryParams<P>\n{\n params$: Observable<P> = defer(() => this.sourceParams$).pipe(\n map(({ main }) => main),\n distinctUntilChanged(isEqual),\n map((params) => this.deserialize(params)),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n get params(): P {\n return this.deserialize(this.getSourceParams().main);\n }\n\n private sourceParams$: Observable<SourceParams> = concat(\n this.router.events.pipe(\n startWith(null),\n skipWhile(() => !this.router.navigated),\n map(() => this.route.snapshot.queryParams),\n take(1),\n ),\n this.route.queryParams,\n ).pipe(\n distinctUntilChanged(isEqual),\n map((p) => this.getSourceParams(p)),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n constructor(\n private router: Router,\n private route: ActivatedRoute,\n @Optional() @Inject(QUERY_PARAMS_SERIALIZERS) private readonly serializers?: Serializer[],\n ) {\n if (!this.serializers) {\n this.serializers = [];\n }\n }\n\n async set(params: P, options: SerializeOptions = {}): Promise<boolean> {\n return await this.setParams(params, undefined, options);\n }\n\n async patch(params: Partial<P>, options: SerializeOptions = {}): Promise<boolean> {\n return await this.setParams(params, undefined, { ...options, isPatch: true });\n }\n\n createNamespace<TNamespaceParams extends object>(\n ns: string,\n ): QueryParamsNamespace<TNamespaceParams> {\n const getNamespaceSourceParams = (sourceParams = this.getSourceParams()): Partial<string> =>\n sourceParams.namespaces[NS_PARAM_PREFIX + ns];\n const getNamespaceParams = (): Partial<TNamespaceParams> =>\n this.deserializeNamespace(getNamespaceSourceParams());\n return {\n params$: this.sourceParams$.pipe(\n map((sourceParams) => getNamespaceSourceParams(sourceParams)),\n distinctUntilChanged(isEqual),\n map((params) => this.deserializeNamespace(params)),\n shareReplay({ refCount: true, bufferSize: 1 }),\n ),\n get params() {\n return getNamespaceParams();\n },\n set: async (params, options = {}): Promise<boolean> => {\n return await this.setParams(params, ns, options);\n },\n patch: async (params, options = {}): Promise<boolean> => {\n return await this.setParams(params, ns, { ...options, isPatch: true });\n },\n destroy: async () => {\n await this.setParams({}, ns);\n },\n };\n }\n\n private async setParams<TParams extends object>(\n params: Partial<TParams>,\n ns?: string,\n options: SetOptions = {},\n ): Promise<boolean> {\n const sourceParams = this.getSourceParams();\n let queryParams: Params;\n if (ns) {\n const nsKey = NS_PARAM_PREFIX + ns;\n const serializedNamespace = this.serializeNamespace(\n Object.assign(\n {},\n options.isPatch && this.deserializeNamespace(sourceParams.namespaces[nsKey]),\n params,\n ),\n );\n const otherNamespaces = sourceParams.namespaces;\n delete otherNamespaces[nsKey];\n queryParams = Object.assign(\n {},\n sourceParams.main,\n otherNamespaces,\n !!serializedNamespace && { [nsKey]: serializedNamespace },\n );\n } else {\n queryParams = Object.assign(\n {},\n options.isPatch && sourceParams.main,\n this.serialize(params),\n sourceParams.namespaces,\n );\n }\n return await this.router.navigate([], { queryParams });\n }\n\n private getSourceParams(source: Params = this.route.snapshot.queryParams): SourceParams {\n return Object.entries(source).reduce(\n (acc, [k, v]) => {\n if (k.startsWith(NS_PARAM_PREFIX)) {\n acc.namespaces[k] = v;\n } else {\n acc.main[k] = v;\n }\n return acc;\n },\n { main: {}, namespaces: {} } as SourceParams,\n );\n }\n\n private serialize(params: object, options: SerializeOptions = {}): Params {\n const filter = options.filter ?? negate(isEmpty);\n return Object.entries(params).reduce((acc, [k, v]) => {\n if (filter(v, k)) {\n acc[k] = serializeQueryParam(v, this.serializers);\n }\n return acc;\n }, {} as Params);\n }\n\n private deserialize(params: Params): P {\n if (!params) {\n return {} as P;\n }\n return Object.entries(params).reduce((acc, [k, v]) => {\n try {\n acc[k as keyof P] = deserializeQueryParam<P[keyof P]>(v, this.serializers);\n } catch (err) {\n console.error(err);\n }\n return acc;\n }, {} as P);\n }\n\n private serializeNamespace<TNamespaceParams extends object>(params?: TNamespaceParams): string {\n return params && Object.keys(params).length ? JSON.stringify(params) : '';\n }\n\n private deserializeNamespace<TNamespaceParams extends object>(\n strParams?: string,\n ): TNamespaceParams {\n return strParams ? JSON.parse(strParams) : {};\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { QueryParamsService } from './query-params.service';\nimport { DATE_QUERY_PARAMS_SERIALIZERS } from './utils/date-query-params-serializers';\nimport { QUERY_PARAMS_SERIALIZERS } from './utils/query-params-serializers';\n\n@NgModule({\n providers: [\n { provide: QUERY_PARAMS_SERIALIZERS, useValue: DATE_QUERY_PARAMS_SERIALIZERS },\n QueryParamsService,\n ],\n})\nexport class QueryParamsModule {}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { distinctUntilChanged, filter, map, shareReplay, startWith } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UrlService {\n url$ = this.router.events.pipe(\n startWith(null),\n map(() => this.url),\n filter((url) => this.router.navigated || (!!url && url !== '/')),\n distinctUntilChanged(),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n path$ = this.url$.pipe(\n map(() => this.path),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n get url() {\n return this.router.url && this.router.url !== '/'\n ? this.router.url.split('?', 1)[0].split('#', 1)[0]\n : window.location.pathname;\n }\n\n get path() {\n return this.url?.split('/')?.slice(1) ?? [];\n }\n\n constructor(private router: Router) {}\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { NotifyLogService } from '../../services';\n\nfunction hasExtension(fileName: string, extensions: string[]) {\n return (\n !extensions?.length ||\n new RegExp('(' + extensions.join('|').replace(/\\./g, '\\\\.') + ')$').test(fileName)\n );\n}\n\n@Component({\n selector: 'v-file-upload',\n templateUrl: './file-upload.component.html',\n styleUrls: ['./file-upload.component.scss'],\n standalone: false,\n})\nexport class FileUploadComponent {\n @Input() label?: string;\n @Input() extensions: string[] = [];\n\n @Output() upload = new EventEmitter<File | null>();\n\n protected file?: File | null;\n\n constructor(private log: NotifyLogService) {}\n\n loadFile(event: Event) {\n const file = (event.target as HTMLInputElement)?.files?.[0] ?? null;\n if (!file) {\n this.log.error(new Error('File upload error'));\n return;\n }\n if (!hasExtension(file.name, this.extensions)) {\n this.log.error(new Error(`Supported file types: ${this.extensions.join(', ')}`));\n return;\n }\n this.file = file;\n this.upload.emit(this.file);\n }\n}\n","<div class=\"wrapper\">\n <button mat-button type=\"button\" (click)=\"fileInput.click()\">\n {{ label ?? 'Choose File' }}\n </button>\n\n <div class=\"mat-body-medium mat-secondary-text mat-no-margin\">\n {{ file?.name }}\n </div>\n</div>\n\n<input #fileInput hidden type=\"file\" (change)=\"loadFile($event)\" />\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { FileUploadComponent } from './file-upload.component';\n\n@NgModule({\n declarations: [FileUploadComponent],\n exports: [FileUploadComponent],\n imports: [CommonModule, MatButtonModule],\n})\nexport class FileUploadModule {}\n","import { Observable } from 'rxjs';\n\nimport { Nil } from '../../../utils';\n\nexport function loadFileContent(file: File | Nil, encoding = 'utf-8'): Observable<string> {\n return new Observable((subscriber) => {\n if (!file) {\n return undefined;\n }\n const read = new FileReader();\n read.readAsText(file, encoding);\n read.onloadend = function () {\n if (read.error) {\n return subscriber.error(read.error);\n } else {\n subscriber.next((read.result as string) || '');\n }\n subscriber.complete();\n };\n });\n}\n","import { Component, Input, booleanAttribute } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\nimport { DateFnsAdapter, MAT_DATE_FNS_FORMATS } from '@angular/material-date-fns-adapter';\nimport { FormComponentSuperclass } from '@s-libs/ng-core';\nimport { format, isValid } from 'date-fns';\nimport { enGB } from 'date-fns/locale';\n\nimport {\n createControlProviders,\n createDateFromNoTimeZoneString,\n getNoTimeZoneIsoString,\n} from '../../utils';\n\n@Component({\n selector: 'v-datetime-field',\n templateUrl: './datetime-field.component.html',\n styleUrls: ['datetime-field.component.scss'],\n providers: [\n ...createControlProviders(() => DatetimeFieldComponent),\n { provide: MAT_DATE_LOCALE, useValue: enGB },\n { provide: DateAdapter, useClass: DateFnsAdapter, deps: [MAT_DATE_LOCALE] },\n { provide: MAT_DATE_FORMATS, useValue: MAT_DATE_FNS_FORMATS },\n ],\n standalone: false,\n})\nexport class DatetimeFieldComponent extends FormComponentSuperclass<string> {\n @Input() label?: string;\n @Input({ transform: booleanAttribute }) required = false;\n @Input() hint?: string;\n\n datetime?: Date | null;\n\n get time() {\n return this.datetime ? format(this.datetime, 'HH:mm') : '';\n }\n\n handleIncomingValue(value: string) {\n this.datetime = value ? createDateFromNoTimeZoneString(value) : null;\n }\n\n timeChanged(event: Event) {\n const [hours, minutes] = (event.target as HTMLInputElement).value.split(':');\n if (!this.datetime) {\n this.datetime = new Date();\n }\n this.datetime.setHours(Number(hours));\n this.datetime.setMinutes(Number(minutes));\n this.datetime.setSeconds(0);\n this.datetime.setMilliseconds(0);\n this.emitValue();\n }\n\n dateChanged(date: MatDatepickerInputEvent<Date>) {\n const v = date.target.value || new Date();\n if (this.datetime) {\n this.datetime.setDate(v.getDate());\n this.datetime.setMonth(v.getMonth());\n this.datetime.setFullYear(v.getFullYear());\n } else {\n this.datetime = v;\n }\n this.emitValue();\n }\n\n validate(): ValidationErrors | null {\n return !this.datetime || isValid(this.datetime) ? null : { invalidDatetime: true };\n }\n\n private emitValue() {\n return this.emitOutgoingValue(getNoTimeZoneIsoString(this.datetime));\n }\n}\n","<div class=\"wrapper\">\n <mat-form-field class=\"date\">\n <mat-label>\n {{ label }}\n </mat-label>\n <mat-hint>{{ hint }}</mat-hint>\n <input\n [matDatepicker]=\"picker\"\n [required]=\"required\"\n [value]=\"datetime\"\n matInput\n (dateInput)=\"dateChanged($event)\"\n />\n <mat-datepicker-toggle [for]=\"picker\" matSuffix></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n </mat-form-field>\n @if (datetime) {\n <mat-form-field class=\"time\">\n <input [value]=\"time\" matInput type=\"time\" (input)=\"timeChanged($event)\" />\n </mat-form-field>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { DatetimeFieldComponent } from './datetime-field.component';\n\n@NgModule({\n declarations: [DatetimeFieldComponent],\n exports: [DatetimeFieldComponent],\n imports: [CommonModule, MatFormFieldModule, MatInputModule, MatDatepickerModule],\n})\nexport class DatetimeFieldModule {}\n","import { Component, Input, OnChanges } from '@angular/core';\nimport { lowerFirst } from 'lodash-es';\nimport isNil from 'lodash-es/isNil';\n\nimport { ComponentChanges, FormControlSuperclass, createControlProviders } from '../../utils';\n\nexport interface State<T = unknown> {\n icon?: string;\n label?: string;\n value?: T;\n}\n\n@Component({\n selector: 'v-switch-button',\n templateUrl: './switch-button.component.html',\n styles: [],\n providers: createControlProviders(() => SwitchButtonComponent),\n standalone: false,\n})\nexport class SwitchButtonComponent<T = number>\n extends FormControlSuperclass<T>\n implements OnChanges\n{\n @Input() states: State<T>[] = [];\n\n private hasChangeValue = false;\n\n get index() {\n return this.getIndex(this.control.value);\n }\n\n get nextIndex() {\n const nextIdx = this.index + 1;\n return nextIdx === this.states.length ? 0 : nextIdx;\n }\n\n get value(): T {\n return this.getValue(this.getIndex(this.control.value));\n }\n\n get state() {\n return this.states[this.index];\n }\n\n get nextState() {\n return this.states[this.nextIndex];\n }\n\n get tooltip() {\n const nextState = this.states[this.nextIndex];\n return nextState.label ? `Switch to ${lowerFirst(nextState.label)}` : '';\n }\n\n change() {\n this.control.setValue(this.getValue(this.nextIndex));\n }\n\n override ngOnChanges(changes: ComponentChanges<SwitchButtonComponent<T>>) {\n super.ngOnChanges(changes);\n if (changes.states && this.states.length) {\n if (!isNil(this.states?.[0]?.value)) {\n this.hasChangeValue = true;\n }\n if (isNil(this.control.value)) {\n this.control.setValue(this.value);\n }\n }\n }\n\n private getIndex(value: T) {\n return (\n (this.hasChangeValue\n ? this.states.findIndex((s) => s.value === value)\n : (value as number)) ?? 0\n );\n }\n\n private getValue(index: number) {\n return this.hasChangeValue ? (this.states[index]?.value as T) : (index as T);\n }\n}\n","<button [matTooltip]=\"tooltip\" class=\"button\" mat-icon-button (click)=\"change()\">\n <mat-icon class=\"icon\">{{ state?.icon }}</mat-icon>\n</button>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { SwitchButtonComponent } from './switch-button.component';\n\n@NgModule({\n declarations: [SwitchButtonComponent],\n imports: [CommonModule, MatButtonModule, MatIconModule, MatTooltipModule],\n exports: [SwitchButtonComponent],\n})\nexport class SwitchButtonModule {}\n","import { AsyncPipe, NgClass } from '@angular/common';\nimport { Component, ViewEncapsulation, booleanAttribute, input } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { MatDivider } from '@angular/material/divider';\nimport { RouterLink } from '@angular/router';\nimport { isArray } from 'lodash-es';\nimport { combineLatest } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\n\nimport { UrlService } from '../../services';\n\nexport interface Link {\n label: string;\n url: string;\n}\n\n@Component({\n selector: 'v-nav',\n styleUrls: ['./nav.component.scss'],\n templateUrl: './nav.component.html',\n imports: [RouterLink, NgClass, AsyncPipe, MatDivider],\n encapsulation: ViewEncapsulation.None,\n})\nexport class NavComponent {\n type = input<'secondary' | undefined>();\n links = input<Link[][], Link[] | Link[][]>([], {\n transform: (v) => (isArray(v[0]) ? (v as never) : [v as never]),\n });\n exact = input(false, { transform: booleanAttribute });\n\n activeLink$ = combineLatest([\n this.urlService.url$,\n toObservable(this.links),\n toObservable(this.exact),\n ]).pipe(\n map(\n ([url, links, exact]) =>\n links.flat().reduce(\n (res, link) => {\n const index = url.indexOf(link.url);\n if (index !== -1 && (exact ? index === 0 : index < res.index)) {\n return { index, link };\n }\n return res;\n },\n { index: Infinity, link: null as never as Link },\n )?.link,\n ),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n constructor(private urlService: UrlService) {}\n}\n","<div [ngClass]=\"{ 'v-nav__secondary': type() === 'secondary' }\" class=\"v-nav\">\n @for (linksGroup of links(); track linksGroup; let index = $index) {\n @if (index !== 0) {\n <mat-divider></mat-divider>\n }\n @for (link of linksGroup; track link) {\n <div\n [ngClass]=\"{ item__active: (activeLink$ | async) === link }\"\n [routerLink]=\"link.url\"\n [title]=\"link.label\"\n class=\"mat-body-large item mat-no-margin\"\n >\n {{ link.label }}\n </div>\n }\n }\n</div>\n","import { DEFAULT_CURRENCY_CODE, Inject, LOCALE_ID, Pipe, PipeTransform } from '@angular/core';\n\nimport { formatCurrency } from '../utils';\n\n@Pipe({\n standalone: true,\n name: 'amountCurrency',\n})\nexport class AmountCurrencyPipe implements PipeTransform {\n constructor(\n @Inject(LOCALE_ID) private _locale: string,\n @Inject(DEFAULT_CURRENCY_CODE) private _defaultCurrencyCode: string = 'USD',\n ) {}\n\n transform(\n amount: unknown,\n currencyCode: string = this._defaultCurrencyCode,\n format: 'short' | 'long' = 'long',\n exponent?: number,\n isMajor = false,\n ): unknown {\n if (typeof amount === 'number') {\n return formatCurrency(amount, currencyCode, format, this._locale, exponent, isMajor);\n }\n return amount;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { getEnumKeyValues } from '../utils/enum';\n\n@Pipe({\n standalone: true,\n name: 'enumKeyValues',\n})\nexport class EnumKeyValuesPipe implements PipeTransform {\n transform<E extends Record<PropertyKey, unknown>>(value: E) {\n return getEnumKeyValues(value);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport isNil from 'lodash-es/isNil';\nimport { ValuesType } from 'utility-types';\n\nimport { getEnumKey } from '../utils/enum';\n\n@Pipe({\n standalone: true,\n name: 'enumKey',\n})\nexport class EnumKeyPipe implements PipeTransform {\n transform<E extends Record<PropertyKey, unknown>>(value: ValuesType<E>, enumObj: E) {\n return !isNil(value) && enumObj ? getEnumKey(enumObj, value) : '';\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { getEnumKeys } from '../utils/enum';\n\n@Pipe({\n standalone: true,\n name: 'enumKeys',\n})\nexport class EnumKeysPipe implements PipeTransform {\n transform<E extends Record<PropertyKey, unknown>>(value: E): (keyof E)[] {\n return getEnumKeys(value);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { formatDistanceToNow } from 'date-fns';\nimport { combineLatest, throttleTime, timer } from 'rxjs';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\n\nimport { AsyncTransform, AsyncTransformParameters } from '../utils';\n\nexport type HumanizedDurationValue = ConstructorParameters<DateConstructor>[0];\n\nexport interface HumanizedDurationConfig {\n hasAgoEnding?: boolean;\n}\n\nconst DEFAULT_TIMER = 7500;\n\n@Pipe({\n standalone: true,\n name: 'humanizedDuration',\n pure: false,\n})\nexport class HumanizedDurationPipe\n extends AsyncTransform<HumanizedDurationValue, [HumanizedDurationConfig]>\n implements PipeTransform\n{\n protected result$ = combineLatest([this.params$, timer(0, DEFAULT_TIMER)]).pipe(\n throttleTime(DEFAULT_TIMER),\n map(\n ([[value, config]]) =>\n formatDistanceToNow(new Date(value), { includeSeconds: true }) +\n (config.hasAgoEnding ? ' ago' : ''),\n ),\n distinctUntilChanged(),\n );\n\n transform(\n ...params: AsyncTransformParameters<HumanizedDurationValue, [HumanizedDurationConfig]>\n ) {\n return super.asyncTransform(params);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { inlineJson } from '../utils';\n\n@Pipe({\n name: 'inlineJson',\n standalone: false,\n})\nexport class InlineJsonPipe implements PipeTransform {\n transform(value: unknown, maxReadableLever: number | false = 1): string {\n return inlineJson(value, maxReadableLever === false ? Infinity : maxReadableLever);\n }\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectorRef, OnDestroy, Pipe, PipeTransform } from '@angular/core';\nimport { Observable, isObservable } from 'rxjs';\n\nimport { SelectFn, select } from '../utils';\n\n@Pipe({\n standalone: true,\n name: 'vSelect',\n pure: false,\n})\nexport class VSelectPipe<TObject extends object, TResult, TParams extends Array<unknown> = []>\n implements PipeTransform, OnDestroy\n{\n private asyncPipe?: AsyncPipe;\n\n constructor(private ref: ChangeDetectorRef) {}\n\n transform(\n obj: TObject,\n selectFn: SelectFn<TObject, TResult, TParams>,\n defaultValue?: TResult,\n rest: TParams[] = [],\n ): TResult | null {\n const res = obj && selectFn ? select(obj, selectFn, defaultValue, rest) : null;\n if (isObservable(res) && !this.asyncPipe) {\n this.asyncPipe = new AsyncPipe(this.ref);\n }\n if (this.asyncPipe) {\n return this.asyncPipe.transform(res as Observable<TResult>);\n }\n return res as TResult;\n }\n\n ngOnDestroy() {\n this.asyncPipe?.ngOnDestroy?.();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { AmountCurrencyPipe } from './amount-currency.pipe';\nimport { EnumKeyValuesPipe } from './enum-key-values.pipe';\nimport { EnumKeyPipe } from './enum-key.pipe';\nimport { EnumKeysPipe } from './enum-keys.pipe';\nimport { HumanizedDurationPipe } from './humanized-duration.pipe';\nimport { InlineJsonPipe } from './inline-json.pipe';\nimport { VSelectPipe } from './select.pipe';\n\n@NgModule({\n declarations: [InlineJsonPipe],\n exports: [\n InlineJsonPipe,\n EnumKeyPipe,\n EnumKeysPipe,\n EnumKeyValuesPipe,\n AmountCurrencyPipe,\n VSelectPipe,\n HumanizedDurationPipe,\n ],\n imports: [\n CommonModule,\n EnumKeyPipe,\n EnumKeysPipe,\n EnumKeyValuesPipe,\n AmountCurrencyPipe,\n VSelectPipe,\n HumanizedDurationPipe,\n ],\n})\nexport class PipesModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ActionsComponent","i1","i3","i4","i5.ProgressComponent","catchError","getValue","BaseFormComponentSuperclass","ngFormatCurrency","_get","isObject","papa","filter","map","startWith","distinctUntilChanged","shareReplay","i2","i5","i6","i3.TagComponent","isEqual","i4.InputFieldComponent","i5.ActionsComponent","i7","i8.TagComponent","debounceTime","first","i4.ValueComponent","i5.NoRecordsComponent","i6.ContentLoadingComponent","i7.InfinityScrollDirective","i8.SelectColumnComponent","i11.DndColumnComponent","i12.TableInfoBarComponent","i13.TableInputsComponent","i2.DialogComponent","i3.DialogActionsComponent","i4.TableComponent","i1.DialogService","i3.ActionsComponent","i8","i1.NotifyLogService","FormComponentSuperclass","i1.UrlService"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MASa,gBAAgB,CAAA;8GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,sECT7B,oEAGA,EAAA,MAAA,EAAA,CAAA,6UAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDMa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAP5B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAGJ,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,oEAAA,EAAA,MAAA,EAAA,CAAA,6UAAA,CAAA,EAAA;;;MEER,aAAa,CAAA;8GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAb,aAAa,EAAA,YAAA,EAAA,CAHP,gBAAgB,CAAA,EAAA,OAAA,EAAA,CACrB,gBAAgB,CAAA,EAAA,CAAA,CAAA;+GAEjB,aAAa,EAAA,CAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBALzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,EAAE;oBACX,YAAY,EAAE,CAAC,gBAAgB,CAAC;oBAChC,OAAO,EAAE,CAAC,gBAAgB,CAAC;AAC9B,iBAAA;;;MCCY,iBAAiB,CAAA;AAG1B,IAAA,IAAI,IAAI,GAAA;AACJ,QAAA,OAAO,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG;AAC9E,cAAE;cACA,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK;AACrC,kBAAE;kBACA,SAAS;;AAGrB,IAAA,IAAI,KAAK,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,IAAI,KAAK;cACf,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAI,IAAI,CAAC,QAAmB,IAAI,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;cAC/D,SAAmB;;8GAdrB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,yGCT9B,kGAGA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,aAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDMa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,cAEV,KAAK,EAAA,QAAA,EAAA,kGAAA,EAAA;8BAGR,QAAQ,EAAA,CAAA;sBAAhB;;;MECQ,cAAc,CAAA;8GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,iBAJR,iBAAiB,CAAA,EAAA,OAAA,EAAA,CACtB,YAAY,EAAE,oBAAoB,aAClC,iBAAiB,CAAA,EAAA,CAAA,CAAA;+GAElB,cAAc,EAAA,OAAA,EAAA,CAHb,YAAY,EAAE,oBAAoB,CAAA,EAAA,CAAA,CAAA;;2FAGnC,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,iBAAiB,CAAC;AACjC,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,oBAAoB,CAAC;oBAC7C,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAC/B,iBAAA;;;MCHY,sBAAsB,CAAA;8GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,6ECPnC,oDACA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,gBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDMa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,cAEhB,KAAK,EAAA,QAAA,EAAA,oDAAA,EAAA;;;IELT;AAAZ,CAAA,UAAY,oBAAoB,EAAA;AAC5B,IAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,oBAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,oBAAA,CAAA,WAAA,CAAA,GAAA,UAAsB;AAC1B,CAAC,EAJW,oBAAoB,KAApB,oBAAoB,GAI/B,EAAA,CAAA,CAAA;;MCeY,eAAe,CAAA;AAN5B,IAAA,WAAA,GAAA;QAOmC,IAAS,CAAA,SAAA,GAAY,IAAI;QAIhB,IAAQ,CAAA,QAAA,GAAY,KAAK;QAGzB,IAAU,CAAA,UAAA,GAAY,IAAI;QAE1B,IAAS,CAAA,SAAA,GAAY,KAAK;QAC1B,IAAS,CAAA,SAAA,GAAY,KAAK;QAC1B,IAAa,CAAA,aAAA,GAAY,KAAK;QAE9B,IAAQ,CAAA,QAAA,GAAY,KAAK;;AAGvD,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAQ;AAE3C,QAAA,IAAA,CAAA,UAAU,GAAG;YACT,MAAM,EAAE,oBAAoB,CAAC,SAAS;SACzC;AAKJ;IAHG,YAAY,GAAA;AACR,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;;8GAxBb,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EAKJ,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,gBAAgB,CAGhB,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,gBAAgB,CAEhB,EAAA,SAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,gBAAgB,CAChB,EAAA,SAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,gBAAgB,CAChB,EAAA,aAAA,EAAA,CAAA,eAAA,EAAA,eAAA,EAAA,gBAAgB,CAEhB,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,gBAAgB,0HCjCxC,k9BAmCA,EAAA,MAAA,EAAA,CAAA,s5BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDhBa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,cAGR,KAAK,EAAA,QAAA,EAAA,k9BAAA,EAAA,MAAA,EAAA,CAAA,s5BAAA,CAAA,EAAA;8BAGc,SAAS,EAAA,CAAA;sBAAvC,WAAW;uBAAC,gBAAgB;gBAEpB,KAAK,EAAA,CAAA;sBAAb;gBAEuC,QAAQ,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAC7B,QAAQ,EAAA,CAAA;sBAAhB;gBAEuC,UAAU,EAAA,CAAA;sBAAjD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAEE,SAAS,EAAA,CAAA;sBAAhD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,SAAS,EAAA,CAAA;sBAAhD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,aAAa,EAAA,CAAA;sBAApD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAEE,QAAQ,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAG5B,MAAM,EAAA,CAAA;sBAAf;;;ME9BQ,aAAa,GAAG,IAAI,cAAc,CAAe,cAAc;AAE/D,MAAA,WAAW,GAA6B;AACjD,IAAA,SAAS,EAAE,OAAO;AAClB,IAAA,YAAY,EAAE,IAAI;AAClB,IAAA,SAAS,EAAE,KAAK;AAChB,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,oBAAoB;AAC9B,IAAA,KAAK,EAAE,OAAO;;AAGL,MAAA,qBAAqB,GAAiB;AAC/C,IAAA,KAAK,EAAE;AACH,QAAA,GAAG,WAAW;AACd,QAAA,KAAK,EAAE,OAAO;AACjB,KAAA;AACD,IAAA,MAAM,EAAE,WAAW;AACnB,IAAA,KAAK,EAAE;AACH,QAAA,GAAG,WAAW;AACd,QAAA,KAAK,EAAE,QAAQ;AAClB,KAAA;;AAGE,MAAM,iCAAiC,GAAG;;MClBpC,aAAa,CAAA;IACtB,WACY,CAAA,MAAiB,EAGR,YAA0B,EAAA;QAHnC,IAAM,CAAA,MAAA,GAAN,MAAM;QAGG,IAAY,CAAA,YAAA,GAAZ,YAAY;QAE7B,IAAI,CAAC,YAAY,EAAE;AACf,YAAA,IAAI,CAAC,YAAY,GAAG,qBAAqB;;;AAIjD,IAAA,IAAI,CACA,eAOC;AACD;;;;AAIG;AACH,IAAA,GAAG,CAAC,IAAI,EAAE,kBAAkB,CAOrB,EAAA;AAEP,QAAA,IAAI,MAA6C;QACjD,IAAI,CAAC,kBAAkB,EAAE;YACrB,MAAM,GAAG,EAAE;;AACR,aAAA,IAAI,OAAO,kBAAkB,KAAK,QAAQ,EAAE;AAC/C,YAAA,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC;;aAC3C;YACH,MAAM,GAAG,kBAAkB;;AAG/B,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAwB,EAAE;YAC9C,IAAI;YACJ,GAAI,eAA2C,CAAC,mBAAmB;AACnE,YAAA,GAAG,MAAM;AACZ,SAAA,CAAC;;AAhDG,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,6CAIV,aAAa,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAJhB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFV,MAAM,EAAA,CAAA,CAAA;;2FAET,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA;;0BAIQ;;0BACA,MAAM;2BAAC,aAAa;;;MCehB,YAAY,CAAA;8GAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,EAHN,YAAA,EAAA,CAAA,eAAe,EAAE,sBAAsB,aAVlD,YAAY;YACZ,gBAAgB;YAChB,eAAe;YACf,aAAa;YACb,aAAa;YACb,oBAAoB;YACpB,eAAe;YACf,cAAc,CAAA,EAAA,OAAA,EAAA,CAIR,eAAe,EAAE,sBAAsB,CAAA,EAAA,CAAA,CAAA;AAExC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,EAJV,SAAA,EAAA,CAAC,aAAa,CAAC,YATtB,YAAY;YACZ,gBAAgB;YAChB,eAAe;YACf,aAAa;YACb,aAAa;YACb,oBAAoB;YACpB,eAAe;YACf,cAAc,CAAA,EAAA,CAAA,CAAA;;2FAMT,YAAY,EAAA,UAAA,EAAA,CAAA;kBAfxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,gBAAgB;wBAChB,eAAe;wBACf,aAAa;wBACb,aAAa;wBACb,oBAAoB;wBACpB,eAAe;wBACf,cAAc;AACjB,qBAAA;oBACD,SAAS,EAAE,CAAC,aAAa,CAAC;AAC1B,oBAAA,YAAY,EAAE,CAAC,eAAe,EAAE,sBAAsB,CAAC;AACvD,oBAAA,OAAO,EAAE,CAAC,eAAe,EAAE,sBAAsB,CAAC;AACrD,iBAAA;;;MCrBY,gBAAgB,CAAA;AAD7B,IAAA,WAAA,GAAA;AASI,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAc,eAAe,CAAC;AACjD,QAAA,IAAA,CAAA,SAAS,GACL,MAAM,CAKJ,YAAY,CAAC;AAsBtB;AA/BU,IAAA,SAAA,IAAA,CAAA,mBAAmB,GAAG,qBAAqB,CAAC,MAAM,CAAC;AAW1D,IAAA,qBAAqB,CAAC,IAA0B,EAAA;AAC5C,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YACjB,MAAM,EAAE,oBAAoB,CAAC,SAAS;YACtC,IAAI;AACE,SAAA,CAAC;;AAGf,IAAA,gBAAgB,CAAC,IAA0B,EAAA;AACvC,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YACjB,MAAM,EAAE,oBAAoB,CAAC,OAAO;YACpC,IAAI;AACE,SAAA,CAAC;;AAGf,IAAA,cAAc,CAAC,IAA0B,EAAA;AACrC,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YACjB,MAAM,EAAE,oBAAoB,CAAC,KAAK;YAClC,IAAI;AACE,SAAA,CAAC;;8GAnCN,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B;;;MCIY,uBAAuB,CAAA;AAPpC,IAAA,WAAA,GAAA;AAQI,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QACnC,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;QACnD,IAAU,CAAA,UAAA,GAAG,KAAK,EAA6B;AAClD;8GAJY,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXpC,qPAMA,EAAA,MAAA,EAAA,CAAA,uTAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDGc,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEb,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAPnC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,mBAGZ,uBAAuB,CAAC,MAAM,EACtC,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,qPAAA,EAAA,MAAA,EAAA,CAAA,uTAAA,CAAA,EAAA;;;AEN3B,SAAS,UAAU,CAAI,IAAS,EAAE,UAAyC,EAAE,MAAe,EAAA;AACxF,IAAA,OAAO,IAAI,CAAC,MAAM,IAAI,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AAC9E;AAEA,SAAS,QAAQ,CAAC,CAAU,EAAA;AACxB,IAAA,QACI,OAAO,CAAC,KAAK,QAAQ;AACrB,QAAA,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACjB,QAAA,EAAE,CAAC,YAAY,GAAG,CAAC;AACnB,QAAA,EAAE,CAAC,YAAY,GAAG,CAAC;QACnB,CAAC,KAAK,IAAI;AAElB;AAEgB,SAAA,UAAU,CACtB,KAAc,EACd,gBAAgB,GAAG,CAAC,EACpB,YAAY,GAAG,KAAK,EACpB,KAAK,GAAG,CAAC,EAAA;AAET,IAAA,MAAM,MAAM,IAAI,KAAK,GAAG,CAAC,CAAC;AAC1B,IAAA,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;AACpB,QAAA,OAAO,MAAM,CAAC,KAAK,CAAC;;AAExB,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,GAAG,IAAI,KAAK,YAAY,GAAG,EAAE;AACtE,QAAA,MAAM,OAAO,GAAG,UAAU,CACtB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EACjB,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,EAAE,gBAAgB,EAAE,YAAY,EAAE,KAAK,GAAG,CAAC,CAAC,EAC/D,KAAK,GAAG,gBAAgB,CAC3B;AACD,QAAA,IAAI,KAAK,YAAY,GAAG,EAAE;YACtB,OAAO,CAAA,IAAA,EAAO,OAAO,CAAA,CAAA,CAAG;;AAE5B,QAAA,IAAI,KAAK,YAAY,GAAG,EAAE;YACtB,OAAO,CAAA,IAAA,EAAO,OAAO,CAAA,CAAA,CAAG;;AAE5B,QAAA,OAAO,MAAM,IAAI,OAAO,GAAG,OAAO,GAAG,CAAI,CAAA,EAAA,OAAO,GAAG;;AAEvD,IAAA,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAe,CAAC,CAAC;AAC3D,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AACjB,QAAA,OAAO,IAAI;;AAEf,IAAA,MAAM,OAAO,GAAG,UAAU,CACtB,OAAO,EACP,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KACH,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;SAC/B,QAAQ,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;AACxD,QAAA,UAAU,CAAC,CAAC,EAAE,gBAAgB,EAAE,YAAY,EAAE,KAAK,GAAG,CAAC,CAAC,EAC5D,KAAK,GAAG,gBAAgB,CAC3B;IACD,IAAI,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AAChC,QAAA,OAAO,OAAO;;IAElB,OAAO,CAAA,CAAA,EAAI,OAAO,CAAA,CAAA,CAAG;AACzB;;ACzDA,MAAM,UAAU,GAAG,IAAI;SAEP,iBAAiB,CAAC,GAAW,EAAE,UAAU,GAAG,UAAU,EAAA;IAClE,IAAI,CAAC,GAAG,EAAE;AACN,QAAA,OAAO,EAAE;;AAEb,IAAA,OAAO;SACF,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,UAAU,CAAA,IAAA,CAAM,CAAC;SACtC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE;SACrB,MAAM,CAAC,OAAO,CAAC;AACxB;;ACPM,SAAU,UAAU,CACtB,QAAmE,EAAA;IAEnE,MAAM,MAAM,GAAG,OAAO,YAAY,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,QAAQ,EAAE,CAAC;IACrE,OAAO,CAAC,IAAI,KACR,KAAK,CAAC,MAAK;AACP,QAAA,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5E,KAAC,CAAC;AACV;;ACRM,SAAU,aAAa,CAAI,OAA0B,EAAA;AACvD,IAAA,OAAO,OAAO,OAAO,KAAK,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO;AACnE;;ACDM,SAAU,cAAc,CAC1B,QAA+E,EAC/E,IAAqB,EACrB,IAAI,GAAG,IAAI,EAAA;AAEX,IAAA,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KACvE,aAAa,CAAC,CAAC,CAAC,CACnB;IACD,OAAO,KAAK,CACR,aAAa,CAAC,UAAU,CAAC,EACzB,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,GAAG,KAAK,CACjE,CAAC,IAAI,CACF,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;;IAEhC,KAAK,CAAC,CAAC,CAAC,EACR,SAAS,CAAC,IAAI,CAAC,EACf,oBAAoB,EAAE,EACtB,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CACjD;AACL;;ACtBgB,SAAA,SAAS,CACrB,OAA+B,EAC/B,KAAS,EAAA;AAET,IAAA,OAAO,CAAC,MAAM,KACV,MAAM,CAAC,IAAI,CACP,UAAU,CAAC,CAAC,GAAG,KAAI;QACf,OAAO,CAAC,GAAG,CAAC;AACZ,QAAA,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;AACvB,YAAA,OAAO,EAAE,CAAC,KAAU,CAAC;;AAEzB,QAAA,OAAO,KAAK;KACf,CAAC,CACL;AACT;;AChBM,SAAU,kBAAkB,CAAC,KAAa,EAAE,cAAyB,GAAA,MAAM,CAAC,SAAS,EAAA;AACvF,IAAA,OAAO,CAAC,GAAG,cAAc,GAAG,KAAK;AACrC;;ACsBgB,SAAA,gBAAgB,CAC5B,OAAwB,EACxB,SAA2B,EAC3B,SAAA,GAAiB,EAAE,EACnB,WAAW,GAAG,CAAC,EAAA;IAEf,IAAI,SAAS,GAAG,CAAC;IACjB,IAAI,SAAS,EAAE;QACX,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;;IAEtD,OAAO,KAAK,CACR,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,KACzB,MAAM,CAAC,IAAI,CACP,GAAG,CACC,CAAC,MAAM,MAA4B;QAC/B,MAAM;AACN,QAAA,QAAQ,EAAE,KAAK;QACf,KAAK;AACL,QAAA,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC;AACzB,KAAA,CAAC,CACL,EACD,UAAU,CAAC,CAAC,KAAK,KAAI;AACjB,QAAA,OAAO,EAAE,CAAuB;YAC5B,KAAK;AACL,YAAA,QAAQ,EAAE,IAAI;YACd,KAAK;AACL,YAAA,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC;AACzB,SAAA,CAAC;AACN,KAAC,CAAC,EACF,QAAQ,CAAC,MAAK;QACV,SAAS,IAAI,CAAC;QACd,IAAI,SAAS,EAAE;AACX,YAAA,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;;AAErE,KAAC,CAAC,CACL,CACJ,EACD,WAAW,CACd,CAAC,IAAI,CACF,IAAI,CACA,CAAC,GAAG,EAAE,KAAK,KAAI;AACX,QAAA,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;AACf,QAAA,OAAO,GAAG;AACd,KAAC,EACD,EAA4B,CAC/B,EACD,QAAQ,CAAC,CAAC,CAAC,EACX,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAClD;AACL;AAEM,SAAU,iBAAiB,CAAO,GAA2B,EAAA;AAC/D,IAAA,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;AACtC;AAEM,SAAU,kBAAkB,CAC9B,GAA2B,EAAA;IAE3B,OAAO,GAAG,CAAC,MAAM,CACb,CAAC,GAAG,EAAE,CAAC,KAAI;AACP,QAAA,GAAG,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAU,CAAC;AACxC,QAAA,OAAO,GAAG;AACd,KAAC,EACD,CAAC,EAAE,EAAE,EAAE,CAAmF,CAC7F;AACL;;ACnFM,SAAU,OAAO,CAAI,KAAuB,EAAA;IAC9C,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC;AAClD;;ACJM,SAAU,0BAA0B,CAAI,aAA+B,EAAA;AACzE,IAAA,OAAO,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC;AAC3E;;MCQsB,cAAc,CAAA;AAsBhC,IAAA,WAAA,GAAA;QAdU,IAAO,CAAA,OAAA,GAAqC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAC9E,SAAS,CAAC,CAAC,IAAI,KACX,aAAa,CAAC;AACV,YAAA,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAW,CAAC;AAC7C,YAAA,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAY,CAAC;SAC/B,CAAC,CACL,EACD,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,MAAM,CAAyB,CAAC,CACvE;AAGO,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC/B,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,aAAa,CAAsC,CAAC,CAAC;QAGrE,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;;IAG5C,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;;AAGtB,IAAA,cAAc,CAAC,IAA+C,EAAA;AACpE,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QACrB,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;;8GAhC/B,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAd,cAAc,EAAA,CAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBADnC;;;ACLK,SAAU,iBAAiB,CAC7B,OAAoE,EAAA;AAEpE,IAAA,OAAO,CAAC,IAAmB,KACvB,IAAI,CAAC,IAAI,CACL,SAAS,CAAC,CAAC,KAAK,EAAE,KAAK,KAAI;QACvB,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;AACjC,QAAA,OAAO,aAAa,CAAC;YACjB,EAAE,CAAC,KAAK,CAAC;AACT,YAAA,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAClF,SAAA,CAAC;KACL,CAAC,CACoB;AAClC;;ACnBM,SAAU,qBAAqB,CAAI,QAAgB,EAAA;IACrD,OAAO,CAAC,MAAM,KAAI;QACd,IAAI,OAAO,GAAG,IAAI;AAClB,QAAA,OAAO,MAAM,CAAC,IAAI,CACd,QAAQ,CAAC,MAAK;YACV,IAAI,OAAO,EAAE;gBACT,OAAO,GAAG,KAAK;AACf,gBAAA,OAAO,QAAQ,CAAC,CAAC,CAAC;;AAEtB,YAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC;SAC5B,CAAC,CACL;AACL,KAAC;AACL;;SCVgB,WAAW,CACvB,OAA+B,EAC/B,SAA2B,KAAK,EAAA;AAEhC,IAAA,OAAO,CAAC,MAAM,KACV,MAAM,CAAC,IAAI,CACPI,YAAU,CAAC,CAAC,GAAG,EAAE,OAAO,KAAI;QACxB,OAAO,CAAC,GAAG,CAAC;AACZ,QAAA,OAAO,0BAA0B,CAAC,MAAM,CAAC;KAC5C,CAAC,CACL;AACT;;SCdgB,cAAc,CAAY,KAAS,EAAE,OAAO,GAAG,CAAC,EAAA;AAC5D,IAAA,OAAO,CAAI,IAAmB,KAC1B,MAAM,CAAC,IAAK,KAAK,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;AACjG;;ACHM,SAAU,WAAW,CAAC,OAAwB,EAAA;IAChD,OAAO,UAAU,IAAI,OAAO;AAChC;;ACAM,SAAUC,UAAQ,CAAI,OAA2B,EAAA;AACnD,IAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;QACvB,OAAO,OAAO,CAAC,KAAK;;IAExB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QACjC,MAAM,MAAM,GAAc,EAAE;AAC5B,QAAA,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE;YAC9B,MAAM,CAAC,IAAI,CAACA,UAAQ,CAAC,CAAC,CAAM,CAAC;;AAEjC,QAAA,OAAO,MAAW;;IAEtB,MAAM,MAAM,GAAiC,EAAE;AAC/C,IAAA,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QACnD,MAAM,CAAC,CAAY,CAAC,GAAGA,UAAQ,CAAC,CAAC,CAAC;;AAEtC,IAAA,OAAO,MAAW;AACtB;;ACdM,SAAU,eAAe,CAAI,IAA8C,EAAA;IAC7E,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CACzB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EACrB,GAAG,CAAC,MAAMA,UAAQ,CAAC,IAAI,CAAC,CAAC,CACX;AACtB;;ACPA;;;AAGG;AACG,SAAU,aAAa,CAAC,OAAwB,EAAA;AAClD,IAAA,IAAI,OAAO,CAAC,KAAK,EAAE;AACf,QAAA,OAAO,IAAI;;AAEf,IAAA,MAAM,MAAM,GAAqB,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC;AAClE,IAAA,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE;QACtB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AACjC,YAAA,MAAM,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC;iBAC/B,GAAG,CAAC,CAAC,CAAkB,KAAK,aAAa,CAAC,CAAC,CAAC;iBAC5C,MAAM,CAAC,OAAO,CAAC;;aACjB;YACH,MAAM,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC,WAAW,CAC1C,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;AACtC,iBAAA,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;AACrC,iBAAA,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACV;;;AAG7B,IAAA,OAAO,MAAM;AACjB;;ACjBM,MAAgB,yBAClB,SAAQ,wBAA8C,CAAA;AAF1D,IAAA,WAAA,GAAA;;AAKY,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAChC,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAgChC,QAAA,IAAA,CAAA,iBAAiB,GAAe,MAAM,SAAS;AAC1D;IA/BY,QAAQ,GAAA;QACb,KAAK,CAAC,QAAQ,EAAE;QAChB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC;aACtB,IAAI,CACD,MAAM,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAClC,IAAI,CAAC,CAAC,CAAC,EACP,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;aAEvC,SAAS,CAAC,MAAK;YACZ,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AAC5B,SAAC,CAAC;;AAGV,IAAA,QAAQ,CAAC,QAAyB,EAAA;QAC9B,OAAO,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;;AAGvC,IAAA,yBAAyB,CAAC,EAAc,EAAA;AACpC,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE;;IAGZ,wBAAwB,GAAA;AACvC,QAAA,OAAO,KAAK;;IAGG,wBAAwB,GAAA;AACvC,QAAA,OAAO,KAAK;;8GAlCE,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAD9C;;;ACAK,MAAgB,mBAClB,SAAQ,yBAA+C,CAAA;AAK9C,IAAA,gBAAgB,CAAC,WAAoB,EAAA;QAC1C;;IAGK,QAAQ,GAAA;QACb,IAAI,CAAC,UAAU,GAAGA,UAAQ,CAAC,IAAI,CAAC,OAAO,CAAc;QACrD,KAAK,CAAC,QAAQ,EAAE;;AAGD,IAAA,iBAAiB,CAAC,KAAgB,EAAA;AACjD,QAAA,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAC3B,IAAI,CAAC,KAAK,EAAE;gBACR,OAAO,IAAI,CAAC,UAAU;;YAE1B,IACI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAE,IAAI,CAAC,OAAqB,CAAC,QAAQ,CAAC,CAAC,MAAM,EACtF;AACE,gBAAA,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC;;;AAGxD,QAAA,OAAO,KAAc;;8GA1BP,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBADxC;;;ACLM,MAAM,iBAAiB,GAAG,CAAC,SAA8B,MAAgB;AAC5E,IAAA,OAAO,EAAE,aAAa;AACtB,IAAA,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC;AAClC,IAAA,KAAK,EAAE,IAAI;AACd,CAAA,CAAC;;ACJK,MAAM,oBAAoB,GAAG,CAAC,SAA8B,MAAgB;AAC/E,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC;AAClC,IAAA,KAAK,EAAE,IAAI;AACd,CAAA,CAAC;;MCFW,sBAAsB,GAAG,CAAC,SAA8B,KAAiB;IAClF,oBAAoB,CAAC,SAAS,CAAC;IAC/B,iBAAiB,CAAC,SAAS,CAAC;;;ACD1B,MAAO,qBAGX,SAAQ,yBAA+C,CAAA;AAJzD,IAAA,WAAA,GAAA;;AAKI,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,WAAW,EAA4B;AACxD;8GALY,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC;;;ACEK,MAAgB,uBAClB,SAAQC,yBAAsC,CAAA;AAFlD,IAAA,WAAA,GAAA;;AAKY,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAChC,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAmBhC,QAAA,IAAA,CAAA,iBAAiB,GAAe,MAAM,SAAS;AAC1D;AAlBG,IAAA,QAAQ,CAAC,QAAyB,EAAA;AAC9B,QAAA,OAAO,IAAI;;IAGf,QAAQ,GAAA;QACJ,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC;AACtB,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;aACzC,SAAS,CAAC,MAAK;YACZ,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AAC5B,SAAC,CAAC;;AAGV,IAAA,yBAAyB,CAAC,EAAc,EAAA;AACpC,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE;;8GArBb,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAD5C;;;ACJK,SAAU,gBAAgB,CAAC,KAAc,EAAA;IAC3C,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;AACvC;;SCIgB,oBAAoB,CAAC,OAAwB,EAAE,SAAS,GAAG,gBAAgB,EAAA;AACvF,IAAA,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,CAChC,MAAM,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,EAC3B,GAAG,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAC3C;AACL;;ACXM,SAAU,WAAW,CACvB,OAAyB,EACzB,QAAoB,GAAA,IAAI,EACxB,OAAA,GAAqD,EAAE,EAAA;IAEvD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;QAC3C;;IAEJ,IAAI,QAAQ,EAAE;AACV,QAAA,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;;SACrB;AACH,QAAA,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;;AAE/B;;ACbM,SAAU,cAAc,CAAmB,MAAS,EAAA;AACtD,IAAA,OAAO,MAAM,CAAC,WAAW,CACrB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,WAAW,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAChF;AACd;;ACNA,SAAS,iBAAiB,CAAC,IAAU,EAAA;AACjC,IAAA,OAAO,IAAI,CAAC,iBAAiB,EAAE,GAAG,MAAM;AAC5C;AAEM,SAAU,sBAAsB,CAAC,IAAkB,EAAA;IACrD,OAAO,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,EAAE;AACvF;AAEM,SAAU,8BAA8B,CAAC,OAAe,EAAA;AAC1D,IAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC;AAC9B,IAAA,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC7D;;ACTO,MAAM,mBAAmB,GAAG,CAAC,YAAoB,KACpD,UAAU,CAAC,YAAuC,CAAC,EAAE;;MCC5C,iBAAiB,GAAG,CAAC,MAAc,EAAE,QAAgB,KAC9D,KAAK,CAAC,MAAM,GAAG,EAAE,IAAI,QAAQ,EAAE,QAAQ;MAE9B,OAAO,GAAG,CAAC,MAAc,EAAE,YAAoB,KACxD,iBAAiB,CAAC,MAAM,EAAE,mBAAmB,CAAC,YAAY,CAAC;;MCNlD,iBAAiB,GAAG,CAAC,MAAc,EAAE,QAAgB,KAC9D,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,IAAI,QAAQ;MAEzB,OAAO,GAAG,CAAC,MAAc,EAAE,YAAoB,KACxD,iBAAiB,CAAC,MAAM,EAAE,mBAAmB,CAAC,YAAY,CAAC;;SCD/C,cAAc,CAC1B,MAAc,EACd,YAAA,GAAuB,KAAK,EAC5B,MAAA,GAA2B,MAAM,EACjC,MAAM,GAAG,OAAO,EAChB,QAAiB,EACjB,UAAmB,KAAK,EAAA;AAExB,IAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AAC9B,QAAA,QAAQ,GAAG,mBAAmB,CAAC,YAAY,CAAC,IAAI,CAAC;;IAErD,OAAOC,gBAAgB,CACnB,OAAO,GAAG,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,EACtD,MAAM,EACN,iBAAiB,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,EACjD,YAAY,EACZ,MAAM,KAAK,OAAO,GAAG,CAAA,IAAA,EAAO,QAAQ,CAAE,CAAA,GAAG,CAAA,EAAA,EAAK,QAAQ,CAAI,CAAA,EAAA,QAAQ,CAAE,CAAA,CACvE;AACL;;ACdM,SAAU,MAAM,CAClB,GAAY,EACZ,QAA6C,EAC7C,YAAsB,EACtB,UAAA,GAAwB,EAAE,EAAA;AAE1B,IAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;QAC9B,OAAOC,GAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,YAAY,CAAY;;AAEvD,IAAA,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAI,UAAoB,CAAC;AAClD;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7BgB,SAAA,UAAU,CAAC,GAAG,OAAiB,EAAA;AAC3C,IAAA,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACrF;;ACGM,SAAU,OAAO,CAAC,KAAc,EAAA;IAClC,OAAOC,UAAQ,CAAC,KAAK;AACjB,UAAE,KAAK,CAAC,WAAW,KAAK,MAAM;AAC5B,YAAA,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AACpB,YAAA,KAAK,YAAY,GAAG;AACpB,YAAA,KAAK,YAAY;AACf,cAAE,aAAa,CAAC,KAAK;AACrB,cAAE;AACN,UAAE,gBAAgB,CAAC,KAAK,CAAC;AACjC;;ACTgB,SAAA,YAAY,CACxB,CAAI,EACJ,CAAI;AACJ;AACA,UAAA,GAA0E,EAAE,EAAA;IAE5E,MAAM,KAAK,GAAgB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAU;IAClD,MAAM,KAAK,GAAgB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAU;IAClD,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC;IACzC,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC;AAC5C,IAAA,OAAO;AACF,SAAA,GAAG,CAAC,CAAC,CAAC,KAAI;AACP,QAAA,IAAI,CAAC,IAAI,UAAU,EAAE;AACjB,YAAA,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,YAAA,OAAO,OAAO,GAAG,KAAK,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;;AAEzD,QAAA,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;AAC1E,KAAC;AACA,SAAA,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC;AACrD;;ACpBM,SAAU,cAAc,CAAiB,OAAU,EAAA;IACrD,IAAI,CAAC,OAAO,EAAE;AACV,QAAA,OAAO,EAAE;;IAEb,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;AACvC,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AACjB,QAAA,OAAO,EAAE;;AAEb,IAAA,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,OAAO,CAAC,KAAK,QAAQ,CAAC;IACxE,IAAI,iBAAiB,EAAE;AACnB,QAAA,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,OAAO,CAAC,KAAK,QAAQ,CAAU;;AAEpE,IAAA,OAAO,OAAgB;AAC3B;AAEM,SAAU,gBAAgB,CAC5B,OAAU,EAAA;IAEV,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1E;AAEM,SAAU,WAAW,CAAiB,OAAU,EAAA;AAClD,IAAA,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAClD;AAEM,SAAU,aAAa,CAAiB,OAAU,EAAA;AACpD,IAAA,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AACpD;AAEgB,SAAA,UAAU,CAAiB,OAAU,EAAE,KAAoB,EAAA;IACvE,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAc;AACnG;AAEgB,SAAA,YAAY,CACxB,OAAU,EACV,KAA6B,EAAA;IAE7B,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAsB,CAAC;AAClE;;ACrCM,SAAU,KAAK,CAKjB,GAAM,EACN,gBAAsC,GAAA,KAA0B,EAChE,SAAS,GAAG,KAAK,EACjB,eAA4D,GAAA,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAA;IAE9E,IAAI,gBAAgB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE;AAC3C,QAAA,OAAO,IAAa;;IAExB,MAAM,UAAU,GAAG,CAAC,CAAU,KAC1B,SAAS,GAAG,CAAC,GAAG,KAAK,CAAC,CAAU,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,CAAC;AACvE,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AACpB,QAAA,OAAQ;aACH,GAAG,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC;AACxB,aAAA,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,eAAe,CAAC,CAAC,EAAE,GAAG,CAAC,CAAU;;AAE7D,IAAA,IAAI,GAAG,EAAE,WAAW,KAAK,MAAM,EAAE;QAC7B,OAAO,MAAM,CAAC,WAAW,CACpB,MAAM,CAAC,OAAO,CAAC,GAAG;AACd,aAAA,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAU;AAC3C,aAAA,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CACxC;;AAEd,IAAA,OAAO,GAAG;AACd;AAEM,SAAU,mBAAmB,CAC/B,GAAM,EACN,gBAAgB,GAAG,KAAK,EACxB,SAAS,GAAG,KAAK,EAAA;AAEjB,IAAA,OAAO,KAAK,CAAC,GAAG,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAC/E;;ACzCA,SAAS,QAAQ,CAAC,CAAU,EAAA;IACxB,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC/E;AAEA,SAAS,QAAQ,CAAC,CAAU,EAAA;IACxB,OAAO,OAAO,CAAC,KAAK;AAChB,UAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;AAC1D,UAAE,MAAM,CAAC,CAAC,CAAC;AACnB;AAEA;;AAEG;AACa,SAAA,qBAAqB,CAAI,CAAI,EAAE,CAAI,EAAA;AAC/C,IAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;AAC1B,IAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;AAC1B,IAAA,IAAI,MAAM,IAAI,MAAM,EAAE;AAClB,QAAA,IAAI,MAAM,IAAI,MAAM,EAAE;YAClB,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;;aAC7B,IAAI,MAAM,EAAE;YACf,OAAO,CAAC,CAAC;;aACN;AACH,YAAA,OAAO,CAAC;;;AAGhB,IAAA,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC7C;;SCtBgB,cAAc,CAAI,GAAqB,EAAE,OAAe,SAAS,EAAA;AAC7E,IAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CACjB,GAAG,CAAC,CAAC,MAAM,KAAI;QACX,IAAI,CAAC,IAAI,EAAE;AACP,YAAA,OAAO,MAAW;;QAEtB,OAAO,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAM;KACtC,CAAC,CACL;AACL;;ACRA,MAAM,UAAU,GAAG;AACf,IAAA,GAAG,EAAE;AACD,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,MAAM,EAAE,KAAK;AAChB,KAAA;CAC+B;AAE9B,SAAU,YAAY,CACxB,IAAY,EACZ,IAA6B,EAC7B,WAAmB,MAAM,EAAA;IAEzB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9D,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;IAC5C,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;AACrC,IAAA,CAAC,CAAC,IAAI,GAAG,GAAG;AACZ,IAAA,CAAC,CAAC,QAAQ,GAAG,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;AACrD,IAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,KAAK,EAAE;AACT,IAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AAC5B,IAAA,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC;AACnC;;ACxBM,SAAU,SAAS,CAAC,IAAe,EAAA;AACrC,IAAA,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;AAClC;;ACJM,SAAU,gBAAgB,CAAC,GAAW,EAAA;IACxC,OAAO,GAAG,CAAC,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC;AACpD;;ACEgB,SAAA,QAAQ,CAAC,OAAe,EAAE,MAAoB,EAAA;IAC1D,OAAOC,kBAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;AACxD;;ACNgB,SAAA,aAAa,CACzB,GAAqB,EACrB,YAAgD,EAAA;IAEhD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AACrB,QAAA,OAAO,EAAE;;IAEb,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE;AACzB,QAAA,OAAQ,GAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,KAC7B,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAC/D;;AAEZ,IAAA,OAAO,GAAU;AACrB;;ACXM,SAAU,cAAc,CAAI,KAAiC,EAAA;IAC/D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACvB,QAAA,OAAO,EAAE;;AAEb,IAAA,OAAO,KAAK;AAChB;;ACPgB,SAAA,YAAY,CAAC,EAAA,GAAa,GAAG,EAAA;AACzC,IAAA,OAAO,UAAU,MAAc,EAAE,WAAwB,EAAE,UAA8B,EAAA;QACrF,IAAI,KAAK,GAAkB,IAAI;AAC/B,QAAA,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK;QAE/B,UAAU,CAAC,KAAK,GAAG,YAAA;AACf,YAAA,IAAI,KAAK,KAAK,IAAI,EAAE;AAChB,gBAAA,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC;;AAE9B,YAAA,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,MAAK;;AAE3B,gBAAA,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,GAAG,IAAI;aACf,EAAE,EAAE,CAAC;AACV,SAAC;AACL,KAAC;AACL;;ACZgB,SAAA,kBAAkB,CAC9B,GAAW,EACX,EACI,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,EAClD,WAAW,EACX,QAAQ,GAKX,EAAA;AAED,IAAA,MAAM,MAAM,GAAG,SAAS,CAAe,QAAQ,EAAE,SAAS,CAAC,CAAC,IAAI,CAC5DC,QAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAC5BC,KAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EACtBC,WAAS,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EACpCD,KAAG,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,EAC1BE,sBAAoB,EAAE,EACtBC,aAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CACjD;IAED,OAAO;QACH,GAAG,GAAA;YACC,OAAO,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAChD;AACD,QAAA,GAAG,CAAC,KAAQ,EAAA;AACR,YAAA,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC;AACnC,YAAA,IAAI,UAAU,KAAK,IAAI,EAAE;AACrB,gBAAA,OAAO,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC;;YAEvC,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC;SAC/C;QACD,MAAM;QACN,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC;KACxC;AACL;;AC3BM,MAAO,mBAAuB,SAAQ,qBAAwB,CAAA;AAPpE,IAAA,WAAA,GAAA;;QASa,IAAW,CAAA,WAAA,GAAW,EAAE;QACxB,IAAI,CAAA,IAAA,GAAwB,QAAQ;QACpC,IAAU,CAAA,UAAA,GAA2B,MAAM;QAEpD,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;QAC3D,IAAI,CAAA,IAAA,GAAG,KAAK,EAAU;AACzB;8GARY,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EAJjB,sBAAsB,CAAC,MAAM,mBAAmB,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECRhE,+8BAkCA,EAAA,MAAA,EAAA,CAAA,4NAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAf,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgB,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAd,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAe,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDtBa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;+BACI,eAAe,EAAA,SAAA,EAEd,sBAAsB,CAAC,MAAyB,mBAAA,CAAC,cAEhD,KAAK,EAAA,QAAA,EAAA,+8BAAA,EAAA,MAAA,EAAA,CAAA,4NAAA,CAAA,EAAA;8BAGR,KAAK,EAAA,CAAA;sBAAb;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,IAAI,EAAA,CAAA;sBAAZ;;;MEHQ,gBAAgB,CAAA;8GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EAJV,YAAA,EAAA,CAAA,mBAAmB,CAExB,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,OAAO,EAAE,aAAa,aADzE,mBAAmB,CAAA,EAAA,CAAA,CAAA;+GAGpB,gBAAgB,EAAA,OAAA,EAAA,CAFf,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,OAAO,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA;;2FAE1E,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,mBAAmB,CAAC;oBACnC,OAAO,EAAE,CAAC,mBAAmB,CAAC;oBAC9B,OAAO,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,OAAO,EAAE,aAAa,CAAC;AACvF,iBAAA;;;MCKY,YAAY,CAAA;AAPzB,IAAA,WAAA,GAAA;QAQgC,IAAS,CAAA,SAAA,GAAY,IAAI;QAGrD,IAAI,CAAA,IAAA,GAAG,KAAK,EAAU;QAEtB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAC3D;8GAPY,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,wfClBzB,qXAaA,EAAA,MAAA,EAAA,CAAA,+XAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAlB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgB,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,wEAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAf,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDKa,YAAY,EAAA,UAAA,EAAA,CAAA;kBAPxB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,OAAO,EAGA,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,qXAAA,EAAA,MAAA,EAAA,CAAA,+XAAA,CAAA,EAAA;8BAGW,SAAS,EAAA,CAAA;sBAApC,WAAW;uBAAC,aAAa;gBAEjB,KAAK,EAAA,CAAA;sBAAb;;;METQ,SAAS,CAAA;8GAAT,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAT,SAAS,EAAA,YAAA,EAAA,CAJH,YAAY,CACjB,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,cAAc,EAAE,aAAa,CAAA,EAAA,OAAA,EAAA,CAC3C,YAAY,CAAA,EAAA,CAAA,CAAA;AAEb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAS,EAHR,OAAA,EAAA,CAAA,YAAY,EAAE,cAAc,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA;;2FAG5C,SAAS,EAAA,UAAA,EAAA,CAAA;kBALrB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,YAAY,CAAC;AAC5B,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,aAAa,CAAC;oBACtD,OAAO,EAAE,CAAC,YAAY,CAAC;AAC1B,iBAAA;;;ACXM,MAAM,MAAM,GAAG,aAAa;AAE7B,SAAU,eAAe,CAAC,GAAW,EAAA;AACvC,IAAA,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;AAC3C;;MCea,kBAAkB,CAAA;AAI3B,IAAA,WAAA,CACY,EAAc,EACd,QAAmB,EACnB,EAAc,EACd,QAAkB,EAAA;QAHlB,IAAE,CAAA,EAAA,GAAF,EAAE;QACF,IAAQ,CAAA,QAAA,GAAR,QAAQ;QACR,IAAE,CAAA,EAAA,GAAF,EAAE;QACF,IAAQ,CAAA,QAAA,GAAR,QAAQ;QAPpB,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QACjE,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;;IASnE,QAAQ,GAAA;AACJ,QAAA,aAAa,CAAC;AACV,YAAA,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAC/D,oBAAoB,EAAE,EACtB,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CACvC;AACD,YAAA,YAAY,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CACjE,oBAAoB,EAAE,EACtB,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CACvC;SACJ;aACI,IAAI,CACD,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,KAAI;YACnB,IAAI,CAAC,MAAM,EAAE;AACT,gBAAA,OAAO,IAAI;;AAEf,YAAA,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,CAAA,CAAA,EAAI,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC;YACjE,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAA,eAAA,CAAiB,CAAC;SAC7C,CAAC,EACF,oBAAoB,EAAE,EACtB,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;AAE9B,aAAA,SAAS,CAAC,CAAC,IAAI,KAAI;AAChB,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,WAAW,EAAE,IAAI,CAAC;AACvE,SAAC,CAAC;;AAGF,IAAA,UAAU,CAAC,IAAY,EAAA;AAC3B,QAAA,OAAO;AACF,aAAA,OAAO,CAAC,IAAI,EAAE,OAAO;AACrB,aAAA,OAAO,CAAC,IAAI,EAAE,MAAM;AACpB,aAAA,OAAO,CAAC,IAAI,EAAE,MAAM;AACpB,aAAA,OAAO,CAAC,IAAI,EAAE,QAAQ;AACtB,aAAA,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;;8GA5CtB,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,cAAc;AAC3B,iBAAA;;;MCcY,kBAAkB,CAAA;AAjB/B,IAAA,WAAA,GAAA;AAkBI,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAa;AACtC;8GAFY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EAdjB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;MAWR,EAZQ,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,2IAAE,aAAa,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,EAAE,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,WAAW,sIAAE,cAAc,EAAA,QAAA,EAAA,6CAAA,EAAA,MAAA,EAAA,CAAA,sBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,4BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAe7D,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAjB9B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EACf,OAAA,EAAA,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,CAAC,EAC7D,QAAA,EAAA,CAAA;;;;;;;;;;;AAWR,KAAA,CAAA,EAAA;;;MCXO,oBAAoB,CAAA;AAXjC,IAAA,WAAA,GAAA;AAYI,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAe;AACxC;8GAFY,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EARnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;AAMR,KAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAPQ,oBAAoB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,eAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,OAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FASrB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAXhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;oBAC1B,OAAO,EAAE,CAAC,oBAAoB,CAAC;AAC/B,oBAAA,QAAQ,EAAE,CAAA;;;;;;AAMR,KAAA,CAAA;AACL,iBAAA;;;ACNK,SAAU,2BAA2B,CAAC,KAA0B,EAAA;AAClE,IAAA,IAAI,OAAO,KAAK,EAAE,KAAK,KAAK,QAAQ,EAAE;AAClC,QAAA,OAAO,EAAE;;AAEb,IAAA,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;AAChC,IAAA,OAAO,cAAc,CACjB,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,MAAM,CAAC,IAAI,EACjB,MAAM,EACN,MAAM,EACN,KAAK,CAAC,MAAM,CAAC,QAAQ,EACrB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CACvB;AACL;;ACjBM,SAAU,qBAAqB,CAAC,KAAoB,EAAA;AACtD,IAAA,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE;AACf,QAAA,OAAO,EAAE;;AAEb,IAAA,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;AAChC,IAAA,OAAO,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,OAAO,CAAC;AAC1E;;ACXM,SAAU,eAAe,CAAC,KAAc,EAAA;AAC1C,IAAA,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;AACd,QAAA,OAAO,EAAE;;AAEb,IAAA,OAAO,MAAM,CAAC,KAAK,CAAC;AACxB;;ACDM,SAAU,aAAa,CAAC,KAAoB,EAAA;AAC9C,IAAA,QAAQ,KAAK,EAAE,IAAI;AACf,QAAA,KAAK,UAAU;AACX,YAAA,OAAO,2BAA2B,CAAC,KAAK,CAAC;AAC7C,QAAA,KAAK,UAAU;AACX,YAAA,OAAO,qBAAqB,CAAC,KAAK,CAAC;;IAE3C,OAAO,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,IAAI,IAAI;AAClD;;MCmCa,cAAc,CAAA;IA8BvB,WACY,CAAA,QAAkB,EAClB,MAAc,EAAA;QADd,IAAQ,CAAA,QAAA,GAAR,QAAQ;QACR,IAAM,CAAA,MAAA,GAAN,MAAM;QA/BlB,IAAK,CAAA,KAAA,GAAG,KAAK,EAAe;QAC5B,IAAS,CAAA,SAAA,GAAG,KAAK,EAA2B;AAC5C,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAU,KAAK,CAAC;QAEnC,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;QAChB,IAAM,CAAA,MAAA,GAAG,KAAK;QAItD,IAAW,CAAA,WAAA,GAAG,GAAG;AAIjB,QAAA,IAAA,CAAA,MAAM,GAAG,aAAa,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CACjF,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,YAAY,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EACpF,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CACjD;AACD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CACzB,GAAG,CAAC,CAAC,KAAK,KAAK,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAChF,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CACjD;QACD,IAAW,CAAA,WAAA,GAAG,aAAa,CAAC;AACxB,YAAA,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC3B,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,IAAI,KAAK,CAAC,CAAC;AACvD,SAAA,CAAC,CAAC,IAAI,CACH,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,aAAa,CAAC,KAAK,YAAY,IAAI,aAAa,CAAC,EACrE,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CACjD;;IAOD,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;;AAG9B,IAAA,KAAK,CAAC,KAAiB,EAAA;AACnB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AAC3D,YAAA,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAK;AACtC,gBAAA,IAAI,KAAK,EAAE,KAAK,EAAE;AACd,oBAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;;AACf,qBAAA,IAAI,OAAO,KAAK,EAAE,IAAI,KAAK,UAAU,EAAE;oBAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AAClC,oBAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AAC9B,wBAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC;wBACnC;;oBAEJ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;;AAEzC,aAAC,CAAC;AACN,SAAC,CAAC;;8GArDG,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAMH,gBAAgB,EAErB,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,CAAC,CAAU,MAAc,CAAC,KAAK,KAAK,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK,QAAQ,GAAG,CAAC,GAAG,GAAG,CAAC,sQCzD/F,qpGA2EA,EAAA,MAAA,EAAA,CAAA,8WAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED3CQ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACZ,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACP,aAAa,EACb,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,SAAS,EACT,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,YAAA,EAAA,QAAA,EAAA,OAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,UAAU,EACV,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,kBAAkB,4EAClB,uBAAuB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACvB,kBAAkB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAClB,oBAAoB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FASf,cAAc,EAAA,UAAA,EAAA,CAAA;kBApB1B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,EACV,OAAA,EAAA;wBACL,YAAY;wBACZ,OAAO;wBACP,aAAa;wBACb,SAAS;wBACT,UAAU;wBACV,kBAAkB;wBAClB,uBAAuB;wBACvB,kBAAkB;wBAClB,oBAAoB;qBACvB,EAGK,IAAA,EAAA;AACF,wBAAA,gBAAgB,EAAE,QAAQ;qBAC7B,EACgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,qpGAAA,EAAA,MAAA,EAAA,CAAA,8WAAA,CAAA,EAAA;oGAQP,MAAM,EAAA,CAAA;sBAA7C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAItC,WAAW,EAAA,CAAA;sBAHV,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA;AACH,wBAAA,SAAS,EAAE,CAAC,CAAU,MAAc,CAAC,KAAK,KAAK,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK,QAAQ,GAAG,CAAC,GAAG,GAAG,CAAC;AAC1F,qBAAA;gBAGQ,SAAS,EAAA,CAAA;sBAAjB;;;MEzBQ,kBAAkB,CAAA;AA/B/B,IAAA,WAAA,GAAA;QAgCI,IAAI,CAAA,IAAA,GAAG,KAAK,EAA8B;AAC7C;8GAFY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EA5BjB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;AAcT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,4GAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAfS,cAAc,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FA6Bf,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBA/B9B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EACf,OAAA,EAAA,CAAC,cAAc,CAAC,EACf,QAAA,EAAA;;;;;;;;;;;;;;AAcT,IAAA,CAAA,EAAA,MAAA,EAAA,CAAA,4GAAA,CAAA,EAAA;;;MCPQ,oBAAoB,CAAA;8GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,2EAXnB,CAA2B,yBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAW5B,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAbhC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,YAChB,CAA2B,yBAAA,CAAA,EAAA,eAAA,EAQpB,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;;ACXf,SAAU,qBAAqB,CAAC,IAAc,EAAA;AAChD,IAAA,OAAO,CACH,KAAA,EAAA,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,GAAG,MAAM,CAAC,IAAI,CACpE,CAAI,CAAA,EAAA,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE;AAClC;;ACFO,MAAM,YAAY,GAAS,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;AACxD,MAAM,gBAAgB,GAAG,GAAG;AAC5B,MAAM,8BAA8B,GAAG,CAAC;AACxC,MAAM,WAAW,GAAG;AACvB,IAAA,MAAM,EAAE,qBAAqB,CAAC,QAAQ,CAAC;AACvC,IAAA,IAAI,EAAE,qBAAqB,CAAC,MAAM,CAAC;CACtC;;ACwBK,SAAU,mBAAmB,CAA8B,EAAoB,EAAA;AACjF,IAAA,OAAO,OAAO,EAAE,KAAK,UAAU,GAAI,EAAe,GAAG,MAAM,EAAE;AACjE;AAEM,SAAU,aAAa,CACzB,KAAa,EACb,IAA0B,EAC1B,WAAoB,KAAK,EAAA;AAEzB,IAAA,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC;IACxC,OAAO,CAAC,GAAG,IAAI,KACX,0BAA0B,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAC5C,GAAG,CAAC,CAAC,KAAK,KAAI;QACV,MAAM,YAAY,GAAG,QAAQ,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE;AAC9E,QAAA,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;AACd,YAAA,OAAO,YAAY;;QAEvB,OAAO,OAAO,KAAK,KAAK,QAAQ,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE;KAC/E,CAAC,CACL;AACT;MAEa,UAAU,CAAA;IAUnB,WACI,CAAA,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAgB,EAC/E,eAA6B,EAAE,EAAA;QAE/B,IAAI,CAAC,KAAK,GAAG,KAAK,KAAK,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACnF,MAAM,kBAAkB,GAAG,SAAS,CAAC,CAAC,KAAK,IAAI,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC,IAAI,CACjD,GAAG,CAAC,CAAC,KAAK,KACN,OAAO,KAAK,KAAK;cACV,EAAE,KAAK,EAAE,kBAAkB,EAAE,GAAG,KAAK;cACtC,EAAE,KAAK,EAAE,KAAK,IAAI,kBAAkB,EAAE,CAC/C,CACJ;AACD,QAAA,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,YAAA,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC;;QAExD,IAAI,QAAQ,EAAE;AACV,YAAA,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC;;QAEhE,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;;QAEjD,IAAI,CAAC,MAAM,GAAG;AACV,YAAA,GAAG,YAAY;AACf,YAAA,GAAG,MAAM;AACT,YAAA,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;SAC/D;QACD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,0BAA0B,CAAC,MAAM,CAAC;QAC5E,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,0BAA0B,CAAC,IAAI,CAAC;;AAE5E;;AC/EK,SAAU,6BAA6B,CACzC,IAA0D,EAAA;AAE1D,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACjC,IAAA,OAAO,IAAI,CAAC,IAAI,CACZ,GAAG,CACC,CAAC,IAAI,KACD,IAAI,GAAG,CACH,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK;QAC9C,IAAI;AACJ,QAAA;YACI,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK;AACzB,gBAAA,qBAAqB,CAAC,QAAQ,EAAE,MAC5B,eAAe,CAAC,aAAa,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAC5C;gBACD,eAAe,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC;aACxD,CAAC;AACF,YAAA,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAC9B,SAAA;KACJ,CAAC,CACL,CACR,CACJ;AACL;AAEA,SAAS,SAAS,CACd,WAAmB,EACnB,MAAc,EACd,eAAuB,EACvB,YAAA,GAAuB,CAAC,EAAA;AAExB,IAAA,IAAI,WAAW,KAAK,MAAM,EAAE;QACxB,OAAO,OAAO,GAAG,YAAY;;AAC1B,SAAA,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;QACrC,OAAO,KAAK,GAAG,YAAY;;SACxB,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;QAC5D,OAAO,GAAG,GAAG,YAAY;;AAE7B,IAAA,OAAO,CAAC;AACZ;AAEgB,SAAA,UAAU,CACtB,IAA4B,EAC5B,MAAc,EAAA;AAEd,IAAA,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,EAAE;IAC5C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;SAC3B,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,MAAM;QACjC,KAAK;QACL,QAAQ,EACJ,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAC7B,CAAC,QAAQ,EAAE,YAAY,KACnB,YAAY,CAAC,MAAM,CACf,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,KAC1B,WAAW,GAAG,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,CAAC,EACtE,QAAQ,CACX,EACL,CAAC,CACJ,GAAG,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;AACxE,KAAA,CAAC;SACD,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ;AACxB,SAAA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ;SACtC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;AAC5B;AAEM,SAAU,QAAQ,CACpB,MAA2B,EAC3B,IAA4B,EAC5B,OAA2B,EAC3B,IAAU,EAAA;IAEV,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE;AACnC,QAAA,OAAO,MAAM;;AAEjB,IAAA,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC;IAChE,MAAM,UAAU,GAAG;AACd,SAAA,KAAK;SACL,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KACP,qBAAqB,CACjB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAC3C,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAC9C,CACJ;AACL,IAAA,OAAO,IAAI,CAAC,SAAS,KAAK,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,UAAU;AACxE;;ACnGM,SAAU,4BAA4B,CACxC,IAAwB,EAAA;AAExB,IAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE;IACpC,OAAO;AACH,QAAA,QAAQ,CAAC,MAAM,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnF,QAAA,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;KACnD;AACL;;ACPM,SAAU,aAAa,CAAsB,EAA6B,EAAA;IAC5E,OAAO,CAAC,IAAiC,KAAI;QACzC,OAAO,IAAI,CAAC,IAAI,CACZ,IAAI,CACA,CAAC,GAAG,EAAE,CAAC,KAAI;YACP,OAAO;gBACH,IAAI,EAAE,CAAC,IAAI,EAAE;AACb,gBAAA,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,KACvB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CACpD;aACJ;SACJ,EACD,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAA6B,CACnD,EACD,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CACxB;AACL,KAAC;AACL;;ACJM,MAAO,eAA4D,SAAQ,kBAGhF,CAAA;AAeG,IAAA,IAAa,SAAS,GAAA;QAClB,OAAO,IAAI,CAAC,WAA6D;;AAK7E,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AArBX,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC;AACxC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,eAAe,CAAuB,EAAE,CAAC;AAC3D,QAAA,IAAA,CAAA,KAAK,GAA2C,IAAI,CAAC,WAAW,CAAC,IAAI,CACjE,SAAS,CAAC,CAAC,UAAU,KACjB;cACO,IAAI,CAAC,WAA0C,CAAC,IAAI,CACjD,aAAa,CAAC,4BAA4B,CAAC,EAC3C,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;AAE1B,cAAE,IAAI,CAAC,WAAW,CACzB,EACD,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CACjD;AAMO,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,+BAA+B,EAAE;AAIvD,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;AACvE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AACpB,SAAC,CAAC;;AAGN,IAAA,OAAO,CAAC,IAAS,EAAA;AACb,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3B,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;AACxB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;;;AAIpC,IAAA,WAAW,CAAC,IAAoB,EAAA;AAC5B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;AACzB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;;;AAGtC;AAED,MAAM,+BAA+B,CAAA;AAMjC,IAAA,IAAI,MAAM,GAAA;QACN,OAAO,IAAI,CAAC,QAAQ;;;AAGxB,IAAA,IAAI,MAAM,CAAC,OAAO,EAAA;AAElB,IAAA,IAAI,cAAc,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;;AAKxC,IAAA,WAAA,CAAY,QAAiB,EAAA;QAjB7B,IAAS,CAAA,SAAA,GAAG,CAAC;QACb,IAAQ,CAAA,QAAA,GAAG,CAAC;AACZ,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,YAAY,EAAa;AACpC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,eAAe,CAAC,SAAS,CAAC;AAexC,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;;IAG1B,OAAO,CAAC,QAAQ,GAAG,EAAE,EAAA;AACjB,QAAA,IAAI,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,QAAQ;YACxC,IAAI,CAAC,MAAM,EAAE;;;IAIrB,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;QAC7B,IAAI,CAAC,MAAM,EAAE;;IAGjB,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;QAC9B,IAAI,CAAC,MAAM,EAAE;;IAGT,MAAM,GAAA;AACV,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YACX,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;AACtB,SAAA,CAAC;;AAET;;ACvGe,SAAA,gBAAgB,CAC5B,IAAa,EACb,aAAuD,EAAA;AAEvD,IAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,KAC3D,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CACjC;AAED,IAAA,MAAM,GAAG,GAAG;QACR;AACK,aAAA,GAAG,CAAC,CAAC,CAAC,KAAI;AACP,YAAA,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC;AAC5B,YAAA,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,CAAA,cAAA,CAAgB,CAAC;AACxC,SAAC;AACA,aAAA,IAAI,EAAE;AACX,QAAA,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KACV,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAC3E;KACJ;;IAED,IAAI,SAAS,GAAG,EAAE;AAClB,IAAA,KACI,IAAI,CAAC,GAAG,CAAC,EACT,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,EACjB,CAAC,IAAI,CAAC;MACR;QACE,IAAI,OAAO,GAAG,IAAI;AAClB,QAAA,KACI,IAAI,CAAC,GAAG,CAAC;SACT,CAAC,GAAG,GAAG,CAAC,MAAM,EACd,EAAE,CAAC,EACL;YACE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gBACX,OAAO,GAAG,KAAK;gBACf;;;QAGR,IAAI,OAAO,EAAE;AACT,YAAA,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;;;AAGzB,IAAA,SAAS,GAAG,SAAS,CAAC,OAAO,EAAE;AAC/B,IAAA,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE;AACvB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YACjC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;;;AAG3B,IAAA,OAAO,GAAG;AACd;;AC1BA,SAAS,QAAQ,CACb,MAAwD,EACxD,GAAG,CAAC,KAAK,EAAE,GAAG,CAAgB,EAAA;IAE9B,OAAO,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;AACtE;AAEA,SAAS,cAAc,CAAC,IAAuB,EAAA;AAC3C,IAAA,OAAO,IAAI,CAAC,IAAI,CACZ,WAAW,CAAC;AACR,QAAA,UAAU,EAAE,CAAC;AACb,QAAA,QAAQ,EAAE,IAAI;AACjB,KAAA,CAAC,CACL;AACL;AAEM,SAAU,uBAAuB,CACnC,IAA0F,EAAA;AAE1F,IAAA,OAAO,IAAI,CAAC,IAAI,CACZ,IAAI,CACA,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAI;AAC5B,QAAA,MAAM,gBAAgB,GAAG,GAAG,CAAC,IAAI,KAAK,IAAI;QAC1C,OAAO;AACH,YAAA,GAAG,EAAE,IAAI,GAAG,CACR;kBACO,IAA6B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK;oBAC3C,CAAC;oBACD,gBAAgB;AAChB,wBAAA,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;;AAEnB,wBAAA,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG;0BACnB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChB,0BAAE,IAAI,GAAG,CACH,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;4BACZ,CAAC;AACD,4BAAA;AACI,gCAAA,KAAK,EACD,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;AACT,sCAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG;sCAC9B,CAAC,CAAC;AACF,0CAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG;0CAC7B,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;;AAE7B,gCAAA,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK;gCACjB,WAAW,EAAE,CAAE,IAA6B,CACxC,GAAG,GAAG,CAAC,CACV,EAAE,KAAK;AACX,6BAAA;AACJ,yBAAA,CAAC,CACL;iBACV;kBACA,IAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK;oBAC1B,CAAC;oBACD,gBAAgB,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG;0BAC/B,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChB,0BAAE,IAAI,GAAG,CACH,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;4BACZ,CAAC;AACD,4BAAA;gCACI,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC;gCAC/B,SAAS,EAAE,CAAC,CAAC;AACT,sCAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc;AACxC,sCAAE,SAAS;AAClB,6BAAA;AACJ,yBAAA,CAAC,CACL;AACV,iBAAA,CAAC,CACX;YACD,IAAI;YACJ,IAAI;SACP;AACL,KAAC,EACD,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,EAInC,CACJ,EACD,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CACxB;AACL;AAEM,SAAU,aAAa,CACzB,IAAqC,EAAA;IAErC,OAAO,IAAI,CAAC,IAAI,CACZ,SAAS,CAAC,CAAC,WAAW,KAAI;AACtB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;AACnB,YAAA,OAAO,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC;;QAExB,OAAO,aAAa,CAChB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KACnC,aAAa,CACT,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAC5B,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CACT,SAAS,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,EAC3B,oBAAoB,CAACC,SAAO,CAAC,CAChC,CACJ,CACJ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAC1B,CACJ,CAAC,IAAI,CACF,YAAY,CAAC,CAAC,CAAC,EACf,GAAG,CACC,CAAC,GAAG,KACA,IAAI,GAAG,CACH,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK;YACnD,CAAC;AACD,YAAA,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,MAAM;AAC1C,gBAAA,GAAG,IAAI;AACP,gBAAA,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AAC1B,aAAA,CAAC,CAAC;SACN,CAAC,CACL,CACR,CACJ;KACJ,CAAC,CACL;AACL;;MC3Ha,kBAAkB,CAAA;AArB/B,IAAA,WAAA,GAAA;QAsBI,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;QACzD,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAC3D;8GAHY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EAnBjB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;AAMT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,uHAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAaQ,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBArB9B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EACd,QAAA,EAAA;;;;;;AAMT,IAAA,CAAA,EAAA,eAAA,EACgB,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,EAAE,EAAA,MAAA,EAAA,CAAA,uHAAA,CAAA,EAAA;;;ACVT,SAAU,0BAA0B,CAAC,EAAe,EAAA;AACtD,IAAA,OAAO,IAAI,UAAU,CAA4B,CAAC,UAAU,KAAI;QAC5D,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CAAC,CAAC,OAAO,KAAI;AAClD,YAAA,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;AACzB,gBAAA,IAAI,KAAK,CAAC,cAAc,EAAE;AACtB,oBAAA,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;;;AAGlC,SAAC,CAAC;AACF,QAAA,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACpB,OAAO;YACH,WAAW,GAAA;gBACP,QAAQ,CAAC,UAAU,EAAE;aACxB;SACJ;AACL,KAAC,CAAC;AACN;;MCAa,uBAAuB,CAAA;IAIhC,WACY,CAAA,UAAsB,EACtB,EAAc,EAAA;QADd,IAAU,CAAA,UAAA,GAAV,UAAU;QACV,IAAE,CAAA,EAAA,GAAF,EAAE;QALd,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;QAC/D,IAAmB,CAAA,mBAAA,GAAG,MAAM,EAAE;;IAO9B,QAAQ,GAAA;AACJ,QAAA,0BAA0B,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa;AACnD,aAAA,IAAI,CACD,MAAM,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,EACpC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;aAE9B,SAAS,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE;AACnC,SAAC,CAAC;;8GAjBD,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA;;;MCPY,mBAAmB,CAAA;AADhC,IAAA,WAAA,GAAA;AAEI,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAU;AAC/B,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC;AAExB,QAAA,IAAA,CAAA,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC;AACnC,QAAA,IAAA,CAAA,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC;AAC/B,QAAA,IAAA,CAAA,aAAa,GAAG,SAAS,CAAC,gBAAgB,CAAC;AAC3C,QAAA,IAAA,CAAA,aAAa,GAAG,SAAS,CAAC,gBAAgB,CAAC;AA0B9C;IAtBG,QAAQ,GAAA;AACJ,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE;QAClC,IAAI,SAAS,EAAE;AACX,YAAA,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AAC5B,YAAA,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,EAAW;AACxC,YAAA,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,EAAW;AACpD,YAAA,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,EAAW;YACpD,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC;AAClC,YAAA,IAAI,CAAC,cAAc,GAAG,SAAS;;;IAIvC,WAAW,GAAA;QACP,IAAI,CAAC,eAAe,EAAE;;IAGlB,eAAe,GAAA;QACnB,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,cAAc,EAAE;YACnC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC;;;8GA9B9C,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,yNAIN,YAAY,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACd,UAAU,EACJ,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,gBAAgB,gGAChB,gBAAgB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAPjC,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B;;;ACqDK,MAAO,qBACT,SAAQ,mBAAmB,CAAA;AAkB3B,IAAA,WAAA,CAAoB,EAAc,EAAA;AAC9B,QAAA,KAAK,EAAE;QADS,IAAE,CAAA,EAAA,GAAF,EAAE;;AAdtB,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAQ,EAAE,CAAC;;QAE3B,IAAI,CAAA,IAAA,GAAG,KAAK,CAAoC,EAAE,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;AAClF,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAsC,KAAK,CAAC;QAE5D,IAAS,CAAA,SAAA,GAAG,IAAI,cAAc,CAAI,IAAI,EAAE,EAAE,CAAC;QAC3C,IAAc,CAAA,cAAA,GAAG,aAAa,CAAC;YAC3B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC5C,YAAA,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;SAC1B,CAAC,CAAC,IAAI,CACH,GAAG,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,EAClC,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CACjD;;IAMQ,QAAQ,GAAA;QACb,KAAK,CAAC,QAAQ,EAAE;AAChB,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YACpE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;AAC9C,SAAC,CAAC;;AAGN,IAAA,WAAW,CAAC,OAAmD,EAAA;QAC3D,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE;YAClC,IAAI,CAAC,eAAe,EAAE;;;IAI9B,aAAa,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;AACzB,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;YAC1B;;QAEJ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;;IAGjC,gBAAgB,GAAA;QACpB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM;QAClC,OAAO,WAAW,KAAK,OAAO;;IAG1B,eAAe,GAAA;AACnB,QAAA,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;AACvF,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3F,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC;;8GArDhC,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAtCpB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,oGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAES,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAApB,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgB,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAf,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,WAAA,EAAA,IAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAWhD,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAxCjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EACjB,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;KAyBT,EACgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACtC,OAAA,EAAA,CAAC,YAAY,EAAE,cAAc,EAAE,iBAAiB,CAAC,EAAA,MAAA,EAAA,CAAA,oGAAA,CAAA,EAAA;;;ACTxD,MAAO,kBAAmB,SAAQ,mBAAmB,CAAA;AAnC3D,IAAA,WAAA,GAAA;;QAoCI,IAAO,CAAA,OAAA,GAAG,MAAM,EAAE;AACrB;8GAFY,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EAjCjB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;AAgBT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,wGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAES,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAe5C,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAnC9B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EACd,QAAA,EAAA;;;;;;;;;;;;;;;;KAgBT,EACgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACtC,OAAA,EAAA,CAAC,YAAY,EAAE,cAAc,EAAE,aAAa,CAAC,EAAA,MAAA,EAAA,CAAA,wGAAA,CAAA,EAAA;;;MCN7C,qBAAqB,CAAA;AAwC9B,IAAA,WAAA,CAAoB,EAAc,EAAA;QAAd,IAAE,CAAA,EAAA,GAAF,EAAE;QAvCtB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;QACxD,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;QACvD,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;QACvD,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;QACzD,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;QAC1D,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;QACzD,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAC5D,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAqB,EAAE,CAAC;QAEvC,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;QAC/C,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;AAEtD,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAA4B,SAAS,CAAC;AACnD,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAA4B,CAAC,CAAC;AACnD,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAA4B,CAAC,CAAC;AAEnD,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAS,EAAE,CAAC;QAC1B,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;QAChE,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;QACzD,IAAY,CAAA,YAAA,GAAG,MAAM,EAAU;AAC/B,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,WAAW,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QAE1D,IAAW,CAAA,WAAA,GAAG,MAAM,EAAE;;QAEtB,IAAI,CAAA,IAAA,GAAG,MAAM,EAAE;QACf,IAAO,CAAA,OAAA,GAAG,MAAM,EAAE;QAElB,IAAS,CAAA,SAAA,GAAG,QAAQ,CAAC,MACjB,IAAI,CAAC,KAAK;AACN,cAAE,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,IAAI,CAAC,KAAK;AACjD,kBAAE,IAAI,CAAC,aAAa,EAAE,GAAG;kBACvB,EAAE;AACR,iBAAC,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;gBAC3B,IAAI,CAAC,KAAK;cACV,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK;AACpC,kBAAE;kBACA,GAAG,CACd;;IAID,QAAQ,GAAA;QACJ,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;AAC9E,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7B,SAAC,CAAC;;8GA7CG,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,wwECrBlC,spHA4FA,EAAA,MAAA,EAAA,CAAA,4YAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgB,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAf,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAoB,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,MAAA,EAAA,YAAA,EAAA,MAAA,EAAA,aAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,YAAA,EAAA,QAAA,EAAA,OAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDvEa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,cAGhB,KAAK,EAAA,QAAA,EAAA,spHAAA,EAAA,MAAA,EAAA,CAAA,4YAAA,CAAA,EAAA;;;MEwDR,cAAc,CAAA;AA2IvB,IAAA,WAAA,CACY,EAAc,EACd,QAAkB,EAClB,GAAsB,EAAA;QAFtB,IAAE,CAAA,EAAA,GAAF,EAAE;QACF,IAAQ,CAAA,QAAA,GAAR,QAAQ;QACR,IAAG,CAAA,GAAA,GAAH,GAAG;QA7If,IAAI,CAAA,IAAA,GAAG,KAAK,CAAkC,EAAE,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;QAChF,IAAQ,CAAA,QAAA,GAAG,KAAK,EAAkB;AAClC,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAwD,EAAE,EAAE;AACvE,YAAA,SAAS,EAAE,cAAc;AAC5B,SAAA,CAAC;QACF,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;QAC/C,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;QACvD,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;QAChD,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;QACrD,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;QAC1D,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;;AAGzD,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC;QAClB,IAAO,CAAA,OAAA,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CACpC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAC5B,oBAAoB,EAAE,EACtBC,cAAY,CAAC,gBAAgB,CAAC,EAC9B,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CACjD;QACD,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;QAChE,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAC9D,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,eAAe,CAA6B,IAAI,CAAC;QACzE,IAAc,CAAA,cAAA,GAAG,aAAa,CAAC;YAC3B,KAAK,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AAClC,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;AACnD,YAAA,KAAK,CAAC,MAAM,IAAI,CAAC,oBAAoB,CAAC;SACzC,CAAC,CAAC,IAAI,CACH,GAAG,CACC,CAAC,CAAC,IAAI,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,KAC1C,CAAC,gBAAgB,IAAI,CAAC,mBAAmB,GAAG,gBAAgB,GAAG,IAAI,KAAK,EAAE,CACjF,EACD,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CACjD;AACD,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CACtC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,EAC1B,oBAAoB,EAAE,EACtB,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CACjD;;QAGD,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAC7D,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAsB,EAAE,CAAC;;AAG5C,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAO,YAAY,CAAC;;AAIhC,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE;AACvB,YAAA,SAAS,EAAE,CAAC,CAAqB,KAAI;AACjC,gBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;AAClB,oBAAA,OAAO,CAAC;;AAEZ,gBAAA,OAAO,gBAAgB,CAAC,CAAC,CAAC;aAC7B;AACJ,SAAA,CAAC;QACF,IAAU,CAAA,UAAA,GAAG,MAAM,EAAqC;QACxD,IAAY,CAAA,YAAA,GAAG,IAAI;AAEnB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,OAAO,EAAiB;AACtC,QAAA,IAAA,CAAA,MAAM,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC;QAC3C,IAAI,CAAA,IAAA,GAAG,MAAM,EAAiB;AAE9B,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,OAAO,EAAoC;AAEjE,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,eAAe,EAAQ;QACxC,IAAW,CAAA,WAAA,GAAG,QAAQ,CAAqB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9F,QAAA,IAAA,CAAA,qBAAqB,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CACvD,SAAS,CAAC,CAAC,IAAI,KACX,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CACzC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAC/C,CACJ,EACD,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CACjD;QACD,IAAa,CAAA,aAAA,GAAG,aAAa,CAAC;AAC1B,YAAA,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW;AACnC,YAAA,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK;AAC3B,YAAA,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;AACvC,SAAA,CAAC,CAAC,IAAI,CAAC,uBAAuB,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;AAChF,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC;QACjD,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAClC,GAAG,CAAC,MAAK;AACL,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,SAAC,CAAC,EACF,aAAa,EACb,GAAG,CAAC,MAAK;AACL,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC;AACzC,SAAC,CAAC,EACF,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CACjD;AACD,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;QACzB,IAAQ,CAAA,QAAA,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5E,IAAgB,CAAA,gBAAA,GAAG,aAAa,CAAC;AAC7B,YAAA,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;AAC1B,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;AACjD,YAAA,IAAI,CAAC,eAAe;YACpB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAC/B,SAAS,CAAC,IAAI,CAAC,EACf,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAChD;AACJ,SAAA,CAAC,CAAC,IAAI,CACH,GAAG,CACC,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,IAAI,CAAC,KAC3C,CAAC,OAAO,IAAI,kBAAkB,KAAK,CAAC,IAAI,kBAAkB,IAAI,SAAS;YACvE,kBAAkB,GAAG,IAAI,CAChC,EACD,oBAAoB,EAAE,EACtB,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CACjD;QAED,IAAiB,CAAA,iBAAA,GAAG,aAAa,CAAC;AAC9B,YAAA,IAAI,CAAC,qBAAqB;AAC1B,YAAA,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;AAChC,YAAA,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;AACvB,YAAA,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;AACjC,SAAA,CAAC,CAAC,IAAI,CACH,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK;AACrD,YAAA,IAAI,CACA,KAAK,CAAC,OAAO,CAAC,WAAW;AACrB,kBAAE,IAAI,EAAE,SAAS,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM;kBACpD,WAAW;AAEjB,kBAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI;kBACrB,EAAE,CAAC;AACT,YAAA,IAAI,aAAa,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;AAClD,YAAA,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;AACrC,SAAA,CAAC,EACF,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CACjD;QACD,IAAU,CAAA,UAAA,GAAG,WAAW;;IAaxB,QAAQ,GAAA;QACJ,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CACnE,oBAAoB,EAAE,EACtB,KAAK,EAAE,CACV;AAED,QAAA,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;AAC9C,aAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;AACjD,aAAA,SAAS,CAAC,CAAC,IAAI,KAAI;AAChB,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;AACjC,SAAC,CAAC;AACN,QAAA,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;AAClD,aAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;AACjD,aAAA,SAAS,CAAC,CAAC,IAAI,KAAI;AAChB,YAAA,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC;AACrC,SAAC,CAAC;AACN,QAAA,aAAa,CAAC;AACV,YAAA,IAAI,CAAC,OAAO;YACZ,KAAK;YACL,IAAI,CAAC,UAAU,CAAC,KAAK;AACrB,YAAA,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,MACjC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,6BAA6B,CAAC,CACxD;YACD,IAAI,CAAC,UAAU,CAAC,WAAW;AAC3B,YAAA,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC3D,YAAA,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjE;aACI,IAAI,CACD,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,CAAC,KAAI;YACxE,IAAI,UAAU,EAAE;AACZ,gBAAA,OAAO,MAAM;;AAEjB,YAAA,MAAM,YAAY,GACd,CAAC,gBAAgB,IAAI,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,MAAM;YACnE,OAAO,QAAQ,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC;SACrD,CAAC,EACF,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;AAE9B,aAAA,SAAS,CAAC,CAAC,QAAQ,KAAI;AACpB,YAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;AAC/B,YAAA,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC;AACpC,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;AAC3B,SAAC,CAAC;AACN,QAAA,KAAK,CACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAClC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAE5E,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;aAChC,SAAS,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;AAC/B,SAAC,CAAC;AACN,QAAA,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK;AACpB,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;aAChC,SAAS,CAAC,MAAK;YACZ,IAAI,CAAC,KAAK,EAAE;AAChB,SAAC,CAAC;;QAEN,IAAI,CAAC,UAAU,CAAC;AACX,aAAA,IAAI,CACD,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAC1BC,OAAK,EAAE,EACP,KAAK,CAAC,GAAG,CAAC,EACV,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;aAE9B,SAAS,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE;AACzC,SAAC,CAAC;;IAGV,IAAI,GAAA;AACA,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;;QAE7B,IAAI,CAAC,MAAM,EAAE;;IAGjB,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE;AACnB,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;YACxB,IAAI,CAAC,MAAM,EAAE;;AACV,aAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AACvB,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;;;IAIjD,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE;QAChC,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE;AACpF,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;;QAE7C,IAAI,CAAC,YAAY,EAAE;;IAGvB,WAAW,GAAA;QACP,IAAI,CAAC,eAAe;AACf,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;AAChC,aAAA,SAAS,CAAC,CAAC,OAAO,KAAI;AACnB,YAAA,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC;AAChC,SAAC,CAAC;;;AAIV,IAAA,IAAI,CAAC,KAAuB,EAAA;AACxB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAEA,OAAK,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;AACrE,YAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI;AAC5B,YAAA,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,KAAK;YAC7C,MAAM,YAAY,GAAG,IAAI;AACzB,YAAA,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,EAAE;YACxC,IAAI,gBAAgB,GAAG,CAAC;AACxB,YAAA,IAAI,aAAa,GAAG,YAAY,EAAE;AAC9B,gBAAA,WAAW,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;AACpC,gBAAA,WAAW,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;gBACpD,gBAAgB,GAAG,YAAY;;iBAC5B;AACH,gBAAA,WAAW,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AACpD,gBAAA,WAAW,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;AACpC,gBAAA,gBAAgB,GAAG,YAAY,GAAG,CAAC;;AAEvC,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBACjB,aAAa;gBACb,YAAY;gBACZ,IAAI;gBACJ,YAAY;gBACZ,WAAW;gBACX,gBAAgB;gBAChB,IAAI,EAAE,IAAI,EAAE,aAAa;AAC5B,aAAA,CAAC;AACN,SAAC,CAAC;;IAGE,eAAe,GAAA;AACnB,QAAA,OAAO,aAAa,CAAC;AACjB,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAC3B,SAAS,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACzE;YACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClC,SAAA,CAAC,CAAC,IAAI,CACH,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KACb,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CACtF,CACJ;;IAGG,MAAM,GAAA;AACV,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC5C,IAAI,CAAC,KAAK,EAAE;;AAGR,IAAA,gBAAgB,CAAC,QAA6B,EAAA;AAClD,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;QACrC,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,MAAM,QAAQ;QACzC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa;;IAGrC,KAAK,GAAA;AACR,QAAA,IAAI,CAAC,cAAc,EAAE,aAA6B,EAAE,QAAQ,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AAC3E,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,EAAE;QAClC,IAAI,CAAC,YAAY,EAAE;;;IAIf,YAAY,GAAA;;QAEhB,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI;;AAGvC,IAAA,qBAAqB,CAAC,KAA0B,EAAA;QACpD,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,8BAA8B,CAAC;AACtE,QAAA,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE;YAChC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;;;8GA3TnC,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,cAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,IAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAwIT,oBAAoB,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAU,UAAU,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAzF3C,OAAO,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAuFmB,UAAU,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAGpC,MAAM,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpNrB,49KA+HA,EAAA,MAAA,EAAA,CAAA,gkDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA1B,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgB,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAf,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA0B,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,WAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,4BAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,+BAAA,EAAA,2BAAA,EAAA,6BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,WAAA,EAAA,cAAA,EAAA,SAAA,EAAA,MAAA,EAAA,aAAA,EAAA,OAAA,EAAA,eAAA,EAAA,eAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,aAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAlC,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDpDa,cAAc,EAAA,UAAA,EAAA,CAAA;kBAP1B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,EAGF,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,49KAAA,EAAA,MAAA,EAAA,CAAA,gkDAAA,CAAA,EAAA;sIAiDG,aAAa,EAAA,CAAA;sBAAhC,SAAS;uBAAC,OAAO;gBAuFiC,cAAc,EAAA,CAAA;sBAAhE,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,gBAAgB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;gBACP,KAAK,EAAA,CAAA;sBAA9C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;gBACkB,kBAAkB,EAAA,CAAA;sBAA3E,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,oBAAoB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;gBAClB,QAAQ,EAAA,CAAA;sBAA7C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;;AEnMlC,MAAO,kBAAmB,SAAQ,gBAGvC,CAAA;AATD,IAAA,WAAA,GAAA;;AAUI,QAAA,IAAA,CAAA,OAAO,GAA+B;AAClC,YAAA,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE;YACvC,EAAE,KAAK,EAAE,MAAM,EAAE;YACjB,EAAE,KAAK,EAAE,QAAQ,EAAE;SACtB;AAED,QAAA,IAAA,CAAA,IAAI,GAAuB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM;YAChE,QAAQ,EAAE,GAAG,GAAG,CAAC;YACjB,IAAI,EAAE,CAAC,CAAC,KAAK;AACb,YAAA,MAAM,EAAE,KAAK;AAChB,SAAA,CAAC,CAAC;AACN;8GAfY,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,+FCjB/B,wPAMA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAmC,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,WAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDWa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAEN,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,wPAAA,EAAA;;;MEHR,qBAAqB,CAAA;8GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EARpB,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;AAIT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAtC,gBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAIQ,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAVjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE;;;;AAIT,IAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,UAAU,EAAE,KAAK;AACpB,iBAAA;;;MCOY,yBAAyB,CAAA;AAftC,IAAA,WAAA,GAAA;QAgBI,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAC3D;8GAFY,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAZxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;AAIT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,gDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EALS,cAAc,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,aAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAaf,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAfrC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EACvB,OAAA,EAAA,CAAC,cAAc,CAAC,EACf,QAAA,EAAA;;;;AAIT,IAAA,CAAA,EAAA,MAAA,EAAA,CAAA,gDAAA,CAAA,EAAA;;;MC2DQ,WAAW,CAAA;8GAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,iBARhB,kBAAkB;YAClB,cAAc;YACd,qBAAqB;YACrB,oBAAoB;AACpB,YAAA,qBAAqB,aAhCrB,YAAY;YACZ,cAAc;YACd,aAAa;YACb,cAAc;YACd,yBAAyB;YACzB,kBAAkB;YAClB,uBAAuB;YACvB,OAAO;YACP,UAAU;YACV,aAAa;YACb,uBAAuB;YACvB,kBAAkB;YAClB,qBAAqB;YACrB,cAAc;YACd,aAAa;YACb,SAAS;YACT,OAAO;YACP,WAAW;YACX,YAAY;YACZ,eAAe;YACf,gBAAgB;YAChB,aAAa;YACb,cAAc;YACd,mBAAmB;YACnB,SAAS;AACT,YAAA,kBAAkB,CASZ,EAAA,OAAA,EAAA,CAAA,cAAc,EAAE,oBAAoB,EAAE,qBAAqB,CAAA,EAAA,CAAA,CAAA;AAE5D,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,YApChB,YAAY;YACZ,cAAc;YACd,aAAa;YACb,cAAc;YACd,yBAAyB;YAEzB,uBAAuB;YACvB,OAAO;YAEP,aAAa;YAEb,kBAAkB;YAClB,qBAAqB;YACrB,cAAc;YACd,aAAa;YACb,SAAS;YAGT,YAAY;YACZ,eAAe;YACf,gBAAgB;YAChB,aAAa;YACb,cAAc;YACd,mBAAmB;YACnB,SAAS;YACT,kBAAkB,CAAA,EAAA,CAAA,CAAA;;2FAWb,WAAW,EAAA,UAAA,EAAA,CAAA;kBAtCvB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,cAAc;wBACd,aAAa;wBACb,cAAc;wBACd,yBAAyB;wBACzB,kBAAkB;wBAClB,uBAAuB;wBACvB,OAAO;wBACP,UAAU;wBACV,aAAa;wBACb,uBAAuB;wBACvB,kBAAkB;wBAClB,qBAAqB;wBACrB,cAAc;wBACd,aAAa;wBACb,SAAS;wBACT,OAAO;wBACP,WAAW;wBACX,YAAY;wBACZ,eAAe;wBACf,gBAAgB;wBAChB,aAAa;wBACb,cAAc;wBACd,mBAAmB;wBACnB,SAAS;wBACT,kBAAkB;AACrB,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACV,kBAAkB;wBAClB,cAAc;wBACd,qBAAqB;wBACrB,oBAAoB;wBACpB,qBAAqB;AACxB,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,qBAAqB,CAAC;AACzE,iBAAA;;;ACpEe,SAAA,iBAAiB,CAC7B,UAAoB,EACpB,IAII,GAAA;AACA,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,KAAK,EAAE,CAAC;AACX,CAAA,EAAA;AAED,IAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;AACpB,QAAA,OAAO,EAAE;;AAEb,IAAA,MAAM,GAAG,GAAa,CAAC,IAAI,CAAC,KAAK,CAAC;AAClC,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACxC,QAAA,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK;AACrC,QAAA,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AACrC,YAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;;AACX,aAAA,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE;YACrE,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;;aACvB;YACH,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;;;AAG/B,IAAA,OAAO,GAAG;AACd;;SCjBgB,YAAY,CACxB,UAA2E,EAC3E,eAAmC,EAAE,EAAA;IAErC,OAAO,CACH,aAA2D,EAC3D,EAAE,UAAU,EAAE,GAAG,MAAM,EAAA,GAAoD,EAAE,KAClE;AACX,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACjC,QAAA,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC;QACpE,MAAM,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM;QAChD,OAAO;YACH,KAAK;AACL,YAAA,GAAG,YAAY;AACf,YAAA,GAAG,MAAM;AACT,YAAA,CAAC,OAAO,GAAG,CAAC,GAAG,QAAuB,KAAI;AACtC,gBAAA,MAAM,UAAU,GAAG,0BAA0B,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAC1E,SAAS,CAAC,CAAC,UAAU,KACjB,0BAA0B,CACtB,qBAAqB,CAAC,QAAQ,EAAE,MAC5B,UAAU,CAAC,UAAU,EAAE,GAAG,QAAQ,CAAC,CACtC,CACJ,CACJ,CACJ;AACD,gBAAA,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE;oBACjB,MAAM,gBAAgB,GAAG,aAAa,CAClC,KAAK,EACL,MAAM,CAAC,OAAO,CAAC,EACf,CAAC,CAAC,MAAM,EAAE,KAAK,CAClB,CAAC,GAAG,QAAQ,CAAC;oBACd,OAAO,aAAa,CAAC,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAI,CACrD,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAC5E;;AAEL,gBAAA,OAAO,UAAU;aACpB;SACJ;AACL,KAAC;AACL;;MC3Ca,gBAAgB,GAAG,YAAY,CACxC,CAAC,MAA2B,KAAI;IAC5B,OAAO;AACH,QAAA,IAAI,EAAE,MAAM;QACZ,MAAM;KACT;AACL,CAAC,EACD;AACI,IAAA,KAAK,EAAE,MAAM;AACb,IAAA,MAAM,EAAE,EAAE;AACV,IAAA,MAAM,EAAE,KAAK;AACb,IAAA,KAAK,EAAE;AACH,QAAA,OAAO,EAAE,CAAC;AACV,QAAA,KAAK,EAAE,GAAG;AACb,KAAA;AACJ,CAAA;;ACVC,MAAO,sBAAuB,SAAQ,gBAI3C,CAAA;AAVD,IAAA,WAAA,GAAA;;AAWI,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,WAAW,CAAS,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAS/D;IAPG,OAAO,GAAA;QACH,IAAI,CAAC,gBAAgB,CACjB,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE;cAC9B,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;cAC5B,SAAS,CAClB;;8GAZI,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,mGCXnC,m1BAuBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAmC,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAlC,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAe,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDZa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAEV,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,m1BAAA,EAAA;;;MEgBR,mBAAmB,CAAA;8GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAnB,mBAAmB,EAAA,YAAA,EAAA,CAHb,sBAAsB,CAAA,EAAA,OAAA,EAAA,CARjC,eAAe;YACf,eAAe;YACf,YAAY;YACZ,kBAAkB;YAClB,YAAY;YACZ,cAAc;AACd,YAAA,mBAAmB,aAGb,sBAAsB,CAAA,EAAA,CAAA,CAAA;AAEvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAXxB,eAAe;YACf,eAAe;YACf,YAAY;YACZ,kBAAkB;YAClB,YAAY;YACZ,cAAc;YACd,mBAAmB,CAAA,EAAA,CAAA,CAAA;;2FAKd,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAb/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,eAAe;wBACf,eAAe;wBACf,YAAY;wBACZ,kBAAkB;wBAClB,YAAY;wBACZ,cAAc;wBACd,mBAAmB;AACtB,qBAAA;oBACD,YAAY,EAAE,CAAC,sBAAsB,CAAC;oBACtC,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACpC,iBAAA;;;ACbK,MAAO,sBAAuB,SAAQ,gBAG3C,CAAA;AACG,IAAA,IAAI,iBAAiB,GAAA;QACjB,QACI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,qBAAqB,EAAE,WAAW;AAC3D,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK;;8GAP5B,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,oGCXnC,srBAoBA,EAAA,MAAA,EAAA,CAAA,8aAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAlB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAmC,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAnC,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDTa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,cAGhB,KAAK,EAAA,QAAA,EAAA,srBAAA,EAAA,MAAA,EAAA,CAAA,8aAAA,CAAA,EAAA;;;MEHR,oBAAoB,CAAA;AAC7B,IAAA,WAAA,CAAmB,WAAiC,EAAA;QAAjC,IAAW,CAAA,WAAA,GAAX,WAAW;;8GADrB,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAApB,oBAAoB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,UAAU,EAAE,KAAK;AACpB,iBAAA;;;MCCY,qBAAqB,CAAA;AAC9B,IAAA,WAAA,CAAmB,WAAiC,EAAA;QAAjC,IAAW,CAAA,WAAA,GAAX,WAAW;;8GADrB,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE,KAAK;AACpB,iBAAA;;;MCwBY,gBAAgB,CAAA;IAczB,IAA0B,OAAO,CAAC,OAAgC,EAAA;AAC9D,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC;;AAG1E,IAAA,IAAI,mBAAmB,GAAA;QACnB,OAAO,IAAI,CAAC,oBAAoB,EAAE,WAAW,IAAI,IAAI,CAAC,eAAe;;AAGzE,IAAA,IAAI,oBAAoB,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,qBAAqB,EAAE,WAAW;;IA0BlD,WACY,CAAA,MAAqB,EACrB,kBAAsC,EAAA;QADtC,IAAM,CAAA,MAAA,GAAN,MAAM;QACN,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB;QAlDrB,IAAM,CAAA,MAAA,GAAG,CAAC;QACqB,IAAK,CAAA,KAAA,GAAG,KAAK;;AAErD,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC;AAEN,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAQ;QAoB1C,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CACtE,GAAG,CAAC,CAAC,CAAC,KAAI;YACN,IAAI,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;AACnC,gBAAA,OAAO,CAAC;;YAEZ,IAAI,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;AAClC,gBAAA,OAAO,CAAC;;YAEZ,IAAI,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;AACnC,gBAAA,OAAO,CAAC;;YAEZ,IAAI,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;AAClC,gBAAA,OAAO,CAAC;;AAEZ,YAAA,OAAO,CAAC;SACX,CAAC,CACL;AAED,QAAA,IAAA,CAAA,sBAAsB,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAChF,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,MAAM,GAAG,IAAI,CAAC,CACzC;AACD,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC;;IAOtC,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;8GAvDtD,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAsC,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAtB,IAAA,CAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAhB,gBAAgB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAEL,gBAAgB,CAMtB,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,WAAW,sGACX,qBAAqB,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAErB,oBAAoB,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxCtC,uOAKA,EAAA,MAAA,EAAA,CAAA,4tBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAf,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDwBa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAN5B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,cAGT,KAAK,EAAA,QAAA,EAAA,uOAAA,EAAA,MAAA,EAAA,CAAA,4tBAAA,CAAA,EAAA;kHAGR,MAAM,EAAA,CAAA;sBAAd;gBACuC,KAAK,EAAA,CAAA;sBAA5C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAI5B,KAAK,EAAA,CAAA;sBAAd;gBAE4C,eAAe,EAAA,CAAA;sBAA3D,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;gBAE3C,qBAAqB,EAAA,CAAA;sBADpB,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,qBAAqB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;gBAGrD,oBAAoB,EAAA,CAAA;sBADnB,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,oBAAoB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;gBAG1B,OAAO,EAAA,CAAA;sBAAhC,SAAS;uBAAC,SAAS;;;MEjCX,0BAA0B,CAAA;8GAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,kHCVvC,0mBAiBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAuB,gBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAArC,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAe,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDPa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBANtC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,cAGrB,KAAK,EAAA,QAAA,EAAA,0mBAAA,EAAA;8BAGR,OAAO,EAAA,CAAA;sBAAf;;;ME+BQ,aAAa,CAAA;8GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,iBAvBlB,gBAAgB;YAChB,0BAA0B;YAC1B,sBAAsB;YACtB,qBAAqB;AACrB,YAAA,oBAAoB,aASpB,YAAY;YACZ,aAAa;YACb,eAAe;YACf,aAAa;YACb,YAAY;YACZ,YAAY;YACZ,aAAa;AACb,YAAA,cAAc,aAbd,gBAAgB;YAChB,0BAA0B;YAC1B,qBAAqB;YACrB,oBAAoB,CAAA,EAAA,CAAA,CAAA;AAaf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YAVlB,YAAY;YACZ,aAAa;YACb,eAAe;YACf,aAAa;YACb,YAAY;YACZ,YAAY;YACZ,aAAa;YACb,cAAc,CAAA,EAAA,CAAA,CAAA;;2FAGT,aAAa,EAAA,UAAA,EAAA,CAAA;kBAzBzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,YAAY,EAAE;wBACV,gBAAgB;wBAChB,0BAA0B;wBAC1B,sBAAsB;wBACtB,qBAAqB;wBACrB,oBAAoB;AACvB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,gBAAgB;wBAChB,0BAA0B;wBAC1B,qBAAqB;wBACrB,oBAAoB;AACvB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,aAAa;wBACb,eAAe;wBACf,aAAa;wBACb,YAAY;wBACZ,YAAY;wBACZ,aAAa;wBACb,cAAc;AACjB,qBAAA;AACJ,iBAAA;;;ACnBK,MAAO,uBAAwB,SAAQ,mBAAuC,CAAA;AAQhF,IAAA,WAAA,CAAoB,EAA0B,EAAA;AAC1C,QAAA,KAAK,EAAE;QADS,IAAE,CAAA,EAAA,GAAF,EAAE;QAPkB,IAAQ,CAAA,QAAA,GAAY,KAAK;AAEjE,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAqB;AACxC,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,GAAG,EAAE,SAAS;AACjB,SAAA,CAAC;;8GANO,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAjB,IAAA,CAAA,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAvB,uBAAuB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EACZ,gBAAgB,CATzB,EAAA,EAAA,SAAA,EAAA;AACP,YAAA,GAAG,sBAAsB,CAAC,MAAM,uBAAuB,CAAC;AACxD,YAAA,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC5C,YAAA,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE;AAC3E,YAAA,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,oBAAoB,EAAE;AAChE,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnBL,moCA4BA,EAAA,MAAA,EAAA,CAAA,8JAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgB,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,KAAA,EAAA,KAAA,EAAA,UAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,uDAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,iDAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhB,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAoB,gBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDNa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAZnC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAGnB,SAAA,EAAA;AACP,wBAAA,GAAG,sBAAsB,CAAC,6BAA6B,CAAC;AACxD,wBAAA,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC5C,wBAAA,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE;AAC3E,wBAAA,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,oBAAoB,EAAE;AAChE,qBAAA,EAAA,UAAA,EACW,KAAK,EAAA,QAAA,EAAA,moCAAA,EAAA,MAAA,EAAA,CAAA,8JAAA,CAAA,EAAA;6FAGuB,QAAQ,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;;MEA7B,oBAAoB,CAAA;8GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAApB,oBAAoB,EAAA,YAAA,EAAA,CAXd,uBAAuB,CAAA,EAAA,OAAA,EAAA,CAElC,YAAY;YACZ,mBAAmB;YACnB,cAAc;YACd,mBAAmB;YACnB,eAAe;AACf,YAAA,aAAa,aAEP,uBAAuB,CAAA,EAAA,CAAA,CAAA;AAExB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YATzB,YAAY;YACZ,mBAAmB;YACnB,cAAc;YACd,mBAAmB;YACnB,eAAe;YACf,aAAa,CAAA,EAAA,CAAA,CAAA;;2FAIR,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAZhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,uBAAuB,CAAC;AACvC,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,mBAAmB;wBACnB,cAAc;wBACd,mBAAmB;wBACnB,eAAe;wBACf,aAAa;AAChB,qBAAA;oBACD,OAAO,EAAE,CAAC,uBAAuB,CAAC;AACrC,iBAAA;;;AClBe,SAAA,gBAAgB,CAAC,CAAY,EAAE,CAAY,EAAA;AACvD,IAAA,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC;;IAElB,OAAOF,SAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,IAAIA,SAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC;AAC7D;;ACLgB,SAAA,sBAAsB,CAAC,OAAA,GAAkB,CAAC,EAAA;IACtD,OAAO;AACH;;;;AAIG;QACH,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC;AAC/C,QAAA,GAAG,EAAE,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;KAC5B;AACL;;ACGM,MAAO,yBAA0B,SAAQ,mBAAgC,CAAA;AAQ3E,IAAA,WAAA,CAAoB,EAA0B,EAAA;AAC1C,QAAA,KAAK,EAAE;QADS,IAAE,CAAA,EAAA,GAAF,EAAE;AALtB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAc;AACjC,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,GAAG,EAAE,SAAS;AACjB,SAAA,CAAC;;8GANO,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAApB,IAAA,CAAA,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAHvB,sBAAsB,CAAC,MAAM,yBAAyB,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECdtE,+XAUA,EAAA,MAAA,EAAA,CAAA,qEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgB,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDOa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAPrC,SAAS;+BACI,sBAAsB,EAAA,SAAA,EAGrB,sBAAsB,CAAC,MAA+B,yBAAA,CAAC,cACtD,KAAK,EAAA,QAAA,EAAA,+XAAA,EAAA,MAAA,EAAA,CAAA,qEAAA,CAAA,EAAA;6FAGR,KAAK,EAAA,CAAA;sBAAb;;;MEPQ,sBAAsB,CAAA;8GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,iBAJhB,yBAAyB,CAAA,EAAA,OAAA,EAAA,CAC9B,mBAAmB,EAAE,cAAc,aACnC,yBAAyB,CAAA,EAAA,CAAA,CAAA;+GAE1B,sBAAsB,EAAA,OAAA,EAAA,CAHrB,mBAAmB,EAAE,cAAc,CAAA,EAAA,CAAA,CAAA;;2FAGpC,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,yBAAyB,CAAC;AACzC,oBAAA,OAAO,EAAE,CAAC,mBAAmB,EAAE,cAAc,CAAC;oBAC9C,OAAO,EAAE,CAAC,yBAAyB,CAAC;AACvC,iBAAA;;;ACMK,MAAO,kBAAmB,SAAQ,qBAAuC,CAAA;AAN/E,IAAA,WAAA,GAAA;;AAUI,QAAA,IAAA,CAAA,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CACvC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAC5B,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CACjD;AAaJ;AAXsB,IAAA,iBAAiB,CAAC,KAAa,EAAA;AAC9C,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;;AAGZ,IAAA,iBAAiB,CAAC,KAAe,EAAA;QAChD,OAAO,CAAC,KAAK,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC;;AAG3B,IAAA,QAAQ,CAAC,KAAgB,GAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAA;AAC/C,QAAA,OAAO,iBAAiB,CAAC,KAAK,IAAI,EAAE,CAAC;;8GAlBhC,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,SAAA,EAHhB,sBAAsB,CAAC,MAAM,kBAAkB,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECb/D,yhBAaA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhB,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgB,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAf,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDGa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;+BACI,cAAc,EAAA,SAAA,EAEb,sBAAsB,CAAC,MAAwB,kBAAA,CAAC,cAC/C,KAAK,EAAA,QAAA,EAAA,yhBAAA,EAAA;8BAGR,KAAK,EAAA,CAAA;sBAAb;gBACQ,WAAW,EAAA,CAAA;sBAAnB;;;MENQ,eAAe,CAAA;8GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAf,eAAe,EAAA,YAAA,EAAA,CAJT,kBAAkB,CAEvB,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,cAAc,EAAE,mBAAmB,CAAA,EAAA,OAAA,EAAA,CADjD,kBAAkB,CAAA,EAAA,CAAA,CAAA;AAGnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAFd,OAAA,EAAA,CAAA,YAAY,EAAE,cAAc,EAAE,mBAAmB,CAAA,EAAA,CAAA,CAAA;;2FAElD,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,kBAAkB,CAAC;oBAClC,OAAO,EAAE,CAAC,kBAAkB,CAAC;AAC7B,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,mBAAmB,CAAC;AAC/D,iBAAA;;;MCJY,kBAAkB,CAAA;8GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,yECP/B,iTASA,EAAA,MAAA,EAAA,CAAA,uNAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDFa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;iCAGM,KAAK,EAAA,QAAA,EAAA,iTAAA,EAAA,MAAA,EAAA,CAAA,uNAAA,CAAA,EAAA;;;AEArB,MAAM,MAAM,GAAW,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;MAMvD,sBAAsB,CAAA;8GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,0CAFrB,YAAY,CAAA,EAAA,CAAA,CAAA;+GAEb,sBAAsB,EAAA,OAAA,EAAA,CAHrB,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC7B,YAAY,CAAA,EAAA,CAAA,CAAA;;2FAEb,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACxC,OAAO,EAAE,CAAC,YAAY,CAAC;AAC1B,iBAAA;;;MCAY,eAAe,CAAA;8GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAFT,YAAA,EAAA,CAAA,kBAAkB,CADvB,EAAA,OAAA,EAAA,CAAA,sBAAsB,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA;+GAGtC,eAAe,EAAA,OAAA,EAAA,CAHd,sBAAsB,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA;;2FAGtC,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,sBAAsB,EAAE,aAAa,CAAC;oBAChD,YAAY,EAAE,CAAC,kBAAkB,CAAC;AACrC,iBAAA;;;ACPe,SAAA,cAAc,CAAI,MAAiB,EAAE,aAAqB,EAAA;AACtE,IAAA,QACI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC,QAAQ,GAAG,aAAa,CAAC;QAC/D,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,QAAQ,CAAC,aAAa,CAAC;AACtD,QAAA,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,QAAQ,GAAG,aAAa,CAAC;AAErE;AAEgB,SAAA,aAAa,CAAI,OAAoB,EAAE,IAAY,EAAA;AAC/D,IAAA,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE;AACxC,IAAA,OAAO,OAAO,EAAE,MAAM,GAAG,CAAC,MAAM,KAAK,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAC/E;;ACXgB,SAAA,iBAAiB,CAAI,OAAoB,EAAE,KAAQ,EAAA;AAC/D,IAAA,OAAO,OAAO,EAAE,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC;AACpD;;ACEM,SAAU,WAAW,CACvB,OAAoB,EACpB,QAAa,EACb,IAAa,EACb,IAAA,GAAoD,EAAE,EAAA;AAEtD,IAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACd,QAAA,OAAO,IAAI;;IAEf,IAAI,IAAI,CAAC,QAAQ,IAAI,OAAO,EAAE,MAAM,GAAG,CAAC,EAAE;AACtC,QAAA,OAAO,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM;;AAEzD,IAAA,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE;AACnB,QAAA,OAAO,EAAE;;IAEb,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AACtD,IAAA,OAAO,IAAI,CAAC,SAAS,GAAG,MAAM,EAAE,KAAK,GAAG,MAAM,EAAE,WAAW;AAC/D;;ACRM,MAAO,oBAAkC,SAAQ,qBAA0B,CAAA;AAPjF,IAAA,WAAA,GAAA;;QAQa,IAAO,CAAA,OAAA,GAAgB,EAAE;AACxB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAU;QAE1C,IAAU,CAAA,UAAA,GAA2B,MAAM;QAK3C,IAAQ,CAAA,QAAA,GAAG,KAAK;QAEe,IAAc,CAAA,cAAA,GAAG,KAAK;QACtB,IAAQ,CAAA,QAAA,GAAG,KAAK;QAChB,IAAQ,CAAA,QAAA,GAAG,KAAK;QAIxD,IAAS,CAAA,SAAA,GAAW,EAAE;AAatB,QAAA,IAAA,CAAA,MAAM,GAAG,CAAC,IAAY,EAAE,IAAe,KAAI;AACvC,YAAA,OAAO,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;AAC1E,SAAC;AACJ;AAdG,IAAA,IAAI,QAAQ,GAAA;AACR,QAAA,OAAO,WAAW,CACd,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAU,CAAC,EAC9D,IAAI,CAAC,IAAI,EACT;YACI,QAAQ,EAAE,IAAI,CAAC,QAAQ;AAC1B,SAAA,CACJ;;8GA3BI,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAWT,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,cAAA,EAAA,CAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAgB,CAChB,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,gBAAgB,sCAChB,gBAAgB,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,SAAA,EAhBzB,sBAAsB,CAAC,MAAM,oBAAoB,CAAC,iDCZjE,swEA2DA,EAAA,MAAA,EAAA,CAAA,gWAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgB,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAf,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,cAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,aAAA,EAAA,YAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,cAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,aAAA,EAAA,WAAA,EAAA,YAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,OAAA,EAAA,IAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAe,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,WAAA,EAAA,IAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAjB,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FD5Ca,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;+BACI,gBAAgB,EAAA,SAAA,EAGf,sBAAsB,CAAC,MAA0B,oBAAA,CAAC,cACjD,KAAK,EAAA,QAAA,EAAA,swEAAA,EAAA,MAAA,EAAA,CAAA,gWAAA,CAAA,EAAA;8BAGR,OAAO,EAAA,CAAA;sBAAf;gBACS,YAAY,EAAA,CAAA;sBAArB;gBAEQ,UAAU,EAAA,CAAA;sBAAlB;gBAEQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBAEuC,cAAc,EAAA,CAAA;sBAArD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,QAAQ,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,QAAQ,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAE7B,IAAI,EAAA,CAAA;sBAAZ;;;METQ,iBAAiB,CAAA;8GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAjB,iBAAiB,EAAA,YAAA,EAAA,CAXX,oBAAoB,CAAA,EAAA,OAAA,EAAA,CAG/B,YAAY;YACZ,cAAc;YACd,eAAe;YACf,WAAW;YACX,mBAAmB;AACnB,YAAA,iBAAiB,aAPX,oBAAoB,CAAA,EAAA,CAAA,CAAA;AAUrB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YARtB,YAAY;YACZ,cAAc;YACd,eAAe;YACf,WAAW;YACX,mBAAmB;YACnB,iBAAiB,CAAA,EAAA,CAAA,CAAA;;2FAGZ,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAZ7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,oBAAoB,CAAC;oBACpC,OAAO,EAAE,CAAC,oBAAoB,CAAC;AAC/B,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,cAAc;wBACd,eAAe;wBACf,WAAW;wBACX,mBAAmB;wBACnB,iBAAiB;AACpB,qBAAA;AACJ,iBAAA;;;ACJK,MAAO,0BAA8B,SAAQ,qBAAwB,CAAA;AAP3E,IAAA,WAAA,GAAA;;QAQa,IAAO,CAAA,OAAA,GAAgB,EAAE;QAKzB,IAAI,CAAA,IAAA,GAAG,MAAM;QAEkB,IAAI,CAAA,IAAA,GAAG,KAAK;QACZ,IAAQ,CAAA,QAAA,GAAG,KAAK;AAMxD,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAAc,EAAE,CAAC;AAC/C,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC5D,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAC3E,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CACjD;AACD,QAAA,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CACnE,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,EACzD,GAAG,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EACpD,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CACjD;AAQJ;AArBG,IAAA,IAAI,QAAQ,GAAA;QACR,OAAO,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;;AAcjF,IAAA,WAAW,CAAC,OAAwD,EAAA;AACzE,QAAA,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC;AAC1B,QAAA,IAAI,OAAO,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;;;8GA7BrC,0BAA0B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,EAQf,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,gBAAgB,CAChB,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,gBAAgB,CAZzB,EAAA,EAAA,SAAA,EAAA,sBAAsB,CAAC,MAAM,0BAA0B,CAAC,sECbvE,i5DAqDA,EAAA,MAAA,EAAA,CAAA,+DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgB,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAd,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,OAAA,EAAA,8BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgB,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,mDAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,yBAAA,EAAA,4BAAA,EAAA,cAAA,EAAA,yBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAxC,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDrCa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAPtC,SAAS;+BACI,sBAAsB,EAAA,SAAA,EAGrB,sBAAsB,CAAC,MAAgC,0BAAA,CAAC,cACvD,KAAK,EAAA,QAAA,EAAA,i5DAAA,EAAA,MAAA,EAAA,CAAA,+DAAA,CAAA,EAAA;8BAGR,OAAO,EAAA,CAAA;sBAAf;gBAEQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBAEuC,IAAI,EAAA,CAAA;sBAA3C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,QAAQ,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;;MEF7B,uBAAuB,CAAA;8GAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAvB,uBAAuB,EAAA,YAAA,EAAA,CAZjB,0BAA0B,CAAA,EAAA,OAAA,EAAA,CAGrC,YAAY;YACZ,cAAc;YACd,WAAW;YACX,mBAAmB;YACnB,qBAAqB;YACrB,eAAe;AACf,YAAA,aAAa,aARP,0BAA0B,CAAA,EAAA,CAAA,CAAA;AAW3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,YAT5B,YAAY;YACZ,cAAc;YACd,WAAW;YACX,mBAAmB;YACnB,qBAAqB;YACrB,eAAe;YACf,aAAa,CAAA,EAAA,CAAA,CAAA;;2FAGR,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAbnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,0BAA0B,CAAC;oBAC1C,OAAO,EAAE,CAAC,0BAA0B,CAAC;AACrC,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,cAAc;wBACd,WAAW;wBACX,mBAAmB;wBACnB,qBAAqB;wBACrB,eAAe;wBACf,aAAa;AAChB,qBAAA;AACJ,iBAAA;;;MCjBY,uBAAuB,CAAA;AAGhC,IAAA,WAAA,CAAoB,IAAgB,EAAA;QAAhB,IAAI,CAAA,IAAA,GAAJ,IAAI;;AAExB,IAAA,MAAM,IAAI,CAAC,EAAE,SAAS,EAAyB,EAAA;AAC3C,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAI,SAAS,CAAC,CAAC;;8GANzD,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAvB,uBAAuB,EAAA,CAAA,CAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC;;;ACFM,MAAM,kBAAkB,GAAG,eAAe;MAEpC,QAAQ,CAAA;AAGjB,IAAA,IAAI,IAAI,GAAA;AACJ,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,kBAAkB,CAAC;;AAG9D,IAAA,IAAI,OAAO,GAAA;AACP,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;;AAGxD,IAAA,IAAI,KAAK,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;;AAGjC,IAAA,IAAI,OAAO,GAAA;AACP,QAAA,OAAO,MAAM,CAAC,WAAW,CACrB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,CACvF;;AAGL,IAAA,WAAA,CAAY,KAAc,EAAA;AACtB,QAAA,IAAI,CAAC,MAAM,IAAIS,UAAQ,CAAC,KAAK;AACzB,cAAE;AACF,cAAE,IAAI,KAAK,CACL,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,kBAAkB,CAC7C,CAAkC;;AAG7C,IAAA,aAAa,CAAC,OAAgB,EAAA;QAC1B,OAAO;YACH,OAAO,IAAI,CAAiB,cAAA,EAAA,OAAO,CAAE,CAAA;AACrC,YAAA,IAAI,CAAC,IAAI,IAAI,SAAS,IAAI,CAAC,IAAI,CAAE,CAAA;AACjC,YAAA,IAAI,CAAC,OAAO,IAAI,YAAY,IAAI,CAAC,OAAO,CAAE,CAAA;YAC1C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5E;aACI,MAAM,CAAC,OAAO;aACd,IAAI,CAAC,IAAI,CAAC;;AAEtB;;ACjCD,MAAM,mBAAmB,GAAG,KAAK;AACjC,MAAM,yBAAyB,GAAG,MAAM;AACxC,MAAM,kBAAkB,GAAG,MAAM;MAGpB,gBAAgB,CAAA;AACzB,IAAA,WAAA,CAAoB,QAAqB,EAAA;QAArB,IAAQ,CAAA,QAAA,GAAR,QAAQ;AAE5B,QAAA,IAAA,CAAA,OAAO,GAAG,CAAC,OAAiC,GAAA,wBAAwB,KAAU;AAC1E,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;AACxB,SAAC;AAED,QAAA,IAAA,CAAA,KAAK,GAAG,CAAC,MAA2B,EAAE,OAA+B,KAAU;AAC3E,YAAA,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;YACzF,OAAO,GAAG,OAAO,KAAK,SAAS,CAAC,MAAM,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,kBAAkB,CAAC;YACzF,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC,GAAG,KAAI;AACvC,gBAAA,OAAO,CAAC,IAAI,CACR,CAAC,CAAiB,cAAA,EAAA,GAAG,CAAG,CAAA,CAAA,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACnF;AACL,aAAC,CAAC;AACF,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,yBAAyB,CAAC;AACnD,SAAC;;IAED,oBAAoB,CAAC,SAAoB,EAAE,UAAkB,EAAA;AACzD,QAAA,OAAO,CAAC,GAAY,KAAK,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC;;IAG5E,gBAAgB,CAAC,SAAoB,EAAE,UAAkB,EAAA;AACrD,QAAA,IAAI,OAAgB;QACpB,QAAQ,SAAS;AACb,YAAA,KAAK,QAAQ;AACT,gBAAA,OAAO,GAAG,CAAG,EAAA,UAAU,CAAC,UAAU,CAAC,uBAAuB;gBAC1D;AACJ,YAAA,KAAK,SAAS;AACV,gBAAA,OAAO,GAAG,CAAG,EAAA,UAAU,CAAC,UAAU,CAAC,wBAAwB;gBAC3D;AACJ,YAAA,KAAK,QAAQ;AACT,gBAAA,OAAO,GAAG,CAAG,EAAA,UAAU,CAAC,UAAU,CAAC,uBAAuB;gBAC1D;AACJ,YAAA,KAAK,QAAQ;AACT,gBAAA,OAAO,GAAG,CAAG,EAAA,UAAU,CAAC,UAAU,CAAC,uBAAuB;gBAC1D;;AAER,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;;AAGzB,IAAA,cAAc,CAAC,MAA2B,EAAE,SAAoB,EAAE,UAAkB,EAAA;AAChF,QAAA,IAAI,OAAgB;QACpB,QAAQ,SAAS;AACb,YAAA,KAAK,QAAQ;AACT,gBAAA,OAAO,GAAG,CAAA,eAAA,EAAkB,UAAU,CAAA,CAAE;gBACxC;AACJ,YAAA,KAAK,SAAS;AACV,gBAAA,OAAO,GAAG,CAAA,iBAAA,EAAoB,UAAU,CAAA,CAAE;gBAC1C;AACJ,YAAA,KAAK,QAAQ;AACT,gBAAA,OAAO,GAAG,CAAA,eAAA,EAAkB,UAAU,CAAA,CAAE;gBACxC;AACJ,YAAA,KAAK,QAAQ;AACT,gBAAA,OAAO,GAAG,CAAA,eAAA,EAAkB,UAAU,CAAA,CAAE;gBACxC;;AAER,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC;;AAGvB,IAAA,MAAM,CAAC,OAA8B,EAAE,QAAQ,GAAG,mBAAmB,EAAA;AACzE,QAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE;AAC/B,YAAA,IAAI,EAAE,CAAC,GAAG,KAAI;gBACV,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE;oBAC1B,QAAQ;AACX,iBAAA,CAAC;aACL;YACD,KAAK,EAAE,MAAK;;aAEX;AACJ,SAAA,CAAC;;IAGE,oBAAoB,CACxB,aAA+B,EAC/B,SAAqD,EAAA;QAErD,0BAA0B,CAAC,aAAa;aACnC,IAAI,CAACiB,OAAK,EAAE,EAAE,OAAO,CAAC,kBAAkB,CAAC;aACzC,SAAS,CAAC,SAAS,CAAC;;8GA/EpB,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA1B,IAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cADH,MAAM,EAAA,CAAA,CAAA;;2FACnB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCLrB,SAAS,CAAA;8GAAT,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAT,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAS,YAHR,iBAAiB,CAAA,EAAA,CAAA,CAAA;AAGlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAS,EAFP,SAAA,EAAA,CAAC,gBAAgB,CAAC,YADnB,iBAAiB,CAAA,EAAA,CAAA,CAAA;;2FAGlB,SAAS,EAAA,UAAA,EAAA,CAAA;kBAJrB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,iBAAiB,CAAC;oBAC5B,SAAS,EAAE,CAAC,gBAAgB,CAAC;AAChC,iBAAA;;;ACsCD,MAAM,YAAY,GAAG,EAAE;MAED,eAAe,CAAA;AAArC,IAAA,WAAA,GAAA;QACI,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAACY,KAAG,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC,CAAC;QACpE,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAACA,KAAG,CAAC,CAAC,EAAE,iBAAiB,EAAE,KAAK,CAAC,CAAC,iBAAiB,CAAC,CAAC;AAC7F,QAAA,IAAA,CAAA,UAAU,GAAG,cAAc,CACvB,MAAM,IAAI,CAAC,SAAS,EACpB,MAAM,IAAI,CAAC,MAAM,CACpB;QAEO,IAAM,CAAA,MAAA,GAAG,IAAI,eAAe,CAAkB,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC/D,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC;AAClC,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,MAAK;YACxB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;AAClF,YAAA,OAAO,IAAI,CACP,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,EACzD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAC3B;SACJ,CAAC,CAAC,IAAI,CACH,GAAG,CAAC,CAAC,MAAM,KAAI;AACX,YAAA,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;AACxB,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;;SAEpC,CAAC,EACF,SAAS,CACL,CAAC,GAAG,EAAE,MAAM,KAAI;YACZ,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAY;YAC/E,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI;AACpC,YAAA,MAAM,iBAAiB,GACnB,MAAM,CAAC,IAAI,KAAK,MAAM,GAAG,GAAG,CAAC,iBAAiB,GAAG,SAAS;YAC9D,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC,IAAI,CACvD,IAAK,MAAM,CAAC,IAAI,KAAK;AACjB,kBAAG;AACG,oBAAA,SAAS,CAAC;wBACN,MAAM;AACN,wBAAA,MAAM,EAAE,EAAE;wBACV,IAAI;AACJ,wBAAA,iBAAiB,EAAE,SAAS;qBAC/B,CAAC;AACO;AACf,kBAAE,EAAE,CAAQ,EAChBA,KAAG,CAAC,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM;gBACpC,MAAM;gBACN,MAAM,EACF,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK;AACtC,sBAAE;AACF,sBAAE,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC;gBAC5C,IAAI;gBACJ,iBAAiB;AACpB,aAAA,CAAC,CAAC,EACH,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAC1B,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAChC;AACL,SAAC,EACD;AACI,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,MAAM,EAAE,EAAE;AACb,SAAA,EACD,CAAC,CACJ,EACD,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CACjD;AACO,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAW;;AAE9C,IAAA,IAAI,CAAC,MAAe,EAAE,OAAA,GAAuB,EAAE,EAAA;AAC3C,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;;IAGlE,MAAM,CAAC,UAAuB,EAAE,EAAA;AAC5B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;;IAG5D,IAAI,GAAA;QACA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;AAOzC;AAEK,MAAgB,qBAAmD,SAAQ,eAIhF,CAAA;AAJD,IAAA,WAAA,GAAA;;AAKa,QAAA,IAAA,CAAA,IAAI,GAAgB,MAAM,SAAkB;;AACxD;;AClIY,MAAA,6BAA6B,GAAiB;AACvD,IAAA;AACI,QAAA,EAAE,EAAE,MAAM;QACV,SAAS,EAAE,CAAC,IAAU,KAAK,IAAI,EAAE,WAAW,EAAE;QAC9C,WAAW,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;QACvC,SAAS,EAAE,CAAC,KAAK,KAAK,KAAK,YAAY,IAAI;AAC9C,KAAA;AACD,IAAA;AACI,QAAA,EAAE,EAAE,WAAW;QACf,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAmB,KACvC,GAAG,KAAK,EAAE,WAAW,EAAE,CAAA,CAAA,EAAI,GAAG,EAAE,WAAW,EAAE,CAAE,CAAA;AACnD,QAAA,WAAW,EAAE,CAAC,KAAK,KAAI;AACnB,YAAA,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAC1E,YAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE;SACxB;AACD,QAAA,SAAS,EAAE,CAAC,KAAK,KAAI;AACjB,YAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC3B,gBAAA,OAAO,KAAK;;YAEhB,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,KAAwB;YACzD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE;AAC3B,gBAAA,OAAO,KAAK;;AAEhB,YAAA,OAAO,KAAK,YAAY,IAAI,IAAI,GAAG,YAAY,IAAI;SACtD;AACJ,KAAA;;;MCzBQ,wBAAwB,GAAG,IAAI,cAAc,CACtD,0BAA0B;;SCHd,qBAAqB,CAAI,KAAa,EAAE,cAA4B,EAAE,EAAA;IAClF,MAAM,UAAU,GAAG;AACd,SAAA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM;AACxC,SAAA,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACxC,IAAA,QACI;AACI,UAAE,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC;UACxD,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;AAErC;;SCTgB,mBAAmB,CAAC,KAAc,EAAE,cAA4B,EAAE,EAAA;IAC9E,MAAM,UAAU,GAAG;AACd,SAAA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM;AACxC,SAAA,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACpC,OAAO,UAAU,GAAG,UAAU,CAAC,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAC3F;;AC+BA,MAAM,eAAe,GAAG,IAAI;MAGf,kBAAkB,CAAA;AAU3B,IAAA,IAAI,MAAM,GAAA;QACN,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC;;AAiBxD,IAAA,WAAA,CACY,MAAc,EACd,KAAqB,EACkC,WAA0B,EAAA;QAFjF,IAAM,CAAA,MAAA,GAAN,MAAM;QACN,IAAK,CAAA,KAAA,GAAL,KAAK;QACkD,IAAW,CAAA,WAAA,GAAX,WAAW;QA5B9E,IAAO,CAAA,OAAA,GAAkB,KAAK,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CACzD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,EACvB,oBAAoB,CAAC,OAAO,CAAC,EAC7B,GAAG,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EACzC,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CACjD;AAMO,QAAA,IAAA,CAAA,aAAa,GAA6B,MAAM,CACpD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CACnB,SAAS,CAAC,IAAI,CAAC,EACf,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EACvC,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAC1C,IAAI,CAAC,CAAC,CAAC,CACV,EACD,IAAI,CAAC,KAAK,CAAC,WAAW,CACzB,CAAC,IAAI,CACF,oBAAoB,CAAC,OAAO,CAAC,EAC7B,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EACnC,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CACjD;AAOG,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACnB,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE;;;AAI7B,IAAA,MAAM,GAAG,CAAC,MAAS,EAAE,UAA4B,EAAE,EAAA;QAC/C,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;;AAG3D,IAAA,MAAM,KAAK,CAAC,MAAkB,EAAE,UAA4B,EAAE,EAAA;AAC1D,QAAA,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;AAGjF,IAAA,eAAe,CACX,EAAU,EAAA;QAEV,MAAM,wBAAwB,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,KACnE,YAAY,CAAC,UAAU,CAAC,eAAe,GAAG,EAAE,CAAC;AACjD,QAAA,MAAM,kBAAkB,GAAG,MACvB,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,EAAE,CAAC;QACzD,OAAO;YACH,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAC5B,GAAG,CAAC,CAAC,YAAY,KAAK,wBAAwB,CAAC,YAAY,CAAC,CAAC,EAC7D,oBAAoB,CAAC,OAAO,CAAC,EAC7B,GAAG,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,EAClD,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CACjD;AACD,YAAA,IAAI,MAAM,GAAA;gBACN,OAAO,kBAAkB,EAAE;aAC9B;YACD,GAAG,EAAE,OAAO,MAAM,EAAE,OAAO,GAAG,EAAE,KAAsB;gBAClD,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC;aACnD;YACD,KAAK,EAAE,OAAO,MAAM,EAAE,OAAO,GAAG,EAAE,KAAsB;AACpD,gBAAA,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;aACzE;YACD,OAAO,EAAE,YAAW;gBAChB,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC;aAC/B;SACJ;;IAGG,MAAM,SAAS,CACnB,MAAwB,EACxB,EAAW,EACX,UAAsB,EAAE,EAAA;AAExB,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE;AAC3C,QAAA,IAAI,WAAmB;QACvB,IAAI,EAAE,EAAE;AACJ,YAAA,MAAM,KAAK,GAAG,eAAe,GAAG,EAAE;AAClC,YAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,CAC/C,MAAM,CAAC,MAAM,CACT,EAAE,EACF,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAC5E,MAAM,CACT,CACJ;AACD,YAAA,MAAM,eAAe,GAAG,YAAY,CAAC,UAAU;AAC/C,YAAA,OAAO,eAAe,CAAC,KAAK,CAAC;YAC7B,WAAW,GAAG,MAAM,CAAC,MAAM,CACvB,EAAE,EACF,YAAY,CAAC,IAAI,EACjB,eAAe,EACf,CAAC,CAAC,mBAAmB,IAAI,EAAE,CAAC,KAAK,GAAG,mBAAmB,EAAE,CAC5D;;aACE;YACH,WAAW,GAAG,MAAM,CAAC,MAAM,CACvB,EAAE,EACF,OAAO,CAAC,OAAO,IAAI,YAAY,CAAC,IAAI,EACpC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EACtB,YAAY,CAAC,UAAU,CAC1B;;AAEL,QAAA,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC;;IAGlD,eAAe,CAAC,SAAiB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAA;AACpE,QAAA,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAChC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAI;AACZ,YAAA,IAAI,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE;AAC/B,gBAAA,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC;;iBAClB;AACH,gBAAA,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;;AAEnB,YAAA,OAAO,GAAG;SACb,EACD,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAkB,CAC/C;;AAGG,IAAA,SAAS,CAAC,MAAc,EAAE,OAAA,GAA4B,EAAE,EAAA;QAC5D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC;AAChD,QAAA,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAI;AACjD,YAAA,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AACd,gBAAA,GAAG,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC;;AAErD,YAAA,OAAO,GAAG;SACb,EAAE,EAAY,CAAC;;AAGZ,IAAA,WAAW,CAAC,MAAc,EAAA;QAC9B,IAAI,CAAC,MAAM,EAAE;AACT,YAAA,OAAO,EAAO;;AAElB,QAAA,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAI;AACjD,YAAA,IAAI;AACA,gBAAA,GAAG,CAAC,CAAY,CAAC,GAAG,qBAAqB,CAAa,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC;;YAC5E,OAAO,GAAG,EAAE;AACV,gBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;;AAEtB,YAAA,OAAO,GAAG;SACb,EAAE,EAAO,CAAC;;AAGP,IAAA,kBAAkB,CAAkC,MAAyB,EAAA;QACjF,OAAO,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE;;AAGrE,IAAA,oBAAoB,CACxB,SAAkB,EAAA;AAElB,QAAA,OAAO,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;;AA3JxC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,0EA+BH,wBAAwB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AA/BvC,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cADL,MAAM,EAAA,CAAA,CAAA;;2FACnB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;0BAgCzB;;0BAAY,MAAM;2BAAC,wBAAwB;;;MC5DvC,iBAAiB,CAAA;8GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAjB,iBAAiB,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,EALf,SAAA,EAAA;AACP,YAAA,EAAE,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,6BAA6B,EAAE;YAC9E,kBAAkB;AACrB,SAAA,EAAA,CAAA,CAAA;;2FAEQ,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAN7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,SAAS,EAAE;AACP,wBAAA,EAAE,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,6BAA6B,EAAE;wBAC9E,kBAAkB;AACrB,qBAAA;AACJ,iBAAA;;;MCJY,UAAU,CAAA;AAanB,IAAA,IAAI,GAAG,GAAA;AACH,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK;cACxC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAClD,cAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ;;AAGlC,IAAA,IAAI,IAAI,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;;AAG/C,IAAA,WAAA,CAAoB,MAAc,EAAA;QAAd,IAAM,CAAA,MAAA,GAAN,MAAM;AAtB1B,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAC1B,SAAS,CAAC,IAAI,CAAC,EACf,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,EACnB,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,EAChE,oBAAoB,EAAE,EACtB,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CACjD;AACD,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAClB,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EACpB,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CACjD;;8GAXQ,UAAU,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAZ,IAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAV,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,cAFP,MAAM,EAAA,CAAA,CAAA;;2FAET,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA;;;ACFD,SAAS,YAAY,CAAC,QAAgB,EAAE,UAAoB,EAAA;AACxD,IAAA,QACI,CAAC,UAAU,EAAE,MAAM;QACnB,IAAI,MAAM,CAAC,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;AAE1F;MAQa,mBAAmB,CAAA;AAQ5B,IAAA,WAAA,CAAoB,GAAqB,EAAA;QAArB,IAAG,CAAA,GAAA,GAAH,GAAG;QANd,IAAU,CAAA,UAAA,GAAa,EAAE;AAExB,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAe;;AAMlD,IAAA,QAAQ,CAAC,KAAY,EAAA;AACjB,QAAA,MAAM,IAAI,GAAI,KAAK,CAAC,MAA2B,EAAE,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI;QACnE,IAAI,CAAC,IAAI,EAAE;YACP,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAC9C;;AAEJ,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE;YAC3C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAyB,sBAAA,EAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAE,CAAA,CAAC,CAAC;YAChF;;AAEJ,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;QAChB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;;8GArBtB,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAyC,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,+JCjBhC,wVAWA,EAAA,MAAA,EAAA,CAAA,uKAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAzB,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDMa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,cAGb,KAAK,EAAA,QAAA,EAAA,wVAAA,EAAA,MAAA,EAAA,CAAA,uKAAA,CAAA,EAAA;kFAGR,KAAK,EAAA,CAAA;sBAAb;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBAES,MAAM,EAAA,CAAA;sBAAf;;;MEVQ,gBAAgB,CAAA;8GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,iBAJV,mBAAmB,CAAA,EAAA,OAAA,EAAA,CAExB,YAAY,EAAE,eAAe,aAD7B,mBAAmB,CAAA,EAAA,CAAA,CAAA;+GAGpB,gBAAgB,EAAA,OAAA,EAAA,CAFf,YAAY,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA;;2FAE9B,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,mBAAmB,CAAC;oBACnC,OAAO,EAAE,CAAC,mBAAmB,CAAC;AAC9B,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,CAAC;AAC3C,iBAAA;;;SCNe,eAAe,CAAC,IAAgB,EAAE,QAAQ,GAAG,OAAO,EAAA;AAChE,IAAA,OAAO,IAAI,UAAU,CAAC,CAAC,UAAU,KAAI;QACjC,IAAI,CAAC,IAAI,EAAE;AACP,YAAA,OAAO,SAAS;;AAEpB,QAAA,MAAM,IAAI,GAAG,IAAI,UAAU,EAAE;AAC7B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,YAAA;AACb,YAAA,IAAI,IAAI,CAAC,KAAK,EAAE;gBACZ,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;;iBAChC;gBACH,UAAU,CAAC,IAAI,CAAE,IAAI,CAAC,MAAiB,IAAI,EAAE,CAAC;;YAElD,UAAU,CAAC,QAAQ,EAAE;AACzB,SAAC;AACL,KAAC,CAAC;AACN;;ACOM,MAAO,sBAAuB,SAAQ0B,yBAA+B,CAAA;AAZ3E,IAAA,WAAA,GAAA;;QAc4C,IAAQ,CAAA,QAAA,GAAG,KAAK;AA4C3D;AAvCG,IAAA,IAAI,IAAI,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE;;AAG9D,IAAA,mBAAmB,CAAC,KAAa,EAAA;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,GAAG,8BAA8B,CAAC,KAAK,CAAC,GAAG,IAAI;;AAGxE,IAAA,WAAW,CAAC,KAAY,EAAA;AACpB,QAAA,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;AAC5E,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAChB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE;;QAE9B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACzC,QAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,SAAS,EAAE;;AAGpB,IAAA,WAAW,CAAC,IAAmC,EAAA;QAC3C,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,IAAI,EAAE;AACzC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;;aACvC;AACH,YAAA,IAAI,CAAC,QAAQ,GAAG,CAAC;;QAErB,IAAI,CAAC,SAAS,EAAE;;IAGpB,QAAQ,GAAA;QACJ,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE;;IAG9E,SAAS,GAAA;QACb,OAAO,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;8GA5C/D,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAEX,gBAAgB,CAVzB,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA,GAAG,sBAAsB,CAAC,MAAM,sBAAsB,CAAC;AACvD,YAAA,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC5C,YAAA,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE;AAC3E,YAAA,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,oBAAoB,EAAE;AAChE,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxBL,quBAsBA,EAAA,MAAA,EAAA,CAAA,mFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA1C,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgB,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAf,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,KAAA,EAAA,KAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDKa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAZlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAGjB,SAAA,EAAA;AACP,wBAAA,GAAG,sBAAsB,CAAC,4BAA4B,CAAC;AACvD,wBAAA,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC5C,wBAAA,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE;AAC3E,wBAAA,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,oBAAoB,EAAE;AAChE,qBAAA,EAAA,UAAA,EACW,KAAK,EAAA,QAAA,EAAA,quBAAA,EAAA,MAAA,EAAA,CAAA,mFAAA,CAAA,EAAA;8BAGR,KAAK,EAAA,CAAA;sBAAb;gBACuC,QAAQ,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAC7B,IAAI,EAAA,CAAA;sBAAZ;;;MEjBQ,mBAAmB,CAAA;8GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAnB,mBAAmB,EAAA,YAAA,EAAA,CAJb,sBAAsB,CAAA,EAAA,OAAA,EAAA,CAE3B,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,mBAAmB,CAAA,EAAA,OAAA,EAAA,CADrE,sBAAsB,CAAA,EAAA,CAAA,CAAA;AAGvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAFlB,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,mBAAmB,CAAA,EAAA,CAAA,CAAA;;2FAEtE,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,sBAAsB,CAAC;oBACtC,OAAO,EAAE,CAAC,sBAAsB,CAAC;oBACjC,OAAO,EAAE,CAAC,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,mBAAmB,CAAC;AACnF,iBAAA;;;ACOK,MAAO,qBACT,SAAQ,qBAAwB,CAAA;AARpC,IAAA,WAAA,GAAA;;QAWa,IAAM,CAAA,MAAA,GAAe,EAAE;QAExB,IAAc,CAAA,cAAA,GAAG,KAAK;AAuDjC;AArDG,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;;AAG5C,IAAA,IAAI,SAAS,GAAA;AACT,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC;AAC9B,QAAA,OAAO,OAAO,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO;;AAGvD,IAAA,IAAI,KAAK,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;;AAG3D,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;;AAGlC,IAAA,IAAI,SAAS,GAAA;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;;AAGtC,IAAA,IAAI,OAAO,GAAA;QACP,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;AAC7C,QAAA,OAAO,SAAS,CAAC,KAAK,GAAG,aAAa,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA,CAAE,GAAG,EAAE;;IAG5E,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;AAG/C,IAAA,WAAW,CAAC,OAAmD,EAAA;AACpE,QAAA,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC;QAC1B,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AACtC,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE;AACjC,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI;;YAE9B,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAC3B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;;;;AAKrC,IAAA,QAAQ,CAAC,KAAQ,EAAA;AACrB,QAAA,QACI,CAAC,IAAI,CAAC;AACF,cAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK;AAChD,cAAG,KAAgB,KAAK,CAAC;;AAI7B,IAAA,QAAQ,CAAC,KAAa,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,cAAc,GAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAW,GAAI,KAAW;;8GA3DvE,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAHnB,sBAAsB,CAAC,MAAM,qBAAqB,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChBlE,iKAGA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAf,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDgBa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;+BACI,iBAAiB,EAAA,SAAA,EAGhB,sBAAsB,CAAC,MAA2B,qBAAA,CAAC,cAClD,KAAK,EAAA,QAAA,EAAA,iKAAA,EAAA;8BAMR,MAAM,EAAA,CAAA;sBAAd;;;MEVQ,kBAAkB,CAAA;8GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAlB,kBAAkB,EAAA,YAAA,EAAA,CAJZ,qBAAqB,CAAA,EAAA,OAAA,EAAA,CAC1B,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,CAAA,EAAA,OAAA,EAAA,CAC9D,qBAAqB,CAAA,EAAA,CAAA,CAAA;AAEtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAHjB,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,CAAA,EAAA,CAAA,CAAA;;2FAG/D,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,qBAAqB,CAAC;oBACrC,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,CAAC;oBACzE,OAAO,EAAE,CAAC,qBAAqB,CAAC;AACnC,iBAAA;;;MCWY,YAAY,CAAA;AA4BrB,IAAA,WAAA,CAAoB,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU;QA3B9B,IAAI,CAAA,IAAA,GAAG,KAAK,EAA2B;AACvC,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAA8B,EAAE,EAAE;YAC3C,SAAS,EAAE,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAI,CAAW,GAAG,CAAC,CAAU,CAAC,CAAC;AAClE,SAAA,CAAC;QACF,IAAK,CAAA,KAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;QAErD,IAAW,CAAA,WAAA,GAAG,aAAa,CAAC;YACxB,IAAI,CAAC,UAAU,CAAC,IAAI;AACpB,YAAA,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;AACxB,YAAA,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3B,SAAA,CAAC,CAAC,IAAI,CACH,GAAG,CACC,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,KAChB,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,CACf,CAAC,GAAG,EAAE,IAAI,KAAI;YACV,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;YACnC,IAAI,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,GAAG,KAAK,KAAK,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE;AAC3D,gBAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE;;AAE1B,YAAA,OAAO,GAAG;AACd,SAAC,EACD,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAqB,EAAE,CACnD,EAAE,IAAI,CACd,EACD,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CACjD;;8GA1BQ,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA0C,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,OAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvBzB,mnBAiBA,EDGc,MAAA,EAAA,CAAA,2TAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,UAAU,oOAAE,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,UAAU,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAG3C,YAAY,EAAA,UAAA,EAAA,CAAA;kBAPxB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,OAAO,EAGR,OAAA,EAAA,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,EACtC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,mnBAAA,EAAA,MAAA,EAAA,CAAA,2TAAA,CAAA,EAAA;;;MEb5B,kBAAkB,CAAA;IAC3B,WAC+B,CAAA,OAAe,EACH,oBAAA,GAA+B,KAAK,EAAA;QADhD,IAAO,CAAA,OAAA,GAAP,OAAO;QACK,IAAoB,CAAA,oBAAA,GAApB,oBAAoB;;AAG/D,IAAA,SAAS,CACL,MAAe,EACf,YAAA,GAAuB,IAAI,CAAC,oBAAoB,EAChD,MAAA,GAA2B,MAAM,EACjC,QAAiB,EACjB,OAAO,GAAG,KAAK,EAAA;AAEf,QAAA,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AAC5B,YAAA,OAAO,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;;AAExF,QAAA,OAAO,MAAM;;8GAhBR,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAEf,SAAS,EAAA,EAAA,EAAA,KAAA,EACT,qBAAqB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAHxB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,gBAAA,EAAA,CAAA,CAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,gBAAgB;AACzB,iBAAA;;0BAGQ,MAAM;2BAAC,SAAS;;0BAChB,MAAM;2BAAC,qBAAqB;;;MCHxB,iBAAiB,CAAA;AAC1B,IAAA,SAAS,CAAyC,KAAQ,EAAA;AACtD,QAAA,OAAO,gBAAgB,CAAC,KAAK,CAAC;;8GAFzB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,eAAe;AACxB,iBAAA;;;MCGY,WAAW,CAAA;IACpB,SAAS,CAAyC,KAAoB,EAAE,OAAU,EAAA;QAC9E,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE;;8GAF5D,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,CAAA;;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAJvB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,SAAS;AAClB,iBAAA;;;MCDY,YAAY,CAAA;AACrB,IAAA,SAAS,CAAyC,KAAQ,EAAA;AACtD,QAAA,OAAO,WAAW,CAAC,KAAK,CAAC;;8GAFpB,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,CAAA;;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAJxB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,UAAU;AACnB,iBAAA;;;ACMD,MAAM,aAAa,GAAG,IAAI;AAOpB,MAAO,qBACT,SAAQ,cAAiE,CAAA;AAN7E,IAAA,WAAA,GAAA;;QASc,IAAO,CAAA,OAAA,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAC3E,YAAY,CAAC,aAAa,CAAC,EAC3B,GAAG,CACC,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,KACd,mBAAmB,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;AAC9D,aAAC,MAAM,CAAC,YAAY,GAAG,MAAM,GAAG,EAAE,CAAC,CAC1C,EACD,oBAAoB,EAAE,CACzB;AAOJ;IALG,SAAS,CACL,GAAG,MAAmF,EAAA;AAEtF,QAAA,OAAO,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC;;8GAjB9B,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,mBAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,mBAAmB;AACzB,oBAAA,IAAI,EAAE,KAAK;AACd,iBAAA;;;MCXY,cAAc,CAAA;AACvB,IAAA,SAAS,CAAC,KAAc,EAAE,gBAAA,GAAmC,CAAC,EAAA;AAC1D,QAAA,OAAO,UAAU,CAAC,KAAK,EAAE,gBAAgB,KAAK,KAAK,GAAG,QAAQ,GAAG,gBAAgB,CAAC;;8GAF7E,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAd,cAAc,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,YAAY;AAClB,oBAAA,UAAU,EAAE,KAAK;AACpB,iBAAA;;;MCIY,WAAW,CAAA;AAKpB,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAG,CAAA,GAAA,GAAH,GAAG;;IAEvB,SAAS,CACL,GAAY,EACZ,QAA6C,EAC7C,YAAsB,EACtB,OAAkB,EAAE,EAAA;QAEpB,MAAM,GAAG,GAAG,GAAG,IAAI,QAAQ,GAAG,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,GAAG,IAAI;QAC9E,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACtC,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;;AAE5C,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAA0B,CAAC;;AAE/D,QAAA,OAAO,GAAc;;IAGzB,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,SAAS,EAAE,WAAW,IAAI;;8GAxB1B,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,SAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA;;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBALvB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,SAAS;AACf,oBAAA,IAAI,EAAE,KAAK;AACd,iBAAA;;;MCsBY,WAAW,CAAA;8GAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAX,WAAW,EAAA,YAAA,EAAA,CApBL,cAAc,CAAA,EAAA,OAAA,EAAA,CAWzB,YAAY;YACZ,WAAW;YACX,YAAY;YACZ,iBAAiB;YACjB,kBAAkB;YAClB,WAAW;AACX,YAAA,qBAAqB,aAfrB,cAAc;YACd,WAAW;YACX,YAAY;YACZ,iBAAiB;YACjB,kBAAkB;YAClB,WAAW;YACX,qBAAqB,CAAA,EAAA,CAAA,CAAA;AAYhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,YAThB,YAAY,CAAA,EAAA,CAAA,CAAA;;2FASP,WAAW,EAAA,UAAA,EAAA,CAAA;kBArBvB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,cAAc,CAAC;AAC9B,oBAAA,OAAO,EAAE;wBACL,cAAc;wBACd,WAAW;wBACX,YAAY;wBACZ,iBAAiB;wBACjB,kBAAkB;wBAClB,WAAW;wBACX,qBAAqB;AACxB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,WAAW;wBACX,YAAY;wBACZ,iBAAiB;wBACjB,kBAAkB;wBAClB,WAAW;wBACX,qBAAqB;AACxB,qBAAA;AACJ,iBAAA;;;AC/BD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"vality-matez.mjs","sources":["../../../../libs/matez/src/lib/components/actions/actions.component.ts","../../../../libs/matez/src/lib/components/actions/actions.component.html","../../../../libs/matez/src/lib/components/actions/actions.module.ts","../../../../libs/matez/src/lib/components/progress/progress.component.ts","../../../../libs/matez/src/lib/components/progress/progress.component.html","../../../../libs/matez/src/lib/components/progress/progress.module.ts","../../../../libs/matez/src/lib/components/dialog/components/dialog-actions/dialog-actions.component.ts","../../../../libs/matez/src/lib/components/dialog/components/dialog-actions/dialog-actions.component.html","../../../../libs/matez/src/lib/components/dialog/types/dialog-response-status.ts","../../../../libs/matez/src/lib/components/dialog/dialog.component.ts","../../../../libs/matez/src/lib/components/dialog/dialog.component.html","../../../../libs/matez/src/lib/components/dialog/tokens.ts","../../../../libs/matez/src/lib/components/dialog/services/dialog.service.ts","../../../../libs/matez/src/lib/components/dialog/dialog.module.ts","../../../../libs/matez/src/lib/components/dialog/utils/dialog-superclass.ts","../../../../libs/matez/src/lib/components/content-loading/content-loading.component.ts","../../../../libs/matez/src/lib/components/content-loading/content-loading.component.html","../../../../libs/matez/src/lib/utils/json/inline-json.ts","../../../../libs/matez/src/lib/utils/string/split-by-separators.ts","../../../../libs/matez/src/lib/utils/operators/progress-to.ts","../../../../libs/matez/src/lib/utils/operators/get-observable.ts","../../../../libs/matez/src/lib/utils/operators/in-progress-from.ts","../../../../libs/matez/src/lib/utils/operators/pass-error.ts","../../../../libs/matez/src/lib/components/progress/utils/get-progress-by-count.ts","../../../../libs/matez/src/lib/utils/operators/fork-join-to-result.ts","../../../../libs/matez/src/lib/utils/async/is-async.ts","../../../../libs/matez/src/lib/utils/async/get-possibly-async-observable.ts","../../../../libs/matez/src/lib/utils/async/async-transform.ts","../../../../libs/matez/src/lib/utils/operators/switch-combine-with.ts","../../../../libs/matez/src/lib/utils/operators/debounce-time-with-first.ts","../../../../libs/matez/src/lib/utils/operators/handle-error.ts","../../../../libs/matez/src/lib/utils/operators/async-start-with.ts","../../../../libs/matez/src/lib/utils/form/has-controls.ts","../../../../libs/matez/src/lib/utils/form/get-value.ts","../../../../libs/matez/src/lib/utils/form/get-value-changes.ts","../../../../libs/matez/src/lib/utils/form/form-wrappers/utils/get-errors-tree.ts","../../../../libs/matez/src/lib/utils/form/form-wrappers/abstract-control-superclass.ts","../../../../libs/matez/src/lib/utils/form/form-wrappers/form-group-superclass.directive.ts","../../../../libs/matez/src/lib/utils/form/form-wrappers/utils/provide-validators.ts","../../../../libs/matez/src/lib/utils/form/form-wrappers/utils/provide-value-accessor.ts","../../../../libs/matez/src/lib/utils/form/form-wrappers/utils/create-control-providers.ts","../../../../libs/matez/src/lib/utils/form/form-wrappers/form-control-superclass.directive.ts","../../../../libs/matez/src/lib/utils/form/form-wrappers/form-component-superclass.directive.ts","../../../../libs/matez/src/lib/utils/empty/is-empty-primitive.ts","../../../../libs/matez/src/lib/utils/form/get-valid-value-changes.ts","../../../../libs/matez/src/lib/utils/form/set-disabled.ts","../../../../libs/matez/src/lib/utils/form/create-controls.ts","../../../../libs/matez/src/lib/utils/date/get-no-time-zone-iso-string.ts","../../../../libs/matez/src/lib/utils/currency/get-currency-exponent.ts","../../../../libs/matez/src/lib/utils/currency/to-major.ts","../../../../libs/matez/src/lib/utils/currency/to-minor.ts","../../../../libs/matez/src/lib/utils/currency/format-currency.ts","../../../../libs/matez/src/lib/utils/object/select.ts","../../../../libs/matez/src/lib/utils/object/count-props.ts","../../../../libs/matez/src/lib/utils/empty/is-empty.ts","../../../../libs/matez/src/lib/utils/object/count-changed.ts","../../../../libs/matez/src/lib/utils/enum/get-enum-keys.ts","../../../../libs/matez/src/lib/utils/clean/clean.ts","../../../../libs/matez/src/lib/utils/compare/compare-different-types.ts","../../../../libs/matez/src/lib/utils/import/get-import-value.ts","../../../../libs/matez/src/lib/utils/file/download-file.ts","../../../../libs/matez/src/lib/utils/csv/create-csv.ts","../../../../libs/matez/src/lib/utils/csv/utils/remove-line-breaks.ts","../../../../libs/matez/src/lib/utils/csv/parse-csv.ts","../../../../libs/matez/src/lib/utils/csv/utils/unify-csv-items.ts","../../../../libs/matez/src/lib/utils/transform-attribute/array-attribute.ts","../../../../libs/matez/src/lib/utils/decorators/debounce-time.ts","../../../../libs/matez/src/lib/utils/create-storage-value.ts","../../../../libs/matez/src/lib/components/input-field/input-field.component.ts","../../../../libs/matez/src/lib/components/input-field/input-field.component.html","../../../../libs/matez/src/lib/components/input-field/input-field.module.ts","../../../../libs/matez/src/lib/components/tag/tag.component.ts","../../../../libs/matez/src/lib/components/tag/tag.component.html","../../../../libs/matez/src/lib/components/tag/tag.module.ts","../../../../libs/matez/src/lib/components/table/utils/normalize-string.ts","../../../../libs/matez/src/lib/directives/highlight.directive.ts","../../../../libs/matez/src/lib/components/value/components/menu-value.component.ts","../../../../libs/matez/src/lib/components/value/components/toggle-value.component.ts","../../../../libs/matez/src/lib/components/value/utils/currency-amount-value-to-string.ts","../../../../libs/matez/src/lib/components/value/utils/datetime-value-to-string.ts","../../../../libs/matez/src/lib/components/value/utils/unknown-to-string.ts","../../../../libs/matez/src/lib/components/value/utils/value-to-string.ts","../../../../libs/matez/src/lib/components/value/value.component.ts","../../../../libs/matez/src/lib/components/value/value.component.html","../../../../libs/matez/src/lib/components/value/components/value-list.component.ts","../../../../libs/matez/src/lib/components/table/components/table-inputs.component.ts","../../../../libs/matez/src/lib/components/table/utils/create-unique-column-def.ts","../../../../libs/matez/src/lib/components/table/consts.ts","../../../../libs/matez/src/lib/components/table/types/column.ts","../../../../libs/matez/src/lib/components/table/utils/filter-sort.ts","../../../../libs/matez/src/lib/components/table/tree-data/tree-data-item-to-inline-data-item.ts","../../../../libs/matez/src/lib/components/table/utils/cached-head-map.ts","../../../../libs/matez/src/lib/components/table/utils/table-data-source.ts","../../../../libs/matez/src/lib/components/table/utils/table-to-csv-object.ts","../../../../libs/matez/src/lib/components/table/utils/to-columns-data.ts","../../../../libs/matez/src/lib/components/table/components/no-records.component.ts","../../../../libs/matez/src/lib/components/table/utils/create-intersection-observer.ts","../../../../libs/matez/src/lib/components/table/components/infinity-scroll.directive.ts","../../../../libs/matez/src/lib/components/table/components/base-column.component.ts","../../../../libs/matez/src/lib/components/table/components/select-column.component.ts","../../../../libs/matez/src/lib/components/table/components/dnd-column.component.ts","../../../../libs/matez/src/lib/components/table/components/table-info-bar/table-info-bar.component.ts","../../../../libs/matez/src/lib/components/table/components/table-info-bar/table-info-bar.component.html","../../../../libs/matez/src/lib/components/table/table.component.ts","../../../../libs/matez/src/lib/components/table/table.component.html","../../../../libs/matez/src/lib/components/table/components/customize/customize.component.ts","../../../../libs/matez/src/lib/components/table/components/customize/customize.component.html","../../../../libs/matez/src/lib/components/table/components/table-actions.component.ts","../../../../libs/matez/src/lib/components/table/components/table-progress-bar.component.ts","../../../../libs/matez/src/lib/components/table/table.module.ts","../../../../libs/matez/src/lib/components/table/utils/correct-priorities.ts","../../../../libs/matez/src/lib/components/table/utils/create-column.ts","../../../../libs/matez/src/lib/components/table/presets/create-menu-column.ts","../../../../libs/matez/src/lib/components/confirm-dialog/confirm-dialog.component.ts","../../../../libs/matez/src/lib/components/confirm-dialog/confirm-dialog.component.html","../../../../libs/matez/src/lib/components/confirm-dialog/confirm-dialog.module.ts","../../../../libs/matez/src/lib/components/filters/components/filters-dialog/filters-dialog.component.ts","../../../../libs/matez/src/lib/components/filters/components/filters-dialog/filters-dialog.component.html","../../../../libs/matez/src/lib/components/filters/components/main-filters/main-filters.directive.ts","../../../../libs/matez/src/lib/components/filters/components/other-filters/other-filters.directive.ts","../../../../libs/matez/src/lib/components/filters/filters.component.ts","../../../../libs/matez/src/lib/components/filters/filters.component.html","../../../../libs/matez/src/lib/components/filters/components/more-filters-button/more-filters-button.component.ts","../../../../libs/matez/src/lib/components/filters/components/more-filters-button/more-filters-button.component.html","../../../../libs/matez/src/lib/components/filters/filters.module.ts","../../../../libs/matez/src/lib/components/date-range-field/date-range-field.component.ts","../../../../libs/matez/src/lib/components/date-range-field/date-range-field.component.html","../../../../libs/matez/src/lib/components/date-range-field/date-range-field.module.ts","../../../../libs/matez/src/lib/components/date-range-field/utils/is-equal-date-range.ts","../../../../libs/matez/src/lib/components/date-range-field/utils/create-date-range-to-today.ts","../../../../libs/matez/src/lib/components/number-range-field/number-range-field.component.ts","../../../../libs/matez/src/lib/components/number-range-field/number-range-field.component.html","../../../../libs/matez/src/lib/components/number-range-field/number-range-field.module.ts","../../../../libs/matez/src/lib/components/list-field/list-field.component.ts","../../../../libs/matez/src/lib/components/list-field/list-field.component.html","../../../../libs/matez/src/lib/components/list-field/list-field.module.ts","../../../../libs/matez/src/lib/components/error-page/error-page.component.ts","../../../../libs/matez/src/lib/components/error-page/error-page.component.html","../../../../libs/matez/src/lib/components/error-page/error-page-routing.module.ts","../../../../libs/matez/src/lib/components/error-page/error-page.module.ts","../../../../libs/matez/src/lib/components/select-autocomplete/utils/search-options.ts","../../../../libs/matez/src/lib/components/select-autocomplete/utils/find-option-by-value.ts","../../../../libs/matez/src/lib/components/select-autocomplete/utils/get-hint-text.ts","../../../../libs/matez/src/lib/components/select-autocomplete/select-field/select-field.component.ts","../../../../libs/matez/src/lib/components/select-autocomplete/select-field/select-field.component.html","../../../../libs/matez/src/lib/components/select-autocomplete/select-field/select-field.module.ts","../../../../libs/matez/src/lib/components/select-autocomplete/autocomplete-field/autocomplete-field.component.ts","../../../../libs/matez/src/lib/components/select-autocomplete/autocomplete-field/autocomplete-field.component.html","../../../../libs/matez/src/lib/components/select-autocomplete/autocomplete-field/autocomplete-field.module.ts","../../../../libs/matez/src/lib/services/config/config.service.ts","../../../../libs/matez/src/lib/services/log/log-error.ts","../../../../libs/matez/src/lib/services/log/notify-log.service.ts","../../../../libs/matez/src/lib/services/log/log.module.ts","../../../../libs/matez/src/lib/services/fetch-superclass/fetch-superclass.ts","../../../../libs/matez/src/lib/services/query-params/utils/date-query-params-serializers.ts","../../../../libs/matez/src/lib/services/query-params/utils/query-params-serializers.ts","../../../../libs/matez/src/lib/services/query-params/utils/deserialize-query-param.ts","../../../../libs/matez/src/lib/services/query-params/utils/serialize-query-param.ts","../../../../libs/matez/src/lib/services/query-params/query-params.service.ts","../../../../libs/matez/src/lib/services/query-params/query-params.module.ts","../../../../libs/matez/src/lib/services/url.service.ts","../../../../libs/matez/src/lib/services/toast/toast.component.ts","../../../../libs/matez/src/lib/services/toast/toast.component.html","../../../../libs/matez/src/lib/services/toast/toast.service.ts","../../../../libs/matez/src/lib/components/file-upload/file-upload.component.ts","../../../../libs/matez/src/lib/components/file-upload/file-upload.component.html","../../../../libs/matez/src/lib/components/file-upload/file-upload.module.ts","../../../../libs/matez/src/lib/components/file-upload/utils/load-file-content.ts","../../../../libs/matez/src/lib/components/datetime-field/datetime-field.component.ts","../../../../libs/matez/src/lib/components/datetime-field/datetime-field.component.html","../../../../libs/matez/src/lib/components/datetime-field/datetime-field.module.ts","../../../../libs/matez/src/lib/components/switch-button/switch-button.component.ts","../../../../libs/matez/src/lib/components/switch-button/switch-button.component.html","../../../../libs/matez/src/lib/components/switch-button/switch-button.module.ts","../../../../libs/matez/src/lib/components/nav/nav.component.ts","../../../../libs/matez/src/lib/components/nav/nav.component.html","../../../../libs/matez/src/lib/pipes/amount-currency.pipe.ts","../../../../libs/matez/src/lib/pipes/enum-key-values.pipe.ts","../../../../libs/matez/src/lib/pipes/enum-key.pipe.ts","../../../../libs/matez/src/lib/pipes/enum-keys.pipe.ts","../../../../libs/matez/src/lib/pipes/humanized-duration.pipe.ts","../../../../libs/matez/src/lib/pipes/inline-json.pipe.ts","../../../../libs/matez/src/lib/pipes/select.pipe.ts","../../../../libs/matez/src/lib/pipes/pipes.module.ts","../../../../libs/matez/src/vality-matez.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'v-actions',\n templateUrl: 'actions.component.html',\n styleUrls: ['actions.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ActionsComponent {}\n","<div class=\"v-actions\">\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\n\nimport { ActionsComponent } from './actions.component';\n\n@NgModule({\n imports: [],\n declarations: [ActionsComponent],\n exports: [ActionsComponent],\n})\nexport class ActionsModule {}\n","import { Component, Input } from '@angular/core';\n\nimport { Progressable } from '../../types/progressable';\n\n@Component({\n selector: 'v-progress',\n templateUrl: './progress.component.html',\n standalone: false,\n})\nexport class ProgressComponent implements Progressable {\n @Input() progress: Progressable['progress'];\n\n get mode() {\n return typeof this.progress === 'number' && this.progress <= 1 && this.progress > 0\n ? 'determinate'\n : !!this.progress || this.progress === ''\n ? 'indeterminate'\n : undefined;\n }\n\n get value(): number {\n return this.mode === 'determinate'\n ? Math.max(Math.min((1 - (this.progress as number)) * 100, 100), 0)\n : (undefined as never);\n }\n}\n","@if (!!mode) {\n <mat-progress-bar [mode]=\"mode\" [value]=\"value\"></mat-progress-bar>\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\n\nimport { ProgressComponent } from './progress.component';\n\n@NgModule({\n declarations: [ProgressComponent],\n imports: [CommonModule, MatProgressBarModule],\n exports: [ProgressComponent],\n})\nexport class ProgressModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'v-dialog-actions',\n templateUrl: './dialog-actions.component.html',\n standalone: false,\n})\nexport class DialogActionsComponent {}\n","<v-actions><ng-content></ng-content></v-actions>\n","export enum DialogResponseStatus {\n Success = 'success',\n Error = 'error',\n Cancelled = 'canceled',\n}\n","import {\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n booleanAttribute,\n} from '@angular/core';\n\nimport { Progressable } from '../../types/progressable';\n\nimport { DialogResponseStatus } from './types/dialog-response-status';\n\n@Component({\n selector: 'v-dialog',\n templateUrl: 'dialog.component.html',\n styleUrls: ['dialog.component.scss'],\n standalone: false,\n})\nexport class DialogComponent implements Progressable {\n @HostBinding('class.v-dialog') hostClass: boolean = true;\n\n @Input() title!: string;\n\n @Input({ transform: booleanAttribute }) disabled: boolean = false;\n @Input() progress?: Progressable['progress'];\n\n @Input({ transform: booleanAttribute }) hasDivider: boolean = true;\n\n @Input({ transform: booleanAttribute }) noContent: boolean = false;\n @Input({ transform: booleanAttribute }) noActions: boolean = false;\n @Input({ transform: booleanAttribute }) noCloseButton: boolean = false;\n\n @Input({ transform: booleanAttribute }) fullSize: boolean = false;\n\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() cancel = new EventEmitter<void>();\n\n cancelData = {\n status: DialogResponseStatus.Cancelled,\n };\n\n cancelDialog(): void {\n this.cancel.emit();\n }\n}\n","<div [ngClass]=\"{ 'full-size': fullSize }\" class=\"dialog\">\n <div class=\"dialog-title\">\n <div>\n <h2 class=\"title\">{{ title }}</h2>\n </div>\n @if (!noCloseButton) {\n <mat-icon\n [matDialogClose]=\"cancelData\"\n class=\"dialog-title-close\"\n inline\n (click)=\"cancelDialog()\"\n >clear</mat-icon\n >\n }\n </div>\n\n @if (!noContent) {\n @if (hasDivider) {\n <mat-divider></mat-divider>\n }\n <div class=\"dialog-content\">\n <ng-content></ng-content>\n </div>\n }\n @if (!noActions) {\n @if (hasDivider) {\n <mat-divider></mat-divider>\n }\n <div class=\"dialog-actions\">\n <ng-content select=\"v-dialog-actions\"></ng-content>\n </div>\n }\n\n <v-progress [progress]=\"progress\"></v-progress>\n</div>\n","import { InjectionToken } from '@angular/core';\nimport { MatDialogConfig } from '@angular/material/dialog';\nimport { ValuesType } from 'utility-types';\n\nexport type DialogConfig = Record<'small' | 'medium' | 'large', MatDialogConfig<undefined>>;\n\nexport const DIALOG_CONFIG = new InjectionToken<DialogConfig>('dialogConfig');\n\nexport const BASE_CONFIG: ValuesType<DialogConfig> = {\n maxHeight: '100vh',\n disableClose: true,\n autoFocus: false,\n minWidth: '0',\n maxWidth: 'calc(100vw - 16px)',\n width: '552px',\n};\n\nexport const DEFAULT_DIALOG_CONFIG: DialogConfig = {\n small: {\n ...BASE_CONFIG,\n width: '360px',\n },\n medium: BASE_CONFIG,\n large: {\n ...BASE_CONFIG,\n width: '1000px',\n },\n};\n\nexport const DEFAULT_DIALOG_CONFIG_FULL_HEIGHT = 'calc(90vh - 48px)';\n","import { ComponentType } from '@angular/cdk/overlay';\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\n\nimport { DEFAULT_DIALOG_CONFIG, DIALOG_CONFIG, DialogConfig } from '../tokens';\nimport { DialogResponse } from '../types/dialog-response';\nimport { DialogSuperclass } from '../utils/dialog-superclass';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DialogService {\n constructor(\n private dialog: MatDialog,\n @Optional()\n @Inject(DIALOG_CONFIG)\n private readonly dialogConfig: DialogConfig,\n ) {\n if (!dialogConfig) {\n this.dialogConfig = DEFAULT_DIALOG_CONFIG;\n }\n }\n\n open<TDialogComponent, TDialogData, TDialogResponseData, TDialogResponseStatus>(\n dialogComponent: ComponentType<\n DialogSuperclass<\n TDialogComponent,\n TDialogData,\n TDialogResponseData,\n TDialogResponseStatus\n >\n >,\n /**\n * Workaround when both conditions for the 'data' argument must be true:\n * - typing did not require passing when it is optional (for example: {param: number} | void)\n * - typing required to pass when it is required (for example: {param: number})\n */\n ...[data, configOrConfigName]: TDialogData extends void\n ? []\n : [\n data: TDialogData,\n configOrConfigName?:\n | Omit<MatDialogConfig<TDialogData>, 'data'>\n | keyof DialogConfig,\n ]\n ): MatDialogRef<TDialogComponent, DialogResponse<TDialogResponseData, TDialogResponseStatus>> {\n let config: Partial<MatDialogConfig<TDialogData>>;\n if (!configOrConfigName) {\n config = {};\n } else if (typeof configOrConfigName === 'string') {\n config = this.dialogConfig[configOrConfigName];\n } else {\n config = configOrConfigName;\n }\n\n return this.dialog.open(dialogComponent as never, {\n data,\n ...(dialogComponent as typeof DialogSuperclass).defaultDialogConfig,\n ...config,\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\n\nimport { ActionsModule } from '../actions';\nimport { ProgressModule } from '../progress/progress.module';\n\nimport { DialogActionsComponent } from './components/dialog-actions/dialog-actions.component';\nimport { DialogComponent } from './dialog.component';\nimport { DialogService } from './services/dialog.service';\n\n@NgModule({\n imports: [\n CommonModule,\n MatDividerModule,\n MatButtonModule,\n ActionsModule,\n MatIconModule,\n MatProgressBarModule,\n MatDialogModule,\n ProgressModule,\n ],\n providers: [DialogService],\n declarations: [DialogComponent, DialogActionsComponent],\n exports: [DialogComponent, DialogActionsComponent],\n})\nexport class DialogModule {}\n","import { Directive, inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nimport { DEFAULT_DIALOG_CONFIG } from '../tokens';\nimport { DialogResponse } from '../types/dialog-response';\nimport { DialogResponseStatus } from '../types/dialog-response-status';\n\n@Directive()\nexport class DialogSuperclass<\n TDialogComponent,\n TDialogData = void,\n TDialogResponseData = void,\n TDialogResponseStatus = void,\n> {\n static defaultDialogConfig = DEFAULT_DIALOG_CONFIG.medium;\n\n dialogData = inject<TDialogData>(MAT_DIALOG_DATA);\n dialogRef =\n inject<\n MatDialogRef<\n TDialogComponent,\n DialogResponse<TDialogResponseData, TDialogResponseStatus>\n >\n >(MatDialogRef);\n\n closeWithCancellation(data?: TDialogResponseData) {\n this.dialogRef.close({\n status: DialogResponseStatus.Cancelled,\n data,\n } as never);\n }\n\n closeWithSuccess(data?: TDialogResponseData) {\n this.dialogRef.close({\n status: DialogResponseStatus.Success,\n data,\n } as never);\n }\n\n closeWithError(data?: TDialogResponseData) {\n this.dialogRef.close({\n status: DialogResponseStatus.Error,\n data,\n } as never);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, input, numberAttribute } from '@angular/core';\nimport { random } from 'lodash-es';\n\n@Component({\n selector: 'v-content-loading',\n templateUrl: './content-loading.component.html',\n styleUrls: ['./content-loading.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n})\nexport class ContentLoadingComponent {\n width = input(random(35, 80) + '%');\n textSize = input(0, { transform: numberAttribute });\n hiddenText = input<string | undefined | null>();\n}\n","<span\n [ngClass]=\"{ 'content-loading__text': !!hiddenText() }\"\n [style.width]=\"hiddenText() || textSize() ? undefined : width()\"\n class=\"content-loading\"\n >{{ hiddenText() || ' '.repeat(textSize() || 1) }}</span\n>\n","import startCase from 'lodash-es/startCase';\nimport { isPrimitive } from 'utility-types';\n\nfunction renderList<T>(list: T[], renderItem: (v: T, idx: number) => string, isMore: boolean) {\n return list.length ? (isMore ? '…' : list.map(renderItem).join(', ')) : '';\n}\n\nfunction isObject(v: unknown): v is object {\n return (\n typeof v === 'object' &&\n !Array.isArray(v) &&\n !(v instanceof Map) &&\n !(v instanceof Set) &&\n v !== null\n );\n}\n\nexport function inlineJson(\n value: unknown,\n maxReadableLever = 1,\n readableKeys = false,\n level = 0,\n): string {\n const isRoot = (level = 0);\n if (isPrimitive(value)) {\n return String(value);\n }\n if (Array.isArray(value) || value instanceof Map || value instanceof Set) {\n const content = renderList(\n Array.from(value),\n (v) => inlineJson(v, maxReadableLever, readableKeys, level + 1),\n level > maxReadableLever,\n );\n if (value instanceof Set) {\n return `Set(${content})`;\n }\n if (value instanceof Map) {\n return `Map(${content})`;\n }\n return isRoot && content ? content : `[${content}]`;\n }\n const entries = Array.from(Object.entries(value as object));\n if (!entries.length) {\n return '{}';\n }\n const content = renderList(\n entries,\n ([k, v]) =>\n (readableKeys ? startCase(k) : k) +\n (isObject(v) && Object.keys(v).length <= 1 ? '/' : ': ') +\n inlineJson(v, maxReadableLever, readableKeys, level + 1),\n level > maxReadableLever,\n );\n if (isRoot || entries.length === 1) {\n return content;\n }\n return `{${content}}`;\n}\n","const SEPARATORS = ',;';\n\nexport function splitBySeparators(ids: string, separators = SEPARATORS): string[] {\n if (!ids) {\n return [];\n }\n return ids\n .split(new RegExp(`[${separators}\\\\s]`))\n .map((id) => id.trim())\n .filter(Boolean);\n}\n","import { BehaviorSubject, MonoTypeOperatorFunction, defer, isObservable } from 'rxjs';\nimport { finalize } from 'rxjs/operators';\n\nexport function progressTo<T>(\n subject$: BehaviorSubject<number> | (() => BehaviorSubject<number>),\n): MonoTypeOperatorFunction<T> {\n const getSub = () => (isObservable(subject$) ? subject$ : subject$());\n return (src$) =>\n defer(() => {\n getSub().next(getSub().getValue() + 1);\n return src$.pipe(finalize(() => getSub().next(getSub().getValue() - 1)));\n });\n}\n","import { Observable, defer } from 'rxjs';\n\nexport type ObservableOrFn<T = unknown> = (() => Observable<T>) | Observable<T>;\n\nexport function getObservable<T>(obsOrFn: ObservableOrFn<T>): Observable<T> {\n return typeof obsOrFn === 'function' ? defer(obsOrFn) : obsOrFn;\n}\n","import { EMPTY, combineLatest, merge, mergeMap } from 'rxjs';\nimport { delay, distinctUntilChanged, map, shareReplay, startWith } from 'rxjs/operators';\n\nimport { ObservableOrFn, getObservable } from './get-observable';\n\nexport function inProgressFrom(\n progress: ObservableOrFn<number | boolean> | ObservableOrFn<number | boolean>[],\n main?: ObservableOrFn,\n init = true,\n) {\n const progresses = (Array.isArray(progress) ? progress : [progress]).map((p) =>\n getObservable(p),\n );\n return merge(\n combineLatest(progresses),\n main ? getObservable(main).pipe(mergeMap(() => EMPTY)) : EMPTY,\n ).pipe(\n map((ps) => ps.some((p) => !!p)),\n // make async to bypass angular detect changes\n delay(0),\n startWith(init),\n distinctUntilChanged(),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n}\n","import { EMPTY, MonoTypeOperatorFunction, catchError, of } from 'rxjs';\n\nexport function passError<T>(\n handler: (err: unknown) => void,\n value?: T,\n): MonoTypeOperatorFunction<T> {\n return (source) =>\n source.pipe(\n catchError((err) => {\n handler(err);\n if (arguments.length >= 2) {\n return of(value as T);\n }\n return EMPTY;\n }),\n );\n}\n","export function getProgressByCount(count: number, completedCount: number = Number.MIN_VALUE) {\n return 1 - completedCount / count;\n}\n","import { Observable, Subject, catchError, merge, of, scan, takeLast } from 'rxjs';\nimport { finalize, map } from 'rxjs/operators';\nimport { Overwrite } from 'utility-types';\n\nimport { getProgressByCount } from '../../components/progress';\n\nexport interface ForkJoinResult<T, D = never> {\n index: number;\n data: D;\n hasError: boolean;\n\n result?: T;\n error?: unknown;\n}\n\nexport type ForkJoinSucceededResult<T, D = never> = Omit<\n Overwrite<ForkJoinResult<T, D>, { hasError: false; result: T }>,\n 'error'\n>;\nexport type ForkJoinErrorResult<D = never> = Omit<\n Overwrite<ForkJoinResult<never, D>, { hasError: true; error: unknown }>,\n 'result'\n>;\n\nexport function forkJoinToResult<T, D = never>(\n sources: Observable<T>[],\n progress$?: Subject<number>,\n dataItems: D[] = [],\n concurrency = 4,\n): Observable<ForkJoinResult<T, D>[]> {\n let completed = 0;\n if (progress$) {\n progress$.next(getProgressByCount(sources.length));\n }\n return merge(\n ...sources.map((source, index) =>\n source.pipe(\n map(\n (result): ForkJoinResult<T, D> => ({\n result,\n hasError: false,\n index,\n data: dataItems[index],\n }),\n ),\n catchError((error) => {\n return of<ForkJoinResult<T, D>>({\n error,\n hasError: true,\n index,\n data: dataItems[index],\n });\n }),\n finalize(() => {\n completed += 1;\n if (progress$) {\n progress$.next(getProgressByCount(sources.length, completed));\n }\n }),\n ),\n ),\n concurrency,\n ).pipe(\n scan(\n (acc, value) => {\n acc.push(value);\n return acc;\n },\n [] as ForkJoinResult<T, D>[],\n ),\n takeLast(1),\n map((r) => r.sort((a, b) => a.index - b.index)),\n );\n}\n\nexport function isResultsHasError<T, D>(res: ForkJoinResult<T, D>[]): boolean {\n return res.some((r) => r.hasError);\n}\n\nexport function splitResultsErrors<T, D>(\n res: ForkJoinResult<T, D>[],\n): [succeeded: ForkJoinSucceededResult<T, D>[], errors: ForkJoinErrorResult<D>[]] {\n return res.reduce(\n (acc, r) => {\n acc[r.hasError ? 1 : 0].push(r as never);\n return acc;\n },\n [[], []] as [succeeded: ForkJoinSucceededResult<T, D>[], errors: ForkJoinErrorResult<D>[]],\n );\n}\n","import { Observable, isObservable } from 'rxjs';\nimport { isPromise } from 'rxjs/internal/util/isPromise';\n\nexport type Async<T> = Observable<T> | Promise<T>;\nexport type PossiblyAsync<T> = Async<T> | T;\n\nexport function isAsync<T>(value: PossiblyAsync<T>): value is Async<T> {\n return isObservable(value) || isPromise(value);\n}\n","import { Observable, from, of } from 'rxjs';\n\nimport { PossiblyAsync, isAsync } from './is-async';\n\nexport function getPossiblyAsyncObservable<T>(possiblyAsync: PossiblyAsync<T>): Observable<T> {\n return isAsync(possiblyAsync) ? from(possiblyAsync) : of(possiblyAsync);\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectorRef, Injectable, OnDestroy, inject } from '@angular/core';\nimport { Observable, ReplaySubject, combineLatest, defer, of, switchMap } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { getPossiblyAsyncObservable } from './get-possibly-async-observable';\nimport { PossiblyAsync } from './is-async';\n\nexport type AsyncTransformParameters<TValue = unknown, TParams extends unknown[] = []> = [\n PossiblyAsync<TValue>,\n ...TParams,\n];\n\n@Injectable()\nexport abstract class AsyncTransform<\n TValue = unknown,\n TParams extends unknown[] = [],\n TResult = string | null,\n> implements OnDestroy\n{\n protected abstract result$: Observable<TResult>;\n\n protected params$: Observable<[TValue, ...TParams]> = defer(() => this.args$).pipe(\n switchMap((args) =>\n combineLatest([\n getPossiblyAsyncObservable(args[0] as TValue),\n of(args.slice(1) as TParams),\n ]),\n ),\n map(([value, params]) => [value, ...params] as [TValue, ...TParams]),\n );\n\n private asyncPipe!: AsyncPipe;\n private cdr = inject(ChangeDetectorRef);\n private args$ = new ReplaySubject<[PossiblyAsync<TValue>, ...TParams]>(1);\n\n constructor() {\n this.asyncPipe = new AsyncPipe(this.cdr);\n }\n\n ngOnDestroy() {\n this.asyncPipe.ngOnDestroy();\n }\n\n protected asyncTransform(args: AsyncTransformParameters<TValue, TParams>): TResult | null {\n this.args$.next(args);\n return this.asyncPipe.transform(this.result$);\n }\n}\n","import { Observable, combineLatest, of, switchMap } from 'rxjs';\n\nimport { PossiblyAsync, getPossiblyAsyncObservable } from '../async';\n\nexport type ProjectInputs<R extends readonly unknown[]> = {\n [K in keyof R]: PossiblyAsync<R[K]>;\n};\n\nexport function switchCombineWith<T, R extends readonly unknown[]>(\n project: (value: T, index: number) => readonly [...ProjectInputs<R>],\n) {\n return (src$: Observable<T>) =>\n src$.pipe(\n switchMap((value, index) => {\n const res = project(value, index);\n return combineLatest([\n of(value),\n ...(Array.isArray(res) ? res : [res]).map((r) => getPossiblyAsyncObservable(r)),\n ]);\n }),\n ) as Observable<[T, ...R]>;\n}\n","import { MonoTypeOperatorFunction, debounce, interval } from 'rxjs';\n\nexport function debounceTimeWithFirst<T>(duration: number): MonoTypeOperatorFunction<T> {\n return (source) => {\n let isFirst = true;\n return source.pipe(\n debounce(() => {\n if (isFirst) {\n isFirst = false;\n return interval(0);\n }\n return interval(duration);\n }),\n );\n };\n}\n","import { EMPTY, MonoTypeOperatorFunction } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nimport { PossiblyAsync, getPossiblyAsyncObservable } from '../async';\n\nexport function handleError<T>(\n handler: (err: unknown) => void,\n result: PossiblyAsync<T> = EMPTY,\n): MonoTypeOperatorFunction<T> {\n return (source) =>\n source.pipe(\n catchError((err, _caught) => {\n handler(err);\n return getPossiblyAsyncObservable(result);\n }),\n );\n}\n","import { Observable, concat, of, switchMap, timer } from 'rxjs';\n\nexport function asyncStartWith<V = never>(value?: V, timerMs = 0) {\n return <T>(src$: Observable<T>): Observable<T | V> =>\n concat(...((value ? [of(value)] : []) as []), timer(timerMs).pipe(switchMap(() => src$)));\n}\n","import { AbstractControl, FormArray, FormGroup } from '@angular/forms';\n\nexport function hasControls(control: AbstractControl): control is FormGroup | FormArray {\n return 'controls' in control;\n}\n","import { AbstractControl } from '@angular/forms';\n\nimport { hasControls } from './has-controls';\n\nexport function getValue<T>(control: AbstractControl<T>): T {\n if (!hasControls(control)) {\n return control.value;\n }\n if (Array.isArray(control.controls)) {\n const result: unknown[] = [];\n for (const v of control.controls) {\n result.push(getValue(v) as T);\n }\n return result as T;\n }\n const result: Record<PropertyKey, unknown> = {};\n for (const [k, v] of Object.entries(control.controls)) {\n result[k as keyof T] = getValue(v);\n }\n return result as T;\n}\n","import { AbstractControl, FormControlState } from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\n\nimport { getValue } from './get-value';\n\nexport function getValueChanges<T>(form: AbstractControl<FormControlState<T> | T>): Observable<T> {\n return form.valueChanges.pipe(\n startWith(form.value),\n map(() => getValue(form)),\n ) as Observable<T>;\n}\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\n\nimport { hasControls } from '../../has-controls';\n\n/**\n * FormGroup/FormArray don't return internal control errors,\n * so you need to get internal errors manually\n */\nexport function getErrorsTree(control: AbstractControl): ValidationErrors | null {\n if (control.valid) {\n return null;\n }\n const errors: ValidationErrors = Object.assign({}, control.errors);\n if (hasControls(control)) {\n if (Array.isArray(control.controls)) {\n errors['formArrayErrors'] = control.controls\n .map((c: AbstractControl) => getErrorsTree(c))\n .filter(Boolean);\n } else {\n errors['formGroupErrors'] = Object.fromEntries(\n Array.from(Object.entries(control.controls))\n .map(([k, c]) => [k, getErrorsTree(c)])\n .filter(([, v]) => !!v),\n ) as ValidationErrors;\n }\n }\n return errors;\n}\n","import { ChangeDetectorRef, DestroyRef, Directive, OnInit, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AbstractControl, ValidationErrors, Validator } from '@angular/forms';\nimport { WrappedControlSuperclass } from '@s-libs/ng-core';\nimport { EMPTY, Observable, concat, take, timer } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { getErrorsTree } from './utils/get-errors-tree';\n\n@Directive()\nexport abstract class AbstractControlSuperclass<OuterType, InnerType = OuterType>\n extends WrappedControlSuperclass<OuterType, InnerType>\n implements Validator, OnInit\n{\n private _cdr = inject(ChangeDetectorRef);\n private _destroyRef = inject(DestroyRef);\n\n override ngOnInit() {\n super.ngOnInit();\n concat(timer(0), timer(100))\n .pipe(\n filter(() => this.control.invalid),\n take(1),\n takeUntilDestroyed(this._destroyRef),\n )\n .subscribe(() => {\n this.onValidatorChange();\n this._cdr.markForCheck();\n });\n }\n\n validate(_control: AbstractControl): ValidationErrors | null {\n return getErrorsTree(this.control); //|| getErrorsTree(_control);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onValidatorChange = fn;\n }\n\n protected override setUpInnerToOuterErrors$(): Observable<ValidationErrors> {\n return EMPTY;\n }\n\n protected override setUpOuterToInnerErrors$(): Observable<ValidationErrors> {\n return EMPTY;\n }\n\n private onValidatorChange: () => void = () => undefined;\n}\n","import { Directive, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\nimport { getValue } from '../get-value';\nimport { hasControls } from '../has-controls';\n\nimport { AbstractControlSuperclass } from './abstract-control-superclass';\n\n@Directive()\nexport abstract class FormGroupSuperclass<OuterType, InnerType = OuterType>\n extends AbstractControlSuperclass<OuterType, InnerType>\n implements OnInit\n{\n protected emptyValue!: InnerType;\n\n override setDisabledState(_isDisabled: boolean): void {\n return;\n }\n\n override ngOnInit() {\n this.emptyValue = getValue(this.control) as InnerType;\n super.ngOnInit();\n }\n\n protected override outerToInnerValue(outer: OuterType): InnerType {\n if (hasControls(this.control)) {\n if (!outer) {\n return this.emptyValue;\n }\n if (\n Object.keys(outer).length < Object.keys((this.control as FormGroup).controls).length\n ) {\n return Object.assign({}, this.emptyValue, outer);\n }\n }\n return outer as never;\n }\n}\n","import { Provider, Type, forwardRef } from '@angular/core';\nimport { NG_VALIDATORS } from '@angular/forms';\n\nexport const provideValidators = (component: () => Type<unknown>): Provider => ({\n provide: NG_VALIDATORS,\n useExisting: forwardRef(component),\n multi: true,\n});\n","import { Provider, Type, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport const provideValueAccessor = (component: () => Type<unknown>): Provider => ({\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(component),\n multi: true,\n});\n","import { Provider, Type } from '@angular/core';\n\nimport { provideValidators } from './provide-validators';\nimport { provideValueAccessor } from './provide-value-accessor';\n\nexport const createControlProviders = (component: () => Type<unknown>): Provider[] => [\n provideValueAccessor(component),\n provideValidators(component),\n];\n","import { Directive } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\nimport { AbstractControlSuperclass } from './abstract-control-superclass';\n\n@Directive()\nexport class FormControlSuperclass<\n OuterType,\n InnerType = OuterType,\n> extends AbstractControlSuperclass<OuterType, InnerType> {\n control = new FormControl() as FormControl<InnerType>;\n}\n","import { ChangeDetectorRef, DestroyRef, Directive, OnInit, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AbstractControl, ValidationErrors, Validator } from '@angular/forms';\nimport { FormComponentSuperclass as BaseFormComponentSuperclass } from '@s-libs/ng-core';\nimport { concat, timer } from 'rxjs';\n\n@Directive()\nexport abstract class FormComponentSuperclass<OuterType>\n extends BaseFormComponentSuperclass<OuterType>\n implements Validator, OnInit\n{\n private _cdr = inject(ChangeDetectorRef);\n private _destroyRef = inject(DestroyRef);\n\n validate(_control: AbstractControl): ValidationErrors | null {\n return null;\n }\n\n ngOnInit() {\n concat(timer(0), timer(100))\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this.onValidatorChange();\n this._cdr.markForCheck();\n });\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onValidatorChange = fn;\n }\n\n private onValidatorChange: () => void = () => undefined;\n}\n","import isNil from 'lodash-es/isNil';\n\nexport function isEmptyPrimitive(value: unknown): boolean {\n return isNil(value) || value === '';\n}\n","import { AbstractControl } from '@angular/forms';\nimport omitBy from 'lodash-es/omitBy';\nimport { filter, map } from 'rxjs/operators';\n\nimport { isEmptyPrimitive } from '../empty/is-empty-primitive';\n\nimport { getValueChanges } from './get-value-changes';\n\nexport function getValidValueChanges(control: AbstractControl, predicate = isEmptyPrimitive) {\n return getValueChanges(control).pipe(\n filter(() => control.valid),\n map((value) => omitBy(value, predicate)),\n );\n}\n","import { AbstractControl } from '@angular/forms';\n\nexport function setDisabled(\n control?: AbstractControl,\n disabled: boolean = true,\n options: Parameters<AbstractControl['disable']>[0] = {},\n) {\n if (!control || control.disabled === disabled) {\n return;\n }\n if (disabled) {\n control.disable(options);\n } else {\n control.enable(options);\n }\n}\n","import { FormControl } from '@angular/forms';\n\nexport function createControls<T extends object>(values: T): { [K in keyof T]: FormControl<T[K]> } {\n return Object.fromEntries(\n Object.entries(values).map(([k, v]) => [k, new FormControl(v, { nonNullable: true })]),\n ) as never;\n}\n","function getTimeZoneOffset(date: Date) {\n return date.getTimezoneOffset() * 60_000;\n}\n\nexport function getNoTimeZoneIsoString(date?: Date | null): string {\n return date ? new Date(date.valueOf() - getTimeZoneOffset(date)).toISOString() : '';\n}\n\nexport function createDateFromNoTimeZoneString(dateStr: string): Date {\n const date = new Date(dateStr);\n return new Date(date.valueOf() + getTimeZoneOffset(date));\n}\n","import * as currencies from '@dinero.js/currencies';\n\nexport const getCurrencyExponent = (currencyCode: string): number =>\n currencies[currencyCode as keyof typeof currencies]?.exponent;\n","import round from 'lodash-es/round';\n\nimport { getCurrencyExponent } from './get-currency-exponent';\n\nexport const toMajorByExponent = (amount: number, exponent: number): number =>\n round(amount / 10 ** exponent, exponent);\n\nexport const toMajor = (amount: number, currencyCode: string): number =>\n toMajorByExponent(amount, getCurrencyExponent(currencyCode));\n","import { getCurrencyExponent } from './get-currency-exponent';\n\nexport const toMinorByExponent = (amount: number, exponent: number): number =>\n Math.round(amount * 10 ** exponent);\n\nexport const toMinor = (amount: number, currencyCode: string): number =>\n toMinorByExponent(amount, getCurrencyExponent(currencyCode));\n","import { getCurrencySymbol, formatCurrency as ngFormatCurrency } from '@angular/common';\n\nimport { getCurrencyExponent } from './get-currency-exponent';\nimport { toMajorByExponent } from './to-major';\n\nexport function formatCurrency(\n amount: number,\n currencyCode: string = 'USD',\n format: 'short' | 'long' = 'long',\n locale = 'en-GB',\n exponent?: number,\n isMajor: boolean = false,\n): string {\n if (typeof exponent !== 'number') {\n exponent = getCurrencyExponent(currencyCode) || 0;\n }\n return ngFormatCurrency(\n isMajor ? amount : toMajorByExponent(amount, exponent),\n locale,\n getCurrencySymbol(currencyCode, 'narrow', locale),\n currencyCode,\n format === 'short' ? `1.0-${exponent}` : `1.${exponent}-${exponent}`,\n );\n}\n","import { get as _get } from 'lodash-es';\nimport { Observable } from 'rxjs';\n\nexport type SelectFn<\n TObject extends object = object,\n TResult = unknown,\n TParams extends Array<unknown> = [],\n> = string | ((obj: TObject, ...params: TParams) => Observable<TResult> | TResult);\n\nexport function select<TObject extends object, TResult, TParams extends Array<unknown> = []>(\n obj: TObject,\n selectFn: SelectFn<TObject, TResult, TParams>,\n defaultValue?: TResult,\n restParams: TParams[] = [],\n): TResult | Observable<TResult> {\n if (typeof selectFn === 'string') {\n return _get(obj, selectFn, defaultValue) as TResult;\n }\n return selectFn(obj, ...(restParams as never));\n}\n\n// export function selectAsObservable<TObject extends object, TResult, TParams extends Array<unknown> = []>(\n// obj: TObject,\n// selectFn: SelectFn<TObject, TResult, TParams>,\n// defaultValue?: TResult,\n// restParams: TParams[] = [],\n// ): TResult | Observable<TResult> {\n// const res = select(obj, selectFn, defaultValue, restParams);\n// return isObservable(res) ? res : of(res);\n// }\n","export function countProps(...objects: object[]): number {\n return objects.reduce((acc, obj) => acc + (obj ? Object.keys(obj).length : 0), 0);\n}\n","import lodashIsEmpty from 'lodash-es/isEmpty';\nimport isObject from 'lodash-es/isObject';\n\nimport { isEmptyPrimitive } from './is-empty-primitive';\n\nexport function isEmpty(value: unknown): boolean {\n return isObject(value)\n ? value.constructor === Object ||\n Array.isArray(value) ||\n value instanceof Set ||\n value instanceof Map\n ? lodashIsEmpty(value)\n : false\n : isEmptyPrimitive(value);\n}\n","import { difference } from 'lodash-es';\nimport isEqual from 'lodash-es/isEqual';\n\nimport { isEmpty } from '../empty';\n\nexport function countChanged<T extends object>(\n a: T,\n b: T,\n // is equal boolean or count number\n predicates: { [K in keyof T]?: (a: T[K], b: T[K]) => number | boolean } = {},\n): number {\n const aKeys: (keyof T)[] = Object.keys(a) as never;\n const bKeys: (keyof T)[] = Object.keys(b) as never;\n const diffKeys = difference(aKeys, bKeys);\n const sameKeys = difference(aKeys, diffKeys);\n return sameKeys\n .map((k) => {\n if (k in predicates) {\n const res = predicates[k]?.(a[k], b[k]);\n return typeof res === 'boolean' ? +!res : Number(res);\n }\n return (isEmpty(a[k]) && isEmpty(b[k])) || isEqual(a[k], b[k]) ? 0 : 1;\n })\n .reduce((sum, v) => sum + v, diffKeys.length);\n}\n","import { ValuesType } from 'utility-types';\n\nexport type Enum = Record<PropertyKey, unknown>;\n\nexport function getEnumEntries<E extends Enum>(srcEnum: E): [key: keyof E, value: ValuesType<E>][] {\n if (!srcEnum) {\n return [];\n }\n const entries = Object.entries(srcEnum);\n if (!entries.length) {\n return [];\n }\n const isValueNumberEnum = entries.some(([, v]) => typeof v === 'number');\n if (isValueNumberEnum) {\n return entries.filter(([, v]) => typeof v === 'number') as never;\n }\n return entries as never;\n}\n\nexport function getEnumKeyValues<E extends Enum>(\n srcEnum: E,\n): { key: keyof E; value: ValuesType<E> }[] {\n return getEnumEntries(srcEnum).map(([key, value]) => ({ key, value }));\n}\n\nexport function getEnumKeys<E extends Enum>(srcEnum: E): (keyof E)[] {\n return getEnumEntries(srcEnum).map(([k]) => k);\n}\n\nexport function getEnumValues<E extends Enum>(srcEnum: E): ValuesType<E>[] {\n return getEnumEntries(srcEnum).map(([, v]) => v);\n}\n\nexport function getEnumKey<E extends Enum>(srcEnum: E, value: ValuesType<E>): keyof E {\n return getEnumKeyValues(srcEnum).find((e) => String(e.value) === String(value))?.key as keyof E;\n}\n\nexport function enumHasValue<E extends Enum>(\n srcEnum: E,\n value: ValuesType<E> | string,\n): value is ValuesType<E> {\n return getEnumValues(srcEnum).includes(value as ValuesType<E>);\n}\n","import { ValuesType } from 'utility-types';\n\nimport { isEmpty } from '../empty/is-empty';\nimport { isEmptyPrimitive } from '../empty/is-empty-primitive';\n\nexport function clean<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n T extends ReadonlyArray<any> | ArrayLike<any> | Record<any, any>,\n TAllowRootRemoval extends boolean = false,\n>(\n obj: T,\n allowRootRemoval: TAllowRootRemoval = false as TAllowRootRemoval,\n isNotDeep = false,\n filterPredicate: (v: unknown, k?: PropertyKey) => boolean = (v) => !isEmpty(v),\n): TAllowRootRemoval extends true ? T | null : T {\n if (allowRootRemoval && !filterPredicate(obj)) {\n return null as never;\n }\n const cleanChild = (v: unknown) =>\n isNotDeep ? v : clean(v as never, true, isNotDeep, filterPredicate);\n if (Array.isArray(obj)) {\n return (obj as ValuesType<T>[])\n .map((v) => cleanChild(v))\n .filter((v, idx) => filterPredicate(v, idx)) as never;\n }\n if (obj?.constructor === Object) {\n return Object.fromEntries(\n (Object.entries(obj) as [keyof T, ValuesType<T>][])\n .map(([k, v]) => [k, cleanChild(v)] as const)\n .filter(([k, v]) => filterPredicate(v, k)),\n ) as never;\n }\n return obj;\n}\n\nexport function cleanPrimitiveProps<T extends object>(\n obj: T,\n allowRootRemoval = false,\n isNotDeep = false,\n) {\n return clean(obj, allowRootRemoval, isNotDeep, (v) => !isEmptyPrimitive(v));\n}\n","function isNumber(v: unknown): boolean {\n return !!v && (typeof v === 'number' || /^-?\\d+.*$/.test(String(v).trim()));\n}\n\nfunction toNumber(v: unknown): number {\n return typeof v === 'string'\n ? parseFloat(v.replace(',', '.').replace(/[^0-9.-]+/g, ''))\n : Number(v);\n}\n\n/**\n * Use with sorting (arr.sort(fn))\n */\nexport function compareDifferentTypes<T>(a: T, b: T): number {\n const aIsNum = isNumber(a);\n const bIsNum = isNumber(b);\n if (aIsNum || bIsNum) {\n if (aIsNum && bIsNum) {\n return toNumber(a) - toNumber(b);\n } else if (aIsNum) {\n return -1;\n } else {\n return 1;\n }\n }\n return String(a).localeCompare(String(b));\n}\n","import { get } from 'lodash-es';\nimport { Observable, from } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nexport function getImportValue<T>(imp: Promise<unknown>, prop: string = 'default'): Observable<T> {\n return from(imp).pipe(\n map((module) => {\n if (!prop) {\n return module as T;\n }\n return get(module, prop, null) as T;\n }),\n );\n}\n","interface FileType {\n type: string;\n format: string;\n}\n\nconst FILE_TYPES = {\n csv: {\n type: 'text/csv',\n format: 'csv',\n },\n} satisfies Record<string, FileType>;\n\nexport function downloadFile(\n data: string,\n type: keyof typeof FILE_TYPES,\n filename: string = 'data',\n): void {\n const blob = new Blob([data], { type: FILE_TYPES[type].type });\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = `${filename}.${FILE_TYPES[type].format}`;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n window.URL.revokeObjectURL(url);\n}\n","import * as papaparse from 'papaparse';\n\nexport function createCsv(data: unknown[]) {\n return papaparse.unparse(data);\n}\n","export function removeLineBreaks(str: string): string {\n return str.replace(/^[\\r\\n\\s]+|[\\r\\n\\s]+$/g, '');\n}\n","import papa, { ParseConfig } from 'papaparse';\n\nimport { removeLineBreaks } from './utils/remove-line-breaks';\n\nexport function parseCsv(content: string, config?: ParseConfig) {\n return papa.parse(removeLineBreaks(content), config);\n}\n","export function unifyCsvItems<T>(\n csv: T[] | string[][],\n defaultProps: readonly (keyof T)[] | (keyof T)[],\n): T[] {\n if (!Array.isArray(csv)) {\n return [];\n }\n if (Array.isArray(csv?.[0])) {\n return (csv as string[][]).map((d) =>\n Object.fromEntries(d.map((prop, idx) => [defaultProps[idx], prop])),\n ) as T[];\n }\n return csv as T[];\n}\n","import { Nil } from '../empty';\n\nexport function arrayAttribute<T>(value: ArrayAttributeTransform<T>): T[] {\n if (!Array.isArray(value)) {\n return [];\n }\n return value;\n}\n\nexport type ArrayAttributeTransform<T> = T[] | Nil;\n","export function DebounceTime(ms: number = 500) {\n return function (target: object, propertyKey: PropertyKey, descriptor: PropertyDescriptor) {\n let timer: number | null = null;\n const method = descriptor.value;\n\n descriptor.value = function () {\n if (timer !== null) {\n window.clearTimeout(timer);\n }\n timer = window.setTimeout(() => {\n // eslint-disable-next-line prefer-rest-params\n method.apply(this, arguments);\n timer = null;\n }, ms);\n };\n };\n}\n","import { Injector } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { distinctUntilChanged, filter, fromEvent, map, shareReplay, startWith } from 'rxjs';\n\nexport function createStorageValue<T>(\n key: string,\n {\n serialize = (v) => (v === null ? null : String(v)),\n deserialize,\n injector,\n }: {\n serialize?: (v: T) => string | null;\n deserialize: (v: string | null) => T;\n injector?: Injector;\n },\n) {\n const value$ = fromEvent<StorageEvent>(document, 'storage').pipe(\n filter((v) => v.key === key),\n map((v) => v.newValue),\n startWith(localStorage.getItem(key)),\n map((v) => deserialize(v)),\n distinctUntilChanged(),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n return {\n get(): T {\n return deserialize(localStorage.getItem(key));\n },\n set(value: T): void {\n const serialized = serialize(value);\n if (serialized === null) {\n return localStorage.removeItem(key);\n }\n return localStorage.setItem(key, serialized);\n },\n value$,\n value: toSignal(value$, { injector }),\n };\n}\n","import { Component, Input, booleanAttribute, input } from '@angular/core';\nimport { MatFormFieldAppearance } from '@angular/material/form-field';\n\nimport { FormControlSuperclass, createControlProviders } from '../../utils';\n\n@Component({\n selector: 'v-input-field',\n templateUrl: './input-field.component.html',\n providers: createControlProviders(() => InputFieldComponent),\n styleUrl: 'input-field.component.scss',\n standalone: false,\n})\nexport class InputFieldComponent<T> extends FormControlSuperclass<T> {\n @Input() label?: string;\n @Input() placeholder: string = '';\n @Input() type: 'string' | 'number' = 'string';\n @Input() appearance: MatFormFieldAppearance = 'fill';\n @Input() size?: 'small' | '';\n cleanButton = input(false, { transform: booleanAttribute });\n icon = input<string>();\n}\n","<mat-form-field\n [appearance]=\"appearance\"\n [ngClass]=\"{\n 'v-input-field__small': size === 'small',\n 'v-input-field__outline': appearance === 'outline',\n }\"\n class=\"v-input-field\"\n>\n @if (icon()) {\n <div class=\"prefix\" matPrefix>\n <mat-icon>{{ icon() }}</mat-icon>\n </div>\n }\n <mat-label>{{ label }}</mat-label>\n <input\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [type]=\"type\"\n autocomplete=\"false\"\n matInput\n />\n <div class=\"postfix\" matSuffix>\n @if (cleanButton()) {\n <button\n [disabled]=\"!control.value\"\n [style.visibility]=\"control.value ? '' : 'hidden'\"\n mat-icon-button\n (click)=\"control.reset()\"\n >\n <mat-icon>clear</mat-icon>\n </button>\n }\n </div>\n</mat-form-field>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { InputFieldComponent } from './input-field.component';\n\n@NgModule({\n declarations: [InputFieldComponent],\n exports: [InputFieldComponent],\n imports: [CommonModule, MatInputModule, ReactiveFormsModule, MatIcon, MatIconButton],\n})\nexport class InputFieldModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n booleanAttribute,\n input,\n} from '@angular/core';\n\nimport { Color } from '../../styles';\n\n@Component({\n selector: 'v-tag',\n templateUrl: './tag.component.html',\n styleUrls: ['./tag.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TagComponent {\n @HostBinding('class.v-tag') hostClass: boolean = true;\n\n @Input() color?: Color;\n icon = input<string>();\n\n progress = input(false, { transform: booleanAttribute });\n}\n","<mat-chip-row\n [disabled]=\"progress()\"\n [ngClass]=\"{ loading: progress(), action: !!icon() }\"\n class=\"tag {{ 'color-' + color }}\"\n disableRipple\n>\n @if (icon()) {\n <button matChipRemove>\n <mat-icon>{{ progress() ? 'autorenew' : icon() }}</mat-icon>\n </button>\n }\n <ng-content></ng-content>\n</mat-chip-row>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { TagComponent } from './tag.component';\n\n@NgModule({\n declarations: [TagComponent],\n imports: [CommonModule, MatChipsModule, MatIconModule],\n exports: [TagComponent],\n})\nexport class TagModule {}\n","export const SPACES = /[\\s\\u00A0]/g;\n\nexport function normalizeString(str: string) {\n return (str || '').replace(SPACES, ' ');\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n Injector,\n OnInit,\n Renderer2,\n input,\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { combineLatest } from 'rxjs';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\n\nimport { SPACES } from '../components/table/utils/normalize-string';\n\n@Directive({\n standalone: true,\n selector: '[vHighlight]',\n})\nexport class HighlightDirective implements OnInit {\n vHighlightText = input('', { transform: (v) => String(v || '') });\n vHighlightSearch = input('', { transform: (v) => String(v || '') });\n\n constructor(\n private el: ElementRef,\n private renderer: Renderer2,\n private dr: DestroyRef,\n private injector: Injector,\n ) {}\n\n ngOnInit() {\n combineLatest([\n toObservable(this.vHighlightText, { injector: this.injector }).pipe(\n distinctUntilChanged(),\n map((text) => this.escapeHtml(text)),\n ),\n toObservable(this.vHighlightSearch, { injector: this.injector }).pipe(\n distinctUntilChanged(),\n map((text) => this.escapeHtml(text)),\n ),\n ])\n .pipe(\n map(([text, search]) => {\n if (!search) {\n return text;\n }\n const re = new RegExp(`(${search.replace(SPACES, '\\\\s')})`, 'gi');\n return text.replace(re, `<mark>$1</mark>`);\n }),\n distinctUntilChanged(),\n takeUntilDestroyed(this.dr),\n )\n .subscribe((text) => {\n this.renderer.setProperty(this.el.nativeElement, 'innerHTML', text);\n });\n }\n\n private escapeHtml(html: string): string {\n return html\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n }\n}\n","import { Component, input } from '@angular/core';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatMenu, MatMenuItem, MatMenuTrigger } from '@angular/material/menu';\n\nimport { TypedParamsValue } from '../types/base-type';\n\nexport interface MenuItem {\n label: string;\n click?: (event: MouseEvent) => void;\n disabled?: boolean;\n}\n\nexport type MenuValue = TypedParamsValue<'menu', { items: MenuItem[] }>;\n\n@Component({\n selector: 'v-menu-value',\n imports: [MatIcon, MatIconButton, MatMenu, MatMenuItem, MatMenuTrigger],\n template: ` @if (value(); as v) {\n <button [matMenuTriggerFor]=\"menu\" class=\"button\" mat-icon-button>\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n @for (item of v.params.items; track item; let index = $index) {\n <button [disabled]=\"!!item?.disabled\" mat-menu-item (click)=\"item?.click?.($event)\">\n {{ item.label }}\n </button>\n }\n </mat-menu>\n }`,\n styles: ``,\n})\nexport class MenuValueComponent {\n value = input.required<MenuValue>();\n}\n","import { Component, input } from '@angular/core';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\n\nimport { TypedParamsValue } from '../types/base-type';\n\nexport type ToggleValue = TypedParamsValue<'toggle'>;\n\n@Component({\n selector: 'v-toggle-value',\n imports: [MatSlideToggleModule],\n template: ` @if (value(); as v) {\n <mat-slide-toggle\n [checked]=\"value().value\"\n (change)=\"$event.source.checked = !!value().value\"\n >\n </mat-slide-toggle>\n }`,\n})\nexport class ToggleValueComponent {\n value = input.required<ToggleValue>();\n}\n","import { LOCALE_ID, inject } from '@angular/core';\n\nimport { formatCurrency } from '../../../utils';\nimport { TypedParamsValue } from '../types/base-type';\n\nexport type CurrencyAmountValue = TypedParamsValue<\n 'currency',\n { code: string; exponent?: number; major?: boolean },\n Parameters<typeof formatCurrency>[0]\n>;\n\nexport function currencyAmountValueToString(value: CurrencyAmountValue) {\n if (typeof value?.value !== 'number') {\n return '';\n }\n const locale = inject(LOCALE_ID);\n return formatCurrency(\n value.value,\n value.params.code,\n 'long',\n locale,\n value.params.exponent,\n !!value.params.major,\n );\n}\n","import { formatDate } from '@angular/common';\nimport { LOCALE_ID, inject } from '@angular/core';\n\nimport { TypedValue } from '../types/base-type';\n\nexport type DatetimeValue = TypedValue<'datetime', Parameters<typeof formatDate>[0]>;\n\nexport function datetimeValueToString(value: DatetimeValue) {\n if (!value?.value) {\n return '';\n }\n const locale = inject(LOCALE_ID);\n return formatDate(value.value, 'dd.MM.yyyy HH:mm:ss', locale, '+0000');\n}\n","import isNil from 'lodash-es/isNil';\n\nexport function unknownToString(value: unknown): string {\n if (isNil(value)) {\n return '';\n }\n return String(value);\n}\n","import { Value } from '../types/value';\n\nimport { currencyAmountValueToString } from './currency-amount-value-to-string';\nimport { datetimeValueToString } from './datetime-value-to-string';\nimport { unknownToString } from './unknown-to-string';\n\nexport function valueToString(value?: Value | null): string {\n switch (value?.type) {\n case 'currency':\n return currencyAmountValueToString(value);\n case 'datetime':\n return datetimeValueToString(value);\n }\n return unknownToString(value?.value)?.trim?.();\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Injector,\n Input,\n booleanAttribute,\n input,\n model,\n runInInjectionContext,\n} from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { Router } from '@angular/router';\nimport { Observable, combineLatest, isObservable, of, switchMap } from 'rxjs';\nimport { filter, first, map, shareReplay } from 'rxjs/operators';\n\nimport { HighlightDirective } from '../../directives';\nimport { Nil } from '../../utils';\nimport { ContentLoadingComponent } from '../content-loading';\nimport { TagModule } from '../tag';\n\nimport { MenuValueComponent } from './components/menu-value.component';\nimport { ToggleValueComponent } from './components/toggle-value.component';\nimport { Value } from './types/value';\nimport { valueToString } from './utils/value-to-string';\n\n@Component({\n selector: 'v-value',\n imports: [\n CommonModule,\n MatIcon,\n MatIconButton,\n TagModule,\n MatTooltip,\n MenuValueComponent,\n ContentLoadingComponent,\n HighlightDirective,\n ToggleValueComponent,\n ],\n templateUrl: './value.component.html',\n styleUrl: './value.component.scss',\n host: {\n '[class.inline]': 'inline',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ValueComponent {\n value = input<Value | Nil>();\n lazyValue = input<Observable<Value> | Nil>();\n lazyVisible = model<boolean>(false);\n\n progress = input(false, { transform: booleanAttribute });\n @Input({ transform: booleanAttribute }) inline = false;\n @Input({\n transform: (v: unknown): string => (v === false ? '' : typeof v === 'string' ? v : '―'),\n })\n emptySymbol = '―';\n\n @Input() highlight?: string | null;\n\n value$ = combineLatest([toObservable(this.value), toObservable(this.lazyValue)]).pipe(\n switchMap(([value, lazyValue]) => (isObservable(lazyValue) ? lazyValue : of(value))),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n valueText$ = this.value$.pipe(\n map((value) => runInInjectionContext(this.injector, () => valueToString(value))),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n inProgress$ = combineLatest([\n toObservable(this.progress),\n this.value$.pipe(map((v) => v?.inProgress ?? false)),\n ]).pipe(\n map(([compProgress, valueProgress]) => compProgress || valueProgress),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n constructor(\n private injector: Injector,\n private router: Router,\n ) {}\n\n makeLazyVisible() {\n this.lazyVisible.set(true);\n }\n\n click(event: MouseEvent) {\n this.value$.pipe(first(), filter(Boolean)).subscribe((value) => {\n runInInjectionContext(this.injector, () => {\n if (value?.click) {\n value.click(event);\n } else if (typeof value?.link === 'function') {\n const linkArgs = value.link(event);\n if (typeof linkArgs === 'string') {\n this.router.navigateByUrl(linkArgs);\n return;\n }\n this.router.navigate(...linkArgs);\n }\n });\n });\n }\n}\n","@if (!value() && lazyValue() && !lazyVisible()) {\n <button class=\"button\" mat-icon-button (click)=\"lazyVisible.set(true)\">\n <mat-icon>sync</mat-icon>\n </button>\n} @else {\n @if (value$ | async; as v) {\n <div\n [ngClass]=\"{ wrapper__action: v.click || v.link }\"\n class=\"wrapper\"\n (click)=\"click($event)\"\n >\n @if (v.template) {\n <ng-container *ngTemplateOutlet=\"v.template; context: {}\"></ng-container>\n } @else {\n @if (v.color) {\n <v-tag [color]=\"v.color\">\n <ng-container *ngTemplateOutlet=\"tooltipTemplate\"></ng-container>\n </v-tag>\n } @else {\n <ng-container *ngTemplateOutlet=\"tooltipTemplate\"></ng-container>\n }\n\n <ng-template #tooltipTemplate>\n @if (v.tooltip) {\n <span [matTooltip]=\"v.tooltip\" class=\"tooltip\">\n <ng-container *ngTemplateOutlet=\"valueTemplate\"></ng-container>\n </span>\n } @else {\n <span [title]=\"v.value\">\n <ng-container *ngTemplateOutlet=\"valueTemplate\"></ng-container>\n </span>\n }\n </ng-template>\n\n <ng-template #valueTemplate>\n @switch (v.type) {\n @case ('menu') {\n <v-menu-value [value]=\"v\"></v-menu-value>\n }\n @case ('toggle') {\n <v-toggle-value [value]=\"v\"></v-toggle-value>\n }\n @default {\n @let valueText = valueText$ | async;\n @if (inProgress$ | async) {\n <v-content-loading [hiddenText]=\"valueText\"></v-content-loading>\n } @else if (valueText) {\n <span\n [ngClass]=\"{ value__click: v.click, value__link: v.link }\"\n [vHighlightSearch]=\"highlight\"\n [vHighlightText]=\"valueText\"\n vHighlight\n ></span>\n } @else if (emptySymbol) {\n <span style=\"color: #ccc\">{{ emptySymbol }}</span>\n }\n }\n }\n </ng-template>\n }\n\n @if (v.description) {\n <div\n [title]=\"v.description\"\n [vHighlightSearch]=\"highlight\"\n [vHighlightText]=\"v.description\"\n class=\"description mat-label-medium mat-secondary-text\"\n vHighlight\n ></div>\n }\n </div>\n } @else {\n <v-content-loading></v-content-loading>\n }\n}\n","import { Component, input } from '@angular/core';\n\nimport { Value } from '../types/value';\nimport { ValueComponent } from '../value.component';\n\n@Component({\n selector: 'v-value-list',\n imports: [ValueComponent],\n template: `\n @if (list(); as items) {\n @if (items.length > 1) {\n <div class=\"list\">\n @for (item of items; track item) {\n <v-value [value]=\"item\" inline></v-value>\n }\n </div>\n } @else {\n <v-value [value]=\"items[0]\" inline></v-value>\n }\n } @else {\n <v-value [progress]=\"true\" inline></v-value>\n }\n `,\n styles: `\n .list {\n display: flex;\n flex-direction: column;\n\n & > * {\n overflow: hidden;\n text-overflow: ellipsis;\n min-height: 20px;\n }\n }\n `,\n})\nexport class ValueListComponent {\n list = input<Value[] | undefined | null>();\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'v-table-inputs',\n template: `<ng-content></ng-content>`,\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TableInputsComponent {}\n","import isNil from 'lodash-es/isNil';\n\nexport function createUniqueColumnDef(name?: unknown) {\n return `___$$${\n typeof name === 'object' || isNil(name) ? 'column' : String(name)\n }_${Math.random().toString()}`;\n}\n","import { Sort } from '@angular/material/sort';\n\nimport { createUniqueColumnDef } from './utils/create-unique-column-def';\n\nexport const DEFAULT_SORT: Sort = { active: '', direction: '' };\nexport const DEBOUNCE_TIME_MS = 500;\nexport const DEFAULT_LOADED_LAZY_ROWS_COUNT = 3;\nexport const COLUMN_DEFS = {\n select: createUniqueColumnDef('select'),\n drag: createUniqueColumnDef('drag'),\n};\n","import { get } from 'lodash-es';\nimport isNil from 'lodash-es/isNil';\nimport startCase from 'lodash-es/startCase';\nimport { Observable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { Async, PossiblyAsync, getPossiblyAsyncObservable } from '../../../utils';\nimport { Value } from '../../value';\n\nexport type Fn<R, P extends Array<unknown> = []> = (...args: P) => R;\nexport type PossiblyFn<R, P extends Array<unknown> = []> = Fn<R, P> | R;\n\nexport type CellFnArgs<T extends object> = [data: T, index: number];\n\ninterface ColumnParams {\n sticky?: 'start' | 'end';\n style?: Record<string, unknown>;\n}\n\nexport type CellValue = 'string' | Value;\n\nexport interface Column<T extends object, C extends object = object> extends ColumnParams {\n field: string;\n\n header?: PossiblyAsync<Partial<Value> | string>;\n\n cell?: PossiblyFn<PossiblyAsync<CellValue>, CellFnArgs<T>>;\n lazyCell?: PossiblyFn<Async<CellValue>, CellFnArgs<T>>;\n child?: PossiblyFn<PossiblyAsync<CellValue>, CellFnArgs<C>>;\n\n hidden?: PossiblyAsync<boolean>;\n sort?: PossiblyAsync<boolean>;\n}\n\nexport function normalizePossiblyFn<R, P extends Array<unknown>>(fn: PossiblyFn<R, P>): Fn<R, P> {\n return typeof fn === 'function' ? (fn as Fn<R, P>) : () => fn;\n}\n\nexport function normalizeCell<T extends object, C extends object>(\n field: string,\n cell: Column<T, C>['cell'],\n hasChild: boolean = false,\n): Fn<Observable<Value>, CellFnArgs<T>> {\n const cellFn = normalizePossiblyFn(cell);\n return (...args) =>\n getPossiblyAsyncObservable(cellFn(...args)).pipe(\n map((value) => {\n const defaultValue = hasChild ? { value: '' } : { value: get(args[0], field) };\n if (isNil(value)) {\n return defaultValue;\n }\n return typeof value === 'object' ? { ...defaultValue, ...value } : { value };\n }),\n );\n}\n\nexport class NormColumn<T extends object, C extends object = object> {\n field!: string;\n header!: Observable<Value>;\n cell?: Fn<Observable<Value>, CellFnArgs<T>>;\n lazyCell?: Fn<Observable<Value>, CellFnArgs<T>>;\n child?: Fn<Observable<Value>, CellFnArgs<C>>;\n hidden!: Observable<boolean>;\n sort!: Observable<boolean | null>;\n params!: ColumnParams;\n\n constructor(\n { field, header, cell, child, hidden, sort, lazyCell, ...params }: Column<T, C>,\n commonParams: ColumnParams = {},\n ) {\n this.field = field ?? (typeof header === 'string' ? header : String(Math.random()));\n const defaultHeaderValue = startCase((field || '').split('.').at(-1));\n this.header = getPossiblyAsyncObservable(header).pipe(\n map((value) =>\n typeof value === 'object'\n ? ({ value: defaultHeaderValue, ...value } as Value)\n : { value: value ?? defaultHeaderValue },\n ),\n );\n if (cell || !lazyCell) {\n this.cell = normalizeCell(this.field, cell, !!child);\n }\n if (lazyCell) {\n this.lazyCell = normalizeCell(this.field, lazyCell, !!child);\n }\n if (child) {\n this.child = normalizeCell(this.field, child);\n }\n this.params = {\n ...commonParams,\n ...params,\n style: Object.assign({}, commonParams?.style, params?.style),\n };\n this.hidden = isNil(hidden) ? of(false) : getPossiblyAsyncObservable(hidden);\n this.sort = isNil(sort) ? of(null) : getPossiblyAsyncObservable(sort);\n }\n}\n","import { Injector, inject, runInInjectionContext } from '@angular/core';\nimport { Sort } from '@angular/material/sort';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { compareDifferentTypes } from '../../../utils';\nimport { valueToString } from '../../value/utils/value-to-string';\nimport { NormColumn } from '../types';\nimport { ColumnData, DisplayedData, DisplayedDataItem } from '../utils/to-columns-data';\n\nimport { normalizeString } from './normalize-string';\n\nexport type FilterSearchData<T extends object, C extends object> = Map<\n DisplayedDataItem<T, C>,\n { byColumns: string[][]; byRow: string }\n>;\n\nexport function columnsDataToFilterSearchData<T extends object, C extends object>(\n src$: Observable<Map<DisplayedDataItem<T, C>, ColumnData>>,\n) {\n const injector = inject(Injector);\n return src$.pipe(\n map(\n (data) =>\n new Map(\n Array.from(data.entries()).map(([item, value]) => [\n item,\n {\n byColumns: value.map((el) => [\n runInInjectionContext(injector, () =>\n normalizeString(valueToString(el?.value)),\n ),\n normalizeString(String(el?.value?.description ?? '')),\n ]),\n byRow: JSON.stringify(item),\n },\n ]),\n ),\n ),\n );\n}\n\nfunction getWeight(\n searchValue: string,\n search: string,\n lowerCaseSearch: string,\n unimportance: number = 0,\n) {\n if (searchValue === search) {\n return 1000000 - unimportance;\n } else if (searchValue.includes(search)) {\n return 10000 - unimportance;\n } else if (searchValue.toLowerCase().includes(lowerCaseSearch)) {\n return 100 - unimportance;\n }\n return 0;\n}\n\nexport function filterData<T extends object, C extends object>(\n data: FilterSearchData<T, C>,\n search: string,\n) {\n const lowerCaseSearch = search.toLowerCase();\n return Array.from(data.entries())\n .map(([value, searchValuesCols]) => ({\n value,\n priority:\n searchValuesCols.byColumns.reduce(\n (priority, searchValues) =>\n searchValues.reduce(\n (colPriority, searchValue, idx) =>\n colPriority + getWeight(searchValue, search, lowerCaseSearch, idx),\n priority,\n ),\n 0,\n ) + getWeight(searchValuesCols.byRow, search, lowerCaseSearch, 1),\n }))\n .filter((v) => v.priority)\n .sort((a, b) => b.priority - a.priority)\n .map((v) => v.value);\n}\n\nexport function sortData<T extends object, C extends object>(\n source: DisplayedData<T, C>,\n data: FilterSearchData<T, C>,\n columns: NormColumn<T, C>[],\n sort: Sort,\n) {\n if (!sort?.active || !sort?.direction) {\n return source;\n }\n const colIdx = columns.findIndex((c) => c.field === sort.active);\n const sortedData = source\n .slice()\n .sort((a, b) =>\n compareDifferentTypes(\n (data.get(a)?.byColumns ?? [])[colIdx]?.[0],\n (data.get(b)?.byColumns ?? [])[colIdx]?.[0],\n ),\n );\n return sort.direction === 'desc' ? sortedData.reverse() : sortedData;\n}\n","import { TreeDataItem } from './tree-data';\n\nexport function treeDataItemToInlineDataItem<T extends object, C extends object>(\n item: TreeDataItem<T, C>,\n) {\n const children = item.children ?? [];\n return [\n children.length ? { value: item.value, child: children[0] } : { value: item.value },\n ...children.slice(1).map((child) => ({ child })),\n ];\n}\n","import { Observable, scan } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nexport function cachedHeadMap<T extends object, R>(fn: (el: T, idx: number) => R) {\n return (src$: Observable<T[] | undefined>) => {\n return src$.pipe(\n scan(\n (acc, v) => {\n return {\n prev: v ?? [],\n res: (v ?? []).map((el, idx) =>\n acc.prev[idx] === el ? acc.res[idx] : fn(el, idx),\n ),\n };\n },\n { prev: [], res: [] } as { prev: T[]; res: R[] },\n ),\n map(({ res }) => res),\n );\n };\n}\n","import { DestroyRef, EventEmitter, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatPaginator, PageEvent } from '@angular/material/paginator';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { BehaviorSubject, Observable, switchMap } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\n\nimport {\n TreeData,\n TreeInlineData,\n TreeInlineDataItem,\n treeDataItemToInlineDataItem,\n} from '../tree-data';\n\nimport { cachedHeadMap } from './cached-head-map';\n\nexport class TableDataSource<T extends object, C extends object = never> extends MatTableDataSource<\n T | TreeInlineDataItem<T, C>,\n OnePageTableDataSourcePaginator & MatPaginator\n> {\n isTreeData$ = new BehaviorSubject(false);\n sourceData$ = new BehaviorSubject<T[] | TreeData<T, C>>([]);\n data$: Observable<T[] | TreeInlineData<T, C>> = this.isTreeData$.pipe(\n switchMap((isTreeData) =>\n isTreeData\n ? (this.sourceData$ as Observable<TreeData<T, C>>).pipe(\n cachedHeadMap(treeDataItemToInlineDataItem),\n map((v) => v.flat()),\n )\n : this.sourceData$,\n ),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n override get paginator() {\n return this.__paginator as OnePageTableDataSourcePaginator & MatPaginator;\n }\n\n private __paginator = new OnePageTableDataSourcePaginator();\n\n constructor() {\n super();\n this.data$.pipe(takeUntilDestroyed(inject(DestroyRef))).subscribe((data) => {\n this.data = data;\n });\n }\n\n setData(data: T[]) {\n this.sourceData$.next(data);\n if (this.isTreeData$.value) {\n this.isTreeData$.next(false);\n }\n }\n\n setTreeData(data: TreeData<T, C>) {\n this.sourceData$.next(data);\n if (!this.isTreeData$.value) {\n this.isTreeData$.next(true);\n }\n }\n}\n\nclass OnePageTableDataSourcePaginator implements Partial<MatPaginator> {\n pageIndex = 0;\n pageSize = 0;\n page = new EventEmitter<PageEvent>();\n initialized = new BehaviorSubject(undefined);\n\n get length() {\n return this.pageSize;\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n set length(_length) {}\n\n get displayedPages() {\n return this.pageSize / this.partSize;\n }\n\n private partSize!: number;\n\n constructor(partSize?: number) {\n this.setSize(partSize);\n }\n\n setSize(partSize = 25) {\n if (partSize !== this.partSize) {\n this.pageSize = this.partSize = partSize;\n this.reload();\n }\n }\n\n reload() {\n this.pageSize = this.partSize;\n this.update();\n }\n\n more() {\n this.pageSize += this.partSize;\n this.update();\n }\n\n private update() {\n this.page.next({\n pageIndex: this.pageIndex,\n pageSize: this.pageSize,\n length: this.length,\n });\n }\n}\n","import { Value } from '../../value';\nimport { unknownToString } from '../../value/utils/unknown-to-string';\nimport { valueToString } from '../../value/utils/value-to-string';\nimport { ColumnData, DisplayedDataItem } from '../utils/to-columns-data';\n\nexport function tableToCsvObject<T extends object, C extends object>(\n cols: Value[],\n displayedData: Map<DisplayedDataItem<T, C>, ColumnData>,\n): string[][] {\n const data = Array.from(displayedData.values()).map((columnData) =>\n columnData.map((v) => v.value),\n );\n\n const res = [\n cols\n .map((v) => {\n const res = valueToString(v);\n return [res, `${res} (description)`];\n })\n .flat(),\n ...data.map((r) =>\n r.map((c) => [valueToString(c), unknownToString(c?.description)]).flat(),\n ),\n ];\n // Removing empty description columns (every second column)\n let emptyCols = [];\n for (\n let i = 1;\n i < res[0].length;\n i += 2 // description - every second column\n ) {\n let isEmpty = true;\n for (\n let j = 1; // ignore header row\n j < res.length;\n ++j\n ) {\n if (res[j][i]) {\n isEmpty = false;\n break;\n }\n }\n if (isEmpty) {\n emptyCols.push(i);\n }\n }\n emptyCols = emptyCols.reverse();\n for (const i of emptyCols) {\n for (let j = 0; j < res.length; ++j) {\n res[j].splice(i, 1);\n }\n }\n return res;\n}\n","import { isEqual } from 'lodash-es';\nimport { Observable, combineLatest, of, scan, switchMap, timer } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, map, shareReplay } from 'rxjs/operators';\nimport { Overwrite } from 'utility-types';\n\nimport { Value } from '../../value';\nimport { TreeInlineData, TreeInlineDataItem } from '../tree-data';\nimport { CellFnArgs, Fn, NormColumn } from '../types';\n\nexport type DisplayedDataItem<T extends object, C extends object> = TreeInlineDataItem<T, C> | T;\nexport type DisplayedData<T extends object, C extends object> = TreeInlineData<T, C> | T[];\n\nexport type ColumnDataItem = {\n value: Value | null;\n lazyValue?: Observable<Value>;\n isChild?: boolean;\n isNextChild?: boolean;\n};\nexport type ColumnData = ColumnDataItem[];\n\ntype ScanColumnDataItem = Overwrite<ColumnDataItem, { value: Observable<Value | null> }>;\ntype ScanColumnData<T extends object, C extends object> = Map<NormColumn<T, C>, ScanColumnDataItem>;\ntype ColumnDataMap<T extends object, C extends object> = Map<\n DisplayedDataItem<T, C>,\n ScanColumnData<T, C>\n>;\n\nfunction getValue<T extends object>(\n cellFn: Fn<Observable<Value>, CellFnArgs<T>> | undefined,\n ...[value, idx]: CellFnArgs<T>\n) {\n return cellFn ? cellFn(value, idx).pipe(toScannedValue) : of(null);\n}\n\nfunction toScannedValue(src$: Observable<Value>) {\n return src$.pipe(\n shareReplay({\n bufferSize: 1,\n refCount: true,\n }),\n );\n}\n\nexport function toObservableColumnsData<T extends object, C extends object>(\n src$: Observable<{ isTree: boolean; data: DisplayedData<T, C>; cols: NormColumn<T, C>[] }>,\n): Observable<ColumnDataMap<T, C>> {\n return src$.pipe(\n scan(\n (acc, { isTree, data, cols }) => {\n const isColsNotChanged = acc.cols === cols;\n return {\n res: new Map<TreeInlineDataItem<T, C> | T, ScanColumnData<T, C>>(\n isTree\n ? (data as TreeInlineData<T, C>).map((d, idx) => [\n d,\n isColsNotChanged &&\n d === acc.data[idx] &&\n // This is not the last value, because we need to calculate isNextChild\n idx !== acc.data.length - 1\n ? (acc.res.get(d) as ScanColumnData<T, C>)\n : new Map(\n cols.map((c) => [\n c,\n {\n value:\n d.child && c.child\n ? getValue(c.child, d.child, idx)\n : d.value\n ? getValue(c.cell, d.value, idx)\n : of({ value: '' }),\n // TODO add support of lazyValue\n isChild: !d.value,\n isNextChild: !(data as TreeInlineData<T, C>)[\n idx + 1\n ]?.value,\n },\n ]),\n ),\n ])\n : (data as T[]).map((d, idx) => [\n d,\n isColsNotChanged && d === acc.data[idx]\n ? (acc.res.get(d) as ScanColumnData<T, C>)\n : new Map(\n cols.map((c) => [\n c,\n {\n value: getValue(c.cell, d, idx),\n lazyValue: c.lazyCell\n ? c.lazyCell(d, idx).pipe(toScannedValue)\n : undefined,\n },\n ]),\n ),\n ]),\n ),\n data,\n cols,\n };\n },\n { data: [], cols: [], res: new Map() } as {\n data: DisplayedData<T, C>;\n cols: NormColumn<T, C>[];\n res: ColumnDataMap<T, C>;\n },\n ),\n map(({ res }) => res),\n );\n}\n\nexport function toColumnsData<T extends object, C extends object>(\n src$: Observable<ColumnDataMap<T, C>>,\n): Observable<Map<DisplayedDataItem<T, C>, ColumnData>> {\n return src$.pipe(\n switchMap((columnsData) => {\n if (!columnsData.size) {\n return of(new Map());\n }\n return combineLatest(\n Array.from(columnsData.values()).map((v) =>\n combineLatest(\n Array.from(v.values()).map((cell) =>\n timer(0).pipe(\n switchMap(() => cell.value),\n distinctUntilChanged(isEqual),\n ),\n ),\n ).pipe(debounceTime(0)),\n ),\n ).pipe(\n debounceTime(0),\n map(\n (res) =>\n new Map(\n Array.from(columnsData.entries()).map(([k, v], idx) => [\n k,\n Array.from(v.values()).map((cell, colIdx) => ({\n ...cell,\n value: res[idx][colIdx],\n })),\n ]),\n ),\n ),\n );\n }),\n );\n}\n","import { ChangeDetectionStrategy, Component, booleanAttribute, input } from '@angular/core';\n\n@Component({\n selector: 'v-no-records',\n template: `\n @if (noRecords()) {\n <div class=\"no-records mat-body-large\">\n {{ progress() ? 'Loading...' : 'No records' }}\n </div>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [],\n styles: `\n .no-records {\n position: absolute;\n z-index: 999;\n top: calc(50% + (56px / 2));\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n }\n `,\n})\nexport class NoRecordsComponent {\n noRecords = input(false, { transform: booleanAttribute });\n progress = input(false, { transform: booleanAttribute });\n}\n","import { Observable } from 'rxjs';\n\nexport function createIntersectionObserver(el: HTMLElement) {\n return new Observable<IntersectionObserverEntry>((subscriber) => {\n const observer = new IntersectionObserver((entries) => {\n for (const entry of entries) {\n if (entry.isIntersecting) {\n subscriber.next(entry);\n }\n }\n });\n observer.observe(el);\n return {\n unsubscribe() {\n observer.disconnect();\n },\n };\n });\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n OnInit,\n booleanAttribute,\n input,\n output,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { filter } from 'rxjs/operators';\n\nimport { createIntersectionObserver } from '../utils/create-intersection-observer';\n\n@Directive({\n selector: '[vInfinityScroll]',\n standalone: true,\n})\nexport class InfinityScrollDirective implements OnInit {\n vInfinityScroll = input(false, { transform: booleanAttribute });\n vInfinityScrollMore = output();\n\n constructor(\n private elementRef: ElementRef,\n private dr: DestroyRef,\n ) {}\n\n ngOnInit() {\n createIntersectionObserver(this.elementRef.nativeElement)\n .pipe(\n filter(() => this.vInfinityScroll()),\n takeUntilDestroyed(this.dr),\n )\n .subscribe(() => {\n this.vInfinityScrollMore.emit();\n });\n }\n}\n","import { Directive, OnDestroy, OnInit, inject, input, viewChild } from '@angular/core';\nimport {\n MatCellDef,\n MatColumnDef,\n MatFooterCellDef,\n MatHeaderCellDef,\n MatTable,\n} from '@angular/material/table';\n\n@Directive()\nexport class BaseColumnComponent implements OnDestroy, OnInit {\n name = input.required<string>();\n table = inject(MatTable);\n\n columnDef = viewChild(MatColumnDef);\n cellDef = viewChild(MatCellDef);\n headerCellDef = viewChild(MatHeaderCellDef);\n footerCellDef = viewChild(MatFooterCellDef);\n\n addedColumnDef?: MatColumnDef;\n\n ngOnInit() {\n const columnDef = this.columnDef();\n if (columnDef) {\n columnDef.name = this.name();\n columnDef.cell = this.cellDef() as never;\n columnDef.headerCell = this.headerCellDef() as never;\n columnDef.footerCell = this.footerCellDef() as never;\n this.removeColumnDef();\n this.table.addColumnDef(columnDef);\n this.addedColumnDef = columnDef;\n }\n }\n\n ngOnDestroy() {\n this.removeColumnDef();\n }\n\n private removeColumnDef() {\n if (this.table && this.addedColumnDef) {\n this.table.removeColumnDef(this.addedColumnDef);\n }\n }\n}\n","import { SelectionModel } from '@angular/cdk/collections';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n OnChanges,\n OnDestroy,\n OnInit,\n input,\n model,\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatTableModule } from '@angular/material/table';\nimport { combineLatest } from 'rxjs';\nimport { map, shareReplay, startWith } from 'rxjs/operators';\n\nimport { ArrayAttributeTransform, ComponentChanges, arrayAttribute } from '../../../utils';\n\nimport { BaseColumnComponent } from './base-column.component';\n\n@Component({\n selector: 'v-select-column',\n template: `\n <ng-container [matColumnDef]=\"name()\" [sticky]=\"true\">\n @let columnClasses = 'column';\n <th *matHeaderCellDef [class]=\"columnClasses\" mat-header-cell>\n <mat-checkbox\n [checked]=\"selection.hasValue() && (isAllSelected$ | async)\"\n [disabled]=\"!!progress() || !data()?.length\"\n [indeterminate]=\"selection.hasValue() && !(isAllSelected$ | async)\"\n (change)=\"$event ? toggleAllRows() : null\"\n >\n </mat-checkbox>\n </th>\n <td *matCellDef=\"let row\" [class]=\"columnClasses\" mat-cell>\n <mat-checkbox\n [checked]=\"selection.isSelected(row)\"\n [disabled]=\"!!progress()\"\n (change)=\"$event ? selection.toggle(row) : null\"\n (click)=\"$event.stopPropagation()\"\n >\n </mat-checkbox>\n </td>\n <td *matFooterCellDef [class]=\"columnClasses\" mat-footer-cell>\n <mat-checkbox disabled></mat-checkbox>\n </td>\n </ng-container>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, MatTableModule, MatCheckboxModule],\n styles: `\n .column {\n padding-left: 4px;\n padding-right: 4px;\n width: 48px;\n border-right: 1px solid;\n text-overflow: clip;\n }\n `,\n})\nexport class SelectColumnComponent<T>\n extends BaseColumnComponent\n implements OnInit, OnDestroy, OnChanges\n{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n selected = model<any[]>([]);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data = input<T[], ArrayAttributeTransform<any>>([], { transform: arrayAttribute });\n progress = input<boolean | number | null | undefined>(false);\n\n selection = new SelectionModel<T>(true, []);\n isAllSelected$ = combineLatest([\n this.selection.changed.pipe(startWith(null)),\n toObservable(this.data),\n ]).pipe(\n map(() => this.getIsAllSelected()),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n constructor(private dr: DestroyRef) {\n super();\n }\n\n override ngOnInit() {\n super.ngOnInit();\n this.selection.changed.pipe(takeUntilDestroyed(this.dr)).subscribe(() => {\n this.selected.set(this.selection.selected);\n });\n }\n\n ngOnChanges(changes: ComponentChanges<SelectColumnComponent<T>>) {\n if (changes.data || changes.selected) {\n this.updateSelection();\n }\n }\n\n toggleAllRows() {\n if (this.getIsAllSelected()) {\n this.selection.clear(true);\n return;\n }\n this.selection.select(...this.data());\n }\n\n private getIsAllSelected() {\n const numSelected = this.selection.selected.length;\n const numRows = this.data().length;\n return numSelected === numRows;\n }\n\n private updateSelection() {\n const newSelected = (this.selected() || []).filter((d) => !!this.data()?.includes?.(d));\n this.selection.deselect(...this.selection.selected.filter((s) => !newSelected.includes(s)));\n this.selection.select(...newSelected);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, output } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTableModule } from '@angular/material/table';\n\nimport { BaseColumnComponent } from './base-column.component';\n\n@Component({\n selector: 'v-dnd-column',\n template: `\n <ng-container [matColumnDef]=\"name()\" [sticky]=\"true\">\n @let columnClasses = 'column';\n <th *matHeaderCellDef [class]=\"columnClasses\" mat-header-cell></th>\n <td *matCellDef=\"let row\" [class]=\"columnClasses\" mat-cell>\n <div class=\"position\">\n <mat-icon class=\"dragCursor\" (mousedown)=\"dragged.emit()\">reorder</mat-icon>\n <!-- <span>{{ index + 1 }}</span>-->\n </div>\n </td>\n <td *matFooterCellDef [class]=\"columnClasses\" mat-footer-cell>\n <div class=\"position\">\n <mat-icon class=\"dragCursor\">reorder</mat-icon>\n </div>\n </td>\n </ng-container>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, MatTableModule, MatIconModule],\n styles: `\n .column {\n .position {\n display: flex;\n align-items: center;\n gap: 8px;\n\n .dragCursor {\n cursor: move;\n }\n }\n }\n `,\n})\nexport class DndColumnComponent extends BaseColumnComponent {\n dragged = output();\n}\n","import {\n Component,\n DestroyRef,\n OnInit,\n booleanAttribute,\n computed,\n input,\n numberAttribute,\n output,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormControl } from '@angular/forms';\n\nimport { NormColumn } from '../../types';\n\n@Component({\n selector: 'v-table-info-bar',\n templateUrl: 'table-info-bar.component.html',\n styleUrl: 'table-info-bar.component.scss',\n standalone: false,\n})\nexport class TableInfoBarComponent<T extends object, C extends object> implements OnInit {\n progress = input(false, { transform: booleanAttribute });\n hasMore = input(false, { transform: booleanAttribute });\n hasLoad = input(false, { transform: booleanAttribute });\n isPreload = input(false, { transform: booleanAttribute });\n noDownload = input(false, { transform: booleanAttribute });\n noToolbar = input(false, { transform: booleanAttribute });\n dataProgress = input(false, { transform: booleanAttribute });\n columns = input<NormColumn<T, C>[]>([]);\n\n size = input(0, { transform: numberAttribute });\n preloadSize = input(0, { transform: numberAttribute });\n\n count = input<number | undefined | null>(undefined);\n filteredCount = input<number | undefined | null>(0);\n selectedCount = input<number | undefined | null>(0);\n\n filter = input<string>('');\n standaloneFilter = input(false, { transform: booleanAttribute });\n hasInputs = input(false, { transform: booleanAttribute });\n filterChange = output<string>();\n filterControl = new FormControl('', { nonNullable: true });\n\n downloadCsv = output();\n // eslint-disable-next-line @angular-eslint/no-output-native\n load = output();\n preload = output();\n\n countText = computed(() =>\n this.count()\n ? (this.filter() && this.filteredCount() !== this.count()\n ? this.filteredCount() + '/'\n : '') +\n (this.hasMore() ? '>' : '') +\n this.count()\n : this.progress() || this.count() !== 0\n ? '...'\n : '0',\n );\n\n constructor(private dr: DestroyRef) {}\n\n ngOnInit() {\n this.filterControl.valueChanges.pipe(takeUntilDestroyed(this.dr)).subscribe((v) => {\n this.filterChange.emit(v);\n });\n }\n\n // tune() {\n // this.dialogService.open(CustomizeComponent, { columns: this.columns() });\n // }\n}\n","<div class=\"wrapper\">\n @if (standaloneFilter()) {\n <div class=\"header-wrapper\">\n @if (hasInputs()) {\n <ng-content select=\"v-table-inputs\"></ng-content>\n }\n <v-input-field\n [formControl]=\"filterControl\"\n class=\"filter__standalone filter\"\n cleanButton\n label=\"Search\"\n ></v-input-field>\n </div>\n }\n <v-actions>\n <v-actions>\n @if (!noToolbar()) {\n @if (!standaloneFilter()) {\n <div>\n <v-input-field\n [formControl]=\"filterControl\"\n appearance=\"outline\"\n class=\"filter filter__extended\"\n cleanButton\n icon=\"manage_search\"\n label=\"Search\"\n size=\"small\"\n ></v-input-field>\n </div>\n }\n <div class=\"details\">\n @if (hasLoad() || hasMore()) {\n <button\n [disabled]=\"progress() || !hasMore()\"\n mat-icon-button\n matTooltip=\"Preload {{ preloadSize() }}{{\n isPreload() && hasMore() ? ' more' : ''\n }} elements\"\n (click)=\"preload.emit()\"\n >\n <mat-icon>\n {{\n hasMore()\n ? isPreload()\n ? 'downloading'\n : 'download'\n : 'download_done'\n }}\n </mat-icon>\n </button>\n }\n @if (!noDownload()) {\n <button\n [disabled]=\"progress() || !count()\"\n mat-icon-button\n matTooltip=\"Download CSV\"\n (click)=\"downloadCsv.emit()\"\n >\n <mat-icon>file_save</mat-icon>\n </button>\n }\n <!-- <button mat-icon-button matTooltip=\"Customize table\" (click)=\"tune()\">\n <mat-icon>tune</mat-icon>\n </button> -->\n </div>\n }\n <div\n [matBadge]=\"selectedCount() || ''\"\n [matBadgeDisabled]=\"progress() || dataProgress()\"\n [matTooltip]=\"\n dataProgress()\n ? 'Preparing data for sorting, filtering and downloading...'\n : progress()\n ? 'Loading...'\n : hasLoad()\n ? 'Reload ' + size() + ' elements'\n : ''\n \"\n class=\"count\"\n (click)=\"hasLoad() ? load.emit() : undefined\"\n >\n <v-tag\n [icon]=\"hasLoad() ? 'refresh' : undefined\"\n [progress]=\"progress() || dataProgress()\"\n >\n {{ countText() }}\n </v-tag>\n </div>\n </v-actions>\n <v-actions>\n <ng-content></ng-content>\n </v-actions>\n </v-actions>\n</div>\n","import { CdkDragDrop } from '@angular/cdk/drag-drop';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n DestroyRef,\n ElementRef,\n Injector,\n OnInit,\n ViewChild,\n booleanAttribute,\n computed,\n input,\n model,\n numberAttribute,\n output,\n runInInjectionContext,\n signal,\n} from '@angular/core';\nimport { outputFromObservable, takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { MatSort, Sort } from '@angular/material/sort';\nimport { MatRow, MatTable } from '@angular/material/table';\nimport {\n BehaviorSubject,\n Observable,\n Subject,\n combineLatest,\n debounceTime,\n defer,\n first,\n forkJoin,\n merge,\n switchMap,\n take,\n tap,\n} from 'rxjs';\nimport {\n delay,\n distinctUntilChanged,\n filter,\n map,\n share,\n shareReplay,\n startWith,\n} from 'rxjs/operators';\n\nimport { ArrayAttributeTransform, arrayAttribute, createCsv, downloadFile } from '../../utils';\n\nimport { TableInputsComponent } from './components/table-inputs.component';\nimport {\n COLUMN_DEFS,\n DEBOUNCE_TIME_MS,\n DEFAULT_LOADED_LAZY_ROWS_COUNT,\n DEFAULT_SORT,\n} from './consts';\nimport { TreeData } from './tree-data';\nimport { Column, DragDrop, NormColumn, UpdateOptions } from './types';\nimport { columnsDataToFilterSearchData, filterData, sortData } from './utils/filter-sort';\nimport { TableDataSource } from './utils/table-data-source';\nimport { tableToCsvObject } from './utils/table-to-csv-object';\nimport {\n DisplayedData,\n DisplayedDataItem,\n toColumnsData,\n toObservableColumnsData,\n} from './utils/to-columns-data';\n\n@Component({\n selector: 'v-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TableComponent<T extends object, C extends object> implements OnInit {\n data = input<T[], ArrayAttributeTransform<T>>([], { transform: arrayAttribute });\n treeData = input<TreeData<T, C>>();\n columns = input<Column<T, C>[], ArrayAttributeTransform<Column<T, C>>>([], {\n transform: arrayAttribute,\n });\n progress = input(false, { transform: Boolean });\n hasMore = input(false, { transform: booleanAttribute });\n size = input(25, { transform: numberAttribute });\n maxSize = input(1000, { transform: numberAttribute });\n noDownload = input(false, { transform: booleanAttribute });\n noToolbar = input(false, { transform: booleanAttribute });\n\n // Filter\n filter = model('');\n filter$ = toObservable(this.filter).pipe(\n map((v) => (v || '').trim()),\n distinctUntilChanged(),\n debounceTime(DEBOUNCE_TIME_MS),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n standaloneFilter = input(false, { transform: booleanAttribute });\n externalFilter = input(false, { transform: booleanAttribute });\n filteredSortData$ = new BehaviorSubject<DisplayedData<T, C> | null>(null);\n displayedData$ = combineLatest([\n defer(() => this.dataSource.data$),\n this.filteredSortData$.pipe(distinctUntilChanged()),\n defer(() => this.columnsDataProgress$),\n ]).pipe(\n map(\n ([data, filteredSortData, columnsDataProgress]) =>\n (filteredSortData && !columnsDataProgress ? filteredSortData : data) || [],\n ),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n displayedCount$ = this.displayedData$.pipe(\n map((data) => data.length),\n distinctUntilChanged(),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n // Select\n rowSelectable = input(false, { transform: booleanAttribute });\n rowSelected = model<DisplayedData<T, C>>([]);\n\n // Sort\n sort = model<Sort>(DEFAULT_SORT);\n @ViewChild(MatSort) sortComponent!: MatSort;\n\n // Drag & drop\n rowDragDrop = input(false, {\n transform: (v: boolean | string[]) => {\n if (Array.isArray(v)) {\n return v;\n }\n return booleanAttribute(v);\n },\n });\n rowDropped = output<DragDrop<DisplayedDataItem<T, C>>>();\n dragDisabled = true;\n\n update$ = new Subject<UpdateOptions>();\n update = outputFromObservable(this.update$);\n more = output<UpdateOptions>();\n\n loadedLazyItems = new WeakMap<DisplayedDataItem<T, C>, boolean>();\n\n dataSource = new TableDataSource<T, C>();\n normColumns = computed<NormColumn<T, C>[]>(() => this.columns().map((c) => new NormColumn(c)));\n displayedNormColumns$ = toObservable(this.normColumns).pipe(\n switchMap((cols) =>\n combineLatest(cols.map((c) => c.hidden)).pipe(\n map((c) => cols.filter((_, idx) => !c[idx])),\n ),\n ),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n columnsData$$ = combineLatest({\n isTree: this.dataSource.isTreeData$,\n data: this.dataSource.data$,\n cols: toObservable(this.normColumns),\n }).pipe(toObservableColumnsData, shareReplay({ refCount: true, bufferSize: 1 }));\n columnsDataProgress$ = new BehaviorSubject(false);\n columnsData$ = this.columnsData$$.pipe(\n tap(() => {\n this.columnsDataProgress$.next(true);\n }),\n toColumnsData,\n tap(() => {\n this.columnsDataProgress$.next(false);\n }),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n isPreload = signal(false);\n loadSize = computed(() => (this.isPreload() ? this.maxSize() : this.size()));\n hasAutoShowMore$ = combineLatest([\n toObservable(this.hasMore),\n this.dataSource.data$.pipe(map((d) => d?.length)),\n this.displayedCount$,\n this.dataSource.paginator.page.pipe(\n startWith(null),\n map(() => this.dataSource.paginator.pageSize),\n ),\n ]).pipe(\n map(\n ([hasMore, dataCount, displayedDataCount, size]) =>\n (hasMore && displayedDataCount !== 0 && displayedDataCount >= dataCount) ||\n displayedDataCount > size,\n ),\n distinctUntilChanged(),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n displayedColumns$ = combineLatest([\n this.displayedNormColumns$,\n toObservable(this.rowSelectable),\n toObservable(this.sort),\n toObservable(this.rowDragDrop),\n ]).pipe(\n map(([normColumns, rowSelectable, sort, rowDragDrop]) => [\n ...((\n Array.isArray(rowDragDrop)\n ? sort?.direction && rowDragDrop.includes(sort?.active)\n : rowDragDrop\n )\n ? [this.columnDefs.drag]\n : []),\n ...(rowSelectable ? [this.columnDefs.select] : []),\n ...normColumns.map((c) => c.field),\n ]),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n columnDefs = COLUMN_DEFS;\n\n @ViewChild('scrollViewport', { read: ElementRef }) scrollViewport!: ElementRef;\n @ViewChild('matTable', { static: false }) table!: MatTable<T>;\n @ContentChild(TableInputsComponent, { read: ElementRef }) tableInputsContent!: ElementRef;\n @ViewChild(MatRow, { static: false }) tableRow!: ElementRef;\n\n constructor(\n private dr: DestroyRef,\n private injector: Injector,\n private cdr: ChangeDetectorRef,\n ) {}\n\n ngOnInit() {\n const sort$ = toObservable(this.sort, { injector: this.injector }).pipe(\n distinctUntilChanged(),\n share(),\n );\n\n toObservable(this.data, { injector: this.injector })\n .pipe(filter(Boolean), takeUntilDestroyed(this.dr))\n .subscribe((data) => {\n this.dataSource.setData(data);\n });\n toObservable(this.treeData, { injector: this.injector })\n .pipe(filter(Boolean), takeUntilDestroyed(this.dr))\n .subscribe((data) => {\n this.dataSource.setTreeData(data);\n });\n combineLatest([\n this.filter$,\n sort$,\n this.dataSource.data$,\n runInInjectionContext(this.injector, () =>\n this.columnsData$.pipe(columnsDataToFilterSearchData),\n ),\n this.dataSource.isTreeData$,\n toObservable(this.normColumns, { injector: this.injector }),\n toObservable(this.externalFilter, { injector: this.injector }),\n ])\n .pipe(\n map(([search, sort, source, data, isTreeData, columns, isExternalFilter]) => {\n if (isTreeData) {\n return source;\n }\n const filteredData: DisplayedData<T, C> =\n !isExternalFilter && search ? filterData(data, search) : source;\n return sortData(filteredData, data, columns, sort);\n }),\n takeUntilDestroyed(this.dr),\n )\n .subscribe((filtered) => {\n this.updateSortFilter(filtered);\n this.updateLoadedLazyItems(filtered);\n this.cdr.markForCheck();\n });\n merge(\n this.filter$.pipe(filter(Boolean)),\n toObservable(this.hasMore, { injector: this.injector }).pipe(filter(Boolean)),\n )\n .pipe(takeUntilDestroyed(this.dr))\n .subscribe(() => {\n this.sort.set(DEFAULT_SORT);\n });\n merge(this.filter$, sort$)\n .pipe(takeUntilDestroyed(this.dr))\n .subscribe(() => {\n this.reset();\n });\n // TODO: 2, 3 column is torn away from the previous one, fixed by calling update\n this.dataSource.data$\n .pipe(\n filter((v) => !!v?.length),\n first(),\n delay(100),\n takeUntilDestroyed(this.dr),\n )\n .subscribe(() => {\n this.table.updateStickyColumnStyles();\n });\n }\n\n load() {\n if (this.isPreload()) {\n this.isPreload.set(false);\n }\n this.reload();\n }\n\n preload() {\n if (!this.isPreload()) {\n this.isPreload.set(true);\n this.reload();\n } else if (this.hasMore()) {\n this.more.emit({ size: this.loadSize() });\n }\n }\n\n showMore() {\n this.dataSource.paginator.more();\n if (this.hasMore() && this.dataSource.paginator.pageSize > this.dataSource.data.length) {\n this.more.emit({ size: this.loadSize() });\n }\n this.refreshTable();\n }\n\n downloadCsv() {\n this.generateCsvData()\n .pipe(takeUntilDestroyed(this.dr))\n .subscribe((csvData) => {\n downloadFile(csvData, 'csv');\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n drop(event: CdkDragDrop<any>) {\n this.dragDisabled = true;\n this.filteredSortData$.pipe(filter(Boolean), first()).subscribe((data) => {\n const item = event.item.data;\n const { previousIndex, currentIndex } = event;\n const previousData = data;\n const currentData = previousData.slice();\n let currentDataIndex = 0;\n if (previousIndex > currentIndex) {\n currentData.splice(previousIndex, 1);\n currentData.splice(currentIndex, 0, event.item.data);\n currentDataIndex = currentIndex;\n } else {\n currentData.splice(currentIndex, 0, event.item.data);\n currentData.splice(previousIndex, 1);\n currentDataIndex = currentIndex - 1;\n }\n this.rowDropped.emit({\n previousIndex,\n currentIndex,\n item,\n previousData,\n currentData,\n currentDataIndex,\n sort: this?.sortComponent,\n });\n });\n }\n\n private generateCsvData(): Observable<string> {\n return combineLatest([\n this.displayedNormColumns$.pipe(\n switchMap((cols) => forkJoin(cols.map((c) => c.header.pipe(take(1))))),\n ),\n this.columnsData$.pipe(take(1)),\n ]).pipe(\n map(([cols, data]) =>\n createCsv(runInInjectionContext(this.injector, () => tableToCsvObject(cols, data))),\n ),\n );\n }\n\n private reload() {\n this.update$.next({ size: this.loadSize() });\n this.reset();\n }\n\n private updateSortFilter(filtered: DisplayedData<T, C>) {\n this.filteredSortData$.next(filtered);\n this.dataSource.sortData = () => filtered;\n this.dataSource.sort = this.sortComponent;\n }\n\n private reset() {\n (this.scrollViewport?.nativeElement as HTMLElement)?.scrollTo?.({ top: 0 });\n this.dataSource.paginator.reload();\n this.refreshTable();\n }\n\n // TODO: Refresh table when pagination is updated\n private refreshTable() {\n // eslint-disable-next-line no-self-assign\n this.dataSource.data = this.dataSource.data;\n }\n\n private updateLoadedLazyItems(items: DisplayedData<T, C>) {\n const lazyLoadedItems = items.slice(0, DEFAULT_LOADED_LAZY_ROWS_COUNT);\n for (const item of lazyLoadedItems) {\n this.loadedLazyItems.set(item, true);\n }\n }\n}\n","@let columnsData = columnsData$$ | async;\n\n<div class=\"wrapper\">\n <v-table-info-bar\n [(filter)]=\"filter\"\n [columns]=\"normColumns()\"\n [count]=\"(dataSource.data$ | async)?.length\"\n [dataProgress]=\"!!(columnsDataProgress$ | async) && !hasMore()\"\n [filteredCount]=\"displayedCount$ | async\"\n [hasInputs]=\"!!tableInputsContent?.nativeElement\"\n [hasLoad]=\"update$.observed\"\n [hasMore]=\"hasMore()\"\n [isPreload]=\"isPreload()\"\n [noDownload]=\"noDownload()\"\n [noToolbar]=\"noToolbar()\"\n [preloadSize]=\"maxSize()\"\n [progress]=\"progress()\"\n [selectedCount]=\"rowSelected()?.length\"\n [size]=\"size()\"\n [standaloneFilter]=\"standaloneFilter()\"\n (downloadCsv)=\"downloadCsv()\"\n (load)=\"load()\"\n (preload)=\"preload()\"\n >\n <ng-content select=\"v-table-actions\"></ng-content>\n <v-table-inputs><ng-content select=\"v-table-inputs\"></ng-content></v-table-inputs>\n </v-table-info-bar>\n <mat-card #scrollViewport class=\"card\">\n <v-no-records\n [noRecords]=\"!(displayedCount$ | async)\"\n [progress]=\"progress()\"\n ></v-no-records>\n <table\n #matTable\n [cdkDropListDisabled]=\"dragDisabled\"\n [dataSource]=\"dataSource\"\n [matSortActive]=\"(columnsDataProgress$ | async) || progress() ? '' : sort().active\"\n [matSortDirection]=\"sort().direction\"\n cdkDropList\n cdkDropListData=\"dataSource\"\n mat-table\n matSort\n (cdkDropListDropped)=\"drop($event)\"\n (matSortChange)=\"sort.set($event)\"\n >\n @let displayedColumns = (displayedColumns$ | async) || [];\n\n @if (displayedColumns.includes(columnDefs.drag)) {\n <v-dnd-column\n [name]=\"columnDefs.drag\"\n (dragged)=\"dragDisabled = false\"\n ></v-dnd-column>\n }\n @if (displayedColumns.includes(columnDefs.select)) {\n <v-select-column\n [(selected)]=\"rowSelected\"\n [data]=\"displayedData$ | async\"\n [name]=\"columnDefs.select\"\n [progress]=\"progress()\"\n ></v-select-column>\n }\n @for (col of displayedNormColumns$ | async; track col; let colIndex = $index) {\n @let stickyStart = col.params.sticky === 'start';\n @let stickyEnd = col.params.sticky === 'end';\n @let columnClasses =\n {\n column: true,\n 'column__sticky-start': stickyStart,\n 'column__sticky-end': stickyEnd,\n };\n <ng-container\n [matColumnDef]=\"col.field\"\n [sticky]=\"stickyStart\"\n [stickyEnd]=\"stickyEnd\"\n >\n <th\n *matHeaderCellDef\n [disabled]=\"(col.sort | async) === false || hasMore() || progress()\"\n [mat-sort-header]=\"col.field\"\n [ngClass]=\"columnClasses\"\n mat-header-cell\n >\n <v-value [value]=\"col?.header | async\" emptySymbol=\"\" inline></v-value>\n </th>\n\n <ng-template let-element let-rowIndex=\"index\" matCellDef>\n @let cell = columnsData?.get?.(element)?.get(col);\n <td\n [ngClass]=\"columnClasses\"\n [ngStyle]=\"col?.params?.style\"\n [style.border-bottom]=\"cell?.isNextChild && !col.child ? 'none' : ''\"\n mat-cell\n >\n <v-value\n [emptySymbol]=\"!(cell?.isChild && !col?.child)\"\n [highlight]=\"filter$ | async\"\n [lazyValue]=\"cell?.lazyValue\"\n [lazyVisible]=\"loadedLazyItems.has(element)\"\n [value]=\"cell?.value | async\"\n inline\n (lazyVisibleChange)=\"loadedLazyItems.set(element, true)\"\n ></v-value>\n </td>\n </ng-template>\n <td *matFooterCellDef [ngClass]=\"columnClasses\" mat-footer-cell>\n <v-content-loading></v-content-loading>\n </td>\n </ng-container>\n }\n\n <tr *matHeaderRowDef=\"displayedColumns$ | async; sticky: true\" mat-header-row></tr>\n <tr\n *matRowDef=\"let row; columns: displayedColumns$ | async\"\n [cdkDragData]=\"row\"\n cdkDrag\n mat-row\n ></tr>\n <tr\n *matFooterRowDef=\"displayedColumns$ | async\"\n [ngClass]=\"{ row__hidden: !(hasAutoShowMore$ | async) || !tableRow }\"\n [vInfinityScroll]=\"!progress()\"\n mat-footer-row\n (vInfinityScrollMore)=\"showMore()\"\n ></tr>\n </table>\n </mat-card>\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { DialogSuperclass } from '../../../dialog';\nimport { Column, NormColumn } from '../../types';\n\ninterface CustomizedColumn {\n priority: number;\n name: string;\n hidden: boolean;\n}\n\n@Component({\n selector: 'v-customize',\n templateUrl: './customize.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class CustomizeComponent extends DialogSuperclass<\n CustomizeComponent,\n { columns: NormColumn<object>[] }\n> {\n columns: Column<CustomizedColumn>[] = [\n { field: 'priority', header: 'Number' },\n { field: 'name' },\n { field: 'hidden' },\n ];\n\n data: CustomizedColumn[] = this.dialogData.columns.map((c, idx) => ({\n priority: idx + 1,\n name: c.field,\n hidden: false,\n }));\n}\n","<v-dialog title=\"Customize table\">\n <v-table [columns]=\"columns\" [data]=\"data\" [rowDragDrop]=\"['priority']\" noToolbar></v-table>\n <v-dialog-actions>\n <button mat-button>Save</button>\n </v-dialog-actions>\n</v-dialog>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'v-table-actions',\n template: `\n <v-actions>\n <ng-content></ng-content>\n </v-actions>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TableActionsComponent {}\n","import { Component, booleanAttribute, input } from '@angular/core';\nimport { MatProgressBar } from '@angular/material/progress-bar';\n\n@Component({\n selector: 'v-table-progress-bar',\n imports: [MatProgressBar],\n template: `\n @if (progress()) {\n <mat-progress-bar class=\"progress-bar\" mode=\"indeterminate\"></mat-progress-bar>\n }\n `,\n styles: `\n .progress-bar {\n position: absolute;\n z-index: 999;\n }\n `,\n})\nexport class TableProgressBarComponent {\n progress = input(false, { transform: booleanAttribute });\n}\n","import { CdkDrag, CdkDropList } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatBadgeModule } from '@angular/material/badge';\nimport { MatButton, MatButtonModule, MatIconButton } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTooltip } from '@angular/material/tooltip';\n\nimport { ActionsModule } from '../actions';\nimport { ContentLoadingComponent } from '../content-loading';\nimport { DialogModule } from '../dialog/dialog.module';\nimport { InputFieldModule } from '../input-field';\nimport { ProgressModule } from '../progress';\nimport { TagModule } from '../tag';\nimport { ValueComponent, ValueListComponent } from '../value';\n\nimport { CustomizeComponent } from './components/customize/customize.component';\nimport { DndColumnComponent } from './components/dnd-column.component';\nimport { InfinityScrollDirective } from './components/infinity-scroll.directive';\nimport { NoRecordsComponent } from './components/no-records.component';\nimport { SelectColumnComponent } from './components/select-column.component';\nimport { TableActionsComponent } from './components/table-actions.component';\nimport { TableInfoBarComponent } from './components/table-info-bar/table-info-bar.component';\nimport { TableInputsComponent } from './components/table-inputs.component';\nimport { TableProgressBarComponent } from './components/table-progress-bar.component';\nimport { TableComponent } from './table.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatTableModule,\n MatCardModule,\n ValueComponent,\n TableProgressBarComponent,\n NoRecordsComponent,\n ContentLoadingComponent,\n MatIcon,\n MatTooltip,\n MatIconButton,\n InfinityScrollDirective,\n ValueListComponent,\n SelectColumnComponent,\n ProgressModule,\n MatSortModule,\n MatButton,\n CdkDrag,\n CdkDropList,\n DialogModule,\n MatButtonModule,\n InputFieldModule,\n ActionsModule,\n MatBadgeModule,\n ReactiveFormsModule,\n TagModule,\n DndColumnComponent,\n ],\n declarations: [\n CustomizeComponent,\n TableComponent,\n TableInfoBarComponent,\n TableInputsComponent,\n TableActionsComponent,\n ],\n exports: [TableComponent, TableInputsComponent, TableActionsComponent],\n})\nexport class TableModule {}\n","export function correctPriorities(\n priorities: number[],\n opts: {\n step: number;\n maxStep: number;\n start: number;\n } = {\n step: 1000,\n maxStep: 1000,\n start: 0,\n },\n): number[] {\n if (!priorities.length) {\n return [];\n }\n const res: number[] = [opts.start];\n for (let i = 1; i < priorities.length; ++i) {\n const last = res.at(-1) ?? opts.start;\n if (priorities[i] === priorities[i - 1]) {\n res.push(last);\n } else if (priorities[i] <= last || priorities[i] > last + opts.maxStep) {\n res.push(last + opts.step);\n } else {\n res.push(priorities[i]);\n }\n }\n return res;\n}\n","import { Injector, inject, runInInjectionContext } from '@angular/core';\nimport { combineLatest, switchMap } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { PossiblyAsync, getPossiblyAsyncObservable } from '../../../utils';\nimport { Value } from '../../value';\nimport { CellFnArgs, Column, normalizeCell } from '../types';\n\nimport { createUniqueColumnDef } from './create-unique-column-def';\n\nexport function createColumn<P, A extends object>(\n createCell: (cellParams: P, ...args: CellFnArgs<A>) => PossiblyAsync<Value>,\n columnObject: Partial<Column<A>> = {},\n) {\n return <T extends A>(\n getCellParams: (...args: CellFnArgs<T>) => PossiblyAsync<P>,\n { isLazyCell, ...column }: Partial<Column<T>> & { isLazyCell?: boolean } = {},\n ): Column<T> => {\n const injector = inject(Injector);\n const field = column?.field ?? createUniqueColumnDef(column?.header);\n const cellKey = isLazyCell ? 'lazyCell' : 'cell';\n return {\n field,\n ...columnObject,\n ...column,\n [cellKey]: (...cellArgs: CellFnArgs<T>) => {\n const cellValue$ = getPossiblyAsyncObservable(getCellParams(...cellArgs)).pipe(\n switchMap((cellParams) =>\n getPossiblyAsyncObservable(\n runInInjectionContext(injector, () =>\n createCell(cellParams, ...cellArgs),\n ),\n ),\n ),\n );\n if (column[cellKey]) {\n const columnCellValue$ = normalizeCell(\n field,\n column[cellKey],\n !!column?.child,\n )(...cellArgs);\n return combineLatest([cellValue$, columnCellValue$]).pipe(\n map(([a, b]) => Object.assign({}, a, b, { value: b?.value || a?.value })),\n );\n }\n return cellValue$;\n },\n };\n };\n}\n","import { MenuValue } from '../../value/components/menu-value.component';\n// TODO: hack\n// eslint-disable-next-line\nimport { Column } from '../types/column';\nimport { createColumn } from '../utils/create-column';\n\nexport const createMenuColumn = createColumn(\n (params: MenuValue['params']) => {\n return {\n type: 'menu',\n params,\n };\n },\n {\n field: 'menu',\n header: '',\n sticky: 'end',\n style: {\n padding: 0,\n width: '0',\n },\n },\n);\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\nimport { DialogSuperclass } from '../dialog';\n\n@Component({\n selector: 'v-action-dialog',\n templateUrl: 'confirm-dialog.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class ConfirmDialogComponent extends DialogSuperclass<\n ConfirmDialogComponent,\n { title?: string; confirmLabel?: string; hasReason?: boolean; description?: string } | void,\n { reason?: string }\n> {\n control = new FormControl<string>('', { nonNullable: true });\n\n confirm() {\n this.closeWithSuccess(\n this.dialogData && this.dialogData?.hasReason\n ? { reason: this.control.value }\n : undefined,\n );\n }\n}\n","<v-dialog\n [noContent]=\"!(dialogData && (dialogData.hasReason || dialogData.description))\"\n [title]=\"dialogData?.['title'] ?? 'Confirm this action?'\"\n noCloseButton\n>\n @if (dialogData && dialogData.description) {\n <div class=\"mat-body-large\">\n {{ dialogData.description }}\n </div>\n }\n @if (dialogData && dialogData.hasReason) {\n <mat-form-field style=\"width: 100%\">\n <mat-label>Reason</mat-label>\n <input [formControl]=\"control\" matInput />\n </mat-form-field>\n }\n <v-dialog-actions>\n <button mat-button (click)=\"closeWithCancellation()\">Cancel</button>\n <button mat-flat-button (click)=\"confirm()\">\n {{ dialogData?.['confirmLabel'] || 'Confirm' }}\n </button>\n </v-dialog-actions>\n</v-dialog>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { DialogModule } from '../dialog';\n\nimport { ConfirmDialogComponent } from './confirm-dialog.component';\n\n@NgModule({\n imports: [\n MatDialogModule,\n MatButtonModule,\n DialogModule,\n MatFormFieldModule,\n CommonModule,\n MatInputModule,\n ReactiveFormsModule,\n ],\n declarations: [ConfirmDialogComponent],\n exports: [ConfirmDialogComponent],\n})\nexport class ConfirmDialogModule {}\n","import { Component } from '@angular/core';\n\nimport { DialogSuperclass } from '../../../dialog';\nimport { FiltersComponent } from '../../filters.component';\n\n@Component({\n selector: 'v-filters-dialog',\n templateUrl: './filters-dialog.component.html',\n styleUrls: ['./filters-dialog.component.scss'],\n standalone: false,\n})\nexport class FiltersDialogComponent extends DialogSuperclass<\n FiltersDialogComponent,\n { filters: FiltersComponent }\n> {\n get isShowMainFilters() {\n return (\n !this.dialogData.filters.otherFiltersDirective?.templateRef ||\n this.dialogData.filters.merge\n );\n }\n}\n","<v-dialog noActions title=\"Filters\">\n <div\n [ngClass]=\"[\n 'v-filters-dialog-cols-' +\n (isShowMainFilters ? (dialogData.filters.repeat$ | async) : 1),\n 'filters',\n ]\"\n >\n @if (isShowMainFilters) {\n <ng-container *ngTemplateOutlet=\"dialogData.filters.mainFiltersTemplate\"></ng-container>\n }\n @if (dialogData.filters.otherFiltersTemplate) {\n <div class=\"other-filters\">\n <ng-container\n *ngTemplateOutlet=\"dialogData.filters.otherFiltersTemplate\"\n ></ng-container>\n </div>\n }\n </div>\n</v-dialog>\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[vMainFilters]',\n standalone: false,\n})\nexport class MainFiltersDirective {\n constructor(public templateRef: TemplateRef<unknown>) {}\n}\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[vOtherFilters]',\n standalone: false,\n})\nexport class OtherFiltersDirective {\n constructor(public templateRef: TemplateRef<unknown>) {}\n}\n","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport {\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewChild,\n booleanAttribute,\n signal,\n} from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { BehaviorSubject, combineLatest } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { DialogService } from '../dialog';\n\nimport { FiltersDialogComponent } from './components/filters-dialog/filters-dialog.component';\nimport { MainFiltersDirective } from './components/main-filters/main-filters.directive';\nimport { OtherFiltersDirective } from './components/other-filters/other-filters.directive';\n\n@Component({\n selector: 'v-filters',\n templateUrl: './filters.component.html',\n styleUrls: ['./filters.component.scss'],\n standalone: false,\n})\nexport class FiltersComponent {\n @Input() active = 0;\n @Input({ transform: booleanAttribute }) merge = false;\n // TODO: to change from outside you need to change the logic and set $rows in two SCSS\n rows = signal(1);\n\n @Output() clear = new EventEmitter<void>();\n\n @ContentChild(TemplateRef, { static: true }) filtersTemplate!: TemplateRef<unknown>;\n @ContentChild(OtherFiltersDirective, { static: true })\n otherFiltersDirective!: OtherFiltersDirective;\n @ContentChild(MainFiltersDirective, { static: true })\n mainFiltersDirective!: MainFiltersDirective;\n\n @ViewChild('content') set content(content: ElementRef<HTMLElement>) {\n this.filtersCount$.next(content?.nativeElement?.children?.length ?? 0);\n }\n\n get mainFiltersTemplate() {\n return this.mainFiltersDirective?.templateRef ?? this.filtersTemplate;\n }\n\n get otherFiltersTemplate() {\n return this.otherFiltersDirective?.templateRef;\n }\n\n repeat$ = this.breakpointObserver.observe(Object.values(Breakpoints)).pipe(\n map((b) => {\n if (b.breakpoints[Breakpoints.XLarge]) {\n return 5;\n }\n if (b.breakpoints[Breakpoints.Large]) {\n return 4;\n }\n if (b.breakpoints[Breakpoints.Medium]) {\n return 3;\n }\n if (b.breakpoints[Breakpoints.Small]) {\n return 2;\n }\n return 1;\n }),\n );\n\n displayedFiltersCount$ = combineLatest([this.repeat$, toObservable(this.rows)]).pipe(\n map(([repeat, rows]) => repeat * rows),\n );\n filtersCount$ = new BehaviorSubject(0);\n\n constructor(\n private dialog: DialogService,\n private breakpointObserver: BreakpointObserver,\n ) {}\n\n open() {\n this.dialog.open(FiltersDialogComponent, { filters: this });\n }\n}\n","<mat-card>\n <mat-card-content #content [ngClass]=\"['v-filters-cols-' + (repeat$ | async), 'filters']\">\n <ng-container *ngTemplateOutlet=\"mainFiltersTemplate\"></ng-container>\n </mat-card-content>\n</mat-card>\n","import { Component, Input } from '@angular/core';\n\nimport { FiltersComponent } from '../../filters.component';\n\n@Component({\n selector: 'v-more-filters-button',\n templateUrl: './more-filters-button.component.html',\n styleUrls: ['./more-filters-button.component.scss'],\n standalone: false,\n})\nexport class MoreFiltersButtonComponent {\n @Input() filters!: FiltersComponent;\n}\n","<v-actions>\n @if (filters.active && filters.clear.observed) {\n <button mat-icon-button (click)=\"filters.clear.emit()\">\n <mat-icon [matBadge]=\"filters.active || undefined\" matBadgeColor=\"accent\"\n >restart_alt</mat-icon\n >\n </button>\n }\n @if (\n filters.otherFiltersDirective ||\n ((filters.filtersCount$ | async) ?? 0) - ((filters.displayedFiltersCount$ | async) ?? 0) > 0\n ) {\n <button mat-icon-button (click)=\"filters.open()\">\n <mat-icon>filter_alt</mat-icon>\n </button>\n }\n</v-actions>\n","import { LayoutModule } from '@angular/cdk/layout';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatBadgeModule } from '@angular/material/badge';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { ActionsModule } from '../actions';\nimport { DialogModule } from '../dialog';\n\nimport { FiltersDialogComponent } from './components/filters-dialog/filters-dialog.component';\nimport { MainFiltersDirective } from './components/main-filters/main-filters.directive';\nimport { MoreFiltersButtonComponent } from './components/more-filters-button/more-filters-button.component';\nimport { OtherFiltersDirective } from './components/other-filters/other-filters.directive';\nimport { FiltersComponent } from './filters.component';\n\n@NgModule({\n declarations: [\n FiltersComponent,\n MoreFiltersButtonComponent,\n FiltersDialogComponent,\n OtherFiltersDirective,\n MainFiltersDirective,\n ],\n exports: [\n FiltersComponent,\n MoreFiltersButtonComponent,\n OtherFiltersDirective,\n MainFiltersDirective,\n ],\n imports: [\n CommonModule,\n MatCardModule,\n MatButtonModule,\n MatIconModule,\n DialogModule,\n LayoutModule,\n ActionsModule,\n MatBadgeModule,\n ],\n})\nexport class FiltersModule {}\n","import { Component, Input, booleanAttribute } from '@angular/core';\nimport { NonNullableFormBuilder } from '@angular/forms';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { DateFnsAdapter, MAT_DATE_FNS_FORMATS } from '@angular/material-date-fns-adapter';\nimport { enGB } from 'date-fns/locale';\n\nimport { FormGroupSuperclass, createControlProviders } from '../../utils';\n\nimport { DateRange } from './types/date-range';\n\n@Component({\n selector: 'v-date-range-field',\n templateUrl: './date-range-field.component.html',\n styleUrls: ['./date-range-field.component.scss'],\n providers: [\n ...createControlProviders(() => DateRangeFieldComponent),\n { provide: MAT_DATE_LOCALE, useValue: enGB },\n { provide: DateAdapter, useClass: DateFnsAdapter, deps: [MAT_DATE_LOCALE] },\n { provide: MAT_DATE_FORMATS, useValue: MAT_DATE_FNS_FORMATS },\n ],\n standalone: false,\n})\nexport class DateRangeFieldComponent extends FormGroupSuperclass<Partial<DateRange>> {\n @Input({ transform: booleanAttribute }) required: boolean = false;\n\n control = this.fb.group<Partial<DateRange>>({\n start: undefined,\n end: undefined,\n });\n\n constructor(private fb: NonNullableFormBuilder) {\n super();\n }\n}\n","<mat-form-field>\n <mat-label>Date range</mat-label>\n <mat-date-range-input\n [formGroup]=\"control\"\n [rangePicker]=\"picker\"\n [required]=\"required || false\"\n >\n <input formControlName=\"start\" matStartDate placeholder=\"Start date\" />\n <input formControlName=\"end\" matEndDate placeholder=\"End date\" />\n </mat-date-range-input>\n <mat-datepicker-toggle [for]=\"picker\" matIconSuffix></mat-datepicker-toggle>\n <mat-date-range-picker #picker>\n <mat-date-range-picker-actions>\n <v-actions class=\"actions\">\n @if (!required) {\n <button\n [disabled]=\"!control.value?.start && !control.value?.end\"\n mat-button\n (click)=\"control.reset(); picker.close()\"\n >\n Reset\n </button>\n }\n <button mat-flat-button matDateRangePickerApply>Apply</button>\n </v-actions>\n </mat-date-range-picker-actions>\n </mat-date-range-picker>\n</mat-form-field>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { ActionsModule } from '../actions';\n\nimport { DateRangeFieldComponent } from './date-range-field.component';\n\n@NgModule({\n declarations: [DateRangeFieldComponent],\n imports: [\n CommonModule,\n MatDatepickerModule,\n MatInputModule,\n ReactiveFormsModule,\n MatButtonModule,\n ActionsModule,\n ],\n exports: [DateRangeFieldComponent],\n})\nexport class DateRangeFieldModule {}\n","import { isEqual } from 'date-fns';\n\nimport { DateRange } from '../types/date-range';\n\nexport function isEqualDateRange(a: DateRange, b: DateRange) {\n if (!a || !b) {\n return a === b;\n }\n return isEqual(a.start, b.start) && isEqual(a.end, b.end);\n}\n","import { endOfDay, startOfDay, subDays } from 'date-fns';\n\nimport { DateRange } from '../types/date-range';\n\nexport function createDateRangeToToday(minDays: number = 1): DateRange {\n return {\n /**\n * If we take the beginning of the previous day to the end of the current one,\n * then it is guaranteed that there will be an interval of one day,\n * as a maximum of two days\n */\n start: subDays(startOfDay(new Date()), minDays),\n end: endOfDay(new Date()),\n };\n}\n","import { Component, Input } from '@angular/core';\nimport { NonNullableFormBuilder } from '@angular/forms';\n\nimport { FormGroupSuperclass, createControlProviders } from '../../utils';\n\nexport type NumberRange = {\n start?: number;\n end?: number;\n};\n\n@Component({\n selector: 'v-number-range-field',\n templateUrl: './number-range-field.component.html',\n styleUrls: ['./number-range-field.component.scss'],\n providers: createControlProviders(() => NumberRangeFieldComponent),\n standalone: false,\n})\nexport class NumberRangeFieldComponent extends FormGroupSuperclass<NumberRange> {\n @Input() label!: string;\n\n control = this.fb.group<NumberRange>({\n start: undefined,\n end: undefined,\n });\n\n constructor(private fb: NonNullableFormBuilder) {\n super();\n }\n}\n","<div [formGroup]=\"control\" class=\"wrapper\">\n <mat-form-field>\n <mat-label>{{ label }} from</mat-label>\n <input formControlName=\"start\" matInput type=\"number\" />\n </mat-form-field>\n <mat-form-field>\n <mat-label>{{ label }} to</mat-label>\n <input formControlName=\"end\" matInput type=\"number\" />\n </mat-form-field>\n</div>\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { NumberRangeFieldComponent } from './number-range-field.component';\n\n@NgModule({\n declarations: [NumberRangeFieldComponent],\n imports: [ReactiveFormsModule, MatInputModule],\n exports: [NumberRangeFieldComponent],\n})\nexport class NumberRangeFieldModule {}\n","import { Component, Input } from '@angular/core';\nimport { map, shareReplay } from 'rxjs/operators';\n\nimport {\n FormControlSuperclass,\n createControlProviders,\n getValueChanges,\n splitBySeparators,\n} from '../../utils';\n\n@Component({\n selector: 'v-list-field',\n templateUrl: './list-field.component.html',\n providers: createControlProviders(() => ListFieldComponent),\n standalone: false,\n})\nexport class ListFieldComponent extends FormControlSuperclass<string[], string> {\n @Input() label?: string;\n @Input() focusedHint?: string;\n\n items$ = getValueChanges(this.control).pipe(\n map((v) => this.getValue(v)),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n protected override innerToOuterValue(inner: string): string[] {\n return this.getValue(inner);\n }\n\n protected override outerToInnerValue(outer: string[]): string {\n return (outer || []).join(', ');\n }\n\n private getValue(inner: string = this.control.value) {\n return splitBySeparators(inner || '');\n }\n}\n","<mat-form-field style=\"width: 100%\">\n <mat-label>{{ label }}</mat-label>\n <input #input=\"matInput\" [formControl]=\"control\" autocomplete=\"false\" matInput type=\"string\" />\n <mat-hint class=\"mat-secondary-text\">{{\n (items$ | async)?.length\n ? (items$ | async)?.length === 1\n ? '1 item'\n : (items$ | async)?.length + ' items'\n : input.focused\n ? focusedHint || 'item_1, item_2'\n : ''\n }}</mat-hint>\n</mat-form-field>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { ListFieldComponent } from './list-field.component';\n\n@NgModule({\n declarations: [ListFieldComponent],\n exports: [ListFieldComponent],\n imports: [CommonModule, MatInputModule, ReactiveFormsModule],\n})\nexport class ListFieldModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n templateUrl: 'error-page.component.html',\n styleUrls: ['error-page.component.scss'],\n standalone: false,\n})\nexport class ErrorPageComponent {}\n","<div class=\"error\">\n <div class=\"mat-display-small title\">\n <mat-icon>error</mat-icon>\n <div>Page not found</div>\n </div>\n <h2 class=\"mat-headline-small mat-secondary-text\">\n This page doesn't exist<br />or no permission to access this page\n </h2>\n</div>\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\n\nimport { ErrorPageComponent } from './error-page.component';\n\nconst ROUTES: Routes = [{ path: '', component: ErrorPageComponent }];\n\n@NgModule({\n imports: [RouterModule.forChild(ROUTES)],\n exports: [RouterModule],\n})\nexport class ErrorPageRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { ErrorPageRoutingModule } from './error-page-routing.module';\nimport { ErrorPageComponent } from './error-page.component';\n\n@NgModule({\n imports: [ErrorPageRoutingModule, MatIconModule],\n declarations: [ErrorPageComponent],\n})\nexport class ErrorPageModule {}\n","import { Option } from '../types';\n\nexport function isSearchOption<T>(option: Option<T>, termLowerCase: string) {\n return (\n !!String(option.value)?.toLowerCase().includes?.(termLowerCase) ||\n !!option.label?.toLowerCase()?.includes(termLowerCase) ||\n !!option.description?.toLowerCase().includes?.(termLowerCase)\n );\n}\n\nexport function searchOptions<T>(options: Option<T>[], term: string) {\n const termLowerCase = term.toLowerCase();\n return options?.filter?.((option) => isSearchOption(option, termLowerCase));\n}\n","import { Option } from '../types';\n\nexport function findOptionByValue<T>(options: Option<T>[], value: T) {\n return options?.find?.((o) => o.value === value);\n}\n","import isNil from 'lodash-es/isNil';\n\nimport { Option } from '../types';\n\nimport { findOptionByValue } from './find-option-by-value';\n\nexport function getHintText<T>(\n options: Option<T>[],\n selected: T[],\n hint?: string,\n opts: { multiple?: boolean; showLabel?: boolean } = {},\n) {\n if (!isNil(hint)) {\n return hint;\n }\n if (opts.multiple && options?.length > 1) {\n return (selected?.length || 0) + '/' + options.length;\n }\n if (!selected?.length) {\n return '';\n }\n const option = findOptionByValue(options, selected[0]);\n return opts.showLabel ? option?.label : option?.description;\n}\n","import { Component, EventEmitter, Input, Output, booleanAttribute } from '@angular/core';\nimport { MatFormFieldAppearance } from '@angular/material/form-field';\n\nimport { FormControlSuperclass, createControlProviders } from '../../../utils';\nimport { Option } from '../types';\nimport { isSearchOption } from '../utils';\nimport { getHintText } from '../utils/get-hint-text';\n\n@Component({\n selector: 'v-select-field',\n templateUrl: './select-field.component.html',\n styleUrls: ['./select-field.component.scss'],\n providers: createControlProviders(() => SelectFieldComponent),\n standalone: false,\n})\nexport class SelectFieldComponent<T = unknown> extends FormControlSuperclass<T[]> {\n @Input() options: Option<T>[] = [];\n @Output() searchChange = new EventEmitter<string>();\n\n @Input() appearance: MatFormFieldAppearance = 'fill';\n\n @Input() label?: string;\n @Input() hint?: string;\n @Input() error?: string;\n @Input() progress = false;\n\n @Input({ transform: booleanAttribute }) externalSearch = false;\n @Input({ transform: booleanAttribute }) multiple = false;\n @Input({ transform: booleanAttribute }) required = false;\n\n @Input() size?: 'small' | '';\n\n searchStr: string = '';\n\n get hintText() {\n return getHintText(\n this.options,\n this.multiple ? this.control.value : [this.control.value as T],\n this.hint,\n {\n multiple: this.multiple,\n },\n );\n }\n\n search = (term: string, item: Option<T>) => {\n return this.externalSearch || isSearchOption(item, term.toLowerCase());\n };\n}\n","<mat-form-field [appearance]=\"appearance\" [ngClass]=\"{ 'v-input-field__small': size === 'small' }\">\n <mat-label>{{ label }}</mat-label>\n\n <mtx-select\n [closeOnSelect]=\"!multiple\"\n [formControl]=\"control\"\n [items]=\"options\"\n [loading]=\"progress\"\n [markFirst]=\"true\"\n [multiple]=\"multiple\"\n [notFoundText]=\"externalSearch && !searchStr ? 'Enter your search term' : 'No items found'\"\n [required]=\"required\"\n [searchable]=\"true\"\n [searchFn]=\"search\"\n [selectableGroup]=\"true\"\n [selectableGroupAsModel]=\"false\"\n bindLabel=\"label\"\n bindValue=\"value\"\n groupBy=\"type\"\n (clear)=\"searchChange.emit(''); searchStr = ''\"\n (search)=\"searchChange.emit($event.term); searchStr = $event.term\"\n >\n <ng-template let-index=\"index\" let-item=\"item\" let-item$=\"item$\" ng-optgroup-tmp>\n <mat-checkbox\n *ngIf=\"multiple; else text\"\n [ngModel]=\"item$.selected\"\n class=\"checkbox-option\"\n id=\"item-{{ index }}\"\n >\n {{ item.type | uppercase }}\n </mat-checkbox>\n <ng-template #text>\n {{ item.type | uppercase }}\n </ng-template>\n </ng-template>\n <ng-template let-index=\"index\" let-item=\"item\" let-item$=\"item$\" ng-option-tmp>\n <mat-checkbox\n *ngIf=\"multiple; else text\"\n [ngModel]=\"item$.selected\"\n class=\"checkbox-option\"\n id=\"item-{{ index }}\"\n >\n <ng-container *ngTemplateOutlet=\"text\"></ng-container>\n </mat-checkbox>\n <ng-template #text>\n <div class=\"label\">{{ item.label }}</div>\n <div\n *ngIf=\"item.description\"\n class=\"description mat-label-medium mat-secondary-text\"\n >\n {{ item.description }}\n </div>\n </ng-template>\n </ng-template>\n </mtx-select>\n\n <mat-hint>{{ hintText }}</mat-hint>\n <mat-error>{{ error }}</mat-error>\n</mat-form-field>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatInputModule } from '@angular/material/input';\nimport { MtxSelectModule } from '@ng-matero/extensions/select';\n\nimport { SelectFieldComponent } from './select-field.component';\n\n@NgModule({\n declarations: [SelectFieldComponent],\n exports: [SelectFieldComponent],\n imports: [\n CommonModule,\n MatInputModule,\n MtxSelectModule,\n FormsModule,\n ReactiveFormsModule,\n MatCheckboxModule,\n ],\n})\nexport class SelectFieldModule {}\n","import { Component, Input, OnChanges, booleanAttribute } from '@angular/core';\nimport { BehaviorSubject, merge } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\n\nimport { ComponentChanges, FormControlSuperclass, createControlProviders } from '../../../utils';\nimport { Option } from '../types';\nimport { searchOptions } from '../utils';\nimport { getHintText } from '../utils/get-hint-text';\n\n@Component({\n selector: 'v-autocomplete-field',\n templateUrl: './autocomplete-field.component.html',\n styleUrls: ['./autocomplete-field.component.scss'],\n providers: createControlProviders(() => AutocompleteFieldComponent),\n standalone: false,\n})\nexport class AutocompleteFieldComponent<T> extends FormControlSuperclass<T> implements OnChanges {\n @Input() options: Option<T>[] = [];\n\n @Input() label?: string;\n @Input() hint?: string;\n @Input() error?: string;\n @Input() type = 'text';\n\n @Input({ transform: booleanAttribute }) mono = false;\n @Input({ transform: booleanAttribute }) required = false;\n\n get hintText() {\n return getHintText(this.options, [this.control.value], this.hint, { showLabel: true });\n }\n\n options$ = new BehaviorSubject<Option<T>[]>([]);\n selected$ = merge(this.control.valueChanges, this.options$).pipe(\n map(() => (this.options || []).find((o) => o.value === this.control.value)),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n filteredOptions$ = merge(this.control.valueChanges, this.options$).pipe(\n map(() => String(this.control.value ?? '').toLowerCase()),\n map((filter) => searchOptions(this.options, filter)),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n override ngOnChanges(changes: ComponentChanges<AutocompleteFieldComponent<T>>) {\n super.ngOnChanges(changes);\n if (changes.options) {\n this.options$.next(this.options || []);\n }\n }\n}\n","<mat-form-field style=\"width: 100%\">\n <mat-label>{{ label }}</mat-label>\n\n <input\n #trigger=\"matAutocompleteTrigger\"\n [formControl]=\"control\"\n [matAutocomplete]=\"auto\"\n [ngClass]=\"{ 'mat-mono': mono }\"\n [required]=\"required\"\n [type]=\"options?.length ? 'text' : type\"\n matInput\n />\n\n <mat-autocomplete #auto=\"matAutocomplete\" autoActiveFirstOption>\n @for (option of filteredOptions$ | async; track option) {\n <mat-option [value]=\"option.value\">\n <div [ngClass]=\"{ 'mat-mono': mono }\" class=\"label\">{{ option.label }}</div>\n @if (option.description) {\n <div\n [ngClass]=\"{ 'mat-mono': mono }\"\n class=\"description mat-label-medium mat-secondary-text\"\n >\n {{ option.description }}\n </div>\n }\n </mat-option>\n }\n </mat-autocomplete>\n\n <div matSuffix style=\"display: flex; gap: 4px\">\n @if (control.value) {\n <button mat-icon-button (click)=\"control.reset(); $event.stopPropagation()\">\n <mat-icon>clear</mat-icon>\n </button>\n }\n @if (options?.length) {\n <button\n mat-icon-button\n (click)=\"\n auto.isOpen ? trigger.closePanel() : trigger.openPanel();\n $event.stopPropagation()\n \"\n >\n <mat-icon>{{ auto.isOpen ? 'expand_less' : 'expand_more' }}</mat-icon>\n </button>\n }\n </div>\n <mat-hint>{{ hintText }}</mat-hint>\n <mat-error>{{\n error ??\n ((selected$ | async) ? (selected$ | async)?.label + (hint ? ' | ' + hint : '') : hint)\n }}</mat-error>\n</mat-form-field>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { AutocompleteFieldComponent } from './autocomplete-field.component';\n\n@NgModule({\n declarations: [AutocompleteFieldComponent],\n exports: [AutocompleteFieldComponent],\n imports: [\n CommonModule,\n MatInputModule,\n FormsModule,\n ReactiveFormsModule,\n MatAutocompleteModule,\n MatButtonModule,\n MatIconModule,\n ],\n})\nexport class AutocompleteFieldModule {}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { lastValueFrom } from 'rxjs';\n\n@Injectable()\nexport class ConfigServiceSuperclass<T> {\n config!: T;\n\n constructor(private http: HttpClient) {}\n\n async init({ configUrl }: { configUrl: string }): Promise<void> {\n this.config = await lastValueFrom(this.http.get<T>(configUrl));\n }\n}\n","import isObject from 'lodash-es/isObject';\n\nexport const DEFAULT_ERROR_NAME = 'Unknown error';\n\nexport class LogError {\n source!: Record<PropertyKey, unknown>;\n\n get name() {\n return String(this.source?.['name'] || DEFAULT_ERROR_NAME);\n }\n\n get message() {\n return String(this.source?.['message'] || this.name);\n }\n\n get cause() {\n return this.source?.['cause'];\n }\n\n get details() {\n return Object.fromEntries(\n Object.entries(this.source).filter(([k, v]) => k !== 'name' && k !== 'message' && v),\n );\n }\n\n constructor(error: unknown) {\n this.source = (isObject(error)\n ? error\n : new Error(\n error ? String(error) : DEFAULT_ERROR_NAME,\n )) as unknown as LogError['source'];\n }\n\n getLogMessage(message?: string) {\n return [\n message && `Caught error: ${message}`,\n this.name && `Name: ${this.name}`,\n this.message && `Message: ${this.message}`,\n Object.keys(this.details).length && JSON.stringify(this.details, null, 2),\n ]\n .filter(Boolean)\n .join('\\n');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { capitalize } from 'lodash-es';\nimport { Observer, first, timeout } from 'rxjs';\n\nimport { PossiblyAsync, getPossiblyAsyncObservable } from '../../utils';\n\nimport { DEFAULT_ERROR_NAME, LogError } from './log-error';\nimport { Operation } from './types/operation';\n\nconst DEFAULT_DURATION_MS = 3_000;\nconst DEFAULT_ERROR_DURATION_MS = 10_000;\nconst DEFAULT_TIMEOUT_MS = 10_000;\n\n@Injectable({ providedIn: 'root' })\nexport class NotifyLogService {\n constructor(private snackBar: MatSnackBar) {}\n\n success = (message: PossiblyAsync<string> = 'Completed successfully'): void => {\n this.notify(message);\n };\n\n error = (errors: unknown | unknown[], message?: PossiblyAsync<string>): void => {\n const logErrors = (Array.isArray(errors) ? errors : [errors]).map((e) => new LogError(e));\n message = message || (logErrors.length === 1 ? logErrors[0].message : DEFAULT_ERROR_NAME);\n this.subscribeWithTimeout(message, (msg) => {\n console.warn(\n [`Caught error: ${msg}.`, ...logErrors.map((e) => e.getLogMessage())].join('\\n'),\n );\n });\n this.notify(message, DEFAULT_ERROR_DURATION_MS);\n };\n\n createErrorOperation(operation: Operation, objectName: string) {\n return (err: unknown) => this.errorOperation(err, operation, objectName);\n }\n\n successOperation(operation: Operation, objectName: string): void {\n let message!: string;\n switch (operation) {\n case 'create':\n message = `${capitalize(objectName)} created successfully`;\n break;\n case 'receive':\n message = `${capitalize(objectName)} received successfully`;\n break;\n case 'update':\n message = `${capitalize(objectName)} updated successfully`;\n break;\n case 'delete':\n message = `${capitalize(objectName)} deleted successfully`;\n break;\n }\n this.success(message);\n }\n\n errorOperation(errors: unknown | unknown[], operation: Operation, objectName: string) {\n let message!: string;\n switch (operation) {\n case 'create':\n message = `Error creating ${objectName}`;\n break;\n case 'receive':\n message = `Error retrieving ${objectName}`;\n break;\n case 'update':\n message = `Error updating ${objectName}`;\n break;\n case 'delete':\n message = `Error deleting ${objectName}`;\n break;\n }\n this.error(errors, message);\n }\n\n private notify(message: PossiblyAsync<string>, duration = DEFAULT_DURATION_MS) {\n this.subscribeWithTimeout(message, {\n next: (msg) => {\n this.snackBar.open(msg, 'OK', {\n duration,\n });\n },\n error: () => {\n // TODO: Default message\n },\n });\n }\n\n private subscribeWithTimeout<T>(\n possiblyAsync: PossiblyAsync<T>,\n subscribe: Partial<Observer<T>> | Observer<T>['next'],\n ) {\n getPossiblyAsyncObservable(possiblyAsync)\n .pipe(first(), timeout(DEFAULT_TIMEOUT_MS))\n .subscribe(subscribe);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\n\nimport { NotifyLogService } from './notify-log.service';\n\n@NgModule({\n imports: [MatSnackBarModule],\n providers: [NotifyLogService],\n})\nexport class LogModule {}\n","import {\n BehaviorSubject,\n Observable,\n Subject,\n concat,\n defer,\n map,\n mergeScan,\n race,\n skip,\n skipWhile,\n take,\n takeUntil,\n tap,\n} from 'rxjs';\nimport { delay, shareReplay, startWith } from 'rxjs/operators';\n\nimport { inProgressFrom, progressTo } from '../../utils';\n\nexport interface Action<TParams> {\n type: 'load' | 'reload' | 'more' | 'init';\n params?: TParams;\n size?: number;\n}\n\nexport interface FetchResult<TResultItem, TContinuationToken = string> {\n result: TResultItem[];\n continuationToken?: TContinuationToken;\n}\n\nexport interface FetchOptions<TContinuationToken = string> {\n size: number;\n continuationToken?: TContinuationToken;\n}\n\nexport interface LoadOptions {\n size?: number;\n}\n\nexport interface Accumulator<TResultItem, TParams, TContinuationToken> {\n result: TResultItem[];\n size: number;\n params?: TParams;\n continuationToken?: TContinuationToken;\n}\n\nconst DEFAULT_SIZE = 25;\n\nexport abstract class FetchSuperclass<TResultItem, TParams = void, TContinuationToken = string> {\n result$ = defer(() => this.state$).pipe(map(({ result }) => result));\n hasMore$ = defer(() => this.state$).pipe(map(({ continuationToken }) => !!continuationToken));\n isLoading$ = inProgressFrom(\n () => this.progress$,\n () => this.state$,\n );\n\n private fetch$ = new BehaviorSubject<Action<TParams>>({ type: 'init' });\n private progress$ = new BehaviorSubject(0);\n private state$ = defer(() => {\n const resAction$ = this.fetch$.pipe(skipWhile((action) => action.type !== 'load'));\n return race(\n concat(resAction$.pipe(take(1), delay(1000)), resAction$),\n resAction$.pipe(skip(1)),\n );\n }).pipe(\n tap((action) => {\n if (action.type === 'load') {\n this.skipPrevious$.next(true);\n }\n }),\n mergeScan<Action<TParams>, Accumulator<TResultItem, TParams, TContinuationToken>>(\n (acc, action) => {\n const params = (action.type === 'load' ? action.params : acc.params) as TParams;\n const size = action.size ?? acc.size;\n const continuationToken =\n action.type === 'more' ? acc.continuationToken : undefined;\n return this.fetch(params, { size, continuationToken }).pipe(\n ...((action.type === 'load'\n ? ([\n startWith({\n params,\n result: [],\n size,\n continuationToken: undefined,\n }),\n ] as unknown)\n : []) as []),\n map(({ result, continuationToken }) => ({\n params,\n result:\n action.type === 'load' || action.type === 'reload'\n ? result\n : [...(acc.result ?? []), ...result],\n size,\n continuationToken,\n })),\n progressTo(this.progress$),\n takeUntil(this.skipPrevious$),\n );\n },\n {\n size: DEFAULT_SIZE,\n result: [],\n },\n 1,\n ),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n private skipPrevious$ = new Subject<boolean>();\n\n load(params: TParams, options: LoadOptions = {}): void {\n this.fetch$.next({ type: 'load', params, size: options.size });\n }\n\n reload(options: LoadOptions = {}): void {\n this.fetch$.next({ type: 'reload', size: options.size });\n }\n\n more(): void {\n this.fetch$.next({ type: 'more' });\n }\n\n protected abstract fetch(\n params: TParams,\n options: FetchOptions<TContinuationToken>,\n ): Observable<FetchResult<TResultItem, TContinuationToken>>;\n}\n\nexport abstract class SingleFetchSuperclass<TResultItem, TParams = void> extends FetchSuperclass<\n TResultItem,\n TParams,\n never\n> {\n override more: () => never = () => undefined as never;\n}\n","import { DateRange } from '@angular/material/datepicker';\n\nimport { Serializer } from '../types/serializer';\n\nexport const DATE_QUERY_PARAMS_SERIALIZERS: Serializer[] = [\n {\n id: 'date',\n serialize: (date: Date) => date?.toISOString(),\n deserialize: (value) => new Date(value),\n recognize: (value) => value instanceof Date,\n },\n {\n id: 'dateRange',\n serialize: ({ start, end }: DateRange<Date>) =>\n `${start?.toISOString()}|${end?.toISOString()}`,\n deserialize: (value) => {\n const [start, end] = value.split('|').map((p) => (p ? new Date(p) : null));\n return { start, end };\n },\n recognize: (value) => {\n if (typeof value !== 'object') {\n return false;\n }\n const { start, end, ...other } = value as DateRange<Date>;\n if (Object.keys(other).length) {\n return false;\n }\n return start instanceof Date || end instanceof Date;\n },\n },\n] as Serializer[];\n","import { InjectionToken } from '@angular/core';\n\nimport { Serializer } from '../types/serializer';\n\nexport const QUERY_PARAMS_SERIALIZERS = new InjectionToken<Serializer[]>(\n 'query params serializers',\n);\n","import { Serializer } from '../types/serializer';\n\nexport function deserializeQueryParam<P>(value: string, serializers: Serializer[] = []): P {\n const serializer = serializers\n .sort((a, b) => b.id.length - a.id.length)\n .find((s) => value.startsWith(s.id));\n return (\n serializer\n ? serializer.deserialize(value.slice(serializer.id.length))\n : JSON.parse(value || '')\n ) as P;\n}\n","import { Serializer } from '../types/serializer';\n\nexport function serializeQueryParam(value: unknown, serializers: Serializer[] = []): string {\n const serializer = serializers\n .sort((a, b) => b.id.length - a.id.length)\n .find((s) => s.recognize(value));\n return serializer ? serializer.id + serializer.serialize(value) : JSON.stringify(value);\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { ActivatedRoute, Params, Router } from '@angular/router';\nimport isEqual from 'lodash-es/isEqual';\nimport negate from 'lodash-es/negate';\nimport { Observable, concat, defer, skipWhile, take } from 'rxjs';\nimport { distinctUntilChanged, map, shareReplay, startWith } from 'rxjs/operators';\n\nimport { isEmpty } from '../../utils';\n\nimport { Serializer } from './types/serializer';\nimport { QUERY_PARAMS_SERIALIZERS } from './utils';\nimport { deserializeQueryParam } from './utils/deserialize-query-param';\nimport { serializeQueryParam } from './utils/serialize-query-param';\n\ninterface SerializeOptions {\n filter?: (param: unknown, key: string) => boolean;\n}\n\ninterface SetOptions extends SerializeOptions {\n isPatch?: boolean;\n}\n\ninterface SourceParams {\n main: Params;\n namespaces: Record<string, string>;\n}\n\ninterface BaseQueryParams<T extends object> {\n params$: Observable<Partial<T>>;\n params: Partial<T>;\n set: (params: T, options?: SerializeOptions) => Promise<boolean>;\n patch: (params: Partial<T>, options?: SerializeOptions) => Promise<boolean>;\n}\n\nexport interface QueryParamsNamespace<T extends object> extends BaseQueryParams<T> {\n destroy: () => void;\n}\n\nconst NS_PARAM_PREFIX = '__';\n\n@Injectable({ providedIn: 'root' })\nexport class QueryParamsService<P extends object = NonNullable<unknown>>\n implements BaseQueryParams<P>\n{\n params$: Observable<P> = defer(() => this.sourceParams$).pipe(\n map(({ main }) => main),\n distinctUntilChanged(isEqual),\n map((params) => this.deserialize(params)),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n get params(): P {\n return this.deserialize(this.getSourceParams().main);\n }\n\n private sourceParams$: Observable<SourceParams> = concat(\n this.router.events.pipe(\n startWith(null),\n skipWhile(() => !this.router.navigated),\n map(() => this.route.snapshot.queryParams),\n take(1),\n ),\n this.route.queryParams,\n ).pipe(\n distinctUntilChanged(isEqual),\n map((p) => this.getSourceParams(p)),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n constructor(\n private router: Router,\n private route: ActivatedRoute,\n @Optional() @Inject(QUERY_PARAMS_SERIALIZERS) private readonly serializers?: Serializer[],\n ) {\n if (!this.serializers) {\n this.serializers = [];\n }\n }\n\n async set(params: P, options: SerializeOptions = {}): Promise<boolean> {\n return await this.setParams(params, undefined, options);\n }\n\n async patch(params: Partial<P>, options: SerializeOptions = {}): Promise<boolean> {\n return await this.setParams(params, undefined, { ...options, isPatch: true });\n }\n\n createNamespace<TNamespaceParams extends object>(\n ns: string,\n ): QueryParamsNamespace<TNamespaceParams> {\n const getNamespaceSourceParams = (sourceParams = this.getSourceParams()): Partial<string> =>\n sourceParams.namespaces[NS_PARAM_PREFIX + ns];\n const getNamespaceParams = (): Partial<TNamespaceParams> =>\n this.deserializeNamespace(getNamespaceSourceParams());\n return {\n params$: this.sourceParams$.pipe(\n map((sourceParams) => getNamespaceSourceParams(sourceParams)),\n distinctUntilChanged(isEqual),\n map((params) => this.deserializeNamespace(params)),\n shareReplay({ refCount: true, bufferSize: 1 }),\n ),\n get params() {\n return getNamespaceParams();\n },\n set: async (params, options = {}): Promise<boolean> => {\n return await this.setParams(params, ns, options);\n },\n patch: async (params, options = {}): Promise<boolean> => {\n return await this.setParams(params, ns, { ...options, isPatch: true });\n },\n destroy: async () => {\n await this.setParams({}, ns);\n },\n };\n }\n\n private async setParams<TParams extends object>(\n params: Partial<TParams>,\n ns?: string,\n options: SetOptions = {},\n ): Promise<boolean> {\n const sourceParams = this.getSourceParams();\n let queryParams: Params;\n if (ns) {\n const nsKey = NS_PARAM_PREFIX + ns;\n const serializedNamespace = this.serializeNamespace(\n Object.assign(\n {},\n options.isPatch && this.deserializeNamespace(sourceParams.namespaces[nsKey]),\n params,\n ),\n );\n const otherNamespaces = sourceParams.namespaces;\n delete otherNamespaces[nsKey];\n queryParams = Object.assign(\n {},\n sourceParams.main,\n otherNamespaces,\n !!serializedNamespace && { [nsKey]: serializedNamespace },\n );\n } else {\n queryParams = Object.assign(\n {},\n options.isPatch && sourceParams.main,\n this.serialize(params),\n sourceParams.namespaces,\n );\n }\n return await this.router.navigate([], { queryParams });\n }\n\n private getSourceParams(source: Params = this.route.snapshot.queryParams): SourceParams {\n return Object.entries(source).reduce(\n (acc, [k, v]) => {\n if (k.startsWith(NS_PARAM_PREFIX)) {\n acc.namespaces[k] = v;\n } else {\n acc.main[k] = v;\n }\n return acc;\n },\n { main: {}, namespaces: {} } as SourceParams,\n );\n }\n\n private serialize(params: object, options: SerializeOptions = {}): Params {\n const filter = options.filter ?? negate(isEmpty);\n return Object.entries(params).reduce((acc, [k, v]) => {\n if (filter(v, k)) {\n acc[k] = serializeQueryParam(v, this.serializers);\n }\n return acc;\n }, {} as Params);\n }\n\n private deserialize(params: Params): P {\n if (!params) {\n return {} as P;\n }\n return Object.entries(params).reduce((acc, [k, v]) => {\n try {\n acc[k as keyof P] = deserializeQueryParam<P[keyof P]>(v, this.serializers);\n } catch (err) {\n console.error(err);\n }\n return acc;\n }, {} as P);\n }\n\n private serializeNamespace<TNamespaceParams extends object>(params?: TNamespaceParams): string {\n return params && Object.keys(params).length ? JSON.stringify(params) : '';\n }\n\n private deserializeNamespace<TNamespaceParams extends object>(\n strParams?: string,\n ): TNamespaceParams {\n return strParams ? JSON.parse(strParams) : {};\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { QueryParamsService } from './query-params.service';\nimport { DATE_QUERY_PARAMS_SERIALIZERS } from './utils/date-query-params-serializers';\nimport { QUERY_PARAMS_SERIALIZERS } from './utils/query-params-serializers';\n\n@NgModule({\n providers: [\n { provide: QUERY_PARAMS_SERIALIZERS, useValue: DATE_QUERY_PARAMS_SERIALIZERS },\n QueryParamsService,\n ],\n})\nexport class QueryParamsModule {}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { distinctUntilChanged, filter, map, shareReplay, startWith } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UrlService {\n url$ = this.router.events.pipe(\n startWith(null),\n map(() => this.url),\n filter((url) => this.router.navigated || (!!url && url !== '/')),\n distinctUntilChanged(),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n path$ = this.url$.pipe(\n map(() => this.path),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n get url() {\n return this.router.url && this.router.url !== '/'\n ? this.router.url.split('?', 1)[0].split('#', 1)[0]\n : window.location.pathname;\n }\n\n get path() {\n return this.url?.split('/')?.slice(1) ?? [];\n }\n\n constructor(private router: Router) {}\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MAT_SNACK_BAR_DATA, MatSnackBarRef } from '@angular/material/snack-bar';\nimport { Observable, combineLatest, map, of, shareReplay } from 'rxjs';\n\nexport const DEFAULT_DURATION = 3000;\n\nexport interface ToastData {\n message?: string;\n action?: () => void;\n\n /** Duration after progress or if not set, duration of the snackbar */\n duration?: number;\n\n progress$?: Observable<boolean>;\n progressMessage?: string;\n\n successMessage?: string;\n\n error$?: Observable<unknown>;\n errorMessage?: string;\n}\n\n@Component({\n selector: 'v-toast',\n templateUrl: './toast.component.html',\n styleUrls: ['./toast.component.scss'],\n imports: [CommonModule, MatProgressSpinnerModule, MatButtonModule],\n})\nexport class ToastComponent {\n message$ = combineLatest([this.data.progress$ ?? of(false), this.data.error$ ?? of(null)]).pipe(\n map(([progress, error]) => {\n if (error) {\n return this.data.errorMessage ?? this.data.message;\n } else if (progress) {\n return this.data.progressMessage ?? this.data.message;\n }\n return this.data.message;\n }),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n constructor(\n @Inject(MAT_SNACK_BAR_DATA)\n public data: ToastData,\n private snackBarRef: MatSnackBarRef<ToastComponent>,\n ) {\n this.subscribeProgress();\n if (!this.data.progress$) {\n this.dismissByDuration();\n }\n }\n\n dismissWithAction() {\n this.data.action?.();\n this.snackBarRef.dismissWithAction();\n }\n\n private subscribeProgress() {\n if (this.data.progress$) {\n let started = false;\n this.data.progress$.subscribe((progress) => {\n if (!started && progress) {\n started = true;\n } else if (started && !progress) {\n this.dismissByDuration();\n }\n });\n }\n }\n\n private dismissByDuration() {\n if (this.data.duration && this.data.duration < Number.MAX_SAFE_INTEGER) {\n setTimeout(() => {\n this.snackBarRef.dismiss();\n }, this.data.duration ?? DEFAULT_DURATION);\n }\n }\n}\n","<span>\n {{ message$ | async }}\n</span>\n\n@if (data.progress$ | async) {\n <mat-spinner [diameter]=\"24\" color=\"white\"></mat-spinner>\n} @else {\n <button class=\"button\" mat-button (click)=\"dismissWithAction()\">OK</button>\n}\n","import { Injectable } from '@angular/core';\nimport { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';\n\nimport { DEFAULT_DURATION, ToastComponent, ToastData } from './toast.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ToastService {\n constructor(private snackBar: MatSnackBar) {}\n\n open(data: ToastData, config: Omit<MatSnackBarConfig<ToastData>, 'data'> = {}) {\n return this.snackBar.openFromComponent<ToastComponent, ToastData>(ToastComponent, {\n ...config,\n duration: data.progress$ ? config.duration : (data.duration ?? DEFAULT_DURATION),\n data,\n });\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { NotifyLogService } from '../../services';\n\nfunction hasExtension(fileName: string, extensions: string[]) {\n return (\n !extensions?.length ||\n new RegExp('(' + extensions.join('|').replace(/\\./g, '\\\\.') + ')$').test(fileName)\n );\n}\n\n@Component({\n selector: 'v-file-upload',\n templateUrl: './file-upload.component.html',\n styleUrls: ['./file-upload.component.scss'],\n standalone: false,\n})\nexport class FileUploadComponent {\n @Input() label?: string;\n @Input() extensions: string[] = [];\n\n @Output() upload = new EventEmitter<File | null>();\n\n protected file?: File | null;\n\n constructor(private log: NotifyLogService) {}\n\n loadFile(event: Event) {\n const file = (event.target as HTMLInputElement)?.files?.[0] ?? null;\n if (!file) {\n this.log.error(new Error('File upload error'));\n return;\n }\n if (!hasExtension(file.name, this.extensions)) {\n this.log.error(new Error(`Supported file types: ${this.extensions.join(', ')}`));\n return;\n }\n this.file = file;\n this.upload.emit(this.file);\n }\n}\n","<div class=\"wrapper\">\n <button mat-button type=\"button\" (click)=\"fileInput.click()\">\n {{ label ?? 'Choose File' }}\n </button>\n\n <div class=\"mat-body-medium mat-secondary-text mat-no-margin\">\n {{ file?.name }}\n </div>\n</div>\n\n<input #fileInput hidden type=\"file\" (change)=\"loadFile($event)\" />\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { FileUploadComponent } from './file-upload.component';\n\n@NgModule({\n declarations: [FileUploadComponent],\n exports: [FileUploadComponent],\n imports: [CommonModule, MatButtonModule],\n})\nexport class FileUploadModule {}\n","import { Observable } from 'rxjs';\n\nimport { Nil } from '../../../utils';\n\nexport function loadFileContent(file: File | Nil, encoding = 'utf-8'): Observable<string> {\n return new Observable((subscriber) => {\n if (!file) {\n return undefined;\n }\n const read = new FileReader();\n read.readAsText(file, encoding);\n read.onloadend = function () {\n if (read.error) {\n return subscriber.error(read.error);\n } else {\n subscriber.next((read.result as string) || '');\n }\n subscriber.complete();\n };\n });\n}\n","import { Component, Input, booleanAttribute } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\nimport { DateFnsAdapter, MAT_DATE_FNS_FORMATS } from '@angular/material-date-fns-adapter';\nimport { FormComponentSuperclass } from '@s-libs/ng-core';\nimport { format, isValid } from 'date-fns';\nimport { enGB } from 'date-fns/locale';\n\nimport {\n createControlProviders,\n createDateFromNoTimeZoneString,\n getNoTimeZoneIsoString,\n} from '../../utils';\n\n@Component({\n selector: 'v-datetime-field',\n templateUrl: './datetime-field.component.html',\n styleUrls: ['datetime-field.component.scss'],\n providers: [\n ...createControlProviders(() => DatetimeFieldComponent),\n { provide: MAT_DATE_LOCALE, useValue: enGB },\n { provide: DateAdapter, useClass: DateFnsAdapter, deps: [MAT_DATE_LOCALE] },\n { provide: MAT_DATE_FORMATS, useValue: MAT_DATE_FNS_FORMATS },\n ],\n standalone: false,\n})\nexport class DatetimeFieldComponent extends FormComponentSuperclass<string> {\n @Input() label?: string;\n @Input({ transform: booleanAttribute }) required = false;\n @Input() hint?: string;\n\n datetime?: Date | null;\n\n get time() {\n return this.datetime ? format(this.datetime, 'HH:mm') : '';\n }\n\n handleIncomingValue(value: string) {\n this.datetime = value ? createDateFromNoTimeZoneString(value) : null;\n }\n\n timeChanged(event: Event) {\n const [hours, minutes] = (event.target as HTMLInputElement).value.split(':');\n if (!this.datetime) {\n this.datetime = new Date();\n }\n this.datetime.setHours(Number(hours));\n this.datetime.setMinutes(Number(minutes));\n this.datetime.setSeconds(0);\n this.datetime.setMilliseconds(0);\n this.emitValue();\n }\n\n dateChanged(date: MatDatepickerInputEvent<Date>) {\n const v = date.target.value || new Date();\n if (this.datetime) {\n this.datetime.setDate(v.getDate());\n this.datetime.setMonth(v.getMonth());\n this.datetime.setFullYear(v.getFullYear());\n } else {\n this.datetime = v;\n }\n this.emitValue();\n }\n\n validate(): ValidationErrors | null {\n return !this.datetime || isValid(this.datetime) ? null : { invalidDatetime: true };\n }\n\n private emitValue() {\n return this.emitOutgoingValue(getNoTimeZoneIsoString(this.datetime));\n }\n}\n","<div class=\"wrapper\">\n <mat-form-field class=\"date\">\n <mat-label>\n {{ label }}\n </mat-label>\n <mat-hint>{{ hint }}</mat-hint>\n <input\n [matDatepicker]=\"picker\"\n [required]=\"required\"\n [value]=\"datetime\"\n matInput\n (dateInput)=\"dateChanged($event)\"\n />\n <mat-datepicker-toggle [for]=\"picker\" matSuffix></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n </mat-form-field>\n @if (datetime) {\n <mat-form-field class=\"time\">\n <input [value]=\"time\" matInput type=\"time\" (input)=\"timeChanged($event)\" />\n </mat-form-field>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { DatetimeFieldComponent } from './datetime-field.component';\n\n@NgModule({\n declarations: [DatetimeFieldComponent],\n exports: [DatetimeFieldComponent],\n imports: [CommonModule, MatFormFieldModule, MatInputModule, MatDatepickerModule],\n})\nexport class DatetimeFieldModule {}\n","import { Component, Input, OnChanges } from '@angular/core';\nimport { lowerFirst } from 'lodash-es';\nimport isNil from 'lodash-es/isNil';\n\nimport { ComponentChanges, FormControlSuperclass, createControlProviders } from '../../utils';\n\nexport interface State<T = unknown> {\n icon?: string;\n label?: string;\n value?: T;\n}\n\n@Component({\n selector: 'v-switch-button',\n templateUrl: './switch-button.component.html',\n styles: [],\n providers: createControlProviders(() => SwitchButtonComponent),\n standalone: false,\n})\nexport class SwitchButtonComponent<T = number>\n extends FormControlSuperclass<T>\n implements OnChanges\n{\n @Input() states: State<T>[] = [];\n\n private hasChangeValue = false;\n\n get index() {\n return this.getIndex(this.control.value);\n }\n\n get nextIndex() {\n const nextIdx = this.index + 1;\n return nextIdx === this.states.length ? 0 : nextIdx;\n }\n\n get value(): T {\n return this.getValue(this.getIndex(this.control.value));\n }\n\n get state() {\n return this.states[this.index];\n }\n\n get nextState() {\n return this.states[this.nextIndex];\n }\n\n get tooltip() {\n const nextState = this.states[this.nextIndex];\n return nextState.label ? `Switch to ${lowerFirst(nextState.label)}` : '';\n }\n\n change() {\n this.control.setValue(this.getValue(this.nextIndex));\n }\n\n override ngOnChanges(changes: ComponentChanges<SwitchButtonComponent<T>>) {\n super.ngOnChanges(changes);\n if (changes.states && this.states.length) {\n if (!isNil(this.states?.[0]?.value)) {\n this.hasChangeValue = true;\n }\n if (isNil(this.control.value)) {\n this.control.setValue(this.value);\n }\n }\n }\n\n private getIndex(value: T) {\n return (\n (this.hasChangeValue\n ? this.states.findIndex((s) => s.value === value)\n : (value as number)) ?? 0\n );\n }\n\n private getValue(index: number) {\n return this.hasChangeValue ? (this.states[index]?.value as T) : (index as T);\n }\n}\n","<button [matTooltip]=\"tooltip\" class=\"button\" mat-icon-button (click)=\"change()\">\n <mat-icon class=\"icon\">{{ state?.icon }}</mat-icon>\n</button>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { SwitchButtonComponent } from './switch-button.component';\n\n@NgModule({\n declarations: [SwitchButtonComponent],\n imports: [CommonModule, MatButtonModule, MatIconModule, MatTooltipModule],\n exports: [SwitchButtonComponent],\n})\nexport class SwitchButtonModule {}\n","import { AsyncPipe, NgClass } from '@angular/common';\nimport { Component, ViewEncapsulation, booleanAttribute, input } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { MatDivider } from '@angular/material/divider';\nimport { RouterLink } from '@angular/router';\nimport { isArray } from 'lodash-es';\nimport { combineLatest } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\n\nimport { UrlService } from '../../services';\n\nexport interface Link {\n label: string;\n url: string;\n}\n\n@Component({\n selector: 'v-nav',\n styleUrls: ['./nav.component.scss'],\n templateUrl: './nav.component.html',\n imports: [RouterLink, NgClass, AsyncPipe, MatDivider],\n encapsulation: ViewEncapsulation.None,\n})\nexport class NavComponent {\n type = input<'secondary' | undefined>();\n links = input<Link[][], Link[] | Link[][]>([], {\n transform: (v) => (isArray(v[0]) ? (v as never) : [v as never]),\n });\n exact = input(false, { transform: booleanAttribute });\n\n activeLink$ = combineLatest([\n this.urlService.url$,\n toObservable(this.links),\n toObservable(this.exact),\n ]).pipe(\n map(\n ([url, links, exact]) =>\n links.flat().reduce(\n (res, link) => {\n const index = url.indexOf(link.url);\n if (index !== -1 && (exact ? index === 0 : index < res.index)) {\n return { index, link };\n }\n return res;\n },\n { index: Infinity, link: null as never as Link },\n )?.link,\n ),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n constructor(private urlService: UrlService) {}\n}\n","<div [ngClass]=\"{ 'v-nav__secondary': type() === 'secondary' }\" class=\"v-nav\">\n @for (linksGroup of links(); track linksGroup; let index = $index) {\n @if (index !== 0) {\n <mat-divider></mat-divider>\n }\n @for (link of linksGroup; track link) {\n <div\n [ngClass]=\"{ item__active: (activeLink$ | async) === link }\"\n [routerLink]=\"link.url\"\n [title]=\"link.label\"\n class=\"mat-body-large item mat-no-margin\"\n >\n {{ link.label }}\n </div>\n }\n }\n</div>\n","import { DEFAULT_CURRENCY_CODE, Inject, LOCALE_ID, Pipe, PipeTransform } from '@angular/core';\n\nimport { formatCurrency } from '../utils';\n\n@Pipe({\n standalone: true,\n name: 'amountCurrency',\n})\nexport class AmountCurrencyPipe implements PipeTransform {\n constructor(\n @Inject(LOCALE_ID) private _locale: string,\n @Inject(DEFAULT_CURRENCY_CODE) private _defaultCurrencyCode: string = 'USD',\n ) {}\n\n transform(\n amount: unknown,\n currencyCode: string = this._defaultCurrencyCode,\n format: 'short' | 'long' = 'long',\n exponent?: number,\n isMajor = false,\n ): unknown {\n if (typeof amount === 'number') {\n return formatCurrency(amount, currencyCode, format, this._locale, exponent, isMajor);\n }\n return amount;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { getEnumKeyValues } from '../utils/enum';\n\n@Pipe({\n standalone: true,\n name: 'enumKeyValues',\n})\nexport class EnumKeyValuesPipe implements PipeTransform {\n transform<E extends Record<PropertyKey, unknown>>(value: E) {\n return getEnumKeyValues(value);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport isNil from 'lodash-es/isNil';\nimport { ValuesType } from 'utility-types';\n\nimport { getEnumKey } from '../utils/enum';\n\n@Pipe({\n standalone: true,\n name: 'enumKey',\n})\nexport class EnumKeyPipe implements PipeTransform {\n transform<E extends Record<PropertyKey, unknown>>(value: ValuesType<E>, enumObj: E) {\n return !isNil(value) && enumObj ? getEnumKey(enumObj, value) : '';\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { getEnumKeys } from '../utils/enum';\n\n@Pipe({\n standalone: true,\n name: 'enumKeys',\n})\nexport class EnumKeysPipe implements PipeTransform {\n transform<E extends Record<PropertyKey, unknown>>(value: E): (keyof E)[] {\n return getEnumKeys(value);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { formatDistanceToNow } from 'date-fns';\nimport { combineLatest, throttleTime, timer } from 'rxjs';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\n\nimport { AsyncTransform, AsyncTransformParameters } from '../utils';\n\nexport type HumanizedDurationValue = ConstructorParameters<DateConstructor>[0];\n\nexport interface HumanizedDurationConfig {\n hasAgoEnding?: boolean;\n}\n\nconst DEFAULT_TIMER = 7500;\n\n@Pipe({\n standalone: true,\n name: 'humanizedDuration',\n pure: false,\n})\nexport class HumanizedDurationPipe\n extends AsyncTransform<HumanizedDurationValue, [HumanizedDurationConfig]>\n implements PipeTransform\n{\n protected result$ = combineLatest([this.params$, timer(0, DEFAULT_TIMER)]).pipe(\n throttleTime(DEFAULT_TIMER),\n map(\n ([[value, config]]) =>\n formatDistanceToNow(new Date(value), { includeSeconds: true }) +\n (config.hasAgoEnding ? ' ago' : ''),\n ),\n distinctUntilChanged(),\n );\n\n transform(\n ...params: AsyncTransformParameters<HumanizedDurationValue, [HumanizedDurationConfig]>\n ) {\n return super.asyncTransform(params);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { inlineJson } from '../utils';\n\n@Pipe({\n name: 'inlineJson',\n standalone: false,\n})\nexport class InlineJsonPipe implements PipeTransform {\n transform(value: unknown, maxReadableLever: number | false = 1): string {\n return inlineJson(value, maxReadableLever === false ? Infinity : maxReadableLever);\n }\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectorRef, OnDestroy, Pipe, PipeTransform } from '@angular/core';\nimport { Observable, isObservable } from 'rxjs';\n\nimport { SelectFn, select } from '../utils';\n\n@Pipe({\n standalone: true,\n name: 'vSelect',\n pure: false,\n})\nexport class VSelectPipe<TObject extends object, TResult, TParams extends Array<unknown> = []>\n implements PipeTransform, OnDestroy\n{\n private asyncPipe?: AsyncPipe;\n\n constructor(private ref: ChangeDetectorRef) {}\n\n transform(\n obj: TObject,\n selectFn: SelectFn<TObject, TResult, TParams>,\n defaultValue?: TResult,\n rest: TParams[] = [],\n ): TResult | null {\n const res = obj && selectFn ? select(obj, selectFn, defaultValue, rest) : null;\n if (isObservable(res) && !this.asyncPipe) {\n this.asyncPipe = new AsyncPipe(this.ref);\n }\n if (this.asyncPipe) {\n return this.asyncPipe.transform(res as Observable<TResult>);\n }\n return res as TResult;\n }\n\n ngOnDestroy() {\n this.asyncPipe?.ngOnDestroy?.();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { AmountCurrencyPipe } from './amount-currency.pipe';\nimport { EnumKeyValuesPipe } from './enum-key-values.pipe';\nimport { EnumKeyPipe } from './enum-key.pipe';\nimport { EnumKeysPipe } from './enum-keys.pipe';\nimport { HumanizedDurationPipe } from './humanized-duration.pipe';\nimport { InlineJsonPipe } from './inline-json.pipe';\nimport { VSelectPipe } from './select.pipe';\n\n@NgModule({\n declarations: [InlineJsonPipe],\n exports: [\n InlineJsonPipe,\n EnumKeyPipe,\n EnumKeysPipe,\n EnumKeyValuesPipe,\n AmountCurrencyPipe,\n VSelectPipe,\n HumanizedDurationPipe,\n ],\n imports: [\n CommonModule,\n EnumKeyPipe,\n EnumKeysPipe,\n EnumKeyValuesPipe,\n AmountCurrencyPipe,\n VSelectPipe,\n HumanizedDurationPipe,\n ],\n})\nexport class PipesModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ActionsComponent","i1","i3","i4","i5.ProgressComponent","catchError","getValue","BaseFormComponentSuperclass","ngFormatCurrency","_get","isObject","papa","filter","map","startWith","distinctUntilChanged","shareReplay","i2","i5","i6","i3.TagComponent","isEqual","i4.InputFieldComponent","i5.ActionsComponent","i7","i8.TagComponent","debounceTime","first","i4.ValueComponent","i5.NoRecordsComponent","i6.ContentLoadingComponent","i7.InfinityScrollDirective","i8.SelectColumnComponent","i11.DndColumnComponent","i12.TableInfoBarComponent","i13.TableInputsComponent","i2.DialogComponent","i3.DialogActionsComponent","i4.TableComponent","i1.DialogService","i3.ActionsComponent","i8","i1.NotifyLogService","FormComponentSuperclass","i1.UrlService"],"mappings":"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"}
|