@tanstack/table-core 9.0.0-alpha.34 → 9.0.0-alpha.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/columns/constructColumn.cjs.map +1 -1
- package/dist/core/columns/constructColumn.js.map +1 -1
- package/dist/core/columns/coreColumnsFeature.utils.cjs.map +1 -1
- package/dist/core/columns/coreColumnsFeature.utils.js.map +1 -1
- package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
- package/dist/core/headers/buildHeaderGroups.js.map +1 -1
- package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
- package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
- package/dist/core/row-models/createCoreRowModel.cjs.map +1 -1
- package/dist/core/row-models/createCoreRowModel.js.map +1 -1
- package/dist/core/rows/constructRow.cjs.map +1 -1
- package/dist/core/rows/constructRow.js.map +1 -1
- package/dist/core/table/constructTable.cjs +2 -1
- package/dist/core/table/constructTable.cjs.map +1 -1
- package/dist/core/table/constructTable.js +2 -1
- package/dist/core/table/constructTable.js.map +1 -1
- package/dist/core/table/coreTablesFeature.utils.cjs +1 -1
- package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
- package/dist/core/table/coreTablesFeature.utils.js +2 -2
- package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
- package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
- package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -1
- package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
- package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
- package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
- package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +2 -2
- package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
- package/dist/features/column-filtering/columnFilteringFeature.utils.js +3 -3
- package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
- package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
- package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
- package/dist/features/column-filtering/filterRowsUtils.cjs.map +1 -1
- package/dist/features/column-filtering/filterRowsUtils.js.map +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +2 -2
- package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +1 -1
- package/dist/features/column-grouping/columnGroupingFeature.utils.js +3 -3
- package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +1 -1
- package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
- package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.utils.cjs +3 -2
- package/dist/features/column-ordering/columnOrderingFeature.utils.cjs.map +1 -1
- package/dist/features/column-ordering/columnOrderingFeature.utils.js +3 -2
- package/dist/features/column-ordering/columnOrderingFeature.utils.js.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.utils.cjs +3 -3
- package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
- package/dist/features/column-pinning/columnPinningFeature.utils.js +4 -4
- package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
- package/dist/features/column-resizing/columnResizingFeature.utils.cjs +4 -3
- package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +1 -1
- package/dist/features/column-resizing/columnResizingFeature.utils.js +4 -3
- package/dist/features/column-resizing/columnResizingFeature.utils.js.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.utils.cjs +4 -4
- package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +1 -1
- package/dist/features/column-sizing/columnSizingFeature.utils.js +5 -5
- package/dist/features/column-sizing/columnSizingFeature.utils.js.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +2 -2
- package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +1 -1
- package/dist/features/column-visibility/columnVisibilityFeature.utils.js +3 -3
- package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.utils.cjs +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
- package/dist/features/global-filtering/globalFilteringFeature.utils.js +2 -2
- package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
- package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -1
- package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -1
- package/dist/features/row-expanding/rowExpandingFeature.utils.cjs +3 -2
- package/dist/features/row-expanding/rowExpandingFeature.utils.cjs.map +1 -1
- package/dist/features/row-expanding/rowExpandingFeature.utils.js +4 -2
- package/dist/features/row-expanding/rowExpandingFeature.utils.js.map +1 -1
- package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -1
- package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -1
- package/dist/features/row-pagination/rowPaginationFeature.utils.cjs +19 -13
- package/dist/features/row-pagination/rowPaginationFeature.utils.cjs.map +1 -1
- package/dist/features/row-pagination/rowPaginationFeature.utils.js +20 -14
- package/dist/features/row-pagination/rowPaginationFeature.utils.js.map +1 -1
- package/dist/features/row-pinning/rowPinningFeature.utils.cjs +3 -3
- package/dist/features/row-pinning/rowPinningFeature.utils.cjs.map +1 -1
- package/dist/features/row-pinning/rowPinningFeature.utils.js +4 -4
- package/dist/features/row-pinning/rowPinningFeature.utils.js.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.utils.cjs +3 -2
- package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
- package/dist/features/row-selection/rowSelectionFeature.utils.js +4 -2
- package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
- package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
- package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
- package/dist/features/row-sorting/rowSortingFeature.utils.cjs +2 -2
- package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
- package/dist/features/row-sorting/rowSortingFeature.utils.js +3 -3
- package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
- package/dist/flex-render.cjs +19 -0
- package/dist/flex-render.cjs.map +1 -0
- package/dist/flex-render.d.cts +24 -0
- package/dist/flex-render.d.ts +24 -0
- package/dist/flex-render.js +16 -0
- package/dist/flex-render.js.map +1 -0
- package/dist/fns/filterFns.cjs.map +1 -1
- package/dist/fns/filterFns.js.map +1 -1
- package/dist/index.cjs +1 -2
- package/dist/index.d.cts +2 -3
- package/dist/index.d.ts +2 -3
- package/dist/index.js +2 -3
- package/dist/utils.cjs +12 -0
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +2 -1
- package/dist/utils.d.ts +2 -1
- package/dist/utils.js +12 -1
- package/dist/utils.js.map +1 -1
- package/package.json +5 -1
- package/src/core/columns/coreColumnsFeature.utils.ts +1 -1
- package/src/core/row-models/createCoreRowModel.ts +1 -1
- package/src/core/rows/constructRow.ts +1 -1
- package/src/core/table/constructTable.ts +4 -5
- package/src/core/table/coreTablesFeature.utils.ts +2 -2
- package/src/features/column-faceting/createFacetedMinMaxValues.ts +1 -1
- package/src/features/column-faceting/createFacetedRowModel.ts +1 -1
- package/src/features/column-faceting/createFacetedUniqueValues.ts +1 -1
- package/src/features/column-filtering/columnFilteringFeature.utils.ts +8 -13
- package/src/features/column-filtering/createFilteredRowModel.ts +1 -1
- package/src/features/column-grouping/columnGroupingFeature.utils.ts +7 -7
- package/src/features/column-grouping/createGroupedRowModel.ts +1 -1
- package/src/features/column-ordering/columnOrderingFeature.utils.ts +3 -2
- package/src/features/column-pinning/columnPinningFeature.utils.ts +6 -4
- package/src/features/column-resizing/columnResizingFeature.utils.ts +6 -3
- package/src/features/column-sizing/columnSizingFeature.utils.ts +5 -5
- package/src/features/column-visibility/columnVisibilityFeature.utils.ts +3 -3
- package/src/features/global-filtering/globalFilteringFeature.utils.ts +4 -5
- package/src/features/row-expanding/createExpandedRowModel.ts +1 -1
- package/src/features/row-expanding/rowExpandingFeature.utils.ts +4 -3
- package/src/features/row-pagination/createPaginatedRowModel.ts +1 -1
- package/src/features/row-pagination/rowPaginationFeature.utils.ts +20 -16
- package/src/features/row-pinning/rowPinningFeature.utils.ts +6 -4
- package/src/features/row-selection/rowSelectionFeature.utils.ts +5 -6
- package/src/features/row-sorting/createSortedRowModel.ts +3 -4
- package/src/features/row-sorting/rowSortingFeature.utils.ts +7 -9
- package/src/flex-render.ts +60 -0
- package/src/index.ts +0 -1
- package/src/utils.ts +24 -0
- package/dist/helpers/tableHelper.cjs +0 -21
- package/dist/helpers/tableHelper.cjs.map +0 -1
- package/dist/helpers/tableHelper.d.cts +0 -30
- package/dist/helpers/tableHelper.d.ts +0 -30
- package/dist/helpers/tableHelper.js +0 -21
- package/dist/helpers/tableHelper.js.map +0 -1
- package/src/helpers/tableHelper.ts +0 -61
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rowSortingFeature.utils.cjs","names":["reSplitAlphaNumeric","sortFn_basic","isFunction"],"sources":["../../../src/features/row-sorting/rowSortingFeature.utils.ts"],"sourcesContent":["import { reSplitAlphaNumeric, sortFn_basic } from '../../fns/sortFns'\nimport { isFunction } from '../../utils'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Column_Internal } from '../../types/Column'\nimport type {\n SortDirection,\n SortFn,\n SortingState,\n} from './rowSortingFeature.types'\n\n// State Utils\n\nexport function getDefaultSortingState(): SortingState {\n return structuredClone([])\n}\n\nexport function table_setSorting<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, updater: Updater<SortingState>) {\n table.options.onSortingChange?.(updater)\n}\n\nexport function table_resetSorting<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setSorting(\n table,\n defaultState ? [] : (table.initialState.sorting ?? []),\n )\n}\n\n// Column Utils\n\nexport function column_getAutoSortFn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): SortFn<TFeatures, TData> {\n const sortFns = column.table._rowModelFns.sortFns as\n | Record<string, SortFn<TFeatures, TData>>\n | undefined\n\n let sortFn: SortFn<TFeatures, TData> | undefined\n\n const firstRows = column.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 sortFn = sortFns?.datetime\n }\n\n if (typeof value === 'string') {\n isString = true\n\n if (value.split(reSplitAlphaNumeric).length > 1) {\n sortFn = sortFns?.alphanumeric\n }\n }\n }\n\n if (isString) {\n sortFn = sortFns?.text\n }\n\n return sortFn ?? sortFn_basic\n}\n\nexport function column_getAutoSortDir<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const firstRow = column.table.getFilteredRowModel().flatRows[0]\n\n const value = firstRow ? firstRow.getValue(column.id) : undefined\n\n if (typeof value === 'string') {\n return 'asc'\n }\n\n return 'desc'\n}\n\nexport function column_getSortFn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): SortFn<TFeatures, TData> {\n const sortFns = column.table._rowModelFns.sortFns as\n | Record<string, SortFn<TFeatures, TData>>\n | undefined\n\n return isFunction(column.columnDef.sortFn)\n ? column.columnDef.sortFn\n : column.columnDef.sortFn === 'auto'\n ? column_getAutoSortFn(column)\n : (sortFns?.[column.columnDef.sortFn as string] ?? sortFn_basic)\n}\n\nexport function column_toggleSorting<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n desc?: boolean,\n multi?: boolean,\n) {\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(column)\n const hasManualValue = typeof desc !== 'undefined'\n\n table_setSorting(column.table, (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 const nextDesc = hasManualValue ? desc : nextSortingOrder === 'desc'\n\n // Multi-mode\n if (old.length && column_getCanMultiSort(column) && 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 (column.table.options.maxMultiSortColCount ??\n 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\nexport function column_getFirstSortDir<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const sortDescFirst =\n column.columnDef.sortDescFirst ??\n column.table.options.sortDescFirst ??\n column_getAutoSortDir(column) === 'desc'\n return sortDescFirst ? 'desc' : 'asc'\n}\n\nexport function column_getNextSortingOrder<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>, multi?: boolean) {\n const firstSortDirection = column_getFirstSortDir(column)\n const isSorted = column_getIsSorted(column)\n\n if (!isSorted) {\n return firstSortDirection\n }\n\n if (\n isSorted !== firstSortDirection &&\n (column.table.options.enableSortingRemoval ?? true) && // If enableSortRemove, enable in general\n (multi ? (column.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\nexport function column_getCanSort<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n return (\n (column.columnDef.enableSorting ?? true) &&\n (column.table.options.enableSorting ?? true) &&\n !!column.accessorFn\n )\n}\n\nexport function column_getCanMultiSort<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): boolean {\n return (\n column.columnDef.enableMultiSort ??\n column.table.options.enableMultiSort ??\n !!column.accessorFn\n )\n}\n\nexport function column_getIsSorted<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): false | SortDirection {\n const columnSort = column.table.atoms.sorting\n ?.get()\n ?.find((d) => d.id === column.id)\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc'\n}\n\nexport function column_getSortIndex<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): number {\n return (\n column.table.atoms.sorting?.get()?.findIndex((d) => d.id === column.id) ??\n -1\n )\n}\n\nexport function column_clearSorting<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n // clear sorting for just 1 column\n table_setSorting(column.table, (old) =>\n old.length ? old.filter((d) => d.id !== column.id) : [],\n )\n}\n\nexport function column_getToggleSortingHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const canSort = column_getCanSort(column)\n\n return (e: unknown) => {\n if (!canSort) return\n ;(e as any).persist?.()\n column_toggleSorting(\n column,\n\n undefined,\n column_getCanMultiSort(column)\n ? column.table.options.isMultiSortEvent?.(e)\n : false,\n )\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rowSortingFeature.utils.cjs","names":["cloneState","reSplitAlphaNumeric","sortFn_basic","isFunction"],"sources":["../../../src/features/row-sorting/rowSortingFeature.utils.ts"],"sourcesContent":["import { reSplitAlphaNumeric, sortFn_basic } from '../../fns/sortFns'\nimport { cloneState, isFunction } from '../../utils'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Column_Internal } from '../../types/Column'\nimport type {\n SortDirection,\n SortFn,\n SortingState,\n} from './rowSortingFeature.types'\n\n// State Utils\n\nexport function getDefaultSortingState(): SortingState {\n return []\n}\n\nexport function table_setSorting<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, updater: Updater<SortingState>) {\n table.options.onSortingChange?.(updater)\n}\n\nexport function table_resetSorting<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setSorting(\n table,\n defaultState ? [] : cloneState(table.initialState.sorting ?? []),\n )\n}\n\n// Column Utils\n\nexport function column_getAutoSortFn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): SortFn<TFeatures, TData> {\n const sortFns: Record<string, SortFn<TFeatures, TData>> | undefined =\n column.table._rowModelFns.sortFns\n\n let sortFn: SortFn<TFeatures, TData> | undefined\n\n const firstRows = column.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 sortFn = sortFns?.datetime\n }\n\n if (typeof value === 'string') {\n isString = true\n\n if (value.split(reSplitAlphaNumeric).length > 1) {\n sortFn = sortFns?.alphanumeric\n }\n }\n }\n\n if (isString) {\n sortFn = sortFns?.text\n }\n\n return sortFn ?? sortFn_basic\n}\n\nexport function column_getAutoSortDir<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const firstRow = column.table.getFilteredRowModel().flatRows[0]\n\n const value = firstRow ? firstRow.getValue(column.id) : undefined\n\n if (typeof value === 'string') {\n return 'asc'\n }\n\n return 'desc'\n}\n\nexport function column_getSortFn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): SortFn<TFeatures, TData> {\n const sortFns: Record<string, SortFn<TFeatures, TData>> | undefined =\n column.table._rowModelFns.sortFns\n\n return isFunction(column.columnDef.sortFn)\n ? column.columnDef.sortFn\n : column.columnDef.sortFn === 'auto'\n ? column_getAutoSortFn(column)\n : (sortFns?.[column.columnDef.sortFn as string] ?? sortFn_basic)\n}\n\nexport function column_toggleSorting<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n desc?: boolean,\n multi?: boolean,\n) {\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(column)\n const hasManualValue = typeof desc !== 'undefined'\n\n table_setSorting(column.table, (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 const nextDesc = hasManualValue ? desc : nextSortingOrder === 'desc'\n\n // Multi-mode\n if (old.length && column_getCanMultiSort(column) && 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 (column.table.options.maxMultiSortColCount ??\n 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\nexport function column_getFirstSortDir<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const sortDescFirst =\n column.columnDef.sortDescFirst ??\n column.table.options.sortDescFirst ??\n column_getAutoSortDir(column) === 'desc'\n return sortDescFirst ? 'desc' : 'asc'\n}\n\nexport function column_getNextSortingOrder<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>, multi?: boolean) {\n const firstSortDirection = column_getFirstSortDir(column)\n const isSorted = column_getIsSorted(column)\n\n if (!isSorted) {\n return firstSortDirection\n }\n\n if (\n isSorted !== firstSortDirection &&\n (column.table.options.enableSortingRemoval ?? true) && // If enableSortRemove, enable in general\n (multi ? (column.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\nexport function column_getCanSort<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n return (\n (column.columnDef.enableSorting ?? true) &&\n (column.table.options.enableSorting ?? true) &&\n !!column.accessorFn\n )\n}\n\nexport function column_getCanMultiSort<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): boolean {\n return (\n column.columnDef.enableMultiSort ??\n column.table.options.enableMultiSort ??\n !!column.accessorFn\n )\n}\n\nexport function column_getIsSorted<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): false | SortDirection {\n const columnSort = column.table.atoms.sorting\n ?.get()\n ?.find((d) => d.id === column.id)\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc'\n}\n\nexport function column_getSortIndex<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): number {\n return (\n column.table.atoms.sorting?.get()?.findIndex((d) => d.id === column.id) ??\n -1\n )\n}\n\nexport function column_clearSorting<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n // clear sorting for just 1 column\n table_setSorting(column.table, (old) =>\n old.length ? old.filter((d) => d.id !== column.id) : [],\n )\n}\n\nexport function column_getToggleSortingHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const canSort = column_getCanSort(column)\n\n return (e: unknown) => {\n if (!canSort) return\n ;(e as any).persist?.()\n column_toggleSorting(\n column,\n\n undefined,\n column_getCanMultiSort(column)\n ? column.table.options.isMultiSortEvent?.(e)\n : false,\n )\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { isFunction } from "../../utils.js";
|
|
1
|
+
import { cloneState, isFunction } from "../../utils.js";
|
|
2
2
|
import { reSplitAlphaNumeric, sortFn_basic } from "../../fns/sortFns.js";
|
|
3
3
|
|
|
4
4
|
//#region src/features/row-sorting/rowSortingFeature.utils.ts
|
|
5
5
|
function getDefaultSortingState() {
|
|
6
|
-
return
|
|
6
|
+
return [];
|
|
7
7
|
}
|
|
8
8
|
function table_setSorting(table, updater) {
|
|
9
9
|
var _table$options$onSort, _table$options;
|
|
10
10
|
(_table$options$onSort = (_table$options = table.options).onSortingChange) === null || _table$options$onSort === void 0 || _table$options$onSort.call(_table$options, updater);
|
|
11
11
|
}
|
|
12
12
|
function table_resetSorting(table, defaultState) {
|
|
13
|
-
table_setSorting(table, defaultState ? [] : table.initialState.sorting ?? []);
|
|
13
|
+
table_setSorting(table, defaultState ? [] : cloneState(table.initialState.sorting ?? []));
|
|
14
14
|
}
|
|
15
15
|
function column_getAutoSortFn(column) {
|
|
16
16
|
const sortFns = column.table._rowModelFns.sortFns;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rowSortingFeature.utils.js","names":[],"sources":["../../../src/features/row-sorting/rowSortingFeature.utils.ts"],"sourcesContent":["import { reSplitAlphaNumeric, sortFn_basic } from '../../fns/sortFns'\nimport { isFunction } from '../../utils'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Column_Internal } from '../../types/Column'\nimport type {\n SortDirection,\n SortFn,\n SortingState,\n} from './rowSortingFeature.types'\n\n// State Utils\n\nexport function getDefaultSortingState(): SortingState {\n return structuredClone([])\n}\n\nexport function table_setSorting<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, updater: Updater<SortingState>) {\n table.options.onSortingChange?.(updater)\n}\n\nexport function table_resetSorting<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setSorting(\n table,\n defaultState ? [] : (table.initialState.sorting ?? []),\n )\n}\n\n// Column Utils\n\nexport function column_getAutoSortFn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): SortFn<TFeatures, TData> {\n const sortFns = column.table._rowModelFns.sortFns as\n | Record<string, SortFn<TFeatures, TData>>\n | undefined\n\n let sortFn: SortFn<TFeatures, TData> | undefined\n\n const firstRows = column.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 sortFn = sortFns?.datetime\n }\n\n if (typeof value === 'string') {\n isString = true\n\n if (value.split(reSplitAlphaNumeric).length > 1) {\n sortFn = sortFns?.alphanumeric\n }\n }\n }\n\n if (isString) {\n sortFn = sortFns?.text\n }\n\n return sortFn ?? sortFn_basic\n}\n\nexport function column_getAutoSortDir<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const firstRow = column.table.getFilteredRowModel().flatRows[0]\n\n const value = firstRow ? firstRow.getValue(column.id) : undefined\n\n if (typeof value === 'string') {\n return 'asc'\n }\n\n return 'desc'\n}\n\nexport function column_getSortFn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): SortFn<TFeatures, TData> {\n const sortFns = column.table._rowModelFns.sortFns as\n | Record<string, SortFn<TFeatures, TData>>\n | undefined\n\n return isFunction(column.columnDef.sortFn)\n ? column.columnDef.sortFn\n : column.columnDef.sortFn === 'auto'\n ? column_getAutoSortFn(column)\n : (sortFns?.[column.columnDef.sortFn as string] ?? sortFn_basic)\n}\n\nexport function column_toggleSorting<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n desc?: boolean,\n multi?: boolean,\n) {\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(column)\n const hasManualValue = typeof desc !== 'undefined'\n\n table_setSorting(column.table, (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 const nextDesc = hasManualValue ? desc : nextSortingOrder === 'desc'\n\n // Multi-mode\n if (old.length && column_getCanMultiSort(column) && 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 (column.table.options.maxMultiSortColCount ??\n 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\nexport function column_getFirstSortDir<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const sortDescFirst =\n column.columnDef.sortDescFirst ??\n column.table.options.sortDescFirst ??\n column_getAutoSortDir(column) === 'desc'\n return sortDescFirst ? 'desc' : 'asc'\n}\n\nexport function column_getNextSortingOrder<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>, multi?: boolean) {\n const firstSortDirection = column_getFirstSortDir(column)\n const isSorted = column_getIsSorted(column)\n\n if (!isSorted) {\n return firstSortDirection\n }\n\n if (\n isSorted !== firstSortDirection &&\n (column.table.options.enableSortingRemoval ?? true) && // If enableSortRemove, enable in general\n (multi ? (column.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\nexport function column_getCanSort<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n return (\n (column.columnDef.enableSorting ?? true) &&\n (column.table.options.enableSorting ?? true) &&\n !!column.accessorFn\n )\n}\n\nexport function column_getCanMultiSort<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): boolean {\n return (\n column.columnDef.enableMultiSort ??\n column.table.options.enableMultiSort ??\n !!column.accessorFn\n )\n}\n\nexport function column_getIsSorted<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): false | SortDirection {\n const columnSort = column.table.atoms.sorting\n ?.get()\n ?.find((d) => d.id === column.id)\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc'\n}\n\nexport function column_getSortIndex<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): number {\n return (\n column.table.atoms.sorting?.get()?.findIndex((d) => d.id === column.id) ??\n -1\n )\n}\n\nexport function column_clearSorting<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n // clear sorting for just 1 column\n table_setSorting(column.table, (old) =>\n old.length ? old.filter((d) => d.id !== column.id) : [],\n )\n}\n\nexport function column_getToggleSortingHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const canSort = column_getCanSort(column)\n\n return (e: unknown) => {\n if (!canSort) return\n ;(e as any).persist?.()\n column_toggleSorting(\n column,\n\n undefined,\n column_getCanMultiSort(column)\n ? column.table.options.isMultiSortEvent?.(e)\n : false,\n )\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rowSortingFeature.utils.js","names":[],"sources":["../../../src/features/row-sorting/rowSortingFeature.utils.ts"],"sourcesContent":["import { reSplitAlphaNumeric, sortFn_basic } from '../../fns/sortFns'\nimport { cloneState, isFunction } from '../../utils'\nimport type { CellData, RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Column_Internal } from '../../types/Column'\nimport type {\n SortDirection,\n SortFn,\n SortingState,\n} from './rowSortingFeature.types'\n\n// State Utils\n\nexport function getDefaultSortingState(): SortingState {\n return []\n}\n\nexport function table_setSorting<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, updater: Updater<SortingState>) {\n table.options.onSortingChange?.(updater)\n}\n\nexport function table_resetSorting<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setSorting(\n table,\n defaultState ? [] : cloneState(table.initialState.sorting ?? []),\n )\n}\n\n// Column Utils\n\nexport function column_getAutoSortFn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): SortFn<TFeatures, TData> {\n const sortFns: Record<string, SortFn<TFeatures, TData>> | undefined =\n column.table._rowModelFns.sortFns\n\n let sortFn: SortFn<TFeatures, TData> | undefined\n\n const firstRows = column.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 sortFn = sortFns?.datetime\n }\n\n if (typeof value === 'string') {\n isString = true\n\n if (value.split(reSplitAlphaNumeric).length > 1) {\n sortFn = sortFns?.alphanumeric\n }\n }\n }\n\n if (isString) {\n sortFn = sortFns?.text\n }\n\n return sortFn ?? sortFn_basic\n}\n\nexport function column_getAutoSortDir<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const firstRow = column.table.getFilteredRowModel().flatRows[0]\n\n const value = firstRow ? firstRow.getValue(column.id) : undefined\n\n if (typeof value === 'string') {\n return 'asc'\n }\n\n return 'desc'\n}\n\nexport function column_getSortFn<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): SortFn<TFeatures, TData> {\n const sortFns: Record<string, SortFn<TFeatures, TData>> | undefined =\n column.table._rowModelFns.sortFns\n\n return isFunction(column.columnDef.sortFn)\n ? column.columnDef.sortFn\n : column.columnDef.sortFn === 'auto'\n ? column_getAutoSortFn(column)\n : (sortFns?.[column.columnDef.sortFn as string] ?? sortFn_basic)\n}\n\nexport function column_toggleSorting<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(\n column: Column_Internal<TFeatures, TData, TValue>,\n desc?: boolean,\n multi?: boolean,\n) {\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(column)\n const hasManualValue = typeof desc !== 'undefined'\n\n table_setSorting(column.table, (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 const nextDesc = hasManualValue ? desc : nextSortingOrder === 'desc'\n\n // Multi-mode\n if (old.length && column_getCanMultiSort(column) && 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 (column.table.options.maxMultiSortColCount ??\n 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\nexport function column_getFirstSortDir<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const sortDescFirst =\n column.columnDef.sortDescFirst ??\n column.table.options.sortDescFirst ??\n column_getAutoSortDir(column) === 'desc'\n return sortDescFirst ? 'desc' : 'asc'\n}\n\nexport function column_getNextSortingOrder<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>, multi?: boolean) {\n const firstSortDirection = column_getFirstSortDir(column)\n const isSorted = column_getIsSorted(column)\n\n if (!isSorted) {\n return firstSortDirection\n }\n\n if (\n isSorted !== firstSortDirection &&\n (column.table.options.enableSortingRemoval ?? true) && // If enableSortRemove, enable in general\n (multi ? (column.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\nexport function column_getCanSort<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n return (\n (column.columnDef.enableSorting ?? true) &&\n (column.table.options.enableSorting ?? true) &&\n !!column.accessorFn\n )\n}\n\nexport function column_getCanMultiSort<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): boolean {\n return (\n column.columnDef.enableMultiSort ??\n column.table.options.enableMultiSort ??\n !!column.accessorFn\n )\n}\n\nexport function column_getIsSorted<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): false | SortDirection {\n const columnSort = column.table.atoms.sorting\n ?.get()\n ?.find((d) => d.id === column.id)\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc'\n}\n\nexport function column_getSortIndex<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>): number {\n return (\n column.table.atoms.sorting?.get()?.findIndex((d) => d.id === column.id) ??\n -1\n )\n}\n\nexport function column_clearSorting<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n // clear sorting for just 1 column\n table_setSorting(column.table, (old) =>\n old.length ? old.filter((d) => d.id !== column.id) : [],\n )\n}\n\nexport function column_getToggleSortingHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(column: Column_Internal<TFeatures, TData, TValue>) {\n const canSort = column_getCanSort(column)\n\n return (e: unknown) => {\n if (!canSort) return\n ;(e as any).persist?.()\n column_toggleSorting(\n column,\n\n undefined,\n column_getCanMultiSort(column)\n ? column.table.options.isMultiSortEvent?.(e)\n : false,\n )\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
|
|
3
|
+
//#region src/flex-render.ts
|
|
4
|
+
function flexRender(comp, props) {
|
|
5
|
+
if (comp == null) return null;
|
|
6
|
+
if (typeof comp === "function") return comp(props);
|
|
7
|
+
return comp;
|
|
8
|
+
}
|
|
9
|
+
function FlexRender(props) {
|
|
10
|
+
if ("cell" in props && props.cell) return flexRender(props.cell.column.columnDef.cell, props.cell.getContext());
|
|
11
|
+
if ("header" in props && props.header) return flexRender(props.header.column.columnDef.header, props.header.getContext());
|
|
12
|
+
if ("footer" in props && props.footer) return flexRender(props.footer.column.columnDef.footer, props.footer.getContext());
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
//#endregion
|
|
17
|
+
exports.FlexRender = FlexRender;
|
|
18
|
+
exports.flexRender = flexRender;
|
|
19
|
+
//# sourceMappingURL=flex-render.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flex-render.cjs","names":[],"sources":["../src/flex-render.ts"],"sourcesContent":["import type { Cell } from './types/Cell'\nimport type { Header } from './types/Header'\nimport type { TableFeatures } from './types/TableFeatures'\nimport type { CellData, RowData } from './types/type-utils'\n\nexport function flexRender<TProps extends object>(\n comp: unknown,\n props: TProps,\n): unknown | null {\n if (comp == null) return null\n\n if (typeof comp === 'function') {\n return comp(props)\n }\n\n return comp\n}\n\nexport type FlexRenderProps<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n> =\n | { cell: Cell<TFeatures, TData, TValue>; header?: never; footer?: never }\n | {\n header: Header<TFeatures, TData, TValue>\n cell?: never\n footer?: never\n }\n | {\n footer: Header<TFeatures, TData, TValue>\n cell?: never\n header?: never\n }\n\nexport function FlexRender<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(props: FlexRenderProps<TFeatures, TData, TValue>): unknown | null {\n if ('cell' in props && props.cell) {\n return flexRender(props.cell.column.columnDef.cell, props.cell.getContext())\n }\n\n if ('header' in props && props.header) {\n return flexRender(\n props.header.column.columnDef.header,\n props.header.getContext(),\n )\n }\n\n if ('footer' in props && props.footer) {\n return flexRender(\n props.footer.column.columnDef.footer,\n props.footer.getContext(),\n )\n }\n\n return null\n}\n"],"mappings":";;;AAKA,SAAgB,WACd,MACA,OACgB;AAChB,KAAI,QAAQ,KAAM,QAAO;AAEzB,KAAI,OAAO,SAAS,WAClB,QAAO,KAAK,MAAM;AAGpB,QAAO;;AAoBT,SAAgB,WAId,OAAkE;AAClE,KAAI,UAAU,SAAS,MAAM,KAC3B,QAAO,WAAW,MAAM,KAAK,OAAO,UAAU,MAAM,MAAM,KAAK,YAAY,CAAC;AAG9E,KAAI,YAAY,SAAS,MAAM,OAC7B,QAAO,WACL,MAAM,OAAO,OAAO,UAAU,QAC9B,MAAM,OAAO,YAAY,CAC1B;AAGH,KAAI,YAAY,SAAS,MAAM,OAC7B,QAAO,WACL,MAAM,OAAO,OAAO,UAAU,QAC9B,MAAM,OAAO,YAAY,CAC1B;AAGH,QAAO"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { CellData, RowData } from "./types/type-utils.cjs";
|
|
2
|
+
import { Header } from "./types/Header.cjs";
|
|
3
|
+
import { TableFeatures } from "./types/TableFeatures.cjs";
|
|
4
|
+
import { Cell } from "./types/Cell.cjs";
|
|
5
|
+
|
|
6
|
+
//#region src/flex-render.d.ts
|
|
7
|
+
declare function flexRender<TProps extends object>(comp: unknown, props: TProps): unknown | null;
|
|
8
|
+
type FlexRenderProps<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData> = {
|
|
9
|
+
cell: Cell<TFeatures, TData, TValue>;
|
|
10
|
+
header?: never;
|
|
11
|
+
footer?: never;
|
|
12
|
+
} | {
|
|
13
|
+
header: Header<TFeatures, TData, TValue>;
|
|
14
|
+
cell?: never;
|
|
15
|
+
footer?: never;
|
|
16
|
+
} | {
|
|
17
|
+
footer: Header<TFeatures, TData, TValue>;
|
|
18
|
+
cell?: never;
|
|
19
|
+
header?: never;
|
|
20
|
+
};
|
|
21
|
+
declare function FlexRender<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(props: FlexRenderProps<TFeatures, TData, TValue>): unknown | null;
|
|
22
|
+
//#endregion
|
|
23
|
+
export { FlexRender, FlexRenderProps, flexRender };
|
|
24
|
+
//# sourceMappingURL=flex-render.d.cts.map
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { CellData, RowData } from "./types/type-utils.js";
|
|
2
|
+
import { Header } from "./types/Header.js";
|
|
3
|
+
import { TableFeatures } from "./types/TableFeatures.js";
|
|
4
|
+
import { Cell } from "./types/Cell.js";
|
|
5
|
+
|
|
6
|
+
//#region src/flex-render.d.ts
|
|
7
|
+
declare function flexRender<TProps extends object>(comp: unknown, props: TProps): unknown | null;
|
|
8
|
+
type FlexRenderProps<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData> = {
|
|
9
|
+
cell: Cell<TFeatures, TData, TValue>;
|
|
10
|
+
header?: never;
|
|
11
|
+
footer?: never;
|
|
12
|
+
} | {
|
|
13
|
+
header: Header<TFeatures, TData, TValue>;
|
|
14
|
+
cell?: never;
|
|
15
|
+
footer?: never;
|
|
16
|
+
} | {
|
|
17
|
+
footer: Header<TFeatures, TData, TValue>;
|
|
18
|
+
cell?: never;
|
|
19
|
+
header?: never;
|
|
20
|
+
};
|
|
21
|
+
declare function FlexRender<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData>(props: FlexRenderProps<TFeatures, TData, TValue>): unknown | null;
|
|
22
|
+
//#endregion
|
|
23
|
+
export { FlexRender, FlexRenderProps, flexRender };
|
|
24
|
+
//# sourceMappingURL=flex-render.d.ts.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
//#region src/flex-render.ts
|
|
2
|
+
function flexRender(comp, props) {
|
|
3
|
+
if (comp == null) return null;
|
|
4
|
+
if (typeof comp === "function") return comp(props);
|
|
5
|
+
return comp;
|
|
6
|
+
}
|
|
7
|
+
function FlexRender(props) {
|
|
8
|
+
if ("cell" in props && props.cell) return flexRender(props.cell.column.columnDef.cell, props.cell.getContext());
|
|
9
|
+
if ("header" in props && props.header) return flexRender(props.header.column.columnDef.header, props.header.getContext());
|
|
10
|
+
if ("footer" in props && props.footer) return flexRender(props.footer.column.columnDef.footer, props.footer.getContext());
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
//#endregion
|
|
15
|
+
export { FlexRender, flexRender };
|
|
16
|
+
//# sourceMappingURL=flex-render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flex-render.js","names":[],"sources":["../src/flex-render.ts"],"sourcesContent":["import type { Cell } from './types/Cell'\nimport type { Header } from './types/Header'\nimport type { TableFeatures } from './types/TableFeatures'\nimport type { CellData, RowData } from './types/type-utils'\n\nexport function flexRender<TProps extends object>(\n comp: unknown,\n props: TProps,\n): unknown | null {\n if (comp == null) return null\n\n if (typeof comp === 'function') {\n return comp(props)\n }\n\n return comp\n}\n\nexport type FlexRenderProps<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n> =\n | { cell: Cell<TFeatures, TData, TValue>; header?: never; footer?: never }\n | {\n header: Header<TFeatures, TData, TValue>\n cell?: never\n footer?: never\n }\n | {\n footer: Header<TFeatures, TData, TValue>\n cell?: never\n header?: never\n }\n\nexport function FlexRender<\n TFeatures extends TableFeatures,\n TData extends RowData,\n TValue extends CellData = CellData,\n>(props: FlexRenderProps<TFeatures, TData, TValue>): unknown | null {\n if ('cell' in props && props.cell) {\n return flexRender(props.cell.column.columnDef.cell, props.cell.getContext())\n }\n\n if ('header' in props && props.header) {\n return flexRender(\n props.header.column.columnDef.header,\n props.header.getContext(),\n )\n }\n\n if ('footer' in props && props.footer) {\n return flexRender(\n props.footer.column.columnDef.footer,\n props.footer.getContext(),\n )\n }\n\n return null\n}\n"],"mappings":";AAKA,SAAgB,WACd,MACA,OACgB;AAChB,KAAI,QAAQ,KAAM,QAAO;AAEzB,KAAI,OAAO,SAAS,WAClB,QAAO,KAAK,MAAM;AAGpB,QAAO;;AAoBT,SAAgB,WAId,OAAkE;AAClE,KAAI,UAAU,SAAS,MAAM,KAC3B,QAAO,WAAW,MAAM,KAAK,OAAO,UAAU,MAAM,MAAM,KAAK,YAAY,CAAC;AAG9E,KAAI,YAAY,SAAS,MAAM,OAC7B,QAAO,WACL,MAAM,OAAO,OAAO,UAAU,QAC9B,MAAM,OAAO,YAAY,CAC1B;AAGH,KAAI,YAAY,SAAS,MAAM,OAC7B,QAAO,WACL,MAAM,OAAO,OAAO,UAAU,QAC9B,MAAM,OAAO,YAAY,CAC1B;AAGH,QAAO"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterFns.cjs","names":[],"sources":["../../src/fns/filterFns.ts"],"sourcesContent":["import type { RowData } from '../types/type-utils'\nimport type { TableFeatures } from '../types/TableFeatures'\nimport type { Row } from '../types/Row'\nimport type { FilterFn } from '../features/column-filtering/columnFilteringFeature.types'\n\n// Basic filters\n\n/**\n * Filter function for checking if a value is exactly equal to a given value. (JS === comparison)\n */\nexport const filterFn_equals: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: unknown,\n) => {\n return row.getValue(columnId) === filterValue\n}\n\nfilterFn_equals.autoRemove = (val: any) => testFalsy(val)\n\n/**\n * Filter function for checking if a value is weakly equal to a given value. (JS == comparison)\n */\nexport const filterFn_weakEquals: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: unknown,\n) => {\n return row.getValue(columnId) == filterValue\n}\n\nfilterFn_weakEquals.autoRemove = (val: any) => testFalsy(val)\n\n// String filters\n\n/**\n * Filter function for checking if a string includes a given substring. (Case-sensitive)\n */\nexport const filterFn_includesStringSensitive: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: string,\n) => {\n return Boolean(\n row.getValue(columnId)?.toString().includes(filterValue.toString()),\n )\n}\n\nfilterFn_includesStringSensitive.autoRemove = (val: any) => testFalsy(val)\n\n/**\n * Filter function for checking if a string includes a given substring. (Non-case-sensitive)\n */\nexport const filterFn_includesString: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: string,\n) => {\n return Boolean(\n row\n .getValue(columnId)\n ?.toString()\n .toLowerCase()\n .includes(filterValue.toString().toLowerCase()),\n )\n}\n\nfilterFn_includesString.autoRemove = (val: any) => testFalsy(val)\n\n/**\n * Filter function for checking if a string is exactly equal to a given string. (Non-case-sensitive)\n */\nexport const filterFn_equalsString: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: string,\n) => {\n return (\n row.getValue(columnId)?.toString().toLowerCase() ===\n filterValue.toLowerCase()\n )\n}\n\nfilterFn_equalsString.autoRemove = (val: any) => testFalsy(val)\n\n/**\n * Filter function for checking if a string is exactly equal to a given string. (Case-sensitive)\n */\nexport const filterFn_equalsStringSensitive: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: string,\n) => {\n return row.getValue(columnId)?.toString() === filterValue\n}\n\nfilterFn_equalsStringSensitive.autoRemove = (val: any) => testFalsy(val)\n\n// Number filters\n\n/**\n * Filter function for checking if a number is greater than a given number.\n */\nexport const filterFn_greaterThan: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: Date | number | string,\n) => {\n const rowValue = row.getValue(columnId)\n const numericRowValue =\n rowValue === null || rowValue === undefined ? 0 : +rowValue\n const numericFilterValue = +filterValue\n\n if (!isNaN(numericFilterValue) && !isNaN(numericRowValue)) {\n return numericRowValue > numericFilterValue\n }\n\n const stringValue = (rowValue ?? '').toString().toLowerCase().trim()\n const stringFilterValue = filterValue.toString().toLowerCase().trim()\n return stringValue > stringFilterValue\n}\n\nfilterFn_greaterThan.resolveFilterValue = (val: any) => testFalsy(val)\n\n/**\n * Filter function for checking if a number is greater than or equal to a given number.\n */\nexport const filterFn_greaterThanOrEqualTo: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: Date | number | string,\n) => {\n return (\n filterFn_greaterThan(row as any, columnId, filterValue) ||\n filterFn_equals(row as any, columnId, filterValue)\n )\n}\n\nfilterFn_greaterThanOrEqualTo.resolveFilterValue = (val: any) => testFalsy(val)\n\n/**\n * Filter function for checking if a number is less than a given number.\n */\nexport const filterFn_lessThan: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: Date | number | string,\n) => {\n return !filterFn_greaterThanOrEqualTo(row as any, columnId, filterValue)\n}\n\nfilterFn_lessThan.resolveFilterValue = (val: any) => testFalsy(val)\n\n/**\n * Filter function for checking if a number is less than or equal to a given number.\n */\nexport const filterFn_lessThanOrEqualTo: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: Date | number | string,\n) => {\n return !filterFn_greaterThan(row as any, columnId, filterValue)\n}\n\nfilterFn_lessThanOrEqualTo.resolveFilterValue = (val: any) => testFalsy(val)\n\n// Range filters\n\n/**\n * Filter function for checking if a number or a string is between two given values.\n */\nconst filterFn_between: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValues: [number | string, number | string],\n): boolean =>\n ((['', undefined] as Array<any>).includes(filterValues[0]) ||\n filterFn_greaterThan(row as any, columnId, filterValues[0])) &&\n ((!isNaN(+filterValues[0]) &&\n !isNaN(+filterValues[1]) &&\n +filterValues[0] > +filterValues[1]) ||\n (['', undefined] as Array<any>).includes(filterValues[1]) ||\n filterFn_lessThan(row as any, columnId, filterValues[1]))\n\nfilterFn_between.autoRemove = (val: any) => !val\n\n/**\n * Filter function for checking if a number or a string is between two given values or equal to them.\n */\nconst filterFn_betweenInclusive: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValues: [number | string, number | string],\n): boolean =>\n ((['', undefined] as Array<any>).includes(filterValues[0]) ||\n filterFn_greaterThanOrEqualTo(row as any, columnId, filterValues[0])) &&\n ((!isNaN(+filterValues[0]) &&\n !isNaN(+filterValues[1]) &&\n +filterValues[0] > +filterValues[1]) ||\n (['', undefined] as Array<any>).includes(filterValues[1]) ||\n filterFn_lessThanOrEqualTo(row as any, columnId, filterValues[1]))\n\nfilterFn_betweenInclusive.autoRemove = (val: any) => !val\n\n/**\n * Filter function for checking if a number is within a given range.\n */\nexport const filterFn_inNumberRange: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: [number, number],\n) => {\n const [min, max] = filterValue\n\n const rowValue: number = row.getValue(columnId)\n return rowValue >= min && rowValue <= max\n}\n\nfilterFn_inNumberRange.resolveFilterValue = (val: [any, any]) => {\n const [unsafeMin, unsafeMax] = val\n\n const parsedMin =\n typeof unsafeMin !== 'number' ? parseFloat(unsafeMin) : unsafeMin\n const parsedMax =\n typeof unsafeMax !== 'number' ? parseFloat(unsafeMax) : 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\nfilterFn_inNumberRange.autoRemove = (val: any) =>\n testFalsy(val) || (testFalsy(val[0]) && testFalsy(val[1]))\n\n// Array filters\n\n/**\n * Filter function for checking if an array has a given value.\n */\nexport const filterFn_arrHas: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: Array<unknown>,\n) => {\n return filterValue.some((val) => row.getValue<unknown>(columnId) === val)\n}\n\n/**\n * Filter function for checking if an array includes a given value.\n */\nexport const filterFn_arrIncludes: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: Array<unknown>,\n) => {\n return filterValue.some((val) =>\n (row.getValue<unknown>(columnId) as Array<unknown> | string).includes(\n val as any,\n ),\n )\n}\n\nfilterFn_arrIncludes.autoRemove = (val: any) => testFalsy(val) || !val?.length\n\n/**\n * Filter function for checking if an array includes all of the given values.\n */\nexport const filterFn_arrIncludesAll: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: Array<unknown>,\n) => {\n const value = row.getValue<Array<unknown>>(columnId)\n if (!Array.isArray(value)) return false\n return !filterValue.some((val) => !value.includes(val))\n}\n\nfilterFn_arrIncludesAll.autoRemove = (val: any) =>\n testFalsy(val) || !val?.length\n\n/**\n * Filter function for checking if an array includes any of the given values.\n */\nexport const filterFn_arrIncludesSome: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: Array<unknown>,\n) => {\n const value = row.getValue<Array<unknown>>(columnId)\n if (!Array.isArray(value)) return false\n return filterValue.some((val) => value.includes(val))\n}\n\nfilterFn_arrIncludesSome.autoRemove = (val: any) =>\n testFalsy(val) || !val?.length\n\n// Export\n\nexport const filterFns = {\n arrIncludes: filterFn_arrIncludes,\n arrIncludesAll: filterFn_arrIncludesAll,\n arrHas: filterFn_arrHas,\n arrIncludesSome: filterFn_arrIncludesSome,\n between: filterFn_between,\n betweenInclusive: filterFn_betweenInclusive,\n equals: filterFn_equals,\n equalsString: filterFn_equalsString,\n inNumberRange: filterFn_inNumberRange,\n includesString: filterFn_includesString,\n includesStringSensitive: filterFn_includesStringSensitive,\n weakEquals: filterFn_weakEquals,\n}\n\nexport type BuiltInFilterFn = keyof typeof filterFns\n\n// Utils\n\nfunction testFalsy(val: any) {\n return val === undefined || val === null || val === ''\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"filterFns.cjs","names":[],"sources":["../../src/fns/filterFns.ts"],"sourcesContent":["import type { RowData } from '../types/type-utils'\nimport type { TableFeatures } from '../types/TableFeatures'\nimport type { Row } from '../types/Row'\nimport type { FilterFn } from '../features/column-filtering/columnFilteringFeature.types'\n\n// Basic filters\n\n/**\n * Filter function for checking if a value is exactly equal to a given value. (JS === comparison)\n */\nexport const filterFn_equals: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: unknown,\n) => {\n return row.getValue(columnId) === filterValue\n}\n\nfilterFn_equals.autoRemove = (val: any) => testFalsy(val)\n\n/**\n * Filter function for checking if a value is weakly equal to a given value. (JS == comparison)\n */\nexport const filterFn_weakEquals: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: unknown,\n) => {\n return row.getValue(columnId) == filterValue\n}\n\nfilterFn_weakEquals.autoRemove = (val: any) => testFalsy(val)\n\n// String filters\n\n/**\n * Filter function for checking if a string includes a given substring. (Case-sensitive)\n */\nexport const filterFn_includesStringSensitive: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: string,\n) => {\n return Boolean(\n row.getValue(columnId)?.toString().includes(filterValue.toString()),\n )\n}\n\nfilterFn_includesStringSensitive.autoRemove = (val: any) => testFalsy(val)\n\n/**\n * Filter function for checking if a string includes a given substring. (Non-case-sensitive)\n */\nexport const filterFn_includesString: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: string,\n) => {\n return Boolean(\n row\n .getValue(columnId)\n ?.toString()\n .toLowerCase()\n .includes(filterValue.toString().toLowerCase()),\n )\n}\n\nfilterFn_includesString.autoRemove = (val: any) => testFalsy(val)\n\n/**\n * Filter function for checking if a string is exactly equal to a given string. (Non-case-sensitive)\n */\nexport const filterFn_equalsString: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: string,\n) => {\n return (\n row.getValue(columnId)?.toString().toLowerCase() ===\n filterValue.toLowerCase()\n )\n}\n\nfilterFn_equalsString.autoRemove = (val: any) => testFalsy(val)\n\n/**\n * Filter function for checking if a string is exactly equal to a given string. (Case-sensitive)\n */\nexport const filterFn_equalsStringSensitive: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: string,\n) => {\n return row.getValue(columnId)?.toString() === filterValue\n}\n\nfilterFn_equalsStringSensitive.autoRemove = (val: any) => testFalsy(val)\n\n// Number filters\n\n/**\n * Filter function for checking if a number is greater than a given number.\n */\nexport const filterFn_greaterThan: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: Date | number | string,\n) => {\n const rowValue = row.getValue(columnId)\n const numericRowValue =\n rowValue === null || rowValue === undefined ? 0 : +rowValue\n const numericFilterValue = +filterValue\n\n if (!isNaN(numericFilterValue) && !isNaN(numericRowValue)) {\n return numericRowValue > numericFilterValue\n }\n\n const stringValue = (rowValue ?? '').toString().toLowerCase().trim()\n const stringFilterValue = filterValue.toString().toLowerCase().trim()\n return stringValue > stringFilterValue\n}\n\nfilterFn_greaterThan.resolveFilterValue = (val: any) => testFalsy(val)\n\n/**\n * Filter function for checking if a number is greater than or equal to a given number.\n */\nexport const filterFn_greaterThanOrEqualTo: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: Date | number | string,\n) => {\n return (\n filterFn_greaterThan(row as any, columnId, filterValue) ||\n filterFn_equals(row as any, columnId, filterValue)\n )\n}\n\nfilterFn_greaterThanOrEqualTo.resolveFilterValue = (val: any) => testFalsy(val)\n\n/**\n * Filter function for checking if a number is less than a given number.\n */\nexport const filterFn_lessThan: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: Date | number | string,\n) => {\n return !filterFn_greaterThanOrEqualTo(row as any, columnId, filterValue)\n}\n\nfilterFn_lessThan.resolveFilterValue = (val: any) => testFalsy(val)\n\n/**\n * Filter function for checking if a number is less than or equal to a given number.\n */\nexport const filterFn_lessThanOrEqualTo: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: Date | number | string,\n) => {\n return !filterFn_greaterThan(row as any, columnId, filterValue)\n}\n\nfilterFn_lessThanOrEqualTo.resolveFilterValue = (val: any) => testFalsy(val)\n\n// Range filters\n\n/**\n * Filter function for checking if a number or a string is between two given values.\n */\nconst filterFn_between: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValues: [number | string, number | string],\n): boolean =>\n ((['', undefined] as Array<any>).includes(filterValues[0]) ||\n filterFn_greaterThan(row as any, columnId, filterValues[0])) &&\n ((!isNaN(+filterValues[0]) &&\n !isNaN(+filterValues[1]) &&\n +filterValues[0] > +filterValues[1]) ||\n (['', undefined] as Array<any>).includes(filterValues[1]) ||\n filterFn_lessThan(row as any, columnId, filterValues[1]))\n\nfilterFn_between.autoRemove = (val: any) => !val\n\n/**\n * Filter function for checking if a number or a string is between two given values or equal to them.\n */\nconst filterFn_betweenInclusive: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValues: [number | string, number | string],\n): boolean =>\n ((['', undefined] as Array<any>).includes(filterValues[0]) ||\n filterFn_greaterThanOrEqualTo(row as any, columnId, filterValues[0])) &&\n ((!isNaN(+filterValues[0]) &&\n !isNaN(+filterValues[1]) &&\n +filterValues[0] > +filterValues[1]) ||\n (['', undefined] as Array<any>).includes(filterValues[1]) ||\n filterFn_lessThanOrEqualTo(row as any, columnId, filterValues[1]))\n\nfilterFn_betweenInclusive.autoRemove = (val: any) => !val\n\n/**\n * Filter function for checking if a number is within a given range.\n */\nexport const filterFn_inNumberRange: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: [number, number],\n) => {\n const [min, max] = filterValue\n\n const rowValue: number = row.getValue(columnId)\n return rowValue >= min && rowValue <= max\n}\n\nfilterFn_inNumberRange.resolveFilterValue = (val: [any, any]) => {\n const [unsafeMin, unsafeMax] = val\n\n const parsedMin =\n typeof unsafeMin !== 'number' ? parseFloat(unsafeMin) : unsafeMin\n const parsedMax =\n typeof unsafeMax !== 'number' ? parseFloat(unsafeMax) : 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\nfilterFn_inNumberRange.autoRemove = (val: any) =>\n testFalsy(val) || (testFalsy(val[0]) && testFalsy(val[1]))\n\n// Array filters\n\n/**\n * Filter function for checking if an array has a given value.\n */\nexport const filterFn_arrHas: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: Array<unknown>,\n) => {\n return filterValue.some((val) => row.getValue<unknown>(columnId) === val)\n}\n\n/**\n * Filter function for checking if an array includes a given value.\n */\nexport const filterFn_arrIncludes: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: Array<unknown>,\n) => {\n return filterValue.some((val) =>\n (row.getValue<unknown>(columnId) as Array<unknown> | string).includes(\n val as any,\n ),\n )\n}\n\nfilterFn_arrIncludes.autoRemove = (val: any) => testFalsy(val) || !val?.length\n\n/**\n * Filter function for checking if an array includes all of the given values.\n */\nexport const filterFn_arrIncludesAll: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: Array<unknown>,\n) => {\n const value = row.getValue<Array<unknown>>(columnId)\n if (!Array.isArray(value)) return false\n return !filterValue.some((val) => !value.includes(val))\n}\n\nfilterFn_arrIncludesAll.autoRemove = (val: any) =>\n testFalsy(val) || !val?.length\n\n/**\n * Filter function for checking if an array includes any of the given values.\n */\nexport const filterFn_arrIncludesSome: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: Array<unknown>,\n) => {\n const value = row.getValue<Array<unknown>>(columnId)\n if (!Array.isArray(value)) return false\n return filterValue.some((val) => value.includes(val))\n}\n\nfilterFn_arrIncludesSome.autoRemove = (val: any) =>\n testFalsy(val) || !val?.length\n\n// Export\n\nexport const filterFns = {\n arrIncludes: filterFn_arrIncludes,\n arrIncludesAll: filterFn_arrIncludesAll,\n arrHas: filterFn_arrHas,\n arrIncludesSome: filterFn_arrIncludesSome,\n between: filterFn_between,\n betweenInclusive: filterFn_betweenInclusive,\n equals: filterFn_equals,\n equalsString: filterFn_equalsString,\n inNumberRange: filterFn_inNumberRange,\n includesString: filterFn_includesString,\n includesStringSensitive: filterFn_includesStringSensitive,\n weakEquals: filterFn_weakEquals,\n}\n\nexport type BuiltInFilterFn = keyof typeof filterFns\n\n// Utils\n\nfunction testFalsy(val: any) {\n return val === undefined || val === null || val === ''\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterFns.js","names":[],"sources":["../../src/fns/filterFns.ts"],"sourcesContent":["import type { RowData } from '../types/type-utils'\nimport type { TableFeatures } from '../types/TableFeatures'\nimport type { Row } from '../types/Row'\nimport type { FilterFn } from '../features/column-filtering/columnFilteringFeature.types'\n\n// Basic filters\n\n/**\n * Filter function for checking if a value is exactly equal to a given value. (JS === comparison)\n */\nexport const filterFn_equals: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: unknown,\n) => {\n return row.getValue(columnId) === filterValue\n}\n\nfilterFn_equals.autoRemove = (val: any) => testFalsy(val)\n\n/**\n * Filter function for checking if a value is weakly equal to a given value. (JS == comparison)\n */\nexport const filterFn_weakEquals: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: unknown,\n) => {\n return row.getValue(columnId) == filterValue\n}\n\nfilterFn_weakEquals.autoRemove = (val: any) => testFalsy(val)\n\n// String filters\n\n/**\n * Filter function for checking if a string includes a given substring. (Case-sensitive)\n */\nexport const filterFn_includesStringSensitive: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: string,\n) => {\n return Boolean(\n row.getValue(columnId)?.toString().includes(filterValue.toString()),\n )\n}\n\nfilterFn_includesStringSensitive.autoRemove = (val: any) => testFalsy(val)\n\n/**\n * Filter function for checking if a string includes a given substring. (Non-case-sensitive)\n */\nexport const filterFn_includesString: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: string,\n) => {\n return Boolean(\n row\n .getValue(columnId)\n ?.toString()\n .toLowerCase()\n .includes(filterValue.toString().toLowerCase()),\n )\n}\n\nfilterFn_includesString.autoRemove = (val: any) => testFalsy(val)\n\n/**\n * Filter function for checking if a string is exactly equal to a given string. (Non-case-sensitive)\n */\nexport const filterFn_equalsString: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: string,\n) => {\n return (\n row.getValue(columnId)?.toString().toLowerCase() ===\n filterValue.toLowerCase()\n )\n}\n\nfilterFn_equalsString.autoRemove = (val: any) => testFalsy(val)\n\n/**\n * Filter function for checking if a string is exactly equal to a given string. (Case-sensitive)\n */\nexport const filterFn_equalsStringSensitive: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: string,\n) => {\n return row.getValue(columnId)?.toString() === filterValue\n}\n\nfilterFn_equalsStringSensitive.autoRemove = (val: any) => testFalsy(val)\n\n// Number filters\n\n/**\n * Filter function for checking if a number is greater than a given number.\n */\nexport const filterFn_greaterThan: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: Date | number | string,\n) => {\n const rowValue = row.getValue(columnId)\n const numericRowValue =\n rowValue === null || rowValue === undefined ? 0 : +rowValue\n const numericFilterValue = +filterValue\n\n if (!isNaN(numericFilterValue) && !isNaN(numericRowValue)) {\n return numericRowValue > numericFilterValue\n }\n\n const stringValue = (rowValue ?? '').toString().toLowerCase().trim()\n const stringFilterValue = filterValue.toString().toLowerCase().trim()\n return stringValue > stringFilterValue\n}\n\nfilterFn_greaterThan.resolveFilterValue = (val: any) => testFalsy(val)\n\n/**\n * Filter function for checking if a number is greater than or equal to a given number.\n */\nexport const filterFn_greaterThanOrEqualTo: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: Date | number | string,\n) => {\n return (\n filterFn_greaterThan(row as any, columnId, filterValue) ||\n filterFn_equals(row as any, columnId, filterValue)\n )\n}\n\nfilterFn_greaterThanOrEqualTo.resolveFilterValue = (val: any) => testFalsy(val)\n\n/**\n * Filter function for checking if a number is less than a given number.\n */\nexport const filterFn_lessThan: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: Date | number | string,\n) => {\n return !filterFn_greaterThanOrEqualTo(row as any, columnId, filterValue)\n}\n\nfilterFn_lessThan.resolveFilterValue = (val: any) => testFalsy(val)\n\n/**\n * Filter function for checking if a number is less than or equal to a given number.\n */\nexport const filterFn_lessThanOrEqualTo: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: Date | number | string,\n) => {\n return !filterFn_greaterThan(row as any, columnId, filterValue)\n}\n\nfilterFn_lessThanOrEqualTo.resolveFilterValue = (val: any) => testFalsy(val)\n\n// Range filters\n\n/**\n * Filter function for checking if a number or a string is between two given values.\n */\nconst filterFn_between: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValues: [number | string, number | string],\n): boolean =>\n ((['', undefined] as Array<any>).includes(filterValues[0]) ||\n filterFn_greaterThan(row as any, columnId, filterValues[0])) &&\n ((!isNaN(+filterValues[0]) &&\n !isNaN(+filterValues[1]) &&\n +filterValues[0] > +filterValues[1]) ||\n (['', undefined] as Array<any>).includes(filterValues[1]) ||\n filterFn_lessThan(row as any, columnId, filterValues[1]))\n\nfilterFn_between.autoRemove = (val: any) => !val\n\n/**\n * Filter function for checking if a number or a string is between two given values or equal to them.\n */\nconst filterFn_betweenInclusive: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValues: [number | string, number | string],\n): boolean =>\n ((['', undefined] as Array<any>).includes(filterValues[0]) ||\n filterFn_greaterThanOrEqualTo(row as any, columnId, filterValues[0])) &&\n ((!isNaN(+filterValues[0]) &&\n !isNaN(+filterValues[1]) &&\n +filterValues[0] > +filterValues[1]) ||\n (['', undefined] as Array<any>).includes(filterValues[1]) ||\n filterFn_lessThanOrEqualTo(row as any, columnId, filterValues[1]))\n\nfilterFn_betweenInclusive.autoRemove = (val: any) => !val\n\n/**\n * Filter function for checking if a number is within a given range.\n */\nexport const filterFn_inNumberRange: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: [number, number],\n) => {\n const [min, max] = filterValue\n\n const rowValue: number = row.getValue(columnId)\n return rowValue >= min && rowValue <= max\n}\n\nfilterFn_inNumberRange.resolveFilterValue = (val: [any, any]) => {\n const [unsafeMin, unsafeMax] = val\n\n const parsedMin =\n typeof unsafeMin !== 'number' ? parseFloat(unsafeMin) : unsafeMin\n const parsedMax =\n typeof unsafeMax !== 'number' ? parseFloat(unsafeMax) : 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\nfilterFn_inNumberRange.autoRemove = (val: any) =>\n testFalsy(val) || (testFalsy(val[0]) && testFalsy(val[1]))\n\n// Array filters\n\n/**\n * Filter function for checking if an array has a given value.\n */\nexport const filterFn_arrHas: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: Array<unknown>,\n) => {\n return filterValue.some((val) => row.getValue<unknown>(columnId) === val)\n}\n\n/**\n * Filter function for checking if an array includes a given value.\n */\nexport const filterFn_arrIncludes: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: Array<unknown>,\n) => {\n return filterValue.some((val) =>\n (row.getValue<unknown>(columnId) as Array<unknown> | string).includes(\n val as any,\n ),\n )\n}\n\nfilterFn_arrIncludes.autoRemove = (val: any) => testFalsy(val) || !val?.length\n\n/**\n * Filter function for checking if an array includes all of the given values.\n */\nexport const filterFn_arrIncludesAll: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: Array<unknown>,\n) => {\n const value = row.getValue<Array<unknown>>(columnId)\n if (!Array.isArray(value)) return false\n return !filterValue.some((val) => !value.includes(val))\n}\n\nfilterFn_arrIncludesAll.autoRemove = (val: any) =>\n testFalsy(val) || !val?.length\n\n/**\n * Filter function for checking if an array includes any of the given values.\n */\nexport const filterFn_arrIncludesSome: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: Array<unknown>,\n) => {\n const value = row.getValue<Array<unknown>>(columnId)\n if (!Array.isArray(value)) return false\n return filterValue.some((val) => value.includes(val))\n}\n\nfilterFn_arrIncludesSome.autoRemove = (val: any) =>\n testFalsy(val) || !val?.length\n\n// Export\n\nexport const filterFns = {\n arrIncludes: filterFn_arrIncludes,\n arrIncludesAll: filterFn_arrIncludesAll,\n arrHas: filterFn_arrHas,\n arrIncludesSome: filterFn_arrIncludesSome,\n between: filterFn_between,\n betweenInclusive: filterFn_betweenInclusive,\n equals: filterFn_equals,\n equalsString: filterFn_equalsString,\n inNumberRange: filterFn_inNumberRange,\n includesString: filterFn_includesString,\n includesStringSensitive: filterFn_includesStringSensitive,\n weakEquals: filterFn_weakEquals,\n}\n\nexport type BuiltInFilterFn = keyof typeof filterFns\n\n// Utils\n\nfunction testFalsy(val: any) {\n return val === undefined || val === null || val === ''\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"filterFns.js","names":[],"sources":["../../src/fns/filterFns.ts"],"sourcesContent":["import type { RowData } from '../types/type-utils'\nimport type { TableFeatures } from '../types/TableFeatures'\nimport type { Row } from '../types/Row'\nimport type { FilterFn } from '../features/column-filtering/columnFilteringFeature.types'\n\n// Basic filters\n\n/**\n * Filter function for checking if a value is exactly equal to a given value. (JS === comparison)\n */\nexport const filterFn_equals: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: unknown,\n) => {\n return row.getValue(columnId) === filterValue\n}\n\nfilterFn_equals.autoRemove = (val: any) => testFalsy(val)\n\n/**\n * Filter function for checking if a value is weakly equal to a given value. (JS == comparison)\n */\nexport const filterFn_weakEquals: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: unknown,\n) => {\n return row.getValue(columnId) == filterValue\n}\n\nfilterFn_weakEquals.autoRemove = (val: any) => testFalsy(val)\n\n// String filters\n\n/**\n * Filter function for checking if a string includes a given substring. (Case-sensitive)\n */\nexport const filterFn_includesStringSensitive: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: string,\n) => {\n return Boolean(\n row.getValue(columnId)?.toString().includes(filterValue.toString()),\n )\n}\n\nfilterFn_includesStringSensitive.autoRemove = (val: any) => testFalsy(val)\n\n/**\n * Filter function for checking if a string includes a given substring. (Non-case-sensitive)\n */\nexport const filterFn_includesString: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: string,\n) => {\n return Boolean(\n row\n .getValue(columnId)\n ?.toString()\n .toLowerCase()\n .includes(filterValue.toString().toLowerCase()),\n )\n}\n\nfilterFn_includesString.autoRemove = (val: any) => testFalsy(val)\n\n/**\n * Filter function for checking if a string is exactly equal to a given string. (Non-case-sensitive)\n */\nexport const filterFn_equalsString: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: string,\n) => {\n return (\n row.getValue(columnId)?.toString().toLowerCase() ===\n filterValue.toLowerCase()\n )\n}\n\nfilterFn_equalsString.autoRemove = (val: any) => testFalsy(val)\n\n/**\n * Filter function for checking if a string is exactly equal to a given string. (Case-sensitive)\n */\nexport const filterFn_equalsStringSensitive: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: string,\n) => {\n return row.getValue(columnId)?.toString() === filterValue\n}\n\nfilterFn_equalsStringSensitive.autoRemove = (val: any) => testFalsy(val)\n\n// Number filters\n\n/**\n * Filter function for checking if a number is greater than a given number.\n */\nexport const filterFn_greaterThan: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: Date | number | string,\n) => {\n const rowValue = row.getValue(columnId)\n const numericRowValue =\n rowValue === null || rowValue === undefined ? 0 : +rowValue\n const numericFilterValue = +filterValue\n\n if (!isNaN(numericFilterValue) && !isNaN(numericRowValue)) {\n return numericRowValue > numericFilterValue\n }\n\n const stringValue = (rowValue ?? '').toString().toLowerCase().trim()\n const stringFilterValue = filterValue.toString().toLowerCase().trim()\n return stringValue > stringFilterValue\n}\n\nfilterFn_greaterThan.resolveFilterValue = (val: any) => testFalsy(val)\n\n/**\n * Filter function for checking if a number is greater than or equal to a given number.\n */\nexport const filterFn_greaterThanOrEqualTo: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: Date | number | string,\n) => {\n return (\n filterFn_greaterThan(row as any, columnId, filterValue) ||\n filterFn_equals(row as any, columnId, filterValue)\n )\n}\n\nfilterFn_greaterThanOrEqualTo.resolveFilterValue = (val: any) => testFalsy(val)\n\n/**\n * Filter function for checking if a number is less than a given number.\n */\nexport const filterFn_lessThan: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: Date | number | string,\n) => {\n return !filterFn_greaterThanOrEqualTo(row as any, columnId, filterValue)\n}\n\nfilterFn_lessThan.resolveFilterValue = (val: any) => testFalsy(val)\n\n/**\n * Filter function for checking if a number is less than or equal to a given number.\n */\nexport const filterFn_lessThanOrEqualTo: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: Date | number | string,\n) => {\n return !filterFn_greaterThan(row as any, columnId, filterValue)\n}\n\nfilterFn_lessThanOrEqualTo.resolveFilterValue = (val: any) => testFalsy(val)\n\n// Range filters\n\n/**\n * Filter function for checking if a number or a string is between two given values.\n */\nconst filterFn_between: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValues: [number | string, number | string],\n): boolean =>\n ((['', undefined] as Array<any>).includes(filterValues[0]) ||\n filterFn_greaterThan(row as any, columnId, filterValues[0])) &&\n ((!isNaN(+filterValues[0]) &&\n !isNaN(+filterValues[1]) &&\n +filterValues[0] > +filterValues[1]) ||\n (['', undefined] as Array<any>).includes(filterValues[1]) ||\n filterFn_lessThan(row as any, columnId, filterValues[1]))\n\nfilterFn_between.autoRemove = (val: any) => !val\n\n/**\n * Filter function for checking if a number or a string is between two given values or equal to them.\n */\nconst filterFn_betweenInclusive: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValues: [number | string, number | string],\n): boolean =>\n ((['', undefined] as Array<any>).includes(filterValues[0]) ||\n filterFn_greaterThanOrEqualTo(row as any, columnId, filterValues[0])) &&\n ((!isNaN(+filterValues[0]) &&\n !isNaN(+filterValues[1]) &&\n +filterValues[0] > +filterValues[1]) ||\n (['', undefined] as Array<any>).includes(filterValues[1]) ||\n filterFn_lessThanOrEqualTo(row as any, columnId, filterValues[1]))\n\nfilterFn_betweenInclusive.autoRemove = (val: any) => !val\n\n/**\n * Filter function for checking if a number is within a given range.\n */\nexport const filterFn_inNumberRange: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: [number, number],\n) => {\n const [min, max] = filterValue\n\n const rowValue: number = row.getValue(columnId)\n return rowValue >= min && rowValue <= max\n}\n\nfilterFn_inNumberRange.resolveFilterValue = (val: [any, any]) => {\n const [unsafeMin, unsafeMax] = val\n\n const parsedMin =\n typeof unsafeMin !== 'number' ? parseFloat(unsafeMin) : unsafeMin\n const parsedMax =\n typeof unsafeMax !== 'number' ? parseFloat(unsafeMax) : 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\nfilterFn_inNumberRange.autoRemove = (val: any) =>\n testFalsy(val) || (testFalsy(val[0]) && testFalsy(val[1]))\n\n// Array filters\n\n/**\n * Filter function for checking if an array has a given value.\n */\nexport const filterFn_arrHas: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: Array<unknown>,\n) => {\n return filterValue.some((val) => row.getValue<unknown>(columnId) === val)\n}\n\n/**\n * Filter function for checking if an array includes a given value.\n */\nexport const filterFn_arrIncludes: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: Array<unknown>,\n) => {\n return filterValue.some((val) =>\n (row.getValue<unknown>(columnId) as Array<unknown> | string).includes(\n val as any,\n ),\n )\n}\n\nfilterFn_arrIncludes.autoRemove = (val: any) => testFalsy(val) || !val?.length\n\n/**\n * Filter function for checking if an array includes all of the given values.\n */\nexport const filterFn_arrIncludesAll: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: Array<unknown>,\n) => {\n const value = row.getValue<Array<unknown>>(columnId)\n if (!Array.isArray(value)) return false\n return !filterValue.some((val) => !value.includes(val))\n}\n\nfilterFn_arrIncludesAll.autoRemove = (val: any) =>\n testFalsy(val) || !val?.length\n\n/**\n * Filter function for checking if an array includes any of the given values.\n */\nexport const filterFn_arrIncludesSome: FilterFn<any, any> = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n row: Row<TFeatures, TData>,\n columnId: string,\n filterValue: Array<unknown>,\n) => {\n const value = row.getValue<Array<unknown>>(columnId)\n if (!Array.isArray(value)) return false\n return filterValue.some((val) => value.includes(val))\n}\n\nfilterFn_arrIncludesSome.autoRemove = (val: any) =>\n testFalsy(val) || !val?.length\n\n// Export\n\nexport const filterFns = {\n arrIncludes: filterFn_arrIncludes,\n arrIncludesAll: filterFn_arrIncludesAll,\n arrHas: filterFn_arrHas,\n arrIncludesSome: filterFn_arrIncludesSome,\n between: filterFn_between,\n betweenInclusive: filterFn_betweenInclusive,\n equals: filterFn_equals,\n equalsString: filterFn_equalsString,\n inNumberRange: filterFn_inNumberRange,\n includesString: filterFn_includesString,\n includesStringSensitive: filterFn_includesStringSensitive,\n weakEquals: filterFn_weakEquals,\n}\n\nexport type BuiltInFilterFn = keyof typeof filterFns\n\n// Utils\n\nfunction testFalsy(val: any) {\n return val === undefined || val === null || val === ''\n}\n"],"mappings":"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"}
|
package/dist/index.cjs
CHANGED
|
@@ -15,7 +15,6 @@ const require_coreTablesFeature = require('./core/table/coreTablesFeature.cjs');
|
|
|
15
15
|
const require_coreFeatures = require('./core/coreFeatures.cjs');
|
|
16
16
|
const require_columnHelper = require('./helpers/columnHelper.cjs');
|
|
17
17
|
const require_tableFeatures = require('./helpers/tableFeatures.cjs');
|
|
18
|
-
const require_tableHelper = require('./helpers/tableHelper.cjs');
|
|
19
18
|
const require_tableOptions = require('./helpers/tableOptions.cjs');
|
|
20
19
|
const require_constructTable = require('./core/table/constructTable.cjs');
|
|
21
20
|
const require_aggregationFns = require('./fns/aggregationFns.cjs');
|
|
@@ -61,6 +60,7 @@ exports.assignPrototypeAPIs = require_utils.assignPrototypeAPIs;
|
|
|
61
60
|
exports.assignTableAPIs = require_utils.assignTableAPIs;
|
|
62
61
|
exports.buildHeaderGroups = require_buildHeaderGroups.buildHeaderGroups;
|
|
63
62
|
exports.callMemoOrStaticFn = require_utils.callMemoOrStaticFn;
|
|
63
|
+
exports.cloneState = require_utils.cloneState;
|
|
64
64
|
exports.columnFacetingFeature = require_columnFacetingFeature.columnFacetingFeature;
|
|
65
65
|
exports.columnFilteringFeature = require_columnFilteringFeature.columnFilteringFeature;
|
|
66
66
|
exports.columnGroupingFeature = require_columnGroupingFeature.columnGroupingFeature;
|
|
@@ -95,7 +95,6 @@ exports.constructRowPinningFeature = require_rowPinningFeature.constructRowPinni
|
|
|
95
95
|
exports.constructRowSelectionFeature = require_rowSelectionFeature.constructRowSelectionFeature;
|
|
96
96
|
exports.constructRowSortingFeature = require_rowSortingFeature.constructRowSortingFeature;
|
|
97
97
|
exports.constructTable = require_constructTable.constructTable;
|
|
98
|
-
exports.constructTableHelper = require_tableHelper.constructTableHelper;
|
|
99
98
|
exports.coreCellsFeature = require_coreCellsFeature.coreCellsFeature;
|
|
100
99
|
exports.coreColumnsFeature = require_coreColumnsFeature.coreColumnsFeature;
|
|
101
100
|
exports.coreFeatures = require_coreFeatures.coreFeatures;
|
package/dist/index.d.cts
CHANGED
|
@@ -58,9 +58,8 @@ import { AggregationFn, AggregationFnOption, AggregationFns, CachedRowModel_Grou
|
|
|
58
58
|
import { Cell, Cell_Core, Cell_Plugins } from "./types/Cell.cjs";
|
|
59
59
|
import { ColumnHelper, createColumnHelper } from "./helpers/columnHelper.cjs";
|
|
60
60
|
import { tableFeatures } from "./helpers/tableFeatures.cjs";
|
|
61
|
-
import { TableHelperOptions, TableHelper_Core, constructTableHelper } from "./helpers/tableHelper.cjs";
|
|
62
61
|
import { tableOptions } from "./helpers/tableOptions.cjs";
|
|
63
|
-
import { $internalMemoFnMeta, API, APIObject, MemoFnMeta, PrototypeAPI, PrototypeAPIObject, assignPrototypeAPIs, assignTableAPIs, callMemoOrStaticFn, flattenBy, functionalUpdate, getFunctionNameInfo, getMemoFnMeta, isFunction, isNumberArray, makeStateUpdater, memo, noop, tableMemo } from "./utils.cjs";
|
|
62
|
+
import { $internalMemoFnMeta, API, APIObject, MemoFnMeta, PrototypeAPI, PrototypeAPIObject, assignPrototypeAPIs, assignTableAPIs, callMemoOrStaticFn, cloneState, flattenBy, functionalUpdate, getFunctionNameInfo, getMemoFnMeta, isFunction, isNumberArray, makeStateUpdater, memo, noop, tableMemo } from "./utils.cjs";
|
|
64
63
|
import { constructCell } from "./core/cells/constructCell.cjs";
|
|
65
64
|
import { constructColumn } from "./core/columns/constructColumn.cjs";
|
|
66
65
|
import { buildHeaderGroups } from "./core/headers/buildHeaderGroups.cjs";
|
|
@@ -77,4 +76,4 @@ import { createGroupedRowModel } from "./features/column-grouping/createGroupedR
|
|
|
77
76
|
import { createExpandedRowModel, expandRows } from "./features/row-expanding/createExpandedRowModel.cjs";
|
|
78
77
|
import { createPaginatedRowModel } from "./features/row-pagination/createPaginatedRowModel.cjs";
|
|
79
78
|
import { createSortedRowModel } from "./features/row-sorting/createSortedRowModel.cjs";
|
|
80
|
-
export { $internalMemoFnMeta, API, APIObject, AccessorColumnDef, AccessorFn, AccessorFnColumnDef, AccessorFnColumnDefBase, AccessorKeyColumnDef, AccessorKeyColumnDefBase, AggregationFn, AggregationFnOption, AggregationFns, AssignCellPrototype, AssignColumnPrototype, AssignHeaderPrototype, AssignRowPrototype, Atoms, Atoms_All, BaseAtoms, BaseAtoms_All, BuiltInAggregationFn, BuiltInFilterFn, BuiltInSortFn, CachedRowModel_All, CachedRowModel_Core, CachedRowModel_Expanded, CachedRowModel_Faceted, CachedRowModel_Filtered, CachedRowModel_Grouped, CachedRowModel_Paginated, CachedRowModel_Plugins, CachedRowModel_Sorted, CachedRowModels, CachedRowModels_Plugins, Cell, CellContext, CellData, Cell_Cell, Cell_ColumnGrouping, Cell_Core, Cell_CoreProperties, Cell_Plugins, Column, ColumnDef, ColumnDefBase, ColumnDefBase_All, ColumnDefResolved, ColumnDefTemplate, ColumnDef_ColumnFiltering, ColumnDef_ColumnGrouping, ColumnDef_ColumnPinning, ColumnDef_ColumnResizing, ColumnDef_ColumnSizing, ColumnDef_ColumnVisibility, ColumnDef_GlobalFiltering, ColumnDef_Plugins, ColumnDef_RowSorting, ColumnDefaultOptions, ColumnFilter, ColumnFilterAutoRemoveTestFn, ColumnFiltersState, ColumnHelper, ColumnMeta, ColumnOrderDefaultOptions, ColumnOrderState, ColumnPinningDefaultOptions, ColumnPinningPosition, ColumnPinningState, ColumnResizeDirection, ColumnResizeMode, ColumnResizingDefaultOptions, ColumnSizingDefaultOptions, ColumnSizingState, ColumnSort, ColumnVisibilityState, Column_Column, Column_ColumnFaceting, Column_ColumnFiltering, Column_ColumnGrouping, Column_ColumnOrdering, Column_ColumnPinning, Column_ColumnResizing, Column_ColumnSizing, Column_ColumnVisibility, Column_Core, Column_CoreProperties, Column_GlobalFiltering, Column_Internal, Column_Plugins, Column_RowSorting, ConstructTableAPIs, CoreFeatures, CreateRowModel_Core, CreateRowModel_Expanded, CreateRowModel_Faceted, CreateRowModel_Filtered, CreateRowModel_Grouped, CreateRowModel_Paginated, CreateRowModel_Plugins, CreateRowModel_Sorted, CreateRowModels, CreateRowModels_All, CreateRowModels_Plugins, CustomAggregationFns, CustomFilterFns, CustomSortFns, DebugOptions, DeepKeys, DeepValue, DisplayColumnDef, ExpandedState, ExpandedStateList, ExternalAtoms, ExternalAtoms_All, ExtractFeatureTypes, FilterFn, FilterFnOption, FilterFns, FilterMeta, GetDefaultColumnDef, GetDefaultStateSelector, GetDefaultTableOptions, GetInitialState, Getter, GroupColumnDef, GroupingColumnMode, GroupingState, Header, HeaderContext, HeaderGroup, HeaderGroup_Core, HeaderGroup_Header, HeaderGroup_Plugins, Header_ColumnResizing, Header_ColumnSizing, Header_Core, Header_CoreProperties, Header_Header, Header_Plugins, IdIdentifier, IdentifiedColumnDef, InitRowInstanceData, MemoFnMeta, NoInfer, OnChangeFn, PaginationDefaultOptions, PaginationState, PartialKeys, Plugins, Prettify, PrototypeAPI, PrototypeAPIObject, RequiredKeys, ResolvedColumnFilter, Row, RowData, RowModel, RowModelFns, RowModelFns_All, RowModelFns_ColumnFiltering, RowModelFns_ColumnGrouping, RowModelFns_Core, RowModelFns_Plugins, RowModelFns_RowSorting, RowPinningDefaultOptions, RowPinningPosition, RowPinningState, RowSelectionState, Row_ColumnFiltering, Row_ColumnGrouping, Row_ColumnPinning, Row_ColumnVisibility, Row_Core, Row_CoreProperties, Row_Plugins, Row_Row, Row_RowExpanding, Row_RowPinning, Row_RowSelection, SortDirection, SortFn, SortFnOption, SortFns, SortingState, StockFeatures, StringHeaderIdentifier, StringOrTemplateHeader, Table, TableFeature, TableFeatures,
|
|
79
|
+
export { $internalMemoFnMeta, API, APIObject, AccessorColumnDef, AccessorFn, AccessorFnColumnDef, AccessorFnColumnDefBase, AccessorKeyColumnDef, AccessorKeyColumnDefBase, AggregationFn, AggregationFnOption, AggregationFns, AssignCellPrototype, AssignColumnPrototype, AssignHeaderPrototype, AssignRowPrototype, Atoms, Atoms_All, BaseAtoms, BaseAtoms_All, BuiltInAggregationFn, BuiltInFilterFn, BuiltInSortFn, CachedRowModel_All, CachedRowModel_Core, CachedRowModel_Expanded, CachedRowModel_Faceted, CachedRowModel_Filtered, CachedRowModel_Grouped, CachedRowModel_Paginated, CachedRowModel_Plugins, CachedRowModel_Sorted, CachedRowModels, CachedRowModels_Plugins, Cell, CellContext, CellData, Cell_Cell, Cell_ColumnGrouping, Cell_Core, Cell_CoreProperties, Cell_Plugins, Column, ColumnDef, ColumnDefBase, ColumnDefBase_All, ColumnDefResolved, ColumnDefTemplate, ColumnDef_ColumnFiltering, ColumnDef_ColumnGrouping, ColumnDef_ColumnPinning, ColumnDef_ColumnResizing, ColumnDef_ColumnSizing, ColumnDef_ColumnVisibility, ColumnDef_GlobalFiltering, ColumnDef_Plugins, ColumnDef_RowSorting, ColumnDefaultOptions, ColumnFilter, ColumnFilterAutoRemoveTestFn, ColumnFiltersState, ColumnHelper, ColumnMeta, ColumnOrderDefaultOptions, ColumnOrderState, ColumnPinningDefaultOptions, ColumnPinningPosition, ColumnPinningState, ColumnResizeDirection, ColumnResizeMode, ColumnResizingDefaultOptions, ColumnSizingDefaultOptions, ColumnSizingState, ColumnSort, ColumnVisibilityState, Column_Column, Column_ColumnFaceting, Column_ColumnFiltering, Column_ColumnGrouping, Column_ColumnOrdering, Column_ColumnPinning, Column_ColumnResizing, Column_ColumnSizing, Column_ColumnVisibility, Column_Core, Column_CoreProperties, Column_GlobalFiltering, Column_Internal, Column_Plugins, Column_RowSorting, ConstructTableAPIs, CoreFeatures, CreateRowModel_Core, CreateRowModel_Expanded, CreateRowModel_Faceted, CreateRowModel_Filtered, CreateRowModel_Grouped, CreateRowModel_Paginated, CreateRowModel_Plugins, CreateRowModel_Sorted, CreateRowModels, CreateRowModels_All, CreateRowModels_Plugins, CustomAggregationFns, CustomFilterFns, CustomSortFns, DebugOptions, DeepKeys, DeepValue, DisplayColumnDef, ExpandedState, ExpandedStateList, ExternalAtoms, ExternalAtoms_All, ExtractFeatureTypes, FilterFn, FilterFnOption, FilterFns, FilterMeta, GetDefaultColumnDef, GetDefaultStateSelector, GetDefaultTableOptions, GetInitialState, Getter, GroupColumnDef, GroupingColumnMode, GroupingState, Header, HeaderContext, HeaderGroup, HeaderGroup_Core, HeaderGroup_Header, HeaderGroup_Plugins, Header_ColumnResizing, Header_ColumnSizing, Header_Core, Header_CoreProperties, Header_Header, Header_Plugins, IdIdentifier, IdentifiedColumnDef, InitRowInstanceData, MemoFnMeta, NoInfer, OnChangeFn, PaginationDefaultOptions, PaginationState, PartialKeys, Plugins, Prettify, PrototypeAPI, PrototypeAPIObject, RequiredKeys, ResolvedColumnFilter, Row, RowData, RowModel, RowModelFns, RowModelFns_All, RowModelFns_ColumnFiltering, RowModelFns_ColumnGrouping, RowModelFns_Core, RowModelFns_Plugins, RowModelFns_RowSorting, RowPinningDefaultOptions, RowPinningPosition, RowPinningState, RowSelectionState, Row_ColumnFiltering, Row_ColumnGrouping, Row_ColumnPinning, Row_ColumnVisibility, Row_Core, Row_CoreProperties, Row_Plugins, Row_Row, Row_RowExpanding, Row_RowPinning, Row_RowSelection, SortDirection, SortFn, SortFnOption, SortFns, SortingState, StockFeatures, StringHeaderIdentifier, StringOrTemplateHeader, Table, TableFeature, TableFeatures, TableMeta, TableOptions, TableOptions_All, TableOptions_Cell, TableOptions_ColumnFiltering, TableOptions_ColumnGrouping, TableOptions_ColumnOrdering, TableOptions_ColumnPinning, TableOptions_ColumnResizing, TableOptions_ColumnSizing, TableOptions_ColumnVisibility, TableOptions_Columns, TableOptions_Core, TableOptions_GlobalFiltering, TableOptions_Plugins, TableOptions_RowExpanding, TableOptions_RowPagination, TableOptions_RowPinning, TableOptions_RowSelection, TableOptions_RowSorting, TableOptions_Rows, TableOptions_Table, TableState, TableState_All, TableState_ColumnFiltering, TableState_ColumnGrouping, TableState_ColumnOrdering, TableState_ColumnPinning, TableState_ColumnResizing, TableState_ColumnSizing, TableState_ColumnVisibility, TableState_GlobalFiltering, TableState_Plugins, TableState_RowExpanding, TableState_RowPagination, TableState_RowPinning, TableState_RowSelection, TableState_RowSorting, Table_ColumnFaceting, Table_ColumnFiltering, Table_ColumnGrouping, Table_ColumnOrdering, Table_ColumnPinning, Table_ColumnResizing, Table_ColumnSizing, Table_ColumnVisibility, Table_Columns, Table_Core, Table_CoreProperties, Table_GlobalFiltering, Table_Headers, Table_Internal, Table_Plugins, Table_RowExpanding, Table_RowModels, Table_RowModels_Core, Table_RowModels_Expanded, Table_RowModels_Faceted, Table_RowModels_Filtered, Table_RowModels_Grouped, Table_RowModels_Paginated, Table_RowModels_Sorted, Table_RowPagination, Table_RowPinning, Table_RowSelection, Table_RowSorting, Table_Rows, Table_Table, TransformFilterValueFn, UnionToIntersection, Updater, VisibilityDefaultOptions, aggregationFn_count, aggregationFn_extent, aggregationFn_max, aggregationFn_mean, aggregationFn_median, aggregationFn_min, aggregationFn_sum, aggregationFn_unique, aggregationFn_uniqueCount, aggregationFns, assignPrototypeAPIs, assignTableAPIs, buildHeaderGroups, callMemoOrStaticFn, cloneState, columnFacetingFeature, columnFilteringFeature, columnGroupingFeature, columnOrderingFeature, columnPinningFeature, columnResizingFeature, columnResizingState, columnSizingFeature, columnVisibilityFeature, constructCell, constructColumn, constructColumnFacetingFeature, constructColumnFilteringFeature, constructColumnGroupingFeature, constructColumnOrderingFeature, constructColumnPinningFeature, constructColumnResizingFeature, constructColumnSizingFeature, constructColumnVisibilityFeature, constructCoreCellsFeature, constructCoreColumnsFeature, constructCoreHeadersFeature, constructCoreRowModelsFeature, constructCoreRowsFeature, constructCoreTablesFeature, constructGlobalFilteringFeature, constructHeader, constructReactivityFeature, constructRow, constructRowExpandingFeature, constructRowPaginationFeature, constructRowPinningFeature, constructRowSelectionFeature, constructRowSortingFeature, constructTable, coreCellsFeature, coreColumnsFeature, coreFeatures, coreHeadersFeature, coreRowModelsFeature, coreRowsFeature, coreTablesFeature, createColumnHelper, createCoreRowModel, createExpandedRowModel, createFacetedMinMaxValues, createFacetedRowModel, createFacetedUniqueValues, createFilteredRowModel, createGroupedRowModel, createPaginatedRowModel, createSortedRowModel, expandRows, filterFn_arrHas, filterFn_arrIncludes, filterFn_arrIncludesAll, filterFn_arrIncludesSome, filterFn_equals, filterFn_equalsString, filterFn_equalsStringSensitive, filterFn_greaterThan, filterFn_greaterThanOrEqualTo, filterFn_inNumberRange, filterFn_includesString, filterFn_includesStringSensitive, filterFn_lessThan, filterFn_lessThanOrEqualTo, filterFn_weakEquals, filterFns, flattenBy, functionalUpdate, getFunctionNameInfo, getInitialTableState, getMemoFnMeta, globalFilteringFeature, isFunction, isNumberArray, makeStateUpdater, memo, noop, reSplitAlphaNumeric, rowExpandingFeature, rowPaginationFeature, rowPinningFeature, rowSelectionFeature, rowSortingFeature, sortFn_alphanumeric, sortFn_alphanumericCaseSensitive, sortFn_basic, sortFn_datetime, sortFn_text, sortFn_textCaseSensitive, sortFns, stockFeatures, tableFeatures, tableMemo, tableOptions };
|
package/dist/index.d.ts
CHANGED
|
@@ -58,9 +58,8 @@ import { AggregationFn, AggregationFnOption, AggregationFns, CachedRowModel_Grou
|
|
|
58
58
|
import { Cell, Cell_Core, Cell_Plugins } from "./types/Cell.js";
|
|
59
59
|
import { ColumnHelper, createColumnHelper } from "./helpers/columnHelper.js";
|
|
60
60
|
import { tableFeatures } from "./helpers/tableFeatures.js";
|
|
61
|
-
import { TableHelperOptions, TableHelper_Core, constructTableHelper } from "./helpers/tableHelper.js";
|
|
62
61
|
import { tableOptions } from "./helpers/tableOptions.js";
|
|
63
|
-
import { $internalMemoFnMeta, API, APIObject, MemoFnMeta, PrototypeAPI, PrototypeAPIObject, assignPrototypeAPIs, assignTableAPIs, callMemoOrStaticFn, flattenBy, functionalUpdate, getFunctionNameInfo, getMemoFnMeta, isFunction, isNumberArray, makeStateUpdater, memo, noop, tableMemo } from "./utils.js";
|
|
62
|
+
import { $internalMemoFnMeta, API, APIObject, MemoFnMeta, PrototypeAPI, PrototypeAPIObject, assignPrototypeAPIs, assignTableAPIs, callMemoOrStaticFn, cloneState, flattenBy, functionalUpdate, getFunctionNameInfo, getMemoFnMeta, isFunction, isNumberArray, makeStateUpdater, memo, noop, tableMemo } from "./utils.js";
|
|
64
63
|
import { constructCell } from "./core/cells/constructCell.js";
|
|
65
64
|
import { constructColumn } from "./core/columns/constructColumn.js";
|
|
66
65
|
import { buildHeaderGroups } from "./core/headers/buildHeaderGroups.js";
|
|
@@ -77,4 +76,4 @@ import { createGroupedRowModel } from "./features/column-grouping/createGroupedR
|
|
|
77
76
|
import { createExpandedRowModel, expandRows } from "./features/row-expanding/createExpandedRowModel.js";
|
|
78
77
|
import { createPaginatedRowModel } from "./features/row-pagination/createPaginatedRowModel.js";
|
|
79
78
|
import { createSortedRowModel } from "./features/row-sorting/createSortedRowModel.js";
|
|
80
|
-
export { $internalMemoFnMeta, API, APIObject, AccessorColumnDef, AccessorFn, AccessorFnColumnDef, AccessorFnColumnDefBase, AccessorKeyColumnDef, AccessorKeyColumnDefBase, AggregationFn, AggregationFnOption, AggregationFns, AssignCellPrototype, AssignColumnPrototype, AssignHeaderPrototype, AssignRowPrototype, Atoms, Atoms_All, BaseAtoms, BaseAtoms_All, BuiltInAggregationFn, BuiltInFilterFn, BuiltInSortFn, CachedRowModel_All, CachedRowModel_Core, CachedRowModel_Expanded, CachedRowModel_Faceted, CachedRowModel_Filtered, CachedRowModel_Grouped, CachedRowModel_Paginated, CachedRowModel_Plugins, CachedRowModel_Sorted, CachedRowModels, CachedRowModels_Plugins, Cell, CellContext, CellData, Cell_Cell, Cell_ColumnGrouping, Cell_Core, Cell_CoreProperties, Cell_Plugins, Column, ColumnDef, ColumnDefBase, ColumnDefBase_All, ColumnDefResolved, ColumnDefTemplate, ColumnDef_ColumnFiltering, ColumnDef_ColumnGrouping, ColumnDef_ColumnPinning, ColumnDef_ColumnResizing, ColumnDef_ColumnSizing, ColumnDef_ColumnVisibility, ColumnDef_GlobalFiltering, ColumnDef_Plugins, ColumnDef_RowSorting, ColumnDefaultOptions, ColumnFilter, ColumnFilterAutoRemoveTestFn, ColumnFiltersState, ColumnHelper, ColumnMeta, ColumnOrderDefaultOptions, ColumnOrderState, ColumnPinningDefaultOptions, ColumnPinningPosition, ColumnPinningState, ColumnResizeDirection, ColumnResizeMode, ColumnResizingDefaultOptions, ColumnSizingDefaultOptions, ColumnSizingState, ColumnSort, ColumnVisibilityState, Column_Column, Column_ColumnFaceting, Column_ColumnFiltering, Column_ColumnGrouping, Column_ColumnOrdering, Column_ColumnPinning, Column_ColumnResizing, Column_ColumnSizing, Column_ColumnVisibility, Column_Core, Column_CoreProperties, Column_GlobalFiltering, Column_Internal, Column_Plugins, Column_RowSorting, ConstructTableAPIs, CoreFeatures, CreateRowModel_Core, CreateRowModel_Expanded, CreateRowModel_Faceted, CreateRowModel_Filtered, CreateRowModel_Grouped, CreateRowModel_Paginated, CreateRowModel_Plugins, CreateRowModel_Sorted, CreateRowModels, CreateRowModels_All, CreateRowModels_Plugins, CustomAggregationFns, CustomFilterFns, CustomSortFns, DebugOptions, DeepKeys, DeepValue, DisplayColumnDef, ExpandedState, ExpandedStateList, ExternalAtoms, ExternalAtoms_All, ExtractFeatureTypes, FilterFn, FilterFnOption, FilterFns, FilterMeta, GetDefaultColumnDef, GetDefaultStateSelector, GetDefaultTableOptions, GetInitialState, Getter, GroupColumnDef, GroupingColumnMode, GroupingState, Header, HeaderContext, HeaderGroup, HeaderGroup_Core, HeaderGroup_Header, HeaderGroup_Plugins, Header_ColumnResizing, Header_ColumnSizing, Header_Core, Header_CoreProperties, Header_Header, Header_Plugins, IdIdentifier, IdentifiedColumnDef, InitRowInstanceData, MemoFnMeta, NoInfer, OnChangeFn, PaginationDefaultOptions, PaginationState, PartialKeys, Plugins, Prettify, PrototypeAPI, PrototypeAPIObject, RequiredKeys, ResolvedColumnFilter, Row, RowData, RowModel, RowModelFns, RowModelFns_All, RowModelFns_ColumnFiltering, RowModelFns_ColumnGrouping, RowModelFns_Core, RowModelFns_Plugins, RowModelFns_RowSorting, RowPinningDefaultOptions, RowPinningPosition, RowPinningState, RowSelectionState, Row_ColumnFiltering, Row_ColumnGrouping, Row_ColumnPinning, Row_ColumnVisibility, Row_Core, Row_CoreProperties, Row_Plugins, Row_Row, Row_RowExpanding, Row_RowPinning, Row_RowSelection, SortDirection, SortFn, SortFnOption, SortFns, SortingState, StockFeatures, StringHeaderIdentifier, StringOrTemplateHeader, Table, TableFeature, TableFeatures,
|
|
79
|
+
export { $internalMemoFnMeta, API, APIObject, AccessorColumnDef, AccessorFn, AccessorFnColumnDef, AccessorFnColumnDefBase, AccessorKeyColumnDef, AccessorKeyColumnDefBase, AggregationFn, AggregationFnOption, AggregationFns, AssignCellPrototype, AssignColumnPrototype, AssignHeaderPrototype, AssignRowPrototype, Atoms, Atoms_All, BaseAtoms, BaseAtoms_All, BuiltInAggregationFn, BuiltInFilterFn, BuiltInSortFn, CachedRowModel_All, CachedRowModel_Core, CachedRowModel_Expanded, CachedRowModel_Faceted, CachedRowModel_Filtered, CachedRowModel_Grouped, CachedRowModel_Paginated, CachedRowModel_Plugins, CachedRowModel_Sorted, CachedRowModels, CachedRowModels_Plugins, Cell, CellContext, CellData, Cell_Cell, Cell_ColumnGrouping, Cell_Core, Cell_CoreProperties, Cell_Plugins, Column, ColumnDef, ColumnDefBase, ColumnDefBase_All, ColumnDefResolved, ColumnDefTemplate, ColumnDef_ColumnFiltering, ColumnDef_ColumnGrouping, ColumnDef_ColumnPinning, ColumnDef_ColumnResizing, ColumnDef_ColumnSizing, ColumnDef_ColumnVisibility, ColumnDef_GlobalFiltering, ColumnDef_Plugins, ColumnDef_RowSorting, ColumnDefaultOptions, ColumnFilter, ColumnFilterAutoRemoveTestFn, ColumnFiltersState, ColumnHelper, ColumnMeta, ColumnOrderDefaultOptions, ColumnOrderState, ColumnPinningDefaultOptions, ColumnPinningPosition, ColumnPinningState, ColumnResizeDirection, ColumnResizeMode, ColumnResizingDefaultOptions, ColumnSizingDefaultOptions, ColumnSizingState, ColumnSort, ColumnVisibilityState, Column_Column, Column_ColumnFaceting, Column_ColumnFiltering, Column_ColumnGrouping, Column_ColumnOrdering, Column_ColumnPinning, Column_ColumnResizing, Column_ColumnSizing, Column_ColumnVisibility, Column_Core, Column_CoreProperties, Column_GlobalFiltering, Column_Internal, Column_Plugins, Column_RowSorting, ConstructTableAPIs, CoreFeatures, CreateRowModel_Core, CreateRowModel_Expanded, CreateRowModel_Faceted, CreateRowModel_Filtered, CreateRowModel_Grouped, CreateRowModel_Paginated, CreateRowModel_Plugins, CreateRowModel_Sorted, CreateRowModels, CreateRowModels_All, CreateRowModels_Plugins, CustomAggregationFns, CustomFilterFns, CustomSortFns, DebugOptions, DeepKeys, DeepValue, DisplayColumnDef, ExpandedState, ExpandedStateList, ExternalAtoms, ExternalAtoms_All, ExtractFeatureTypes, FilterFn, FilterFnOption, FilterFns, FilterMeta, GetDefaultColumnDef, GetDefaultStateSelector, GetDefaultTableOptions, GetInitialState, Getter, GroupColumnDef, GroupingColumnMode, GroupingState, Header, HeaderContext, HeaderGroup, HeaderGroup_Core, HeaderGroup_Header, HeaderGroup_Plugins, Header_ColumnResizing, Header_ColumnSizing, Header_Core, Header_CoreProperties, Header_Header, Header_Plugins, IdIdentifier, IdentifiedColumnDef, InitRowInstanceData, MemoFnMeta, NoInfer, OnChangeFn, PaginationDefaultOptions, PaginationState, PartialKeys, Plugins, Prettify, PrototypeAPI, PrototypeAPIObject, RequiredKeys, ResolvedColumnFilter, Row, RowData, RowModel, RowModelFns, RowModelFns_All, RowModelFns_ColumnFiltering, RowModelFns_ColumnGrouping, RowModelFns_Core, RowModelFns_Plugins, RowModelFns_RowSorting, RowPinningDefaultOptions, RowPinningPosition, RowPinningState, RowSelectionState, Row_ColumnFiltering, Row_ColumnGrouping, Row_ColumnPinning, Row_ColumnVisibility, Row_Core, Row_CoreProperties, Row_Plugins, Row_Row, Row_RowExpanding, Row_RowPinning, Row_RowSelection, SortDirection, SortFn, SortFnOption, SortFns, SortingState, StockFeatures, StringHeaderIdentifier, StringOrTemplateHeader, Table, TableFeature, TableFeatures, TableMeta, TableOptions, TableOptions_All, TableOptions_Cell, TableOptions_ColumnFiltering, TableOptions_ColumnGrouping, TableOptions_ColumnOrdering, TableOptions_ColumnPinning, TableOptions_ColumnResizing, TableOptions_ColumnSizing, TableOptions_ColumnVisibility, TableOptions_Columns, TableOptions_Core, TableOptions_GlobalFiltering, TableOptions_Plugins, TableOptions_RowExpanding, TableOptions_RowPagination, TableOptions_RowPinning, TableOptions_RowSelection, TableOptions_RowSorting, TableOptions_Rows, TableOptions_Table, TableState, TableState_All, TableState_ColumnFiltering, TableState_ColumnGrouping, TableState_ColumnOrdering, TableState_ColumnPinning, TableState_ColumnResizing, TableState_ColumnSizing, TableState_ColumnVisibility, TableState_GlobalFiltering, TableState_Plugins, TableState_RowExpanding, TableState_RowPagination, TableState_RowPinning, TableState_RowSelection, TableState_RowSorting, Table_ColumnFaceting, Table_ColumnFiltering, Table_ColumnGrouping, Table_ColumnOrdering, Table_ColumnPinning, Table_ColumnResizing, Table_ColumnSizing, Table_ColumnVisibility, Table_Columns, Table_Core, Table_CoreProperties, Table_GlobalFiltering, Table_Headers, Table_Internal, Table_Plugins, Table_RowExpanding, Table_RowModels, Table_RowModels_Core, Table_RowModels_Expanded, Table_RowModels_Faceted, Table_RowModels_Filtered, Table_RowModels_Grouped, Table_RowModels_Paginated, Table_RowModels_Sorted, Table_RowPagination, Table_RowPinning, Table_RowSelection, Table_RowSorting, Table_Rows, Table_Table, TransformFilterValueFn, UnionToIntersection, Updater, VisibilityDefaultOptions, aggregationFn_count, aggregationFn_extent, aggregationFn_max, aggregationFn_mean, aggregationFn_median, aggregationFn_min, aggregationFn_sum, aggregationFn_unique, aggregationFn_uniqueCount, aggregationFns, assignPrototypeAPIs, assignTableAPIs, buildHeaderGroups, callMemoOrStaticFn, cloneState, columnFacetingFeature, columnFilteringFeature, columnGroupingFeature, columnOrderingFeature, columnPinningFeature, columnResizingFeature, columnResizingState, columnSizingFeature, columnVisibilityFeature, constructCell, constructColumn, constructColumnFacetingFeature, constructColumnFilteringFeature, constructColumnGroupingFeature, constructColumnOrderingFeature, constructColumnPinningFeature, constructColumnResizingFeature, constructColumnSizingFeature, constructColumnVisibilityFeature, constructCoreCellsFeature, constructCoreColumnsFeature, constructCoreHeadersFeature, constructCoreRowModelsFeature, constructCoreRowsFeature, constructCoreTablesFeature, constructGlobalFilteringFeature, constructHeader, constructReactivityFeature, constructRow, constructRowExpandingFeature, constructRowPaginationFeature, constructRowPinningFeature, constructRowSelectionFeature, constructRowSortingFeature, constructTable, coreCellsFeature, coreColumnsFeature, coreFeatures, coreHeadersFeature, coreRowModelsFeature, coreRowsFeature, coreTablesFeature, createColumnHelper, createCoreRowModel, createExpandedRowModel, createFacetedMinMaxValues, createFacetedRowModel, createFacetedUniqueValues, createFilteredRowModel, createGroupedRowModel, createPaginatedRowModel, createSortedRowModel, expandRows, filterFn_arrHas, filterFn_arrIncludes, filterFn_arrIncludesAll, filterFn_arrIncludesSome, filterFn_equals, filterFn_equalsString, filterFn_equalsStringSensitive, filterFn_greaterThan, filterFn_greaterThanOrEqualTo, filterFn_inNumberRange, filterFn_includesString, filterFn_includesStringSensitive, filterFn_lessThan, filterFn_lessThanOrEqualTo, filterFn_weakEquals, filterFns, flattenBy, functionalUpdate, getFunctionNameInfo, getInitialTableState, getMemoFnMeta, globalFilteringFeature, isFunction, isNumberArray, makeStateUpdater, memo, noop, reSplitAlphaNumeric, rowExpandingFeature, rowPaginationFeature, rowPinningFeature, rowSelectionFeature, rowSortingFeature, sortFn_alphanumeric, sortFn_alphanumericCaseSensitive, sortFn_basic, sortFn_datetime, sortFn_text, sortFn_textCaseSensitive, sortFns, stockFeatures, tableFeatures, tableMemo, tableOptions };
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $internalMemoFnMeta, assignPrototypeAPIs, assignTableAPIs, callMemoOrStaticFn, flattenBy, functionalUpdate, getFunctionNameInfo, getMemoFnMeta, isFunction, isNumberArray, makeStateUpdater, memo, noop, tableMemo } from "./utils.js";
|
|
1
|
+
import { $internalMemoFnMeta, assignPrototypeAPIs, assignTableAPIs, callMemoOrStaticFn, cloneState, flattenBy, functionalUpdate, getFunctionNameInfo, getMemoFnMeta, isFunction, isNumberArray, makeStateUpdater, memo, noop, tableMemo } from "./utils.js";
|
|
2
2
|
import { constructCoreCellsFeature, coreCellsFeature } from "./core/cells/coreCellsFeature.js";
|
|
3
3
|
import { constructHeader } from "./core/headers/constructHeader.js";
|
|
4
4
|
import { buildHeaderGroups } from "./core/headers/buildHeaderGroups.js";
|
|
@@ -14,7 +14,6 @@ import { constructCoreTablesFeature, coreTablesFeature } from "./core/table/core
|
|
|
14
14
|
import { coreFeatures } from "./core/coreFeatures.js";
|
|
15
15
|
import { createColumnHelper } from "./helpers/columnHelper.js";
|
|
16
16
|
import { tableFeatures } from "./helpers/tableFeatures.js";
|
|
17
|
-
import { constructTableHelper } from "./helpers/tableHelper.js";
|
|
18
17
|
import { tableOptions } from "./helpers/tableOptions.js";
|
|
19
18
|
import { constructTable, getInitialTableState } from "./core/table/constructTable.js";
|
|
20
19
|
import { aggregationFn_count, aggregationFn_extent, aggregationFn_max, aggregationFn_mean, aggregationFn_median, aggregationFn_min, aggregationFn_sum, aggregationFn_unique, aggregationFn_uniqueCount, aggregationFns } from "./fns/aggregationFns.js";
|
|
@@ -45,4 +44,4 @@ import { createExpandedRowModel, expandRows } from "./features/row-expanding/cre
|
|
|
45
44
|
import { createPaginatedRowModel } from "./features/row-pagination/createPaginatedRowModel.js";
|
|
46
45
|
import { createSortedRowModel } from "./features/row-sorting/createSortedRowModel.js";
|
|
47
46
|
|
|
48
|
-
export { $internalMemoFnMeta, aggregationFn_count, aggregationFn_extent, aggregationFn_max, aggregationFn_mean, aggregationFn_median, aggregationFn_min, aggregationFn_sum, aggregationFn_unique, aggregationFn_uniqueCount, aggregationFns, assignPrototypeAPIs, assignTableAPIs, buildHeaderGroups, callMemoOrStaticFn, columnFacetingFeature, columnFilteringFeature, columnGroupingFeature, columnOrderingFeature, columnPinningFeature, columnResizingFeature, columnSizingFeature, columnVisibilityFeature, constructCell, constructColumn, constructColumnFacetingFeature, constructColumnFilteringFeature, constructColumnGroupingFeature, constructColumnOrderingFeature, constructColumnPinningFeature, constructColumnResizingFeature, constructColumnSizingFeature, constructColumnVisibilityFeature, constructCoreCellsFeature, constructCoreColumnsFeature, constructCoreHeadersFeature, constructCoreRowModelsFeature, constructCoreRowsFeature, constructCoreTablesFeature, constructGlobalFilteringFeature, constructHeader, constructReactivityFeature, constructRow, constructRowExpandingFeature, constructRowPaginationFeature, constructRowPinningFeature, constructRowSelectionFeature, constructRowSortingFeature, constructTable,
|
|
47
|
+
export { $internalMemoFnMeta, aggregationFn_count, aggregationFn_extent, aggregationFn_max, aggregationFn_mean, aggregationFn_median, aggregationFn_min, aggregationFn_sum, aggregationFn_unique, aggregationFn_uniqueCount, aggregationFns, assignPrototypeAPIs, assignTableAPIs, buildHeaderGroups, callMemoOrStaticFn, cloneState, columnFacetingFeature, columnFilteringFeature, columnGroupingFeature, columnOrderingFeature, columnPinningFeature, columnResizingFeature, columnSizingFeature, columnVisibilityFeature, constructCell, constructColumn, constructColumnFacetingFeature, constructColumnFilteringFeature, constructColumnGroupingFeature, constructColumnOrderingFeature, constructColumnPinningFeature, constructColumnResizingFeature, constructColumnSizingFeature, constructColumnVisibilityFeature, constructCoreCellsFeature, constructCoreColumnsFeature, constructCoreHeadersFeature, constructCoreRowModelsFeature, constructCoreRowsFeature, constructCoreTablesFeature, constructGlobalFilteringFeature, constructHeader, constructReactivityFeature, constructRow, constructRowExpandingFeature, constructRowPaginationFeature, constructRowPinningFeature, constructRowSelectionFeature, constructRowSortingFeature, constructTable, coreCellsFeature, coreColumnsFeature, coreFeatures, coreHeadersFeature, coreRowModelsFeature, coreRowsFeature, coreTablesFeature, createColumnHelper, createCoreRowModel, createExpandedRowModel, createFacetedMinMaxValues, createFacetedRowModel, createFacetedUniqueValues, createFilteredRowModel, createGroupedRowModel, createPaginatedRowModel, createSortedRowModel, expandRows, filterFn_arrHas, filterFn_arrIncludes, filterFn_arrIncludesAll, filterFn_arrIncludesSome, filterFn_equals, filterFn_equalsString, filterFn_equalsStringSensitive, filterFn_greaterThan, filterFn_greaterThanOrEqualTo, filterFn_inNumberRange, filterFn_includesString, filterFn_includesStringSensitive, filterFn_lessThan, filterFn_lessThanOrEqualTo, filterFn_weakEquals, filterFns, flattenBy, functionalUpdate, getFunctionNameInfo, getInitialTableState, getMemoFnMeta, globalFilteringFeature, isFunction, isNumberArray, makeStateUpdater, memo, noop, reSplitAlphaNumeric, rowExpandingFeature, rowPaginationFeature, rowPinningFeature, rowSelectionFeature, rowSortingFeature, sortFn_alphanumeric, sortFn_alphanumericCaseSensitive, sortFn_basic, sortFn_datetime, sortFn_text, sortFn_textCaseSensitive, sortFns, stockFeatures, tableFeatures, tableMemo, tableOptions };
|
package/dist/utils.cjs
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
function functionalUpdate(updater, input) {
|
|
4
4
|
return typeof updater === "function" ? updater(input) : updater;
|
|
5
5
|
}
|
|
6
|
+
function cloneState(value) {
|
|
7
|
+
if (Array.isArray(value)) return value.map(cloneState);
|
|
8
|
+
if (value && typeof value === "object") {
|
|
9
|
+
const proto = Object.getPrototypeOf(value);
|
|
10
|
+
if (proto !== Object.prototype && proto !== null) return value;
|
|
11
|
+
const copy = {};
|
|
12
|
+
for (const key of Object.keys(value)) copy[key] = cloneState(value[key]);
|
|
13
|
+
return copy;
|
|
14
|
+
}
|
|
15
|
+
return value;
|
|
16
|
+
}
|
|
6
17
|
function noop() {}
|
|
7
18
|
function makeStateUpdater(key, instance) {
|
|
8
19
|
return (updater) => {
|
|
@@ -193,6 +204,7 @@ exports.$internalMemoFnMeta = $internalMemoFnMeta;
|
|
|
193
204
|
exports.assignPrototypeAPIs = assignPrototypeAPIs;
|
|
194
205
|
exports.assignTableAPIs = assignTableAPIs;
|
|
195
206
|
exports.callMemoOrStaticFn = callMemoOrStaticFn;
|
|
207
|
+
exports.cloneState = cloneState;
|
|
196
208
|
exports.flattenBy = flattenBy;
|
|
197
209
|
exports.functionalUpdate = functionalUpdate;
|
|
198
210
|
exports.getFunctionNameInfo = getFunctionNameInfo;
|