-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Summary
Current HitTestResult resolves to cell-level granularity only: { region, row, col }. There is no mechanism for identifying sub-cell interactive elements (expander icons, sort buttons, links, action buttons within a cell).
Current State
EventTranslatoremitscellClick(row, col)— no sub-cell infoHitRegionhas:cell,header,header-sort-icon,header-filter-icon,row-number,row-group-toggle,corner,outside- Header-level sub-elements (sort/filter icons) ARE supported, but only in column headers
- No API for
CellTypeRendererto declare clickable zones
Proposed API
interface CellHitZone {
id: string; // e.g. "expander", "sort-icon", "link", "action-btn"
x: number; // relative to cell origin
y: number;
width: number;
height: number;
cursor?: string; // CSS cursor on hover
}
interface CellTypeRenderer {
// ... existing methods ...
getHitZones?(value: CellValue, cellWidth: number, cellHeight: number, theme: SpreadsheetTheme): CellHitZone[];
}Events would extend to:
engine.on("cellClick", (row, col, hitZoneId?: string) => { ... });
engine.on("cellHover", (row, col, hitZoneId?: string) => { ... });Motivation
Consumers (e.g., planeta-worktree2) build custom DimensionCellHitTester classes that subscribe to gridMouseDown/gridMouseMove and manually compute hit zones. A native API would make this unnecessary.
Files to modify
packages/core/src/types/cell-type-registry.ts— addgetHitZonestoCellTypeRendererpackages/core/src/events/event-translator.ts— resolve sub-cell zonespackages/core/src/types/interfaces.ts—CellHitZone, extended event types
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request