@rowsncolumns/spreadsheet 10.2.77 → 10.3.1

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 (210) 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 +298 -68
  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/embeds/embed-draggable.d.ts.map +1 -1
  44. package/dist/cjs/components/embeds/embed-draggable.js +4 -3
  45. package/dist/cjs/components/floating-cell-editor/index.d.ts.map +1 -1
  46. package/dist/cjs/components/floating-cell-editor/index.js +13 -5
  47. package/dist/cjs/components/insert-cells-dialog/index.d.ts +35 -0
  48. package/dist/cjs/components/insert-cells-dialog/index.d.ts.map +1 -0
  49. package/dist/cjs/components/insert-cells-dialog/index.js +84 -0
  50. package/dist/cjs/components/insert-options-smart-tag/index.d.ts +25 -0
  51. package/dist/cjs/components/insert-options-smart-tag/index.d.ts.map +1 -0
  52. package/dist/cjs/components/insert-options-smart-tag/index.js +41 -0
  53. package/dist/cjs/components/move-overwrite-confirm-dialog/index.d.ts +8 -0
  54. package/dist/cjs/components/move-overwrite-confirm-dialog/index.d.ts.map +1 -0
  55. package/dist/cjs/components/move-overwrite-confirm-dialog/index.js +34 -0
  56. package/dist/cjs/components/resizer/index.d.ts.map +1 -1
  57. package/dist/cjs/components/resizer/index.js +10 -5
  58. package/dist/cjs/components/selection/index.d.ts +1 -1
  59. package/dist/cjs/components/selection/index.d.ts.map +1 -1
  60. package/dist/cjs/components/selection/index.js +4 -2
  61. package/dist/cjs/components/selection/types.d.ts +8 -0
  62. package/dist/cjs/components/selection/types.d.ts.map +1 -1
  63. package/dist/cjs/components/sheet-search/index.d.ts.map +1 -1
  64. package/dist/cjs/components/sheet-search/index.js +6 -2
  65. package/dist/cjs/config.d.ts +6 -0
  66. package/dist/cjs/config.d.ts.map +1 -1
  67. package/dist/cjs/config.js +7 -1
  68. package/dist/cjs/hooks/use-cell-renderer.d.ts +7 -1
  69. package/dist/cjs/hooks/use-cell-renderer.d.ts.map +1 -1
  70. package/dist/cjs/hooks/use-cell-renderer.js +8 -3
  71. package/dist/cjs/hooks/use-context-setter.d.ts.map +1 -1
  72. package/dist/cjs/hooks/use-context-setter.js +5 -1
  73. package/dist/cjs/hooks/use-copy-paste-cut.d.ts +5 -0
  74. package/dist/cjs/hooks/use-copy-paste-cut.d.ts.map +1 -1
  75. package/dist/cjs/hooks/use-copy-paste-cut.js +25 -3
  76. package/dist/cjs/hooks/use-editor-change.d.ts +4 -1
  77. package/dist/cjs/hooks/use-editor-change.d.ts.map +1 -1
  78. package/dist/cjs/hooks/use-editor-change.js +4 -3
  79. package/dist/cjs/hooks/use-editor-submit.d.ts +8 -1
  80. package/dist/cjs/hooks/use-editor-submit.d.ts.map +1 -1
  81. package/dist/cjs/hooks/use-editor-submit.js +9 -1
  82. package/dist/cjs/hooks/use-header-actions.d.ts.map +1 -1
  83. package/dist/cjs/hooks/use-header-actions.js +17 -10
  84. package/dist/cjs/hooks/use-move-columns-rows.d.ts.map +1 -1
  85. package/dist/cjs/hooks/use-move-columns-rows.js +27 -15
  86. package/dist/cjs/hooks/use-selection-move.d.ts.map +1 -1
  87. package/dist/cjs/hooks/use-selection-move.js +14 -6
  88. package/dist/cjs/hooks/use-selection-renderer.d.ts +9 -1
  89. package/dist/cjs/hooks/use-selection-renderer.d.ts.map +1 -1
  90. package/dist/cjs/hooks/use-selection-renderer.js +26 -2
  91. package/dist/cjs/hooks/use-selection-resize.d.ts.map +1 -1
  92. package/dist/cjs/hooks/use-selection-resize.js +13 -6
  93. package/dist/cjs/hooks/use-selection.d.ts +13 -5
  94. package/dist/cjs/hooks/use-selection.d.ts.map +1 -1
  95. package/dist/cjs/hooks/use-selection.js +107 -31
  96. package/dist/cjs/hooks/use-table-resizer.d.ts.map +1 -1
  97. package/dist/cjs/hooks/use-table-resizer.js +16 -8
  98. package/dist/cjs/hooks/use-touch.d.ts.map +1 -1
  99. package/dist/cjs/hooks/use-touch.js +16 -8
  100. package/dist/cjs/index.d.ts +7 -0
  101. package/dist/cjs/index.d.ts.map +1 -1
  102. package/dist/cjs/index.js +7 -0
  103. package/dist/cjs/release-date.js +1 -1
  104. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  105. package/dist/esm/api/insert-options.d.ts +67 -0
  106. package/dist/esm/api/insert-options.d.ts.map +1 -0
  107. package/dist/esm/api/insert-options.js +91 -0
  108. package/dist/esm/api/move-overwrite.d.ts +14 -0
  109. package/dist/esm/api/move-overwrite.d.ts.map +1 -0
  110. package/dist/esm/api/move-overwrite.js +25 -0
  111. package/dist/esm/api/multi-selection.d.ts +59 -0
  112. package/dist/esm/api/multi-selection.d.ts.map +1 -0
  113. package/dist/esm/api/multi-selection.js +92 -0
  114. package/dist/esm/atoms/index.d.ts +3 -0
  115. package/dist/esm/atoms/index.d.ts.map +1 -1
  116. package/dist/esm/atoms/index.js +3 -0
  117. package/dist/esm/atoms/insert-cells-dialog.atom.d.ts +36 -0
  118. package/dist/esm/atoms/insert-cells-dialog.atom.d.ts.map +1 -0
  119. package/dist/esm/atoms/insert-cells-dialog.atom.js +25 -0
  120. package/dist/esm/atoms/insert-options.atom.d.ts +21 -0
  121. package/dist/esm/atoms/insert-options.atom.d.ts.map +1 -0
  122. package/dist/esm/atoms/insert-options.atom.js +5 -0
  123. package/dist/esm/atoms/move-overwrite-confirm.atom.d.ts +24 -0
  124. package/dist/esm/atoms/move-overwrite-confirm.atom.d.ts.map +1 -0
  125. package/dist/esm/atoms/move-overwrite-confirm.atom.js +29 -0
  126. package/dist/esm/atoms/sheet-context.atom.d.ts +2 -0
  127. package/dist/esm/atoms/sheet-context.atom.d.ts.map +1 -1
  128. package/dist/esm/atoms/sheet-context.atom.js +10 -0
  129. package/dist/esm/components/canvas-grid/index.d.ts.map +1 -1
  130. package/dist/esm/components/canvas-grid/index.js +250 -24
  131. package/dist/esm/components/canvas-grid/typings.d.ts +47 -5
  132. package/dist/esm/components/canvas-grid/typings.d.ts.map +1 -1
  133. package/dist/esm/components/cell-editor/formula-result-preview.d.ts +4 -1
  134. package/dist/esm/components/cell-editor/formula-result-preview.d.ts.map +1 -1
  135. package/dist/esm/components/cell-editor/formula-result-preview.js +3 -3
  136. package/dist/esm/components/cell-editor/index.d.ts +7 -1
  137. package/dist/esm/components/cell-editor/index.d.ts.map +1 -1
  138. package/dist/esm/components/cell-editor/index.js +3 -3
  139. package/dist/esm/components/cell-input/cell-input.d.ts +13 -0
  140. package/dist/esm/components/cell-input/cell-input.d.ts.map +1 -1
  141. package/dist/esm/components/cell-input/cell-input.js +10 -5
  142. package/dist/esm/components/cell-input/formula-bar-cell-input.d.ts.map +1 -1
  143. package/dist/esm/components/cell-input/formula-bar-cell-input.js +3 -1
  144. package/dist/esm/components/context-menu/index.d.ts +16 -1
  145. package/dist/esm/components/context-menu/index.d.ts.map +1 -1
  146. package/dist/esm/components/context-menu/index.js +193 -16
  147. package/dist/esm/components/embeds/embed-draggable.d.ts.map +1 -1
  148. package/dist/esm/components/embeds/embed-draggable.js +3 -2
  149. package/dist/esm/components/floating-cell-editor/index.d.ts.map +1 -1
  150. package/dist/esm/components/floating-cell-editor/index.js +12 -6
  151. package/dist/esm/components/insert-cells-dialog/index.d.ts +35 -0
  152. package/dist/esm/components/insert-cells-dialog/index.d.ts.map +1 -0
  153. package/dist/esm/components/insert-cells-dialog/index.js +79 -0
  154. package/dist/esm/components/insert-options-smart-tag/index.d.ts +25 -0
  155. package/dist/esm/components/insert-options-smart-tag/index.d.ts.map +1 -0
  156. package/dist/esm/components/insert-options-smart-tag/index.js +35 -0
  157. package/dist/esm/components/move-overwrite-confirm-dialog/index.d.ts +8 -0
  158. package/dist/esm/components/move-overwrite-confirm-dialog/index.d.ts.map +1 -0
  159. package/dist/esm/components/move-overwrite-confirm-dialog/index.js +30 -0
  160. package/dist/esm/components/resizer/index.d.ts.map +1 -1
  161. package/dist/esm/components/resizer/index.js +8 -4
  162. package/dist/esm/components/selection/index.d.ts +1 -1
  163. package/dist/esm/components/selection/index.d.ts.map +1 -1
  164. package/dist/esm/components/selection/index.js +4 -2
  165. package/dist/esm/components/selection/types.d.ts +8 -0
  166. package/dist/esm/components/selection/types.d.ts.map +1 -1
  167. package/dist/esm/components/sheet-search/index.d.ts.map +1 -1
  168. package/dist/esm/components/sheet-search/index.js +5 -2
  169. package/dist/esm/config.d.ts +6 -0
  170. package/dist/esm/config.d.ts.map +1 -1
  171. package/dist/esm/config.js +6 -0
  172. package/dist/esm/hooks/use-cell-renderer.d.ts +7 -1
  173. package/dist/esm/hooks/use-cell-renderer.d.ts.map +1 -1
  174. package/dist/esm/hooks/use-cell-renderer.js +9 -4
  175. package/dist/esm/hooks/use-context-setter.d.ts.map +1 -1
  176. package/dist/esm/hooks/use-context-setter.js +5 -1
  177. package/dist/esm/hooks/use-copy-paste-cut.d.ts +5 -0
  178. package/dist/esm/hooks/use-copy-paste-cut.d.ts.map +1 -1
  179. package/dist/esm/hooks/use-copy-paste-cut.js +25 -4
  180. package/dist/esm/hooks/use-editor-change.d.ts +4 -1
  181. package/dist/esm/hooks/use-editor-change.d.ts.map +1 -1
  182. package/dist/esm/hooks/use-editor-change.js +5 -4
  183. package/dist/esm/hooks/use-editor-submit.d.ts +8 -1
  184. package/dist/esm/hooks/use-editor-submit.d.ts.map +1 -1
  185. package/dist/esm/hooks/use-editor-submit.js +10 -2
  186. package/dist/esm/hooks/use-header-actions.d.ts.map +1 -1
  187. package/dist/esm/hooks/use-header-actions.js +11 -4
  188. package/dist/esm/hooks/use-move-columns-rows.d.ts.map +1 -1
  189. package/dist/esm/hooks/use-move-columns-rows.js +18 -6
  190. package/dist/esm/hooks/use-selection-move.d.ts.map +1 -1
  191. package/dist/esm/hooks/use-selection-move.js +11 -4
  192. package/dist/esm/hooks/use-selection-renderer.d.ts +9 -1
  193. package/dist/esm/hooks/use-selection-renderer.d.ts.map +1 -1
  194. package/dist/esm/hooks/use-selection-renderer.js +26 -2
  195. package/dist/esm/hooks/use-selection-resize.d.ts.map +1 -1
  196. package/dist/esm/hooks/use-selection-resize.js +11 -5
  197. package/dist/esm/hooks/use-selection.d.ts +13 -5
  198. package/dist/esm/hooks/use-selection.d.ts.map +1 -1
  199. package/dist/esm/hooks/use-selection.js +89 -27
  200. package/dist/esm/hooks/use-table-resizer.d.ts.map +1 -1
  201. package/dist/esm/hooks/use-table-resizer.js +15 -9
  202. package/dist/esm/hooks/use-touch.d.ts.map +1 -1
  203. package/dist/esm/hooks/use-touch.js +15 -7
  204. package/dist/esm/index.d.ts +7 -0
  205. package/dist/esm/index.d.ts.map +1 -1
  206. package/dist/esm/index.js +7 -0
  207. package/dist/esm/release-date.js +1 -1
  208. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  209. package/dist/spreadsheet.min.css +1 -1
  210. package/package.json +6 -6
@@ -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;
@@ -757,16 +767,20 @@ function CanvasGridComponent(props, forwardedRef) {
757
767
  * Focus sheet
758
768
  */
759
769
  var focusSheet = (0, use_raf_1.useRaf)(function () {
770
+ var _a;
760
771
  // Only suppress refocus when we're certain focus moved to a focusable
761
772
  // element outside the grid (e.g. another asset pane in a split view).
762
773
  // Mirrors the relatedTarget-outside-grid guard in handleEditorBlur. A
763
774
  // user gesture on the grid focuses the tabIndex=0 container first, so
764
775
  // this only suppresses render-driven refocus; a null container ref
765
776
  // (mid mount/unmount) falls through to the original focus behavior.
766
- var activeElement = grid_2.canUseDOM ? document.activeElement : null;
777
+ // The grid may render into a popout window: read focus from its own
778
+ // document, never from the bundle's global one.
779
+ var ownerDocument = (0, grid_2.getOwnerDocument)(gridContainerRef.current);
780
+ var activeElement = (_a = ownerDocument === null || ownerDocument === void 0 ? void 0 : ownerDocument.activeElement) !== null && _a !== void 0 ? _a : null;
767
781
  var gridContainer = gridContainerRef.current;
768
782
  if (activeElement &&
769
- activeElement !== document.body &&
783
+ activeElement !== (ownerDocument === null || ownerDocument === void 0 ? void 0 : ownerDocument.body) &&
770
784
  gridContainer &&
771
785
  !gridContainer.contains(activeElement)) {
772
786
  return;
@@ -900,7 +914,8 @@ function CanvasGridComponent(props, forwardedRef) {
900
914
  if (showFormulas && !protectFormulas) {
901
915
  var formulaValue = getFormulaValue(sheetId, rowIndex, columnIndex);
902
916
  if (formulaValue) {
903
- return formulaValue;
917
+ // "Show Formulas" paints the formula the way the editor would show it.
918
+ return (0, utils_1.localizeFormula)(formulaValue, formulaLocale);
904
919
  }
905
920
  }
906
921
  var formattedValue = getFormattedValueProp
@@ -921,6 +936,7 @@ function CanvasGridComponent(props, forwardedRef) {
921
936
  isColumnHeader,
922
937
  getRowHeaderText,
923
938
  getColumnHeaderText,
939
+ formulaLocale,
924
940
  ]);
925
941
  /**
926
942
  * Get information about cell grouping
@@ -1065,6 +1081,15 @@ function CanvasGridComponent(props, forwardedRef) {
1065
1081
  ]);
1066
1082
  // Add a stable reference to get userEnteredString value
1067
1083
  var getUserEnteredStringValueStable = (0, use_callback_ref_1.useCallbackRef)(getUserEnteredStringValue);
1084
+ /**
1085
+ * What the cell editor / formula bar open with: the stored (canonical) entry rendered in the
1086
+ * grid's formula locale — `=SUM(1.5,A1)` shows as `=СУММ(1,5;A1)` in ru-RU, a stored `#VALUE!`
1087
+ * as `#ЗНАЧ!`. `useEditorSubmit` canonicalizes the text again on commit.
1088
+ */
1089
+ var getEditorDisplayValue = (0, react_1.useCallback)(function (sheetId, rowIndex, columnIndex) {
1090
+ var value = getUserEnteredStringValue(sheetId, rowIndex, columnIndex);
1091
+ return (0, utils_1.isNil)(value) ? value : (0, utils_1.localizeCellInput)(value, formulaLocale);
1092
+ }, [getUserEnteredStringValue, formulaLocale]);
1068
1093
  /**
1069
1094
  * Get cell value used for validations
1070
1095
  */
@@ -1085,11 +1110,11 @@ function CanvasGridComponent(props, forwardedRef) {
1085
1110
  * Touch support
1086
1111
  * Mainly for scrolling
1087
1112
  */
1088
- var _57 = (0, use_touch_1.useTouch)({
1113
+ var _58 = (0, use_touch_1.useTouch)({
1089
1114
  scrollTo: scrollTo,
1090
1115
  scale: scale,
1091
1116
  onChangeScale: onChangeScale,
1092
- }), onTouchStart = _57.onTouchStart, onDimensionsChange = _57.onDimensionsChange, scrollToTouchDevice = _57.scrollToTouchDevice, onAfterScrollToCell = _57.onAfterScrollToCell;
1117
+ }), onTouchStart = _58.onTouchStart, onDimensionsChange = _58.onDimensionsChange, scrollToTouchDevice = _58.scrollToTouchDevice, onAfterScrollToCell = _58.onAfterScrollToCell;
1093
1118
  /**
1094
1119
  * Conditional-formatting evaluation window: the padded, tile-quantized
1095
1120
  * viewport. The raw viewport lives in a ref (no render per scroll frame);
@@ -1097,7 +1122,7 @@ function CanvasGridComponent(props, forwardedRef) {
1097
1122
  * `startTransition` so the CF recompute is low-priority and interruptible —
1098
1123
  * scrolling never blocks on it.
1099
1124
  */
1100
- var _58 = tslib_1.__read((0, react_1.useState)(cf_window_1.CF_INITIAL_WINDOW), 2), cfWindow = _58[0], setCfWindow = _58[1];
1125
+ var _59 = tslib_1.__read((0, react_1.useState)(cf_window_1.CF_INITIAL_WINDOW), 2), cfWindow = _59[0], setCfWindow = _59[1];
1101
1126
  var cfWindowRef = (0, react_1.useRef)(null);
1102
1127
  var handleViewPortChange = (0, react_1.useCallback)(function (viewport) {
1103
1128
  onViewPortChange === null || onViewPortChange === void 0 ? void 0 : onViewPortChange(viewport);
@@ -1328,15 +1353,29 @@ function CanvasGridComponent(props, forwardedRef) {
1328
1353
  activeCell: activeCell,
1329
1354
  tokenizer: defaultTokenizer,
1330
1355
  });
1356
+ /**
1357
+ * The editor's text is in the formula locale's syntax; this tokenizer reads it as such (token
1358
+ * TYPES stay canonical, positions and images are the localized text's). The canonical
1359
+ * `tokenizer` above is what the state hooks and the public context keep using for stored formulas.
1360
+ */
1361
+ var localeTokenizerBase = (0, react_1.useCallback)(function (value, sheetName) { return defaultTokenizer(value, sheetName, formulaLocale); }, [defaultTokenizer, formulaLocale]);
1362
+ var localeTokenizer = (0, use_create_formula_tokenizer_1.useCreateFormulaTokenizer)({
1363
+ getSelectionFromNamedRange: getSelectionFromNamedRange,
1364
+ getSelectionFromTable: getSelectionFromTable,
1365
+ editingCellCoordinate: editingCellCoordinate,
1366
+ sheetId: sheetId,
1367
+ activeCell: activeCell,
1368
+ tokenizer: formulaLocale.isCanonical ? defaultTokenizer : localeTokenizerBase,
1369
+ });
1331
1370
  // Helper function to convert a selection to readable selection address
1332
- var _59 = tslib_1.__read((0, use_create_address_from_selection_1.useCreateAddressFromSelection)({
1371
+ var _60 = tslib_1.__read((0, use_create_address_from_selection_1.useCreateAddressFromSelection)({
1333
1372
  sheetId: sheetId,
1334
1373
  rowCount: rowCount,
1335
1374
  columnCount: columnCount,
1336
1375
  tables: tables !== null && tables !== void 0 ? tables : undefined,
1337
1376
  namedRanges: namedRanges !== null && namedRanges !== void 0 ? namedRanges : undefined,
1338
1377
  merges: merges,
1339
- }), 2), getAddressFromSelection = _59[0], getR1C1AddressFromSelection = _59[1];
1378
+ }), 2), getAddressFromSelection = _60[0], getR1C1AddressFromSelection = _60[1];
1340
1379
  /**
1341
1380
  * Exports a data region as image
1342
1381
  */
@@ -1367,12 +1406,12 @@ function CanvasGridComponent(props, forwardedRef) {
1367
1406
  var _a, _b;
1368
1407
  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
1408
  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);
1409
+ return (0, selections_1.generateSelectionsFromFormula)(value, editingSheetId, editingSheetName, cell, rowCount, columnCount, localeTokenizer, getSelectionFromTable, getSelectionFromNamedRange);
1371
1410
  }, [
1372
1411
  rowCount,
1373
1412
  columnCount,
1374
1413
  editingCellCoordinate,
1375
- tokenizer,
1414
+ localeTokenizer,
1376
1415
  getSelectionFromTable,
1377
1416
  getSheetName,
1378
1417
  getSelectionFromNamedRange,
@@ -1382,7 +1421,7 @@ function CanvasGridComponent(props, forwardedRef) {
1382
1421
  * Get user entered value from a range
1383
1422
  * of cells
1384
1423
  */
1385
- var _60 = tslib_1.__read((0, use_get_values_from_range_1.useGetValuesFromRange)({
1424
+ var _61 = tslib_1.__read((0, use_get_values_from_range_1.useGetValuesFromRange)({
1386
1425
  sheetId: sheetId,
1387
1426
  getSelectionsFromFormula: getSelectionsFromFormula,
1388
1427
  getFormattedValue: getFormattedValue,
@@ -1390,7 +1429,7 @@ function CanvasGridComponent(props, forwardedRef) {
1390
1429
  getSheetId: getSheetId,
1391
1430
  onRequestCalculate: onRequestCalculate,
1392
1431
  getValidationSourceValue: getValidationSourceValue,
1393
- }), 3), getFormattedValuesFromAddress = _60[0], getEffectiveValuesFromRange = _60[1], getFormattedValuesFromAddressAsync = _60[2];
1432
+ }), 3), getFormattedValuesFromAddress = _61[0], getEffectiveValuesFromRange = _61[1], getFormattedValuesFromAddressAsync = _61[2];
1394
1433
  /**
1395
1434
  * Get all formatted values from range as a single 1d array
1396
1435
  */
@@ -1727,7 +1766,7 @@ function CanvasGridComponent(props, forwardedRef) {
1727
1766
  * O(n)
1728
1767
  * Reduces Space Complexity by using `all`
1729
1768
  */
1730
- var _61 = tslib_1.__read((0, use_selected_rows_columns_1.useSelectedRowsColumns)({
1769
+ var _62 = tslib_1.__read((0, use_selected_rows_columns_1.useSelectedRowsColumns)({
1731
1770
  activeCell: activeCell,
1732
1771
  selections: selections,
1733
1772
  selectionLeftBound: selectionLeftBound,
@@ -1735,7 +1774,7 @@ function CanvasGridComponent(props, forwardedRef) {
1735
1774
  rowCount: rowCount,
1736
1775
  columnCount: columnCount,
1737
1776
  getCellBounds: getCellBounds,
1738
- }), 6), selectedRows = _61[0], selectedColumns = _61[1], selectedRowHeaders = _61[2], selectedColumnHeaders = _61[3], selectedRowHeadersIds = _61[4], selectedColumnHeadersIds = _61[5];
1777
+ }), 6), selectedRows = _62[0], selectedColumns = _62[1], selectedRowHeaders = _62[2], selectedColumnHeaders = _62[3], selectedRowHeadersIds = _62[4], selectedColumnHeadersIds = _62[5];
1739
1778
  // Named ranges for editor dropdown
1740
1779
  var getNamedRanges = (0, use_callback_ref_1.useCallbackRef)((0, react_1.useCallback)(function () {
1741
1780
  return namedRanges === null || namedRanges === void 0 ? void 0 : namedRanges.map(function (range) { return ({
@@ -1805,7 +1844,7 @@ function CanvasGridComponent(props, forwardedRef) {
1805
1844
  * user can select entire column or row when selecting
1806
1845
  * header cells
1807
1846
  */
1808
- var _62 = (0, use_selection_interceptors_1.useSelectionInterceptors)({
1847
+ var _63 = (0, use_selection_interceptors_1.useSelectionInterceptors)({
1809
1848
  sheetId: sheetId,
1810
1849
  rowCount: rowCount,
1811
1850
  columnCount: columnCount,
@@ -1821,7 +1860,7 @@ function CanvasGridComponent(props, forwardedRef) {
1821
1860
  onChangeActiveCell: onChangeActiveCell,
1822
1861
  scrollToCell: scrollToCell,
1823
1862
  isMergedCell: isMergedCell,
1824
- }), onMouseDownInterceptor = _62.onMouseDownInterceptor, onMouseMoveInterceptor = _62.onMouseMoveInterceptor;
1863
+ }), onMouseDownInterceptor = _63.onMouseDownInterceptor, onMouseMoveInterceptor = _63.onMouseMoveInterceptor;
1825
1864
  /**
1826
1865
  * When user selections full rows
1827
1866
  * or columns, we have to ignore
@@ -1909,7 +1948,7 @@ function CanvasGridComponent(props, forwardedRef) {
1909
1948
  * Enables auto resizing
1910
1949
  * rows and columns
1911
1950
  */
1912
- var _63 = (0, use_sizer_1.useSizer)({
1951
+ var _64 = (0, use_sizer_1.useSizer)({
1913
1952
  frozenRows: frozenRows,
1914
1953
  frozenColumns: frozenColumns,
1915
1954
  scale: scale,
@@ -1932,7 +1971,7 @@ function CanvasGridComponent(props, forwardedRef) {
1932
1971
  getDataRowCount: getDataRowCount,
1933
1972
  fontSize: defaultFontSizePoint,
1934
1973
  resizeStrategy: "full",
1935
- }), getColumnWidth = _63.getColumnWidth, getRowHeight = _63.getRowHeight, getCellDimensions = _63.getCellDimensions, getCellDimensionsStable = _63.getCellDimensionsStable, getTextDimension = _63.getTextDimension;
1974
+ }), getColumnWidth = _64.getColumnWidth, getRowHeight = _64.getRowHeight, getCellDimensions = _64.getCellDimensions, getCellDimensionsStable = _64.getCellDimensionsStable, getTextDimension = _64.getTextDimension;
1936
1975
  /**
1937
1976
  * Called when user tries to
1938
1977
  * autofit a column or row
@@ -1952,7 +1991,12 @@ function CanvasGridComponent(props, forwardedRef) {
1952
1991
  ]);
1953
1992
  /* Check if sheet is focused */
1954
1993
  var isSheetFocused = (0, react_1.useCallback)(function () {
1955
- return grid_2.canUseDOM ? document.activeElement === (cellEditorInstance === null || cellEditorInstance === void 0 ? void 0 : cellEditorInstance.el()) : false;
1994
+ var _a;
1995
+ var editorElement = cellEditorInstance === null || cellEditorInstance === void 0 ? void 0 : cellEditorInstance.el();
1996
+ if (!editorElement) {
1997
+ return false;
1998
+ }
1999
+ return ((_a = (0, grid_2.getOwnerDocument)(editorElement)) === null || _a === void 0 ? void 0 : _a.activeElement) === editorElement;
1956
2000
  }, [cellEditorInstance]);
1957
2001
  /**
1958
2002
  * Get Cell Editor
@@ -1969,7 +2013,7 @@ function CanvasGridComponent(props, forwardedRef) {
1969
2013
  var editingSheetName = getSheetName === null || getSheetName === void 0 ? void 0 : getSheetName(editingSheetId);
1970
2014
  var effectiveValue = getEffectiveValue(editingSheetId, rowIndex, columnIndex);
1971
2015
  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 })));
2016
+ 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
2017
  }, [
1974
2018
  scale,
1975
2019
  getEffectiveCellFormat,
@@ -1980,10 +2024,11 @@ function CanvasGridComponent(props, forwardedRef) {
1980
2024
  showFormulaHelp,
1981
2025
  onHideFormulaHelp,
1982
2026
  onShowFormulaHelp,
1983
- tokenizer,
2027
+ localeTokenizer,
2028
+ formulaLocale,
1984
2029
  cellBackgroundColor,
1985
2030
  cellColor,
1986
- functionDescriptions,
2031
+ localizedFunctionDescriptions,
1987
2032
  getNamedRanges,
1988
2033
  getTableNames,
1989
2034
  getStructuredProperties,
@@ -2005,7 +2050,7 @@ function CanvasGridComponent(props, forwardedRef) {
2005
2050
  /**
2006
2051
  * Popover cell
2007
2052
  */
2008
- var _64 = (0, use_cell_popover_1.useCellPopover)({
2053
+ var _65 = (0, use_cell_popover_1.useCellPopover)({
2009
2054
  sheetId: sheetId,
2010
2055
  getCellPopoverContent: getCellPopoverContent !== null && getCellPopoverContent !== void 0 ? getCellPopoverContent : getFormattedValue,
2011
2056
  getCellOffsetFromCoords: getCellOffsetFromCoords,
@@ -2013,7 +2058,7 @@ function CanvasGridComponent(props, forwardedRef) {
2013
2058
  isFrozenColumn: isFrozenColumn,
2014
2059
  isFrozenRow: isFrozenRow,
2015
2060
  onChangeActiveSheet: onChangeActiveSheet,
2016
- }), popoverComponent = _64.popoverComponent, popoverRange = _64.popoverRange, showCellPopover = _64.showCellPopover, hideCellPopover = _64.hideCellPopover;
2061
+ }), popoverComponent = _65.popoverComponent, popoverRange = _65.popoverRange, showCellPopover = _65.showCellPopover, hideCellPopover = _65.hideCellPopover;
2017
2062
  /**
2018
2063
  * Get tooltip component of a cell
2019
2064
  * Only error, invalid values are
@@ -2128,6 +2173,121 @@ function CanvasGridComponent(props, forwardedRef) {
2128
2173
  if ((fillOptions === null || fillOptions === void 0 ? void 0 : fillOptions.mode) === "menu")
2129
2174
  setFillOptions(null);
2130
2175
  }, [fillOptions, setFillOptions]);
2176
+ /**
2177
+ * Row / column inserts driven from this grid (context menu, Insert dialog,
2178
+ * Ctrl+Shift+=) also arm Excel's Insert Options smart tag on the new band.
2179
+ * The engine already applied "Format Same As Above / Left" (#647 FMT-01/02);
2180
+ * the tag lets the user switch to the other neighbour or clear.
2181
+ */
2182
+ var insertRowWithOptions = (0, react_1.useCallback)(function (targetSheetId, rowIndex, numRows) {
2183
+ if (!onInsertRow)
2184
+ return;
2185
+ onInsertRow(targetSheetId, rowIndex, numRows);
2186
+ if (numRows > 0) {
2187
+ setInsertOptions({
2188
+ sheetId: targetSheetId,
2189
+ axis: "row",
2190
+ start: rowIndex,
2191
+ count: numRows,
2192
+ option: "before",
2193
+ });
2194
+ }
2195
+ }, [onInsertRow, setInsertOptions]);
2196
+ var insertColumnWithOptions = (0, react_1.useCallback)(function (targetSheetId, columnIndex, numColumns) {
2197
+ if (!onInsertColumn)
2198
+ return;
2199
+ onInsertColumn(targetSheetId, columnIndex, numColumns);
2200
+ if (numColumns > 0) {
2201
+ setInsertOptions({
2202
+ sheetId: targetSheetId,
2203
+ axis: "column",
2204
+ start: columnIndex,
2205
+ count: numColumns,
2206
+ option: "before",
2207
+ });
2208
+ }
2209
+ }, [onInsertColumn, setInsertOptions]);
2210
+ /**
2211
+ * User-entered format of a cell for the Insert Options re-format. A legacy
2212
+ * `StyleReference` (xlsx-imported style id) cannot be copied verbatim, so
2213
+ * it resolves through `getEffectiveFormat` instead.
2214
+ */
2215
+ var readInsertFormat = (0, react_1.useCallback)(function (rowIndex, columnIndex) {
2216
+ var _a;
2217
+ var uf = (_a = getCellData === null || getCellData === void 0 ? void 0 : getCellData(sheetId, rowIndex, columnIndex)) === null || _a === void 0 ? void 0 : _a.uf;
2218
+ if (!uf)
2219
+ return undefined;
2220
+ var isStyleReference = "sid" in uf || "styleId" in uf;
2221
+ return isStyleReference
2222
+ ? getEffectiveFormat === null || getEffectiveFormat === void 0 ? void 0 : getEffectiveFormat(sheetId, rowIndex, columnIndex)
2223
+ : uf;
2224
+ }, [getCellData, getEffectiveFormat, sheetId]);
2225
+ /**
2226
+ * Insert Options smart tag choice. "Same As Above / Below" (Left / Right)
2227
+ * re-paints the band with the neighbour's per-cell formats through the same
2228
+ * paint-format path both engines share (`onChangeFormatting` with a format
2229
+ * grid + `replace`), so the earlier choice does not linger; "Clear
2230
+ * Formatting" wipes the band. A band that already holds values was not
2231
+ * (or is no longer) a fresh insert — the refused-insert case — so the tag
2232
+ * just goes away instead of re-formatting live data.
2233
+ */
2234
+ var handleChooseInsertOption = (0, react_1.useCallback)(function (option) {
2235
+ if (!insertOptions || insertOptions.sheetId !== sheetId)
2236
+ return;
2237
+ var band = {
2238
+ axis: insertOptions.axis,
2239
+ start: insertOptions.start,
2240
+ count: insertOptions.count,
2241
+ };
2242
+ var limit = band.axis === "row" ? columnCount : rowCount;
2243
+ var hasValue = function (rowIndex, columnIndex) {
2244
+ var _a;
2245
+ var cell = getCellData === null || getCellData === void 0 ? void 0 : getCellData(sheetId, rowIndex, columnIndex);
2246
+ 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);
2247
+ };
2248
+ if ((0, insert_options_1.insertedBandHasValues)(band, hasValue, limit)) {
2249
+ setInsertOptions(null);
2250
+ return;
2251
+ }
2252
+ var clearBand = function () {
2253
+ var range = (0, insert_options_1.clearRangeForInsertedBand)(band, readInsertFormat, limit);
2254
+ if (range)
2255
+ onClearFormatting === null || onClearFormatting === void 0 ? void 0 : onClearFormatting(sheetId, activeCell, [{ range: range }]);
2256
+ };
2257
+ if (option === "clear") {
2258
+ clearBand();
2259
+ }
2260
+ else {
2261
+ var plan = (0, insert_options_1.formatsForInsertOption)(band, option, readInsertFormat, limit);
2262
+ if (plan) {
2263
+ // Both engines accept the paint-format shape (format grid + replace);
2264
+ // the grid prop type only names the key/value overload.
2265
+ onChangeFormatting === null || onChangeFormatting === void 0 ? void 0 : onChangeFormatting(sheetId, activeCell, plan.selections, plan.formats, { replace: true });
2266
+ }
2267
+ else {
2268
+ clearBand();
2269
+ }
2270
+ }
2271
+ setInsertOptions(tslib_1.__assign(tslib_1.__assign({}, insertOptions), { option: option }));
2272
+ focusSheet();
2273
+ }, [
2274
+ insertOptions,
2275
+ sheetId,
2276
+ columnCount,
2277
+ rowCount,
2278
+ getCellData,
2279
+ readInsertFormat,
2280
+ onClearFormatting,
2281
+ onChangeFormatting,
2282
+ activeCell,
2283
+ setInsertOptions,
2284
+ focusSheet,
2285
+ ]);
2286
+ // The smart tag belongs to one insert; moving on (a new active cell or
2287
+ // sheet) drops it. Keyed on coordinates like the fill-options tag.
2288
+ (0, react_1.useEffect)(function () {
2289
+ setInsertOptions(null);
2290
+ }, [activeCell.rowIndex, activeCell.columnIndex, sheetId, setInsertOptions]);
2131
2291
  /**
2132
2292
  * Run Excel's Series dialog result: the target range's first row (Series
2133
2293
  * in Columns) / first column (Rows) is the seed line; `stop` may shrink or
@@ -2201,6 +2361,14 @@ function CanvasGridComponent(props, forwardedRef) {
2201
2361
  (0, react_1.useEffect)(function () {
2202
2362
  setFillOptions(null);
2203
2363
  }, [activeCell.rowIndex, activeCell.columnIndex, sheetId, setFillOptions]);
2364
+ /**
2365
+ * Drag-move overwrite prompt ("There's already data here. Do you want to replace it?").
2366
+ * Routed to the host-mounted `MoveOverwriteConfirmDialogHost` when there is one; the
2367
+ * selection hook falls back to `window.confirm` otherwise.
2368
+ */
2369
+ var openMoveOverwriteConfirm = (0, atoms_1.useOpenMoveOverwriteConfirm)();
2370
+ var isMoveOverwriteConfirmMounted = (0, atoms_1.useIsMoveOverwriteConfirmMounted)();
2371
+ var confirmMoveOverwrite = (0, react_1.useMemo)(function () { return (isMoveOverwriteConfirmMounted ? openMoveOverwriteConfirm : undefined); }, [isMoveOverwriteConfirmMounted, openMoveOverwriteConfirm]);
2204
2372
  /**
2205
2373
  * Fill handle dragged BACK inside the selection (Excel): the dragged-over cells lose their
2206
2374
  * contents — formats stay unless Ctrl/Cmd was held — through the same `onDelete` path as the
@@ -2212,7 +2380,7 @@ function CanvasGridComponent(props, forwardedRef) {
2212
2380
  /**
2213
2381
  * Handle grid selections
2214
2382
  */
2215
- var _65 = (0, use_selection_1.useSelection)({
2383
+ var _66 = (0, use_selection_1.useSelection)({
2216
2384
  sheetId: sheetId,
2217
2385
  getDataRowCount: getDataRowCount,
2218
2386
  enableDataBoundaryNavigation: enableDataBoundaryNavigation,
@@ -2243,17 +2411,19 @@ function CanvasGridComponent(props, forwardedRef) {
2243
2411
  onFillHandleRelease: handleFillHandleRelease,
2244
2412
  onFillShrink: handleFillShrink,
2245
2413
  onMoveSelection: onMoveSelection,
2414
+ onInsertCutCells: onInsertCutCells,
2415
+ confirmMoveOverwrite: confirmMoveOverwrite,
2246
2416
  isHiddenColumn: isHiddenColumn,
2247
2417
  isHiddenRow: isHiddenRow,
2248
2418
  isRowHeader: isRowHeader,
2249
2419
  isColumnHeader: isColumnHeader,
2250
2420
  isTouchDevice: helpers_1.isTouchDevice,
2251
2421
  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;
2422
+ }), 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
2423
  /**
2254
2424
  * Copy, Paste and Cut hook
2255
2425
  */
2256
- var _66 = (0, use_copy_paste_cut_1.useCopyPasteCut)({
2426
+ var _67 = (0, use_copy_paste_cut_1.useCopyPasteCut)({
2257
2427
  activeCell: activeCell,
2258
2428
  selections: selections,
2259
2429
  sheetId: sheetId,
@@ -2261,7 +2431,57 @@ function CanvasGridComponent(props, forwardedRef) {
2261
2431
  onPaste: onPaste,
2262
2432
  onCopy: onCopy,
2263
2433
  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;
2434
+ }), 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;
2435
+ /**
2436
+ * Context menu "Insert Cut Cells" (Excel: Ctrl+X, right-click the destination). A cut of
2437
+ * whole rows / columns dropped on a row / column header inserts them BEFORE the clicked
2438
+ * header in pre-removal numbering (`insertBefore`); anything else inserts the cut block at
2439
+ * the active cell, displacing the cells there (`onInsertCutCells`). Consumes the cut.
2440
+ */
2441
+ var insertCutCellsFromMenu = (0, react_1.useCallback)(function (target) {
2442
+ var from = copiedSelections[0];
2443
+ if (!from || !isCutPending)
2444
+ return;
2445
+ var range = from.range;
2446
+ var wholeRows = range.startColumnIndex <= 1 && range.endColumnIndex >= columnCount;
2447
+ var wholeColumns = range.startRowIndex <= 1 && range.endRowIndex >= rowCount;
2448
+ var span = function (start, end) {
2449
+ return Array.from({ length: end - start + 1 }, function (_, i) { return start + i; });
2450
+ };
2451
+ if (target === "rows" && wholeRows) {
2452
+ onMoveRows === null || onMoveRows === void 0 ? void 0 : onMoveRows(sheetId, span(range.startRowIndex, range.endRowIndex), activeCell.rowIndex, {
2453
+ insertBefore: true,
2454
+ });
2455
+ }
2456
+ else if (target === "columns" && wholeColumns) {
2457
+ onMoveColumns === null || onMoveColumns === void 0 ? void 0 : onMoveColumns(sheetId, span(range.startColumnIndex, range.endColumnIndex), activeCell.columnIndex, { insertBefore: true });
2458
+ }
2459
+ else {
2460
+ var to = {
2461
+ range: {
2462
+ startRowIndex: activeCell.rowIndex,
2463
+ startColumnIndex: activeCell.columnIndex,
2464
+ endRowIndex: activeCell.rowIndex + (range.endRowIndex - range.startRowIndex),
2465
+ endColumnIndex: activeCell.columnIndex + (range.endColumnIndex - range.startColumnIndex),
2466
+ },
2467
+ };
2468
+ onInsertCutCells === null || onInsertCutCells === void 0 ? void 0 : onInsertCutCells(sheetId, from, to);
2469
+ }
2470
+ cancelCut();
2471
+ focusSheet();
2472
+ }, [
2473
+ copiedSelections,
2474
+ isCutPending,
2475
+ columnCount,
2476
+ rowCount,
2477
+ sheetId,
2478
+ activeCell,
2479
+ onMoveRows,
2480
+ onMoveColumns,
2481
+ onInsertCutCells,
2482
+ cancelCut,
2483
+ focusSheet,
2484
+ ]);
2265
2485
  /**
2266
2486
  * Paste Special dialog (context menu → Paste special…, Ctrl+Alt+V). The
2267
2487
  * dialog is host-mounted (`PasteSpecialDialogHost`); its request routes
@@ -2376,6 +2596,7 @@ function CanvasGridComponent(props, forwardedRef) {
2376
2596
  onChangeSelections: onChangeSelections,
2377
2597
  getSelectionsFromFormula: getSelectionsFromFormula,
2378
2598
  onChangeEditorValue: onChangeEditorValue,
2599
+ formulaLocale: formulaLocale,
2379
2600
  });
2380
2601
  // Get final row height to expand to based on value of a cell
2381
2602
  var getFinalRowHeight = (0, use_callback_ref_1.useCallbackRef)((0, react_1.useCallback)(function (sheetId, rowIndex, columnIndex, options) {
@@ -2421,6 +2642,7 @@ function CanvasGridComponent(props, forwardedRef) {
2421
2642
  showValidationAlert: showValidationAlert,
2422
2643
  selections: selections,
2423
2644
  onChangeBatch: onChangeBatch,
2645
+ formulaLocale: formulaLocale,
2424
2646
  });
2425
2647
  /**
2426
2648
  * User cancels editing the cell
@@ -2500,7 +2722,7 @@ function CanvasGridComponent(props, forwardedRef) {
2500
2722
  * Get context Menu component
2501
2723
  */
2502
2724
  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 }));
2725
+ 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
2726
  }, [
2505
2727
  isRestricted,
2506
2728
  activeCell,
@@ -2513,8 +2735,10 @@ function CanvasGridComponent(props, forwardedRef) {
2513
2735
  onHideRow,
2514
2736
  onDeleteColumn,
2515
2737
  onDeleteRow,
2516
- onInsertColumn,
2517
- onInsertRow,
2738
+ insertColumnWithOptions,
2739
+ insertRowWithOptions,
2740
+ rowCount,
2741
+ columnCount,
2518
2742
  onInsertCellsShiftDown,
2519
2743
  onInsertCellsShiftRight,
2520
2744
  onDeleteCellsShiftLeft,
@@ -2588,7 +2812,7 @@ function CanvasGridComponent(props, forwardedRef) {
2588
2812
  * Displays Context menu when user right clicks
2589
2813
  * the grid
2590
2814
  */
2591
- var _67 = (0, use_context_menu_1.useContextMenu)({
2815
+ var _68 = (0, use_context_menu_1.useContextMenu)({
2592
2816
  getCellCoordsFromOffset: getCellCoordsFromOffset,
2593
2817
  getRelativePositionFromOffset: getRelativePositionFromOffset,
2594
2818
  isRowHeader: isRowHeader,
@@ -2597,7 +2821,7 @@ function CanvasGridComponent(props, forwardedRef) {
2597
2821
  getCellOffsetFromCoords: getCellOffsetFromCoords,
2598
2822
  getScrollPosition: getScrollPosition,
2599
2823
  ContextMenuWrapper: ContextMenuWrapper,
2600
- }), onContextMenu = _67.onContextMenu, contextMenuComponent = _67.contextMenuComponent, onRequestCloseContextMenu = _67.onRequestClose, showContextMenu = _67.showContextMenu;
2824
+ }), onContextMenu = _68.onContextMenu, contextMenuComponent = _68.contextMenuComponent, onRequestCloseContextMenu = _68.onRequestClose, showContextMenu = _68.showContextMenu;
2601
2825
  /**
2602
2826
  * Shortcut handlers for formatting
2603
2827
  * TODO: Decide on the output
@@ -2652,7 +2876,7 @@ function CanvasGridComponent(props, forwardedRef) {
2652
2876
  onGroupColumns: onGroupColumns,
2653
2877
  onUngroupColumns: onUngroupColumns,
2654
2878
  onDeleteRow: onDeleteRow,
2655
- onInsertRow: onInsertRow,
2879
+ onInsertRow: insertRowWithOptions,
2656
2880
  onInsertAutoSum: onInsertAutoSum,
2657
2881
  onShowColumn: onShowColumn,
2658
2882
  onShowRow: onShowRow,
@@ -2677,7 +2901,7 @@ function CanvasGridComponent(props, forwardedRef) {
2677
2901
  /**
2678
2902
  * Allow grid to be ediable
2679
2903
  */
2680
- var _68 = (0, use_editable_1.useEditable)({
2904
+ var _69 = (0, use_editable_1.useEditable)({
2681
2905
  sheetId: sheetId,
2682
2906
  enableEditOnEnterKey: enableEditOnEnterKey,
2683
2907
  canEdit: canEditCell,
@@ -2694,7 +2918,7 @@ function CanvasGridComponent(props, forwardedRef) {
2694
2918
  selections: selections,
2695
2919
  getSheetColumnCount: getSheetColumnCount,
2696
2920
  getSheetRowCount: getSheetRowCount,
2697
- getValue: getUserEnteredStringValue,
2921
+ getValue: getEditorDisplayValue,
2698
2922
  getTextFormatRuns: getTextFormatRuns,
2699
2923
  getBooleanValue: getBooleanValue,
2700
2924
  getDataValidation: getDataValidationRule,
@@ -2726,11 +2950,11 @@ function CanvasGridComponent(props, forwardedRef) {
2726
2950
  onCopy: onInternalCopy,
2727
2951
  onPaste: onInternalPaste,
2728
2952
  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;
2953
+ }), 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
2954
  /**
2731
2955
  * Move rows and columns
2732
2956
  */
2733
- var _69 = (0, use_move_columns_rows_1.useMoveColumnsAndRows)({
2957
+ var _70 = (0, use_move_columns_rows_1.useMoveColumnsAndRows)({
2734
2958
  getCellOffsetFromCoords: getCellOffsetFromCoords,
2735
2959
  getCellCoordsFromOffset: getCellCoordsFromOffset,
2736
2960
  getRelativePositionFromOffset: getRelativePositionFromOffset,
@@ -2753,11 +2977,11 @@ function CanvasGridComponent(props, forwardedRef) {
2753
2977
  sheetId: sheetId,
2754
2978
  disabled: isRestricted,
2755
2979
  HeaderMoveDragComponent: HeaderMoveDragComponent,
2756
- }), draggableColumns = _69.draggableColumns, draggableRows = _69.draggableRows, isDraggingRowsAndColumns = _69.isDragging;
2980
+ }), draggableColumns = _70.draggableColumns, draggableRows = _70.draggableRows, isDraggingRowsAndColumns = _70.isDragging;
2757
2981
  /**
2758
2982
  * Header actions
2759
2983
  */
2760
- var _70 = (0, use_header_actions_1.useHeaderActions)({
2984
+ var _71 = (0, use_header_actions_1.useHeaderActions)({
2761
2985
  activeCell: isSelectionInProgress || isFilling || isDragging ? null : hoveredCell,
2762
2986
  getScrollPosition: getScrollPosition,
2763
2987
  getCellOffsetFromCoords: getCellOffsetFromCoords,
@@ -2784,7 +3008,7 @@ function CanvasGridComponent(props, forwardedRef) {
2784
3008
  selectedRowHeadersIds: selectedRowHeadersIds,
2785
3009
  selectedColumnHeadersIds: selectedColumnHeadersIds,
2786
3010
  enableResizerOverflow: enableResizerOverflow,
2787
- }), headerMenuComponent = _70.headerMenuComponent, isHeaderMenuInFrozenColumn = _70.isHeaderMenuInFrozenColumn, headerResizer = _70.headerResizer, isDraggingHeader = _70.isDragging;
3011
+ }), headerMenuComponent = _71.headerMenuComponent, isHeaderMenuInFrozenColumn = _71.isHeaderMenuInFrozenColumn, headerResizer = _71.headerResizer, isDraggingHeader = _71.isDragging;
2788
3012
  /**
2789
3013
  * Close tooltip
2790
3014
  */
@@ -2826,7 +3050,7 @@ function CanvasGridComponent(props, forwardedRef) {
2826
3050
  /**
2827
3051
  * Show basicFilter panels
2828
3052
  */
2829
- var _71 = (0, use_filter_1.useFilter)({
3053
+ var _72 = (0, use_filter_1.useFilter)({
2830
3054
  sheetId: sheetId,
2831
3055
  scale: scale,
2832
3056
  theme: theme,
@@ -2851,9 +3075,9 @@ function CanvasGridComponent(props, forwardedRef) {
2851
3075
  // Live filter state so the open popup tracks Auto-apply spec changes.
2852
3076
  basicFilter: basicFilter,
2853
3077
  tables: activeTables,
2854
- }), showFilter = _71.showFilter, hideFilter = _71.hideFilter, filterComponent = _71.filterComponent;
3078
+ }), showFilter = _72.showFilter, hideFilter = _72.hideFilter, filterComponent = _72.filterComponent;
2855
3079
  // Table resize
2856
- var _72 = (0, use_table_resizer_1.useTableResizer)({
3080
+ var _73 = (0, use_table_resizer_1.useTableResizer)({
2857
3081
  sheetId: sheetId,
2858
3082
  tables: tables !== null && tables !== void 0 ? tables : undefined,
2859
3083
  theme: theme,
@@ -2864,11 +3088,11 @@ function CanvasGridComponent(props, forwardedRef) {
2864
3088
  scrollToCell: scrollToCell,
2865
3089
  onResizeTable: onResizeTable,
2866
3090
  focusSheet: focusSheet,
2867
- }), tableResizers = _72.tableResizers, isResizingTable = _72.isResizingTable;
3091
+ }), tableResizers = _73.tableResizers, isResizingTable = _73.isResizingTable;
2868
3092
  /**
2869
3093
  * Displays resizable/draggable charts
2870
3094
  */
2871
- var _73 = (0, use_embeds_charts_1.useEmbedsCharts)({
3095
+ var _74 = (0, use_embeds_charts_1.useEmbedsCharts)({
2872
3096
  charts: charts,
2873
3097
  embeds: embeds,
2874
3098
  slicers: slicers,
@@ -2905,7 +3129,7 @@ function CanvasGridComponent(props, forwardedRef) {
2905
3129
  backgroundColor: cellBackgroundColor,
2906
3130
  disabled: isRestricted,
2907
3131
  readonly: readonly,
2908
- }), chartComponents = _73.chartComponents, embedComponents = _73.embedComponents, slicerComponents = _73.slicerComponents, onMouseDownCharts = _73.onMouseDown;
3132
+ }), chartComponents = _74.chartComponents, embedComponents = _74.embedComponents, slicerComponents = _74.slicerComponents, onMouseDownCharts = _74.onMouseDown;
2909
3133
  /**
2910
3134
  * Callback when user clicks Filter icon
2911
3135
  * Show Filter dropdown here
@@ -3163,8 +3387,9 @@ function CanvasGridComponent(props, forwardedRef) {
3163
3387
  /**
3164
3388
  * Render Cells in the grid
3165
3389
  */
3166
- var _74 = tslib_1.__read((0, use_cell_renderer_1.useCellRenderer)({
3390
+ var _75 = tslib_1.__read((0, use_cell_renderer_1.useCellRenderer)({
3167
3391
  sheetId: sheetId,
3392
+ formulaLocale: formulaLocale,
3168
3393
  showGridLines: showGridLines,
3169
3394
  scale: scale,
3170
3395
  enableTextOverflow: enableTextOverflow,
@@ -3229,7 +3454,7 @@ function CanvasGridComponent(props, forwardedRef) {
3229
3454
  onOverflow: handleOverflow,
3230
3455
  isComparing: isComparing,
3231
3456
  getCellDiff: getCellDiff,
3232
- }), 4), cellBackgroundRenderer = _74[0], cellRenderer = _74[1], cellOverlayRenderer = _74[2], headerCellRenderer = _74[3];
3457
+ }), 4), cellBackgroundRenderer = _75[0], cellRenderer = _75[1], cellOverlayRenderer = _75[2], headerCellRenderer = _75[3];
3233
3458
  /**
3234
3459
  * When user selects a selection for moving
3235
3460
  * If its a table, we select the entire column
@@ -3262,14 +3487,14 @@ function CanvasGridComponent(props, forwardedRef) {
3262
3487
  getCellBounds: getCellBounds,
3263
3488
  getCellCoordsFromOffset: getCellCoordsFromOffset,
3264
3489
  scrollToCell: scrollToCell,
3265
- tokenizer: tokenizer,
3490
+ tokenizer: localeTokenizer,
3266
3491
  });
3267
3492
  // Selection move: drag a formula reference via its border covers
3268
- var _75 = (0, use_selection_move_1.useSelectionMove)({
3493
+ var _76 = (0, use_selection_move_1.useSelectionMove)({
3269
3494
  getCellCoordsFromOffset: getCellCoordsFromOffset,
3270
3495
  scrollToCell: scrollToCell,
3271
- tokenizer: tokenizer,
3272
- }), onMouseDownMoveSelection = _75.onMouseDownMoveSelection, isDraggingMoveSelection = _75.isDragging;
3496
+ tokenizer: localeTokenizer,
3497
+ }), onMouseDownMoveSelection = _76.onMouseDownMoveSelection, isDraggingMoveSelection = _76.isDragging;
3273
3498
  /**
3274
3499
  * Hide fill handle
3275
3500
  * 1. When user is in edit mode
@@ -3282,9 +3507,9 @@ function CanvasGridComponent(props, forwardedRef) {
3282
3507
  /**
3283
3508
  * Flashing
3284
3509
  */
3285
- var _76 = (0, use_flash_1.useFlash)({
3510
+ var _77 = (0, use_flash_1.useFlash)({
3286
3511
  theme: theme,
3287
- }), flash = _76.flash, mark = _76.mark, unmark = _76.unmark, onFlashEnd = _76.onFlashEnd, flashingBorders = _76.flashingBorders;
3512
+ }), flash = _77.flash, mark = _77.mark, unmark = _77.unmark, onFlashEnd = _77.onFlashEnd, flashingBorders = _77.flashingBorders;
3288
3513
  // Cache hover ids
3289
3514
  var cachedHoveredSelectionIds = (0, use_hovered_selection_ids_1.useHoveredSelectionIds)({
3290
3515
  selections: selections,
@@ -3332,6 +3557,8 @@ function CanvasGridComponent(props, forwardedRef) {
3332
3557
  onChooseFillType: handleChooseFillType,
3333
3558
  onOpenFillSeriesDialog: handleOpenFillSeriesDialog,
3334
3559
  onCloseFillOptions: handleCloseFillOptions,
3560
+ insertOptions: insertOptions,
3561
+ onChooseInsertOption: handleChooseInsertOption,
3335
3562
  hoveredCell: delayedHoveredCell,
3336
3563
  onRemoveQuickEdit: onRemoveQuickEdit,
3337
3564
  onAddQuickEdit: onAddQuickEdit,
@@ -3367,7 +3594,7 @@ function CanvasGridComponent(props, forwardedRef) {
3367
3594
  quickEditValues: quickEditValues,
3368
3595
  });
3369
3596
  // Hidden column markers
3370
- var _77 = tslib_1.__read((0, use_hidden_dimension_markers_1.useHiddenDimensionMarkers)({
3597
+ var _78 = tslib_1.__read((0, use_hidden_dimension_markers_1.useHiddenDimensionMarkers)({
3371
3598
  sheetId: sheetId,
3372
3599
  columnMetadata: columnMetadata,
3373
3600
  rowMetadata: rowMetadata,
@@ -3380,7 +3607,7 @@ function CanvasGridComponent(props, forwardedRef) {
3380
3607
  columnCount: columnCount,
3381
3608
  HiddenRowMarkers: HiddenRowMarkers,
3382
3609
  HiddenColumnMarkers: HiddenColumnMarkers,
3383
- }), 4), hiddenColumnMarkers = _77[0], frozenHiddenColumnMarkers = _77[1], hiddenRowMarkers = _77[2], frozenHiddenRowMarkers = _77[3];
3610
+ }), 4), hiddenColumnMarkers = _78[0], frozenHiddenColumnMarkers = _78[1], hiddenRowMarkers = _78[2], frozenHiddenRowMarkers = _78[3];
3384
3611
  // Zoom lister
3385
3612
  var onMouseWheel = (0, use_scale_listener_1.useScaleListener)({
3386
3613
  zoomSpeed: zoomSpeed,
@@ -3506,6 +3733,8 @@ function CanvasGridComponent(props, forwardedRef) {
3506
3733
  getAddressFromSelection: getAddressFromSelection,
3507
3734
  getR1C1AddressFromSelection: getR1C1AddressFromSelection,
3508
3735
  tokenizer: tokenizer,
3736
+ localeTokenizer: localeTokenizer,
3737
+ formulaLocale: formulaLocale,
3509
3738
  setEditorValue: setEditorValue,
3510
3739
  getCellBounds: getCellBounds,
3511
3740
  getNamedRanges: getNamedRanges,
@@ -3613,7 +3842,7 @@ function CanvasGridComponent(props, forwardedRef) {
3613
3842
  }
3614
3843
  // Wait for sheet change to finish
3615
3844
  requestAnimationFrame(function () {
3616
- var _a;
3845
+ var _a, _b;
3617
3846
  // If user is not in formula mode and changing sheet.
3618
3847
  // The edit belongs to the sheet it was started on, so flush it —
3619
3848
  // `hideEditor()` alone threw the typed value away, leaving the cell
@@ -3650,7 +3879,7 @@ function CanvasGridComponent(props, forwardedRef) {
3650
3879
  // Keep focus back on sheet
3651
3880
  // Check if user is focused on the context menu
3652
3881
  if (grid_2.canUseDOM &&
3653
- ((_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.getAttribute("role")) !== "menu") {
3882
+ ((_b = (_a = (0, grid_2.getOwnerDocument)(gridContainerRef.current)) === null || _a === void 0 ? void 0 : _a.activeElement) === null || _b === void 0 ? void 0 : _b.getAttribute("role")) !== "menu") {
3654
3883
  focusSheet();
3655
3884
  }
3656
3885
  }
@@ -3683,8 +3912,8 @@ function CanvasGridComponent(props, forwardedRef) {
3683
3912
  var rowIndex = activeCell.rowIndex, columnIndex = activeCell.columnIndex;
3684
3913
  var value = getUserEnteredStringValue(sheetId, rowIndex, columnIndex);
3685
3914
  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 : "");
3915
+ // Update formula bar input (in the grid's formula locale, like the cell editor)
3916
+ setFormulabarEditorValue((0, utils_1.localizeCellInput)(value !== null && value !== void 0 ? value : "", formulaLocale));
3688
3917
  setFormulaBarTextFormatRuns(textFormatRuns);
3689
3918
  }, [
3690
3919
  activeCell,
@@ -3692,6 +3921,7 @@ function CanvasGridComponent(props, forwardedRef) {
3692
3921
  sheetId,
3693
3922
  editingCellCoordinate,
3694
3923
  getUserEnteredStringValue,
3924
+ formulaLocale,
3695
3925
  setFormulabarEditorValue,
3696
3926
  setFormulaBarTextFormatRuns,
3697
3927
  ]);