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