@tanstack/table-core 9.0.0-beta.36 → 9.0.0-beta.38

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.
Files changed (93) hide show
  1. package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
  2. package/dist/core/headers/buildHeaderGroups.d.cts +1 -1
  3. package/dist/core/headers/buildHeaderGroups.d.ts +1 -1
  4. package/dist/core/headers/buildHeaderGroups.js.map +1 -1
  5. package/dist/core/headers/coreHeadersFeature.utils.cjs +7 -7
  6. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
  7. package/dist/core/headers/coreHeadersFeature.utils.js +7 -7
  8. package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
  9. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +2 -2
  10. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +2 -2
  11. package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +1 -1
  12. package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +1 -1
  13. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +1 -1
  14. package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +1 -1
  15. package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +6 -6
  16. package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +6 -6
  17. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs +6 -6
  18. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs.map +1 -1
  19. package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +3 -3
  20. package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +3 -3
  21. package/dist/features/column-ordering/columnOrderingFeature.utils.js +6 -6
  22. package/dist/features/column-ordering/columnOrderingFeature.utils.js.map +1 -1
  23. package/dist/features/column-pinning/columnPinningFeature.cjs +44 -39
  24. package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
  25. package/dist/features/column-pinning/columnPinningFeature.d.cts +6 -1
  26. package/dist/features/column-pinning/columnPinningFeature.d.ts +6 -1
  27. package/dist/features/column-pinning/columnPinningFeature.js +45 -40
  28. package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
  29. package/dist/features/column-pinning/columnPinningFeature.types.d.cts +49 -38
  30. package/dist/features/column-pinning/columnPinningFeature.types.d.ts +49 -38
  31. package/dist/features/column-pinning/columnPinningFeature.utils.cjs +154 -146
  32. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
  33. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +81 -73
  34. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +81 -73
  35. package/dist/features/column-pinning/columnPinningFeature.utils.js +141 -133
  36. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
  37. package/dist/features/column-sizing/columnSizingFeature.cjs +4 -4
  38. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
  39. package/dist/features/column-sizing/columnSizingFeature.js +5 -5
  40. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
  41. package/dist/features/column-sizing/columnSizingFeature.types.d.cts +18 -12
  42. package/dist/features/column-sizing/columnSizingFeature.types.d.ts +18 -12
  43. package/dist/features/column-sizing/columnSizingFeature.utils.cjs +24 -20
  44. package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +1 -1
  45. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +18 -14
  46. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +18 -14
  47. package/dist/features/column-sizing/columnSizingFeature.utils.js +24 -20
  48. package/dist/features/column-sizing/columnSizingFeature.utils.js.map +1 -1
  49. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +16 -16
  50. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +1 -1
  51. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +3 -3
  52. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +3 -3
  53. package/dist/features/column-visibility/columnVisibilityFeature.utils.js +16 -16
  54. package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -1
  55. package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +1 -1
  56. package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +1 -1
  57. package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +1 -1
  58. package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +1 -1
  59. package/dist/features/row-sorting/rowSortingFeature.types.d.cts +1 -1
  60. package/dist/features/row-sorting/rowSortingFeature.types.d.ts +1 -1
  61. package/dist/static-functions.cjs +16 -16
  62. package/dist/static-functions.d.cts +3 -3
  63. package/dist/static-functions.d.ts +3 -3
  64. package/dist/static-functions.js +3 -3
  65. package/dist/utils.cjs +3 -15
  66. package/dist/utils.cjs.map +1 -1
  67. package/dist/utils.d.cts +2 -2
  68. package/dist/utils.d.ts +2 -2
  69. package/dist/utils.js +3 -15
  70. package/dist/utils.js.map +1 -1
  71. package/package.json +1 -1
  72. package/src/core/headers/buildHeaderGroups.ts +1 -1
  73. package/src/core/headers/coreHeadersFeature.utils.ts +7 -8
  74. package/src/core/row-models/coreRowModelsFeature.types.ts +0 -1
  75. package/src/core/table/coreTablesFeature.types.ts +1 -0
  76. package/src/features/column-faceting/columnFacetingFeature.types.ts +0 -1
  77. package/src/features/column-filtering/columnFilteringFeature.types.ts +3 -3
  78. package/src/features/column-grouping/columnGroupingFeature.types.ts +2 -2
  79. package/src/features/column-grouping/columnGroupingFeature.utils.ts +2 -0
  80. package/src/features/column-ordering/columnOrderingFeature.types.ts +7 -7
  81. package/src/features/column-ordering/columnOrderingFeature.utils.ts +9 -9
  82. package/src/features/column-pinning/columnPinningFeature.ts +64 -59
  83. package/src/features/column-pinning/columnPinningFeature.types.ts +49 -38
  84. package/src/features/column-pinning/columnPinningFeature.utils.ts +163 -155
  85. package/src/features/column-sizing/columnSizingFeature.ts +6 -6
  86. package/src/features/column-sizing/columnSizingFeature.types.ts +18 -12
  87. package/src/features/column-sizing/columnSizingFeature.utils.ts +31 -27
  88. package/src/features/column-visibility/columnVisibilityFeature.utils.ts +15 -15
  89. package/src/features/row-expanding/rowExpandingFeature.types.ts +2 -3
  90. package/src/features/row-pagination/rowPaginationFeature.types.ts +2 -3
  91. package/src/features/row-sorting/rowSortingFeature.types.ts +2 -2
  92. package/src/types/ColumnDef.ts +1 -0
  93. package/src/utils.ts +3 -4
@@ -1 +1 @@
1
- {"version":3,"file":"columnOrderingFeature.utils.cjs","names":["makeObjectMap","table_getPinnedVisibleLeafColumns","callMemoOrStaticFn","cloneState"],"sources":["../../../src/features/column-ordering/columnOrderingFeature.utils.ts"],"sourcesContent":["import { table_getPinnedVisibleLeafColumns } from '../column-pinning/columnPinningFeature.utils'\nimport { callMemoOrStaticFn, cloneState, makeObjectMap } from '../../utils'\nimport type { GroupingState } from '../column-grouping/columnGroupingFeature.types'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Column, Column_Internal } from '../../types/Column'\nimport type { ColumnPinningPosition } from '../column-pinning/columnPinningFeature.types'\nimport type {\n ColumnIndexes,\n ColumnOrderState,\n} from './columnOrderingFeature.types'\n\n/**\n * Creates the default column order state.\n *\n * The feature default is an empty array, meaning leaf columns keep their natural\n * definition order. Reset APIs use this value when `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const order = getDefaultColumnOrderState()\n * ```\n */\nexport function getDefaultColumnOrderState(): ColumnOrderState {\n return []\n}\n\n/**\n * Builds column-id to index records for each visible pinning region.\n *\n * All four regions are built in one pass so a single memo entry serves every\n * `column_getIndex` lookup without per-column scans.\n *\n * @example\n * ```ts\n * const indexes = table_getColumnIndexes(table)\n * ```\n */\nexport function table_getColumnIndexes<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): ColumnIndexes {\n const buildIndexes = (\n columns: ReadonlyArray<\n | Column<TFeatures, TData, unknown>\n | Column_Internal<TFeatures, TData, unknown>\n >,\n ): Record<string, number> => {\n const indexes = makeObjectMap<number>()\n for (let i = 0; i < columns.length; i++) {\n indexes[columns[i]!.id] = i\n }\n return indexes\n }\n\n return {\n all: buildIndexes(table_getPinnedVisibleLeafColumns(table)),\n center: buildIndexes(table_getPinnedVisibleLeafColumns(table, 'center')),\n left: buildIndexes(table_getPinnedVisibleLeafColumns(table, 'left')),\n right: buildIndexes(table_getPinnedVisibleLeafColumns(table, 'right')),\n }\n}\n\n/**\n * Finds this column's index within a visible pinning region.\n *\n * Pass `'left'`, `'center'`, or `'right'` to search that region; omit the\n * position to search the full visible leaf column list.\n *\n * @example\n * ```ts\n * const index = column_getIndex(column, 'center')\n * ```\n */\nexport function column_getIndex<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position?: ColumnPinningPosition | 'center',\n) {\n const indexes = callMemoOrStaticFn(\n column.table,\n 'getColumnIndexes',\n table_getColumnIndexes,\n )\n const key =\n position === 'left'\n ? 'left'\n : position === 'right'\n ? 'right'\n : position === 'center'\n ? 'center'\n : 'all'\n return indexes[key][column.id] ?? -1\n}\n\n/**\n * Checks whether this column is the first visible column in a pinning region.\n *\n * The same `position` semantics as `column_getIndex` apply.\n *\n * @example\n * ```ts\n * const isFirst = column_getIsFirstColumn(column, 'left')\n * ```\n */\nexport function column_getIsFirstColumn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position?: ColumnPinningPosition | 'center',\n) {\n const columns = table_getPinnedVisibleLeafColumns(column.table, position)\n return columns[0]?.id === column.id\n}\n\n/**\n * Checks whether this column is the last visible column in a pinning region.\n *\n * The same `position` semantics as `column_getIndex` apply.\n *\n * @example\n * ```ts\n * const isLast = column_getIsLastColumn(column, 'right')\n * ```\n */\nexport function column_getIsLastColumn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position?: ColumnPinningPosition | 'center',\n) {\n const columns = table_getPinnedVisibleLeafColumns(column.table, position)\n return columns[columns.length - 1]?.id === column.id\n}\n\n/**\n * Routes a column order updater through the table's column-order change handler.\n *\n * The updater may be a next ordered id array or a function of the previous\n * array, matching the instance `table.setColumnOrder` behavior.\n *\n * @example\n * ```ts\n * table_setColumnOrder(table, ['firstName', 'lastName', 'age'])\n * ```\n */\nexport function table_setColumnOrder<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, updater: Updater<ColumnOrderState>) {\n table.options.onColumnOrderChange?.(updater)\n}\n\n/**\n * Resets `columnOrder` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.columnOrder` when it\n * exists. Passing `true` ignores initial state and resets to `[]`.\n *\n * @example\n * ```ts\n * table_resetColumnOrder(table)\n * table_resetColumnOrder(table, true)\n * ```\n */\nexport function table_resetColumnOrder<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnOrder(\n table,\n defaultState ? [] : cloneState(table.initialState.columnOrder ?? []),\n )\n}\n\n/**\n * Creates the ordering function used to arrange leaf columns.\n *\n * The returned function applies `state.columnOrder`, preserves unspecified\n * columns in their original order, then delegates to grouping rules.\n *\n * @example\n * ```ts\n * const orderColumnsForTable = table_getOrderColumnsFn(table)\n * ```\n */\nexport function table_getOrderColumnsFn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const columnOrder = table.atoms.columnOrder?.get()\n\n return (columns: Array<Column_Internal<TFeatures, TData, unknown>>) => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns: Array<Column_Internal<TFeatures, TData, unknown>> = []\n\n // If there is no order, return the normal columns\n if (!columnOrder?.length) {\n orderedColumns = columns\n } else {\n // Index columns by id for O(1) lookup\n const remaining = new Map<\n string,\n Column_Internal<TFeatures, TData, unknown>\n >()\n for (let i = 0; i < columns.length; i++) {\n const column = columns[i]!\n remaining.set(column.id, column)\n }\n\n // Place columns in the requested order, removing each as it's used\n // (handles duplicates and unknown ids in columnOrder)\n for (let i = 0; i < columnOrder.length; i++) {\n const id = columnOrder[i]!\n const column = remaining.get(id)\n if (column) {\n orderedColumns.push(column)\n remaining.delete(id)\n }\n }\n\n // Append leftover columns in their original order\n for (let i = 0; i < columns.length; i++) {\n const column = columns[i]!\n if (remaining.has(column.id)) orderedColumns.push(column)\n }\n }\n\n return orderColumns(table, orderedColumns)\n }\n}\n\n/**\n * Applies grouped-column placement rules to an already ordered leaf-column list.\n *\n * `groupedColumnMode: 'remove'` drops grouped columns from the list.\n * `groupedColumnMode: 'reorder'` moves grouped columns to the front in grouping\n * state order.\n *\n * @example\n * ```ts\n * const orderedColumns = orderColumns(table, leafColumns)\n * ```\n */\nexport function orderColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n leafColumns: Array<Column_Internal<TFeatures, TData, unknown>>,\n) {\n const grouping = table.atoms.grouping?.get() ?? ([] as GroupingState)\n const { groupedColumnMode } = table.options\n\n if (!grouping.length || !groupedColumnMode) {\n return leafColumns\n }\n\n const nonGroupingColumns = leafColumns.filter(\n (col) => !grouping.includes(col.id),\n )\n\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns\n }\n\n const leafColumnsById = new Map<\n string,\n Column_Internal<TFeatures, TData, unknown>\n >()\n for (let i = 0; i < leafColumns.length; i++) {\n const col = leafColumns[i]!\n leafColumnsById.set(col.id, col)\n }\n\n const groupingColumns: Array<Column_Internal<TFeatures, TData, unknown>> = []\n for (let i = 0; i < grouping.length; i++) {\n const col = leafColumnsById.get(grouping[i]!)\n if (col) groupingColumns.push(col)\n }\n\n return [...groupingColumns, ...nonGroupingColumns]\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"columnOrderingFeature.utils.cjs","names":["makeObjectMap","table_getPinnedVisibleLeafColumns","callMemoOrStaticFn","cloneState"],"sources":["../../../src/features/column-ordering/columnOrderingFeature.utils.ts"],"sourcesContent":["import { table_getPinnedVisibleLeafColumns } from '../column-pinning/columnPinningFeature.utils'\nimport { callMemoOrStaticFn, cloneState, makeObjectMap } from '../../utils'\nimport type { GroupingState } from '../column-grouping/columnGroupingFeature.types'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Column, Column_Internal } from '../../types/Column'\nimport type { ColumnPinningPosition } from '../column-pinning/columnPinningFeature.types'\nimport type {\n ColumnIndexes,\n ColumnOrderState,\n} from './columnOrderingFeature.types'\n\n/**\n * Creates the default column order state.\n *\n * The feature default is an empty array, meaning leaf columns keep their natural\n * definition order. Reset APIs use this value when `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const order = getDefaultColumnOrderState()\n * ```\n */\nexport function getDefaultColumnOrderState(): ColumnOrderState {\n return []\n}\n\n/**\n * Builds column-id to index records for each visible pinning region.\n *\n * All four regions are built in one pass so a single memo entry serves every\n * `column_getIndex` lookup without per-column scans.\n *\n * @example\n * ```ts\n * const indexes = table_getColumnIndexes(table)\n * ```\n */\nexport function table_getColumnIndexes<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): ColumnIndexes {\n const buildIndexes = (\n columns: ReadonlyArray<\n | Column<TFeatures, TData, unknown>\n | Column_Internal<TFeatures, TData, unknown>\n >,\n ): Record<string, number> => {\n const indexes = makeObjectMap<number>()\n for (let i = 0; i < columns.length; i++) {\n indexes[columns[i]!.id] = i\n }\n return indexes\n }\n\n return {\n all: buildIndexes(table_getPinnedVisibleLeafColumns(table)),\n center: buildIndexes(table_getPinnedVisibleLeafColumns(table, 'center')),\n start: buildIndexes(table_getPinnedVisibleLeafColumns(table, 'start')),\n end: buildIndexes(table_getPinnedVisibleLeafColumns(table, 'end')),\n }\n}\n\n/**\n * Finds this column's index within a visible pinning region.\n *\n * Pass `'start'`, `'center'`, or `'end'` to search that region; omit the\n * position to search the full visible leaf column list.\n *\n * @example\n * ```ts\n * const index = column_getIndex(column, 'center')\n * ```\n */\nexport function column_getIndex<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position?: ColumnPinningPosition | 'center',\n) {\n const indexes = callMemoOrStaticFn(\n column.table,\n 'getColumnIndexes',\n table_getColumnIndexes,\n )\n const key =\n position === 'start'\n ? 'start'\n : position === 'end'\n ? 'end'\n : position === 'center'\n ? 'center'\n : 'all'\n return indexes[key][column.id] ?? -1\n}\n\n/**\n * Checks whether this column is the first visible column in a pinning region.\n *\n * The same `position` semantics as `column_getIndex` apply.\n *\n * @example\n * ```ts\n * const isFirst = column_getIsFirstColumn(column, 'start')\n * ```\n */\nexport function column_getIsFirstColumn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position?: ColumnPinningPosition | 'center',\n) {\n const columns = table_getPinnedVisibleLeafColumns(column.table, position)\n return columns[0]?.id === column.id\n}\n\n/**\n * Checks whether this column is the last visible column in a pinning region.\n *\n * The same `position` semantics as `column_getIndex` apply.\n *\n * @example\n * ```ts\n * const isLast = column_getIsLastColumn(column, 'end')\n * ```\n */\nexport function column_getIsLastColumn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position?: ColumnPinningPosition | 'center',\n) {\n const columns = table_getPinnedVisibleLeafColumns(column.table, position)\n return columns[columns.length - 1]?.id === column.id\n}\n\n/**\n * Routes a column order updater through the table's column-order change handler.\n *\n * The updater may be a next ordered id array or a function of the previous\n * array, matching the instance `table.setColumnOrder` behavior.\n *\n * @example\n * ```ts\n * table_setColumnOrder(table, ['firstName', 'lastName', 'age'])\n * ```\n */\nexport function table_setColumnOrder<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, updater: Updater<ColumnOrderState>) {\n table.options.onColumnOrderChange?.(updater)\n}\n\n/**\n * Resets `columnOrder` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.columnOrder` when it\n * exists. Passing `true` ignores initial state and resets to `[]`.\n *\n * @example\n * ```ts\n * table_resetColumnOrder(table)\n * table_resetColumnOrder(table, true)\n * ```\n */\nexport function table_resetColumnOrder<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnOrder(\n table,\n defaultState ? [] : cloneState(table.initialState.columnOrder ?? []),\n )\n}\n\n/**\n * Creates the ordering function used to arrange leaf columns.\n *\n * The returned function applies `state.columnOrder`, preserves unspecified\n * columns in their original order, then delegates to grouping rules.\n *\n * @example\n * ```ts\n * const orderColumnsForTable = table_getOrderColumnsFn(table)\n * ```\n */\nexport function table_getOrderColumnsFn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const columnOrder = table.atoms.columnOrder?.get()\n\n return (columns: Array<Column_Internal<TFeatures, TData, unknown>>) => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns: Array<Column_Internal<TFeatures, TData, unknown>> = []\n\n // If there is no order, return the normal columns\n if (!columnOrder?.length) {\n orderedColumns = columns\n } else {\n // Index columns by id for O(1) lookup\n const remaining = new Map<\n string,\n Column_Internal<TFeatures, TData, unknown>\n >()\n for (let i = 0; i < columns.length; i++) {\n const column = columns[i]!\n remaining.set(column.id, column)\n }\n\n // Place columns in the requested order, removing each as it's used\n // (handles duplicates and unknown ids in columnOrder)\n for (let i = 0; i < columnOrder.length; i++) {\n const id = columnOrder[i]!\n const column = remaining.get(id)\n if (column) {\n orderedColumns.push(column)\n remaining.delete(id)\n }\n }\n\n // Append leftover columns in their original order\n for (let i = 0; i < columns.length; i++) {\n const column = columns[i]!\n if (remaining.has(column.id)) orderedColumns.push(column)\n }\n }\n\n return orderColumns(table, orderedColumns)\n }\n}\n\n/**\n * Applies grouped-column placement rules to an already ordered leaf-column list.\n *\n * `groupedColumnMode: 'remove'` drops grouped columns from the list.\n * `groupedColumnMode: 'reorder'` moves grouped columns to the front in grouping\n * state order.\n *\n * @example\n * ```ts\n * const orderedColumns = orderColumns(table, leafColumns)\n * ```\n */\nexport function orderColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n leafColumns: Array<Column_Internal<TFeatures, TData, unknown>>,\n) {\n const grouping = table.atoms.grouping?.get() ?? ([] as GroupingState)\n const { groupedColumnMode } = table.options\n\n if (!grouping.length || !groupedColumnMode) {\n return leafColumns\n }\n\n const nonGroupingColumns = leafColumns.filter(\n (col) => !grouping.includes(col.id),\n )\n\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns\n }\n\n const leafColumnsById = new Map<\n string,\n Column_Internal<TFeatures, TData, unknown>\n >()\n for (let i = 0; i < leafColumns.length; i++) {\n const col = leafColumns[i]!\n leafColumnsById.set(col.id, col)\n }\n\n const groupingColumns: Array<Column_Internal<TFeatures, TData, unknown>> = []\n for (let i = 0; i < grouping.length; i++) {\n const col = leafColumnsById.get(grouping[i]!)\n if (col) groupingColumns.push(col)\n }\n\n return [...groupingColumns, ...nonGroupingColumns]\n}\n"],"mappings":"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"}
@@ -33,7 +33,7 @@ declare function table_getColumnIndexes<TFeatures extends TableFeatures, TData e
33
33
  /**
34
34
  * Finds this column's index within a visible pinning region.
35
35
  *
36
- * Pass `'left'`, `'center'`, or `'right'` to search that region; omit the
36
+ * Pass `'start'`, `'center'`, or `'end'` to search that region; omit the
37
37
  * position to search the full visible leaf column list.
38
38
  *
39
39
  * @example
@@ -49,7 +49,7 @@ declare function column_getIndex<TFeatures extends TableFeatures, TData extends
49
49
  *
50
50
  * @example
51
51
  * ```ts
52
- * const isFirst = column_getIsFirstColumn(column, 'left')
52
+ * const isFirst = column_getIsFirstColumn(column, 'start')
53
53
  * ```
54
54
  */
55
55
  declare function column_getIsFirstColumn<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column<TFeatures, TData, TValue>, position?: ColumnPinningPosition | 'center'): boolean;
@@ -60,7 +60,7 @@ declare function column_getIsFirstColumn<TFeatures extends TableFeatures, TData
60
60
  *
61
61
  * @example
62
62
  * ```ts
63
- * const isLast = column_getIsLastColumn(column, 'right')
63
+ * const isLast = column_getIsLastColumn(column, 'end')
64
64
  * ```
65
65
  */
66
66
  declare function column_getIsLastColumn<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column<TFeatures, TData, TValue>, position?: ColumnPinningPosition | 'center'): boolean;
@@ -33,7 +33,7 @@ declare function table_getColumnIndexes<TFeatures extends TableFeatures, TData e
33
33
  /**
34
34
  * Finds this column's index within a visible pinning region.
35
35
  *
36
- * Pass `'left'`, `'center'`, or `'right'` to search that region; omit the
36
+ * Pass `'start'`, `'center'`, or `'end'` to search that region; omit the
37
37
  * position to search the full visible leaf column list.
38
38
  *
39
39
  * @example
@@ -49,7 +49,7 @@ declare function column_getIndex<TFeatures extends TableFeatures, TData extends
49
49
  *
50
50
  * @example
51
51
  * ```ts
52
- * const isFirst = column_getIsFirstColumn(column, 'left')
52
+ * const isFirst = column_getIsFirstColumn(column, 'start')
53
53
  * ```
54
54
  */
55
55
  declare function column_getIsFirstColumn<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column<TFeatures, TData, TValue>, position?: ColumnPinningPosition | 'center'): boolean;
@@ -60,7 +60,7 @@ declare function column_getIsFirstColumn<TFeatures extends TableFeatures, TData
60
60
  *
61
61
  * @example
62
62
  * ```ts
63
- * const isLast = column_getIsLastColumn(column, 'right')
63
+ * const isLast = column_getIsLastColumn(column, 'end')
64
64
  * ```
65
65
  */
66
66
  declare function column_getIsLastColumn<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(column: Column<TFeatures, TData, TValue>, position?: ColumnPinningPosition | 'center'): boolean;
@@ -36,14 +36,14 @@ function table_getColumnIndexes(table) {
36
36
  return {
37
37
  all: buildIndexes(table_getPinnedVisibleLeafColumns(table)),
38
38
  center: buildIndexes(table_getPinnedVisibleLeafColumns(table, "center")),
39
- left: buildIndexes(table_getPinnedVisibleLeafColumns(table, "left")),
40
- right: buildIndexes(table_getPinnedVisibleLeafColumns(table, "right"))
39
+ start: buildIndexes(table_getPinnedVisibleLeafColumns(table, "start")),
40
+ end: buildIndexes(table_getPinnedVisibleLeafColumns(table, "end"))
41
41
  };
42
42
  }
43
43
  /**
44
44
  * Finds this column's index within a visible pinning region.
45
45
  *
46
- * Pass `'left'`, `'center'`, or `'right'` to search that region; omit the
46
+ * Pass `'start'`, `'center'`, or `'end'` to search that region; omit the
47
47
  * position to search the full visible leaf column list.
48
48
  *
49
49
  * @example
@@ -52,7 +52,7 @@ function table_getColumnIndexes(table) {
52
52
  * ```
53
53
  */
54
54
  function column_getIndex(column, position) {
55
- return callMemoOrStaticFn(column.table, "getColumnIndexes", table_getColumnIndexes)[position === "left" ? "left" : position === "right" ? "right" : position === "center" ? "center" : "all"][column.id] ?? -1;
55
+ return callMemoOrStaticFn(column.table, "getColumnIndexes", table_getColumnIndexes)[position === "start" ? "start" : position === "end" ? "end" : position === "center" ? "center" : "all"][column.id] ?? -1;
56
56
  }
57
57
  /**
58
58
  * Checks whether this column is the first visible column in a pinning region.
@@ -61,7 +61,7 @@ function column_getIndex(column, position) {
61
61
  *
62
62
  * @example
63
63
  * ```ts
64
- * const isFirst = column_getIsFirstColumn(column, 'left')
64
+ * const isFirst = column_getIsFirstColumn(column, 'start')
65
65
  * ```
66
66
  */
67
67
  function column_getIsFirstColumn(column, position) {
@@ -74,7 +74,7 @@ function column_getIsFirstColumn(column, position) {
74
74
  *
75
75
  * @example
76
76
  * ```ts
77
- * const isLast = column_getIsLastColumn(column, 'right')
77
+ * const isLast = column_getIsLastColumn(column, 'end')
78
78
  * ```
79
79
  */
80
80
  function column_getIsLastColumn(column, position) {
@@ -1 +1 @@
1
- {"version":3,"file":"columnOrderingFeature.utils.js","names":[],"sources":["../../../src/features/column-ordering/columnOrderingFeature.utils.ts"],"sourcesContent":["import { table_getPinnedVisibleLeafColumns } from '../column-pinning/columnPinningFeature.utils'\nimport { callMemoOrStaticFn, cloneState, makeObjectMap } from '../../utils'\nimport type { GroupingState } from '../column-grouping/columnGroupingFeature.types'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Column, Column_Internal } from '../../types/Column'\nimport type { ColumnPinningPosition } from '../column-pinning/columnPinningFeature.types'\nimport type {\n ColumnIndexes,\n ColumnOrderState,\n} from './columnOrderingFeature.types'\n\n/**\n * Creates the default column order state.\n *\n * The feature default is an empty array, meaning leaf columns keep their natural\n * definition order. Reset APIs use this value when `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const order = getDefaultColumnOrderState()\n * ```\n */\nexport function getDefaultColumnOrderState(): ColumnOrderState {\n return []\n}\n\n/**\n * Builds column-id to index records for each visible pinning region.\n *\n * All four regions are built in one pass so a single memo entry serves every\n * `column_getIndex` lookup without per-column scans.\n *\n * @example\n * ```ts\n * const indexes = table_getColumnIndexes(table)\n * ```\n */\nexport function table_getColumnIndexes<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): ColumnIndexes {\n const buildIndexes = (\n columns: ReadonlyArray<\n | Column<TFeatures, TData, unknown>\n | Column_Internal<TFeatures, TData, unknown>\n >,\n ): Record<string, number> => {\n const indexes = makeObjectMap<number>()\n for (let i = 0; i < columns.length; i++) {\n indexes[columns[i]!.id] = i\n }\n return indexes\n }\n\n return {\n all: buildIndexes(table_getPinnedVisibleLeafColumns(table)),\n center: buildIndexes(table_getPinnedVisibleLeafColumns(table, 'center')),\n left: buildIndexes(table_getPinnedVisibleLeafColumns(table, 'left')),\n right: buildIndexes(table_getPinnedVisibleLeafColumns(table, 'right')),\n }\n}\n\n/**\n * Finds this column's index within a visible pinning region.\n *\n * Pass `'left'`, `'center'`, or `'right'` to search that region; omit the\n * position to search the full visible leaf column list.\n *\n * @example\n * ```ts\n * const index = column_getIndex(column, 'center')\n * ```\n */\nexport function column_getIndex<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position?: ColumnPinningPosition | 'center',\n) {\n const indexes = callMemoOrStaticFn(\n column.table,\n 'getColumnIndexes',\n table_getColumnIndexes,\n )\n const key =\n position === 'left'\n ? 'left'\n : position === 'right'\n ? 'right'\n : position === 'center'\n ? 'center'\n : 'all'\n return indexes[key][column.id] ?? -1\n}\n\n/**\n * Checks whether this column is the first visible column in a pinning region.\n *\n * The same `position` semantics as `column_getIndex` apply.\n *\n * @example\n * ```ts\n * const isFirst = column_getIsFirstColumn(column, 'left')\n * ```\n */\nexport function column_getIsFirstColumn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position?: ColumnPinningPosition | 'center',\n) {\n const columns = table_getPinnedVisibleLeafColumns(column.table, position)\n return columns[0]?.id === column.id\n}\n\n/**\n * Checks whether this column is the last visible column in a pinning region.\n *\n * The same `position` semantics as `column_getIndex` apply.\n *\n * @example\n * ```ts\n * const isLast = column_getIsLastColumn(column, 'right')\n * ```\n */\nexport function column_getIsLastColumn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position?: ColumnPinningPosition | 'center',\n) {\n const columns = table_getPinnedVisibleLeafColumns(column.table, position)\n return columns[columns.length - 1]?.id === column.id\n}\n\n/**\n * Routes a column order updater through the table's column-order change handler.\n *\n * The updater may be a next ordered id array or a function of the previous\n * array, matching the instance `table.setColumnOrder` behavior.\n *\n * @example\n * ```ts\n * table_setColumnOrder(table, ['firstName', 'lastName', 'age'])\n * ```\n */\nexport function table_setColumnOrder<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, updater: Updater<ColumnOrderState>) {\n table.options.onColumnOrderChange?.(updater)\n}\n\n/**\n * Resets `columnOrder` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.columnOrder` when it\n * exists. Passing `true` ignores initial state and resets to `[]`.\n *\n * @example\n * ```ts\n * table_resetColumnOrder(table)\n * table_resetColumnOrder(table, true)\n * ```\n */\nexport function table_resetColumnOrder<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnOrder(\n table,\n defaultState ? [] : cloneState(table.initialState.columnOrder ?? []),\n )\n}\n\n/**\n * Creates the ordering function used to arrange leaf columns.\n *\n * The returned function applies `state.columnOrder`, preserves unspecified\n * columns in their original order, then delegates to grouping rules.\n *\n * @example\n * ```ts\n * const orderColumnsForTable = table_getOrderColumnsFn(table)\n * ```\n */\nexport function table_getOrderColumnsFn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const columnOrder = table.atoms.columnOrder?.get()\n\n return (columns: Array<Column_Internal<TFeatures, TData, unknown>>) => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns: Array<Column_Internal<TFeatures, TData, unknown>> = []\n\n // If there is no order, return the normal columns\n if (!columnOrder?.length) {\n orderedColumns = columns\n } else {\n // Index columns by id for O(1) lookup\n const remaining = new Map<\n string,\n Column_Internal<TFeatures, TData, unknown>\n >()\n for (let i = 0; i < columns.length; i++) {\n const column = columns[i]!\n remaining.set(column.id, column)\n }\n\n // Place columns in the requested order, removing each as it's used\n // (handles duplicates and unknown ids in columnOrder)\n for (let i = 0; i < columnOrder.length; i++) {\n const id = columnOrder[i]!\n const column = remaining.get(id)\n if (column) {\n orderedColumns.push(column)\n remaining.delete(id)\n }\n }\n\n // Append leftover columns in their original order\n for (let i = 0; i < columns.length; i++) {\n const column = columns[i]!\n if (remaining.has(column.id)) orderedColumns.push(column)\n }\n }\n\n return orderColumns(table, orderedColumns)\n }\n}\n\n/**\n * Applies grouped-column placement rules to an already ordered leaf-column list.\n *\n * `groupedColumnMode: 'remove'` drops grouped columns from the list.\n * `groupedColumnMode: 'reorder'` moves grouped columns to the front in grouping\n * state order.\n *\n * @example\n * ```ts\n * const orderedColumns = orderColumns(table, leafColumns)\n * ```\n */\nexport function orderColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n leafColumns: Array<Column_Internal<TFeatures, TData, unknown>>,\n) {\n const grouping = table.atoms.grouping?.get() ?? ([] as GroupingState)\n const { groupedColumnMode } = table.options\n\n if (!grouping.length || !groupedColumnMode) {\n return leafColumns\n }\n\n const nonGroupingColumns = leafColumns.filter(\n (col) => !grouping.includes(col.id),\n )\n\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns\n }\n\n const leafColumnsById = new Map<\n string,\n Column_Internal<TFeatures, TData, unknown>\n >()\n for (let i = 0; i < leafColumns.length; i++) {\n const col = leafColumns[i]!\n leafColumnsById.set(col.id, col)\n }\n\n const groupingColumns: Array<Column_Internal<TFeatures, TData, unknown>> = []\n for (let i = 0; i < grouping.length; i++) {\n const col = leafColumnsById.get(grouping[i]!)\n if (col) groupingColumns.push(col)\n }\n\n return [...groupingColumns, ...nonGroupingColumns]\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"columnOrderingFeature.utils.js","names":[],"sources":["../../../src/features/column-ordering/columnOrderingFeature.utils.ts"],"sourcesContent":["import { table_getPinnedVisibleLeafColumns } from '../column-pinning/columnPinningFeature.utils'\nimport { callMemoOrStaticFn, cloneState, makeObjectMap } from '../../utils'\nimport type { GroupingState } from '../column-grouping/columnGroupingFeature.types'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Column, Column_Internal } from '../../types/Column'\nimport type { ColumnPinningPosition } from '../column-pinning/columnPinningFeature.types'\nimport type {\n ColumnIndexes,\n ColumnOrderState,\n} from './columnOrderingFeature.types'\n\n/**\n * Creates the default column order state.\n *\n * The feature default is an empty array, meaning leaf columns keep their natural\n * definition order. Reset APIs use this value when `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const order = getDefaultColumnOrderState()\n * ```\n */\nexport function getDefaultColumnOrderState(): ColumnOrderState {\n return []\n}\n\n/**\n * Builds column-id to index records for each visible pinning region.\n *\n * All four regions are built in one pass so a single memo entry serves every\n * `column_getIndex` lookup without per-column scans.\n *\n * @example\n * ```ts\n * const indexes = table_getColumnIndexes(table)\n * ```\n */\nexport function table_getColumnIndexes<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): ColumnIndexes {\n const buildIndexes = (\n columns: ReadonlyArray<\n | Column<TFeatures, TData, unknown>\n | Column_Internal<TFeatures, TData, unknown>\n >,\n ): Record<string, number> => {\n const indexes = makeObjectMap<number>()\n for (let i = 0; i < columns.length; i++) {\n indexes[columns[i]!.id] = i\n }\n return indexes\n }\n\n return {\n all: buildIndexes(table_getPinnedVisibleLeafColumns(table)),\n center: buildIndexes(table_getPinnedVisibleLeafColumns(table, 'center')),\n start: buildIndexes(table_getPinnedVisibleLeafColumns(table, 'start')),\n end: buildIndexes(table_getPinnedVisibleLeafColumns(table, 'end')),\n }\n}\n\n/**\n * Finds this column's index within a visible pinning region.\n *\n * Pass `'start'`, `'center'`, or `'end'` to search that region; omit the\n * position to search the full visible leaf column list.\n *\n * @example\n * ```ts\n * const index = column_getIndex(column, 'center')\n * ```\n */\nexport function column_getIndex<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position?: ColumnPinningPosition | 'center',\n) {\n const indexes = callMemoOrStaticFn(\n column.table,\n 'getColumnIndexes',\n table_getColumnIndexes,\n )\n const key =\n position === 'start'\n ? 'start'\n : position === 'end'\n ? 'end'\n : position === 'center'\n ? 'center'\n : 'all'\n return indexes[key][column.id] ?? -1\n}\n\n/**\n * Checks whether this column is the first visible column in a pinning region.\n *\n * The same `position` semantics as `column_getIndex` apply.\n *\n * @example\n * ```ts\n * const isFirst = column_getIsFirstColumn(column, 'start')\n * ```\n */\nexport function column_getIsFirstColumn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position?: ColumnPinningPosition | 'center',\n) {\n const columns = table_getPinnedVisibleLeafColumns(column.table, position)\n return columns[0]?.id === column.id\n}\n\n/**\n * Checks whether this column is the last visible column in a pinning region.\n *\n * The same `position` semantics as `column_getIndex` apply.\n *\n * @example\n * ```ts\n * const isLast = column_getIsLastColumn(column, 'end')\n * ```\n */\nexport function column_getIsLastColumn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position?: ColumnPinningPosition | 'center',\n) {\n const columns = table_getPinnedVisibleLeafColumns(column.table, position)\n return columns[columns.length - 1]?.id === column.id\n}\n\n/**\n * Routes a column order updater through the table's column-order change handler.\n *\n * The updater may be a next ordered id array or a function of the previous\n * array, matching the instance `table.setColumnOrder` behavior.\n *\n * @example\n * ```ts\n * table_setColumnOrder(table, ['firstName', 'lastName', 'age'])\n * ```\n */\nexport function table_setColumnOrder<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, updater: Updater<ColumnOrderState>) {\n table.options.onColumnOrderChange?.(updater)\n}\n\n/**\n * Resets `columnOrder` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.columnOrder` when it\n * exists. Passing `true` ignores initial state and resets to `[]`.\n *\n * @example\n * ```ts\n * table_resetColumnOrder(table)\n * table_resetColumnOrder(table, true)\n * ```\n */\nexport function table_resetColumnOrder<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnOrder(\n table,\n defaultState ? [] : cloneState(table.initialState.columnOrder ?? []),\n )\n}\n\n/**\n * Creates the ordering function used to arrange leaf columns.\n *\n * The returned function applies `state.columnOrder`, preserves unspecified\n * columns in their original order, then delegates to grouping rules.\n *\n * @example\n * ```ts\n * const orderColumnsForTable = table_getOrderColumnsFn(table)\n * ```\n */\nexport function table_getOrderColumnsFn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const columnOrder = table.atoms.columnOrder?.get()\n\n return (columns: Array<Column_Internal<TFeatures, TData, unknown>>) => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns: Array<Column_Internal<TFeatures, TData, unknown>> = []\n\n // If there is no order, return the normal columns\n if (!columnOrder?.length) {\n orderedColumns = columns\n } else {\n // Index columns by id for O(1) lookup\n const remaining = new Map<\n string,\n Column_Internal<TFeatures, TData, unknown>\n >()\n for (let i = 0; i < columns.length; i++) {\n const column = columns[i]!\n remaining.set(column.id, column)\n }\n\n // Place columns in the requested order, removing each as it's used\n // (handles duplicates and unknown ids in columnOrder)\n for (let i = 0; i < columnOrder.length; i++) {\n const id = columnOrder[i]!\n const column = remaining.get(id)\n if (column) {\n orderedColumns.push(column)\n remaining.delete(id)\n }\n }\n\n // Append leftover columns in their original order\n for (let i = 0; i < columns.length; i++) {\n const column = columns[i]!\n if (remaining.has(column.id)) orderedColumns.push(column)\n }\n }\n\n return orderColumns(table, orderedColumns)\n }\n}\n\n/**\n * Applies grouped-column placement rules to an already ordered leaf-column list.\n *\n * `groupedColumnMode: 'remove'` drops grouped columns from the list.\n * `groupedColumnMode: 'reorder'` moves grouped columns to the front in grouping\n * state order.\n *\n * @example\n * ```ts\n * const orderedColumns = orderColumns(table, leafColumns)\n * ```\n */\nexport function orderColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n leafColumns: Array<Column_Internal<TFeatures, TData, unknown>>,\n) {\n const grouping = table.atoms.grouping?.get() ?? ([] as GroupingState)\n const { groupedColumnMode } = table.options\n\n if (!grouping.length || !groupedColumnMode) {\n return leafColumns\n }\n\n const nonGroupingColumns = leafColumns.filter(\n (col) => !grouping.includes(col.id),\n )\n\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns\n }\n\n const leafColumnsById = new Map<\n string,\n Column_Internal<TFeatures, TData, unknown>\n >()\n for (let i = 0; i < leafColumns.length; i++) {\n const col = leafColumns[i]!\n leafColumnsById.set(col.id, col)\n }\n\n const groupingColumns: Array<Column_Internal<TFeatures, TData, unknown>> = []\n for (let i = 0; i < grouping.length; i++) {\n const col = leafColumnsById.get(grouping[i]!)\n if (col) groupingColumns.push(col)\n }\n\n return [...groupingColumns, ...nonGroupingColumns]\n}\n"],"mappings":"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"}
@@ -4,7 +4,12 @@ const require_columnPinningFeature_utils = require('./columnPinningFeature.utils
4
4
 
5
5
  //#region src/features/column-pinning/columnPinningFeature.ts
6
6
  /**
7
- * Feature that adds column pinning state and APIs for left, center, and right regions.
7
+ * Feature that adds column pinning state and APIs for logical start, center,
8
+ * and end regions.
9
+ *
10
+ * In LTR languages/layouts, start usually corresponds to left and end to
11
+ * right. In RTL languages/layouts, start usually corresponds to right and end
12
+ * to left.
8
13
  */
9
14
  const columnPinningFeature = {
10
15
  getInitialState: (initialState) => {
@@ -37,19 +42,19 @@ const columnPinningFeature = {
37
42
  row.table.atoms.columnVisibility?.get()
38
43
  ]
39
44
  },
40
- row_getLeftVisibleCells: {
41
- fn: (row) => require_columnPinningFeature_utils.row_getLeftVisibleCells(row),
45
+ row_getStartVisibleCells: {
46
+ fn: (row) => require_columnPinningFeature_utils.row_getStartVisibleCells(row),
42
47
  memoDeps: (row) => [
43
48
  row.getAllCells(),
44
- row.table.atoms.columnPinning?.get()?.left,
49
+ row.table.atoms.columnPinning?.get()?.start,
45
50
  row.table.atoms.columnVisibility?.get()
46
51
  ]
47
52
  },
48
- row_getRightVisibleCells: {
49
- fn: (row) => require_columnPinningFeature_utils.row_getRightVisibleCells(row),
53
+ row_getEndVisibleCells: {
54
+ fn: (row) => require_columnPinningFeature_utils.row_getEndVisibleCells(row),
50
55
  memoDeps: (row) => [
51
56
  row.getAllCells(),
52
- row.table.atoms.columnPinning?.get()?.right,
57
+ row.table.atoms.columnPinning?.get()?.end,
53
58
  row.table.atoms.columnVisibility?.get()
54
59
  ]
55
60
  }
@@ -60,12 +65,12 @@ const columnPinningFeature = {
60
65
  table_setColumnPinning: { fn: (updater) => require_columnPinningFeature_utils.table_setColumnPinning(table, updater) },
61
66
  table_resetColumnPinning: { fn: (defaultState) => require_columnPinningFeature_utils.table_resetColumnPinning(table, defaultState) },
62
67
  table_getIsSomeColumnsPinned: { fn: (position) => require_columnPinningFeature_utils.table_getIsSomeColumnsPinned(table, position) },
63
- table_getLeftHeaderGroups: {
64
- fn: () => require_columnPinningFeature_utils.table_getLeftHeaderGroups(table),
68
+ table_getStartHeaderGroups: {
69
+ fn: () => require_columnPinningFeature_utils.table_getStartHeaderGroups(table),
65
70
  memoDeps: () => [
66
71
  table.getAllColumns(),
67
72
  require_utils.callMemoOrStaticFn(table, "getVisibleLeafColumns", require_columnVisibilityFeature_utils.table_getVisibleLeafColumns),
68
- table.atoms.columnPinning?.get()?.left,
73
+ table.atoms.columnPinning?.get()?.start,
69
74
  table.atoms.columnOrder?.get()
70
75
  ]
71
76
  },
@@ -78,53 +83,53 @@ const columnPinningFeature = {
78
83
  table.atoms.columnOrder?.get()
79
84
  ]
80
85
  },
81
- table_getRightHeaderGroups: {
82
- fn: () => require_columnPinningFeature_utils.table_getRightHeaderGroups(table),
86
+ table_getEndHeaderGroups: {
87
+ fn: () => require_columnPinningFeature_utils.table_getEndHeaderGroups(table),
83
88
  memoDeps: () => [
84
89
  table.getAllColumns(),
85
90
  require_utils.callMemoOrStaticFn(table, "getVisibleLeafColumns", require_columnVisibilityFeature_utils.table_getVisibleLeafColumns),
86
- table.atoms.columnPinning?.get()?.right,
91
+ table.atoms.columnPinning?.get()?.end,
87
92
  table.atoms.columnOrder?.get()
88
93
  ]
89
94
  },
90
- table_getLeftFooterGroups: {
91
- fn: () => require_columnPinningFeature_utils.table_getLeftFooterGroups(table),
92
- memoDeps: () => [require_utils.callMemoOrStaticFn(table, "getLeftHeaderGroups", require_columnPinningFeature_utils.table_getLeftHeaderGroups)]
95
+ table_getStartFooterGroups: {
96
+ fn: () => require_columnPinningFeature_utils.table_getStartFooterGroups(table),
97
+ memoDeps: () => [require_utils.callMemoOrStaticFn(table, "getStartHeaderGroups", require_columnPinningFeature_utils.table_getStartHeaderGroups)]
93
98
  },
94
99
  table_getCenterFooterGroups: {
95
100
  fn: () => require_columnPinningFeature_utils.table_getCenterFooterGroups(table),
96
101
  memoDeps: () => [require_utils.callMemoOrStaticFn(table, "getCenterHeaderGroups", require_columnPinningFeature_utils.table_getCenterHeaderGroups)]
97
102
  },
98
- table_getRightFooterGroups: {
99
- fn: () => require_columnPinningFeature_utils.table_getRightFooterGroups(table),
100
- memoDeps: () => [require_utils.callMemoOrStaticFn(table, "getRightHeaderGroups", require_columnPinningFeature_utils.table_getRightHeaderGroups)]
103
+ table_getEndFooterGroups: {
104
+ fn: () => require_columnPinningFeature_utils.table_getEndFooterGroups(table),
105
+ memoDeps: () => [require_utils.callMemoOrStaticFn(table, "getEndHeaderGroups", require_columnPinningFeature_utils.table_getEndHeaderGroups)]
101
106
  },
102
- table_getLeftFlatHeaders: {
103
- fn: () => require_columnPinningFeature_utils.table_getLeftFlatHeaders(table),
104
- memoDeps: () => [require_utils.callMemoOrStaticFn(table, "getLeftHeaderGroups", require_columnPinningFeature_utils.table_getLeftHeaderGroups)]
107
+ table_getStartFlatHeaders: {
108
+ fn: () => require_columnPinningFeature_utils.table_getStartFlatHeaders(table),
109
+ memoDeps: () => [require_utils.callMemoOrStaticFn(table, "getStartHeaderGroups", require_columnPinningFeature_utils.table_getStartHeaderGroups)]
105
110
  },
106
- table_getRightFlatHeaders: {
107
- fn: () => require_columnPinningFeature_utils.table_getRightFlatHeaders(table),
108
- memoDeps: () => [require_utils.callMemoOrStaticFn(table, "getRightHeaderGroups", require_columnPinningFeature_utils.table_getRightHeaderGroups)]
111
+ table_getEndFlatHeaders: {
112
+ fn: () => require_columnPinningFeature_utils.table_getEndFlatHeaders(table),
113
+ memoDeps: () => [require_utils.callMemoOrStaticFn(table, "getEndHeaderGroups", require_columnPinningFeature_utils.table_getEndHeaderGroups)]
109
114
  },
110
115
  table_getCenterFlatHeaders: {
111
116
  fn: () => require_columnPinningFeature_utils.table_getCenterFlatHeaders(table),
112
117
  memoDeps: () => [require_utils.callMemoOrStaticFn(table, "getCenterHeaderGroups", require_columnPinningFeature_utils.table_getCenterHeaderGroups)]
113
118
  },
114
- table_getLeftLeafHeaders: {
115
- fn: () => require_columnPinningFeature_utils.table_getLeftLeafHeaders(table),
116
- memoDeps: () => [require_utils.callMemoOrStaticFn(table, "getLeftHeaderGroups", require_columnPinningFeature_utils.table_getLeftHeaderGroups)]
119
+ table_getStartLeafHeaders: {
120
+ fn: () => require_columnPinningFeature_utils.table_getStartLeafHeaders(table),
121
+ memoDeps: () => [require_utils.callMemoOrStaticFn(table, "getStartHeaderGroups", require_columnPinningFeature_utils.table_getStartHeaderGroups)]
117
122
  },
118
- table_getRightLeafHeaders: {
119
- fn: () => require_columnPinningFeature_utils.table_getRightLeafHeaders(table),
120
- memoDeps: () => [require_utils.callMemoOrStaticFn(table, "getRightHeaderGroups", require_columnPinningFeature_utils.table_getRightHeaderGroups)]
123
+ table_getEndLeafHeaders: {
124
+ fn: () => require_columnPinningFeature_utils.table_getEndLeafHeaders(table),
125
+ memoDeps: () => [require_utils.callMemoOrStaticFn(table, "getEndHeaderGroups", require_columnPinningFeature_utils.table_getEndHeaderGroups)]
121
126
  },
122
127
  table_getCenterLeafHeaders: {
123
128
  fn: () => require_columnPinningFeature_utils.table_getCenterLeafHeaders(table),
124
129
  memoDeps: () => [require_utils.callMemoOrStaticFn(table, "getCenterHeaderGroups", require_columnPinningFeature_utils.table_getCenterHeaderGroups)]
125
130
  },
126
- table_getLeftLeafColumns: {
127
- fn: () => require_columnPinningFeature_utils.table_getLeftLeafColumns(table),
131
+ table_getStartLeafColumns: {
132
+ fn: () => require_columnPinningFeature_utils.table_getStartLeafColumns(table),
128
133
  memoDeps: () => [
129
134
  table.options.columns,
130
135
  table.atoms.columnPinning?.get(),
@@ -133,8 +138,8 @@ const columnPinningFeature = {
133
138
  table.options.groupedColumnMode
134
139
  ]
135
140
  },
136
- table_getRightLeafColumns: {
137
- fn: () => require_columnPinningFeature_utils.table_getRightLeafColumns(table),
141
+ table_getEndLeafColumns: {
142
+ fn: () => require_columnPinningFeature_utils.table_getEndLeafColumns(table),
138
143
  memoDeps: () => [
139
144
  table.options.columns,
140
145
  table.atoms.columnPinning?.get(),
@@ -154,8 +159,8 @@ const columnPinningFeature = {
154
159
  ]
155
160
  },
156
161
  table_getPinnedLeafColumns: { fn: (position) => require_columnPinningFeature_utils.table_getPinnedLeafColumns(table, position) },
157
- table_getLeftVisibleLeafColumns: {
158
- fn: () => require_columnPinningFeature_utils.table_getLeftVisibleLeafColumns(table),
162
+ table_getStartVisibleLeafColumns: {
163
+ fn: () => require_columnPinningFeature_utils.table_getStartVisibleLeafColumns(table),
159
164
  memoDeps: () => [
160
165
  table.options.columns,
161
166
  table.atoms.columnPinning?.get(),
@@ -176,8 +181,8 @@ const columnPinningFeature = {
176
181
  table.options.groupedColumnMode
177
182
  ]
178
183
  },
179
- table_getRightVisibleLeafColumns: {
180
- fn: () => require_columnPinningFeature_utils.table_getRightVisibleLeafColumns(table),
184
+ table_getEndVisibleLeafColumns: {
185
+ fn: () => require_columnPinningFeature_utils.table_getEndVisibleLeafColumns(table),
181
186
  memoDeps: () => [
182
187
  table.options.columns,
183
188
  table.atoms.columnPinning?.get(),
@@ -1 +1 @@
1
- {"version":3,"file":"columnPinningFeature.cjs","names":["getDefaultColumnPinningState","makeStateUpdater","column_pin","column_getCanPin","column_getPinnedIndex","column_getIsPinned","row_getCenterVisibleCells","row_getLeftVisibleCells","row_getRightVisibleCells","table_setColumnPinning","table_resetColumnPinning","table_getIsSomeColumnsPinned","table_getLeftHeaderGroups","callMemoOrStaticFn","table_getVisibleLeafColumns","table_getCenterHeaderGroups","table_getRightHeaderGroups","table_getLeftFooterGroups","table_getCenterFooterGroups","table_getRightFooterGroups","table_getLeftFlatHeaders","table_getRightFlatHeaders","table_getCenterFlatHeaders","table_getLeftLeafHeaders","table_getRightLeafHeaders","table_getCenterLeafHeaders","table_getLeftLeafColumns","table_getRightLeafColumns","table_getCenterLeafColumns","table_getPinnedLeafColumns","table_getLeftVisibleLeafColumns","table_getCenterVisibleLeafColumns","table_getRightVisibleLeafColumns","table_getPinnedVisibleLeafColumns"],"sources":["../../../src/features/column-pinning/columnPinningFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n callMemoOrStaticFn,\n makeStateUpdater,\n} from '../../utils'\nimport { table_getVisibleLeafColumns } from '../column-visibility/columnVisibilityFeature.utils'\nimport {\n column_getCanPin,\n column_getIsPinned,\n column_getPinnedIndex,\n column_pin,\n getDefaultColumnPinningState,\n row_getCenterVisibleCells,\n row_getLeftVisibleCells,\n row_getRightVisibleCells,\n table_getCenterFlatHeaders,\n table_getCenterFooterGroups,\n table_getCenterHeaderGroups,\n table_getCenterLeafColumns,\n table_getCenterLeafHeaders,\n table_getCenterVisibleLeafColumns,\n table_getIsSomeColumnsPinned,\n table_getLeftFlatHeaders,\n table_getLeftFooterGroups,\n table_getLeftHeaderGroups,\n table_getLeftLeafColumns,\n table_getLeftLeafHeaders,\n table_getLeftVisibleLeafColumns,\n table_getPinnedLeafColumns,\n table_getPinnedVisibleLeafColumns,\n table_getRightFlatHeaders,\n table_getRightFooterGroups,\n table_getRightHeaderGroups,\n table_getRightLeafColumns,\n table_getRightLeafHeaders,\n table_getRightVisibleLeafColumns,\n table_resetColumnPinning,\n table_setColumnPinning,\n} from './columnPinningFeature.utils'\nimport type { TableFeature } from '../../types/TableFeatures'\n\n/**\n * Feature that adds column pinning state and APIs for left, center, and right regions.\n */\nexport const columnPinningFeature: TableFeature = {\n getInitialState: (initialState) => {\n return {\n columnPinning: {\n ...getDefaultColumnPinningState(),\n ...initialState.columnPinning,\n },\n ...initialState,\n }\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', table),\n }\n },\n\n assignColumnPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnPinningFeature', prototype, table, {\n column_pin: {\n fn: (column, position) => column_pin(column, position),\n },\n column_getCanPin: {\n fn: (column) => column_getCanPin(column),\n },\n column_getPinnedIndex: {\n fn: (column) => column_getPinnedIndex(column),\n },\n column_getIsPinned: {\n fn: (column) => column_getIsPinned(column),\n },\n })\n },\n\n assignRowPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnPinningFeature', prototype, table, {\n row_getCenterVisibleCells: {\n fn: (row) => row_getCenterVisibleCells(row),\n memoDeps: (row) => [\n row.getAllCells(),\n row.table.atoms.columnPinning?.get(),\n row.table.atoms.columnVisibility?.get(),\n ],\n },\n row_getLeftVisibleCells: {\n fn: (row) => row_getLeftVisibleCells(row),\n memoDeps: (row) => [\n row.getAllCells(),\n row.table.atoms.columnPinning?.get()?.left,\n row.table.atoms.columnVisibility?.get(),\n ],\n },\n row_getRightVisibleCells: {\n fn: (row) => row_getRightVisibleCells(row),\n memoDeps: (row) => [\n row.getAllCells(),\n row.table.atoms.columnPinning?.get()?.right,\n row.table.atoms.columnVisibility?.get(),\n ],\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('columnPinningFeature', table, {\n table_setColumnPinning: {\n fn: (updater) => table_setColumnPinning(table, updater),\n },\n table_resetColumnPinning: {\n fn: (defaultState) => table_resetColumnPinning(table, defaultState),\n },\n table_getIsSomeColumnsPinned: {\n fn: (position) => table_getIsSomeColumnsPinned(table, position),\n },\n // header groups\n table_getLeftHeaderGroups: {\n fn: () => table_getLeftHeaderGroups(table),\n memoDeps: () => [\n table.getAllColumns(),\n callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n ),\n table.atoms.columnPinning?.get()?.left,\n table.atoms.columnOrder?.get(),\n ],\n },\n table_getCenterHeaderGroups: {\n fn: () => table_getCenterHeaderGroups(table),\n memoDeps: () => [\n table.getAllColumns(),\n callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n ),\n table.atoms.columnPinning?.get(),\n table.atoms.columnOrder?.get(),\n ],\n },\n table_getRightHeaderGroups: {\n fn: () => table_getRightHeaderGroups(table),\n memoDeps: () => [\n table.getAllColumns(),\n callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n ),\n table.atoms.columnPinning?.get()?.right,\n table.atoms.columnOrder?.get(),\n ],\n },\n // footer groups\n table_getLeftFooterGroups: {\n fn: () => table_getLeftFooterGroups(table),\n memoDeps: () => [\n callMemoOrStaticFn(\n table,\n 'getLeftHeaderGroups',\n table_getLeftHeaderGroups,\n ),\n ],\n },\n table_getCenterFooterGroups: {\n fn: () => table_getCenterFooterGroups(table),\n memoDeps: () => [\n callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n ),\n ],\n },\n table_getRightFooterGroups: {\n fn: () => table_getRightFooterGroups(table),\n memoDeps: () => [\n callMemoOrStaticFn(\n table,\n 'getRightHeaderGroups',\n table_getRightHeaderGroups,\n ),\n ],\n },\n // flat headers\n table_getLeftFlatHeaders: {\n fn: () => table_getLeftFlatHeaders(table),\n memoDeps: () => [\n callMemoOrStaticFn(\n table,\n 'getLeftHeaderGroups',\n table_getLeftHeaderGroups,\n ),\n ],\n },\n table_getRightFlatHeaders: {\n fn: () => table_getRightFlatHeaders(table),\n memoDeps: () => [\n callMemoOrStaticFn(\n table,\n 'getRightHeaderGroups',\n table_getRightHeaderGroups,\n ),\n ],\n },\n table_getCenterFlatHeaders: {\n fn: () => table_getCenterFlatHeaders(table),\n memoDeps: () => [\n callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n ),\n ],\n },\n // leaf headers\n table_getLeftLeafHeaders: {\n fn: () => table_getLeftLeafHeaders(table),\n memoDeps: () => [\n callMemoOrStaticFn(\n table,\n 'getLeftHeaderGroups',\n table_getLeftHeaderGroups,\n ),\n ],\n },\n table_getRightLeafHeaders: {\n fn: () => table_getRightLeafHeaders(table),\n memoDeps: () => [\n callMemoOrStaticFn(\n table,\n 'getRightHeaderGroups',\n table_getRightHeaderGroups,\n ),\n ],\n },\n table_getCenterLeafHeaders: {\n fn: () => table_getCenterLeafHeaders(table),\n memoDeps: () => [\n callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n ),\n ],\n },\n // leaf columns\n table_getLeftLeafColumns: {\n fn: () => table_getLeftLeafColumns(table),\n memoDeps: () => [\n table.options.columns,\n table.atoms.columnPinning?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.grouping?.get(),\n table.options.groupedColumnMode,\n ],\n },\n table_getRightLeafColumns: {\n fn: () => table_getRightLeafColumns(table),\n memoDeps: () => [\n table.options.columns,\n table.atoms.columnPinning?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.grouping?.get(),\n table.options.groupedColumnMode,\n ],\n },\n table_getCenterLeafColumns: {\n fn: () => table_getCenterLeafColumns(table),\n memoDeps: () => [\n table.options.columns,\n table.atoms.columnPinning?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.grouping?.get(),\n table.options.groupedColumnMode,\n ],\n },\n table_getPinnedLeafColumns: {\n fn: (position) => table_getPinnedLeafColumns(table, position),\n // must not memo here as it's just a shortcut function\n },\n // visible leaf columns\n table_getLeftVisibleLeafColumns: {\n fn: () => table_getLeftVisibleLeafColumns(table),\n memoDeps: () => [\n table.options.columns,\n table.atoms.columnPinning?.get(),\n table.atoms.columnVisibility?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.grouping?.get(),\n table.options.groupedColumnMode,\n ],\n },\n table_getCenterVisibleLeafColumns: {\n fn: () => table_getCenterVisibleLeafColumns(table),\n memoDeps: () => [\n table.options.columns,\n table.atoms.columnPinning?.get(),\n table.atoms.columnVisibility?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.grouping?.get(),\n table.options.groupedColumnMode,\n ],\n },\n table_getRightVisibleLeafColumns: {\n fn: () => table_getRightVisibleLeafColumns(table),\n memoDeps: () => [\n table.options.columns,\n table.atoms.columnPinning?.get(),\n table.atoms.columnVisibility?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.grouping?.get(),\n table.options.groupedColumnMode,\n ],\n },\n table_getPinnedVisibleLeafColumns: {\n fn: (position) => table_getPinnedVisibleLeafColumns(table, position),\n // must not memo here as it's just a shortcut function\n },\n })\n },\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"columnPinningFeature.cjs","names":["getDefaultColumnPinningState","makeStateUpdater","column_pin","column_getCanPin","column_getPinnedIndex","column_getIsPinned","row_getCenterVisibleCells","row_getStartVisibleCells","row_getEndVisibleCells","table_setColumnPinning","table_resetColumnPinning","table_getIsSomeColumnsPinned","table_getStartHeaderGroups","callMemoOrStaticFn","table_getVisibleLeafColumns","table_getCenterHeaderGroups","table_getEndHeaderGroups","table_getStartFooterGroups","table_getCenterFooterGroups","table_getEndFooterGroups","table_getStartFlatHeaders","table_getEndFlatHeaders","table_getCenterFlatHeaders","table_getStartLeafHeaders","table_getEndLeafHeaders","table_getCenterLeafHeaders","table_getStartLeafColumns","table_getEndLeafColumns","table_getCenterLeafColumns","table_getPinnedLeafColumns","table_getStartVisibleLeafColumns","table_getCenterVisibleLeafColumns","table_getEndVisibleLeafColumns","table_getPinnedVisibleLeafColumns"],"sources":["../../../src/features/column-pinning/columnPinningFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n callMemoOrStaticFn,\n makeStateUpdater,\n} from '../../utils'\nimport { table_getVisibleLeafColumns } from '../column-visibility/columnVisibilityFeature.utils'\nimport {\n column_getCanPin,\n column_getIsPinned,\n column_getPinnedIndex,\n column_pin,\n getDefaultColumnPinningState,\n row_getCenterVisibleCells,\n row_getEndVisibleCells,\n row_getStartVisibleCells,\n table_getCenterFlatHeaders,\n table_getCenterFooterGroups,\n table_getCenterHeaderGroups,\n table_getCenterLeafColumns,\n table_getCenterLeafHeaders,\n table_getCenterVisibleLeafColumns,\n table_getEndFlatHeaders,\n table_getEndFooterGroups,\n table_getEndHeaderGroups,\n table_getEndLeafColumns,\n table_getEndLeafHeaders,\n table_getEndVisibleLeafColumns,\n table_getIsSomeColumnsPinned,\n table_getPinnedLeafColumns,\n table_getPinnedVisibleLeafColumns,\n table_getStartFlatHeaders,\n table_getStartFooterGroups,\n table_getStartHeaderGroups,\n table_getStartLeafColumns,\n table_getStartLeafHeaders,\n table_getStartVisibleLeafColumns,\n table_resetColumnPinning,\n table_setColumnPinning,\n} from './columnPinningFeature.utils'\nimport type { TableFeature } from '../../types/TableFeatures'\n\n/**\n * Feature that adds column pinning state and APIs for logical start, center,\n * and end regions.\n *\n * In LTR languages/layouts, start usually corresponds to left and end to\n * right. In RTL languages/layouts, start usually corresponds to right and end\n * to left.\n */\nexport const columnPinningFeature: TableFeature = {\n getInitialState: (initialState) => {\n return {\n columnPinning: {\n ...getDefaultColumnPinningState(),\n ...initialState.columnPinning,\n },\n ...initialState,\n }\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', table),\n }\n },\n\n assignColumnPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnPinningFeature', prototype, table, {\n column_pin: {\n fn: (column, position) => column_pin(column, position),\n },\n column_getCanPin: {\n fn: (column) => column_getCanPin(column),\n },\n column_getPinnedIndex: {\n fn: (column) => column_getPinnedIndex(column),\n },\n column_getIsPinned: {\n fn: (column) => column_getIsPinned(column),\n },\n })\n },\n\n assignRowPrototype: (prototype, table) => {\n assignPrototypeAPIs('columnPinningFeature', prototype, table, {\n row_getCenterVisibleCells: {\n fn: (row) => row_getCenterVisibleCells(row),\n memoDeps: (row) => [\n row.getAllCells(),\n row.table.atoms.columnPinning?.get(),\n row.table.atoms.columnVisibility?.get(),\n ],\n },\n row_getStartVisibleCells: {\n fn: (row) => row_getStartVisibleCells(row),\n memoDeps: (row) => [\n row.getAllCells(),\n row.table.atoms.columnPinning?.get()?.start,\n row.table.atoms.columnVisibility?.get(),\n ],\n },\n row_getEndVisibleCells: {\n fn: (row) => row_getEndVisibleCells(row),\n memoDeps: (row) => [\n row.getAllCells(),\n row.table.atoms.columnPinning?.get()?.end,\n row.table.atoms.columnVisibility?.get(),\n ],\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('columnPinningFeature', table, {\n table_setColumnPinning: {\n fn: (updater) => table_setColumnPinning(table, updater),\n },\n table_resetColumnPinning: {\n fn: (defaultState) => table_resetColumnPinning(table, defaultState),\n },\n table_getIsSomeColumnsPinned: {\n fn: (position) => table_getIsSomeColumnsPinned(table, position),\n },\n // header groups\n table_getStartHeaderGroups: {\n fn: () => table_getStartHeaderGroups(table),\n memoDeps: () => [\n table.getAllColumns(),\n callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n ),\n table.atoms.columnPinning?.get()?.start,\n table.atoms.columnOrder?.get(),\n ],\n },\n table_getCenterHeaderGroups: {\n fn: () => table_getCenterHeaderGroups(table),\n memoDeps: () => [\n table.getAllColumns(),\n callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n ),\n table.atoms.columnPinning?.get(),\n table.atoms.columnOrder?.get(),\n ],\n },\n table_getEndHeaderGroups: {\n fn: () => table_getEndHeaderGroups(table),\n memoDeps: () => [\n table.getAllColumns(),\n callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n ),\n table.atoms.columnPinning?.get()?.end,\n table.atoms.columnOrder?.get(),\n ],\n },\n // footer groups\n table_getStartFooterGroups: {\n fn: () => table_getStartFooterGroups(table),\n memoDeps: () => [\n callMemoOrStaticFn(\n table,\n 'getStartHeaderGroups',\n table_getStartHeaderGroups,\n ),\n ],\n },\n table_getCenterFooterGroups: {\n fn: () => table_getCenterFooterGroups(table),\n memoDeps: () => [\n callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n ),\n ],\n },\n table_getEndFooterGroups: {\n fn: () => table_getEndFooterGroups(table),\n memoDeps: () => [\n callMemoOrStaticFn(\n table,\n 'getEndHeaderGroups',\n table_getEndHeaderGroups,\n ),\n ],\n },\n // flat headers\n table_getStartFlatHeaders: {\n fn: () => table_getStartFlatHeaders(table),\n memoDeps: () => [\n callMemoOrStaticFn(\n table,\n 'getStartHeaderGroups',\n table_getStartHeaderGroups,\n ),\n ],\n },\n table_getEndFlatHeaders: {\n fn: () => table_getEndFlatHeaders(table),\n memoDeps: () => [\n callMemoOrStaticFn(\n table,\n 'getEndHeaderGroups',\n table_getEndHeaderGroups,\n ),\n ],\n },\n table_getCenterFlatHeaders: {\n fn: () => table_getCenterFlatHeaders(table),\n memoDeps: () => [\n callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n ),\n ],\n },\n // leaf headers\n table_getStartLeafHeaders: {\n fn: () => table_getStartLeafHeaders(table),\n memoDeps: () => [\n callMemoOrStaticFn(\n table,\n 'getStartHeaderGroups',\n table_getStartHeaderGroups,\n ),\n ],\n },\n table_getEndLeafHeaders: {\n fn: () => table_getEndLeafHeaders(table),\n memoDeps: () => [\n callMemoOrStaticFn(\n table,\n 'getEndHeaderGroups',\n table_getEndHeaderGroups,\n ),\n ],\n },\n table_getCenterLeafHeaders: {\n fn: () => table_getCenterLeafHeaders(table),\n memoDeps: () => [\n callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n ),\n ],\n },\n // leaf columns\n table_getStartLeafColumns: {\n fn: () => table_getStartLeafColumns(table),\n memoDeps: () => [\n table.options.columns,\n table.atoms.columnPinning?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.grouping?.get(),\n table.options.groupedColumnMode,\n ],\n },\n table_getEndLeafColumns: {\n fn: () => table_getEndLeafColumns(table),\n memoDeps: () => [\n table.options.columns,\n table.atoms.columnPinning?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.grouping?.get(),\n table.options.groupedColumnMode,\n ],\n },\n table_getCenterLeafColumns: {\n fn: () => table_getCenterLeafColumns(table),\n memoDeps: () => [\n table.options.columns,\n table.atoms.columnPinning?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.grouping?.get(),\n table.options.groupedColumnMode,\n ],\n },\n table_getPinnedLeafColumns: {\n fn: (position) => table_getPinnedLeafColumns(table, position),\n // must not memo here as it's just a shortcut function\n },\n // visible leaf columns\n table_getStartVisibleLeafColumns: {\n fn: () => table_getStartVisibleLeafColumns(table),\n memoDeps: () => [\n table.options.columns,\n table.atoms.columnPinning?.get(),\n table.atoms.columnVisibility?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.grouping?.get(),\n table.options.groupedColumnMode,\n ],\n },\n table_getCenterVisibleLeafColumns: {\n fn: () => table_getCenterVisibleLeafColumns(table),\n memoDeps: () => [\n table.options.columns,\n table.atoms.columnPinning?.get(),\n table.atoms.columnVisibility?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.grouping?.get(),\n table.options.groupedColumnMode,\n ],\n },\n table_getEndVisibleLeafColumns: {\n fn: () => table_getEndVisibleLeafColumns(table),\n memoDeps: () => [\n table.options.columns,\n table.atoms.columnPinning?.get(),\n table.atoms.columnVisibility?.get(),\n table.atoms.columnOrder?.get(),\n table.atoms.grouping?.get(),\n table.options.groupedColumnMode,\n ],\n },\n table_getPinnedVisibleLeafColumns: {\n fn: (position) => table_getPinnedVisibleLeafColumns(table, position),\n // must not memo here as it's just a shortcut function\n },\n })\n },\n}\n"],"mappings":"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"}
@@ -2,7 +2,12 @@ import { TableFeature } from "../../types/TableFeatures.cjs";
2
2
 
3
3
  //#region src/features/column-pinning/columnPinningFeature.d.ts
4
4
  /**
5
- * Feature that adds column pinning state and APIs for left, center, and right regions.
5
+ * Feature that adds column pinning state and APIs for logical start, center,
6
+ * and end regions.
7
+ *
8
+ * In LTR languages/layouts, start usually corresponds to left and end to
9
+ * right. In RTL languages/layouts, start usually corresponds to right and end
10
+ * to left.
6
11
  */
7
12
  declare const columnPinningFeature: TableFeature;
8
13
  //#endregion
@@ -2,7 +2,12 @@ import { TableFeature } from "../../types/TableFeatures.js";
2
2
 
3
3
  //#region src/features/column-pinning/columnPinningFeature.d.ts
4
4
  /**
5
- * Feature that adds column pinning state and APIs for left, center, and right regions.
5
+ * Feature that adds column pinning state and APIs for logical start, center,
6
+ * and end regions.
7
+ *
8
+ * In LTR languages/layouts, start usually corresponds to left and end to
9
+ * right. In RTL languages/layouts, start usually corresponds to right and end
10
+ * to left.
6
11
  */
7
12
  declare const columnPinningFeature: TableFeature;
8
13
  //#endregion