handsontable 0.0.0-next-9ec04ce-20221121

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.

Potentially problematic release.


This version of handsontable might be problematic. Click here for more details.

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