import { InjectionToken } from '@angular/core'; import { CompactType } from './utils/react-grid-layout.utils'; import { KtdClientRect } from './utils/client-rect'; export interface KtdGridLayoutItem { id: string; x: number; y: number; w: number; h: number; minW?: number; minH?: number; maxW?: number; maxH?: number; data?: any; } export type KtdGridCompactType = CompactType; export interface KtdGridBackgroundCfg { show: 'never' | 'always' | 'whenDragging'; borderColor?: string; gapColor?: string; rowColor?: string; columnColor?: string; borderWidth?: number; } export interface KtdGridCfg { cols: number; rowHeight: number | 'fit'; height?: number | null; layout: KtdGridLayoutItem[]; preventCollision: boolean; gap: number; } export type KtdGridLayout = KtdGridLayoutItem[]; export interface KtdGridItemRect { top: number; left: number; width: number; height: number; } export interface KtdGridItemRenderData { id: string; top: T; left: T; width: T; height: T; } /** * We inject a token because of the 'circular dependency issue warning'. In case we don't had this issue with the circular dependency, we could just * import KtdGridComponent on KtdGridItem and execute the needed function to get the rendering data. */ export type KtdGridItemRenderDataTokenType = (id: string) => KtdGridItemRenderData; export declare const GRID_ITEM_GET_RENDER_DATA_TOKEN: InjectionToken; export interface KtdDraggingData { pointerDownEvent: MouseEvent | TouchEvent; pointerDragEvent: MouseEvent | TouchEvent; gridElemClientRect: KtdClientRect; dragElemClientRect: KtdClientRect; scrollDifference: { top: number; left: number; }; }