@economic/taco 2.26.7 → 2.26.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (22) hide show
  1. package/dist/esm/index.css +4 -0
  2. package/dist/esm/packages/taco/src/components/Report/Report.js +11 -1
  3. package/dist/esm/packages/taco/src/components/Report/Report.js.map +1 -1
  4. package/dist/esm/packages/taco/src/components/Table3/Table3.js +11 -1
  5. package/dist/esm/packages/taco/src/components/Table3/Table3.js.map +1 -1
  6. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell.js +28 -4
  7. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell.js.map +1 -1
  8. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.js +17 -10
  9. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.js.map +1 -1
  10. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Actions.js +1 -1
  11. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Actions.js.map +1 -1
  12. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/useTableManager.js.map +1 -1
  13. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/setup.js +2 -1
  14. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/setup.js.map +1 -1
  15. package/dist/index.css +4 -0
  16. package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell.d.ts +1 -1
  17. package/dist/primitives/Table/useTableManager/useTableManager.d.ts +2 -1
  18. package/dist/taco.cjs.development.js +68 -17
  19. package/dist/taco.cjs.development.js.map +1 -1
  20. package/dist/taco.cjs.production.min.js +1 -1
  21. package/dist/taco.cjs.production.min.js.map +1 -1
  22. package/package.json +2 -2
@@ -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 { 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, globalFilterFn } from './filtering';\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\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 ),\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,\n accessor: accessorKey = id,\n // renderers\n renderer,\n aggregate,\n footer,\n header,\n // options\n aggregationFn,\n defaultHidden,\n defaultWidth,\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\n if (defaultHidden && enableHiding) {\n defaultVisibility[id] = false;\n }\n\n if (defaultWidth) {\n defaultSizing[id] = defaultWidth as any;\n }\n\n if (child.props.sort !== undefined) {\n defaultSorting.push({\n id,\n desc: sort === 'desc',\n });\n }\n\n const isGrouped = defaultRowGroupColumnId === id;\n\n const column: ReactTableColumnDef<TType, any> = {\n id,\n 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 defaultWidth,\n enableOrdering: isGrouped ? false : enableOrdering,\n enablePrinting,\n enableTruncate,\n header,\n },\n };\n\n // renderers\n if (typeof renderer === 'function') {\n column.cell = info => renderer(info.getValue(), info.row.original);\n }\n\n if (typeof footer === 'function') {\n column.footer = info => footer(info.table.getRowModel().rows.map(row => row.original[id]));\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,\n internalColumns?: useTableManagerInternalColumns<TType>\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 ),\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 || options.enableRowSelectionSingle) && internalColumns.rowSelection) {\n const column = createInternalColumn<TType>('__select', internalColumns.rowSelection, 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 if (options.enableRowDrag && props.onRowDrag && internalColumns.rowDrag) {\n const column = createInternalColumn<TType>('__drag', internalColumns.rowDrag, defaultSizing);\n columns.unshift(column);\n }\n }\n\n return { columns, defaultSizing, defaultSorting, defaultVisibility };\n}\n\nexport function configureReactTableOptions<TType = unknown>(options: TableFeatureProps, props: TableProps<TType>) {\n const enableRowSelection = options.enableRowSelection || options.enableRowSelectionSingle;\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 enableRowSelection: enableRowSelection ?? false,\n enableMultiRowSelection: options.enableRowSelectionSingle === true ? false : enableRowSelection,\n enableSorting: options.enableSorting ?? false,\n // models for default features\n getExpandedRowModel: getExpandedRowModel<TType>(),\n getGroupedRowModel: getGroupedRowModel<TType>(),\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 = globalFilterFn;\n tableOptions.getColumnCanGlobalFilter = (column: ReactTableColumn<TType>) => column.columnDef.meta?.enableSearch ?? true;\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 columnOrder = ensureOrdering<TType>(columns, persistedSettings.columnOrder ?? props.defaultSettings?.columnOrder);\n\n const columnPinning: ReactTableColumnPinningState =\n persistedSettings.columnPinning ?? props.defaultSettings?.columnPinning ?? {};\n\n // ensure internal columns are pinned\n if (!columnPinning?.left?.length) {\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: persistedSettings.columnSizing ?? props.defaultSettings?.columnSizing ?? defaults.defaultSizing ?? {},\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 (persistedSettings.grouping?.length ?? props.defaultSettings?.grouping?.length ?? 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","columnHelper","createColumnHelper","React","isValidElement","props","children","id","header","push","group","Children","toArray","reduce","enableGrouping","accessor","accessorKey","renderer","aggregate","footer","aggregationFn","defaultHidden","defaultWidth","enableFiltering","enableColumnFilter","enableHiding","enableOrdering","enablePrinting","enableResizing","enableSearch","enableGlobalFilter","enableSorting","enableTruncate","minWidth","minSize","getCellMinWidth","fontSize","sort","sortFn","meta","undefined","desc","isGrouped","column","cell","info","getValue","row","original","table","getRowModel","rows","map","filterFn","aggregatedCell","sortingFn","getSortingFn","dataType","sortDescFirst","sortUndefined","createInternalColumn","size","mapTableChildrenToColumns","options","internalColumns","_props$rowActions","enableRowExpansion","rowExpansionRenderer","rowExpansion","unshift","enableRowSelection","enableRowSelectionSingle","rowSelection","enableRowActions","rowActions","length","enableRowDrag","onRowDrag","rowDrag","configureReactTableOptions","tableOptions","defaultColumn","enableColumnHiding","enableColumnResizing","enableColumnFilters","_options$enableFilter","_options$enableColumn","enableExpanding","_options$enableRowExp","_options$enableColumn2","enablePinning","_options$enableColumn3","enableColumnFreezing","enableMultiRowSelection","_options$enableSortin","getExpandedRowModel","getGroupedRowModel","groupedColumnMode","columnResizeMode","onChangeFilter","getFilteredRowModel","filterFns","tacoFilter","columnId","filter","columnFilterFn","globalFilterFn","getColumnCanGlobalFilter","_column$columnDef$met","_column$columnDef$met2","columnDef","onChangeSort","manualSorting","getSortedRowModel","useReactTableInitialState","persistedSettings","defaults","useMemo","ignoreNotDefinedColumns","find","definedColumn","columnOrder","ensureOrdering","_persistedSettings$co","_props$defaultSetting","defaultSettings","columnPinning","_ref","_persistedSettings$co2","_props$defaultSetting2","_columnPinning$left","left","defaultColumnFreezingIndex","freezeUptoExternalColumn","unfreezeAllExternalColumns","state","columnFilters","_ref2","_persistedSettings$co3","_props$defaultSetting3","columnSizing","_ref3","_ref4","_persistedSettings$co4","_props$defaultSetting4","columnVisibility","_ref5","_ref6","_persistedSettings$co5","_props$defaultSetting5","globalFilter","_persistedSettings$se","searchQuery","_props$defaultSetting6","sorting","_props$defaultSetting7","_props$defaultSetting8","_ref7","_persistedSettings$gr","_persistedSettings$gr2","grouping","_props$defaultSetting9","_props$defaultSetting10","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 { 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, globalFilterFn } from './filtering';\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\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 ),\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,\n accessor: accessorKey = id,\n // renderers\n renderer,\n aggregate,\n footer,\n header,\n // options\n aggregationFn,\n defaultHidden,\n defaultWidth,\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\n if (defaultHidden && enableHiding) {\n defaultVisibility[id] = false;\n }\n\n if (defaultWidth) {\n defaultSizing[id] = defaultWidth as any;\n }\n\n if (child.props.sort !== undefined) {\n defaultSorting.push({\n id,\n desc: sort === 'desc',\n });\n }\n\n const isGrouped = defaultRowGroupColumnId === id;\n\n const column: ReactTableColumnDef<TType, any> = {\n id,\n 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 defaultWidth,\n enableOrdering: isGrouped ? false : enableOrdering,\n enablePrinting,\n enableTruncate,\n header,\n renderer,\n },\n };\n\n // renderers\n if (typeof renderer === 'function') {\n column.cell = info => renderer(info.getValue(), info.row.original);\n }\n\n if (typeof footer === 'function') {\n column.footer = info => footer(info.table.getRowModel().rows.map(row => row.original[id]));\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,\n internalColumns?: useTableManagerInternalColumns<TType>\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 ),\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 || options.enableRowSelectionSingle) && internalColumns.rowSelection) {\n const column = createInternalColumn<TType>('__select', internalColumns.rowSelection, 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 if (options.enableRowDrag && props.onRowDrag && internalColumns.rowDrag) {\n const column = createInternalColumn<TType>('__drag', internalColumns.rowDrag, defaultSizing);\n columns.unshift(column);\n }\n }\n\n return { columns, defaultSizing, defaultSorting, defaultVisibility };\n}\n\nexport function configureReactTableOptions<TType = unknown>(options: TableFeatureProps, props: TableProps<TType>) {\n const enableRowSelection = options.enableRowSelection || options.enableRowSelectionSingle;\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 enableRowSelection: enableRowSelection ?? false,\n enableMultiRowSelection: options.enableRowSelectionSingle === true ? false : enableRowSelection,\n enableSorting: options.enableSorting ?? false,\n // models for default features\n getExpandedRowModel: getExpandedRowModel<TType>(),\n getGroupedRowModel: getGroupedRowModel<TType>(),\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 = globalFilterFn;\n tableOptions.getColumnCanGlobalFilter = (column: ReactTableColumn<TType>) => column.columnDef.meta?.enableSearch ?? true;\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 columnOrder = ensureOrdering<TType>(columns, persistedSettings.columnOrder ?? props.defaultSettings?.columnOrder);\n\n const columnPinning: ReactTableColumnPinningState =\n persistedSettings.columnPinning ?? props.defaultSettings?.columnPinning ?? {};\n\n // ensure internal columns are pinned\n if (!columnPinning?.left?.length) {\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: persistedSettings.columnSizing ?? props.defaultSettings?.columnSizing ?? defaults.defaultSizing ?? {},\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 (persistedSettings.grouping?.length ?? props.defaultSettings?.grouping?.length ?? 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","columnHelper","createColumnHelper","React","isValidElement","props","children","id","header","push","group","Children","toArray","reduce","enableGrouping","accessor","accessorKey","renderer","aggregate","footer","aggregationFn","defaultHidden","defaultWidth","enableFiltering","enableColumnFilter","enableHiding","enableOrdering","enablePrinting","enableResizing","enableSearch","enableGlobalFilter","enableSorting","enableTruncate","minWidth","minSize","getCellMinWidth","fontSize","sort","sortFn","meta","undefined","desc","isGrouped","column","cell","info","getValue","row","original","table","getRowModel","rows","map","filterFn","aggregatedCell","sortingFn","getSortingFn","dataType","sortDescFirst","sortUndefined","createInternalColumn","size","mapTableChildrenToColumns","options","internalColumns","_props$rowActions","enableRowExpansion","rowExpansionRenderer","rowExpansion","unshift","enableRowSelection","enableRowSelectionSingle","rowSelection","enableRowActions","rowActions","length","enableRowDrag","onRowDrag","rowDrag","configureReactTableOptions","tableOptions","defaultColumn","enableColumnHiding","enableColumnResizing","enableColumnFilters","_options$enableFilter","_options$enableColumn","enableExpanding","_options$enableRowExp","_options$enableColumn2","enablePinning","_options$enableColumn3","enableColumnFreezing","enableMultiRowSelection","_options$enableSortin","getExpandedRowModel","getGroupedRowModel","groupedColumnMode","columnResizeMode","onChangeFilter","getFilteredRowModel","filterFns","tacoFilter","columnId","filter","columnFilterFn","globalFilterFn","getColumnCanGlobalFilter","_column$columnDef$met","_column$columnDef$met2","columnDef","onChangeSort","manualSorting","getSortedRowModel","useReactTableInitialState","persistedSettings","defaults","useMemo","ignoreNotDefinedColumns","find","definedColumn","columnOrder","ensureOrdering","_persistedSettings$co","_props$defaultSetting","defaultSettings","columnPinning","_ref","_persistedSettings$co2","_props$defaultSetting2","_columnPinning$left","left","defaultColumnFreezingIndex","freezeUptoExternalColumn","unfreezeAllExternalColumns","state","columnFilters","_ref2","_persistedSettings$co3","_props$defaultSetting3","columnSizing","_ref3","_ref4","_persistedSettings$co4","_props$defaultSetting4","columnVisibility","_ref5","_ref6","_persistedSettings$co5","_props$defaultSetting5","globalFilter","_persistedSettings$se","searchQuery","_props$defaultSetting6","sorting","_props$defaultSetting7","_props$defaultSetting8","_ref7","_persistedSettings$gr","_persistedSettings$gr2","grouping","_props$defaultSetting9","_props$defaultSetting10","expanded"],"mappings":";;;;;;AAuBA;AACA,SAASA,eAAeA,CACpBC,KAAiE,EACjEC,OAAqC,EACrCC,aAA0C,EAC1CC,cAAsC,EACtCC,iBAA4C,EAC5CC,QAAuB,EACvBC,uBAAqC;EAErC,MAAMC,YAAY,GAAGC,kBAAkB,EAAS;EAEhD,kBAAIC,cAAK,CAACC,cAAc,CAAkBV,KAAK,CAAC,IAAIA,KAAK,CAACW,KAAK,CAACC,QAAQ,EAAE;IACtE,MAAM;MAAEA,QAAQ;MAAEC,EAAE;MAAEC;KAAQ,GAAGd,KAAK,CAACW,KAAK;IAE5CV,OAAO,CAACc,IAAI,CACRR,YAAY,CAACS,KAAK,CAAC;MACfH,EAAE;MACFC,MAAM;MACNb,OAAO,EAAEQ,cAAK,CAACQ,QAAQ,CAACC,OAAO,CAACN,QAAQ,CAAC,CAACO,MAAM,CAC5C,CAAClB,OAAqC,EAAED,KAAK,KACzCD,eAAe,CACXC,KAAK,EACLC,OAAO,EACPC,aAAa,EACbC,cAAc,EACdC,iBAAiB,EACjBC,QAAQ,EACRC,uBAAuB,CAC1B,EACL,EAAE,CACL;;MAEDc,cAAc,EAAE;KACnB,CAAC,CACL;GACJ,MAAM,kBAAIX,cAAK,CAACC,cAAc,CAA0BV,KAAK,CAAC,KAAKA,KAAK,CAACW,KAAK,CAACU,QAAQ,IAAIrB,KAAK,CAACW,KAAK,CAACE,EAAE,CAAC,EAAE;IACzG,MAAM;MACFA,EAAE;MACFQ,QAAQ,EAAEC,WAAW,GAAGT,EAAE;;MAE1BU,QAAQ;MACRC,SAAS;MACTC,MAAM;MACNX,MAAM;;MAENY,aAAa;MACbC,aAAa;MACbC,YAAY;MACZC,eAAe,EAAEC,kBAAkB,GAAG,IAAI;MAC1CV,cAAc,GAAG,KAAK;MACtBW,YAAY,GAAG,IAAI;MACnBC,cAAc,GAAG,IAAI;MACrBC,cAAc,GAAG,IAAI;MACrBC,cAAc,GAAG,IAAI;MACrBC,YAAY,EAAEC,kBAAkB,GAAG,IAAI;MACvCC,aAAa,GAAG,IAAI;MACpBC,cAAc,GAAG,KAAK;MACtBC,QAAQ,EAAEC,OAAO,GAAGC,eAAe,CAACpC,QAAQ,CAACqC,QAAQ,CAAC;MACtDC,IAAI;MACJC,MAAM;MACN,GAAGC;KACN,GAAG7C,KAAK,CAACW,KAAK;IAEf,IAAIgB,aAAa,IAAII,YAAY,EAAE;MAC/B3B,iBAAiB,CAACS,EAAE,CAAC,GAAG,KAAK;;IAGjC,IAAIe,YAAY,EAAE;MACd1B,aAAa,CAACW,EAAE,CAAC,GAAGe,YAAmB;;IAG3C,IAAI5B,KAAK,CAACW,KAAK,CAACgC,IAAI,KAAKG,SAAS,EAAE;MAChC3C,cAAc,CAACY,IAAI,CAAC;QAChBF,EAAE;QACFkC,IAAI,EAAEJ,IAAI,KAAK;OAClB,CAAC;;IAGN,MAAMK,SAAS,GAAG1C,uBAAuB,KAAKO,EAAE;IAEhD,MAAMoC,MAAM,GAAoC;MAC5CpC,EAAE;MACFS,WAAW;MACXR,MAAM,EAAEA,MAAM;;MAEdgB,kBAAkB;MAClBM,kBAAkB;MAClBhB,cAAc;MACdW,YAAY,EAAEiB,SAAS,GAAG,KAAK,GAAGjB,YAAY;MAC9CG,cAAc;MACdG,aAAa;;MAEbG,OAAO;;MAEPK,IAAI,EAAE;QACF,GAAIA,IAAY;QAChBjB,YAAY;QACZI,cAAc,EAAEgB,SAAS,GAAG,KAAK,GAAGhB,cAAc;QAClDC,cAAc;QACdK,cAAc;QACdxB,MAAM;QACNS;;KAEP;;IAGD,IAAI,OAAOA,QAAQ,KAAK,UAAU,EAAE;MAChC0B,MAAM,CAACC,IAAI,GAAGC,IAAI,IAAI5B,QAAQ,CAAC4B,IAAI,CAACC,QAAQ,EAAE,EAAED,IAAI,CAACE,GAAG,CAACC,QAAQ,CAAC;;IAGtE,IAAI,OAAO7B,MAAM,KAAK,UAAU,EAAE;MAC9BwB,MAAM,CAACxB,MAAM,GAAG0B,IAAI,IAAI1B,MAAM,CAAC0B,IAAI,CAACI,KAAK,CAACC,WAAW,EAAE,CAACC,IAAI,CAACC,GAAG,CAACL,GAAG,IAAIA,GAAG,CAACC,QAAQ,CAACzC,EAAE,CAAC,CAAC,CAAC;;;IAI9F,IAAIiB,kBAAkB,EAAE;MACpBmB,MAAM,CAACU,QAAQ,GAAG,YAAmB;;;IAIzC,IAAIvC,cAAc,EAAE;MAChB6B,MAAM,CAACvB,aAAa,GAAGA,aAAa;MAEpC,IAAI,OAAOF,SAAS,KAAK,UAAU,EAAE;QACjCyB,MAAM,CAACW,cAAc,GAAGT,IAAI,IAAI3B,SAAS,CAAC2B,IAAI,CAACC,QAAQ,EAAE,EAAED,IAAI,CAACE,GAAG,CAACC,QAAQ,CAAC;;;;IAKrF,IAAIjB,aAAa,EAAE;MACfY,MAAM,CAACY,SAAS,GAAGC,YAAY,CAAQ9D,KAAK,CAACW,KAAK,CAACoD,QAAQ,EAAEnB,MAAM,CAAC;MACpEK,MAAM,CAACe,aAAa,GAAG,KAAK;MAC5Bf,MAAM,CAACgB,aAAa,GAAG,CAAC;;IAG5BhE,OAAO,CAACc,IAAI,CAACkC,MAAM,CAAC;;EAGxB,OAAOhD,OAAO;AAClB;AAEA,SAASiE,oBAAoBA,CACzBrD,EAAU,EACVoC,MAA4C,EAC5C/C,aAA0C;EAE1C,IAAI+C,MAAM,CAACkB,IAAI,EAAE;IACbjE,aAAa,CAACW,EAAE,CAAC,GAAGoC,MAAM,CAACkB,IAAI;;EAGnC,OAAO;IACHtD,EAAE;IACFS,WAAW,EAAET,EAAE;IACfC,MAAM,EAAEmC,MAAM,CAACnC,MAAM;IACrBoC,IAAI,EAAED,MAAM,CAAC1B,QAAQ;;IAErBO,kBAAkB,EAAE,KAAK;IACzBM,kBAAkB,EAAE,KAAK;IACzBhB,cAAc,EAAE,KAAK;IACrBW,YAAY,EAAE,KAAK;IACnBG,cAAc,EAAE,KAAK;IACrBG,aAAa,EAAE,KAAK;;IAEpB8B,IAAI,EAAElB,MAAM,CAACkB,IAAI;IACjB3B,OAAO,EAAES,MAAM,CAACkB,IAAI;;IAEpBtB,IAAI,EAAE;MACF,GAAII,MAAM,CAACJ,IAAY;MACvBb,cAAc,EAAE,KAAK;MACrBC,cAAc,EAAE,KAAK;MACrBK,cAAc,EAAE;;GAEY;AACxC;SAEgB8B,yBAAyBA,CACrCzD,KAAwB,EACxBN,QAAuB,EACvBgE,OAA0B,EAC1BC,eAAuD;EAEvD,MAAM;IAAE1D,QAAQ;IAAEN;GAAyB,GAAGK,KAAK;EACnD,MAAMT,aAAa,GAAgC,EAAE;EACrD,MAAMC,cAAc,GAA2B,EAAE;EACjD,MAAMC,iBAAiB,GAA8B,EAAE;EAEvD,MAAMH,OAAO,GAAGQ,cAAK,CAACQ,QAAQ,CAACC,OAAO,CAACN,QAAQ,CAAC,CAACO,MAAM,CACnD,CAAClB,OAAqC,EAAED,KAAK,KACzCD,eAAe,CACXC,KAAK,EACLC,OAAO,EACPC,aAAa,EACbC,cAAc,EACdC,iBAAiB,EACjBC,QAAQ,EACRC,uBAAuB,CAC1B,EAEL,EAAE,CACL;EAED,IAAIgE,eAAe,EAAE;IAAA,IAAAC,iBAAA;IACjB,IAAIF,OAAO,CAACG,kBAAkB,IAAI7D,KAAK,CAAC8D,oBAAoB,IAAIH,eAAe,CAACI,YAAY,EAAE;MAC1F,MAAMzB,MAAM,GAAGiB,oBAAoB,CAAQ,aAAa,EAAEI,eAAe,CAACI,YAAY,EAAExE,aAAa,CAAC;MACtGD,OAAO,CAAC0E,OAAO,CAAC1B,MAAM,CAAC;;IAG3B,IAAI,CAACoB,OAAO,CAACO,kBAAkB,IAAIP,OAAO,CAACQ,wBAAwB,KAAKP,eAAe,CAACQ,YAAY,EAAE;MAClG,MAAM7B,MAAM,GAAGiB,oBAAoB,CAAQ,UAAU,EAAEI,eAAe,CAACQ,YAAY,EAAE5E,aAAa,CAAC;MACnGD,OAAO,CAAC0E,OAAO,CAAC1B,MAAM,CAAC;;IAG3B,IAAIoB,OAAO,CAACU,gBAAgB,KAAAR,iBAAA,GAAI5D,KAAK,CAACqE,UAAU,cAAAT,iBAAA,eAAhBA,iBAAA,CAAkBU,MAAM,IAAIX,eAAe,CAACU,UAAU,EAAE;MACpF,MAAM/B,MAAM,GAAGiB,oBAAoB,CAAQ,WAAW,EAAEI,eAAe,CAACU,UAAU,EAAE9E,aAAa,CAAC;MAClGD,OAAO,CAACc,IAAI,CAACkC,MAAM,CAAC;;IAGxB,IAAIoB,OAAO,CAACa,aAAa,IAAIvE,KAAK,CAACwE,SAAS,IAAIb,eAAe,CAACc,OAAO,EAAE;MACrE,MAAMnC,MAAM,GAAGiB,oBAAoB,CAAQ,QAAQ,EAAEI,eAAe,CAACc,OAAO,EAAElF,aAAa,CAAC;MAC5FD,OAAO,CAAC0E,OAAO,CAAC1B,MAAM,CAAC;;;EAI/B,OAAO;IAAEhD,OAAO;IAAEC,aAAa;IAAEC,cAAc;IAAEC;GAAmB;AACxE;SAEgBiF,0BAA0BA,CAAkBhB,OAA0B,EAAE1D,KAAwB;;EAC5G,MAAMiE,kBAAkB,GAAGP,OAAO,CAACO,kBAAkB,IAAIP,OAAO,CAACQ,wBAAwB;EACzF,MAAMS,YAAY,GAAsC;IACpDC,aAAa,EAAE;MACXzD,kBAAkB,EAAEuC,OAAO,CAACxC,eAAe,IAAI,IAAI;MACnDT,cAAc,EAAE,KAAK;MACrBW,YAAY,EAAEsC,OAAO,CAACmB,kBAAkB,IAAI,IAAI;MAChDtD,cAAc,EAAEmC,OAAO,CAACoB,oBAAoB,IAAI,IAAI;MACpDrD,kBAAkB,EAAEiC,OAAO,CAAClC,YAAY,IAAI,IAAI;MAChDE,aAAa,EAAEgC,OAAO,CAAChC,aAAa,IAAI,IAAI;MAC5CG,OAAO,EAAE,CAAC;;MAEV2B,IAAI,EAAE;KACT;IACDuB,mBAAmB,GAAAC,qBAAA,GAAEtB,OAAO,CAACxC,eAAe,cAAA8D,qBAAA,cAAAA,qBAAA,GAAI,KAAK;IACrDF,oBAAoB,GAAAG,qBAAA,GAAEvB,OAAO,CAACoB,oBAAoB,cAAAG,qBAAA,cAAAA,qBAAA,GAAI,KAAK;IAC3DC,eAAe,GAAAC,qBAAA,GAAEzB,OAAO,CAACG,kBAAkB,cAAAsB,qBAAA,cAAAA,qBAAA,GAAI,KAAK;IACpD1E,cAAc,EAAE,IAAI;IACpBW,YAAY,GAAAgE,sBAAA,GAAE1B,OAAO,CAACmB,kBAAkB,cAAAO,sBAAA,cAAAA,sBAAA,GAAI,KAAK;IACjDC,aAAa,GAAAC,sBAAA,GAAE5B,OAAO,CAAC6B,oBAAoB,cAAAD,sBAAA,cAAAA,sBAAA,GAAI,KAAK;IACpDrB,kBAAkB,EAAEA,kBAAkB,aAAlBA,kBAAkB,cAAlBA,kBAAkB,GAAI,KAAK;IAC/CuB,uBAAuB,EAAE9B,OAAO,CAACQ,wBAAwB,KAAK,IAAI,GAAG,KAAK,GAAGD,kBAAkB;IAC/FvC,aAAa,GAAA+D,qBAAA,GAAE/B,OAAO,CAAChC,aAAa,cAAA+D,qBAAA,cAAAA,qBAAA,GAAI,KAAK;;IAE7CC,mBAAmB,EAAEA,mBAAmB,EAAS;IACjDC,kBAAkB,EAAEA,kBAAkB,EAAS;IAC/CC,iBAAiB,EAAE;GACtB;EAED,IAAIjB,YAAY,CAACG,oBAAoB,EAAE;IACnCH,YAAY,CAACkB,gBAAgB,GAAG,UAAU;;EAG9C,IAAIlB,YAAY,CAACI,mBAAmB,EAAE;;IAElC,IAAI/E,KAAK,CAAC8F,cAAc,EAAE,CAOzB,MAAM;MACHnB,YAAY,CAACoB,mBAAmB,GAAGA,mBAAmB,EAAS;MAC/DpB,YAAY,CAACqB,SAAS,GAAG;QACrBC,UAAU,EAAEA,CAACvD,GAAyB,EAAEwD,QAAgB,EAAEC,MAAW,KACjEC,cAAc,CAAC1D,GAAG,CAACD,QAAQ,CAACyD,QAAQ,CAAC,EAAEC,MAAM;OACpD;;;EAIT,IAAIzC,OAAO,CAAClC,YAAY,EAAE;;IAEtBmD,YAAY,CAACoB,mBAAmB,GAAGA,mBAAmB,EAAS;IAC/DpB,YAAY,CAAC0B,cAAc,GAAGA,cAAc;IAC5C1B,YAAY,CAAC2B,wBAAwB,GAAIhE,MAA+B;MAAA,IAAAiE,qBAAA,EAAAC,sBAAA;MAAA,QAAAD,qBAAA,IAAAC,sBAAA,GAAKlE,MAAM,CAACmE,SAAS,CAACvE,IAAI,cAAAsE,sBAAA,uBAArBA,sBAAA,CAAuBhF,YAAY,cAAA+E,qBAAA,cAAAA,qBAAA,GAAI,IAAI;;;EAgB5H,IAAI5B,YAAY,CAACjD,aAAa,EAAE;;IAE5B,IAAI1B,KAAK,CAAC0G,YAAY,EAAE;MACpB/B,YAAY,CAACgC,aAAa,GAAG,IAAI;;;;KAKpC,MAAM;MACHhC,YAAY,CAACiC,iBAAiB,GAAGA,iBAAiB,EAAE;;;EAI5D,OAAOjC,YAAY;AACvB;SAEgBkC,yBAAyBA,CACrC7G,KAAwB,EACxBV,OAAqC,EACrCwH,iBAAgC,EAChCC,QAIC;EAED,OAAOjH,cAAK,CAACkH,OAAO,CAAC;;IACjB,MAAMC,uBAAuB,GAAG3E,MAAM,IAAIhD,OAAO,CAAC4H,IAAI,CAACC,aAAa,IAAIA,aAAa,CAACjH,EAAE,KAAKoC,MAAM,CAACpC,EAAE,CAAC;IAEvG,MAAMkH,WAAW,GAAGC,cAAc,CAAQ/H,OAAO,GAAAgI,qBAAA,GAAER,iBAAiB,CAACM,WAAW,cAAAE,qBAAA,cAAAA,qBAAA,IAAAC,qBAAA,GAAIvH,KAAK,CAACwH,eAAe,cAAAD,qBAAA,uBAArBA,qBAAA,CAAuBH,WAAW,CAAC;IAEvH,MAAMK,aAAa,IAAAC,IAAA,IAAAC,sBAAA,GACfb,iBAAiB,CAACW,aAAa,cAAAE,sBAAA,cAAAA,sBAAA,IAAAC,sBAAA,GAAI5H,KAAK,CAACwH,eAAe,cAAAI,sBAAA,uBAArBA,sBAAA,CAAuBH,aAAa,cAAAC,IAAA,cAAAA,IAAA,GAAI,EAAE;;IAGjF,IAAI,EAACD,aAAa,aAAbA,aAAa,gBAAAI,mBAAA,GAAbJ,aAAa,CAAEK,IAAI,cAAAD,mBAAA,eAAnBA,mBAAA,CAAqBvD,MAAM,GAAE;MAC9B,IAAItE,KAAK,CAAC+H,0BAA0B,EAAE;QAClCN,aAAa,CAACK,IAAI,GAAGE,wBAAwB,CAAChI,KAAK,CAAC+H,0BAA0B,EAAEX,WAAW,CAAC;OAC/F,MAAM;QACHK,aAAa,CAACK,IAAI,GAAGG,0BAA0B,CAACb,WAAW,CAAC;;;IAIpE,MAAMc,KAAK,GAA6B;MACpCC,aAAa,GAAAC,KAAA,IAAAC,sBAAA,GAAEvB,iBAAiB,CAACqB,aAAa,cAAAE,sBAAA,cAAAA,sBAAA,IAAAC,sBAAA,GAAItI,KAAK,CAACwH,eAAe,cAAAc,sBAAA,uBAArBA,sBAAA,CAAuBH,aAAa,cAAAC,KAAA,cAAAA,KAAA,GAAI,EAAE;MAC5FhB,WAAW;MACXK,aAAa;MACbc,YAAY,GAAAC,KAAA,IAAAC,KAAA,IAAAC,sBAAA,GAAE5B,iBAAiB,CAACyB,YAAY,cAAAG,sBAAA,cAAAA,sBAAA,IAAAC,sBAAA,GAAI3I,KAAK,CAACwH,eAAe,cAAAmB,sBAAA,uBAArBA,sBAAA,CAAuBJ,YAAY,cAAAE,KAAA,cAAAA,KAAA,GAAI1B,QAAQ,CAACxH,aAAa,cAAAiJ,KAAA,cAAAA,KAAA,GAAI,EAAE;MACnHI,gBAAgB,GAAAC,KAAA,IAAAC,KAAA,IAAAC,sBAAA,GACZjC,iBAAiB,CAAC8B,gBAAgB,cAAAG,sBAAA,cAAAA,sBAAA,IAAAC,sBAAA,GAAIhJ,KAAK,CAACwH,eAAe,cAAAwB,sBAAA,uBAArBA,sBAAA,CAAuBJ,gBAAgB,cAAAE,KAAA,cAAAA,KAAA,GAAI/B,QAAQ,CAACtH,iBAAiB,cAAAoJ,KAAA,cAAAA,KAAA,GAAI,EAAE;MACrHI,YAAY,GAAAC,qBAAA,GAAEpC,iBAAiB,CAACqC,WAAW,cAAAD,qBAAA,cAAAA,qBAAA,IAAAE,sBAAA,GAAIpJ,KAAK,CAACwH,eAAe,cAAA4B,sBAAA,uBAArBA,sBAAA,CAAuBD,WAAW;MACjFE,OAAO,EAAEvC,iBAAiB,CAACuC,OAAO,GAC5BvC,iBAAiB,CAACuC,OAAO,CAAClD,MAAM,CAACc,uBAAuB,CAAC,IAAAqC,sBAAA,IAAAC,sBAAA,GACzDvJ,KAAK,CAACwH,eAAe,cAAA+B,sBAAA,uBAArBA,sBAAA,CAAuBF,OAAO,cAAAC,sBAAA,cAAAA,sBAAA,GAAIvC,QAAQ,CAACvH;KACpD;IAED,KAAAgK,KAAA,IAAAC,qBAAA,IAAAC,sBAAA,GAAI5C,iBAAiB,CAAC6C,QAAQ,cAAAD,sBAAA,uBAA1BA,sBAAA,CAA4BpF,MAAM,cAAAmF,qBAAA,cAAAA,qBAAA,IAAAG,sBAAA,GAAI5J,KAAK,CAACwH,eAAe,cAAAoC,sBAAA,wBAAAC,uBAAA,GAArBD,sBAAA,CAAuBD,QAAQ,cAAAE,uBAAA,uBAA/BA,uBAAA,CAAiCvF,MAAM,cAAAkF,KAAA,cAAAA,KAAA,GAAIxJ,KAAK,CAACL,uBAAuB,EAAE;MAChHuI,KAAK,CAACyB,QAAQ,GAAG,CAAC3J,KAAK,CAACL,uBAAiC,CAAC;;MAE1DuI,KAAK,CAAC4B,QAAQ,GAAG,IAAI;;IAGzB,OAAO5B,KAAK;GACf,EAAE,EAAE,CAAC;AACV;;;;"}
package/dist/index.css CHANGED
@@ -635,6 +635,10 @@ table[data-taco^='table'] tr[data-row-dragged-over='true'] td {
635
635
  @apply !bg-grey-100;
636
636
  }
637
637
 
638
+ table[data-taco^='table'] tr:hover > td[data-cell-id='__actions'] {
639
+ @apply sticky;
640
+ }
641
+
638
642
  table[data-taco^='table'] th {
639
643
  /* layout */
640
644
  @apply relative flex h-10 items-center justify-start px-[var(--table-cell-padding-x)];
@@ -1,3 +1,3 @@
1
1
  /// <reference types="react" />
2
2
  import { TableCellRendererProps } from '../../../../types';
3
- export declare const DisplayCell: <TType = unknown>(props: TableCellRendererProps<TType>) => JSX.Element;
3
+ export declare function DisplayCell<TType = unknown>(props: TableCellRendererProps<TType>): JSX.Element;
@@ -1,5 +1,5 @@
1
1
  import { TableMeta as ReactTableMeta, RowData } from '@tanstack/react-table';
2
- import { TableColumnAlignment, TableColumnClassNameHandler, TableColumnDataType, TableColumnMenu, TableColumnRendererControl, TableFilterComparator, TableProps } from '../types';
2
+ import { TableColumnAlignment, TableColumnClassNameHandler, TableColumnDataType, TableColumnMenu, TableColumnRenderer, TableColumnRendererControl, TableFilterComparator, TableProps } from '../types';
3
3
  import { useTableColumnFreezing } from './features/useTableColumnFreezing';
4
4
  import { useTableColumnOrdering } from './features/useTableColumnOrdering';
5
5
  import { useTableFooter } from './features/useTableFooter';
@@ -54,6 +54,7 @@ declare module '@tanstack/table-core' {
54
54
  header: string;
55
55
  headerClassName?: string;
56
56
  menu?: TableColumnMenu;
57
+ renderer?: TableColumnRenderer<TValue, TData>;
57
58
  tooltip?: string;
58
59
  }
59
60
  }
@@ -9594,7 +9594,8 @@ function processChildren(child, columns, defaultSizing, defaultSorting, defaultV
9594
9594
  enableOrdering: isGrouped ? false : enableOrdering,
9595
9595
  enablePrinting,
9596
9596
  enableTruncate,
9597
- header
9597
+ header,
9598
+ renderer
9598
9599
  }
9599
9600
  };
9600
9601
  // renderers
@@ -11490,7 +11491,7 @@ const renderer = {
11490
11491
  renderer: Cell,
11491
11492
  meta: {
11492
11493
  align: 'right',
11493
- className: /*#__PURE__*/cn('print:opacity-0 !px-0 !pr-1 overflow-hidden [table_&]:group-[[data-row-active="true"]]/row:sticky [table[data-table-pause-hover="false"]_&]:group-hover/row:sticky right-0', 'group-[[data-row-active="true"][data-selected="false"]]/row:text-grey-200', 'group-[[data-row-selected="true"]]/row:text-blue-100', 'group-[[data-row-selected="false"]:hover]/row:text-grey-100'),
11494
+ className: /*#__PURE__*/cn('print:opacity-0 !px-0 !pr-1 overflow-hidden [table_&]:group-[[data-row-active="true"]]/row:sticky right-0', 'group-[[data-row-active="true"][data-selected="false"]]/row:text-grey-200', 'group-[[data-row-selected="true"]]/row:text-blue-100', 'group-[[data-row-selected="false"]:hover]/row:text-grey-100'),
11494
11495
  // TODO: remove when table3 is migrated, this satisfies the legacy table3 type
11495
11496
  enableSearch: false,
11496
11497
  header: ''
@@ -11892,6 +11893,7 @@ function useSearchHighlighting(cell, cellIndex, ref) {
11892
11893
  }
11893
11894
 
11894
11895
  function GroupedCell(props) {
11896
+ var _ref, _columnMeta$renderer, _columnMeta$renderer2;
11895
11897
  const {
11896
11898
  cell,
11897
11899
  cellRef,
@@ -11899,6 +11901,7 @@ function GroupedCell(props) {
11899
11901
  isHighlighted
11900
11902
  } = props;
11901
11903
  const tableMeta = cell.getContext().table.options.meta;
11904
+ const columnMeta = cell.column.columnDef.meta;
11902
11905
  const attributes = getCellAttributes(cell, index, isHighlighted);
11903
11906
  const {
11904
11907
  isHovered,
@@ -11906,25 +11909,31 @@ function GroupedCell(props) {
11906
11909
  } = React__default.useContext(RowContext);
11907
11910
  const isActiveRow = tableMeta.rowActive.rowActiveIndex === rowIndex;
11908
11911
  const canShowActions = isActiveRow || isHovered && !tableMeta.rowActive.isHoverStatePaused;
11912
+ const colSpan = cell.row.getVisibleCells().filter(c => !isInternalColumn(c.column.id)).length - 1;
11913
+ const content = (_ref = (_columnMeta$renderer = (_columnMeta$renderer2 = columnMeta.renderer) === null || _columnMeta$renderer2 === void 0 ? void 0 : _columnMeta$renderer2.call(columnMeta, cell.getValue(), cell.row.original)) !== null && _columnMeta$renderer !== void 0 ? _columnMeta$renderer : cell.getValue()) !== null && _ref !== void 0 ? _ref : null;
11914
+ const subRows = cell.getContext().row.subRows.map(row => row.original);
11909
11915
  return /*#__PURE__*/React__default.createElement(MemoedGroupedCell, Object.assign({}, attributes, {
11910
- cell: cell,
11911
- cellRef: cellRef,
11912
11916
  canShowActions: canShowActions,
11917
+ cellRef: cellRef,
11918
+ colSpan: colSpan,
11913
11919
  fontSize: tableMeta.fontSize.size,
11914
- rowActions: tableMeta.rowGroups.rowActionsForGroup
11915
- }));
11920
+ rowActions: tableMeta.rowGroups.rowActionsForGroup,
11921
+ rowId: cell.row.id,
11922
+ subRows: subRows
11923
+ }), content);
11916
11924
  }
11917
11925
  const MemoedGroupedCell = /*#__PURE__*/React__default.memo(function MemoedGroupedCell(props) {
11918
11926
  const {
11919
11927
  canShowActions,
11920
- cell,
11921
11928
  cellRef,
11929
+ children,
11930
+ colSpan,
11922
11931
  fontSize,
11923
11932
  rowActions,
11933
+ rowId,
11934
+ subRows,
11924
11935
  ...attributes
11925
11936
  } = props;
11926
- const colSpan = cell.row.getVisibleCells().filter(c => !isInternalColumn(c.column.id)).length - 1;
11927
- const subRows = cell.getContext().row.subRows.map(row => row.original);
11928
11937
  return /*#__PURE__*/React__default.createElement("td", Object.assign({}, attributes, {
11929
11938
  ref: cellRef,
11930
11939
  style: {
@@ -11932,13 +11941,13 @@ const MemoedGroupedCell = /*#__PURE__*/React__default.memo(function MemoedGroupe
11932
11941
  }
11933
11942
  }), /*#__PURE__*/React__default.createElement("span", {
11934
11943
  className: "grow"
11935
- }, reactTable.flexRender(cell.column.columnDef.cell, cell.getContext())), rowActions !== null && rowActions !== void 0 && rowActions.length && canShowActions ? ( /*#__PURE__*/React__default.createElement(Actions$1, {
11944
+ }, children), rowActions !== null && rowActions !== void 0 && rowActions.length && canShowActions ? ( /*#__PURE__*/React__default.createElement(Actions$1, {
11936
11945
  actions: rowActions,
11937
11946
  actionsLength: 4,
11938
11947
  data: subRows,
11939
11948
  fontSize: fontSize,
11940
11949
  isActiveRow: true,
11941
- rowId: cell.row.id
11950
+ rowId: rowId
11942
11951
  })) : null);
11943
11952
  });
11944
11953
 
@@ -12080,7 +12089,7 @@ function useSetVirtualisedRowHeight(measureRow, rowEl, expansionEl, isExpanded)
12080
12089
  }, [isExpanded, rowEl, expansionEl]);
12081
12090
  }
12082
12091
 
12083
- const DisplayCell = /*#__PURE__*/React__default.memo(function DisplayCell(props) {
12092
+ function DisplayCell(props) {
12084
12093
  const {
12085
12094
  cell,
12086
12095
  cellRef,
@@ -12088,15 +12097,37 @@ const DisplayCell = /*#__PURE__*/React__default.memo(function DisplayCell(props)
12088
12097
  isHighlighted,
12089
12098
  ...cellAttributes
12090
12099
  } = props;
12100
+ const {
12101
+ isHovered
12102
+ } = React__default.useContext(RowContext);
12091
12103
  const columnMeta = cell.column.columnDef.meta;
12092
12104
  const attributes = getCellAttributes(cell, index, isHighlighted);
12093
12105
  const isTruncated = !!columnMeta.enableTruncate;
12094
- const content = reactTable.flexRender(cell.column.columnDef.cell, cell.getContext());
12095
- return /*#__PURE__*/React__default.createElement("td", Object.assign({}, cellAttributes, attributes, {
12106
+ let content;
12107
+ if (isInternalColumn(cell.column.id)) {
12108
+ content = reactTable.flexRender(cell.column.columnDef.cell, cell.getContext());
12109
+ } else {
12110
+ var _ref, _columnMeta$renderer, _columnMeta$renderer2;
12111
+ content = (_ref = (_columnMeta$renderer = (_columnMeta$renderer2 = columnMeta.renderer) === null || _columnMeta$renderer2 === void 0 ? void 0 : _columnMeta$renderer2.call(columnMeta, cell.getValue(), cell.row.original)) !== null && _columnMeta$renderer !== void 0 ? _columnMeta$renderer : cell.getValue()) !== null && _ref !== void 0 ? _ref : null;
12112
+ }
12113
+ return /*#__PURE__*/React__default.createElement(MemoedDisplayCell, Object.assign({}, cellAttributes, attributes, {
12114
+ cellRef: cellRef,
12115
+ isTruncated: isTruncated,
12116
+ key: `${cell.id}_${isHovered}`
12117
+ }), content);
12118
+ }
12119
+ const MemoedDisplayCell = /*#__PURE__*/React__default.memo(function MemoedDisplayCell(props) {
12120
+ const {
12121
+ cellRef,
12122
+ children,
12123
+ isTruncated,
12124
+ ...cellAttributes
12125
+ } = props;
12126
+ return /*#__PURE__*/React__default.createElement("td", Object.assign({}, cellAttributes, {
12096
12127
  ref: cellRef
12097
12128
  }), isTruncated ? /*#__PURE__*/React__default.createElement("span", {
12098
12129
  className: "truncate print:overflow-visible print:whitespace-normal"
12099
- }, content) : content);
12130
+ }, children) : children);
12100
12131
  });
12101
12132
 
12102
12133
  const RENDERERS = {
@@ -15787,7 +15818,7 @@ function Column$1(_) {
15787
15818
  function Group$3(_) {
15788
15819
  return null;
15789
15820
  }
15790
- const Report$1 = /*#__PURE__*/fixedForwardRef(function Report(props, ref) {
15821
+ const BaseReport = /*#__PURE__*/fixedForwardRef(function BaseReport(props, ref) {
15791
15822
  const report = useReport(props, ref);
15792
15823
  return /*#__PURE__*/React__default.createElement(Table, null, /*#__PURE__*/React__default.createElement(Table.Toolbar, {
15793
15824
  table: report
@@ -15796,6 +15827,16 @@ const Report$1 = /*#__PURE__*/fixedForwardRef(function Report(props, ref) {
15796
15827
  table: report
15797
15828
  }));
15798
15829
  });
15830
+ const Report$1 = /*#__PURE__*/fixedForwardRef(function Report(props, ref) {
15831
+ const stringifiedChildren = String(props.children);
15832
+ // we force a remount (using key) when the child columns change because there are too many places to add children as an effect
15833
+ // this is cheaper from a complexity perspective, and probably performance wise as well
15834
+ const key = React__default.useMemo(() => String('tableKey_' + stringifiedChildren), [stringifiedChildren]);
15835
+ return /*#__PURE__*/React__default.createElement(BaseReport, Object.assign({}, props, {
15836
+ key: key,
15837
+ ref: ref
15838
+ }));
15839
+ });
15799
15840
  Report$1.Column = Column$1;
15800
15841
  Report$1.Group = Group$3;
15801
15842
 
@@ -18509,7 +18550,7 @@ function Group$4(_) {
18509
18550
  return null;
18510
18551
  }
18511
18552
  Group$4.displayName = 'Table3Group';
18512
- const Table3 = /*#__PURE__*/fixedForwardRef(function Table3(props, ref) {
18553
+ const BaseTable3 = /*#__PURE__*/fixedForwardRef(function BaseTable3(props, ref) {
18513
18554
  var _table3$meta$editing, _table3$meta$editing2;
18514
18555
  const table3 = useTable3(props, ref);
18515
18556
  const handleBlur = event => {
@@ -18538,6 +18579,16 @@ const Table3 = /*#__PURE__*/fixedForwardRef(function Table3(props, ref) {
18538
18579
  table: table3
18539
18580
  })));
18540
18581
  });
18582
+ const Table3 = /*#__PURE__*/fixedForwardRef(function Table3(props, ref) {
18583
+ const stringifiedChildren = String(props.children);
18584
+ // we force a remount (using key) when the child columns change because there are too many places to add children as an effect
18585
+ // this is cheaper from a complexity perspective, and probably performance wise as well
18586
+ const key = React__default.useMemo(() => String('tableKey_' + stringifiedChildren), [stringifiedChildren]);
18587
+ return /*#__PURE__*/React__default.createElement(BaseTable3, Object.assign({}, props, {
18588
+ key: key,
18589
+ ref: ref
18590
+ }));
18591
+ });
18541
18592
  Table3.Column = Column$3;
18542
18593
  Table3.Group = Group$4;
18543
18594