@rowsncolumns/spreadsheet 10.5.2 → 10.5.3

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 (85) hide show
  1. package/dist/cjs/components/canvas-grid/index.d.ts.map +1 -1
  2. package/dist/cjs/components/canvas-grid/index.js +85 -70
  3. package/dist/cjs/components/canvas-grid/typings.d.ts +18 -1
  4. package/dist/cjs/components/canvas-grid/typings.d.ts.map +1 -1
  5. package/dist/cjs/components/cell/cell-text-runs.d.ts +10 -3
  6. package/dist/cjs/components/cell/cell-text-runs.d.ts.map +1 -1
  7. package/dist/cjs/components/cell/cell-text-runs.js +21 -9
  8. package/dist/cjs/components/cell/index.d.ts.map +1 -1
  9. package/dist/cjs/components/cell/index.js +9 -5
  10. package/dist/cjs/components/cell/line-height.d.ts +22 -0
  11. package/dist/cjs/components/cell/line-height.d.ts.map +1 -0
  12. package/dist/cjs/components/cell/line-height.js +32 -0
  13. package/dist/cjs/components/cell/typings.d.ts +8 -2
  14. package/dist/cjs/components/cell/typings.d.ts.map +1 -1
  15. package/dist/cjs/hooks/export-range-tiles.d.ts +81 -0
  16. package/dist/cjs/hooks/export-range-tiles.d.ts.map +1 -0
  17. package/dist/cjs/hooks/export-range-tiles.js +171 -0
  18. package/dist/cjs/hooks/use-cell-renderer.d.ts +6 -1
  19. package/dist/cjs/hooks/use-cell-renderer.d.ts.map +1 -1
  20. package/dist/cjs/hooks/use-cell-renderer.js +3 -2
  21. package/dist/cjs/hooks/use-copy-paste-cut.d.ts +5 -1
  22. package/dist/cjs/hooks/use-copy-paste-cut.d.ts.map +1 -1
  23. package/dist/cjs/hooks/use-copy-paste-cut.js +19 -5
  24. package/dist/cjs/hooks/use-editor-submit.d.ts +7 -1
  25. package/dist/cjs/hooks/use-editor-submit.d.ts.map +1 -1
  26. package/dist/cjs/hooks/use-editor-submit.js +36 -16
  27. package/dist/cjs/hooks/use-export-range.d.ts +14 -6
  28. package/dist/cjs/hooks/use-export-range.d.ts.map +1 -1
  29. package/dist/cjs/hooks/use-export-range.js +240 -158
  30. package/dist/cjs/hooks/use-grid-children.d.ts +4 -1
  31. package/dist/cjs/hooks/use-grid-children.d.ts.map +1 -1
  32. package/dist/cjs/hooks/use-grid-children.js +4 -2
  33. package/dist/cjs/hooks/use-navigate-sheet-range.d.ts.map +1 -1
  34. package/dist/cjs/hooks/use-navigate-sheet-range.js +5 -2
  35. package/dist/cjs/hooks/use-sizer.d.ts +8 -2
  36. package/dist/cjs/hooks/use-sizer.d.ts.map +1 -1
  37. package/dist/cjs/hooks/use-sizer.js +54 -33
  38. package/dist/cjs/providers/spreadsheet-provider.d.ts +11 -2
  39. package/dist/cjs/providers/spreadsheet-provider.d.ts.map +1 -1
  40. package/dist/cjs/providers/spreadsheet-provider.js +7 -5
  41. package/dist/cjs/release-date.js +1 -1
  42. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  43. package/dist/esm/components/canvas-grid/index.d.ts.map +1 -1
  44. package/dist/esm/components/canvas-grid/index.js +27 -12
  45. package/dist/esm/components/canvas-grid/typings.d.ts +18 -1
  46. package/dist/esm/components/canvas-grid/typings.d.ts.map +1 -1
  47. package/dist/esm/components/cell/cell-text-runs.d.ts +10 -3
  48. package/dist/esm/components/cell/cell-text-runs.d.ts.map +1 -1
  49. package/dist/esm/components/cell/cell-text-runs.js +14 -9
  50. package/dist/esm/components/cell/index.d.ts.map +1 -1
  51. package/dist/esm/components/cell/index.js +7 -3
  52. package/dist/esm/components/cell/line-height.d.ts +22 -0
  53. package/dist/esm/components/cell/line-height.d.ts.map +1 -0
  54. package/dist/esm/components/cell/line-height.js +25 -0
  55. package/dist/esm/components/cell/typings.d.ts +8 -2
  56. package/dist/esm/components/cell/typings.d.ts.map +1 -1
  57. package/dist/esm/hooks/export-range-tiles.d.ts +81 -0
  58. package/dist/esm/hooks/export-range-tiles.d.ts.map +1 -0
  59. package/dist/esm/hooks/export-range-tiles.js +126 -0
  60. package/dist/esm/hooks/use-cell-renderer.d.ts +6 -1
  61. package/dist/esm/hooks/use-cell-renderer.d.ts.map +1 -1
  62. package/dist/esm/hooks/use-cell-renderer.js +3 -2
  63. package/dist/esm/hooks/use-copy-paste-cut.d.ts +5 -1
  64. package/dist/esm/hooks/use-copy-paste-cut.d.ts.map +1 -1
  65. package/dist/esm/hooks/use-copy-paste-cut.js +17 -3
  66. package/dist/esm/hooks/use-editor-submit.d.ts +7 -1
  67. package/dist/esm/hooks/use-editor-submit.d.ts.map +1 -1
  68. package/dist/esm/hooks/use-editor-submit.js +24 -6
  69. package/dist/esm/hooks/use-export-range.d.ts +14 -6
  70. package/dist/esm/hooks/use-export-range.d.ts.map +1 -1
  71. package/dist/esm/hooks/use-export-range.js +158 -120
  72. package/dist/esm/hooks/use-grid-children.d.ts +4 -1
  73. package/dist/esm/hooks/use-grid-children.d.ts.map +1 -1
  74. package/dist/esm/hooks/use-grid-children.js +4 -2
  75. package/dist/esm/hooks/use-navigate-sheet-range.d.ts.map +1 -1
  76. package/dist/esm/hooks/use-navigate-sheet-range.js +5 -2
  77. package/dist/esm/hooks/use-sizer.d.ts +8 -2
  78. package/dist/esm/hooks/use-sizer.d.ts.map +1 -1
  79. package/dist/esm/hooks/use-sizer.js +53 -31
  80. package/dist/esm/providers/spreadsheet-provider.d.ts +11 -2
  81. package/dist/esm/providers/spreadsheet-provider.d.ts.map +1 -1
  82. package/dist/esm/providers/spreadsheet-provider.js +8 -6
  83. package/dist/esm/release-date.js +1 -1
  84. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  85. package/package.json +6 -6
@@ -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.columnHeaderHeight, columnHeaderHeight = _v === void 0 ? config_1.COLUMN_HEADER_HEIGHT : _v, _w = props.rowHeaderWidth, rowHeaderWidth = _w === void 0 ? config_1.ROW_HEADER_WIDTH : _w, _x = props.gridLineColor, gridLineColor = _x === void 0 ? config_1.GRIDLINE_COLOR : _x, _y = props.cellBackgroundColor, cellBackgroundColor = _y === void 0 ? config_1.DEFAULT_CELL_BACKGROUND_COLOR : _y, _z = props.cellColor, cellColor = _z === void 0 ? config_1.DEFAULT_CELL_COLOR : _z, _0 = props.headerBorderColor, headerBorderColor = _0 === void 0 ? config_1.DEFAULT_HEADER_BORDER_COLOR : _0, _1 = props.headerBackgroundColor, headerBackgroundColor = _1 === void 0 ? config_1.DEFAULT_HEADER_BG : _1, _2 = props.headerColor, headerColor = _2 === void 0 ? config_1.DEFAULT_HEADER_COLOR : _2, _3 = props.headerActiveBackgroundColor, headerActiveBackgroundColor = _3 === void 0 ? config_1.DEFAULT_HEADER_ACTIVE_BG : _3, _4 = props.headerSelectedBackgroundColor, headerSelectedBackgroundColor = _4 === void 0 ? config_1.DEFAULT_HEADER_SELECTED_BG : _4, _5 = props.headerSelectedColor, headerSelectedColor = _5 === void 0 ? "white" : _5, _6 = props.headerTableBackgroundColor, headerTableBackgroundColor = _6 === void 0 ? config_1.DEFAULT_HEADER_TABLE_BG : _6, _7 = props.headerTableActiveBackgroundColor, headerTableActiveBackgroundColor = _7 === void 0 ? config_1.DEFAULT_HEADER_ACTIVE_TABLE_BG : _7, _8 = props.headerTableSelectedBackgroundColor, headerTableSelectedBackgroundColor = _8 === void 0 ? config_1.DEFAULT_HEADER_SELECTED_TABLE_BG : _8, _9 = props.frozenShadowColor, frozenShadowColor = _9 === void 0 ? headerBorderColor : _9, _10 = props.frozenShadowThickness, frozenShadowThickness = _10 === void 0 ? 1 : _10, _11 = props.selectionBackgroundColor, selectionBackgroundColor = _11 === void 0 ? config_1.SELECTION_BG : _11, _12 = props.selectionBorderColor, selectionBorderColor = _12 === void 0 ? config_1.SELECTION_BORDER : _12, _13 = props.selectionDragBorderColor, selectionDragBorderColor = _13 === void 0 ? config_1.SELECTION_BORDER : _13, chartSelectedColor = props.chartSelectedColor, _14 = props.chipBackgroundColor, chipBackgroundColor = _14 === void 0 ? config_1.CHIP_COLOR : _14, _15 = props.merges, merges = _15 === void 0 ? config_1.DEFAULT_ARRAY : _15, borderStyles = props.borderStyles, protectedRanges = props.protectedRanges, _16 = props.isWorkbookProtected, isWorkbookProtectedProp = _16 === void 0 ? false : _16, getSheetProtection = props.getSheetProtection, pivotTables = props.pivotTables, charts = props.charts, onUpdateChart = props.onUpdateChart, onChangeZOrder = props.onChangeZOrder, embeds = props.embeds, slicers = props.slicers, _17 = props.rowMetadata, rowMetadata = _17 === void 0 ? config_1.DEFAULT_ARRAY : _17, _18 = props.columnMetadata, columnMetadata = _18 === void 0 ? config_1.DEFAULT_ARRAY : _18, _19 = props.scale, scale = _19 === void 0 ? 1 : _19, _20 = props.zoomSpeed, zoomSpeed = _20 === void 0 ? 1 : _20, _21 = props.overscanCount, overscanCount = _21 === void 0 ? 3 : _21, _22 = props.enableEditOnEnterKey, enableEditOnEnterKey = _22 === void 0 ? true : _22, _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, 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,
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, _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, _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,
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
@@ -145,7 +145,7 @@ function CanvasGridComponent(props, forwardedRef) {
145
145
  // defaults to `getFormattedValue` inside `useGetValuesFromRange`.
146
146
  getValidationSourceValue = props.getValidationSourceValue,
147
147
  // Unused props only for api
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", "columnHeaderHeight", "rowHeaderWidth", "gridLineColor", "cellBackgroundColor", "cellColor", "headerBorderColor", "headerBackgroundColor", "headerColor", "headerActiveBackgroundColor", "headerSelectedBackgroundColor", "headerSelectedColor", "headerTableBackgroundColor", "headerTableActiveBackgroundColor", "headerTableSelectedBackgroundColor", "frozenShadowColor", "frozenShadowThickness", "selectionBackgroundColor", "selectionBorderColor", "selectionDragBorderColor", "chartSelectedColor", "chipBackgroundColor", "merges", "borderStyles", "protectedRanges", "isWorkbookProtected", "getSheetProtection", "pivotTables", "charts", "onUpdateChart", "onChangeZOrder", "embeds", "slicers", "rowMetadata", "columnMetadata", "scale", "zoomSpeed", "overscanCount", "enableEditOnEnterKey", "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", "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"]);
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", "selectionDragBorderColor", "chartSelectedColor", "chipBackgroundColor", "merges", "borderStyles", "protectedRanges", "isWorkbookProtected", "getSheetProtection", "pivotTables", "charts", "onUpdateChart", "onChangeZOrder", "embeds", "slicers", "rowMetadata", "columnMetadata", "scale", "zoomSpeed", "overscanCount", "enableEditOnEnterKey", "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
149
  /**
150
150
  * Fire onBlur only when the cell editor blurs to an element outside the
151
151
  * spreadsheet. Routed through `useEditable` so we hook the always-focused
@@ -161,7 +161,7 @@ function CanvasGridComponent(props, forwardedRef) {
161
161
  var showGridLines = _showGridLines !== null && _showGridLines !== void 0 ? _showGridLines : true;
162
162
  var gridRef = (0, react_1.useRef)(null);
163
163
  // Hovered cell state (immediate, updated on mousemove)
164
- var _54 = tslib_1.__read((0, react_1.useState)(), 2), hoveredCell = _54[0], setHoveredCell = _54[1];
164
+ var _55 = tslib_1.__read((0, react_1.useState)(), 2), hoveredCell = _55[0], setHoveredCell = _55[1];
165
165
  // Delayed hovered cell for tooltips and selection titles
166
166
  var delayedHoveredCell = (0, use_delayed_value_1.useDelayedValue)(hoveredCell, tooltipIntentInterval);
167
167
  // Text overflow functionality
@@ -253,17 +253,17 @@ function CanvasGridComponent(props, forwardedRef) {
253
253
  // Cell editor
254
254
  var cellEditorInstance = (0, formula_bar_editor_value_atom_1.useCellEditorInstance)();
255
255
  // Paste menu
256
- var _55 = tslib_1.__read((0, atoms_1.useShowPasteMenu)(), 2), showPasteMenu = _55[0], setShowPasteMenu = _55[1];
256
+ var _56 = tslib_1.__read((0, atoms_1.useShowPasteMenu)(), 2), showPasteMenu = _56[0], setShowPasteMenu = _56[1];
257
257
  // Auto Fill Options smart tag / right-drag fill menu + Series dialog
258
- var _56 = tslib_1.__read((0, atoms_1.useFillOptionsState)(), 2), fillOptions = _56[0], setFillOptions = _56[1];
259
- var _57 = tslib_1.__read((0, atoms_1.useInsertOptionsState)(), 2), insertOptions = _57[0], setInsertOptions = _57[1];
260
- var _58 = tslib_1.__read((0, atoms_1.useTableAutoExpansionState)(), 2), tableAutoExpansion = _58[0], setTableAutoExpansion = _58[1];
261
- var _59 = tslib_1.__read((0, atoms_1.useCalculatedColumnFillState)(), 2), calculatedColumnFill = _59[0], setCalculatedColumnFill = _59[1];
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];
262
262
  var openFillSeriesDialog = (0, atoms_1.useOpenFillSeriesDialog)();
263
263
  // Shared state
264
264
  var formulaMode = (0, atoms_1.useFormulaModeValue)();
265
265
  var formulaSelections = (0, formula_selections_atom_1.useFormulaSelections)();
266
- var _60 = tslib_1.__read((0, editing_cell_atom_1.useEditingCell)(), 2), editingCellCoordinate = _60[0], setEditingCellCoordinate = _60[1];
266
+ var _61 = tslib_1.__read((0, editing_cell_atom_1.useEditingCell)(), 2), editingCellCoordinate = _61[0], setEditingCellCoordinate = _61[1];
267
267
  var setFormulabarEditorValue = (0, formula_bar_editor_value_atom_1.useSetFormulabarEditorValue)();
268
268
  /**
269
269
  * The formula SYNTAX the editor / formula bar speak (rowsncolumns/spreadsheet#655): Excel follows
@@ -281,7 +281,7 @@ function CanvasGridComponent(props, forwardedRef) {
281
281
  var setFormulaState = (0, formula_selection_state_atom_1.useSetFormulaSelectionState)();
282
282
  var activeEditor = (0, active_editor_atom_1.useActiveEditor)();
283
283
  // Magic fill state
284
- var _61 = tslib_1.__read((0, magic_fill_state_atom_1.useQuickEditState)(), 2), quickEditValues = _61[0], setQuickEditState = _61[1];
284
+ var _62 = tslib_1.__read((0, magic_fill_state_atom_1.useQuickEditState)(), 2), quickEditValues = _62[0], setQuickEditState = _62[1];
285
285
  var setNoteEditorCell = (0, atoms_1.useSetNoteEditorCell)();
286
286
  var setPinnedTooltip = (0, atoms_1.useSetPinnedTooltip)();
287
287
  var setSpreadsheetApi = (0, spreadsheet_api_atom_1.useSetSpreadsheetApi)();
@@ -292,7 +292,7 @@ function CanvasGridComponent(props, forwardedRef) {
292
292
  var instanceStore = (0, jotai_1.useStore)({ store: spreadsheet_provider_1.multiInstanceStore });
293
293
  // To access closures
294
294
  var hoveredCellRef = (0, use_stable_ref_1.useStableRef)(hoveredCell);
295
- var _62 = tslib_1.__read((0, use_resize_observer_1.useResizeObserver)(), 2), gridContainerRef = _62[0], _63 = _62[1], width = _63.width, height = _63.height;
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;
296
296
  var defaultFrozenDims = showHeaders ? 1 : 0;
297
297
  var frozenRows = Math.max(defaultFrozenDims, (frozenRowCount !== null && frozenRowCount !== void 0 ? frozenRowCount : 0) + defaultFrozenDims);
298
298
  var frozenColumns = Math.max(defaultFrozenDims, (frozenColumnCount !== null && frozenColumnCount !== void 0 ? frozenColumnCount : 0) + defaultFrozenDims);
@@ -304,9 +304,9 @@ function CanvasGridComponent(props, forwardedRef) {
304
304
  var sheetRowCount = Math.min(config_1.MAX_ROW_COUNT + 1, rowCount + 1);
305
305
  var sheetColumnCount = Math.min(config_1.MAX_COLUMN_COUNT + 1, columnCount + 1);
306
306
  // License key validator
307
- var _64 = tslib_1.__read((0, use_licensekey_validator_1.useLicenseKeyValidator)({
307
+ var _65 = tslib_1.__read((0, use_licensekey_validator_1.useLicenseKeyValidator)({
308
308
  licenseKey: licenseKey,
309
- }), 3), _ = _64[0], licenseType = _64[1], validatorResult = _64[2];
309
+ }), 3), _ = _65[0], licenseType = _65[1], validatorResult = _65[2];
310
310
  var isRestricted = licenseType === "solo";
311
311
  // Grid line width
312
312
  var gridLineWidth = 1 * scale;
@@ -838,6 +838,10 @@ function CanvasGridComponent(props, forwardedRef) {
838
838
  cellEditorInstance === null || cellEditorInstance === void 0 ? void 0 : cellEditorInstance.focus();
839
839
  }
840
840
  }, [activeEditor, cellEditorInstance]);
841
+ /**
842
+ * Container and total size of the grid, as the grid measures them
843
+ */
844
+ var getGridDimensions = (0, react_1.useCallback)(function () { var _a; return (_a = gridRef.current) === null || _a === void 0 ? void 0 : _a.getDimensions(); }, []);
841
845
  /**
842
846
  * Canvas layers
843
847
  */
@@ -1165,11 +1169,11 @@ function CanvasGridComponent(props, forwardedRef) {
1165
1169
  * Touch support
1166
1170
  * Mainly for scrolling
1167
1171
  */
1168
- var _65 = (0, use_touch_1.useTouch)({
1172
+ var _66 = (0, use_touch_1.useTouch)({
1169
1173
  scrollTo: scrollTo,
1170
1174
  scale: scale,
1171
1175
  onChangeScale: onChangeScale,
1172
- }), onTouchStart = _65.onTouchStart, onDimensionsChange = _65.onDimensionsChange, scrollToTouchDevice = _65.scrollToTouchDevice, onAfterScrollToCell = _65.onAfterScrollToCell;
1176
+ }), onTouchStart = _66.onTouchStart, onDimensionsChange = _66.onDimensionsChange, scrollToTouchDevice = _66.scrollToTouchDevice, onAfterScrollToCell = _66.onAfterScrollToCell;
1173
1177
  /**
1174
1178
  * Conditional-formatting evaluation window: the padded, tile-quantized
1175
1179
  * viewport. The raw viewport lives in a ref (no render per scroll frame);
@@ -1177,7 +1181,7 @@ function CanvasGridComponent(props, forwardedRef) {
1177
1181
  * `startTransition` so the CF recompute is low-priority and interruptible —
1178
1182
  * scrolling never blocks on it.
1179
1183
  */
1180
- var _66 = tslib_1.__read((0, react_1.useState)(cf_window_1.CF_INITIAL_WINDOW), 2), cfWindow = _66[0], setCfWindow = _66[1];
1184
+ var _67 = tslib_1.__read((0, react_1.useState)(cf_window_1.CF_INITIAL_WINDOW), 2), cfWindow = _67[0], setCfWindow = _67[1];
1181
1185
  var cfWindowRef = (0, react_1.useRef)(null);
1182
1186
  var handleViewPortChange = (0, react_1.useCallback)(function (viewport) {
1183
1187
  onViewPortChange === null || onViewPortChange === void 0 ? void 0 : onViewPortChange(viewport);
@@ -1444,14 +1448,14 @@ function CanvasGridComponent(props, forwardedRef) {
1444
1448
  : localeTokenizerBase,
1445
1449
  });
1446
1450
  // Helper function to convert a selection to readable selection address
1447
- var _67 = tslib_1.__read((0, use_create_address_from_selection_1.useCreateAddressFromSelection)({
1451
+ var _68 = tslib_1.__read((0, use_create_address_from_selection_1.useCreateAddressFromSelection)({
1448
1452
  sheetId: sheetId,
1449
1453
  rowCount: rowCount,
1450
1454
  columnCount: columnCount,
1451
1455
  tables: tables !== null && tables !== void 0 ? tables : undefined,
1452
1456
  namedRanges: namedRanges !== null && namedRanges !== void 0 ? namedRanges : undefined,
1453
1457
  merges: merges,
1454
- }), 2), getAddressFromSelection = _67[0], getR1C1AddressFromSelection = _67[1];
1458
+ }), 2), getAddressFromSelection = _68[0], getR1C1AddressFromSelection = _68[1];
1455
1459
  /**
1456
1460
  * Exports a data region as image
1457
1461
  */
@@ -1459,19 +1463,19 @@ function CanvasGridComponent(props, forwardedRef) {
1459
1463
  sheetId: sheetId,
1460
1464
  cellBackgroundColor: cellBackgroundColor,
1461
1465
  gridLineWidth: gridLineWidth,
1466
+ frozenRows: frozenRows,
1467
+ frozenColumns: frozenColumns,
1462
1468
  getCanvasLayers: getCanvasLayers,
1463
1469
  getRowHeaderCanvasLayer: getRowHeaderCanvasLayer,
1464
1470
  getColumnHeaderCanvasLayer: getColumnHeaderCanvasLayer,
1465
- getCellOffsetFromCoords: getCellOffsetFromCoords,
1466
1471
  getR1C1AddressFromSelection: getR1C1AddressFromSelection,
1467
1472
  getSheetName: getSheetName,
1468
1473
  getScrollPosition: getScrollPosition,
1469
- getViewPort: getViewPort,
1470
1474
  getRowOffset: getRowOffset,
1471
1475
  getColumnOffset: getColumnOffset,
1472
1476
  getSheetDimensions: getSheetDimensions,
1477
+ getGridDimensions: getGridDimensions,
1473
1478
  scrollTo: scrollTo,
1474
- scrollToCell: scrollToCell,
1475
1479
  scale: scale,
1476
1480
  onChangeScale: onChangeScale,
1477
1481
  });
@@ -1497,7 +1501,7 @@ function CanvasGridComponent(props, forwardedRef) {
1497
1501
  * Get user entered value from a range
1498
1502
  * of cells
1499
1503
  */
1500
- var _68 = tslib_1.__read((0, use_get_values_from_range_1.useGetValuesFromRange)({
1504
+ var _69 = tslib_1.__read((0, use_get_values_from_range_1.useGetValuesFromRange)({
1501
1505
  sheetId: sheetId,
1502
1506
  getSelectionsFromFormula: getSelectionsFromFormula,
1503
1507
  getFormattedValue: getFormattedValue,
@@ -1505,7 +1509,7 @@ function CanvasGridComponent(props, forwardedRef) {
1505
1509
  getSheetId: getSheetId,
1506
1510
  onRequestCalculate: onRequestCalculate,
1507
1511
  getValidationSourceValue: getValidationSourceValue,
1508
- }), 3), getFormattedValuesFromAddress = _68[0], getEffectiveValuesFromRange = _68[1], getFormattedValuesFromAddressAsync = _68[2];
1512
+ }), 3), getFormattedValuesFromAddress = _69[0], getEffectiveValuesFromRange = _69[1], getFormattedValuesFromAddressAsync = _69[2];
1509
1513
  /**
1510
1514
  * Get all formatted values from range as a single 1d array
1511
1515
  */
@@ -1836,7 +1840,7 @@ function CanvasGridComponent(props, forwardedRef) {
1836
1840
  * O(n)
1837
1841
  * Reduces Space Complexity by using `all`
1838
1842
  */
1839
- var _69 = tslib_1.__read((0, use_selected_rows_columns_1.useSelectedRowsColumns)({
1843
+ var _70 = tslib_1.__read((0, use_selected_rows_columns_1.useSelectedRowsColumns)({
1840
1844
  activeCell: activeCell,
1841
1845
  selections: selections,
1842
1846
  selectionLeftBound: selectionLeftBound,
@@ -1844,7 +1848,7 @@ function CanvasGridComponent(props, forwardedRef) {
1844
1848
  rowCount: rowCount,
1845
1849
  columnCount: columnCount,
1846
1850
  getCellBounds: getCellBounds,
1847
- }), 6), selectedRows = _69[0], selectedColumns = _69[1], selectedRowHeaders = _69[2], selectedColumnHeaders = _69[3], selectedRowHeadersIds = _69[4], selectedColumnHeadersIds = _69[5];
1851
+ }), 6), selectedRows = _70[0], selectedColumns = _70[1], selectedRowHeaders = _70[2], selectedColumnHeaders = _70[3], selectedRowHeadersIds = _70[4], selectedColumnHeadersIds = _70[5];
1848
1852
  // Named ranges for editor dropdown
1849
1853
  var getNamedRanges = (0, use_callback_ref_1.useCallbackRef)((0, react_1.useCallback)(function () {
1850
1854
  return namedRanges === null || namedRanges === void 0 ? void 0 : namedRanges.map(function (range) { return ({
@@ -1914,7 +1918,7 @@ function CanvasGridComponent(props, forwardedRef) {
1914
1918
  * user can select entire column or row when selecting
1915
1919
  * header cells
1916
1920
  */
1917
- var _70 = (0, use_selection_interceptors_1.useSelectionInterceptors)({
1921
+ var _71 = (0, use_selection_interceptors_1.useSelectionInterceptors)({
1918
1922
  sheetId: sheetId,
1919
1923
  rowCount: rowCount,
1920
1924
  columnCount: columnCount,
@@ -1930,7 +1934,7 @@ function CanvasGridComponent(props, forwardedRef) {
1930
1934
  onChangeActiveCell: onChangeActiveCell,
1931
1935
  scrollToCell: scrollToCell,
1932
1936
  isMergedCell: isMergedCell,
1933
- }), onMouseDownInterceptor = _70.onMouseDownInterceptor, onMouseMoveInterceptor = _70.onMouseMoveInterceptor;
1937
+ }), onMouseDownInterceptor = _71.onMouseDownInterceptor, onMouseMoveInterceptor = _71.onMouseMoveInterceptor;
1934
1938
  /**
1935
1939
  * When user selections full rows
1936
1940
  * or columns, we have to ignore
@@ -2020,7 +2024,7 @@ function CanvasGridComponent(props, forwardedRef) {
2020
2024
  * Enables auto resizing
2021
2025
  * rows and columns
2022
2026
  */
2023
- var _71 = (0, use_sizer_1.useSizer)({
2027
+ var _72 = (0, use_sizer_1.useSizer)({
2024
2028
  frozenRows: frozenRows,
2025
2029
  frozenColumns: frozenColumns,
2026
2030
  scale: scale,
@@ -2044,8 +2048,9 @@ function CanvasGridComponent(props, forwardedRef) {
2044
2048
  // Measure with the same font the painter draws with (#1117).
2045
2049
  fontFamily: defaultFontFamily,
2046
2050
  fontSize: defaultFontSize,
2051
+ lineHeightMode: lineHeightMode,
2047
2052
  resizeStrategy: "full",
2048
- }), getColumnWidth = _71.getColumnWidth, getRowHeight = _71.getRowHeight, getCellDimensions = _71.getCellDimensions, getCellDimensionsStable = _71.getCellDimensionsStable, getTextDimension = _71.getTextDimension;
2053
+ }), getColumnWidth = _72.getColumnWidth, getRowHeight = _72.getRowHeight, getCellDimensions = _72.getCellDimensions, getCellDimensionsStable = _72.getCellDimensionsStable, getTextDimension = _72.getTextDimension;
2049
2054
  /**
2050
2055
  * Called when user tries to
2051
2056
  * autofit a column or row
@@ -2124,7 +2129,7 @@ function CanvasGridComponent(props, forwardedRef) {
2124
2129
  /**
2125
2130
  * Popover cell
2126
2131
  */
2127
- var _72 = (0, use_cell_popover_1.useCellPopover)({
2132
+ var _73 = (0, use_cell_popover_1.useCellPopover)({
2128
2133
  sheetId: sheetId,
2129
2134
  getCellPopoverContent: getCellPopoverContent !== null && getCellPopoverContent !== void 0 ? getCellPopoverContent : getFormattedValue,
2130
2135
  getCellOffsetFromCoords: getCellOffsetFromCoords,
@@ -2132,7 +2137,7 @@ function CanvasGridComponent(props, forwardedRef) {
2132
2137
  isFrozenColumn: isFrozenColumn,
2133
2138
  isFrozenRow: isFrozenRow,
2134
2139
  onChangeActiveSheet: onChangeActiveSheet,
2135
- }), popoverComponent = _72.popoverComponent, popoverRange = _72.popoverRange, showCellPopover = _72.showCellPopover, hideCellPopover = _72.hideCellPopover;
2140
+ }), popoverComponent = _73.popoverComponent, popoverRange = _73.popoverRange, showCellPopover = _73.showCellPopover, hideCellPopover = _73.hideCellPopover;
2136
2141
  /**
2137
2142
  * Get tooltip component of a cell
2138
2143
  * Only error, invalid values are
@@ -2559,7 +2564,7 @@ function CanvasGridComponent(props, forwardedRef) {
2559
2564
  /**
2560
2565
  * Handle grid selections
2561
2566
  */
2562
- var _73 = (0, use_selection_1.useSelection)({
2567
+ var _74 = (0, use_selection_1.useSelection)({
2563
2568
  sheetId: sheetId,
2564
2569
  getDataRowCount: getDataRowCount,
2565
2570
  getDataRegion: getDataRegion,
@@ -2587,10 +2592,12 @@ function CanvasGridComponent(props, forwardedRef) {
2587
2592
  focus: focusSheet,
2588
2593
  scrollToCell: scrollToCell,
2589
2594
  isMergedCell: isMergedCell,
2590
- onFill: onFill,
2595
+ // A readonly grid gets no write handler: a fill-handle drag or a
2596
+ // selection drag-move then changes nothing, whatever started the gesture.
2597
+ onFill: readonly ? undefined : onFill,
2591
2598
  onFillHandleRelease: handleFillHandleRelease,
2592
- onFillShrink: handleFillShrink,
2593
- onMoveSelection: onMoveSelection,
2599
+ onFillShrink: readonly ? undefined : handleFillShrink,
2600
+ onMoveSelection: readonly ? undefined : onMoveSelection,
2594
2601
  onInsertCutCells: onInsertCutCells,
2595
2602
  confirmMoveOverwrite: confirmMoveOverwrite,
2596
2603
  isHiddenColumn: isHiddenColumn,
@@ -2601,19 +2608,20 @@ function CanvasGridComponent(props, forwardedRef) {
2601
2608
  dataRegionBoundaries: dataRegionBoundaries,
2602
2609
  tables: tables,
2603
2610
  onInsertTableRow: onInsertTableRow,
2604
- }), 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;
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;
2605
2612
  /**
2606
2613
  * Copy, Paste and Cut hook
2607
2614
  */
2608
- var _74 = (0, use_copy_paste_cut_1.useCopyPasteCut)({
2615
+ var _75 = (0, use_copy_paste_cut_1.useCopyPasteCut)({
2609
2616
  activeCell: activeCell,
2610
2617
  selections: selections,
2611
2618
  sheetId: sheetId,
2619
+ readonly: readonly,
2612
2620
  focusSheet: focusSheet,
2613
2621
  onPaste: onPaste,
2614
2622
  onCopy: onCopy,
2615
2623
  onCut: onCut,
2616
- }), 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;
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;
2617
2625
  /**
2618
2626
  * Ctrl+C / Ctrl+X / Ctrl+V / Ctrl+D on a selected chart. The focused chart is
2619
2627
  * the target of those events (see `EmbedDraggable`); a paste that lands in the
@@ -2856,6 +2864,7 @@ function CanvasGridComponent(props, forwardedRef) {
2856
2864
  showValidationAlert: showValidationAlert,
2857
2865
  selections: selections,
2858
2866
  onChangeBatch: onChangeBatch,
2867
+ batchHistory: batchHistory,
2859
2868
  formulaLocale: formulaLocale,
2860
2869
  });
2861
2870
  /**
@@ -2953,7 +2962,7 @@ function CanvasGridComponent(props, forwardedRef) {
2953
2962
  onChangeSelections === null || onChangeSelections === void 0 ? void 0 : onChangeSelections(targetSheetId, [{ range: range }]);
2954
2963
  }, [setActiveCell, onChangeSelections]);
2955
2964
  // Excel's table hit zones (header top edge / corner / row left edge).
2956
- var _75 = (0, use_table_hit_zones_1.useTableHitZones)({
2965
+ var _76 = (0, use_table_hit_zones_1.useTableHitZones)({
2957
2966
  sheetId: sheetId,
2958
2967
  tables: activeTables,
2959
2968
  selections: selections,
@@ -2964,7 +2973,7 @@ function CanvasGridComponent(props, forwardedRef) {
2964
2973
  getCellOffsetFromCoords: getCellOffsetFromCoords,
2965
2974
  getScrollPosition: getScrollPosition,
2966
2975
  onSelectRange: selectRangeFromMenu,
2967
- }), tableHitCursor = _75.cursor, onMouseMoveTableHitZones = _75.onMouseMove, onMouseDownTableHitZones = _75.onMouseDown, clearTableHitZone = _75.clearHitZone;
2976
+ }), tableHitCursor = _76.cursor, onMouseMoveTableHitZones = _76.onMouseMove, onMouseDownTableHitZones = _76.onMouseDown, clearTableHitZone = _76.clearHitZone;
2968
2977
  /**
2969
2978
  * Get context Menu component
2970
2979
  */
@@ -3066,7 +3075,7 @@ function CanvasGridComponent(props, forwardedRef) {
3066
3075
  * Displays Context menu when user right clicks
3067
3076
  * the grid
3068
3077
  */
3069
- var _76 = (0, use_context_menu_1.useContextMenu)({
3078
+ var _77 = (0, use_context_menu_1.useContextMenu)({
3070
3079
  getCellCoordsFromOffset: getCellCoordsFromOffset,
3071
3080
  getRelativePositionFromOffset: getRelativePositionFromOffset,
3072
3081
  isRowHeader: isRowHeader,
@@ -3075,7 +3084,7 @@ function CanvasGridComponent(props, forwardedRef) {
3075
3084
  getCellOffsetFromCoords: getCellOffsetFromCoords,
3076
3085
  getScrollPosition: getScrollPosition,
3077
3086
  ContextMenuWrapper: ContextMenuWrapper,
3078
- }), onContextMenu = _76.onContextMenu, contextMenuComponent = _76.contextMenuComponent, onRequestCloseContextMenu = _76.onRequestClose, showContextMenu = _76.showContextMenu;
3087
+ }), onContextMenu = _77.onContextMenu, contextMenuComponent = _77.contextMenuComponent, onRequestCloseContextMenu = _77.onRequestClose, showContextMenu = _77.showContextMenu;
3079
3088
  /**
3080
3089
  * Shortcut handlers for formatting
3081
3090
  * TODO: Decide on the output
@@ -3156,7 +3165,7 @@ function CanvasGridComponent(props, forwardedRef) {
3156
3165
  /**
3157
3166
  * Allow grid to be ediable
3158
3167
  */
3159
- var _77 = (0, use_editable_1.useEditable)({
3168
+ var _78 = (0, use_editable_1.useEditable)({
3160
3169
  sheetId: sheetId,
3161
3170
  enableEditOnEnterKey: enableEditOnEnterKey,
3162
3171
  canEdit: canEditCell,
@@ -3207,11 +3216,11 @@ function CanvasGridComponent(props, forwardedRef) {
3207
3216
  onCut: handleEditorCut,
3208
3217
  tables: tables,
3209
3218
  onInsertTableRow: onInsertTableRow,
3210
- }), 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;
3219
+ }), 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;
3211
3220
  /**
3212
3221
  * Move rows and columns
3213
3222
  */
3214
- var _78 = (0, use_move_columns_rows_1.useMoveColumnsAndRows)({
3223
+ var _79 = (0, use_move_columns_rows_1.useMoveColumnsAndRows)({
3215
3224
  getCellOffsetFromCoords: getCellOffsetFromCoords,
3216
3225
  getCellCoordsFromOffset: getCellCoordsFromOffset,
3217
3226
  getRelativePositionFromOffset: getRelativePositionFromOffset,
@@ -3234,11 +3243,11 @@ function CanvasGridComponent(props, forwardedRef) {
3234
3243
  sheetId: sheetId,
3235
3244
  disabled: isRestricted,
3236
3245
  HeaderMoveDragComponent: HeaderMoveDragComponent,
3237
- }), draggableColumns = _78.draggableColumns, draggableRows = _78.draggableRows, isDraggingRowsAndColumns = _78.isDragging;
3246
+ }), draggableColumns = _79.draggableColumns, draggableRows = _79.draggableRows, isDraggingRowsAndColumns = _79.isDragging;
3238
3247
  /**
3239
3248
  * Header actions
3240
3249
  */
3241
- var _79 = (0, use_header_actions_1.useHeaderActions)({
3250
+ var _80 = (0, use_header_actions_1.useHeaderActions)({
3242
3251
  activeCell: isSelectionInProgress || isFilling || isDragging ? null : hoveredCell,
3243
3252
  getScrollPosition: getScrollPosition,
3244
3253
  getCellOffsetFromCoords: getCellOffsetFromCoords,
@@ -3252,20 +3261,21 @@ function CanvasGridComponent(props, forwardedRef) {
3252
3261
  selectionTopBound: selectionTopBound,
3253
3262
  showHeaderMenuButton: showHeaderMenuButton,
3254
3263
  scale: scale,
3255
- onResize: onResize,
3264
+ // Column widths and row heights are sheet writes too
3265
+ onResize: readonly ? undefined : onResize,
3256
3266
  focusSheet: focusSheet,
3257
3267
  isRowHeader: isRowHeader,
3258
3268
  isColumnHeader: isColumnHeader,
3259
3269
  isHiddenColumn: isHiddenColumn,
3260
3270
  containerWidth: width - scrollbarSize,
3261
3271
  containerHeight: height - scrollbarSize,
3262
- onAutoFit: handleAutoFit,
3272
+ onAutoFit: readonly ? undefined : handleAutoFit,
3263
3273
  backgroundColor: selectionBorderColor,
3264
3274
  sheetId: sheetId,
3265
3275
  selectedRowHeadersIds: selectedRowHeadersIds,
3266
3276
  selectedColumnHeadersIds: selectedColumnHeadersIds,
3267
3277
  enableResizerOverflow: enableResizerOverflow,
3268
- }), headerMenuComponent = _79.headerMenuComponent, isHeaderMenuInFrozenColumn = _79.isHeaderMenuInFrozenColumn, headerResizer = _79.headerResizer, isDraggingHeader = _79.isDragging;
3278
+ }), headerMenuComponent = _80.headerMenuComponent, isHeaderMenuInFrozenColumn = _80.isHeaderMenuInFrozenColumn, headerResizer = _80.headerResizer, isDraggingHeader = _80.isDragging;
3269
3279
  /**
3270
3280
  * Close tooltip
3271
3281
  */
@@ -3307,7 +3317,7 @@ function CanvasGridComponent(props, forwardedRef) {
3307
3317
  /**
3308
3318
  * Show basicFilter panels
3309
3319
  */
3310
- var _80 = (0, use_filter_1.useFilter)({
3320
+ var _81 = (0, use_filter_1.useFilter)({
3311
3321
  sheetId: sheetId,
3312
3322
  scale: scale,
3313
3323
  theme: theme,
@@ -3332,9 +3342,9 @@ function CanvasGridComponent(props, forwardedRef) {
3332
3342
  // Live filter state so the open popup tracks Auto-apply spec changes.
3333
3343
  basicFilter: basicFilter,
3334
3344
  tables: activeTables,
3335
- }), showFilter = _80.showFilter, hideFilter = _80.hideFilter, filterComponent = _80.filterComponent;
3345
+ }), showFilter = _81.showFilter, hideFilter = _81.hideFilter, filterComponent = _81.filterComponent;
3336
3346
  // Table resize
3337
- var _81 = (0, use_table_resizer_1.useTableResizer)({
3347
+ var _82 = (0, use_table_resizer_1.useTableResizer)({
3338
3348
  sheetId: sheetId,
3339
3349
  tables: tables !== null && tables !== void 0 ? tables : undefined,
3340
3350
  theme: theme,
@@ -3345,11 +3355,11 @@ function CanvasGridComponent(props, forwardedRef) {
3345
3355
  scrollToCell: scrollToCell,
3346
3356
  onResizeTable: onResizeTable,
3347
3357
  focusSheet: focusSheet,
3348
- }), tableResizers = _81.tableResizers, isResizingTable = _81.isResizingTable;
3358
+ }), tableResizers = _82.tableResizers, isResizingTable = _82.isResizingTable;
3349
3359
  /**
3350
3360
  * Displays resizable/draggable charts
3351
3361
  */
3352
- var _82 = (0, use_embeds_charts_1.useEmbedsCharts)({
3362
+ var _83 = (0, use_embeds_charts_1.useEmbedsCharts)({
3353
3363
  charts: charts,
3354
3364
  embeds: embeds,
3355
3365
  slicers: slicers,
@@ -3393,7 +3403,7 @@ function CanvasGridComponent(props, forwardedRef) {
3393
3403
  backgroundColor: cellBackgroundColor,
3394
3404
  disabled: isRestricted,
3395
3405
  readonly: readonly,
3396
- }), chartComponents = _82.chartComponents, embedComponents = _82.embedComponents, slicerComponents = _82.slicerComponents, embedContextMenuComponent = _82.contextMenuComponent, onMouseDownCharts = _82.onMouseDown, requestChartContextMenu = _82.requestChartContextMenu;
3406
+ }), chartComponents = _83.chartComponents, embedComponents = _83.embedComponents, slicerComponents = _83.slicerComponents, embedContextMenuComponent = _83.contextMenuComponent, onMouseDownCharts = _83.onMouseDown, requestChartContextMenu = _83.requestChartContextMenu;
3397
3407
  /**
3398
3408
  * Callback when user clicks Filter icon
3399
3409
  * Show Filter dropdown here
@@ -3452,7 +3462,7 @@ function CanvasGridComponent(props, forwardedRef) {
3452
3462
  * The totals-function picker a totals cell's in-cell arrow opens (Excel):
3453
3463
  * anchored at the cell's bottom-right corner like the filter dropdown.
3454
3464
  */
3455
- var _83 = tslib_1.__read((0, react_1.useState)(null), 2), totalsPicker = _83[0], setTotalsPicker = _83[1];
3465
+ var _84 = tslib_1.__read((0, react_1.useState)(null), 2), totalsPicker = _84[0], setTotalsPicker = _84[1];
3456
3466
  var closeTotalsPicker = (0, react_1.useCallback)(function () { return setTotalsPicker(null); }, []);
3457
3467
  var handleTotalsArrowClick = (0, react_1.useCallback)(function (cell) {
3458
3468
  var table = activeTables === null || activeTables === void 0 ? void 0 : activeTables.find(function (candidate) {
@@ -3708,7 +3718,7 @@ function CanvasGridComponent(props, forwardedRef) {
3708
3718
  /**
3709
3719
  * Render Cells in the grid
3710
3720
  */
3711
- var _84 = tslib_1.__read((0, use_cell_renderer_1.useCellRenderer)({
3721
+ var _85 = tslib_1.__read((0, use_cell_renderer_1.useCellRenderer)({
3712
3722
  sheetId: sheetId,
3713
3723
  isTableTotalsCell: isTableTotalsCell,
3714
3724
  onTotalsArrowClick: handleTotalsArrowClick,
@@ -3767,6 +3777,7 @@ function CanvasGridComponent(props, forwardedRef) {
3767
3777
  onCheckboxClick: handleCheckboxClick,
3768
3778
  onExpandCollapse: handleExpandCollapse,
3769
3779
  defaultFontSizePoint: defaultFontSize,
3780
+ lineHeightMode: lineHeightMode,
3770
3781
  Cell: Cell,
3771
3782
  HeaderCell: HeaderCell,
3772
3783
  theme: theme,
@@ -3778,7 +3789,7 @@ function CanvasGridComponent(props, forwardedRef) {
3778
3789
  onOverflow: handleOverflow,
3779
3790
  isComparing: isComparing,
3780
3791
  getCellDiff: getCellDiff,
3781
- }), 4), cellBackgroundRenderer = _84[0], cellRenderer = _84[1], cellOverlayRenderer = _84[2], headerCellRenderer = _84[3];
3792
+ }), 4), cellBackgroundRenderer = _85[0], cellRenderer = _85[1], cellOverlayRenderer = _85[2], headerCellRenderer = _85[3];
3782
3793
  /**
3783
3794
  * When user selects a selection for moving
3784
3795
  * If its a table, we select the entire column
@@ -3814,16 +3825,16 @@ function CanvasGridComponent(props, forwardedRef) {
3814
3825
  tokenizer: localeTokenizer,
3815
3826
  });
3816
3827
  // Selection move: drag a formula reference via its border covers
3817
- var _85 = (0, use_selection_move_1.useSelectionMove)({
3828
+ var _86 = (0, use_selection_move_1.useSelectionMove)({
3818
3829
  getCellCoordsFromOffset: getCellCoordsFromOffset,
3819
3830
  scrollToCell: scrollToCell,
3820
3831
  tokenizer: localeTokenizer,
3821
- }), onMouseDownMoveSelection = _85.onMouseDownMoveSelection, isDraggingMoveSelection = _85.isDragging;
3832
+ }), onMouseDownMoveSelection = _86.onMouseDownMoveSelection, isDraggingMoveSelection = _86.isDragging;
3822
3833
  /**
3823
3834
  * Selected chart: outline its source ranges on this sheet and re-bind
3824
3835
  * them when a corner handle is dragged (Excel's chart data highlight).
3825
3836
  */
3826
- var _86 = (0, use_chart_source_ranges_1.useChartSourceRanges)({
3837
+ var _87 = (0, use_chart_source_ranges_1.useChartSourceRanges)({
3827
3838
  charts: charts,
3828
3839
  sheetId: sheetId,
3829
3840
  getSheetName: getSheetName,
@@ -3832,22 +3843,24 @@ function CanvasGridComponent(props, forwardedRef) {
3832
3843
  getCellBounds: getCellBounds,
3833
3844
  getCellCoordsFromOffset: getCellCoordsFromOffset,
3834
3845
  scrollToCell: scrollToCell,
3835
- }), chartSourceBorderStyles = _86.chartSourceBorderStyles, onMouseDownChartSourceResizeHandle = _86.onMouseDownChartSourceResizeHandle;
3846
+ }), chartSourceBorderStyles = _87.chartSourceBorderStyles, onMouseDownChartSourceResizeHandle = _87.onMouseDownChartSourceResizeHandle;
3836
3847
  /**
3837
3848
  * Hide fill handle
3838
3849
  * 1. When user is in edit mode
3839
3850
  * 2. When user is in formula mode and user has made selections
3851
+ * 3. When the grid is readonly — a fill is a write
3840
3852
  */
3841
- var showFillHandle = !isSelectionInProgress &&
3853
+ var showFillHandle = !readonly &&
3854
+ !isSelectionInProgress &&
3842
3855
  !isEditInProgress &&
3843
3856
  !isResizingTable &&
3844
3857
  !(formulaMode && formulaSelections.length);
3845
3858
  /**
3846
3859
  * Flashing
3847
3860
  */
3848
- var _87 = (0, use_flash_1.useFlash)({
3861
+ var _88 = (0, use_flash_1.useFlash)({
3849
3862
  theme: theme,
3850
- }), flash = _87.flash, mark = _87.mark, unmark = _87.unmark, onFlashEnd = _87.onFlashEnd, flashingBorders = _87.flashingBorders;
3863
+ }), flash = _88.flash, mark = _88.mark, unmark = _88.unmark, onFlashEnd = _88.onFlashEnd, flashingBorders = _88.flashingBorders;
3851
3864
  // Cache hover ids
3852
3865
  var cachedHoveredSelectionIds = (0, use_hovered_selection_ids_1.useHoveredSelectionIds)({
3853
3866
  selections: selections,
@@ -3944,7 +3957,7 @@ function CanvasGridComponent(props, forwardedRef) {
3944
3957
  ? tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(finalBorderStyles), false), tslib_1.__read(chartSourceBorderStyles), false) : finalBorderStyles;
3945
3958
  }, [finalBorderStyles, chartSourceBorderStyles]);
3946
3959
  // Hidden column markers
3947
- var _88 = tslib_1.__read((0, use_hidden_dimension_markers_1.useHiddenDimensionMarkers)({
3960
+ var _89 = tslib_1.__read((0, use_hidden_dimension_markers_1.useHiddenDimensionMarkers)({
3948
3961
  sheetId: sheetId,
3949
3962
  columnMetadata: columnMetadata,
3950
3963
  rowMetadata: rowMetadata,
@@ -3957,7 +3970,7 @@ function CanvasGridComponent(props, forwardedRef) {
3957
3970
  columnCount: columnCount,
3958
3971
  HiddenRowMarkers: HiddenRowMarkers,
3959
3972
  HiddenColumnMarkers: HiddenColumnMarkers,
3960
- }), 4), hiddenColumnMarkers = _88[0], frozenHiddenColumnMarkers = _88[1], hiddenRowMarkers = _88[2], frozenHiddenRowMarkers = _88[3];
3973
+ }), 4), hiddenColumnMarkers = _89[0], frozenHiddenColumnMarkers = _89[1], hiddenRowMarkers = _89[2], frozenHiddenRowMarkers = _89[3];
3961
3974
  // Zoom lister
3962
3975
  var onMouseWheel = (0, use_scale_listener_1.useScaleListener)({
3963
3976
  zoomSpeed: zoomSpeed,
@@ -4309,12 +4322,14 @@ function CanvasGridComponent(props, forwardedRef) {
4309
4322
  popoverComponent: popoverComponent,
4310
4323
  popoverRange: popoverRange,
4311
4324
  cellExpandComponent: cellExpandComponent,
4325
+ arrowComponents: arrowComponents,
4312
4326
  });
4313
4327
  /**
4314
4328
  * Only enable selection drag if user is not editing and not
4315
- * in formula mode
4329
+ * in formula mode. A readonly grid has nothing to move, so the
4330
+ * gesture does not start at all (no move cursor, no selection jump).
4316
4331
  */
4317
- var enableSelectionDrag = !isSelectionInProgress && !isEditInProgress && !formulaMode;
4332
+ var enableSelectionDrag = !readonly && !isSelectionInProgress && !isEditInProgress && !formulaMode;
4318
4333
  // A chartsheet IS its chart: no grid, headers, editor or cell menus — only the chart and its
4319
4334
  // context menu (Excel).
4320
4335
  if (sheetType === "chartsheet") {