@rowsncolumns/spreadsheet 10.6.5 → 10.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (284) hide show
  1. package/dist/cjs/api/autocomplete.d.ts +42 -0
  2. package/dist/cjs/api/autocomplete.d.ts.map +1 -0
  3. package/dist/cjs/api/autocomplete.js +114 -0
  4. package/dist/cjs/api/banded-ranges.d.ts.map +1 -1
  5. package/dist/cjs/api/banded-ranges.js +51 -1
  6. package/dist/cjs/api/error-checking.d.ts +82 -0
  7. package/dist/cjs/api/error-checking.d.ts.map +1 -0
  8. package/dist/cjs/api/error-checking.js +207 -0
  9. package/dist/cjs/api/move-overwrite.d.ts +8 -2
  10. package/dist/cjs/api/move-overwrite.d.ts.map +1 -1
  11. package/dist/cjs/api/move-overwrite.js +19 -3
  12. package/dist/cjs/api/selections.d.ts +2 -2
  13. package/dist/cjs/api/validation.d.ts +39 -1
  14. package/dist/cjs/api/validation.d.ts.map +1 -1
  15. package/dist/cjs/api/validation.js +87 -1
  16. package/dist/cjs/atoms/cell-input-context.atom.d.ts +4 -1
  17. package/dist/cjs/atoms/cell-input-context.atom.d.ts.map +1 -1
  18. package/dist/cjs/atoms/enter-key-direction.atom.d.ts +11 -0
  19. package/dist/cjs/atoms/enter-key-direction.atom.d.ts.map +1 -0
  20. package/dist/cjs/atoms/enter-key-direction.atom.js +13 -0
  21. package/dist/cjs/atoms/index.d.ts +1 -0
  22. package/dist/cjs/atoms/index.d.ts.map +1 -1
  23. package/dist/cjs/atoms/index.js +1 -0
  24. package/dist/cjs/atoms/paste-menu.atom.d.ts +22 -0
  25. package/dist/cjs/atoms/paste-menu.atom.d.ts.map +1 -1
  26. package/dist/cjs/atoms/paste-menu.atom.js +13 -1
  27. package/dist/cjs/atoms/pick-list.atom.d.ts +15 -0
  28. package/dist/cjs/atoms/pick-list.atom.d.ts.map +1 -0
  29. package/dist/cjs/atoms/pick-list.atom.js +7 -0
  30. package/dist/cjs/components/canvas-grid/index.d.ts.map +1 -1
  31. package/dist/cjs/components/canvas-grid/index.js +305 -70
  32. package/dist/cjs/components/canvas-grid/typings.d.ts +96 -11
  33. package/dist/cjs/components/canvas-grid/typings.d.ts.map +1 -1
  34. package/dist/cjs/components/cell/index.d.ts.map +1 -1
  35. package/dist/cjs/components/cell/index.js +7 -8
  36. package/dist/cjs/components/cell/typings.d.ts +9 -0
  37. package/dist/cjs/components/cell/typings.d.ts.map +1 -1
  38. package/dist/cjs/components/cell-editor/helpers.d.ts +22 -2
  39. package/dist/cjs/components/cell-editor/helpers.d.ts.map +1 -1
  40. package/dist/cjs/components/cell-editor/helpers.js +32 -8
  41. package/dist/cjs/components/cell-editor/index.d.ts +7 -1
  42. package/dist/cjs/components/cell-editor/index.d.ts.map +1 -1
  43. package/dist/cjs/components/cell-editor/index.js +85 -13
  44. package/dist/cjs/components/cell-indicator/index.d.ts +41 -0
  45. package/dist/cjs/components/cell-indicator/index.d.ts.map +1 -0
  46. package/dist/cjs/components/cell-indicator/index.js +90 -0
  47. package/dist/cjs/components/cell-input/cell-input.d.ts +10 -2
  48. package/dist/cjs/components/cell-input/cell-input.d.ts.map +1 -1
  49. package/dist/cjs/components/cell-input/cell-input.js +5 -3
  50. package/dist/cjs/components/cell-input/formula-bar-cell-input.d.ts.map +1 -1
  51. package/dist/cjs/components/cell-input/formula-bar-cell-input.js +9 -2
  52. package/dist/cjs/components/cell-structured/sparkline-math.d.ts +27 -1
  53. package/dist/cjs/components/cell-structured/sparkline-math.d.ts.map +1 -1
  54. package/dist/cjs/components/cell-structured/sparkline-math.js +48 -1
  55. package/dist/cjs/components/cell-structured/sparkline.d.ts +1 -1
  56. package/dist/cjs/components/cell-structured/sparkline.d.ts.map +1 -1
  57. package/dist/cjs/components/cell-structured/sparkline.js +36 -92
  58. package/dist/cjs/components/cell-structured/types.d.ts +6 -0
  59. package/dist/cjs/components/cell-structured/types.d.ts.map +1 -1
  60. package/dist/cjs/components/data-table-dialog/index.d.ts +22 -0
  61. package/dist/cjs/components/data-table-dialog/index.d.ts.map +1 -0
  62. package/dist/cjs/components/data-table-dialog/index.js +93 -0
  63. package/dist/cjs/components/error-check-smart-tag/index.d.ts +27 -0
  64. package/dist/cjs/components/error-check-smart-tag/index.d.ts.map +1 -0
  65. package/dist/cjs/components/error-check-smart-tag/index.js +39 -0
  66. package/dist/cjs/components/forecast-sheet-dialog/index.d.ts +26 -0
  67. package/dist/cjs/components/forecast-sheet-dialog/index.d.ts.map +1 -0
  68. package/dist/cjs/components/forecast-sheet-dialog/index.js +92 -0
  69. package/dist/cjs/components/paste-special-dialog/index.d.ts +3 -3
  70. package/dist/cjs/components/paste-special-dialog/index.d.ts.map +1 -1
  71. package/dist/cjs/components/paste-special-dialog/index.js +61 -23
  72. package/dist/cjs/components/protect-sheet-dialog/allow-edit-ranges-dialog.d.ts +57 -0
  73. package/dist/cjs/components/protect-sheet-dialog/allow-edit-ranges-dialog.d.ts.map +1 -0
  74. package/dist/cjs/components/protect-sheet-dialog/allow-edit-ranges-dialog.js +196 -0
  75. package/dist/cjs/components/protect-sheet-dialog/constants.d.ts +3 -0
  76. package/dist/cjs/components/protect-sheet-dialog/constants.d.ts.map +1 -0
  77. package/dist/cjs/components/protect-sheet-dialog/constants.js +5 -0
  78. package/dist/cjs/components/protect-sheet-dialog/index.d.ts +2 -2
  79. package/dist/cjs/components/protect-sheet-dialog/index.d.ts.map +1 -1
  80. package/dist/cjs/components/protect-sheet-dialog/index.js +5 -3
  81. package/dist/cjs/components/scenario-manager-dialog/index.d.ts +51 -0
  82. package/dist/cjs/components/scenario-manager-dialog/index.d.ts.map +1 -0
  83. package/dist/cjs/components/scenario-manager-dialog/index.js +257 -0
  84. package/dist/cjs/components/selection/index.d.ts +1 -1
  85. package/dist/cjs/components/selection/index.d.ts.map +1 -1
  86. package/dist/cjs/components/selection/index.js +9 -4
  87. package/dist/cjs/components/selection/paste-menu.d.ts +14 -1
  88. package/dist/cjs/components/selection/paste-menu.d.ts.map +1 -1
  89. package/dist/cjs/components/selection/paste-menu.js +78 -6
  90. package/dist/cjs/components/selection/paste-options.d.ts +28 -0
  91. package/dist/cjs/components/selection/paste-options.d.ts.map +1 -0
  92. package/dist/cjs/components/selection/paste-options.js +70 -0
  93. package/dist/cjs/components/selection/types.d.ts +12 -1
  94. package/dist/cjs/components/selection/types.d.ts.map +1 -1
  95. package/dist/cjs/components/selection-drop-menu/index.d.ts +18 -0
  96. package/dist/cjs/components/selection-drop-menu/index.d.ts.map +1 -0
  97. package/dist/cjs/components/selection-drop-menu/index.js +62 -0
  98. package/dist/cjs/components/solver-dialog/index.d.ts +57 -0
  99. package/dist/cjs/components/solver-dialog/index.d.ts.map +1 -0
  100. package/dist/cjs/components/solver-dialog/index.js +204 -0
  101. package/dist/cjs/components/toolbar/sparkline-actions.d.ts +3 -2
  102. package/dist/cjs/components/toolbar/sparkline-actions.d.ts.map +1 -1
  103. package/dist/cjs/components/toolbar/sparkline-actions.js +6 -2
  104. package/dist/cjs/components/toolbar/table-style-selector.d.ts.map +1 -1
  105. package/dist/cjs/components/toolbar/table-style-selector.js +33 -2
  106. package/dist/cjs/config.d.ts +5 -4
  107. package/dist/cjs/config.d.ts.map +1 -1
  108. package/dist/cjs/config.js +13 -9
  109. package/dist/cjs/hooks/use-cell-renderer.d.ts +12 -1
  110. package/dist/cjs/hooks/use-cell-renderer.d.ts.map +1 -1
  111. package/dist/cjs/hooks/use-cell-renderer.js +6 -3
  112. package/dist/cjs/hooks/use-copy-paste-cut.d.ts +36 -2
  113. package/dist/cjs/hooks/use-copy-paste-cut.d.ts.map +1 -1
  114. package/dist/cjs/hooks/use-copy-paste-cut.js +131 -5
  115. package/dist/cjs/hooks/use-editable.d.ts +6 -0
  116. package/dist/cjs/hooks/use-editable.d.ts.map +1 -1
  117. package/dist/cjs/hooks/use-editor-submit.d.ts +45 -3
  118. package/dist/cjs/hooks/use-editor-submit.d.ts.map +1 -1
  119. package/dist/cjs/hooks/use-editor-submit.js +91 -7
  120. package/dist/cjs/hooks/use-keyboard-handler.d.ts +5 -1
  121. package/dist/cjs/hooks/use-keyboard-handler.d.ts.map +1 -1
  122. package/dist/cjs/hooks/use-keyboard-handler.js +10 -1
  123. package/dist/cjs/hooks/use-selection-drag-copy.d.ts +55 -0
  124. package/dist/cjs/hooks/use-selection-drag-copy.d.ts.map +1 -0
  125. package/dist/cjs/hooks/use-selection-drag-copy.js +274 -0
  126. package/dist/cjs/hooks/use-selection-renderer.d.ts +8 -1
  127. package/dist/cjs/hooks/use-selection-renderer.d.ts.map +1 -1
  128. package/dist/cjs/hooks/use-selection-renderer.js +7 -2
  129. package/dist/cjs/hooks/use-selection.d.ts +59 -1
  130. package/dist/cjs/hooks/use-selection.d.ts.map +1 -1
  131. package/dist/cjs/hooks/use-selection.js +270 -61
  132. package/dist/cjs/index.d.ts +6 -1
  133. package/dist/cjs/index.d.ts.map +1 -1
  134. package/dist/cjs/index.js +5 -0
  135. package/dist/cjs/release-date.js +1 -1
  136. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  137. package/dist/cjs/types.d.ts +50 -1
  138. package/dist/cjs/types.d.ts.map +1 -1
  139. package/dist/esm/api/autocomplete.d.ts +42 -0
  140. package/dist/esm/api/autocomplete.d.ts.map +1 -0
  141. package/dist/esm/api/autocomplete.js +91 -0
  142. package/dist/esm/api/banded-ranges.d.ts.map +1 -1
  143. package/dist/esm/api/banded-ranges.js +52 -2
  144. package/dist/esm/api/error-checking.d.ts +82 -0
  145. package/dist/esm/api/error-checking.d.ts.map +1 -0
  146. package/dist/esm/api/error-checking.js +156 -0
  147. package/dist/esm/api/move-overwrite.d.ts +8 -2
  148. package/dist/esm/api/move-overwrite.d.ts.map +1 -1
  149. package/dist/esm/api/move-overwrite.js +17 -2
  150. package/dist/esm/api/selections.d.ts +2 -2
  151. package/dist/esm/api/validation.d.ts +39 -1
  152. package/dist/esm/api/validation.d.ts.map +1 -1
  153. package/dist/esm/api/validation.js +70 -0
  154. package/dist/esm/atoms/cell-input-context.atom.d.ts +4 -1
  155. package/dist/esm/atoms/cell-input-context.atom.d.ts.map +1 -1
  156. package/dist/esm/atoms/enter-key-direction.atom.d.ts +11 -0
  157. package/dist/esm/atoms/enter-key-direction.atom.d.ts.map +1 -0
  158. package/dist/esm/atoms/enter-key-direction.atom.js +8 -0
  159. package/dist/esm/atoms/index.d.ts +1 -0
  160. package/dist/esm/atoms/index.d.ts.map +1 -1
  161. package/dist/esm/atoms/index.js +1 -0
  162. package/dist/esm/atoms/paste-menu.atom.d.ts +22 -0
  163. package/dist/esm/atoms/paste-menu.atom.d.ts.map +1 -1
  164. package/dist/esm/atoms/paste-menu.atom.js +10 -1
  165. package/dist/esm/atoms/pick-list.atom.d.ts +15 -0
  166. package/dist/esm/atoms/pick-list.atom.d.ts.map +1 -0
  167. package/dist/esm/atoms/pick-list.atom.js +3 -0
  168. package/dist/esm/components/canvas-grid/index.d.ts.map +1 -1
  169. package/dist/esm/components/canvas-grid/index.js +239 -13
  170. package/dist/esm/components/canvas-grid/typings.d.ts +96 -11
  171. package/dist/esm/components/canvas-grid/typings.d.ts.map +1 -1
  172. package/dist/esm/components/cell/index.d.ts.map +1 -1
  173. package/dist/esm/components/cell/index.js +8 -9
  174. package/dist/esm/components/cell/typings.d.ts +9 -0
  175. package/dist/esm/components/cell/typings.d.ts.map +1 -1
  176. package/dist/esm/components/cell-editor/helpers.d.ts +22 -2
  177. package/dist/esm/components/cell-editor/helpers.d.ts.map +1 -1
  178. package/dist/esm/components/cell-editor/helpers.js +25 -7
  179. package/dist/esm/components/cell-editor/index.d.ts +7 -1
  180. package/dist/esm/components/cell-editor/index.d.ts.map +1 -1
  181. package/dist/esm/components/cell-editor/index.js +80 -9
  182. package/dist/esm/components/cell-indicator/index.d.ts +41 -0
  183. package/dist/esm/components/cell-indicator/index.d.ts.map +1 -0
  184. package/dist/esm/components/cell-indicator/index.js +76 -0
  185. package/dist/esm/components/cell-input/cell-input.d.ts +10 -2
  186. package/dist/esm/components/cell-input/cell-input.d.ts.map +1 -1
  187. package/dist/esm/components/cell-input/cell-input.js +5 -3
  188. package/dist/esm/components/cell-input/formula-bar-cell-input.d.ts.map +1 -1
  189. package/dist/esm/components/cell-input/formula-bar-cell-input.js +9 -2
  190. package/dist/esm/components/cell-structured/sparkline-math.d.ts +27 -1
  191. package/dist/esm/components/cell-structured/sparkline-math.d.ts.map +1 -1
  192. package/dist/esm/components/cell-structured/sparkline-math.js +35 -0
  193. package/dist/esm/components/cell-structured/sparkline.d.ts +1 -1
  194. package/dist/esm/components/cell-structured/sparkline.d.ts.map +1 -1
  195. package/dist/esm/components/cell-structured/sparkline.js +34 -88
  196. package/dist/esm/components/cell-structured/types.d.ts +6 -0
  197. package/dist/esm/components/cell-structured/types.d.ts.map +1 -1
  198. package/dist/esm/components/data-table-dialog/index.d.ts +22 -0
  199. package/dist/esm/components/data-table-dialog/index.d.ts.map +1 -0
  200. package/dist/esm/components/data-table-dialog/index.js +75 -0
  201. package/dist/esm/components/error-check-smart-tag/index.d.ts +27 -0
  202. package/dist/esm/components/error-check-smart-tag/index.d.ts.map +1 -0
  203. package/dist/esm/components/error-check-smart-tag/index.js +33 -0
  204. package/dist/esm/components/forecast-sheet-dialog/index.d.ts +26 -0
  205. package/dist/esm/components/forecast-sheet-dialog/index.d.ts.map +1 -0
  206. package/dist/esm/components/forecast-sheet-dialog/index.js +83 -0
  207. package/dist/esm/components/paste-special-dialog/index.d.ts +3 -3
  208. package/dist/esm/components/paste-special-dialog/index.d.ts.map +1 -1
  209. package/dist/esm/components/paste-special-dialog/index.js +58 -23
  210. package/dist/esm/components/protect-sheet-dialog/allow-edit-ranges-dialog.d.ts +57 -0
  211. package/dist/esm/components/protect-sheet-dialog/allow-edit-ranges-dialog.d.ts.map +1 -0
  212. package/dist/esm/components/protect-sheet-dialog/allow-edit-ranges-dialog.js +177 -0
  213. package/dist/esm/components/protect-sheet-dialog/constants.d.ts +3 -0
  214. package/dist/esm/components/protect-sheet-dialog/constants.d.ts.map +1 -0
  215. package/dist/esm/components/protect-sheet-dialog/constants.js +2 -0
  216. package/dist/esm/components/protect-sheet-dialog/index.d.ts +2 -2
  217. package/dist/esm/components/protect-sheet-dialog/index.d.ts.map +1 -1
  218. package/dist/esm/components/protect-sheet-dialog/index.js +3 -2
  219. package/dist/esm/components/scenario-manager-dialog/index.d.ts +51 -0
  220. package/dist/esm/components/scenario-manager-dialog/index.d.ts.map +1 -0
  221. package/dist/esm/components/scenario-manager-dialog/index.js +213 -0
  222. package/dist/esm/components/selection/index.d.ts +1 -1
  223. package/dist/esm/components/selection/index.d.ts.map +1 -1
  224. package/dist/esm/components/selection/index.js +9 -4
  225. package/dist/esm/components/selection/paste-menu.d.ts +14 -1
  226. package/dist/esm/components/selection/paste-menu.d.ts.map +1 -1
  227. package/dist/esm/components/selection/paste-menu.js +76 -8
  228. package/dist/esm/components/selection/paste-options.d.ts +28 -0
  229. package/dist/esm/components/selection/paste-options.d.ts.map +1 -0
  230. package/dist/esm/components/selection/paste-options.js +62 -0
  231. package/dist/esm/components/selection/types.d.ts +12 -1
  232. package/dist/esm/components/selection/types.d.ts.map +1 -1
  233. package/dist/esm/components/selection-drop-menu/index.d.ts +18 -0
  234. package/dist/esm/components/selection-drop-menu/index.d.ts.map +1 -0
  235. package/dist/esm/components/selection-drop-menu/index.js +56 -0
  236. package/dist/esm/components/solver-dialog/index.d.ts +57 -0
  237. package/dist/esm/components/solver-dialog/index.d.ts.map +1 -0
  238. package/dist/esm/components/solver-dialog/index.js +176 -0
  239. package/dist/esm/components/toolbar/sparkline-actions.d.ts +3 -2
  240. package/dist/esm/components/toolbar/sparkline-actions.d.ts.map +1 -1
  241. package/dist/esm/components/toolbar/sparkline-actions.js +6 -2
  242. package/dist/esm/components/toolbar/table-style-selector.d.ts.map +1 -1
  243. package/dist/esm/components/toolbar/table-style-selector.js +29 -3
  244. package/dist/esm/config.d.ts +5 -4
  245. package/dist/esm/config.d.ts.map +1 -1
  246. package/dist/esm/config.js +12 -8
  247. package/dist/esm/hooks/use-cell-renderer.d.ts +12 -1
  248. package/dist/esm/hooks/use-cell-renderer.d.ts.map +1 -1
  249. package/dist/esm/hooks/use-cell-renderer.js +5 -2
  250. package/dist/esm/hooks/use-copy-paste-cut.d.ts +36 -2
  251. package/dist/esm/hooks/use-copy-paste-cut.d.ts.map +1 -1
  252. package/dist/esm/hooks/use-copy-paste-cut.js +117 -6
  253. package/dist/esm/hooks/use-editable.d.ts +6 -0
  254. package/dist/esm/hooks/use-editable.d.ts.map +1 -1
  255. package/dist/esm/hooks/use-editor-submit.d.ts +45 -3
  256. package/dist/esm/hooks/use-editor-submit.d.ts.map +1 -1
  257. package/dist/esm/hooks/use-editor-submit.js +81 -6
  258. package/dist/esm/hooks/use-keyboard-handler.d.ts +5 -1
  259. package/dist/esm/hooks/use-keyboard-handler.d.ts.map +1 -1
  260. package/dist/esm/hooks/use-keyboard-handler.js +10 -1
  261. package/dist/esm/hooks/use-selection-drag-copy.d.ts +55 -0
  262. package/dist/esm/hooks/use-selection-drag-copy.d.ts.map +1 -0
  263. package/dist/esm/hooks/use-selection-drag-copy.js +245 -0
  264. package/dist/esm/hooks/use-selection-renderer.d.ts +8 -1
  265. package/dist/esm/hooks/use-selection-renderer.d.ts.map +1 -1
  266. package/dist/esm/hooks/use-selection-renderer.js +7 -2
  267. package/dist/esm/hooks/use-selection.d.ts +59 -1
  268. package/dist/esm/hooks/use-selection.d.ts.map +1 -1
  269. package/dist/esm/hooks/use-selection.js +245 -52
  270. package/dist/esm/index.d.ts +6 -1
  271. package/dist/esm/index.d.ts.map +1 -1
  272. package/dist/esm/index.js +5 -0
  273. package/dist/esm/release-date.js +1 -1
  274. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  275. package/dist/esm/types.d.ts +50 -1
  276. package/dist/esm/types.d.ts.map +1 -1
  277. package/dist/spreadsheet.min.css +1 -1
  278. package/package.json +6 -5
  279. package/dist/cjs/components/cell-error/index.d.ts +0 -14
  280. package/dist/cjs/components/cell-error/index.d.ts.map +0 -1
  281. package/dist/cjs/components/cell-error/index.js +0 -24
  282. package/dist/esm/components/cell-error/index.d.ts +0 -14
  283. package/dist/esm/components/cell-error/index.d.ts.map +0 -1
  284. package/dist/esm/components/cell-error/index.js +0 -18
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getDirectionFromKey = exports.isFillSelectionCommit = exports.shouldShowCalendarPopup = void 0;
3
+ exports.getDirectionFromKey = exports.getEnterKeyDirection = exports.isArrayFormulaCommit = exports.isFillSelectionCommit = exports.shouldShowCalendarPopup = void 0;
4
+ var tslib_1 = require("tslib");
4
5
  var grid_1 = require("@rowsncolumns/grid");
5
6
  var utils_1 = require("@rowsncolumns/utils");
6
7
  var shouldShowCalendarPopup = function (numberFormat) {
@@ -14,20 +15,43 @@ exports.shouldShowCalendarPopup = shouldShowCalendarPopup;
14
15
  * selected cell and the active cell does not move. Only `ctrlKey` counts — on macOS Cmd+Enter is
15
16
  * the in-cell line break (see `useEditorKeyDownPM`) and never reaches the submit path.
16
17
  */
17
- var isFillSelectionCommit = function (e) { return (e === null || e === void 0 ? void 0 : e.key) === "Enter" && e.ctrlKey === true; };
18
+ var isFillSelectionCommit = function (e) { return (e === null || e === void 0 ? void 0 : e.key) === "Enter" && e.ctrlKey === true && e.shiftKey !== true; };
18
19
  exports.isFillSelectionCommit = isFillSelectionCommit;
19
20
  /**
20
- * Get next cell direction from key code
21
+ * Excel's legacy array entry: Ctrl+Shift+Enter (Windows), ⇧⌘Return or ⌃⇧Return (Mac) commits the
22
+ * entry as one array formula over the selection ("Keyboard shortcuts in Excel").
23
+ */
24
+ var isArrayFormulaCommit = function (e) {
25
+ return (e === null || e === void 0 ? void 0 : e.key) === "Enter" &&
26
+ e.shiftKey === true &&
27
+ (e.ctrlKey === true || e.metaKey === true);
28
+ };
29
+ exports.isArrayFormulaCommit = isArrayFormulaCommit;
30
+ var ENTER_DIRECTIONS = {
31
+ down: [grid_1.Direction.Down, grid_1.Direction.Up],
32
+ up: [grid_1.Direction.Up, grid_1.Direction.Down],
33
+ right: [grid_1.Direction.Right, grid_1.Direction.Left],
34
+ left: [grid_1.Direction.Left, grid_1.Direction.Right],
35
+ };
36
+ /** Where Enter (`isShift`: Shift+Enter) moves the active cell; `null` when it stays. */
37
+ var getEnterKeyDirection = function (isShift, enterKeyDirection) {
38
+ if (enterKeyDirection === void 0) { enterKeyDirection = "down"; }
39
+ if (enterKeyDirection === "none")
40
+ return null;
41
+ var _a = tslib_1.__read(ENTER_DIRECTIONS[enterKeyDirection], 2), forward = _a[0], back = _a[1];
42
+ return isShift ? back : forward;
43
+ };
44
+ exports.getEnterKeyDirection = getEnterKeyDirection;
45
+ /**
46
+ * Get next cell direction from key code. Enter follows `enterKeyDirection`, and is `null` when
47
+ * Enter does not move.
21
48
  * @param code
22
49
  * @param isShift
23
50
  * @returns
24
51
  */
25
- var getDirectionFromKey = function (code, isShift) {
52
+ var getDirectionFromKey = function (code, isShift, enterKeyDirection) {
26
53
  if (code === "Enter") {
27
- if (isShift) {
28
- return grid_1.Direction.Up;
29
- }
30
- return grid_1.Direction.Down;
54
+ return (0, exports.getEnterKeyDirection)(isShift, enterKeyDirection);
31
55
  }
32
56
  if (code === "Tab") {
33
57
  if (isShift) {
@@ -147,6 +147,12 @@ export type CellEditorProps = SharedEditorProps & {
147
147
  * Mention dropdown component
148
148
  */
149
149
  MentionDropdownItemComponent?: CanvasGridProps["MentionDropdownItemComponent"];
150
+ /**
151
+ * Excel's AutoComplete for cell values: the text entries of the edited
152
+ * cell's column block (read once per edit, on the first keystroke). Omit to
153
+ * turn AutoComplete off.
154
+ */
155
+ getAutoCompleteEntries?: () => string[];
150
156
  };
151
- export declare const CellEditor: React.MemoExoticComponent<({ value, effectiveValue, isNewValue, onChange, sheetId, editingSheetId, cell, position, format, locale, formulaLocale, scale, autoFocus, maxWidth, maxHeight, containerWidth, onSubmit, onCancel, getNextFocusableCell, dataValidation, getRangeValues, getRangeValuesAsync, horizontalAlignment, editingSheetName, address, isScrolling, showFormulaHelp, onHideFormulaHelp, onShowFormulaHelp, onKeyDown, tokenizer, defaultBackgroundColor, defaultTextColor, theme, functionDescriptions, getNamedRanges, getTableNames, getTableColumnNames, getStructuredProperties, onRequestCalculate, editorBorderColor, isPointerDevice, SuggestionsDropdown, stickyEditor, defaultFontSizePoint, textFormatRuns, getMentions, getFunctionParameterSuggestions, shouldFetchFunctionParameters, MentionTagComponent, MentionDropdownItemComponent, navigationMode, readOnly, onCopy, onPaste, onCut, onBlur, }: CellEditorProps) => React.JSX.Element>;
157
+ export declare const CellEditor: React.MemoExoticComponent<({ value, effectiveValue, isNewValue, onChange, sheetId, editingSheetId, cell, position, format, locale, formulaLocale, scale, autoFocus, maxWidth, maxHeight, containerWidth, onSubmit, onCancel, getNextFocusableCell, dataValidation, getRangeValues, getRangeValuesAsync, horizontalAlignment, editingSheetName, address, isScrolling, showFormulaHelp, onHideFormulaHelp, onShowFormulaHelp, onKeyDown, tokenizer, defaultBackgroundColor, defaultTextColor, theme, functionDescriptions, getNamedRanges, getTableNames, getTableColumnNames, getStructuredProperties, onRequestCalculate, editorBorderColor, isPointerDevice, SuggestionsDropdown, stickyEditor, defaultFontSizePoint, textFormatRuns, getMentions, getFunctionParameterSuggestions, shouldFetchFunctionParameters, MentionTagComponent, MentionDropdownItemComponent, navigationMode, readOnly, onCopy, onPaste, onCut, onBlur, getAutoCompleteEntries, }: CellEditorProps) => React.JSX.Element>;
152
158
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/cell-editor/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/cell-editor/index.tsx"],"names":[],"mappings":"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"}
@@ -5,7 +5,9 @@ var tslib_1 = require("tslib");
5
5
  var ui_1 = require("@rowsncolumns/ui");
6
6
  var utils_1 = require("@rowsncolumns/utils");
7
7
  var react_1 = tslib_1.__importStar(require("react"));
8
+ var autocomplete_1 = require("../../api/autocomplete");
8
9
  var atoms_1 = require("../../atoms");
10
+ var enter_key_direction_atom_1 = require("../../atoms/enter-key-direction.atom");
9
11
  var active_editor_atom_1 = require("../../atoms/active-editor.atom");
10
12
  var formula_mode_atom_1 = require("../../atoms/formula-mode.atom");
11
13
  var formula_selection_state_atom_1 = require("../../atoms/formula-selection-state.atom");
@@ -21,17 +23,18 @@ var formula_result_preview_1 = require("./formula-result-preview");
21
23
  var helpers_2 = require("./helpers");
22
24
  var style_1 = require("./style");
23
25
  exports.CellEditor = (0, react_1.memo)(function (_a) {
24
- var _b, _c, _d, _e, _f, _g, _h, _j;
25
- var _k = _a.value, value = _k === void 0 ? "" : _k, effectiveValue = _a.effectiveValue, isNewValue = _a.isNewValue, onChange = _a.onChange, sheetId = _a.sheetId, editingSheetId = _a.editingSheetId, cell = _a.cell, position = _a.position, format = _a.format, locale = _a.locale, formulaLocale = _a.formulaLocale, _l = _a.scale, scale = _l === void 0 ? 1 : _l, autoFocus = _a.autoFocus, maxWidth = _a.maxWidth, maxHeight = _a.maxHeight, containerWidth = _a.containerWidth, onSubmit = _a.onSubmit, onCancel = _a.onCancel, getNextFocusableCell = _a.getNextFocusableCell, dataValidation = _a.dataValidation, getRangeValues = _a.getRangeValues, getRangeValuesAsync = _a.getRangeValuesAsync, horizontalAlignment = _a.horizontalAlignment, editingSheetName = _a.editingSheetName, address = _a.address, isScrolling = _a.isScrolling, showFormulaHelp = _a.showFormulaHelp, onHideFormulaHelp = _a.onHideFormulaHelp, onShowFormulaHelp = _a.onShowFormulaHelp, onKeyDown = _a.onKeyDown, tokenizer = _a.tokenizer, defaultBackgroundColor = _a.defaultBackgroundColor, defaultTextColor = _a.defaultTextColor, theme = _a.theme, functionDescriptions = _a.functionDescriptions, getNamedRanges = _a.getNamedRanges, getTableNames = _a.getTableNames, getTableColumnNames = _a.getTableColumnNames, getStructuredProperties = _a.getStructuredProperties, onRequestCalculate = _a.onRequestCalculate, editorBorderColor = _a.editorBorderColor, isPointerDevice = _a.isPointerDevice, SuggestionsDropdown = _a.SuggestionsDropdown, stickyEditor = _a.stickyEditor, defaultFontSizePoint = _a.defaultFontSizePoint, textFormatRuns = _a.textFormatRuns, getMentions = _a.getMentions, getFunctionParameterSuggestions = _a.getFunctionParameterSuggestions, shouldFetchFunctionParameters = _a.shouldFetchFunctionParameters, MentionTagComponent = _a.MentionTagComponent, MentionDropdownItemComponent = _a.MentionDropdownItemComponent, navigationMode = _a.navigationMode, _m = _a.readOnly, readOnly = _m === void 0 ? false : _m, onCopy = _a.onCopy, onPaste = _a.onPaste, onCut = _a.onCut, onBlur = _a.onBlur;
26
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
27
+ var _m = _a.value, value = _m === void 0 ? "" : _m, effectiveValue = _a.effectiveValue, isNewValue = _a.isNewValue, onChange = _a.onChange, sheetId = _a.sheetId, editingSheetId = _a.editingSheetId, cell = _a.cell, position = _a.position, format = _a.format, locale = _a.locale, formulaLocale = _a.formulaLocale, _o = _a.scale, scale = _o === void 0 ? 1 : _o, autoFocus = _a.autoFocus, maxWidth = _a.maxWidth, maxHeight = _a.maxHeight, containerWidth = _a.containerWidth, onSubmit = _a.onSubmit, onCancel = _a.onCancel, getNextFocusableCell = _a.getNextFocusableCell, dataValidation = _a.dataValidation, getRangeValues = _a.getRangeValues, getRangeValuesAsync = _a.getRangeValuesAsync, horizontalAlignment = _a.horizontalAlignment, editingSheetName = _a.editingSheetName, address = _a.address, isScrolling = _a.isScrolling, showFormulaHelp = _a.showFormulaHelp, onHideFormulaHelp = _a.onHideFormulaHelp, onShowFormulaHelp = _a.onShowFormulaHelp, onKeyDown = _a.onKeyDown, tokenizer = _a.tokenizer, defaultBackgroundColor = _a.defaultBackgroundColor, defaultTextColor = _a.defaultTextColor, theme = _a.theme, functionDescriptions = _a.functionDescriptions, getNamedRanges = _a.getNamedRanges, getTableNames = _a.getTableNames, getTableColumnNames = _a.getTableColumnNames, getStructuredProperties = _a.getStructuredProperties, onRequestCalculate = _a.onRequestCalculate, editorBorderColor = _a.editorBorderColor, isPointerDevice = _a.isPointerDevice, SuggestionsDropdown = _a.SuggestionsDropdown, stickyEditor = _a.stickyEditor, defaultFontSizePoint = _a.defaultFontSizePoint, textFormatRuns = _a.textFormatRuns, getMentions = _a.getMentions, getFunctionParameterSuggestions = _a.getFunctionParameterSuggestions, shouldFetchFunctionParameters = _a.shouldFetchFunctionParameters, MentionTagComponent = _a.MentionTagComponent, MentionDropdownItemComponent = _a.MentionDropdownItemComponent, navigationMode = _a.navigationMode, _p = _a.readOnly, readOnly = _p === void 0 ? false : _p, onCopy = _a.onCopy, onPaste = _a.onPaste, onCut = _a.onCut, onBlur = _a.onBlur, getAutoCompleteEntries = _a.getAutoCompleteEntries;
26
28
  var editorBorderOutlineColor = editorBorderColor
27
29
  ? (0, utils_1.lightenColor)(0.5, editorBorderColor)
28
30
  : undefined;
29
- var _o = position.x, x = _o === void 0 ? 0 : _o, _p = position.y, y = _p === void 0 ? 0 : _p, cellWidth = position.width, cellHeight = position.height;
31
+ var _q = position.x, x = _q === void 0 ? 0 : _q, _r = position.y, y = _r === void 0 ? 0 : _r, cellWidth = position.width, cellHeight = position.height;
30
32
  var formulaMode = (0, formula_mode_atom_1.useFormulaModeValue)();
31
33
  var editorRef = (0, react_1.useRef)(null);
32
34
  var setCellEditorInstance = (0, atoms_1.useSetCellEditorInstance)();
33
35
  var mergedEditorRef = (0, use_merge_refs_1.useMergeRefs)(editorRef, setCellEditorInstance);
34
36
  var setActiveEditor = (0, active_editor_atom_1.useSetActiveEditor)();
37
+ var enterKeyDirection = (0, enter_key_direction_atom_1.useEnterKeyDirection)();
35
38
  var setFormulaState = (0, formula_selection_state_atom_1.useSetFormulaSelectionState)();
36
39
  var activeEditor = (0, active_editor_atom_1.useActiveEditor)();
37
40
  var isActiveEditor = editorRef.current === activeEditor;
@@ -40,7 +43,7 @@ exports.CellEditor = (0, react_1.memo)(function (_a) {
40
43
  var numberFormat = format === null || format === void 0 ? void 0 : format.numberFormat;
41
44
  var backgroundColor = format === null || format === void 0 ? void 0 : format.backgroundColor;
42
45
  var indent = ((_b = format === null || format === void 0 ? void 0 : format.indent) !== null && _b !== void 0 ? _b : 0) + ((_c = format === null || format === void 0 ? void 0 : format.relativeIndent) !== null && _c !== void 0 ? _c : 0);
43
- var _q = textFormat !== null && textFormat !== void 0 ? textFormat : {}, color = _q.color, cellfontFamily = _q.fontFamily, italic = _q.italic, bold = _q.bold, underline = _q.underline;
46
+ var _s = textFormat !== null && textFormat !== void 0 ? textFormat : {}, color = _s.color, cellfontFamily = _s.fontFamily, italic = _s.italic, bold = _s.bold, underline = _s.underline;
44
47
  var fontSizePt = (_d = textFormat === null || textFormat === void 0 ? void 0 : textFormat.fontSize) !== null && _d !== void 0 ? _d : defaultFontSizePoint;
45
48
  // Fall back to the theme body font so the editor agrees with the painter
46
49
  // when the format did not come through the grid's effective-format merge.
@@ -81,7 +84,7 @@ exports.CellEditor = (0, react_1.memo)(function (_a) {
81
84
  // Get dimension of the text value
82
85
  var isInvisible = cellWidth === 0 && cellHeight === 0;
83
86
  var borderWidth = 2;
84
- var _r = tslib_1.__read((0, use_text_dimensions_1.useTextDimension)({
87
+ var _t = tslib_1.__read((0, use_text_dimensions_1.useTextDimension)({
85
88
  value: value,
86
89
  fontSize: fontSize,
87
90
  fontFamily: fontFamily,
@@ -91,7 +94,7 @@ exports.CellEditor = (0, react_1.memo)(function (_a) {
91
94
  width: cellWidth,
92
95
  height: cellHeight,
93
96
  borderWidth: borderWidth,
94
- }), 2), width = _r[0], height = _r[1];
97
+ }), 2), width = _t[0], height = _t[1];
95
98
  // Mounted ref
96
99
  (0, use_isomorphic_layout_effect_1.useIsomorphicLayoutEffect)(function () {
97
100
  isMounted.current = true;
@@ -131,25 +134,49 @@ exports.CellEditor = (0, react_1.memo)(function (_a) {
131
134
  }
132
135
  onChange === null || onChange === void 0 ? void 0 : onChange(newValue, textFormatRuns, editingSheetId, cell);
133
136
  }, [onChange, editingSheetId, cell]);
137
+ // The AutoComplete entry last written after the caret (see `getAutoComplete`).
138
+ var lastCompletionRef = (0, react_1.useRef)(undefined);
134
139
  // Submit handler
135
140
  var handleSubmit = (0, react_1.useCallback)(function (newValue, textFormatRuns, e) {
136
141
  if (!cell || (0, utils_1.isNil)(editingSheetId)) {
137
142
  return;
138
143
  }
144
+ // An accepted AutoComplete entry is committed as the column spells it
145
+ // ("ap" + Enter over "Apple" enters "Apple"), as Excel does.
146
+ var completion = lastCompletionRef.current;
147
+ lastCompletionRef.current = undefined;
148
+ var acceptsCompletion = completion !== undefined &&
149
+ newValue !== completion &&
150
+ newValue.toLowerCase() === completion.toLowerCase();
151
+ var submittedValue = acceptsCompletion ? completion : newValue;
152
+ var submittedRuns = acceptsCompletion ? undefined : textFormatRuns;
139
153
  // Ctrl+Enter commits into the whole selection and stays put (Excel); every other
140
154
  // commit key moves the active cell in its direction.
141
155
  var fillSelection = (0, helpers_2.isFillSelectionCommit)(e);
142
- var direction = e && !fillSelection
143
- ? (0, helpers_2.getDirectionFromKey)(e.key, e.shiftKey)
156
+ // Ctrl+Shift+Enter / ⇧⌘Return / ⌃⇧Return: a legacy array over the selection, in place.
157
+ var arrayFormula = (0, helpers_2.isArrayFormulaCommit)(e);
158
+ var direction = e && !fillSelection && !arrayFormula
159
+ ? (0, helpers_2.getDirectionFromKey)(e.key, e.shiftKey, enterKeyDirection)
144
160
  : undefined;
145
161
  var nextActiveCell = direction
146
162
  ? getNextFocusableCell === null || getNextFocusableCell === void 0 ? void 0 : getNextFocusableCell(editingSheetId, cell, direction)
147
163
  : undefined;
148
164
  // Submit value
149
- onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(newValue, textFormatRuns, editingSheetId, cell, nextActiveCell, undefined, fillSelection ? { fillSelection: true } : undefined);
165
+ onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(submittedValue, submittedRuns, editingSheetId, cell, nextActiveCell, undefined, arrayFormula
166
+ ? { arrayFormula: true }
167
+ : fillSelection
168
+ ? { fillSelection: true }
169
+ : undefined);
150
170
  // Reset active editor
151
171
  setActiveEditor(undefined);
152
- }, [onSubmit, editingSheetId, cell, getNextFocusableCell, setActiveEditor]);
172
+ }, [
173
+ onSubmit,
174
+ editingSheetId,
175
+ cell,
176
+ getNextFocusableCell,
177
+ setActiveEditor,
178
+ enterKeyDirection,
179
+ ]);
153
180
  // A read-only view has no caret for an arrow to move: the arrow leaves
154
181
  // the view and moves the active cell, as it does with no editor open.
155
182
  // Routed through the submit path, which a read-only view turns into
@@ -167,8 +194,53 @@ exports.CellEditor = (0, react_1.memo)(function (_a) {
167
194
  }, [readOnly, value, handleSubmit, onKeyDown]);
168
195
  // Prevent grid contextmenu from popping up
169
196
  var onContextMenu = (0, react_1.useCallback)(function (e) { return e.stopPropagation(); }, []);
197
+ // AutoComplete for cell values: the column block's entries, read once per
198
+ // edited cell on the first keystroke. Not over a list validation (its own
199
+ // dropdown offers the entries) and never in formula mode.
200
+ var autoCompleteRef = (0, react_1.useRef)(null);
201
+ var editingKey = cell
202
+ ? "".concat(editingSheetId !== null && editingSheetId !== void 0 ? editingSheetId : sheetId, ":").concat(cell.rowIndex, ":").concat(cell.columnIndex)
203
+ : "";
204
+ var hasListValidation = ((_h = dataValidation === null || dataValidation === void 0 ? void 0 : dataValidation.condition) === null || _h === void 0 ? void 0 : _h.type) === "ONE_OF_LIST" ||
205
+ ((_j = dataValidation === null || dataValidation === void 0 ? void 0 : dataValidation.condition) === null || _j === void 0 ? void 0 : _j.type) === "ONE_OF_RANGE";
206
+ var getAutoComplete = (0, react_1.useCallback)(function (typed) {
207
+ var _a;
208
+ lastCompletionRef.current = undefined;
209
+ if (!getAutoCompleteEntries || readOnly || hasListValidation) {
210
+ return undefined;
211
+ }
212
+ if (((_a = autoCompleteRef.current) === null || _a === void 0 ? void 0 : _a.key) !== editingKey) {
213
+ autoCompleteRef.current = {
214
+ key: editingKey,
215
+ entries: getAutoCompleteEntries(),
216
+ };
217
+ }
218
+ var match = (0, autocomplete_1.findAutoCompleteMatch)(typed, autoCompleteRef.current.entries);
219
+ lastCompletionRef.current = match;
220
+ return match;
221
+ }, [getAutoCompleteEntries, readOnly, hasListValidation, editingKey]);
222
+ // Excel's Pick From Drop-down List (Alt+↓): the column's entries as this
223
+ // cell's dropdown, until the editor moves to another cell.
224
+ var _u = tslib_1.__read((0, atoms_1.usePickList)(), 2), pickList = _u[0], setPickList = _u[1];
225
+ var pickListOptions = pickList &&
226
+ cell &&
227
+ pickList.sheetId === (editingSheetId !== null && editingSheetId !== void 0 ? editingSheetId : sheetId) &&
228
+ pickList.cell.rowIndex === cell.rowIndex &&
229
+ pickList.cell.columnIndex === cell.columnIndex
230
+ ? pickList.entries.map(function (title) { return ({ title: title }); })
231
+ : undefined;
232
+ (0, react_1.useEffect)(function () {
233
+ if (pickList && !pickListOptions) {
234
+ setPickList(null);
235
+ }
236
+ }, [pickList, pickListOptions, setPickList]);
237
+ var handleCancel = (0, react_1.useCallback)(function (e) {
238
+ setPickList(null);
239
+ onCancel === null || onCancel === void 0 ? void 0 : onCancel(e);
240
+ }, [onCancel, setPickList]);
170
241
  // Dropdown options
171
- var _s = tslib_1.__read((0, react_1.useState)(undefined), 2), options = _s[0], setOptions = _s[1];
242
+ var _v = tslib_1.__read((0, react_1.useState)(undefined), 2), validationOptions = _v[0], setOptions = _v[1];
243
+ var options = validationOptions !== null && validationOptions !== void 0 ? validationOptions : pickListOptions;
172
244
  (0, react_1.useEffect)(function () {
173
245
  var _a, _b, _c;
174
246
  var isActive = true;
@@ -301,11 +373,11 @@ exports.CellEditor = (0, react_1.memo)(function (_a) {
301
373
  : "",
302
374
  address)) : null,
303
375
  formulaMode && onRequestCalculate ? (react_1.default.createElement(formula_result_preview_1.FormulaResultPreview, { value: value, formulaLocale: formulaLocale, onRequestCalculate: onRequestCalculate })) : null)) : null,
304
- react_1.default.createElement(ui_1.ProseMirrorEditor, { ref: mergedEditorRef, formulaMode: formulaMode, autoFocus: autoFocus, value: value, isNewValue: isNewValue, onFocus: handleFocus, onBlur: onBlur, onChange: handleChange, onKeyDown: handleKeyDown, onSubmit: handleSubmit, onCancel: onCancel, disabled: readOnly, tokenizer: tokenizer, formulaLocale: formulaLocale, onFormulaStateChange: handleFormulaStateChange, name: "celleditor", showDropdown: isActiveEditor && !readOnly, isActive: isActiveEditor, dropdownStyles: style_1.dropdownStyles, options: readOnly ? undefined : options, isOptionSelected: (options === null || options === void 0 ? void 0 : options.length) && !readOnly ? isOptionSelected : undefined, functionDescriptions: functionDescriptions, getNamedRanges: getNamedRanges, getTableNames: getTableNames, getTableColumnNames: getTableColumnNames, showFormulaHelp: showFormulaHelp, onHideFormulaHelp: onHideFormulaHelp, onShowFormulaHelp: onShowFormulaHelp, SuggestionsDropdown: SuggestionsDropdown, stickyEditor: stickyEditor, textFormatRuns: textFormatRuns, resolveRunColor: resolveRunColor, getMentions: getMentions, getFunctionParameterSuggestions: getFunctionParameterSuggestions, shouldFetchFunctionParameters: shouldFetchFunctionParameters, MentionTagComponent: MentionTagComponent, MentionDropdownItemComponent: MentionDropdownItemComponent, getStructuredProperties: getStructuredProperties, navigationMode: navigationMode, onCopy: onCopy, onCut: onCut, onPaste: onPaste, cellFontFamily: formulaMode ? undefined : cellfontFamily !== null && cellfontFamily !== void 0 ? cellfontFamily : undefined }),
376
+ react_1.default.createElement(ui_1.ProseMirrorEditor, { ref: mergedEditorRef, formulaMode: formulaMode, autoFocus: autoFocus, value: value, isNewValue: isNewValue, onFocus: handleFocus, onBlur: onBlur, onChange: handleChange, onKeyDown: handleKeyDown, onSubmit: handleSubmit, onCancel: handleCancel, disabled: readOnly, tokenizer: tokenizer, formulaLocale: formulaLocale, locale: locale, onFormulaStateChange: handleFormulaStateChange, name: "celleditor", showDropdown: isActiveEditor && !readOnly, isActive: isActiveEditor, dropdownStyles: style_1.dropdownStyles, options: readOnly ? undefined : options, isOptionSelected: (options === null || options === void 0 ? void 0 : options.length) && !readOnly ? isOptionSelected : undefined, functionDescriptions: functionDescriptions, getNamedRanges: getNamedRanges, getTableNames: getTableNames, getTableColumnNames: getTableColumnNames, showFormulaHelp: showFormulaHelp, onHideFormulaHelp: onHideFormulaHelp, onShowFormulaHelp: onShowFormulaHelp, SuggestionsDropdown: SuggestionsDropdown, stickyEditor: stickyEditor, textFormatRuns: textFormatRuns, resolveRunColor: resolveRunColor, getMentions: getMentions, getFunctionParameterSuggestions: getFunctionParameterSuggestions, shouldFetchFunctionParameters: shouldFetchFunctionParameters, MentionTagComponent: MentionTagComponent, MentionDropdownItemComponent: MentionDropdownItemComponent, getStructuredProperties: getStructuredProperties, navigationMode: navigationMode, onCopy: onCopy, onCut: onCut, onPaste: onPaste, cellFontFamily: formulaMode ? undefined : cellfontFamily !== null && cellfontFamily !== void 0 ? cellfontFamily : undefined, getAutoComplete: getAutoCompleteEntries ? getAutoComplete : undefined }),
305
377
  !formulaMode &&
306
378
  !readOnly &&
307
379
  isPointerDevice &&
308
- (0, helpers_2.shouldShowCalendarPopup)(numberFormat) ? (react_1.default.createElement(calendar_popup_1.CalendarPopup, { value: (_j = (_h = effectiveValue === null || effectiveValue === void 0 ? void 0 : effectiveValue.nv) !== null && _h !== void 0 ? _h : effectiveValue === null || effectiveValue === void 0 ? void 0 : effectiveValue.numberValue) !== null && _j !== void 0 ? _j : undefined, onEscapeKeyDown: function () { var _a; return (_a = editorRef.current) === null || _a === void 0 ? void 0 : _a.focus(); }, onSubmit: function (value) {
380
+ (0, helpers_2.shouldShowCalendarPopup)(numberFormat) ? (react_1.default.createElement(calendar_popup_1.CalendarPopup, { value: (_l = (_k = effectiveValue === null || effectiveValue === void 0 ? void 0 : effectiveValue.nv) !== null && _k !== void 0 ? _k : effectiveValue === null || effectiveValue === void 0 ? void 0 : effectiveValue.numberValue) !== null && _l !== void 0 ? _l : undefined, onEscapeKeyDown: function () { var _a; return (_a = editorRef.current) === null || _a === void 0 ? void 0 : _a.focus(); }, onSubmit: function (value) {
309
381
  return handleSubmit((0, utils_1.ssfFormat)((0, utils_1.getDefaultDateFormat)(locale), value));
310
382
  } })) : null));
311
383
  });
@@ -0,0 +1,41 @@
1
+ import type { Context as CanvasContext } from "konva/lib/Context";
2
+ import React from "react";
3
+ /**
4
+ * Excel's in-cell markers, painted at the current zoom (`scale`):
5
+ * - a note: red ◥ in the top-right corner;
6
+ * - a threaded comment: a purple speech-bubble tab in the top-right corner;
7
+ * - an error-checking flag: green ◤ in the top-left corner (formula errors, numbers stored as text);
8
+ * - "Circle Invalid Data": a red ellipse around a cell that fails its data validation.
9
+ *
10
+ * Excel does not mark a cell that fails data validation unless Data → Data Validation →
11
+ * Circle Invalid Data is on.
12
+ */
13
+ type CornerProps = {
14
+ /** The cell's top-left corner on the canvas. */
15
+ x: number;
16
+ y: number;
17
+ width: number;
18
+ height: number;
19
+ scale: number;
20
+ };
21
+ /** Red ◥ in the cell's top-right corner. */
22
+ export declare const paintNoteIndicator: (context: Pick<CanvasContext, "beginPath" | "moveTo" | "lineTo" | "closePath" | "fill" | "setAttr">, { x, y, width, scale }: Omit<CornerProps, "height">) => void;
23
+ /**
24
+ * Purple threaded-comment marker in the cell's top-right corner: a small speech bubble tucked in
25
+ * the corner, its tail pointing down-left into the cell.
26
+ */
27
+ export declare const paintCommentIndicator: (context: Pick<CanvasContext, "beginPath" | "moveTo" | "lineTo" | "closePath" | "fill" | "setAttr">, { x, y, width, scale }: Omit<CornerProps, "height">) => void;
28
+ /** Green ◤ in the cell's top-left corner. */
29
+ export declare const paintErrorIndicator: (context: Pick<CanvasContext, "beginPath" | "moveTo" | "lineTo" | "closePath" | "fill" | "setAttr">, { x, y, scale }: Omit<CornerProps, "height" | "width">) => void;
30
+ /** Red ellipse around the cell ("Circle Invalid Data"). */
31
+ export declare const paintInvalidCircle: (context: Pick<CanvasContext, "beginPath" | "ellipse" | "stroke" | "setAttr">, { x, y, width, height, scale }: CornerProps) => void;
32
+ export type CellIndicatorsProps = CornerProps & {
33
+ showNote?: boolean;
34
+ showComment?: boolean;
35
+ showErrorIndicator?: boolean;
36
+ circleInvalid?: boolean;
37
+ };
38
+ /** Every marker a cell carries, in one Konva shape. */
39
+ export declare const CellIndicators: ({ x, y, width, height, scale, showNote, showComment, showErrorIndicator, circleInvalid, }: CellIndicatorsProps) => React.JSX.Element | null;
40
+ export {};
41
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/cell-indicator/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B;;;;;;;;;GASG;AAEH,KAAK,WAAW,GAAG;IACjB,gDAAgD;IAChD,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,4CAA4C;AAC5C,eAAO,MAAM,kBAAkB,GAC7B,SAAS,IAAI,CAAC,aAAa,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC,EAClG,wBAAwB,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,SAWpD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAChC,SAAS,IAAI,CAAC,aAAa,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC,EAClG,wBAAwB,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,SAgBpD,CAAC;AAEF,6CAA6C;AAC7C,eAAO,MAAM,mBAAmB,GAC9B,SAAS,IAAI,CAAC,aAAa,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC,EAClG,iBAAiB,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,SAUvD,CAAC;AAEF,2DAA2D;AAC3D,eAAO,MAAM,kBAAkB,GAC7B,SAAS,IAAI,CAAC,aAAa,EAAE,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC,EAC5E,gCAAgC,WAAW,SAe5C,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,cAAc,GAAI,2FAU5B,mBAAmB,6BAyBrB,CAAC"}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CellIndicators = exports.paintInvalidCircle = exports.paintErrorIndicator = exports.paintCommentIndicator = exports.paintNoteIndicator = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var react_1 = tslib_1.__importDefault(require("react"));
6
+ var react_konva_1 = require("react-konva");
7
+ var config_1 = require("../../config");
8
+ /** Red ◥ in the cell's top-right corner. */
9
+ var paintNoteIndicator = function (context, _a) {
10
+ var x = _a.x, y = _a.y, width = _a.width, scale = _a.scale;
11
+ var size = config_1.INDICATOR_SIZE * scale;
12
+ var right = x + width;
13
+ context.beginPath();
14
+ context.setAttr("fillStyle", config_1.NOTE_COLOR);
15
+ context.moveTo(right - size, y);
16
+ context.lineTo(right, y);
17
+ context.lineTo(right, y + size);
18
+ context.closePath();
19
+ context.fill();
20
+ };
21
+ exports.paintNoteIndicator = paintNoteIndicator;
22
+ /**
23
+ * Purple threaded-comment marker in the cell's top-right corner: a small speech bubble tucked in
24
+ * the corner, its tail pointing down-left into the cell.
25
+ */
26
+ var paintCommentIndicator = function (context, _a) {
27
+ var x = _a.x, y = _a.y, width = _a.width, scale = _a.scale;
28
+ var size = config_1.INDICATOR_SIZE * scale;
29
+ var right = x + width;
30
+ var bubbleHeight = size * 0.75;
31
+ var tail = size * 0.35;
32
+ context.beginPath();
33
+ context.setAttr("fillStyle", config_1.COMMENT_COLOR);
34
+ context.moveTo(right - size, y);
35
+ context.lineTo(right, y);
36
+ context.lineTo(right, y + bubbleHeight);
37
+ context.lineTo(right - size + tail, y + bubbleHeight);
38
+ // Tail
39
+ context.lineTo(right - size, y + size);
40
+ context.closePath();
41
+ context.fill();
42
+ };
43
+ exports.paintCommentIndicator = paintCommentIndicator;
44
+ /** Green ◤ in the cell's top-left corner. */
45
+ var paintErrorIndicator = function (context, _a) {
46
+ var x = _a.x, y = _a.y, scale = _a.scale;
47
+ var size = config_1.INDICATOR_SIZE * scale;
48
+ context.beginPath();
49
+ context.setAttr("fillStyle", config_1.ERROR_COLOR);
50
+ context.moveTo(x, y);
51
+ context.lineTo(x + size, y);
52
+ context.lineTo(x, y + size);
53
+ context.closePath();
54
+ context.fill();
55
+ };
56
+ exports.paintErrorIndicator = paintErrorIndicator;
57
+ /** Red ellipse around the cell ("Circle Invalid Data"). */
58
+ var paintInvalidCircle = function (context, _a) {
59
+ var x = _a.x, y = _a.y, width = _a.width, height = _a.height, scale = _a.scale;
60
+ context.beginPath();
61
+ context.setAttr("strokeStyle", config_1.INVALID_COLOR);
62
+ context.setAttr("lineWidth", 1.5 * scale);
63
+ context.ellipse(x + width / 2, y + height / 2, width / 2 + 3 * scale, height / 2 + 2 * scale, 0, 0, Math.PI * 2);
64
+ context.stroke();
65
+ };
66
+ exports.paintInvalidCircle = paintInvalidCircle;
67
+ /** Every marker a cell carries, in one Konva shape. */
68
+ var CellIndicators = function (_a) {
69
+ var x = _a.x, y = _a.y, width = _a.width, height = _a.height, scale = _a.scale, showNote = _a.showNote, showComment = _a.showComment, showErrorIndicator = _a.showErrorIndicator, circleInvalid = _a.circleInvalid;
70
+ if (!showNote && !showComment && !showErrorIndicator && !circleInvalid) {
71
+ return null;
72
+ }
73
+ return (react_1.default.createElement(react_konva_1.Shape, { sceneFunc: function (context) {
74
+ // Inside the 1 px grid line at the cell's top / left edge.
75
+ var top = y + 1;
76
+ if (showErrorIndicator) {
77
+ (0, exports.paintErrorIndicator)(context, { x: x + 1, y: top, scale: scale });
78
+ }
79
+ if (showComment) {
80
+ (0, exports.paintCommentIndicator)(context, { x: x, y: top, width: width, scale: scale });
81
+ }
82
+ else if (showNote) {
83
+ (0, exports.paintNoteIndicator)(context, { x: x, y: top, width: width, scale: scale });
84
+ }
85
+ if (circleInvalid) {
86
+ (0, exports.paintInvalidCircle)(context, { x: x, y: y, width: width, height: height, scale: scale });
87
+ }
88
+ }, listening: false, perfectDrawEnabled: false }));
89
+ };
90
+ exports.CellIndicators = CellIndicators;
@@ -9,7 +9,11 @@ export type CellInputProps = RichTextEditorAttribues & {
9
9
  fontFamily?: string;
10
10
  fontSize?: number;
11
11
  lineHeight?: number;
12
- onSubmit?(value: string, textFormatRuns?: TextFormatRun[], direction?: Direction): void;
12
+ /**
13
+ * `direction` is where the commit key moves the active cell: `null` for an Enter that stays put
14
+ * (`enterKeyDirection: "none"`), `undefined` for a commit without a key.
15
+ */
16
+ onSubmit?(value: string, textFormatRuns?: TextFormatRun[], direction?: Direction | null, e?: React.KeyboardEvent<HTMLDivElement>): void;
13
17
  onChange: ProseMirrorEditorProps["onChange"];
14
18
  onCancel?(e?: React.KeyboardEvent<HTMLDivElement>): void;
15
19
  persistFocus?: boolean;
@@ -75,7 +79,11 @@ export declare const CellInput: React.NamedExoticComponent<RichTextEditorAttribu
75
79
  fontFamily?: string;
76
80
  fontSize?: number;
77
81
  lineHeight?: number;
78
- onSubmit?(value: string, textFormatRuns?: TextFormatRun[], direction?: Direction): void;
82
+ /**
83
+ * `direction` is where the commit key moves the active cell: `null` for an Enter that stays put
84
+ * (`enterKeyDirection: "none"`), `undefined` for a commit without a key.
85
+ */
86
+ onSubmit?(value: string, textFormatRuns?: TextFormatRun[], direction?: Direction | null, e?: React.KeyboardEvent<HTMLDivElement>): void;
79
87
  onChange: ProseMirrorEditorProps["onChange"];
80
88
  onCancel?(e?: React.KeyboardEvent<HTMLDivElement>): void;
81
89
  persistFocus?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"cell-input.d.ts","sourceRoot":"","sources":["../../../../components/cell-input/cell-input.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cell-input.d.ts","sourceRoot":"","sources":["../../../../components/cell-input/cell-input.tsx"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ var sheet_context_atom_1 = require("../../atoms/sheet-context.atom");
12
12
  var show_formula_help_atom_1 = require("../../atoms/show-formula-help.atom");
13
13
  var config_1 = require("../../config");
14
14
  var helpers_1 = require("../../helpers");
15
+ var enter_key_direction_atom_1 = require("../../atoms/enter-key-direction.atom");
15
16
  var helpers_2 = require("../cell-editor/helpers");
16
17
  var style_1 = require("./style");
17
18
  exports.CellInput = (0, react_2.memo)((0, react_2.forwardRef)(function (_a, forwardedRef) {
@@ -20,6 +21,7 @@ exports.CellInput = (0, react_2.memo)((0, react_2.forwardRef)(function (_a, forw
20
21
  var editorRef = (0, react_2.useRef)(null);
21
22
  var isActiveEditor = editorRef.current === (0, active_editor_atom_1.useActiveEditor)();
22
23
  var setActiveEditor = (0, active_editor_atom_1.useSetActiveEditor)();
24
+ var enterKeyDirection = (0, enter_key_direction_atom_1.useEnterKeyDirection)();
23
25
  var setFormulaState = (0, formula_selection_state_atom_1.useSetFormulaSelectionState)();
24
26
  // Show formula help dropdown
25
27
  var showFormulaHelp = (0, show_formula_help_atom_1.useShowFormulaHelpValue)();
@@ -52,12 +54,12 @@ exports.CellInput = (0, react_2.memo)((0, react_2.forwardRef)(function (_a, forw
52
54
  }, [onFocus, setActiveEditor]);
53
55
  // Keydown handler
54
56
  var handleSubmit = (0, react_2.useCallback)(function (newValue, textFormatRuns, e) {
55
- var direction = e && (0, helpers_2.getDirectionFromKey)(e.key, e.shiftKey);
57
+ var direction = e && (0, helpers_2.getDirectionFromKey)(e.key, e.shiftKey, enterKeyDirection);
56
58
  // Submit value
57
- onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(newValue, textFormatRuns, direction);
59
+ onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(newValue, textFormatRuns, direction, e);
58
60
  // Reset active editor
59
61
  setActiveEditor(undefined);
60
- }, [onSubmit, setActiveEditor]);
62
+ }, [onSubmit, setActiveEditor, enterKeyDirection]);
61
63
  var handleCancel = (0, react_2.useCallback)(function (e) {
62
64
  onCancel === null || onCancel === void 0 ? void 0 : onCancel(e);
63
65
  // Reset active editor
@@ -1 +1 @@
1
- {"version":3,"file":"formula-bar-cell-input.d.ts","sourceRoot":"","sources":["../../../../components/cell-input/formula-bar-cell-input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,oBAAoB,CAAC;AAGnE,OAAO,KAA6C,MAAM,OAAO,CAAC;AAalE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGnD,KAAK,oBAAoB,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,UAAU,CAAC,GAAG;IACvE;;OAEG;IACH,UAAU,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAClC;;OAEG;IACH,oBAAoB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC5C;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,eAAe,uIASvB,oBAAoB,uBAgLxB,CAAC"}
1
+ {"version":3,"file":"formula-bar-cell-input.d.ts","sourceRoot":"","sources":["../../../../components/cell-input/formula-bar-cell-input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,oBAAoB,CAAC;AAGnE,OAAO,KAA6C,MAAM,OAAO,CAAC;AAclE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGnD,KAAK,oBAAoB,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,UAAU,CAAC,GAAG;IACvE;;OAEG;IACH,UAAU,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAClC;;OAEG;IACH,oBAAoB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC5C;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,eAAe,uIASvB,oBAAoB,uBAwLxB,CAAC"}
@@ -10,6 +10,7 @@ var editing_cell_atom_1 = require("../../atoms/editing-cell.atom");
10
10
  var sheet_context_atom_1 = require("../../atoms/sheet-context.atom");
11
11
  var formula_bar_editor_value_atom_1 = require("../../atoms/formula-bar-editor-value.atom");
12
12
  var use_merge_refs_1 = require("../../hooks/use-merge.refs");
13
+ var helpers_1 = require("../cell-editor/helpers");
13
14
  var cell_input_1 = require("./cell-input");
14
15
  exports.FormulaBarInput = (0, react_1.memo)(function (_a) {
15
16
  var _b;
@@ -83,9 +84,15 @@ exports.FormulaBarInput = (0, react_1.memo)(function (_a) {
83
84
  }
84
85
  }, [sheetId, editingCell, makeEditable, isEditInProgress]);
85
86
  // User submits a value
86
- var handleSubmit = (0, react_1.useCallback)(function (value, textFormatRuns, direction) {
87
+ var handleSubmit = (0, react_1.useCallback)(function (value, textFormatRuns, direction, e) {
87
88
  if (editingCell) {
88
- submitEditor === null || submitEditor === void 0 ? void 0 : submitEditor(value, textFormatRuns, editingSheetId, editingCell, getNextFocusableCell === null || getNextFocusableCell === void 0 ? void 0 : getNextFocusableCell(editingSheetId, editingCell, direction));
89
+ // Ctrl+Shift+Enter / ⇧⌘Return from the bar enters an array, in place (Excel).
90
+ var arrayFormula = (0, helpers_1.isArrayFormulaCommit)(e);
91
+ submitEditor === null || submitEditor === void 0 ? void 0 : submitEditor(value, textFormatRuns, editingSheetId, editingCell,
92
+ // `null`: an Enter that commits in place ("After pressing Enter, move selection" off).
93
+ arrayFormula || direction === null
94
+ ? undefined
95
+ : getNextFocusableCell === null || getNextFocusableCell === void 0 ? void 0 : getNextFocusableCell(editingSheetId, editingCell, direction), undefined, arrayFormula ? { arrayFormula: true } : undefined);
89
96
  }
90
97
  returnFocusToSheet();
91
98
  }, [
@@ -1,4 +1,4 @@
1
- import type { CellInterface, SparkLineResult, SparkLineResultOptions, StructuredResult } from "@rowsncolumns/common-types";
1
+ import type { CellInterface, ColorIndex, SparkLineResult, SparkLineResultOptions, StructuredResult } from "@rowsncolumns/common-types";
2
2
  /**
3
3
  * Pure geometry/series helpers for the in-cell sparkline painter.
4
4
  * Kept free of canvas/react imports so the math is unit-testable.
@@ -74,4 +74,30 @@ export declare const sparklineGroupAxisFor: (sparkline: SparkLineResult, getGrou
74
74
  * min/max are drawn pinned at the axis edge, like Excel.
75
75
  */
76
76
  export declare const clampToExtents: (value: number, min: number, max: number) => number;
77
+ /** The colours a sparkline paints with where its options carry none. */
78
+ export type SparklineDefaultColors = {
79
+ series: string;
80
+ negative: string;
81
+ markers: string;
82
+ high: string;
83
+ low: string;
84
+ first: string;
85
+ last: string;
86
+ };
87
+ /** A theme slot and Excel tint, as `<x14:color* theme="N" tint="…"/>` writes it. */
88
+ export type SparklineThemeColor = {
89
+ theme: ColorIndex;
90
+ tint?: number;
91
+ };
92
+ /**
93
+ * Excel's Sparkline Style 1, what Excel gives every new sparkline group: Accent 1 darker 50% for the
94
+ * series and markers, Accent 2 for negative points, Accent 1 for high/low, Accent 1 lighter 40% for
95
+ * first/last. Theme references, so they resolve through the workbook's theme.
96
+ */
97
+ export declare const EXCEL_DEFAULT_SPARKLINE_STYLE: Record<keyof SparklineDefaultColors, SparklineThemeColor>;
98
+ /** Style 1 under the Office 2013–2022 theme (Accent 1 #4472C4, Accent 2 #ED7D31): the painter's
99
+ * fallback when no theme resolves it. */
100
+ export declare const OFFICE_DEFAULT_SPARKLINE_COLORS: SparklineDefaultColors;
101
+ /** Excel's default sparkline colours resolved through a theme (`resolve` maps a theme colour to CSS). */
102
+ export declare const resolveDefaultSparklineColors: (resolve: (color: SparklineThemeColor) => string | undefined) => SparklineDefaultColors;
77
103
  //# sourceMappingURL=sparkline-math.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sparkline-math.d.ts","sourceRoot":"","sources":["../../../../components/cell-structured/sparkline-math.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,4BAA4B,CAAC;AAEpC;;;GAGG;AAEH,MAAM,MAAM,aAAa,GAAG;IAC1B;;;;OAIG;IACH,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;;;;;;OAMG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAKF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB,GACjC,MAAM,aAAa,CAAC,OAAO,CAAC,EAC5B,UAAU,sBAAsB,KAC/B,aAAa,EA0Bf,CAAC;AAEF,gGAAgG;AAChG,MAAM,MAAM,oBAAoB,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,uBAAuB,GAClC,OAAO,aAAa,CAAC,aAAa,CAAC,EACnC,SAAS,sBAAsB,GAAG,SAAS,EAC3C,WAAW,OAAO,EAClB,QAAQ,oBAAoB,KAC3B;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CA2B5B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,GACpC,YAAY,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EACjD,SAAS,sBAAsB,GAAG,SAAS,EAC3C,WAAW,OAAO,KACjB,oBAAoB,GAAG,SAgBzB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAChC,WAAW,eAAe,EAC1B,UAAU,MAAM;IAAE,OAAO,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,aAAa,CAAA;KAAE,CAAC,CAAA;CAAE,GAAG,SAAS,EAC/E,oBAAoB,CAAC,IAAI,EAAE,aAAa,KAAK,gBAAgB,GAAG,SAAS,GAAG,IAAI,KAC/E,oBAAoB,GAAG,SAmBzB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,GACzB,OAAO,MAAM,EACb,KAAK,MAAM,EACX,KAAK,MAAM,KACV,MAA6C,CAAC"}
1
+ {"version":3,"file":"sparkline-math.d.ts","sourceRoot":"","sources":["../../../../components/cell-structured/sparkline-math.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,4BAA4B,CAAC;AAEpC;;;GAGG;AAEH,MAAM,MAAM,aAAa,GAAG;IAC1B;;;;OAIG;IACH,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;;;;;;OAMG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAKF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB,GACjC,MAAM,aAAa,CAAC,OAAO,CAAC,EAC5B,UAAU,sBAAsB,KAC/B,aAAa,EA0Bf,CAAC;AAEF,gGAAgG;AAChG,MAAM,MAAM,oBAAoB,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,uBAAuB,GAClC,OAAO,aAAa,CAAC,aAAa,CAAC,EACnC,SAAS,sBAAsB,GAAG,SAAS,EAC3C,WAAW,OAAO,EAClB,QAAQ,oBAAoB,KAC3B;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CA2B5B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,GACpC,YAAY,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EACjD,SAAS,sBAAsB,GAAG,SAAS,EAC3C,WAAW,OAAO,KACjB,oBAAoB,GAAG,SAgBzB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAChC,WAAW,eAAe,EAC1B,UAAU,MAAM;IAAE,OAAO,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,aAAa,CAAA;KAAE,CAAC,CAAA;CAAE,GAAG,SAAS,EAC/E,oBAAoB,CAAC,IAAI,EAAE,aAAa,KAAK,gBAAgB,GAAG,SAAS,GAAG,IAAI,KAC/E,oBAAoB,GAAG,SAmBzB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,GACzB,OAAO,MAAM,EACb,KAAK,MAAM,EACX,KAAK,MAAM,KACV,MAA6C,CAAC;AAEjD,wEAAwE;AACxE,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,oFAAoF;AACpF,MAAM,MAAM,mBAAmB,GAAG;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvE;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,EAAE,MAAM,CAChD,MAAM,sBAAsB,EAC5B,mBAAmB,CASpB,CAAC;AAEF;yCACyC;AACzC,eAAO,MAAM,+BAA+B,EAAE,sBAQ7C,CAAC;AAEF,yGAAyG;AACzG,eAAO,MAAM,6BAA6B,GACxC,SAAS,CAAC,KAAK,EAAE,mBAAmB,KAAK,MAAM,GAAG,SAAS,KAC1D,sBAOF,CAAC"}