@tanstack/table-core 8.0.0-alpha.26 → 8.0.0-alpha.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/core.js +7 -1
- package/build/cjs/core.js.map +1 -1
- package/build/cjs/createTable.js.map +1 -1
- package/build/cjs/features/Expanding.js +2 -2
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Filters.js +1 -1
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Pagination.js +2 -4
- package/build/cjs/features/Pagination.js.map +1 -1
- package/build/cjs/features/Sorting.js +1 -1
- package/build/cjs/features/Sorting.js.map +1 -1
- package/build/cjs/utils.js +4 -4
- package/build/cjs/utils.js.map +1 -1
- package/build/esm/index.js +17 -13
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +269 -269
- package/build/types/core.d.ts +3 -1
- package/build/types/createTable.d.ts +2 -4
- package/build/types/types.d.ts +1 -0
- package/build/umd/index.development.js +17 -13
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +1 -1
- package/src/core.tsx +14 -3
- package/src/createTable.tsx +2 -6
- package/src/features/Expanding.ts +2 -2
- package/src/features/Filters.ts +1 -1
- package/src/features/Pagination.ts +2 -8
- package/src/features/Sorting.ts +1 -1
- package/src/types.ts +1 -0
- package/src/utils.tsx +4 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pagination.js","sources":["../../../src/features/Pagination.ts"],"sourcesContent":["import {\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n TableInstance,\n RowModel,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo } from '../utils'\n\nexport type PaginationState = {\n pageIndex: number\n pageSize: number\n pageCount: number\n}\n\nexport type PaginationTableState = {\n pagination: PaginationState\n}\n\nexport type PaginationOptions<TGenerics extends AnyGenerics> = {\n onPaginationChange?: OnChangeFn<PaginationState>\n autoResetPageIndex?: boolean\n paginateRowsFn?: (\n instance: TableInstance<TGenerics>,\n rowModel: RowModel<TGenerics>\n ) => RowModel<TGenerics>\n}\n\nexport type PaginationDefaultOptions = {\n onPaginationChange: OnChangeFn<PaginationState>\n autoResetPageIndex: boolean\n}\n\nexport type PaginationInstance<TGenerics extends AnyGenerics> = {\n _notifyPageIndexReset: () => void\n setPagination: (updater: Updater<PaginationState>) => void\n resetPagination: () => void\n setPageIndex: (updater: Updater<number>) => void\n resetPageIndex: () => void\n setPageSize: (updater: Updater<number>) => void\n resetPageSize: () => void\n setPageCount: (updater: Updater<number>) => void\n getPageOptions: () => number[]\n getCanPreviousPage: () => boolean\n getCanNextPage: () => boolean\n previousPage: () => void\n nextPage: () => void\n getPrePaginationRowModel: () => RowModel<TGenerics>\n getPaginationRowModel: () => RowModel<TGenerics>\n getPageCount: () => number\n}\n\n//\n\nexport const Pagination = {\n getInitialState: (): PaginationTableState => {\n return {\n pagination: {\n pageCount: -1,\n pageIndex: 0,\n pageSize: 10,\n },\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): PaginationDefaultOptions => {\n return {\n onPaginationChange: makeStateUpdater('pagination', instance),\n autoResetPageIndex: true,\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): PaginationInstance<TGenerics> => {\n let registered = false\n return {\n _notifyPageIndexReset: () => {\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.autoResetPageIndex\n ) {\n instance.resetPageIndex()\n }\n },\n setPagination: updater => {\n const safeUpdater: Updater<PaginationState> = old => {\n let newState = functionalUpdate(updater, old)\n\n return newState\n }\n\n return instance.options.onPaginationChange?.(\n safeUpdater,\n functionalUpdate(safeUpdater, instance.getState().pagination)\n )\n },\n resetPagination: () => {\n instance.setPagination(\n instance.initialState.pagination ?? {\n pageIndex: 0,\n pageSize: 10,\n pageCount: -1,\n }\n )\n },\n setPageIndex: updater => {\n instance.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex)\n\n const maxPageIndex =\n old.pageCount && old.pageCount > 0\n ? old.pageCount - 1\n : Number.MAX_SAFE_INTEGER\n\n pageIndex = Math.min(Math.max(0, pageIndex), maxPageIndex)\n\n return {\n ...old,\n pageIndex,\n }\n })\n },\n resetPageIndex: () => {\n instance.setPageIndex(0)\n },\n resetPageSize: () => {\n instance.setPageSize(instance.initialState?.pagination?.pageSize ?? 10)\n },\n setPageSize: updater => {\n instance.setPagination(old => {\n const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize))\n const topRowIndex = old.pageSize * old.pageIndex!\n const pageIndex = Math.floor(topRowIndex / pageSize)\n\n return {\n ...old,\n pageIndex,\n pageSize,\n }\n })\n },\n setPageCount: updater =>\n instance.setPagination(old => {\n let newPageCount = functionalUpdate(updater, old.pageCount)\n\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount)\n }\n\n return {\n ...old,\n pageCount: newPageCount,\n }\n }),\n\n getPageOptions: memo(\n () => [\n instance.getState().pagination.pageSize,\n instance.getState().pagination.pageCount,\n ],\n (pageSize, pageCount) => {\n let pageOptions: number[] = []\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i)\n }\n return pageOptions\n },\n {\n key: 'getPageOptions',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n getCanPreviousPage: () => instance.getState().pagination.pageIndex > 0,\n\n getCanNextPage: () => {\n const { pageIndex, pageSize } = instance.getState().pagination\n\n const pageCount = instance.getPageCount()\n\n if (pageCount === -1) {\n return true\n }\n\n if (pageCount === 0) {\n return false\n }\n\n return (\n pageIndex <\n Math.ceil(\n instance.getPrePaginationRowModel().rows.length / pageSize\n ) -\n 1\n )\n },\n\n previousPage: () => {\n return instance.setPageIndex(old => old - 1)\n },\n\n nextPage: () => {\n return instance.setPageIndex(old => {\n return old + 1\n })\n },\n\n getPrePaginationRowModel: () => instance.getExpandedRowModel(),\n getPaginationRowModel: memo(\n () => [\n instance.getState().pagination,\n instance.getExpandedRowModel(),\n instance.options.paginateRowsFn,\n ],\n (_pagination, rowModel, paginateRowsFn) => {\n if (!paginateRowsFn || !rowModel.rows.length) {\n return rowModel\n }\n\n return paginateRowsFn(instance, rowModel)\n },\n {\n key: 'getPaginationRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n getPageCount: () => {\n const { pageCount } = instance.getState().pagination\n if (pageCount > 0) {\n return pageCount\n }\n\n return Math.ceil(\n instance.getPrePaginationRowModel().rows.length /\n instance.getState().pagination.pageSize\n )\n },\n }\n },\n}\n"],"names":["Pagination","getInitialState","pagination","pageCount","pageIndex","pageSize","getDefaultOptions","instance","onPaginationChange","makeStateUpdater","autoResetPageIndex","getInstance","registered","_notifyPageIndexReset","options","autoResetAll","resetPageIndex","setPagination","updater","safeUpdater","old","newState","functionalUpdate","getState","resetPagination","initialState","setPageIndex","maxPageIndex","Number","MAX_SAFE_INTEGER","Math","min","max","resetPageSize","setPageSize","topRowIndex","floor","setPageCount","newPageCount","getPageOptions","memo","pageOptions","Array","fill","map","_","i","key","debug","debugAll","debugTable","getCanPreviousPage","getCanNextPage","getPageCount","ceil","getPrePaginationRowModel","rows","length","previousPage","nextPage","getExpandedRowModel","getPaginationRowModel","paginateRowsFn","_pagination","rowModel"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Pagination.js","sources":["../../../src/features/Pagination.ts"],"sourcesContent":["import {\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n TableInstance,\n RowModel,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo } from '../utils'\n\nexport type PaginationState = {\n pageIndex: number\n pageSize: number\n pageCount: number\n}\n\nexport type PaginationTableState = {\n pagination: PaginationState\n}\n\nexport type PaginationOptions<TGenerics extends AnyGenerics> = {\n onPaginationChange?: OnChangeFn<PaginationState>\n autoResetPageIndex?: boolean\n paginateRowsFn?: (\n instance: TableInstance<TGenerics>,\n rowModel: RowModel<TGenerics>\n ) => RowModel<TGenerics>\n}\n\nexport type PaginationDefaultOptions = {\n onPaginationChange: OnChangeFn<PaginationState>\n autoResetPageIndex: boolean\n}\n\nexport type PaginationInstance<TGenerics extends AnyGenerics> = {\n _notifyPageIndexReset: () => void\n setPagination: (updater: Updater<PaginationState>) => void\n resetPagination: () => void\n setPageIndex: (updater: Updater<number>) => void\n resetPageIndex: () => void\n setPageSize: (updater: Updater<number>) => void\n resetPageSize: () => void\n setPageCount: (updater: Updater<number>) => void\n getPageOptions: () => number[]\n getCanPreviousPage: () => boolean\n getCanNextPage: () => boolean\n previousPage: () => void\n nextPage: () => void\n getPrePaginationRowModel: () => RowModel<TGenerics>\n getPaginationRowModel: () => RowModel<TGenerics>\n getPageCount: () => number\n}\n\n//\n\nexport const Pagination = {\n getInitialState: (): PaginationTableState => {\n return {\n pagination: {\n pageCount: -1,\n pageIndex: 0,\n pageSize: 10,\n },\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): PaginationDefaultOptions => {\n return {\n onPaginationChange: makeStateUpdater('pagination', instance),\n autoResetPageIndex: true,\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): PaginationInstance<TGenerics> => {\n let registered = false\n return {\n _notifyPageIndexReset: () => {\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.autoResetPageIndex\n ) {\n instance.resetPageIndex()\n }\n },\n setPagination: updater => {\n const safeUpdater: Updater<PaginationState> = old => {\n let newState = functionalUpdate(updater, old)\n\n return newState\n }\n\n return instance.options.onPaginationChange?.(\n safeUpdater,\n functionalUpdate(safeUpdater, instance.getState().pagination)\n )\n },\n resetPagination: () => {\n instance.setPagination(\n instance.initialState.pagination ?? {\n pageIndex: 0,\n pageSize: 10,\n pageCount: -1,\n }\n )\n },\n setPageIndex: updater => {\n instance.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex)\n\n const maxPageIndex =\n old.pageCount && old.pageCount > 0\n ? old.pageCount - 1\n : Number.MAX_SAFE_INTEGER\n\n pageIndex = Math.min(Math.max(0, pageIndex), maxPageIndex)\n\n return {\n ...old,\n pageIndex,\n }\n })\n },\n resetPageIndex: () => {\n instance.setPageIndex(0)\n },\n resetPageSize: () => {\n instance.setPageSize(instance.initialState?.pagination?.pageSize ?? 10)\n },\n setPageSize: updater => {\n instance.setPagination(old => {\n const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize))\n const topRowIndex = old.pageSize * old.pageIndex!\n const pageIndex = Math.floor(topRowIndex / pageSize)\n\n return {\n ...old,\n pageIndex,\n pageSize,\n }\n })\n },\n setPageCount: updater =>\n instance.setPagination(old => {\n let newPageCount = functionalUpdate(updater, old.pageCount)\n\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount)\n }\n\n return {\n ...old,\n pageCount: newPageCount,\n }\n }),\n\n getPageOptions: memo(\n () => [\n instance.getState().pagination.pageSize,\n instance.getState().pagination.pageCount,\n ],\n (pageSize, pageCount) => {\n let pageOptions: number[] = []\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i)\n }\n return pageOptions\n },\n {\n key: 'getPageOptions',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n getCanPreviousPage: () => instance.getState().pagination.pageIndex > 0,\n\n getCanNextPage: () => {\n const { pageIndex } = instance.getState().pagination\n\n const pageCount = instance.getPageCount()\n\n if (pageCount === -1) {\n return true\n }\n\n if (pageCount === 0) {\n return false\n }\n\n return pageIndex < pageCount - 1\n },\n\n previousPage: () => {\n return instance.setPageIndex(old => old - 1)\n },\n\n nextPage: () => {\n return instance.setPageIndex(old => {\n return old + 1\n })\n },\n\n getPrePaginationRowModel: () => instance.getExpandedRowModel(),\n getPaginationRowModel: memo(\n () => [\n instance.getState().pagination,\n instance.getExpandedRowModel(),\n instance.options.paginateRowsFn,\n ],\n (_pagination, rowModel, paginateRowsFn) => {\n if (!paginateRowsFn || !rowModel.rows.length) {\n return rowModel\n }\n\n return paginateRowsFn(instance, rowModel)\n },\n {\n key: 'getPaginationRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n getPageCount: () => {\n const { pageCount } = instance.getState().pagination\n if (pageCount > 0) {\n return pageCount\n }\n\n return Math.ceil(\n instance.getPrePaginationRowModel().rows.length /\n instance.getState().pagination.pageSize\n )\n },\n }\n },\n}\n"],"names":["Pagination","getInitialState","pagination","pageCount","pageIndex","pageSize","getDefaultOptions","instance","onPaginationChange","makeStateUpdater","autoResetPageIndex","getInstance","registered","_notifyPageIndexReset","options","autoResetAll","resetPageIndex","setPagination","updater","safeUpdater","old","newState","functionalUpdate","getState","resetPagination","initialState","setPageIndex","maxPageIndex","Number","MAX_SAFE_INTEGER","Math","min","max","resetPageSize","setPageSize","topRowIndex","floor","setPageCount","newPageCount","getPageOptions","memo","pageOptions","Array","fill","map","_","i","key","debug","debugAll","debugTable","getCanPreviousPage","getCanNextPage","getPageCount","previousPage","nextPage","getPrePaginationRowModel","getExpandedRowModel","getPaginationRowModel","paginateRowsFn","_pagination","rowModel","rows","length","ceil"],"mappings":"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"}
|
|
@@ -288,7 +288,7 @@ var Sorting = {
|
|
|
288
288
|
var initialProps = {
|
|
289
289
|
title: canSort ? 'Toggle Sorting' : undefined,
|
|
290
290
|
onClick: canSort ? function (e) {
|
|
291
|
-
e.persist();
|
|
291
|
+
e.persist == null ? void 0 : e.persist();
|
|
292
292
|
column.toggleSorting == null ? void 0 : column.toggleSorting(undefined, column.getCanMultiSort() ? instance.options.isMultiSortEvent == null ? void 0 : instance.options.isMultiSortEvent(e) : false);
|
|
293
293
|
} : undefined
|
|
294
294
|
};
|
|
@@ -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 AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Row,\n Updater,\n} from '../types'\n\nimport {\n functionalUpdate,\n isFunction,\n makeStateUpdater,\n memo,\n Overwrite,\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<TGenerics extends AnyGenerics> = {\n (rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): number\n}\n\nexport type CustomSortingTypes<TGenerics extends AnyGenerics> = Record<\n string,\n SortingFn<TGenerics>\n>\n\nexport type SortingTableState = {\n sorting: SortingState\n}\n\nexport type SortType<TGenerics extends AnyGenerics> =\n | 'auto'\n | BuiltInSortType\n | keyof TGenerics['SortingFns']\n | SortingFn<TGenerics>\n\nexport type SortingColumnDef<TGenerics extends AnyGenerics> = {\n sortType?: SortType<Overwrite<TGenerics, { Value: any }>>\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<TGenerics extends AnyGenerics> = {\n sortType: SortType<Overwrite<TGenerics, { Value: any }>>\n getCanSort: () => boolean\n getCanMultiSort: () => boolean\n getSortIndex: () => number\n getIsSorted: () => false | SortDirection\n resetSorting: () => void\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<TGenerics extends AnyGenerics> = {\n sortTypes?: TGenerics['SortingFns']\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: TableInstance<TGenerics>,\n rowModel: RowModel<TGenerics>\n ) => RowModel<TGenerics>\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<TGenerics extends AnyGenerics> = {\n _notifySortingReset: () => void\n getColumnAutoSortingFn: (columnId: string) => SortingFn<TGenerics> | undefined\n getColumnAutoSortDir: (columnId: string) => SortDirection\n\n getColumnSortingFn: (columnId: string) => SortingFn<TGenerics> | undefined\n\n setSorting: (updater: Updater<SortingState>) => void\n toggleColumnSorting: (\n columnId: string,\n desc?: boolean,\n multi?: boolean\n ) => void\n resetSorting: (columnId?: string) => 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 getPreSortedRowModel: () => RowModel<TGenerics>\n getSortedRowModel: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Sorting = {\n getDefaultColumn: <\n TGenerics extends AnyGenerics\n >(): SortingColumnDef<TGenerics> => {\n return {\n sortType: 'auto',\n }\n },\n\n getInitialState: (): SortingTableState => {\n return {\n sorting: [],\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): SortingOptions<TGenerics> => {\n return {\n onSortingChange: makeStateUpdater('sorting', instance),\n autoResetSorting: true,\n isMultiSortEvent: (e: MouseEvent | TouchEvent) => {\n return e.shiftKey\n },\n }\n },\n\n createColumn: <TGenerics extends AnyGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): SortingColumn<TGenerics> => {\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 resetSorting: () => instance.resetSorting(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\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): SortingInstance<TGenerics> => {\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\n .getGlobalFilteredRowModel()\n .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>)?.[\n column.sortType as string\n ] ??\n (sortTypes[\n column.sortType as BuiltInSortType\n ] as SortingFn<TGenerics>)\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 ??\n 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: (columnId?: string) => {\n if (columnId) {\n instance.setSorting(old =>\n old?.length ? old.filter(d => d.id !== columnId) : []\n )\n } else {\n instance.setSorting(instance.initialState?.sorting ?? [])\n }\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 getPreSortedRowModel: () => instance.getGlobalFilteredRowModel(),\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 return sortingFn(instance, rowModel)\n },\n {\n key: 'getSortedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance._notifyGroupingReset()\n },\n }\n ),\n }\n },\n}\n"],"names":["Sorting","getDefaultColumn","sortType","getInitialState","sorting","getDefaultOptions","instance","onSortingChange","makeStateUpdater","autoResetSorting","isMultiSortEvent","e","shiftKey","createColumn","column","getCanSort","getColumnCanSort","id","getCanMultiSort","getColumnCanMultiSort","getSortIndex","getColumnSortIndex","getIsSorted","getColumnIsSorted","resetSorting","toggleSorting","desc","isMulti","toggleColumnSorting","getToggleSortingProps","userProps","getInstance","registered","_notifySortingReset","options","autoResetAll","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","getPreSortedRowModel","getSortedRowModel","memo","sortRowsFn","rowModel","sortingFn","key","debug","debugAll","debugTable","onChange","_notifyGroupingReset"],"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 AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Row,\n Updater,\n} from '../types'\n\nimport {\n functionalUpdate,\n isFunction,\n makeStateUpdater,\n memo,\n Overwrite,\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<TGenerics extends AnyGenerics> = {\n (rowA: Row<TGenerics>, rowB: Row<TGenerics>, columnId: string): number\n}\n\nexport type CustomSortingTypes<TGenerics extends AnyGenerics> = Record<\n string,\n SortingFn<TGenerics>\n>\n\nexport type SortingTableState = {\n sorting: SortingState\n}\n\nexport type SortType<TGenerics extends AnyGenerics> =\n | 'auto'\n | BuiltInSortType\n | keyof TGenerics['SortingFns']\n | SortingFn<TGenerics>\n\nexport type SortingColumnDef<TGenerics extends AnyGenerics> = {\n sortType?: SortType<Overwrite<TGenerics, { Value: any }>>\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<TGenerics extends AnyGenerics> = {\n sortType: SortType<Overwrite<TGenerics, { Value: any }>>\n getCanSort: () => boolean\n getCanMultiSort: () => boolean\n getSortIndex: () => number\n getIsSorted: () => false | SortDirection\n resetSorting: () => void\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<TGenerics extends AnyGenerics> = {\n sortTypes?: TGenerics['SortingFns']\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: TableInstance<TGenerics>,\n rowModel: RowModel<TGenerics>\n ) => RowModel<TGenerics>\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<TGenerics extends AnyGenerics> = {\n _notifySortingReset: () => void\n getColumnAutoSortingFn: (columnId: string) => SortingFn<TGenerics> | undefined\n getColumnAutoSortDir: (columnId: string) => SortDirection\n\n getColumnSortingFn: (columnId: string) => SortingFn<TGenerics> | undefined\n\n setSorting: (updater: Updater<SortingState>) => void\n toggleColumnSorting: (\n columnId: string,\n desc?: boolean,\n multi?: boolean\n ) => void\n resetSorting: (columnId?: string) => 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 getPreSortedRowModel: () => RowModel<TGenerics>\n getSortedRowModel: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Sorting = {\n getDefaultColumn: <\n TGenerics extends AnyGenerics\n >(): SortingColumnDef<TGenerics> => {\n return {\n sortType: 'auto',\n }\n },\n\n getInitialState: (): SortingTableState => {\n return {\n sorting: [],\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): SortingOptions<TGenerics> => {\n return {\n onSortingChange: makeStateUpdater('sorting', instance),\n autoResetSorting: true,\n isMultiSortEvent: (e: MouseEvent | TouchEvent) => {\n return e.shiftKey\n },\n }\n },\n\n createColumn: <TGenerics extends AnyGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): SortingColumn<TGenerics> => {\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 resetSorting: () => instance.resetSorting(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\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): SortingInstance<TGenerics> => {\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\n .getGlobalFilteredRowModel()\n .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>)?.[\n column.sortType as string\n ] ??\n (sortTypes[\n column.sortType as BuiltInSortType\n ] as SortingFn<TGenerics>)\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 ??\n 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: (columnId?: string) => {\n if (columnId) {\n instance.setSorting(old =>\n old?.length ? old.filter(d => d.id !== columnId) : []\n )\n } else {\n instance.setSorting(instance.initialState?.sorting ?? [])\n }\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 getPreSortedRowModel: () => instance.getGlobalFilteredRowModel(),\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 return sortingFn(instance, rowModel)\n },\n {\n key: 'getSortedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance._notifyGroupingReset()\n },\n }\n ),\n }\n },\n}\n"],"names":["Sorting","getDefaultColumn","sortType","getInitialState","sorting","getDefaultOptions","instance","onSortingChange","makeStateUpdater","autoResetSorting","isMultiSortEvent","e","shiftKey","createColumn","column","getCanSort","getColumnCanSort","id","getCanMultiSort","getColumnCanMultiSort","getSortIndex","getColumnSortIndex","getIsSorted","getColumnIsSorted","resetSorting","toggleSorting","desc","isMulti","toggleColumnSorting","getToggleSortingProps","userProps","getInstance","registered","_notifySortingReset","options","autoResetAll","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","getPreSortedRowModel","getSortedRowModel","memo","sortRowsFn","rowModel","sortingFn","key","debug","debugAll","debugTable","onChange","_notifyGroupingReset"],"mappings":"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"}
|
package/build/cjs/utils.js
CHANGED
|
@@ -61,7 +61,7 @@ function memo(getDeps, fn, opts) {
|
|
|
61
61
|
var result;
|
|
62
62
|
return function () {
|
|
63
63
|
var depTime;
|
|
64
|
-
if (opts.key && opts.debug) depTime =
|
|
64
|
+
if (opts.key && opts.debug) depTime = Date.now();
|
|
65
65
|
var newDeps = getDeps();
|
|
66
66
|
var depsChanged = newDeps.length !== deps.length || newDeps.some(function (dep, index) {
|
|
67
67
|
return deps[index] !== dep;
|
|
@@ -70,15 +70,15 @@ function memo(getDeps, fn, opts) {
|
|
|
70
70
|
if (depsChanged) {
|
|
71
71
|
var oldResult = result;
|
|
72
72
|
var resultTime;
|
|
73
|
-
if (opts.key && opts.debug) resultTime =
|
|
73
|
+
if (opts.key && opts.debug) resultTime = Date.now();
|
|
74
74
|
result = fn.apply(void 0, newDeps);
|
|
75
75
|
deps = newDeps;
|
|
76
76
|
opts == null ? void 0 : opts.onChange == null ? void 0 : opts.onChange(result, oldResult);
|
|
77
77
|
|
|
78
78
|
if (opts.key && opts.debug) {
|
|
79
79
|
if (opts != null && opts.debug()) {
|
|
80
|
-
var depEndTime = Math.round((
|
|
81
|
-
var resultEndTime = Math.round((
|
|
80
|
+
var depEndTime = Math.round((Date.now() - depTime) * 100) / 100;
|
|
81
|
+
var resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;
|
|
82
82
|
var resultFpsPercentage = resultEndTime / 16;
|
|
83
83
|
|
|
84
84
|
var pad = function pad(str, num) {
|
package/build/cjs/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../src/utils.tsx"],"sourcesContent":["import { Getter, NoInfer, PropGetterValue, TableState, Updater } 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 extends { [TKey in keyof T]?: any }> = Omit<\n T,\n keyof U\n> &\n U\n\nexport type DataUpdateFunction<T> = (input: T) => T\n\nexport function functionalUpdate<T>(updater: Updater<T>, input: T): T {\n return typeof updater === 'function'\n ? (updater as DataUpdateFunction<T>)(input)\n : updater\n}\n\nexport function noop() {\n //\n}\n\nexport function makeStateUpdater(key: keyof TableState, instance: unknown) {\n return (updater: Updater<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?: () => any\n onChange?: (result: TResult, previousResult?: TResult) => void\n }\n): () => TResult {\n let deps: any[] = []\n let result: TResult | undefined\n\n return () => {\n let depTime: number\n if (opts.key && opts.debug) depTime =
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../src/utils.tsx"],"sourcesContent":["import { Getter, NoInfer, PropGetterValue, TableState, Updater } 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 extends { [TKey in keyof T]?: any }> = Omit<\n T,\n keyof U\n> &\n U\n\nexport type DataUpdateFunction<T> = (input: T) => T\n\nexport function functionalUpdate<T>(updater: Updater<T>, input: T): T {\n return typeof updater === 'function'\n ? (updater as DataUpdateFunction<T>)(input)\n : updater\n}\n\nexport function noop() {\n //\n}\n\nexport function makeStateUpdater(key: keyof TableState, instance: unknown) {\n return (updater: Updater<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?: () => any\n onChange?: (result: TResult, previousResult?: TResult) => void\n }\n): () => TResult {\n let deps: any[] = []\n let result: TResult | undefined\n\n return () => {\n let depTime: number\n if (opts.key && opts.debug) depTime = Date.now()\n\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 let oldResult = result\n let resultTime: number\n if (opts.key && opts.debug) resultTime = Date.now()\n result = fn(...newDeps)\n deps = newDeps\n opts?.onChange?.(result, oldResult)\n\n if (opts.key && opts.debug) {\n if (opts?.debug()) {\n const depEndTime = Math.round((Date.now() - depTime!) * 100) / 100\n const resultEndTime =\n Math.round((Date.now() - resultTime!) * 100) / 100\n const resultFpsPercentage = resultEndTime / 16\n\n const pad = (str: number | string, num: number) => {\n str = String(str)\n while (str.length < num) {\n str = ' ' + str\n }\n return str\n }\n\n console.info(\n `%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`,\n `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(\n 0,\n Math.min(120 - 120 * resultFpsPercentage, 120)\n )}deg 100% 31%);`,\n opts?.key,\n {\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, [a, b]: any) => ({\n ...accu,\n [a]: b,\n }),\n {}\n ),\n parent,\n }\n )\n }\n }\n\n oldResult = undefined\n }\n\n return result!\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","noop","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","depTime","debug","Date","now","newDeps","depsChanged","some","dep","index","oldResult","resultTime","onChange","depEndTime","Math","round","resultEndTime","resultFpsPercentage","pad","str","num","String","console","info","max","min","map","_","filter","Boolean","reduce","accu","a","b","parent","undefined"],"mappings":"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"}
|
package/build/esm/index.js
CHANGED
|
@@ -145,7 +145,7 @@ function memo(getDeps, fn, opts) {
|
|
|
145
145
|
var result;
|
|
146
146
|
return function () {
|
|
147
147
|
var depTime;
|
|
148
|
-
if (opts.key && opts.debug) depTime =
|
|
148
|
+
if (opts.key && opts.debug) depTime = Date.now();
|
|
149
149
|
var newDeps = getDeps();
|
|
150
150
|
var depsChanged = newDeps.length !== deps.length || newDeps.some(function (dep, index) {
|
|
151
151
|
return deps[index] !== dep;
|
|
@@ -154,15 +154,15 @@ function memo(getDeps, fn, opts) {
|
|
|
154
154
|
if (depsChanged) {
|
|
155
155
|
var oldResult = result;
|
|
156
156
|
var resultTime;
|
|
157
|
-
if (opts.key && opts.debug) resultTime =
|
|
157
|
+
if (opts.key && opts.debug) resultTime = Date.now();
|
|
158
158
|
result = fn.apply(void 0, newDeps);
|
|
159
159
|
deps = newDeps;
|
|
160
160
|
opts == null ? void 0 : opts.onChange == null ? void 0 : opts.onChange(result, oldResult);
|
|
161
161
|
|
|
162
162
|
if (opts.key && opts.debug) {
|
|
163
163
|
if (opts != null && opts.debug()) {
|
|
164
|
-
var depEndTime = Math.round((
|
|
165
|
-
var resultEndTime = Math.round((
|
|
164
|
+
var depEndTime = Math.round((Date.now() - depTime) * 100) / 100;
|
|
165
|
+
var resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;
|
|
166
166
|
var resultFpsPercentage = resultEndTime / 16;
|
|
167
167
|
|
|
168
168
|
var pad = function pad(str, num) {
|
|
@@ -651,7 +651,7 @@ var Expanding = {
|
|
|
651
651
|
var initialProps = {
|
|
652
652
|
title: canExpand ? 'Toggle Expanded' : undefined,
|
|
653
653
|
onClick: canExpand ? function (e) {
|
|
654
|
-
e.persist();
|
|
654
|
+
e.persist == null ? void 0 : e.persist();
|
|
655
655
|
instance.toggleRowExpanded(rowId);
|
|
656
656
|
} : undefined
|
|
657
657
|
};
|
|
@@ -661,7 +661,7 @@ var Expanding = {
|
|
|
661
661
|
var initialProps = {
|
|
662
662
|
title: 'Toggle All Expanded',
|
|
663
663
|
onClick: function onClick(e) {
|
|
664
|
-
e.persist();
|
|
664
|
+
e.persist == null ? void 0 : e.persist();
|
|
665
665
|
instance.toggleAllRowsExpanded();
|
|
666
666
|
}
|
|
667
667
|
};
|
|
@@ -1097,7 +1097,7 @@ var Filters = {
|
|
|
1097
1097
|
instance.options.onGlobalFilterChange == null ? void 0 : instance.options.onGlobalFilterChange(updater, functionalUpdate(updater, instance.getState().globalFilter));
|
|
1098
1098
|
},
|
|
1099
1099
|
resetGlobalFilter: function resetGlobalFilter() {
|
|
1100
|
-
instance.setGlobalFilter(
|
|
1100
|
+
instance.setGlobalFilter(instance.initialState.globalFilter);
|
|
1101
1101
|
},
|
|
1102
1102
|
getColumnCanColumnFilter: function getColumnCanColumnFilter(columnId) {
|
|
1103
1103
|
var _ref3, _ref4, _ref5, _ref6, _ref7, _column$enableAllFilt;
|
|
@@ -1802,9 +1802,7 @@ var Pagination = {
|
|
|
1802
1802
|
return instance.getState().pagination.pageIndex > 0;
|
|
1803
1803
|
},
|
|
1804
1804
|
getCanNextPage: function getCanNextPage() {
|
|
1805
|
-
var
|
|
1806
|
-
pageIndex = _instance$getState$pa.pageIndex,
|
|
1807
|
-
pageSize = _instance$getState$pa.pageSize;
|
|
1805
|
+
var pageIndex = instance.getState().pagination.pageIndex;
|
|
1808
1806
|
var pageCount = instance.getPageCount();
|
|
1809
1807
|
|
|
1810
1808
|
if (pageCount === -1) {
|
|
@@ -1815,7 +1813,7 @@ var Pagination = {
|
|
|
1815
1813
|
return false;
|
|
1816
1814
|
}
|
|
1817
1815
|
|
|
1818
|
-
return pageIndex <
|
|
1816
|
+
return pageIndex < pageCount - 1;
|
|
1819
1817
|
},
|
|
1820
1818
|
previousPage: function previousPage() {
|
|
1821
1819
|
return instance.setPageIndex(function (old) {
|
|
@@ -2876,7 +2874,7 @@ var Sorting = {
|
|
|
2876
2874
|
var initialProps = {
|
|
2877
2875
|
title: canSort ? 'Toggle Sorting' : undefined,
|
|
2878
2876
|
onClick: canSort ? function (e) {
|
|
2879
|
-
e.persist();
|
|
2877
|
+
e.persist == null ? void 0 : e.persist();
|
|
2880
2878
|
column.toggleSorting == null ? void 0 : column.toggleSorting(undefined, column.getCanMultiSort() ? instance.options.isMultiSortEvent == null ? void 0 : instance.options.isMultiSortEvent(e) : false);
|
|
2881
2879
|
} : undefined
|
|
2882
2880
|
};
|
|
@@ -3702,7 +3700,13 @@ function createTableInstance(options) {
|
|
|
3702
3700
|
instance.setState(instance.initialState);
|
|
3703
3701
|
},
|
|
3704
3702
|
setOptions: function setOptions(updater) {
|
|
3705
|
-
|
|
3703
|
+
var newOptions = functionalUpdate(updater, instance.options);
|
|
3704
|
+
|
|
3705
|
+
if (instance.options.mergeOptions) {
|
|
3706
|
+
instance.options = instance.options.mergeOptions(defaultOptions, newOptions);
|
|
3707
|
+
} else {
|
|
3708
|
+
instance.options = buildOptions(newOptions);
|
|
3709
|
+
}
|
|
3706
3710
|
},
|
|
3707
3711
|
render: function render(template, props) {
|
|
3708
3712
|
if (typeof instance.options.render === 'function') {
|