@tanstack/table-core 9.0.0-beta.26 → 9.0.0-beta.28
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/dist/features/column-faceting/columnFacetingFeature.types.d.cts +6 -3
- package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +6 -3
- package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +41 -12
- package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -1
- package/dist/features/column-faceting/columnFacetingFeature.utils.js +42 -12
- package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -1
- package/dist/features/column-faceting/createFacetedRowModel.cjs +1 -0
- package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
- package/dist/features/column-faceting/createFacetedRowModel.js +1 -0
- package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
- package/dist/features/column-faceting/createFacetedUniqueValues.cjs +2 -2
- package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
- package/dist/features/column-faceting/createFacetedUniqueValues.js +2 -2
- package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.cjs +2 -1
- package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.js +2 -1
- package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.cjs +24 -12
- package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.js +24 -12
- package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
- package/dist/features/column-resizing/columnResizingFeature.utils.cjs +62 -24
- package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +1 -1
- package/dist/features/column-resizing/columnResizingFeature.utils.js +62 -24
- package/dist/features/column-resizing/columnResizingFeature.utils.js.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.cjs +35 -45
- package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.js +36 -46
- package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.types.d.cts +38 -1
- package/dist/features/column-sizing/columnSizingFeature.types.d.ts +38 -1
- package/dist/features/column-sizing/columnSizingFeature.utils.cjs +49 -10
- package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +18 -4
- package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +18 -4
- package/dist/features/column-sizing/columnSizingFeature.utils.js +49 -11
- package/dist/features/column-sizing/columnSizingFeature.utils.js.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.cjs +8 -4
- package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.js +8 -4
- package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +3 -2
- package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.utils.js +3 -2
- package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.utils.cjs +1 -1
- package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.utils.js +1 -1
- package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/static-functions.cjs +1 -0
- package/dist/static-functions.d.cts +2 -2
- package/dist/static-functions.d.ts +2 -2
- package/dist/static-functions.js +2 -2
- package/package.json +1 -1
- package/src/features/column-faceting/columnFacetingFeature.types.ts +6 -3
- package/src/features/column-faceting/columnFacetingFeature.utils.ts +53 -18
- package/src/features/column-faceting/createFacetedRowModel.ts +4 -0
- package/src/features/column-faceting/createFacetedUniqueValues.ts +5 -8
- package/src/features/column-ordering/columnOrderingFeature.ts +1 -0
- package/src/features/column-pinning/columnPinningFeature.ts +12 -0
- package/src/features/column-resizing/columnResizingFeature.utils.ts +96 -44
- package/src/features/column-sizing/columnSizingFeature.ts +18 -18
- package/src/features/column-sizing/columnSizingFeature.types.ts +39 -0
- package/src/features/column-sizing/columnSizingFeature.utils.ts +94 -39
- package/src/features/column-visibility/columnVisibilityFeature.ts +4 -0
- package/src/features/column-visibility/columnVisibilityFeature.utils.ts +4 -2
- package/src/features/row-selection/rowSelectionFeature.utils.ts +5 -1
|
@@ -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 ],\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 ],\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 ],\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 ],\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 ],\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 ],\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_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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"}
|
|
@@ -144,33 +144,39 @@ const columnPinningFeature = {
|
|
|
144
144
|
table_getLeftLeafColumns: {
|
|
145
145
|
fn: () => table_getLeftLeafColumns(table),
|
|
146
146
|
memoDeps: () => {
|
|
147
|
-
var _table$atoms$columnPi4, _table$atoms$columnOr4;
|
|
147
|
+
var _table$atoms$columnPi4, _table$atoms$columnOr4, _table$atoms$grouping;
|
|
148
148
|
return [
|
|
149
149
|
table.options.columns,
|
|
150
150
|
(_table$atoms$columnPi4 = table.atoms.columnPinning) === null || _table$atoms$columnPi4 === void 0 ? void 0 : _table$atoms$columnPi4.get(),
|
|
151
|
-
(_table$atoms$columnOr4 = table.atoms.columnOrder) === null || _table$atoms$columnOr4 === void 0 ? void 0 : _table$atoms$columnOr4.get()
|
|
151
|
+
(_table$atoms$columnOr4 = table.atoms.columnOrder) === null || _table$atoms$columnOr4 === void 0 ? void 0 : _table$atoms$columnOr4.get(),
|
|
152
|
+
(_table$atoms$grouping = table.atoms.grouping) === null || _table$atoms$grouping === void 0 ? void 0 : _table$atoms$grouping.get(),
|
|
153
|
+
table.options.groupedColumnMode
|
|
152
154
|
];
|
|
153
155
|
}
|
|
154
156
|
},
|
|
155
157
|
table_getRightLeafColumns: {
|
|
156
158
|
fn: () => table_getRightLeafColumns(table),
|
|
157
159
|
memoDeps: () => {
|
|
158
|
-
var _table$atoms$columnPi5, _table$atoms$columnOr5;
|
|
160
|
+
var _table$atoms$columnPi5, _table$atoms$columnOr5, _table$atoms$grouping2;
|
|
159
161
|
return [
|
|
160
162
|
table.options.columns,
|
|
161
163
|
(_table$atoms$columnPi5 = table.atoms.columnPinning) === null || _table$atoms$columnPi5 === void 0 ? void 0 : _table$atoms$columnPi5.get(),
|
|
162
|
-
(_table$atoms$columnOr5 = table.atoms.columnOrder) === null || _table$atoms$columnOr5 === void 0 ? void 0 : _table$atoms$columnOr5.get()
|
|
164
|
+
(_table$atoms$columnOr5 = table.atoms.columnOrder) === null || _table$atoms$columnOr5 === void 0 ? void 0 : _table$atoms$columnOr5.get(),
|
|
165
|
+
(_table$atoms$grouping2 = table.atoms.grouping) === null || _table$atoms$grouping2 === void 0 ? void 0 : _table$atoms$grouping2.get(),
|
|
166
|
+
table.options.groupedColumnMode
|
|
163
167
|
];
|
|
164
168
|
}
|
|
165
169
|
},
|
|
166
170
|
table_getCenterLeafColumns: {
|
|
167
171
|
fn: () => table_getCenterLeafColumns(table),
|
|
168
172
|
memoDeps: () => {
|
|
169
|
-
var _table$atoms$columnPi6, _table$atoms$columnOr6;
|
|
173
|
+
var _table$atoms$columnPi6, _table$atoms$columnOr6, _table$atoms$grouping3;
|
|
170
174
|
return [
|
|
171
175
|
table.options.columns,
|
|
172
176
|
(_table$atoms$columnPi6 = table.atoms.columnPinning) === null || _table$atoms$columnPi6 === void 0 ? void 0 : _table$atoms$columnPi6.get(),
|
|
173
|
-
(_table$atoms$columnOr6 = table.atoms.columnOrder) === null || _table$atoms$columnOr6 === void 0 ? void 0 : _table$atoms$columnOr6.get()
|
|
177
|
+
(_table$atoms$columnOr6 = table.atoms.columnOrder) === null || _table$atoms$columnOr6 === void 0 ? void 0 : _table$atoms$columnOr6.get(),
|
|
178
|
+
(_table$atoms$grouping3 = table.atoms.grouping) === null || _table$atoms$grouping3 === void 0 ? void 0 : _table$atoms$grouping3.get(),
|
|
179
|
+
table.options.groupedColumnMode
|
|
174
180
|
];
|
|
175
181
|
}
|
|
176
182
|
},
|
|
@@ -178,36 +184,42 @@ const columnPinningFeature = {
|
|
|
178
184
|
table_getLeftVisibleLeafColumns: {
|
|
179
185
|
fn: () => table_getLeftVisibleLeafColumns(table),
|
|
180
186
|
memoDeps: () => {
|
|
181
|
-
var _table$atoms$columnPi7, _table$atoms$columnVi, _table$atoms$columnOr7;
|
|
187
|
+
var _table$atoms$columnPi7, _table$atoms$columnVi, _table$atoms$columnOr7, _table$atoms$grouping4;
|
|
182
188
|
return [
|
|
183
189
|
table.options.columns,
|
|
184
190
|
(_table$atoms$columnPi7 = table.atoms.columnPinning) === null || _table$atoms$columnPi7 === void 0 ? void 0 : _table$atoms$columnPi7.get(),
|
|
185
191
|
(_table$atoms$columnVi = table.atoms.columnVisibility) === null || _table$atoms$columnVi === void 0 ? void 0 : _table$atoms$columnVi.get(),
|
|
186
|
-
(_table$atoms$columnOr7 = table.atoms.columnOrder) === null || _table$atoms$columnOr7 === void 0 ? void 0 : _table$atoms$columnOr7.get()
|
|
192
|
+
(_table$atoms$columnOr7 = table.atoms.columnOrder) === null || _table$atoms$columnOr7 === void 0 ? void 0 : _table$atoms$columnOr7.get(),
|
|
193
|
+
(_table$atoms$grouping4 = table.atoms.grouping) === null || _table$atoms$grouping4 === void 0 ? void 0 : _table$atoms$grouping4.get(),
|
|
194
|
+
table.options.groupedColumnMode
|
|
187
195
|
];
|
|
188
196
|
}
|
|
189
197
|
},
|
|
190
198
|
table_getCenterVisibleLeafColumns: {
|
|
191
199
|
fn: () => table_getCenterVisibleLeafColumns(table),
|
|
192
200
|
memoDeps: () => {
|
|
193
|
-
var _table$atoms$columnPi8, _table$atoms$columnVi2, _table$atoms$columnOr8;
|
|
201
|
+
var _table$atoms$columnPi8, _table$atoms$columnVi2, _table$atoms$columnOr8, _table$atoms$grouping5;
|
|
194
202
|
return [
|
|
195
203
|
table.options.columns,
|
|
196
204
|
(_table$atoms$columnPi8 = table.atoms.columnPinning) === null || _table$atoms$columnPi8 === void 0 ? void 0 : _table$atoms$columnPi8.get(),
|
|
197
205
|
(_table$atoms$columnVi2 = table.atoms.columnVisibility) === null || _table$atoms$columnVi2 === void 0 ? void 0 : _table$atoms$columnVi2.get(),
|
|
198
|
-
(_table$atoms$columnOr8 = table.atoms.columnOrder) === null || _table$atoms$columnOr8 === void 0 ? void 0 : _table$atoms$columnOr8.get()
|
|
206
|
+
(_table$atoms$columnOr8 = table.atoms.columnOrder) === null || _table$atoms$columnOr8 === void 0 ? void 0 : _table$atoms$columnOr8.get(),
|
|
207
|
+
(_table$atoms$grouping5 = table.atoms.grouping) === null || _table$atoms$grouping5 === void 0 ? void 0 : _table$atoms$grouping5.get(),
|
|
208
|
+
table.options.groupedColumnMode
|
|
199
209
|
];
|
|
200
210
|
}
|
|
201
211
|
},
|
|
202
212
|
table_getRightVisibleLeafColumns: {
|
|
203
213
|
fn: () => table_getRightVisibleLeafColumns(table),
|
|
204
214
|
memoDeps: () => {
|
|
205
|
-
var _table$atoms$columnPi9, _table$atoms$columnVi3, _table$atoms$columnOr9;
|
|
215
|
+
var _table$atoms$columnPi9, _table$atoms$columnVi3, _table$atoms$columnOr9, _table$atoms$grouping6;
|
|
206
216
|
return [
|
|
207
217
|
table.options.columns,
|
|
208
218
|
(_table$atoms$columnPi9 = table.atoms.columnPinning) === null || _table$atoms$columnPi9 === void 0 ? void 0 : _table$atoms$columnPi9.get(),
|
|
209
219
|
(_table$atoms$columnVi3 = table.atoms.columnVisibility) === null || _table$atoms$columnVi3 === void 0 ? void 0 : _table$atoms$columnVi3.get(),
|
|
210
|
-
(_table$atoms$columnOr9 = table.atoms.columnOrder) === null || _table$atoms$columnOr9 === void 0 ? void 0 : _table$atoms$columnOr9.get()
|
|
220
|
+
(_table$atoms$columnOr9 = table.atoms.columnOrder) === null || _table$atoms$columnOr9 === void 0 ? void 0 : _table$atoms$columnOr9.get(),
|
|
221
|
+
(_table$atoms$grouping6 = table.atoms.grouping) === null || _table$atoms$grouping6 === void 0 ? void 0 : _table$atoms$grouping6.get(),
|
|
222
|
+
table.options.groupedColumnMode
|
|
211
223
|
];
|
|
212
224
|
}
|
|
213
225
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnPinningFeature.js","names":[],"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 ],\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 ],\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 ],\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 ],\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 ],\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 ],\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.js","names":[],"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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"}
|
|
@@ -79,34 +79,72 @@ function header_getResizeHandler(header, _contextDocument) {
|
|
|
79
79
|
const newColumnSizing = require_utils.makeObjectMap();
|
|
80
80
|
const updateOffset = (eventType, clientXPos) => {
|
|
81
81
|
if (typeof clientXPos !== "number") return;
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
82
|
+
const table = column.table;
|
|
83
|
+
const isCommit = table.options.columnResizeMode === "onChange" || eventType === "end";
|
|
84
|
+
table._reactivity.batch(() => {
|
|
85
|
+
table_setColumnResizing(table, (old) => {
|
|
86
|
+
const deltaDirection = table.options.columnResizeDirection === "rtl" ? -1 : 1;
|
|
87
|
+
const deltaOffset = (clientXPos - (old.startOffset ?? 0)) * deltaDirection;
|
|
88
|
+
const startSize = old.startSize ?? 0;
|
|
89
|
+
const deltaPercentage = Math.max(startSize > 0 ? deltaOffset / startSize : 0, -.999999);
|
|
90
|
+
if (isCommit) {
|
|
91
|
+
const columnSizingStart = old.columnSizingStart;
|
|
92
|
+
for (let i = 0; i < columnSizingStart.length; i++) {
|
|
93
|
+
const entry = columnSizingStart[i];
|
|
94
|
+
const headerSize = entry[1];
|
|
95
|
+
newColumnSizing[entry[0]] = Math.round(Math.max(headerSize > 0 ? headerSize + headerSize * deltaPercentage : deltaOffset / columnSizingStart.length, 0) * 100) / 100;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return {
|
|
99
|
+
...old,
|
|
100
|
+
deltaOffset,
|
|
101
|
+
deltaPercentage
|
|
102
|
+
};
|
|
89
103
|
});
|
|
90
|
-
|
|
91
|
-
...old,
|
|
92
|
-
deltaOffset,
|
|
93
|
-
deltaPercentage
|
|
94
|
-
};
|
|
104
|
+
if (isCommit) require_columnSizingFeature_utils.table_setColumnSizing(table, (old) => Object.assign(require_utils.makeObjectMap(), old, newColumnSizing));
|
|
95
105
|
});
|
|
96
|
-
if (column.table.options.columnResizeMode === "onChange" || eventType === "end") require_columnSizingFeature_utils.table_setColumnSizing(column.table, (old) => Object.assign(require_utils.makeObjectMap(), old, newColumnSizing));
|
|
97
106
|
};
|
|
98
|
-
|
|
107
|
+
let moveRafId = null;
|
|
108
|
+
let hasPendingMove = false;
|
|
109
|
+
let latestMoveX;
|
|
110
|
+
const flushMove = () => {
|
|
111
|
+
if (hasPendingMove) {
|
|
112
|
+
hasPendingMove = false;
|
|
113
|
+
updateOffset("move", latestMoveX);
|
|
114
|
+
moveRafId = requestAnimationFrame(flushMove);
|
|
115
|
+
} else moveRafId = null;
|
|
116
|
+
};
|
|
117
|
+
const onMove = (clientXPos) => {
|
|
118
|
+
latestMoveX = clientXPos;
|
|
119
|
+
if (typeof requestAnimationFrame !== "function") {
|
|
120
|
+
updateOffset("move", clientXPos);
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
if (moveRafId !== null) {
|
|
124
|
+
hasPendingMove = true;
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
updateOffset("move", clientXPos);
|
|
128
|
+
moveRafId = requestAnimationFrame(flushMove);
|
|
129
|
+
};
|
|
99
130
|
const onEnd = (clientXPos) => {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
131
|
+
if (moveRafId !== null) {
|
|
132
|
+
cancelAnimationFrame(moveRafId);
|
|
133
|
+
moveRafId = null;
|
|
134
|
+
hasPendingMove = false;
|
|
135
|
+
}
|
|
136
|
+
column.table._reactivity.batch(() => {
|
|
137
|
+
updateOffset("end", clientXPos ?? latestMoveX);
|
|
138
|
+
table_setColumnResizing(column.table, (old) => ({
|
|
139
|
+
...old,
|
|
140
|
+
isResizingColumn: false,
|
|
141
|
+
startOffset: null,
|
|
142
|
+
startSize: null,
|
|
143
|
+
deltaOffset: null,
|
|
144
|
+
deltaPercentage: null,
|
|
145
|
+
columnSizingStart: []
|
|
146
|
+
}));
|
|
147
|
+
});
|
|
110
148
|
};
|
|
111
149
|
const contextDocument = _contextDocument || typeof document !== "undefined" ? document : null;
|
|
112
150
|
const mouseEvents = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnResizingFeature.utils.cjs","names":["header_getSize","column_getSize","makeObjectMap","cloneState"],"sources":["../../../src/features/column-resizing/columnResizingFeature.utils.ts"],"sourcesContent":["import {\n column_getSize,\n header_getSize,\n table_setColumnSizing,\n} from '../column-sizing/columnSizingFeature.utils'\nimport { cloneState, makeObjectMap } from '../../utils'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Header } from '../../types/Header'\nimport type { Column_Internal } from '../../types/Column'\nimport type { ColumnSizingState } from '../column-sizing/columnSizingFeature.types'\nimport type { columnResizingState } from './columnResizingFeature.types'\n\n/**\n * Creates the default transient column resizing state.\n *\n * The feature default represents no active drag interaction. Reset APIs use\n * this value when `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const resizeInfo = getDefaultColumnResizingState()\n * ```\n */\nexport function getDefaultColumnResizingState(): columnResizingState {\n return {\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n }\n}\n\n/**\n * Checks whether this column can start a resize interaction.\n *\n * Both `columnDef.enableResizing` and table `enableColumnResizing` default to\n * `true`.\n *\n * @example\n * ```ts\n * const canResize = column_getCanResize(column)\n * ```\n */\nexport function column_getCanResize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n return (\n (column.columnDef.enableResizing ?? true) &&\n (column.table.options.enableColumnResizing ?? true)\n )\n}\n\n/**\n * Checks whether this column is the active column resize target.\n *\n * The value is read from `state.columnResizing.isResizingColumn`.\n *\n * @example\n * ```ts\n * const isResizing = column_getIsResizing(column)\n * ```\n */\nexport function column_getIsResizing<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n return (\n column.table.atoms.columnResizing?.get()?.isResizingColumn === column.id\n )\n}\n\n/**\n * Creates the pointer/touch start handler for resizing a header.\n *\n * The handler records starting sizes for all leaf headers, tracks drag deltas,\n * writes transient resize info, and commits column sizes on change or drag end\n * depending on `columnResizeMode`.\n *\n * @example\n * ```ts\n * const onMouseDown = header_getResizeHandler(header)\n * ```\n */\nexport function header_getResizeHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(header: Header<TFeatures, TData, TValue>, _contextDocument?: Document) {\n const column = header.table.getColumn(header.column.id)!\n const canResize = column_getCanResize(column)\n\n return (event: unknown) => {\n if (!canResize) {\n return\n }\n\n ;(event as any).persist?.()\n\n if (isTouchStartEvent(event)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (event.touches.length > 1) {\n return\n }\n }\n\n const startSize = header_getSize(header)\n\n const columnSizingStart: Array<[string, number]> = header\n .getLeafHeaders()\n .map((leafHeader) => [\n leafHeader.column.id,\n column_getSize(leafHeader.column),\n ])\n\n const clientX = isTouchStartEvent(event)\n ? Math.round(event.touches[0]!.clientX)\n : (event as MouseEvent).clientX\n\n const newColumnSizing: ColumnSizingState = makeObjectMap()\n\n const updateOffset = (eventType: 'move' | 'end', clientXPos?: number) => {\n if (typeof clientXPos !== 'number') {\n return\n }\n\n table_setColumnResizing(column.table, (old) => {\n const deltaDirection =\n column.table.options.columnResizeDirection === 'rtl' ? -1 : 1\n const deltaOffset =\n (clientXPos - (old.startOffset ?? 0)) * deltaDirection\n const startSize = old.startSize ?? 0\n const deltaPercentage = Math.max(\n startSize > 0 ? deltaOffset / startSize : 0,\n -0.999999,\n )\n\n old.columnSizingStart.forEach(([columnId, headerSize]) => {\n newColumnSizing[columnId] =\n Math.round(\n Math.max(\n headerSize > 0\n ? headerSize + headerSize * deltaPercentage\n : deltaOffset / old.columnSizingStart.length,\n 0,\n ) * 100,\n ) / 100\n })\n\n return {\n ...old,\n deltaOffset,\n deltaPercentage,\n }\n })\n\n if (\n column.table.options.columnResizeMode === 'onChange' ||\n eventType === 'end'\n ) {\n table_setColumnSizing(column.table, (old) =>\n Object.assign(makeObjectMap<number>(), old, newColumnSizing),\n )\n }\n }\n\n const onMove = (clientXPos?: number) => updateOffset('move', clientXPos)\n\n const onEnd = (clientXPos?: number) => {\n updateOffset('end', clientXPos)\n\n table_setColumnResizing(column.table, (old) => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: [],\n }))\n }\n\n const contextDocument =\n _contextDocument || typeof document !== 'undefined' ? document : null\n\n const mouseEvents = {\n moveHandler: (e: MouseEvent) => onMove(e.clientX),\n upHandler: (e: MouseEvent) => {\n contextDocument?.removeEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n )\n contextDocument?.removeEventListener('mouseup', mouseEvents.upHandler)\n onEnd(e.clientX)\n },\n }\n\n const touchEvents = {\n moveHandler: (touchEvent: TouchEvent) => {\n if (touchEvent.cancelable) {\n touchEvent.preventDefault()\n touchEvent.stopPropagation()\n }\n onMove(touchEvent.touches[0]!.clientX)\n return false\n },\n upHandler: (e: TouchEvent) => {\n contextDocument?.removeEventListener(\n 'touchmove',\n touchEvents.moveHandler,\n )\n contextDocument?.removeEventListener('touchend', touchEvents.upHandler)\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onEnd(e.touches[0]?.clientX)\n },\n }\n\n const passiveIfSupported = passiveEventSupported()\n ? { passive: false }\n : false\n\n if (isTouchStartEvent(event)) {\n contextDocument?.addEventListener(\n 'touchmove',\n touchEvents.moveHandler,\n passiveIfSupported,\n )\n contextDocument?.addEventListener(\n 'touchend',\n touchEvents.upHandler,\n passiveIfSupported,\n )\n } else {\n contextDocument?.addEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n passiveIfSupported,\n )\n contextDocument?.addEventListener(\n 'mouseup',\n mouseEvents.upHandler,\n passiveIfSupported,\n )\n }\n\n table_setColumnResizing(column.table, (old) => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id,\n }))\n }\n}\n\n/**\n * Routes a transient column resizing updater through the table's resize handler.\n *\n * This state tracks the active drag interaction; committed widths live in\n * `columnSizing`.\n *\n * @example\n * ```ts\n * table_setColumnResizing(table, (old) => ({ ...old, deltaOffset: 12 }))\n * ```\n */\nexport function table_setColumnResizing<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<columnResizingState>,\n) {\n table.options.onColumnResizingChange?.(updater)\n}\n\n/**\n * Resets `columnResizing` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.columnResizing` when\n * it exists. Passing `true` ignores initial state and resets to the no-drag\n * default state.\n *\n * @example\n * ```ts\n * table_resetHeaderSizeInfo(table)\n * table_resetHeaderSizeInfo(table, true)\n * ```\n */\nexport function table_resetHeaderSizeInfo<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnResizing(\n table,\n defaultState\n ? getDefaultColumnResizingState()\n : cloneState(\n table.initialState.columnResizing ?? getDefaultColumnResizingState(),\n ),\n )\n}\n\nlet passiveSupported: boolean | null = null\n/**\n * Detects whether the current environment supports passive event listeners.\n *\n * Column resizing uses this to register pointer and touch listeners with\n * `passive: false` only when the environment understands passive options.\n *\n * @example\n * ```ts\n * const canUsePassiveListeners = passiveEventSupported()\n * ```\n */\nexport function passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported\n\n let supported = false\n try {\n const options = {\n get passive() {\n supported = true\n return false\n },\n }\n\n const noop = () => {}\n\n window.addEventListener('test', noop, options)\n window.removeEventListener('test', noop)\n } catch (err) {\n supported = false\n }\n passiveSupported = supported\n return passiveSupported\n}\n\n/**\n * Narrows an unknown event to a `touchstart` event.\n *\n * Column resizing uses this before reading touch coordinates and installing\n * touch-specific listeners.\n *\n * @example\n * ```ts\n * const isTouch = isTouchStartEvent(event)\n * ```\n */\nexport function isTouchStartEvent(e: unknown): e is TouchEvent {\n return (e as TouchEvent).type === 'touchstart'\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"columnResizingFeature.utils.cjs","names":["header_getSize","column_getSize","makeObjectMap","cloneState"],"sources":["../../../src/features/column-resizing/columnResizingFeature.utils.ts"],"sourcesContent":["import {\n column_getSize,\n header_getSize,\n table_setColumnSizing,\n} from '../column-sizing/columnSizingFeature.utils'\nimport { cloneState, makeObjectMap } from '../../utils'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Header } from '../../types/Header'\nimport type { Column_Internal } from '../../types/Column'\nimport type { ColumnSizingState } from '../column-sizing/columnSizingFeature.types'\nimport type { columnResizingState } from './columnResizingFeature.types'\n\n/**\n * Creates the default transient column resizing state.\n *\n * The feature default represents no active drag interaction. Reset APIs use\n * this value when `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const resizeInfo = getDefaultColumnResizingState()\n * ```\n */\nexport function getDefaultColumnResizingState(): columnResizingState {\n return {\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n }\n}\n\n/**\n * Checks whether this column can start a resize interaction.\n *\n * Both `columnDef.enableResizing` and table `enableColumnResizing` default to\n * `true`.\n *\n * @example\n * ```ts\n * const canResize = column_getCanResize(column)\n * ```\n */\nexport function column_getCanResize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n return (\n (column.columnDef.enableResizing ?? true) &&\n (column.table.options.enableColumnResizing ?? true)\n )\n}\n\n/**\n * Checks whether this column is the active column resize target.\n *\n * The value is read from `state.columnResizing.isResizingColumn`.\n *\n * @example\n * ```ts\n * const isResizing = column_getIsResizing(column)\n * ```\n */\nexport function column_getIsResizing<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n return (\n column.table.atoms.columnResizing?.get()?.isResizingColumn === column.id\n )\n}\n\n/**\n * Creates the pointer/touch start handler for resizing a header.\n *\n * The handler records starting sizes for all leaf headers, tracks drag deltas,\n * writes transient resize info, and commits column sizes on change or drag end\n * depending on `columnResizeMode`.\n *\n * @example\n * ```ts\n * const onMouseDown = header_getResizeHandler(header)\n * ```\n */\nexport function header_getResizeHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(header: Header<TFeatures, TData, TValue>, _contextDocument?: Document) {\n const column = header.table.getColumn(header.column.id)!\n const canResize = column_getCanResize(column)\n\n return (event: unknown) => {\n if (!canResize) {\n return\n }\n\n ;(event as any).persist?.()\n\n if (isTouchStartEvent(event)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (event.touches.length > 1) {\n return\n }\n }\n\n const startSize = header_getSize(header)\n\n const columnSizingStart: Array<[string, number]> = header\n .getLeafHeaders()\n .map((leafHeader) => [\n leafHeader.column.id,\n column_getSize(leafHeader.column),\n ])\n\n const clientX = isTouchStartEvent(event)\n ? Math.round(event.touches[0]!.clientX)\n : (event as MouseEvent).clientX\n\n const newColumnSizing: ColumnSizingState = makeObjectMap()\n\n const updateOffset = (eventType: 'move' | 'end', clientXPos?: number) => {\n if (typeof clientXPos !== 'number') {\n return\n }\n\n const table = column.table\n const isCommit =\n table.options.columnResizeMode === 'onChange' || eventType === 'end'\n\n // one notification flush per tick instead of two\n table._reactivity.batch(() => {\n table_setColumnResizing(table, (old) => {\n const deltaDirection =\n table.options.columnResizeDirection === 'rtl' ? -1 : 1\n const deltaOffset =\n (clientXPos - (old.startOffset ?? 0)) * deltaDirection\n const startSize = old.startSize ?? 0\n const deltaPercentage = Math.max(\n startSize > 0 ? deltaOffset / startSize : 0,\n -0.999999,\n )\n\n // new sizes are only read at commit and are recomputed from\n // absolute positions each time, so skip them on onEnd-mode moves\n if (isCommit) {\n const columnSizingStart = old.columnSizingStart\n for (let i = 0; i < columnSizingStart.length; i++) {\n const entry = columnSizingStart[i]!\n const headerSize = entry[1]\n newColumnSizing[entry[0]] =\n Math.round(\n Math.max(\n headerSize > 0\n ? headerSize + headerSize * deltaPercentage\n : deltaOffset / columnSizingStart.length,\n 0,\n ) * 100,\n ) / 100\n }\n }\n\n return {\n ...old,\n deltaOffset,\n deltaPercentage,\n }\n })\n\n if (isCommit) {\n table_setColumnSizing(table, (old) =>\n Object.assign(makeObjectMap<number>(), old, newColumnSizing),\n )\n }\n })\n }\n\n // Pointer devices can report at several times the display refresh rate,\n // and every update between frames is overwritten by the next one. Apply\n // the first move of a frame immediately, then coalesce the rest into one\n // update per animation frame.\n let moveRafId: number | null = null\n let hasPendingMove = false\n let latestMoveX: number | undefined\n\n const flushMove = () => {\n if (hasPendingMove) {\n hasPendingMove = false\n updateOffset('move', latestMoveX)\n moveRafId = requestAnimationFrame(flushMove)\n } else {\n moveRafId = null\n }\n }\n\n const onMove = (clientXPos?: number) => {\n latestMoveX = clientXPos\n if (typeof requestAnimationFrame !== 'function') {\n updateOffset('move', clientXPos)\n return\n }\n if (moveRafId !== null) {\n hasPendingMove = true\n return\n }\n updateOffset('move', clientXPos)\n moveRafId = requestAnimationFrame(flushMove)\n }\n\n const onEnd = (clientXPos?: number) => {\n if (moveRafId !== null) {\n cancelAnimationFrame(moveRafId)\n moveRafId = null\n hasPendingMove = false\n }\n\n // batch the 'end' commit and the reset into one notification flush\n column.table._reactivity.batch(() => {\n // touchend events carry no touch position, so fall back to the last\n // observed move position for the final commit\n updateOffset('end', clientXPos ?? latestMoveX)\n\n table_setColumnResizing(column.table, (old) => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: [],\n }))\n })\n }\n\n const contextDocument =\n _contextDocument || typeof document !== 'undefined' ? document : null\n\n const mouseEvents = {\n moveHandler: (e: MouseEvent) => onMove(e.clientX),\n upHandler: (e: MouseEvent) => {\n contextDocument?.removeEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n )\n contextDocument?.removeEventListener('mouseup', mouseEvents.upHandler)\n onEnd(e.clientX)\n },\n }\n\n const touchEvents = {\n moveHandler: (touchEvent: TouchEvent) => {\n if (touchEvent.cancelable) {\n touchEvent.preventDefault()\n touchEvent.stopPropagation()\n }\n onMove(touchEvent.touches[0]!.clientX)\n return false\n },\n upHandler: (e: TouchEvent) => {\n contextDocument?.removeEventListener(\n 'touchmove',\n touchEvents.moveHandler,\n )\n contextDocument?.removeEventListener('touchend', touchEvents.upHandler)\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onEnd(e.touches[0]?.clientX)\n },\n }\n\n const passiveIfSupported = passiveEventSupported()\n ? { passive: false }\n : false\n\n if (isTouchStartEvent(event)) {\n contextDocument?.addEventListener(\n 'touchmove',\n touchEvents.moveHandler,\n passiveIfSupported,\n )\n contextDocument?.addEventListener(\n 'touchend',\n touchEvents.upHandler,\n passiveIfSupported,\n )\n } else {\n contextDocument?.addEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n passiveIfSupported,\n )\n contextDocument?.addEventListener(\n 'mouseup',\n mouseEvents.upHandler,\n passiveIfSupported,\n )\n }\n\n table_setColumnResizing(column.table, (old) => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id,\n }))\n }\n}\n\n/**\n * Routes a transient column resizing updater through the table's resize handler.\n *\n * This state tracks the active drag interaction; committed widths live in\n * `columnSizing`.\n *\n * @example\n * ```ts\n * table_setColumnResizing(table, (old) => ({ ...old, deltaOffset: 12 }))\n * ```\n */\nexport function table_setColumnResizing<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<columnResizingState>,\n) {\n table.options.onColumnResizingChange?.(updater)\n}\n\n/**\n * Resets `columnResizing` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.columnResizing` when\n * it exists. Passing `true` ignores initial state and resets to the no-drag\n * default state.\n *\n * @example\n * ```ts\n * table_resetHeaderSizeInfo(table)\n * table_resetHeaderSizeInfo(table, true)\n * ```\n */\nexport function table_resetHeaderSizeInfo<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnResizing(\n table,\n defaultState\n ? getDefaultColumnResizingState()\n : cloneState(\n table.initialState.columnResizing ?? getDefaultColumnResizingState(),\n ),\n )\n}\n\nlet passiveSupported: boolean | null = null\n/**\n * Detects whether the current environment supports passive event listeners.\n *\n * Column resizing uses this to register pointer and touch listeners with\n * `passive: false` only when the environment understands passive options.\n *\n * @example\n * ```ts\n * const canUsePassiveListeners = passiveEventSupported()\n * ```\n */\nexport function passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported\n\n let supported = false\n try {\n const options = {\n get passive() {\n supported = true\n return false\n },\n }\n\n const noop = () => {}\n\n window.addEventListener('test', noop, options)\n window.removeEventListener('test', noop)\n } catch (err) {\n supported = false\n }\n passiveSupported = supported\n return passiveSupported\n}\n\n/**\n * Narrows an unknown event to a `touchstart` event.\n *\n * Column resizing uses this before reading touch coordinates and installing\n * touch-specific listeners.\n *\n * @example\n * ```ts\n * const isTouch = isTouchStartEvent(event)\n * ```\n */\nexport function isTouchStartEvent(e: unknown): e is TouchEvent {\n return (e as TouchEvent).type === 'touchstart'\n}\n"],"mappings":";;;;;;;;;;;;;;;AAyBA,SAAgB,gCAAqD;CACnE,OAAO;EACL,aAAa;EACb,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,kBAAkB;EAClB,mBAAmB,CAAC;CACtB;AACF;;;;;;;;;;;;AAaA,SAAgB,oBAId,QAAmD;CACnD,QACG,OAAO,UAAU,kBAAkB,UACnC,OAAO,MAAM,QAAQ,wBAAwB;AAElD;;;;;;;;;;;AAYA,SAAgB,qBAId,QAAmD;;CACnD,iCACE,OAAO,MAAM,MAAM,+GAAgB,IAAI,iFAAG,sBAAqB,OAAO;AAE1E;;;;;;;;;;;;;AAcA,SAAgB,wBAId,QAA0C,kBAA6B;CACvE,MAAM,SAAS,OAAO,MAAM,UAAU,OAAO,OAAO,EAAE;CACtD,MAAM,YAAY,oBAAoB,MAAM;CAE5C,QAAQ,UAAmB;;EACzB,IAAI,CAAC,WACH;EAGD,YAAC,MAAc,+DAAU;EAE1B,IAAI,kBAAkB,KAAK,GAEzB;OAAI,MAAM,QAAQ,SAAS,GACzB;EACF;EAGF,MAAM,YAAYA,iDAAe,MAAM;EAEvC,MAAM,oBAA6C,OAChD,eAAe,CAAC,CAChB,KAAK,eAAe,CACnB,WAAW,OAAO,IAClBC,iDAAe,WAAW,MAAM,CAClC,CAAC;EAEH,MAAM,UAAU,kBAAkB,KAAK,IACnC,KAAK,MAAM,MAAM,QAAQ,EAAE,CAAE,OAAO,IACnC,MAAqB;EAE1B,MAAM,kBAAqCC,4BAAc;EAEzD,MAAM,gBAAgB,WAA2B,eAAwB;GACvE,IAAI,OAAO,eAAe,UACxB;GAGF,MAAM,QAAQ,OAAO;GACrB,MAAM,WACJ,MAAM,QAAQ,qBAAqB,cAAc,cAAc;GAGjE,MAAM,YAAY,YAAY;IAC5B,wBAAwB,QAAQ,QAAQ;KACtC,MAAM,iBACJ,MAAM,QAAQ,0BAA0B,QAAQ,KAAK;KACvD,MAAM,eACH,cAAc,IAAI,eAAe,MAAM;KAC1C,MAAM,YAAY,IAAI,aAAa;KACnC,MAAM,kBAAkB,KAAK,IAC3B,YAAY,IAAI,cAAc,YAAY,GAC1C,QACF;KAIA,IAAI,UAAU;MACZ,MAAM,oBAAoB,IAAI;MAC9B,KAAK,IAAI,IAAI,GAAG,IAAI,kBAAkB,QAAQ,KAAK;OACjD,MAAM,QAAQ,kBAAkB;OAChC,MAAM,aAAa,MAAM;OACzB,gBAAgB,MAAM,MACpB,KAAK,MACH,KAAK,IACH,aAAa,IACT,aAAa,aAAa,kBAC1B,cAAc,kBAAkB,QACpC,CACF,IAAI,GACN,IAAI;MACR;KACF;KAEA,OAAO;MACL,GAAG;MACH;MACA;KACF;IACF,CAAC;IAED,IAAI,UACF,wDAAsB,QAAQ,QAC5B,OAAO,OAAOA,4BAAsB,GAAG,KAAK,eAAe,CAC7D;GAEJ,CAAC;EACH;EAMA,IAAI,YAA2B;EAC/B,IAAI,iBAAiB;EACrB,IAAI;EAEJ,MAAM,kBAAkB;GACtB,IAAI,gBAAgB;IAClB,iBAAiB;IACjB,aAAa,QAAQ,WAAW;IAChC,YAAY,sBAAsB,SAAS;GAC7C,OACE,YAAY;EAEhB;EAEA,MAAM,UAAU,eAAwB;GACtC,cAAc;GACd,IAAI,OAAO,0BAA0B,YAAY;IAC/C,aAAa,QAAQ,UAAU;IAC/B;GACF;GACA,IAAI,cAAc,MAAM;IACtB,iBAAiB;IACjB;GACF;GACA,aAAa,QAAQ,UAAU;GAC/B,YAAY,sBAAsB,SAAS;EAC7C;EAEA,MAAM,SAAS,eAAwB;GACrC,IAAI,cAAc,MAAM;IACtB,qBAAqB,SAAS;IAC9B,YAAY;IACZ,iBAAiB;GACnB;GAGA,OAAO,MAAM,YAAY,YAAY;IAGnC,aAAa,OAAO,cAAc,WAAW;IAE7C,wBAAwB,OAAO,QAAQ,SAAS;KAC9C,GAAG;KACH,kBAAkB;KAClB,aAAa;KACb,WAAW;KACX,aAAa;KACb,iBAAiB;KACjB,mBAAmB,CAAC;IACtB,EAAE;GACJ,CAAC;EACH;EAEA,MAAM,kBACJ,oBAAoB,OAAO,aAAa,cAAc,WAAW;EAEnE,MAAM,cAAc;GAClB,cAAc,MAAkB,OAAO,EAAE,OAAO;GAChD,YAAY,MAAkB;IAC5B,0EAAiB,oBACf,aACA,YAAY,WACd;IACA,0EAAiB,oBAAoB,WAAW,YAAY,SAAS;IACrE,MAAM,EAAE,OAAO;GACjB;EACF;EAEA,MAAM,cAAc;GAClB,cAAc,eAA2B;IACvC,IAAI,WAAW,YAAY;KACzB,WAAW,eAAe;KAC1B,WAAW,gBAAgB;IAC7B;IACA,OAAO,WAAW,QAAQ,EAAE,CAAE,OAAO;IACrC,OAAO;GACT;GACA,YAAY,MAAkB;;IAC5B,0EAAiB,oBACf,aACA,YAAY,WACd;IACA,0EAAiB,oBAAoB,YAAY,YAAY,SAAS;IACtE,IAAI,EAAE,YAAY;KAChB,EAAE,eAAe;KACjB,EAAE,gBAAgB;IACpB;IACA,qBAAM,EAAE,QAAQ,8DAAI,OAAO;GAC7B;EACF;EAEA,MAAM,qBAAqB,sBAAsB,IAC7C,EAAE,SAAS,MAAM,IACjB;EAEJ,IAAI,kBAAkB,KAAK,GAAG;GAC5B,0EAAiB,iBACf,aACA,YAAY,aACZ,kBACF;GACA,0EAAiB,iBACf,YACA,YAAY,WACZ,kBACF;EACF,OAAO;GACL,0EAAiB,iBACf,aACA,YAAY,aACZ,kBACF;GACA,0EAAiB,iBACf,WACA,YAAY,WACZ,kBACF;EACF;EAEA,wBAAwB,OAAO,QAAQ,SAAS;GAC9C,GAAG;GACH,aAAa;GACb;GACA,aAAa;GACb,iBAAiB;GACjB;GACA,kBAAkB,OAAO;EAC3B,EAAE;CACJ;AACF;;;;;;;;;;;;AAaA,SAAgB,wBAId,OACA,SACA;;CACA,iDAAM,SAAQ,mHAAyB,OAAO;AAChD;;;;;;;;;;;;;;AAeA,SAAgB,0BAGd,OAAyC,cAAwB;CACjE,wBACE,OACA,eACI,8BAA8B,IAC9BC,yBACE,MAAM,aAAa,kBAAkB,8BAA8B,CACrE,CACN;AACF;AAEA,IAAI,mBAAmC;;;;;;;;;;;;AAYvC,SAAgB,wBAAwB;CACtC,IAAI,OAAO,qBAAqB,WAAW,OAAO;CAElD,IAAI,YAAY;CAChB,IAAI;EACF,MAAM,UAAU,EACd,IAAI,UAAU;GACZ,YAAY;GACZ,OAAO;EACT,EACF;EAEA,MAAM,aAAa,CAAC;EAEpB,OAAO,iBAAiB,QAAQ,MAAM,OAAO;EAC7C,OAAO,oBAAoB,QAAQ,IAAI;CACzC,SAAS,KAAK;EACZ,YAAY;CACd;CACA,mBAAmB;CACnB,OAAO;AACT;;;;;;;;;;;;AAaA,SAAgB,kBAAkB,GAA6B;CAC7D,OAAQ,EAAiB,SAAS;AACpC"}
|
|
@@ -79,34 +79,72 @@ function header_getResizeHandler(header, _contextDocument) {
|
|
|
79
79
|
const newColumnSizing = makeObjectMap();
|
|
80
80
|
const updateOffset = (eventType, clientXPos) => {
|
|
81
81
|
if (typeof clientXPos !== "number") return;
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
82
|
+
const table = column.table;
|
|
83
|
+
const isCommit = table.options.columnResizeMode === "onChange" || eventType === "end";
|
|
84
|
+
table._reactivity.batch(() => {
|
|
85
|
+
table_setColumnResizing(table, (old) => {
|
|
86
|
+
const deltaDirection = table.options.columnResizeDirection === "rtl" ? -1 : 1;
|
|
87
|
+
const deltaOffset = (clientXPos - (old.startOffset ?? 0)) * deltaDirection;
|
|
88
|
+
const startSize = old.startSize ?? 0;
|
|
89
|
+
const deltaPercentage = Math.max(startSize > 0 ? deltaOffset / startSize : 0, -.999999);
|
|
90
|
+
if (isCommit) {
|
|
91
|
+
const columnSizingStart = old.columnSizingStart;
|
|
92
|
+
for (let i = 0; i < columnSizingStart.length; i++) {
|
|
93
|
+
const entry = columnSizingStart[i];
|
|
94
|
+
const headerSize = entry[1];
|
|
95
|
+
newColumnSizing[entry[0]] = Math.round(Math.max(headerSize > 0 ? headerSize + headerSize * deltaPercentage : deltaOffset / columnSizingStart.length, 0) * 100) / 100;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return {
|
|
99
|
+
...old,
|
|
100
|
+
deltaOffset,
|
|
101
|
+
deltaPercentage
|
|
102
|
+
};
|
|
89
103
|
});
|
|
90
|
-
|
|
91
|
-
...old,
|
|
92
|
-
deltaOffset,
|
|
93
|
-
deltaPercentage
|
|
94
|
-
};
|
|
104
|
+
if (isCommit) table_setColumnSizing(table, (old) => Object.assign(makeObjectMap(), old, newColumnSizing));
|
|
95
105
|
});
|
|
96
|
-
if (column.table.options.columnResizeMode === "onChange" || eventType === "end") table_setColumnSizing(column.table, (old) => Object.assign(makeObjectMap(), old, newColumnSizing));
|
|
97
106
|
};
|
|
98
|
-
|
|
107
|
+
let moveRafId = null;
|
|
108
|
+
let hasPendingMove = false;
|
|
109
|
+
let latestMoveX;
|
|
110
|
+
const flushMove = () => {
|
|
111
|
+
if (hasPendingMove) {
|
|
112
|
+
hasPendingMove = false;
|
|
113
|
+
updateOffset("move", latestMoveX);
|
|
114
|
+
moveRafId = requestAnimationFrame(flushMove);
|
|
115
|
+
} else moveRafId = null;
|
|
116
|
+
};
|
|
117
|
+
const onMove = (clientXPos) => {
|
|
118
|
+
latestMoveX = clientXPos;
|
|
119
|
+
if (typeof requestAnimationFrame !== "function") {
|
|
120
|
+
updateOffset("move", clientXPos);
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
if (moveRafId !== null) {
|
|
124
|
+
hasPendingMove = true;
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
updateOffset("move", clientXPos);
|
|
128
|
+
moveRafId = requestAnimationFrame(flushMove);
|
|
129
|
+
};
|
|
99
130
|
const onEnd = (clientXPos) => {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
131
|
+
if (moveRafId !== null) {
|
|
132
|
+
cancelAnimationFrame(moveRafId);
|
|
133
|
+
moveRafId = null;
|
|
134
|
+
hasPendingMove = false;
|
|
135
|
+
}
|
|
136
|
+
column.table._reactivity.batch(() => {
|
|
137
|
+
updateOffset("end", clientXPos ?? latestMoveX);
|
|
138
|
+
table_setColumnResizing(column.table, (old) => ({
|
|
139
|
+
...old,
|
|
140
|
+
isResizingColumn: false,
|
|
141
|
+
startOffset: null,
|
|
142
|
+
startSize: null,
|
|
143
|
+
deltaOffset: null,
|
|
144
|
+
deltaPercentage: null,
|
|
145
|
+
columnSizingStart: []
|
|
146
|
+
}));
|
|
147
|
+
});
|
|
110
148
|
};
|
|
111
149
|
const contextDocument = _contextDocument || typeof document !== "undefined" ? document : null;
|
|
112
150
|
const mouseEvents = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnResizingFeature.utils.js","names":[],"sources":["../../../src/features/column-resizing/columnResizingFeature.utils.ts"],"sourcesContent":["import {\n column_getSize,\n header_getSize,\n table_setColumnSizing,\n} from '../column-sizing/columnSizingFeature.utils'\nimport { cloneState, makeObjectMap } from '../../utils'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Header } from '../../types/Header'\nimport type { Column_Internal } from '../../types/Column'\nimport type { ColumnSizingState } from '../column-sizing/columnSizingFeature.types'\nimport type { columnResizingState } from './columnResizingFeature.types'\n\n/**\n * Creates the default transient column resizing state.\n *\n * The feature default represents no active drag interaction. Reset APIs use\n * this value when `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const resizeInfo = getDefaultColumnResizingState()\n * ```\n */\nexport function getDefaultColumnResizingState(): columnResizingState {\n return {\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n }\n}\n\n/**\n * Checks whether this column can start a resize interaction.\n *\n * Both `columnDef.enableResizing` and table `enableColumnResizing` default to\n * `true`.\n *\n * @example\n * ```ts\n * const canResize = column_getCanResize(column)\n * ```\n */\nexport function column_getCanResize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n return (\n (column.columnDef.enableResizing ?? true) &&\n (column.table.options.enableColumnResizing ?? true)\n )\n}\n\n/**\n * Checks whether this column is the active column resize target.\n *\n * The value is read from `state.columnResizing.isResizingColumn`.\n *\n * @example\n * ```ts\n * const isResizing = column_getIsResizing(column)\n * ```\n */\nexport function column_getIsResizing<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n return (\n column.table.atoms.columnResizing?.get()?.isResizingColumn === column.id\n )\n}\n\n/**\n * Creates the pointer/touch start handler for resizing a header.\n *\n * The handler records starting sizes for all leaf headers, tracks drag deltas,\n * writes transient resize info, and commits column sizes on change or drag end\n * depending on `columnResizeMode`.\n *\n * @example\n * ```ts\n * const onMouseDown = header_getResizeHandler(header)\n * ```\n */\nexport function header_getResizeHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(header: Header<TFeatures, TData, TValue>, _contextDocument?: Document) {\n const column = header.table.getColumn(header.column.id)!\n const canResize = column_getCanResize(column)\n\n return (event: unknown) => {\n if (!canResize) {\n return\n }\n\n ;(event as any).persist?.()\n\n if (isTouchStartEvent(event)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (event.touches.length > 1) {\n return\n }\n }\n\n const startSize = header_getSize(header)\n\n const columnSizingStart: Array<[string, number]> = header\n .getLeafHeaders()\n .map((leafHeader) => [\n leafHeader.column.id,\n column_getSize(leafHeader.column),\n ])\n\n const clientX = isTouchStartEvent(event)\n ? Math.round(event.touches[0]!.clientX)\n : (event as MouseEvent).clientX\n\n const newColumnSizing: ColumnSizingState = makeObjectMap()\n\n const updateOffset = (eventType: 'move' | 'end', clientXPos?: number) => {\n if (typeof clientXPos !== 'number') {\n return\n }\n\n table_setColumnResizing(column.table, (old) => {\n const deltaDirection =\n column.table.options.columnResizeDirection === 'rtl' ? -1 : 1\n const deltaOffset =\n (clientXPos - (old.startOffset ?? 0)) * deltaDirection\n const startSize = old.startSize ?? 0\n const deltaPercentage = Math.max(\n startSize > 0 ? deltaOffset / startSize : 0,\n -0.999999,\n )\n\n old.columnSizingStart.forEach(([columnId, headerSize]) => {\n newColumnSizing[columnId] =\n Math.round(\n Math.max(\n headerSize > 0\n ? headerSize + headerSize * deltaPercentage\n : deltaOffset / old.columnSizingStart.length,\n 0,\n ) * 100,\n ) / 100\n })\n\n return {\n ...old,\n deltaOffset,\n deltaPercentage,\n }\n })\n\n if (\n column.table.options.columnResizeMode === 'onChange' ||\n eventType === 'end'\n ) {\n table_setColumnSizing(column.table, (old) =>\n Object.assign(makeObjectMap<number>(), old, newColumnSizing),\n )\n }\n }\n\n const onMove = (clientXPos?: number) => updateOffset('move', clientXPos)\n\n const onEnd = (clientXPos?: number) => {\n updateOffset('end', clientXPos)\n\n table_setColumnResizing(column.table, (old) => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: [],\n }))\n }\n\n const contextDocument =\n _contextDocument || typeof document !== 'undefined' ? document : null\n\n const mouseEvents = {\n moveHandler: (e: MouseEvent) => onMove(e.clientX),\n upHandler: (e: MouseEvent) => {\n contextDocument?.removeEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n )\n contextDocument?.removeEventListener('mouseup', mouseEvents.upHandler)\n onEnd(e.clientX)\n },\n }\n\n const touchEvents = {\n moveHandler: (touchEvent: TouchEvent) => {\n if (touchEvent.cancelable) {\n touchEvent.preventDefault()\n touchEvent.stopPropagation()\n }\n onMove(touchEvent.touches[0]!.clientX)\n return false\n },\n upHandler: (e: TouchEvent) => {\n contextDocument?.removeEventListener(\n 'touchmove',\n touchEvents.moveHandler,\n )\n contextDocument?.removeEventListener('touchend', touchEvents.upHandler)\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onEnd(e.touches[0]?.clientX)\n },\n }\n\n const passiveIfSupported = passiveEventSupported()\n ? { passive: false }\n : false\n\n if (isTouchStartEvent(event)) {\n contextDocument?.addEventListener(\n 'touchmove',\n touchEvents.moveHandler,\n passiveIfSupported,\n )\n contextDocument?.addEventListener(\n 'touchend',\n touchEvents.upHandler,\n passiveIfSupported,\n )\n } else {\n contextDocument?.addEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n passiveIfSupported,\n )\n contextDocument?.addEventListener(\n 'mouseup',\n mouseEvents.upHandler,\n passiveIfSupported,\n )\n }\n\n table_setColumnResizing(column.table, (old) => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id,\n }))\n }\n}\n\n/**\n * Routes a transient column resizing updater through the table's resize handler.\n *\n * This state tracks the active drag interaction; committed widths live in\n * `columnSizing`.\n *\n * @example\n * ```ts\n * table_setColumnResizing(table, (old) => ({ ...old, deltaOffset: 12 }))\n * ```\n */\nexport function table_setColumnResizing<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<columnResizingState>,\n) {\n table.options.onColumnResizingChange?.(updater)\n}\n\n/**\n * Resets `columnResizing` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.columnResizing` when\n * it exists. Passing `true` ignores initial state and resets to the no-drag\n * default state.\n *\n * @example\n * ```ts\n * table_resetHeaderSizeInfo(table)\n * table_resetHeaderSizeInfo(table, true)\n * ```\n */\nexport function table_resetHeaderSizeInfo<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnResizing(\n table,\n defaultState\n ? getDefaultColumnResizingState()\n : cloneState(\n table.initialState.columnResizing ?? getDefaultColumnResizingState(),\n ),\n )\n}\n\nlet passiveSupported: boolean | null = null\n/**\n * Detects whether the current environment supports passive event listeners.\n *\n * Column resizing uses this to register pointer and touch listeners with\n * `passive: false` only when the environment understands passive options.\n *\n * @example\n * ```ts\n * const canUsePassiveListeners = passiveEventSupported()\n * ```\n */\nexport function passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported\n\n let supported = false\n try {\n const options = {\n get passive() {\n supported = true\n return false\n },\n }\n\n const noop = () => {}\n\n window.addEventListener('test', noop, options)\n window.removeEventListener('test', noop)\n } catch (err) {\n supported = false\n }\n passiveSupported = supported\n return passiveSupported\n}\n\n/**\n * Narrows an unknown event to a `touchstart` event.\n *\n * Column resizing uses this before reading touch coordinates and installing\n * touch-specific listeners.\n *\n * @example\n * ```ts\n * const isTouch = isTouchStartEvent(event)\n * ```\n */\nexport function isTouchStartEvent(e: unknown): e is TouchEvent {\n return (e as TouchEvent).type === 'touchstart'\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"columnResizingFeature.utils.js","names":[],"sources":["../../../src/features/column-resizing/columnResizingFeature.utils.ts"],"sourcesContent":["import {\n column_getSize,\n header_getSize,\n table_setColumnSizing,\n} from '../column-sizing/columnSizingFeature.utils'\nimport { cloneState, makeObjectMap } from '../../utils'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Header } from '../../types/Header'\nimport type { Column_Internal } from '../../types/Column'\nimport type { ColumnSizingState } from '../column-sizing/columnSizingFeature.types'\nimport type { columnResizingState } from './columnResizingFeature.types'\n\n/**\n * Creates the default transient column resizing state.\n *\n * The feature default represents no active drag interaction. Reset APIs use\n * this value when `defaultState` is `true`.\n *\n * @example\n * ```ts\n * const resizeInfo = getDefaultColumnResizingState()\n * ```\n */\nexport function getDefaultColumnResizingState(): columnResizingState {\n return {\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n }\n}\n\n/**\n * Checks whether this column can start a resize interaction.\n *\n * Both `columnDef.enableResizing` and table `enableColumnResizing` default to\n * `true`.\n *\n * @example\n * ```ts\n * const canResize = column_getCanResize(column)\n * ```\n */\nexport function column_getCanResize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n return (\n (column.columnDef.enableResizing ?? true) &&\n (column.table.options.enableColumnResizing ?? true)\n )\n}\n\n/**\n * Checks whether this column is the active column resize target.\n *\n * The value is read from `state.columnResizing.isResizingColumn`.\n *\n * @example\n * ```ts\n * const isResizing = column_getIsResizing(column)\n * ```\n */\nexport function column_getIsResizing<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n return (\n column.table.atoms.columnResizing?.get()?.isResizingColumn === column.id\n )\n}\n\n/**\n * Creates the pointer/touch start handler for resizing a header.\n *\n * The handler records starting sizes for all leaf headers, tracks drag deltas,\n * writes transient resize info, and commits column sizes on change or drag end\n * depending on `columnResizeMode`.\n *\n * @example\n * ```ts\n * const onMouseDown = header_getResizeHandler(header)\n * ```\n */\nexport function header_getResizeHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(header: Header<TFeatures, TData, TValue>, _contextDocument?: Document) {\n const column = header.table.getColumn(header.column.id)!\n const canResize = column_getCanResize(column)\n\n return (event: unknown) => {\n if (!canResize) {\n return\n }\n\n ;(event as any).persist?.()\n\n if (isTouchStartEvent(event)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (event.touches.length > 1) {\n return\n }\n }\n\n const startSize = header_getSize(header)\n\n const columnSizingStart: Array<[string, number]> = header\n .getLeafHeaders()\n .map((leafHeader) => [\n leafHeader.column.id,\n column_getSize(leafHeader.column),\n ])\n\n const clientX = isTouchStartEvent(event)\n ? Math.round(event.touches[0]!.clientX)\n : (event as MouseEvent).clientX\n\n const newColumnSizing: ColumnSizingState = makeObjectMap()\n\n const updateOffset = (eventType: 'move' | 'end', clientXPos?: number) => {\n if (typeof clientXPos !== 'number') {\n return\n }\n\n const table = column.table\n const isCommit =\n table.options.columnResizeMode === 'onChange' || eventType === 'end'\n\n // one notification flush per tick instead of two\n table._reactivity.batch(() => {\n table_setColumnResizing(table, (old) => {\n const deltaDirection =\n table.options.columnResizeDirection === 'rtl' ? -1 : 1\n const deltaOffset =\n (clientXPos - (old.startOffset ?? 0)) * deltaDirection\n const startSize = old.startSize ?? 0\n const deltaPercentage = Math.max(\n startSize > 0 ? deltaOffset / startSize : 0,\n -0.999999,\n )\n\n // new sizes are only read at commit and are recomputed from\n // absolute positions each time, so skip them on onEnd-mode moves\n if (isCommit) {\n const columnSizingStart = old.columnSizingStart\n for (let i = 0; i < columnSizingStart.length; i++) {\n const entry = columnSizingStart[i]!\n const headerSize = entry[1]\n newColumnSizing[entry[0]] =\n Math.round(\n Math.max(\n headerSize > 0\n ? headerSize + headerSize * deltaPercentage\n : deltaOffset / columnSizingStart.length,\n 0,\n ) * 100,\n ) / 100\n }\n }\n\n return {\n ...old,\n deltaOffset,\n deltaPercentage,\n }\n })\n\n if (isCommit) {\n table_setColumnSizing(table, (old) =>\n Object.assign(makeObjectMap<number>(), old, newColumnSizing),\n )\n }\n })\n }\n\n // Pointer devices can report at several times the display refresh rate,\n // and every update between frames is overwritten by the next one. Apply\n // the first move of a frame immediately, then coalesce the rest into one\n // update per animation frame.\n let moveRafId: number | null = null\n let hasPendingMove = false\n let latestMoveX: number | undefined\n\n const flushMove = () => {\n if (hasPendingMove) {\n hasPendingMove = false\n updateOffset('move', latestMoveX)\n moveRafId = requestAnimationFrame(flushMove)\n } else {\n moveRafId = null\n }\n }\n\n const onMove = (clientXPos?: number) => {\n latestMoveX = clientXPos\n if (typeof requestAnimationFrame !== 'function') {\n updateOffset('move', clientXPos)\n return\n }\n if (moveRafId !== null) {\n hasPendingMove = true\n return\n }\n updateOffset('move', clientXPos)\n moveRafId = requestAnimationFrame(flushMove)\n }\n\n const onEnd = (clientXPos?: number) => {\n if (moveRafId !== null) {\n cancelAnimationFrame(moveRafId)\n moveRafId = null\n hasPendingMove = false\n }\n\n // batch the 'end' commit and the reset into one notification flush\n column.table._reactivity.batch(() => {\n // touchend events carry no touch position, so fall back to the last\n // observed move position for the final commit\n updateOffset('end', clientXPos ?? latestMoveX)\n\n table_setColumnResizing(column.table, (old) => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: [],\n }))\n })\n }\n\n const contextDocument =\n _contextDocument || typeof document !== 'undefined' ? document : null\n\n const mouseEvents = {\n moveHandler: (e: MouseEvent) => onMove(e.clientX),\n upHandler: (e: MouseEvent) => {\n contextDocument?.removeEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n )\n contextDocument?.removeEventListener('mouseup', mouseEvents.upHandler)\n onEnd(e.clientX)\n },\n }\n\n const touchEvents = {\n moveHandler: (touchEvent: TouchEvent) => {\n if (touchEvent.cancelable) {\n touchEvent.preventDefault()\n touchEvent.stopPropagation()\n }\n onMove(touchEvent.touches[0]!.clientX)\n return false\n },\n upHandler: (e: TouchEvent) => {\n contextDocument?.removeEventListener(\n 'touchmove',\n touchEvents.moveHandler,\n )\n contextDocument?.removeEventListener('touchend', touchEvents.upHandler)\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onEnd(e.touches[0]?.clientX)\n },\n }\n\n const passiveIfSupported = passiveEventSupported()\n ? { passive: false }\n : false\n\n if (isTouchStartEvent(event)) {\n contextDocument?.addEventListener(\n 'touchmove',\n touchEvents.moveHandler,\n passiveIfSupported,\n )\n contextDocument?.addEventListener(\n 'touchend',\n touchEvents.upHandler,\n passiveIfSupported,\n )\n } else {\n contextDocument?.addEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n passiveIfSupported,\n )\n contextDocument?.addEventListener(\n 'mouseup',\n mouseEvents.upHandler,\n passiveIfSupported,\n )\n }\n\n table_setColumnResizing(column.table, (old) => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id,\n }))\n }\n}\n\n/**\n * Routes a transient column resizing updater through the table's resize handler.\n *\n * This state tracks the active drag interaction; committed widths live in\n * `columnSizing`.\n *\n * @example\n * ```ts\n * table_setColumnResizing(table, (old) => ({ ...old, deltaOffset: 12 }))\n * ```\n */\nexport function table_setColumnResizing<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<columnResizingState>,\n) {\n table.options.onColumnResizingChange?.(updater)\n}\n\n/**\n * Resets `columnResizing` to the configured initial state or feature default.\n *\n * With no argument, the reset clones `table.initialState.columnResizing` when\n * it exists. Passing `true` ignores initial state and resets to the no-drag\n * default state.\n *\n * @example\n * ```ts\n * table_resetHeaderSizeInfo(table)\n * table_resetHeaderSizeInfo(table, true)\n * ```\n */\nexport function table_resetHeaderSizeInfo<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnResizing(\n table,\n defaultState\n ? getDefaultColumnResizingState()\n : cloneState(\n table.initialState.columnResizing ?? getDefaultColumnResizingState(),\n ),\n )\n}\n\nlet passiveSupported: boolean | null = null\n/**\n * Detects whether the current environment supports passive event listeners.\n *\n * Column resizing uses this to register pointer and touch listeners with\n * `passive: false` only when the environment understands passive options.\n *\n * @example\n * ```ts\n * const canUsePassiveListeners = passiveEventSupported()\n * ```\n */\nexport function passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported\n\n let supported = false\n try {\n const options = {\n get passive() {\n supported = true\n return false\n },\n }\n\n const noop = () => {}\n\n window.addEventListener('test', noop, options)\n window.removeEventListener('test', noop)\n } catch (err) {\n supported = false\n }\n passiveSupported = supported\n return passiveSupported\n}\n\n/**\n * Narrows an unknown event to a `touchstart` event.\n *\n * Column resizing uses this before reading touch coordinates and installing\n * touch-specific listeners.\n *\n * @example\n * ```ts\n * const isTouch = isTouchStartEvent(event)\n * ```\n */\nexport function isTouchStartEvent(e: unknown): e is TouchEvent {\n return (e as TouchEvent).type === 'touchstart'\n}\n"],"mappings":"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"}
|