@glideapps/glide-data-grid
Advanced tools
Comparing version 3.1.1-alpha1 to 3.1.1-alpha2
@@ -474,3 +474,3 @@ import { isInnerOnlyCell, GridCellKind } from "./data-grid-types"; | ||
function drawCells(ctx, effectiveColumns, height, headerHeight, translateX, translateY, cellYOffset, rows, getRowHeight, getCellContent, selectedRows, disabledRows, lastRowSticky, drawRegions, damage, selectedCell, selectedColumns, prelightCells, drawCustomCell, imageLoader, hoverValues, hoverInfo, outerTheme) { | ||
function drawCells(ctx, effectiveColumns, height, headerHeight, translateX, translateY, cellYOffset, rows, getRowHeight, getCellContent, getGroupDetails, selectedRows, disabledRows, lastRowSticky, drawRegions, damage, selectedCell, selectedColumns, prelightCells, drawCustomCell, imageLoader, hoverValues, hoverInfo, outerTheme) { | ||
var _damage$length; | ||
@@ -485,3 +485,5 @@ | ||
ctx.clip(); | ||
const colTheme = c.themeOverride === undefined ? outerTheme : { ...outerTheme, | ||
const groupTheme = c.group === undefined ? undefined : getGroupDetails(c.group).overrideTheme; | ||
const colTheme = c.themeOverride === undefined && groupTheme === undefined ? outerTheme : { ...outerTheme, | ||
...groupTheme, | ||
...c.themeOverride | ||
@@ -504,3 +506,3 @@ }; | ||
}; | ||
const theme = cell.themeOverride === undefined ? outerTheme : { ...colTheme, | ||
const theme = cell.themeOverride === undefined ? colTheme : { ...colTheme, | ||
...cell.themeOverride | ||
@@ -758,3 +760,3 @@ }; | ||
targetCtx.fillRect(0, headerHeight + 1, width, height - headerHeight - 1); | ||
drawCells(targetCtx, effectiveCols, height, headerHeight, translateX, translateY, cellYOffset, rows, getRowHeight, getCellContent, selectedRows, disabledRows, lastRowSticky, drawRegions, damage, selectedCell, selectedColumns, prelightCells, drawCustomCell, imageLoader, hoverValues, hoverInfo, theme); | ||
drawCells(targetCtx, effectiveCols, height, headerHeight, translateX, translateY, cellYOffset, rows, getRowHeight, getCellContent, getGroupDetails, selectedRows, disabledRows, lastRowSticky, drawRegions, damage, selectedCell, selectedColumns, prelightCells, drawCustomCell, imageLoader, hoverValues, hoverInfo, theme); | ||
} | ||
@@ -806,3 +808,3 @@ | ||
targetCtx.fillRect(0, headerHeight, width, height - headerHeight); | ||
drawCells(targetCtx, effectiveCols, height, headerHeight, translateX, translateY, cellYOffset, rows, getRowHeight, getCellContent, selectedRows, disabledRows, lastRowSticky, drawRegions, damage, selectedCell, selectedColumns, prelightCells, drawCustomCell, imageLoader, hoverValues, hoverInfo, theme); | ||
drawCells(targetCtx, effectiveCols, height, headerHeight, translateX, translateY, cellYOffset, rows, getRowHeight, getCellContent, getGroupDetails, selectedRows, disabledRows, lastRowSticky, drawRegions, damage, selectedCell, selectedColumns, prelightCells, drawCustomCell, imageLoader, hoverValues, hoverInfo, theme); | ||
drawBlanks(targetCtx, effectiveCols, height, headerHeight, translateX, translateY, cellYOffset, rows, getRowHeight, selectedRows, disabledRows, lastRowSticky, drawRegions, damage, theme); | ||
@@ -809,0 +811,0 @@ drawGridLines(targetCtx, effectiveCols, cellYOffset, translateX, translateY, width, height, headerHeight, getRowHeight, verticalBorder, lastRowSticky, rows, theme); |
@@ -9,2 +9,7 @@ /// <reference types="react" /> | ||
declare type HoverInfo = readonly [readonly [number, number | undefined], readonly [number, number]]; | ||
export declare type GroupDetailsCallback = (groupName: string) => { | ||
name: string; | ||
icon?: string; | ||
overrideTheme?: Partial<Theme>; | ||
}; | ||
interface BlitData { | ||
@@ -22,6 +27,3 @@ readonly cellXOffset: number; | ||
export declare function drawCell(ctx: CanvasRenderingContext2D, row: number, cell: InnerGridCell, col: number, x: number, y: number, w: number, h: number, highlighted: boolean, theme: Theme, drawCustomCell: DrawCustomCellCallback | undefined, imageLoader: ImageWindowLoader, hoverAmount: number, hoverInfo: HoverInfo | undefined): void; | ||
export declare function drawGrid(canvas: HTMLCanvasElement, buffers: Buffers, width: number, height: number, cellXOffset: number, cellYOffset: number, translateX: number, translateY: number, columns: readonly GridColumn[], mappedColumns: readonly MappedGridColumn[], enableGroups: boolean, freezeColumns: number, dragAndDropState: DragAndDropState | undefined, theme: Theme, headerHeight: number, selectedRows: CompactSelection, disabledRows: CompactSelection, rowHeight: number | ((index: number) => number), verticalBorder: (col: number) => boolean, selectedColumns: CompactSelection, hoveredCol: number | undefined, isResizing: boolean, selectedCell: GridSelection | undefined, lastRowSticky: boolean, rows: number, getCellContent: (cell: readonly [number, number]) => InnerGridCell, getGroupDetails: (groupName: string) => { | ||
name: string; | ||
icon?: string; | ||
}, drawCustomCell: DrawCustomCellCallback | undefined, prelightCells: CellList | undefined, imageLoader: ImageWindowLoader, lastBlitData: React.MutableRefObject<BlitData>, canBlit: boolean | undefined, damage: CellList | undefined, hoverValues: HoverValues, hoverInfo: HoverInfo | undefined, spriteManager: SpriteManager, scrolling: boolean): void; | ||
export declare function drawGrid(canvas: HTMLCanvasElement, buffers: Buffers, width: number, height: number, cellXOffset: number, cellYOffset: number, translateX: number, translateY: number, columns: readonly GridColumn[], mappedColumns: readonly MappedGridColumn[], enableGroups: boolean, freezeColumns: number, dragAndDropState: DragAndDropState | undefined, theme: Theme, headerHeight: number, selectedRows: CompactSelection, disabledRows: CompactSelection, rowHeight: number | ((index: number) => number), verticalBorder: (col: number) => boolean, selectedColumns: CompactSelection, hoveredCol: number | undefined, isResizing: boolean, selectedCell: GridSelection | undefined, lastRowSticky: boolean, rows: number, getCellContent: (cell: readonly [number, number]) => InnerGridCell, getGroupDetails: GroupDetailsCallback, drawCustomCell: DrawCustomCellCallback | undefined, prelightCells: CellList | undefined, imageLoader: ImageWindowLoader, lastBlitData: React.MutableRefObject<BlitData>, canBlit: boolean | undefined, damage: CellList | undefined, hoverValues: HoverValues, hoverInfo: HoverInfo | undefined, spriteManager: SpriteManager, scrolling: boolean): void; | ||
interface Buffers { | ||
@@ -28,0 +30,0 @@ overlay: HTMLCanvasElement; |
import * as React from "react"; | ||
import { GridColumn, Rectangle, GridSelection, GridMouseEventArgs, GridDragEventArgs, GridKeyEventArgs, InnerGridCell, CompactSelection, DrawCustomCellCallback } from "./data-grid-types"; | ||
import { SpriteMap } from "./data-grid-sprites"; | ||
import { GroupDetailsCallback } from "./data-grid-render"; | ||
export interface DataGridProps { | ||
@@ -25,6 +26,3 @@ readonly width: number; | ||
readonly getCellContent: (cell: readonly [number, number]) => InnerGridCell; | ||
readonly getGroupDetails?: (groupName: string) => { | ||
name: string; | ||
icon?: string; | ||
}; | ||
readonly getGroupDetails?: GroupDetailsCallback; | ||
readonly onHeaderMenuClick?: (col: number, screenPosition: Rectangle) => void; | ||
@@ -96,6 +94,3 @@ readonly selectedRows?: CompactSelection; | ||
readonly getCellContent: (cell: readonly [number, number]) => InnerGridCell; | ||
readonly getGroupDetails?: ((groupName: string) => { | ||
name: string; | ||
icon?: string | undefined; | ||
}) | undefined; | ||
readonly getGroupDetails?: GroupDetailsCallback | undefined; | ||
readonly onHeaderMenuClick?: ((col: number, screenPosition: Rectangle) => void) | undefined; | ||
@@ -102,0 +97,0 @@ readonly selectedRows?: CompactSelection | undefined; |
{ | ||
"name": "@glideapps/glide-data-grid", | ||
"version": "3.1.1-alpha1", | ||
"version": "3.1.1-alpha2", | ||
"description": "Super fast, pure canvas Data Grid Editor", | ||
@@ -5,0 +5,0 @@ "main": "dist/js/index.js", |
284839