diff --git a/projects/addon-table/directives/table-filters/table-filter.directive.ts b/projects/addon-table/directives/table-filters/table-filter.directive.ts index 7480e12bc5bb9..13479fe5b79b0 100644 --- a/projects/addon-table/directives/table-filters/table-filter.directive.ts +++ b/projects/addon-table/directives/table-filters/table-filter.directive.ts @@ -1,6 +1,7 @@ import {Directive, Inject, Input, OnDestroy, OnInit, Optional} from '@angular/core'; import {NgControl} from '@angular/forms'; import {TuiHeadDirective} from '@taiga-ui/addon-table/components'; +import {TuiValuesOf} from '@taiga-ui/cdk'; import {defer, EMPTY, merge} from 'rxjs'; import {distinctUntilChanged} from 'rxjs/operators'; @@ -27,7 +28,7 @@ export class TuiTableFilterDirective implements OnInit, OnDestroy, TuiTableFi @Inject(TuiHeadDirective) private readonly head: TuiHeadDirective | null, @Inject(AbstractTuiTableFilter) - private readonly delegate: AbstractTuiTableFilter, + private readonly delegate: AbstractTuiTableFilter, any>, @Inject(NgControl) private readonly control: NgControl, @Inject(TuiTableFiltersDirective) readonly filters: TuiTableFiltersDirective, ) {} diff --git a/projects/cdk/types/index.ts b/projects/cdk/types/index.ts index 6a12ab5b0500f..904aef3f60cdf 100644 --- a/projects/cdk/types/index.ts +++ b/projects/cdk/types/index.ts @@ -12,3 +12,4 @@ export * from './matcher'; export * from './overscroll-mode'; export * from './rounding'; export * from './time-mode'; +export * from './values-of'; diff --git a/projects/cdk/types/values-of.ts b/projects/cdk/types/values-of.ts new file mode 100644 index 0000000000000..73e28fe4b19f0 --- /dev/null +++ b/projects/cdk/types/values-of.ts @@ -0,0 +1 @@ +export type TuiValuesOf = T[keyof T]; diff --git a/projects/cdk/utils/miscellaneous/uniq-by.ts b/projects/cdk/utils/miscellaneous/uniq-by.ts index 481c5890eb528..f04254a4bf52c 100644 --- a/projects/cdk/utils/miscellaneous/uniq-by.ts +++ b/projects/cdk/utils/miscellaneous/uniq-by.ts @@ -1,3 +1,5 @@ +import {TuiValuesOf} from '@taiga-ui/cdk/types/values-of'; + export function tuiUniqBy>( array: readonly T[], key: keyof T, @@ -6,7 +8,7 @@ export function tuiUniqBy>( array .reduce( (map, item) => (map.has(item[key]) ? map : map.set(item[key], item)), - new Map(), + new Map, T>(), ) .values(), ); diff --git a/projects/core/components/expand/expand.component.ts b/projects/core/components/expand/expand.component.ts index 47bb228817d5f..8a32893c565ba 100644 --- a/projects/core/components/expand/expand.component.ts +++ b/projects/core/components/expand/expand.component.ts @@ -12,17 +12,17 @@ import { TemplateRef, ViewChild, } from '@angular/core'; -import {TUI_PARENT_ANIMATION} from '@taiga-ui/cdk'; +import {TUI_PARENT_ANIMATION, TuiValuesOf} from '@taiga-ui/cdk'; import {TUI_EXPAND_LOADED} from '@taiga-ui/core/constants'; import {TuiExpandContentDirective} from './expand-content.directive'; -enum State { - Idle, - Loading, - Prepared, - Animated, -} +const State = { + Idle: 0, + Loading: 1, + Prepared: 2, + Animated: 3, +} as const; const LOADER_HEIGHT = 48; @@ -37,7 +37,7 @@ export class TuiExpandComponent { @ViewChild('wrapper') private readonly contentWrapper?: ElementRef; - private state = State.Idle; + private state: TuiValuesOf = State.Idle; @Input() async = false; @@ -126,7 +126,7 @@ export class TuiExpandComponent { } } - private retrigger(state: State): void { + private retrigger(state: TuiValuesOf): void { this.state = State.Prepared; // We need delay to re-trigger CSS height transition from the correct number diff --git a/projects/demo/src/modules/components/filter/examples/4/index.ts b/projects/demo/src/modules/components/filter/examples/4/index.ts index 9efbfb21ca986..d42776358e087 100644 --- a/projects/demo/src/modules/components/filter/examples/4/index.ts +++ b/projects/demo/src/modules/components/filter/examples/4/index.ts @@ -6,12 +6,12 @@ import {TuiAppearance} from '@taiga-ui/core'; import {BehaviorSubject, Observable} from 'rxjs'; import {map} from 'rxjs/operators'; -enum Department { - IT = 'IT', - HR = 'HR', - HeadOffice = 'Heads', - Delivery = 'Delivery', -} +const Department = { + IT: 'IT', + HR: 'HR', + HeadOffice: 'Heads', + Delivery: 'Delivery', +} as const; @Component({ selector: 'tui-filter-example-4',