handsontable 12.1.3 → 12.3.0-next-bb1a7c2-20221208

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