@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.
- package/build/cjs/core.js +19 -11
- package/build/cjs/core.js.map +1 -1
- package/build/cjs/createTable.js +10 -10
- package/build/cjs/createTable.js.map +1 -1
- package/build/cjs/features/Expanding.js +5 -9
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Filters.js +3 -3
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Grouping.js +2 -2
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/Pagination.js +2 -2
- package/build/cjs/features/Pagination.js.map +1 -1
- package/build/cjs/features/Pinning.js +2 -2
- package/build/cjs/features/Pinning.js.map +1 -1
- package/build/cjs/features/Sorting.js +2 -2
- package/build/cjs/features/Sorting.js.map +1 -1
- package/build/cjs/utils.js +9 -14
- package/build/cjs/utils.js.map +1 -1
- package/build/esm/index.js +54 -55
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +259 -245
- package/build/types/core.d.ts +3 -4
- package/build/types/utils.d.ts +0 -4
- package/build/umd/index.development.js +57 -59
- 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 +7 -1
- package/src/core.tsx +16 -101
- package/src/createTable.tsx +16 -13
- package/src/features/Expanding.ts +5 -3
- package/src/features/Filters.ts +4 -4
- package/src/features/Grouping.ts +1 -1
- package/src/features/Pagination.ts +1 -3
- package/src/features/Pinning.ts +1 -3
- package/src/features/Sorting.ts +1 -1
- 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":";;;;;;;;;;;;;;;;;;AA8LA;AAEO,SAASA,gBAAT,GAAsE;AAC3E,SAAO;AACLC,IAAAA,QAAQ,EAAE;AADL,GAAP;AAGD;AAEM,SAASC,eAAT,GAA8C;AACnD,SAAO;AACLC,IAAAA,OAAO,EAAE;AADJ,GAAP;AAGD;AAEM,SAASC,iBAAT,CAOLC,QAPK,EAQoE;AACzE,SAAO;AACLC,IAAAA,eAAe,EAAEC,sBAAgB,CAAC,SAAD,EAAYF,QAAZ,CAD5B;AAELG,IAAAA,gBAAgB,EAAE,IAFb;AAGLC,IAAAA,gBAAgB,EAAE,0BAACC,CAAD,EAAgC;AAChD,aAAOA,CAAC,CAACC,QAAT;AACD;AALI,GAAP;AAOD;AAEM,SAASC,YAAT,CAOLC,MAPK,EAQLR,QARK,EASmE;AACxE,SAAO;AACLJ,IAAAA,QAAQ,EAAEY,MAAM,CAACZ,QADZ;AAELa,IAAAA,UAAU,EAAE;AAAA,aAAMT,QAAQ,CAACU,gBAAT,CAA0BF,MAAM,CAACG,EAAjC,CAAN;AAAA,KAFP;AAGLC,IAAAA,eAAe,EAAE;AAAA,aAAMZ,QAAQ,CAACa,qBAAT,CAA+BL,MAAM,CAACG,EAAtC,CAAN;AAAA,KAHZ;AAILG,IAAAA,YAAY,EAAE;AAAA,aAAMd,QAAQ,CAACe,kBAAT,CAA4BP,MAAM,CAACG,EAAnC,CAAN;AAAA,KAJT;AAKLK,IAAAA,WAAW,EAAE;AAAA,aAAMhB,QAAQ,CAACiB,iBAAT,CAA2BT,MAAM,CAACG,EAAlC,CAAN;AAAA,KALR;AAMLO,IAAAA,aAAa,EAAE,uBAACC,IAAD,EAAOC,OAAP;AAAA,aACbpB,QAAQ,CAACqB,mBAAT,CAA6Bb,MAAM,CAACG,EAApC,EAAwCQ,IAAxC,EAA8CC,OAA9C,CADa;AAAA,KANV;AAQLE,IAAAA,qBAAqB,EAAE,+BAAAC,SAAS;AAAA,aAC9BvB,QAAQ,CAACsB,qBAAT,CAA+Bd,MAAM,CAACG,EAAtC,EAA0CY,SAA1C,CAD8B;AAAA;AAR3B,GAAP;AAWD;AAEM,SAASC,WAAT,CAOLxB,QAPK,EAQqE;AAC1E,MAAIyB,UAAU,GAAG,KAAjB;AAEA,SAAO;AACLC,IAAAA,mBAAmB,EAAE,+BAAM;AACzB,UAAI,CAACD,UAAL,EAAiB;AACfA,QAAAA,UAAU,GAAG,IAAb;AACA;AACD;;AAED,UAAIzB,QAAQ,CAAC2B,OAAT,CAAiBC,YAAjB,KAAkC,KAAtC,EAA6C;AAC3C;AACD;;AAED,UACE5B,QAAQ,CAAC2B,OAAT,CAAiBC,YAAjB,KAAkC,IAAlC,IACA5B,QAAQ,CAAC2B,OAAT,CAAiBxB,gBAFnB,EAGE;AACAH,QAAAA,QAAQ,CAAC6B,YAAT;AACD;AACF,KAjBI;AAkBLC,IAAAA,sBAAsB,EAAE,gCAAAC,QAAQ,EAAI;AAClC,UAAMC,SAAS,GAAGhC,QAAQ,CAACiC,yBAAT,GAAqCC,QAArC,CAA8CC,KAA9C,CAAoD,GAApD,CAAlB;AAEA,UAAIC,QAAQ,GAAG,KAAf;;AAEA,oFAAkBJ,SAAlB,wCAA6B;AAAA,YAAlBK,GAAkB;AAC3B,YAAMC,KAAK,GAAGD,GAAH,oBAAGA,GAAG,CAAEE,MAAL,CAAYR,QAAZ,CAAd;;AAEA,YAAIS,MAAM,CAACC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BL,KAA/B,MAA0C,eAA9C,EAA+D;AAC7D,iBAAOM,mBAAS,CAACC,QAAjB;AACD;;AAED,YAAI,OAAOP,KAAP,KAAiB,QAArB,EAA+B;AAC7BF,UAAAA,QAAQ,GAAG,IAAX;;AAEA,cAAIE,KAAK,CAACQ,KAAN,CAAYC,6BAAZ,EAAiCC,MAAjC,GAA0C,CAA9C,EAAiD;AAC/C,mBAAOJ,mBAAS,CAACK,YAAjB;AACD;AACF;AACF;;AAED,UAAIb,QAAJ,EAAc;AACZ,eAAOQ,mBAAS,CAACM,IAAjB;AACD;;AAED,aAAON,mBAAS,CAACO,KAAjB;AACD,KA5CI;AA6CLC,IAAAA,oBAAoB,EAAE,8BAAArB,QAAQ,EAAI;AAChC,UAAMsB,QAAQ,GAAGrD,QAAQ,CAACiC,yBAAT,GAAqCC,QAArC,CAA8C,CAA9C,CAAjB;AAEA,UAAMI,KAAK,GAAGe,QAAH,oBAAGA,QAAQ,CAAEd,MAAV,CAAiBR,QAAjB,CAAd;;AAEA,UAAI,OAAOO,KAAP,KAAiB,QAArB,EAA+B;AAC7B,eAAO,KAAP;AACD;;AAED,aAAO,MAAP;AACD,KAvDI;AAwDLgB,IAAAA,kBAAkB,EAAE,4BAAAvB,QAAQ,EAAI;AAAA;;AAC9B,UAAMvB,MAAM,GAAGR,QAAQ,CAACuD,SAAT,CAAmBxB,QAAnB,CAAf;AACA,UAAMyB,aAAa,GAAGxD,QAAQ,CAAC2B,OAAT,CAAiBiB,SAAvC;;AAEA,UAAI,CAACpC,MAAL,EAAa;AACX,cAAM,IAAIiD,KAAJ,EAAN;AACD;;AAED,aAAOC,gBAAU,CAAClD,MAAM,CAACZ,QAAR,CAAV,GACHY,MAAM,CAACZ,QADJ,GAEHY,MAAM,CAACZ,QAAP,KAAoB,MAApB,GACAI,QAAQ,CAAC8B,sBAAT,CAAgCC,QAAhC,CADA,WAECyB,aAFD,oBAECA,aAAD,CAAyChD,MAAM,CAACZ,QAAhD,CAFA,mBAGCgD,mBAAS,CAACpC,MAAM,CAACZ,QAAR,CALd;AAYD,KA5EI;AA8EL+D,IAAAA,UAAU,EAAE,oBAAAC,OAAO;AAAA,aACjB5D,QAAQ,CAAC2B,OAAT,CAAiB1B,eADA,oBACjBD,QAAQ,CAAC2B,OAAT,CAAiB1B,eAAjB,CACE2D,OADF,EAEEC,sBAAgB,CAACD,OAAD,EAAU5D,QAAQ,CAAC8D,QAAT,GAAoBhE,OAA9B,CAFlB,CADiB;AAAA,KA9Ed;AAoFLuB,IAAAA,mBAAmB,EAAE,6BAACU,QAAD,EAAWZ,IAAX,EAAiB4C,KAAjB,EAA2B;AAC9C,UAAMvD,MAAM,GAAGR,QAAQ,CAACuD,SAAT,CAAmBxB,QAAnB,CAAf;;AAEA,UAAI,CAACvB,MAAL,EAAa;AACX,cAAM,IAAIiD,KAAJ,EAAN;AACD,OAL6C;AAQ9C;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEAzD,MAAAA,QAAQ,CAAC2D,UAAT,CAAoB,UAAAK,GAAG,EAAI;AAAA;;AACzB;AACA,YAAMC,eAAe,GAAGD,GAAH,oBAAGA,GAAG,CAAEE,IAAL,CAAU,UAAAC,CAAC;AAAA,iBAAIA,CAAC,CAACxD,EAAF,KAASoB,QAAb;AAAA,SAAX,CAAxB;AACA,YAAMqC,aAAa,GAAGJ,GAAH,oBAAGA,GAAG,CAAEK,SAAL,CAAe,UAAAF,CAAC;AAAA,iBAAIA,CAAC,CAACxD,EAAF,KAASoB,QAAb;AAAA,SAAhB,CAAtB;AACA,YAAMuC,cAAc,GAAG,OAAOnD,IAAP,KAAgB,WAAhB,IAA+BA,IAAI,KAAK,IAA/D;AAEA,YAAIoD,UAAwB,GAAG,EAA/B,CANyB;;AASzB,YAAIC,UAAJ;;AAEA,YAAIhE,MAAM,CAACI,eAAP,MAA4BmD,KAAhC,EAAuC;AACrC,cAAIE,eAAJ,EAAqB;AACnBO,YAAAA,UAAU,GAAG,QAAb;AACD,WAFD,MAEO;AACLA,YAAAA,UAAU,GAAG,KAAb;AACD;AACF,SAND,MAMO;AACL;AACA,cAAIR,GAAG,QAAH,IAAAA,GAAG,CAAEhB,MAAL,IAAeoB,aAAa,KAAKJ,GAAG,CAAChB,MAAJ,GAAa,CAAlD,EAAqD;AACnDwB,YAAAA,UAAU,GAAG,SAAb;AACD,WAFD,MAEO,IAAIP,eAAJ,EAAqB;AAC1BO,YAAAA,UAAU,GAAG,QAAb;AACD,WAFM,MAEA;AACLA,YAAAA,UAAU,GAAG,SAAb;AACD;AACF;;AAED,YAAMC,aAAa,qCACjBjE,MAAM,CAACiE,aADU,oCAEjBzE,QAAQ,CAAC2B,OAAT,CAAiB8C,aAFA,oBAGjBzE,QAAQ,CAACoD,oBAAT,CAA8BrB,QAA9B,MAA4C,MAH9C,CA5ByB;;AAkCzB,YACEyC,UAAU,KAAK,QAAf;AAAA,iCACCxE,QAAQ,CAAC2B,OAAT,CAAiB+C,oBADlB,oCAC0C,IAD1C;AAEA,SAACJ,cAFD;AAGCP,QAAAA,KAAK,6BAAG/D,QAAQ,CAAC2B,OAAT,CAAiBgD,iBAApB,qCAAyC,IAAzC,GAAgD,IAHtD;AAICV,QAAAA,eAAe,QAAf,IAAAA,eAAe,CAAE9C,IAAjB;AAAA,UACG,CAACsD,aADJ,GAEGA,aANJ,CADF,EAQE;AACAD,UAAAA,UAAU,GAAG,QAAb;AACD;;AAED,YAAIA,UAAU,KAAK,SAAnB,EAA8B;AAC5BD,UAAAA,UAAU,GAAG,CACX;AACE5D,YAAAA,EAAE,EAAEoB,QADN;AAEEZ,YAAAA,IAAI,EAAEmD,cAAc,GAAGnD,IAAH,GAAW,CAAC,CAACsD;AAFnC,WADW,CAAb;AAMD,SAPD,MAOO,IAAID,UAAU,KAAK,KAAf,IAAwBR,GAAxB,YAAwBA,GAAG,CAAEhB,MAAjC,EAAyC;AAAA;;AAC9CuB,UAAAA,UAAU,aACLP,GADK,GAER;AACErD,YAAAA,EAAE,EAAEoB,QADN;AAEEZ,YAAAA,IAAI,EAAEmD,cAAc,GAAGnD,IAAH,GAAW,CAAC,CAACsD;AAFnC,WAFQ,EAAV,CAD8C;;AAS9CF,UAAAA,UAAU,CAACK,MAAX,CACE,CADF,EAEEL,UAAU,CAACvB,MAAX,6BACGhD,QAAQ,CAAC2B,OAAT,CAAiBkD,oBADpB,oCAC4CC,MAAM,CAACC,gBADnD,CAFF;AAKD,SAdM,MAcA,IAAIP,UAAU,KAAK,QAAf,IAA2BR,GAA3B,YAA2BA,GAAG,CAAEhB,MAApC,EAA4C;AACjD;AACAuB,UAAAA,UAAU,GAAGP,GAAG,CAACgB,GAAJ,CAAQ,UAAAb,CAAC,EAAI;AACxB,gBAAIA,CAAC,CAACxD,EAAF,KAASoB,QAAb,EAAuB;AACrB,8DACKoC,CADL;AAEEhD,gBAAAA,IAAI,EAAEmD,cAAc,GAAGnD,IAAH,GAAW,EAAC8C,eAAD,YAACA,eAAe,CAAE9C,IAAlB;AAFjC;AAID;;AACD,mBAAOgD,CAAP;AACD,WARY,CAAb;AASD,SAXM,MAWA,IAAIK,UAAU,KAAK,QAAf,IAA2BR,GAA3B,YAA2BA,GAAG,CAAEhB,MAApC,EAA4C;AACjDuB,UAAAA,UAAU,GAAGP,GAAG,CAACiB,MAAJ,CAAW,UAAAd,CAAC;AAAA,mBAAIA,CAAC,CAACxD,EAAF,KAASoB,QAAb;AAAA,WAAZ,CAAb;AACD;;AAED,eAAOwC,UAAP;AACD,OAnFD;AAoFD,KAxLI;AA0LL7D,IAAAA,gBAAgB,EAAE,0BAAAqB,QAAQ,EAAI;AAAA;;AAC5B,UAAMvB,MAAM,GAAGR,QAAQ,CAACuD,SAAT,CAAmBxB,QAAnB,CAAf;;AAEA,UAAI,CAACvB,MAAL,EAAa;AACX,cAAM,IAAIiD,KAAJ,EAAN;AACD;;AAED,wDACEjD,MAAM,CAAC0E,aADT,oCAEElF,QAAQ,CAAC2B,OAAT,CAAiBuD,aAFnB,oBAGE1E,MAAM,CAAC2E,cAHT,oBAIE,CAAC,CAAC3E,MAAM,CAAC4E,UAJX;AAME;AACA;AAPF;AASD,KA1MI;AA4MLvE,IAAAA,qBAAqB,EAAE,+BAAAkB,QAAQ,EAAI;AAAA;;AACjC,UAAMvB,MAAM,GAAGR,QAAQ,CAACuD,SAAT,CAAmBxB,QAAnB,CAAf;;AAEA,UAAI,CAACvB,MAAL,EAAa;AACX,cAAM,IAAIiD,KAAJ,EAAN;AACD;;AAED,+CACEjD,MAAM,CAAC6E,eADT,oCAEErF,QAAQ,CAAC2B,OAAT,CAAiB0D,eAFnB,oBAGE,CAAC,CAAC7E,MAAM,CAAC4E,UAHX;AAKD,KAxNI;AA0NLnE,IAAAA,iBAAiB,EAAE,2BAAAc,QAAQ,EAAI;AAAA;;AAC7B,UAAMuD,UAAU,4BAAGtF,QAAQ,CACxB8D,QADgB,GAEhBhE,OAFa,qBAAG,sBAEPoE,IAFO,CAEF,UAAAC,CAAC;AAAA,eAAIA,CAAC,CAACxD,EAAF,KAASoB,QAAb;AAAA,OAFC,CAAnB;AAIA,aAAO,CAACuD,UAAD,GAAc,KAAd,GAAsBA,UAAU,CAACnE,IAAX,GAAkB,MAAlB,GAA2B,KAAxD;AACD,KAhOI;AAkOLJ,IAAAA,kBAAkB,EAAE,4BAAAgB,QAAQ;AAAA;;AAAA,iEAC1B/B,QAAQ,CAAC8D,QAAT,GAAoBhE,OADM,qBAC1B,uBAA6BuE,SAA7B,CAAuC,UAAAF,CAAC;AAAA,eAAIA,CAAC,CAACxD,EAAF,KAASoB,QAAb;AAAA,OAAxC,CAD0B,qCACwC,CAAC,CADzC;AAAA,KAlOvB;AAqOLF,IAAAA,YAAY,EAAE,wBAAM;AAAA;;AAClB7B,MAAAA,QAAQ,CAAC2D,UAAT,+CAAoB3D,QAAQ,CAAC2B,OAA7B,+CAAoB,kBAAkB4D,YAAtC,qBAAoB,uBAAgCzF,OAApD,oCAA+D,EAA/D;AACD,KAvOI;AAyOLwB,IAAAA,qBAAqB,EAAE,+BAACS,QAAD,EAAWR,SAAX,EAAyB;AAC9C,UAAMf,MAAM,GAAGR,QAAQ,CAACuD,SAAT,CAAmBxB,QAAnB,CAAf;;AAEA,UAAI,CAACvB,MAAL,EAAa;AACX,cAAM,IAAIiD,KAAJ,EAAN;AACD;;AAED,UAAM+B,OAAO,GAAGhF,MAAM,CAACC,UAAP,EAAhB;AAEA,UAAMgF,YAAgC,GAAG;AACvCC,QAAAA,KAAK,EAAEF,OAAO,GAAG,gBAAH,GAAsBG,SADG;AAEvCC,QAAAA,OAAO,EAAEJ,OAAO,GACZ,UAACnF,CAAD,EAAgC;AAC9BA,UAAAA,CAAC,CAACwF,OAAF;AACArF,UAAAA,MAAM,CAACU,aAAP,oBAAAV,MAAM,CAACU,aAAP,CACEyE,SADF,EAEEnF,MAAM,CAACI,eAAP,KACIZ,QAAQ,CAAC2B,OAAT,CAAiBvB,gBADrB,oBACIJ,QAAQ,CAAC2B,OAAT,CAAiBvB,gBAAjB,CAAoCC,CAApC,CADJ,GAEI,KAJN;AAMD,SATW,GAUZsF;AAZmC,OAAzC;AAeA,aAAOG,gBAAU,CAACL,YAAD,EAAelE,SAAf,CAAjB;AACD,KAlQI;AAoQLwE,IAAAA,iBAAiB,EAAEC,UAAI,CACrB;AAAA,aAAM,CACJhG,QAAQ,CAAC8D,QAAT,GAAoBhE,OADhB,EAEJE,QAAQ,CAACiC,yBAAT,EAFI,EAGJjC,QAAQ,CAAC2B,OAAT,CAAiBsE,UAHb,CAAN;AAAA,KADqB,EAMrB,UAACnG,OAAD,EAAUoG,QAAV,EAAoBC,SAApB,EAAkC;AAChC,UAAI,CAACA,SAAD,IAAc,EAACrG,OAAD,YAACA,OAAO,CAAEkD,MAAV,CAAlB,EAAoC;AAClC,eAAOkD,QAAP;AACD;;AAED,UAAIE,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,IAAyCtG,QAAQ,CAAC2B,OAAT,CAAiB4E,KAA9D,EACEC,OAAO,CAACC,IAAR,CAAa,YAAb;AAEF,aAAON,SAAS,CAACnG,QAAD,EAAWkG,QAAX,CAAhB;AACD,KAfoB,EAgBrB;AACEQ,MAAAA,GAAG,EAAE,mBADP;AAEEH,MAAAA,KAAK,EAAEvG,QAAQ,CAAC2B,OAAT,CAAiB4E,KAF1B;AAGEI,MAAAA,QAAQ,EAAE;AAAA,eAAM3G,QAAQ,CAAC4G,oBAAT,EAAN;AAAA;AAHZ,KAhBqB,CApQlB;AA2RLC,IAAAA,gBAAgB,EAAE;AAAA,aAAM7G,QAAQ,CAACiC,yBAAT,GAAqC6E,IAA3C;AAAA,KA3Rb;AA4RLC,IAAAA,oBAAoB,EAAE;AAAA,aAAM/G,QAAQ,CAACiC,yBAAT,GAAqCC,QAA3C;AAAA,KA5RjB;AA6RL8E,IAAAA,oBAAoB,EAAE;AAAA,aAAMhH,QAAQ,CAACiC,yBAAT,GAAqCgF,QAA3C;AAAA,KA7RjB;AA8RLC,IAAAA,aAAa,EAAE;AAAA,aAAMlH,QAAQ,CAAC+F,iBAAT,GAA6Be,IAAnC;AAAA,KA9RV;AA+RLK,IAAAA,iBAAiB,EAAE;AAAA,aAAMnH,QAAQ,CAAC+F,iBAAT,GAA6B7D,QAAnC;AAAA,KA/Rd;AAgSLkF,IAAAA,iBAAiB,EAAE;AAAA,aAAMpH,QAAQ,CAAC+F,iBAAT,GAA6BkB,QAAnC;AAAA;AAhSd,GAAP;AAkSD;;;;;;;;"}
|
|
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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"}
|
package/build/cjs/utils.js
CHANGED
|
@@ -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
|
-
}
|
|
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
|
|
70
|
-
|
|
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:
|
|
79
|
-
},
|
|
80
|
-
if (
|
|
81
|
-
return [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 =
|
|
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
|
-
}
|
|
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
|
}
|
package/build/cjs/utils.js.map
CHANGED
|
@@ -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":"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"}
|
package/build/esm/index.js
CHANGED
|
@@ -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
|
-
}
|
|
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
|
|
430
|
-
|
|
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:
|
|
439
|
-
},
|
|
440
|
-
if (
|
|
441
|
-
return [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 =
|
|
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
|
-
}
|
|
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$
|
|
1062
|
+
var _instance$initialStat, _instance$initialStat2;
|
|
1067
1063
|
|
|
1068
|
-
instance.setGrouping((_instance$
|
|
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$
|
|
1287
|
+
var _instance$initialStat, _instance$initialStat2;
|
|
1292
1288
|
|
|
1293
|
-
return instance.setColumnPinning((_instance$
|
|
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$
|
|
2371
|
+
var _instance$initialStat, _instance$initialStat2;
|
|
2376
2372
|
|
|
2377
|
-
instance.setColumnFilters((_instance$
|
|
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
|
-
|
|
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$
|
|
2860
|
+
var _instance$initialStat, _instance$initialStat2;
|
|
2865
2861
|
|
|
2866
|
-
instance.setSorting((_instance$
|
|
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
|
|
2967
|
+
var _expanded;
|
|
2972
2968
|
|
|
2973
|
-
|
|
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$
|
|
3007
|
+
var _instance$initialStat, _instance$initialStat2;
|
|
3016
3008
|
|
|
3017
|
-
instance.setExpanded((_instance$
|
|
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
|
-
|
|
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$
|
|
3537
|
+
var _instance$initialStat2, _instance$initialStat3, _instance$initialStat4;
|
|
3546
3538
|
|
|
3547
|
-
instance.setPageSize((_instance$
|
|
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
|
|
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,
|
|
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
|
|
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
|
-
|
|
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
|
|
4761
|
-
|
|
4762
|
-
|
|
4763
|
-
|
|
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
|
-
|
|
4770
|
-
|
|
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
|
};
|