import type { CollisionDetails } from '../functional/grid-drag-controller/collision' import type { GridColumnSort, GridPreferences, GridRangeSelection, GridRowId, GridStateProps, } from '../types' import type { GridFocusArea } from './reducer/focus' import type { PayloadAction } from './utils/createReducer' export type ApplyPropsAction = PayloadAction export type UpdateSelectionAction = PayloadAction< Set, 'updateSelection' > export type UpdateRangeSelectionAction = PayloadAction< GridRangeSelection | null, 'updateRangeSelection' > export type UpdateRangeSelectionPreviewAction = PayloadAction< GridRangeSelection | null, 'updateRangeSelectionPreview' > export type UpdateExpandedRowsAction = PayloadAction< Set, 'updateExpandedRows' > export type SetSelectionAnchor = PayloadAction< GridRowId | null, 'setSelectionAnchor' > export type UpdateFocusAction = PayloadAction< { columnId: string rowId: GridRowId area: GridFocusArea subFocus: number | 'first' | 'last' }, 'updateFocus' > export type UpdateNavigationStateAction = PayloadAction< { enabled: boolean }, 'updateNavigationState' > export type UpdateEditAction = PayloadAction< { columnId: string; rowId: GridRowId } | null, 'updateEdit' > export type ReorderColumnsAction = PayloadAction export type ResizeColumnAction = PayloadAction< { id: string; width: number }, 'resizeColumn' > export type ApplyPreferences = PayloadAction< { preferences: GridPreferences; multiSelection: boolean }, 'applyPreferences' > export type UpdateSortAction = PayloadAction export type UpdateSortLocale = PayloadAction export type UpdateRowDimensionsAction = PayloadAction< { rowHeight: number; numberOfRowsInView: number }, 'updateRowDimensions' > export type ShowActionsMenuAction = PayloadAction< { rowId: string | number; coordinates: { top: number; left: number } }, 'showActionsMenu' > export type HideActionsMenuAction = PayloadAction export type ShowColumnMenuAction = PayloadAction< { coordinates: { top: number; left: number } }, 'showColumnMenu' > export type HideColumnMenuAction = PayloadAction export type StartRowDragAction = PayloadAction< { ids: Set }, 'startRowDrag' > export type UpdateRowDragAction = PayloadAction< CollisionDetails & { allowed: boolean message?: string }, 'updateRowDrag' > export type CompleteRowDragAction = PayloadAction export type RemoveRecentlyDraggedAction = PayloadAction< null, 'removeRecentlyDragged' > export type CancelRowDragAction = PayloadAction export type UpdateColumnVisibilityAction = PayloadAction< { id: string; visible: boolean }, 'updateColumnVisibility' > export type Actions = | ApplyPropsAction | ApplyPreferences | ReorderColumnsAction | ResizeColumnAction | UpdateSortAction | UpdateSortLocale | UpdateFocusAction | UpdateSelectionAction | UpdateRangeSelectionAction | UpdateRangeSelectionPreviewAction | UpdateExpandedRowsAction | UpdateNavigationStateAction | UpdateEditAction | UpdateRowDimensionsAction | SetSelectionAnchor | ShowActionsMenuAction | HideActionsMenuAction | StartRowDragAction | UpdateRowDragAction | CompleteRowDragAction | CancelRowDragAction | RemoveRecentlyDraggedAction | UpdateColumnVisibilityAction | ShowColumnMenuAction | HideColumnMenuAction