handsontable 14.0.0 → 14.1.0-next-ba8c2b0-20240110

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (350) hide show
  1. package/3rdparty/walkontable/src/calculator/index.js +11 -6
  2. package/3rdparty/walkontable/src/calculator/index.mjs +5 -3
  3. package/3rdparty/walkontable/src/calculator/renderAllColumns.js +50 -0
  4. package/3rdparty/walkontable/src/calculator/renderAllColumns.mjs +46 -0
  5. package/3rdparty/walkontable/src/calculator/renderAllRows.js +50 -0
  6. package/3rdparty/walkontable/src/calculator/renderAllRows.mjs +46 -0
  7. package/3rdparty/walkontable/src/calculator/viewportColumns.js +3 -124
  8. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +4 -126
  9. package/3rdparty/walkontable/src/calculator/viewportRows.js +3 -3
  10. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +4 -5
  11. package/3rdparty/walkontable/src/cell/coords.d.ts +5 -5
  12. package/3rdparty/walkontable/src/cell/coords.js +2 -2
  13. package/3rdparty/walkontable/src/cell/coords.mjs +2 -2
  14. package/3rdparty/walkontable/src/cell/range.d.ts +5 -5
  15. package/3rdparty/walkontable/src/cell/range.js +16 -41
  16. package/3rdparty/walkontable/src/cell/range.mjs +16 -41
  17. package/3rdparty/walkontable/src/core/_base.js +2 -14
  18. package/3rdparty/walkontable/src/core/_base.mjs +2 -14
  19. package/3rdparty/walkontable/src/core/clone.js +2 -2
  20. package/3rdparty/walkontable/src/core/clone.mjs +2 -2
  21. package/3rdparty/walkontable/src/core/core.js +0 -2
  22. package/3rdparty/walkontable/src/core/core.mjs +0 -2
  23. package/3rdparty/walkontable/src/facade/core.js +0 -9
  24. package/3rdparty/walkontable/src/facade/core.mjs +0 -9
  25. package/3rdparty/walkontable/src/filter/column.js +2 -2
  26. package/3rdparty/walkontable/src/filter/column.mjs +2 -2
  27. package/3rdparty/walkontable/src/filter/row.js +2 -2
  28. package/3rdparty/walkontable/src/filter/row.mjs +2 -2
  29. package/3rdparty/walkontable/src/index.js +3 -4
  30. package/3rdparty/walkontable/src/index.mjs +1 -2
  31. package/3rdparty/walkontable/src/overlay/_base.js +2 -2
  32. package/3rdparty/walkontable/src/overlay/_base.mjs +2 -2
  33. package/3rdparty/walkontable/src/overlay/bottom.js +2 -2
  34. package/3rdparty/walkontable/src/overlay/bottom.mjs +2 -2
  35. package/3rdparty/walkontable/src/overlay/top.js +2 -2
  36. package/3rdparty/walkontable/src/overlay/top.mjs +2 -2
  37. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +2 -2
  38. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +2 -2
  39. package/3rdparty/walkontable/src/overlays.js +2 -5
  40. package/3rdparty/walkontable/src/overlays.mjs +2 -6
  41. package/3rdparty/walkontable/src/renderer/_base.js +2 -2
  42. package/3rdparty/walkontable/src/renderer/_base.mjs +2 -2
  43. package/3rdparty/walkontable/src/renderer/cells.js +2 -2
  44. package/3rdparty/walkontable/src/renderer/cells.mjs +2 -2
  45. package/3rdparty/walkontable/src/renderer/colGroup.js +10 -0
  46. package/3rdparty/walkontable/src/renderer/colGroup.mjs +10 -0
  47. package/3rdparty/walkontable/src/renderer/rowHeaders.js +2 -2
  48. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +2 -2
  49. package/3rdparty/walkontable/src/renderer/rows.js +6 -5
  50. package/3rdparty/walkontable/src/renderer/rows.mjs +6 -5
  51. package/3rdparty/walkontable/src/renderer/table.js +2 -2
  52. package/3rdparty/walkontable/src/renderer/table.mjs +2 -2
  53. package/3rdparty/walkontable/src/scroll.js +4 -60
  54. package/3rdparty/walkontable/src/scroll.mjs +4 -60
  55. package/3rdparty/walkontable/src/selection/manager.js +0 -1
  56. package/3rdparty/walkontable/src/selection/manager.mjs +0 -1
  57. package/3rdparty/walkontable/src/settings.js +5 -2
  58. package/3rdparty/walkontable/src/settings.mjs +4 -2
  59. package/3rdparty/walkontable/src/table.js +2 -3
  60. package/3rdparty/walkontable/src/table.mjs +2 -3
  61. package/3rdparty/walkontable/src/utils/column.js +29 -14
  62. package/3rdparty/walkontable/src/utils/column.mjs +29 -14
  63. package/3rdparty/walkontable/src/utils/columnStretching.js +219 -0
  64. package/3rdparty/walkontable/src/utils/columnStretching.mjs +215 -0
  65. package/3rdparty/walkontable/src/utils/nodesPool.js +2 -2
  66. package/3rdparty/walkontable/src/utils/nodesPool.mjs +2 -2
  67. package/3rdparty/walkontable/src/utils/orderView/view.js +2 -2
  68. package/3rdparty/walkontable/src/utils/orderView/view.mjs +2 -2
  69. package/3rdparty/walkontable/src/utils/orderView/viewSize.js +2 -2
  70. package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +2 -2
  71. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +2 -2
  72. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +2 -2
  73. package/3rdparty/walkontable/src/utils/row.js +2 -2
  74. package/3rdparty/walkontable/src/utils/row.mjs +2 -2
  75. package/3rdparty/walkontable/src/viewport.js +22 -17
  76. package/3rdparty/walkontable/src/viewport.mjs +23 -18
  77. package/CHANGELOG.md +36 -0
  78. package/base.js +4 -2
  79. package/base.mjs +2 -2
  80. package/cellTypes/dropdownType/dropdownType.d.ts +6 -6
  81. package/cellTypes/dropdownType/dropdownType.js +4 -4
  82. package/cellTypes/dropdownType/dropdownType.mjs +4 -4
  83. package/core/focusCatcher/index.js +44 -6
  84. package/core/focusCatcher/index.mjs +44 -6
  85. package/core.d.ts +19 -19
  86. package/core.js +7 -12
  87. package/core.mjs +7 -12
  88. package/dataMap/dataMap.js +3 -2
  89. package/dataMap/dataMap.mjs +2 -2
  90. package/dataMap/dataSource.js +2 -2
  91. package/dataMap/dataSource.mjs +2 -2
  92. package/dataMap/metaManager/lazyFactoryMap.js +2 -2
  93. package/dataMap/metaManager/lazyFactoryMap.mjs +2 -2
  94. package/dataMap/metaManager/metaLayers/cellMeta.js +2 -2
  95. package/dataMap/metaManager/metaLayers/cellMeta.mjs +2 -2
  96. package/dataMap/metaManager/metaLayers/columnMeta.js +2 -2
  97. package/dataMap/metaManager/metaLayers/columnMeta.mjs +2 -2
  98. package/dataMap/metaManager/metaLayers/globalMeta.js +2 -2
  99. package/dataMap/metaManager/metaLayers/globalMeta.mjs +2 -2
  100. package/dataMap/metaManager/metaLayers/tableMeta.js +2 -2
  101. package/dataMap/metaManager/metaLayers/tableMeta.mjs +2 -2
  102. package/dataMap/metaManager/metaSchema.js +40 -25
  103. package/dataMap/metaManager/metaSchema.mjs +40 -25
  104. package/dataMap/metaManager/mods/dynamicCellMeta.js +2 -2
  105. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +2 -2
  106. package/dataMap/metaManager/mods/extendMetaProperties.js +14 -2
  107. package/dataMap/metaManager/mods/extendMetaProperties.mjs +14 -2
  108. package/dist/handsontable.css +5 -5
  109. package/dist/handsontable.full.css +6 -6
  110. package/dist/handsontable.full.js +4835 -4508
  111. package/dist/handsontable.full.min.css +4 -4
  112. package/dist/handsontable.full.min.js +156 -154
  113. package/dist/handsontable.js +3441 -2825
  114. package/dist/handsontable.min.css +3 -3
  115. package/dist/handsontable.min.js +18 -15
  116. package/editorManager.js +5 -6
  117. package/editorManager.mjs +5 -6
  118. package/editors/autocompleteEditor/autocompleteEditor.js +2 -4
  119. package/editors/autocompleteEditor/autocompleteEditor.mjs +2 -4
  120. package/editors/baseEditor/baseEditor.d.ts +1 -1
  121. package/editors/baseEditor/baseEditor.js +2 -2
  122. package/editors/baseEditor/baseEditor.mjs +2 -2
  123. package/editors/dateEditor/dateEditor.d.ts +1 -1
  124. package/editors/dateEditor/dateEditor.js +29 -33
  125. package/editors/dateEditor/dateEditor.mjs +29 -33
  126. package/editors/handsontableEditor/handsontableEditor.js +0 -1
  127. package/editors/handsontableEditor/handsontableEditor.mjs +0 -1
  128. package/editors/selectEditor/selectEditor.js +8 -2
  129. package/editors/selectEditor/selectEditor.mjs +8 -2
  130. package/editors/textEditor/textEditor.js +2 -6
  131. package/editors/textEditor/textEditor.mjs +2 -6
  132. package/eventManager.js +4 -3
  133. package/eventManager.mjs +4 -3
  134. package/helpers/browser.js +5 -2
  135. package/helpers/browser.mjs +5 -2
  136. package/helpers/feature.js +10 -0
  137. package/helpers/feature.mjs +9 -0
  138. package/helpers/mixed.js +2 -2
  139. package/helpers/mixed.mjs +2 -2
  140. package/index.d.ts +12 -0
  141. package/package.json +13 -4
  142. package/pluginHooks.d.ts +10 -9
  143. package/pluginHooks.js +10 -8
  144. package/pluginHooks.mjs +7 -7
  145. package/plugins/autoColumnSize/autoColumnSize.d.ts +2 -2
  146. package/plugins/autoColumnSize/autoColumnSize.js +2 -2
  147. package/plugins/autoColumnSize/autoColumnSize.mjs +2 -2
  148. package/plugins/autoRowSize/autoRowSize.d.ts +3 -3
  149. package/plugins/autoRowSize/autoRowSize.js +2 -2
  150. package/plugins/autoRowSize/autoRowSize.mjs +2 -2
  151. package/plugins/autofill/autofill.js +2 -2
  152. package/plugins/autofill/autofill.mjs +2 -2
  153. package/plugins/base/base.js +2 -2
  154. package/plugins/base/base.mjs +2 -2
  155. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.d.ts +1 -1
  156. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +2 -2
  157. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +2 -2
  158. package/plugins/collapsibleColumns/collapsibleColumns.js +2 -2
  159. package/plugins/collapsibleColumns/collapsibleColumns.mjs +2 -2
  160. package/plugins/columnSorting/columnSorting.js +2 -2
  161. package/plugins/columnSorting/columnSorting.mjs +2 -2
  162. package/plugins/columnSorting/columnStatesManager.js +2 -2
  163. package/plugins/columnSorting/columnStatesManager.mjs +2 -2
  164. package/plugins/columnSummary/columnSummary.d.ts +11 -11
  165. package/plugins/columnSummary/columnSummary.js +20 -5
  166. package/plugins/columnSummary/columnSummary.mjs +20 -5
  167. package/plugins/columnSummary/endpoints.js +19 -5
  168. package/plugins/columnSummary/endpoints.mjs +19 -5
  169. package/plugins/comments/commentEditor.js +2 -2
  170. package/plugins/comments/commentEditor.mjs +2 -2
  171. package/plugins/comments/comments.js +2 -2
  172. package/plugins/comments/comments.mjs +2 -2
  173. package/plugins/comments/displaySwitch.js +2 -2
  174. package/plugins/comments/displaySwitch.mjs +2 -2
  175. package/plugins/contextMenu/commandExecutor.js +2 -2
  176. package/plugins/contextMenu/commandExecutor.mjs +2 -2
  177. package/plugins/contextMenu/contextMenu.js +2 -2
  178. package/plugins/contextMenu/contextMenu.mjs +2 -2
  179. package/plugins/contextMenu/itemsFactory.js +2 -2
  180. package/plugins/contextMenu/itemsFactory.mjs +2 -2
  181. package/plugins/contextMenu/menu/cursor.js +2 -2
  182. package/plugins/contextMenu/menu/cursor.mjs +2 -2
  183. package/plugins/contextMenu/menu/menu.js +2 -2
  184. package/plugins/contextMenu/menu/menu.mjs +2 -2
  185. package/plugins/copyPaste/copyPaste.js +40 -6
  186. package/plugins/copyPaste/copyPaste.mjs +40 -6
  187. package/plugins/customBorders/customBorders.d.ts +17 -8
  188. package/plugins/customBorders/customBorders.js +2 -7
  189. package/plugins/customBorders/customBorders.mjs +2 -7
  190. package/plugins/customBorders/utils.js +0 -1
  191. package/plugins/customBorders/utils.mjs +0 -1
  192. package/plugins/dragToScroll/dragToScroll.d.ts +8 -1
  193. package/plugins/dragToScroll/dragToScroll.js +18 -22
  194. package/plugins/dragToScroll/dragToScroll.mjs +18 -22
  195. package/plugins/dropdownMenu/dropdownMenu.js +2 -2
  196. package/plugins/dropdownMenu/dropdownMenu.mjs +2 -2
  197. package/plugins/exportFile/dataProvider.js +2 -2
  198. package/plugins/exportFile/dataProvider.mjs +2 -2
  199. package/plugins/exportFile/exportFile.d.ts +18 -3
  200. package/plugins/exportFile/types/_base.js +2 -2
  201. package/plugins/exportFile/types/_base.mjs +2 -2
  202. package/plugins/filters/component/_base.js +2 -2
  203. package/plugins/filters/component/_base.mjs +2 -2
  204. package/plugins/filters/component/actionBar.js +2 -2
  205. package/plugins/filters/component/actionBar.mjs +2 -2
  206. package/plugins/filters/component/condition.js +2 -2
  207. package/plugins/filters/component/condition.mjs +2 -2
  208. package/plugins/filters/component/operators.js +2 -2
  209. package/plugins/filters/component/operators.mjs +2 -2
  210. package/plugins/filters/component/value.js +2 -2
  211. package/plugins/filters/component/value.mjs +2 -2
  212. package/plugins/filters/conditionCollection.js +2 -2
  213. package/plugins/filters/conditionCollection.mjs +2 -2
  214. package/plugins/filters/conditionUpdateObserver.js +2 -2
  215. package/plugins/filters/conditionUpdateObserver.mjs +2 -2
  216. package/plugins/filters/dataFilter.js +2 -2
  217. package/plugins/filters/dataFilter.mjs +2 -2
  218. package/plugins/filters/filters.js +2 -2
  219. package/plugins/filters/filters.mjs +2 -2
  220. package/plugins/filters/ui/_base.js +2 -2
  221. package/plugins/filters/ui/_base.mjs +2 -2
  222. package/plugins/filters/ui/radioInput.js +1 -1
  223. package/plugins/filters/ui/radioInput.mjs +1 -1
  224. package/plugins/formulas/formulas.d.ts +1 -0
  225. package/plugins/formulas/formulas.js +2 -4
  226. package/plugins/formulas/formulas.mjs +2 -4
  227. package/plugins/formulas/indexSyncer/axisSyncer.js +0 -1
  228. package/plugins/formulas/indexSyncer/axisSyncer.mjs +0 -1
  229. package/plugins/manualColumnMove/ui/_base.js +2 -2
  230. package/plugins/manualColumnMove/ui/_base.mjs +2 -2
  231. package/plugins/manualColumnResize/manualColumnResize.js +6 -2
  232. package/plugins/manualColumnResize/manualColumnResize.mjs +6 -2
  233. package/plugins/manualRowMove/ui/_base.js +2 -2
  234. package/plugins/manualRowMove/ui/_base.mjs +2 -2
  235. package/plugins/manualRowResize/manualRowResize.js +7 -3
  236. package/plugins/manualRowResize/manualRowResize.mjs +7 -3
  237. package/plugins/mergeCells/calculations/autofill.js +2 -2
  238. package/plugins/mergeCells/calculations/autofill.mjs +2 -2
  239. package/plugins/mergeCells/calculations/selection.js +2 -2
  240. package/plugins/mergeCells/calculations/selection.mjs +2 -2
  241. package/plugins/mergeCells/cellCoords.js +2 -2
  242. package/plugins/mergeCells/cellCoords.mjs +2 -2
  243. package/plugins/mergeCells/cellsCollection.js +2 -2
  244. package/plugins/mergeCells/cellsCollection.mjs +2 -2
  245. package/plugins/mergeCells/mergeCells.js +2 -4
  246. package/plugins/mergeCells/mergeCells.mjs +2 -4
  247. package/plugins/multiColumnSorting/multiColumnSorting.js +2 -2
  248. package/plugins/multiColumnSorting/multiColumnSorting.mjs +2 -2
  249. package/plugins/multipleSelectionHandles/multipleSelectionHandles.d.ts +8 -1
  250. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +2 -2
  251. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +2 -2
  252. package/plugins/nestedHeaders/nestedHeaders.js +2 -3
  253. package/plugins/nestedHeaders/nestedHeaders.mjs +2 -3
  254. package/plugins/nestedHeaders/stateManager/headersTree.js +0 -1
  255. package/plugins/nestedHeaders/stateManager/headersTree.mjs +0 -1
  256. package/plugins/nestedHeaders/stateManager/sourceSettings.js +1 -1
  257. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +1 -1
  258. package/plugins/nestedHeaders/utils/ghostTable.js +2 -2
  259. package/plugins/nestedHeaders/utils/ghostTable.mjs +2 -2
  260. package/plugins/nestedRows/data/dataManager.js +2 -2
  261. package/plugins/nestedRows/data/dataManager.mjs +2 -2
  262. package/plugins/nestedRows/nestedRows.js +2 -2
  263. package/plugins/nestedRows/nestedRows.mjs +2 -2
  264. package/plugins/nestedRows/ui/_base.js +2 -2
  265. package/plugins/nestedRows/ui/_base.mjs +2 -2
  266. package/plugins/nestedRows/ui/contextMenu.js +2 -2
  267. package/plugins/nestedRows/ui/contextMenu.mjs +2 -2
  268. package/plugins/nestedRows/utils/rowMoveController.js +2 -2
  269. package/plugins/nestedRows/utils/rowMoveController.mjs +2 -2
  270. package/plugins/persistentState/persistentState.d.ts +5 -2
  271. package/plugins/persistentState/persistentState.js +2 -2
  272. package/plugins/persistentState/persistentState.mjs +2 -2
  273. package/plugins/persistentState/storage.js +2 -2
  274. package/plugins/persistentState/storage.mjs +2 -2
  275. package/plugins/search/search.js +2 -2
  276. package/plugins/search/search.mjs +2 -2
  277. package/plugins/touchScroll/touchScroll.js +2 -2
  278. package/plugins/touchScroll/touchScroll.mjs +2 -2
  279. package/plugins/trimRows/trimRows.js +2 -2
  280. package/plugins/trimRows/trimRows.mjs +2 -2
  281. package/plugins/undoRedo/undoRedo.d.ts +3 -0
  282. package/plugins/undoRedo/undoRedo.js +64 -7
  283. package/plugins/undoRedo/undoRedo.mjs +64 -7
  284. package/renderers/autocompleteRenderer/autocompleteRenderer.d.ts +1 -1
  285. package/renderers/autocompleteRenderer/autocompleteRenderer.js +0 -1
  286. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +0 -1
  287. package/renderers/baseRenderer/baseRenderer.d.ts +1 -1
  288. package/renderers/checkboxRenderer/checkboxRenderer.d.ts +1 -1
  289. package/renderers/checkboxRenderer/checkboxRenderer.js +0 -2
  290. package/renderers/checkboxRenderer/checkboxRenderer.mjs +0 -2
  291. package/renderers/dateRenderer/dateRenderer.d.ts +1 -1
  292. package/renderers/dropdownRenderer/dropdownRenderer.d.ts +5 -0
  293. package/renderers/dropdownRenderer/dropdownRenderer.js +23 -0
  294. package/renderers/dropdownRenderer/dropdownRenderer.mjs +19 -0
  295. package/renderers/dropdownRenderer/index.d.ts +1 -0
  296. package/renderers/dropdownRenderer/index.js +6 -0
  297. package/renderers/dropdownRenderer/index.mjs +1 -0
  298. package/renderers/handsontableRenderer/handsontableRenderer.d.ts +1 -1
  299. package/renderers/htmlRenderer/htmlRenderer.d.ts +1 -1
  300. package/renderers/index.d.ts +3 -0
  301. package/renderers/index.js +12 -0
  302. package/renderers/index.mjs +7 -1
  303. package/renderers/numericRenderer/numericRenderer.d.ts +1 -1
  304. package/renderers/passwordRenderer/passwordRenderer.d.ts +1 -1
  305. package/renderers/selectRenderer/selectRenderer.d.ts +1 -1
  306. package/renderers/textRenderer/textRenderer.d.ts +1 -1
  307. package/renderers/timeRenderer/timeRenderer.d.ts +1 -1
  308. package/selection/highlight/highlight.js +2 -3
  309. package/selection/highlight/highlight.mjs +2 -3
  310. package/selection/highlight/visualSelection.js +2 -2
  311. package/selection/highlight/visualSelection.mjs +2 -2
  312. package/selection/range.js +2 -2
  313. package/selection/range.mjs +2 -2
  314. package/selection/selection.js +2 -2
  315. package/selection/selection.mjs +2 -2
  316. package/settings.d.ts +27 -14
  317. package/tableView.js +4 -5
  318. package/tableView.mjs +4 -5
  319. package/translations/indexMapper.d.ts +1 -1
  320. package/translations/indexMapper.js +4 -3
  321. package/translations/indexMapper.mjs +2 -2
  322. package/translations/mapCollections/aggregatedCollection.js +2 -2
  323. package/translations/mapCollections/aggregatedCollection.mjs +2 -2
  324. package/translations/mapCollections/mapCollection.js +2 -2
  325. package/translations/mapCollections/mapCollection.mjs +2 -2
  326. package/translations/maps/indexMap.js +2 -2
  327. package/translations/maps/indexMap.mjs +2 -2
  328. package/translations/maps/linkedPhysicalIndexToValueMap.js +2 -2
  329. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +2 -2
  330. package/utils/dataStructures/linkedList.js +2 -2
  331. package/utils/dataStructures/linkedList.mjs +2 -2
  332. package/utils/dataStructures/tree.js +2 -2
  333. package/utils/dataStructures/tree.mjs +2 -2
  334. package/utils/ghostTable.js +2 -2
  335. package/utils/ghostTable.mjs +2 -2
  336. package/utils/interval.js +2 -2
  337. package/utils/interval.mjs +2 -2
  338. package/utils/samplesGenerator.js +2 -2
  339. package/utils/samplesGenerator.mjs +2 -2
  340. package/validators/dropdownValidator/dropdownValidator.d.ts +5 -0
  341. package/validators/dropdownValidator/dropdownValidator.js +18 -0
  342. package/validators/dropdownValidator/dropdownValidator.mjs +14 -0
  343. package/validators/dropdownValidator/index.d.ts +1 -0
  344. package/validators/dropdownValidator/index.js +6 -0
  345. package/validators/dropdownValidator/index.mjs +1 -0
  346. package/validators/index.d.ts +2 -0
  347. package/validators/index.js +4 -0
  348. package/validators/index.mjs +3 -1
  349. package/validators/timeValidator/timeValidator.js +0 -1
  350. package/validators/timeValidator/timeValidator.mjs +0 -1
package/editorManager.js CHANGED
@@ -11,8 +11,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
11
11
  function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
12
12
  function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
13
13
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
14
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
15
- 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); }
14
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
15
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
16
16
  function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
17
17
  const SHORTCUTS_GROUP_NAVIGATION = exports.SHORTCUTS_GROUP_NAVIGATION = 'editorManager.navigation';
18
18
  var _onAfterDocumentKeyDown = /*#__PURE__*/new WeakSet();
@@ -149,6 +149,7 @@ class EditorManager {
149
149
  * Prepare text input to be displayed at given grid cell.
150
150
  */
151
151
  prepareEditor() {
152
+ var _this$hot$getSelected;
152
153
  if (this.lock) {
153
154
  return;
154
155
  }
@@ -160,10 +161,8 @@ class EditorManager {
160
161
  });
161
162
  return;
162
163
  }
163
- const {
164
- highlight
165
- } = this.hot.getSelectedRangeLast();
166
- if (highlight.isHeader()) {
164
+ const highlight = (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight;
165
+ if (!highlight || highlight.isHeader()) {
167
166
  return;
168
167
  }
169
168
  const {
package/editorManager.mjs CHANGED
@@ -2,8 +2,8 @@ import "core-js/modules/es.error.cause.js";
2
2
  function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
3
3
  function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
4
4
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
6
- 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); }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
6
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
7
  function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
8
8
  import { isFunctionKey, isCtrlMetaKey } from "./helpers/unicode.mjs";
9
9
  import { isImmediatePropagationStopped } from "./helpers/dom/event.mjs";
@@ -145,6 +145,7 @@ class EditorManager {
145
145
  * Prepare text input to be displayed at given grid cell.
146
146
  */
147
147
  prepareEditor() {
148
+ var _this$hot$getSelected;
148
149
  if (this.lock) {
149
150
  return;
150
151
  }
@@ -156,10 +157,8 @@ class EditorManager {
156
157
  });
157
158
  return;
158
159
  }
159
- const {
160
- highlight
161
- } = this.hot.getSelectedRangeLast();
162
- if (highlight.isHeader()) {
160
+ const highlight = (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight;
161
+ if (!highlight || highlight.isHeader()) {
163
162
  return;
164
163
  }
165
164
  const {
@@ -15,8 +15,8 @@ var _a11y = require("../../helpers/a11y");
15
15
  function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
16
16
  function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
17
17
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
18
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
19
- 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); }
18
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
19
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
20
20
  function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
21
21
  function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
22
22
  function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
@@ -191,7 +191,6 @@ class AutocompleteEditor extends _handsontableEditor.HandsontableEditor {
191
191
  if (scrollbarWidth === 0 && (0, _browser.isMacOS)()) {
192
192
  scrollbarWidth += 15; // default scroll bar width if scroll bars are visible only when scrolling
193
193
  }
194
-
195
194
  this.addHook('beforeKeyDown', event => this.onBeforeKeyDown(event));
196
195
  this.htEditor.updateSettings({
197
196
  colWidths: trimDropdown ? [(0, _element.outerWidth)(this.TEXTAREA) - 2] : undefined,
@@ -391,7 +390,6 @@ class AutocompleteEditor extends _handsontableEditor.HandsontableEditor {
391
390
  if (this.htEditor.flipped) {
392
391
  this.htEditor.rootElement.style.top = `${parseInt(this.htEditor.rootElement.style.top, 10) + dropdownHeight - height}px`; // eslint-disable-line max-len
393
392
  }
394
-
395
393
  this.setDropdownHeight(tempHeight - lastRowHeight);
396
394
  }
397
395
  }
@@ -3,8 +3,8 @@ import "core-js/modules/es.error.cause.js";
3
3
  function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
4
4
  function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
5
5
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
7
- 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); }
6
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
7
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
8
8
  function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
9
9
  function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
10
10
  function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
@@ -188,7 +188,6 @@ export class AutocompleteEditor extends HandsontableEditor {
188
188
  if (scrollbarWidth === 0 && isMacOS()) {
189
189
  scrollbarWidth += 15; // default scroll bar width if scroll bars are visible only when scrolling
190
190
  }
191
-
192
191
  this.addHook('beforeKeyDown', event => this.onBeforeKeyDown(event));
193
192
  this.htEditor.updateSettings({
194
193
  colWidths: trimDropdown ? [outerWidth(this.TEXTAREA) - 2] : undefined,
@@ -388,7 +387,6 @@ export class AutocompleteEditor extends HandsontableEditor {
388
387
  if (this.htEditor.flipped) {
389
388
  this.htEditor.rootElement.style.top = `${parseInt(this.htEditor.rootElement.style.top, 10) + dropdownHeight - height}px`; // eslint-disable-line max-len
390
389
  }
391
-
392
390
  this.setDropdownHeight(tempHeight - lastRowHeight);
393
391
  }
394
392
  }
@@ -40,7 +40,7 @@ export abstract class BaseEditor {
40
40
  isOpened(): boolean;
41
41
  isWaiting(): boolean;
42
42
  abstract open(event?: Event): void;
43
- prepare(row: number, col: number, prop: string | number, TD: HTMLTableCellElement, originalValue: any, cellProperties: CellProperties): void;
43
+ prepare(row: number, column: number, prop: string | number, TD: HTMLTableCellElement, originalValue: any, cellProperties: CellProperties): void;
44
44
  saveValue(value?: any, ctrlDown?: boolean): void;
45
45
  abstract setValue(newValue?: any): void;
46
46
  }
@@ -9,8 +9,8 @@ var _hooksRefRegisterer = _interopRequireDefault(require("../../mixins/hooksRefR
9
9
  var _element = require("../../helpers/dom/element");
10
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
11
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
12
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
13
- 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); }
12
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
13
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
14
14
  const EDITOR_TYPE = exports.EDITOR_TYPE = 'base';
15
15
  const EDITOR_STATE = exports.EDITOR_STATE = Object.freeze({
16
16
  VIRGIN: 'STATE_VIRGIN',
@@ -1,7 +1,7 @@
1
1
  import "core-js/modules/es.error.cause.js";
2
2
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
3
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
4
- 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); }
3
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
4
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
5
5
  import { isDefined, stringify } from "../../helpers/mixed.mjs";
6
6
  import { mixin } from "../../helpers/object.mjs";
7
7
  import { SHORTCUTS_GROUP_NAVIGATION } from "../../editorManager.mjs";
@@ -1,4 +1,4 @@
1
- import { PikadayOptions } from 'pikaday';
1
+ import { PikadayOptions } from '@handsontable/pikaday';
2
2
  import Core from '../../core';
3
3
  import { TextEditor } from '../textEditor';
4
4
 
@@ -3,16 +3,15 @@
3
3
  exports.__esModule = true;
4
4
  require("core-js/modules/es.error.cause.js");
5
5
  var _moment = _interopRequireDefault(require("moment"));
6
- var _pikaday = _interopRequireDefault(require("pikaday"));
6
+ var _pikaday = _interopRequireDefault(require("@handsontable/pikaday"));
7
7
  var _textEditor = require("../textEditor");
8
- var _eventManager = _interopRequireDefault(require("../../eventManager"));
9
8
  var _element = require("../../helpers/dom/element");
10
9
  var _object = require("../../helpers/object");
11
10
  var _unicode = require("../../helpers/unicode");
12
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
12
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
14
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
15
- 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); }
13
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
14
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
16
15
  const EDITOR_TYPE = exports.EDITOR_TYPE = 'date';
17
16
  const SHORTCUTS_GROUP_EDITOR = 'dateEditor';
18
17
 
@@ -28,10 +27,6 @@ class DateEditor extends _textEditor.TextEditor {
28
27
  * @type {string}
29
28
  */
30
29
  _defineProperty(this, "defaultDateFormat", 'DD/MM/YYYY');
31
- /**
32
- * @type {boolean}
33
- */
34
- _defineProperty(this, "isCellEdited", false);
35
30
  /**
36
31
  * @type {boolean}
37
32
  */
@@ -72,26 +67,16 @@ class DateEditor extends _textEditor.TextEditor {
72
67
  this.datePicker.setAttribute('dir', this.hot.isRtl() ? 'rtl' : 'ltr');
73
68
  (0, _element.addClass)(this.datePicker, 'htDatepickerHolder');
74
69
  this.hot.rootDocument.body.appendChild(this.datePicker);
75
- const eventManager = new _eventManager.default(this);
76
70
 
77
71
  /**
78
72
  * Prevent recognizing clicking on datepicker as clicking outside of table.
79
73
  */
80
- eventManager.addEventListener(this.datePicker, 'mousedown', event => {
74
+ this.eventManager.addEventListener(this.datePicker, 'mousedown', event => {
81
75
  if ((0, _element.hasClass)(event.target, 'pika-day')) {
82
76
  this.hideDatepicker();
83
77
  }
84
78
  event.stopPropagation();
85
79
  });
86
-
87
- /**
88
- * Prevent caret movement in the TEXTAREA when navigating over the date picker.
89
- */
90
- eventManager.addEventListener(this.TEXTAREA, 'keydown', event => {
91
- if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(event.code)) {
92
- event.preventDefault();
93
- }
94
- });
95
80
  }
96
81
 
97
82
  /**
@@ -132,13 +117,27 @@ class DateEditor extends _textEditor.TextEditor {
132
117
  const editorContext = shortcutManager.getContext('editor');
133
118
  super.open();
134
119
  this.showDatepicker(event);
135
- editorContext.addShortcut({
136
- keys: [['Enter']],
137
- callback: keyboardEvent => {
138
- // Extra Pikaday's `onchange` listener captures events and performing extra `setDate` method call which causes
139
- // flickering quite often.
140
- keyboardEvent.stopPropagation();
141
- },
120
+ editorContext.addShortcuts([{
121
+ keys: [['ArrowLeft']],
122
+ callback: () => {
123
+ this.$datePicker.adjustDate('subtract', 1);
124
+ }
125
+ }, {
126
+ keys: [['ArrowRight']],
127
+ callback: () => {
128
+ this.$datePicker.adjustDate('add', 1);
129
+ }
130
+ }, {
131
+ keys: [['ArrowUp']],
132
+ callback: () => {
133
+ this.$datePicker.adjustDate('subtract', 7);
134
+ }
135
+ }, {
136
+ keys: [['ArrowDown']],
137
+ callback: () => {
138
+ this.$datePicker.adjustDate('add', 7);
139
+ }
140
+ }], {
142
141
  group: SHORTCUTS_GROUP_EDITOR
143
142
  });
144
143
  }
@@ -172,13 +171,6 @@ class DateEditor extends _textEditor.TextEditor {
172
171
  finishEditing() {
173
172
  let restoreOriginalValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
174
173
  let ctrlDown = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
175
- if (restoreOriginalValue) {
176
- // pressed ESC, restore original value
177
- const value = this.originalValue;
178
- if (value !== undefined) {
179
- this.setValue(value);
180
- }
181
- }
182
174
  super.finishEditing(restoreOriginalValue, ctrlDown);
183
175
  }
184
176
 
@@ -195,6 +187,9 @@ class DateEditor extends _textEditor.TextEditor {
195
187
  let dateStr;
196
188
  this.datePicker.style.display = 'block';
197
189
  this.$datePicker = new _pikaday.default(this.getDatePickerConfig());
190
+ if (typeof this.$datePicker.useMoment === 'function') {
191
+ this.$datePicker.useMoment(_moment.default);
192
+ }
198
193
  this.$datePicker._onInputFocus = function () {};
199
194
  this.datePickerStyle.top = `${this.hot.rootWindow.pageYOffset + offset.top + (0, _element.outerHeight)(this.TD)}px`;
200
195
  let pickerLeftPosition = this.hot.rootWindow.pageXOffset;
@@ -257,6 +252,7 @@ class DateEditor extends _textEditor.TextEditor {
257
252
  options.trigger = htInput;
258
253
  options.container = this.datePicker;
259
254
  options.bound = false;
255
+ options.keyboardInput = false;
260
256
  options.format = options.format || this.defaultDateFormat;
261
257
  options.reposition = options.reposition || false;
262
258
  // Set the RTL to `false`. Due to the https://github.com/Pikaday/Pikaday/issues/647 bug, the layout direction
@@ -1,11 +1,10 @@
1
1
  import "core-js/modules/es.error.cause.js";
2
2
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
3
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
4
- 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); }
3
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
4
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
5
5
  import moment from 'moment';
6
- import Pikaday from 'pikaday';
6
+ import Pikaday from '@handsontable/pikaday';
7
7
  import { TextEditor } from "../textEditor/index.mjs";
8
- import EventManager from "../../eventManager.mjs";
9
8
  import { addClass, hasClass, outerHeight, outerWidth } from "../../helpers/dom/element.mjs";
10
9
  import { deepExtend } from "../../helpers/object.mjs";
11
10
  import { isFunctionKey } from "../../helpers/unicode.mjs";
@@ -24,10 +23,6 @@ export class DateEditor extends TextEditor {
24
23
  * @type {string}
25
24
  */
26
25
  _defineProperty(this, "defaultDateFormat", 'DD/MM/YYYY');
27
- /**
28
- * @type {boolean}
29
- */
30
- _defineProperty(this, "isCellEdited", false);
31
26
  /**
32
27
  * @type {boolean}
33
28
  */
@@ -68,26 +63,16 @@ export class DateEditor extends TextEditor {
68
63
  this.datePicker.setAttribute('dir', this.hot.isRtl() ? 'rtl' : 'ltr');
69
64
  addClass(this.datePicker, 'htDatepickerHolder');
70
65
  this.hot.rootDocument.body.appendChild(this.datePicker);
71
- const eventManager = new EventManager(this);
72
66
 
73
67
  /**
74
68
  * Prevent recognizing clicking on datepicker as clicking outside of table.
75
69
  */
76
- eventManager.addEventListener(this.datePicker, 'mousedown', event => {
70
+ this.eventManager.addEventListener(this.datePicker, 'mousedown', event => {
77
71
  if (hasClass(event.target, 'pika-day')) {
78
72
  this.hideDatepicker();
79
73
  }
80
74
  event.stopPropagation();
81
75
  });
82
-
83
- /**
84
- * Prevent caret movement in the TEXTAREA when navigating over the date picker.
85
- */
86
- eventManager.addEventListener(this.TEXTAREA, 'keydown', event => {
87
- if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(event.code)) {
88
- event.preventDefault();
89
- }
90
- });
91
76
  }
92
77
 
93
78
  /**
@@ -128,13 +113,27 @@ export class DateEditor extends TextEditor {
128
113
  const editorContext = shortcutManager.getContext('editor');
129
114
  super.open();
130
115
  this.showDatepicker(event);
131
- editorContext.addShortcut({
132
- keys: [['Enter']],
133
- callback: keyboardEvent => {
134
- // Extra Pikaday's `onchange` listener captures events and performing extra `setDate` method call which causes
135
- // flickering quite often.
136
- keyboardEvent.stopPropagation();
137
- },
116
+ editorContext.addShortcuts([{
117
+ keys: [['ArrowLeft']],
118
+ callback: () => {
119
+ this.$datePicker.adjustDate('subtract', 1);
120
+ }
121
+ }, {
122
+ keys: [['ArrowRight']],
123
+ callback: () => {
124
+ this.$datePicker.adjustDate('add', 1);
125
+ }
126
+ }, {
127
+ keys: [['ArrowUp']],
128
+ callback: () => {
129
+ this.$datePicker.adjustDate('subtract', 7);
130
+ }
131
+ }, {
132
+ keys: [['ArrowDown']],
133
+ callback: () => {
134
+ this.$datePicker.adjustDate('add', 7);
135
+ }
136
+ }], {
138
137
  group: SHORTCUTS_GROUP_EDITOR
139
138
  });
140
139
  }
@@ -168,13 +167,6 @@ export class DateEditor extends TextEditor {
168
167
  finishEditing() {
169
168
  let restoreOriginalValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
170
169
  let ctrlDown = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
171
- if (restoreOriginalValue) {
172
- // pressed ESC, restore original value
173
- const value = this.originalValue;
174
- if (value !== undefined) {
175
- this.setValue(value);
176
- }
177
- }
178
170
  super.finishEditing(restoreOriginalValue, ctrlDown);
179
171
  }
180
172
 
@@ -191,6 +183,9 @@ export class DateEditor extends TextEditor {
191
183
  let dateStr;
192
184
  this.datePicker.style.display = 'block';
193
185
  this.$datePicker = new Pikaday(this.getDatePickerConfig());
186
+ if (typeof this.$datePicker.useMoment === 'function') {
187
+ this.$datePicker.useMoment(moment);
188
+ }
194
189
  this.$datePicker._onInputFocus = function () {};
195
190
  this.datePickerStyle.top = `${this.hot.rootWindow.pageYOffset + offset.top + outerHeight(this.TD)}px`;
196
191
  let pickerLeftPosition = this.hot.rootWindow.pageXOffset;
@@ -253,6 +248,7 @@ export class DateEditor extends TextEditor {
253
248
  options.trigger = htInput;
254
249
  options.container = this.datePicker;
255
250
  options.bound = false;
251
+ options.keyboardInput = false;
256
252
  options.format = options.format || this.defaultDateFormat;
257
253
  options.reposition = options.reposition || false;
258
254
  // Set the RTL to `false`. Due to the https://github.com/Pikaday/Pikaday/issues/647 bug, the layout direction
@@ -137,7 +137,6 @@ class HandsontableEditor extends _textEditor.TextEditor {
137
137
  // if focus is still in the HOT editor
138
138
  this.hot.listen(); // return the focus to the parent HOT instance
139
139
  }
140
-
141
140
  if (this.htEditor && this.htEditor.getSelectedLast()) {
142
141
  const value = this.htEditor.getValue();
143
142
  if (value !== undefined) {
@@ -134,7 +134,6 @@ export class HandsontableEditor extends TextEditor {
134
134
  // if focus is still in the HOT editor
135
135
  this.hot.listen(); // return the focus to the parent HOT instance
136
136
  }
137
-
138
137
  if (this.htEditor && this.htEditor.getSelectedLast()) {
139
138
  const value = this.htEditor.getValue();
140
139
  if (value !== undefined) {
@@ -21,9 +21,10 @@ class SelectEditor extends _baseEditor.BaseEditor {
21
21
  * Initializes editor instance, DOM Element and mount hooks.
22
22
  */
23
23
  init() {
24
- this.select = this.hot.rootDocument.createElement('SELECT');
25
- (0, _element.addClass)(this.select, 'htSelectEditor');
24
+ this.select = this.hot.rootDocument.createElement('select');
25
+ this.select.setAttribute('data-hot-input', 'true');
26
26
  this.select.style.display = 'none';
27
+ (0, _element.addClass)(this.select, 'htSelectEditor');
27
28
  this.hot.rootElement.appendChild(this.select);
28
29
  this.registerHooks();
29
30
  }
@@ -188,6 +189,7 @@ class SelectEditor extends _baseEditor.BaseEditor {
188
189
  registerShortcuts() {
189
190
  const shortcutManager = this.hot.getShortcutManager();
190
191
  const editorContext = shortcutManager.getContext('editor');
192
+ const gridContext = shortcutManager.getContext('grid');
191
193
  const contextConfig = {
192
194
  group: SHORTCUTS_GROUP
193
195
  };
@@ -197,6 +199,10 @@ class SelectEditor extends _baseEditor.BaseEditor {
197
199
  return;
198
200
  }
199
201
  editorContext.addShortcuts([{
202
+ keys: [['Tab'], ['Shift', 'Tab']],
203
+ forwardToContext: gridContext,
204
+ callback: () => {}
205
+ }, {
200
206
  keys: [['ArrowUp']],
201
207
  callback: () => {
202
208
  const previousOptionIndex = this.select.selectedIndex - 1;
@@ -18,9 +18,10 @@ export class SelectEditor extends BaseEditor {
18
18
  * Initializes editor instance, DOM Element and mount hooks.
19
19
  */
20
20
  init() {
21
- this.select = this.hot.rootDocument.createElement('SELECT');
22
- addClass(this.select, 'htSelectEditor');
21
+ this.select = this.hot.rootDocument.createElement('select');
22
+ this.select.setAttribute('data-hot-input', 'true');
23
23
  this.select.style.display = 'none';
24
+ addClass(this.select, 'htSelectEditor');
24
25
  this.hot.rootElement.appendChild(this.select);
25
26
  this.registerHooks();
26
27
  }
@@ -185,6 +186,7 @@ export class SelectEditor extends BaseEditor {
185
186
  registerShortcuts() {
186
187
  const shortcutManager = this.hot.getShortcutManager();
187
188
  const editorContext = shortcutManager.getContext('editor');
189
+ const gridContext = shortcutManager.getContext('grid');
188
190
  const contextConfig = {
189
191
  group: SHORTCUTS_GROUP
190
192
  };
@@ -194,6 +196,10 @@ export class SelectEditor extends BaseEditor {
194
196
  return;
195
197
  }
196
198
  editorContext.addShortcuts([{
199
+ keys: [['Tab'], ['Shift', 'Tab']],
200
+ forwardToContext: gridContext,
201
+ callback: () => {}
202
+ }, {
197
203
  keys: [['ArrowUp']],
198
204
  callback: () => {
199
205
  const previousOptionIndex = this.select.selectedIndex - 1;
@@ -15,8 +15,8 @@ var _caretPositioner = require("./caretPositioner");
15
15
  var _a11y = require("../../helpers/a11y");
16
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
17
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
18
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
19
- 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); }
18
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
19
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
20
20
  const EDITOR_VISIBLE_CLASS_NAME = 'ht_editor_visible';
21
21
  const EDITOR_HIDDEN_CLASS_NAME = 'ht_editor_hidden';
22
22
  const SHORTCUTS_GROUP = 'textEditor';
@@ -128,7 +128,6 @@ class TextEditor extends _baseEditor.BaseEditor {
128
128
  if ((0, _element.isThisHotChild)(this.hot.rootDocument.activeElement, this.hot.rootElement)) {
129
129
  this.hot.listen(); // don't refocus the table if user focused some cell outside of HT on purpose
130
130
  }
131
-
132
131
  this.hideEditableElement();
133
132
  this.unregisterShortcuts();
134
133
  }
@@ -299,7 +298,6 @@ class TextEditor extends _baseEditor.BaseEditor {
299
298
  if (!force) {
300
299
  this.close(); // TODO shouldn't it be this.finishEditing() ?
301
300
  }
302
-
303
301
  return;
304
302
  }
305
303
  const {
@@ -402,7 +400,6 @@ class TextEditor extends _baseEditor.BaseEditor {
402
400
  insertNewLine();
403
401
  return false; // Will block closing editor.
404
402
  },
405
-
406
403
  runOnlyIf: event => !this.hot.selection.isMultiple() &&
407
404
  // We trigger a data population for multiple selection.
408
405
  // catch CTRL but not right ALT (which in some systems triggers ALT+CTRL)
@@ -413,7 +410,6 @@ class TextEditor extends _baseEditor.BaseEditor {
413
410
  insertNewLine();
414
411
  return false; // Will block closing editor.
415
412
  },
416
-
417
413
  runOnlyIf: () => !this.hot.selection.isMultiple() // We trigger a data population for multiple selection.
418
414
  }, {
419
415
  keys: [['Alt', 'Enter']],
@@ -1,7 +1,7 @@
1
1
  import "core-js/modules/es.error.cause.js";
2
2
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
3
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
4
- 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); }
3
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
4
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
5
5
  import { BaseEditor, EDITOR_STATE } from "../baseEditor/index.mjs";
6
6
  import EventManager from "../../eventManager.mjs";
7
7
  import { isEdge, isIOS } from "../../helpers/browser.mjs";
@@ -124,7 +124,6 @@ export class TextEditor extends BaseEditor {
124
124
  if (isThisHotChild(this.hot.rootDocument.activeElement, this.hot.rootElement)) {
125
125
  this.hot.listen(); // don't refocus the table if user focused some cell outside of HT on purpose
126
126
  }
127
-
128
127
  this.hideEditableElement();
129
128
  this.unregisterShortcuts();
130
129
  }
@@ -295,7 +294,6 @@ export class TextEditor extends BaseEditor {
295
294
  if (!force) {
296
295
  this.close(); // TODO shouldn't it be this.finishEditing() ?
297
296
  }
298
-
299
297
  return;
300
298
  }
301
299
  const {
@@ -398,7 +396,6 @@ export class TextEditor extends BaseEditor {
398
396
  insertNewLine();
399
397
  return false; // Will block closing editor.
400
398
  },
401
-
402
399
  runOnlyIf: event => !this.hot.selection.isMultiple() &&
403
400
  // We trigger a data population for multiple selection.
404
401
  // catch CTRL but not right ALT (which in some systems triggers ALT+CTRL)
@@ -409,7 +406,6 @@ export class TextEditor extends BaseEditor {
409
406
  insertNewLine();
410
407
  return false; // Will block closing editor.
411
408
  },
412
-
413
409
  runOnlyIf: () => !this.hot.selection.isMultiple() // We trigger a data population for multiple selection.
414
410
  }, {
415
411
  keys: [['Alt', 'Enter']],
package/eventManager.js CHANGED
@@ -6,8 +6,8 @@ require("core-js/modules/es.array.push.js");
6
6
  require("core-js/modules/es.error.cause.js");
7
7
  var _event = require("./helpers/dom/event");
8
8
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
10
- 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); }
9
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
10
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
11
11
  /**
12
12
  * Counter which tracks unregistered listeners (useful for detecting memory leaks).
13
13
  *
@@ -19,7 +19,6 @@ let listenersCounter = 0;
19
19
  * Event DOM manager for internal use in Handsontable.
20
20
  *
21
21
  * @class EventManager
22
- * @util
23
22
  */
24
23
  class EventManager {
25
24
  /**
@@ -52,6 +51,7 @@ class EventManager {
52
51
  addEventListener(element, eventName, callback) {
53
52
  let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
54
53
  /**
54
+ * @private
55
55
  * @param {Event} event The event object.
56
56
  */
57
57
  function callbackProxy(event) {
@@ -211,6 +211,7 @@ function extendEvent(event) {
211
211
  }
212
212
  var _default = exports.default = EventManager;
213
213
  /**
214
+ * @private
214
215
  * @returns {number}
215
216
  */
216
217
  function getListenersCounter() {