///
import type { Item, Rectangle } from "./data-grid-types.js";
/** @category Types */
export interface BaseGridMouseEventArgs {
readonly shiftKey: boolean;
readonly ctrlKey: boolean;
readonly metaKey: boolean;
readonly isTouch: boolean;
readonly isLongTouch?: boolean;
readonly isDoubleClick?: boolean;
readonly isEdge: boolean;
readonly button: number;
readonly buttons: number;
readonly scrollEdge: readonly [xDir: -1 | 0 | 1, yDir: -1 | 0 | 1];
}
export interface PositionableMouseEventArgs {
readonly localEventX: number;
readonly localEventY: number;
}
/** @category Types */
export interface GridMouseCellEventArgs extends BaseGridMouseEventArgs, PositionableMouseEventArgs {
readonly kind: "cell";
readonly location: Item;
readonly bounds: Rectangle;
readonly isFillHandle: boolean;
}
/** @category Types */
export declare const headerKind: "header";
/** @category Types */
export interface GridMouseHeaderEventArgs extends BaseGridMouseEventArgs, PositionableMouseEventArgs {
readonly kind: typeof headerKind;
readonly location: readonly [number, -1];
readonly bounds: Rectangle;
readonly group: string;
}
/** @category Types */
export declare const groupHeaderKind: "group-header";
/** @category Types */
export interface GridMouseGroupHeaderEventArgs extends BaseGridMouseEventArgs, PositionableMouseEventArgs {
readonly kind: typeof groupHeaderKind;
readonly location: readonly [number, -2];
readonly bounds: Rectangle;
readonly group: string;
}
/** @category Types */
export declare const outOfBoundsKind: "out-of-bounds";
/** @category Types */
export declare enum OutOfBoundsRegionAxis {
Start = -2,
StartPadding = -1,
Center = 0,
EndPadding = 1,
End = 2
}
export interface GridMouseOutOfBoundsEventArgs extends BaseGridMouseEventArgs {
readonly kind: typeof outOfBoundsKind;
readonly location: Item;
readonly isMaybeScrollbar: boolean;
readonly region: readonly [OutOfBoundsRegionAxis, OutOfBoundsRegionAxis];
}
/** @category Types */
export interface GridKeyEventArgs {
readonly bounds: Rectangle | undefined;
readonly key: string;
readonly keyCode: number;
readonly altKey: boolean;
readonly shiftKey: boolean;
readonly ctrlKey: boolean;
readonly metaKey: boolean;
readonly cancel: () => void;
readonly stopPropagation: () => void;
readonly preventDefault: () => void;
readonly rawEvent: React.KeyboardEvent | undefined;
readonly location: Item | undefined;
}
/** @category Types */
export type GridMouseEventArgs = GridMouseCellEventArgs | GridMouseHeaderEventArgs | GridMouseOutOfBoundsEventArgs | GridMouseGroupHeaderEventArgs;
export interface PreventableEvent {
preventDefault: () => void;
}
/** @category Types */
export interface CellClickedEventArgs extends GridMouseCellEventArgs, PreventableEvent {
}
/** @category Types */
export interface HeaderClickedEventArgs extends GridMouseHeaderEventArgs, PreventableEvent {
}
/** @category Types */
export interface GroupHeaderClickedEventArgs extends GridMouseGroupHeaderEventArgs, PreventableEvent {
}
export interface FillPatternEventArgs extends PreventableEvent {
patternSource: Rectangle;
fillDestination: Rectangle;
}
export interface DragHandler {
readonly setData: (mime: string, payload: string) => void;
readonly setDragImage: (image: Element, x: number, y: number) => void;
readonly preventDefault: () => void;
readonly defaultPrevented: () => boolean;
}
/** @category Types */
export type GridDragEventArgs = GridMouseEventArgs & DragHandler;
export declare function mouseEventArgsAreEqual(args: GridMouseEventArgs | undefined, other: GridMouseEventArgs | undefined): boolean;
//# sourceMappingURL=event-args.d.ts.map