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