handsontable 9.0.1 → 11.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (757) hide show
  1. package/3rdparty/autoResize/autoResize.js +2 -0
  2. package/3rdparty/autoResize/autoResize.mjs +1 -0
  3. package/3rdparty/walkontable/src/border.js +3 -1
  4. package/3rdparty/walkontable/src/border.mjs +2 -1
  5. package/3rdparty/walkontable/src/calculator/constants.js +1 -1
  6. package/3rdparty/walkontable/src/calculator/index.js +2 -0
  7. package/3rdparty/walkontable/src/calculator/viewportColumns.d.ts +18 -0
  8. package/3rdparty/walkontable/src/cell/coords.d.ts +16 -0
  9. package/3rdparty/walkontable/src/cell/range.d.ts +51 -0
  10. package/3rdparty/walkontable/src/index.d.ts +1 -0
  11. package/3rdparty/walkontable/src/overlay/bottom.js +3 -3
  12. package/3rdparty/walkontable/src/overlay/bottom.mjs +2 -2
  13. package/3rdparty/walkontable/src/overlay/bottomLeftCorner.js +3 -3
  14. package/3rdparty/walkontable/src/overlay/bottomLeftCorner.mjs +2 -2
  15. package/3rdparty/walkontable/src/overlay/constants.js +1 -1
  16. package/3rdparty/walkontable/src/overlay/index.js +2 -0
  17. package/3rdparty/walkontable/src/overlay/left.js +3 -3
  18. package/3rdparty/walkontable/src/overlay/left.mjs +2 -2
  19. package/3rdparty/walkontable/src/overlay/registerer.js +1 -1
  20. package/3rdparty/walkontable/src/overlay/top.js +3 -3
  21. package/3rdparty/walkontable/src/overlay/top.mjs +2 -2
  22. package/3rdparty/walkontable/src/overlay/topLeftCorner.js +3 -3
  23. package/3rdparty/walkontable/src/overlay/topLeftCorner.mjs +2 -2
  24. package/3rdparty/walkontable/src/overlays.js +2 -0
  25. package/3rdparty/walkontable/src/overlays.mjs +1 -0
  26. package/3rdparty/walkontable/src/renderer/cells.js +1 -1
  27. package/3rdparty/walkontable/src/renderer/cells.mjs +1 -1
  28. package/3rdparty/walkontable/src/renderer/colGroup.js +3 -3
  29. package/3rdparty/walkontable/src/renderer/colGroup.mjs +2 -2
  30. package/3rdparty/walkontable/src/renderer/columnHeaders.js +3 -3
  31. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +2 -2
  32. package/3rdparty/walkontable/src/renderer/rowHeaders.js +1 -1
  33. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +1 -1
  34. package/3rdparty/walkontable/src/renderer/rows.js +3 -3
  35. package/3rdparty/walkontable/src/renderer/rows.mjs +2 -2
  36. package/3rdparty/walkontable/src/selection.js +5 -3
  37. package/3rdparty/walkontable/src/selection.mjs +3 -2
  38. package/3rdparty/walkontable/src/table/bottom.js +3 -3
  39. package/3rdparty/walkontable/src/table/bottom.mjs +2 -2
  40. package/3rdparty/walkontable/src/table/bottomLeftCorner.js +3 -3
  41. package/3rdparty/walkontable/src/table/bottomLeftCorner.mjs +2 -2
  42. package/3rdparty/walkontable/src/table/left.js +3 -3
  43. package/3rdparty/walkontable/src/table/left.mjs +2 -2
  44. package/3rdparty/walkontable/src/table/master.js +3 -3
  45. package/3rdparty/walkontable/src/table/master.mjs +2 -2
  46. package/3rdparty/walkontable/src/table/top.js +3 -3
  47. package/3rdparty/walkontable/src/table/top.mjs +2 -2
  48. package/3rdparty/walkontable/src/table/topLeftCorner.js +3 -3
  49. package/3rdparty/walkontable/src/table/topLeftCorner.mjs +2 -2
  50. package/3rdparty/walkontable/src/table.js +5 -3
  51. package/3rdparty/walkontable/src/table.mjs +3 -2
  52. package/3rdparty/walkontable/src/utils/orderView/constants.js +1 -1
  53. package/3rdparty/walkontable/src/utils/orderView/sharedView.js +3 -3
  54. package/3rdparty/walkontable/src/utils/orderView/sharedView.mjs +2 -2
  55. package/CHANGELOG.md +72 -0
  56. package/LICENSE.txt +19 -22
  57. package/README.md +2 -1
  58. package/base.d.ts +1 -1
  59. package/base.js +16 -3
  60. package/base.mjs +14 -4
  61. package/cellTypes/autocompleteType/autocompleteType.d.ts +17 -0
  62. package/cellTypes/autocompleteType/autocompleteType.js +1 -1
  63. package/cellTypes/autocompleteType/index.d.ts +1 -0
  64. package/cellTypes/base.d.ts +14 -0
  65. package/cellTypes/checkboxType/checkboxType.d.ts +14 -0
  66. package/cellTypes/checkboxType/index.d.ts +1 -0
  67. package/cellTypes/dateType/dateType.d.ts +17 -0
  68. package/cellTypes/dateType/index.d.ts +1 -0
  69. package/cellTypes/dropdownType/dropdownType.d.ts +17 -0
  70. package/cellTypes/dropdownType/index.d.ts +1 -0
  71. package/cellTypes/handsontableType/handsontableType.d.ts +14 -0
  72. package/cellTypes/handsontableType/index.d.ts +1 -0
  73. package/cellTypes/index.d.ts +47 -0
  74. package/cellTypes/index.js +18 -2
  75. package/cellTypes/index.mjs +26 -9
  76. package/cellTypes/numericType/index.d.ts +1 -0
  77. package/cellTypes/numericType/numericType.d.ts +17 -0
  78. package/cellTypes/passwordType/index.d.ts +1 -0
  79. package/cellTypes/passwordType/passwordType.d.ts +14 -0
  80. package/cellTypes/registry.d.ts +18 -0
  81. package/cellTypes/registry.js +2 -2
  82. package/cellTypes/textType/index.d.ts +1 -0
  83. package/cellTypes/textType/textType.d.ts +14 -0
  84. package/cellTypes/timeType/index.d.ts +1 -0
  85. package/cellTypes/timeType/timeType.d.ts +17 -0
  86. package/common.d.ts +74 -0
  87. package/core.d.ts +159 -0
  88. package/core.js +143 -103
  89. package/core.mjs +141 -103
  90. package/{dataMap.js → dataMap/dataMap.js} +37 -35
  91. package/{dataMap.mjs → dataMap/dataMap.mjs} +37 -35
  92. package/dataMap/index.js +5 -1
  93. package/dataMap/index.mjs +3 -2
  94. package/dataMap/metaManager/index.js +54 -6
  95. package/dataMap/metaManager/index.mjs +51 -6
  96. package/dataMap/metaManager/lazyFactoryMap.js +3 -3
  97. package/dataMap/metaManager/lazyFactoryMap.mjs +3 -3
  98. package/dataMap/metaManager/metaLayers/cellMeta.js +2 -0
  99. package/dataMap/metaManager/metaLayers/cellMeta.mjs +1 -0
  100. package/dataMap/metaManager/metaLayers/globalMeta.js +2 -1
  101. package/dataMap/metaManager/metaLayers/globalMeta.mjs +2 -1
  102. package/dataMap/metaManager/metaSchema.js +2331 -871
  103. package/dataMap/metaManager/metaSchema.mjs +2331 -871
  104. package/dataMap/metaManager/mods/dynamicCellMeta.js +136 -0
  105. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +119 -0
  106. package/dataMap/metaManager/utils.js +3 -3
  107. package/dataSource.js +2 -0
  108. package/dataSource.mjs +1 -0
  109. package/dist/handsontable.css +309 -303
  110. package/dist/handsontable.full.css +309 -303
  111. package/dist/handsontable.full.js +50435 -45020
  112. package/dist/handsontable.full.min.css +25 -28
  113. package/dist/handsontable.full.min.js +181 -164
  114. package/dist/handsontable.js +31234 -28030
  115. package/dist/handsontable.min.css +25 -28
  116. package/dist/handsontable.min.js +22 -25
  117. package/editorManager.js +15 -12
  118. package/editorManager.mjs +15 -13
  119. package/editors/autocompleteEditor/autocompleteEditor.d.ts +29 -0
  120. package/editors/autocompleteEditor/autocompleteEditor.js +91 -87
  121. package/editors/autocompleteEditor/autocompleteEditor.mjs +89 -84
  122. package/editors/autocompleteEditor/index.d.ts +1 -0
  123. package/editors/autocompleteEditor/index.js +1 -1
  124. package/editors/baseEditor/baseEditor.d.ts +45 -0
  125. package/editors/baseEditor/baseEditor.js +8 -7
  126. package/editors/baseEditor/baseEditor.mjs +5 -5
  127. package/editors/baseEditor/index.d.ts +1 -0
  128. package/editors/baseEditor/index.js +1 -1
  129. package/editors/checkboxEditor/checkboxEditor.d.ts +12 -0
  130. package/editors/checkboxEditor/checkboxEditor.js +4 -4
  131. package/editors/checkboxEditor/checkboxEditor.mjs +2 -2
  132. package/editors/checkboxEditor/index.d.ts +1 -0
  133. package/editors/checkboxEditor/index.js +1 -1
  134. package/editors/dateEditor/dateEditor.d.ts +18 -0
  135. package/editors/dateEditor/dateEditor.js +20 -20
  136. package/editors/dateEditor/dateEditor.mjs +19 -19
  137. package/editors/dateEditor/index.d.ts +1 -0
  138. package/editors/dateEditor/index.js +1 -1
  139. package/editors/dropdownEditor/dropdownEditor.d.ts +7 -0
  140. package/editors/dropdownEditor/dropdownEditor.js +5 -5
  141. package/editors/dropdownEditor/dropdownEditor.mjs +3 -3
  142. package/editors/dropdownEditor/index.d.ts +1 -0
  143. package/editors/dropdownEditor/index.js +1 -1
  144. package/editors/handsontableEditor/handsontableEditor.d.ts +10 -0
  145. package/editors/handsontableEditor/handsontableEditor.js +4 -4
  146. package/editors/handsontableEditor/handsontableEditor.mjs +3 -3
  147. package/editors/handsontableEditor/index.d.ts +1 -0
  148. package/editors/index.d.ts +53 -0
  149. package/editors/index.js +19 -2
  150. package/editors/index.mjs +28 -10
  151. package/editors/numericEditor/index.d.ts +1 -0
  152. package/editors/numericEditor/numericEditor.d.ts +7 -0
  153. package/editors/numericEditor/numericEditor.js +3 -3
  154. package/editors/numericEditor/numericEditor.mjs +2 -2
  155. package/editors/passwordEditor/index.d.ts +1 -0
  156. package/editors/passwordEditor/passwordEditor.d.ts +7 -0
  157. package/editors/passwordEditor/passwordEditor.js +4 -4
  158. package/editors/passwordEditor/passwordEditor.mjs +3 -3
  159. package/editors/registry.d.ts +29 -0
  160. package/editors/registry.js +2 -2
  161. package/editors/selectEditor/index.d.ts +1 -0
  162. package/editors/selectEditor/selectEditor.d.ts +16 -0
  163. package/editors/selectEditor/selectEditor.js +4 -4
  164. package/editors/selectEditor/selectEditor.mjs +3 -3
  165. package/editors/textEditor/index.d.ts +1 -0
  166. package/editors/textEditor/textEditor.d.ts +24 -0
  167. package/editors/textEditor/textEditor.js +4 -4
  168. package/editors/textEditor/textEditor.mjs +3 -3
  169. package/eventManager.d.ts +13 -0
  170. package/eventManager.js +1 -1
  171. package/handsontable-non-commercial-license.pdf +0 -0
  172. package/helpers/array.d.ts +18 -0
  173. package/helpers/array.js +10 -10
  174. package/helpers/array.mjs +1 -1
  175. package/helpers/browser.d.ts +25 -0
  176. package/helpers/browser.js +11 -9
  177. package/helpers/browser.mjs +1 -0
  178. package/helpers/console.d.ts +4 -0
  179. package/helpers/console.js +2 -2
  180. package/helpers/data.d.ts +13 -0
  181. package/helpers/data.js +7 -35
  182. package/helpers/data.mjs +1 -27
  183. package/helpers/date.d.ts +1 -0
  184. package/helpers/dom/element.d.ts +49 -0
  185. package/helpers/dom/element.js +44 -45
  186. package/helpers/dom/element.mjs +7 -8
  187. package/helpers/dom/event.d.ts +4 -0
  188. package/helpers/dom/event.js +2 -2
  189. package/helpers/dom/index.d.ts +2 -0
  190. package/helpers/feature.d.ts +11 -0
  191. package/helpers/feature.js +6 -6
  192. package/helpers/function.d.ts +10 -0
  193. package/helpers/function.js +43 -5
  194. package/helpers/function.mjs +35 -0
  195. package/helpers/index.d.ts +14 -0
  196. package/helpers/mixed.d.ts +5 -0
  197. package/helpers/mixed.js +5 -5
  198. package/helpers/mixed.mjs +2 -2
  199. package/helpers/number.d.ts +5 -0
  200. package/helpers/number.js +96 -17
  201. package/helpers/number.mjs +85 -17
  202. package/helpers/object.d.ts +16 -0
  203. package/helpers/object.js +11 -11
  204. package/helpers/string.d.ts +7 -0
  205. package/helpers/string.js +4 -4
  206. package/helpers/templateLiteralTag.d.ts +1 -0
  207. package/helpers/unicode.d.ts +73 -0
  208. package/helpers/unicode.js +49 -33
  209. package/helpers/unicode.mjs +44 -27
  210. package/i18n/constants.js +1 -1
  211. package/i18n/index.d.ts +2 -0
  212. package/i18n/index.js +2 -0
  213. package/i18n/languages/de-CH.d.ts +5 -0
  214. package/i18n/languages/de-DE.d.ts +5 -0
  215. package/i18n/languages/en-US.d.ts +5 -0
  216. package/i18n/languages/es-MX.d.ts +5 -0
  217. package/i18n/languages/fr-FR.d.ts +5 -0
  218. package/i18n/languages/index.d.ts +35 -0
  219. package/i18n/languages/it-IT.d.ts +5 -0
  220. package/i18n/languages/ja-JP.d.ts +5 -0
  221. package/i18n/languages/ko-KR.d.ts +5 -0
  222. package/i18n/languages/lv-LV.d.ts +5 -0
  223. package/i18n/languages/nb-NO.d.ts +5 -0
  224. package/i18n/languages/nl-NL.d.ts +5 -0
  225. package/i18n/languages/pl-PL.d.ts +5 -0
  226. package/i18n/languages/pt-BR.d.ts +5 -0
  227. package/i18n/languages/ru-RU.d.ts +5 -0
  228. package/i18n/languages/zh-CN.d.ts +5 -0
  229. package/i18n/languages/zh-TW.d.ts +5 -0
  230. package/i18n/phraseFormatters/index.js +1 -1
  231. package/i18n/registry.d.ts +13 -0
  232. package/i18n/registry.js +4 -4
  233. package/i18n/utils.js +1 -1
  234. package/index.d.ts +516 -0
  235. package/index.js +40 -112
  236. package/index.mjs +17 -90
  237. package/mixins/localHooks.js +17 -14
  238. package/mixins/localHooks.mjs +16 -13
  239. package/package.json +103 -10
  240. package/pluginHooks.d.ts +255 -0
  241. package/pluginHooks.js +132 -57
  242. package/pluginHooks.mjs +131 -57
  243. package/plugins/autoColumnSize/autoColumnSize.d.ts +27 -0
  244. package/plugins/autoColumnSize/autoColumnSize.js +20 -13
  245. package/plugins/autoColumnSize/autoColumnSize.mjs +18 -12
  246. package/plugins/autoColumnSize/index.d.ts +1 -0
  247. package/plugins/autoColumnSize/index.js +1 -1
  248. package/plugins/autoRowSize/autoRowSize.d.ts +27 -0
  249. package/plugins/autoRowSize/autoRowSize.js +22 -14
  250. package/plugins/autoRowSize/autoRowSize.mjs +19 -12
  251. package/plugins/autoRowSize/index.d.ts +1 -0
  252. package/plugins/autoRowSize/index.js +1 -1
  253. package/plugins/autofill/autofill.d.ts +18 -0
  254. package/plugins/autofill/autofill.js +10 -19
  255. package/plugins/autofill/autofill.mjs +7 -16
  256. package/plugins/autofill/index.d.ts +1 -0
  257. package/plugins/autofill/index.js +1 -1
  258. package/plugins/autofill/utils.js +1 -1
  259. package/plugins/base/base.d.ts +21 -0
  260. package/plugins/base/base.js +2 -2
  261. package/plugins/base/base.mjs +1 -1
  262. package/plugins/base/index.d.ts +1 -0
  263. package/plugins/base/index.js +1 -1
  264. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.d.ts +9 -0
  265. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +4 -3
  266. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +3 -2
  267. package/plugins/bindRowsWithHeaders/index.d.ts +1 -0
  268. package/plugins/bindRowsWithHeaders/index.js +1 -1
  269. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.js +4 -4
  270. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.mjs +3 -3
  271. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +6 -4
  272. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +4 -3
  273. package/plugins/collapsibleColumns/collapsibleColumns.d.ts +22 -0
  274. package/plugins/collapsibleColumns/collapsibleColumns.js +13 -6
  275. package/plugins/collapsibleColumns/collapsibleColumns.mjs +11 -5
  276. package/plugins/collapsibleColumns/index.d.ts +1 -0
  277. package/plugins/collapsibleColumns/index.js +1 -1
  278. package/plugins/columnSorting/columnSorting.d.ts +30 -0
  279. package/plugins/columnSorting/columnSorting.js +19 -14
  280. package/plugins/columnSorting/columnSorting.mjs +16 -12
  281. package/plugins/columnSorting/columnStatesManager.js +5 -3
  282. package/plugins/columnSorting/columnStatesManager.mjs +4 -3
  283. package/plugins/columnSorting/index.d.ts +1 -0
  284. package/plugins/columnSorting/index.js +1 -1
  285. package/plugins/columnSorting/rootComparator.js +2 -0
  286. package/plugins/columnSorting/rootComparator.mjs +1 -0
  287. package/plugins/columnSorting/sortFunction/checkbox.js +1 -1
  288. package/plugins/columnSorting/sortFunction/date.js +1 -1
  289. package/plugins/columnSorting/sortFunction/default.js +4 -3
  290. package/plugins/columnSorting/sortFunction/default.mjs +3 -2
  291. package/plugins/columnSorting/sortFunction/numeric.js +1 -1
  292. package/plugins/columnSorting/sortService/engine.js +1 -1
  293. package/plugins/columnSorting/sortService/registry.js +1 -1
  294. package/plugins/columnSorting/utils.js +4 -4
  295. package/plugins/columnSorting/utils.mjs +1 -1
  296. package/plugins/columnSummary/columnSummary.d.ts +72 -0
  297. package/plugins/columnSummary/columnSummary.js +31 -12
  298. package/plugins/columnSummary/columnSummary.mjs +29 -10
  299. package/plugins/columnSummary/endpoints.js +6 -4
  300. package/plugins/columnSummary/endpoints.mjs +5 -4
  301. package/plugins/columnSummary/index.d.ts +1 -0
  302. package/plugins/columnSummary/index.js +1 -1
  303. package/plugins/comments/commentEditor.js +1 -1
  304. package/plugins/comments/commentEditor.mjs +1 -1
  305. package/plugins/comments/comments.d.ts +50 -0
  306. package/plugins/comments/comments.js +11 -6
  307. package/plugins/comments/comments.mjs +10 -5
  308. package/plugins/comments/displaySwitch.js +1 -1
  309. package/plugins/comments/displaySwitch.mjs +1 -1
  310. package/plugins/comments/index.d.ts +1 -0
  311. package/plugins/comments/index.js +1 -1
  312. package/plugins/contextMenu/commandExecutor.js +1 -1
  313. package/plugins/contextMenu/commandExecutor.mjs +1 -1
  314. package/plugins/contextMenu/contextMenu.d.ts +65 -0
  315. package/plugins/contextMenu/contextMenu.js +8 -7
  316. package/plugins/contextMenu/contextMenu.mjs +6 -5
  317. package/plugins/contextMenu/cursor.js +1 -1
  318. package/plugins/contextMenu/cursor.mjs +1 -1
  319. package/plugins/contextMenu/index.d.ts +1 -0
  320. package/plugins/contextMenu/index.js +1 -1
  321. package/plugins/contextMenu/itemsFactory.js +1 -1
  322. package/plugins/contextMenu/itemsFactory.mjs +1 -1
  323. package/plugins/contextMenu/menu.js +4 -4
  324. package/plugins/contextMenu/menu.mjs +3 -3
  325. package/plugins/contextMenu/predefinedItems/alignment.js +1 -1
  326. package/plugins/contextMenu/predefinedItems/clearColumn.js +1 -1
  327. package/plugins/contextMenu/predefinedItems/columnLeft.js +1 -1
  328. package/plugins/contextMenu/predefinedItems/columnRight.js +1 -1
  329. package/plugins/contextMenu/predefinedItems/noItems.js +1 -1
  330. package/plugins/contextMenu/predefinedItems/readOnly.js +1 -1
  331. package/plugins/contextMenu/predefinedItems/redo.js +1 -1
  332. package/plugins/contextMenu/predefinedItems/removeColumn.js +4 -2
  333. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +2 -1
  334. package/plugins/contextMenu/predefinedItems/removeRow.js +4 -2
  335. package/plugins/contextMenu/predefinedItems/removeRow.mjs +2 -1
  336. package/plugins/contextMenu/predefinedItems/rowAbove.js +1 -1
  337. package/plugins/contextMenu/predefinedItems/rowBelow.js +1 -1
  338. package/plugins/contextMenu/predefinedItems/separator.js +1 -1
  339. package/plugins/contextMenu/predefinedItems/undo.js +1 -1
  340. package/plugins/contextMenu/predefinedItems.js +2 -2
  341. package/plugins/contextMenu/utils.js +10 -10
  342. package/plugins/copyPaste/clipboardData.js +3 -0
  343. package/plugins/copyPaste/clipboardData.mjs +3 -0
  344. package/plugins/copyPaste/copyPaste.d.ts +35 -0
  345. package/plugins/copyPaste/copyPaste.js +13 -10
  346. package/plugins/copyPaste/copyPaste.mjs +11 -9
  347. package/plugins/copyPaste/focusableElement.js +1 -2
  348. package/plugins/copyPaste/focusableElement.mjs +1 -2
  349. package/plugins/copyPaste/index.d.ts +1 -0
  350. package/plugins/copyPaste/index.js +1 -1
  351. package/plugins/copyPaste/pasteEvent.js +3 -0
  352. package/plugins/copyPaste/pasteEvent.mjs +3 -0
  353. package/plugins/customBorders/customBorders.d.ts +38 -0
  354. package/plugins/customBorders/customBorders.js +11 -9
  355. package/plugins/customBorders/customBorders.mjs +8 -7
  356. package/plugins/customBorders/index.d.ts +1 -0
  357. package/plugins/customBorders/index.js +1 -1
  358. package/plugins/customBorders/utils.js +3 -3
  359. package/plugins/dragToScroll/dragToScroll.d.ts +15 -0
  360. package/plugins/dragToScroll/dragToScroll.js +5 -5
  361. package/plugins/dragToScroll/dragToScroll.mjs +3 -3
  362. package/plugins/dragToScroll/index.d.ts +1 -0
  363. package/plugins/dragToScroll/index.js +1 -1
  364. package/plugins/dropdownMenu/dropdownMenu.d.ts +24 -0
  365. package/plugins/dropdownMenu/dropdownMenu.js +9 -9
  366. package/plugins/dropdownMenu/dropdownMenu.mjs +7 -7
  367. package/plugins/dropdownMenu/index.d.ts +1 -0
  368. package/plugins/dropdownMenu/index.js +1 -1
  369. package/plugins/exportFile/dataProvider.js +3 -5
  370. package/plugins/exportFile/dataProvider.mjs +3 -5
  371. package/plugins/exportFile/exportFile.d.ts +12 -0
  372. package/plugins/exportFile/exportFile.js +6 -5
  373. package/plugins/exportFile/exportFile.mjs +4 -3
  374. package/plugins/exportFile/index.d.ts +1 -0
  375. package/plugins/exportFile/index.js +1 -1
  376. package/plugins/exportFile/typeFactory.js +2 -1
  377. package/plugins/exportFile/typeFactory.mjs +1 -0
  378. package/plugins/exportFile/types/_base.js +0 -1
  379. package/plugins/exportFile/types/_base.mjs +0 -1
  380. package/plugins/exportFile/types/csv.js +3 -4
  381. package/plugins/exportFile/types/csv.mjs +2 -3
  382. package/plugins/filters/component/_base.js +1 -1
  383. package/plugins/filters/component/_base.mjs +1 -1
  384. package/plugins/filters/component/actionBar.js +4 -4
  385. package/plugins/filters/component/actionBar.mjs +3 -3
  386. package/plugins/filters/component/condition.js +7 -5
  387. package/plugins/filters/component/condition.mjs +5 -4
  388. package/plugins/filters/component/operators.js +4 -4
  389. package/plugins/filters/component/operators.mjs +3 -3
  390. package/plugins/filters/component/value.js +13 -6
  391. package/plugins/filters/component/value.mjs +11 -5
  392. package/plugins/filters/condition/beginsWith.js +5 -3
  393. package/plugins/filters/condition/beginsWith.mjs +3 -2
  394. package/plugins/filters/condition/between.js +4 -2
  395. package/plugins/filters/condition/between.mjs +2 -1
  396. package/plugins/filters/condition/byValue.js +4 -2
  397. package/plugins/filters/condition/byValue.mjs +2 -1
  398. package/plugins/filters/condition/contains.js +5 -3
  399. package/plugins/filters/condition/contains.mjs +3 -2
  400. package/plugins/filters/condition/date/after.js +4 -2
  401. package/plugins/filters/condition/date/after.mjs +2 -1
  402. package/plugins/filters/condition/date/before.js +4 -2
  403. package/plugins/filters/condition/date/before.mjs +2 -1
  404. package/plugins/filters/condition/date/today.js +1 -1
  405. package/plugins/filters/condition/date/tomorrow.js +1 -1
  406. package/plugins/filters/condition/date/yesterday.js +1 -1
  407. package/plugins/filters/condition/empty.js +1 -1
  408. package/plugins/filters/condition/endsWith.js +5 -3
  409. package/plugins/filters/condition/endsWith.mjs +3 -2
  410. package/plugins/filters/condition/equal.js +5 -3
  411. package/plugins/filters/condition/equal.mjs +3 -2
  412. package/plugins/filters/condition/false.js +1 -1
  413. package/plugins/filters/condition/greaterThan.js +4 -2
  414. package/plugins/filters/condition/greaterThan.mjs +2 -1
  415. package/plugins/filters/condition/greaterThanOrEqual.js +4 -2
  416. package/plugins/filters/condition/greaterThanOrEqual.mjs +2 -1
  417. package/plugins/filters/condition/lessThan.js +4 -2
  418. package/plugins/filters/condition/lessThan.mjs +2 -1
  419. package/plugins/filters/condition/lessThanOrEqual.js +4 -2
  420. package/plugins/filters/condition/lessThanOrEqual.mjs +2 -1
  421. package/plugins/filters/condition/none.js +1 -1
  422. package/plugins/filters/condition/notBetween.js +1 -1
  423. package/plugins/filters/condition/notContains.js +1 -1
  424. package/plugins/filters/condition/notEmpty.js +1 -1
  425. package/plugins/filters/condition/notEqual.js +1 -1
  426. package/plugins/filters/condition/true.js +1 -1
  427. package/plugins/filters/conditionCollection.d.ts +32 -0
  428. package/plugins/filters/conditionCollection.js +8 -5
  429. package/plugins/filters/conditionCollection.mjs +6 -4
  430. package/plugins/filters/conditionRegisterer.js +1 -1
  431. package/plugins/filters/conditionUpdateObserver.d.ts +10 -0
  432. package/plugins/filters/conditionUpdateObserver.js +3 -1
  433. package/plugins/filters/conditionUpdateObserver.mjs +2 -1
  434. package/plugins/filters/constants.js +2 -1
  435. package/plugins/filters/constants.mjs +1 -0
  436. package/plugins/filters/dataFilter.js +1 -1
  437. package/plugins/filters/dataFilter.mjs +1 -1
  438. package/plugins/filters/filters.d.ts +56 -0
  439. package/plugins/filters/filters.js +19 -14
  440. package/plugins/filters/filters.mjs +17 -13
  441. package/plugins/filters/index.d.ts +1 -0
  442. package/plugins/filters/index.js +1 -1
  443. package/plugins/filters/logicalOperationRegisterer.js +1 -1
  444. package/plugins/filters/logicalOperations/conjunction.js +3 -3
  445. package/plugins/filters/logicalOperations/conjunction.mjs +1 -0
  446. package/plugins/filters/logicalOperations/disjunction.js +3 -3
  447. package/plugins/filters/logicalOperations/disjunction.mjs +1 -0
  448. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +3 -3
  449. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.mjs +1 -0
  450. package/plugins/filters/ui/_base.js +2 -3
  451. package/plugins/filters/ui/_base.mjs +2 -3
  452. package/plugins/filters/ui/input.js +3 -3
  453. package/plugins/filters/ui/input.mjs +3 -3
  454. package/plugins/filters/ui/link.js +3 -3
  455. package/plugins/filters/ui/link.mjs +3 -3
  456. package/plugins/filters/ui/multipleSelect.js +31 -5
  457. package/plugins/filters/ui/multipleSelect.mjs +30 -5
  458. package/plugins/filters/ui/radioInput.js +3 -3
  459. package/plugins/filters/ui/radioInput.mjs +3 -3
  460. package/plugins/filters/ui/select.js +3 -3
  461. package/plugins/filters/ui/select.mjs +3 -3
  462. package/plugins/filters/utils.js +3 -3
  463. package/plugins/formulas/engine/register.js +3 -3
  464. package/plugins/formulas/engine/settings.js +4 -4
  465. package/plugins/formulas/engine/settings.mjs +2 -3
  466. package/plugins/formulas/formulas.d.ts +31 -0
  467. package/plugins/formulas/formulas.js +286 -89
  468. package/plugins/formulas/formulas.mjs +279 -86
  469. package/plugins/formulas/index.d.ts +1 -0
  470. package/plugins/formulas/index.js +1 -1
  471. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +3 -1
  472. package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +2 -1
  473. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +4 -2
  474. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +2 -1
  475. package/plugins/hiddenColumns/hiddenColumns.d.ts +21 -0
  476. package/plugins/hiddenColumns/hiddenColumns.js +37 -24
  477. package/plugins/hiddenColumns/hiddenColumns.mjs +36 -23
  478. package/plugins/hiddenColumns/index.d.ts +1 -0
  479. package/plugins/hiddenColumns/index.js +1 -1
  480. package/plugins/hiddenRows/contextMenuItem/hideRow.js +3 -1
  481. package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +2 -1
  482. package/plugins/hiddenRows/contextMenuItem/showRow.js +4 -2
  483. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +2 -1
  484. package/plugins/hiddenRows/hiddenRows.d.ts +21 -0
  485. package/plugins/hiddenRows/hiddenRows.js +37 -25
  486. package/plugins/hiddenRows/hiddenRows.mjs +36 -24
  487. package/plugins/hiddenRows/index.d.ts +1 -0
  488. package/plugins/hiddenRows/index.js +1 -1
  489. package/plugins/index.d.ts +111 -0
  490. package/plugins/index.js +98 -58
  491. package/plugins/index.mjs +75 -34
  492. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +3 -1
  493. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +2 -1
  494. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +3 -1
  495. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +2 -1
  496. package/plugins/manualColumnFreeze/index.d.ts +1 -0
  497. package/plugins/manualColumnFreeze/index.js +1 -1
  498. package/plugins/manualColumnFreeze/manualColumnFreeze.d.ts +11 -0
  499. package/plugins/manualColumnFreeze/manualColumnFreeze.js +11 -6
  500. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +10 -5
  501. package/plugins/manualColumnMove/index.d.ts +1 -0
  502. package/plugins/manualColumnMove/index.js +1 -1
  503. package/plugins/manualColumnMove/manualColumnMove.d.ts +14 -0
  504. package/plugins/manualColumnMove/manualColumnMove.js +28 -23
  505. package/plugins/manualColumnMove/manualColumnMove.mjs +27 -22
  506. package/plugins/manualColumnMove/ui/_base.js +1 -1
  507. package/plugins/manualColumnMove/ui/_base.mjs +1 -1
  508. package/plugins/manualColumnMove/ui/backlight.js +4 -4
  509. package/plugins/manualColumnMove/ui/backlight.mjs +3 -3
  510. package/plugins/manualColumnMove/ui/guideline.js +4 -4
  511. package/plugins/manualColumnMove/ui/guideline.mjs +3 -3
  512. package/plugins/manualColumnResize/index.d.ts +1 -0
  513. package/plugins/manualColumnResize/index.js +1 -1
  514. package/plugins/manualColumnResize/manualColumnResize.d.ts +30 -0
  515. package/plugins/manualColumnResize/manualColumnResize.js +7 -6
  516. package/plugins/manualColumnResize/manualColumnResize.mjs +6 -5
  517. package/plugins/manualRowMove/index.d.ts +1 -0
  518. package/plugins/manualRowMove/index.js +1 -1
  519. package/plugins/manualRowMove/manualRowMove.d.ts +14 -0
  520. package/plugins/manualRowMove/manualRowMove.js +25 -22
  521. package/plugins/manualRowMove/manualRowMove.mjs +24 -21
  522. package/plugins/manualRowMove/ui/_base.js +1 -2
  523. package/plugins/manualRowMove/ui/_base.mjs +1 -2
  524. package/plugins/manualRowMove/ui/backlight.js +5 -5
  525. package/plugins/manualRowMove/ui/backlight.mjs +4 -4
  526. package/plugins/manualRowMove/ui/guideline.js +5 -5
  527. package/plugins/manualRowMove/ui/guideline.mjs +4 -4
  528. package/plugins/manualRowResize/index.d.ts +1 -0
  529. package/plugins/manualRowResize/index.js +1 -1
  530. package/plugins/manualRowResize/manualRowResize.d.ts +29 -0
  531. package/plugins/manualRowResize/manualRowResize.js +6 -5
  532. package/plugins/manualRowResize/manualRowResize.mjs +5 -4
  533. package/plugins/mergeCells/calculations/autofill.js +4 -3
  534. package/plugins/mergeCells/calculations/autofill.mjs +3 -3
  535. package/plugins/mergeCells/calculations/selection.js +1 -2
  536. package/plugins/mergeCells/calculations/selection.mjs +1 -2
  537. package/plugins/mergeCells/cellCoords.js +1 -1
  538. package/plugins/mergeCells/cellCoords.mjs +1 -1
  539. package/plugins/mergeCells/cellsCollection.js +5 -3
  540. package/plugins/mergeCells/cellsCollection.mjs +4 -3
  541. package/plugins/mergeCells/index.d.ts +1 -0
  542. package/plugins/mergeCells/index.js +1 -1
  543. package/plugins/mergeCells/mergeCells.d.ts +22 -0
  544. package/plugins/mergeCells/mergeCells.js +7 -4
  545. package/plugins/mergeCells/mergeCells.mjs +5 -3
  546. package/plugins/multiColumnSorting/domHelpers.js +2 -0
  547. package/plugins/multiColumnSorting/domHelpers.mjs +1 -0
  548. package/plugins/multiColumnSorting/index.d.ts +1 -0
  549. package/plugins/multiColumnSorting/index.js +1 -1
  550. package/plugins/multiColumnSorting/multiColumnSorting.d.ts +8 -0
  551. package/plugins/multiColumnSorting/multiColumnSorting.js +11 -8
  552. package/plugins/multiColumnSorting/multiColumnSorting.mjs +9 -6
  553. package/plugins/multiColumnSorting/rootComparator.js +2 -0
  554. package/plugins/multiColumnSorting/rootComparator.mjs +1 -0
  555. package/plugins/multipleSelectionHandles/index.d.ts +1 -0
  556. package/plugins/multipleSelectionHandles/index.js +1 -1
  557. package/plugins/multipleSelectionHandles/multipleSelectionHandles.d.ts +21 -0
  558. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +7 -5
  559. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +5 -3
  560. package/plugins/nestedHeaders/index.d.ts +1 -0
  561. package/plugins/nestedHeaders/index.js +1 -1
  562. package/plugins/nestedHeaders/nestedHeaders.d.ts +17 -0
  563. package/plugins/nestedHeaders/nestedHeaders.js +41 -21
  564. package/plugins/nestedHeaders/nestedHeaders.mjs +38 -19
  565. package/plugins/nestedHeaders/stateManager/headersTree.js +11 -5
  566. package/plugins/nestedHeaders/stateManager/headersTree.mjs +10 -5
  567. package/plugins/nestedHeaders/stateManager/index.js +9 -6
  568. package/plugins/nestedHeaders/stateManager/index.mjs +9 -6
  569. package/plugins/nestedHeaders/stateManager/nodeModifiers/utils/tree.js +1 -1
  570. package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +2 -0
  571. package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +1 -0
  572. package/plugins/nestedHeaders/stateManager/sourceSettings.js +8 -4
  573. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +8 -4
  574. package/plugins/nestedHeaders/utils/ghostTable.js +10 -2
  575. package/plugins/nestedHeaders/utils/ghostTable.mjs +10 -2
  576. package/plugins/nestedRows/data/dataManager.js +40 -14
  577. package/plugins/nestedRows/data/dataManager.mjs +38 -13
  578. package/plugins/nestedRows/index.d.ts +1 -0
  579. package/plugins/nestedRows/index.js +1 -1
  580. package/plugins/nestedRows/nestedRows.d.ts +12 -0
  581. package/plugins/nestedRows/nestedRows.js +48 -34
  582. package/plugins/nestedRows/nestedRows.mjs +43 -32
  583. package/plugins/nestedRows/ui/_base.js +1 -2
  584. package/plugins/nestedRows/ui/_base.mjs +1 -2
  585. package/plugins/nestedRows/ui/collapsing.js +6 -5
  586. package/plugins/nestedRows/ui/collapsing.mjs +4 -4
  587. package/plugins/nestedRows/ui/contextMenu.js +2 -3
  588. package/plugins/nestedRows/ui/contextMenu.mjs +2 -3
  589. package/plugins/nestedRows/ui/headers.js +4 -5
  590. package/plugins/nestedRows/ui/headers.mjs +3 -4
  591. package/plugins/nestedRows/utils/rowMoveController.js +10 -9
  592. package/plugins/nestedRows/utils/rowMoveController.mjs +8 -8
  593. package/plugins/persistentState/index.d.ts +1 -0
  594. package/plugins/persistentState/persistentState.d.ts +13 -0
  595. package/plugins/persistentState/persistentState.js +13 -4
  596. package/plugins/persistentState/persistentState.mjs +12 -3
  597. package/plugins/persistentState/storage.js +1 -1
  598. package/plugins/persistentState/storage.mjs +1 -1
  599. package/plugins/registry.d.ts +9 -0
  600. package/plugins/registry.js +4 -2
  601. package/plugins/registry.mjs +2 -1
  602. package/plugins/search/index.d.ts +1 -0
  603. package/plugins/search/search.d.ts +28 -0
  604. package/plugins/search/search.js +7 -6
  605. package/plugins/search/search.mjs +7 -6
  606. package/plugins/touchScroll/index.d.ts +1 -0
  607. package/plugins/touchScroll/touchScroll.d.ts +13 -0
  608. package/plugins/touchScroll/touchScroll.js +9 -9
  609. package/plugins/touchScroll/touchScroll.mjs +8 -8
  610. package/plugins/trimRows/index.d.ts +1 -0
  611. package/plugins/trimRows/trimRows.d.ts +17 -0
  612. package/plugins/trimRows/trimRows.js +3 -2
  613. package/plugins/trimRows/trimRows.mjs +3 -2
  614. package/plugins/undoRedo/index.d.ts +1 -0
  615. package/plugins/undoRedo/undoRedo.d.ts +49 -0
  616. package/plugins/undoRedo/undoRedo.js +28 -30
  617. package/plugins/undoRedo/undoRedo.mjs +26 -29
  618. package/registry.d.ts +6 -0
  619. package/registry.js +46 -0
  620. package/registry.mjs +27 -0
  621. package/renderers/autocompleteRenderer/autocompleteRenderer.d.ts +5 -0
  622. package/renderers/autocompleteRenderer/autocompleteRenderer.js +1 -1
  623. package/renderers/autocompleteRenderer/index.d.ts +1 -0
  624. package/renderers/base.d.ts +3 -0
  625. package/renderers/baseRenderer/baseRenderer.d.ts +5 -0
  626. package/renderers/baseRenderer/baseRenderer.js +1 -1
  627. package/renderers/baseRenderer/index.d.ts +1 -0
  628. package/renderers/checkboxRenderer/checkboxRenderer.d.ts +5 -0
  629. package/renderers/checkboxRenderer/checkboxRenderer.js +3 -5
  630. package/renderers/checkboxRenderer/checkboxRenderer.mjs +3 -4
  631. package/renderers/checkboxRenderer/index.d.ts +1 -0
  632. package/renderers/htmlRenderer/htmlRenderer.d.ts +5 -0
  633. package/renderers/htmlRenderer/htmlRenderer.js +1 -1
  634. package/renderers/htmlRenderer/index.d.ts +1 -0
  635. package/renderers/index.d.ts +42 -0
  636. package/renderers/index.js +16 -2
  637. package/renderers/index.mjs +22 -7
  638. package/renderers/numericRenderer/index.d.ts +1 -0
  639. package/renderers/numericRenderer/numericRenderer.d.ts +5 -0
  640. package/renderers/numericRenderer/numericRenderer.js +1 -1
  641. package/renderers/passwordRenderer/index.d.ts +1 -0
  642. package/renderers/passwordRenderer/passwordRenderer.d.ts +5 -0
  643. package/renderers/passwordRenderer/passwordRenderer.js +1 -1
  644. package/renderers/registry.d.ts +18 -0
  645. package/renderers/registry.js +3 -2
  646. package/renderers/textRenderer/index.d.ts +1 -0
  647. package/renderers/textRenderer/textRenderer.d.ts +5 -0
  648. package/renderers/textRenderer/textRenderer.js +1 -1
  649. package/selection/highlight/constants.js +1 -1
  650. package/selection/highlight/highlight.js +7 -5
  651. package/selection/highlight/highlight.mjs +5 -4
  652. package/selection/highlight/types/activeHeader.js +2 -0
  653. package/selection/highlight/types/activeHeader.mjs +1 -0
  654. package/selection/highlight/types/area.js +2 -0
  655. package/selection/highlight/types/area.mjs +1 -0
  656. package/selection/highlight/types/cell.js +2 -0
  657. package/selection/highlight/types/cell.mjs +1 -0
  658. package/selection/highlight/types/customSelection.js +2 -0
  659. package/selection/highlight/types/customSelection.mjs +1 -0
  660. package/selection/highlight/types/fill.js +2 -0
  661. package/selection/highlight/types/fill.mjs +1 -0
  662. package/selection/highlight/types/header.js +2 -0
  663. package/selection/highlight/types/header.mjs +1 -0
  664. package/selection/highlight/types/index.js +2 -0
  665. package/selection/highlight/types/index.mjs +1 -0
  666. package/selection/highlight/visualSelection.js +7 -5
  667. package/selection/highlight/visualSelection.mjs +5 -4
  668. package/selection/index.d.ts +5 -0
  669. package/selection/index.js +2 -0
  670. package/selection/mouseEventHandler.js +4 -4
  671. package/selection/mouseEventHandler.mjs +3 -3
  672. package/selection/range.js +5 -5
  673. package/selection/range.mjs +4 -4
  674. package/selection/selection.js +18 -9
  675. package/selection/selection.mjs +17 -9
  676. package/selection/transformation.js +3 -2
  677. package/selection/transformation.mjs +3 -2
  678. package/selection/utils.js +6 -4
  679. package/selection/utils.mjs +3 -2
  680. package/settings.d.ts +208 -0
  681. package/tableView.js +20 -14
  682. package/tableView.mjs +19 -14
  683. package/translations/changesObservable/observable.js +10 -5
  684. package/translations/changesObservable/observable.mjs +10 -5
  685. package/translations/changesObservable/observer.js +6 -1
  686. package/translations/changesObservable/observer.mjs +6 -1
  687. package/translations/changesObservable/utils.js +1 -0
  688. package/translations/changesObservable/utils.mjs +1 -0
  689. package/translations/index.d.ts +1 -0
  690. package/translations/index.js +3 -1
  691. package/translations/indexMapper.d.ts +45 -0
  692. package/translations/indexMapper.js +8 -3
  693. package/translations/indexMapper.mjs +6 -2
  694. package/translations/mapCollections/aggregatedCollection.js +3 -3
  695. package/translations/mapCollections/aggregatedCollection.mjs +2 -2
  696. package/translations/mapCollections/index.js +2 -0
  697. package/translations/mapCollections/mapCollection.js +1 -1
  698. package/translations/maps/hidingMap.js +3 -3
  699. package/translations/maps/hidingMap.mjs +2 -2
  700. package/translations/maps/indexMap.d.ts +10 -0
  701. package/translations/maps/indexesSequence.js +4 -4
  702. package/translations/maps/indexesSequence.mjs +3 -3
  703. package/translations/maps/linkedPhysicalIndexToValueMap.js +4 -2
  704. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +3 -2
  705. package/translations/maps/physicalIndexToValueMap.js +4 -4
  706. package/translations/maps/physicalIndexToValueMap.mjs +3 -3
  707. package/translations/maps/trimmingMap.js +3 -3
  708. package/translations/maps/trimmingMap.mjs +2 -2
  709. package/translations/maps/utils/actionsOnIndexes.js +2 -0
  710. package/translations/maps/utils/actionsOnIndexes.mjs +1 -0
  711. package/translations/maps/utils/indexesSequence.js +2 -0
  712. package/translations/maps/utils/indexesSequence.mjs +1 -0
  713. package/translations/maps/utils/physicallyIndexed.js +2 -0
  714. package/translations/maps/utils/physicallyIndexed.mjs +1 -0
  715. package/utils/dataStructures/priorityMap.js +4 -2
  716. package/utils/dataStructures/priorityMap.mjs +2 -1
  717. package/utils/dataStructures/tree.js +3 -1
  718. package/utils/dataStructures/tree.mjs +1 -0
  719. package/utils/dataStructures/uniqueMap.js +3 -1
  720. package/utils/dataStructures/uniqueMap.mjs +2 -1
  721. package/utils/dataStructures/uniqueSet.js +2 -0
  722. package/utils/dataStructures/uniqueSet.mjs +1 -0
  723. package/utils/ghostTable.js +5 -4
  724. package/utils/ghostTable.mjs +3 -3
  725. package/utils/interval.js +1 -2
  726. package/utils/interval.mjs +0 -1
  727. package/utils/parseTable.d.ts +5 -0
  728. package/utils/parseTable.js +2 -2
  729. package/utils/parseTable.mjs +1 -1
  730. package/utils/rootInstance.js +3 -2
  731. package/utils/samplesGenerator.js +0 -1
  732. package/utils/samplesGenerator.mjs +0 -1
  733. package/utils/staticRegister.js +3 -1
  734. package/utils/staticRegister.mjs +1 -0
  735. package/validators/autocompleteValidator/autocompleteValidator.d.ts +5 -0
  736. package/validators/autocompleteValidator/autocompleteValidator.js +1 -1
  737. package/validators/autocompleteValidator/index.d.ts +1 -0
  738. package/validators/base.d.ts +6 -0
  739. package/validators/dateValidator/dateValidator.d.ts +5 -0
  740. package/validators/dateValidator/dateValidator.js +2 -2
  741. package/validators/dateValidator/index.d.ts +1 -0
  742. package/validators/index.d.ts +33 -0
  743. package/validators/index.js +13 -2
  744. package/validators/index.mjs +16 -4
  745. package/validators/numericValidator/index.d.ts +1 -0
  746. package/validators/numericValidator/numericValidator.d.ts +5 -0
  747. package/validators/numericValidator/numericValidator.js +1 -1
  748. package/validators/registry.d.ts +18 -0
  749. package/validators/registry.js +3 -2
  750. package/validators/timeValidator/index.d.ts +1 -0
  751. package/validators/timeValidator/timeValidator.d.ts +5 -0
  752. package/validators/timeValidator/timeValidator.js +3 -1
  753. package/validators/timeValidator/timeValidator.mjs +1 -0
  754. package/handsontable-general-terms.pdf +0 -0
  755. package/handsontable.d.ts +0 -2616
  756. package/plugins/formulas/autofill.js +0 -180
  757. package/plugins/formulas/autofill.mjs +0 -172
@@ -22,17 +22,25 @@ require("core-js/modules/es.function.name.js");
22
22
 
23
23
  require("core-js/modules/es.array.from.js");
24
24
 
25
+ require("core-js/modules/es.regexp.exec.js");
26
+
27
+ require("core-js/modules/es.object.keys.js");
28
+
29
+ require("core-js/modules/es.array.filter.js");
30
+
31
+ require("core-js/modules/es.object.get-own-property-descriptors.js");
32
+
25
33
  exports.__esModule = true;
26
- exports.Formulas = exports.PLUGIN_PRIORITY = exports.PLUGIN_KEY = void 0;
34
+ exports.PLUGIN_PRIORITY = exports.PLUGIN_KEY = exports.Formulas = void 0;
27
35
 
28
36
  require("core-js/modules/es.array.concat.js");
29
37
 
38
+ require("core-js/modules/es.object.to-string.js");
39
+
30
40
  require("core-js/modules/web.dom-collections.for-each.js");
31
41
 
32
42
  require("core-js/modules/es.array.iterator.js");
33
43
 
34
- require("core-js/modules/es.object.to-string.js");
35
-
36
44
  require("core-js/modules/es.set.js");
37
45
 
38
46
  require("core-js/modules/es.string.iterator.js");
@@ -53,12 +61,12 @@ require("core-js/modules/es.weak-map.js");
53
61
 
54
62
  var _base = require("../base");
55
63
 
56
- var _autofill = require("./autofill");
57
-
58
64
  var _staticRegister = _interopRequireDefault(require("../../utils/staticRegister"));
59
65
 
60
66
  var _console = require("../../helpers/console");
61
67
 
68
+ var _number = require("../../helpers/number");
69
+
62
70
  var _mixed = require("../../helpers/mixed");
63
71
 
64
72
  var _register = require("./engine/register");
@@ -83,6 +91,10 @@ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symb
83
91
 
84
92
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
85
93
 
94
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
95
+
96
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
97
+
86
98
  function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
87
99
 
88
100
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
@@ -93,7 +105,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
93
105
 
94
106
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
95
107
 
96
- function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
108
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
97
109
 
98
110
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
99
111
 
@@ -103,7 +115,7 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+
103
115
 
104
116
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
105
117
 
106
- function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
118
+ function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
107
119
 
108
120
  function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
109
121
 
@@ -113,7 +125,7 @@ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || func
113
125
 
114
126
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
115
127
 
116
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
128
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
117
129
 
118
130
  function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
119
131
 
@@ -123,6 +135,10 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
123
135
 
124
136
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
125
137
 
138
+ function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
139
+
140
+ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
141
+
126
142
  function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
127
143
 
128
144
  function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
@@ -137,6 +153,7 @@ var PLUGIN_KEY = 'formulas';
137
153
  exports.PLUGIN_KEY = PLUGIN_KEY;
138
154
  var PLUGIN_PRIORITY = 260;
139
155
  exports.PLUGIN_PRIORITY = PLUGIN_PRIORITY;
156
+ var ROW_MOVE_UNDO_REDO_NAME = 'row_move';
140
157
 
141
158
  _pluginHooks.default.getSingleton().register('afterNamedExpressionAdded');
142
159
 
@@ -148,13 +165,24 @@ _pluginHooks.default.getSingleton().register('afterSheetRemoved');
148
165
 
149
166
  _pluginHooks.default.getSingleton().register('afterSheetRenamed');
150
167
 
151
- _pluginHooks.default.getSingleton().register('afterFormulasValuesUpdate');
168
+ _pluginHooks.default.getSingleton().register('afterFormulasValuesUpdate'); // This function will be used for detecting changes coming from the `UndoRedo` plugin. This kind of change won't be
169
+ // handled by whole body of listeners and therefore won't change undo/redo stack inside engine provided by HyperFormula.
170
+ // HyperFormula's `undo` and `redo` methods will do it instead. Please keep in mind that undo/redo stacks inside
171
+ // instances of Handsontable and HyperFormula should be synced (number of actions should be the same).
172
+
173
+
174
+ var isBlockedSource = function isBlockedSource(source) {
175
+ return source === 'UndoRedo.undo' || source === 'UndoRedo.redo' || source === 'auto';
176
+ };
152
177
  /**
153
178
  * This plugin allows you to perform Excel-like calculations in your business applications. It does it by an
154
179
  * integration with our other product, [HyperFormula](https://github.com/handsontable/hyperformula/), which is a
155
180
  * powerful calculation engine with an extensive number of features.
156
181
  *
182
+ * To test out HyperFormula, see [this guide](@/guides/formulas/formula-calculation.md#available-functions).
183
+ *
157
184
  * @plugin Formulas
185
+ * @class Formulas
158
186
  */
159
187
 
160
188
 
@@ -180,17 +208,17 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
180
208
 
181
209
  _this = _super.call.apply(_super, [this].concat(_args));
182
210
 
183
- _internalOperationPending.set(_assertThisInitialized(_this), {
211
+ _classPrivateFieldInitSpec(_assertThisInitialized(_this), _internalOperationPending, {
184
212
  writable: true,
185
213
  value: false
186
214
  });
187
215
 
188
- _hotWasInitializedWithEmptyData.set(_assertThisInitialized(_this), {
216
+ _classPrivateFieldInitSpec(_assertThisInitialized(_this), _hotWasInitializedWithEmptyData, {
189
217
  writable: true,
190
218
  value: false
191
219
  });
192
220
 
193
- _engineListeners.set(_assertThisInitialized(_this), {
221
+ _classPrivateFieldInitSpec(_assertThisInitialized(_this), _engineListeners, {
194
222
  writable: true,
195
223
  value: [['valuesUpdated', function () {
196
224
  var _this2;
@@ -275,7 +303,11 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
275
303
 
276
304
 
277
305
  if (this.sheetName !== null && !this.engine.doesSheetExist(this.sheetName)) {
278
- this.sheetName = this.addSheet(this.sheetName, this.hot.getSourceDataArray());
306
+ var newSheetName = this.addSheet(this.sheetName, this.hot.getSourceDataArray());
307
+
308
+ if (newSheetName !== false) {
309
+ this.sheetName = newSheetName;
310
+ }
279
311
  }
280
312
 
281
313
  this.addHook('beforeLoadData', function () {
@@ -325,10 +357,31 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
325
357
  });
326
358
  this.addHook('afterRemoveCol', function () {
327
359
  return _this8.onAfterRemoveCol.apply(_this8, arguments);
360
+ }); // Handling undo actions on data just using HyperFormula's UndoRedo mechanism
361
+
362
+ this.addHook('beforeUndo', function (action) {
363
+ // TODO: Move action isn't handled by HyperFormula.
364
+ if ((action === null || action === void 0 ? void 0 : action.actionType) === ROW_MOVE_UNDO_REDO_NAME) {
365
+ return;
366
+ }
367
+
368
+ _this8.engine.undo();
369
+ }); // Handling redo actions on data just using HyperFormula's UndoRedo mechanism
370
+
371
+ this.addHook('beforeRedo', function (action) {
372
+ // TODO: Move action isn't handled by HyperFormula.
373
+ if ((action === null || action === void 0 ? void 0 : action.actionType) === ROW_MOVE_UNDO_REDO_NAME) {
374
+ return;
375
+ }
376
+
377
+ _this8.engine.redo();
378
+ });
379
+ this.addHook('afterDetachChild', function () {
380
+ return _this8.onAfterDetachChild.apply(_this8, arguments);
381
+ });
382
+ this.addHook('beforeAutofill', function () {
383
+ return _this8.onBeforeAutofill.apply(_this8, arguments);
328
384
  });
329
- var autofillHooks = (0, _autofill.createAutofillHooks)(this);
330
- this.addHook('beforeAutofill', autofillHooks.beforeAutofill);
331
- this.addHook('afterAutofill', autofillHooks.afterAutofill);
332
385
 
333
386
  _classPrivateFieldGet(this, _engineListeners).forEach(function (_ref) {
334
387
  var _ref2 = _slicedToArray(_ref, 2),
@@ -358,6 +411,7 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
358
411
  });
359
412
 
360
413
  (0, _register.unregisterEngine)(this.engine, this.hot);
414
+ this.engine = null;
361
415
 
362
416
  _get(_getPrototypeOf(Formulas.prototype), "disablePlugin", this).call(this);
363
417
  }
@@ -414,6 +468,7 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
414
468
  _classPrivateFieldSet(this, _engineListeners, null);
415
469
 
416
470
  (0, _register.unregisterEngine)(this.engine, this.hot);
471
+ this.engine = null;
417
472
 
418
473
  _get(_getPrototypeOf(Formulas.prototype), "destroy", this).call(this);
419
474
  }
@@ -503,7 +558,7 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
503
558
  var actualSheetName = this.engine.addSheet(sheetName !== null && sheetName !== void 0 ? sheetName : void 0);
504
559
 
505
560
  if (sheetData) {
506
- this.engine.setSheetContent(actualSheetName, sheetData);
561
+ this.engine.setSheetContent(this.engine.getSheetId(actualSheetName), sheetData);
507
562
  }
508
563
 
509
564
  return actualSheetName;
@@ -540,18 +595,26 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
540
595
  * @param {number} row Visual row index.
541
596
  * @param {number} column Visual column index.
542
597
  * @param {number} [sheet] The target sheet id, defaults to the current sheet.
543
- * @returns {string} Possible values: 'FORMULA' | 'VALUE' | 'MATRIX' | 'EMPTY'.
598
+ * @returns {string} Possible values: 'FORMULA' | 'VALUE' | 'ARRAYFORMULA' | 'EMPTY'.
544
599
  */
545
600
 
546
601
  }, {
547
602
  key: "getCellType",
548
603
  value: function getCellType(row, column) {
549
604
  var sheet = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.sheetId;
550
- return this.engine.getCellType({
551
- sheet: sheet,
552
- row: this.hot.toPhysicalRow(row),
553
- col: this.hot.toPhysicalColumn(column)
554
- });
605
+ var physicalRow = this.hot.toPhysicalRow(row);
606
+ var physicalColumn = this.hot.toPhysicalColumn(column);
607
+
608
+ if (physicalRow !== null && physicalColumn !== null) {
609
+ return this.engine.getCellType({
610
+ sheet: sheet,
611
+ row: physicalRow,
612
+ col: physicalColumn
613
+ });
614
+ } else {
615
+ // Should return `EMPTY` when out of bounds (according to the test cases).
616
+ return 'EMPTY';
617
+ }
555
618
  }
556
619
  /**
557
620
  * Returns `true` if under specified visual coordinates is formula.
@@ -566,8 +629,18 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
566
629
  key: "isFormulaCellType",
567
630
  value: function isFormulaCellType(row, column) {
568
631
  var sheet = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.sheetId;
569
- var cellType = this.getCellType(row, column, sheet);
570
- return cellType === 'FORMULA' || cellType === 'MATRIX';
632
+ var physicalRow = this.hot.toPhysicalRow(row);
633
+ var physicalColumn = this.hot.toPhysicalColumn(column);
634
+
635
+ if (physicalRow === null || physicalColumn === null) {
636
+ return false;
637
+ }
638
+
639
+ return this.engine.doesCellHaveFormula({
640
+ sheet: sheet,
641
+ row: physicalRow,
642
+ col: physicalColumn
643
+ });
571
644
  }
572
645
  /**
573
646
  * Renders dependent sheets (handsontable instances) based on the changes - list of the
@@ -716,6 +789,44 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
716
789
 
717
790
  return value;
718
791
  }
792
+ /**
793
+ * `onBeforeAutofill` hook callback.
794
+ *
795
+ * @private
796
+ * @param {Array[]} fillData The data that was used to fill the `targetRange`. If `beforeAutofill` was used
797
+ * and returned `[[]]`, this will be the same object that was returned from `beforeAutofill`.
798
+ * @param {CellRange} sourceRange The range values will be filled from.
799
+ * @param {CellRange} targetRange The range new values will be filled into.
800
+ * @returns {boolean|*}
801
+ */
802
+
803
+ }, {
804
+ key: "onBeforeAutofill",
805
+ value: function onBeforeAutofill(fillData, sourceRange, targetRange) {
806
+ var _this13 = this;
807
+
808
+ var withSheetId = function withSheetId(range) {
809
+ return _objectSpread(_objectSpread({}, range), {}, {
810
+ sheet: _this13.sheetId
811
+ });
812
+ };
813
+
814
+ var engineSourceRange = {
815
+ start: withSheetId(sourceRange.getTopLeftCorner()),
816
+ end: withSheetId(sourceRange.getBottomRightCorner())
817
+ };
818
+ var engineTargetRange = {
819
+ start: withSheetId(targetRange.getTopLeftCorner()),
820
+ end: withSheetId(targetRange.getBottomRightCorner())
821
+ }; // Blocks the autofill operation if HyperFormula says that at least one of
822
+ // the underlying cell's contents cannot be set.
823
+
824
+ if (this.engine.isItPossibleToSetCellContents(engineTargetRange) === false) {
825
+ return false;
826
+ }
827
+
828
+ return this.engine.getFillRangeData(engineSourceRange, engineTargetRange);
829
+ }
719
830
  /**
720
831
  * `beforeLoadData` hook callback.
721
832
  *
@@ -761,10 +872,10 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
761
872
  if (!_classPrivateFieldGet(this, _hotWasInitializedWithEmptyData)) {
762
873
  var sourceDataArray = this.hot.getSourceDataArray();
763
874
 
764
- if (this.engine.isItPossibleToReplaceSheetContent(this.sheetName, sourceDataArray)) {
875
+ if (this.engine.isItPossibleToReplaceSheetContent(this.sheetId, sourceDataArray)) {
765
876
  _classPrivateFieldSet(this, _internalOperationPending, true);
766
877
 
767
- var dependentCells = this.engine.setSheetContent(this.sheetName, this.hot.getSourceDataArray());
878
+ var dependentCells = this.engine.setSheetContent(this.sheetId, this.hot.getSourceDataArray());
768
879
  this.renderDependentSheets(dependentCells);
769
880
 
770
881
  _classPrivateFieldSet(this, _internalOperationPending, false);
@@ -789,18 +900,23 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
789
900
  value: function onModifyData(row, column, valueHolder, ioMode) {
790
901
  if (ioMode !== 'get' || _classPrivateFieldGet(this, _internalOperationPending) || this.sheetName === null || !this.engine.doesSheetExist(this.sheetName)) {
791
902
  return;
792
- } // `column` is here as visual index because of inconsistencies related to hook execution in `src/dataMap`.
903
+ }
793
904
 
905
+ var visualRow = this.hot.toVisualRow(row); // `column` is here as visual index because of inconsistencies related to hook execution in `src/dataMap`.
794
906
 
795
- var isFormulaCellType = this.isFormulaCellType(this.hot.toVisualRow(row), column);
907
+ var isFormulaCellType = this.isFormulaCellType(visualRow, column);
796
908
 
797
909
  if (!isFormulaCellType) {
798
- if ((0, _utils.isEscapedFormulaExpression)(valueHolder.value)) {
799
- valueHolder.value = (0, _utils.unescapeFormulaExpression)(valueHolder.value);
800
- }
910
+ var cellType = this.getCellType(visualRow, column);
801
911
 
802
- return;
803
- } // `toPhysicalColumn` is here because of inconsistencies related to hook execution in `src/dataMap`.
912
+ if (cellType !== 'ARRAY') {
913
+ if ((0, _utils.isEscapedFormulaExpression)(valueHolder.value)) {
914
+ valueHolder.value = (0, _utils.unescapeFormulaExpression)(valueHolder.value);
915
+ }
916
+
917
+ return;
918
+ }
919
+ } // `toPhysicalColumn` is here because of inconsistencies related to hook execution in `DataMap`.
804
920
 
805
921
 
806
922
  var address = {
@@ -831,12 +947,17 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
831
947
  return;
832
948
  }
833
949
 
950
+ var visualRow = this.hot.toVisualRow(row);
834
951
  var visualColumn = this.hot.propToCol(columnOrProp); // `column` is here as visual index because of inconsistencies related to hook execution in `src/dataMap`.
835
952
 
836
- var isFormulaCellType = this.isFormulaCellType(this.hot.toVisualRow(row), visualColumn);
953
+ var isFormulaCellType = this.isFormulaCellType(visualRow, visualColumn);
837
954
 
838
955
  if (!isFormulaCellType) {
839
- return;
956
+ var cellType = this.getCellType(visualRow, visualColumn);
957
+
958
+ if (cellType !== 'ARRAY') {
959
+ return;
960
+ }
840
961
  }
841
962
 
842
963
  var dimensions = this.engine.getSheetDimensions(this.engine.getSheetId(this.sheetName)); // Don't actually change the source data if HyperFormula is not
@@ -861,42 +982,49 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
861
982
  *
862
983
  * @private
863
984
  * @param {Array[]} changes An array of changes in format [[row, prop, oldValue, value], ...].
985
+ * @param {string} [source] String that identifies source of hook call
986
+ * ([list of all available sources]{@link http://docs.handsontable.com/tutorial-using-callbacks.html#page-source-definition}).
864
987
  */
865
988
 
866
989
  }, {
867
990
  key: "onAfterSetDataAtCell",
868
- value: function onAfterSetDataAtCell(changes) {
869
- var _this13 = this;
991
+ value: function onAfterSetDataAtCell(changes, source) {
992
+ var _this14 = this;
993
+
994
+ if (isBlockedSource(source)) {
995
+ return;
996
+ }
870
997
 
871
- var dependentCells = [];
872
998
  var outOfBoundsChanges = [];
873
999
  var changedCells = [];
874
- changes.forEach(function (_ref9) {
875
- var _ref10 = _slicedToArray(_ref9, 4),
876
- row = _ref10[0],
877
- prop = _ref10[1],
878
- newValue = _ref10[3];
1000
+ var dependentCells = this.engine.batch(function () {
1001
+ changes.forEach(function (_ref9) {
1002
+ var _ref10 = _slicedToArray(_ref9, 4),
1003
+ row = _ref10[0],
1004
+ prop = _ref10[1],
1005
+ newValue = _ref10[3];
879
1006
 
880
- var column = _this13.hot.propToCol(prop);
1007
+ var column = _this14.hot.propToCol(prop);
881
1008
 
882
- var physicalRow = _this13.hot.toPhysicalRow(row);
1009
+ var physicalRow = _this14.hot.toPhysicalRow(row);
883
1010
 
884
- var physicalColumn = _this13.hot.toPhysicalColumn(column);
1011
+ var physicalColumn = _this14.hot.toPhysicalColumn(column);
885
1012
 
886
- var address = {
887
- row: physicalRow,
888
- col: physicalColumn,
889
- sheet: _this13.sheetId
890
- };
1013
+ var address = {
1014
+ row: physicalRow,
1015
+ col: physicalColumn,
1016
+ sheet: _this14.sheetId
1017
+ };
891
1018
 
892
- if (physicalRow !== null && physicalColumn !== null) {
893
- dependentCells.push.apply(dependentCells, _toConsumableArray(_this13.syncChangeWithEngine(row, column, newValue)));
894
- } else {
895
- outOfBoundsChanges.push([row, column, newValue]);
896
- }
1019
+ if (physicalRow !== null && physicalColumn !== null) {
1020
+ _this14.syncChangeWithEngine(row, column, newValue);
1021
+ } else {
1022
+ outOfBoundsChanges.push([row, column, newValue]);
1023
+ }
897
1024
 
898
- changedCells.push({
899
- address: address
1025
+ changedCells.push({
1026
+ address: address
1027
+ });
900
1028
  });
901
1029
  });
902
1030
 
@@ -904,17 +1032,18 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
904
1032
  // Workaround for rows/columns being created two times (by HOT and the engine).
905
1033
  // (unfortunately, this requires an extra re-render)
906
1034
  this.hot.addHookOnce('afterChange', function () {
907
- var outOfBoundsDependentCells = [];
908
- outOfBoundsChanges.forEach(function (_ref11) {
909
- var _ref12 = _slicedToArray(_ref11, 3),
910
- row = _ref12[0],
911
- column = _ref12[1],
912
- newValue = _ref12[2];
913
-
914
- outOfBoundsDependentCells.push.apply(outOfBoundsDependentCells, _toConsumableArray(_this13.syncChangeWithEngine(row, column, newValue)));
1035
+ var outOfBoundsDependentCells = _this14.engine.batch(function () {
1036
+ outOfBoundsChanges.forEach(function (_ref11) {
1037
+ var _ref12 = _slicedToArray(_ref11, 3),
1038
+ row = _ref12[0],
1039
+ column = _ref12[1],
1040
+ newValue = _ref12[2];
1041
+
1042
+ _this14.syncChangeWithEngine(row, column, newValue);
1043
+ });
915
1044
  });
916
1045
 
917
- _this13.renderDependentSheets(outOfBoundsDependentCells, true);
1046
+ _this14.renderDependentSheets(outOfBoundsDependentCells, true);
918
1047
  });
919
1048
  }
920
1049
 
@@ -926,28 +1055,40 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
926
1055
  *
927
1056
  * @private
928
1057
  * @param {Array[]} changes An array of changes in format [[row, column, oldValue, value], ...].
1058
+ * @param {string} [source] String that identifies source of hook call
1059
+ * ([list of all available sources]{@link http://docs.handsontable.com/tutorial-using-callbacks.html#page-source-definition}).
929
1060
  */
930
1061
 
931
1062
  }, {
932
1063
  key: "onAfterSetSourceDataAtCell",
933
- value: function onAfterSetSourceDataAtCell(changes) {
934
- var _this14 = this;
1064
+ value: function onAfterSetSourceDataAtCell(changes, source) {
1065
+ var _this15 = this;
1066
+
1067
+ if (isBlockedSource(source)) {
1068
+ return;
1069
+ }
935
1070
 
936
1071
  var dependentCells = [];
937
1072
  var changedCells = [];
938
1073
  changes.forEach(function (_ref13) {
939
1074
  var _ref14 = _slicedToArray(_ref13, 4),
940
1075
  row = _ref14[0],
941
- column = _ref14[1],
1076
+ prop = _ref14[1],
942
1077
  newValue = _ref14[3];
943
1078
 
1079
+ var column = _this15.hot.propToCol(prop);
1080
+
1081
+ if (!(0, _number.isNumeric)(column)) {
1082
+ return;
1083
+ }
1084
+
944
1085
  var address = {
945
1086
  row: row,
946
- col: _this14.toPhysicalColumnPosition(column),
947
- sheet: _this14.sheetId
1087
+ col: _this15.toPhysicalColumnPosition(column),
1088
+ sheet: _this15.sheetId
948
1089
  };
949
1090
 
950
- if (!_this14.engine.isItPossibleToSetCellContents(address)) {
1091
+ if (!_this15.engine.isItPossibleToSetCellContents(address)) {
951
1092
  (0, _console.warn)("Not possible to set source cell data at ".concat(JSON.stringify(address)));
952
1093
  return;
953
1094
  }
@@ -955,7 +1096,7 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
955
1096
  changedCells.push({
956
1097
  address: address
957
1098
  });
958
- dependentCells.push.apply(dependentCells, _toConsumableArray(_this14.engine.setCellContents(address, newValue)));
1099
+ dependentCells.push.apply(dependentCells, _toConsumableArray(_this15.engine.setCellContents(address, newValue)));
959
1100
  });
960
1101
  this.renderDependentSheets(dependentCells);
961
1102
  this.validateDependentCells(dependentCells, changedCells);
@@ -972,7 +1113,7 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
972
1113
  }, {
973
1114
  key: "onBeforeCreateRow",
974
1115
  value: function onBeforeCreateRow(row, amount) {
975
- if (!this.engine.isItPossibleToAddRows(this.sheetId, [this.toPhysicalRowPosition(row), amount])) {
1116
+ if (this.sheetId === null || !this.engine.doesSheetExist(this.sheetName) || !this.engine.isItPossibleToAddRows(this.sheetId, [this.toPhysicalRowPosition(row), amount])) {
976
1117
  return false;
977
1118
  }
978
1119
  }
@@ -988,7 +1129,7 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
988
1129
  }, {
989
1130
  key: "onBeforeCreateCol",
990
1131
  value: function onBeforeCreateCol(col, amount) {
991
- if (!this.engine.isItPossibleToAddColumns(this.sheetId, [this.toPhysicalColumnPosition(col), amount])) {
1132
+ if (this.sheetId === null || !this.engine.doesSheetExist(this.sheetName) || !this.engine.isItPossibleToAddColumns(this.sheetId, [this.toPhysicalColumnPosition(col), amount])) {
992
1133
  return false;
993
1134
  }
994
1135
  }
@@ -1005,10 +1146,10 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
1005
1146
  }, {
1006
1147
  key: "onBeforeRemoveRow",
1007
1148
  value: function onBeforeRemoveRow(row, amount, physicalRows) {
1008
- var _this15 = this;
1149
+ var _this16 = this;
1009
1150
 
1010
1151
  var possible = physicalRows.every(function (physicalRow) {
1011
- return _this15.engine.isItPossibleToRemoveRows(_this15.sheetId, [physicalRow, 1]);
1152
+ return _this16.engine.isItPossibleToRemoveRows(_this16.sheetId, [physicalRow, 1]);
1012
1153
  });
1013
1154
  return possible === false ? false : void 0;
1014
1155
  }
@@ -1025,10 +1166,10 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
1025
1166
  }, {
1026
1167
  key: "onBeforeRemoveCol",
1027
1168
  value: function onBeforeRemoveCol(col, amount, physicalColumns) {
1028
- var _this16 = this;
1169
+ var _this17 = this;
1029
1170
 
1030
1171
  var possible = physicalColumns.every(function (physicalColumn) {
1031
- return _this16.engine.isItPossibleToRemoveColumns(_this16.sheetId, [physicalColumn, 1]);
1172
+ return _this17.engine.isItPossibleToRemoveColumns(_this17.sheetId, [physicalColumn, 1]);
1032
1173
  });
1033
1174
  return possible === false ? false : void 0;
1034
1175
  }
@@ -1038,11 +1179,17 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
1038
1179
  * @private
1039
1180
  * @param {number} row Represents the visual index of first newly created row in the data source array.
1040
1181
  * @param {number} amount Number of newly created rows in the data source array.
1182
+ * @param {string} [source] String that identifies source of hook call
1183
+ * ([list of all available sources]{@link http://docs.handsontable.com/tutorial-using-callbacks.html#page-source-definition}).
1041
1184
  */
1042
1185
 
1043
1186
  }, {
1044
1187
  key: "onAfterCreateRow",
1045
- value: function onAfterCreateRow(row, amount) {
1188
+ value: function onAfterCreateRow(row, amount, source) {
1189
+ if (isBlockedSource(source)) {
1190
+ return;
1191
+ }
1192
+
1046
1193
  var changes = this.engine.addRows(this.sheetId, [this.toPhysicalRowPosition(row), amount]);
1047
1194
  this.renderDependentSheets(changes);
1048
1195
  }
@@ -1052,11 +1199,17 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
1052
1199
  * @private
1053
1200
  * @param {number} col Represents the visual index of first newly created column in the data source.
1054
1201
  * @param {number} amount Number of newly created columns in the data source.
1202
+ * @param {string} [source] String that identifies source of hook call
1203
+ * ([list of all available sources]{@link http://docs.handsontable.com/tutorial-using-callbacks.html#page-source-definition}).
1055
1204
  */
1056
1205
 
1057
1206
  }, {
1058
1207
  key: "onAfterCreateCol",
1059
- value: function onAfterCreateCol(col, amount) {
1208
+ value: function onAfterCreateCol(col, amount, source) {
1209
+ if (isBlockedSource(source)) {
1210
+ return;
1211
+ }
1212
+
1060
1213
  var changes = this.engine.addColumns(this.sheetId, [this.toPhysicalColumnPosition(col), amount]);
1061
1214
  this.renderDependentSheets(changes);
1062
1215
  }
@@ -1067,17 +1220,23 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
1067
1220
  * @param {number} row Visual index of starter row.
1068
1221
  * @param {number} amount An amount of removed rows.
1069
1222
  * @param {number[]} physicalRows An array of physical rows removed from the data source.
1223
+ * @param {string} [source] String that identifies source of hook call
1224
+ * ([list of all available sources]{@link http://docs.handsontable.com/tutorial-using-callbacks.html#page-source-definition}).
1070
1225
  */
1071
1226
 
1072
1227
  }, {
1073
1228
  key: "onAfterRemoveRow",
1074
- value: function onAfterRemoveRow(row, amount, physicalRows) {
1075
- var _this17 = this;
1229
+ value: function onAfterRemoveRow(row, amount, physicalRows, source) {
1230
+ var _this18 = this;
1231
+
1232
+ if (isBlockedSource(source)) {
1233
+ return;
1234
+ }
1076
1235
 
1077
1236
  var descendingPhysicalRows = physicalRows.sort().reverse();
1078
1237
  var changes = this.engine.batch(function () {
1079
1238
  descendingPhysicalRows.forEach(function (physicalRow) {
1080
- _this17.engine.removeRows(_this17.sheetId, [physicalRow, 1]);
1239
+ _this18.engine.removeRows(_this18.sheetId, [physicalRow, 1]);
1081
1240
  });
1082
1241
  });
1083
1242
  this.renderDependentSheets(changes);
@@ -1089,21 +1248,59 @@ var Formulas = /*#__PURE__*/function (_BasePlugin) {
1089
1248
  * @param {number} col Visual index of starter column.
1090
1249
  * @param {number} amount An amount of removed columns.
1091
1250
  * @param {number[]} physicalColumns An array of physical columns removed from the data source.
1251
+ * @param {string} [source] String that identifies source of hook call
1252
+ * ([list of all available sources]{@link http://docs.handsontable.com/tutorial-using-callbacks.html#page-source-definition}).
1092
1253
  */
1093
1254
 
1094
1255
  }, {
1095
1256
  key: "onAfterRemoveCol",
1096
- value: function onAfterRemoveCol(col, amount, physicalColumns) {
1097
- var _this18 = this;
1257
+ value: function onAfterRemoveCol(col, amount, physicalColumns, source) {
1258
+ var _this19 = this;
1259
+
1260
+ if (isBlockedSource(source)) {
1261
+ return;
1262
+ }
1098
1263
 
1099
1264
  var descendingPhysicalColumns = physicalColumns.sort().reverse();
1100
1265
  var changes = this.engine.batch(function () {
1101
1266
  descendingPhysicalColumns.forEach(function (physicalColumn) {
1102
- _this18.engine.removeColumns(_this18.sheetId, [physicalColumn, 1]);
1267
+ _this19.engine.removeColumns(_this19.sheetId, [physicalColumn, 1]);
1103
1268
  });
1104
1269
  });
1105
1270
  this.renderDependentSheets(changes);
1106
1271
  }
1272
+ /**
1273
+ * `afterDetachChild` hook callback.
1274
+ * Used to sync the data of the rows detached in the Nested Rows plugin with the engine's dataset.
1275
+ *
1276
+ * @private
1277
+ * @param {object} parent An object representing the parent from which the element was detached.
1278
+ * @param {object} element The detached element.
1279
+ * @param {number} finalElementRowIndex The final row index of the detached element.
1280
+ */
1281
+
1282
+ }, {
1283
+ key: "onAfterDetachChild",
1284
+ value: function onAfterDetachChild(parent, element, finalElementRowIndex) {
1285
+ var _element$__children,
1286
+ _this20 = this;
1287
+
1288
+ _classPrivateFieldSet(this, _internalOperationPending, true);
1289
+
1290
+ var rowsData = this.hot.getSourceDataArray(finalElementRowIndex, 0, finalElementRowIndex + (((_element$__children = element.__children) === null || _element$__children === void 0 ? void 0 : _element$__children.length) || 0), this.hot.countSourceCols());
1291
+
1292
+ _classPrivateFieldSet(this, _internalOperationPending, false);
1293
+
1294
+ rowsData.forEach(function (row, relativeRowIndex) {
1295
+ row.forEach(function (value, colIndex) {
1296
+ _this20.engine.setCellContents({
1297
+ col: colIndex,
1298
+ row: finalElementRowIndex + relativeRowIndex,
1299
+ sheet: _this20.sheetId
1300
+ }, [[value]]);
1301
+ });
1302
+ });
1303
+ }
1107
1304
  /**
1108
1305
  * Called when a value is updated in the engine.
1109
1306
  *