handsontable 12.1.3 → 12.3.0-next-bb1a7c2-20221208

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