handsontable 9.0.1 → 11.0.1

Sign up to get free protection for your applications and to get access to all the features.
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
  *