@tanstack/react-table 8.0.0-alpha.1 → 8.0.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/build/cjs/core.js +118 -59
  2. package/build/cjs/core.js.map +1 -1
  3. package/build/cjs/createTable.js +11 -6
  4. package/build/cjs/createTable.js.map +1 -1
  5. package/build/cjs/features/ColumnSizing.js +317 -0
  6. package/build/cjs/features/ColumnSizing.js.map +1 -0
  7. package/build/cjs/features/Expanding.js +23 -2
  8. package/build/cjs/features/Expanding.js.map +1 -1
  9. package/build/cjs/features/Filters.js +54 -5
  10. package/build/cjs/features/Filters.js.map +1 -1
  11. package/build/cjs/features/Grouping.js +23 -2
  12. package/build/cjs/features/Grouping.js.map +1 -1
  13. package/build/cjs/features/Headers.js +88 -22
  14. package/build/cjs/features/Headers.js.map +1 -1
  15. package/build/cjs/features/Ordering.js +4 -1
  16. package/build/cjs/features/Ordering.js.map +1 -1
  17. package/build/cjs/features/Pagination.js +198 -0
  18. package/build/cjs/features/Pagination.js.map +1 -0
  19. package/build/cjs/features/Pinning.js +0 -14
  20. package/build/cjs/features/Pinning.js.map +1 -1
  21. package/build/cjs/features/RowSelection.js +541 -0
  22. package/build/cjs/features/RowSelection.js.map +1 -0
  23. package/build/cjs/features/Sorting.js +76 -18
  24. package/build/cjs/features/Sorting.js.map +1 -1
  25. package/build/cjs/features/Visibility.js +8 -2
  26. package/build/cjs/features/Visibility.js.map +1 -1
  27. package/build/cjs/index.js +2 -0
  28. package/build/cjs/index.js.map +1 -1
  29. package/build/cjs/sortTypes.js +1 -0
  30. package/build/cjs/sortTypes.js.map +1 -1
  31. package/build/cjs/utils/columnFilterRowsFn.js +3 -2
  32. package/build/cjs/utils/columnFilterRowsFn.js.map +1 -1
  33. package/build/cjs/utils/expandRowsFn.js +2 -2
  34. package/build/cjs/utils/expandRowsFn.js.map +1 -1
  35. package/build/cjs/utils/globalFilterRowsFn.js +3 -2
  36. package/build/cjs/utils/globalFilterRowsFn.js.map +1 -1
  37. package/build/cjs/utils/groupRowsFn.js +4 -3
  38. package/build/cjs/utils/groupRowsFn.js.map +1 -1
  39. package/build/cjs/utils/paginateRowsFn.js +44 -0
  40. package/build/cjs/utils/paginateRowsFn.js.map +1 -0
  41. package/build/cjs/utils/sortRowsFn.js +3 -2
  42. package/build/cjs/utils/sortRowsFn.js.map +1 -1
  43. package/build/cjs/utils.js +6 -3
  44. package/build/cjs/utils.js.map +1 -1
  45. package/build/esm/index.js +1613 -225
  46. package/build/esm/index.js.map +1 -1
  47. package/build/stats-html.html +1 -1
  48. package/build/stats-react.json +363 -217
  49. package/build/types/core.d.ts +14 -25
  50. package/build/types/createTable.d.ts +21 -3
  51. package/build/types/features/ColumnSizing.d.ts +67 -0
  52. package/build/types/features/Expanding.d.ts +2 -1
  53. package/build/types/features/Filters.d.ts +7 -2
  54. package/build/types/features/Grouping.d.ts +2 -2
  55. package/build/types/features/Ordering.d.ts +1 -1
  56. package/build/types/features/Pagination.d.ts +44 -0
  57. package/build/types/features/Pinning.d.ts +3 -3
  58. package/build/types/features/RowSelection.d.ts +66 -0
  59. package/build/types/features/Sorting.d.ts +5 -2
  60. package/build/types/index.d.ts +1 -0
  61. package/build/types/sortTypes.d.ts +5 -4
  62. package/build/types/types.d.ts +13 -8
  63. package/build/types/utils/columnFilterRowsFn.d.ts +2 -2
  64. package/build/types/utils/expandRowsFn.d.ts +2 -2
  65. package/build/types/utils/globalFilterRowsFn.d.ts +2 -2
  66. package/build/types/utils/groupRowsFn.d.ts +2 -2
  67. package/build/types/utils/paginateRowsFn.d.ts +2 -0
  68. package/build/types/utils/sortRowsFn.d.ts +2 -2
  69. package/build/types/utils.d.ts +7 -3
  70. package/build/umd/index.development.js +1613 -224
  71. package/build/umd/index.development.js.map +1 -1
  72. package/build/umd/index.production.js +1 -1
  73. package/build/umd/index.production.js.map +1 -1
  74. package/package.json +1 -1
  75. package/src/core.tsx +252 -265
  76. package/src/createTable.tsx +69 -9
  77. package/src/features/ColumnSizing.ts +453 -0
  78. package/src/features/Expanding.ts +27 -11
  79. package/src/features/Filters.ts +75 -20
  80. package/src/features/Grouping.ts +27 -12
  81. package/src/features/Headers.ts +55 -50
  82. package/src/features/Ordering.ts +2 -3
  83. package/src/features/Pagination.ts +327 -0
  84. package/src/features/Pinning.ts +3 -16
  85. package/src/features/RowSelection.ts +831 -0
  86. package/src/features/Sorting.ts +82 -22
  87. package/src/features/Visibility.ts +2 -4
  88. package/src/index.tsx +1 -0
  89. package/src/sortTypes.ts +1 -1
  90. package/src/types.ts +55 -9
  91. package/src/utils/columnFilterRowsFn.ts +5 -12
  92. package/src/utils/expandRowsFn.ts +2 -5
  93. package/src/utils/globalFilterRowsFn.ts +3 -10
  94. package/src/utils/groupRowsFn.ts +3 -5
  95. package/src/utils/paginateRowsFn.ts +34 -0
  96. package/src/utils/sortRowsFn.ts +5 -5
  97. package/src/utils.tsx +20 -6
  98. package/src/features/withColumnResizing.oldts +0 -281
  99. package/src/features/withPagination.oldts +0 -208
  100. package/src/features/withRowSelection.oldts +0 -467
@@ -1 +1 @@
1
- {"version":3,"file":"createTable.js","sources":["../../src/createTable.tsx"],"sourcesContent":["import * as React from 'react'\nimport { Cell, Column, Row } from '.'\nimport { createTableInstance } from './core'\nimport { ReactTable, ColumnDef, AccessorFn, Options } from './types'\nimport { Overwrite } from './utils'\n\ntype TableHelper<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> = {\n RowType: <TTData>() => TableHelper<\n TTData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n\n FilterFns: <TTFilterFns>(\n filterFns: TTFilterFns\n ) => TableHelper<TData, TValue, TTFilterFns, TSortingFns, TAggregationFns>\n\n SortingFns: <TTSortingFns>(\n sortingFns: TTSortingFns\n ) => TableHelper<TData, TValue, TFilterFns, TTSortingFns, TAggregationFns>\n\n AggregationFns: <TTAggregationFns>(\n aggregationFns: TTAggregationFns\n ) => TableHelper<TData, TValue, TFilterFns, TSortingFns, TTAggregationFns>\n\n createColumns: (\n columns: ColumnDef<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n ) => ColumnDef<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]\n\n createGroup: (\n column: Overwrite<\n ColumnDef<TData, unknown, TFilterFns, TSortingFns, TAggregationFns>,\n { __generated?: never; accessorFn?: never; accessorKey?: never }\n >\n ) => ColumnDef<TData, unknown, TFilterFns, TSortingFns, TAggregationFns>\n\n createColumn: <TAccessor extends AccessorFn<TData> | keyof TData>(\n accessor: TAccessor,\n column: TAccessor extends (...args: any[]) => any\n ? // Accessor Fn\n Overwrite<\n ColumnDef<\n TData,\n ReturnType<TAccessor>,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n {\n __generated?: never\n accessorFn?: never\n accessorKey?: never\n id: string\n }\n >\n : TAccessor extends keyof TData\n ? // Accessor Key\n Overwrite<\n ColumnDef<\n TData,\n TData[TAccessor],\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n { __generated?: never; accessorFn?: never; accessorKey?: never }\n >\n : never\n ) => ColumnDef<\n TData,\n TAccessor extends (...args: any[]) => any\n ? ReturnType<TAccessor>\n : TAccessor extends keyof TData\n ? TData[TAccessor]\n : never,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n\n useTable: <TData, TValue, TFilterFns, TSortingFns, TAggregationFns>(\n options: Options<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n\n types: {\n instance: ReactTable<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n columnDef: ColumnDef<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n cell: Cell<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n }\n}\n\nexport function createTable<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(): TableHelper<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n RowType: () => createTable(),\n FilterFns: () => createTable(),\n SortingFns: () => createTable(),\n AggregationFns: () => createTable(),\n createColumns: columns => columns,\n createColumn: (accessor, column) => {\n column = {\n ...column,\n id: column.id,\n }\n\n if (typeof accessor === 'string') {\n return {\n ...column,\n id: column.id ?? accessor,\n accessorKey: accessor,\n __generated: true,\n }\n }\n\n if (typeof accessor === 'function') {\n return {\n ...column,\n accessorFn: accessor,\n __generated: true,\n }\n }\n\n throw new Error('Invalid accessor')\n },\n createGroup: column => ({\n ...column,\n __generated: true,\n }),\n useTable: <TData, TValue, TFilterFns, TSortingFns, TAggregationFns>(\n options: Options<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ): ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> => {\n const instanceRef = React.useRef<\n ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >(undefined!)\n\n const rerender = React.useReducer(() => ({}), {})[1]\n\n if (!instanceRef.current) {\n instanceRef.current = createTableInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >(options, rerender)\n }\n\n instanceRef.current.updateOptions(options)\n\n return instanceRef.current\n },\n types: undefined as any,\n } as TableHelper<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n}\n"],"names":["createTable","RowType","FilterFns","SortingFns","AggregationFns","createColumns","columns","createColumn","accessor","column","id","accessorKey","__generated","accessorFn","Error","createGroup","useTable","options","instanceRef","React","useRef","undefined","rerender","useReducer","current","createTableInstance","updateOptions","types"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiHO,SAASA,WAAT,GAMmE;AACxE,SAAO;AACLC,IAAAA,OAAO,EAAE;AAAA,aAAMD,WAAW,EAAjB;AAAA,KADJ;AAELE,IAAAA,SAAS,EAAE;AAAA,aAAMF,WAAW,EAAjB;AAAA,KAFN;AAGLG,IAAAA,UAAU,EAAE;AAAA,aAAMH,WAAW,EAAjB;AAAA,KAHP;AAILI,IAAAA,cAAc,EAAE;AAAA,aAAMJ,WAAW,EAAjB;AAAA,KAJX;AAKLK,IAAAA,aAAa,EAAE,uBAAAC,OAAO;AAAA,aAAIA,OAAJ;AAAA,KALjB;AAMLC,IAAAA,YAAY,EAAE,sBAACC,QAAD,EAAWC,MAAX,EAAsB;AAClCA,MAAAA,MAAM,4CACDA,MADC;AAEJC,QAAAA,EAAE,EAAED,MAAM,CAACC;AAFP,QAAN;;AAKA,UAAI,OAAOF,QAAP,KAAoB,QAAxB,EAAkC;AAAA;;AAChC,wDACKC,MADL;AAEEC,UAAAA,EAAE,gBAAED,MAAM,CAACC,EAAT,yBAAeF,QAFnB;AAGEG,UAAAA,WAAW,EAAEH,QAHf;AAIEI,UAAAA,WAAW,EAAE;AAJf;AAMD;;AAED,UAAI,OAAOJ,QAAP,KAAoB,UAAxB,EAAoC;AAClC,wDACKC,MADL;AAEEI,UAAAA,UAAU,EAAEL,QAFd;AAGEI,UAAAA,WAAW,EAAE;AAHf;AAKD;;AAED,YAAM,IAAIE,KAAJ,CAAU,kBAAV,CAAN;AACD,KA9BI;AA+BLC,IAAAA,WAAW,EAAE,qBAAAN,MAAM;AAAA,sDACdA,MADc;AAEjBG,QAAAA,WAAW,EAAE;AAFI;AAAA,KA/Bd;AAmCLI,IAAAA,QAAQ,EAAE,kBACRC,OADQ,EAEgE;AACxE,UAAMC,WAAW,GAAGC,gBAAK,CAACC,MAAN,CAElBC,SAFkB,CAApB;AAIA,UAAMC,QAAQ,GAAGH,gBAAK,CAACI,UAAN,CAAiB;AAAA,eAAO,EAAP;AAAA,OAAjB,EAA6B,EAA7B,EAAiC,CAAjC,CAAjB;;AAEA,UAAI,CAACL,WAAW,CAACM,OAAjB,EAA0B;AACxBN,QAAAA,WAAW,CAACM,OAAZ,GAAsBC,wBAAmB,CAMvCR,OANuC,EAM9BK,QAN8B,CAAzC;AAOD;;AAEDJ,MAAAA,WAAW,CAACM,OAAZ,CAAoBE,aAApB,CAAkCT,OAAlC;AAEA,aAAOC,WAAW,CAACM,OAAnB;AACD,KAzDI;AA0DLG,IAAAA,KAAK,EAAEN;AA1DF,GAAP;AA4DD;;;;"}
1
+ {"version":3,"file":"createTable.js","sources":["../../src/createTable.tsx"],"sourcesContent":["import * as React from 'react'\nimport { Cell, Column, Row } from '.'\nimport { createTableInstance } from './core'\nimport {\n ReactTable,\n ColumnDef,\n AccessorFn,\n Options,\n Renderable,\n Header,\n} from './types'\nimport { Overwrite } from './utils'\n\ntype TableHelper<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> = {\n RowType<TTData>(): TableHelper<\n TTData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n\n FilterFns: <TTFilterFns>(\n filterFns: TTFilterFns\n ) => TableHelper<TData, TValue, TTFilterFns, TSortingFns, TAggregationFns>\n\n SortingFns: <TTSortingFns>(\n sortingFns: TTSortingFns\n ) => TableHelper<TData, TValue, TFilterFns, TTSortingFns, TAggregationFns>\n\n AggregationFns: <TTAggregationFns>(\n aggregationFns: TTAggregationFns\n ) => TableHelper<TData, TValue, TFilterFns, TSortingFns, TTAggregationFns>\n\n createColumns: (\n columns: ColumnDef<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n ) => ColumnDef<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]\n\n createGroup: (\n column: Overwrite<\n ColumnDef<TData, unknown, TFilterFns, TSortingFns, TAggregationFns>,\n | {\n __generated?: never\n accessorFn?: never\n accessorKey?: never\n header: string\n id?: string\n }\n | {\n __generated?: never\n accessorFn?: never\n accessorKey?: never\n id: string\n header?:\n | string\n | Renderable<{\n instance: ReactTable<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n header: Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n column: Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n }>\n }\n >\n ) => ColumnDef<TData, unknown, TFilterFns, TSortingFns, TAggregationFns>\n\n createDisplayColumn: (\n column: Overwrite<\n ColumnDef<TData, unknown, TFilterFns, TSortingFns, TAggregationFns>,\n { __generated?: never; accessorFn?: never; accessorKey?: never }\n >\n ) => ColumnDef<TData, unknown, TFilterFns, TSortingFns, TAggregationFns>\n\n createDataColumn: <TAccessor extends AccessorFn<TData> | keyof TData>(\n accessor: TAccessor,\n column: TAccessor extends (...args: any[]) => any\n ? // Accessor Fn\n Overwrite<\n ColumnDef<\n TData,\n ReturnType<TAccessor>,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n {\n __generated?: never\n accessorFn?: never\n accessorKey?: never\n id: string\n }\n >\n : TAccessor extends keyof TData\n ? // Accessor Key\n Overwrite<\n ColumnDef<\n TData,\n TData[TAccessor],\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n {\n __generated?: never\n accessorFn?: never\n accessorKey?: never\n id?: string\n }\n >\n : never\n ) => ColumnDef<\n TData,\n TAccessor extends (...args: any[]) => any\n ? ReturnType<TAccessor>\n : TAccessor extends keyof TData\n ? TData[TAccessor]\n : never,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n\n useTable: <TData, TValue, TFilterFns, TSortingFns, TAggregationFns>(\n options: Options<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n\n types: {\n instance: ReactTable<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n columnDef: ColumnDef<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n cell: Cell<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n }\n}\n\nexport function createTable<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(): TableHelper<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n RowType: () => createTable(),\n FilterFns: () => createTable(),\n SortingFns: () => createTable(),\n AggregationFns: () => createTable(),\n createColumns: columns => columns,\n createDisplayColumn: column => ({\n ...column,\n __generated: true,\n }),\n createGroup: column => ({\n ...column,\n __generated: true,\n }),\n createDataColumn: (accessor, column) => {\n column = {\n ...column,\n id: column.id,\n }\n\n if (typeof accessor === 'string') {\n return {\n ...column,\n id: column.id ?? accessor,\n accessorKey: accessor,\n __generated: true,\n }\n }\n\n if (typeof accessor === 'function') {\n return {\n ...column,\n accessorFn: accessor,\n __generated: true,\n }\n }\n\n throw new Error('Invalid accessor')\n },\n useTable: <TData, TValue, TFilterFns, TSortingFns, TAggregationFns>(\n options: Options<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ): ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> => {\n const instanceRef = React.useRef<\n ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >(undefined!)\n\n const rerender = React.useReducer(() => ({}), {})[1]\n\n if (!instanceRef.current) {\n instanceRef.current = createTableInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >(options, rerender)\n }\n\n instanceRef.current.updateOptions(options)\n\n return instanceRef.current\n },\n types: undefined as any,\n } as TableHelper<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n}\n"],"names":["createTable","RowType","FilterFns","SortingFns","AggregationFns","createColumns","columns","createDisplayColumn","column","__generated","createGroup","createDataColumn","accessor","id","accessorKey","accessorFn","Error","useTable","options","instanceRef","React","useRef","undefined","rerender","useReducer","current","createTableInstance","updateOptions","types"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyKO,SAASA,WAAT,GAMmE;AACxE,SAAO;AACLC,IAAAA,OAAO,EAAE;AAAA,aAAMD,WAAW,EAAjB;AAAA,KADJ;AAELE,IAAAA,SAAS,EAAE;AAAA,aAAMF,WAAW,EAAjB;AAAA,KAFN;AAGLG,IAAAA,UAAU,EAAE;AAAA,aAAMH,WAAW,EAAjB;AAAA,KAHP;AAILI,IAAAA,cAAc,EAAE;AAAA,aAAMJ,WAAW,EAAjB;AAAA,KAJX;AAKLK,IAAAA,aAAa,EAAE,uBAAAC,OAAO;AAAA,aAAIA,OAAJ;AAAA,KALjB;AAMLC,IAAAA,mBAAmB,EAAE,6BAAAC,MAAM;AAAA,sDACtBA,MADsB;AAEzBC,QAAAA,WAAW,EAAE;AAFY;AAAA,KANtB;AAULC,IAAAA,WAAW,EAAE,qBAAAF,MAAM;AAAA,sDACdA,MADc;AAEjBC,QAAAA,WAAW,EAAE;AAFI;AAAA,KAVd;AAcLE,IAAAA,gBAAgB,EAAE,0BAACC,QAAD,EAAWJ,MAAX,EAAsB;AACtCA,MAAAA,MAAM,4CACDA,MADC;AAEJK,QAAAA,EAAE,EAAEL,MAAM,CAACK;AAFP,QAAN;;AAKA,UAAI,OAAOD,QAAP,KAAoB,QAAxB,EAAkC;AAAA;;AAChC,wDACKJ,MADL;AAEEK,UAAAA,EAAE,gBAAEL,MAAM,CAACK,EAAT,yBAAeD,QAFnB;AAGEE,UAAAA,WAAW,EAAEF,QAHf;AAIEH,UAAAA,WAAW,EAAE;AAJf;AAMD;;AAED,UAAI,OAAOG,QAAP,KAAoB,UAAxB,EAAoC;AAClC,wDACKJ,MADL;AAEEO,UAAAA,UAAU,EAAEH,QAFd;AAGEH,UAAAA,WAAW,EAAE;AAHf;AAKD;;AAED,YAAM,IAAIO,KAAJ,CAAU,kBAAV,CAAN;AACD,KAtCI;AAuCLC,IAAAA,QAAQ,EAAE,kBACRC,OADQ,EAEgE;AACxE,UAAMC,WAAW,GAAGC,gBAAK,CAACC,MAAN,CAElBC,SAFkB,CAApB;AAIA,UAAMC,QAAQ,GAAGH,gBAAK,CAACI,UAAN,CAAiB;AAAA,eAAO,EAAP;AAAA,OAAjB,EAA6B,EAA7B,EAAiC,CAAjC,CAAjB;;AAEA,UAAI,CAACL,WAAW,CAACM,OAAjB,EAA0B;AACxBN,QAAAA,WAAW,CAACM,OAAZ,GAAsBC,wBAAmB,CAMvCR,OANuC,EAM9BK,QAN8B,CAAzC;AAOD;;AAEDJ,MAAAA,WAAW,CAACM,OAAZ,CAAoBE,aAApB,CAAkCT,OAAlC;AAEA,aAAOC,WAAW,CAACM,OAAnB;AACD,KA7DI;AA8DLG,IAAAA,KAAK,EAAEN;AA9DF,GAAP;AAgED;;;;"}
@@ -0,0 +1,317 @@
1
+ /**
2
+ * react-table
3
+ *
4
+ * Copyright (c) TanStack
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE.md file in the root directory of this source tree.
8
+ *
9
+ * @license MIT
10
+ */
11
+ 'use strict';
12
+
13
+ Object.defineProperty(exports, '__esModule', { value: true });
14
+
15
+ var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.js');
16
+ var utils = require('../utils.js');
17
+
18
+ //
19
+ var defaultColumnSizing = {
20
+ width: 150,
21
+ minWidth: 20,
22
+ maxWidth: Number.MAX_SAFE_INTEGER
23
+ };
24
+ function getInitialState() {
25
+ return {
26
+ columnSizing: {},
27
+ columnSizingInfo: {
28
+ startOffset: null,
29
+ startSize: null,
30
+ deltaOffset: null,
31
+ deltaPercentage: null,
32
+ isResizingColumn: false,
33
+ columnSizingStart: []
34
+ }
35
+ };
36
+ }
37
+ function getDefaultOptions(instance) {
38
+ return {
39
+ columnResizeMode: 'onEnd',
40
+ onColumnSizingChange: utils.makeStateUpdater('columnSizing', instance),
41
+ onColumnSizingInfoChange: utils.makeStateUpdater('columnSizingInfo', instance)
42
+ };
43
+ }
44
+ function getInstance(instance) {
45
+ return {
46
+ setColumnSizing: function setColumnSizing(updater) {
47
+ return instance.options.onColumnSizingChange == null ? void 0 : instance.options.onColumnSizingChange(updater, utils.functionalUpdate(updater, instance.getState().columnSizing));
48
+ },
49
+ setColumnSizingInfo: function setColumnSizingInfo(updater) {
50
+ return instance.options.onColumnSizingInfoChange == null ? void 0 : instance.options.onColumnSizingInfoChange(updater, utils.functionalUpdate(updater, instance.getState().columnSizingInfo));
51
+ },
52
+ resetColumnSizing: function resetColumnSizing() {
53
+ var _instance$initialStat;
54
+
55
+ instance.setColumnSizing((_instance$initialStat = instance.initialState.columnSizing) != null ? _instance$initialStat : {});
56
+ },
57
+ resetHeaderSizeInfo: function resetHeaderSizeInfo() {
58
+ var _instance$initialStat2;
59
+
60
+ instance.setColumnSizingInfo((_instance$initialStat2 = instance.initialState.columnSizingInfo) != null ? _instance$initialStat2 : {});
61
+ },
62
+ resetColumnSize: function resetColumnSize(columnId) {
63
+ instance.setColumnSizing(function (_ref) {
64
+ _ref[columnId];
65
+ var rest = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(_ref, [columnId].map(_rollupPluginBabelHelpers.toPropertyKey));
66
+
67
+ return rest;
68
+ });
69
+ },
70
+ resetHeaderSize: function resetHeaderSize(headerId) {
71
+ var header = instance.getHeader(headerId);
72
+
73
+ if (!header) {
74
+ return;
75
+ }
76
+
77
+ return instance.resetColumnSize(header.column.id);
78
+ },
79
+ getHeaderCanResize: function getHeaderCanResize(headerId) {
80
+ var header = instance.getHeader(headerId);
81
+
82
+ if (!header) {
83
+ throw new Error();
84
+ }
85
+
86
+ return instance.getColumnCanResize(header.column.id);
87
+ },
88
+ getColumnCanResize: function getColumnCanResize(columnId) {
89
+ var _ref2, _ref3, _column$enableResizin;
90
+
91
+ var column = instance.getColumn(columnId);
92
+
93
+ if (!column) {
94
+ throw new Error();
95
+ }
96
+
97
+ return (_ref2 = (_ref3 = (_column$enableResizin = column.enableResizing) != null ? _column$enableResizin : instance.options.enableColumnResizing) != null ? _ref3 : column.defaultCanResize) != null ? _ref2 : true;
98
+ },
99
+ getColumnIsResizing: function getColumnIsResizing(columnId) {
100
+ var column = instance.getColumn(columnId);
101
+
102
+ if (!column) {
103
+ throw new Error();
104
+ }
105
+
106
+ return instance.getState().columnSizingInfo.isResizingColumn === columnId;
107
+ },
108
+ getHeaderIsResizing: function getHeaderIsResizing(headerId) {
109
+ var header = instance.getHeader(headerId);
110
+
111
+ if (!header) {
112
+ throw new Error();
113
+ }
114
+
115
+ return instance.getColumnIsResizing(header.column.id);
116
+ },
117
+ getColumnResizerProps: function getColumnResizerProps(headerId, userProps) {
118
+ var header = instance.getHeader(headerId);
119
+
120
+ if (!header) {
121
+ return;
122
+ }
123
+
124
+ var column = instance.getColumn(header.column.id);
125
+
126
+ if (!column) {
127
+ return;
128
+ }
129
+
130
+ var canResize = column.getCanResize();
131
+
132
+ var onResizeStart = function onResizeStart(e) {
133
+ if (isTouchStartEvent(e)) {
134
+ // lets not respond to multiple touches (e.g. 2 or 3 fingers)
135
+ if (e.touches && e.touches.length > 1) {
136
+ return;
137
+ }
138
+ }
139
+
140
+ var columnSizingStart = header.getLeafHeaders().map(function (d) {
141
+ return [d.column.id, d.getWidth()];
142
+ });
143
+ var clientX = isTouchStartEvent(e) ? Math.round(e.touches[0].clientX) : e.clientX;
144
+
145
+ var updateOffset = function updateOffset(eventType, clientXPos) {
146
+ if (typeof clientXPos !== 'number') {
147
+ return;
148
+ }
149
+
150
+ var newColumnSizing = {};
151
+ instance.setColumnSizingInfo(function (old) {
152
+ var _old$startOffset, _old$startSize;
153
+
154
+ var deltaOffset = clientXPos - ((_old$startOffset = old == null ? void 0 : old.startOffset) != null ? _old$startOffset : 0);
155
+ var deltaPercentage = Math.max(deltaOffset / ((_old$startSize = old == null ? void 0 : old.startSize) != null ? _old$startSize : 0), -0.999999);
156
+ old.columnSizingStart.forEach(function (_ref4) {
157
+ var columnId = _ref4[0],
158
+ headerWidth = _ref4[1];
159
+ newColumnSizing[columnId] = Math.max(headerWidth + headerWidth * deltaPercentage, 0);
160
+ });
161
+ return _rollupPluginBabelHelpers["extends"]({}, old, {
162
+ deltaOffset: deltaOffset,
163
+ deltaPercentage: deltaPercentage
164
+ });
165
+ });
166
+
167
+ if (instance.options.columnResizeMode === 'onChange' || eventType === 'end') {
168
+ instance.setColumnSizing(function (old) {
169
+ return _rollupPluginBabelHelpers["extends"]({}, old, newColumnSizing);
170
+ });
171
+ }
172
+ };
173
+
174
+ var onMove = function onMove(clientXPos) {
175
+ return updateOffset('move', clientXPos);
176
+ };
177
+
178
+ var onEnd = function onEnd(clientXPos) {
179
+ updateOffset('end', clientXPos);
180
+ instance.setColumnSizingInfo(function (old) {
181
+ return _rollupPluginBabelHelpers["extends"]({}, old, {
182
+ isResizingColumn: false,
183
+ startOffset: null,
184
+ startSize: null,
185
+ deltaOffset: null,
186
+ deltaPercentage: null,
187
+ columnSizingStart: []
188
+ });
189
+ });
190
+ };
191
+
192
+ var mouseEvents = {
193
+ moveHandler: function moveHandler(e) {
194
+ return onMove(e.clientX);
195
+ },
196
+ upHandler: function upHandler(e) {
197
+ document.removeEventListener('mousemove', mouseEvents.moveHandler);
198
+ document.removeEventListener('mouseup', mouseEvents.upHandler);
199
+ onEnd(e.clientX);
200
+ }
201
+ };
202
+ var touchEvents = {
203
+ moveHandler: function moveHandler(e) {
204
+ if (e.cancelable) {
205
+ e.preventDefault();
206
+ e.stopPropagation();
207
+ }
208
+
209
+ onMove(e.touches[0].clientX);
210
+ return false;
211
+ },
212
+ upHandler: function upHandler(e) {
213
+ document.removeEventListener('touchmove', touchEvents.moveHandler);
214
+ document.removeEventListener('touchend', touchEvents.upHandler);
215
+
216
+ if (e.cancelable) {
217
+ e.preventDefault();
218
+ e.stopPropagation();
219
+ }
220
+
221
+ onEnd(e.touches[0].clientX);
222
+ }
223
+ };
224
+ var passiveIfSupported = passiveEventSupported() ? {
225
+ passive: false
226
+ } : false;
227
+
228
+ if (isTouchStartEvent(e)) {
229
+ document.addEventListener('touchmove', touchEvents.moveHandler, passiveIfSupported);
230
+ document.addEventListener('touchend', touchEvents.upHandler, passiveIfSupported);
231
+ } else {
232
+ document.addEventListener('mousemove', mouseEvents.moveHandler, passiveIfSupported);
233
+ document.addEventListener('mouseup', mouseEvents.upHandler, passiveIfSupported);
234
+ }
235
+
236
+ instance.setColumnSizingInfo(function (old) {
237
+ return _rollupPluginBabelHelpers["extends"]({}, old, {
238
+ startOffset: clientX,
239
+ startSize: header.getWidth(),
240
+ deltaOffset: 0,
241
+ deltaPercentage: 0,
242
+ columnSizingStart: columnSizingStart,
243
+ isResizingColumn: header.column.id
244
+ });
245
+ });
246
+ };
247
+
248
+ var initialProps = canResize ? {
249
+ title: 'Toggle Grouping',
250
+ draggable: false,
251
+ role: 'separator',
252
+ onMouseDown: function onMouseDown(e) {
253
+ e.persist();
254
+ onResizeStart(e);
255
+ },
256
+ onTouchStart: function onTouchStart(e) {
257
+ e.persist();
258
+ onResizeStart(e);
259
+ }
260
+ } : {};
261
+ return utils.propGetter(initialProps, userProps);
262
+ }
263
+ };
264
+ }
265
+ function createColumn(column, instance) {
266
+ return {
267
+ getIsResizing: function getIsResizing() {
268
+ return instance.getColumnIsResizing(column.id);
269
+ },
270
+ getCanResize: function getCanResize() {
271
+ return instance.getColumnCanResize(column.id);
272
+ },
273
+ resetSize: function resetSize() {
274
+ return instance.resetColumnSize(column.id);
275
+ },
276
+ getResizerProps: function getResizerProps(userProps) {
277
+ return instance.getColumnResizerProps(column.id, userProps);
278
+ }
279
+ };
280
+ }
281
+ var passiveSupported = null;
282
+ function passiveEventSupported() {
283
+ if (typeof passiveSupported === 'boolean') return passiveSupported;
284
+ var supported = false;
285
+
286
+ try {
287
+ var options = {
288
+ get passive() {
289
+ supported = true;
290
+ return false;
291
+ }
292
+
293
+ };
294
+
295
+ var noop = function noop() {};
296
+
297
+ window.addEventListener('test', noop, options);
298
+ window.removeEventListener('test', noop);
299
+ } catch (err) {
300
+ supported = false;
301
+ }
302
+
303
+ passiveSupported = supported;
304
+ return passiveSupported;
305
+ }
306
+
307
+ function isTouchStartEvent(e) {
308
+ return e.type === 'touchstart';
309
+ }
310
+
311
+ exports.createColumn = createColumn;
312
+ exports.defaultColumnSizing = defaultColumnSizing;
313
+ exports.getDefaultOptions = getDefaultOptions;
314
+ exports.getInitialState = getInitialState;
315
+ exports.getInstance = getInstance;
316
+ exports.passiveEventSupported = passiveEventSupported;
317
+ //# sourceMappingURL=ColumnSizing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColumnSizing.js","sources":["../../../src/features/ColumnSizing.ts"],"sourcesContent":["import React, {\n ComponentProps,\n MouseEvent as ReactMouseEvent,\n PropsWithoutRef,\n PropsWithRef,\n TouchEvent as ReactTouchEvent,\n} from 'react'\nimport {\n Column,\n Getter,\n Header,\n OnChangeFn,\n PropGetterValue,\n ReactTable,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\n//\n\nexport type ColumnSizing = Record<string, number>\n\nexport type ColumnSizingInfoState = {\n startOffset: null | number\n startSize: null | number\n deltaOffset: null | number\n deltaPercentage: null | number\n isResizingColumn: false | string\n columnSizingStart: [string, number][]\n}\n\nexport type ColumnSizingTableState = {\n columnSizing: ColumnSizing\n columnSizingInfo: ColumnSizingInfoState\n}\n\nexport type ColumnResizeMode = 'onChange' | 'onEnd'\n\nexport type ColumnSizingOptions = {\n enableColumnResizing?: boolean\n columnResizeMode?: ColumnResizeMode\n onColumnSizingChange?: OnChangeFn<ColumnSizing>\n onColumnSizingInfoChange?: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnSizingDefaultOptions = {\n columnResizeMode: ColumnResizeMode\n onColumnSizingChange: OnChangeFn<ColumnSizing>\n onColumnSizingInfoChange: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnResizerProps = {\n title?: string\n onMouseDown?: (e: ReactMouseEvent) => void\n onTouchStart?: (e: ReactTouchEvent) => void\n draggable?: boolean\n role?: string\n}\n\nexport type ColumnSizingInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n setColumnSizing: (updater: Updater<ColumnSizing>) => void\n setColumnSizingInfo: (updater: Updater<ColumnSizingInfoState>) => void\n resetColumnSizing: () => void\n resetColumnSize: (columnId: string) => void\n resetHeaderSize: (headerId: string) => void\n resetHeaderSizeInfo: () => void\n getColumnCanResize: (columnId: string) => boolean\n getHeaderCanResize: (headerId: string) => boolean\n getColumnResizerProps: <TGetter extends Getter<ColumnResizerProps>>(\n columnId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ColumnResizerProps, TGetter>\n getColumnIsResizing: (columnId: string) => boolean\n getHeaderIsResizing: (headerId: string) => boolean\n}\n\nexport type ColumnSizingColumnDef = {\n enableResizing?: boolean\n defaultCanResize?: boolean\n}\n\nexport type ColumnSizingColumn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n getCanResize: () => boolean\n getIsResizing: () => boolean\n getResizerProps: <TGetter extends Getter<ColumnResizerProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ColumnResizerProps, TGetter>\n resetSize: () => void\n}\n\n//\n\nexport const defaultColumnSizing = {\n width: 150,\n minWidth: 20,\n maxWidth: Number.MAX_SAFE_INTEGER,\n}\n\nexport function getInitialState(): ColumnSizingTableState {\n return {\n columnSizing: {},\n columnSizingInfo: {\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n },\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): ColumnSizingDefaultOptions {\n return {\n columnResizeMode: 'onEnd',\n onColumnSizingChange: makeStateUpdater('columnSizing', instance),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', instance),\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): ColumnSizingInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> {\n return {\n setColumnSizing: updater =>\n instance.options.onColumnSizingChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnSizing)\n ),\n setColumnSizingInfo: updater =>\n instance.options.onColumnSizingInfoChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnSizingInfo)\n ),\n resetColumnSizing: () => {\n instance.setColumnSizing(instance.initialState.columnSizing ?? {})\n },\n resetHeaderSizeInfo: () => {\n instance.setColumnSizingInfo(instance.initialState.columnSizingInfo ?? {})\n },\n resetColumnSize: columnId => {\n instance.setColumnSizing(({ [columnId]: _, ...rest }) => {\n return rest\n })\n },\n resetHeaderSize: headerId => {\n const header = instance.getHeader(headerId)\n\n if (!header) {\n return\n }\n\n return instance.resetColumnSize(header.column.id)\n },\n getHeaderCanResize: headerId => {\n const header = instance.getHeader(headerId)\n\n if (!header) {\n throw new Error()\n }\n\n return instance.getColumnCanResize(header.column.id)\n },\n getColumnCanResize: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return (\n column.enableResizing ??\n instance.options.enableColumnResizing ??\n column.defaultCanResize ??\n true\n )\n },\n getColumnIsResizing: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return instance.getState().columnSizingInfo.isResizingColumn === columnId\n },\n getHeaderIsResizing: headerId => {\n const header = instance.getHeader(headerId)\n\n if (!header) {\n throw new Error()\n }\n\n return instance.getColumnIsResizing(header.column.id)\n },\n getColumnResizerProps: (headerId, userProps) => {\n const header = instance.getHeader(headerId)\n\n if (!header) {\n return\n }\n\n const column = instance.getColumn(header.column.id)\n\n if (!column) {\n return\n }\n\n const canResize = column.getCanResize()\n\n const onResizeStart = (e: ReactMouseEvent | ReactTouchEvent) => {\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return\n }\n }\n\n const columnSizingStart: [string, number][] = header\n .getLeafHeaders()\n .map(d => [d.column.id, d.getWidth()])\n\n const clientX = isTouchStartEvent(e)\n ? Math.round(e.touches[0].clientX)\n : e.clientX\n\n const updateOffset = (\n eventType: 'move' | 'end',\n clientXPos?: number\n ) => {\n if (typeof clientXPos !== 'number') {\n return\n }\n\n let newColumnSizing: ColumnSizing = {}\n\n instance.setColumnSizingInfo(old => {\n const deltaOffset = clientXPos - (old?.startOffset ?? 0)\n const deltaPercentage = Math.max(\n deltaOffset / (old?.startSize ?? 0),\n -0.999999\n )\n\n old.columnSizingStart.forEach(([columnId, headerWidth]) => {\n newColumnSizing[columnId] = Math.max(\n headerWidth + headerWidth * deltaPercentage,\n 0\n )\n })\n\n return {\n ...old,\n deltaOffset,\n deltaPercentage,\n }\n })\n\n if (\n instance.options.columnResizeMode === 'onChange' ||\n eventType === 'end'\n ) {\n instance.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing,\n }))\n }\n }\n\n const onMove = (clientXPos?: number) => updateOffset('move', clientXPos)\n\n const onEnd = (clientXPos?: number) => {\n updateOffset('end', clientXPos)\n\n instance.setColumnSizingInfo(old => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: [],\n }))\n }\n\n const mouseEvents = {\n moveHandler: (e: MouseEvent) => onMove(e.clientX),\n upHandler: (e: MouseEvent) => {\n document.removeEventListener('mousemove', mouseEvents.moveHandler)\n document.removeEventListener('mouseup', mouseEvents.upHandler)\n onEnd(e.clientX)\n },\n }\n\n const touchEvents = {\n moveHandler: (e: TouchEvent) => {\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onMove(e.touches[0].clientX)\n return false\n },\n upHandler: (e: TouchEvent) => {\n document.removeEventListener('touchmove', touchEvents.moveHandler)\n document.removeEventListener('touchend', touchEvents.upHandler)\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onEnd(e.touches[0].clientX)\n },\n }\n\n const passiveIfSupported = passiveEventSupported()\n ? { passive: false }\n : false\n\n if (isTouchStartEvent(e)) {\n document.addEventListener(\n 'touchmove',\n touchEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'touchend',\n touchEvents.upHandler,\n passiveIfSupported\n )\n } else {\n document.addEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'mouseup',\n mouseEvents.upHandler,\n passiveIfSupported\n )\n }\n\n instance.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize: header.getWidth(),\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: header.column.id,\n }))\n }\n\n const initialProps: ColumnResizerProps = canResize\n ? {\n title: 'Toggle Grouping',\n draggable: false,\n role: 'separator',\n onMouseDown: (e: ReactMouseEvent) => {\n e.persist()\n onResizeStart(e)\n },\n onTouchStart: (e: ReactTouchEvent) => {\n e.persist()\n onResizeStart(e)\n },\n }\n : {}\n\n return propGetter(initialProps, userProps)\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): ColumnSizingColumn<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n getIsResizing: () => instance.getColumnIsResizing(column.id),\n getCanResize: () => instance.getColumnCanResize(column.id),\n resetSize: () => instance.resetColumnSize(column.id),\n getResizerProps: userProps =>\n instance.getColumnResizerProps(column.id, userProps),\n }\n}\n\nlet passiveSupported: boolean | null = null\nexport function passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported\n\n let supported = false\n try {\n const options = {\n get passive() {\n supported = true\n return false\n },\n }\n\n const noop = () => {}\n\n window.addEventListener('test', noop, options)\n window.removeEventListener('test', noop)\n } catch (err) {\n supported = false\n }\n passiveSupported = supported\n return passiveSupported\n}\n\nfunction isTouchStartEvent(\n e: ReactTouchEvent | ReactMouseEvent\n): e is ReactTouchEvent {\n return e.type === 'touchstart'\n}\n"],"names":["defaultColumnSizing","width","minWidth","maxWidth","Number","MAX_SAFE_INTEGER","getInitialState","columnSizing","columnSizingInfo","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","getDefaultOptions","instance","columnResizeMode","onColumnSizingChange","makeStateUpdater","onColumnSizingInfoChange","getInstance","setColumnSizing","updater","options","functionalUpdate","getState","setColumnSizingInfo","resetColumnSizing","initialState","resetHeaderSizeInfo","resetColumnSize","columnId","rest","resetHeaderSize","headerId","header","getHeader","column","id","getHeaderCanResize","Error","getColumnCanResize","getColumn","enableResizing","enableColumnResizing","defaultCanResize","getColumnIsResizing","getHeaderIsResizing","getColumnResizerProps","userProps","canResize","getCanResize","onResizeStart","e","isTouchStartEvent","touches","length","getLeafHeaders","map","d","getWidth","clientX","Math","round","updateOffset","eventType","clientXPos","newColumnSizing","old","max","forEach","headerWidth","onMove","onEnd","mouseEvents","moveHandler","upHandler","document","removeEventListener","touchEvents","cancelable","preventDefault","stopPropagation","passiveIfSupported","passiveEventSupported","passive","addEventListener","initialProps","title","draggable","role","onMouseDown","persist","onTouchStart","propGetter","createColumn","getIsResizing","resetSize","getResizerProps","passiveSupported","supported","noop","window","err","type"],"mappings":";;;;;;;;;;;;;;;;;AAsGA;IAEaA,mBAAmB,GAAG;AACjCC,EAAAA,KAAK,EAAE,GAD0B;AAEjCC,EAAAA,QAAQ,EAAE,EAFuB;AAGjCC,EAAAA,QAAQ,EAAEC,MAAM,CAACC;AAHgB;AAM5B,SAASC,eAAT,GAAmD;AACxD,SAAO;AACLC,IAAAA,YAAY,EAAE,EADT;AAELC,IAAAA,gBAAgB,EAAE;AAChBC,MAAAA,WAAW,EAAE,IADG;AAEhBC,MAAAA,SAAS,EAAE,IAFK;AAGhBC,MAAAA,WAAW,EAAE,IAHG;AAIhBC,MAAAA,eAAe,EAAE,IAJD;AAKhBC,MAAAA,gBAAgB,EAAE,KALF;AAMhBC,MAAAA,iBAAiB,EAAE;AANH;AAFb,GAAP;AAWD;AAEM,SAASC,iBAAT,CAOLC,QAPK,EAQuB;AAC5B,SAAO;AACLC,IAAAA,gBAAgB,EAAE,OADb;AAELC,IAAAA,oBAAoB,EAAEC,sBAAgB,CAAC,cAAD,EAAiBH,QAAjB,CAFjC;AAGLI,IAAAA,wBAAwB,EAAED,sBAAgB,CAAC,kBAAD,EAAqBH,QAArB;AAHrC,GAAP;AAKD;AAEM,SAASK,WAAT,CAOLL,QAPK,EAcL;AACA,SAAO;AACLM,IAAAA,eAAe,EAAE,yBAAAC,OAAO;AAAA,aACtBP,QAAQ,CAACQ,OAAT,CAAiBN,oBADK,oBACtBF,QAAQ,CAACQ,OAAT,CAAiBN,oBAAjB,CACEK,OADF,EAEEE,sBAAgB,CAACF,OAAD,EAAUP,QAAQ,CAACU,QAAT,GAAoBnB,YAA9B,CAFlB,CADsB;AAAA,KADnB;AAMLoB,IAAAA,mBAAmB,EAAE,6BAAAJ,OAAO;AAAA,aAC1BP,QAAQ,CAACQ,OAAT,CAAiBJ,wBADS,oBAC1BJ,QAAQ,CAACQ,OAAT,CAAiBJ,wBAAjB,CACEG,OADF,EAEEE,sBAAgB,CAACF,OAAD,EAAUP,QAAQ,CAACU,QAAT,GAAoBlB,gBAA9B,CAFlB,CAD0B;AAAA,KANvB;AAWLoB,IAAAA,iBAAiB,EAAE,6BAAM;AAAA;;AACvBZ,MAAAA,QAAQ,CAACM,eAAT,0BAAyBN,QAAQ,CAACa,YAAT,CAAsBtB,YAA/C,oCAA+D,EAA/D;AACD,KAbI;AAcLuB,IAAAA,mBAAmB,EAAE,+BAAM;AAAA;;AACzBd,MAAAA,QAAQ,CAACW,mBAAT,2BAA6BX,QAAQ,CAACa,YAAT,CAAsBrB,gBAAnD,qCAAuE,EAAvE;AACD,KAhBI;AAiBLuB,IAAAA,eAAe,EAAE,yBAAAC,QAAQ,EAAI;AAC3BhB,MAAAA,QAAQ,CAACM,eAAT,CAAyB,gBAAgC;AAAA,aAA5BU,QAA4B;AAAA,gBAAXC,IAAW,iEAA5BD,QAA4B;;AACvD,eAAOC,IAAP;AACD,OAFD;AAGD,KArBI;AAsBLC,IAAAA,eAAe,EAAE,yBAAAC,QAAQ,EAAI;AAC3B,UAAMC,MAAM,GAAGpB,QAAQ,CAACqB,SAAT,CAAmBF,QAAnB,CAAf;;AAEA,UAAI,CAACC,MAAL,EAAa;AACX;AACD;;AAED,aAAOpB,QAAQ,CAACe,eAAT,CAAyBK,MAAM,CAACE,MAAP,CAAcC,EAAvC,CAAP;AACD,KA9BI;AA+BLC,IAAAA,kBAAkB,EAAE,4BAAAL,QAAQ,EAAI;AAC9B,UAAMC,MAAM,GAAGpB,QAAQ,CAACqB,SAAT,CAAmBF,QAAnB,CAAf;;AAEA,UAAI,CAACC,MAAL,EAAa;AACX,cAAM,IAAIK,KAAJ,EAAN;AACD;;AAED,aAAOzB,QAAQ,CAAC0B,kBAAT,CAA4BN,MAAM,CAACE,MAAP,CAAcC,EAA1C,CAAP;AACD,KAvCI;AAwCLG,IAAAA,kBAAkB,EAAE,4BAAAV,QAAQ,EAAI;AAAA;;AAC9B,UAAMM,MAAM,GAAGtB,QAAQ,CAAC2B,SAAT,CAAmBX,QAAnB,CAAf;;AAEA,UAAI,CAACM,MAAL,EAAa;AACX,cAAM,IAAIG,KAAJ,EAAN;AACD;;AAED,wDACEH,MAAM,CAACM,cADT,oCAEE5B,QAAQ,CAACQ,OAAT,CAAiBqB,oBAFnB,oBAGEP,MAAM,CAACQ,gBAHT,oBAIE,IAJF;AAMD,KArDI;AAsDLC,IAAAA,mBAAmB,EAAE,6BAAAf,QAAQ,EAAI;AAC/B,UAAMM,MAAM,GAAGtB,QAAQ,CAAC2B,SAAT,CAAmBX,QAAnB,CAAf;;AAEA,UAAI,CAACM,MAAL,EAAa;AACX,cAAM,IAAIG,KAAJ,EAAN;AACD;;AAED,aAAOzB,QAAQ,CAACU,QAAT,GAAoBlB,gBAApB,CAAqCK,gBAArC,KAA0DmB,QAAjE;AACD,KA9DI;AA+DLgB,IAAAA,mBAAmB,EAAE,6BAAAb,QAAQ,EAAI;AAC/B,UAAMC,MAAM,GAAGpB,QAAQ,CAACqB,SAAT,CAAmBF,QAAnB,CAAf;;AAEA,UAAI,CAACC,MAAL,EAAa;AACX,cAAM,IAAIK,KAAJ,EAAN;AACD;;AAED,aAAOzB,QAAQ,CAAC+B,mBAAT,CAA6BX,MAAM,CAACE,MAAP,CAAcC,EAA3C,CAAP;AACD,KAvEI;AAwELU,IAAAA,qBAAqB,EAAE,+BAACd,QAAD,EAAWe,SAAX,EAAyB;AAC9C,UAAMd,MAAM,GAAGpB,QAAQ,CAACqB,SAAT,CAAmBF,QAAnB,CAAf;;AAEA,UAAI,CAACC,MAAL,EAAa;AACX;AACD;;AAED,UAAME,MAAM,GAAGtB,QAAQ,CAAC2B,SAAT,CAAmBP,MAAM,CAACE,MAAP,CAAcC,EAAjC,CAAf;;AAEA,UAAI,CAACD,MAAL,EAAa;AACX;AACD;;AAED,UAAMa,SAAS,GAAGb,MAAM,CAACc,YAAP,EAAlB;;AAEA,UAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACC,CAAD,EAA0C;AAC9D,YAAIC,iBAAiB,CAACD,CAAD,CAArB,EAA0B;AACxB;AACA,cAAIA,CAAC,CAACE,OAAF,IAAaF,CAAC,CAACE,OAAF,CAAUC,MAAV,GAAmB,CAApC,EAAuC;AACrC;AACD;AACF;;AAED,YAAM3C,iBAAqC,GAAGsB,MAAM,CACjDsB,cAD2C,GAE3CC,GAF2C,CAEvC,UAAAC,CAAC;AAAA,iBAAI,CAACA,CAAC,CAACtB,MAAF,CAASC,EAAV,EAAcqB,CAAC,CAACC,QAAF,EAAd,CAAJ;AAAA,SAFsC,CAA9C;AAIA,YAAMC,OAAO,GAAGP,iBAAiB,CAACD,CAAD,CAAjB,GACZS,IAAI,CAACC,KAAL,CAAWV,CAAC,CAACE,OAAF,CAAU,CAAV,EAAaM,OAAxB,CADY,GAEZR,CAAC,CAACQ,OAFN;;AAIA,YAAMG,YAAY,GAAG,SAAfA,YAAe,CACnBC,SADmB,EAEnBC,UAFmB,EAGhB;AACH,cAAI,OAAOA,UAAP,KAAsB,QAA1B,EAAoC;AAClC;AACD;;AAED,cAAIC,eAA6B,GAAG,EAApC;AAEApD,UAAAA,QAAQ,CAACW,mBAAT,CAA6B,UAAA0C,GAAG,EAAI;AAAA;;AAClC,gBAAM1D,WAAW,GAAGwD,UAAU,wBAAIE,GAAJ,oBAAIA,GAAG,CAAE5D,WAAT,+BAAwB,CAAxB,CAA9B;AACA,gBAAMG,eAAe,GAAGmD,IAAI,CAACO,GAAL,CACtB3D,WAAW,sBAAI0D,GAAJ,oBAAIA,GAAG,CAAE3D,SAAT,6BAAsB,CAAtB,CADW,EAEtB,CAAC,QAFqB,CAAxB;AAKA2D,YAAAA,GAAG,CAACvD,iBAAJ,CAAsByD,OAAtB,CAA8B,iBAA6B;AAAA,kBAA3BvC,QAA2B;AAAA,kBAAjBwC,WAAiB;AACzDJ,cAAAA,eAAe,CAACpC,QAAD,CAAf,GAA4B+B,IAAI,CAACO,GAAL,CAC1BE,WAAW,GAAGA,WAAW,GAAG5D,eADF,EAE1B,CAF0B,CAA5B;AAID,aALD;AAOA,4DACKyD,GADL;AAEE1D,cAAAA,WAAW,EAAXA,WAFF;AAGEC,cAAAA,eAAe,EAAfA;AAHF;AAKD,WAnBD;;AAqBA,cACEI,QAAQ,CAACQ,OAAT,CAAiBP,gBAAjB,KAAsC,UAAtC,IACAiD,SAAS,KAAK,KAFhB,EAGE;AACAlD,YAAAA,QAAQ,CAACM,eAAT,CAAyB,UAAA+C,GAAG;AAAA,8DACvBA,GADuB,EAEvBD,eAFuB;AAAA,aAA5B;AAID;AACF,SAxCD;;AA0CA,YAAMK,MAAM,GAAG,SAATA,MAAS,CAACN,UAAD;AAAA,iBAAyBF,YAAY,CAAC,MAAD,EAASE,UAAT,CAArC;AAAA,SAAf;;AAEA,YAAMO,KAAK,GAAG,SAARA,KAAQ,CAACP,UAAD,EAAyB;AACrCF,UAAAA,YAAY,CAAC,KAAD,EAAQE,UAAR,CAAZ;AAEAnD,UAAAA,QAAQ,CAACW,mBAAT,CAA6B,UAAA0C,GAAG;AAAA,4DAC3BA,GAD2B;AAE9BxD,cAAAA,gBAAgB,EAAE,KAFY;AAG9BJ,cAAAA,WAAW,EAAE,IAHiB;AAI9BC,cAAAA,SAAS,EAAE,IAJmB;AAK9BC,cAAAA,WAAW,EAAE,IALiB;AAM9BC,cAAAA,eAAe,EAAE,IANa;AAO9BE,cAAAA,iBAAiB,EAAE;AAPW;AAAA,WAAhC;AASD,SAZD;;AAcA,YAAM6D,WAAW,GAAG;AAClBC,UAAAA,WAAW,EAAE,qBAACtB,CAAD;AAAA,mBAAmBmB,MAAM,CAACnB,CAAC,CAACQ,OAAH,CAAzB;AAAA,WADK;AAElBe,UAAAA,SAAS,EAAE,mBAACvB,CAAD,EAAmB;AAC5BwB,YAAAA,QAAQ,CAACC,mBAAT,CAA6B,WAA7B,EAA0CJ,WAAW,CAACC,WAAtD;AACAE,YAAAA,QAAQ,CAACC,mBAAT,CAA6B,SAA7B,EAAwCJ,WAAW,CAACE,SAApD;AACAH,YAAAA,KAAK,CAACpB,CAAC,CAACQ,OAAH,CAAL;AACD;AANiB,SAApB;AASA,YAAMkB,WAAW,GAAG;AAClBJ,UAAAA,WAAW,EAAE,qBAACtB,CAAD,EAAmB;AAC9B,gBAAIA,CAAC,CAAC2B,UAAN,EAAkB;AAChB3B,cAAAA,CAAC,CAAC4B,cAAF;AACA5B,cAAAA,CAAC,CAAC6B,eAAF;AACD;;AACDV,YAAAA,MAAM,CAACnB,CAAC,CAACE,OAAF,CAAU,CAAV,EAAaM,OAAd,CAAN;AACA,mBAAO,KAAP;AACD,WARiB;AASlBe,UAAAA,SAAS,EAAE,mBAACvB,CAAD,EAAmB;AAC5BwB,YAAAA,QAAQ,CAACC,mBAAT,CAA6B,WAA7B,EAA0CC,WAAW,CAACJ,WAAtD;AACAE,YAAAA,QAAQ,CAACC,mBAAT,CAA6B,UAA7B,EAAyCC,WAAW,CAACH,SAArD;;AACA,gBAAIvB,CAAC,CAAC2B,UAAN,EAAkB;AAChB3B,cAAAA,CAAC,CAAC4B,cAAF;AACA5B,cAAAA,CAAC,CAAC6B,eAAF;AACD;;AACDT,YAAAA,KAAK,CAACpB,CAAC,CAACE,OAAF,CAAU,CAAV,EAAaM,OAAd,CAAL;AACD;AAjBiB,SAApB;AAoBA,YAAMsB,kBAAkB,GAAGC,qBAAqB,KAC5C;AAAEC,UAAAA,OAAO,EAAE;AAAX,SAD4C,GAE5C,KAFJ;;AAIA,YAAI/B,iBAAiB,CAACD,CAAD,CAArB,EAA0B;AACxBwB,UAAAA,QAAQ,CAACS,gBAAT,CACE,WADF,EAEEP,WAAW,CAACJ,WAFd,EAGEQ,kBAHF;AAKAN,UAAAA,QAAQ,CAACS,gBAAT,CACE,UADF,EAEEP,WAAW,CAACH,SAFd,EAGEO,kBAHF;AAKD,SAXD,MAWO;AACLN,UAAAA,QAAQ,CAACS,gBAAT,CACE,WADF,EAEEZ,WAAW,CAACC,WAFd,EAGEQ,kBAHF;AAKAN,UAAAA,QAAQ,CAACS,gBAAT,CACE,SADF,EAEEZ,WAAW,CAACE,SAFd,EAGEO,kBAHF;AAKD;;AAEDpE,QAAAA,QAAQ,CAACW,mBAAT,CAA6B,UAAA0C,GAAG;AAAA,0DAC3BA,GAD2B;AAE9B5D,YAAAA,WAAW,EAAEqD,OAFiB;AAG9BpD,YAAAA,SAAS,EAAE0B,MAAM,CAACyB,QAAP,EAHmB;AAI9BlD,YAAAA,WAAW,EAAE,CAJiB;AAK9BC,YAAAA,eAAe,EAAE,CALa;AAM9BE,YAAAA,iBAAiB,EAAjBA,iBAN8B;AAO9BD,YAAAA,gBAAgB,EAAEuB,MAAM,CAACE,MAAP,CAAcC;AAPF;AAAA,SAAhC;AASD,OA5ID;;AA8IA,UAAMiD,YAAgC,GAAGrC,SAAS,GAC9C;AACEsC,QAAAA,KAAK,EAAE,iBADT;AAEEC,QAAAA,SAAS,EAAE,KAFb;AAGEC,QAAAA,IAAI,EAAE,WAHR;AAIEC,QAAAA,WAAW,EAAE,qBAACtC,CAAD,EAAwB;AACnCA,UAAAA,CAAC,CAACuC,OAAF;AACAxC,UAAAA,aAAa,CAACC,CAAD,CAAb;AACD,SAPH;AAQEwC,QAAAA,YAAY,EAAE,sBAACxC,CAAD,EAAwB;AACpCA,UAAAA,CAAC,CAACuC,OAAF;AACAxC,UAAAA,aAAa,CAACC,CAAD,CAAb;AACD;AAXH,OAD8C,GAc9C,EAdJ;AAgBA,aAAOyC,gBAAU,CAACP,YAAD,EAAetC,SAAf,CAAjB;AACD;AAtPI,GAAP;AAwPD;AAEM,SAAS8C,YAAT,CAOL1D,MAPK,EAQLtB,QARK,EASwE;AAC7E,SAAO;AACLiF,IAAAA,aAAa,EAAE;AAAA,aAAMjF,QAAQ,CAAC+B,mBAAT,CAA6BT,MAAM,CAACC,EAApC,CAAN;AAAA,KADV;AAELa,IAAAA,YAAY,EAAE;AAAA,aAAMpC,QAAQ,CAAC0B,kBAAT,CAA4BJ,MAAM,CAACC,EAAnC,CAAN;AAAA,KAFT;AAGL2D,IAAAA,SAAS,EAAE;AAAA,aAAMlF,QAAQ,CAACe,eAAT,CAAyBO,MAAM,CAACC,EAAhC,CAAN;AAAA,KAHN;AAIL4D,IAAAA,eAAe,EAAE,yBAAAjD,SAAS;AAAA,aACxBlC,QAAQ,CAACiC,qBAAT,CAA+BX,MAAM,CAACC,EAAtC,EAA0CW,SAA1C,CADwB;AAAA;AAJrB,GAAP;AAOD;AAED,IAAIkD,gBAAgC,GAAG,IAAvC;AACO,SAASf,qBAAT,GAAiC;AACtC,MAAI,OAAOe,gBAAP,KAA4B,SAAhC,EAA2C,OAAOA,gBAAP;AAE3C,MAAIC,SAAS,GAAG,KAAhB;;AACA,MAAI;AACF,QAAM7E,OAAO,GAAG;AACd,UAAI8D,OAAJ,GAAc;AACZe,QAAAA,SAAS,GAAG,IAAZ;AACA,eAAO,KAAP;AACD;;AAJa,KAAhB;;AAOA,QAAMC,IAAI,GAAG,SAAPA,IAAO,GAAM,EAAnB;;AAEAC,IAAAA,MAAM,CAAChB,gBAAP,CAAwB,MAAxB,EAAgCe,IAAhC,EAAsC9E,OAAtC;AACA+E,IAAAA,MAAM,CAACxB,mBAAP,CAA2B,MAA3B,EAAmCuB,IAAnC;AACD,GAZD,CAYE,OAAOE,GAAP,EAAY;AACZH,IAAAA,SAAS,GAAG,KAAZ;AACD;;AACDD,EAAAA,gBAAgB,GAAGC,SAAnB;AACA,SAAOD,gBAAP;AACD;;AAED,SAAS7C,iBAAT,CACED,CADF,EAEwB;AACtB,SAAOA,CAAC,CAACmD,IAAF,KAAW,YAAlB;AACD;;;;;;;;;"}
@@ -33,7 +33,22 @@ function getDefaultOptions(instance) {
33
33
  };
34
34
  }
35
35
  function getInstance(instance) {
36
+ var registered = false;
36
37
  return {
38
+ _notifyExpandedReset: function _notifyExpandedReset() {
39
+ if (!registered) {
40
+ registered = true;
41
+ return;
42
+ }
43
+
44
+ if (instance.options.autoResetAll === false) {
45
+ return;
46
+ }
47
+
48
+ if (instance.options.autoResetAll === true || instance.options.autoResetExpanded) {
49
+ instance.resetExpanded();
50
+ }
51
+ },
37
52
  setExpanded: function setExpanded(updater) {
38
53
  return instance.options.onExpandedChange == null ? void 0 : instance.options.onExpandedChange(updater, utils.functionalUpdate(updater, instance.getState().expanded));
39
54
  },
@@ -181,8 +196,14 @@ function getInstance(instance) {
181
196
  }
182
197
 
183
198
  if (process.env.NODE_ENV !== 'production' && instance.options.debug) console.info('Expanding...');
184
- return expandRowsFn(instance, expanded, rowModel);
185
- }, 'getExpandedRowModel', instance.options.debug),
199
+ return expandRowsFn(instance, rowModel);
200
+ }, {
201
+ key: 'getExpandedRowModel',
202
+ debug: instance.options.debug,
203
+ onChange: function onChange() {
204
+ return instance._notifyPageIndexReset();
205
+ }
206
+ }),
186
207
  getPreExpandedRows: function getPreExpandedRows() {
187
208
  return instance.getGroupedRowModel().rows;
188
209
  },
@@ -1 +1 @@
1
- {"version":3,"file":"Expanding.js","sources":["../../../src/features/Expanding.ts"],"sourcesContent":["import { MouseEvent, TouchEvent } from 'react'\nimport { RowModel } from '..'\nimport {\n Getter,\n OnChangeFn,\n PropGetterValue,\n ReactTable,\n Row,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\nexport type ExpandedStateList = Record<string, boolean>\nexport type ExpandedState = true | Record<string, boolean>\nexport type ExpandedTableState = {\n expanded: ExpandedState\n}\n\nexport type ExpandedRow = {\n toggleExpanded: (expanded?: boolean) => void\n getIsExpanded: () => boolean\n getCanExpand: () => boolean\n getToggleExpandedProps: <TGetter extends Getter<ToggleExpandedProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleExpandedProps, TGetter>\n}\n\nexport type ExpandedOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n onExpandedChange?: OnChangeFn<ExpandedState>\n autoResetExpanded?: boolean\n enableExpanded?: boolean\n expandRowsFn?: (\n instance: ReactTable<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n expandedState: ExpandedState,\n groupedRowModel: RowModel<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n ) => RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n expandSubRows?: boolean\n defaultCanExpand?: boolean\n getIsRowExpanded?: (\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => boolean\n getRowCanExpand?: (\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => boolean\n paginateExpandedRows?: boolean\n}\n\nexport type ToggleExpandedProps = {\n title?: string\n onClick?: (event: MouseEvent | TouchEvent) => void\n}\n\nexport type ExpandedInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n setExpanded: (updater: Updater<ExpandedState>) => void\n toggleRowExpanded: (rowId: string, expanded?: boolean) => void\n toggleAllRowsExpanded: (expanded?: boolean) => void\n resetExpanded: () => void\n getRowCanExpand: (rowId: string) => boolean\n getIsRowExpanded: (rowId: string) => boolean\n getToggleExpandedProps: <TGetter extends Getter<ToggleExpandedProps>>(\n rowId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleExpandedProps, TGetter>\n getToggleAllRowsExpandedProps: <TGetter extends Getter<ToggleExpandedProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleExpandedProps, TGetter>\n getIsAllRowsExpanded: () => boolean\n getExpandedDepth: () => number\n getExpandedRowModel: () => RowModel<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n getPreExpandedRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPreExpandedFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPreExpandedRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n getExpandedRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getExpandedFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getExpandedRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n}\n\n//\n\nexport function getInitialState(): ExpandedTableState {\n return {\n expanded: {},\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): ExpandedOptions<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n onExpandedChange: makeStateUpdater('expanded', instance),\n autoResetExpanded: true,\n getIsRowExpanded: row => !!(row?.original as { expanded?: any }).expanded,\n expandSubRows: true,\n paginateExpandedRows: true,\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): ExpandedInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n setExpanded: updater =>\n instance.options.onExpandedChange?.(\n updater,\n functionalUpdate(updater, instance.getState().expanded)\n ),\n toggleRowExpanded: (rowId, expanded) => {\n if (!rowId) return\n\n instance.setExpanded((old = {}) => {\n const exists = old === true ? true : !!old?.[rowId]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(instance.getRowsById()).forEach(rowId => {\n oldExpanded[rowId] = true\n })\n } else {\n oldExpanded = old\n }\n\n expanded = expanded ?? !exists\n\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [rowId]: true,\n }\n }\n\n if (exists && !expanded) {\n const { [rowId]: _, ...rest } = oldExpanded\n return rest\n }\n\n return old\n })\n },\n toggleAllRowsExpanded: expanded => {\n if (expanded ?? !instance.getIsAllRowsExpanded()) {\n instance.setExpanded(true)\n } else {\n instance.setExpanded({})\n }\n },\n resetExpanded: () => {\n instance.setExpanded(instance.options?.initialState?.expanded ?? {})\n },\n getIsRowExpanded: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `[ReactTable] getIsRowExpanded: no row found with id ${rowId}`\n )\n }\n throw new Error()\n }\n\n const expanded = instance.getState().expanded\n\n return !!(\n instance.options.getIsRowExpanded?.(row) ??\n (expanded || expanded?.[rowId])\n )\n },\n getRowCanExpand: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `[ReactTable] getRowCanExpand: no row found with id ${rowId}`\n )\n }\n throw new Error()\n }\n\n return (\n instance.options.getRowCanExpand?.(row) ??\n instance.options.enableExpanded ??\n instance.options.defaultCanExpand ??\n !!row.subRows?.length\n )\n },\n getToggleExpandedProps: (rowId, userProps) => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n return\n }\n\n const canExpand = instance.getRowCanExpand(rowId)\n\n const initialProps: ToggleExpandedProps = {\n title: canExpand ? 'Toggle Expanded' : undefined,\n onClick: canExpand\n ? (e: MouseEvent | TouchEvent) => {\n e.persist()\n instance.toggleRowExpanded(rowId)\n }\n : undefined,\n }\n\n return propGetter(initialProps, userProps)\n },\n getToggleAllRowsExpandedProps: userProps => {\n const initialProps: ToggleExpandedProps = {\n title: 'Toggle All Expanded',\n onClick: (e: MouseEvent | TouchEvent) => {\n e.persist()\n instance.toggleAllRowsExpanded()\n },\n }\n\n return propGetter(initialProps, userProps)\n },\n getIsAllRowsExpanded: () => {\n const expanded = instance.getState().expanded\n\n // If expanded is true, save some cycles and return true\n if (expanded === true) {\n return true\n }\n\n // If any row is not expanded, return false\n if (\n Object.keys(instance.getRowsById()).some(\n id => !instance.getIsRowExpanded(id)\n )\n ) {\n return false\n }\n\n // They must all be expanded :shrug:\n return true\n },\n getExpandedDepth: () => {\n let maxDepth = 0\n\n const rowIds =\n instance.getState().expanded === true\n ? Object.keys(instance.getRowsById())\n : Object.keys(instance.getState().expanded)\n\n rowIds.forEach(id => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n },\n getExpandedRowModel: memo(\n () => [\n instance.getState().expanded,\n instance.getGroupedRowModel(),\n instance.options.expandRowsFn,\n instance.options.paginateExpandedRows,\n ],\n (expanded, rowModel, expandRowsFn, paginateExpandedRows) => {\n if (\n !expandRowsFn ||\n // Do not expand if rows are not included in pagination\n !paginateExpandedRows ||\n !Object.keys(expanded ?? {}).length\n ) {\n return rowModel\n }\n\n if (process.env.NODE_ENV !== 'production' && instance.options.debug)\n console.info('Expanding...')\n\n return expandRowsFn(instance, expanded, rowModel)\n },\n 'getExpandedRowModel',\n instance.options.debug\n ),\n\n getPreExpandedRows: () => instance.getGroupedRowModel().rows,\n getPreExpandedFlatRows: () => instance.getGroupedRowModel().flatRows,\n getPreExpandedRowsById: () => instance.getGroupedRowModel().rowsById,\n getExpandedRows: () => instance.getExpandedRowModel().rows,\n getExpandedFlatRows: () => instance.getExpandedRowModel().flatRows,\n getExpandedRowsById: () => instance.getExpandedRowModel().rowsById,\n }\n}\n\nexport function createRow<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ExpandedRow {\n return {\n toggleExpanded: expanded =>\n void instance.toggleRowExpanded(row.id, expanded),\n getIsExpanded: () => instance.getIsRowExpanded(row.id),\n getCanExpand: () => row.subRows && !!row.subRows.length,\n getToggleExpandedProps: userProps => {\n const initialProps: ToggleExpandedProps = {\n title: 'Toggle Row Expanded',\n onClick: (e: MouseEvent | TouchEvent) => {\n e.stopPropagation()\n instance.toggleRowExpanded(row.id)\n },\n }\n return propGetter(initialProps, userProps)\n },\n }\n}\n"],"names":["getInitialState","expanded","getDefaultOptions","instance","onExpandedChange","makeStateUpdater","autoResetExpanded","getIsRowExpanded","row","original","expandSubRows","paginateExpandedRows","getInstance","setExpanded","updater","options","functionalUpdate","getState","toggleRowExpanded","rowId","old","exists","oldExpanded","Object","keys","getRowsById","forEach","rest","toggleAllRowsExpanded","getIsAllRowsExpanded","resetExpanded","initialState","getRow","process","env","NODE_ENV","console","warn","Error","getRowCanExpand","enableExpanded","defaultCanExpand","subRows","length","getToggleExpandedProps","userProps","canExpand","initialProps","title","undefined","onClick","e","persist","propGetter","getToggleAllRowsExpandedProps","some","id","getExpandedDepth","maxDepth","rowIds","splitId","split","Math","max","getExpandedRowModel","memo","getGroupedRowModel","expandRowsFn","rowModel","debug","info","getPreExpandedRows","rows","getPreExpandedFlatRows","flatRows","getPreExpandedRowsById","rowsById","getExpandedRows","getExpandedFlatRows","getExpandedRowsById","createRow","toggleExpanded","getIsExpanded","getCanExpand","stopPropagation"],"mappings":"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"}
1
+ {"version":3,"file":"Expanding.js","sources":["../../../src/features/Expanding.ts"],"sourcesContent":["import { MouseEvent, TouchEvent } from 'react'\nimport { RowModel } from '..'\nimport {\n Getter,\n OnChangeFn,\n PropGetterValue,\n ReactTable,\n Row,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\nexport type ExpandedStateList = Record<string, boolean>\nexport type ExpandedState = true | Record<string, boolean>\nexport type ExpandedTableState = {\n expanded: ExpandedState\n}\n\nexport type ExpandedRow = {\n toggleExpanded: (expanded?: boolean) => void\n getIsExpanded: () => boolean\n getCanExpand: () => boolean\n getToggleExpandedProps: <TGetter extends Getter<ToggleExpandedProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleExpandedProps, TGetter>\n}\n\nexport type ExpandedOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n onExpandedChange?: OnChangeFn<ExpandedState>\n autoResetExpanded?: boolean\n enableExpanded?: boolean\n expandRowsFn?: (\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 expandSubRows?: boolean\n defaultCanExpand?: boolean\n getIsRowExpanded?: (\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => boolean\n getRowCanExpand?: (\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => boolean\n paginateExpandedRows?: boolean\n}\n\nexport type ToggleExpandedProps = {\n title?: string\n onClick?: (event: MouseEvent | TouchEvent) => void\n}\n\nexport type ExpandedInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n _notifyExpandedReset: () => void\n setExpanded: (updater: Updater<ExpandedState>) => void\n toggleRowExpanded: (rowId: string, expanded?: boolean) => void\n toggleAllRowsExpanded: (expanded?: boolean) => void\n resetExpanded: () => void\n getRowCanExpand: (rowId: string) => boolean\n getIsRowExpanded: (rowId: string) => boolean\n getToggleExpandedProps: <TGetter extends Getter<ToggleExpandedProps>>(\n rowId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleExpandedProps, TGetter>\n getToggleAllRowsExpandedProps: <TGetter extends Getter<ToggleExpandedProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleExpandedProps, TGetter>\n getIsAllRowsExpanded: () => boolean\n getExpandedDepth: () => number\n getExpandedRowModel: () => RowModel<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n getPreExpandedRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPreExpandedFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getPreExpandedRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n getExpandedRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getExpandedFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getExpandedRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n}\n\n//\n\nexport function getInitialState(): ExpandedTableState {\n return {\n expanded: {},\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): ExpandedOptions<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n onExpandedChange: makeStateUpdater('expanded', instance),\n autoResetExpanded: true,\n getIsRowExpanded: row => !!(row?.original as { expanded?: any }).expanded,\n expandSubRows: true,\n paginateExpandedRows: true,\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): ExpandedInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n let registered = false\n\n return {\n _notifyExpandedReset: () => {\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.autoResetExpanded\n ) {\n instance.resetExpanded()\n }\n },\n setExpanded: updater =>\n instance.options.onExpandedChange?.(\n updater,\n functionalUpdate(updater, instance.getState().expanded)\n ),\n toggleRowExpanded: (rowId, expanded) => {\n if (!rowId) return\n\n instance.setExpanded((old = {}) => {\n const exists = old === true ? true : !!old?.[rowId]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(instance.getRowsById()).forEach(rowId => {\n oldExpanded[rowId] = true\n })\n } else {\n oldExpanded = old\n }\n\n expanded = expanded ?? !exists\n\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [rowId]: true,\n }\n }\n\n if (exists && !expanded) {\n const { [rowId]: _, ...rest } = oldExpanded\n return rest\n }\n\n return old\n })\n },\n toggleAllRowsExpanded: expanded => {\n if (expanded ?? !instance.getIsAllRowsExpanded()) {\n instance.setExpanded(true)\n } else {\n instance.setExpanded({})\n }\n },\n resetExpanded: () => {\n instance.setExpanded(instance.options?.initialState?.expanded ?? {})\n },\n getIsRowExpanded: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `[ReactTable] getIsRowExpanded: no row found with id ${rowId}`\n )\n }\n throw new Error()\n }\n\n const expanded = instance.getState().expanded\n\n return !!(\n instance.options.getIsRowExpanded?.(row) ??\n (expanded || expanded?.[rowId])\n )\n },\n getRowCanExpand: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `[ReactTable] getRowCanExpand: no row found with id ${rowId}`\n )\n }\n throw new Error()\n }\n\n return (\n instance.options.getRowCanExpand?.(row) ??\n instance.options.enableExpanded ??\n instance.options.defaultCanExpand ??\n !!row.subRows?.length\n )\n },\n getToggleExpandedProps: (rowId, userProps) => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n return\n }\n\n const canExpand = instance.getRowCanExpand(rowId)\n\n const initialProps: ToggleExpandedProps = {\n title: canExpand ? 'Toggle Expanded' : undefined,\n onClick: canExpand\n ? (e: MouseEvent | TouchEvent) => {\n e.persist()\n instance.toggleRowExpanded(rowId)\n }\n : undefined,\n }\n\n return propGetter(initialProps, userProps)\n },\n getToggleAllRowsExpandedProps: userProps => {\n const initialProps: ToggleExpandedProps = {\n title: 'Toggle All Expanded',\n onClick: (e: MouseEvent | TouchEvent) => {\n e.persist()\n instance.toggleAllRowsExpanded()\n },\n }\n\n return propGetter(initialProps, userProps)\n },\n getIsAllRowsExpanded: () => {\n const expanded = instance.getState().expanded\n\n // If expanded is true, save some cycles and return true\n if (expanded === true) {\n return true\n }\n\n // If any row is not expanded, return false\n if (\n Object.keys(instance.getRowsById()).some(\n id => !instance.getIsRowExpanded(id)\n )\n ) {\n return false\n }\n\n // They must all be expanded :shrug:\n return true\n },\n getExpandedDepth: () => {\n let maxDepth = 0\n\n const rowIds =\n instance.getState().expanded === true\n ? Object.keys(instance.getRowsById())\n : Object.keys(instance.getState().expanded)\n\n rowIds.forEach(id => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n },\n getExpandedRowModel: memo(\n () => [\n instance.getState().expanded,\n instance.getGroupedRowModel(),\n instance.options.expandRowsFn,\n instance.options.paginateExpandedRows,\n ],\n (expanded, rowModel, expandRowsFn, paginateExpandedRows) => {\n if (\n !expandRowsFn ||\n // Do not expand if rows are not included in pagination\n !paginateExpandedRows ||\n !Object.keys(expanded ?? {}).length\n ) {\n return rowModel\n }\n\n if (process.env.NODE_ENV !== 'production' && instance.options.debug)\n console.info('Expanding...')\n\n return expandRowsFn(instance, rowModel)\n },\n {\n key: 'getExpandedRowModel',\n debug: instance.options.debug,\n onChange: () => instance._notifyPageIndexReset(),\n }\n ),\n\n getPreExpandedRows: () => instance.getGroupedRowModel().rows,\n getPreExpandedFlatRows: () => instance.getGroupedRowModel().flatRows,\n getPreExpandedRowsById: () => instance.getGroupedRowModel().rowsById,\n getExpandedRows: () => instance.getExpandedRowModel().rows,\n getExpandedFlatRows: () => instance.getExpandedRowModel().flatRows,\n getExpandedRowsById: () => instance.getExpandedRowModel().rowsById,\n }\n}\n\nexport function createRow<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): ExpandedRow {\n return {\n toggleExpanded: expanded =>\n void instance.toggleRowExpanded(row.id, expanded),\n getIsExpanded: () => instance.getIsRowExpanded(row.id),\n getCanExpand: () => row.subRows && !!row.subRows.length,\n getToggleExpandedProps: userProps => {\n const initialProps: ToggleExpandedProps = {\n title: 'Toggle Row Expanded',\n onClick: (e: MouseEvent | TouchEvent) => {\n e.stopPropagation()\n instance.toggleRowExpanded(row.id)\n },\n }\n return propGetter(initialProps, userProps)\n },\n }\n}\n"],"names":["getInitialState","expanded","getDefaultOptions","instance","onExpandedChange","makeStateUpdater","autoResetExpanded","getIsRowExpanded","row","original","expandSubRows","paginateExpandedRows","getInstance","registered","_notifyExpandedReset","options","autoResetAll","resetExpanded","setExpanded","updater","functionalUpdate","getState","toggleRowExpanded","rowId","old","exists","oldExpanded","Object","keys","getRowsById","forEach","rest","toggleAllRowsExpanded","getIsAllRowsExpanded","initialState","getRow","process","env","NODE_ENV","console","warn","Error","getRowCanExpand","enableExpanded","defaultCanExpand","subRows","length","getToggleExpandedProps","userProps","canExpand","initialProps","title","undefined","onClick","e","persist","propGetter","getToggleAllRowsExpandedProps","some","id","getExpandedDepth","maxDepth","rowIds","splitId","split","Math","max","getExpandedRowModel","memo","getGroupedRowModel","expandRowsFn","rowModel","debug","info","key","onChange","_notifyPageIndexReset","getPreExpandedRows","rows","getPreExpandedFlatRows","flatRows","getPreExpandedRowsById","rowsById","getExpandedRows","getExpandedFlatRows","getExpandedRowsById","createRow","toggleExpanded","getIsExpanded","getCanExpand","stopPropagation"],"mappings":"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"}
@@ -80,7 +80,10 @@ function createColumn(column, instance) {
80
80
  preFilteredUniqueValues: preFilteredUniqueValues,
81
81
  preFilteredMinMaxValues: preFilteredMinMaxValues
82
82
  };
83
- }, 'column.getFacetInfo', instance.options.debug);
83
+ }, {
84
+ key: 'column.getFacetInfo',
85
+ debug: instance.options.debug
86
+ });
84
87
  return {
85
88
  filterType: column.filterType,
86
89
  getCanColumnFilter: function getCanColumnFilter() {
@@ -113,7 +116,30 @@ function createColumn(column, instance) {
113
116
  };
114
117
  }
115
118
  function getInstance(instance) {
119
+ var registered = false;
116
120
  return {
121
+ _notifyFiltersReset: function _notifyFiltersReset() {
122
+ if (!registered) {
123
+ registered = true;
124
+ return;
125
+ }
126
+
127
+ if (instance.options.autoResetAll === false) {
128
+ return;
129
+ }
130
+
131
+ if (instance.options.autoResetAll === true) {
132
+ instance.resetSorting();
133
+ } else {
134
+ if (instance.options.autoResetColumnFilters) {
135
+ instance.resetColumnFilters();
136
+ }
137
+
138
+ if (instance.options.autoResetGlobalFilter) {
139
+ instance.resetGlobalFilter();
140
+ }
141
+ }
142
+ },
117
143
  getColumnAutoFilterFn: function getColumnAutoFilterFn(columnId) {
118
144
  var firstRow = instance.getCoreFlatRows()[0];
119
145
  var value = firstRow == null ? void 0 : firstRow.values[columnId];
@@ -294,7 +320,7 @@ function getInstance(instance) {
294
320
  }
295
321
 
296
322
  if (process.env.NODE_ENV !== 'production' && instance.options.debug) console.info('Column Filtering...');
297
- return columnFiltersFn(instance, columnFilters, rowModel);
323
+ return columnFiltersFn(instance, rowModel);
298
324
  }(); // Now that each filtered column has it's partially filtered rows,
299
325
  // lets assign the final filtered rows to all of the other columns
300
326
 
@@ -314,7 +340,24 @@ function getInstance(instance) {
314
340
  };
315
341
  });
316
342
  return columnFilteredRowModel;
317
- }, 'getColumnFilteredRowModel', instance.options.debug),
343
+ }, {
344
+ key: 'getColumnFilteredRowModel',
345
+ debug: instance.options.debug
346
+ }),
347
+ // These might be easier to remember than "column" filtered rows
348
+ getPreFilteredRowModel: function getPreFilteredRowModel() {
349
+ return instance.getCoreRowModel();
350
+ },
351
+ getPreFilteredRows: function getPreFilteredRows() {
352
+ return instance.getCoreRowModel().rows;
353
+ },
354
+ getPreFilteredFlatRows: function getPreFilteredFlatRows() {
355
+ return instance.getCoreRowModel().flatRows;
356
+ },
357
+ getPreFilteredRowsById: function getPreFilteredRowsById() {
358
+ return instance.getCoreRowModel().rowsById;
359
+ },
360
+ // Pre Column Filter
318
361
  getPreColumnFilteredRows: function getPreColumnFilteredRows() {
319
362
  return instance.getCoreRowModel().rows;
320
363
  },
@@ -342,7 +385,7 @@ function getInstance(instance) {
342
385
  }
343
386
 
344
387
  if (process.env.NODE_ENV !== 'production' && instance.options.debug) console.info('Global Filtering...');
345
- return globalFiltersFn(instance, globalFilterValue, columnFilteredRowModel);
388
+ return globalFiltersFn(instance, columnFilteredRowModel);
346
389
  }(); // Now that each filtered column has it's partially filtered rows,
347
390
  // lets assign the final filtered rows to all of the other columns
348
391
 
@@ -362,7 +405,13 @@ function getInstance(instance) {
362
405
  };
363
406
  });
364
407
  return globalFilteredRowModel;
365
- }, 'getGlobalFilteredRowModel', instance.options.debug),
408
+ }, {
409
+ key: 'getGlobalFilteredRowModel',
410
+ debug: instance.options.debug,
411
+ onChange: function onChange() {
412
+ return instance._notifySortingReset();
413
+ }
414
+ }),
366
415
  getPreGlobalFilteredRows: function getPreGlobalFilteredRows() {
367
416
  return instance.getColumnFilteredRowModel().rows;
368
417
  },