@rowsncolumns/spreadsheet 10.5.2 → 10.5.5

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 (115) hide show
  1. package/dist/cjs/api/selections.d.ts +15 -1
  2. package/dist/cjs/api/selections.d.ts.map +1 -1
  3. package/dist/cjs/api/selections.js +12 -2
  4. package/dist/cjs/components/canvas-grid/index.d.ts.map +1 -1
  5. package/dist/cjs/components/canvas-grid/index.js +88 -70
  6. package/dist/cjs/components/canvas-grid/typings.d.ts +40 -1
  7. package/dist/cjs/components/canvas-grid/typings.d.ts.map +1 -1
  8. package/dist/cjs/components/cell/cell-text-runs.d.ts +10 -3
  9. package/dist/cjs/components/cell/cell-text-runs.d.ts.map +1 -1
  10. package/dist/cjs/components/cell/cell-text-runs.js +21 -9
  11. package/dist/cjs/components/cell/index.d.ts.map +1 -1
  12. package/dist/cjs/components/cell/index.js +9 -5
  13. package/dist/cjs/components/cell/line-height.d.ts +22 -0
  14. package/dist/cjs/components/cell/line-height.d.ts.map +1 -0
  15. package/dist/cjs/components/cell/line-height.js +32 -0
  16. package/dist/cjs/components/cell/typings.d.ts +8 -2
  17. package/dist/cjs/components/cell/typings.d.ts.map +1 -1
  18. package/dist/cjs/hooks/export-range-tiles.d.ts +81 -0
  19. package/dist/cjs/hooks/export-range-tiles.d.ts.map +1 -0
  20. package/dist/cjs/hooks/export-range-tiles.js +171 -0
  21. package/dist/cjs/hooks/use-cell-renderer.d.ts +6 -1
  22. package/dist/cjs/hooks/use-cell-renderer.d.ts.map +1 -1
  23. package/dist/cjs/hooks/use-cell-renderer.js +3 -2
  24. package/dist/cjs/hooks/use-copy-paste-cut.d.ts +5 -1
  25. package/dist/cjs/hooks/use-copy-paste-cut.d.ts.map +1 -1
  26. package/dist/cjs/hooks/use-copy-paste-cut.js +19 -5
  27. package/dist/cjs/hooks/use-editable.d.ts +8 -1
  28. package/dist/cjs/hooks/use-editable.d.ts.map +1 -1
  29. package/dist/cjs/hooks/use-editable.js +6 -1
  30. package/dist/cjs/hooks/use-editor-submit.d.ts +7 -1
  31. package/dist/cjs/hooks/use-editor-submit.d.ts.map +1 -1
  32. package/dist/cjs/hooks/use-editor-submit.js +36 -16
  33. package/dist/cjs/hooks/use-export-range.d.ts +14 -6
  34. package/dist/cjs/hooks/use-export-range.d.ts.map +1 -1
  35. package/dist/cjs/hooks/use-export-range.js +240 -158
  36. package/dist/cjs/hooks/use-grid-children.d.ts +4 -1
  37. package/dist/cjs/hooks/use-grid-children.d.ts.map +1 -1
  38. package/dist/cjs/hooks/use-grid-children.js +4 -2
  39. package/dist/cjs/hooks/use-keyboard-handler.d.ts.map +1 -1
  40. package/dist/cjs/hooks/use-keyboard-handler.js +13 -6
  41. package/dist/cjs/hooks/use-navigate-sheet-range.d.ts.map +1 -1
  42. package/dist/cjs/hooks/use-navigate-sheet-range.js +5 -2
  43. package/dist/cjs/hooks/use-resize-observer.d.ts.map +1 -1
  44. package/dist/cjs/hooks/use-resize-observer.js +43 -11
  45. package/dist/cjs/hooks/use-selection-renderer.d.ts +5 -1
  46. package/dist/cjs/hooks/use-selection-renderer.d.ts.map +1 -1
  47. package/dist/cjs/hooks/use-selection-renderer.js +8 -2
  48. package/dist/cjs/hooks/use-selection.d.ts.map +1 -1
  49. package/dist/cjs/hooks/use-selection.js +4 -2
  50. package/dist/cjs/hooks/use-sizer.d.ts +8 -2
  51. package/dist/cjs/hooks/use-sizer.d.ts.map +1 -1
  52. package/dist/cjs/hooks/use-sizer.js +54 -33
  53. package/dist/cjs/providers/spreadsheet-provider.d.ts +11 -2
  54. package/dist/cjs/providers/spreadsheet-provider.d.ts.map +1 -1
  55. package/dist/cjs/providers/spreadsheet-provider.js +7 -5
  56. package/dist/cjs/release-date.js +1 -1
  57. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  58. package/dist/esm/api/selections.d.ts +15 -1
  59. package/dist/esm/api/selections.d.ts.map +1 -1
  60. package/dist/esm/api/selections.js +11 -2
  61. package/dist/esm/components/canvas-grid/index.d.ts.map +1 -1
  62. package/dist/esm/components/canvas-grid/index.js +30 -12
  63. package/dist/esm/components/canvas-grid/typings.d.ts +40 -1
  64. package/dist/esm/components/canvas-grid/typings.d.ts.map +1 -1
  65. package/dist/esm/components/cell/cell-text-runs.d.ts +10 -3
  66. package/dist/esm/components/cell/cell-text-runs.d.ts.map +1 -1
  67. package/dist/esm/components/cell/cell-text-runs.js +14 -9
  68. package/dist/esm/components/cell/index.d.ts.map +1 -1
  69. package/dist/esm/components/cell/index.js +7 -3
  70. package/dist/esm/components/cell/line-height.d.ts +22 -0
  71. package/dist/esm/components/cell/line-height.d.ts.map +1 -0
  72. package/dist/esm/components/cell/line-height.js +25 -0
  73. package/dist/esm/components/cell/typings.d.ts +8 -2
  74. package/dist/esm/components/cell/typings.d.ts.map +1 -1
  75. package/dist/esm/hooks/export-range-tiles.d.ts +81 -0
  76. package/dist/esm/hooks/export-range-tiles.d.ts.map +1 -0
  77. package/dist/esm/hooks/export-range-tiles.js +126 -0
  78. package/dist/esm/hooks/use-cell-renderer.d.ts +6 -1
  79. package/dist/esm/hooks/use-cell-renderer.d.ts.map +1 -1
  80. package/dist/esm/hooks/use-cell-renderer.js +3 -2
  81. package/dist/esm/hooks/use-copy-paste-cut.d.ts +5 -1
  82. package/dist/esm/hooks/use-copy-paste-cut.d.ts.map +1 -1
  83. package/dist/esm/hooks/use-copy-paste-cut.js +17 -3
  84. package/dist/esm/hooks/use-editable.d.ts +8 -1
  85. package/dist/esm/hooks/use-editable.d.ts.map +1 -1
  86. package/dist/esm/hooks/use-editable.js +6 -1
  87. package/dist/esm/hooks/use-editor-submit.d.ts +7 -1
  88. package/dist/esm/hooks/use-editor-submit.d.ts.map +1 -1
  89. package/dist/esm/hooks/use-editor-submit.js +24 -6
  90. package/dist/esm/hooks/use-export-range.d.ts +14 -6
  91. package/dist/esm/hooks/use-export-range.d.ts.map +1 -1
  92. package/dist/esm/hooks/use-export-range.js +158 -120
  93. package/dist/esm/hooks/use-grid-children.d.ts +4 -1
  94. package/dist/esm/hooks/use-grid-children.d.ts.map +1 -1
  95. package/dist/esm/hooks/use-grid-children.js +4 -2
  96. package/dist/esm/hooks/use-keyboard-handler.d.ts.map +1 -1
  97. package/dist/esm/hooks/use-keyboard-handler.js +13 -6
  98. package/dist/esm/hooks/use-navigate-sheet-range.d.ts.map +1 -1
  99. package/dist/esm/hooks/use-navigate-sheet-range.js +5 -2
  100. package/dist/esm/hooks/use-resize-observer.d.ts.map +1 -1
  101. package/dist/esm/hooks/use-resize-observer.js +38 -9
  102. package/dist/esm/hooks/use-selection-renderer.d.ts +5 -1
  103. package/dist/esm/hooks/use-selection-renderer.d.ts.map +1 -1
  104. package/dist/esm/hooks/use-selection-renderer.js +8 -2
  105. package/dist/esm/hooks/use-selection.d.ts.map +1 -1
  106. package/dist/esm/hooks/use-selection.js +4 -2
  107. package/dist/esm/hooks/use-sizer.d.ts +8 -2
  108. package/dist/esm/hooks/use-sizer.d.ts.map +1 -1
  109. package/dist/esm/hooks/use-sizer.js +53 -31
  110. package/dist/esm/providers/spreadsheet-provider.d.ts +11 -2
  111. package/dist/esm/providers/spreadsheet-provider.d.ts.map +1 -1
  112. package/dist/esm/providers/spreadsheet-provider.js +8 -6
  113. package/dist/esm/release-date.js +1 -1
  114. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  115. 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, 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,
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", "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
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,9 +3165,10 @@ 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,
3171
+ shouldHandleKeyDown: shouldHandleKeyDown,
3162
3172
  canEdit: canEditCell,
3163
3173
  sticky: stickyEditor,
3164
3174
  getScrollPosition: getScrollPosition,
@@ -3207,11 +3217,11 @@ function CanvasGridComponent(props, forwardedRef) {
3207
3217
  onCut: handleEditorCut,
3208
3218
  tables: tables,
3209
3219
  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;
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;
3211
3221
  /**
3212
3222
  * Move rows and columns
3213
3223
  */
3214
- var _78 = (0, use_move_columns_rows_1.useMoveColumnsAndRows)({
3224
+ var _79 = (0, use_move_columns_rows_1.useMoveColumnsAndRows)({
3215
3225
  getCellOffsetFromCoords: getCellOffsetFromCoords,
3216
3226
  getCellCoordsFromOffset: getCellCoordsFromOffset,
3217
3227
  getRelativePositionFromOffset: getRelativePositionFromOffset,
@@ -3234,11 +3244,11 @@ function CanvasGridComponent(props, forwardedRef) {
3234
3244
  sheetId: sheetId,
3235
3245
  disabled: isRestricted,
3236
3246
  HeaderMoveDragComponent: HeaderMoveDragComponent,
3237
- }), draggableColumns = _78.draggableColumns, draggableRows = _78.draggableRows, isDraggingRowsAndColumns = _78.isDragging;
3247
+ }), draggableColumns = _79.draggableColumns, draggableRows = _79.draggableRows, isDraggingRowsAndColumns = _79.isDragging;
3238
3248
  /**
3239
3249
  * Header actions
3240
3250
  */
3241
- var _79 = (0, use_header_actions_1.useHeaderActions)({
3251
+ var _80 = (0, use_header_actions_1.useHeaderActions)({
3242
3252
  activeCell: isSelectionInProgress || isFilling || isDragging ? null : hoveredCell,
3243
3253
  getScrollPosition: getScrollPosition,
3244
3254
  getCellOffsetFromCoords: getCellOffsetFromCoords,
@@ -3252,20 +3262,21 @@ function CanvasGridComponent(props, forwardedRef) {
3252
3262
  selectionTopBound: selectionTopBound,
3253
3263
  showHeaderMenuButton: showHeaderMenuButton,
3254
3264
  scale: scale,
3255
- onResize: onResize,
3265
+ // Column widths and row heights are sheet writes too
3266
+ onResize: readonly ? undefined : onResize,
3256
3267
  focusSheet: focusSheet,
3257
3268
  isRowHeader: isRowHeader,
3258
3269
  isColumnHeader: isColumnHeader,
3259
3270
  isHiddenColumn: isHiddenColumn,
3260
3271
  containerWidth: width - scrollbarSize,
3261
3272
  containerHeight: height - scrollbarSize,
3262
- onAutoFit: handleAutoFit,
3273
+ onAutoFit: readonly ? undefined : handleAutoFit,
3263
3274
  backgroundColor: selectionBorderColor,
3264
3275
  sheetId: sheetId,
3265
3276
  selectedRowHeadersIds: selectedRowHeadersIds,
3266
3277
  selectedColumnHeadersIds: selectedColumnHeadersIds,
3267
3278
  enableResizerOverflow: enableResizerOverflow,
3268
- }), headerMenuComponent = _79.headerMenuComponent, isHeaderMenuInFrozenColumn = _79.isHeaderMenuInFrozenColumn, headerResizer = _79.headerResizer, isDraggingHeader = _79.isDragging;
3279
+ }), headerMenuComponent = _80.headerMenuComponent, isHeaderMenuInFrozenColumn = _80.isHeaderMenuInFrozenColumn, headerResizer = _80.headerResizer, isDraggingHeader = _80.isDragging;
3269
3280
  /**
3270
3281
  * Close tooltip
3271
3282
  */
@@ -3307,7 +3318,7 @@ function CanvasGridComponent(props, forwardedRef) {
3307
3318
  /**
3308
3319
  * Show basicFilter panels
3309
3320
  */
3310
- var _80 = (0, use_filter_1.useFilter)({
3321
+ var _81 = (0, use_filter_1.useFilter)({
3311
3322
  sheetId: sheetId,
3312
3323
  scale: scale,
3313
3324
  theme: theme,
@@ -3332,9 +3343,9 @@ function CanvasGridComponent(props, forwardedRef) {
3332
3343
  // Live filter state so the open popup tracks Auto-apply spec changes.
3333
3344
  basicFilter: basicFilter,
3334
3345
  tables: activeTables,
3335
- }), showFilter = _80.showFilter, hideFilter = _80.hideFilter, filterComponent = _80.filterComponent;
3346
+ }), showFilter = _81.showFilter, hideFilter = _81.hideFilter, filterComponent = _81.filterComponent;
3336
3347
  // Table resize
3337
- var _81 = (0, use_table_resizer_1.useTableResizer)({
3348
+ var _82 = (0, use_table_resizer_1.useTableResizer)({
3338
3349
  sheetId: sheetId,
3339
3350
  tables: tables !== null && tables !== void 0 ? tables : undefined,
3340
3351
  theme: theme,
@@ -3345,11 +3356,11 @@ function CanvasGridComponent(props, forwardedRef) {
3345
3356
  scrollToCell: scrollToCell,
3346
3357
  onResizeTable: onResizeTable,
3347
3358
  focusSheet: focusSheet,
3348
- }), tableResizers = _81.tableResizers, isResizingTable = _81.isResizingTable;
3359
+ }), tableResizers = _82.tableResizers, isResizingTable = _82.isResizingTable;
3349
3360
  /**
3350
3361
  * Displays resizable/draggable charts
3351
3362
  */
3352
- var _82 = (0, use_embeds_charts_1.useEmbedsCharts)({
3363
+ var _83 = (0, use_embeds_charts_1.useEmbedsCharts)({
3353
3364
  charts: charts,
3354
3365
  embeds: embeds,
3355
3366
  slicers: slicers,
@@ -3393,7 +3404,7 @@ function CanvasGridComponent(props, forwardedRef) {
3393
3404
  backgroundColor: cellBackgroundColor,
3394
3405
  disabled: isRestricted,
3395
3406
  readonly: readonly,
3396
- }), chartComponents = _82.chartComponents, embedComponents = _82.embedComponents, slicerComponents = _82.slicerComponents, embedContextMenuComponent = _82.contextMenuComponent, onMouseDownCharts = _82.onMouseDown, requestChartContextMenu = _82.requestChartContextMenu;
3407
+ }), chartComponents = _83.chartComponents, embedComponents = _83.embedComponents, slicerComponents = _83.slicerComponents, embedContextMenuComponent = _83.contextMenuComponent, onMouseDownCharts = _83.onMouseDown, requestChartContextMenu = _83.requestChartContextMenu;
3397
3408
  /**
3398
3409
  * Callback when user clicks Filter icon
3399
3410
  * Show Filter dropdown here
@@ -3452,7 +3463,7 @@ function CanvasGridComponent(props, forwardedRef) {
3452
3463
  * The totals-function picker a totals cell's in-cell arrow opens (Excel):
3453
3464
  * anchored at the cell's bottom-right corner like the filter dropdown.
3454
3465
  */
3455
- var _83 = tslib_1.__read((0, react_1.useState)(null), 2), totalsPicker = _83[0], setTotalsPicker = _83[1];
3466
+ var _84 = tslib_1.__read((0, react_1.useState)(null), 2), totalsPicker = _84[0], setTotalsPicker = _84[1];
3456
3467
  var closeTotalsPicker = (0, react_1.useCallback)(function () { return setTotalsPicker(null); }, []);
3457
3468
  var handleTotalsArrowClick = (0, react_1.useCallback)(function (cell) {
3458
3469
  var table = activeTables === null || activeTables === void 0 ? void 0 : activeTables.find(function (candidate) {
@@ -3708,7 +3719,7 @@ function CanvasGridComponent(props, forwardedRef) {
3708
3719
  /**
3709
3720
  * Render Cells in the grid
3710
3721
  */
3711
- var _84 = tslib_1.__read((0, use_cell_renderer_1.useCellRenderer)({
3722
+ var _85 = tslib_1.__read((0, use_cell_renderer_1.useCellRenderer)({
3712
3723
  sheetId: sheetId,
3713
3724
  isTableTotalsCell: isTableTotalsCell,
3714
3725
  onTotalsArrowClick: handleTotalsArrowClick,
@@ -3767,6 +3778,7 @@ function CanvasGridComponent(props, forwardedRef) {
3767
3778
  onCheckboxClick: handleCheckboxClick,
3768
3779
  onExpandCollapse: handleExpandCollapse,
3769
3780
  defaultFontSizePoint: defaultFontSize,
3781
+ lineHeightMode: lineHeightMode,
3770
3782
  Cell: Cell,
3771
3783
  HeaderCell: HeaderCell,
3772
3784
  theme: theme,
@@ -3778,7 +3790,7 @@ function CanvasGridComponent(props, forwardedRef) {
3778
3790
  onOverflow: handleOverflow,
3779
3791
  isComparing: isComparing,
3780
3792
  getCellDiff: getCellDiff,
3781
- }), 4), cellBackgroundRenderer = _84[0], cellRenderer = _84[1], cellOverlayRenderer = _84[2], headerCellRenderer = _84[3];
3793
+ }), 4), cellBackgroundRenderer = _85[0], cellRenderer = _85[1], cellOverlayRenderer = _85[2], headerCellRenderer = _85[3];
3782
3794
  /**
3783
3795
  * When user selects a selection for moving
3784
3796
  * If its a table, we select the entire column
@@ -3814,16 +3826,16 @@ function CanvasGridComponent(props, forwardedRef) {
3814
3826
  tokenizer: localeTokenizer,
3815
3827
  });
3816
3828
  // Selection move: drag a formula reference via its border covers
3817
- var _85 = (0, use_selection_move_1.useSelectionMove)({
3829
+ var _86 = (0, use_selection_move_1.useSelectionMove)({
3818
3830
  getCellCoordsFromOffset: getCellCoordsFromOffset,
3819
3831
  scrollToCell: scrollToCell,
3820
3832
  tokenizer: localeTokenizer,
3821
- }), onMouseDownMoveSelection = _85.onMouseDownMoveSelection, isDraggingMoveSelection = _85.isDragging;
3833
+ }), onMouseDownMoveSelection = _86.onMouseDownMoveSelection, isDraggingMoveSelection = _86.isDragging;
3822
3834
  /**
3823
3835
  * Selected chart: outline its source ranges on this sheet and re-bind
3824
3836
  * them when a corner handle is dragged (Excel's chart data highlight).
3825
3837
  */
3826
- var _86 = (0, use_chart_source_ranges_1.useChartSourceRanges)({
3838
+ var _87 = (0, use_chart_source_ranges_1.useChartSourceRanges)({
3827
3839
  charts: charts,
3828
3840
  sheetId: sheetId,
3829
3841
  getSheetName: getSheetName,
@@ -3832,22 +3844,24 @@ function CanvasGridComponent(props, forwardedRef) {
3832
3844
  getCellBounds: getCellBounds,
3833
3845
  getCellCoordsFromOffset: getCellCoordsFromOffset,
3834
3846
  scrollToCell: scrollToCell,
3835
- }), chartSourceBorderStyles = _86.chartSourceBorderStyles, onMouseDownChartSourceResizeHandle = _86.onMouseDownChartSourceResizeHandle;
3847
+ }), chartSourceBorderStyles = _87.chartSourceBorderStyles, onMouseDownChartSourceResizeHandle = _87.onMouseDownChartSourceResizeHandle;
3836
3848
  /**
3837
3849
  * Hide fill handle
3838
3850
  * 1. When user is in edit mode
3839
3851
  * 2. When user is in formula mode and user has made selections
3852
+ * 3. When the grid is readonly — a fill is a write
3840
3853
  */
3841
- var showFillHandle = !isSelectionInProgress &&
3854
+ var showFillHandle = !readonly &&
3855
+ !isSelectionInProgress &&
3842
3856
  !isEditInProgress &&
3843
3857
  !isResizingTable &&
3844
3858
  !(formulaMode && formulaSelections.length);
3845
3859
  /**
3846
3860
  * Flashing
3847
3861
  */
3848
- var _87 = (0, use_flash_1.useFlash)({
3862
+ var _88 = (0, use_flash_1.useFlash)({
3849
3863
  theme: theme,
3850
- }), flash = _87.flash, mark = _87.mark, unmark = _87.unmark, onFlashEnd = _87.onFlashEnd, flashingBorders = _87.flashingBorders;
3864
+ }), flash = _88.flash, mark = _88.mark, unmark = _88.unmark, onFlashEnd = _88.onFlashEnd, flashingBorders = _88.flashingBorders;
3851
3865
  // Cache hover ids
3852
3866
  var cachedHoveredSelectionIds = (0, use_hovered_selection_ids_1.useHoveredSelectionIds)({
3853
3867
  selections: selections,
@@ -3874,6 +3888,8 @@ function CanvasGridComponent(props, forwardedRef) {
3874
3888
  selectionCount: (formulaMode ? formulaSelections : selections).length,
3875
3889
  selectionBackgroundColor: selectionBackgroundColor,
3876
3890
  selectionBorderColor: selectionBorderColor,
3891
+ selectionStrokeWidth: selectionStrokeWidth,
3892
+ showActiveCellBorderInSelection: showActiveCellBorderInSelection,
3877
3893
  getSheetName: getSheetName,
3878
3894
  onRequestEditTable: onRequestEditTable,
3879
3895
  onRequestEditPivotTable: onRequestEditPivotTable,
@@ -3944,7 +3960,7 @@ function CanvasGridComponent(props, forwardedRef) {
3944
3960
  ? tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(finalBorderStyles), false), tslib_1.__read(chartSourceBorderStyles), false) : finalBorderStyles;
3945
3961
  }, [finalBorderStyles, chartSourceBorderStyles]);
3946
3962
  // Hidden column markers
3947
- var _88 = tslib_1.__read((0, use_hidden_dimension_markers_1.useHiddenDimensionMarkers)({
3963
+ var _89 = tslib_1.__read((0, use_hidden_dimension_markers_1.useHiddenDimensionMarkers)({
3948
3964
  sheetId: sheetId,
3949
3965
  columnMetadata: columnMetadata,
3950
3966
  rowMetadata: rowMetadata,
@@ -3957,7 +3973,7 @@ function CanvasGridComponent(props, forwardedRef) {
3957
3973
  columnCount: columnCount,
3958
3974
  HiddenRowMarkers: HiddenRowMarkers,
3959
3975
  HiddenColumnMarkers: HiddenColumnMarkers,
3960
- }), 4), hiddenColumnMarkers = _88[0], frozenHiddenColumnMarkers = _88[1], hiddenRowMarkers = _88[2], frozenHiddenRowMarkers = _88[3];
3976
+ }), 4), hiddenColumnMarkers = _89[0], frozenHiddenColumnMarkers = _89[1], hiddenRowMarkers = _89[2], frozenHiddenRowMarkers = _89[3];
3961
3977
  // Zoom lister
3962
3978
  var onMouseWheel = (0, use_scale_listener_1.useScaleListener)({
3963
3979
  zoomSpeed: zoomSpeed,
@@ -4309,12 +4325,14 @@ function CanvasGridComponent(props, forwardedRef) {
4309
4325
  popoverComponent: popoverComponent,
4310
4326
  popoverRange: popoverRange,
4311
4327
  cellExpandComponent: cellExpandComponent,
4328
+ arrowComponents: arrowComponents,
4312
4329
  });
4313
4330
  /**
4314
4331
  * Only enable selection drag if user is not editing and not
4315
- * in formula mode
4332
+ * in formula mode. A readonly grid has nothing to move, so the
4333
+ * gesture does not start at all (no move cursor, no selection jump).
4316
4334
  */
4317
- var enableSelectionDrag = !isSelectionInProgress && !isEditInProgress && !formulaMode;
4335
+ var enableSelectionDrag = !readonly && !isSelectionInProgress && !isEditInProgress && !formulaMode;
4318
4336
  // A chartsheet IS its chart: no grid, headers, editor or cell menus — only the chart and its
4319
4337
  // context menu (Excel).
4320
4338
  if (sheetType === "chartsheet") {