@tanstack/table-core 9.0.0-alpha.34 → 9.0.0-alpha.37
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/core/columns/constructColumn.cjs.map +1 -1
- package/dist/core/columns/constructColumn.js.map +1 -1
- package/dist/core/columns/coreColumnsFeature.utils.cjs.map +1 -1
- package/dist/core/columns/coreColumnsFeature.utils.js.map +1 -1
- package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
- package/dist/core/headers/buildHeaderGroups.js.map +1 -1
- package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
- package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
- package/dist/core/row-models/createCoreRowModel.cjs.map +1 -1
- package/dist/core/row-models/createCoreRowModel.js.map +1 -1
- package/dist/core/rows/constructRow.cjs.map +1 -1
- package/dist/core/rows/constructRow.js.map +1 -1
- package/dist/core/table/constructTable.cjs +2 -1
- package/dist/core/table/constructTable.cjs.map +1 -1
- package/dist/core/table/constructTable.js +2 -1
- package/dist/core/table/constructTable.js.map +1 -1
- package/dist/core/table/coreTablesFeature.utils.cjs +1 -1
- package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
- package/dist/core/table/coreTablesFeature.utils.js +2 -2
- package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
- package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
- package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -1
- package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
- package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
- package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
- package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +2 -2
- package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.utils.js +3 -3
- package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
- package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
- package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
- package/dist/features/column-filtering/filterRowsUtils.cjs.map +1 -1
- package/dist/features/column-filtering/filterRowsUtils.js.map +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +2 -2
- package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.utils.js +3 -3
- package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +1 -1
- package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
- package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.utils.cjs +3 -2
- package/dist/features/column-ordering/columnOrderingFeature.utils.cjs.map +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.utils.js +3 -2
- package/dist/features/column-ordering/columnOrderingFeature.utils.js.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.utils.cjs +3 -3
- package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.utils.js +4 -4
- package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
- package/dist/features/column-resizing/columnResizingFeature.utils.cjs +4 -3
- package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +1 -1
- package/dist/features/column-resizing/columnResizingFeature.utils.js +4 -3
- package/dist/features/column-resizing/columnResizingFeature.utils.js.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.utils.cjs +4 -4
- package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.utils.js +5 -5
- package/dist/features/column-sizing/columnSizingFeature.utils.js.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +2 -2
- package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.utils.js +3 -3
- package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.utils.cjs +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.utils.js +2 -2
- package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
- package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -1
- package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -1
- package/dist/features/row-expanding/rowExpandingFeature.utils.cjs +3 -2
- package/dist/features/row-expanding/rowExpandingFeature.utils.cjs.map +1 -1
- package/dist/features/row-expanding/rowExpandingFeature.utils.js +4 -2
- package/dist/features/row-expanding/rowExpandingFeature.utils.js.map +1 -1
- package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -1
- package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -1
- package/dist/features/row-pagination/rowPaginationFeature.utils.cjs +19 -13
- package/dist/features/row-pagination/rowPaginationFeature.utils.cjs.map +1 -1
- package/dist/features/row-pagination/rowPaginationFeature.utils.js +20 -14
- package/dist/features/row-pagination/rowPaginationFeature.utils.js.map +1 -1
- package/dist/features/row-pinning/rowPinningFeature.utils.cjs +3 -3
- package/dist/features/row-pinning/rowPinningFeature.utils.cjs.map +1 -1
- package/dist/features/row-pinning/rowPinningFeature.utils.js +4 -4
- package/dist/features/row-pinning/rowPinningFeature.utils.js.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.utils.cjs +3 -2
- package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.utils.js +4 -2
- package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
- package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
- package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
- package/dist/features/row-sorting/rowSortingFeature.utils.cjs +2 -2
- package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
- package/dist/features/row-sorting/rowSortingFeature.utils.js +3 -3
- package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
- package/dist/flex-render.cjs +19 -0
- package/dist/flex-render.cjs.map +1 -0
- package/dist/flex-render.d.cts +24 -0
- package/dist/flex-render.d.ts +24 -0
- package/dist/flex-render.js +16 -0
- package/dist/flex-render.js.map +1 -0
- package/dist/fns/filterFns.cjs.map +1 -1
- package/dist/fns/filterFns.js.map +1 -1
- package/dist/index.cjs +1 -2
- package/dist/index.d.cts +2 -3
- package/dist/index.d.ts +2 -3
- package/dist/index.js +2 -3
- package/dist/utils.cjs +12 -0
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +2 -1
- package/dist/utils.d.ts +2 -1
- package/dist/utils.js +12 -1
- package/dist/utils.js.map +1 -1
- package/package.json +5 -1
- package/src/core/columns/coreColumnsFeature.utils.ts +1 -1
- package/src/core/row-models/createCoreRowModel.ts +1 -1
- package/src/core/rows/constructRow.ts +1 -1
- package/src/core/table/constructTable.ts +4 -5
- package/src/core/table/coreTablesFeature.utils.ts +2 -2
- package/src/features/column-faceting/createFacetedMinMaxValues.ts +1 -1
- package/src/features/column-faceting/createFacetedRowModel.ts +1 -1
- package/src/features/column-faceting/createFacetedUniqueValues.ts +1 -1
- package/src/features/column-filtering/columnFilteringFeature.utils.ts +8 -13
- package/src/features/column-filtering/createFilteredRowModel.ts +1 -1
- package/src/features/column-grouping/columnGroupingFeature.utils.ts +7 -7
- package/src/features/column-grouping/createGroupedRowModel.ts +1 -1
- package/src/features/column-ordering/columnOrderingFeature.utils.ts +3 -2
- package/src/features/column-pinning/columnPinningFeature.utils.ts +6 -4
- package/src/features/column-resizing/columnResizingFeature.utils.ts +6 -3
- package/src/features/column-sizing/columnSizingFeature.utils.ts +5 -5
- package/src/features/column-visibility/columnVisibilityFeature.utils.ts +3 -3
- package/src/features/global-filtering/globalFilteringFeature.utils.ts +4 -5
- package/src/features/row-expanding/createExpandedRowModel.ts +1 -1
- package/src/features/row-expanding/rowExpandingFeature.utils.ts +4 -3
- package/src/features/row-pagination/createPaginatedRowModel.ts +1 -1
- package/src/features/row-pagination/rowPaginationFeature.utils.ts +20 -16
- package/src/features/row-pinning/rowPinningFeature.utils.ts +6 -4
- package/src/features/row-selection/rowSelectionFeature.utils.ts +5 -6
- package/src/features/row-sorting/createSortedRowModel.ts +3 -4
- package/src/features/row-sorting/rowSortingFeature.utils.ts +7 -9
- package/src/flex-render.ts +60 -0
- package/src/index.ts +0 -1
- package/src/utils.ts +24 -0
- package/dist/helpers/tableHelper.cjs +0 -21
- package/dist/helpers/tableHelper.cjs.map +0 -1
- package/dist/helpers/tableHelper.d.cts +0 -30
- package/dist/helpers/tableHelper.d.ts +0 -30
- package/dist/helpers/tableHelper.js +0 -21
- package/dist/helpers/tableHelper.js.map +0 -1
- package/src/helpers/tableHelper.ts +0 -61
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnOrderingFeature.utils.cjs","names":["table_getPinnedVisibleLeafColumns"],"sources":["../../../src/features/column-ordering/columnOrderingFeature.utils.ts"],"sourcesContent":["import { table_getPinnedVisibleLeafColumns } from '../column-pinning/columnPinningFeature.utils'\nimport type { GroupingState } from '../column-grouping/columnGroupingFeature.types'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Column_Internal } from '../../types/Column'\nimport type { ColumnPinningPosition } from '../column-pinning/columnPinningFeature.types'\nimport type { ColumnOrderState } from './columnOrderingFeature.types'\n\nexport function getDefaultColumnOrderState(): ColumnOrderState {\n return
|
|
1
|
+
{"version":3,"file":"columnOrderingFeature.utils.cjs","names":["table_getPinnedVisibleLeafColumns","cloneState"],"sources":["../../../src/features/column-ordering/columnOrderingFeature.utils.ts"],"sourcesContent":["import { table_getPinnedVisibleLeafColumns } from '../column-pinning/columnPinningFeature.utils'\nimport { cloneState } from '../../utils'\nimport type { GroupingState } from '../column-grouping/columnGroupingFeature.types'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Column_Internal } from '../../types/Column'\nimport type { ColumnPinningPosition } from '../column-pinning/columnPinningFeature.types'\nimport type { ColumnOrderState } from './columnOrderingFeature.types'\n\nexport function getDefaultColumnOrderState(): ColumnOrderState {\n return []\n}\n\nexport function column_getIndex<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position?: ColumnPinningPosition | 'center',\n) {\n const columns = table_getPinnedVisibleLeafColumns(column.table, position)\n return columns.findIndex((d) => d.id === column.id)\n}\n\nexport function column_getIsFirstColumn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position?: ColumnPinningPosition | 'center',\n) {\n const columns = table_getPinnedVisibleLeafColumns(column.table, position)\n return columns[0]?.id === column.id\n}\n\nexport function column_getIsLastColumn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position?: ColumnPinningPosition | 'center',\n) {\n const columns = table_getPinnedVisibleLeafColumns(column.table, position)\n return columns[columns.length - 1]?.id === column.id\n}\n\nexport function table_setColumnOrder<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, updater: Updater<ColumnOrderState>) {\n table.options.onColumnOrderChange?.(updater)\n}\n\nexport function table_resetColumnOrder<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnOrder(\n table,\n defaultState ? [] : cloneState(table.initialState.columnOrder ?? []),\n )\n}\n\nexport function table_getOrderColumnsFn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const columnOrder = table.atoms.columnOrder?.get()\n\n return (columns: Array<Column_Internal<TFeatures, TData, unknown>>) => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns: Array<Column_Internal<TFeatures, TData, unknown>> = []\n\n // If there is no order, return the normal columns\n if (!columnOrder?.length) {\n orderedColumns = columns\n } else {\n const columnOrderCopy = [...columnOrder]\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns]\n\n // And make a new ordered array of the columns\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift()\n const foundIndex = columnsCopy.findIndex((d) => d.id === targetColumnId)\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]!)\n }\n }\n\n // If there are any columns left, add them to the end\n orderedColumns = [...orderedColumns, ...columnsCopy]\n }\n\n return orderColumns(table, orderedColumns)\n }\n}\n\nexport function orderColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n leafColumns: Array<Column_Internal<TFeatures, TData, unknown>>,\n) {\n const grouping = table.atoms.grouping?.get() ?? ([] as GroupingState)\n const { groupedColumnMode } = table.options\n\n if (!grouping.length || !groupedColumnMode) {\n return leafColumns\n }\n\n const nonGroupingColumns = leafColumns.filter(\n (col) => !grouping.includes(col.id),\n )\n\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns\n }\n\n const groupingColumns = grouping\n .map((g) => leafColumns.find((col) => col.id === g)!)\n .filter(Boolean)\n\n return [...groupingColumns, ...nonGroupingColumns]\n}\n"],"mappings":";;;;AAUA,SAAgB,6BAA+C;AAC7D,QAAO,EAAE;;AAGX,SAAgB,gBAKd,QACA,UACA;AAEA,QADgBA,qEAAkC,OAAO,OAAO,SAClD,CAAC,WAAW,MAAM,EAAE,OAAO,OAAO,GAAG;;AAGrD,SAAgB,wBAKd,QACA,UACA;;AAEA,sBADgBA,qEAAkC,OAAO,OAAO,SAClD,CAAC,0DAAI,QAAO,OAAO;;AAGnC,SAAgB,uBAKd,QACA,UACA;;CACA,MAAM,UAAUA,qEAAkC,OAAO,OAAO,SAAS;AACzE,qBAAO,QAAQ,QAAQ,SAAS,wDAAI,QAAO,OAAO;;AAGpD,SAAgB,qBAGd,OAAyC,SAAoC;;AAC7E,kDAAM,SAAQ,gHAAsB,QAAQ;;AAG9C,SAAgB,uBAGd,OAAyC,cAAwB;AACjE,sBACE,OACA,eAAe,EAAE,GAAGC,yBAAW,MAAM,aAAa,eAAe,EAAE,CAAC,CACrE;;AAGH,SAAgB,wBAGd,OAAyC;;CACzC,MAAM,uCAAc,MAAM,MAAM,2FAAa,KAAK;AAElD,SAAQ,YAA+D;EAGrE,IAAI,iBAAoE,EAAE;AAG1E,MAAI,4DAAC,YAAa,QAChB,kBAAiB;OACZ;GACL,MAAM,kBAAkB,CAAC,GAAG,YAAY;GAGxC,MAAM,cAAc,CAAC,GAAG,QAAQ;AAKhC,UAAO,YAAY,UAAU,gBAAgB,QAAQ;IACnD,MAAM,iBAAiB,gBAAgB,OAAO;IAC9C,MAAM,aAAa,YAAY,WAAW,MAAM,EAAE,OAAO,eAAe;AACxE,QAAI,aAAa,GACf,gBAAe,KAAK,YAAY,OAAO,YAAY,EAAE,CAAC,GAAI;;AAK9D,oBAAiB,CAAC,GAAG,gBAAgB,GAAG,YAAY;;AAGtD,SAAO,aAAa,OAAO,eAAe;;;AAI9C,SAAgB,aAId,OACA,aACA;;CACA,MAAM,qCAAW,MAAM,MAAM,wFAAU,KAAK,KAAK,EAAE;CACnD,MAAM,EAAE,sBAAsB,MAAM;AAEpC,KAAI,CAAC,SAAS,UAAU,CAAC,kBACvB,QAAO;CAGT,MAAM,qBAAqB,YAAY,QACpC,QAAQ,CAAC,SAAS,SAAS,IAAI,GAAG,CACpC;AAED,KAAI,sBAAsB,SACxB,QAAO;AAOT,QAAO,CAAC,GAJgB,SACrB,KAAK,MAAM,YAAY,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAE,CACpD,OAAO,QAEgB,EAAE,GAAG,mBAAmB"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { cloneState } from "../../utils.js";
|
|
1
2
|
import { table_getPinnedVisibleLeafColumns } from "../column-pinning/columnPinningFeature.utils.js";
|
|
2
3
|
|
|
3
4
|
//#region src/features/column-ordering/columnOrderingFeature.utils.ts
|
|
4
5
|
function getDefaultColumnOrderState() {
|
|
5
|
-
return
|
|
6
|
+
return [];
|
|
6
7
|
}
|
|
7
8
|
function column_getIndex(column, position) {
|
|
8
9
|
return table_getPinnedVisibleLeafColumns(column.table, position).findIndex((d) => d.id === column.id);
|
|
@@ -21,7 +22,7 @@ function table_setColumnOrder(table, updater) {
|
|
|
21
22
|
(_table$options$onColu = (_table$options = table.options).onColumnOrderChange) === null || _table$options$onColu === void 0 || _table$options$onColu.call(_table$options, updater);
|
|
22
23
|
}
|
|
23
24
|
function table_resetColumnOrder(table, defaultState) {
|
|
24
|
-
table_setColumnOrder(table, defaultState ? [] : table.initialState.columnOrder ?? []);
|
|
25
|
+
table_setColumnOrder(table, defaultState ? [] : cloneState(table.initialState.columnOrder ?? []));
|
|
25
26
|
}
|
|
26
27
|
function table_getOrderColumnsFn(table) {
|
|
27
28
|
var _table$atoms$columnOr;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnOrderingFeature.utils.js","names":[],"sources":["../../../src/features/column-ordering/columnOrderingFeature.utils.ts"],"sourcesContent":["import { table_getPinnedVisibleLeafColumns } from '../column-pinning/columnPinningFeature.utils'\nimport type { GroupingState } from '../column-grouping/columnGroupingFeature.types'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Column_Internal } from '../../types/Column'\nimport type { ColumnPinningPosition } from '../column-pinning/columnPinningFeature.types'\nimport type { ColumnOrderState } from './columnOrderingFeature.types'\n\nexport function getDefaultColumnOrderState(): ColumnOrderState {\n return
|
|
1
|
+
{"version":3,"file":"columnOrderingFeature.utils.js","names":[],"sources":["../../../src/features/column-ordering/columnOrderingFeature.utils.ts"],"sourcesContent":["import { table_getPinnedVisibleLeafColumns } from '../column-pinning/columnPinningFeature.utils'\nimport { cloneState } from '../../utils'\nimport type { GroupingState } from '../column-grouping/columnGroupingFeature.types'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Column_Internal } from '../../types/Column'\nimport type { ColumnPinningPosition } from '../column-pinning/columnPinningFeature.types'\nimport type { ColumnOrderState } from './columnOrderingFeature.types'\n\nexport function getDefaultColumnOrderState(): ColumnOrderState {\n return []\n}\n\nexport function column_getIndex<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position?: ColumnPinningPosition | 'center',\n) {\n const columns = table_getPinnedVisibleLeafColumns(column.table, position)\n return columns.findIndex((d) => d.id === column.id)\n}\n\nexport function column_getIsFirstColumn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position?: ColumnPinningPosition | 'center',\n) {\n const columns = table_getPinnedVisibleLeafColumns(column.table, position)\n return columns[0]?.id === column.id\n}\n\nexport function column_getIsLastColumn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position?: ColumnPinningPosition | 'center',\n) {\n const columns = table_getPinnedVisibleLeafColumns(column.table, position)\n return columns[columns.length - 1]?.id === column.id\n}\n\nexport function table_setColumnOrder<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, updater: Updater<ColumnOrderState>) {\n table.options.onColumnOrderChange?.(updater)\n}\n\nexport function table_resetColumnOrder<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnOrder(\n table,\n defaultState ? [] : cloneState(table.initialState.columnOrder ?? []),\n )\n}\n\nexport function table_getOrderColumnsFn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const columnOrder = table.atoms.columnOrder?.get()\n\n return (columns: Array<Column_Internal<TFeatures, TData, unknown>>) => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns: Array<Column_Internal<TFeatures, TData, unknown>> = []\n\n // If there is no order, return the normal columns\n if (!columnOrder?.length) {\n orderedColumns = columns\n } else {\n const columnOrderCopy = [...columnOrder]\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns]\n\n // And make a new ordered array of the columns\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift()\n const foundIndex = columnsCopy.findIndex((d) => d.id === targetColumnId)\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]!)\n }\n }\n\n // If there are any columns left, add them to the end\n orderedColumns = [...orderedColumns, ...columnsCopy]\n }\n\n return orderColumns(table, orderedColumns)\n }\n}\n\nexport function orderColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n leafColumns: Array<Column_Internal<TFeatures, TData, unknown>>,\n) {\n const grouping = table.atoms.grouping?.get() ?? ([] as GroupingState)\n const { groupedColumnMode } = table.options\n\n if (!grouping.length || !groupedColumnMode) {\n return leafColumns\n }\n\n const nonGroupingColumns = leafColumns.filter(\n (col) => !grouping.includes(col.id),\n )\n\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns\n }\n\n const groupingColumns = grouping\n .map((g) => leafColumns.find((col) => col.id === g)!)\n .filter(Boolean)\n\n return [...groupingColumns, ...nonGroupingColumns]\n}\n"],"mappings":";;;;AAUA,SAAgB,6BAA+C;AAC7D,QAAO,EAAE;;AAGX,SAAgB,gBAKd,QACA,UACA;AAEA,QADgB,kCAAkC,OAAO,OAAO,SAClD,CAAC,WAAW,MAAM,EAAE,OAAO,OAAO,GAAG;;AAGrD,SAAgB,wBAKd,QACA,UACA;;AAEA,sBADgB,kCAAkC,OAAO,OAAO,SAClD,CAAC,0DAAI,QAAO,OAAO;;AAGnC,SAAgB,uBAKd,QACA,UACA;;CACA,MAAM,UAAU,kCAAkC,OAAO,OAAO,SAAS;AACzE,qBAAO,QAAQ,QAAQ,SAAS,wDAAI,QAAO,OAAO;;AAGpD,SAAgB,qBAGd,OAAyC,SAAoC;;AAC7E,kDAAM,SAAQ,gHAAsB,QAAQ;;AAG9C,SAAgB,uBAGd,OAAyC,cAAwB;AACjE,sBACE,OACA,eAAe,EAAE,GAAG,WAAW,MAAM,aAAa,eAAe,EAAE,CAAC,CACrE;;AAGH,SAAgB,wBAGd,OAAyC;;CACzC,MAAM,uCAAc,MAAM,MAAM,2FAAa,KAAK;AAElD,SAAQ,YAA+D;EAGrE,IAAI,iBAAoE,EAAE;AAG1E,MAAI,4DAAC,YAAa,QAChB,kBAAiB;OACZ;GACL,MAAM,kBAAkB,CAAC,GAAG,YAAY;GAGxC,MAAM,cAAc,CAAC,GAAG,QAAQ;AAKhC,UAAO,YAAY,UAAU,gBAAgB,QAAQ;IACnD,MAAM,iBAAiB,gBAAgB,OAAO;IAC9C,MAAM,aAAa,YAAY,WAAW,MAAM,EAAE,OAAO,eAAe;AACxE,QAAI,aAAa,GACf,gBAAe,KAAK,YAAY,OAAO,YAAY,EAAE,CAAC,GAAI;;AAK9D,oBAAiB,CAAC,GAAG,gBAAgB,GAAG,YAAY;;AAGtD,SAAO,aAAa,OAAO,eAAe;;;AAI9C,SAAgB,aAId,OACA,aACA;;CACA,MAAM,qCAAW,MAAM,MAAM,wFAAU,KAAK,KAAK,EAAE;CACnD,MAAM,EAAE,sBAAsB,MAAM;AAEpC,KAAI,CAAC,SAAS,UAAU,CAAC,kBACvB,QAAO;CAGT,MAAM,qBAAqB,YAAY,QACpC,QAAQ,CAAC,SAAS,SAAS,IAAI,GAAG,CACpC;AAED,KAAI,sBAAsB,SACxB,QAAO;AAOT,QAAO,CAAC,GAJgB,SACrB,KAAK,MAAM,YAAY,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAE,CACpD,OAAO,QAEgB,EAAE,GAAG,mBAAmB"}
|
|
@@ -4,10 +4,10 @@ const require_buildHeaderGroups = require('../../core/headers/buildHeaderGroups.
|
|
|
4
4
|
|
|
5
5
|
//#region src/features/column-pinning/columnPinningFeature.utils.ts
|
|
6
6
|
function getDefaultColumnPinningState() {
|
|
7
|
-
return
|
|
7
|
+
return {
|
|
8
8
|
left: [],
|
|
9
9
|
right: []
|
|
10
|
-
}
|
|
10
|
+
};
|
|
11
11
|
}
|
|
12
12
|
function column_pin(column, position) {
|
|
13
13
|
const columnIds = column.getLeafColumns().map((d) => d.id).filter(Boolean);
|
|
@@ -74,7 +74,7 @@ function table_setColumnPinning(table, updater) {
|
|
|
74
74
|
(_table$options$onColu = (_table$options = table.options).onColumnPinningChange) === null || _table$options$onColu === void 0 || _table$options$onColu.call(_table$options, updater);
|
|
75
75
|
}
|
|
76
76
|
function table_resetColumnPinning(table, defaultState) {
|
|
77
|
-
table_setColumnPinning(table, defaultState ? getDefaultColumnPinningState() : table.initialState.columnPinning ?? getDefaultColumnPinningState());
|
|
77
|
+
table_setColumnPinning(table, defaultState ? getDefaultColumnPinningState() : require_utils.cloneState(table.initialState.columnPinning ?? getDefaultColumnPinningState()));
|
|
78
78
|
}
|
|
79
79
|
function table_getIsSomeColumnsPinned(table, position) {
|
|
80
80
|
var _table$atoms$columnPi;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnPinningFeature.utils.cjs","names":["callMemoOrStaticFn","row_getAllVisibleCells","table_getVisibleLeafColumns","buildHeaderGroups","column_getIsVisible"],"sources":["../../../src/features/column-pinning/columnPinningFeature.utils.ts"],"sourcesContent":["import {\n column_getIsVisible,\n row_getAllVisibleCells,\n table_getVisibleLeafColumns,\n} from '../column-visibility/columnVisibilityFeature.utils'\nimport { buildHeaderGroups } from '../../core/headers/buildHeaderGroups'\nimport { callMemoOrStaticFn } from '../../utils'\nimport type { HeaderGroup } from '../../types/HeaderGroup'\nimport type { Cell } from '../../types/Cell'\nimport type { Row } from '../../types/Row'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Column_Internal } from '../../types/Column'\nimport type {\n ColumnPinningPosition,\n ColumnPinningState,\n} from './columnPinningFeature.types'\n\n// State\n\nexport function getDefaultColumnPinningState(): ColumnPinningState {\n return structuredClone({\n left: [],\n right: [],\n })\n}\n\n// Column APIs\n\nexport function column_pin<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position: ColumnPinningPosition,\n) {\n const columnIds = column\n .getLeafColumns()\n .map((d) => d.id)\n .filter(Boolean)\n\n table_setColumnPinning(column.table, (old) => {\n if (position === 'right') {\n return {\n left: old.left.filter((d) => !columnIds.includes(d)),\n right: [\n ...old.right.filter((d) => !columnIds.includes(d)),\n ...columnIds,\n ],\n }\n }\n\n if (position === 'left') {\n return {\n left: [...old.left.filter((d) => !columnIds.includes(d)), ...columnIds],\n right: old.right.filter((d) => !columnIds.includes(d)),\n }\n }\n\n return {\n left: old.left.filter((d) => !columnIds.includes(d)),\n right: old.right.filter((d) => !columnIds.includes(d)),\n }\n })\n}\n\nexport function column_getCanPin<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const leafColumns = column.getLeafColumns() as Array<\n Column_Internal<TFeatures, TData, TValue>\n >\n\n return leafColumns.some(\n (leafColumn) =>\n (leafColumn.columnDef.enablePinning ?? true) &&\n (column.table.options.enableColumnPinning ?? true),\n )\n}\n\nexport function column_getIsPinned<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n): ColumnPinningPosition | false {\n const leafColumnIds = column.getLeafColumns().map((d) => d.id)\n\n const { left, right } =\n column.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n\n const isLeft = leafColumnIds.some((d) => left.includes(d))\n const isRight = leafColumnIds.some((d) => right.includes(d))\n\n return isLeft ? 'left' : isRight ? 'right' : false\n}\n\nexport function column_getPinnedIndex<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const position = column_getIsPinned(column)\n\n return position\n ? (column.table.atoms.columnPinning?.get()?.[position].indexOf(column.id) ??\n -1)\n : 0\n}\n\n// Row APIs\n\nexport function row_getCenterVisibleCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const allCells = callMemoOrStaticFn(\n row,\n 'getAllVisibleCells',\n row_getAllVisibleCells,\n )\n const { left, right } =\n row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leftAndRight: Array<string> = [...left, ...right]\n return allCells.filter((d) => !leftAndRight.includes(d.column.id))\n}\n\nexport function row_getLeftVisibleCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): Array<Cell<TFeatures, TData, unknown>> {\n const allCells = callMemoOrStaticFn(\n row,\n 'getAllVisibleCells',\n row_getAllVisibleCells,\n )\n const { left } =\n row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const cells = left\n .map((columnId) => allCells.find((cell) => cell.column.id === columnId)!)\n .filter(Boolean)\n // Assign position property directly to preserve prototype chain\n cells.forEach((cell) => {\n cell.position = 'left'\n })\n return cells as any\n}\n\nexport function row_getRightVisibleCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const allCells = callMemoOrStaticFn(\n row,\n 'getAllVisibleCells',\n row_getAllVisibleCells,\n )\n const { right } =\n row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const cells = right\n .map((columnId) => allCells.find((cell) => cell.column.id === columnId)!)\n .filter(Boolean)\n // Assign position property directly to preserve prototype chain\n cells.forEach((cell) => {\n cell.position = 'right'\n })\n return cells as any\n}\n\n// Table APIs\n\nexport function table_setColumnPinning<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<ColumnPinningState>,\n) {\n table.options.onColumnPinningChange?.(updater)\n}\n\nexport function table_resetColumnPinning<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnPinning(\n table,\n defaultState\n ? getDefaultColumnPinningState()\n : (table.initialState.columnPinning ?? getDefaultColumnPinningState()),\n )\n}\n\nexport function table_getIsSomeColumnsPinned<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, position?: ColumnPinningPosition) {\n const pinningState = table.atoms.columnPinning?.get()\n\n if (!position) {\n return Boolean(pinningState?.left.length || pinningState?.right.length)\n }\n return Boolean(pinningState?.[position].length)\n}\n\n// header groups\n\nexport function table_getLeftHeaderGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const allColumns = table.getAllColumns()\n const leafColumns = callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n ) as Array<Column_Internal<TFeatures, TData, unknown>>\n const { left } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n\n const orderedLeafColumns = left\n .map((columnId) => leafColumns.find((d) => d.id === columnId)!)\n .filter(Boolean)\n\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'left')\n}\n\nexport function table_getRightHeaderGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const allColumns = table.getAllColumns()\n const leafColumns = callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n ) as unknown as Array<Column_Internal<TFeatures, TData, unknown>>\n const { right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n\n const orderedLeafColumns = right\n .map((columnId) => leafColumns.find((d) => d.id === columnId)!)\n .filter(Boolean)\n\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'right')\n}\n\nexport function table_getCenterHeaderGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n): Array<HeaderGroup<TFeatures, TData>> {\n const allColumns = table.getAllColumns()\n let leafColumns = callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n ) as unknown as Array<Column_Internal<TFeatures, TData, unknown>>\n const { left, right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leftAndRight: Array<string> = [...left, ...right]\n\n leafColumns = leafColumns.filter(\n (column) => !leftAndRight.includes(column.id),\n )\n return buildHeaderGroups(allColumns, leafColumns, table, 'center')\n}\n\n// footer groups\n\nexport function table_getLeftFooterGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const headerGroups = callMemoOrStaticFn(\n table,\n 'getLeftHeaderGroups',\n table_getLeftHeaderGroups,\n )\n return [...headerGroups].reverse()\n}\n\nexport function table_getRightFooterGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const headerGroups = callMemoOrStaticFn(\n table,\n 'getRightHeaderGroups',\n table_getRightHeaderGroups,\n )\n return [...headerGroups].reverse()\n}\n\nexport function table_getCenterFooterGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const headerGroups = callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n )\n return [...headerGroups].reverse()\n}\n\n// flat headers\n\nexport function table_getLeftFlatHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const leftHeaderGroups = callMemoOrStaticFn(\n table,\n 'getLeftHeaderGroups',\n table_getLeftHeaderGroups,\n )\n return leftHeaderGroups\n .map((headerGroup) => {\n return headerGroup.headers\n })\n .flat()\n}\n\nexport function table_getRightFlatHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const rightHeaderGroups = callMemoOrStaticFn(\n table,\n 'getRightHeaderGroups',\n table_getRightHeaderGroups,\n )\n return rightHeaderGroups\n .map((headerGroup) => {\n return headerGroup.headers\n })\n .flat()\n}\n\nexport function table_getCenterFlatHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const centerHeaderGroups = callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n )\n return centerHeaderGroups\n .map((headerGroup) => {\n return headerGroup.headers\n })\n .flat()\n}\n\n// leaf headers\n\nexport function table_getLeftLeafHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getLeftFlatHeaders',\n table_getLeftFlatHeaders,\n ).filter((header) => !header.subHeaders.length)\n}\n\nexport function table_getRightLeafHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getRightFlatHeaders',\n table_getRightFlatHeaders,\n ).filter((header) => !header.subHeaders.length)\n}\n\nexport function table_getCenterLeafHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getCenterFlatHeaders',\n table_getCenterFlatHeaders,\n ).filter((header) => !header.subHeaders.length)\n}\n\n// leaf columns\n\nexport function table_getLeftLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const { left } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n return left\n .map(\n (columnId) =>\n table.getAllLeafColumns().find((column) => column.id === columnId)!,\n )\n .filter(Boolean)\n}\n\nexport function table_getRightLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const { right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n return right\n .map(\n (columnId) =>\n table.getAllLeafColumns().find((column) => column.id === columnId)!,\n )\n .filter(Boolean)\n}\n\nexport function table_getCenterLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const { left, right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leftAndRight: Array<string> = [...left, ...right]\n return table.getAllLeafColumns().filter((d) => !leftAndRight.includes(d.id))\n}\n\nexport function table_getPinnedLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n position: ColumnPinningPosition | 'center',\n) {\n return !position\n ? table.getAllLeafColumns()\n : position === 'left'\n ? callMemoOrStaticFn(\n table,\n 'getLeftLeafColumns',\n table_getLeftLeafColumns,\n )\n : position === 'right'\n ? callMemoOrStaticFn(\n table,\n 'getRightLeafColumns',\n table_getRightLeafColumns,\n )\n : callMemoOrStaticFn(\n table,\n 'getCenterLeafColumns',\n table_getCenterLeafColumns,\n )\n}\n\n// visible leaf columns\n\nexport function table_getLeftVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getLeftLeafColumns',\n table_getLeftLeafColumns,\n ).filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\nexport function table_getRightVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getRightLeafColumns',\n table_getRightLeafColumns,\n ).filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\nexport function table_getCenterVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getCenterLeafColumns',\n table_getCenterLeafColumns,\n ).filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\nexport function table_getPinnedVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n position?: ColumnPinningPosition | 'center',\n) {\n return !position\n ? callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n )\n : position === 'left'\n ? callMemoOrStaticFn(\n table,\n 'getLeftVisibleLeafColumns',\n table_getLeftVisibleLeafColumns,\n )\n : position === 'right'\n ? callMemoOrStaticFn(\n table,\n 'getRightVisibleLeafColumns',\n table_getRightVisibleLeafColumns,\n )\n : callMemoOrStaticFn(\n table,\n 'getCenterVisibleLeafColumns',\n table_getCenterVisibleLeafColumns,\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"columnPinningFeature.utils.cjs","names":["callMemoOrStaticFn","row_getAllVisibleCells","cloneState","table_getVisibleLeafColumns","buildHeaderGroups","column_getIsVisible"],"sources":["../../../src/features/column-pinning/columnPinningFeature.utils.ts"],"sourcesContent":["import {\n column_getIsVisible,\n row_getAllVisibleCells,\n table_getVisibleLeafColumns,\n} from '../column-visibility/columnVisibilityFeature.utils'\nimport { buildHeaderGroups } from '../../core/headers/buildHeaderGroups'\nimport { callMemoOrStaticFn, cloneState } from '../../utils'\nimport type { HeaderGroup } from '../../types/HeaderGroup'\nimport type { Cell } from '../../types/Cell'\nimport type { Row } from '../../types/Row'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Column_Internal } from '../../types/Column'\nimport type {\n ColumnPinningPosition,\n ColumnPinningState,\n} from './columnPinningFeature.types'\n\n// State\n\nexport function getDefaultColumnPinningState(): ColumnPinningState {\n return {\n left: [],\n right: [],\n }\n}\n\n// Column APIs\n\nexport function column_pin<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position: ColumnPinningPosition,\n) {\n const columnIds = column\n .getLeafColumns()\n .map((d) => d.id)\n .filter(Boolean)\n\n table_setColumnPinning(column.table, (old) => {\n if (position === 'right') {\n return {\n left: old.left.filter((d) => !columnIds.includes(d)),\n right: [\n ...old.right.filter((d) => !columnIds.includes(d)),\n ...columnIds,\n ],\n }\n }\n\n if (position === 'left') {\n return {\n left: [...old.left.filter((d) => !columnIds.includes(d)), ...columnIds],\n right: old.right.filter((d) => !columnIds.includes(d)),\n }\n }\n\n return {\n left: old.left.filter((d) => !columnIds.includes(d)),\n right: old.right.filter((d) => !columnIds.includes(d)),\n }\n })\n}\n\nexport function column_getCanPin<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const leafColumns = column.getLeafColumns() as Array<\n Column_Internal<TFeatures, TData, TValue>\n >\n\n return leafColumns.some(\n (leafColumn) =>\n (leafColumn.columnDef.enablePinning ?? true) &&\n (column.table.options.enableColumnPinning ?? true),\n )\n}\n\nexport function column_getIsPinned<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n): ColumnPinningPosition | false {\n const leafColumnIds = column.getLeafColumns().map((d) => d.id)\n\n const { left, right } =\n column.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n\n const isLeft = leafColumnIds.some((d) => left.includes(d))\n const isRight = leafColumnIds.some((d) => right.includes(d))\n\n return isLeft ? 'left' : isRight ? 'right' : false\n}\n\nexport function column_getPinnedIndex<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const position = column_getIsPinned(column)\n\n return position\n ? (column.table.atoms.columnPinning?.get()?.[position].indexOf(column.id) ??\n -1)\n : 0\n}\n\n// Row APIs\n\nexport function row_getCenterVisibleCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const allCells = callMemoOrStaticFn(\n row,\n 'getAllVisibleCells',\n row_getAllVisibleCells,\n )\n const { left, right } =\n row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leftAndRight: Array<string> = [...left, ...right]\n return allCells.filter((d) => !leftAndRight.includes(d.column.id))\n}\n\nexport function row_getLeftVisibleCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): Array<Cell<TFeatures, TData, unknown>> {\n const allCells = callMemoOrStaticFn(\n row,\n 'getAllVisibleCells',\n row_getAllVisibleCells,\n )\n const { left } =\n row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const cells = left\n .map((columnId) => allCells.find((cell) => cell.column.id === columnId)!)\n .filter(Boolean)\n // Assign position property directly to preserve prototype chain\n cells.forEach((cell) => {\n cell.position = 'left'\n })\n return cells as any\n}\n\nexport function row_getRightVisibleCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const allCells = callMemoOrStaticFn(\n row,\n 'getAllVisibleCells',\n row_getAllVisibleCells,\n )\n const { right } =\n row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const cells = right\n .map((columnId) => allCells.find((cell) => cell.column.id === columnId)!)\n .filter(Boolean)\n // Assign position property directly to preserve prototype chain\n cells.forEach((cell) => {\n cell.position = 'right'\n })\n return cells as any\n}\n\n// Table APIs\n\nexport function table_setColumnPinning<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<ColumnPinningState>,\n) {\n table.options.onColumnPinningChange?.(updater)\n}\n\nexport function table_resetColumnPinning<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnPinning(\n table,\n defaultState\n ? getDefaultColumnPinningState()\n : cloneState(\n table.initialState.columnPinning ?? getDefaultColumnPinningState(),\n ),\n )\n}\n\nexport function table_getIsSomeColumnsPinned<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, position?: ColumnPinningPosition) {\n const pinningState = table.atoms.columnPinning?.get()\n\n if (!position) {\n return Boolean(pinningState?.left.length || pinningState?.right.length)\n }\n return Boolean(pinningState?.[position].length)\n}\n\n// header groups\n\nexport function table_getLeftHeaderGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const allColumns = table.getAllColumns()\n const leafColumns = callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n ) as Array<Column_Internal<TFeatures, TData, unknown>>\n const { left } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n\n const orderedLeafColumns = left\n .map((columnId) => leafColumns.find((d) => d.id === columnId)!)\n .filter(Boolean)\n\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'left')\n}\n\nexport function table_getRightHeaderGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const allColumns = table.getAllColumns()\n const leafColumns = callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n ) as unknown as Array<Column_Internal<TFeatures, TData, unknown>>\n const { right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n\n const orderedLeafColumns = right\n .map((columnId) => leafColumns.find((d) => d.id === columnId)!)\n .filter(Boolean)\n\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'right')\n}\n\nexport function table_getCenterHeaderGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n): Array<HeaderGroup<TFeatures, TData>> {\n const allColumns = table.getAllColumns()\n let leafColumns = callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n ) as unknown as Array<Column_Internal<TFeatures, TData, unknown>>\n const { left, right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leftAndRight: Array<string> = [...left, ...right]\n\n leafColumns = leafColumns.filter(\n (column) => !leftAndRight.includes(column.id),\n )\n return buildHeaderGroups(allColumns, leafColumns, table, 'center')\n}\n\n// footer groups\n\nexport function table_getLeftFooterGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const headerGroups = callMemoOrStaticFn(\n table,\n 'getLeftHeaderGroups',\n table_getLeftHeaderGroups,\n )\n return [...headerGroups].reverse()\n}\n\nexport function table_getRightFooterGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const headerGroups = callMemoOrStaticFn(\n table,\n 'getRightHeaderGroups',\n table_getRightHeaderGroups,\n )\n return [...headerGroups].reverse()\n}\n\nexport function table_getCenterFooterGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const headerGroups = callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n )\n return [...headerGroups].reverse()\n}\n\n// flat headers\n\nexport function table_getLeftFlatHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const leftHeaderGroups = callMemoOrStaticFn(\n table,\n 'getLeftHeaderGroups',\n table_getLeftHeaderGroups,\n )\n return leftHeaderGroups\n .map((headerGroup) => {\n return headerGroup.headers\n })\n .flat()\n}\n\nexport function table_getRightFlatHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const rightHeaderGroups = callMemoOrStaticFn(\n table,\n 'getRightHeaderGroups',\n table_getRightHeaderGroups,\n )\n return rightHeaderGroups\n .map((headerGroup) => {\n return headerGroup.headers\n })\n .flat()\n}\n\nexport function table_getCenterFlatHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const centerHeaderGroups = callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n )\n return centerHeaderGroups\n .map((headerGroup) => {\n return headerGroup.headers\n })\n .flat()\n}\n\n// leaf headers\n\nexport function table_getLeftLeafHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getLeftFlatHeaders',\n table_getLeftFlatHeaders,\n ).filter((header) => !header.subHeaders.length)\n}\n\nexport function table_getRightLeafHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getRightFlatHeaders',\n table_getRightFlatHeaders,\n ).filter((header) => !header.subHeaders.length)\n}\n\nexport function table_getCenterLeafHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getCenterFlatHeaders',\n table_getCenterFlatHeaders,\n ).filter((header) => !header.subHeaders.length)\n}\n\n// leaf columns\n\nexport function table_getLeftLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const { left } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n return left\n .map(\n (columnId) =>\n table.getAllLeafColumns().find((column) => column.id === columnId)!,\n )\n .filter(Boolean)\n}\n\nexport function table_getRightLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const { right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n return right\n .map(\n (columnId) =>\n table.getAllLeafColumns().find((column) => column.id === columnId)!,\n )\n .filter(Boolean)\n}\n\nexport function table_getCenterLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const { left, right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leftAndRight: Array<string> = [...left, ...right]\n return table.getAllLeafColumns().filter((d) => !leftAndRight.includes(d.id))\n}\n\nexport function table_getPinnedLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n position: ColumnPinningPosition | 'center',\n) {\n return !position\n ? table.getAllLeafColumns()\n : position === 'left'\n ? callMemoOrStaticFn(\n table,\n 'getLeftLeafColumns',\n table_getLeftLeafColumns,\n )\n : position === 'right'\n ? callMemoOrStaticFn(\n table,\n 'getRightLeafColumns',\n table_getRightLeafColumns,\n )\n : callMemoOrStaticFn(\n table,\n 'getCenterLeafColumns',\n table_getCenterLeafColumns,\n )\n}\n\n// visible leaf columns\n\nexport function table_getLeftVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getLeftLeafColumns',\n table_getLeftLeafColumns,\n ).filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\nexport function table_getRightVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getRightLeafColumns',\n table_getRightLeafColumns,\n ).filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\nexport function table_getCenterVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getCenterLeafColumns',\n table_getCenterLeafColumns,\n ).filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\nexport function table_getPinnedVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n position?: ColumnPinningPosition | 'center',\n) {\n return !position\n ? callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n )\n : position === 'left'\n ? callMemoOrStaticFn(\n table,\n 'getLeftVisibleLeafColumns',\n table_getLeftVisibleLeafColumns,\n )\n : position === 'right'\n ? callMemoOrStaticFn(\n table,\n 'getRightVisibleLeafColumns',\n table_getRightVisibleLeafColumns,\n )\n : callMemoOrStaticFn(\n table,\n 'getCenterVisibleLeafColumns',\n table_getCenterVisibleLeafColumns,\n )\n}\n"],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { callMemoOrStaticFn } from "../../utils.js";
|
|
1
|
+
import { callMemoOrStaticFn, cloneState } from "../../utils.js";
|
|
2
2
|
import { column_getIsVisible, row_getAllVisibleCells, table_getVisibleLeafColumns } from "../column-visibility/columnVisibilityFeature.utils.js";
|
|
3
3
|
import { buildHeaderGroups } from "../../core/headers/buildHeaderGroups.js";
|
|
4
4
|
|
|
5
5
|
//#region src/features/column-pinning/columnPinningFeature.utils.ts
|
|
6
6
|
function getDefaultColumnPinningState() {
|
|
7
|
-
return
|
|
7
|
+
return {
|
|
8
8
|
left: [],
|
|
9
9
|
right: []
|
|
10
|
-
}
|
|
10
|
+
};
|
|
11
11
|
}
|
|
12
12
|
function column_pin(column, position) {
|
|
13
13
|
const columnIds = column.getLeafColumns().map((d) => d.id).filter(Boolean);
|
|
@@ -74,7 +74,7 @@ function table_setColumnPinning(table, updater) {
|
|
|
74
74
|
(_table$options$onColu = (_table$options = table.options).onColumnPinningChange) === null || _table$options$onColu === void 0 || _table$options$onColu.call(_table$options, updater);
|
|
75
75
|
}
|
|
76
76
|
function table_resetColumnPinning(table, defaultState) {
|
|
77
|
-
table_setColumnPinning(table, defaultState ? getDefaultColumnPinningState() : table.initialState.columnPinning ?? getDefaultColumnPinningState());
|
|
77
|
+
table_setColumnPinning(table, defaultState ? getDefaultColumnPinningState() : cloneState(table.initialState.columnPinning ?? getDefaultColumnPinningState()));
|
|
78
78
|
}
|
|
79
79
|
function table_getIsSomeColumnsPinned(table, position) {
|
|
80
80
|
var _table$atoms$columnPi;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnPinningFeature.utils.js","names":[],"sources":["../../../src/features/column-pinning/columnPinningFeature.utils.ts"],"sourcesContent":["import {\n column_getIsVisible,\n row_getAllVisibleCells,\n table_getVisibleLeafColumns,\n} from '../column-visibility/columnVisibilityFeature.utils'\nimport { buildHeaderGroups } from '../../core/headers/buildHeaderGroups'\nimport { callMemoOrStaticFn } from '../../utils'\nimport type { HeaderGroup } from '../../types/HeaderGroup'\nimport type { Cell } from '../../types/Cell'\nimport type { Row } from '../../types/Row'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Column_Internal } from '../../types/Column'\nimport type {\n ColumnPinningPosition,\n ColumnPinningState,\n} from './columnPinningFeature.types'\n\n// State\n\nexport function getDefaultColumnPinningState(): ColumnPinningState {\n return structuredClone({\n left: [],\n right: [],\n })\n}\n\n// Column APIs\n\nexport function column_pin<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position: ColumnPinningPosition,\n) {\n const columnIds = column\n .getLeafColumns()\n .map((d) => d.id)\n .filter(Boolean)\n\n table_setColumnPinning(column.table, (old) => {\n if (position === 'right') {\n return {\n left: old.left.filter((d) => !columnIds.includes(d)),\n right: [\n ...old.right.filter((d) => !columnIds.includes(d)),\n ...columnIds,\n ],\n }\n }\n\n if (position === 'left') {\n return {\n left: [...old.left.filter((d) => !columnIds.includes(d)), ...columnIds],\n right: old.right.filter((d) => !columnIds.includes(d)),\n }\n }\n\n return {\n left: old.left.filter((d) => !columnIds.includes(d)),\n right: old.right.filter((d) => !columnIds.includes(d)),\n }\n })\n}\n\nexport function column_getCanPin<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const leafColumns = column.getLeafColumns() as Array<\n Column_Internal<TFeatures, TData, TValue>\n >\n\n return leafColumns.some(\n (leafColumn) =>\n (leafColumn.columnDef.enablePinning ?? true) &&\n (column.table.options.enableColumnPinning ?? true),\n )\n}\n\nexport function column_getIsPinned<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n): ColumnPinningPosition | false {\n const leafColumnIds = column.getLeafColumns().map((d) => d.id)\n\n const { left, right } =\n column.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n\n const isLeft = leafColumnIds.some((d) => left.includes(d))\n const isRight = leafColumnIds.some((d) => right.includes(d))\n\n return isLeft ? 'left' : isRight ? 'right' : false\n}\n\nexport function column_getPinnedIndex<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const position = column_getIsPinned(column)\n\n return position\n ? (column.table.atoms.columnPinning?.get()?.[position].indexOf(column.id) ??\n -1)\n : 0\n}\n\n// Row APIs\n\nexport function row_getCenterVisibleCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const allCells = callMemoOrStaticFn(\n row,\n 'getAllVisibleCells',\n row_getAllVisibleCells,\n )\n const { left, right } =\n row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leftAndRight: Array<string> = [...left, ...right]\n return allCells.filter((d) => !leftAndRight.includes(d.column.id))\n}\n\nexport function row_getLeftVisibleCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): Array<Cell<TFeatures, TData, unknown>> {\n const allCells = callMemoOrStaticFn(\n row,\n 'getAllVisibleCells',\n row_getAllVisibleCells,\n )\n const { left } =\n row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const cells = left\n .map((columnId) => allCells.find((cell) => cell.column.id === columnId)!)\n .filter(Boolean)\n // Assign position property directly to preserve prototype chain\n cells.forEach((cell) => {\n cell.position = 'left'\n })\n return cells as any\n}\n\nexport function row_getRightVisibleCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const allCells = callMemoOrStaticFn(\n row,\n 'getAllVisibleCells',\n row_getAllVisibleCells,\n )\n const { right } =\n row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const cells = right\n .map((columnId) => allCells.find((cell) => cell.column.id === columnId)!)\n .filter(Boolean)\n // Assign position property directly to preserve prototype chain\n cells.forEach((cell) => {\n cell.position = 'right'\n })\n return cells as any\n}\n\n// Table APIs\n\nexport function table_setColumnPinning<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<ColumnPinningState>,\n) {\n table.options.onColumnPinningChange?.(updater)\n}\n\nexport function table_resetColumnPinning<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnPinning(\n table,\n defaultState\n ? getDefaultColumnPinningState()\n : (table.initialState.columnPinning ?? getDefaultColumnPinningState()),\n )\n}\n\nexport function table_getIsSomeColumnsPinned<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, position?: ColumnPinningPosition) {\n const pinningState = table.atoms.columnPinning?.get()\n\n if (!position) {\n return Boolean(pinningState?.left.length || pinningState?.right.length)\n }\n return Boolean(pinningState?.[position].length)\n}\n\n// header groups\n\nexport function table_getLeftHeaderGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const allColumns = table.getAllColumns()\n const leafColumns = callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n ) as Array<Column_Internal<TFeatures, TData, unknown>>\n const { left } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n\n const orderedLeafColumns = left\n .map((columnId) => leafColumns.find((d) => d.id === columnId)!)\n .filter(Boolean)\n\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'left')\n}\n\nexport function table_getRightHeaderGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const allColumns = table.getAllColumns()\n const leafColumns = callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n ) as unknown as Array<Column_Internal<TFeatures, TData, unknown>>\n const { right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n\n const orderedLeafColumns = right\n .map((columnId) => leafColumns.find((d) => d.id === columnId)!)\n .filter(Boolean)\n\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'right')\n}\n\nexport function table_getCenterHeaderGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n): Array<HeaderGroup<TFeatures, TData>> {\n const allColumns = table.getAllColumns()\n let leafColumns = callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n ) as unknown as Array<Column_Internal<TFeatures, TData, unknown>>\n const { left, right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leftAndRight: Array<string> = [...left, ...right]\n\n leafColumns = leafColumns.filter(\n (column) => !leftAndRight.includes(column.id),\n )\n return buildHeaderGroups(allColumns, leafColumns, table, 'center')\n}\n\n// footer groups\n\nexport function table_getLeftFooterGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const headerGroups = callMemoOrStaticFn(\n table,\n 'getLeftHeaderGroups',\n table_getLeftHeaderGroups,\n )\n return [...headerGroups].reverse()\n}\n\nexport function table_getRightFooterGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const headerGroups = callMemoOrStaticFn(\n table,\n 'getRightHeaderGroups',\n table_getRightHeaderGroups,\n )\n return [...headerGroups].reverse()\n}\n\nexport function table_getCenterFooterGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const headerGroups = callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n )\n return [...headerGroups].reverse()\n}\n\n// flat headers\n\nexport function table_getLeftFlatHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const leftHeaderGroups = callMemoOrStaticFn(\n table,\n 'getLeftHeaderGroups',\n table_getLeftHeaderGroups,\n )\n return leftHeaderGroups\n .map((headerGroup) => {\n return headerGroup.headers\n })\n .flat()\n}\n\nexport function table_getRightFlatHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const rightHeaderGroups = callMemoOrStaticFn(\n table,\n 'getRightHeaderGroups',\n table_getRightHeaderGroups,\n )\n return rightHeaderGroups\n .map((headerGroup) => {\n return headerGroup.headers\n })\n .flat()\n}\n\nexport function table_getCenterFlatHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const centerHeaderGroups = callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n )\n return centerHeaderGroups\n .map((headerGroup) => {\n return headerGroup.headers\n })\n .flat()\n}\n\n// leaf headers\n\nexport function table_getLeftLeafHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getLeftFlatHeaders',\n table_getLeftFlatHeaders,\n ).filter((header) => !header.subHeaders.length)\n}\n\nexport function table_getRightLeafHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getRightFlatHeaders',\n table_getRightFlatHeaders,\n ).filter((header) => !header.subHeaders.length)\n}\n\nexport function table_getCenterLeafHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getCenterFlatHeaders',\n table_getCenterFlatHeaders,\n ).filter((header) => !header.subHeaders.length)\n}\n\n// leaf columns\n\nexport function table_getLeftLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const { left } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n return left\n .map(\n (columnId) =>\n table.getAllLeafColumns().find((column) => column.id === columnId)!,\n )\n .filter(Boolean)\n}\n\nexport function table_getRightLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const { right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n return right\n .map(\n (columnId) =>\n table.getAllLeafColumns().find((column) => column.id === columnId)!,\n )\n .filter(Boolean)\n}\n\nexport function table_getCenterLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const { left, right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leftAndRight: Array<string> = [...left, ...right]\n return table.getAllLeafColumns().filter((d) => !leftAndRight.includes(d.id))\n}\n\nexport function table_getPinnedLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n position: ColumnPinningPosition | 'center',\n) {\n return !position\n ? table.getAllLeafColumns()\n : position === 'left'\n ? callMemoOrStaticFn(\n table,\n 'getLeftLeafColumns',\n table_getLeftLeafColumns,\n )\n : position === 'right'\n ? callMemoOrStaticFn(\n table,\n 'getRightLeafColumns',\n table_getRightLeafColumns,\n )\n : callMemoOrStaticFn(\n table,\n 'getCenterLeafColumns',\n table_getCenterLeafColumns,\n )\n}\n\n// visible leaf columns\n\nexport function table_getLeftVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getLeftLeafColumns',\n table_getLeftLeafColumns,\n ).filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\nexport function table_getRightVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getRightLeafColumns',\n table_getRightLeafColumns,\n ).filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\nexport function table_getCenterVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getCenterLeafColumns',\n table_getCenterLeafColumns,\n ).filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\nexport function table_getPinnedVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n position?: ColumnPinningPosition | 'center',\n) {\n return !position\n ? callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n )\n : position === 'left'\n ? callMemoOrStaticFn(\n table,\n 'getLeftVisibleLeafColumns',\n table_getLeftVisibleLeafColumns,\n )\n : position === 'right'\n ? callMemoOrStaticFn(\n table,\n 'getRightVisibleLeafColumns',\n table_getRightVisibleLeafColumns,\n )\n : callMemoOrStaticFn(\n table,\n 'getCenterVisibleLeafColumns',\n table_getCenterVisibleLeafColumns,\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"columnPinningFeature.utils.js","names":[],"sources":["../../../src/features/column-pinning/columnPinningFeature.utils.ts"],"sourcesContent":["import {\n column_getIsVisible,\n row_getAllVisibleCells,\n table_getVisibleLeafColumns,\n} from '../column-visibility/columnVisibilityFeature.utils'\nimport { buildHeaderGroups } from '../../core/headers/buildHeaderGroups'\nimport { callMemoOrStaticFn, cloneState } from '../../utils'\nimport type { HeaderGroup } from '../../types/HeaderGroup'\nimport type { Cell } from '../../types/Cell'\nimport type { Row } from '../../types/Row'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Column_Internal } from '../../types/Column'\nimport type {\n ColumnPinningPosition,\n ColumnPinningState,\n} from './columnPinningFeature.types'\n\n// State\n\nexport function getDefaultColumnPinningState(): ColumnPinningState {\n return {\n left: [],\n right: [],\n }\n}\n\n// Column APIs\n\nexport function column_pin<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position: ColumnPinningPosition,\n) {\n const columnIds = column\n .getLeafColumns()\n .map((d) => d.id)\n .filter(Boolean)\n\n table_setColumnPinning(column.table, (old) => {\n if (position === 'right') {\n return {\n left: old.left.filter((d) => !columnIds.includes(d)),\n right: [\n ...old.right.filter((d) => !columnIds.includes(d)),\n ...columnIds,\n ],\n }\n }\n\n if (position === 'left') {\n return {\n left: [...old.left.filter((d) => !columnIds.includes(d)), ...columnIds],\n right: old.right.filter((d) => !columnIds.includes(d)),\n }\n }\n\n return {\n left: old.left.filter((d) => !columnIds.includes(d)),\n right: old.right.filter((d) => !columnIds.includes(d)),\n }\n })\n}\n\nexport function column_getCanPin<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const leafColumns = column.getLeafColumns() as Array<\n Column_Internal<TFeatures, TData, TValue>\n >\n\n return leafColumns.some(\n (leafColumn) =>\n (leafColumn.columnDef.enablePinning ?? true) &&\n (column.table.options.enableColumnPinning ?? true),\n )\n}\n\nexport function column_getIsPinned<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n): ColumnPinningPosition | false {\n const leafColumnIds = column.getLeafColumns().map((d) => d.id)\n\n const { left, right } =\n column.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n\n const isLeft = leafColumnIds.some((d) => left.includes(d))\n const isRight = leafColumnIds.some((d) => right.includes(d))\n\n return isLeft ? 'left' : isRight ? 'right' : false\n}\n\nexport function column_getPinnedIndex<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const position = column_getIsPinned(column)\n\n return position\n ? (column.table.atoms.columnPinning?.get()?.[position].indexOf(column.id) ??\n -1)\n : 0\n}\n\n// Row APIs\n\nexport function row_getCenterVisibleCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const allCells = callMemoOrStaticFn(\n row,\n 'getAllVisibleCells',\n row_getAllVisibleCells,\n )\n const { left, right } =\n row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leftAndRight: Array<string> = [...left, ...right]\n return allCells.filter((d) => !leftAndRight.includes(d.column.id))\n}\n\nexport function row_getLeftVisibleCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): Array<Cell<TFeatures, TData, unknown>> {\n const allCells = callMemoOrStaticFn(\n row,\n 'getAllVisibleCells',\n row_getAllVisibleCells,\n )\n const { left } =\n row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const cells = left\n .map((columnId) => allCells.find((cell) => cell.column.id === columnId)!)\n .filter(Boolean)\n // Assign position property directly to preserve prototype chain\n cells.forEach((cell) => {\n cell.position = 'left'\n })\n return cells as any\n}\n\nexport function row_getRightVisibleCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const allCells = callMemoOrStaticFn(\n row,\n 'getAllVisibleCells',\n row_getAllVisibleCells,\n )\n const { right } =\n row.table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const cells = right\n .map((columnId) => allCells.find((cell) => cell.column.id === columnId)!)\n .filter(Boolean)\n // Assign position property directly to preserve prototype chain\n cells.forEach((cell) => {\n cell.position = 'right'\n })\n return cells as any\n}\n\n// Table APIs\n\nexport function table_setColumnPinning<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<ColumnPinningState>,\n) {\n table.options.onColumnPinningChange?.(updater)\n}\n\nexport function table_resetColumnPinning<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnPinning(\n table,\n defaultState\n ? getDefaultColumnPinningState()\n : cloneState(\n table.initialState.columnPinning ?? getDefaultColumnPinningState(),\n ),\n )\n}\n\nexport function table_getIsSomeColumnsPinned<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, position?: ColumnPinningPosition) {\n const pinningState = table.atoms.columnPinning?.get()\n\n if (!position) {\n return Boolean(pinningState?.left.length || pinningState?.right.length)\n }\n return Boolean(pinningState?.[position].length)\n}\n\n// header groups\n\nexport function table_getLeftHeaderGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const allColumns = table.getAllColumns()\n const leafColumns = callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n ) as Array<Column_Internal<TFeatures, TData, unknown>>\n const { left } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n\n const orderedLeafColumns = left\n .map((columnId) => leafColumns.find((d) => d.id === columnId)!)\n .filter(Boolean)\n\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'left')\n}\n\nexport function table_getRightHeaderGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const allColumns = table.getAllColumns()\n const leafColumns = callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n ) as unknown as Array<Column_Internal<TFeatures, TData, unknown>>\n const { right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n\n const orderedLeafColumns = right\n .map((columnId) => leafColumns.find((d) => d.id === columnId)!)\n .filter(Boolean)\n\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'right')\n}\n\nexport function table_getCenterHeaderGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n): Array<HeaderGroup<TFeatures, TData>> {\n const allColumns = table.getAllColumns()\n let leafColumns = callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n ) as unknown as Array<Column_Internal<TFeatures, TData, unknown>>\n const { left, right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leftAndRight: Array<string> = [...left, ...right]\n\n leafColumns = leafColumns.filter(\n (column) => !leftAndRight.includes(column.id),\n )\n return buildHeaderGroups(allColumns, leafColumns, table, 'center')\n}\n\n// footer groups\n\nexport function table_getLeftFooterGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const headerGroups = callMemoOrStaticFn(\n table,\n 'getLeftHeaderGroups',\n table_getLeftHeaderGroups,\n )\n return [...headerGroups].reverse()\n}\n\nexport function table_getRightFooterGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const headerGroups = callMemoOrStaticFn(\n table,\n 'getRightHeaderGroups',\n table_getRightHeaderGroups,\n )\n return [...headerGroups].reverse()\n}\n\nexport function table_getCenterFooterGroups<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const headerGroups = callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n )\n return [...headerGroups].reverse()\n}\n\n// flat headers\n\nexport function table_getLeftFlatHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const leftHeaderGroups = callMemoOrStaticFn(\n table,\n 'getLeftHeaderGroups',\n table_getLeftHeaderGroups,\n )\n return leftHeaderGroups\n .map((headerGroup) => {\n return headerGroup.headers\n })\n .flat()\n}\n\nexport function table_getRightFlatHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const rightHeaderGroups = callMemoOrStaticFn(\n table,\n 'getRightHeaderGroups',\n table_getRightHeaderGroups,\n )\n return rightHeaderGroups\n .map((headerGroup) => {\n return headerGroup.headers\n })\n .flat()\n}\n\nexport function table_getCenterFlatHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const centerHeaderGroups = callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n )\n return centerHeaderGroups\n .map((headerGroup) => {\n return headerGroup.headers\n })\n .flat()\n}\n\n// leaf headers\n\nexport function table_getLeftLeafHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getLeftFlatHeaders',\n table_getLeftFlatHeaders,\n ).filter((header) => !header.subHeaders.length)\n}\n\nexport function table_getRightLeafHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getRightFlatHeaders',\n table_getRightFlatHeaders,\n ).filter((header) => !header.subHeaders.length)\n}\n\nexport function table_getCenterLeafHeaders<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getCenterFlatHeaders',\n table_getCenterFlatHeaders,\n ).filter((header) => !header.subHeaders.length)\n}\n\n// leaf columns\n\nexport function table_getLeftLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const { left } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n return left\n .map(\n (columnId) =>\n table.getAllLeafColumns().find((column) => column.id === columnId)!,\n )\n .filter(Boolean)\n}\n\nexport function table_getRightLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const { right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n return right\n .map(\n (columnId) =>\n table.getAllLeafColumns().find((column) => column.id === columnId)!,\n )\n .filter(Boolean)\n}\n\nexport function table_getCenterLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const { left, right } =\n table.atoms.columnPinning?.get() ?? getDefaultColumnPinningState()\n const leftAndRight: Array<string> = [...left, ...right]\n return table.getAllLeafColumns().filter((d) => !leftAndRight.includes(d.id))\n}\n\nexport function table_getPinnedLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n position: ColumnPinningPosition | 'center',\n) {\n return !position\n ? table.getAllLeafColumns()\n : position === 'left'\n ? callMemoOrStaticFn(\n table,\n 'getLeftLeafColumns',\n table_getLeftLeafColumns,\n )\n : position === 'right'\n ? callMemoOrStaticFn(\n table,\n 'getRightLeafColumns',\n table_getRightLeafColumns,\n )\n : callMemoOrStaticFn(\n table,\n 'getCenterLeafColumns',\n table_getCenterLeafColumns,\n )\n}\n\n// visible leaf columns\n\nexport function table_getLeftVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getLeftLeafColumns',\n table_getLeftLeafColumns,\n ).filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\nexport function table_getRightVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getRightLeafColumns',\n table_getRightLeafColumns,\n ).filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\nexport function table_getCenterVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return callMemoOrStaticFn(\n table,\n 'getCenterLeafColumns',\n table_getCenterLeafColumns,\n ).filter((column) =>\n callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),\n )\n}\n\nexport function table_getPinnedVisibleLeafColumns<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n position?: ColumnPinningPosition | 'center',\n) {\n return !position\n ? callMemoOrStaticFn(\n table,\n 'getVisibleLeafColumns',\n table_getVisibleLeafColumns,\n )\n : position === 'left'\n ? callMemoOrStaticFn(\n table,\n 'getLeftVisibleLeafColumns',\n table_getLeftVisibleLeafColumns,\n )\n : position === 'right'\n ? callMemoOrStaticFn(\n table,\n 'getRightVisibleLeafColumns',\n table_getRightVisibleLeafColumns,\n )\n : callMemoOrStaticFn(\n table,\n 'getCenterVisibleLeafColumns',\n table_getCenterVisibleLeafColumns,\n )\n}\n"],"mappings":"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"}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
|
+
const require_utils = require('../../utils.cjs');
|
|
1
2
|
const require_coreColumnsFeature_utils = require('../../core/columns/coreColumnsFeature.utils.cjs');
|
|
2
3
|
const require_columnSizingFeature_utils = require('../column-sizing/columnSizingFeature.utils.cjs');
|
|
3
4
|
|
|
4
5
|
//#region src/features/column-resizing/columnResizingFeature.utils.ts
|
|
5
6
|
function getDefaultColumnResizingState() {
|
|
6
|
-
return
|
|
7
|
+
return {
|
|
7
8
|
startOffset: null,
|
|
8
9
|
startSize: null,
|
|
9
10
|
deltaOffset: null,
|
|
10
11
|
deltaPercentage: null,
|
|
11
12
|
isResizingColumn: false,
|
|
12
13
|
columnSizingStart: []
|
|
13
|
-
}
|
|
14
|
+
};
|
|
14
15
|
}
|
|
15
16
|
function column_getCanResize(column) {
|
|
16
17
|
return (column.columnDef.enableResizing ?? true) && (column.table.options.enableColumnResizing ?? true);
|
|
@@ -120,7 +121,7 @@ function table_setColumnResizing(table, updater) {
|
|
|
120
121
|
(_table$options$onColu = (_table$options = table.options).onColumnResizingChange) === null || _table$options$onColu === void 0 || _table$options$onColu.call(_table$options, updater);
|
|
121
122
|
}
|
|
122
123
|
function table_resetHeaderSizeInfo(table, defaultState) {
|
|
123
|
-
table_setColumnResizing(table, defaultState ? getDefaultColumnResizingState() : table.initialState.columnResizing ?? getDefaultColumnResizingState());
|
|
124
|
+
table_setColumnResizing(table, defaultState ? getDefaultColumnResizingState() : require_utils.cloneState(table.initialState.columnResizing ?? getDefaultColumnResizingState()));
|
|
124
125
|
}
|
|
125
126
|
function passiveEventSupported() {
|
|
126
127
|
let passiveSupported = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnResizingFeature.utils.cjs","names":["table_getColumn","header_getSize","column_getSize"],"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 { table_getColumn } from '../../core/columns/coreColumnsFeature.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\nexport function getDefaultColumnResizingState(): columnResizingState {\n return structuredClone({\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n })\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\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\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 = table_getColumn(header.column.table, 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 = {}\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 ...old,\n ...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\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\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 : (table.initialState.columnResizing ?? getDefaultColumnResizingState()),\n )\n}\n\nexport function passiveEventSupported() {\n let passiveSupported: boolean | null = null\n\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\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":["table_getColumn","header_getSize","column_getSize","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 { table_getColumn } from '../../core/columns/coreColumnsFeature.utils'\nimport { cloneState } 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\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\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\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\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 = table_getColumn(header.column.table, 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 = {}\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 ...old,\n ...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\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\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\nexport function passiveEventSupported() {\n let passiveSupported: boolean | null = null\n\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\nexport function isTouchStartEvent(e: unknown): e is TouchEvent {\n return (e as TouchEvent).type === 'touchstart'\n}\n"],"mappings":"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"}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
|
+
import { cloneState } from "../../utils.js";
|
|
1
2
|
import { table_getColumn } from "../../core/columns/coreColumnsFeature.utils.js";
|
|
2
3
|
import { column_getSize, header_getSize, table_setColumnSizing } from "../column-sizing/columnSizingFeature.utils.js";
|
|
3
4
|
|
|
4
5
|
//#region src/features/column-resizing/columnResizingFeature.utils.ts
|
|
5
6
|
function getDefaultColumnResizingState() {
|
|
6
|
-
return
|
|
7
|
+
return {
|
|
7
8
|
startOffset: null,
|
|
8
9
|
startSize: null,
|
|
9
10
|
deltaOffset: null,
|
|
10
11
|
deltaPercentage: null,
|
|
11
12
|
isResizingColumn: false,
|
|
12
13
|
columnSizingStart: []
|
|
13
|
-
}
|
|
14
|
+
};
|
|
14
15
|
}
|
|
15
16
|
function column_getCanResize(column) {
|
|
16
17
|
return (column.columnDef.enableResizing ?? true) && (column.table.options.enableColumnResizing ?? true);
|
|
@@ -120,7 +121,7 @@ function table_setColumnResizing(table, updater) {
|
|
|
120
121
|
(_table$options$onColu = (_table$options = table.options).onColumnResizingChange) === null || _table$options$onColu === void 0 || _table$options$onColu.call(_table$options, updater);
|
|
121
122
|
}
|
|
122
123
|
function table_resetHeaderSizeInfo(table, defaultState) {
|
|
123
|
-
table_setColumnResizing(table, defaultState ? getDefaultColumnResizingState() : table.initialState.columnResizing ?? getDefaultColumnResizingState());
|
|
124
|
+
table_setColumnResizing(table, defaultState ? getDefaultColumnResizingState() : cloneState(table.initialState.columnResizing ?? getDefaultColumnResizingState()));
|
|
124
125
|
}
|
|
125
126
|
function passiveEventSupported() {
|
|
126
127
|
let passiveSupported = null;
|
|
@@ -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 { table_getColumn } from '../../core/columns/coreColumnsFeature.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\nexport function getDefaultColumnResizingState(): columnResizingState {\n return structuredClone({\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n })\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\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\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 = table_getColumn(header.column.table, 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 = {}\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 ...old,\n ...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\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\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 : (table.initialState.columnResizing ?? getDefaultColumnResizingState()),\n )\n}\n\nexport function passiveEventSupported() {\n let passiveSupported: boolean | null = null\n\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\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 { table_getColumn } from '../../core/columns/coreColumnsFeature.utils'\nimport { cloneState } 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\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\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\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\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 = table_getColumn(header.column.table, 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 = {}\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 ...old,\n ...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\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\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\nexport function passiveEventSupported() {\n let passiveSupported: boolean | null = null\n\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\nexport function isTouchStartEvent(e: unknown): e is TouchEvent {\n return (e as TouchEvent).type === 'touchstart'\n}\n"],"mappings":"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"}
|
|
@@ -4,14 +4,14 @@ const require_columnOrderingFeature_utils = require('../column-ordering/columnOr
|
|
|
4
4
|
|
|
5
5
|
//#region src/features/column-sizing/columnSizingFeature.utils.ts
|
|
6
6
|
function getDefaultColumnSizingState() {
|
|
7
|
-
return
|
|
7
|
+
return {};
|
|
8
8
|
}
|
|
9
9
|
function getDefaultColumnSizingColumnDef() {
|
|
10
|
-
return
|
|
10
|
+
return {
|
|
11
11
|
size: 150,
|
|
12
12
|
minSize: 20,
|
|
13
13
|
maxSize: Number.MAX_SAFE_INTEGER
|
|
14
|
-
}
|
|
14
|
+
};
|
|
15
15
|
}
|
|
16
16
|
function column_getSize(column) {
|
|
17
17
|
var _column$table$atoms$c;
|
|
@@ -52,7 +52,7 @@ function table_setColumnSizing(table, updater) {
|
|
|
52
52
|
(_table$options$onColu = (_table$options = table.options).onColumnSizingChange) === null || _table$options$onColu === void 0 || _table$options$onColu.call(_table$options, updater);
|
|
53
53
|
}
|
|
54
54
|
function table_resetColumnSizing(table, defaultState) {
|
|
55
|
-
table_setColumnSizing(table, defaultState ? {} : table.initialState.columnSizing ?? {});
|
|
55
|
+
table_setColumnSizing(table, defaultState ? {} : require_utils.cloneState(table.initialState.columnSizing ?? {}));
|
|
56
56
|
}
|
|
57
57
|
function table_getTotalSize(table) {
|
|
58
58
|
var _table$getHeaderGroup;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnSizingFeature.utils.cjs","names":["callMemoOrStaticFn","table_getPinnedVisibleLeafColumns","column_getIndex","table_getLeftHeaderGroups","table_getCenterHeaderGroups","table_getRightHeaderGroups"],"sources":["../../../src/features/column-sizing/columnSizingFeature.utils.ts"],"sourcesContent":["import {\n table_getCenterHeaderGroups,\n table_getLeftHeaderGroups,\n table_getPinnedVisibleLeafColumns,\n table_getRightHeaderGroups,\n} from '../column-pinning/columnPinningFeature.utils'\nimport { column_getIndex } from '../column-ordering/columnOrderingFeature.utils'\nimport { callMemoOrStaticFn } from '../../utils'\nimport type { ColumnPinningPosition } from '../column-pinning/columnPinningFeature.types'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Header } from '../../types/Header'\nimport type { Column_Internal } from '../../types/Column'\nimport type { ColumnSizingState } from './columnSizingFeature.types'\n\nexport function getDefaultColumnSizingState(): ColumnSizingState {\n return
|
|
1
|
+
{"version":3,"file":"columnSizingFeature.utils.cjs","names":["callMemoOrStaticFn","table_getPinnedVisibleLeafColumns","column_getIndex","cloneState","table_getLeftHeaderGroups","table_getCenterHeaderGroups","table_getRightHeaderGroups"],"sources":["../../../src/features/column-sizing/columnSizingFeature.utils.ts"],"sourcesContent":["import {\n table_getCenterHeaderGroups,\n table_getLeftHeaderGroups,\n table_getPinnedVisibleLeafColumns,\n table_getRightHeaderGroups,\n} from '../column-pinning/columnPinningFeature.utils'\nimport { column_getIndex } from '../column-ordering/columnOrderingFeature.utils'\nimport { callMemoOrStaticFn, cloneState } from '../../utils'\nimport type { ColumnPinningPosition } from '../column-pinning/columnPinningFeature.types'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Header } from '../../types/Header'\nimport type { Column_Internal } from '../../types/Column'\nimport type { ColumnSizingState } from './columnSizingFeature.types'\n\nexport function getDefaultColumnSizingState(): ColumnSizingState {\n return {}\n}\n\nexport function getDefaultColumnSizingColumnDef() {\n return {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER,\n }\n}\n\nexport function column_getSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): number {\n const defaultSizes = getDefaultColumnSizingColumnDef()\n const columnSize = column.table.atoms.columnSizing?.get()?.[column.id]\n\n return Math.min(\n Math.max(\n column.columnDef.minSize ?? defaultSizes.minSize,\n columnSize ?? column.columnDef.size ?? defaultSizes.size,\n ),\n column.columnDef.maxSize ?? defaultSizes.maxSize,\n )\n}\n\nexport function column_getStart<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position: ColumnPinningPosition | 'center',\n): number {\n const visibleLeafColumns = callMemoOrStaticFn(\n column.table,\n 'getPinnedVisibleLeafColumns',\n table_getPinnedVisibleLeafColumns,\n position,\n )\n\n return visibleLeafColumns\n .slice(0, callMemoOrStaticFn(column, 'getIndex', column_getIndex, position))\n .reduce((sum: number, c) => sum + column_getSize(c), 0)\n}\n\nexport function column_getAfter<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n position: ColumnPinningPosition | 'center',\n): number {\n const visibleLeafColumns = callMemoOrStaticFn(\n column.table,\n 'getPinnedVisibleLeafColumns',\n table_getPinnedVisibleLeafColumns,\n position,\n )\n\n return visibleLeafColumns\n .slice(\n callMemoOrStaticFn(column, 'getIndex', column_getIndex, position) + 1,\n )\n .reduce((sum: number, c) => sum + column_getSize(c), 0)\n}\n\nexport function column_resetSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n table_setColumnSizing(column.table, ({ [column.id]: _, ...rest }) => {\n return rest\n })\n}\n\nexport function header_getSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(header: Header<TFeatures, TData, TValue>) {\n let sum = 0\n\n const recurse = (h: Header<TFeatures, TData, TValue>) => {\n if (h.subHeaders.length) {\n h.subHeaders.forEach(recurse)\n } else {\n sum += column_getSize(h.column)\n }\n }\n\n recurse(header)\n\n return sum\n}\n\nexport function header_getStart<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(header: Header<TFeatures, TData, TValue>): number {\n if (header.index > 0) {\n const prevSiblingHeader = header.headerGroup?.headers[header.index - 1]\n if (prevSiblingHeader) {\n return (\n header_getStart(prevSiblingHeader) + header_getSize(prevSiblingHeader)\n )\n }\n }\n\n return 0\n}\n\n// Table APIs\n\nexport function table_setColumnSizing<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n updater: Updater<ColumnSizingState>,\n) {\n table.options.onColumnSizingChange?.(updater)\n}\n\nexport function table_resetColumnSizing<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setColumnSizing(\n table,\n defaultState ? {} : cloneState(table.initialState.columnSizing ?? {}),\n )\n}\n\nexport function table_getTotalSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (\n table.getHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header_getSize(header)\n }, 0) ?? 0\n )\n}\n\nexport function table_getLeftTotalSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (\n callMemoOrStaticFn(\n table,\n 'getLeftHeaderGroups',\n table_getLeftHeaderGroups,\n )[0]?.headers.reduce((sum: number, header: Header<TFeatures, TData>) => {\n return sum + header_getSize(header)\n }, 0) ?? 0\n )\n}\n\nexport function table_getCenterTotalSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (\n callMemoOrStaticFn(\n table,\n 'getCenterHeaderGroups',\n table_getCenterHeaderGroups,\n )[0]?.headers.reduce((sum: number, header: Header<TFeatures, TData>) => {\n return sum + header_getSize(header)\n }, 0) ?? 0\n )\n}\n\nexport function table_getRightTotalSize<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (\n callMemoOrStaticFn(\n table,\n 'getRightHeaderGroups',\n table_getRightHeaderGroups,\n )[0]?.headers.reduce((sum: number, header: Header<TFeatures, TData>) => {\n return sum + header_getSize(header)\n }, 0) ?? 0\n )\n}\n"],"mappings":";;;;;AAgBA,SAAgB,8BAAiD;AAC/D,QAAO,EAAE;;AAGX,SAAgB,kCAAkC;AAChD,QAAO;EACL,MAAM;EACN,SAAS;EACT,SAAS,OAAO;EACjB;;AAGH,SAAgB,eAId,QAA2D;;CAC3D,MAAM,eAAe,iCAAiC;CACtD,MAAM,sCAAa,OAAO,MAAM,MAAM,6GAAc,KAAK,gFAAG,OAAO;AAEnE,QAAO,KAAK,IACV,KAAK,IACH,OAAO,UAAU,WAAW,aAAa,SACzC,cAAc,OAAO,UAAU,QAAQ,aAAa,KACrD,EACD,OAAO,UAAU,WAAW,aAAa,QAC1C;;AAGH,SAAgB,gBAKd,QACA,UACQ;AAQR,QAP2BA,iCACzB,OAAO,OACP,+BACAC,sEACA,SAGuB,CACtB,MAAM,GAAGD,iCAAmB,QAAQ,YAAYE,qDAAiB,SAAS,CAAC,CAC3E,QAAQ,KAAa,MAAM,MAAM,eAAe,EAAE,EAAE,EAAE;;AAG3D,SAAgB,gBAKd,QACA,UACQ;AAQR,QAP2BF,iCACzB,OAAO,OACP,+BACAC,sEACA,SAGuB,CACtB,MACCD,iCAAmB,QAAQ,YAAYE,qDAAiB,SAAS,GAAG,EACrE,CACA,QAAQ,KAAa,MAAM,MAAM,eAAe,EAAE,EAAE,EAAE;;AAG3D,SAAgB,iBAId,QAAmD;AACnD,uBAAsB,OAAO,QAAQ,GAAG,OAAO,KAAK,GAAG,GAAG,WAAW;AACnE,SAAO;GACP;;AAGJ,SAAgB,eAId,QAA0C;CAC1C,IAAI,MAAM;CAEV,MAAM,WAAW,MAAwC;AACvD,MAAI,EAAE,WAAW,OACf,GAAE,WAAW,QAAQ,QAAQ;MAE7B,QAAO,eAAe,EAAE,OAAO;;AAInC,SAAQ,OAAO;AAEf,QAAO;;AAGT,SAAgB,gBAId,QAAkD;AAClD,KAAI,OAAO,QAAQ,GAAG;;EACpB,MAAM,2CAAoB,OAAO,uFAAa,QAAQ,OAAO,QAAQ;AACrE,MAAI,kBACF,QACE,gBAAgB,kBAAkB,GAAG,eAAe,kBAAkB;;AAK5E,QAAO;;AAKT,SAAgB,sBAId,OACA,SACA;;AACA,kDAAM,SAAQ,iHAAuB,QAAQ;;AAG/C,SAAgB,wBAGd,OAAyC,cAAwB;AACjE,uBACE,OACA,eAAe,EAAE,GAAGC,yBAAW,MAAM,aAAa,gBAAgB,EAAE,CAAC,CACtE;;AAGH,SAAgB,mBAGd,OAAyC;;AACzC,kCACE,MAAM,iBAAiB,CAAC,kFAAI,QAAQ,QAAQ,KAAK,WAAW;AAC1D,SAAO,MAAM,eAAe,OAAO;IAClC,EAAE,KAAI;;AAIb,SAAgB,uBAGd,OAAyC;;AACzC,iCACEH,iCACE,OACA,uBACAI,6DACD,CAAC,gFAAI,QAAQ,QAAQ,KAAa,WAAqC;AACtE,SAAO,MAAM,eAAe,OAAO;IAClC,EAAE,KAAI;;AAIb,SAAgB,yBAGd,OAAyC;;AACzC,kCACEJ,iCACE,OACA,yBACAK,+DACD,CAAC,kFAAI,QAAQ,QAAQ,KAAa,WAAqC;AACtE,SAAO,MAAM,eAAe,OAAO;IAClC,EAAE,KAAI;;AAIb,SAAgB,wBAGd,OAAyC;;AACzC,kCACEL,iCACE,OACA,wBACAM,8DACD,CAAC,kFAAI,QAAQ,QAAQ,KAAa,WAAqC;AACtE,SAAO,MAAM,eAAe,OAAO;IAClC,EAAE,KAAI"}
|