@vality/matez 21.0.1-pr-496-5e2c2b6.0 → 22.0.1-e965167.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.
@@ -1 +1 @@
1
- {"version":3,"file":"vality-matez.mjs","sources":["../../../projects/matez/src/lib/components/actions/actions.component.ts","../../../projects/matez/src/lib/components/actions/actions.component.html","../../../projects/matez/src/lib/components/actions/actions.module.ts","../../../projects/matez/src/lib/components/progress/progress.component.ts","../../../projects/matez/src/lib/components/progress/progress.component.html","../../../projects/matez/src/lib/components/progress/progress.module.ts","../../../projects/matez/src/lib/components/dialog/components/dialog-actions/dialog-actions.component.ts","../../../projects/matez/src/lib/components/dialog/components/dialog-actions/dialog-actions.component.html","../../../projects/matez/src/lib/components/dialog/types/dialog-response-status.ts","../../../projects/matez/src/lib/components/dialog/dialog.component.ts","../../../projects/matez/src/lib/components/dialog/dialog.component.html","../../../projects/matez/src/lib/components/dialog/tokens.ts","../../../projects/matez/src/lib/components/dialog/services/dialog.service.ts","../../../projects/matez/src/lib/components/dialog/dialog.module.ts","../../../projects/matez/src/lib/components/dialog/utils/dialog-superclass.ts","../../../projects/matez/src/lib/components/content-loading/content-loading.component.ts","../../../projects/matez/src/lib/components/content-loading/content-loading.component.html","../../../projects/matez/src/lib/utils/json/inline-json.ts","../../../projects/matez/src/lib/utils/string/split-by-separators.ts","../../../projects/matez/src/lib/utils/operators/progress-to.ts","../../../projects/matez/src/lib/utils/operators/get-observable.ts","../../../projects/matez/src/lib/utils/operators/in-progress-from.ts","../../../projects/matez/src/lib/utils/operators/pass-error.ts","../../../projects/matez/src/lib/components/progress/utils/get-progress-by-count.ts","../../../projects/matez/src/lib/utils/operators/fork-join-to-result.ts","../../../projects/matez/src/lib/utils/async/from-async.ts","../../../projects/matez/src/lib/utils/async/is-async.ts","../../../projects/matez/src/lib/utils/async/get-possibly-async-observable.ts","../../../projects/matez/src/lib/utils/async/async-transform.ts","../../../projects/matez/src/lib/utils/async/get-possibly-async-value.ts","../../../projects/matez/src/lib/utils/operators/switch-combine-with.ts","../../../projects/matez/src/lib/utils/operators/debounce-time-with-first.ts","../../../projects/matez/src/lib/utils/operators/handle-error.ts","../../../projects/matez/src/lib/utils/operators/async-start-with.ts","../../../projects/matez/src/lib/utils/operators/tap-log.ts","../../../projects/matez/src/lib/utils/operators/filter-operator.ts","../../../projects/matez/src/lib/utils/form/has-controls.ts","../../../projects/matez/src/lib/utils/form/get-value.ts","../../../projects/matez/src/lib/utils/form/get-value-changes.ts","../../../projects/matez/src/lib/utils/form/form-wrappers/utils/get-errors-tree.ts","../../../projects/matez/src/lib/utils/form/form-wrappers/abstract-control-superclass.ts","../../../projects/matez/src/lib/utils/form/form-wrappers/form-group-superclass.directive.ts","../../../projects/matez/src/lib/utils/form/form-wrappers/utils/provide-validators.ts","../../../projects/matez/src/lib/utils/form/form-wrappers/utils/provide-value-accessor.ts","../../../projects/matez/src/lib/utils/form/form-wrappers/utils/create-control-providers.ts","../../../projects/matez/src/lib/utils/form/form-wrappers/form-control-superclass.directive.ts","../../../projects/matez/src/lib/utils/form/form-wrappers/form-component-superclass.directive.ts","../../../projects/matez/src/lib/utils/form/form-wrappers/form-array-superclass.directive.ts","../../../projects/matez/src/lib/utils/empty/is-empty-primitive.ts","../../../projects/matez/src/lib/utils/form/get-valid-value-changes.ts","../../../projects/matez/src/lib/utils/form/set-disabled.ts","../../../projects/matez/src/lib/utils/form/create-controls.ts","../../../projects/matez/src/lib/utils/date/get-no-time-zone-iso-string.ts","../../../projects/matez/src/lib/utils/currency/get-currency-exponent.ts","../../../projects/matez/src/lib/utils/currency/to-major.ts","../../../projects/matez/src/lib/utils/currency/to-minor.ts","../../../projects/matez/src/lib/utils/currency/format-currency.ts","../../../projects/matez/src/lib/utils/object/select.ts","../../../projects/matez/src/lib/utils/object/count-props.ts","../../../projects/matez/src/lib/utils/empty/is-empty.ts","../../../projects/matez/src/lib/utils/object/count-changed.ts","../../../projects/matez/src/lib/utils/enum/get-enum-keys.ts","../../../projects/matez/src/lib/utils/clean/clean.ts","../../../projects/matez/src/lib/utils/compare/compare-different-types.ts","../../../projects/matez/src/lib/utils/import/get-import-value.ts","../../../projects/matez/src/lib/utils/file/download-file.ts","../../../projects/matez/src/lib/utils/csv/create-csv.ts","../../../projects/matez/src/lib/utils/csv/utils/remove-line-breaks.ts","../../../projects/matez/src/lib/utils/csv/parse-csv.ts","../../../projects/matez/src/lib/utils/csv/utils/unify-csv-items.ts","../../../projects/matez/src/lib/utils/transform-attribute/array-attribute.ts","../../../projects/matez/src/lib/utils/decorators/debounce-time.ts","../../../projects/matez/src/lib/utils/create-storage-value.ts","../../../projects/matez/src/lib/utils/subscribe-return.ts","../../../projects/matez/src/lib/utils/observable-resource/observable-resource.ts","../../../projects/matez/src/lib/utils/observable-resource/paged-observable-resource.ts","../../../projects/matez/src/lib/utils/fetch-all.ts","../../../projects/matez/src/lib/components/input-field/input-field.component.ts","../../../projects/matez/src/lib/components/input-field/input-field.component.html","../../../projects/matez/src/lib/components/input-field/input-field.module.ts","../../../projects/matez/src/lib/components/tag/tag.component.ts","../../../projects/matez/src/lib/components/tag/tag.component.html","../../../projects/matez/src/lib/components/tag/tag.module.ts","../../../projects/matez/src/lib/components/table/utils/normalize-string.ts","../../../projects/matez/src/lib/directives/highlight.directive.ts","../../../projects/matez/src/lib/components/value/components/menu-value.component.ts","../../../projects/matez/src/lib/components/value/components/toggle-value.component.ts","../../../projects/matez/src/lib/components/value/utils/currency-amount-value-to-string.ts","../../../projects/matez/src/lib/components/value/utils/datetime-value-to-string.ts","../../../projects/matez/src/lib/components/value/utils/unknown-to-string.ts","../../../projects/matez/src/lib/components/value/utils/value-to-string.ts","../../../projects/matez/src/lib/components/value/value.component.ts","../../../projects/matez/src/lib/components/value/value.component.html","../../../projects/matez/src/lib/components/value/components/value-list.component.ts","../../../projects/matez/src/lib/components/table/utils/create-unique-column-def.ts","../../../projects/matez/src/lib/components/table/consts.ts","../../../projects/matez/src/lib/components/table/types/column.ts","../../../projects/matez/src/lib/components/table/utils/filter-sort.ts","../../../projects/matez/src/lib/components/table/tree-data/tree-data-item-to-inline-data-item.ts","../../../projects/matez/src/lib/components/table/utils/cached-head-map.ts","../../../projects/matez/src/lib/components/table/utils/table-data-source.ts","../../../projects/matez/src/lib/components/table/utils/table-to-csv-object.ts","../../../projects/matez/src/lib/components/table/utils/to-columns-data.ts","../../../projects/matez/src/lib/components/table/components/no-records.component.ts","../../../projects/matez/src/lib/components/table/utils/create-intersection-observer.ts","../../../projects/matez/src/lib/components/table/components/infinity-scroll.directive.ts","../../../projects/matez/src/lib/components/table/components/base-column.component.ts","../../../projects/matez/src/lib/components/table/components/select-column.component.ts","../../../projects/matez/src/lib/components/table/components/dnd-column.component.ts","../../../projects/matez/src/lib/components/table/components/table-info-bar/table-info-bar.component.ts","../../../projects/matez/src/lib/components/table/components/table-info-bar/table-info-bar.component.html","../../../projects/matez/src/lib/components/table/components/table-actions.component.ts","../../../projects/matez/src/lib/components/table/table.component.ts","../../../projects/matez/src/lib/components/table/table.component.html","../../../projects/matez/src/lib/components/table/components/customize/customize.component.ts","../../../projects/matez/src/lib/components/table/components/customize/customize.component.html","../../../projects/matez/src/lib/components/table/components/table-inputs.component.ts","../../../projects/matez/src/lib/components/table/components/table-progress-bar.component.ts","../../../projects/matez/src/lib/components/table/table.module.ts","../../../projects/matez/src/lib/components/table/utils/correct-priorities.ts","../../../projects/matez/src/lib/components/table/utils/create-column.ts","../../../projects/matez/src/lib/components/table/presets/create-menu-column.ts","../../../projects/matez/src/lib/components/table/table-resource.component.ts","../../../projects/matez/src/lib/components/confirm-dialog/confirm-dialog.component.ts","../../../projects/matez/src/lib/components/confirm-dialog/confirm-dialog.component.html","../../../projects/matez/src/lib/components/confirm-dialog/confirm-dialog.module.ts","../../../projects/matez/src/lib/components/filters/components/filters-dialog/filters-dialog.component.ts","../../../projects/matez/src/lib/components/filters/components/filters-dialog/filters-dialog.component.html","../../../projects/matez/src/lib/components/filters/components/main-filters/main-filters.directive.ts","../../../projects/matez/src/lib/components/filters/components/other-filters/other-filters.directive.ts","../../../projects/matez/src/lib/components/filters/filters.component.ts","../../../projects/matez/src/lib/components/filters/filters.component.html","../../../projects/matez/src/lib/components/filters/components/more-filters-button/more-filters-button.component.ts","../../../projects/matez/src/lib/components/filters/components/more-filters-button/more-filters-button.component.html","../../../projects/matez/src/lib/components/filters/filters.module.ts","../../../projects/matez/src/lib/components/date-range-field/date-range-field.component.ts","../../../projects/matez/src/lib/components/date-range-field/date-range-field.component.html","../../../projects/matez/src/lib/components/date-range-field/date-range-field.module.ts","../../../projects/matez/src/lib/components/date-range-field/utils/is-equal-date-range.ts","../../../projects/matez/src/lib/components/date-range-field/utils/create-date-range-to-today.ts","../../../projects/matez/src/lib/components/number-range-field/number-range-field.component.ts","../../../projects/matez/src/lib/components/number-range-field/number-range-field.component.html","../../../projects/matez/src/lib/components/number-range-field/number-range-field.module.ts","../../../projects/matez/src/lib/components/list-field/list-field.component.ts","../../../projects/matez/src/lib/components/list-field/list-field.component.html","../../../projects/matez/src/lib/components/list-field/list-field.module.ts","../../../projects/matez/src/lib/components/error-page/error-page.component.ts","../../../projects/matez/src/lib/components/error-page/error-page.component.html","../../../projects/matez/src/lib/components/error-page/error-page-routing.module.ts","../../../projects/matez/src/lib/components/error-page/error-page.module.ts","../../../projects/matez/src/lib/components/select-autocomplete/utils/search-options.ts","../../../projects/matez/src/lib/components/select-autocomplete/utils/find-option-by-value.ts","../../../projects/matez/src/lib/components/select-autocomplete/utils/get-hint-text.ts","../../../projects/matez/src/lib/components/select-autocomplete/select-field/select-field.component.ts","../../../projects/matez/src/lib/components/select-autocomplete/select-field/select-field.component.html","../../../projects/matez/src/lib/components/select-autocomplete/select-field/select-field.module.ts","../../../projects/matez/src/lib/components/select-autocomplete/autocomplete-field/autocomplete-field.component.ts","../../../projects/matez/src/lib/components/select-autocomplete/autocomplete-field/autocomplete-field.component.html","../../../projects/matez/src/lib/components/select-autocomplete/autocomplete-field/autocomplete-field.module.ts","../../../projects/matez/src/lib/services/config/config.service.ts","../../../projects/matez/src/lib/services/log/notify-log.service.ts","../../../projects/matez/src/lib/services/log/log.module.ts","../../../projects/matez/src/lib/services/fetch-superclass/fetch-superclass.ts","../../../projects/matez/src/lib/services/query-params/utils/date-query-params-serializers.ts","../../../projects/matez/src/lib/services/query-params/utils/query-params-serializers.ts","../../../projects/matez/src/lib/services/query-params/utils/serialize-query-params.ts","../../../projects/matez/src/lib/services/query-params/utils/deserialize-query-param.ts","../../../projects/matez/src/lib/services/query-params/query-params.service.ts","../../../projects/matez/src/lib/services/query-params/query-params.module.ts","../../../projects/matez/src/lib/services/url.service.ts","../../../projects/matez/src/lib/services/toast/toast.component.ts","../../../projects/matez/src/lib/services/toast/toast.component.html","../../../projects/matez/src/lib/services/toast/toast.service.ts","../../../projects/matez/src/lib/services/theme/theme.service.ts","../../../projects/matez/src/lib/services/app-mode/app-mode.service.ts","../../../projects/matez/src/lib/components/file-upload/file-upload.component.ts","../../../projects/matez/src/lib/components/file-upload/file-upload.component.html","../../../projects/matez/src/lib/components/file-upload/file-upload.module.ts","../../../projects/matez/src/lib/components/file-upload/utils/load-file-content.ts","../../../projects/matez/src/lib/components/datetime-field/datetime-field.component.ts","../../../projects/matez/src/lib/components/datetime-field/datetime-field.component.html","../../../projects/matez/src/lib/components/datetime-field/datetime-field.module.ts","../../../projects/matez/src/lib/components/switch-button/switch-button.component.ts","../../../projects/matez/src/lib/components/switch-button/switch-button.component.html","../../../projects/matez/src/lib/components/switch-button/switch-button.module.ts","../../../projects/matez/src/lib/components/nav/nav.component.ts","../../../projects/matez/src/lib/components/nav/nav.component.html","../../../projects/matez/src/lib/components/cmdk/cmdk.component.ts","../../../projects/matez/src/lib/components/cmdk/cmdk.component.html","../../../projects/matez/src/lib/components/cmdk/cmdk.service.ts","../../../projects/matez/src/lib/components/cmdk/components/cmdk-button.component.ts","../../../projects/matez/src/lib/components/cmdk/cmdk.module.ts","../../../projects/matez/src/lib/pipes/amount-currency.pipe.ts","../../../projects/matez/src/lib/pipes/enum-key-values.pipe.ts","../../../projects/matez/src/lib/pipes/enum-key.pipe.ts","../../../projects/matez/src/lib/pipes/enum-keys.pipe.ts","../../../projects/matez/src/lib/pipes/humanized-duration.pipe.ts","../../../projects/matez/src/lib/pipes/inline-json.pipe.ts","../../../projects/matez/src/lib/pipes/select.pipe.ts","../../../projects/matez/src/lib/pipes/pipes.module.ts","../../../projects/matez/src/public-api.ts","../../../projects/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=\"font-normal text-2xl\">{{ 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 { ValuesType } from 'utility-types';\n\nimport { InjectionToken } from '@angular/core';\nimport { MatDialogConfig } from '@angular/material/dialog';\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 { Injectable, inject } 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 private dialog = inject(MatDialog);\n private readonly dialogConfig =\n inject<DialogConfig>(DIALOG_CONFIG, { optional: true }) || DEFAULT_DIALOG_CONFIG;\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 { random } from 'lodash-es';\n\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, input, numberAttribute } from '@angular/core';\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() || '&nbsp;'.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\nimport { WritableSignal, isSignal } from '@angular/core';\n\nexport function progressTo<T>(\n subjectSignal:\n | BehaviorSubject<number>\n | WritableSignal<number>\n | (() => BehaviorSubject<number> | WritableSignal<number>),\n): MonoTypeOperatorFunction<T> {\n const getSubjectSignal = () =>\n isObservable(subjectSignal) || isSignal(subjectSignal) ? subjectSignal : subjectSignal();\n return (src$) =>\n defer(() => {\n const subSigRes = getSubjectSignal();\n if (isSignal(subSigRes)) {\n subSigRes.update((prev) => prev + 1);\n return src$.pipe(finalize(() => subSigRes.update((prev) => prev - 1)));\n }\n subSigRes.next(subSigRes.getValue() + 1);\n return src$.pipe(finalize(() => subSigRes.next(subSigRes.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, from, isObservable } from 'rxjs';\n\nimport { isSignal } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\n\nimport { Async } from './is-async';\n\nexport function fromAsync<T>(asyncValue: Async<T>): Observable<T> {\n return isSignal(asyncValue)\n ? toObservable(asyncValue)\n : isObservable(asyncValue)\n ? asyncValue\n : from(asyncValue);\n}\n","import { Observable, isObservable } from 'rxjs';\nimport { isPromise } from 'rxjs/internal/util/isPromise';\n\nimport { Signal, isSignal } from '@angular/core';\n\nexport type Async<T> = Observable<T> | Promise<T> | Signal<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) || isSignal(value);\n}\n","import { Observable, of } from 'rxjs';\n\nimport { fromAsync } from './from-async';\nimport { PossiblyAsync, isAsync } from './is-async';\n\nexport function getPossiblyAsyncObservable<T>(possiblyAsync: PossiblyAsync<T>): Observable<T> {\n return isAsync(possiblyAsync) ? fromAsync(possiblyAsync) : of(possiblyAsync);\n}\n","import { Observable, ReplaySubject, combineLatest, defer, of, switchMap } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectorRef, Injectable, OnDestroy, inject } from '@angular/core';\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 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 cdr = inject(ChangeDetectorRef);\n private asyncPipe = new AsyncPipe(this.cdr);\n private args$ = new ReplaySubject<[PossiblyAsync<TValue>, ...TParams]>(1);\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, of } from 'rxjs';\n\nimport { getPossiblyAsyncObservable } from './get-possibly-async-observable';\nimport { PossiblyAsyncFn, PossiblyAsyncValue } from './types/possibly-async-value';\n\nexport function getPossiblyAsyncValue<T, P extends unknown[] = [], D = undefined>(\n getValue: PossiblyAsyncValue<T, P> | D,\n args: P = [] as never as P,\n defaultValue: T = undefined as T,\n isDefaultValue: (v: T | D) => boolean = ((v: T | D) => v === undefined) as (\n v: T | D,\n ) => boolean,\n): Observable<T> {\n if (isDefaultValue(getValue as D)) {\n return of(defaultValue as T);\n }\n if (typeof getValue === 'function') {\n return getPossiblyAsyncObservable((getValue as PossiblyAsyncFn<T, P>)(...args));\n }\n return getPossiblyAsyncObservable(getValue) as never as Observable<T>;\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) => {\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 { MonoTypeOperatorFunction, tap } from 'rxjs';\n\nexport function tapLog<T>(message = `Log`): MonoTypeOperatorFunction<T> {\n return (source) => {\n return source.pipe(tap((value) => console.log(`${message}:`, value)));\n };\n}\n","export function filterOperator<T>(...operators: [T | undefined]) {\n return operators.filter(Boolean) as [T];\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 { Observable } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\n\nimport { AbstractControl, FormControlState } from '@angular/forms';\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 { EMPTY, Observable, concat, take, timer } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { 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';\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 { concat, timer } from 'rxjs';\n\nimport { 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';\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 { Directive } from '@angular/core';\nimport { FormArray, FormControl } from '@angular/forms';\n\nimport { hasControls } from '../has-controls';\n\nimport { FormGroupSuperclass } from './form-group-superclass.directive';\n\n@Directive()\nexport abstract class FormArraySuperclass<\n OuterType extends unknown[],\n InnerType = OuterType,\n> extends FormGroupSuperclass<OuterType, InnerType> {\n protected override outerToInnerValue(outer: OuterType): InnerType {\n if (hasControls(this.control)) {\n if (!outer) {\n return this.emptyValue;\n }\n if (outer?.length !== (this.control as FormArray).controls.length) {\n (this.control as FormArray).clear({ emitEvent: false });\n outer.forEach((v) => (this.control as FormArray).push(new FormControl(v)));\n return outer as never;\n }\n }\n return outer as never;\n }\n}\n","import isNil from 'lodash-es/isNil';\n\nexport function isEmptyPrimitive(value: unknown): boolean {\n return isNil(value) || value === '';\n}\n","import omitBy from 'lodash-es/omitBy';\nimport { filter, map } from 'rxjs/operators';\n\nimport { AbstractControl } from '@angular/forms';\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 unknown[] = [],\n> = string | ((obj: TObject, ...params: TParams) => Observable<TResult> | TResult);\n\nexport function select<TObject extends object, TResult, TParams extends 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 readonly 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 {\n Observable,\n distinctUntilChanged,\n filter,\n fromEvent,\n map,\n shareReplay,\n startWith,\n} from 'rxjs';\n\nimport { DestroyRef, Injector, Signal, inject } from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\n\ninterface StorageValueOptions<T> {\n serialize?: (v: T) => string | null;\n deserialize: (v: string | null) => T;\n changed$?: Observable<T>;\n}\n\ninterface StorageValue<T> {\n get: () => T;\n set: (value: T) => void;\n value$: Observable<T>;\n value: Signal<T | undefined>;\n}\n\nconst DEFAULT_SERIALIZE = (v: unknown) => (v === null ? null : String(v));\n\nexport function createStorageValue<T>(\n key: string,\n { serialize = DEFAULT_SERIALIZE, deserialize, changed$ }: StorageValueOptions<T>,\n): StorageValue<T> {\n const injector = inject(Injector);\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 const value: StorageValue<T> = {\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 if (changed$) {\n changed$.pipe(takeUntilDestroyed(inject(DestroyRef))).subscribe((v) => {\n value.set(v);\n });\n }\n\n return value;\n}\n","import { Observable, Observer } from 'rxjs';\n\nexport function subscribeReturn<T>(\n observable$: Observable<T>,\n subscription: Partial<Observer<T>> = {},\n) {\n const externalSubscription: Partial<Observer<T>> = {};\n observable$.subscribe({\n next: (value) => {\n if (subscription.next) {\n subscription.next(value);\n }\n if (externalSubscription.next) {\n externalSubscription.next(value);\n }\n },\n error: (err) => {\n if (subscription.error) {\n subscription.error(err);\n }\n if (externalSubscription.error) {\n externalSubscription.error(err);\n }\n },\n complete: () => {\n if (subscription.complete) {\n subscription.complete();\n }\n if (externalSubscription.complete) {\n externalSubscription.complete();\n }\n },\n });\n return {\n next: (nextFn: Observer<T>['next']) => {\n externalSubscription.next = nextFn;\n },\n error: (errorFn: Observer<T>['error']) => {\n externalSubscription.error = errorFn;\n },\n complete: (completeFn: Observer<T>['complete']) => {\n externalSubscription.complete = completeFn;\n },\n };\n}\n","import autoBind from 'auto-bind';\nimport { BehaviorSubject, Observable, Subject, combineLatest, merge } from 'rxjs';\nimport { map, mergeScan, mergeWith, shareReplay, skipWhile, switchMap, take } from 'rxjs/operators';\n\nimport { DestroyRef, Injector, Signal, inject } from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\n\nimport { PossiblyAsync, getPossiblyAsyncObservable } from '../async';\nimport { filterOperator, progressTo } from '../operators';\n\nexport type ObservableResourceActionType = string;\n\nconst PARAMS_ACTION = 'params' satisfies ObservableResourceActionType;\n\nexport type ObservableResourceActions = typeof PARAMS_ACTION;\n\nexport type ObservableResourceOptions<\n TAccResult,\n TParams = void,\n TResult = TAccResult,\n TAction = ObservableResourceActionType,\n> = {\n loader: (params: TParams, acc: TAccResult, action: TAction) => Observable<TAccResult>;\n map?: (value: TAccResult) => PossiblyAsync<TResult>;\n seed?: TAccResult;\n} & (TParams extends undefined | void\n ? {\n params?: PossiblyAsync<TParams>;\n }\n : {\n params: PossiblyAsync<TParams>;\n });\n\nexport class ObservableResource<\n TAccResult,\n TParams = void,\n TResult = TAccResult,\n TAction = ObservableResourceActionType,\n> {\n protected internalOptions!: ObservableResourceOptions<TAccResult, TParams, TResult, TAction>;\n\n protected dr = inject(DestroyRef);\n protected injector = inject(Injector);\n\n protected progress$ = new BehaviorSubject<number>(0);\n isLoading$ = this.progress$.pipe(map(Boolean));\n isLoading = toSignal(this.isLoading$, { initialValue: false });\n\n protected action$ = new Subject<TAction>();\n protected mergedParams$ = new Subject<TParams>();\n params$!: Observable<TParams>;\n params!: Signal<TParams | undefined>;\n\n protected accValue$!: Observable<TAccResult>;\n protected mergedValue$ = new Subject<TResult>();\n value$!: Observable<TResult>;\n value!: Signal<TResult | undefined>;\n\n constructor(options?: ObservableResourceOptions<TAccResult, TParams, TResult, TAction>) {\n if (options) this.init(options);\n }\n\n protected init(options: ObservableResourceOptions<TAccResult, TParams, TResult, TAction>) {\n // needed for map method\n autoBind(this);\n\n this.internalOptions = options;\n\n this.params$ = this.createParams().pipe(takeUntilDestroyed(this.dr), shareReplay(1));\n this.params = toSignal(this.params$);\n\n this.accValue$ = this.createAccValue().pipe(takeUntilDestroyed(this.dr), shareReplay(1));\n this.value$ = this.createValue().pipe(takeUntilDestroyed(this.dr), shareReplay(1));\n this.value = toSignal(this.value$);\n }\n\n protected createParams() {\n return merge(\n getPossiblyAsyncObservable<TParams>(this.internalOptions.params),\n this.mergedParams$,\n );\n }\n\n protected createAccValue() {\n return merge(\n this.params$.pipe(map((params) => ({ action: PARAMS_ACTION, params }))),\n this.action$.pipe(map((action) => ({ action }))),\n ).pipe(\n mergeScan<\n { action: TAction; params?: TParams },\n { accResult: TAccResult; params?: TParams }\n >(\n (acc, actionParams) => {\n const params =\n actionParams.action === PARAMS_ACTION ? actionParams.params : acc.params;\n return this.internalOptions\n .loader(params, acc.accResult, actionParams.action)\n .pipe(\n map((accResult) => ({ accResult, params })),\n progressTo(this.progress$),\n );\n },\n { accResult: this.internalOptions.seed },\n 1,\n ),\n map(({ accResult }) => accResult),\n );\n }\n\n protected createValue() {\n const mapFn = this.internalOptions.map;\n return this.accValue$.pipe(\n ...filterOperator(\n mapFn && switchMap((v: TAccResult) => getPossiblyAsyncObservable(mapFn(v))),\n ),\n mergeWith(this.mergedValue$),\n );\n }\n\n set(value: TResult) {\n this.mergedValue$.next(value);\n }\n\n getFirstValue(): Observable<TResult> {\n return combineLatest([this.value$, this.isLoading$]).pipe(\n skipWhile(([_, isLoading]) => isLoading),\n map(([value]) => value),\n take(1),\n );\n }\n\n setParams(paramsOrParamsFn: TParams | ((prevParams: TParams) => TParams)) {\n const newParams =\n typeof paramsOrParamsFn === 'function'\n ? (paramsOrParamsFn as (prevParams: TParams) => TParams)(this.params() as TParams)\n : (paramsOrParamsFn as TParams);\n this.mergedParams$.next(newParams);\n }\n\n reload() {\n this.setParams((p) => p);\n }\n\n protected action(action: TAction) {\n this.action$.next(action);\n }\n\n map<TNewResult>(\n mapFn: (value: TResult) => PossiblyAsync<TNewResult>,\n sourceValue$ = this.value$,\n ): ObservableResource<TAccResult, TParams, TNewResult> {\n const value$ = sourceValue$.pipe(\n switchMap((value) => getPossiblyAsyncObservable(mapFn(value))),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n return Object.assign({}, this, {\n value$,\n value: toSignal(value$, { injector: this.injector }),\n map: (fn: (value: TResult) => PossiblyAsync<TNewResult>) =>\n this.map(fn, value$ as never),\n }) as never;\n }\n}\n\nexport function observableResource<\n TAccResult,\n TParams = void,\n TResult = TAccResult,\n TAction = ObservableResourceActionType,\n>(options: ObservableResourceOptions<TAccResult, TParams, TResult, TAction>) {\n return new ObservableResource<TAccResult, TParams, TResult, TAction>(options);\n}\n","import { EMPTY, Observable, map } from 'rxjs';\n\nimport { Signal } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\nimport {\n ObservableResource,\n ObservableResourceActionType,\n ObservableResourceActions,\n ObservableResourceOptions,\n} from './observable-resource';\n\nconst MORE_ACTION = 'more' satisfies ObservableResourceActionType;\nconst UPDATE_PAGED_OPTIONS_ACTION = 'update-options' satisfies ObservableResourceActionType;\ntype PagedObservableResourceActions =\n | ObservableResourceActions\n | typeof MORE_ACTION\n | typeof UPDATE_PAGED_OPTIONS_ACTION;\n\nexport interface PagedObservableResourceInternalOptions {\n size: number;\n}\n\nexport interface PagedObservableResourceAccResult<TItem> {\n result: TItem[];\n continuationToken?: string;\n}\n\nexport type PagedObservableResourceLoaderOptions = PagedObservableResourceInternalOptions & {\n continuationToken?: string;\n};\n\nexport type PagedObservableResourceOptions<TItem, TParams = void> = {\n loader: (\n params: TParams,\n options: PagedObservableResourceLoaderOptions,\n ) => Observable<PagedObservableResourceAccResult<TItem>>;\n} & Partial<PagedObservableResourceInternalOptions> &\n Omit<\n ObservableResourceOptions<\n PagedObservableResourceAccResult<TItem>,\n TParams,\n TItem[],\n PagedObservableResourceActions\n >,\n 'loader'\n >;\nexport class PagedObservableResource<TItem, TParams = void> extends ObservableResource<\n PagedObservableResourceAccResult<TItem>,\n TParams,\n TItem[],\n PagedObservableResourceActions\n> {\n hasMore$!: Observable<boolean>;\n hasMore!: Signal<boolean>;\n\n // TODO: deprecated, use value$ / value signal\n result$: Observable<TItem[]>;\n\n protected pagedOptions!: PagedObservableResourceInternalOptions;\n\n constructor(options?: PagedObservableResourceOptions<TItem, TParams>) {\n super();\n if (options) this.initPaged(options);\n }\n\n protected initPaged({\n loader,\n size,\n ...options\n }: PagedObservableResourceOptions<TItem, TParams>) {\n // TODO: fix types\n super.init({\n params: EMPTY,\n ...options,\n loader: (params, acc, action) => {\n return loader(\n params,\n action === 'more'\n ? { ...this.pagedOptions, continuationToken: acc.continuationToken }\n : this.pagedOptions,\n ).pipe(\n map((result) => ({\n ...result,\n result:\n action === 'more' ? [...acc.result, ...result.result] : result.result,\n })),\n );\n },\n map: (value) => value.result,\n } as never);\n this.pagedOptions = { size: size || 20 };\n this.hasMore$ = this.accValue$.pipe(map((value) => !!value.continuationToken));\n this.hasMore = toSignal(this.hasMore$, { initialValue: false });\n this.result$ = this.value$;\n }\n\n more() {\n this.action(MORE_ACTION);\n }\n\n setOptions(options: PagedObservableResourceInternalOptions) {\n this.pagedOptions = options;\n this.action(UPDATE_PAGED_OPTIONS_ACTION);\n }\n\n // TODO: deprecated\n load(params: TParams, options?: PagedObservableResourceInternalOptions) {\n this.pagedOptions = options || this.pagedOptions;\n this.setParams(params);\n }\n}\n\nexport function pagedObservableResource<TItem, TParams = void>(\n options: PagedObservableResourceOptions<TItem, TParams>,\n) {\n return new PagedObservableResource<TItem, TParams>(options);\n}\n\nexport abstract class PagedObservableResourceSuperclass<\n TItem,\n TParams = void,\n> extends PagedObservableResource<TItem, TParams> {\n options: Omit<PagedObservableResourceOptions<TItem, TParams>, 'loader'> = {} as never;\n\n abstract loader(\n ...args: Parameters<PagedObservableResourceOptions<TItem, TParams>['loader']>\n ): ReturnType<PagedObservableResourceOptions<TItem, TParams>['loader']>;\n\n constructor() {\n super();\n // TODO: fix types\n this.initPaged({\n ...this.options,\n loader: (params, options) =>\n (this.loader as never as (...args: unknown[]) => unknown)(params, options),\n } as never);\n }\n}\n","import { Observable, map, of, switchMap } from 'rxjs';\n\nexport function fetchAll<T>(\n loadFn: (\n continuationToken?: string,\n ) => Observable<{ result: T[]; continuation_token?: string }>,\n continuationToken?: string,\n): Observable<T[]> {\n return loadFn(continuationToken).pipe(\n switchMap((resp) => {\n if (resp.continuation_token) {\n return fetchAll(loadFn, resp.continuation_token).pipe(\n map((nextData) => [...resp.result, ...nextData]),\n );\n }\n return of(resp.result);\n }),\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;\n @Input() size?: 'small' | '';\n cleanButton = input(false, { transform: booleanAttribute });\n icon = input<string>();\n hintText = 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 @if (hintText()) {\n <mat-hint>{{ hintText() }}</mat-hint>\n }\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 { combineLatest } from 'rxjs';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\n\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n Injector,\n OnInit,\n Renderer2,\n inject,\n input,\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\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 private el = inject(ElementRef);\n private renderer = inject(Renderer2);\n private dr = inject(DestroyRef);\n private injector = inject(Injector);\n vHighlightText = input('', { transform: (v) => String(v || '') });\n vHighlightSearch = input('', { transform: (v) => String(v || '') });\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, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(/\"/g, '&quot;')\n .replace(/'/g, '&#39;');\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 { Observable, combineLatest, isObservable, of, switchMap } from 'rxjs';\nimport { filter, first, map, shareReplay } from 'rxjs/operators';\n\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Injector,\n Input,\n booleanAttribute,\n inject,\n input,\n model,\n runInInjectionContext,\n} from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { Router } from '@angular/router';\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 TagModule,\n MatTooltip,\n MenuValueComponent,\n ContentLoadingComponent,\n HighlightDirective,\n ToggleValueComponent,\n MatButtonModule,\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 private injector = inject(Injector);\n private router = inject(Router);\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 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 class=\"flex gap-1 items-center\">\n @if (v.prefix) {\n <button\n class=\"action ml-[-16px]\"\n mat-icon-button\n (click)=\"v.prefix.click ? v.prefix.click($event) : undefined\"\n >\n <mat-icon>{{ v.prefix.icon }}</mat-icon>\n </button>\n }\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\n [matTooltip]=\"v.tooltip\"\n class=\"tooltip\"\n matTooltipClass=\"tooltip-content\"\n >\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 (v.error) {\n <mat-icon [matTooltip]=\"v.error | json\">error</mat-icon>\n } @else if (emptySymbol) {\n <span class=\"text-[var(--mat-sys-outline)]\">{{\n emptySymbol\n }}</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 text-[var(--mat-sys-outline)] text-xs\"\n vHighlight\n ></div>\n }\n </div>\n @if (v.postfix) {\n <button\n class=\"action ml-auto mr-[-16px]\"\n mat-icon-button\n (click)=\"v.postfix.click ? v.postfix.click($event) : undefined\"\n >\n <mat-icon>{{ v.postfix.icon }}</mat-icon>\n </button>\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 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 unknown[] = []> = (...args: P) => R;\nexport type PossiblyFn<R, P extends 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 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 = 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 { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { Injector, inject, runInInjectionContext } from '@angular/core';\nimport { Sort } from '@angular/material/sort';\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 { BehaviorSubject, Observable, switchMap } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\n\nimport { 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';\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 (const values of res) {\n values.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 { catchError, 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 interface 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 catchError((error) => of({ error })),\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 { filter } from 'rxjs/operators';\n\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n OnInit,\n booleanAttribute,\n inject,\n input,\n output,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { createIntersectionObserver } from '../utils/create-intersection-observer';\n\n@Directive({\n selector: '[vInfinityScroll]',\n standalone: true,\n})\nexport class InfinityScrollDirective implements OnInit {\n private elementRef = inject(ElementRef);\n private dr = inject(DestroyRef);\n vInfinityScroll = input(false, { transform: booleanAttribute });\n vInfinityScrollMore = output();\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 { combineLatest } from 'rxjs';\nimport { map, shareReplay, startWith } from 'rxjs/operators';\n\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n OnChanges,\n OnDestroy,\n OnInit,\n inject,\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';\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 private dr = inject(DestroyRef);\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 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 { 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: [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 TemplateRef,\n booleanAttribute,\n computed,\n inject,\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 private dr = inject(DestroyRef);\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 tableInputsContent = input<TemplateRef<unknown>>();\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 filterChange = output<string>();\n filterControl = new FormControl('', { nonNullable: true });\n\n standaloneFilter = input(false, { transform: booleanAttribute });\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 ngOnInit() {\n this.filterControl.valueChanges.pipe(takeUntilDestroyed(this.dr)).subscribe((v) => {\n this.filterChange.emit(v);\n });\n if (this.filterControl.value !== this.filter()) {\n this.filterControl.setValue(this.filter(), { emitEvent: false });\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 <ng-content *ngTemplateOutlet=\"tableInputsContent()\"></ng-content>\n <v-input-field [formControl]=\"filterControl\" cleanButton label=\"Search\"></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 select=\"v-table-actions\"></ng-content>\n </v-actions>\n </v-actions>\n</div>\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 {\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 { CdkDragDrop } from '@angular/cdk/drag-drop';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n Injector,\n OnInit,\n TemplateRef,\n ViewChild,\n booleanAttribute,\n computed,\n inject,\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';\n\nimport { ArrayAttributeTransform, arrayAttribute, createCsv, downloadFile } from '../../utils';\n\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 private dr = inject(DestroyRef);\n private injector = inject(Injector);\n private cdr = inject(ChangeDetectorRef);\n\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 // Contents\n tableInputsContent = input<TemplateRef<unknown>>();\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(\n debounceTime(100),\n toObservableColumnsData,\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\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 @ViewChild(MatRow, { static: false }) tableRow!: ElementRef;\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 [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 [tableInputsContent]=\"tableInputsContent()\"\n (downloadCsv)=\"downloadCsv()\"\n (load)=\"load()\"\n (preload)=\"preload()\"\n >\n <v-table-actions>\n <ng-content select=\"v-table-actions\"></ng-content>\n </v-table-actions>\n </v-table-info-bar>\n <mat-card #scrollViewport appearance=\"outlined\" 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-inputs',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TableInputsComponent {}\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 { combineLatest, switchMap } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { Injector, inject, runInInjectionContext } from '@angular/core';\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 sort: false,\n },\n);\n","import { Component, TemplateRef, booleanAttribute, computed, input, model } from '@angular/core';\n\nimport { ObservableResource, PagedObservableResource } from '../../utils';\n\nimport { TableModule } from './table.module';\nimport { Column, UpdateOptions } from './types';\n\n@Component({\n selector: 'v-table-resource',\n template: `\n <v-table\n [(filter)]=\"filter\"\n [columns]=\"columns()\"\n [data]=\"resource().value()\"\n [externalFilter]=\"externalFilter()\"\n [hasMore]=\"hasMore()\"\n [noDownload]=\"noDownload()\"\n [progress]=\"resource().isLoading()\"\n [standaloneFilter]=\"standaloneFilter()\"\n [tableInputsContent]=\"tableInputsContent()\"\n (more)=\"more()\"\n (reload)=\"resource().reload()\"\n (update)=\"update($event)\"\n >\n <v-table-actions><ng-content select=\"v-table-actions\"></ng-content></v-table-actions>\n </v-table>\n `,\n imports: [TableModule],\n})\nexport class TableResourceComponent<T extends object, C extends object> {\n resource = input<\n PagedObservableResource<T, unknown> | ObservableResource<unknown, unknown, T[]>\n >();\n columns = input<Column<T, C>[]>([]);\n filter = model('');\n externalFilter = input(false, { transform: booleanAttribute });\n noDownload = input(false, { transform: booleanAttribute });\n standaloneFilter = input(false, { transform: booleanAttribute });\n tableInputsContent = input<TemplateRef<unknown>>();\n\n hasMore = computed(() => {\n const res = this.resource();\n return 'hasMore' in res ? res.hasMore() : false;\n });\n\n more() {\n const res = this.resource();\n if ('more' in res) res.more();\n }\n\n update(options: UpdateOptions) {\n const res = this.resource();\n if ('setOptions' in res) res.setOptions(options);\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, inject } from '@angular/core';\n\n@Directive({\n selector: '[vMainFilters]',\n standalone: false,\n})\nexport class MainFiltersDirective {\n public templateRef = inject<TemplateRef<unknown>>(TemplateRef<unknown>);\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[vOtherFilters]',\n standalone: false,\n})\nexport class OtherFiltersDirective {\n public templateRef = inject<TemplateRef<unknown>>(TemplateRef<unknown>);\n}\n","import { BehaviorSubject, combineLatest } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { 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 inject,\n signal,\n} from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\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 private dialog = inject(DialogService);\n private breakpointObserver = inject(BreakpointObserver);\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 open() {\n this.dialog.open(FiltersDialogComponent, { filters: this });\n }\n}\n","<div #content [ngClass]=\"['v-filters-cols-' + (repeat$ | async), 'filters']\">\n <ng-container *ngTemplateOutlet=\"mainFiltersTemplate\"></ng-container>\n</div>\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 { 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 MatButtonModule,\n MatIconModule,\n DialogModule,\n LayoutModule,\n ActionsModule,\n MatBadgeModule,\n ],\n})\nexport class FiltersModule {}\n","import { enGB } from 'date-fns/locale';\n\nimport { Component, Input, booleanAttribute, inject } 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';\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 private fb = inject(NonNullableFormBuilder);\n @Input({ transform: booleanAttribute }) required: boolean = false;\n\n control = this.fb.group<Partial<DateRange>>({\n start: undefined,\n end: undefined,\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, inject } from '@angular/core';\nimport { NonNullableFormBuilder } from '@angular/forms';\n\nimport { FormGroupSuperclass, createControlProviders } from '../../utils';\n\nexport interface 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 private fb = inject(NonNullableFormBuilder);\n @Input() label!: string;\n\n control = this.fb.group<NumberRange>({\n start: undefined,\n end: undefined,\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 { map, shareReplay } from 'rxjs/operators';\n\nimport { Component, Input } from '@angular/core';\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=\"text-[var(--mat-sys-outline)]\">{{\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=\"text-2xl font-normal title\">\n <mat-icon>error</mat-icon>\n <div>Page not found</div>\n </div>\n <h2 class=\"mat-headline-small text-[var(--mat-sys-outline)]\">\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 { first, timer } from 'rxjs';\n\nimport { Component, EventEmitter, Input, OnInit, 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>\n extends FormControlSuperclass<T[]>\n implements OnInit\n{\n @Input() options: Option<T>[] = [];\n @Output() searchChange = new EventEmitter<string>();\n\n @Input() appearance!: MatFormFieldAppearance;\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 override ngOnInit() {\n super.ngOnInit();\n if (this.externalSearch) {\n timer(0)\n .pipe(first())\n .subscribe(() => {\n this.searchChange.emit(String(this.control.value));\n });\n }\n }\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 @if (multiple) {\n <mat-checkbox\n [ngModel]=\"item$.selected\"\n class=\"checkbox-option\"\n id=\"item-{{ index }}\"\n >\n {{ item.type | uppercase }}\n </mat-checkbox>\n } @else {\n {{ item.type | uppercase }}\n }\n </ng-template>\n <ng-template let-index=\"index\" let-item=\"item\" let-item$=\"item$\" ng-option-tmp>\n @if (multiple) {\n <mat-checkbox\n [ngModel]=\"item$.selected\"\n class=\"checkbox-option\"\n id=\"item-{{ index }}\"\n >\n <ng-container *ngTemplateOutlet=\"text\"></ng-container>\n </mat-checkbox>\n } @else {\n <ng-container *ngTemplateOutlet=\"text\"></ng-container>\n }\n <ng-template #text>\n <div class=\"label\">{{ item.label }}</div>\n @if (item.description) {\n <div class=\"description mat-label-medium text-[var(--mat-sys-outline)]\">\n {{ item.description }}\n </div>\n }\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 { BehaviorSubject, merge } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\n\nimport { Component, Input, OnChanges, booleanAttribute } from '@angular/core';\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 text-[var(--mat-sys-outline)]\"\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 { lastValueFrom } from 'rxjs';\n\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\n\n@Injectable()\nexport class ConfigServiceSuperclass<T> {\n private http = inject(HttpClient);\n config!: T;\n\n async init({ configUrl }: { configUrl: string }): Promise<void> {\n this.config = await lastValueFrom(this.http.get<T>(configUrl));\n }\n}\n","import { capitalize, isObject } from 'lodash-es';\nimport { Observer, first, timeout } from 'rxjs';\n\nimport { Injectable, InjectionToken, inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\n\nimport { PossiblyAsync, getPossiblyAsyncObservable } from '../../utils';\n\nimport { Operation } from './types/operation';\n\nexport interface LogError {\n name?: string;\n message?: string;\n details?: object;\n error?: unknown;\n noConsole?: boolean;\n}\n\ntype ErrorParser = (error: unknown) => LogError;\n\nexport const ERROR_PARSER = new InjectionToken<ErrorParser>('ErrorParser');\n\nconst DEFAULT_DURATION_MS = 3_000;\nconst DEFAULT_ERROR_DURATION_MS = 10_000;\nconst DEFAULT_TIMEOUT_MS = 10_000;\nconst DEFAULT_ERROR_PARSER: ErrorParser = (error: unknown) =>\n ({ ...(isObject(error) ? error : new Error(String(error))), error }) as LogError;\n\n@Injectable({ providedIn: 'root' })\nexport class NotifyLogService {\n private snackBar = inject(MatSnackBar);\n private parseError = inject(ERROR_PARSER, { optional: true }) || DEFAULT_ERROR_PARSER;\n\n success = (message: PossiblyAsync<string> = 'Completed successfully'): void => {\n this.notify(message);\n };\n\n error = (error: unknown, message?: PossiblyAsync<string>): void => {\n const parsedError = this.parseError(error);\n message = message || parsedError.message || parsedError.name || 'An error occurred';\n if (!parsedError.noConsole) {\n this.subscribeWithTimeout(message, (msg) => {\n console.warn(\n [\n `Caught error: ${msg}.`,\n parsedError.name,\n parsedError.message,\n parsedError.details,\n ].join('\\n'),\n parsedError.error,\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 { isEmpty, negate } from 'lodash-es';\n\nimport { Params } from '@angular/router';\n\nimport { 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\nexport function serializeQueryParams(\n params: object,\n filter: (param: unknown, key: string) => boolean = negate(isEmpty),\n serializers: Serializer[] = [],\n): Params {\n return Object.entries(params).reduce((acc, [k, v]) => {\n if (filter(v, k)) {\n acc[k] = serializeQueryParam(v, serializers);\n }\n return acc;\n }, {} as Params);\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 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 { Injectable, inject } from '@angular/core';\nimport { ActivatedRoute, Params, Router } from '@angular/router';\n\nimport { isEmpty } from '../../utils';\n\nimport { Serializer } from './types/serializer';\nimport { QUERY_PARAMS_SERIALIZERS, serializeQueryParams } from './utils';\nimport { deserializeQueryParam } from './utils/deserialize-query-param';\n\ninterface SerializeOptions {\n filter?: Parameters<typeof serializeQueryParams>[1];\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<\n P extends object = NonNullable<unknown>,\n> implements BaseQueryParams<P> {\n private router = inject(Router);\n private route = inject(ActivatedRoute);\n private readonly serializers =\n inject<Serializer[]>(QUERY_PARAMS_SERIALIZERS, {\n optional: true,\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 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 const replacedKeys = Object.keys(params);\n queryParams = Object.assign(\n {},\n options.isPatch &&\n Object.fromEntries(\n Object.entries(sourceParams.main).filter(\n ([k]) => !replacedKeys.includes(k),\n ),\n ),\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 serializeQueryParams(params, filter, this.serializers);\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) : ({} as TNamespaceParams);\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 { distinctUntilChanged, filter, map, shareReplay, startWith } from 'rxjs/operators';\n\nimport { Injectable, computed, inject } from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { Router } from '@angular/router';\n\nexport function getUrlPath(url: string): string[] {\n return url?.split('/')?.slice(1) ?? [];\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UrlService {\n private router = inject(Router);\n\n url$ = this.router.events.pipe(\n startWith(null),\n map(() => this.getUrl()),\n filter((url) => this.router.navigated || (!!url && url !== '/')),\n distinctUntilChanged(),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n url = toSignal(this.url$, { initialValue: this.getUrl() });\n path = computed(() => getUrlPath(this.url()));\n path$ = toObservable(this.path);\n\n private getUrl() {\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","import { Observable, combineLatest, map, of, shareReplay } from 'rxjs';\n\nimport { 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';\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 public data = inject<ToastData>(MAT_SNACK_BAR_DATA);\n private snackBarRef = inject<MatSnackBarRef<ToastComponent>>(MatSnackBarRef<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 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, inject } 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 private snackBar = inject(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 { fromEvent, map } from 'rxjs';\n\nimport { Injectable, computed, effect, signal } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\nexport type Theme = 'light' | 'dark' | 'system';\n\n@Injectable({ providedIn: 'root' })\nexport class ThemeService {\n private readonly storageKey = 'theme';\n private isSystemDark = toSignal(\n fromEvent<MediaQueryListEvent>(\n window.matchMedia('(prefers-color-scheme: dark)'),\n 'change',\n ).pipe(map((event) => event.matches)),\n { initialValue: window.matchMedia('(prefers-color-scheme: dark)').matches },\n );\n\n theme = signal<Theme>(this.getStoredTheme());\n isDark = computed(\n () => this.theme() === 'dark' || (this.theme() === 'system' && this.isSystemDark()),\n );\n\n constructor() {\n effect(() => this.updateTheme(this.isDark()));\n }\n\n setTheme(theme: Theme) {\n this.theme.set(theme);\n localStorage.setItem(this.storageKey, theme);\n }\n\n private getStoredTheme(): Theme {\n const stored = localStorage.getItem(this.storageKey) as Theme;\n return stored && ['light', 'dark', 'system'].includes(stored) ? stored : 'system';\n }\n\n private updateTheme(isDark = this.isDark()) {\n if (isDark) {\n document.body.classList.add('dark-mode');\n } else {\n document.body.classList.remove('dark-mode');\n }\n }\n}\n","import { Injectable, computed, effect, signal } from '@angular/core';\n\ntype AppMode = 'simple' | 'advanced';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AppModeService {\n mode = signal<AppMode>(this.getInitialMode());\n\n isSimple = computed(() => this.mode() === 'simple');\n isAdvanced = computed(() => this.mode() === 'advanced');\n\n constructor() {\n effect(() => {\n localStorage.setItem('app-mode', this.mode());\n });\n }\n\n private getInitialMode(): AppMode {\n const stored = localStorage.getItem('app-mode');\n return (stored as AppMode) || 'simple';\n }\n\n setMode(mode: AppMode): void {\n this.mode.set(mode);\n }\n}\n","import { Component, EventEmitter, Input, Output, inject } 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 private log = inject(NotifyLogService);\n @Input() label?: string;\n @Input() extensions: string[] = [];\n\n @Output() upload = new EventEmitter<File | null>();\n\n protected file?: File | null;\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 text-[var(--mat-sys-outline)] m-0 file-name\">\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 { format, isValid } from 'date-fns';\nimport { enGB } from 'date-fns/locale';\n\nimport { 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';\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 { lowerFirst } from 'lodash-es';\nimport isNil from 'lodash-es/isNil';\n\nimport { Component, Input, OnChanges } from '@angular/core';\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 { isNil } from 'lodash-es';\nimport {\n Observable,\n combineLatest,\n combineLatestWith,\n map,\n of,\n shareReplay,\n switchMap,\n} from 'rxjs';\nimport { Overwrite } from 'utility-types';\n\nimport { CommonModule } from '@angular/common';\nimport {\n Component,\n Injector,\n ViewEncapsulation,\n inject,\n input,\n runInInjectionContext,\n} from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport { RouterLink } from '@angular/router';\n\nimport { UrlService } from '../../services';\nimport { PossiblyAsyncValue, getPossiblyAsyncValue } from '../../utils';\n\nexport interface BaseLink {\n label?: string;\n url?: string;\n checkUrl?: string;\n icon?: string;\n children?: BaseLink[];\n isHidden?: boolean;\n}\n\nexport type Link = PossiblyAsyncValue<Overwrite<BaseLink, { children?: Link[] }>, [url: string]>;\n\nfunction isActiveLink(link: BaseLink, url: string): boolean {\n return (\n !isNil(url) &&\n (url.startsWith(link.url || '') || (!!link.checkUrl && url.startsWith(link.checkUrl || '')))\n );\n}\n\nfunction getActiveLinks(links: BaseLink[], url: string): BaseLink[] {\n return links.reduce((acc, link) => {\n if (isActiveLink(link, url)) {\n acc.push(link);\n }\n return acc.concat(getActiveLinks(link.children || [], url));\n }, [] as BaseLink[]);\n}\n\n@Component({\n selector: 'v-nav',\n styleUrls: ['./nav.component.scss'],\n templateUrl: './nav.component.html',\n imports: [RouterLink, MatButtonModule, MatDividerModule, CommonModule, MatIconModule],\n encapsulation: ViewEncapsulation.None,\n})\nexport class NavComponent {\n private urlService = inject(UrlService);\n private injector = inject(Injector);\n\n links = input<Link[]>([]);\n\n viewedLinks$ = combineLatest([toObservable(this.links), this.urlService.url$]).pipe(\n switchMap(([links, url]) => this.getViewedLinks(links, url)),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n activeLinks$ = this.viewedLinks$.pipe(\n combineLatestWith(this.urlService.url$),\n map(([links, url]) => getActiveLinks(links, url)),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n getViewedLinks(links: Link[], url: string): Observable<BaseLink[]> {\n if (!links?.length) {\n return of([]);\n }\n return combineLatest(\n links.map((link) =>\n runInInjectionContext(this.injector, () => getPossiblyAsyncValue(link, [url])),\n ),\n ).pipe(\n switchMap((links) =>\n combineLatest(\n links.map((link) =>\n link.children ? this.getViewedLinks(link.children, url) : of(undefined),\n ),\n ).pipe(\n map((children) =>\n links\n .map((link, index) => ({\n ...link,\n children: children[index],\n }))\n .filter((link) => !link.isHidden),\n ),\n ),\n ),\n );\n }\n}\n","<div class=\"v-nav gap-3\">\n @let activeLinks = (activeLinks$ | async) || [];\n\n @for (linkGroup of viewedLinks$ | async; track linkGroup; let index = $index) {\n @if (index > 0) {\n <mat-divider></mat-divider>\n }\n <div class=\"flex flex-col\">\n @for (link of linkGroup.children; track link) {\n @let isActive = activeLinks.includes(link);\n\n @if (link.children) {\n <button\n [ngClass]=\"{\n '!text-[var(--mat-sys-on-surface-variant)]': !isActive,\n }\"\n [routerLink]=\"link.url\"\n [title]=\"link.label\"\n class=\"!justify-end mx-2 !px-4 !flex-row-reverse\"\n matButton\n >\n {{ link.label }}\n <mat-icon class=\"pl-2\">{{\n link.children.length\n ? isActive\n ? 'keyboard_arrow_down'\n : 'keyboard_arrow_up'\n : 'keyboard_arrow_right'\n }}</mat-icon>\n </button>\n } @else {\n <button\n [matButton]=\"isActive ? 'tonal' : 'text'\"\n [routerLink]=\"link.url\"\n [title]=\"link.label\"\n class=\"!justify-start mx-2 !px-4 !text-[var(--mat-sys-on-surface-variant)]\"\n >\n {{ link.label }}\n </button>\n }\n @if (isActive && link.children?.length) {\n <div class=\"pl-2 flex flex-col\">\n @for (childLink of link.children; track childLink) {\n <button\n [matButton]=\"activeLinks.includes(childLink) ? 'tonal' : 'text'\"\n [routerLink]=\"childLink.url\"\n [title]=\"childLink.label\"\n class=\"!justify-start mx-2 !px-4 !text-[var(--mat-sys-on-surface-variant)]\"\n >\n {{ childLink.label }}\n </button>\n }\n </div>\n }\n }\n </div>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, DestroyRef, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { Router, RouterModule } from '@angular/router';\n\nimport { HighlightDirective } from '../../directives';\nimport { getValueChanges } from '../../utils';\n\nimport { CmdkService } from './cmdk.service';\nimport { CmdkOption } from './types/cmdk-option';\n\n@Component({\n selector: 'v-cmdk',\n imports: [\n MatDialogModule,\n MatButtonModule,\n MatInputModule,\n MatListModule,\n MatIconModule,\n CommonModule,\n RouterModule,\n ReactiveFormsModule,\n MatProgressBarModule,\n HighlightDirective,\n MatTooltipModule,\n ],\n templateUrl: './cmdk.component.html',\n styleUrl: './cmdk.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CmdkComponent {\n private cmdkService = inject(CmdkService);\n private dr = inject(DestroyRef);\n private router = inject(Router);\n\n searchControl = new FormControl('');\n options$ = this.cmdkService.options$;\n inProgress$ = this.cmdkService.inProgress$;\n\n constructor() {\n getValueChanges(this.searchControl)\n .pipe(takeUntilDestroyed(this.dr))\n .subscribe((searchStr) => {\n this.cmdkService.search$.next(searchStr || '');\n });\n }\n\n action(option: CmdkOption) {\n this.cmdkService.close();\n if (option.action) {\n option.action();\n return;\n }\n this.router.navigate([option.url]);\n }\n}\n","<div class=\"p-8 overflow-auto h-full flex flex-col\">\n <div>\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <mat-label>Search</mat-label>\n <input [formControl]=\"searchControl\" matInput />\n <mat-icon matSuffix>search</mat-icon>\n </mat-form-field>\n </div>\n\n <mat-list class=\"overflow-y-auto\">\n @let options = options$ | async;\n\n @if (options?.length) {\n @for (option of options; track $index) {\n <mat-list-item\n [title]=\"option.tooltip\"\n class=\"!cursor-pointer\"\n (click)=\"action(option)\"\n >\n <mat-icon matListItemIcon>{{ option.icon || 'article' }}</mat-icon>\n <span\n [vHighlightSearch]=\"searchControl.value\"\n [vHighlightText]=\"option.label\"\n matListItemTitle\n vHighlight\n ></span>\n <span\n [vHighlightSearch]=\"searchControl.value\"\n [vHighlightText]=\"option.description\"\n matListItemLine\n vHighlight\n ></span>\n </mat-list-item>\n }\n } @else if (searchControl.value) {\n @if (inProgress$ | async) {\n <mat-list-item>\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n </mat-list-item>\n } @else {\n <mat-list-item>\n <mat-icon matListItemIcon>list</mat-icon>\n <span matListItemTitle>No results found</span>\n </mat-list-item>\n }\n } @else {\n <mat-list-item>\n <mat-icon matListItemIcon>help</mat-icon>\n <span matListItemTitle>Start typing to search</span>\n </mat-list-item>\n }\n </mat-list>\n</div>\n","import { Subject, distinctUntilChanged, of, shareReplay, switchMap } from 'rxjs';\n\nimport { DestroyRef, Injectable, Injector, OnDestroy, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { CmdkComponent } from './cmdk.component';\nimport { CmdkOptions } from './types/cmdk-options';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CmdkService implements OnDestroy {\n private dialog = inject(MatDialog);\n private dr = inject(DestroyRef);\n private injector = inject(Injector);\n\n private config = signal<CmdkOptions | null>(null);\n search$ = new Subject<string>();\n inProgress$ = toObservable(this.config).pipe(\n switchMap((config) =>\n config?.progress\n ? toObservable(config.progress, { injector: this.injector })\n : of(false),\n ),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n options$ = toObservable(this.config).pipe(\n switchMap((config) =>\n config?.options ? toObservable(config.options, { injector: this.injector }) : of([]),\n ),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n constructor() {\n document.addEventListener('keydown', this.listener);\n this.search$\n .pipe(distinctUntilChanged(), takeUntilDestroyed(this.dr))\n .subscribe((searchStr) => {\n this.config()?.search?.(searchStr);\n });\n }\n\n ngOnDestroy() {\n document.removeEventListener('keydown', this.listener);\n }\n\n open() {\n if (this.dialog.openDialogs.length) return;\n this.dialog.open(CmdkComponent, {\n width: 'calc(max(400px, 100vw - 32px))',\n maxWidth: '600px',\n position: { top: '20vh' },\n hasBackdrop: true,\n backdropClass: 'cmdk-backdrop',\n panelClass: 'cmdk-panel',\n });\n }\n\n close() {\n this.search$.next('');\n this.dialog.closeAll();\n }\n\n toggle() {\n if (this.dialog.openDialogs.length) {\n this.close();\n } else {\n this.open();\n }\n }\n\n init(options: CmdkOptions) {\n this.config.set(options);\n }\n\n private listener = (e: KeyboardEvent) => {\n if ((e.metaKey || e.ctrlKey) && e.key === 'k') {\n e.preventDefault();\n this.toggle();\n }\n };\n}\n","import { NgClass } from '@angular/common';\nimport { Component, OnInit, inject, input, output } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { CmdkService } from '../cmdk.service';\nimport { CmdkOption } from '../types/cmdk-option';\n\n@Component({\n selector: 'v-cmdk-button',\n imports: [MatIconModule, NgClass, MatButtonModule],\n template: `\n <button\n class=\"!text-[var(--mat-sys-outline)] !shadow-[inset_0_2px_4px_0_rgba(0,0,0,0.1),inset_0_2px_2px_0_rgba(0,0,0,0.06)]\"\n matButton\n (click)=\"cmdkService.open()\"\n >\n <mat-icon>search</mat-icon>\n <div class=\"flex items-center gap-1\">\n <div>Search...</div>\n <div class=\"flex items-center gap-0.5 text-xs\">\n @for (key of searchKeys; track key) {\n <kbd\n [ngClass]=\"{ 'px-1': key.length > 1 }\"\n class=\"bg-[var(--mat-sys-surface-container-high)] rounded min-w-4 h-4\"\n >{{ key }}</kbd\n >\n }\n </div>\n </div>\n </button>\n `,\n})\nexport class CmdkButtonComponent implements OnInit {\n cmdkService = inject(CmdkService);\n\n searchChange = output<string>();\n options = input<CmdkOption[]>([]);\n progress = input<boolean>(false);\n\n searchKeys = [navigator.platform.toUpperCase().includes('MAC') ? '⌘' : 'Ctrl', 'K'];\n\n ngOnInit() {\n this.cmdkService.init({\n search: (searchStr) => {\n this.searchChange.emit(searchStr);\n },\n options: this.options,\n progress: this.progress,\n });\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { CmdkButtonComponent } from './components/cmdk-button.component';\n\n@NgModule({\n imports: [CmdkButtonComponent],\n exports: [CmdkButtonComponent],\n})\nexport class CmdkModule {}\n","import { DEFAULT_CURRENCY_CODE, LOCALE_ID, Pipe, PipeTransform, inject } from '@angular/core';\n\nimport { formatCurrency } from '../utils';\n\n@Pipe({\n standalone: true,\n name: 'amountCurrency',\n})\nexport class AmountCurrencyPipe implements PipeTransform {\n private _locale = inject<string>(LOCALE_ID);\n private _defaultCurrencyCode = inject<string>(DEFAULT_CURRENCY_CODE);\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 isNil from 'lodash-es/isNil';\nimport { ValuesType } from 'utility-types';\n\nimport { Pipe, PipeTransform } from '@angular/core';\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 { formatDistanceToNow } from 'date-fns';\nimport { combineLatest, throttleTime, timer } from 'rxjs';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\n\nimport { Pipe, PipeTransform } from '@angular/core';\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 { Observable, isObservable } from 'rxjs';\n\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectorRef, OnDestroy, Pipe, PipeTransform, inject } from '@angular/core';\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 unknown[] = []>\n implements PipeTransform, OnDestroy\n{\n private ref = inject(ChangeDetectorRef);\n private asyncPipe?: AsyncPipe;\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 * Public API Surface of matez\n */\n\nexport * from './lib';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ActionsComponent","i1","i3","i5.ProgressComponent","catchError","getValue","BaseFormComponentSuperclass","ngFormatCurrency","_get","isObject","papa","filter","map","startWith","distinctUntilChanged","shareReplay","switchMap","take","i2","i4","i5","i2.TagComponent","isEqual","i5.InputFieldComponent","i6.ActionsComponent","i8","i9.TagComponent","debounceTime","first","i4.ValueComponent","i5.NoRecordsComponent","i6.ContentLoadingComponent","i7.InfinityScrollDirective","i8.SelectColumnComponent","i11.DndColumnComponent","i12.TableInfoBarComponent","i13.TableActionsComponent","i2.DialogComponent","i3.DialogActionsComponent","i4.TableComponent","i1.TableComponent","i2.TableActionsComponent","i3.ActionsComponent","i5.ActionsComponent","i6","skipWhile","mergeScan","isEmpty","negate","FormComponentSuperclass","isNil"],"mappings":"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"}
1
+ {"version":3,"file":"vality-matez.mjs","sources":["../../../projects/matez/src/lib/components/actions/actions.component.ts","../../../projects/matez/src/lib/components/actions/actions.component.html","../../../projects/matez/src/lib/components/actions/actions.module.ts","../../../projects/matez/src/lib/components/progress/progress.component.ts","../../../projects/matez/src/lib/components/progress/progress.component.html","../../../projects/matez/src/lib/components/progress/progress.module.ts","../../../projects/matez/src/lib/components/dialog/components/dialog-actions/dialog-actions.component.ts","../../../projects/matez/src/lib/components/dialog/components/dialog-actions/dialog-actions.component.html","../../../projects/matez/src/lib/components/dialog/types/dialog-response-status.ts","../../../projects/matez/src/lib/components/dialog/dialog.component.ts","../../../projects/matez/src/lib/components/dialog/dialog.component.html","../../../projects/matez/src/lib/components/dialog/tokens.ts","../../../projects/matez/src/lib/components/dialog/services/dialog.service.ts","../../../projects/matez/src/lib/components/dialog/dialog.module.ts","../../../projects/matez/src/lib/components/dialog/utils/dialog-superclass.ts","../../../projects/matez/src/lib/components/content-loading/content-loading.component.ts","../../../projects/matez/src/lib/components/content-loading/content-loading.component.html","../../../projects/matez/src/lib/utils/json/inline-json.ts","../../../projects/matez/src/lib/utils/string/split-by-separators.ts","../../../projects/matez/src/lib/utils/operators/progress-to.ts","../../../projects/matez/src/lib/utils/operators/get-observable.ts","../../../projects/matez/src/lib/utils/operators/in-progress-from.ts","../../../projects/matez/src/lib/utils/operators/pass-error.ts","../../../projects/matez/src/lib/components/progress/utils/get-progress-by-count.ts","../../../projects/matez/src/lib/utils/operators/fork-join-to-result.ts","../../../projects/matez/src/lib/utils/async/from-async.ts","../../../projects/matez/src/lib/utils/async/is-async.ts","../../../projects/matez/src/lib/utils/async/get-possibly-async-observable.ts","../../../projects/matez/src/lib/utils/async/async-transform.ts","../../../projects/matez/src/lib/utils/async/get-possibly-async-value.ts","../../../projects/matez/src/lib/utils/operators/switch-combine-with.ts","../../../projects/matez/src/lib/utils/operators/debounce-time-with-first.ts","../../../projects/matez/src/lib/utils/operators/handle-error.ts","../../../projects/matez/src/lib/utils/operators/async-start-with.ts","../../../projects/matez/src/lib/utils/operators/tap-log.ts","../../../projects/matez/src/lib/utils/operators/filter-operator.ts","../../../projects/matez/src/lib/utils/form/has-controls.ts","../../../projects/matez/src/lib/utils/form/get-value.ts","../../../projects/matez/src/lib/utils/form/get-value-changes.ts","../../../projects/matez/src/lib/utils/form/form-wrappers/utils/get-errors-tree.ts","../../../projects/matez/src/lib/utils/form/form-wrappers/abstract-control-superclass.ts","../../../projects/matez/src/lib/utils/form/form-wrappers/form-group-superclass.directive.ts","../../../projects/matez/src/lib/utils/form/form-wrappers/utils/provide-validators.ts","../../../projects/matez/src/lib/utils/form/form-wrappers/utils/provide-value-accessor.ts","../../../projects/matez/src/lib/utils/form/form-wrappers/utils/create-control-providers.ts","../../../projects/matez/src/lib/utils/form/form-wrappers/form-control-superclass.directive.ts","../../../projects/matez/src/lib/utils/form/form-wrappers/form-component-superclass.directive.ts","../../../projects/matez/src/lib/utils/form/form-wrappers/form-array-superclass.directive.ts","../../../projects/matez/src/lib/utils/empty/is-empty-primitive.ts","../../../projects/matez/src/lib/utils/form/get-valid-value-changes.ts","../../../projects/matez/src/lib/utils/form/set-disabled.ts","../../../projects/matez/src/lib/utils/form/create-controls.ts","../../../projects/matez/src/lib/utils/date/get-no-time-zone-iso-string.ts","../../../projects/matez/src/lib/utils/currency/get-currency-exponent.ts","../../../projects/matez/src/lib/utils/currency/to-major.ts","../../../projects/matez/src/lib/utils/currency/to-minor.ts","../../../projects/matez/src/lib/utils/currency/format-currency.ts","../../../projects/matez/src/lib/utils/object/select.ts","../../../projects/matez/src/lib/utils/object/count-props.ts","../../../projects/matez/src/lib/utils/empty/is-empty.ts","../../../projects/matez/src/lib/utils/object/count-changed.ts","../../../projects/matez/src/lib/utils/enum/get-enum-keys.ts","../../../projects/matez/src/lib/utils/clean/clean.ts","../../../projects/matez/src/lib/utils/compare/compare-different-types.ts","../../../projects/matez/src/lib/utils/import/get-import-value.ts","../../../projects/matez/src/lib/utils/file/download-file.ts","../../../projects/matez/src/lib/utils/csv/create-csv.ts","../../../projects/matez/src/lib/utils/csv/utils/remove-line-breaks.ts","../../../projects/matez/src/lib/utils/csv/parse-csv.ts","../../../projects/matez/src/lib/utils/csv/utils/unify-csv-items.ts","../../../projects/matez/src/lib/utils/transform-attribute/array-attribute.ts","../../../projects/matez/src/lib/utils/decorators/debounce-time.ts","../../../projects/matez/src/lib/utils/create-storage-value.ts","../../../projects/matez/src/lib/utils/subscribe-return.ts","../../../projects/matez/src/lib/utils/observable-resource/observable-resource.ts","../../../projects/matez/src/lib/utils/observable-resource/paged-observable-resource.ts","../../../projects/matez/src/lib/utils/fetch-all.ts","../../../projects/matez/src/lib/components/input-field/input-field.component.ts","../../../projects/matez/src/lib/components/input-field/input-field.component.html","../../../projects/matez/src/lib/components/input-field/input-field.module.ts","../../../projects/matez/src/lib/components/tag/tag.component.ts","../../../projects/matez/src/lib/components/tag/tag.component.html","../../../projects/matez/src/lib/components/tag/tag.module.ts","../../../projects/matez/src/lib/components/table/utils/normalize-string.ts","../../../projects/matez/src/lib/directives/highlight.directive.ts","../../../projects/matez/src/lib/components/value/components/menu-value.component.ts","../../../projects/matez/src/lib/components/value/components/toggle-value.component.ts","../../../projects/matez/src/lib/components/value/utils/currency-amount-value-to-string.ts","../../../projects/matez/src/lib/components/value/utils/datetime-value-to-string.ts","../../../projects/matez/src/lib/components/value/utils/unknown-to-string.ts","../../../projects/matez/src/lib/components/value/utils/value-to-string.ts","../../../projects/matez/src/lib/components/value/value.component.ts","../../../projects/matez/src/lib/components/value/value.component.html","../../../projects/matez/src/lib/components/value/components/value-list.component.ts","../../../projects/matez/src/lib/components/table/utils/create-unique-column-def.ts","../../../projects/matez/src/lib/components/table/consts.ts","../../../projects/matez/src/lib/components/table/types/column.ts","../../../projects/matez/src/lib/components/table/utils/filter-sort.ts","../../../projects/matez/src/lib/components/table/tree-data/tree-data-item-to-inline-data-item.ts","../../../projects/matez/src/lib/components/table/utils/cached-head-map.ts","../../../projects/matez/src/lib/components/table/utils/table-data-source.ts","../../../projects/matez/src/lib/components/table/utils/table-to-csv-object.ts","../../../projects/matez/src/lib/components/table/utils/to-columns-data.ts","../../../projects/matez/src/lib/components/table/components/no-records.component.ts","../../../projects/matez/src/lib/components/table/utils/create-intersection-observer.ts","../../../projects/matez/src/lib/components/table/components/infinity-scroll.directive.ts","../../../projects/matez/src/lib/components/table/components/base-column.component.ts","../../../projects/matez/src/lib/components/table/components/select-column.component.ts","../../../projects/matez/src/lib/components/table/components/dnd-column.component.ts","../../../projects/matez/src/lib/components/table/components/table-info-bar/table-info-bar.component.ts","../../../projects/matez/src/lib/components/table/components/table-info-bar/table-info-bar.component.html","../../../projects/matez/src/lib/components/table/components/table-actions.component.ts","../../../projects/matez/src/lib/components/table/table.component.ts","../../../projects/matez/src/lib/components/table/table.component.html","../../../projects/matez/src/lib/components/table/components/customize/customize.component.ts","../../../projects/matez/src/lib/components/table/components/customize/customize.component.html","../../../projects/matez/src/lib/components/table/components/table-inputs.component.ts","../../../projects/matez/src/lib/components/table/components/table-progress-bar.component.ts","../../../projects/matez/src/lib/components/table/table.module.ts","../../../projects/matez/src/lib/components/table/utils/correct-priorities.ts","../../../projects/matez/src/lib/components/table/utils/create-column.ts","../../../projects/matez/src/lib/components/table/presets/create-menu-column.ts","../../../projects/matez/src/lib/components/table/table-resource.component.ts","../../../projects/matez/src/lib/components/confirm-dialog/confirm-dialog.component.ts","../../../projects/matez/src/lib/components/confirm-dialog/confirm-dialog.component.html","../../../projects/matez/src/lib/components/confirm-dialog/confirm-dialog.module.ts","../../../projects/matez/src/lib/components/filters/components/filters-dialog/filters-dialog.component.ts","../../../projects/matez/src/lib/components/filters/components/filters-dialog/filters-dialog.component.html","../../../projects/matez/src/lib/components/filters/components/main-filters/main-filters.directive.ts","../../../projects/matez/src/lib/components/filters/components/other-filters/other-filters.directive.ts","../../../projects/matez/src/lib/components/filters/filters.component.ts","../../../projects/matez/src/lib/components/filters/filters.component.html","../../../projects/matez/src/lib/components/filters/components/more-filters-button/more-filters-button.component.ts","../../../projects/matez/src/lib/components/filters/components/more-filters-button/more-filters-button.component.html","../../../projects/matez/src/lib/components/filters/filters.module.ts","../../../projects/matez/src/lib/components/date-range-field/date-range-field.component.ts","../../../projects/matez/src/lib/components/date-range-field/date-range-field.component.html","../../../projects/matez/src/lib/components/date-range-field/date-range-field.module.ts","../../../projects/matez/src/lib/components/date-range-field/utils/is-equal-date-range.ts","../../../projects/matez/src/lib/components/date-range-field/utils/create-date-range-to-today.ts","../../../projects/matez/src/lib/components/number-range-field/number-range-field.component.ts","../../../projects/matez/src/lib/components/number-range-field/number-range-field.component.html","../../../projects/matez/src/lib/components/number-range-field/number-range-field.module.ts","../../../projects/matez/src/lib/components/list-field/list-field.component.ts","../../../projects/matez/src/lib/components/list-field/list-field.component.html","../../../projects/matez/src/lib/components/list-field/list-field.module.ts","../../../projects/matez/src/lib/components/error-page/error-page.component.ts","../../../projects/matez/src/lib/components/error-page/error-page.component.html","../../../projects/matez/src/lib/components/error-page/error-page-routing.module.ts","../../../projects/matez/src/lib/components/error-page/error-page.module.ts","../../../projects/matez/src/lib/components/select-autocomplete/utils/search-options.ts","../../../projects/matez/src/lib/components/select-autocomplete/utils/find-option-by-value.ts","../../../projects/matez/src/lib/components/select-autocomplete/utils/get-hint-text.ts","../../../projects/matez/src/lib/components/select-autocomplete/select-field/select-field.component.ts","../../../projects/matez/src/lib/components/select-autocomplete/select-field/select-field.component.html","../../../projects/matez/src/lib/components/select-autocomplete/select-field/select-field.module.ts","../../../projects/matez/src/lib/components/select-autocomplete/autocomplete-field/autocomplete-field.component.ts","../../../projects/matez/src/lib/components/select-autocomplete/autocomplete-field/autocomplete-field.component.html","../../../projects/matez/src/lib/components/select-autocomplete/autocomplete-field/autocomplete-field.module.ts","../../../projects/matez/src/lib/services/config/config.service.ts","../../../projects/matez/src/lib/services/log/notify-log.service.ts","../../../projects/matez/src/lib/services/log/log.module.ts","../../../projects/matez/src/lib/services/fetch-superclass/fetch-superclass.ts","../../../projects/matez/src/lib/services/query-params/utils/date-query-params-serializers.ts","../../../projects/matez/src/lib/services/query-params/utils/query-params-serializers.ts","../../../projects/matez/src/lib/services/query-params/utils/serialize-query-params.ts","../../../projects/matez/src/lib/services/query-params/utils/deserialize-query-param.ts","../../../projects/matez/src/lib/services/query-params/query-params.service.ts","../../../projects/matez/src/lib/services/query-params/query-params.module.ts","../../../projects/matez/src/lib/services/url.service.ts","../../../projects/matez/src/lib/services/toast/toast.component.ts","../../../projects/matez/src/lib/services/toast/toast.component.html","../../../projects/matez/src/lib/services/toast/toast.service.ts","../../../projects/matez/src/lib/services/theme/theme.service.ts","../../../projects/matez/src/lib/services/app-mode/app-mode.service.ts","../../../projects/matez/src/lib/components/file-upload/file-upload.component.ts","../../../projects/matez/src/lib/components/file-upload/file-upload.component.html","../../../projects/matez/src/lib/components/file-upload/file-upload.module.ts","../../../projects/matez/src/lib/components/file-upload/utils/load-file-content.ts","../../../projects/matez/src/lib/components/datetime-field/datetime-field.component.ts","../../../projects/matez/src/lib/components/datetime-field/datetime-field.component.html","../../../projects/matez/src/lib/components/datetime-field/datetime-field.module.ts","../../../projects/matez/src/lib/components/switch-button/switch-button.component.ts","../../../projects/matez/src/lib/components/switch-button/switch-button.component.html","../../../projects/matez/src/lib/components/switch-button/switch-button.module.ts","../../../projects/matez/src/lib/components/nav/nav.component.ts","../../../projects/matez/src/lib/components/nav/nav.component.html","../../../projects/matez/src/lib/components/cmdk/cmdk.component.ts","../../../projects/matez/src/lib/components/cmdk/cmdk.component.html","../../../projects/matez/src/lib/components/cmdk/cmdk.service.ts","../../../projects/matez/src/lib/components/cmdk/components/cmdk-button.component.ts","../../../projects/matez/src/lib/components/cmdk/cmdk.module.ts","../../../projects/matez/src/lib/pipes/amount-currency.pipe.ts","../../../projects/matez/src/lib/pipes/enum-key-values.pipe.ts","../../../projects/matez/src/lib/pipes/enum-key.pipe.ts","../../../projects/matez/src/lib/pipes/enum-keys.pipe.ts","../../../projects/matez/src/lib/pipes/humanized-duration.pipe.ts","../../../projects/matez/src/lib/pipes/inline-json.pipe.ts","../../../projects/matez/src/lib/pipes/select.pipe.ts","../../../projects/matez/src/lib/pipes/pipes.module.ts","../../../projects/matez/src/public-api.ts","../../../projects/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 { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nimport { Progressable } from '../../types/progressable';\n\n@Component({\n selector: 'v-progress',\n templateUrl: './progress.component.html',\n changeDetection: ChangeDetectionStrategy.Eager,\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 { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'v-dialog-actions',\n templateUrl: './dialog-actions.component.html',\n changeDetection: ChangeDetectionStrategy.Eager,\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 ChangeDetectionStrategy,\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 changeDetection: ChangeDetectionStrategy.Eager,\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=\"font-normal text-2xl\">{{ 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 { ValuesType } from 'utility-types';\n\nimport { InjectionToken } from '@angular/core';\nimport { MatDialogConfig } from '@angular/material/dialog';\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 { Injectable, inject } 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 private dialog = inject(MatDialog);\n private readonly dialogConfig =\n inject<DialogConfig>(DIALOG_CONFIG, { optional: true }) || DEFAULT_DIALOG_CONFIG;\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 { random } from 'lodash-es';\n\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, input, numberAttribute } from '@angular/core';\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() || '&nbsp;'.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\nimport { WritableSignal, isSignal } from '@angular/core';\n\nexport function progressTo<T>(\n subjectSignal:\n | BehaviorSubject<number>\n | WritableSignal<number>\n | (() => BehaviorSubject<number> | WritableSignal<number>),\n): MonoTypeOperatorFunction<T> {\n const getSubjectSignal = () =>\n isObservable(subjectSignal) || isSignal(subjectSignal) ? subjectSignal : subjectSignal();\n return (src$) =>\n defer(() => {\n const subSigRes = getSubjectSignal();\n if (isSignal(subSigRes)) {\n subSigRes.update((prev) => prev + 1);\n return src$.pipe(finalize(() => subSigRes.update((prev) => prev - 1)));\n }\n subSigRes.next(subSigRes.getValue() + 1);\n return src$.pipe(finalize(() => subSigRes.next(subSigRes.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, from, isObservable } from 'rxjs';\n\nimport { isSignal } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\n\nimport { Async } from './is-async';\n\nexport function fromAsync<T>(asyncValue: Async<T>): Observable<T> {\n return isSignal(asyncValue)\n ? toObservable(asyncValue)\n : isObservable(asyncValue)\n ? asyncValue\n : from(asyncValue);\n}\n","import { Observable, isObservable } from 'rxjs';\nimport { isPromise } from 'rxjs/internal/util/isPromise';\n\nimport { Signal, isSignal } from '@angular/core';\n\nexport type Async<T> = Observable<T> | Promise<T> | Signal<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) || isSignal(value);\n}\n","import { Observable, of } from 'rxjs';\n\nimport { fromAsync } from './from-async';\nimport { PossiblyAsync, isAsync } from './is-async';\n\nexport function getPossiblyAsyncObservable<T>(possiblyAsync: PossiblyAsync<T>): Observable<T> {\n return isAsync(possiblyAsync) ? fromAsync(possiblyAsync) : of(possiblyAsync);\n}\n","import { Observable, ReplaySubject, combineLatest, defer, of, switchMap } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectorRef, Injectable, OnDestroy, inject } from '@angular/core';\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 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 cdr = inject(ChangeDetectorRef);\n private asyncPipe = new AsyncPipe(this.cdr);\n private args$ = new ReplaySubject<[PossiblyAsync<TValue>, ...TParams]>(1);\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, of } from 'rxjs';\n\nimport { getPossiblyAsyncObservable } from './get-possibly-async-observable';\nimport { PossiblyAsyncFn, PossiblyAsyncValue } from './types/possibly-async-value';\n\nexport function getPossiblyAsyncValue<T, P extends unknown[] = [], D = undefined>(\n getValue: PossiblyAsyncValue<T, P> | D,\n args: P = [] as never as P,\n defaultValue: T = undefined as T,\n isDefaultValue: (v: T | D) => boolean = ((v: T | D) => v === undefined) as (\n v: T | D,\n ) => boolean,\n): Observable<T> {\n if (isDefaultValue(getValue as D)) {\n return of(defaultValue as T);\n }\n if (typeof getValue === 'function') {\n return getPossiblyAsyncObservable((getValue as PossiblyAsyncFn<T, P>)(...args));\n }\n return getPossiblyAsyncObservable(getValue) as never as Observable<T>;\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) => {\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 { MonoTypeOperatorFunction, tap } from 'rxjs';\n\nexport function tapLog<T>(message = `Log`): MonoTypeOperatorFunction<T> {\n return (source) => {\n return source.pipe(tap((value) => console.log(`${message}:`, value)));\n };\n}\n","export function filterOperator<T>(...operators: [T | undefined]) {\n return operators.filter(Boolean) as [T];\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 { Observable } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\n\nimport { AbstractControl, FormControlState } from '@angular/forms';\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 { EMPTY, Observable, concat, take, timer } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { 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';\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 { concat, timer } from 'rxjs';\n\nimport { 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';\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 { Directive } from '@angular/core';\nimport { FormArray, FormControl } from '@angular/forms';\n\nimport { hasControls } from '../has-controls';\n\nimport { FormGroupSuperclass } from './form-group-superclass.directive';\n\n@Directive()\nexport abstract class FormArraySuperclass<\n OuterType extends unknown[],\n InnerType = OuterType,\n> extends FormGroupSuperclass<OuterType, InnerType> {\n protected override outerToInnerValue(outer: OuterType): InnerType {\n if (hasControls(this.control)) {\n if (!outer) {\n return this.emptyValue;\n }\n if (outer?.length !== (this.control as FormArray).controls.length) {\n (this.control as FormArray).clear({ emitEvent: false });\n outer.forEach((v) => (this.control as FormArray).push(new FormControl(v)));\n return outer as never;\n }\n }\n return outer as never;\n }\n}\n","import isNil from 'lodash-es/isNil';\n\nexport function isEmptyPrimitive(value: unknown): boolean {\n return isNil(value) || value === '';\n}\n","import omitBy from 'lodash-es/omitBy';\nimport { filter, map } from 'rxjs/operators';\n\nimport { AbstractControl } from '@angular/forms';\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 { isNil } from 'lodash-es';\n\nimport { getCurrencyExponent } from './get-currency-exponent';\nimport { toMajorByExponent } from './to-major';\n\nconst DEFAULT_EXPONENT = 2;\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 const unknownExponent = isMajor || isNil(exponent);\n if (unknownExponent) exponent = getCurrencyExponent(currencyCode) || DEFAULT_EXPONENT;\n const value = isMajor ? amount : toMajorByExponent(amount, exponent);\n let result: string;\n try {\n result = new Intl.NumberFormat(locale, {\n style: 'currency',\n currency: currencyCode,\n }).format(value);\n } catch {\n result = `${Intl.NumberFormat(locale, {\n style: 'decimal',\n minimumFractionDigits: exponent,\n }).format(value)} ${currencyCode}`;\n }\n return (\n result + (unknownExponent ? (format === 'short' ? '' : ` [default exp: ${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 unknown[] = [],\n> = string | ((obj: TObject, ...params: TParams) => Observable<TResult> | TResult);\n\nexport function select<TObject extends object, TResult, TParams extends 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 readonly 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 {\n Observable,\n distinctUntilChanged,\n filter,\n fromEvent,\n map,\n shareReplay,\n startWith,\n} from 'rxjs';\n\nimport { DestroyRef, Injector, Signal, inject } from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\n\ninterface StorageValueOptions<T> {\n serialize?: (v: T) => string | null;\n deserialize: (v: string | null) => T;\n changed$?: Observable<T>;\n}\n\ninterface StorageValue<T> {\n get: () => T;\n set: (value: T) => void;\n value$: Observable<T>;\n value: Signal<T | undefined>;\n}\n\nconst DEFAULT_SERIALIZE = (v: unknown) => (v === null ? null : String(v));\n\nexport function createStorageValue<T>(\n key: string,\n { serialize = DEFAULT_SERIALIZE, deserialize, changed$ }: StorageValueOptions<T>,\n): StorageValue<T> {\n const injector = inject(Injector);\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 const value: StorageValue<T> = {\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 if (changed$) {\n changed$.pipe(takeUntilDestroyed(inject(DestroyRef))).subscribe((v) => {\n value.set(v);\n });\n }\n\n return value;\n}\n","import { Observable, Observer } from 'rxjs';\n\nexport function subscribeReturn<T>(\n observable$: Observable<T>,\n subscription: Partial<Observer<T>> = {},\n) {\n const externalSubscription: Partial<Observer<T>> = {};\n observable$.subscribe({\n next: (value) => {\n if (subscription.next) {\n subscription.next(value);\n }\n if (externalSubscription.next) {\n externalSubscription.next(value);\n }\n },\n error: (err) => {\n if (subscription.error) {\n subscription.error(err);\n }\n if (externalSubscription.error) {\n externalSubscription.error(err);\n }\n },\n complete: () => {\n if (subscription.complete) {\n subscription.complete();\n }\n if (externalSubscription.complete) {\n externalSubscription.complete();\n }\n },\n });\n return {\n next: (nextFn: Observer<T>['next']) => {\n externalSubscription.next = nextFn;\n },\n error: (errorFn: Observer<T>['error']) => {\n externalSubscription.error = errorFn;\n },\n complete: (completeFn: Observer<T>['complete']) => {\n externalSubscription.complete = completeFn;\n },\n };\n}\n","import autoBind from 'auto-bind';\nimport { BehaviorSubject, Observable, Subject, combineLatest, merge } from 'rxjs';\nimport { map, mergeScan, mergeWith, shareReplay, skipWhile, switchMap, take } from 'rxjs/operators';\n\nimport { DestroyRef, Injector, Signal, inject } from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\n\nimport { PossiblyAsync, getPossiblyAsyncObservable } from '../async';\nimport { filterOperator, progressTo } from '../operators';\n\nexport type ObservableResourceActionType = string;\n\nconst PARAMS_ACTION = 'params' satisfies ObservableResourceActionType;\n\nexport type ObservableResourceActions = typeof PARAMS_ACTION;\n\nexport type ObservableResourceOptions<\n TAccResult,\n TParams = void,\n TResult = TAccResult,\n TAction = ObservableResourceActionType,\n> = {\n loader: (params: TParams, acc: TAccResult, action: TAction) => Observable<TAccResult>;\n map?: (value: TAccResult) => PossiblyAsync<TResult>;\n seed?: TAccResult;\n} & (TParams extends undefined | void\n ? {\n params?: PossiblyAsync<TParams>;\n }\n : {\n params: PossiblyAsync<TParams>;\n });\n\nexport class ObservableResource<\n TAccResult,\n TParams = void,\n TResult = TAccResult,\n TAction = ObservableResourceActionType,\n> {\n protected internalOptions!: ObservableResourceOptions<TAccResult, TParams, TResult, TAction>;\n\n protected dr = inject(DestroyRef);\n protected injector = inject(Injector);\n\n protected progress$ = new BehaviorSubject<number>(0);\n isLoading$ = this.progress$.pipe(map(Boolean));\n isLoading = toSignal(this.isLoading$, { initialValue: false });\n\n protected action$ = new Subject<TAction>();\n protected mergedParams$ = new Subject<TParams>();\n params$!: Observable<TParams>;\n params!: Signal<TParams | undefined>;\n\n protected accValue$!: Observable<TAccResult>;\n protected mergedValue$ = new Subject<TResult>();\n value$!: Observable<TResult>;\n value!: Signal<TResult | undefined>;\n\n constructor(options?: ObservableResourceOptions<TAccResult, TParams, TResult, TAction>) {\n if (options) this.init(options);\n }\n\n protected init(options: ObservableResourceOptions<TAccResult, TParams, TResult, TAction>) {\n // needed for map method\n autoBind(this);\n\n this.internalOptions = options;\n\n this.params$ = this.createParams().pipe(takeUntilDestroyed(this.dr), shareReplay(1));\n this.params = toSignal(this.params$);\n\n this.accValue$ = this.createAccValue().pipe(takeUntilDestroyed(this.dr), shareReplay(1));\n this.value$ = this.createValue().pipe(takeUntilDestroyed(this.dr), shareReplay(1));\n this.value = toSignal(this.value$);\n }\n\n protected createParams() {\n return merge(\n getPossiblyAsyncObservable<TParams>(this.internalOptions.params),\n this.mergedParams$,\n );\n }\n\n protected createAccValue() {\n return merge(\n this.params$.pipe(map((params) => ({ action: PARAMS_ACTION, params }))),\n this.action$.pipe(map((action) => ({ action }))),\n ).pipe(\n mergeScan<\n { action: TAction; params?: TParams },\n { accResult: TAccResult; params?: TParams }\n >(\n (acc, actionParams) => {\n const params =\n actionParams.action === PARAMS_ACTION ? actionParams.params : acc.params;\n return this.internalOptions\n .loader(params, acc.accResult, actionParams.action)\n .pipe(\n map((accResult) => ({ accResult, params })),\n progressTo(this.progress$),\n );\n },\n { accResult: this.internalOptions.seed },\n 1,\n ),\n map(({ accResult }) => accResult),\n );\n }\n\n protected createValue() {\n const mapFn = this.internalOptions.map;\n return this.accValue$.pipe(\n ...filterOperator(\n mapFn && switchMap((v: TAccResult) => getPossiblyAsyncObservable(mapFn(v))),\n ),\n mergeWith(this.mergedValue$),\n );\n }\n\n set(value: TResult) {\n this.mergedValue$.next(value);\n }\n\n getFirstValue(): Observable<TResult> {\n return combineLatest([this.value$, this.isLoading$]).pipe(\n skipWhile(([_, isLoading]) => isLoading),\n map(([value]) => value),\n take(1),\n );\n }\n\n setParams(paramsOrParamsFn: TParams | ((prevParams: TParams) => TParams)) {\n const newParams =\n typeof paramsOrParamsFn === 'function'\n ? (paramsOrParamsFn as (prevParams: TParams) => TParams)(this.params() as TParams)\n : (paramsOrParamsFn as TParams);\n this.mergedParams$.next(newParams);\n }\n\n reload() {\n this.setParams((p) => p);\n }\n\n protected action(action: TAction) {\n this.action$.next(action);\n }\n\n map<TNewResult>(\n mapFn: (value: TResult) => PossiblyAsync<TNewResult>,\n sourceValue$ = this.value$,\n ): ObservableResource<TAccResult, TParams, TNewResult> {\n const value$ = sourceValue$.pipe(\n switchMap((value) => getPossiblyAsyncObservable(mapFn(value))),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n return Object.assign({}, this, {\n value$,\n value: toSignal(value$, { injector: this.injector }),\n map: (fn: (value: TResult) => PossiblyAsync<TNewResult>) =>\n this.map(fn, value$ as never),\n }) as never;\n }\n}\n\nexport function observableResource<\n TAccResult,\n TParams = void,\n TResult = TAccResult,\n TAction = ObservableResourceActionType,\n>(options: ObservableResourceOptions<TAccResult, TParams, TResult, TAction>) {\n return new ObservableResource<TAccResult, TParams, TResult, TAction>(options);\n}\n","import { EMPTY, Observable, map } from 'rxjs';\n\nimport { Signal } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\nimport {\n ObservableResource,\n ObservableResourceActionType,\n ObservableResourceActions,\n ObservableResourceOptions,\n} from './observable-resource';\n\nconst MORE_ACTION = 'more' satisfies ObservableResourceActionType;\nconst UPDATE_PAGED_OPTIONS_ACTION = 'update-options' satisfies ObservableResourceActionType;\ntype PagedObservableResourceActions =\n | ObservableResourceActions\n | typeof MORE_ACTION\n | typeof UPDATE_PAGED_OPTIONS_ACTION;\n\nexport interface PagedObservableResourceInternalOptions {\n size: number;\n}\n\nexport interface PagedObservableResourceAccResult<TItem> {\n result: TItem[];\n continuationToken?: string;\n}\n\nexport type PagedObservableResourceLoaderOptions = PagedObservableResourceInternalOptions & {\n continuationToken?: string;\n};\n\nexport type PagedObservableResourceOptions<TItem, TParams = void> = {\n loader: (\n params: TParams,\n options: PagedObservableResourceLoaderOptions,\n ) => Observable<PagedObservableResourceAccResult<TItem>>;\n} & Partial<PagedObservableResourceInternalOptions> &\n Omit<\n ObservableResourceOptions<\n PagedObservableResourceAccResult<TItem>,\n TParams,\n TItem[],\n PagedObservableResourceActions\n >,\n 'loader'\n >;\nexport class PagedObservableResource<TItem, TParams = void> extends ObservableResource<\n PagedObservableResourceAccResult<TItem>,\n TParams,\n TItem[],\n PagedObservableResourceActions\n> {\n hasMore$!: Observable<boolean>;\n hasMore!: Signal<boolean>;\n\n // TODO: deprecated, use value$ / value signal\n result$: Observable<TItem[]>;\n\n protected pagedOptions!: PagedObservableResourceInternalOptions;\n\n constructor(options?: PagedObservableResourceOptions<TItem, TParams>) {\n super();\n if (options) this.initPaged(options);\n }\n\n protected initPaged({\n loader,\n size,\n ...options\n }: PagedObservableResourceOptions<TItem, TParams>) {\n // TODO: fix types\n super.init({\n params: EMPTY,\n ...options,\n loader: (params, acc, action) => {\n return loader(\n params,\n action === 'more'\n ? { ...this.pagedOptions, continuationToken: acc.continuationToken }\n : this.pagedOptions,\n ).pipe(\n map((result) => ({\n ...result,\n result:\n action === 'more' ? [...acc.result, ...result.result] : result.result,\n })),\n );\n },\n map: (value) => value.result,\n } as never);\n this.pagedOptions = { size: size || 20 };\n this.hasMore$ = this.accValue$.pipe(map((value) => !!value.continuationToken));\n this.hasMore = toSignal(this.hasMore$, { initialValue: false });\n this.result$ = this.value$;\n }\n\n more() {\n this.action(MORE_ACTION);\n }\n\n setOptions(options: PagedObservableResourceInternalOptions) {\n this.pagedOptions = options;\n this.action(UPDATE_PAGED_OPTIONS_ACTION);\n }\n\n // TODO: deprecated\n load(params: TParams, options?: PagedObservableResourceInternalOptions) {\n this.pagedOptions = options || this.pagedOptions;\n this.setParams(params);\n }\n}\n\nexport function pagedObservableResource<TItem, TParams = void>(\n options: PagedObservableResourceOptions<TItem, TParams>,\n) {\n return new PagedObservableResource<TItem, TParams>(options);\n}\n\nexport abstract class PagedObservableResourceSuperclass<\n TItem,\n TParams = void,\n> extends PagedObservableResource<TItem, TParams> {\n options: Omit<PagedObservableResourceOptions<TItem, TParams>, 'loader'> = {} as never;\n\n abstract loader(\n ...args: Parameters<PagedObservableResourceOptions<TItem, TParams>['loader']>\n ): ReturnType<PagedObservableResourceOptions<TItem, TParams>['loader']>;\n\n constructor() {\n super();\n // TODO: fix types\n this.initPaged({\n ...this.options,\n loader: (params, options) =>\n (this.loader as never as (...args: unknown[]) => unknown)(params, options),\n } as never);\n }\n}\n","import { Observable, map, of, switchMap } from 'rxjs';\n\nexport function fetchAll<T>(\n loadFn: (\n continuationToken?: string,\n ) => Observable<{ result: T[]; continuation_token?: string }>,\n continuationToken?: string,\n): Observable<T[]> {\n return loadFn(continuationToken).pipe(\n switchMap((resp) => {\n if (resp.continuation_token) {\n return fetchAll(loadFn, resp.continuation_token).pipe(\n map((nextData) => [...resp.result, ...nextData]),\n );\n }\n return of(resp.result);\n }),\n );\n}\n","import { ChangeDetectionStrategy, 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 changeDetection: ChangeDetectionStrategy.Eager,\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;\n @Input() size?: 'small' | '';\n cleanButton = input(false, { transform: booleanAttribute });\n icon = input<string>();\n hintText = 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 @if (hintText()) {\n <mat-hint>{{ hintText() }}</mat-hint>\n }\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 { combineLatest } from 'rxjs';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\n\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n Injector,\n OnInit,\n Renderer2,\n inject,\n input,\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\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 private el = inject(ElementRef);\n private renderer = inject(Renderer2);\n private dr = inject(DestroyRef);\n private injector = inject(Injector);\n vHighlightText = input('', { transform: (v) => String(v || '') });\n vHighlightSearch = input('', { transform: (v) => String(v || '') });\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, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(/\"/g, '&quot;')\n .replace(/'/g, '&#39;');\n }\n}\n","import { ChangeDetectionStrategy, 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 changeDetection: ChangeDetectionStrategy.Eager,\n styles: ``,\n})\nexport class MenuValueComponent {\n value = input.required<MenuValue>();\n}\n","import { ChangeDetectionStrategy, 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 changeDetection: ChangeDetectionStrategy.Eager,\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 { Observable, combineLatest, isObservable, of, switchMap } from 'rxjs';\nimport { filter, first, map, shareReplay } from 'rxjs/operators';\n\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Injector,\n Input,\n booleanAttribute,\n inject,\n input,\n model,\n runInInjectionContext,\n} from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { Router } from '@angular/router';\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 TagModule,\n MatTooltip,\n MenuValueComponent,\n ContentLoadingComponent,\n HighlightDirective,\n ToggleValueComponent,\n MatButtonModule,\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 private injector = inject(Injector);\n private router = inject(Router);\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 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 class=\"flex gap-1 items-center\">\n @if (v.prefix) {\n <button\n class=\"action ml-[-16px]\"\n mat-icon-button\n (click)=\"v.prefix.click ? v.prefix.click($event) : undefined\"\n >\n <mat-icon>{{ v.prefix.icon }}</mat-icon>\n </button>\n }\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\n [matTooltip]=\"v.tooltip\"\n class=\"tooltip\"\n matTooltipClass=\"tooltip-content\"\n >\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 (v.error) {\n <mat-icon [matTooltip]=\"v.error | json\">error</mat-icon>\n } @else if (emptySymbol) {\n <span class=\"text-[var(--mat-sys-outline)]\">{{\n emptySymbol\n }}</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 text-[var(--mat-sys-outline)] text-xs\"\n vHighlight\n ></div>\n }\n </div>\n @if (v.postfix) {\n <button\n class=\"action ml-auto mr-[-16px]\"\n mat-icon-button\n (click)=\"v.postfix.click ? v.postfix.click($event) : undefined\"\n >\n <mat-icon>{{ v.postfix.icon }}</mat-icon>\n </button>\n }\n </div>\n } @else {\n <v-content-loading></v-content-loading>\n }\n}\n","import { ChangeDetectionStrategy, 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 changeDetection: ChangeDetectionStrategy.Eager,\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 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 unknown[] = []> = (...args: P) => R;\nexport type PossiblyFn<R, P extends 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 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 = 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 { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { Injector, inject, runInInjectionContext } from '@angular/core';\nimport { Sort } from '@angular/material/sort';\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 { BehaviorSubject, Observable, switchMap } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\n\nimport { 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';\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 (const values of res) {\n values.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 { catchError, 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 interface 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 catchError((error) => of({ error })),\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 { filter } from 'rxjs/operators';\n\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n OnInit,\n booleanAttribute,\n inject,\n input,\n output,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { createIntersectionObserver } from '../utils/create-intersection-observer';\n\n@Directive({\n selector: '[vInfinityScroll]',\n standalone: true,\n})\nexport class InfinityScrollDirective implements OnInit {\n private elementRef = inject(ElementRef);\n private dr = inject(DestroyRef);\n vInfinityScroll = input(false, { transform: booleanAttribute });\n vInfinityScrollMore = output();\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 { combineLatest } from 'rxjs';\nimport { map, shareReplay, startWith } from 'rxjs/operators';\n\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n OnChanges,\n OnDestroy,\n OnInit,\n inject,\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';\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 private dr = inject(DestroyRef);\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 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 { 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: [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 ChangeDetectionStrategy,\n Component,\n DestroyRef,\n OnInit,\n TemplateRef,\n booleanAttribute,\n computed,\n inject,\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 changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false,\n})\nexport class TableInfoBarComponent<T extends object, C extends object> implements OnInit {\n private dr = inject(DestroyRef);\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 tableInputsContent = input<TemplateRef<unknown>>();\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 filterChange = output<string>();\n filterControl = new FormControl('', { nonNullable: true });\n\n standaloneFilter = input(false, { transform: booleanAttribute });\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 ngOnInit() {\n this.filterControl.valueChanges.pipe(takeUntilDestroyed(this.dr)).subscribe((v) => {\n this.filterChange.emit(v);\n });\n if (this.filterControl.value !== this.filter()) {\n this.filterControl.setValue(this.filter(), { emitEvent: false });\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 <ng-content *ngTemplateOutlet=\"tableInputsContent()\"></ng-content>\n <v-input-field [formControl]=\"filterControl\" cleanButton label=\"Search\"></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 select=\"v-table-actions\"></ng-content>\n </v-actions>\n </v-actions>\n</div>\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 {\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 { CdkDragDrop } from '@angular/cdk/drag-drop';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n Injector,\n OnInit,\n TemplateRef,\n ViewChild,\n booleanAttribute,\n computed,\n inject,\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';\n\nimport { ArrayAttributeTransform, arrayAttribute, createCsv, downloadFile } from '../../utils';\n\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 private dr = inject(DestroyRef);\n private injector = inject(Injector);\n private cdr = inject(ChangeDetectorRef);\n\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 // Contents\n tableInputsContent = input<TemplateRef<unknown>>();\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(\n debounceTime(100),\n toObservableColumnsData,\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\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 @ViewChild(MatRow, { static: false }) tableRow!: ElementRef;\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 const currentDataIndex = previousIndex > currentIndex ? currentIndex : currentIndex - 1;\n if (previousIndex > currentIndex) {\n currentData.splice(previousIndex, 1);\n currentData.splice(currentIndex, 0, event.item.data);\n } else {\n currentData.splice(currentIndex, 0, event.item.data);\n currentData.splice(previousIndex, 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]=\"$safeNavigationMigration((dataSource.data$ | async)?.length)\"\n [dataProgress]=\"!!(columnsDataProgress$ | async) && !hasMore()\"\n [filteredCount]=\"displayedCount$ | async\"\n [hasLoad]=\"update$.observed\"\n [hasMore]=\"hasMore()\"\n [isPreload]=\"isPreload()\"\n [noDownload]=\"noDownload()\"\n [noToolbar]=\"noToolbar()\"\n [preloadSize]=\"maxSize()\"\n [progress]=\"progress()\"\n [selectedCount]=\"$safeNavigationMigration(rowSelected()?.length)\"\n [size]=\"size()\"\n [standaloneFilter]=\"standaloneFilter()\"\n [tableInputsContent]=\"tableInputsContent()\"\n (downloadCsv)=\"downloadCsv()\"\n (load)=\"load()\"\n (preload)=\"preload()\"\n >\n <v-table-actions>\n <ng-content select=\"v-table-actions\"></ng-content>\n </v-table-actions>\n </v-table-info-bar>\n <mat-card #scrollViewport appearance=\"outlined\" 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\n [value]=\"$safeNavigationMigration(col?.header) | async\"\n emptySymbol=\"\"\n inline\n ></v-value>\n </th>\n\n <ng-template let-element let-rowIndex=\"index\" matCellDef>\n @let cell = $safeNavigationMigration(columnsData?.get?.(element)?.get(col));\n <td\n [ngClass]=\"columnClasses\"\n [ngStyle]=\"$safeNavigationMigration(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]=\"$safeNavigationMigration(cell?.lazyValue)\"\n [lazyVisible]=\"loadedLazyItems.has(element)\"\n [value]=\"$safeNavigationMigration(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-inputs',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TableInputsComponent {}\n","import { ChangeDetectionStrategy, 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 changeDetection: ChangeDetectionStrategy.Eager,\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 { combineLatest, switchMap } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { Injector, inject, runInInjectionContext } from '@angular/core';\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 sort: false,\n },\n);\n","import {\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n booleanAttribute,\n computed,\n input,\n model,\n} from '@angular/core';\n\nimport { ObservableResource, PagedObservableResource } from '../../utils';\n\nimport { TableModule } from './table.module';\nimport { Column, UpdateOptions } from './types';\n\n@Component({\n selector: 'v-table-resource',\n template: `\n <v-table\n [(filter)]=\"filter\"\n [columns]=\"columns()\"\n [data]=\"resource().value()\"\n [externalFilter]=\"externalFilter()\"\n [hasMore]=\"hasMore()\"\n [noDownload]=\"noDownload()\"\n [progress]=\"resource().isLoading()\"\n [standaloneFilter]=\"standaloneFilter()\"\n [tableInputsContent]=\"tableInputsContent()\"\n (more)=\"more()\"\n (reload)=\"resource().reload()\"\n (update)=\"update($event)\"\n >\n <v-table-actions><ng-content select=\"v-table-actions\"></ng-content></v-table-actions>\n </v-table>\n `,\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [TableModule],\n})\nexport class TableResourceComponent<T extends object, C extends object> {\n resource = input<\n PagedObservableResource<T, unknown> | ObservableResource<unknown, unknown, T[]>\n >();\n columns = input<Column<T, C>[]>([]);\n filter = model('');\n externalFilter = input(false, { transform: booleanAttribute });\n noDownload = input(false, { transform: booleanAttribute });\n standaloneFilter = input(false, { transform: booleanAttribute });\n tableInputsContent = input<TemplateRef<unknown>>();\n\n hasMore = computed(() => {\n const res = this.resource();\n return 'hasMore' in res ? res.hasMore() : false;\n });\n\n more() {\n const res = this.resource();\n if ('more' in res) res.more();\n }\n\n update(options: UpdateOptions) {\n const res = this.resource();\n if ('setOptions' in res) res.setOptions(options);\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 { ChangeDetectionStrategy, 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 changeDetection: ChangeDetectionStrategy.Eager,\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, inject } from '@angular/core';\n\n@Directive({\n selector: '[vMainFilters]',\n standalone: false,\n})\nexport class MainFiltersDirective {\n public templateRef = inject<TemplateRef<unknown>>(TemplateRef<unknown>);\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[vOtherFilters]',\n standalone: false,\n})\nexport class OtherFiltersDirective {\n public templateRef = inject<TemplateRef<unknown>>(TemplateRef<unknown>);\n}\n","import { BehaviorSubject, combineLatest } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewChild,\n booleanAttribute,\n inject,\n signal,\n} from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\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 changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false,\n})\nexport class FiltersComponent {\n private dialog = inject(DialogService);\n private breakpointObserver = inject(BreakpointObserver);\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 open() {\n this.dialog.open(FiltersDialogComponent, { filters: this });\n }\n}\n","<div #content [ngClass]=\"['v-filters-cols-' + (repeat$ | async), 'filters']\">\n <ng-container *ngTemplateOutlet=\"mainFiltersTemplate\"></ng-container>\n</div>\n","import { ChangeDetectionStrategy, 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 changeDetection: ChangeDetectionStrategy.Eager,\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 { 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 MatButtonModule,\n MatIconModule,\n DialogModule,\n LayoutModule,\n ActionsModule,\n MatBadgeModule,\n ],\n})\nexport class FiltersModule {}\n","import { enGB } from 'date-fns/locale';\n\nimport { ChangeDetectionStrategy, Component, Input, booleanAttribute, inject } 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';\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 changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false,\n})\nexport class DateRangeFieldComponent extends FormGroupSuperclass<Partial<DateRange>> {\n private fb = inject(NonNullableFormBuilder);\n @Input({ transform: booleanAttribute }) required: boolean = false;\n\n control = this.fb.group<Partial<DateRange>>({\n start: undefined,\n end: undefined,\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 { ChangeDetectionStrategy, Component, Input, inject } from '@angular/core';\nimport { NonNullableFormBuilder } from '@angular/forms';\n\nimport { FormGroupSuperclass, createControlProviders } from '../../utils';\n\nexport interface 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 changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false,\n})\nexport class NumberRangeFieldComponent extends FormGroupSuperclass<NumberRange> {\n private fb = inject(NonNullableFormBuilder);\n @Input() label!: string;\n\n control = this.fb.group<NumberRange>({\n start: undefined,\n end: undefined,\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 { map, shareReplay } from 'rxjs/operators';\n\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\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 changeDetection: ChangeDetectionStrategy.Eager,\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=\"text-[var(--mat-sys-outline)]\">{{\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 { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n templateUrl: 'error-page.component.html',\n styleUrls: ['error-page.component.scss'],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false,\n})\nexport class ErrorPageComponent {}\n","<div class=\"error\">\n <div class=\"text-2xl font-normal title\">\n <mat-icon>error</mat-icon>\n <div>Page not found</div>\n </div>\n <h2 class=\"mat-headline-small text-[var(--mat-sys-outline)]\">\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 { first, timer } from 'rxjs';\n\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n booleanAttribute,\n} 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 changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false,\n})\nexport class SelectFieldComponent<T = unknown>\n extends FormControlSuperclass<T[]>\n implements OnInit\n{\n @Input() options: Option<T>[] = [];\n @Output() searchChange = new EventEmitter<string>();\n\n @Input() appearance!: MatFormFieldAppearance;\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 override ngOnInit() {\n super.ngOnInit();\n if (this.externalSearch) {\n timer(0)\n .pipe(first())\n .subscribe(() => {\n this.searchChange.emit(String(this.control.value));\n });\n }\n }\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 @if (multiple) {\n <mat-checkbox\n [ngModel]=\"item$.selected\"\n class=\"checkbox-option\"\n id=\"item-{{ index }}\"\n >\n {{ item.type | uppercase }}\n </mat-checkbox>\n } @else {\n {{ item.type | uppercase }}\n }\n </ng-template>\n <ng-template let-index=\"index\" let-item=\"item\" let-item$=\"item$\" ng-option-tmp>\n @if (multiple) {\n <mat-checkbox\n [ngModel]=\"item$.selected\"\n class=\"checkbox-option\"\n id=\"item-{{ index }}\"\n >\n <ng-container *ngTemplateOutlet=\"text\"></ng-container>\n </mat-checkbox>\n } @else {\n <ng-container *ngTemplateOutlet=\"text\"></ng-container>\n }\n <ng-template #text>\n <div class=\"label\">{{ item.label }}</div>\n @if (item.description) {\n <div class=\"description mat-label-medium text-[var(--mat-sys-outline)]\">\n {{ item.description }}\n </div>\n }\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 { BehaviorSubject, merge } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\n\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnChanges,\n booleanAttribute,\n} from '@angular/core';\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 changeDetection: ChangeDetectionStrategy.Eager,\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 text-[var(--mat-sys-outline)]\"\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 { lastValueFrom } from 'rxjs';\n\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\n\n@Injectable()\nexport class ConfigServiceSuperclass<T> {\n private http = inject(HttpClient);\n config!: T;\n\n async init({ configUrl }: { configUrl: string }): Promise<void> {\n this.config = await lastValueFrom(this.http.get<T>(configUrl));\n }\n}\n","import { capitalize, isObject } from 'lodash-es';\nimport { Observer, first, timeout } from 'rxjs';\n\nimport { Injectable, InjectionToken, inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\n\nimport { PossiblyAsync, getPossiblyAsyncObservable } from '../../utils';\n\nimport { Operation } from './types/operation';\n\nexport interface LogError {\n name?: string;\n message?: string;\n details?: object;\n error?: unknown;\n noConsole?: boolean;\n}\n\ntype ErrorParser = (error: unknown) => LogError;\n\nexport const ERROR_PARSER = new InjectionToken<ErrorParser>('ErrorParser');\n\nconst DEFAULT_DURATION_MS = 3_000;\nconst DEFAULT_ERROR_DURATION_MS = 10_000;\nconst DEFAULT_TIMEOUT_MS = 10_000;\nconst DEFAULT_ERROR_PARSER: ErrorParser = (error: unknown) =>\n ({ ...(isObject(error) ? error : new Error(String(error))), error }) as LogError;\n\n@Injectable({ providedIn: 'root' })\nexport class NotifyLogService {\n private snackBar = inject(MatSnackBar);\n private parseError = inject(ERROR_PARSER, { optional: true }) || DEFAULT_ERROR_PARSER;\n\n success = (message: PossiblyAsync<string> = 'Completed successfully'): void => {\n this.notify(message);\n };\n\n error = (error: unknown, message?: PossiblyAsync<string>): void => {\n const parsedError = this.parseError(error);\n message = message || parsedError.message || parsedError.name || 'An error occurred';\n if (!parsedError.noConsole) {\n this.subscribeWithTimeout(message, (msg) => {\n console.warn(\n [\n `Caught error: ${msg}.`,\n parsedError.name,\n parsedError.message,\n parsedError.details,\n ].join('\\n'),\n parsedError.error,\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 { isEmpty, negate } from 'lodash-es';\n\nimport { Params } from '@angular/router';\n\nimport { 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\nexport function serializeQueryParams(\n params: object,\n filter: (param: unknown, key: string) => boolean = negate(isEmpty),\n serializers: Serializer[] = [],\n): Params {\n return Object.entries(params).reduce((acc, [k, v]) => {\n if (filter(v, k)) {\n acc[k] = serializeQueryParam(v, serializers);\n }\n return acc;\n }, {} as Params);\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 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 { Injectable, inject } from '@angular/core';\nimport { ActivatedRoute, Params, Router } from '@angular/router';\n\nimport { isEmpty } from '../../utils';\n\nimport { Serializer } from './types/serializer';\nimport { QUERY_PARAMS_SERIALIZERS, serializeQueryParams } from './utils';\nimport { deserializeQueryParam } from './utils/deserialize-query-param';\n\ninterface SerializeOptions {\n filter?: Parameters<typeof serializeQueryParams>[1];\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<\n P extends object = NonNullable<unknown>,\n> implements BaseQueryParams<P> {\n private router = inject(Router);\n private route = inject(ActivatedRoute);\n private readonly serializers =\n inject<Serializer[]>(QUERY_PARAMS_SERIALIZERS, {\n optional: true,\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 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 const replacedKeys = Object.keys(params);\n queryParams = Object.assign(\n {},\n options.isPatch &&\n Object.fromEntries(\n Object.entries(sourceParams.main).filter(\n ([k]) => !replacedKeys.includes(k),\n ),\n ),\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 serializeQueryParams(params, filter, this.serializers);\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) : ({} as TNamespaceParams);\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 { distinctUntilChanged, filter, map, shareReplay, startWith } from 'rxjs/operators';\n\nimport { Injectable, computed, inject } from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { Router } from '@angular/router';\n\nexport function getUrlPath(url: string): string[] {\n return url?.split('/')?.slice(1) ?? [];\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UrlService {\n private router = inject(Router);\n\n url$ = this.router.events.pipe(\n startWith(null),\n map(() => this.getUrl()),\n filter((url) => this.router.navigated || (!!url && url !== '/')),\n distinctUntilChanged(),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n url = toSignal(this.url$, { initialValue: this.getUrl() });\n path = computed(() => getUrlPath(this.url()));\n path$ = toObservable(this.path);\n\n private getUrl() {\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","import { Observable, combineLatest, map, of, shareReplay } from 'rxjs';\n\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, 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';\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 changeDetection: ChangeDetectionStrategy.Eager,\n imports: [CommonModule, MatProgressSpinnerModule, MatButtonModule],\n})\nexport class ToastComponent {\n public data = inject<ToastData>(MAT_SNACK_BAR_DATA);\n private snackBarRef = inject<MatSnackBarRef<ToastComponent>>(MatSnackBarRef<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 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, inject } 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 private snackBar = inject(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 { fromEvent, map } from 'rxjs';\n\nimport { Injectable, computed, effect, signal } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\nexport type Theme = 'light' | 'dark' | 'system';\n\n@Injectable({ providedIn: 'root' })\nexport class ThemeService {\n private readonly storageKey = 'theme';\n private isSystemDark = toSignal(\n fromEvent<MediaQueryListEvent>(\n window.matchMedia('(prefers-color-scheme: dark)'),\n 'change',\n ).pipe(map((event) => event.matches)),\n { initialValue: window.matchMedia('(prefers-color-scheme: dark)').matches },\n );\n\n theme = signal<Theme>(this.getStoredTheme());\n isDark = computed(\n () => this.theme() === 'dark' || (this.theme() === 'system' && this.isSystemDark()),\n );\n\n constructor() {\n effect(() => this.updateTheme(this.isDark()));\n }\n\n setTheme(theme: Theme) {\n this.theme.set(theme);\n localStorage.setItem(this.storageKey, theme);\n }\n\n private getStoredTheme(): Theme {\n const stored = localStorage.getItem(this.storageKey) as Theme;\n return stored && ['light', 'dark', 'system'].includes(stored) ? stored : 'system';\n }\n\n private updateTheme(isDark = this.isDark()) {\n if (isDark) {\n document.body.classList.add('dark-mode');\n } else {\n document.body.classList.remove('dark-mode');\n }\n }\n}\n","import { Injectable, computed, effect, signal } from '@angular/core';\n\ntype AppMode = 'simple' | 'advanced';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AppModeService {\n mode = signal<AppMode>(this.getInitialMode());\n\n isSimple = computed(() => this.mode() === 'simple');\n isAdvanced = computed(() => this.mode() === 'advanced');\n\n constructor() {\n effect(() => {\n localStorage.setItem('app-mode', this.mode());\n });\n }\n\n private getInitialMode(): AppMode {\n const stored = localStorage.getItem('app-mode');\n return (stored as AppMode) || 'simple';\n }\n\n setMode(mode: AppMode): void {\n this.mode.set(mode);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n inject,\n} 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 changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false,\n})\nexport class FileUploadComponent {\n private log = inject(NotifyLogService);\n @Input() label?: string;\n @Input() extensions: string[] = [];\n\n @Output() upload = new EventEmitter<File | null>();\n\n protected file?: File | null;\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 text-[var(--mat-sys-outline)] m-0 file-name\">\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 { format, isValid } from 'date-fns';\nimport { enGB } from 'date-fns/locale';\n\nimport { ChangeDetectionStrategy, 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';\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 changeDetection: ChangeDetectionStrategy.Eager,\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 { lowerFirst } from 'lodash-es';\nimport isNil from 'lodash-es/isNil';\n\nimport { ChangeDetectionStrategy, Component, Input, OnChanges } from '@angular/core';\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 changeDetection: ChangeDetectionStrategy.Eager,\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 { isNil } from 'lodash-es';\nimport {\n Observable,\n combineLatest,\n combineLatestWith,\n map,\n of,\n shareReplay,\n switchMap,\n} from 'rxjs';\nimport { Overwrite } from 'utility-types';\n\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Injector,\n ViewEncapsulation,\n inject,\n input,\n runInInjectionContext,\n} from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport { RouterLink } from '@angular/router';\n\nimport { UrlService } from '../../services';\nimport { PossiblyAsyncValue, getPossiblyAsyncValue } from '../../utils';\n\nexport interface BaseLink {\n label?: string;\n url?: string;\n checkUrl?: string;\n icon?: string;\n children?: BaseLink[];\n isHidden?: boolean;\n}\n\nexport type Link = PossiblyAsyncValue<Overwrite<BaseLink, { children?: Link[] }>, [url: string]>;\n\nfunction isActiveLink(link: BaseLink, url: string): boolean {\n return (\n !isNil(url) &&\n (url.startsWith(link.url || '') || (!!link.checkUrl && url.startsWith(link.checkUrl || '')))\n );\n}\n\nfunction getActiveLinks(links: BaseLink[], url: string): BaseLink[] {\n return links.reduce((acc, link) => {\n if (isActiveLink(link, url)) {\n acc.push(link);\n }\n return acc.concat(getActiveLinks(link.children || [], url));\n }, [] as BaseLink[]);\n}\n\n@Component({\n selector: 'v-nav',\n styleUrls: ['./nav.component.scss'],\n templateUrl: './nav.component.html',\n imports: [RouterLink, MatButtonModule, MatDividerModule, CommonModule, MatIconModule],\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None,\n})\nexport class NavComponent {\n private urlService = inject(UrlService);\n private injector = inject(Injector);\n\n links = input<Link[]>([]);\n\n viewedLinks$ = combineLatest([toObservable(this.links), this.urlService.url$]).pipe(\n switchMap(([links, url]) => this.getViewedLinks(links, url)),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n activeLinks$ = this.viewedLinks$.pipe(\n combineLatestWith(this.urlService.url$),\n map(([links, url]) => getActiveLinks(links, url)),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n getViewedLinks(links: Link[], url: string): Observable<BaseLink[]> {\n if (!links?.length) {\n return of([]);\n }\n return combineLatest(\n links.map((link) =>\n runInInjectionContext(this.injector, () => getPossiblyAsyncValue(link, [url])),\n ),\n ).pipe(\n switchMap((links) =>\n combineLatest(\n links.map((link) =>\n link.children ? this.getViewedLinks(link.children, url) : of(undefined),\n ),\n ).pipe(\n map((children) =>\n links\n .map((link, index) => ({\n ...link,\n children: children[index],\n }))\n .filter((link) => !link.isHidden),\n ),\n ),\n ),\n );\n }\n}\n","<div class=\"v-nav gap-3\">\n @let activeLinks = (activeLinks$ | async) || [];\n\n @for (linkGroup of viewedLinks$ | async; track linkGroup; let index = $index) {\n @if (index > 0) {\n <mat-divider></mat-divider>\n }\n <div class=\"flex flex-col\">\n @for (link of linkGroup.children; track link) {\n @let isActive = activeLinks.includes(link);\n\n @if (link.children) {\n <button\n [ngClass]=\"{\n '!text-[var(--mat-sys-on-surface-variant)]': !isActive,\n }\"\n [routerLink]=\"link.url\"\n [title]=\"link.label\"\n class=\"!justify-end mx-2 !px-4 !flex-row-reverse\"\n matButton\n >\n {{ link.label }}\n <mat-icon class=\"pl-2\">{{\n link.children.length\n ? isActive\n ? 'keyboard_arrow_down'\n : 'keyboard_arrow_up'\n : 'keyboard_arrow_right'\n }}</mat-icon>\n </button>\n } @else {\n <button\n [matButton]=\"isActive ? 'tonal' : 'text'\"\n [routerLink]=\"link.url\"\n [title]=\"link.label\"\n class=\"!justify-start mx-2 !px-4 !text-[var(--mat-sys-on-surface-variant)]\"\n >\n {{ link.label }}\n </button>\n }\n @if (isActive && link.children?.length) {\n <div class=\"pl-2 flex flex-col\">\n @for (childLink of link.children; track childLink) {\n <button\n [matButton]=\"activeLinks.includes(childLink) ? 'tonal' : 'text'\"\n [routerLink]=\"childLink.url\"\n [title]=\"childLink.label\"\n class=\"!justify-start mx-2 !px-4 !text-[var(--mat-sys-on-surface-variant)]\"\n >\n {{ childLink.label }}\n </button>\n }\n </div>\n }\n }\n </div>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, DestroyRef, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { Router, RouterModule } from '@angular/router';\n\nimport { HighlightDirective } from '../../directives';\nimport { getValueChanges } from '../../utils';\n\nimport { CmdkService } from './cmdk.service';\nimport { CmdkOption } from './types/cmdk-option';\n\n@Component({\n selector: 'v-cmdk',\n imports: [\n MatDialogModule,\n MatButtonModule,\n MatInputModule,\n MatListModule,\n MatIconModule,\n CommonModule,\n RouterModule,\n ReactiveFormsModule,\n MatProgressBarModule,\n HighlightDirective,\n MatTooltipModule,\n ],\n templateUrl: './cmdk.component.html',\n styleUrl: './cmdk.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CmdkComponent {\n private cmdkService = inject(CmdkService);\n private dr = inject(DestroyRef);\n private router = inject(Router);\n\n searchControl = new FormControl('');\n options$ = this.cmdkService.options$;\n inProgress$ = this.cmdkService.inProgress$;\n\n constructor() {\n getValueChanges(this.searchControl)\n .pipe(takeUntilDestroyed(this.dr))\n .subscribe((searchStr) => {\n this.cmdkService.search$.next(searchStr || '');\n });\n }\n\n action(option: CmdkOption) {\n this.cmdkService.close();\n if (option.action) {\n option.action();\n return;\n }\n this.router.navigate([option.url]);\n }\n}\n","<div class=\"p-8 overflow-auto h-full flex flex-col\">\n <div>\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <mat-label>Search</mat-label>\n <input [formControl]=\"searchControl\" matInput />\n <mat-icon matSuffix>search</mat-icon>\n </mat-form-field>\n </div>\n\n <mat-list class=\"overflow-y-auto\">\n @let options = options$ | async;\n\n @if (options?.length) {\n @for (option of options; track $index) {\n <mat-list-item\n [title]=\"option.tooltip\"\n class=\"!cursor-pointer\"\n (click)=\"action(option)\"\n >\n <mat-icon matListItemIcon>{{ option.icon || 'article' }}</mat-icon>\n <span\n [vHighlightSearch]=\"searchControl.value\"\n [vHighlightText]=\"option.label\"\n matListItemTitle\n vHighlight\n ></span>\n <span\n [vHighlightSearch]=\"searchControl.value\"\n [vHighlightText]=\"option.description\"\n matListItemLine\n vHighlight\n ></span>\n </mat-list-item>\n }\n } @else if (searchControl.value) {\n @if (inProgress$ | async) {\n <mat-list-item>\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n </mat-list-item>\n } @else {\n <mat-list-item>\n <mat-icon matListItemIcon>list</mat-icon>\n <span matListItemTitle>No results found</span>\n </mat-list-item>\n }\n } @else {\n <mat-list-item>\n <mat-icon matListItemIcon>help</mat-icon>\n <span matListItemTitle>Start typing to search</span>\n </mat-list-item>\n }\n </mat-list>\n</div>\n","import { Subject, distinctUntilChanged, of, shareReplay, switchMap } from 'rxjs';\n\nimport { DestroyRef, Injectable, Injector, OnDestroy, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { CmdkComponent } from './cmdk.component';\nimport { CmdkOptions } from './types/cmdk-options';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CmdkService implements OnDestroy {\n private dialog = inject(MatDialog);\n private dr = inject(DestroyRef);\n private injector = inject(Injector);\n\n private config = signal<CmdkOptions | null>(null);\n search$ = new Subject<string>();\n inProgress$ = toObservable(this.config).pipe(\n switchMap((config) =>\n config?.progress\n ? toObservable(config.progress, { injector: this.injector })\n : of(false),\n ),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n options$ = toObservable(this.config).pipe(\n switchMap((config) =>\n config?.options ? toObservable(config.options, { injector: this.injector }) : of([]),\n ),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n constructor() {\n document.addEventListener('keydown', this.listener);\n this.search$\n .pipe(distinctUntilChanged(), takeUntilDestroyed(this.dr))\n .subscribe((searchStr) => {\n this.config()?.search?.(searchStr);\n });\n }\n\n ngOnDestroy() {\n document.removeEventListener('keydown', this.listener);\n }\n\n open() {\n if (this.dialog.openDialogs.length) return;\n this.dialog.open(CmdkComponent, {\n width: 'calc(max(400px, 100vw - 32px))',\n maxWidth: '600px',\n position: { top: '20vh' },\n hasBackdrop: true,\n backdropClass: 'cmdk-backdrop',\n panelClass: 'cmdk-panel',\n });\n }\n\n close() {\n this.search$.next('');\n this.dialog.closeAll();\n }\n\n toggle() {\n if (this.dialog.openDialogs.length) {\n this.close();\n } else {\n this.open();\n }\n }\n\n init(options: CmdkOptions) {\n this.config.set(options);\n }\n\n private listener = (e: KeyboardEvent) => {\n if ((e.metaKey || e.ctrlKey) && e.key === 'k') {\n e.preventDefault();\n this.toggle();\n }\n };\n}\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, OnInit, inject, input, output } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { CmdkService } from '../cmdk.service';\nimport { CmdkOption } from '../types/cmdk-option';\n\n@Component({\n selector: 'v-cmdk-button',\n imports: [MatIconModule, NgClass, MatButtonModule],\n changeDetection: ChangeDetectionStrategy.Eager,\n template: `\n <button\n class=\"!text-[var(--mat-sys-outline)] !shadow-[inset_0_2px_4px_0_rgba(0,0,0,0.1),inset_0_2px_2px_0_rgba(0,0,0,0.06)]\"\n matButton\n (click)=\"cmdkService.open()\"\n >\n <mat-icon>search</mat-icon>\n <div class=\"flex items-center gap-1\">\n <div>Search...</div>\n <div class=\"flex items-center gap-0.5 text-xs\">\n @for (key of searchKeys; track key) {\n <kbd\n [ngClass]=\"{ 'px-1': key.length > 1 }\"\n class=\"bg-[var(--mat-sys-surface-container-high)] rounded min-w-4 h-4\"\n >{{ key }}</kbd\n >\n }\n </div>\n </div>\n </button>\n `,\n})\nexport class CmdkButtonComponent implements OnInit {\n cmdkService = inject(CmdkService);\n\n searchChange = output<string>();\n options = input<CmdkOption[]>([]);\n progress = input<boolean>(false);\n\n searchKeys = [navigator.platform.toUpperCase().includes('MAC') ? '⌘' : 'Ctrl', 'K'];\n\n ngOnInit() {\n this.cmdkService.init({\n search: (searchStr) => {\n this.searchChange.emit(searchStr);\n },\n options: this.options,\n progress: this.progress,\n });\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { CmdkButtonComponent } from './components/cmdk-button.component';\n\n@NgModule({\n imports: [CmdkButtonComponent],\n exports: [CmdkButtonComponent],\n})\nexport class CmdkModule {}\n","import { DEFAULT_CURRENCY_CODE, LOCALE_ID, Pipe, PipeTransform, inject } from '@angular/core';\n\nimport { formatCurrency } from '../utils';\n\n@Pipe({\n standalone: true,\n name: 'amountCurrency',\n})\nexport class AmountCurrencyPipe implements PipeTransform {\n private _locale = inject<string>(LOCALE_ID);\n private _defaultCurrencyCode = inject<string>(DEFAULT_CURRENCY_CODE);\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 isNil from 'lodash-es/isNil';\nimport { ValuesType } from 'utility-types';\n\nimport { Pipe, PipeTransform } from '@angular/core';\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 { formatDistanceToNow } from 'date-fns';\nimport { combineLatest, throttleTime, timer } from 'rxjs';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\n\nimport { Pipe, PipeTransform } from '@angular/core';\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 { Observable, isObservable } from 'rxjs';\n\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectorRef, OnDestroy, Pipe, PipeTransform, inject } from '@angular/core';\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 unknown[] = []>\n implements PipeTransform, OnDestroy\n{\n private ref = inject(ChangeDetectorRef);\n private asyncPipe?: AsyncPipe;\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 * Public API Surface of matez\n */\n\nexport * from './lib';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ActionsComponent","i1","i3","i5.ProgressComponent","catchError","getValue","BaseFormComponentSuperclass","isNil","_get","isObject","papa","filter","map","startWith","distinctUntilChanged","shareReplay","switchMap","take","i2","i4","i5","i2.TagComponent","isEqual","i5.InputFieldComponent","i6.ActionsComponent","i8","i9.TagComponent","debounceTime","first","i4.ValueComponent","i5.NoRecordsComponent","i6.ContentLoadingComponent","i7.InfinityScrollDirective","i8.SelectColumnComponent","i11.DndColumnComponent","i12.TableInfoBarComponent","i13.TableActionsComponent","i2.DialogComponent","i3.DialogActionsComponent","i4.TableComponent","i1.TableComponent","i2.TableActionsComponent","i3.ActionsComponent","i5.ActionsComponent","i6","skipWhile","mergeScan","isEmpty","negate","FormComponentSuperclass"],"mappings":"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"}