@tanstack/table-core 8.9.3 → 8.9.7

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 (36) hide show
  1. package/build/lib/core/row.js +1 -1
  2. package/build/lib/core/row.js.map +1 -1
  3. package/build/lib/core/table.js +2 -2
  4. package/build/lib/core/table.js.map +1 -1
  5. package/build/lib/features/ColumnSizing.js +1 -1
  6. package/build/lib/features/ColumnSizing.js.map +1 -1
  7. package/build/lib/features/Expanding.js +1 -1
  8. package/build/lib/features/Expanding.js.map +1 -1
  9. package/build/lib/features/Filters.js +8 -8
  10. package/build/lib/features/Filters.js.map +1 -1
  11. package/build/lib/features/Grouping.js +1 -1
  12. package/build/lib/features/Grouping.js.map +1 -1
  13. package/build/lib/features/Pagination.js +4 -4
  14. package/build/lib/features/Pagination.js.map +1 -1
  15. package/build/lib/features/Pinning.js +2 -2
  16. package/build/lib/features/Pinning.js.map +1 -1
  17. package/build/lib/features/Sorting.js +2 -2
  18. package/build/lib/features/Sorting.js.map +1 -1
  19. package/build/lib/features/Visibility.js +1 -1
  20. package/build/lib/features/Visibility.js.map +1 -1
  21. package/build/lib/filterFns.js +6 -6
  22. package/build/lib/filterFns.js.map +1 -1
  23. package/build/lib/index.esm.js +33 -33
  24. package/build/lib/index.esm.js.map +1 -1
  25. package/build/lib/index.mjs +33 -33
  26. package/build/lib/index.mjs.map +1 -1
  27. package/build/lib/utils/filterRowsUtils.js +3 -3
  28. package/build/lib/utils/filterRowsUtils.js.map +1 -1
  29. package/build/lib/utils.js +1 -1
  30. package/build/lib/utils.js.map +1 -1
  31. package/build/umd/index.development.js +33 -33
  32. package/build/umd/index.development.js.map +1 -1
  33. package/build/umd/index.production.js +1 -1
  34. package/build/umd/index.production.js.map +1 -1
  35. package/package.json +1 -1
  36. package/src/utils/filterRowsUtils.ts +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"Grouping.js","sources":["../../../src/features/Grouping.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { BuiltInAggregationFn, aggregationFns } from '../aggregationFns'\nimport { TableFeature } from '../core/table'\nimport {\n Cell,\n Column,\n OnChangeFn,\n Table,\n Row,\n Updater,\n ColumnDefTemplate,\n RowData,\n AggregationFns,\n} from '../types'\nimport { isFunction, makeStateUpdater } from '../utils'\n\nexport type GroupingState = string[]\n\nexport interface GroupingTableState {\n grouping: GroupingState\n}\n\nexport type AggregationFn<TData extends RowData> = (\n columnId: string,\n leafRows: Row<TData>[],\n childRows: Row<TData>[]\n) => any\n\nexport type CustomAggregationFns = Record<string, AggregationFn<any>>\n\nexport type AggregationFnOption<TData extends RowData> =\n | 'auto'\n | keyof AggregationFns\n | BuiltInAggregationFn\n | AggregationFn<TData>\n\nexport interface GroupingColumnDef<TData extends RowData, TValue> {\n aggregationFn?: AggregationFnOption<TData>\n aggregatedCell?: ColumnDefTemplate<\n ReturnType<Cell<TData, TValue>['getContext']>\n >\n enableGrouping?: boolean\n getGroupingValue?: (row: TData) => any\n}\n\nexport interface GroupingColumn<TData extends RowData> {\n getCanGroup: () => boolean\n getIsGrouped: () => boolean\n getGroupedIndex: () => number\n toggleGrouping: () => void\n getToggleGroupingHandler: () => () => void\n getAutoAggregationFn: () => AggregationFn<TData> | undefined\n getAggregationFn: () => AggregationFn<TData> | undefined\n}\n\nexport interface GroupingRow {\n groupingColumnId?: string\n groupingValue?: unknown\n getIsGrouped: () => boolean\n getGroupingValue: (columnId: string) => unknown\n _groupingValuesCache: Record<string, any>\n}\n\nexport interface GroupingCell {\n getIsGrouped: () => boolean\n getIsPlaceholder: () => boolean\n getIsAggregated: () => boolean\n}\n\nexport interface ColumnDefaultOptions {\n // Column\n onGroupingChange: OnChangeFn<GroupingState>\n enableGrouping: boolean\n}\n\ninterface GroupingOptionsBase {\n manualGrouping?: boolean\n onGroupingChange?: OnChangeFn<GroupingState>\n enableGrouping?: boolean\n getGroupedRowModel?: (table: Table<any>) => () => RowModel<any>\n groupedColumnMode?: false | 'reorder' | 'remove'\n}\n\ntype ResolvedAggregationFns = keyof AggregationFns extends never\n ? {\n aggregationFns?: Record<string, AggregationFn<any>>\n }\n : {\n aggregationFns: Record<keyof AggregationFns, AggregationFn<any>>\n }\n\nexport interface GroupingOptions\n extends GroupingOptionsBase,\n ResolvedAggregationFns {}\n\nexport type GroupingColumnMode = false | 'reorder' | 'remove'\n\nexport interface GroupingInstance<TData extends RowData> {\n setGrouping: (updater: Updater<GroupingState>) => void\n resetGrouping: (defaultState?: boolean) => void\n getPreGroupedRowModel: () => RowModel<TData>\n getGroupedRowModel: () => RowModel<TData>\n _getGroupedRowModel?: () => RowModel<TData>\n}\n\n//\n\nexport const Grouping: TableFeature = {\n getDefaultColumnDef: <TData extends RowData>(): GroupingColumnDef<\n TData,\n unknown\n > => {\n return {\n aggregatedCell: props => (props.getValue() as any)?.toString?.() ?? null,\n aggregationFn: 'auto',\n }\n },\n\n getInitialState: (state): GroupingTableState => {\n return {\n grouping: [],\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): GroupingOptions => {\n return {\n onGroupingChange: makeStateUpdater('grouping', table),\n groupedColumnMode: 'reorder',\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): GroupingColumn<TData> => {\n return {\n toggleGrouping: () => {\n table.setGrouping(old => {\n // Find any existing grouping for this column\n if (old?.includes(column.id)) {\n return old.filter(d => d !== column.id)\n }\n\n return [...(old ?? []), column.id]\n })\n },\n\n getCanGroup: () => {\n return (\n column.columnDef.enableGrouping ??\n true ??\n table.options.enableGrouping ??\n true ??\n !!column.accessorFn\n )\n },\n\n getIsGrouped: () => {\n return table.getState().grouping?.includes(column.id)\n },\n\n getGroupedIndex: () => table.getState().grouping?.indexOf(column.id),\n\n getToggleGroupingHandler: () => {\n const canGroup = column.getCanGroup()\n\n return () => {\n if (!canGroup) return\n column.toggleGrouping()\n }\n },\n getAutoAggregationFn: () => {\n const firstRow = table.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'number') {\n return aggregationFns.sum\n }\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent\n }\n },\n getAggregationFn: () => {\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.columnDef.aggregationFn)\n ? column.columnDef.aggregationFn\n : column.columnDef.aggregationFn === 'auto'\n ? column.getAutoAggregationFn()\n : table.options.aggregationFns?.[\n column.columnDef.aggregationFn as string\n ] ??\n aggregationFns[\n column.columnDef.aggregationFn as BuiltInAggregationFn\n ]\n },\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): GroupingInstance<TData> => {\n return {\n setGrouping: updater => table.options.onGroupingChange?.(updater),\n\n resetGrouping: defaultState => {\n table.setGrouping(\n defaultState ? [] : table.initialState?.grouping ?? []\n )\n },\n\n getPreGroupedRowModel: () => table.getFilteredRowModel(),\n getGroupedRowModel: () => {\n if (!table._getGroupedRowModel && table.options.getGroupedRowModel) {\n table._getGroupedRowModel = table.options.getGroupedRowModel(table)\n }\n\n if (table.options.manualGrouping || !table._getGroupedRowModel) {\n return table.getPreGroupedRowModel()\n }\n\n return table._getGroupedRowModel()\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): GroupingRow => {\n return {\n getIsGrouped: () => !!row.groupingColumnId,\n getGroupingValue: columnId => {\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId]\n }\n\n const column = table.getColumn(columnId)\n\n if (!column?.columnDef.getGroupingValue) {\n return row.getValue(columnId)\n }\n\n row._groupingValuesCache[columnId] = column.columnDef.getGroupingValue(\n row.original\n )\n\n return row._groupingValuesCache[columnId]\n },\n _groupingValuesCache: {},\n }\n },\n\n createCell: <TData extends RowData, TValue>(\n cell: Cell<TData, TValue>,\n column: Column<TData, TValue>,\n row: Row<TData>,\n table: Table<TData>\n ): GroupingCell => {\n const getRenderValue = () =>\n cell.getValue() ?? table.options.renderFallbackValue\n\n return {\n getIsGrouped: () =>\n column.getIsGrouped() && column.id === row.groupingColumnId,\n getIsPlaceholder: () => !cell.getIsGrouped() && column.getIsGrouped(),\n getIsAggregated: () =>\n !cell.getIsGrouped() &&\n !cell.getIsPlaceholder() &&\n !!row.subRows?.length,\n }\n },\n}\n\nexport function orderColumns<TData extends RowData>(\n leafColumns: Column<TData, unknown>[],\n grouping: string[],\n groupedColumnMode?: GroupingColumnMode\n) {\n if (!grouping?.length || !groupedColumnMode) {\n return leafColumns\n }\n\n const nonGroupingColumns = leafColumns.filter(\n col => !grouping.includes(col.id)\n )\n\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns\n }\n\n const groupingColumns = grouping\n .map(g => leafColumns.find(col => col.id === g)!)\n .filter(Boolean)\n\n return [...groupingColumns, ...nonGroupingColumns]\n}\n"],"names":["Grouping","getDefaultColumnDef","aggregatedCell","props","_toString","_props$getValue","getValue","toString","aggregationFn","getInitialState","state","grouping","getDefaultOptions","table","onGroupingChange","makeStateUpdater","groupedColumnMode","createColumn","column","toggleGrouping","setGrouping","old","includes","id","filter","d","getCanGroup","_ref","_ref2","_ref3","_column$columnDef$ena","columnDef","enableGrouping","options","accessorFn","getIsGrouped","_table$getState$group","getState","getGroupedIndex","_table$getState$group2","indexOf","getToggleGroupingHandler","canGroup","getAutoAggregationFn","firstRow","getCoreRowModel","flatRows","value","aggregationFns","sum","Object","prototype","call","extent","getAggregationFn","_table$options$aggreg","_table$options$aggreg2","Error","isFunction","createTable","updater","resetGrouping","defaultState","_table$initialState$g","_table$initialState","initialState","getPreGroupedRowModel","getFilteredRowModel","getGroupedRowModel","_getGroupedRowModel","manualGrouping","createRow","row","groupingColumnId","getGroupingValue","columnId","_groupingValuesCache","hasOwnProperty","getColumn","original","createCell","cell","getIsPlaceholder","getIsAggregated","_row$subRows","subRows","length","orderColumns","leafColumns","nonGroupingColumns","col","groupingColumns","map","g","find","Boolean"],"mappings":"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"}
1
+ {"version":3,"file":"Grouping.js","sources":["../../../src/features/Grouping.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { BuiltInAggregationFn, aggregationFns } from '../aggregationFns'\nimport { TableFeature } from '../core/table'\nimport {\n Cell,\n Column,\n OnChangeFn,\n Table,\n Row,\n Updater,\n ColumnDefTemplate,\n RowData,\n AggregationFns,\n} from '../types'\nimport { isFunction, makeStateUpdater } from '../utils'\n\nexport type GroupingState = string[]\n\nexport interface GroupingTableState {\n grouping: GroupingState\n}\n\nexport type AggregationFn<TData extends RowData> = (\n columnId: string,\n leafRows: Row<TData>[],\n childRows: Row<TData>[]\n) => any\n\nexport type CustomAggregationFns = Record<string, AggregationFn<any>>\n\nexport type AggregationFnOption<TData extends RowData> =\n | 'auto'\n | keyof AggregationFns\n | BuiltInAggregationFn\n | AggregationFn<TData>\n\nexport interface GroupingColumnDef<TData extends RowData, TValue> {\n aggregationFn?: AggregationFnOption<TData>\n aggregatedCell?: ColumnDefTemplate<\n ReturnType<Cell<TData, TValue>['getContext']>\n >\n enableGrouping?: boolean\n getGroupingValue?: (row: TData) => any\n}\n\nexport interface GroupingColumn<TData extends RowData> {\n getCanGroup: () => boolean\n getIsGrouped: () => boolean\n getGroupedIndex: () => number\n toggleGrouping: () => void\n getToggleGroupingHandler: () => () => void\n getAutoAggregationFn: () => AggregationFn<TData> | undefined\n getAggregationFn: () => AggregationFn<TData> | undefined\n}\n\nexport interface GroupingRow {\n groupingColumnId?: string\n groupingValue?: unknown\n getIsGrouped: () => boolean\n getGroupingValue: (columnId: string) => unknown\n _groupingValuesCache: Record<string, any>\n}\n\nexport interface GroupingCell {\n getIsGrouped: () => boolean\n getIsPlaceholder: () => boolean\n getIsAggregated: () => boolean\n}\n\nexport interface ColumnDefaultOptions {\n // Column\n onGroupingChange: OnChangeFn<GroupingState>\n enableGrouping: boolean\n}\n\ninterface GroupingOptionsBase {\n manualGrouping?: boolean\n onGroupingChange?: OnChangeFn<GroupingState>\n enableGrouping?: boolean\n getGroupedRowModel?: (table: Table<any>) => () => RowModel<any>\n groupedColumnMode?: false | 'reorder' | 'remove'\n}\n\ntype ResolvedAggregationFns = keyof AggregationFns extends never\n ? {\n aggregationFns?: Record<string, AggregationFn<any>>\n }\n : {\n aggregationFns: Record<keyof AggregationFns, AggregationFn<any>>\n }\n\nexport interface GroupingOptions\n extends GroupingOptionsBase,\n ResolvedAggregationFns {}\n\nexport type GroupingColumnMode = false | 'reorder' | 'remove'\n\nexport interface GroupingInstance<TData extends RowData> {\n setGrouping: (updater: Updater<GroupingState>) => void\n resetGrouping: (defaultState?: boolean) => void\n getPreGroupedRowModel: () => RowModel<TData>\n getGroupedRowModel: () => RowModel<TData>\n _getGroupedRowModel?: () => RowModel<TData>\n}\n\n//\n\nexport const Grouping: TableFeature = {\n getDefaultColumnDef: <TData extends RowData>(): GroupingColumnDef<\n TData,\n unknown\n > => {\n return {\n aggregatedCell: props => (props.getValue() as any)?.toString?.() ?? null,\n aggregationFn: 'auto',\n }\n },\n\n getInitialState: (state): GroupingTableState => {\n return {\n grouping: [],\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): GroupingOptions => {\n return {\n onGroupingChange: makeStateUpdater('grouping', table),\n groupedColumnMode: 'reorder',\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): GroupingColumn<TData> => {\n return {\n toggleGrouping: () => {\n table.setGrouping(old => {\n // Find any existing grouping for this column\n if (old?.includes(column.id)) {\n return old.filter(d => d !== column.id)\n }\n\n return [...(old ?? []), column.id]\n })\n },\n\n getCanGroup: () => {\n return (\n column.columnDef.enableGrouping ??\n true ??\n table.options.enableGrouping ??\n true ??\n !!column.accessorFn\n )\n },\n\n getIsGrouped: () => {\n return table.getState().grouping?.includes(column.id)\n },\n\n getGroupedIndex: () => table.getState().grouping?.indexOf(column.id),\n\n getToggleGroupingHandler: () => {\n const canGroup = column.getCanGroup()\n\n return () => {\n if (!canGroup) return\n column.toggleGrouping()\n }\n },\n getAutoAggregationFn: () => {\n const firstRow = table.getCoreRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'number') {\n return aggregationFns.sum\n }\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent\n }\n },\n getAggregationFn: () => {\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.columnDef.aggregationFn)\n ? column.columnDef.aggregationFn\n : column.columnDef.aggregationFn === 'auto'\n ? column.getAutoAggregationFn()\n : table.options.aggregationFns?.[\n column.columnDef.aggregationFn as string\n ] ??\n aggregationFns[\n column.columnDef.aggregationFn as BuiltInAggregationFn\n ]\n },\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): GroupingInstance<TData> => {\n return {\n setGrouping: updater => table.options.onGroupingChange?.(updater),\n\n resetGrouping: defaultState => {\n table.setGrouping(\n defaultState ? [] : table.initialState?.grouping ?? []\n )\n },\n\n getPreGroupedRowModel: () => table.getFilteredRowModel(),\n getGroupedRowModel: () => {\n if (!table._getGroupedRowModel && table.options.getGroupedRowModel) {\n table._getGroupedRowModel = table.options.getGroupedRowModel(table)\n }\n\n if (table.options.manualGrouping || !table._getGroupedRowModel) {\n return table.getPreGroupedRowModel()\n }\n\n return table._getGroupedRowModel()\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): GroupingRow => {\n return {\n getIsGrouped: () => !!row.groupingColumnId,\n getGroupingValue: columnId => {\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId]\n }\n\n const column = table.getColumn(columnId)\n\n if (!column?.columnDef.getGroupingValue) {\n return row.getValue(columnId)\n }\n\n row._groupingValuesCache[columnId] = column.columnDef.getGroupingValue(\n row.original\n )\n\n return row._groupingValuesCache[columnId]\n },\n _groupingValuesCache: {},\n }\n },\n\n createCell: <TData extends RowData, TValue>(\n cell: Cell<TData, TValue>,\n column: Column<TData, TValue>,\n row: Row<TData>,\n table: Table<TData>\n ): GroupingCell => {\n const getRenderValue = () =>\n cell.getValue() ?? table.options.renderFallbackValue\n\n return {\n getIsGrouped: () =>\n column.getIsGrouped() && column.id === row.groupingColumnId,\n getIsPlaceholder: () => !cell.getIsGrouped() && column.getIsGrouped(),\n getIsAggregated: () =>\n !cell.getIsGrouped() &&\n !cell.getIsPlaceholder() &&\n !!row.subRows?.length,\n }\n },\n}\n\nexport function orderColumns<TData extends RowData>(\n leafColumns: Column<TData, unknown>[],\n grouping: string[],\n groupedColumnMode?: GroupingColumnMode\n) {\n if (!grouping?.length || !groupedColumnMode) {\n return leafColumns\n }\n\n const nonGroupingColumns = leafColumns.filter(\n col => !grouping.includes(col.id)\n )\n\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns\n }\n\n const groupingColumns = grouping\n .map(g => leafColumns.find(col => col.id === g)!)\n .filter(Boolean)\n\n return [...groupingColumns, ...nonGroupingColumns]\n}\n"],"names":["Grouping","getDefaultColumnDef","aggregatedCell","props","_toString","_props$getValue","getValue","toString","aggregationFn","getInitialState","state","grouping","getDefaultOptions","table","onGroupingChange","makeStateUpdater","groupedColumnMode","createColumn","column","toggleGrouping","setGrouping","old","includes","id","filter","d","getCanGroup","_ref","_ref2","_ref3","_column$columnDef$ena","columnDef","enableGrouping","options","accessorFn","getIsGrouped","_table$getState$group","getState","getGroupedIndex","_table$getState$group2","indexOf","getToggleGroupingHandler","canGroup","getAutoAggregationFn","firstRow","getCoreRowModel","flatRows","value","aggregationFns","sum","Object","prototype","call","extent","getAggregationFn","_table$options$aggreg","_table$options$aggreg2","Error","isFunction","createTable","updater","resetGrouping","defaultState","_table$initialState$g","_table$initialState","initialState","getPreGroupedRowModel","getFilteredRowModel","getGroupedRowModel","_getGroupedRowModel","manualGrouping","createRow","row","groupingColumnId","getGroupingValue","columnId","_groupingValuesCache","hasOwnProperty","getColumn","original","createCell","cell","getIsPlaceholder","getIsAggregated","_row$subRows","subRows","length","orderColumns","leafColumns","nonGroupingColumns","col","groupingColumns","map","g","find","Boolean"],"mappings":"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"}
@@ -81,12 +81,12 @@ const Pagination = {
81
81
  });
82
82
  },
83
83
  resetPageIndex: defaultState => {
84
- var _table$initialState$p2, _table$initialState, _table$initialState$p3;
85
- table.setPageIndex(defaultState ? defaultPageIndex : (_table$initialState$p2 = (_table$initialState = table.initialState) == null ? void 0 : (_table$initialState$p3 = _table$initialState.pagination) == null ? void 0 : _table$initialState$p3.pageIndex) != null ? _table$initialState$p2 : defaultPageIndex);
84
+ var _table$initialState$p2, _table$initialState;
85
+ table.setPageIndex(defaultState ? defaultPageIndex : (_table$initialState$p2 = (_table$initialState = table.initialState) == null || (_table$initialState = _table$initialState.pagination) == null ? void 0 : _table$initialState.pageIndex) != null ? _table$initialState$p2 : defaultPageIndex);
86
86
  },
87
87
  resetPageSize: defaultState => {
88
- var _table$initialState$p4, _table$initialState2, _table$initialState2$;
89
- table.setPageSize(defaultState ? defaultPageSize : (_table$initialState$p4 = (_table$initialState2 = table.initialState) == null ? void 0 : (_table$initialState2$ = _table$initialState2.pagination) == null ? void 0 : _table$initialState2$.pageSize) != null ? _table$initialState$p4 : defaultPageSize);
88
+ var _table$initialState$p3, _table$initialState2;
89
+ table.setPageSize(defaultState ? defaultPageSize : (_table$initialState$p3 = (_table$initialState2 = table.initialState) == null || (_table$initialState2 = _table$initialState2.pagination) == null ? void 0 : _table$initialState2.pageSize) != null ? _table$initialState$p3 : defaultPageSize);
90
90
  },
91
91
  setPageSize: updater => {
92
92
  table.setPagination(old => {
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.js","sources":["../../../src/features/Pagination.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, RowModel, Updater, RowData } from '../types'\nimport { functionalUpdate, makeStateUpdater, memo } from '../utils'\n\nexport interface PaginationState {\n pageIndex: number\n pageSize: number\n}\n\nexport interface PaginationTableState {\n pagination: PaginationState\n}\n\nexport interface PaginationInitialTableState {\n pagination?: Partial<PaginationState>\n}\n\nexport interface PaginationOptions {\n pageCount?: number\n manualPagination?: boolean\n onPaginationChange?: OnChangeFn<PaginationState>\n autoResetPageIndex?: boolean\n getPaginationRowModel?: (table: Table<any>) => () => RowModel<any>\n}\n\nexport interface PaginationDefaultOptions {\n onPaginationChange: OnChangeFn<PaginationState>\n}\n\nexport interface PaginationInstance<TData extends RowData> {\n _autoResetPageIndex: () => void\n setPagination: (updater: Updater<PaginationState>) => void\n resetPagination: (defaultState?: boolean) => void\n setPageIndex: (updater: Updater<number>) => void\n resetPageIndex: (defaultState?: boolean) => void\n setPageSize: (updater: Updater<number>) => void\n resetPageSize: (defaultState?: boolean) => void\n setPageCount: (updater: Updater<number>) => void\n getPageOptions: () => number[]\n getCanPreviousPage: () => boolean\n getCanNextPage: () => boolean\n previousPage: () => void\n nextPage: () => void\n getPrePaginationRowModel: () => RowModel<TData>\n getPaginationRowModel: () => RowModel<TData>\n _getPaginationRowModel?: () => RowModel<TData>\n getPageCount: () => number\n}\n\n//\n\nconst defaultPageIndex = 0\nconst defaultPageSize = 10\n\nconst getDefaultPaginationState = (): PaginationState => ({\n pageIndex: defaultPageIndex,\n pageSize: defaultPageSize,\n})\n\nexport const Pagination: TableFeature = {\n getInitialState: (state): PaginationTableState => {\n return {\n ...state,\n pagination: {\n ...getDefaultPaginationState(),\n ...state?.pagination,\n },\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): PaginationDefaultOptions => {\n return {\n onPaginationChange: makeStateUpdater('pagination', table),\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): PaginationInstance<TData> => {\n let registered = false\n let queued = false\n\n return {\n _autoResetPageIndex: () => {\n if (!registered) {\n table._queue(() => {\n registered = true\n })\n return\n }\n\n if (\n table.options.autoResetAll ??\n table.options.autoResetPageIndex ??\n !table.options.manualPagination\n ) {\n if (queued) return\n queued = true\n table._queue(() => {\n table.resetPageIndex()\n queued = false\n })\n }\n },\n setPagination: updater => {\n const safeUpdater: Updater<PaginationState> = old => {\n let newState = functionalUpdate(updater, old)\n\n return newState\n }\n\n return table.options.onPaginationChange?.(safeUpdater)\n },\n resetPagination: defaultState => {\n table.setPagination(\n defaultState\n ? getDefaultPaginationState()\n : table.initialState.pagination ?? getDefaultPaginationState()\n )\n },\n setPageIndex: updater => {\n table.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex)\n\n const maxPageIndex =\n typeof table.options.pageCount === 'undefined' ||\n table.options.pageCount === -1\n ? Number.MAX_SAFE_INTEGER\n : table.options.pageCount - 1\n\n pageIndex = Math.max(0, Math.min(pageIndex, maxPageIndex))\n\n return {\n ...old,\n pageIndex,\n }\n })\n },\n resetPageIndex: defaultState => {\n table.setPageIndex(\n defaultState\n ? defaultPageIndex\n : table.initialState?.pagination?.pageIndex ?? defaultPageIndex\n )\n },\n resetPageSize: defaultState => {\n table.setPageSize(\n defaultState\n ? defaultPageSize\n : table.initialState?.pagination?.pageSize ?? defaultPageSize\n )\n },\n setPageSize: updater => {\n table.setPagination(old => {\n const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize))\n const topRowIndex = old.pageSize * old.pageIndex!\n const pageIndex = Math.floor(topRowIndex / pageSize)\n\n return {\n ...old,\n pageIndex,\n pageSize,\n }\n })\n },\n setPageCount: updater =>\n table.setPagination(old => {\n let newPageCount = functionalUpdate(\n updater,\n table.options.pageCount ?? -1\n )\n\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount)\n }\n\n return {\n ...old,\n pageCount: newPageCount,\n }\n }),\n\n getPageOptions: memo(\n () => [table.getPageCount()],\n pageCount => {\n let pageOptions: number[] = []\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i)\n }\n return pageOptions\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getPageOptions',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n getCanPreviousPage: () => table.getState().pagination.pageIndex > 0,\n\n getCanNextPage: () => {\n const { pageIndex } = table.getState().pagination\n\n const pageCount = table.getPageCount()\n\n if (pageCount === -1) {\n return true\n }\n\n if (pageCount === 0) {\n return false\n }\n\n return pageIndex < pageCount - 1\n },\n\n previousPage: () => {\n return table.setPageIndex(old => old - 1)\n },\n\n nextPage: () => {\n return table.setPageIndex(old => {\n return old + 1\n })\n },\n\n getPrePaginationRowModel: () => table.getExpandedRowModel(),\n getPaginationRowModel: () => {\n if (\n !table._getPaginationRowModel &&\n table.options.getPaginationRowModel\n ) {\n table._getPaginationRowModel =\n table.options.getPaginationRowModel(table)\n }\n\n if (table.options.manualPagination || !table._getPaginationRowModel) {\n return table.getPrePaginationRowModel()\n }\n\n return table._getPaginationRowModel()\n },\n\n getPageCount: () => {\n return (\n table.options.pageCount ??\n Math.ceil(\n table.getPrePaginationRowModel().rows.length /\n table.getState().pagination.pageSize\n )\n )\n },\n }\n },\n}\n"],"names":["defaultPageIndex","defaultPageSize","getDefaultPaginationState","pageIndex","pageSize","Pagination","getInitialState","state","pagination","getDefaultOptions","table","onPaginationChange","makeStateUpdater","createTable","registered","queued","_autoResetPageIndex","_ref","_table$options$autoRe","_queue","options","autoResetAll","autoResetPageIndex","manualPagination","resetPageIndex","setPagination","updater","safeUpdater","old","newState","functionalUpdate","resetPagination","defaultState","_table$initialState$p","initialState","setPageIndex","maxPageIndex","pageCount","Number","MAX_SAFE_INTEGER","Math","max","min","_table$initialState$p2","_table$initialState","_table$initialState$p3","resetPageSize","_table$initialState$p4","_table$initialState2","_table$initialState2$","setPageSize","topRowIndex","floor","setPageCount","_table$options$pageCo","newPageCount","getPageOptions","memo","getPageCount","pageOptions","Array","fill","map","_","i","key","process","env","NODE_ENV","debug","_table$options$debugA","debugAll","debugTable","getCanPreviousPage","getState","getCanNextPage","previousPage","nextPage","getPrePaginationRowModel","getExpandedRowModel","getPaginationRowModel","_getPaginationRowModel","_table$options$pageCo2","ceil","rows","length"],"mappings":"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"}
1
+ {"version":3,"file":"Pagination.js","sources":["../../../src/features/Pagination.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, RowModel, Updater, RowData } from '../types'\nimport { functionalUpdate, makeStateUpdater, memo } from '../utils'\n\nexport interface PaginationState {\n pageIndex: number\n pageSize: number\n}\n\nexport interface PaginationTableState {\n pagination: PaginationState\n}\n\nexport interface PaginationInitialTableState {\n pagination?: Partial<PaginationState>\n}\n\nexport interface PaginationOptions {\n pageCount?: number\n manualPagination?: boolean\n onPaginationChange?: OnChangeFn<PaginationState>\n autoResetPageIndex?: boolean\n getPaginationRowModel?: (table: Table<any>) => () => RowModel<any>\n}\n\nexport interface PaginationDefaultOptions {\n onPaginationChange: OnChangeFn<PaginationState>\n}\n\nexport interface PaginationInstance<TData extends RowData> {\n _autoResetPageIndex: () => void\n setPagination: (updater: Updater<PaginationState>) => void\n resetPagination: (defaultState?: boolean) => void\n setPageIndex: (updater: Updater<number>) => void\n resetPageIndex: (defaultState?: boolean) => void\n setPageSize: (updater: Updater<number>) => void\n resetPageSize: (defaultState?: boolean) => void\n setPageCount: (updater: Updater<number>) => void\n getPageOptions: () => number[]\n getCanPreviousPage: () => boolean\n getCanNextPage: () => boolean\n previousPage: () => void\n nextPage: () => void\n getPrePaginationRowModel: () => RowModel<TData>\n getPaginationRowModel: () => RowModel<TData>\n _getPaginationRowModel?: () => RowModel<TData>\n getPageCount: () => number\n}\n\n//\n\nconst defaultPageIndex = 0\nconst defaultPageSize = 10\n\nconst getDefaultPaginationState = (): PaginationState => ({\n pageIndex: defaultPageIndex,\n pageSize: defaultPageSize,\n})\n\nexport const Pagination: TableFeature = {\n getInitialState: (state): PaginationTableState => {\n return {\n ...state,\n pagination: {\n ...getDefaultPaginationState(),\n ...state?.pagination,\n },\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): PaginationDefaultOptions => {\n return {\n onPaginationChange: makeStateUpdater('pagination', table),\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): PaginationInstance<TData> => {\n let registered = false\n let queued = false\n\n return {\n _autoResetPageIndex: () => {\n if (!registered) {\n table._queue(() => {\n registered = true\n })\n return\n }\n\n if (\n table.options.autoResetAll ??\n table.options.autoResetPageIndex ??\n !table.options.manualPagination\n ) {\n if (queued) return\n queued = true\n table._queue(() => {\n table.resetPageIndex()\n queued = false\n })\n }\n },\n setPagination: updater => {\n const safeUpdater: Updater<PaginationState> = old => {\n let newState = functionalUpdate(updater, old)\n\n return newState\n }\n\n return table.options.onPaginationChange?.(safeUpdater)\n },\n resetPagination: defaultState => {\n table.setPagination(\n defaultState\n ? getDefaultPaginationState()\n : table.initialState.pagination ?? getDefaultPaginationState()\n )\n },\n setPageIndex: updater => {\n table.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex)\n\n const maxPageIndex =\n typeof table.options.pageCount === 'undefined' ||\n table.options.pageCount === -1\n ? Number.MAX_SAFE_INTEGER\n : table.options.pageCount - 1\n\n pageIndex = Math.max(0, Math.min(pageIndex, maxPageIndex))\n\n return {\n ...old,\n pageIndex,\n }\n })\n },\n resetPageIndex: defaultState => {\n table.setPageIndex(\n defaultState\n ? defaultPageIndex\n : table.initialState?.pagination?.pageIndex ?? defaultPageIndex\n )\n },\n resetPageSize: defaultState => {\n table.setPageSize(\n defaultState\n ? defaultPageSize\n : table.initialState?.pagination?.pageSize ?? defaultPageSize\n )\n },\n setPageSize: updater => {\n table.setPagination(old => {\n const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize))\n const topRowIndex = old.pageSize * old.pageIndex!\n const pageIndex = Math.floor(topRowIndex / pageSize)\n\n return {\n ...old,\n pageIndex,\n pageSize,\n }\n })\n },\n setPageCount: updater =>\n table.setPagination(old => {\n let newPageCount = functionalUpdate(\n updater,\n table.options.pageCount ?? -1\n )\n\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount)\n }\n\n return {\n ...old,\n pageCount: newPageCount,\n }\n }),\n\n getPageOptions: memo(\n () => [table.getPageCount()],\n pageCount => {\n let pageOptions: number[] = []\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i)\n }\n return pageOptions\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getPageOptions',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n getCanPreviousPage: () => table.getState().pagination.pageIndex > 0,\n\n getCanNextPage: () => {\n const { pageIndex } = table.getState().pagination\n\n const pageCount = table.getPageCount()\n\n if (pageCount === -1) {\n return true\n }\n\n if (pageCount === 0) {\n return false\n }\n\n return pageIndex < pageCount - 1\n },\n\n previousPage: () => {\n return table.setPageIndex(old => old - 1)\n },\n\n nextPage: () => {\n return table.setPageIndex(old => {\n return old + 1\n })\n },\n\n getPrePaginationRowModel: () => table.getExpandedRowModel(),\n getPaginationRowModel: () => {\n if (\n !table._getPaginationRowModel &&\n table.options.getPaginationRowModel\n ) {\n table._getPaginationRowModel =\n table.options.getPaginationRowModel(table)\n }\n\n if (table.options.manualPagination || !table._getPaginationRowModel) {\n return table.getPrePaginationRowModel()\n }\n\n return table._getPaginationRowModel()\n },\n\n getPageCount: () => {\n return (\n table.options.pageCount ??\n Math.ceil(\n table.getPrePaginationRowModel().rows.length /\n table.getState().pagination.pageSize\n )\n )\n },\n }\n },\n}\n"],"names":["defaultPageIndex","defaultPageSize","getDefaultPaginationState","pageIndex","pageSize","Pagination","getInitialState","state","pagination","getDefaultOptions","table","onPaginationChange","makeStateUpdater","createTable","registered","queued","_autoResetPageIndex","_ref","_table$options$autoRe","_queue","options","autoResetAll","autoResetPageIndex","manualPagination","resetPageIndex","setPagination","updater","safeUpdater","old","newState","functionalUpdate","resetPagination","defaultState","_table$initialState$p","initialState","setPageIndex","maxPageIndex","pageCount","Number","MAX_SAFE_INTEGER","Math","max","min","_table$initialState$p2","_table$initialState","resetPageSize","_table$initialState$p3","_table$initialState2","setPageSize","topRowIndex","floor","setPageCount","_table$options$pageCo","newPageCount","getPageOptions","memo","getPageCount","pageOptions","Array","fill","map","_","i","key","process","env","NODE_ENV","debug","_table$options$debugA","debugAll","debugTable","getCanPreviousPage","getState","getCanNextPage","previousPage","nextPage","getPrePaginationRowModel","getExpandedRowModel","getPaginationRowModel","_getPaginationRowModel","_table$options$pageCo2","ceil","rows","length"],"mappings":"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"}
@@ -76,9 +76,9 @@ const Pinning = {
76
76
  return isLeft ? 'left' : isRight ? 'right' : false;
77
77
  },
78
78
  getPinnedIndex: () => {
79
- var _table$getState$colum, _table$getState$colum2, _table$getState$colum3;
79
+ var _table$getState$colum, _table$getState$colum2;
80
80
  const position = column.getIsPinned();
81
- return position ? (_table$getState$colum = (_table$getState$colum2 = table.getState().columnPinning) == null ? void 0 : (_table$getState$colum3 = _table$getState$colum2[position]) == null ? void 0 : _table$getState$colum3.indexOf(column.id)) != null ? _table$getState$colum : -1 : 0;
81
+ return position ? (_table$getState$colum = (_table$getState$colum2 = table.getState().columnPinning) == null || (_table$getState$colum2 = _table$getState$colum2[position]) == null ? void 0 : _table$getState$colum2.indexOf(column.id)) != null ? _table$getState$colum : -1 : 0;
82
82
  }
83
83
  };
84
84
  },
@@ -1 +1 @@
1
- {"version":3,"file":"Pinning.js","sources":["../../../src/features/Pinning.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport {\n OnChangeFn,\n Updater,\n Table,\n Column,\n Row,\n Cell,\n RowData,\n} from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type ColumnPinningPosition = false | 'left' | 'right'\n\nexport interface ColumnPinningState {\n left?: string[]\n right?: string[]\n}\n\nexport interface ColumnPinningTableState {\n columnPinning: ColumnPinningState\n}\n\nexport interface ColumnPinningOptions {\n onColumnPinningChange?: OnChangeFn<ColumnPinningState>\n enablePinning?: boolean\n}\n\nexport interface ColumnPinningDefaultOptions {\n onColumnPinningChange: OnChangeFn<ColumnPinningState>\n}\n\nexport interface ColumnPinningColumnDef {\n enablePinning?: boolean\n}\n\nexport interface ColumnPinningColumn {\n getCanPin: () => boolean\n getPinnedIndex: () => number\n getIsPinned: () => ColumnPinningPosition\n pin: (position: ColumnPinningPosition) => void\n}\n\nexport interface ColumnPinningRow<TData extends RowData> {\n getLeftVisibleCells: () => Cell<TData, unknown>[]\n getCenterVisibleCells: () => Cell<TData, unknown>[]\n getRightVisibleCells: () => Cell<TData, unknown>[]\n}\n\nexport interface ColumnPinningInstance<TData extends RowData> {\n setColumnPinning: (updater: Updater<ColumnPinningState>) => void\n resetColumnPinning: (defaultState?: boolean) => void\n getIsSomeColumnsPinned: (position?: ColumnPinningPosition) => boolean\n getLeftLeafColumns: () => Column<TData, unknown>[]\n getRightLeafColumns: () => Column<TData, unknown>[]\n getCenterLeafColumns: () => Column<TData, unknown>[]\n}\n\n//\n\nconst getDefaultPinningState = (): ColumnPinningState => ({\n left: [],\n right: [],\n})\n\nexport const Pinning: TableFeature = {\n getInitialState: (state): ColumnPinningTableState => {\n return {\n columnPinning: getDefaultPinningState(),\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnPinningDefaultOptions => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', table),\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): ColumnPinningColumn => {\n return {\n pin: position => {\n const columnIds = column\n .getLeafColumns()\n .map(d => d.id)\n .filter(Boolean) as string[]\n\n table.setColumnPinning(old => {\n if (position === 'right') {\n return {\n left: (old?.left ?? []).filter(d => !columnIds?.includes(d)),\n right: [\n ...(old?.right ?? []).filter(d => !columnIds?.includes(d)),\n ...columnIds,\n ],\n }\n }\n\n if (position === 'left') {\n return {\n left: [\n ...(old?.left ?? []).filter(d => !columnIds?.includes(d)),\n ...columnIds,\n ],\n right: (old?.right ?? []).filter(d => !columnIds?.includes(d)),\n }\n }\n\n return {\n left: (old?.left ?? []).filter(d => !columnIds?.includes(d)),\n right: (old?.right ?? []).filter(d => !columnIds?.includes(d)),\n }\n })\n },\n\n getCanPin: () => {\n const leafColumns = column.getLeafColumns()\n\n return leafColumns.some(\n d =>\n (d.columnDef.enablePinning ?? true) &&\n (table.options.enablePinning ?? true)\n )\n },\n\n getIsPinned: () => {\n const leafColumnIds = column.getLeafColumns().map(d => d.id)\n\n const { left, right } = table.getState().columnPinning\n\n const isLeft = leafColumnIds.some(d => left?.includes(d))\n const isRight = leafColumnIds.some(d => right?.includes(d))\n\n return isLeft ? 'left' : isRight ? 'right' : false\n },\n\n getPinnedIndex: () => {\n const position = column.getIsPinned()\n\n return position\n ? table.getState().columnPinning?.[position]?.indexOf(column.id) ?? -1\n : 0\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): ColumnPinningRow<TData> => {\n return {\n getCenterVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n table.getState().columnPinning.left,\n table.getState().columnPinning.right,\n ],\n (allCells, left, right) => {\n const leftAndRight: string[] = [...(left ?? []), ...(right ?? [])]\n\n return allCells.filter(d => !leftAndRight.includes(d.column.id))\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'row.getCenterVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n getLeftVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n table.getState().columnPinning.left,\n ,\n ],\n (allCells, left) => {\n const cells = (left ?? [])\n .map(\n columnId => allCells.find(cell => cell.column.id === columnId)!\n )\n .filter(Boolean)\n .map(d => ({ ...d, position: 'left' } as Cell<TData, unknown>))\n\n return cells\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getLeftVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n getRightVisibleCells: memo(\n () => [row._getAllVisibleCells(), table.getState().columnPinning.right],\n (allCells, right) => {\n const cells = (right ?? [])\n .map(\n columnId => allCells.find(cell => cell.column.id === columnId)!\n )\n .filter(Boolean)\n .map(d => ({ ...d, position: 'right' } as Cell<TData, unknown>))\n\n return cells\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getRightVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ColumnPinningInstance<TData> => {\n return {\n setColumnPinning: updater =>\n table.options.onColumnPinningChange?.(updater),\n\n resetColumnPinning: defaultState =>\n table.setColumnPinning(\n defaultState\n ? getDefaultPinningState()\n : table.initialState?.columnPinning ?? getDefaultPinningState()\n ),\n\n getIsSomeColumnsPinned: position => {\n const pinningState = table.getState().columnPinning\n\n if (!position) {\n return Boolean(\n pinningState.left?.length || pinningState.right?.length\n )\n }\n return Boolean(pinningState[position]?.length)\n },\n\n getLeftLeafColumns: memo(\n () => [table.getAllLeafColumns(), table.getState().columnPinning.left],\n (allColumns, left) => {\n return (left ?? [])\n .map(columnId => allColumns.find(column => column.id === columnId)!)\n .filter(Boolean)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getRightLeafColumns: memo(\n () => [table.getAllLeafColumns(), table.getState().columnPinning.right],\n (allColumns, right) => {\n return (right ?? [])\n .map(columnId => allColumns.find(column => column.id === columnId)!)\n .filter(Boolean)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getCenterLeafColumns: memo(\n () => [\n table.getAllLeafColumns(),\n table.getState().columnPinning.left,\n table.getState().columnPinning.right,\n ],\n (allColumns, left, right) => {\n const leftAndRight: string[] = [...(left ?? []), ...(right ?? [])]\n\n return allColumns.filter(d => !leftAndRight.includes(d.id))\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getCenterLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n }\n },\n}\n"],"names":["getDefaultPinningState","left","right","Pinning","getInitialState","state","columnPinning","getDefaultOptions","table","onColumnPinningChange","makeStateUpdater","createColumn","column","pin","position","columnIds","getLeafColumns","map","d","id","filter","Boolean","setColumnPinning","old","_old$left3","_old$right3","_old$left","_old$right","includes","_old$left2","_old$right2","getCanPin","leafColumns","some","_d$columnDef$enablePi","_table$options$enable","columnDef","enablePinning","options","getIsPinned","leafColumnIds","getState","isLeft","isRight","getPinnedIndex","_table$getState$colum","_table$getState$colum2","_table$getState$colum3","indexOf","createRow","row","getCenterVisibleCells","memo","_getAllVisibleCells","allCells","leftAndRight","key","process","env","NODE_ENV","debug","_table$options$debugA","debugAll","debugRows","getLeftVisibleCells","cells","columnId","find","cell","_table$options$debugA2","getRightVisibleCells","_table$options$debugA3","createTable","updater","resetColumnPinning","defaultState","_table$initialState$c","_table$initialState","initialState","getIsSomeColumnsPinned","_pinningState$positio","pinningState","_pinningState$left","_pinningState$right","length","getLeftLeafColumns","getAllLeafColumns","allColumns","_table$options$debugA4","debugColumns","getRightLeafColumns","_table$options$debugA5","getCenterLeafColumns","_table$options$debugA6"],"mappings":"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"}
1
+ {"version":3,"file":"Pinning.js","sources":["../../../src/features/Pinning.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport {\n OnChangeFn,\n Updater,\n Table,\n Column,\n Row,\n Cell,\n RowData,\n} from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type ColumnPinningPosition = false | 'left' | 'right'\n\nexport interface ColumnPinningState {\n left?: string[]\n right?: string[]\n}\n\nexport interface ColumnPinningTableState {\n columnPinning: ColumnPinningState\n}\n\nexport interface ColumnPinningOptions {\n onColumnPinningChange?: OnChangeFn<ColumnPinningState>\n enablePinning?: boolean\n}\n\nexport interface ColumnPinningDefaultOptions {\n onColumnPinningChange: OnChangeFn<ColumnPinningState>\n}\n\nexport interface ColumnPinningColumnDef {\n enablePinning?: boolean\n}\n\nexport interface ColumnPinningColumn {\n getCanPin: () => boolean\n getPinnedIndex: () => number\n getIsPinned: () => ColumnPinningPosition\n pin: (position: ColumnPinningPosition) => void\n}\n\nexport interface ColumnPinningRow<TData extends RowData> {\n getLeftVisibleCells: () => Cell<TData, unknown>[]\n getCenterVisibleCells: () => Cell<TData, unknown>[]\n getRightVisibleCells: () => Cell<TData, unknown>[]\n}\n\nexport interface ColumnPinningInstance<TData extends RowData> {\n setColumnPinning: (updater: Updater<ColumnPinningState>) => void\n resetColumnPinning: (defaultState?: boolean) => void\n getIsSomeColumnsPinned: (position?: ColumnPinningPosition) => boolean\n getLeftLeafColumns: () => Column<TData, unknown>[]\n getRightLeafColumns: () => Column<TData, unknown>[]\n getCenterLeafColumns: () => Column<TData, unknown>[]\n}\n\n//\n\nconst getDefaultPinningState = (): ColumnPinningState => ({\n left: [],\n right: [],\n})\n\nexport const Pinning: TableFeature = {\n getInitialState: (state): ColumnPinningTableState => {\n return {\n columnPinning: getDefaultPinningState(),\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnPinningDefaultOptions => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', table),\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): ColumnPinningColumn => {\n return {\n pin: position => {\n const columnIds = column\n .getLeafColumns()\n .map(d => d.id)\n .filter(Boolean) as string[]\n\n table.setColumnPinning(old => {\n if (position === 'right') {\n return {\n left: (old?.left ?? []).filter(d => !columnIds?.includes(d)),\n right: [\n ...(old?.right ?? []).filter(d => !columnIds?.includes(d)),\n ...columnIds,\n ],\n }\n }\n\n if (position === 'left') {\n return {\n left: [\n ...(old?.left ?? []).filter(d => !columnIds?.includes(d)),\n ...columnIds,\n ],\n right: (old?.right ?? []).filter(d => !columnIds?.includes(d)),\n }\n }\n\n return {\n left: (old?.left ?? []).filter(d => !columnIds?.includes(d)),\n right: (old?.right ?? []).filter(d => !columnIds?.includes(d)),\n }\n })\n },\n\n getCanPin: () => {\n const leafColumns = column.getLeafColumns()\n\n return leafColumns.some(\n d =>\n (d.columnDef.enablePinning ?? true) &&\n (table.options.enablePinning ?? true)\n )\n },\n\n getIsPinned: () => {\n const leafColumnIds = column.getLeafColumns().map(d => d.id)\n\n const { left, right } = table.getState().columnPinning\n\n const isLeft = leafColumnIds.some(d => left?.includes(d))\n const isRight = leafColumnIds.some(d => right?.includes(d))\n\n return isLeft ? 'left' : isRight ? 'right' : false\n },\n\n getPinnedIndex: () => {\n const position = column.getIsPinned()\n\n return position\n ? table.getState().columnPinning?.[position]?.indexOf(column.id) ?? -1\n : 0\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): ColumnPinningRow<TData> => {\n return {\n getCenterVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n table.getState().columnPinning.left,\n table.getState().columnPinning.right,\n ],\n (allCells, left, right) => {\n const leftAndRight: string[] = [...(left ?? []), ...(right ?? [])]\n\n return allCells.filter(d => !leftAndRight.includes(d.column.id))\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'row.getCenterVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n getLeftVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n table.getState().columnPinning.left,\n ,\n ],\n (allCells, left) => {\n const cells = (left ?? [])\n .map(\n columnId => allCells.find(cell => cell.column.id === columnId)!\n )\n .filter(Boolean)\n .map(d => ({ ...d, position: 'left' } as Cell<TData, unknown>))\n\n return cells\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getLeftVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n getRightVisibleCells: memo(\n () => [row._getAllVisibleCells(), table.getState().columnPinning.right],\n (allCells, right) => {\n const cells = (right ?? [])\n .map(\n columnId => allCells.find(cell => cell.column.id === columnId)!\n )\n .filter(Boolean)\n .map(d => ({ ...d, position: 'right' } as Cell<TData, unknown>))\n\n return cells\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getRightVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ColumnPinningInstance<TData> => {\n return {\n setColumnPinning: updater =>\n table.options.onColumnPinningChange?.(updater),\n\n resetColumnPinning: defaultState =>\n table.setColumnPinning(\n defaultState\n ? getDefaultPinningState()\n : table.initialState?.columnPinning ?? getDefaultPinningState()\n ),\n\n getIsSomeColumnsPinned: position => {\n const pinningState = table.getState().columnPinning\n\n if (!position) {\n return Boolean(\n pinningState.left?.length || pinningState.right?.length\n )\n }\n return Boolean(pinningState[position]?.length)\n },\n\n getLeftLeafColumns: memo(\n () => [table.getAllLeafColumns(), table.getState().columnPinning.left],\n (allColumns, left) => {\n return (left ?? [])\n .map(columnId => allColumns.find(column => column.id === columnId)!)\n .filter(Boolean)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getRightLeafColumns: memo(\n () => [table.getAllLeafColumns(), table.getState().columnPinning.right],\n (allColumns, right) => {\n return (right ?? [])\n .map(columnId => allColumns.find(column => column.id === columnId)!)\n .filter(Boolean)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n\n getCenterLeafColumns: memo(\n () => [\n table.getAllLeafColumns(),\n table.getState().columnPinning.left,\n table.getState().columnPinning.right,\n ],\n (allColumns, left, right) => {\n const leftAndRight: string[] = [...(left ?? []), ...(right ?? [])]\n\n return allColumns.filter(d => !leftAndRight.includes(d.id))\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getCenterLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n }\n },\n}\n"],"names":["getDefaultPinningState","left","right","Pinning","getInitialState","state","columnPinning","getDefaultOptions","table","onColumnPinningChange","makeStateUpdater","createColumn","column","pin","position","columnIds","getLeafColumns","map","d","id","filter","Boolean","setColumnPinning","old","_old$left3","_old$right3","_old$left","_old$right","includes","_old$left2","_old$right2","getCanPin","leafColumns","some","_d$columnDef$enablePi","_table$options$enable","columnDef","enablePinning","options","getIsPinned","leafColumnIds","getState","isLeft","isRight","getPinnedIndex","_table$getState$colum","_table$getState$colum2","indexOf","createRow","row","getCenterVisibleCells","memo","_getAllVisibleCells","allCells","leftAndRight","key","process","env","NODE_ENV","debug","_table$options$debugA","debugAll","debugRows","getLeftVisibleCells","cells","columnId","find","cell","_table$options$debugA2","getRightVisibleCells","_table$options$debugA3","createTable","updater","resetColumnPinning","defaultState","_table$initialState$c","_table$initialState","initialState","getIsSomeColumnsPinned","_pinningState$positio","pinningState","_pinningState$left","_pinningState$right","length","getLeftLeafColumns","getAllLeafColumns","allColumns","_table$options$debugA4","debugColumns","getRightLeafColumns","_table$options$debugA5","getCenterLeafColumns","_table$options$debugA6"],"mappings":"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"}
@@ -201,8 +201,8 @@ const Sorting = {
201
201
  const canSort = column.getCanSort();
202
202
  return e => {
203
203
  if (!canSort) return;
204
- e.persist == null ? void 0 : e.persist();
205
- column.toggleSorting == null ? void 0 : column.toggleSorting(undefined, column.getCanMultiSort() ? table.options.isMultiSortEvent == null ? void 0 : table.options.isMultiSortEvent(e) : false);
204
+ e.persist == null || e.persist();
205
+ column.toggleSorting == null || column.toggleSorting(undefined, column.getCanMultiSort() ? table.options.isMultiSortEvent == null ? void 0 : table.options.isMultiSortEvent(e) : false);
206
206
  };
207
207
  }
208
208
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Sorting.js","sources":["../../../src/features/Sorting.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/table'\nimport {\n BuiltInSortingFn,\n reSplitAlphaNumeric,\n sortingFns,\n} from '../sortingFns'\n\nimport {\n Column,\n OnChangeFn,\n Table,\n Row,\n Updater,\n RowData,\n SortingFns,\n} from '../types'\n\nimport { isFunction, makeStateUpdater } from '../utils'\n\nexport type SortDirection = 'asc' | 'desc'\n\nexport interface ColumnSort {\n id: string\n desc: boolean\n}\n\nexport type SortingState = ColumnSort[]\n\nexport interface SortingTableState {\n sorting: SortingState\n}\n\nexport interface SortingFn<TData extends RowData> {\n (rowA: Row<TData>, rowB: Row<TData>, columnId: string): number\n}\n\nexport type CustomSortingFns<TData extends RowData> = Record<\n string,\n SortingFn<TData>\n>\n\nexport type SortingFnOption<TData extends RowData> =\n | 'auto'\n | keyof SortingFns\n | BuiltInSortingFn\n | SortingFn<TData>\n\nexport interface SortingColumnDef<TData extends RowData> {\n sortingFn?: SortingFnOption<TData>\n sortDescFirst?: boolean\n enableSorting?: boolean\n enableMultiSort?: boolean\n invertSorting?: boolean\n sortUndefined?: false | -1 | 1\n}\n\nexport interface SortingColumn<TData extends RowData> {\n getAutoSortingFn: () => SortingFn<TData>\n getAutoSortDir: () => SortDirection\n getSortingFn: () => SortingFn<TData>\n getFirstSortDir: () => SortDirection\n getNextSortingOrder: () => SortDirection | false\n getCanSort: () => boolean\n getCanMultiSort: () => boolean\n getSortIndex: () => number\n getIsSorted: () => false | SortDirection\n clearSorting: () => void\n toggleSorting: (desc?: boolean, isMulti?: boolean) => void\n getToggleSortingHandler: () => undefined | ((event: unknown) => void)\n}\n\ninterface SortingOptionsBase {\n manualSorting?: boolean\n onSortingChange?: OnChangeFn<SortingState>\n enableSorting?: boolean\n enableSortingRemoval?: boolean\n enableMultiRemove?: boolean\n enableMultiSort?: boolean\n sortDescFirst?: boolean\n getSortedRowModel?: (table: Table<any>) => () => RowModel<any>\n maxMultiSortColCount?: number\n isMultiSortEvent?: (e: unknown) => boolean\n}\n\ntype ResolvedSortingFns = keyof SortingFns extends never\n ? {\n sortingFns?: Record<string, SortingFn<any>>\n }\n : {\n sortingFns: Record<keyof SortingFns, SortingFn<any>>\n }\n\nexport interface SortingOptions<TData extends RowData>\n extends SortingOptionsBase,\n ResolvedSortingFns {}\n\nexport interface SortingInstance<TData extends RowData> {\n setSorting: (updater: Updater<SortingState>) => void\n resetSorting: (defaultState?: boolean) => void\n getPreSortedRowModel: () => RowModel<TData>\n getSortedRowModel: () => RowModel<TData>\n _getSortedRowModel?: () => RowModel<TData>\n}\n\n//\n\nexport const Sorting: TableFeature = {\n getInitialState: (state): SortingTableState => {\n return {\n sorting: [],\n ...state,\n }\n },\n\n getDefaultColumnDef: <TData extends RowData>(): SortingColumnDef<TData> => {\n return {\n sortingFn: 'auto',\n sortUndefined: 1,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): SortingOptions<TData> => {\n return {\n onSortingChange: makeStateUpdater('sorting', table),\n isMultiSortEvent: (e: unknown) => {\n return (e as MouseEvent).shiftKey\n },\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): SortingColumn<TData> => {\n return {\n getAutoSortingFn: () => {\n const firstRows = table.getFilteredRowModel().flatRows.slice(10)\n\n let isString = false\n\n for (const row of firstRows) {\n const value = row?.getValue(column.id)\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortingFns.datetime\n }\n\n if (typeof value === 'string') {\n isString = true\n\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortingFns.alphanumeric\n }\n }\n }\n\n if (isString) {\n return sortingFns.text\n }\n\n return sortingFns.basic\n },\n getAutoSortDir: () => {\n const firstRow = table.getFilteredRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'string') {\n return 'asc'\n }\n\n return 'desc'\n },\n getSortingFn: () => {\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.columnDef.sortingFn)\n ? column.columnDef.sortingFn\n : column.columnDef.sortingFn === 'auto'\n ? column.getAutoSortingFn()\n : table.options.sortingFns?.[column.columnDef.sortingFn as string] ??\n sortingFns[column.columnDef.sortingFn as BuiltInSortingFn]\n },\n toggleSorting: (desc, multi) => {\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // table.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n // this needs to be outside of table.setSorting to be in sync with rerender\n const nextSortingOrder = column.getNextSortingOrder()\n const hasManualValue = typeof desc !== 'undefined' && desc !== null\n\n table.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old?.find(d => d.id === column.id)\n const existingIndex = old?.findIndex(d => d.id === column.id)\n\n let newSorting: SortingState = []\n\n // What should we do with this sort action?\n let sortAction: 'add' | 'remove' | 'toggle' | 'replace'\n let nextDesc = hasManualValue ? desc : nextSortingOrder === 'desc'\n\n // Multi-mode\n if (old?.length && column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'add'\n }\n } else {\n // Normal mode\n if (old?.length && existingIndex !== old.length - 1) {\n sortAction = 'replace'\n } else if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'replace'\n }\n }\n\n // Handle toggle states that will remove the sorting\n if (sortAction === 'toggle') {\n // If we are \"actually\" toggling (not a manual set value), should we remove the sorting?\n if (!hasManualValue) {\n // Is our intention to remove?\n if (!nextSortingOrder) {\n sortAction = 'remove'\n }\n }\n }\n\n if (sortAction === 'add') {\n newSorting = [\n ...old,\n {\n id: column.id,\n desc: nextDesc,\n },\n ]\n // Take latest n columns\n newSorting.splice(\n 0,\n newSorting.length -\n (table.options.maxMultiSortColCount ?? Number.MAX_SAFE_INTEGER)\n )\n } else if (sortAction === 'toggle') {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === column.id) {\n return {\n ...d,\n desc: nextDesc,\n }\n }\n return d\n })\n } else if (sortAction === 'remove') {\n newSorting = old.filter(d => d.id !== column.id)\n } else {\n newSorting = [\n {\n id: column.id,\n desc: nextDesc,\n },\n ]\n }\n\n return newSorting\n })\n },\n\n getFirstSortDir: () => {\n const sortDescFirst =\n column.columnDef.sortDescFirst ??\n table.options.sortDescFirst ??\n column.getAutoSortDir() === 'desc'\n return sortDescFirst ? 'desc' : 'asc'\n },\n\n getNextSortingOrder: (multi?: boolean) => {\n const firstSortDirection = column.getFirstSortDir()\n const isSorted = column.getIsSorted()\n\n if (!isSorted) {\n return firstSortDirection\n }\n\n if (\n isSorted !== firstSortDirection &&\n (table.options.enableSortingRemoval ?? true) && // If enableSortRemove, enable in general\n (multi ? table.options.enableMultiRemove ?? true : true) // If multi, don't allow if enableMultiRemove))\n ) {\n return false\n }\n return isSorted === 'desc' ? 'asc' : 'desc'\n },\n\n getCanSort: () => {\n return (\n (column.columnDef.enableSorting ?? true) &&\n (table.options.enableSorting ?? true) &&\n !!column.accessorFn\n )\n },\n\n getCanMultiSort: () => {\n return (\n column.columnDef.enableMultiSort ??\n table.options.enableMultiSort ??\n !!column.accessorFn\n )\n },\n\n getIsSorted: () => {\n const columnSort = table\n .getState()\n .sorting?.find(d => d.id === column.id)\n\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc'\n },\n\n getSortIndex: () =>\n table.getState().sorting?.findIndex(d => d.id === column.id) ?? -1,\n\n clearSorting: () => {\n //clear sorting for just 1 column\n table.setSorting(old =>\n old?.length ? old.filter(d => d.id !== column.id) : []\n )\n },\n\n getToggleSortingHandler: () => {\n const canSort = column.getCanSort()\n\n return (e: unknown) => {\n if (!canSort) return\n ;(e as any).persist?.()\n column.toggleSorting?.(\n undefined,\n column.getCanMultiSort()\n ? table.options.isMultiSortEvent?.(e)\n : false\n )\n }\n },\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): SortingInstance<TData> => {\n return {\n setSorting: updater => table.options.onSortingChange?.(updater),\n resetSorting: defaultState => {\n table.setSorting(defaultState ? [] : table.initialState?.sorting ?? [])\n },\n getPreSortedRowModel: () => table.getGroupedRowModel(),\n getSortedRowModel: () => {\n if (!table._getSortedRowModel && table.options.getSortedRowModel) {\n table._getSortedRowModel = table.options.getSortedRowModel(table)\n }\n\n if (table.options.manualSorting || !table._getSortedRowModel) {\n return table.getPreSortedRowModel()\n }\n\n return table._getSortedRowModel()\n },\n }\n },\n}\n"],"names":["Sorting","getInitialState","state","sorting","getDefaultColumnDef","sortingFn","sortUndefined","getDefaultOptions","table","onSortingChange","makeStateUpdater","isMultiSortEvent","e","shiftKey","createColumn","column","getAutoSortingFn","firstRows","getFilteredRowModel","flatRows","slice","isString","row","value","getValue","id","Object","prototype","toString","call","sortingFns","datetime","split","reSplitAlphaNumeric","length","alphanumeric","text","basic","getAutoSortDir","firstRow","getSortingFn","_table$options$sortin","_table$options$sortin2","Error","isFunction","columnDef","options","toggleSorting","desc","multi","nextSortingOrder","getNextSortingOrder","hasManualValue","setSorting","old","existingSorting","find","d","existingIndex","findIndex","newSorting","sortAction","nextDesc","getCanMultiSort","_table$options$maxMul","splice","maxMultiSortColCount","Number","MAX_SAFE_INTEGER","map","filter","getFirstSortDir","_ref","_column$columnDef$sor","sortDescFirst","_table$options$enable","_table$options$enable2","firstSortDirection","isSorted","getIsSorted","enableSortingRemoval","enableMultiRemove","getCanSort","_column$columnDef$ena","_table$options$enable3","enableSorting","accessorFn","_ref2","_column$columnDef$ena2","enableMultiSort","_table$getState$sorti","columnSort","getState","getSortIndex","_table$getState$sorti2","_table$getState$sorti3","clearSorting","getToggleSortingHandler","canSort","persist","undefined","createTable","updater","resetSorting","defaultState","_table$initialState$s","_table$initialState","initialState","getPreSortedRowModel","getGroupedRowModel","getSortedRowModel","_getSortedRowModel","manualSorting"],"mappings":"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"}
1
+ {"version":3,"file":"Sorting.js","sources":["../../../src/features/Sorting.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/table'\nimport {\n BuiltInSortingFn,\n reSplitAlphaNumeric,\n sortingFns,\n} from '../sortingFns'\n\nimport {\n Column,\n OnChangeFn,\n Table,\n Row,\n Updater,\n RowData,\n SortingFns,\n} from '../types'\n\nimport { isFunction, makeStateUpdater } from '../utils'\n\nexport type SortDirection = 'asc' | 'desc'\n\nexport interface ColumnSort {\n id: string\n desc: boolean\n}\n\nexport type SortingState = ColumnSort[]\n\nexport interface SortingTableState {\n sorting: SortingState\n}\n\nexport interface SortingFn<TData extends RowData> {\n (rowA: Row<TData>, rowB: Row<TData>, columnId: string): number\n}\n\nexport type CustomSortingFns<TData extends RowData> = Record<\n string,\n SortingFn<TData>\n>\n\nexport type SortingFnOption<TData extends RowData> =\n | 'auto'\n | keyof SortingFns\n | BuiltInSortingFn\n | SortingFn<TData>\n\nexport interface SortingColumnDef<TData extends RowData> {\n sortingFn?: SortingFnOption<TData>\n sortDescFirst?: boolean\n enableSorting?: boolean\n enableMultiSort?: boolean\n invertSorting?: boolean\n sortUndefined?: false | -1 | 1\n}\n\nexport interface SortingColumn<TData extends RowData> {\n getAutoSortingFn: () => SortingFn<TData>\n getAutoSortDir: () => SortDirection\n getSortingFn: () => SortingFn<TData>\n getFirstSortDir: () => SortDirection\n getNextSortingOrder: () => SortDirection | false\n getCanSort: () => boolean\n getCanMultiSort: () => boolean\n getSortIndex: () => number\n getIsSorted: () => false | SortDirection\n clearSorting: () => void\n toggleSorting: (desc?: boolean, isMulti?: boolean) => void\n getToggleSortingHandler: () => undefined | ((event: unknown) => void)\n}\n\ninterface SortingOptionsBase {\n manualSorting?: boolean\n onSortingChange?: OnChangeFn<SortingState>\n enableSorting?: boolean\n enableSortingRemoval?: boolean\n enableMultiRemove?: boolean\n enableMultiSort?: boolean\n sortDescFirst?: boolean\n getSortedRowModel?: (table: Table<any>) => () => RowModel<any>\n maxMultiSortColCount?: number\n isMultiSortEvent?: (e: unknown) => boolean\n}\n\ntype ResolvedSortingFns = keyof SortingFns extends never\n ? {\n sortingFns?: Record<string, SortingFn<any>>\n }\n : {\n sortingFns: Record<keyof SortingFns, SortingFn<any>>\n }\n\nexport interface SortingOptions<TData extends RowData>\n extends SortingOptionsBase,\n ResolvedSortingFns {}\n\nexport interface SortingInstance<TData extends RowData> {\n setSorting: (updater: Updater<SortingState>) => void\n resetSorting: (defaultState?: boolean) => void\n getPreSortedRowModel: () => RowModel<TData>\n getSortedRowModel: () => RowModel<TData>\n _getSortedRowModel?: () => RowModel<TData>\n}\n\n//\n\nexport const Sorting: TableFeature = {\n getInitialState: (state): SortingTableState => {\n return {\n sorting: [],\n ...state,\n }\n },\n\n getDefaultColumnDef: <TData extends RowData>(): SortingColumnDef<TData> => {\n return {\n sortingFn: 'auto',\n sortUndefined: 1,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): SortingOptions<TData> => {\n return {\n onSortingChange: makeStateUpdater('sorting', table),\n isMultiSortEvent: (e: unknown) => {\n return (e as MouseEvent).shiftKey\n },\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): SortingColumn<TData> => {\n return {\n getAutoSortingFn: () => {\n const firstRows = table.getFilteredRowModel().flatRows.slice(10)\n\n let isString = false\n\n for (const row of firstRows) {\n const value = row?.getValue(column.id)\n\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortingFns.datetime\n }\n\n if (typeof value === 'string') {\n isString = true\n\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortingFns.alphanumeric\n }\n }\n }\n\n if (isString) {\n return sortingFns.text\n }\n\n return sortingFns.basic\n },\n getAutoSortDir: () => {\n const firstRow = table.getFilteredRowModel().flatRows[0]\n\n const value = firstRow?.getValue(column.id)\n\n if (typeof value === 'string') {\n return 'asc'\n }\n\n return 'desc'\n },\n getSortingFn: () => {\n if (!column) {\n throw new Error()\n }\n\n return isFunction(column.columnDef.sortingFn)\n ? column.columnDef.sortingFn\n : column.columnDef.sortingFn === 'auto'\n ? column.getAutoSortingFn()\n : table.options.sortingFns?.[column.columnDef.sortingFn as string] ??\n sortingFns[column.columnDef.sortingFn as BuiltInSortingFn]\n },\n toggleSorting: (desc, multi) => {\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // table.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n // this needs to be outside of table.setSorting to be in sync with rerender\n const nextSortingOrder = column.getNextSortingOrder()\n const hasManualValue = typeof desc !== 'undefined' && desc !== null\n\n table.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old?.find(d => d.id === column.id)\n const existingIndex = old?.findIndex(d => d.id === column.id)\n\n let newSorting: SortingState = []\n\n // What should we do with this sort action?\n let sortAction: 'add' | 'remove' | 'toggle' | 'replace'\n let nextDesc = hasManualValue ? desc : nextSortingOrder === 'desc'\n\n // Multi-mode\n if (old?.length && column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'add'\n }\n } else {\n // Normal mode\n if (old?.length && existingIndex !== old.length - 1) {\n sortAction = 'replace'\n } else if (existingSorting) {\n sortAction = 'toggle'\n } else {\n sortAction = 'replace'\n }\n }\n\n // Handle toggle states that will remove the sorting\n if (sortAction === 'toggle') {\n // If we are \"actually\" toggling (not a manual set value), should we remove the sorting?\n if (!hasManualValue) {\n // Is our intention to remove?\n if (!nextSortingOrder) {\n sortAction = 'remove'\n }\n }\n }\n\n if (sortAction === 'add') {\n newSorting = [\n ...old,\n {\n id: column.id,\n desc: nextDesc,\n },\n ]\n // Take latest n columns\n newSorting.splice(\n 0,\n newSorting.length -\n (table.options.maxMultiSortColCount ?? Number.MAX_SAFE_INTEGER)\n )\n } else if (sortAction === 'toggle') {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === column.id) {\n return {\n ...d,\n desc: nextDesc,\n }\n }\n return d\n })\n } else if (sortAction === 'remove') {\n newSorting = old.filter(d => d.id !== column.id)\n } else {\n newSorting = [\n {\n id: column.id,\n desc: nextDesc,\n },\n ]\n }\n\n return newSorting\n })\n },\n\n getFirstSortDir: () => {\n const sortDescFirst =\n column.columnDef.sortDescFirst ??\n table.options.sortDescFirst ??\n column.getAutoSortDir() === 'desc'\n return sortDescFirst ? 'desc' : 'asc'\n },\n\n getNextSortingOrder: (multi?: boolean) => {\n const firstSortDirection = column.getFirstSortDir()\n const isSorted = column.getIsSorted()\n\n if (!isSorted) {\n return firstSortDirection\n }\n\n if (\n isSorted !== firstSortDirection &&\n (table.options.enableSortingRemoval ?? true) && // If enableSortRemove, enable in general\n (multi ? table.options.enableMultiRemove ?? true : true) // If multi, don't allow if enableMultiRemove))\n ) {\n return false\n }\n return isSorted === 'desc' ? 'asc' : 'desc'\n },\n\n getCanSort: () => {\n return (\n (column.columnDef.enableSorting ?? true) &&\n (table.options.enableSorting ?? true) &&\n !!column.accessorFn\n )\n },\n\n getCanMultiSort: () => {\n return (\n column.columnDef.enableMultiSort ??\n table.options.enableMultiSort ??\n !!column.accessorFn\n )\n },\n\n getIsSorted: () => {\n const columnSort = table\n .getState()\n .sorting?.find(d => d.id === column.id)\n\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc'\n },\n\n getSortIndex: () =>\n table.getState().sorting?.findIndex(d => d.id === column.id) ?? -1,\n\n clearSorting: () => {\n //clear sorting for just 1 column\n table.setSorting(old =>\n old?.length ? old.filter(d => d.id !== column.id) : []\n )\n },\n\n getToggleSortingHandler: () => {\n const canSort = column.getCanSort()\n\n return (e: unknown) => {\n if (!canSort) return\n ;(e as any).persist?.()\n column.toggleSorting?.(\n undefined,\n column.getCanMultiSort()\n ? table.options.isMultiSortEvent?.(e)\n : false\n )\n }\n },\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): SortingInstance<TData> => {\n return {\n setSorting: updater => table.options.onSortingChange?.(updater),\n resetSorting: defaultState => {\n table.setSorting(defaultState ? [] : table.initialState?.sorting ?? [])\n },\n getPreSortedRowModel: () => table.getGroupedRowModel(),\n getSortedRowModel: () => {\n if (!table._getSortedRowModel && table.options.getSortedRowModel) {\n table._getSortedRowModel = table.options.getSortedRowModel(table)\n }\n\n if (table.options.manualSorting || !table._getSortedRowModel) {\n return table.getPreSortedRowModel()\n }\n\n return table._getSortedRowModel()\n },\n }\n },\n}\n"],"names":["Sorting","getInitialState","state","sorting","getDefaultColumnDef","sortingFn","sortUndefined","getDefaultOptions","table","onSortingChange","makeStateUpdater","isMultiSortEvent","e","shiftKey","createColumn","column","getAutoSortingFn","firstRows","getFilteredRowModel","flatRows","slice","isString","row","value","getValue","id","Object","prototype","toString","call","sortingFns","datetime","split","reSplitAlphaNumeric","length","alphanumeric","text","basic","getAutoSortDir","firstRow","getSortingFn","_table$options$sortin","_table$options$sortin2","Error","isFunction","columnDef","options","toggleSorting","desc","multi","nextSortingOrder","getNextSortingOrder","hasManualValue","setSorting","old","existingSorting","find","d","existingIndex","findIndex","newSorting","sortAction","nextDesc","getCanMultiSort","_table$options$maxMul","splice","maxMultiSortColCount","Number","MAX_SAFE_INTEGER","map","filter","getFirstSortDir","_ref","_column$columnDef$sor","sortDescFirst","_table$options$enable","_table$options$enable2","firstSortDirection","isSorted","getIsSorted","enableSortingRemoval","enableMultiRemove","getCanSort","_column$columnDef$ena","_table$options$enable3","enableSorting","accessorFn","_ref2","_column$columnDef$ena2","enableMultiSort","_table$getState$sorti","columnSort","getState","getSortIndex","_table$getState$sorti2","_table$getState$sorti3","clearSorting","getToggleSortingHandler","canSort","persist","undefined","createTable","updater","resetSorting","defaultState","_table$initialState$s","_table$initialState","initialState","getPreSortedRowModel","getGroupedRowModel","getSortedRowModel","_getSortedRowModel","manualSorting"],"mappings":"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"}
@@ -48,7 +48,7 @@ const Visibility = {
48
48
  },
49
49
  getToggleVisibilityHandler: () => {
50
50
  return e => {
51
- column.toggleVisibility == null ? void 0 : column.toggleVisibility(e.target.checked);
51
+ column.toggleVisibility == null || column.toggleVisibility(e.target.checked);
52
52
  };
53
53
  }
54
54
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Visibility.js","sources":["../../../src/features/Visibility.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport {\n Cell,\n Column,\n OnChangeFn,\n Table,\n Updater,\n Row,\n RowData,\n} from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type VisibilityState = Record<string, boolean>\n\nexport interface VisibilityTableState {\n columnVisibility: VisibilityState\n}\n\nexport interface VisibilityOptions {\n onColumnVisibilityChange?: OnChangeFn<VisibilityState>\n enableHiding?: boolean\n}\n\nexport interface VisibilityDefaultOptions {\n onColumnVisibilityChange: OnChangeFn<VisibilityState>\n}\n\nexport interface VisibilityInstance<TData extends RowData> {\n getVisibleFlatColumns: () => Column<TData, unknown>[]\n getVisibleLeafColumns: () => Column<TData, unknown>[]\n getLeftVisibleLeafColumns: () => Column<TData, unknown>[]\n getRightVisibleLeafColumns: () => Column<TData, unknown>[]\n getCenterVisibleLeafColumns: () => Column<TData, unknown>[]\n setColumnVisibility: (updater: Updater<VisibilityState>) => void\n resetColumnVisibility: (defaultState?: boolean) => void\n toggleAllColumnsVisible: (value?: boolean) => void\n getIsAllColumnsVisible: () => boolean\n getIsSomeColumnsVisible: () => boolean\n getToggleAllColumnsVisibilityHandler: () => (event: unknown) => void\n}\n\nexport interface VisibilityColumnDef {\n enableHiding?: boolean\n}\n\nexport interface VisibilityRow<TData extends RowData> {\n _getAllVisibleCells: () => Cell<TData, unknown>[]\n getVisibleCells: () => Cell<TData, unknown>[]\n}\n\nexport interface VisibilityColumn {\n getCanHide: () => boolean\n getIsVisible: () => boolean\n toggleVisibility: (value?: boolean) => void\n getToggleVisibilityHandler: () => (event: unknown) => void\n}\n\n//\n\nexport const Visibility: TableFeature = {\n getInitialState: (state): VisibilityTableState => {\n return {\n columnVisibility: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): VisibilityDefaultOptions => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', table),\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): VisibilityColumn => {\n return {\n toggleVisibility: value => {\n if (column.getCanHide()) {\n table.setColumnVisibility(old => ({\n ...old,\n [column.id]: value ?? !column.getIsVisible(),\n }))\n }\n },\n getIsVisible: () => {\n return table.getState().columnVisibility?.[column.id] ?? true\n },\n\n getCanHide: () => {\n return (\n (column.columnDef.enableHiding ?? true) &&\n (table.options.enableHiding ?? true)\n )\n },\n getToggleVisibilityHandler: () => {\n return (e: unknown) => {\n column.toggleVisibility?.(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): VisibilityRow<TData> => {\n return {\n _getAllVisibleCells: memo(\n () => [row.getAllCells(), table.getState().columnVisibility],\n cells => {\n return cells.filter(cell => cell.column.getIsVisible())\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row._getAllVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n getVisibleCells: memo(\n () => [\n row.getLeftVisibleCells(),\n row.getCenterVisibleCells(),\n row.getRightVisibleCells(),\n ],\n (left, center, right) => [...left, ...center, ...right],\n {\n key: process.env.NODE_ENV === 'development' && 'row.getVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): VisibilityInstance<TData> => {\n const makeVisibleColumnsMethod = (\n key: string,\n getColumns: () => Column<TData, unknown>[]\n ): (() => Column<TData, unknown>[]) => {\n return memo(\n () => [\n getColumns(),\n getColumns()\n .filter(d => d.getIsVisible())\n .map(d => d.id)\n .join('_'),\n ],\n columns => {\n return columns.filter(d => d.getIsVisible?.())\n },\n {\n key,\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n )\n }\n\n return {\n getVisibleFlatColumns: makeVisibleColumnsMethod(\n 'getVisibleFlatColumns',\n () => table.getAllFlatColumns()\n ),\n getVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getVisibleLeafColumns',\n () => table.getAllLeafColumns()\n ),\n getLeftVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getLeftVisibleLeafColumns',\n () => table.getLeftLeafColumns()\n ),\n getRightVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getRightVisibleLeafColumns',\n () => table.getRightLeafColumns()\n ),\n getCenterVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getCenterVisibleLeafColumns',\n () => table.getCenterLeafColumns()\n ),\n\n setColumnVisibility: updater =>\n table.options.onColumnVisibilityChange?.(updater),\n\n resetColumnVisibility: defaultState => {\n table.setColumnVisibility(\n defaultState ? {} : table.initialState.columnVisibility ?? {}\n )\n },\n\n toggleAllColumnsVisible: value => {\n value = value ?? !table.getIsAllColumnsVisible()\n\n table.setColumnVisibility(\n table.getAllLeafColumns().reduce(\n (obj, column) => ({\n ...obj,\n [column.id]: !value ? !column.getCanHide?.() : value,\n }),\n {}\n )\n )\n },\n\n getIsAllColumnsVisible: () =>\n !table.getAllLeafColumns().some(column => !column.getIsVisible?.()),\n\n getIsSomeColumnsVisible: () =>\n table.getAllLeafColumns().some(column => column.getIsVisible?.()),\n\n getToggleAllColumnsVisibilityHandler: () => {\n return (e: unknown) => {\n table.toggleAllColumnsVisible(\n ((e as MouseEvent).target as HTMLInputElement)?.checked\n )\n }\n },\n }\n },\n}\n"],"names":["Visibility","getInitialState","state","columnVisibility","getDefaultOptions","table","onColumnVisibilityChange","makeStateUpdater","createColumn","column","toggleVisibility","value","getCanHide","setColumnVisibility","old","id","getIsVisible","_table$getState$colum","_table$getState$colum2","getState","_column$columnDef$ena","_table$options$enable","columnDef","enableHiding","options","getToggleVisibilityHandler","e","target","checked","createRow","row","_getAllVisibleCells","memo","getAllCells","cells","filter","cell","key","process","env","NODE_ENV","debug","_table$options$debugA","debugAll","debugRows","getVisibleCells","getLeftVisibleCells","getCenterVisibleCells","getRightVisibleCells","left","center","right","_table$options$debugA2","createTable","makeVisibleColumnsMethod","getColumns","d","map","join","columns","_table$options$debugA3","debugColumns","getVisibleFlatColumns","getAllFlatColumns","getVisibleLeafColumns","getAllLeafColumns","getLeftVisibleLeafColumns","getLeftLeafColumns","getRightVisibleLeafColumns","getRightLeafColumns","getCenterVisibleLeafColumns","getCenterLeafColumns","updater","resetColumnVisibility","defaultState","_table$initialState$c","initialState","toggleAllColumnsVisible","_value","getIsAllColumnsVisible","reduce","obj","some","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityHandler","_target"],"mappings":"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"}
1
+ {"version":3,"file":"Visibility.js","sources":["../../../src/features/Visibility.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport {\n Cell,\n Column,\n OnChangeFn,\n Table,\n Updater,\n Row,\n RowData,\n} from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type VisibilityState = Record<string, boolean>\n\nexport interface VisibilityTableState {\n columnVisibility: VisibilityState\n}\n\nexport interface VisibilityOptions {\n onColumnVisibilityChange?: OnChangeFn<VisibilityState>\n enableHiding?: boolean\n}\n\nexport interface VisibilityDefaultOptions {\n onColumnVisibilityChange: OnChangeFn<VisibilityState>\n}\n\nexport interface VisibilityInstance<TData extends RowData> {\n getVisibleFlatColumns: () => Column<TData, unknown>[]\n getVisibleLeafColumns: () => Column<TData, unknown>[]\n getLeftVisibleLeafColumns: () => Column<TData, unknown>[]\n getRightVisibleLeafColumns: () => Column<TData, unknown>[]\n getCenterVisibleLeafColumns: () => Column<TData, unknown>[]\n setColumnVisibility: (updater: Updater<VisibilityState>) => void\n resetColumnVisibility: (defaultState?: boolean) => void\n toggleAllColumnsVisible: (value?: boolean) => void\n getIsAllColumnsVisible: () => boolean\n getIsSomeColumnsVisible: () => boolean\n getToggleAllColumnsVisibilityHandler: () => (event: unknown) => void\n}\n\nexport interface VisibilityColumnDef {\n enableHiding?: boolean\n}\n\nexport interface VisibilityRow<TData extends RowData> {\n _getAllVisibleCells: () => Cell<TData, unknown>[]\n getVisibleCells: () => Cell<TData, unknown>[]\n}\n\nexport interface VisibilityColumn {\n getCanHide: () => boolean\n getIsVisible: () => boolean\n toggleVisibility: (value?: boolean) => void\n getToggleVisibilityHandler: () => (event: unknown) => void\n}\n\n//\n\nexport const Visibility: TableFeature = {\n getInitialState: (state): VisibilityTableState => {\n return {\n columnVisibility: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): VisibilityDefaultOptions => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', table),\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): VisibilityColumn => {\n return {\n toggleVisibility: value => {\n if (column.getCanHide()) {\n table.setColumnVisibility(old => ({\n ...old,\n [column.id]: value ?? !column.getIsVisible(),\n }))\n }\n },\n getIsVisible: () => {\n return table.getState().columnVisibility?.[column.id] ?? true\n },\n\n getCanHide: () => {\n return (\n (column.columnDef.enableHiding ?? true) &&\n (table.options.enableHiding ?? true)\n )\n },\n getToggleVisibilityHandler: () => {\n return (e: unknown) => {\n column.toggleVisibility?.(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): VisibilityRow<TData> => {\n return {\n _getAllVisibleCells: memo(\n () => [row.getAllCells(), table.getState().columnVisibility],\n cells => {\n return cells.filter(cell => cell.column.getIsVisible())\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row._getAllVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n getVisibleCells: memo(\n () => [\n row.getLeftVisibleCells(),\n row.getCenterVisibleCells(),\n row.getRightVisibleCells(),\n ],\n (left, center, right) => [...left, ...center, ...right],\n {\n key: process.env.NODE_ENV === 'development' && 'row.getVisibleCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): VisibilityInstance<TData> => {\n const makeVisibleColumnsMethod = (\n key: string,\n getColumns: () => Column<TData, unknown>[]\n ): (() => Column<TData, unknown>[]) => {\n return memo(\n () => [\n getColumns(),\n getColumns()\n .filter(d => d.getIsVisible())\n .map(d => d.id)\n .join('_'),\n ],\n columns => {\n return columns.filter(d => d.getIsVisible?.())\n },\n {\n key,\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n )\n }\n\n return {\n getVisibleFlatColumns: makeVisibleColumnsMethod(\n 'getVisibleFlatColumns',\n () => table.getAllFlatColumns()\n ),\n getVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getVisibleLeafColumns',\n () => table.getAllLeafColumns()\n ),\n getLeftVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getLeftVisibleLeafColumns',\n () => table.getLeftLeafColumns()\n ),\n getRightVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getRightVisibleLeafColumns',\n () => table.getRightLeafColumns()\n ),\n getCenterVisibleLeafColumns: makeVisibleColumnsMethod(\n 'getCenterVisibleLeafColumns',\n () => table.getCenterLeafColumns()\n ),\n\n setColumnVisibility: updater =>\n table.options.onColumnVisibilityChange?.(updater),\n\n resetColumnVisibility: defaultState => {\n table.setColumnVisibility(\n defaultState ? {} : table.initialState.columnVisibility ?? {}\n )\n },\n\n toggleAllColumnsVisible: value => {\n value = value ?? !table.getIsAllColumnsVisible()\n\n table.setColumnVisibility(\n table.getAllLeafColumns().reduce(\n (obj, column) => ({\n ...obj,\n [column.id]: !value ? !column.getCanHide?.() : value,\n }),\n {}\n )\n )\n },\n\n getIsAllColumnsVisible: () =>\n !table.getAllLeafColumns().some(column => !column.getIsVisible?.()),\n\n getIsSomeColumnsVisible: () =>\n table.getAllLeafColumns().some(column => column.getIsVisible?.()),\n\n getToggleAllColumnsVisibilityHandler: () => {\n return (e: unknown) => {\n table.toggleAllColumnsVisible(\n ((e as MouseEvent).target as HTMLInputElement)?.checked\n )\n }\n },\n }\n },\n}\n"],"names":["Visibility","getInitialState","state","columnVisibility","getDefaultOptions","table","onColumnVisibilityChange","makeStateUpdater","createColumn","column","toggleVisibility","value","getCanHide","setColumnVisibility","old","id","getIsVisible","_table$getState$colum","_table$getState$colum2","getState","_column$columnDef$ena","_table$options$enable","columnDef","enableHiding","options","getToggleVisibilityHandler","e","target","checked","createRow","row","_getAllVisibleCells","memo","getAllCells","cells","filter","cell","key","process","env","NODE_ENV","debug","_table$options$debugA","debugAll","debugRows","getVisibleCells","getLeftVisibleCells","getCenterVisibleCells","getRightVisibleCells","left","center","right","_table$options$debugA2","createTable","makeVisibleColumnsMethod","getColumns","d","map","join","columns","_table$options$debugA3","debugColumns","getVisibleFlatColumns","getAllFlatColumns","getVisibleLeafColumns","getAllLeafColumns","getLeftVisibleLeafColumns","getLeftLeafColumns","getRightVisibleLeafColumns","getRightLeafColumns","getCenterVisibleLeafColumns","getCenterLeafColumns","updater","resetColumnVisibility","defaultState","_table$initialState$c","initialState","toggleAllColumnsVisible","_value","getIsAllColumnsVisible","reduce","obj","some","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityHandler","_target"],"mappings":"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"}
@@ -13,19 +13,19 @@
13
13
  Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
15
  const includesString = (row, columnId, filterValue) => {
16
- var _row$getValue, _row$getValue$toStrin, _row$getValue$toStrin2;
16
+ var _row$getValue;
17
17
  const search = filterValue.toLowerCase();
18
- return Boolean((_row$getValue = row.getValue(columnId)) == null ? void 0 : (_row$getValue$toStrin = _row$getValue.toString()) == null ? void 0 : (_row$getValue$toStrin2 = _row$getValue$toStrin.toLowerCase()) == null ? void 0 : _row$getValue$toStrin2.includes(search));
18
+ return Boolean((_row$getValue = row.getValue(columnId)) == null || (_row$getValue = _row$getValue.toString()) == null || (_row$getValue = _row$getValue.toLowerCase()) == null ? void 0 : _row$getValue.includes(search));
19
19
  };
20
20
  includesString.autoRemove = val => testFalsey(val);
21
21
  const includesStringSensitive = (row, columnId, filterValue) => {
22
- var _row$getValue2, _row$getValue2$toStri;
23
- return Boolean((_row$getValue2 = row.getValue(columnId)) == null ? void 0 : (_row$getValue2$toStri = _row$getValue2.toString()) == null ? void 0 : _row$getValue2$toStri.includes(filterValue));
22
+ var _row$getValue2;
23
+ return Boolean((_row$getValue2 = row.getValue(columnId)) == null || (_row$getValue2 = _row$getValue2.toString()) == null ? void 0 : _row$getValue2.includes(filterValue));
24
24
  };
25
25
  includesStringSensitive.autoRemove = val => testFalsey(val);
26
26
  const equalsString = (row, columnId, filterValue) => {
27
- var _row$getValue3, _row$getValue3$toStri;
28
- return ((_row$getValue3 = row.getValue(columnId)) == null ? void 0 : (_row$getValue3$toStri = _row$getValue3.toString()) == null ? void 0 : _row$getValue3$toStri.toLowerCase()) === (filterValue == null ? void 0 : filterValue.toLowerCase());
27
+ var _row$getValue3;
28
+ return ((_row$getValue3 = row.getValue(columnId)) == null || (_row$getValue3 = _row$getValue3.toString()) == null ? void 0 : _row$getValue3.toLowerCase()) === (filterValue == null ? void 0 : filterValue.toLowerCase());
29
29
  };
30
30
  equalsString.autoRemove = val => testFalsey(val);
31
31
  const arrIncludes = (row, columnId, filterValue) => {
@@ -1 +1 @@
1
- {"version":3,"file":"filterFns.js","sources":["../../src/filterFns.ts"],"sourcesContent":["import { FilterFn } from './features/Filters'\n\nconst includesString: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: string\n) => {\n const search = filterValue.toLowerCase()\n return Boolean(\n row\n .getValue<string | null>(columnId)\n ?.toString()\n ?.toLowerCase()\n ?.includes(search)\n )\n}\n\nincludesString.autoRemove = (val: any) => testFalsey(val)\n\nconst includesStringSensitive: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: string\n) => {\n return Boolean(\n row.getValue<string | null>(columnId)?.toString()?.includes(filterValue)\n )\n}\n\nincludesStringSensitive.autoRemove = (val: any) => testFalsey(val)\n\nconst equalsString: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: string\n) => {\n return (\n row.getValue<string | null>(columnId)?.toString()?.toLowerCase() ===\n filterValue?.toLowerCase()\n )\n}\n\nequalsString.autoRemove = (val: any) => testFalsey(val)\n\nconst arrIncludes: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown\n) => {\n return row.getValue<unknown[]>(columnId)?.includes(filterValue)\n}\n\narrIncludes.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nconst arrIncludesAll: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown[]\n) => {\n return !filterValue.some(\n val => !row.getValue<unknown[]>(columnId)?.includes(val)\n )\n}\n\narrIncludesAll.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nconst arrIncludesSome: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown[]\n) => {\n return filterValue.some(val =>\n row.getValue<unknown[]>(columnId)?.includes(val)\n )\n}\n\narrIncludesSome.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nconst equals: FilterFn<any> = (row, columnId: string, filterValue: unknown) => {\n return row.getValue(columnId) === filterValue\n}\n\nequals.autoRemove = (val: any) => testFalsey(val)\n\nconst weakEquals: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown\n) => {\n return row.getValue(columnId) == filterValue\n}\n\nweakEquals.autoRemove = (val: any) => testFalsey(val)\n\nconst inNumberRange: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: [number, number]\n) => {\n let [min, max] = filterValue\n\n const rowValue = row.getValue<number>(columnId)\n return rowValue >= min && rowValue <= max\n}\n\ninNumberRange.resolveFilterValue = (val: [any, any]) => {\n let [unsafeMin, unsafeMax] = val\n\n let parsedMin =\n typeof unsafeMin !== 'number' ? parseFloat(unsafeMin as string) : unsafeMin\n let parsedMax =\n typeof unsafeMax !== 'number' ? parseFloat(unsafeMax as string) : unsafeMax\n\n let min =\n unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin\n let max = unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax\n\n if (min > max) {\n const temp = min\n min = max\n max = temp\n }\n\n return [min, max] as const\n}\n\ninNumberRange.autoRemove = (val: any) =>\n testFalsey(val) || (testFalsey(val[0]) && testFalsey(val[1]))\n\n// Export\n\nexport const filterFns = {\n includesString,\n includesStringSensitive,\n equalsString,\n arrIncludes,\n arrIncludesAll,\n arrIncludesSome,\n equals,\n weakEquals,\n inNumberRange,\n}\n\nexport type BuiltInFilterFn = keyof typeof filterFns\n\n// Utils\n\nfunction testFalsey(val: any) {\n return val === undefined || val === null || val === ''\n}\n"],"names":["includesString","row","columnId","filterValue","_row$getValue","_row$getValue$toStrin","_row$getValue$toStrin2","search","toLowerCase","Boolean","getValue","toString","includes","autoRemove","val","testFalsey","includesStringSensitive","_row$getValue2","_row$getValue2$toStri","equalsString","_row$getValue3","_row$getValue3$toStri","arrIncludes","_row$getValue4","length","arrIncludesAll","some","_row$getValue5","arrIncludesSome","_row$getValue6","equals","weakEquals","inNumberRange","min","max","rowValue","resolveFilterValue","unsafeMin","unsafeMax","parsedMin","parseFloat","parsedMax","Number","isNaN","Infinity","temp","filterFns","undefined"],"mappings":"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"}
1
+ {"version":3,"file":"filterFns.js","sources":["../../src/filterFns.ts"],"sourcesContent":["import { FilterFn } from './features/Filters'\n\nconst includesString: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: string\n) => {\n const search = filterValue.toLowerCase()\n return Boolean(\n row\n .getValue<string | null>(columnId)\n ?.toString()\n ?.toLowerCase()\n ?.includes(search)\n )\n}\n\nincludesString.autoRemove = (val: any) => testFalsey(val)\n\nconst includesStringSensitive: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: string\n) => {\n return Boolean(\n row.getValue<string | null>(columnId)?.toString()?.includes(filterValue)\n )\n}\n\nincludesStringSensitive.autoRemove = (val: any) => testFalsey(val)\n\nconst equalsString: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: string\n) => {\n return (\n row.getValue<string | null>(columnId)?.toString()?.toLowerCase() ===\n filterValue?.toLowerCase()\n )\n}\n\nequalsString.autoRemove = (val: any) => testFalsey(val)\n\nconst arrIncludes: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown\n) => {\n return row.getValue<unknown[]>(columnId)?.includes(filterValue)\n}\n\narrIncludes.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nconst arrIncludesAll: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown[]\n) => {\n return !filterValue.some(\n val => !row.getValue<unknown[]>(columnId)?.includes(val)\n )\n}\n\narrIncludesAll.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nconst arrIncludesSome: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown[]\n) => {\n return filterValue.some(val =>\n row.getValue<unknown[]>(columnId)?.includes(val)\n )\n}\n\narrIncludesSome.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nconst equals: FilterFn<any> = (row, columnId: string, filterValue: unknown) => {\n return row.getValue(columnId) === filterValue\n}\n\nequals.autoRemove = (val: any) => testFalsey(val)\n\nconst weakEquals: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown\n) => {\n return row.getValue(columnId) == filterValue\n}\n\nweakEquals.autoRemove = (val: any) => testFalsey(val)\n\nconst inNumberRange: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: [number, number]\n) => {\n let [min, max] = filterValue\n\n const rowValue = row.getValue<number>(columnId)\n return rowValue >= min && rowValue <= max\n}\n\ninNumberRange.resolveFilterValue = (val: [any, any]) => {\n let [unsafeMin, unsafeMax] = val\n\n let parsedMin =\n typeof unsafeMin !== 'number' ? parseFloat(unsafeMin as string) : unsafeMin\n let parsedMax =\n typeof unsafeMax !== 'number' ? parseFloat(unsafeMax as string) : unsafeMax\n\n let min =\n unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin\n let max = unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax\n\n if (min > max) {\n const temp = min\n min = max\n max = temp\n }\n\n return [min, max] as const\n}\n\ninNumberRange.autoRemove = (val: any) =>\n testFalsey(val) || (testFalsey(val[0]) && testFalsey(val[1]))\n\n// Export\n\nexport const filterFns = {\n includesString,\n includesStringSensitive,\n equalsString,\n arrIncludes,\n arrIncludesAll,\n arrIncludesSome,\n equals,\n weakEquals,\n inNumberRange,\n}\n\nexport type BuiltInFilterFn = keyof typeof filterFns\n\n// Utils\n\nfunction testFalsey(val: any) {\n return val === undefined || val === null || val === ''\n}\n"],"names":["includesString","row","columnId","filterValue","_row$getValue","search","toLowerCase","Boolean","getValue","toString","includes","autoRemove","val","testFalsey","includesStringSensitive","_row$getValue2","equalsString","_row$getValue3","arrIncludes","_row$getValue4","length","arrIncludesAll","some","_row$getValue5","arrIncludesSome","_row$getValue6","equals","weakEquals","inNumberRange","min","max","rowValue","resolveFilterValue","unsafeMin","unsafeMax","parsedMin","parseFloat","parsedMax","Number","isNaN","Infinity","temp","filterFns","undefined"],"mappings":";;;;;;;;;;;;;;AAEA,MAAMA,cAA6B,GAAGA,CACpCC,GAAG,EACHC,QAAgB,EAChBC,WAAmB,KAChB;AAAA,EAAA,IAAAC,aAAA,CAAA;AACH,EAAA,MAAMC,MAAM,GAAGF,WAAW,CAACG,WAAW,EAAE,CAAA;AACxC,EAAA,OAAOC,OAAO,CAAA,CAAAH,aAAA,GACZH,GAAG,CACAO,QAAQ,CAAgBN,QAAQ,CAAC,KAAA,IAAA,IAAA,CAAAE,aAAA,GADpCA,aAAA,CAEIK,QAAQ,EAAE,KAAAL,IAAAA,IAAAA,CAAAA,aAAA,GAFdA,aAAA,CAGIE,WAAW,EAAE,KAAA,IAAA,GAAA,KAAA,CAAA,GAHjBF,aAAA,CAIIM,QAAQ,CAACL,MAAM,CACrB,CAAC,CAAA;AACH,CAAC,CAAA;AAEDL,cAAc,CAACW,UAAU,GAAIC,GAAQ,IAAKC,UAAU,CAACD,GAAG,CAAC,CAAA;AAEzD,MAAME,uBAAsC,GAAGA,CAC7Cb,GAAG,EACHC,QAAgB,EAChBC,WAAmB,KAChB;AAAA,EAAA,IAAAY,cAAA,CAAA;EACH,OAAOR,OAAO,CAAAQ,CAAAA,cAAA,GACZd,GAAG,CAACO,QAAQ,CAAgBN,QAAQ,CAAC,KAAAa,IAAAA,IAAAA,CAAAA,cAAA,GAArCA,cAAA,CAAuCN,QAAQ,EAAE,KAAA,IAAA,GAAA,KAAA,CAAA,GAAjDM,cAAA,CAAmDL,QAAQ,CAACP,WAAW,CACzE,CAAC,CAAA;AACH,CAAC,CAAA;AAEDW,uBAAuB,CAACH,UAAU,GAAIC,GAAQ,IAAKC,UAAU,CAACD,GAAG,CAAC,CAAA;AAElE,MAAMI,YAA2B,GAAGA,CAClCf,GAAG,EACHC,QAAgB,EAChBC,WAAmB,KAChB;AAAA,EAAA,IAAAc,cAAA,CAAA;AACH,EAAA,OACE,CAAAA,CAAAA,cAAA,GAAAhB,GAAG,CAACO,QAAQ,CAAgBN,QAAQ,CAAC,KAAA,IAAA,IAAA,CAAAe,cAAA,GAArCA,cAAA,CAAuCR,QAAQ,EAAE,KAAjDQ,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,cAAA,CAAmDX,WAAW,EAAE,OAChEH,WAAW,IAAXA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAW,CAAEG,WAAW,EAAE,CAAA,CAAA;AAE9B,CAAC,CAAA;AAEDU,YAAY,CAACL,UAAU,GAAIC,GAAQ,IAAKC,UAAU,CAACD,GAAG,CAAC,CAAA;AAEvD,MAAMM,WAA0B,GAAGA,CACjCjB,GAAG,EACHC,QAAgB,EAChBC,WAAoB,KACjB;AAAA,EAAA,IAAAgB,cAAA,CAAA;AACH,EAAA,OAAA,CAAAA,cAAA,GAAOlB,GAAG,CAACO,QAAQ,CAAYN,QAAQ,CAAC,KAAA,IAAA,GAAA,KAAA,CAAA,GAAjCiB,cAAA,CAAmCT,QAAQ,CAACP,WAAW,CAAC,CAAA;AACjE,CAAC,CAAA;AAEDe,WAAW,CAACP,UAAU,GAAIC,GAAQ,IAAKC,UAAU,CAACD,GAAG,CAAC,IAAI,EAACA,GAAG,IAAHA,IAAAA,IAAAA,GAAG,CAAEQ,MAAM,CAAA,CAAA;AAEtE,MAAMC,cAA6B,GAAGA,CACpCpB,GAAG,EACHC,QAAgB,EAChBC,WAAsB,KACnB;AACH,EAAA,OAAO,CAACA,WAAW,CAACmB,IAAI,CACtBV,GAAG,IAAA;AAAA,IAAA,IAAAW,cAAA,CAAA;AAAA,IAAA,OAAI,EAAAA,CAAAA,cAAA,GAACtB,GAAG,CAACO,QAAQ,CAAYN,QAAQ,CAAC,aAAjCqB,cAAA,CAAmCb,QAAQ,CAACE,GAAG,CAAC,CAAA,CAAA;AAAA,GAC1D,CAAC,CAAA;AACH,CAAC,CAAA;AAEDS,cAAc,CAACV,UAAU,GAAIC,GAAQ,IAAKC,UAAU,CAACD,GAAG,CAAC,IAAI,EAACA,GAAG,IAAHA,IAAAA,IAAAA,GAAG,CAAEQ,MAAM,CAAA,CAAA;AAEzE,MAAMI,eAA8B,GAAGA,CACrCvB,GAAG,EACHC,QAAgB,EAChBC,WAAsB,KACnB;AACH,EAAA,OAAOA,WAAW,CAACmB,IAAI,CAACV,GAAG,IAAA;AAAA,IAAA,IAAAa,cAAA,CAAA;AAAA,IAAA,OAAA,CAAAA,cAAA,GACzBxB,GAAG,CAACO,QAAQ,CAAYN,QAAQ,CAAC,KAAA,IAAA,GAAA,KAAA,CAAA,GAAjCuB,cAAA,CAAmCf,QAAQ,CAACE,GAAG,CAAC,CAAA;AAAA,GAClD,CAAC,CAAA;AACH,CAAC,CAAA;AAEDY,eAAe,CAACb,UAAU,GAAIC,GAAQ,IAAKC,UAAU,CAACD,GAAG,CAAC,IAAI,EAACA,GAAG,IAAHA,IAAAA,IAAAA,GAAG,CAAEQ,MAAM,CAAA,CAAA;AAE1E,MAAMM,MAAqB,GAAGA,CAACzB,GAAG,EAAEC,QAAgB,EAAEC,WAAoB,KAAK;AAC7E,EAAA,OAAOF,GAAG,CAACO,QAAQ,CAACN,QAAQ,CAAC,KAAKC,WAAW,CAAA;AAC/C,CAAC,CAAA;AAEDuB,MAAM,CAACf,UAAU,GAAIC,GAAQ,IAAKC,UAAU,CAACD,GAAG,CAAC,CAAA;AAEjD,MAAMe,UAAyB,GAAGA,CAChC1B,GAAG,EACHC,QAAgB,EAChBC,WAAoB,KACjB;AACH,EAAA,OAAOF,GAAG,CAACO,QAAQ,CAACN,QAAQ,CAAC,IAAIC,WAAW,CAAA;AAC9C,CAAC,CAAA;AAEDwB,UAAU,CAAChB,UAAU,GAAIC,GAAQ,IAAKC,UAAU,CAACD,GAAG,CAAC,CAAA;AAErD,MAAMgB,aAA4B,GAAGA,CACnC3B,GAAG,EACHC,QAAgB,EAChBC,WAA6B,KAC1B;AACH,EAAA,IAAI,CAAC0B,GAAG,EAAEC,GAAG,CAAC,GAAG3B,WAAW,CAAA;AAE5B,EAAA,MAAM4B,QAAQ,GAAG9B,GAAG,CAACO,QAAQ,CAASN,QAAQ,CAAC,CAAA;AAC/C,EAAA,OAAO6B,QAAQ,IAAIF,GAAG,IAAIE,QAAQ,IAAID,GAAG,CAAA;AAC3C,CAAC,CAAA;AAEDF,aAAa,CAACI,kBAAkB,GAAIpB,GAAe,IAAK;AACtD,EAAA,IAAI,CAACqB,SAAS,EAAEC,SAAS,CAAC,GAAGtB,GAAG,CAAA;AAEhC,EAAA,IAAIuB,SAAS,GACX,OAAOF,SAAS,KAAK,QAAQ,GAAGG,UAAU,CAACH,SAAmB,CAAC,GAAGA,SAAS,CAAA;AAC7E,EAAA,IAAII,SAAS,GACX,OAAOH,SAAS,KAAK,QAAQ,GAAGE,UAAU,CAACF,SAAmB,CAAC,GAAGA,SAAS,CAAA;AAE7E,EAAA,IAAIL,GAAG,GACLI,SAAS,KAAK,IAAI,IAAIK,MAAM,CAACC,KAAK,CAACJ,SAAS,CAAC,GAAG,CAACK,QAAQ,GAAGL,SAAS,CAAA;AACvE,EAAA,IAAIL,GAAG,GAAGI,SAAS,KAAK,IAAI,IAAII,MAAM,CAACC,KAAK,CAACF,SAAS,CAAC,GAAGG,QAAQ,GAAGH,SAAS,CAAA;EAE9E,IAAIR,GAAG,GAAGC,GAAG,EAAE;IACb,MAAMW,IAAI,GAAGZ,GAAG,CAAA;AAChBA,IAAAA,GAAG,GAAGC,GAAG,CAAA;AACTA,IAAAA,GAAG,GAAGW,IAAI,CAAA;AACZ,GAAA;AAEA,EAAA,OAAO,CAACZ,GAAG,EAAEC,GAAG,CAAC,CAAA;AACnB,CAAC,CAAA;AAEDF,aAAa,CAACjB,UAAU,GAAIC,GAAQ,IAClCC,UAAU,CAACD,GAAG,CAAC,IAAKC,UAAU,CAACD,GAAG,CAAC,CAAC,CAAC,CAAC,IAAIC,UAAU,CAACD,GAAG,CAAC,CAAC,CAAC,CAAE,CAAA;;AAE/D;;AAEO,MAAM8B,SAAS,GAAG;EACvB1C,cAAc;EACdc,uBAAuB;EACvBE,YAAY;EACZE,WAAW;EACXG,cAAc;EACdG,eAAe;EACfE,MAAM;EACNC,UAAU;AACVC,EAAAA,aAAAA;AACF,EAAC;AAID;;AAEA,SAASf,UAAUA,CAACD,GAAQ,EAAE;EAC5B,OAAOA,GAAG,KAAK+B,SAAS,IAAI/B,GAAG,KAAK,IAAI,IAAIA,GAAG,KAAK,EAAE,CAAA;AACxD;;;;"}