@tanstack/table-core 9.0.0-alpha.47 → 9.0.0-alpha.49
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/README.md +10 -0
- package/dist/core/cells/coreCellsFeature.utils.cjs +11 -8
- package/dist/core/cells/coreCellsFeature.utils.cjs.map +1 -1
- package/dist/core/cells/coreCellsFeature.utils.d.cts +11 -8
- package/dist/core/cells/coreCellsFeature.utils.d.ts +11 -8
- package/dist/core/cells/coreCellsFeature.utils.js +11 -8
- package/dist/core/cells/coreCellsFeature.utils.js.map +1 -1
- package/dist/core/columns/coreColumnsFeature.types.d.cts +7 -6
- package/dist/core/columns/coreColumnsFeature.types.d.ts +7 -6
- package/dist/core/columns/coreColumnsFeature.utils.cjs +37 -27
- package/dist/core/columns/coreColumnsFeature.utils.cjs.map +1 -1
- package/dist/core/columns/coreColumnsFeature.utils.d.cts +37 -27
- package/dist/core/columns/coreColumnsFeature.utils.d.ts +37 -27
- package/dist/core/columns/coreColumnsFeature.utils.js +37 -27
- package/dist/core/columns/coreColumnsFeature.utils.js.map +1 -1
- package/dist/core/headers/coreHeadersFeature.types.d.cts +6 -4
- package/dist/core/headers/coreHeadersFeature.types.d.ts +6 -4
- package/dist/core/headers/coreHeadersFeature.utils.cjs +23 -18
- package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
- package/dist/core/headers/coreHeadersFeature.utils.d.cts +23 -18
- package/dist/core/headers/coreHeadersFeature.utils.d.ts +23 -18
- package/dist/core/headers/coreHeadersFeature.utils.js +23 -18
- package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
- package/dist/core/row-models/coreRowModelsFeature.utils.cjs +48 -36
- package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -1
- package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +48 -36
- package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +48 -36
- package/dist/core/row-models/coreRowModelsFeature.utils.js +48 -36
- package/dist/core/row-models/coreRowModelsFeature.utils.js.map +1 -1
- package/dist/core/rows/coreRowsFeature.types.d.cts +4 -4
- package/dist/core/rows/coreRowsFeature.types.d.ts +4 -4
- package/dist/core/rows/coreRowsFeature.utils.cjs +34 -28
- package/dist/core/rows/coreRowsFeature.utils.cjs.map +1 -1
- package/dist/core/rows/coreRowsFeature.utils.d.cts +34 -28
- package/dist/core/rows/coreRowsFeature.utils.d.ts +34 -28
- package/dist/core/rows/coreRowsFeature.utils.js +34 -28
- package/dist/core/rows/coreRowsFeature.utils.js.map +1 -1
- package/dist/core/table/coreTablesFeature.types.d.cts +6 -2
- package/dist/core/table/coreTablesFeature.types.d.ts +6 -2
- package/dist/core/table/coreTablesFeature.utils.cjs +2 -2
- package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
- package/dist/core/table/coreTablesFeature.utils.d.cts +2 -2
- package/dist/core/table/coreTablesFeature.utils.d.ts +2 -2
- package/dist/core/table/coreTablesFeature.utils.js +2 -2
- package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +16 -10
- package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +16 -10
- package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +26 -18
- package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +26 -18
- package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +26 -18
- package/dist/features/column-faceting/columnFacetingFeature.utils.js +26 -18
- package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +21 -11
- package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +21 -11
- package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +39 -28
- package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +39 -28
- package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +39 -28
- package/dist/features/column-filtering/columnFilteringFeature.utils.js +39 -28
- package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +18 -14
- package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +18 -14
- package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +55 -43
- package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +55 -43
- package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +55 -43
- package/dist/features/column-grouping/columnGroupingFeature.utils.js +55 -43
- package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +14 -5
- package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +14 -5
- package/dist/features/column-ordering/columnOrderingFeature.utils.cjs +30 -23
- package/dist/features/column-ordering/columnOrderingFeature.utils.cjs.map +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +30 -23
- package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +30 -23
- package/dist/features/column-ordering/columnOrderingFeature.utils.js +30 -23
- package/dist/features/column-ordering/columnOrderingFeature.utils.js.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.types.d.cts +43 -31
- package/dist/features/column-pinning/columnPinningFeature.types.d.ts +43 -31
- package/dist/features/column-pinning/columnPinningFeature.utils.cjs +111 -91
- package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +111 -91
- package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +111 -91
- package/dist/features/column-pinning/columnPinningFeature.utils.js +111 -91
- package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
- package/dist/features/column-resizing/columnResizingFeature.types.d.cts +9 -9
- package/dist/features/column-resizing/columnResizingFeature.types.d.ts +9 -9
- package/dist/features/column-resizing/columnResizingFeature.utils.cjs +29 -20
- package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +1 -1
- package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +28 -19
- package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +28 -19
- package/dist/features/column-resizing/columnResizingFeature.utils.js +29 -20
- package/dist/features/column-resizing/columnResizingFeature.utils.js.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.types.d.cts +19 -12
- package/dist/features/column-sizing/columnSizingFeature.types.d.ts +19 -12
- package/dist/features/column-sizing/columnSizingFeature.utils.cjs +52 -41
- package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +52 -41
- package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +52 -41
- package/dist/features/column-sizing/columnSizingFeature.utils.js +52 -41
- package/dist/features/column-sizing/columnSizingFeature.utils.js.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +16 -13
- package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +16 -13
- package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +54 -42
- package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +54 -42
- package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +54 -42
- package/dist/features/column-visibility/columnVisibilityFeature.utils.js +54 -42
- package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +10 -5
- package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +10 -5
- package/dist/features/global-filtering/globalFilteringFeature.utils.cjs +20 -14
- package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +20 -14
- package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +20 -14
- package/dist/features/global-filtering/globalFilteringFeature.utils.js +20 -14
- package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
- package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +16 -15
- package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +16 -15
- package/dist/features/row-expanding/rowExpandingFeature.utils.cjs +56 -41
- package/dist/features/row-expanding/rowExpandingFeature.utils.cjs.map +1 -1
- package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +56 -41
- package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +56 -41
- package/dist/features/row-expanding/rowExpandingFeature.utils.js +56 -41
- package/dist/features/row-expanding/rowExpandingFeature.utils.js.map +1 -1
- package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +19 -12
- package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +19 -12
- package/dist/features/row-pagination/rowPaginationFeature.utils.cjs +49 -32
- package/dist/features/row-pagination/rowPaginationFeature.utils.cjs.map +1 -1
- package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +49 -32
- package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +49 -32
- package/dist/features/row-pagination/rowPaginationFeature.utils.js +49 -32
- package/dist/features/row-pagination/rowPaginationFeature.utils.js.map +1 -1
- package/dist/features/row-pinning/rowPinningFeature.types.d.cts +12 -8
- package/dist/features/row-pinning/rowPinningFeature.types.d.ts +12 -8
- package/dist/features/row-pinning/rowPinningFeature.utils.cjs +39 -29
- package/dist/features/row-pinning/rowPinningFeature.utils.cjs.map +1 -1
- package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +39 -29
- package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +39 -29
- package/dist/features/row-pinning/rowPinningFeature.utils.js +39 -29
- package/dist/features/row-pinning/rowPinningFeature.utils.js.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.types.d.cts +30 -24
- package/dist/features/row-selection/rowSelectionFeature.types.d.ts +30 -24
- package/dist/features/row-selection/rowSelectionFeature.utils.cjs +89 -69
- package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +89 -69
- package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +89 -69
- package/dist/features/row-selection/rowSelectionFeature.utils.js +89 -69
- package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
- package/dist/features/row-sorting/rowSortingFeature.types.d.cts +10 -8
- package/dist/features/row-sorting/rowSortingFeature.types.d.ts +10 -8
- package/dist/features/row-sorting/rowSortingFeature.utils.cjs +62 -45
- package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
- package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +61 -44
- package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +61 -44
- package/dist/features/row-sorting/rowSortingFeature.utils.js +62 -45
- package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
- package/dist/fns/aggregationFns.cjs +33 -9
- package/dist/fns/aggregationFns.cjs.map +1 -1
- package/dist/fns/aggregationFns.d.cts +33 -9
- package/dist/fns/aggregationFns.d.ts +33 -9
- package/dist/fns/aggregationFns.js +33 -9
- package/dist/fns/aggregationFns.js.map +1 -1
- package/dist/fns/filterFns.cjs +48 -17
- package/dist/fns/filterFns.cjs.map +1 -1
- package/dist/fns/filterFns.d.cts +42 -15
- package/dist/fns/filterFns.d.ts +42 -15
- package/dist/fns/filterFns.js +48 -17
- package/dist/fns/filterFns.js.map +1 -1
- package/dist/helpers/columnHelper.cjs +9 -4
- package/dist/helpers/columnHelper.cjs.map +1 -1
- package/dist/helpers/columnHelper.d.cts +9 -4
- package/dist/helpers/columnHelper.d.ts +9 -4
- package/dist/helpers/columnHelper.js +9 -4
- package/dist/helpers/columnHelper.js.map +1 -1
- package/dist/helpers/tableOptions.cjs.map +1 -1
- package/dist/helpers/tableOptions.d.cts +12 -9
- package/dist/helpers/tableOptions.d.ts +12 -9
- package/dist/helpers/tableOptions.js.map +1 -1
- package/dist/types/ColumnDef.d.cts +38 -0
- package/dist/types/ColumnDef.d.ts +38 -0
- package/dist/types/TableOptions.d.cts +15 -0
- package/dist/types/TableOptions.d.ts +15 -0
- package/dist/types/TableState.d.cts +12 -0
- package/dist/types/TableState.d.ts +12 -0
- package/package.json +5 -3
- package/skills/column-definitions/SKILL.md +333 -0
- package/skills/column-layout/SKILL.md +328 -0
- package/skills/column-layout/references/subsystems.md +220 -0
- package/skills/customizing-feature-behavior/SKILL.md +416 -0
- package/skills/filtering/SKILL.md +357 -0
- package/skills/filtering/references/faceting-and-fuzzy.md +191 -0
- package/skills/grouping/SKILL.md +448 -0
- package/skills/migrate-v8-to-v9/SKILL.md +495 -0
- package/skills/pagination/SKILL.md +385 -0
- package/skills/row-expanding/SKILL.md +348 -0
- package/skills/row-pinning/SKILL.md +269 -0
- package/skills/row-selection/SKILL.md +391 -0
- package/skills/setup/SKILL.md +400 -0
- package/skills/sorting/SKILL.md +344 -0
- package/skills/state-management/SKILL.md +388 -0
- package/src/core/cells/coreCellsFeature.utils.ts +11 -8
- package/src/core/columns/coreColumnsFeature.types.ts +7 -6
- package/src/core/columns/coreColumnsFeature.utils.ts +37 -27
- package/src/core/headers/coreHeadersFeature.types.ts +6 -4
- package/src/core/headers/coreHeadersFeature.utils.ts +23 -18
- package/src/core/row-models/coreRowModelsFeature.utils.ts +48 -36
- package/src/core/rows/coreRowsFeature.types.ts +4 -4
- package/src/core/rows/coreRowsFeature.utils.ts +34 -28
- package/src/core/table/coreTablesFeature.types.ts +6 -2
- package/src/core/table/coreTablesFeature.utils.ts +2 -2
- package/src/features/column-faceting/columnFacetingFeature.types.ts +16 -10
- package/src/features/column-faceting/columnFacetingFeature.utils.ts +26 -18
- package/src/features/column-filtering/columnFilteringFeature.types.ts +21 -11
- package/src/features/column-filtering/columnFilteringFeature.utils.ts +39 -28
- package/src/features/column-grouping/columnGroupingFeature.types.ts +18 -14
- package/src/features/column-grouping/columnGroupingFeature.utils.ts +55 -43
- package/src/features/column-ordering/columnOrderingFeature.types.ts +14 -5
- package/src/features/column-ordering/columnOrderingFeature.utils.ts +30 -23
- package/src/features/column-pinning/columnPinningFeature.types.ts +43 -31
- package/src/features/column-pinning/columnPinningFeature.utils.ts +111 -91
- package/src/features/column-resizing/columnResizingFeature.types.ts +9 -9
- package/src/features/column-resizing/columnResizingFeature.utils.ts +29 -21
- package/src/features/column-sizing/columnSizingFeature.types.ts +19 -12
- package/src/features/column-sizing/columnSizingFeature.utils.ts +52 -41
- package/src/features/column-visibility/columnVisibilityFeature.types.ts +16 -13
- package/src/features/column-visibility/columnVisibilityFeature.utils.ts +54 -42
- package/src/features/global-filtering/globalFilteringFeature.types.ts +10 -5
- package/src/features/global-filtering/globalFilteringFeature.utils.ts +20 -14
- package/src/features/row-expanding/rowExpandingFeature.types.ts +16 -15
- package/src/features/row-expanding/rowExpandingFeature.utils.ts +56 -41
- package/src/features/row-pagination/rowPaginationFeature.types.ts +19 -12
- package/src/features/row-pagination/rowPaginationFeature.utils.ts +49 -32
- package/src/features/row-pinning/rowPinningFeature.types.ts +12 -8
- package/src/features/row-pinning/rowPinningFeature.utils.ts +39 -29
- package/src/features/row-selection/rowSelectionFeature.types.ts +30 -24
- package/src/features/row-selection/rowSelectionFeature.utils.ts +89 -69
- package/src/features/row-sorting/rowSortingFeature.types.ts +10 -8
- package/src/features/row-sorting/rowSortingFeature.utils.ts +62 -45
- package/src/fns/aggregationFns.ts +33 -9
- package/src/fns/filterFns.ts +48 -17
- package/src/helpers/columnHelper.ts +9 -4
- package/src/helpers/tableOptions.ts +12 -9
- package/src/types/ColumnDef.ts +38 -0
- package/src/types/TableOptions.ts +15 -0
- package/src/types/TableState.ts +12 -0
|
@@ -3,13 +3,14 @@ const require_rowExpandingFeature_utils = require('../row-expanding/rowExpanding
|
|
|
3
3
|
|
|
4
4
|
//#region src/features/row-pinning/rowPinningFeature.utils.ts
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* Creates the default row pinning state.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
8
|
+
* Both pinning regions start empty. Reset APIs use this value when
|
|
9
|
+
* `defaultState` is `true`.
|
|
9
10
|
*
|
|
10
11
|
* @example
|
|
11
12
|
* ```ts
|
|
12
|
-
* const
|
|
13
|
+
* const pinning = getDefaultRowPinningState()
|
|
13
14
|
* ```
|
|
14
15
|
*/
|
|
15
16
|
function getDefaultRowPinningState() {
|
|
@@ -19,13 +20,14 @@ function getDefaultRowPinningState() {
|
|
|
19
20
|
};
|
|
20
21
|
}
|
|
21
22
|
/**
|
|
22
|
-
*
|
|
23
|
+
* Routes a row pinning updater through the table's row-pinning change handler.
|
|
23
24
|
*
|
|
24
|
-
* The updater
|
|
25
|
+
* The updater may be a next `{ top, bottom }` state or a function of the
|
|
26
|
+
* previous state, matching the instance `table.setRowPinning` behavior.
|
|
25
27
|
*
|
|
26
28
|
* @example
|
|
27
29
|
* ```ts
|
|
28
|
-
* table_setRowPinning(table, (old) => old)
|
|
30
|
+
* table_setRowPinning(table, (old) => ({ ...old, top: [rowId] }))
|
|
29
31
|
* ```
|
|
30
32
|
*/
|
|
31
33
|
function table_setRowPinning(table, updater) {
|
|
@@ -33,9 +35,11 @@ function table_setRowPinning(table, updater) {
|
|
|
33
35
|
(_table$options$onRowP = (_table$options = table.options).onRowPinningChange) === null || _table$options$onRowP === void 0 || _table$options$onRowP.call(_table$options, updater);
|
|
34
36
|
}
|
|
35
37
|
/**
|
|
36
|
-
* Resets the
|
|
38
|
+
* Resets `rowPinning` to the configured initial state or feature default.
|
|
37
39
|
*
|
|
38
|
-
*
|
|
40
|
+
* With no argument, the reset clones `table.initialState.rowPinning` when it
|
|
41
|
+
* exists. Passing `true` ignores initial state and resets to empty top/bottom
|
|
42
|
+
* arrays.
|
|
39
43
|
*
|
|
40
44
|
* @example
|
|
41
45
|
* ```ts
|
|
@@ -47,13 +51,14 @@ function table_resetRowPinning(table, defaultState) {
|
|
|
47
51
|
table_setRowPinning(table, defaultState ? getDefaultRowPinningState() : require_utils.cloneState(table.initialState.rowPinning ?? getDefaultRowPinningState()));
|
|
48
52
|
}
|
|
49
53
|
/**
|
|
50
|
-
*
|
|
54
|
+
* Checks whether any rows are pinned.
|
|
51
55
|
*
|
|
52
|
-
*
|
|
56
|
+
* Omit `position` to check both regions, or pass `'top'`/`'bottom'` to inspect
|
|
57
|
+
* one region.
|
|
53
58
|
*
|
|
54
59
|
* @example
|
|
55
60
|
* ```ts
|
|
56
|
-
* const
|
|
61
|
+
* const hasPinnedRows = table_getIsSomeRowsPinned(table)
|
|
57
62
|
* ```
|
|
58
63
|
*/
|
|
59
64
|
function table_getIsSomeRowsPinned(table, position) {
|
|
@@ -82,39 +87,42 @@ function table_getPinnedRows(table, position) {
|
|
|
82
87
|
return result;
|
|
83
88
|
}
|
|
84
89
|
/**
|
|
85
|
-
*
|
|
90
|
+
* Resolves the visible rows pinned to the top region.
|
|
86
91
|
*
|
|
87
|
-
*
|
|
92
|
+
* The result follows `state.rowPinning.top` order and marks each row with
|
|
93
|
+
* `position = 'top'`.
|
|
88
94
|
*
|
|
89
95
|
* @example
|
|
90
96
|
* ```ts
|
|
91
|
-
* const
|
|
97
|
+
* const rows = table_getTopRows(table)
|
|
92
98
|
* ```
|
|
93
99
|
*/
|
|
94
100
|
function table_getTopRows(table) {
|
|
95
101
|
return table_getPinnedRows(table, "top");
|
|
96
102
|
}
|
|
97
103
|
/**
|
|
98
|
-
*
|
|
104
|
+
* Resolves the visible rows pinned to the bottom region.
|
|
99
105
|
*
|
|
100
|
-
*
|
|
106
|
+
* The result follows `state.rowPinning.bottom` order and marks each row with
|
|
107
|
+
* `position = 'bottom'`.
|
|
101
108
|
*
|
|
102
109
|
* @example
|
|
103
110
|
* ```ts
|
|
104
|
-
* const
|
|
111
|
+
* const rows = table_getBottomRows(table)
|
|
105
112
|
* ```
|
|
106
113
|
*/
|
|
107
114
|
function table_getBottomRows(table) {
|
|
108
115
|
return table_getPinnedRows(table, "bottom");
|
|
109
116
|
}
|
|
110
117
|
/**
|
|
111
|
-
*
|
|
118
|
+
* Resolves rows that are not pinned to top or bottom.
|
|
112
119
|
*
|
|
113
|
-
*
|
|
120
|
+
* The current row model is filtered by `state.rowPinning.top` and
|
|
121
|
+
* `state.rowPinning.bottom`.
|
|
114
122
|
*
|
|
115
123
|
* @example
|
|
116
124
|
* ```ts
|
|
117
|
-
* const
|
|
125
|
+
* const rows = table_getCenterRows(table)
|
|
118
126
|
* ```
|
|
119
127
|
*/
|
|
120
128
|
function table_getCenterRows(table) {
|
|
@@ -125,13 +133,14 @@ function table_getCenterRows(table) {
|
|
|
125
133
|
return allRows.filter((d) => !topAndBottom.has(d.id));
|
|
126
134
|
}
|
|
127
135
|
/**
|
|
128
|
-
*
|
|
136
|
+
* Checks whether this row can be pinned.
|
|
129
137
|
*
|
|
130
|
-
*
|
|
138
|
+
* `options.enableRowPinning` may be a boolean or a row predicate; it defaults
|
|
139
|
+
* to `true`.
|
|
131
140
|
*
|
|
132
141
|
* @example
|
|
133
142
|
* ```ts
|
|
134
|
-
* const
|
|
143
|
+
* const canPin = row_getCanPin(row)
|
|
135
144
|
* ```
|
|
136
145
|
*/
|
|
137
146
|
function row_getCanPin(row) {
|
|
@@ -140,13 +149,14 @@ function row_getCanPin(row) {
|
|
|
140
149
|
return enableRowPinning ?? true;
|
|
141
150
|
}
|
|
142
151
|
/**
|
|
143
|
-
*
|
|
152
|
+
* Reads this row's current pinning region.
|
|
144
153
|
*
|
|
145
|
-
*
|
|
154
|
+
* Rows listed in `state.rowPinning.top` return `'top'`, rows listed in
|
|
155
|
+
* `bottom` return `'bottom'`, and unpinned rows return `false`.
|
|
146
156
|
*
|
|
147
157
|
* @example
|
|
148
158
|
* ```ts
|
|
149
|
-
* const
|
|
159
|
+
* const position = row_getIsPinned(row)
|
|
150
160
|
* ```
|
|
151
161
|
*/
|
|
152
162
|
function row_getIsPinned(row) {
|
|
@@ -155,13 +165,13 @@ function row_getIsPinned(row) {
|
|
|
155
165
|
return top.includes(row.id) ? "top" : bottom.includes(row.id) ? "bottom" : false;
|
|
156
166
|
}
|
|
157
167
|
/**
|
|
158
|
-
*
|
|
168
|
+
* Finds this row's visible index within its pinned region.
|
|
159
169
|
*
|
|
160
|
-
*
|
|
170
|
+
* Unpinned rows return `-1`.
|
|
161
171
|
*
|
|
162
172
|
* @example
|
|
163
173
|
* ```ts
|
|
164
|
-
* const
|
|
174
|
+
* const index = row_getPinnedIndex(row)
|
|
165
175
|
* ```
|
|
166
176
|
*/
|
|
167
177
|
function row_getPinnedIndex(row) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rowPinningFeature.utils.cjs","names":["cloneState","row_getIsAllParentsExpanded","callMemoOrStaticFn"],"sources":["../../../src/features/row-pinning/rowPinningFeature.utils.ts"],"sourcesContent":["import { row_getIsAllParentsExpanded } from '../row-expanding/rowExpandingFeature.utils'\nimport { callMemoOrStaticFn, cloneState } from '../../utils'\nimport type { RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type {\n RowPinningPosition,\n RowPinningState,\n} from './rowPinningFeature.types'\n\n// State Utils\n\n/**\n * Returns the default row pinning state.\n *\n * Feature constructors use this value to initialize the table state or option defaults when no user value is provided.\n *\n * @example\n * ```ts\n * const initialValue = getDefaultRowPinningState()\n * ```\n */\nexport function getDefaultRowPinningState(): RowPinningState {\n return {\n top: [],\n bottom: [],\n }\n}\n\n/**\n * Updates the table's row pinning state slice.\n *\n * The updater follows TanStack Table updater semantics and is routed through the corresponding `on*Change` option or backing atom.\n *\n * @example\n * ```ts\n * table_setRowPinning(table, (old) => old)\n * ```\n */\nexport function table_setRowPinning<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<RowPinningState>,\n): void {\n table.options.onRowPinningChange?.(updater)\n}\n\n/**\n * Resets the table's row pinning state slice.\n *\n * By default the reset uses `table.initialState`; when supported, a blank/default reset bypasses the saved initial value.\n *\n * @example\n * ```ts\n * table_resetRowPinning(table)\n * table_resetRowPinning(table, true)\n * ```\n */\nexport function table_resetRowPinning<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean): void {\n table_setRowPinning(\n table,\n defaultState\n ? getDefaultRowPinningState()\n : cloneState(\n table.initialState.rowPinning ?? getDefaultRowPinningState(),\n ),\n )\n}\n\n// Table Utils\n\n/**\n * Returns is some rows pinned for the table.\n *\n * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.\n *\n * @example\n * ```ts\n * const value = table_getIsSomeRowsPinned(table)\n * ```\n */\nexport function table_getIsSomeRowsPinned<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n position?: RowPinningPosition,\n): boolean {\n const rowPinning = table.atoms.rowPinning?.get()\n\n if (!position) {\n return Boolean(rowPinning?.top.length || rowPinning?.bottom.length)\n }\n return Boolean(rowPinning?.[position].length)\n}\n\nfunction table_getPinnedRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n position: 'top' | 'bottom',\n): Array<Row<TFeatures, TData>> {\n const visibleRows = table.getRowModel().rows\n const pinnedRowIds = table.atoms.rowPinning?.get()?.[position] ?? []\n const keepPinnedRows = table.options.keepPinnedRows ?? true\n\n const result: Array<Row<TFeatures, TData>> = []\n for (let i = 0; i < pinnedRowIds.length; i++) {\n const rowId = pinnedRowIds[i]!\n let row: Row<TFeatures, TData> | undefined\n if (keepPinnedRows) {\n // get all rows that are pinned even if they would not be otherwise\n // visible; account for expanded parent rows, but not pagination/filtering\n const fullRow = table.getRow(rowId, true)\n if (row_getIsAllParentsExpanded(fullRow)) row = fullRow\n } else {\n // else get only visible rows that are pinned\n row = visibleRows.find((r) => r.id === rowId)\n }\n if (!row)\n continue\n // Assign position property directly to preserve prototype chain\n ;(row as any).position = position\n result.push(row)\n }\n return result\n}\n\n/**\n * Returns top rows for the table.\n *\n * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.\n *\n * @example\n * ```ts\n * const value = table_getTopRows(table)\n * ```\n */\nexport function table_getTopRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): Array<Row<TFeatures, TData>> {\n return table_getPinnedRows(table, 'top')\n}\n\n/**\n * Returns bottom rows for the table.\n *\n * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.\n *\n * @example\n * ```ts\n * const value = table_getBottomRows(table)\n * ```\n */\nexport function table_getBottomRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): Array<Row<TFeatures, TData>> {\n return table_getPinnedRows(table, 'bottom')\n}\n\n/**\n * Returns center rows for the table.\n *\n * This reads the relevant table atoms, options, and row-model cache to derive the current table-level value.\n *\n * @example\n * ```ts\n * const value = table_getCenterRows(table)\n * ```\n */\nexport function table_getCenterRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): Array<Row<TFeatures, TData>> {\n const { top, bottom } =\n table.atoms.rowPinning?.get() ?? getDefaultRowPinningState()\n const allRows = table.getRowModel().rows\n\n const topAndBottom = new Set([...top, ...bottom])\n return allRows.filter((d) => !topAndBottom.has(d.id))\n}\n\n// Row Utils\n\n/**\n * Returns whether a row can use pin.\n *\n * This evaluates row data, table options, and feature-specific enablement rules.\n *\n * @example\n * ```ts\n * const value = row_getCanPin(row)\n * ```\n */\nexport function row_getCanPin<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): boolean {\n const { enableRowPinning } = row.table.options\n if (typeof enableRowPinning === 'function') {\n return enableRowPinning(row)\n }\n return enableRowPinning ?? true\n}\n\n/**\n * Returns is pinned for a row.\n *\n * This is the static implementation behind the matching row instance API and may read row caches or table state atoms.\n *\n * @example\n * ```ts\n * const value = row_getIsPinned(row)\n * ```\n */\nexport function row_getIsPinned<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): RowPinningPosition {\n const { top, bottom } =\n row.table.atoms.rowPinning?.get() ?? getDefaultRowPinningState()\n\n return top.includes(row.id)\n ? 'top'\n : bottom.includes(row.id)\n ? 'bottom'\n : false\n}\n\n/**\n * Returns pinned index for a row.\n *\n * This is the static implementation behind the matching row instance API and may read row caches or table state atoms.\n *\n * @example\n * ```ts\n * const value = row_getPinnedIndex(row)\n * ```\n */\nexport function row_getPinnedIndex<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): number {\n const position = row_getIsPinned(row)\n if (!position) return -1\n\n const visiblePinnedRowIds = (\n position === 'top'\n ? callMemoOrStaticFn(row.table, 'getTopRows', table_getTopRows)\n : callMemoOrStaticFn(row.table, 'getBottomRows', table_getBottomRows)\n ).map(({ id }) => id)\n\n return visiblePinnedRowIds.indexOf(row.id)\n}\n\n/**\n * Pins or unpins a row.\n *\n * Optional flags let callers include parent rows or leaf rows when updating\n * the row pinning state.\n *\n * @example\n * ```ts\n * row_pin(row, 'top')\n * ```\n */\nexport function row_pin<TFeatures extends TableFeatures, TData extends RowData>(\n row: Row<TFeatures, TData>,\n position: RowPinningPosition,\n includeLeafRows?: boolean,\n includeParentRows?: boolean,\n): void {\n const leafRowIds = includeLeafRows\n ? row.getLeafRows().map(({ id }) => id)\n : []\n const parentRowIds = includeParentRows\n ? row.getParentRows().map(({ id }) => id)\n : []\n const rowIds: Set<string> = new Set([...parentRowIds, row.id, ...leafRowIds])\n\n table_setRowPinning(row.table, (old) => {\n if (position === 'bottom') {\n return {\n top: old.top.filter((d) => !rowIds.has(d)),\n bottom: [\n ...old.bottom.filter((d) => !rowIds.has(d)),\n ...Array.from(rowIds),\n ],\n }\n }\n\n if (position === 'top') {\n return {\n top: [...old.top.filter((d) => !rowIds.has(d)), ...Array.from(rowIds)],\n bottom: old.bottom.filter((d) => !rowIds.has(d)),\n }\n }\n\n return {\n top: old.top.filter((d) => !rowIds.has(d)),\n bottom: old.bottom.filter((d) => !rowIds.has(d)),\n }\n })\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rowPinningFeature.utils.cjs","names":["cloneState","row_getIsAllParentsExpanded","callMemoOrStaticFn"],"sources":["../../../src/features/row-pinning/rowPinningFeature.utils.ts"],"sourcesContent":["import { row_getIsAllParentsExpanded } from '../row-expanding/rowExpandingFeature.utils'\nimport { callMemoOrStaticFn, cloneState } from '../../utils'\nimport type { RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type {\n RowPinningPosition,\n RowPinningState,\n} from './rowPinningFeature.types'\n\n// State Utils\n\n/**\n * Creates the default row pinning state.\n *\n * Both pinning regions start empty. Reset APIs use this value when\n * `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const pinning = getDefaultRowPinningState()\n * ```\n */\nexport function getDefaultRowPinningState(): RowPinningState {\n return {\n top: [],\n bottom: [],\n }\n}\n\n/**\n * Routes a row pinning updater through the table's row-pinning change handler.\n *\n * The updater may be a next `{ top, bottom }` state or a function of the\n * previous state, matching the instance `table.setRowPinning` behavior.\n *\n * @example\n * ```ts\n * table_setRowPinning(table, (old) => ({ ...old, top: [rowId] }))\n * ```\n */\nexport function table_setRowPinning<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<RowPinningState>,\n): void {\n table.options.onRowPinningChange?.(updater)\n}\n\n/**\n * Resets `rowPinning` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.rowPinning` when it\n * exists. Passing `true` ignores initial state and resets to empty top/bottom\n * arrays.\n *\n * @example\n * ```ts\n * table_resetRowPinning(table)\n * table_resetRowPinning(table, true)\n * ```\n */\nexport function table_resetRowPinning<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean): void {\n table_setRowPinning(\n table,\n defaultState\n ? getDefaultRowPinningState()\n : cloneState(\n table.initialState.rowPinning ?? getDefaultRowPinningState(),\n ),\n )\n}\n\n// Table Utils\n\n/**\n * Checks whether any rows are pinned.\n *\n * Omit `position` to check both regions, or pass `'top'`/`'bottom'` to inspect\n * one region.\n *\n * @example\n * ```ts\n * const hasPinnedRows = table_getIsSomeRowsPinned(table)\n * ```\n */\nexport function table_getIsSomeRowsPinned<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n position?: RowPinningPosition,\n): boolean {\n const rowPinning = table.atoms.rowPinning?.get()\n\n if (!position) {\n return Boolean(rowPinning?.top.length || rowPinning?.bottom.length)\n }\n return Boolean(rowPinning?.[position].length)\n}\n\nfunction table_getPinnedRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n position: 'top' | 'bottom',\n): Array<Row<TFeatures, TData>> {\n const visibleRows = table.getRowModel().rows\n const pinnedRowIds = table.atoms.rowPinning?.get()?.[position] ?? []\n const keepPinnedRows = table.options.keepPinnedRows ?? true\n\n const result: Array<Row<TFeatures, TData>> = []\n for (let i = 0; i < pinnedRowIds.length; i++) {\n const rowId = pinnedRowIds[i]!\n let row: Row<TFeatures, TData> | undefined\n if (keepPinnedRows) {\n // get all rows that are pinned even if they would not be otherwise\n // visible; account for expanded parent rows, but not pagination/filtering\n const fullRow = table.getRow(rowId, true)\n if (row_getIsAllParentsExpanded(fullRow)) row = fullRow\n } else {\n // else get only visible rows that are pinned\n row = visibleRows.find((r) => r.id === rowId)\n }\n if (!row)\n continue\n // Assign position property directly to preserve prototype chain\n ;(row as any).position = position\n result.push(row)\n }\n return result\n}\n\n/**\n * Resolves the visible rows pinned to the top region.\n *\n * The result follows `state.rowPinning.top` order and marks each row with\n * `position = 'top'`.\n *\n * @example\n * ```ts\n * const rows = table_getTopRows(table)\n * ```\n */\nexport function table_getTopRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): Array<Row<TFeatures, TData>> {\n return table_getPinnedRows(table, 'top')\n}\n\n/**\n * Resolves the visible rows pinned to the bottom region.\n *\n * The result follows `state.rowPinning.bottom` order and marks each row with\n * `position = 'bottom'`.\n *\n * @example\n * ```ts\n * const rows = table_getBottomRows(table)\n * ```\n */\nexport function table_getBottomRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): Array<Row<TFeatures, TData>> {\n return table_getPinnedRows(table, 'bottom')\n}\n\n/**\n * Resolves rows that are not pinned to top or bottom.\n *\n * The current row model is filtered by `state.rowPinning.top` and\n * `state.rowPinning.bottom`.\n *\n * @example\n * ```ts\n * const rows = table_getCenterRows(table)\n * ```\n */\nexport function table_getCenterRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): Array<Row<TFeatures, TData>> {\n const { top, bottom } =\n table.atoms.rowPinning?.get() ?? getDefaultRowPinningState()\n const allRows = table.getRowModel().rows\n\n const topAndBottom = new Set([...top, ...bottom])\n return allRows.filter((d) => !topAndBottom.has(d.id))\n}\n\n// Row Utils\n\n/**\n * Checks whether this row can be pinned.\n *\n * `options.enableRowPinning` may be a boolean or a row predicate; it defaults\n * to `true`.\n *\n * @example\n * ```ts\n * const canPin = row_getCanPin(row)\n * ```\n */\nexport function row_getCanPin<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): boolean {\n const { enableRowPinning } = row.table.options\n if (typeof enableRowPinning === 'function') {\n return enableRowPinning(row)\n }\n return enableRowPinning ?? true\n}\n\n/**\n * Reads this row's current pinning region.\n *\n * Rows listed in `state.rowPinning.top` return `'top'`, rows listed in\n * `bottom` return `'bottom'`, and unpinned rows return `false`.\n *\n * @example\n * ```ts\n * const position = row_getIsPinned(row)\n * ```\n */\nexport function row_getIsPinned<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): RowPinningPosition {\n const { top, bottom } =\n row.table.atoms.rowPinning?.get() ?? getDefaultRowPinningState()\n\n return top.includes(row.id)\n ? 'top'\n : bottom.includes(row.id)\n ? 'bottom'\n : false\n}\n\n/**\n * Finds this row's visible index within its pinned region.\n *\n * Unpinned rows return `-1`.\n *\n * @example\n * ```ts\n * const index = row_getPinnedIndex(row)\n * ```\n */\nexport function row_getPinnedIndex<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): number {\n const position = row_getIsPinned(row)\n if (!position) return -1\n\n const visiblePinnedRowIds = (\n position === 'top'\n ? callMemoOrStaticFn(row.table, 'getTopRows', table_getTopRows)\n : callMemoOrStaticFn(row.table, 'getBottomRows', table_getBottomRows)\n ).map(({ id }) => id)\n\n return visiblePinnedRowIds.indexOf(row.id)\n}\n\n/**\n * Pins or unpins a row.\n *\n * Optional flags let callers include parent rows or leaf rows when updating\n * the row pinning state.\n *\n * @example\n * ```ts\n * row_pin(row, 'top')\n * ```\n */\nexport function row_pin<TFeatures extends TableFeatures, TData extends RowData>(\n row: Row<TFeatures, TData>,\n position: RowPinningPosition,\n includeLeafRows?: boolean,\n includeParentRows?: boolean,\n): void {\n const leafRowIds = includeLeafRows\n ? row.getLeafRows().map(({ id }) => id)\n : []\n const parentRowIds = includeParentRows\n ? row.getParentRows().map(({ id }) => id)\n : []\n const rowIds: Set<string> = new Set([...parentRowIds, row.id, ...leafRowIds])\n\n table_setRowPinning(row.table, (old) => {\n if (position === 'bottom') {\n return {\n top: old.top.filter((d) => !rowIds.has(d)),\n bottom: [\n ...old.bottom.filter((d) => !rowIds.has(d)),\n ...Array.from(rowIds),\n ],\n }\n }\n\n if (position === 'top') {\n return {\n top: [...old.top.filter((d) => !rowIds.has(d)), ...Array.from(rowIds)],\n bottom: old.bottom.filter((d) => !rowIds.has(d)),\n }\n }\n\n return {\n top: old.top.filter((d) => !rowIds.has(d)),\n bottom: old.bottom.filter((d) => !rowIds.has(d)),\n }\n })\n}\n"],"mappings":"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"}
|
|
@@ -6,31 +6,35 @@ import { Table_Internal } from "../../types/Table.cjs";
|
|
|
6
6
|
|
|
7
7
|
//#region src/features/row-pinning/rowPinningFeature.utils.d.ts
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
9
|
+
* Creates the default row pinning state.
|
|
10
10
|
*
|
|
11
|
-
*
|
|
11
|
+
* Both pinning regions start empty. Reset APIs use this value when
|
|
12
|
+
* `defaultState` is `true`.
|
|
12
13
|
*
|
|
13
14
|
* @example
|
|
14
15
|
* ```ts
|
|
15
|
-
* const
|
|
16
|
+
* const pinning = getDefaultRowPinningState()
|
|
16
17
|
* ```
|
|
17
18
|
*/
|
|
18
19
|
declare function getDefaultRowPinningState(): RowPinningState;
|
|
19
20
|
/**
|
|
20
|
-
*
|
|
21
|
+
* Routes a row pinning updater through the table's row-pinning change handler.
|
|
21
22
|
*
|
|
22
|
-
* The updater
|
|
23
|
+
* The updater may be a next `{ top, bottom }` state or a function of the
|
|
24
|
+
* previous state, matching the instance `table.setRowPinning` behavior.
|
|
23
25
|
*
|
|
24
26
|
* @example
|
|
25
27
|
* ```ts
|
|
26
|
-
* table_setRowPinning(table, (old) => old)
|
|
28
|
+
* table_setRowPinning(table, (old) => ({ ...old, top: [rowId] }))
|
|
27
29
|
* ```
|
|
28
30
|
*/
|
|
29
31
|
declare function table_setRowPinning<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>, updater: Updater<RowPinningState>): void;
|
|
30
32
|
/**
|
|
31
|
-
* Resets the
|
|
33
|
+
* Resets `rowPinning` to the configured initial state or feature default.
|
|
32
34
|
*
|
|
33
|
-
*
|
|
35
|
+
* With no argument, the reset clones `table.initialState.rowPinning` when it
|
|
36
|
+
* exists. Passing `true` ignores initial state and resets to empty top/bottom
|
|
37
|
+
* arrays.
|
|
34
38
|
*
|
|
35
39
|
* @example
|
|
36
40
|
* ```ts
|
|
@@ -40,79 +44,85 @@ declare function table_setRowPinning<TFeatures extends TableFeatures, TData exte
|
|
|
40
44
|
*/
|
|
41
45
|
declare function table_resetRowPinning<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean): void;
|
|
42
46
|
/**
|
|
43
|
-
*
|
|
47
|
+
* Checks whether any rows are pinned.
|
|
44
48
|
*
|
|
45
|
-
*
|
|
49
|
+
* Omit `position` to check both regions, or pass `'top'`/`'bottom'` to inspect
|
|
50
|
+
* one region.
|
|
46
51
|
*
|
|
47
52
|
* @example
|
|
48
53
|
* ```ts
|
|
49
|
-
* const
|
|
54
|
+
* const hasPinnedRows = table_getIsSomeRowsPinned(table)
|
|
50
55
|
* ```
|
|
51
56
|
*/
|
|
52
57
|
declare function table_getIsSomeRowsPinned<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>, position?: RowPinningPosition): boolean;
|
|
53
58
|
/**
|
|
54
|
-
*
|
|
59
|
+
* Resolves the visible rows pinned to the top region.
|
|
55
60
|
*
|
|
56
|
-
*
|
|
61
|
+
* The result follows `state.rowPinning.top` order and marks each row with
|
|
62
|
+
* `position = 'top'`.
|
|
57
63
|
*
|
|
58
64
|
* @example
|
|
59
65
|
* ```ts
|
|
60
|
-
* const
|
|
66
|
+
* const rows = table_getTopRows(table)
|
|
61
67
|
* ```
|
|
62
68
|
*/
|
|
63
69
|
declare function table_getTopRows<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): Array<Row<TFeatures, TData>>;
|
|
64
70
|
/**
|
|
65
|
-
*
|
|
71
|
+
* Resolves the visible rows pinned to the bottom region.
|
|
66
72
|
*
|
|
67
|
-
*
|
|
73
|
+
* The result follows `state.rowPinning.bottom` order and marks each row with
|
|
74
|
+
* `position = 'bottom'`.
|
|
68
75
|
*
|
|
69
76
|
* @example
|
|
70
77
|
* ```ts
|
|
71
|
-
* const
|
|
78
|
+
* const rows = table_getBottomRows(table)
|
|
72
79
|
* ```
|
|
73
80
|
*/
|
|
74
81
|
declare function table_getBottomRows<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): Array<Row<TFeatures, TData>>;
|
|
75
82
|
/**
|
|
76
|
-
*
|
|
83
|
+
* Resolves rows that are not pinned to top or bottom.
|
|
77
84
|
*
|
|
78
|
-
*
|
|
85
|
+
* The current row model is filtered by `state.rowPinning.top` and
|
|
86
|
+
* `state.rowPinning.bottom`.
|
|
79
87
|
*
|
|
80
88
|
* @example
|
|
81
89
|
* ```ts
|
|
82
|
-
* const
|
|
90
|
+
* const rows = table_getCenterRows(table)
|
|
83
91
|
* ```
|
|
84
92
|
*/
|
|
85
93
|
declare function table_getCenterRows<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): Array<Row<TFeatures, TData>>;
|
|
86
94
|
/**
|
|
87
|
-
*
|
|
95
|
+
* Checks whether this row can be pinned.
|
|
88
96
|
*
|
|
89
|
-
*
|
|
97
|
+
* `options.enableRowPinning` may be a boolean or a row predicate; it defaults
|
|
98
|
+
* to `true`.
|
|
90
99
|
*
|
|
91
100
|
* @example
|
|
92
101
|
* ```ts
|
|
93
|
-
* const
|
|
102
|
+
* const canPin = row_getCanPin(row)
|
|
94
103
|
* ```
|
|
95
104
|
*/
|
|
96
105
|
declare function row_getCanPin<TFeatures extends TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>): boolean;
|
|
97
106
|
/**
|
|
98
|
-
*
|
|
107
|
+
* Reads this row's current pinning region.
|
|
99
108
|
*
|
|
100
|
-
*
|
|
109
|
+
* Rows listed in `state.rowPinning.top` return `'top'`, rows listed in
|
|
110
|
+
* `bottom` return `'bottom'`, and unpinned rows return `false`.
|
|
101
111
|
*
|
|
102
112
|
* @example
|
|
103
113
|
* ```ts
|
|
104
|
-
* const
|
|
114
|
+
* const position = row_getIsPinned(row)
|
|
105
115
|
* ```
|
|
106
116
|
*/
|
|
107
117
|
declare function row_getIsPinned<TFeatures extends TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>): RowPinningPosition;
|
|
108
118
|
/**
|
|
109
|
-
*
|
|
119
|
+
* Finds this row's visible index within its pinned region.
|
|
110
120
|
*
|
|
111
|
-
*
|
|
121
|
+
* Unpinned rows return `-1`.
|
|
112
122
|
*
|
|
113
123
|
* @example
|
|
114
124
|
* ```ts
|
|
115
|
-
* const
|
|
125
|
+
* const index = row_getPinnedIndex(row)
|
|
116
126
|
* ```
|
|
117
127
|
*/
|
|
118
128
|
declare function row_getPinnedIndex<TFeatures extends TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>): number;
|
|
@@ -6,31 +6,35 @@ import { Table_Internal } from "../../types/Table.js";
|
|
|
6
6
|
|
|
7
7
|
//#region src/features/row-pinning/rowPinningFeature.utils.d.ts
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
9
|
+
* Creates the default row pinning state.
|
|
10
10
|
*
|
|
11
|
-
*
|
|
11
|
+
* Both pinning regions start empty. Reset APIs use this value when
|
|
12
|
+
* `defaultState` is `true`.
|
|
12
13
|
*
|
|
13
14
|
* @example
|
|
14
15
|
* ```ts
|
|
15
|
-
* const
|
|
16
|
+
* const pinning = getDefaultRowPinningState()
|
|
16
17
|
* ```
|
|
17
18
|
*/
|
|
18
19
|
declare function getDefaultRowPinningState(): RowPinningState;
|
|
19
20
|
/**
|
|
20
|
-
*
|
|
21
|
+
* Routes a row pinning updater through the table's row-pinning change handler.
|
|
21
22
|
*
|
|
22
|
-
* The updater
|
|
23
|
+
* The updater may be a next `{ top, bottom }` state or a function of the
|
|
24
|
+
* previous state, matching the instance `table.setRowPinning` behavior.
|
|
23
25
|
*
|
|
24
26
|
* @example
|
|
25
27
|
* ```ts
|
|
26
|
-
* table_setRowPinning(table, (old) => old)
|
|
28
|
+
* table_setRowPinning(table, (old) => ({ ...old, top: [rowId] }))
|
|
27
29
|
* ```
|
|
28
30
|
*/
|
|
29
31
|
declare function table_setRowPinning<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>, updater: Updater<RowPinningState>): void;
|
|
30
32
|
/**
|
|
31
|
-
* Resets the
|
|
33
|
+
* Resets `rowPinning` to the configured initial state or feature default.
|
|
32
34
|
*
|
|
33
|
-
*
|
|
35
|
+
* With no argument, the reset clones `table.initialState.rowPinning` when it
|
|
36
|
+
* exists. Passing `true` ignores initial state and resets to empty top/bottom
|
|
37
|
+
* arrays.
|
|
34
38
|
*
|
|
35
39
|
* @example
|
|
36
40
|
* ```ts
|
|
@@ -40,79 +44,85 @@ declare function table_setRowPinning<TFeatures extends TableFeatures, TData exte
|
|
|
40
44
|
*/
|
|
41
45
|
declare function table_resetRowPinning<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean): void;
|
|
42
46
|
/**
|
|
43
|
-
*
|
|
47
|
+
* Checks whether any rows are pinned.
|
|
44
48
|
*
|
|
45
|
-
*
|
|
49
|
+
* Omit `position` to check both regions, or pass `'top'`/`'bottom'` to inspect
|
|
50
|
+
* one region.
|
|
46
51
|
*
|
|
47
52
|
* @example
|
|
48
53
|
* ```ts
|
|
49
|
-
* const
|
|
54
|
+
* const hasPinnedRows = table_getIsSomeRowsPinned(table)
|
|
50
55
|
* ```
|
|
51
56
|
*/
|
|
52
57
|
declare function table_getIsSomeRowsPinned<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>, position?: RowPinningPosition): boolean;
|
|
53
58
|
/**
|
|
54
|
-
*
|
|
59
|
+
* Resolves the visible rows pinned to the top region.
|
|
55
60
|
*
|
|
56
|
-
*
|
|
61
|
+
* The result follows `state.rowPinning.top` order and marks each row with
|
|
62
|
+
* `position = 'top'`.
|
|
57
63
|
*
|
|
58
64
|
* @example
|
|
59
65
|
* ```ts
|
|
60
|
-
* const
|
|
66
|
+
* const rows = table_getTopRows(table)
|
|
61
67
|
* ```
|
|
62
68
|
*/
|
|
63
69
|
declare function table_getTopRows<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): Array<Row<TFeatures, TData>>;
|
|
64
70
|
/**
|
|
65
|
-
*
|
|
71
|
+
* Resolves the visible rows pinned to the bottom region.
|
|
66
72
|
*
|
|
67
|
-
*
|
|
73
|
+
* The result follows `state.rowPinning.bottom` order and marks each row with
|
|
74
|
+
* `position = 'bottom'`.
|
|
68
75
|
*
|
|
69
76
|
* @example
|
|
70
77
|
* ```ts
|
|
71
|
-
* const
|
|
78
|
+
* const rows = table_getBottomRows(table)
|
|
72
79
|
* ```
|
|
73
80
|
*/
|
|
74
81
|
declare function table_getBottomRows<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): Array<Row<TFeatures, TData>>;
|
|
75
82
|
/**
|
|
76
|
-
*
|
|
83
|
+
* Resolves rows that are not pinned to top or bottom.
|
|
77
84
|
*
|
|
78
|
-
*
|
|
85
|
+
* The current row model is filtered by `state.rowPinning.top` and
|
|
86
|
+
* `state.rowPinning.bottom`.
|
|
79
87
|
*
|
|
80
88
|
* @example
|
|
81
89
|
* ```ts
|
|
82
|
-
* const
|
|
90
|
+
* const rows = table_getCenterRows(table)
|
|
83
91
|
* ```
|
|
84
92
|
*/
|
|
85
93
|
declare function table_getCenterRows<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): Array<Row<TFeatures, TData>>;
|
|
86
94
|
/**
|
|
87
|
-
*
|
|
95
|
+
* Checks whether this row can be pinned.
|
|
88
96
|
*
|
|
89
|
-
*
|
|
97
|
+
* `options.enableRowPinning` may be a boolean or a row predicate; it defaults
|
|
98
|
+
* to `true`.
|
|
90
99
|
*
|
|
91
100
|
* @example
|
|
92
101
|
* ```ts
|
|
93
|
-
* const
|
|
102
|
+
* const canPin = row_getCanPin(row)
|
|
94
103
|
* ```
|
|
95
104
|
*/
|
|
96
105
|
declare function row_getCanPin<TFeatures extends TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>): boolean;
|
|
97
106
|
/**
|
|
98
|
-
*
|
|
107
|
+
* Reads this row's current pinning region.
|
|
99
108
|
*
|
|
100
|
-
*
|
|
109
|
+
* Rows listed in `state.rowPinning.top` return `'top'`, rows listed in
|
|
110
|
+
* `bottom` return `'bottom'`, and unpinned rows return `false`.
|
|
101
111
|
*
|
|
102
112
|
* @example
|
|
103
113
|
* ```ts
|
|
104
|
-
* const
|
|
114
|
+
* const position = row_getIsPinned(row)
|
|
105
115
|
* ```
|
|
106
116
|
*/
|
|
107
117
|
declare function row_getIsPinned<TFeatures extends TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>): RowPinningPosition;
|
|
108
118
|
/**
|
|
109
|
-
*
|
|
119
|
+
* Finds this row's visible index within its pinned region.
|
|
110
120
|
*
|
|
111
|
-
*
|
|
121
|
+
* Unpinned rows return `-1`.
|
|
112
122
|
*
|
|
113
123
|
* @example
|
|
114
124
|
* ```ts
|
|
115
|
-
* const
|
|
125
|
+
* const index = row_getPinnedIndex(row)
|
|
116
126
|
* ```
|
|
117
127
|
*/
|
|
118
128
|
declare function row_getPinnedIndex<TFeatures extends TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>): number;
|