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,5 +1,10 @@
1
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
2
+ 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."); }
3
+ 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); }
4
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
5
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
6
+ 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; }
1
7
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
-
3
8
  import "core-js/modules/es.array.iterator.js";
4
9
  import "core-js/modules/es.map.js";
5
10
  import "core-js/modules/es.object.to-string.js";
@@ -7,24 +12,22 @@ import "core-js/modules/es.string.iterator.js";
7
12
  import "core-js/modules/web.dom-collections.iterator.js";
8
13
  import "core-js/modules/es.number.is-integer.js";
9
14
  import "core-js/modules/es.number.constructor.js";
10
- import "core-js/modules/es.array.concat.js";
11
15
  import "core-js/modules/es.array.splice.js";
12
16
  import "core-js/modules/es.array.sort.js";
13
17
  import "core-js/modules/es.array.slice.js";
18
+ import "core-js/modules/es.array.concat.js";
19
+ import "core-js/modules/web.dom-collections.for-each.js";
14
20
  import "core-js/modules/es.array.filter.js";
15
21
  import "core-js/modules/es.array.index-of.js";
16
- import "core-js/modules/es.regexp.exec.js";
17
- import "core-js/modules/es.string.split.js";
18
22
  import "core-js/modules/es.symbol.js";
19
23
  import "core-js/modules/es.symbol.description.js";
20
24
  import "core-js/modules/es.symbol.iterator.js";
21
-
25
+ import "core-js/modules/es.array.from.js";
26
+ import "core-js/modules/es.function.name.js";
27
+ import "core-js/modules/es.regexp.exec.js";
22
28
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
23
-
24
29
  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); } }
25
-
26
30
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
27
-
28
31
  import { stringify } from "../3rdparty/SheetClip/index.mjs";
29
32
  import { cellMethodLookupFactory, countFirstRowKeys as _countFirstRowKeys } from "../helpers/data.mjs";
30
33
  import { createObjectPropListener, deepClone, deepExtend, deepObjectSize, duckSchema, hasOwnProperty, isObject, objectEach } from "../helpers/object.mjs";
@@ -32,6 +35,7 @@ import { extendArray, to2dArray } from "../helpers/array.mjs";
32
35
  import { rangeEach } from "../helpers/number.mjs";
33
36
  import { isDefined } from "../helpers/mixed.mjs";
34
37
  var copyableLookup = cellMethodLookupFactory('copyable', false);
38
+
35
39
  /*
36
40
  This class contains open-source contributions covered by the MIT license.
37
41
 
@@ -63,7 +67,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
63
67
  * @class DataMap
64
68
  * @private
65
69
  */
66
-
67
70
  var DataMap = /*#__PURE__*/function () {
68
71
  /**
69
72
  * @param {object} instance Instance of Handsontable.
@@ -72,7 +75,6 @@ var DataMap = /*#__PURE__*/function () {
72
75
  */
73
76
  function DataMap(instance, data, tableMeta) {
74
77
  _classCallCheck(this, DataMap);
75
-
76
78
  /**
77
79
  * Instance of {@link Handsontable}.
78
80
  *
@@ -86,62 +88,52 @@ var DataMap = /*#__PURE__*/function () {
86
88
  * @private
87
89
  * @type {TableMeta}
88
90
  */
89
-
90
91
  this.tableMeta = tableMeta;
91
92
  /**
92
93
  * Reference to the original dataset.
93
94
  *
94
95
  * @type {*}
95
96
  */
96
-
97
97
  this.dataSource = data;
98
98
  /**
99
99
  * Generated schema based on the first row from the source data.
100
100
  *
101
101
  * @type {object}
102
102
  */
103
-
104
103
  this.duckSchema = this.dataSource && this.dataSource[0] ? duckSchema(this.dataSource[0]) : {};
105
104
  /**
106
105
  * Cached array of properties to columns.
107
106
  *
108
107
  * @type {Array}
109
108
  */
110
-
111
109
  this.colToPropCache = void 0;
112
110
  /**
113
111
  * Cached map of properties to columns.
114
112
  *
115
113
  * @type {Map}
116
114
  */
117
-
118
115
  this.propToColCache = void 0;
119
116
  this.createMap();
120
117
  }
118
+
121
119
  /**
122
120
  * Generates cache for property to and from column addressation.
123
121
  */
124
-
125
-
126
122
  _createClass(DataMap, [{
127
123
  key: "createMap",
128
124
  value: function createMap() {
129
125
  var schema = this.getSchema();
130
-
131
126
  if (typeof schema === 'undefined') {
132
127
  throw new Error('trying to create `columns` definition but you didn\'t provide `schema` nor `data`');
133
128
  }
134
-
135
129
  var columns = this.tableMeta.columns;
136
130
  var i;
137
131
  this.colToPropCache = [];
138
132
  this.propToColCache = new Map();
139
-
140
133
  if (columns) {
141
134
  var columnsLen = 0;
142
135
  var filteredIndex = 0;
143
136
  var columnsAsFunc = false;
144
-
145
137
  if (typeof columns === 'function') {
146
138
  var schemaLen = deepObjectSize(schema);
147
139
  columnsLen = schemaLen > 0 ? schemaLen : this.countFirstRowKeys();
@@ -150,17 +142,14 @@ var DataMap = /*#__PURE__*/function () {
150
142
  var maxCols = this.tableMeta.maxCols;
151
143
  columnsLen = Math.min(maxCols, columns.length);
152
144
  }
153
-
154
145
  for (i = 0; i < columnsLen; i++) {
155
146
  var column = columnsAsFunc ? columns(i) : columns[i];
156
-
157
147
  if (isObject(column)) {
158
148
  if (typeof column.data !== 'undefined') {
159
149
  var index = columnsAsFunc ? filteredIndex : i;
160
150
  this.colToPropCache[index] = column.data;
161
151
  this.propToColCache.set(column.data, index);
162
152
  }
163
-
164
153
  filteredIndex += 1;
165
154
  }
166
155
  }
@@ -168,17 +157,18 @@ var DataMap = /*#__PURE__*/function () {
168
157
  this.recursiveDuckColumns(schema);
169
158
  }
170
159
  }
160
+
171
161
  /**
172
162
  * Get the amount of physical columns in the first data row.
173
163
  *
174
164
  * @returns {number} Amount of physical columns in the first data row.
175
165
  */
176
-
177
166
  }, {
178
167
  key: "countFirstRowKeys",
179
168
  value: function countFirstRowKeys() {
180
169
  return _countFirstRowKeys(this.dataSource);
181
170
  }
171
+
182
172
  /**
183
173
  * Generates columns' translation cache.
184
174
  *
@@ -187,46 +177,38 @@ var DataMap = /*#__PURE__*/function () {
187
177
  * @param {number} parent The property cache for recursive calls.
188
178
  * @returns {number}
189
179
  */
190
-
191
180
  }, {
192
181
  key: "recursiveDuckColumns",
193
182
  value: function recursiveDuckColumns(schema, lastCol, parent) {
194
183
  var _this = this;
195
-
196
184
  var lastColumn = lastCol;
197
185
  var propertyParent = parent;
198
186
  var prop;
199
-
200
187
  if (typeof lastColumn === 'undefined') {
201
188
  lastColumn = 0;
202
189
  propertyParent = '';
203
190
  }
204
-
205
191
  if (_typeof(schema) === 'object' && !Array.isArray(schema)) {
206
192
  objectEach(schema, function (value, key) {
207
193
  if (value === null) {
208
194
  prop = propertyParent + key;
209
-
210
195
  _this.colToPropCache.push(prop);
211
-
212
196
  _this.propToColCache.set(prop, lastColumn);
213
-
214
197
  lastColumn += 1;
215
198
  } else {
216
199
  lastColumn = _this.recursiveDuckColumns(value, lastColumn, "".concat(key, "."));
217
200
  }
218
201
  });
219
202
  }
220
-
221
203
  return lastColumn;
222
204
  }
205
+
223
206
  /**
224
207
  * Returns property name that corresponds with the given column index.
225
208
  *
226
209
  * @param {string|number} column Visual column index or another passed argument.
227
210
  * @returns {string|number} Column property, physical column index or passed argument.
228
211
  */
229
-
230
212
  }, {
231
213
  key: "colToProp",
232
214
  value: function colToProp(column) {
@@ -235,109 +217,99 @@ var DataMap = /*#__PURE__*/function () {
235
217
  if (Number.isInteger(column) === false) {
236
218
  return column;
237
219
  }
220
+ var physicalColumn = this.instance.toPhysicalColumn(column);
238
221
 
239
- var physicalColumn = this.instance.toPhysicalColumn(column); // Out of range, not visible column index.
240
-
222
+ // Out of range, not visible column index.
241
223
  if (physicalColumn === null) {
242
224
  return column;
243
- } // Cached property.
244
-
225
+ }
245
226
 
227
+ // Cached property.
246
228
  if (this.colToPropCache && isDefined(this.colToPropCache[physicalColumn])) {
247
229
  return this.colToPropCache[physicalColumn];
248
230
  }
249
-
250
231
  return physicalColumn;
251
232
  }
233
+
252
234
  /**
253
235
  * Translates property into visual column index.
254
236
  *
255
237
  * @param {string|number} prop Column property which may be also a physical column index.
256
238
  * @returns {string|number} Visual column index or passed argument.
257
239
  */
258
-
259
240
  }, {
260
241
  key: "propToCol",
261
242
  value: function propToCol(prop) {
262
243
  var cachedPhysicalIndex = this.propToColCache.get(prop);
263
-
264
244
  if (isDefined(cachedPhysicalIndex)) {
265
245
  return this.instance.toVisualColumn(cachedPhysicalIndex);
266
- } // Property may be a physical column index.
267
-
246
+ }
268
247
 
248
+ // Property may be a physical column index.
269
249
  var visualColumn = this.instance.toVisualColumn(prop);
270
-
271
250
  if (visualColumn === null) {
272
251
  return prop;
273
252
  }
274
-
275
253
  return visualColumn;
276
254
  }
255
+
277
256
  /**
278
257
  * Returns data's schema.
279
258
  *
280
259
  * @returns {object}
281
260
  */
282
-
283
261
  }, {
284
262
  key: "getSchema",
285
263
  value: function getSchema() {
286
264
  var schema = this.tableMeta.dataSchema;
287
-
288
265
  if (schema) {
289
266
  if (typeof schema === 'function') {
290
267
  return schema();
291
268
  }
292
-
293
269
  return schema;
294
270
  }
295
-
296
271
  return this.duckSchema;
297
272
  }
273
+
298
274
  /**
299
275
  * Creates row at the bottom of the data array.
300
276
  *
301
277
  * @param {number} [index] Physical index of the row before which the new row will be inserted.
302
278
  * @param {number} [amount=1] An amount of rows to add.
303
- * @param {string} [source] Source of method call.
279
+ * @param {object} [options] Additional options for created rows.
280
+ * @param {string} [options.source] Source of method call.
281
+ * @param {'above'|'below'} [options.mode] Sets where the row is inserted: above or below the passed index.
304
282
  * @fires Hooks#afterCreateRow
305
283
  * @returns {number} Returns number of created rows.
306
284
  */
307
-
308
285
  }, {
309
286
  key: "createRow",
310
287
  value: function createRow(index) {
311
288
  var _this2 = this;
312
-
313
289
  var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
314
- var source = arguments.length > 2 ? arguments[2] : undefined;
290
+ var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
291
+ source = _ref.source,
292
+ _ref$mode = _ref.mode,
293
+ mode = _ref$mode === void 0 ? 'above' : _ref$mode;
315
294
  var sourceRowsCount = this.instance.countSourceRows();
316
295
  var physicalRowIndex = sourceRowsCount;
317
296
  var numberOfCreatedRows = 0;
318
297
  var rowIndex = index;
319
-
320
298
  if (typeof rowIndex !== 'number' || rowIndex >= sourceRowsCount) {
321
299
  rowIndex = sourceRowsCount;
322
300
  }
323
-
324
301
  if (rowIndex < this.instance.countRows()) {
325
302
  physicalRowIndex = this.instance.toPhysicalRow(rowIndex);
326
303
  }
327
-
328
304
  var continueProcess = this.instance.runHooks('beforeCreateRow', rowIndex, amount, source);
329
-
330
305
  if (continueProcess === false || physicalRowIndex === null) {
331
306
  return 0;
332
307
  }
333
-
334
308
  var maxRows = this.tableMeta.maxRows;
335
309
  var columnCount = this.instance.countCols();
336
310
  var rowsToAdd = [];
337
-
338
311
  var _loop = function _loop() {
339
312
  var row = null;
340
-
341
313
  if (_this2.instance.dataType === 'array') {
342
314
  if (_this2.tableMeta.dataSchema) {
343
315
  // Clone template array
@@ -345,7 +317,6 @@ var DataMap = /*#__PURE__*/function () {
345
317
  } else {
346
318
  row = [];
347
319
  /* eslint-disable no-loop-func */
348
-
349
320
  rangeEach(columnCount - 1, function () {
350
321
  return row.push(null);
351
322
  });
@@ -356,67 +327,73 @@ var DataMap = /*#__PURE__*/function () {
356
327
  row = {};
357
328
  deepExtend(row, _this2.getSchema());
358
329
  }
359
-
360
330
  rowsToAdd.push(row);
361
331
  numberOfCreatedRows += 1;
362
332
  };
363
-
364
333
  while (numberOfCreatedRows < amount && sourceRowsCount + numberOfCreatedRows < maxRows) {
365
334
  _loop();
366
335
  }
367
-
368
336
  this.instance.rowIndexMapper.insertIndexes(rowIndex, numberOfCreatedRows);
369
- this.spliceData.apply(this, [physicalRowIndex, 0].concat(rowsToAdd));
370
- this.instance.runHooks('afterCreateRow', rowIndex, numberOfCreatedRows, source);
337
+ if (mode === 'below') {
338
+ physicalRowIndex = Math.min(physicalRowIndex + 1, sourceRowsCount);
339
+ }
340
+ this.spliceData(physicalRowIndex, 0, rowsToAdd);
341
+ var newVisualRowIndex = this.instance.toVisualRow(physicalRowIndex);
342
+ this.instance.runHooks('afterCreateRow', newVisualRowIndex, numberOfCreatedRows, source);
371
343
  this.instance.forceFullRender = true; // used when data was changed
372
344
 
373
- return numberOfCreatedRows;
345
+ return {
346
+ delta: numberOfCreatedRows,
347
+ startPhysicalIndex: physicalRowIndex
348
+ };
374
349
  }
350
+
375
351
  /**
376
352
  * Creates column at the right of the data array.
377
353
  *
378
354
  * @param {number} [index] Visual index of the column before which the new column will be inserted.
379
355
  * @param {number} [amount=1] An amount of columns to add.
380
- * @param {string} [source] Source of method call.
356
+ * @param {object} [options] Additional options for created columns.
357
+ * @param {string} [options.source] Source of method call.
358
+ * @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)
359
+ * the passed index.
381
360
  * @fires Hooks#afterCreateCol
382
361
  * @returns {number} Returns number of created columns.
383
362
  */
384
-
385
363
  }, {
386
364
  key: "createCol",
387
365
  value: function createCol(index) {
388
366
  var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
389
- var source = arguments.length > 2 ? arguments[2] : undefined;
390
-
367
+ var _ref2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
368
+ source = _ref2.source,
369
+ _ref2$mode = _ref2.mode,
370
+ mode = _ref2$mode === void 0 ? 'start' : _ref2$mode;
391
371
  if (!this.instance.isColumnModificationAllowed()) {
392
372
  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.');
393
373
  }
394
-
395
374
  var dataSource = this.dataSource;
396
375
  var maxCols = this.tableMeta.maxCols;
376
+ var countSourceCols = this.instance.countSourceCols();
397
377
  var columnIndex = index;
398
-
399
- if (typeof columnIndex !== 'number' || columnIndex >= this.instance.countSourceCols()) {
400
- columnIndex = this.instance.countSourceCols();
378
+ if (typeof columnIndex !== 'number' || columnIndex >= countSourceCols) {
379
+ columnIndex = countSourceCols;
401
380
  }
402
-
403
381
  var continueProcess = this.instance.runHooks('beforeCreateCol', columnIndex, amount, source);
404
-
405
382
  if (continueProcess === false) {
406
383
  return 0;
407
384
  }
408
-
409
- var physicalColumnIndex = this.instance.countSourceCols();
410
-
385
+ var physicalColumnIndex = countSourceCols;
411
386
  if (columnIndex < this.instance.countCols()) {
412
387
  physicalColumnIndex = this.instance.toPhysicalColumn(columnIndex);
413
388
  }
414
-
415
389
  var numberOfSourceRows = this.instance.countSourceRows();
416
390
  var nrOfColumns = this.instance.countCols();
417
391
  var numberOfCreatedCols = 0;
418
392
  var currentIndex = physicalColumnIndex;
419
-
393
+ if (mode === 'end') {
394
+ currentIndex = Math.min(currentIndex + 1, countSourceCols);
395
+ }
396
+ var startPhysicalIndex = currentIndex;
420
397
  while (numberOfCreatedCols < amount && nrOfColumns < maxCols) {
421
398
  if (typeof columnIndex !== 'number' || columnIndex >= nrOfColumns) {
422
399
  if (numberOfSourceRows > 0) {
@@ -424,7 +401,6 @@ var DataMap = /*#__PURE__*/function () {
424
401
  if (typeof dataSource[row] === 'undefined') {
425
402
  dataSource[row] = [];
426
403
  }
427
-
428
404
  dataSource[row].push(null);
429
405
  }
430
406
  } else {
@@ -435,18 +411,21 @@ var DataMap = /*#__PURE__*/function () {
435
411
  dataSource[_row].splice(currentIndex, 0, null);
436
412
  }
437
413
  }
438
-
439
414
  numberOfCreatedCols += 1;
440
415
  currentIndex += 1;
441
416
  nrOfColumns += 1;
442
417
  }
443
-
444
418
  this.instance.columnIndexMapper.insertIndexes(columnIndex, numberOfCreatedCols);
445
- this.instance.runHooks('afterCreateCol', columnIndex, numberOfCreatedCols, source);
419
+ var newVisualColumnIndex = this.instance.toVisualColumn(startPhysicalIndex);
420
+ this.instance.runHooks('afterCreateCol', newVisualColumnIndex, numberOfCreatedCols, source);
446
421
  this.instance.forceFullRender = true; // used when data was changed
447
422
 
448
- return numberOfCreatedCols;
423
+ return {
424
+ delta: numberOfCreatedCols,
425
+ startPhysicalIndex: startPhysicalIndex
426
+ };
449
427
  }
428
+
450
429
  /**
451
430
  * Removes row from the data array.
452
431
  *
@@ -457,42 +436,42 @@ var DataMap = /*#__PURE__*/function () {
457
436
  * @param {string} [source] Source of method call.
458
437
  * @returns {boolean} Returns `false` when action was cancelled, otherwise `true`.
459
438
  */
460
-
461
439
  }, {
462
440
  key: "removeRow",
463
441
  value: function removeRow(index) {
464
442
  var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
465
443
  var source = arguments.length > 2 ? arguments[2] : undefined;
466
444
  var rowIndex = Number.isInteger(index) ? index : -amount; // -amount = taking indexes from the end.
467
-
468
445
  var removedPhysicalIndexes = this.visualRowsToPhysical(rowIndex, amount);
469
446
  var sourceRowsLength = this.instance.countSourceRows();
470
- rowIndex = (sourceRowsLength + rowIndex) % sourceRowsLength; // It handle also callback from the `NestedRows` plugin. Removing parent node has effect in removing children nodes.
447
+ rowIndex = (sourceRowsLength + rowIndex) % sourceRowsLength;
471
448
 
449
+ // It handle also callback from the `NestedRows` plugin. Removing parent node has effect in removing children nodes.
472
450
  var actionWasNotCancelled = this.instance.runHooks('beforeRemoveRow', rowIndex, removedPhysicalIndexes.length, removedPhysicalIndexes, source);
473
-
474
451
  if (actionWasNotCancelled === false) {
475
452
  return false;
476
- } // List of removed indexes might be changed in the `beforeRemoveRow` hook. There may be new values.
477
-
453
+ }
478
454
 
455
+ // List of removed indexes might be changed in the `beforeRemoveRow` hook. There may be new values.
479
456
  var numberOfRemovedIndexes = removedPhysicalIndexes.length;
480
- this.filterData(rowIndex, numberOfRemovedIndexes, removedPhysicalIndexes); // TODO: Function `removeRow` should validate fully, probably above.
457
+ this.filterData(rowIndex, numberOfRemovedIndexes, removedPhysicalIndexes);
481
458
 
459
+ // TODO: Function `removeRow` should validate fully, probably above.
482
460
  if (rowIndex < this.instance.countRows()) {
483
461
  this.instance.rowIndexMapper.removeIndexes(removedPhysicalIndexes);
484
- var customDefinedColumns = isDefined(this.tableMeta.columns) || isDefined(this.tableMeta.dataSchema); // All rows have been removed. There shouldn't be any columns.
462
+ var customDefinedColumns = isDefined(this.tableMeta.columns) || isDefined(this.tableMeta.dataSchema);
485
463
 
464
+ // All rows have been removed. There shouldn't be any columns.
486
465
  if (this.instance.rowIndexMapper.getNotTrimmedIndexesLength() === 0 && customDefinedColumns === false) {
487
466
  this.instance.columnIndexMapper.setIndexesSequence([]);
488
467
  }
489
468
  }
490
-
491
469
  this.instance.runHooks('afterRemoveRow', rowIndex, numberOfRemovedIndexes, removedPhysicalIndexes, source);
492
470
  this.instance.forceFullRender = true; // used when data was changed
493
471
 
494
472
  return true;
495
473
  }
474
+
496
475
  /**
497
476
  * Removes column from the data array.
498
477
  *
@@ -503,17 +482,14 @@ var DataMap = /*#__PURE__*/function () {
503
482
  * @param {string} [source] Source of method call.
504
483
  * @returns {boolean} Returns `false` when action was cancelled, otherwise `true`.
505
484
  */
506
-
507
485
  }, {
508
486
  key: "removeCol",
509
487
  value: function removeCol(index) {
510
488
  var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
511
489
  var source = arguments.length > 2 ? arguments[2] : undefined;
512
-
513
490
  if (this.instance.dataType === 'object' || this.tableMeta.columns) {
514
491
  throw new Error('cannot remove column with object data source or columns option specified');
515
492
  }
516
-
517
493
  var columnIndex = typeof index !== 'number' ? -amount : index;
518
494
  columnIndex = (this.instance.countCols() + columnIndex) % this.instance.countCols();
519
495
  var logicColumns = this.visualColumnsToPhysical(columnIndex, amount);
@@ -521,21 +497,17 @@ var DataMap = /*#__PURE__*/function () {
521
497
  return b - a;
522
498
  });
523
499
  var actionWasNotCancelled = this.instance.runHooks('beforeRemoveCol', columnIndex, amount, logicColumns, source);
524
-
525
500
  if (actionWasNotCancelled === false) {
526
501
  return false;
527
502
  }
528
-
529
503
  var isTableUniform = true;
530
504
  var removedColumnsCount = descendingLogicColumns.length;
531
505
  var data = this.dataSource;
532
-
533
506
  for (var c = 0; c < removedColumnsCount; c++) {
534
507
  if (isTableUniform && logicColumns[0] !== logicColumns[c] - c) {
535
508
  isTableUniform = false;
536
509
  }
537
510
  }
538
-
539
511
  if (isTableUniform) {
540
512
  for (var r = 0, rlen = this.instance.countSourceRows(); r < rlen; r++) {
541
513
  data[r].splice(logicColumns[0], amount);
@@ -546,22 +518,23 @@ var DataMap = /*#__PURE__*/function () {
546
518
  data[_r].splice(descendingLogicColumns[_c], 1);
547
519
  }
548
520
  }
549
- } // TODO: Function `removeCol` should validate fully, probably above.
550
-
521
+ }
551
522
 
523
+ // TODO: Function `removeCol` should validate fully, probably above.
552
524
  if (columnIndex < this.instance.countCols()) {
553
- this.instance.columnIndexMapper.removeIndexes(logicColumns); // All columns have been removed. There shouldn't be any rows.
525
+ this.instance.columnIndexMapper.removeIndexes(logicColumns);
554
526
 
527
+ // All columns have been removed. There shouldn't be any rows.
555
528
  if (this.instance.columnIndexMapper.getNotTrimmedIndexesLength() === 0) {
556
529
  this.instance.rowIndexMapper.setIndexesSequence([]);
557
530
  }
558
531
  }
559
-
560
532
  this.instance.runHooks('afterRemoveCol', columnIndex, amount, logicColumns, source);
561
533
  this.instance.forceFullRender = true; // used when data was changed
562
534
 
563
535
  return true;
564
536
  }
537
+
565
538
  /**
566
539
  * Add/Removes data from the column.
567
540
  *
@@ -571,31 +544,26 @@ var DataMap = /*#__PURE__*/function () {
571
544
  * @param {Array} [elements] The new columns to add.
572
545
  * @returns {Array} Returns removed portion of columns.
573
546
  */
574
-
575
547
  }, {
576
548
  key: "spliceCol",
577
549
  value: function spliceCol(col, index, amount) {
578
550
  var colData = this.instance.getDataAtCol(col);
579
551
  var removed = colData.slice(index, index + amount);
580
552
  var after = colData.slice(index + amount);
581
-
582
553
  for (var _len = arguments.length, elements = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {
583
554
  elements[_key - 3] = arguments[_key];
584
555
  }
585
-
586
556
  extendArray(elements, after);
587
557
  var i = 0;
588
-
589
558
  while (i < amount) {
590
559
  elements.push(null); // add null in place of removed elements
591
-
592
560
  i += 1;
593
561
  }
594
-
595
562
  to2dArray(elements);
596
563
  this.instance.populateFromArray(index, col, elements, null, null, 'spliceCol');
597
564
  return removed;
598
565
  }
566
+
599
567
  /**
600
568
  * Add/Removes data from the row.
601
569
  *
@@ -605,53 +573,51 @@ var DataMap = /*#__PURE__*/function () {
605
573
  * @param {Array} [elements] The new rows to add.
606
574
  * @returns {Array} Returns removed portion of rows.
607
575
  */
608
-
609
576
  }, {
610
577
  key: "spliceRow",
611
578
  value: function spliceRow(row, index, amount) {
612
579
  var rowData = this.instance.getSourceDataAtRow(row);
613
580
  var removed = rowData.slice(index, index + amount);
614
581
  var after = rowData.slice(index + amount);
615
-
616
582
  for (var _len2 = arguments.length, elements = new Array(_len2 > 3 ? _len2 - 3 : 0), _key2 = 3; _key2 < _len2; _key2++) {
617
583
  elements[_key2 - 3] = arguments[_key2];
618
584
  }
619
-
620
585
  extendArray(elements, after);
621
586
  var i = 0;
622
-
623
587
  while (i < amount) {
624
588
  elements.push(null); // add null in place of removed elements
625
-
626
589
  i += 1;
627
590
  }
628
-
629
591
  this.instance.populateFromArray(row, index, [elements], null, null, 'spliceRow');
630
592
  return removed;
631
593
  }
594
+
632
595
  /**
633
596
  * Add/remove row(s) to/from the data source.
634
597
  *
635
598
  * @param {number} index Physical index of the element to add/remove.
636
- * @param {number} amount Number of rows to add/remove.
637
- * @param {...object} elements Row elements to be added.
599
+ * @param {number} deleteCount Number of rows to remove.
600
+ * @param {Array<object>} elements Row elements to be added.
638
601
  */
639
-
640
602
  }, {
641
603
  key: "spliceData",
642
- value: function spliceData(index, amount) {
643
- for (var _len3 = arguments.length, elements = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {
644
- elements[_key3 - 2] = arguments[_key3];
645
- }
646
-
647
- var continueSplicing = this.instance.runHooks('beforeDataSplice', index, amount, elements);
648
-
604
+ value: function spliceData(index, deleteCount, elements) {
605
+ var _this3 = this;
606
+ var continueSplicing = this.instance.runHooks('beforeDataSplice', index, deleteCount, elements);
649
607
  if (continueSplicing !== false) {
650
- var _this$dataSource;
608
+ var newData = [].concat(_toConsumableArray(this.dataSource.slice(0, index)), _toConsumableArray(elements), _toConsumableArray(this.dataSource.slice(index)));
651
609
 
652
- (_this$dataSource = this.dataSource).splice.apply(_this$dataSource, [index, amount].concat(elements));
610
+ // We try not to change the reference.
611
+ this.dataSource.length = 0;
612
+
613
+ // Pushing to array instead of using `splice`, because Babel changes the code to one that uses the `apply` method.
614
+ // The used method was cause of the problem described within #7840.
615
+ newData.forEach(function (row) {
616
+ return _this3.dataSource.push(row);
617
+ });
653
618
  }
654
619
  }
620
+
655
621
  /**
656
622
  * Filter unwanted data elements from the data source.
657
623
  *
@@ -659,22 +625,22 @@ var DataMap = /*#__PURE__*/function () {
659
625
  * @param {number} amount Number of rows to add/remove.
660
626
  * @param {number} physicalRows Physical row indexes.
661
627
  */
662
-
663
628
  }, {
664
629
  key: "filterData",
665
630
  value: function filterData(index, amount, physicalRows) {
666
631
  // Custom data filtering (run as a consequence of calling the below hook) provide an array containing new data.
667
- var data = this.instance.runHooks('filterData', index, amount, physicalRows); // Hooks by default returns first argument (when there is no callback changing execution result).
632
+ var data = this.instance.runHooks('filterData', index, amount, physicalRows);
668
633
 
634
+ // Hooks by default returns first argument (when there is no callback changing execution result).
669
635
  if (Array.isArray(data) === false) {
670
636
  data = this.dataSource.filter(function (row, rowIndex) {
671
637
  return physicalRows.indexOf(rowIndex) === -1;
672
638
  });
673
639
  }
674
-
675
640
  this.dataSource.length = 0;
676
641
  Array.prototype.push.apply(this.dataSource, data);
677
642
  }
643
+
678
644
  /**
679
645
  * Returns single value from the data array.
680
646
  *
@@ -682,52 +648,47 @@ var DataMap = /*#__PURE__*/function () {
682
648
  * @param {number} prop The column property.
683
649
  * @returns {*}
684
650
  */
685
-
686
651
  }, {
687
652
  key: "get",
688
653
  value: function get(row, prop) {
689
654
  var physicalRow = this.instance.toPhysicalRow(row);
690
- var dataRow = this.dataSource[physicalRow]; // TODO: To remove, use 'modifyData' hook instead (see below)
691
-
655
+ var dataRow = this.dataSource[physicalRow];
656
+ // TODO: To remove, use 'modifyData' hook instead (see below)
692
657
  var modifiedRowData = this.instance.runHooks('modifyRowData', physicalRow);
693
- dataRow = isNaN(modifiedRowData) ? modifiedRowData : dataRow; //
658
+ dataRow = isNaN(modifiedRowData) ? modifiedRowData : dataRow;
659
+ //
694
660
 
695
- var value = null; // try to get value under property `prop` (includes dot)
661
+ var value = null;
696
662
 
663
+ // try to get value under property `prop` (includes dot)
697
664
  if (dataRow && dataRow.hasOwnProperty && hasOwnProperty(dataRow, prop)) {
698
665
  value = dataRow[prop];
699
666
  } else if (typeof prop === 'string' && prop.indexOf('.') > -1) {
700
667
  var sliced = prop.split('.');
701
668
  var out = dataRow;
702
-
703
669
  if (!out) {
704
670
  return null;
705
671
  }
706
-
707
672
  for (var i = 0, ilen = sliced.length; i < ilen; i++) {
708
673
  out = out[sliced[i]];
709
-
710
674
  if (typeof out === 'undefined') {
711
675
  return null;
712
676
  }
713
677
  }
714
-
715
678
  value = out;
716
679
  } else if (typeof prop === 'function') {
717
680
  value = prop(this.dataSource.slice(physicalRow, physicalRow + 1)[0]);
718
681
  }
719
-
720
682
  if (this.instance.hasHook('modifyData')) {
721
683
  var valueHolder = createObjectPropListener(value);
722
684
  this.instance.runHooks('modifyData', physicalRow, this.propToCol(prop), valueHolder, 'get');
723
-
724
685
  if (valueHolder.isTouched()) {
725
686
  value = valueHolder.value;
726
687
  }
727
688
  }
728
-
729
689
  return value;
730
690
  }
691
+
731
692
  /**
732
693
  * Returns single value from the data array (intended for clipboard copy to an external application).
733
694
  *
@@ -735,16 +696,15 @@ var DataMap = /*#__PURE__*/function () {
735
696
  * @param {number} prop The column property.
736
697
  * @returns {string}
737
698
  */
738
-
739
699
  }, {
740
700
  key: "getCopyable",
741
701
  value: function getCopyable(row, prop) {
742
702
  if (copyableLookup.call(this.instance, row, this.propToCol(prop))) {
743
703
  return this.get(row, prop);
744
704
  }
745
-
746
705
  return '';
747
706
  }
707
+
748
708
  /**
749
709
  * Saves single value to the data array.
750
710
  *
@@ -752,27 +712,26 @@ var DataMap = /*#__PURE__*/function () {
752
712
  * @param {number} prop The column property.
753
713
  * @param {string} value The value to set.
754
714
  */
755
-
756
715
  }, {
757
716
  key: "set",
758
717
  value: function set(row, prop, value) {
759
718
  var physicalRow = this.instance.toPhysicalRow(row);
760
719
  var newValue = value;
761
- var dataRow = this.dataSource[physicalRow]; // TODO: To remove, use 'modifyData' hook instead (see below)
762
-
720
+ var dataRow = this.dataSource[physicalRow];
721
+ // TODO: To remove, use 'modifyData' hook instead (see below)
763
722
  var modifiedRowData = this.instance.runHooks('modifyRowData', physicalRow);
764
- dataRow = isNaN(modifiedRowData) ? modifiedRowData : dataRow; //
723
+ dataRow = isNaN(modifiedRowData) ? modifiedRowData : dataRow;
724
+ //
765
725
 
766
726
  if (this.instance.hasHook('modifyData')) {
767
727
  var valueHolder = createObjectPropListener(newValue);
768
728
  this.instance.runHooks('modifyData', physicalRow, this.propToCol(prop), valueHolder, 'set');
769
-
770
729
  if (valueHolder.isTouched()) {
771
730
  newValue = valueHolder.value;
772
731
  }
773
- } // try to set value under property `prop` (includes dot)
774
-
732
+ }
775
733
 
734
+ // try to set value under property `prop` (includes dot)
776
735
  if (dataRow && dataRow.hasOwnProperty && hasOwnProperty(dataRow, prop)) {
777
736
  dataRow[prop] = newValue;
778
737
  } else if (typeof prop === 'string' && prop.indexOf('.') > -1) {
@@ -780,15 +739,12 @@ var DataMap = /*#__PURE__*/function () {
780
739
  var out = dataRow;
781
740
  var i = 0;
782
741
  var ilen;
783
-
784
742
  for (i = 0, ilen = sliced.length - 1; i < ilen; i++) {
785
743
  if (typeof out[sliced[i]] === 'undefined') {
786
744
  out[sliced[i]] = {};
787
745
  }
788
-
789
746
  out = out[sliced[i]];
790
747
  }
791
-
792
748
  out[sliced[i]] = newValue;
793
749
  } else if (typeof prop === 'function') {
794
750
  prop(this.dataSource.slice(physicalRow, physicalRow + 1)[0], newValue);
@@ -796,6 +752,7 @@ var DataMap = /*#__PURE__*/function () {
796
752
  dataRow[prop] = newValue;
797
753
  }
798
754
  }
755
+
799
756
  /**
800
757
  * This ridiculous piece of code maps rows Id that are present in table data to those displayed for user.
801
758
  * The trick is, the physical row id (stored in settings.data) is not necessary the same
@@ -805,7 +762,6 @@ var DataMap = /*#__PURE__*/function () {
805
762
  * @param {number} amount An amount of rows to translate.
806
763
  * @returns {number}
807
764
  */
808
-
809
765
  }, {
810
766
  key: "visualRowsToPhysical",
811
767
  value: function visualRowsToPhysical(index, amount) {
@@ -814,23 +770,21 @@ var DataMap = /*#__PURE__*/function () {
814
770
  var physicRow = (totalRows + index) % totalRows;
815
771
  var rowsToRemove = amount;
816
772
  var row;
817
-
818
773
  while (physicRow < totalRows && rowsToRemove) {
819
774
  row = this.instance.toPhysicalRow(physicRow);
820
775
  logicRows.push(row);
821
776
  rowsToRemove -= 1;
822
777
  physicRow += 1;
823
778
  }
824
-
825
779
  return logicRows;
826
780
  }
781
+
827
782
  /**
828
783
  *
829
784
  * @param {number} index Visual column index.
830
785
  * @param {number} amount An amount of rows to translate.
831
786
  * @returns {Array}
832
787
  */
833
-
834
788
  }, {
835
789
  key: "visualColumnsToPhysical",
836
790
  value: function visualColumnsToPhysical(index, amount) {
@@ -838,20 +792,18 @@ var DataMap = /*#__PURE__*/function () {
838
792
  var visualCols = [];
839
793
  var physicalCol = (totalCols + index) % totalCols;
840
794
  var colsToRemove = amount;
841
-
842
795
  while (physicalCol < totalCols && colsToRemove) {
843
796
  var col = this.instance.toPhysicalColumn(physicalCol);
844
797
  visualCols.push(col);
845
798
  colsToRemove -= 1;
846
799
  physicalCol += 1;
847
800
  }
848
-
849
801
  return visualCols;
850
802
  }
803
+
851
804
  /**
852
805
  * Clears the data array.
853
806
  */
854
-
855
807
  }, {
856
808
  key: "clear",
857
809
  value: function clear() {
@@ -861,33 +813,31 @@ var DataMap = /*#__PURE__*/function () {
861
813
  }
862
814
  }
863
815
  }
816
+
864
817
  /**
865
818
  * Get data length.
866
819
  *
867
820
  * @returns {number}
868
821
  */
869
-
870
822
  }, {
871
823
  key: "getLength",
872
824
  value: function getLength() {
873
825
  var maxRowsFromSettings = this.tableMeta.maxRows;
874
826
  var maxRows;
875
-
876
827
  if (maxRowsFromSettings < 0 || maxRowsFromSettings === 0) {
877
828
  maxRows = 0;
878
829
  } else {
879
830
  maxRows = maxRowsFromSettings || Infinity;
880
831
  }
881
-
882
832
  var length = this.instance.rowIndexMapper.getNotTrimmedIndexesLength();
883
833
  return Math.min(length, maxRows);
884
834
  }
835
+
885
836
  /**
886
837
  * Returns the data array.
887
838
  *
888
839
  * @returns {Array}
889
840
  */
890
-
891
841
  }, {
892
842
  key: "getAll",
893
843
  value: function getAll() {
@@ -899,24 +849,23 @@ var DataMap = /*#__PURE__*/function () {
899
849
  row: Math.max(this.instance.countRows() - 1, 0),
900
850
  col: Math.max(this.instance.countCols() - 1, 0)
901
851
  };
902
-
903
852
  if (start.row - end.row === 0 && !this.instance.countSourceRows()) {
904
853
  return [];
905
854
  }
906
-
907
855
  return this.getRange(start, end, DataMap.DESTINATION_RENDERER);
908
856
  }
857
+
909
858
  /**
910
859
  * Count the number of columns cached in the `colToProp` cache.
911
860
  *
912
861
  * @returns {number} Amount of cached columns.
913
862
  */
914
-
915
863
  }, {
916
864
  key: "countCachedColumns",
917
865
  value: function countCachedColumns() {
918
866
  return this.colToPropCache.length;
919
867
  }
868
+
920
869
  /**
921
870
  * Returns data range as array.
922
871
  *
@@ -925,7 +874,6 @@ var DataMap = /*#__PURE__*/function () {
925
874
  * @param {number} destination Destination of datamap.get.
926
875
  * @returns {Array}
927
876
  */
928
-
929
877
  }, {
930
878
  key: "getRange",
931
879
  value: function getRange(start, end, destination) {
@@ -935,35 +883,29 @@ var DataMap = /*#__PURE__*/function () {
935
883
  var row;
936
884
  var maxRows = this.tableMeta.maxRows;
937
885
  var maxCols = this.tableMeta.maxCols;
938
-
939
886
  if (maxRows === 0 || maxCols === 0) {
940
887
  return [];
941
888
  }
942
-
943
889
  var getFn = destination === DataMap.DESTINATION_CLIPBOARD_GENERATOR ? this.getCopyable : this.get;
944
890
  var rlen = Math.min(Math.max(maxRows - 1, 0), Math.max(start.row, end.row));
945
891
  var clen = Math.min(Math.max(maxCols - 1, 0), Math.max(start.col, end.col));
946
-
947
892
  for (r = Math.min(start.row, end.row); r <= rlen; r++) {
948
- row = []; // We just store indexes for rows without headers.
949
-
893
+ row = [];
894
+ // We just store indexes for rows without headers.
950
895
  var physicalRow = r >= 0 ? this.instance.toPhysicalRow(r) : r;
951
-
952
896
  for (c = Math.min(start.col, end.col); c <= clen; c++) {
953
897
  if (physicalRow === null) {
954
898
  break;
955
899
  }
956
-
957
900
  row.push(getFn.call(this, r, this.colToProp(c)));
958
901
  }
959
-
960
902
  if (physicalRow !== null) {
961
903
  output.push(row);
962
904
  }
963
905
  }
964
-
965
906
  return output;
966
907
  }
908
+
967
909
  /**
968
910
  * Return data as text (tab separated columns).
969
911
  *
@@ -971,12 +913,12 @@ var DataMap = /*#__PURE__*/function () {
971
913
  * @param {object} [end] End selection position. Visual indexes.
972
914
  * @returns {string}
973
915
  */
974
-
975
916
  }, {
976
917
  key: "getText",
977
918
  value: function getText(start, end) {
978
919
  return stringify(this.getRange(start, end, DataMap.DESTINATION_RENDERER));
979
920
  }
921
+
980
922
  /**
981
923
  * Return data as copyable text (tab separated columns intended for clipboard copy to an external application).
982
924
  *
@@ -984,16 +926,15 @@ var DataMap = /*#__PURE__*/function () {
984
926
  * @param {object} [end] End selection position. Visual indexes.
985
927
  * @returns {string}
986
928
  */
987
-
988
929
  }, {
989
930
  key: "getCopyableText",
990
931
  value: function getCopyableText(start, end) {
991
932
  return stringify(this.getRange(start, end, DataMap.DESTINATION_CLIPBOARD_GENERATOR));
992
933
  }
934
+
993
935
  /**
994
936
  * Destroy instance.
995
937
  */
996
-
997
938
  }, {
998
939
  key: "destroy",
999
940
  value: function destroy() {
@@ -1014,18 +955,16 @@ var DataMap = /*#__PURE__*/function () {
1014
955
  function get() {
1015
956
  return 1;
1016
957
  }
958
+
1017
959
  /**
1018
960
  * @type {number}
1019
961
  */
1020
-
1021
962
  }, {
1022
963
  key: "DESTINATION_CLIPBOARD_GENERATOR",
1023
964
  get: function get() {
1024
965
  return 2;
1025
966
  }
1026
967
  }]);
1027
-
1028
968
  return DataMap;
1029
969
  }();
1030
-
1031
970
  export default DataMap;