slickgrid
Version:
A lightning fast JavaScript grid/spreadsheet
73 lines (54 loc) • 3.13 kB
text/typescript
import type { SlickCellRangeSelector } from '../plugins/slick.cellrangeselector.js';
import type { UsabilityOverrideFn } from './usabilityOverrideFn.type.js';
import type { SlickGrid } from '../slick.grid.js';
export interface RowMoveManagerOption {
/**
* Defaults to True, do we want to disable auto-scroll feature (which comes from CellRangeSelector).
* NOTE: this flag has no effect when a `cellRangeSelector` is provided, you could however turn `autoScroll: false` inside the `cellRangeSelector`
*/
autoScrollWhenDrag?: boolean;
/** Defaults to false, option to cancel editing while dragging a row */
cancelEditOnDrag?: boolean;
/**
* Optional Cell Range Selector.
* NOTE: for an even simpler approach, we could use `enableCellRangeSelector` which the lib will take care of creating the instance by itself.
*/
cellRangeSelector?: SlickCellRangeSelector;
/** A CSS class to be added to the div of the cell formatter. */
cssClass?: string;
/** A CSS class to be added to the cell container. */
containerCssClass?: string;
/** Column definition id(defaults to "_move") */
columnId?: string;
/**
* Defaults to 0, the column index position in the grid by default it will show as the first column (index 0).
* Also note that the index position might vary if you use other extensions, after each extension is created,
* it will add an offset to take into consideration (1.CheckboxSelector, 2.RowDetail, 3.RowMove)
*/
columnIndexPosition?: number;
/** Defaults to False, do we want to disable the row selection? */
disableRowSelection?: boolean;
/** Defaults to False, should we select when dragging? */
dragToSelect?: boolean;
/** Defaults to True, do we want to hide the row move shadow of what we're dragging? */
hideRowMoveShadow?: boolean;
/** Defaults to false, makes the column reorderable to another position in the grid. */
reorderable?: boolean;
/** Defaults to 0, optional left margin of the row move shadown element when enabled */
rowMoveShadowMarginLeft?: number | string;
/** Defaults to 0, optional top margin of the row move shadown element when enabled */
rowMoveShadowMarginTop?: number | string;
/** Defaults to 0.9, opacity of row move shadow element (requires shadow to be shown via option: `hideRowMoveShadow: false`) */
rowMoveShadowOpacity?: number | string;
/** Defaults to 0.75, scale size of row move shadow element (requires shadow to be shown via option: `hideRowMoveShadow: false`) */
rowMoveShadowScale?: number | string;
/** Defaults to False, do we want a single row move? Setting this to false means that 1 or more rows can be selected to move together. */
singleRowMove?: boolean;
/** Width of the column in pixels (must be a number) */
width?: number;
/** Override the logic for showing (or not) the move icon (use case example: only every 2nd row is moveable) */
usabilityOverride?: UsabilityOverrideFn;
}
export interface CrossGridRowMoveManagerOption extends RowMoveManagerOption {
toGrid: SlickGrid;
}