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