@tanstack/react-table 8.0.0-alpha.5 → 8.0.0-alpha.8

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 (38) hide show
  1. package/build/cjs/core.js +19 -11
  2. package/build/cjs/core.js.map +1 -1
  3. package/build/cjs/createTable.js +10 -10
  4. package/build/cjs/createTable.js.map +1 -1
  5. package/build/cjs/features/Expanding.js +5 -9
  6. package/build/cjs/features/Expanding.js.map +1 -1
  7. package/build/cjs/features/Filters.js +3 -3
  8. package/build/cjs/features/Filters.js.map +1 -1
  9. package/build/cjs/features/Grouping.js +2 -2
  10. package/build/cjs/features/Grouping.js.map +1 -1
  11. package/build/cjs/features/Pagination.js +2 -2
  12. package/build/cjs/features/Pagination.js.map +1 -1
  13. package/build/cjs/features/Pinning.js +2 -2
  14. package/build/cjs/features/Pinning.js.map +1 -1
  15. package/build/cjs/features/Sorting.js +2 -2
  16. package/build/cjs/features/Sorting.js.map +1 -1
  17. package/build/cjs/utils.js +9 -14
  18. package/build/cjs/utils.js.map +1 -1
  19. package/build/esm/index.js +54 -55
  20. package/build/esm/index.js.map +1 -1
  21. package/build/stats-html.html +1 -1
  22. package/build/stats-react.json +259 -245
  23. package/build/types/core.d.ts +3 -4
  24. package/build/types/utils.d.ts +0 -4
  25. package/build/umd/index.development.js +57 -59
  26. package/build/umd/index.development.js.map +1 -1
  27. package/build/umd/index.production.js +1 -1
  28. package/build/umd/index.production.js.map +1 -1
  29. package/package.json +7 -1
  30. package/src/core.tsx +16 -101
  31. package/src/createTable.tsx +16 -13
  32. package/src/features/Expanding.ts +5 -3
  33. package/src/features/Filters.ts +4 -4
  34. package/src/features/Grouping.ts +1 -1
  35. package/src/features/Pagination.ts +1 -3
  36. package/src/features/Pinning.ts +1 -3
  37. package/src/features/Sorting.ts +1 -1
  38. package/src/utils.tsx +7 -69
@@ -1 +1 @@
1
- {"version":3,"file":"Sorting.js","sources":["../../../src/features/Sorting.ts"],"sourcesContent":["import { MouseEvent, TouchEvent } from 'react'\nimport { RowModel } from '..'\nimport { BuiltInSortType, reSplitAlphaNumeric, sortTypes } from '../sortTypes'\n\nimport {\n Column,\n Getter,\n Header,\n OnChangeFn,\n PropGetterValue,\n ReactTable,\n Row,\n Updater,\n} from '../types'\n\nimport {\n functionalUpdate,\n isFunction,\n makeStateUpdater,\n memo,\n propGetter,\n} from '../utils'\n\nexport type SortDirection = 'asc' | 'desc'\n\nexport type ColumnSort = {\n id: string\n desc: boolean\n}\n\nexport type SortingState = ColumnSort[]\n\nexport type SortingFn<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> =\n {\n (\n rowA: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n rowB: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n columnId: string\n ): number\n }\n\nexport type SortingTableState = {\n sorting: SortingState\n}\n\nexport type SortType<TSortingFns> =\n | 'auto'\n | BuiltInSortType\n | keyof TSortingFns\n | SortingFn<any, any, any, TSortingFns, any>\n\nexport type SortingColumnDef<TFilterFns> = {\n sortType?: SortType<TFilterFns>\n sortDescFirst?: boolean\n enableSorting?: boolean\n enableMultiSort?: boolean\n defaultCanSort?: boolean\n invertSorting?: boolean\n sortUndefined?: false | -1 | 1\n}\n\nexport type SortingColumn<\n _TData,\n _TValue,\n TFilterFns,\n _TSortingFns,\n _TAggregationFns\n> = {\n sortType: SortType<TFilterFns>\n getCanSort: () => boolean\n getCanMultiSort: () => boolean\n getSortIndex: () => number\n getIsSorted: () => false | SortDirection\n toggleSorting: (desc?: boolean, isMulti?: boolean) => void\n getToggleSortingProps: <TGetter extends Getter<ToggleSortingProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleSortingProps, TGetter>\n}\n\nexport type SortingOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n sortTypes?: TSortingFns\n onSortingChange?: OnChangeFn<SortingState>\n autoResetSorting?: boolean\n enableSorting?: boolean\n enableSortingRemoval?: boolean\n enableMultiRemove?: boolean\n enableMultiSort?: boolean\n sortDescFirst?: boolean\n sortRowsFn?: (\n instance: ReactTable<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n rowModel: RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n maxMultiSortColCount?: number\n isMultiSortEvent?: (e: MouseEvent | TouchEvent) => boolean\n}\n\nexport type ToggleSortingProps = {\n title?: string\n onClick?: (event: MouseEvent | TouchEvent) => void\n}\n\nexport type SortingInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n _notifySortingReset: () => void\n getColumnAutoSortingFn: (\n columnId: string\n ) => SortingFn<any, any, any, any, any> | undefined\n getColumnAutoSortDir: (columnId: string) => SortDirection\n\n getColumnSortingFn: (\n columnId: string\n ) => SortingFn<any, any, any, any, any> | undefined\n\n setSorting: (updater: Updater<SortingState>) => void\n toggleColumnSorting: (\n columnId: string,\n desc?: boolean,\n multi?: boolean\n ) => void\n resetSorting: () => void\n getColumnCanSort: (columnId: string) => boolean\n getColumnCanMultiSort: (columnId: string) => boolean\n getColumnIsSorted: (columnId: string) => false | 'asc' | 'desc'\n getColumnSortIndex: (columnId: string) => number\n getToggleSortingProps: <TGetter extends Getter<ToggleSortingProps>>(\n columnId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleSortingProps, TGetter>\n getSortedRowModel: () => RowModel<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n getPreSortedRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPreSortedFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPreSortedRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n getSortedRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getSortedFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getSortedRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n}\n\n//\n\nexport function getDefaultColumn<TFilterFns>(): SortingColumnDef<TFilterFns> {\n return {\n sortType: 'auto',\n }\n}\n\nexport function getInitialState(): SortingTableState {\n return {\n sorting: [],\n }\n}\n\nexport function getDefaultOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): SortingOptions<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n onSortingChange: makeStateUpdater('sorting', instance),\n autoResetSorting: true,\n isMultiSortEvent: (e: MouseEvent | TouchEvent) => {\n return e.shiftKey\n },\n }\n}\n\nexport function createColumn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): SortingColumn<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n sortType: column.sortType,\n getCanSort: () => instance.getColumnCanSort(column.id),\n getCanMultiSort: () => instance.getColumnCanMultiSort(column.id),\n getSortIndex: () => instance.getColumnSortIndex(column.id),\n getIsSorted: () => instance.getColumnIsSorted(column.id),\n toggleSorting: (desc, isMulti) =>\n instance.toggleColumnSorting(column.id, desc, isMulti),\n getToggleSortingProps: userProps =>\n instance.getToggleSortingProps(column.id, userProps),\n }\n}\n\nexport function getInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): SortingInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n let registered = false\n\n return {\n _notifySortingReset: () => {\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetSorting\n ) {\n instance.resetSorting()\n }\n },\n getColumnAutoSortingFn: columnId => {\n const firstRows = instance.getGlobalFilteredRowModel().flatRows.slice(100)\n\n let isString = false\n\n for (const row of firstRows) {\n const value = row?.values[columnId]\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortTypes.datetime\n }\n\n if (typeof value === 'string') {\n isString = true\n\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortTypes.alphanumeric\n }\n }\n }\n\n if (isString) {\n return sortTypes.text\n }\n\n return sortTypes.basic\n },\n getColumnAutoSortDir: columnId => {\n const firstRow = instance.getGlobalFilteredRowModel().flatRows[0]\n\n const value = firstRow?.values[columnId]\n\n if (typeof value === 'string') {\n return 'asc'\n }\n\n return 'desc'\n },\n getColumnSortingFn: columnId => {\n const column = instance.getColumn(columnId)\n const userSortTypes = instance.options.sortTypes\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.sortType)\n ? column.sortType\n : column.sortType === 'auto'\n ? instance.getColumnAutoSortingFn(columnId)\n : (userSortTypes as Record<string, any>)?.[column.sortType as string] ??\n (sortTypes[column.sortType as BuiltInSortType] as SortingFn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >)\n },\n\n setSorting: updater =>\n instance.options.onSortingChange?.(\n updater,\n functionalUpdate(updater, instance.getState().sorting)\n ),\n\n toggleColumnSorting: (columnId, desc, multi) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // instance.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n instance.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old?.find(d => d.id === columnId)\n const existingIndex = old?.findIndex(d => d.id === columnId)\n const hasDescDefined = typeof desc !== 'undefined' && desc !== null\n\n let newSorting: SortingState = []\n\n // What should we do with this sort action?\n let sortAction\n\n if (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 const sortDescFirst =\n column.sortDescFirst ??\n instance.options.sortDescFirst ??\n instance.getColumnAutoSortDir(columnId) === 'desc'\n\n // Handle toggle states that will remove the sorting\n if (\n sortAction === 'toggle' && // Must be toggling\n (instance.options.enableSortingRemoval ?? true) && // If enableSortRemove, enable in general\n !hasDescDefined && // Must not be setting desc\n (multi ? instance.options.enableMultiRemove ?? true : true) && // If multi, don't allow if enableMultiRemove\n (existingSorting?.desc // Finally, detect if it should indeed be removed\n ? !sortDescFirst\n : sortDescFirst)\n ) {\n sortAction = 'remove'\n }\n\n if (sortAction === 'replace') {\n newSorting = [\n {\n id: columnId,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n } else if (sortAction === 'add' && old?.length) {\n newSorting = [\n ...old,\n {\n id: columnId,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n // Take latest n columns\n newSorting.splice(\n 0,\n newSorting.length -\n (instance.options.maxMultiSortColCount ?? Number.MAX_SAFE_INTEGER)\n )\n } else if (sortAction === 'toggle' && old?.length) {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === columnId) {\n return {\n ...d,\n desc: hasDescDefined ? desc! : !existingSorting?.desc,\n }\n }\n return d\n })\n } else if (sortAction === 'remove' && old?.length) {\n newSorting = old.filter(d => d.id !== columnId)\n }\n\n return newSorting\n })\n },\n\n getColumnCanSort: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableSorting ??\n instance.options.enableSorting ??\n column.defaultCanSort ??\n !!column.accessorFn\n // (!!column.accessorFn ||\n // column.columns?.some(c => c.id && instance.getColumnCanSort(c.id))) ??\n // false\n )\n },\n\n getColumnCanMultiSort: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableMultiSort ??\n instance.options.enableMultiSort ??\n !!column.accessorFn\n )\n },\n\n getColumnIsSorted: columnId => {\n const columnSort = instance\n .getState()\n .sorting?.find(d => d.id === columnId)\n\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc'\n },\n\n getColumnSortIndex: columnId =>\n instance.getState().sorting?.findIndex(d => d.id === columnId) ?? -1,\n\n resetSorting: () => {\n instance.setSorting(instance.options?.initialState?.sorting ?? [])\n },\n\n getToggleSortingProps: (columnId, userProps) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const canSort = column.getCanSort()\n\n const initialProps: ToggleSortingProps = {\n title: canSort ? 'Toggle Sorting' : undefined,\n onClick: canSort\n ? (e: MouseEvent | TouchEvent) => {\n e.persist()\n column.toggleSorting?.(\n undefined,\n column.getCanMultiSort()\n ? instance.options.isMultiSortEvent?.(e)\n : false\n )\n }\n : undefined,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getSortedRowModel: memo(\n () => [\n instance.getState().sorting,\n instance.getGlobalFilteredRowModel(),\n instance.options.sortRowsFn,\n ],\n (sorting, rowModel, sortingFn) => {\n if (!sortingFn || !sorting?.length) {\n return rowModel\n }\n\n if (process.env.NODE_ENV !== 'production' && instance.options.debug)\n console.info('Sorting...')\n\n return sortingFn(instance, rowModel)\n },\n {\n key: 'getSortedRowModel',\n debug: instance.options.debug,\n onChange: () => instance._notifyGroupingReset(),\n }\n ),\n\n getPreSortedRows: () => instance.getGlobalFilteredRowModel().rows,\n getPreSortedFlatRows: () => instance.getGlobalFilteredRowModel().flatRows,\n getPreSortedRowsById: () => instance.getGlobalFilteredRowModel().rowsById,\n getSortedRows: () => instance.getSortedRowModel().rows,\n getSortedFlatRows: () => instance.getSortedRowModel().flatRows,\n getSortedRowsById: () => instance.getSortedRowModel().rowsById,\n }\n}\n"],"names":["getDefaultColumn","sortType","getInitialState","sorting","getDefaultOptions","instance","onSortingChange","makeStateUpdater","autoResetSorting","isMultiSortEvent","e","shiftKey","createColumn","column","getCanSort","getColumnCanSort","id","getCanMultiSort","getColumnCanMultiSort","getSortIndex","getColumnSortIndex","getIsSorted","getColumnIsSorted","toggleSorting","desc","isMulti","toggleColumnSorting","getToggleSortingProps","userProps","getInstance","registered","_notifySortingReset","options","autoResetAll","resetSorting","getColumnAutoSortingFn","columnId","firstRows","getGlobalFilteredRowModel","flatRows","slice","isString","row","value","values","Object","prototype","toString","call","sortTypes","datetime","split","reSplitAlphaNumeric","length","alphanumeric","text","basic","getColumnAutoSortDir","firstRow","getColumnSortingFn","getColumn","userSortTypes","Error","isFunction","setSorting","updater","functionalUpdate","getState","multi","old","existingSorting","find","d","existingIndex","findIndex","hasDescDefined","newSorting","sortAction","sortDescFirst","enableSortingRemoval","enableMultiRemove","splice","maxMultiSortColCount","Number","MAX_SAFE_INTEGER","map","filter","enableSorting","defaultCanSort","accessorFn","enableMultiSort","columnSort","initialState","canSort","initialProps","title","undefined","onClick","persist","propGetter","getSortedRowModel","memo","sortRowsFn","rowModel","sortingFn","process","env","NODE_ENV","debug","console","info","key","onChange","_notifyGroupingReset","getPreSortedRows","rows","getPreSortedFlatRows","getPreSortedRowsById","rowsById","getSortedRows","getSortedFlatRows","getSortedRowsById"],"mappings":"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"}
1
+ {"version":3,"file":"Sorting.js","sources":["../../../src/features/Sorting.ts"],"sourcesContent":["import { MouseEvent, TouchEvent } from 'react'\nimport { RowModel } from '..'\nimport { BuiltInSortType, reSplitAlphaNumeric, sortTypes } from '../sortTypes'\n\nimport {\n Column,\n Getter,\n Header,\n OnChangeFn,\n PropGetterValue,\n ReactTable,\n Row,\n Updater,\n} from '../types'\n\nimport {\n functionalUpdate,\n isFunction,\n makeStateUpdater,\n memo,\n propGetter,\n} from '../utils'\n\nexport type SortDirection = 'asc' | 'desc'\n\nexport type ColumnSort = {\n id: string\n desc: boolean\n}\n\nexport type SortingState = ColumnSort[]\n\nexport type SortingFn<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> =\n {\n (\n rowA: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n rowB: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n columnId: string\n ): number\n }\n\nexport type SortingTableState = {\n sorting: SortingState\n}\n\nexport type SortType<TSortingFns> =\n | 'auto'\n | BuiltInSortType\n | keyof TSortingFns\n | SortingFn<any, any, any, TSortingFns, any>\n\nexport type SortingColumnDef<TFilterFns> = {\n sortType?: SortType<TFilterFns>\n sortDescFirst?: boolean\n enableSorting?: boolean\n enableMultiSort?: boolean\n defaultCanSort?: boolean\n invertSorting?: boolean\n sortUndefined?: false | -1 | 1\n}\n\nexport type SortingColumn<\n _TData,\n _TValue,\n TFilterFns,\n _TSortingFns,\n _TAggregationFns\n> = {\n sortType: SortType<TFilterFns>\n getCanSort: () => boolean\n getCanMultiSort: () => boolean\n getSortIndex: () => number\n getIsSorted: () => false | SortDirection\n toggleSorting: (desc?: boolean, isMulti?: boolean) => void\n getToggleSortingProps: <TGetter extends Getter<ToggleSortingProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleSortingProps, TGetter>\n}\n\nexport type SortingOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n sortTypes?: TSortingFns\n onSortingChange?: OnChangeFn<SortingState>\n autoResetSorting?: boolean\n enableSorting?: boolean\n enableSortingRemoval?: boolean\n enableMultiRemove?: boolean\n enableMultiSort?: boolean\n sortDescFirst?: boolean\n sortRowsFn?: (\n instance: ReactTable<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n rowModel: RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n maxMultiSortColCount?: number\n isMultiSortEvent?: (e: MouseEvent | TouchEvent) => boolean\n}\n\nexport type ToggleSortingProps = {\n title?: string\n onClick?: (event: MouseEvent | TouchEvent) => void\n}\n\nexport type SortingInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n _notifySortingReset: () => void\n getColumnAutoSortingFn: (\n columnId: string\n ) => SortingFn<any, any, any, any, any> | undefined\n getColumnAutoSortDir: (columnId: string) => SortDirection\n\n getColumnSortingFn: (\n columnId: string\n ) => SortingFn<any, any, any, any, any> | undefined\n\n setSorting: (updater: Updater<SortingState>) => void\n toggleColumnSorting: (\n columnId: string,\n desc?: boolean,\n multi?: boolean\n ) => void\n resetSorting: () => void\n getColumnCanSort: (columnId: string) => boolean\n getColumnCanMultiSort: (columnId: string) => boolean\n getColumnIsSorted: (columnId: string) => false | 'asc' | 'desc'\n getColumnSortIndex: (columnId: string) => number\n getToggleSortingProps: <TGetter extends Getter<ToggleSortingProps>>(\n columnId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleSortingProps, TGetter>\n getSortedRowModel: () => RowModel<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n getPreSortedRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPreSortedFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPreSortedRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n getSortedRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getSortedFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getSortedRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n}\n\n//\n\nexport function getDefaultColumn<TFilterFns>(): SortingColumnDef<TFilterFns> {\n return {\n sortType: 'auto',\n }\n}\n\nexport function getInitialState(): SortingTableState {\n return {\n sorting: [],\n }\n}\n\nexport function getDefaultOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): SortingOptions<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n onSortingChange: makeStateUpdater('sorting', instance),\n autoResetSorting: true,\n isMultiSortEvent: (e: MouseEvent | TouchEvent) => {\n return e.shiftKey\n },\n }\n}\n\nexport function createColumn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): SortingColumn<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n sortType: column.sortType,\n getCanSort: () => instance.getColumnCanSort(column.id),\n getCanMultiSort: () => instance.getColumnCanMultiSort(column.id),\n getSortIndex: () => instance.getColumnSortIndex(column.id),\n getIsSorted: () => instance.getColumnIsSorted(column.id),\n toggleSorting: (desc, isMulti) =>\n instance.toggleColumnSorting(column.id, desc, isMulti),\n getToggleSortingProps: userProps =>\n instance.getToggleSortingProps(column.id, userProps),\n }\n}\n\nexport function getInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): SortingInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n let registered = false\n\n return {\n _notifySortingReset: () => {\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetSorting\n ) {\n instance.resetSorting()\n }\n },\n getColumnAutoSortingFn: columnId => {\n const firstRows = instance.getGlobalFilteredRowModel().flatRows.slice(100)\n\n let isString = false\n\n for (const row of firstRows) {\n const value = row?.values[columnId]\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortTypes.datetime\n }\n\n if (typeof value === 'string') {\n isString = true\n\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortTypes.alphanumeric\n }\n }\n }\n\n if (isString) {\n return sortTypes.text\n }\n\n return sortTypes.basic\n },\n getColumnAutoSortDir: columnId => {\n const firstRow = instance.getGlobalFilteredRowModel().flatRows[0]\n\n const value = firstRow?.values[columnId]\n\n if (typeof value === 'string') {\n return 'asc'\n }\n\n return 'desc'\n },\n getColumnSortingFn: columnId => {\n const column = instance.getColumn(columnId)\n const userSortTypes = instance.options.sortTypes\n\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.sortType)\n ? column.sortType\n : column.sortType === 'auto'\n ? instance.getColumnAutoSortingFn(columnId)\n : (userSortTypes as Record<string, any>)?.[column.sortType as string] ??\n (sortTypes[column.sortType as BuiltInSortType] as SortingFn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >)\n },\n\n setSorting: updater =>\n instance.options.onSortingChange?.(\n updater,\n functionalUpdate(updater, instance.getState().sorting)\n ),\n\n toggleColumnSorting: (columnId, desc, multi) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // instance.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n instance.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old?.find(d => d.id === columnId)\n const existingIndex = old?.findIndex(d => d.id === columnId)\n const hasDescDefined = typeof desc !== 'undefined' && desc !== null\n\n let newSorting: SortingState = []\n\n // What should we do with this sort action?\n let sortAction\n\n if (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 const sortDescFirst =\n column.sortDescFirst ??\n instance.options.sortDescFirst ??\n instance.getColumnAutoSortDir(columnId) === 'desc'\n\n // Handle toggle states that will remove the sorting\n if (\n sortAction === 'toggle' && // Must be toggling\n (instance.options.enableSortingRemoval ?? true) && // If enableSortRemove, enable in general\n !hasDescDefined && // Must not be setting desc\n (multi ? instance.options.enableMultiRemove ?? true : true) && // If multi, don't allow if enableMultiRemove\n (existingSorting?.desc // Finally, detect if it should indeed be removed\n ? !sortDescFirst\n : sortDescFirst)\n ) {\n sortAction = 'remove'\n }\n\n if (sortAction === 'replace') {\n newSorting = [\n {\n id: columnId,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n } else if (sortAction === 'add' && old?.length) {\n newSorting = [\n ...old,\n {\n id: columnId,\n desc: hasDescDefined ? desc! : !!sortDescFirst,\n },\n ]\n // Take latest n columns\n newSorting.splice(\n 0,\n newSorting.length -\n (instance.options.maxMultiSortColCount ?? Number.MAX_SAFE_INTEGER)\n )\n } else if (sortAction === 'toggle' && old?.length) {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === columnId) {\n return {\n ...d,\n desc: hasDescDefined ? desc! : !existingSorting?.desc,\n }\n }\n return d\n })\n } else if (sortAction === 'remove' && old?.length) {\n newSorting = old.filter(d => d.id !== columnId)\n }\n\n return newSorting\n })\n },\n\n getColumnCanSort: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableSorting ??\n instance.options.enableSorting ??\n column.defaultCanSort ??\n !!column.accessorFn\n // (!!column.accessorFn ||\n // column.columns?.some(c => c.id && instance.getColumnCanSort(c.id))) ??\n // false\n )\n },\n\n getColumnCanMultiSort: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableMultiSort ??\n instance.options.enableMultiSort ??\n !!column.accessorFn\n )\n },\n\n getColumnIsSorted: columnId => {\n const columnSort = instance\n .getState()\n .sorting?.find(d => d.id === columnId)\n\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc'\n },\n\n getColumnSortIndex: columnId =>\n instance.getState().sorting?.findIndex(d => d.id === columnId) ?? -1,\n\n resetSorting: () => {\n instance.setSorting(instance.initialState?.sorting ?? [])\n },\n\n getToggleSortingProps: (columnId, userProps) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const canSort = column.getCanSort()\n\n const initialProps: ToggleSortingProps = {\n title: canSort ? 'Toggle Sorting' : undefined,\n onClick: canSort\n ? (e: MouseEvent | TouchEvent) => {\n e.persist()\n column.toggleSorting?.(\n undefined,\n column.getCanMultiSort()\n ? instance.options.isMultiSortEvent?.(e)\n : false\n )\n }\n : undefined,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getSortedRowModel: memo(\n () => [\n instance.getState().sorting,\n instance.getGlobalFilteredRowModel(),\n instance.options.sortRowsFn,\n ],\n (sorting, rowModel, sortingFn) => {\n if (!sortingFn || !sorting?.length) {\n return rowModel\n }\n\n if (process.env.NODE_ENV !== 'production' && instance.options.debug)\n console.info('Sorting...')\n\n return sortingFn(instance, rowModel)\n },\n {\n key: 'getSortedRowModel',\n debug: instance.options.debug,\n onChange: () => instance._notifyGroupingReset(),\n }\n ),\n\n getPreSortedRows: () => instance.getGlobalFilteredRowModel().rows,\n getPreSortedFlatRows: () => instance.getGlobalFilteredRowModel().flatRows,\n getPreSortedRowsById: () => instance.getGlobalFilteredRowModel().rowsById,\n getSortedRows: () => instance.getSortedRowModel().rows,\n getSortedFlatRows: () => instance.getSortedRowModel().flatRows,\n getSortedRowsById: () => instance.getSortedRowModel().rowsById,\n }\n}\n"],"names":["getDefaultColumn","sortType","getInitialState","sorting","getDefaultOptions","instance","onSortingChange","makeStateUpdater","autoResetSorting","isMultiSortEvent","e","shiftKey","createColumn","column","getCanSort","getColumnCanSort","id","getCanMultiSort","getColumnCanMultiSort","getSortIndex","getColumnSortIndex","getIsSorted","getColumnIsSorted","toggleSorting","desc","isMulti","toggleColumnSorting","getToggleSortingProps","userProps","getInstance","registered","_notifySortingReset","options","autoResetAll","resetSorting","getColumnAutoSortingFn","columnId","firstRows","getGlobalFilteredRowModel","flatRows","slice","isString","row","value","values","Object","prototype","toString","call","sortTypes","datetime","split","reSplitAlphaNumeric","length","alphanumeric","text","basic","getColumnAutoSortDir","firstRow","getColumnSortingFn","getColumn","userSortTypes","Error","isFunction","setSorting","updater","functionalUpdate","getState","multi","old","existingSorting","find","d","existingIndex","findIndex","hasDescDefined","newSorting","sortAction","sortDescFirst","enableSortingRemoval","enableMultiRemove","splice","maxMultiSortColCount","Number","MAX_SAFE_INTEGER","map","filter","enableSorting","defaultCanSort","accessorFn","enableMultiSort","columnSort","initialState","canSort","initialProps","title","undefined","onClick","persist","propGetter","getSortedRowModel","memo","sortRowsFn","rowModel","sortingFn","process","env","NODE_ENV","debug","console","info","key","onChange","_notifyGroupingReset","getPreSortedRows","rows","getPreSortedFlatRows","getPreSortedRowsById","rowsById","getSortedRows","getSortedFlatRows","getSortedRowsById"],"mappings":"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"}
@@ -30,9 +30,7 @@ function makeStateUpdater(key, instance) {
30
30
  return _rollupPluginBabelHelpers["extends"]({}, old, (_extends2 = {}, _extends2[key] = functionalUpdate(updater, old[key]), _extends2));
31
31
  });
32
32
  };
33
- } // SSR has issues with useLayoutEffect still, so use useEffect during SSR
34
-
35
- typeof document !== 'undefined' ? React__default["default"].useLayoutEffect : React__default["default"].useEffect;
33
+ }
36
34
  function isFunction(d) {
37
35
  return d instanceof Function;
38
36
  }
@@ -66,19 +64,17 @@ function memo(getDeps, fn, opts) {
66
64
  var result;
67
65
  return function () {
68
66
  var newDeps = getDeps();
69
- var newSerializedDeps = newDeps;
70
- var oldSerializedDeps = deps;
71
- var depsChanged = newSerializedDeps.length !== oldSerializedDeps.length || newSerializedDeps.some(function (dep, index) {
72
- return oldSerializedDeps[index] !== dep;
67
+ var depsChanged = newDeps.length !== deps.length || newDeps.some(function (dep, index) {
68
+ return deps[index] !== dep;
73
69
  });
74
70
 
75
71
  if (depsChanged) {
76
72
  if (opts != null && opts.debug) {
77
73
  console.info(opts == null ? void 0 : opts.key, _rollupPluginBabelHelpers["extends"]({
78
- length: oldSerializedDeps.length + " -> " + newSerializedDeps.length
79
- }, newSerializedDeps.map(function (_, index) {
80
- if (oldSerializedDeps[index] !== newSerializedDeps[index]) {
81
- return [index, oldSerializedDeps[index], newSerializedDeps[index]];
74
+ length: deps.length + " -> " + newDeps.length
75
+ }, newDeps.map(function (_, index) {
76
+ if (deps[index] !== newDeps[index]) {
77
+ return [index, deps[index], newDeps[index]];
82
78
  }
83
79
 
84
80
  return false;
@@ -93,15 +89,14 @@ function memo(getDeps, fn, opts) {
93
89
 
94
90
  var oldResult = result;
95
91
  result = fn.apply(void 0, newDeps);
96
- deps = newSerializedDeps;
92
+ deps = newDeps;
97
93
  opts == null ? void 0 : opts.onChange == null ? void 0 : opts.onChange(result, oldResult);
98
94
  oldResult = undefined;
99
95
  }
100
96
 
101
97
  return result;
102
98
  };
103
- } // Copied from: https://github.com/jonschlinkert/is-plain-object
104
-
99
+ }
105
100
  function flexRender(Comp, props) {
106
101
  return !Comp ? null : isReactComponent(Comp) ? /*#__PURE__*/React__default["default"].createElement(Comp, props) : Comp;
107
102
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../src/utils.tsx"],"sourcesContent":["import React from 'react'\nimport {\n Getter,\n NoInfer,\n PropGetterValue,\n Renderable,\n TableState,\n} from './types'\n\nexport type IsAny<T> = 0 extends 1 & T ? true : false\nexport type PartialKeys<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>\nexport type RequiredKeys<T, K extends keyof T> = Omit<T, K> &\n Required<Pick<T, K>>\nexport type Overwrite<T, U> = Omit<T, keyof U> & U\n\nexport type DataUpdateFunction<TInput, TOutput> = (input: TInput) => TOutput\n\nexport type Updater<TInput, TOutput> =\n | TOutput\n | DataUpdateFunction<TInput, TOutput>\n\nexport function functionalUpdate<TInput, TOutput = TInput>(\n updater: Updater<TInput, TOutput>,\n input: TInput\n): TOutput {\n return typeof updater === 'function'\n ? (updater as DataUpdateFunction<TInput, TOutput>)(input)\n : updater\n}\n\nexport function noop() {\n //\n}\n\nexport function makeStateUpdater(key: keyof TableState, instance: unknown) {\n return (updater: Updater<any, any>) => {\n ;(instance as any).setState(<TTableState,>(old: TTableState) => {\n return {\n ...old,\n [key]: functionalUpdate(updater, (old as any)[key]),\n }\n })\n }\n}\n\n// SSR has issues with useLayoutEffect still, so use useEffect during SSR\nexport const safeUseLayoutEffect =\n typeof document !== 'undefined' ? React.useLayoutEffect : React.useEffect\n\nexport function useMountedLayoutEffect(fn: any, deps: any[]) {\n const mountedRef = React.useRef(false)\n\n safeUseLayoutEffect(() => {\n if (mountedRef.current) {\n fn()\n }\n mountedRef.current = true\n // eslint-disable-next-line\n }, deps)\n}\n\nexport function useGetLatest<T>(obj: T): () => T {\n const ref = React.useRef<T>()\n ref.current = obj\n\n return React.useCallback(() => ref.current!, [])\n}\n\ntype AnyFunction = (...args: any) => any\n\nexport function isFunction<T extends AnyFunction>(d: any): d is T {\n return d instanceof Function\n}\n\nexport function flattenBy<TNode>(\n arr: TNode[],\n getChildren: (item: TNode) => TNode[]\n) {\n const flat: TNode[] = []\n\n const recurse = (subArr: TNode[]) => {\n subArr.forEach(item => {\n flat.push(item)\n const children = getChildren(item)\n if (children?.length) {\n recurse(children)\n }\n })\n }\n\n recurse(arr)\n\n return flat\n}\n\ntype PropGetterImpl = <TBaseProps, TGetter extends Getter<TBaseProps>>(\n initial: TBaseProps,\n userProps?: TGetter\n) => PropGetterValue<TBaseProps, TGetter>\n\n// @ts-ignore // Just rely on the type, not the implementation\nexport const propGetter: PropGetterImpl = (initial, getter) => {\n if (isFunction(getter)) {\n return getter(initial)\n }\n\n return {\n ...initial,\n ...(getter ?? {}),\n }\n}\n\nexport function memo<TDeps extends readonly any[], TResult>(\n getDeps: () => [...TDeps],\n fn: (...args: NoInfer<[...TDeps]>) => TResult,\n opts: {\n key: string\n debug?: boolean\n onChange?: (result: TResult, previousResult?: TResult) => void\n }\n): () => TResult {\n let deps: any[] = []\n let result: TResult | undefined\n\n return () => {\n const newDeps = getDeps()\n const newSerializedDeps = newDeps\n const oldSerializedDeps = deps\n\n const depsChanged =\n newSerializedDeps.length !== oldSerializedDeps.length ||\n newSerializedDeps.some(\n (dep: any, index: number) => oldSerializedDeps[index] !== dep\n )\n\n if (depsChanged) {\n if (opts?.debug) {\n console.info(opts?.key, {\n length: `${oldSerializedDeps.length} -> ${newSerializedDeps.length}`,\n ...newSerializedDeps\n .map((_, index) => {\n if (oldSerializedDeps[index] !== newSerializedDeps[index]) {\n return [\n index,\n oldSerializedDeps[index],\n newSerializedDeps[index],\n ]\n }\n\n return false\n })\n .filter(Boolean)\n .reduce(\n (accu, curr: any) => ({\n ...accu,\n [curr[0]]: curr.slice(1),\n }),\n {}\n ),\n parent,\n })\n }\n\n let oldResult = result\n result = fn(...newDeps)\n deps = newSerializedDeps\n opts?.onChange?.(result, oldResult)\n\n oldResult = undefined\n }\n\n return result!\n }\n}\n\n// Copied from: https://github.com/jonschlinkert/is-plain-object\nexport function isPlainObject(o: any): o is Object {\n if (!hasObjectPrototype(o)) {\n return false\n }\n\n // If has modified constructor\n const ctor = o.constructor\n if (typeof ctor === 'undefined') {\n return true\n }\n\n // If has modified prototype\n const prot = ctor.prototype\n if (!hasObjectPrototype(prot)) {\n return false\n }\n\n // If constructor does not have an Object-specific method\n if (!prot.hasOwnProperty('isPrototypeOf')) {\n return false\n }\n\n // Most likely a plain Object\n return true\n}\n\nfunction hasObjectPrototype(o: any): boolean {\n return Object.prototype.toString.call(o) === '[object Object]'\n}\n\nexport type Render = typeof flexRender\n\nexport function flexRender<TProps extends {}>(\n Comp: Renderable<TProps>,\n props: TProps\n): React.ReactNode {\n return !Comp ? null : isReactComponent(Comp) ? <Comp {...props} /> : Comp\n}\n\nfunction isReactComponent(component: unknown): component is React.FC {\n return (\n isClassComponent(component) ||\n typeof component === 'function' ||\n isExoticComponent(component)\n )\n}\n\nfunction isClassComponent(component: any) {\n return (\n typeof component === 'function' &&\n (() => {\n const proto = Object.getPrototypeOf(component)\n return proto.prototype && proto.prototype.isReactComponent\n })()\n )\n}\n\nfunction isExoticComponent(component: any) {\n return (\n typeof component === 'object' &&\n typeof component.$$typeof === 'symbol' &&\n ['react.memo', 'react.forward_ref'].includes(component.$$typeof.description)\n )\n}\n\n// export function hashString(str: string, seed = 0): string {\n// let h1 = 0xdeadbeef ^ seed,\n// h2 = 0x41c6ce57 ^ seed\n// for (let i = 0, ch; i < str.length; i++) {\n// ch = str.charCodeAt(i)\n// h1 = Math.imul(h1 ^ ch, 2654435761)\n// h2 = Math.imul(h2 ^ ch, 1597334677)\n// }\n// h1 =\n// Math.imul(h1 ^ (h1 >>> 16), 2246822507) ^\n// Math.imul(h2 ^ (h2 >>> 13), 3266489909)\n// h2 =\n// Math.imul(h2 ^ (h2 >>> 16), 2246822507) ^\n// Math.imul(h1 ^ (h1 >>> 13), 3266489909)\n// return (4294967296 * (2097151 & h2) + (h1 >>> 0)).toString()\n// }\n"],"names":["functionalUpdate","updater","input","makeStateUpdater","key","instance","setState","old","document","React","useLayoutEffect","useEffect","isFunction","d","Function","flattenBy","arr","getChildren","flat","recurse","subArr","forEach","item","push","children","length","propGetter","initial","getter","memo","getDeps","fn","opts","deps","result","newDeps","newSerializedDeps","oldSerializedDeps","depsChanged","some","dep","index","debug","console","info","map","_","filter","Boolean","reduce","accu","curr","slice","parent","oldResult","onChange","undefined","flexRender","Comp","props","isReactComponent","component","isClassComponent","isExoticComponent","proto","Object","getPrototypeOf","prototype","$$typeof","includes","description"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sources":["../../src/utils.tsx"],"sourcesContent":["import React from 'react'\nimport {\n Getter,\n NoInfer,\n PropGetterValue,\n Renderable,\n TableState,\n} from './types'\n\nexport type IsAny<T> = 0 extends 1 & T ? true : false\nexport type PartialKeys<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>\nexport type RequiredKeys<T, K extends keyof T> = Omit<T, K> &\n Required<Pick<T, K>>\nexport type Overwrite<T, U> = Omit<T, keyof U> & U\n\nexport type DataUpdateFunction<TInput, TOutput> = (input: TInput) => TOutput\n\nexport type Updater<TInput, TOutput> =\n | TOutput\n | DataUpdateFunction<TInput, TOutput>\n\nexport function functionalUpdate<TInput, TOutput = TInput>(\n updater: Updater<TInput, TOutput>,\n input: TInput\n): TOutput {\n return typeof updater === 'function'\n ? (updater as DataUpdateFunction<TInput, TOutput>)(input)\n : updater\n}\n\nexport function noop() {\n //\n}\n\nexport function makeStateUpdater(key: keyof TableState, instance: unknown) {\n return (updater: Updater<any, any>) => {\n ;(instance as any).setState(<TTableState,>(old: TTableState) => {\n return {\n ...old,\n [key]: functionalUpdate(updater, (old as any)[key]),\n }\n })\n }\n}\n\ntype AnyFunction = (...args: any) => any\n\nexport function isFunction<T extends AnyFunction>(d: any): d is T {\n return d instanceof Function\n}\n\nexport function flattenBy<TNode>(\n arr: TNode[],\n getChildren: (item: TNode) => TNode[]\n) {\n const flat: TNode[] = []\n\n const recurse = (subArr: TNode[]) => {\n subArr.forEach(item => {\n flat.push(item)\n const children = getChildren(item)\n if (children?.length) {\n recurse(children)\n }\n })\n }\n\n recurse(arr)\n\n return flat\n}\n\ntype PropGetterImpl = <TBaseProps, TGetter extends Getter<TBaseProps>>(\n initial: TBaseProps,\n userProps?: TGetter\n) => PropGetterValue<TBaseProps, TGetter>\n\n// @ts-ignore // Just rely on the type, not the implementation\nexport const propGetter: PropGetterImpl = (initial, getter) => {\n if (isFunction(getter)) {\n return getter(initial)\n }\n\n return {\n ...initial,\n ...(getter ?? {}),\n }\n}\n\nexport function memo<TDeps extends readonly any[], TResult>(\n getDeps: () => [...TDeps],\n fn: (...args: NoInfer<[...TDeps]>) => TResult,\n opts: {\n key: string\n debug?: boolean\n onChange?: (result: TResult, previousResult?: TResult) => void\n }\n): () => TResult {\n let deps: any[] = []\n let result: TResult | undefined\n\n return () => {\n const newDeps = getDeps()\n\n const depsChanged =\n newDeps.length !== deps.length ||\n newDeps.some((dep: any, index: number) => deps[index] !== dep)\n\n if (depsChanged) {\n if (opts?.debug) {\n console.info(opts?.key, {\n length: `${deps.length} -> ${newDeps.length}`,\n ...newDeps\n .map((_, index) => {\n if (deps[index] !== newDeps[index]) {\n return [index, deps[index], newDeps[index]]\n }\n\n return false\n })\n .filter(Boolean)\n .reduce(\n (accu, curr: any) => ({\n ...accu,\n [curr[0]]: curr.slice(1),\n }),\n {}\n ),\n parent,\n })\n }\n\n let oldResult = result\n result = fn(...newDeps)\n deps = newDeps\n opts?.onChange?.(result, oldResult)\n\n oldResult = undefined\n }\n\n return result!\n }\n}\n\nexport type Render = typeof flexRender\n\nexport function flexRender<TProps extends {}>(\n Comp: Renderable<TProps>,\n props: TProps\n): React.ReactNode {\n return !Comp ? null : isReactComponent(Comp) ? <Comp {...props} /> : Comp\n}\n\nfunction isReactComponent(component: unknown): component is React.FC {\n return (\n isClassComponent(component) ||\n typeof component === 'function' ||\n isExoticComponent(component)\n )\n}\n\nfunction isClassComponent(component: any) {\n return (\n typeof component === 'function' &&\n (() => {\n const proto = Object.getPrototypeOf(component)\n return proto.prototype && proto.prototype.isReactComponent\n })()\n )\n}\n\nfunction isExoticComponent(component: any) {\n return (\n typeof component === 'object' &&\n typeof component.$$typeof === 'symbol' &&\n ['react.memo', 'react.forward_ref'].includes(component.$$typeof.description)\n )\n}\n\n// export function hashString(str: string, seed = 0): string {\n// let h1 = 0xdeadbeef ^ seed,\n// h2 = 0x41c6ce57 ^ seed\n// for (let i = 0, ch; i < str.length; i++) {\n// ch = str.charCodeAt(i)\n// h1 = Math.imul(h1 ^ ch, 2654435761)\n// h2 = Math.imul(h2 ^ ch, 1597334677)\n// }\n// h1 =\n// Math.imul(h1 ^ (h1 >>> 16), 2246822507) ^\n// Math.imul(h2 ^ (h2 >>> 13), 3266489909)\n// h2 =\n// Math.imul(h2 ^ (h2 >>> 16), 2246822507) ^\n// Math.imul(h1 ^ (h1 >>> 13), 3266489909)\n// return (4294967296 * (2097151 & h2) + (h1 >>> 0)).toString()\n// }\n"],"names":["functionalUpdate","updater","input","makeStateUpdater","key","instance","setState","old","isFunction","d","Function","flattenBy","arr","getChildren","flat","recurse","subArr","forEach","item","push","children","length","propGetter","initial","getter","memo","getDeps","fn","opts","deps","result","newDeps","depsChanged","some","dep","index","debug","console","info","map","_","filter","Boolean","reduce","accu","curr","slice","parent","oldResult","onChange","undefined","flexRender","Comp","props","isReactComponent","React","component","isClassComponent","isExoticComponent","proto","Object","getPrototypeOf","prototype","$$typeof","includes","description"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAqBO,SAASA,gBAAT,CACLC,OADK,EAELC,KAFK,EAGI;AACT,SAAO,OAAOD,OAAP,KAAmB,UAAnB,GACFA,OAAD,CAAiDC,KAAjD,CADG,GAEHD,OAFJ;AAGD;AAMM,SAASE,gBAAT,CAA0BC,GAA1B,EAAiDC,QAAjD,EAAoE;AACzE,SAAO,UAACJ,OAAD,EAAgC;AACnCI,IAAAA,QAAD,CAAkBC,QAAlB,CAA2B,UAAeC,GAAf,EAAoC;AAAA;;AAC9D,sDACKA,GADL,6BAEGH,GAFH,IAESJ,gBAAgB,CAACC,OAAD,EAAWM,GAAD,CAAaH,GAAb,CAAV,CAFzB;AAID,KALA;AAMF,GAPD;AAQD;AAIM,SAASI,UAAT,CAA2CC,CAA3C,EAA2D;AAChE,SAAOA,CAAC,YAAYC,QAApB;AACD;AAEM,SAASC,SAAT,CACLC,GADK,EAELC,WAFK,EAGL;AACA,MAAMC,IAAa,GAAG,EAAtB;;AAEA,MAAMC,OAAO,GAAG,SAAVA,OAAU,CAACC,MAAD,EAAqB;AACnCA,IAAAA,MAAM,CAACC,OAAP,CAAe,UAAAC,IAAI,EAAI;AACrBJ,MAAAA,IAAI,CAACK,IAAL,CAAUD,IAAV;AACA,UAAME,QAAQ,GAAGP,WAAW,CAACK,IAAD,CAA5B;;AACA,UAAIE,QAAJ,YAAIA,QAAQ,CAAEC,MAAd,EAAsB;AACpBN,QAAAA,OAAO,CAACK,QAAD,CAAP;AACD;AACF,KAND;AAOD,GARD;;AAUAL,EAAAA,OAAO,CAACH,GAAD,CAAP;AAEA,SAAOE,IAAP;AACD;AAOD;IACaQ,UAA0B,GAAG,SAA7BA,UAA6B,CAACC,OAAD,EAAUC,MAAV,EAAqB;AAC7D,MAAIhB,UAAU,CAACgB,MAAD,CAAd,EAAwB;AACtB,WAAOA,MAAM,CAACD,OAAD,CAAb;AACD;;AAED,kDACKA,OADL,EAEMC,MAFN,WAEMA,MAFN,GAEgB,EAFhB;AAID;AAEM,SAASC,IAAT,CACLC,OADK,EAELC,EAFK,EAGLC,IAHK,EAQU;AACf,MAAIC,IAAW,GAAG,EAAlB;AACA,MAAIC,MAAJ;AAEA,SAAO,YAAM;AACX,QAAMC,OAAO,GAAGL,OAAO,EAAvB;AAEA,QAAMM,WAAW,GACfD,OAAO,CAACV,MAAR,KAAmBQ,IAAI,CAACR,MAAxB,IACAU,OAAO,CAACE,IAAR,CAAa,UAACC,GAAD,EAAWC,KAAX;AAAA,aAA6BN,IAAI,CAACM,KAAD,CAAJ,KAAgBD,GAA7C;AAAA,KAAb,CAFF;;AAIA,QAAIF,WAAJ,EAAiB;AACf,UAAIJ,IAAJ,YAAIA,IAAI,CAAEQ,KAAV,EAAiB;AACfC,QAAAA,OAAO,CAACC,IAAR,CAAaV,IAAb,oBAAaA,IAAI,CAAExB,GAAnB;AACEiB,UAAAA,MAAM,EAAKQ,IAAI,CAACR,MAAV,YAAuBU,OAAO,CAACV;AADvC,WAEKU,OAAO,CACPQ,GADA,CACI,UAACC,CAAD,EAAIL,KAAJ,EAAc;AACjB,cAAIN,IAAI,CAACM,KAAD,CAAJ,KAAgBJ,OAAO,CAACI,KAAD,CAA3B,EAAoC;AAClC,mBAAO,CAACA,KAAD,EAAQN,IAAI,CAACM,KAAD,CAAZ,EAAqBJ,OAAO,CAACI,KAAD,CAA5B,CAAP;AACD;;AAED,iBAAO,KAAP;AACD,SAPA,EAQAM,MARA,CAQOC,OARP,EASAC,MATA,CAUC,UAACC,IAAD,EAAOC,IAAP;AAAA;;AAAA,0DACKD,IADL,6BAEGC,IAAI,CAAC,CAAD,CAFP,IAEaA,IAAI,CAACC,KAAL,CAAW,CAAX,CAFb;AAAA,SAVD,EAcC,EAdD,CAFL;AAkBEC,UAAAA,MAAM,EAANA;AAlBF;AAoBD;;AAED,UAAIC,SAAS,GAAGlB,MAAhB;AACAA,MAAAA,MAAM,GAAGH,EAAE,MAAF,SAAMI,OAAN,CAAT;AACAF,MAAAA,IAAI,GAAGE,OAAP;AACAH,MAAAA,IAAI,QAAJ,YAAAA,IAAI,CAAEqB,QAAN,oBAAArB,IAAI,CAAEqB,QAAN,CAAiBnB,MAAjB,EAAyBkB,SAAzB;AAEAA,MAAAA,SAAS,GAAGE,SAAZ;AACD;;AAED,WAAOpB,MAAP;AACD,GAxCD;AAyCD;AAIM,SAASqB,UAAT,CACLC,IADK,EAELC,KAFK,EAGY;AACjB,SAAO,CAACD,IAAD,GAAQ,IAAR,GAAeE,gBAAgB,CAACF,IAAD,CAAhB,gBAAyBG,wCAAC,IAAD,EAAUF,KAAV,CAAzB,GAA+CD,IAArE;AACD;;AAED,SAASE,gBAAT,CAA0BE,SAA1B,EAAqE;AACnE,SACEC,gBAAgB,CAACD,SAAD,CAAhB,IACA,OAAOA,SAAP,KAAqB,UADrB,IAEAE,iBAAiB,CAACF,SAAD,CAHnB;AAKD;;AAED,SAASC,gBAAT,CAA0BD,SAA1B,EAA0C;AACxC,SACE,OAAOA,SAAP,KAAqB,UAArB,IACC,YAAM;AACL,QAAMG,KAAK,GAAGC,MAAM,CAACC,cAAP,CAAsBL,SAAtB,CAAd;AACA,WAAOG,KAAK,CAACG,SAAN,IAAmBH,KAAK,CAACG,SAAN,CAAgBR,gBAA1C;AACD,GAHD,EAFF;AAOD;;AAED,SAASI,iBAAT,CAA2BF,SAA3B,EAA2C;AACzC,SACE,OAAOA,SAAP,KAAqB,QAArB,IACA,OAAOA,SAAS,CAACO,QAAjB,KAA8B,QAD9B,IAEA,CAAC,YAAD,EAAe,mBAAf,EAAoCC,QAApC,CAA6CR,SAAS,CAACO,QAAV,CAAmBE,WAAhE,CAHF;AAKD;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;"}
@@ -10,6 +10,7 @@
10
10
  */
11
11
  import * as React from 'react';
12
12
  import React__default from 'react';
13
+ import { useSyncExternalStore } from 'use-sync-external-store/shim';
13
14
 
14
15
  function columnFilterRowsFn(instance, rowModel) {
15
16
  var columnFilters = instance.getState().columnFilters;
@@ -390,9 +391,7 @@ function makeStateUpdater(key, instance) {
390
391
  return _extends({}, old, (_extends2 = {}, _extends2[key] = functionalUpdate(updater, old[key]), _extends2));
391
392
  });
392
393
  };
393
- } // SSR has issues with useLayoutEffect still, so use useEffect during SSR
394
-
395
- typeof document !== 'undefined' ? React__default.useLayoutEffect : React__default.useEffect;
394
+ }
396
395
  function isFunction(d) {
397
396
  return d instanceof Function;
398
397
  }
@@ -426,19 +425,17 @@ function memo(getDeps, fn, opts) {
426
425
  var result;
427
426
  return function () {
428
427
  var newDeps = getDeps();
429
- var newSerializedDeps = newDeps;
430
- var oldSerializedDeps = deps;
431
- var depsChanged = newSerializedDeps.length !== oldSerializedDeps.length || newSerializedDeps.some(function (dep, index) {
432
- return oldSerializedDeps[index] !== dep;
428
+ var depsChanged = newDeps.length !== deps.length || newDeps.some(function (dep, index) {
429
+ return deps[index] !== dep;
433
430
  });
434
431
 
435
432
  if (depsChanged) {
436
433
  if (opts != null && opts.debug) {
437
434
  console.info(opts == null ? void 0 : opts.key, _extends({
438
- length: oldSerializedDeps.length + " -> " + newSerializedDeps.length
439
- }, newSerializedDeps.map(function (_, index) {
440
- if (oldSerializedDeps[index] !== newSerializedDeps[index]) {
441
- return [index, oldSerializedDeps[index], newSerializedDeps[index]];
435
+ length: deps.length + " -> " + newDeps.length
436
+ }, newDeps.map(function (_, index) {
437
+ if (deps[index] !== newDeps[index]) {
438
+ return [index, deps[index], newDeps[index]];
442
439
  }
443
440
 
444
441
  return false;
@@ -453,15 +450,14 @@ function memo(getDeps, fn, opts) {
453
450
 
454
451
  var oldResult = result;
455
452
  result = fn.apply(void 0, newDeps);
456
- deps = newSerializedDeps;
453
+ deps = newDeps;
457
454
  opts == null ? void 0 : opts.onChange == null ? void 0 : opts.onChange(result, oldResult);
458
455
  oldResult = undefined;
459
456
  }
460
457
 
461
458
  return result;
462
459
  };
463
- } // Copied from: https://github.com/jonschlinkert/is-plain-object
464
-
460
+ }
465
461
  function flexRender(Comp, props) {
466
462
  return !Comp ? null : isReactComponent(Comp) ? /*#__PURE__*/React__default.createElement(Comp, props) : Comp;
467
463
  }
@@ -1063,9 +1059,9 @@ function getInstance$9(instance) {
1063
1059
  return (_instance$getState$gr2 = instance.getState().grouping) == null ? void 0 : _instance$getState$gr2.indexOf(columnId);
1064
1060
  },
1065
1061
  resetGrouping: function resetGrouping() {
1066
- var _instance$options$ini, _instance$options, _instance$options$ini2;
1062
+ var _instance$initialStat, _instance$initialStat2;
1067
1063
 
1068
- instance.setGrouping((_instance$options$ini = (_instance$options = instance.options) == null ? void 0 : (_instance$options$ini2 = _instance$options.initialState) == null ? void 0 : _instance$options$ini2.grouping) != null ? _instance$options$ini : []);
1064
+ instance.setGrouping((_instance$initialStat = (_instance$initialStat2 = instance.initialState) == null ? void 0 : _instance$initialStat2.grouping) != null ? _instance$initialStat : []);
1069
1065
  },
1070
1066
  getToggleGroupingProps: function getToggleGroupingProps(columnId, userProps) {
1071
1067
  var column = instance.getColumn(columnId);
@@ -1288,9 +1284,9 @@ function getInstance$7(instance) {
1288
1284
  return instance.options.onColumnPinningChange == null ? void 0 : instance.options.onColumnPinningChange(updater, functionalUpdate(updater, instance.getState().columnPinning));
1289
1285
  },
1290
1286
  resetColumnPinning: function resetColumnPinning() {
1291
- var _instance$options$ini, _instance$options$ini2;
1287
+ var _instance$initialStat, _instance$initialStat2;
1292
1288
 
1293
- return instance.setColumnPinning((_instance$options$ini = (_instance$options$ini2 = instance.options.initialState) == null ? void 0 : _instance$options$ini2.columnPinning) != null ? _instance$options$ini : {});
1289
+ return instance.setColumnPinning((_instance$initialStat = (_instance$initialStat2 = instance.initialState) == null ? void 0 : _instance$initialStat2.columnPinning) != null ? _instance$initialStat : {});
1294
1290
  },
1295
1291
  pinColumn: function pinColumn(columnId, position) {
1296
1292
  var column = instance.getColumn(columnId);
@@ -2372,9 +2368,9 @@ function getInstance$5(instance) {
2372
2368
  });
2373
2369
  },
2374
2370
  resetColumnFilters: function resetColumnFilters() {
2375
- var _instance$options$ini, _instance$options2, _instance$options2$in;
2371
+ var _instance$initialStat, _instance$initialStat2;
2376
2372
 
2377
- instance.setColumnFilters((_instance$options$ini = (_instance$options2 = instance.options) == null ? void 0 : (_instance$options2$in = _instance$options2.initialState) == null ? void 0 : _instance$options2$in.columnFilters) != null ? _instance$options$ini : []);
2373
+ instance.setColumnFilters((_instance$initialStat = (_instance$initialStat2 = instance.initialState) == null ? void 0 : _instance$initialStat2.columnFilters) != null ? _instance$initialStat : []);
2378
2374
  },
2379
2375
  getColumnFilteredRowModel: memo(function () {
2380
2376
  return [instance.getState().columnFilters, instance.getCoreRowModel(), instance.options.columnFilterRowsFn];
@@ -2474,7 +2470,7 @@ function getInstance$5(instance) {
2474
2470
  key: 'getGlobalFilteredRowModel',
2475
2471
  debug: instance.options.debug,
2476
2472
  onChange: function onChange() {
2477
- return instance._notifySortingReset();
2473
+ instance._notifySortingReset();
2478
2474
  }
2479
2475
  }),
2480
2476
  getPreGlobalFilteredRows: function getPreGlobalFilteredRows() {
@@ -2861,9 +2857,9 @@ function getInstance$4(instance) {
2861
2857
  })) != null ? _instance$getState$so2 : -1;
2862
2858
  },
2863
2859
  resetSorting: function resetSorting() {
2864
- var _instance$options$ini, _instance$options, _instance$options$ini2;
2860
+ var _instance$initialStat, _instance$initialStat2;
2865
2861
 
2866
- instance.setSorting((_instance$options$ini = (_instance$options = instance.options) == null ? void 0 : (_instance$options$ini2 = _instance$options.initialState) == null ? void 0 : _instance$options$ini2.sorting) != null ? _instance$options$ini : []);
2862
+ instance.setSorting((_instance$initialStat = (_instance$initialStat2 = instance.initialState) == null ? void 0 : _instance$initialStat2.sorting) != null ? _instance$initialStat : []);
2867
2863
  },
2868
2864
  getToggleSortingProps: function getToggleSortingProps(columnId, userProps) {
2869
2865
  var column = instance.getColumn(columnId);
@@ -2968,13 +2964,9 @@ function getInstance$3(instance) {
2968
2964
  toggleRowExpanded: function toggleRowExpanded(rowId, expanded) {
2969
2965
  if (!rowId) return;
2970
2966
  instance.setExpanded(function (old) {
2971
- var _old, _expanded;
2967
+ var _expanded;
2972
2968
 
2973
- if (old === void 0) {
2974
- old = {};
2975
- }
2976
-
2977
- var exists = old === true ? true : !!((_old = old) != null && _old[rowId]);
2969
+ var exists = old === true ? true : !!(old != null && old[rowId]);
2978
2970
  var oldExpanded = {};
2979
2971
 
2980
2972
  if (old === true) {
@@ -3012,9 +3004,9 @@ function getInstance$3(instance) {
3012
3004
  }
3013
3005
  },
3014
3006
  resetExpanded: function resetExpanded() {
3015
- var _instance$options$ini, _instance$options, _instance$options$ini2;
3007
+ var _instance$initialStat, _instance$initialStat2;
3016
3008
 
3017
- instance.setExpanded((_instance$options$ini = (_instance$options = instance.options) == null ? void 0 : (_instance$options$ini2 = _instance$options.initialState) == null ? void 0 : _instance$options$ini2.expanded) != null ? _instance$options$ini : {});
3009
+ instance.setExpanded((_instance$initialStat = (_instance$initialStat2 = instance.initialState) == null ? void 0 : _instance$initialStat2.expanded) != null ? _instance$initialStat : {});
3018
3010
  },
3019
3011
  getIsRowExpanded: function getIsRowExpanded(rowId) {
3020
3012
  var _instance$options$get;
@@ -3114,7 +3106,7 @@ function getInstance$3(instance) {
3114
3106
  key: 'getExpandedRowModel',
3115
3107
  debug: instance.options.debug,
3116
3108
  onChange: function onChange() {
3117
- return instance._notifyPageIndexReset();
3109
+ instance._notifyPageIndexReset();
3118
3110
  }
3119
3111
  }),
3120
3112
  getPreExpandedRows: function getPreExpandedRows() {
@@ -3542,9 +3534,9 @@ function getInstance$1(instance) {
3542
3534
  instance.setPageIndex(0);
3543
3535
  },
3544
3536
  resetPageSize: function resetPageSize() {
3545
- var _instance$options$ini, _instance$options$ini2, _instance$options$ini3;
3537
+ var _instance$initialStat2, _instance$initialStat3, _instance$initialStat4;
3546
3538
 
3547
- instance.setPageSize((_instance$options$ini = (_instance$options$ini2 = instance.options.initialState) == null ? void 0 : (_instance$options$ini3 = _instance$options$ini2.pagination) == null ? void 0 : _instance$options$ini3.pageSize) != null ? _instance$options$ini : 10);
3539
+ instance.setPageSize((_instance$initialStat2 = (_instance$initialStat3 = instance.initialState) == null ? void 0 : (_instance$initialStat4 = _instance$initialStat3.pagination) == null ? void 0 : _instance$initialStat4.pageSize) != null ? _instance$initialStat2 : 10);
3548
3540
  },
3549
3541
  setPageSize: function setPageSize(updater) {
3550
3542
  instance.setPagination(function (old) {
@@ -4184,7 +4176,7 @@ var RowSelection = /*#__PURE__*/Object.freeze({
4184
4176
  });
4185
4177
 
4186
4178
  var features = [Visibility, Ordering, Pinning, Headers, Filters, Sorting, Grouping, Expanding, ColumnSizing, Pagination, RowSelection];
4187
- function createTableInstance(options, rerender) {
4179
+ function createTableInstance(options) {
4188
4180
  var _options$initialState;
4189
4181
 
4190
4182
  if (process.env.NODE_ENV !== 'production' && options.debug) {
@@ -4192,6 +4184,7 @@ function createTableInstance(options, rerender) {
4192
4184
  }
4193
4185
 
4194
4186
  var instance = {};
4187
+ var listeners = [];
4195
4188
  var defaultOptions = features.reduce(function (obj, feature) {
4196
4189
  return Object.assign(obj, feature.getDefaultOptions == null ? void 0 : feature.getDefaultOptions(instance));
4197
4190
  }, {});
@@ -4209,10 +4202,23 @@ function createTableInstance(options, rerender) {
4209
4202
  return Object.assign(obj, feature.getInitialState == null ? void 0 : feature.getInitialState());
4210
4203
  }, {}), (_options$initialState = options.initialState) != null ? _options$initialState : {});
4211
4204
 
4212
- var finalInstance = _extends({}, instance, features.reduce(function (obj, feature) {
4205
+ var finalInstance = _extends({}, instance, {
4206
+ subscribe: function subscribe(cb) {
4207
+ listeners.push(cb);
4208
+ return function () {
4209
+ listeners = listeners.filter(function (l) {
4210
+ return l !== cb;
4211
+ });
4212
+ };
4213
+ },
4214
+ notify: function notify() {
4215
+ listeners.forEach(function (l) {
4216
+ return l();
4217
+ });
4218
+ }
4219
+ }, features.reduce(function (obj, feature) {
4213
4220
  return Object.assign(obj, feature.getInstance == null ? void 0 : feature.getInstance(instance));
4214
4221
  }, {}), {
4215
- rerender: rerender,
4216
4222
  initialState: initialState,
4217
4223
  internalState: initialState,
4218
4224
  reset: function reset() {
@@ -4229,11 +4235,7 @@ function createTableInstance(options, rerender) {
4229
4235
 
4230
4236
  return state;
4231
4237
  },
4232
- setState: function setState(updater, shouldRerender) {
4233
- if (shouldRerender === void 0) {
4234
- shouldRerender = true;
4235
- }
4236
-
4238
+ setState: function setState(updater) {
4237
4239
  var onStateChange = instance.options.onStateChange;
4238
4240
  var internalState = instance.internalState;
4239
4241
  var newState = functionalUpdate(updater, internalState);
@@ -4244,9 +4246,7 @@ function createTableInstance(options, rerender) {
4244
4246
  return;
4245
4247
  }
4246
4248
 
4247
- if (shouldRerender) {
4248
- instance.rerender();
4249
- }
4249
+ instance.notify();
4250
4250
  },
4251
4251
  getDefaultColumn: memo(function () {
4252
4252
  return [instance.options.defaultColumn];
@@ -4757,17 +4757,16 @@ function createTable() {
4757
4757
  throw new Error('Invalid accessor');
4758
4758
  },
4759
4759
  useTable: function useTable(options) {
4760
- var instanceRef = React.useRef(undefined);
4761
- var rerender = React.useReducer(function () {
4762
- return {};
4763
- }, {})[1];
4764
-
4765
- if (!instanceRef.current) {
4766
- instanceRef.current = createTableInstance(options, rerender);
4767
- }
4760
+ var _React$useState = React.useState(function () {
4761
+ return createTableInstance(options);
4762
+ }),
4763
+ instance = _React$useState[0];
4768
4764
 
4769
- instanceRef.current.updateOptions(options);
4770
- return instanceRef.current;
4765
+ useSyncExternalStore(instance.subscribe, function () {
4766
+ return instance.internalState;
4767
+ });
4768
+ instance.updateOptions(options);
4769
+ return instance;
4771
4770
  },
4772
4771
  types: undefined
4773
4772
  };