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