@economic/taco 1.21.5 → 1.21.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/dist/components/Table2/components/column/Indicator.d.ts +2 -1
  2. package/dist/components/Table2/components/row/Context.d.ts +17 -11
  3. package/dist/components/Table2/components/row/Row.d.ts +1 -6
  4. package/dist/components/Table2/hooks/useShouldPauseHoverState.d.ts +2 -0
  5. package/dist/components/Table2/hooks/useTable.d.ts +3 -2
  6. package/dist/esm/packages/taco/src/components/Table2/Table2.js +8 -4
  7. package/dist/esm/packages/taco/src/components/Table2/Table2.js.map +1 -1
  8. package/dist/esm/packages/taco/src/components/Table2/components/column/Cell.js +22 -16
  9. package/dist/esm/packages/taco/src/components/Table2/components/column/Cell.js.map +1 -1
  10. package/dist/esm/packages/taco/src/components/Table2/components/column/Indicator.js +2 -5
  11. package/dist/esm/packages/taco/src/components/Table2/components/column/Indicator.js.map +1 -1
  12. package/dist/esm/packages/taco/src/components/Table2/components/row/Context.js +44 -15
  13. package/dist/esm/packages/taco/src/components/Table2/components/row/Context.js.map +1 -1
  14. package/dist/esm/packages/taco/src/components/Table2/components/row/Row.js +23 -44
  15. package/dist/esm/packages/taco/src/components/Table2/components/row/Row.js.map +1 -1
  16. package/dist/esm/packages/taco/src/components/Table2/hooks/useShouldPauseHoverState.js +19 -0
  17. package/dist/esm/packages/taco/src/components/Table2/hooks/useShouldPauseHoverState.js.map +1 -0
  18. package/dist/esm/packages/taco/src/components/Table2/hooks/useTable.js +5 -3
  19. package/dist/esm/packages/taco/src/components/Table2/hooks/useTable.js.map +1 -1
  20. package/dist/esm/packages/taco/src/components/Table2/hooks/useVirtualiser.js +1 -2
  21. package/dist/esm/packages/taco/src/components/Table2/hooks/useVirtualiser.js.map +1 -1
  22. package/dist/esm/packages/taco/src/components/Table2/utilities/columns.js +88 -52
  23. package/dist/esm/packages/taco/src/components/Table2/utilities/columns.js.map +1 -1
  24. package/dist/taco.cjs.development.js +212 -146
  25. package/dist/taco.cjs.development.js.map +1 -1
  26. package/dist/taco.cjs.production.min.js +1 -1
  27. package/dist/taco.cjs.production.min.js.map +1 -1
  28. package/package.json +2 -2
  29. package/types.json +7 -2
@@ -1 +1 @@
1
- {"version":3,"file":"useTable.js","sources":["../../../../../../../../src/components/Table2/hooks/useTable.ts"],"sourcesContent":["import React from 'react';\nimport {\n useReactTable,\n getCoreRowModel,\n OnChangeFn,\n getSortedRowModel,\n getFilteredRowModel,\n RowData,\n TableState,\n ColumnPinningState,\n VisibilityState,\n ColumnSizingState,\n TableOptions,\n} from '@tanstack/react-table';\nimport { RowClickHandler, RowDensity, Table2ColumnProps, Table2Props } from '../types';\nimport { useColumnDefinitions } from './useColumnDefinitions';\nimport { getOffsetsFromSize, useColumnOffsetStateListener } from './listeners/useColumnOffsetStateListener';\nimport { ColumnOffsetState } from '../types';\nimport { useRowSelectionListener } from './listeners/useRowSelectionListener';\nimport { useSettingsStateListener } from './listeners/useSettingsStateListener';\nimport { columnFilterFn, globalFilterFn } from '../utilities/filterFn';\nimport { ActiveRowHandler, ActiveRowMoveHandler, useActiveRow } from './useActiveRow';\nimport { useActiveRowStateListener } from './listeners/useActiveRowStateListener';\nimport { useEditMode } from './useEditMode';\n\ndeclare module '@tanstack/table-core' {\n interface TableMeta<TData extends RowData> {\n // active row\n activeRowIndex: number;\n setActiveRowIndex: ActiveRowHandler;\n moveToPreviousRow: ActiveRowMoveHandler<TData>;\n moveToNextRow: ActiveRowMoveHandler<TData>;\n // offsets\n columnOffsets: ColumnOffsetState;\n // density\n enableRowDensity: boolean;\n rowDensity: RowDensity;\n setRowDensity: OnChangeFn<RowDensity>;\n // dragging\n dragging: Record<string, boolean>;\n setDragging: OnChangeFn<Record<string, boolean>>;\n // computed\n enableColumnReordering: boolean;\n shouldPauseSortingAndFiltering: boolean;\n setShouldPauseSortingAndFiltering: OnChangeFn<boolean>;\n // other\n onRowClick?: RowClickHandler<TData>;\n hoveredRowIndex: number | undefined;\n setHoveredRowIndex: OnChangeFn<number | undefined>;\n // editing\n editMode: useEditMode;\n // used to determine first and last data column position\n dataColumnStartOffset: number;\n dataColumnEndOffset: number;\n // disable table actions\n shouldDisableTableActions: boolean;\n setShouldDisableTableActions: OnChangeFn<boolean>;\n // active row column indexes\n focussableColumnIndexes: number[];\n addFocussableColumnIndex: (index: number) => void;\n resetFocussableColumnIndexes: () => void;\n // table ref\n tableRef: React.RefObject<HTMLDivElement>;\n // last sorted or filtered rows\n lastSortedOrFilteredRows: React.MutableRefObject<Array<any>>;\n }\n}\n\nexport function useTable<TType = any>(\n children: React.ReactElement<Table2ColumnProps<TType>>[],\n props: Table2Props<TType>,\n ref: React.RefObject<HTMLDivElement>\n) {\n const {\n actionsForRow = [],\n data,\n defaultActiveRowIndex,\n disableColumnFiltering = false,\n disableColumnHiding = false,\n disableColumnPinning = false,\n disableColumnReordering = false,\n disableColumnResizing = false,\n disableRowDensity = false,\n disableRowExpansion = false,\n disableRowSelection = false,\n disableMultipleRowSelection = false,\n disableSearch = false,\n disableSorting = false,\n expandedRowRenderer,\n manualColumnFiltering = false,\n manualSearch = false,\n manualSorting = false,\n onChangeSettings,\n onRowClick,\n onRowDrag,\n onRowSelect,\n onSave,\n settings = {},\n // experimental\n _experimentalActionsForTable,\n } = props;\n const enableRowExpansion = !disableRowExpansion && !!expandedRowRenderer;\n const enableRowSelection = !disableRowSelection && (!!onRowSelect || !!_experimentalActionsForTable?.length);\n const enableMultipleRowSelection = !disableMultipleRowSelection && enableRowSelection;\n\n const { columns, defaultColumnPinning, defaultColumnSizing, defaultSorting, defaultColumnVisibility, footers } =\n useColumnDefinitions<TType>(\n children,\n {\n actionsForRow,\n enableColumnFiltering: !disableColumnFiltering,\n enableColumnHiding: !disableColumnHiding,\n enableColumnPinning: !disableColumnPinning,\n enableRowExpansion,\n enableRowSelection,\n enableMultipleRowSelection,\n onRowDrag,\n },\n ref\n );\n\n const lastSortedOrFilteredRows = React.useRef<any>(null);\n\n // defaults\n const initialState: Partial<TableState> = {\n columnOrder: settings?.columnOrder ?? columns.map(column => column.id as string),\n columnPinning: {\n left: settings?.columnPinning?.left ?? defaultColumnPinning ?? [],\n right: [],\n },\n columnSizing: settings?.columnSizing ?? defaultColumnSizing,\n columnVisibility: settings?.columnVisibility ?? defaultColumnVisibility,\n };\n\n // Data column index - these are needed to make sure left and right arrow key shortcuts focuses only the data columns\n const dataColumnStartOffset = [!!onRowDrag, !!enableRowExpansion, !!enableRowSelection].reduce((t, e) => t + (e ? 1 : 0), 0);\n const dataColumnEndOffset = actionsForRow.length ? 1 : 0;\n\n // custom\n const activeRow = useActiveRow<TType>(defaultActiveRowIndex);\n const [hoveredRowIndex, setHoveredRowIndex] = React.useState<number | undefined>(undefined);\n const editMode = useEditMode(onSave);\n const [columnOffsets, setColumnOffsets] = React.useState(\n getOffsetsFromSize(\n initialState.columnPinning as ColumnPinningState,\n initialState.columnVisibility as VisibilityState,\n initialState.columnSizing as ColumnSizingState\n )\n );\n const [rowDensity, setRowDensity] = React.useState<RowDensity>(settings?.rowDensity ?? 'normal');\n const [dragging, setDragging] = React.useState<Record<string, boolean>>({});\n const [shouldPauseSortingAndFiltering, setShouldPauseSortingAndFiltering] = React.useState<boolean>(false);\n const [shouldDisableTableActions, setShouldDisableTableActions] = React.useState<boolean>(false);\n // For some reason, using state instead of ref didn't work as expected, that's why ref is used\n const focussableColumnIndexes = React.useRef<number[]>([]);\n\n // some options get set even if they are undefined, so we have to do it conditionally\n const options: Partial<TableOptions<any>> = {\n enableExpanding: enableRowExpansion,\n enableColumnFilters: !disableColumnFiltering,\n enableColumnResizing: !disableColumnResizing,\n enableGlobalFilter: !disableSearch,\n enableHiding: !disableColumnHiding,\n enablePinning: !disableColumnPinning,\n enableRowSelection: enableRowSelection,\n enableMultiRowSelection: enableMultipleRowSelection,\n enableSorting: !disableSorting,\n };\n\n // resizing\n if (options.enableColumnResizing) {\n options.columnResizeMode = 'onChange';\n }\n\n // sorting\n if (options.enableSorting) {\n initialState.sorting = settings?.sorting ?? defaultSorting;\n\n if (manualSorting) {\n options.manualSorting = true;\n } else {\n options.getSortedRowModel = getSortedRowModel();\n }\n }\n\n // filtering\n if (options.enableColumnFilters) {\n initialState.columnFilters = settings?.columnFilters ?? [];\n\n if (manualColumnFiltering) {\n options.manualFiltering = true;\n } else {\n options.filterFns = {\n tacoFilter: (row, columnId, filter) => columnFilterFn(row.getValue(columnId), filter),\n };\n options.getFilteredRowModel = getFilteredRowModel();\n }\n }\n\n // search\n if (options.enableGlobalFilter) {\n if (manualSearch) {\n options.manualFiltering = true;\n } else {\n options.globalFilterFn = (row, columnId, query) => globalFilterFn(row.getValue(columnId), query);\n options.getFilteredRowModel = getFilteredRowModel();\n }\n }\n\n const table = useReactTable({\n data,\n columns: columns as any,\n getCoreRowModel: getCoreRowModel(),\n initialState,\n ...options,\n meta: {\n ...activeRow,\n editMode,\n // offsets\n columnOffsets,\n // density\n enableRowDensity: !disableRowDensity,\n rowDensity,\n setRowDensity,\n // dragging\n dragging,\n setDragging,\n // computed\n enableColumnReordering: !disableColumnReordering,\n // resorting\n shouldPauseSortingAndFiltering,\n setShouldPauseSortingAndFiltering,\n // other\n onRowClick,\n hoveredRowIndex,\n setHoveredRowIndex,\n // data column positions\n dataColumnStartOffset,\n dataColumnEndOffset,\n // disable table actions\n shouldDisableTableActions,\n setShouldDisableTableActions,\n // active row column indexes\n focussableColumnIndexes: focussableColumnIndexes.current,\n addFocussableColumnIndex: (index: number) => {\n if (!focussableColumnIndexes.current.includes(index)) {\n focussableColumnIndexes.current = [...focussableColumnIndexes.current, index].sort((a, b) => a - b);\n }\n },\n resetFocussableColumnIndexes: () => {\n focussableColumnIndexes.current = [];\n },\n // table ref\n tableRef: ref,\n // last sorted or filtered rows\n lastSortedOrFilteredRows,\n },\n });\n\n const tableRows = table.getRowModel().rows;\n\n if (!shouldPauseSortingAndFiltering) {\n lastSortedOrFilteredRows.current = tableRows;\n }\n\n const rows = shouldPauseSortingAndFiltering ? lastSortedOrFilteredRows.current : tableRows;\n\n // state listeners\n useActiveRowStateListener<TType>(table, rows, activeRow);\n useColumnOffsetStateListener(table, setColumnOffsets);\n useRowSelectionListener<TType>(table, onRowSelect);\n useSettingsStateListener(table, onChangeSettings);\n\n return { rows, table, footers };\n}\n"],"names":["useTable","children","props","ref","actionsForRow","data","defaultActiveRowIndex","disableColumnFiltering","disableColumnHiding","disableColumnPinning","disableColumnReordering","disableColumnResizing","disableRowDensity","disableRowExpansion","disableRowSelection","disableMultipleRowSelection","disableSearch","disableSorting","expandedRowRenderer","manualColumnFiltering","manualSearch","manualSorting","onChangeSettings","onRowClick","onRowDrag","onRowSelect","onSave","settings","_experimentalActionsForTable","enableRowExpansion","enableRowSelection","length","enableMultipleRowSelection","columns","defaultColumnPinning","defaultColumnSizing","defaultSorting","defaultColumnVisibility","footers","useColumnDefinitions","enableColumnFiltering","enableColumnHiding","enableColumnPinning","lastSortedOrFilteredRows","React","useRef","initialState","columnOrder","map","column","id","columnPinning","left","right","columnSizing","columnVisibility","dataColumnStartOffset","reduce","t","e","dataColumnEndOffset","activeRow","useActiveRow","hoveredRowIndex","setHoveredRowIndex","useState","undefined","editMode","useEditMode","columnOffsets","setColumnOffsets","getOffsetsFromSize","rowDensity","setRowDensity","dragging","setDragging","shouldPauseSortingAndFiltering","setShouldPauseSortingAndFiltering","shouldDisableTableActions","setShouldDisableTableActions","focussableColumnIndexes","options","enableExpanding","enableColumnFilters","enableColumnResizing","enableGlobalFilter","enableHiding","enablePinning","enableMultiRowSelection","enableSorting","columnResizeMode","sorting","getSortedRowModel","columnFilters","manualFiltering","filterFns","tacoFilter","row","columnId","filter","columnFilterFn","getValue","getFilteredRowModel","globalFilterFn","query","table","useReactTable","getCoreRowModel","meta","enableRowDensity","enableColumnReordering","current","addFocussableColumnIndex","index","includes","sort","a","b","resetFocussableColumnIndexes","tableRef","tableRows","getRowModel","rows","useActiveRowStateListener","useColumnOffsetStateListener","useRowSelectionListener","useSettingsStateListener"],"mappings":"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"}
1
+ {"version":3,"file":"useTable.js","sources":["../../../../../../../../src/components/Table2/hooks/useTable.ts"],"sourcesContent":["import React from 'react';\nimport {\n useReactTable,\n getCoreRowModel,\n OnChangeFn,\n getSortedRowModel,\n getFilteredRowModel,\n RowData,\n TableState,\n ColumnPinningState,\n VisibilityState,\n ColumnSizingState,\n TableOptions,\n} from '@tanstack/react-table';\nimport { RowClickHandler, RowDensity, Table2ColumnProps, Table2Props } from '../types';\nimport { useColumnDefinitions } from './useColumnDefinitions';\nimport { getOffsetsFromSize, useColumnOffsetStateListener } from './listeners/useColumnOffsetStateListener';\nimport { ColumnOffsetState } from '../types';\nimport { useRowSelectionListener } from './listeners/useRowSelectionListener';\nimport { useSettingsStateListener } from './listeners/useSettingsStateListener';\nimport { columnFilterFn, globalFilterFn } from '../utilities/filterFn';\nimport { ActiveRowHandler, ActiveRowMoveHandler, useActiveRow } from './useActiveRow';\nimport { useActiveRowStateListener } from './listeners/useActiveRowStateListener';\nimport { useEditMode } from './useEditMode';\nimport { useShouldPauseHoverState } from './useShouldPauseHoverState';\n\ndeclare module '@tanstack/table-core' {\n interface TableMeta<TData extends RowData> {\n // active row\n activeRowIndex: number;\n setActiveRowIndex: ActiveRowHandler;\n moveToPreviousRow: ActiveRowMoveHandler<TData>;\n moveToNextRow: ActiveRowMoveHandler<TData>;\n // offsets\n columnOffsets: ColumnOffsetState;\n // density\n enableRowDensity: boolean;\n rowDensity: RowDensity;\n setRowDensity: OnChangeFn<RowDensity>;\n // dragging\n enableRowDragging: boolean;\n dragging: Record<string, boolean>;\n setDragging: OnChangeFn<Record<string, boolean>>;\n // computed\n enableColumnReordering: boolean;\n shouldPauseSortingAndFiltering: boolean;\n setShouldPauseSortingAndFiltering: OnChangeFn<boolean>;\n shouldPauseHoverState: boolean;\n setShouldPauseHoverState: OnChangeFn<boolean>;\n // other\n onRowClick?: RowClickHandler<TData>;\n // editing\n editMode: useEditMode;\n // used to determine first and last data column position\n dataColumnStartOffset: number;\n dataColumnEndOffset: number;\n // disable table actions\n shouldDisableTableActions: boolean;\n setShouldDisableTableActions: OnChangeFn<boolean>;\n // active row column indexes\n focussableColumnIndexes: number[];\n addFocussableColumnIndex: (index: number) => void;\n resetFocussableColumnIndexes: () => void;\n // table ref\n tableRef: React.RefObject<HTMLDivElement>;\n // last sorted or filtered rows\n lastSortedOrFilteredRows: React.MutableRefObject<Array<any>>;\n }\n}\n\nexport function useTable<TType = any>(\n children: React.ReactElement<Table2ColumnProps<TType>>[],\n props: Table2Props<TType>,\n ref: React.RefObject<HTMLDivElement>\n) {\n const {\n actionsForRow = [],\n data,\n defaultActiveRowIndex,\n disableColumnFiltering = false,\n disableColumnHiding = false,\n disableColumnPinning = false,\n disableColumnReordering = false,\n disableColumnResizing = false,\n disableRowDensity = false,\n disableRowExpansion = false,\n disableRowSelection = false,\n disableMultipleRowSelection = false,\n disableSearch = false,\n disableSorting = false,\n expandedRowRenderer,\n manualColumnFiltering = false,\n manualSearch = false,\n manualSorting = false,\n onChangeSettings,\n onRowClick,\n onRowDrag,\n onRowSelect,\n onSave,\n settings = {},\n // experimental\n _experimentalActionsForTable,\n } = props;\n const enableRowExpansion = !disableRowExpansion && !!expandedRowRenderer;\n const enableRowSelection = !disableRowSelection && (!!onRowSelect || !!_experimentalActionsForTable?.length);\n const enableMultipleRowSelection = !disableMultipleRowSelection && enableRowSelection;\n\n const { columns, defaultColumnPinning, defaultColumnSizing, defaultSorting, defaultColumnVisibility, footers } =\n useColumnDefinitions<TType>(\n children,\n {\n actionsForRow,\n enableColumnFiltering: !disableColumnFiltering,\n enableColumnHiding: !disableColumnHiding,\n enableColumnPinning: !disableColumnPinning,\n enableRowExpansion,\n enableRowSelection,\n enableMultipleRowSelection,\n onRowDrag,\n },\n ref\n );\n\n const lastSortedOrFilteredRows = React.useRef<any>(null);\n\n // defaults\n const initialState: Partial<TableState> = {\n columnOrder: settings?.columnOrder ?? columns.map(column => column.id as string),\n columnPinning: {\n left: settings?.columnPinning?.left ?? defaultColumnPinning ?? [],\n right: [],\n },\n columnSizing: settings?.columnSizing ?? defaultColumnSizing,\n columnVisibility: settings?.columnVisibility ?? defaultColumnVisibility,\n };\n\n // Data column index - these are needed to make sure left and right arrow key shortcuts focuses only the data columns\n const dataColumnStartOffset = [!!onRowDrag, !!enableRowExpansion, !!enableRowSelection].reduce((t, e) => t + (e ? 1 : 0), 0);\n const dataColumnEndOffset = actionsForRow.length ? 1 : 0;\n\n // custom\n const activeRow = useActiveRow<TType>(defaultActiveRowIndex);\n const [shouldPauseHoverState, setShouldPauseHoverState] = useShouldPauseHoverState();\n const editMode = useEditMode(onSave);\n const [columnOffsets, setColumnOffsets] = React.useState(\n getOffsetsFromSize(\n initialState.columnPinning as ColumnPinningState,\n initialState.columnVisibility as VisibilityState,\n initialState.columnSizing as ColumnSizingState\n )\n );\n const [rowDensity, setRowDensity] = React.useState<RowDensity>(settings?.rowDensity ?? 'normal');\n const [dragging, setDragging] = React.useState<Record<string, boolean>>({});\n const [shouldPauseSortingAndFiltering, setShouldPauseSortingAndFiltering] = React.useState<boolean>(false);\n const [shouldDisableTableActions, setShouldDisableTableActions] = React.useState<boolean>(false);\n // For some reason, using state instead of ref didn't work as expected, that's why ref is used\n const focussableColumnIndexes = React.useRef<number[]>([]);\n\n // some options get set even if they are undefined, so we have to do it conditionally\n const options: Partial<TableOptions<any>> = {\n enableExpanding: enableRowExpansion,\n enableColumnFilters: !disableColumnFiltering,\n enableColumnResizing: !disableColumnResizing,\n enableGlobalFilter: !disableSearch,\n enableHiding: !disableColumnHiding,\n enablePinning: !disableColumnPinning,\n enableRowSelection: enableRowSelection,\n enableMultiRowSelection: enableMultipleRowSelection,\n enableSorting: !disableSorting,\n };\n\n // resizing\n if (options.enableColumnResizing) {\n options.columnResizeMode = 'onChange';\n }\n\n // sorting\n if (options.enableSorting) {\n initialState.sorting = settings?.sorting ?? defaultSorting;\n\n if (manualSorting) {\n options.manualSorting = true;\n } else {\n options.getSortedRowModel = getSortedRowModel();\n }\n }\n\n // filtering\n if (options.enableColumnFilters) {\n initialState.columnFilters = settings?.columnFilters ?? [];\n\n if (manualColumnFiltering) {\n options.manualFiltering = true;\n } else {\n options.filterFns = {\n tacoFilter: (row, columnId, filter) => columnFilterFn(row.getValue(columnId), filter),\n };\n options.getFilteredRowModel = getFilteredRowModel();\n }\n }\n\n // search\n if (options.enableGlobalFilter) {\n if (manualSearch) {\n options.manualFiltering = true;\n } else {\n options.globalFilterFn = (row, columnId, query) => globalFilterFn(row.getValue(columnId), query);\n options.getFilteredRowModel = getFilteredRowModel();\n }\n }\n\n const table = useReactTable({\n data,\n columns: columns as any,\n getCoreRowModel: getCoreRowModel(),\n initialState,\n ...options,\n meta: {\n ...activeRow,\n editMode,\n // offsets\n columnOffsets,\n // density\n enableRowDensity: !disableRowDensity,\n rowDensity,\n setRowDensity,\n // dragging\n enableRowDragging: !!onRowDrag,\n dragging,\n setDragging,\n // computed\n enableColumnReordering: !disableColumnReordering,\n shouldPauseHoverState,\n setShouldPauseHoverState,\n // resorting\n shouldPauseSortingAndFiltering,\n setShouldPauseSortingAndFiltering,\n // other\n onRowClick,\n // data column positions\n dataColumnStartOffset,\n dataColumnEndOffset,\n // disable table actions\n shouldDisableTableActions,\n setShouldDisableTableActions,\n // active row column indexes\n focussableColumnIndexes: focussableColumnIndexes.current,\n addFocussableColumnIndex: (index: number) => {\n if (!focussableColumnIndexes.current.includes(index)) {\n focussableColumnIndexes.current = [...focussableColumnIndexes.current, index].sort((a, b) => a - b);\n }\n },\n resetFocussableColumnIndexes: () => {\n focussableColumnIndexes.current = [];\n },\n // table ref\n tableRef: ref,\n // last sorted or filtered rows\n lastSortedOrFilteredRows,\n },\n });\n\n const tableRows = table.getRowModel().rows;\n\n if (!shouldPauseSortingAndFiltering) {\n lastSortedOrFilteredRows.current = tableRows;\n }\n\n const rows = shouldPauseSortingAndFiltering ? lastSortedOrFilteredRows.current : tableRows;\n\n // state listeners\n useActiveRowStateListener<TType>(table, rows, activeRow);\n useColumnOffsetStateListener(table, setColumnOffsets);\n useRowSelectionListener<TType>(table, onRowSelect);\n useSettingsStateListener(table, onChangeSettings);\n\n return { rows, table, footers };\n}\n"],"names":["useTable","children","props","ref","actionsForRow","data","defaultActiveRowIndex","disableColumnFiltering","disableColumnHiding","disableColumnPinning","disableColumnReordering","disableColumnResizing","disableRowDensity","disableRowExpansion","disableRowSelection","disableMultipleRowSelection","disableSearch","disableSorting","expandedRowRenderer","manualColumnFiltering","manualSearch","manualSorting","onChangeSettings","onRowClick","onRowDrag","onRowSelect","onSave","settings","_experimentalActionsForTable","enableRowExpansion","enableRowSelection","length","enableMultipleRowSelection","columns","defaultColumnPinning","defaultColumnSizing","defaultSorting","defaultColumnVisibility","footers","useColumnDefinitions","enableColumnFiltering","enableColumnHiding","enableColumnPinning","lastSortedOrFilteredRows","React","useRef","initialState","columnOrder","map","column","id","columnPinning","left","right","columnSizing","columnVisibility","dataColumnStartOffset","reduce","t","e","dataColumnEndOffset","activeRow","useActiveRow","shouldPauseHoverState","setShouldPauseHoverState","useShouldPauseHoverState","editMode","useEditMode","columnOffsets","setColumnOffsets","useState","getOffsetsFromSize","rowDensity","setRowDensity","dragging","setDragging","shouldPauseSortingAndFiltering","setShouldPauseSortingAndFiltering","shouldDisableTableActions","setShouldDisableTableActions","focussableColumnIndexes","options","enableExpanding","enableColumnFilters","enableColumnResizing","enableGlobalFilter","enableHiding","enablePinning","enableMultiRowSelection","enableSorting","columnResizeMode","sorting","getSortedRowModel","columnFilters","manualFiltering","filterFns","tacoFilter","row","columnId","filter","columnFilterFn","getValue","getFilteredRowModel","globalFilterFn","query","table","useReactTable","getCoreRowModel","meta","enableRowDensity","enableRowDragging","enableColumnReordering","current","addFocussableColumnIndex","index","includes","sort","a","b","resetFocussableColumnIndexes","tableRef","tableRows","getRowModel","rows","useActiveRowStateListener","useColumnOffsetStateListener","useRowSelectionListener","useSettingsStateListener"],"mappings":"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"}
@@ -30,8 +30,7 @@ const useVirtualiser = ({
30
30
  const virtualiser = useVirtual({
31
31
  parentRef: tableRef,
32
32
  size: rows.length,
33
- estimateSize,
34
- overscan: 10
33
+ estimateSize
35
34
  });
36
35
  const paddingTop = virtualiser.virtualItems.length > 0 ? ((_virtualiser$virtualI = virtualiser.virtualItems) === null || _virtualiser$virtualI === void 0 ? void 0 : (_virtualiser$virtualI2 = _virtualiser$virtualI[0]) === null || _virtualiser$virtualI2 === void 0 ? void 0 : _virtualiser$virtualI2.start) || 0 : 0;
37
36
  const paddingBottom = virtualiser.virtualItems.length > 0 ? virtualiser.totalSize - (((_virtualiser$virtualI3 = virtualiser.virtualItems) === null || _virtualiser$virtualI3 === void 0 ? void 0 : (_virtualiser$virtualI4 = _virtualiser$virtualI3[virtualiser.virtualItems.length - 1]) === null || _virtualiser$virtualI4 === void 0 ? void 0 : _virtualiser$virtualI4.end) || 0) : 0;
@@ -1 +1 @@
1
- {"version":3,"file":"useVirtualiser.js","sources":["../../../../../../../../src/components/Table2/hooks/useVirtualiser.ts"],"sourcesContent":["import React from 'react';\nimport { OnChangeFn, TableMeta } from '@tanstack/react-table';\nimport { useVirtual, VirtualItem } from 'react-virtual';\n\ntype ExpandedRowSizeState = Record<string, number>;\ntype useVirtualiser = {\n virtualiser: {\n virtualItems: VirtualItem[];\n totalSize: number;\n scrollToOffset: (index: number, options?: any) => void;\n scrollToIndex: (index: number, options?: any) => void;\n measure: () => void;\n };\n virtualiserOffsets: {\n top: number;\n bottom: number;\n };\n setExpandedRowSizes: OnChangeFn<ExpandedRowSizeState>;\n};\n\nconst densitySizeEstimates = {\n compact: 33,\n normal: 41,\n comfortable: 49,\n spacious: 57,\n};\n\nexport const useVirtualiser = ({ rows, table }, tableRef: React.RefObject<HTMLElement>): useVirtualiser => {\n const [expandedRowSizes, setExpandedRowSizes] = React.useState({});\n const firstAvailableExpandedRowHeight = React.useMemo(() => {\n const values: number[] = Object.values(expandedRowSizes);\n return values.length ? values.reduce((a, b) => a + b, 0) / values.length : 0;\n }, [expandedRowSizes]);\n const meta = table.options.meta as TableMeta<any>;\n\n const estimateSize = React.useCallback(\n index => {\n const rowHeight = meta.rowDensity ? densitySizeEstimates[meta.rowDensity] : densitySizeEstimates.normal;\n\n if (table.getState().expanded === true || table.getState().expanded?.[index]) {\n return rowHeight + (expandedRowSizes[index] ?? firstAvailableExpandedRowHeight ?? 0);\n }\n\n return rowHeight;\n },\n\n [meta.rowDensity, expandedRowSizes, table.getState().expanded]\n );\n\n const virtualiser = useVirtual({\n parentRef: tableRef,\n size: rows.length,\n estimateSize,\n overscan: 10,\n });\n\n const paddingTop = virtualiser.virtualItems.length > 0 ? virtualiser.virtualItems?.[0]?.start || 0 : 0;\n const paddingBottom =\n virtualiser.virtualItems.length > 0\n ? virtualiser.totalSize - (virtualiser.virtualItems?.[virtualiser.virtualItems.length - 1]?.end || 0)\n : 0;\n\n return { virtualiser, virtualiserOffsets: { top: paddingTop, bottom: paddingBottom }, setExpandedRowSizes };\n};\n"],"names":["densitySizeEstimates","compact","normal","comfortable","spacious","useVirtualiser","rows","table","tableRef","expandedRowSizes","setExpandedRowSizes","React","useState","firstAvailableExpandedRowHeight","useMemo","values","Object","length","reduce","a","b","meta","options","estimateSize","useCallback","index","rowHeight","rowDensity","getState","expanded","virtualiser","useVirtual","parentRef","size","overscan","paddingTop","virtualItems","start","paddingBottom","totalSize","end","virtualiserOffsets","top","bottom"],"mappings":";;;AAoBA,MAAMA,oBAAoB,GAAG;EACzBC,OAAO,EAAE,EAAE;EACXC,MAAM,EAAE,EAAE;EACVC,WAAW,EAAE,EAAE;EACfC,QAAQ,EAAE;CACb;MAEYC,cAAc,GAAG,CAAC;EAAEC,IAAI;EAAEC;CAAO,EAAEC,QAAsC;;EAClF,MAAM,CAACC,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGC,cAAK,CAACC,QAAQ,CAAC,EAAE,CAAC;EAClE,MAAMC,+BAA+B,GAAGF,cAAK,CAACG,OAAO,CAAC;IAClD,MAAMC,MAAM,GAAaC,MAAM,CAACD,MAAM,CAACN,gBAAgB,CAAC;IACxD,OAAOM,MAAM,CAACE,MAAM,GAAGF,MAAM,CAACG,MAAM,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC,EAAE,CAAC,CAAC,GAAGL,MAAM,CAACE,MAAM,GAAG,CAAC;GAC/E,EAAE,CAACR,gBAAgB,CAAC,CAAC;EACtB,MAAMY,IAAI,GAAGd,KAAK,CAACe,OAAO,CAACD,IAAsB;EAEjD,MAAME,YAAY,GAAGZ,cAAK,CAACa,WAAW,CAClCC,KAAK;;IACD,MAAMC,SAAS,GAAGL,IAAI,CAACM,UAAU,GAAG3B,oBAAoB,CAACqB,IAAI,CAACM,UAAU,CAAC,GAAG3B,oBAAoB,CAACE,MAAM;IAEvG,IAAIK,KAAK,CAACqB,QAAQ,EAAE,CAACC,QAAQ,KAAK,IAAI,6BAAItB,KAAK,CAACqB,QAAQ,EAAE,CAACC,QAAQ,kDAAzB,sBAA4BJ,KAAK,CAAC,EAAE;MAAA;MAC1E,OAAOC,SAAS,qCAAIjB,gBAAgB,CAACgB,KAAK,CAAC,yEAAIZ,+BAA+B,uCAAI,CAAC,CAAC;;IAGxF,OAAOa,SAAS;GACnB,EAED,CAACL,IAAI,CAACM,UAAU,EAAElB,gBAAgB,EAAEF,KAAK,CAACqB,QAAQ,EAAE,CAACC,QAAQ,CAAC,CACjE;EAED,MAAMC,WAAW,GAAGC,UAAU,CAAC;IAC3BC,SAAS,EAAExB,QAAQ;IACnByB,IAAI,EAAE3B,IAAI,CAACW,MAAM;IACjBM,YAAY;IACZW,QAAQ,EAAE;GACb,CAAC;EAEF,MAAMC,UAAU,GAAGL,WAAW,CAACM,YAAY,CAACnB,MAAM,GAAG,CAAC,GAAG,0BAAAa,WAAW,CAACM,YAAY,oFAAxB,sBAA2B,CAAC,CAAC,2DAA7B,uBAA+BC,KAAK,KAAI,CAAC,GAAG,CAAC;EACtG,MAAMC,aAAa,GACfR,WAAW,CAACM,YAAY,CAACnB,MAAM,GAAG,CAAC,GAC7Ba,WAAW,CAACS,SAAS,IAAI,2BAAAT,WAAW,CAACM,YAAY,qFAAxB,uBAA2BN,WAAW,CAACM,YAAY,CAACnB,MAAM,GAAG,CAAC,CAAC,2DAA/D,uBAAiEuB,GAAG,KAAI,CAAC,CAAC,GACnG,CAAC;EAEX,OAAO;IAAEV,WAAW;IAAEW,kBAAkB,EAAE;MAAEC,GAAG,EAAEP,UAAU;MAAEQ,MAAM,EAAEL;KAAe;IAAE5B;GAAqB;AAC/G;;;;"}
1
+ {"version":3,"file":"useVirtualiser.js","sources":["../../../../../../../../src/components/Table2/hooks/useVirtualiser.ts"],"sourcesContent":["import React from 'react';\nimport { OnChangeFn, TableMeta } from '@tanstack/react-table';\nimport { useVirtual, VirtualItem } from 'react-virtual';\n\ntype ExpandedRowSizeState = Record<string, number>;\ntype useVirtualiser = {\n virtualiser: {\n virtualItems: VirtualItem[];\n totalSize: number;\n scrollToOffset: (index: number, options?: any) => void;\n scrollToIndex: (index: number, options?: any) => void;\n measure: () => void;\n };\n virtualiserOffsets: {\n top: number;\n bottom: number;\n };\n setExpandedRowSizes: OnChangeFn<ExpandedRowSizeState>;\n};\n\nconst densitySizeEstimates = {\n compact: 33,\n normal: 41,\n comfortable: 49,\n spacious: 57,\n};\n\nexport const useVirtualiser = ({ rows, table }, tableRef: React.RefObject<HTMLElement>): useVirtualiser => {\n const [expandedRowSizes, setExpandedRowSizes] = React.useState({});\n const firstAvailableExpandedRowHeight = React.useMemo(() => {\n const values: number[] = Object.values(expandedRowSizes);\n return values.length ? values.reduce((a, b) => a + b, 0) / values.length : 0;\n }, [expandedRowSizes]);\n const meta = table.options.meta as TableMeta<any>;\n\n const estimateSize = React.useCallback(\n index => {\n const rowHeight = meta.rowDensity ? densitySizeEstimates[meta.rowDensity] : densitySizeEstimates.normal;\n\n if (table.getState().expanded === true || table.getState().expanded?.[index]) {\n return rowHeight + (expandedRowSizes[index] ?? firstAvailableExpandedRowHeight ?? 0);\n }\n\n return rowHeight;\n },\n\n [meta.rowDensity, expandedRowSizes, table.getState().expanded]\n );\n\n const virtualiser = useVirtual({\n parentRef: tableRef,\n size: rows.length,\n estimateSize,\n });\n\n const paddingTop = virtualiser.virtualItems.length > 0 ? virtualiser.virtualItems?.[0]?.start || 0 : 0;\n const paddingBottom =\n virtualiser.virtualItems.length > 0\n ? virtualiser.totalSize - (virtualiser.virtualItems?.[virtualiser.virtualItems.length - 1]?.end || 0)\n : 0;\n\n return { virtualiser, virtualiserOffsets: { top: paddingTop, bottom: paddingBottom }, setExpandedRowSizes };\n};\n"],"names":["densitySizeEstimates","compact","normal","comfortable","spacious","useVirtualiser","rows","table","tableRef","expandedRowSizes","setExpandedRowSizes","React","useState","firstAvailableExpandedRowHeight","useMemo","values","Object","length","reduce","a","b","meta","options","estimateSize","useCallback","index","rowHeight","rowDensity","getState","expanded","virtualiser","useVirtual","parentRef","size","paddingTop","virtualItems","start","paddingBottom","totalSize","end","virtualiserOffsets","top","bottom"],"mappings":";;;AAoBA,MAAMA,oBAAoB,GAAG;EACzBC,OAAO,EAAE,EAAE;EACXC,MAAM,EAAE,EAAE;EACVC,WAAW,EAAE,EAAE;EACfC,QAAQ,EAAE;CACb;MAEYC,cAAc,GAAG,CAAC;EAAEC,IAAI;EAAEC;CAAO,EAAEC,QAAsC;;EAClF,MAAM,CAACC,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGC,cAAK,CAACC,QAAQ,CAAC,EAAE,CAAC;EAClE,MAAMC,+BAA+B,GAAGF,cAAK,CAACG,OAAO,CAAC;IAClD,MAAMC,MAAM,GAAaC,MAAM,CAACD,MAAM,CAACN,gBAAgB,CAAC;IACxD,OAAOM,MAAM,CAACE,MAAM,GAAGF,MAAM,CAACG,MAAM,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC,EAAE,CAAC,CAAC,GAAGL,MAAM,CAACE,MAAM,GAAG,CAAC;GAC/E,EAAE,CAACR,gBAAgB,CAAC,CAAC;EACtB,MAAMY,IAAI,GAAGd,KAAK,CAACe,OAAO,CAACD,IAAsB;EAEjD,MAAME,YAAY,GAAGZ,cAAK,CAACa,WAAW,CAClCC,KAAK;;IACD,MAAMC,SAAS,GAAGL,IAAI,CAACM,UAAU,GAAG3B,oBAAoB,CAACqB,IAAI,CAACM,UAAU,CAAC,GAAG3B,oBAAoB,CAACE,MAAM;IAEvG,IAAIK,KAAK,CAACqB,QAAQ,EAAE,CAACC,QAAQ,KAAK,IAAI,6BAAItB,KAAK,CAACqB,QAAQ,EAAE,CAACC,QAAQ,kDAAzB,sBAA4BJ,KAAK,CAAC,EAAE;MAAA;MAC1E,OAAOC,SAAS,qCAAIjB,gBAAgB,CAACgB,KAAK,CAAC,yEAAIZ,+BAA+B,uCAAI,CAAC,CAAC;;IAGxF,OAAOa,SAAS;GACnB,EAED,CAACL,IAAI,CAACM,UAAU,EAAElB,gBAAgB,EAAEF,KAAK,CAACqB,QAAQ,EAAE,CAACC,QAAQ,CAAC,CACjE;EAED,MAAMC,WAAW,GAAGC,UAAU,CAAC;IAC3BC,SAAS,EAAExB,QAAQ;IACnByB,IAAI,EAAE3B,IAAI,CAACW,MAAM;IACjBM;GACH,CAAC;EAEF,MAAMW,UAAU,GAAGJ,WAAW,CAACK,YAAY,CAAClB,MAAM,GAAG,CAAC,GAAG,0BAAAa,WAAW,CAACK,YAAY,oFAAxB,sBAA2B,CAAC,CAAC,2DAA7B,uBAA+BC,KAAK,KAAI,CAAC,GAAG,CAAC;EACtG,MAAMC,aAAa,GACfP,WAAW,CAACK,YAAY,CAAClB,MAAM,GAAG,CAAC,GAC7Ba,WAAW,CAACQ,SAAS,IAAI,2BAAAR,WAAW,CAACK,YAAY,qFAAxB,uBAA2BL,WAAW,CAACK,YAAY,CAAClB,MAAM,GAAG,CAAC,CAAC,2DAA/D,uBAAiEsB,GAAG,KAAI,CAAC,CAAC,GACnG,CAAC;EAEX,OAAO;IAAET,WAAW;IAAEU,kBAAkB,EAAE;MAAEC,GAAG,EAAEP,UAAU;MAAEQ,MAAM,EAAEL;KAAe;IAAE3B;GAAqB;AAC/G;;;;"}
@@ -6,6 +6,7 @@ import { IconButton } from '../../IconButton/IconButton.js';
6
6
  import { Checkbox } from '../../Checkbox/Checkbox.js';
7
7
  import { Menu } from '../../Menu/Menu.js';
8
8
  import { Shortcut } from '../../Shortcut/Shortcut.js';
9
+ import { useRowContext } from '../components/row/Context.js';
9
10
 
10
11
  const COLUMN_ID_FOR_DRAGGABLE = '__draggable';
11
12
  const COLUMN_ID_FOR_SELECTION = '__select';
@@ -73,6 +74,44 @@ function createRowDraggableColumn(onRowDrag, texts) {
73
74
  size: 10
74
75
  };
75
76
  }
77
+ const SelectCell = /*#__PURE__*/React__default.memo(({
78
+ lastSelectedRowIndex,
79
+ rowIndex,
80
+ isSelected,
81
+ table,
82
+ tableRef,
83
+ texts,
84
+ toggleSelected
85
+ }) => {
86
+ const meta = table.options.meta;
87
+ const handleClick = event => {
88
+ var _tableRef$current;
89
+ event.stopPropagation();
90
+ if (event.shiftKey) {
91
+ const [fromIndex, toIndex] = toggleBetween((lastSelectedRowIndex === null || lastSelectedRowIndex === void 0 ? void 0 : lastSelectedRowIndex.current) || 0, rowIndex);
92
+ table.getRowModel().rows.slice(fromIndex, toIndex + 1).forEach(row => row.toggleSelected(true));
93
+ } else {
94
+ toggleSelected();
95
+ }
96
+ lastSelectedRowIndex.current = rowIndex;
97
+ meta.setActiveRowIndex(rowIndex);
98
+ (_tableRef$current = tableRef.current) === null || _tableRef$current === void 0 ? void 0 : _tableRef$current.focus();
99
+ };
100
+ return /*#__PURE__*/React__default.createElement(Tooltip, {
101
+ title: /*#__PURE__*/React__default.createElement(React__default.Fragment, null, isSelected ? texts.table2.columns.select.select : texts.table2.columns.select.deselect, /*#__PURE__*/React__default.createElement(Shortcut, {
102
+ className: "ml-2",
103
+ keys: ['Space']
104
+ }))
105
+ }, /*#__PURE__*/React__default.createElement(Checkbox, {
106
+ "aria-label": isSelected ? texts.table2.columns.select.select : texts.table2.columns.select.deselect,
107
+ className: "hover:border-blue !mt-[0.45rem]",
108
+ checked: isSelected,
109
+ onClick: handleClick,
110
+ // this is necessary to remove console spam from eslint
111
+ onChange: () => false,
112
+ tabIndex: -1
113
+ }));
114
+ });
76
115
  function createRowSelectionColumn(enableMultipleRowSelection, lastSelectedRowIndex, onRowDrag, tableRef, texts) {
77
116
  let header;
78
117
  let cell;
@@ -91,44 +130,23 @@ function createRowSelectionColumn(enableMultipleRowSelection, lastSelectedRowInd
91
130
  indeterminate: table.getIsSomePageRowsSelected(),
92
131
  onChange: checked => table.toggleAllPageRowsSelected(checked),
93
132
  onClick: () => {
94
- var _tableRef$current;
95
- (_tableRef$current = tableRef.current) === null || _tableRef$current === void 0 ? void 0 : _tableRef$current.focus();
133
+ var _tableRef$current2;
134
+ (_tableRef$current2 = tableRef.current) === null || _tableRef$current2 === void 0 ? void 0 : _tableRef$current2.focus();
96
135
  },
97
136
  tabIndex: -1
98
137
  }));
99
138
  cell = ({
100
139
  row,
101
140
  table
102
- }) => {
103
- const meta = table.options.meta;
104
- const handleClick = event => {
105
- var _tableRef$current2;
106
- event.stopPropagation();
107
- if (event.shiftKey) {
108
- const [fromIndex, toIndex] = toggleBetween((lastSelectedRowIndex === null || lastSelectedRowIndex === void 0 ? void 0 : lastSelectedRowIndex.current) || 0, row.index);
109
- table.getRowModel().rows.slice(fromIndex, toIndex + 1).forEach(row => row.toggleSelected(true));
110
- } else {
111
- row.toggleSelected();
112
- }
113
- lastSelectedRowIndex.current = row.index;
114
- meta.setActiveRowIndex(row.index);
115
- (_tableRef$current2 = tableRef.current) === null || _tableRef$current2 === void 0 ? void 0 : _tableRef$current2.focus();
116
- };
117
- return /*#__PURE__*/React__default.createElement(Tooltip, {
118
- title: /*#__PURE__*/React__default.createElement(React__default.Fragment, null, row.getIsSelected() ? texts.table2.columns.select.select : texts.table2.columns.select.deselect, /*#__PURE__*/React__default.createElement(Shortcut, {
119
- className: "ml-2",
120
- keys: ['Space']
121
- }))
122
- }, /*#__PURE__*/React__default.createElement(Checkbox, {
123
- "aria-label": row.getIsSelected() ? texts.table2.columns.select.select : texts.table2.columns.select.deselect,
124
- className: "hover:border-blue !mt-[0.45rem]",
125
- checked: row.getIsSelected(),
126
- onClick: handleClick,
127
- // this is necessary to remove console spam from eslint
128
- onChange: () => false,
129
- tabIndex: -1
130
- }));
131
- };
141
+ }) => /*#__PURE__*/React__default.createElement(SelectCell, {
142
+ lastSelectedRowIndex: lastSelectedRowIndex,
143
+ rowIndex: row.index,
144
+ isSelected: row.getIsSelected(),
145
+ table: table,
146
+ tableRef: tableRef,
147
+ texts: texts,
148
+ toggleSelected: row.toggleSelected
149
+ });
132
150
  } else {
133
151
  cell = ({
134
152
  row,
@@ -170,6 +188,27 @@ function createRowSelectionColumn(enableMultipleRowSelection, lastSelectedRowInd
170
188
  size: 46
171
189
  };
172
190
  }
191
+ const ExpandCell = /*#__PURE__*/React__default.memo(({
192
+ isExpanded,
193
+ toggleExpanded,
194
+ texts
195
+ }) => {
196
+ return /*#__PURE__*/React__default.createElement(Tooltip, {
197
+ title: /*#__PURE__*/React__default.createElement(React__default.Fragment, null, isExpanded ? texts.table2.columns.expansion.collapse : texts.table2.columns.expansion.expand, /*#__PURE__*/React__default.createElement(Shortcut, {
198
+ className: "ml-2",
199
+ keys: ['Ctrl', isExpanded ? '←' : '→']
200
+ }))
201
+ }, /*#__PURE__*/React__default.createElement(IconButton, {
202
+ title: isExpanded ? texts.table2.columns.expansion.collapse : texts.table2.columns.expansion.expand,
203
+ appearance: "discrete",
204
+ icon: isExpanded ? 'chevron-down' : 'chevron-right',
205
+ onClick: event => {
206
+ event.stopPropagation();
207
+ toggleExpanded();
208
+ },
209
+ tabIndex: -1
210
+ }));
211
+ });
173
212
  function createRowExpansionColumn(texts) {
174
213
  return {
175
214
  id: COLUMN_ID_FOR_EXPANSION,
@@ -190,21 +229,11 @@ function createRowExpansionColumn(texts) {
190
229
  })),
191
230
  cell: ({
192
231
  row
193
- }) => /*#__PURE__*/React__default.createElement(Tooltip, {
194
- title: /*#__PURE__*/React__default.createElement(React__default.Fragment, null, row.getIsExpanded() ? texts.table2.columns.expansion.collapse : texts.table2.columns.expansion.expand, /*#__PURE__*/React__default.createElement(Shortcut, {
195
- className: "ml-2",
196
- keys: ['Ctrl', row.getIsExpanded() ? '←' : '→']
197
- }))
198
- }, /*#__PURE__*/React__default.createElement(IconButton, {
199
- title: row.getIsExpanded() ? texts.table2.columns.expansion.collapse : texts.table2.columns.expansion.expand,
200
- appearance: "discrete",
201
- icon: row.getIsExpanded() ? 'chevron-down' : 'chevron-right',
202
- onClick: event => {
203
- event.stopPropagation();
204
- row.toggleExpanded();
205
- },
206
- tabIndex: -1
207
- })),
232
+ }) => /*#__PURE__*/React__default.createElement(ExpandCell, {
233
+ isExpanded: row.getIsExpanded(),
234
+ toggleExpanded: row.toggleExpanded,
235
+ texts: texts
236
+ }),
208
237
  meta: {
209
238
  align: 'center',
210
239
  className: 'items-center !p-0',
@@ -217,13 +246,20 @@ function createRowExpansionColumn(texts) {
217
246
  };
218
247
  }
219
248
  const getActionPropertyValue = (property, row) => typeof property === 'function' ? property(row) : property;
220
- function RowActionCell({
249
+ const RowActionsCell = /*#__PURE__*/React__default.memo(({
221
250
  row,
222
251
  actions,
223
252
  moreActions,
224
253
  table,
225
254
  texts
226
- }) {
255
+ }) => {
256
+ const {
257
+ isActive,
258
+ isHovered
259
+ } = useRowContext();
260
+ if (!isHovered && !isActive) {
261
+ return null;
262
+ }
227
263
  const isVisible = action => typeof action.visible !== 'undefined' ? typeof action.visible === 'function' ? action.visible(row.original) : action.visible : true;
228
264
  const visibleActions = actions.filter(isVisible);
229
265
  const visibleMoreActions = moreActions.filter(isVisible);
@@ -271,7 +307,7 @@ function RowActionCell({
271
307
  }, getActionPropertyValue(action.text, row.original))))),
272
308
  tooltip: texts.table2.columns.actions.tooltip
273
309
  }) : null);
274
- }
310
+ });
275
311
  function createRowActionsColumn(rowActions, texts) {
276
312
  const actions = rowActions.length === 4 ? rowActions : rowActions.slice(0, 3);
277
313
  const moreActions = rowActions.slice(rowActions.length === 4 ? 4 : 3);
@@ -280,7 +316,7 @@ function createRowActionsColumn(rowActions, texts) {
280
316
  cell: ({
281
317
  row,
282
318
  table
283
- }) => /*#__PURE__*/React__default.createElement(RowActionCell, {
319
+ }) => /*#__PURE__*/React__default.createElement(RowActionsCell, {
284
320
  row: row,
285
321
  actions: actions,
286
322
  moreActions: moreActions,
@@ -290,7 +326,7 @@ function createRowActionsColumn(rowActions, texts) {
290
326
  meta: {
291
327
  align: 'right',
292
328
  className: row => cn('items-center print:opacity-0 group-[[aria-current]]/row:sticky group-hover/row:sticky right-0 bg-transparent !px-1', {
293
- 'group-[[aria-current]]/row:!shadow-[-6px_0px_6px_theme(colors.grey.200)]': !row.getIsSelected(),
329
+ 'group-[[aria-current]]/row:!shadow-[-6px_0px_6px_theme(colors.grey.200)] group-hover/row:!shadow-[-6px_0px_6px_theme(colors.grey.100)]': !row.getIsSelected(),
294
330
  'shadow-[-6px_0px_6px_theme(colors.blue.100)]': row.getIsSelected()
295
331
  }),
296
332
  disableTruncation: true,
@@ -1 +1 @@
1
- {"version":3,"file":"columns.js","sources":["../../../../../../../../src/components/Table2/utilities/columns.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { CellContext, DisplayColumnDef, Row, TableMeta } from '@tanstack/react-table';\nimport { Checkbox } from '../../Checkbox/Checkbox';\nimport { IconButton } from '../../IconButton/IconButton';\nimport { Shortcut } from '../../Shortcut/Shortcut';\nimport { Tooltip } from '../../Tooltip/Tooltip';\nimport { RowDragHandler, Table2RowActionProps } from '../types';\nimport { Menu } from '../../Menu/Menu';\nimport { Icon } from '../../Icon/Icon';\nimport { LocalizationTexts } from '../../Provider/Localization';\n\nexport const COLUMN_ID_FOR_DRAGGABLE = '__draggable';\nexport const COLUMN_ID_FOR_SELECTION = '__select';\nexport const COLUMN_ID_FOR_EXPANSION = '__expansion';\nexport const COLUMN_ID_FOR_ACTIONS = '__actions';\n\nexport const isInternalColumn = (id: string) =>\n id === COLUMN_ID_FOR_SELECTION ||\n id === COLUMN_ID_FOR_EXPANSION ||\n id === COLUMN_ID_FOR_ACTIONS ||\n id === COLUMN_ID_FOR_DRAGGABLE;\n\nexport const MIN_COLUMN_SIZE = 80; // accounts for padding and sort controls\n\nconst toggleBetween = (fromRowIndex: number, toRowIndex: number): [number, number] => {\n const fromIndex = toRowIndex < fromRowIndex ? toRowIndex : fromRowIndex;\n const toIndex = toRowIndex > fromRowIndex ? toRowIndex : fromRowIndex;\n\n return [fromIndex, toIndex];\n};\n\nexport function createRowDraggableColumn<TType = any>(\n onRowDrag: RowDragHandler<TType>,\n texts: LocalizationTexts\n): DisplayColumnDef<TType, any> {\n return {\n id: COLUMN_ID_FOR_DRAGGABLE,\n cell: ({ row, table }) => {\n const meta = table.options.meta as TableMeta<any>;\n const GHOST_ELEMENT_ID = 'taco_table_dragging';\n\n const onDragStart = (event: React.DragEvent): void => {\n const rows = row.getIsSelected() ? table.getSelectedRowModel().rows : [row, ...table.getSelectedRowModel().rows];\n\n meta.setDragging(rows.reduce((dragging, rowBeingDragged) => ({ ...dragging, [rowBeingDragged.id]: true }), {}));\n\n const data = rows.map(row => row.original);\n // set a default data value so that the consumer doesn't have to\n event.dataTransfer.setData('text', JSON.stringify(data));\n\n const showPlaceholder = (text: string) => {\n const ghost = document.createElement('div');\n ghost.id = GHOST_ELEMENT_ID;\n ghost.className = 'wcag-blue rounded flex w-48 p-4 absolute -ml-[100vw]';\n ghost.innerText = text;\n document.body.appendChild(ghost);\n event.dataTransfer.setDragImage(ghost, 0, 0);\n };\n\n const setDataTransfer = (text: string) => event.dataTransfer.setData('text', text);\n\n onRowDrag(data, showPlaceholder, setDataTransfer);\n };\n\n const onDragEnd = (): void => {\n document.getElementById(GHOST_ELEMENT_ID)?.remove();\n meta.setDragging({});\n };\n\n return (\n <div draggable onDragStart={onDragStart} onDragEnd={onDragEnd}>\n <Icon\n aria-label={texts.table2.columns.drag.tooltip}\n name=\"drag\"\n className=\"text-grey-darkest invisible w-[20px] cursor-grab active:cursor-grabbing group-hover/row:visible group-[[aria-grabbed]]/row:text-white\"\n />\n </div>\n );\n },\n meta: {\n align: 'center',\n className: 'items-center !px-0',\n disableTruncation: true,\n headerClassName: 'items-center !px-0',\n },\n // sizing\n enableResizing: false,\n size: 10,\n };\n}\n\nexport function createRowSelectionColumn<TType = any>(\n enableMultipleRowSelection: boolean,\n lastSelectedRowIndex: React.MutableRefObject<number | undefined>,\n onRowDrag: RowDragHandler<TType> | undefined,\n tableRef: React.RefObject<HTMLDivElement>,\n texts: LocalizationTexts\n): DisplayColumnDef<TType, any> {\n let header;\n let cell;\n\n if (enableMultipleRowSelection) {\n header = ({ table }) => (\n <Tooltip\n title={\n <>\n {table.getIsAllPageRowsSelected()\n ? texts.table2.columns.select.deselectAll\n : texts.table2.columns.select.selectAll}\n <Shortcut className=\"ml-2\" keys={['Ctrl', 'A']} />\n </>\n }>\n <Checkbox\n aria-label={\n table.getIsAllPageRowsSelected()\n ? texts.table2.columns.select.deselectAll\n : texts.table2.columns.select.selectAll\n }\n className=\"hover:border-blue !mt-0\"\n checked={table.getIsAllPageRowsSelected()}\n indeterminate={table.getIsSomePageRowsSelected()}\n onChange={checked => table.toggleAllPageRowsSelected(checked)}\n onClick={() => {\n tableRef.current?.focus();\n }}\n tabIndex={-1}\n />\n </Tooltip>\n );\n cell = ({ row, table }) => {\n const meta = table.options.meta as TableMeta<any>;\n const handleClick = (event: React.MouseEvent): void => {\n event.stopPropagation();\n\n if (event.shiftKey) {\n const [fromIndex, toIndex] = toggleBetween(lastSelectedRowIndex?.current || 0, row.index);\n\n table\n .getRowModel()\n .rows.slice(fromIndex, toIndex + 1)\n .forEach(row => row.toggleSelected(true));\n } else {\n row.toggleSelected();\n }\n\n lastSelectedRowIndex.current = row.index;\n meta.setActiveRowIndex(row.index);\n tableRef.current?.focus();\n };\n\n return (\n <Tooltip\n title={\n <>\n {row.getIsSelected() ? texts.table2.columns.select.select : texts.table2.columns.select.deselect}\n <Shortcut className=\"ml-2\" keys={['Space']} />\n </>\n }>\n <Checkbox\n aria-label={\n row.getIsSelected() ? texts.table2.columns.select.select : texts.table2.columns.select.deselect\n }\n className=\"hover:border-blue !mt-[0.45rem]\"\n checked={row.getIsSelected()}\n onClick={handleClick}\n // this is necessary to remove console spam from eslint\n onChange={() => false}\n tabIndex={-1}\n />\n </Tooltip>\n );\n };\n } else {\n cell = ({ row, table }) => {\n const meta = table.options.meta as TableMeta<any>;\n const className =\n 'border-grey-300 focus:yt-focus flex h-5 w-5 mt-[0.45rem] flex-shrink-0 items-center justify-center self-start rounded-full border-2 bg-white hover:border-[5px] aria-checked:border-blue-500 aria-checked:bg-blue-500 hover:aria-checked:border-blue-300';\n\n const handleClick = (event: React.MouseEvent): void => {\n event.stopPropagation();\n row.toggleSelected();\n meta.setActiveRowIndex(row.index);\n tableRef.current?.focus();\n };\n\n return (\n <button\n className={className}\n aria-checked={row.getIsSelected()}\n onClick={handleClick}\n role=\"radio\"\n tabIndex={-1}\n type=\"button\">\n {row.getIsSelected() ? <span className=\"h-2.5 w-2.5 rounded-full bg-white\" /> : null}\n </button>\n );\n };\n }\n\n return {\n id: COLUMN_ID_FOR_SELECTION,\n header,\n cell,\n meta: {\n align: 'center',\n className: onRowDrag ? '!pl-0 !pr-3' : '!px-3',\n disableTruncation: true,\n headerClassName: onRowDrag ? '!pl-0 !pr-3' : '!px-3',\n },\n // sizing\n enableResizing: false,\n size: 46,\n };\n}\n\nexport function createRowExpansionColumn<TType = any>(texts: LocalizationTexts): DisplayColumnDef<TType, any> {\n return {\n id: COLUMN_ID_FOR_EXPANSION,\n header: ({ table }) => (\n <Tooltip\n title={\n table.getIsSomeRowsExpanded()\n ? texts.table2.columns.expansion.collapseAll\n : texts.table2.columns.expansion.expandAll\n }>\n <IconButton\n title={\n table.getIsSomeRowsExpanded()\n ? texts.table2.columns.expansion.collapseAll\n : texts.table2.columns.expansion.expandAll\n }\n appearance=\"discrete\"\n className=\"-mb-2 -mt-1.5\"\n icon={table.getIsSomeRowsExpanded() ? 'chevron-down-double' : 'chevron-right-double'}\n onClick={event => {\n event.stopPropagation();\n table.toggleAllRowsExpanded(table.getIsSomeRowsExpanded() ? false : true);\n }}\n tabIndex={-1}\n />\n </Tooltip>\n ),\n cell: ({ row }: CellContext<TType, any>) => (\n <Tooltip\n title={\n <>\n {row.getIsExpanded() ? texts.table2.columns.expansion.collapse : texts.table2.columns.expansion.expand}\n <Shortcut className=\"ml-2\" keys={['Ctrl', row.getIsExpanded() ? '←' : '→']} />\n </>\n }>\n <IconButton\n title={row.getIsExpanded() ? texts.table2.columns.expansion.collapse : texts.table2.columns.expansion.expand}\n appearance=\"discrete\"\n icon={row.getIsExpanded() ? 'chevron-down' : 'chevron-right'}\n onClick={event => {\n event.stopPropagation();\n row.toggleExpanded();\n }}\n tabIndex={-1}\n />\n </Tooltip>\n ),\n meta: {\n align: 'center',\n className: 'items-center !p-0',\n disableTruncation: true,\n headerClassName: 'items-center hover:!bg-white !p-0',\n },\n // sizing\n enableResizing: false,\n size: 36,\n };\n}\n\nconst getActionPropertyValue = (property, row) => (typeof property === 'function' ? property(row) : property);\n\nfunction RowActionCell<TType = {}>({ row, actions, moreActions, table, texts }) {\n const isVisible = (action: Table2RowActionProps<TType>) =>\n typeof action.visible !== 'undefined'\n ? typeof action.visible === 'function'\n ? action.visible(row.original)\n : action.visible\n : true;\n\n const visibleActions = actions.filter(isVisible);\n const visibleMoreActions = moreActions.filter(isVisible);\n\n // If the row is not the active row or the hovered row then actions are hidden.\n const actionClassName = 'group-hover/row:flex group-[[aria-current]]/row:flex hidden';\n\n // only actions in the active row should be tabbable\n const tabIndex = table.options.meta.activeRowIndex === row.index ? 0 : -1;\n\n return (\n <span className=\"-mb-2 -mt-1.5 flex justify-end text-right\">\n {visibleActions.map((action, i) => (\n <IconButton\n key={i}\n className={actionClassName}\n aria-label={getActionPropertyValue(action.ariaLabel, row.original)}\n appearance=\"discrete\"\n dialog={action.dialog ? action.dialog(row.original) : undefined}\n disabled={getActionPropertyValue(action.disabled, row.original)}\n icon={getActionPropertyValue(action.icon, row.original)}\n onClick={event => {\n event.stopPropagation();\n if (action.onClick) {\n action.onClick(row.original);\n }\n }}\n tabIndex={tabIndex}\n tooltip={getActionPropertyValue(action.text, row.original)}\n />\n ))}\n {visibleMoreActions.length ? (\n <IconButton\n className={actionClassName}\n aria-label={texts.table2.columns.actions.tooltip}\n appearance=\"discrete\"\n icon=\"more\"\n onClick={event => {\n event.preventDefault();\n }}\n tabIndex={tabIndex}\n menu={menuProps => (\n <Menu {...menuProps}>\n <Menu.Content>\n {visibleMoreActions.map((action, i) => (\n <Menu.Item\n key={i}\n dialog={action.dialog ? action.dialog(row.original) : undefined}\n disabled={getActionPropertyValue(action.disabled, row.original)}\n icon={getActionPropertyValue(action.icon, row.original)}\n onClick={() => {\n if (action.onClick) {\n action.onClick(row.original);\n }\n }}>\n {getActionPropertyValue(action.text, row.original)}\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu>\n )}\n tooltip={texts.table2.columns.actions.tooltip}\n />\n ) : null}\n </span>\n );\n}\n\nexport function createRowActionsColumn<TType = any>(rowActions, texts: LocalizationTexts): DisplayColumnDef<TType, any> {\n const actions: Table2RowActionProps<TType>[] = rowActions.length === 4 ? rowActions : rowActions.slice(0, 3);\n const moreActions: Table2RowActionProps<TType>[] = rowActions.slice(rowActions.length === 4 ? 4 : 3);\n\n return {\n id: COLUMN_ID_FOR_ACTIONS,\n cell: ({ row, table }) => (\n <RowActionCell<TType> row={row} actions={actions} moreActions={moreActions} texts={texts} table={table} />\n ),\n meta: {\n align: 'right',\n className: (row: Row<any>) =>\n cn(\n 'items-center print:opacity-0 group-[[aria-current]]/row:sticky group-hover/row:sticky right-0 bg-transparent !px-1',\n {\n 'group-[[aria-current]]/row:!shadow-[-6px_0px_6px_theme(colors.grey.200)]': !row.getIsSelected(),\n 'shadow-[-6px_0px_6px_theme(colors.blue.100)]': row.getIsSelected(),\n }\n ),\n disableTruncation: true,\n headerClassName: 'hover:!bg-white !px-1',\n },\n // sizing\n enableResizing: false,\n };\n}\n"],"names":["COLUMN_ID_FOR_DRAGGABLE","COLUMN_ID_FOR_SELECTION","COLUMN_ID_FOR_EXPANSION","COLUMN_ID_FOR_ACTIONS","isInternalColumn","id","MIN_COLUMN_SIZE","toggleBetween","fromRowIndex","toRowIndex","fromIndex","toIndex","createRowDraggableColumn","onRowDrag","texts","cell","row","table","meta","options","GHOST_ELEMENT_ID","onDragStart","event","rows","getIsSelected","getSelectedRowModel","setDragging","reduce","dragging","rowBeingDragged","data","map","original","dataTransfer","setData","JSON","stringify","showPlaceholder","text","ghost","document","createElement","className","innerText","body","appendChild","setDragImage","setDataTransfer","onDragEnd","getElementById","remove","React","draggable","Icon","table2","columns","drag","tooltip","name","align","disableTruncation","headerClassName","enableResizing","size","createRowSelectionColumn","enableMultipleRowSelection","lastSelectedRowIndex","tableRef","header","Tooltip","title","getIsAllPageRowsSelected","select","deselectAll","selectAll","Shortcut","keys","Checkbox","checked","indeterminate","getIsSomePageRowsSelected","onChange","toggleAllPageRowsSelected","onClick","current","focus","tabIndex","handleClick","stopPropagation","shiftKey","index","getRowModel","slice","forEach","toggleSelected","setActiveRowIndex","deselect","role","type","createRowExpansionColumn","getIsSomeRowsExpanded","expansion","collapseAll","expandAll","IconButton","appearance","icon","toggleAllRowsExpanded","getIsExpanded","collapse","expand","toggleExpanded","getActionPropertyValue","property","RowActionCell","actions","moreActions","isVisible","action","visible","visibleActions","filter","visibleMoreActions","actionClassName","activeRowIndex","i","key","ariaLabel","dialog","undefined","disabled","length","preventDefault","menu","menuProps","Menu","Content","Item","createRowActionsColumn","rowActions","cn"],"mappings":"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"}
1
+ {"version":3,"file":"columns.js","sources":["../../../../../../../../src/components/Table2/utilities/columns.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { CellContext, DisplayColumnDef, Row, TableMeta } from '@tanstack/react-table';\nimport { Checkbox } from '../../Checkbox/Checkbox';\nimport { IconButton } from '../../IconButton/IconButton';\nimport { Shortcut } from '../../Shortcut/Shortcut';\nimport { Tooltip } from '../../Tooltip/Tooltip';\nimport { RowDragHandler, Table2RowActionProps } from '../types';\nimport { Menu } from '../../Menu/Menu';\nimport { Icon } from '../../Icon/Icon';\nimport { LocalizationTexts } from '../../Provider/Localization';\nimport { useRowContext } from '../components/row/Context';\n\nexport const COLUMN_ID_FOR_DRAGGABLE = '__draggable';\nexport const COLUMN_ID_FOR_SELECTION = '__select';\nexport const COLUMN_ID_FOR_EXPANSION = '__expansion';\nexport const COLUMN_ID_FOR_ACTIONS = '__actions';\n\nexport const isInternalColumn = (id: string) =>\n id === COLUMN_ID_FOR_SELECTION ||\n id === COLUMN_ID_FOR_EXPANSION ||\n id === COLUMN_ID_FOR_ACTIONS ||\n id === COLUMN_ID_FOR_DRAGGABLE;\n\nexport const MIN_COLUMN_SIZE = 80; // accounts for padding and sort controls\n\nconst toggleBetween = (fromRowIndex: number, toRowIndex: number): [number, number] => {\n const fromIndex = toRowIndex < fromRowIndex ? toRowIndex : fromRowIndex;\n const toIndex = toRowIndex > fromRowIndex ? toRowIndex : fromRowIndex;\n\n return [fromIndex, toIndex];\n};\n\nexport function createRowDraggableColumn<TType = any>(\n onRowDrag: RowDragHandler<TType>,\n texts: LocalizationTexts\n): DisplayColumnDef<TType, any> {\n return {\n id: COLUMN_ID_FOR_DRAGGABLE,\n cell: ({ row, table }) => {\n const meta = table.options.meta as TableMeta<any>;\n const GHOST_ELEMENT_ID = 'taco_table_dragging';\n\n const onDragStart = (event: React.DragEvent): void => {\n const rows = row.getIsSelected() ? table.getSelectedRowModel().rows : [row, ...table.getSelectedRowModel().rows];\n\n meta.setDragging(rows.reduce((dragging, rowBeingDragged) => ({ ...dragging, [rowBeingDragged.id]: true }), {}));\n\n const data = rows.map(row => row.original);\n // set a default data value so that the consumer doesn't have to\n event.dataTransfer.setData('text', JSON.stringify(data));\n\n const showPlaceholder = (text: string) => {\n const ghost = document.createElement('div');\n ghost.id = GHOST_ELEMENT_ID;\n ghost.className = 'wcag-blue rounded flex w-48 p-4 absolute -ml-[100vw]';\n ghost.innerText = text;\n document.body.appendChild(ghost);\n event.dataTransfer.setDragImage(ghost, 0, 0);\n };\n\n const setDataTransfer = (text: string) => event.dataTransfer.setData('text', text);\n\n onRowDrag(data, showPlaceholder, setDataTransfer);\n };\n\n const onDragEnd = (): void => {\n document.getElementById(GHOST_ELEMENT_ID)?.remove();\n meta.setDragging({});\n };\n\n return (\n <div draggable onDragStart={onDragStart} onDragEnd={onDragEnd}>\n <Icon\n aria-label={texts.table2.columns.drag.tooltip}\n name=\"drag\"\n className=\"text-grey-darkest invisible w-[20px] cursor-grab active:cursor-grabbing group-hover/row:visible group-[[aria-grabbed]]/row:text-white\"\n />\n </div>\n );\n },\n meta: {\n align: 'center',\n className: 'items-center !px-0',\n disableTruncation: true,\n headerClassName: 'items-center !px-0',\n },\n // sizing\n enableResizing: false,\n size: 10,\n };\n}\n\nconst SelectCell = React.memo(({ lastSelectedRowIndex, rowIndex, isSelected, table, tableRef, texts, toggleSelected }: any) => {\n const meta = table.options.meta as TableMeta<any>;\n\n const handleClick = (event: React.MouseEvent): void => {\n event.stopPropagation();\n\n if (event.shiftKey) {\n const [fromIndex, toIndex] = toggleBetween(lastSelectedRowIndex?.current || 0, rowIndex);\n\n table\n .getRowModel()\n .rows.slice(fromIndex, toIndex + 1)\n .forEach(row => row.toggleSelected(true));\n } else {\n toggleSelected();\n }\n\n lastSelectedRowIndex.current = rowIndex;\n meta.setActiveRowIndex(rowIndex);\n tableRef.current?.focus();\n };\n\n return (\n <Tooltip\n title={\n <>\n {isSelected ? texts.table2.columns.select.select : texts.table2.columns.select.deselect}\n <Shortcut className=\"ml-2\" keys={['Space']} />\n </>\n }>\n <Checkbox\n aria-label={isSelected ? texts.table2.columns.select.select : texts.table2.columns.select.deselect}\n className=\"hover:border-blue !mt-[0.45rem]\"\n checked={isSelected}\n onClick={handleClick}\n // this is necessary to remove console spam from eslint\n onChange={() => false}\n tabIndex={-1}\n />\n </Tooltip>\n );\n});\nexport function createRowSelectionColumn<TType = any>(\n enableMultipleRowSelection: boolean,\n lastSelectedRowIndex: React.MutableRefObject<number | undefined>,\n onRowDrag: RowDragHandler<TType> | undefined,\n tableRef: React.RefObject<HTMLDivElement>,\n texts: LocalizationTexts\n): DisplayColumnDef<TType, any> {\n let header;\n let cell;\n\n if (enableMultipleRowSelection) {\n header = ({ table }) => (\n <Tooltip\n title={\n <>\n {table.getIsAllPageRowsSelected()\n ? texts.table2.columns.select.deselectAll\n : texts.table2.columns.select.selectAll}\n <Shortcut className=\"ml-2\" keys={['Ctrl', 'A']} />\n </>\n }>\n <Checkbox\n aria-label={\n table.getIsAllPageRowsSelected()\n ? texts.table2.columns.select.deselectAll\n : texts.table2.columns.select.selectAll\n }\n className=\"hover:border-blue !mt-0\"\n checked={table.getIsAllPageRowsSelected()}\n indeterminate={table.getIsSomePageRowsSelected()}\n onChange={checked => table.toggleAllPageRowsSelected(checked)}\n onClick={() => {\n tableRef.current?.focus();\n }}\n tabIndex={-1}\n />\n </Tooltip>\n );\n cell = ({ row, table }) => (\n <SelectCell\n lastSelectedRowIndex={lastSelectedRowIndex}\n rowIndex={row.index}\n isSelected={row.getIsSelected()}\n table={table}\n tableRef={tableRef}\n texts={texts}\n toggleSelected={row.toggleSelected}\n />\n );\n } else {\n cell = ({ row, table }) => {\n const meta = table.options.meta as TableMeta<any>;\n const className =\n 'border-grey-300 focus:yt-focus flex h-5 w-5 mt-[0.45rem] flex-shrink-0 items-center justify-center self-start rounded-full border-2 bg-white hover:border-[5px] aria-checked:border-blue-500 aria-checked:bg-blue-500 hover:aria-checked:border-blue-300';\n\n const handleClick = (event: React.MouseEvent): void => {\n event.stopPropagation();\n row.toggleSelected();\n meta.setActiveRowIndex(row.index);\n tableRef.current?.focus();\n };\n\n return (\n <button\n className={className}\n aria-checked={row.getIsSelected()}\n onClick={handleClick}\n role=\"radio\"\n tabIndex={-1}\n type=\"button\">\n {row.getIsSelected() ? <span className=\"h-2.5 w-2.5 rounded-full bg-white\" /> : null}\n </button>\n );\n };\n }\n\n return {\n id: COLUMN_ID_FOR_SELECTION,\n header,\n cell,\n meta: {\n align: 'center',\n className: onRowDrag ? '!pl-0 !pr-3' : '!px-3',\n disableTruncation: true,\n headerClassName: onRowDrag ? '!pl-0 !pr-3' : '!px-3',\n },\n // sizing\n enableResizing: false,\n size: 46,\n };\n}\n\nconst ExpandCell = React.memo(({ isExpanded, toggleExpanded, texts }: any) => {\n return (\n <Tooltip\n title={\n <>\n {isExpanded ? texts.table2.columns.expansion.collapse : texts.table2.columns.expansion.expand}\n <Shortcut className=\"ml-2\" keys={['Ctrl', isExpanded ? '←' : '→']} />\n </>\n }>\n <IconButton\n title={isExpanded ? texts.table2.columns.expansion.collapse : texts.table2.columns.expansion.expand}\n appearance=\"discrete\"\n icon={isExpanded ? 'chevron-down' : 'chevron-right'}\n onClick={event => {\n event.stopPropagation();\n toggleExpanded();\n }}\n tabIndex={-1}\n />\n </Tooltip>\n );\n});\n\nexport function createRowExpansionColumn<TType = any>(texts: LocalizationTexts): DisplayColumnDef<TType, any> {\n return {\n id: COLUMN_ID_FOR_EXPANSION,\n header: ({ table }) => (\n <Tooltip\n title={\n table.getIsSomeRowsExpanded()\n ? texts.table2.columns.expansion.collapseAll\n : texts.table2.columns.expansion.expandAll\n }>\n <IconButton\n title={\n table.getIsSomeRowsExpanded()\n ? texts.table2.columns.expansion.collapseAll\n : texts.table2.columns.expansion.expandAll\n }\n appearance=\"discrete\"\n className=\"-mb-2 -mt-1.5\"\n icon={table.getIsSomeRowsExpanded() ? 'chevron-down-double' : 'chevron-right-double'}\n onClick={event => {\n event.stopPropagation();\n table.toggleAllRowsExpanded(table.getIsSomeRowsExpanded() ? false : true);\n }}\n tabIndex={-1}\n />\n </Tooltip>\n ),\n cell: ({ row }: CellContext<TType, any>) => (\n <ExpandCell isExpanded={row.getIsExpanded()} toggleExpanded={row.toggleExpanded} texts={texts} />\n ),\n\n meta: {\n align: 'center',\n className: 'items-center !p-0',\n disableTruncation: true,\n headerClassName: 'items-center hover:!bg-white !p-0',\n },\n // sizing\n enableResizing: false,\n size: 36,\n };\n}\n\nconst getActionPropertyValue = (property, row) => (typeof property === 'function' ? property(row) : property);\n\nconst RowActionsCell = React.memo(({ row, actions, moreActions, table, texts }: any) => {\n const { isActive, isHovered } = useRowContext();\n\n if (!isHovered && !isActive) {\n return null;\n }\n\n const isVisible = (action: Table2RowActionProps<any>) =>\n typeof action.visible !== 'undefined'\n ? typeof action.visible === 'function'\n ? action.visible(row.original)\n : action.visible\n : true;\n\n const visibleActions = actions.filter(isVisible);\n const visibleMoreActions = moreActions.filter(isVisible);\n\n // If the row is not the active row or the hovered row then actions are hidden.\n const actionClassName = 'group-hover/row:flex group-[[aria-current]]/row:flex hidden';\n\n // only actions in the active row should be tabbable\n const tabIndex = table.options.meta.activeRowIndex === row.index ? 0 : -1;\n\n return (\n <span className=\"-mb-2 -mt-1.5 flex justify-end text-right\">\n {visibleActions.map((action, i) => (\n <IconButton\n key={i}\n className={actionClassName}\n aria-label={getActionPropertyValue(action.ariaLabel, row.original)}\n appearance=\"discrete\"\n dialog={action.dialog ? action.dialog(row.original) : undefined}\n disabled={getActionPropertyValue(action.disabled, row.original)}\n icon={getActionPropertyValue(action.icon, row.original)}\n onClick={event => {\n event.stopPropagation();\n if (action.onClick) {\n action.onClick(row.original);\n }\n }}\n tabIndex={tabIndex}\n tooltip={getActionPropertyValue(action.text, row.original)}\n />\n ))}\n {visibleMoreActions.length ? (\n <IconButton\n className={actionClassName}\n aria-label={texts.table2.columns.actions.tooltip}\n appearance=\"discrete\"\n icon=\"more\"\n onClick={event => {\n event.preventDefault();\n }}\n tabIndex={tabIndex}\n menu={menuProps => (\n <Menu {...menuProps}>\n <Menu.Content>\n {visibleMoreActions.map((action, i) => (\n <Menu.Item\n key={i}\n dialog={action.dialog ? action.dialog(row.original) : undefined}\n disabled={getActionPropertyValue(action.disabled, row.original)}\n icon={getActionPropertyValue(action.icon, row.original)}\n onClick={() => {\n if (action.onClick) {\n action.onClick(row.original);\n }\n }}>\n {getActionPropertyValue(action.text, row.original)}\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu>\n )}\n tooltip={texts.table2.columns.actions.tooltip}\n />\n ) : null}\n </span>\n );\n});\n\nexport function createRowActionsColumn<TType = any>(rowActions, texts: LocalizationTexts): DisplayColumnDef<TType, any> {\n const actions: Table2RowActionProps<TType>[] = rowActions.length === 4 ? rowActions : rowActions.slice(0, 3);\n const moreActions: Table2RowActionProps<TType>[] = rowActions.slice(rowActions.length === 4 ? 4 : 3);\n\n return {\n id: COLUMN_ID_FOR_ACTIONS,\n cell: ({ row, table }) => (\n <RowActionsCell row={row} actions={actions} moreActions={moreActions} texts={texts} table={table} />\n ),\n meta: {\n align: 'right',\n className: (row: Row<any>) =>\n cn(\n 'items-center print:opacity-0 group-[[aria-current]]/row:sticky group-hover/row:sticky right-0 bg-transparent !px-1',\n {\n 'group-[[aria-current]]/row:!shadow-[-6px_0px_6px_theme(colors.grey.200)] group-hover/row:!shadow-[-6px_0px_6px_theme(colors.grey.100)]':\n !row.getIsSelected(),\n 'shadow-[-6px_0px_6px_theme(colors.blue.100)]': row.getIsSelected(),\n }\n ),\n disableTruncation: true,\n headerClassName: 'hover:!bg-white !px-1',\n },\n // sizing\n enableResizing: false,\n };\n}\n"],"names":["COLUMN_ID_FOR_DRAGGABLE","COLUMN_ID_FOR_SELECTION","COLUMN_ID_FOR_EXPANSION","COLUMN_ID_FOR_ACTIONS","isInternalColumn","id","MIN_COLUMN_SIZE","toggleBetween","fromRowIndex","toRowIndex","fromIndex","toIndex","createRowDraggableColumn","onRowDrag","texts","cell","row","table","meta","options","GHOST_ELEMENT_ID","onDragStart","event","rows","getIsSelected","getSelectedRowModel","setDragging","reduce","dragging","rowBeingDragged","data","map","original","dataTransfer","setData","JSON","stringify","showPlaceholder","text","ghost","document","createElement","className","innerText","body","appendChild","setDragImage","setDataTransfer","onDragEnd","getElementById","remove","React","draggable","Icon","table2","columns","drag","tooltip","name","align","disableTruncation","headerClassName","enableResizing","size","SelectCell","memo","lastSelectedRowIndex","rowIndex","isSelected","tableRef","toggleSelected","handleClick","stopPropagation","shiftKey","current","getRowModel","slice","forEach","setActiveRowIndex","focus","Tooltip","title","select","deselect","Shortcut","keys","Checkbox","checked","onClick","onChange","tabIndex","createRowSelectionColumn","enableMultipleRowSelection","header","getIsAllPageRowsSelected","deselectAll","selectAll","indeterminate","getIsSomePageRowsSelected","toggleAllPageRowsSelected","index","role","type","ExpandCell","isExpanded","toggleExpanded","expansion","collapse","expand","IconButton","appearance","icon","createRowExpansionColumn","getIsSomeRowsExpanded","collapseAll","expandAll","toggleAllRowsExpanded","getIsExpanded","getActionPropertyValue","property","RowActionsCell","actions","moreActions","isActive","isHovered","useRowContext","isVisible","action","visible","visibleActions","filter","visibleMoreActions","actionClassName","activeRowIndex","i","key","ariaLabel","dialog","undefined","disabled","length","preventDefault","menu","menuProps","Menu","Content","Item","createRowActionsColumn","rowActions","cn"],"mappings":"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"}