handsontable 16.2.0 → 17.0.0-rc1

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 (984) hide show
  1. package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleColumns.js +0 -3
  2. package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleColumns.mjs +0 -3
  3. package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleRows.js +0 -3
  4. package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleRows.mjs +0 -3
  5. package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleColumns.js +0 -3
  6. package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleColumns.mjs +0 -3
  7. package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleRows.js +0 -3
  8. package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleRows.mjs +0 -3
  9. package/3rdparty/walkontable/src/calculator/calculationType/renderedAllColumns.js +0 -1
  10. package/3rdparty/walkontable/src/calculator/calculationType/renderedAllColumns.mjs +0 -1
  11. package/3rdparty/walkontable/src/calculator/calculationType/renderedAllRows.js +0 -1
  12. package/3rdparty/walkontable/src/calculator/calculationType/renderedAllRows.mjs +0 -1
  13. package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.js +0 -1
  14. package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.mjs +0 -1
  15. package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.js +0 -1
  16. package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.mjs +0 -1
  17. package/3rdparty/walkontable/src/calculator/viewportBase.js +0 -3
  18. package/3rdparty/walkontable/src/calculator/viewportBase.mjs +0 -3
  19. package/3rdparty/walkontable/src/calculator/viewportColumns.js +0 -2
  20. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +0 -2
  21. package/3rdparty/walkontable/src/calculator/viewportRows.js +0 -2
  22. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +0 -2
  23. package/3rdparty/walkontable/src/cell/coords.js +0 -1
  24. package/3rdparty/walkontable/src/cell/coords.mjs +0 -1
  25. package/3rdparty/walkontable/src/cell/range.js +0 -2
  26. package/3rdparty/walkontable/src/cell/range.mjs +0 -2
  27. package/3rdparty/walkontable/src/core/_base.js +0 -2
  28. package/3rdparty/walkontable/src/core/_base.mjs +0 -2
  29. package/3rdparty/walkontable/src/core/clone.js +0 -1
  30. package/3rdparty/walkontable/src/core/clone.mjs +0 -1
  31. package/3rdparty/walkontable/src/core/core.js +0 -1
  32. package/3rdparty/walkontable/src/core/core.mjs +0 -1
  33. package/3rdparty/walkontable/src/event.js +0 -1
  34. package/3rdparty/walkontable/src/event.mjs +0 -1
  35. package/3rdparty/walkontable/src/filter/column.js +0 -1
  36. package/3rdparty/walkontable/src/filter/column.mjs +0 -1
  37. package/3rdparty/walkontable/src/filter/row.js +0 -1
  38. package/3rdparty/walkontable/src/filter/row.mjs +0 -1
  39. package/3rdparty/walkontable/src/overlay/_base.js +6 -4
  40. package/3rdparty/walkontable/src/overlay/_base.mjs +6 -4
  41. package/3rdparty/walkontable/src/overlay/bottom.js +2 -2
  42. package/3rdparty/walkontable/src/overlay/bottom.mjs +2 -2
  43. package/3rdparty/walkontable/src/overlay/index.js +0 -2
  44. package/3rdparty/walkontable/src/overlay/inlineStart.js +2 -2
  45. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +2 -2
  46. package/3rdparty/walkontable/src/overlay/top.js +2 -2
  47. package/3rdparty/walkontable/src/overlay/top.mjs +2 -2
  48. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +0 -1
  49. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +0 -1
  50. package/3rdparty/walkontable/src/overlays.js +5 -8
  51. package/3rdparty/walkontable/src/overlays.mjs +5 -8
  52. package/3rdparty/walkontable/src/renderer/_base.js +0 -1
  53. package/3rdparty/walkontable/src/renderer/_base.mjs +0 -1
  54. package/3rdparty/walkontable/src/renderer/cells.js +0 -1
  55. package/3rdparty/walkontable/src/renderer/cells.mjs +0 -1
  56. package/3rdparty/walkontable/src/renderer/rowHeaders.js +1 -2
  57. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +1 -2
  58. package/3rdparty/walkontable/src/renderer/rows.js +1 -12
  59. package/3rdparty/walkontable/src/renderer/rows.mjs +1 -12
  60. package/3rdparty/walkontable/src/renderer/table.js +0 -1
  61. package/3rdparty/walkontable/src/renderer/table.mjs +0 -1
  62. package/3rdparty/walkontable/src/scroll.js +0 -1
  63. package/3rdparty/walkontable/src/scroll.mjs +0 -1
  64. package/3rdparty/walkontable/src/selection/border/border.js +13 -26
  65. package/3rdparty/walkontable/src/selection/border/border.mjs +13 -26
  66. package/3rdparty/walkontable/src/selection/border/utils.js +0 -9
  67. package/3rdparty/walkontable/src/selection/border/utils.mjs +0 -9
  68. package/3rdparty/walkontable/src/selection/index.js +0 -2
  69. package/3rdparty/walkontable/src/selection/manager.js +0 -13
  70. package/3rdparty/walkontable/src/selection/manager.mjs +0 -13
  71. package/3rdparty/walkontable/src/selection/scanner.js +0 -8
  72. package/3rdparty/walkontable/src/selection/scanner.mjs +0 -8
  73. package/3rdparty/walkontable/src/settings.js +2 -2
  74. package/3rdparty/walkontable/src/settings.mjs +2 -2
  75. package/3rdparty/walkontable/src/table/master.js +1 -1
  76. package/3rdparty/walkontable/src/table/master.mjs +1 -1
  77. package/3rdparty/walkontable/src/table.js +3 -6
  78. package/3rdparty/walkontable/src/table.mjs +3 -6
  79. package/3rdparty/walkontable/src/utils/column.js +0 -1
  80. package/3rdparty/walkontable/src/utils/column.mjs +0 -1
  81. package/3rdparty/walkontable/src/utils/nodesPool.js +7 -1
  82. package/3rdparty/walkontable/src/utils/nodesPool.mjs +7 -1
  83. package/3rdparty/walkontable/src/utils/orderView/rendererAdapter/differBasedRendererAdapter.js +100 -0
  84. package/3rdparty/walkontable/src/utils/orderView/rendererAdapter/differBasedRendererAdapter.mjs +96 -0
  85. package/3rdparty/walkontable/src/utils/orderView/rendererAdapter/directDomRendererAdapter.js +117 -0
  86. package/3rdparty/walkontable/src/utils/orderView/rendererAdapter/directDomRendererAdapter.mjs +113 -0
  87. package/3rdparty/walkontable/src/utils/orderView/rendererAdapter/index.js +19 -0
  88. package/3rdparty/walkontable/src/utils/orderView/rendererAdapter/index.mjs +15 -0
  89. package/3rdparty/walkontable/src/utils/orderView/view.js +16 -58
  90. package/3rdparty/walkontable/src/utils/orderView/view.mjs +16 -58
  91. package/3rdparty/walkontable/src/utils/orderView/viewDiffer/index.js +0 -2
  92. package/3rdparty/walkontable/src/utils/orderView/viewDiffer/index.mjs +0 -2
  93. package/3rdparty/walkontable/src/utils/orderView/viewDiffer/viewOrder.js +0 -2
  94. package/3rdparty/walkontable/src/utils/orderView/viewDiffer/viewOrder.mjs +0 -2
  95. package/3rdparty/walkontable/src/utils/orderView/viewSize.js +0 -1
  96. package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +0 -1
  97. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +0 -1
  98. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +0 -1
  99. package/3rdparty/walkontable/src/utils/row.js +0 -1
  100. package/3rdparty/walkontable/src/utils/row.mjs +0 -1
  101. package/3rdparty/walkontable/src/viewport.js +0 -2
  102. package/3rdparty/walkontable/src/viewport.mjs +0 -2
  103. package/CHANGELOG.md +1 -1
  104. package/README.md +4 -23
  105. package/base.js +13 -2
  106. package/base.mjs +14 -3
  107. package/cellTypes/autocompleteType/accessors/valueSetter.js +2 -4
  108. package/cellTypes/autocompleteType/accessors/valueSetter.mjs +1 -3
  109. package/cellTypes/autocompleteType/autocompleteType.js +2 -1
  110. package/cellTypes/autocompleteType/autocompleteType.mjs +2 -1
  111. package/cellTypes/dropdownType/dropdownType.js +2 -1
  112. package/cellTypes/dropdownType/dropdownType.mjs +2 -1
  113. package/cellTypes/index.d.ts +6 -0
  114. package/cellTypes/index.js +12 -0
  115. package/cellTypes/index.mjs +7 -1
  116. package/cellTypes/intlDateType/index.d.ts +1 -0
  117. package/cellTypes/intlDateType/index.js +6 -0
  118. package/cellTypes/intlDateType/index.mjs +1 -0
  119. package/cellTypes/intlDateType/intlDateType.d.ts +23 -0
  120. package/cellTypes/intlDateType/intlDateType.js +16 -0
  121. package/cellTypes/intlDateType/intlDateType.mjs +13 -0
  122. package/cellTypes/intlTimeType/index.d.ts +1 -0
  123. package/cellTypes/intlTimeType/index.js +6 -0
  124. package/cellTypes/intlTimeType/index.mjs +1 -0
  125. package/cellTypes/intlTimeType/intlTimeType.d.ts +23 -0
  126. package/cellTypes/intlTimeType/intlTimeType.js +16 -0
  127. package/cellTypes/intlTimeType/intlTimeType.mjs +13 -0
  128. package/cellTypes/multiSelectType/accessors/index.js +7 -0
  129. package/cellTypes/multiSelectType/accessors/index.mjs +2 -0
  130. package/cellTypes/multiSelectType/accessors/valueGetter.js +20 -0
  131. package/cellTypes/multiSelectType/accessors/valueGetter.mjs +16 -0
  132. package/cellTypes/multiSelectType/accessors/valueSetter.js +27 -0
  133. package/cellTypes/multiSelectType/accessors/valueSetter.mjs +23 -0
  134. package/cellTypes/multiSelectType/index.js +6 -0
  135. package/cellTypes/multiSelectType/index.mjs +1 -0
  136. package/cellTypes/multiSelectType/multiSelectType.js +19 -0
  137. package/cellTypes/multiSelectType/multiSelectType.mjs +16 -0
  138. package/cellTypes/numericType/numericType.d.ts +3 -1
  139. package/cellTypes/numericType/numericType.js +2 -1
  140. package/cellTypes/numericType/numericType.mjs +3 -2
  141. package/cellTypes/registry.js +2 -2
  142. package/cellTypes/registry.mjs +2 -2
  143. package/common.d.ts +3 -1
  144. package/core/coordsMapper/index.js +0 -2
  145. package/core/coordsMapper/rangeToRenderableMapper.js +0 -1
  146. package/core/coordsMapper/rangeToRenderableMapper.mjs +0 -1
  147. package/core/hooks/bucket.js +0 -14
  148. package/core/hooks/bucket.mjs +0 -14
  149. package/core/hooks/constants.js +0 -28
  150. package/core/hooks/constants.mjs +0 -28
  151. package/core/hooks/index.d.ts +0 -3
  152. package/core/hooks/index.js +0 -2
  153. package/core/hooks/index.mjs +0 -2
  154. package/core/index.js +0 -2
  155. package/core.d.ts +0 -5
  156. package/core.js +193 -104
  157. package/core.mjs +194 -105
  158. package/dataMap/dataMap.js +6 -8
  159. package/dataMap/dataMap.mjs +6 -8
  160. package/dataMap/dataSource.js +0 -4
  161. package/dataMap/dataSource.mjs +0 -4
  162. package/dataMap/index.js +5 -0
  163. package/dataMap/index.mjs +3 -1
  164. package/dataMap/metaManager/index.js +2 -4
  165. package/dataMap/metaManager/index.mjs +2 -4
  166. package/dataMap/metaManager/lazyFactoryMap.js +0 -11
  167. package/dataMap/metaManager/lazyFactoryMap.mjs +0 -11
  168. package/dataMap/metaManager/metaLayers/cellMeta.js +0 -2
  169. package/dataMap/metaManager/metaLayers/cellMeta.mjs +0 -2
  170. package/dataMap/metaManager/metaLayers/columnMeta.js +0 -1
  171. package/dataMap/metaManager/metaLayers/columnMeta.mjs +0 -1
  172. package/dataMap/metaManager/metaLayers/globalMeta.js +0 -1
  173. package/dataMap/metaManager/metaLayers/globalMeta.mjs +0 -1
  174. package/dataMap/metaManager/metaLayers/tableMeta.js +0 -1
  175. package/dataMap/metaManager/metaLayers/tableMeta.mjs +0 -1
  176. package/dataMap/metaManager/metaSchema.js +862 -79
  177. package/dataMap/metaManager/metaSchema.mjs +862 -79
  178. package/dataMap/metaManager/mods/dynamicCellMeta.js +0 -8
  179. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +0 -8
  180. package/dataMap/metaManager/mods/extendMetaProperties.js +23 -15
  181. package/dataMap/metaManager/mods/extendMetaProperties.mjs +23 -15
  182. package/dataMap/metaManager/utils.js +2 -9
  183. package/dataMap/metaManager/utils.mjs +2 -9
  184. package/dataMap/replaceData.js +6 -3
  185. package/dataMap/replaceData.mjs +6 -3
  186. package/dataMap/sourceDataValidator.js +122 -0
  187. package/dataMap/sourceDataValidator.mjs +117 -0
  188. package/dist/handsontable.full.js +57523 -54761
  189. package/dist/handsontable.full.min.js +228 -213
  190. package/dist/handsontable.js +39604 -37938
  191. package/dist/handsontable.min.js +51 -51
  192. package/dist/languages/all.js +1 -1
  193. package/dist/languages/all.min.js +1 -1
  194. package/dist/languages/ar-AR.js +1 -1
  195. package/dist/languages/ar-AR.min.js +1 -1
  196. package/dist/languages/cs-CZ.js +1 -1
  197. package/dist/languages/cs-CZ.min.js +1 -1
  198. package/dist/languages/de-CH.js +1 -1
  199. package/dist/languages/de-CH.min.js +1 -1
  200. package/dist/languages/de-DE.js +1 -1
  201. package/dist/languages/de-DE.min.js +1 -1
  202. package/dist/languages/en-US.js +1 -1
  203. package/dist/languages/en-US.min.js +1 -1
  204. package/dist/languages/es-MX.js +1 -1
  205. package/dist/languages/es-MX.min.js +1 -1
  206. package/dist/languages/fa-IR.js +1 -1
  207. package/dist/languages/fa-IR.min.js +1 -1
  208. package/dist/languages/fr-FR.js +1 -1
  209. package/dist/languages/fr-FR.min.js +1 -1
  210. package/dist/languages/hr-HR.js +1 -1
  211. package/dist/languages/hr-HR.min.js +1 -1
  212. package/dist/languages/it-IT.js +1 -1
  213. package/dist/languages/it-IT.min.js +1 -1
  214. package/dist/languages/ja-JP.js +1 -1
  215. package/dist/languages/ja-JP.min.js +1 -1
  216. package/dist/languages/ko-KR.js +1 -1
  217. package/dist/languages/ko-KR.min.js +1 -1
  218. package/dist/languages/lv-LV.js +1 -1
  219. package/dist/languages/lv-LV.min.js +1 -1
  220. package/dist/languages/nb-NO.js +1 -1
  221. package/dist/languages/nb-NO.min.js +1 -1
  222. package/dist/languages/nl-NL.js +1 -1
  223. package/dist/languages/nl-NL.min.js +1 -1
  224. package/dist/languages/pl-PL.js +1 -1
  225. package/dist/languages/pl-PL.min.js +1 -1
  226. package/dist/languages/pt-BR.js +1 -1
  227. package/dist/languages/pt-BR.min.js +1 -1
  228. package/dist/languages/ru-RU.js +1 -1
  229. package/dist/languages/ru-RU.min.js +1 -1
  230. package/dist/languages/sr-SP.js +1 -1
  231. package/dist/languages/sr-SP.min.js +1 -1
  232. package/dist/languages/zh-CN.js +1 -1
  233. package/dist/languages/zh-CN.min.js +1 -1
  234. package/dist/languages/zh-TW.js +1 -1
  235. package/dist/languages/zh-TW.min.js +1 -1
  236. package/dist/themes/classic.js +467 -0
  237. package/dist/themes/classic.min.js +31 -0
  238. package/dist/themes/horizon.js +467 -0
  239. package/dist/themes/horizon.min.js +31 -0
  240. package/dist/themes/main.js +467 -0
  241. package/dist/themes/main.min.js +31 -0
  242. package/dist/themes/static/variables/colors/ant.js +137 -0
  243. package/dist/themes/static/variables/colors/ant.min.js +31 -0
  244. package/dist/themes/static/variables/colors/classic.js +137 -0
  245. package/dist/themes/static/variables/colors/classic.min.js +31 -0
  246. package/dist/themes/static/variables/colors/horizon.js +137 -0
  247. package/dist/themes/static/variables/colors/horizon.min.js +31 -0
  248. package/dist/themes/static/variables/colors/main.js +137 -0
  249. package/dist/themes/static/variables/colors/main.min.js +31 -0
  250. package/dist/themes/static/variables/colors/material.js +137 -0
  251. package/dist/themes/static/variables/colors/material.min.js +31 -0
  252. package/dist/themes/static/variables/colors/shadcn.js +137 -0
  253. package/dist/themes/static/variables/colors/shadcn.min.js +31 -0
  254. package/dist/themes/static/variables/density.js +163 -0
  255. package/dist/themes/static/variables/density.min.js +31 -0
  256. package/dist/themes/static/variables/helpers/iconsMap.js +240 -0
  257. package/dist/themes/static/variables/helpers/iconsMap.min.js +31 -0
  258. package/dist/themes/static/variables/icons/horizon.js +135 -0
  259. package/dist/themes/static/variables/icons/horizon.min.js +31 -0
  260. package/dist/themes/static/variables/icons/main.js +135 -0
  261. package/dist/themes/static/variables/icons/main.min.js +31 -0
  262. package/dist/themes/static/variables/sizing.js +126 -0
  263. package/dist/themes/static/variables/sizing.min.js +31 -0
  264. package/dist/themes/static/variables/tokens/classic.js +375 -0
  265. package/dist/themes/static/variables/tokens/classic.min.js +31 -0
  266. package/dist/themes/static/variables/tokens/horizon.js +375 -0
  267. package/dist/themes/static/variables/tokens/horizon.min.js +31 -0
  268. package/dist/themes/static/variables/tokens/main.js +375 -0
  269. package/dist/themes/static/variables/tokens/main.min.js +31 -0
  270. package/editorManager.js +0 -1
  271. package/editorManager.mjs +0 -1
  272. package/editors/autocompleteEditor/autocompleteEditor.js +5 -23
  273. package/editors/autocompleteEditor/autocompleteEditor.mjs +6 -24
  274. package/editors/baseEditor/baseEditor.js +18 -13
  275. package/editors/baseEditor/baseEditor.mjs +18 -13
  276. package/editors/dateEditor/dateEditor.js +9 -3
  277. package/editors/dateEditor/dateEditor.mjs +9 -3
  278. package/editors/dropdownEditor/dropdownEditor.js +0 -2
  279. package/editors/dropdownEditor/dropdownEditor.mjs +0 -2
  280. package/editors/factory.d.ts +48 -0
  281. package/editors/factory.js +372 -0
  282. package/editors/factory.mjs +368 -0
  283. package/editors/handsontableEditor/handsontableEditor.js +0 -1
  284. package/editors/handsontableEditor/handsontableEditor.mjs +0 -1
  285. package/editors/index.d.ts +7 -0
  286. package/editors/index.js +14 -0
  287. package/editors/index.mjs +9 -2
  288. package/editors/intlDateEditor/index.d.ts +1 -0
  289. package/editors/intlDateEditor/index.js +6 -0
  290. package/editors/intlDateEditor/index.mjs +1 -0
  291. package/editors/intlDateEditor/intlDateEditor.d.ts +7 -0
  292. package/editors/intlDateEditor/intlDateEditor.js +76 -0
  293. package/editors/intlDateEditor/intlDateEditor.mjs +72 -0
  294. package/editors/intlTimeEditor/index.d.ts +1 -0
  295. package/editors/intlTimeEditor/index.js +6 -0
  296. package/editors/intlTimeEditor/index.mjs +1 -0
  297. package/editors/intlTimeEditor/intlTimeEditor.d.ts +7 -0
  298. package/editors/intlTimeEditor/intlTimeEditor.js +72 -0
  299. package/editors/intlTimeEditor/intlTimeEditor.mjs +68 -0
  300. package/editors/multiSelectEditor/controllers/dropdownController.js +566 -0
  301. package/editors/multiSelectEditor/controllers/dropdownController.mjs +561 -0
  302. package/editors/multiSelectEditor/controllers/inputController.js +101 -0
  303. package/editors/multiSelectEditor/controllers/inputController.mjs +96 -0
  304. package/editors/multiSelectEditor/controllers/selectedItemsController.js +124 -0
  305. package/editors/multiSelectEditor/controllers/selectedItemsController.mjs +120 -0
  306. package/editors/multiSelectEditor/controllers/utils.js +275 -0
  307. package/editors/multiSelectEditor/controllers/utils.mjs +258 -0
  308. package/editors/multiSelectEditor/index.js +6 -0
  309. package/editors/multiSelectEditor/index.mjs +1 -0
  310. package/editors/multiSelectEditor/multiSelectEditor.js +509 -0
  311. package/editors/multiSelectEditor/multiSelectEditor.mjs +504 -0
  312. package/editors/multiSelectEditor/utils/utils.js +57 -0
  313. package/editors/multiSelectEditor/utils/utils.mjs +50 -0
  314. package/editors/passwordEditor/passwordEditor.js +0 -1
  315. package/editors/passwordEditor/passwordEditor.mjs +0 -1
  316. package/editors/registry.js +4 -4
  317. package/editors/registry.mjs +4 -4
  318. package/editors/selectEditor/selectEditor.js +1 -1
  319. package/editors/selectEditor/selectEditor.mjs +1 -1
  320. package/editors/textEditor/textEditor.js +4 -2
  321. package/editors/textEditor/textEditor.mjs +4 -2
  322. package/eventManager.js +0 -2
  323. package/eventManager.mjs +0 -2
  324. package/focusManager/grid.js +0 -1
  325. package/focusManager/grid.mjs +0 -1
  326. package/focusManager/index.js +0 -2
  327. package/focusManager/scopeManager.js +5 -8
  328. package/focusManager/scopeManager.mjs +5 -8
  329. package/focusManager/utils/focusDetector.js +5 -11
  330. package/focusManager/utils/focusDetector.mjs +5 -11
  331. package/helpers/a11y.js +2 -0
  332. package/helpers/a11y.mjs +1 -0
  333. package/helpers/array.js +26 -15
  334. package/helpers/array.mjs +25 -15
  335. package/helpers/console.js +33 -0
  336. package/helpers/console.mjs +32 -0
  337. package/helpers/constants.js +4 -0
  338. package/helpers/constants.mjs +1 -0
  339. package/helpers/data.js +0 -4
  340. package/helpers/data.mjs +0 -4
  341. package/helpers/dateTime.d.ts +5 -0
  342. package/helpers/dateTime.js +110 -0
  343. package/helpers/dateTime.mjs +102 -0
  344. package/helpers/dom/element.d.ts +1 -1
  345. package/helpers/dom/element.js +23 -20
  346. package/helpers/dom/element.mjs +23 -20
  347. package/helpers/errors.d.ts +1 -0
  348. package/helpers/errors.js +21 -0
  349. package/helpers/errors.mjs +17 -0
  350. package/helpers/index.d.ts +2 -1
  351. package/helpers/mixed.js +10 -7
  352. package/helpers/mixed.mjs +10 -6
  353. package/helpers/moves.js +0 -4
  354. package/helpers/moves.mjs +0 -4
  355. package/helpers/number.js +0 -9
  356. package/helpers/number.mjs +0 -9
  357. package/helpers/object.js +47 -6
  358. package/helpers/object.mjs +45 -6
  359. package/helpers/string.js +15 -2
  360. package/helpers/string.mjs +14 -2
  361. package/helpers/templateLiteralTag.js +0 -3
  362. package/helpers/templateLiteralTag.mjs +0 -3
  363. package/helpers/unicode.js +0 -1
  364. package/helpers/unicode.mjs +0 -1
  365. package/helpers/wrappers/jquery.js +2 -2
  366. package/helpers/wrappers/jquery.mjs +2 -2
  367. package/i18n/index.js +0 -2
  368. package/i18n/phraseFormatters/substituteVariables.js +0 -2
  369. package/i18n/phraseFormatters/substituteVariables.mjs +0 -2
  370. package/i18n/registry.js +0 -2
  371. package/i18n/registry.mjs +0 -2
  372. package/index.d.ts +85 -9
  373. package/index.js +18 -3
  374. package/index.mjs +18 -3
  375. package/languages/all.js +1 -1
  376. package/languages/ar-AR.js +1 -1
  377. package/languages/cs-CZ.js +1 -1
  378. package/languages/de-CH.js +1 -1
  379. package/languages/de-DE.js +1 -1
  380. package/languages/en-US.js +1 -1
  381. package/languages/es-MX.js +1 -1
  382. package/languages/fa-IR.js +1 -1
  383. package/languages/fr-FR.js +1 -1
  384. package/languages/hr-HR.js +1 -1
  385. package/languages/index.js +1 -1
  386. package/languages/it-IT.js +1 -1
  387. package/languages/ja-JP.js +1 -1
  388. package/languages/ko-KR.js +1 -1
  389. package/languages/lv-LV.js +1 -1
  390. package/languages/nb-NO.js +1 -1
  391. package/languages/nl-NL.js +1 -1
  392. package/languages/pl-PL.js +1 -1
  393. package/languages/pt-BR.js +1 -1
  394. package/languages/ru-RU.js +1 -1
  395. package/languages/sr-SP.js +1 -1
  396. package/languages/zh-CN.js +1 -1
  397. package/languages/zh-TW.js +1 -1
  398. package/mixins/hooksRefRegisterer.js +0 -1
  399. package/mixins/hooksRefRegisterer.mjs +0 -1
  400. package/mixins/localHooks.js +0 -1
  401. package/mixins/localHooks.mjs +0 -1
  402. package/package.json +184 -78
  403. package/plugins/autoColumnSize/autoColumnSize.js +4 -7
  404. package/plugins/autoColumnSize/autoColumnSize.mjs +4 -7
  405. package/plugins/autoRowSize/autoRowSize.js +8 -9
  406. package/plugins/autoRowSize/autoRowSize.mjs +8 -9
  407. package/plugins/autofill/autofill.js +7 -8
  408. package/plugins/autofill/autofill.mjs +7 -8
  409. package/plugins/base/base.js +3 -7
  410. package/plugins/base/base.mjs +3 -7
  411. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +0 -1
  412. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +0 -1
  413. package/plugins/collapsibleColumns/collapsibleColumns.js +2 -3
  414. package/plugins/collapsibleColumns/collapsibleColumns.mjs +2 -3
  415. package/plugins/columnSorting/columnSorting.js +2 -64
  416. package/plugins/columnSorting/columnSorting.mjs +2 -64
  417. package/plugins/columnSorting/columnStatesManager.js +0 -3
  418. package/plugins/columnSorting/columnStatesManager.mjs +0 -3
  419. package/plugins/columnSorting/domHelpers.js +0 -1
  420. package/plugins/columnSorting/domHelpers.mjs +0 -1
  421. package/plugins/columnSorting/sortFunction/intlDate.js +17 -0
  422. package/plugins/columnSorting/sortFunction/intlDate.mjs +13 -0
  423. package/plugins/columnSorting/sortFunction/intlTime.js +17 -0
  424. package/plugins/columnSorting/sortFunction/intlTime.mjs +13 -0
  425. package/plugins/columnSorting/sortService/registry.js +5 -1
  426. package/plugins/columnSorting/sortService/registry.mjs +4 -0
  427. package/plugins/columnSorting/utils.js +107 -10
  428. package/plugins/columnSorting/utils.mjs +105 -10
  429. package/plugins/columnSummary/columnSummary.js +2 -2
  430. package/plugins/columnSummary/columnSummary.mjs +2 -2
  431. package/plugins/columnSummary/endpoints.js +0 -5
  432. package/plugins/columnSummary/endpoints.mjs +0 -5
  433. package/plugins/comments/commentEditor.js +0 -1
  434. package/plugins/comments/commentEditor.mjs +0 -1
  435. package/plugins/comments/comments.js +5 -6
  436. package/plugins/comments/comments.mjs +5 -6
  437. package/plugins/comments/displaySwitch.js +0 -1
  438. package/plugins/comments/displaySwitch.mjs +0 -1
  439. package/plugins/comments/editorResizeObserver.js +0 -3
  440. package/plugins/comments/editorResizeObserver.mjs +0 -3
  441. package/plugins/contextMenu/commandExecutor.js +2 -4
  442. package/plugins/contextMenu/commandExecutor.mjs +2 -4
  443. package/plugins/contextMenu/contextMenu.js +0 -1
  444. package/plugins/contextMenu/contextMenu.mjs +0 -1
  445. package/plugins/contextMenu/itemsFactory.js +0 -2
  446. package/plugins/contextMenu/itemsFactory.mjs +0 -2
  447. package/plugins/contextMenu/menu/cursor.js +0 -1
  448. package/plugins/contextMenu/menu/cursor.mjs +0 -1
  449. package/plugins/contextMenu/menu/index.js +0 -2
  450. package/plugins/contextMenu/menu/menu.js +3 -15
  451. package/plugins/contextMenu/menu/menu.mjs +3 -15
  452. package/plugins/contextMenu/menu/menuItemRenderer.js +4 -2
  453. package/plugins/contextMenu/menu/menuItemRenderer.mjs +4 -2
  454. package/plugins/contextMenu/menu/positioner.js +0 -1
  455. package/plugins/contextMenu/menu/positioner.mjs +0 -1
  456. package/plugins/contextMenu/menu/shortcuts.js +0 -3
  457. package/plugins/contextMenu/menu/shortcuts.mjs +0 -3
  458. package/plugins/contextMenu/menu/utils.js +0 -1
  459. package/plugins/contextMenu/menu/utils.mjs +0 -1
  460. package/plugins/copyPaste/copyPaste.js +53 -31
  461. package/plugins/copyPaste/copyPaste.mjs +54 -32
  462. package/plugins/copyPaste/copyableRanges.js +0 -2
  463. package/plugins/copyPaste/copyableRanges.mjs +0 -2
  464. package/plugins/customBorders/customBorders.js +3 -6
  465. package/plugins/customBorders/customBorders.mjs +3 -6
  466. package/plugins/customBorders/utils.js +0 -2
  467. package/plugins/customBorders/utils.mjs +0 -2
  468. package/plugins/dialog/dialog.js +3 -6
  469. package/plugins/dialog/dialog.mjs +3 -6
  470. package/plugins/dialog/templates/base.js +2 -2
  471. package/plugins/dialog/templates/base.mjs +2 -2
  472. package/plugins/dialog/templates/confirm.js +2 -5
  473. package/plugins/dialog/templates/confirm.mjs +2 -5
  474. package/plugins/dialog/ui.js +13 -8
  475. package/plugins/dialog/ui.mjs +13 -8
  476. package/plugins/dragToScroll/dragToScroll.js +0 -1
  477. package/plugins/dragToScroll/dragToScroll.mjs +0 -1
  478. package/plugins/dropdownMenu/dropdownMenu.js +0 -1
  479. package/plugins/dropdownMenu/dropdownMenu.mjs +0 -1
  480. package/plugins/emptyDataState/emptyDataState.js +0 -6
  481. package/plugins/emptyDataState/emptyDataState.mjs +0 -6
  482. package/plugins/emptyDataState/ui.js +0 -4
  483. package/plugins/emptyDataState/ui.mjs +0 -4
  484. package/plugins/exportFile/dataProvider.js +0 -2
  485. package/plugins/exportFile/dataProvider.mjs +0 -2
  486. package/plugins/exportFile/exportFile.js +3 -3
  487. package/plugins/exportFile/exportFile.mjs +3 -3
  488. package/plugins/exportFile/types/_base.js +0 -1
  489. package/plugins/exportFile/types/_base.mjs +0 -1
  490. package/plugins/exportFile/types/csv.js +0 -3
  491. package/plugins/exportFile/types/csv.mjs +0 -3
  492. package/plugins/filters/component/_base.js +3 -3
  493. package/plugins/filters/component/_base.mjs +3 -3
  494. package/plugins/filters/component/actionBar.js +0 -2
  495. package/plugins/filters/component/actionBar.mjs +0 -2
  496. package/plugins/filters/component/condition.js +2 -4
  497. package/plugins/filters/component/condition.mjs +2 -4
  498. package/plugins/filters/component/operators.js +2 -5
  499. package/plugins/filters/component/operators.mjs +2 -5
  500. package/plugins/filters/component/value.js +4 -12
  501. package/plugins/filters/component/value.mjs +4 -12
  502. package/plugins/filters/condition/intlDate/after.js +31 -0
  503. package/plugins/filters/condition/intlDate/after.mjs +26 -0
  504. package/plugins/filters/condition/intlDate/before.js +31 -0
  505. package/plugins/filters/condition/intlDate/before.mjs +26 -0
  506. package/plugins/filters/condition/intlDate/between.js +30 -0
  507. package/plugins/filters/condition/intlDate/between.mjs +25 -0
  508. package/plugins/filters/condition/intlDate/today.js +27 -0
  509. package/plugins/filters/condition/intlDate/today.mjs +22 -0
  510. package/plugins/filters/condition/intlDate/tomorrow.js +28 -0
  511. package/plugins/filters/condition/intlDate/tomorrow.mjs +23 -0
  512. package/plugins/filters/condition/intlDate/yesterday.js +28 -0
  513. package/plugins/filters/condition/intlDate/yesterday.mjs +23 -0
  514. package/plugins/filters/condition/intlTime/after.js +31 -0
  515. package/plugins/filters/condition/intlTime/after.mjs +26 -0
  516. package/plugins/filters/condition/intlTime/before.js +31 -0
  517. package/plugins/filters/condition/intlTime/before.mjs +26 -0
  518. package/plugins/filters/condition/intlTime/between.js +30 -0
  519. package/plugins/filters/condition/intlTime/between.mjs +25 -0
  520. package/plugins/filters/conditionCollection.js +3 -9
  521. package/plugins/filters/conditionCollection.mjs +3 -9
  522. package/plugins/filters/conditionRegisterer.js +3 -3
  523. package/plugins/filters/conditionRegisterer.mjs +3 -3
  524. package/plugins/filters/conditionUpdateObserver.js +3 -7
  525. package/plugins/filters/conditionUpdateObserver.mjs +3 -7
  526. package/plugins/filters/constants.js +14 -2
  527. package/plugins/filters/constants.mjs +14 -2
  528. package/plugins/filters/dataFilter.js +1 -3
  529. package/plugins/filters/dataFilter.mjs +1 -3
  530. package/plugins/filters/filters.js +36 -44
  531. package/plugins/filters/filters.mjs +36 -44
  532. package/plugins/filters/logicalOperationRegisterer.js +2 -2
  533. package/plugins/filters/logicalOperationRegisterer.mjs +2 -2
  534. package/plugins/filters/logicalOperations/conjunction.js +0 -2
  535. package/plugins/filters/logicalOperations/conjunction.mjs +0 -2
  536. package/plugins/filters/logicalOperations/disjunction.js +0 -2
  537. package/plugins/filters/logicalOperations/disjunction.mjs +0 -2
  538. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +2 -4
  539. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.mjs +2 -4
  540. package/plugins/filters/menu/focusController.js +0 -2
  541. package/plugins/filters/menu/focusController.mjs +0 -2
  542. package/plugins/filters/ui/_base.js +0 -1
  543. package/plugins/filters/ui/_base.mjs +0 -1
  544. package/plugins/filters/ui/input.js +1 -1
  545. package/plugins/filters/ui/input.mjs +1 -1
  546. package/plugins/filters/ui/link.js +0 -1
  547. package/plugins/filters/ui/link.mjs +0 -1
  548. package/plugins/filters/ui/multipleSelect.js +0 -6
  549. package/plugins/filters/ui/multipleSelect.mjs +0 -6
  550. package/plugins/filters/ui/radioInput.js +0 -1
  551. package/plugins/filters/ui/radioInput.mjs +0 -1
  552. package/plugins/filters/ui/select.js +0 -1
  553. package/plugins/filters/ui/select.mjs +0 -1
  554. package/plugins/filters/utils.js +0 -11
  555. package/plugins/filters/utils.mjs +0 -11
  556. package/plugins/formulas/engine/register.js +0 -4
  557. package/plugins/formulas/engine/register.mjs +0 -4
  558. package/plugins/formulas/engine/settings.js +0 -3
  559. package/plugins/formulas/engine/settings.mjs +0 -3
  560. package/plugins/formulas/formulas.js +0 -14
  561. package/plugins/formulas/formulas.mjs +0 -14
  562. package/plugins/formulas/indexSyncer/axisSyncer.js +0 -5
  563. package/plugins/formulas/indexSyncer/axisSyncer.mjs +0 -5
  564. package/plugins/formulas/indexSyncer/index.js +0 -1
  565. package/plugins/formulas/indexSyncer/index.mjs +0 -1
  566. package/plugins/hiddenColumns/contextMenuItem/hideColumn.js +0 -1
  567. package/plugins/hiddenColumns/contextMenuItem/hideColumn.mjs +0 -1
  568. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +0 -3
  569. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +0 -3
  570. package/plugins/hiddenColumns/hiddenColumns.js +1 -13
  571. package/plugins/hiddenColumns/hiddenColumns.mjs +1 -13
  572. package/plugins/hiddenRows/contextMenuItem/hideRow.js +0 -1
  573. package/plugins/hiddenRows/contextMenuItem/hideRow.mjs +0 -1
  574. package/plugins/hiddenRows/contextMenuItem/showRow.js +0 -3
  575. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +0 -3
  576. package/plugins/hiddenRows/hiddenRows.js +1 -13
  577. package/plugins/hiddenRows/hiddenRows.mjs +1 -13
  578. package/plugins/index.d.ts +0 -3
  579. package/plugins/index.js +0 -3
  580. package/plugins/index.mjs +1 -3
  581. package/plugins/loading/loading.js +0 -1
  582. package/plugins/loading/loading.mjs +0 -1
  583. package/plugins/manualColumnFreeze/manualColumnFreeze.js +0 -4
  584. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +0 -4
  585. package/plugins/manualColumnMove/manualColumnMove.js +2 -36
  586. package/plugins/manualColumnMove/manualColumnMove.mjs +2 -36
  587. package/plugins/manualColumnMove/ui/_base.js +0 -1
  588. package/plugins/manualColumnMove/ui/_base.mjs +0 -1
  589. package/plugins/manualColumnResize/manualColumnResize.js +4 -39
  590. package/plugins/manualColumnResize/manualColumnResize.mjs +4 -39
  591. package/plugins/manualRowMove/manualRowMove.js +2 -37
  592. package/plugins/manualRowMove/manualRowMove.mjs +2 -37
  593. package/plugins/manualRowMove/ui/_base.js +0 -1
  594. package/plugins/manualRowMove/ui/_base.mjs +0 -1
  595. package/plugins/manualRowResize/manualRowResize.js +3 -38
  596. package/plugins/manualRowResize/manualRowResize.mjs +3 -38
  597. package/plugins/mergeCells/calculations/autofill.js +0 -3
  598. package/plugins/mergeCells/calculations/autofill.mjs +0 -3
  599. package/plugins/mergeCells/calculations/selection.js +0 -2
  600. package/plugins/mergeCells/calculations/selection.mjs +0 -2
  601. package/plugins/mergeCells/cellCoords.js +0 -1
  602. package/plugins/mergeCells/cellCoords.mjs +0 -1
  603. package/plugins/mergeCells/cellsCollection.js +0 -14
  604. package/plugins/mergeCells/cellsCollection.mjs +0 -14
  605. package/plugins/mergeCells/focusOrder.js +0 -4
  606. package/plugins/mergeCells/focusOrder.mjs +0 -4
  607. package/plugins/mergeCells/mergeCells.js +0 -14
  608. package/plugins/mergeCells/mergeCells.mjs +0 -14
  609. package/plugins/multiColumnSorting/domHelpers.js +0 -3
  610. package/plugins/multiColumnSorting/domHelpers.mjs +0 -3
  611. package/plugins/multiColumnSorting/multiColumnSorting.js +0 -1
  612. package/plugins/multiColumnSorting/multiColumnSorting.mjs +0 -1
  613. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +0 -2
  614. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +0 -2
  615. package/plugins/nestedHeaders/nestedHeaders.js +0 -4
  616. package/plugins/nestedHeaders/nestedHeaders.mjs +0 -4
  617. package/plugins/nestedHeaders/stateManager/headersTree.js +0 -1
  618. package/plugins/nestedHeaders/stateManager/headersTree.mjs +0 -1
  619. package/plugins/nestedHeaders/stateManager/index.js +0 -4
  620. package/plugins/nestedHeaders/stateManager/index.mjs +0 -4
  621. package/plugins/nestedHeaders/stateManager/matrixGenerator.js +0 -1
  622. package/plugins/nestedHeaders/stateManager/matrixGenerator.mjs +0 -1
  623. package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.js +0 -7
  624. package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.mjs +0 -7
  625. package/plugins/nestedHeaders/stateManager/nodeModifiers/expand.js +0 -7
  626. package/plugins/nestedHeaders/stateManager/nodeModifiers/expand.mjs +0 -7
  627. package/plugins/nestedHeaders/stateManager/nodeModifiers/hideColumn.js +3 -4
  628. package/plugins/nestedHeaders/stateManager/nodeModifiers/hideColumn.mjs +3 -4
  629. package/plugins/nestedHeaders/stateManager/nodeModifiers/index.js +2 -2
  630. package/plugins/nestedHeaders/stateManager/nodeModifiers/index.mjs +2 -2
  631. package/plugins/nestedHeaders/stateManager/nodeModifiers/showColumn.js +3 -3
  632. package/plugins/nestedHeaders/stateManager/nodeModifiers/showColumn.mjs +3 -3
  633. package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +0 -1
  634. package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +0 -1
  635. package/plugins/nestedHeaders/stateManager/sourceSettings.js +3 -4
  636. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +3 -4
  637. package/plugins/nestedHeaders/utils/ghostTable.js +1 -2
  638. package/plugins/nestedHeaders/utils/ghostTable.mjs +1 -2
  639. package/plugins/nestedRows/data/dataManager.js +0 -2
  640. package/plugins/nestedRows/data/dataManager.mjs +0 -2
  641. package/plugins/nestedRows/nestedRows.js +0 -12
  642. package/plugins/nestedRows/nestedRows.mjs +0 -12
  643. package/plugins/nestedRows/ui/_base.js +0 -1
  644. package/plugins/nestedRows/ui/_base.mjs +0 -1
  645. package/plugins/nestedRows/ui/collapsing.js +0 -1
  646. package/plugins/nestedRows/ui/collapsing.mjs +0 -1
  647. package/plugins/nestedRows/ui/contextMenu.js +0 -1
  648. package/plugins/nestedRows/ui/contextMenu.mjs +0 -1
  649. package/plugins/nestedRows/ui/headers.js +2 -4
  650. package/plugins/nestedRows/ui/headers.mjs +2 -4
  651. package/plugins/nestedRows/utils/rowMoveController.js +0 -6
  652. package/plugins/nestedRows/utils/rowMoveController.mjs +0 -6
  653. package/plugins/pagination/pagination.js +1 -7
  654. package/plugins/pagination/pagination.mjs +1 -7
  655. package/plugins/pagination/strategies/autoPageSize.js +0 -2
  656. package/plugins/pagination/strategies/autoPageSize.mjs +0 -2
  657. package/plugins/pagination/strategies/fixedPageSize.js +0 -1
  658. package/plugins/pagination/strategies/fixedPageSize.mjs +0 -1
  659. package/plugins/pagination/strategies/index.js +2 -2
  660. package/plugins/pagination/strategies/index.mjs +2 -2
  661. package/plugins/pagination/ui.js +0 -3
  662. package/plugins/pagination/ui.mjs +0 -3
  663. package/plugins/registry.js +2 -2
  664. package/plugins/registry.mjs +2 -2
  665. package/plugins/search/search.js +0 -2
  666. package/plugins/search/search.mjs +0 -2
  667. package/plugins/stretchColumns/calculator.js +1 -6
  668. package/plugins/stretchColumns/calculator.mjs +1 -6
  669. package/plugins/stretchColumns/strategies/_base.js +0 -1
  670. package/plugins/stretchColumns/strategies/_base.mjs +0 -1
  671. package/plugins/stretchColumns/strategies/all.js +0 -4
  672. package/plugins/stretchColumns/strategies/all.mjs +0 -4
  673. package/plugins/stretchColumns/strategies/last.js +0 -3
  674. package/plugins/stretchColumns/strategies/last.mjs +0 -3
  675. package/plugins/stretchColumns/stretchColumns.js +0 -3
  676. package/plugins/stretchColumns/stretchColumns.mjs +0 -3
  677. package/plugins/touchScroll/touchScroll.js +0 -2
  678. package/plugins/touchScroll/touchScroll.mjs +0 -2
  679. package/plugins/trimRows/trimRows.js +1 -12
  680. package/plugins/trimRows/trimRows.mjs +1 -12
  681. package/plugins/undoRedo/actions/_base.js +3 -3
  682. package/plugins/undoRedo/actions/_base.mjs +3 -3
  683. package/plugins/undoRedo/actions/cellAlignment.js +0 -1
  684. package/plugins/undoRedo/actions/cellAlignment.mjs +0 -1
  685. package/plugins/undoRedo/actions/columnMove.js +0 -3
  686. package/plugins/undoRedo/actions/columnMove.mjs +0 -3
  687. package/plugins/undoRedo/actions/columnSort.js +0 -1
  688. package/plugins/undoRedo/actions/columnSort.mjs +0 -1
  689. package/plugins/undoRedo/actions/createColumn.js +0 -1
  690. package/plugins/undoRedo/actions/createColumn.mjs +0 -1
  691. package/plugins/undoRedo/actions/createRow.js +0 -1
  692. package/plugins/undoRedo/actions/createRow.mjs +0 -1
  693. package/plugins/undoRedo/actions/dataChange.js +0 -6
  694. package/plugins/undoRedo/actions/dataChange.mjs +0 -6
  695. package/plugins/undoRedo/actions/filters.js +0 -3
  696. package/plugins/undoRedo/actions/filters.mjs +0 -3
  697. package/plugins/undoRedo/actions/mergeCells.js +0 -1
  698. package/plugins/undoRedo/actions/mergeCells.mjs +0 -1
  699. package/plugins/undoRedo/actions/removeColumn.js +0 -4
  700. package/plugins/undoRedo/actions/removeColumn.mjs +0 -4
  701. package/plugins/undoRedo/actions/removeRow.js +0 -4
  702. package/plugins/undoRedo/actions/removeRow.mjs +0 -4
  703. package/plugins/undoRedo/actions/rowMove.js +0 -3
  704. package/plugins/undoRedo/actions/rowMove.mjs +0 -3
  705. package/plugins/undoRedo/actions/unmergeCells.js +0 -1
  706. package/plugins/undoRedo/actions/unmergeCells.mjs +0 -1
  707. package/plugins/undoRedo/undoRedo.js +0 -87
  708. package/plugins/undoRedo/undoRedo.mjs +0 -87
  709. package/plugins/undoRedo/utils.js +1 -13
  710. package/plugins/undoRedo/utils.mjs +1 -13
  711. package/renderers/baseRenderer/baseRenderer.js +3 -1
  712. package/renderers/baseRenderer/baseRenderer.mjs +3 -1
  713. package/renderers/checkboxRenderer/checkboxRenderer.js +2 -7
  714. package/renderers/checkboxRenderer/checkboxRenderer.mjs +2 -7
  715. package/renderers/dateRenderer/dateRenderer.js +6 -0
  716. package/renderers/dateRenderer/dateRenderer.mjs +6 -0
  717. package/renderers/factory.d.ts +20 -0
  718. package/renderers/factory.js +51 -0
  719. package/renderers/factory.mjs +47 -0
  720. package/renderers/htmlRenderer/htmlRenderer.js +1 -4
  721. package/renderers/htmlRenderer/htmlRenderer.mjs +1 -4
  722. package/renderers/index.d.ts +7 -0
  723. package/renderers/index.js +10 -0
  724. package/renderers/index.mjs +7 -2
  725. package/renderers/intlDateRenderer/index.d.ts +1 -0
  726. package/renderers/intlDateRenderer/index.js +7 -0
  727. package/renderers/intlDateRenderer/index.mjs +1 -0
  728. package/renderers/intlDateRenderer/intlDateRenderer.d.ts +6 -0
  729. package/renderers/intlDateRenderer/intlDateRenderer.js +58 -0
  730. package/renderers/intlDateRenderer/intlDateRenderer.mjs +53 -0
  731. package/renderers/intlTimeRenderer/index.d.ts +1 -0
  732. package/renderers/intlTimeRenderer/index.js +7 -0
  733. package/renderers/intlTimeRenderer/index.mjs +1 -0
  734. package/renderers/intlTimeRenderer/intlTimeRenderer.d.ts +6 -0
  735. package/renderers/intlTimeRenderer/intlTimeRenderer.js +57 -0
  736. package/renderers/intlTimeRenderer/intlTimeRenderer.mjs +52 -0
  737. package/renderers/multiSelectRenderer/index.js +7 -0
  738. package/renderers/multiSelectRenderer/index.mjs +1 -0
  739. package/renderers/multiSelectRenderer/multiSelectRenderer.js +60 -0
  740. package/renderers/multiSelectRenderer/multiSelectRenderer.mjs +56 -0
  741. package/renderers/multiSelectRenderer/utils/utils.js +270 -0
  742. package/renderers/multiSelectRenderer/utils/utils.mjs +258 -0
  743. package/renderers/numericRenderer/index.d.ts +1 -1
  744. package/renderers/numericRenderer/index.js +1 -1
  745. package/renderers/numericRenderer/index.mjs +1 -1
  746. package/renderers/numericRenderer/numericRenderer.d.ts +1 -0
  747. package/renderers/numericRenderer/numericRenderer.js +19 -22
  748. package/renderers/numericRenderer/numericRenderer.mjs +18 -20
  749. package/renderers/numericRenderer/utils.js +64 -0
  750. package/renderers/numericRenderer/utils.mjs +57 -0
  751. package/renderers/passwordRenderer/passwordRenderer.js +22 -12
  752. package/renderers/passwordRenderer/passwordRenderer.mjs +21 -12
  753. package/renderers/registry.d.ts +1 -1
  754. package/renderers/registry.js +51 -3
  755. package/renderers/registry.mjs +51 -3
  756. package/renderers/textRenderer/textRenderer.js +0 -2
  757. package/renderers/textRenderer/textRenderer.mjs +0 -2
  758. package/renderers/timeRenderer/timeRenderer.js +6 -0
  759. package/renderers/timeRenderer/timeRenderer.mjs +6 -0
  760. package/selection/highlight/highlight.js +0 -2
  761. package/selection/highlight/highlight.mjs +0 -2
  762. package/selection/highlight/visualSelection.js +0 -1
  763. package/selection/highlight/visualSelection.mjs +0 -1
  764. package/selection/index.js +0 -2
  765. package/selection/mouseEventHandler.js +0 -2
  766. package/selection/mouseEventHandler.mjs +0 -2
  767. package/selection/range.js +0 -7
  768. package/selection/range.mjs +0 -7
  769. package/selection/selection.js +6 -15
  770. package/selection/selection.mjs +6 -15
  771. package/selection/transformation/_base.js +6 -6
  772. package/selection/transformation/_base.mjs +6 -6
  773. package/selection/transformation/focus.js +2 -2
  774. package/selection/transformation/focus.mjs +2 -2
  775. package/selection/utils.js +3 -13
  776. package/selection/utils.mjs +3 -13
  777. package/settings.d.ts +9 -3
  778. package/shortcutContexts/commands/editor/open.js +0 -2
  779. package/shortcutContexts/commands/editor/open.mjs +0 -2
  780. package/shortcutContexts/commands/moveCellSelection/inlineEnd.js +0 -2
  781. package/shortcutContexts/commands/moveCellSelection/inlineEnd.mjs +0 -2
  782. package/shortcutContexts/commands/moveCellSelection/inlineStart.js +0 -2
  783. package/shortcutContexts/commands/moveCellSelection/inlineStart.mjs +0 -2
  784. package/shortcutContexts/grid.js +11 -12
  785. package/shortcutContexts/grid.mjs +11 -12
  786. package/shortcutContexts/index.js +0 -2
  787. package/shortcuts/context.js +4 -8
  788. package/shortcuts/context.mjs +4 -8
  789. package/shortcuts/keyObserver.js +0 -7
  790. package/shortcuts/keyObserver.mjs +0 -7
  791. package/shortcuts/manager.js +2 -2
  792. package/shortcuts/manager.mjs +2 -2
  793. package/shortcuts/recorder.js +0 -1
  794. package/shortcuts/recorder.mjs +0 -1
  795. package/shortcuts/utils.js +0 -2
  796. package/shortcuts/utils.mjs +0 -2
  797. package/styles/handsontable.css +302 -83
  798. package/styles/handsontable.min.css +3 -3
  799. package/styles/handsontableStyles.js +6 -0
  800. package/styles/handsontableStyles.mjs +4 -0
  801. package/styles/ht-icons-horizon.css +55 -61
  802. package/styles/ht-icons-horizon.min.css +3 -3
  803. package/styles/ht-icons-main.css +55 -61
  804. package/styles/ht-icons-main.min.css +3 -3
  805. package/styles/ht-theme-classic-no-icons.css +302 -374
  806. package/styles/ht-theme-classic-no-icons.min.css +3 -3
  807. package/styles/ht-theme-classic.css +383 -408
  808. package/styles/ht-theme-classic.min.css +3 -3
  809. package/styles/ht-theme-horizon-no-icons.css +300 -378
  810. package/styles/ht-theme-horizon-no-icons.min.css +3 -3
  811. package/styles/ht-theme-horizon.css +381 -412
  812. package/styles/ht-theme-horizon.min.css +3 -3
  813. package/styles/ht-theme-main-no-icons.css +302 -371
  814. package/styles/ht-theme-main-no-icons.min.css +3 -3
  815. package/styles/ht-theme-main.css +383 -405
  816. package/styles/ht-theme-main.min.css +3 -3
  817. package/tableView.js +16 -4
  818. package/tableView.mjs +16 -4
  819. package/themes/engine/builder.js +251 -0
  820. package/themes/engine/builder.mjs +246 -0
  821. package/themes/engine/index.js +7 -0
  822. package/themes/engine/index.mjs +2 -0
  823. package/themes/engine/manager.js +188 -0
  824. package/themes/engine/manager.mjs +183 -0
  825. package/themes/engine/utils/cssVariables.js +132 -0
  826. package/themes/engine/utils/cssVariables.mjs +128 -0
  827. package/themes/engine/utils/validation.js +348 -0
  828. package/themes/engine/utils/validation.mjs +342 -0
  829. package/themes/index.js +15 -0
  830. package/themes/index.mjs +2 -0
  831. package/themes/registry.js +131 -0
  832. package/themes/registry.mjs +122 -0
  833. package/themes/static/variables/colors/ant.d.ts +4 -0
  834. package/themes/static/variables/colors/ant.js +32 -0
  835. package/themes/static/variables/colors/ant.mjs +30 -0
  836. package/themes/static/variables/colors/classic.d.ts +4 -0
  837. package/themes/static/variables/colors/classic.js +32 -0
  838. package/themes/static/variables/colors/classic.mjs +30 -0
  839. package/themes/static/variables/colors/horizon.d.ts +4 -0
  840. package/themes/static/variables/colors/horizon.js +32 -0
  841. package/themes/static/variables/colors/horizon.mjs +30 -0
  842. package/themes/static/variables/colors/main.d.ts +4 -0
  843. package/themes/static/variables/colors/main.js +32 -0
  844. package/themes/static/variables/colors/main.mjs +30 -0
  845. package/themes/static/variables/colors/material.d.ts +4 -0
  846. package/themes/static/variables/colors/material.js +32 -0
  847. package/themes/static/variables/colors/material.mjs +30 -0
  848. package/themes/static/variables/colors/shadcn.d.ts +4 -0
  849. package/themes/static/variables/colors/shadcn.js +32 -0
  850. package/themes/static/variables/colors/shadcn.mjs +30 -0
  851. package/themes/static/variables/density.d.ts +4 -0
  852. package/themes/static/variables/density.js +59 -0
  853. package/themes/static/variables/density.mjs +57 -0
  854. package/themes/static/variables/helpers/iconsMap.d.ts +3 -0
  855. package/themes/static/variables/helpers/iconsMap.js +139 -0
  856. package/themes/static/variables/helpers/iconsMap.mjs +135 -0
  857. package/themes/static/variables/icons/horizon.d.ts +4 -0
  858. package/themes/static/variables/icons/horizon.js +29 -0
  859. package/themes/static/variables/icons/horizon.mjs +28 -0
  860. package/themes/static/variables/icons/main.d.ts +4 -0
  861. package/themes/static/variables/icons/main.js +29 -0
  862. package/themes/static/variables/icons/main.mjs +28 -0
  863. package/themes/static/variables/sizing.d.ts +4 -0
  864. package/themes/static/variables/sizing.js +22 -0
  865. package/themes/static/variables/sizing.mjs +20 -0
  866. package/themes/static/variables/tokens/classic.d.ts +4 -0
  867. package/themes/static/variables/tokens/classic.js +270 -0
  868. package/themes/static/variables/tokens/classic.mjs +268 -0
  869. package/themes/static/variables/tokens/horizon.d.ts +4 -0
  870. package/themes/static/variables/tokens/horizon.js +270 -0
  871. package/themes/static/variables/tokens/horizon.mjs +268 -0
  872. package/themes/static/variables/tokens/main.d.ts +4 -0
  873. package/themes/static/variables/tokens/main.js +270 -0
  874. package/themes/static/variables/tokens/main.mjs +268 -0
  875. package/themes/theme/classic.d.ts +3 -0
  876. package/themes/theme/classic.js +14 -0
  877. package/themes/theme/classic.mjs +11 -0
  878. package/themes/theme/horizon.d.ts +3 -0
  879. package/themes/theme/horizon.js +14 -0
  880. package/themes/theme/horizon.mjs +11 -0
  881. package/themes/theme/index.d.ts +5 -0
  882. package/themes/theme/index.js +9 -0
  883. package/themes/theme/index.mjs +3 -0
  884. package/themes/theme/main.d.ts +3 -0
  885. package/themes/theme/main.js +14 -0
  886. package/themes/theme/main.mjs +11 -0
  887. package/themes.d.ts +491 -0
  888. package/translations/changesObservable/observable.js +0 -10
  889. package/translations/changesObservable/observable.mjs +0 -10
  890. package/translations/changesObservable/observer.js +0 -1
  891. package/translations/changesObservable/observer.mjs +0 -1
  892. package/translations/changesObservable/utils.js +0 -1
  893. package/translations/changesObservable/utils.mjs +0 -1
  894. package/translations/index.js +0 -2
  895. package/translations/indexMapper.js +3 -14
  896. package/translations/indexMapper.mjs +3 -14
  897. package/translations/mapCollections/aggregatedCollection.js +0 -2
  898. package/translations/mapCollections/aggregatedCollection.mjs +0 -2
  899. package/translations/mapCollections/index.js +0 -2
  900. package/translations/mapCollections/mapCollection.js +0 -3
  901. package/translations/mapCollections/mapCollection.mjs +0 -3
  902. package/translations/maps/hidingMap.js +0 -1
  903. package/translations/maps/hidingMap.mjs +0 -1
  904. package/translations/maps/index.js +2 -4
  905. package/translations/maps/index.mjs +2 -2
  906. package/translations/maps/indexMap.js +0 -2
  907. package/translations/maps/indexMap.mjs +0 -2
  908. package/translations/maps/linkedPhysicalIndexToValueMap.js +0 -3
  909. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +0 -3
  910. package/translations/maps/trimmingMap.js +0 -1
  911. package/translations/maps/trimmingMap.mjs +0 -1
  912. package/translations/maps/utils/actionsOnIndexes.js +0 -2
  913. package/translations/maps/utils/actionsOnIndexes.mjs +0 -2
  914. package/translations/maps/utils/index.js +2 -2
  915. package/translations/maps/utils/index.mjs +2 -2
  916. package/translations/maps/utils/physicallyIndexed.js +0 -2
  917. package/translations/maps/utils/physicallyIndexed.mjs +0 -2
  918. package/utils/dataStructures/linkedList.js +0 -1
  919. package/utils/dataStructures/linkedList.mjs +0 -1
  920. package/utils/dataStructures/priorityMap.js +3 -5
  921. package/utils/dataStructures/priorityMap.mjs +3 -5
  922. package/utils/dataStructures/queue.js +0 -1
  923. package/utils/dataStructures/queue.mjs +0 -1
  924. package/utils/dataStructures/stack.js +0 -1
  925. package/utils/dataStructures/stack.mjs +0 -1
  926. package/utils/dataStructures/tree.js +2 -3
  927. package/utils/dataStructures/tree.mjs +2 -3
  928. package/utils/dataStructures/uniqueMap.js +2 -4
  929. package/utils/dataStructures/uniqueMap.mjs +2 -4
  930. package/utils/dataStructures/uniqueSet.js +2 -9
  931. package/utils/dataStructures/uniqueSet.mjs +2 -9
  932. package/utils/ghostTable.js +3 -6
  933. package/utils/ghostTable.mjs +3 -6
  934. package/utils/interval.js +0 -1
  935. package/utils/interval.mjs +0 -1
  936. package/utils/paginator.js +0 -7
  937. package/utils/paginator.mjs +0 -7
  938. package/utils/parseTable.js +0 -6
  939. package/utils/parseTable.mjs +0 -6
  940. package/utils/samplesGenerator.js +2 -3
  941. package/utils/samplesGenerator.mjs +2 -3
  942. package/utils/stylesHandler.js +49 -60
  943. package/utils/stylesHandler.mjs +48 -60
  944. package/validators/autocompleteValidator/autocompleteValidator.js +9 -1
  945. package/validators/autocompleteValidator/autocompleteValidator.mjs +10 -2
  946. package/validators/dateValidator/dateValidator.js +2 -2
  947. package/validators/dateValidator/dateValidator.mjs +1 -1
  948. package/validators/index.d.ts +6 -0
  949. package/validators/index.js +12 -0
  950. package/validators/index.mjs +7 -1
  951. package/validators/intlDateValidator/index.d.ts +1 -0
  952. package/validators/intlDateValidator/index.js +8 -0
  953. package/validators/intlDateValidator/index.mjs +1 -0
  954. package/validators/intlDateValidator/intlDateValidator.d.ts +6 -0
  955. package/validators/intlDateValidator/intlDateValidator.js +39 -0
  956. package/validators/intlDateValidator/intlDateValidator.mjs +34 -0
  957. package/validators/intlTimeValidator/index.d.ts +1 -0
  958. package/validators/intlTimeValidator/index.js +8 -0
  959. package/validators/intlTimeValidator/index.mjs +1 -0
  960. package/validators/intlTimeValidator/intlTimeValidator.d.ts +6 -0
  961. package/validators/intlTimeValidator/intlTimeValidator.js +39 -0
  962. package/validators/intlTimeValidator/intlTimeValidator.mjs +34 -0
  963. package/validators/multiSelectValidator/index.js +6 -0
  964. package/validators/multiSelectValidator/index.mjs +1 -0
  965. package/validators/multiSelectValidator/multiSelectValidator.js +84 -0
  966. package/validators/multiSelectValidator/multiSelectValidator.mjs +80 -0
  967. package/validators/registry.js +2 -2
  968. package/validators/registry.mjs +2 -2
  969. package/dist/README.md +0 -54
  970. package/dist/handsontable.css +0 -2551
  971. package/dist/handsontable.full.css +0 -2781
  972. package/dist/handsontable.full.min.css +0 -51
  973. package/dist/handsontable.min.css +0 -46
  974. package/helpers/date.d.ts +0 -1
  975. package/helpers/date.js +0 -22
  976. package/helpers/date.mjs +0 -18
  977. package/plugins/persistentState/index.d.ts +0 -1
  978. package/plugins/persistentState/index.js +0 -7
  979. package/plugins/persistentState/index.mjs +0 -1
  980. package/plugins/persistentState/persistentState.d.ts +0 -16
  981. package/plugins/persistentState/persistentState.js +0 -159
  982. package/plugins/persistentState/persistentState.mjs +0 -154
  983. package/plugins/persistentState/storage.js +0 -120
  984. package/plugins/persistentState/storage.mjs +0 -117
@@ -125,7 +125,7 @@ class SelectEditor extends _baseEditor.BaseEditor {
125
125
  (0, _object.objectEach)(options, (optionValue, key) => {
126
126
  const optionElement = this.hot.rootDocument.createElement('OPTION');
127
127
  optionElement.value = key;
128
- (0, _element.fastInnerHTML)(optionElement, optionValue);
128
+ (0, _element.fastInnerHTML)(optionElement, optionValue, this.hot.getSettings().sanitizer);
129
129
  this.select.appendChild(optionElement);
130
130
  });
131
131
  }
@@ -122,7 +122,7 @@ export class SelectEditor extends BaseEditor {
122
122
  objectEach(options, (optionValue, key) => {
123
123
  const optionElement = this.hot.rootDocument.createElement('OPTION');
124
124
  optionElement.value = key;
125
- fastInnerHTML(optionElement, optionValue);
125
+ fastInnerHTML(optionElement, optionValue, this.hot.getSettings().sanitizer);
126
126
  this.select.appendChild(optionElement);
127
127
  });
128
128
  }
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- require("core-js/modules/es.error.cause.js");
5
4
  var _baseEditor = require("../baseEditor");
6
5
  var _eventManager = _interopRequireDefault(require("../../eventManager"));
7
6
  var _browser = require("../../helpers/browser");
@@ -188,12 +187,15 @@ class TextEditor extends _baseEditor.BaseEditor {
188
187
 
189
188
  /**
190
189
  * Creates an editor's elements and adds necessary CSS classnames.
190
+ *
191
+ * @param {string} type The type of the element to create.
191
192
  */
192
193
  createElements() {
194
+ let type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'textarea';
193
195
  const {
194
196
  rootDocument
195
197
  } = this.hot;
196
- this.TEXTAREA = rootDocument.createElement('TEXTAREA');
198
+ this.TEXTAREA = rootDocument.createElement(type);
197
199
 
198
200
  // Makes the element recognizable by Hot as its own
199
201
  // component's element.
@@ -1,4 +1,3 @@
1
- import "core-js/modules/es.error.cause.js";
2
1
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
3
2
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
4
3
  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); }
@@ -184,12 +183,15 @@ export class TextEditor extends BaseEditor {
184
183
 
185
184
  /**
186
185
  * Creates an editor's elements and adds necessary CSS classnames.
186
+ *
187
+ * @param {string} type The type of the element to create.
187
188
  */
188
189
  createElements() {
190
+ let type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'textarea';
189
191
  const {
190
192
  rootDocument
191
193
  } = this.hot;
192
- this.TEXTAREA = rootDocument.createElement('TEXTAREA');
194
+ this.TEXTAREA = rootDocument.createElement(type);
193
195
 
194
196
  // Makes the element recognizable by Hot as its own
195
197
  // component's element.
package/eventManager.js CHANGED
@@ -2,8 +2,6 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.getListenersCounter = getListenersCounter;
5
- require("core-js/modules/es.error.cause.js");
6
- require("core-js/modules/es.array.push.js");
7
5
  var _event = require("./helpers/dom/event");
8
6
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
9
7
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
package/eventManager.mjs CHANGED
@@ -1,5 +1,3 @@
1
- import "core-js/modules/es.error.cause.js";
2
- import "core-js/modules/es.array.push.js";
3
1
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
4
2
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
5
3
  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); }
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- require("core-js/modules/es.error.cause.js");
5
4
  var _console = require("../helpers/console");
6
5
  var _element = require("../helpers/dom/element");
7
6
  var _function = require("../helpers/function");
@@ -1,4 +1,3 @@
1
- import "core-js/modules/es.error.cause.js";
2
1
  function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
3
2
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
4
3
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
2
 
3
- require("core-js/modules/esnext.iterator.constructor.js");
4
- require("core-js/modules/esnext.iterator.for-each.js");
5
3
  exports.__esModule = true;
6
4
  var _exportNames = {
7
5
  createFocusScopeManager: true,
@@ -2,11 +2,8 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.createFocusScopeManager = createFocusScopeManager;
5
- require("core-js/modules/es.error.cause.js");
6
- require("core-js/modules/esnext.iterator.constructor.js");
7
- require("core-js/modules/esnext.iterator.filter.js");
8
- require("core-js/modules/esnext.iterator.for-each.js");
9
5
  var _uniqueMap = require("../utils/dataStructures/uniqueMap");
6
+ var _errors = require("../helpers/errors");
10
7
  var _scope = require("./scope");
11
8
  var _eventListener = require("./eventListener");
12
9
  var _constants = require("./constants");
@@ -107,7 +104,7 @@ function createFocusScopeManager(hotInstance) {
107
104
  function registerScope(scopeId, container) {
108
105
  let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
109
106
  if (SCOPES.hasItem(scopeId)) {
110
- throw new Error(`Scope with id "${scopeId}" already registered`);
107
+ (0, _errors.throwWithCause)(`Scope with id "${scopeId}" already registered`);
111
108
  }
112
109
  const scope = (0, _scope.createFocusScope)(hotInstance, container, options);
113
110
  SCOPES.addItem(scopeId, scope);
@@ -122,7 +119,7 @@ function createFocusScopeManager(hotInstance) {
122
119
  */
123
120
  function unregisterScope(scopeId) {
124
121
  if (!SCOPES.hasItem(scopeId)) {
125
- throw new Error(`Scope with id "${scopeId}" not found`);
122
+ (0, _errors.throwWithCause)(`Scope with id "${scopeId}" not found`);
126
123
  }
127
124
  const scope = SCOPES.getItem(scopeId);
128
125
  scope.destroy();
@@ -138,7 +135,7 @@ function createFocusScopeManager(hotInstance) {
138
135
  */
139
136
  function activateScopeById(scopeId) {
140
137
  if (!SCOPES.hasItem(scopeId)) {
141
- throw new Error(`Scope with id "${scopeId}" not found`);
138
+ (0, _errors.throwWithCause)(`Scope with id "${scopeId}" not found`);
142
139
  }
143
140
  activateScope(SCOPES.getItem(scopeId));
144
141
  }
@@ -152,7 +149,7 @@ function createFocusScopeManager(hotInstance) {
152
149
  */
153
150
  function deactivateScopeById(scopeId) {
154
151
  if (!SCOPES.hasItem(scopeId)) {
155
- throw new Error(`Scope with id "${scopeId}" not found`);
152
+ (0, _errors.throwWithCause)(`Scope with id "${scopeId}" not found`);
156
153
  }
157
154
  deactivateScope(SCOPES.getItem(scopeId));
158
155
  }
@@ -1,8 +1,5 @@
1
- import "core-js/modules/es.error.cause.js";
2
- import "core-js/modules/esnext.iterator.constructor.js";
3
- import "core-js/modules/esnext.iterator.filter.js";
4
- import "core-js/modules/esnext.iterator.for-each.js";
5
1
  import { createUniqueMap } from "../utils/dataStructures/uniqueMap.mjs";
2
+ import { throwWithCause } from "../helpers/errors.mjs";
6
3
  import { createFocusScope } from "./scope.mjs";
7
4
  import { useEventListener } from "./eventListener.mjs";
8
5
  import { FOCUS_SOURCES } from "./constants.mjs";
@@ -102,7 +99,7 @@ export function createFocusScopeManager(hotInstance) {
102
99
  function registerScope(scopeId, container) {
103
100
  let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
104
101
  if (SCOPES.hasItem(scopeId)) {
105
- throw new Error(`Scope with id "${scopeId}" already registered`);
102
+ throwWithCause(`Scope with id "${scopeId}" already registered`);
106
103
  }
107
104
  const scope = createFocusScope(hotInstance, container, options);
108
105
  SCOPES.addItem(scopeId, scope);
@@ -117,7 +114,7 @@ export function createFocusScopeManager(hotInstance) {
117
114
  */
118
115
  function unregisterScope(scopeId) {
119
116
  if (!SCOPES.hasItem(scopeId)) {
120
- throw new Error(`Scope with id "${scopeId}" not found`);
117
+ throwWithCause(`Scope with id "${scopeId}" not found`);
121
118
  }
122
119
  const scope = SCOPES.getItem(scopeId);
123
120
  scope.destroy();
@@ -133,7 +130,7 @@ export function createFocusScopeManager(hotInstance) {
133
130
  */
134
131
  function activateScopeById(scopeId) {
135
132
  if (!SCOPES.hasItem(scopeId)) {
136
- throw new Error(`Scope with id "${scopeId}" not found`);
133
+ throwWithCause(`Scope with id "${scopeId}" not found`);
137
134
  }
138
135
  activateScope(SCOPES.getItem(scopeId));
139
136
  }
@@ -147,7 +144,7 @@ export function createFocusScopeManager(hotInstance) {
147
144
  */
148
145
  function deactivateScopeById(scopeId) {
149
146
  if (!SCOPES.hasItem(scopeId)) {
150
- throw new Error(`Scope with id "${scopeId}" not found`);
147
+ throwWithCause(`Scope with id "${scopeId}" not found`);
151
148
  }
152
149
  deactivateScope(SCOPES.getItem(scopeId));
153
150
  }
@@ -2,8 +2,6 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.installFocusDetector = installFocusDetector;
5
- var _element = require("../../helpers/dom/element");
6
- var _a11y = require("../../helpers/a11y");
7
5
  var _constants = require("../constants");
8
6
  /**
9
7
  * @typedef {object} FocusDetector
@@ -60,13 +58,9 @@ function installFocusDetector(hot, wrapperElement) {
60
58
  */
61
59
  function createInputElement(hot, focusSource) {
62
60
  const rootDocument = hot.rootDocument;
63
- const input = rootDocument.createElement('input');
64
- input.type = 'text';
65
- input.name = 'htFocusCatcher';
66
- input.classList.add('htFocusCatcher');
67
- input.dataset.htFocusSource = focusSource;
68
- if (hot.getSettings().ariaTags) {
69
- (0, _element.setAttribute)(input, [(0, _a11y.A11Y_LABEL)('Focus catcher')]);
70
- }
71
- return input;
61
+ const catcher = rootDocument.createElement('div');
62
+ catcher.style.display = 'none';
63
+ catcher.classList.add('htFocusCatcher');
64
+ catcher.dataset.htFocusSource = focusSource;
65
+ return catcher;
72
66
  }
@@ -1,5 +1,3 @@
1
- import { setAttribute } from "../../helpers/dom/element.mjs";
2
- import { A11Y_LABEL } from "../../helpers/a11y.mjs";
3
1
  import { FOCUS_SOURCES } from "../constants.mjs";
4
2
  /**
5
3
  * @typedef {object} FocusDetector
@@ -56,13 +54,9 @@ export function installFocusDetector(hot, wrapperElement) {
56
54
  */
57
55
  function createInputElement(hot, focusSource) {
58
56
  const rootDocument = hot.rootDocument;
59
- const input = rootDocument.createElement('input');
60
- input.type = 'text';
61
- input.name = 'htFocusCatcher';
62
- input.classList.add('htFocusCatcher');
63
- input.dataset.htFocusSource = focusSource;
64
- if (hot.getSettings().ariaTags) {
65
- setAttribute(input, [A11Y_LABEL('Focus catcher')]);
66
- }
67
- return input;
57
+ const catcher = rootDocument.createElement('div');
58
+ catcher.style.display = 'none';
59
+ catcher.classList.add('htFocusCatcher');
60
+ catcher.dataset.htFocusSource = focusSource;
61
+ return catcher;
68
62
  }
package/helpers/a11y.js CHANGED
@@ -37,6 +37,8 @@ const A11Y_DIALOG = () => ['role', 'dialog'];
37
37
  exports.A11Y_DIALOG = A11Y_DIALOG;
38
38
  const A11Y_ALERTDIALOG = () => ['role', 'alertdialog'];
39
39
  exports.A11Y_ALERTDIALOG = A11Y_ALERTDIALOG;
40
+ const A11Y_GROUP = () => ['role', 'group'];
41
+ exports.A11Y_GROUP = A11Y_GROUP;
40
42
  const A11Y_SCOPE_COL = () => ['scope', 'col'];
41
43
  exports.A11Y_SCOPE_COL = A11Y_SCOPE_COL;
42
44
  const A11Y_SCOPE_ROW = () => ['scope', 'row'];
package/helpers/a11y.mjs CHANGED
@@ -16,6 +16,7 @@ export const A11Y_OPTION = () => ['role', 'option'];
16
16
  export const A11Y_CHECKBOX = () => ['role', 'checkbox'];
17
17
  export const A11Y_DIALOG = () => ['role', 'dialog'];
18
18
  export const A11Y_ALERTDIALOG = () => ['role', 'alertdialog'];
19
+ export const A11Y_GROUP = () => ['role', 'group'];
19
20
  export const A11Y_SCOPE_COL = () => ['scope', 'col'];
20
21
  export const A11Y_SCOPE_ROW = () => ['scope', 'row'];
21
22
  export const A11Y_TEXT = () => ['type', 'text'];
package/helpers/array.js CHANGED
@@ -10,6 +10,7 @@ exports.arrayMax = arrayMax;
10
10
  exports.arrayMin = arrayMin;
11
11
  exports.arrayReduce = arrayReduce;
12
12
  exports.arraySum = arraySum;
13
+ exports.arrayToString = arrayToString;
13
14
  exports.arrayUnique = arrayUnique;
14
15
  exports.extendArray = extendArray;
15
16
  exports.getDifferenceOfArrays = getDifferenceOfArrays;
@@ -18,16 +19,6 @@ exports.getUnionOfArrays = getUnionOfArrays;
18
19
  exports.pivot = pivot;
19
20
  exports.stringToArray = stringToArray;
20
21
  exports.to2dArray = to2dArray;
21
- require("core-js/modules/es.array.push.js");
22
- require("core-js/modules/es.set.difference.v2.js");
23
- require("core-js/modules/es.set.intersection.v2.js");
24
- require("core-js/modules/es.set.is-disjoint-from.v2.js");
25
- require("core-js/modules/es.set.is-subset-of.v2.js");
26
- require("core-js/modules/es.set.is-superset-of.v2.js");
27
- require("core-js/modules/es.set.symmetric-difference.v2.js");
28
- require("core-js/modules/es.set.union.v2.js");
29
- require("core-js/modules/esnext.iterator.constructor.js");
30
- require("core-js/modules/esnext.iterator.filter.js");
31
22
  /**
32
23
  * @param {Array} arr An array to process.
33
24
  */
@@ -281,17 +272,25 @@ function getDifferenceOfArrays() {
281
272
  /**
282
273
  * Intersection of two or more arrays.
283
274
  *
284
- * @param {...Array} arrays Array of strings or array of numbers.
275
+ * @param {...Array<*|Function>} args Array of elements followed by a comparator function.
285
276
  * @returns {Array} Returns elements that exists in every array.
286
277
  */
287
278
  function getIntersectionOfArrays() {
288
- for (var _len2 = arguments.length, arrays = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
289
- arrays[_key2] = arguments[_key2];
279
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
280
+ args[_key2] = arguments[_key2];
290
281
  }
291
- const [first, ...rest] = [...arrays];
282
+ const lastArgument = args[args.length - 1];
283
+ let comparator;
284
+ let arrays = args;
285
+ if (typeof lastArgument === 'function') {
286
+ comparator = lastArgument;
287
+ arrays = arrays.slice(0, -1);
288
+ }
289
+ const isMatch = comparator ? (value, array) => array.some(item => comparator(value, item)) : (value, array) => array.includes(value);
290
+ const [first, ...rest] = arrays;
292
291
  let filteredFirstArray = first;
293
292
  arrayEach(rest, array => {
294
- filteredFirstArray = filteredFirstArray.filter(value => array.includes(value));
293
+ filteredFirstArray = filteredFirstArray.filter(value => isMatch(value, array));
295
294
  });
296
295
  return filteredFirstArray;
297
296
  }
@@ -328,4 +327,16 @@ function getUnionOfArrays() {
328
327
  function stringToArray(value) {
329
328
  let delimiter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ' ';
330
329
  return value.split(delimiter);
330
+ }
331
+
332
+ /**
333
+ * Convert an array of strings to a single string.
334
+ *
335
+ * @param {string[]} array Array of strings.
336
+ * @param {string} separator Separator string.
337
+ * @returns {string} Returns a string made by joining all array elements with a separator.
338
+ */
339
+ function arrayToString(array) {
340
+ let separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ' ';
341
+ return array.join(separator);
331
342
  }
package/helpers/array.mjs CHANGED
@@ -1,13 +1,3 @@
1
- import "core-js/modules/es.array.push.js";
2
- import "core-js/modules/es.set.difference.v2.js";
3
- import "core-js/modules/es.set.intersection.v2.js";
4
- import "core-js/modules/es.set.is-disjoint-from.v2.js";
5
- import "core-js/modules/es.set.is-subset-of.v2.js";
6
- import "core-js/modules/es.set.is-superset-of.v2.js";
7
- import "core-js/modules/es.set.symmetric-difference.v2.js";
8
- import "core-js/modules/es.set.union.v2.js";
9
- import "core-js/modules/esnext.iterator.constructor.js";
10
- import "core-js/modules/esnext.iterator.filter.js";
11
1
  /**
12
2
  * @param {Array} arr An array to process.
13
3
  */
@@ -261,17 +251,25 @@ export function getDifferenceOfArrays() {
261
251
  /**
262
252
  * Intersection of two or more arrays.
263
253
  *
264
- * @param {...Array} arrays Array of strings or array of numbers.
254
+ * @param {...Array<*|Function>} args Array of elements followed by a comparator function.
265
255
  * @returns {Array} Returns elements that exists in every array.
266
256
  */
267
257
  export function getIntersectionOfArrays() {
268
- for (var _len2 = arguments.length, arrays = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
269
- arrays[_key2] = arguments[_key2];
258
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
259
+ args[_key2] = arguments[_key2];
270
260
  }
271
- const [first, ...rest] = [...arrays];
261
+ const lastArgument = args[args.length - 1];
262
+ let comparator;
263
+ let arrays = args;
264
+ if (typeof lastArgument === 'function') {
265
+ comparator = lastArgument;
266
+ arrays = arrays.slice(0, -1);
267
+ }
268
+ const isMatch = comparator ? (value, array) => array.some(item => comparator(value, item)) : (value, array) => array.includes(value);
269
+ const [first, ...rest] = arrays;
272
270
  let filteredFirstArray = first;
273
271
  arrayEach(rest, array => {
274
- filteredFirstArray = filteredFirstArray.filter(value => array.includes(value));
272
+ filteredFirstArray = filteredFirstArray.filter(value => isMatch(value, array));
275
273
  });
276
274
  return filteredFirstArray;
277
275
  }
@@ -308,4 +306,16 @@ export function getUnionOfArrays() {
308
306
  export function stringToArray(value) {
309
307
  let delimiter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ' ';
310
308
  return value.split(delimiter);
309
+ }
310
+
311
+ /**
312
+ * Convert an array of strings to a single string.
313
+ *
314
+ * @param {string[]} array Array of strings.
315
+ * @param {string} separator Separator string.
316
+ * @returns {string} Returns a string made by joining all array elements with a separator.
317
+ */
318
+ export function arrayToString(array) {
319
+ let separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ' ';
320
+ return array.join(separator);
311
321
  }
@@ -5,7 +5,9 @@ exports.deprecatedWarn = deprecatedWarn;
5
5
  exports.error = error;
6
6
  exports.info = info;
7
7
  exports.log = log;
8
+ exports.logAggregatedItems = logAggregatedItems;
8
9
  exports.warn = warn;
10
+ var _string = require("./string");
9
11
  var _mixed = require("./mixed");
10
12
  /* eslint-disable no-console */
11
13
  /* eslint-disable no-restricted-globals */
@@ -70,4 +72,35 @@ function error() {
70
72
  if ((0, _mixed.isDefined)(console)) {
71
73
  console.error(...arguments);
72
74
  }
75
+ }
76
+
77
+ /**
78
+ * Logs an aggregated log message with a sample list of items.
79
+ *
80
+ * @param {object} options Log options.
81
+ * @param {Function} [options.logFunction] Function to log the message.
82
+ * @param {string} options.message Message template.
83
+ * @param {Array} options.items List of items to aggregate.
84
+ * @param {number} [options.maxSample=5] Maximum number of items to list.
85
+ * @param {Function} [options.itemFormatter] Formatter for each item.
86
+ */
87
+ function logAggregatedItems() {
88
+ let {
89
+ logFunction = log,
90
+ message,
91
+ items,
92
+ maxSample = 5,
93
+ itemFormatter = item => `${item}`
94
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
95
+ if (!Array.isArray(items) || items.length === 0) {
96
+ return;
97
+ }
98
+ const count = items.length;
99
+ const formattedItems = items.slice(0, maxSample).map(item => ` - ${itemFormatter(item)}`);
100
+ const more = count > maxSample ? ` - ...and ${count - maxSample} more` : '';
101
+ const affectedLines = ['Affected cells:', ...formattedItems, ...(more ? [more] : [])].join('\n');
102
+ logFunction((0, _string.substitute)(message, {
103
+ itemsCount: `${count} cell${count > 1 ? 's' : ''}`,
104
+ affectedCells: affectedLines
105
+ }));
73
106
  }
@@ -1,3 +1,4 @@
1
+ import { substitute } from "./string.mjs";
1
2
  /* eslint-disable no-console */
2
3
  /* eslint-disable no-restricted-globals */
3
4
  /**
@@ -60,4 +61,35 @@ export function error() {
60
61
  if (isDefined(console)) {
61
62
  console.error(...arguments);
62
63
  }
64
+ }
65
+
66
+ /**
67
+ * Logs an aggregated log message with a sample list of items.
68
+ *
69
+ * @param {object} options Log options.
70
+ * @param {Function} [options.logFunction] Function to log the message.
71
+ * @param {string} options.message Message template.
72
+ * @param {Array} options.items List of items to aggregate.
73
+ * @param {number} [options.maxSample=5] Maximum number of items to list.
74
+ * @param {Function} [options.itemFormatter] Formatter for each item.
75
+ */
76
+ export function logAggregatedItems() {
77
+ let {
78
+ logFunction = log,
79
+ message,
80
+ items,
81
+ maxSample = 5,
82
+ itemFormatter = item => `${item}`
83
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
84
+ if (!Array.isArray(items) || items.length === 0) {
85
+ return;
86
+ }
87
+ const count = items.length;
88
+ const formattedItems = items.slice(0, maxSample).map(item => ` - ${itemFormatter(item)}`);
89
+ const more = count > maxSample ? ` - ...and ${count - maxSample} more` : '';
90
+ const affectedLines = ['Affected cells:', ...formattedItems, ...(more ? [more] : [])].join('\n');
91
+ logFunction(substitute(message, {
92
+ itemsCount: `${count} cell${count > 1 ? 's' : ''}`,
93
+ affectedCells: affectedLines
94
+ }));
63
95
  }
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ const BAD_VALUE_TEXT = exports.BAD_VALUE_TEXT = '#bad-value#';
@@ -0,0 +1 @@
1
+ export const BAD_VALUE_TEXT = '#bad-value#';
package/helpers/data.js CHANGED
@@ -10,10 +10,6 @@ exports.isArrayOfArrays = isArrayOfArrays;
10
10
  exports.isArrayOfObjects = isArrayOfObjects;
11
11
  exports.spreadsheetColumnIndex = spreadsheetColumnIndex;
12
12
  exports.spreadsheetColumnLabel = spreadsheetColumnLabel;
13
- require("core-js/modules/es.array.push.js");
14
- require("core-js/modules/esnext.iterator.constructor.js");
15
- require("core-js/modules/esnext.iterator.every.js");
16
- require("core-js/modules/esnext.iterator.for-each.js");
17
13
  var _object = require("./object");
18
14
  const COLUMN_LABEL_BASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
19
15
  const COLUMN_LABEL_BASE_LENGTH = COLUMN_LABEL_BASE.length;
package/helpers/data.mjs CHANGED
@@ -1,7 +1,3 @@
1
- import "core-js/modules/es.array.push.js";
2
- import "core-js/modules/esnext.iterator.constructor.js";
3
- import "core-js/modules/esnext.iterator.every.js";
4
- import "core-js/modules/esnext.iterator.for-each.js";
5
1
  import { deepObjectSize, isObject } from "./object.mjs";
6
2
  const COLUMN_LABEL_BASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
7
3
  const COLUMN_LABEL_BASE_LENGTH = COLUMN_LABEL_BASE.length;
@@ -0,0 +1,5 @@
1
+ export function getNormalizedDate(dateString: string): Date;
2
+ export function parseToLocalTime(timeString: string): Date | null;
3
+ export function isValidTime(timeString: string): boolean;
4
+ export function parseToLocalDate(dateString: string): Date | null;
5
+ export function isValidDate(dateString: string): boolean;
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.getNormalizedDate = getNormalizedDate;
5
+ exports.isValidISODate = isValidISODate;
6
+ exports.isValidTime = isValidTime;
7
+ exports.parseToLocalDate = parseToLocalDate;
8
+ exports.parseToLocalTime = parseToLocalTime;
9
+ var _mixed = require("./mixed");
10
+ /**
11
+ * ISO 8601 date pattern.
12
+ *
13
+ * @type {RegExp}
14
+ */
15
+ const ISO_DATE_REGEX = exports.ISO_DATE_REGEX = /^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$/;
16
+
17
+ /**
18
+ * Get normalized Date object for the ISO formatted date strings.
19
+ * Natively, the date object parsed from a ISO 8601 string will be offsetted by the timezone difference, which may result in returning a wrong date.
20
+ * See: Github issue #3338.
21
+ *
22
+ * @param {string} dateString String representing the date.
23
+ * @returns {Date} The proper Date object.
24
+ */
25
+ function getNormalizedDate(dateString) {
26
+ const nativeDate = new Date(dateString);
27
+
28
+ // NaN if dateString is not in ISO format
29
+ if (!isNaN(new Date(`${dateString}T00:00`).getDate())) {
30
+ // Compensate timezone offset
31
+ return new Date(nativeDate.getTime() + nativeDate.getTimezoneOffset() * 60000);
32
+ }
33
+ return nativeDate;
34
+ }
35
+
36
+ /**
37
+ * Converts a date string to a Date object.
38
+ *
39
+ * @param {*} value The value to parse.
40
+ * @returns {Date | null} The Date object or null if the value is invalid.
41
+ */
42
+ function parseToLocalDate(value) {
43
+ if ((0, _mixed.isEmpty)(value)) {
44
+ return null;
45
+ }
46
+ if (typeof value === 'string' && ISO_DATE_REGEX.test(value)) {
47
+ const [y, m, d] = value.split('-').map(Number);
48
+ return new Date(y, m - 1, d);
49
+ }
50
+ return null;
51
+ }
52
+
53
+ /**
54
+ * Checks if a string is a valid ISO 8601 date.
55
+ *
56
+ * @param {string} value The value to check.
57
+ * @returns {boolean} True if valid ISO date string.
58
+ */
59
+ function isValidISODate(value) {
60
+ if (typeof value !== 'string' || !ISO_DATE_REGEX.test(value)) {
61
+ return false;
62
+ }
63
+ const date = new Date(value);
64
+ return !Number.isNaN(date.getTime()) && value === date.toISOString().slice(0, 10);
65
+ }
66
+
67
+ /**
68
+ * Time pattern: HH:mm, HH:mm:ss, or HH:mm:ss.SSS (24-hour).
69
+ * Same format as HTML input type="time" value; seconds and milliseconds optional.
70
+ *
71
+ * @type {RegExp}
72
+ */
73
+ const TIME_REGEX = exports.TIME_REGEX = /^([01]\d|2[0-3]):([0-5]\d)(?::([0-5]\d)(?:\.(\d{1,3}))?)?$/;
74
+
75
+ /**
76
+ * Parses a time string in HH:mm, HH:mm:ss, or HH:mm:ss.SSS format to a Date with that time on the Unix epoch (1970-01-01).
77
+ * Useful for comparison and sorting. Same format as HTML input type="time" value.
78
+ *
79
+ * @param {*} value The value to parse.
80
+ * @returns {Date | null} The Date object or null if the value is invalid.
81
+ */
82
+ function parseToLocalTime(value) {
83
+ if ((0, _mixed.isEmpty)(value)) {
84
+ return null;
85
+ }
86
+ if (typeof value !== 'string') {
87
+ return null;
88
+ }
89
+ const match = TIME_REGEX.exec(value);
90
+ if (!match) {
91
+ return null;
92
+ }
93
+ const hours = Number(match[1]);
94
+ const minutes = Number(match[2]);
95
+ const seconds = match[3] !== undefined ? Number(match[3]) : 0;
96
+ const msString = match[4];
97
+ const milliseconds = msString !== undefined ? Number(msString.padEnd(3, '0').slice(0, 3)) : 0;
98
+ return new Date(1970, 0, 1, hours, minutes, seconds, milliseconds);
99
+ }
100
+
101
+ /**
102
+ * Checks if a string is a valid time in HH:mm, HH:mm:ss, or HH:mm:ss.SSS format (00:00–23:59).
103
+ * Same format as HTML input type="time" value.
104
+ *
105
+ * @param {string} value The value to check.
106
+ * @returns {boolean} True if valid time string.
107
+ */
108
+ function isValidTime(value) {
109
+ return typeof value === 'string' && TIME_REGEX.test(value);
110
+ }