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