@tanstack/table-core 8.8.4 → 8.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/build/lib/columnHelper.js +0 -1
  2. package/build/lib/columnHelper.js.map +1 -1
  3. package/build/lib/core/cell.js.map +1 -1
  4. package/build/lib/core/column.js.map +1 -1
  5. package/build/lib/core/headers.js.map +1 -1
  6. package/build/lib/core/row.js.map +1 -1
  7. package/build/lib/core/table.js.map +1 -1
  8. package/build/lib/features/ColumnSizing.js +2 -0
  9. package/build/lib/features/ColumnSizing.js.map +1 -1
  10. package/build/lib/features/Expanding.js +1 -1
  11. package/build/lib/features/Expanding.js.map +1 -1
  12. package/build/lib/features/Filters.js.map +1 -1
  13. package/build/lib/features/Grouping.d.ts +2 -0
  14. package/build/lib/features/Grouping.js +12 -1
  15. package/build/lib/features/Grouping.js.map +1 -1
  16. package/build/lib/features/Ordering.js.map +1 -1
  17. package/build/lib/features/Pagination.js.map +1 -1
  18. package/build/lib/features/Pinning.js.map +1 -1
  19. package/build/lib/features/RowSelection.js.map +1 -1
  20. package/build/lib/features/Sorting.js.map +1 -1
  21. package/build/lib/features/Visibility.js.map +1 -1
  22. package/build/lib/filterFns.js.map +1 -1
  23. package/build/lib/index.esm.js +16 -4
  24. package/build/lib/index.esm.js.map +1 -1
  25. package/build/lib/index.mjs +16 -4
  26. package/build/lib/index.mjs.map +1 -1
  27. package/build/lib/sortingFns.js.map +1 -1
  28. package/build/lib/utils/filterRowsUtils.js.map +1 -1
  29. package/build/lib/utils/getCoreRowModel.js.map +1 -1
  30. package/build/lib/utils/getExpandedRowModel.js.map +1 -1
  31. package/build/lib/utils/getFacetedMinMaxValues.js.map +1 -1
  32. package/build/lib/utils/getFacetedRowModel.js.map +1 -1
  33. package/build/lib/utils/getFacetedUniqueValues.js.map +1 -1
  34. package/build/lib/utils/getFilteredRowModel.js.map +1 -1
  35. package/build/lib/utils/getGroupedRowModel.js +1 -1
  36. package/build/lib/utils/getGroupedRowModel.js.map +1 -1
  37. package/build/lib/utils/getPaginationRowModel.js.map +1 -1
  38. package/build/lib/utils/getSortedRowModel.js.map +1 -1
  39. package/build/lib/utils.js.map +1 -1
  40. package/build/umd/index.development.js +16 -4
  41. package/build/umd/index.development.js.map +1 -1
  42. package/build/umd/index.production.js +1 -1
  43. package/build/umd/index.production.js.map +1 -1
  44. package/package.json +1 -1
  45. package/src/features/Expanding.ts +3 -1
  46. package/src/features/Grouping.ts +23 -1
  47. package/src/utils/getGroupedRowModel.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"RowSelection.js","sources":["../../../src/features/RowSelection.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, Row, RowModel, Updater, RowData } from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type RowSelectionState = Record<string, boolean>\n\nexport interface RowSelectionTableState {\n rowSelection: RowSelectionState\n}\n\nexport interface RowSelectionOptions<TData extends RowData> {\n enableRowSelection?: boolean | ((row: Row<TData>) => boolean)\n enableMultiRowSelection?: boolean | ((row: Row<TData>) => boolean)\n enableSubRowSelection?: boolean | ((row: Row<TData>) => boolean)\n onRowSelectionChange?: OnChangeFn<RowSelectionState>\n // enableGroupingRowSelection?:\n // | boolean\n // | ((\n // row: Row<TData>\n // ) => boolean)\n // isAdditiveSelectEvent?: (e: unknown) => boolean\n // isInclusiveSelectEvent?: (e: unknown) => boolean\n // selectRowsFn?: (\n // table: Table<TData>,\n // rowModel: RowModel<TData>\n // ) => RowModel<TData>\n}\n\nexport interface RowSelectionRow {\n getIsSelected: () => boolean\n getIsSomeSelected: () => boolean\n getIsAllSubRowsSelected: () => boolean\n getCanSelect: () => boolean\n getCanMultiSelect: () => boolean\n getCanSelectSubRows: () => boolean\n toggleSelected: (value?: boolean) => void\n getToggleSelectedHandler: () => (event: unknown) => void\n}\n\nexport interface RowSelectionInstance<TData extends RowData> {\n getToggleAllRowsSelectedHandler: () => (event: unknown) => void\n getToggleAllPageRowsSelectedHandler: () => (event: unknown) => void\n setRowSelection: (updater: Updater<RowSelectionState>) => void\n resetRowSelection: (defaultState?: boolean) => void\n getIsAllRowsSelected: () => boolean\n getIsAllPageRowsSelected: () => boolean\n getIsSomeRowsSelected: () => boolean\n getIsSomePageRowsSelected: () => boolean\n toggleAllRowsSelected: (value?: boolean) => void\n toggleAllPageRowsSelected: (value?: boolean) => void\n getPreSelectedRowModel: () => RowModel<TData>\n getSelectedRowModel: () => RowModel<TData>\n getFilteredSelectedRowModel: () => RowModel<TData>\n getGroupedSelectedRowModel: () => RowModel<TData>\n}\n\n//\n\nexport const RowSelection: TableFeature = {\n getInitialState: (state): RowSelectionTableState => {\n return {\n rowSelection: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): RowSelectionOptions<TData> => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', table),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true,\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): RowSelectionInstance<TData> => {\n return {\n setRowSelection: updater => table.options.onRowSelectionChange?.(updater),\n resetRowSelection: defaultState =>\n table.setRowSelection(\n defaultState ? {} : table.initialState.rowSelection ?? {}\n ),\n toggleAllRowsSelected: value => {\n table.setRowSelection(old => {\n value =\n typeof value !== 'undefined' ? value : !table.getIsAllRowsSelected()\n\n const rowSelection = { ...old }\n\n const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n if (!row.getCanSelect()) {\n return\n }\n rowSelection[row.id] = true\n })\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id]\n })\n }\n\n return rowSelection\n })\n },\n toggleAllPageRowsSelected: value =>\n table.setRowSelection(old => {\n const resolvedValue =\n typeof value !== 'undefined'\n ? value\n : !table.getIsAllPageRowsSelected()\n\n const rowSelection: RowSelectionState = { ...old }\n\n table.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, resolvedValue, table)\n })\n\n return rowSelection\n }),\n\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = table\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // table.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // table.setRowSelection(selectedRowIds)\n // },\n getPreSelectedRowModel: () => table.getCoreRowModel(),\n getSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getCoreRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n getFilteredSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getFilteredRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getFilteredSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n getGroupedSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getSortedRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getGroupedSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n ///\n\n // getGroupingRowCanSelect: rowId => {\n // const row = table.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof table.options.enableGroupingRowSelection === 'function') {\n // return table.options.enableGroupingRowSelection(row)\n // }\n\n // return table.options.enableGroupingRowSelection ?? false\n // },\n\n getIsAllRowsSelected: () => {\n const preGroupedFlatRows = table.getFilteredRowModel().flatRows\n const { rowSelection } = table.getState()\n\n let isAllRowsSelected = Boolean(\n preGroupedFlatRows.length && Object.keys(rowSelection).length\n )\n\n if (isAllRowsSelected) {\n if (\n preGroupedFlatRows.some(\n row => row.getCanSelect() && !rowSelection[row.id]\n )\n ) {\n isAllRowsSelected = false\n }\n }\n\n return isAllRowsSelected\n },\n\n getIsAllPageRowsSelected: () => {\n const paginationFlatRows = table\n .getPaginationRowModel()\n .flatRows.filter(row => row.getCanSelect())\n const { rowSelection } = table.getState()\n\n let isAllPageRowsSelected = !!paginationFlatRows.length\n\n if (\n isAllPageRowsSelected &&\n paginationFlatRows.some(row => !rowSelection[row.id])\n ) {\n isAllPageRowsSelected = false\n }\n\n return isAllPageRowsSelected\n },\n\n getIsSomeRowsSelected: () => {\n const totalSelected = Object.keys(\n table.getState().rowSelection ?? {}\n ).length\n return (\n totalSelected > 0 &&\n totalSelected < table.getFilteredRowModel().flatRows.length\n )\n },\n\n getIsSomePageRowsSelected: () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows\n return table.getIsAllPageRowsSelected()\n ? false\n : paginationFlatRows\n .filter(row => row.getCanSelect())\n .some(d => d.getIsSelected() || d.getIsSomeSelected())\n },\n\n getToggleAllRowsSelectedHandler: () => {\n return (e: unknown) => {\n table.toggleAllRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n\n getToggleAllPageRowsSelectedHandler: () => {\n return (e: unknown) => {\n table.toggleAllPageRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): RowSelectionRow => {\n return {\n toggleSelected: value => {\n const isSelected = row.getIsSelected()\n\n table.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !isSelected\n\n if (isSelected === value) {\n return old\n }\n\n const selectedRowIds = { ...old }\n\n mutateRowIsSelected(selectedRowIds, row.id, value, table)\n\n return selectedRowIds\n })\n },\n getIsSelected: () => {\n const { rowSelection } = table.getState()\n return isRowSelected(row, rowSelection)\n },\n\n getIsSomeSelected: () => {\n const { rowSelection } = table.getState()\n return isSubRowSelected(row, rowSelection, table) === 'some'\n },\n\n getIsAllSubRowsSelected: () => {\n const { rowSelection } = table.getState()\n return isSubRowSelected(row, rowSelection, table) === 'all'\n },\n\n getCanSelect: () => {\n if (typeof table.options.enableRowSelection === 'function') {\n return table.options.enableRowSelection(row)\n }\n\n return table.options.enableRowSelection ?? true\n },\n\n getCanSelectSubRows: () => {\n if (typeof table.options.enableSubRowSelection === 'function') {\n return table.options.enableSubRowSelection(row)\n }\n\n return table.options.enableSubRowSelection ?? true\n },\n\n getCanMultiSelect: () => {\n if (typeof table.options.enableMultiRowSelection === 'function') {\n return table.options.enableMultiRowSelection(row)\n }\n\n return table.options.enableMultiRowSelection ?? true\n },\n getToggleSelectedHandler: () => {\n const canSelect = row.getCanSelect()\n\n return (e: unknown) => {\n if (!canSelect) return\n row.toggleSelected(\n ((e as MouseEvent).target as HTMLInputElement)?.checked\n )\n }\n },\n }\n },\n}\n\nconst mutateRowIsSelected = <TData extends RowData>(\n selectedRowIds: Record<string, boolean>,\n id: string,\n value: boolean,\n table: Table<TData>\n) => {\n const row = table.getRow(id)\n\n // const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && table.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n if (!row.getCanMultiSelect()) {\n Object.keys(selectedRowIds).forEach(key => delete selectedRowIds[key])\n }\n if (row.getCanSelect()) {\n selectedRowIds[id] = true\n }\n } else {\n delete selectedRowIds[id]\n }\n // }\n\n if (row.subRows?.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row =>\n mutateRowIsSelected(selectedRowIds, row.id, value, table)\n )\n }\n}\n\nexport function selectRowsFn<TData extends RowData>(\n table: Table<TData>,\n rowModel: RowModel<TData>\n): RowModel<TData> {\n const rowSelection = table.getState().rowSelection\n\n const newSelectedFlatRows: Row<TData>[] = []\n const newSelectedRowsById: Record<string, Row<TData>> = {}\n\n // Filters top level and nested rows\n const recurseRows = (rows: Row<TData>[], depth = 0): Row<TData>[] => {\n return rows\n .map(row => {\n const isSelected = isRowSelected(row, rowSelection)\n\n if (isSelected) {\n newSelectedFlatRows.push(row)\n newSelectedRowsById[row.id] = row\n }\n\n if (row.subRows?.length) {\n row = {\n ...row,\n subRows: recurseRows(row.subRows, depth + 1),\n }\n }\n\n if (isSelected) {\n return row\n }\n })\n .filter(Boolean) as Row<TData>[]\n }\n\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById,\n }\n}\n\nexport function isRowSelected<TData extends RowData>(\n row: Row<TData>,\n selection: Record<string, boolean>\n): boolean {\n return selection[row.id] ?? false\n}\n\nexport function isSubRowSelected<TData extends RowData>(\n row: Row<TData>,\n selection: Record<string, boolean>,\n table: Table<TData>\n): boolean | 'some' | 'all' {\n if (row.subRows && row.subRows.length) {\n let allChildrenSelected = true\n let someSelected = false\n\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return\n }\n\n if (isRowSelected(subRow, selection)) {\n someSelected = true\n } else {\n allChildrenSelected = false\n }\n })\n\n return allChildrenSelected ? 'all' : someSelected ? 'some' : false\n }\n\n return false\n}\n"],"names":["RowSelection","getInitialState","state","rowSelection","getDefaultOptions","table","onRowSelectionChange","makeStateUpdater","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","createTable","setRowSelection","updater","options","resetRowSelection","defaultState","_table$initialState$r","initialState","toggleAllRowsSelected","value","old","getIsAllRowsSelected","preGroupedFlatRows","getPreGroupedRowModel","flatRows","forEach","row","getCanSelect","id","toggleAllPageRowsSelected","resolvedValue","getIsAllPageRowsSelected","getRowModel","rows","mutateRowIsSelected","getPreSelectedRowModel","getCoreRowModel","getSelectedRowModel","memo","getState","rowModel","Object","keys","length","rowsById","selectRowsFn","key","process","env","NODE_ENV","debug","_table$options$debugA","debugAll","debugTable","getFilteredSelectedRowModel","getFilteredRowModel","_table$options$debugA2","getGroupedSelectedRowModel","getSortedRowModel","_table$options$debugA3","isAllRowsSelected","Boolean","some","paginationFlatRows","getPaginationRowModel","filter","isAllPageRowsSelected","getIsSomeRowsSelected","_table$getState$rowSe","totalSelected","getIsSomePageRowsSelected","d","getIsSelected","getIsSomeSelected","getToggleAllRowsSelectedHandler","e","target","checked","getToggleAllPageRowsSelectedHandler","createRow","toggleSelected","isSelected","selectedRowIds","isRowSelected","isSubRowSelected","getIsAllSubRowsSelected","_table$options$enable","getCanSelectSubRows","_table$options$enable2","getCanMultiSelect","_table$options$enable3","getToggleSelectedHandler","canSelect","_target","_row$subRows","getRow","subRows","newSelectedFlatRows","newSelectedRowsById","recurseRows","depth","map","_row$subRows2","push","selection","_selection$row$id","allChildrenSelected","someSelected","subRow"],"mappings":";;;;;;;;;;;;;;;;AAwDA;;AAEO,MAAMA,YAA0B,GAAG;EACxCC,eAAe,EAAGC,KAAK,IAA6B;IAClD,OAAO;MACLC,YAAY,EAAE,EAAE;MAChB,GAAGD,KAAAA;KACJ,CAAA;GACF;EAEDE,iBAAiB,EACfC,KAAmB,IACY;IAC/B,OAAO;AACLC,MAAAA,oBAAoB,EAAEC,sBAAgB,CAAC,cAAc,EAAEF,KAAK,CAAC;AAC7DG,MAAAA,kBAAkB,EAAE,IAAI;AACxBC,MAAAA,uBAAuB,EAAE,IAAI;AAC7BC,MAAAA,qBAAqB,EAAE,IAAA;AACvB;AACA;AACA;KACD,CAAA;GACF;;EAEDC,WAAW,EACTN,KAAmB,IACa;IAChC,OAAO;AACLO,MAAAA,eAAe,EAAEC,OAAO,IAAIR,KAAK,CAACS,OAAO,CAACR,oBAAoB,IAAlCD,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAACS,OAAO,CAACR,oBAAoB,CAAGO,OAAO,CAAC;AACzEE,MAAAA,iBAAiB,EAAEC,YAAY,IAAA;AAAA,QAAA,IAAAC,qBAAA,CAAA;QAAA,OAC7BZ,KAAK,CAACO,eAAe,CACnBI,YAAY,GAAG,EAAE,GAAAC,CAAAA,qBAAA,GAAGZ,KAAK,CAACa,YAAY,CAACf,YAAY,YAAAc,qBAAA,GAAI,EAAE,CAC1D,CAAA;AAAA,OAAA;MACHE,qBAAqB,EAAEC,KAAK,IAAI;AAC9Bf,QAAAA,KAAK,CAACO,eAAe,CAACS,GAAG,IAAI;AAC3BD,UAAAA,KAAK,GACH,OAAOA,KAAK,KAAK,WAAW,GAAGA,KAAK,GAAG,CAACf,KAAK,CAACiB,oBAAoB,EAAE,CAAA;AAEtE,UAAA,MAAMnB,YAAY,GAAG;YAAE,GAAGkB,GAAAA;WAAK,CAAA;AAE/B,UAAA,MAAME,kBAAkB,GAAGlB,KAAK,CAACmB,qBAAqB,EAAE,CAACC,QAAQ,CAAA;;AAEjE;AACA;AACA,UAAA,IAAIL,KAAK,EAAE;AACTG,YAAAA,kBAAkB,CAACG,OAAO,CAACC,GAAG,IAAI;AAChC,cAAA,IAAI,CAACA,GAAG,CAACC,YAAY,EAAE,EAAE;AACvB,gBAAA,OAAA;AACF,eAAA;AACAzB,cAAAA,YAAY,CAACwB,GAAG,CAACE,EAAE,CAAC,GAAG,IAAI,CAAA;AAC7B,aAAC,CAAC,CAAA;AACJ,WAAC,MAAM;AACLN,YAAAA,kBAAkB,CAACG,OAAO,CAACC,GAAG,IAAI;AAChC,cAAA,OAAOxB,YAAY,CAACwB,GAAG,CAACE,EAAE,CAAC,CAAA;AAC7B,aAAC,CAAC,CAAA;AACJ,WAAA;AAEA,UAAA,OAAO1B,YAAY,CAAA;AACrB,SAAC,CAAC,CAAA;OACH;MACD2B,yBAAyB,EAAEV,KAAK,IAC9Bf,KAAK,CAACO,eAAe,CAACS,GAAG,IAAI;AAC3B,QAAA,MAAMU,aAAa,GACjB,OAAOX,KAAK,KAAK,WAAW,GACxBA,KAAK,GACL,CAACf,KAAK,CAAC2B,wBAAwB,EAAE,CAAA;AAEvC,QAAA,MAAM7B,YAA+B,GAAG;UAAE,GAAGkB,GAAAA;SAAK,CAAA;QAElDhB,KAAK,CAAC4B,WAAW,EAAE,CAACC,IAAI,CAACR,OAAO,CAACC,GAAG,IAAI;UACtCQ,mBAAmB,CAAChC,YAAY,EAAEwB,GAAG,CAACE,EAAE,EAAEE,aAAa,EAAE1B,KAAK,CAAC,CAAA;AACjE,SAAC,CAAC,CAAA;AAEF,QAAA,OAAOF,YAAY,CAAA;AACrB,OAAC,CAAC;AAEJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACAiC,MAAAA,sBAAsB,EAAEA,MAAM/B,KAAK,CAACgC,eAAe,EAAE;MACrDC,mBAAmB,EAAEC,UAAI,CACvB,MAAM,CAAClC,KAAK,CAACmC,QAAQ,EAAE,CAACrC,YAAY,EAAEE,KAAK,CAACgC,eAAe,EAAE,CAAC,EAC9D,CAAClC,YAAY,EAAEsC,QAAQ,KAAK;QAC1B,IAAI,CAACC,MAAM,CAACC,IAAI,CAACxC,YAAY,CAAC,CAACyC,MAAM,EAAE;UACrC,OAAO;AACLV,YAAAA,IAAI,EAAE,EAAE;AACRT,YAAAA,QAAQ,EAAE,EAAE;AACZoB,YAAAA,QAAQ,EAAE,EAAC;WACZ,CAAA;AACH,SAAA;AAEA,QAAA,OAAOC,YAAY,CAACzC,KAAK,EAAEoC,QAAQ,CAAC,CAAA;AACtC,OAAC,EACD;QACEM,GAAG,EAAEC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IAAI,qBAAqB;AACpEC,QAAAA,KAAK,EAAEA,MAAA;AAAA,UAAA,IAAAC,qBAAA,CAAA;AAAA,UAAA,OAAA,CAAAA,qBAAA,GAAM/C,KAAK,CAACS,OAAO,CAACuC,QAAQ,KAAAD,IAAAA,GAAAA,qBAAA,GAAI/C,KAAK,CAACS,OAAO,CAACwC,UAAU,CAAA;AAAA,SAAA;AACjE,OAAC,CACF;MAEDC,2BAA2B,EAAEhB,UAAI,CAC/B,MAAM,CAAClC,KAAK,CAACmC,QAAQ,EAAE,CAACrC,YAAY,EAAEE,KAAK,CAACmD,mBAAmB,EAAE,CAAC,EAClE,CAACrD,YAAY,EAAEsC,QAAQ,KAAK;QAC1B,IAAI,CAACC,MAAM,CAACC,IAAI,CAACxC,YAAY,CAAC,CAACyC,MAAM,EAAE;UACrC,OAAO;AACLV,YAAAA,IAAI,EAAE,EAAE;AACRT,YAAAA,QAAQ,EAAE,EAAE;AACZoB,YAAAA,QAAQ,EAAE,EAAC;WACZ,CAAA;AACH,SAAA;AAEA,QAAA,OAAOC,YAAY,CAACzC,KAAK,EAAEoC,QAAQ,CAAC,CAAA;AACtC,OAAC,EACD;QACEM,GAAG,EACDC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,IACrC,6BAA6B;AAC/BC,QAAAA,KAAK,EAAEA,MAAA;AAAA,UAAA,IAAAM,sBAAA,CAAA;AAAA,UAAA,OAAA,CAAAA,sBAAA,GAAMpD,KAAK,CAACS,OAAO,CAACuC,QAAQ,KAAAI,IAAAA,GAAAA,sBAAA,GAAIpD,KAAK,CAACS,OAAO,CAACwC,UAAU,CAAA;AAAA,SAAA;AACjE,OAAC,CACF;MAEDI,0BAA0B,EAAEnB,UAAI,CAC9B,MAAM,CAAClC,KAAK,CAACmC,QAAQ,EAAE,CAACrC,YAAY,EAAEE,KAAK,CAACsD,iBAAiB,EAAE,CAAC,EAChE,CAACxD,YAAY,EAAEsC,QAAQ,KAAK;QAC1B,IAAI,CAACC,MAAM,CAACC,IAAI,CAACxC,YAAY,CAAC,CAACyC,MAAM,EAAE;UACrC,OAAO;AACLV,YAAAA,IAAI,EAAE,EAAE;AACRT,YAAAA,QAAQ,EAAE,EAAE;AACZoB,YAAAA,QAAQ,EAAE,EAAC;WACZ,CAAA;AACH,SAAA;AAEA,QAAA,OAAOC,YAAY,CAACzC,KAAK,EAAEoC,QAAQ,CAAC,CAAA;AACtC,OAAC,EACD;QACEM,GAAG,EACDC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,IACrC,4BAA4B;AAC9BC,QAAAA,KAAK,EAAEA,MAAA;AAAA,UAAA,IAAAS,sBAAA,CAAA;AAAA,UAAA,OAAA,CAAAA,sBAAA,GAAMvD,KAAK,CAACS,OAAO,CAACuC,QAAQ,KAAAO,IAAAA,GAAAA,sBAAA,GAAIvD,KAAK,CAACS,OAAO,CAACwC,UAAU,CAAA;AAAA,SAAA;AACjE,OAAC,CACF;AAED;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;MAEAhC,oBAAoB,EAAEA,MAAM;AAC1B,QAAA,MAAMC,kBAAkB,GAAGlB,KAAK,CAACmD,mBAAmB,EAAE,CAAC/B,QAAQ,CAAA;QAC/D,MAAM;AAAEtB,UAAAA,YAAAA;AAAa,SAAC,GAAGE,KAAK,CAACmC,QAAQ,EAAE,CAAA;AAEzC,QAAA,IAAIqB,iBAAiB,GAAGC,OAAO,CAC7BvC,kBAAkB,CAACqB,MAAM,IAAIF,MAAM,CAACC,IAAI,CAACxC,YAAY,CAAC,CAACyC,MAAM,CAC9D,CAAA;AAED,QAAA,IAAIiB,iBAAiB,EAAE;AACrB,UAAA,IACEtC,kBAAkB,CAACwC,IAAI,CACrBpC,GAAG,IAAIA,GAAG,CAACC,YAAY,EAAE,IAAI,CAACzB,YAAY,CAACwB,GAAG,CAACE,EAAE,CAAC,CACnD,EACD;AACAgC,YAAAA,iBAAiB,GAAG,KAAK,CAAA;AAC3B,WAAA;AACF,SAAA;AAEA,QAAA,OAAOA,iBAAiB,CAAA;OACzB;MAED7B,wBAAwB,EAAEA,MAAM;AAC9B,QAAA,MAAMgC,kBAAkB,GAAG3D,KAAK,CAC7B4D,qBAAqB,EAAE,CACvBxC,QAAQ,CAACyC,MAAM,CAACvC,GAAG,IAAIA,GAAG,CAACC,YAAY,EAAE,CAAC,CAAA;QAC7C,MAAM;AAAEzB,UAAAA,YAAAA;AAAa,SAAC,GAAGE,KAAK,CAACmC,QAAQ,EAAE,CAAA;AAEzC,QAAA,IAAI2B,qBAAqB,GAAG,CAAC,CAACH,kBAAkB,CAACpB,MAAM,CAAA;AAEvD,QAAA,IACEuB,qBAAqB,IACrBH,kBAAkB,CAACD,IAAI,CAACpC,GAAG,IAAI,CAACxB,YAAY,CAACwB,GAAG,CAACE,EAAE,CAAC,CAAC,EACrD;AACAsC,UAAAA,qBAAqB,GAAG,KAAK,CAAA;AAC/B,SAAA;AAEA,QAAA,OAAOA,qBAAqB,CAAA;OAC7B;MAEDC,qBAAqB,EAAEA,MAAM;AAAA,QAAA,IAAAC,qBAAA,CAAA;QAC3B,MAAMC,aAAa,GAAG5B,MAAM,CAACC,IAAI,CAAA0B,CAAAA,qBAAA,GAC/BhE,KAAK,CAACmC,QAAQ,EAAE,CAACrC,YAAY,KAAAkE,IAAAA,GAAAA,qBAAA,GAAI,EAAE,CACpC,CAACzB,MAAM,CAAA;AACR,QAAA,OACE0B,aAAa,GAAG,CAAC,IACjBA,aAAa,GAAGjE,KAAK,CAACmD,mBAAmB,EAAE,CAAC/B,QAAQ,CAACmB,MAAM,CAAA;OAE9D;MAED2B,yBAAyB,EAAEA,MAAM;AAC/B,QAAA,MAAMP,kBAAkB,GAAG3D,KAAK,CAAC4D,qBAAqB,EAAE,CAACxC,QAAQ,CAAA;AACjE,QAAA,OAAOpB,KAAK,CAAC2B,wBAAwB,EAAE,GACnC,KAAK,GACLgC,kBAAkB,CACfE,MAAM,CAACvC,GAAG,IAAIA,GAAG,CAACC,YAAY,EAAE,CAAC,CACjCmC,IAAI,CAACS,CAAC,IAAIA,CAAC,CAACC,aAAa,EAAE,IAAID,CAAC,CAACE,iBAAiB,EAAE,CAAC,CAAA;OAC7D;MAEDC,+BAA+B,EAAEA,MAAM;AACrC,QAAA,OAAQC,CAAU,IAAK;UACrBvE,KAAK,CAACc,qBAAqB,CACvByD,CAAC,CAAgBC,MAAM,CAAsBC,OAAO,CACvD,CAAA;SACF,CAAA;OACF;MAEDC,mCAAmC,EAAEA,MAAM;AACzC,QAAA,OAAQH,CAAU,IAAK;UACrBvE,KAAK,CAACyB,yBAAyB,CAC3B8C,CAAC,CAAgBC,MAAM,CAAsBC,OAAO,CACvD,CAAA;SACF,CAAA;AACH,OAAA;KACD,CAAA;GACF;AAEDE,EAAAA,SAAS,EAAEA,CACTrD,GAAe,EACftB,KAAmB,KACC;IACpB,OAAO;MACL4E,cAAc,EAAE7D,KAAK,IAAI;AACvB,QAAA,MAAM8D,UAAU,GAAGvD,GAAG,CAAC8C,aAAa,EAAE,CAAA;AAEtCpE,QAAAA,KAAK,CAACO,eAAe,CAACS,GAAG,IAAI;UAC3BD,KAAK,GAAG,OAAOA,KAAK,KAAK,WAAW,GAAGA,KAAK,GAAG,CAAC8D,UAAU,CAAA;UAE1D,IAAIA,UAAU,KAAK9D,KAAK,EAAE;AACxB,YAAA,OAAOC,GAAG,CAAA;AACZ,WAAA;AAEA,UAAA,MAAM8D,cAAc,GAAG;YAAE,GAAG9D,GAAAA;WAAK,CAAA;UAEjCc,mBAAmB,CAACgD,cAAc,EAAExD,GAAG,CAACE,EAAE,EAAET,KAAK,EAAEf,KAAK,CAAC,CAAA;AAEzD,UAAA,OAAO8E,cAAc,CAAA;AACvB,SAAC,CAAC,CAAA;OACH;MACDV,aAAa,EAAEA,MAAM;QACnB,MAAM;AAAEtE,UAAAA,YAAAA;AAAa,SAAC,GAAGE,KAAK,CAACmC,QAAQ,EAAE,CAAA;AACzC,QAAA,OAAO4C,aAAa,CAACzD,GAAG,EAAExB,YAAY,CAAC,CAAA;OACxC;MAEDuE,iBAAiB,EAAEA,MAAM;QACvB,MAAM;AAAEvE,UAAAA,YAAAA;AAAa,SAAC,GAAGE,KAAK,CAACmC,QAAQ,EAAE,CAAA;QACzC,OAAO6C,gBAAgB,CAAC1D,GAAG,EAAExB,YAAmB,CAAC,KAAK,MAAM,CAAA;OAC7D;MAEDmF,uBAAuB,EAAEA,MAAM;QAC7B,MAAM;AAAEnF,UAAAA,YAAAA;AAAa,SAAC,GAAGE,KAAK,CAACmC,QAAQ,EAAE,CAAA;QACzC,OAAO6C,gBAAgB,CAAC1D,GAAG,EAAExB,YAAmB,CAAC,KAAK,KAAK,CAAA;OAC5D;MAEDyB,YAAY,EAAEA,MAAM;AAAA,QAAA,IAAA2D,qBAAA,CAAA;QAClB,IAAI,OAAOlF,KAAK,CAACS,OAAO,CAACN,kBAAkB,KAAK,UAAU,EAAE;AAC1D,UAAA,OAAOH,KAAK,CAACS,OAAO,CAACN,kBAAkB,CAACmB,GAAG,CAAC,CAAA;AAC9C,SAAA;QAEA,OAAA4D,CAAAA,qBAAA,GAAOlF,KAAK,CAACS,OAAO,CAACN,kBAAkB,KAAA,IAAA,GAAA+E,qBAAA,GAAI,IAAI,CAAA;OAChD;MAEDC,mBAAmB,EAAEA,MAAM;AAAA,QAAA,IAAAC,sBAAA,CAAA;QACzB,IAAI,OAAOpF,KAAK,CAACS,OAAO,CAACJ,qBAAqB,KAAK,UAAU,EAAE;AAC7D,UAAA,OAAOL,KAAK,CAACS,OAAO,CAACJ,qBAAqB,CAACiB,GAAG,CAAC,CAAA;AACjD,SAAA;QAEA,OAAA8D,CAAAA,sBAAA,GAAOpF,KAAK,CAACS,OAAO,CAACJ,qBAAqB,KAAA,IAAA,GAAA+E,sBAAA,GAAI,IAAI,CAAA;OACnD;MAEDC,iBAAiB,EAAEA,MAAM;AAAA,QAAA,IAAAC,sBAAA,CAAA;QACvB,IAAI,OAAOtF,KAAK,CAACS,OAAO,CAACL,uBAAuB,KAAK,UAAU,EAAE;AAC/D,UAAA,OAAOJ,KAAK,CAACS,OAAO,CAACL,uBAAuB,CAACkB,GAAG,CAAC,CAAA;AACnD,SAAA;QAEA,OAAAgE,CAAAA,sBAAA,GAAOtF,KAAK,CAACS,OAAO,CAACL,uBAAuB,KAAA,IAAA,GAAAkF,sBAAA,GAAI,IAAI,CAAA;OACrD;MACDC,wBAAwB,EAAEA,MAAM;AAC9B,QAAA,MAAMC,SAAS,GAAGlE,GAAG,CAACC,YAAY,EAAE,CAAA;AAEpC,QAAA,OAAQgD,CAAU,IAAK;AAAA,UAAA,IAAAkB,OAAA,CAAA;UACrB,IAAI,CAACD,SAAS,EAAE,OAAA;AAChBlE,UAAAA,GAAG,CAACsD,cAAc,CAAAa,CAAAA,OAAA,GACdlB,CAAC,CAAgBC,MAAM,KAAzBiB,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAA,CAAgDhB,OAAO,CACxD,CAAA;SACF,CAAA;AACH,OAAA;KACD,CAAA;AACH,GAAA;AACF,EAAC;AAED,MAAM3C,mBAAmB,GAAGA,CAC1BgD,cAAuC,EACvCtD,EAAU,EACVT,KAAc,EACdf,KAAmB,KAChB;AAAA,EAAA,IAAA0F,YAAA,CAAA;AACH,EAAA,MAAMpE,GAAG,GAAGtB,KAAK,CAAC2F,MAAM,CAACnE,EAAE,CAAC,CAAA;;AAE5B;;AAEA;AACA;AACA;AACA;AACA,EAAA,IAAIT,KAAK,EAAE;AACT,IAAA,IAAI,CAACO,GAAG,CAAC+D,iBAAiB,EAAE,EAAE;AAC5BhD,MAAAA,MAAM,CAACC,IAAI,CAACwC,cAAc,CAAC,CAACzD,OAAO,CAACqB,GAAG,IAAI,OAAOoC,cAAc,CAACpC,GAAG,CAAC,CAAC,CAAA;AACxE,KAAA;AACA,IAAA,IAAIpB,GAAG,CAACC,YAAY,EAAE,EAAE;AACtBuD,MAAAA,cAAc,CAACtD,EAAE,CAAC,GAAG,IAAI,CAAA;AAC3B,KAAA;AACF,GAAC,MAAM;IACL,OAAOsD,cAAc,CAACtD,EAAE,CAAC,CAAA;AAC3B,GAAA;AACA;;AAEA,EAAA,IAAI,CAAAkE,YAAA,GAAApE,GAAG,CAACsE,OAAO,KAAA,IAAA,IAAXF,YAAA,CAAanD,MAAM,IAAIjB,GAAG,CAAC6D,mBAAmB,EAAE,EAAE;AACpD7D,IAAAA,GAAG,CAACsE,OAAO,CAACvE,OAAO,CAACC,GAAG,IACrBQ,mBAAmB,CAACgD,cAAc,EAAExD,GAAG,CAACE,EAAE,EAAET,KAAK,EAAEf,KAAK,CAAC,CAC1D,CAAA;AACH,GAAA;AACF,CAAC,CAAA;AAEM,SAASyC,YAAYA,CAC1BzC,KAAmB,EACnBoC,QAAyB,EACR;AACjB,EAAA,MAAMtC,YAAY,GAAGE,KAAK,CAACmC,QAAQ,EAAE,CAACrC,YAAY,CAAA;EAElD,MAAM+F,mBAAiC,GAAG,EAAE,CAAA;EAC5C,MAAMC,mBAA+C,GAAG,EAAE,CAAA;;AAE1D;AACA,EAAA,MAAMC,WAAW,GAAG,UAAClE,IAAkB,EAAEmE,KAAK,EAAuB;AACnE,IAAA,OAAOnE,IAAI,CACRoE,GAAG,CAAC3E,GAAG,IAAI;AAAA,MAAA,IAAA4E,aAAA,CAAA;AACV,MAAA,MAAMrB,UAAU,GAAGE,aAAa,CAACzD,GAAG,EAAExB,YAAY,CAAC,CAAA;AAEnD,MAAA,IAAI+E,UAAU,EAAE;AACdgB,QAAAA,mBAAmB,CAACM,IAAI,CAAC7E,GAAG,CAAC,CAAA;AAC7BwE,QAAAA,mBAAmB,CAACxE,GAAG,CAACE,EAAE,CAAC,GAAGF,GAAG,CAAA;AACnC,OAAA;MAEA,IAAA4E,CAAAA,aAAA,GAAI5E,GAAG,CAACsE,OAAO,KAAXM,IAAAA,IAAAA,aAAA,CAAa3D,MAAM,EAAE;AACvBjB,QAAAA,GAAG,GAAG;AACJ,UAAA,GAAGA,GAAG;UACNsE,OAAO,EAAEG,WAAW,CAACzE,GAAG,CAACsE,OAAkB,CAAA;SAC5C,CAAA;AACH,OAAA;AAEA,MAAA,IAAIf,UAAU,EAAE;AACd,QAAA,OAAOvD,GAAG,CAAA;AACZ,OAAA;AACF,KAAC,CAAC,CACDuC,MAAM,CAACJ,OAAO,CAAC,CAAA;GACnB,CAAA;EAED,OAAO;AACL5B,IAAAA,IAAI,EAAEkE,WAAW,CAAC3D,QAAQ,CAACP,IAAI,CAAC;AAChCT,IAAAA,QAAQ,EAAEyE,mBAAmB;AAC7BrD,IAAAA,QAAQ,EAAEsD,mBAAAA;GACX,CAAA;AACH,CAAA;AAEO,SAASf,aAAaA,CAC3BzD,GAAe,EACf8E,SAAkC,EACzB;AAAA,EAAA,IAAAC,iBAAA,CAAA;EACT,OAAAA,CAAAA,iBAAA,GAAOD,SAAS,CAAC9E,GAAG,CAACE,EAAE,CAAC,KAAA,IAAA,GAAA6E,iBAAA,GAAI,KAAK,CAAA;AACnC,CAAA;AAEO,SAASrB,gBAAgBA,CAC9B1D,GAAe,EACf8E,SAAkC,EAClCpG,KAAmB,EACO;EAC1B,IAAIsB,GAAG,CAACsE,OAAO,IAAItE,GAAG,CAACsE,OAAO,CAACrD,MAAM,EAAE;IACrC,IAAI+D,mBAAmB,GAAG,IAAI,CAAA;IAC9B,IAAIC,YAAY,GAAG,KAAK,CAAA;AAExBjF,IAAAA,GAAG,CAACsE,OAAO,CAACvE,OAAO,CAACmF,MAAM,IAAI;AAC5B;AACA,MAAA,IAAID,YAAY,IAAI,CAACD,mBAAmB,EAAE;AACxC,QAAA,OAAA;AACF,OAAA;AAEA,MAAA,IAAIvB,aAAa,CAACyB,MAAM,EAAEJ,SAAS,CAAC,EAAE;AACpCG,QAAAA,YAAY,GAAG,IAAI,CAAA;AACrB,OAAC,MAAM;AACLD,QAAAA,mBAAmB,GAAG,KAAK,CAAA;AAC7B,OAAA;AACF,KAAC,CAAC,CAAA;IAEF,OAAOA,mBAAmB,GAAG,KAAK,GAAGC,YAAY,GAAG,MAAM,GAAG,KAAK,CAAA;AACpE,GAAA;AAEA,EAAA,OAAO,KAAK,CAAA;AACd;;;;;;;"}
1
+ {"version":3,"file":"RowSelection.js","sources":["../../../src/features/RowSelection.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, Row, RowModel, Updater, RowData } from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type RowSelectionState = Record<string, boolean>\n\nexport interface RowSelectionTableState {\n rowSelection: RowSelectionState\n}\n\nexport interface RowSelectionOptions<TData extends RowData> {\n enableRowSelection?: boolean | ((row: Row<TData>) => boolean)\n enableMultiRowSelection?: boolean | ((row: Row<TData>) => boolean)\n enableSubRowSelection?: boolean | ((row: Row<TData>) => boolean)\n onRowSelectionChange?: OnChangeFn<RowSelectionState>\n // enableGroupingRowSelection?:\n // | boolean\n // | ((\n // row: Row<TData>\n // ) => boolean)\n // isAdditiveSelectEvent?: (e: unknown) => boolean\n // isInclusiveSelectEvent?: (e: unknown) => boolean\n // selectRowsFn?: (\n // table: Table<TData>,\n // rowModel: RowModel<TData>\n // ) => RowModel<TData>\n}\n\nexport interface RowSelectionRow {\n getIsSelected: () => boolean\n getIsSomeSelected: () => boolean\n getIsAllSubRowsSelected: () => boolean\n getCanSelect: () => boolean\n getCanMultiSelect: () => boolean\n getCanSelectSubRows: () => boolean\n toggleSelected: (value?: boolean) => void\n getToggleSelectedHandler: () => (event: unknown) => void\n}\n\nexport interface RowSelectionInstance<TData extends RowData> {\n getToggleAllRowsSelectedHandler: () => (event: unknown) => void\n getToggleAllPageRowsSelectedHandler: () => (event: unknown) => void\n setRowSelection: (updater: Updater<RowSelectionState>) => void\n resetRowSelection: (defaultState?: boolean) => void\n getIsAllRowsSelected: () => boolean\n getIsAllPageRowsSelected: () => boolean\n getIsSomeRowsSelected: () => boolean\n getIsSomePageRowsSelected: () => boolean\n toggleAllRowsSelected: (value?: boolean) => void\n toggleAllPageRowsSelected: (value?: boolean) => void\n getPreSelectedRowModel: () => RowModel<TData>\n getSelectedRowModel: () => RowModel<TData>\n getFilteredSelectedRowModel: () => RowModel<TData>\n getGroupedSelectedRowModel: () => RowModel<TData>\n}\n\n//\n\nexport const RowSelection: TableFeature = {\n getInitialState: (state): RowSelectionTableState => {\n return {\n rowSelection: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): RowSelectionOptions<TData> => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', table),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true,\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): RowSelectionInstance<TData> => {\n return {\n setRowSelection: updater => table.options.onRowSelectionChange?.(updater),\n resetRowSelection: defaultState =>\n table.setRowSelection(\n defaultState ? {} : table.initialState.rowSelection ?? {}\n ),\n toggleAllRowsSelected: value => {\n table.setRowSelection(old => {\n value =\n typeof value !== 'undefined' ? value : !table.getIsAllRowsSelected()\n\n const rowSelection = { ...old }\n\n const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n if (!row.getCanSelect()) {\n return\n }\n rowSelection[row.id] = true\n })\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id]\n })\n }\n\n return rowSelection\n })\n },\n toggleAllPageRowsSelected: value =>\n table.setRowSelection(old => {\n const resolvedValue =\n typeof value !== 'undefined'\n ? value\n : !table.getIsAllPageRowsSelected()\n\n const rowSelection: RowSelectionState = { ...old }\n\n table.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, resolvedValue, table)\n })\n\n return rowSelection\n }),\n\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = table\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // table.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // table.setRowSelection(selectedRowIds)\n // },\n getPreSelectedRowModel: () => table.getCoreRowModel(),\n getSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getCoreRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n getFilteredSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getFilteredRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getFilteredSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n getGroupedSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getSortedRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getGroupedSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n ///\n\n // getGroupingRowCanSelect: rowId => {\n // const row = table.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof table.options.enableGroupingRowSelection === 'function') {\n // return table.options.enableGroupingRowSelection(row)\n // }\n\n // return table.options.enableGroupingRowSelection ?? false\n // },\n\n getIsAllRowsSelected: () => {\n const preGroupedFlatRows = table.getFilteredRowModel().flatRows\n const { rowSelection } = table.getState()\n\n let isAllRowsSelected = Boolean(\n preGroupedFlatRows.length && Object.keys(rowSelection).length\n )\n\n if (isAllRowsSelected) {\n if (\n preGroupedFlatRows.some(\n row => row.getCanSelect() && !rowSelection[row.id]\n )\n ) {\n isAllRowsSelected = false\n }\n }\n\n return isAllRowsSelected\n },\n\n getIsAllPageRowsSelected: () => {\n const paginationFlatRows = table\n .getPaginationRowModel()\n .flatRows.filter(row => row.getCanSelect())\n const { rowSelection } = table.getState()\n\n let isAllPageRowsSelected = !!paginationFlatRows.length\n\n if (\n isAllPageRowsSelected &&\n paginationFlatRows.some(row => !rowSelection[row.id])\n ) {\n isAllPageRowsSelected = false\n }\n\n return isAllPageRowsSelected\n },\n\n getIsSomeRowsSelected: () => {\n const totalSelected = Object.keys(\n table.getState().rowSelection ?? {}\n ).length\n return (\n totalSelected > 0 &&\n totalSelected < table.getFilteredRowModel().flatRows.length\n )\n },\n\n getIsSomePageRowsSelected: () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows\n return table.getIsAllPageRowsSelected()\n ? false\n : paginationFlatRows\n .filter(row => row.getCanSelect())\n .some(d => d.getIsSelected() || d.getIsSomeSelected())\n },\n\n getToggleAllRowsSelectedHandler: () => {\n return (e: unknown) => {\n table.toggleAllRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n\n getToggleAllPageRowsSelectedHandler: () => {\n return (e: unknown) => {\n table.toggleAllPageRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): RowSelectionRow => {\n return {\n toggleSelected: value => {\n const isSelected = row.getIsSelected()\n\n table.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !isSelected\n\n if (isSelected === value) {\n return old\n }\n\n const selectedRowIds = { ...old }\n\n mutateRowIsSelected(selectedRowIds, row.id, value, table)\n\n return selectedRowIds\n })\n },\n getIsSelected: () => {\n const { rowSelection } = table.getState()\n return isRowSelected(row, rowSelection)\n },\n\n getIsSomeSelected: () => {\n const { rowSelection } = table.getState()\n return isSubRowSelected(row, rowSelection, table) === 'some'\n },\n\n getIsAllSubRowsSelected: () => {\n const { rowSelection } = table.getState()\n return isSubRowSelected(row, rowSelection, table) === 'all'\n },\n\n getCanSelect: () => {\n if (typeof table.options.enableRowSelection === 'function') {\n return table.options.enableRowSelection(row)\n }\n\n return table.options.enableRowSelection ?? true\n },\n\n getCanSelectSubRows: () => {\n if (typeof table.options.enableSubRowSelection === 'function') {\n return table.options.enableSubRowSelection(row)\n }\n\n return table.options.enableSubRowSelection ?? true\n },\n\n getCanMultiSelect: () => {\n if (typeof table.options.enableMultiRowSelection === 'function') {\n return table.options.enableMultiRowSelection(row)\n }\n\n return table.options.enableMultiRowSelection ?? true\n },\n getToggleSelectedHandler: () => {\n const canSelect = row.getCanSelect()\n\n return (e: unknown) => {\n if (!canSelect) return\n row.toggleSelected(\n ((e as MouseEvent).target as HTMLInputElement)?.checked\n )\n }\n },\n }\n },\n}\n\nconst mutateRowIsSelected = <TData extends RowData>(\n selectedRowIds: Record<string, boolean>,\n id: string,\n value: boolean,\n table: Table<TData>\n) => {\n const row = table.getRow(id)\n\n // const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && table.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n if (!row.getCanMultiSelect()) {\n Object.keys(selectedRowIds).forEach(key => delete selectedRowIds[key])\n }\n if (row.getCanSelect()) {\n selectedRowIds[id] = true\n }\n } else {\n delete selectedRowIds[id]\n }\n // }\n\n if (row.subRows?.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row =>\n mutateRowIsSelected(selectedRowIds, row.id, value, table)\n )\n }\n}\n\nexport function selectRowsFn<TData extends RowData>(\n table: Table<TData>,\n rowModel: RowModel<TData>\n): RowModel<TData> {\n const rowSelection = table.getState().rowSelection\n\n const newSelectedFlatRows: Row<TData>[] = []\n const newSelectedRowsById: Record<string, Row<TData>> = {}\n\n // Filters top level and nested rows\n const recurseRows = (rows: Row<TData>[], depth = 0): Row<TData>[] => {\n return rows\n .map(row => {\n const isSelected = isRowSelected(row, rowSelection)\n\n if (isSelected) {\n newSelectedFlatRows.push(row)\n newSelectedRowsById[row.id] = row\n }\n\n if (row.subRows?.length) {\n row = {\n ...row,\n subRows: recurseRows(row.subRows, depth + 1),\n }\n }\n\n if (isSelected) {\n return row\n }\n })\n .filter(Boolean) as Row<TData>[]\n }\n\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById,\n }\n}\n\nexport function isRowSelected<TData extends RowData>(\n row: Row<TData>,\n selection: Record<string, boolean>\n): boolean {\n return selection[row.id] ?? false\n}\n\nexport function isSubRowSelected<TData extends RowData>(\n row: Row<TData>,\n selection: Record<string, boolean>,\n table: Table<TData>\n): boolean | 'some' | 'all' {\n if (row.subRows && row.subRows.length) {\n let allChildrenSelected = true\n let someSelected = false\n\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return\n }\n\n if (isRowSelected(subRow, selection)) {\n someSelected = true\n } else {\n allChildrenSelected = false\n }\n })\n\n return allChildrenSelected ? 'all' : someSelected ? 'some' : false\n }\n\n return false\n}\n"],"names":["RowSelection","getInitialState","state","rowSelection","getDefaultOptions","table","onRowSelectionChange","makeStateUpdater","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","createTable","setRowSelection","updater","options","resetRowSelection","defaultState","_table$initialState$r","initialState","toggleAllRowsSelected","value","old","getIsAllRowsSelected","preGroupedFlatRows","getPreGroupedRowModel","flatRows","forEach","row","getCanSelect","id","toggleAllPageRowsSelected","resolvedValue","getIsAllPageRowsSelected","getRowModel","rows","mutateRowIsSelected","getPreSelectedRowModel","getCoreRowModel","getSelectedRowModel","memo","getState","rowModel","Object","keys","length","rowsById","selectRowsFn","key","process","env","NODE_ENV","debug","_table$options$debugA","debugAll","debugTable","getFilteredSelectedRowModel","getFilteredRowModel","_table$options$debugA2","getGroupedSelectedRowModel","getSortedRowModel","_table$options$debugA3","isAllRowsSelected","Boolean","some","paginationFlatRows","getPaginationRowModel","filter","isAllPageRowsSelected","getIsSomeRowsSelected","_table$getState$rowSe","totalSelected","getIsSomePageRowsSelected","d","getIsSelected","getIsSomeSelected","getToggleAllRowsSelectedHandler","e","target","checked","getToggleAllPageRowsSelectedHandler","createRow","toggleSelected","isSelected","selectedRowIds","isRowSelected","isSubRowSelected","getIsAllSubRowsSelected","_table$options$enable","getCanSelectSubRows","_table$options$enable2","getCanMultiSelect","_table$options$enable3","getToggleSelectedHandler","canSelect","_target","_row$subRows","getRow","subRows","newSelectedFlatRows","newSelectedRowsById","recurseRows","depth","map","_row$subRows2","push","selection","_selection$row$id","allChildrenSelected","someSelected","subRow"],"mappings":";;;;;;;;;;;;;;;;AAwDA;;AAEO,MAAMA,YAA0B,GAAG;EACxCC,eAAe,EAAGC,KAAK,IAA6B;IAClD,OAAO;MACLC,YAAY,EAAE,EAAE;MAChB,GAAGD,KAAAA;KACJ,CAAA;GACF;EAEDE,iBAAiB,EACfC,KAAmB,IACY;IAC/B,OAAO;AACLC,MAAAA,oBAAoB,EAAEC,sBAAgB,CAAC,cAAc,EAAEF,KAAK,CAAC;AAC7DG,MAAAA,kBAAkB,EAAE,IAAI;AACxBC,MAAAA,uBAAuB,EAAE,IAAI;AAC7BC,MAAAA,qBAAqB,EAAE,IAAA;AACvB;AACA;AACA;KACD,CAAA;GACF;;EAEDC,WAAW,EACTN,KAAmB,IACa;IAChC,OAAO;AACLO,MAAAA,eAAe,EAAEC,OAAO,IAAIR,KAAK,CAACS,OAAO,CAACR,oBAAoB,IAAlCD,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAACS,OAAO,CAACR,oBAAoB,CAAGO,OAAO,CAAC;AACzEE,MAAAA,iBAAiB,EAAEC,YAAY,IAAA;AAAA,QAAA,IAAAC,qBAAA,CAAA;QAAA,OAC7BZ,KAAK,CAACO,eAAe,CACnBI,YAAY,GAAG,EAAE,GAAAC,CAAAA,qBAAA,GAAGZ,KAAK,CAACa,YAAY,CAACf,YAAY,YAAAc,qBAAA,GAAI,EACzD,CAAC,CAAA;AAAA,OAAA;MACHE,qBAAqB,EAAEC,KAAK,IAAI;AAC9Bf,QAAAA,KAAK,CAACO,eAAe,CAACS,GAAG,IAAI;AAC3BD,UAAAA,KAAK,GACH,OAAOA,KAAK,KAAK,WAAW,GAAGA,KAAK,GAAG,CAACf,KAAK,CAACiB,oBAAoB,EAAE,CAAA;AAEtE,UAAA,MAAMnB,YAAY,GAAG;YAAE,GAAGkB,GAAAA;WAAK,CAAA;UAE/B,MAAME,kBAAkB,GAAGlB,KAAK,CAACmB,qBAAqB,EAAE,CAACC,QAAQ,CAAA;;AAEjE;AACA;AACA,UAAA,IAAIL,KAAK,EAAE;AACTG,YAAAA,kBAAkB,CAACG,OAAO,CAACC,GAAG,IAAI;AAChC,cAAA,IAAI,CAACA,GAAG,CAACC,YAAY,EAAE,EAAE;AACvB,gBAAA,OAAA;AACF,eAAA;AACAzB,cAAAA,YAAY,CAACwB,GAAG,CAACE,EAAE,CAAC,GAAG,IAAI,CAAA;AAC7B,aAAC,CAAC,CAAA;AACJ,WAAC,MAAM;AACLN,YAAAA,kBAAkB,CAACG,OAAO,CAACC,GAAG,IAAI;AAChC,cAAA,OAAOxB,YAAY,CAACwB,GAAG,CAACE,EAAE,CAAC,CAAA;AAC7B,aAAC,CAAC,CAAA;AACJ,WAAA;AAEA,UAAA,OAAO1B,YAAY,CAAA;AACrB,SAAC,CAAC,CAAA;OACH;MACD2B,yBAAyB,EAAEV,KAAK,IAC9Bf,KAAK,CAACO,eAAe,CAACS,GAAG,IAAI;AAC3B,QAAA,MAAMU,aAAa,GACjB,OAAOX,KAAK,KAAK,WAAW,GACxBA,KAAK,GACL,CAACf,KAAK,CAAC2B,wBAAwB,EAAE,CAAA;AAEvC,QAAA,MAAM7B,YAA+B,GAAG;UAAE,GAAGkB,GAAAA;SAAK,CAAA;QAElDhB,KAAK,CAAC4B,WAAW,EAAE,CAACC,IAAI,CAACR,OAAO,CAACC,GAAG,IAAI;UACtCQ,mBAAmB,CAAChC,YAAY,EAAEwB,GAAG,CAACE,EAAE,EAAEE,aAAa,EAAE1B,KAAK,CAAC,CAAA;AACjE,SAAC,CAAC,CAAA;AAEF,QAAA,OAAOF,YAAY,CAAA;AACrB,OAAC,CAAC;AAEJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACAiC,MAAAA,sBAAsB,EAAEA,MAAM/B,KAAK,CAACgC,eAAe,EAAE;MACrDC,mBAAmB,EAAEC,UAAI,CACvB,MAAM,CAAClC,KAAK,CAACmC,QAAQ,EAAE,CAACrC,YAAY,EAAEE,KAAK,CAACgC,eAAe,EAAE,CAAC,EAC9D,CAAClC,YAAY,EAAEsC,QAAQ,KAAK;QAC1B,IAAI,CAACC,MAAM,CAACC,IAAI,CAACxC,YAAY,CAAC,CAACyC,MAAM,EAAE;UACrC,OAAO;AACLV,YAAAA,IAAI,EAAE,EAAE;AACRT,YAAAA,QAAQ,EAAE,EAAE;AACZoB,YAAAA,QAAQ,EAAE,EAAC;WACZ,CAAA;AACH,SAAA;AAEA,QAAA,OAAOC,YAAY,CAACzC,KAAK,EAAEoC,QAAQ,CAAC,CAAA;AACtC,OAAC,EACD;QACEM,GAAG,EAAEC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IAAI,qBAAqB;AACpEC,QAAAA,KAAK,EAAEA,MAAA;AAAA,UAAA,IAAAC,qBAAA,CAAA;AAAA,UAAA,OAAA,CAAAA,qBAAA,GAAM/C,KAAK,CAACS,OAAO,CAACuC,QAAQ,KAAAD,IAAAA,GAAAA,qBAAA,GAAI/C,KAAK,CAACS,OAAO,CAACwC,UAAU,CAAA;AAAA,SAAA;AACjE,OACF,CAAC;MAEDC,2BAA2B,EAAEhB,UAAI,CAC/B,MAAM,CAAClC,KAAK,CAACmC,QAAQ,EAAE,CAACrC,YAAY,EAAEE,KAAK,CAACmD,mBAAmB,EAAE,CAAC,EAClE,CAACrD,YAAY,EAAEsC,QAAQ,KAAK;QAC1B,IAAI,CAACC,MAAM,CAACC,IAAI,CAACxC,YAAY,CAAC,CAACyC,MAAM,EAAE;UACrC,OAAO;AACLV,YAAAA,IAAI,EAAE,EAAE;AACRT,YAAAA,QAAQ,EAAE,EAAE;AACZoB,YAAAA,QAAQ,EAAE,EAAC;WACZ,CAAA;AACH,SAAA;AAEA,QAAA,OAAOC,YAAY,CAACzC,KAAK,EAAEoC,QAAQ,CAAC,CAAA;AACtC,OAAC,EACD;QACEM,GAAG,EACDC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,IACrC,6BAA6B;AAC/BC,QAAAA,KAAK,EAAEA,MAAA;AAAA,UAAA,IAAAM,sBAAA,CAAA;AAAA,UAAA,OAAA,CAAAA,sBAAA,GAAMpD,KAAK,CAACS,OAAO,CAACuC,QAAQ,KAAAI,IAAAA,GAAAA,sBAAA,GAAIpD,KAAK,CAACS,OAAO,CAACwC,UAAU,CAAA;AAAA,SAAA;AACjE,OACF,CAAC;MAEDI,0BAA0B,EAAEnB,UAAI,CAC9B,MAAM,CAAClC,KAAK,CAACmC,QAAQ,EAAE,CAACrC,YAAY,EAAEE,KAAK,CAACsD,iBAAiB,EAAE,CAAC,EAChE,CAACxD,YAAY,EAAEsC,QAAQ,KAAK;QAC1B,IAAI,CAACC,MAAM,CAACC,IAAI,CAACxC,YAAY,CAAC,CAACyC,MAAM,EAAE;UACrC,OAAO;AACLV,YAAAA,IAAI,EAAE,EAAE;AACRT,YAAAA,QAAQ,EAAE,EAAE;AACZoB,YAAAA,QAAQ,EAAE,EAAC;WACZ,CAAA;AACH,SAAA;AAEA,QAAA,OAAOC,YAAY,CAACzC,KAAK,EAAEoC,QAAQ,CAAC,CAAA;AACtC,OAAC,EACD;QACEM,GAAG,EACDC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,IACrC,4BAA4B;AAC9BC,QAAAA,KAAK,EAAEA,MAAA;AAAA,UAAA,IAAAS,sBAAA,CAAA;AAAA,UAAA,OAAA,CAAAA,sBAAA,GAAMvD,KAAK,CAACS,OAAO,CAACuC,QAAQ,KAAAO,IAAAA,GAAAA,sBAAA,GAAIvD,KAAK,CAACS,OAAO,CAACwC,UAAU,CAAA;AAAA,SAAA;AACjE,OACF,CAAC;AAED;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;MAEAhC,oBAAoB,EAAEA,MAAM;QAC1B,MAAMC,kBAAkB,GAAGlB,KAAK,CAACmD,mBAAmB,EAAE,CAAC/B,QAAQ,CAAA;QAC/D,MAAM;AAAEtB,UAAAA,YAAAA;AAAa,SAAC,GAAGE,KAAK,CAACmC,QAAQ,EAAE,CAAA;AAEzC,QAAA,IAAIqB,iBAAiB,GAAGC,OAAO,CAC7BvC,kBAAkB,CAACqB,MAAM,IAAIF,MAAM,CAACC,IAAI,CAACxC,YAAY,CAAC,CAACyC,MACzD,CAAC,CAAA;AAED,QAAA,IAAIiB,iBAAiB,EAAE;UACrB,IACEtC,kBAAkB,CAACwC,IAAI,CACrBpC,GAAG,IAAIA,GAAG,CAACC,YAAY,EAAE,IAAI,CAACzB,YAAY,CAACwB,GAAG,CAACE,EAAE,CACnD,CAAC,EACD;AACAgC,YAAAA,iBAAiB,GAAG,KAAK,CAAA;AAC3B,WAAA;AACF,SAAA;AAEA,QAAA,OAAOA,iBAAiB,CAAA;OACzB;MAED7B,wBAAwB,EAAEA,MAAM;AAC9B,QAAA,MAAMgC,kBAAkB,GAAG3D,KAAK,CAC7B4D,qBAAqB,EAAE,CACvBxC,QAAQ,CAACyC,MAAM,CAACvC,GAAG,IAAIA,GAAG,CAACC,YAAY,EAAE,CAAC,CAAA;QAC7C,MAAM;AAAEzB,UAAAA,YAAAA;AAAa,SAAC,GAAGE,KAAK,CAACmC,QAAQ,EAAE,CAAA;AAEzC,QAAA,IAAI2B,qBAAqB,GAAG,CAAC,CAACH,kBAAkB,CAACpB,MAAM,CAAA;AAEvD,QAAA,IACEuB,qBAAqB,IACrBH,kBAAkB,CAACD,IAAI,CAACpC,GAAG,IAAI,CAACxB,YAAY,CAACwB,GAAG,CAACE,EAAE,CAAC,CAAC,EACrD;AACAsC,UAAAA,qBAAqB,GAAG,KAAK,CAAA;AAC/B,SAAA;AAEA,QAAA,OAAOA,qBAAqB,CAAA;OAC7B;MAEDC,qBAAqB,EAAEA,MAAM;AAAA,QAAA,IAAAC,qBAAA,CAAA;QAC3B,MAAMC,aAAa,GAAG5B,MAAM,CAACC,IAAI,CAAA0B,CAAAA,qBAAA,GAC/BhE,KAAK,CAACmC,QAAQ,EAAE,CAACrC,YAAY,KAAAkE,IAAAA,GAAAA,qBAAA,GAAI,EACnC,CAAC,CAACzB,MAAM,CAAA;AACR,QAAA,OACE0B,aAAa,GAAG,CAAC,IACjBA,aAAa,GAAGjE,KAAK,CAACmD,mBAAmB,EAAE,CAAC/B,QAAQ,CAACmB,MAAM,CAAA;OAE9D;MAED2B,yBAAyB,EAAEA,MAAM;QAC/B,MAAMP,kBAAkB,GAAG3D,KAAK,CAAC4D,qBAAqB,EAAE,CAACxC,QAAQ,CAAA;AACjE,QAAA,OAAOpB,KAAK,CAAC2B,wBAAwB,EAAE,GACnC,KAAK,GACLgC,kBAAkB,CACfE,MAAM,CAACvC,GAAG,IAAIA,GAAG,CAACC,YAAY,EAAE,CAAC,CACjCmC,IAAI,CAACS,CAAC,IAAIA,CAAC,CAACC,aAAa,EAAE,IAAID,CAAC,CAACE,iBAAiB,EAAE,CAAC,CAAA;OAC7D;MAEDC,+BAA+B,EAAEA,MAAM;AACrC,QAAA,OAAQC,CAAU,IAAK;UACrBvE,KAAK,CAACc,qBAAqB,CACvByD,CAAC,CAAgBC,MAAM,CAAsBC,OACjD,CAAC,CAAA;SACF,CAAA;OACF;MAEDC,mCAAmC,EAAEA,MAAM;AACzC,QAAA,OAAQH,CAAU,IAAK;UACrBvE,KAAK,CAACyB,yBAAyB,CAC3B8C,CAAC,CAAgBC,MAAM,CAAsBC,OACjD,CAAC,CAAA;SACF,CAAA;AACH,OAAA;KACD,CAAA;GACF;AAEDE,EAAAA,SAAS,EAAEA,CACTrD,GAAe,EACftB,KAAmB,KACC;IACpB,OAAO;MACL4E,cAAc,EAAE7D,KAAK,IAAI;AACvB,QAAA,MAAM8D,UAAU,GAAGvD,GAAG,CAAC8C,aAAa,EAAE,CAAA;AAEtCpE,QAAAA,KAAK,CAACO,eAAe,CAACS,GAAG,IAAI;UAC3BD,KAAK,GAAG,OAAOA,KAAK,KAAK,WAAW,GAAGA,KAAK,GAAG,CAAC8D,UAAU,CAAA;UAE1D,IAAIA,UAAU,KAAK9D,KAAK,EAAE;AACxB,YAAA,OAAOC,GAAG,CAAA;AACZ,WAAA;AAEA,UAAA,MAAM8D,cAAc,GAAG;YAAE,GAAG9D,GAAAA;WAAK,CAAA;UAEjCc,mBAAmB,CAACgD,cAAc,EAAExD,GAAG,CAACE,EAAE,EAAET,KAAK,EAAEf,KAAK,CAAC,CAAA;AAEzD,UAAA,OAAO8E,cAAc,CAAA;AACvB,SAAC,CAAC,CAAA;OACH;MACDV,aAAa,EAAEA,MAAM;QACnB,MAAM;AAAEtE,UAAAA,YAAAA;AAAa,SAAC,GAAGE,KAAK,CAACmC,QAAQ,EAAE,CAAA;AACzC,QAAA,OAAO4C,aAAa,CAACzD,GAAG,EAAExB,YAAY,CAAC,CAAA;OACxC;MAEDuE,iBAAiB,EAAEA,MAAM;QACvB,MAAM;AAAEvE,UAAAA,YAAAA;AAAa,SAAC,GAAGE,KAAK,CAACmC,QAAQ,EAAE,CAAA;QACzC,OAAO6C,gBAAgB,CAAC1D,GAAG,EAAExB,YAAmB,CAAC,KAAK,MAAM,CAAA;OAC7D;MAEDmF,uBAAuB,EAAEA,MAAM;QAC7B,MAAM;AAAEnF,UAAAA,YAAAA;AAAa,SAAC,GAAGE,KAAK,CAACmC,QAAQ,EAAE,CAAA;QACzC,OAAO6C,gBAAgB,CAAC1D,GAAG,EAAExB,YAAmB,CAAC,KAAK,KAAK,CAAA;OAC5D;MAEDyB,YAAY,EAAEA,MAAM;AAAA,QAAA,IAAA2D,qBAAA,CAAA;QAClB,IAAI,OAAOlF,KAAK,CAACS,OAAO,CAACN,kBAAkB,KAAK,UAAU,EAAE;AAC1D,UAAA,OAAOH,KAAK,CAACS,OAAO,CAACN,kBAAkB,CAACmB,GAAG,CAAC,CAAA;AAC9C,SAAA;QAEA,OAAA4D,CAAAA,qBAAA,GAAOlF,KAAK,CAACS,OAAO,CAACN,kBAAkB,KAAA,IAAA,GAAA+E,qBAAA,GAAI,IAAI,CAAA;OAChD;MAEDC,mBAAmB,EAAEA,MAAM;AAAA,QAAA,IAAAC,sBAAA,CAAA;QACzB,IAAI,OAAOpF,KAAK,CAACS,OAAO,CAACJ,qBAAqB,KAAK,UAAU,EAAE;AAC7D,UAAA,OAAOL,KAAK,CAACS,OAAO,CAACJ,qBAAqB,CAACiB,GAAG,CAAC,CAAA;AACjD,SAAA;QAEA,OAAA8D,CAAAA,sBAAA,GAAOpF,KAAK,CAACS,OAAO,CAACJ,qBAAqB,KAAA,IAAA,GAAA+E,sBAAA,GAAI,IAAI,CAAA;OACnD;MAEDC,iBAAiB,EAAEA,MAAM;AAAA,QAAA,IAAAC,sBAAA,CAAA;QACvB,IAAI,OAAOtF,KAAK,CAACS,OAAO,CAACL,uBAAuB,KAAK,UAAU,EAAE;AAC/D,UAAA,OAAOJ,KAAK,CAACS,OAAO,CAACL,uBAAuB,CAACkB,GAAG,CAAC,CAAA;AACnD,SAAA;QAEA,OAAAgE,CAAAA,sBAAA,GAAOtF,KAAK,CAACS,OAAO,CAACL,uBAAuB,KAAA,IAAA,GAAAkF,sBAAA,GAAI,IAAI,CAAA;OACrD;MACDC,wBAAwB,EAAEA,MAAM;AAC9B,QAAA,MAAMC,SAAS,GAAGlE,GAAG,CAACC,YAAY,EAAE,CAAA;AAEpC,QAAA,OAAQgD,CAAU,IAAK;AAAA,UAAA,IAAAkB,OAAA,CAAA;UACrB,IAAI,CAACD,SAAS,EAAE,OAAA;AAChBlE,UAAAA,GAAG,CAACsD,cAAc,CAAAa,CAAAA,OAAA,GACdlB,CAAC,CAAgBC,MAAM,KAAzBiB,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAA,CAAgDhB,OAClD,CAAC,CAAA;SACF,CAAA;AACH,OAAA;KACD,CAAA;AACH,GAAA;AACF,EAAC;AAED,MAAM3C,mBAAmB,GAAGA,CAC1BgD,cAAuC,EACvCtD,EAAU,EACVT,KAAc,EACdf,KAAmB,KAChB;AAAA,EAAA,IAAA0F,YAAA,CAAA;AACH,EAAA,MAAMpE,GAAG,GAAGtB,KAAK,CAAC2F,MAAM,CAACnE,EAAE,CAAC,CAAA;;AAE5B;;AAEA;AACA;AACA;AACA;AACA,EAAA,IAAIT,KAAK,EAAE;AACT,IAAA,IAAI,CAACO,GAAG,CAAC+D,iBAAiB,EAAE,EAAE;AAC5BhD,MAAAA,MAAM,CAACC,IAAI,CAACwC,cAAc,CAAC,CAACzD,OAAO,CAACqB,GAAG,IAAI,OAAOoC,cAAc,CAACpC,GAAG,CAAC,CAAC,CAAA;AACxE,KAAA;AACA,IAAA,IAAIpB,GAAG,CAACC,YAAY,EAAE,EAAE;AACtBuD,MAAAA,cAAc,CAACtD,EAAE,CAAC,GAAG,IAAI,CAAA;AAC3B,KAAA;AACF,GAAC,MAAM;IACL,OAAOsD,cAAc,CAACtD,EAAE,CAAC,CAAA;AAC3B,GAAA;AACA;;AAEA,EAAA,IAAI,CAAAkE,YAAA,GAAApE,GAAG,CAACsE,OAAO,KAAXF,IAAAA,IAAAA,YAAA,CAAanD,MAAM,IAAIjB,GAAG,CAAC6D,mBAAmB,EAAE,EAAE;AACpD7D,IAAAA,GAAG,CAACsE,OAAO,CAACvE,OAAO,CAACC,GAAG,IACrBQ,mBAAmB,CAACgD,cAAc,EAAExD,GAAG,CAACE,EAAE,EAAET,KAAK,EAAEf,KAAK,CAC1D,CAAC,CAAA;AACH,GAAA;AACF,CAAC,CAAA;AAEM,SAASyC,YAAYA,CAC1BzC,KAAmB,EACnBoC,QAAyB,EACR;EACjB,MAAMtC,YAAY,GAAGE,KAAK,CAACmC,QAAQ,EAAE,CAACrC,YAAY,CAAA;EAElD,MAAM+F,mBAAiC,GAAG,EAAE,CAAA;EAC5C,MAAMC,mBAA+C,GAAG,EAAE,CAAA;;AAE1D;AACA,EAAA,MAAMC,WAAW,GAAG,UAAClE,IAAkB,EAAEmE,KAAK,EAAuB;AACnE,IAAA,OAAOnE,IAAI,CACRoE,GAAG,CAAC3E,GAAG,IAAI;AAAA,MAAA,IAAA4E,aAAA,CAAA;AACV,MAAA,MAAMrB,UAAU,GAAGE,aAAa,CAACzD,GAAG,EAAExB,YAAY,CAAC,CAAA;AAEnD,MAAA,IAAI+E,UAAU,EAAE;AACdgB,QAAAA,mBAAmB,CAACM,IAAI,CAAC7E,GAAG,CAAC,CAAA;AAC7BwE,QAAAA,mBAAmB,CAACxE,GAAG,CAACE,EAAE,CAAC,GAAGF,GAAG,CAAA;AACnC,OAAA;MAEA,IAAA4E,CAAAA,aAAA,GAAI5E,GAAG,CAACsE,OAAO,KAAXM,IAAAA,IAAAA,aAAA,CAAa3D,MAAM,EAAE;AACvBjB,QAAAA,GAAG,GAAG;AACJ,UAAA,GAAGA,GAAG;UACNsE,OAAO,EAAEG,WAAW,CAACzE,GAAG,CAACsE,OAAkB,CAAA;SAC5C,CAAA;AACH,OAAA;AAEA,MAAA,IAAIf,UAAU,EAAE;AACd,QAAA,OAAOvD,GAAG,CAAA;AACZ,OAAA;AACF,KAAC,CAAC,CACDuC,MAAM,CAACJ,OAAO,CAAC,CAAA;GACnB,CAAA;EAED,OAAO;AACL5B,IAAAA,IAAI,EAAEkE,WAAW,CAAC3D,QAAQ,CAACP,IAAI,CAAC;AAChCT,IAAAA,QAAQ,EAAEyE,mBAAmB;AAC7BrD,IAAAA,QAAQ,EAAEsD,mBAAAA;GACX,CAAA;AACH,CAAA;AAEO,SAASf,aAAaA,CAC3BzD,GAAe,EACf8E,SAAkC,EACzB;AAAA,EAAA,IAAAC,iBAAA,CAAA;EACT,OAAAA,CAAAA,iBAAA,GAAOD,SAAS,CAAC9E,GAAG,CAACE,EAAE,CAAC,KAAA,IAAA,GAAA6E,iBAAA,GAAI,KAAK,CAAA;AACnC,CAAA;AAEO,SAASrB,gBAAgBA,CAC9B1D,GAAe,EACf8E,SAAkC,EAClCpG,KAAmB,EACO;EAC1B,IAAIsB,GAAG,CAACsE,OAAO,IAAItE,GAAG,CAACsE,OAAO,CAACrD,MAAM,EAAE;IACrC,IAAI+D,mBAAmB,GAAG,IAAI,CAAA;IAC9B,IAAIC,YAAY,GAAG,KAAK,CAAA;AAExBjF,IAAAA,GAAG,CAACsE,OAAO,CAACvE,OAAO,CAACmF,MAAM,IAAI;AAC5B;AACA,MAAA,IAAID,YAAY,IAAI,CAACD,mBAAmB,EAAE;AACxC,QAAA,OAAA;AACF,OAAA;AAEA,MAAA,IAAIvB,aAAa,CAACyB,MAAM,EAAEJ,SAAS,CAAC,EAAE;AACpCG,QAAAA,YAAY,GAAG,IAAI,CAAA;AACrB,OAAC,MAAM;AACLD,QAAAA,mBAAmB,GAAG,KAAK,CAAA;AAC7B,OAAA;AACF,KAAC,CAAC,CAAA;IAEF,OAAOA,mBAAmB,GAAG,KAAK,GAAGC,YAAY,GAAG,MAAM,GAAG,KAAK,CAAA;AACpE,GAAA;AAEA,EAAA,OAAO,KAAK,CAAA;AACd;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Sorting.js","sources":["../../../src/features/Sorting.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/table'\nimport {\n BuiltInSortingFn,\n reSplitAlphaNumeric,\n sortingFns,\n} from '../sortingFns'\n\nimport {\n Column,\n OnChangeFn,\n Table,\n Row,\n Updater,\n RowData,\n SortingFns,\n} from '../types'\n\nimport { isFunction, makeStateUpdater } from '../utils'\n\nexport type SortDirection = 'asc' | 'desc'\n\nexport interface ColumnSort {\n id: string\n desc: boolean\n}\n\nexport type SortingState = ColumnSort[]\n\nexport interface SortingTableState {\n sorting: SortingState\n}\n\nexport interface SortingFn<TData extends RowData> {\n (rowA: Row<TData>, rowB: Row<TData>, columnId: string): number\n}\n\nexport type CustomSortingFns<TData extends RowData> = Record<\n string,\n SortingFn<TData>\n>\n\nexport type SortingFnOption<TData extends RowData> =\n | 'auto'\n | keyof SortingFns\n | BuiltInSortingFn\n | SortingFn<TData>\n\nexport interface SortingColumnDef<TData extends RowData> {\n sortingFn?: SortingFnOption<TData>\n sortDescFirst?: boolean\n enableSorting?: boolean\n enableMultiSort?: boolean\n invertSorting?: boolean\n sortUndefined?: false | -1 | 1\n}\n\nexport interface SortingColumn<TData extends RowData> {\n getAutoSortingFn: () => SortingFn<TData>\n getAutoSortDir: () => SortDirection\n getSortingFn: () => SortingFn<TData>\n getFirstSortDir: () => SortDirection\n getNextSortingOrder: () => SortDirection | false\n getCanSort: () => boolean\n getCanMultiSort: () => boolean\n getSortIndex: () => number\n getIsSorted: () => false | SortDirection\n clearSorting: () => void\n toggleSorting: (desc?: boolean, isMulti?: boolean) => void\n getToggleSortingHandler: () => undefined | ((event: unknown) => void)\n}\n\ninterface SortingOptionsBase {\n manualSorting?: boolean\n onSortingChange?: OnChangeFn<SortingState>\n enableSorting?: boolean\n enableSortingRemoval?: boolean\n enableMultiRemove?: boolean\n enableMultiSort?: boolean\n sortDescFirst?: boolean\n getSortedRowModel?: (table: Table<any>) => () => RowModel<any>\n maxMultiSortColCount?: number\n isMultiSortEvent?: (e: unknown) => boolean\n}\n\ntype ResolvedSortingFns = keyof SortingFns extends never\n ? {\n sortingFns?: Record<string, SortingFn<any>>\n }\n : {\n sortingFns: Record<keyof SortingFns, SortingFn<any>>\n }\n\nexport interface SortingOptions<TData extends RowData>\n extends SortingOptionsBase,\n ResolvedSortingFns {}\n\nexport interface SortingInstance<TData extends RowData> {\n setSorting: (updater: Updater<SortingState>) => void\n resetSorting: (defaultState?: boolean) => void\n getPreSortedRowModel: () => RowModel<TData>\n getSortedRowModel: () => RowModel<TData>\n _getSortedRowModel?: () => RowModel<TData>\n}\n\n//\n\nexport const Sorting: TableFeature = {\n getInitialState: (state): SortingTableState => {\n return {\n sorting: [],\n ...state,\n }\n },\n\n getDefaultColumnDef: <TData extends RowData>(): SortingColumnDef<TData> => {\n return {\n sortingFn: 'auto',\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): SortingOptions<TData> => {\n return {\n onSortingChange: makeStateUpdater('sorting', table),\n isMultiSortEvent: (e: unknown) => {\n return (e as MouseEvent).shiftKey\n },\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): SortingColumn<TData> => {\n return {\n getAutoSortingFn: () => {\n const firstRows = table.getFilteredRowModel().flatRows.slice(10)\n\n let isString = false\n\n for (const row of firstRows) {\n const value = row?.getValue(column.id)\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortingFns.datetime\n }\n\n if (typeof value === 'string') {\n isString = true\n\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortingFns.alphanumeric\n }\n }\n }\n\n if (isString) {\n return sortingFns.text\n }\n\n return sortingFns.basic\n },\n getAutoSortDir: () => {\n const firstRow = table.getFilteredRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'string') {\n return 'asc'\n }\n\n return 'desc'\n },\n getSortingFn: () => {\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.columnDef.sortingFn)\n ? column.columnDef.sortingFn\n : column.columnDef.sortingFn === 'auto'\n ? column.getAutoSortingFn()\n : table.options.sortingFns?.[column.columnDef.sortingFn as string] ??\n sortingFns[column.columnDef.sortingFn as BuiltInSortingFn]\n },\n toggleSorting: (desc, multi) => {\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // table.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n // this needs to be outside of table.setSorting to be in sync with rerender\n const nextSortingOrder = column.getNextSortingOrder()\n const hasManualValue = typeof desc !== 'undefined' && desc !== null\n\n table.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old?.find(d => d.id === column.id)\n const existingIndex = old?.findIndex(d => d.id === column.id)\n\n let newSorting: SortingState = []\n\n // What should we do with this sort action?\n let sortAction: 'add' | 'remove' | 'toggle' | 'replace'\n let nextDesc = hasManualValue ? desc : nextSortingOrder === 'desc'\n\n // Multi-mode\n if (old?.length && column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'add'\n }\n } else {\n // Normal mode\n if (old?.length && existingIndex !== old.length - 1) {\n sortAction = 'replace'\n } else if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'replace'\n }\n }\n\n // Handle toggle states that will remove the sorting\n if (sortAction === 'toggle') {\n // If we are \"actually\" toggling (not a manual set value), should we remove the sorting?\n if (!hasManualValue) {\n // Is our intention to remove?\n if (!nextSortingOrder) {\n sortAction = 'remove'\n }\n }\n }\n\n if (sortAction === 'add') {\n newSorting = [\n ...old,\n {\n id: column.id,\n desc: nextDesc,\n },\n ]\n // Take latest n columns\n newSorting.splice(\n 0,\n newSorting.length -\n (table.options.maxMultiSortColCount ?? Number.MAX_SAFE_INTEGER)\n )\n } else if (sortAction === 'toggle') {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === column.id) {\n return {\n ...d,\n desc: nextDesc,\n }\n }\n return d\n })\n } else if (sortAction === 'remove') {\n newSorting = old.filter(d => d.id !== column.id)\n } else {\n newSorting = [\n {\n id: column.id,\n desc: nextDesc,\n },\n ]\n }\n\n return newSorting\n })\n },\n\n getFirstSortDir: () => {\n const sortDescFirst =\n column.columnDef.sortDescFirst ??\n table.options.sortDescFirst ??\n column.getAutoSortDir() === 'desc'\n return sortDescFirst ? 'desc' : 'asc'\n },\n\n getNextSortingOrder: (multi?: boolean) => {\n const firstSortDirection = column.getFirstSortDir()\n const isSorted = column.getIsSorted()\n\n if (!isSorted) {\n return firstSortDirection\n }\n\n if (\n isSorted !== firstSortDirection &&\n (table.options.enableSortingRemoval ?? true) && // If enableSortRemove, enable in general\n (multi ? table.options.enableMultiRemove ?? true : true) // If multi, don't allow if enableMultiRemove))\n ) {\n return false\n }\n return isSorted === 'desc' ? 'asc' : 'desc'\n },\n\n getCanSort: () => {\n return (\n (column.columnDef.enableSorting ?? true) &&\n (table.options.enableSorting ?? true) &&\n !!column.accessorFn\n )\n },\n\n getCanMultiSort: () => {\n return (\n column.columnDef.enableMultiSort ??\n table.options.enableMultiSort ??\n !!column.accessorFn\n )\n },\n\n getIsSorted: () => {\n const columnSort = table\n .getState()\n .sorting?.find(d => d.id === column.id)\n\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc'\n },\n\n getSortIndex: () =>\n table.getState().sorting?.findIndex(d => d.id === column.id) ?? -1,\n\n clearSorting: () => {\n //clear sorting for just 1 column\n table.setSorting(old =>\n old?.length ? old.filter(d => d.id !== column.id) : []\n )\n },\n\n getToggleSortingHandler: () => {\n const canSort = column.getCanSort()\n\n return (e: unknown) => {\n if (!canSort) return\n ;(e as any).persist?.()\n column.toggleSorting?.(\n undefined,\n column.getCanMultiSort()\n ? table.options.isMultiSortEvent?.(e)\n : false\n )\n }\n },\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): SortingInstance<TData> => {\n return {\n setSorting: updater => table.options.onSortingChange?.(updater),\n resetSorting: defaultState => {\n table.setSorting(defaultState ? [] : table.initialState?.sorting ?? [])\n },\n getPreSortedRowModel: () => table.getGroupedRowModel(),\n getSortedRowModel: () => {\n if (!table._getSortedRowModel && table.options.getSortedRowModel) {\n table._getSortedRowModel = table.options.getSortedRowModel(table)\n }\n\n if (table.options.manualSorting || !table._getSortedRowModel) {\n return table.getPreSortedRowModel()\n }\n\n return table._getSortedRowModel()\n },\n }\n },\n}\n"],"names":["Sorting","getInitialState","state","sorting","getDefaultColumnDef","sortingFn","getDefaultOptions","table","onSortingChange","makeStateUpdater","isMultiSortEvent","e","shiftKey","createColumn","column","getAutoSortingFn","firstRows","getFilteredRowModel","flatRows","slice","isString","row","value","getValue","id","Object","prototype","toString","call","sortingFns","datetime","split","reSplitAlphaNumeric","length","alphanumeric","text","basic","getAutoSortDir","firstRow","getSortingFn","_table$options$sortin","_table$options$sortin2","Error","isFunction","columnDef","options","toggleSorting","desc","multi","nextSortingOrder","getNextSortingOrder","hasManualValue","setSorting","old","existingSorting","find","d","existingIndex","findIndex","newSorting","sortAction","nextDesc","getCanMultiSort","_table$options$maxMul","splice","maxMultiSortColCount","Number","MAX_SAFE_INTEGER","map","filter","getFirstSortDir","_ref","_column$columnDef$sor","sortDescFirst","_table$options$enable","_table$options$enable2","firstSortDirection","isSorted","getIsSorted","enableSortingRemoval","enableMultiRemove","getCanSort","_column$columnDef$ena","_table$options$enable3","enableSorting","accessorFn","_ref2","_column$columnDef$ena2","enableMultiSort","_table$getState$sorti","columnSort","getState","getSortIndex","_table$getState$sorti2","_table$getState$sorti3","clearSorting","getToggleSortingHandler","canSort","persist","undefined","createTable","updater","resetSorting","defaultState","_table$initialState$s","_table$initialState","initialState","getPreSortedRowModel","getGroupedRowModel","getSortedRowModel","_getSortedRowModel","manualSorting"],"mappings":"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"}
1
+ {"version":3,"file":"Sorting.js","sources":["../../../src/features/Sorting.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/table'\nimport {\n BuiltInSortingFn,\n reSplitAlphaNumeric,\n sortingFns,\n} from '../sortingFns'\n\nimport {\n Column,\n OnChangeFn,\n Table,\n Row,\n Updater,\n RowData,\n SortingFns,\n} from '../types'\n\nimport { isFunction, makeStateUpdater } from '../utils'\n\nexport type SortDirection = 'asc' | 'desc'\n\nexport interface ColumnSort {\n id: string\n desc: boolean\n}\n\nexport type SortingState = ColumnSort[]\n\nexport interface SortingTableState {\n sorting: SortingState\n}\n\nexport interface SortingFn<TData extends RowData> {\n (rowA: Row<TData>, rowB: Row<TData>, columnId: string): number\n}\n\nexport type CustomSortingFns<TData extends RowData> = Record<\n string,\n SortingFn<TData>\n>\n\nexport type SortingFnOption<TData extends RowData> =\n | 'auto'\n | keyof SortingFns\n | BuiltInSortingFn\n | SortingFn<TData>\n\nexport interface SortingColumnDef<TData extends RowData> {\n sortingFn?: SortingFnOption<TData>\n sortDescFirst?: boolean\n enableSorting?: boolean\n enableMultiSort?: boolean\n invertSorting?: boolean\n sortUndefined?: false | -1 | 1\n}\n\nexport interface SortingColumn<TData extends RowData> {\n getAutoSortingFn: () => SortingFn<TData>\n getAutoSortDir: () => SortDirection\n getSortingFn: () => SortingFn<TData>\n getFirstSortDir: () => SortDirection\n getNextSortingOrder: () => SortDirection | false\n getCanSort: () => boolean\n getCanMultiSort: () => boolean\n getSortIndex: () => number\n getIsSorted: () => false | SortDirection\n clearSorting: () => void\n toggleSorting: (desc?: boolean, isMulti?: boolean) => void\n getToggleSortingHandler: () => undefined | ((event: unknown) => void)\n}\n\ninterface SortingOptionsBase {\n manualSorting?: boolean\n onSortingChange?: OnChangeFn<SortingState>\n enableSorting?: boolean\n enableSortingRemoval?: boolean\n enableMultiRemove?: boolean\n enableMultiSort?: boolean\n sortDescFirst?: boolean\n getSortedRowModel?: (table: Table<any>) => () => RowModel<any>\n maxMultiSortColCount?: number\n isMultiSortEvent?: (e: unknown) => boolean\n}\n\ntype ResolvedSortingFns = keyof SortingFns extends never\n ? {\n sortingFns?: Record<string, SortingFn<any>>\n }\n : {\n sortingFns: Record<keyof SortingFns, SortingFn<any>>\n }\n\nexport interface SortingOptions<TData extends RowData>\n extends SortingOptionsBase,\n ResolvedSortingFns {}\n\nexport interface SortingInstance<TData extends RowData> {\n setSorting: (updater: Updater<SortingState>) => void\n resetSorting: (defaultState?: boolean) => void\n getPreSortedRowModel: () => RowModel<TData>\n getSortedRowModel: () => RowModel<TData>\n _getSortedRowModel?: () => RowModel<TData>\n}\n\n//\n\nexport const Sorting: TableFeature = {\n getInitialState: (state): SortingTableState => {\n return {\n sorting: [],\n ...state,\n }\n },\n\n getDefaultColumnDef: <TData extends RowData>(): SortingColumnDef<TData> => {\n return {\n sortingFn: 'auto',\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): SortingOptions<TData> => {\n return {\n onSortingChange: makeStateUpdater('sorting', table),\n isMultiSortEvent: (e: unknown) => {\n return (e as MouseEvent).shiftKey\n },\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): SortingColumn<TData> => {\n return {\n getAutoSortingFn: () => {\n const firstRows = table.getFilteredRowModel().flatRows.slice(10)\n\n let isString = false\n\n for (const row of firstRows) {\n const value = row?.getValue(column.id)\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortingFns.datetime\n }\n\n if (typeof value === 'string') {\n isString = true\n\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortingFns.alphanumeric\n }\n }\n }\n\n if (isString) {\n return sortingFns.text\n }\n\n return sortingFns.basic\n },\n getAutoSortDir: () => {\n const firstRow = table.getFilteredRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'string') {\n return 'asc'\n }\n\n return 'desc'\n },\n getSortingFn: () => {\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.columnDef.sortingFn)\n ? column.columnDef.sortingFn\n : column.columnDef.sortingFn === 'auto'\n ? column.getAutoSortingFn()\n : table.options.sortingFns?.[column.columnDef.sortingFn as string] ??\n sortingFns[column.columnDef.sortingFn as BuiltInSortingFn]\n },\n toggleSorting: (desc, multi) => {\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // table.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n // this needs to be outside of table.setSorting to be in sync with rerender\n const nextSortingOrder = column.getNextSortingOrder()\n const hasManualValue = typeof desc !== 'undefined' && desc !== null\n\n table.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old?.find(d => d.id === column.id)\n const existingIndex = old?.findIndex(d => d.id === column.id)\n\n let newSorting: SortingState = []\n\n // What should we do with this sort action?\n let sortAction: 'add' | 'remove' | 'toggle' | 'replace'\n let nextDesc = hasManualValue ? desc : nextSortingOrder === 'desc'\n\n // Multi-mode\n if (old?.length && column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'add'\n }\n } else {\n // Normal mode\n if (old?.length && existingIndex !== old.length - 1) {\n sortAction = 'replace'\n } else if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'replace'\n }\n }\n\n // Handle toggle states that will remove the sorting\n if (sortAction === 'toggle') {\n // If we are \"actually\" toggling (not a manual set value), should we remove the sorting?\n if (!hasManualValue) {\n // Is our intention to remove?\n if (!nextSortingOrder) {\n sortAction = 'remove'\n }\n }\n }\n\n if (sortAction === 'add') {\n newSorting = [\n ...old,\n {\n id: column.id,\n desc: nextDesc,\n },\n ]\n // Take latest n columns\n newSorting.splice(\n 0,\n newSorting.length -\n (table.options.maxMultiSortColCount ?? Number.MAX_SAFE_INTEGER)\n )\n } else if (sortAction === 'toggle') {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === column.id) {\n return {\n ...d,\n desc: nextDesc,\n }\n }\n return d\n })\n } else if (sortAction === 'remove') {\n newSorting = old.filter(d => d.id !== column.id)\n } else {\n newSorting = [\n {\n id: column.id,\n desc: nextDesc,\n },\n ]\n }\n\n return newSorting\n })\n },\n\n getFirstSortDir: () => {\n const sortDescFirst =\n column.columnDef.sortDescFirst ??\n table.options.sortDescFirst ??\n column.getAutoSortDir() === 'desc'\n return sortDescFirst ? 'desc' : 'asc'\n },\n\n getNextSortingOrder: (multi?: boolean) => {\n const firstSortDirection = column.getFirstSortDir()\n const isSorted = column.getIsSorted()\n\n if (!isSorted) {\n return firstSortDirection\n }\n\n if (\n isSorted !== firstSortDirection &&\n (table.options.enableSortingRemoval ?? true) && // If enableSortRemove, enable in general\n (multi ? table.options.enableMultiRemove ?? true : true) // If multi, don't allow if enableMultiRemove))\n ) {\n return false\n }\n return isSorted === 'desc' ? 'asc' : 'desc'\n },\n\n getCanSort: () => {\n return (\n (column.columnDef.enableSorting ?? true) &&\n (table.options.enableSorting ?? true) &&\n !!column.accessorFn\n )\n },\n\n getCanMultiSort: () => {\n return (\n column.columnDef.enableMultiSort ??\n table.options.enableMultiSort ??\n !!column.accessorFn\n )\n },\n\n getIsSorted: () => {\n const columnSort = table\n .getState()\n .sorting?.find(d => d.id === column.id)\n\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc'\n },\n\n getSortIndex: () =>\n table.getState().sorting?.findIndex(d => d.id === column.id) ?? -1,\n\n clearSorting: () => {\n //clear sorting for just 1 column\n table.setSorting(old =>\n old?.length ? old.filter(d => d.id !== column.id) : []\n )\n },\n\n getToggleSortingHandler: () => {\n const canSort = column.getCanSort()\n\n return (e: unknown) => {\n if (!canSort) return\n ;(e as any).persist?.()\n column.toggleSorting?.(\n undefined,\n column.getCanMultiSort()\n ? table.options.isMultiSortEvent?.(e)\n : false\n )\n }\n },\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): SortingInstance<TData> => {\n return {\n setSorting: updater => table.options.onSortingChange?.(updater),\n resetSorting: defaultState => {\n table.setSorting(defaultState ? [] : table.initialState?.sorting ?? [])\n },\n getPreSortedRowModel: () => table.getGroupedRowModel(),\n getSortedRowModel: () => {\n if (!table._getSortedRowModel && table.options.getSortedRowModel) {\n table._getSortedRowModel = table.options.getSortedRowModel(table)\n }\n\n if (table.options.manualSorting || !table._getSortedRowModel) {\n return table.getPreSortedRowModel()\n }\n\n return table._getSortedRowModel()\n },\n }\n },\n}\n"],"names":["Sorting","getInitialState","state","sorting","getDefaultColumnDef","sortingFn","getDefaultOptions","table","onSortingChange","makeStateUpdater","isMultiSortEvent","e","shiftKey","createColumn","column","getAutoSortingFn","firstRows","getFilteredRowModel","flatRows","slice","isString","row","value","getValue","id","Object","prototype","toString","call","sortingFns","datetime","split","reSplitAlphaNumeric","length","alphanumeric","text","basic","getAutoSortDir","firstRow","getSortingFn","_table$options$sortin","_table$options$sortin2","Error","isFunction","columnDef","options","toggleSorting","desc","multi","nextSortingOrder","getNextSortingOrder","hasManualValue","setSorting","old","existingSorting","find","d","existingIndex","findIndex","newSorting","sortAction","nextDesc","getCanMultiSort","_table$options$maxMul","splice","maxMultiSortColCount","Number","MAX_SAFE_INTEGER","map","filter","getFirstSortDir","_ref","_column$columnDef$sor","sortDescFirst","_table$options$enable","_table$options$enable2","firstSortDirection","isSorted","getIsSorted","enableSortingRemoval","enableMultiRemove","getCanSort","_column$columnDef$ena","_table$options$enable3","enableSorting","accessorFn","_ref2","_column$columnDef$ena2","enableMultiSort","_table$getState$sorti","columnSort","getState","getSortIndex","_table$getState$sorti2","_table$getState$sorti3","clearSorting","getToggleSortingHandler","canSort","persist","undefined","createTable","updater","resetSorting","defaultState","_table$initialState$s","_table$initialState","initialState","getPreSortedRowModel","getGroupedRowModel","getSortedRowModel","_getSortedRowModel","manualSorting"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Visibility.js","sources":["../../../src/features/Visibility.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport {\n Cell,\n Column,\n OnChangeFn,\n Table,\n Updater,\n Row,\n RowData,\n} from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type VisibilityState = Record<string, boolean>\n\nexport interface VisibilityTableState {\n columnVisibility: VisibilityState\n}\n\nexport interface VisibilityOptions {\n onColumnVisibilityChange?: OnChangeFn<VisibilityState>\n enableHiding?: boolean\n}\n\nexport interface VisibilityDefaultOptions {\n onColumnVisibilityChange: OnChangeFn<VisibilityState>\n}\n\nexport interface VisibilityInstance<TData extends RowData> {\n getVisibleFlatColumns: () => Column<TData, unknown>[]\n getVisibleLeafColumns: () => Column<TData, unknown>[]\n getLeftVisibleLeafColumns: () => Column<TData, unknown>[]\n getRightVisibleLeafColumns: () => Column<TData, unknown>[]\n getCenterVisibleLeafColumns: () => Column<TData, unknown>[]\n setColumnVisibility: (updater: Updater<VisibilityState>) => void\n resetColumnVisibility: (defaultState?: boolean) => void\n toggleAllColumnsVisible: (value?: boolean) => void\n getIsAllColumnsVisible: () => boolean\n getIsSomeColumnsVisible: () => boolean\n getToggleAllColumnsVisibilityHandler: () => (event: unknown) => void\n}\n\nexport interface VisibilityColumnDef {\n enableHiding?: boolean\n}\n\nexport interface VisibilityRow<TData extends RowData> {\n _getAllVisibleCells: () => Cell<TData, unknown>[]\n getVisibleCells: () => Cell<TData, unknown>[]\n}\n\nexport interface VisibilityColumn {\n getCanHide: () => boolean\n getIsVisible: () => boolean\n toggleVisibility: (value?: boolean) => void\n getToggleVisibilityHandler: () => (event: unknown) => void\n}\n\n//\n\nexport const Visibility: TableFeature = {\n getInitialState: (state): VisibilityTableState => {\n return {\n columnVisibility: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): VisibilityDefaultOptions => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', table),\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): VisibilityColumn => {\n return {\n toggleVisibility: value => {\n if (column.getCanHide()) {\n table.setColumnVisibility(old => ({\n ...old,\n [column.id]: value ?? !column.getIsVisible(),\n }))\n }\n },\n getIsVisible: () => {\n return table.getState().columnVisibility?.[column.id] ?? true\n },\n\n getCanHide: () => {\n return (\n (column.columnDef.enableHiding ?? true) &&\n (table.options.enableHiding ?? true)\n )\n },\n getToggleVisibilityHandler: () => {\n return (e: unknown) => {\n column.toggleVisibility?.(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): VisibilityRow<TData> => {\n return {\n _getAllVisibleCells: memo(\n () => [row.getAllCells(), table.getState().columnVisibility],\n cells => {\n return cells.filter(cell => cell.column.getIsVisible())\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row._getAllVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n getVisibleCells: memo(\n () => [\n row.getLeftVisibleCells(),\n row.getCenterVisibleCells(),\n row.getRightVisibleCells(),\n ],\n (left, center, right) => [...left, ...center, ...right],\n {\n key: process.env.NODE_ENV === 'development' && 'row.getVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): VisibilityInstance<TData> => {\n const makeVisibleColumnsMethod = (\n key: string,\n getColumns: () => Column<TData, unknown>[]\n ): (() => Column<TData, unknown>[]) => {\n return memo(\n () => [\n getColumns(),\n getColumns()\n .filter(d => d.getIsVisible())\n .map(d => d.id)\n .join('_'),\n ],\n columns => {\n return columns.filter(d => d.getIsVisible?.())\n },\n {\n key,\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n )\n }\n\n return {\n getVisibleFlatColumns: makeVisibleColumnsMethod(\n 'getVisibleFlatColumns',\n () => table.getAllFlatColumns()\n ),\n getVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getVisibleLeafColumns',\n () => table.getAllLeafColumns()\n ),\n getLeftVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getLeftVisibleLeafColumns',\n () => table.getLeftLeafColumns()\n ),\n getRightVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getRightVisibleLeafColumns',\n () => table.getRightLeafColumns()\n ),\n getCenterVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getCenterVisibleLeafColumns',\n () => table.getCenterLeafColumns()\n ),\n\n setColumnVisibility: updater =>\n table.options.onColumnVisibilityChange?.(updater),\n\n resetColumnVisibility: defaultState => {\n table.setColumnVisibility(\n defaultState ? {} : table.initialState.columnVisibility ?? {}\n )\n },\n\n toggleAllColumnsVisible: value => {\n value = value ?? !table.getIsAllColumnsVisible()\n\n table.setColumnVisibility(\n table.getAllLeafColumns().reduce(\n (obj, column) => ({\n ...obj,\n [column.id]: !value ? !column.getCanHide?.() : value,\n }),\n {}\n )\n )\n },\n\n getIsAllColumnsVisible: () =>\n !table.getAllLeafColumns().some(column => !column.getIsVisible?.()),\n\n getIsSomeColumnsVisible: () =>\n table.getAllLeafColumns().some(column => column.getIsVisible?.()),\n\n getToggleAllColumnsVisibilityHandler: () => {\n return (e: unknown) => {\n table.toggleAllColumnsVisible(\n ((e as MouseEvent).target as HTMLInputElement)?.checked\n )\n }\n },\n }\n },\n}\n"],"names":["Visibility","getInitialState","state","columnVisibility","getDefaultOptions","table","onColumnVisibilityChange","makeStateUpdater","createColumn","column","toggleVisibility","value","getCanHide","setColumnVisibility","old","id","getIsVisible","_table$getState$colum","_table$getState$colum2","getState","_column$columnDef$ena","_table$options$enable","columnDef","enableHiding","options","getToggleVisibilityHandler","e","target","checked","createRow","row","_getAllVisibleCells","memo","getAllCells","cells","filter","cell","key","process","env","NODE_ENV","debug","_table$options$debugA","debugAll","debugRows","getVisibleCells","getLeftVisibleCells","getCenterVisibleCells","getRightVisibleCells","left","center","right","_table$options$debugA2","createTable","makeVisibleColumnsMethod","getColumns","d","map","join","columns","_table$options$debugA3","debugColumns","getVisibleFlatColumns","getAllFlatColumns","getVisibleLeafColumns","getAllLeafColumns","getLeftVisibleLeafColumns","getLeftLeafColumns","getRightVisibleLeafColumns","getRightLeafColumns","getCenterVisibleLeafColumns","getCenterLeafColumns","updater","resetColumnVisibility","defaultState","_table$initialState$c","initialState","toggleAllColumnsVisible","_value","getIsAllColumnsVisible","reduce","obj","some","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityHandler","_target"],"mappings":"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"}
1
+ {"version":3,"file":"Visibility.js","sources":["../../../src/features/Visibility.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport {\n Cell,\n Column,\n OnChangeFn,\n Table,\n Updater,\n Row,\n RowData,\n} from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type VisibilityState = Record<string, boolean>\n\nexport interface VisibilityTableState {\n columnVisibility: VisibilityState\n}\n\nexport interface VisibilityOptions {\n onColumnVisibilityChange?: OnChangeFn<VisibilityState>\n enableHiding?: boolean\n}\n\nexport interface VisibilityDefaultOptions {\n onColumnVisibilityChange: OnChangeFn<VisibilityState>\n}\n\nexport interface VisibilityInstance<TData extends RowData> {\n getVisibleFlatColumns: () => Column<TData, unknown>[]\n getVisibleLeafColumns: () => Column<TData, unknown>[]\n getLeftVisibleLeafColumns: () => Column<TData, unknown>[]\n getRightVisibleLeafColumns: () => Column<TData, unknown>[]\n getCenterVisibleLeafColumns: () => Column<TData, unknown>[]\n setColumnVisibility: (updater: Updater<VisibilityState>) => void\n resetColumnVisibility: (defaultState?: boolean) => void\n toggleAllColumnsVisible: (value?: boolean) => void\n getIsAllColumnsVisible: () => boolean\n getIsSomeColumnsVisible: () => boolean\n getToggleAllColumnsVisibilityHandler: () => (event: unknown) => void\n}\n\nexport interface VisibilityColumnDef {\n enableHiding?: boolean\n}\n\nexport interface VisibilityRow<TData extends RowData> {\n _getAllVisibleCells: () => Cell<TData, unknown>[]\n getVisibleCells: () => Cell<TData, unknown>[]\n}\n\nexport interface VisibilityColumn {\n getCanHide: () => boolean\n getIsVisible: () => boolean\n toggleVisibility: (value?: boolean) => void\n getToggleVisibilityHandler: () => (event: unknown) => void\n}\n\n//\n\nexport const Visibility: TableFeature = {\n getInitialState: (state): VisibilityTableState => {\n return {\n columnVisibility: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): VisibilityDefaultOptions => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', table),\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): VisibilityColumn => {\n return {\n toggleVisibility: value => {\n if (column.getCanHide()) {\n table.setColumnVisibility(old => ({\n ...old,\n [column.id]: value ?? !column.getIsVisible(),\n }))\n }\n },\n getIsVisible: () => {\n return table.getState().columnVisibility?.[column.id] ?? true\n },\n\n getCanHide: () => {\n return (\n (column.columnDef.enableHiding ?? true) &&\n (table.options.enableHiding ?? true)\n )\n },\n getToggleVisibilityHandler: () => {\n return (e: unknown) => {\n column.toggleVisibility?.(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): VisibilityRow<TData> => {\n return {\n _getAllVisibleCells: memo(\n () => [row.getAllCells(), table.getState().columnVisibility],\n cells => {\n return cells.filter(cell => cell.column.getIsVisible())\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row._getAllVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n getVisibleCells: memo(\n () => [\n row.getLeftVisibleCells(),\n row.getCenterVisibleCells(),\n row.getRightVisibleCells(),\n ],\n (left, center, right) => [...left, ...center, ...right],\n {\n key: process.env.NODE_ENV === 'development' && 'row.getVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): VisibilityInstance<TData> => {\n const makeVisibleColumnsMethod = (\n key: string,\n getColumns: () => Column<TData, unknown>[]\n ): (() => Column<TData, unknown>[]) => {\n return memo(\n () => [\n getColumns(),\n getColumns()\n .filter(d => d.getIsVisible())\n .map(d => d.id)\n .join('_'),\n ],\n columns => {\n return columns.filter(d => d.getIsVisible?.())\n },\n {\n key,\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n )\n }\n\n return {\n getVisibleFlatColumns: makeVisibleColumnsMethod(\n 'getVisibleFlatColumns',\n () => table.getAllFlatColumns()\n ),\n getVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getVisibleLeafColumns',\n () => table.getAllLeafColumns()\n ),\n getLeftVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getLeftVisibleLeafColumns',\n () => table.getLeftLeafColumns()\n ),\n getRightVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getRightVisibleLeafColumns',\n () => table.getRightLeafColumns()\n ),\n getCenterVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getCenterVisibleLeafColumns',\n () => table.getCenterLeafColumns()\n ),\n\n setColumnVisibility: updater =>\n table.options.onColumnVisibilityChange?.(updater),\n\n resetColumnVisibility: defaultState => {\n table.setColumnVisibility(\n defaultState ? {} : table.initialState.columnVisibility ?? {}\n )\n },\n\n toggleAllColumnsVisible: value => {\n value = value ?? !table.getIsAllColumnsVisible()\n\n table.setColumnVisibility(\n table.getAllLeafColumns().reduce(\n (obj, column) => ({\n ...obj,\n [column.id]: !value ? !column.getCanHide?.() : value,\n }),\n {}\n )\n )\n },\n\n getIsAllColumnsVisible: () =>\n !table.getAllLeafColumns().some(column => !column.getIsVisible?.()),\n\n getIsSomeColumnsVisible: () =>\n table.getAllLeafColumns().some(column => column.getIsVisible?.()),\n\n getToggleAllColumnsVisibilityHandler: () => {\n return (e: unknown) => {\n table.toggleAllColumnsVisible(\n ((e as MouseEvent).target as HTMLInputElement)?.checked\n )\n }\n },\n }\n },\n}\n"],"names":["Visibility","getInitialState","state","columnVisibility","getDefaultOptions","table","onColumnVisibilityChange","makeStateUpdater","createColumn","column","toggleVisibility","value","getCanHide","setColumnVisibility","old","id","getIsVisible","_table$getState$colum","_table$getState$colum2","getState","_column$columnDef$ena","_table$options$enable","columnDef","enableHiding","options","getToggleVisibilityHandler","e","target","checked","createRow","row","_getAllVisibleCells","memo","getAllCells","cells","filter","cell","key","process","env","NODE_ENV","debug","_table$options$debugA","debugAll","debugRows","getVisibleCells","getLeftVisibleCells","getCenterVisibleCells","getRightVisibleCells","left","center","right","_table$options$debugA2","createTable","makeVisibleColumnsMethod","getColumns","d","map","join","columns","_table$options$debugA3","debugColumns","getVisibleFlatColumns","getAllFlatColumns","getVisibleLeafColumns","getAllLeafColumns","getLeftVisibleLeafColumns","getLeftLeafColumns","getRightVisibleLeafColumns","getRightLeafColumns","getCenterVisibleLeafColumns","getCenterLeafColumns","updater","resetColumnVisibility","defaultState","_table$initialState$c","initialState","toggleAllColumnsVisible","_value","getIsAllColumnsVisible","reduce","obj","some","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityHandler","_target"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"filterFns.js","sources":["../../src/filterFns.ts"],"sourcesContent":["import { FilterFn } from './features/Filters'\n\nconst includesString: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: string\n) => {\n const search = filterValue.toLowerCase()\n return Boolean(\n row\n .getValue<string | null>(columnId)\n ?.toString()\n ?.toLowerCase()\n ?.includes(search)\n )\n}\n\nincludesString.autoRemove = (val: any) => testFalsey(val)\n\nconst includesStringSensitive: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: string\n) => {\n return Boolean(\n row.getValue<string | null>(columnId)?.toString()?.includes(filterValue)\n )\n}\n\nincludesStringSensitive.autoRemove = (val: any) => testFalsey(val)\n\nconst equalsString: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: string\n) => {\n return (\n row.getValue<string | null>(columnId)?.toString()?.toLowerCase() ===\n filterValue?.toLowerCase()\n )\n}\n\nequalsString.autoRemove = (val: any) => testFalsey(val)\n\nconst arrIncludes: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown\n) => {\n return row.getValue<unknown[]>(columnId)?.includes(filterValue)\n}\n\narrIncludes.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nconst arrIncludesAll: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown[]\n) => {\n return !filterValue.some(\n val => !row.getValue<unknown[]>(columnId)?.includes(val)\n )\n}\n\narrIncludesAll.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nconst arrIncludesSome: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown[]\n) => {\n return filterValue.some(val =>\n row.getValue<unknown[]>(columnId)?.includes(val)\n )\n}\n\narrIncludesSome.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nconst equals: FilterFn<any> = (row, columnId: string, filterValue: unknown) => {\n return row.getValue(columnId) === filterValue\n}\n\nequals.autoRemove = (val: any) => testFalsey(val)\n\nconst weakEquals: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown\n) => {\n return row.getValue(columnId) == filterValue\n}\n\nweakEquals.autoRemove = (val: any) => testFalsey(val)\n\nconst inNumberRange: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: [number, number]\n) => {\n let [min, max] = filterValue\n\n const rowValue = row.getValue<number>(columnId)\n return rowValue >= min && rowValue <= max\n}\n\ninNumberRange.resolveFilterValue = (val: [any, any]) => {\n let [unsafeMin, unsafeMax] = val\n\n let parsedMin =\n typeof unsafeMin !== 'number' ? parseFloat(unsafeMin as string) : unsafeMin\n let parsedMax =\n typeof unsafeMax !== 'number' ? parseFloat(unsafeMax as string) : unsafeMax\n\n let min =\n unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin\n let max = unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax\n\n if (min > max) {\n const temp = min\n min = max\n max = temp\n }\n\n return [min, max] as const\n}\n\ninNumberRange.autoRemove = (val: any) =>\n testFalsey(val) || (testFalsey(val[0]) && testFalsey(val[1]))\n\n// Export\n\nexport const filterFns = {\n includesString,\n includesStringSensitive,\n equalsString,\n arrIncludes,\n arrIncludesAll,\n arrIncludesSome,\n equals,\n weakEquals,\n inNumberRange,\n}\n\nexport type BuiltInFilterFn = keyof typeof filterFns\n\n// Utils\n\nfunction testFalsey(val: any) {\n return val === undefined || val === null || val === ''\n}\n"],"names":["includesString","row","columnId","filterValue","_row$getValue","_row$getValue$toStrin","_row$getValue$toStrin2","search","toLowerCase","Boolean","getValue","toString","includes","autoRemove","val","testFalsey","includesStringSensitive","_row$getValue2","_row$getValue2$toStri","equalsString","_row$getValue3","_row$getValue3$toStri","arrIncludes","_row$getValue4","length","arrIncludesAll","some","_row$getValue5","arrIncludesSome","_row$getValue6","equals","weakEquals","inNumberRange","min","max","rowValue","resolveFilterValue","unsafeMin","unsafeMax","parsedMin","parseFloat","parsedMax","Number","isNaN","Infinity","temp","filterFns","undefined"],"mappings":";;;;;;;;;;;;;;AAEA,MAAMA,cAA6B,GAAGA,CACpCC,GAAG,EACHC,QAAgB,EAChBC,WAAmB,KAChB;AAAA,EAAA,IAAAC,aAAA,EAAAC,qBAAA,EAAAC,sBAAA,CAAA;AACH,EAAA,MAAMC,MAAM,GAAGJ,WAAW,CAACK,WAAW,EAAE,CAAA;AACxC,EAAA,OAAOC,OAAO,CAAA,CAAAL,aAAA,GACZH,GAAG,CACAS,QAAQ,CAAgBR,QAAQ,CAAC,KAAAG,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,qBAAA,GADpCD,aAAA,CAEIO,QAAQ,EAAE,KAAAL,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,sBAAA,GAFdD,qBAAA,CAGIG,WAAW,EAAE,KAHjBF,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAIIM,QAAQ,CAACL,MAAM,CAAC,CACrB,CAAA;AACH,CAAC,CAAA;AAEDP,cAAc,CAACa,UAAU,GAAIC,GAAQ,IAAKC,UAAU,CAACD,GAAG,CAAC,CAAA;AAEzD,MAAME,uBAAsC,GAAGA,CAC7Cf,GAAG,EACHC,QAAgB,EAChBC,WAAmB,KAChB;EAAA,IAAAc,cAAA,EAAAC,qBAAA,CAAA;EACH,OAAOT,OAAO,CAAAQ,CAAAA,cAAA,GACZhB,GAAG,CAACS,QAAQ,CAAgBR,QAAQ,CAAC,KAAAgB,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,qBAAA,GAArCD,cAAA,CAAuCN,QAAQ,EAAE,KAAjDO,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAAmDN,QAAQ,CAACT,WAAW,CAAC,CACzE,CAAA;AACH,CAAC,CAAA;AAEDa,uBAAuB,CAACH,UAAU,GAAIC,GAAQ,IAAKC,UAAU,CAACD,GAAG,CAAC,CAAA;AAElE,MAAMK,YAA2B,GAAGA,CAClClB,GAAG,EACHC,QAAgB,EAChBC,WAAmB,KAChB;EAAA,IAAAiB,cAAA,EAAAC,qBAAA,CAAA;EACH,OACE,CAAA,CAAAD,cAAA,GAAAnB,GAAG,CAACS,QAAQ,CAAgBR,QAAQ,CAAC,KAAAmB,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,qBAAA,GAArCD,cAAA,CAAuCT,QAAQ,EAAE,KAAA,IAAA,GAAA,KAAA,CAAA,GAAjDU,qBAAA,CAAmDb,WAAW,EAAE,OAChEL,WAAW,IAAXA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAW,CAAEK,WAAW,EAAE,CAAA,CAAA;AAE9B,CAAC,CAAA;AAEDW,YAAY,CAACN,UAAU,GAAIC,GAAQ,IAAKC,UAAU,CAACD,GAAG,CAAC,CAAA;AAEvD,MAAMQ,WAA0B,GAAGA,CACjCrB,GAAG,EACHC,QAAgB,EAChBC,WAAoB,KACjB;AAAA,EAAA,IAAAoB,cAAA,CAAA;AACH,EAAA,OAAA,CAAAA,cAAA,GAAOtB,GAAG,CAACS,QAAQ,CAAYR,QAAQ,CAAC,KAAA,IAAA,GAAA,KAAA,CAAA,GAAjCqB,cAAA,CAAmCX,QAAQ,CAACT,WAAW,CAAC,CAAA;AACjE,CAAC,CAAA;AAEDmB,WAAW,CAACT,UAAU,GAAIC,GAAQ,IAAKC,UAAU,CAACD,GAAG,CAAC,IAAI,EAACA,GAAG,IAAHA,IAAAA,IAAAA,GAAG,CAAEU,MAAM,CAAA,CAAA;AAEtE,MAAMC,cAA6B,GAAGA,CACpCxB,GAAG,EACHC,QAAgB,EAChBC,WAAsB,KACnB;AACH,EAAA,OAAO,CAACA,WAAW,CAACuB,IAAI,CACtBZ,GAAG,IAAA;AAAA,IAAA,IAAAa,cAAA,CAAA;AAAA,IAAA,OAAI,EAAAA,CAAAA,cAAA,GAAC1B,GAAG,CAACS,QAAQ,CAAYR,QAAQ,CAAC,aAAjCyB,cAAA,CAAmCf,QAAQ,CAACE,GAAG,CAAC,CAAA,CAAA;GACzD,CAAA,CAAA;AACH,CAAC,CAAA;AAEDW,cAAc,CAACZ,UAAU,GAAIC,GAAQ,IAAKC,UAAU,CAACD,GAAG,CAAC,IAAI,EAACA,GAAG,IAAHA,IAAAA,IAAAA,GAAG,CAAEU,MAAM,CAAA,CAAA;AAEzE,MAAMI,eAA8B,GAAGA,CACrC3B,GAAG,EACHC,QAAgB,EAChBC,WAAsB,KACnB;AACH,EAAA,OAAOA,WAAW,CAACuB,IAAI,CAACZ,GAAG,IAAA;AAAA,IAAA,IAAAe,cAAA,CAAA;AAAA,IAAA,OAAA,CAAAA,cAAA,GACzB5B,GAAG,CAACS,QAAQ,CAAYR,QAAQ,CAAC,KAAA,IAAA,GAAA,KAAA,CAAA,GAAjC2B,cAAA,CAAmCjB,QAAQ,CAACE,GAAG,CAAC,CAAA;GACjD,CAAA,CAAA;AACH,CAAC,CAAA;AAEDc,eAAe,CAACf,UAAU,GAAIC,GAAQ,IAAKC,UAAU,CAACD,GAAG,CAAC,IAAI,EAACA,GAAG,IAAHA,IAAAA,IAAAA,GAAG,CAAEU,MAAM,CAAA,CAAA;AAE1E,MAAMM,MAAqB,GAAGA,CAAC7B,GAAG,EAAEC,QAAgB,EAAEC,WAAoB,KAAK;AAC7E,EAAA,OAAOF,GAAG,CAACS,QAAQ,CAACR,QAAQ,CAAC,KAAKC,WAAW,CAAA;AAC/C,CAAC,CAAA;AAED2B,MAAM,CAACjB,UAAU,GAAIC,GAAQ,IAAKC,UAAU,CAACD,GAAG,CAAC,CAAA;AAEjD,MAAMiB,UAAyB,GAAGA,CAChC9B,GAAG,EACHC,QAAgB,EAChBC,WAAoB,KACjB;AACH,EAAA,OAAOF,GAAG,CAACS,QAAQ,CAACR,QAAQ,CAAC,IAAIC,WAAW,CAAA;AAC9C,CAAC,CAAA;AAED4B,UAAU,CAAClB,UAAU,GAAIC,GAAQ,IAAKC,UAAU,CAACD,GAAG,CAAC,CAAA;AAErD,MAAMkB,aAA4B,GAAGA,CACnC/B,GAAG,EACHC,QAAgB,EAChBC,WAA6B,KAC1B;AACH,EAAA,IAAI,CAAC8B,GAAG,EAAEC,GAAG,CAAC,GAAG/B,WAAW,CAAA;AAE5B,EAAA,MAAMgC,QAAQ,GAAGlC,GAAG,CAACS,QAAQ,CAASR,QAAQ,CAAC,CAAA;AAC/C,EAAA,OAAOiC,QAAQ,IAAIF,GAAG,IAAIE,QAAQ,IAAID,GAAG,CAAA;AAC3C,CAAC,CAAA;AAEDF,aAAa,CAACI,kBAAkB,GAAItB,GAAe,IAAK;AACtD,EAAA,IAAI,CAACuB,SAAS,EAAEC,SAAS,CAAC,GAAGxB,GAAG,CAAA;AAEhC,EAAA,IAAIyB,SAAS,GACX,OAAOF,SAAS,KAAK,QAAQ,GAAGG,UAAU,CAACH,SAAS,CAAW,GAAGA,SAAS,CAAA;AAC7E,EAAA,IAAII,SAAS,GACX,OAAOH,SAAS,KAAK,QAAQ,GAAGE,UAAU,CAACF,SAAS,CAAW,GAAGA,SAAS,CAAA;AAE7E,EAAA,IAAIL,GAAG,GACLI,SAAS,KAAK,IAAI,IAAIK,MAAM,CAACC,KAAK,CAACJ,SAAS,CAAC,GAAG,CAACK,QAAQ,GAAGL,SAAS,CAAA;AACvE,EAAA,IAAIL,GAAG,GAAGI,SAAS,KAAK,IAAI,IAAII,MAAM,CAACC,KAAK,CAACF,SAAS,CAAC,GAAGG,QAAQ,GAAGH,SAAS,CAAA;EAE9E,IAAIR,GAAG,GAAGC,GAAG,EAAE;IACb,MAAMW,IAAI,GAAGZ,GAAG,CAAA;AAChBA,IAAAA,GAAG,GAAGC,GAAG,CAAA;AACTA,IAAAA,GAAG,GAAGW,IAAI,CAAA;AACZ,GAAA;AAEA,EAAA,OAAO,CAACZ,GAAG,EAAEC,GAAG,CAAC,CAAA;AACnB,CAAC,CAAA;AAEDF,aAAa,CAACnB,UAAU,GAAIC,GAAQ,IAClCC,UAAU,CAACD,GAAG,CAAC,IAAKC,UAAU,CAACD,GAAG,CAAC,CAAC,CAAC,CAAC,IAAIC,UAAU,CAACD,GAAG,CAAC,CAAC,CAAC,CAAE,CAAA;;AAE/D;;AAEO,MAAMgC,SAAS,GAAG;EACvB9C,cAAc;EACdgB,uBAAuB;EACvBG,YAAY;EACZG,WAAW;EACXG,cAAc;EACdG,eAAe;EACfE,MAAM;EACNC,UAAU;AACVC,EAAAA,aAAAA;AACF,EAAC;AAID;;AAEA,SAASjB,UAAUA,CAACD,GAAQ,EAAE;EAC5B,OAAOA,GAAG,KAAKiC,SAAS,IAAIjC,GAAG,KAAK,IAAI,IAAIA,GAAG,KAAK,EAAE,CAAA;AACxD;;;;"}
1
+ {"version":3,"file":"filterFns.js","sources":["../../src/filterFns.ts"],"sourcesContent":["import { FilterFn } from './features/Filters'\n\nconst includesString: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: string\n) => {\n const search = filterValue.toLowerCase()\n return Boolean(\n row\n .getValue<string | null>(columnId)\n ?.toString()\n ?.toLowerCase()\n ?.includes(search)\n )\n}\n\nincludesString.autoRemove = (val: any) => testFalsey(val)\n\nconst includesStringSensitive: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: string\n) => {\n return Boolean(\n row.getValue<string | null>(columnId)?.toString()?.includes(filterValue)\n )\n}\n\nincludesStringSensitive.autoRemove = (val: any) => testFalsey(val)\n\nconst equalsString: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: string\n) => {\n return (\n row.getValue<string | null>(columnId)?.toString()?.toLowerCase() ===\n filterValue?.toLowerCase()\n )\n}\n\nequalsString.autoRemove = (val: any) => testFalsey(val)\n\nconst arrIncludes: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown\n) => {\n return row.getValue<unknown[]>(columnId)?.includes(filterValue)\n}\n\narrIncludes.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nconst arrIncludesAll: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown[]\n) => {\n return !filterValue.some(\n val => !row.getValue<unknown[]>(columnId)?.includes(val)\n )\n}\n\narrIncludesAll.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nconst arrIncludesSome: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown[]\n) => {\n return filterValue.some(val =>\n row.getValue<unknown[]>(columnId)?.includes(val)\n )\n}\n\narrIncludesSome.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nconst equals: FilterFn<any> = (row, columnId: string, filterValue: unknown) => {\n return row.getValue(columnId) === filterValue\n}\n\nequals.autoRemove = (val: any) => testFalsey(val)\n\nconst weakEquals: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown\n) => {\n return row.getValue(columnId) == filterValue\n}\n\nweakEquals.autoRemove = (val: any) => testFalsey(val)\n\nconst inNumberRange: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: [number, number]\n) => {\n let [min, max] = filterValue\n\n const rowValue = row.getValue<number>(columnId)\n return rowValue >= min && rowValue <= max\n}\n\ninNumberRange.resolveFilterValue = (val: [any, any]) => {\n let [unsafeMin, unsafeMax] = val\n\n let parsedMin =\n typeof unsafeMin !== 'number' ? parseFloat(unsafeMin as string) : unsafeMin\n let parsedMax =\n typeof unsafeMax !== 'number' ? parseFloat(unsafeMax as string) : unsafeMax\n\n let min =\n unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin\n let max = unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax\n\n if (min > max) {\n const temp = min\n min = max\n max = temp\n }\n\n return [min, max] as const\n}\n\ninNumberRange.autoRemove = (val: any) =>\n testFalsey(val) || (testFalsey(val[0]) && testFalsey(val[1]))\n\n// Export\n\nexport const filterFns = {\n includesString,\n includesStringSensitive,\n equalsString,\n arrIncludes,\n arrIncludesAll,\n arrIncludesSome,\n equals,\n weakEquals,\n inNumberRange,\n}\n\nexport type BuiltInFilterFn = keyof typeof filterFns\n\n// Utils\n\nfunction testFalsey(val: any) {\n return val === undefined || val === null || val === ''\n}\n"],"names":["includesString","row","columnId","filterValue","_row$getValue","_row$getValue$toStrin","_row$getValue$toStrin2","search","toLowerCase","Boolean","getValue","toString","includes","autoRemove","val","testFalsey","includesStringSensitive","_row$getValue2","_row$getValue2$toStri","equalsString","_row$getValue3","_row$getValue3$toStri","arrIncludes","_row$getValue4","length","arrIncludesAll","some","_row$getValue5","arrIncludesSome","_row$getValue6","equals","weakEquals","inNumberRange","min","max","rowValue","resolveFilterValue","unsafeMin","unsafeMax","parsedMin","parseFloat","parsedMax","Number","isNaN","Infinity","temp","filterFns","undefined"],"mappings":"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"}
@@ -510,6 +510,8 @@ function buildHeaderGroups(allColumns, columnsToGroup, table, headerFamily) {
510
510
 
511
511
  //
512
512
 
513
+ //
514
+
513
515
  const defaultColumnSizing = {
514
516
  size: 150,
515
517
  minSize: 20,
@@ -816,7 +818,7 @@ const Expanding = {
816
818
  table.setExpanded(defaultState ? {} : (_table$initialState$e = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.expanded) != null ? _table$initialState$e : {});
817
819
  },
818
820
  getCanSomeRowsExpand: () => {
819
- return table.getRowModel().flatRows.some(row => row.getCanExpand());
821
+ return table.getPrePaginationRowModel().flatRows.some(row => row.getCanExpand());
820
822
  },
821
823
  getToggleAllRowsExpandedHandler: () => {
822
824
  return e => {
@@ -1402,9 +1404,20 @@ const Grouping = {
1402
1404
  }
1403
1405
  };
1404
1406
  },
1405
- createRow: row => {
1407
+ createRow: (row, table) => {
1406
1408
  return {
1407
1409
  getIsGrouped: () => !!row.groupingColumnId,
1410
+ getGroupingValue: columnId => {
1411
+ if (row._groupingValuesCache.hasOwnProperty(columnId)) {
1412
+ return row._groupingValuesCache[columnId];
1413
+ }
1414
+ const column = table.getColumn(columnId);
1415
+ if (!(column != null && column.columnDef.getGroupingValue)) {
1416
+ return row.getValue(columnId);
1417
+ }
1418
+ row._groupingValuesCache[columnId] = column.columnDef.getGroupingValue(row.original);
1419
+ return row._groupingValuesCache[columnId];
1420
+ },
1408
1421
  _groupingValuesCache: {}
1409
1422
  };
1410
1423
  },
@@ -2943,7 +2956,6 @@ const createRow = (table, id, original, rowIndex, depth, subRows, parentId) => {
2943
2956
  // helper.accessor('nested.bar', {
2944
2957
  // cell: info => info.getValue(),
2945
2958
  // })
2946
-
2947
2959
  function createColumnHelper() {
2948
2960
  return {
2949
2961
  accessor: (accessor, column) => {
@@ -3521,7 +3533,7 @@ function getGroupedRowModel() {
3521
3533
  function groupBy(rows, columnId) {
3522
3534
  const groupMap = new Map();
3523
3535
  return rows.reduce((map, row) => {
3524
- const resKey = `${row.getValue(columnId)}`;
3536
+ const resKey = `${row.getGroupingValue(columnId)}`;
3525
3537
  const previous = map.get(resKey);
3526
3538
  if (!previous) {
3527
3539
  map.set(resKey, [row]);