handsontable 12.1.3 → 12.2.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 (914) hide show
  1. package/3rdparty/SheetClip/SheetClip.js +3 -32
  2. package/3rdparty/SheetClip/SheetClip.mjs +3 -23
  3. package/3rdparty/SheetClip/index.js +0 -2
  4. package/3rdparty/autoResize/autoResize.js +119 -145
  5. package/3rdparty/autoResize/autoResize.mjs +119 -143
  6. package/3rdparty/autoResize/index.js +0 -2
  7. package/3rdparty/walkontable/src/border.js +34 -151
  8. package/3rdparty/walkontable/src/border.mjs +36 -138
  9. package/3rdparty/walkontable/src/calculator/constants.js +0 -3
  10. package/3rdparty/walkontable/src/calculator/constants.mjs +0 -2
  11. package/3rdparty/walkontable/src/calculator/index.js +0 -10
  12. package/3rdparty/walkontable/src/calculator/viewportColumns.js +26 -76
  13. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +26 -69
  14. package/3rdparty/walkontable/src/calculator/viewportRows.js +20 -48
  15. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +20 -41
  16. package/3rdparty/walkontable/src/cell/coords.js +13 -43
  17. package/3rdparty/walkontable/src/cell/coords.mjs +13 -38
  18. package/3rdparty/walkontable/src/cell/range.js +55 -130
  19. package/3rdparty/walkontable/src/cell/range.mjs +60 -126
  20. package/3rdparty/walkontable/src/core/_base.js +16 -74
  21. package/3rdparty/walkontable/src/core/_base.mjs +19 -70
  22. package/3rdparty/walkontable/src/core/clone.js +1 -40
  23. package/3rdparty/walkontable/src/core/clone.mjs +3 -30
  24. package/3rdparty/walkontable/src/core/core.js +3 -57
  25. package/3rdparty/walkontable/src/core/core.mjs +5 -41
  26. package/3rdparty/walkontable/src/event.js +31 -78
  27. package/3rdparty/walkontable/src/event.mjs +31 -65
  28. package/3rdparty/walkontable/src/facade/core.js +1 -17
  29. package/3rdparty/walkontable/src/facade/core.mjs +7 -20
  30. package/3rdparty/walkontable/src/filter/column.js +9 -18
  31. package/3rdparty/walkontable/src/filter/column.mjs +9 -17
  32. package/3rdparty/walkontable/src/filter/row.js +9 -18
  33. package/3rdparty/walkontable/src/filter/row.mjs +9 -17
  34. package/3rdparty/walkontable/src/index.js +0 -31
  35. package/3rdparty/walkontable/src/overlay/_base.js +24 -69
  36. package/3rdparty/walkontable/src/overlay/_base.mjs +31 -68
  37. package/3rdparty/walkontable/src/overlay/bottom.js +28 -99
  38. package/3rdparty/walkontable/src/overlay/bottom.mjs +30 -86
  39. package/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.js +7 -53
  40. package/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.mjs +9 -40
  41. package/3rdparty/walkontable/src/overlay/constants.js +0 -6
  42. package/3rdparty/walkontable/src/overlay/constants.mjs +0 -1
  43. package/3rdparty/walkontable/src/overlay/index.js +0 -17
  44. package/3rdparty/walkontable/src/overlay/inlineStart.js +21 -91
  45. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +23 -78
  46. package/3rdparty/walkontable/src/overlay/top.js +27 -100
  47. package/3rdparty/walkontable/src/overlay/top.mjs +29 -87
  48. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +4 -51
  49. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +6 -38
  50. package/3rdparty/walkontable/src/overlays.js +58 -129
  51. package/3rdparty/walkontable/src/overlays.mjs +60 -121
  52. package/3rdparty/walkontable/src/renderer/_base.js +4 -20
  53. package/3rdparty/walkontable/src/renderer/_base.mjs +8 -22
  54. package/3rdparty/walkontable/src/renderer/cells.js +10 -54
  55. package/3rdparty/walkontable/src/renderer/cells.mjs +22 -52
  56. package/3rdparty/walkontable/src/renderer/colGroup.js +10 -47
  57. package/3rdparty/walkontable/src/renderer/colGroup.mjs +21 -46
  58. package/3rdparty/walkontable/src/renderer/columnHeaders.js +8 -50
  59. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +19 -49
  60. package/3rdparty/walkontable/src/renderer/index.js +13 -36
  61. package/3rdparty/walkontable/src/renderer/index.mjs +17 -27
  62. package/3rdparty/walkontable/src/renderer/rowHeaders.js +8 -50
  63. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +20 -49
  64. package/3rdparty/walkontable/src/renderer/rows.js +3 -46
  65. package/3rdparty/walkontable/src/renderer/rows.mjs +3 -29
  66. package/3rdparty/walkontable/src/renderer/table.js +22 -49
  67. package/3rdparty/walkontable/src/renderer/table.mjs +22 -48
  68. package/3rdparty/walkontable/src/scroll.js +56 -86
  69. package/3rdparty/walkontable/src/scroll.mjs +58 -86
  70. package/3rdparty/walkontable/src/selection.js +20 -101
  71. package/3rdparty/walkontable/src/selection.mjs +22 -85
  72. package/3rdparty/walkontable/src/settings.js +9 -29
  73. package/3rdparty/walkontable/src/settings.mjs +9 -27
  74. package/3rdparty/walkontable/src/table/bottom.js +1 -35
  75. package/3rdparty/walkontable/src/table/bottom.mjs +6 -25
  76. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.js +1 -35
  77. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.mjs +7 -26
  78. package/3rdparty/walkontable/src/table/inlineStart.js +1 -35
  79. package/3rdparty/walkontable/src/table/inlineStart.mjs +3 -22
  80. package/3rdparty/walkontable/src/table/master.js +10 -55
  81. package/3rdparty/walkontable/src/table/master.mjs +15 -44
  82. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +7 -28
  83. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +7 -26
  84. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +7 -28
  85. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +7 -26
  86. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +7 -22
  87. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +7 -20
  88. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +7 -23
  89. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +7 -21
  90. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +7 -22
  91. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +7 -20
  92. package/3rdparty/walkontable/src/table/top.js +1 -35
  93. package/3rdparty/walkontable/src/table/top.mjs +6 -25
  94. package/3rdparty/walkontable/src/table/topInlineStartCorner.js +1 -35
  95. package/3rdparty/walkontable/src/table/topInlineStartCorner.mjs +7 -26
  96. package/3rdparty/walkontable/src/table.js +63 -230
  97. package/3rdparty/walkontable/src/table.mjs +73 -219
  98. package/3rdparty/walkontable/src/types.js +0 -5
  99. package/3rdparty/walkontable/src/types.mjs +0 -5
  100. package/3rdparty/walkontable/src/utils/column.js +9 -31
  101. package/3rdparty/walkontable/src/utils/column.mjs +13 -30
  102. package/3rdparty/walkontable/src/utils/nodesPool.js +3 -12
  103. package/3rdparty/walkontable/src/utils/nodesPool.mjs +3 -11
  104. package/3rdparty/walkontable/src/utils/orderView/constants.js +0 -3
  105. package/3rdparty/walkontable/src/utils/orderView/constants.mjs +0 -2
  106. package/3rdparty/walkontable/src/utils/orderView/index.js +0 -5
  107. package/3rdparty/walkontable/src/utils/orderView/sharedView.js +2 -33
  108. package/3rdparty/walkontable/src/utils/orderView/sharedView.mjs +6 -26
  109. package/3rdparty/walkontable/src/utils/orderView/view.js +14 -46
  110. package/3rdparty/walkontable/src/utils/orderView/view.mjs +21 -50
  111. package/3rdparty/walkontable/src/utils/orderView/viewSize.js +3 -15
  112. package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +3 -14
  113. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +8 -22
  114. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +23 -34
  115. package/3rdparty/walkontable/src/utils/row.js +2 -13
  116. package/3rdparty/walkontable/src/utils/row.mjs +2 -12
  117. package/3rdparty/walkontable/src/viewport.js +38 -100
  118. package/3rdparty/walkontable/src/viewport.mjs +40 -99
  119. package/CHANGELOG.md +76 -1
  120. package/base.js +6 -17
  121. package/base.mjs +6 -12
  122. package/cellTypes/autocompleteType/autocompleteType.js +0 -4
  123. package/cellTypes/autocompleteType/index.js +0 -2
  124. package/cellTypes/checkboxType/checkboxType.js +0 -3
  125. package/cellTypes/checkboxType/index.js +0 -2
  126. package/cellTypes/dateType/dateType.js +0 -4
  127. package/cellTypes/dateType/index.js +0 -2
  128. package/cellTypes/dropdownType/dropdownType.js +0 -4
  129. package/cellTypes/dropdownType/index.js +0 -2
  130. package/cellTypes/handsontableType/handsontableType.js +0 -3
  131. package/cellTypes/handsontableType/index.js +0 -2
  132. package/cellTypes/index.js +0 -21
  133. package/cellTypes/index.mjs +3 -5
  134. package/cellTypes/numericType/index.js +0 -2
  135. package/cellTypes/numericType/numericType.js +0 -4
  136. package/cellTypes/passwordType/index.js +0 -2
  137. package/cellTypes/passwordType/passwordType.js +0 -3
  138. package/cellTypes/registry.js +10 -25
  139. package/cellTypes/registry.mjs +10 -20
  140. package/cellTypes/textType/index.js +0 -2
  141. package/cellTypes/textType/textType.js +0 -3
  142. package/cellTypes/timeType/index.js +0 -2
  143. package/cellTypes/timeType/timeType.js +0 -4
  144. package/core.d.ts +5 -1
  145. package/core.js +505 -973
  146. package/core.mjs +510 -920
  147. package/dataMap/dataMap.js +106 -210
  148. package/dataMap/dataMap.mjs +106 -184
  149. package/{dataSource.js → dataMap/dataSource.js} +18 -66
  150. package/{dataSource.mjs → dataMap/dataSource.mjs} +20 -60
  151. package/dataMap/index.js +0 -13
  152. package/dataMap/metaManager/index.js +21 -46
  153. package/dataMap/metaManager/index.mjs +47 -64
  154. package/dataMap/metaManager/lazyFactoryMap.js +10 -61
  155. package/dataMap/metaManager/lazyFactoryMap.mjs +10 -45
  156. package/dataMap/metaManager/metaLayers/cellMeta.js +16 -52
  157. package/dataMap/metaManager/metaLayers/cellMeta.mjs +16 -37
  158. package/dataMap/metaManager/metaLayers/columnMeta.js +8 -22
  159. package/dataMap/metaManager/metaLayers/columnMeta.mjs +14 -25
  160. package/dataMap/metaManager/metaLayers/globalMeta.js +4 -19
  161. package/dataMap/metaManager/metaLayers/globalMeta.mjs +4 -15
  162. package/dataMap/metaManager/metaLayers/tableMeta.js +4 -15
  163. package/dataMap/metaManager/metaLayers/tableMeta.mjs +28 -37
  164. package/dataMap/metaManager/metaSchema.js +86 -179
  165. package/dataMap/metaManager/metaSchema.mjs +86 -170
  166. package/dataMap/metaManager/mods/dynamicCellMeta.js +6 -36
  167. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +20 -39
  168. package/dataMap/metaManager/mods/extendMetaProperties.js +5 -28
  169. package/dataMap/metaManager/mods/extendMetaProperties.mjs +4 -18
  170. package/dataMap/metaManager/utils.js +11 -20
  171. package/dataMap/metaManager/utils.mjs +21 -23
  172. package/dataMap/replaceData.js +14 -35
  173. package/dataMap/replaceData.mjs +35 -45
  174. package/dist/handsontable.css +2 -2
  175. package/dist/handsontable.full.css +2 -2
  176. package/dist/handsontable.full.js +8478 -20043
  177. package/dist/handsontable.full.min.css +2 -2
  178. package/dist/handsontable.full.min.js +55 -55
  179. package/dist/handsontable.js +7995 -19560
  180. package/dist/handsontable.min.css +2 -2
  181. package/dist/handsontable.min.js +3 -3
  182. package/dist/languages/all.js +0 -175
  183. package/dist/languages/ar-AR.js +0 -10
  184. package/dist/languages/cs-CZ.js +0 -10
  185. package/dist/languages/de-CH.js +0 -10
  186. package/dist/languages/de-DE.js +0 -10
  187. package/dist/languages/en-US.js +0 -10
  188. package/dist/languages/es-MX.js +0 -10
  189. package/dist/languages/fr-FR.js +0 -10
  190. package/dist/languages/it-IT.js +0 -10
  191. package/dist/languages/ja-JP.js +0 -10
  192. package/dist/languages/ko-KR.js +0 -10
  193. package/dist/languages/lv-LV.js +0 -10
  194. package/dist/languages/nb-NO.js +0 -10
  195. package/dist/languages/nl-NL.js +0 -10
  196. package/dist/languages/pl-PL.js +0 -10
  197. package/dist/languages/pt-BR.js +0 -10
  198. package/dist/languages/ru-RU.js +0 -10
  199. package/dist/languages/sr-SP.js +0 -10
  200. package/dist/languages/zh-CN.js +0 -10
  201. package/dist/languages/zh-TW.js +0 -10
  202. package/editorManager.js +36 -105
  203. package/editorManager.mjs +36 -85
  204. package/editors/autocompleteEditor/autocompleteEditor.js +26 -133
  205. package/editors/autocompleteEditor/autocompleteEditor.mjs +26 -104
  206. package/editors/autocompleteEditor/index.js +0 -2
  207. package/editors/baseEditor/baseEditor.js +44 -154
  208. package/editors/baseEditor/baseEditor.mjs +44 -128
  209. package/editors/baseEditor/index.js +0 -2
  210. package/editors/checkboxEditor/checkboxEditor.js +2 -33
  211. package/editors/checkboxEditor/checkboxEditor.mjs +2 -19
  212. package/editors/checkboxEditor/index.js +0 -2
  213. package/editors/dateEditor/dateEditor.js +20 -96
  214. package/editors/dateEditor/dateEditor.mjs +20 -75
  215. package/editors/dateEditor/index.js +0 -2
  216. package/editors/dropdownEditor/dropdownEditor.js +1 -41
  217. package/editors/dropdownEditor/dropdownEditor.mjs +1 -22
  218. package/editors/dropdownEditor/index.js +0 -2
  219. package/editors/handsontableEditor/handsontableEditor.js +13 -85
  220. package/editors/handsontableEditor/handsontableEditor.mjs +13 -66
  221. package/editors/handsontableEditor/index.js +0 -2
  222. package/editors/index.js +0 -25
  223. package/editors/index.mjs +3 -5
  224. package/editors/numericEditor/index.js +0 -2
  225. package/editors/numericEditor/numericEditor.js +1 -31
  226. package/editors/numericEditor/numericEditor.mjs +1 -18
  227. package/editors/passwordEditor/index.js +0 -2
  228. package/editors/passwordEditor/passwordEditor.js +1 -38
  229. package/editors/passwordEditor/passwordEditor.mjs +1 -22
  230. package/editors/registry.js +10 -36
  231. package/editors/registry.mjs +10 -28
  232. package/editors/selectEditor/index.js +0 -2
  233. package/editors/selectEditor/selectEditor.js +21 -73
  234. package/editors/selectEditor/selectEditor.mjs +21 -56
  235. package/editors/textEditor/caretPositioner.js +0 -8
  236. package/editors/textEditor/caretPositioner.mjs +10 -18
  237. package/editors/textEditor/index.js +0 -2
  238. package/editors/textEditor/textEditor.js +38 -137
  239. package/editors/textEditor/textEditor.mjs +38 -106
  240. package/editors/timeEditor/index.js +0 -2
  241. package/editors/timeEditor/timeEditor.js +1 -36
  242. package/editors/timeEditor/timeEditor.mjs +1 -21
  243. package/eventManager.js +20 -56
  244. package/eventManager.mjs +23 -56
  245. package/helpers/array.js +22 -88
  246. package/helpers/array.mjs +22 -58
  247. package/helpers/browser.js +25 -51
  248. package/helpers/browser.mjs +25 -32
  249. package/helpers/console.js +3 -13
  250. package/helpers/console.mjs +8 -16
  251. package/helpers/data.d.ts +0 -1
  252. package/helpers/data.js +10 -55
  253. package/helpers/data.mjs +10 -33
  254. package/helpers/date.js +2 -3
  255. package/helpers/date.mjs +2 -2
  256. package/helpers/dom/element.js +66 -256
  257. package/helpers/dom/element.mjs +73 -192
  258. package/helpers/dom/event.js +3 -7
  259. package/helpers/dom/event.mjs +3 -3
  260. package/helpers/feature.js +13 -47
  261. package/helpers/feature.mjs +13 -31
  262. package/helpers/function.js +14 -59
  263. package/helpers/function.mjs +20 -52
  264. package/helpers/mixed.js +9 -64
  265. package/helpers/mixed.mjs +15 -50
  266. package/helpers/number.js +4 -46
  267. package/helpers/number.mjs +4 -23
  268. package/helpers/object.js +15 -68
  269. package/helpers/object.mjs +21 -50
  270. package/helpers/string.js +6 -28
  271. package/helpers/string.mjs +12 -21
  272. package/helpers/templateLiteralTag.js +0 -6
  273. package/helpers/templateLiteralTag.mjs +7 -10
  274. package/helpers/unicode.js +17 -22
  275. package/helpers/unicode.mjs +17 -13
  276. package/helpers/wrappers/jquery.js +4 -14
  277. package/helpers/wrappers/jquery.mjs +4 -13
  278. package/i18n/constants.js +1 -3
  279. package/i18n/constants.mjs +1 -1
  280. package/i18n/index.js +0 -7
  281. package/i18n/languages/ar-AR.js +0 -16
  282. package/i18n/languages/ar-AR.mjs +1 -4
  283. package/i18n/languages/cs-CZ.js +0 -16
  284. package/i18n/languages/cs-CZ.mjs +1 -4
  285. package/i18n/languages/de-CH.js +0 -16
  286. package/i18n/languages/de-CH.mjs +1 -4
  287. package/i18n/languages/de-DE.js +0 -16
  288. package/i18n/languages/de-DE.mjs +1 -4
  289. package/i18n/languages/en-US.js +0 -16
  290. package/i18n/languages/en-US.mjs +1 -4
  291. package/i18n/languages/es-MX.js +0 -16
  292. package/i18n/languages/es-MX.mjs +1 -4
  293. package/i18n/languages/fr-FR.js +0 -16
  294. package/i18n/languages/fr-FR.mjs +1 -4
  295. package/i18n/languages/index.js +0 -39
  296. package/i18n/languages/it-IT.js +0 -16
  297. package/i18n/languages/it-IT.mjs +1 -4
  298. package/i18n/languages/ja-JP.js +0 -16
  299. package/i18n/languages/ja-JP.mjs +1 -4
  300. package/i18n/languages/ko-KR.js +0 -16
  301. package/i18n/languages/ko-KR.mjs +1 -4
  302. package/i18n/languages/lv-LV.js +0 -16
  303. package/i18n/languages/lv-LV.mjs +1 -4
  304. package/i18n/languages/nb-NO.js +0 -16
  305. package/i18n/languages/nb-NO.mjs +1 -4
  306. package/i18n/languages/nl-NL.js +0 -16
  307. package/i18n/languages/nl-NL.mjs +1 -4
  308. package/i18n/languages/pl-PL.js +0 -16
  309. package/i18n/languages/pl-PL.mjs +1 -4
  310. package/i18n/languages/pt-BR.js +0 -16
  311. package/i18n/languages/pt-BR.mjs +1 -4
  312. package/i18n/languages/ru-RU.js +0 -16
  313. package/i18n/languages/ru-RU.mjs +1 -4
  314. package/i18n/languages/sr-SP.js +0 -16
  315. package/i18n/languages/sr-SP.mjs +1 -4
  316. package/i18n/languages/zh-CN.js +0 -16
  317. package/i18n/languages/zh-CN.mjs +1 -4
  318. package/i18n/languages/zh-TW.js +0 -16
  319. package/i18n/languages/zh-TW.mjs +1 -4
  320. package/i18n/phraseFormatters/index.js +4 -11
  321. package/i18n/phraseFormatters/index.mjs +4 -6
  322. package/i18n/phraseFormatters/pluralize.js +0 -5
  323. package/i18n/phraseFormatters/pluralize.mjs +0 -3
  324. package/i18n/phraseFormatters/substituteVariables.js +0 -4
  325. package/i18n/phraseFormatters/substituteVariables.mjs +8 -11
  326. package/i18n/registry.js +18 -59
  327. package/i18n/registry.mjs +18 -30
  328. package/i18n/utils.js +4 -22
  329. package/i18n/utils.mjs +13 -21
  330. package/index.js +19 -56
  331. package/index.mjs +19 -15
  332. package/languages/all.js +0 -175
  333. package/languages/ar-AR.js +0 -10
  334. package/languages/ar-AR.mjs +1 -4
  335. package/languages/cs-CZ.js +0 -10
  336. package/languages/cs-CZ.mjs +1 -4
  337. package/languages/de-CH.js +0 -10
  338. package/languages/de-CH.mjs +1 -4
  339. package/languages/de-DE.js +0 -10
  340. package/languages/de-DE.mjs +1 -4
  341. package/languages/en-US.js +0 -10
  342. package/languages/en-US.mjs +1 -4
  343. package/languages/es-MX.js +0 -10
  344. package/languages/es-MX.mjs +1 -4
  345. package/languages/fr-FR.js +0 -10
  346. package/languages/fr-FR.mjs +1 -4
  347. package/languages/index.js +0 -175
  348. package/languages/it-IT.js +0 -10
  349. package/languages/it-IT.mjs +1 -4
  350. package/languages/ja-JP.js +0 -10
  351. package/languages/ja-JP.mjs +1 -4
  352. package/languages/ko-KR.js +0 -10
  353. package/languages/ko-KR.mjs +1 -4
  354. package/languages/lv-LV.js +0 -10
  355. package/languages/lv-LV.mjs +1 -4
  356. package/languages/nb-NO.js +0 -10
  357. package/languages/nb-NO.mjs +1 -4
  358. package/languages/nl-NL.js +0 -10
  359. package/languages/nl-NL.mjs +1 -4
  360. package/languages/pl-PL.js +0 -10
  361. package/languages/pl-PL.mjs +1 -4
  362. package/languages/pt-BR.js +0 -10
  363. package/languages/pt-BR.mjs +1 -4
  364. package/languages/ru-RU.js +0 -10
  365. package/languages/ru-RU.mjs +1 -4
  366. package/languages/sr-SP.js +0 -10
  367. package/languages/sr-SP.mjs +1 -4
  368. package/languages/zh-CN.js +0 -10
  369. package/languages/zh-CN.mjs +1 -4
  370. package/languages/zh-TW.js +0 -10
  371. package/languages/zh-TW.mjs +1 -4
  372. package/mixins/hooksRefRegisterer.js +4 -18
  373. package/mixins/hooksRefRegisterer.mjs +4 -15
  374. package/mixins/localHooks.js +7 -17
  375. package/mixins/localHooks.mjs +7 -14
  376. package/package.json +1 -1
  377. package/pluginHooks.d.ts +3 -3
  378. package/pluginHooks.js +271 -96
  379. package/pluginHooks.mjs +270 -83
  380. package/plugins/autoColumnSize/autoColumnSize.js +74 -172
  381. package/plugins/autoColumnSize/autoColumnSize.mjs +74 -137
  382. package/plugins/autoColumnSize/index.js +0 -2
  383. package/plugins/autoRowSize/autoRowSize.js +73 -153
  384. package/plugins/autoRowSize/autoRowSize.mjs +73 -124
  385. package/plugins/autoRowSize/index.js +0 -2
  386. package/plugins/autofill/autofill.js +46 -163
  387. package/plugins/autofill/autofill.mjs +46 -131
  388. package/plugins/autofill/index.js +0 -2
  389. package/plugins/autofill/utils.js +4 -26
  390. package/plugins/autofill/utils.mjs +4 -18
  391. package/plugins/base/base.js +20 -89
  392. package/plugins/base/base.mjs +20 -61
  393. package/plugins/base/index.js +0 -2
  394. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +19 -52
  395. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +19 -33
  396. package/plugins/bindRowsWithHeaders/index.js +0 -2
  397. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.js +5 -41
  398. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.mjs +5 -29
  399. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +6 -53
  400. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +6 -37
  401. package/plugins/collapsibleColumns/collapsibleColumns.js +96 -188
  402. package/plugins/collapsibleColumns/collapsibleColumns.mjs +97 -158
  403. package/plugins/collapsibleColumns/index.js +0 -2
  404. package/plugins/columnSorting/columnSorting.js +50 -188
  405. package/plugins/columnSorting/columnSorting.mjs +50 -143
  406. package/plugins/columnSorting/columnStatesManager.js +15 -71
  407. package/plugins/columnSorting/columnStatesManager.mjs +15 -48
  408. package/plugins/columnSorting/domHelpers.js +2 -18
  409. package/plugins/columnSorting/domHelpers.mjs +2 -7
  410. package/plugins/columnSorting/index.js +0 -2
  411. package/plugins/columnSorting/rootComparator.js +5 -24
  412. package/plugins/columnSorting/rootComparator.mjs +12 -21
  413. package/plugins/columnSorting/sortFunction/checkbox.js +8 -16
  414. package/plugins/columnSorting/sortFunction/checkbox.mjs +16 -21
  415. package/plugins/columnSorting/sortFunction/date.js +2 -19
  416. package/plugins/columnSorting/sortFunction/date.mjs +10 -23
  417. package/plugins/columnSorting/sortFunction/default.js +2 -17
  418. package/plugins/columnSorting/sortFunction/default.mjs +10 -23
  419. package/plugins/columnSorting/sortFunction/numeric.js +2 -11
  420. package/plugins/columnSorting/sortFunction/numeric.mjs +10 -17
  421. package/plugins/columnSorting/sortService/engine.js +1 -7
  422. package/plugins/columnSorting/sortService/engine.mjs +1 -3
  423. package/plugins/columnSorting/sortService/index.js +0 -5
  424. package/plugins/columnSorting/sortService/registry.js +6 -18
  425. package/plugins/columnSorting/sortService/registry.mjs +6 -10
  426. package/plugins/columnSorting/utils.js +9 -34
  427. package/plugins/columnSorting/utils.mjs +9 -15
  428. package/plugins/columnSummary/columnSummary.js +52 -118
  429. package/plugins/columnSummary/columnSummary.mjs +52 -93
  430. package/plugins/columnSummary/endpoints.js +21 -98
  431. package/plugins/columnSummary/endpoints.mjs +26 -99
  432. package/plugins/columnSummary/index.js +0 -2
  433. package/plugins/columnSummary/utils.js +0 -1
  434. package/plugins/comments/commentEditor.js +16 -28
  435. package/plugins/comments/commentEditor.mjs +21 -32
  436. package/plugins/comments/comments.js +92 -175
  437. package/plugins/comments/comments.mjs +92 -149
  438. package/plugins/comments/displaySwitch.js +6 -23
  439. package/plugins/comments/displaySwitch.mjs +6 -18
  440. package/plugins/comments/index.js +0 -2
  441. package/plugins/contextMenu/commandExecutor.js +9 -36
  442. package/plugins/contextMenu/commandExecutor.mjs +14 -39
  443. package/plugins/contextMenu/contextMenu.js +21 -104
  444. package/plugins/contextMenu/contextMenu.mjs +21 -74
  445. package/plugins/contextMenu/cursor.js +6 -20
  446. package/plugins/contextMenu/cursor.mjs +11 -24
  447. package/plugins/contextMenu/index.js +0 -2
  448. package/plugins/contextMenu/itemsFactory.js +14 -43
  449. package/plugins/contextMenu/itemsFactory.mjs +19 -44
  450. package/plugins/contextMenu/menu.js +57 -177
  451. package/plugins/contextMenu/menu.mjs +57 -149
  452. package/plugins/contextMenu/predefinedItems/alignment.js +1 -55
  453. package/plugins/contextMenu/predefinedItems/alignment.mjs +1 -37
  454. package/plugins/contextMenu/predefinedItems/clearColumn.js +1 -20
  455. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +1 -4
  456. package/plugins/contextMenu/predefinedItems/columnLeft.js +6 -43
  457. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +6 -26
  458. package/plugins/contextMenu/predefinedItems/columnRight.js +4 -42
  459. package/plugins/contextMenu/predefinedItems/columnRight.mjs +4 -25
  460. package/plugins/contextMenu/predefinedItems/noItems.js +1 -4
  461. package/plugins/contextMenu/predefinedItems/noItems.mjs +1 -1
  462. package/plugins/contextMenu/predefinedItems/readOnly.js +1 -25
  463. package/plugins/contextMenu/predefinedItems/readOnly.mjs +1 -8
  464. package/plugins/contextMenu/predefinedItems/redo.js +1 -16
  465. package/plugins/contextMenu/predefinedItems/redo.mjs +1 -1
  466. package/plugins/contextMenu/predefinedItems/removeColumn.js +3 -38
  467. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +3 -18
  468. package/plugins/contextMenu/predefinedItems/removeRow.js +3 -37
  469. package/plugins/contextMenu/predefinedItems/removeRow.mjs +3 -17
  470. package/plugins/contextMenu/predefinedItems/rowAbove.js +6 -35
  471. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +6 -19
  472. package/plugins/contextMenu/predefinedItems/rowBelow.js +4 -42
  473. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +4 -25
  474. package/plugins/contextMenu/predefinedItems/separator.js +1 -2
  475. package/plugins/contextMenu/predefinedItems/separator.mjs +1 -1
  476. package/plugins/contextMenu/predefinedItems/undo.js +1 -16
  477. package/plugins/contextMenu/predefinedItems/undo.mjs +1 -1
  478. package/plugins/contextMenu/predefinedItems.js +2 -48
  479. package/plugins/contextMenu/predefinedItems.mjs +2 -7
  480. package/plugins/contextMenu/utils.js +17 -57
  481. package/plugins/contextMenu/utils.mjs +21 -39
  482. package/plugins/copyPaste/clipboardData.js +1 -10
  483. package/plugins/copyPaste/clipboardData.mjs +1 -9
  484. package/plugins/copyPaste/contextMenuItem/copy.js +2 -17
  485. package/plugins/copyPaste/contextMenuItem/copy.mjs +6 -9
  486. package/plugins/copyPaste/contextMenuItem/cut.js +2 -17
  487. package/plugins/copyPaste/contextMenuItem/cut.mjs +6 -9
  488. package/plugins/copyPaste/copyPaste.js +51 -185
  489. package/plugins/copyPaste/copyPaste.mjs +51 -144
  490. package/plugins/copyPaste/focusableElement.js +12 -56
  491. package/plugins/copyPaste/focusableElement.mjs +15 -49
  492. package/plugins/copyPaste/index.js +0 -2
  493. package/plugins/copyPaste/pasteEvent.js +1 -10
  494. package/plugins/copyPaste/pasteEvent.mjs +3 -10
  495. package/plugins/customBorders/contextMenuItem/bottom.js +0 -17
  496. package/plugins/customBorders/contextMenuItem/bottom.mjs +4 -8
  497. package/plugins/customBorders/contextMenuItem/index.js +0 -11
  498. package/plugins/customBorders/contextMenuItem/left.js +0 -17
  499. package/plugins/customBorders/contextMenuItem/left.mjs +4 -8
  500. package/plugins/customBorders/contextMenuItem/noBorders.js +0 -15
  501. package/plugins/customBorders/contextMenuItem/noBorders.mjs +4 -6
  502. package/plugins/customBorders/contextMenuItem/right.js +0 -17
  503. package/plugins/customBorders/contextMenuItem/right.mjs +4 -8
  504. package/plugins/customBorders/contextMenuItem/top.js +0 -17
  505. package/plugins/customBorders/contextMenuItem/top.mjs +4 -8
  506. package/plugins/customBorders/customBorders.js +52 -181
  507. package/plugins/customBorders/customBorders.mjs +52 -147
  508. package/plugins/customBorders/index.js +0 -2
  509. package/plugins/customBorders/utils.js +13 -52
  510. package/plugins/customBorders/utils.mjs +20 -39
  511. package/plugins/dragToScroll/dragToScroll.js +17 -74
  512. package/plugins/dragToScroll/dragToScroll.mjs +17 -55
  513. package/plugins/dragToScroll/index.js +0 -2
  514. package/plugins/dropdownMenu/dropdownMenu.js +43 -126
  515. package/plugins/dropdownMenu/dropdownMenu.mjs +43 -95
  516. package/plugins/dropdownMenu/index.js +0 -2
  517. package/plugins/exportFile/dataProvider.js +24 -69
  518. package/plugins/exportFile/dataProvider.mjs +26 -60
  519. package/plugins/exportFile/exportFile.js +48 -58
  520. package/plugins/exportFile/exportFile.mjs +48 -36
  521. package/plugins/exportFile/index.js +0 -2
  522. package/plugins/exportFile/typeFactory.js +1 -11
  523. package/plugins/exportFile/typeFactory.mjs +1 -4
  524. package/plugins/exportFile/types/_base.js +2 -16
  525. package/plugins/exportFile/types/_base.mjs +4 -16
  526. package/plugins/exportFile/types/csv.js +2 -50
  527. package/plugins/exportFile/types/csv.mjs +2 -29
  528. package/plugins/filters/component/_base.js +12 -32
  529. package/plugins/filters/component/_base.mjs +15 -30
  530. package/plugins/filters/component/actionBar.js +6 -55
  531. package/plugins/filters/component/actionBar.mjs +9 -38
  532. package/plugins/filters/component/condition.js +15 -94
  533. package/plugins/filters/component/condition.mjs +18 -67
  534. package/plugins/filters/component/operators.js +10 -68
  535. package/plugins/filters/component/operators.mjs +10 -45
  536. package/plugins/filters/component/value.js +16 -97
  537. package/plugins/filters/component/value.mjs +19 -70
  538. package/plugins/filters/condition/beginsWith.js +2 -32
  539. package/plugins/filters/condition/beginsWith.mjs +2 -10
  540. package/plugins/filters/condition/between.js +3 -37
  541. package/plugins/filters/condition/between.mjs +3 -15
  542. package/plugins/filters/condition/byValue.js +3 -27
  543. package/plugins/filters/condition/byValue.mjs +3 -12
  544. package/plugins/filters/condition/contains.js +2 -32
  545. package/plugins/filters/condition/contains.mjs +2 -10
  546. package/plugins/filters/condition/date/after.js +2 -34
  547. package/plugins/filters/condition/date/after.mjs +2 -12
  548. package/plugins/filters/condition/date/before.js +2 -34
  549. package/plugins/filters/condition/date/before.mjs +2 -12
  550. package/plugins/filters/condition/date/today.js +1 -22
  551. package/plugins/filters/condition/date/today.mjs +1 -3
  552. package/plugins/filters/condition/date/tomorrow.js +1 -22
  553. package/plugins/filters/condition/date/tomorrow.mjs +1 -3
  554. package/plugins/filters/condition/date/yesterday.js +1 -22
  555. package/plugins/filters/condition/date/yesterday.mjs +1 -3
  556. package/plugins/filters/condition/empty.js +1 -19
  557. package/plugins/filters/condition/empty.mjs +1 -1
  558. package/plugins/filters/condition/endsWith.js +2 -32
  559. package/plugins/filters/condition/endsWith.mjs +2 -10
  560. package/plugins/filters/condition/equal.js +2 -31
  561. package/plugins/filters/condition/equal.mjs +2 -10
  562. package/plugins/filters/condition/false.js +1 -5
  563. package/plugins/filters/condition/false.mjs +1 -1
  564. package/plugins/filters/condition/greaterThan.js +2 -32
  565. package/plugins/filters/condition/greaterThan.mjs +2 -12
  566. package/plugins/filters/condition/greaterThanOrEqual.js +2 -32
  567. package/plugins/filters/condition/greaterThanOrEqual.mjs +2 -12
  568. package/plugins/filters/condition/lessThan.js +2 -32
  569. package/plugins/filters/condition/lessThan.mjs +2 -12
  570. package/plugins/filters/condition/lessThanOrEqual.js +2 -32
  571. package/plugins/filters/condition/lessThanOrEqual.mjs +2 -12
  572. package/plugins/filters/condition/none.js +1 -18
  573. package/plugins/filters/condition/none.mjs +1 -1
  574. package/plugins/filters/condition/notBetween.js +1 -19
  575. package/plugins/filters/condition/notBetween.mjs +1 -1
  576. package/plugins/filters/condition/notContains.js +1 -19
  577. package/plugins/filters/condition/notContains.mjs +1 -1
  578. package/plugins/filters/condition/notEmpty.js +1 -19
  579. package/plugins/filters/condition/notEmpty.mjs +1 -1
  580. package/plugins/filters/condition/notEqual.js +1 -19
  581. package/plugins/filters/condition/notEqual.mjs +1 -1
  582. package/plugins/filters/condition/true.js +1 -5
  583. package/plugins/filters/condition/true.mjs +1 -1
  584. package/plugins/filters/conditionCollection.js +21 -80
  585. package/plugins/filters/conditionCollection.mjs +21 -57
  586. package/plugins/filters/conditionRegisterer.js +5 -14
  587. package/plugins/filters/conditionRegisterer.mjs +5 -9
  588. package/plugins/filters/conditionUpdateObserver.js +17 -57
  589. package/plugins/filters/conditionUpdateObserver.mjs +25 -53
  590. package/plugins/filters/constants.js +1 -66
  591. package/plugins/filters/constants.mjs +1 -8
  592. package/plugins/filters/dataFilter.js +4 -21
  593. package/plugins/filters/dataFilter.mjs +7 -23
  594. package/plugins/filters/filters.js +103 -208
  595. package/plugins/filters/filters.mjs +103 -163
  596. package/plugins/filters/index.js +0 -2
  597. package/plugins/filters/logicalOperationRegisterer.js +3 -9
  598. package/plugins/filters/logicalOperationRegisterer.mjs +3 -4
  599. package/plugins/filters/logicalOperations/conjunction.js +2 -19
  600. package/plugins/filters/logicalOperations/conjunction.mjs +2 -2
  601. package/plugins/filters/logicalOperations/disjunction.js +2 -19
  602. package/plugins/filters/logicalOperations/disjunction.mjs +2 -2
  603. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +2 -21
  604. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.mjs +2 -3
  605. package/plugins/filters/ui/_base.js +12 -55
  606. package/plugins/filters/ui/_base.mjs +12 -35
  607. package/plugins/filters/ui/input.js +7 -52
  608. package/plugins/filters/ui/input.mjs +7 -34
  609. package/plugins/filters/ui/link.js +3 -43
  610. package/plugins/filters/ui/link.mjs +3 -25
  611. package/plugins/filters/ui/multipleSelect.js +26 -120
  612. package/plugins/filters/ui/multipleSelect.mjs +20 -76
  613. package/plugins/filters/ui/radioInput.js +6 -47
  614. package/plugins/filters/ui/radioInput.mjs +6 -30
  615. package/plugins/filters/ui/select.js +14 -76
  616. package/plugins/filters/ui/select.mjs +14 -52
  617. package/plugins/filters/utils.js +6 -39
  618. package/plugins/filters/utils.mjs +6 -23
  619. package/plugins/formulas/engine/register.js +24 -74
  620. package/plugins/formulas/engine/register.mjs +29 -51
  621. package/plugins/formulas/engine/settings.js +4 -24
  622. package/plugins/formulas/engine/settings.mjs +4 -12
  623. package/plugins/formulas/formulas.js +103 -295
  624. package/plugins/formulas/formulas.mjs +104 -248
  625. package/plugins/formulas/index.js +0 -2
  626. package/plugins/formulas/utils.js +1 -3
  627. package/plugins/formulas/utils.mjs +1 -1
  628. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +4 -38
  629. package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +8 -25
  630. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +17 -45
  631. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +21 -29
  632. package/plugins/hiddenColumns/hiddenColumns.js +72 -149
  633. package/plugins/hiddenColumns/hiddenColumns.mjs +72 -108
  634. package/plugins/hiddenColumns/index.js +0 -2
  635. package/plugins/hiddenRows/contextMenuItem/hideRow.js +4 -38
  636. package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +8 -25
  637. package/plugins/hiddenRows/contextMenuItem/showRow.js +17 -45
  638. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +21 -29
  639. package/plugins/hiddenRows/hiddenRows.js +70 -148
  640. package/plugins/hiddenRows/hiddenRows.mjs +70 -107
  641. package/plugins/hiddenRows/index.js +0 -2
  642. package/plugins/index.js +0 -71
  643. package/plugins/index.mjs +3 -5
  644. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -28
  645. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +5 -17
  646. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -28
  647. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +5 -17
  648. package/plugins/manualColumnFreeze/index.js +0 -2
  649. package/plugins/manualColumnFreeze/manualColumnFreeze.js +21 -78
  650. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +21 -54
  651. package/plugins/manualColumnMove/index.js +0 -2
  652. package/plugins/manualColumnMove/manualColumnMove.js +45 -134
  653. package/plugins/manualColumnMove/manualColumnMove.mjs +45 -106
  654. package/plugins/manualColumnMove/ui/_base.js +12 -30
  655. package/plugins/manualColumnMove/ui/_base.mjs +12 -27
  656. package/plugins/manualColumnMove/ui/backlight.js +1 -37
  657. package/plugins/manualColumnMove/ui/backlight.mjs +1 -22
  658. package/plugins/manualColumnMove/ui/guideline.js +1 -37
  659. package/plugins/manualColumnMove/ui/guideline.mjs +1 -22
  660. package/plugins/manualColumnResize/index.js +0 -2
  661. package/plugins/manualColumnResize/manualColumnResize.js +44 -143
  662. package/plugins/manualColumnResize/manualColumnResize.mjs +43 -118
  663. package/plugins/manualRowMove/index.js +0 -2
  664. package/plugins/manualRowMove/manualRowMove.js +45 -137
  665. package/plugins/manualRowMove/manualRowMove.mjs +45 -109
  666. package/plugins/manualRowMove/ui/_base.js +12 -27
  667. package/plugins/manualRowMove/ui/_base.mjs +12 -26
  668. package/plugins/manualRowMove/ui/backlight.js +1 -37
  669. package/plugins/manualRowMove/ui/backlight.mjs +1 -22
  670. package/plugins/manualRowMove/ui/guideline.js +1 -37
  671. package/plugins/manualRowMove/ui/guideline.mjs +1 -22
  672. package/plugins/manualRowResize/index.js +0 -2
  673. package/plugins/manualRowResize/manualRowResize.js +42 -138
  674. package/plugins/manualRowResize/manualRowResize.mjs +41 -112
  675. package/plugins/mergeCells/calculations/autofill.js +39 -130
  676. package/plugins/mergeCells/calculations/autofill.mjs +44 -122
  677. package/plugins/mergeCells/calculations/selection.js +9 -40
  678. package/plugins/mergeCells/calculations/selection.mjs +9 -37
  679. package/plugins/mergeCells/cellCoords.js +30 -51
  680. package/plugins/mergeCells/cellCoords.mjs +35 -54
  681. package/plugins/mergeCells/cellsCollection.js +13 -84
  682. package/plugins/mergeCells/cellsCollection.mjs +18 -69
  683. package/plugins/mergeCells/contextMenuItem/toggleMerge.js +0 -22
  684. package/plugins/mergeCells/contextMenuItem/toggleMerge.mjs +4 -11
  685. package/plugins/mergeCells/index.js +0 -2
  686. package/plugins/mergeCells/mergeCells.js +130 -333
  687. package/plugins/mergeCells/mergeCells.mjs +130 -292
  688. package/plugins/mergeCells/utils.js +0 -3
  689. package/plugins/mergeCells/utils.mjs +0 -1
  690. package/plugins/multiColumnSorting/domHelpers.js +2 -12
  691. package/plugins/multiColumnSorting/domHelpers.mjs +2 -5
  692. package/plugins/multiColumnSorting/index.js +0 -2
  693. package/plugins/multiColumnSorting/multiColumnSorting.js +14 -66
  694. package/plugins/multiColumnSorting/multiColumnSorting.mjs +14 -44
  695. package/plugins/multiColumnSorting/rootComparator.js +2 -26
  696. package/plugins/multiColumnSorting/rootComparator.mjs +9 -23
  697. package/plugins/multiColumnSorting/utils.js +0 -7
  698. package/plugins/multiColumnSorting/utils.mjs +3 -8
  699. package/plugins/multipleSelectionHandles/index.js +0 -2
  700. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +6 -109
  701. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +6 -87
  702. package/plugins/nestedHeaders/index.js +0 -2
  703. package/plugins/nestedHeaders/nestedHeaders.js +79 -200
  704. package/plugins/nestedHeaders/nestedHeaders.mjs +80 -173
  705. package/plugins/nestedHeaders/stateManager/headersTree.js +16 -93
  706. package/plugins/nestedHeaders/stateManager/headersTree.mjs +16 -73
  707. package/plugins/nestedHeaders/stateManager/index.js +24 -107
  708. package/plugins/nestedHeaders/stateManager/index.mjs +51 -115
  709. package/plugins/nestedHeaders/stateManager/matrixGenerator.js +7 -25
  710. package/plugins/nestedHeaders/stateManager/matrixGenerator.mjs +38 -51
  711. package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.js +12 -27
  712. package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.mjs +29 -35
  713. package/plugins/nestedHeaders/stateManager/nodeModifiers/expand.js +10 -25
  714. package/plugins/nestedHeaders/stateManager/nodeModifiers/expand.mjs +26 -32
  715. package/plugins/nestedHeaders/stateManager/nodeModifiers/hideColumn.js +3 -19
  716. package/plugins/nestedHeaders/stateManager/nodeModifiers/hideColumn.mjs +9 -20
  717. package/plugins/nestedHeaders/stateManager/nodeModifiers/index.js +2 -12
  718. package/plugins/nestedHeaders/stateManager/nodeModifiers/index.mjs +2 -5
  719. package/plugins/nestedHeaders/stateManager/nodeModifiers/showColumn.js +3 -22
  720. package/plugins/nestedHeaders/stateManager/nodeModifiers/showColumn.mjs +9 -21
  721. package/plugins/nestedHeaders/stateManager/nodeModifiers/utils/tree.js +3 -10
  722. package/plugins/nestedHeaders/stateManager/nodeModifiers/utils/tree.mjs +3 -7
  723. package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +5 -36
  724. package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +44 -61
  725. package/plugins/nestedHeaders/stateManager/sourceSettings.js +16 -78
  726. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +21 -68
  727. package/plugins/nestedHeaders/stateManager/utils.js +19 -22
  728. package/plugins/nestedHeaders/stateManager/utils.mjs +19 -20
  729. package/plugins/nestedHeaders/utils/ghostTable.js +9 -37
  730. package/plugins/nestedHeaders/utils/ghostTable.mjs +16 -43
  731. package/plugins/nestedRows/data/dataManager.js +40 -161
  732. package/plugins/nestedRows/data/dataManager.mjs +44 -148
  733. package/plugins/nestedRows/index.js +0 -2
  734. package/plugins/nestedRows/nestedRows.js +40 -118
  735. package/plugins/nestedRows/nestedRows.mjs +40 -85
  736. package/plugins/nestedRows/ui/_base.js +1 -9
  737. package/plugins/nestedRows/ui/_base.mjs +1 -8
  738. package/plugins/nestedRows/ui/collapsing.js +28 -134
  739. package/plugins/nestedRows/ui/collapsing.mjs +34 -118
  740. package/plugins/nestedRows/ui/contextMenu.js +2 -53
  741. package/plugins/nestedRows/ui/contextMenu.mjs +2 -32
  742. package/plugins/nestedRows/ui/headers.js +5 -50
  743. package/plugins/nestedRows/ui/headers.mjs +11 -41
  744. package/plugins/nestedRows/utils/rowMoveController.js +28 -78
  745. package/plugins/nestedRows/utils/rowMoveController.mjs +33 -66
  746. package/plugins/persistentState/index.js +0 -2
  747. package/plugins/persistentState/persistentState.js +10 -58
  748. package/plugins/persistentState/persistentState.mjs +10 -37
  749. package/plugins/persistentState/storage.js +9 -25
  750. package/plugins/persistentState/storage.mjs +12 -26
  751. package/plugins/registry.js +7 -51
  752. package/plugins/registry.mjs +8 -34
  753. package/plugins/search/index.js +0 -2
  754. package/plugins/search/search.js +16 -96
  755. package/plugins/search/search.mjs +16 -67
  756. package/plugins/touchScroll/index.js +0 -2
  757. package/plugins/touchScroll/touchScroll.js +15 -76
  758. package/plugins/touchScroll/touchScroll.mjs +15 -58
  759. package/plugins/trimRows/index.js +0 -2
  760. package/plugins/trimRows/trimRows.js +59 -85
  761. package/plugins/trimRows/trimRows.mjs +59 -62
  762. package/plugins/undoRedo/index.js +0 -14
  763. package/plugins/undoRedo/undoRedo.js +48 -218
  764. package/plugins/undoRedo/undoRedo.mjs +48 -188
  765. package/registry.js +0 -11
  766. package/registry.mjs +2 -4
  767. package/renderers/autocompleteRenderer/autocompleteRenderer.js +5 -14
  768. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +5 -6
  769. package/renderers/autocompleteRenderer/index.js +0 -2
  770. package/renderers/baseRenderer/baseRenderer.js +2 -11
  771. package/renderers/baseRenderer/baseRenderer.mjs +2 -9
  772. package/renderers/baseRenderer/index.js +0 -2
  773. package/renderers/checkboxRenderer/checkboxRenderer.js +22 -103
  774. package/renderers/checkboxRenderer/checkboxRenderer.mjs +22 -81
  775. package/renderers/checkboxRenderer/index.js +0 -2
  776. package/renderers/htmlRenderer/htmlRenderer.js +1 -7
  777. package/renderers/htmlRenderer/htmlRenderer.mjs +1 -1
  778. package/renderers/htmlRenderer/index.js +0 -2
  779. package/renderers/index.js +0 -19
  780. package/renderers/index.mjs +3 -5
  781. package/renderers/numericRenderer/index.js +0 -2
  782. package/renderers/numericRenderer/numericRenderer.js +1 -21
  783. package/renderers/numericRenderer/numericRenderer.mjs +1 -9
  784. package/renderers/passwordRenderer/index.js +0 -2
  785. package/renderers/passwordRenderer/passwordRenderer.js +1 -8
  786. package/renderers/passwordRenderer/passwordRenderer.mjs +1 -1
  787. package/renderers/registry.js +7 -16
  788. package/renderers/registry.mjs +7 -14
  789. package/renderers/textRenderer/index.js +0 -2
  790. package/renderers/textRenderer/textRenderer.js +1 -13
  791. package/renderers/textRenderer/textRenderer.mjs +1 -5
  792. package/renderers/timeRenderer/index.js +0 -2
  793. package/renderers/timeRenderer/timeRenderer.js +1 -6
  794. package/renderers/timeRenderer/timeRenderer.mjs +1 -1
  795. package/selection/highlight/highlight.js +17 -73
  796. package/selection/highlight/highlight.mjs +31 -64
  797. package/selection/highlight/types/activeHeader.js +1 -21
  798. package/selection/highlight/types/activeHeader.mjs +6 -16
  799. package/selection/highlight/types/area.js +2 -22
  800. package/selection/highlight/types/area.mjs +10 -20
  801. package/selection/highlight/types/cell.js +1 -21
  802. package/selection/highlight/types/cell.mjs +9 -19
  803. package/selection/highlight/types/customSelection.js +2 -22
  804. package/selection/highlight/types/customSelection.mjs +11 -21
  805. package/selection/highlight/types/fill.js +2 -17
  806. package/selection/highlight/types/fill.mjs +9 -14
  807. package/selection/highlight/types/header.js +3 -23
  808. package/selection/highlight/types/header.mjs +13 -23
  809. package/selection/highlight/types/index.js +3 -24
  810. package/selection/highlight/types/index.mjs +3 -10
  811. package/selection/highlight/visualSelection.js +24 -74
  812. package/selection/highlight/visualSelection.mjs +24 -62
  813. package/selection/index.js +0 -14
  814. package/selection/mouseEventHandler.js +19 -30
  815. package/selection/mouseEventHandler.mjs +32 -36
  816. package/selection/range.js +11 -31
  817. package/selection/range.mjs +11 -22
  818. package/selection/selection.js +62 -157
  819. package/selection/selection.mjs +65 -132
  820. package/selection/transformation.js +10 -40
  821. package/selection/transformation.mjs +18 -45
  822. package/selection/utils.js +22 -70
  823. package/selection/utils.mjs +22 -47
  824. package/shortcuts/context.js +23 -78
  825. package/shortcuts/context.mjs +23 -55
  826. package/shortcuts/index.js +0 -2
  827. package/shortcuts/keyObserver.js +4 -17
  828. package/shortcuts/keyObserver.mjs +4 -12
  829. package/shortcuts/manager.js +16 -36
  830. package/shortcuts/manager.mjs +16 -33
  831. package/shortcuts/recorder.js +9 -40
  832. package/shortcuts/recorder.mjs +9 -31
  833. package/shortcuts/utils.js +5 -20
  834. package/shortcuts/utils.mjs +5 -6
  835. package/tableView.js +100 -270
  836. package/tableView.mjs +100 -248
  837. package/translations/changesObservable/observable.js +5 -54
  838. package/translations/changesObservable/observable.mjs +12 -51
  839. package/translations/changesObservable/observer.js +4 -32
  840. package/translations/changesObservable/observer.mjs +9 -29
  841. package/translations/changesObservable/utils.js +1 -5
  842. package/translations/changesObservable/utils.mjs +1 -4
  843. package/translations/index.js +0 -11
  844. package/translations/indexMapper.js +68 -156
  845. package/translations/indexMapper.mjs +68 -123
  846. package/translations/mapCollections/aggregatedCollection.js +9 -51
  847. package/translations/mapCollections/aggregatedCollection.mjs +12 -41
  848. package/translations/mapCollections/index.js +0 -7
  849. package/translations/mapCollections/mapCollection.js +10 -33
  850. package/translations/mapCollections/mapCollection.mjs +10 -22
  851. package/translations/maps/hidingMap.js +2 -35
  852. package/translations/maps/hidingMap.mjs +7 -28
  853. package/translations/maps/index.js +1 -24
  854. package/translations/maps/index.mjs +1 -3
  855. package/translations/maps/indexMap.js +12 -34
  856. package/translations/maps/indexMap.mjs +16 -32
  857. package/translations/maps/indexesSequence.js +3 -41
  858. package/translations/maps/indexesSequence.mjs +9 -32
  859. package/translations/maps/linkedPhysicalIndexToValueMap.js +9 -78
  860. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +16 -59
  861. package/translations/maps/physicalIndexToValueMap.js +2 -39
  862. package/translations/maps/physicalIndexToValueMap.mjs +8 -31
  863. package/translations/maps/trimmingMap.js +2 -35
  864. package/translations/maps/trimmingMap.mjs +7 -28
  865. package/translations/maps/utils/actionsOnIndexes.js +1 -7
  866. package/translations/maps/utils/actionsOnIndexes.mjs +9 -12
  867. package/translations/maps/utils/index.js +0 -13
  868. package/translations/maps/utils/index.mjs +0 -3
  869. package/translations/maps/utils/indexesSequence.js +1 -24
  870. package/translations/maps/utils/indexesSequence.mjs +10 -19
  871. package/translations/maps/utils/physicallyIndexed.js +1 -27
  872. package/translations/maps/utils/physicallyIndexed.mjs +11 -21
  873. package/utils/dataStructures/linkedList.js +15 -56
  874. package/utils/dataStructures/linkedList.mjs +15 -54
  875. package/utils/dataStructures/priorityMap.js +8 -46
  876. package/utils/dataStructures/priorityMap.mjs +8 -29
  877. package/utils/dataStructures/queue.js +6 -17
  878. package/utils/dataStructures/queue.mjs +6 -16
  879. package/utils/dataStructures/stack.js +6 -17
  880. package/utils/dataStructures/stack.mjs +6 -16
  881. package/utils/dataStructures/tree.js +11 -75
  882. package/utils/dataStructures/tree.mjs +11 -54
  883. package/utils/dataStructures/uniqueMap.js +17 -56
  884. package/utils/dataStructures/uniqueMap.mjs +17 -42
  885. package/utils/dataStructures/uniqueSet.js +5 -32
  886. package/utils/dataStructures/uniqueSet.mjs +5 -19
  887. package/utils/ghostTable.js +33 -104
  888. package/utils/ghostTable.mjs +35 -92
  889. package/utils/interval.js +10 -37
  890. package/utils/interval.mjs +7 -29
  891. package/utils/parseTable.js +11 -92
  892. package/utils/parseTable.mjs +11 -62
  893. package/utils/rootInstance.js +3 -14
  894. package/utils/rootInstance.mjs +3 -3
  895. package/utils/samplesGenerator.js +15 -51
  896. package/utils/samplesGenerator.mjs +17 -44
  897. package/utils/staticRegister.js +6 -33
  898. package/utils/staticRegister.mjs +6 -19
  899. package/validators/autocompleteValidator/autocompleteValidator.js +2 -10
  900. package/validators/autocompleteValidator/autocompleteValidator.mjs +2 -8
  901. package/validators/autocompleteValidator/index.js +0 -2
  902. package/validators/dateValidator/dateValidator.js +2 -21
  903. package/validators/dateValidator/dateValidator.mjs +2 -11
  904. package/validators/dateValidator/index.js +0 -2
  905. package/validators/index.js +0 -11
  906. package/validators/index.mjs +3 -5
  907. package/validators/numericValidator/index.js +0 -2
  908. package/validators/numericValidator/numericValidator.js +1 -7
  909. package/validators/numericValidator/numericValidator.mjs +1 -3
  910. package/validators/registry.js +7 -16
  911. package/validators/registry.mjs +7 -14
  912. package/validators/timeValidator/index.js +0 -2
  913. package/validators/timeValidator/timeValidator.js +6 -18
  914. package/validators/timeValidator/timeValidator.mjs +8 -13
@@ -1,57 +1,27 @@
1
1
  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); }
2
-
3
2
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4
-
5
3
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
6
-
7
- 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; }
8
-
9
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
10
-
11
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
12
-
13
- function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
14
-
15
4
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
16
-
17
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
18
-
19
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
20
-
21
5
  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; }
22
-
6
+ 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; }
7
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
23
8
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
24
-
25
9
  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); } }
26
-
27
10
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
28
-
29
11
  function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get.bind(); } 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); }
30
-
31
12
  function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
32
-
33
13
  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); }
34
-
35
14
  function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
36
-
37
15
  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); }; }
38
-
39
16
  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); }
40
-
41
17
  function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
42
-
43
18
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
44
-
45
19
  function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
46
-
47
20
  import "core-js/modules/es.array.iterator.js";
48
21
  import "core-js/modules/es.object.to-string.js";
49
22
  import "core-js/modules/es.string.iterator.js";
50
23
  import "core-js/modules/es.weak-map.js";
51
24
  import "core-js/modules/web.dom-collections.iterator.js";
52
- import "core-js/modules/es.array.filter.js";
53
- import "core-js/modules/es.array.splice.js";
54
- import "core-js/modules/es.array.concat.js";
55
25
  import "core-js/modules/es.array.includes.js";
56
26
  import "core-js/modules/es.string.includes.js";
57
27
  import "core-js/modules/es.object.set-prototype-of.js";
@@ -62,9 +32,9 @@ import "core-js/modules/es.object.get-own-property-descriptor.js";
62
32
  import "core-js/modules/es.symbol.js";
63
33
  import "core-js/modules/es.symbol.description.js";
64
34
  import "core-js/modules/es.symbol.iterator.js";
65
- import "core-js/modules/es.array.from.js";
66
35
  import "core-js/modules/es.array.slice.js";
67
36
  import "core-js/modules/es.function.name.js";
37
+ import "core-js/modules/es.array.from.js";
68
38
  import "core-js/modules/es.regexp.exec.js";
69
39
  import { BasePlugin } from "../base/index.mjs";
70
40
  import Hooks from "../../pluginHooks.mjs";
@@ -86,6 +56,7 @@ export var PLUGIN_KEY = 'mergeCells';
86
56
  export var PLUGIN_PRIORITY = 150;
87
57
  var privatePool = new WeakMap();
88
58
  var SHORTCUTS_GROUP = PLUGIN_KEY;
59
+
89
60
  /* eslint-disable jsdoc/require-description-complete-sentence */
90
61
 
91
62
  /**
@@ -97,6 +68,7 @@ var SHORTCUTS_GROUP = PLUGIN_KEY;
97
68
  *
98
69
  * @example
99
70
  *
71
+ * ::: only-for javascript
100
72
  * ```js
101
73
  * const hot = new Handsontable(document.getElementById('example'), {
102
74
  * data: getData(),
@@ -106,29 +78,39 @@ var SHORTCUTS_GROUP = PLUGIN_KEY;
106
78
  * {row: 4, col: 8, rowspan: 3, colspan: 3}
107
79
  * ],
108
80
  * ```
81
+ * :::
82
+ *
83
+ * ::: only-for react
84
+ * ```jsx
85
+ * <HotTable
86
+ * data={getData()}
87
+ * // enable plugin
88
+ * mergeCells={[
89
+ * {row: 0, col: 3, rowspan: 3, colspan: 3},
90
+ * {row: 2, col: 6, rowspan: 2, colspan: 2},
91
+ * {row: 4, col: 8, rowspan: 3, colspan: 3}
92
+ * ]}
93
+ * />
94
+ * ```
95
+ * :::
109
96
  */
110
-
111
97
  export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
112
98
  _inherits(MergeCells, _BasePlugin);
113
-
114
99
  var _super = _createSuper(MergeCells);
115
-
116
100
  function MergeCells(hotInstance) {
117
101
  var _this;
118
-
119
102
  _classCallCheck(this, MergeCells);
120
-
121
103
  _this = _super.call(this, hotInstance);
122
104
  privatePool.set(_assertThisInitialized(_this), {
123
105
  lastDesiredCoords: null
124
106
  });
107
+
125
108
  /**
126
109
  * A container for all the merged cells.
127
110
  *
128
111
  * @private
129
112
  * @type {MergedCellsCollection}
130
113
  */
131
-
132
114
  _this.mergedCellsCollection = null;
133
115
  /**
134
116
  * Instance of the class responsible for all the autofill-related calculations.
@@ -136,7 +118,6 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
136
118
  * @private
137
119
  * @type {AutofillCalculations}
138
120
  */
139
-
140
121
  _this.autofillCalculations = null;
141
122
  /**
142
123
  * Instance of the class responsible for the selection-related calculations.
@@ -144,36 +125,32 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
144
125
  * @private
145
126
  * @type {SelectionCalculations}
146
127
  */
147
-
148
128
  _this.selectionCalculations = null;
149
129
  return _this;
150
130
  }
131
+
151
132
  /**
152
133
  * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}
153
- * hook and if it returns `true` than the {@link MergeCells#enablePlugin} method is called.
134
+ * hook and if it returns `true` then the {@link MergeCells#enablePlugin} method is called.
154
135
  *
155
136
  * @returns {boolean}
156
137
  */
157
-
158
-
159
138
  _createClass(MergeCells, [{
160
139
  key: "isEnabled",
161
140
  value: function isEnabled() {
162
141
  return !!this.hot.getSettings()[PLUGIN_KEY];
163
142
  }
143
+
164
144
  /**
165
145
  * Enables the plugin functionality for this Handsontable instance.
166
146
  */
167
-
168
147
  }, {
169
148
  key: "enablePlugin",
170
149
  value: function enablePlugin() {
171
150
  var _this2 = this;
172
-
173
151
  if (this.enabled) {
174
152
  return;
175
153
  }
176
-
177
154
  this.mergedCellsCollection = new MergedCellsCollection(this);
178
155
  this.autofillCalculations = new AutofillCalculations(this);
179
156
  this.selectionCalculations = new SelectionCalculations(this);
@@ -252,29 +229,27 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
252
229
  }
253
230
  });
254
231
  this.registerShortcuts();
255
-
256
232
  _get(_getPrototypeOf(MergeCells.prototype), "enablePlugin", this).call(this);
257
233
  }
234
+
258
235
  /**
259
236
  * Disables the plugin functionality for this Handsontable instance.
260
237
  */
261
-
262
238
  }, {
263
239
  key: "disablePlugin",
264
240
  value: function disablePlugin() {
265
241
  this.clearCollections();
266
242
  this.unregisterShortcuts();
267
243
  this.hot.render();
268
-
269
244
  _get(_getPrototypeOf(MergeCells.prototype), "disablePlugin", this).call(this);
270
245
  }
246
+
271
247
  /**
272
248
  * Updates the plugin's state.
273
249
  *
274
250
  * This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options:
275
251
  * - [`mergeCells`](@/api/options.md#mergecells)
276
252
  */
277
-
278
253
  }, {
279
254
  key: "updatePlugin",
280
255
  value: function updatePlugin() {
@@ -282,9 +257,9 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
282
257
  this.disablePlugin();
283
258
  this.enablePlugin();
284
259
  this.generateFromSettings(settings);
285
-
286
260
  _get(_getPrototypeOf(MergeCells.prototype), "updatePlugin", this).call(this);
287
261
  }
262
+
288
263
  /**
289
264
  * Validates a single setting object, represented by a single merged cell information object.
290
265
  *
@@ -292,16 +267,13 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
292
267
  * @param {object} setting An object with `row`, `col`, `rowspan` and `colspan` properties.
293
268
  * @returns {boolean}
294
269
  */
295
-
296
270
  }, {
297
271
  key: "validateSetting",
298
272
  value: function validateSetting(setting) {
299
273
  var valid = true;
300
-
301
274
  if (!setting) {
302
275
  return false;
303
276
  }
304
-
305
277
  if (MergedCellCoords.containsNegativeValues(setting)) {
306
278
  warn(MergedCellCoords.NEGATIVE_VALUES_WARNING(setting));
307
279
  valid = false;
@@ -315,115 +287,58 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
315
287
  warn(MergedCellCoords.ZERO_SPAN_WARNING(setting));
316
288
  valid = false;
317
289
  }
318
-
319
290
  return valid;
320
291
  }
292
+
321
293
  /**
322
294
  * Generates the merged cells from the settings provided to the plugin.
323
295
  *
324
296
  * @private
325
297
  * @param {Array|boolean} settings The settings provided to the plugin.
326
298
  */
327
-
328
299
  }, {
329
300
  key: "generateFromSettings",
330
301
  value: function generateFromSettings(settings) {
331
302
  var _this3 = this;
332
-
333
303
  if (Array.isArray(settings)) {
334
- var _this$hot;
335
-
336
- var populationArgumentsList = [];
304
+ var populatedNulls = [];
337
305
  arrayEach(settings, function (setting) {
338
306
  if (!_this3.validateSetting(setting)) {
339
307
  return;
340
308
  }
341
-
342
309
  var highlight = _this3.hot._createCellCoords(setting.row, setting.col);
343
-
344
310
  var rangeEnd = _this3.hot._createCellCoords(setting.row + setting.rowspan - 1, setting.col + setting.colspan - 1);
345
-
346
311
  var mergeRange = _this3.hot._createCellRange(highlight, highlight, rangeEnd);
347
312
 
348
- populationArgumentsList.push(_this3.mergeRange(mergeRange, true, true));
349
- }); // remove 'empty' setting objects, caused by improper merge range declarations
350
-
351
- populationArgumentsList = populationArgumentsList.filter(function (value) {
352
- return value !== true;
313
+ // Merging without data population.
314
+ _this3.mergeRange(mergeRange, true, true);
315
+ rangeEach(setting.row, setting.row + setting.rowspan - 1, function (rowIndex) {
316
+ rangeEach(setting.col, setting.col + setting.colspan - 1, function (columnIndex) {
317
+ // Not resetting a cell representing a merge area's value.
318
+ if ((rowIndex === setting.row && columnIndex === setting.col) === false) {
319
+ populatedNulls.push([rowIndex, columnIndex, null]);
320
+ }
321
+ });
322
+ });
353
323
  });
354
- var bulkPopulationData = this.getBulkCollectionData(populationArgumentsList);
355
324
 
356
- (_this$hot = this.hot).populateFromArray.apply(_this$hot, _toConsumableArray(bulkPopulationData));
325
+ // There are no merged cells. Thus, no data population is needed.
326
+ if (populatedNulls.length === 0) {
327
+ return;
328
+ }
329
+ this.hot.setDataAtCell(populatedNulls);
357
330
  }
358
331
  }
359
- /**
360
- * Generates a bulk set of all the data to be populated to fill the data "under" the added merged cells.
361
- *
362
- * @private
363
- * @param {Array} populationArgumentsList Array in a form of `[row, column, dataUnderCollection]`.
364
- * @returns {Array} Array in a form of `[row, column, dataOfAllCollections]`.
365
- */
366
-
367
- }, {
368
- key: "getBulkCollectionData",
369
- value: function getBulkCollectionData(populationArgumentsList) {
370
- var _this$hot2;
371
332
 
372
- var populationDataRange = this.getBulkCollectionDataRange(populationArgumentsList);
373
-
374
- var dataAtRange = (_this$hot2 = this.hot).getData.apply(_this$hot2, _toConsumableArray(populationDataRange));
375
-
376
- var newDataAtRange = dataAtRange.splice(0);
377
- arrayEach(populationArgumentsList, function (mergedCellArguments) {
378
- var _mergedCellArguments = _slicedToArray(mergedCellArguments, 3),
379
- mergedCellRowIndex = _mergedCellArguments[0],
380
- mergedCellColumnIndex = _mergedCellArguments[1],
381
- mergedCellData = _mergedCellArguments[2];
382
-
383
- arrayEach(mergedCellData, function (mergedCellRow, rowIndex) {
384
- arrayEach(mergedCellRow, function (mergedCellElement, columnIndex) {
385
- newDataAtRange[mergedCellRowIndex - populationDataRange[0] + rowIndex][mergedCellColumnIndex - populationDataRange[1] + columnIndex] = mergedCellElement; // eslint-disable-line max-len
386
- });
387
- });
388
- });
389
- return [populationDataRange[0], populationDataRange[1], newDataAtRange];
390
- }
391
- /**
392
- * Gets the range of combined data ranges provided in a form of an array of arrays ([row, column, dataUnderCollection]).
393
- *
394
- * @private
395
- * @param {Array} populationArgumentsList Array containing argument lists for the `populateFromArray` method - row, column and data for population.
396
- * @returns {Array[]} Start and end coordinates of the merged cell range. (in a form of [rowIndex, columnIndex]).
397
- */
398
-
399
- }, {
400
- key: "getBulkCollectionDataRange",
401
- value: function getBulkCollectionDataRange(populationArgumentsList) {
402
- var start = [0, 0];
403
- var end = [0, 0];
404
- var mergedCellRow = null;
405
- var mergedCellColumn = null;
406
- var mergedCellData = null;
407
- arrayEach(populationArgumentsList, function (mergedCellArguments) {
408
- mergedCellRow = mergedCellArguments[0];
409
- mergedCellColumn = mergedCellArguments[1];
410
- mergedCellData = mergedCellArguments[2];
411
- start[0] = Math.min(mergedCellRow, start[0]);
412
- start[1] = Math.min(mergedCellColumn, start[1]);
413
- end[0] = Math.max(mergedCellRow + mergedCellData.length - 1, end[0]);
414
- end[1] = Math.max(mergedCellColumn + mergedCellData[0].length - 1, end[1]);
415
- });
416
- return [].concat(start, end);
417
- }
418
333
  /**
419
334
  * Clears the merged cells from the merged cell container.
420
335
  */
421
-
422
336
  }, {
423
337
  key: "clearCollections",
424
338
  value: function clearCollections() {
425
339
  this.mergedCellsCollection.clear();
426
340
  }
341
+
427
342
  /**
428
343
  * Returns `true` if a range is mergeable.
429
344
  *
@@ -432,76 +347,70 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
432
347
  * @param {boolean} [auto=false] `true` if triggered at initialization.
433
348
  * @returns {boolean}
434
349
  */
435
-
436
350
  }, {
437
351
  key: "canMergeRange",
438
352
  value: function canMergeRange(newMergedCellInfo) {
439
353
  var auto = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
440
354
  return auto ? true : this.validateSetting(newMergedCellInfo);
441
355
  }
356
+
442
357
  /**
443
358
  * Merge or unmerge, based on last selected range.
444
359
  *
445
360
  * @private
446
361
  */
447
-
448
362
  }, {
449
363
  key: "toggleMergeOnSelection",
450
364
  value: function toggleMergeOnSelection() {
451
365
  var currentRange = this.hot.getSelectedRangeLast();
452
-
453
366
  if (!currentRange) {
454
367
  return;
455
368
  }
456
-
457
369
  currentRange.setDirection(this.hot.isRtl() ? 'NE-SW' : 'NW-SE');
458
370
  var from = currentRange.from,
459
- to = currentRange.to;
371
+ to = currentRange.to;
460
372
  this.toggleMerge(currentRange);
461
373
  this.hot.selectCell(from.row, from.col, to.row, to.col, false);
462
374
  }
375
+
463
376
  /**
464
377
  * Merges the selection provided as a cell range.
465
378
  *
466
379
  * @param {CellRange} [cellRange] Selection cell range.
467
380
  */
468
-
469
381
  }, {
470
382
  key: "mergeSelection",
471
383
  value: function mergeSelection() {
472
384
  var cellRange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.hot.getSelectedRangeLast();
473
-
474
385
  if (!cellRange) {
475
386
  return;
476
387
  }
477
-
478
388
  cellRange.setDirection(this.hot.isRtl() ? 'NE-SW' : 'NW-SE');
479
389
  var from = cellRange.from,
480
- to = cellRange.to;
390
+ to = cellRange.to;
481
391
  this.unmergeRange(cellRange, true);
482
392
  this.mergeRange(cellRange);
483
393
  this.hot.selectCell(from.row, from.col, to.row, to.col, false);
484
394
  }
395
+
485
396
  /**
486
397
  * Unmerges the selection provided as a cell range.
487
398
  *
488
399
  * @param {CellRange} [cellRange] Selection cell range.
489
400
  */
490
-
491
401
  }, {
492
402
  key: "unmergeSelection",
493
403
  value: function unmergeSelection() {
494
404
  var cellRange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.hot.getSelectedRangeLast();
495
-
496
405
  if (!cellRange) {
497
406
  return;
498
407
  }
499
-
500
408
  var from = cellRange.from,
501
- to = cellRange.to;
409
+ to = cellRange.to;
502
410
  this.unmergeRange(cellRange, true);
503
411
  this.hot.selectCell(from.row, from.col, to.row, to.col, false);
504
412
  }
413
+
505
414
  /**
506
415
  * Merges cells in the provided cell range.
507
416
  *
@@ -513,12 +422,10 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
513
422
  * @fires Hooks#beforeMergeCells
514
423
  * @fires Hooks#afterMergeCells
515
424
  */
516
-
517
425
  }, {
518
426
  key: "mergeRange",
519
427
  value: function mergeRange(cellRange) {
520
428
  var _this4 = this;
521
-
522
429
  var auto = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
523
430
  var preventPopulation = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
524
431
  var topStart = cellRange.getTopStartCorner();
@@ -531,45 +438,38 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
531
438
  };
532
439
  var clearedData = [];
533
440
  var populationInfo = null;
534
-
535
441
  if (!this.canMergeRange(mergeParent, auto)) {
536
442
  return false;
537
443
  }
538
-
539
444
  this.hot.runHooks('beforeMergeCells', cellRange, auto);
540
445
  rangeEach(0, mergeParent.rowspan - 1, function (i) {
541
446
  rangeEach(0, mergeParent.colspan - 1, function (j) {
542
447
  var clearedValue = null;
543
-
544
448
  if (!clearedData[i]) {
545
449
  clearedData[i] = [];
546
450
  }
547
-
548
451
  if (i === 0 && j === 0) {
549
- clearedValue = _this4.hot.getDataAtCell(mergeParent.row, mergeParent.col);
452
+ clearedValue = _this4.hot.getSourceDataAtCell(_this4.hot.toPhysicalRow(mergeParent.row), _this4.hot.toPhysicalColumn(mergeParent.col));
550
453
  } else {
551
454
  _this4.hot.setCellMeta(mergeParent.row + i, mergeParent.col + j, 'hidden', true);
552
455
  }
553
-
554
456
  clearedData[i][j] = clearedValue;
555
457
  });
556
458
  });
557
459
  this.hot.setCellMeta(mergeParent.row, mergeParent.col, 'spanned', true);
558
460
  var mergedCellAdded = this.mergedCellsCollection.add(mergeParent);
559
-
560
461
  if (mergedCellAdded) {
561
462
  if (preventPopulation) {
562
463
  populationInfo = [mergeParent.row, mergeParent.col, clearedData];
563
464
  } else {
564
465
  this.hot.populateFromArray(mergeParent.row, mergeParent.col, clearedData, void 0, void 0, this.pluginName);
565
466
  }
566
-
567
467
  this.hot.runHooks('afterMergeCells', cellRange, mergeParent, auto);
568
468
  return populationInfo;
569
469
  }
570
-
571
470
  return true;
572
471
  }
472
+
573
473
  /**
574
474
  * Unmerges the selection provided as a cell range. If no cell range is provided, it uses the current selection.
575
475
  *
@@ -580,53 +480,47 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
580
480
  * @fires Hooks#beforeUnmergeCells
581
481
  * @fires Hooks#afterUnmergeCells
582
482
  */
583
-
584
483
  }, {
585
484
  key: "unmergeRange",
586
485
  value: function unmergeRange(cellRange) {
587
486
  var _this5 = this;
588
-
589
487
  var auto = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
590
488
  var mergedCells = this.mergedCellsCollection.getWithinRange(cellRange);
591
-
592
489
  if (!mergedCells) {
593
490
  return;
594
491
  }
595
-
596
492
  this.hot.runHooks('beforeUnmergeCells', cellRange, auto);
597
493
  arrayEach(mergedCells, function (currentCollection) {
598
494
  _this5.mergedCellsCollection.remove(currentCollection.row, currentCollection.col);
599
-
600
495
  rangeEach(0, currentCollection.rowspan - 1, function (i) {
601
496
  rangeEach(0, currentCollection.colspan - 1, function (j) {
602
497
  _this5.hot.removeCellMeta(currentCollection.row + i, currentCollection.col + j, 'hidden');
603
498
  });
604
499
  });
605
-
606
500
  _this5.hot.removeCellMeta(currentCollection.row, currentCollection.col, 'spanned');
607
501
  });
608
502
  this.hot.runHooks('afterUnmergeCells', cellRange, auto);
609
503
  this.hot.render();
610
504
  }
505
+
611
506
  /**
612
507
  * Merges or unmerges, based on the cell range provided as `cellRange`.
613
508
  *
614
509
  * @private
615
510
  * @param {CellRange} cellRange The cell range to merge or unmerged.
616
511
  */
617
-
618
512
  }, {
619
513
  key: "toggleMerge",
620
514
  value: function toggleMerge(cellRange) {
621
515
  var mergedCell = this.mergedCellsCollection.get(cellRange.from.row, cellRange.from.col);
622
516
  var mergedCellCoversWholeRange = mergedCell.row === cellRange.from.row && mergedCell.col === cellRange.from.col && mergedCell.row + mergedCell.rowspan - 1 === cellRange.to.row && mergedCell.col + mergedCell.colspan - 1 === cellRange.to.col;
623
-
624
517
  if (mergedCellCoversWholeRange) {
625
518
  this.unmergeRange(cellRange);
626
519
  } else {
627
520
  this.mergeSelection(cellRange);
628
521
  }
629
522
  }
523
+
630
524
  /**
631
525
  * Merges the specified range.
632
526
  *
@@ -637,16 +531,14 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
637
531
  * @fires Hooks#beforeMergeCells
638
532
  * @fires Hooks#afterMergeCells
639
533
  */
640
-
641
534
  }, {
642
535
  key: "merge",
643
536
  value: function merge(startRow, startColumn, endRow, endColumn) {
644
537
  var start = this.hot._createCellCoords(startRow, startColumn);
645
-
646
538
  var end = this.hot._createCellCoords(endRow, endColumn);
647
-
648
539
  this.mergeRange(this.hot._createCellRange(start, start, end));
649
540
  }
541
+
650
542
  /**
651
543
  * Unmerges the merged cell in the provided range.
652
544
  *
@@ -657,46 +549,41 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
657
549
  * @fires Hooks#beforeUnmergeCells
658
550
  * @fires Hooks#afterUnmergeCells
659
551
  */
660
-
661
552
  }, {
662
553
  key: "unmerge",
663
554
  value: function unmerge(startRow, startColumn, endRow, endColumn) {
664
555
  var start = this.hot._createCellCoords(startRow, startColumn);
665
-
666
556
  var end = this.hot._createCellCoords(endRow, endColumn);
667
-
668
557
  this.unmergeRange(this.hot._createCellRange(start, start, end));
669
558
  }
559
+
670
560
  /**
671
561
  * `afterInit` hook callback.
672
562
  *
673
563
  * @private
674
564
  */
675
-
676
565
  }, {
677
566
  key: "onAfterInit",
678
567
  value: function onAfterInit() {
679
568
  this.generateFromSettings(this.hot.getSettings()[PLUGIN_KEY]);
680
569
  this.hot.render();
681
570
  }
571
+
682
572
  /**
683
573
  * Register shortcuts responsible for toggling a merge.
684
574
  *
685
575
  * @private
686
576
  */
687
-
688
577
  }, {
689
578
  key: "registerShortcuts",
690
579
  value: function registerShortcuts() {
691
580
  var _this6 = this;
692
-
693
581
  var shortcutManager = this.hot.getShortcutManager();
694
582
  var gridContext = shortcutManager.getContext('grid');
695
583
  gridContext.addShortcut({
696
584
  keys: [['Control', 'm']],
697
585
  callback: function callback() {
698
586
  _this6.toggleMerge(_this6.hot.getSelectedRangeLast());
699
-
700
587
  _this6.hot.render();
701
588
  },
702
589
  runOnlyIf: function runOnlyIf(event) {
@@ -706,12 +593,12 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
706
593
  group: SHORTCUTS_GROUP
707
594
  });
708
595
  }
596
+
709
597
  /**
710
598
  * Unregister shortcuts responsible for toggling a merge.
711
599
  *
712
600
  * @private
713
601
  */
714
-
715
602
  }, {
716
603
  key: "unregisterShortcuts",
717
604
  value: function unregisterShortcuts() {
@@ -719,6 +606,7 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
719
606
  var gridContext = shortcutManager.getContext('grid');
720
607
  gridContext.removeShortcutsByGroup(SHORTCUTS_GROUP);
721
608
  }
609
+
722
610
  /**
723
611
  * Modifies the information on whether the current selection contains multiple cells. The `afterIsMultipleSelection` hook callback.
724
612
  *
@@ -726,30 +614,27 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
726
614
  * @param {boolean} isMultiple Determines whether the current selection contains multiple cells.
727
615
  * @returns {boolean}
728
616
  */
729
-
730
617
  }, {
731
618
  key: "onAfterIsMultipleSelection",
732
619
  value: function onAfterIsMultipleSelection(isMultiple) {
733
620
  if (isMultiple) {
734
621
  var mergedCells = this.mergedCellsCollection.mergedCells;
735
622
  var selectionRange = this.hot.getSelectedRangeLast();
736
-
737
623
  for (var group = 0; group < mergedCells.length; group += 1) {
738
624
  if (selectionRange.from.row === mergedCells[group].row && selectionRange.from.col === mergedCells[group].col && selectionRange.to.row === mergedCells[group].row + mergedCells[group].rowspan - 1 && selectionRange.to.col === mergedCells[group].col + mergedCells[group].colspan - 1) {
739
625
  return false;
740
626
  }
741
627
  }
742
628
  }
743
-
744
629
  return isMultiple;
745
630
  }
631
+
746
632
  /**
747
633
  * `modifyTransformStart` hook callback.
748
634
  *
749
635
  * @private
750
636
  * @param {object} delta The transformation delta.
751
637
  */
752
-
753
638
  }, {
754
639
  key: "onModifyTransformStart",
755
640
  value: function onModifyTransformStart(delta) {
@@ -760,30 +645,22 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
760
645
  col: delta.col
761
646
  };
762
647
  var nextPosition = null;
763
-
764
648
  var currentPosition = this.hot._createCellCoords(currentlySelectedRange.highlight.row, currentlySelectedRange.highlight.col);
765
-
766
649
  var mergedParent = this.mergedCellsCollection.get(currentPosition.row, currentPosition.col);
767
-
768
650
  if (!priv.lastDesiredCoords) {
769
651
  priv.lastDesiredCoords = this.hot._createCellCoords(null, null);
770
652
  }
771
-
772
653
  if (mergedParent) {
773
654
  // only merge selected
774
655
  var mergeTopLeft = this.hot._createCellCoords(mergedParent.row, mergedParent.col);
775
-
776
656
  var mergeBottomRight = this.hot._createCellCoords(mergedParent.row + mergedParent.rowspan - 1, mergedParent.col + mergedParent.colspan - 1);
777
-
778
657
  var mergeRange = this.hot._createCellRange(mergeTopLeft, mergeTopLeft, mergeBottomRight);
779
-
780
658
  if (!mergeRange.includes(priv.lastDesiredCoords)) {
781
659
  priv.lastDesiredCoords = this.hot._createCellCoords(null, null); // reset outdated version of lastDesiredCoords
782
660
  }
783
661
 
784
662
  newDelta.row = priv.lastDesiredCoords.row ? priv.lastDesiredCoords.row - currentPosition.row : newDelta.row;
785
663
  newDelta.col = priv.lastDesiredCoords.col ? priv.lastDesiredCoords.col - currentPosition.col : newDelta.col;
786
-
787
664
  if (delta.row > 0) {
788
665
  // moving down
789
666
  newDelta.row = mergedParent.row + mergedParent.rowspan - 1 - currentPosition.row + delta.row;
@@ -791,7 +668,6 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
791
668
  // moving up
792
669
  newDelta.row = currentPosition.row - mergedParent.row + delta.row;
793
670
  }
794
-
795
671
  if (delta.col > 0) {
796
672
  // moving right
797
673
  newDelta.col = mergedParent.col + mergedParent.colspan - 1 - currentPosition.col + delta.col;
@@ -800,10 +676,8 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
800
676
  newDelta.col = currentPosition.col - mergedParent.col + delta.col;
801
677
  }
802
678
  }
803
-
804
679
  nextPosition = this.hot._createCellCoords(currentlySelectedRange.highlight.row + newDelta.row, currentlySelectedRange.highlight.col + newDelta.col);
805
680
  var nextPositionMergedCell = this.mergedCellsCollection.get(nextPosition.row, nextPosition.col);
806
-
807
681
  if (nextPositionMergedCell) {
808
682
  // skipping the invisible cells in the merge range
809
683
  var firstRenderableCoords = this.mergedCellsCollection.getFirstRenderableCoords(nextPositionMergedCell.row, nextPositionMergedCell.col);
@@ -813,33 +687,29 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
813
687
  col: firstRenderableCoords.col - currentPosition.col
814
688
  };
815
689
  }
816
-
817
690
  if (newDelta.row !== 0) {
818
691
  delta.row = newDelta.row;
819
692
  }
820
-
821
693
  if (newDelta.col !== 0) {
822
694
  delta.col = newDelta.col;
823
695
  }
824
696
  }
697
+
825
698
  /**
826
699
  * `modifyTransformEnd` hook callback. Needed to handle "jumping over" merged merged cells, while selecting.
827
700
  *
828
701
  * @private
829
702
  * @param {object} delta The transformation delta.
830
703
  */
831
-
832
704
  }, {
833
705
  key: "onModifyTransformEnd",
834
706
  value: function onModifyTransformEnd(delta) {
835
707
  var _this7 = this;
836
-
837
708
  var currentSelectionRange = this.hot.getSelectedRangeLast();
838
709
  var newDelta = clone(delta);
839
710
  var newSelectionRange = this.selectionCalculations.getUpdatedSelectionRange(currentSelectionRange, delta);
840
711
  var tempDelta = clone(newDelta);
841
712
  var mergedCellsWithinRange = this.mergedCellsCollection.getWithinRange(newSelectionRange, true);
842
-
843
713
  do {
844
714
  tempDelta = clone(newDelta);
845
715
  this.selectionCalculations.getUpdatedSelectionRange(currentSelectionRange, newDelta);
@@ -847,10 +717,10 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
847
717
  _this7.selectionCalculations.snapDelta(newDelta, currentSelectionRange, mergedCell);
848
718
  });
849
719
  } while (newDelta.row !== tempDelta.row || newDelta.col !== tempDelta.col);
850
-
851
720
  delta.row = newDelta.row;
852
721
  delta.col = newDelta.col;
853
722
  }
723
+
854
724
  /**
855
725
  * `modifyGetCellCoords` hook callback. Swaps the `getCell` coords with the merged parent coords.
856
726
  *
@@ -859,35 +729,33 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
859
729
  * @param {number} column Visual column index.
860
730
  * @returns {Array|undefined} Visual coordinates of the merge.
861
731
  */
862
-
863
732
  }, {
864
733
  key: "onModifyGetCellCoords",
865
734
  value: function onModifyGetCellCoords(row, column) {
866
735
  if (row < 0 || column < 0) {
867
736
  return;
868
737
  }
869
-
870
738
  var mergeParent = this.mergedCellsCollection.get(row, column);
871
-
872
739
  if (!mergeParent) {
873
740
  return;
874
741
  }
875
-
876
742
  var mergeRow = mergeParent.row,
877
- mergeColumn = mergeParent.col,
878
- colspan = mergeParent.colspan,
879
- rowspan = mergeParent.rowspan;
880
- return [// Most top-left merged cell coords.
881
- mergeRow, mergeColumn, // Most bottom-right merged cell coords.
743
+ mergeColumn = mergeParent.col,
744
+ colspan = mergeParent.colspan,
745
+ rowspan = mergeParent.rowspan;
746
+ return [
747
+ // Most top-left merged cell coords.
748
+ mergeRow, mergeColumn,
749
+ // Most bottom-right merged cell coords.
882
750
  mergeRow + rowspan - 1, mergeColumn + colspan - 1];
883
751
  }
752
+
884
753
  /**
885
754
  * `afterContextMenuDefaultOptions` hook callback.
886
755
  *
887
756
  * @private
888
757
  * @param {object} defaultOptions The default context menu options.
889
758
  */
890
-
891
759
  }, {
892
760
  key: "addMergeActionsToContextMenu",
893
761
  value: function addMergeActionsToContextMenu(defaultOptions) {
@@ -895,6 +763,7 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
895
763
  name: '---------'
896
764
  }, toggleMergeItem(this));
897
765
  }
766
+
898
767
  /**
899
768
  * `afterRenderer` hook callback.
900
769
  *
@@ -903,46 +772,41 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
903
772
  * @param {number} row Row index.
904
773
  * @param {number} col Visual column index.
905
774
  */
906
-
907
775
  }, {
908
776
  key: "onAfterRenderer",
909
777
  value: function onAfterRenderer(TD, row, col) {
910
- var mergedCell = this.mergedCellsCollection.get(row, col); // We shouldn't override data in the collection.
911
-
778
+ var mergedCell = this.mergedCellsCollection.get(row, col);
779
+ // We shouldn't override data in the collection.
912
780
  var mergedCellCopy = isObject(mergedCell) ? clone(mergedCell) : void 0;
913
-
914
781
  if (isObject(mergedCellCopy)) {
915
- var _this$hot3 = this.hot,
916
- rowMapper = _this$hot3.rowIndexMapper,
917
- columnMapper = _this$hot3.columnIndexMapper;
782
+ var _this$hot = this.hot,
783
+ rowMapper = _this$hot.rowIndexMapper,
784
+ columnMapper = _this$hot.columnIndexMapper;
918
785
  var mergeRow = mergedCellCopy.row,
919
- mergeColumn = mergedCellCopy.col,
920
- colspan = mergedCellCopy.colspan,
921
- rowspan = mergedCellCopy.rowspan;
922
-
786
+ mergeColumn = mergedCellCopy.col,
787
+ colspan = mergedCellCopy.colspan,
788
+ rowspan = mergedCellCopy.rowspan;
923
789
  var _this$translateMerged = this.translateMergedCellToRenderable(mergeRow, rowspan, mergeColumn, colspan),
924
- _this$translateMerged2 = _slicedToArray(_this$translateMerged, 2),
925
- lastMergedRowIndex = _this$translateMerged2[0],
926
- lastMergedColumnIndex = _this$translateMerged2[1];
927
-
790
+ _this$translateMerged2 = _slicedToArray(_this$translateMerged, 2),
791
+ lastMergedRowIndex = _this$translateMerged2[0],
792
+ lastMergedColumnIndex = _this$translateMerged2[1];
928
793
  var renderedRowIndex = rowMapper.getRenderableFromVisualIndex(row);
929
794
  var renderedColumnIndex = columnMapper.getRenderableFromVisualIndex(col);
930
795
  var maxRowSpan = lastMergedRowIndex - renderedRowIndex + 1; // Number of rendered columns.
931
-
932
796
  var maxColSpan = lastMergedColumnIndex - renderedColumnIndex + 1; // Number of rendered columns.
933
- // We just try to determine some values basing on the actual number of rendered indexes (some columns may be hidden).
934
-
935
- mergedCellCopy.row = rowMapper.getNearestNotHiddenIndex(mergedCellCopy.row, 1); // We just try to determine some values basing on the actual number of rendered indexes (some columns may be hidden).
936
-
937
- mergedCellCopy.col = columnMapper.getNearestNotHiddenIndex(mergedCellCopy.col, 1); // The `rowSpan` property for a `TD` element should be at most equal to number of rendered rows in the merge area.
938
-
939
- mergedCellCopy.rowspan = Math.min(mergedCellCopy.rowspan, maxRowSpan); // The `colSpan` property for a `TD` element should be at most equal to number of rendered columns in the merge area.
940
797
 
798
+ // We just try to determine some values basing on the actual number of rendered indexes (some columns may be hidden).
799
+ mergedCellCopy.row = rowMapper.getNearestNotHiddenIndex(mergedCellCopy.row, 1);
800
+ // We just try to determine some values basing on the actual number of rendered indexes (some columns may be hidden).
801
+ mergedCellCopy.col = columnMapper.getNearestNotHiddenIndex(mergedCellCopy.col, 1);
802
+ // The `rowSpan` property for a `TD` element should be at most equal to number of rendered rows in the merge area.
803
+ mergedCellCopy.rowspan = Math.min(mergedCellCopy.rowspan, maxRowSpan);
804
+ // The `colSpan` property for a `TD` element should be at most equal to number of rendered columns in the merge area.
941
805
  mergedCellCopy.colspan = Math.min(mergedCellCopy.colspan, maxColSpan);
942
806
  }
943
-
944
807
  applySpanProperties(TD, mergedCellCopy, row, col);
945
808
  }
809
+
946
810
  /**
947
811
  * `beforeSetRangeStart` and `beforeSetRangeStartOnly` hook callback.
948
812
  * A selection within merge area should be rewritten to the start of merge area.
@@ -950,7 +814,6 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
950
814
  * @private
951
815
  * @param {object} coords Cell coords.
952
816
  */
953
-
954
817
  }, {
955
818
  key: "onBeforeSetRangeStart",
956
819
  value: function onBeforeSetRangeStart(coords) {
@@ -966,6 +829,7 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
966
829
  coords.col = _ref[1];
967
830
  }
968
831
  }
832
+
969
833
  /**
970
834
  * `beforeSetRangeEnd` hook callback.
971
835
  * While selecting cells with keyboard or mouse, make sure that rectangular area is expanded to the extent of the merged cell.
@@ -975,27 +839,21 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
975
839
  * @private
976
840
  * @param {object} coords Cell coords.
977
841
  */
978
-
979
842
  }, {
980
843
  key: "onBeforeSetRangeEnd",
981
844
  value: function onBeforeSetRangeEnd(coords) {
982
845
  var selRange = this.hot.getSelectedRangeLast();
983
846
  selRange.highlight = this.hot._createCellCoords(selRange.highlight.row, selRange.highlight.col); // clone in case we will modify its reference
984
-
985
847
  selRange.to = coords;
986
848
  var rangeExpanded = false;
987
-
988
849
  if (this.hot.selection.isSelectedByColumnHeader() || this.hot.selection.isSelectedByRowHeader()) {
989
850
  return;
990
851
  }
991
-
992
852
  do {
993
853
  rangeExpanded = false;
994
-
995
854
  for (var i = 0; i < this.mergedCellsCollection.mergedCells.length; i += 1) {
996
855
  var cellInfo = this.mergedCellsCollection.mergedCells[i];
997
856
  var mergedCellRange = cellInfo.getRange();
998
-
999
857
  if (selRange.expandByRange(mergedCellRange)) {
1000
858
  coords.row = selRange.to.row;
1001
859
  coords.col = selRange.to.col;
@@ -1004,6 +862,7 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
1004
862
  }
1005
863
  } while (rangeExpanded);
1006
864
  }
865
+
1007
866
  /**
1008
867
  * The `afterGetCellMeta` hook callback.
1009
868
  *
@@ -1012,12 +871,10 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
1012
871
  * @param {number} col Column index.
1013
872
  * @param {object} cellProperties The cell properties object.
1014
873
  */
1015
-
1016
874
  }, {
1017
875
  key: "onAfterGetCellMeta",
1018
876
  value: function onAfterGetCellMeta(row, col, cellProperties) {
1019
877
  var mergeParent = this.mergedCellsCollection.get(row, col);
1020
-
1021
878
  if (mergeParent) {
1022
879
  if (mergeParent.row !== row || mergeParent.col !== col) {
1023
880
  cellProperties.copyable = false;
@@ -1027,13 +884,13 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
1027
884
  }
1028
885
  }
1029
886
  }
887
+
1030
888
  /**
1031
889
  * `afterViewportRowCalculatorOverride` hook callback.
1032
890
  *
1033
891
  * @private
1034
892
  * @param {object} calc The row calculator object.
1035
893
  */
1036
-
1037
894
  }, {
1038
895
  key: "onAfterViewportRowCalculatorOverride",
1039
896
  value: function onAfterViewportRowCalculatorOverride(calc) {
@@ -1041,6 +898,7 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
1041
898
  this.modifyViewportRowStart(calc, nrOfColumns);
1042
899
  this.modifyViewportRowEnd(calc, nrOfColumns);
1043
900
  }
901
+
1044
902
  /**
1045
903
  * Modify viewport start when needed. We extend viewport when merged cells aren't fully visible.
1046
904
  *
@@ -1048,23 +906,21 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
1048
906
  * @param {object} calc The row calculator object.
1049
907
  * @param {number} nrOfColumns Number of visual columns.
1050
908
  */
1051
-
1052
909
  }, {
1053
910
  key: "modifyViewportRowStart",
1054
911
  value: function modifyViewportRowStart(calc, nrOfColumns) {
1055
912
  var rowMapper = this.hot.rowIndexMapper;
1056
913
  var visualStartRow = rowMapper.getVisualFromRenderableIndex(calc.startRow);
1057
-
1058
914
  for (var visualColumnIndex = 0; visualColumnIndex < nrOfColumns; visualColumnIndex += 1) {
1059
915
  var mergeParentForViewportStart = this.mergedCellsCollection.get(visualStartRow, visualColumnIndex);
1060
-
1061
916
  if (isObject(mergeParentForViewportStart)) {
1062
- var renderableIndexAtMergeStart = rowMapper.getRenderableFromVisualIndex(rowMapper.getNearestNotHiddenIndex(mergeParentForViewportStart.row, 1)); // Merge start is out of the viewport (i.e. when we scrolled to the bottom and we can see just part of a merge).
917
+ var renderableIndexAtMergeStart = rowMapper.getRenderableFromVisualIndex(rowMapper.getNearestNotHiddenIndex(mergeParentForViewportStart.row, 1));
1063
918
 
919
+ // Merge start is out of the viewport (i.e. when we scrolled to the bottom and we can see just part of a merge).
1064
920
  if (renderableIndexAtMergeStart < calc.startRow) {
1065
921
  // We extend viewport when some rows have been merged.
1066
- calc.startRow = renderableIndexAtMergeStart; // We are looking for next merges inside already extended viewport (starting again from row equal to 0).
1067
-
922
+ calc.startRow = renderableIndexAtMergeStart;
923
+ // We are looking for next merges inside already extended viewport (starting again from row equal to 0).
1068
924
  this.modifyViewportRowStart(calc, nrOfColumns); // recursively search upwards
1069
925
 
1070
926
  return; // Finish the current loop. Everything will be checked from the beginning by above recursion.
@@ -1072,6 +928,7 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
1072
928
  }
1073
929
  }
1074
930
  }
931
+
1075
932
  /**
1076
933
  * Modify viewport end when needed. We extend viewport when merged cells aren't fully visible.
1077
934
  *
@@ -1079,24 +936,22 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
1079
936
  * @param {object} calc The row calculator object.
1080
937
  * @param {number} nrOfColumns Number of visual columns.
1081
938
  */
1082
-
1083
939
  }, {
1084
940
  key: "modifyViewportRowEnd",
1085
941
  value: function modifyViewportRowEnd(calc, nrOfColumns) {
1086
942
  var rowMapper = this.hot.rowIndexMapper;
1087
943
  var visualEndRow = rowMapper.getVisualFromRenderableIndex(calc.endRow);
1088
-
1089
944
  for (var visualColumnIndex = 0; visualColumnIndex < nrOfColumns; visualColumnIndex += 1) {
1090
945
  var mergeParentForViewportEnd = this.mergedCellsCollection.get(visualEndRow, visualColumnIndex);
1091
-
1092
946
  if (isObject(mergeParentForViewportEnd)) {
1093
947
  var mergeEnd = mergeParentForViewportEnd.row + mergeParentForViewportEnd.rowspan - 1;
1094
- var renderableIndexAtMergeEnd = rowMapper.getRenderableFromVisualIndex(rowMapper.getNearestNotHiddenIndex(mergeEnd, -1)); // Merge end is out of the viewport.
948
+ var renderableIndexAtMergeEnd = rowMapper.getRenderableFromVisualIndex(rowMapper.getNearestNotHiddenIndex(mergeEnd, -1));
1095
949
 
950
+ // Merge end is out of the viewport.
1096
951
  if (renderableIndexAtMergeEnd > calc.endRow) {
1097
952
  // We extend the viewport when some rows have been merged.
1098
- calc.endRow = renderableIndexAtMergeEnd; // We are looking for next merges inside already extended viewport (starting again from row equal to 0).
1099
-
953
+ calc.endRow = renderableIndexAtMergeEnd;
954
+ // We are looking for next merges inside already extended viewport (starting again from row equal to 0).
1100
955
  this.modifyViewportRowEnd(calc, nrOfColumns); // recursively search upwards
1101
956
 
1102
957
  return; // Finish the current loop. Everything will be checked from the beginning by above recursion.
@@ -1104,13 +959,13 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
1104
959
  }
1105
960
  }
1106
961
  }
962
+
1107
963
  /**
1108
964
  * `afterViewportColumnCalculatorOverride` hook callback.
1109
965
  *
1110
966
  * @private
1111
967
  * @param {object} calc The column calculator object.
1112
968
  */
1113
-
1114
969
  }, {
1115
970
  key: "onAfterViewportColumnCalculatorOverride",
1116
971
  value: function onAfterViewportColumnCalculatorOverride(calc) {
@@ -1118,6 +973,7 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
1118
973
  this.modifyViewportColumnStart(calc, nrOfRows);
1119
974
  this.modifyViewportColumnEnd(calc, nrOfRows);
1120
975
  }
976
+
1121
977
  /**
1122
978
  * Modify viewport start when needed. We extend viewport when merged cells aren't fully visible.
1123
979
  *
@@ -1125,23 +981,21 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
1125
981
  * @param {object} calc The column calculator object.
1126
982
  * @param {number} nrOfRows Number of visual rows.
1127
983
  */
1128
-
1129
984
  }, {
1130
985
  key: "modifyViewportColumnStart",
1131
986
  value: function modifyViewportColumnStart(calc, nrOfRows) {
1132
987
  var columnMapper = this.hot.columnIndexMapper;
1133
988
  var visualStartCol = columnMapper.getVisualFromRenderableIndex(calc.startColumn);
1134
-
1135
989
  for (var visualRowIndex = 0; visualRowIndex < nrOfRows; visualRowIndex += 1) {
1136
990
  var mergeParentForViewportStart = this.mergedCellsCollection.get(visualRowIndex, visualStartCol);
1137
-
1138
991
  if (isObject(mergeParentForViewportStart)) {
1139
- var renderableIndexAtMergeStart = columnMapper.getRenderableFromVisualIndex(columnMapper.getNearestNotHiddenIndex(mergeParentForViewportStart.col, 1)); // Merge start is out of the viewport (i.e. when we scrolled to the right and we can see just part of a merge).
992
+ var renderableIndexAtMergeStart = columnMapper.getRenderableFromVisualIndex(columnMapper.getNearestNotHiddenIndex(mergeParentForViewportStart.col, 1));
1140
993
 
994
+ // Merge start is out of the viewport (i.e. when we scrolled to the right and we can see just part of a merge).
1141
995
  if (renderableIndexAtMergeStart < calc.startColumn) {
1142
996
  // We extend viewport when some columns have been merged.
1143
- calc.startColumn = renderableIndexAtMergeStart; // We are looking for next merges inside already extended viewport (starting again from column equal to 0).
1144
-
997
+ calc.startColumn = renderableIndexAtMergeStart;
998
+ // We are looking for next merges inside already extended viewport (starting again from column equal to 0).
1145
999
  this.modifyViewportColumnStart(calc, nrOfRows); // recursively search upwards
1146
1000
 
1147
1001
  return; // Finish the current loop. Everything will be checked from the beginning by above recursion.
@@ -1149,6 +1003,7 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
1149
1003
  }
1150
1004
  }
1151
1005
  }
1006
+
1152
1007
  /**
1153
1008
  * Modify viewport end when needed. We extend viewport when merged cells aren't fully visible.
1154
1009
  *
@@ -1156,24 +1011,22 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
1156
1011
  * @param {object} calc The column calculator object.
1157
1012
  * @param {number} nrOfRows Number of visual rows.
1158
1013
  */
1159
-
1160
1014
  }, {
1161
1015
  key: "modifyViewportColumnEnd",
1162
1016
  value: function modifyViewportColumnEnd(calc, nrOfRows) {
1163
1017
  var columnMapper = this.hot.columnIndexMapper;
1164
1018
  var visualEndCol = columnMapper.getVisualFromRenderableIndex(calc.endColumn);
1165
-
1166
1019
  for (var visualRowIndex = 0; visualRowIndex < nrOfRows; visualRowIndex += 1) {
1167
1020
  var mergeParentForViewportEnd = this.mergedCellsCollection.get(visualRowIndex, visualEndCol);
1168
-
1169
1021
  if (isObject(mergeParentForViewportEnd)) {
1170
1022
  var mergeEnd = mergeParentForViewportEnd.col + mergeParentForViewportEnd.colspan - 1;
1171
- var renderableIndexAtMergeEnd = columnMapper.getRenderableFromVisualIndex(columnMapper.getNearestNotHiddenIndex(mergeEnd, -1)); // Merge end is out of the viewport.
1023
+ var renderableIndexAtMergeEnd = columnMapper.getRenderableFromVisualIndex(columnMapper.getNearestNotHiddenIndex(mergeEnd, -1));
1172
1024
 
1025
+ // Merge end is out of the viewport.
1173
1026
  if (renderableIndexAtMergeEnd > calc.endColumn) {
1174
1027
  // We extend the viewport when some columns have been merged.
1175
- calc.endColumn = renderableIndexAtMergeEnd; // We are looking for next merges inside already extended viewport (starting again from column equal to 0).
1176
-
1028
+ calc.endColumn = renderableIndexAtMergeEnd;
1029
+ // We are looking for next merges inside already extended viewport (starting again from column equal to 0).
1177
1030
  this.modifyViewportColumnEnd(calc, nrOfRows); // recursively search upwards
1178
1031
 
1179
1032
  return; // Finish the current loop. Everything will be checked from the beginning by above recursion.
@@ -1181,6 +1034,7 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
1181
1034
  }
1182
1035
  }
1183
1036
  }
1037
+
1184
1038
  /**
1185
1039
  * Translates merged cell coordinates to renderable indexes.
1186
1040
  *
@@ -1197,32 +1051,29 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
1197
1051
  * index position.
1198
1052
  * @returns {number[]}
1199
1053
  */
1200
-
1201
1054
  }, {
1202
1055
  key: "translateMergedCellToRenderable",
1203
1056
  value: function translateMergedCellToRenderable(parentRow, rowspan, parentColumn, colspan) {
1204
- var _this$hot4 = this.hot,
1205
- rowMapper = _this$hot4.rowIndexMapper,
1206
- columnMapper = _this$hot4.columnIndexMapper;
1057
+ var _this$hot2 = this.hot,
1058
+ rowMapper = _this$hot2.rowIndexMapper,
1059
+ columnMapper = _this$hot2.columnIndexMapper;
1207
1060
  var firstNonHiddenRow;
1208
1061
  var firstNonHiddenColumn;
1209
-
1210
1062
  if (rowspan === 0) {
1211
1063
  firstNonHiddenRow = rowMapper.getNearestNotHiddenIndex(parentRow, 1);
1212
1064
  } else {
1213
1065
  firstNonHiddenRow = rowMapper.getNearestNotHiddenIndex(parentRow + rowspan - 1, -1);
1214
1066
  }
1215
-
1216
1067
  if (colspan === 0) {
1217
1068
  firstNonHiddenColumn = columnMapper.getNearestNotHiddenIndex(parentColumn, 1);
1218
1069
  } else {
1219
1070
  firstNonHiddenColumn = columnMapper.getNearestNotHiddenIndex(parentColumn + colspan - 1, -1);
1220
1071
  }
1221
-
1222
1072
  var renderableRow = parentRow >= 0 ? rowMapper.getRenderableFromVisualIndex(firstNonHiddenRow) : parentRow;
1223
1073
  var renderableColumn = parentColumn >= 0 ? columnMapper.getRenderableFromVisualIndex(firstNonHiddenColumn) : parentColumn;
1224
1074
  return [renderableRow, renderableColumn];
1225
1075
  }
1076
+
1226
1077
  /**
1227
1078
  * The `modifyAutofillRange` hook callback.
1228
1079
  *
@@ -1231,19 +1082,16 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
1231
1082
  * @param {Array} select The selection information.
1232
1083
  * @returns {Array} The new drag area.
1233
1084
  */
1234
-
1235
1085
  }, {
1236
1086
  key: "onModifyAutofillRange",
1237
1087
  value: function onModifyAutofillRange(drag, select) {
1238
1088
  this.autofillCalculations.correctSelectionAreaSize(select);
1239
1089
  var dragDirection = this.autofillCalculations.getDirection(select, drag);
1240
1090
  var dragArea = drag;
1241
-
1242
1091
  if (this.autofillCalculations.dragAreaOverlapsCollections(select, dragArea, dragDirection)) {
1243
1092
  dragArea = select;
1244
1093
  return dragArea;
1245
1094
  }
1246
-
1247
1095
  var mergedCellsWithinSelectionArea = this.mergedCellsCollection.getWithinRange({
1248
1096
  from: {
1249
1097
  row: select[0],
@@ -1254,14 +1102,13 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
1254
1102
  col: select[3]
1255
1103
  }
1256
1104
  });
1257
-
1258
1105
  if (!mergedCellsWithinSelectionArea) {
1259
1106
  return dragArea;
1260
1107
  }
1261
-
1262
1108
  dragArea = this.autofillCalculations.snapDragArea(select, dragArea, dragDirection, mergedCellsWithinSelectionArea);
1263
1109
  return dragArea;
1264
1110
  }
1111
+
1265
1112
  /**
1266
1113
  * `afterCreateCol` hook callback.
1267
1114
  *
@@ -1269,12 +1116,12 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
1269
1116
  * @param {number} column Column index.
1270
1117
  * @param {number} count Number of created columns.
1271
1118
  */
1272
-
1273
1119
  }, {
1274
1120
  key: "onAfterCreateCol",
1275
1121
  value: function onAfterCreateCol(column, count) {
1276
1122
  this.mergedCellsCollection.shiftCollections('right', column, count);
1277
1123
  }
1124
+
1278
1125
  /**
1279
1126
  * `afterRemoveCol` hook callback.
1280
1127
  *
@@ -1282,12 +1129,12 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
1282
1129
  * @param {number} column Column index.
1283
1130
  * @param {number} count Number of removed columns.
1284
1131
  */
1285
-
1286
1132
  }, {
1287
1133
  key: "onAfterRemoveCol",
1288
1134
  value: function onAfterRemoveCol(column, count) {
1289
1135
  this.mergedCellsCollection.shiftCollections('left', column, count);
1290
1136
  }
1137
+
1291
1138
  /**
1292
1139
  * `afterCreateRow` hook callback.
1293
1140
  *
@@ -1296,16 +1143,15 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
1296
1143
  * @param {number} count Number of created rows.
1297
1144
  * @param {string} source Source of change.
1298
1145
  */
1299
-
1300
1146
  }, {
1301
1147
  key: "onAfterCreateRow",
1302
1148
  value: function onAfterCreateRow(row, count, source) {
1303
1149
  if (source === 'auto') {
1304
1150
  return;
1305
1151
  }
1306
-
1307
1152
  this.mergedCellsCollection.shiftCollections('down', row, count);
1308
1153
  }
1154
+
1309
1155
  /**
1310
1156
  * `afterRemoveRow` hook callback.
1311
1157
  *
@@ -1313,12 +1159,12 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
1313
1159
  * @param {number} row Row index.
1314
1160
  * @param {number} count Number of removed rows.
1315
1161
  */
1316
-
1317
1162
  }, {
1318
1163
  key: "onAfterRemoveRow",
1319
1164
  value: function onAfterRemoveRow(row, count) {
1320
1165
  this.mergedCellsCollection.shiftCollections('up', row, count);
1321
1166
  }
1167
+
1322
1168
  /**
1323
1169
  * `afterChange` hook callback. Used to propagate merged cells after using Autofill.
1324
1170
  *
@@ -1326,16 +1172,15 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
1326
1172
  * @param {Array} changes The changes array.
1327
1173
  * @param {string} source Determines the source of the change.
1328
1174
  */
1329
-
1330
1175
  }, {
1331
1176
  key: "onAfterChange",
1332
1177
  value: function onAfterChange(changes, source) {
1333
1178
  if (source !== 'Autofill.fill') {
1334
1179
  return;
1335
1180
  }
1336
-
1337
1181
  this.autofillCalculations.recreateAfterDataPopulation(changes);
1338
1182
  }
1183
+
1339
1184
  /**
1340
1185
  * `beforeDrawAreaBorders` hook callback.
1341
1186
  *
@@ -1343,7 +1188,6 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
1343
1188
  * @param {Array} corners Visual coordinates of the area corners.
1344
1189
  * @param {string} className Class name for the area.
1345
1190
  */
1346
-
1347
1191
  }, {
1348
1192
  key: "onBeforeDrawAreaBorders",
1349
1193
  value: function onBeforeDrawAreaBorders(corners, className) {
@@ -1358,6 +1202,7 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
1358
1202
  });
1359
1203
  }
1360
1204
  }
1205
+
1361
1206
  /**
1362
1207
  * `afterModifyTransformStart` hook callback. Fixes a problem with navigating through merged cells at the edges of the table
1363
1208
  * with the ENTER/SHIFT+ENTER/TAB/SHIFT+TAB keys.
@@ -1367,20 +1212,16 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
1367
1212
  * @param {number} rowTransformDir Row transformation direction (negative value = up, 0 = none, positive value = down).
1368
1213
  * @param {number} colTransformDir Column transformation direction (negative value = up, 0 = none, positive value = down).
1369
1214
  */
1370
-
1371
1215
  }, {
1372
1216
  key: "onAfterModifyTransformStart",
1373
1217
  value: function onAfterModifyTransformStart(coords, rowTransformDir, colTransformDir) {
1374
1218
  if (!this.enabled) {
1375
1219
  return;
1376
1220
  }
1377
-
1378
1221
  var mergedCellAtCoords = this.mergedCellsCollection.get(coords.row, coords.col);
1379
-
1380
1222
  if (!mergedCellAtCoords) {
1381
1223
  return;
1382
1224
  }
1383
-
1384
1225
  var goingDown = rowTransformDir > 0;
1385
1226
  var goingUp = rowTransformDir < 0;
1386
1227
  var goingLeft = colTransformDir < 0;
@@ -1389,12 +1230,12 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
1389
1230
  var mergedCellOnTopEdge = mergedCellAtCoords.row === 0;
1390
1231
  var mergedCellOnRightEdge = mergedCellAtCoords.col + mergedCellAtCoords.colspan - 1 === this.hot.countCols() - 1;
1391
1232
  var mergedCellOnLeftEdge = mergedCellAtCoords.col === 0;
1392
-
1393
1233
  if (goingDown && mergedCellOnBottomEdge || goingUp && mergedCellOnTopEdge || goingRight && mergedCellOnRightEdge || goingLeft && mergedCellOnLeftEdge) {
1394
1234
  coords.row = mergedCellAtCoords.row;
1395
1235
  coords.col = mergedCellAtCoords.col;
1396
1236
  }
1397
1237
  }
1238
+
1398
1239
  /**
1399
1240
  * `afterDrawSelection` hook callback. Used to add the additional class name for the entirely-selected merged cells.
1400
1241
  *
@@ -1405,7 +1246,6 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
1405
1246
  * @param {number|undefined} layerLevel Number indicating which layer of selection is currently processed.
1406
1247
  * @returns {string|undefined} A `String`, which will act as an additional `className` to be added to the currently processed cell.
1407
1248
  */
1408
-
1409
1249
  }, {
1410
1250
  key: "onAfterDrawSelection",
1411
1251
  value: function onAfterDrawSelection(currentRow, currentColumn, cornersOfSelection, layerLevel) {
@@ -1413,16 +1253,15 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
1413
1253
  if (!cornersOfSelection) {
1414
1254
  return;
1415
1255
  }
1416
-
1417
1256
  return this.selectionCalculations.getSelectedMergedCellClassName(currentRow, currentColumn, cornersOfSelection, layerLevel);
1418
1257
  }
1258
+
1419
1259
  /**
1420
1260
  * `beforeRemoveCellClassNames` hook callback. Used to remove additional class name from all cells in the table.
1421
1261
  *
1422
1262
  * @private
1423
1263
  * @returns {string[]} An `Array` of `String`s. Each of these strings will act like class names to be removed from all the cells in the table.
1424
1264
  */
1425
-
1426
1265
  }, {
1427
1266
  key: "onBeforeRemoveCellClassNames",
1428
1267
  value: function onBeforeRemoveCellClassNames() {
@@ -1439,6 +1278,5 @@ export var MergeCells = /*#__PURE__*/function (_BasePlugin) {
1439
1278
  return PLUGIN_PRIORITY;
1440
1279
  }
1441
1280
  }]);
1442
-
1443
1281
  return MergeCells;
1444
1282
  }(BasePlugin);