@rowsncolumns/spreadsheet 10.5.6 → 10.5.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/dist/cjs/components/canvas-grid/index.d.ts.map +1 -1
  2. package/dist/cjs/components/canvas-grid/index.js +111 -59
  3. package/dist/cjs/components/canvas-grid/typings.d.ts +9 -1
  4. package/dist/cjs/components/canvas-grid/typings.d.ts.map +1 -1
  5. package/dist/cjs/components/cell/index.d.ts.map +1 -1
  6. package/dist/cjs/components/cell/index.js +15 -6
  7. package/dist/cjs/components/cell/line-height.d.ts +10 -10
  8. package/dist/cjs/components/cell/line-height.d.ts.map +1 -1
  9. package/dist/cjs/components/cell/line-height.js +17 -19
  10. package/dist/cjs/components/cell/typings.d.ts +3 -1
  11. package/dist/cjs/components/cell/typings.d.ts.map +1 -1
  12. package/dist/cjs/components/cell-editor/index.d.ts +1 -1
  13. package/dist/cjs/components/cell-editor/index.d.ts.map +1 -1
  14. package/dist/cjs/components/cell-editor/index.js +42 -8
  15. package/dist/cjs/helpers.d.ts.map +1 -1
  16. package/dist/cjs/helpers.js +2 -1
  17. package/dist/cjs/hooks/use-editable.d.ts +30 -1
  18. package/dist/cjs/hooks/use-editable.d.ts.map +1 -1
  19. package/dist/cjs/hooks/use-editable.js +81 -13
  20. package/dist/cjs/hooks/use-editor-keydown.d.ts +2 -1
  21. package/dist/cjs/hooks/use-editor-keydown.d.ts.map +1 -1
  22. package/dist/cjs/hooks/use-editor-keydown.js +5 -3
  23. package/dist/cjs/hooks/use-keyboard-handler.d.ts +9 -1
  24. package/dist/cjs/hooks/use-keyboard-handler.d.ts.map +1 -1
  25. package/dist/cjs/hooks/use-keyboard-handler.js +46 -4
  26. package/dist/cjs/hooks/use-sizer.d.ts +3 -1
  27. package/dist/cjs/hooks/use-sizer.d.ts.map +1 -1
  28. package/dist/cjs/hooks/use-sizer.js +7 -4
  29. package/dist/cjs/platform.d.ts +9 -0
  30. package/dist/cjs/platform.d.ts.map +1 -0
  31. package/dist/cjs/platform.js +21 -0
  32. package/dist/cjs/release-date.js +1 -1
  33. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  34. package/dist/esm/components/canvas-grid/index.d.ts.map +1 -1
  35. package/dist/esm/components/canvas-grid/index.js +51 -3
  36. package/dist/esm/components/canvas-grid/typings.d.ts +9 -1
  37. package/dist/esm/components/canvas-grid/typings.d.ts.map +1 -1
  38. package/dist/esm/components/cell/index.d.ts.map +1 -1
  39. package/dist/esm/components/cell/index.js +17 -8
  40. package/dist/esm/components/cell/line-height.d.ts +10 -10
  41. package/dist/esm/components/cell/line-height.d.ts.map +1 -1
  42. package/dist/esm/components/cell/line-height.js +15 -15
  43. package/dist/esm/components/cell/typings.d.ts +3 -1
  44. package/dist/esm/components/cell/typings.d.ts.map +1 -1
  45. package/dist/esm/components/cell-editor/index.d.ts +1 -1
  46. package/dist/esm/components/cell-editor/index.d.ts.map +1 -1
  47. package/dist/esm/components/cell-editor/index.js +37 -4
  48. package/dist/esm/helpers.d.ts.map +1 -1
  49. package/dist/esm/helpers.js +2 -1
  50. package/dist/esm/hooks/use-editable.d.ts +30 -1
  51. package/dist/esm/hooks/use-editable.d.ts.map +1 -1
  52. package/dist/esm/hooks/use-editable.js +78 -7
  53. package/dist/esm/hooks/use-editor-keydown.d.ts +2 -1
  54. package/dist/esm/hooks/use-editor-keydown.d.ts.map +1 -1
  55. package/dist/esm/hooks/use-editor-keydown.js +5 -3
  56. package/dist/esm/hooks/use-keyboard-handler.d.ts +9 -1
  57. package/dist/esm/hooks/use-keyboard-handler.d.ts.map +1 -1
  58. package/dist/esm/hooks/use-keyboard-handler.js +46 -4
  59. package/dist/esm/hooks/use-sizer.d.ts +3 -1
  60. package/dist/esm/hooks/use-sizer.d.ts.map +1 -1
  61. package/dist/esm/hooks/use-sizer.js +8 -5
  62. package/dist/esm/platform.d.ts +9 -0
  63. package/dist/esm/platform.d.ts.map +1 -0
  64. package/dist/esm/platform.js +16 -0
  65. package/dist/esm/release-date.js +1 -1
  66. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  67. package/package.json +2 -2
@@ -133,7 +133,7 @@ function isDetachedEditor(editor) {
133
133
  }
134
134
  function CanvasGridComponent(props, forwardedRef) {
135
135
  var _a, _b, _c, _d;
136
- var licenseKey = props.licenseKey, sheetId = props.sheetId, sheetType = props.sheetType, _e = props.ChartSheetView, ChartSheetViewComponent = _e === void 0 ? chart_sheet_view_1.ChartSheetView : _e, instanceId = props.instanceId, _f = props.activeCell, activeCell = _f === void 0 ? config_1.DEFAULT_ACTIVE_CELL : _f, _g = props.selections, selections = _g === void 0 ? config_1.DEFAULT_ARRAY : _g, _h = props.frozenColumnCount, frozenColumnCount = _h === void 0 ? 0 : _h, _j = props.frozenRowCount, frozenRowCount = _j === void 0 ? 0 : _j, _k = props.rowCount, rowCount = _k === void 0 ? config_1.DEFAULT_ROW_COUNT : _k, _l = props.columnCount, columnCount = _l === void 0 ? config_1.DEFAULT_COLUMN_COUNT : _l, autoFocus = props.autoFocus, basicFilter = props.basicFilter, tables = props.tables, namedRanges = props.namedRanges, _m = props.bandedRanges, bandedRanges = _m === void 0 ? config_1.DEFAULT_ARRAY : _m, _o = props.tableBorderColor, tableBorderColor = _o === void 0 ? "#008000" : _o, _p = props.filterIconColor, filterIconColor = _p === void 0 ? "#008000" : _p, conditionalFormats = props.conditionalFormats, _q = props.showFilterIcon, showFilterIcon = _q === void 0 ? true : _q, _r = props.showCalculatedColumnIcon, showCalculatedColumnIcon = _r === void 0 ? true : _r, _s = props.showHeaders, showHeaders = _s === void 0 ? true : _s, _t = props.defaultColumnWidth, defaultColumnWidth = _t === void 0 ? config_1.DEFAULT_COLUMN_WIDTH : _t, _u = props.defaultRowHeight, defaultRowHeight = _u === void 0 ? config_1.DEFAULT_ROW_HEIGHT : _u, _v = props.lineHeightMode, lineHeightMode = _v === void 0 ? "fontMetrics" : _v, _w = props.columnHeaderHeight, columnHeaderHeight = _w === void 0 ? config_1.COLUMN_HEADER_HEIGHT : _w, _x = props.rowHeaderWidth, rowHeaderWidth = _x === void 0 ? config_1.ROW_HEADER_WIDTH : _x, _y = props.gridLineColor, gridLineColor = _y === void 0 ? config_1.GRIDLINE_COLOR : _y, _z = props.cellBackgroundColor, cellBackgroundColor = _z === void 0 ? config_1.DEFAULT_CELL_BACKGROUND_COLOR : _z, _0 = props.cellColor, cellColor = _0 === void 0 ? config_1.DEFAULT_CELL_COLOR : _0, _1 = props.headerBorderColor, headerBorderColor = _1 === void 0 ? config_1.DEFAULT_HEADER_BORDER_COLOR : _1, _2 = props.headerBackgroundColor, headerBackgroundColor = _2 === void 0 ? config_1.DEFAULT_HEADER_BG : _2, _3 = props.headerColor, headerColor = _3 === void 0 ? config_1.DEFAULT_HEADER_COLOR : _3, _4 = props.headerActiveBackgroundColor, headerActiveBackgroundColor = _4 === void 0 ? config_1.DEFAULT_HEADER_ACTIVE_BG : _4, _5 = props.headerSelectedBackgroundColor, headerSelectedBackgroundColor = _5 === void 0 ? config_1.DEFAULT_HEADER_SELECTED_BG : _5, _6 = props.headerSelectedColor, headerSelectedColor = _6 === void 0 ? "white" : _6, _7 = props.headerTableBackgroundColor, headerTableBackgroundColor = _7 === void 0 ? config_1.DEFAULT_HEADER_TABLE_BG : _7, _8 = props.headerTableActiveBackgroundColor, headerTableActiveBackgroundColor = _8 === void 0 ? config_1.DEFAULT_HEADER_ACTIVE_TABLE_BG : _8, _9 = props.headerTableSelectedBackgroundColor, headerTableSelectedBackgroundColor = _9 === void 0 ? config_1.DEFAULT_HEADER_SELECTED_TABLE_BG : _9, _10 = props.frozenShadowColor, frozenShadowColor = _10 === void 0 ? headerBorderColor : _10, _11 = props.frozenShadowThickness, frozenShadowThickness = _11 === void 0 ? 1 : _11, _12 = props.selectionBackgroundColor, selectionBackgroundColor = _12 === void 0 ? config_1.SELECTION_BG : _12, _13 = props.selectionBorderColor, selectionBorderColor = _13 === void 0 ? config_1.SELECTION_BORDER : _13, selectionStrokeWidth = props.selectionStrokeWidth, showActiveCellBorderInSelection = props.showActiveCellBorderInSelection, _14 = props.selectionDragBorderColor, selectionDragBorderColor = _14 === void 0 ? config_1.SELECTION_BORDER : _14, chartSelectedColor = props.chartSelectedColor, _15 = props.chipBackgroundColor, chipBackgroundColor = _15 === void 0 ? config_1.CHIP_COLOR : _15, _16 = props.merges, merges = _16 === void 0 ? config_1.DEFAULT_ARRAY : _16, borderStyles = props.borderStyles, protectedRanges = props.protectedRanges, _17 = props.isWorkbookProtected, isWorkbookProtectedProp = _17 === void 0 ? false : _17, getSheetProtection = props.getSheetProtection, pivotTables = props.pivotTables, charts = props.charts, onUpdateChart = props.onUpdateChart, onChangeZOrder = props.onChangeZOrder, embeds = props.embeds, slicers = props.slicers, _18 = props.rowMetadata, rowMetadata = _18 === void 0 ? config_1.DEFAULT_ARRAY : _18, _19 = props.columnMetadata, columnMetadata = _19 === void 0 ? config_1.DEFAULT_ARRAY : _19, _20 = props.scale, scale = _20 === void 0 ? 1 : _20, _21 = props.zoomSpeed, zoomSpeed = _21 === void 0 ? 1 : _21, _22 = props.overscanCount, overscanCount = _22 === void 0 ? 3 : _22, _23 = props.enableEditOnEnterKey, enableEditOnEnterKey = _23 === void 0 ? true : _23, shouldHandleKeyDown = props.shouldHandleKeyDown, _24 = props.enableTextOverflow, enableTextOverflow = _24 === void 0 ? true : _24, _showGridLines = props.showGridLines, _25 = props.showFormulas, showFormulas = _25 === void 0 ? false : _25, _26 = props.protectFormulas, protectFormulas = _26 === void 0 ? false : _26, _27 = props.showFrozenSeparator, showFrozenSeparator = _27 === void 0 ? true : _27, _28 = props.HeaderCell, HeaderCell = _28 === void 0 ? header_cell_1.HeaderCell : _28, _29 = props.Cell, Cell = _29 === void 0 ? cell_1.Cell : _29, _30 = props.SelectionTitleComponent, SelectionTitleComponent = _30 === void 0 ? title_1.SelectionTitle : _30, _31 = props.CellEditor, CellEditor = _31 === void 0 ? cell_editor_1.CellEditor : _31, CellTooltip = props.CellTooltip, _32 = props.ContextMenu, ContextMenu = _32 === void 0 ? context_menu_1.ContextMenu : _32, _33 = props.ContextMenuWrapper, ContextMenuWrapper = _33 === void 0 ? use_context_menu_1.DefaultContextMenuWrapper : _33, _34 = props.FilterBox, FilterBox = _34 === void 0 ? filter_box_1.FilterBox : _34, _35 = props.HeaderMoveDragComponent, HeaderMoveDragComponent = _35 === void 0 ? header_move_1.HeaderMoveDragComponent : _35, SuggestionsDropdown = props.SuggestionsDropdown, _36 = props.stickyEditor, stickyEditor = _36 === void 0 ? true : _36, _37 = props.scrollSnap, scrollSnap = _37 === void 0 ? false : _37, scrollThrottleTimeout = props.scrollThrottleTimeout, preventBrowserDefaultScroll = props.preventBrowserDefaultScroll, _38 = props.mouseMoveThrottleTimeout, mouseMoveThrottleTimeout = _38 === void 0 ? 60 : _38, _39 = props.tooltipIntentInterval, tooltipIntentInterval = _39 === void 0 ? 60 : _39, selectionPolicy = props.selectionPolicy, users = props.users, userId = props.userId, renderCollaboratorCursor = props.renderCollaboratorCursor, functionDescriptions = props.functionDescriptions, _40 = props.showHeaderMenuButton, showHeaderMenuButton = _40 === void 0 ? true : _40, _41 = props.scrollbarSize, scrollbarSize = _41 === void 0 ? config_1.SCROLLBAR_SIZE : _41, _42 = props.theme, theme = _42 === void 0 ? config_1.defaultSpreadsheetTheme : _42, _43 = props.showNotes, showNotes = _43 === void 0 ? true : _43, _44 = props.showComments, showComments = _44 === void 0 ? true : _44, locale = props.locale, formulaLocaleProp = props.formulaLocale, agentSuggestions = props.agentSuggestions, onReviewSuggestion = props.onReviewSuggestion, onShowFormulas = props.onShowFormulas, getDataRowCount = props.getDataRowCount, getDataRegion = props.getDataRegion, getChartComponent = props.getChartComponent, getEmbedComponent = props.getEmbedComponent, getSlicerComponent = props.getSlicerComponent, onChange = props.onChange, onChangeBatch = props.onChangeBatch, onExpandCollapse = props.onExpandCollapse, onPivotDrillDown = props.onPivotDrillDown, onDelete = props.onDelete, onChangeEditorValue = props.onChangeEditorValue, onFill = props.onFill, onRequestCalculate = props.onRequestCalculate, onChangeActiveCell = props.onChangeActiveCell, onChangeActiveSheet = props.onChangeActiveSheet, onChangeSelections = props.onChangeSelections, getSheetName = props.getSheetName, getSheetId = props.getSheetId, getCellData = props.getCellData, getNoteProp = props.getNote, getTextFormatRuns = props.getTextFormatRuns, getDataValidation = props.getDataValidation, getEffectiveFormat = props.getEffectiveFormat, getFormattedValueProp = props.getFormattedValue, getTooltipContent = props.getTooltipContent, errorResolutionComponent = props.errorResolutionComponent, getEffectiveValueProp = props.getEffectiveValue, getSparklineGroup = props.getSparklineGroup, getUserEnteredExtendedValue = props.getUserEnteredExtendedValue, getEffectiveExtendedValue = props.getEffectiveExtendedValue, getSheetRowCount = props.getSheetRowCount, getSheetColumnCount = props.getSheetColumnCount, getCellPopoverContent = props.getCellPopoverContent, onScroll = props.onScroll, onViewPortChange = props.onViewPortChange, _45 = props.windowConditionalFormats, windowConditionalFormats = _45 === void 0 ? false : _45, _46 = props.engineConditionalFormatResults, engineConditionalFormatResults = _46 === void 0 ? false : _46, onResize = props.onResize, onAutoResize = props.onAutoResize, onHideColumn = props.onHideColumn, onHideRow = props.onHideRow, onShowColumn = props.onShowColumn, onShowRow = props.onShowRow, onGroupRows = props.onGroupRows, onUngroupRows = props.onUngroupRows, onCollapseRowGroup = props.onCollapseRowGroup, onExpandRowGroup = props.onExpandRowGroup, onGroupColumns = props.onGroupColumns, onUngroupColumns = props.onUngroupColumns, onCollapseColumnGroup = props.onCollapseColumnGroup, onExpandColumnGroup = props.onExpandColumnGroup, onSetOutlineDepth = props.onSetOutlineDepth, onDeleteRow = props.onDeleteRow, onDeleteColumn = props.onDeleteColumn, onInsertRow = props.onInsertRow, onInsertColumn = props.onInsertColumn, onChangeAutoExpandTables = props.onChangeAutoExpandTables, onChangeAutoCalculatedColumns = props.onChangeAutoCalculatedColumns, onInsertCellsShiftDown = props.onInsertCellsShiftDown, onInsertCellsShiftRight = props.onInsertCellsShiftRight, onDeleteCellsShiftLeft = props.onDeleteCellsShiftLeft, onDeleteCellsShiftUp = props.onDeleteCellsShiftUp, onClearContents = props.onClearContents, onMoveColumns = props.onMoveColumns, onMoveRows = props.onMoveRows, onSelectNextSheet = props.onSelectNextSheet, onSelectPreviousSheet = props.onSelectPreviousSheet, onCreateNewSheet = props.onCreateNewSheet, onKeyDown = props.onKeyDown, onChangeFormatting = props.onChangeFormatting, onRepeatFormatting = props.onRepeatFormatting, onClearFormatting = props.onClearFormatting, onRequestEditProtectedRange = props.onRequestEditProtectedRange, onMoveChart = props.onMoveChart, onResizeChart = props.onResizeChart, onDeleteChart = props.onDeleteChart, onCutChart = props.onCutChart, onCopyChart = props.onCopyChart, onMoveEmbed = props.onMoveEmbed, onResizeEmbed = props.onResizeEmbed, onDeleteEmbed = props.onDeleteEmbed, onRequestEditEmbed = props.onRequestEditEmbed, onMoveSlicer = props.onMoveSlicer, onResizeSlicer = props.onResizeSlicer, onDeleteSlicer = props.onDeleteSlicer, onRequestEditSlicer = props.onRequestEditSlicer, onFillRange = props.onFillRange, disableFillRightShortcut = props.disableFillRightShortcut, keymap = props.keymap, onCalculateNow = props.onCalculateNow, onRequestGoTo = props.onRequestGoTo, onMoveSelection = props.onMoveSelection, onInsertCutCells = props.onInsertCutCells, onInsertTime = props.onInsertTime, onInsertDate = props.onInsertDate, onInsertDateTime = props.onInsertDateTime, onInsertAutoSum = props.onInsertAutoSum, onUndo = props.onUndo, onRedo = props.onRedo, batchHistory = props.batchHistory, onPaste = props.onPaste, onCopy = props.onCopy, onCut = props.onCut, onSortColumn = props.onSortColumn, onSortTable = props.onSortTable, onFilterTable = props.onFilterTable, onFilterPivot = props.onFilterPivot, onResizeTable = props.onResizeTable, onUndoTableAutoExpansion = props.onUndoTableAutoExpansion, onUndoCalculatedColumn = props.onUndoCalculatedColumn, onOverwriteCalculatedColumn = props.onOverwriteCalculatedColumn, onRequestEditTable = props.onRequestEditTable, onRequestEditPivotTable = props.onRequestEditPivotTable, onRequestDeletePivotTable = props.onRequestDeletePivotTable, onRequestCreatePivotChart = props.onRequestCreatePivotChart, onRemoveTable = props.onRemoveTable, onCreateTable = props.onCreateTable, onRequestCreateTable = props.onRequestCreateTable, onInsertTableColumn = props.onInsertTableColumn, onDeleteTableColumn = props.onDeleteTableColumn, onInsertTableRow = props.onInsertTableRow, onDeleteTableRow = props.onDeleteTableRow, onUpdateTable = props.onUpdateTable, onRequestResizeTable = props.onRequestResizeTable, onRequestInsertSlicer = props.onRequestInsertSlicer, onCreateBasicFilter = props.onCreateBasicFilter, onRequestDefineNamedRange = props.onRequestDefineNamedRange, onRequestFormatCells = props.onRequestFormatCells, onRequestConditionalFormat = props.onRequestConditionalFormat, onRequestDataValidation = props.onRequestDataValidation, onRequestInsertComment = props.onRequestInsertComment, onRequestInsertLink = props.onRequestInsertLink, onFreezeColumn = props.onFreezeColumn, onFreezeRow = props.onFreezeRow, onUpdateNote = props.onUpdateNote, onProtectRange = props.onProtectRange, onUnProtectRange = props.onUnProtectRange, onSortRange = props.onSortRange, onRequestSearch = props.onRequestSearch, onRequestReplace = props.onRequestReplace, onRequestResize = props.onRequestResize, _47 = props.getRowHeaderText, getRowHeaderText = _47 === void 0 ? helpers_1.getDefaultRowHeader : _47, _48 = props.getColumnHeaderText, getColumnHeaderText = _48 === void 0 ? helpers_1.getDefaultColumnHeader : _48, getAdditionalCellSpacing = props.getAdditionalCellSpacing, _49 = props.tokenizer, defaultTokenizer = _49 === void 0 ? calculator_1.tokenize : _49, onChangeScale = props.onChangeScale, onRemoveLink = props.onRemoveLink, onSelectLink = props.onSelectLink, onSplitTextToColumns = props.onSplitTextToColumns, onRemoveDuplicates = props.onRemoveDuplicates, onGoalSeek = props.onGoalSeek, onSubtotal = props.onSubtotal, onAdvancedFilter = props.onAdvancedFilter, onRequestExpand = props.onRequestExpand, cellExpandPredicate = props.cellExpandPredicate, _50 = props.StructuredResult, StructuredResult = _50 === void 0 ? cell_structured_1.StructuredResultRenderer : _50, getMentions = props.getMentions, getStructuredPropertiesProp = props.getStructuredProperties, getFunctionParameterSuggestions = props.getFunctionParameterSuggestions, shouldFetchFunctionParameters = props.shouldFetchFunctionParameters, MentionTagComponent = props.MentionTagComponent, MentionDropdownItemComponent = props.MentionDropdownItemComponent, _51 = props.showSelectionResizeHandles, showSelectionResizeHandles = _51 === void 0 ? true : _51, enableMagicFill = props.enableMagicFill, _52 = props.enableQuickEdit, enableQuickEdit = _52 === void 0 ? true : _52, MagicFillComponent = props.MagicFillComponent, MagicFillContent = props.MagicFillContent, QuickEdit = props.QuickEdit, PasteMenu = props.PasteMenu, SuggestionAction = props.SuggestionAction, HiddenRowMarkers = props.HiddenRowMarkers, HiddenColumnMarkers = props.HiddenColumnMarkers, enableResizerOverflow = props.enableResizerOverflow, className = props.className, _53 = props.defaultFontSizePoint, defaultFontSizePoint = _53 === void 0 ? config_1.DEFAULT_FONT_SIZE_PT : _53, defaultCellFormat = props.defaultCellFormat, readonly = props.readonly, _54 = props.isComparing, isComparing = _54 === void 0 ? false : _54, getCellDiff = props.getCellDiff, enableDataBoundaryNavigation = props.enableDataBoundaryNavigation, footerHeight = props.footerHeight, footerComponent = props.footerComponent, arrowComponents = props.arrowComponents,
136
+ var licenseKey = props.licenseKey, sheetId = props.sheetId, sheetType = props.sheetType, _e = props.ChartSheetView, ChartSheetViewComponent = _e === void 0 ? chart_sheet_view_1.ChartSheetView : _e, instanceId = props.instanceId, _f = props.activeCell, activeCell = _f === void 0 ? config_1.DEFAULT_ACTIVE_CELL : _f, _g = props.selections, selections = _g === void 0 ? config_1.DEFAULT_ARRAY : _g, _h = props.frozenColumnCount, frozenColumnCount = _h === void 0 ? 0 : _h, _j = props.frozenRowCount, frozenRowCount = _j === void 0 ? 0 : _j, _k = props.rowCount, rowCount = _k === void 0 ? config_1.DEFAULT_ROW_COUNT : _k, _l = props.columnCount, columnCount = _l === void 0 ? config_1.DEFAULT_COLUMN_COUNT : _l, autoFocus = props.autoFocus, basicFilter = props.basicFilter, tables = props.tables, namedRanges = props.namedRanges, _m = props.bandedRanges, bandedRanges = _m === void 0 ? config_1.DEFAULT_ARRAY : _m, _o = props.tableBorderColor, tableBorderColor = _o === void 0 ? "#008000" : _o, _p = props.filterIconColor, filterIconColor = _p === void 0 ? "#008000" : _p, conditionalFormats = props.conditionalFormats, _q = props.showFilterIcon, showFilterIcon = _q === void 0 ? true : _q, _r = props.showCalculatedColumnIcon, showCalculatedColumnIcon = _r === void 0 ? true : _r, _s = props.showHeaders, showHeaders = _s === void 0 ? true : _s, _t = props.defaultColumnWidth, defaultColumnWidth = _t === void 0 ? config_1.DEFAULT_COLUMN_WIDTH : _t, _u = props.defaultRowHeight, defaultRowHeight = _u === void 0 ? config_1.DEFAULT_ROW_HEIGHT : _u, _v = props.lineHeightMode, lineHeightMode = _v === void 0 ? "fontMetrics" : _v, _w = props.columnHeaderHeight, columnHeaderHeight = _w === void 0 ? config_1.COLUMN_HEADER_HEIGHT : _w, _x = props.rowHeaderWidth, rowHeaderWidth = _x === void 0 ? config_1.ROW_HEADER_WIDTH : _x, _y = props.gridLineColor, gridLineColor = _y === void 0 ? config_1.GRIDLINE_COLOR : _y, _z = props.cellBackgroundColor, cellBackgroundColor = _z === void 0 ? config_1.DEFAULT_CELL_BACKGROUND_COLOR : _z, _0 = props.cellColor, cellColor = _0 === void 0 ? config_1.DEFAULT_CELL_COLOR : _0, _1 = props.headerBorderColor, headerBorderColor = _1 === void 0 ? config_1.DEFAULT_HEADER_BORDER_COLOR : _1, _2 = props.headerBackgroundColor, headerBackgroundColor = _2 === void 0 ? config_1.DEFAULT_HEADER_BG : _2, _3 = props.headerColor, headerColor = _3 === void 0 ? config_1.DEFAULT_HEADER_COLOR : _3, _4 = props.headerActiveBackgroundColor, headerActiveBackgroundColor = _4 === void 0 ? config_1.DEFAULT_HEADER_ACTIVE_BG : _4, _5 = props.headerSelectedBackgroundColor, headerSelectedBackgroundColor = _5 === void 0 ? config_1.DEFAULT_HEADER_SELECTED_BG : _5, _6 = props.headerSelectedColor, headerSelectedColor = _6 === void 0 ? "white" : _6, _7 = props.headerTableBackgroundColor, headerTableBackgroundColor = _7 === void 0 ? config_1.DEFAULT_HEADER_TABLE_BG : _7, _8 = props.headerTableActiveBackgroundColor, headerTableActiveBackgroundColor = _8 === void 0 ? config_1.DEFAULT_HEADER_ACTIVE_TABLE_BG : _8, _9 = props.headerTableSelectedBackgroundColor, headerTableSelectedBackgroundColor = _9 === void 0 ? config_1.DEFAULT_HEADER_SELECTED_TABLE_BG : _9, _10 = props.frozenShadowColor, frozenShadowColor = _10 === void 0 ? headerBorderColor : _10, _11 = props.frozenShadowThickness, frozenShadowThickness = _11 === void 0 ? 1 : _11, _12 = props.selectionBackgroundColor, selectionBackgroundColor = _12 === void 0 ? config_1.SELECTION_BG : _12, _13 = props.selectionBorderColor, selectionBorderColor = _13 === void 0 ? config_1.SELECTION_BORDER : _13, selectionStrokeWidth = props.selectionStrokeWidth, showActiveCellBorderInSelection = props.showActiveCellBorderInSelection, _14 = props.selectionDragBorderColor, selectionDragBorderColor = _14 === void 0 ? config_1.SELECTION_BORDER : _14, chartSelectedColor = props.chartSelectedColor, _15 = props.chipBackgroundColor, chipBackgroundColor = _15 === void 0 ? config_1.CHIP_COLOR : _15, _16 = props.merges, merges = _16 === void 0 ? config_1.DEFAULT_ARRAY : _16, borderStyles = props.borderStyles, protectedRanges = props.protectedRanges, _17 = props.isWorkbookProtected, isWorkbookProtectedProp = _17 === void 0 ? false : _17, getSheetProtection = props.getSheetProtection, pivotTables = props.pivotTables, charts = props.charts, onUpdateChart = props.onUpdateChart, onChangeZOrder = props.onChangeZOrder, embeds = props.embeds, slicers = props.slicers, _18 = props.rowMetadata, rowMetadata = _18 === void 0 ? config_1.DEFAULT_ARRAY : _18, _19 = props.columnMetadata, columnMetadata = _19 === void 0 ? config_1.DEFAULT_ARRAY : _19, _20 = props.scale, scale = _20 === void 0 ? 1 : _20, _21 = props.zoomSpeed, zoomSpeed = _21 === void 0 ? 1 : _21, _22 = props.overscanCount, overscanCount = _22 === void 0 ? 3 : _22, enableEditOnEnterKeyProp = props.enableEditOnEnterKey, shouldHandleKeyDown = props.shouldHandleKeyDown, _23 = props.enableTextOverflow, enableTextOverflow = _23 === void 0 ? true : _23, _showGridLines = props.showGridLines, _24 = props.showFormulas, showFormulas = _24 === void 0 ? false : _24, _25 = props.protectFormulas, protectFormulas = _25 === void 0 ? false : _25, _26 = props.showFrozenSeparator, showFrozenSeparator = _26 === void 0 ? true : _26, _27 = props.HeaderCell, HeaderCell = _27 === void 0 ? header_cell_1.HeaderCell : _27, _28 = props.Cell, Cell = _28 === void 0 ? cell_1.Cell : _28, _29 = props.SelectionTitleComponent, SelectionTitleComponent = _29 === void 0 ? title_1.SelectionTitle : _29, _30 = props.CellEditor, CellEditor = _30 === void 0 ? cell_editor_1.CellEditor : _30, CellTooltip = props.CellTooltip, _31 = props.ContextMenu, ContextMenu = _31 === void 0 ? context_menu_1.ContextMenu : _31, _32 = props.ContextMenuWrapper, ContextMenuWrapper = _32 === void 0 ? use_context_menu_1.DefaultContextMenuWrapper : _32, _33 = props.FilterBox, FilterBox = _33 === void 0 ? filter_box_1.FilterBox : _33, _34 = props.HeaderMoveDragComponent, HeaderMoveDragComponent = _34 === void 0 ? header_move_1.HeaderMoveDragComponent : _34, SuggestionsDropdown = props.SuggestionsDropdown, _35 = props.stickyEditor, stickyEditor = _35 === void 0 ? true : _35, _36 = props.scrollSnap, scrollSnap = _36 === void 0 ? false : _36, scrollThrottleTimeout = props.scrollThrottleTimeout, preventBrowserDefaultScroll = props.preventBrowserDefaultScroll, _37 = props.mouseMoveThrottleTimeout, mouseMoveThrottleTimeout = _37 === void 0 ? 60 : _37, _38 = props.tooltipIntentInterval, tooltipIntentInterval = _38 === void 0 ? 60 : _38, selectionPolicy = props.selectionPolicy, users = props.users, userId = props.userId, renderCollaboratorCursor = props.renderCollaboratorCursor, functionDescriptions = props.functionDescriptions, _39 = props.showHeaderMenuButton, showHeaderMenuButton = _39 === void 0 ? true : _39, _40 = props.scrollbarSize, scrollbarSize = _40 === void 0 ? config_1.SCROLLBAR_SIZE : _40, _41 = props.theme, theme = _41 === void 0 ? config_1.defaultSpreadsheetTheme : _41, _42 = props.showNotes, showNotes = _42 === void 0 ? true : _42, _43 = props.showComments, showComments = _43 === void 0 ? true : _43, locale = props.locale, formulaLocaleProp = props.formulaLocale, agentSuggestions = props.agentSuggestions, onReviewSuggestion = props.onReviewSuggestion, onShowFormulas = props.onShowFormulas, getDataRowCount = props.getDataRowCount, getDataRegion = props.getDataRegion, getChartComponent = props.getChartComponent, getEmbedComponent = props.getEmbedComponent, getSlicerComponent = props.getSlicerComponent, onChange = props.onChange, onChangeBatch = props.onChangeBatch, onExpandCollapse = props.onExpandCollapse, onPivotDrillDown = props.onPivotDrillDown, onDelete = props.onDelete, onChangeEditorValue = props.onChangeEditorValue, onFill = props.onFill, onRequestCalculate = props.onRequestCalculate, onChangeActiveCell = props.onChangeActiveCell, onChangeActiveSheet = props.onChangeActiveSheet, onChangeSelections = props.onChangeSelections, getSheetName = props.getSheetName, getSheetId = props.getSheetId, getCellData = props.getCellData, getNoteProp = props.getNote, getTextFormatRuns = props.getTextFormatRuns, getDataValidation = props.getDataValidation, getEffectiveFormat = props.getEffectiveFormat, getFormattedValueProp = props.getFormattedValue, getTooltipContent = props.getTooltipContent, errorResolutionComponent = props.errorResolutionComponent, getEffectiveValueProp = props.getEffectiveValue, getSparklineGroup = props.getSparklineGroup, getUserEnteredExtendedValue = props.getUserEnteredExtendedValue, getEffectiveExtendedValue = props.getEffectiveExtendedValue, getSheetRowCount = props.getSheetRowCount, getSheetColumnCount = props.getSheetColumnCount, getCellPopoverContent = props.getCellPopoverContent, onScroll = props.onScroll, onViewPortChange = props.onViewPortChange, _44 = props.windowConditionalFormats, windowConditionalFormats = _44 === void 0 ? false : _44, _45 = props.engineConditionalFormatResults, engineConditionalFormatResults = _45 === void 0 ? false : _45, onResize = props.onResize, onAutoResize = props.onAutoResize, onHideColumn = props.onHideColumn, onHideRow = props.onHideRow, onShowColumn = props.onShowColumn, onShowRow = props.onShowRow, onGroupRows = props.onGroupRows, onUngroupRows = props.onUngroupRows, onCollapseRowGroup = props.onCollapseRowGroup, onExpandRowGroup = props.onExpandRowGroup, onGroupColumns = props.onGroupColumns, onUngroupColumns = props.onUngroupColumns, onCollapseColumnGroup = props.onCollapseColumnGroup, onExpandColumnGroup = props.onExpandColumnGroup, onSetOutlineDepth = props.onSetOutlineDepth, onDeleteRow = props.onDeleteRow, onDeleteColumn = props.onDeleteColumn, onInsertRow = props.onInsertRow, onInsertColumn = props.onInsertColumn, onChangeAutoExpandTables = props.onChangeAutoExpandTables, onChangeAutoCalculatedColumns = props.onChangeAutoCalculatedColumns, onInsertCellsShiftDown = props.onInsertCellsShiftDown, onInsertCellsShiftRight = props.onInsertCellsShiftRight, onDeleteCellsShiftLeft = props.onDeleteCellsShiftLeft, onDeleteCellsShiftUp = props.onDeleteCellsShiftUp, onClearContents = props.onClearContents, onMoveColumns = props.onMoveColumns, onMoveRows = props.onMoveRows, onSelectNextSheet = props.onSelectNextSheet, onSelectPreviousSheet = props.onSelectPreviousSheet, onCreateNewSheet = props.onCreateNewSheet, onKeyDown = props.onKeyDown, onChangeFormatting = props.onChangeFormatting, onRepeatFormatting = props.onRepeatFormatting, onClearFormatting = props.onClearFormatting, onRequestEditProtectedRange = props.onRequestEditProtectedRange, onMoveChart = props.onMoveChart, onResizeChart = props.onResizeChart, onDeleteChart = props.onDeleteChart, onCutChart = props.onCutChart, onCopyChart = props.onCopyChart, onMoveEmbed = props.onMoveEmbed, onResizeEmbed = props.onResizeEmbed, onDeleteEmbed = props.onDeleteEmbed, onRequestEditEmbed = props.onRequestEditEmbed, onMoveSlicer = props.onMoveSlicer, onResizeSlicer = props.onResizeSlicer, onDeleteSlicer = props.onDeleteSlicer, onRequestEditSlicer = props.onRequestEditSlicer, onFillRange = props.onFillRange, disableFillRightShortcut = props.disableFillRightShortcut, keymap = props.keymap, onCalculateNow = props.onCalculateNow, onRequestGoTo = props.onRequestGoTo, onMoveSelection = props.onMoveSelection, onInsertCutCells = props.onInsertCutCells, onInsertTime = props.onInsertTime, onInsertDate = props.onInsertDate, onInsertDateTime = props.onInsertDateTime, onInsertAutoSum = props.onInsertAutoSum, onUndo = props.onUndo, onRedo = props.onRedo, batchHistory = props.batchHistory, onPaste = props.onPaste, onCopy = props.onCopy, onCut = props.onCut, onSortColumn = props.onSortColumn, onSortTable = props.onSortTable, onFilterTable = props.onFilterTable, onFilterPivot = props.onFilterPivot, onResizeTable = props.onResizeTable, onUndoTableAutoExpansion = props.onUndoTableAutoExpansion, onUndoCalculatedColumn = props.onUndoCalculatedColumn, onOverwriteCalculatedColumn = props.onOverwriteCalculatedColumn, onRequestEditTable = props.onRequestEditTable, onRequestEditPivotTable = props.onRequestEditPivotTable, onRequestDeletePivotTable = props.onRequestDeletePivotTable, onRequestCreatePivotChart = props.onRequestCreatePivotChart, onRemoveTable = props.onRemoveTable, onCreateTable = props.onCreateTable, onRequestCreateTable = props.onRequestCreateTable, onInsertTableColumn = props.onInsertTableColumn, onDeleteTableColumn = props.onDeleteTableColumn, onInsertTableRow = props.onInsertTableRow, onDeleteTableRow = props.onDeleteTableRow, onUpdateTable = props.onUpdateTable, onRequestResizeTable = props.onRequestResizeTable, onRequestInsertSlicer = props.onRequestInsertSlicer, onCreateBasicFilter = props.onCreateBasicFilter, onRequestDefineNamedRange = props.onRequestDefineNamedRange, onRequestFormatCells = props.onRequestFormatCells, onRequestConditionalFormat = props.onRequestConditionalFormat, onRequestDataValidation = props.onRequestDataValidation, onRequestInsertComment = props.onRequestInsertComment, onRequestInsertLink = props.onRequestInsertLink, onFreezeColumn = props.onFreezeColumn, onFreezeRow = props.onFreezeRow, onUpdateNote = props.onUpdateNote, onProtectRange = props.onProtectRange, onUnProtectRange = props.onUnProtectRange, onSortRange = props.onSortRange, onRequestSearch = props.onRequestSearch, onRequestReplace = props.onRequestReplace, onRequestResize = props.onRequestResize, _46 = props.getRowHeaderText, getRowHeaderText = _46 === void 0 ? helpers_1.getDefaultRowHeader : _46, _47 = props.getColumnHeaderText, getColumnHeaderText = _47 === void 0 ? helpers_1.getDefaultColumnHeader : _47, getAdditionalCellSpacing = props.getAdditionalCellSpacing, _48 = props.tokenizer, defaultTokenizer = _48 === void 0 ? calculator_1.tokenize : _48, onChangeScale = props.onChangeScale, onRemoveLink = props.onRemoveLink, onSelectLink = props.onSelectLink, onSplitTextToColumns = props.onSplitTextToColumns, onRemoveDuplicates = props.onRemoveDuplicates, onGoalSeek = props.onGoalSeek, onSubtotal = props.onSubtotal, onAdvancedFilter = props.onAdvancedFilter, onRequestExpand = props.onRequestExpand, cellExpandPredicate = props.cellExpandPredicate, _49 = props.StructuredResult, StructuredResult = _49 === void 0 ? cell_structured_1.StructuredResultRenderer : _49, getMentions = props.getMentions, getStructuredPropertiesProp = props.getStructuredProperties, getFunctionParameterSuggestions = props.getFunctionParameterSuggestions, shouldFetchFunctionParameters = props.shouldFetchFunctionParameters, MentionTagComponent = props.MentionTagComponent, MentionDropdownItemComponent = props.MentionDropdownItemComponent, _50 = props.showSelectionResizeHandles, showSelectionResizeHandles = _50 === void 0 ? true : _50, enableMagicFill = props.enableMagicFill, _51 = props.enableQuickEdit, enableQuickEdit = _51 === void 0 ? true : _51, MagicFillComponent = props.MagicFillComponent, MagicFillContent = props.MagicFillContent, QuickEdit = props.QuickEdit, PasteMenu = props.PasteMenu, SuggestionAction = props.SuggestionAction, HiddenRowMarkers = props.HiddenRowMarkers, HiddenColumnMarkers = props.HiddenColumnMarkers, enableResizerOverflow = props.enableResizerOverflow, className = props.className, _52 = props.defaultFontSizePoint, defaultFontSizePoint = _52 === void 0 ? config_1.DEFAULT_FONT_SIZE_PT : _52, defaultCellFormat = props.defaultCellFormat, readonly = props.readonly, _53 = props.isComparing, isComparing = _53 === void 0 ? false : _53, getCellDiff = props.getCellDiff, enableDataBoundaryNavigation = props.enableDataBoundaryNavigation, footerHeight = props.footerHeight, footerComponent = props.footerComponent, arrowComponents = props.arrowComponents,
137
137
  // Host-driven filter props. `hostHiddenRowRanges`
138
138
  // supplies compact [start, end] hidden-row tuples; `getFilterValues` supplies a
139
139
  // column's distinct values. Both let a million-row filter render without scanning
@@ -146,6 +146,9 @@ function CanvasGridComponent(props, forwardedRef) {
146
146
  getValidationSourceValue = props.getValidationSourceValue,
147
147
  // Unused props only for api
148
148
  getDataColumnCount = props.getDataColumnCount, onDeleteNamedRange = props.onDeleteNamedRange, onChangeBorder = props.onChangeBorder, onDuplicateSheet = props.onDuplicateSheet, onCreateConditionalFormattingRule = props.onCreateConditionalFormattingRule, onDeleteConditionalFormattingRule = props.onDeleteConditionalFormattingRule, onUpdateConditionalFormattingRule = props.onUpdateConditionalFormattingRule, onCreateDataValidationRule = props.onCreateDataValidationRule, onUpdateDataValidationRule = props.onUpdateDataValidationRule, onDeleteDataValidationRule = props.onDeleteDataValidationRule, onCreateChart = props.onCreateChart, onDeleteSheet = props.onDeleteSheet, onCreateEmbed = props.onCreateEmbed, onDecreaseIndent = props.onDecreaseIndent, onIncreaseIndent = props.onIncreaseIndent, onChangeTheme = props.onChangeTheme, onChangeDecimals = props.onChangeDecimals, onUpdateSheet = props.onUpdateSheet, onChangeBatchStream = props.onChangeBatchStream, onBlur = props.onBlur, rest = tslib_1.__rest(props, ["licenseKey", "sheetId", "sheetType", "ChartSheetView", "instanceId", "activeCell", "selections", "frozenColumnCount", "frozenRowCount", "rowCount", "columnCount", "autoFocus", "basicFilter", "tables", "namedRanges", "bandedRanges", "tableBorderColor", "filterIconColor", "conditionalFormats", "showFilterIcon", "showCalculatedColumnIcon", "showHeaders", "defaultColumnWidth", "defaultRowHeight", "lineHeightMode", "columnHeaderHeight", "rowHeaderWidth", "gridLineColor", "cellBackgroundColor", "cellColor", "headerBorderColor", "headerBackgroundColor", "headerColor", "headerActiveBackgroundColor", "headerSelectedBackgroundColor", "headerSelectedColor", "headerTableBackgroundColor", "headerTableActiveBackgroundColor", "headerTableSelectedBackgroundColor", "frozenShadowColor", "frozenShadowThickness", "selectionBackgroundColor", "selectionBorderColor", "selectionStrokeWidth", "showActiveCellBorderInSelection", "selectionDragBorderColor", "chartSelectedColor", "chipBackgroundColor", "merges", "borderStyles", "protectedRanges", "isWorkbookProtected", "getSheetProtection", "pivotTables", "charts", "onUpdateChart", "onChangeZOrder", "embeds", "slicers", "rowMetadata", "columnMetadata", "scale", "zoomSpeed", "overscanCount", "enableEditOnEnterKey", "shouldHandleKeyDown", "enableTextOverflow", "showGridLines", "showFormulas", "protectFormulas", "showFrozenSeparator", "HeaderCell", "Cell", "SelectionTitleComponent", "CellEditor", "CellTooltip", "ContextMenu", "ContextMenuWrapper", "FilterBox", "HeaderMoveDragComponent", "SuggestionsDropdown", "stickyEditor", "scrollSnap", "scrollThrottleTimeout", "preventBrowserDefaultScroll", "mouseMoveThrottleTimeout", "tooltipIntentInterval", "selectionPolicy", "users", "userId", "renderCollaboratorCursor", "functionDescriptions", "showHeaderMenuButton", "scrollbarSize", "theme", "showNotes", "showComments", "locale", "formulaLocale", "agentSuggestions", "onReviewSuggestion", "onShowFormulas", "getDataRowCount", "getDataRegion", "getChartComponent", "getEmbedComponent", "getSlicerComponent", "onChange", "onChangeBatch", "onExpandCollapse", "onPivotDrillDown", "onDelete", "onChangeEditorValue", "onFill", "onRequestCalculate", "onChangeActiveCell", "onChangeActiveSheet", "onChangeSelections", "getSheetName", "getSheetId", "getCellData", "getNote", "getTextFormatRuns", "getDataValidation", "getEffectiveFormat", "getFormattedValue", "getTooltipContent", "errorResolutionComponent", "getEffectiveValue", "getSparklineGroup", "getUserEnteredExtendedValue", "getEffectiveExtendedValue", "getSheetRowCount", "getSheetColumnCount", "getCellPopoverContent", "onScroll", "onViewPortChange", "windowConditionalFormats", "engineConditionalFormatResults", "onResize", "onAutoResize", "onHideColumn", "onHideRow", "onShowColumn", "onShowRow", "onGroupRows", "onUngroupRows", "onCollapseRowGroup", "onExpandRowGroup", "onGroupColumns", "onUngroupColumns", "onCollapseColumnGroup", "onExpandColumnGroup", "onSetOutlineDepth", "onDeleteRow", "onDeleteColumn", "onInsertRow", "onInsertColumn", "onChangeAutoExpandTables", "onChangeAutoCalculatedColumns", "onInsertCellsShiftDown", "onInsertCellsShiftRight", "onDeleteCellsShiftLeft", "onDeleteCellsShiftUp", "onClearContents", "onMoveColumns", "onMoveRows", "onSelectNextSheet", "onSelectPreviousSheet", "onCreateNewSheet", "onKeyDown", "onChangeFormatting", "onRepeatFormatting", "onClearFormatting", "onRequestEditProtectedRange", "onMoveChart", "onResizeChart", "onDeleteChart", "onCutChart", "onCopyChart", "onMoveEmbed", "onResizeEmbed", "onDeleteEmbed", "onRequestEditEmbed", "onMoveSlicer", "onResizeSlicer", "onDeleteSlicer", "onRequestEditSlicer", "onFillRange", "disableFillRightShortcut", "keymap", "onCalculateNow", "onRequestGoTo", "onMoveSelection", "onInsertCutCells", "onInsertTime", "onInsertDate", "onInsertDateTime", "onInsertAutoSum", "onUndo", "onRedo", "batchHistory", "onPaste", "onCopy", "onCut", "onSortColumn", "onSortTable", "onFilterTable", "onFilterPivot", "onResizeTable", "onUndoTableAutoExpansion", "onUndoCalculatedColumn", "onOverwriteCalculatedColumn", "onRequestEditTable", "onRequestEditPivotTable", "onRequestDeletePivotTable", "onRequestCreatePivotChart", "onRemoveTable", "onCreateTable", "onRequestCreateTable", "onInsertTableColumn", "onDeleteTableColumn", "onInsertTableRow", "onDeleteTableRow", "onUpdateTable", "onRequestResizeTable", "onRequestInsertSlicer", "onCreateBasicFilter", "onRequestDefineNamedRange", "onRequestFormatCells", "onRequestConditionalFormat", "onRequestDataValidation", "onRequestInsertComment", "onRequestInsertLink", "onFreezeColumn", "onFreezeRow", "onUpdateNote", "onProtectRange", "onUnProtectRange", "onSortRange", "onRequestSearch", "onRequestReplace", "onRequestResize", "getRowHeaderText", "getColumnHeaderText", "getAdditionalCellSpacing", "tokenizer", "onChangeScale", "onRemoveLink", "onSelectLink", "onSplitTextToColumns", "onRemoveDuplicates", "onGoalSeek", "onSubtotal", "onAdvancedFilter", "onRequestExpand", "cellExpandPredicate", "StructuredResult", "getMentions", "getStructuredProperties", "getFunctionParameterSuggestions", "shouldFetchFunctionParameters", "MentionTagComponent", "MentionDropdownItemComponent", "showSelectionResizeHandles", "enableMagicFill", "enableQuickEdit", "MagicFillComponent", "MagicFillContent", "QuickEdit", "PasteMenu", "SuggestionAction", "HiddenRowMarkers", "HiddenColumnMarkers", "enableResizerOverflow", "className", "defaultFontSizePoint", "defaultCellFormat", "readonly", "isComparing", "getCellDiff", "enableDataBoundaryNavigation", "footerHeight", "footerComponent", "arrowComponents", "hostHiddenRowRanges", "getFilterValues", "getFilterColors", "getValidationSourceValue", "getDataColumnCount", "onDeleteNamedRange", "onChangeBorder", "onDuplicateSheet", "onCreateConditionalFormattingRule", "onDeleteConditionalFormattingRule", "onUpdateConditionalFormattingRule", "onCreateDataValidationRule", "onUpdateDataValidationRule", "onDeleteDataValidationRule", "onCreateChart", "onDeleteSheet", "onCreateEmbed", "onDecreaseIndent", "onIncreaseIndent", "onChangeTheme", "onChangeDecimals", "onUpdateSheet", "onChangeBatchStream", "onBlur"]);
149
+ // Enter on a cell opens the editor in Google Sheets and moves down in
150
+ // Excel; a host's explicit value wins under either keymap.
151
+ var enableEditOnEnterKey = enableEditOnEnterKeyProp !== null && enableEditOnEnterKeyProp !== void 0 ? enableEditOnEnterKeyProp : keymap !== "excel";
149
152
  /**
150
153
  * Fire onBlur only when the cell editor blurs to an element outside the
151
154
  * spreadsheet. Routed through `useEditable` so we hook the always-focused
@@ -161,7 +164,7 @@ function CanvasGridComponent(props, forwardedRef) {
161
164
  var showGridLines = _showGridLines !== null && _showGridLines !== void 0 ? _showGridLines : true;
162
165
  var gridRef = (0, react_1.useRef)(null);
163
166
  // Hovered cell state (immediate, updated on mousemove)
164
- var _55 = tslib_1.__read((0, react_1.useState)(), 2), hoveredCell = _55[0], setHoveredCell = _55[1];
167
+ var _54 = tslib_1.__read((0, react_1.useState)(), 2), hoveredCell = _54[0], setHoveredCell = _54[1];
165
168
  // Delayed hovered cell for tooltips and selection titles
166
169
  var delayedHoveredCell = (0, use_delayed_value_1.useDelayedValue)(hoveredCell, tooltipIntentInterval);
167
170
  // Text overflow functionality
@@ -253,17 +256,17 @@ function CanvasGridComponent(props, forwardedRef) {
253
256
  // Cell editor
254
257
  var cellEditorInstance = (0, formula_bar_editor_value_atom_1.useCellEditorInstance)();
255
258
  // Paste menu
256
- var _56 = tslib_1.__read((0, atoms_1.useShowPasteMenu)(), 2), showPasteMenu = _56[0], setShowPasteMenu = _56[1];
259
+ var _55 = tslib_1.__read((0, atoms_1.useShowPasteMenu)(), 2), showPasteMenu = _55[0], setShowPasteMenu = _55[1];
257
260
  // Auto Fill Options smart tag / right-drag fill menu + Series dialog
258
- var _57 = tslib_1.__read((0, atoms_1.useFillOptionsState)(), 2), fillOptions = _57[0], setFillOptions = _57[1];
259
- var _58 = tslib_1.__read((0, atoms_1.useInsertOptionsState)(), 2), insertOptions = _58[0], setInsertOptions = _58[1];
260
- var _59 = tslib_1.__read((0, atoms_1.useTableAutoExpansionState)(), 2), tableAutoExpansion = _59[0], setTableAutoExpansion = _59[1];
261
- var _60 = tslib_1.__read((0, atoms_1.useCalculatedColumnFillState)(), 2), calculatedColumnFill = _60[0], setCalculatedColumnFill = _60[1];
261
+ var _56 = tslib_1.__read((0, atoms_1.useFillOptionsState)(), 2), fillOptions = _56[0], setFillOptions = _56[1];
262
+ var _57 = tslib_1.__read((0, atoms_1.useInsertOptionsState)(), 2), insertOptions = _57[0], setInsertOptions = _57[1];
263
+ var _58 = tslib_1.__read((0, atoms_1.useTableAutoExpansionState)(), 2), tableAutoExpansion = _58[0], setTableAutoExpansion = _58[1];
264
+ var _59 = tslib_1.__read((0, atoms_1.useCalculatedColumnFillState)(), 2), calculatedColumnFill = _59[0], setCalculatedColumnFill = _59[1];
262
265
  var openFillSeriesDialog = (0, atoms_1.useOpenFillSeriesDialog)();
263
266
  // Shared state
264
267
  var formulaMode = (0, atoms_1.useFormulaModeValue)();
265
268
  var formulaSelections = (0, formula_selections_atom_1.useFormulaSelections)();
266
- var _61 = tslib_1.__read((0, editing_cell_atom_1.useEditingCell)(), 2), editingCellCoordinate = _61[0], setEditingCellCoordinate = _61[1];
269
+ var _60 = tslib_1.__read((0, editing_cell_atom_1.useEditingCell)(), 2), editingCellCoordinate = _60[0], setEditingCellCoordinate = _60[1];
267
270
  var setFormulabarEditorValue = (0, formula_bar_editor_value_atom_1.useSetFormulabarEditorValue)();
268
271
  /**
269
272
  * The formula SYNTAX the editor / formula bar speak (rowsncolumns/spreadsheet#655): Excel follows
@@ -281,7 +284,7 @@ function CanvasGridComponent(props, forwardedRef) {
281
284
  var setFormulaState = (0, formula_selection_state_atom_1.useSetFormulaSelectionState)();
282
285
  var activeEditor = (0, active_editor_atom_1.useActiveEditor)();
283
286
  // Magic fill state
284
- var _62 = tslib_1.__read((0, magic_fill_state_atom_1.useQuickEditState)(), 2), quickEditValues = _62[0], setQuickEditState = _62[1];
287
+ var _61 = tslib_1.__read((0, magic_fill_state_atom_1.useQuickEditState)(), 2), quickEditValues = _61[0], setQuickEditState = _61[1];
285
288
  var setNoteEditorCell = (0, atoms_1.useSetNoteEditorCell)();
286
289
  var setPinnedTooltip = (0, atoms_1.useSetPinnedTooltip)();
287
290
  var setSpreadsheetApi = (0, spreadsheet_api_atom_1.useSetSpreadsheetApi)();
@@ -292,7 +295,7 @@ function CanvasGridComponent(props, forwardedRef) {
292
295
  var instanceStore = (0, jotai_1.useStore)({ store: spreadsheet_provider_1.multiInstanceStore });
293
296
  // To access closures
294
297
  var hoveredCellRef = (0, use_stable_ref_1.useStableRef)(hoveredCell);
295
- var _63 = tslib_1.__read((0, use_resize_observer_1.useResizeObserver)(), 2), gridContainerRef = _63[0], _64 = _63[1], width = _64.width, height = _64.height;
298
+ var _62 = tslib_1.__read((0, use_resize_observer_1.useResizeObserver)(), 2), gridContainerRef = _62[0], _63 = _62[1], width = _63.width, height = _63.height;
296
299
  var defaultFrozenDims = showHeaders ? 1 : 0;
297
300
  var frozenRows = Math.max(defaultFrozenDims, (frozenRowCount !== null && frozenRowCount !== void 0 ? frozenRowCount : 0) + defaultFrozenDims);
298
301
  var frozenColumns = Math.max(defaultFrozenDims, (frozenColumnCount !== null && frozenColumnCount !== void 0 ? frozenColumnCount : 0) + defaultFrozenDims);
@@ -304,9 +307,9 @@ function CanvasGridComponent(props, forwardedRef) {
304
307
  var sheetRowCount = Math.min(config_1.MAX_ROW_COUNT + 1, rowCount + 1);
305
308
  var sheetColumnCount = Math.min(config_1.MAX_COLUMN_COUNT + 1, columnCount + 1);
306
309
  // License key validator
307
- var _65 = tslib_1.__read((0, use_licensekey_validator_1.useLicenseKeyValidator)({
310
+ var _64 = tslib_1.__read((0, use_licensekey_validator_1.useLicenseKeyValidator)({
308
311
  licenseKey: licenseKey,
309
- }), 3), _ = _65[0], licenseType = _65[1], validatorResult = _65[2];
312
+ }), 3), _ = _64[0], licenseType = _64[1], validatorResult = _64[2];
310
313
  var isRestricted = licenseType === "solo";
311
314
  // Grid line width
312
315
  var gridLineWidth = 1 * scale;
@@ -596,6 +599,17 @@ function CanvasGridComponent(props, forwardedRef) {
596
599
  onRequestEditProtectedRange,
597
600
  getPivotTableAtCell,
598
601
  ]));
602
+ /**
603
+ * A readonly grid still opens a cell read-only on F2 / Enter / double-click,
604
+ * so a value that does not fit its cell can be read in full and copied
605
+ * (rowsncolumns/spreadsheet#1183). Locked cells of a protected sheet keep
606
+ * Excel's refusal (the host's protected-range dialog), as do pivot cells.
607
+ */
608
+ var canViewCell = (0, use_callback_ref_1.useCallbackRef)((0, react_1.useCallback)(function (_sheetId, cell) {
609
+ return readonly === true &&
610
+ !isRowHeader(cell.columnIndex) &&
611
+ !isColumnHeader(cell.rowIndex);
612
+ }, [readonly, isRowHeader, isColumnHeader]));
599
613
  /**
600
614
  * Can edit sheet
601
615
  */
@@ -1169,11 +1183,11 @@ function CanvasGridComponent(props, forwardedRef) {
1169
1183
  * Touch support
1170
1184
  * Mainly for scrolling
1171
1185
  */
1172
- var _66 = (0, use_touch_1.useTouch)({
1186
+ var _65 = (0, use_touch_1.useTouch)({
1173
1187
  scrollTo: scrollTo,
1174
1188
  scale: scale,
1175
1189
  onChangeScale: onChangeScale,
1176
- }), onTouchStart = _66.onTouchStart, onDimensionsChange = _66.onDimensionsChange, scrollToTouchDevice = _66.scrollToTouchDevice, onAfterScrollToCell = _66.onAfterScrollToCell;
1190
+ }), onTouchStart = _65.onTouchStart, onDimensionsChange = _65.onDimensionsChange, scrollToTouchDevice = _65.scrollToTouchDevice, onAfterScrollToCell = _65.onAfterScrollToCell;
1177
1191
  /**
1178
1192
  * Conditional-formatting evaluation window: the padded, tile-quantized
1179
1193
  * viewport. The raw viewport lives in a ref (no render per scroll frame);
@@ -1181,7 +1195,7 @@ function CanvasGridComponent(props, forwardedRef) {
1181
1195
  * `startTransition` so the CF recompute is low-priority and interruptible —
1182
1196
  * scrolling never blocks on it.
1183
1197
  */
1184
- var _67 = tslib_1.__read((0, react_1.useState)(cf_window_1.CF_INITIAL_WINDOW), 2), cfWindow = _67[0], setCfWindow = _67[1];
1198
+ var _66 = tslib_1.__read((0, react_1.useState)(cf_window_1.CF_INITIAL_WINDOW), 2), cfWindow = _66[0], setCfWindow = _66[1];
1185
1199
  var cfWindowRef = (0, react_1.useRef)(null);
1186
1200
  var handleViewPortChange = (0, react_1.useCallback)(function (viewport) {
1187
1201
  onViewPortChange === null || onViewPortChange === void 0 ? void 0 : onViewPortChange(viewport);
@@ -1448,14 +1462,14 @@ function CanvasGridComponent(props, forwardedRef) {
1448
1462
  : localeTokenizerBase,
1449
1463
  });
1450
1464
  // Helper function to convert a selection to readable selection address
1451
- var _68 = tslib_1.__read((0, use_create_address_from_selection_1.useCreateAddressFromSelection)({
1465
+ var _67 = tslib_1.__read((0, use_create_address_from_selection_1.useCreateAddressFromSelection)({
1452
1466
  sheetId: sheetId,
1453
1467
  rowCount: rowCount,
1454
1468
  columnCount: columnCount,
1455
1469
  tables: tables !== null && tables !== void 0 ? tables : undefined,
1456
1470
  namedRanges: namedRanges !== null && namedRanges !== void 0 ? namedRanges : undefined,
1457
1471
  merges: merges,
1458
- }), 2), getAddressFromSelection = _68[0], getR1C1AddressFromSelection = _68[1];
1472
+ }), 2), getAddressFromSelection = _67[0], getR1C1AddressFromSelection = _67[1];
1459
1473
  /**
1460
1474
  * Exports a data region as image
1461
1475
  */
@@ -1501,7 +1515,7 @@ function CanvasGridComponent(props, forwardedRef) {
1501
1515
  * Get user entered value from a range
1502
1516
  * of cells
1503
1517
  */
1504
- var _69 = tslib_1.__read((0, use_get_values_from_range_1.useGetValuesFromRange)({
1518
+ var _68 = tslib_1.__read((0, use_get_values_from_range_1.useGetValuesFromRange)({
1505
1519
  sheetId: sheetId,
1506
1520
  getSelectionsFromFormula: getSelectionsFromFormula,
1507
1521
  getFormattedValue: getFormattedValue,
@@ -1509,7 +1523,7 @@ function CanvasGridComponent(props, forwardedRef) {
1509
1523
  getSheetId: getSheetId,
1510
1524
  onRequestCalculate: onRequestCalculate,
1511
1525
  getValidationSourceValue: getValidationSourceValue,
1512
- }), 3), getFormattedValuesFromAddress = _69[0], getEffectiveValuesFromRange = _69[1], getFormattedValuesFromAddressAsync = _69[2];
1526
+ }), 3), getFormattedValuesFromAddress = _68[0], getEffectiveValuesFromRange = _68[1], getFormattedValuesFromAddressAsync = _68[2];
1513
1527
  /**
1514
1528
  * Get all formatted values from range as a single 1d array
1515
1529
  */
@@ -1840,7 +1854,7 @@ function CanvasGridComponent(props, forwardedRef) {
1840
1854
  * O(n)
1841
1855
  * Reduces Space Complexity by using `all`
1842
1856
  */
1843
- var _70 = tslib_1.__read((0, use_selected_rows_columns_1.useSelectedRowsColumns)({
1857
+ var _69 = tslib_1.__read((0, use_selected_rows_columns_1.useSelectedRowsColumns)({
1844
1858
  activeCell: activeCell,
1845
1859
  selections: selections,
1846
1860
  selectionLeftBound: selectionLeftBound,
@@ -1848,7 +1862,7 @@ function CanvasGridComponent(props, forwardedRef) {
1848
1862
  rowCount: rowCount,
1849
1863
  columnCount: columnCount,
1850
1864
  getCellBounds: getCellBounds,
1851
- }), 6), selectedRows = _70[0], selectedColumns = _70[1], selectedRowHeaders = _70[2], selectedColumnHeaders = _70[3], selectedRowHeadersIds = _70[4], selectedColumnHeadersIds = _70[5];
1865
+ }), 6), selectedRows = _69[0], selectedColumns = _69[1], selectedRowHeaders = _69[2], selectedColumnHeaders = _69[3], selectedRowHeadersIds = _69[4], selectedColumnHeadersIds = _69[5];
1852
1866
  // Named ranges for editor dropdown
1853
1867
  var getNamedRanges = (0, use_callback_ref_1.useCallbackRef)((0, react_1.useCallback)(function () {
1854
1868
  return namedRanges === null || namedRanges === void 0 ? void 0 : namedRanges.map(function (range) { return ({
@@ -1918,7 +1932,7 @@ function CanvasGridComponent(props, forwardedRef) {
1918
1932
  * user can select entire column or row when selecting
1919
1933
  * header cells
1920
1934
  */
1921
- var _71 = (0, use_selection_interceptors_1.useSelectionInterceptors)({
1935
+ var _70 = (0, use_selection_interceptors_1.useSelectionInterceptors)({
1922
1936
  sheetId: sheetId,
1923
1937
  rowCount: rowCount,
1924
1938
  columnCount: columnCount,
@@ -1934,7 +1948,7 @@ function CanvasGridComponent(props, forwardedRef) {
1934
1948
  onChangeActiveCell: onChangeActiveCell,
1935
1949
  scrollToCell: scrollToCell,
1936
1950
  isMergedCell: isMergedCell,
1937
- }), onMouseDownInterceptor = _71.onMouseDownInterceptor, onMouseMoveInterceptor = _71.onMouseMoveInterceptor;
1951
+ }), onMouseDownInterceptor = _70.onMouseDownInterceptor, onMouseMoveInterceptor = _70.onMouseMoveInterceptor;
1938
1952
  /**
1939
1953
  * When user selections full rows
1940
1954
  * or columns, we have to ignore
@@ -2024,7 +2038,7 @@ function CanvasGridComponent(props, forwardedRef) {
2024
2038
  * Enables auto resizing
2025
2039
  * rows and columns
2026
2040
  */
2027
- var _72 = (0, use_sizer_1.useSizer)({
2041
+ var _71 = (0, use_sizer_1.useSizer)({
2028
2042
  frozenRows: frozenRows,
2029
2043
  frozenColumns: frozenColumns,
2030
2044
  scale: scale,
@@ -2050,7 +2064,7 @@ function CanvasGridComponent(props, forwardedRef) {
2050
2064
  fontSize: defaultFontSize,
2051
2065
  lineHeightMode: lineHeightMode,
2052
2066
  resizeStrategy: "full",
2053
- }), getColumnWidth = _72.getColumnWidth, getRowHeight = _72.getRowHeight, getCellDimensions = _72.getCellDimensions, getCellDimensionsStable = _72.getCellDimensionsStable, getTextDimension = _72.getTextDimension;
2067
+ }), getColumnWidth = _71.getColumnWidth, getRowHeight = _71.getRowHeight, getCellDimensions = _71.getCellDimensions, getCellDimensionsStable = _71.getCellDimensionsStable, getTextDimension = _71.getTextDimension;
2054
2068
  /**
2055
2069
  * Called when user tries to
2056
2070
  * autofit a column or row
@@ -2129,7 +2143,7 @@ function CanvasGridComponent(props, forwardedRef) {
2129
2143
  /**
2130
2144
  * Popover cell
2131
2145
  */
2132
- var _73 = (0, use_cell_popover_1.useCellPopover)({
2146
+ var _72 = (0, use_cell_popover_1.useCellPopover)({
2133
2147
  sheetId: sheetId,
2134
2148
  getCellPopoverContent: getCellPopoverContent !== null && getCellPopoverContent !== void 0 ? getCellPopoverContent : getFormattedValue,
2135
2149
  getCellOffsetFromCoords: getCellOffsetFromCoords,
@@ -2137,7 +2151,7 @@ function CanvasGridComponent(props, forwardedRef) {
2137
2151
  isFrozenColumn: isFrozenColumn,
2138
2152
  isFrozenRow: isFrozenRow,
2139
2153
  onChangeActiveSheet: onChangeActiveSheet,
2140
- }), popoverComponent = _73.popoverComponent, popoverRange = _73.popoverRange, showCellPopover = _73.showCellPopover, hideCellPopover = _73.hideCellPopover;
2154
+ }), popoverComponent = _72.popoverComponent, popoverRange = _72.popoverRange, showCellPopover = _72.showCellPopover, hideCellPopover = _72.hideCellPopover;
2141
2155
  /**
2142
2156
  * Get tooltip component of a cell
2143
2157
  * Only error, invalid values are
@@ -2564,7 +2578,7 @@ function CanvasGridComponent(props, forwardedRef) {
2564
2578
  /**
2565
2579
  * Handle grid selections
2566
2580
  */
2567
- var _74 = (0, use_selection_1.useSelection)({
2581
+ var _73 = (0, use_selection_1.useSelection)({
2568
2582
  sheetId: sheetId,
2569
2583
  getDataRowCount: getDataRowCount,
2570
2584
  getDataRegion: getDataRegion,
@@ -2608,11 +2622,11 @@ function CanvasGridComponent(props, forwardedRef) {
2608
2622
  dataRegionBoundaries: dataRegionBoundaries,
2609
2623
  tables: tables,
2610
2624
  onInsertTableRow: onInsertTableRow,
2611
- }), onMouseDownSelection = _74.onMouseDown, onPointerDownSelection = _74.onPointerDown, onKeyDownSelection = _74.onKeyDown, fillSelection = _74.fillSelection, fillShrink = _74.fillShrink, onFillHandleMouseDown = _74.onFillHandleMouseDown, onFillHandleDoubleClick = _74.onFillHandleDoubleClick, isDragging = _74.isDragging, isFilling = _74.isFilling, isSelectionInProgress = _74.isSelectionInProgress, draggedSelection = _74.draggedSelection, onSelectionMouseDown = _74.onSelectionMouseDown, setActiveCell = _74.setActiveCell, initialDraggedSelection = _74.initialDraggedSelection, updateSelectionStartEndReference = _74.updateSelectionStartEndReference, selectColumn = _74.selectColumn, getContentfulGridRangeAroundCell = _74.getContentfulGridRangeAroundCell, newSelection = _74.newSelection, modifySelection = _74.modifySelection, clearSelections = _74.clearSelections;
2625
+ }), onMouseDownSelection = _73.onMouseDown, onPointerDownSelection = _73.onPointerDown, onKeyDownSelection = _73.onKeyDown, fillSelection = _73.fillSelection, fillShrink = _73.fillShrink, onFillHandleMouseDown = _73.onFillHandleMouseDown, onFillHandleDoubleClick = _73.onFillHandleDoubleClick, isDragging = _73.isDragging, isFilling = _73.isFilling, isSelectionInProgress = _73.isSelectionInProgress, draggedSelection = _73.draggedSelection, onSelectionMouseDown = _73.onSelectionMouseDown, setActiveCell = _73.setActiveCell, initialDraggedSelection = _73.initialDraggedSelection, updateSelectionStartEndReference = _73.updateSelectionStartEndReference, selectColumn = _73.selectColumn, getContentfulGridRangeAroundCell = _73.getContentfulGridRangeAroundCell, newSelection = _73.newSelection, modifySelection = _73.modifySelection, clearSelections = _73.clearSelections;
2612
2626
  /**
2613
2627
  * Copy, Paste and Cut hook
2614
2628
  */
2615
- var _75 = (0, use_copy_paste_cut_1.useCopyPasteCut)({
2629
+ var _74 = (0, use_copy_paste_cut_1.useCopyPasteCut)({
2616
2630
  activeCell: activeCell,
2617
2631
  selections: selections,
2618
2632
  sheetId: sheetId,
@@ -2621,7 +2635,7 @@ function CanvasGridComponent(props, forwardedRef) {
2621
2635
  onPaste: onPaste,
2622
2636
  onCopy: onCopy,
2623
2637
  onCut: onCut,
2624
- }), copiedSelections = _75.copiedSelections, isCutPending = _75.isCutPending, copiedSheetId = _75.copiedSheetId, cancelCut = _75.cancelCut, clearCopiedSelections = _75.clearCopiedSelections, copy = _75.copy, cut = _75.cut, paste = _75.paste, onInternalCopy = _75.onInternalCopy, onInternalCut = _75.onInternalCut, onInternalPaste = _75.onInternalPaste;
2638
+ }), copiedSelections = _74.copiedSelections, isCutPending = _74.isCutPending, copiedSheetId = _74.copiedSheetId, cancelCut = _74.cancelCut, clearCopiedSelections = _74.clearCopiedSelections, copy = _74.copy, cut = _74.cut, paste = _74.paste, onInternalCopy = _74.onInternalCopy, onInternalCut = _74.onInternalCut, onInternalPaste = _74.onInternalPaste;
2625
2639
  /**
2626
2640
  * Ctrl+C / Ctrl+X / Ctrl+V / Ctrl+D on a selected chart. The focused chart is
2627
2641
  * the target of those events (see `EmbedDraggable`); a paste that lands in the
@@ -2889,6 +2903,7 @@ function CanvasGridComponent(props, forwardedRef) {
2889
2903
  */
2890
2904
  var onEditorKeyDown = (0, use_editor_keydown_1.useEditorKeydown)({
2891
2905
  sheetId: sheetId,
2906
+ keymap: keymap,
2892
2907
  onSelectNextSheet: onSelectNextSheet,
2893
2908
  onSelectPreviousSheet: onSelectPreviousSheet,
2894
2909
  onKeyDownSelection: onKeyDownSelection,
@@ -2953,6 +2968,23 @@ function CanvasGridComponent(props, forwardedRef) {
2953
2968
  var requestEditCell = (0, use_callback_ref_1.useCallbackRef)(function (targetSheetId, cell, initialValue) {
2954
2969
  return editCell(targetSheetId, cell, initialValue);
2955
2970
  });
2971
+ /**
2972
+ * Alt+↓ under the Excel keymap: open the cell's list — a filter header's
2973
+ * menu, else a list validation's dropdown (the editor, with the list a
2974
+ * click on the cell's arrow opens), else nothing.
2975
+ */
2976
+ var showCellList = (0, use_callback_ref_1.useCallbackRef)(function (targetSheetId, cell) {
2977
+ var _a, _b;
2978
+ if (showFilterMenu(cell)) {
2979
+ return true;
2980
+ }
2981
+ var type = (_b = (_a = getDataValidationRule(targetSheetId, cell.rowIndex, cell.columnIndex)) === null || _a === void 0 ? void 0 : _a.condition) === null || _b === void 0 ? void 0 : _b.type;
2982
+ if (type !== "ONE_OF_LIST" && type !== "ONE_OF_RANGE") {
2983
+ return false;
2984
+ }
2985
+ editCell(targetSheetId, cell);
2986
+ return true;
2987
+ });
2956
2988
  /**
2957
2989
  * The context menu's table Select items: replace the selection with a
2958
2990
  * range and park the active cell at its top-left, without scrolling.
@@ -2962,7 +2994,7 @@ function CanvasGridComponent(props, forwardedRef) {
2962
2994
  onChangeSelections === null || onChangeSelections === void 0 ? void 0 : onChangeSelections(targetSheetId, [{ range: range }]);
2963
2995
  }, [setActiveCell, onChangeSelections]);
2964
2996
  // Excel's table hit zones (header top edge / corner / row left edge).
2965
- var _76 = (0, use_table_hit_zones_1.useTableHitZones)({
2997
+ var _75 = (0, use_table_hit_zones_1.useTableHitZones)({
2966
2998
  sheetId: sheetId,
2967
2999
  tables: activeTables,
2968
3000
  selections: selections,
@@ -2973,7 +3005,7 @@ function CanvasGridComponent(props, forwardedRef) {
2973
3005
  getCellOffsetFromCoords: getCellOffsetFromCoords,
2974
3006
  getScrollPosition: getScrollPosition,
2975
3007
  onSelectRange: selectRangeFromMenu,
2976
- }), tableHitCursor = _76.cursor, onMouseMoveTableHitZones = _76.onMouseMove, onMouseDownTableHitZones = _76.onMouseDown, clearTableHitZone = _76.clearHitZone;
3008
+ }), tableHitCursor = _75.cursor, onMouseMoveTableHitZones = _75.onMouseMove, onMouseDownTableHitZones = _75.onMouseDown, clearTableHitZone = _75.clearHitZone;
2977
3009
  /**
2978
3010
  * Get context Menu component
2979
3011
  */
@@ -3075,7 +3107,7 @@ function CanvasGridComponent(props, forwardedRef) {
3075
3107
  * Displays Context menu when user right clicks
3076
3108
  * the grid
3077
3109
  */
3078
- var _77 = (0, use_context_menu_1.useContextMenu)({
3110
+ var _76 = (0, use_context_menu_1.useContextMenu)({
3079
3111
  getCellCoordsFromOffset: getCellCoordsFromOffset,
3080
3112
  getRelativePositionFromOffset: getRelativePositionFromOffset,
3081
3113
  isRowHeader: isRowHeader,
@@ -3084,7 +3116,7 @@ function CanvasGridComponent(props, forwardedRef) {
3084
3116
  getCellOffsetFromCoords: getCellOffsetFromCoords,
3085
3117
  getScrollPosition: getScrollPosition,
3086
3118
  ContextMenuWrapper: ContextMenuWrapper,
3087
- }), onContextMenu = _77.onContextMenu, contextMenuComponent = _77.contextMenuComponent, onRequestCloseContextMenu = _77.onRequestClose, showContextMenu = _77.showContextMenu;
3119
+ }), onContextMenu = _76.onContextMenu, contextMenuComponent = _76.contextMenuComponent, onRequestCloseContextMenu = _76.onRequestClose, showContextMenu = _76.showContextMenu;
3088
3120
  /**
3089
3121
  * Shortcut handlers for formatting
3090
3122
  * TODO: Decide on the output
@@ -3115,6 +3147,8 @@ function CanvasGridComponent(props, forwardedRef) {
3115
3147
  onCalculateNow: onCalculateNow,
3116
3148
  onRequestGoTo: requestGoTo,
3117
3149
  onRequestPasteSpecial: requestPasteSpecial,
3150
+ onRequestEditCell: requestEditCell,
3151
+ onShowCellList: showCellList,
3118
3152
  onChangeBatch: onChangeBatch,
3119
3153
  getUserEnteredValue: getUserEnteredStringValue,
3120
3154
  getEffectiveValue: getEffectiveValue,
@@ -3165,11 +3199,15 @@ function CanvasGridComponent(props, forwardedRef) {
3165
3199
  /**
3166
3200
  * Allow grid to be ediable
3167
3201
  */
3168
- var _78 = (0, use_editable_1.useEditable)({
3202
+ var _77 = (0, use_editable_1.useEditable)({
3169
3203
  sheetId: sheetId,
3170
3204
  enableEditOnEnterKey: enableEditOnEnterKey,
3205
+ keymap: keymap,
3206
+ clearSelections: clearSelections,
3207
+ onRequestCut: cut,
3171
3208
  shouldHandleKeyDown: shouldHandleKeyDown,
3172
3209
  canEdit: canEditCell,
3210
+ canView: canViewCell,
3173
3211
  sticky: stickyEditor,
3174
3212
  getScrollPosition: getScrollPosition,
3175
3213
  hideOnBlur: formulaMode && canSelectCells ? false : true,
@@ -3217,11 +3255,11 @@ function CanvasGridComponent(props, forwardedRef) {
3217
3255
  onCut: handleEditorCut,
3218
3256
  tables: tables,
3219
3257
  onInsertTableRow: onInsertTableRow,
3220
- }), onMouseDownEditable = _78.onMouseDown, onDoubleClickEditable = _78.onDoubleClick, editorComponent = _78.editorComponent, isEditInProgress = _78.isEditInProgress, makeEditable = _78.makeEditable, editCell = _78.editCell, setEditorValue = _78.setEditorValue, hideEditor = _78.hideEditor, getNextFocusableCell = _78.getNextFocusableCell, submitEditor = _78.submitEditor, cancelEditor = _78.cancelEditor, commit = _78.commit;
3258
+ }), onMouseDownEditable = _77.onMouseDown, onDoubleClickEditable = _77.onDoubleClick, editorComponent = _77.editorComponent, isEditInProgress = _77.isEditInProgress, makeEditable = _77.makeEditable, editCell = _77.editCell, setEditorValue = _77.setEditorValue, hideEditor = _77.hideEditor, getNextFocusableCell = _77.getNextFocusableCell, submitEditor = _77.submitEditor, cancelEditor = _77.cancelEditor, commit = _77.commit, onKeyDownEditable = _77.onKeyDown;
3221
3259
  /**
3222
3260
  * Move rows and columns
3223
3261
  */
3224
- var _79 = (0, use_move_columns_rows_1.useMoveColumnsAndRows)({
3262
+ var _78 = (0, use_move_columns_rows_1.useMoveColumnsAndRows)({
3225
3263
  getCellOffsetFromCoords: getCellOffsetFromCoords,
3226
3264
  getCellCoordsFromOffset: getCellCoordsFromOffset,
3227
3265
  getRelativePositionFromOffset: getRelativePositionFromOffset,
@@ -3244,11 +3282,11 @@ function CanvasGridComponent(props, forwardedRef) {
3244
3282
  sheetId: sheetId,
3245
3283
  disabled: isRestricted,
3246
3284
  HeaderMoveDragComponent: HeaderMoveDragComponent,
3247
- }), draggableColumns = _79.draggableColumns, draggableRows = _79.draggableRows, isDraggingRowsAndColumns = _79.isDragging;
3285
+ }), draggableColumns = _78.draggableColumns, draggableRows = _78.draggableRows, isDraggingRowsAndColumns = _78.isDragging;
3248
3286
  /**
3249
3287
  * Header actions
3250
3288
  */
3251
- var _80 = (0, use_header_actions_1.useHeaderActions)({
3289
+ var _79 = (0, use_header_actions_1.useHeaderActions)({
3252
3290
  activeCell: isSelectionInProgress || isFilling || isDragging ? null : hoveredCell,
3253
3291
  getScrollPosition: getScrollPosition,
3254
3292
  getCellOffsetFromCoords: getCellOffsetFromCoords,
@@ -3276,7 +3314,7 @@ function CanvasGridComponent(props, forwardedRef) {
3276
3314
  selectedRowHeadersIds: selectedRowHeadersIds,
3277
3315
  selectedColumnHeadersIds: selectedColumnHeadersIds,
3278
3316
  enableResizerOverflow: enableResizerOverflow,
3279
- }), headerMenuComponent = _80.headerMenuComponent, isHeaderMenuInFrozenColumn = _80.isHeaderMenuInFrozenColumn, headerResizer = _80.headerResizer, isDraggingHeader = _80.isDragging;
3317
+ }), headerMenuComponent = _79.headerMenuComponent, isHeaderMenuInFrozenColumn = _79.isHeaderMenuInFrozenColumn, headerResizer = _79.headerResizer, isDraggingHeader = _79.isDragging;
3280
3318
  /**
3281
3319
  * Close tooltip
3282
3320
  */
@@ -3318,7 +3356,7 @@ function CanvasGridComponent(props, forwardedRef) {
3318
3356
  /**
3319
3357
  * Show basicFilter panels
3320
3358
  */
3321
- var _81 = (0, use_filter_1.useFilter)({
3359
+ var _80 = (0, use_filter_1.useFilter)({
3322
3360
  sheetId: sheetId,
3323
3361
  scale: scale,
3324
3362
  theme: theme,
@@ -3343,9 +3381,9 @@ function CanvasGridComponent(props, forwardedRef) {
3343
3381
  // Live filter state so the open popup tracks Auto-apply spec changes.
3344
3382
  basicFilter: basicFilter,
3345
3383
  tables: activeTables,
3346
- }), showFilter = _81.showFilter, hideFilter = _81.hideFilter, filterComponent = _81.filterComponent;
3384
+ }), showFilter = _80.showFilter, hideFilter = _80.hideFilter, filterComponent = _80.filterComponent;
3347
3385
  // Table resize
3348
- var _82 = (0, use_table_resizer_1.useTableResizer)({
3386
+ var _81 = (0, use_table_resizer_1.useTableResizer)({
3349
3387
  sheetId: sheetId,
3350
3388
  tables: tables !== null && tables !== void 0 ? tables : undefined,
3351
3389
  theme: theme,
@@ -3356,11 +3394,11 @@ function CanvasGridComponent(props, forwardedRef) {
3356
3394
  scrollToCell: scrollToCell,
3357
3395
  onResizeTable: onResizeTable,
3358
3396
  focusSheet: focusSheet,
3359
- }), tableResizers = _82.tableResizers, isResizingTable = _82.isResizingTable;
3397
+ }), tableResizers = _81.tableResizers, isResizingTable = _81.isResizingTable;
3360
3398
  /**
3361
3399
  * Displays resizable/draggable charts
3362
3400
  */
3363
- var _83 = (0, use_embeds_charts_1.useEmbedsCharts)({
3401
+ var _82 = (0, use_embeds_charts_1.useEmbedsCharts)({
3364
3402
  charts: charts,
3365
3403
  embeds: embeds,
3366
3404
  slicers: slicers,
@@ -3404,7 +3442,7 @@ function CanvasGridComponent(props, forwardedRef) {
3404
3442
  backgroundColor: cellBackgroundColor,
3405
3443
  disabled: isRestricted,
3406
3444
  readonly: readonly,
3407
- }), chartComponents = _83.chartComponents, embedComponents = _83.embedComponents, slicerComponents = _83.slicerComponents, embedContextMenuComponent = _83.contextMenuComponent, onMouseDownCharts = _83.onMouseDown, requestChartContextMenu = _83.requestChartContextMenu;
3445
+ }), chartComponents = _82.chartComponents, embedComponents = _82.embedComponents, slicerComponents = _82.slicerComponents, embedContextMenuComponent = _82.contextMenuComponent, onMouseDownCharts = _82.onMouseDown, requestChartContextMenu = _82.requestChartContextMenu;
3408
3446
  /**
3409
3447
  * The basic filter or table whose range holds a cell
3410
3448
  */
@@ -3479,7 +3517,7 @@ function CanvasGridComponent(props, forwardedRef) {
3479
3517
  * The totals-function picker a totals cell's in-cell arrow opens (Excel):
3480
3518
  * anchored at the cell's bottom-right corner like the filter dropdown.
3481
3519
  */
3482
- var _84 = tslib_1.__read((0, react_1.useState)(null), 2), totalsPicker = _84[0], setTotalsPicker = _84[1];
3520
+ var _83 = tslib_1.__read((0, react_1.useState)(null), 2), totalsPicker = _83[0], setTotalsPicker = _83[1];
3483
3521
  var closeTotalsPicker = (0, react_1.useCallback)(function () { return setTotalsPicker(null); }, []);
3484
3522
  var handleTotalsArrowClick = (0, react_1.useCallback)(function (cell) {
3485
3523
  var table = activeTables === null || activeTables === void 0 ? void 0 : activeTables.find(function (candidate) {
@@ -3686,6 +3724,20 @@ function CanvasGridComponent(props, forwardedRef) {
3686
3724
  getEffectiveValue,
3687
3725
  sheetId,
3688
3726
  ]);
3727
+ /**
3728
+ * A key that lands on the grid's own focusable container — a host parked the
3729
+ * focus there (a read-only grid's click) instead of on the sticky editor — is
3730
+ * the sticky editor's to handle: F2 / Enter open the cell as they do from the
3731
+ * editor (rowsncolumns/spreadsheet#1192). A key from inside the editor or from
3732
+ * another control bubbles past untouched.
3733
+ */
3734
+ var handleContainerKeyDown = (0, react_1.useCallback)(function (e) {
3735
+ var _a;
3736
+ if (e.target !== ((_a = gridRef.current) === null || _a === void 0 ? void 0 : _a.container)) {
3737
+ return;
3738
+ }
3739
+ onKeyDownEditable(e);
3740
+ }, [onKeyDownEditable]);
3689
3741
  /**
3690
3742
  * Get maximum text width
3691
3743
  * before it overflows into next cell
@@ -3735,7 +3787,7 @@ function CanvasGridComponent(props, forwardedRef) {
3735
3787
  /**
3736
3788
  * Render Cells in the grid
3737
3789
  */
3738
- var _85 = tslib_1.__read((0, use_cell_renderer_1.useCellRenderer)({
3790
+ var _84 = tslib_1.__read((0, use_cell_renderer_1.useCellRenderer)({
3739
3791
  sheetId: sheetId,
3740
3792
  isTableTotalsCell: isTableTotalsCell,
3741
3793
  onTotalsArrowClick: handleTotalsArrowClick,
@@ -3806,7 +3858,7 @@ function CanvasGridComponent(props, forwardedRef) {
3806
3858
  onOverflow: handleOverflow,
3807
3859
  isComparing: isComparing,
3808
3860
  getCellDiff: getCellDiff,
3809
- }), 4), cellBackgroundRenderer = _85[0], cellRenderer = _85[1], cellOverlayRenderer = _85[2], headerCellRenderer = _85[3];
3861
+ }), 4), cellBackgroundRenderer = _84[0], cellRenderer = _84[1], cellOverlayRenderer = _84[2], headerCellRenderer = _84[3];
3810
3862
  /**
3811
3863
  * When user selects a selection for moving
3812
3864
  * If its a table, we select the entire column
@@ -3842,16 +3894,16 @@ function CanvasGridComponent(props, forwardedRef) {
3842
3894
  tokenizer: localeTokenizer,
3843
3895
  });
3844
3896
  // Selection move: drag a formula reference via its border covers
3845
- var _86 = (0, use_selection_move_1.useSelectionMove)({
3897
+ var _85 = (0, use_selection_move_1.useSelectionMove)({
3846
3898
  getCellCoordsFromOffset: getCellCoordsFromOffset,
3847
3899
  scrollToCell: scrollToCell,
3848
3900
  tokenizer: localeTokenizer,
3849
- }), onMouseDownMoveSelection = _86.onMouseDownMoveSelection, isDraggingMoveSelection = _86.isDragging;
3901
+ }), onMouseDownMoveSelection = _85.onMouseDownMoveSelection, isDraggingMoveSelection = _85.isDragging;
3850
3902
  /**
3851
3903
  * Selected chart: outline its source ranges on this sheet and re-bind
3852
3904
  * them when a corner handle is dragged (Excel's chart data highlight).
3853
3905
  */
3854
- var _87 = (0, use_chart_source_ranges_1.useChartSourceRanges)({
3906
+ var _86 = (0, use_chart_source_ranges_1.useChartSourceRanges)({
3855
3907
  charts: charts,
3856
3908
  sheetId: sheetId,
3857
3909
  getSheetName: getSheetName,
@@ -3860,7 +3912,7 @@ function CanvasGridComponent(props, forwardedRef) {
3860
3912
  getCellBounds: getCellBounds,
3861
3913
  getCellCoordsFromOffset: getCellCoordsFromOffset,
3862
3914
  scrollToCell: scrollToCell,
3863
- }), chartSourceBorderStyles = _87.chartSourceBorderStyles, onMouseDownChartSourceResizeHandle = _87.onMouseDownChartSourceResizeHandle;
3915
+ }), chartSourceBorderStyles = _86.chartSourceBorderStyles, onMouseDownChartSourceResizeHandle = _86.onMouseDownChartSourceResizeHandle;
3864
3916
  /**
3865
3917
  * Hide fill handle
3866
3918
  * 1. When user is in edit mode
@@ -3875,9 +3927,9 @@ function CanvasGridComponent(props, forwardedRef) {
3875
3927
  /**
3876
3928
  * Flashing
3877
3929
  */
3878
- var _88 = (0, use_flash_1.useFlash)({
3930
+ var _87 = (0, use_flash_1.useFlash)({
3879
3931
  theme: theme,
3880
- }), flash = _88.flash, mark = _88.mark, unmark = _88.unmark, onFlashEnd = _88.onFlashEnd, flashingBorders = _88.flashingBorders;
3932
+ }), flash = _87.flash, mark = _87.mark, unmark = _87.unmark, onFlashEnd = _87.onFlashEnd, flashingBorders = _87.flashingBorders;
3881
3933
  // Cache hover ids
3882
3934
  var cachedHoveredSelectionIds = (0, use_hovered_selection_ids_1.useHoveredSelectionIds)({
3883
3935
  selections: selections,
@@ -3976,7 +4028,7 @@ function CanvasGridComponent(props, forwardedRef) {
3976
4028
  ? tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(finalBorderStyles), false), tslib_1.__read(chartSourceBorderStyles), false) : finalBorderStyles;
3977
4029
  }, [finalBorderStyles, chartSourceBorderStyles]);
3978
4030
  // Hidden column markers
3979
- var _89 = tslib_1.__read((0, use_hidden_dimension_markers_1.useHiddenDimensionMarkers)({
4031
+ var _88 = tslib_1.__read((0, use_hidden_dimension_markers_1.useHiddenDimensionMarkers)({
3980
4032
  sheetId: sheetId,
3981
4033
  columnMetadata: columnMetadata,
3982
4034
  rowMetadata: rowMetadata,
@@ -3989,7 +4041,7 @@ function CanvasGridComponent(props, forwardedRef) {
3989
4041
  columnCount: columnCount,
3990
4042
  HiddenRowMarkers: HiddenRowMarkers,
3991
4043
  HiddenColumnMarkers: HiddenColumnMarkers,
3992
- }), 4), hiddenColumnMarkers = _89[0], frozenHiddenColumnMarkers = _89[1], hiddenRowMarkers = _89[2], frozenHiddenRowMarkers = _89[3];
4044
+ }), 4), hiddenColumnMarkers = _88[0], frozenHiddenColumnMarkers = _88[1], hiddenRowMarkers = _88[2], frozenHiddenRowMarkers = _88[3];
3993
4045
  // Zoom lister
3994
4046
  var onMouseWheel = (0, use_scale_listener_1.useScaleListener)({
3995
4047
  zoomSpeed: zoomSpeed,
@@ -4367,7 +4419,7 @@ function CanvasGridComponent(props, forwardedRef) {
4367
4419
  // css={{
4368
4420
  // backgroundColor: cellBackgroundColor,
4369
4421
  // }}
4370
- onContextMenu: onContextMenu,
4422
+ onContextMenu: onContextMenu, onKeyDown: handleContainerKeyDown,
4371
4423
  // Bind to outer container, so it always takes
4372
4424
  // priority over other components
4373
4425
  // generated by hooks