@taiga-ui/addon-table 4.7.0 → 4.8.1-canary.d818d28

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.
@@ -3,7 +3,7 @@ import type { Observable } from 'rxjs';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class TuiTableFiltersPipe<T> implements PipeTransform {
5
5
  private readonly filters;
6
- transform(items: readonly T[]): Observable<readonly T[]>;
6
+ transform<T>(items: readonly T[]): Observable<readonly T[]>;
7
7
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiTableFiltersPipe<any>, never>;
8
8
  static ɵpipe: i0.ɵɵPipeDeclaration<TuiTableFiltersPipe<any>, "tuiTableFilters", true>;
9
9
  }
@@ -19,4 +19,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
19
19
  name: 'tuiTableFilters',
20
20
  }]
21
21
  }] });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZmlsdGVycy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tdGFibGUvZGlyZWN0aXZlcy90YWJsZS1maWx0ZXJzL3RhYmxlLWZpbHRlcnMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQzs7QUFFbkUsTUFJYSxtQkFBbUI7SUFKaEM7UUFLcUIsWUFBTyxHQUFHLE1BQU0sQ0FBQyxDQUFBLHdCQUEyQixDQUFBLENBQUMsQ0FBQztLQUtsRTtJQUhVLFNBQVMsQ0FBQyxLQUFtQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7K0dBTFEsbUJBQW1COzZHQUFuQixtQkFBbUI7O1NBQW5CLG1CQUFtQjs0RkFBbkIsbUJBQW1CO2tCQUovQixJQUFJO21CQUFDO29CQUNGLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUUsaUJBQWlCO2lCQUMxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7aW5qZWN0LCBQaXBlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtUdWlUYWJsZUZpbHRlcnNEaXJlY3RpdmV9IGZyb20gJy4vdGFibGUtZmlsdGVycy5kaXJlY3RpdmUnO1xuXG5AUGlwZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBuYW1lOiAndHVpVGFibGVGaWx0ZXJzJyxcbn0pXG5leHBvcnQgY2xhc3MgVHVpVGFibGVGaWx0ZXJzUGlwZTxUPiBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZmlsdGVycyA9IGluamVjdChUdWlUYWJsZUZpbHRlcnNEaXJlY3RpdmU8VD4pO1xuXG4gICAgcHVibGljIHRyYW5zZm9ybShpdGVtczogcmVhZG9ubHkgVFtdKTogT2JzZXJ2YWJsZTxyZWFkb25seSBUW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVycy5maWx0ZXIoaXRlbXMpO1xuICAgIH1cbn1cbiJdfQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZmlsdGVycy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tdGFibGUvZGlyZWN0aXZlcy90YWJsZS1maWx0ZXJzL3RhYmxlLWZpbHRlcnMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQzs7QUFFbkUsTUFJYSxtQkFBbUI7SUFKaEM7UUFLcUIsWUFBTyxHQUFHLE1BQU0sQ0FBQyxDQUFBLHdCQUEyQixDQUFBLENBQUMsQ0FBQztLQUtsRTtJQUhVLFNBQVMsQ0FBSSxLQUFtQjtRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7K0dBTFEsbUJBQW1COzZHQUFuQixtQkFBbUI7O1NBQW5CLG1CQUFtQjs0RkFBbkIsbUJBQW1CO2tCQUovQixJQUFJO21CQUFDO29CQUNGLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUUsaUJBQWlCO2lCQUMxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7aW5qZWN0LCBQaXBlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtUdWlUYWJsZUZpbHRlcnNEaXJlY3RpdmV9IGZyb20gJy4vdGFibGUtZmlsdGVycy5kaXJlY3RpdmUnO1xuXG5AUGlwZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBuYW1lOiAndHVpVGFibGVGaWx0ZXJzJyxcbn0pXG5leHBvcnQgY2xhc3MgVHVpVGFibGVGaWx0ZXJzUGlwZTxUPiBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZmlsdGVycyA9IGluamVjdChUdWlUYWJsZUZpbHRlcnNEaXJlY3RpdmU8VD4pO1xuXG4gICAgcHVibGljIHRyYW5zZm9ybTxUPihpdGVtczogcmVhZG9ubHkgVFtdKTogT2JzZXJ2YWJsZTxyZWFkb25seSBUW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVycy5maWx0ZXIoaXRlbXMpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-table-directives-table-filters.mjs","sources":["../../../projects/addon-table/directives/table-filters/abstract-table-filter.ts","../../../projects/addon-table/directives/table-filters/generic-filter.directive.ts","../../../projects/addon-table/directives/table-filters/table-filters.directive.ts","../../../projects/addon-table/directives/table-filters/table-filter.directive.ts","../../../projects/addon-table/directives/table-filters/table-filters.pipe.ts","../../../projects/addon-table/directives/table-filters/table-filters.ts","../../../projects/addon-table/directives/table-filters/taiga-ui-addon-table-directives-table-filters.ts"],"sourcesContent":["export abstract class AbstractTuiTableFilter<T, G> {\n public abstract filter(item: T, value: G): boolean;\n}\n","import {Directive, Input} from '@angular/core';\nimport {TUI_TRUE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {AbstractTuiTableFilter} from './abstract-table-filter';\n\n@Directive({\n standalone: true,\n selector: '[tuiGenericFilter]',\n providers: [tuiProvide(AbstractTuiTableFilter, TuiGenericFilter)],\n})\nexport class TuiGenericFilter<T, G> extends AbstractTuiTableFilter<T, G> {\n @Input('tuiGenericFilter')\n public filter: (item: T, value: G) => boolean = TUI_TRUE_HANDLER;\n}\n","import {Directive} from '@angular/core';\nimport type {Observable} from 'rxjs';\nimport {identity, map, merge, ReplaySubject, startWith, switchMap} from 'rxjs';\n\nimport type {TuiTableFilter} from './table-filter';\n\n@Directive({\n standalone: true,\n selector: '[tuiTableFilters]',\n})\nexport class TuiTableFiltersDirective<T> {\n private readonly refresh$ = new ReplaySubject<Observable<unknown>>(1);\n\n private filters: ReadonlyArray<TuiTableFilter<T>> = [];\n\n public register(filter: TuiTableFilter<T>): void {\n this.filters = this.filters.concat(filter);\n this.update();\n }\n\n public unregister(filter: TuiTableFilter<T>): void {\n this.filters = this.filters.filter((item) => item !== filter);\n this.update();\n }\n\n public filter(items: readonly T[]): Observable<readonly T[]> {\n return this.refresh$.pipe(\n switchMap(identity),\n startWith(null),\n map(() => items.filter((item) => this.check(item))),\n );\n }\n\n private check(item: T): boolean {\n return this.filters.every((filter) => filter.filter(item));\n }\n\n private update(): void {\n this.refresh$.next(merge(...this.filters.map(({refresh$}) => refresh$)));\n }\n}\n","import type {OnDestroy, OnInit} from '@angular/core';\nimport {Directive, inject, Input} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {TuiTableHead} from '@taiga-ui/addon-table/components';\nimport type {TuiValuesOf} from '@taiga-ui/cdk/types';\nimport {defer, distinctUntilChanged, EMPTY, merge} from 'rxjs';\n\nimport {AbstractTuiTableFilter} from './abstract-table-filter';\nimport type {TuiTableFilter} from './table-filter';\nimport {TuiTableFiltersDirective} from './table-filters.directive';\n\n@Directive({\n standalone: true,\n selector: '[tuiTableFilter]',\n})\nexport class TuiTableFilterDirective<T> implements OnInit, OnDestroy, TuiTableFilter<T> {\n private readonly head = inject(TuiTableHead<T>, {optional: true});\n private readonly delegate = inject(AbstractTuiTableFilter<TuiValuesOf<T>, any>);\n private readonly control = inject(NgControl);\n protected readonly filters = inject(TuiTableFiltersDirective<T>);\n\n @Input()\n public tuiTableFilter?: keyof T;\n\n public readonly refresh$ = defer(() =>\n merge(\n this.control.valueChanges || EMPTY,\n this.control.statusChanges?.pipe(distinctUntilChanged()) || EMPTY,\n ),\n );\n\n public ngOnInit(): void {\n this.filters.register(this);\n }\n\n public ngOnDestroy(): void {\n this.filters.unregister(this);\n }\n\n public filter(item: T): boolean {\n const {disabled, value} = this.control;\n\n return (\n !!disabled ||\n !this.key ||\n this.delegate.filter(item[this.key as keyof T], value)\n );\n }\n\n private get key(): string | keyof T | undefined {\n return this.tuiTableFilter || this.head?.tuiHead;\n }\n}\n","import type {PipeTransform} from '@angular/core';\nimport {inject, Pipe} from '@angular/core';\nimport type {Observable} from 'rxjs';\n\nimport {TuiTableFiltersDirective} from './table-filters.directive';\n\n@Pipe({\n standalone: true,\n name: 'tuiTableFilters',\n})\nexport class TuiTableFiltersPipe<T> implements PipeTransform {\n private readonly filters = inject(TuiTableFiltersDirective<T>);\n\n public transform(items: readonly T[]): Observable<readonly T[]> {\n return this.filters.filter(items);\n }\n}\n","import {TuiGenericFilter} from './generic-filter.directive';\nimport {TuiTableFilterDirective} from './table-filter.directive';\nimport {TuiTableFiltersDirective} from './table-filters.directive';\nimport {TuiTableFiltersPipe} from './table-filters.pipe';\n\nexport const TuiTableFilters = [\n TuiTableFiltersDirective,\n TuiTableFilterDirective,\n TuiTableFiltersPipe,\n TuiGenericFilter,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-addon-table-directives-table-filters.mjs","sources":["../../../projects/addon-table/directives/table-filters/abstract-table-filter.ts","../../../projects/addon-table/directives/table-filters/generic-filter.directive.ts","../../../projects/addon-table/directives/table-filters/table-filters.directive.ts","../../../projects/addon-table/directives/table-filters/table-filter.directive.ts","../../../projects/addon-table/directives/table-filters/table-filters.pipe.ts","../../../projects/addon-table/directives/table-filters/table-filters.ts","../../../projects/addon-table/directives/table-filters/taiga-ui-addon-table-directives-table-filters.ts"],"sourcesContent":["export abstract class AbstractTuiTableFilter<T, G> {\n public abstract filter(item: T, value: G): boolean;\n}\n","import {Directive, Input} from '@angular/core';\nimport {TUI_TRUE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {AbstractTuiTableFilter} from './abstract-table-filter';\n\n@Directive({\n standalone: true,\n selector: '[tuiGenericFilter]',\n providers: [tuiProvide(AbstractTuiTableFilter, TuiGenericFilter)],\n})\nexport class TuiGenericFilter<T, G> extends AbstractTuiTableFilter<T, G> {\n @Input('tuiGenericFilter')\n public filter: (item: T, value: G) => boolean = TUI_TRUE_HANDLER;\n}\n","import {Directive} from '@angular/core';\nimport type {Observable} from 'rxjs';\nimport {identity, map, merge, ReplaySubject, startWith, switchMap} from 'rxjs';\n\nimport type {TuiTableFilter} from './table-filter';\n\n@Directive({\n standalone: true,\n selector: '[tuiTableFilters]',\n})\nexport class TuiTableFiltersDirective<T> {\n private readonly refresh$ = new ReplaySubject<Observable<unknown>>(1);\n\n private filters: ReadonlyArray<TuiTableFilter<T>> = [];\n\n public register(filter: TuiTableFilter<T>): void {\n this.filters = this.filters.concat(filter);\n this.update();\n }\n\n public unregister(filter: TuiTableFilter<T>): void {\n this.filters = this.filters.filter((item) => item !== filter);\n this.update();\n }\n\n public filter(items: readonly T[]): Observable<readonly T[]> {\n return this.refresh$.pipe(\n switchMap(identity),\n startWith(null),\n map(() => items.filter((item) => this.check(item))),\n );\n }\n\n private check(item: T): boolean {\n return this.filters.every((filter) => filter.filter(item));\n }\n\n private update(): void {\n this.refresh$.next(merge(...this.filters.map(({refresh$}) => refresh$)));\n }\n}\n","import type {OnDestroy, OnInit} from '@angular/core';\nimport {Directive, inject, Input} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {TuiTableHead} from '@taiga-ui/addon-table/components';\nimport type {TuiValuesOf} from '@taiga-ui/cdk/types';\nimport {defer, distinctUntilChanged, EMPTY, merge} from 'rxjs';\n\nimport {AbstractTuiTableFilter} from './abstract-table-filter';\nimport type {TuiTableFilter} from './table-filter';\nimport {TuiTableFiltersDirective} from './table-filters.directive';\n\n@Directive({\n standalone: true,\n selector: '[tuiTableFilter]',\n})\nexport class TuiTableFilterDirective<T> implements OnInit, OnDestroy, TuiTableFilter<T> {\n private readonly head = inject(TuiTableHead<T>, {optional: true});\n private readonly delegate = inject(AbstractTuiTableFilter<TuiValuesOf<T>, any>);\n private readonly control = inject(NgControl);\n protected readonly filters = inject(TuiTableFiltersDirective<T>);\n\n @Input()\n public tuiTableFilter?: keyof T;\n\n public readonly refresh$ = defer(() =>\n merge(\n this.control.valueChanges || EMPTY,\n this.control.statusChanges?.pipe(distinctUntilChanged()) || EMPTY,\n ),\n );\n\n public ngOnInit(): void {\n this.filters.register(this);\n }\n\n public ngOnDestroy(): void {\n this.filters.unregister(this);\n }\n\n public filter(item: T): boolean {\n const {disabled, value} = this.control;\n\n return (\n !!disabled ||\n !this.key ||\n this.delegate.filter(item[this.key as keyof T], value)\n );\n }\n\n private get key(): string | keyof T | undefined {\n return this.tuiTableFilter || this.head?.tuiHead;\n }\n}\n","import type {PipeTransform} from '@angular/core';\nimport {inject, Pipe} from '@angular/core';\nimport type {Observable} from 'rxjs';\n\nimport {TuiTableFiltersDirective} from './table-filters.directive';\n\n@Pipe({\n standalone: true,\n name: 'tuiTableFilters',\n})\nexport class TuiTableFiltersPipe<T> implements PipeTransform {\n private readonly filters = inject(TuiTableFiltersDirective<T>);\n\n public transform<T>(items: readonly T[]): Observable<readonly T[]> {\n return this.filters.filter(items);\n }\n}\n","import {TuiGenericFilter} from './generic-filter.directive';\nimport {TuiTableFilterDirective} from './table-filter.directive';\nimport {TuiTableFiltersDirective} from './table-filters.directive';\nimport {TuiTableFiltersPipe} from './table-filters.pipe';\n\nexport const TuiTableFilters = [\n TuiTableFiltersDirective,\n TuiTableFilterDirective,\n TuiTableFiltersPipe,\n TuiGenericFilter,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,91 +1,91 @@
1
1
  {
2
- "name": "@taiga-ui/addon-table",
3
- "version": "4.7.0",
4
- "description": "A library to display tabled data with filters, search, group actions, etc.",
5
- "keywords": [
6
- "angular",
7
- "component",
8
- "table",
9
- "group",
10
- "action"
11
- ],
12
- "homepage": "https://github.com/taiga-family/taiga-ui",
13
- "repository": "https://github.com/taiga-family/taiga-ui",
14
- "license": "Apache-2.0",
15
- "peerDependencies": {
16
- "@angular/common": ">=16.0.0",
17
- "@angular/core": ">=16.0.0",
18
- "@ng-web-apis/intersection-observer": "^4.6.0",
19
- "@taiga-ui/cdk": "^4.7.0",
20
- "@taiga-ui/core": "^4.7.0",
21
- "@taiga-ui/i18n": "^4.7.0",
22
- "@taiga-ui/kit": "^4.7.0",
23
- "@taiga-ui/polymorpheus": "^4.7.1",
24
- "rxjs": ">=7.0.0"
25
- },
26
- "module": "fesm2022/taiga-ui-addon-table.mjs",
27
- "typings": "index.d.ts",
28
- "exports": {
29
- "./package.json": {
30
- "default": "./package.json"
2
+ "name": "@taiga-ui/addon-table",
3
+ "version": "4.8.1-canary.d818d28",
4
+ "description": "A library to display tabled data with filters, search, group actions, etc.",
5
+ "keywords": [
6
+ "angular",
7
+ "component",
8
+ "table",
9
+ "group",
10
+ "action"
11
+ ],
12
+ "homepage": "https://github.com/taiga-family/taiga-ui",
13
+ "repository": "https://github.com/taiga-family/taiga-ui",
14
+ "license": "Apache-2.0",
15
+ "peerDependencies": {
16
+ "@angular/common": ">=16.0.0",
17
+ "@angular/core": ">=16.0.0",
18
+ "@ng-web-apis/intersection-observer": "^4.6.3",
19
+ "@taiga-ui/cdk": "^4.8.1-canary.d818d28",
20
+ "@taiga-ui/core": "^4.8.1-canary.d818d28",
21
+ "@taiga-ui/i18n": "^4.8.1-canary.d818d28",
22
+ "@taiga-ui/kit": "^4.8.1-canary.d818d28",
23
+ "@taiga-ui/polymorpheus": "^4.7.3",
24
+ "rxjs": ">=7.0.0"
31
25
  },
32
- ".": {
33
- "types": "./index.d.ts",
34
- "esm2022": "./esm2022/taiga-ui-addon-table.mjs",
35
- "esm": "./esm2022/taiga-ui-addon-table.mjs",
36
- "default": "./fesm2022/taiga-ui-addon-table.mjs"
26
+ "module": "fesm2022/taiga-ui-addon-table.mjs",
27
+ "typings": "index.d.ts",
28
+ "exports": {
29
+ "./package.json": {
30
+ "default": "./package.json"
31
+ },
32
+ ".": {
33
+ "types": "./index.d.ts",
34
+ "esm2022": "./esm2022/taiga-ui-addon-table.mjs",
35
+ "esm": "./esm2022/taiga-ui-addon-table.mjs",
36
+ "default": "./fesm2022/taiga-ui-addon-table.mjs"
37
+ },
38
+ "./components": {
39
+ "types": "./components/index.d.ts",
40
+ "esm2022": "./esm2022/components/taiga-ui-addon-table-components.mjs",
41
+ "esm": "./esm2022/components/taiga-ui-addon-table-components.mjs",
42
+ "default": "./fesm2022/taiga-ui-addon-table-components.mjs"
43
+ },
44
+ "./directives": {
45
+ "types": "./directives/index.d.ts",
46
+ "esm2022": "./esm2022/directives/taiga-ui-addon-table-directives.mjs",
47
+ "esm": "./esm2022/directives/taiga-ui-addon-table-directives.mjs",
48
+ "default": "./fesm2022/taiga-ui-addon-table-directives.mjs"
49
+ },
50
+ "./tokens": {
51
+ "types": "./tokens/index.d.ts",
52
+ "esm2022": "./esm2022/tokens/taiga-ui-addon-table-tokens.mjs",
53
+ "esm": "./esm2022/tokens/taiga-ui-addon-table-tokens.mjs",
54
+ "default": "./fesm2022/taiga-ui-addon-table-tokens.mjs"
55
+ },
56
+ "./types": {
57
+ "types": "./types/index.d.ts",
58
+ "esm2022": "./esm2022/types/taiga-ui-addon-table-types.mjs",
59
+ "esm": "./esm2022/types/taiga-ui-addon-table-types.mjs",
60
+ "default": "./fesm2022/taiga-ui-addon-table-types.mjs"
61
+ },
62
+ "./components/reorder": {
63
+ "types": "./components/reorder/index.d.ts",
64
+ "esm2022": "./esm2022/components/reorder/taiga-ui-addon-table-components-reorder.mjs",
65
+ "esm": "./esm2022/components/reorder/taiga-ui-addon-table-components-reorder.mjs",
66
+ "default": "./fesm2022/taiga-ui-addon-table-components-reorder.mjs"
67
+ },
68
+ "./components/table": {
69
+ "types": "./components/table/index.d.ts",
70
+ "esm2022": "./esm2022/components/table/taiga-ui-addon-table-components-table.mjs",
71
+ "esm": "./esm2022/components/table/taiga-ui-addon-table-components-table.mjs",
72
+ "default": "./fesm2022/taiga-ui-addon-table-components-table.mjs"
73
+ },
74
+ "./components/table-pagination": {
75
+ "types": "./components/table-pagination/index.d.ts",
76
+ "esm2022": "./esm2022/components/table-pagination/taiga-ui-addon-table-components-table-pagination.mjs",
77
+ "esm": "./esm2022/components/table-pagination/taiga-ui-addon-table-components-table-pagination.mjs",
78
+ "default": "./fesm2022/taiga-ui-addon-table-components-table-pagination.mjs"
79
+ },
80
+ "./directives/table-filters": {
81
+ "types": "./directives/table-filters/index.d.ts",
82
+ "esm2022": "./esm2022/directives/table-filters/taiga-ui-addon-table-directives-table-filters.mjs",
83
+ "esm": "./esm2022/directives/table-filters/taiga-ui-addon-table-directives-table-filters.mjs",
84
+ "default": "./fesm2022/taiga-ui-addon-table-directives-table-filters.mjs"
85
+ }
37
86
  },
38
- "./components": {
39
- "types": "./components/index.d.ts",
40
- "esm2022": "./esm2022/components/taiga-ui-addon-table-components.mjs",
41
- "esm": "./esm2022/components/taiga-ui-addon-table-components.mjs",
42
- "default": "./fesm2022/taiga-ui-addon-table-components.mjs"
43
- },
44
- "./directives": {
45
- "types": "./directives/index.d.ts",
46
- "esm2022": "./esm2022/directives/taiga-ui-addon-table-directives.mjs",
47
- "esm": "./esm2022/directives/taiga-ui-addon-table-directives.mjs",
48
- "default": "./fesm2022/taiga-ui-addon-table-directives.mjs"
49
- },
50
- "./tokens": {
51
- "types": "./tokens/index.d.ts",
52
- "esm2022": "./esm2022/tokens/taiga-ui-addon-table-tokens.mjs",
53
- "esm": "./esm2022/tokens/taiga-ui-addon-table-tokens.mjs",
54
- "default": "./fesm2022/taiga-ui-addon-table-tokens.mjs"
55
- },
56
- "./types": {
57
- "types": "./types/index.d.ts",
58
- "esm2022": "./esm2022/types/taiga-ui-addon-table-types.mjs",
59
- "esm": "./esm2022/types/taiga-ui-addon-table-types.mjs",
60
- "default": "./fesm2022/taiga-ui-addon-table-types.mjs"
61
- },
62
- "./components/reorder": {
63
- "types": "./components/reorder/index.d.ts",
64
- "esm2022": "./esm2022/components/reorder/taiga-ui-addon-table-components-reorder.mjs",
65
- "esm": "./esm2022/components/reorder/taiga-ui-addon-table-components-reorder.mjs",
66
- "default": "./fesm2022/taiga-ui-addon-table-components-reorder.mjs"
67
- },
68
- "./components/table": {
69
- "types": "./components/table/index.d.ts",
70
- "esm2022": "./esm2022/components/table/taiga-ui-addon-table-components-table.mjs",
71
- "esm": "./esm2022/components/table/taiga-ui-addon-table-components-table.mjs",
72
- "default": "./fesm2022/taiga-ui-addon-table-components-table.mjs"
73
- },
74
- "./components/table-pagination": {
75
- "types": "./components/table-pagination/index.d.ts",
76
- "esm2022": "./esm2022/components/table-pagination/taiga-ui-addon-table-components-table-pagination.mjs",
77
- "esm": "./esm2022/components/table-pagination/taiga-ui-addon-table-components-table-pagination.mjs",
78
- "default": "./fesm2022/taiga-ui-addon-table-components-table-pagination.mjs"
79
- },
80
- "./directives/table-filters": {
81
- "types": "./directives/table-filters/index.d.ts",
82
- "esm2022": "./esm2022/directives/table-filters/taiga-ui-addon-table-directives-table-filters.mjs",
83
- "esm": "./esm2022/directives/table-filters/taiga-ui-addon-table-directives-table-filters.mjs",
84
- "default": "./fesm2022/taiga-ui-addon-table-directives-table-filters.mjs"
87
+ "sideEffects": false,
88
+ "dependencies": {
89
+ "tslib": "^2.7.0"
85
90
  }
86
- },
87
- "sideEffects": false,
88
- "dependencies": {
89
- "tslib": "^2.7.0"
90
- }
91
91
  }