handsontable 14.0.0-next-0f92d92-20231130 → 14.1.0-next-514dcd3-20240109

Sign up to get free protection for your applications and to get access to all the features.
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() {