@rowsncolumns/spreadsheet 10.2.76 → 10.3.0

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 (180) hide show
  1. package/dist/cjs/api/insert-options.d.ts +67 -0
  2. package/dist/cjs/api/insert-options.d.ts.map +1 -0
  3. package/dist/cjs/api/insert-options.js +104 -0
  4. package/dist/cjs/api/move-overwrite.d.ts +14 -0
  5. package/dist/cjs/api/move-overwrite.d.ts.map +1 -0
  6. package/dist/cjs/api/move-overwrite.js +29 -0
  7. package/dist/cjs/api/multi-selection.d.ts +59 -0
  8. package/dist/cjs/api/multi-selection.d.ts.map +1 -0
  9. package/dist/cjs/api/multi-selection.js +166 -0
  10. package/dist/cjs/atoms/index.d.ts +3 -0
  11. package/dist/cjs/atoms/index.d.ts.map +1 -1
  12. package/dist/cjs/atoms/index.js +3 -0
  13. package/dist/cjs/atoms/insert-cells-dialog.atom.d.ts +36 -0
  14. package/dist/cjs/atoms/insert-cells-dialog.atom.d.ts.map +1 -0
  15. package/dist/cjs/atoms/insert-cells-dialog.atom.js +34 -0
  16. package/dist/cjs/atoms/insert-options.atom.d.ts +21 -0
  17. package/dist/cjs/atoms/insert-options.atom.d.ts.map +1 -0
  18. package/dist/cjs/atoms/insert-options.atom.js +11 -0
  19. package/dist/cjs/atoms/move-overwrite-confirm.atom.d.ts +24 -0
  20. package/dist/cjs/atoms/move-overwrite-confirm.atom.d.ts.map +1 -0
  21. package/dist/cjs/atoms/move-overwrite-confirm.atom.js +42 -0
  22. package/dist/cjs/atoms/sheet-context.atom.d.ts +2 -0
  23. package/dist/cjs/atoms/sheet-context.atom.d.ts.map +1 -1
  24. package/dist/cjs/atoms/sheet-context.atom.js +15 -2
  25. package/dist/cjs/components/canvas-grid/index.d.ts.map +1 -1
  26. package/dist/cjs/components/canvas-grid/index.js +284 -63
  27. package/dist/cjs/components/canvas-grid/typings.d.ts +47 -5
  28. package/dist/cjs/components/canvas-grid/typings.d.ts.map +1 -1
  29. package/dist/cjs/components/cell-editor/formula-result-preview.d.ts +4 -1
  30. package/dist/cjs/components/cell-editor/formula-result-preview.d.ts.map +1 -1
  31. package/dist/cjs/components/cell-editor/formula-result-preview.js +2 -2
  32. package/dist/cjs/components/cell-editor/index.d.ts +7 -1
  33. package/dist/cjs/components/cell-editor/index.d.ts.map +1 -1
  34. package/dist/cjs/components/cell-editor/index.js +3 -3
  35. package/dist/cjs/components/cell-input/cell-input.d.ts +13 -0
  36. package/dist/cjs/components/cell-input/cell-input.d.ts.map +1 -1
  37. package/dist/cjs/components/cell-input/cell-input.js +8 -3
  38. package/dist/cjs/components/cell-input/formula-bar-cell-input.d.ts.map +1 -1
  39. package/dist/cjs/components/cell-input/formula-bar-cell-input.js +3 -1
  40. package/dist/cjs/components/context-menu/index.d.ts +16 -1
  41. package/dist/cjs/components/context-menu/index.d.ts.map +1 -1
  42. package/dist/cjs/components/context-menu/index.js +245 -24
  43. package/dist/cjs/components/floating-cell-editor/index.d.ts.map +1 -1
  44. package/dist/cjs/components/floating-cell-editor/index.js +13 -5
  45. package/dist/cjs/components/insert-cells-dialog/index.d.ts +35 -0
  46. package/dist/cjs/components/insert-cells-dialog/index.d.ts.map +1 -0
  47. package/dist/cjs/components/insert-cells-dialog/index.js +84 -0
  48. package/dist/cjs/components/insert-options-smart-tag/index.d.ts +25 -0
  49. package/dist/cjs/components/insert-options-smart-tag/index.d.ts.map +1 -0
  50. package/dist/cjs/components/insert-options-smart-tag/index.js +41 -0
  51. package/dist/cjs/components/move-overwrite-confirm-dialog/index.d.ts +8 -0
  52. package/dist/cjs/components/move-overwrite-confirm-dialog/index.d.ts.map +1 -0
  53. package/dist/cjs/components/move-overwrite-confirm-dialog/index.js +34 -0
  54. package/dist/cjs/components/selection/index.d.ts +1 -1
  55. package/dist/cjs/components/selection/index.d.ts.map +1 -1
  56. package/dist/cjs/components/selection/index.js +4 -2
  57. package/dist/cjs/components/selection/types.d.ts +8 -0
  58. package/dist/cjs/components/selection/types.d.ts.map +1 -1
  59. package/dist/cjs/config.d.ts +6 -0
  60. package/dist/cjs/config.d.ts.map +1 -1
  61. package/dist/cjs/config.js +7 -1
  62. package/dist/cjs/hooks/use-cell-renderer.d.ts +7 -1
  63. package/dist/cjs/hooks/use-cell-renderer.d.ts.map +1 -1
  64. package/dist/cjs/hooks/use-cell-renderer.js +8 -3
  65. package/dist/cjs/hooks/use-context-setter.d.ts.map +1 -1
  66. package/dist/cjs/hooks/use-context-setter.js +5 -1
  67. package/dist/cjs/hooks/use-copy-paste-cut.d.ts +5 -0
  68. package/dist/cjs/hooks/use-copy-paste-cut.d.ts.map +1 -1
  69. package/dist/cjs/hooks/use-copy-paste-cut.js +19 -0
  70. package/dist/cjs/hooks/use-editor-change.d.ts +4 -1
  71. package/dist/cjs/hooks/use-editor-change.d.ts.map +1 -1
  72. package/dist/cjs/hooks/use-editor-change.js +4 -3
  73. package/dist/cjs/hooks/use-editor-submit.d.ts +8 -1
  74. package/dist/cjs/hooks/use-editor-submit.d.ts.map +1 -1
  75. package/dist/cjs/hooks/use-editor-submit.js +9 -1
  76. package/dist/cjs/hooks/use-move-columns-rows.d.ts.map +1 -1
  77. package/dist/cjs/hooks/use-move-columns-rows.js +6 -0
  78. package/dist/cjs/hooks/use-selection-renderer.d.ts +9 -1
  79. package/dist/cjs/hooks/use-selection-renderer.d.ts.map +1 -1
  80. package/dist/cjs/hooks/use-selection-renderer.js +26 -2
  81. package/dist/cjs/hooks/use-selection.d.ts +13 -5
  82. package/dist/cjs/hooks/use-selection.d.ts.map +1 -1
  83. package/dist/cjs/hooks/use-selection.js +48 -6
  84. package/dist/cjs/index.d.ts +7 -0
  85. package/dist/cjs/index.d.ts.map +1 -1
  86. package/dist/cjs/index.js +7 -0
  87. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  88. package/dist/cjs/types.d.ts +8 -0
  89. package/dist/cjs/types.d.ts.map +1 -1
  90. package/dist/esm/api/insert-options.d.ts +67 -0
  91. package/dist/esm/api/insert-options.d.ts.map +1 -0
  92. package/dist/esm/api/insert-options.js +91 -0
  93. package/dist/esm/api/move-overwrite.d.ts +14 -0
  94. package/dist/esm/api/move-overwrite.d.ts.map +1 -0
  95. package/dist/esm/api/move-overwrite.js +25 -0
  96. package/dist/esm/api/multi-selection.d.ts +59 -0
  97. package/dist/esm/api/multi-selection.d.ts.map +1 -0
  98. package/dist/esm/api/multi-selection.js +92 -0
  99. package/dist/esm/atoms/index.d.ts +3 -0
  100. package/dist/esm/atoms/index.d.ts.map +1 -1
  101. package/dist/esm/atoms/index.js +3 -0
  102. package/dist/esm/atoms/insert-cells-dialog.atom.d.ts +36 -0
  103. package/dist/esm/atoms/insert-cells-dialog.atom.d.ts.map +1 -0
  104. package/dist/esm/atoms/insert-cells-dialog.atom.js +25 -0
  105. package/dist/esm/atoms/insert-options.atom.d.ts +21 -0
  106. package/dist/esm/atoms/insert-options.atom.d.ts.map +1 -0
  107. package/dist/esm/atoms/insert-options.atom.js +5 -0
  108. package/dist/esm/atoms/move-overwrite-confirm.atom.d.ts +24 -0
  109. package/dist/esm/atoms/move-overwrite-confirm.atom.d.ts.map +1 -0
  110. package/dist/esm/atoms/move-overwrite-confirm.atom.js +29 -0
  111. package/dist/esm/atoms/sheet-context.atom.d.ts +2 -0
  112. package/dist/esm/atoms/sheet-context.atom.d.ts.map +1 -1
  113. package/dist/esm/atoms/sheet-context.atom.js +10 -0
  114. package/dist/esm/components/canvas-grid/index.d.ts.map +1 -1
  115. package/dist/esm/components/canvas-grid/index.js +236 -19
  116. package/dist/esm/components/canvas-grid/typings.d.ts +47 -5
  117. package/dist/esm/components/canvas-grid/typings.d.ts.map +1 -1
  118. package/dist/esm/components/cell-editor/formula-result-preview.d.ts +4 -1
  119. package/dist/esm/components/cell-editor/formula-result-preview.d.ts.map +1 -1
  120. package/dist/esm/components/cell-editor/formula-result-preview.js +3 -3
  121. package/dist/esm/components/cell-editor/index.d.ts +7 -1
  122. package/dist/esm/components/cell-editor/index.d.ts.map +1 -1
  123. package/dist/esm/components/cell-editor/index.js +3 -3
  124. package/dist/esm/components/cell-input/cell-input.d.ts +13 -0
  125. package/dist/esm/components/cell-input/cell-input.d.ts.map +1 -1
  126. package/dist/esm/components/cell-input/cell-input.js +10 -5
  127. package/dist/esm/components/cell-input/formula-bar-cell-input.d.ts.map +1 -1
  128. package/dist/esm/components/cell-input/formula-bar-cell-input.js +3 -1
  129. package/dist/esm/components/context-menu/index.d.ts +16 -1
  130. package/dist/esm/components/context-menu/index.d.ts.map +1 -1
  131. package/dist/esm/components/context-menu/index.js +193 -16
  132. package/dist/esm/components/floating-cell-editor/index.d.ts.map +1 -1
  133. package/dist/esm/components/floating-cell-editor/index.js +12 -6
  134. package/dist/esm/components/insert-cells-dialog/index.d.ts +35 -0
  135. package/dist/esm/components/insert-cells-dialog/index.d.ts.map +1 -0
  136. package/dist/esm/components/insert-cells-dialog/index.js +79 -0
  137. package/dist/esm/components/insert-options-smart-tag/index.d.ts +25 -0
  138. package/dist/esm/components/insert-options-smart-tag/index.d.ts.map +1 -0
  139. package/dist/esm/components/insert-options-smart-tag/index.js +35 -0
  140. package/dist/esm/components/move-overwrite-confirm-dialog/index.d.ts +8 -0
  141. package/dist/esm/components/move-overwrite-confirm-dialog/index.d.ts.map +1 -0
  142. package/dist/esm/components/move-overwrite-confirm-dialog/index.js +30 -0
  143. package/dist/esm/components/selection/index.d.ts +1 -1
  144. package/dist/esm/components/selection/index.d.ts.map +1 -1
  145. package/dist/esm/components/selection/index.js +4 -2
  146. package/dist/esm/components/selection/types.d.ts +8 -0
  147. package/dist/esm/components/selection/types.d.ts.map +1 -1
  148. package/dist/esm/config.d.ts +6 -0
  149. package/dist/esm/config.d.ts.map +1 -1
  150. package/dist/esm/config.js +6 -0
  151. package/dist/esm/hooks/use-cell-renderer.d.ts +7 -1
  152. package/dist/esm/hooks/use-cell-renderer.d.ts.map +1 -1
  153. package/dist/esm/hooks/use-cell-renderer.js +9 -4
  154. package/dist/esm/hooks/use-context-setter.d.ts.map +1 -1
  155. package/dist/esm/hooks/use-context-setter.js +5 -1
  156. package/dist/esm/hooks/use-copy-paste-cut.d.ts +5 -0
  157. package/dist/esm/hooks/use-copy-paste-cut.d.ts.map +1 -1
  158. package/dist/esm/hooks/use-copy-paste-cut.js +19 -0
  159. package/dist/esm/hooks/use-editor-change.d.ts +4 -1
  160. package/dist/esm/hooks/use-editor-change.d.ts.map +1 -1
  161. package/dist/esm/hooks/use-editor-change.js +5 -4
  162. package/dist/esm/hooks/use-editor-submit.d.ts +8 -1
  163. package/dist/esm/hooks/use-editor-submit.d.ts.map +1 -1
  164. package/dist/esm/hooks/use-editor-submit.js +10 -2
  165. package/dist/esm/hooks/use-move-columns-rows.d.ts.map +1 -1
  166. package/dist/esm/hooks/use-move-columns-rows.js +6 -0
  167. package/dist/esm/hooks/use-selection-renderer.d.ts +9 -1
  168. package/dist/esm/hooks/use-selection-renderer.d.ts.map +1 -1
  169. package/dist/esm/hooks/use-selection-renderer.js +26 -2
  170. package/dist/esm/hooks/use-selection.d.ts +13 -5
  171. package/dist/esm/hooks/use-selection.d.ts.map +1 -1
  172. package/dist/esm/hooks/use-selection.js +39 -3
  173. package/dist/esm/index.d.ts +7 -0
  174. package/dist/esm/index.d.ts.map +1 -1
  175. package/dist/esm/index.js +7 -0
  176. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  177. package/dist/esm/types.d.ts +8 -0
  178. package/dist/esm/types.d.ts.map +1 -1
  179. package/dist/spreadsheet.min.css +1 -1
  180. package/package.json +8 -7
@@ -16,6 +16,7 @@ var merge_1 = tslib_1.__importDefault(require("lodash/merge"));
16
16
  var throttle_1 = tslib_1.__importDefault(require("lodash/throttle"));
17
17
  var react_1 = tslib_1.__importStar(require("react"));
18
18
  var banded_ranges_1 = require("../../api/banded-ranges");
19
+ var insert_options_1 = require("../../api/insert-options");
19
20
  var cf_window_1 = require("../../api/cf-window");
20
21
  var selections_1 = require("../../api/selections");
21
22
  var spreadsheet_api_1 = require("../../api/spreadsheet-api");
@@ -109,7 +110,7 @@ var helpers_2 = require("./helpers");
109
110
  * @returns
110
111
  */
111
112
  function CanvasGridComponent(props, forwardedRef) {
112
- var licenseKey = props.licenseKey, sheetId = props.sheetId, instanceId = props.instanceId, _a = props.activeCell, activeCell = _a === void 0 ? config_1.DEFAULT_ACTIVE_CELL : _a, _b = props.selections, selections = _b === void 0 ? config_1.DEFAULT_ARRAY : _b, _c = props.frozenColumnCount, frozenColumnCount = _c === void 0 ? 0 : _c, _d = props.frozenRowCount, frozenRowCount = _d === void 0 ? 0 : _d, _e = props.rowCount, rowCount = _e === void 0 ? config_1.DEFAULT_ROW_COUNT : _e, _f = props.columnCount, columnCount = _f === void 0 ? config_1.DEFAULT_COLUMN_COUNT : _f, autoFocus = props.autoFocus, basicFilter = props.basicFilter, tables = props.tables, namedRanges = props.namedRanges, _g = props.bandedRanges, bandedRanges = _g === void 0 ? config_1.DEFAULT_ARRAY : _g, _h = props.tableBorderColor, tableBorderColor = _h === void 0 ? "#008000" : _h, _j = props.filterIconColor, filterIconColor = _j === void 0 ? "#008000" : _j, conditionalFormats = props.conditionalFormats, _k = props.showFilterIcon, showFilterIcon = _k === void 0 ? true : _k, _l = props.showCalculatedColumnIcon, showCalculatedColumnIcon = _l === void 0 ? true : _l, _m = props.showHeaders, showHeaders = _m === void 0 ? true : _m, _o = props.defaultColumnWidth, defaultColumnWidth = _o === void 0 ? config_1.DEFAULT_COLUMN_WIDTH : _o, _p = props.defaultRowHeight, defaultRowHeight = _p === void 0 ? config_1.DEFAULT_ROW_HEIGHT : _p, _q = props.columnHeaderHeight, columnHeaderHeight = _q === void 0 ? config_1.COLUMN_HEADER_HEIGHT : _q, _r = props.rowHeaderWidth, rowHeaderWidth = _r === void 0 ? config_1.ROW_HEADER_WIDTH : _r, _s = props.gridLineColor, gridLineColor = _s === void 0 ? config_1.GRIDLINE_COLOR : _s, _t = props.cellBackgroundColor, cellBackgroundColor = _t === void 0 ? config_1.DEFAULT_CELL_BACKGROUND_COLOR : _t, _u = props.cellColor, cellColor = _u === void 0 ? config_1.DEFAULT_CELL_COLOR : _u, _v = props.headerBorderColor, headerBorderColor = _v === void 0 ? config_1.DEFAULT_HEADER_BORDER_COLOR : _v, _w = props.headerBackgroundColor, headerBackgroundColor = _w === void 0 ? config_1.DEFAULT_HEADER_BG : _w, _x = props.headerColor, headerColor = _x === void 0 ? config_1.DEFAULT_HEADER_COLOR : _x, _y = props.headerActiveBackgroundColor, headerActiveBackgroundColor = _y === void 0 ? config_1.DEFAULT_HEADER_ACTIVE_BG : _y, _z = props.headerSelectedBackgroundColor, headerSelectedBackgroundColor = _z === void 0 ? config_1.DEFAULT_HEADER_SELECTED_BG : _z, _0 = props.headerSelectedColor, headerSelectedColor = _0 === void 0 ? "white" : _0, _1 = props.headerTableBackgroundColor, headerTableBackgroundColor = _1 === void 0 ? config_1.DEFAULT_HEADER_TABLE_BG : _1, _2 = props.headerTableActiveBackgroundColor, headerTableActiveBackgroundColor = _2 === void 0 ? config_1.DEFAULT_HEADER_ACTIVE_TABLE_BG : _2, _3 = props.headerTableSelectedBackgroundColor, headerTableSelectedBackgroundColor = _3 === void 0 ? config_1.DEFAULT_HEADER_SELECTED_TABLE_BG : _3, _4 = props.frozenShadowColor, frozenShadowColor = _4 === void 0 ? headerBorderColor : _4, _5 = props.frozenShadowThickness, frozenShadowThickness = _5 === void 0 ? 1 : _5, _6 = props.selectionBackgroundColor, selectionBackgroundColor = _6 === void 0 ? config_1.SELECTION_BG : _6, _7 = props.selectionBorderColor, selectionBorderColor = _7 === void 0 ? config_1.SELECTION_BORDER : _7, _8 = props.selectionDragBorderColor, selectionDragBorderColor = _8 === void 0 ? config_1.SELECTION_BORDER : _8, chartSelectedColor = props.chartSelectedColor, _9 = props.chipBackgroundColor, chipBackgroundColor = _9 === void 0 ? config_1.CHIP_COLOR : _9, _10 = props.merges, merges = _10 === void 0 ? config_1.DEFAULT_ARRAY : _10, borderStyles = props.borderStyles, protectedRanges = props.protectedRanges, _11 = props.isWorkbookProtected, isWorkbookProtectedProp = _11 === void 0 ? false : _11, getSheetProtection = props.getSheetProtection, pivotTables = props.pivotTables, charts = props.charts, embeds = props.embeds, slicers = props.slicers, _12 = props.rowMetadata, rowMetadata = _12 === void 0 ? config_1.DEFAULT_ARRAY : _12, _13 = props.columnMetadata, columnMetadata = _13 === void 0 ? config_1.DEFAULT_ARRAY : _13, _14 = props.scale, scale = _14 === void 0 ? 1 : _14, _15 = props.zoomSpeed, zoomSpeed = _15 === void 0 ? 1 : _15, _16 = props.overscanCount, overscanCount = _16 === void 0 ? 3 : _16, _17 = props.enableEditOnEnterKey, enableEditOnEnterKey = _17 === void 0 ? true : _17, _18 = props.enableTextOverflow, enableTextOverflow = _18 === void 0 ? true : _18, _showGridLines = props.showGridLines, _19 = props.showFormulas, showFormulas = _19 === void 0 ? false : _19, _20 = props.protectFormulas, protectFormulas = _20 === void 0 ? false : _20, _21 = props.showFrozenSeparator, showFrozenSeparator = _21 === void 0 ? true : _21, _22 = props.HeaderCell, HeaderCell = _22 === void 0 ? header_cell_1.HeaderCell : _22, _23 = props.Cell, Cell = _23 === void 0 ? cell_1.Cell : _23, _24 = props.SelectionTitleComponent, SelectionTitleComponent = _24 === void 0 ? title_1.SelectionTitle : _24, _25 = props.CellEditor, CellEditor = _25 === void 0 ? cell_editor_1.CellEditor : _25, CellTooltip = props.CellTooltip, _26 = props.ContextMenu, ContextMenu = _26 === void 0 ? context_menu_1.ContextMenu : _26, _27 = props.ContextMenuWrapper, ContextMenuWrapper = _27 === void 0 ? use_context_menu_1.DefaultContextMenuWrapper : _27, _28 = props.FilterBox, FilterBox = _28 === void 0 ? filter_box_1.FilterBox : _28, _29 = props.HeaderMoveDragComponent, HeaderMoveDragComponent = _29 === void 0 ? header_move_1.HeaderMoveDragComponent : _29, SuggestionsDropdown = props.SuggestionsDropdown, _30 = props.stickyEditor, stickyEditor = _30 === void 0 ? true : _30, _31 = props.scrollSnap, scrollSnap = _31 === void 0 ? false : _31, scrollThrottleTimeout = props.scrollThrottleTimeout, preventBrowserDefaultScroll = props.preventBrowserDefaultScroll, _32 = props.mouseMoveThrottleTimeout, mouseMoveThrottleTimeout = _32 === void 0 ? 60 : _32, _33 = props.tooltipIntentInterval, tooltipIntentInterval = _33 === void 0 ? 60 : _33, selectionPolicy = props.selectionPolicy, users = props.users, userId = props.userId, renderCollaboratorCursor = props.renderCollaboratorCursor, functionDescriptions = props.functionDescriptions, _34 = props.showHeaderMenuButton, showHeaderMenuButton = _34 === void 0 ? true : _34, _35 = props.scrollbarSize, scrollbarSize = _35 === void 0 ? config_1.SCROLLBAR_SIZE : _35, _36 = props.theme, theme = _36 === void 0 ? config_1.defaultSpreadsheetTheme : _36, _37 = props.showNotes, showNotes = _37 === void 0 ? true : _37, _38 = props.showComments, showComments = _38 === void 0 ? true : _38, locale = props.locale, agentSuggestions = props.agentSuggestions, onReviewSuggestion = props.onReviewSuggestion, onShowFormulas = props.onShowFormulas, getDataRowCount = props.getDataRowCount, 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, getUserEnteredExtendedValue = props.getUserEnteredExtendedValue, getEffectiveExtendedValue = props.getEffectiveExtendedValue, getSheetRowCount = props.getSheetRowCount, getSheetColumnCount = props.getSheetColumnCount, getCellPopoverContent = props.getCellPopoverContent, onScroll = props.onScroll, onViewPortChange = props.onViewPortChange, _39 = props.windowConditionalFormats, windowConditionalFormats = _39 === void 0 ? false : _39, _40 = props.engineConditionalFormatResults, engineConditionalFormatResults = _40 === void 0 ? false : _40, 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, 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, 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, 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, onRequestEditTable = props.onRequestEditTable, onRequestEditPivotTable = props.onRequestEditPivotTable, onRequestDeletePivotTable = props.onRequestDeletePivotTable, onRemoveTable = props.onRemoveTable, onCreateTable = props.onCreateTable, onInsertTableColumn = props.onInsertTableColumn, onDeleteTableColumn = props.onDeleteTableColumn, onInsertTableRow = props.onInsertTableRow, onDeleteTableRow = props.onDeleteTableRow, 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, _41 = props.getRowHeaderText, getRowHeaderText = _41 === void 0 ? helpers_1.getDefaultRowHeader : _41, _42 = props.getColumnHeaderText, getColumnHeaderText = _42 === void 0 ? helpers_1.getDefaultColumnHeader : _42, getAdditionalCellSpacing = props.getAdditionalCellSpacing, _43 = props.tokenizer, defaultTokenizer = _43 === void 0 ? calculator_1.tokenize : _43, 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, _44 = props.StructuredResult, StructuredResult = _44 === void 0 ? cell_structured_1.StructuredResultRenderer : _44, getMentions = props.getMentions, getStructuredPropertiesProp = props.getStructuredProperties, getFunctionParameterSuggestions = props.getFunctionParameterSuggestions, shouldFetchFunctionParameters = props.shouldFetchFunctionParameters, MentionTagComponent = props.MentionTagComponent, MentionDropdownItemComponent = props.MentionDropdownItemComponent, _45 = props.showSelectionResizeHandles, showSelectionResizeHandles = _45 === void 0 ? true : _45, enableMagicFill = props.enableMagicFill, _46 = props.enableQuickEdit, enableQuickEdit = _46 === void 0 ? true : _46, 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, _47 = props.defaultFontSizePoint, defaultFontSizePoint = _47 === void 0 ? config_1.DEFAULT_FONT_SIZE_PT : _47, readonly = props.readonly, _48 = props.isComparing, isComparing = _48 === void 0 ? false : _48, getCellDiff = props.getCellDiff, enableDataBoundaryNavigation = props.enableDataBoundaryNavigation, footerHeight = props.footerHeight, footerComponent = props.footerComponent, arrowComponents = props.arrowComponents,
113
+ var licenseKey = props.licenseKey, sheetId = props.sheetId, instanceId = props.instanceId, _a = props.activeCell, activeCell = _a === void 0 ? config_1.DEFAULT_ACTIVE_CELL : _a, _b = props.selections, selections = _b === void 0 ? config_1.DEFAULT_ARRAY : _b, _c = props.frozenColumnCount, frozenColumnCount = _c === void 0 ? 0 : _c, _d = props.frozenRowCount, frozenRowCount = _d === void 0 ? 0 : _d, _e = props.rowCount, rowCount = _e === void 0 ? config_1.DEFAULT_ROW_COUNT : _e, _f = props.columnCount, columnCount = _f === void 0 ? config_1.DEFAULT_COLUMN_COUNT : _f, autoFocus = props.autoFocus, basicFilter = props.basicFilter, tables = props.tables, namedRanges = props.namedRanges, _g = props.bandedRanges, bandedRanges = _g === void 0 ? config_1.DEFAULT_ARRAY : _g, _h = props.tableBorderColor, tableBorderColor = _h === void 0 ? "#008000" : _h, _j = props.filterIconColor, filterIconColor = _j === void 0 ? "#008000" : _j, conditionalFormats = props.conditionalFormats, _k = props.showFilterIcon, showFilterIcon = _k === void 0 ? true : _k, _l = props.showCalculatedColumnIcon, showCalculatedColumnIcon = _l === void 0 ? true : _l, _m = props.showHeaders, showHeaders = _m === void 0 ? true : _m, _o = props.defaultColumnWidth, defaultColumnWidth = _o === void 0 ? config_1.DEFAULT_COLUMN_WIDTH : _o, _p = props.defaultRowHeight, defaultRowHeight = _p === void 0 ? config_1.DEFAULT_ROW_HEIGHT : _p, _q = props.columnHeaderHeight, columnHeaderHeight = _q === void 0 ? config_1.COLUMN_HEADER_HEIGHT : _q, _r = props.rowHeaderWidth, rowHeaderWidth = _r === void 0 ? config_1.ROW_HEADER_WIDTH : _r, _s = props.gridLineColor, gridLineColor = _s === void 0 ? config_1.GRIDLINE_COLOR : _s, _t = props.cellBackgroundColor, cellBackgroundColor = _t === void 0 ? config_1.DEFAULT_CELL_BACKGROUND_COLOR : _t, _u = props.cellColor, cellColor = _u === void 0 ? config_1.DEFAULT_CELL_COLOR : _u, _v = props.headerBorderColor, headerBorderColor = _v === void 0 ? config_1.DEFAULT_HEADER_BORDER_COLOR : _v, _w = props.headerBackgroundColor, headerBackgroundColor = _w === void 0 ? config_1.DEFAULT_HEADER_BG : _w, _x = props.headerColor, headerColor = _x === void 0 ? config_1.DEFAULT_HEADER_COLOR : _x, _y = props.headerActiveBackgroundColor, headerActiveBackgroundColor = _y === void 0 ? config_1.DEFAULT_HEADER_ACTIVE_BG : _y, _z = props.headerSelectedBackgroundColor, headerSelectedBackgroundColor = _z === void 0 ? config_1.DEFAULT_HEADER_SELECTED_BG : _z, _0 = props.headerSelectedColor, headerSelectedColor = _0 === void 0 ? "white" : _0, _1 = props.headerTableBackgroundColor, headerTableBackgroundColor = _1 === void 0 ? config_1.DEFAULT_HEADER_TABLE_BG : _1, _2 = props.headerTableActiveBackgroundColor, headerTableActiveBackgroundColor = _2 === void 0 ? config_1.DEFAULT_HEADER_ACTIVE_TABLE_BG : _2, _3 = props.headerTableSelectedBackgroundColor, headerTableSelectedBackgroundColor = _3 === void 0 ? config_1.DEFAULT_HEADER_SELECTED_TABLE_BG : _3, _4 = props.frozenShadowColor, frozenShadowColor = _4 === void 0 ? headerBorderColor : _4, _5 = props.frozenShadowThickness, frozenShadowThickness = _5 === void 0 ? 1 : _5, _6 = props.selectionBackgroundColor, selectionBackgroundColor = _6 === void 0 ? config_1.SELECTION_BG : _6, _7 = props.selectionBorderColor, selectionBorderColor = _7 === void 0 ? config_1.SELECTION_BORDER : _7, _8 = props.selectionDragBorderColor, selectionDragBorderColor = _8 === void 0 ? config_1.SELECTION_BORDER : _8, chartSelectedColor = props.chartSelectedColor, _9 = props.chipBackgroundColor, chipBackgroundColor = _9 === void 0 ? config_1.CHIP_COLOR : _9, _10 = props.merges, merges = _10 === void 0 ? config_1.DEFAULT_ARRAY : _10, borderStyles = props.borderStyles, protectedRanges = props.protectedRanges, _11 = props.isWorkbookProtected, isWorkbookProtectedProp = _11 === void 0 ? false : _11, getSheetProtection = props.getSheetProtection, pivotTables = props.pivotTables, charts = props.charts, embeds = props.embeds, slicers = props.slicers, _12 = props.rowMetadata, rowMetadata = _12 === void 0 ? config_1.DEFAULT_ARRAY : _12, _13 = props.columnMetadata, columnMetadata = _13 === void 0 ? config_1.DEFAULT_ARRAY : _13, _14 = props.scale, scale = _14 === void 0 ? 1 : _14, _15 = props.zoomSpeed, zoomSpeed = _15 === void 0 ? 1 : _15, _16 = props.overscanCount, overscanCount = _16 === void 0 ? 3 : _16, _17 = props.enableEditOnEnterKey, enableEditOnEnterKey = _17 === void 0 ? true : _17, _18 = props.enableTextOverflow, enableTextOverflow = _18 === void 0 ? true : _18, _showGridLines = props.showGridLines, _19 = props.showFormulas, showFormulas = _19 === void 0 ? false : _19, _20 = props.protectFormulas, protectFormulas = _20 === void 0 ? false : _20, _21 = props.showFrozenSeparator, showFrozenSeparator = _21 === void 0 ? true : _21, _22 = props.HeaderCell, HeaderCell = _22 === void 0 ? header_cell_1.HeaderCell : _22, _23 = props.Cell, Cell = _23 === void 0 ? cell_1.Cell : _23, _24 = props.SelectionTitleComponent, SelectionTitleComponent = _24 === void 0 ? title_1.SelectionTitle : _24, _25 = props.CellEditor, CellEditor = _25 === void 0 ? cell_editor_1.CellEditor : _25, CellTooltip = props.CellTooltip, _26 = props.ContextMenu, ContextMenu = _26 === void 0 ? context_menu_1.ContextMenu : _26, _27 = props.ContextMenuWrapper, ContextMenuWrapper = _27 === void 0 ? use_context_menu_1.DefaultContextMenuWrapper : _27, _28 = props.FilterBox, FilterBox = _28 === void 0 ? filter_box_1.FilterBox : _28, _29 = props.HeaderMoveDragComponent, HeaderMoveDragComponent = _29 === void 0 ? header_move_1.HeaderMoveDragComponent : _29, SuggestionsDropdown = props.SuggestionsDropdown, _30 = props.stickyEditor, stickyEditor = _30 === void 0 ? true : _30, _31 = props.scrollSnap, scrollSnap = _31 === void 0 ? false : _31, scrollThrottleTimeout = props.scrollThrottleTimeout, preventBrowserDefaultScroll = props.preventBrowserDefaultScroll, _32 = props.mouseMoveThrottleTimeout, mouseMoveThrottleTimeout = _32 === void 0 ? 60 : _32, _33 = props.tooltipIntentInterval, tooltipIntentInterval = _33 === void 0 ? 60 : _33, selectionPolicy = props.selectionPolicy, users = props.users, userId = props.userId, renderCollaboratorCursor = props.renderCollaboratorCursor, functionDescriptions = props.functionDescriptions, _34 = props.showHeaderMenuButton, showHeaderMenuButton = _34 === void 0 ? true : _34, _35 = props.scrollbarSize, scrollbarSize = _35 === void 0 ? config_1.SCROLLBAR_SIZE : _35, _36 = props.theme, theme = _36 === void 0 ? config_1.defaultSpreadsheetTheme : _36, _37 = props.showNotes, showNotes = _37 === void 0 ? true : _37, _38 = props.showComments, showComments = _38 === void 0 ? true : _38, locale = props.locale, formulaLocaleProp = props.formulaLocale, agentSuggestions = props.agentSuggestions, onReviewSuggestion = props.onReviewSuggestion, onShowFormulas = props.onShowFormulas, getDataRowCount = props.getDataRowCount, 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, getUserEnteredExtendedValue = props.getUserEnteredExtendedValue, getEffectiveExtendedValue = props.getEffectiveExtendedValue, getSheetRowCount = props.getSheetRowCount, getSheetColumnCount = props.getSheetColumnCount, getCellPopoverContent = props.getCellPopoverContent, onScroll = props.onScroll, onViewPortChange = props.onViewPortChange, _39 = props.windowConditionalFormats, windowConditionalFormats = _39 === void 0 ? false : _39, _40 = props.engineConditionalFormatResults, engineConditionalFormatResults = _40 === void 0 ? false : _40, 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, 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, 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, onRequestEditTable = props.onRequestEditTable, onRequestEditPivotTable = props.onRequestEditPivotTable, onRequestDeletePivotTable = props.onRequestDeletePivotTable, onRemoveTable = props.onRemoveTable, onCreateTable = props.onCreateTable, onInsertTableColumn = props.onInsertTableColumn, onDeleteTableColumn = props.onDeleteTableColumn, onInsertTableRow = props.onInsertTableRow, onDeleteTableRow = props.onDeleteTableRow, 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, _41 = props.getRowHeaderText, getRowHeaderText = _41 === void 0 ? helpers_1.getDefaultRowHeader : _41, _42 = props.getColumnHeaderText, getColumnHeaderText = _42 === void 0 ? helpers_1.getDefaultColumnHeader : _42, getAdditionalCellSpacing = props.getAdditionalCellSpacing, _43 = props.tokenizer, defaultTokenizer = _43 === void 0 ? calculator_1.tokenize : _43, 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, _44 = props.StructuredResult, StructuredResult = _44 === void 0 ? cell_structured_1.StructuredResultRenderer : _44, getMentions = props.getMentions, getStructuredPropertiesProp = props.getStructuredProperties, getFunctionParameterSuggestions = props.getFunctionParameterSuggestions, shouldFetchFunctionParameters = props.shouldFetchFunctionParameters, MentionTagComponent = props.MentionTagComponent, MentionDropdownItemComponent = props.MentionDropdownItemComponent, _45 = props.showSelectionResizeHandles, showSelectionResizeHandles = _45 === void 0 ? true : _45, enableMagicFill = props.enableMagicFill, _46 = props.enableQuickEdit, enableQuickEdit = _46 === void 0 ? true : _46, 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, _47 = props.defaultFontSizePoint, defaultFontSizePoint = _47 === void 0 ? config_1.DEFAULT_FONT_SIZE_PT : _47, readonly = props.readonly, _48 = props.isComparing, isComparing = _48 === void 0 ? false : _48, getCellDiff = props.getCellDiff, enableDataBoundaryNavigation = props.enableDataBoundaryNavigation, footerHeight = props.footerHeight, footerComponent = props.footerComponent, arrowComponents = props.arrowComponents,
113
114
  // Host-driven filter props. `hostHiddenRowRanges`
114
115
  // supplies compact [start, end] hidden-row tuples; `getFilterValues` supplies a
115
116
  // column's distinct values. Both let a million-row filter render without scanning
@@ -121,7 +122,7 @@ function CanvasGridComponent(props, forwardedRef) {
121
122
  // defaults to `getFormattedValue` inside `useGetValuesFromRange`.
122
123
  getValidationSourceValue = props.getValidationSourceValue,
123
124
  // Unused props only for api
124
- 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", "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", "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", "agentSuggestions", "onReviewSuggestion", "onShowFormulas", "getDataRowCount", "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", "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", "onInsertCellsShiftDown", "onInsertCellsShiftRight", "onDeleteCellsShiftLeft", "onDeleteCellsShiftUp", "onClearContents", "onMoveColumns", "onMoveRows", "onSelectNextSheet", "onSelectPreviousSheet", "onCreateNewSheet", "onKeyDown", "onChangeFormatting", "onRepeatFormatting", "onClearFormatting", "onRequestEditProtectedRange", "onMoveChart", "onResizeChart", "onDeleteChart", "onMoveEmbed", "onResizeEmbed", "onDeleteEmbed", "onRequestEditEmbed", "onMoveSlicer", "onResizeSlicer", "onDeleteSlicer", "onRequestEditSlicer", "onFillRange", "disableFillRightShortcut", "keymap", "onCalculateNow", "onRequestGoTo", "onMoveSelection", "onInsertTime", "onInsertDate", "onInsertDateTime", "onInsertAutoSum", "onUndo", "onRedo", "onPaste", "onCopy", "onCut", "onSortColumn", "onSortTable", "onFilterTable", "onFilterPivot", "onResizeTable", "onRequestEditTable", "onRequestEditPivotTable", "onRequestDeletePivotTable", "onRemoveTable", "onCreateTable", "onInsertTableColumn", "onDeleteTableColumn", "onInsertTableRow", "onDeleteTableRow", "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", "readonly", "isComparing", "getCellDiff", "enableDataBoundaryNavigation", "footerHeight", "footerComponent", "arrowComponents", "hostHiddenRowRanges", "getFilterValues", "getFilterColors", "getValidationSourceValue", "onChangeBorder", "onDuplicateSheet", "onCreateConditionalFormattingRule", "onDeleteConditionalFormattingRule", "onUpdateConditionalFormattingRule", "onCreateDataValidationRule", "onUpdateDataValidationRule", "onDeleteDataValidationRule", "onCreateChart", "onDeleteSheet", "onCreateEmbed", "onDecreaseIndent", "onIncreaseIndent", "onChangeTheme", "onChangeDecimals", "onUpdateSheet", "onChangeBatchStream", "onBlur"]);
125
+ 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", "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", "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", "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", "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", "onInsertCellsShiftDown", "onInsertCellsShiftRight", "onDeleteCellsShiftLeft", "onDeleteCellsShiftUp", "onClearContents", "onMoveColumns", "onMoveRows", "onSelectNextSheet", "onSelectPreviousSheet", "onCreateNewSheet", "onKeyDown", "onChangeFormatting", "onRepeatFormatting", "onClearFormatting", "onRequestEditProtectedRange", "onMoveChart", "onResizeChart", "onDeleteChart", "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", "onRequestEditTable", "onRequestEditPivotTable", "onRequestDeletePivotTable", "onRemoveTable", "onCreateTable", "onInsertTableColumn", "onDeleteTableColumn", "onInsertTableRow", "onDeleteTableRow", "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", "readonly", "isComparing", "getCellDiff", "enableDataBoundaryNavigation", "footerHeight", "footerComponent", "arrowComponents", "hostHiddenRowRanges", "getFilterValues", "getFilterColors", "getValidationSourceValue", "onChangeBorder", "onDuplicateSheet", "onCreateConditionalFormattingRule", "onDeleteConditionalFormattingRule", "onUpdateConditionalFormattingRule", "onCreateDataValidationRule", "onUpdateDataValidationRule", "onDeleteDataValidationRule", "onCreateChart", "onDeleteSheet", "onCreateEmbed", "onDecreaseIndent", "onIncreaseIndent", "onChangeTheme", "onChangeDecimals", "onUpdateSheet", "onChangeBatchStream", "onBlur"]);
125
126
  /**
126
127
  * Fire onBlur only when the cell editor blurs to an element outside the
127
128
  * spreadsheet. Routed through `useEditable` so we hook the always-focused
@@ -232,19 +233,28 @@ function CanvasGridComponent(props, forwardedRef) {
232
233
  var _50 = tslib_1.__read((0, atoms_1.useShowPasteMenu)(), 2), showPasteMenu = _50[0], setShowPasteMenu = _50[1];
233
234
  // Auto Fill Options smart tag / right-drag fill menu + Series dialog
234
235
  var _51 = tslib_1.__read((0, atoms_1.useFillOptionsState)(), 2), fillOptions = _51[0], setFillOptions = _51[1];
236
+ var _52 = tslib_1.__read((0, atoms_1.useInsertOptionsState)(), 2), insertOptions = _52[0], setInsertOptions = _52[1];
235
237
  var openFillSeriesDialog = (0, atoms_1.useOpenFillSeriesDialog)();
236
238
  // Shared state
237
239
  var formulaMode = (0, atoms_1.useFormulaModeValue)();
238
240
  var formulaSelections = (0, formula_selections_atom_1.useFormulaSelections)();
239
- var _52 = tslib_1.__read((0, editing_cell_atom_1.useEditingCell)(), 2), editingCellCoordinate = _52[0], setEditingCellCoordinate = _52[1];
241
+ var _53 = tslib_1.__read((0, editing_cell_atom_1.useEditingCell)(), 2), editingCellCoordinate = _53[0], setEditingCellCoordinate = _53[1];
240
242
  var setFormulabarEditorValue = (0, formula_bar_editor_value_atom_1.useSetFormulabarEditorValue)();
243
+ /**
244
+ * The formula SYNTAX the editor / formula bar speak (rowsncolumns/spreadsheet#655): Excel follows
245
+ * the user's language, so it defaults to `locale`. Everything that crosses the grid boundary stays
246
+ * canonical — see `formulaLocale` on `CanvasGridProps`.
247
+ */
248
+ var formulaLocale = (0, react_1.useMemo)(function () { return (0, utils_1.getFormulaLocale)(formulaLocaleProp !== null && formulaLocaleProp !== void 0 ? formulaLocaleProp : locale); }, [formulaLocaleProp, locale]);
249
+ // Autocomplete + argument hints show the locale's function names and syntax.
250
+ var localizedFunctionDescriptions = (0, react_1.useMemo)(function () { return (0, utils_1.localizeFunctionDescriptions)(functionDescriptions !== null && functionDescriptions !== void 0 ? functionDescriptions : undefined, formulaLocale); }, [functionDescriptions, formulaLocale]);
241
251
  var setFormulaBarTextFormatRuns = (0, formula_bar_editor_value_atom_1.useSetFormulaBarTextFormatRuns)();
242
252
  var canSelectCells = (0, formula_selection_state_atom_1.useFormulaCanSelectCells)();
243
253
  var selectionMode = (0, formula_selection_state_atom_1.useFormulaSelectionMode)();
244
254
  var setFormulaState = (0, formula_selection_state_atom_1.useSetFormulaSelectionState)();
245
255
  var activeEditor = (0, active_editor_atom_1.useActiveEditor)();
246
256
  // Magic fill state
247
- var _53 = tslib_1.__read((0, magic_fill_state_atom_1.useQuickEditState)(), 2), quickEditValues = _53[0], setQuickEditState = _53[1];
257
+ var _54 = tslib_1.__read((0, magic_fill_state_atom_1.useQuickEditState)(), 2), quickEditValues = _54[0], setQuickEditState = _54[1];
248
258
  var setNoteEditorCell = (0, atoms_1.useSetNoteEditorCell)();
249
259
  var setPinnedTooltip = (0, atoms_1.useSetPinnedTooltip)();
250
260
  var setSpreadsheetApi = (0, spreadsheet_api_atom_1.useSetSpreadsheetApi)();
@@ -255,7 +265,7 @@ function CanvasGridComponent(props, forwardedRef) {
255
265
  var instanceStore = (0, jotai_1.useStore)({ store: spreadsheet_provider_1.multiInstanceStore });
256
266
  // To access closures
257
267
  var hoveredCellRef = (0, use_stable_ref_1.useStableRef)(hoveredCell);
258
- var _54 = tslib_1.__read((0, use_resize_observer_1.useResizeObserver)(), 2), gridContainerRef = _54[0], _55 = _54[1], width = _55.width, height = _55.height;
268
+ var _55 = tslib_1.__read((0, use_resize_observer_1.useResizeObserver)(), 2), gridContainerRef = _55[0], _56 = _55[1], width = _56.width, height = _56.height;
259
269
  var defaultFrozenDims = showHeaders ? 1 : 0;
260
270
  var frozenRows = Math.max(defaultFrozenDims, (frozenRowCount !== null && frozenRowCount !== void 0 ? frozenRowCount : 0) + defaultFrozenDims);
261
271
  var frozenColumns = Math.max(defaultFrozenDims, (frozenColumnCount !== null && frozenColumnCount !== void 0 ? frozenColumnCount : 0) + defaultFrozenDims);
@@ -267,9 +277,9 @@ function CanvasGridComponent(props, forwardedRef) {
267
277
  var sheetRowCount = Math.min(config_1.MAX_ROW_COUNT + 1, rowCount + 1);
268
278
  var sheetColumnCount = Math.min(config_1.MAX_COLUMN_COUNT + 1, columnCount + 1);
269
279
  // License key validator
270
- var _56 = tslib_1.__read((0, use_licensekey_validator_1.useLicenseKeyValidator)({
280
+ var _57 = tslib_1.__read((0, use_licensekey_validator_1.useLicenseKeyValidator)({
271
281
  licenseKey: licenseKey,
272
- }), 3), _ = _56[0], licenseType = _56[1], validatorResult = _56[2];
282
+ }), 3), _ = _57[0], licenseType = _57[1], validatorResult = _57[2];
273
283
  var isRestricted = licenseType === "solo";
274
284
  // Grid line width
275
285
  var gridLineWidth = 1 * scale;
@@ -900,7 +910,8 @@ function CanvasGridComponent(props, forwardedRef) {
900
910
  if (showFormulas && !protectFormulas) {
901
911
  var formulaValue = getFormulaValue(sheetId, rowIndex, columnIndex);
902
912
  if (formulaValue) {
903
- return formulaValue;
913
+ // "Show Formulas" paints the formula the way the editor would show it.
914
+ return (0, utils_1.localizeFormula)(formulaValue, formulaLocale);
904
915
  }
905
916
  }
906
917
  var formattedValue = getFormattedValueProp
@@ -921,6 +932,7 @@ function CanvasGridComponent(props, forwardedRef) {
921
932
  isColumnHeader,
922
933
  getRowHeaderText,
923
934
  getColumnHeaderText,
935
+ formulaLocale,
924
936
  ]);
925
937
  /**
926
938
  * Get information about cell grouping
@@ -1065,6 +1077,15 @@ function CanvasGridComponent(props, forwardedRef) {
1065
1077
  ]);
1066
1078
  // Add a stable reference to get userEnteredString value
1067
1079
  var getUserEnteredStringValueStable = (0, use_callback_ref_1.useCallbackRef)(getUserEnteredStringValue);
1080
+ /**
1081
+ * What the cell editor / formula bar open with: the stored (canonical) entry rendered in the
1082
+ * grid's formula locale — `=SUM(1.5,A1)` shows as `=СУММ(1,5;A1)` in ru-RU, a stored `#VALUE!`
1083
+ * as `#ЗНАЧ!`. `useEditorSubmit` canonicalizes the text again on commit.
1084
+ */
1085
+ var getEditorDisplayValue = (0, react_1.useCallback)(function (sheetId, rowIndex, columnIndex) {
1086
+ var value = getUserEnteredStringValue(sheetId, rowIndex, columnIndex);
1087
+ return (0, utils_1.isNil)(value) ? value : (0, utils_1.localizeCellInput)(value, formulaLocale);
1088
+ }, [getUserEnteredStringValue, formulaLocale]);
1068
1089
  /**
1069
1090
  * Get cell value used for validations
1070
1091
  */
@@ -1085,11 +1106,11 @@ function CanvasGridComponent(props, forwardedRef) {
1085
1106
  * Touch support
1086
1107
  * Mainly for scrolling
1087
1108
  */
1088
- var _57 = (0, use_touch_1.useTouch)({
1109
+ var _58 = (0, use_touch_1.useTouch)({
1089
1110
  scrollTo: scrollTo,
1090
1111
  scale: scale,
1091
1112
  onChangeScale: onChangeScale,
1092
- }), onTouchStart = _57.onTouchStart, onDimensionsChange = _57.onDimensionsChange, scrollToTouchDevice = _57.scrollToTouchDevice, onAfterScrollToCell = _57.onAfterScrollToCell;
1113
+ }), onTouchStart = _58.onTouchStart, onDimensionsChange = _58.onDimensionsChange, scrollToTouchDevice = _58.scrollToTouchDevice, onAfterScrollToCell = _58.onAfterScrollToCell;
1093
1114
  /**
1094
1115
  * Conditional-formatting evaluation window: the padded, tile-quantized
1095
1116
  * viewport. The raw viewport lives in a ref (no render per scroll frame);
@@ -1097,7 +1118,7 @@ function CanvasGridComponent(props, forwardedRef) {
1097
1118
  * `startTransition` so the CF recompute is low-priority and interruptible —
1098
1119
  * scrolling never blocks on it.
1099
1120
  */
1100
- var _58 = tslib_1.__read((0, react_1.useState)(cf_window_1.CF_INITIAL_WINDOW), 2), cfWindow = _58[0], setCfWindow = _58[1];
1121
+ var _59 = tslib_1.__read((0, react_1.useState)(cf_window_1.CF_INITIAL_WINDOW), 2), cfWindow = _59[0], setCfWindow = _59[1];
1101
1122
  var cfWindowRef = (0, react_1.useRef)(null);
1102
1123
  var handleViewPortChange = (0, react_1.useCallback)(function (viewport) {
1103
1124
  onViewPortChange === null || onViewPortChange === void 0 ? void 0 : onViewPortChange(viewport);
@@ -1328,15 +1349,29 @@ function CanvasGridComponent(props, forwardedRef) {
1328
1349
  activeCell: activeCell,
1329
1350
  tokenizer: defaultTokenizer,
1330
1351
  });
1352
+ /**
1353
+ * The editor's text is in the formula locale's syntax; this tokenizer reads it as such (token
1354
+ * TYPES stay canonical, positions and images are the localized text's). The canonical
1355
+ * `tokenizer` above is what the state hooks and the public context keep using for stored formulas.
1356
+ */
1357
+ var localeTokenizerBase = (0, react_1.useCallback)(function (value, sheetName) { return defaultTokenizer(value, sheetName, formulaLocale); }, [defaultTokenizer, formulaLocale]);
1358
+ var localeTokenizer = (0, use_create_formula_tokenizer_1.useCreateFormulaTokenizer)({
1359
+ getSelectionFromNamedRange: getSelectionFromNamedRange,
1360
+ getSelectionFromTable: getSelectionFromTable,
1361
+ editingCellCoordinate: editingCellCoordinate,
1362
+ sheetId: sheetId,
1363
+ activeCell: activeCell,
1364
+ tokenizer: formulaLocale.isCanonical ? defaultTokenizer : localeTokenizerBase,
1365
+ });
1331
1366
  // Helper function to convert a selection to readable selection address
1332
- var _59 = tslib_1.__read((0, use_create_address_from_selection_1.useCreateAddressFromSelection)({
1367
+ var _60 = tslib_1.__read((0, use_create_address_from_selection_1.useCreateAddressFromSelection)({
1333
1368
  sheetId: sheetId,
1334
1369
  rowCount: rowCount,
1335
1370
  columnCount: columnCount,
1336
1371
  tables: tables !== null && tables !== void 0 ? tables : undefined,
1337
1372
  namedRanges: namedRanges !== null && namedRanges !== void 0 ? namedRanges : undefined,
1338
1373
  merges: merges,
1339
- }), 2), getAddressFromSelection = _59[0], getR1C1AddressFromSelection = _59[1];
1374
+ }), 2), getAddressFromSelection = _60[0], getR1C1AddressFromSelection = _60[1];
1340
1375
  /**
1341
1376
  * Exports a data region as image
1342
1377
  */
@@ -1367,12 +1402,12 @@ function CanvasGridComponent(props, forwardedRef) {
1367
1402
  var _a, _b;
1368
1403
  var editingSheetName = getSheetName === null || getSheetName === void 0 ? void 0 : getSheetName((_a = editingCellCoordinate === null || editingCellCoordinate === void 0 ? void 0 : editingCellCoordinate.sheetId) !== null && _a !== void 0 ? _a : sheetId);
1369
1404
  var editingSheetId = (_b = editingCellCoordinate === null || editingCellCoordinate === void 0 ? void 0 : editingCellCoordinate.sheetId) !== null && _b !== void 0 ? _b : sheetId;
1370
- return (0, selections_1.generateSelectionsFromFormula)(value, editingSheetId, editingSheetName, cell, rowCount, columnCount, tokenizer, getSelectionFromTable, getSelectionFromNamedRange);
1405
+ return (0, selections_1.generateSelectionsFromFormula)(value, editingSheetId, editingSheetName, cell, rowCount, columnCount, localeTokenizer, getSelectionFromTable, getSelectionFromNamedRange);
1371
1406
  }, [
1372
1407
  rowCount,
1373
1408
  columnCount,
1374
1409
  editingCellCoordinate,
1375
- tokenizer,
1410
+ localeTokenizer,
1376
1411
  getSelectionFromTable,
1377
1412
  getSheetName,
1378
1413
  getSelectionFromNamedRange,
@@ -1382,7 +1417,7 @@ function CanvasGridComponent(props, forwardedRef) {
1382
1417
  * Get user entered value from a range
1383
1418
  * of cells
1384
1419
  */
1385
- var _60 = tslib_1.__read((0, use_get_values_from_range_1.useGetValuesFromRange)({
1420
+ var _61 = tslib_1.__read((0, use_get_values_from_range_1.useGetValuesFromRange)({
1386
1421
  sheetId: sheetId,
1387
1422
  getSelectionsFromFormula: getSelectionsFromFormula,
1388
1423
  getFormattedValue: getFormattedValue,
@@ -1390,7 +1425,7 @@ function CanvasGridComponent(props, forwardedRef) {
1390
1425
  getSheetId: getSheetId,
1391
1426
  onRequestCalculate: onRequestCalculate,
1392
1427
  getValidationSourceValue: getValidationSourceValue,
1393
- }), 3), getFormattedValuesFromAddress = _60[0], getEffectiveValuesFromRange = _60[1], getFormattedValuesFromAddressAsync = _60[2];
1428
+ }), 3), getFormattedValuesFromAddress = _61[0], getEffectiveValuesFromRange = _61[1], getFormattedValuesFromAddressAsync = _61[2];
1394
1429
  /**
1395
1430
  * Get all formatted values from range as a single 1d array
1396
1431
  */
@@ -1727,7 +1762,7 @@ function CanvasGridComponent(props, forwardedRef) {
1727
1762
  * O(n)
1728
1763
  * Reduces Space Complexity by using `all`
1729
1764
  */
1730
- var _61 = tslib_1.__read((0, use_selected_rows_columns_1.useSelectedRowsColumns)({
1765
+ var _62 = tslib_1.__read((0, use_selected_rows_columns_1.useSelectedRowsColumns)({
1731
1766
  activeCell: activeCell,
1732
1767
  selections: selections,
1733
1768
  selectionLeftBound: selectionLeftBound,
@@ -1735,7 +1770,7 @@ function CanvasGridComponent(props, forwardedRef) {
1735
1770
  rowCount: rowCount,
1736
1771
  columnCount: columnCount,
1737
1772
  getCellBounds: getCellBounds,
1738
- }), 6), selectedRows = _61[0], selectedColumns = _61[1], selectedRowHeaders = _61[2], selectedColumnHeaders = _61[3], selectedRowHeadersIds = _61[4], selectedColumnHeadersIds = _61[5];
1773
+ }), 6), selectedRows = _62[0], selectedColumns = _62[1], selectedRowHeaders = _62[2], selectedColumnHeaders = _62[3], selectedRowHeadersIds = _62[4], selectedColumnHeadersIds = _62[5];
1739
1774
  // Named ranges for editor dropdown
1740
1775
  var getNamedRanges = (0, use_callback_ref_1.useCallbackRef)((0, react_1.useCallback)(function () {
1741
1776
  return namedRanges === null || namedRanges === void 0 ? void 0 : namedRanges.map(function (range) { return ({
@@ -1805,7 +1840,7 @@ function CanvasGridComponent(props, forwardedRef) {
1805
1840
  * user can select entire column or row when selecting
1806
1841
  * header cells
1807
1842
  */
1808
- var _62 = (0, use_selection_interceptors_1.useSelectionInterceptors)({
1843
+ var _63 = (0, use_selection_interceptors_1.useSelectionInterceptors)({
1809
1844
  sheetId: sheetId,
1810
1845
  rowCount: rowCount,
1811
1846
  columnCount: columnCount,
@@ -1821,7 +1856,7 @@ function CanvasGridComponent(props, forwardedRef) {
1821
1856
  onChangeActiveCell: onChangeActiveCell,
1822
1857
  scrollToCell: scrollToCell,
1823
1858
  isMergedCell: isMergedCell,
1824
- }), onMouseDownInterceptor = _62.onMouseDownInterceptor, onMouseMoveInterceptor = _62.onMouseMoveInterceptor;
1859
+ }), onMouseDownInterceptor = _63.onMouseDownInterceptor, onMouseMoveInterceptor = _63.onMouseMoveInterceptor;
1825
1860
  /**
1826
1861
  * When user selections full rows
1827
1862
  * or columns, we have to ignore
@@ -1909,7 +1944,7 @@ function CanvasGridComponent(props, forwardedRef) {
1909
1944
  * Enables auto resizing
1910
1945
  * rows and columns
1911
1946
  */
1912
- var _63 = (0, use_sizer_1.useSizer)({
1947
+ var _64 = (0, use_sizer_1.useSizer)({
1913
1948
  frozenRows: frozenRows,
1914
1949
  frozenColumns: frozenColumns,
1915
1950
  scale: scale,
@@ -1932,7 +1967,7 @@ function CanvasGridComponent(props, forwardedRef) {
1932
1967
  getDataRowCount: getDataRowCount,
1933
1968
  fontSize: defaultFontSizePoint,
1934
1969
  resizeStrategy: "full",
1935
- }), getColumnWidth = _63.getColumnWidth, getRowHeight = _63.getRowHeight, getCellDimensions = _63.getCellDimensions, getCellDimensionsStable = _63.getCellDimensionsStable, getTextDimension = _63.getTextDimension;
1970
+ }), getColumnWidth = _64.getColumnWidth, getRowHeight = _64.getRowHeight, getCellDimensions = _64.getCellDimensions, getCellDimensionsStable = _64.getCellDimensionsStable, getTextDimension = _64.getTextDimension;
1936
1971
  /**
1937
1972
  * Called when user tries to
1938
1973
  * autofit a column or row
@@ -1969,7 +2004,7 @@ function CanvasGridComponent(props, forwardedRef) {
1969
2004
  var editingSheetName = getSheetName === null || getSheetName === void 0 ? void 0 : getSheetName(editingSheetId);
1970
2005
  var effectiveValue = getEffectiveValue(editingSheetId, rowIndex, columnIndex);
1971
2006
  var horizontalAlignment = getEditorHorizontalAlignment(editingSheetId, rowIndex, columnIndex);
1972
- return (react_1.default.createElement(CellEditor, tslib_1.__assign({}, props, { locale: locale, effectiveValue: effectiveValue, format: cellFormat, dataValidation: dataValidation, getRangeValues: getFormattedValuesFromAddress, getRangeValuesAsync: getFormattedValuesFromAddressAsync, scale: scale, sheetName: sheetName, editingSheetId: editingSheetId, sheetId: sheetId, editingSheetName: editingSheetName, address: address, theme: theme, tokenizer: tokenizer, horizontalAlignment: horizontalAlignment, defaultBackgroundColor: cellBackgroundColor, defaultTextColor: (0, themes_1.getStringifiedColor)(cellColor, theme), functionDescriptions: functionDescriptions !== null && functionDescriptions !== void 0 ? functionDescriptions : undefined, getNamedRanges: getNamedRanges, getTableNames: getTableNames, getStructuredProperties: getStructuredProperties, getTableColumnNames: getTableColumnNames, showFormulaHelp: showFormulaHelp, onHideFormulaHelp: onHideFormulaHelp, onShowFormulaHelp: onShowFormulaHelp, onRequestCalculate: onRequestCalculate, SuggestionsDropdown: SuggestionsDropdown, stickyEditor: stickyEditor, defaultFontSizePoint: defaultFontSizePoint, getMentions: getMentions, getFunctionParameterSuggestions: getFunctionParameterSuggestions, shouldFetchFunctionParameters: shouldFetchFunctionParameters, MentionTagComponent: MentionTagComponent, MentionDropdownItemComponent: MentionDropdownItemComponent })));
2007
+ return (react_1.default.createElement(CellEditor, tslib_1.__assign({}, props, { locale: locale, effectiveValue: effectiveValue, format: cellFormat, dataValidation: dataValidation, getRangeValues: getFormattedValuesFromAddress, getRangeValuesAsync: getFormattedValuesFromAddressAsync, scale: scale, sheetName: sheetName, editingSheetId: editingSheetId, sheetId: sheetId, editingSheetName: editingSheetName, address: address, theme: theme, tokenizer: localeTokenizer, formulaLocale: formulaLocale, horizontalAlignment: horizontalAlignment, defaultBackgroundColor: cellBackgroundColor, defaultTextColor: (0, themes_1.getStringifiedColor)(cellColor, theme), functionDescriptions: localizedFunctionDescriptions, getNamedRanges: getNamedRanges, getTableNames: getTableNames, getStructuredProperties: getStructuredProperties, getTableColumnNames: getTableColumnNames, showFormulaHelp: showFormulaHelp, onHideFormulaHelp: onHideFormulaHelp, onShowFormulaHelp: onShowFormulaHelp, onRequestCalculate: onRequestCalculate, SuggestionsDropdown: SuggestionsDropdown, stickyEditor: stickyEditor, defaultFontSizePoint: defaultFontSizePoint, getMentions: getMentions, getFunctionParameterSuggestions: getFunctionParameterSuggestions, shouldFetchFunctionParameters: shouldFetchFunctionParameters, MentionTagComponent: MentionTagComponent, MentionDropdownItemComponent: MentionDropdownItemComponent })));
1973
2008
  }, [
1974
2009
  scale,
1975
2010
  getEffectiveCellFormat,
@@ -1980,10 +2015,11 @@ function CanvasGridComponent(props, forwardedRef) {
1980
2015
  showFormulaHelp,
1981
2016
  onHideFormulaHelp,
1982
2017
  onShowFormulaHelp,
1983
- tokenizer,
2018
+ localeTokenizer,
2019
+ formulaLocale,
1984
2020
  cellBackgroundColor,
1985
2021
  cellColor,
1986
- functionDescriptions,
2022
+ localizedFunctionDescriptions,
1987
2023
  getNamedRanges,
1988
2024
  getTableNames,
1989
2025
  getStructuredProperties,
@@ -2005,7 +2041,7 @@ function CanvasGridComponent(props, forwardedRef) {
2005
2041
  /**
2006
2042
  * Popover cell
2007
2043
  */
2008
- var _64 = (0, use_cell_popover_1.useCellPopover)({
2044
+ var _65 = (0, use_cell_popover_1.useCellPopover)({
2009
2045
  sheetId: sheetId,
2010
2046
  getCellPopoverContent: getCellPopoverContent !== null && getCellPopoverContent !== void 0 ? getCellPopoverContent : getFormattedValue,
2011
2047
  getCellOffsetFromCoords: getCellOffsetFromCoords,
@@ -2013,7 +2049,7 @@ function CanvasGridComponent(props, forwardedRef) {
2013
2049
  isFrozenColumn: isFrozenColumn,
2014
2050
  isFrozenRow: isFrozenRow,
2015
2051
  onChangeActiveSheet: onChangeActiveSheet,
2016
- }), popoverComponent = _64.popoverComponent, popoverRange = _64.popoverRange, showCellPopover = _64.showCellPopover, hideCellPopover = _64.hideCellPopover;
2052
+ }), popoverComponent = _65.popoverComponent, popoverRange = _65.popoverRange, showCellPopover = _65.showCellPopover, hideCellPopover = _65.hideCellPopover;
2017
2053
  /**
2018
2054
  * Get tooltip component of a cell
2019
2055
  * Only error, invalid values are
@@ -2128,6 +2164,121 @@ function CanvasGridComponent(props, forwardedRef) {
2128
2164
  if ((fillOptions === null || fillOptions === void 0 ? void 0 : fillOptions.mode) === "menu")
2129
2165
  setFillOptions(null);
2130
2166
  }, [fillOptions, setFillOptions]);
2167
+ /**
2168
+ * Row / column inserts driven from this grid (context menu, Insert dialog,
2169
+ * Ctrl+Shift+=) also arm Excel's Insert Options smart tag on the new band.
2170
+ * The engine already applied "Format Same As Above / Left" (#647 FMT-01/02);
2171
+ * the tag lets the user switch to the other neighbour or clear.
2172
+ */
2173
+ var insertRowWithOptions = (0, react_1.useCallback)(function (targetSheetId, rowIndex, numRows) {
2174
+ if (!onInsertRow)
2175
+ return;
2176
+ onInsertRow(targetSheetId, rowIndex, numRows);
2177
+ if (numRows > 0) {
2178
+ setInsertOptions({
2179
+ sheetId: targetSheetId,
2180
+ axis: "row",
2181
+ start: rowIndex,
2182
+ count: numRows,
2183
+ option: "before",
2184
+ });
2185
+ }
2186
+ }, [onInsertRow, setInsertOptions]);
2187
+ var insertColumnWithOptions = (0, react_1.useCallback)(function (targetSheetId, columnIndex, numColumns) {
2188
+ if (!onInsertColumn)
2189
+ return;
2190
+ onInsertColumn(targetSheetId, columnIndex, numColumns);
2191
+ if (numColumns > 0) {
2192
+ setInsertOptions({
2193
+ sheetId: targetSheetId,
2194
+ axis: "column",
2195
+ start: columnIndex,
2196
+ count: numColumns,
2197
+ option: "before",
2198
+ });
2199
+ }
2200
+ }, [onInsertColumn, setInsertOptions]);
2201
+ /**
2202
+ * User-entered format of a cell for the Insert Options re-format. A legacy
2203
+ * `StyleReference` (xlsx-imported style id) cannot be copied verbatim, so
2204
+ * it resolves through `getEffectiveFormat` instead.
2205
+ */
2206
+ var readInsertFormat = (0, react_1.useCallback)(function (rowIndex, columnIndex) {
2207
+ var _a;
2208
+ var uf = (_a = getCellData === null || getCellData === void 0 ? void 0 : getCellData(sheetId, rowIndex, columnIndex)) === null || _a === void 0 ? void 0 : _a.uf;
2209
+ if (!uf)
2210
+ return undefined;
2211
+ var isStyleReference = "sid" in uf || "styleId" in uf;
2212
+ return isStyleReference
2213
+ ? getEffectiveFormat === null || getEffectiveFormat === void 0 ? void 0 : getEffectiveFormat(sheetId, rowIndex, columnIndex)
2214
+ : uf;
2215
+ }, [getCellData, getEffectiveFormat, sheetId]);
2216
+ /**
2217
+ * Insert Options smart tag choice. "Same As Above / Below" (Left / Right)
2218
+ * re-paints the band with the neighbour's per-cell formats through the same
2219
+ * paint-format path both engines share (`onChangeFormatting` with a format
2220
+ * grid + `replace`), so the earlier choice does not linger; "Clear
2221
+ * Formatting" wipes the band. A band that already holds values was not
2222
+ * (or is no longer) a fresh insert — the refused-insert case — so the tag
2223
+ * just goes away instead of re-formatting live data.
2224
+ */
2225
+ var handleChooseInsertOption = (0, react_1.useCallback)(function (option) {
2226
+ if (!insertOptions || insertOptions.sheetId !== sheetId)
2227
+ return;
2228
+ var band = {
2229
+ axis: insertOptions.axis,
2230
+ start: insertOptions.start,
2231
+ count: insertOptions.count,
2232
+ };
2233
+ var limit = band.axis === "row" ? columnCount : rowCount;
2234
+ var hasValue = function (rowIndex, columnIndex) {
2235
+ var _a;
2236
+ var cell = getCellData === null || getCellData === void 0 ? void 0 : getCellData(sheetId, rowIndex, columnIndex);
2237
+ return !(0, utils_1.isNil)((_a = cell === null || cell === void 0 ? void 0 : cell.ue) !== null && _a !== void 0 ? _a : cell === null || cell === void 0 ? void 0 : cell.userEnteredValue);
2238
+ };
2239
+ if ((0, insert_options_1.insertedBandHasValues)(band, hasValue, limit)) {
2240
+ setInsertOptions(null);
2241
+ return;
2242
+ }
2243
+ var clearBand = function () {
2244
+ var range = (0, insert_options_1.clearRangeForInsertedBand)(band, readInsertFormat, limit);
2245
+ if (range)
2246
+ onClearFormatting === null || onClearFormatting === void 0 ? void 0 : onClearFormatting(sheetId, activeCell, [{ range: range }]);
2247
+ };
2248
+ if (option === "clear") {
2249
+ clearBand();
2250
+ }
2251
+ else {
2252
+ var plan = (0, insert_options_1.formatsForInsertOption)(band, option, readInsertFormat, limit);
2253
+ if (plan) {
2254
+ // Both engines accept the paint-format shape (format grid + replace);
2255
+ // the grid prop type only names the key/value overload.
2256
+ onChangeFormatting === null || onChangeFormatting === void 0 ? void 0 : onChangeFormatting(sheetId, activeCell, plan.selections, plan.formats, { replace: true });
2257
+ }
2258
+ else {
2259
+ clearBand();
2260
+ }
2261
+ }
2262
+ setInsertOptions(tslib_1.__assign(tslib_1.__assign({}, insertOptions), { option: option }));
2263
+ focusSheet();
2264
+ }, [
2265
+ insertOptions,
2266
+ sheetId,
2267
+ columnCount,
2268
+ rowCount,
2269
+ getCellData,
2270
+ readInsertFormat,
2271
+ onClearFormatting,
2272
+ onChangeFormatting,
2273
+ activeCell,
2274
+ setInsertOptions,
2275
+ focusSheet,
2276
+ ]);
2277
+ // The smart tag belongs to one insert; moving on (a new active cell or
2278
+ // sheet) drops it. Keyed on coordinates like the fill-options tag.
2279
+ (0, react_1.useEffect)(function () {
2280
+ setInsertOptions(null);
2281
+ }, [activeCell.rowIndex, activeCell.columnIndex, sheetId, setInsertOptions]);
2131
2282
  /**
2132
2283
  * Run Excel's Series dialog result: the target range's first row (Series
2133
2284
  * in Columns) / first column (Rows) is the seed line; `stop` may shrink or
@@ -2201,6 +2352,14 @@ function CanvasGridComponent(props, forwardedRef) {
2201
2352
  (0, react_1.useEffect)(function () {
2202
2353
  setFillOptions(null);
2203
2354
  }, [activeCell.rowIndex, activeCell.columnIndex, sheetId, setFillOptions]);
2355
+ /**
2356
+ * Drag-move overwrite prompt ("There's already data here. Do you want to replace it?").
2357
+ * Routed to the host-mounted `MoveOverwriteConfirmDialogHost` when there is one; the
2358
+ * selection hook falls back to `window.confirm` otherwise.
2359
+ */
2360
+ var openMoveOverwriteConfirm = (0, atoms_1.useOpenMoveOverwriteConfirm)();
2361
+ var isMoveOverwriteConfirmMounted = (0, atoms_1.useIsMoveOverwriteConfirmMounted)();
2362
+ var confirmMoveOverwrite = (0, react_1.useMemo)(function () { return (isMoveOverwriteConfirmMounted ? openMoveOverwriteConfirm : undefined); }, [isMoveOverwriteConfirmMounted, openMoveOverwriteConfirm]);
2204
2363
  /**
2205
2364
  * Fill handle dragged BACK inside the selection (Excel): the dragged-over cells lose their
2206
2365
  * contents — formats stay unless Ctrl/Cmd was held — through the same `onDelete` path as the
@@ -2212,7 +2371,7 @@ function CanvasGridComponent(props, forwardedRef) {
2212
2371
  /**
2213
2372
  * Handle grid selections
2214
2373
  */
2215
- var _65 = (0, use_selection_1.useSelection)({
2374
+ var _66 = (0, use_selection_1.useSelection)({
2216
2375
  sheetId: sheetId,
2217
2376
  getDataRowCount: getDataRowCount,
2218
2377
  enableDataBoundaryNavigation: enableDataBoundaryNavigation,
@@ -2243,17 +2402,19 @@ function CanvasGridComponent(props, forwardedRef) {
2243
2402
  onFillHandleRelease: handleFillHandleRelease,
2244
2403
  onFillShrink: handleFillShrink,
2245
2404
  onMoveSelection: onMoveSelection,
2405
+ onInsertCutCells: onInsertCutCells,
2406
+ confirmMoveOverwrite: confirmMoveOverwrite,
2246
2407
  isHiddenColumn: isHiddenColumn,
2247
2408
  isHiddenRow: isHiddenRow,
2248
2409
  isRowHeader: isRowHeader,
2249
2410
  isColumnHeader: isColumnHeader,
2250
2411
  isTouchDevice: helpers_1.isTouchDevice,
2251
2412
  dataRegionBoundaries: dataRegionBoundaries,
2252
- }), onMouseDownSelection = _65.onMouseDown, onPointerDownSelection = _65.onPointerDown, onKeyDownSelection = _65.onKeyDown, fillSelection = _65.fillSelection, fillShrink = _65.fillShrink, onFillHandleMouseDown = _65.onFillHandleMouseDown, onFillHandleDoubleClick = _65.onFillHandleDoubleClick, isDragging = _65.isDragging, isFilling = _65.isFilling, isSelectionInProgress = _65.isSelectionInProgress, draggedSelection = _65.draggedSelection, onSelectionMouseDown = _65.onSelectionMouseDown, setActiveCell = _65.setActiveCell, initialDraggedSelection = _65.initialDraggedSelection, updateSelectionStartEndReference = _65.updateSelectionStartEndReference, selectColumn = _65.selectColumn, getContentfulGridRangeAroundCell = _65.getContentfulGridRangeAroundCell, newSelection = _65.newSelection, modifySelection = _65.modifySelection, clearSelections = _65.clearSelections;
2413
+ }), onMouseDownSelection = _66.onMouseDown, onPointerDownSelection = _66.onPointerDown, onKeyDownSelection = _66.onKeyDown, fillSelection = _66.fillSelection, fillShrink = _66.fillShrink, onFillHandleMouseDown = _66.onFillHandleMouseDown, onFillHandleDoubleClick = _66.onFillHandleDoubleClick, isDragging = _66.isDragging, isFilling = _66.isFilling, isSelectionInProgress = _66.isSelectionInProgress, draggedSelection = _66.draggedSelection, onSelectionMouseDown = _66.onSelectionMouseDown, setActiveCell = _66.setActiveCell, initialDraggedSelection = _66.initialDraggedSelection, updateSelectionStartEndReference = _66.updateSelectionStartEndReference, selectColumn = _66.selectColumn, getContentfulGridRangeAroundCell = _66.getContentfulGridRangeAroundCell, newSelection = _66.newSelection, modifySelection = _66.modifySelection, clearSelections = _66.clearSelections;
2253
2414
  /**
2254
2415
  * Copy, Paste and Cut hook
2255
2416
  */
2256
- var _66 = (0, use_copy_paste_cut_1.useCopyPasteCut)({
2417
+ var _67 = (0, use_copy_paste_cut_1.useCopyPasteCut)({
2257
2418
  activeCell: activeCell,
2258
2419
  selections: selections,
2259
2420
  sheetId: sheetId,
@@ -2261,7 +2422,57 @@ function CanvasGridComponent(props, forwardedRef) {
2261
2422
  onPaste: onPaste,
2262
2423
  onCopy: onCopy,
2263
2424
  onCut: onCut,
2264
- }), copiedSelections = _66.copiedSelections, clearCopiedSelections = _66.clearCopiedSelections, copy = _66.copy, cut = _66.cut, paste = _66.paste, onInternalCopy = _66.onInternalCopy, onInternalCut = _66.onInternalCut, onInternalPaste = _66.onInternalPaste;
2425
+ }), copiedSelections = _67.copiedSelections, isCutPending = _67.isCutPending, copiedSheetId = _67.copiedSheetId, cancelCut = _67.cancelCut, clearCopiedSelections = _67.clearCopiedSelections, copy = _67.copy, cut = _67.cut, paste = _67.paste, onInternalCopy = _67.onInternalCopy, onInternalCut = _67.onInternalCut, onInternalPaste = _67.onInternalPaste;
2426
+ /**
2427
+ * Context menu "Insert Cut Cells" (Excel: Ctrl+X, right-click the destination). A cut of
2428
+ * whole rows / columns dropped on a row / column header inserts them BEFORE the clicked
2429
+ * header in pre-removal numbering (`insertBefore`); anything else inserts the cut block at
2430
+ * the active cell, displacing the cells there (`onInsertCutCells`). Consumes the cut.
2431
+ */
2432
+ var insertCutCellsFromMenu = (0, react_1.useCallback)(function (target) {
2433
+ var from = copiedSelections[0];
2434
+ if (!from || !isCutPending)
2435
+ return;
2436
+ var range = from.range;
2437
+ var wholeRows = range.startColumnIndex <= 1 && range.endColumnIndex >= columnCount;
2438
+ var wholeColumns = range.startRowIndex <= 1 && range.endRowIndex >= rowCount;
2439
+ var span = function (start, end) {
2440
+ return Array.from({ length: end - start + 1 }, function (_, i) { return start + i; });
2441
+ };
2442
+ if (target === "rows" && wholeRows) {
2443
+ onMoveRows === null || onMoveRows === void 0 ? void 0 : onMoveRows(sheetId, span(range.startRowIndex, range.endRowIndex), activeCell.rowIndex, {
2444
+ insertBefore: true,
2445
+ });
2446
+ }
2447
+ else if (target === "columns" && wholeColumns) {
2448
+ onMoveColumns === null || onMoveColumns === void 0 ? void 0 : onMoveColumns(sheetId, span(range.startColumnIndex, range.endColumnIndex), activeCell.columnIndex, { insertBefore: true });
2449
+ }
2450
+ else {
2451
+ var to = {
2452
+ range: {
2453
+ startRowIndex: activeCell.rowIndex,
2454
+ startColumnIndex: activeCell.columnIndex,
2455
+ endRowIndex: activeCell.rowIndex + (range.endRowIndex - range.startRowIndex),
2456
+ endColumnIndex: activeCell.columnIndex + (range.endColumnIndex - range.startColumnIndex),
2457
+ },
2458
+ };
2459
+ onInsertCutCells === null || onInsertCutCells === void 0 ? void 0 : onInsertCutCells(sheetId, from, to);
2460
+ }
2461
+ cancelCut();
2462
+ focusSheet();
2463
+ }, [
2464
+ copiedSelections,
2465
+ isCutPending,
2466
+ columnCount,
2467
+ rowCount,
2468
+ sheetId,
2469
+ activeCell,
2470
+ onMoveRows,
2471
+ onMoveColumns,
2472
+ onInsertCutCells,
2473
+ cancelCut,
2474
+ focusSheet,
2475
+ ]);
2265
2476
  /**
2266
2477
  * Paste Special dialog (context menu → Paste special…, Ctrl+Alt+V). The
2267
2478
  * dialog is host-mounted (`PasteSpecialDialogHost`); its request routes
@@ -2376,6 +2587,7 @@ function CanvasGridComponent(props, forwardedRef) {
2376
2587
  onChangeSelections: onChangeSelections,
2377
2588
  getSelectionsFromFormula: getSelectionsFromFormula,
2378
2589
  onChangeEditorValue: onChangeEditorValue,
2590
+ formulaLocale: formulaLocale,
2379
2591
  });
2380
2592
  // Get final row height to expand to based on value of a cell
2381
2593
  var getFinalRowHeight = (0, use_callback_ref_1.useCallbackRef)((0, react_1.useCallback)(function (sheetId, rowIndex, columnIndex, options) {
@@ -2421,6 +2633,7 @@ function CanvasGridComponent(props, forwardedRef) {
2421
2633
  showValidationAlert: showValidationAlert,
2422
2634
  selections: selections,
2423
2635
  onChangeBatch: onChangeBatch,
2636
+ formulaLocale: formulaLocale,
2424
2637
  });
2425
2638
  /**
2426
2639
  * User cancels editing the cell
@@ -2500,7 +2713,7 @@ function CanvasGridComponent(props, forwardedRef) {
2500
2713
  * Get context Menu component
2501
2714
  */
2502
2715
  var getContextMenu = (0, react_1.useCallback)(function (cell) {
2503
- return (react_1.default.createElement(ContextMenu, { activeCell: activeCell, selections: selections, sheetId: sheetId, frozenRows: frozenRows, frozenColumns: frozenColumns, onHideColumn: isRestricted ? undefined : onHideColumn, onShowColumn: isRestricted ? undefined : onShowColumn, onShowRow: isRestricted ? undefined : onShowRow, onHideRow: isRestricted ? undefined : onHideRow, onGroupRows: isRestricted ? undefined : onGroupRows, onUngroupRows: isRestricted ? undefined : onUngroupRows, onGroupColumns: isRestricted ? undefined : onGroupColumns, onUngroupColumns: isRestricted ? undefined : onUngroupColumns, isHiddenColumn: isHiddenColumn, isHiddenRow: isHiddenRow, onDeleteColumn: onDeleteColumn, onDeleteRow: onDeleteRow, onInsertRow: onInsertRow, onInsertColumn: onInsertColumn, onInsertCellsShiftDown: onInsertCellsShiftDown, onInsertCellsShiftRight: onInsertCellsShiftRight, onDeleteCellsShiftLeft: onDeleteCellsShiftLeft, onDeleteCellsShiftUp: onDeleteCellsShiftUp, onClearContents: onClearContents, onFreezeColumn: onFreezeColumn, onFreezeRow: onFreezeRow, focusSheet: focusSheet, onSortColumn: onSortColumn, onInsertNote: onInsertNote, onProtectRange: onProtectRange, onUnProtectRange: onUnProtectRange, onSortRange: onSortRange, onRequestDefineNamedRange: onRequestDefineNamedRange, protectedRanges: protectedRanges, isRowHeader: isRowHeader(cell.columnIndex), isColumnHeader: isColumnHeader(cell.rowIndex), selectedRowHeadersIds: selectedRowHeadersIds, selectedColumnHeadersIds: selectedColumnHeadersIds, onCopy: copy, onCut: cut, onPaste: paste, onRequestPasteSpecial: requestPasteSpecial, onRequestEvaluateFormula: requestEvaluateFormula, onRequestAddWatch: requestAddWatch, isActiveCellFormula: Boolean(getFormulaValue(sheetId, activeCell.rowIndex, activeCell.columnIndex)), onRequestResize: onRequestResize, isSheetFocused: isSheetFocused, tables: activeTables, pivotTables: pivotTables, basicFilter: basicFilter, onRequestEditTable: onRequestEditTable, onRequestEditPivotTable: onRequestEditPivotTable, onRemoveTable: onRemoveTable, onRequestDeletePivotTable: onRequestDeletePivotTable, onPivotDrillDown: onPivotDrillDown, onRequestFormatCells: onRequestFormatCells, onRequestConditionalFormat: onRequestConditionalFormat, onRequestDataValidation: onRequestDataValidation, onClearFormatting: onClearFormatting, onCreateTable: onCreateTable, onCreateBasicFilter: onCreateBasicFilter, onInsertTableColumn: onInsertTableColumn, onDeleteTableColumn: onDeleteTableColumn, onInsertTableRow: onInsertTableRow, onDeleteTableRow: onDeleteTableRow, onFilterTable: onFilterTable, onSortTable: onSortTable, getFormattedValue: getFormattedValue, getFormattedValuesFromRange: getFormattedValuesFromRange, isTableHeader: isTableHeader, readonly: readonly, onSplitTextToColumns: onSplitTextToColumns, onRemoveDuplicates: onRemoveDuplicates, onGoalSeek: onGoalSeek, onSubtotal: onSubtotal, onAdvancedFilter: onAdvancedFilter, onChange: onChange, getCellData: getCellData, onAddQuickEdit: onAddQuickEdit, enableMagicFill: enableMagicFill }));
2716
+ return (react_1.default.createElement(ContextMenu, { activeCell: activeCell, selections: selections, sheetId: sheetId, frozenRows: frozenRows, frozenColumns: frozenColumns, onHideColumn: isRestricted ? undefined : onHideColumn, onShowColumn: isRestricted ? undefined : onShowColumn, onShowRow: isRestricted ? undefined : onShowRow, onHideRow: isRestricted ? undefined : onHideRow, onGroupRows: isRestricted ? undefined : onGroupRows, onUngroupRows: isRestricted ? undefined : onUngroupRows, onGroupColumns: isRestricted ? undefined : onGroupColumns, onUngroupColumns: isRestricted ? undefined : onUngroupColumns, isHiddenColumn: isHiddenColumn, isHiddenRow: isHiddenRow, onDeleteColumn: onDeleteColumn, onDeleteRow: onDeleteRow, onInsertRow: insertRowWithOptions, onInsertColumn: insertColumnWithOptions, rowCount: rowCount, columnCount: columnCount, onInsertCellsShiftDown: onInsertCellsShiftDown, onInsertCellsShiftRight: onInsertCellsShiftRight, onDeleteCellsShiftLeft: onDeleteCellsShiftLeft, onDeleteCellsShiftUp: onDeleteCellsShiftUp, onClearContents: onClearContents, onFreezeColumn: onFreezeColumn, onFreezeRow: onFreezeRow, focusSheet: focusSheet, onSortColumn: onSortColumn, onInsertNote: onInsertNote, onProtectRange: onProtectRange, onUnProtectRange: onUnProtectRange, onSortRange: onSortRange, onRequestDefineNamedRange: onRequestDefineNamedRange, protectedRanges: protectedRanges, isRowHeader: isRowHeader(cell.columnIndex), isColumnHeader: isColumnHeader(cell.rowIndex), selectedRowHeadersIds: selectedRowHeadersIds, selectedColumnHeadersIds: selectedColumnHeadersIds, onCopy: copy, onCut: cut, hasCutSelection: isCutPending && copiedSheetId === sheetId, onInsertCutCells: insertCutCellsFromMenu, onPaste: paste, onRequestPasteSpecial: requestPasteSpecial, onRequestEvaluateFormula: requestEvaluateFormula, onRequestAddWatch: requestAddWatch, isActiveCellFormula: Boolean(getFormulaValue(sheetId, activeCell.rowIndex, activeCell.columnIndex)), onRequestResize: onRequestResize, isSheetFocused: isSheetFocused, tables: activeTables, pivotTables: pivotTables, basicFilter: basicFilter, onRequestEditTable: onRequestEditTable, onRequestEditPivotTable: onRequestEditPivotTable, onRemoveTable: onRemoveTable, onRequestDeletePivotTable: onRequestDeletePivotTable, onPivotDrillDown: onPivotDrillDown, onRequestFormatCells: onRequestFormatCells, onRequestConditionalFormat: onRequestConditionalFormat, onRequestDataValidation: onRequestDataValidation, onClearFormatting: onClearFormatting, onCreateTable: onCreateTable, onCreateBasicFilter: onCreateBasicFilter, onInsertTableColumn: onInsertTableColumn, onDeleteTableColumn: onDeleteTableColumn, onInsertTableRow: onInsertTableRow, onDeleteTableRow: onDeleteTableRow, onFilterTable: onFilterTable, onSortTable: onSortTable, getFormattedValue: getFormattedValue, getFormattedValuesFromRange: getFormattedValuesFromRange, isTableHeader: isTableHeader, readonly: readonly, onSplitTextToColumns: onSplitTextToColumns, onRemoveDuplicates: onRemoveDuplicates, onGoalSeek: onGoalSeek, onSubtotal: onSubtotal, onAdvancedFilter: onAdvancedFilter, onChange: onChange, getCellData: getCellData, onAddQuickEdit: onAddQuickEdit, enableMagicFill: enableMagicFill }));
2504
2717
  }, [
2505
2718
  isRestricted,
2506
2719
  activeCell,
@@ -2513,8 +2726,10 @@ function CanvasGridComponent(props, forwardedRef) {
2513
2726
  onHideRow,
2514
2727
  onDeleteColumn,
2515
2728
  onDeleteRow,
2516
- onInsertColumn,
2517
- onInsertRow,
2729
+ insertColumnWithOptions,
2730
+ insertRowWithOptions,
2731
+ rowCount,
2732
+ columnCount,
2518
2733
  onInsertCellsShiftDown,
2519
2734
  onInsertCellsShiftRight,
2520
2735
  onDeleteCellsShiftLeft,
@@ -2588,7 +2803,7 @@ function CanvasGridComponent(props, forwardedRef) {
2588
2803
  * Displays Context menu when user right clicks
2589
2804
  * the grid
2590
2805
  */
2591
- var _67 = (0, use_context_menu_1.useContextMenu)({
2806
+ var _68 = (0, use_context_menu_1.useContextMenu)({
2592
2807
  getCellCoordsFromOffset: getCellCoordsFromOffset,
2593
2808
  getRelativePositionFromOffset: getRelativePositionFromOffset,
2594
2809
  isRowHeader: isRowHeader,
@@ -2597,7 +2812,7 @@ function CanvasGridComponent(props, forwardedRef) {
2597
2812
  getCellOffsetFromCoords: getCellOffsetFromCoords,
2598
2813
  getScrollPosition: getScrollPosition,
2599
2814
  ContextMenuWrapper: ContextMenuWrapper,
2600
- }), onContextMenu = _67.onContextMenu, contextMenuComponent = _67.contextMenuComponent, onRequestCloseContextMenu = _67.onRequestClose, showContextMenu = _67.showContextMenu;
2815
+ }), onContextMenu = _68.onContextMenu, contextMenuComponent = _68.contextMenuComponent, onRequestCloseContextMenu = _68.onRequestClose, showContextMenu = _68.showContextMenu;
2601
2816
  /**
2602
2817
  * Shortcut handlers for formatting
2603
2818
  * TODO: Decide on the output
@@ -2652,7 +2867,7 @@ function CanvasGridComponent(props, forwardedRef) {
2652
2867
  onGroupColumns: onGroupColumns,
2653
2868
  onUngroupColumns: onUngroupColumns,
2654
2869
  onDeleteRow: onDeleteRow,
2655
- onInsertRow: onInsertRow,
2870
+ onInsertRow: insertRowWithOptions,
2656
2871
  onInsertAutoSum: onInsertAutoSum,
2657
2872
  onShowColumn: onShowColumn,
2658
2873
  onShowRow: onShowRow,
@@ -2677,7 +2892,7 @@ function CanvasGridComponent(props, forwardedRef) {
2677
2892
  /**
2678
2893
  * Allow grid to be ediable
2679
2894
  */
2680
- var _68 = (0, use_editable_1.useEditable)({
2895
+ var _69 = (0, use_editable_1.useEditable)({
2681
2896
  sheetId: sheetId,
2682
2897
  enableEditOnEnterKey: enableEditOnEnterKey,
2683
2898
  canEdit: canEditCell,
@@ -2694,7 +2909,7 @@ function CanvasGridComponent(props, forwardedRef) {
2694
2909
  selections: selections,
2695
2910
  getSheetColumnCount: getSheetColumnCount,
2696
2911
  getSheetRowCount: getSheetRowCount,
2697
- getValue: getUserEnteredStringValue,
2912
+ getValue: getEditorDisplayValue,
2698
2913
  getTextFormatRuns: getTextFormatRuns,
2699
2914
  getBooleanValue: getBooleanValue,
2700
2915
  getDataValidation: getDataValidationRule,
@@ -2726,11 +2941,11 @@ function CanvasGridComponent(props, forwardedRef) {
2726
2941
  onCopy: onInternalCopy,
2727
2942
  onPaste: onInternalPaste,
2728
2943
  onCut: onInternalCut,
2729
- }), onMouseDownEditable = _68.onMouseDown, onDoubleClickEditable = _68.onDoubleClick, editorComponent = _68.editorComponent, isEditInProgress = _68.isEditInProgress, makeEditable = _68.makeEditable, editCell = _68.editCell, setEditorValue = _68.setEditorValue, hideEditor = _68.hideEditor, getNextFocusableCell = _68.getNextFocusableCell, submitEditor = _68.submitEditor, cancelEditor = _68.cancelEditor, commit = _68.commit;
2944
+ }), onMouseDownEditable = _69.onMouseDown, onDoubleClickEditable = _69.onDoubleClick, editorComponent = _69.editorComponent, isEditInProgress = _69.isEditInProgress, makeEditable = _69.makeEditable, editCell = _69.editCell, setEditorValue = _69.setEditorValue, hideEditor = _69.hideEditor, getNextFocusableCell = _69.getNextFocusableCell, submitEditor = _69.submitEditor, cancelEditor = _69.cancelEditor, commit = _69.commit;
2730
2945
  /**
2731
2946
  * Move rows and columns
2732
2947
  */
2733
- var _69 = (0, use_move_columns_rows_1.useMoveColumnsAndRows)({
2948
+ var _70 = (0, use_move_columns_rows_1.useMoveColumnsAndRows)({
2734
2949
  getCellOffsetFromCoords: getCellOffsetFromCoords,
2735
2950
  getCellCoordsFromOffset: getCellCoordsFromOffset,
2736
2951
  getRelativePositionFromOffset: getRelativePositionFromOffset,
@@ -2753,11 +2968,11 @@ function CanvasGridComponent(props, forwardedRef) {
2753
2968
  sheetId: sheetId,
2754
2969
  disabled: isRestricted,
2755
2970
  HeaderMoveDragComponent: HeaderMoveDragComponent,
2756
- }), draggableColumns = _69.draggableColumns, draggableRows = _69.draggableRows, isDraggingRowsAndColumns = _69.isDragging;
2971
+ }), draggableColumns = _70.draggableColumns, draggableRows = _70.draggableRows, isDraggingRowsAndColumns = _70.isDragging;
2757
2972
  /**
2758
2973
  * Header actions
2759
2974
  */
2760
- var _70 = (0, use_header_actions_1.useHeaderActions)({
2975
+ var _71 = (0, use_header_actions_1.useHeaderActions)({
2761
2976
  activeCell: isSelectionInProgress || isFilling || isDragging ? null : hoveredCell,
2762
2977
  getScrollPosition: getScrollPosition,
2763
2978
  getCellOffsetFromCoords: getCellOffsetFromCoords,
@@ -2784,7 +2999,7 @@ function CanvasGridComponent(props, forwardedRef) {
2784
2999
  selectedRowHeadersIds: selectedRowHeadersIds,
2785
3000
  selectedColumnHeadersIds: selectedColumnHeadersIds,
2786
3001
  enableResizerOverflow: enableResizerOverflow,
2787
- }), headerMenuComponent = _70.headerMenuComponent, isHeaderMenuInFrozenColumn = _70.isHeaderMenuInFrozenColumn, headerResizer = _70.headerResizer, isDraggingHeader = _70.isDragging;
3002
+ }), headerMenuComponent = _71.headerMenuComponent, isHeaderMenuInFrozenColumn = _71.isHeaderMenuInFrozenColumn, headerResizer = _71.headerResizer, isDraggingHeader = _71.isDragging;
2788
3003
  /**
2789
3004
  * Close tooltip
2790
3005
  */
@@ -2826,7 +3041,7 @@ function CanvasGridComponent(props, forwardedRef) {
2826
3041
  /**
2827
3042
  * Show basicFilter panels
2828
3043
  */
2829
- var _71 = (0, use_filter_1.useFilter)({
3044
+ var _72 = (0, use_filter_1.useFilter)({
2830
3045
  sheetId: sheetId,
2831
3046
  scale: scale,
2832
3047
  theme: theme,
@@ -2851,9 +3066,9 @@ function CanvasGridComponent(props, forwardedRef) {
2851
3066
  // Live filter state so the open popup tracks Auto-apply spec changes.
2852
3067
  basicFilter: basicFilter,
2853
3068
  tables: activeTables,
2854
- }), showFilter = _71.showFilter, hideFilter = _71.hideFilter, filterComponent = _71.filterComponent;
3069
+ }), showFilter = _72.showFilter, hideFilter = _72.hideFilter, filterComponent = _72.filterComponent;
2855
3070
  // Table resize
2856
- var _72 = (0, use_table_resizer_1.useTableResizer)({
3071
+ var _73 = (0, use_table_resizer_1.useTableResizer)({
2857
3072
  sheetId: sheetId,
2858
3073
  tables: tables !== null && tables !== void 0 ? tables : undefined,
2859
3074
  theme: theme,
@@ -2864,11 +3079,11 @@ function CanvasGridComponent(props, forwardedRef) {
2864
3079
  scrollToCell: scrollToCell,
2865
3080
  onResizeTable: onResizeTable,
2866
3081
  focusSheet: focusSheet,
2867
- }), tableResizers = _72.tableResizers, isResizingTable = _72.isResizingTable;
3082
+ }), tableResizers = _73.tableResizers, isResizingTable = _73.isResizingTable;
2868
3083
  /**
2869
3084
  * Displays resizable/draggable charts
2870
3085
  */
2871
- var _73 = (0, use_embeds_charts_1.useEmbedsCharts)({
3086
+ var _74 = (0, use_embeds_charts_1.useEmbedsCharts)({
2872
3087
  charts: charts,
2873
3088
  embeds: embeds,
2874
3089
  slicers: slicers,
@@ -2905,7 +3120,7 @@ function CanvasGridComponent(props, forwardedRef) {
2905
3120
  backgroundColor: cellBackgroundColor,
2906
3121
  disabled: isRestricted,
2907
3122
  readonly: readonly,
2908
- }), chartComponents = _73.chartComponents, embedComponents = _73.embedComponents, slicerComponents = _73.slicerComponents, onMouseDownCharts = _73.onMouseDown;
3123
+ }), chartComponents = _74.chartComponents, embedComponents = _74.embedComponents, slicerComponents = _74.slicerComponents, onMouseDownCharts = _74.onMouseDown;
2909
3124
  /**
2910
3125
  * Callback when user clicks Filter icon
2911
3126
  * Show Filter dropdown here
@@ -3163,8 +3378,9 @@ function CanvasGridComponent(props, forwardedRef) {
3163
3378
  /**
3164
3379
  * Render Cells in the grid
3165
3380
  */
3166
- var _74 = tslib_1.__read((0, use_cell_renderer_1.useCellRenderer)({
3381
+ var _75 = tslib_1.__read((0, use_cell_renderer_1.useCellRenderer)({
3167
3382
  sheetId: sheetId,
3383
+ formulaLocale: formulaLocale,
3168
3384
  showGridLines: showGridLines,
3169
3385
  scale: scale,
3170
3386
  enableTextOverflow: enableTextOverflow,
@@ -3229,7 +3445,7 @@ function CanvasGridComponent(props, forwardedRef) {
3229
3445
  onOverflow: handleOverflow,
3230
3446
  isComparing: isComparing,
3231
3447
  getCellDiff: getCellDiff,
3232
- }), 4), cellBackgroundRenderer = _74[0], cellRenderer = _74[1], cellOverlayRenderer = _74[2], headerCellRenderer = _74[3];
3448
+ }), 4), cellBackgroundRenderer = _75[0], cellRenderer = _75[1], cellOverlayRenderer = _75[2], headerCellRenderer = _75[3];
3233
3449
  /**
3234
3450
  * When user selects a selection for moving
3235
3451
  * If its a table, we select the entire column
@@ -3262,14 +3478,14 @@ function CanvasGridComponent(props, forwardedRef) {
3262
3478
  getCellBounds: getCellBounds,
3263
3479
  getCellCoordsFromOffset: getCellCoordsFromOffset,
3264
3480
  scrollToCell: scrollToCell,
3265
- tokenizer: tokenizer,
3481
+ tokenizer: localeTokenizer,
3266
3482
  });
3267
3483
  // Selection move: drag a formula reference via its border covers
3268
- var _75 = (0, use_selection_move_1.useSelectionMove)({
3484
+ var _76 = (0, use_selection_move_1.useSelectionMove)({
3269
3485
  getCellCoordsFromOffset: getCellCoordsFromOffset,
3270
3486
  scrollToCell: scrollToCell,
3271
- tokenizer: tokenizer,
3272
- }), onMouseDownMoveSelection = _75.onMouseDownMoveSelection, isDraggingMoveSelection = _75.isDragging;
3487
+ tokenizer: localeTokenizer,
3488
+ }), onMouseDownMoveSelection = _76.onMouseDownMoveSelection, isDraggingMoveSelection = _76.isDragging;
3273
3489
  /**
3274
3490
  * Hide fill handle
3275
3491
  * 1. When user is in edit mode
@@ -3282,9 +3498,9 @@ function CanvasGridComponent(props, forwardedRef) {
3282
3498
  /**
3283
3499
  * Flashing
3284
3500
  */
3285
- var _76 = (0, use_flash_1.useFlash)({
3501
+ var _77 = (0, use_flash_1.useFlash)({
3286
3502
  theme: theme,
3287
- }), flash = _76.flash, mark = _76.mark, unmark = _76.unmark, onFlashEnd = _76.onFlashEnd, flashingBorders = _76.flashingBorders;
3503
+ }), flash = _77.flash, mark = _77.mark, unmark = _77.unmark, onFlashEnd = _77.onFlashEnd, flashingBorders = _77.flashingBorders;
3288
3504
  // Cache hover ids
3289
3505
  var cachedHoveredSelectionIds = (0, use_hovered_selection_ids_1.useHoveredSelectionIds)({
3290
3506
  selections: selections,
@@ -3332,6 +3548,8 @@ function CanvasGridComponent(props, forwardedRef) {
3332
3548
  onChooseFillType: handleChooseFillType,
3333
3549
  onOpenFillSeriesDialog: handleOpenFillSeriesDialog,
3334
3550
  onCloseFillOptions: handleCloseFillOptions,
3551
+ insertOptions: insertOptions,
3552
+ onChooseInsertOption: handleChooseInsertOption,
3335
3553
  hoveredCell: delayedHoveredCell,
3336
3554
  onRemoveQuickEdit: onRemoveQuickEdit,
3337
3555
  onAddQuickEdit: onAddQuickEdit,
@@ -3367,7 +3585,7 @@ function CanvasGridComponent(props, forwardedRef) {
3367
3585
  quickEditValues: quickEditValues,
3368
3586
  });
3369
3587
  // Hidden column markers
3370
- var _77 = tslib_1.__read((0, use_hidden_dimension_markers_1.useHiddenDimensionMarkers)({
3588
+ var _78 = tslib_1.__read((0, use_hidden_dimension_markers_1.useHiddenDimensionMarkers)({
3371
3589
  sheetId: sheetId,
3372
3590
  columnMetadata: columnMetadata,
3373
3591
  rowMetadata: rowMetadata,
@@ -3380,7 +3598,7 @@ function CanvasGridComponent(props, forwardedRef) {
3380
3598
  columnCount: columnCount,
3381
3599
  HiddenRowMarkers: HiddenRowMarkers,
3382
3600
  HiddenColumnMarkers: HiddenColumnMarkers,
3383
- }), 4), hiddenColumnMarkers = _77[0], frozenHiddenColumnMarkers = _77[1], hiddenRowMarkers = _77[2], frozenHiddenRowMarkers = _77[3];
3601
+ }), 4), hiddenColumnMarkers = _78[0], frozenHiddenColumnMarkers = _78[1], hiddenRowMarkers = _78[2], frozenHiddenRowMarkers = _78[3];
3384
3602
  // Zoom lister
3385
3603
  var onMouseWheel = (0, use_scale_listener_1.useScaleListener)({
3386
3604
  zoomSpeed: zoomSpeed,
@@ -3506,6 +3724,8 @@ function CanvasGridComponent(props, forwardedRef) {
3506
3724
  getAddressFromSelection: getAddressFromSelection,
3507
3725
  getR1C1AddressFromSelection: getR1C1AddressFromSelection,
3508
3726
  tokenizer: tokenizer,
3727
+ localeTokenizer: localeTokenizer,
3728
+ formulaLocale: formulaLocale,
3509
3729
  setEditorValue: setEditorValue,
3510
3730
  getCellBounds: getCellBounds,
3511
3731
  getNamedRanges: getNamedRanges,
@@ -3683,8 +3903,8 @@ function CanvasGridComponent(props, forwardedRef) {
3683
3903
  var rowIndex = activeCell.rowIndex, columnIndex = activeCell.columnIndex;
3684
3904
  var value = getUserEnteredStringValue(sheetId, rowIndex, columnIndex);
3685
3905
  var textFormatRuns = getTextFormatRuns === null || getTextFormatRuns === void 0 ? void 0 : getTextFormatRuns(sheetId, rowIndex, columnIndex);
3686
- // Update formula bar input
3687
- setFormulabarEditorValue(value !== null && value !== void 0 ? value : "");
3906
+ // Update formula bar input (in the grid's formula locale, like the cell editor)
3907
+ setFormulabarEditorValue((0, utils_1.localizeCellInput)(value !== null && value !== void 0 ? value : "", formulaLocale));
3688
3908
  setFormulaBarTextFormatRuns(textFormatRuns);
3689
3909
  }, [
3690
3910
  activeCell,
@@ -3692,6 +3912,7 @@ function CanvasGridComponent(props, forwardedRef) {
3692
3912
  sheetId,
3693
3913
  editingCellCoordinate,
3694
3914
  getUserEnteredStringValue,
3915
+ formulaLocale,
3695
3916
  setFormulabarEditorValue,
3696
3917
  setFormulaBarTextFormatRuns,
3697
3918
  ]);