@economic/taco 1.30.2 → 1.31.1
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/components/Button/Button.d.ts +1 -0
- package/dist/components/Header/components/Button.d.ts +1 -1
- package/dist/components/IconButton/IconButton.d.ts +2 -2
- package/dist/components/Menu/components/Item.d.ts +0 -1
- package/dist/components/Shortcut/Shortcut.d.ts +2 -1
- package/dist/components/Table2/Table2.d.ts +1 -1
- package/dist/components/Table2/hooks/useColumnDefinitions.d.ts +3 -2
- package/dist/components/Table2/hooks/useTable.d.ts +0 -1
- package/dist/components/Table2/types.d.ts +3 -11
- package/dist/components/Table2/utilities/columns.d.ts +1 -1
- package/dist/esm/packages/taco/src/components/Combobox/useCombobox.js +1 -1
- package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js +1 -1
- package/dist/esm/packages/taco/src/components/Dialog/components/Content.js +1 -1
- package/dist/esm/packages/taco/src/components/Drawer/components/Content.js +3 -7
- package/dist/esm/packages/taco/src/components/Drawer/components/Content.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Header/components/PrimaryNavigation.js +1 -1
- package/dist/esm/packages/taco/src/components/Input/Input.js +1 -1
- package/dist/esm/packages/taco/src/components/Listbox/ScrollableList.js +1 -1
- package/dist/esm/packages/taco/src/components/Listbox/useListbox.js +1 -1
- package/dist/esm/packages/taco/src/components/Listbox/useMultiListbox.js +1 -1
- package/dist/esm/packages/taco/src/components/Menu/components/Item.js +9 -8
- package/dist/esm/packages/taco/src/components/Menu/components/Item.js.map +1 -1
- package/dist/esm/packages/taco/src/components/OverflowGroup/OverflowGroup.js +1 -1
- package/dist/esm/packages/taco/src/components/SearchInput/SearchInput.js +1 -1
- package/dist/esm/packages/taco/src/components/Select/useSelect.js +1 -1
- package/dist/esm/packages/taco/src/components/Select2/Select2.js +1 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Trigger.js +1 -1
- package/dist/esm/packages/taco/src/components/Shortcut/Shortcut.js +30 -6
- package/dist/esm/packages/taco/src/components/Shortcut/Shortcut.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table/components/WindowedTable.js +1 -1
- package/dist/esm/packages/taco/src/components/Table2/Table2.js +3 -12
- package/dist/esm/packages/taco/src/components/Table2/Table2.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/components/EditModeButton.js +13 -9
- package/dist/esm/packages/taco/src/components/Table2/components/EditModeButton.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/components/Search.js +10 -8
- package/dist/esm/packages/taco/src/components/Table2/components/Search.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/components/filters/FiltersButton.js +14 -8
- package/dist/esm/packages/taco/src/components/Table2/components/filters/FiltersButton.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/hooks/useColumnDefinitions.js +1 -1
- package/dist/esm/packages/taco/src/components/Table2/hooks/useColumnDefinitions.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/hooks/useTable.js +4 -11
- package/dist/esm/packages/taco/src/components/Table2/hooks/useTable.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/types.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/utilities/columns.js +36 -52
- package/dist/esm/packages/taco/src/components/Table2/utilities/columns.js.map +1 -1
- package/dist/esm/packages/taco/src/hooks/useGlobalKeyDown.js +15 -0
- package/dist/esm/packages/taco/src/hooks/useGlobalKeyDown.js.map +1 -0
- package/dist/esm/packages/taco/src/index.js +3 -2
- package/dist/esm/packages/taco/src/index.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Button.js +21 -2
- package/dist/esm/packages/taco/src/primitives/Button.js.map +1 -1
- package/dist/esm/packages/taco/src/utils/keyboard.js +35 -0
- package/dist/esm/packages/taco/src/utils/keyboard.js.map +1 -0
- package/dist/hooks/useGlobalKeyDown.d.ts +2 -0
- package/dist/index.d.ts +1 -0
- package/dist/primitives/Button.d.ts +3 -0
- package/dist/taco.cjs.development.js +210 -158
- package/dist/taco.cjs.development.js.map +1 -1
- package/dist/taco.cjs.production.min.js +1 -1
- package/dist/taco.cjs.production.min.js.map +1 -1
- package/dist/utils/keyboard.d.ts +8 -0
- package/package.json +2 -2
- package/types.json +22 -122
- package/dist/esm/packages/taco/src/hooks/useGlobalKeyboardShortcut.js +0 -13
- package/dist/esm/packages/taco/src/hooks/useGlobalKeyboardShortcut.js.map +0 -1
- package/dist/hooks/useGlobalKeyboardShortcut.d.ts +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useColumnDefinitions.js","sources":["../../../../../../../../src/components/Table2/hooks/useColumnDefinitions.tsx"],"sourcesContent":["import React from 'react';\nimport {\n createColumnHelper,\n ColumnSort,\n ColumnSizingState,\n Row,\n RowData,\n VisibilityState,\n SortingFnOption,\n Table,\n} from '@tanstack/react-table';\nimport {\n CellAlignment,\n ColumnDataType,\n RowDragHandler,\n RowExpansionRenderer,\n Table2Children,\n Table2ColumnControlRenderer,\n Table2ColumnFooterRenderer,\n Table2ColumnHeaderMenu,\n Table2ColumnProps,\n Table2RowActionProps,\n} from '../types';\nimport {\n createRowActionsColumn,\n createRowDraggableColumn,\n createRowExpansionColumn,\n createRowSelectionColumn,\n MIN_COLUMN_SIZE,\n} from '../utilities/columns';\nimport { useLocalization } from '../../Provider/Localization';\n\ndeclare module '@tanstack/table-core' {\n interface ColumnMeta<TData extends RowData, TValue> {\n align?: CellAlignment;\n className?: string | ((row: Row<TData>, table: Table<TData>) => string);\n control?: Table2ColumnControlRenderer;\n dataType?: ColumnDataType;\n disableReordering?: boolean;\n defaultWidth?: number;\n headerClassName?: string;\n menu?: Table2ColumnHeaderMenu;\n tooltip?: string;\n }\n}\n\ntype useColumnDefinitionsOptions<TType> = {\n actionsForRow: Table2RowActionProps<TType>[];\n enableColumnFiltering: boolean;\n enableColumnHiding: boolean;\n enableColumnFreezing: boolean;\n enableRowExpansion: boolean;\n enableRowSelection: boolean;\n enableMultipleRowSelection: boolean;\n expandedRowRenderer?: RowExpansionRenderer<TType>;\n onRowDrag?: RowDragHandler<TType>;\n};\n\nexport function useColumnDefinitions<TType = any>(\n children: Table2Children,\n options: useColumnDefinitionsOptions<TType>,\n tableRef: React.RefObject<HTMLDivElement>\n) {\n const { texts } = useLocalization();\n const lastSelectedRowIndex = React.useRef<number>();\n const columnHelper = createColumnHelper<TType>();\n\n return React.useMemo(() => {\n let internalFrozenColumnCount = 0;\n // cannot be typed correctly until https://github.com/TanStack/table/discussions/4530 is resolved\n const columns: any[] = [];\n const defaultColumnSizing: ColumnSizingState = {};\n const defaultColumnVisibility: VisibilityState = {};\n const defaultSorting: ColumnSort[] = [];\n const footers: Record<string, Table2ColumnFooterRenderer> = {};\n\n (React.Children.toArray(children) as React.ReactElement<Table2ColumnProps<TType>>[])\n .filter((child: any) => !!child)\n .forEach(child => {\n if (React.isValidElement(child)) {\n if (child.props.defaultWidth) {\n defaultColumnSizing[child.props.accessor] = child.props.defaultWidth;\n }\n\n if (child.props.defaultHidden && options.enableColumnHiding) {\n defaultColumnVisibility[child.props.accessor] = false;\n }\n\n if (child.props.sort !== undefined) {\n defaultSorting.push({\n id: child.props.accessor,\n desc: child.props.sort === 'desc',\n });\n }\n\n if (child.props.footer) {\n footers[child.props.accessor] = child.props.footer;\n }\n\n columns.push({\n accessorKey: child.props.accessor,\n id: child.props.accessor,\n cell: props => {\n let value = props.getValue();\n\n if (typeof child.props.renderer === 'function') {\n value = child.props.renderer(value, props.row.original);\n }\n\n if (typeof value === 'string' || typeof value === 'number') {\n return <span className=\"truncate\">{value}</span>;\n }\n\n return value ?? null;\n },\n header: child.props.header,\n meta: {\n align: child.props.align,\n className: child.props.className,\n control: child.props.control,\n dataType: child.props.dataType,\n defaultWidth: child.props.defaultWidth,\n disableReordering: child.props.disableReordering,\n menu: child.props.menu,\n tooltip: child.props.tooltip,\n },\n enableHiding: !child.props.disableHiding,\n // filtering\n enableColumnFilter: !child.props.disableFiltering,\n filterFn:\n options.enableColumnFiltering && !child.props.disableFiltering ? ('tacoFilter' as any) : undefined,\n // sizing\n enableResizing: !child.props.disableResizing,\n minSize: child.props.minWidth ?? MIN_COLUMN_SIZE,\n size: child.props.defaultWidth,\n // sorting\n enableSorting: !child.props.disableSorting,\n sortingFn: getSortingFn(child.props.dataType),\n });\n }\n });\n\n if (options.enableRowExpansion && options.expandedRowRenderer) {\n columns.unshift(columnHelper.display(createRowExpansionColumn(options.expandedRowRenderer, texts)));\n internalFrozenColumnCount++;\n }\n\n if (options.enableRowSelection) {\n columns.unshift(\n columnHelper.display(\n createRowSelectionColumn(\n options.enableMultipleRowSelection,\n lastSelectedRowIndex,\n options.onRowDrag,\n tableRef,\n texts\n )\n )\n );\n internalFrozenColumnCount++;\n }\n\n if (options.onRowDrag) {\n columns.unshift(columnHelper.display(createRowDraggableColumn(options.onRowDrag, texts)));\n internalFrozenColumnCount++;\n }\n\n if (options.actionsForRow?.length) {\n columns.push(columnHelper.display(createRowActionsColumn(options.actionsForRow, texts)));\n }\n\n return { columns, internalFrozenColumnCount, defaultColumnSizing, defaultColumnVisibility, defaultSorting, footers };\n }, [children]);\n}\n\nconst getSortingFn = (dataType?: ColumnDataType): SortingFnOption<any> => {\n if (dataType && dataType !== 'boolean') {\n return dataType;\n }\n\n return 'auto';\n};\n"],"names":["useColumnDefinitions","children","options","tableRef","texts","useLocalization","lastSelectedRowIndex","React","useRef","columnHelper","createColumnHelper","useMemo","internalFrozenColumnCount","columns","defaultColumnSizing","defaultColumnVisibility","defaultSorting","footers","Children","toArray","filter","child","forEach","isValidElement","props","defaultWidth","accessor","defaultHidden","enableColumnHiding","sort","undefined","push","id","desc","footer","accessorKey","cell","value","getValue","renderer","row","original","className","header","meta","align","control","dataType","disableReordering","menu","tooltip","enableHiding","disableHiding","enableColumnFilter","disableFiltering","filterFn","enableColumnFiltering","enableResizing","disableResizing","minSize","minWidth","MIN_COLUMN_SIZE","size","enableSorting","disableSorting","sortingFn","getSortingFn","enableRowExpansion","expandedRowRenderer","unshift","display","createRowExpansionColumn","enableRowSelection","createRowSelectionColumn","enableMultipleRowSelection","onRowDrag","createRowDraggableColumn","actionsForRow","length","createRowActionsColumn"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"useColumnDefinitions.js","sources":["../../../../../../../../src/components/Table2/hooks/useColumnDefinitions.tsx"],"sourcesContent":["import React from 'react';\nimport {\n createColumnHelper,\n ColumnSort,\n ColumnSizingState,\n Row,\n RowData,\n VisibilityState,\n SortingFnOption,\n Table,\n} from '@tanstack/react-table';\nimport {\n CellAlignment,\n ColumnDataType,\n RowDragHandler,\n RowExpansionRenderer,\n Table2Children,\n Table2ColumnControlRenderer,\n Table2ColumnFooterRenderer,\n Table2ColumnHeaderMenu,\n Table2ColumnProps,\n Table2RowActionRenderer,\n} from '../types';\nimport {\n createRowActionsColumn,\n createRowDraggableColumn,\n createRowExpansionColumn,\n createRowSelectionColumn,\n MIN_COLUMN_SIZE,\n} from '../utilities/columns';\nimport { useLocalization } from '../../Provider/Localization';\n\ndeclare module '@tanstack/table-core' {\n interface ColumnMeta<TData extends RowData, TValue> {\n align?: CellAlignment;\n className?: string | ((row: Row<TData>, table: Table<TData>) => string);\n control?: Table2ColumnControlRenderer;\n dataType?: ColumnDataType;\n disableReordering?: boolean;\n defaultWidth?: number;\n headerClassName?: string;\n menu?: Table2ColumnHeaderMenu;\n tooltip?: string;\n }\n}\n\ntype useColumnDefinitionsOptions<TType> = {\n actionsForRow: Table2RowActionRenderer<TType>[];\n actionsForRowLength: number;\n enableColumnFiltering: boolean;\n enableColumnHiding: boolean;\n enableColumnFreezing: boolean;\n enableRowExpansion: boolean;\n enableRowSelection: boolean;\n enableMultipleRowSelection: boolean;\n expandedRowRenderer?: RowExpansionRenderer<TType>;\n onRowDrag?: RowDragHandler<TType>;\n};\n\nexport function useColumnDefinitions<TType = any>(\n children: Table2Children,\n options: useColumnDefinitionsOptions<TType>,\n tableRef: React.RefObject<HTMLDivElement>\n) {\n const { texts } = useLocalization();\n const lastSelectedRowIndex = React.useRef<number>();\n const columnHelper = createColumnHelper<TType>();\n\n return React.useMemo(() => {\n let internalFrozenColumnCount = 0;\n // cannot be typed correctly until https://github.com/TanStack/table/discussions/4530 is resolved\n const columns: any[] = [];\n const defaultColumnSizing: ColumnSizingState = {};\n const defaultColumnVisibility: VisibilityState = {};\n const defaultSorting: ColumnSort[] = [];\n const footers: Record<string, Table2ColumnFooterRenderer> = {};\n\n (React.Children.toArray(children) as React.ReactElement<Table2ColumnProps<TType>>[])\n .filter((child: any) => !!child)\n .forEach(child => {\n if (React.isValidElement(child)) {\n if (child.props.defaultWidth) {\n defaultColumnSizing[child.props.accessor] = child.props.defaultWidth;\n }\n\n if (child.props.defaultHidden && options.enableColumnHiding) {\n defaultColumnVisibility[child.props.accessor] = false;\n }\n\n if (child.props.sort !== undefined) {\n defaultSorting.push({\n id: child.props.accessor,\n desc: child.props.sort === 'desc',\n });\n }\n\n if (child.props.footer) {\n footers[child.props.accessor] = child.props.footer;\n }\n\n columns.push({\n accessorKey: child.props.accessor,\n id: child.props.accessor,\n cell: props => {\n let value = props.getValue();\n\n if (typeof child.props.renderer === 'function') {\n value = child.props.renderer(value, props.row.original);\n }\n\n if (typeof value === 'string' || typeof value === 'number') {\n return <span className=\"truncate\">{value}</span>;\n }\n\n return value ?? null;\n },\n header: child.props.header,\n meta: {\n align: child.props.align,\n className: child.props.className,\n control: child.props.control,\n dataType: child.props.dataType,\n defaultWidth: child.props.defaultWidth,\n disableReordering: child.props.disableReordering,\n menu: child.props.menu,\n tooltip: child.props.tooltip,\n },\n enableHiding: !child.props.disableHiding,\n // filtering\n enableColumnFilter: !child.props.disableFiltering,\n filterFn:\n options.enableColumnFiltering && !child.props.disableFiltering ? ('tacoFilter' as any) : undefined,\n // sizing\n enableResizing: !child.props.disableResizing,\n minSize: child.props.minWidth ?? MIN_COLUMN_SIZE,\n size: child.props.defaultWidth,\n // sorting\n enableSorting: !child.props.disableSorting,\n sortingFn: getSortingFn(child.props.dataType),\n });\n }\n });\n\n if (options.enableRowExpansion && options.expandedRowRenderer) {\n columns.unshift(columnHelper.display(createRowExpansionColumn(options.expandedRowRenderer, texts)));\n internalFrozenColumnCount++;\n }\n\n if (options.enableRowSelection) {\n columns.unshift(\n columnHelper.display(\n createRowSelectionColumn(\n options.enableMultipleRowSelection,\n lastSelectedRowIndex,\n options.onRowDrag,\n tableRef,\n texts\n )\n )\n );\n internalFrozenColumnCount++;\n }\n\n if (options.onRowDrag) {\n columns.unshift(columnHelper.display(createRowDraggableColumn(options.onRowDrag, texts)));\n internalFrozenColumnCount++;\n }\n\n if (options.actionsForRow?.length) {\n columns.push(columnHelper.display(createRowActionsColumn(options.actionsForRow, options.actionsForRowLength, texts)));\n }\n\n return { columns, internalFrozenColumnCount, defaultColumnSizing, defaultColumnVisibility, defaultSorting, footers };\n }, [children]);\n}\n\nconst getSortingFn = (dataType?: ColumnDataType): SortingFnOption<any> => {\n if (dataType && dataType !== 'boolean') {\n return dataType;\n }\n\n return 'auto';\n};\n"],"names":["useColumnDefinitions","children","options","tableRef","texts","useLocalization","lastSelectedRowIndex","React","useRef","columnHelper","createColumnHelper","useMemo","internalFrozenColumnCount","columns","defaultColumnSizing","defaultColumnVisibility","defaultSorting","footers","Children","toArray","filter","child","forEach","isValidElement","props","defaultWidth","accessor","defaultHidden","enableColumnHiding","sort","undefined","push","id","desc","footer","accessorKey","cell","value","getValue","renderer","row","original","className","header","meta","align","control","dataType","disableReordering","menu","tooltip","enableHiding","disableHiding","enableColumnFilter","disableFiltering","filterFn","enableColumnFiltering","enableResizing","disableResizing","minSize","minWidth","MIN_COLUMN_SIZE","size","enableSorting","disableSorting","sortingFn","getSortingFn","enableRowExpansion","expandedRowRenderer","unshift","display","createRowExpansionColumn","enableRowSelection","createRowSelectionColumn","enableMultipleRowSelection","onRowDrag","createRowDraggableColumn","actionsForRow","length","createRowActionsColumn","actionsForRowLength"],"mappings":"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"}
|
@@ -11,10 +11,12 @@ import { useActiveRow } from './useActiveRow.js';
|
|
11
11
|
import { useActiveRowStateListener } from './listeners/useActiveRowStateListener.js';
|
12
12
|
import { useFilterStateListener } from './listeners/useFilterStateListener.js';
|
13
13
|
|
14
|
+
const ACTIONS_ON_ROW_LENGTH = 4;
|
14
15
|
function useTable(children, props, ref) {
|
15
16
|
var _settings$frozenColum, _settings$columnOrder, _settings$columnSizin, _settings$columnVisib, _settings$rowDensity;
|
16
17
|
const {
|
17
18
|
actionsForRow = [],
|
19
|
+
actionsForRowLength = ACTIONS_ON_ROW_LENGTH,
|
18
20
|
data,
|
19
21
|
defaultActiveRowIndex,
|
20
22
|
disableColumnFiltering = false,
|
@@ -53,6 +55,7 @@ function useTable(children, props, ref) {
|
|
53
55
|
footers
|
54
56
|
} = useColumnDefinitions(children, {
|
55
57
|
actionsForRow,
|
58
|
+
actionsForRowLength,
|
56
59
|
enableColumnFiltering: !disableColumnFiltering,
|
57
60
|
enableColumnHiding: !disableColumnHiding,
|
58
61
|
enableColumnFreezing: !disableColumnFreezing,
|
@@ -62,15 +65,6 @@ function useTable(children, props, ref) {
|
|
62
65
|
expandedRowRenderer,
|
63
66
|
onRowDrag
|
64
67
|
}, ref);
|
65
|
-
const actionShortcuts = actionsForRow === null || actionsForRow === void 0 ? void 0 : actionsForRow.reduce((shortcuts, action) => {
|
66
|
-
if (action.shortcutKey) {
|
67
|
-
return {
|
68
|
-
...shortcuts,
|
69
|
-
[action.shortcutKey]: action.ariaLabel
|
70
|
-
};
|
71
|
-
}
|
72
|
-
return shortcuts;
|
73
|
-
}, {});
|
74
68
|
const lastSortedOrFilteredRows = React__default.useRef(null);
|
75
69
|
const totalFrozenColumns = internalFrozenColumnCount + ((_settings$frozenColum = settings === null || settings === void 0 ? void 0 : settings.frozenColumnCount) !== null && _settings$frozenColum !== void 0 ? _settings$frozenColum : 0);
|
76
70
|
const frozenColumns = columns.slice(0, totalFrozenColumns).map(column => column.id);
|
@@ -216,8 +210,7 @@ function useTable(children, props, ref) {
|
|
216
210
|
return {
|
217
211
|
rows,
|
218
212
|
table,
|
219
|
-
footers
|
220
|
-
actionShortcuts
|
213
|
+
footers
|
221
214
|
};
|
222
215
|
}
|
223
216
|
|
@@ -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 TableOptions,\n} from '@tanstack/react-table';\nimport { RowClickHandler, RowDensity, Table2Children, Table2Props } from '../types';\nimport { useColumnDefinitions } from './useColumnDefinitions';\nimport { 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 { useIsHoverStatePaused } from '../../../hooks/useIsHoverStatePaused';\nimport { useFilterStateListener } from './listeners/useFilterStateListener';\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 enableColumnFreezing: boolean;\n enableColumnReordering: boolean;\n enableColumnHiding: boolean;\n shouldPauseSortingAndFiltering: boolean;\n setShouldPauseSortingAndFiltering: OnChangeFn<boolean>;\n shouldPauseHoverState: boolean;\n setShouldPauseHoverState: OnChangeFn<boolean>;\n frozenColumnsCount: number;\n setFrozenColumnsCount: OnChangeFn<number>;\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>(children: Table2Children, props: Table2Props<TType>, ref: React.RefObject<HTMLDivElement>) {\n const {\n actionsForRow = [],\n data,\n defaultActiveRowIndex,\n disableColumnFiltering = false,\n disableColumnHiding = false,\n disableColumnFreezing = 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\n const enableRowExpansion = !disableRowExpansion && !!expandedRowRenderer;\n const enableRowSelection = !disableRowSelection && (!!onRowSelect || !!_experimentalActionsForTable?.length);\n const enableMultipleRowSelection = !disableMultipleRowSelection && enableRowSelection;\n\n const { columns, internalFrozenColumnCount, defaultColumnSizing, defaultSorting, defaultColumnVisibility, footers } =\n useColumnDefinitions<TType>(\n children,\n {\n actionsForRow,\n enableColumnFiltering: !disableColumnFiltering,\n enableColumnHiding: !disableColumnHiding,\n enableColumnFreezing: !disableColumnFreezing,\n enableRowExpansion,\n enableRowSelection,\n enableMultipleRowSelection,\n expandedRowRenderer,\n onRowDrag,\n },\n ref\n );\n\n const actionShortcuts = actionsForRow?.reduce((shortcuts, action) => {\n if (action.shortcutKey) {\n return { ...shortcuts, [action.shortcutKey]: action.ariaLabel };\n }\n\n return shortcuts;\n }, {});\n\n const lastSortedOrFilteredRows = React.useRef<any>(null);\n const totalFrozenColumns = internalFrozenColumnCount + (settings?.frozenColumnCount ?? 0);\n const frozenColumns = columns.slice(0, totalFrozenColumns).map(column => column.id);\n\n // defaults\n const initialState: Partial<TableState> = {\n columnOrder: settings?.columnOrder ?? columns.map(column => column.id as string),\n columnPinning: {\n left: frozenColumns,\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] = useIsHoverStatePaused();\n const editMode = useEditMode(onSave);\n const [columnOffsets, setColumnOffsets] = React.useState({});\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 // Frozen column count is the count of external columns that are frozen\n const [frozenColumnsCount, setFrozenColumnsCount] = React.useState(totalFrozenColumns - internalFrozenColumnCount);\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: !disableColumnFreezing,\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 enableColumnFreezing: !disableColumnFreezing,\n enableColumnReordering: !disableColumnReordering,\n enableColumnHiding: !disableColumnHiding,\n shouldPauseHoverState,\n setShouldPauseHoverState,\n frozenColumnsCount,\n setFrozenColumnsCount,\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 useFilterStateListener<TType>(table, onRowSelect);\n useRowSelectionListener<TType>(table, onRowSelect);\n useSettingsStateListener(table, onChangeSettings);\n\n return { rows, table, footers, actionShortcuts };\n}\n"],"names":["useTable","children","props","ref","actionsForRow","data","defaultActiveRowIndex","disableColumnFiltering","disableColumnHiding","disableColumnFreezing","disableColumnReordering","disableColumnResizing","disableRowDensity","disableRowExpansion","disableRowSelection","disableMultipleRowSelection","disableSearch","disableSorting","expandedRowRenderer","manualColumnFiltering","manualSearch","manualSorting","onChangeSettings","onRowClick","onRowDrag","onRowSelect","onSave","settings","_experimentalActionsForTable","enableRowExpansion","enableRowSelection","length","enableMultipleRowSelection","columns","internalFrozenColumnCount","defaultColumnSizing","defaultSorting","defaultColumnVisibility","footers","useColumnDefinitions","enableColumnFiltering","enableColumnHiding","enableColumnFreezing","actionShortcuts","reduce","shortcuts","action","shortcutKey","ariaLabel","lastSortedOrFilteredRows","React","useRef","totalFrozenColumns","frozenColumnCount","frozenColumns","slice","map","column","id","initialState","columnOrder","columnPinning","left","right","columnSizing","columnVisibility","dataColumnStartOffset","t","e","dataColumnEndOffset","activeRow","useActiveRow","shouldPauseHoverState","setShouldPauseHoverState","useIsHoverStatePaused","editMode","useEditMode","columnOffsets","setColumnOffsets","useState","rowDensity","setRowDensity","dragging","setDragging","shouldPauseSortingAndFiltering","setShouldPauseSortingAndFiltering","shouldDisableTableActions","setShouldDisableTableActions","frozenColumnsCount","setFrozenColumnsCount","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","useFilterStateListener","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 TableOptions,\n} from '@tanstack/react-table';\nimport { RowClickHandler, RowDensity, Table2Children, Table2Props } from '../types';\nimport { useColumnDefinitions } from './useColumnDefinitions';\nimport { 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 { useIsHoverStatePaused } from '../../../hooks/useIsHoverStatePaused';\nimport { useFilterStateListener } from './listeners/useFilterStateListener';\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 enableColumnFreezing: boolean;\n enableColumnReordering: boolean;\n enableColumnHiding: boolean;\n shouldPauseSortingAndFiltering: boolean;\n setShouldPauseSortingAndFiltering: OnChangeFn<boolean>;\n shouldPauseHoverState: boolean;\n setShouldPauseHoverState: OnChangeFn<boolean>;\n frozenColumnsCount: number;\n setFrozenColumnsCount: OnChangeFn<number>;\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\nconst ACTIONS_ON_ROW_LENGTH = 4;\n\nexport function useTable<TType = any>(children: Table2Children, props: Table2Props<TType>, ref: React.RefObject<HTMLDivElement>) {\n const {\n actionsForRow = [],\n actionsForRowLength = ACTIONS_ON_ROW_LENGTH,\n data,\n defaultActiveRowIndex,\n disableColumnFiltering = false,\n disableColumnHiding = false,\n disableColumnFreezing = 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\n const enableRowExpansion = !disableRowExpansion && !!expandedRowRenderer;\n const enableRowSelection = !disableRowSelection && (!!onRowSelect || !!_experimentalActionsForTable?.length);\n const enableMultipleRowSelection = !disableMultipleRowSelection && enableRowSelection;\n\n const { columns, internalFrozenColumnCount, defaultColumnSizing, defaultSorting, defaultColumnVisibility, footers } =\n useColumnDefinitions<TType>(\n children,\n {\n actionsForRow,\n actionsForRowLength,\n enableColumnFiltering: !disableColumnFiltering,\n enableColumnHiding: !disableColumnHiding,\n enableColumnFreezing: !disableColumnFreezing,\n enableRowExpansion,\n enableRowSelection,\n enableMultipleRowSelection,\n expandedRowRenderer,\n onRowDrag,\n },\n ref\n );\n\n const lastSortedOrFilteredRows = React.useRef<any>(null);\n const totalFrozenColumns = internalFrozenColumnCount + (settings?.frozenColumnCount ?? 0);\n const frozenColumns = columns.slice(0, totalFrozenColumns).map(column => column.id);\n\n // defaults\n const initialState: Partial<TableState> = {\n columnOrder: settings?.columnOrder ?? columns.map(column => column.id as string),\n columnPinning: {\n left: frozenColumns,\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] = useIsHoverStatePaused();\n const editMode = useEditMode(onSave);\n const [columnOffsets, setColumnOffsets] = React.useState({});\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 // Frozen column count is the count of external columns that are frozen\n const [frozenColumnsCount, setFrozenColumnsCount] = React.useState(totalFrozenColumns - internalFrozenColumnCount);\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: !disableColumnFreezing,\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 enableColumnFreezing: !disableColumnFreezing,\n enableColumnReordering: !disableColumnReordering,\n enableColumnHiding: !disableColumnHiding,\n shouldPauseHoverState,\n setShouldPauseHoverState,\n frozenColumnsCount,\n setFrozenColumnsCount,\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 useFilterStateListener<TType>(table, onRowSelect);\n useRowSelectionListener<TType>(table, onRowSelect);\n useSettingsStateListener(table, onChangeSettings);\n\n return { rows, table, footers };\n}\n"],"names":["ACTIONS_ON_ROW_LENGTH","useTable","children","props","ref","actionsForRow","actionsForRowLength","data","defaultActiveRowIndex","disableColumnFiltering","disableColumnHiding","disableColumnFreezing","disableColumnReordering","disableColumnResizing","disableRowDensity","disableRowExpansion","disableRowSelection","disableMultipleRowSelection","disableSearch","disableSorting","expandedRowRenderer","manualColumnFiltering","manualSearch","manualSorting","onChangeSettings","onRowClick","onRowDrag","onRowSelect","onSave","settings","_experimentalActionsForTable","enableRowExpansion","enableRowSelection","length","enableMultipleRowSelection","columns","internalFrozenColumnCount","defaultColumnSizing","defaultSorting","defaultColumnVisibility","footers","useColumnDefinitions","enableColumnFiltering","enableColumnHiding","enableColumnFreezing","lastSortedOrFilteredRows","React","useRef","totalFrozenColumns","frozenColumnCount","frozenColumns","slice","map","column","id","initialState","columnOrder","columnPinning","left","right","columnSizing","columnVisibility","dataColumnStartOffset","reduce","t","e","dataColumnEndOffset","activeRow","useActiveRow","shouldPauseHoverState","setShouldPauseHoverState","useIsHoverStatePaused","editMode","useEditMode","columnOffsets","setColumnOffsets","useState","rowDensity","setRowDensity","dragging","setDragging","shouldPauseSortingAndFiltering","setShouldPauseSortingAndFiltering","shouldDisableTableActions","setShouldDisableTableActions","frozenColumnsCount","setFrozenColumnsCount","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","useFilterStateListener","useRowSelectionListener","useSettingsStateListener"],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../../../../../../src/components/Table2/types.ts"],"sourcesContent":["import React from 'react';\nimport {\n ColumnFiltersState,\n ColumnOrderState,\n ColumnSizingState,\n OnChangeFn,\n Row,\n SortingState,\n VisibilityState,\n} from '@tanstack/react-table';\nimport { DialogProps } from '../Dialog/Dialog';\nimport { IconName } from '../Icon/Icon';\nimport { MenuProps } from '../Menu/Menu';\n\nexport enum Table2FilterComparator {\n Contains,\n DoesNotContain,\n IsEqualTo,\n IsNotEqualTo,\n IsGreaterThan,\n IsLessThan,\n IsBetween,\n IsOneOf,\n IsNoneOf,\n IsAllOf,\n IsEmpty,\n IsNotEmpty,\n}\n\nexport type Table2Filter<TType = any> = {\n comparator?: Table2FilterComparator;\n value: TType | TType[];\n};\n\nexport type ColumnOffsetState = Record<string, number | undefined>;\nexport type RowDensity = 'compact' | 'normal' | 'comfortable' | 'spacious';\nexport type CellAlignment = 'left' | 'center' | 'right';\n\nexport type SortDirection = 'asc' | 'desc';\nexport type ColumnDataType = 'auto' | 'alphanumeric' | 'alphanumericCaseSensitive' | 'datetime' | 'boolean';\n\nexport type Table2ColumnHeaderRenderer<TType = any> = (value: any, row: TType) => JSX.Element | string | null;\nexport type Table2ColumnHeaderMenu = (props: Partial<MenuProps>) => JSX.Element;\nexport type Table2ColumnFooterRenderer = (values: any[]) => JSX.Element | string | null;\n\nexport type Table2ColumnControlProps = {\n className?: string;\n disabled?: boolean;\n invalid?: boolean;\n onBlur: (newValue?: any) => Promise<void>;\n onFocus: React.FocusEventHandler;\n readOnly?: boolean;\n ref: React.RefObject<HTMLElement>;\n setValue: (value: any) => void;\n value: any;\n // This is a temporary fix to enable up/down arrow key shortcuts on input in quick mode. For some reason,\n // the preventDefault is true on Taco Input, so the keyboard shortcuts doesn't work. By adding this\n // data attribute we make sure the event is coming from a control component, and then we can make sure\n // keyboard shortcut works as expected.\n 'data-inline-editing-component'?: 'true';\n};\nexport type Table2ColumnControlRenderer<TType = any> =\n | ((props: Table2ColumnControlProps, row?: TType) => JSX.Element)\n | 'datepicker'\n | 'input'\n | 'switch';\n\nexport type Table2ColumnProps<TType = any> = {\n accessor: string;\n align?: CellAlignment;\n className?: string | ((row: Row<TType>) => string);\n control?: Table2ColumnControlRenderer<TType>;\n dataType?: ColumnDataType;\n defaultActiveColumnIndex?: number;\n defaultActiveRowIndex?: number;\n defaultHidden?: boolean;\n disableFiltering?: boolean;\n disableHiding?: boolean;\n disableReordering?: boolean;\n disableResizing?: boolean;\n disableSorting?: boolean;\n defaultWidth?: number;\n header: string;\n headerClassName?: string;\n footer?: Table2ColumnFooterRenderer;\n renderer?: Table2ColumnHeaderRenderer<TType>;\n menu?: Table2ColumnHeaderMenu;\n minWidth?: number;\n sort?: SortDirection;\n tooltip?: string;\n};\n\nexport type Table2ActionProps<TType> = {\n dialog?: (rows: TType[], resetSelectedRows: () => void) => (props: Partial<DialogProps>) => JSX.Element;\n disabled?: boolean | ((rows: TType[]) => boolean);\n icon: IconName | ((rows: TType[]) => IconName);\n onClick?: (rows: TType[], resetSelectedRows: () => void) => void;\n text: string | ((rows: TType[]) => string);\n visible?: boolean | ((rows: TType[]) => boolean);\n};\n\nexport type
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../../../../src/components/Table2/types.ts"],"sourcesContent":["import React from 'react';\nimport {\n ColumnFiltersState,\n ColumnOrderState,\n ColumnSizingState,\n OnChangeFn,\n Row,\n SortingState,\n VisibilityState,\n} from '@tanstack/react-table';\nimport { DialogProps } from '../Dialog/Dialog';\nimport { IconName } from '../Icon/Icon';\nimport { MenuProps } from '../Menu/Menu';\n\nexport enum Table2FilterComparator {\n Contains,\n DoesNotContain,\n IsEqualTo,\n IsNotEqualTo,\n IsGreaterThan,\n IsLessThan,\n IsBetween,\n IsOneOf,\n IsNoneOf,\n IsAllOf,\n IsEmpty,\n IsNotEmpty,\n}\n\nexport type Table2Filter<TType = any> = {\n comparator?: Table2FilterComparator;\n value: TType | TType[];\n};\n\nexport type ColumnOffsetState = Record<string, number | undefined>;\nexport type RowDensity = 'compact' | 'normal' | 'comfortable' | 'spacious';\nexport type CellAlignment = 'left' | 'center' | 'right';\n\nexport type SortDirection = 'asc' | 'desc';\nexport type ColumnDataType = 'auto' | 'alphanumeric' | 'alphanumericCaseSensitive' | 'datetime' | 'boolean';\n\nexport type Table2ColumnHeaderRenderer<TType = any> = (value: any, row: TType) => JSX.Element | string | null;\nexport type Table2ColumnHeaderMenu = (props: Partial<MenuProps>) => JSX.Element;\nexport type Table2ColumnFooterRenderer = (values: any[]) => JSX.Element | string | null;\n\nexport type Table2ColumnControlProps = {\n className?: string;\n disabled?: boolean;\n invalid?: boolean;\n onBlur: (newValue?: any) => Promise<void>;\n onFocus: React.FocusEventHandler;\n readOnly?: boolean;\n ref: React.RefObject<HTMLElement>;\n setValue: (value: any) => void;\n value: any;\n // This is a temporary fix to enable up/down arrow key shortcuts on input in quick mode. For some reason,\n // the preventDefault is true on Taco Input, so the keyboard shortcuts doesn't work. By adding this\n // data attribute we make sure the event is coming from a control component, and then we can make sure\n // keyboard shortcut works as expected.\n 'data-inline-editing-component'?: 'true';\n};\nexport type Table2ColumnControlRenderer<TType = any> =\n | ((props: Table2ColumnControlProps, row?: TType) => JSX.Element)\n | 'datepicker'\n | 'input'\n | 'switch';\n\nexport type Table2ColumnProps<TType = any> = {\n accessor: string;\n align?: CellAlignment;\n className?: string | ((row: Row<TType>) => string);\n control?: Table2ColumnControlRenderer<TType>;\n dataType?: ColumnDataType;\n defaultActiveColumnIndex?: number;\n defaultActiveRowIndex?: number;\n defaultHidden?: boolean;\n disableFiltering?: boolean;\n disableHiding?: boolean;\n disableReordering?: boolean;\n disableResizing?: boolean;\n disableSorting?: boolean;\n defaultWidth?: number;\n header: string;\n headerClassName?: string;\n footer?: Table2ColumnFooterRenderer;\n renderer?: Table2ColumnHeaderRenderer<TType>;\n menu?: Table2ColumnHeaderMenu;\n minWidth?: number;\n sort?: SortDirection;\n tooltip?: string;\n};\n\nexport type Table2ActionProps<TType> = {\n dialog?: (rows: TType[], resetSelectedRows: () => void) => (props: Partial<DialogProps>) => JSX.Element;\n disabled?: boolean | ((rows: TType[]) => boolean);\n icon: IconName | ((rows: TType[]) => IconName);\n onClick?: (rows: TType[], resetSelectedRows: () => void) => void;\n text: string | ((rows: TType[]) => string);\n visible?: boolean | ((rows: TType[]) => boolean);\n};\n\nexport type Table2RowActionRenderer<TType = unknown> = (row: TType) => JSX.Element | null;\n\nexport type Table2Settings = {\n columnFilters?: ColumnFiltersState;\n columnOrder?: ColumnOrderState;\n columnSizing?: ColumnSizingState;\n columnVisibility?: VisibilityState;\n frozenColumnCount?: number;\n globalFilter?: string;\n rowDensity?: RowDensity;\n sorting?: SortingState;\n};\n\nexport type RowClickHandler<TType = any> = (row: TType) => void;\nexport type RowDragHandler<TType = any> = (\n rows: TType[],\n showPlaceholder: (string) => void,\n setDataTransfer: (data: string) => void\n) => void;\nexport type RowSelectionHandler<TType = any> = (rows: TType[]) => void;\nexport type RowExpansionRenderer<TType = any> = (row: TType) => (() => JSX.Element) | null;\nexport type SortHandler = OnChangeFn<SortingState>;\nexport type SettingsHandler = OnChangeFn<Table2Settings>;\nexport type SaveHandlerErrorResponse = Record<string, string | undefined | null> | null;\nexport type SaveHandler<TType = any> = (row: TType, accessor: string) => Promise<SaveHandlerErrorResponse | void>;\n\nexport type DataColumnIndexes = {\n dataColumnStartOffset: number;\n dataColumnEndOffset: number;\n};\n\nexport type Table2Children<TType = any> = (React.ReactElement<Table2ColumnProps<TType>> | boolean | null | undefined)[];\n\nexport type Table2Props<TType = any> = Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> & {\n actionsForRow?: Table2RowActionRenderer<TType>[];\n actionsForRowLength?: number;\n children: Table2Children;\n className?: string;\n data: TType[];\n defaultActiveRowIndex?: number;\n disableColumnFiltering?: boolean;\n disableColumnHiding?: boolean;\n disableColumnFreezing?: boolean;\n disableColumnReordering?: boolean;\n disableColumnResizing?: boolean;\n disableRowDensity?: boolean;\n disableRowExpansion?: boolean;\n disableRowSelection?: boolean;\n disableMultipleRowSelection?: boolean;\n disableSearch?: boolean;\n disableSorting?: boolean;\n emptyState?: () => JSX.Element;\n expandedRowRenderer?: RowExpansionRenderer<TType>;\n length?: number;\n loadMore?: () => Promise<void>;\n manualColumnFiltering?: boolean;\n manualSearch?: boolean;\n manualSorting?: boolean;\n onChangeSettings?: SettingsHandler;\n onRowClick?: RowClickHandler<TType>;\n onRowDrag?: RowDragHandler<TType>;\n onRowSelect?: RowSelectionHandler<TType>;\n onSave?: SaveHandler<TType>;\n toolbarLeft?: JSX.Element;\n toolbarRight?: JSX.Element;\n settings?: Table2Settings;\n _experimentalActionsForTable?: Table2ActionProps<TType>[];\n _experimentalActionsForTableSummary?: (rows: TType[]) => JSX.Element | string;\n};\n"],"names":["Table2FilterComparator"],"mappings":"IAcYA;AAAZ,WAAYA,sBAAsB;EAC9BA,2EAAQ;EACRA,uFAAc;EACdA,6EAAS;EACTA,mFAAY;EACZA,qFAAa;EACbA,+EAAU;EACVA,6EAAS;EACTA,yEAAO;EACPA,2EAAQ;EACRA,yEAAO;EACPA,0EAAO;EACPA,gFAAU;AACd,CAAC,EAbWA,sBAAsB,KAAtBA,sBAAsB;;;;"}
|
@@ -4,8 +4,8 @@ import { Icon } from '../../Icon/Icon.js';
|
|
4
4
|
import { Tooltip } from '../../Tooltip/Tooltip.js';
|
5
5
|
import { IconButton } from '../../IconButton/IconButton.js';
|
6
6
|
import { Checkbox } from '../../Checkbox/Checkbox.js';
|
7
|
-
import { Menu } from '../../Menu/Menu.js';
|
8
7
|
import { Shortcut } from '../../Shortcut/Shortcut.js';
|
8
|
+
import { Menu } from '../../Menu/Menu.js';
|
9
9
|
import { useRowContext } from '../components/row/Context.js';
|
10
10
|
|
11
11
|
const COLUMN_ID_FOR_DRAGGABLE = '__draggable';
|
@@ -100,7 +100,7 @@ const SelectCell = /*#__PURE__*/React__default.memo(({
|
|
100
100
|
return /*#__PURE__*/React__default.createElement(Tooltip, {
|
101
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
102
|
className: "ml-2",
|
103
|
-
keys:
|
103
|
+
keys: "Space"
|
104
104
|
}))
|
105
105
|
}, /*#__PURE__*/React__default.createElement(Checkbox, {
|
106
106
|
"aria-label": isSelected ? texts.table2.columns.select.select : texts.table2.columns.select.deselect,
|
@@ -121,7 +121,10 @@ function createRowSelectionColumn(enableMultipleRowSelection, lastSelectedRowInd
|
|
121
121
|
}) => /*#__PURE__*/React__default.createElement(Tooltip, {
|
122
122
|
title: /*#__PURE__*/React__default.createElement(React__default.Fragment, null, table.getIsAllPageRowsSelected() ? texts.table2.columns.select.deselectAll : texts.table2.columns.select.selectAll, /*#__PURE__*/React__default.createElement(Shortcut, {
|
123
123
|
className: "ml-2",
|
124
|
-
keys:
|
124
|
+
keys: {
|
125
|
+
key: 'a',
|
126
|
+
meta: true
|
127
|
+
}
|
125
128
|
}))
|
126
129
|
}, /*#__PURE__*/React__default.createElement(Checkbox, {
|
127
130
|
"aria-label": table.getIsAllPageRowsSelected() ? texts.table2.columns.select.deselectAll : texts.table2.columns.select.selectAll,
|
@@ -200,7 +203,10 @@ const ExpandCell = /*#__PURE__*/React__default.memo(({
|
|
200
203
|
return /*#__PURE__*/React__default.createElement(Tooltip, {
|
201
204
|
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, {
|
202
205
|
className: "ml-2",
|
203
|
-
keys:
|
206
|
+
keys: {
|
207
|
+
key: isExpanded ? 'ArrowLeft' : 'ArrowRight',
|
208
|
+
meta: true
|
209
|
+
}
|
204
210
|
}))
|
205
211
|
}, /*#__PURE__*/React__default.createElement(IconButton, {
|
206
212
|
title: isExpanded ? texts.table2.columns.expansion.collapse : texts.table2.columns.expansion.expand,
|
@@ -253,11 +259,10 @@ function createRowExpansionColumn(expandedRowRenderer, texts) {
|
|
253
259
|
size: 36
|
254
260
|
};
|
255
261
|
}
|
256
|
-
const getActionPropertyValue = (property, row) => typeof property === 'function' ? property(row) : property;
|
257
262
|
const RowActionsCell = /*#__PURE__*/React__default.memo(({
|
258
263
|
row,
|
259
264
|
actions,
|
260
|
-
|
265
|
+
actionsLength,
|
261
266
|
isEditing,
|
262
267
|
shouldPauseHoverState,
|
263
268
|
table,
|
@@ -265,67 +270,46 @@ const RowActionsCell = /*#__PURE__*/React__default.memo(({
|
|
265
270
|
}) => {
|
266
271
|
const {
|
267
272
|
isActive,
|
268
|
-
isHovered
|
269
|
-
rowIndex
|
273
|
+
isHovered
|
270
274
|
} = useRowContext();
|
271
275
|
if (!isActive && (!isHovered || shouldPauseHoverState) || isEditing) {
|
272
276
|
return null;
|
273
277
|
}
|
274
|
-
const
|
275
|
-
const
|
276
|
-
const
|
278
|
+
const visibleActions = actions.map(action => action(row.original)).filter(action => !!action);
|
279
|
+
const actionsOnRow = visibleActions.length === actionsLength ? visibleActions : visibleActions.slice(0, actionsLength - 1);
|
280
|
+
const actionsInMenu = visibleActions.slice(visibleActions.length === actionsLength ? actionsLength : actionsLength - 1);
|
277
281
|
// If the row is not the active row or the hovered row then actions are hidden.
|
278
282
|
const actionClassName = 'group-hover/row:flex group-[[aria-current]]/row:flex hidden';
|
279
283
|
// only actions in the active row should be tabbable
|
280
284
|
const tabIndex = table.options.meta.activeRowIndex === row.index ? 0 : -1;
|
281
285
|
return /*#__PURE__*/React__default.createElement("span", {
|
282
286
|
className: "-mb-2 -mt-2 flex justify-end text-right"
|
283
|
-
},
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
+
}, actionsOnRow.map((button, index) => {
|
288
|
+
var _button$props$tooltip, _button$props$tooltip2;
|
289
|
+
return /*#__PURE__*/React__default.cloneElement(button, {
|
290
|
+
appearance: 'discrete',
|
291
|
+
className: cn(actionClassName, button.props.className),
|
292
|
+
key: index,
|
293
|
+
tabIndex,
|
294
|
+
tooltip: button.props.shortcut ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, (_button$props$tooltip = button.props.tooltip) !== null && _button$props$tooltip !== void 0 ? _button$props$tooltip : button.props['aria-label'], /*#__PURE__*/React__default.createElement(Shortcut, {
|
295
|
+
className: "ml-2",
|
296
|
+
keys: button.props.shortcut
|
297
|
+
})) : (_button$props$tooltip2 = button.props.tooltip) !== null && _button$props$tooltip2 !== void 0 ? _button$props$tooltip2 : button.props['aria-label']
|
298
|
+
});
|
299
|
+
}), actionsInMenu.length ? /*#__PURE__*/React__default.createElement(IconButton, {
|
287
300
|
appearance: "discrete",
|
288
|
-
dialog: action.dialog ? action.dialog(row.original) : undefined,
|
289
|
-
disabled: getActionPropertyValue(action.disabled, row.original),
|
290
|
-
icon: getActionPropertyValue(action.icon, row.original),
|
291
|
-
onClick: event => {
|
292
|
-
event.stopPropagation();
|
293
|
-
if (action.onClick) {
|
294
|
-
action.onClick(row.original);
|
295
|
-
}
|
296
|
-
},
|
297
|
-
tabIndex: tabIndex,
|
298
|
-
tooltip: action.shortcutKey ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, getActionPropertyValue(action.text, row.original), /*#__PURE__*/React__default.createElement(Shortcut, {
|
299
|
-
className: "ml-2",
|
300
|
-
keys: [action.shortcutKey]
|
301
|
-
})) : getActionPropertyValue(action.text, row.original)
|
302
|
-
})), visibleMoreActions.length ? /*#__PURE__*/React__default.createElement(IconButton, {
|
303
|
-
className: actionClassName,
|
304
301
|
"aria-label": texts.table2.columns.actions.tooltip,
|
305
|
-
appearance: "discrete",
|
306
302
|
icon: "more",
|
307
|
-
onClick: event => {
|
308
|
-
event.preventDefault();
|
309
|
-
table.options.meta.setActiveRowIndex(rowIndex);
|
310
|
-
},
|
311
303
|
tabIndex: tabIndex,
|
312
|
-
menu: menuProps => /*#__PURE__*/React__default.createElement(Menu, Object.assign({}, menuProps), /*#__PURE__*/React__default.createElement(Menu.Content, null,
|
313
|
-
key: i
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
onClick: () => {
|
318
|
-
if (action.onClick) {
|
319
|
-
action.onClick(row.original);
|
320
|
-
}
|
321
|
-
}
|
322
|
-
}, getActionPropertyValue(action.text, row.original))))),
|
304
|
+
menu: menuProps => /*#__PURE__*/React__default.createElement(Menu, Object.assign({}, menuProps), /*#__PURE__*/React__default.createElement(Menu.Content, null, actionsInMenu.map((action, i) => /*#__PURE__*/React__default.createElement(Menu.Item, Object.assign({
|
305
|
+
key: i
|
306
|
+
}, action.props, {
|
307
|
+
shortcut: action.props.shortcut
|
308
|
+
}), action.props['aria-label'])))),
|
323
309
|
tooltip: texts.table2.columns.actions.tooltip
|
324
310
|
}) : null);
|
325
311
|
});
|
326
|
-
function createRowActionsColumn(rowActions, texts) {
|
327
|
-
const actions = rowActions.length === 4 ? rowActions : rowActions.slice(0, 3);
|
328
|
-
const moreActions = rowActions.slice(rowActions.length === 4 ? 4 : 3);
|
312
|
+
function createRowActionsColumn(rowActions, rowActionsLength, texts) {
|
329
313
|
return {
|
330
314
|
id: COLUMN_ID_FOR_ACTIONS,
|
331
315
|
cell: ({
|
@@ -335,8 +319,8 @@ function createRowActionsColumn(rowActions, texts) {
|
|
335
319
|
var _table$options$meta, _table$options$meta2;
|
336
320
|
return /*#__PURE__*/React__default.createElement(RowActionsCell, {
|
337
321
|
row: row,
|
338
|
-
actions:
|
339
|
-
|
322
|
+
actions: rowActions,
|
323
|
+
actionsLength: rowActionsLength,
|
340
324
|
texts: texts,
|
341
325
|
table: table,
|
342
326
|
isEditing: !!((_table$options$meta = table.options.meta) !== null && _table$options$meta !== void 0 && _table$options$meta.editMode.isEditing),
|
@@ -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, RowExpansionRenderer, 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 isInternalFrozenColumn = (id: string) => isInternalColumn(id) && id !== COLUMN_ID_FOR_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 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\"\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 headerClassName: onRowDrag ? '!pl-0 !pr-3' : '!px-3',\n },\n // sizing\n enableResizing: false,\n size: 46,\n };\n}\n\nconst ExpandCell = React.memo(({ expandedRowRenderer, isExpanded, row, texts }: any) => {\n const hasExpandedRow = expandedRowRenderer(row.original);\n\n if (!hasExpandedRow) {\n return null;\n }\n\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 row.toggleExpanded();\n }}\n tabIndex={-1}\n />\n </Tooltip>\n );\n});\n\nexport function createRowExpansionColumn<TType = any>(\n expandedRowRenderer: RowExpansionRenderer<TType>,\n texts: LocalizationTexts\n): 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 is memoised and that's why calling row.getIsExpanded() inside it doesn't return the correct\n // expand state. This is the reason why isExpanded is pulled out of the ExpandCell component.\n <ExpandCell expandedRowRenderer={expandedRowRenderer} isExpanded={row.getIsExpanded()} row={row} texts={texts} />\n ),\n\n meta: {\n align: 'center',\n className: 'items-center !p-0',\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, isEditing, shouldPauseHoverState, table, texts }: any) => {\n const { isActive, isHovered, rowIndex } = useRowContext();\n\n if ((!isActive && (!isHovered || shouldPauseHoverState)) || isEditing) {\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-2 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={\n action.shortcutKey ? (\n <>\n {getActionPropertyValue(action.text, row.original)}\n <Shortcut className=\"ml-2\" keys={[action.shortcutKey]} />\n </>\n ) : (\n getActionPropertyValue(action.text, row.original)\n )\n }\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 table.options.meta.setActiveRowIndex(rowIndex);\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\n row={row}\n actions={actions}\n moreActions={moreActions}\n texts={texts}\n table={table}\n isEditing={!!table.options.meta?.editMode.isEditing}\n shouldPauseHoverState={!!table.options.meta?.shouldPauseHoverState}\n />\n ),\n meta: {\n align: 'right',\n className: (row: Row<any>, table: any) =>\n // Adding z-index so that it shows on top of frozen columns\n cn('items-center print:opacity-0 group-[[aria-current]]/row:sticky group-hover/row:sticky right-0 !px-1 z-[1]', {\n 'group-[[aria-current]]/row:!shadow-[-6px_0px_6px_theme(colors.grey.200)]': !row.getIsSelected(),\n 'group-hover/row:!shadow-[-6px_0px_6px_theme(colors.grey.100)]':\n !row.getIsSelected() &&\n (!table.options.meta?.shouldPauseHoverState || table.options.meta.editMode.isEditing),\n 'shadow-[-6px_0px_6px_theme(colors.blue.100)]': row.getIsSelected(),\n }),\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","isInternalFrozenColumn","id","isInternalColumn","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","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","expandedRowRenderer","isExpanded","hasExpandedRow","expansion","collapse","expand","IconButton","appearance","icon","toggleExpanded","createRowExpansionColumn","getIsSomeRowsExpanded","collapseAll","expandAll","toggleAllRowsExpanded","getIsExpanded","getActionPropertyValue","property","RowActionsCell","actions","moreActions","isEditing","shouldPauseHoverState","isActive","isHovered","useRowContext","isVisible","action","visible","visibleActions","filter","visibleMoreActions","actionClassName","activeRowIndex","i","key","ariaLabel","dialog","undefined","disabled","shortcutKey","length","preventDefault","menu","menuProps","Menu","Content","Item","createRowActionsColumn","rowActions","editMode","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, RowExpansionRenderer } 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 isInternalFrozenColumn = (id: string) => isInternalColumn(id) && id !== COLUMN_ID_FOR_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 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\"\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={{ key: 'a', meta: true }} />\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 headerClassName: onRowDrag ? '!pl-0 !pr-3' : '!px-3',\n },\n // sizing\n enableResizing: false,\n size: 46,\n };\n}\n\nconst ExpandCell = React.memo(({ expandedRowRenderer, isExpanded, row, texts }: any) => {\n const hasExpandedRow = expandedRowRenderer(row.original);\n\n if (!hasExpandedRow) {\n return null;\n }\n\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={{ key: isExpanded ? 'ArrowLeft' : 'ArrowRight', meta: true }} />\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 row.toggleExpanded();\n }}\n tabIndex={-1}\n />\n </Tooltip>\n );\n});\n\nexport function createRowExpansionColumn<TType = any>(\n expandedRowRenderer: RowExpansionRenderer<TType>,\n texts: LocalizationTexts\n): 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 is memoised and that's why calling row.getIsExpanded() inside it doesn't return the correct\n // expand state. This is the reason why isExpanded is pulled out of the ExpandCell component.\n <ExpandCell expandedRowRenderer={expandedRowRenderer} isExpanded={row.getIsExpanded()} row={row} texts={texts} />\n ),\n\n meta: {\n align: 'center',\n className: 'items-center !p-0',\n headerClassName: 'items-center hover:!bg-white !p-0',\n },\n // sizing\n enableResizing: false,\n size: 36,\n };\n}\n\nconst RowActionsCell = React.memo(({ row, actions, actionsLength, isEditing, shouldPauseHoverState, table, texts }: any) => {\n const { isActive, isHovered } = useRowContext();\n\n if ((!isActive && (!isHovered || shouldPauseHoverState)) || isEditing) {\n return null;\n }\n\n const visibleActions = actions.map(action => action(row.original)).filter(action => !!action);\n\n const actionsOnRow = visibleActions.length === actionsLength ? visibleActions : visibleActions.slice(0, actionsLength - 1);\n const actionsInMenu = visibleActions.slice(visibleActions.length === actionsLength ? actionsLength : actionsLength - 1);\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-2 flex justify-end text-right\">\n {actionsOnRow.map((button, index) =>\n React.cloneElement(button, {\n appearance: 'discrete',\n className: cn(actionClassName, button.props.className),\n key: index,\n tabIndex,\n tooltip: button.props.shortcut ? (\n <>\n {button.props.tooltip ?? button.props['aria-label']}\n <Shortcut className=\"ml-2\" keys={button.props.shortcut} />\n </>\n ) : (\n button.props.tooltip ?? button.props['aria-label']\n ),\n })\n )}\n {actionsInMenu.length ? (\n <IconButton\n appearance=\"discrete\"\n aria-label={texts.table2.columns.actions.tooltip}\n icon=\"more\"\n tabIndex={tabIndex}\n menu={menuProps => (\n <Menu {...menuProps}>\n <Menu.Content>\n {actionsInMenu.map((action, i) => (\n <Menu.Item key={i} {...action.props} shortcut={action.props.shortcut}>\n {action.props['aria-label']}\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>(\n rowActions,\n rowActionsLength,\n texts: LocalizationTexts\n): DisplayColumnDef<TType, any> {\n return {\n id: COLUMN_ID_FOR_ACTIONS,\n cell: ({ row, table }) => (\n <RowActionsCell\n row={row}\n actions={rowActions}\n actionsLength={rowActionsLength}\n texts={texts}\n table={table}\n isEditing={!!table.options.meta?.editMode.isEditing}\n shouldPauseHoverState={!!table.options.meta?.shouldPauseHoverState}\n />\n ),\n meta: {\n align: 'right',\n className: (row: Row<any>, table: any) =>\n // Adding z-index so that it shows on top of frozen columns\n cn('items-center print:opacity-0 group-[[aria-current]]/row:sticky group-hover/row:sticky right-0 !px-1 z-[1]', {\n 'group-[[aria-current]]/row:!shadow-[-6px_0px_6px_theme(colors.grey.200)]': !row.getIsSelected(),\n 'group-hover/row:!shadow-[-6px_0px_6px_theme(colors.grey.100)]':\n !row.getIsSelected() &&\n (!table.options.meta?.shouldPauseHoverState || table.options.meta.editMode.isEditing),\n 'shadow-[-6px_0px_6px_theme(colors.blue.100)]': row.getIsSelected(),\n }),\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","isInternalFrozenColumn","id","isInternalColumn","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","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","key","indeterminate","getIsSomePageRowsSelected","toggleAllPageRowsSelected","index","role","type","ExpandCell","expandedRowRenderer","isExpanded","hasExpandedRow","expansion","collapse","expand","IconButton","appearance","icon","toggleExpanded","createRowExpansionColumn","getIsSomeRowsExpanded","collapseAll","expandAll","toggleAllRowsExpanded","getIsExpanded","RowActionsCell","actions","actionsLength","isEditing","shouldPauseHoverState","isActive","isHovered","useRowContext","visibleActions","action","filter","actionsOnRow","length","actionsInMenu","actionClassName","activeRowIndex","button","cloneElement","cn","props","shortcut","menu","menuProps","Menu","Content","i","Item","createRowActionsColumn","rowActions","rowActionsLength","editMode"],"mappings":"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"}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import React__default from 'react';
|
2
|
+
import { createShortcutKeyDownHandler } from '../utils/keyboard.js';
|
3
|
+
|
4
|
+
const useGlobalKeyDown = (key, handler) => {
|
5
|
+
React__default.useEffect(() => {
|
6
|
+
const handleKeyDown = createShortcutKeyDownHandler(key, handler);
|
7
|
+
document.addEventListener('keydown', handleKeyDown);
|
8
|
+
return () => {
|
9
|
+
document.removeEventListener('keydown', handleKeyDown);
|
10
|
+
};
|
11
|
+
}, [handler]);
|
12
|
+
};
|
13
|
+
|
14
|
+
export { useGlobalKeyDown };
|
15
|
+
//# sourceMappingURL=useGlobalKeyDown.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useGlobalKeyDown.js","sources":["../../../../../../src/hooks/useGlobalKeyDown.ts"],"sourcesContent":["import React from 'react';\nimport { createShortcutKeyDownHandler, KeyDownHandlerOptions } from '../utils/keyboard';\n\nexport const useGlobalKeyDown = (key: string | KeyDownHandlerOptions, handler: (event: KeyboardEvent) => void) => {\n React.useEffect(() => {\n const handleKeyDown = createShortcutKeyDownHandler(key, handler as (event: KeyboardEvent | React.KeyboardEvent) => void);\n document.addEventListener('keydown', handleKeyDown);\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [handler]);\n};\n"],"names":["useGlobalKeyDown","key","handler","React","useEffect","handleKeyDown","createShortcutKeyDownHandler","document","addEventListener","removeEventListener"],"mappings":";;;MAGaA,gBAAgB,GAAG,CAACC,GAAmC,EAAEC,OAAuC;EACzGC,cAAK,CAACC,SAAS,CAAC;IACZ,MAAMC,aAAa,GAAGC,4BAA4B,CAACL,GAAG,EAAEC,OAA+D,CAAC;IACxHK,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAEH,aAAa,CAAC;IAEnD,OAAO;MACHE,QAAQ,CAACE,mBAAmB,CAAC,SAAS,EAAEJ,aAAa,CAAC;KACzD;GACJ,EAAE,CAACH,OAAO,CAAC,CAAC;AACjB;;;;"}
|