From 529394d5fdf24c92613c4034dafa67cfe5851107 Mon Sep 17 00:00:00 2001 From: maks Date: Tue, 25 Feb 2025 18:29:38 +0000 Subject: [PATCH] feat: provided extra type info for selection --- src/components/revoGrid/revo-grid.tsx | 2 +- src/components/revoGrid/viewport.service.ts | 26 +++++++++++++++++++-- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/components/revoGrid/revo-grid.tsx b/src/components/revoGrid/revo-grid.tsx index 716fd2e0..08bfb463 100644 --- a/src/components/revoGrid/revo-grid.tsx +++ b/src/components/revoGrid/revo-grid.tsx @@ -904,7 +904,7 @@ export class RevoGridComponent { /** * Get the currently selected Range. */ - @Method() async getSelectedRange(): Promise { + @Method() async getSelectedRange(): Promise { return this.viewport?.getSelectedRange() ?? null; } diff --git a/src/components/revoGrid/viewport.service.ts b/src/components/revoGrid/viewport.service.ts index e6b3210e..999e66b9 100644 --- a/src/components/revoGrid/viewport.service.ts +++ b/src/components/revoGrid/viewport.service.ts @@ -9,6 +9,7 @@ import { CONTENT_SLOT, FOOTER_SLOT, HEADER_SLOT, viewportDataPartition, VPPartit import ColumnDataProvider from '../../services/column.data.provider'; import { DataProvider } from '../../services/data.provider'; import type { + AllDimensionType, Cell, ColumnRegular, DimensionCols, @@ -324,8 +325,29 @@ export default class ViewportService { } } - getSelectedRange(): RangeArea | null | undefined { - return this.config.selectionStoreConnector.selectedRange; + getSelectedRange(): RangeArea & AllDimensionType | null | undefined { + + const focused = this.config.selectionStoreConnector.focusedStore; + if (!focused) { + return null; + } + // get column data + const colType = + this.config.selectionStoreConnector.storesXToType[focused.position.x]; + + // get row data + const rowType = + this.config.selectionStoreConnector.storesYToType[focused.position.y]; + + const range = focused.entity.store.get('range'); + if (!range) { + return null; + } + return { + ...range, + colType, + rowType, + } } setEdit(