handsontable 9.0.2 → 11.1.0

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