handsontable 9.0.1 → 11.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (757) hide show
  1. package/3rdparty/autoResize/autoResize.js +2 -0
  2. package/3rdparty/autoResize/autoResize.mjs +1 -0
  3. package/3rdparty/walkontable/src/border.js +3 -1
  4. package/3rdparty/walkontable/src/border.mjs +2 -1
  5. package/3rdparty/walkontable/src/calculator/constants.js +1 -1
  6. package/3rdparty/walkontable/src/calculator/index.js +2 -0
  7. package/3rdparty/walkontable/src/calculator/viewportColumns.d.ts +18 -0
  8. package/3rdparty/walkontable/src/cell/coords.d.ts +16 -0
  9. package/3rdparty/walkontable/src/cell/range.d.ts +51 -0
  10. package/3rdparty/walkontable/src/index.d.ts +1 -0
  11. package/3rdparty/walkontable/src/overlay/bottom.js +3 -3
  12. package/3rdparty/walkontable/src/overlay/bottom.mjs +2 -2
  13. package/3rdparty/walkontable/src/overlay/bottomLeftCorner.js +3 -3
  14. package/3rdparty/walkontable/src/overlay/bottomLeftCorner.mjs +2 -2
  15. package/3rdparty/walkontable/src/overlay/constants.js +1 -1
  16. package/3rdparty/walkontable/src/overlay/index.js +2 -0
  17. package/3rdparty/walkontable/src/overlay/left.js +3 -3
  18. package/3rdparty/walkontable/src/overlay/left.mjs +2 -2
  19. package/3rdparty/walkontable/src/overlay/registerer.js +1 -1
  20. package/3rdparty/walkontable/src/overlay/top.js +3 -3
  21. package/3rdparty/walkontable/src/overlay/top.mjs +2 -2
  22. package/3rdparty/walkontable/src/overlay/topLeftCorner.js +3 -3
  23. package/3rdparty/walkontable/src/overlay/topLeftCorner.mjs +2 -2
  24. package/3rdparty/walkontable/src/overlays.js +2 -0
  25. package/3rdparty/walkontable/src/overlays.mjs +1 -0
  26. package/3rdparty/walkontable/src/renderer/cells.js +1 -1
  27. package/3rdparty/walkontable/src/renderer/cells.mjs +1 -1
  28. package/3rdparty/walkontable/src/renderer/colGroup.js +3 -3
  29. package/3rdparty/walkontable/src/renderer/colGroup.mjs +2 -2
  30. package/3rdparty/walkontable/src/renderer/columnHeaders.js +3 -3
  31. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +2 -2
  32. package/3rdparty/walkontable/src/renderer/rowHeaders.js +1 -1
  33. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +1 -1
  34. package/3rdparty/walkontable/src/renderer/rows.js +3 -3
  35. package/3rdparty/walkontable/src/renderer/rows.mjs +2 -2
  36. package/3rdparty/walkontable/src/selection.js +5 -3
  37. package/3rdparty/walkontable/src/selection.mjs +3 -2
  38. package/3rdparty/walkontable/src/table/bottom.js +3 -3
  39. package/3rdparty/walkontable/src/table/bottom.mjs +2 -2
  40. package/3rdparty/walkontable/src/table/bottomLeftCorner.js +3 -3
  41. package/3rdparty/walkontable/src/table/bottomLeftCorner.mjs +2 -2
  42. package/3rdparty/walkontable/src/table/left.js +3 -3
  43. package/3rdparty/walkontable/src/table/left.mjs +2 -2
  44. package/3rdparty/walkontable/src/table/master.js +3 -3
  45. package/3rdparty/walkontable/src/table/master.mjs +2 -2
  46. package/3rdparty/walkontable/src/table/top.js +3 -3
  47. package/3rdparty/walkontable/src/table/top.mjs +2 -2
  48. package/3rdparty/walkontable/src/table/topLeftCorner.js +3 -3
  49. package/3rdparty/walkontable/src/table/topLeftCorner.mjs +2 -2
  50. package/3rdparty/walkontable/src/table.js +5 -3
  51. package/3rdparty/walkontable/src/table.mjs +3 -2
  52. package/3rdparty/walkontable/src/utils/orderView/constants.js +1 -1
  53. package/3rdparty/walkontable/src/utils/orderView/sharedView.js +3 -3
  54. package/3rdparty/walkontable/src/utils/orderView/sharedView.mjs +2 -2
  55. package/CHANGELOG.md +72 -0
  56. package/LICENSE.txt +19 -22
  57. package/README.md +2 -1
  58. package/base.d.ts +1 -1
  59. package/base.js +16 -3
  60. package/base.mjs +14 -4
  61. package/cellTypes/autocompleteType/autocompleteType.d.ts +17 -0
  62. package/cellTypes/autocompleteType/autocompleteType.js +1 -1
  63. package/cellTypes/autocompleteType/index.d.ts +1 -0
  64. package/cellTypes/base.d.ts +14 -0
  65. package/cellTypes/checkboxType/checkboxType.d.ts +14 -0
  66. package/cellTypes/checkboxType/index.d.ts +1 -0
  67. package/cellTypes/dateType/dateType.d.ts +17 -0
  68. package/cellTypes/dateType/index.d.ts +1 -0
  69. package/cellTypes/dropdownType/dropdownType.d.ts +17 -0
  70. package/cellTypes/dropdownType/index.d.ts +1 -0
  71. package/cellTypes/handsontableType/handsontableType.d.ts +14 -0
  72. package/cellTypes/handsontableType/index.d.ts +1 -0
  73. package/cellTypes/index.d.ts +47 -0
  74. package/cellTypes/index.js +18 -2
  75. package/cellTypes/index.mjs +26 -9
  76. package/cellTypes/numericType/index.d.ts +1 -0
  77. package/cellTypes/numericType/numericType.d.ts +17 -0
  78. package/cellTypes/passwordType/index.d.ts +1 -0
  79. package/cellTypes/passwordType/passwordType.d.ts +14 -0
  80. package/cellTypes/registry.d.ts +18 -0
  81. package/cellTypes/registry.js +2 -2
  82. package/cellTypes/textType/index.d.ts +1 -0
  83. package/cellTypes/textType/textType.d.ts +14 -0
  84. package/cellTypes/timeType/index.d.ts +1 -0
  85. package/cellTypes/timeType/timeType.d.ts +17 -0
  86. package/common.d.ts +74 -0
  87. package/core.d.ts +159 -0
  88. package/core.js +143 -103
  89. package/core.mjs +141 -103
  90. package/{dataMap.js → dataMap/dataMap.js} +37 -35
  91. package/{dataMap.mjs → dataMap/dataMap.mjs} +37 -35
  92. package/dataMap/index.js +5 -1
  93. package/dataMap/index.mjs +3 -2
  94. package/dataMap/metaManager/index.js +54 -6
  95. package/dataMap/metaManager/index.mjs +51 -6
  96. package/dataMap/metaManager/lazyFactoryMap.js +3 -3
  97. package/dataMap/metaManager/lazyFactoryMap.mjs +3 -3
  98. package/dataMap/metaManager/metaLayers/cellMeta.js +2 -0
  99. package/dataMap/metaManager/metaLayers/cellMeta.mjs +1 -0
  100. package/dataMap/metaManager/metaLayers/globalMeta.js +2 -1
  101. package/dataMap/metaManager/metaLayers/globalMeta.mjs +2 -1
  102. package/dataMap/metaManager/metaSchema.js +2331 -871
  103. package/dataMap/metaManager/metaSchema.mjs +2331 -871
  104. package/dataMap/metaManager/mods/dynamicCellMeta.js +136 -0
  105. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +119 -0
  106. package/dataMap/metaManager/utils.js +3 -3
  107. package/dataSource.js +2 -0
  108. package/dataSource.mjs +1 -0
  109. package/dist/handsontable.css +309 -303
  110. package/dist/handsontable.full.css +309 -303
  111. package/dist/handsontable.full.js +50435 -45020
  112. package/dist/handsontable.full.min.css +25 -28
  113. package/dist/handsontable.full.min.js +181 -164
  114. package/dist/handsontable.js +31234 -28030
  115. package/dist/handsontable.min.css +25 -28
  116. package/dist/handsontable.min.js +22 -25
  117. package/editorManager.js +15 -12
  118. package/editorManager.mjs +15 -13
  119. package/editors/autocompleteEditor/autocompleteEditor.d.ts +29 -0
  120. package/editors/autocompleteEditor/autocompleteEditor.js +91 -87
  121. package/editors/autocompleteEditor/autocompleteEditor.mjs +89 -84
  122. package/editors/autocompleteEditor/index.d.ts +1 -0
  123. package/editors/autocompleteEditor/index.js +1 -1
  124. package/editors/baseEditor/baseEditor.d.ts +45 -0
  125. package/editors/baseEditor/baseEditor.js +8 -7
  126. package/editors/baseEditor/baseEditor.mjs +5 -5
  127. package/editors/baseEditor/index.d.ts +1 -0
  128. package/editors/baseEditor/index.js +1 -1
  129. package/editors/checkboxEditor/checkboxEditor.d.ts +12 -0
  130. package/editors/checkboxEditor/checkboxEditor.js +4 -4
  131. package/editors/checkboxEditor/checkboxEditor.mjs +2 -2
  132. package/editors/checkboxEditor/index.d.ts +1 -0
  133. package/editors/checkboxEditor/index.js +1 -1
  134. package/editors/dateEditor/dateEditor.d.ts +18 -0
  135. package/editors/dateEditor/dateEditor.js +20 -20
  136. package/editors/dateEditor/dateEditor.mjs +19 -19
  137. package/editors/dateEditor/index.d.ts +1 -0
  138. package/editors/dateEditor/index.js +1 -1
  139. package/editors/dropdownEditor/dropdownEditor.d.ts +7 -0
  140. package/editors/dropdownEditor/dropdownEditor.js +5 -5
  141. package/editors/dropdownEditor/dropdownEditor.mjs +3 -3
  142. package/editors/dropdownEditor/index.d.ts +1 -0
  143. package/editors/dropdownEditor/index.js +1 -1
  144. package/editors/handsontableEditor/handsontableEditor.d.ts +10 -0
  145. package/editors/handsontableEditor/handsontableEditor.js +4 -4
  146. package/editors/handsontableEditor/handsontableEditor.mjs +3 -3
  147. package/editors/handsontableEditor/index.d.ts +1 -0
  148. package/editors/index.d.ts +53 -0
  149. package/editors/index.js +19 -2
  150. package/editors/index.mjs +28 -10
  151. package/editors/numericEditor/index.d.ts +1 -0
  152. package/editors/numericEditor/numericEditor.d.ts +7 -0
  153. package/editors/numericEditor/numericEditor.js +3 -3
  154. package/editors/numericEditor/numericEditor.mjs +2 -2
  155. package/editors/passwordEditor/index.d.ts +1 -0
  156. package/editors/passwordEditor/passwordEditor.d.ts +7 -0
  157. package/editors/passwordEditor/passwordEditor.js +4 -4
  158. package/editors/passwordEditor/passwordEditor.mjs +3 -3
  159. package/editors/registry.d.ts +29 -0
  160. package/editors/registry.js +2 -2
  161. package/editors/selectEditor/index.d.ts +1 -0
  162. package/editors/selectEditor/selectEditor.d.ts +16 -0
  163. package/editors/selectEditor/selectEditor.js +4 -4
  164. package/editors/selectEditor/selectEditor.mjs +3 -3
  165. package/editors/textEditor/index.d.ts +1 -0
  166. package/editors/textEditor/textEditor.d.ts +24 -0
  167. package/editors/textEditor/textEditor.js +4 -4
  168. package/editors/textEditor/textEditor.mjs +3 -3
  169. package/eventManager.d.ts +13 -0
  170. package/eventManager.js +1 -1
  171. package/handsontable-non-commercial-license.pdf +0 -0
  172. package/helpers/array.d.ts +18 -0
  173. package/helpers/array.js +10 -10
  174. package/helpers/array.mjs +1 -1
  175. package/helpers/browser.d.ts +25 -0
  176. package/helpers/browser.js +11 -9
  177. package/helpers/browser.mjs +1 -0
  178. package/helpers/console.d.ts +4 -0
  179. package/helpers/console.js +2 -2
  180. package/helpers/data.d.ts +13 -0
  181. package/helpers/data.js +7 -35
  182. package/helpers/data.mjs +1 -27
  183. package/helpers/date.d.ts +1 -0
  184. package/helpers/dom/element.d.ts +49 -0
  185. package/helpers/dom/element.js +44 -45
  186. package/helpers/dom/element.mjs +7 -8
  187. package/helpers/dom/event.d.ts +4 -0
  188. package/helpers/dom/event.js +2 -2
  189. package/helpers/dom/index.d.ts +2 -0
  190. package/helpers/feature.d.ts +11 -0
  191. package/helpers/feature.js +6 -6
  192. package/helpers/function.d.ts +10 -0
  193. package/helpers/function.js +43 -5
  194. package/helpers/function.mjs +35 -0
  195. package/helpers/index.d.ts +14 -0
  196. package/helpers/mixed.d.ts +5 -0
  197. package/helpers/mixed.js +5 -5
  198. package/helpers/mixed.mjs +2 -2
  199. package/helpers/number.d.ts +5 -0
  200. package/helpers/number.js +96 -17
  201. package/helpers/number.mjs +85 -17
  202. package/helpers/object.d.ts +16 -0
  203. package/helpers/object.js +11 -11
  204. package/helpers/string.d.ts +7 -0
  205. package/helpers/string.js +4 -4
  206. package/helpers/templateLiteralTag.d.ts +1 -0
  207. package/helpers/unicode.d.ts +73 -0
  208. package/helpers/unicode.js +49 -33
  209. package/helpers/unicode.mjs +44 -27
  210. package/i18n/constants.js +1 -1
  211. package/i18n/index.d.ts +2 -0
  212. package/i18n/index.js +2 -0
  213. package/i18n/languages/de-CH.d.ts +5 -0
  214. package/i18n/languages/de-DE.d.ts +5 -0
  215. package/i18n/languages/en-US.d.ts +5 -0
  216. package/i18n/languages/es-MX.d.ts +5 -0
  217. package/i18n/languages/fr-FR.d.ts +5 -0
  218. package/i18n/languages/index.d.ts +35 -0
  219. package/i18n/languages/it-IT.d.ts +5 -0
  220. package/i18n/languages/ja-JP.d.ts +5 -0
  221. package/i18n/languages/ko-KR.d.ts +5 -0
  222. package/i18n/languages/lv-LV.d.ts +5 -0
  223. package/i18n/languages/nb-NO.d.ts +5 -0
  224. package/i18n/languages/nl-NL.d.ts +5 -0
  225. package/i18n/languages/pl-PL.d.ts +5 -0
  226. package/i18n/languages/pt-BR.d.ts +5 -0
  227. package/i18n/languages/ru-RU.d.ts +5 -0
  228. package/i18n/languages/zh-CN.d.ts +5 -0
  229. package/i18n/languages/zh-TW.d.ts +5 -0
  230. package/i18n/phraseFormatters/index.js +1 -1
  231. package/i18n/registry.d.ts +13 -0
  232. package/i18n/registry.js +4 -4
  233. package/i18n/utils.js +1 -1
  234. package/index.d.ts +516 -0
  235. package/index.js +40 -112
  236. package/index.mjs +17 -90
  237. package/mixins/localHooks.js +17 -14
  238. package/mixins/localHooks.mjs +16 -13
  239. package/package.json +103 -10
  240. package/pluginHooks.d.ts +255 -0
  241. package/pluginHooks.js +132 -57
  242. package/pluginHooks.mjs +131 -57
  243. package/plugins/autoColumnSize/autoColumnSize.d.ts +27 -0
  244. package/plugins/autoColumnSize/autoColumnSize.js +20 -13
  245. package/plugins/autoColumnSize/autoColumnSize.mjs +18 -12
  246. package/plugins/autoColumnSize/index.d.ts +1 -0
  247. package/plugins/autoColumnSize/index.js +1 -1
  248. package/plugins/autoRowSize/autoRowSize.d.ts +27 -0
  249. package/plugins/autoRowSize/autoRowSize.js +22 -14
  250. package/plugins/autoRowSize/autoRowSize.mjs +19 -12
  251. package/plugins/autoRowSize/index.d.ts +1 -0
  252. package/plugins/autoRowSize/index.js +1 -1
  253. package/plugins/autofill/autofill.d.ts +18 -0
  254. package/plugins/autofill/autofill.js +10 -19
  255. package/plugins/autofill/autofill.mjs +7 -16
  256. package/plugins/autofill/index.d.ts +1 -0
  257. package/plugins/autofill/index.js +1 -1
  258. package/plugins/autofill/utils.js +1 -1
  259. package/plugins/base/base.d.ts +21 -0
  260. package/plugins/base/base.js +2 -2
  261. package/plugins/base/base.mjs +1 -1
  262. package/plugins/base/index.d.ts +1 -0
  263. package/plugins/base/index.js +1 -1
  264. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.d.ts +9 -0
  265. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +4 -3
  266. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +3 -2
  267. package/plugins/bindRowsWithHeaders/index.d.ts +1 -0
  268. package/plugins/bindRowsWithHeaders/index.js +1 -1
  269. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.js +4 -4
  270. package/plugins/bindRowsWithHeaders/maps/looseBindsMap.mjs +3 -3
  271. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.js +6 -4
  272. package/plugins/bindRowsWithHeaders/maps/strictBindsMap.mjs +4 -3
  273. package/plugins/collapsibleColumns/collapsibleColumns.d.ts +22 -0
  274. package/plugins/collapsibleColumns/collapsibleColumns.js +13 -6
  275. package/plugins/collapsibleColumns/collapsibleColumns.mjs +11 -5
  276. package/plugins/collapsibleColumns/index.d.ts +1 -0
  277. package/plugins/collapsibleColumns/index.js +1 -1
  278. package/plugins/columnSorting/columnSorting.d.ts +30 -0
  279. package/plugins/columnSorting/columnSorting.js +19 -14
  280. package/plugins/columnSorting/columnSorting.mjs +16 -12
  281. package/plugins/columnSorting/columnStatesManager.js +5 -3
  282. package/plugins/columnSorting/columnStatesManager.mjs +4 -3
  283. package/plugins/columnSorting/index.d.ts +1 -0
  284. package/plugins/columnSorting/index.js +1 -1
  285. package/plugins/columnSorting/rootComparator.js +2 -0
  286. package/plugins/columnSorting/rootComparator.mjs +1 -0
  287. package/plugins/columnSorting/sortFunction/checkbox.js +1 -1
  288. package/plugins/columnSorting/sortFunction/date.js +1 -1
  289. package/plugins/columnSorting/sortFunction/default.js +4 -3
  290. package/plugins/columnSorting/sortFunction/default.mjs +3 -2
  291. package/plugins/columnSorting/sortFunction/numeric.js +1 -1
  292. package/plugins/columnSorting/sortService/engine.js +1 -1
  293. package/plugins/columnSorting/sortService/registry.js +1 -1
  294. package/plugins/columnSorting/utils.js +4 -4
  295. package/plugins/columnSorting/utils.mjs +1 -1
  296. package/plugins/columnSummary/columnSummary.d.ts +72 -0
  297. package/plugins/columnSummary/columnSummary.js +31 -12
  298. package/plugins/columnSummary/columnSummary.mjs +29 -10
  299. package/plugins/columnSummary/endpoints.js +6 -4
  300. package/plugins/columnSummary/endpoints.mjs +5 -4
  301. package/plugins/columnSummary/index.d.ts +1 -0
  302. package/plugins/columnSummary/index.js +1 -1
  303. package/plugins/comments/commentEditor.js +1 -1
  304. package/plugins/comments/commentEditor.mjs +1 -1
  305. package/plugins/comments/comments.d.ts +50 -0
  306. package/plugins/comments/comments.js +11 -6
  307. package/plugins/comments/comments.mjs +10 -5
  308. package/plugins/comments/displaySwitch.js +1 -1
  309. package/plugins/comments/displaySwitch.mjs +1 -1
  310. package/plugins/comments/index.d.ts +1 -0
  311. package/plugins/comments/index.js +1 -1
  312. package/plugins/contextMenu/commandExecutor.js +1 -1
  313. package/plugins/contextMenu/commandExecutor.mjs +1 -1
  314. package/plugins/contextMenu/contextMenu.d.ts +65 -0
  315. package/plugins/contextMenu/contextMenu.js +8 -7
  316. package/plugins/contextMenu/contextMenu.mjs +6 -5
  317. package/plugins/contextMenu/cursor.js +1 -1
  318. package/plugins/contextMenu/cursor.mjs +1 -1
  319. package/plugins/contextMenu/index.d.ts +1 -0
  320. package/plugins/contextMenu/index.js +1 -1
  321. package/plugins/contextMenu/itemsFactory.js +1 -1
  322. package/plugins/contextMenu/itemsFactory.mjs +1 -1
  323. package/plugins/contextMenu/menu.js +4 -4
  324. package/plugins/contextMenu/menu.mjs +3 -3
  325. package/plugins/contextMenu/predefinedItems/alignment.js +1 -1
  326. package/plugins/contextMenu/predefinedItems/clearColumn.js +1 -1
  327. package/plugins/contextMenu/predefinedItems/columnLeft.js +1 -1
  328. package/plugins/contextMenu/predefinedItems/columnRight.js +1 -1
  329. package/plugins/contextMenu/predefinedItems/noItems.js +1 -1
  330. package/plugins/contextMenu/predefinedItems/readOnly.js +1 -1
  331. package/plugins/contextMenu/predefinedItems/redo.js +1 -1
  332. package/plugins/contextMenu/predefinedItems/removeColumn.js +4 -2
  333. package/plugins/contextMenu/predefinedItems/removeColumn.mjs +2 -1
  334. package/plugins/contextMenu/predefinedItems/removeRow.js +4 -2
  335. package/plugins/contextMenu/predefinedItems/removeRow.mjs +2 -1
  336. package/plugins/contextMenu/predefinedItems/rowAbove.js +1 -1
  337. package/plugins/contextMenu/predefinedItems/rowBelow.js +1 -1
  338. package/plugins/contextMenu/predefinedItems/separator.js +1 -1
  339. package/plugins/contextMenu/predefinedItems/undo.js +1 -1
  340. package/plugins/contextMenu/predefinedItems.js +2 -2
  341. package/plugins/contextMenu/utils.js +10 -10
  342. package/plugins/copyPaste/clipboardData.js +3 -0
  343. package/plugins/copyPaste/clipboardData.mjs +3 -0
  344. package/plugins/copyPaste/copyPaste.d.ts +35 -0
  345. package/plugins/copyPaste/copyPaste.js +13 -10
  346. package/plugins/copyPaste/copyPaste.mjs +11 -9
  347. package/plugins/copyPaste/focusableElement.js +1 -2
  348. package/plugins/copyPaste/focusableElement.mjs +1 -2
  349. package/plugins/copyPaste/index.d.ts +1 -0
  350. package/plugins/copyPaste/index.js +1 -1
  351. package/plugins/copyPaste/pasteEvent.js +3 -0
  352. package/plugins/copyPaste/pasteEvent.mjs +3 -0
  353. package/plugins/customBorders/customBorders.d.ts +38 -0
  354. package/plugins/customBorders/customBorders.js +11 -9
  355. package/plugins/customBorders/customBorders.mjs +8 -7
  356. package/plugins/customBorders/index.d.ts +1 -0
  357. package/plugins/customBorders/index.js +1 -1
  358. package/plugins/customBorders/utils.js +3 -3
  359. package/plugins/dragToScroll/dragToScroll.d.ts +15 -0
  360. package/plugins/dragToScroll/dragToScroll.js +5 -5
  361. package/plugins/dragToScroll/dragToScroll.mjs +3 -3
  362. package/plugins/dragToScroll/index.d.ts +1 -0
  363. package/plugins/dragToScroll/index.js +1 -1
  364. package/plugins/dropdownMenu/dropdownMenu.d.ts +24 -0
  365. package/plugins/dropdownMenu/dropdownMenu.js +9 -9
  366. package/plugins/dropdownMenu/dropdownMenu.mjs +7 -7
  367. package/plugins/dropdownMenu/index.d.ts +1 -0
  368. package/plugins/dropdownMenu/index.js +1 -1
  369. package/plugins/exportFile/dataProvider.js +3 -5
  370. package/plugins/exportFile/dataProvider.mjs +3 -5
  371. package/plugins/exportFile/exportFile.d.ts +12 -0
  372. package/plugins/exportFile/exportFile.js +6 -5
  373. package/plugins/exportFile/exportFile.mjs +4 -3
  374. package/plugins/exportFile/index.d.ts +1 -0
  375. package/plugins/exportFile/index.js +1 -1
  376. package/plugins/exportFile/typeFactory.js +2 -1
  377. package/plugins/exportFile/typeFactory.mjs +1 -0
  378. package/plugins/exportFile/types/_base.js +0 -1
  379. package/plugins/exportFile/types/_base.mjs +0 -1
  380. package/plugins/exportFile/types/csv.js +3 -4
  381. package/plugins/exportFile/types/csv.mjs +2 -3
  382. package/plugins/filters/component/_base.js +1 -1
  383. package/plugins/filters/component/_base.mjs +1 -1
  384. package/plugins/filters/component/actionBar.js +4 -4
  385. package/plugins/filters/component/actionBar.mjs +3 -3
  386. package/plugins/filters/component/condition.js +7 -5
  387. package/plugins/filters/component/condition.mjs +5 -4
  388. package/plugins/filters/component/operators.js +4 -4
  389. package/plugins/filters/component/operators.mjs +3 -3
  390. package/plugins/filters/component/value.js +13 -6
  391. package/plugins/filters/component/value.mjs +11 -5
  392. package/plugins/filters/condition/beginsWith.js +5 -3
  393. package/plugins/filters/condition/beginsWith.mjs +3 -2
  394. package/plugins/filters/condition/between.js +4 -2
  395. package/plugins/filters/condition/between.mjs +2 -1
  396. package/plugins/filters/condition/byValue.js +4 -2
  397. package/plugins/filters/condition/byValue.mjs +2 -1
  398. package/plugins/filters/condition/contains.js +5 -3
  399. package/plugins/filters/condition/contains.mjs +3 -2
  400. package/plugins/filters/condition/date/after.js +4 -2
  401. package/plugins/filters/condition/date/after.mjs +2 -1
  402. package/plugins/filters/condition/date/before.js +4 -2
  403. package/plugins/filters/condition/date/before.mjs +2 -1
  404. package/plugins/filters/condition/date/today.js +1 -1
  405. package/plugins/filters/condition/date/tomorrow.js +1 -1
  406. package/plugins/filters/condition/date/yesterday.js +1 -1
  407. package/plugins/filters/condition/empty.js +1 -1
  408. package/plugins/filters/condition/endsWith.js +5 -3
  409. package/plugins/filters/condition/endsWith.mjs +3 -2
  410. package/plugins/filters/condition/equal.js +5 -3
  411. package/plugins/filters/condition/equal.mjs +3 -2
  412. package/plugins/filters/condition/false.js +1 -1
  413. package/plugins/filters/condition/greaterThan.js +4 -2
  414. package/plugins/filters/condition/greaterThan.mjs +2 -1
  415. package/plugins/filters/condition/greaterThanOrEqual.js +4 -2
  416. package/plugins/filters/condition/greaterThanOrEqual.mjs +2 -1
  417. package/plugins/filters/condition/lessThan.js +4 -2
  418. package/plugins/filters/condition/lessThan.mjs +2 -1
  419. package/plugins/filters/condition/lessThanOrEqual.js +4 -2
  420. package/plugins/filters/condition/lessThanOrEqual.mjs +2 -1
  421. package/plugins/filters/condition/none.js +1 -1
  422. package/plugins/filters/condition/notBetween.js +1 -1
  423. package/plugins/filters/condition/notContains.js +1 -1
  424. package/plugins/filters/condition/notEmpty.js +1 -1
  425. package/plugins/filters/condition/notEqual.js +1 -1
  426. package/plugins/filters/condition/true.js +1 -1
  427. package/plugins/filters/conditionCollection.d.ts +32 -0
  428. package/plugins/filters/conditionCollection.js +8 -5
  429. package/plugins/filters/conditionCollection.mjs +6 -4
  430. package/plugins/filters/conditionRegisterer.js +1 -1
  431. package/plugins/filters/conditionUpdateObserver.d.ts +10 -0
  432. package/plugins/filters/conditionUpdateObserver.js +3 -1
  433. package/plugins/filters/conditionUpdateObserver.mjs +2 -1
  434. package/plugins/filters/constants.js +2 -1
  435. package/plugins/filters/constants.mjs +1 -0
  436. package/plugins/filters/dataFilter.js +1 -1
  437. package/plugins/filters/dataFilter.mjs +1 -1
  438. package/plugins/filters/filters.d.ts +56 -0
  439. package/plugins/filters/filters.js +19 -14
  440. package/plugins/filters/filters.mjs +17 -13
  441. package/plugins/filters/index.d.ts +1 -0
  442. package/plugins/filters/index.js +1 -1
  443. package/plugins/filters/logicalOperationRegisterer.js +1 -1
  444. package/plugins/filters/logicalOperations/conjunction.js +3 -3
  445. package/plugins/filters/logicalOperations/conjunction.mjs +1 -0
  446. package/plugins/filters/logicalOperations/disjunction.js +3 -3
  447. package/plugins/filters/logicalOperations/disjunction.mjs +1 -0
  448. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +3 -3
  449. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.mjs +1 -0
  450. package/plugins/filters/ui/_base.js +2 -3
  451. package/plugins/filters/ui/_base.mjs +2 -3
  452. package/plugins/filters/ui/input.js +3 -3
  453. package/plugins/filters/ui/input.mjs +3 -3
  454. package/plugins/filters/ui/link.js +3 -3
  455. package/plugins/filters/ui/link.mjs +3 -3
  456. package/plugins/filters/ui/multipleSelect.js +31 -5
  457. package/plugins/filters/ui/multipleSelect.mjs +30 -5
  458. package/plugins/filters/ui/radioInput.js +3 -3
  459. package/plugins/filters/ui/radioInput.mjs +3 -3
  460. package/plugins/filters/ui/select.js +3 -3
  461. package/plugins/filters/ui/select.mjs +3 -3
  462. package/plugins/filters/utils.js +3 -3
  463. package/plugins/formulas/engine/register.js +3 -3
  464. package/plugins/formulas/engine/settings.js +4 -4
  465. package/plugins/formulas/engine/settings.mjs +2 -3
  466. package/plugins/formulas/formulas.d.ts +31 -0
  467. package/plugins/formulas/formulas.js +286 -89
  468. package/plugins/formulas/formulas.mjs +279 -86
  469. package/plugins/formulas/index.d.ts +1 -0
  470. package/plugins/formulas/index.js +1 -1
  471. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +3 -1
  472. package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +2 -1
  473. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +4 -2
  474. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +2 -1
  475. package/plugins/hiddenColumns/hiddenColumns.d.ts +21 -0
  476. package/plugins/hiddenColumns/hiddenColumns.js +37 -24
  477. package/plugins/hiddenColumns/hiddenColumns.mjs +36 -23
  478. package/plugins/hiddenColumns/index.d.ts +1 -0
  479. package/plugins/hiddenColumns/index.js +1 -1
  480. package/plugins/hiddenRows/contextMenuItem/hideRow.js +3 -1
  481. package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +2 -1
  482. package/plugins/hiddenRows/contextMenuItem/showRow.js +4 -2
  483. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +2 -1
  484. package/plugins/hiddenRows/hiddenRows.d.ts +21 -0
  485. package/plugins/hiddenRows/hiddenRows.js +37 -25
  486. package/plugins/hiddenRows/hiddenRows.mjs +36 -24
  487. package/plugins/hiddenRows/index.d.ts +1 -0
  488. package/plugins/hiddenRows/index.js +1 -1
  489. package/plugins/index.d.ts +111 -0
  490. package/plugins/index.js +98 -58
  491. package/plugins/index.mjs +75 -34
  492. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +3 -1
  493. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +2 -1
  494. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +3 -1
  495. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +2 -1
  496. package/plugins/manualColumnFreeze/index.d.ts +1 -0
  497. package/plugins/manualColumnFreeze/index.js +1 -1
  498. package/plugins/manualColumnFreeze/manualColumnFreeze.d.ts +11 -0
  499. package/plugins/manualColumnFreeze/manualColumnFreeze.js +11 -6
  500. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +10 -5
  501. package/plugins/manualColumnMove/index.d.ts +1 -0
  502. package/plugins/manualColumnMove/index.js +1 -1
  503. package/plugins/manualColumnMove/manualColumnMove.d.ts +14 -0
  504. package/plugins/manualColumnMove/manualColumnMove.js +28 -23
  505. package/plugins/manualColumnMove/manualColumnMove.mjs +27 -22
  506. package/plugins/manualColumnMove/ui/_base.js +1 -1
  507. package/plugins/manualColumnMove/ui/_base.mjs +1 -1
  508. package/plugins/manualColumnMove/ui/backlight.js +4 -4
  509. package/plugins/manualColumnMove/ui/backlight.mjs +3 -3
  510. package/plugins/manualColumnMove/ui/guideline.js +4 -4
  511. package/plugins/manualColumnMove/ui/guideline.mjs +3 -3
  512. package/plugins/manualColumnResize/index.d.ts +1 -0
  513. package/plugins/manualColumnResize/index.js +1 -1
  514. package/plugins/manualColumnResize/manualColumnResize.d.ts +30 -0
  515. package/plugins/manualColumnResize/manualColumnResize.js +7 -6
  516. package/plugins/manualColumnResize/manualColumnResize.mjs +6 -5
  517. package/plugins/manualRowMove/index.d.ts +1 -0
  518. package/plugins/manualRowMove/index.js +1 -1
  519. package/plugins/manualRowMove/manualRowMove.d.ts +14 -0
  520. package/plugins/manualRowMove/manualRowMove.js +25 -22
  521. package/plugins/manualRowMove/manualRowMove.mjs +24 -21
  522. package/plugins/manualRowMove/ui/_base.js +1 -2
  523. package/plugins/manualRowMove/ui/_base.mjs +1 -2
  524. package/plugins/manualRowMove/ui/backlight.js +5 -5
  525. package/plugins/manualRowMove/ui/backlight.mjs +4 -4
  526. package/plugins/manualRowMove/ui/guideline.js +5 -5
  527. package/plugins/manualRowMove/ui/guideline.mjs +4 -4
  528. package/plugins/manualRowResize/index.d.ts +1 -0
  529. package/plugins/manualRowResize/index.js +1 -1
  530. package/plugins/manualRowResize/manualRowResize.d.ts +29 -0
  531. package/plugins/manualRowResize/manualRowResize.js +6 -5
  532. package/plugins/manualRowResize/manualRowResize.mjs +5 -4
  533. package/plugins/mergeCells/calculations/autofill.js +4 -3
  534. package/plugins/mergeCells/calculations/autofill.mjs +3 -3
  535. package/plugins/mergeCells/calculations/selection.js +1 -2
  536. package/plugins/mergeCells/calculations/selection.mjs +1 -2
  537. package/plugins/mergeCells/cellCoords.js +1 -1
  538. package/plugins/mergeCells/cellCoords.mjs +1 -1
  539. package/plugins/mergeCells/cellsCollection.js +5 -3
  540. package/plugins/mergeCells/cellsCollection.mjs +4 -3
  541. package/plugins/mergeCells/index.d.ts +1 -0
  542. package/plugins/mergeCells/index.js +1 -1
  543. package/plugins/mergeCells/mergeCells.d.ts +22 -0
  544. package/plugins/mergeCells/mergeCells.js +7 -4
  545. package/plugins/mergeCells/mergeCells.mjs +5 -3
  546. package/plugins/multiColumnSorting/domHelpers.js +2 -0
  547. package/plugins/multiColumnSorting/domHelpers.mjs +1 -0
  548. package/plugins/multiColumnSorting/index.d.ts +1 -0
  549. package/plugins/multiColumnSorting/index.js +1 -1
  550. package/plugins/multiColumnSorting/multiColumnSorting.d.ts +8 -0
  551. package/plugins/multiColumnSorting/multiColumnSorting.js +11 -8
  552. package/plugins/multiColumnSorting/multiColumnSorting.mjs +9 -6
  553. package/plugins/multiColumnSorting/rootComparator.js +2 -0
  554. package/plugins/multiColumnSorting/rootComparator.mjs +1 -0
  555. package/plugins/multipleSelectionHandles/index.d.ts +1 -0
  556. package/plugins/multipleSelectionHandles/index.js +1 -1
  557. package/plugins/multipleSelectionHandles/multipleSelectionHandles.d.ts +21 -0
  558. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +7 -5
  559. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +5 -3
  560. package/plugins/nestedHeaders/index.d.ts +1 -0
  561. package/plugins/nestedHeaders/index.js +1 -1
  562. package/plugins/nestedHeaders/nestedHeaders.d.ts +17 -0
  563. package/plugins/nestedHeaders/nestedHeaders.js +41 -21
  564. package/plugins/nestedHeaders/nestedHeaders.mjs +38 -19
  565. package/plugins/nestedHeaders/stateManager/headersTree.js +11 -5
  566. package/plugins/nestedHeaders/stateManager/headersTree.mjs +10 -5
  567. package/plugins/nestedHeaders/stateManager/index.js +9 -6
  568. package/plugins/nestedHeaders/stateManager/index.mjs +9 -6
  569. package/plugins/nestedHeaders/stateManager/nodeModifiers/utils/tree.js +1 -1
  570. package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +2 -0
  571. package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +1 -0
  572. package/plugins/nestedHeaders/stateManager/sourceSettings.js +8 -4
  573. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +8 -4
  574. package/plugins/nestedHeaders/utils/ghostTable.js +10 -2
  575. package/plugins/nestedHeaders/utils/ghostTable.mjs +10 -2
  576. package/plugins/nestedRows/data/dataManager.js +40 -14
  577. package/plugins/nestedRows/data/dataManager.mjs +38 -13
  578. package/plugins/nestedRows/index.d.ts +1 -0
  579. package/plugins/nestedRows/index.js +1 -1
  580. package/plugins/nestedRows/nestedRows.d.ts +12 -0
  581. package/plugins/nestedRows/nestedRows.js +48 -34
  582. package/plugins/nestedRows/nestedRows.mjs +43 -32
  583. package/plugins/nestedRows/ui/_base.js +1 -2
  584. package/plugins/nestedRows/ui/_base.mjs +1 -2
  585. package/plugins/nestedRows/ui/collapsing.js +6 -5
  586. package/plugins/nestedRows/ui/collapsing.mjs +4 -4
  587. package/plugins/nestedRows/ui/contextMenu.js +2 -3
  588. package/plugins/nestedRows/ui/contextMenu.mjs +2 -3
  589. package/plugins/nestedRows/ui/headers.js +4 -5
  590. package/plugins/nestedRows/ui/headers.mjs +3 -4
  591. package/plugins/nestedRows/utils/rowMoveController.js +10 -9
  592. package/plugins/nestedRows/utils/rowMoveController.mjs +8 -8
  593. package/plugins/persistentState/index.d.ts +1 -0
  594. package/plugins/persistentState/persistentState.d.ts +13 -0
  595. package/plugins/persistentState/persistentState.js +13 -4
  596. package/plugins/persistentState/persistentState.mjs +12 -3
  597. package/plugins/persistentState/storage.js +1 -1
  598. package/plugins/persistentState/storage.mjs +1 -1
  599. package/plugins/registry.d.ts +9 -0
  600. package/plugins/registry.js +4 -2
  601. package/plugins/registry.mjs +2 -1
  602. package/plugins/search/index.d.ts +1 -0
  603. package/plugins/search/search.d.ts +28 -0
  604. package/plugins/search/search.js +7 -6
  605. package/plugins/search/search.mjs +7 -6
  606. package/plugins/touchScroll/index.d.ts +1 -0
  607. package/plugins/touchScroll/touchScroll.d.ts +13 -0
  608. package/plugins/touchScroll/touchScroll.js +9 -9
  609. package/plugins/touchScroll/touchScroll.mjs +8 -8
  610. package/plugins/trimRows/index.d.ts +1 -0
  611. package/plugins/trimRows/trimRows.d.ts +17 -0
  612. package/plugins/trimRows/trimRows.js +3 -2
  613. package/plugins/trimRows/trimRows.mjs +3 -2
  614. package/plugins/undoRedo/index.d.ts +1 -0
  615. package/plugins/undoRedo/undoRedo.d.ts +49 -0
  616. package/plugins/undoRedo/undoRedo.js +28 -30
  617. package/plugins/undoRedo/undoRedo.mjs +26 -29
  618. package/registry.d.ts +6 -0
  619. package/registry.js +46 -0
  620. package/registry.mjs +27 -0
  621. package/renderers/autocompleteRenderer/autocompleteRenderer.d.ts +5 -0
  622. package/renderers/autocompleteRenderer/autocompleteRenderer.js +1 -1
  623. package/renderers/autocompleteRenderer/index.d.ts +1 -0
  624. package/renderers/base.d.ts +3 -0
  625. package/renderers/baseRenderer/baseRenderer.d.ts +5 -0
  626. package/renderers/baseRenderer/baseRenderer.js +1 -1
  627. package/renderers/baseRenderer/index.d.ts +1 -0
  628. package/renderers/checkboxRenderer/checkboxRenderer.d.ts +5 -0
  629. package/renderers/checkboxRenderer/checkboxRenderer.js +3 -5
  630. package/renderers/checkboxRenderer/checkboxRenderer.mjs +3 -4
  631. package/renderers/checkboxRenderer/index.d.ts +1 -0
  632. package/renderers/htmlRenderer/htmlRenderer.d.ts +5 -0
  633. package/renderers/htmlRenderer/htmlRenderer.js +1 -1
  634. package/renderers/htmlRenderer/index.d.ts +1 -0
  635. package/renderers/index.d.ts +42 -0
  636. package/renderers/index.js +16 -2
  637. package/renderers/index.mjs +22 -7
  638. package/renderers/numericRenderer/index.d.ts +1 -0
  639. package/renderers/numericRenderer/numericRenderer.d.ts +5 -0
  640. package/renderers/numericRenderer/numericRenderer.js +1 -1
  641. package/renderers/passwordRenderer/index.d.ts +1 -0
  642. package/renderers/passwordRenderer/passwordRenderer.d.ts +5 -0
  643. package/renderers/passwordRenderer/passwordRenderer.js +1 -1
  644. package/renderers/registry.d.ts +18 -0
  645. package/renderers/registry.js +3 -2
  646. package/renderers/textRenderer/index.d.ts +1 -0
  647. package/renderers/textRenderer/textRenderer.d.ts +5 -0
  648. package/renderers/textRenderer/textRenderer.js +1 -1
  649. package/selection/highlight/constants.js +1 -1
  650. package/selection/highlight/highlight.js +7 -5
  651. package/selection/highlight/highlight.mjs +5 -4
  652. package/selection/highlight/types/activeHeader.js +2 -0
  653. package/selection/highlight/types/activeHeader.mjs +1 -0
  654. package/selection/highlight/types/area.js +2 -0
  655. package/selection/highlight/types/area.mjs +1 -0
  656. package/selection/highlight/types/cell.js +2 -0
  657. package/selection/highlight/types/cell.mjs +1 -0
  658. package/selection/highlight/types/customSelection.js +2 -0
  659. package/selection/highlight/types/customSelection.mjs +1 -0
  660. package/selection/highlight/types/fill.js +2 -0
  661. package/selection/highlight/types/fill.mjs +1 -0
  662. package/selection/highlight/types/header.js +2 -0
  663. package/selection/highlight/types/header.mjs +1 -0
  664. package/selection/highlight/types/index.js +2 -0
  665. package/selection/highlight/types/index.mjs +1 -0
  666. package/selection/highlight/visualSelection.js +7 -5
  667. package/selection/highlight/visualSelection.mjs +5 -4
  668. package/selection/index.d.ts +5 -0
  669. package/selection/index.js +2 -0
  670. package/selection/mouseEventHandler.js +4 -4
  671. package/selection/mouseEventHandler.mjs +3 -3
  672. package/selection/range.js +5 -5
  673. package/selection/range.mjs +4 -4
  674. package/selection/selection.js +18 -9
  675. package/selection/selection.mjs +17 -9
  676. package/selection/transformation.js +3 -2
  677. package/selection/transformation.mjs +3 -2
  678. package/selection/utils.js +6 -4
  679. package/selection/utils.mjs +3 -2
  680. package/settings.d.ts +208 -0
  681. package/tableView.js +20 -14
  682. package/tableView.mjs +19 -14
  683. package/translations/changesObservable/observable.js +10 -5
  684. package/translations/changesObservable/observable.mjs +10 -5
  685. package/translations/changesObservable/observer.js +6 -1
  686. package/translations/changesObservable/observer.mjs +6 -1
  687. package/translations/changesObservable/utils.js +1 -0
  688. package/translations/changesObservable/utils.mjs +1 -0
  689. package/translations/index.d.ts +1 -0
  690. package/translations/index.js +3 -1
  691. package/translations/indexMapper.d.ts +45 -0
  692. package/translations/indexMapper.js +8 -3
  693. package/translations/indexMapper.mjs +6 -2
  694. package/translations/mapCollections/aggregatedCollection.js +3 -3
  695. package/translations/mapCollections/aggregatedCollection.mjs +2 -2
  696. package/translations/mapCollections/index.js +2 -0
  697. package/translations/mapCollections/mapCollection.js +1 -1
  698. package/translations/maps/hidingMap.js +3 -3
  699. package/translations/maps/hidingMap.mjs +2 -2
  700. package/translations/maps/indexMap.d.ts +10 -0
  701. package/translations/maps/indexesSequence.js +4 -4
  702. package/translations/maps/indexesSequence.mjs +3 -3
  703. package/translations/maps/linkedPhysicalIndexToValueMap.js +4 -2
  704. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +3 -2
  705. package/translations/maps/physicalIndexToValueMap.js +4 -4
  706. package/translations/maps/physicalIndexToValueMap.mjs +3 -3
  707. package/translations/maps/trimmingMap.js +3 -3
  708. package/translations/maps/trimmingMap.mjs +2 -2
  709. package/translations/maps/utils/actionsOnIndexes.js +2 -0
  710. package/translations/maps/utils/actionsOnIndexes.mjs +1 -0
  711. package/translations/maps/utils/indexesSequence.js +2 -0
  712. package/translations/maps/utils/indexesSequence.mjs +1 -0
  713. package/translations/maps/utils/physicallyIndexed.js +2 -0
  714. package/translations/maps/utils/physicallyIndexed.mjs +1 -0
  715. package/utils/dataStructures/priorityMap.js +4 -2
  716. package/utils/dataStructures/priorityMap.mjs +2 -1
  717. package/utils/dataStructures/tree.js +3 -1
  718. package/utils/dataStructures/tree.mjs +1 -0
  719. package/utils/dataStructures/uniqueMap.js +3 -1
  720. package/utils/dataStructures/uniqueMap.mjs +2 -1
  721. package/utils/dataStructures/uniqueSet.js +2 -0
  722. package/utils/dataStructures/uniqueSet.mjs +1 -0
  723. package/utils/ghostTable.js +5 -4
  724. package/utils/ghostTable.mjs +3 -3
  725. package/utils/interval.js +1 -2
  726. package/utils/interval.mjs +0 -1
  727. package/utils/parseTable.d.ts +5 -0
  728. package/utils/parseTable.js +2 -2
  729. package/utils/parseTable.mjs +1 -1
  730. package/utils/rootInstance.js +3 -2
  731. package/utils/samplesGenerator.js +0 -1
  732. package/utils/samplesGenerator.mjs +0 -1
  733. package/utils/staticRegister.js +3 -1
  734. package/utils/staticRegister.mjs +1 -0
  735. package/validators/autocompleteValidator/autocompleteValidator.d.ts +5 -0
  736. package/validators/autocompleteValidator/autocompleteValidator.js +1 -1
  737. package/validators/autocompleteValidator/index.d.ts +1 -0
  738. package/validators/base.d.ts +6 -0
  739. package/validators/dateValidator/dateValidator.d.ts +5 -0
  740. package/validators/dateValidator/dateValidator.js +2 -2
  741. package/validators/dateValidator/index.d.ts +1 -0
  742. package/validators/index.d.ts +33 -0
  743. package/validators/index.js +13 -2
  744. package/validators/index.mjs +16 -4
  745. package/validators/numericValidator/index.d.ts +1 -0
  746. package/validators/numericValidator/numericValidator.d.ts +5 -0
  747. package/validators/numericValidator/numericValidator.js +1 -1
  748. package/validators/registry.d.ts +18 -0
  749. package/validators/registry.js +3 -2
  750. package/validators/timeValidator/index.d.ts +1 -0
  751. package/validators/timeValidator/timeValidator.d.ts +5 -0
  752. package/validators/timeValidator/timeValidator.js +3 -1
  753. package/validators/timeValidator/timeValidator.mjs +1 -0
  754. package/handsontable-general-terms.pdf +0 -0
  755. package/handsontable.d.ts +0 -2616
  756. package/plugins/formulas/autofill.js +0 -180
  757. package/plugins/formulas/autofill.mjs +0 -172
package/core.mjs CHANGED
@@ -4,7 +4,7 @@ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArra
4
4
 
5
5
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
6
6
 
7
- function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
7
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
8
8
 
9
9
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
10
10
 
@@ -12,23 +12,25 @@ import "core-js/modules/es.array.sort.js";
12
12
  import "core-js/modules/es.array.splice.js";
13
13
  import "core-js/modules/es.number.is-integer.js";
14
14
  import "core-js/modules/es.number.constructor.js";
15
+ import "core-js/modules/es.array.slice.js";
16
+ import "core-js/modules/es.array.concat.js";
17
+ import "core-js/modules/es.array.fill.js";
18
+ import "core-js/modules/es.array.map.js";
15
19
  import "core-js/modules/es.regexp.exec.js";
16
20
  import "core-js/modules/es.string.replace.js";
17
- import "core-js/modules/es.array.concat.js";
18
21
  import "core-js/modules/es.array.from.js";
19
22
  import "core-js/modules/es.string.iterator.js";
20
23
  import "core-js/modules/es.array.index-of.js";
21
24
  import "core-js/modules/es.array.reverse.js";
25
+ import "core-js/modules/es.object.to-string.js";
22
26
  import "core-js/modules/web.dom-collections.for-each.js";
23
27
  import "core-js/modules/web.timers.js";
24
28
  import "core-js/modules/web.immediate.js";
25
29
  import "core-js/modules/es.symbol.js";
26
30
  import "core-js/modules/es.symbol.description.js";
27
- import "core-js/modules/es.object.to-string.js";
28
31
  import "core-js/modules/es.symbol.iterator.js";
29
32
  import "core-js/modules/es.array.iterator.js";
30
33
  import "core-js/modules/web.dom-collections.iterator.js";
31
- import "core-js/modules/es.array.slice.js";
32
34
  import "core-js/modules/es.function.name.js";
33
35
 
34
36
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
@@ -49,17 +51,17 @@ import { isDefined, isUndefined, isRegExp, _injectProductInfo, isEmpty } from ".
49
51
  import { isMobileBrowser, isIpadOS } from "./helpers/browser.mjs";
50
52
  import EditorManager from "./editorManager.mjs";
51
53
  import EventManager from "./eventManager.mjs";
52
- import { deepClone, duckSchema, isObjectEqual, deepObjectSize, hasOwnProperty, createObjectPropListener, objectEach } from "./helpers/object.mjs";
53
- import { arrayMap, arrayEach, arrayReduce, getDifferenceOfArrays, stringToArray } from "./helpers/array.mjs";
54
+ import { deepClone, duckSchema, isObjectEqual, isObject, deepObjectSize, hasOwnProperty, createObjectPropListener, objectEach } from "./helpers/object.mjs";
55
+ import { arrayMap, arrayEach, arrayReduce, getDifferenceOfArrays, stringToArray, pivot } from "./helpers/array.mjs";
54
56
  import { instanceToHTML } from "./utils/parseTable.mjs";
55
57
  import { getPlugin, getPluginsNames } from "./plugins/registry.mjs";
56
58
  import { getRenderer } from "./renderers/registry.mjs";
57
59
  import { getValidator } from "./validators/registry.mjs";
58
60
  import { randomString, toUpperCaseFirst } from "./helpers/string.mjs";
59
- import { rangeEach, rangeEachReverse } from "./helpers/number.mjs";
61
+ import { rangeEach, rangeEachReverse, isNumericLike } from "./helpers/number.mjs";
60
62
  import TableView from "./tableView.mjs";
61
63
  import DataSource from "./dataSource.mjs";
62
- import { translateRowsToColumns, cellMethodLookupFactory, spreadsheetColumnLabel } from "./helpers/data.mjs";
64
+ import { cellMethodLookupFactory, spreadsheetColumnLabel } from "./helpers/data.mjs";
63
65
  import { IndexMapper } from "./translations/index.mjs";
64
66
  import { registerAsRootInstance, hasValidParameter, isRootInstance } from "./utils/rootInstance.mjs";
65
67
  import { CellCoords, ViewportColumnsCalculator } from "./3rdparty/walkontable/src/index.mjs";
@@ -68,7 +70,7 @@ import { hasLanguageDictionary, getValidLanguageCode, getTranslatedPhrase } from
68
70
  import { warnUserAboutLanguageRegistration, normalizeLanguageCode } from "./i18n/utils.mjs";
69
71
  import { startObserving as keyStateStartObserving, stopObserving as keyStateStopObserving } from "./utils/keyStateObserver.mjs";
70
72
  import { Selection } from "./selection/index.mjs";
71
- import { MetaManager, DataMap } from "./dataMap/index.mjs";
73
+ import { MetaManager, DynamicCellMetaMod, DataMap } from "./dataMap/index.mjs";
72
74
  import { createUniqueMap } from "./utils/dataStructures/uniqueMap.mjs";
73
75
  var activeGuid = null;
74
76
  /* eslint-disable jsdoc/require-description-complete-sentence */
@@ -79,25 +81,19 @@ var activeGuid = null;
79
81
  * @core
80
82
  * @class Core
81
83
  * @description
82
- * After Handsontable is constructed, you can modify the grid behavior using the available public methods.
83
84
  *
84
- * ## How to call methods.
85
+ * The `Handsontable` class to which we refer as to `Core`, allows you to modify the grid's behavior by using one of the available public methods.
85
86
  *
86
- * These are 2 equal ways to call a Handsontable method:
87
+ * ## How to call a method
87
88
  *
88
89
  * ```js
89
- * // all following examples assume that you constructed Handsontable like this
90
- * const hot = new Handsontable(document.getElementById('example1'), options);
90
+ * // First, let's contruct Handsontable
91
+ * const hot = new Handsontable(document.getElementById('example'), options);
91
92
  *
92
- * // now, to use setDataAtCell method, you can either:
93
+ * // Then, let's use the setDataAtCell method
93
94
  * hot.setDataAtCell(0, 0, 'new value');
94
95
  * ```
95
96
  *
96
- * Alternatively, you can call the method using jQuery wrapper (__obsolete__, requires initialization using our jQuery guide
97
- * ```js
98
- * $('#example1').handsontable('setDataAtCell', 0, 0, 'new value');
99
- * ```
100
- *
101
97
  * @param {HTMLElement} rootElement The element to which the Handsontable instance is injected.
102
98
  * @param {object} userSettings The user defined options.
103
99
  * @param {boolean} [rootInstanceSymbol=false] Indicates if the instance is root of all later instances created.
@@ -116,7 +112,7 @@ export default function Core(rootElement, userSettings) {
116
112
  var editorManager;
117
113
  var firstRun = true;
118
114
  userSettings.language = getValidLanguageCode(userSettings.language);
119
- var metaManager = new MetaManager(userSettings);
115
+ var metaManager = new MetaManager(instance, userSettings, [DynamicCellMetaMod]);
120
116
  var tableMeta = metaManager.getTableMeta();
121
117
  var globalMeta = metaManager.getGlobalMeta();
122
118
  var pluginsRegistry = createUniqueMap();
@@ -401,8 +397,6 @@ export default function Core(rootElement, userSettings) {
401
397
  /**
402
398
  * Inserts or removes rows and columns.
403
399
  *
404
- * @memberof Core#
405
- * @function alter
406
400
  * @private
407
401
  * @param {string} action Possible values: "insert_row", "insert_col", "remove_row", "remove_col".
408
402
  * @param {number|Array} index Row or column visual index which from the alter action will be triggered.
@@ -681,6 +675,8 @@ export default function Core(rootElement, userSettings) {
681
675
 
682
676
  /**
683
677
  * Makes sure there are empty rows at the bottom of the table.
678
+ *
679
+ * @private
684
680
  */
685
681
  adjustRowsAndCols: function adjustRowsAndCols() {
686
682
  var minRows = tableMeta.minRows;
@@ -821,72 +817,91 @@ export default function Core(rootElement, userSettings) {
821
817
  var clen;
822
818
  var setData = [];
823
819
  var current = {};
820
+ var newDataByColumns = [];
821
+ var startRow = start.row;
822
+ var startColumn = start.col;
824
823
  rlen = input.length;
825
824
 
826
825
  if (rlen === 0) {
827
826
  return false;
828
827
  }
829
828
 
830
- var repeatCol;
831
- var repeatRow;
832
- var cmax;
833
- var rmax;
834
- /* eslint-disable no-case-declarations */
835
- // insert data with specified pasteMode method
829
+ var columnsPopulationEnd = 0;
830
+ var rowsPopulationEnd = 0;
831
+
832
+ if (isObject(end)) {
833
+ columnsPopulationEnd = end.col - startColumn + 1;
834
+ rowsPopulationEnd = end.row - startRow + 1;
835
+ } // insert data with specified pasteMode method
836
+
836
837
 
837
838
  switch (method) {
838
839
  case 'shift_down':
839
- repeatCol = end ? end.col - start.col + 1 : 0;
840
- repeatRow = end ? end.row - start.row + 1 : 0; // eslint-disable-next-line no-param-reassign
840
+ // translate data from a list of rows to a list of columns
841
+ var populatedDataByColumns = pivot(input);
842
+ var numberOfDataColumns = populatedDataByColumns.length; // method's argument can extend the range of data population (data would be repeated)
841
843
 
842
- input = translateRowsToColumns(input);
844
+ var numberOfColumnsToPopulate = Math.max(numberOfDataColumns, columnsPopulationEnd);
845
+ var pushedDownDataByRows = instance.getData().slice(startRow); // translate data from a list of rows to a list of columns
843
846
 
844
- for (c = 0, clen = input.length, cmax = Math.max(clen, repeatCol); c < cmax; c++) {
845
- if (c < clen) {
846
- var _instance;
847
+ var pushedDownDataByColumns = pivot(pushedDownDataByRows).slice(startColumn, startColumn + numberOfColumnsToPopulate);
847
848
 
848
- for (r = 0, rlen = input[c].length; r < repeatRow - rlen; r++) {
849
- input[c].push(input[c][r % rlen]);
849
+ for (c = 0; c < numberOfColumnsToPopulate; c += 1) {
850
+ if (c < numberOfDataColumns) {
851
+ for (r = 0, rlen = populatedDataByColumns[c].length; r < rowsPopulationEnd - rlen; r += 1) {
852
+ // repeating data for rows
853
+ populatedDataByColumns[c].push(populatedDataByColumns[c][r % rlen]);
850
854
  }
851
855
 
852
- input[c].unshift(start.col + c, start.row, 0);
853
-
854
- (_instance = instance).spliceCol.apply(_instance, _toConsumableArray(input[c]));
856
+ if (c < pushedDownDataByColumns.length) {
857
+ newDataByColumns.push(populatedDataByColumns[c].concat(pushedDownDataByColumns[c]));
858
+ } else {
859
+ // if before data population, there was no data in the column
860
+ // we fill the required rows' newly-created cells with `null` values
861
+ newDataByColumns.push(populatedDataByColumns[c].concat(new Array(pushedDownDataByRows.length).fill(null)));
862
+ }
855
863
  } else {
856
- var _instance2;
857
-
858
- input[c % clen][0] = start.col + c;
859
-
860
- (_instance2 = instance).spliceCol.apply(_instance2, _toConsumableArray(input[c % clen]));
864
+ // Repeating data for columns.
865
+ newDataByColumns.push(populatedDataByColumns[c % numberOfDataColumns].concat(pushedDownDataByColumns[c]));
861
866
  }
862
867
  }
863
868
 
869
+ instance.populateFromArray(startRow, startColumn, pivot(newDataByColumns));
864
870
  break;
865
871
 
866
872
  case 'shift_right':
867
- repeatCol = end ? end.col - start.col + 1 : 0;
868
- repeatRow = end ? end.row - start.row + 1 : 0;
873
+ var numberOfDataRows = input.length; // method's argument can extend the range of data population (data would be repeated)
869
874
 
870
- for (r = 0, rlen = input.length, rmax = Math.max(rlen, repeatRow); r < rmax; r++) {
871
- if (r < rlen) {
872
- var _instance3;
875
+ var numberOfRowsToPopulate = Math.max(numberOfDataRows, rowsPopulationEnd);
876
+ var pushedRightDataByRows = instance.getData().slice(startRow).map(function (rowData) {
877
+ return rowData.slice(startColumn);
878
+ });
873
879
 
874
- for (c = 0, clen = input[r].length; c < repeatCol - clen; c++) {
880
+ for (r = 0; r < numberOfRowsToPopulate; r += 1) {
881
+ if (r < numberOfDataRows) {
882
+ for (c = 0, clen = input[r].length; c < columnsPopulationEnd - clen; c += 1) {
883
+ // repeating data for rows
875
884
  input[r].push(input[r][c % clen]);
876
885
  }
877
886
 
878
- input[r].unshift(start.row + r, start.col, 0);
887
+ if (r < pushedRightDataByRows.length) {
888
+ for (var i = 0; i < pushedRightDataByRows[r].length; i += 1) {
889
+ input[r].push(pushedRightDataByRows[r][i]);
890
+ }
891
+ } else {
892
+ var _input$r;
879
893
 
880
- (_instance3 = instance).spliceRow.apply(_instance3, _toConsumableArray(input[r]));
894
+ // if before data population, there was no data in the row
895
+ // we fill the required columns' newly-created cells with `null` values
896
+ (_input$r = input[r]).push.apply(_input$r, _toConsumableArray(new Array(pushedRightDataByRows[0].length).fill(null)));
897
+ }
881
898
  } else {
882
- var _instance4;
883
-
884
- input[r % rlen][0] = start.row + r;
885
-
886
- (_instance4 = instance).spliceRow.apply(_instance4, _toConsumableArray(input[r % rlen]));
899
+ // Repeating data for columns.
900
+ input.push(input[r % rlen].slice(0, numberOfRowsToPopulate).concat(pushedRightDataByRows[r]));
887
901
  }
888
902
  }
889
903
 
904
+ instance.populateFromArray(startRow, startColumn, input);
890
905
  break;
891
906
 
892
907
  case 'overwrite':
@@ -1188,10 +1203,6 @@ export default function Core(rootElement, userSettings) {
1188
1203
 
1189
1204
  var waitingForValidator = new ValidatorsQueue();
1190
1205
 
1191
- var isNumericData = function isNumericData(value) {
1192
- return value.length > 0 && /^\s*[+-.]?\s*(?:(?:\d+(?:(\.|,)\d+)?(?:e[+-]?\d+)?)|(?:0x[a-f\d]+))\s*$/.test(value);
1193
- };
1194
-
1195
1206
  waitingForValidator.onQueueEmpty = function (isValid) {
1196
1207
  if (activeEditor && shouldBeCanceled) {
1197
1208
  activeEditor.cancelChanges();
@@ -1212,7 +1223,7 @@ export default function Core(rootElement, userSettings) {
1212
1223
  var col = datamap.propToCol(prop);
1213
1224
  var cellProperties = instance.getCellMeta(row, col);
1214
1225
 
1215
- if (cellProperties.type === 'numeric' && typeof newValue === 'string' && isNumericData(newValue)) {
1226
+ if (cellProperties.type === 'numeric' && typeof newValue === 'string' && isNumericLike(newValue)) {
1216
1227
  changes[i][3] = getParsedNumber(newValue);
1217
1228
  }
1218
1229
  /* eslint-disable no-loop-func */
@@ -1336,6 +1347,8 @@ export default function Core(rootElement, userSettings) {
1336
1347
  /**
1337
1348
  * Validate a single cell.
1338
1349
  *
1350
+ * @memberof Core#
1351
+ * @function validateCell
1339
1352
  * @param {string|number} value The value to validate.
1340
1353
  * @param {object} cellProperties The cell meta which corresponds with the value.
1341
1354
  * @param {Function} callback The callback function.
@@ -1347,6 +1360,8 @@ export default function Core(rootElement, userSettings) {
1347
1360
  var validator = instance.getCellValidator(cellProperties); // the `canBeValidated = false` argument suggests, that the cell passes validation by default.
1348
1361
 
1349
1362
  /**
1363
+ * @private
1364
+ * @function done
1350
1365
  * @param {boolean} valid Indicates if the validation was successful.
1351
1366
  * @param {boolean} [canBeValidated=true] Flag which controls the validation process.
1352
1367
  */
@@ -1596,7 +1611,7 @@ export default function Core(rootElement, userSettings) {
1596
1611
  return grid.populateFromArray(new CellCoords(row, column), input, c, source, method, direction, deltas);
1597
1612
  };
1598
1613
  /**
1599
- * Adds/removes data from the column. This method works the same as Array.splice for arrays (see {@link DataMap#spliceCol}).
1614
+ * Adds/removes data from the column. This method works the same as Array.splice for arrays.
1600
1615
  *
1601
1616
  * @memberof Core#
1602
1617
  * @function spliceCol
@@ -1618,7 +1633,7 @@ export default function Core(rootElement, userSettings) {
1618
1633
  return (_datamap = datamap).spliceCol.apply(_datamap, [column, index, amount].concat(elements));
1619
1634
  };
1620
1635
  /**
1621
- * Adds/removes data from the row. This method works the same as Array.splice for arrays (see {@link DataMap#spliceRow}).
1636
+ * Adds/removes data from the row. This method works the same as Array.splice for arrays.
1622
1637
  *
1623
1638
  * @memberof Core#
1624
1639
  * @function spliceRow
@@ -2281,7 +2296,7 @@ export default function Core(rootElement, userSettings) {
2281
2296
  };
2282
2297
  /**
2283
2298
  * Returns a string value of the selected range. Each column is separated by tab, each row is separated by a new
2284
- * line character (see {@link DataMap#getCopyableText}).
2299
+ * line character.
2285
2300
  *
2286
2301
  * @memberof Core#
2287
2302
  * @function getCopyableText
@@ -2297,7 +2312,7 @@ export default function Core(rootElement, userSettings) {
2297
2312
  return datamap.getCopyableText(new CellCoords(startRow, startCol), new CellCoords(endRow, endCol));
2298
2313
  };
2299
2314
  /**
2300
- * Returns the data's copyable value at specified `row` and `column` index (see {@link DataMap#getCopyable}).
2315
+ * Returns the data's copyable value at specified `row` and `column` index.
2301
2316
  *
2302
2317
  * @memberof Core#
2303
2318
  * @function getCopyableData
@@ -2501,6 +2516,7 @@ export default function Core(rootElement, userSettings) {
2501
2516
 
2502
2517
  instance._refreshBorders(null);
2503
2518
 
2519
+ instance.view.wt.wtOverlays.adjustElementsSize();
2504
2520
  editorManager.unlockEditor();
2505
2521
  }
2506
2522
 
@@ -2561,10 +2577,12 @@ export default function Core(rootElement, userSettings) {
2561
2577
  * @memberof Core#
2562
2578
  * @function alter
2563
2579
  * @param {string} action Possible alter operations:
2564
- * * `'insert_row'`
2565
- * * `'insert_col'`
2566
- * * `'remove_row'`
2567
- * * `'remove_col'`.
2580
+ * <ul>
2581
+ * <li> `'insert_row'` </li>
2582
+ * <li> `'insert_col'` </li>
2583
+ * <li> `'remove_row'` </li>
2584
+ * <li> `'remove_col'` </li>
2585
+ * </ul>.
2568
2586
  * @param {number|number[]} index Visual index of the row/column before which the new row/column will be
2569
2587
  * inserted/removed or an array of arrays in format `[[index, amount],...]`.
2570
2588
  * @param {number} [amount=1] Amount of rows/columns to be inserted or removed.
@@ -2667,7 +2685,7 @@ export default function Core(rootElement, userSettings) {
2667
2685
  return new CellCoords(visualRow, visualColumn);
2668
2686
  };
2669
2687
  /**
2670
- * Returns the property name that corresponds with the given column index (see {@link DataMap#colToProp}).
2688
+ * Returns the property name that corresponds with the given column index.
2671
2689
  * If the data source is an array of arrays, it returns the columns index.
2672
2690
  *
2673
2691
  * @memberof Core#
@@ -2681,7 +2699,7 @@ export default function Core(rootElement, userSettings) {
2681
2699
  return datamap.colToProp(column);
2682
2700
  };
2683
2701
  /**
2684
- * Returns column index that corresponds with the given property (see {@link DataMap#propToCol}).
2702
+ * Returns column index that corresponds with the given property.
2685
2703
  *
2686
2704
  * @memberof Core#
2687
2705
  * @function propToCol
@@ -2775,7 +2793,7 @@ export default function Core(rootElement, userSettings) {
2775
2793
  return datamap.get(row, datamap.colToProp(column));
2776
2794
  };
2777
2795
  /**
2778
- * Returns value at visual `row` and `prop` indexes (see {@link DataMap#get}).
2796
+ * Returns value at visual `row` and `prop` indexes.
2779
2797
  *
2780
2798
  * __Note__: If data is reordered, sorted or trimmed, the currently visible order will be used.
2781
2799
  *
@@ -3001,7 +3019,7 @@ export default function Core(rootElement, userSettings) {
3001
3019
  };
3002
3020
  /**
3003
3021
  * @description
3004
- * Returns a data type defined in the Handsontable settings under the `type` key ([Options#type](https://handsontable.com/docs/Options.html#type)).
3022
+ * Returns a data type defined in the Handsontable settings under the `type` key ({@link Options#type}).
3005
3023
  * If there are cells with different types in the selected range, it returns `'mixed'`.
3006
3024
  *
3007
3025
  * __Note__: If data is reordered, sorted or trimmed, the currently visible order will be used.
@@ -3073,7 +3091,7 @@ export default function Core(rootElement, userSettings) {
3073
3091
  var _ref19 = [this.toPhysicalRow(row), this.toPhysicalColumn(column)],
3074
3092
  physicalRow = _ref19[0],
3075
3093
  physicalColumn = _ref19[1];
3076
- var cachedValue = metaManager.getCellMeta(physicalRow, physicalColumn, key);
3094
+ var cachedValue = metaManager.getCellMetaKeyValue(physicalRow, physicalColumn, key);
3077
3095
  var hookResult = instance.runHooks('beforeRemoveCellMeta', row, column, key, cachedValue);
3078
3096
 
3079
3097
  if (hookResult !== false) {
@@ -3120,6 +3138,8 @@ export default function Core(rootElement, userSettings) {
3120
3138
  });
3121
3139
  });
3122
3140
  }
3141
+
3142
+ instance.render();
3123
3143
  };
3124
3144
  /**
3125
3145
  * Set cell meta data object defined by `prop` to the corresponding params `row` and `column`.
@@ -3213,33 +3233,10 @@ export default function Core(rootElement, userSettings) {
3213
3233
  physicalColumn = column;
3214
3234
  }
3215
3235
 
3216
- var prop = datamap.colToProp(column);
3217
- var cellProperties = metaManager.getCellMeta(physicalRow, physicalColumn); // TODO(perf): Add assigning this props and executing below code only once per table render cycle.
3218
-
3219
- cellProperties.row = physicalRow;
3220
- cellProperties.col = physicalColumn;
3221
- cellProperties.visualRow = row;
3222
- cellProperties.visualCol = column;
3223
- cellProperties.prop = prop;
3224
- cellProperties.instance = instance;
3225
- instance.runHooks('beforeGetCellMeta', row, column, cellProperties); // for `type` added or changed in beforeGetCellMeta
3226
-
3227
- if (instance.hasHook('beforeGetCellMeta') && hasOwnProperty(cellProperties, 'type')) {
3228
- metaManager.updateCellMeta(physicalRow, physicalColumn, {
3229
- type: cellProperties.type
3230
- });
3231
- }
3232
-
3233
- if (cellProperties.cells) {
3234
- var settings = cellProperties.cells(physicalRow, physicalColumn, prop);
3235
-
3236
- if (settings) {
3237
- metaManager.updateCellMeta(physicalRow, physicalColumn, settings);
3238
- }
3239
- }
3240
-
3241
- instance.runHooks('afterGetCellMeta', row, column, cellProperties);
3242
- return cellProperties;
3236
+ return metaManager.getCellMeta(physicalRow, physicalColumn, {
3237
+ visualRow: row,
3238
+ visualColumn: column
3239
+ });
3243
3240
  };
3244
3241
  /**
3245
3242
  * Returns an array of cell meta objects for specified physical row index.
@@ -3713,6 +3710,8 @@ export default function Core(rootElement, userSettings) {
3713
3710
  /**
3714
3711
  * Returns the row height.
3715
3712
  *
3713
+ * Mind that this method is different from the [AutoRowSize](@/api/autoRowSize.md) plugin's [`getRowHeight()`](@/api/autoRowSize.md#getrowheight) method.
3714
+ *
3716
3715
  * @memberof Core#
3717
3716
  * @function getRowHeight
3718
3717
  * @param {number} row Visual row index.
@@ -4527,6 +4526,45 @@ export default function Core(rootElement, userSettings) {
4527
4526
  editorManager.prepareEditor();
4528
4527
  }
4529
4528
  };
4529
+ /**
4530
+ * Check if currently it is RTL direction.
4531
+ *
4532
+ * @private
4533
+ * @memberof Core#
4534
+ * @function isRtl
4535
+ * @returns {boolean} True if RTL.
4536
+ */
4537
+
4538
+
4539
+ this.isRtl = function () {
4540
+ return instance.rootWindow.getComputedStyle(instance.rootElement).direction === 'rtl';
4541
+ };
4542
+ /**
4543
+ * Check if currently it is LTR direction.
4544
+ *
4545
+ * @private
4546
+ * @memberof Core#
4547
+ * @function isLtr
4548
+ * @returns {boolean} True if LTR.
4549
+ */
4550
+
4551
+
4552
+ this.isLtr = function () {
4553
+ return !instance.isRtl();
4554
+ };
4555
+ /**
4556
+ * Returns 1 for LTR; -1 for RTL. Useful for calculations.
4557
+ *
4558
+ * @private
4559
+ * @memberof Core#
4560
+ * @function getDirectionFactor
4561
+ * @returns {number} Returns 1 for LTR; -1 for RTL.
4562
+ */
4563
+
4564
+
4565
+ this.getDirectionFactor = function () {
4566
+ return instance.isLtr() ? 1 : -1;
4567
+ };
4530
4568
 
4531
4569
  getPluginsNames().forEach(function (pluginName) {
4532
4570
  var PluginClass = getPlugin(pluginName);
@@ -39,17 +39,17 @@ require("core-js/modules/es.regexp.exec.js");
39
39
 
40
40
  require("core-js/modules/es.string.split.js");
41
41
 
42
- var _SheetClip = require("./3rdparty/SheetClip");
42
+ var _SheetClip = require("../3rdparty/SheetClip");
43
43
 
44
- var _data = require("./helpers/data");
44
+ var _data = require("../helpers/data");
45
45
 
46
- var _object = require("./helpers/object");
46
+ var _object = require("../helpers/object");
47
47
 
48
- var _array = require("./helpers/array");
48
+ var _array = require("../helpers/array");
49
49
 
50
- var _number = require("./helpers/number");
50
+ var _number = require("../helpers/number");
51
51
 
52
- var _mixed = require("./helpers/mixed");
52
+ var _mixed = require("../helpers/mixed");
53
53
 
54
54
  function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
55
55
 
@@ -60,13 +60,34 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+
60
60
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
61
61
 
62
62
  var copyableLookup = (0, _data.cellMethodLookupFactory)('copyable', false);
63
+ /*
64
+ This class contains open-source contributions covered by the MIT license.
65
+
66
+ 1) In the `createRow` method: Row creation using functional `dataSchema` value
67
+ 2) In the `set` method: Data setting using functional `prop` value
68
+ 3) in the `get` method: Data getting using functional `prop` value
69
+
70
+ The remaining part of this code comment contains the full license text of these contributions.
71
+
72
+ ======
73
+
74
+ The MIT License
75
+
76
+ Copyright 2013 Nicholas Bollweg
77
+
78
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
79
+
80
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
81
+
82
+ 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.
83
+ */
84
+
63
85
  /**
64
86
  * Utility class that gets and saves data from/to the data source using mapping of columns numbers to object property names.
65
87
  *
66
88
  * @todo Refactor arguments of methods getRange, getText to be numbers (not objects).
67
89
  * @todo Remove priv, GridSettings from object constructor.
68
90
  *
69
- * @util
70
91
  * @class DataMap
71
92
  * @private
72
93
  */
@@ -480,18 +501,11 @@ var DataMap = /*#__PURE__*/function () {
480
501
 
481
502
  if (actionWasNotCancelled === false) {
482
503
  return false;
483
- }
504
+ } // List of removed indexes might be changed in the `beforeRemoveRow` hook. There may be new values.
484
505
 
485
- var data = this.dataSource; // List of removed indexes might be changed in the `beforeRemoveRow` hook. There may be new values.
486
506
 
487
507
  var numberOfRemovedIndexes = removedPhysicalIndexes.length;
488
- var newData = this.filterData(rowIndex, numberOfRemovedIndexes, removedPhysicalIndexes);
489
-
490
- if (newData) {
491
- data.length = 0;
492
- Array.prototype.push.apply(data, newData);
493
- } // TODO: Function `removeRow` should validate fully, probably above.
494
-
508
+ this.filterData(rowIndex, numberOfRemovedIndexes, removedPhysicalIndexes); // TODO: Function `removeRow` should validate fully, probably above.
495
509
 
496
510
  if (rowIndex < this.instance.countRows()) {
497
511
  this.instance.rowIndexMapper.removeIndexes(removedPhysicalIndexes);
@@ -672,20 +686,22 @@ var DataMap = /*#__PURE__*/function () {
672
686
  * @param {number} index Visual index of the element to remove.
673
687
  * @param {number} amount Number of rows to add/remove.
674
688
  * @param {number} physicalRows Physical row indexes.
675
- * @returns {Array}
676
689
  */
677
690
 
678
691
  }, {
679
692
  key: "filterData",
680
693
  value: function filterData(index, amount, physicalRows) {
681
- var continueSplicing = this.instance.runHooks('beforeDataFilter', index, amount, physicalRows);
694
+ // Custom data filtering (run as a consequence of calling the below hook) provide an array containing new data.
695
+ var data = this.instance.runHooks('filterData', index, amount, physicalRows); // Hooks by default returns first argument (when there is no callback changing execution result).
682
696
 
683
- if (continueSplicing !== false) {
684
- var newData = this.dataSource.filter(function (row, rowIndex) {
697
+ if (Array.isArray(data) === false) {
698
+ data = this.dataSource.filter(function (row, rowIndex) {
685
699
  return physicalRows.indexOf(rowIndex) === -1;
686
700
  });
687
- return newData;
688
701
  }
702
+
703
+ this.dataSource.length = 0;
704
+ Array.prototype.push.apply(this.dataSource, data);
689
705
  }
690
706
  /**
691
707
  * Returns single value from the data array.
@@ -726,19 +742,6 @@ var DataMap = /*#__PURE__*/function () {
726
742
 
727
743
  value = out;
728
744
  } else if (typeof prop === 'function') {
729
- /**
730
- * Allows for interacting with complex structures, for example
731
- * d3/jQuery getter/setter properties:
732
- *
733
- * {columns: [{
734
- * data: function(row, value){
735
- * if(arguments.length === 1){
736
- * return row.property();
737
- * }
738
- * row.property(value);
739
- * }
740
- * }]}.
741
- */
742
745
  value = prop(this.dataSource.slice(physicalRow, physicalRow + 1)[0]);
743
746
  }
744
747
 
@@ -816,7 +819,6 @@ var DataMap = /*#__PURE__*/function () {
816
819
 
817
820
  out[sliced[i]] = newValue;
818
821
  } else if (typeof prop === 'function') {
819
- /* see the `function` handler in `get` */
820
822
  prop(this.dataSource.slice(physicalRow, physicalRow + 1)[0], newValue);
821
823
  } else {
822
824
  dataRow[prop] = newValue;