@economic/taco 2.48.4 → 2.49.0-dataloader.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/components/Report/Report.d.ts +1 -1
- package/dist/components/SearchInput2/SearchInput2.d.ts +2 -0
- package/dist/components/Table3/features/useEditingState.d.ts +13 -13
- package/dist/components/Table3/features/useTableEditing.d.ts +15 -15
- package/dist/components/Table3/types.d.ts +2 -0
- package/dist/esm/packages/taco/src/charts/components/Donut/Legend.js +1 -0
- package/dist/esm/packages/taco/src/charts/components/Donut/Legend.js.map +1 -1
- package/dist/esm/packages/taco/src/charts/components/Legend.js +1 -0
- package/dist/esm/packages/taco/src/charts/components/Legend.js.map +1 -1
- package/dist/esm/packages/taco/src/components/SearchInput2/SearchInput2.js +6 -3
- package/dist/esm/packages/taco/src/components/SearchInput2/SearchInput2.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table/hooks/plugins/useRowActions.js +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingControlCell.js +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingControlCell.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Editing/Alert.js +15 -9
- package/dist/esm/packages/taco/src/components/Table3/components/Editing/Alert.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/CreateNewRow.js +4 -2
- package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/CreateNewRow.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/TemporaryRow.js +3 -2
- package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/TemporaryRow.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/features/useEditingState.js +61 -69
- package/dist/esm/packages/taco/src/components/Table3/features/useEditingState.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/features/useTableEditing.js +13 -6
- package/dist/esm/packages/taco/src/components/Table3/features/useTableEditing.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/listeners/useTableEditingListener.js +15 -12
- package/dist/esm/packages/taco/src/components/Table3/listeners/useTableEditingListener.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/useTable3.js +1 -1
- package/dist/esm/packages/taco/src/components/Table3/useTable3.js.map +1 -1
- package/dist/esm/packages/taco/src/index.js +1 -0
- package/dist/esm/packages/taco/src/index.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Selection.js +7 -4
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Selection.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Footer/Summary.js +7 -6
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Footer/Summary.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/BuiltIns/SkeletonRow.js +24 -22
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/BuiltIns/SkeletonRow.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/Row.js +41 -4
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/Row.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Print/Print.js +3 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Print/Print.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Search/Search.js +26 -3
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Search/Search.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableGlobalShortcuts.js +2 -2
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableGlobalShortcuts.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableRenderer.js +40 -13
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableRenderer.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/useTable.js +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/useTable.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/types.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableDataLoader.js +13 -12
- package/dist/esm/packages/taco/src/primitives/Table/useTableDataLoader.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableDataLoader2.js +223 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableDataLoader2.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowActive.js +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowActive.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableSearch.js +3 -2
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableSearch.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableServerLoading.js +8 -3
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableServerLoading.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableFilterListener.js +3 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableFilterListener.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableRowSelectionListener.js +4 -4
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableRowSelectionListener.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSearchListener.js +14 -13
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSearchListener.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableServerLoadingListener.js +7 -3
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableServerLoadingListener.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/useTableManager.js +3 -3
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/useTableManager.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/columns.js +4 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/columns.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/setup.js +8 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/setup.js.map +1 -1
- package/dist/hooks/useLazyDebouncedEffect.d.ts +2 -0
- package/dist/index.d.ts +1 -0
- package/dist/primitives/Table/Core/components/Row/BuiltIns/SkeletonRow.d.ts +2 -2
- package/dist/primitives/Table/Core/components/Row/Row.d.ts +2 -0
- package/dist/primitives/Table/Core/features/useTableRenderer.d.ts +1 -1
- package/dist/primitives/Table/types.d.ts +10 -6
- package/dist/primitives/Table/useTableDataLoader.d.ts +2 -2
- package/dist/primitives/Table/useTableDataLoader2.d.ts +23 -0
- package/dist/primitives/Table/useTableManager/features/useTableSearch.d.ts +4 -2
- package/dist/primitives/Table/useTableManager/features/useTableServerLoading.d.ts +4 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableSearchListener.d.ts +1 -2
- package/dist/primitives/Table/useTableManager/util/columns.d.ts +2 -1
- package/dist/taco.cjs.development.js +577 -233
- package/dist/taco.cjs.development.js.map +1 -1
- package/dist/taco.cjs.production.min.js +1 -1
- package/dist/taco.cjs.production.min.js.map +1 -1
- package/package.json +2 -2
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useTableManager.js","sources":["../../../../../../../../src/primitives/Table/useTableManager/useTableManager.ts"],"sourcesContent":["import { useReactTable, TableMeta as ReactTableMeta, RowData, getCoreRowModel } from '@tanstack/react-table';\nimport {\n TableColumnAlignment,\n TableColumnClassNameHandler,\n TableColumnDataType,\n TableColumnMenu,\n TableColumnRenderer,\n TableColumnRendererControl,\n TableFilterComparator,\n TableProps,\n} from '../types';\nimport { useReactTableInitialState, configureReactTableOptions, mapTableChildrenToColumns } from './util/setup';\nimport { getTableFeaturePreset } from './util/presets';\nimport { useTableColumnFreezing } from './features/useTableColumnFreezing';\nimport { useTableColumnOrdering } from './features/useTableColumnOrdering';\nimport { useTableFooter } from './features/useTableFooter';\nimport { useTableFontSize } from './features/useTableFontSize';\nimport { useTablePrinting } from './features/useTablePrinting';\nimport { useTableRowActions } from './features/useTableRowActions';\nimport { useTableRowActive } from './features/useTableRowActive';\nimport { useTableRowClick } from './features/useTableRowClick';\nimport { useTableRowExpansion } from './features/useTableRowExpansion';\nimport { useTableRowGoto } from './features/useTableRowGoto';\nimport { useTableRowGroups } from './features/useTableRowGroups';\nimport { useTableRowHeight } from './features/useTableRowHeight';\nimport { useTableRowSelection } from './features/useTableRowSelection';\nimport { useTableSearch } from './features/useTableSearch';\nimport { useTableServerLoading } from './features/useTableServerLoading';\nimport { useTableSettings } from './features/useTableSettings';\nimport { useTableDataListener } from './listeners/useTableDataListener';\nimport { useTableFilterListener } from './listeners/useTableFilterListener';\nimport { useTableFontSizeListener } from './listeners/useTableFontSizeListener';\nimport { useTableRowHeightListener } from './listeners/useTableRowHeightListener';\nimport { useTableRowSelectionListener } from './listeners/useTableRowSelectionListener';\nimport { useTableSearchListener } from './listeners/useTableSearchListener';\nimport { useTableSettingsListener } from './listeners/useTableSettingsListener';\nimport { useTableShortcutsListener } from './listeners/useTableShortcutsListener';\nimport { useTableSortingListener } from './listeners/useTableSortingListener';\nimport { useTableServerLoadingListener } from './listeners/useTableServerLoadingListener';\nimport { useTableManagerInternalColumns } from './types';\nimport { useTableRowDrag } from './features/useTableRowDrag';\nimport { useTableRowDrop } from './features/useTableRowDrop';\nimport { useLocalization } from '../../../components/Provider/Localization';\n\n/*\n EDITING THIS FILE? READ ME FIRST!\n\n This is a shared, common hook for multiple tables. It's feature set is specifically chosen to support features\n common across those tables. If you are adding a new feature or changing an existing one, before writing any code\n in this file ask yourself the question - is this specific to a given table, or is it common to all of them.\n If you are unsure, ask your team first.\n*/\n\ndeclare module '@tanstack/table-core' {\n interface TableMeta<TData extends RowData> {\n columnFreezing: ReturnType<typeof useTableColumnFreezing>;\n columnOrdering: ReturnType<typeof useTableColumnOrdering>;\n fontSize: ReturnType<typeof useTableFontSize>;\n footer: ReturnType<typeof useTableFooter>;\n length: number;\n printing: ReturnType<typeof useTablePrinting>;\n rowActions: ReturnType<typeof useTableRowActions>;\n rowActive: ReturnType<typeof useTableRowActive>;\n rowClick: ReturnType<typeof useTableRowClick>;\n rowDrag: ReturnType<typeof useTableRowDrag>;\n rowDrop: ReturnType<typeof useTableRowDrop>;\n rowExpansion: ReturnType<typeof useTableRowExpansion>;\n rowGoto: ReturnType<typeof useTableRowGoto>;\n rowGroups: ReturnType<typeof useTableRowGroups>;\n rowHeight: ReturnType<typeof useTableRowHeight>;\n rowIdentityAccessor: keyof TData;\n rowSelection: ReturnType<typeof useTableRowSelection>;\n search: ReturnType<typeof useTableSearch>;\n server: ReturnType<typeof useTableServerLoading>;\n }\n\n interface ColumnMeta<TData extends RowData, TValue> {\n align?: TableColumnAlignment;\n className?: TableColumnClassNameHandler<TData>;\n control?: TableColumnRendererControl<TData>;\n dataType?: TableColumnDataType;\n defaultWidth?: number;\n enableEditing?: boolean;\n enableOrdering?: boolean;\n enablePrinting?: boolean;\n enableSearch?: boolean;\n enableTruncate?: boolean;\n filters?: TableFilterComparator[];\n header: string;\n headerClassName?: string;\n menu?: TableColumnMenu;\n renderer?: TableColumnRenderer<TValue, TData>;\n tooltip?: string;\n }\n}\n\n// Placed this array outside the hook to avoid creating a new array reference on each hook re-render\nconst DEFAULT_EMPTY_ARRAY = [];\n\nexport function useTableManager<TType = unknown, TMeta = {}>(\n props: TableProps<TType>,\n meta?: Partial<ReactTableMeta<TType>> & TMeta,\n internalColumns?: useTableManagerInternalColumns<TType>\n) {\n const localization = useLocalization();\n // CSS.escape would be best here, but it doesn't seem to work very well\n const safeId = props.id.replace('.', '_');\n // configure table options, merging props with presets\n const options = getTableFeaturePreset(props);\n\n // load any persisted table settings and merge them with any defaults\n const [settings, setSettings] = useTableSettings(\n options.enableSaveSettings,\n safeId,\n props.defaultSettings,\n props.onChangeSettings\n );\n\n // ensure data is always valid\n const data = props.data ?? DEFAULT_EMPTY_ARRAY;\n const length = props.length ?? data.length;\n\n // configure common custom features\n const columnFreezing = useTableColumnFreezing(options.enableColumnFreezing);\n const columnOrdering = useTableColumnOrdering(options.enableColumnOrdering);\n const fontSize = useTableFontSize(options.enableFontSize, settings.fontSize);\n const footer = useTableFooter(options.enableFooter);\n const printing = useTablePrinting(options.enablePrinting, safeId);\n const rowActive = useTableRowActive(options.enableRowActive, props.defaultRowActiveIndex);\n const rowActions = useTableRowActions<TType>(options.enableRowActions, props.rowActions, props.rowActionsLength);\n const rowClick = useTableRowClick<TType>(options.enableRowClick, props.onRowClick);\n const rowDrag = useTableRowDrag<TType>(options.enableRowDrag && !meta?.editing?.isEditing, props.onRowDrag);\n const rowDrop = useTableRowDrop<TType>(options.enableRowDrop, props.onRowDrop);\n const rowExpansion = useTableRowExpansion<TType>(\n options.enableRowExpansion,\n options.enableRowExpansionAll,\n props.rowExpansionRenderer\n );\n const rowGoto = useTableRowGoto(options.enableRowGoto, props.onRowGoto);\n const rowGroups = useTableRowGroups(props.rowActionsForGroup);\n const rowHeight = useTableRowHeight(options.enableRowHeight, settings.rowHeight);\n const rowSelection = useTableRowSelection(!!options.enableRowSelection);\n const search = useTableSearch(options.enableSearch, settings.excludeUnmatchedRecordsInSearch);\n const server = useTableServerLoading(length, data, props.loadPage, props.loadAll, props.pageSize);\n\n // TODO: memoise\n // convert jsx column components into valid table columns\n const { columns, ...defaultState } = mapTableChildrenToColumns<TType>(\n props,\n settings,\n options,\n internalColumns,\n localization\n );\n\n // configure initial table state\n const initialState = useReactTableInitialState<TType>(props, columns, settings, defaultState);\n\n // create a react-table instance\n const instance = useReactTable<TType>({\n data,\n columns,\n // configure initial table state\n initialState,\n getCoreRowModel: getCoreRowModel<TType>(),\n // configure react-table built-in features\n ...configureReactTableOptions<TType>(options, props, localization),\n // settings that can be toggled by the user, and therefore require our own state\n enableGlobalFilter: search.enableGlobalFilter,\n // custom context\n meta: {\n // spread features from specific implementations\n ...meta,\n columnFreezing,\n columnOrdering,\n fontSize,\n footer,\n length,\n printing,\n rowActions: rowActions as any, // no other way around ReturnType<typeof X> not supporting generics\n rowActive,\n rowClick: rowClick as any, // no other way around ReturnType<typeof X> not supporting generics\n rowDrag,\n rowDrop: rowDrop as any, // no other way around ReturnType<typeof X> not supporting generics\n rowExpansion: rowExpansion as any, // no other way around ReturnType<typeof X> not supporting generics\n rowIdentityAccessor: props.rowIdentityAccessor,\n rowGoto,\n rowGroups: rowGroups as any, // no other way around ReturnType<typeof X> not supporting generics\n rowHeight,\n rowSelection,\n search,\n server,\n } as ReactTableMeta<TType> & TMeta,\n });\n\n // state listeners - we have these so that we don't have to control state outside the table\n useTableDataListener(instance);\n useTableFilterListener(instance, props.onChangeFilter);\n useTableFontSizeListener(instance);\n useTableRowHeightListener(instance);\n useTableRowSelectionListener(instance, props.onRowSelect);\n useTableSearchListener(instance, props.onChangeSearch);\n useTableServerLoadingListener(instance, server.loadPage);\n useTableSettingsListener(instance, setSettings);\n useTableShortcutsListener(instance, props.shortcuts);\n useTableSortingListener(instance, props.onChangeSort);\n\n return {\n id: safeId,\n instance,\n meta: (instance.options.meta ?? {}) as ReactTableMeta<TType> & TMeta,\n state: instance.getState(),\n };\n}\n"],"names":["DEFAULT_EMPTY_ARRAY","useTableManager","props","meta","internalColumns","localization","useLocalization","safeId","id","replace","options","getTableFeaturePreset","settings","setSettings","useTableSettings","enableSaveSettings","defaultSettings","onChangeSettings","data","_props$data","length","_props$length","columnFreezing","useTableColumnFreezing","enableColumnFreezing","columnOrdering","useTableColumnOrdering","enableColumnOrdering","fontSize","useTableFontSize","enableFontSize","footer","useTableFooter","enableFooter","printing","useTablePrinting","enablePrinting","rowActive","useTableRowActive","enableRowActive","defaultRowActiveIndex","rowActions","useTableRowActions","enableRowActions","rowActionsLength","rowClick","useTableRowClick","enableRowClick","onRowClick","rowDrag","useTableRowDrag","enableRowDrag","_meta$editing","editing","isEditing","onRowDrag","rowDrop","useTableRowDrop","enableRowDrop","onRowDrop","rowExpansion","useTableRowExpansion","enableRowExpansion","enableRowExpansionAll","rowExpansionRenderer","rowGoto","useTableRowGoto","enableRowGoto","onRowGoto","rowGroups","useTableRowGroups","rowActionsForGroup","rowHeight","useTableRowHeight","enableRowHeight","rowSelection","useTableRowSelection","enableRowSelection","search","useTableSearch","enableSearch","excludeUnmatchedRecordsInSearch","server","useTableServerLoading","loadPage","loadAll","pageSize","columns","defaultState","mapTableChildrenToColumns","initialState","useReactTableInitialState","instance","useReactTable","getCoreRowModel","configureReactTableOptions","enableGlobalFilter","rowIdentityAccessor","useTableDataListener","useTableFilterListener","onChangeFilter","useTableFontSizeListener","useTableRowHeightListener","useTableRowSelectionListener","onRowSelect","useTableSearchListener","onChangeSearch","useTableServerLoadingListener","useTableSettingsListener","useTableShortcutsListener","shortcuts","useTableSortingListener","onChangeSort","_instance$options$met","state","getState"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"useTableManager.js","sources":["../../../../../../../../src/primitives/Table/useTableManager/useTableManager.ts"],"sourcesContent":["import { useReactTable, TableMeta as ReactTableMeta, RowData, getCoreRowModel } from '@tanstack/react-table';\nimport {\n TableColumnAlignment,\n TableColumnClassNameHandler,\n TableColumnDataType,\n TableColumnMenu,\n TableColumnRenderer,\n TableColumnRendererControl,\n TableFilterComparator,\n TableProps,\n} from '../types';\nimport { useReactTableInitialState, configureReactTableOptions, mapTableChildrenToColumns } from './util/setup';\nimport { getTableFeaturePreset } from './util/presets';\nimport { useTableColumnFreezing } from './features/useTableColumnFreezing';\nimport { useTableColumnOrdering } from './features/useTableColumnOrdering';\nimport { useTableFooter } from './features/useTableFooter';\nimport { useTableFontSize } from './features/useTableFontSize';\nimport { useTablePrinting } from './features/useTablePrinting';\nimport { useTableRowActions } from './features/useTableRowActions';\nimport { useTableRowActive } from './features/useTableRowActive';\nimport { useTableRowClick } from './features/useTableRowClick';\nimport { useTableRowExpansion } from './features/useTableRowExpansion';\nimport { useTableRowGoto } from './features/useTableRowGoto';\nimport { useTableRowGroups } from './features/useTableRowGroups';\nimport { useTableRowHeight } from './features/useTableRowHeight';\nimport { useTableRowSelection } from './features/useTableRowSelection';\nimport { useTableSearch } from './features/useTableSearch';\nimport { useTableServerLoading } from './features/useTableServerLoading';\nimport { useTableSettings } from './features/useTableSettings';\nimport { useTableDataListener } from './listeners/useTableDataListener';\nimport { useTableFilterListener } from './listeners/useTableFilterListener';\nimport { useTableFontSizeListener } from './listeners/useTableFontSizeListener';\nimport { useTableRowHeightListener } from './listeners/useTableRowHeightListener';\nimport { useTableRowSelectionListener } from './listeners/useTableRowSelectionListener';\nimport { useTableSearchListener } from './listeners/useTableSearchListener';\nimport { useTableSettingsListener } from './listeners/useTableSettingsListener';\nimport { useTableShortcutsListener } from './listeners/useTableShortcutsListener';\nimport { useTableSortingListener } from './listeners/useTableSortingListener';\nimport { useTableServerLoadingListener } from './listeners/useTableServerLoadingListener';\nimport { useTableManagerInternalColumns } from './types';\nimport { useTableRowDrag } from './features/useTableRowDrag';\nimport { useTableRowDrop } from './features/useTableRowDrop';\nimport { useLocalization } from '../../../components/Provider/Localization';\n\n/*\n EDITING THIS FILE? READ ME FIRST!\n\n This is a shared, common hook for multiple tables. It's feature set is specifically chosen to support features\n common across those tables. If you are adding a new feature or changing an existing one, before writing any code\n in this file ask yourself the question - is this specific to a given table, or is it common to all of them.\n If you are unsure, ask your team first.\n*/\n\ndeclare module '@tanstack/table-core' {\n interface TableMeta<TData extends RowData> {\n columnFreezing: ReturnType<typeof useTableColumnFreezing>;\n columnOrdering: ReturnType<typeof useTableColumnOrdering>;\n fontSize: ReturnType<typeof useTableFontSize>;\n footer: ReturnType<typeof useTableFooter>;\n length: number;\n printing: ReturnType<typeof useTablePrinting>;\n rowActions: ReturnType<typeof useTableRowActions>;\n rowActive: ReturnType<typeof useTableRowActive>;\n rowClick: ReturnType<typeof useTableRowClick>;\n rowDrag: ReturnType<typeof useTableRowDrag>;\n rowDrop: ReturnType<typeof useTableRowDrop>;\n rowExpansion: ReturnType<typeof useTableRowExpansion>;\n rowGoto: ReturnType<typeof useTableRowGoto>;\n rowGroups: ReturnType<typeof useTableRowGroups>;\n rowHeight: ReturnType<typeof useTableRowHeight>;\n rowIdentityAccessor: keyof TData;\n rowSelection: ReturnType<typeof useTableRowSelection>;\n search: ReturnType<typeof useTableSearch>;\n server: ReturnType<typeof useTableServerLoading>;\n }\n\n interface ColumnMeta<TData extends RowData, TValue> {\n align?: TableColumnAlignment;\n className?: TableColumnClassNameHandler<TData>;\n control?: TableColumnRendererControl<TData>;\n dataType?: TableColumnDataType;\n defaultWidth?: number;\n enableEditing?: boolean;\n enableOrdering?: boolean;\n enablePrinting?: boolean;\n enableSearch?: boolean;\n enableTruncate?: boolean;\n filters?: TableFilterComparator[];\n header: string;\n headerClassName?: string;\n menu?: TableColumnMenu;\n renderer?: TableColumnRenderer<TValue, TData>;\n tooltip?: string;\n }\n}\n\n// Placed this array outside the hook to avoid creating a new array reference on each hook re-render\nconst DEFAULT_EMPTY_ARRAY = [];\n\nexport function useTableManager<TType = unknown, TMeta = {}>(\n props: TableProps<TType>,\n meta?: Partial<ReactTableMeta<TType>> & TMeta,\n internalColumns?: useTableManagerInternalColumns<TType>\n) {\n const localization = useLocalization();\n // CSS.escape would be best here, but it doesn't seem to work very well\n const safeId = props.id.replace('.', '_');\n // configure table options, merging props with presets\n const options = getTableFeaturePreset(props);\n\n // load any persisted table settings and merge them with any defaults\n const [settings, setSettings] = useTableSettings(\n options.enableSaveSettings,\n safeId,\n props.defaultSettings,\n props.onChangeSettings\n );\n\n // ensure data is always valid\n const data = props.data ?? DEFAULT_EMPTY_ARRAY;\n const length = props.length ?? data.length;\n\n // configure common custom features\n const columnFreezing = useTableColumnFreezing(options.enableColumnFreezing);\n const columnOrdering = useTableColumnOrdering(options.enableColumnOrdering);\n const fontSize = useTableFontSize(options.enableFontSize, settings.fontSize);\n const footer = useTableFooter(options.enableFooter);\n const printing = useTablePrinting(options.enablePrinting, safeId);\n const rowActive = useTableRowActive(options.enableRowActive, props.defaultRowActiveIndex);\n const rowActions = useTableRowActions<TType>(options.enableRowActions, props.rowActions, props.rowActionsLength);\n const rowClick = useTableRowClick<TType>(options.enableRowClick, props.onRowClick);\n const rowDrag = useTableRowDrag<TType>(options.enableRowDrag && !meta?.editing?.isEditing, props.onRowDrag);\n const rowDrop = useTableRowDrop<TType>(options.enableRowDrop, props.onRowDrop);\n const rowExpansion = useTableRowExpansion<TType>(\n options.enableRowExpansion,\n options.enableRowExpansionAll,\n props.rowExpansionRenderer\n );\n const rowGoto = useTableRowGoto(options.enableRowGoto, props.onRowGoto);\n const rowGroups = useTableRowGroups(props.rowActionsForGroup);\n const rowHeight = useTableRowHeight(options.enableRowHeight, settings.rowHeight);\n const rowSelection = useTableRowSelection(!!options.enableRowSelection);\n const search = useTableSearch(options.enableSearch, props.onChangeSearch, settings.excludeUnmatchedRecordsInSearch);\n const server = useTableServerLoading(\n length,\n data,\n props.loadPage,\n props.loadAll,\n props.pages,\n props.pageSize,\n props._experimentalDataLoader2\n );\n\n // TODO: memoise\n // convert jsx column components into valid table columns\n const { columns, ...defaultState } = mapTableChildrenToColumns<TType>(\n props,\n settings,\n options,\n internalColumns,\n localization\n );\n\n // configure initial table state\n const initialState = useReactTableInitialState<TType>(props, columns, settings, defaultState);\n\n // create a react-table instance\n const instance = useReactTable<TType>({\n data,\n columns,\n // configure initial table state\n initialState,\n getCoreRowModel: getCoreRowModel<TType>(),\n // configure react-table built-in features\n ...configureReactTableOptions<TType>(options, props, localization),\n // settings that can be toggled by the user, and therefore require our own state\n enableGlobalFilter: search.enableGlobalFilter,\n // custom context\n meta: {\n // spread features from specific implementations\n ...meta,\n columnFreezing,\n columnOrdering,\n fontSize,\n footer,\n length,\n printing,\n rowActions: rowActions as any, // no other way around ReturnType<typeof X> not supporting generics\n rowActive,\n rowClick: rowClick as any, // no other way around ReturnType<typeof X> not supporting generics\n rowDrag,\n rowDrop: rowDrop as any, // no other way around ReturnType<typeof X> not supporting generics\n rowExpansion: rowExpansion as any, // no other way around ReturnType<typeof X> not supporting generics\n rowIdentityAccessor: props.rowIdentityAccessor,\n rowGoto,\n rowGroups: rowGroups as any, // no other way around ReturnType<typeof X> not supporting generics\n rowHeight,\n rowSelection,\n search,\n server,\n } as ReactTableMeta<TType> & TMeta,\n });\n\n // state listeners - we have these so that we don't have to control state outside the table\n useTableDataListener(instance);\n useTableFilterListener(instance, props.onChangeFilter);\n useTableFontSizeListener(instance);\n useTableRowHeightListener(instance);\n useTableRowSelectionListener(instance, props.onRowSelect);\n useTableSearchListener(instance);\n useTableServerLoadingListener(instance, server.loadPage);\n useTableSettingsListener(instance, setSettings);\n useTableShortcutsListener(instance, props.shortcuts);\n useTableSortingListener(instance, props.onChangeSort);\n\n return {\n id: safeId,\n instance,\n meta: (instance.options.meta ?? {}) as ReactTableMeta<TType> & TMeta,\n state: instance.getState(),\n };\n}\n"],"names":["DEFAULT_EMPTY_ARRAY","useTableManager","props","meta","internalColumns","localization","useLocalization","safeId","id","replace","options","getTableFeaturePreset","settings","setSettings","useTableSettings","enableSaveSettings","defaultSettings","onChangeSettings","data","_props$data","length","_props$length","columnFreezing","useTableColumnFreezing","enableColumnFreezing","columnOrdering","useTableColumnOrdering","enableColumnOrdering","fontSize","useTableFontSize","enableFontSize","footer","useTableFooter","enableFooter","printing","useTablePrinting","enablePrinting","rowActive","useTableRowActive","enableRowActive","defaultRowActiveIndex","rowActions","useTableRowActions","enableRowActions","rowActionsLength","rowClick","useTableRowClick","enableRowClick","onRowClick","rowDrag","useTableRowDrag","enableRowDrag","_meta$editing","editing","isEditing","onRowDrag","rowDrop","useTableRowDrop","enableRowDrop","onRowDrop","rowExpansion","useTableRowExpansion","enableRowExpansion","enableRowExpansionAll","rowExpansionRenderer","rowGoto","useTableRowGoto","enableRowGoto","onRowGoto","rowGroups","useTableRowGroups","rowActionsForGroup","rowHeight","useTableRowHeight","enableRowHeight","rowSelection","useTableRowSelection","enableRowSelection","search","useTableSearch","enableSearch","onChangeSearch","excludeUnmatchedRecordsInSearch","server","useTableServerLoading","loadPage","loadAll","pages","pageSize","_experimentalDataLoader2","columns","defaultState","mapTableChildrenToColumns","initialState","useReactTableInitialState","instance","useReactTable","getCoreRowModel","configureReactTableOptions","enableGlobalFilter","rowIdentityAccessor","useTableDataListener","useTableFilterListener","onChangeFilter","useTableFontSizeListener","useTableRowHeightListener","useTableRowSelectionListener","onRowSelect","useTableSearchListener","useTableServerLoadingListener","useTableSettingsListener","useTableShortcutsListener","shortcuts","useTableSortingListener","onChangeSort","_instance$options$met","state","getState"],"mappings":"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"}
|
@@ -102,6 +102,9 @@ function unfreezeAllExternalColumns(leftPinnedState) {
|
|
102
102
|
function freezeUptoExternalColumn(index, columns) {
|
103
103
|
return columns.slice(0, index + 1);
|
104
104
|
}
|
105
|
+
function getHiddenColumns(columnVisibility = {}) {
|
106
|
+
return Object.keys(columnVisibility).filter(c => columnVisibility[c] === false);
|
107
|
+
}
|
105
108
|
|
106
|
-
export { ensureOrdering, freezeUptoExternalColumn, getCellMinWidth, isCellHighlighted, isInternalColumn, unfreezeAllExternalColumns };
|
109
|
+
export { ensureOrdering, freezeUptoExternalColumn, getCellMinWidth, getHiddenColumns, isCellHighlighted, isInternalColumn, unfreezeAllExternalColumns };
|
107
110
|
//# sourceMappingURL=columns.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"columns.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/util/columns.ts"],"sourcesContent":["import {
|
1
|
+
{"version":3,"file":"columns.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/util/columns.ts"],"sourcesContent":["import {\n ColumnDef as ReactTableColumnDef,\n GroupColumnDef as ReactTableGroupColumnDef,\n VisibilityState as ReactTableVisibilityState,\n} from '@tanstack/react-table';\nimport { FontSize, FontSizes } from '../../../../types';\nimport { TableColumnDataType } from '../../types';\nimport { isMatched } from './search';\nimport { Localization } from '../../../../components/Provider/Localization';\n\nexport function isInternalColumn(id: string | undefined) {\n return id?.startsWith('__');\n}\n\n// column widths\nexport const getCellMinWidth = (fontSize: FontSize = 'medium') => {\n switch (fontSize) {\n case FontSizes.small:\n return 57;\n\n case FontSizes.large:\n return 83;\n\n default:\n case FontSizes.medium:\n return 72;\n }\n};\n\n// highlighting\nexport function isCellHighlighted(\n query: string,\n value: unknown,\n dataType: TableColumnDataType | undefined,\n localization: Localization\n) {\n if (value === undefined || value === null) {\n return false;\n }\n\n return isMatched(query, value, dataType, localization);\n}\n\nfunction orderColumn<TType = unknown>(\n column: ReactTableColumnDef<TType>,\n { orderingDisabled, orderingEnabled }: { orderingDisabled: string[]; orderingEnabled: string[] }\n) {\n const groupedColumn = column as ReactTableGroupColumnDef<TType>;\n\n if (Array.isArray(groupedColumn.columns) && groupedColumn.columns.length > 0) {\n groupedColumn.columns.forEach((subcolumn: ReactTableColumnDef<TType>) =>\n orderColumn(subcolumn, { orderingDisabled, orderingEnabled })\n );\n } else {\n if (column.meta?.enableOrdering) {\n orderingEnabled.push(column.id as string);\n } else {\n orderingDisabled.push(column.id as string);\n }\n }\n}\n\n// ordering\nexport function ensureOrdering<TType = unknown>(\n columns: ReactTableColumnDef<TType>[],\n settingsOrder: string[] | undefined,\n pinnedOrder: string[] | undefined = [],\n internalColumnsPinnedToTheRight: string[] = ['__actions']\n): string[] {\n // internal columns come with a defined order\n const internalColumns = columns\n .filter(column => isInternalColumn(column.id) && !internalColumnsPinnedToTheRight.includes(String(column.id)))\n .map(column => column.id) as string[];\n\n // columns with ordering disabled should be moved to the front\n const orderingDisabled: string[] = [];\n let orderingEnabled: string[] = [];\n\n let orderedColumns = columns;\n\n // if settings is defined, make sure the columns that are actual children are sorted by it\n if (Array.isArray(settingsOrder)) {\n orderedColumns = columns.slice().sort(\n // the magic >>> 0 here ensures that columns that aren't found in settings, but are children, are pushed to the end\n (a, b) => (settingsOrder.indexOf(a.id as string) >>> 0) - (settingsOrder.indexOf(b.id as string) >>> 0)\n );\n }\n\n orderedColumns.forEach(column => {\n if (isInternalColumn(column.id)) {\n return;\n }\n\n orderColumn(column, { orderingDisabled, orderingEnabled });\n });\n\n if (settingsOrder && settingsOrder.length > 0) {\n const columnsAbsentInSettingsOrder: string[] = [];\n\n orderingEnabled = orderingEnabled\n .reduce((acc, column) => {\n const index = settingsOrder.indexOf(column);\n if (index > -1) {\n acc[index] = column;\n } else {\n columnsAbsentInSettingsOrder.push(column);\n }\n\n return acc;\n }, [] as string[])\n .filter(column => !!column)\n // Append absent columns at the end\n .concat(columnsAbsentInSettingsOrder);\n }\n\n // if pinned columns are defined, make sure they are sorted first, this ensures state matches the freezing \"upto\" behaviour\n if (Array.isArray(pinnedOrder)) {\n orderingEnabled.sort(\n // the magic >>> 0 here ensures that columns that aren't found in settings, but are children, are pushed to the end\n (a, b) => (pinnedOrder.indexOf(a as string) >>> 0) - (pinnedOrder.indexOf(b as string) >>> 0)\n );\n }\n\n const order = [...internalColumns, ...orderingDisabled, ...orderingEnabled];\n\n // actions should always be last, enforce that\n internalColumnsPinnedToTheRight.forEach(id => {\n if (columns.findIndex(column => column.id === id) > -1) {\n order.push(id);\n }\n });\n\n return order;\n}\n\n// freezing - we use the react-table pinning state, but that requires some mapping between them\nexport function unfreezeAllExternalColumns(leftPinnedState?: string[]): string[] {\n return leftPinnedState?.filter(id => isInternalColumn(id) && id !== '__actions') ?? [];\n}\n\nexport function freezeUptoExternalColumn(index: number, columns: string[]): string[] {\n return columns.slice(0, index + 1);\n}\n\nexport function getHiddenColumns(columnVisibility: ReactTableVisibilityState = {}) {\n return Object.keys(columnVisibility).filter(c => columnVisibility[c] === false);\n}\n"],"names":["isInternalColumn","id","startsWith","getCellMinWidth","fontSize","FontSizes","small","large","medium","isCellHighlighted","query","value","dataType","localization","undefined","isMatched","orderColumn","column","orderingDisabled","orderingEnabled","groupedColumn","Array","isArray","columns","length","forEach","subcolumn","_column$meta","meta","enableOrdering","push","ensureOrdering","settingsOrder","pinnedOrder","internalColumnsPinnedToTheRight","internalColumns","filter","includes","String","map","orderedColumns","slice","sort","a","b","indexOf","columnsAbsentInSettingsOrder","reduce","acc","index","concat","order","findIndex","unfreezeAllExternalColumns","leftPinnedState","_leftPinnedState$filt","freezeUptoExternalColumn","getHiddenColumns","columnVisibility","Object","keys","c"],"mappings":"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"}
|
@@ -241,7 +241,8 @@ function configureReactTableOptions(options, props, localization) {
|
|
241
241
|
getExpandedRowModel: getExpandedRowModel(),
|
242
242
|
getGroupedRowModel: getGroupedRowModel(),
|
243
243
|
getRowId,
|
244
|
-
groupedColumnMode: false
|
244
|
+
groupedColumnMode: false,
|
245
|
+
keepPinnedRows: false
|
245
246
|
};
|
246
247
|
if (tableOptions.enableColumnResizing) {
|
247
248
|
tableOptions.columnResizeMode = 'onChange';
|
@@ -263,6 +264,12 @@ function configureReactTableOptions(options, props, localization) {
|
|
263
264
|
var _column$columnDef$met;
|
264
265
|
return ((_column$columnDef$met = column.columnDef.meta) === null || _column$columnDef$met === void 0 ? void 0 : _column$columnDef$met.enableSearch) !== false && column.getIsVisible();
|
265
266
|
};
|
267
|
+
// enter controlled search mode (controlled could be local state, but usually the server)
|
268
|
+
if (props.onChangeSearch) {
|
269
|
+
if (props._experimentalDataLoader2) {
|
270
|
+
tableOptions.manualFiltering = true;
|
271
|
+
}
|
272
|
+
}
|
266
273
|
}
|
267
274
|
if (tableOptions.enableSorting) {
|
268
275
|
// enter controlled sort mode (controlled could be local state, but usually the server)
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"setup.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/util/setup.ts"],"sourcesContent":["import React from 'react';\nimport {\n createColumnHelper,\n getExpandedRowModel,\n getFilteredRowModel,\n getGroupedRowModel,\n getSortedRowModel,\n TableOptions as ReactTableOptions,\n Row as ReactTableRow,\n Column as ReactTableColumn,\n ColumnDef as ReactTableColumnDef,\n ColumnPinningState as ReactTableColumnPinningState,\n ColumnSizingState as ReactTableColumnSizingState,\n ColumnSort as ReactTableColumnSort,\n TableState as ReactTableState,\n VisibilityState as ReactTableVisibilityState,\n} from '@tanstack/react-table';\nimport get from 'lodash/get';\nimport { useTableManagerInternalColumns, useTableManagerInternalColumn } from '../types';\nimport { TableColumnProps, TableFeatureProps, TableGroupProps, TableProps, TableSettings } from '../../types';\nimport { getSortingFn } from './sorting';\nimport { ensureOrdering, freezeUptoExternalColumn, getCellMinWidth, unfreezeAllExternalColumns } from './columns';\nimport { columnFilterFn } from './filtering';\nimport { globalFilterFn } from './search';\nimport { ignoreInternalColumns } from './settings';\nimport { getDataTypeProperties } from './dataTypes';\nimport { Localization } from '../../../../components/Provider/Localization';\n\n// mapping children to react-table columns\nfunction processChildren<TType>(\n child: React.ReactChild | React.ReactFragment | React.ReactPortal,\n columns: ReactTableColumnDef<TType>[],\n defaultSizing: ReactTableColumnSizingState,\n defaultSorting: ReactTableColumnSort[],\n defaultVisibility: ReactTableVisibilityState,\n settings: TableSettings,\n defaultRowGroupColumnId: keyof TType | undefined,\n localization: Localization\n): ReactTableColumnDef<TType>[] {\n const columnHelper = createColumnHelper<TType>();\n\n if (React.isValidElement<TableGroupProps>(child) && child.props.children) {\n const { children, id, header } = child.props;\n\n columns.push(\n columnHelper.group({\n id,\n header,\n columns: React.Children.toArray(children).reduce(\n (columns: ReactTableColumnDef<TType>[], child) =>\n processChildren<TType>(\n child,\n columns,\n defaultSizing,\n defaultSorting,\n defaultVisibility,\n settings,\n defaultRowGroupColumnId,\n localization\n ),\n []\n ),\n // we don't want to let column groups be grouped/aggregrated\n enableGrouping: false,\n })\n );\n } else if (React.isValidElement<TableColumnProps<TType>>(child) && (child.props.accessor || child.props.id)) {\n const {\n id: untypedId,\n accessor: accessorKey = untypedId,\n // renderers\n renderer,\n aggregate,\n footer,\n header,\n // options\n aggregationFn,\n defaultHidden,\n defaultWidth,\n enableEditing = !!child.props.control,\n enableFiltering: enableColumnFilter = true,\n enableGrouping = false,\n enableHiding = true,\n enableOrdering = true,\n enablePrinting = true,\n enableResizing = true,\n enableSearch: enableGlobalFilter = true,\n enableSorting = true,\n enableTruncate = false,\n minWidth: minSize = getCellMinWidth(settings.fontSize),\n sort,\n sortFn,\n ...meta\n } = child.props;\n const id = untypedId as string;\n const dataTypeProperties = getDataTypeProperties<TType>(child.props.dataType);\n\n if (defaultHidden && enableHiding) {\n defaultVisibility[id] = false;\n }\n\n if (defaultWidth) {\n defaultSizing[id] = defaultWidth as any;\n }\n\n const isGrouped = defaultRowGroupColumnId === id;\n\n if (child.props.sort !== undefined || isGrouped) {\n defaultSorting.push({\n id,\n desc: sort === 'desc',\n });\n }\n\n const column: ReactTableColumnDef<TType, any> = {\n id,\n accessorKey,\n // To avoid errors caused by undefined row data values, we pass accessorFn as a preventive measure\n // accessorKey can be dot notated strings, so we use lodash.get to access deeply nested children\n accessorFn: row => get(row, accessorKey),\n header: header,\n // features\n enableColumnFilter,\n enableGlobalFilter,\n enableGrouping,\n enableHiding: isGrouped ? false : enableHiding,\n enableResizing,\n enableSorting,\n // config - sizing\n minSize,\n // meta\n meta: {\n ...(meta as any),\n align: meta.align ?? dataTypeProperties.align,\n defaultWidth,\n enableOrdering: isGrouped ? false : enableOrdering,\n enablePrinting,\n enableTruncate,\n enableEditing,\n header,\n renderer,\n },\n };\n\n // renderers - use defined renderers first, then fall back to data type renderers (if there is one)\n if (typeof renderer === 'function') {\n column.cell = info => renderer(info.getValue(), info.row.original);\n } else if (dataTypeProperties.getDisplayValue) {\n const dataTypeRenderer = (value: any) => {\n const displayValue = dataTypeProperties.getDisplayValue?.(value, { localization });\n\n if (Array.isArray(displayValue)) {\n return displayValue[0] ?? value;\n }\n\n return displayValue ?? value;\n };\n column.cell = info => dataTypeRenderer(info.getValue());\n (column.meta as any).renderer = dataTypeRenderer;\n }\n\n if (typeof footer === 'function') {\n column.footer = info =>\n footer(info.table.getRowModel().rows.flatMap(row => (row.original !== undefined ? row.original : [])));\n }\n\n // config - filtering\n if (enableColumnFilter) {\n column.filterFn = 'tacoFilter' as any;\n }\n\n // config - grouping/aggregation\n if (enableGrouping) {\n column.aggregationFn = aggregationFn;\n\n if (typeof aggregate === 'function') {\n column.aggregatedCell = info => aggregate(info.getValue(), info.row.original);\n }\n }\n\n // config - sorting\n if (enableSorting) {\n column.sortingFn = getSortingFn<TType>(child.props.dataType, sortFn);\n column.sortDescFirst = false;\n column.sortUndefined = 1;\n }\n\n columns.push(column);\n }\n\n return columns;\n}\n\nfunction createInternalColumn<TType = unknown>(\n id: string,\n column: useTableManagerInternalColumn<TType>,\n defaultSizing: ReactTableColumnSizingState\n) {\n if (column.size) {\n defaultSizing[id] = column.size;\n }\n\n return {\n id,\n accessorKey: id,\n header: column.header,\n cell: column.renderer,\n // features\n enableColumnFilter: false,\n enableGlobalFilter: false,\n enableGrouping: false,\n enableHiding: false,\n enableResizing: false,\n enableSorting: false,\n // config - sizing\n size: column.size,\n minSize: column.size,\n // meta\n meta: {\n ...(column.meta as any),\n enableOrdering: false,\n enablePrinting: false,\n enableTruncate: false,\n },\n } as ReactTableColumnDef<TType, any>;\n}\n\nexport function mapTableChildrenToColumns<TType = unknown>(\n props: TableProps<TType>,\n settings: TableSettings,\n options: TableFeatureProps<TType>,\n internalColumns: useTableManagerInternalColumns<TType> | undefined,\n localization: Localization\n) {\n const { children, defaultRowGroupColumnId } = props;\n const defaultSizing: ReactTableColumnSizingState = {};\n const defaultSorting: ReactTableColumnSort[] = [];\n const defaultVisibility: ReactTableVisibilityState = {};\n\n const columns = React.Children.toArray(children).reduce(\n (columns: ReactTableColumnDef<TType>[], child) =>\n processChildren<TType>(\n child,\n columns,\n defaultSizing,\n defaultSorting,\n defaultVisibility,\n settings,\n defaultRowGroupColumnId,\n localization\n ),\n\n []\n );\n\n if (internalColumns) {\n if (options.enableRowExpansion && props.rowExpansionRenderer && internalColumns.rowExpansion) {\n const column = createInternalColumn<TType>('__expansion', internalColumns.rowExpansion, defaultSizing);\n columns.unshift(column);\n }\n\n if (options.enableRowSelection && internalColumns.rowSelection) {\n const column = createInternalColumn<TType>('__select', internalColumns.rowSelection, defaultSizing);\n columns.unshift(column);\n }\n\n if (options.enableRowDrag && props.onRowDrag && internalColumns.rowDrag) {\n const column = createInternalColumn<TType>('__drag', internalColumns.rowDrag, defaultSizing);\n columns.unshift(column);\n }\n\n if (options.enableRowActions && props.rowActions?.length && internalColumns.rowActions) {\n const column = createInternalColumn<TType>('__actions', internalColumns.rowActions, defaultSizing);\n columns.push(column);\n }\n }\n\n return { columns, defaultSizing, defaultSorting, defaultVisibility };\n}\n\nexport function configureReactTableOptions<TType = unknown>(\n options: TableFeatureProps<TType>,\n props: TableProps<TType>,\n localization: Localization\n) {\n // We don't want to expose internal Tanstack Table row, so we need to wrap enableRowSelection callback into additional function,\n // which receives the React Table Row object and passes row.original to a callback.\n const reactTableEnableRowSelection =\n typeof options.enableRowSelection === 'function'\n ? (row: ReactTableRow<TType>) => (options.enableRowSelection as (row: TType) => boolean)(row.original)\n : options.enableRowSelection;\n\n let getRowId;\n\n if (props.rowIdentityAccessor) {\n getRowId = (originalRow: TType | undefined, index: number) => {\n if (originalRow) {\n return String(originalRow[props.rowIdentityAccessor as string]);\n }\n\n return String(index);\n };\n }\n\n const tableOptions: Partial<ReactTableOptions<TType>> = {\n defaultColumn: {\n enableColumnFilter: options.enableFiltering || true,\n enableGrouping: false,\n enableHiding: options.enableColumnHiding || true,\n enableResizing: options.enableColumnResizing || true,\n enableGlobalFilter: options.enableSearch || true,\n enableSorting: options.enableSorting || true,\n minSize: 1,\n // the default is 150, which is a bit random\n size: 1,\n },\n enableColumnFilters: options.enableFiltering ?? false,\n enableColumnResizing: options.enableColumnResizing ?? false,\n enableExpanding: options.enableRowExpansion ?? false,\n enableGrouping: true, // users can't customise row grouping, so it can just be always enabled and left to the defaultRowGroupColumnId prop\n enableHiding: options.enableColumnHiding ?? false,\n enablePinning: options.enableColumnFreezing ?? false,\n enableRowPinning: true, // users can't customise row pinning, so it can just be always enabled\n enableRowSelection: reactTableEnableRowSelection ?? false,\n enableSorting: options.enableSorting ?? false,\n // models for default features\n getExpandedRowModel: getExpandedRowModel<TType>(),\n getGroupedRowModel: getGroupedRowModel<TType>(),\n getRowId,\n groupedColumnMode: false,\n };\n\n if (tableOptions.enableColumnResizing) {\n tableOptions.columnResizeMode = 'onChange';\n }\n\n if (tableOptions.enableColumnFilters) {\n // enter controlled filter mode (controlled could be local state, but usually the server)\n if (props.onChangeFilter) {\n // tableOptions.manualFiltering = true;\n // we don't set it because it breaks global filtering (used for search, which is fully client side)\n //\n // tableOptions.onColumnFiltersChange = ...\n // we don't set this because it expects state to be maintained externally, and we don't want\n // consumers to control state outside the table. instead we have a listener that calls onFilter\n } else {\n tableOptions.getFilteredRowModel = getFilteredRowModel<TType>();\n tableOptions.filterFns = {\n tacoFilter: (row: ReactTableRow<TType>, columnId: string, filter: any) =>\n columnFilterFn(row.getValue(columnId), filter),\n };\n }\n }\n\n if (options.enableSearch) {\n // always set these because enableGlobalFilter can be toggled on and off by the user\n tableOptions.getFilteredRowModel = getFilteredRowModel<TType>();\n tableOptions.globalFilterFn = (row: ReactTableRow<TType>, columnId: string, searchQuery: any) =>\n globalFilterFn(row, columnId, searchQuery, localization);\n tableOptions.getColumnCanGlobalFilter = (column: ReactTableColumn<TType>) =>\n column.columnDef.meta?.enableSearch !== false && column.getIsVisible();\n\n // enter controlled search mode (controlled could be local state, but usually the server)\n if (props.onChangeSearch) {\n // tableOptions.manualFiltering = true;\n // we don't set this because controlled search is not currently supported, search is always client side\n //\n // tableOptions.onGlobalFilterChange = ...\n // we don't set this because it expects state to be maintained externally, and we don't want\n // consumers to control state outside the table. instead we have a listener that calls onSearch.\n //\n // we also don't always filter when searching, we have the highlight functionality as the default\n // and filtering can be toggled by the user\n }\n }\n\n if (tableOptions.enableSorting) {\n // enter controlled sort mode (controlled could be local state, but usually the server)\n if (props.onChangeSort) {\n tableOptions.manualSorting = true;\n\n // tableOptions.onSortingChange = ...\n // we don't set this because it expects state to be maintained externally, and we don't want\n // consumers to control state outside the table. instead we have a listener that calls onSort\n } else {\n tableOptions.getSortedRowModel = getSortedRowModel();\n }\n }\n\n return tableOptions;\n}\n\nexport function useReactTableInitialState<TType = unknown>(\n props: TableProps<TType>,\n columns: ReactTableColumnDef<TType>[],\n persistedSettings: TableSettings,\n defaults: {\n defaultSizing: ReactTableColumnSizingState;\n defaultSorting: ReactTableColumnSort[];\n defaultVisibility: ReactTableVisibilityState;\n }\n): Partial<ReactTableState> {\n return React.useMemo(() => {\n const ignoreNotDefinedColumns = column => columns.find(definedColumn => definedColumn.id === column.id);\n\n const columnPinning: ReactTableColumnPinningState =\n persistedSettings.columnPinning ?? props.defaultSettings?.columnPinning ?? {};\n\n const columnOrder = ensureOrdering<TType>(\n columns,\n persistedSettings.columnOrder ?? props.defaultSettings?.columnOrder,\n columnPinning.left\n );\n\n // ensure internal columns are pinned, and are pinned in the correct order\n if (columnPinning?.left?.length) {\n columnPinning.left = freezeUptoExternalColumn(\n columnOrder.indexOf(columnPinning.left[columnPinning.left.length - 1]),\n columnOrder\n );\n } else {\n if (props.defaultColumnFreezingIndex) {\n columnPinning.left = freezeUptoExternalColumn(props.defaultColumnFreezingIndex, columnOrder);\n } else {\n columnPinning.left = unfreezeAllExternalColumns(columnOrder);\n }\n }\n\n const state: Partial<ReactTableState> = {\n columnFilters: persistedSettings.columnFilters ?? props.defaultSettings?.columnFilters ?? [],\n columnOrder,\n columnPinning,\n columnSizing: ignoreInternalColumns(\n persistedSettings.columnSizing ?? props.defaultSettings?.columnSizing ?? defaults.defaultSizing ?? {}\n ),\n columnVisibility:\n persistedSettings.columnVisibility ?? props.defaultSettings?.columnVisibility ?? defaults.defaultVisibility ?? {},\n globalFilter: persistedSettings.searchQuery ?? props.defaultSettings?.searchQuery,\n sorting: persistedSettings.sorting\n ? persistedSettings.sorting.filter(ignoreNotDefinedColumns)\n : props.defaultSettings?.sorting ?? defaults.defaultSorting,\n };\n\n if (props.defaultRowGroupColumnId) {\n state.grouping = [props.defaultRowGroupColumnId as string];\n // row groups should (all) always be expanded by default\n state.expanded = true;\n }\n\n return state;\n }, []);\n}\n"],"names":["processChildren","child","columns","defaultSizing","defaultSorting","defaultVisibility","settings","defaultRowGroupColumnId","localization","columnHelper","createColumnHelper","React","isValidElement","props","children","id","header","push","group","Children","toArray","reduce","enableGrouping","accessor","_meta$align","untypedId","accessorKey","renderer","aggregate","footer","aggregationFn","defaultHidden","defaultWidth","enableEditing","control","enableFiltering","enableColumnFilter","enableHiding","enableOrdering","enablePrinting","enableResizing","enableSearch","enableGlobalFilter","enableSorting","enableTruncate","minWidth","minSize","getCellMinWidth","fontSize","sort","sortFn","meta","dataTypeProperties","getDataTypeProperties","dataType","isGrouped","undefined","desc","column","accessorFn","row","get","align","cell","info","getValue","original","getDisplayValue","dataTypeRenderer","value","displayValue","_dataTypeProperties$g","call","Array","isArray","_displayValue$","table","getRowModel","rows","flatMap","filterFn","aggregatedCell","sortingFn","getSortingFn","sortDescFirst","sortUndefined","createInternalColumn","size","mapTableChildrenToColumns","options","internalColumns","_props$rowActions","enableRowExpansion","rowExpansionRenderer","rowExpansion","unshift","enableRowSelection","rowSelection","enableRowDrag","onRowDrag","rowDrag","enableRowActions","rowActions","length","configureReactTableOptions","reactTableEnableRowSelection","getRowId","rowIdentityAccessor","originalRow","index","String","tableOptions","defaultColumn","enableColumnHiding","enableColumnResizing","enableColumnFilters","_options$enableFilter","_options$enableColumn","enableExpanding","_options$enableRowExp","_options$enableColumn2","enablePinning","_options$enableColumn3","enableColumnFreezing","enableRowPinning","_options$enableSortin","getExpandedRowModel","getGroupedRowModel","groupedColumnMode","columnResizeMode","onChangeFilter","getFilteredRowModel","filterFns","tacoFilter","columnId","filter","columnFilterFn","globalFilterFn","searchQuery","getColumnCanGlobalFilter","_column$columnDef$met","columnDef","getIsVisible","onChangeSort","manualSorting","getSortedRowModel","useReactTableInitialState","persistedSettings","defaults","useMemo","ignoreNotDefinedColumns","find","definedColumn","columnPinning","_ref","_persistedSettings$co","_props$defaultSetting","defaultSettings","columnOrder","ensureOrdering","_persistedSettings$co2","_props$defaultSetting2","left","_columnPinning$left","freezeUptoExternalColumn","indexOf","defaultColumnFreezingIndex","unfreezeAllExternalColumns","state","columnFilters","_ref2","_persistedSettings$co3","_props$defaultSetting3","columnSizing","ignoreInternalColumns","_ref3","_ref4","_persistedSettings$co4","_props$defaultSetting4","columnVisibility","_ref5","_ref6","_persistedSettings$co5","_props$defaultSetting5","globalFilter","_persistedSettings$se","_props$defaultSetting6","sorting","_props$defaultSetting7","_props$defaultSetting8","grouping","expanded"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"setup.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/util/setup.ts"],"sourcesContent":["import React from 'react';\nimport {\n createColumnHelper,\n getExpandedRowModel,\n getFilteredRowModel,\n getGroupedRowModel,\n getSortedRowModel,\n TableOptions as ReactTableOptions,\n Row as ReactTableRow,\n Column as ReactTableColumn,\n ColumnDef as ReactTableColumnDef,\n ColumnPinningState as ReactTableColumnPinningState,\n ColumnSizingState as ReactTableColumnSizingState,\n ColumnSort as ReactTableColumnSort,\n TableState as ReactTableState,\n VisibilityState as ReactTableVisibilityState,\n} from '@tanstack/react-table';\nimport get from 'lodash/get';\nimport { useTableManagerInternalColumns, useTableManagerInternalColumn } from '../types';\nimport { TableColumnProps, TableFeatureProps, TableGroupProps, TableProps, TableSettings } from '../../types';\nimport { getSortingFn } from './sorting';\nimport { ensureOrdering, freezeUptoExternalColumn, getCellMinWidth, unfreezeAllExternalColumns } from './columns';\nimport { columnFilterFn } from './filtering';\nimport { globalFilterFn } from './search';\nimport { ignoreInternalColumns } from './settings';\nimport { getDataTypeProperties } from './dataTypes';\nimport { Localization } from '../../../../components/Provider/Localization';\n\n// mapping children to react-table columns\nfunction processChildren<TType>(\n child: React.ReactChild | React.ReactFragment | React.ReactPortal,\n columns: ReactTableColumnDef<TType>[],\n defaultSizing: ReactTableColumnSizingState,\n defaultSorting: ReactTableColumnSort[],\n defaultVisibility: ReactTableVisibilityState,\n settings: TableSettings,\n defaultRowGroupColumnId: keyof TType | undefined,\n localization: Localization\n): ReactTableColumnDef<TType>[] {\n const columnHelper = createColumnHelper<TType>();\n\n if (React.isValidElement<TableGroupProps>(child) && child.props.children) {\n const { children, id, header } = child.props;\n\n columns.push(\n columnHelper.group({\n id,\n header,\n columns: React.Children.toArray(children).reduce(\n (columns: ReactTableColumnDef<TType>[], child) =>\n processChildren<TType>(\n child,\n columns,\n defaultSizing,\n defaultSorting,\n defaultVisibility,\n settings,\n defaultRowGroupColumnId,\n localization\n ),\n []\n ),\n // we don't want to let column groups be grouped/aggregrated\n enableGrouping: false,\n })\n );\n } else if (React.isValidElement<TableColumnProps<TType>>(child) && (child.props.accessor || child.props.id)) {\n const {\n id: untypedId,\n accessor: accessorKey = untypedId,\n // renderers\n renderer,\n aggregate,\n footer,\n header,\n // options\n aggregationFn,\n defaultHidden,\n defaultWidth,\n enableEditing = !!child.props.control,\n enableFiltering: enableColumnFilter = true,\n enableGrouping = false,\n enableHiding = true,\n enableOrdering = true,\n enablePrinting = true,\n enableResizing = true,\n enableSearch: enableGlobalFilter = true,\n enableSorting = true,\n enableTruncate = false,\n minWidth: minSize = getCellMinWidth(settings.fontSize),\n sort,\n sortFn,\n ...meta\n } = child.props;\n const id = untypedId as string;\n const dataTypeProperties = getDataTypeProperties<TType>(child.props.dataType);\n\n if (defaultHidden && enableHiding) {\n defaultVisibility[id] = false;\n }\n\n if (defaultWidth) {\n defaultSizing[id] = defaultWidth as any;\n }\n\n const isGrouped = defaultRowGroupColumnId === id;\n\n if (child.props.sort !== undefined || isGrouped) {\n defaultSorting.push({\n id,\n desc: sort === 'desc',\n });\n }\n\n const column: ReactTableColumnDef<TType, any> = {\n id,\n accessorKey,\n // To avoid errors caused by undefined row data values, we pass accessorFn as a preventive measure\n // accessorKey can be dot notated strings, so we use lodash.get to access deeply nested children\n accessorFn: row => get(row, accessorKey),\n header: header,\n // features\n enableColumnFilter,\n enableGlobalFilter,\n enableGrouping,\n enableHiding: isGrouped ? false : enableHiding,\n enableResizing,\n enableSorting,\n // config - sizing\n minSize,\n // meta\n meta: {\n ...(meta as any),\n align: meta.align ?? dataTypeProperties.align,\n defaultWidth,\n enableOrdering: isGrouped ? false : enableOrdering,\n enablePrinting,\n enableTruncate,\n enableEditing,\n header,\n renderer,\n },\n };\n\n // renderers - use defined renderers first, then fall back to data type renderers (if there is one)\n if (typeof renderer === 'function') {\n column.cell = info => renderer(info.getValue(), info.row.original);\n } else if (dataTypeProperties.getDisplayValue) {\n const dataTypeRenderer = (value: any) => {\n const displayValue = dataTypeProperties.getDisplayValue?.(value, { localization });\n\n if (Array.isArray(displayValue)) {\n return displayValue[0] ?? value;\n }\n\n return displayValue ?? value;\n };\n column.cell = info => dataTypeRenderer(info.getValue());\n (column.meta as any).renderer = dataTypeRenderer;\n }\n\n if (typeof footer === 'function') {\n column.footer = info =>\n footer(info.table.getRowModel().rows.flatMap(row => (row.original !== undefined ? row.original : [])));\n }\n\n // config - filtering\n if (enableColumnFilter) {\n column.filterFn = 'tacoFilter' as any;\n }\n\n // config - grouping/aggregation\n if (enableGrouping) {\n column.aggregationFn = aggregationFn;\n\n if (typeof aggregate === 'function') {\n column.aggregatedCell = info => aggregate(info.getValue(), info.row.original);\n }\n }\n\n // config - sorting\n if (enableSorting) {\n column.sortingFn = getSortingFn<TType>(child.props.dataType, sortFn);\n column.sortDescFirst = false;\n column.sortUndefined = 1;\n }\n\n columns.push(column);\n }\n\n return columns;\n}\n\nfunction createInternalColumn<TType = unknown>(\n id: string,\n column: useTableManagerInternalColumn<TType>,\n defaultSizing: ReactTableColumnSizingState\n) {\n if (column.size) {\n defaultSizing[id] = column.size;\n }\n\n return {\n id,\n accessorKey: id,\n header: column.header,\n cell: column.renderer,\n // features\n enableColumnFilter: false,\n enableGlobalFilter: false,\n enableGrouping: false,\n enableHiding: false,\n enableResizing: false,\n enableSorting: false,\n // config - sizing\n size: column.size,\n minSize: column.size,\n // meta\n meta: {\n ...(column.meta as any),\n enableOrdering: false,\n enablePrinting: false,\n enableTruncate: false,\n },\n } as ReactTableColumnDef<TType, any>;\n}\n\nexport function mapTableChildrenToColumns<TType = unknown>(\n props: TableProps<TType>,\n settings: TableSettings,\n options: TableFeatureProps<TType>,\n internalColumns: useTableManagerInternalColumns<TType> | undefined,\n localization: Localization\n) {\n const { children, defaultRowGroupColumnId } = props;\n const defaultSizing: ReactTableColumnSizingState = {};\n const defaultSorting: ReactTableColumnSort[] = [];\n const defaultVisibility: ReactTableVisibilityState = {};\n\n const columns = React.Children.toArray(children).reduce(\n (columns: ReactTableColumnDef<TType>[], child) =>\n processChildren<TType>(\n child,\n columns,\n defaultSizing,\n defaultSorting,\n defaultVisibility,\n settings,\n defaultRowGroupColumnId,\n localization\n ),\n\n []\n );\n\n if (internalColumns) {\n if (options.enableRowExpansion && props.rowExpansionRenderer && internalColumns.rowExpansion) {\n const column = createInternalColumn<TType>('__expansion', internalColumns.rowExpansion, defaultSizing);\n columns.unshift(column);\n }\n\n if (options.enableRowSelection && internalColumns.rowSelection) {\n const column = createInternalColumn<TType>('__select', internalColumns.rowSelection, defaultSizing);\n columns.unshift(column);\n }\n\n if (options.enableRowDrag && props.onRowDrag && internalColumns.rowDrag) {\n const column = createInternalColumn<TType>('__drag', internalColumns.rowDrag, defaultSizing);\n columns.unshift(column);\n }\n\n if (options.enableRowActions && props.rowActions?.length && internalColumns.rowActions) {\n const column = createInternalColumn<TType>('__actions', internalColumns.rowActions, defaultSizing);\n columns.push(column);\n }\n }\n\n return { columns, defaultSizing, defaultSorting, defaultVisibility };\n}\n\nexport function configureReactTableOptions<TType = unknown>(\n options: TableFeatureProps<TType>,\n props: TableProps<TType>,\n localization: Localization\n) {\n // We don't want to expose internal Tanstack Table row, so we need to wrap enableRowSelection callback into additional function,\n // which receives the React Table Row object and passes row.original to a callback.\n const reactTableEnableRowSelection =\n typeof options.enableRowSelection === 'function'\n ? (row: ReactTableRow<TType>) => (options.enableRowSelection as (row: TType) => boolean)(row.original)\n : options.enableRowSelection;\n\n let getRowId;\n\n if (props.rowIdentityAccessor) {\n getRowId = (originalRow: TType | undefined, index: number) => {\n if (originalRow) {\n return String(originalRow[props.rowIdentityAccessor as string]);\n }\n\n return String(index);\n };\n }\n\n const tableOptions: Partial<ReactTableOptions<TType>> = {\n defaultColumn: {\n enableColumnFilter: options.enableFiltering || true,\n enableGrouping: false,\n enableHiding: options.enableColumnHiding || true,\n enableResizing: options.enableColumnResizing || true,\n enableGlobalFilter: options.enableSearch || true,\n enableSorting: options.enableSorting || true,\n minSize: 1,\n // the default is 150, which is a bit random\n size: 1,\n },\n enableColumnFilters: options.enableFiltering ?? false,\n enableColumnResizing: options.enableColumnResizing ?? false,\n enableExpanding: options.enableRowExpansion ?? false,\n enableGrouping: true, // users can't customise row grouping, so it can just be always enabled and left to the defaultRowGroupColumnId prop\n enableHiding: options.enableColumnHiding ?? false,\n enablePinning: options.enableColumnFreezing ?? false,\n enableRowPinning: true, // users can't customise row pinning, so it can just be always enabled\n enableRowSelection: reactTableEnableRowSelection ?? false,\n enableSorting: options.enableSorting ?? false,\n // models for default features\n getExpandedRowModel: getExpandedRowModel<TType>(),\n getGroupedRowModel: getGroupedRowModel<TType>(),\n getRowId,\n groupedColumnMode: false,\n keepPinnedRows: false,\n };\n\n if (tableOptions.enableColumnResizing) {\n tableOptions.columnResizeMode = 'onChange';\n }\n\n if (tableOptions.enableColumnFilters) {\n // enter controlled filter mode (controlled could be local state, but usually the server)\n if (props.onChangeFilter) {\n // tableOptions.manualFiltering = true;\n // we don't set it because it breaks global filtering (used for search, which is fully client side)\n //\n // tableOptions.onColumnFiltersChange = ...\n // we don't set this because it expects state to be maintained externally, and we don't want\n // consumers to control state outside the table. instead we have a listener that calls onFilter\n } else {\n tableOptions.getFilteredRowModel = getFilteredRowModel<TType>();\n tableOptions.filterFns = {\n tacoFilter: (row: ReactTableRow<TType>, columnId: string, filter: any) =>\n columnFilterFn(row.getValue(columnId), filter),\n };\n }\n }\n\n if (options.enableSearch) {\n // always set these because enableGlobalFilter can be toggled on and off by the user\n tableOptions.getFilteredRowModel = getFilteredRowModel<TType>();\n tableOptions.globalFilterFn = (row: ReactTableRow<TType>, columnId: string, searchQuery: any) =>\n globalFilterFn(row, columnId, searchQuery, localization);\n tableOptions.getColumnCanGlobalFilter = (column: ReactTableColumn<TType>) =>\n column.columnDef.meta?.enableSearch !== false && column.getIsVisible();\n\n // enter controlled search mode (controlled could be local state, but usually the server)\n if (props.onChangeSearch) {\n if (props._experimentalDataLoader2) {\n tableOptions.manualFiltering = true;\n } else {\n // tableOptions.manualFiltering = true;\n // we don't set this because controlled search is not currently supported, search is always client side\n //\n // tableOptions.onGlobalFilterChange = ...\n // we don't set this because it expects state to be maintained externally, and we don't want\n // consumers to control state outside the table. instead we have a listener that calls onSearch.\n //\n // we also don't always filter when searching, we have the highlight functionality as the default\n // and filtering can be toggled by the user\n }\n }\n }\n\n if (tableOptions.enableSorting) {\n // enter controlled sort mode (controlled could be local state, but usually the server)\n if (props.onChangeSort) {\n tableOptions.manualSorting = true;\n\n // tableOptions.onSortingChange = ...\n // we don't set this because it expects state to be maintained externally, and we don't want\n // consumers to control state outside the table. instead we have a listener that calls onSort\n } else {\n tableOptions.getSortedRowModel = getSortedRowModel();\n }\n }\n\n return tableOptions;\n}\n\nexport function useReactTableInitialState<TType = unknown>(\n props: TableProps<TType>,\n columns: ReactTableColumnDef<TType>[],\n persistedSettings: TableSettings,\n defaults: {\n defaultSizing: ReactTableColumnSizingState;\n defaultSorting: ReactTableColumnSort[];\n defaultVisibility: ReactTableVisibilityState;\n }\n): Partial<ReactTableState> {\n return React.useMemo(() => {\n const ignoreNotDefinedColumns = column => columns.find(definedColumn => definedColumn.id === column.id);\n\n const columnPinning: ReactTableColumnPinningState =\n persistedSettings.columnPinning ?? props.defaultSettings?.columnPinning ?? {};\n\n const columnOrder = ensureOrdering<TType>(\n columns,\n persistedSettings.columnOrder ?? props.defaultSettings?.columnOrder,\n columnPinning.left\n );\n\n // ensure internal columns are pinned, and are pinned in the correct order\n if (columnPinning?.left?.length) {\n columnPinning.left = freezeUptoExternalColumn(\n columnOrder.indexOf(columnPinning.left[columnPinning.left.length - 1]),\n columnOrder\n );\n } else {\n if (props.defaultColumnFreezingIndex) {\n columnPinning.left = freezeUptoExternalColumn(props.defaultColumnFreezingIndex, columnOrder);\n } else {\n columnPinning.left = unfreezeAllExternalColumns(columnOrder);\n }\n }\n\n const state: Partial<ReactTableState> = {\n columnFilters: persistedSettings.columnFilters ?? props.defaultSettings?.columnFilters ?? [],\n columnOrder,\n columnPinning,\n columnSizing: ignoreInternalColumns(\n persistedSettings.columnSizing ?? props.defaultSettings?.columnSizing ?? defaults.defaultSizing ?? {}\n ),\n columnVisibility:\n persistedSettings.columnVisibility ?? props.defaultSettings?.columnVisibility ?? defaults.defaultVisibility ?? {},\n globalFilter: persistedSettings.searchQuery ?? props.defaultSettings?.searchQuery,\n sorting: persistedSettings.sorting\n ? persistedSettings.sorting.filter(ignoreNotDefinedColumns)\n : props.defaultSettings?.sorting ?? defaults.defaultSorting,\n };\n\n if (props.defaultRowGroupColumnId) {\n state.grouping = [props.defaultRowGroupColumnId as string];\n // row groups should (all) always be expanded by default\n state.expanded = true;\n }\n\n return state;\n }, []);\n}\n"],"names":["processChildren","child","columns","defaultSizing","defaultSorting","defaultVisibility","settings","defaultRowGroupColumnId","localization","columnHelper","createColumnHelper","React","isValidElement","props","children","id","header","push","group","Children","toArray","reduce","enableGrouping","accessor","_meta$align","untypedId","accessorKey","renderer","aggregate","footer","aggregationFn","defaultHidden","defaultWidth","enableEditing","control","enableFiltering","enableColumnFilter","enableHiding","enableOrdering","enablePrinting","enableResizing","enableSearch","enableGlobalFilter","enableSorting","enableTruncate","minWidth","minSize","getCellMinWidth","fontSize","sort","sortFn","meta","dataTypeProperties","getDataTypeProperties","dataType","isGrouped","undefined","desc","column","accessorFn","row","get","align","cell","info","getValue","original","getDisplayValue","dataTypeRenderer","value","displayValue","_dataTypeProperties$g","call","Array","isArray","_displayValue$","table","getRowModel","rows","flatMap","filterFn","aggregatedCell","sortingFn","getSortingFn","sortDescFirst","sortUndefined","createInternalColumn","size","mapTableChildrenToColumns","options","internalColumns","_props$rowActions","enableRowExpansion","rowExpansionRenderer","rowExpansion","unshift","enableRowSelection","rowSelection","enableRowDrag","onRowDrag","rowDrag","enableRowActions","rowActions","length","configureReactTableOptions","reactTableEnableRowSelection","getRowId","rowIdentityAccessor","originalRow","index","String","tableOptions","defaultColumn","enableColumnHiding","enableColumnResizing","enableColumnFilters","_options$enableFilter","_options$enableColumn","enableExpanding","_options$enableRowExp","_options$enableColumn2","enablePinning","_options$enableColumn3","enableColumnFreezing","enableRowPinning","_options$enableSortin","getExpandedRowModel","getGroupedRowModel","groupedColumnMode","keepPinnedRows","columnResizeMode","onChangeFilter","getFilteredRowModel","filterFns","tacoFilter","columnId","filter","columnFilterFn","globalFilterFn","searchQuery","getColumnCanGlobalFilter","_column$columnDef$met","columnDef","getIsVisible","onChangeSearch","_experimentalDataLoader2","manualFiltering","onChangeSort","manualSorting","getSortedRowModel","useReactTableInitialState","persistedSettings","defaults","useMemo","ignoreNotDefinedColumns","find","definedColumn","columnPinning","_ref","_persistedSettings$co","_props$defaultSetting","defaultSettings","columnOrder","ensureOrdering","_persistedSettings$co2","_props$defaultSetting2","left","_columnPinning$left","freezeUptoExternalColumn","indexOf","defaultColumnFreezingIndex","unfreezeAllExternalColumns","state","columnFilters","_ref2","_persistedSettings$co3","_props$defaultSetting3","columnSizing","ignoreInternalColumns","_ref3","_ref4","_persistedSettings$co4","_props$defaultSetting4","columnVisibility","_ref5","_ref6","_persistedSettings$co5","_props$defaultSetting5","globalFilter","_persistedSettings$se","_props$defaultSetting6","sorting","_props$defaultSetting7","_props$defaultSetting8","grouping","expanded"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
@@ -63,6 +63,7 @@ export * from './components/Navigation2/Navigation2';
|
|
63
63
|
export * as CollectionPrimitive from './primitives/Collection/Collection';
|
64
64
|
export * from './primitives/Table/types';
|
65
65
|
export * from './primitives/Table/useTableDataLoader';
|
66
|
+
export * from './primitives/Table/useTableDataLoader2';
|
66
67
|
export * from './utils/date';
|
67
68
|
export * from './utils/keyboard';
|
68
69
|
export * from './utils/mergeRefs';
|
@@ -1,8 +1,8 @@
|
|
1
1
|
/// <reference types="react" />
|
2
|
-
import { Table as ReactTable
|
2
|
+
import { Table as ReactTable } from '@tanstack/react-table';
|
3
3
|
export declare type RowProps<TType = unknown> = {
|
4
4
|
index: number;
|
5
|
-
|
5
|
+
scrollDirection: 'forward' | 'backward' | undefined;
|
6
6
|
table: ReactTable<TType>;
|
7
7
|
};
|
8
8
|
export declare function SkeletonRow<TType = unknown>(props: RowProps<TType>): JSX.Element;
|
@@ -2,5 +2,7 @@ import React from 'react';
|
|
2
2
|
import { TableRowRenderer, TableRowRendererProps } from '../../types';
|
3
3
|
export declare type RowProps<TType = unknown> = React.HTMLAttributes<HTMLTableRowElement> & TableRowRendererProps<TType> & {
|
4
4
|
renderer: TableRowRenderer<TType>;
|
5
|
+
scrollDirection?: 'forward' | 'backward';
|
6
|
+
skipPageLoading?: boolean;
|
5
7
|
};
|
6
8
|
export declare function Row<TType = unknown>(props: RowProps<TType>): JSX.Element;
|
@@ -3,7 +3,7 @@ import { Table as ReactTable } from '@tanstack/react-table';
|
|
3
3
|
import { ScrollToOptions as ReactVirtualScrollToOptions } from '@tanstack/react-virtual';
|
4
4
|
import { useTableRenderers, useTableRenderOptions } from '../types';
|
5
5
|
import { TableRef } from '../../types';
|
6
|
-
export declare function useTableRenderer<TType = unknown>(renderers: useTableRenderers<TType>, table: ReactTable<TType>, tableRef: React.RefObject<TableRef>, defaultRowActiveIndex?: number | undefined, options?: useTableRenderOptions): {
|
6
|
+
export declare function useTableRenderer<TType = unknown>(renderers: useTableRenderers<TType>, table: ReactTable<TType>, tableRef: React.RefObject<TableRef>, length: number, defaultRowActiveIndex?: number | undefined, options?: useTableRenderOptions): {
|
7
7
|
rows: (JSX.Element | null)[] | null;
|
8
8
|
style: React.CSSProperties;
|
9
9
|
scrollToIndex: (index: number, options?: ReactVirtualScrollToOptions) => void;
|
@@ -67,7 +67,7 @@ export declare type TableRowDragHandler<TType = unknown> = (rows: TType[], showP
|
|
67
67
|
export declare type TableRowDropHandler<TType = unknown> = (event: React.DragEvent, row: TType) => void;
|
68
68
|
export declare type TableRowGotoHandler = (column: string, query: string, sorting: TableColumnSort[], filters: TableColumnFilter[], search: string | undefined) => Promise<number>;
|
69
69
|
export declare type TableRowHeight = 'short' | 'medium' | 'tall' | 'extra-tall';
|
70
|
-
export declare type TableRowSelectHandler<TType = unknown> = (rows: TType[]) => void;
|
70
|
+
export declare type TableRowSelectHandler<TType = unknown> = (rows: TType[], ids: string[]) => void;
|
71
71
|
export declare type TableRowWithMetaData<TType = unknown> = TType & {
|
72
72
|
_meta?: {
|
73
73
|
layout?: 'heading' | 'summary' | 'item';
|
@@ -79,19 +79,19 @@ export declare type TableShortcutHandlerObject<TType = unknown> = {
|
|
79
79
|
meta?: boolean;
|
80
80
|
shift?: boolean;
|
81
81
|
};
|
82
|
-
export declare type
|
82
|
+
export declare type TableSortHandler = (sorting: TableColumnSort[]) => Promise<void>;
|
83
|
+
export declare type TableFilterHandler = (filters: TableColumnFilter[], hiddenColumns: string[]) => Promise<void>;
|
84
|
+
export declare type TableSearchHandler = (search: string | undefined, hiddenColumns: string[]) => Promise<void>;
|
83
85
|
export declare type TableFontSize = keyof typeof FontSizes;
|
84
86
|
export declare type TablePreset = 'complex' | 'list' | 'simple';
|
85
87
|
export declare type TableRowExpansionRenderer<TType = unknown> = (row: TType) => (() => JSX.Element) | null;
|
86
88
|
export declare type TableScrollToIndexHandler = (index: number, options?: {
|
87
89
|
align: 'start' | 'center' | 'end' | 'auto';
|
88
90
|
}) => void;
|
89
|
-
export declare type
|
90
|
-
export declare type
|
91
|
-
export declare type TableServerLoadAllHandler = (sorting: TableColumnSort[], filters: TableColumnFilter[]) => Promise<void>;
|
91
|
+
export declare type TableServerLoadPageHandler = (pageIndex: number, sorting: TableColumnSort[], filters: TableColumnFilter[], hiddenColumns: string[], search: string | undefined) => Promise<void>;
|
92
|
+
export declare type TableServerLoadAllHandler = (sorting: TableColumnSort[], filters: TableColumnFilter[], hiddenColumns: string[], search: string | undefined) => Promise<void>;
|
92
93
|
export declare type TableSettingsHandler = (settings: TableSettings) => void | Promise<void>;
|
93
94
|
export declare type TableShortcuts<TType = unknown> = Record<string, TableShortcutHandlerFn<TType> | TableShortcutHandlerObject<TType>>;
|
94
|
-
export declare type TableSortHandler = (sorting: TableColumnSort[]) => void | Promise<void>;
|
95
95
|
export declare type TableCustomSettingsRenderer = (props: TableSettings) => React.ReactElement<MenuItemProps>[];
|
96
96
|
export declare type TableEmptyStateReason = 'empty' | 'filtering' | 'searching';
|
97
97
|
export declare type TableEmptyStateRenderer = (props: {
|
@@ -180,12 +180,16 @@ export interface TableClientProps<TType = unknown> extends TableCommonProps<TTyp
|
|
180
180
|
loadAll?: never;
|
181
181
|
loadPage?: never;
|
182
182
|
pageSize?: never;
|
183
|
+
pages?: never;
|
184
|
+
_experimentalDataLoader2?: never;
|
183
185
|
}
|
184
186
|
export interface TableServerProps<TType = unknown> extends TableCommonProps<TType> {
|
185
187
|
length: number | undefined;
|
186
188
|
loadAll: TableServerLoadAllHandler;
|
187
189
|
loadPage: TableServerLoadPageHandler;
|
188
190
|
pageSize?: number;
|
191
|
+
pages?: number[];
|
192
|
+
_experimentalDataLoader2?: boolean;
|
189
193
|
}
|
190
194
|
export declare type TableProps<TType = unknown> = TableClientProps<TType> | TableServerProps<TType>;
|
191
195
|
export declare type TableColumnProps<TType = unknown> = ValueOf<{
|
@@ -1,10 +1,10 @@
|
|
1
1
|
import { TableColumnFilter, TableColumnSort, TableFilterHandler, TableServerLoadPageHandler, TableServerLoadAllHandler, TableSortHandler, TableSearchHandler } from './types';
|
2
2
|
export declare const DEFAULT_PAGE_SIZE = 100;
|
3
|
-
export declare type useTableDataPageFetcher<TType = unknown> = (pageIndex: number, pageSize: number, sorting: TableColumnSort[], filters: TableColumnFilter[]) => Promise<{
|
3
|
+
export declare type useTableDataPageFetcher<TType = unknown> = (pageIndex: number, pageSize: number, sorting: TableColumnSort[], filters: TableColumnFilter[], hiddenColumns: string[]) => Promise<{
|
4
4
|
data: TType[];
|
5
5
|
length: number;
|
6
6
|
}>;
|
7
|
-
export declare type useTableDataAllFetcher<TType = unknown> = (sorting: TableColumnSort[], filters: TableColumnFilter[]) => Promise<{
|
7
|
+
export declare type useTableDataAllFetcher<TType = unknown> = (sorting: TableColumnSort[], filters: TableColumnFilter[], hiddenColumns: string[]) => Promise<{
|
8
8
|
data: TType[];
|
9
9
|
length: number;
|
10
10
|
}>;
|
@@ -0,0 +1,23 @@
|
|
1
|
+
import { TableColumnFilter, TableColumnSort, TableFilterHandler, TableServerLoadPageHandler, TableServerLoadAllHandler, TableSortHandler, TableSearchHandler } from './types';
|
2
|
+
import { useTableDataLoaderOptions } from './useTableDataLoader';
|
3
|
+
export declare type useTableDataPageFetcher2<TType = unknown> = (pageIndex: number, pageSize: number, sorting: TableColumnSort[], filters: TableColumnFilter[], hiddenColumns: string[], search: string | undefined) => Promise<{
|
4
|
+
data: TType[];
|
5
|
+
length: number;
|
6
|
+
}>;
|
7
|
+
export declare type useTableDataAllFetcher2<TType = unknown> = (sorting: TableColumnSort[], filters: TableColumnFilter[], hiddenColumns: string[], search: string | undefined) => Promise<{
|
8
|
+
data: TType[];
|
9
|
+
length: number;
|
10
|
+
}>;
|
11
|
+
export declare type useTableDataLoaderValues2<TType = unknown> = {
|
12
|
+
data: TType[];
|
13
|
+
length: number | undefined;
|
14
|
+
loadAll: TableServerLoadAllHandler;
|
15
|
+
loadPage: TableServerLoadPageHandler;
|
16
|
+
onChangeFilter: TableFilterHandler;
|
17
|
+
onChangeSearch: TableSearchHandler;
|
18
|
+
onChangeSort: TableSortHandler;
|
19
|
+
pageSize: number;
|
20
|
+
pages: number[];
|
21
|
+
_experimentalDataLoader2: boolean;
|
22
|
+
};
|
23
|
+
export declare function useTableDataLoader2<TType = unknown>(fetchPage: useTableDataPageFetcher2<TType>, fetchAll: useTableDataAllFetcher2<TType>, options?: useTableDataLoaderOptions): [useTableDataLoaderValues2<TType>, () => void];
|
@@ -1,11 +1,13 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import { Table as ReactTable } from '@tanstack/react-table';
|
3
|
-
|
3
|
+
import { TableSearchHandler } from '../../types';
|
4
|
+
export declare function useTableSearch<TType = unknown>(isEnabled: boolean | undefined, onChangeSearch: TableSearchHandler | undefined, defaultEnableGlobalFilter?: boolean): {
|
4
5
|
isEnabled: boolean;
|
5
6
|
enableGlobalFilter: boolean;
|
6
|
-
setEnableGlobalFilter: <
|
7
|
+
setEnableGlobalFilter: <T extends TType>(enabled: boolean, instance: ReactTable<T>) => void;
|
7
8
|
highlightedColumnIndexes: number[][];
|
8
9
|
setHighlightedColumnIndexes: React.Dispatch<React.SetStateAction<number[][]>>;
|
9
10
|
currentHighlightColumnIndex: number | undefined;
|
10
11
|
setCurrentHighlightColumnIndex: React.Dispatch<React.SetStateAction<number | undefined>>;
|
12
|
+
handleSearch: TableSearchHandler | undefined;
|
11
13
|
};
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import { TableServerLoadAllHandler, TableServerLoadPageHandler } from '../../types';
|
2
|
-
export declare function useTableServerLoading(length: number, data:
|
2
|
+
export declare function useTableServerLoading<TType = unknown>(length: number, data: TType[], loadPage?: TableServerLoadPageHandler, loadAll?: TableServerLoadAllHandler, pages?: number[], pageSize?: number, _experimentalDataLoader2?: boolean): {
|
3
|
+
pages: number[] | undefined;
|
3
4
|
isEnabled: boolean;
|
4
5
|
isReady: boolean;
|
5
6
|
loadPage: TableServerLoadPageHandler | undefined;
|
@@ -7,4 +8,6 @@ export declare function useTableServerLoading(length: number, data: any[], loadP
|
|
7
8
|
loadAllIfNeeded: TableServerLoadAllHandler | undefined;
|
8
9
|
loading: boolean;
|
9
10
|
pageSize: number;
|
11
|
+
pageCount: number;
|
12
|
+
_experimentalDataLoader2: boolean;
|
10
13
|
};
|
@@ -1,3 +1,2 @@
|
|
1
1
|
import { Table as ReactTable } from '@tanstack/react-table';
|
2
|
-
|
3
|
-
export declare function useTableSearchListener<TType = unknown>(table: ReactTable<TType>, onChangeSearch?: TableSearchHandler): void;
|
2
|
+
export declare function useTableSearchListener<TType = unknown>(table: ReactTable<TType>): void;
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { ColumnDef as ReactTableColumnDef } from '@tanstack/react-table';
|
1
|
+
import { ColumnDef as ReactTableColumnDef, VisibilityState as ReactTableVisibilityState } from '@tanstack/react-table';
|
2
2
|
import { FontSize } from '../../../../types';
|
3
3
|
import { TableColumnDataType } from '../../types';
|
4
4
|
import { Localization } from '../../../../components/Provider/Localization';
|
@@ -8,3 +8,4 @@ export declare function isCellHighlighted(query: string, value: unknown, dataTyp
|
|
8
8
|
export declare function ensureOrdering<TType = unknown>(columns: ReactTableColumnDef<TType>[], settingsOrder: string[] | undefined, pinnedOrder?: string[] | undefined, internalColumnsPinnedToTheRight?: string[]): string[];
|
9
9
|
export declare function unfreezeAllExternalColumns(leftPinnedState?: string[]): string[];
|
10
10
|
export declare function freezeUptoExternalColumn(index: number, columns: string[]): string[];
|
11
|
+
export declare function getHiddenColumns(columnVisibility?: ReactTableVisibilityState): string[];
|