handsontable 12.1.2 → 12.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (918) hide show
  1. package/3rdparty/SheetClip/SheetClip.js +3 -32
  2. package/3rdparty/SheetClip/SheetClip.mjs +3 -23
  3. package/3rdparty/SheetClip/index.js +0 -2
  4. package/3rdparty/autoResize/autoResize.js +119 -145
  5. package/3rdparty/autoResize/autoResize.mjs +119 -143
  6. package/3rdparty/autoResize/index.js +0 -2
  7. package/3rdparty/walkontable/src/border.js +72 -174
  8. package/3rdparty/walkontable/src/border.mjs +74 -161
  9. package/3rdparty/walkontable/src/calculator/constants.js +0 -3
  10. package/3rdparty/walkontable/src/calculator/constants.mjs +0 -2
  11. package/3rdparty/walkontable/src/calculator/index.js +0 -10
  12. package/3rdparty/walkontable/src/calculator/viewportColumns.js +26 -76
  13. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +26 -69
  14. package/3rdparty/walkontable/src/calculator/viewportRows.js +20 -48
  15. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +20 -41
  16. package/3rdparty/walkontable/src/cell/coords.js +13 -43
  17. package/3rdparty/walkontable/src/cell/coords.mjs +13 -38
  18. package/3rdparty/walkontable/src/cell/range.js +55 -130
  19. package/3rdparty/walkontable/src/cell/range.mjs +60 -126
  20. package/3rdparty/walkontable/src/core/_base.js +16 -74
  21. package/3rdparty/walkontable/src/core/_base.mjs +19 -70
  22. package/3rdparty/walkontable/src/core/clone.js +1 -40
  23. package/3rdparty/walkontable/src/core/clone.mjs +3 -30
  24. package/3rdparty/walkontable/src/core/core.js +3 -57
  25. package/3rdparty/walkontable/src/core/core.mjs +5 -41
  26. package/3rdparty/walkontable/src/event.js +31 -78
  27. package/3rdparty/walkontable/src/event.mjs +31 -65
  28. package/3rdparty/walkontable/src/facade/core.js +1 -17
  29. package/3rdparty/walkontable/src/facade/core.mjs +7 -20
  30. package/3rdparty/walkontable/src/filter/column.js +9 -18
  31. package/3rdparty/walkontable/src/filter/column.mjs +9 -17
  32. package/3rdparty/walkontable/src/filter/row.js +9 -18
  33. package/3rdparty/walkontable/src/filter/row.mjs +9 -17
  34. package/3rdparty/walkontable/src/index.js +0 -31
  35. package/3rdparty/walkontable/src/overlay/_base.js +24 -69
  36. package/3rdparty/walkontable/src/overlay/_base.mjs +31 -68
  37. package/3rdparty/walkontable/src/overlay/bottom.js +28 -99
  38. package/3rdparty/walkontable/src/overlay/bottom.mjs +30 -86
  39. package/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.js +7 -53
  40. package/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.mjs +9 -40
  41. package/3rdparty/walkontable/src/overlay/constants.js +0 -6
  42. package/3rdparty/walkontable/src/overlay/constants.mjs +0 -1
  43. package/3rdparty/walkontable/src/overlay/index.js +0 -17
  44. package/3rdparty/walkontable/src/overlay/inlineStart.js +21 -91
  45. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +23 -78
  46. package/3rdparty/walkontable/src/overlay/top.js +27 -100
  47. package/3rdparty/walkontable/src/overlay/top.mjs +29 -87
  48. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +4 -51
  49. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +6 -38
  50. package/3rdparty/walkontable/src/overlays.js +58 -129
  51. package/3rdparty/walkontable/src/overlays.mjs +60 -121
  52. package/3rdparty/walkontable/src/renderer/_base.js +4 -20
  53. package/3rdparty/walkontable/src/renderer/_base.mjs +8 -22
  54. package/3rdparty/walkontable/src/renderer/cells.js +10 -54
  55. package/3rdparty/walkontable/src/renderer/cells.mjs +22 -52
  56. package/3rdparty/walkontable/src/renderer/colGroup.js +10 -47
  57. package/3rdparty/walkontable/src/renderer/colGroup.mjs +21 -46
  58. package/3rdparty/walkontable/src/renderer/columnHeaders.js +8 -50
  59. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +19 -49
  60. package/3rdparty/walkontable/src/renderer/index.js +13 -36
  61. package/3rdparty/walkontable/src/renderer/index.mjs +17 -27
  62. package/3rdparty/walkontable/src/renderer/rowHeaders.js +8 -50
  63. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +20 -49
  64. package/3rdparty/walkontable/src/renderer/rows.js +3 -46
  65. package/3rdparty/walkontable/src/renderer/rows.mjs +3 -29
  66. package/3rdparty/walkontable/src/renderer/table.js +22 -49
  67. package/3rdparty/walkontable/src/renderer/table.mjs +22 -48
  68. package/3rdparty/walkontable/src/scroll.js +56 -86
  69. package/3rdparty/walkontable/src/scroll.mjs +58 -86
  70. package/3rdparty/walkontable/src/selection.js +20 -101
  71. package/3rdparty/walkontable/src/selection.mjs +22 -85
  72. package/3rdparty/walkontable/src/settings.js +9 -29
  73. package/3rdparty/walkontable/src/settings.mjs +9 -27
  74. package/3rdparty/walkontable/src/table/bottom.js +1 -35
  75. package/3rdparty/walkontable/src/table/bottom.mjs +6 -25
  76. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.js +1 -35
  77. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.mjs +7 -26
  78. package/3rdparty/walkontable/src/table/inlineStart.js +1 -35
  79. package/3rdparty/walkontable/src/table/inlineStart.mjs +3 -22
  80. package/3rdparty/walkontable/src/table/master.js +10 -55
  81. package/3rdparty/walkontable/src/table/master.mjs +15 -44
  82. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +7 -28
  83. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +7 -26
  84. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +7 -28
  85. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +7 -26
  86. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +7 -22
  87. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +7 -20
  88. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +7 -23
  89. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +7 -21
  90. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +7 -22
  91. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +7 -20
  92. package/3rdparty/walkontable/src/table/top.js +1 -35
  93. package/3rdparty/walkontable/src/table/top.mjs +6 -25
  94. package/3rdparty/walkontable/src/table/topInlineStartCorner.js +1 -35
  95. package/3rdparty/walkontable/src/table/topInlineStartCorner.mjs +7 -26
  96. package/3rdparty/walkontable/src/table.js +74 -238
  97. package/3rdparty/walkontable/src/table.mjs +84 -227
  98. package/3rdparty/walkontable/src/types.js +0 -5
  99. package/3rdparty/walkontable/src/types.mjs +0 -5
  100. package/3rdparty/walkontable/src/utils/column.js +9 -31
  101. package/3rdparty/walkontable/src/utils/column.mjs +13 -30
  102. package/3rdparty/walkontable/src/utils/nodesPool.js +3 -12
  103. package/3rdparty/walkontable/src/utils/nodesPool.mjs +3 -11
  104. package/3rdparty/walkontable/src/utils/orderView/constants.js +0 -3
  105. package/3rdparty/walkontable/src/utils/orderView/constants.mjs +0 -2
  106. package/3rdparty/walkontable/src/utils/orderView/index.js +0 -5
  107. package/3rdparty/walkontable/src/utils/orderView/sharedView.js +2 -33
  108. package/3rdparty/walkontable/src/utils/orderView/sharedView.mjs +6 -26
  109. package/3rdparty/walkontable/src/utils/orderView/view.js +14 -46
  110. package/3rdparty/walkontable/src/utils/orderView/view.mjs +21 -50
  111. package/3rdparty/walkontable/src/utils/orderView/viewSize.js +3 -15
  112. package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +3 -14
  113. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +8 -22
  114. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +23 -34
  115. package/3rdparty/walkontable/src/utils/row.js +2 -13
  116. package/3rdparty/walkontable/src/utils/row.mjs +2 -12
  117. package/3rdparty/walkontable/src/viewport.js +38 -100
  118. package/3rdparty/walkontable/src/viewport.mjs +40 -99
  119. package/CHANGELOG.md +103 -5
  120. package/base.js +6 -17
  121. package/base.mjs +6 -12
  122. package/cellTypes/autocompleteType/autocompleteType.js +0 -4
  123. package/cellTypes/autocompleteType/index.js +0 -2
  124. package/cellTypes/checkboxType/checkboxType.js +0 -3
  125. package/cellTypes/checkboxType/index.js +0 -2
  126. package/cellTypes/dateType/dateType.js +0 -4
  127. package/cellTypes/dateType/index.js +0 -2
  128. package/cellTypes/dropdownType/dropdownType.js +0 -4
  129. package/cellTypes/dropdownType/index.js +0 -2
  130. package/cellTypes/handsontableType/handsontableType.js +0 -3
  131. package/cellTypes/handsontableType/index.js +0 -2
  132. package/cellTypes/index.js +0 -21
  133. package/cellTypes/index.mjs +3 -5
  134. package/cellTypes/numericType/index.js +0 -2
  135. package/cellTypes/numericType/numericType.js +0 -4
  136. package/cellTypes/passwordType/index.js +0 -2
  137. package/cellTypes/passwordType/passwordType.js +0 -3
  138. package/cellTypes/registry.js +10 -25
  139. package/cellTypes/registry.mjs +10 -20
  140. package/cellTypes/textType/index.js +0 -2
  141. package/cellTypes/textType/textType.js +0 -3
  142. package/cellTypes/timeType/index.js +0 -2
  143. package/cellTypes/timeType/timeType.js +0 -4
  144. package/core.d.ts +6 -4
  145. package/core.js +514 -974
  146. package/core.mjs +519 -921
  147. package/dataMap/dataMap.js +127 -212
  148. package/dataMap/dataMap.mjs +127 -188
  149. package/{dataSource.js → dataMap/dataSource.js} +18 -66
  150. package/{dataSource.mjs → dataMap/dataSource.mjs} +20 -60
  151. package/dataMap/index.js +0 -13
  152. package/dataMap/metaManager/index.js +21 -46
  153. package/dataMap/metaManager/index.mjs +47 -64
  154. package/dataMap/metaManager/lazyFactoryMap.js +23 -55
  155. package/dataMap/metaManager/lazyFactoryMap.mjs +23 -43
  156. package/dataMap/metaManager/metaLayers/cellMeta.js +16 -52
  157. package/dataMap/metaManager/metaLayers/cellMeta.mjs +16 -37
  158. package/dataMap/metaManager/metaLayers/columnMeta.js +8 -22
  159. package/dataMap/metaManager/metaLayers/columnMeta.mjs +14 -25
  160. package/dataMap/metaManager/metaLayers/globalMeta.js +4 -19
  161. package/dataMap/metaManager/metaLayers/globalMeta.mjs +4 -15
  162. package/dataMap/metaManager/metaLayers/tableMeta.js +4 -15
  163. package/dataMap/metaManager/metaLayers/tableMeta.mjs +28 -37
  164. package/dataMap/metaManager/metaSchema.js +196 -257
  165. package/dataMap/metaManager/metaSchema.mjs +196 -248
  166. package/dataMap/metaManager/mods/dynamicCellMeta.js +6 -36
  167. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +20 -39
  168. package/dataMap/metaManager/mods/extendMetaProperties.js +5 -28
  169. package/dataMap/metaManager/mods/extendMetaProperties.mjs +4 -18
  170. package/dataMap/metaManager/utils.js +11 -20
  171. package/dataMap/metaManager/utils.mjs +21 -23
  172. package/dataMap/replaceData.js +14 -35
  173. package/dataMap/replaceData.mjs +35 -45
  174. package/dist/handsontable.css +2 -2
  175. package/dist/handsontable.full.css +2 -2
  176. package/dist/handsontable.full.js +64469 -93042
  177. package/dist/handsontable.full.min.css +2 -2
  178. package/dist/handsontable.full.min.js +527 -284
  179. package/dist/handsontable.js +9616 -21414
  180. package/dist/handsontable.min.css +2 -2
  181. package/dist/handsontable.min.js +3 -3
  182. package/dist/languages/all.js +0 -175
  183. package/dist/languages/ar-AR.js +0 -10
  184. package/dist/languages/cs-CZ.js +0 -10
  185. package/dist/languages/de-CH.js +0 -10
  186. package/dist/languages/de-DE.js +0 -10
  187. package/dist/languages/en-US.js +0 -10
  188. package/dist/languages/es-MX.js +0 -10
  189. package/dist/languages/fr-FR.js +0 -10
  190. package/dist/languages/it-IT.js +0 -10
  191. package/dist/languages/ja-JP.js +0 -10
  192. package/dist/languages/ko-KR.js +0 -10
  193. package/dist/languages/lv-LV.js +0 -10
  194. package/dist/languages/nb-NO.js +0 -10
  195. package/dist/languages/nl-NL.js +0 -10
  196. package/dist/languages/pl-PL.js +0 -10
  197. package/dist/languages/pt-BR.js +0 -10
  198. package/dist/languages/ru-RU.js +0 -10
  199. package/dist/languages/sr-SP.js +0 -10
  200. package/dist/languages/zh-CN.js +0 -10
  201. package/dist/languages/zh-TW.js +0 -10
  202. package/editorManager.js +89 -124
  203. package/editorManager.mjs +89 -104
  204. package/editors/autocompleteEditor/autocompleteEditor.js +26 -133
  205. package/editors/autocompleteEditor/autocompleteEditor.mjs +26 -104
  206. package/editors/autocompleteEditor/index.js +0 -2
  207. package/editors/baseEditor/baseEditor.js +45 -155
  208. package/editors/baseEditor/baseEditor.mjs +45 -129
  209. package/editors/baseEditor/index.js +0 -2
  210. package/editors/checkboxEditor/checkboxEditor.js +2 -33
  211. package/editors/checkboxEditor/checkboxEditor.mjs +2 -19
  212. package/editors/checkboxEditor/index.js +0 -2
  213. package/editors/dateEditor/dateEditor.js +36 -97
  214. package/editors/dateEditor/dateEditor.mjs +35 -74
  215. package/editors/dateEditor/index.js +0 -2
  216. package/editors/dropdownEditor/dropdownEditor.js +1 -41
  217. package/editors/dropdownEditor/dropdownEditor.mjs +1 -22
  218. package/editors/dropdownEditor/index.js +0 -2
  219. package/editors/handsontableEditor/handsontableEditor.js +13 -85
  220. package/editors/handsontableEditor/handsontableEditor.mjs +13 -66
  221. package/editors/handsontableEditor/index.js +0 -2
  222. package/editors/index.js +0 -25
  223. package/editors/index.mjs +3 -5
  224. package/editors/numericEditor/index.js +0 -2
  225. package/editors/numericEditor/numericEditor.js +1 -31
  226. package/editors/numericEditor/numericEditor.mjs +1 -18
  227. package/editors/passwordEditor/index.js +0 -2
  228. package/editors/passwordEditor/passwordEditor.js +1 -38
  229. package/editors/passwordEditor/passwordEditor.mjs +1 -22
  230. package/editors/registry.js +10 -36
  231. package/editors/registry.mjs +10 -28
  232. package/editors/selectEditor/index.js +0 -2
  233. package/editors/selectEditor/selectEditor.js +21 -73
  234. package/editors/selectEditor/selectEditor.mjs +21 -56
  235. package/editors/textEditor/caretPositioner.js +0 -12
  236. package/editors/textEditor/caretPositioner.mjs +10 -20
  237. package/editors/textEditor/index.js +0 -2
  238. package/editors/textEditor/textEditor.js +38 -137
  239. package/editors/textEditor/textEditor.mjs +38 -106
  240. package/editors/timeEditor/index.js +0 -2
  241. package/editors/timeEditor/timeEditor.js +1 -36
  242. package/editors/timeEditor/timeEditor.mjs +1 -21
  243. package/eventManager.js +20 -56
  244. package/eventManager.mjs +23 -56
  245. package/helpers/array.js +22 -88
  246. package/helpers/array.mjs +22 -58
  247. package/helpers/browser.js +25 -51
  248. package/helpers/browser.mjs +25 -32
  249. package/helpers/console.js +3 -13
  250. package/helpers/console.mjs +8 -16
  251. package/helpers/data.d.ts +0 -1
  252. package/helpers/data.js +10 -55
  253. package/helpers/data.mjs +10 -33
  254. package/helpers/date.js +2 -3
  255. package/helpers/date.mjs +2 -2
  256. package/helpers/dom/element.js +67 -259
  257. package/helpers/dom/element.mjs +74 -194
  258. package/helpers/dom/event.js +3 -7
  259. package/helpers/dom/event.mjs +3 -3
  260. package/helpers/feature.js +13 -47
  261. package/helpers/feature.mjs +13 -31
  262. package/helpers/function.js +14 -59
  263. package/helpers/function.mjs +20 -52
  264. package/helpers/mixed.js +9 -66
  265. package/helpers/mixed.mjs +15 -51
  266. package/helpers/number.js +4 -46
  267. package/helpers/number.mjs +4 -23
  268. package/helpers/object.js +15 -72
  269. package/helpers/object.mjs +21 -52
  270. package/helpers/string.js +6 -28
  271. package/helpers/string.mjs +12 -21
  272. package/helpers/templateLiteralTag.js +0 -6
  273. package/helpers/templateLiteralTag.mjs +7 -10
  274. package/helpers/unicode.js +17 -26
  275. package/helpers/unicode.mjs +17 -15
  276. package/helpers/wrappers/jquery.js +4 -14
  277. package/helpers/wrappers/jquery.mjs +4 -13
  278. package/i18n/constants.js +1 -3
  279. package/i18n/constants.mjs +1 -1
  280. package/i18n/index.js +0 -7
  281. package/i18n/languages/ar-AR.js +0 -16
  282. package/i18n/languages/ar-AR.mjs +1 -4
  283. package/i18n/languages/cs-CZ.js +0 -16
  284. package/i18n/languages/cs-CZ.mjs +1 -4
  285. package/i18n/languages/de-CH.js +0 -16
  286. package/i18n/languages/de-CH.mjs +1 -4
  287. package/i18n/languages/de-DE.js +0 -16
  288. package/i18n/languages/de-DE.mjs +1 -4
  289. package/i18n/languages/en-US.js +0 -16
  290. package/i18n/languages/en-US.mjs +1 -4
  291. package/i18n/languages/es-MX.js +0 -16
  292. package/i18n/languages/es-MX.mjs +1 -4
  293. package/i18n/languages/fr-FR.js +0 -16
  294. package/i18n/languages/fr-FR.mjs +1 -4
  295. package/i18n/languages/index.js +0 -39
  296. package/i18n/languages/it-IT.js +0 -16
  297. package/i18n/languages/it-IT.mjs +1 -4
  298. package/i18n/languages/ja-JP.js +0 -16
  299. package/i18n/languages/ja-JP.mjs +1 -4
  300. package/i18n/languages/ko-KR.js +0 -16
  301. package/i18n/languages/ko-KR.mjs +1 -4
  302. package/i18n/languages/lv-LV.js +0 -16
  303. package/i18n/languages/lv-LV.mjs +1 -4
  304. package/i18n/languages/nb-NO.js +0 -16
  305. package/i18n/languages/nb-NO.mjs +1 -4
  306. package/i18n/languages/nl-NL.js +0 -16
  307. package/i18n/languages/nl-NL.mjs +1 -4
  308. package/i18n/languages/pl-PL.js +0 -16
  309. package/i18n/languages/pl-PL.mjs +1 -4
  310. package/i18n/languages/pt-BR.js +0 -16
  311. package/i18n/languages/pt-BR.mjs +1 -4
  312. package/i18n/languages/ru-RU.js +0 -16
  313. package/i18n/languages/ru-RU.mjs +1 -4
  314. package/i18n/languages/sr-SP.js +0 -16
  315. package/i18n/languages/sr-SP.mjs +1 -4
  316. package/i18n/languages/zh-CN.js +0 -16
  317. package/i18n/languages/zh-CN.mjs +1 -4
  318. package/i18n/languages/zh-TW.js +0 -16
  319. package/i18n/languages/zh-TW.mjs +1 -4
  320. package/i18n/phraseFormatters/index.js +4 -11
  321. package/i18n/phraseFormatters/index.mjs +4 -6
  322. package/i18n/phraseFormatters/pluralize.js +0 -5
  323. package/i18n/phraseFormatters/pluralize.mjs +0 -3
  324. package/i18n/phraseFormatters/substituteVariables.js +0 -4
  325. package/i18n/phraseFormatters/substituteVariables.mjs +8 -11
  326. package/i18n/registry.js +18 -59
  327. package/i18n/registry.mjs +18 -30
  328. package/i18n/utils.js +4 -22
  329. package/i18n/utils.mjs +13 -21
  330. package/index.js +19 -56
  331. package/index.mjs +19 -15
  332. package/languages/all.js +0 -175
  333. package/languages/ar-AR.js +0 -10
  334. package/languages/ar-AR.mjs +1 -4
  335. package/languages/cs-CZ.js +0 -10
  336. package/languages/cs-CZ.mjs +1 -4
  337. package/languages/de-CH.js +0 -10
  338. package/languages/de-CH.mjs +1 -4
  339. package/languages/de-DE.js +0 -10
  340. package/languages/de-DE.mjs +1 -4
  341. package/languages/en-US.js +0 -10
  342. package/languages/en-US.mjs +1 -4
  343. package/languages/es-MX.js +0 -10
  344. package/languages/es-MX.mjs +1 -4
  345. package/languages/fr-FR.js +0 -10
  346. package/languages/fr-FR.mjs +1 -4
  347. package/languages/index.js +0 -175
  348. package/languages/it-IT.js +0 -10
  349. package/languages/it-IT.mjs +1 -4
  350. package/languages/ja-JP.js +0 -10
  351. package/languages/ja-JP.mjs +1 -4
  352. package/languages/ko-KR.js +0 -10
  353. package/languages/ko-KR.mjs +1 -4
  354. package/languages/lv-LV.js +0 -10
  355. package/languages/lv-LV.mjs +1 -4
  356. package/languages/nb-NO.js +0 -10
  357. package/languages/nb-NO.mjs +1 -4
  358. package/languages/nl-NL.js +0 -10
  359. package/languages/nl-NL.mjs +1 -4
  360. package/languages/pl-PL.js +0 -10
  361. package/languages/pl-PL.mjs +1 -4
  362. package/languages/pt-BR.js +0 -10
  363. package/languages/pt-BR.mjs +1 -4
  364. package/languages/ru-RU.js +0 -10
  365. package/languages/ru-RU.mjs +1 -4
  366. package/languages/sr-SP.js +0 -10
  367. package/languages/sr-SP.mjs +1 -4
  368. package/languages/zh-CN.js +0 -10
  369. package/languages/zh-CN.mjs +1 -4
  370. package/languages/zh-TW.js +0 -10
  371. package/languages/zh-TW.mjs +1 -4
  372. package/mixins/hooksRefRegisterer.js +4 -18
  373. package/mixins/hooksRefRegisterer.mjs +4 -15
  374. package/mixins/localHooks.js +7 -17
  375. package/mixins/localHooks.mjs +7 -14
  376. package/package.json +1 -1
  377. package/pluginHooks.d.ts +3 -4
  378. package/pluginHooks.js +288 -110
  379. package/pluginHooks.mjs +287 -97
  380. package/plugins/autoColumnSize/autoColumnSize.js +74 -172
  381. package/plugins/autoColumnSize/autoColumnSize.mjs +74 -137
  382. package/plugins/autoColumnSize/index.js +0 -2
  383. package/plugins/autoRowSize/autoRowSize.js +73 -153
  384. package/plugins/autoRowSize/autoRowSize.mjs +73 -124
  385. package/plugins/autoRowSize/index.js +0 -2
  386. package/plugins/autofill/autofill.js +46 -163
  387. package/plugins/autofill/autofill.mjs +46 -131
  388. package/plugins/autofill/index.js +0 -2
  389. package/plugins/autofill/utils.js +4 -26
  390. package/plugins/autofill/utils.mjs +4 -18
  391. package/plugins/base/base.js +21 -92
  392. package/plugins/base/base.mjs +21 -63
  393. package/plugins/base/index.js +0 -2
  394. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +19 -52
  395. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +19 -33
  396. package/plugins/bindRowsWithHeaders/index.js +0 -2
  397. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.js +5 -41
  398. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.mjs +5 -29
  399. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +6 -53
  400. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +6 -37
  401. package/plugins/collapsibleColumns/collapsibleColumns.js +96 -188
  402. package/plugins/collapsibleColumns/collapsibleColumns.mjs +97 -158
  403. package/plugins/collapsibleColumns/index.js +0 -2
  404. package/plugins/columnSorting/columnSorting.js +50 -188
  405. package/plugins/columnSorting/columnSorting.mjs +50 -143
  406. package/plugins/columnSorting/columnStatesManager.js +15 -71
  407. package/plugins/columnSorting/columnStatesManager.mjs +15 -48
  408. package/plugins/columnSorting/domHelpers.js +2 -18
  409. package/plugins/columnSorting/domHelpers.mjs +2 -7
  410. package/plugins/columnSorting/index.js +0 -2
  411. package/plugins/columnSorting/rootComparator.js +5 -24
  412. package/plugins/columnSorting/rootComparator.mjs +12 -21
  413. package/plugins/columnSorting/sortFunction/checkbox.js +8 -16
  414. package/plugins/columnSorting/sortFunction/checkbox.mjs +16 -21
  415. package/plugins/columnSorting/sortFunction/date.js +2 -19
  416. package/plugins/columnSorting/sortFunction/date.mjs +10 -23
  417. package/plugins/columnSorting/sortFunction/default.js +2 -17
  418. package/plugins/columnSorting/sortFunction/default.mjs +10 -23
  419. package/plugins/columnSorting/sortFunction/numeric.js +2 -11
  420. package/plugins/columnSorting/sortFunction/numeric.mjs +10 -17
  421. package/plugins/columnSorting/sortService/engine.js +3 -13
  422. package/plugins/columnSorting/sortService/engine.mjs +3 -5
  423. package/plugins/columnSorting/sortService/index.js +0 -5
  424. package/plugins/columnSorting/sortService/registry.js +6 -18
  425. package/plugins/columnSorting/sortService/registry.mjs +6 -10
  426. package/plugins/columnSorting/utils.js +9 -34
  427. package/plugins/columnSorting/utils.mjs +9 -15
  428. package/plugins/columnSummary/columnSummary.js +66 -126
  429. package/plugins/columnSummary/columnSummary.mjs +66 -101
  430. package/plugins/columnSummary/endpoints.js +21 -98
  431. package/plugins/columnSummary/endpoints.mjs +26 -99
  432. package/plugins/columnSummary/index.js +0 -2
  433. package/plugins/columnSummary/utils.js +13 -0
  434. package/plugins/columnSummary/utils.mjs +9 -0
  435. package/plugins/comments/commentEditor.js +16 -28
  436. package/plugins/comments/commentEditor.mjs +21 -32
  437. package/plugins/comments/comments.js +92 -175
  438. package/plugins/comments/comments.mjs +92 -149
  439. package/plugins/comments/displaySwitch.js +6 -23
  440. package/plugins/comments/displaySwitch.mjs +6 -18
  441. package/plugins/comments/index.js +0 -2
  442. package/plugins/contextMenu/commandExecutor.js +9 -40
  443. package/plugins/contextMenu/commandExecutor.mjs +14 -41
  444. package/plugins/contextMenu/contextMenu.js +26 -105
  445. package/plugins/contextMenu/contextMenu.mjs +26 -75
  446. package/plugins/contextMenu/cursor.js +6 -20
  447. package/plugins/contextMenu/cursor.mjs +11 -24
  448. package/plugins/contextMenu/index.js +0 -2
  449. package/plugins/contextMenu/itemsFactory.js +14 -43
  450. package/plugins/contextMenu/itemsFactory.mjs +19 -44
  451. package/plugins/contextMenu/menu.js +61 -177
  452. package/plugins/contextMenu/menu.mjs +61 -149
  453. package/plugins/contextMenu/predefinedItems/alignment.js +1 -55
  454. package/plugins/contextMenu/predefinedItems/alignment.mjs +1 -37
  455. package/plugins/contextMenu/predefinedItems/clearColumn.js +1 -20
  456. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +1 -4
  457. package/plugins/contextMenu/predefinedItems/columnLeft.js +6 -43
  458. package/plugins/contextMenu/predefinedItems/columnLeft.mjs +6 -26
  459. package/plugins/contextMenu/predefinedItems/columnRight.js +4 -42
  460. package/plugins/contextMenu/predefinedItems/columnRight.mjs +4 -25
  461. package/plugins/contextMenu/predefinedItems/noItems.js +1 -4
  462. package/plugins/contextMenu/predefinedItems/noItems.mjs +1 -1
  463. package/plugins/contextMenu/predefinedItems/readOnly.js +1 -25
  464. package/plugins/contextMenu/predefinedItems/readOnly.mjs +1 -8
  465. package/plugins/contextMenu/predefinedItems/redo.js +1 -16
  466. package/plugins/contextMenu/predefinedItems/redo.mjs +1 -1
  467. package/plugins/contextMenu/predefinedItems/removeColumn.js +3 -38
  468. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +3 -18
  469. package/plugins/contextMenu/predefinedItems/removeRow.js +3 -37
  470. package/plugins/contextMenu/predefinedItems/removeRow.mjs +3 -17
  471. package/plugins/contextMenu/predefinedItems/rowAbove.js +6 -35
  472. package/plugins/contextMenu/predefinedItems/rowAbove.mjs +6 -19
  473. package/plugins/contextMenu/predefinedItems/rowBelow.js +4 -42
  474. package/plugins/contextMenu/predefinedItems/rowBelow.mjs +4 -25
  475. package/plugins/contextMenu/predefinedItems/separator.js +1 -2
  476. package/plugins/contextMenu/predefinedItems/separator.mjs +1 -1
  477. package/plugins/contextMenu/predefinedItems/undo.js +1 -16
  478. package/plugins/contextMenu/predefinedItems/undo.mjs +1 -1
  479. package/plugins/contextMenu/predefinedItems.js +2 -48
  480. package/plugins/contextMenu/predefinedItems.mjs +2 -7
  481. package/plugins/contextMenu/utils.js +17 -57
  482. package/plugins/contextMenu/utils.mjs +21 -39
  483. package/plugins/copyPaste/clipboardData.js +1 -10
  484. package/plugins/copyPaste/clipboardData.mjs +1 -9
  485. package/plugins/copyPaste/contextMenuItem/copy.js +2 -17
  486. package/plugins/copyPaste/contextMenuItem/copy.mjs +6 -9
  487. package/plugins/copyPaste/contextMenuItem/cut.js +2 -17
  488. package/plugins/copyPaste/contextMenuItem/cut.mjs +6 -9
  489. package/plugins/copyPaste/copyPaste.js +53 -185
  490. package/plugins/copyPaste/copyPaste.mjs +53 -144
  491. package/plugins/copyPaste/focusableElement.js +12 -56
  492. package/plugins/copyPaste/focusableElement.mjs +15 -49
  493. package/plugins/copyPaste/index.js +0 -2
  494. package/plugins/copyPaste/pasteEvent.js +1 -10
  495. package/plugins/copyPaste/pasteEvent.mjs +3 -10
  496. package/plugins/customBorders/contextMenuItem/bottom.js +0 -17
  497. package/plugins/customBorders/contextMenuItem/bottom.mjs +4 -8
  498. package/plugins/customBorders/contextMenuItem/index.js +0 -11
  499. package/plugins/customBorders/contextMenuItem/left.js +0 -17
  500. package/plugins/customBorders/contextMenuItem/left.mjs +4 -8
  501. package/plugins/customBorders/contextMenuItem/noBorders.js +0 -15
  502. package/plugins/customBorders/contextMenuItem/noBorders.mjs +4 -6
  503. package/plugins/customBorders/contextMenuItem/right.js +0 -17
  504. package/plugins/customBorders/contextMenuItem/right.mjs +4 -8
  505. package/plugins/customBorders/contextMenuItem/top.js +0 -17
  506. package/plugins/customBorders/contextMenuItem/top.mjs +4 -8
  507. package/plugins/customBorders/customBorders.js +52 -181
  508. package/plugins/customBorders/customBorders.mjs +52 -147
  509. package/plugins/customBorders/index.js +0 -2
  510. package/plugins/customBorders/utils.js +13 -52
  511. package/plugins/customBorders/utils.mjs +20 -39
  512. package/plugins/dragToScroll/dragToScroll.js +17 -74
  513. package/plugins/dragToScroll/dragToScroll.mjs +17 -55
  514. package/plugins/dragToScroll/index.js +0 -2
  515. package/plugins/dropdownMenu/dropdownMenu.js +47 -126
  516. package/plugins/dropdownMenu/dropdownMenu.mjs +47 -95
  517. package/plugins/dropdownMenu/index.js +0 -2
  518. package/plugins/exportFile/dataProvider.js +24 -69
  519. package/plugins/exportFile/dataProvider.mjs +26 -60
  520. package/plugins/exportFile/exportFile.js +48 -58
  521. package/plugins/exportFile/exportFile.mjs +48 -36
  522. package/plugins/exportFile/index.js +0 -2
  523. package/plugins/exportFile/typeFactory.js +1 -11
  524. package/plugins/exportFile/typeFactory.mjs +1 -4
  525. package/plugins/exportFile/types/_base.js +2 -16
  526. package/plugins/exportFile/types/_base.mjs +4 -16
  527. package/plugins/exportFile/types/csv.js +2 -50
  528. package/plugins/exportFile/types/csv.mjs +2 -29
  529. package/plugins/filters/component/_base.js +12 -32
  530. package/plugins/filters/component/_base.mjs +15 -30
  531. package/plugins/filters/component/actionBar.js +6 -55
  532. package/plugins/filters/component/actionBar.mjs +9 -38
  533. package/plugins/filters/component/condition.js +25 -122
  534. package/plugins/filters/component/condition.mjs +24 -88
  535. package/plugins/filters/component/operators.js +10 -68
  536. package/plugins/filters/component/operators.mjs +10 -45
  537. package/plugins/filters/component/value.js +25 -99
  538. package/plugins/filters/component/value.mjs +28 -72
  539. package/plugins/filters/condition/beginsWith.js +2 -32
  540. package/plugins/filters/condition/beginsWith.mjs +2 -10
  541. package/plugins/filters/condition/between.js +3 -37
  542. package/plugins/filters/condition/between.mjs +3 -15
  543. package/plugins/filters/condition/byValue.js +3 -27
  544. package/plugins/filters/condition/byValue.mjs +3 -12
  545. package/plugins/filters/condition/contains.js +2 -32
  546. package/plugins/filters/condition/contains.mjs +2 -10
  547. package/plugins/filters/condition/date/after.js +2 -34
  548. package/plugins/filters/condition/date/after.mjs +2 -12
  549. package/plugins/filters/condition/date/before.js +2 -34
  550. package/plugins/filters/condition/date/before.mjs +2 -12
  551. package/plugins/filters/condition/date/today.js +1 -22
  552. package/plugins/filters/condition/date/today.mjs +1 -3
  553. package/plugins/filters/condition/date/tomorrow.js +1 -22
  554. package/plugins/filters/condition/date/tomorrow.mjs +1 -3
  555. package/plugins/filters/condition/date/yesterday.js +1 -22
  556. package/plugins/filters/condition/date/yesterday.mjs +1 -3
  557. package/plugins/filters/condition/empty.js +1 -19
  558. package/plugins/filters/condition/empty.mjs +1 -1
  559. package/plugins/filters/condition/endsWith.js +2 -32
  560. package/plugins/filters/condition/endsWith.mjs +2 -10
  561. package/plugins/filters/condition/equal.js +2 -31
  562. package/plugins/filters/condition/equal.mjs +2 -10
  563. package/plugins/filters/condition/false.js +1 -5
  564. package/plugins/filters/condition/false.mjs +1 -1
  565. package/plugins/filters/condition/greaterThan.js +2 -32
  566. package/plugins/filters/condition/greaterThan.mjs +2 -12
  567. package/plugins/filters/condition/greaterThanOrEqual.js +2 -32
  568. package/plugins/filters/condition/greaterThanOrEqual.mjs +2 -12
  569. package/plugins/filters/condition/lessThan.js +2 -32
  570. package/plugins/filters/condition/lessThan.mjs +2 -12
  571. package/plugins/filters/condition/lessThanOrEqual.js +2 -32
  572. package/plugins/filters/condition/lessThanOrEqual.mjs +2 -12
  573. package/plugins/filters/condition/none.js +1 -18
  574. package/plugins/filters/condition/none.mjs +1 -1
  575. package/plugins/filters/condition/notBetween.js +1 -19
  576. package/plugins/filters/condition/notBetween.mjs +1 -1
  577. package/plugins/filters/condition/notContains.js +1 -19
  578. package/plugins/filters/condition/notContains.mjs +1 -1
  579. package/plugins/filters/condition/notEmpty.js +1 -19
  580. package/plugins/filters/condition/notEmpty.mjs +1 -1
  581. package/plugins/filters/condition/notEqual.js +1 -19
  582. package/plugins/filters/condition/notEqual.mjs +1 -1
  583. package/plugins/filters/condition/true.js +1 -5
  584. package/plugins/filters/condition/true.mjs +1 -1
  585. package/plugins/filters/conditionCollection.js +21 -80
  586. package/plugins/filters/conditionCollection.mjs +21 -57
  587. package/plugins/filters/conditionRegisterer.js +5 -14
  588. package/plugins/filters/conditionRegisterer.mjs +5 -9
  589. package/plugins/filters/conditionUpdateObserver.js +17 -57
  590. package/plugins/filters/conditionUpdateObserver.mjs +25 -53
  591. package/plugins/filters/constants.js +1 -66
  592. package/plugins/filters/constants.mjs +1 -8
  593. package/plugins/filters/dataFilter.js +4 -21
  594. package/plugins/filters/dataFilter.mjs +7 -23
  595. package/plugins/filters/filters.d.ts +1 -1
  596. package/plugins/filters/filters.js +147 -272
  597. package/plugins/filters/filters.mjs +148 -228
  598. package/plugins/filters/index.js +0 -2
  599. package/plugins/filters/logicalOperationRegisterer.js +3 -9
  600. package/plugins/filters/logicalOperationRegisterer.mjs +3 -4
  601. package/plugins/filters/logicalOperations/conjunction.js +2 -19
  602. package/plugins/filters/logicalOperations/conjunction.mjs +2 -2
  603. package/plugins/filters/logicalOperations/disjunction.js +2 -19
  604. package/plugins/filters/logicalOperations/disjunction.mjs +2 -2
  605. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +2 -21
  606. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.mjs +2 -3
  607. package/plugins/filters/ui/_base.js +12 -55
  608. package/plugins/filters/ui/_base.mjs +12 -35
  609. package/plugins/filters/ui/input.js +7 -52
  610. package/plugins/filters/ui/input.mjs +7 -34
  611. package/plugins/filters/ui/link.js +3 -43
  612. package/plugins/filters/ui/link.mjs +3 -25
  613. package/plugins/filters/ui/multipleSelect.js +26 -120
  614. package/plugins/filters/ui/multipleSelect.mjs +20 -76
  615. package/plugins/filters/ui/radioInput.js +6 -47
  616. package/plugins/filters/ui/radioInput.mjs +6 -30
  617. package/plugins/filters/ui/select.js +14 -76
  618. package/plugins/filters/ui/select.mjs +14 -52
  619. package/plugins/filters/utils.js +6 -39
  620. package/plugins/filters/utils.mjs +6 -23
  621. package/plugins/formulas/engine/register.js +24 -74
  622. package/plugins/formulas/engine/register.mjs +29 -51
  623. package/plugins/formulas/engine/settings.js +4 -24
  624. package/plugins/formulas/engine/settings.mjs +4 -12
  625. package/plugins/formulas/formulas.js +103 -295
  626. package/plugins/formulas/formulas.mjs +104 -248
  627. package/plugins/formulas/index.js +0 -2
  628. package/plugins/formulas/utils.js +1 -3
  629. package/plugins/formulas/utils.mjs +1 -1
  630. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +4 -38
  631. package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +8 -25
  632. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +17 -45
  633. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +21 -29
  634. package/plugins/hiddenColumns/hiddenColumns.js +72 -153
  635. package/plugins/hiddenColumns/hiddenColumns.mjs +72 -110
  636. package/plugins/hiddenColumns/index.js +0 -2
  637. package/plugins/hiddenRows/contextMenuItem/hideRow.js +4 -38
  638. package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +8 -25
  639. package/plugins/hiddenRows/contextMenuItem/showRow.js +17 -45
  640. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +21 -29
  641. package/plugins/hiddenRows/hiddenRows.js +70 -152
  642. package/plugins/hiddenRows/hiddenRows.mjs +70 -109
  643. package/plugins/hiddenRows/index.js +0 -2
  644. package/plugins/index.js +0 -71
  645. package/plugins/index.mjs +3 -5
  646. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -28
  647. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +5 -17
  648. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -28
  649. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +5 -17
  650. package/plugins/manualColumnFreeze/index.js +0 -2
  651. package/plugins/manualColumnFreeze/manualColumnFreeze.js +21 -78
  652. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +21 -54
  653. package/plugins/manualColumnMove/index.js +0 -2
  654. package/plugins/manualColumnMove/manualColumnMove.js +45 -134
  655. package/plugins/manualColumnMove/manualColumnMove.mjs +45 -106
  656. package/plugins/manualColumnMove/ui/_base.js +12 -30
  657. package/plugins/manualColumnMove/ui/_base.mjs +12 -27
  658. package/plugins/manualColumnMove/ui/backlight.js +1 -37
  659. package/plugins/manualColumnMove/ui/backlight.mjs +1 -22
  660. package/plugins/manualColumnMove/ui/guideline.js +1 -37
  661. package/plugins/manualColumnMove/ui/guideline.mjs +1 -22
  662. package/plugins/manualColumnResize/index.js +0 -2
  663. package/plugins/manualColumnResize/manualColumnResize.js +44 -143
  664. package/plugins/manualColumnResize/manualColumnResize.mjs +43 -118
  665. package/plugins/manualRowMove/index.js +0 -2
  666. package/plugins/manualRowMove/manualRowMove.js +45 -137
  667. package/plugins/manualRowMove/manualRowMove.mjs +45 -109
  668. package/plugins/manualRowMove/ui/_base.js +12 -27
  669. package/plugins/manualRowMove/ui/_base.mjs +12 -26
  670. package/plugins/manualRowMove/ui/backlight.js +1 -37
  671. package/plugins/manualRowMove/ui/backlight.mjs +1 -22
  672. package/plugins/manualRowMove/ui/guideline.js +1 -37
  673. package/plugins/manualRowMove/ui/guideline.mjs +1 -22
  674. package/plugins/manualRowResize/index.js +0 -2
  675. package/plugins/manualRowResize/manualRowResize.js +42 -138
  676. package/plugins/manualRowResize/manualRowResize.mjs +41 -112
  677. package/plugins/mergeCells/calculations/autofill.js +39 -130
  678. package/plugins/mergeCells/calculations/autofill.mjs +44 -122
  679. package/plugins/mergeCells/calculations/selection.js +9 -40
  680. package/plugins/mergeCells/calculations/selection.mjs +9 -37
  681. package/plugins/mergeCells/cellCoords.js +30 -51
  682. package/plugins/mergeCells/cellCoords.mjs +35 -54
  683. package/plugins/mergeCells/cellsCollection.js +13 -84
  684. package/plugins/mergeCells/cellsCollection.mjs +18 -69
  685. package/plugins/mergeCells/contextMenuItem/toggleMerge.js +0 -22
  686. package/plugins/mergeCells/contextMenuItem/toggleMerge.mjs +4 -11
  687. package/plugins/mergeCells/index.js +0 -2
  688. package/plugins/mergeCells/mergeCells.js +130 -333
  689. package/plugins/mergeCells/mergeCells.mjs +130 -292
  690. package/plugins/mergeCells/utils.js +0 -3
  691. package/plugins/mergeCells/utils.mjs +0 -1
  692. package/plugins/multiColumnSorting/domHelpers.js +3 -15
  693. package/plugins/multiColumnSorting/domHelpers.mjs +3 -7
  694. package/plugins/multiColumnSorting/index.js +0 -2
  695. package/plugins/multiColumnSorting/multiColumnSorting.js +14 -66
  696. package/plugins/multiColumnSorting/multiColumnSorting.mjs +14 -44
  697. package/plugins/multiColumnSorting/rootComparator.js +2 -26
  698. package/plugins/multiColumnSorting/rootComparator.mjs +9 -23
  699. package/plugins/multiColumnSorting/utils.js +0 -7
  700. package/plugins/multiColumnSorting/utils.mjs +3 -8
  701. package/plugins/multipleSelectionHandles/index.js +0 -2
  702. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +6 -109
  703. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +6 -87
  704. package/plugins/nestedHeaders/index.js +0 -2
  705. package/plugins/nestedHeaders/nestedHeaders.js +79 -200
  706. package/plugins/nestedHeaders/nestedHeaders.mjs +80 -173
  707. package/plugins/nestedHeaders/stateManager/headersTree.js +16 -93
  708. package/plugins/nestedHeaders/stateManager/headersTree.mjs +16 -73
  709. package/plugins/nestedHeaders/stateManager/index.js +24 -107
  710. package/plugins/nestedHeaders/stateManager/index.mjs +51 -115
  711. package/plugins/nestedHeaders/stateManager/matrixGenerator.js +7 -25
  712. package/plugins/nestedHeaders/stateManager/matrixGenerator.mjs +38 -51
  713. package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.js +12 -27
  714. package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.mjs +29 -35
  715. package/plugins/nestedHeaders/stateManager/nodeModifiers/expand.js +10 -25
  716. package/plugins/nestedHeaders/stateManager/nodeModifiers/expand.mjs +26 -32
  717. package/plugins/nestedHeaders/stateManager/nodeModifiers/hideColumn.js +3 -19
  718. package/plugins/nestedHeaders/stateManager/nodeModifiers/hideColumn.mjs +9 -20
  719. package/plugins/nestedHeaders/stateManager/nodeModifiers/index.js +2 -12
  720. package/plugins/nestedHeaders/stateManager/nodeModifiers/index.mjs +2 -5
  721. package/plugins/nestedHeaders/stateManager/nodeModifiers/showColumn.js +3 -22
  722. package/plugins/nestedHeaders/stateManager/nodeModifiers/showColumn.mjs +9 -21
  723. package/plugins/nestedHeaders/stateManager/nodeModifiers/utils/tree.js +3 -10
  724. package/plugins/nestedHeaders/stateManager/nodeModifiers/utils/tree.mjs +3 -7
  725. package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +5 -36
  726. package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +44 -61
  727. package/plugins/nestedHeaders/stateManager/sourceSettings.js +16 -78
  728. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +21 -68
  729. package/plugins/nestedHeaders/stateManager/utils.js +19 -22
  730. package/plugins/nestedHeaders/stateManager/utils.mjs +19 -20
  731. package/plugins/nestedHeaders/utils/ghostTable.js +9 -37
  732. package/plugins/nestedHeaders/utils/ghostTable.mjs +16 -43
  733. package/plugins/nestedRows/data/dataManager.js +40 -161
  734. package/plugins/nestedRows/data/dataManager.mjs +44 -148
  735. package/plugins/nestedRows/index.js +0 -2
  736. package/plugins/nestedRows/nestedRows.js +41 -119
  737. package/plugins/nestedRows/nestedRows.mjs +41 -86
  738. package/plugins/nestedRows/ui/_base.js +1 -9
  739. package/plugins/nestedRows/ui/_base.mjs +1 -8
  740. package/plugins/nestedRows/ui/collapsing.js +28 -134
  741. package/plugins/nestedRows/ui/collapsing.mjs +34 -118
  742. package/plugins/nestedRows/ui/contextMenu.js +2 -53
  743. package/plugins/nestedRows/ui/contextMenu.mjs +2 -32
  744. package/plugins/nestedRows/ui/headers.js +5 -50
  745. package/plugins/nestedRows/ui/headers.mjs +11 -41
  746. package/plugins/nestedRows/utils/rowMoveController.js +28 -78
  747. package/plugins/nestedRows/utils/rowMoveController.mjs +33 -66
  748. package/plugins/persistentState/index.js +0 -2
  749. package/plugins/persistentState/persistentState.js +10 -58
  750. package/plugins/persistentState/persistentState.mjs +10 -37
  751. package/plugins/persistentState/storage.js +9 -25
  752. package/plugins/persistentState/storage.mjs +12 -26
  753. package/plugins/registry.js +7 -51
  754. package/plugins/registry.mjs +8 -34
  755. package/plugins/search/index.js +0 -2
  756. package/plugins/search/search.js +16 -98
  757. package/plugins/search/search.mjs +16 -68
  758. package/plugins/touchScroll/index.js +0 -2
  759. package/plugins/touchScroll/touchScroll.js +15 -76
  760. package/plugins/touchScroll/touchScroll.mjs +15 -58
  761. package/plugins/trimRows/index.js +0 -2
  762. package/plugins/trimRows/trimRows.js +62 -88
  763. package/plugins/trimRows/trimRows.mjs +62 -65
  764. package/plugins/undoRedo/index.js +0 -14
  765. package/plugins/undoRedo/undoRedo.js +48 -218
  766. package/plugins/undoRedo/undoRedo.mjs +48 -188
  767. package/registry.js +0 -11
  768. package/registry.mjs +2 -4
  769. package/renderers/autocompleteRenderer/autocompleteRenderer.js +5 -14
  770. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +5 -6
  771. package/renderers/autocompleteRenderer/index.js +0 -2
  772. package/renderers/baseRenderer/baseRenderer.js +2 -11
  773. package/renderers/baseRenderer/baseRenderer.mjs +2 -9
  774. package/renderers/baseRenderer/index.js +0 -2
  775. package/renderers/checkboxRenderer/checkboxRenderer.js +22 -103
  776. package/renderers/checkboxRenderer/checkboxRenderer.mjs +22 -81
  777. package/renderers/checkboxRenderer/index.js +0 -2
  778. package/renderers/htmlRenderer/htmlRenderer.js +1 -7
  779. package/renderers/htmlRenderer/htmlRenderer.mjs +1 -1
  780. package/renderers/htmlRenderer/index.js +0 -2
  781. package/renderers/index.js +0 -19
  782. package/renderers/index.mjs +3 -5
  783. package/renderers/numericRenderer/index.js +0 -2
  784. package/renderers/numericRenderer/numericRenderer.js +1 -23
  785. package/renderers/numericRenderer/numericRenderer.mjs +1 -10
  786. package/renderers/passwordRenderer/index.js +0 -2
  787. package/renderers/passwordRenderer/passwordRenderer.js +1 -8
  788. package/renderers/passwordRenderer/passwordRenderer.mjs +1 -1
  789. package/renderers/registry.js +7 -16
  790. package/renderers/registry.mjs +7 -14
  791. package/renderers/textRenderer/index.js +0 -2
  792. package/renderers/textRenderer/textRenderer.js +2 -14
  793. package/renderers/textRenderer/textRenderer.mjs +2 -6
  794. package/renderers/timeRenderer/index.js +0 -2
  795. package/renderers/timeRenderer/timeRenderer.js +1 -6
  796. package/renderers/timeRenderer/timeRenderer.mjs +1 -1
  797. package/selection/highlight/highlight.js +17 -73
  798. package/selection/highlight/highlight.mjs +31 -64
  799. package/selection/highlight/types/activeHeader.js +1 -21
  800. package/selection/highlight/types/activeHeader.mjs +6 -16
  801. package/selection/highlight/types/area.js +2 -22
  802. package/selection/highlight/types/area.mjs +10 -20
  803. package/selection/highlight/types/cell.js +1 -21
  804. package/selection/highlight/types/cell.mjs +9 -19
  805. package/selection/highlight/types/customSelection.js +2 -22
  806. package/selection/highlight/types/customSelection.mjs +11 -21
  807. package/selection/highlight/types/fill.js +2 -17
  808. package/selection/highlight/types/fill.mjs +9 -14
  809. package/selection/highlight/types/header.js +3 -23
  810. package/selection/highlight/types/header.mjs +13 -23
  811. package/selection/highlight/types/index.js +3 -24
  812. package/selection/highlight/types/index.mjs +3 -10
  813. package/selection/highlight/visualSelection.js +24 -74
  814. package/selection/highlight/visualSelection.mjs +24 -62
  815. package/selection/index.js +0 -14
  816. package/selection/mouseEventHandler.js +19 -30
  817. package/selection/mouseEventHandler.mjs +32 -36
  818. package/selection/range.js +11 -31
  819. package/selection/range.mjs +11 -22
  820. package/selection/selection.js +62 -157
  821. package/selection/selection.mjs +65 -132
  822. package/selection/transformation.js +10 -40
  823. package/selection/transformation.mjs +18 -45
  824. package/selection/utils.js +22 -70
  825. package/selection/utils.mjs +22 -47
  826. package/shortcuts/context.js +23 -78
  827. package/shortcuts/context.mjs +23 -55
  828. package/shortcuts/index.js +0 -2
  829. package/shortcuts/keyObserver.js +4 -17
  830. package/shortcuts/keyObserver.mjs +4 -12
  831. package/shortcuts/manager.js +16 -36
  832. package/shortcuts/manager.mjs +16 -33
  833. package/shortcuts/recorder.js +20 -47
  834. package/shortcuts/recorder.mjs +20 -39
  835. package/shortcuts/utils.js +5 -24
  836. package/shortcuts/utils.mjs +5 -8
  837. package/tableView.js +100 -270
  838. package/tableView.mjs +100 -248
  839. package/translations/changesObservable/observable.js +5 -54
  840. package/translations/changesObservable/observable.mjs +12 -51
  841. package/translations/changesObservable/observer.js +4 -32
  842. package/translations/changesObservable/observer.mjs +9 -29
  843. package/translations/changesObservable/utils.js +1 -5
  844. package/translations/changesObservable/utils.mjs +1 -4
  845. package/translations/index.js +0 -11
  846. package/translations/indexMapper.js +70 -158
  847. package/translations/indexMapper.mjs +70 -125
  848. package/translations/mapCollections/aggregatedCollection.js +9 -51
  849. package/translations/mapCollections/aggregatedCollection.mjs +12 -41
  850. package/translations/mapCollections/index.js +0 -7
  851. package/translations/mapCollections/mapCollection.js +10 -33
  852. package/translations/mapCollections/mapCollection.mjs +10 -22
  853. package/translations/maps/hidingMap.js +2 -35
  854. package/translations/maps/hidingMap.mjs +7 -28
  855. package/translations/maps/index.js +1 -24
  856. package/translations/maps/index.mjs +1 -3
  857. package/translations/maps/indexMap.js +12 -34
  858. package/translations/maps/indexMap.mjs +16 -32
  859. package/translations/maps/indexesSequence.js +3 -41
  860. package/translations/maps/indexesSequence.mjs +9 -32
  861. package/translations/maps/linkedPhysicalIndexToValueMap.js +9 -78
  862. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +16 -59
  863. package/translations/maps/physicalIndexToValueMap.js +2 -39
  864. package/translations/maps/physicalIndexToValueMap.mjs +8 -31
  865. package/translations/maps/trimmingMap.js +2 -35
  866. package/translations/maps/trimmingMap.mjs +7 -28
  867. package/translations/maps/utils/actionsOnIndexes.js +1 -7
  868. package/translations/maps/utils/actionsOnIndexes.mjs +9 -12
  869. package/translations/maps/utils/index.js +0 -13
  870. package/translations/maps/utils/index.mjs +0 -3
  871. package/translations/maps/utils/indexesSequence.js +1 -24
  872. package/translations/maps/utils/indexesSequence.mjs +10 -19
  873. package/translations/maps/utils/physicallyIndexed.js +1 -27
  874. package/translations/maps/utils/physicallyIndexed.mjs +11 -21
  875. package/utils/dataStructures/linkedList.js +15 -56
  876. package/utils/dataStructures/linkedList.mjs +15 -54
  877. package/utils/dataStructures/priorityMap.js +8 -46
  878. package/utils/dataStructures/priorityMap.mjs +8 -29
  879. package/utils/dataStructures/queue.js +6 -17
  880. package/utils/dataStructures/queue.mjs +6 -16
  881. package/utils/dataStructures/stack.js +6 -17
  882. package/utils/dataStructures/stack.mjs +6 -16
  883. package/utils/dataStructures/tree.js +11 -75
  884. package/utils/dataStructures/tree.mjs +11 -54
  885. package/utils/dataStructures/uniqueMap.js +17 -56
  886. package/utils/dataStructures/uniqueMap.mjs +17 -42
  887. package/utils/dataStructures/uniqueSet.js +5 -32
  888. package/utils/dataStructures/uniqueSet.mjs +5 -19
  889. package/utils/ghostTable.js +33 -104
  890. package/utils/ghostTable.mjs +35 -92
  891. package/utils/interval.js +10 -37
  892. package/utils/interval.mjs +7 -29
  893. package/utils/parseTable.js +11 -92
  894. package/utils/parseTable.mjs +11 -62
  895. package/utils/rootInstance.js +3 -14
  896. package/utils/rootInstance.mjs +3 -3
  897. package/utils/samplesGenerator.js +15 -51
  898. package/utils/samplesGenerator.mjs +17 -44
  899. package/utils/staticRegister.js +6 -33
  900. package/utils/staticRegister.mjs +6 -19
  901. package/validators/autocompleteValidator/autocompleteValidator.js +2 -10
  902. package/validators/autocompleteValidator/autocompleteValidator.mjs +2 -8
  903. package/validators/autocompleteValidator/index.js +0 -2
  904. package/validators/dateValidator/dateValidator.js +2 -21
  905. package/validators/dateValidator/dateValidator.mjs +2 -11
  906. package/validators/dateValidator/index.js +0 -2
  907. package/validators/index.js +0 -11
  908. package/validators/index.mjs +3 -5
  909. package/validators/numericValidator/index.js +0 -2
  910. package/validators/numericValidator/numericValidator.js +1 -7
  911. package/validators/numericValidator/numericValidator.mjs +1 -3
  912. package/validators/registry.js +7 -16
  913. package/validators/registry.mjs +7 -14
  914. package/validators/timeValidator/index.js +0 -2
  915. package/validators/timeValidator/timeValidator.js +6 -18
  916. package/validators/timeValidator/timeValidator.mjs +8 -13
  917. package/utils/sortingAlgorithms/mergeSort.js +0 -120
  918. package/utils/sortingAlgorithms/mergeSort.mjs +0 -110
@@ -1,65 +1,45 @@
1
1
  "use strict";
2
2
 
3
3
  require("core-js/modules/es.symbol.js");
4
-
5
4
  require("core-js/modules/es.symbol.description.js");
6
-
7
5
  require("core-js/modules/es.symbol.iterator.js");
8
-
6
+ require("core-js/modules/es.array.from.js");
7
+ require("core-js/modules/es.function.name.js");
8
+ require("core-js/modules/es.regexp.exec.js");
9
9
  exports.__esModule = true;
10
10
  exports.default = void 0;
11
-
12
11
  require("core-js/modules/es.array.iterator.js");
13
-
14
12
  require("core-js/modules/es.map.js");
15
-
16
13
  require("core-js/modules/es.object.to-string.js");
17
-
18
14
  require("core-js/modules/es.string.iterator.js");
19
-
20
15
  require("core-js/modules/web.dom-collections.iterator.js");
21
-
22
16
  require("core-js/modules/es.number.is-integer.js");
23
-
24
17
  require("core-js/modules/es.number.constructor.js");
25
-
26
- require("core-js/modules/es.array.concat.js");
27
-
28
18
  require("core-js/modules/es.array.splice.js");
29
-
30
19
  require("core-js/modules/es.array.sort.js");
31
-
32
20
  require("core-js/modules/es.array.slice.js");
33
-
21
+ require("core-js/modules/es.array.concat.js");
22
+ require("core-js/modules/web.dom-collections.for-each.js");
34
23
  require("core-js/modules/es.array.filter.js");
35
-
36
24
  require("core-js/modules/es.array.index-of.js");
37
-
38
- require("core-js/modules/es.regexp.exec.js");
39
-
40
- require("core-js/modules/es.string.split.js");
41
-
42
25
  var _SheetClip = require("../3rdparty/SheetClip");
43
-
44
26
  var _data = require("../helpers/data");
45
-
46
27
  var _object = require("../helpers/object");
47
-
48
28
  var _array = require("../helpers/array");
49
-
50
29
  var _number = require("../helpers/number");
51
-
52
30
  var _mixed = require("../helpers/mixed");
53
-
31
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
32
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
33
+ 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); }
34
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
35
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
36
+ 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; }
54
37
  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); }
55
-
56
38
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
57
-
58
39
  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); } }
59
-
60
40
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
61
-
62
41
  var copyableLookup = (0, _data.cellMethodLookupFactory)('copyable', false);
42
+
63
43
  /*
64
44
  This class contains open-source contributions covered by the MIT license.
65
45
 
@@ -91,7 +71,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
91
71
  * @class DataMap
92
72
  * @private
93
73
  */
94
-
95
74
  var DataMap = /*#__PURE__*/function () {
96
75
  /**
97
76
  * @param {object} instance Instance of Handsontable.
@@ -100,7 +79,6 @@ var DataMap = /*#__PURE__*/function () {
100
79
  */
101
80
  function DataMap(instance, data, tableMeta) {
102
81
  _classCallCheck(this, DataMap);
103
-
104
82
  /**
105
83
  * Instance of {@link Handsontable}.
106
84
  *
@@ -114,62 +92,52 @@ var DataMap = /*#__PURE__*/function () {
114
92
  * @private
115
93
  * @type {TableMeta}
116
94
  */
117
-
118
95
  this.tableMeta = tableMeta;
119
96
  /**
120
97
  * Reference to the original dataset.
121
98
  *
122
99
  * @type {*}
123
100
  */
124
-
125
101
  this.dataSource = data;
126
102
  /**
127
103
  * Generated schema based on the first row from the source data.
128
104
  *
129
105
  * @type {object}
130
106
  */
131
-
132
107
  this.duckSchema = this.dataSource && this.dataSource[0] ? (0, _object.duckSchema)(this.dataSource[0]) : {};
133
108
  /**
134
109
  * Cached array of properties to columns.
135
110
  *
136
111
  * @type {Array}
137
112
  */
138
-
139
113
  this.colToPropCache = void 0;
140
114
  /**
141
115
  * Cached map of properties to columns.
142
116
  *
143
117
  * @type {Map}
144
118
  */
145
-
146
119
  this.propToColCache = void 0;
147
120
  this.createMap();
148
121
  }
122
+
149
123
  /**
150
124
  * Generates cache for property to and from column addressation.
151
125
  */
152
-
153
-
154
126
  _createClass(DataMap, [{
155
127
  key: "createMap",
156
128
  value: function createMap() {
157
129
  var schema = this.getSchema();
158
-
159
130
  if (typeof schema === 'undefined') {
160
131
  throw new Error('trying to create `columns` definition but you didn\'t provide `schema` nor `data`');
161
132
  }
162
-
163
133
  var columns = this.tableMeta.columns;
164
134
  var i;
165
135
  this.colToPropCache = [];
166
136
  this.propToColCache = new Map();
167
-
168
137
  if (columns) {
169
138
  var columnsLen = 0;
170
139
  var filteredIndex = 0;
171
140
  var columnsAsFunc = false;
172
-
173
141
  if (typeof columns === 'function') {
174
142
  var schemaLen = (0, _object.deepObjectSize)(schema);
175
143
  columnsLen = schemaLen > 0 ? schemaLen : this.countFirstRowKeys();
@@ -178,17 +146,14 @@ var DataMap = /*#__PURE__*/function () {
178
146
  var maxCols = this.tableMeta.maxCols;
179
147
  columnsLen = Math.min(maxCols, columns.length);
180
148
  }
181
-
182
149
  for (i = 0; i < columnsLen; i++) {
183
150
  var column = columnsAsFunc ? columns(i) : columns[i];
184
-
185
151
  if ((0, _object.isObject)(column)) {
186
152
  if (typeof column.data !== 'undefined') {
187
153
  var index = columnsAsFunc ? filteredIndex : i;
188
154
  this.colToPropCache[index] = column.data;
189
155
  this.propToColCache.set(column.data, index);
190
156
  }
191
-
192
157
  filteredIndex += 1;
193
158
  }
194
159
  }
@@ -196,17 +161,18 @@ var DataMap = /*#__PURE__*/function () {
196
161
  this.recursiveDuckColumns(schema);
197
162
  }
198
163
  }
164
+
199
165
  /**
200
166
  * Get the amount of physical columns in the first data row.
201
167
  *
202
168
  * @returns {number} Amount of physical columns in the first data row.
203
169
  */
204
-
205
170
  }, {
206
171
  key: "countFirstRowKeys",
207
172
  value: function countFirstRowKeys() {
208
173
  return (0, _data.countFirstRowKeys)(this.dataSource);
209
174
  }
175
+
210
176
  /**
211
177
  * Generates columns' translation cache.
212
178
  *
@@ -215,46 +181,38 @@ var DataMap = /*#__PURE__*/function () {
215
181
  * @param {number} parent The property cache for recursive calls.
216
182
  * @returns {number}
217
183
  */
218
-
219
184
  }, {
220
185
  key: "recursiveDuckColumns",
221
186
  value: function recursiveDuckColumns(schema, lastCol, parent) {
222
187
  var _this = this;
223
-
224
188
  var lastColumn = lastCol;
225
189
  var propertyParent = parent;
226
190
  var prop;
227
-
228
191
  if (typeof lastColumn === 'undefined') {
229
192
  lastColumn = 0;
230
193
  propertyParent = '';
231
194
  }
232
-
233
195
  if (_typeof(schema) === 'object' && !Array.isArray(schema)) {
234
196
  (0, _object.objectEach)(schema, function (value, key) {
235
197
  if (value === null) {
236
198
  prop = propertyParent + key;
237
-
238
199
  _this.colToPropCache.push(prop);
239
-
240
200
  _this.propToColCache.set(prop, lastColumn);
241
-
242
201
  lastColumn += 1;
243
202
  } else {
244
203
  lastColumn = _this.recursiveDuckColumns(value, lastColumn, "".concat(key, "."));
245
204
  }
246
205
  });
247
206
  }
248
-
249
207
  return lastColumn;
250
208
  }
209
+
251
210
  /**
252
211
  * Returns property name that corresponds with the given column index.
253
212
  *
254
213
  * @param {string|number} column Visual column index or another passed argument.
255
214
  * @returns {string|number} Column property, physical column index or passed argument.
256
215
  */
257
-
258
216
  }, {
259
217
  key: "colToProp",
260
218
  value: function colToProp(column) {
@@ -263,109 +221,99 @@ var DataMap = /*#__PURE__*/function () {
263
221
  if (Number.isInteger(column) === false) {
264
222
  return column;
265
223
  }
224
+ var physicalColumn = this.instance.toPhysicalColumn(column);
266
225
 
267
- var physicalColumn = this.instance.toPhysicalColumn(column); // Out of range, not visible column index.
268
-
226
+ // Out of range, not visible column index.
269
227
  if (physicalColumn === null) {
270
228
  return column;
271
- } // Cached property.
272
-
229
+ }
273
230
 
231
+ // Cached property.
274
232
  if (this.colToPropCache && (0, _mixed.isDefined)(this.colToPropCache[physicalColumn])) {
275
233
  return this.colToPropCache[physicalColumn];
276
234
  }
277
-
278
235
  return physicalColumn;
279
236
  }
237
+
280
238
  /**
281
239
  * Translates property into visual column index.
282
240
  *
283
241
  * @param {string|number} prop Column property which may be also a physical column index.
284
242
  * @returns {string|number} Visual column index or passed argument.
285
243
  */
286
-
287
244
  }, {
288
245
  key: "propToCol",
289
246
  value: function propToCol(prop) {
290
247
  var cachedPhysicalIndex = this.propToColCache.get(prop);
291
-
292
248
  if ((0, _mixed.isDefined)(cachedPhysicalIndex)) {
293
249
  return this.instance.toVisualColumn(cachedPhysicalIndex);
294
- } // Property may be a physical column index.
295
-
250
+ }
296
251
 
252
+ // Property may be a physical column index.
297
253
  var visualColumn = this.instance.toVisualColumn(prop);
298
-
299
254
  if (visualColumn === null) {
300
255
  return prop;
301
256
  }
302
-
303
257
  return visualColumn;
304
258
  }
259
+
305
260
  /**
306
261
  * Returns data's schema.
307
262
  *
308
263
  * @returns {object}
309
264
  */
310
-
311
265
  }, {
312
266
  key: "getSchema",
313
267
  value: function getSchema() {
314
268
  var schema = this.tableMeta.dataSchema;
315
-
316
269
  if (schema) {
317
270
  if (typeof schema === 'function') {
318
271
  return schema();
319
272
  }
320
-
321
273
  return schema;
322
274
  }
323
-
324
275
  return this.duckSchema;
325
276
  }
277
+
326
278
  /**
327
279
  * Creates row at the bottom of the data array.
328
280
  *
329
281
  * @param {number} [index] Physical index of the row before which the new row will be inserted.
330
282
  * @param {number} [amount=1] An amount of rows to add.
331
- * @param {string} [source] Source of method call.
283
+ * @param {object} [options] Additional options for created rows.
284
+ * @param {string} [options.source] Source of method call.
285
+ * @param {'above'|'below'} [options.mode] Sets where the row is inserted: above or below the passed index.
332
286
  * @fires Hooks#afterCreateRow
333
287
  * @returns {number} Returns number of created rows.
334
288
  */
335
-
336
289
  }, {
337
290
  key: "createRow",
338
291
  value: function createRow(index) {
339
292
  var _this2 = this;
340
-
341
293
  var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
342
- var source = arguments.length > 2 ? arguments[2] : undefined;
294
+ var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
295
+ source = _ref.source,
296
+ _ref$mode = _ref.mode,
297
+ mode = _ref$mode === void 0 ? 'above' : _ref$mode;
343
298
  var sourceRowsCount = this.instance.countSourceRows();
344
299
  var physicalRowIndex = sourceRowsCount;
345
300
  var numberOfCreatedRows = 0;
346
301
  var rowIndex = index;
347
-
348
302
  if (typeof rowIndex !== 'number' || rowIndex >= sourceRowsCount) {
349
303
  rowIndex = sourceRowsCount;
350
304
  }
351
-
352
305
  if (rowIndex < this.instance.countRows()) {
353
306
  physicalRowIndex = this.instance.toPhysicalRow(rowIndex);
354
307
  }
355
-
356
308
  var continueProcess = this.instance.runHooks('beforeCreateRow', rowIndex, amount, source);
357
-
358
309
  if (continueProcess === false || physicalRowIndex === null) {
359
310
  return 0;
360
311
  }
361
-
362
312
  var maxRows = this.tableMeta.maxRows;
363
313
  var columnCount = this.instance.countCols();
364
314
  var rowsToAdd = [];
365
-
366
315
  var _loop = function _loop() {
367
316
  var row = null;
368
-
369
317
  if (_this2.instance.dataType === 'array') {
370
318
  if (_this2.tableMeta.dataSchema) {
371
319
  // Clone template array
@@ -373,7 +321,6 @@ var DataMap = /*#__PURE__*/function () {
373
321
  } else {
374
322
  row = [];
375
323
  /* eslint-disable no-loop-func */
376
-
377
324
  (0, _number.rangeEach)(columnCount - 1, function () {
378
325
  return row.push(null);
379
326
  });
@@ -384,67 +331,73 @@ var DataMap = /*#__PURE__*/function () {
384
331
  row = {};
385
332
  (0, _object.deepExtend)(row, _this2.getSchema());
386
333
  }
387
-
388
334
  rowsToAdd.push(row);
389
335
  numberOfCreatedRows += 1;
390
336
  };
391
-
392
337
  while (numberOfCreatedRows < amount && sourceRowsCount + numberOfCreatedRows < maxRows) {
393
338
  _loop();
394
339
  }
395
-
396
340
  this.instance.rowIndexMapper.insertIndexes(rowIndex, numberOfCreatedRows);
397
- this.spliceData.apply(this, [physicalRowIndex, 0].concat(rowsToAdd));
398
- this.instance.runHooks('afterCreateRow', rowIndex, numberOfCreatedRows, source);
341
+ if (mode === 'below') {
342
+ physicalRowIndex = Math.min(physicalRowIndex + 1, sourceRowsCount);
343
+ }
344
+ this.spliceData(physicalRowIndex, 0, rowsToAdd);
345
+ var newVisualRowIndex = this.instance.toVisualRow(physicalRowIndex);
346
+ this.instance.runHooks('afterCreateRow', newVisualRowIndex, numberOfCreatedRows, source);
399
347
  this.instance.forceFullRender = true; // used when data was changed
400
348
 
401
- return numberOfCreatedRows;
349
+ return {
350
+ delta: numberOfCreatedRows,
351
+ startPhysicalIndex: physicalRowIndex
352
+ };
402
353
  }
354
+
403
355
  /**
404
356
  * Creates column at the right of the data array.
405
357
  *
406
358
  * @param {number} [index] Visual index of the column before which the new column will be inserted.
407
359
  * @param {number} [amount=1] An amount of columns to add.
408
- * @param {string} [source] Source of method call.
360
+ * @param {object} [options] Additional options for created columns.
361
+ * @param {string} [options.source] Source of method call.
362
+ * @param {'start'|'end'} [options.mode] Sets where the column is inserted: at the start (left in [LTR](@/api/options.md#layoutdirection), right in [RTL](@/api/options.md#layoutdirection)) or at the end (right in LTR, left in LTR)
363
+ * the passed index.
409
364
  * @fires Hooks#afterCreateCol
410
365
  * @returns {number} Returns number of created columns.
411
366
  */
412
-
413
367
  }, {
414
368
  key: "createCol",
415
369
  value: function createCol(index) {
416
370
  var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
417
- var source = arguments.length > 2 ? arguments[2] : undefined;
418
-
371
+ var _ref2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
372
+ source = _ref2.source,
373
+ _ref2$mode = _ref2.mode,
374
+ mode = _ref2$mode === void 0 ? 'start' : _ref2$mode;
419
375
  if (!this.instance.isColumnModificationAllowed()) {
420
376
  throw new Error('Cannot create new column. When data source in an object, ' + 'you can only have as much columns as defined in first data row, data schema or in the \'columns\' setting.' + 'If you want to be able to add new columns, you have to use array datasource.');
421
377
  }
422
-
423
378
  var dataSource = this.dataSource;
424
379
  var maxCols = this.tableMeta.maxCols;
380
+ var countSourceCols = this.instance.countSourceCols();
425
381
  var columnIndex = index;
426
-
427
- if (typeof columnIndex !== 'number' || columnIndex >= this.instance.countSourceCols()) {
428
- columnIndex = this.instance.countSourceCols();
382
+ if (typeof columnIndex !== 'number' || columnIndex >= countSourceCols) {
383
+ columnIndex = countSourceCols;
429
384
  }
430
-
431
385
  var continueProcess = this.instance.runHooks('beforeCreateCol', columnIndex, amount, source);
432
-
433
386
  if (continueProcess === false) {
434
387
  return 0;
435
388
  }
436
-
437
- var physicalColumnIndex = this.instance.countSourceCols();
438
-
389
+ var physicalColumnIndex = countSourceCols;
439
390
  if (columnIndex < this.instance.countCols()) {
440
391
  physicalColumnIndex = this.instance.toPhysicalColumn(columnIndex);
441
392
  }
442
-
443
393
  var numberOfSourceRows = this.instance.countSourceRows();
444
394
  var nrOfColumns = this.instance.countCols();
445
395
  var numberOfCreatedCols = 0;
446
396
  var currentIndex = physicalColumnIndex;
447
-
397
+ if (mode === 'end') {
398
+ currentIndex = Math.min(currentIndex + 1, countSourceCols);
399
+ }
400
+ var startPhysicalIndex = currentIndex;
448
401
  while (numberOfCreatedCols < amount && nrOfColumns < maxCols) {
449
402
  if (typeof columnIndex !== 'number' || columnIndex >= nrOfColumns) {
450
403
  if (numberOfSourceRows > 0) {
@@ -452,7 +405,6 @@ var DataMap = /*#__PURE__*/function () {
452
405
  if (typeof dataSource[row] === 'undefined') {
453
406
  dataSource[row] = [];
454
407
  }
455
-
456
408
  dataSource[row].push(null);
457
409
  }
458
410
  } else {
@@ -463,18 +415,21 @@ var DataMap = /*#__PURE__*/function () {
463
415
  dataSource[_row].splice(currentIndex, 0, null);
464
416
  }
465
417
  }
466
-
467
418
  numberOfCreatedCols += 1;
468
419
  currentIndex += 1;
469
420
  nrOfColumns += 1;
470
421
  }
471
-
472
422
  this.instance.columnIndexMapper.insertIndexes(columnIndex, numberOfCreatedCols);
473
- this.instance.runHooks('afterCreateCol', columnIndex, numberOfCreatedCols, source);
423
+ var newVisualColumnIndex = this.instance.toVisualColumn(startPhysicalIndex);
424
+ this.instance.runHooks('afterCreateCol', newVisualColumnIndex, numberOfCreatedCols, source);
474
425
  this.instance.forceFullRender = true; // used when data was changed
475
426
 
476
- return numberOfCreatedCols;
427
+ return {
428
+ delta: numberOfCreatedCols,
429
+ startPhysicalIndex: startPhysicalIndex
430
+ };
477
431
  }
432
+
478
433
  /**
479
434
  * Removes row from the data array.
480
435
  *
@@ -485,42 +440,42 @@ var DataMap = /*#__PURE__*/function () {
485
440
  * @param {string} [source] Source of method call.
486
441
  * @returns {boolean} Returns `false` when action was cancelled, otherwise `true`.
487
442
  */
488
-
489
443
  }, {
490
444
  key: "removeRow",
491
445
  value: function removeRow(index) {
492
446
  var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
493
447
  var source = arguments.length > 2 ? arguments[2] : undefined;
494
448
  var rowIndex = Number.isInteger(index) ? index : -amount; // -amount = taking indexes from the end.
495
-
496
449
  var removedPhysicalIndexes = this.visualRowsToPhysical(rowIndex, amount);
497
450
  var sourceRowsLength = this.instance.countSourceRows();
498
- rowIndex = (sourceRowsLength + rowIndex) % sourceRowsLength; // It handle also callback from the `NestedRows` plugin. Removing parent node has effect in removing children nodes.
451
+ rowIndex = (sourceRowsLength + rowIndex) % sourceRowsLength;
499
452
 
453
+ // It handle also callback from the `NestedRows` plugin. Removing parent node has effect in removing children nodes.
500
454
  var actionWasNotCancelled = this.instance.runHooks('beforeRemoveRow', rowIndex, removedPhysicalIndexes.length, removedPhysicalIndexes, source);
501
-
502
455
  if (actionWasNotCancelled === false) {
503
456
  return false;
504
- } // List of removed indexes might be changed in the `beforeRemoveRow` hook. There may be new values.
505
-
457
+ }
506
458
 
459
+ // List of removed indexes might be changed in the `beforeRemoveRow` hook. There may be new values.
507
460
  var numberOfRemovedIndexes = removedPhysicalIndexes.length;
508
- this.filterData(rowIndex, numberOfRemovedIndexes, removedPhysicalIndexes); // TODO: Function `removeRow` should validate fully, probably above.
461
+ this.filterData(rowIndex, numberOfRemovedIndexes, removedPhysicalIndexes);
509
462
 
463
+ // TODO: Function `removeRow` should validate fully, probably above.
510
464
  if (rowIndex < this.instance.countRows()) {
511
465
  this.instance.rowIndexMapper.removeIndexes(removedPhysicalIndexes);
512
- var customDefinedColumns = (0, _mixed.isDefined)(this.tableMeta.columns) || (0, _mixed.isDefined)(this.tableMeta.dataSchema); // All rows have been removed. There shouldn't be any columns.
466
+ var customDefinedColumns = (0, _mixed.isDefined)(this.tableMeta.columns) || (0, _mixed.isDefined)(this.tableMeta.dataSchema);
513
467
 
468
+ // All rows have been removed. There shouldn't be any columns.
514
469
  if (this.instance.rowIndexMapper.getNotTrimmedIndexesLength() === 0 && customDefinedColumns === false) {
515
470
  this.instance.columnIndexMapper.setIndexesSequence([]);
516
471
  }
517
472
  }
518
-
519
473
  this.instance.runHooks('afterRemoveRow', rowIndex, numberOfRemovedIndexes, removedPhysicalIndexes, source);
520
474
  this.instance.forceFullRender = true; // used when data was changed
521
475
 
522
476
  return true;
523
477
  }
478
+
524
479
  /**
525
480
  * Removes column from the data array.
526
481
  *
@@ -531,17 +486,14 @@ var DataMap = /*#__PURE__*/function () {
531
486
  * @param {string} [source] Source of method call.
532
487
  * @returns {boolean} Returns `false` when action was cancelled, otherwise `true`.
533
488
  */
534
-
535
489
  }, {
536
490
  key: "removeCol",
537
491
  value: function removeCol(index) {
538
492
  var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
539
493
  var source = arguments.length > 2 ? arguments[2] : undefined;
540
-
541
494
  if (this.instance.dataType === 'object' || this.tableMeta.columns) {
542
495
  throw new Error('cannot remove column with object data source or columns option specified');
543
496
  }
544
-
545
497
  var columnIndex = typeof index !== 'number' ? -amount : index;
546
498
  columnIndex = (this.instance.countCols() + columnIndex) % this.instance.countCols();
547
499
  var logicColumns = this.visualColumnsToPhysical(columnIndex, amount);
@@ -549,21 +501,17 @@ var DataMap = /*#__PURE__*/function () {
549
501
  return b - a;
550
502
  });
551
503
  var actionWasNotCancelled = this.instance.runHooks('beforeRemoveCol', columnIndex, amount, logicColumns, source);
552
-
553
504
  if (actionWasNotCancelled === false) {
554
505
  return false;
555
506
  }
556
-
557
507
  var isTableUniform = true;
558
508
  var removedColumnsCount = descendingLogicColumns.length;
559
509
  var data = this.dataSource;
560
-
561
510
  for (var c = 0; c < removedColumnsCount; c++) {
562
511
  if (isTableUniform && logicColumns[0] !== logicColumns[c] - c) {
563
512
  isTableUniform = false;
564
513
  }
565
514
  }
566
-
567
515
  if (isTableUniform) {
568
516
  for (var r = 0, rlen = this.instance.countSourceRows(); r < rlen; r++) {
569
517
  data[r].splice(logicColumns[0], amount);
@@ -574,22 +522,23 @@ var DataMap = /*#__PURE__*/function () {
574
522
  data[_r].splice(descendingLogicColumns[_c], 1);
575
523
  }
576
524
  }
577
- } // TODO: Function `removeCol` should validate fully, probably above.
578
-
525
+ }
579
526
 
527
+ // TODO: Function `removeCol` should validate fully, probably above.
580
528
  if (columnIndex < this.instance.countCols()) {
581
- this.instance.columnIndexMapper.removeIndexes(logicColumns); // All columns have been removed. There shouldn't be any rows.
529
+ this.instance.columnIndexMapper.removeIndexes(logicColumns);
582
530
 
531
+ // All columns have been removed. There shouldn't be any rows.
583
532
  if (this.instance.columnIndexMapper.getNotTrimmedIndexesLength() === 0) {
584
533
  this.instance.rowIndexMapper.setIndexesSequence([]);
585
534
  }
586
535
  }
587
-
588
536
  this.instance.runHooks('afterRemoveCol', columnIndex, amount, logicColumns, source);
589
537
  this.instance.forceFullRender = true; // used when data was changed
590
538
 
591
539
  return true;
592
540
  }
541
+
593
542
  /**
594
543
  * Add/Removes data from the column.
595
544
  *
@@ -599,31 +548,26 @@ var DataMap = /*#__PURE__*/function () {
599
548
  * @param {Array} [elements] The new columns to add.
600
549
  * @returns {Array} Returns removed portion of columns.
601
550
  */
602
-
603
551
  }, {
604
552
  key: "spliceCol",
605
553
  value: function spliceCol(col, index, amount) {
606
554
  var colData = this.instance.getDataAtCol(col);
607
555
  var removed = colData.slice(index, index + amount);
608
556
  var after = colData.slice(index + amount);
609
-
610
557
  for (var _len = arguments.length, elements = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {
611
558
  elements[_key - 3] = arguments[_key];
612
559
  }
613
-
614
560
  (0, _array.extendArray)(elements, after);
615
561
  var i = 0;
616
-
617
562
  while (i < amount) {
618
563
  elements.push(null); // add null in place of removed elements
619
-
620
564
  i += 1;
621
565
  }
622
-
623
566
  (0, _array.to2dArray)(elements);
624
567
  this.instance.populateFromArray(index, col, elements, null, null, 'spliceCol');
625
568
  return removed;
626
569
  }
570
+
627
571
  /**
628
572
  * Add/Removes data from the row.
629
573
  *
@@ -633,53 +577,51 @@ var DataMap = /*#__PURE__*/function () {
633
577
  * @param {Array} [elements] The new rows to add.
634
578
  * @returns {Array} Returns removed portion of rows.
635
579
  */
636
-
637
580
  }, {
638
581
  key: "spliceRow",
639
582
  value: function spliceRow(row, index, amount) {
640
583
  var rowData = this.instance.getSourceDataAtRow(row);
641
584
  var removed = rowData.slice(index, index + amount);
642
585
  var after = rowData.slice(index + amount);
643
-
644
586
  for (var _len2 = arguments.length, elements = new Array(_len2 > 3 ? _len2 - 3 : 0), _key2 = 3; _key2 < _len2; _key2++) {
645
587
  elements[_key2 - 3] = arguments[_key2];
646
588
  }
647
-
648
589
  (0, _array.extendArray)(elements, after);
649
590
  var i = 0;
650
-
651
591
  while (i < amount) {
652
592
  elements.push(null); // add null in place of removed elements
653
-
654
593
  i += 1;
655
594
  }
656
-
657
595
  this.instance.populateFromArray(row, index, [elements], null, null, 'spliceRow');
658
596
  return removed;
659
597
  }
598
+
660
599
  /**
661
600
  * Add/remove row(s) to/from the data source.
662
601
  *
663
602
  * @param {number} index Physical index of the element to add/remove.
664
- * @param {number} amount Number of rows to add/remove.
665
- * @param {...object} elements Row elements to be added.
603
+ * @param {number} deleteCount Number of rows to remove.
604
+ * @param {Array<object>} elements Row elements to be added.
666
605
  */
667
-
668
606
  }, {
669
607
  key: "spliceData",
670
- value: function spliceData(index, amount) {
671
- for (var _len3 = arguments.length, elements = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {
672
- elements[_key3 - 2] = arguments[_key3];
673
- }
674
-
675
- var continueSplicing = this.instance.runHooks('beforeDataSplice', index, amount, elements);
676
-
608
+ value: function spliceData(index, deleteCount, elements) {
609
+ var _this3 = this;
610
+ var continueSplicing = this.instance.runHooks('beforeDataSplice', index, deleteCount, elements);
677
611
  if (continueSplicing !== false) {
678
- var _this$dataSource;
612
+ var newData = [].concat(_toConsumableArray(this.dataSource.slice(0, index)), _toConsumableArray(elements), _toConsumableArray(this.dataSource.slice(index)));
613
+
614
+ // We try not to change the reference.
615
+ this.dataSource.length = 0;
679
616
 
680
- (_this$dataSource = this.dataSource).splice.apply(_this$dataSource, [index, amount].concat(elements));
617
+ // Pushing to array instead of using `splice`, because Babel changes the code to one that uses the `apply` method.
618
+ // The used method was cause of the problem described within #7840.
619
+ newData.forEach(function (row) {
620
+ return _this3.dataSource.push(row);
621
+ });
681
622
  }
682
623
  }
624
+
683
625
  /**
684
626
  * Filter unwanted data elements from the data source.
685
627
  *
@@ -687,22 +629,22 @@ var DataMap = /*#__PURE__*/function () {
687
629
  * @param {number} amount Number of rows to add/remove.
688
630
  * @param {number} physicalRows Physical row indexes.
689
631
  */
690
-
691
632
  }, {
692
633
  key: "filterData",
693
634
  value: function filterData(index, amount, physicalRows) {
694
635
  // Custom data filtering (run as a consequence of calling the below hook) provide an array containing new data.
695
- var data = this.instance.runHooks('filterData', index, amount, physicalRows); // Hooks by default returns first argument (when there is no callback changing execution result).
636
+ var data = this.instance.runHooks('filterData', index, amount, physicalRows);
696
637
 
638
+ // Hooks by default returns first argument (when there is no callback changing execution result).
697
639
  if (Array.isArray(data) === false) {
698
640
  data = this.dataSource.filter(function (row, rowIndex) {
699
641
  return physicalRows.indexOf(rowIndex) === -1;
700
642
  });
701
643
  }
702
-
703
644
  this.dataSource.length = 0;
704
645
  Array.prototype.push.apply(this.dataSource, data);
705
646
  }
647
+
706
648
  /**
707
649
  * Returns single value from the data array.
708
650
  *
@@ -710,52 +652,47 @@ var DataMap = /*#__PURE__*/function () {
710
652
  * @param {number} prop The column property.
711
653
  * @returns {*}
712
654
  */
713
-
714
655
  }, {
715
656
  key: "get",
716
657
  value: function get(row, prop) {
717
658
  var physicalRow = this.instance.toPhysicalRow(row);
718
- var dataRow = this.dataSource[physicalRow]; // TODO: To remove, use 'modifyData' hook instead (see below)
719
-
659
+ var dataRow = this.dataSource[physicalRow];
660
+ // TODO: To remove, use 'modifyData' hook instead (see below)
720
661
  var modifiedRowData = this.instance.runHooks('modifyRowData', physicalRow);
721
- dataRow = isNaN(modifiedRowData) ? modifiedRowData : dataRow; //
662
+ dataRow = isNaN(modifiedRowData) ? modifiedRowData : dataRow;
663
+ //
722
664
 
723
- var value = null; // try to get value under property `prop` (includes dot)
665
+ var value = null;
724
666
 
667
+ // try to get value under property `prop` (includes dot)
725
668
  if (dataRow && dataRow.hasOwnProperty && (0, _object.hasOwnProperty)(dataRow, prop)) {
726
669
  value = dataRow[prop];
727
670
  } else if (typeof prop === 'string' && prop.indexOf('.') > -1) {
728
671
  var sliced = prop.split('.');
729
672
  var out = dataRow;
730
-
731
673
  if (!out) {
732
674
  return null;
733
675
  }
734
-
735
676
  for (var i = 0, ilen = sliced.length; i < ilen; i++) {
736
677
  out = out[sliced[i]];
737
-
738
678
  if (typeof out === 'undefined') {
739
679
  return null;
740
680
  }
741
681
  }
742
-
743
682
  value = out;
744
683
  } else if (typeof prop === 'function') {
745
684
  value = prop(this.dataSource.slice(physicalRow, physicalRow + 1)[0]);
746
685
  }
747
-
748
686
  if (this.instance.hasHook('modifyData')) {
749
687
  var valueHolder = (0, _object.createObjectPropListener)(value);
750
688
  this.instance.runHooks('modifyData', physicalRow, this.propToCol(prop), valueHolder, 'get');
751
-
752
689
  if (valueHolder.isTouched()) {
753
690
  value = valueHolder.value;
754
691
  }
755
692
  }
756
-
757
693
  return value;
758
694
  }
695
+
759
696
  /**
760
697
  * Returns single value from the data array (intended for clipboard copy to an external application).
761
698
  *
@@ -763,16 +700,15 @@ var DataMap = /*#__PURE__*/function () {
763
700
  * @param {number} prop The column property.
764
701
  * @returns {string}
765
702
  */
766
-
767
703
  }, {
768
704
  key: "getCopyable",
769
705
  value: function getCopyable(row, prop) {
770
706
  if (copyableLookup.call(this.instance, row, this.propToCol(prop))) {
771
707
  return this.get(row, prop);
772
708
  }
773
-
774
709
  return '';
775
710
  }
711
+
776
712
  /**
777
713
  * Saves single value to the data array.
778
714
  *
@@ -780,27 +716,26 @@ var DataMap = /*#__PURE__*/function () {
780
716
  * @param {number} prop The column property.
781
717
  * @param {string} value The value to set.
782
718
  */
783
-
784
719
  }, {
785
720
  key: "set",
786
721
  value: function set(row, prop, value) {
787
722
  var physicalRow = this.instance.toPhysicalRow(row);
788
723
  var newValue = value;
789
- var dataRow = this.dataSource[physicalRow]; // TODO: To remove, use 'modifyData' hook instead (see below)
790
-
724
+ var dataRow = this.dataSource[physicalRow];
725
+ // TODO: To remove, use 'modifyData' hook instead (see below)
791
726
  var modifiedRowData = this.instance.runHooks('modifyRowData', physicalRow);
792
- dataRow = isNaN(modifiedRowData) ? modifiedRowData : dataRow; //
727
+ dataRow = isNaN(modifiedRowData) ? modifiedRowData : dataRow;
728
+ //
793
729
 
794
730
  if (this.instance.hasHook('modifyData')) {
795
731
  var valueHolder = (0, _object.createObjectPropListener)(newValue);
796
732
  this.instance.runHooks('modifyData', physicalRow, this.propToCol(prop), valueHolder, 'set');
797
-
798
733
  if (valueHolder.isTouched()) {
799
734
  newValue = valueHolder.value;
800
735
  }
801
- } // try to set value under property `prop` (includes dot)
802
-
736
+ }
803
737
 
738
+ // try to set value under property `prop` (includes dot)
804
739
  if (dataRow && dataRow.hasOwnProperty && (0, _object.hasOwnProperty)(dataRow, prop)) {
805
740
  dataRow[prop] = newValue;
806
741
  } else if (typeof prop === 'string' && prop.indexOf('.') > -1) {
@@ -808,15 +743,12 @@ var DataMap = /*#__PURE__*/function () {
808
743
  var out = dataRow;
809
744
  var i = 0;
810
745
  var ilen;
811
-
812
746
  for (i = 0, ilen = sliced.length - 1; i < ilen; i++) {
813
747
  if (typeof out[sliced[i]] === 'undefined') {
814
748
  out[sliced[i]] = {};
815
749
  }
816
-
817
750
  out = out[sliced[i]];
818
751
  }
819
-
820
752
  out[sliced[i]] = newValue;
821
753
  } else if (typeof prop === 'function') {
822
754
  prop(this.dataSource.slice(physicalRow, physicalRow + 1)[0], newValue);
@@ -824,6 +756,7 @@ var DataMap = /*#__PURE__*/function () {
824
756
  dataRow[prop] = newValue;
825
757
  }
826
758
  }
759
+
827
760
  /**
828
761
  * This ridiculous piece of code maps rows Id that are present in table data to those displayed for user.
829
762
  * The trick is, the physical row id (stored in settings.data) is not necessary the same
@@ -833,7 +766,6 @@ var DataMap = /*#__PURE__*/function () {
833
766
  * @param {number} amount An amount of rows to translate.
834
767
  * @returns {number}
835
768
  */
836
-
837
769
  }, {
838
770
  key: "visualRowsToPhysical",
839
771
  value: function visualRowsToPhysical(index, amount) {
@@ -842,23 +774,21 @@ var DataMap = /*#__PURE__*/function () {
842
774
  var physicRow = (totalRows + index) % totalRows;
843
775
  var rowsToRemove = amount;
844
776
  var row;
845
-
846
777
  while (physicRow < totalRows && rowsToRemove) {
847
778
  row = this.instance.toPhysicalRow(physicRow);
848
779
  logicRows.push(row);
849
780
  rowsToRemove -= 1;
850
781
  physicRow += 1;
851
782
  }
852
-
853
783
  return logicRows;
854
784
  }
785
+
855
786
  /**
856
787
  *
857
788
  * @param {number} index Visual column index.
858
789
  * @param {number} amount An amount of rows to translate.
859
790
  * @returns {Array}
860
791
  */
861
-
862
792
  }, {
863
793
  key: "visualColumnsToPhysical",
864
794
  value: function visualColumnsToPhysical(index, amount) {
@@ -866,20 +796,18 @@ var DataMap = /*#__PURE__*/function () {
866
796
  var visualCols = [];
867
797
  var physicalCol = (totalCols + index) % totalCols;
868
798
  var colsToRemove = amount;
869
-
870
799
  while (physicalCol < totalCols && colsToRemove) {
871
800
  var col = this.instance.toPhysicalColumn(physicalCol);
872
801
  visualCols.push(col);
873
802
  colsToRemove -= 1;
874
803
  physicalCol += 1;
875
804
  }
876
-
877
805
  return visualCols;
878
806
  }
807
+
879
808
  /**
880
809
  * Clears the data array.
881
810
  */
882
-
883
811
  }, {
884
812
  key: "clear",
885
813
  value: function clear() {
@@ -889,33 +817,31 @@ var DataMap = /*#__PURE__*/function () {
889
817
  }
890
818
  }
891
819
  }
820
+
892
821
  /**
893
822
  * Get data length.
894
823
  *
895
824
  * @returns {number}
896
825
  */
897
-
898
826
  }, {
899
827
  key: "getLength",
900
828
  value: function getLength() {
901
829
  var maxRowsFromSettings = this.tableMeta.maxRows;
902
830
  var maxRows;
903
-
904
831
  if (maxRowsFromSettings < 0 || maxRowsFromSettings === 0) {
905
832
  maxRows = 0;
906
833
  } else {
907
834
  maxRows = maxRowsFromSettings || Infinity;
908
835
  }
909
-
910
836
  var length = this.instance.rowIndexMapper.getNotTrimmedIndexesLength();
911
837
  return Math.min(length, maxRows);
912
838
  }
839
+
913
840
  /**
914
841
  * Returns the data array.
915
842
  *
916
843
  * @returns {Array}
917
844
  */
918
-
919
845
  }, {
920
846
  key: "getAll",
921
847
  value: function getAll() {
@@ -927,24 +853,23 @@ var DataMap = /*#__PURE__*/function () {
927
853
  row: Math.max(this.instance.countRows() - 1, 0),
928
854
  col: Math.max(this.instance.countCols() - 1, 0)
929
855
  };
930
-
931
856
  if (start.row - end.row === 0 && !this.instance.countSourceRows()) {
932
857
  return [];
933
858
  }
934
-
935
859
  return this.getRange(start, end, DataMap.DESTINATION_RENDERER);
936
860
  }
861
+
937
862
  /**
938
863
  * Count the number of columns cached in the `colToProp` cache.
939
864
  *
940
865
  * @returns {number} Amount of cached columns.
941
866
  */
942
-
943
867
  }, {
944
868
  key: "countCachedColumns",
945
869
  value: function countCachedColumns() {
946
870
  return this.colToPropCache.length;
947
871
  }
872
+
948
873
  /**
949
874
  * Returns data range as array.
950
875
  *
@@ -953,7 +878,6 @@ var DataMap = /*#__PURE__*/function () {
953
878
  * @param {number} destination Destination of datamap.get.
954
879
  * @returns {Array}
955
880
  */
956
-
957
881
  }, {
958
882
  key: "getRange",
959
883
  value: function getRange(start, end, destination) {
@@ -963,35 +887,29 @@ var DataMap = /*#__PURE__*/function () {
963
887
  var row;
964
888
  var maxRows = this.tableMeta.maxRows;
965
889
  var maxCols = this.tableMeta.maxCols;
966
-
967
890
  if (maxRows === 0 || maxCols === 0) {
968
891
  return [];
969
892
  }
970
-
971
893
  var getFn = destination === DataMap.DESTINATION_CLIPBOARD_GENERATOR ? this.getCopyable : this.get;
972
894
  var rlen = Math.min(Math.max(maxRows - 1, 0), Math.max(start.row, end.row));
973
895
  var clen = Math.min(Math.max(maxCols - 1, 0), Math.max(start.col, end.col));
974
-
975
896
  for (r = Math.min(start.row, end.row); r <= rlen; r++) {
976
- row = []; // We just store indexes for rows without headers.
977
-
897
+ row = [];
898
+ // We just store indexes for rows without headers.
978
899
  var physicalRow = r >= 0 ? this.instance.toPhysicalRow(r) : r;
979
-
980
900
  for (c = Math.min(start.col, end.col); c <= clen; c++) {
981
901
  if (physicalRow === null) {
982
902
  break;
983
903
  }
984
-
985
904
  row.push(getFn.call(this, r, this.colToProp(c)));
986
905
  }
987
-
988
906
  if (physicalRow !== null) {
989
907
  output.push(row);
990
908
  }
991
909
  }
992
-
993
910
  return output;
994
911
  }
912
+
995
913
  /**
996
914
  * Return data as text (tab separated columns).
997
915
  *
@@ -999,12 +917,12 @@ var DataMap = /*#__PURE__*/function () {
999
917
  * @param {object} [end] End selection position. Visual indexes.
1000
918
  * @returns {string}
1001
919
  */
1002
-
1003
920
  }, {
1004
921
  key: "getText",
1005
922
  value: function getText(start, end) {
1006
923
  return (0, _SheetClip.stringify)(this.getRange(start, end, DataMap.DESTINATION_RENDERER));
1007
924
  }
925
+
1008
926
  /**
1009
927
  * Return data as copyable text (tab separated columns intended for clipboard copy to an external application).
1010
928
  *
@@ -1012,16 +930,15 @@ var DataMap = /*#__PURE__*/function () {
1012
930
  * @param {object} [end] End selection position. Visual indexes.
1013
931
  * @returns {string}
1014
932
  */
1015
-
1016
933
  }, {
1017
934
  key: "getCopyableText",
1018
935
  value: function getCopyableText(start, end) {
1019
936
  return (0, _SheetClip.stringify)(this.getRange(start, end, DataMap.DESTINATION_CLIPBOARD_GENERATOR));
1020
937
  }
938
+
1021
939
  /**
1022
940
  * Destroy instance.
1023
941
  */
1024
-
1025
942
  }, {
1026
943
  key: "destroy",
1027
944
  value: function destroy() {
@@ -1042,19 +959,17 @@ var DataMap = /*#__PURE__*/function () {
1042
959
  function get() {
1043
960
  return 1;
1044
961
  }
962
+
1045
963
  /**
1046
964
  * @type {number}
1047
965
  */
1048
-
1049
966
  }, {
1050
967
  key: "DESTINATION_CLIPBOARD_GENERATOR",
1051
968
  get: function get() {
1052
969
  return 2;
1053
970
  }
1054
971
  }]);
1055
-
1056
972
  return DataMap;
1057
973
  }();
1058
-
1059
974
  var _default = DataMap;
1060
975
  exports.default = _default;