@one-paragon/angular-utilities 2.8.4 → 2.8.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/one-paragon-angular-utilities.mjs +7350 -0
- package/fesm2022/one-paragon-angular-utilities.mjs.map +1 -0
- package/package.json +27 -15
- package/types/one-paragon-angular-utilities.d.ts +2211 -0
- package/karma.conf.js +0 -43
- package/ng-package.json +0 -7
- package/src/action-state/action-state-spinner/action-state-spinner.component.css +0 -16
- package/src/action-state/action-state-spinner/action-state-spinner.component.html +0 -7
- package/src/action-state/action-state-spinner/action-state-spinner.component.spec.ts +0 -25
- package/src/action-state/action-state-spinner/action-state-spinner.component.ts +0 -26
- package/src/action-state/action-state-ui/action-state-ui.module.ts +0 -13
- package/src/action-state/index.ts +0 -8
- package/src/action-state/ngrx-ext/ngrx-ext.module.ts +0 -14
- package/src/action-state/ngrx.ts +0 -69
- package/src/http-request-state/RequestStateFactory.ts +0 -56
- package/src/http-request-state/RequestStateStore.ts +0 -360
- package/src/http-request-state/deprecated.ts +0 -20
- package/src/http-request-state/directives/HttpStateDirectiveBase.ts +0 -29
- package/src/http-request-state/directives/http-error-state-directive.ts +0 -21
- package/src/http-request-state/directives/http-inProgress-state-directive.ts +0 -19
- package/src/http-request-state/directives/http-notStarted-state-directive.ts +0 -19
- package/src/http-request-state/directives/http-success-state-directive.ts +0 -29
- package/src/http-request-state/directives/index.ts +0 -5
- package/src/http-request-state/directives/request-state-directive.spec.ts +0 -73
- package/src/http-request-state/directives/request-state-directive.ts +0 -78
- package/src/http-request-state/documentation/CREATE-REQUESTOR.md +0 -667
- package/src/http-request-state/documentation/README.md +0 -191
- package/src/http-request-state/documentation/REQUEST-STATE-STORE-CONFIG.md +0 -648
- package/src/http-request-state/documentation/REQUESTOR.md +0 -616
- package/src/http-request-state/helpers.ts +0 -30
- package/src/http-request-state/http-state-module.ts +0 -23
- package/src/http-request-state/index.ts +0 -7
- package/src/http-request-state/models/view-context.ts +0 -18
- package/src/http-request-state/observable.spec.ts +0 -43
- package/src/http-request-state/request-state.ts +0 -66
- package/src/http-request-state/rxjs/getRequestorBody.ts +0 -10
- package/src/http-request-state/rxjs/getRequestorState.ts +0 -8
- package/src/http-request-state/rxjs/index.ts +0 -4
- package/src/http-request-state/rxjs/tapError.ts +0 -16
- package/src/http-request-state/rxjs/tapSuccess.ts +0 -16
- package/src/http-request-state/strategies.spec.ts +0 -42
- package/src/http-request-state/types.ts +0 -54
- package/src/ngrx/actionable-selector.ts +0 -189
- package/src/ngrx/index.ts +0 -1
- package/src/public-api.ts +0 -40
- package/src/rxjs/defaultShareReplay.ts +0 -8
- package/src/rxjs/index.ts +0 -5
- package/src/rxjs/mapError.ts +0 -8
- package/src/rxjs/rxjs-operators.ts +0 -130
- package/src/rxjs/subjectifier.ts +0 -17
- package/src/rxjs/subscriber.directive.ts +0 -57
- package/src/specs/clickSubject.spec.ts +0 -99
- package/src/specs/dialog.spec.ts +0 -101
- package/src/specs/toggleGroupDirective.spec.ts +0 -229
- package/src/table-builder/classes/DefaultSettings.ts +0 -11
- package/src/table-builder/classes/MatTableObservableDataSource.ts +0 -23
- package/src/table-builder/classes/TableBuilderConfig.ts +0 -49
- package/src/table-builder/classes/TableBuilderDataSource.ts +0 -64
- package/src/table-builder/classes/TableState.ts +0 -96
- package/src/table-builder/classes/data-store.ts +0 -10
- package/src/table-builder/classes/display-col.ts +0 -5
- package/src/table-builder/classes/filter-info.ts +0 -129
- package/src/table-builder/classes/table-builder-general-settings.ts +0 -233
- package/src/table-builder/classes/table-builder.ts +0 -105
- package/src/table-builder/classes/table-store.helpers.ts +0 -109
- package/src/table-builder/classes/table-store.ts +0 -540
- package/src/table-builder/components/array-column.component.ts +0 -34
- package/src/table-builder/components/column-builder/column-builder.component.html +0 -109
- package/src/table-builder/components/column-builder/column-builder.component.scss +0 -43
- package/src/table-builder/components/column-builder/column-builder.component.spec.ts +0 -49
- package/src/table-builder/components/column-builder/column-builder.component.ts +0 -130
- package/src/table-builder/components/column-builder/column-helpers.ts +0 -54
- package/src/table-builder/components/column-header-menu/column-header-menu.component.html +0 -128
- package/src/table-builder/components/column-header-menu/column-header-menu.component.scss +0 -97
- package/src/table-builder/components/column-header-menu/column-header-menu.component.ts +0 -113
- package/src/table-builder/components/date-filter/date-filter.component.html +0 -39
- package/src/table-builder/components/date-filter/date-filter.component.ts +0 -33
- package/src/table-builder/components/date-time-filter/date-time-filter.component.html +0 -25
- package/src/table-builder/components/date-time-filter/date-time-filter.component.ts +0 -33
- package/src/table-builder/components/filter/filter.component.html +0 -120
- package/src/table-builder/components/filter/filter.component.scss +0 -60
- package/src/table-builder/components/filter/filter.component.spec.ts +0 -86
- package/src/table-builder/components/filter/filter.component.ts +0 -73
- package/src/table-builder/components/filter/in-list/in-list-filter.component.ts +0 -171
- package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.html +0 -60
- package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.scss +0 -57
- package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.ts +0 -44
- package/src/table-builder/components/generic-table/generic-table.component.html +0 -140
- package/src/table-builder/components/generic-table/generic-table.component.scss +0 -45
- package/src/table-builder/components/generic-table/generic-table.component.ts +0 -531
- package/src/table-builder/components/generic-table/paginator.component.ts +0 -125
- package/src/table-builder/components/group-by-list/group-by-list.component.css +0 -24
- package/src/table-builder/components/group-by-list/group-by-list.component.html +0 -21
- package/src/table-builder/components/group-by-list/group-by-list.component.spec.ts +0 -23
- package/src/table-builder/components/group-by-list/group-by-list.component.ts +0 -26
- package/src/table-builder/components/in-filter/in-filter.component.css +0 -22
- package/src/table-builder/components/in-filter/in-filter.component.html +0 -38
- package/src/table-builder/components/in-filter/in-filter.component.ts +0 -66
- package/src/table-builder/components/index.ts +0 -9
- package/src/table-builder/components/initialization-component/initialization.component.html +0 -78
- package/src/table-builder/components/initialization-component/initialization.component.ts +0 -28
- package/src/table-builder/components/link-column.component.ts +0 -42
- package/src/table-builder/components/number-filter/number-filter.component.css +0 -10
- package/src/table-builder/components/number-filter/number-filter.component.html +0 -32
- package/src/table-builder/components/number-filter/number-filter.component.spec.ts +0 -30
- package/src/table-builder/components/number-filter/number-filter.component.ts +0 -34
- package/src/table-builder/components/profiles-menu/profiles-menu.component.html +0 -77
- package/src/table-builder/components/profiles-menu/profiles-menu.component.scss +0 -126
- package/src/table-builder/components/profiles-menu/profiles-menu.component.spec.ts +0 -23
- package/src/table-builder/components/profiles-menu/profiles-menu.component.ts +0 -64
- package/src/table-builder/components/reset-menu/reset-menu.component.css +0 -3
- package/src/table-builder/components/reset-menu/reset-menu.component.html +0 -10
- package/src/table-builder/components/reset-menu/reset-menu.component.ts +0 -87
- package/src/table-builder/components/scroll-strategy.ts +0 -139
- package/src/table-builder/components/sort-menu/sort-menu.component-store.ts +0 -57
- package/src/table-builder/components/sort-menu/sort-menu.component.html +0 -115
- package/src/table-builder/components/sort-menu/sort-menu.component.scss +0 -119
- package/src/table-builder/components/sort-menu/sort-menu.component.ts +0 -88
- package/src/table-builder/components/table-container/table-container.component.html +0 -94
- package/src/table-builder/components/table-container/table-container.component.scss +0 -60
- package/src/table-builder/components/table-container/table-container.component.ts +0 -467
- package/src/table-builder/components/table-container/table-container.helpers/data-state.helpers.ts +0 -113
- package/src/table-builder/components/table-container/table-container.helpers/filter-state.helpers.ts +0 -125
- package/src/table-builder/components/table-container/table-container.helpers/groupBy.helpers.ts +0 -172
- package/src/table-builder/components/table-container/table-container.helpers/meta-data.helpers.ts +0 -19
- package/src/table-builder/components/table-container/table-container.helpers/sort-state.helpers.ts +0 -47
- package/src/table-builder/components/table-container/tableProps.ts +0 -21
- package/src/table-builder/components/table-container/virtual-scroll-container.ts +0 -216
- package/src/table-builder/components/table-container-filter/filter-list/filter-list.component.html +0 -42
- package/src/table-builder/components/table-container-filter/filter-list/filter-list.component.ts +0 -47
- package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.css +0 -40
- package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.html +0 -11
- package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.spec.ts +0 -85
- package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.ts +0 -35
- package/src/table-builder/components/table-container-filter/table-wrapper-filter-store.ts +0 -13
- package/src/table-builder/components/table-header-menu/table-header-menu.component.css +0 -21
- package/src/table-builder/components/table-header-menu/table-header-menu.component.html +0 -48
- package/src/table-builder/components/table-header-menu/table-header-menu.component.ts +0 -36
- package/src/table-builder/directives/custom-cell-directive.ts +0 -63
- package/src/table-builder/directives/custom-header-directive.ts +0 -16
- package/src/table-builder/directives/group-row-directive.ts +0 -91
- package/src/table-builder/directives/index.ts +0 -8
- package/src/table-builder/directives/multi-sort.directive.spec.ts +0 -124
- package/src/table-builder/directives/multi-sort.directive.ts +0 -58
- package/src/table-builder/directives/resize-column.directive.ts +0 -107
- package/src/table-builder/directives/table-wrapper.directive.ts +0 -13
- package/src/table-builder/directives/tb-filter.directive.ts +0 -376
- package/src/table-builder/documentation/table-builder/CUSTOM-CELL.md +0 -568
- package/src/table-builder/documentation/table-builder/CUSTOM-GROUP-ROW.md +0 -356
- package/src/table-builder/documentation/table-builder/METADATA-DOCUMENTATION.md +0 -517
- package/src/table-builder/documentation/table-builder/STYLER-STYLE.md +0 -228
- package/src/table-builder/documentation/table-builder/TABLE-BUILDER-CONFIG.md +0 -325
- package/src/table-builder/documentation/table-builder/TABLE-BUILDER-SETTINGS.md +0 -515
- package/src/table-builder/documentation/table-builder/TABLE-BUILDER.md +0 -430
- package/src/table-builder/documentation/table-builder/TABLE-CONTAINER.md +0 -628
- package/src/table-builder/enums/filterTypes.ts +0 -39
- package/src/table-builder/functions/boolean-filter-function.ts +0 -12
- package/src/table-builder/functions/date-filter-function.ts +0 -85
- package/src/table-builder/functions/download-data.ts +0 -11
- package/src/table-builder/functions/null-filter-function.ts +0 -9
- package/src/table-builder/functions/number-filter-function.ts +0 -47
- package/src/table-builder/functions/sort-data-function.ts +0 -80
- package/src/table-builder/functions/string-filter-function.ts +0 -59
- package/src/table-builder/interfaces/ColumnInfo.ts +0 -9
- package/src/table-builder/interfaces/dictionary.ts +0 -3
- package/src/table-builder/interfaces/meta-data.ts +0 -279
- package/src/table-builder/ngrx/tableBuilderStateStore.ts +0 -203
- package/src/table-builder/pipes/column-total.pipe.ts +0 -16
- package/src/table-builder/pipes/format-filter-type.pipe.ts +0 -12
- package/src/table-builder/pipes/format-filter-value.pipe.ts +0 -71
- package/src/table-builder/pipes/key-display.ts +0 -13
- package/src/table-builder/services/all-values-filter-creator.service.ts +0 -92
- package/src/table-builder/services/export-to-csv.service.ts +0 -117
- package/src/table-builder/services/link-creator.service.ts +0 -98
- package/src/table-builder/services/table-template-service.ts +0 -47
- package/src/table-builder/services/transform-creator.ts +0 -90
- package/src/table-builder/specs/table-custom-filters.spec.ts +0 -262
- package/src/table-builder/styles/collapser.styles.scss +0 -16
- package/src/table-builder/table-builder.module.ts +0 -42
- package/src/table-builder/types/group-types.ts +0 -42
- package/src/table-builder/types/index.ts +0 -1
- package/src/test.ts +0 -17
- package/src/utilities/array-helpers.ts +0 -13
- package/src/utilities/directives/auto-focus.directive.ts +0 -20
- package/src/utilities/directives/clickEmitterDirective.ts +0 -15
- package/src/utilities/directives/clickSubject.ts +0 -19
- package/src/utilities/directives/conditional-classes.directive.ts +0 -36
- package/src/utilities/directives/dialog-service.ts +0 -19
- package/src/utilities/directives/dialog.ts +0 -174
- package/src/utilities/directives/mat-toggle-group-directive.ts +0 -60
- package/src/utilities/directives/prevent-enter.directive.ts +0 -12
- package/src/utilities/directives/stop-propagation.directive.ts +0 -19
- package/src/utilities/directives/styler.ts +0 -45
- package/src/utilities/directives/trim-whitespace.directive.ts +0 -20
- package/src/utilities/index.ts +0 -22
- package/src/utilities/module.ts +0 -53
- package/src/utilities/pipes/function.pipe.ts +0 -21
- package/src/utilities/pipes/phone.pipe.ts +0 -20
- package/src/utilities/pipes/space-case.pipes.spec.ts +0 -47
- package/src/utilities/pipes/space-case.pipes.ts +0 -29
- package/tsconfig.lib.json +0 -20
- package/tsconfig.lib.prod.json +0 -10
- package/tsconfig.spec.json +0 -17
|
@@ -1,628 +0,0 @@
|
|
|
1
|
-
# Table Container Component Documentation
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
`tb-table-container` is the main component for rendering data tables with the Table Builder system. It provides a feature-rich table with built-in support for sorting, filtering, grouping, pagination, column customization, virtual scrolling, row selection, and CSV export.
|
|
6
|
-
|
|
7
|
-
## Basic Usage
|
|
8
|
-
|
|
9
|
-
```typescript
|
|
10
|
-
import { Component } from '@angular/core';
|
|
11
|
-
import { TableBuilder } from 'angular-utilities';
|
|
12
|
-
import { TableContainerComponent } from 'angular-utilities';
|
|
13
|
-
|
|
14
|
-
@Component({
|
|
15
|
-
selector: 'app-my-table',
|
|
16
|
-
standalone: true,
|
|
17
|
-
imports: [TableContainerComponent],
|
|
18
|
-
template: `
|
|
19
|
-
<tb-table-container [tableBuilder]="tableBuilder" />
|
|
20
|
-
`
|
|
21
|
-
})
|
|
22
|
-
export class MyTableComponent {
|
|
23
|
-
data = [
|
|
24
|
-
{ id: 1, name: 'John Doe', email: 'john@example.com' },
|
|
25
|
-
{ id: 2, name: 'Jane Smith', email: 'jane@example.com' }
|
|
26
|
-
];
|
|
27
|
-
|
|
28
|
-
tableBuilder = new TableBuilder(this.data);
|
|
29
|
-
}
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## Inputs
|
|
33
|
-
|
|
34
|
-
### Required Inputs
|
|
35
|
-
|
|
36
|
-
#### `tableBuilder`
|
|
37
|
-
- **Type**: `TableBuilder<T>`
|
|
38
|
-
- **Required**: Yes
|
|
39
|
-
- **Description**: The TableBuilder instance that defines the data, columns, and settings for the table.
|
|
40
|
-
- **Related Documentation**: See [MetaData Documentation](METADATA-DOCUMENTATION.md) for column configuration and [TableBuilder Settings](TABLE-BUILDER-SETTINGS.md) for table behavior configuration.
|
|
41
|
-
|
|
42
|
-
**Example:**
|
|
43
|
-
```typescript
|
|
44
|
-
import { TableBuilder } from 'angular-utilities';
|
|
45
|
-
import { FieldType } from 'angular-utilities';
|
|
46
|
-
|
|
47
|
-
const metaData = [
|
|
48
|
-
{ key: 'id', fieldType: FieldType.Number, displayName: 'ID' },
|
|
49
|
-
{ key: 'name', fieldType: FieldType.String, displayName: 'Name' },
|
|
50
|
-
{ key: 'email', fieldType: FieldType.String, displayName: 'Email' }
|
|
51
|
-
];
|
|
52
|
-
|
|
53
|
-
const tableBuilder = new TableBuilder(data, metaData);
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
### Optional Inputs
|
|
57
|
-
|
|
58
|
-
#### `tableId`
|
|
59
|
-
- **Type**: `string | undefined`
|
|
60
|
-
- **Default**: `undefined`
|
|
61
|
-
- **Description**: Unique identifier for the table. When provided, the table state (sorting, filtering, column order, etc.) is automatically persisted to local storage and restored on component initialization. Can also be configured via `TableBuilderSettings.tableSettings.tableId` in the TableBuilder constructor. See [TableBuilder Settings - tableId](TABLE-BUILDER-SETTINGS.md#tableid).
|
|
62
|
-
|
|
63
|
-
**Example (via input):**
|
|
64
|
-
```html
|
|
65
|
-
<tb-table-container
|
|
66
|
-
[tableBuilder]="tableBuilder"
|
|
67
|
-
tableId="users-table" />
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
**Example (via TableBuilder settings):**
|
|
71
|
-
```typescript
|
|
72
|
-
const settings = {
|
|
73
|
-
tableSettings: {
|
|
74
|
-
tableId: 'users-table'
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
const tableBuilder = new TableBuilder(data, metaData, settings);
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
#### `trackBy`
|
|
81
|
-
- **Type**: `string | undefined`
|
|
82
|
-
- **Default**: `undefined`
|
|
83
|
-
- **Description**: Property name to use for Angular's trackBy function in the table rows. Improves performance by helping Angular identify which items have changed. Can also be configured via `TableBuilderSettings.tableSettings.trackBy` in the TableBuilder constructor. See [TableBuilder Settings - trackBy](TABLE-BUILDER-SETTINGS.md#trackby).
|
|
84
|
-
|
|
85
|
-
**Example (via input):**
|
|
86
|
-
```html
|
|
87
|
-
<tb-table-container
|
|
88
|
-
[tableBuilder]="tableBuilder"
|
|
89
|
-
trackBy="id" />
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
**Example (via TableBuilder settings):**
|
|
93
|
-
```typescript
|
|
94
|
-
const settings = {
|
|
95
|
-
tableSettings: {
|
|
96
|
-
trackBy: 'id'
|
|
97
|
-
}
|
|
98
|
-
};
|
|
99
|
-
const tableBuilder = new TableBuilder(data, metaData, settings);
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
#### `inputFilters`
|
|
103
|
-
- **Type**: `(Predicate<T> | CustomFilter<T> | FilterInfo<any, T>)[]`
|
|
104
|
-
- **Default**: `[]`
|
|
105
|
-
- **Description**: Array of filters to apply to the table data. Supports three types:
|
|
106
|
-
- **Predicate**: Simple function `(row: T) => boolean`
|
|
107
|
-
- **CustomFilter**: Object with `{ filterId: string, predicate: (row: T) => boolean }` - saved to state when `filterId` is provided
|
|
108
|
-
- **FilterInfo**: Full filter configuration object with UI and persistence support
|
|
109
|
-
|
|
110
|
-
**Example:**
|
|
111
|
-
```typescript
|
|
112
|
-
// Simple predicate filter
|
|
113
|
-
const activeOnly = (user: User) => user.isActive;
|
|
114
|
-
|
|
115
|
-
// Custom filter with ID (persisted)
|
|
116
|
-
const customFilter = {
|
|
117
|
-
filterId: 'active-filter',
|
|
118
|
-
predicate: (user: User) => user.isActive
|
|
119
|
-
};
|
|
120
|
-
|
|
121
|
-
// FilterInfo with full configuration
|
|
122
|
-
const filterInfo = {
|
|
123
|
-
filterId: 'status-filter',
|
|
124
|
-
key: 'status',
|
|
125
|
-
type: FilterType.Equals,
|
|
126
|
-
value: 'active'
|
|
127
|
-
};
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
```html
|
|
131
|
-
<tb-table-container
|
|
132
|
-
[tableBuilder]="tableBuilder"
|
|
133
|
-
[inputFilters]="[activeOnly, customFilter]" />
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
#### `indexColumn`
|
|
137
|
-
- **Type**: `boolean`
|
|
138
|
-
- **Default**: `false`
|
|
139
|
-
- **Description**: Adds an index column as the first column, displaying row numbers starting from 1. Can also be configured via `TableBuilderSettings.tableSettings.includeIndexColumn` in the TableBuilder constructor. See [TableBuilder Settings - includeIndexColumn](TABLE-BUILDER-SETTINGS.md#includeindexcolumn).
|
|
140
|
-
|
|
141
|
-
**Example (via input):**
|
|
142
|
-
```html
|
|
143
|
-
<tb-table-container
|
|
144
|
-
[tableBuilder]="tableBuilder"
|
|
145
|
-
[indexColumn]="true" />
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
**Example (via TableBuilder settings):**
|
|
149
|
-
```typescript
|
|
150
|
-
const settings = {
|
|
151
|
-
tableSettings: {
|
|
152
|
-
includeIndexColumn: true
|
|
153
|
-
}
|
|
154
|
-
};
|
|
155
|
-
const tableBuilder = new TableBuilder(data, metaData, settings);
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
#### `selectionColumn`
|
|
159
|
-
- **Type**: `boolean`
|
|
160
|
-
- **Default**: `false`
|
|
161
|
-
- **Description**: Adds a checkbox column for row selection. Listen to the `selection` output to receive selection changes. Can also be configured via `TableBuilderSettings.tableSettings.includeSelectionColumn` in the TableBuilder constructor. See [TableBuilder Settings - includeSelectionColumn](TABLE-BUILDER-SETTINGS.md#includeselectioncolumn).
|
|
162
|
-
|
|
163
|
-
**Example (via input):**
|
|
164
|
-
```html
|
|
165
|
-
<tb-table-container
|
|
166
|
-
[tableBuilder]="tableBuilder"
|
|
167
|
-
[selectionColumn]="true"
|
|
168
|
-
(selection)="onSelectionChange($event)" />
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
**Example (via TableBuilder settings):**
|
|
172
|
-
```typescript
|
|
173
|
-
const settings = {
|
|
174
|
-
tableSettings: {
|
|
175
|
-
includeSelectionColumn: true
|
|
176
|
-
}
|
|
177
|
-
};
|
|
178
|
-
const tableBuilder = new TableBuilder(data, metaData, settings);
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
#### `stickyHeader`
|
|
182
|
-
- **Type**: `boolean`
|
|
183
|
-
- **Default**: `true`
|
|
184
|
-
- **Description**: Makes the table header sticky (fixed at the top when scrolling). Can also be configured via `TableBuilderSettings.columnHeaderSettings.stickyHeaderRow` in the TableBuilder constructor. See [TableBuilder Settings - stickyHeaderRow](TABLE-BUILDER-SETTINGS.md#stickyheaderrow).
|
|
185
|
-
|
|
186
|
-
**Example (via input):**
|
|
187
|
-
```html
|
|
188
|
-
<tb-table-container
|
|
189
|
-
[tableBuilder]="tableBuilder"
|
|
190
|
-
[stickyHeader]="false" />
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
**Example (via TableBuilder settings):**
|
|
194
|
-
```typescript
|
|
195
|
-
const settings = {
|
|
196
|
-
columnHeaderSettings: {
|
|
197
|
-
stickyHeaderRow: false
|
|
198
|
-
}
|
|
199
|
-
};
|
|
200
|
-
const tableBuilder = new TableBuilder(data, metaData, settings);
|
|
201
|
-
```
|
|
202
|
-
|
|
203
|
-
#### `stickyFooter`
|
|
204
|
-
- **Type**: `boolean`
|
|
205
|
-
- **Default**: `false`
|
|
206
|
-
- **Description**: Makes the table footer sticky (fixed at the bottom when scrolling). Can also be configured via `TableBuilderSettings.columnFooterSettings.stickyFooterRow` in the TableBuilder constructor. See [TableBuilder Settings - stickyFooterRow](TABLE-BUILDER-SETTINGS.md#stickyfooterrow).
|
|
207
|
-
|
|
208
|
-
**Example (via input):**
|
|
209
|
-
```html
|
|
210
|
-
<tb-table-container
|
|
211
|
-
[tableBuilder]="tableBuilder"
|
|
212
|
-
[stickyFooter]="true" />
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
**Example (via TableBuilder settings):**
|
|
216
|
-
```typescript
|
|
217
|
-
const settings = {
|
|
218
|
-
columnFooterSettings: {
|
|
219
|
-
stickyFooterRow: true
|
|
220
|
-
}
|
|
221
|
-
};
|
|
222
|
-
const tableBuilder = new TableBuilder(data, metaData, settings);
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
#### `groupHeaderTemplate`
|
|
226
|
-
- **Type**: `TemplateRef<any> | undefined`
|
|
227
|
-
- **Default**: `undefined`
|
|
228
|
-
- **Description**: Custom template for rendering group headers when data is grouped. The template receives the group context with information about the group.
|
|
229
|
-
|
|
230
|
-
**Example:**
|
|
231
|
-
```typescript
|
|
232
|
-
@Component({
|
|
233
|
-
template: `
|
|
234
|
-
<tb-table-container
|
|
235
|
-
[tableBuilder]="tableBuilder"
|
|
236
|
-
[groupHeaderTemplate]="customGroupHeader" />
|
|
237
|
-
|
|
238
|
-
<ng-template #customGroupHeader let-group>
|
|
239
|
-
<div class="custom-group-header">
|
|
240
|
-
{{ group.key }}: {{ group.count }} items
|
|
241
|
-
</div>
|
|
242
|
-
</ng-template>
|
|
243
|
-
`
|
|
244
|
-
})
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
#### `groupHeaderHeight`
|
|
248
|
-
- **Type**: `number | undefined`
|
|
249
|
-
- **Default**: `undefined`
|
|
250
|
-
- **Description**: Height in pixels for group header rows. Used for virtual scrolling calculations when grouping is enabled.
|
|
251
|
-
|
|
252
|
-
**Example:**
|
|
253
|
-
```html
|
|
254
|
-
<tb-table-container
|
|
255
|
-
[tableBuilder]="tableBuilder"
|
|
256
|
-
[groupHeaderHeight]="48" />
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
#### `pageSize`
|
|
260
|
-
- **Type**: `number | undefined`
|
|
261
|
-
- **Default**: `undefined`
|
|
262
|
-
- **Description**: Initial page size for pagination. This will be overridden if the user has already set a page size (which is persisted in state). Can also be configured via `TableBuilderSettings.tableSettings.paginatorSettings.pageSize` in the TableBuilder constructor. See [TableBuilder Settings - paginatorSettings](TABLE-BUILDER-SETTINGS.md#paginatorsettings) for configuring pagination behavior.
|
|
263
|
-
|
|
264
|
-
**Example (via input):**
|
|
265
|
-
```html
|
|
266
|
-
<tb-table-container
|
|
267
|
-
[tableBuilder]="tableBuilder"
|
|
268
|
-
[pageSize]="25" />
|
|
269
|
-
```
|
|
270
|
-
|
|
271
|
-
**Example (via TableBuilder settings):**
|
|
272
|
-
```typescript
|
|
273
|
-
const settings = {
|
|
274
|
-
tableSettings: {
|
|
275
|
-
paginatorSettings: {
|
|
276
|
-
pageSize: 25
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
};
|
|
280
|
-
const tableBuilder = new TableBuilder(data, metaData, settings);
|
|
281
|
-
```
|
|
282
|
-
|
|
283
|
-
## Outputs
|
|
284
|
-
|
|
285
|
-
#### `selection`
|
|
286
|
-
- **Type**: `SelectionChange<T>`
|
|
287
|
-
- **Description**: Emits when row selection changes. Only emits when `selectionColumn` is enabled. The event contains `added` and `removed` arrays of selected rows.
|
|
288
|
-
|
|
289
|
-
**Example:**
|
|
290
|
-
```typescript
|
|
291
|
-
onSelectionChange(event: SelectionChange<User>) {
|
|
292
|
-
console.log('Added:', event.added);
|
|
293
|
-
console.log('Removed:', event.removed);
|
|
294
|
-
console.log('Current selection:', event.source.selected);
|
|
295
|
-
}
|
|
296
|
-
```
|
|
297
|
-
|
|
298
|
-
```html
|
|
299
|
-
<tb-table-container
|
|
300
|
-
[tableBuilder]="tableBuilder"
|
|
301
|
-
[selectionColumn]="true"
|
|
302
|
-
(selection)="onSelectionChange($event)" />
|
|
303
|
-
```
|
|
304
|
-
|
|
305
|
-
#### `onStateReset`
|
|
306
|
-
- **Type**: `null`
|
|
307
|
-
- **Description**: Emits when the table state is reset to defaults. This happens when the user clicks the reset button in the table header menu.
|
|
308
|
-
|
|
309
|
-
**Example:**
|
|
310
|
-
```typescript
|
|
311
|
-
onStateReset() {
|
|
312
|
-
console.log('Table state has been reset');
|
|
313
|
-
}
|
|
314
|
-
```
|
|
315
|
-
|
|
316
|
-
```html
|
|
317
|
-
<tb-table-container
|
|
318
|
-
[tableBuilder]="tableBuilder"
|
|
319
|
-
(onStateReset)="onStateReset()" />
|
|
320
|
-
```
|
|
321
|
-
|
|
322
|
-
#### `onSaveState`
|
|
323
|
-
- **Type**: `null`
|
|
324
|
-
- **Description**: Emits when the table state is manually saved. This happens when the user clicks the save button in the table header menu.
|
|
325
|
-
|
|
326
|
-
**Example:**
|
|
327
|
-
```typescript
|
|
328
|
-
onSaveState() {
|
|
329
|
-
console.log('Table state has been saved');
|
|
330
|
-
}
|
|
331
|
-
```
|
|
332
|
-
|
|
333
|
-
```html
|
|
334
|
-
<tb-table-container
|
|
335
|
-
[tableBuilder]="tableBuilder"
|
|
336
|
-
(onSaveState)="onSaveState()" />
|
|
337
|
-
```
|
|
338
|
-
|
|
339
|
-
#### `state`
|
|
340
|
-
- **Type**: `PersistedTableState`
|
|
341
|
-
- **Description**: Emits whenever the savable table state changes. The state includes sorting, filtering, column visibility, column order, grouping, and pagination settings. Useful for manually persisting state to a backend.
|
|
342
|
-
|
|
343
|
-
**Example:**
|
|
344
|
-
```typescript
|
|
345
|
-
onStateChange(state: PersistedTableState) {
|
|
346
|
-
// Save to backend
|
|
347
|
-
this.tableService.saveTableState(state);
|
|
348
|
-
}
|
|
349
|
-
```
|
|
350
|
-
|
|
351
|
-
```html
|
|
352
|
-
<tb-table-container
|
|
353
|
-
[tableBuilder]="tableBuilder"
|
|
354
|
-
(state)="onStateChange($event)" />
|
|
355
|
-
```
|
|
356
|
-
|
|
357
|
-
#### `data`
|
|
358
|
-
- **Type**: `T[]`
|
|
359
|
-
- **Description**: Emits the current sorted and filtered data (without grouping applied). Updates whenever sorting or filtering changes.
|
|
360
|
-
|
|
361
|
-
**Example:**
|
|
362
|
-
```typescript
|
|
363
|
-
onDataChange(data: User[]) {
|
|
364
|
-
console.log('Filtered/sorted data:', data);
|
|
365
|
-
}
|
|
366
|
-
```
|
|
367
|
-
|
|
368
|
-
```html
|
|
369
|
-
<tb-table-container
|
|
370
|
-
[tableBuilder]="tableBuilder"
|
|
371
|
-
(data)="onDataChange($event)" />
|
|
372
|
-
```
|
|
373
|
-
|
|
374
|
-
#### `sortedAndFilteredAndGroupedData`
|
|
375
|
-
- **Type**: `(T | GroupHeader)[]`
|
|
376
|
-
- **Description**: Emits the current sorted, filtered, and grouped data including group header rows. This is the actual data displayed in the table. Updates whenever sorting, filtering, or grouping changes.
|
|
377
|
-
|
|
378
|
-
**Example:**
|
|
379
|
-
```typescript
|
|
380
|
-
onDisplayDataChange(data: (User | GroupHeader)[]) {
|
|
381
|
-
console.log('Display data with groups:', data);
|
|
382
|
-
}
|
|
383
|
-
```
|
|
384
|
-
|
|
385
|
-
```html
|
|
386
|
-
<tb-table-container
|
|
387
|
-
[tableBuilder]="tableBuilder"
|
|
388
|
-
(sortedAndFilteredAndGroupedData)="onDisplayDataChange($event)" />
|
|
389
|
-
```
|
|
390
|
-
|
|
391
|
-
## Public Methods
|
|
392
|
-
|
|
393
|
-
The component exposes several public methods that can be called via template reference or ViewChild:
|
|
394
|
-
|
|
395
|
-
### `clearSelections()`
|
|
396
|
-
Clears all selected rows.
|
|
397
|
-
|
|
398
|
-
**Example:**
|
|
399
|
-
```typescript
|
|
400
|
-
@ViewChild(TableContainerComponent) table!: TableContainerComponent;
|
|
401
|
-
|
|
402
|
-
clearAll() {
|
|
403
|
-
this.table.clearSelections();
|
|
404
|
-
}
|
|
405
|
-
```
|
|
406
|
-
|
|
407
|
-
### `firstPage()`
|
|
408
|
-
Navigates to the first page of the table.
|
|
409
|
-
|
|
410
|
-
### `lastPage()`
|
|
411
|
-
Navigates to the last page of the table.
|
|
412
|
-
|
|
413
|
-
### `expandAllGroups()`
|
|
414
|
-
Expands all group headers when grouping is applied.
|
|
415
|
-
|
|
416
|
-
### `expandAllOfGroup(groupKey: string)`
|
|
417
|
-
Expands all headers for a specific group key.
|
|
418
|
-
|
|
419
|
-
**Example:**
|
|
420
|
-
```typescript
|
|
421
|
-
expandDepartmentGroups() {
|
|
422
|
-
this.table.expandAllOfGroup('department');
|
|
423
|
-
}
|
|
424
|
-
```
|
|
425
|
-
|
|
426
|
-
### `collapseAllGroups()`
|
|
427
|
-
Collapses all group headers.
|
|
428
|
-
|
|
429
|
-
### `exportToCsv()`
|
|
430
|
-
Exports the current filtered and sorted data to CSV format and triggers a download.
|
|
431
|
-
|
|
432
|
-
**Example:**
|
|
433
|
-
```typescript
|
|
434
|
-
@Component({
|
|
435
|
-
template: `
|
|
436
|
-
<tb-table-container
|
|
437
|
-
#table
|
|
438
|
-
[tableBuilder]="tableBuilder" />
|
|
439
|
-
|
|
440
|
-
<button (click)="table.exportToCsv()">
|
|
441
|
-
Export to CSV
|
|
442
|
-
</button>
|
|
443
|
-
`
|
|
444
|
-
})
|
|
445
|
-
```
|
|
446
|
-
|
|
447
|
-
## Content Projection
|
|
448
|
-
|
|
449
|
-
The component supports content projection for advanced customization:
|
|
450
|
-
|
|
451
|
-
### Custom Cell Templates
|
|
452
|
-
|
|
453
|
-
Use `CustomCellDirective` to provide custom rendering for specific columns:
|
|
454
|
-
|
|
455
|
-
```typescript
|
|
456
|
-
import { CustomCellDirective } from 'angular-utilities';
|
|
457
|
-
|
|
458
|
-
@Component({
|
|
459
|
-
template: `
|
|
460
|
-
<tb-table-container [tableBuilder]="tableBuilder">
|
|
461
|
-
<ng-template customCell="status" let-row>
|
|
462
|
-
<span [class]="'status-' + row.status">
|
|
463
|
-
{{ row.status }}
|
|
464
|
-
</span>
|
|
465
|
-
</ng-template>
|
|
466
|
-
</tb-table-container>
|
|
467
|
-
`
|
|
468
|
-
})
|
|
469
|
-
```
|
|
470
|
-
|
|
471
|
-
### Custom Filter Directives
|
|
472
|
-
|
|
473
|
-
Use `TableFilterDirective` or `TableCustomFilterDirective` for custom filtering UI:
|
|
474
|
-
|
|
475
|
-
```typescript
|
|
476
|
-
import { TableFilterDirective } from 'angular-utilities';
|
|
477
|
-
|
|
478
|
-
@Component({
|
|
479
|
-
template: `
|
|
480
|
-
<tb-table-container [tableBuilder]="tableBuilder">
|
|
481
|
-
<input
|
|
482
|
-
tbFilter
|
|
483
|
-
filterId="search"
|
|
484
|
-
[key]="'name'"
|
|
485
|
-
[type]="FilterType.Contains"
|
|
486
|
-
placeholder="Search by name" />
|
|
487
|
-
</tb-table-container>
|
|
488
|
-
`
|
|
489
|
-
})
|
|
490
|
-
```
|
|
491
|
-
|
|
492
|
-
### Custom Row Definitions
|
|
493
|
-
|
|
494
|
-
Use `MatRowDef` to define custom row rendering:
|
|
495
|
-
|
|
496
|
-
```typescript
|
|
497
|
-
@Component({
|
|
498
|
-
template: `
|
|
499
|
-
<tb-table-container [tableBuilder]="tableBuilder">
|
|
500
|
-
<tr *matRowDef="let row; columns: displayedColumns"
|
|
501
|
-
[class.highlighted]="row.isImportant">
|
|
502
|
-
</tr>
|
|
503
|
-
</tb-table-container>
|
|
504
|
-
`
|
|
505
|
-
})
|
|
506
|
-
```
|
|
507
|
-
|
|
508
|
-
## Complete Example
|
|
509
|
-
|
|
510
|
-
```typescript
|
|
511
|
-
import { Component, ViewChild } from '@angular/core';
|
|
512
|
-
import { TableBuilder, TableContainerComponent, FieldType } from 'angular-utilities';
|
|
513
|
-
|
|
514
|
-
interface User {
|
|
515
|
-
id: number;
|
|
516
|
-
name: string;
|
|
517
|
-
email: string;
|
|
518
|
-
department: string;
|
|
519
|
-
isActive: boolean;
|
|
520
|
-
}
|
|
521
|
-
|
|
522
|
-
@Component({
|
|
523
|
-
selector: 'app-users-table',
|
|
524
|
-
standalone: true,
|
|
525
|
-
imports: [TableContainerComponent],
|
|
526
|
-
template: `
|
|
527
|
-
<tb-table-container
|
|
528
|
-
#table
|
|
529
|
-
[tableBuilder]="tableBuilder"
|
|
530
|
-
tableId="users-table"
|
|
531
|
-
trackBy="id"
|
|
532
|
-
[selectionColumn]="true"
|
|
533
|
-
[indexColumn]="true"
|
|
534
|
-
[pageSize]="25"
|
|
535
|
-
[inputFilters]="filters"
|
|
536
|
-
(selection)="onSelectionChange($event)"
|
|
537
|
-
(data)="onDataChange($event)" />
|
|
538
|
-
`
|
|
539
|
-
})
|
|
540
|
-
export class UsersTableComponent {
|
|
541
|
-
@ViewChild('table') table!: TableContainerComponent<User>;
|
|
542
|
-
|
|
543
|
-
users: User[] = [
|
|
544
|
-
{ id: 1, name: 'John Doe', email: 'john@example.com', department: 'Engineering', isActive: true },
|
|
545
|
-
{ id: 2, name: 'Jane Smith', email: 'jane@example.com', department: 'Marketing', isActive: true }
|
|
546
|
-
];
|
|
547
|
-
|
|
548
|
-
metaData = [
|
|
549
|
-
{ key: 'id', fieldType: FieldType.Number, displayName: 'ID', width: '80px' },
|
|
550
|
-
{ key: 'name', fieldType: FieldType.String, displayName: 'Name' },
|
|
551
|
-
{ key: 'email', fieldType: FieldType.String, displayName: 'Email' },
|
|
552
|
-
{ key: 'department', fieldType: FieldType.String, displayName: 'Department' },
|
|
553
|
-
{ key: 'isActive', fieldType: FieldType.Boolean, displayName: 'Active' }
|
|
554
|
-
];
|
|
555
|
-
|
|
556
|
-
tableBuilder = new TableBuilder(this.users, this.metaData);
|
|
557
|
-
|
|
558
|
-
filters = [
|
|
559
|
-
(user: User) => user.isActive // Only show active users
|
|
560
|
-
];
|
|
561
|
-
|
|
562
|
-
onSelectionChange(event: any) {
|
|
563
|
-
console.log('Selected users:', event.source.selected);
|
|
564
|
-
}
|
|
565
|
-
|
|
566
|
-
onDataChange(data: User[]) {
|
|
567
|
-
console.log('Current data:', data);
|
|
568
|
-
}
|
|
569
|
-
|
|
570
|
-
exportData() {
|
|
571
|
-
this.table.exportToCsv();
|
|
572
|
-
}
|
|
573
|
-
}
|
|
574
|
-
```
|
|
575
|
-
|
|
576
|
-
## State Persistence
|
|
577
|
-
|
|
578
|
-
When a `tableId` is provided, the following state is automatically persisted to local storage:
|
|
579
|
-
|
|
580
|
-
- Column visibility and order
|
|
581
|
-
- Sort configuration
|
|
582
|
-
- Applied filters (with `filterId`)
|
|
583
|
-
- Group by settings
|
|
584
|
-
- Page size
|
|
585
|
-
- Expanded/collapsed group headers
|
|
586
|
-
- Header/footer collapsed state
|
|
587
|
-
|
|
588
|
-
The state is restored automatically when the component initializes with the same `tableId`.
|
|
589
|
-
|
|
590
|
-
## Performance Considerations
|
|
591
|
-
|
|
592
|
-
### Virtual Scrolling
|
|
593
|
-
|
|
594
|
-
The table automatically enables virtual scrolling for large datasets. This is controlled by the `TableBuilderSettings`:
|
|
595
|
-
|
|
596
|
-
```typescript
|
|
597
|
-
const settings = {
|
|
598
|
-
tableSettings: {
|
|
599
|
-
useVirtual: true, // Enable virtual scrolling
|
|
600
|
-
virtualSettings: {
|
|
601
|
-
itemSize: 48, // Height of each row in pixels
|
|
602
|
-
bufferSize: 10 // Number of items to render outside viewport
|
|
603
|
-
}
|
|
604
|
-
}
|
|
605
|
-
};
|
|
606
|
-
```
|
|
607
|
-
|
|
608
|
-
See [TableBuilder Settings](TABLE-BUILDER-SETTINGS.md) for more details.
|
|
609
|
-
|
|
610
|
-
### TrackBy
|
|
611
|
-
|
|
612
|
-
Always provide a `trackBy` property for optimal performance, especially with large datasets or frequent updates:
|
|
613
|
-
|
|
614
|
-
```html
|
|
615
|
-
<tb-table-container
|
|
616
|
-
[tableBuilder]="tableBuilder"
|
|
617
|
-
trackBy="id" />
|
|
618
|
-
```
|
|
619
|
-
|
|
620
|
-
## Related Documentation
|
|
621
|
-
|
|
622
|
-
- [MetaData Documentation](METADATA-DOCUMENTATION.md) - Column configuration
|
|
623
|
-
- [TableBuilder Settings](TABLE-BUILDER-SETTINGS.md) - Table behavior and appearance
|
|
624
|
-
- [TableBuilder Config](TABLE-BUILDER-CONFIG.md) - Global configuration
|
|
625
|
-
- [Styler Style Documentation](STYLER-STYLE.md) - Cell styling
|
|
626
|
-
- [TableBuilder Documentation](TABLE-BUILDER.md) - Setting up the table builder
|
|
627
|
-
- [CustomCell Directive](CUSTOM-CELL.md) - Custom cell templates
|
|
628
|
-
- [CustomGroupRow Directive](CUSTOM-GROUP-ROW.md) - Custom group row templates
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
export const FilterType = {
|
|
3
|
-
NumberEquals: 'Equals',
|
|
4
|
-
NumberNotEqual: 'Does Not Equal',
|
|
5
|
-
NumberGreaterThan: 'Greater Than',
|
|
6
|
-
NumberLessThan: 'Less Than',
|
|
7
|
-
NumberBetween: 'Between',
|
|
8
|
-
StringEquals: 'Equals',
|
|
9
|
-
StringContains: 'Contains',
|
|
10
|
-
StringDoesNotContain: 'Does Not Contain',
|
|
11
|
-
StringStartWith: 'Start With',
|
|
12
|
-
StringEndsWith: 'Ends With',
|
|
13
|
-
DateIsOn: 'Is on',
|
|
14
|
-
DateIsNotOn: 'Is Not On',
|
|
15
|
-
DateOnOrAfter: 'On or After',
|
|
16
|
-
DateOnOrBefore: 'On or Before',
|
|
17
|
-
DateBetween: 'Between',
|
|
18
|
-
DateTimeIsAt: 'Is At',
|
|
19
|
-
DateTimeIsNotAt: 'Is Not At',
|
|
20
|
-
DateTimeAtOrAfter: 'At or After',
|
|
21
|
-
DateTimeAtOrBefore: 'At or Before',
|
|
22
|
-
DateTimeBetween: 'Between',
|
|
23
|
-
BooleanEquals: 'Is',
|
|
24
|
-
IsNull: 'Is Blank',
|
|
25
|
-
And: 'And',
|
|
26
|
-
In: 'In',
|
|
27
|
-
Custom: 'Custom',
|
|
28
|
-
} as const;
|
|
29
|
-
|
|
30
|
-
export type FilterType = typeof FilterType[keyof typeof FilterType];
|
|
31
|
-
|
|
32
|
-
export type SubFilterTypes<T extends typeof FilterType[keyof typeof FilterType]> = T;
|
|
33
|
-
|
|
34
|
-
export type StringFilterTypes = SubFilterTypes<'Equals' | 'Contains' | 'Does Not Contain' | 'Start With' | 'Ends With' | 'Is Blank' | 'In'>;
|
|
35
|
-
export type NumberFilterTypes = SubFilterTypes<'Equals' | 'Does Not Equal' | 'Greater Than' | 'Less Than' | 'Between' | 'Is Blank' | 'In'>;
|
|
36
|
-
export type DateFilterTypes = SubFilterTypes<'Is on' | 'Is Not On' | 'On or After' | 'On or Before' | 'Between' | 'Is Blank' | 'In'>;
|
|
37
|
-
export type DateTimeFilterTypes = SubFilterTypes<'Is At' | 'Is Not At' | 'At or After' | 'At or Before' | 'Between' | DateFilterTypes>;
|
|
38
|
-
export type BooleanFilterTypes = SubFilterTypes<'Is' | 'Is Blank'>;
|
|
39
|
-
export type EnumFilterTypes = SubFilterTypes<'In' | 'Is Blank'>;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { FilterFunc, FilterFuncs, FilterInfo } from '../classes/filter-info';
|
|
2
|
-
import { BooleanFilterTypes, FilterType } from '../enums/filterTypes';
|
|
3
|
-
import { isNull } from './null-filter-function';
|
|
4
|
-
|
|
5
|
-
const booleanEqualsFunc : FilterFunc<boolean> = (filterInfo:FilterInfo) => (val): boolean => {
|
|
6
|
-
return filterInfo.filterValue === val;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export const BooleanFilterFuncs: FilterFuncs<BooleanFilterTypes> = {
|
|
10
|
-
[FilterType.BooleanEquals]: booleanEqualsFunc,
|
|
11
|
-
[FilterType.IsNull]: isNull,
|
|
12
|
-
};
|