@rowsncolumns/spreadsheet 10.6.4 → 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 (308) 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/alignment.d.ts +25 -0
  35. package/dist/cjs/components/cell/alignment.d.ts.map +1 -1
  36. package/dist/cjs/components/cell/alignment.js +39 -1
  37. package/dist/cjs/components/cell/cell-background.d.ts +16 -0
  38. package/dist/cjs/components/cell/cell-background.d.ts.map +1 -1
  39. package/dist/cjs/components/cell/cell-background.js +141 -54
  40. package/dist/cjs/components/cell/cell-text-runs.d.ts +12 -5
  41. package/dist/cjs/components/cell/cell-text-runs.d.ts.map +1 -1
  42. package/dist/cjs/components/cell/cell-text-runs.js +18 -20
  43. package/dist/cjs/components/cell/index.d.ts.map +1 -1
  44. package/dist/cjs/components/cell/index.js +26 -21
  45. package/dist/cjs/components/cell/typings.d.ts +9 -0
  46. package/dist/cjs/components/cell/typings.d.ts.map +1 -1
  47. package/dist/cjs/components/cell-editor/helpers.d.ts +22 -2
  48. package/dist/cjs/components/cell-editor/helpers.d.ts.map +1 -1
  49. package/dist/cjs/components/cell-editor/helpers.js +32 -8
  50. package/dist/cjs/components/cell-editor/index.d.ts +7 -1
  51. package/dist/cjs/components/cell-editor/index.d.ts.map +1 -1
  52. package/dist/cjs/components/cell-editor/index.js +85 -13
  53. package/dist/cjs/components/cell-indicator/index.d.ts +41 -0
  54. package/dist/cjs/components/cell-indicator/index.d.ts.map +1 -0
  55. package/dist/cjs/components/cell-indicator/index.js +90 -0
  56. package/dist/cjs/components/cell-input/cell-input.d.ts +10 -2
  57. package/dist/cjs/components/cell-input/cell-input.d.ts.map +1 -1
  58. package/dist/cjs/components/cell-input/cell-input.js +5 -3
  59. package/dist/cjs/components/cell-input/formula-bar-cell-input.d.ts.map +1 -1
  60. package/dist/cjs/components/cell-input/formula-bar-cell-input.js +9 -2
  61. package/dist/cjs/components/cell-structured/sparkline-math.d.ts +27 -1
  62. package/dist/cjs/components/cell-structured/sparkline-math.d.ts.map +1 -1
  63. package/dist/cjs/components/cell-structured/sparkline-math.js +48 -1
  64. package/dist/cjs/components/cell-structured/sparkline.d.ts +1 -1
  65. package/dist/cjs/components/cell-structured/sparkline.d.ts.map +1 -1
  66. package/dist/cjs/components/cell-structured/sparkline.js +36 -92
  67. package/dist/cjs/components/cell-structured/types.d.ts +6 -0
  68. package/dist/cjs/components/cell-structured/types.d.ts.map +1 -1
  69. package/dist/cjs/components/data-table-dialog/index.d.ts +22 -0
  70. package/dist/cjs/components/data-table-dialog/index.d.ts.map +1 -0
  71. package/dist/cjs/components/data-table-dialog/index.js +93 -0
  72. package/dist/cjs/components/error-check-smart-tag/index.d.ts +27 -0
  73. package/dist/cjs/components/error-check-smart-tag/index.d.ts.map +1 -0
  74. package/dist/cjs/components/error-check-smart-tag/index.js +39 -0
  75. package/dist/cjs/components/forecast-sheet-dialog/index.d.ts +26 -0
  76. package/dist/cjs/components/forecast-sheet-dialog/index.d.ts.map +1 -0
  77. package/dist/cjs/components/forecast-sheet-dialog/index.js +92 -0
  78. package/dist/cjs/components/paste-special-dialog/index.d.ts +3 -3
  79. package/dist/cjs/components/paste-special-dialog/index.d.ts.map +1 -1
  80. package/dist/cjs/components/paste-special-dialog/index.js +61 -23
  81. package/dist/cjs/components/protect-sheet-dialog/allow-edit-ranges-dialog.d.ts +57 -0
  82. package/dist/cjs/components/protect-sheet-dialog/allow-edit-ranges-dialog.d.ts.map +1 -0
  83. package/dist/cjs/components/protect-sheet-dialog/allow-edit-ranges-dialog.js +196 -0
  84. package/dist/cjs/components/protect-sheet-dialog/constants.d.ts +3 -0
  85. package/dist/cjs/components/protect-sheet-dialog/constants.d.ts.map +1 -0
  86. package/dist/cjs/components/protect-sheet-dialog/constants.js +5 -0
  87. package/dist/cjs/components/protect-sheet-dialog/index.d.ts +2 -2
  88. package/dist/cjs/components/protect-sheet-dialog/index.d.ts.map +1 -1
  89. package/dist/cjs/components/protect-sheet-dialog/index.js +5 -3
  90. package/dist/cjs/components/scenario-manager-dialog/index.d.ts +51 -0
  91. package/dist/cjs/components/scenario-manager-dialog/index.d.ts.map +1 -0
  92. package/dist/cjs/components/scenario-manager-dialog/index.js +257 -0
  93. package/dist/cjs/components/selection/index.d.ts +1 -1
  94. package/dist/cjs/components/selection/index.d.ts.map +1 -1
  95. package/dist/cjs/components/selection/index.js +9 -4
  96. package/dist/cjs/components/selection/paste-menu.d.ts +14 -1
  97. package/dist/cjs/components/selection/paste-menu.d.ts.map +1 -1
  98. package/dist/cjs/components/selection/paste-menu.js +78 -6
  99. package/dist/cjs/components/selection/paste-options.d.ts +28 -0
  100. package/dist/cjs/components/selection/paste-options.d.ts.map +1 -0
  101. package/dist/cjs/components/selection/paste-options.js +70 -0
  102. package/dist/cjs/components/selection/types.d.ts +12 -1
  103. package/dist/cjs/components/selection/types.d.ts.map +1 -1
  104. package/dist/cjs/components/selection-drop-menu/index.d.ts +18 -0
  105. package/dist/cjs/components/selection-drop-menu/index.d.ts.map +1 -0
  106. package/dist/cjs/components/selection-drop-menu/index.js +62 -0
  107. package/dist/cjs/components/solver-dialog/index.d.ts +57 -0
  108. package/dist/cjs/components/solver-dialog/index.d.ts.map +1 -0
  109. package/dist/cjs/components/solver-dialog/index.js +204 -0
  110. package/dist/cjs/components/toolbar/sparkline-actions.d.ts +3 -2
  111. package/dist/cjs/components/toolbar/sparkline-actions.d.ts.map +1 -1
  112. package/dist/cjs/components/toolbar/sparkline-actions.js +6 -2
  113. package/dist/cjs/components/toolbar/table-style-selector.d.ts.map +1 -1
  114. package/dist/cjs/components/toolbar/table-style-selector.js +33 -2
  115. package/dist/cjs/config.d.ts +5 -4
  116. package/dist/cjs/config.d.ts.map +1 -1
  117. package/dist/cjs/config.js +13 -9
  118. package/dist/cjs/helpers.d.ts +5 -0
  119. package/dist/cjs/helpers.d.ts.map +1 -1
  120. package/dist/cjs/helpers.js +8 -4
  121. package/dist/cjs/hooks/use-cell-renderer.d.ts +12 -1
  122. package/dist/cjs/hooks/use-cell-renderer.d.ts.map +1 -1
  123. package/dist/cjs/hooks/use-cell-renderer.js +6 -3
  124. package/dist/cjs/hooks/use-copy-paste-cut.d.ts +36 -2
  125. package/dist/cjs/hooks/use-copy-paste-cut.d.ts.map +1 -1
  126. package/dist/cjs/hooks/use-copy-paste-cut.js +131 -5
  127. package/dist/cjs/hooks/use-editable.d.ts +6 -0
  128. package/dist/cjs/hooks/use-editable.d.ts.map +1 -1
  129. package/dist/cjs/hooks/use-editor-submit.d.ts +45 -3
  130. package/dist/cjs/hooks/use-editor-submit.d.ts.map +1 -1
  131. package/dist/cjs/hooks/use-editor-submit.js +91 -7
  132. package/dist/cjs/hooks/use-keyboard-handler.d.ts +5 -1
  133. package/dist/cjs/hooks/use-keyboard-handler.d.ts.map +1 -1
  134. package/dist/cjs/hooks/use-keyboard-handler.js +10 -1
  135. package/dist/cjs/hooks/use-selection-drag-copy.d.ts +55 -0
  136. package/dist/cjs/hooks/use-selection-drag-copy.d.ts.map +1 -0
  137. package/dist/cjs/hooks/use-selection-drag-copy.js +274 -0
  138. package/dist/cjs/hooks/use-selection-renderer.d.ts +8 -1
  139. package/dist/cjs/hooks/use-selection-renderer.d.ts.map +1 -1
  140. package/dist/cjs/hooks/use-selection-renderer.js +7 -2
  141. package/dist/cjs/hooks/use-selection.d.ts +59 -1
  142. package/dist/cjs/hooks/use-selection.d.ts.map +1 -1
  143. package/dist/cjs/hooks/use-selection.js +270 -61
  144. package/dist/cjs/index.d.ts +6 -1
  145. package/dist/cjs/index.d.ts.map +1 -1
  146. package/dist/cjs/index.js +5 -0
  147. package/dist/cjs/release-date.js +1 -1
  148. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  149. package/dist/cjs/types.d.ts +50 -1
  150. package/dist/cjs/types.d.ts.map +1 -1
  151. package/dist/esm/api/autocomplete.d.ts +42 -0
  152. package/dist/esm/api/autocomplete.d.ts.map +1 -0
  153. package/dist/esm/api/autocomplete.js +91 -0
  154. package/dist/esm/api/banded-ranges.d.ts.map +1 -1
  155. package/dist/esm/api/banded-ranges.js +52 -2
  156. package/dist/esm/api/error-checking.d.ts +82 -0
  157. package/dist/esm/api/error-checking.d.ts.map +1 -0
  158. package/dist/esm/api/error-checking.js +156 -0
  159. package/dist/esm/api/move-overwrite.d.ts +8 -2
  160. package/dist/esm/api/move-overwrite.d.ts.map +1 -1
  161. package/dist/esm/api/move-overwrite.js +17 -2
  162. package/dist/esm/api/selections.d.ts +2 -2
  163. package/dist/esm/api/validation.d.ts +39 -1
  164. package/dist/esm/api/validation.d.ts.map +1 -1
  165. package/dist/esm/api/validation.js +70 -0
  166. package/dist/esm/atoms/cell-input-context.atom.d.ts +4 -1
  167. package/dist/esm/atoms/cell-input-context.atom.d.ts.map +1 -1
  168. package/dist/esm/atoms/enter-key-direction.atom.d.ts +11 -0
  169. package/dist/esm/atoms/enter-key-direction.atom.d.ts.map +1 -0
  170. package/dist/esm/atoms/enter-key-direction.atom.js +8 -0
  171. package/dist/esm/atoms/index.d.ts +1 -0
  172. package/dist/esm/atoms/index.d.ts.map +1 -1
  173. package/dist/esm/atoms/index.js +1 -0
  174. package/dist/esm/atoms/paste-menu.atom.d.ts +22 -0
  175. package/dist/esm/atoms/paste-menu.atom.d.ts.map +1 -1
  176. package/dist/esm/atoms/paste-menu.atom.js +10 -1
  177. package/dist/esm/atoms/pick-list.atom.d.ts +15 -0
  178. package/dist/esm/atoms/pick-list.atom.d.ts.map +1 -0
  179. package/dist/esm/atoms/pick-list.atom.js +3 -0
  180. package/dist/esm/components/canvas-grid/index.d.ts.map +1 -1
  181. package/dist/esm/components/canvas-grid/index.js +239 -13
  182. package/dist/esm/components/canvas-grid/typings.d.ts +96 -11
  183. package/dist/esm/components/canvas-grid/typings.d.ts.map +1 -1
  184. package/dist/esm/components/cell/alignment.d.ts +25 -0
  185. package/dist/esm/components/cell/alignment.d.ts.map +1 -1
  186. package/dist/esm/components/cell/alignment.js +33 -0
  187. package/dist/esm/components/cell/cell-background.d.ts +16 -0
  188. package/dist/esm/components/cell/cell-background.d.ts.map +1 -1
  189. package/dist/esm/components/cell/cell-background.js +106 -36
  190. package/dist/esm/components/cell/cell-text-runs.d.ts +12 -5
  191. package/dist/esm/components/cell/cell-text-runs.d.ts.map +1 -1
  192. package/dist/esm/components/cell/cell-text-runs.js +17 -22
  193. package/dist/esm/components/cell/index.d.ts.map +1 -1
  194. package/dist/esm/components/cell/index.js +25 -20
  195. package/dist/esm/components/cell/typings.d.ts +9 -0
  196. package/dist/esm/components/cell/typings.d.ts.map +1 -1
  197. package/dist/esm/components/cell-editor/helpers.d.ts +22 -2
  198. package/dist/esm/components/cell-editor/helpers.d.ts.map +1 -1
  199. package/dist/esm/components/cell-editor/helpers.js +25 -7
  200. package/dist/esm/components/cell-editor/index.d.ts +7 -1
  201. package/dist/esm/components/cell-editor/index.d.ts.map +1 -1
  202. package/dist/esm/components/cell-editor/index.js +80 -9
  203. package/dist/esm/components/cell-indicator/index.d.ts +41 -0
  204. package/dist/esm/components/cell-indicator/index.d.ts.map +1 -0
  205. package/dist/esm/components/cell-indicator/index.js +76 -0
  206. package/dist/esm/components/cell-input/cell-input.d.ts +10 -2
  207. package/dist/esm/components/cell-input/cell-input.d.ts.map +1 -1
  208. package/dist/esm/components/cell-input/cell-input.js +5 -3
  209. package/dist/esm/components/cell-input/formula-bar-cell-input.d.ts.map +1 -1
  210. package/dist/esm/components/cell-input/formula-bar-cell-input.js +9 -2
  211. package/dist/esm/components/cell-structured/sparkline-math.d.ts +27 -1
  212. package/dist/esm/components/cell-structured/sparkline-math.d.ts.map +1 -1
  213. package/dist/esm/components/cell-structured/sparkline-math.js +35 -0
  214. package/dist/esm/components/cell-structured/sparkline.d.ts +1 -1
  215. package/dist/esm/components/cell-structured/sparkline.d.ts.map +1 -1
  216. package/dist/esm/components/cell-structured/sparkline.js +34 -88
  217. package/dist/esm/components/cell-structured/types.d.ts +6 -0
  218. package/dist/esm/components/cell-structured/types.d.ts.map +1 -1
  219. package/dist/esm/components/data-table-dialog/index.d.ts +22 -0
  220. package/dist/esm/components/data-table-dialog/index.d.ts.map +1 -0
  221. package/dist/esm/components/data-table-dialog/index.js +75 -0
  222. package/dist/esm/components/error-check-smart-tag/index.d.ts +27 -0
  223. package/dist/esm/components/error-check-smart-tag/index.d.ts.map +1 -0
  224. package/dist/esm/components/error-check-smart-tag/index.js +33 -0
  225. package/dist/esm/components/forecast-sheet-dialog/index.d.ts +26 -0
  226. package/dist/esm/components/forecast-sheet-dialog/index.d.ts.map +1 -0
  227. package/dist/esm/components/forecast-sheet-dialog/index.js +83 -0
  228. package/dist/esm/components/paste-special-dialog/index.d.ts +3 -3
  229. package/dist/esm/components/paste-special-dialog/index.d.ts.map +1 -1
  230. package/dist/esm/components/paste-special-dialog/index.js +58 -23
  231. package/dist/esm/components/protect-sheet-dialog/allow-edit-ranges-dialog.d.ts +57 -0
  232. package/dist/esm/components/protect-sheet-dialog/allow-edit-ranges-dialog.d.ts.map +1 -0
  233. package/dist/esm/components/protect-sheet-dialog/allow-edit-ranges-dialog.js +177 -0
  234. package/dist/esm/components/protect-sheet-dialog/constants.d.ts +3 -0
  235. package/dist/esm/components/protect-sheet-dialog/constants.d.ts.map +1 -0
  236. package/dist/esm/components/protect-sheet-dialog/constants.js +2 -0
  237. package/dist/esm/components/protect-sheet-dialog/index.d.ts +2 -2
  238. package/dist/esm/components/protect-sheet-dialog/index.d.ts.map +1 -1
  239. package/dist/esm/components/protect-sheet-dialog/index.js +3 -2
  240. package/dist/esm/components/scenario-manager-dialog/index.d.ts +51 -0
  241. package/dist/esm/components/scenario-manager-dialog/index.d.ts.map +1 -0
  242. package/dist/esm/components/scenario-manager-dialog/index.js +213 -0
  243. package/dist/esm/components/selection/index.d.ts +1 -1
  244. package/dist/esm/components/selection/index.d.ts.map +1 -1
  245. package/dist/esm/components/selection/index.js +9 -4
  246. package/dist/esm/components/selection/paste-menu.d.ts +14 -1
  247. package/dist/esm/components/selection/paste-menu.d.ts.map +1 -1
  248. package/dist/esm/components/selection/paste-menu.js +76 -8
  249. package/dist/esm/components/selection/paste-options.d.ts +28 -0
  250. package/dist/esm/components/selection/paste-options.d.ts.map +1 -0
  251. package/dist/esm/components/selection/paste-options.js +62 -0
  252. package/dist/esm/components/selection/types.d.ts +12 -1
  253. package/dist/esm/components/selection/types.d.ts.map +1 -1
  254. package/dist/esm/components/selection-drop-menu/index.d.ts +18 -0
  255. package/dist/esm/components/selection-drop-menu/index.d.ts.map +1 -0
  256. package/dist/esm/components/selection-drop-menu/index.js +56 -0
  257. package/dist/esm/components/solver-dialog/index.d.ts +57 -0
  258. package/dist/esm/components/solver-dialog/index.d.ts.map +1 -0
  259. package/dist/esm/components/solver-dialog/index.js +176 -0
  260. package/dist/esm/components/toolbar/sparkline-actions.d.ts +3 -2
  261. package/dist/esm/components/toolbar/sparkline-actions.d.ts.map +1 -1
  262. package/dist/esm/components/toolbar/sparkline-actions.js +6 -2
  263. package/dist/esm/components/toolbar/table-style-selector.d.ts.map +1 -1
  264. package/dist/esm/components/toolbar/table-style-selector.js +29 -3
  265. package/dist/esm/config.d.ts +5 -4
  266. package/dist/esm/config.d.ts.map +1 -1
  267. package/dist/esm/config.js +12 -8
  268. package/dist/esm/helpers.d.ts +5 -0
  269. package/dist/esm/helpers.d.ts.map +1 -1
  270. package/dist/esm/helpers.js +8 -4
  271. package/dist/esm/hooks/use-cell-renderer.d.ts +12 -1
  272. package/dist/esm/hooks/use-cell-renderer.d.ts.map +1 -1
  273. package/dist/esm/hooks/use-cell-renderer.js +5 -2
  274. package/dist/esm/hooks/use-copy-paste-cut.d.ts +36 -2
  275. package/dist/esm/hooks/use-copy-paste-cut.d.ts.map +1 -1
  276. package/dist/esm/hooks/use-copy-paste-cut.js +117 -6
  277. package/dist/esm/hooks/use-editable.d.ts +6 -0
  278. package/dist/esm/hooks/use-editable.d.ts.map +1 -1
  279. package/dist/esm/hooks/use-editor-submit.d.ts +45 -3
  280. package/dist/esm/hooks/use-editor-submit.d.ts.map +1 -1
  281. package/dist/esm/hooks/use-editor-submit.js +81 -6
  282. package/dist/esm/hooks/use-keyboard-handler.d.ts +5 -1
  283. package/dist/esm/hooks/use-keyboard-handler.d.ts.map +1 -1
  284. package/dist/esm/hooks/use-keyboard-handler.js +10 -1
  285. package/dist/esm/hooks/use-selection-drag-copy.d.ts +55 -0
  286. package/dist/esm/hooks/use-selection-drag-copy.d.ts.map +1 -0
  287. package/dist/esm/hooks/use-selection-drag-copy.js +245 -0
  288. package/dist/esm/hooks/use-selection-renderer.d.ts +8 -1
  289. package/dist/esm/hooks/use-selection-renderer.d.ts.map +1 -1
  290. package/dist/esm/hooks/use-selection-renderer.js +7 -2
  291. package/dist/esm/hooks/use-selection.d.ts +59 -1
  292. package/dist/esm/hooks/use-selection.d.ts.map +1 -1
  293. package/dist/esm/hooks/use-selection.js +245 -52
  294. package/dist/esm/index.d.ts +6 -1
  295. package/dist/esm/index.d.ts.map +1 -1
  296. package/dist/esm/index.js +5 -0
  297. package/dist/esm/release-date.js +1 -1
  298. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  299. package/dist/esm/types.d.ts +50 -1
  300. package/dist/esm/types.d.ts.map +1 -1
  301. package/dist/spreadsheet.min.css +1 -1
  302. package/package.json +6 -5
  303. package/dist/cjs/components/cell-error/index.d.ts +0 -14
  304. package/dist/cjs/components/cell-error/index.d.ts.map +0 -1
  305. package/dist/cjs/components/cell-error/index.js +0 -24
  306. package/dist/esm/components/cell-error/index.d.ts +0 -14
  307. package/dist/esm/components/cell-error/index.d.ts.map +0 -1
  308. package/dist/esm/components/cell-error/index.js +0 -18
@@ -1,5 +1,5 @@
1
1
  import type { CellInterface, GridRange } from "@rowsncolumns/grid";
2
- import type { BooleanCondition, CellData, ConditionType, ConditionValue, CustomFormulaResult, DataValidationRule, DataValidationRuleAlert, FilterCriteria, Maybe, ProtectedRange, SheetProtection, TimePeriodTypes } from "../types";
2
+ import type { AllowEditRange, BooleanCondition, CellData, ConditionType, ConditionValue, CustomFormulaResult, DataValidationRule, DataValidationRuleAlert, FilterCriteria, Maybe, ProtectedRange, SheetProtection, TimePeriodTypes } from "../types";
3
3
  export type CheckBooleanRuleOptions = {
4
4
  locale?: string;
5
5
  };
@@ -50,6 +50,28 @@ export declare const showValidationDropdownArrow: (rule?: DataValidationRule | n
50
50
  * @returns
51
51
  */
52
52
  export declare const isProtectedCell: (sheetId: number, cell: CellInterface, protectedRanges: ProtectedRange[]) => boolean;
53
+ /**
54
+ * The Excel Allow Edit Range covering `cell` on `sheetId`, preferring one this
55
+ * session may already edit (no password, or unlocked). `undefined` when no
56
+ * range covers the cell.
57
+ */
58
+ export declare const getAllowEditRangeAt: (sheetId: number, cell: CellInterface, allowEditRanges: Maybe<AllowEditRange[]> | undefined) => AllowEditRange | undefined;
59
+ /**
60
+ * What worksheet protection lets a typed edit of `cell` do (Excel's rules):
61
+ * `"edit"` for an unprotected sheet, an unlocked cell or a cell of an open
62
+ * Allow Edit Range; `"locked"` for any other locked cell; `{ unlock }` for a
63
+ * cell of a password-protected range this session has not unlocked (Excel's
64
+ * Unlock Range prompt).
65
+ */
66
+ export declare const resolveProtectedCellEdit: ({ sheetId, cell, sheetProtection, cellProtection, allowEditRanges, }: {
67
+ sheetId: number;
68
+ cell: CellInterface;
69
+ sheetProtection: Maybe<SheetProtection> | undefined;
70
+ cellProtection: Maybe<Pick<NonNullable<CellData["protection"]>, "locked">>;
71
+ allowEditRanges?: Maybe<AllowEditRange[]>;
72
+ }) => "edit" | "locked" | {
73
+ unlock: AllowEditRange;
74
+ };
53
75
  /**
54
76
  * Check if the entire sheet is protected
55
77
  * @param sheetId
@@ -86,6 +108,22 @@ export declare const isActionBlockedBySheetProtection: (sheetProtection: Maybe<S
86
108
  * protection is inactive.
87
109
  */
88
110
  export declare const isCellLockedUnderProtection: (sheetProtection: Maybe<SheetProtection> | undefined, cellProtection: Maybe<Pick<NonNullable<CellData["protection"]>, "locked">>) => boolean;
111
+ /**
112
+ * Past this many cells a selection on a sheet that refuses locked cells is
113
+ * refused without a per-cell scan (it would cover a locked default cell in
114
+ * practice — the engine's protection gate uses the same reasoning).
115
+ */
116
+ export declare const SELECTABLE_SCAN_CELL_CAP = 100000;
117
+ /**
118
+ * Excel's "Select locked cells" / "Select unlocked cells" (support.microsoft.com
119
+ * "Protect a worksheet"): whether the selection may cover `range` on a sheet.
120
+ * Only an ACTIVE protection restricts anything. `selectUnlockedCells` set
121
+ * (`true` prohibits) means no cell can be selected — Excel clears both boxes
122
+ * together. `selectLockedCells` set means the range must hold only unlocked
123
+ * cells (`protection.locked === false`; a cell is locked by default). Absent
124
+ * flags take the OOXML schema default: allowed.
125
+ */
126
+ export declare const isRangeSelectableUnderProtection: (sheetProtection: Maybe<SheetProtection> | undefined, range: GridRange, getCellProtection: (rowIndex: number, columnIndex: number) => Maybe<Pick<NonNullable<CellData["protection"]>, "locked">> | undefined) => boolean;
89
127
  /**
90
128
  * Whether a cell's contents are hidden from the formula bar: Excel's Format
91
129
  * Cells ▸ Protection ▸ Hidden takes effect only while the sheet is protected.
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../api/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../api/validation.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.decideValidationCommit = exports.shouldUsePreviousValue = exports.getProtectedRange = exports.isProtectedRange = exports.isCellFormulaHiddenUnderProtection = exports.isCellLockedUnderProtection = exports.isActionBlockedBySheetProtection = exports.isSheetProtectionActive = exports.isProtectedSheet = exports.isProtectedCell = exports.showValidationDropdownArrow = exports.validationValueToDate = exports.passesAggregateFilterThreshold = exports.resolveAggregateFilterThreshold = exports.isAggregateFilterCondition = exports.AGGREGATE_FILTER_CONDITION_TYPES = exports.checkFilterCondition = exports.checkFilterRule = exports.checkBooleanRule = void 0;
3
+ exports.decideValidationCommit = exports.shouldUsePreviousValue = exports.getProtectedRange = exports.isProtectedRange = exports.isCellFormulaHiddenUnderProtection = exports.isRangeSelectableUnderProtection = exports.SELECTABLE_SCAN_CELL_CAP = exports.isCellLockedUnderProtection = exports.isActionBlockedBySheetProtection = exports.isSheetProtectionActive = exports.isProtectedSheet = exports.resolveProtectedCellEdit = exports.getAllowEditRangeAt = exports.isProtectedCell = exports.showValidationDropdownArrow = exports.validationValueToDate = exports.passesAggregateFilterThreshold = exports.resolveAggregateFilterThreshold = exports.isAggregateFilterCondition = exports.AGGREGATE_FILTER_CONDITION_TYPES = exports.checkFilterCondition = exports.checkFilterRule = exports.checkBooleanRule = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  var grid_1 = require("@rowsncolumns/grid");
6
6
  var utils_1 = require("@rowsncolumns/utils");
@@ -515,6 +515,54 @@ var isProtectedCell = function (sheetId, cell, protectedRanges) {
515
515
  });
516
516
  };
517
517
  exports.isProtectedCell = isProtectedCell;
518
+ /**
519
+ * The Excel Allow Edit Range covering `cell` on `sheetId`, preferring one this
520
+ * session may already edit (no password, or unlocked). `undefined` when no
521
+ * range covers the cell.
522
+ */
523
+ var getAllowEditRangeAt = function (sheetId, cell, allowEditRanges) {
524
+ var e_1, _a;
525
+ var found;
526
+ try {
527
+ for (var _b = tslib_1.__values(allowEditRanges !== null && allowEditRanges !== void 0 ? allowEditRanges : []), _c = _b.next(); !_c.done; _c = _b.next()) {
528
+ var range = _c.value;
529
+ if (range.sheetId !== sheetId)
530
+ continue;
531
+ if (!range.ranges.some(function (r) { return (0, grid_1.isCellWithinBounds)(cell, r); }))
532
+ continue;
533
+ if (range.unlocked)
534
+ return range;
535
+ found !== null && found !== void 0 ? found : (found = range);
536
+ }
537
+ }
538
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
539
+ finally {
540
+ try {
541
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
542
+ }
543
+ finally { if (e_1) throw e_1.error; }
544
+ }
545
+ return found;
546
+ };
547
+ exports.getAllowEditRangeAt = getAllowEditRangeAt;
548
+ /**
549
+ * What worksheet protection lets a typed edit of `cell` do (Excel's rules):
550
+ * `"edit"` for an unprotected sheet, an unlocked cell or a cell of an open
551
+ * Allow Edit Range; `"locked"` for any other locked cell; `{ unlock }` for a
552
+ * cell of a password-protected range this session has not unlocked (Excel's
553
+ * Unlock Range prompt).
554
+ */
555
+ var resolveProtectedCellEdit = function (_a) {
556
+ var sheetId = _a.sheetId, cell = _a.cell, sheetProtection = _a.sheetProtection, cellProtection = _a.cellProtection, allowEditRanges = _a.allowEditRanges;
557
+ if (!(0, exports.isCellLockedUnderProtection)(sheetProtection, cellProtection)) {
558
+ return "edit";
559
+ }
560
+ var range = (0, exports.getAllowEditRangeAt)(sheetId, cell, allowEditRanges);
561
+ if (!range)
562
+ return "locked";
563
+ return range.unlocked ? "edit" : { unlock: range };
564
+ };
565
+ exports.resolveProtectedCellEdit = resolveProtectedCellEdit;
518
566
  /**
519
567
  * Check if the entire sheet is protected
520
568
  * @param sheetId
@@ -570,6 +618,44 @@ var isCellLockedUnderProtection = function (sheetProtection, cellProtection) {
570
618
  return (0, exports.isSheetProtectionActive)(sheetProtection) && (cellProtection === null || cellProtection === void 0 ? void 0 : cellProtection.locked) !== false;
571
619
  };
572
620
  exports.isCellLockedUnderProtection = isCellLockedUnderProtection;
621
+ /**
622
+ * Past this many cells a selection on a sheet that refuses locked cells is
623
+ * refused without a per-cell scan (it would cover a locked default cell in
624
+ * practice — the engine's protection gate uses the same reasoning).
625
+ */
626
+ exports.SELECTABLE_SCAN_CELL_CAP = 100000;
627
+ /**
628
+ * Excel's "Select locked cells" / "Select unlocked cells" (support.microsoft.com
629
+ * "Protect a worksheet"): whether the selection may cover `range` on a sheet.
630
+ * Only an ACTIVE protection restricts anything. `selectUnlockedCells` set
631
+ * (`true` prohibits) means no cell can be selected — Excel clears both boxes
632
+ * together. `selectLockedCells` set means the range must hold only unlocked
633
+ * cells (`protection.locked === false`; a cell is locked by default). Absent
634
+ * flags take the OOXML schema default: allowed.
635
+ */
636
+ var isRangeSelectableUnderProtection = function (sheetProtection, range, getCellProtection) {
637
+ var _a;
638
+ if (!(0, exports.isSheetProtectionActive)(sheetProtection))
639
+ return true;
640
+ if ((sheetProtection === null || sheetProtection === void 0 ? void 0 : sheetProtection.selectUnlockedCells) === true)
641
+ return false;
642
+ if ((sheetProtection === null || sheetProtection === void 0 ? void 0 : sheetProtection.selectLockedCells) !== true)
643
+ return true;
644
+ var rows = range.endRowIndex - range.startRowIndex + 1;
645
+ var columns = range.endColumnIndex - range.startColumnIndex + 1;
646
+ if (rows <= 0 || columns <= 0)
647
+ return true;
648
+ if (rows * columns > exports.SELECTABLE_SCAN_CELL_CAP)
649
+ return false;
650
+ for (var row = range.startRowIndex; row <= range.endRowIndex; row++) {
651
+ for (var column = range.startColumnIndex; column <= range.endColumnIndex; column++) {
652
+ if (((_a = getCellProtection(row, column)) === null || _a === void 0 ? void 0 : _a.locked) !== false)
653
+ return false;
654
+ }
655
+ }
656
+ return true;
657
+ };
658
+ exports.isRangeSelectableUnderProtection = isRangeSelectableUnderProtection;
573
659
  /**
574
660
  * Whether a cell's contents are hidden from the formula bar: Excel's Format
575
661
  * Cells ▸ Protection ▸ Hidden takes effect only while the sheet is protected.
@@ -1,7 +1,10 @@
1
1
  export declare const useCellInputContext: () => {
2
2
  makeEditable: ((sheetId: number, cell: import("@rowsncolumns/grid").CellInterface, initialValue?: string, options?: import("../hooks/use-editable").MakeEditableOptions) => void) | undefined;
3
3
  getNextFocusableCell: ((sheetId: number, currentCell: import("@rowsncolumns/grid").CellInterface, direction?: import("@rowsncolumns/grid").Direction, restrictWithinSelection?: boolean) => import("@rowsncolumns/grid").CellInterface | null) | undefined;
4
- submitEditor: ((value: string, textFormatRuns: import("@rowsncolumns/common-types").TextFormatRun[] | undefined, sheetId: number, activeCell: import("@rowsncolumns/grid").CellInterface, nextActiveCell?: import("@rowsncolumns/grid").CellInterface | null | undefined) => void) | undefined;
4
+ submitEditor: ((value: string, textFormatRuns: import("@rowsncolumns/common-types").TextFormatRun[] | undefined, sheetId: number, activeCell: import("@rowsncolumns/grid").CellInterface, nextActiveCell?: import("@rowsncolumns/grid").CellInterface | null | undefined, shouldFocusGrid?: boolean, options?: {
5
+ arrayFormula?: boolean;
6
+ fillSelection?: boolean;
7
+ }) => void) | undefined;
5
8
  cancelEditor: ((e?: React.KeyboardEvent<HTMLDivElement>) => void) | undefined;
6
9
  onEditorKeyDown: ((e: React.KeyboardEvent<HTMLDivElement>) => void) | undefined;
7
10
  canEditCell: ((sheetId: number, cell: import("@rowsncolumns/grid").CellInterface) => boolean) | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"cell-input-context.atom.d.ts","sourceRoot":"","sources":["../../../atoms/cell-input-context.atom.ts"],"names":[],"mappings":"AAoCA,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;CAA+C,CAAC"}
1
+ {"version":3,"file":"cell-input-context.atom.d.ts","sourceRoot":"","sources":["../../../atoms/cell-input-context.atom.ts"],"names":[],"mappings":"AAoCA,eAAO,MAAM,mBAAmB;;;;oBACohiF,CAAC;qBAAwB,CAAC;;;;;;;;;;;CAD//hF,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { EnterKeyDirection } from "../components/cell-editor/helpers";
2
+ /**
3
+ * The grid's `enterKeyDirection`, for the editors that commit on Enter outside its props (the
4
+ * in-cell editor a host supplies, the formula bar).
5
+ */
6
+ export declare const enterKeyDirectionAtom: import("jotai").PrimitiveAtom<EnterKeyDirection> & {
7
+ init: EnterKeyDirection;
8
+ };
9
+ export declare const useEnterKeyDirection: () => EnterKeyDirection;
10
+ export declare const useSetEnterKeyDirection: () => (args_0: EnterKeyDirection | ((prev: EnterKeyDirection) => EnterKeyDirection)) => void;
11
+ //# sourceMappingURL=enter-key-direction.atom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enter-key-direction.atom.d.ts","sourceRoot":"","sources":["../../../atoms/enter-key-direction.atom.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAE3E;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;CAAkC,CAAC;AAErE,eAAO,MAAM,oBAAoB,yBAA4C,CAAC;AAC9E,eAAO,MAAM,uBAAuB,8FAA0C,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useSetEnterKeyDirection = exports.useEnterKeyDirection = exports.enterKeyDirectionAtom = void 0;
4
+ var jotai_1 = require("jotai");
5
+ /**
6
+ * The grid's `enterKeyDirection`, for the editors that commit on Enter outside its props (the
7
+ * in-cell editor a host supplies, the formula bar).
8
+ */
9
+ exports.enterKeyDirectionAtom = (0, jotai_1.atom)("down");
10
+ var useEnterKeyDirection = function () { return (0, jotai_1.useAtomValue)(exports.enterKeyDirectionAtom); };
11
+ exports.useEnterKeyDirection = useEnterKeyDirection;
12
+ var useSetEnterKeyDirection = function () { return (0, jotai_1.useSetAtom)(exports.enterKeyDirectionAtom); };
13
+ exports.useSetEnterKeyDirection = useSetEnterKeyDirection;
@@ -13,6 +13,7 @@ export * from "./selected-chart-embed.atom";
13
13
  export * from "./selected-chart-series.atom";
14
14
  export * from "./popover.atom";
15
15
  export * from "./paste-menu.atom";
16
+ export * from "./pick-list.atom";
16
17
  export * from "./fill-options.atom";
17
18
  export * from "./fill-series-dialog.atom";
18
19
  export * from "./magic-fill-state.atom";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../atoms/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../atoms/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC"}
@@ -18,6 +18,7 @@ tslib_1.__exportStar(require("./selected-chart-embed.atom"), exports);
18
18
  tslib_1.__exportStar(require("./selected-chart-series.atom"), exports);
19
19
  tslib_1.__exportStar(require("./popover.atom"), exports);
20
20
  tslib_1.__exportStar(require("./paste-menu.atom"), exports);
21
+ tslib_1.__exportStar(require("./pick-list.atom"), exports);
21
22
  tslib_1.__exportStar(require("./fill-options.atom"), exports);
22
23
  tslib_1.__exportStar(require("./fill-series-dialog.atom"), exports);
23
24
  tslib_1.__exportStar(require("./magic-fill-state.atom"), exports);
@@ -1,6 +1,28 @@
1
+ import type { PasteOptionId } from "../components/selection/paste-options";
1
2
  export declare const showPasteMenuAtom: import("jotai").PrimitiveAtom<boolean> & {
2
3
  init: boolean;
3
4
  };
4
5
  export declare const useShowPasteMenu: () => [boolean, (args_0: boolean | ((prev: boolean) => boolean)) => void];
5
6
  export declare const useSetShowPasteMenu: () => (args_0: boolean | ((prev: boolean) => boolean)) => void;
7
+ /**
8
+ * The Paste Options button's state for the last paste: whether its gallery
9
+ * is open (a click, or Ctrl pressed alone after the paste), which gallery
10
+ * entry the paste currently stands as, and what the gallery may offer.
11
+ */
12
+ export type PasteMenuState = {
13
+ open: boolean;
14
+ /** The gallery entry the last paste was applied as. */
15
+ active?: PasteOptionId;
16
+ /** The last paste can be re-applied in another mode (a copy, not a cut). */
17
+ canReapply: boolean;
18
+ /** Paste Link needs copied grid cells (not after a cut or a foreign clipboard). */
19
+ canLink: boolean;
20
+ };
21
+ export declare const DEFAULT_PASTE_MENU_STATE: PasteMenuState;
22
+ export declare const pasteMenuStateAtom: import("jotai").PrimitiveAtom<PasteMenuState> & {
23
+ init: PasteMenuState;
24
+ };
25
+ export declare const usePasteMenuState: () => [PasteMenuState, (args_0: PasteMenuState | ((prev: PasteMenuState) => PasteMenuState)) => void];
26
+ export declare const usePasteMenuStateValue: () => PasteMenuState;
27
+ export declare const useSetPasteMenuState: () => (args_0: PasteMenuState | ((prev: PasteMenuState) => PasteMenuState)) => void;
6
28
  //# sourceMappingURL=paste-menu.atom.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"paste-menu.atom.d.ts","sourceRoot":"","sources":["../../../atoms/paste-menu.atom.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB;;CAAc,CAAC;AAE7C,eAAO,MAAM,gBAAgB,2EAAmC,CAAC;AACjE,eAAO,MAAM,mBAAmB,gEAAsC,CAAC"}
1
+ {"version":3,"file":"paste-menu.atom.d.ts","sourceRoot":"","sources":["../../../atoms/paste-menu.atom.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAE3E,eAAO,MAAM,iBAAiB;;CAAc,CAAC;AAE7C,eAAO,MAAM,gBAAgB,2EAAmC,CAAC;AACjE,eAAO,MAAM,mBAAmB,gEAAsC,CAAC;AAEvE;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,uDAAuD;IACvD,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,4EAA4E;IAC5E,UAAU,EAAE,OAAO,CAAC;IACpB,mFAAmF;IACnF,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,cAItC,CAAC;AAEF,eAAO,MAAM,kBAAkB;;CAAiD,CAAC;AAEjF,eAAO,MAAM,iBAAiB,uGAAoC,CAAC;AACnE,eAAO,MAAM,sBAAsB,sBAAyC,CAAC;AAC7E,eAAO,MAAM,oBAAoB,qFAAuC,CAAC"}
@@ -1,9 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useSetShowPasteMenu = exports.useShowPasteMenu = exports.showPasteMenuAtom = void 0;
3
+ exports.useSetPasteMenuState = exports.usePasteMenuStateValue = exports.usePasteMenuState = exports.pasteMenuStateAtom = exports.DEFAULT_PASTE_MENU_STATE = exports.useSetShowPasteMenu = exports.useShowPasteMenu = exports.showPasteMenuAtom = void 0;
4
4
  var jotai_1 = require("jotai");
5
5
  exports.showPasteMenuAtom = (0, jotai_1.atom)(false);
6
6
  var useShowPasteMenu = function () { return (0, jotai_1.useAtom)(exports.showPasteMenuAtom); };
7
7
  exports.useShowPasteMenu = useShowPasteMenu;
8
8
  var useSetShowPasteMenu = function () { return (0, jotai_1.useSetAtom)(exports.showPasteMenuAtom); };
9
9
  exports.useSetShowPasteMenu = useSetShowPasteMenu;
10
+ exports.DEFAULT_PASTE_MENU_STATE = {
11
+ open: false,
12
+ canReapply: false,
13
+ canLink: false,
14
+ };
15
+ exports.pasteMenuStateAtom = (0, jotai_1.atom)(exports.DEFAULT_PASTE_MENU_STATE);
16
+ var usePasteMenuState = function () { return (0, jotai_1.useAtom)(exports.pasteMenuStateAtom); };
17
+ exports.usePasteMenuState = usePasteMenuState;
18
+ var usePasteMenuStateValue = function () { return (0, jotai_1.useAtomValue)(exports.pasteMenuStateAtom); };
19
+ exports.usePasteMenuStateValue = usePasteMenuStateValue;
20
+ var useSetPasteMenuState = function () { return (0, jotai_1.useSetAtom)(exports.pasteMenuStateAtom); };
21
+ exports.useSetPasteMenuState = useSetPasteMenuState;
@@ -0,0 +1,15 @@
1
+ import type { CellInterface } from "@rowsncolumns/grid";
2
+ /**
3
+ * Excel's Pick From Drop-down List (Alt+↓ on a cell with no list of its
4
+ * own): the column's entries the cell editor offers for `cell`.
5
+ */
6
+ export type PickListRequest = {
7
+ sheetId: number;
8
+ cell: CellInterface;
9
+ entries: string[];
10
+ };
11
+ export declare const pickListAtom: import("jotai").PrimitiveAtom<PickListRequest | null> & {
12
+ init: PickListRequest | null;
13
+ };
14
+ export declare const usePickList: () => [PickListRequest | null, (args_0: PickListRequest | ((prev: PickListRequest | null) => PickListRequest | null) | null) => void];
15
+ //# sourceMappingURL=pick-list.atom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pick-list.atom.d.ts","sourceRoot":"","sources":["../../../atoms/pick-list.atom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,YAAY;;CAAqC,CAAC;AAE/D,eAAO,MAAM,WAAW,uIAA8B,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.usePickList = exports.pickListAtom = void 0;
4
+ var jotai_1 = require("jotai");
5
+ exports.pickListAtom = (0, jotai_1.atom)(null);
6
+ var usePickList = function () { return (0, jotai_1.useAtom)(exports.pickListAtom); };
7
+ exports.usePickList = usePickList;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/canvas-grid/index.tsx"],"names":[],"mappings":"AAsDA,OAAO,KASN,MAAM,OAAO,CAAC;AAgOf,OAAO,KAAK,EAGV,QAAQ,EAWT,MAAM,aAAa,CAAC;AAoBrB,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EACjB,eAAe,EAEhB,MAAM,WAAW,CAAC;AA6sMnB,eAAO,MAAM,UAAU,EAA4C,CACjE,CAAC,SAAS,QAAQ,CAAC,GAAG,CAAC,EAEvB,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GACvB,wBAAwB,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;CAAE,KAChE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/canvas-grid/index.tsx"],"names":[],"mappings":"AAwDA,OAAO,KASN,MAAM,OAAO,CAAC;AA4Of,OAAO,KAAK,EAGV,QAAQ,EAWT,MAAM,aAAa,CAAC;AAyBrB,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EACjB,eAAe,EAEhB,MAAM,WAAW,CAAC;AAqgNnB,eAAO,MAAM,UAAU,EAA4C,CACjE,CAAC,SAAS,QAAQ,CAAC,GAAG,CAAC,EAEvB,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GACvB,wBAAwB,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;CAAE,KAChE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC"}