@ui5/webcomponents 1.18.0-rc.1 → 1.18.0

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 (543) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +1 -0
  3. package/dist/MultiComboBox.js +2 -1
  4. package/dist/MultiComboBox.js.map +1 -1
  5. package/dist/TimePickerBase.d.ts +56 -14
  6. package/dist/TimePickerBase.js +152 -45
  7. package/dist/TimePickerBase.js.map +1 -1
  8. package/dist/TimePickerClock.d.ts +0 -64
  9. package/dist/TimePickerClock.js +11 -118
  10. package/dist/TimePickerClock.js.map +1 -1
  11. package/dist/TimePickerInternals.d.ts +90 -30
  12. package/dist/TimePickerInternals.js +126 -57
  13. package/dist/TimePickerInternals.js.map +1 -1
  14. package/dist/TimeSelectionClocks.d.ts +5 -101
  15. package/dist/TimeSelectionClocks.js +100 -288
  16. package/dist/TimeSelectionClocks.js.map +1 -1
  17. package/dist/TimeSelectionInputs.d.ts +90 -0
  18. package/dist/TimeSelectionInputs.js +322 -0
  19. package/dist/TimeSelectionInputs.js.map +1 -0
  20. package/dist/ToolbarSeparator.d.ts +1 -0
  21. package/dist/ToolbarSeparator.js +1 -0
  22. package/dist/ToolbarSeparator.js.map +1 -1
  23. package/dist/api.json +1 -1
  24. package/dist/assets/parameters-bundle.css-44af6c3f.js +1 -0
  25. package/dist/assets/parameters-bundle.css-48d11955.js +1 -0
  26. package/dist/assets/parameters-bundle.css-5958acfe.js +1 -0
  27. package/dist/assets/parameters-bundle.css-59dcf47e.js +1 -0
  28. package/dist/assets/parameters-bundle.css-7bc8529c.js +1 -0
  29. package/dist/assets/parameters-bundle.css-7bdaa99c.js +1 -0
  30. package/dist/assets/parameters-bundle.css-9367ec53.js +1 -0
  31. package/dist/assets/parameters-bundle.css-9d77d0e7.js +1 -0
  32. package/dist/assets/parameters-bundle.css-a6ce11c0.js +1 -0
  33. package/dist/assets/parameters-bundle.css-af8a424b.js +1 -0
  34. package/dist/assets/parameters-bundle.css-b2d121c0.js +1 -0
  35. package/dist/assets/parameters-bundle.css-ddb7daa3.js +1 -0
  36. package/dist/assets/parameters-bundle.css-ee5ad2b7.js +1 -0
  37. package/dist/assets/parameters-bundle.css-f6857452.js +1 -0
  38. package/dist/assets/parameters-bundle.css-fb46cf79.js +1 -0
  39. package/dist/assets/test/pages/{ComboBox.html-844f4d97.js → ComboBox.html-c7bd32b1.js} +1 -1
  40. package/dist/assets/test/pages/{Icon.html-f39af30c.js → Icon.html-bab65495.js} +1 -1
  41. package/dist/assets/test/pages/{Label.html-6a297a12.js → Label.html-79b8b050.js} +1 -1
  42. package/dist/assets/test/pages/{Popups.html-bc438511.js → Popups.html-0e2fd58d.js} +1 -1
  43. package/dist/css/themes/Avatar.css +1 -1
  44. package/dist/css/themes/AvatarGroup.css +1 -1
  45. package/dist/css/themes/Badge.css +1 -1
  46. package/dist/css/themes/Breadcrumbs.css +1 -1
  47. package/dist/css/themes/BusyIndicator.css +1 -1
  48. package/dist/css/themes/Button.css +1 -1
  49. package/dist/css/themes/Calendar.css +1 -1
  50. package/dist/css/themes/CalendarHeader.css +1 -1
  51. package/dist/css/themes/Card.css +1 -1
  52. package/dist/css/themes/CardHeader.css +1 -1
  53. package/dist/css/themes/Carousel.css +1 -1
  54. package/dist/css/themes/CheckBox.css +1 -1
  55. package/dist/css/themes/ColorPalette.css +1 -1
  56. package/dist/css/themes/ColorPaletteItem.css +1 -1
  57. package/dist/css/themes/ColorPalettePopover.css +1 -1
  58. package/dist/css/themes/ColorPicker.css +1 -1
  59. package/dist/css/themes/ComboBox.css +1 -1
  60. package/dist/css/themes/CustomListItem.css +1 -1
  61. package/dist/css/themes/DatePicker.css +1 -1
  62. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  63. package/dist/css/themes/DayPicker.css +1 -1
  64. package/dist/css/themes/Dialog.css +1 -1
  65. package/dist/css/themes/FileUploader.css +1 -1
  66. package/dist/css/themes/GroupHeaderListItem.css +1 -1
  67. package/dist/css/themes/GrowingButton.css +1 -1
  68. package/dist/css/themes/Icon.css +1 -1
  69. package/dist/css/themes/Input.css +1 -1
  70. package/dist/css/themes/InputIcon.css +1 -1
  71. package/dist/css/themes/Link.css +1 -1
  72. package/dist/css/themes/List.css +1 -1
  73. package/dist/css/themes/ListItem.css +1 -1
  74. package/dist/css/themes/ListItemBase.css +1 -1
  75. package/dist/css/themes/Menu.css +1 -1
  76. package/dist/css/themes/MessageStrip.css +1 -1
  77. package/dist/css/themes/MonthPicker.css +1 -1
  78. package/dist/css/themes/MultiComboBox.css +1 -1
  79. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  80. package/dist/css/themes/MultiInput.css +1 -1
  81. package/dist/css/themes/Panel.css +1 -1
  82. package/dist/css/themes/Popover.css +1 -1
  83. package/dist/css/themes/PopupsCommon.css +1 -1
  84. package/dist/css/themes/ProgressIndicator.css +1 -1
  85. package/dist/css/themes/RadioButton.css +1 -1
  86. package/dist/css/themes/RangeSlider.css +1 -1
  87. package/dist/css/themes/RatingIndicator.css +1 -1
  88. package/dist/css/themes/ResponsivePopover.css +1 -1
  89. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  90. package/dist/css/themes/SegmentedButton.css +1 -1
  91. package/dist/css/themes/Select.css +1 -1
  92. package/dist/css/themes/SelectMenu.css +1 -1
  93. package/dist/css/themes/SelectPopover.css +1 -1
  94. package/dist/css/themes/SliderBase.css +1 -1
  95. package/dist/css/themes/SplitButton.css +1 -1
  96. package/dist/css/themes/StepInput.css +1 -1
  97. package/dist/css/themes/Switch.css +1 -1
  98. package/dist/css/themes/TabContainer.css +1 -1
  99. package/dist/css/themes/TabInOverflow.css +1 -1
  100. package/dist/css/themes/TabInStrip.css +1 -1
  101. package/dist/css/themes/TabSemanticIcon.css +1 -1
  102. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  103. package/dist/css/themes/Table.css +1 -1
  104. package/dist/css/themes/TableCell.css +1 -1
  105. package/dist/css/themes/TableColumn.css +1 -1
  106. package/dist/css/themes/TableGroupRow.css +1 -1
  107. package/dist/css/themes/TableRow.css +1 -1
  108. package/dist/css/themes/TextArea.css +2 -2
  109. package/dist/css/themes/TimePicker.css +1 -1
  110. package/dist/css/themes/TimeSelectionInputs.css +1 -0
  111. package/dist/css/themes/Toast.css +1 -1
  112. package/dist/css/themes/ToggleButton.css +1 -1
  113. package/dist/css/themes/Token.css +1 -1
  114. package/dist/css/themes/Tokenizer.css +1 -1
  115. package/dist/css/themes/TokenizerPopover.css +1 -1
  116. package/dist/css/themes/Toolbar.css +1 -1
  117. package/dist/css/themes/ToolbarPopover.css +1 -1
  118. package/dist/css/themes/TreeItem.css +1 -1
  119. package/dist/css/themes/ValueStateMessage.css +1 -1
  120. package/dist/css/themes/WheelSlider.css +1 -1
  121. package/dist/css/themes/YearPicker.css +1 -1
  122. package/dist/css/themes/sap_belize/parameters-bundle.css +1 -1
  123. package/dist/css/themes/sap_belize_hcb/parameters-bundle.css +1 -1
  124. package/dist/css/themes/sap_belize_hcw/parameters-bundle.css +1 -1
  125. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  126. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  127. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  128. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  129. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  130. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  131. package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
  132. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  133. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  134. package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
  135. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  136. package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
  137. package/dist/custom-elements.json +1 -1
  138. package/dist/generated/assets/themes/sap_belize/parameters-bundle.css.json +1 -1
  139. package/dist/generated/assets/themes/sap_belize_hcb/parameters-bundle.css.json +1 -1
  140. package/dist/generated/assets/themes/sap_belize_hcw/parameters-bundle.css.json +1 -1
  141. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  142. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  143. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  144. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  145. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  146. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  147. package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
  148. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  149. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  150. package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
  151. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  152. package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
  153. package/dist/generated/i18n/i18n-defaults.d.ts +4 -1
  154. package/dist/generated/i18n/i18n-defaults.js +4 -1
  155. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  156. package/dist/generated/templates/TimePickerPopoverTemplate.lit.js +2 -1
  157. package/dist/generated/templates/TimePickerPopoverTemplate.lit.js.map +1 -1
  158. package/dist/generated/templates/TimePickerTemplate.lit.js +1 -1
  159. package/dist/generated/templates/TimePickerTemplate.lit.js.map +1 -1
  160. package/dist/generated/templates/TimeSelectionClocksTemplate.lit.js +6 -5
  161. package/dist/generated/templates/TimeSelectionClocksTemplate.lit.js.map +1 -1
  162. package/dist/generated/templates/TimeSelectionInputsTemplate.lit.d.ts +4 -0
  163. package/dist/generated/templates/TimeSelectionInputsTemplate.lit.js +9 -0
  164. package/dist/generated/templates/TimeSelectionInputsTemplate.lit.js.map +1 -0
  165. package/dist/generated/themes/Avatar.css.js +1 -1
  166. package/dist/generated/themes/Avatar.css.js.map +1 -1
  167. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  168. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  169. package/dist/generated/themes/Badge.css.js +1 -1
  170. package/dist/generated/themes/Badge.css.js.map +1 -1
  171. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  172. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  173. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  174. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  175. package/dist/generated/themes/Button.css.js +1 -1
  176. package/dist/generated/themes/Button.css.js.map +1 -1
  177. package/dist/generated/themes/Calendar.css.js +1 -1
  178. package/dist/generated/themes/Calendar.css.js.map +1 -1
  179. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  180. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  181. package/dist/generated/themes/Card.css.js +1 -1
  182. package/dist/generated/themes/Card.css.js.map +1 -1
  183. package/dist/generated/themes/CardHeader.css.js +1 -1
  184. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  185. package/dist/generated/themes/Carousel.css.js +1 -1
  186. package/dist/generated/themes/Carousel.css.js.map +1 -1
  187. package/dist/generated/themes/CheckBox.css.js +1 -1
  188. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  189. package/dist/generated/themes/ColorPalette.css.js +1 -1
  190. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  191. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  192. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  193. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  194. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  195. package/dist/generated/themes/ColorPicker.css.js +1 -1
  196. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  197. package/dist/generated/themes/ComboBox.css.js +1 -1
  198. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  199. package/dist/generated/themes/CustomListItem.css.js +1 -1
  200. package/dist/generated/themes/CustomListItem.css.js.map +1 -1
  201. package/dist/generated/themes/DatePicker.css.js +1 -1
  202. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  203. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  204. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  205. package/dist/generated/themes/DayPicker.css.js +1 -1
  206. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  207. package/dist/generated/themes/Dialog.css.js +1 -1
  208. package/dist/generated/themes/Dialog.css.js.map +1 -1
  209. package/dist/generated/themes/FileUploader.css.js +1 -1
  210. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  211. package/dist/generated/themes/GroupHeaderListItem.css.js +1 -1
  212. package/dist/generated/themes/GroupHeaderListItem.css.js.map +1 -1
  213. package/dist/generated/themes/GrowingButton.css.js +1 -1
  214. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  215. package/dist/generated/themes/Icon.css.js +1 -1
  216. package/dist/generated/themes/Icon.css.js.map +1 -1
  217. package/dist/generated/themes/Input.css.js +1 -1
  218. package/dist/generated/themes/Input.css.js.map +1 -1
  219. package/dist/generated/themes/InputIcon.css.js +1 -1
  220. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  221. package/dist/generated/themes/Link.css.js +1 -1
  222. package/dist/generated/themes/Link.css.js.map +1 -1
  223. package/dist/generated/themes/List.css.js +1 -1
  224. package/dist/generated/themes/List.css.js.map +1 -1
  225. package/dist/generated/themes/ListItem.css.js +1 -1
  226. package/dist/generated/themes/ListItem.css.js.map +1 -1
  227. package/dist/generated/themes/ListItemBase.css.js +1 -1
  228. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  229. package/dist/generated/themes/Menu.css.js +1 -1
  230. package/dist/generated/themes/Menu.css.js.map +1 -1
  231. package/dist/generated/themes/MessageStrip.css.js +1 -1
  232. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  233. package/dist/generated/themes/MonthPicker.css.js +1 -1
  234. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  235. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  236. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  237. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  238. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  239. package/dist/generated/themes/MultiInput.css.js +1 -1
  240. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  241. package/dist/generated/themes/Panel.css.js +1 -1
  242. package/dist/generated/themes/Panel.css.js.map +1 -1
  243. package/dist/generated/themes/Popover.css.js +1 -1
  244. package/dist/generated/themes/Popover.css.js.map +1 -1
  245. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  246. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  247. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  248. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  249. package/dist/generated/themes/RadioButton.css.js +1 -1
  250. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  251. package/dist/generated/themes/RangeSlider.css.js +1 -1
  252. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  253. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  254. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  255. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  256. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  257. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  258. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  259. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  260. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  261. package/dist/generated/themes/Select.css.js +1 -1
  262. package/dist/generated/themes/Select.css.js.map +1 -1
  263. package/dist/generated/themes/SelectMenu.css.js +1 -1
  264. package/dist/generated/themes/SelectMenu.css.js.map +1 -1
  265. package/dist/generated/themes/SelectPopover.css.js +1 -1
  266. package/dist/generated/themes/SelectPopover.css.js.map +1 -1
  267. package/dist/generated/themes/SliderBase.css.js +1 -1
  268. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  269. package/dist/generated/themes/SplitButton.css.js +1 -1
  270. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  271. package/dist/generated/themes/StepInput.css.js +1 -1
  272. package/dist/generated/themes/StepInput.css.js.map +1 -1
  273. package/dist/generated/themes/Switch.css.js +1 -1
  274. package/dist/generated/themes/Switch.css.js.map +1 -1
  275. package/dist/generated/themes/TabContainer.css.js +1 -1
  276. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  277. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  278. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  279. package/dist/generated/themes/TabInStrip.css.js +1 -1
  280. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  281. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  282. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  283. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  284. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  285. package/dist/generated/themes/Table.css.js +1 -1
  286. package/dist/generated/themes/Table.css.js.map +1 -1
  287. package/dist/generated/themes/TableCell.css.js +1 -1
  288. package/dist/generated/themes/TableCell.css.js.map +1 -1
  289. package/dist/generated/themes/TableColumn.css.js +1 -1
  290. package/dist/generated/themes/TableColumn.css.js.map +1 -1
  291. package/dist/generated/themes/TableGroupRow.css.js +1 -1
  292. package/dist/generated/themes/TableGroupRow.css.js.map +1 -1
  293. package/dist/generated/themes/TableRow.css.js +1 -1
  294. package/dist/generated/themes/TableRow.css.js.map +1 -1
  295. package/dist/generated/themes/TextArea.css.js +1 -1
  296. package/dist/generated/themes/TextArea.css.js.map +1 -1
  297. package/dist/generated/themes/TimePicker.css.js +1 -1
  298. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  299. package/dist/generated/themes/TimeSelectionInputs.css.d.ts +3 -0
  300. package/dist/generated/themes/TimeSelectionInputs.css.js +8 -0
  301. package/dist/generated/themes/TimeSelectionInputs.css.js.map +1 -0
  302. package/dist/generated/themes/Toast.css.js +1 -1
  303. package/dist/generated/themes/Toast.css.js.map +1 -1
  304. package/dist/generated/themes/ToggleButton.css.js +1 -1
  305. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  306. package/dist/generated/themes/Token.css.js +1 -1
  307. package/dist/generated/themes/Token.css.js.map +1 -1
  308. package/dist/generated/themes/Tokenizer.css.js +1 -1
  309. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  310. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  311. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  312. package/dist/generated/themes/Toolbar.css.js +1 -1
  313. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  314. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  315. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  316. package/dist/generated/themes/TreeItem.css.js +1 -1
  317. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  318. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  319. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  320. package/dist/generated/themes/WheelSlider.css.js +1 -1
  321. package/dist/generated/themes/WheelSlider.css.js.map +1 -1
  322. package/dist/generated/themes/YearPicker.css.js +1 -1
  323. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  324. package/dist/generated/themes/sap_belize/parameters-bundle.css.js +1 -1
  325. package/dist/generated/themes/sap_belize/parameters-bundle.css.js.map +1 -1
  326. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js +1 -1
  327. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js.map +1 -1
  328. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js +1 -1
  329. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js.map +1 -1
  330. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  331. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  332. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  333. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  334. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  335. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  336. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  337. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  338. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  339. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  340. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  341. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  342. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
  343. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
  344. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  345. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
  346. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  347. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  348. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +1 -1
  349. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
  350. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  351. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  352. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
  353. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
  354. package/dist/i18n/messagebundle.properties +9 -0
  355. package/dist/test/pages/72override.html +1 -1
  356. package/dist/test/pages/AnimanitionOff.html +1 -1
  357. package/dist/test/pages/Avatar.html +1 -1
  358. package/dist/test/pages/AvatarGroup.html +1 -1
  359. package/dist/test/pages/Badge.html +1 -1
  360. package/dist/test/pages/Breadcrumbs.html +1 -1
  361. package/dist/test/pages/BusyIndicator.html +1 -1
  362. package/dist/test/pages/Button.html +1 -1
  363. package/dist/test/pages/ButtonDesign.html +1 -1
  364. package/dist/test/pages/Calendar.html +1 -1
  365. package/dist/test/pages/CalendarConfig.html +1 -1
  366. package/dist/test/pages/Card.html +1 -1
  367. package/dist/test/pages/Carousel.html +1 -1
  368. package/dist/test/pages/CheckBox.html +1 -1
  369. package/dist/test/pages/ColorPalette.html +1 -1
  370. package/dist/test/pages/ColorPalettePopover.html +1 -1
  371. package/dist/test/pages/ColorPicker.html +1 -1
  372. package/dist/test/pages/ComboBox.html +2 -2
  373. package/dist/test/pages/Components.html +1 -1
  374. package/dist/test/pages/CoreControls.html +1 -1
  375. package/dist/test/pages/CoreControls_exp.html +1 -1
  376. package/dist/test/pages/CustomCSS.html +1 -1
  377. package/dist/test/pages/DatePicker.html +1 -1
  378. package/dist/test/pages/DatePicker_test_page.html +1 -1
  379. package/dist/test/pages/DateRangePicker.html +1 -1
  380. package/dist/test/pages/DateTimePicker.html +1 -1
  381. package/dist/test/pages/DateTimePicker_Timezone.html +1 -1
  382. package/dist/test/pages/DayPicker.html +1 -1
  383. package/dist/test/pages/Dialog.html +1 -1
  384. package/dist/test/pages/DialogLifecycle.html +1 -1
  385. package/dist/test/pages/DialogSemantic.html +1 -1
  386. package/dist/test/pages/Eventing.html +1 -1
  387. package/dist/test/pages/F6Test1.html +1 -1
  388. package/dist/test/pages/F6Test2.html +1 -1
  389. package/dist/test/pages/F6Test3.html +1 -1
  390. package/dist/test/pages/F6Test4.html +1 -1
  391. package/dist/test/pages/F6Test5.html +1 -1
  392. package/dist/test/pages/F6Test6.html +1 -1
  393. package/dist/test/pages/F6Test7.html +1 -1
  394. package/dist/test/pages/FileUploader.html +1 -1
  395. package/dist/test/pages/FontFace.html +1 -1
  396. package/dist/test/pages/FormComponents.html +1 -1
  397. package/dist/test/pages/FormSupport.html +1 -1
  398. package/dist/test/pages/HCB.html +1 -1
  399. package/dist/test/pages/Icon.html +2 -2
  400. package/dist/test/pages/Icon_and_theming.html +1 -1
  401. package/dist/test/pages/Icon_custom.html +1 -1
  402. package/dist/test/pages/Input.html +1 -1
  403. package/dist/test/pages/InputFieldLabels.html +1 -1
  404. package/dist/test/pages/InputFieldMinWidth.html +1 -1
  405. package/dist/test/pages/InputIcons.html +1 -1
  406. package/dist/test/pages/Input_quickview.html +1 -1
  407. package/dist/test/pages/Input_variations.html +1 -1
  408. package/dist/test/pages/InputsAlignment.html +1 -1
  409. package/dist/test/pages/InputsLazyLoading.html +1 -1
  410. package/dist/test/pages/ItemNavigation.html +1 -1
  411. package/dist/test/pages/Kitchen.html +1 -1
  412. package/dist/test/pages/Kitchen.openui5.html +1 -1
  413. package/dist/test/pages/Label.html +2 -2
  414. package/dist/test/pages/Link.html +1 -1
  415. package/dist/test/pages/List.html +1 -1
  416. package/dist/test/pages/ListGrowing_Button.html +1 -1
  417. package/dist/test/pages/ListGrowing_Scroll.html +1 -1
  418. package/dist/test/pages/List_keyboard_support.html +1 -1
  419. package/dist/test/pages/List_test_page.html +1 -1
  420. package/dist/test/pages/LitKeyFunction.html +1 -1
  421. package/dist/test/pages/MemoryLeak.html +1 -1
  422. package/dist/test/pages/Menu.html +1 -1
  423. package/dist/test/pages/MessagePage.html +1 -1
  424. package/dist/test/pages/MessageStrip.html +1 -1
  425. package/dist/test/pages/MultiComboBox.html +1 -1
  426. package/dist/test/pages/MultiInput.html +1 -1
  427. package/dist/test/pages/MultiInput_Suggestions.html +1 -1
  428. package/dist/test/pages/OpenUI5-second.html +1 -1
  429. package/dist/test/pages/OpenUI5.html +1 -1
  430. package/dist/test/pages/OpenUI5Nightly.html +1 -1
  431. package/dist/test/pages/Panel.html +1 -1
  432. package/dist/test/pages/Popover.html +1 -1
  433. package/dist/test/pages/PopoverArrowBounds.html +1 -1
  434. package/dist/test/pages/Popups.html +2 -2
  435. package/dist/test/pages/ProgressIndicator.html +1 -1
  436. package/dist/test/pages/RTL.html +1 -1
  437. package/dist/test/pages/RadioButton.html +1 -1
  438. package/dist/test/pages/RangeSlider.html +1 -1
  439. package/dist/test/pages/RatingIndicator.html +1 -1
  440. package/dist/test/pages/ResizeHandler.html +1 -1
  441. package/dist/test/pages/ResponsivePopover.html +1 -1
  442. package/dist/test/pages/SegmentedButton.html +1 -1
  443. package/dist/test/pages/Select.html +1 -1
  444. package/dist/test/pages/SelectMenu.html +1 -1
  445. package/dist/test/pages/SelectMenuLifecycle.html +1 -1
  446. package/dist/test/pages/Simple.html +1 -1
  447. package/dist/test/pages/Slider.html +1 -1
  448. package/dist/test/pages/SplitButton.html +1 -1
  449. package/dist/test/pages/StepInput.html +1 -1
  450. package/dist/test/pages/Switch.html +1 -1
  451. package/dist/test/pages/TabContainer.html +1 -1
  452. package/dist/test/pages/Table-perf-pure.html +1 -1
  453. package/dist/test/pages/Table-perf.html +1 -1
  454. package/dist/test/pages/Table.html +1 -1
  455. package/dist/test/pages/Table2.html +1 -1
  456. package/dist/test/pages/TableAllPopin.html +1 -1
  457. package/dist/test/pages/TableCustomStyling.html +1 -1
  458. package/dist/test/pages/TableGrouping.html +1 -1
  459. package/dist/test/pages/TableGrowingWithButton.html +1 -1
  460. package/dist/test/pages/TableGrowingWithScroll.html +1 -1
  461. package/dist/test/pages/TableSelection.html +1 -1
  462. package/dist/test/pages/TextArea.html +1 -1
  463. package/dist/test/pages/TimePicker.html +1 -1
  464. package/dist/test/pages/TimePickerClock.html +2 -6
  465. package/dist/test/pages/TimeSelection.html +1 -1
  466. package/dist/test/pages/TimeSelectionClocks.html +1 -1
  467. package/dist/test/pages/TimeSelectionInputs.html +89 -0
  468. package/dist/test/pages/Title.html +1 -1
  469. package/dist/test/pages/Toast.html +1 -1
  470. package/dist/test/pages/ToggleButton.html +1 -1
  471. package/dist/test/pages/Tokenizer.html +1 -1
  472. package/dist/test/pages/Toolbar.html +1 -1
  473. package/dist/test/pages/ToolbarButton.html +1 -1
  474. package/dist/test/pages/ToolbarSelect.html +1 -1
  475. package/dist/test/pages/Tree.html +1 -1
  476. package/dist/test/pages/TreeDynamic.html +1 -1
  477. package/dist/test/pages/WheelSlider_Test_Page.html +1 -1
  478. package/dist/test/pages/base/AriaLabelHelper.html +1 -1
  479. package/dist/test/pages/base/DOMObserver.html +1 -1
  480. package/dist/test/pages/base/IconCollection.html +1 -1
  481. package/dist/test/pages/base/IconCollectionInCustomTheme.html +1 -1
  482. package/dist/test/pages/base/IgnoreCustomElements.html +1 -1
  483. package/dist/test/pages/base/InvisibleMessage.html +1 -1
  484. package/dist/test/pages/form.html +1 -1
  485. package/dist/test/pages/i18n-defaultLang.html +1 -1
  486. package/dist/test/pages/i18n-demo.html +1 -1
  487. package/package.json +7 -7
  488. package/src/TimePicker.hbs +10 -2
  489. package/src/TimePickerPopover.hbs +32 -2
  490. package/src/TimeSelectionClocks.hbs +19 -21
  491. package/src/TimeSelectionInputs.hbs +41 -0
  492. package/src/i18n/messagebundle.properties +9 -0
  493. package/src/themes/Button.css +1 -1
  494. package/src/themes/GroupHeaderListItem.css +2 -1
  495. package/src/themes/ListItem.css +2 -2
  496. package/src/themes/MessageStrip.css +2 -4
  497. package/src/themes/RangeSlider.css +0 -14
  498. package/src/themes/SliderBase.css +5 -12
  499. package/src/themes/TableCell.css +1 -1
  500. package/src/themes/TableColumn.css +2 -0
  501. package/src/themes/TimeSelectionInputs.css +25 -0
  502. package/src/themes/base/Button-parameters.css +1 -3
  503. package/src/themes/base/ListItemBase-parameters.css +1 -1
  504. package/src/themes/base/SliderBase-parameters.css +1 -14
  505. package/src/themes/base/Table-parameters.css +1 -0
  506. package/src/themes/base/sizes-parameters.css +1 -1
  507. package/src/themes/sap_belize/SliderBase-parameters.css +0 -1
  508. package/src/themes/sap_belize_hcb/SliderBase-parameters.css +0 -1
  509. package/src/themes/sap_belize_hcw/SliderBase-parameters.css +0 -1
  510. package/src/themes/sap_fiori_3/Button-parameters.css +0 -1
  511. package/src/themes/sap_fiori_3/SliderBase-parameters.css +0 -1
  512. package/src/themes/sap_fiori_3_dark/Button-parameters.css +0 -1
  513. package/src/themes/sap_horizon/Button-parameters.css +1 -2
  514. package/src/themes/sap_horizon/SliderBase-parameters.css +2 -13
  515. package/src/themes/sap_horizon/Table-parameters.css +1 -0
  516. package/src/themes/sap_horizon_dark/Button-parameters.css +1 -2
  517. package/src/themes/sap_horizon_dark/SliderBase-parameters.css +2 -13
  518. package/src/themes/sap_horizon_dark/Table-parameters.css +1 -0
  519. package/src/themes/sap_horizon_dark_exp/Button-parameters.css +1 -3
  520. package/src/themes/sap_horizon_dark_exp/SliderBase-parameters.css +1 -11
  521. package/src/themes/sap_horizon_exp/Button-parameters.css +1 -2
  522. package/src/themes/sap_horizon_exp/SliderBase-parameters.css +1 -12
  523. package/src/themes/sap_horizon_hcb/SliderBase-parameters.css +1 -2
  524. package/src/themes/sap_horizon_hcb/Table-parameters.css +1 -0
  525. package/src/themes/sap_horizon_hcb_exp/SliderBase-parameters.css +1 -2
  526. package/src/themes/sap_horizon_hcw/SliderBase-parameters.css +1 -3
  527. package/src/themes/sap_horizon_hcw/Table-parameters.css +1 -0
  528. package/src/themes/sap_horizon_hcw_exp/SliderBase-parameters.css +1 -3
  529. package/dist/assets/parameters-bundle.css-04eac1e4.js +0 -1
  530. package/dist/assets/parameters-bundle.css-066407fe.js +0 -1
  531. package/dist/assets/parameters-bundle.css-07e27cdc.js +0 -1
  532. package/dist/assets/parameters-bundle.css-08fbe1af.js +0 -1
  533. package/dist/assets/parameters-bundle.css-297ebd11.js +0 -1
  534. package/dist/assets/parameters-bundle.css-4f0a691c.js +0 -1
  535. package/dist/assets/parameters-bundle.css-5f708998.js +0 -1
  536. package/dist/assets/parameters-bundle.css-702fa51b.js +0 -1
  537. package/dist/assets/parameters-bundle.css-77a72033.js +0 -1
  538. package/dist/assets/parameters-bundle.css-8edbcd13.js +0 -1
  539. package/dist/assets/parameters-bundle.css-ad456f56.js +0 -1
  540. package/dist/assets/parameters-bundle.css-d321a215.js +0 -1
  541. package/dist/assets/parameters-bundle.css-d7525b9a.js +0 -1
  542. package/dist/assets/parameters-bundle.css-e16f3f65.js +0 -1
  543. package/dist/assets/parameters-bundle.css-fcc59cd5.js +0 -1
@@ -18,6 +18,27 @@ type TimeSelectionChangeEventDetail = {
18
18
  value: string | undefined;
19
19
  valid: boolean;
20
20
  };
21
+ type TimePickerEntityAttributes = {
22
+ min: number;
23
+ max: number;
24
+ step: number;
25
+ };
26
+ type TimePickerEntityProperties = {
27
+ label: string;
28
+ entity?: string;
29
+ itemMin?: number;
30
+ itemMax?: number;
31
+ value: number;
32
+ stringValue?: string;
33
+ textValue?: string;
34
+ displayStep?: number;
35
+ lastItemReplacement?: number;
36
+ showInnerCircle?: boolean;
37
+ prependZero: boolean;
38
+ active?: boolean;
39
+ hasSeparator?: boolean;
40
+ attributes?: TimePickerEntityAttributes;
41
+ };
21
42
  /**
22
43
  * @class
23
44
  *
@@ -52,29 +73,16 @@ declare class TimePickerInternals extends UI5Element {
52
73
  * HH:mm:ss -> 11:42:35
53
74
  * hh:mm:ss a -> 2:23:15 PM
54
75
  * mm:ss -> 12:04 (only minutes and seconds)
55
- *
76
+
56
77
  * @type {string}
57
78
  * @name sap.ui.webc.main.TimePickerInternals.prototype.formatPattern
58
79
  * @defaultvalue ""
59
80
  * @public
60
81
  */
61
82
  formatPattern: string;
62
- /**
63
- * Determines the minutes step. The minutes clock is populated only by multiples of the step.
64
- * @type {integer}
65
- * @name sap.ui.webc.main.TimePickerInternals.prototype.secondsStep
66
- * @public
67
- */
68
- minutesStep: number;
69
- /**
70
- * Determines the seconds step. The seconds clock is populated only by multiples of the step.
71
- * @type {integer}
72
- * @name sap.ui.webc.main.TimePickerInternals.prototype.secondsStep
73
- * @public
74
- */
75
- secondsStep: number;
76
83
  /**
77
84
  * The index of the active Clock/TogleSpinButton.
85
+ *
78
86
  * @type {integer}
79
87
  * @defaultvalue 0
80
88
  * @private
@@ -87,6 +95,12 @@ declare class TimePickerInternals extends UI5Element {
87
95
  * @private
88
96
  */
89
97
  _calendarType: CalendarType;
98
+ /**
99
+ * Contains currently available Time Picker components depending on time format.
100
+ *
101
+ * @type {Array}
102
+ */
103
+ _entities: Array<TimePickerEntityProperties>;
90
104
  /**
91
105
  * Contains component-to-index map.
92
106
  *
@@ -102,26 +116,23 @@ declare class TimePickerInternals extends UI5Element {
102
116
  */
103
117
  _periods: Array<TimeSelectionPeriodProperties>;
104
118
  /**
105
- * Contains list of separators between the buttons.
119
+ * Id of the cooldown interval
106
120
  *
107
- * @type {Array}
108
- * @private
121
+ * @type {ReturnType}
109
122
  */
110
- _separators: Array<string>;
123
+ _typeCooldownId?: ReturnType<typeof setTimeout>;
111
124
  /**
112
- * Contains separator before AM/PM (if there is any).
125
+ * Exact match number buffer
113
126
  *
114
- * @type {string}
115
- * @private
127
+ * @type {integer}
116
128
  */
117
- _amPmSeparator: string;
129
+ _exactMatch?: number;
118
130
  /**
119
- * Contains separator after all buttons (if there is any).
131
+ * Buffer for entered by keyboard numbers
120
132
  *
121
133
  * @type {string}
122
- * @private
123
134
  */
124
- _lastSeparator: string;
135
+ _keyboardBuffer: string;
125
136
  static i18nBundle: I18nBundle;
126
137
  static onDefine(): Promise<void>;
127
138
  get _hoursConfiguration(): import("./timepicker-utils/TimeSlider.js").HoursConfiguration;
@@ -134,8 +145,6 @@ declare class TimePickerInternals extends UI5Element {
134
145
  get dateValue(): Date;
135
146
  get validDateValue(): Date;
136
147
  get periodsArray(): string[];
137
- get _showAmPmButton(): boolean;
138
- get _pmPressed(): boolean;
139
148
  get _hours(): string;
140
149
  get _minutes(): string;
141
150
  get _seconds(): string;
@@ -146,17 +155,68 @@ declare class TimePickerInternals extends UI5Element {
146
155
  get minutesLabel(): string;
147
156
  get secondsLabel(): string;
148
157
  get clockDialAriaLabel(): string;
149
- get _nextSeparator(): string;
150
158
  setValue(date: Date): void;
151
159
  isValid(value: string): true | Date | Date[] | import("sap/ui/core/date/UI5Date").default | import("sap/ui/core/date/UI5Date").default[];
152
160
  normalizeValue(value: string): string;
153
161
  getFormat(): DateFormat;
154
162
  formatValue(date: Date): string;
155
163
  _componentKey(name: string): keyof TimePickerComponentIndexMap;
156
- _getSeparators(): void;
164
+ _indexFromName(name: string): number;
165
+ /**
166
+ * Returns name of the clock or button from the id of the event target.
167
+ *
168
+ * @returns {string | undefined} name of the clock/button
169
+ */
170
+ _getNameFromId(id: string): string | undefined;
171
+ /**
172
+ * Returns index of the clock or button from the id of the event target.
173
+ *
174
+ * @returns {number} index of the clock/button
175
+ */
176
+ _getIndexFromId(id: string): number;
177
+ /**
178
+ * Changes hours value.
179
+ *
180
+ * @param {hours} number new hours value
181
+ */
182
+ _hoursChange(hours: number): void;
183
+ /**
184
+ * Changes minutes value.
185
+ *
186
+ * @param {minutes} number new minutes value
187
+ */
188
+ _minutesChange(minutes: number): void;
189
+ /**
190
+ * Changes seconds value.
191
+ *
192
+ * @param {seconds} number new seconds value
193
+ */
194
+ _secondsChange(seconds: number): void;
157
195
  _buttonAmPm(): SegmentedButton | null | undefined;
196
+ _createPeriodComponent(): void;
158
197
  _periodChange(evt: PointerEvent): void;
159
198
  _calculatePeriodChange(period: string): void;
199
+ /**
200
+ * Shifts hours value with +/- 12 depending on hour value and day period.
201
+ *
202
+ * @param {number} hours current hours
203
+ * @returns {number} shifted hours
204
+ */
205
+ _shiftHours(hours: number): number;
206
+ /**
207
+ * Clears the currently existing cooldown period and starts new one if requested.
208
+ *
209
+ * @param {boolean} startNewCooldown whether to start new cooldown period after clearing previous one
210
+ */
211
+ _resetCooldown(startNewCooldown: boolean): void;
212
+ /**
213
+ * Starts new cooldown period.
214
+ */
215
+ _startCooldown(): void;
216
+ /**
217
+ * Sets the exact match value. Override if necessary.
218
+ */
219
+ _setExactMatch(): void;
160
220
  }
161
221
  export default TimePickerInternals;
162
222
  export type { TimePickerComponentIndexMap, TimeSelectionChangeEventDetail, };
@@ -19,6 +19,7 @@ import { fetchCldr } from "@ui5/webcomponents-base/dist/asset-registries/LocaleD
19
19
  import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
20
20
  import { getHoursConfigByFormat, getTimeControlsByFormat, } from "./timepicker-utils/TimeSlider.js";
21
21
  import { TIMEPICKER_HOURS_LABEL, TIMEPICKER_MINUTES_LABEL, TIMEPICKER_SECONDS_LABEL, TIMEPICKER_CLOCK_DIAL_LABEL, } from "./generated/i18n/i18n-defaults.js";
22
+ const TYPE_COOLDOWN_DELAY = 1000; // Cooldown delay; 0 = disabled cooldown
22
23
  /**
23
24
  * @class
24
25
  *
@@ -84,12 +85,6 @@ let TimePickerInternals = TimePickerInternals_1 = class TimePickerInternals exte
84
85
  const dayPeriodsAbbrev = this.getFormat().aDayPeriodsAbbrev;
85
86
  return dayPeriodsAbbrev.map((x) => x.toUpperCase());
86
87
  }
87
- get _showAmPmButton() {
88
- return true;
89
- }
90
- get _pmPressed() {
91
- return false;
92
- }
93
88
  get _hours() {
94
89
  let hours;
95
90
  const dateValue = this.validDateValue;
@@ -116,11 +111,11 @@ let TimePickerInternals = TimePickerInternals_1 = class TimePickerInternals exte
116
111
  return seconds.length === 1 ? `0${seconds}` : seconds;
117
112
  }
118
113
  get _period() {
114
+ let period;
115
+ const dateValue = this.validDateValue;
119
116
  if (!this._hoursConfiguration.isTwelveHoursFormat) {
120
117
  return undefined;
121
118
  }
122
- let period;
123
- const dateValue = this.validDateValue;
124
119
  if (this._hoursConfiguration.minHour === 1) {
125
120
  period = dateValue.getHours() >= this._hoursConfiguration.maxHour ? this.periodsArray[1] : this.periodsArray[0];
126
121
  }
@@ -151,10 +146,6 @@ let TimePickerInternals = TimePickerInternals_1 = class TimePickerInternals exte
151
146
  get clockDialAriaLabel() {
152
147
  return TimePickerInternals_1.i18nBundle.getText(TIMEPICKER_CLOCK_DIAL_LABEL);
153
148
  }
154
- get _nextSeparator() {
155
- const sep = this._separators.shift() || "";
156
- return sep;
157
- }
158
149
  setValue(date) {
159
150
  const value = this.formatValue(date);
160
151
  if (this.isValid(value)) {
@@ -191,46 +182,76 @@ let TimePickerInternals = TimePickerInternals_1 = class TimePickerInternals exte
191
182
  return this.getFormat().format(date);
192
183
  }
193
184
  _componentKey(name) {
194
- const key = name;
195
- return key;
185
+ return name;
196
186
  }
197
- _getSeparators() {
198
- // @ts-ignore aFormatArray is a private API of DateFormat
199
- const formatArray = this.getFormat().aFormatArray;
200
- let previousWasEntity = false;
201
- let index;
202
- this._separators = [];
203
- if (!formatArray.length) {
204
- return;
205
- }
206
- if (formatArray[0].type !== "text") {
207
- this._separators.push("");
208
- }
209
- for (index = 0; index < formatArray.length; index++) {
210
- if (formatArray[index].type !== "text") {
211
- if (previousWasEntity) {
212
- // there was previous non-separator entity, and this one is the same too, so add empty separator
213
- this._separators.push("");
214
- }
215
- else {
216
- // this is non-separator entity, set the entity flag
217
- previousWasEntity = true;
218
- }
219
- }
220
- else {
221
- // add separator and clear non-separator entity flag
222
- this._separators.push(formatArray[index].value);
223
- previousWasEntity = false;
224
- }
225
- }
226
- // push one more empty separator for the last entity
227
- if (formatArray[index - 1].type !== "text") {
228
- this._separators.push("");
187
+ _indexFromName(name) {
188
+ return this._componentMap[this._componentKey(name)];
189
+ }
190
+ /**
191
+ * Returns name of the clock or button from the id of the event target.
192
+ *
193
+ * @returns {string | undefined} name of the clock/button
194
+ */
195
+ _getNameFromId(id) {
196
+ const parts = id.split("_");
197
+ return parts.length ? parts[parts.length - 1] : undefined;
198
+ }
199
+ /**
200
+ * Returns index of the clock or button from the id of the event target.
201
+ *
202
+ * @returns {number} index of the clock/button
203
+ */
204
+ _getIndexFromId(id) {
205
+ const name = this._getNameFromId(id);
206
+ return name ? this._indexFromName(name) : 0;
207
+ }
208
+ /**
209
+ * Changes hours value.
210
+ *
211
+ * @param {hours} number new hours value
212
+ */
213
+ _hoursChange(hours) {
214
+ if (this._hoursConfiguration.isTwelveHoursFormat) {
215
+ hours = this._shiftHours(hours);
229
216
  }
217
+ const date = this.validDateValue;
218
+ date.setHours(hours);
219
+ this.setValue(date);
220
+ }
221
+ /**
222
+ * Changes minutes value.
223
+ *
224
+ * @param {minutes} number new minutes value
225
+ */
226
+ _minutesChange(minutes) {
227
+ const date = this.validDateValue;
228
+ date.setMinutes(minutes);
229
+ this.setValue(date);
230
+ }
231
+ /**
232
+ * Changes seconds value.
233
+ *
234
+ * @param {seconds} number new seconds value
235
+ */
236
+ _secondsChange(seconds) {
237
+ const date = this.validDateValue;
238
+ date.setSeconds(seconds);
239
+ this.setValue(date);
230
240
  }
231
241
  _buttonAmPm() {
232
242
  return this._hasPeriodsComponent ? this.shadowRoot?.querySelector(`#${this._id}_AmPm`) : undefined;
233
243
  }
244
+ _createPeriodComponent() {
245
+ if (this._hasPeriodsComponent) {
246
+ // add period item
247
+ this.periodsArray.forEach(item => {
248
+ this._periods.push({
249
+ "label": item,
250
+ "pressed": this._period === item,
251
+ });
252
+ });
253
+ }
254
+ }
234
255
  _periodChange(evt) {
235
256
  const periodItem = evt.target;
236
257
  if (periodItem) {
@@ -248,6 +269,57 @@ let TimePickerInternals = TimePickerInternals_1 = class TimePickerInternals exte
248
269
  }
249
270
  this.setValue(date);
250
271
  }
272
+ /**
273
+ * Shifts hours value with +/- 12 depending on hour value and day period.
274
+ *
275
+ * @param {number} hours current hours
276
+ * @returns {number} shifted hours
277
+ */
278
+ _shiftHours(hours) {
279
+ if (this._period === this.periodsArray[0]) { // AM
280
+ hours = hours === 12 ? 0 : hours;
281
+ }
282
+ else if (this._period === this.periodsArray[1]) { // PM
283
+ hours = hours === 12 ? hours : hours + 12;
284
+ }
285
+ return hours;
286
+ }
287
+ /**
288
+ * Clears the currently existing cooldown period and starts new one if requested.
289
+ *
290
+ * @param {boolean} startNewCooldown whether to start new cooldown period after clearing previous one
291
+ */
292
+ _resetCooldown(startNewCooldown) {
293
+ if (!TYPE_COOLDOWN_DELAY) {
294
+ return; // if delay is 0, cooldown is disabled
295
+ }
296
+ if (this._typeCooldownId) {
297
+ clearTimeout(this._typeCooldownId);
298
+ }
299
+ if (startNewCooldown) {
300
+ this._startCooldown();
301
+ }
302
+ }
303
+ /**
304
+ * Starts new cooldown period.
305
+ */
306
+ _startCooldown() {
307
+ if (!TYPE_COOLDOWN_DELAY) {
308
+ return; // if delay is 0, cooldown is disabled
309
+ }
310
+ this._typeCooldownId = setTimeout(() => {
311
+ this._keyboardBuffer = "";
312
+ this._typeCooldownId = undefined;
313
+ if (this._exactMatch) {
314
+ this._setExactMatch();
315
+ this._exactMatch = undefined;
316
+ }
317
+ }, TYPE_COOLDOWN_DELAY);
318
+ }
319
+ /**
320
+ * Sets the exact match value. Override if necessary.
321
+ */
322
+ _setExactMatch() { }
251
323
  };
252
324
  __decorate([
253
325
  property({ defaultValue: undefined })
@@ -255,18 +327,15 @@ __decorate([
255
327
  __decorate([
256
328
  property()
257
329
  ], TimePickerInternals.prototype, "formatPattern", void 0);
258
- __decorate([
259
- property({ validator: Integer, defaultValue: 1 })
260
- ], TimePickerInternals.prototype, "minutesStep", void 0);
261
- __decorate([
262
- property({ validator: Integer, defaultValue: 1 })
263
- ], TimePickerInternals.prototype, "secondsStep", void 0);
264
330
  __decorate([
265
331
  property({ validator: Integer, defaultValue: 0, noAttribute: true })
266
332
  ], TimePickerInternals.prototype, "_activeIndex", void 0);
267
333
  __decorate([
268
334
  property({ type: CalendarType })
269
335
  ], TimePickerInternals.prototype, "_calendarType", void 0);
336
+ __decorate([
337
+ property({ type: Object, multiple: true })
338
+ ], TimePickerInternals.prototype, "_entities", void 0);
270
339
  __decorate([
271
340
  property({ type: Object })
272
341
  ], TimePickerInternals.prototype, "_componentMap", void 0);
@@ -274,14 +343,14 @@ __decorate([
274
343
  property({ type: Object, multiple: true })
275
344
  ], TimePickerInternals.prototype, "_periods", void 0);
276
345
  __decorate([
277
- property({ multiple: true })
278
- ], TimePickerInternals.prototype, "_separators", void 0);
346
+ property({ validator: Integer, noAttribute: true })
347
+ ], TimePickerInternals.prototype, "_typeCooldownId", void 0);
279
348
  __decorate([
280
- property({ defaultValue: "", noAttribute: true })
281
- ], TimePickerInternals.prototype, "_amPmSeparator", void 0);
349
+ property({ validator: Integer, noAttribute: true })
350
+ ], TimePickerInternals.prototype, "_exactMatch", void 0);
282
351
  __decorate([
283
352
  property({ defaultValue: "", noAttribute: true })
284
- ], TimePickerInternals.prototype, "_lastSeparator", void 0);
353
+ ], TimePickerInternals.prototype, "_keyboardBuffer", void 0);
285
354
  TimePickerInternals = TimePickerInternals_1 = __decorate([
286
355
  customElement({
287
356
  tag: "ui5-time-picker-internals",
@@ -1 +1 @@
1
- {"version":3,"file":"TimePickerInternals.js","sourceRoot":"","sources":["../src/TimePickerInternals.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,kDAAkD,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAE3E,OAAO,SAAS,MAAM,kDAAkD,CAAC;AACzE,OAAO,UAAU,MAAM,oDAAoD,CAAC;AAC5E,OAAO,2BAA2B,MAAM,qEAAqE,CAAC;AAC9G,OAAO,qEAAqE,CAAC,CAAC,gCAAgC;AAC9G,OAAO,YAAY,MAAM,oDAAoD,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,6DAA6D,CAAC;AACxF,OAAO,OAAO,MAAM,+CAA+C,CAAC;AAEpE,OAAO,EACN,sBAAsB,EACtB,uBAAuB,GAEvB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACN,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,EACxB,2BAA2B,GAC3B,MAAM,mCAAmC,CAAC;AAkB3C;;;;;;;;;;;;;;;;GAgBG;AAeH,IAAM,mBAAmB,2BAAzB,MAAM,mBAAoB,SAAQ,UAAU;IA+G3C,MAAM,CAAC,KAAK,CAAC,QAAQ;QACpB,CAAC,qBAAmB,CAAC,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACpD,aAAa,CAAC,oBAAoB,CAAC;YACnC,SAAS,CAAC,SAAS,EAAE,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE,CAAC;SACtF,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,mBAAmB;QACtB,yDAAyD;QACzD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,YAAyC,CAAC;QAC/E,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,qCAAqC;QAChH,OAAO,sBAAsB,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,gBAAgB;QACnB,yDAAyD;QACzD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,YAAyC,CAAC;QAC/E,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,qCAAqC;QAChH,qDAAqD;QACrD,OAAO,CAAC,CAAC,UAAU,CAAC,MAAM,IAAK,UAAU,CAAC,MAAkB,KAAK,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,iBAAiB;QACpB,yDAAyD;QACzD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,YAAyC,CAAC;QAC/E,OAAO,uBAAuB,CAAC,WAAW,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,kBAAkB;QACrB,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,oBAAoB;QACvB,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,oBAAoB;QACvB,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,oBAAoB;QACvB,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,SAA+B,EAAE,SAA+B,CAAS,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;IAC/I,CAAC;IAED,IAAI,cAAc;QACjB,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;IAC3F,CAAC;IAED,IAAI,YAAY;QACf,8DAA8D;QAC9D,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,iBAAkC,CAAC;QAC7E,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,eAAe;QAClB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,UAAU;QACb,OAAO,KAAK,CAAC;IACd,CAAC;IAED,IAAI,MAAM;QACT,IAAI,KAAK,CAAC;QACV,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;QACtC,IAAI,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,IAAI,SAAS,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE;YAC5G,KAAK,GAAG,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC;SAClC;aAAM,IAAI,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,IAAI,SAAS,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE;YACnH,KAAK,GAAG,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC;SAClC;aAAM;YACN,KAAK,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;SAC7B;QACD,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAC3D,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;SACpB;QACD,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAED,IAAI,QAAQ;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC5D,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IACvD,CAAC;IAED,IAAI,QAAQ;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC5D,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IACvD,CAAC;IAED,IAAI,OAAO;QACV,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,EAAE;YAClD,OAAO,SAAS,CAAC;SACjB;QAED,IAAI,MAAM,CAAC;QACX,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;QACtC,IAAI,IAAI,CAAC,mBAAmB,CAAC,OAAO,KAAK,CAAC,EAAE;YAC3C,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;SAChH;aAAM;YACN,MAAM,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,IAAI,SAAS,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;SAC9K;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAED,IAAI,cAAc;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;QACnC,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC;QAEvC,MAAM,UAAU,GAAG,2BAA2B,CAAC,SAAS,EAAE,CAAC,CAAC;QAC5D,OAAO,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAClG,CAAC;IAED,IAAI,UAAU;QACb,OAAO,IAAI,CAAC,cAAc,KAAK,QAAQ,IAAI,IAAI,CAAC,cAAc,KAAK,OAAO,IAAI,IAAI,CAAC,cAAc,KAAK,MAAM,CAAC;IAC9G,CAAC;IAED,IAAI,UAAU;QACb,OAAO,qBAAmB,CAAC,UAAU,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,YAAY;QACf,OAAO,qBAAmB,CAAC,UAAU,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,YAAY;QACf,OAAO,qBAAmB,CAAC,UAAU,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,kBAAkB;QACrB,OAAO,qBAAmB,CAAC,UAAU,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,cAAc;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;QAC3C,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,QAAQ,CAAC,IAAU;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,CAAC,SAAS,CAAiC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;SAC7F;IACF,CAAC;IAED,OAAO,CAAC,KAAa;QACpB,OAAO,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,SAA+B,EAAE,SAA+B,CAAC,CAAC;IACxH,CAAC;IAED,cAAc,CAAC,KAAa;QAC3B,IAAI,KAAK,KAAK,EAAE,EAAE;YACjB,OAAO,KAAK,CAAC;SACb;QAED,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,SAA+B,EAAE,SAA+B,CAAC,CAAC,CAAC;IACjI,CAAC;IAED,SAAS;QACR,IAAI,UAAsB,CAAC;QAC3B,IAAI,IAAI,CAAC,UAAU,EAAE;YACpB,UAAU,GAAG,UAAU,CAAC,eAAe,CAAC;gBACvC,YAAY,EAAE,IAAI,CAAC,aAAa;gBAChC,OAAO,EAAE,IAAI,CAAC,cAAc;aAC5B,CAAC,CAAC;SACH;aAAM;YACN,UAAU,GAAG,UAAU,CAAC,eAAe,CAAC;gBACvC,YAAY,EAAE,IAAI,CAAC,aAAa;gBAChC,KAAK,EAAE,IAAI,CAAC,cAAc;aAC1B,CAAC,CAAC;SACH;QAED,OAAO,UAAU,CAAC;IACnB,CAAC;IAED,WAAW,CAAC,IAAU;QACrB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,aAAa,CAAC,IAAY;QAEzB,MAAM,GAAG,GAAG,IAAoB,CAAC;QACjC,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,cAAc;QACb,yDAAyD;QACzD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,YAAY,CAAC;QAClD,IAAI,iBAAiB,GAAG,KAAK,CAAC;QAC9B,IAAI,KAAK,CAAC;QAEV,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QAEtB,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;YACxB,OAAO;SACP;QAED,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE;YACnC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC1B;QAED,KAAK,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACpD,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE;gBACvC,IAAI,iBAAiB,EAAE;oBACtB,gGAAgG;oBAChG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;iBAC1B;qBAAM;oBACN,oDAAoD;oBACpD,iBAAiB,GAAG,IAAI,CAAC;iBACzB;aACD;iBAAM;gBACN,oDAAoD;gBACpD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,KAAe,CAAC,CAAC;gBAC1D,iBAAiB,GAAG,KAAK,CAAC;aAC1B;SACD;QAED,oDAAoD;QACpD,IAAI,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE;YAC3C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC1B;IACF,CAAC;IAED,WAAW;QACV,OAAO,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAkB,IAAI,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrH,CAAC;IAED,aAAa,CAAC,GAAiB;QAC9B,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC;QAC9B,IAAI,UAAU,EAAE;YACf,MAAM,MAAM,GAAI,UAA0B,CAAC,WAAW,CAAC;YACvD,IAAI,CAAC,sBAAsB,CAAC,MAAgB,CAAC,CAAC;SAC9C;IACF,CAAC;IAED,sBAAsB,CAAC,MAAc;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC;QACjC,IAAI,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE;YAC/D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;SACpC;QAAC,IAAI,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE;YAChE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;SACpC;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;CACD,CAAA;AA5VA;IADC,QAAQ,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;kDACvB;AAgBf;IADC,QAAQ,EAAE;0DACY;AASvB;IADC,QAAQ,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;wDAC7B;AASrB;IADC,QAAQ,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;wDAC7B;AASrB;IADC,QAAQ,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;yDAC/C;AAStB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;0DACJ;AAS7B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0DACiB;AAS5C;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;qDACK;AAShD;IADC,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;wDACD;AAS5B;IADC,QAAQ,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;2DAC1B;AASxB;IADC,QAAQ,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;2DAC1B;AA3GnB,mBAAmB;IAdxB,aAAa,CAAC;QACd,GAAG,EAAE,2BAA2B;KAChC,CAAC;IAEF;;OAEG;;IACF,KAAK,CAAC,QAAQ,EAAE;QAChB,MAAM,EAAE;YACP,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;YACvB,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;SACxB;KACD,CAAC;GAEI,mBAAmB,CAsWxB;AAED,mBAAmB,CAAC,MAAM,EAAE,CAAC;AAE7B,eAAe,mBAAmB,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport getLocale from \"@ui5/webcomponents-base/dist/locale/getLocale.js\";\nimport DateFormat from \"@ui5/webcomponents-localization/dist/DateFormat.js\";\nimport getCachedLocaleDataInstance from \"@ui5/webcomponents-localization/dist/getCachedLocaleDataInstance.js\";\nimport \"@ui5/webcomponents-localization/dist/features/calendar/Gregorian.js\"; // default calendar for bundling\nimport CalendarType from \"@ui5/webcomponents-base/dist/types/CalendarType.js\";\nimport { fetchCldr } from \"@ui5/webcomponents-base/dist/asset-registries/LocaleData.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport SegmentedButton from \"./SegmentedButton.js\";\nimport {\n\tgetHoursConfigByFormat,\n\tgetTimeControlsByFormat,\n\tHourType,\n} from \"./timepicker-utils/TimeSlider.js\";\nimport {\n\tTIMEPICKER_HOURS_LABEL,\n\tTIMEPICKER_MINUTES_LABEL,\n\tTIMEPICKER_SECONDS_LABEL,\n\tTIMEPICKER_CLOCK_DIAL_LABEL,\n} from \"./generated/i18n/i18n-defaults.js\";\n\ntype TimePickerComponentIndexMap = {\n\thours: number,\n\tminutes: number,\n\tseconds: number,\n}\n\ntype TimeSelectionPeriodProperties = {\n\tlabel: string,\n\tpressed: boolean,\n}\n\ntype TimeSelectionChangeEventDetail = {\n\tvalue: string | undefined,\n\tvalid: boolean,\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * <code>ui5-time-picker-internals</code> is helper component that contains shared methods used in <code>ui5-time-selection-clocks</code>\n * and <ui5-time-selection-inputs> components and should not be used separately.\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webc.main.TimePickerInternals\n * @extends sap.ui.webc.base.UI5Element\n * @abstract\n * @tagname ui5-time-picker-internals\n * @since 1.15.0\n * @private\n */\n@customElement({\n\ttag: \"ui5-time-picker-internals\",\n})\n\n/**\n * Fired when the value changes due to user interaction with the sliders.\n */\n@event(\"change\", {\n\tdetail: {\n\t\tvalue: { type: String },\n\t\tvalid: { type: Boolean },\n\t},\n})\n\nclass TimePickerInternals extends UI5Element {\n\t/**\n\t * Defines a formatted time value.\n\t *\n\t * @type {string}\n\t * @name sap.ui.webc.main.TimePickerInternals.prototype.value\n\t * @defaultvalue undefined\n\t * @public\n\t */\n\t@property({ defaultValue: undefined })\n\tvalue?: string;\n\n\t/**\n\t * Determines the format, displayed in the input field.\n\t *\n\t * Example:\n\t * HH:mm:ss -> 11:42:35\n\t * hh:mm:ss a -> 2:23:15 PM\n\t * mm:ss -> 12:04 (only minutes and seconds)\n\t *\n\t * @type {string}\n\t * @name sap.ui.webc.main.TimePickerInternals.prototype.formatPattern\n\t * @defaultvalue \"\"\n\t * @public\n\t */\n\t@property()\n\tformatPattern!: string;\n\n\t/**\n\t * Determines the minutes step. The minutes clock is populated only by multiples of the step.\n\t * @type {integer}\n\t * @name sap.ui.webc.main.TimePickerInternals.prototype.secondsStep\n\t * @public\n\t */\n\t@property({ validator: Integer, defaultValue: 1 })\n\tminutesStep!: number;\n\n\t/**\n\t * Determines the seconds step. The seconds clock is populated only by multiples of the step.\n\t * @type {integer}\n\t * @name sap.ui.webc.main.TimePickerInternals.prototype.secondsStep\n\t * @public\n\t */\n\t@property({ validator: Integer, defaultValue: 1 })\n\tsecondsStep!: number;\n\n\t/**\n\t * The index of the active Clock/TogleSpinButton.\n\t * @type {integer}\n\t * @defaultvalue 0\n\t * @private\n\t */\n\t@property({ validator: Integer, defaultValue: 0, noAttribute: true })\n\t_activeIndex!: number;\n\n\t/**\n\t * Contains calendar type.\n\t *\n\t * @type {CalendarType}\n\t * @private\n\t */\n\t@property({ type: CalendarType })\n\t_calendarType!: CalendarType;\n\n\t/**\n\t * Contains component-to-index map.\n\t *\n\t * @type {TimePickerComponentIndexMap}\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_componentMap!: TimePickerComponentIndexMap;\n\n\t/**\n\t * Contains currently available Button components depending on time format.\n\t *\n\t * @type {Array}\n\t * @private\n\t */\n\t@property({ type: Object, multiple: true })\n\t_periods!: Array<TimeSelectionPeriodProperties>;\n\n\t/**\n\t * Contains list of separators between the buttons.\n\t *\n\t * @type {Array}\n\t * @private\n\t */\n\t@property({ multiple: true })\n\t_separators!: Array<string>;\n\n\t/**\n\t * Contains separator before AM/PM (if there is any).\n\t *\n\t * @type {string}\n\t * @private\n\t */\n\t@property({ defaultValue: \"\", noAttribute: true })\n\t_amPmSeparator!: string;\n\n\t/**\n\t * Contains separator after all buttons (if there is any).\n\t *\n\t * @type {string}\n\t * @private\n\t */\n\t@property({ defaultValue: \"\", noAttribute: true })\n\t_lastSeparator!: string;\n\n\tstatic i18nBundle: I18nBundle;\n\n\tstatic async onDefine() {\n\t\t[TimePickerInternals.i18nBundle] = await Promise.all([\n\t\t\tgetI18nBundle(\"@ui5/webcomponents\"),\n\t\t\tfetchCldr(getLocale().getLanguage(), getLocale().getRegion(), getLocale().getScript()),\n\t\t]);\n\t}\n\n\tget _hoursConfiguration() {\n\t\t// @ts-ignore aFormatArray is a private API of DateFormat\n\t\tconst formatArray = this.getFormat().aFormatArray as Array<{ type: HourType }>;\n\t\tconst hourFormat = formatArray.find(item => item.type.startsWith(\"hour\")); // try to find an entry for the hours\n\t\treturn getHoursConfigByFormat(hourFormat ? hourFormat.type : \"hour0_23\");\n\t}\n\n\tget _zeroPaddedHours() {\n\t\t// @ts-ignore aFormatArray is a private API of DateFormat\n\t\tconst formatArray = this.getFormat().aFormatArray as Array<{ type: HourType }>;\n\t\tconst hourFormat = formatArray.find(item => item.type.startsWith(\"hour\")); // try to find an entry for the hours\n\t\t// @ts-ignore digits is a private API of aFormatArray\n\t\treturn !(hourFormat.digits && (hourFormat.digits as Integer) === 1);\n\t}\n\n\tget _neededComponents() {\n\t\t// @ts-ignore aFormatArray is a private API of DateFormat\n\t\tconst formatArray = this.getFormat().aFormatArray as Array<{ type: HourType }>;\n\t\treturn getTimeControlsByFormat(formatArray, this._hoursConfiguration);\n\t}\n\n\tget _hasHoursComponent() {\n\t\treturn this._neededComponents[0];\n\t}\n\n\tget _hasMinutesComponent() {\n\t\treturn this._neededComponents[1];\n\t}\n\n\tget _hasSecondsComponent() {\n\t\treturn this._neededComponents[2];\n\t}\n\n\tget _hasPeriodsComponent() {\n\t\treturn this._neededComponents[3];\n\t}\n\n\tget dateValue() {\n\t\treturn this.value ? this.getFormat().parse(this.value, undefined as unknown as boolean, undefined as unknown as boolean) as Date : new Date();\n\t}\n\n\tget validDateValue() {\n\t\treturn this.value !== undefined && this.isValid(this.value) ? this.dateValue : new Date();\n\t}\n\n\tget periodsArray() {\n\t\t// @ts-ignore aDayPeriodsAbbrev is a private API of DateFormat\n\t\tconst dayPeriodsAbbrev = this.getFormat().aDayPeriodsAbbrev as Array<string>;\n\t\treturn dayPeriodsAbbrev.map((x: string) => x.toUpperCase());\n\t}\n\n\tget _showAmPmButton(): boolean {\n\t\treturn true;\n\t}\n\n\tget _pmPressed(): boolean {\n\t\treturn false;\n\t}\n\n\tget _hours() {\n\t\tlet hours;\n\t\tconst dateValue = this.validDateValue;\n\t\tif (this._hoursConfiguration.isTwelveHoursFormat && dateValue.getHours() > this._hoursConfiguration.maxHour) {\n\t\t\thours = dateValue.getHours() - 12;\n\t\t} else if (this._hoursConfiguration.isTwelveHoursFormat && dateValue.getHours() < this._hoursConfiguration.minHour) {\n\t\t\thours = dateValue.getHours() + 12;\n\t\t} else {\n\t\t\thours = dateValue.getHours();\n\t\t}\n\t\tif (hours.toString().length === 1 && this._zeroPaddedHours) {\n\t\t\thours = `0${hours}`;\n\t\t}\n\t\treturn hours.toString();\n\t}\n\n\tget _minutes() {\n\t\tconst minutes = this.validDateValue.getMinutes().toString();\n\t\treturn minutes.length === 1 ? `0${minutes}` : minutes;\n\t}\n\n\tget _seconds() {\n\t\tconst seconds = this.validDateValue.getSeconds().toString();\n\t\treturn seconds.length === 1 ? `0${seconds}` : seconds;\n\t}\n\n\tget _period() {\n\t\tif (!this._hoursConfiguration.isTwelveHoursFormat) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tlet period;\n\t\tconst dateValue = this.validDateValue;\n\t\tif (this._hoursConfiguration.minHour === 1) {\n\t\t\tperiod = dateValue.getHours() >= this._hoursConfiguration.maxHour ? this.periodsArray[1] : this.periodsArray[0];\n\t\t} else {\n\t\t\tperiod = (dateValue.getHours() > this._hoursConfiguration.maxHour || dateValue.getHours() === this._hoursConfiguration.minHour) ? this.periodsArray[1] : this.periodsArray[0];\n\t\t}\n\t\treturn period;\n\t}\n\n\tget _formatPattern() {\n\t\tconst pattern = this.formatPattern;\n\t\tconst hasHours = !!pattern.match(/H/i);\n\t\tconst fallback = !pattern || !hasHours;\n\n\t\tconst localeData = getCachedLocaleDataInstance(getLocale());\n\t\treturn fallback ? localeData.getCombinedDateTimePattern(\"medium\", \"medium\", undefined) : pattern;\n\t}\n\n\tget _isPattern() {\n\t\treturn this._formatPattern !== \"medium\" && this._formatPattern !== \"short\" && this._formatPattern !== \"long\";\n\t}\n\n\tget hoursLabel() {\n\t\treturn TimePickerInternals.i18nBundle.getText(TIMEPICKER_HOURS_LABEL);\n\t}\n\n\tget minutesLabel() {\n\t\treturn TimePickerInternals.i18nBundle.getText(TIMEPICKER_MINUTES_LABEL);\n\t}\n\n\tget secondsLabel() {\n\t\treturn TimePickerInternals.i18nBundle.getText(TIMEPICKER_SECONDS_LABEL);\n\t}\n\n\tget clockDialAriaLabel() {\n\t\treturn TimePickerInternals.i18nBundle.getText(TIMEPICKER_CLOCK_DIAL_LABEL);\n\t}\n\n\tget _nextSeparator() {\n\t\tconst sep = this._separators.shift() || \"\";\n\t\treturn sep;\n\t}\n\n\tsetValue(date: Date) {\n\t\tconst value = this.formatValue(date);\n\t\tif (this.isValid(value)) {\n\t\t\tthis.value = this.normalizeValue(value);\n\t\t\tthis.fireEvent<TimeSelectionChangeEventDetail>(\"change\", { value: this.value, valid: true });\n\t\t}\n\t}\n\n\tisValid(value: string) {\n\t\treturn value === \"\" || this.getFormat().parse(value, undefined as unknown as boolean, undefined as unknown as boolean);\n\t}\n\n\tnormalizeValue(value: string) {\n\t\tif (value === \"\") {\n\t\t\treturn value;\n\t\t}\n\n\t\treturn this.getFormat().format(this.getFormat().parse(value, undefined as unknown as boolean, undefined as unknown as boolean));\n\t}\n\n\tgetFormat() {\n\t\tlet dateFormat: DateFormat;\n\t\tif (this._isPattern) {\n\t\t\tdateFormat = DateFormat.getDateInstance({\n\t\t\t\tcalendarType: this._calendarType,\n\t\t\t\tpattern: this._formatPattern,\n\t\t\t});\n\t\t} else {\n\t\t\tdateFormat = DateFormat.getDateInstance({\n\t\t\t\tcalendarType: this._calendarType,\n\t\t\t\tstyle: this._formatPattern,\n\t\t\t});\n\t\t}\n\n\t\treturn dateFormat;\n\t}\n\n\tformatValue(date: Date) {\n\t\treturn this.getFormat().format(date);\n\t}\n\n\t_componentKey(name: string) {\n\t\ttype ComponentKey = keyof typeof this._componentMap;\n\t\tconst key = name as ComponentKey;\n\t\treturn key;\n\t}\n\n\t_getSeparators() {\n\t\t// @ts-ignore aFormatArray is a private API of DateFormat\n\t\tconst formatArray = this.getFormat().aFormatArray;\n\t\tlet previousWasEntity = false;\n\t\tlet index;\n\n\t\tthis._separators = [];\n\n\t\tif (!formatArray.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (formatArray[0].type !== \"text\") {\n\t\t\tthis._separators.push(\"\");\n\t\t}\n\n\t\tfor (index = 0; index < formatArray.length; index++) {\n\t\t\tif (formatArray[index].type !== \"text\") {\n\t\t\t\tif (previousWasEntity) {\n\t\t\t\t\t// there was previous non-separator entity, and this one is the same too, so add empty separator\n\t\t\t\t\tthis._separators.push(\"\");\n\t\t\t\t} else {\n\t\t\t\t\t// this is non-separator entity, set the entity flag\n\t\t\t\t\tpreviousWasEntity = true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// add separator and clear non-separator entity flag\n\t\t\t\tthis._separators.push(formatArray[index].value as string);\n\t\t\t\tpreviousWasEntity = false;\n\t\t\t}\n\t\t}\n\n\t\t// push one more empty separator for the last entity\n\t\tif (formatArray[index - 1].type !== \"text\") {\n\t\t\tthis._separators.push(\"\");\n\t\t}\n\t}\n\n\t_buttonAmPm() {\n\t\treturn this._hasPeriodsComponent ? this.shadowRoot?.querySelector<SegmentedButton>(`#${this._id}_AmPm`) : undefined;\n\t}\n\n\t_periodChange(evt: PointerEvent) {\n\t\tconst periodItem = evt.target;\n\t\tif (periodItem) {\n\t\t\tconst period = (periodItem as HTMLElement).textContent;\n\t\t\tthis._calculatePeriodChange(period as string);\n\t\t}\n\t}\n\n\t_calculatePeriodChange(period: string) {\n\t\tconst date = this.validDateValue;\n\t\tif (period === this._periods[0].label && date.getHours() >= 12) {\n\t\t\tdate.setHours(date.getHours() - 12);\n\t\t} if (period === this._periods[1].label && date.getHours() < 12) {\n\t\t\tdate.setHours(date.getHours() + 12);\n\t\t}\n\t\tthis.setValue(date);\n\t}\n}\n\nTimePickerInternals.define();\n\nexport default TimePickerInternals;\nexport type {\n\tTimePickerComponentIndexMap,\n\tTimeSelectionChangeEventDetail,\n};\n"]}
1
+ {"version":3,"file":"TimePickerInternals.js","sourceRoot":"","sources":["../src/TimePickerInternals.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport getLocale from \"@ui5/webcomponents-base/dist/locale/getLocale.js\";\nimport DateFormat from \"@ui5/webcomponents-localization/dist/DateFormat.js\";\nimport getCachedLocaleDataInstance from \"@ui5/webcomponents-localization/dist/getCachedLocaleDataInstance.js\";\nimport \"@ui5/webcomponents-localization/dist/features/calendar/Gregorian.js\"; // default calendar for bundling\nimport CalendarType from \"@ui5/webcomponents-base/dist/types/CalendarType.js\";\nimport { fetchCldr } from \"@ui5/webcomponents-base/dist/asset-registries/LocaleData.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport SegmentedButton from \"./SegmentedButton.js\";\nimport {\n\tgetHoursConfigByFormat,\n\tgetTimeControlsByFormat,\n\tHourType,\n} from \"./timepicker-utils/TimeSlider.js\";\nimport {\n\tTIMEPICKER_HOURS_LABEL,\n\tTIMEPICKER_MINUTES_LABEL,\n\tTIMEPICKER_SECONDS_LABEL,\n\tTIMEPICKER_CLOCK_DIAL_LABEL,\n} from \"./generated/i18n/i18n-defaults.js\";\n\ntype TimePickerComponentIndexMap = {\n\thours: number,\n\tminutes: number,\n\tseconds: number,\n}\n\ntype TimeSelectionPeriodProperties = {\n\tlabel: string,\n\tpressed: boolean,\n}\n\ntype TimeSelectionChangeEventDetail = {\n\tvalue: string | undefined,\n\tvalid: boolean,\n}\n\ntype TimePickerEntityAttributes = {\n\tmin: number,\n\tmax: number,\n\tstep: number,\n}\n\ntype TimePickerEntityProperties = {\n\tlabel: string,\n\tentity?: string,\n\titemMin?: number,\n\titemMax?: number,\n\tvalue: number,\n\tstringValue?: string,\n\ttextValue?: string,\n\tdisplayStep?: number,\n\tlastItemReplacement?: number,\n\tshowInnerCircle?: boolean,\n\tprependZero: boolean,\n\tactive?: boolean,\n\thasSeparator?: boolean,\n\tattributes?: TimePickerEntityAttributes,\n}\n\nconst TYPE_COOLDOWN_DELAY = 1000; // Cooldown delay; 0 = disabled cooldown\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * <code>ui5-time-picker-internals</code> is helper component that contains shared methods used in <code>ui5-time-selection-clocks</code>\n * and <ui5-time-selection-inputs> components and should not be used separately.\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webc.main.TimePickerInternals\n * @extends sap.ui.webc.base.UI5Element\n * @abstract\n * @tagname ui5-time-picker-internals\n * @since 1.15.0\n * @private\n */\n@customElement({\n\ttag: \"ui5-time-picker-internals\",\n})\n\n/**\n * Fired when the value changes due to user interaction with the sliders.\n */\n@event(\"change\", {\n\tdetail: {\n\t\tvalue: { type: String },\n\t\tvalid: { type: Boolean },\n\t},\n})\n\nclass TimePickerInternals extends UI5Element {\n\t/**\n\t * Defines a formatted time value.\n\t *\n\t * @type {string}\n\t * @name sap.ui.webc.main.TimePickerInternals.prototype.value\n\t * @defaultvalue undefined\n\t * @public\n\t */\n\t@property({ defaultValue: undefined })\n\tvalue?: string;\n\n\t/**\n\t * Determines the format, displayed in the input field.\n\t *\n\t * Example:\n\t * HH:mm:ss -> 11:42:35\n\t * hh:mm:ss a -> 2:23:15 PM\n\t * mm:ss -> 12:04 (only minutes and seconds)\n\n\t * @type {string}\n\t * @name sap.ui.webc.main.TimePickerInternals.prototype.formatPattern\n\t * @defaultvalue \"\"\n\t * @public\n\t */\n\t@property()\n\tformatPattern!: string;\n\n\t/**\n\t * The index of the active Clock/TogleSpinButton.\n\t *\n\t * @type {integer}\n\t * @defaultvalue 0\n\t * @private\n\t */\n\t@property({ validator: Integer, defaultValue: 0, noAttribute: true })\n\t_activeIndex!: number;\n\n\t/**\n\t * Contains calendar type.\n\t *\n\t * @type {CalendarType}\n\t * @private\n\t */\n\t@property({ type: CalendarType })\n\t_calendarType!: CalendarType;\n\n\t/**\n\t * Contains currently available Time Picker components depending on time format.\n\t *\n\t * @type {Array}\n\t */\n\t@property({ type: Object, multiple: true })\n\t_entities!: Array<TimePickerEntityProperties>;\n\n\t/**\n\t * Contains component-to-index map.\n\t *\n\t * @type {TimePickerComponentIndexMap}\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_componentMap!: TimePickerComponentIndexMap;\n\n\t/**\n\t * Contains currently available Button components depending on time format.\n\t *\n\t * @type {Array}\n\t * @private\n\t */\n\t@property({ type: Object, multiple: true })\n\t_periods!: Array<TimeSelectionPeriodProperties>;\n\n\t/**\n\t * Id of the cooldown interval\n\t *\n\t * @type {ReturnType}\n\t */\n\t@property({ validator: Integer, noAttribute: true })\n\t_typeCooldownId?: ReturnType<typeof setTimeout>;\n\n\t/**\n\t * Exact match number buffer\n\t *\n\t * @type {integer}\n\t */\n\t@property({ validator: Integer, noAttribute: true })\n\t_exactMatch?: number;\n\n\t/**\n\t * Buffer for entered by keyboard numbers\n\t *\n\t * @type {string}\n\t */\n\t@property({ defaultValue: \"\", noAttribute: true })\n\t_keyboardBuffer!: string;\n\n\tstatic i18nBundle: I18nBundle;\n\n\tstatic async onDefine() {\n\t\t[TimePickerInternals.i18nBundle] = await Promise.all([\n\t\t\tgetI18nBundle(\"@ui5/webcomponents\"),\n\t\t\tfetchCldr(getLocale().getLanguage(), getLocale().getRegion(), getLocale().getScript()),\n\t\t]);\n\t}\n\n\tget _hoursConfiguration() {\n\t\t// @ts-ignore aFormatArray is a private API of DateFormat\n\t\tconst formatArray = this.getFormat().aFormatArray as Array<{ type: HourType }>;\n\t\tconst hourFormat = formatArray.find(item => item.type.startsWith(\"hour\")); // try to find an entry for the hours\n\t\treturn getHoursConfigByFormat(hourFormat ? hourFormat.type : \"hour0_23\");\n\t}\n\n\tget _zeroPaddedHours() {\n\t\t// @ts-ignore aFormatArray is a private API of DateFormat\n\t\tconst formatArray = this.getFormat().aFormatArray as Array<{ type: HourType }>;\n\t\tconst hourFormat = formatArray.find(item => item.type.startsWith(\"hour\")); // try to find an entry for the hours\n\t\t// @ts-ignore digits is a private API of aFormatArray\n\t\treturn !(hourFormat.digits && (hourFormat.digits as Integer) === 1);\n\t}\n\n\tget _neededComponents() {\n\t\t// @ts-ignore aFormatArray is a private API of DateFormat\n\t\tconst formatArray = this.getFormat().aFormatArray as Array<{ type: HourType }>;\n\t\treturn getTimeControlsByFormat(formatArray, this._hoursConfiguration);\n\t}\n\n\tget _hasHoursComponent() {\n\t\treturn this._neededComponents[0];\n\t}\n\n\tget _hasMinutesComponent() {\n\t\treturn this._neededComponents[1];\n\t}\n\n\tget _hasSecondsComponent() {\n\t\treturn this._neededComponents[2];\n\t}\n\n\tget _hasPeriodsComponent() {\n\t\treturn this._neededComponents[3];\n\t}\n\n\tget dateValue() {\n\t\treturn this.value ? this.getFormat().parse(this.value, undefined as unknown as boolean, undefined as unknown as boolean) as Date : new Date();\n\t}\n\n\tget validDateValue() {\n\t\treturn this.value !== undefined && this.isValid(this.value) ? this.dateValue : new Date();\n\t}\n\n\tget periodsArray() {\n\t\t// @ts-ignore aDayPeriodsAbbrev is a private API of DateFormat\n\t\tconst dayPeriodsAbbrev = this.getFormat().aDayPeriodsAbbrev as Array<string>;\n\t\treturn dayPeriodsAbbrev.map((x: string) => x.toUpperCase());\n\t}\n\n\tget _hours() {\n\t\tlet hours;\n\t\tconst dateValue = this.validDateValue;\n\t\tif (this._hoursConfiguration.isTwelveHoursFormat && dateValue.getHours() > this._hoursConfiguration.maxHour) {\n\t\t\thours = dateValue.getHours() - 12;\n\t\t} else if (this._hoursConfiguration.isTwelveHoursFormat && dateValue.getHours() < this._hoursConfiguration.minHour) {\n\t\t\thours = dateValue.getHours() + 12;\n\t\t} else {\n\t\t\thours = dateValue.getHours();\n\t\t}\n\t\tif (hours.toString().length === 1 && this._zeroPaddedHours) {\n\t\t\thours = `0${hours}`;\n\t\t}\n\t\treturn hours.toString();\n\t}\n\n\tget _minutes() {\n\t\tconst minutes = this.validDateValue.getMinutes().toString();\n\t\treturn minutes.length === 1 ? `0${minutes}` : minutes;\n\t}\n\n\tget _seconds() {\n\t\tconst seconds = this.validDateValue.getSeconds().toString();\n\t\treturn seconds.length === 1 ? `0${seconds}` : seconds;\n\t}\n\n\tget _period() {\n\t\tlet period;\n\t\tconst dateValue = this.validDateValue;\n\n\t\tif (!this._hoursConfiguration.isTwelveHoursFormat) {\n\t\t\treturn undefined;\n\t\t}\n\t\tif (this._hoursConfiguration.minHour === 1) {\n\t\t\tperiod = dateValue.getHours() >= this._hoursConfiguration.maxHour ? this.periodsArray[1] : this.periodsArray[0];\n\t\t} else {\n\t\t\tperiod = (dateValue.getHours() > this._hoursConfiguration.maxHour || dateValue.getHours() === this._hoursConfiguration.minHour) ? this.periodsArray[1] : this.periodsArray[0];\n\t\t}\n\t\treturn period;\n\t}\n\n\tget _formatPattern() {\n\t\tconst pattern = this.formatPattern;\n\t\tconst hasHours = !!pattern.match(/H/i);\n\t\tconst fallback = !pattern || !hasHours;\n\t\tconst localeData = getCachedLocaleDataInstance(getLocale());\n\n\t\treturn fallback ? localeData.getCombinedDateTimePattern(\"medium\", \"medium\", undefined) : pattern;\n\t}\n\n\tget _isPattern() {\n\t\treturn this._formatPattern !== \"medium\" && this._formatPattern !== \"short\" && this._formatPattern !== \"long\";\n\t}\n\n\tget hoursLabel() {\n\t\treturn TimePickerInternals.i18nBundle.getText(TIMEPICKER_HOURS_LABEL);\n\t}\n\n\tget minutesLabel() {\n\t\treturn TimePickerInternals.i18nBundle.getText(TIMEPICKER_MINUTES_LABEL);\n\t}\n\n\tget secondsLabel() {\n\t\treturn TimePickerInternals.i18nBundle.getText(TIMEPICKER_SECONDS_LABEL);\n\t}\n\n\tget clockDialAriaLabel() {\n\t\treturn TimePickerInternals.i18nBundle.getText(TIMEPICKER_CLOCK_DIAL_LABEL);\n\t}\n\n\tsetValue(date: Date) {\n\t\tconst value = this.formatValue(date);\n\n\t\tif (this.isValid(value)) {\n\t\t\tthis.value = this.normalizeValue(value);\n\t\t\tthis.fireEvent<TimeSelectionChangeEventDetail>(\"change\", { value: this.value, valid: true });\n\t\t}\n\t}\n\n\tisValid(value: string) {\n\t\treturn value === \"\" || this.getFormat().parse(value, undefined as unknown as boolean, undefined as unknown as boolean);\n\t}\n\n\tnormalizeValue(value: string) {\n\t\tif (value === \"\") {\n\t\t\treturn value;\n\t\t}\n\t\treturn this.getFormat().format(this.getFormat().parse(value, undefined as unknown as boolean, undefined as unknown as boolean));\n\t}\n\n\tgetFormat() {\n\t\tlet dateFormat: DateFormat;\n\t\tif (this._isPattern) {\n\t\t\tdateFormat = DateFormat.getDateInstance({\n\t\t\t\tcalendarType: this._calendarType,\n\t\t\t\tpattern: this._formatPattern,\n\t\t\t});\n\t\t} else {\n\t\t\tdateFormat = DateFormat.getDateInstance({\n\t\t\t\tcalendarType: this._calendarType,\n\t\t\t\tstyle: this._formatPattern,\n\t\t\t});\n\t\t}\n\t\treturn dateFormat;\n\t}\n\n\tformatValue(date: Date) {\n\t\treturn this.getFormat().format(date);\n\t}\n\n\t_componentKey(name: string) {\n\t\ttype ComponentKey = keyof typeof this._componentMap;\n\t\treturn name as ComponentKey;\n\t}\n\n\t_indexFromName(name: string) {\n\t\treturn this._componentMap[this._componentKey(name)];\n\t}\n\n\t/**\n\t * Returns name of the clock or button from the id of the event target.\n\t *\n\t * @returns {string | undefined} name of the clock/button\n\t */\n\t_getNameFromId(id: string) {\n\t\tconst parts = id.split(\"_\");\n\n\t\treturn parts.length ? parts[parts.length - 1] : undefined;\n\t}\n\n\t/**\n\t * Returns index of the clock or button from the id of the event target.\n\t *\n\t * @returns {number} index of the clock/button\n\t */\n\t_getIndexFromId(id: string) {\n\t\tconst name = this._getNameFromId(id);\n\n\t\treturn name ? this._indexFromName(name) : 0;\n\t}\n\n\t/**\n\t * Changes hours value.\n\t *\n\t * @param {hours} number new hours value\n\t */\n\t_hoursChange(hours: number) {\n\t\tif (this._hoursConfiguration.isTwelveHoursFormat) {\n\t\t\thours = this._shiftHours(hours);\n\t\t}\n\n\t\tconst date = this.validDateValue;\n\n\t\tdate.setHours(hours);\n\t\tthis.setValue(date);\n\t}\n\n\t/**\n\t * Changes minutes value.\n\t *\n\t * @param {minutes} number new minutes value\n\t */\n\t_minutesChange(minutes: number) {\n\t\tconst date = this.validDateValue;\n\n\t\tdate.setMinutes(minutes);\n\t\tthis.setValue(date);\n\t}\n\n\t/**\n\t * Changes seconds value.\n\t *\n\t * @param {seconds} number new seconds value\n\t */\n\t_secondsChange(seconds: number) {\n\t\tconst date = this.validDateValue;\n\n\t\tdate.setSeconds(seconds);\n\t\tthis.setValue(date);\n\t}\n\n\t_buttonAmPm() {\n\t\treturn this._hasPeriodsComponent ? this.shadowRoot?.querySelector<SegmentedButton>(`#${this._id}_AmPm`) : undefined;\n\t}\n\n\t_createPeriodComponent() {\n\t\tif (this._hasPeriodsComponent) {\n\t\t\t// add period item\n\t\t\tthis.periodsArray.forEach(item => {\n\t\t\t\tthis._periods.push({\n\t\t\t\t\t\"label\": item,\n\t\t\t\t\t\"pressed\": this._period === item,\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}\n\n\t_periodChange(evt: PointerEvent) {\n\t\tconst periodItem = evt.target;\n\n\t\tif (periodItem) {\n\t\t\tconst period = (periodItem as HTMLElement).textContent;\n\t\t\tthis._calculatePeriodChange(period as string);\n\t\t}\n\t}\n\n\t_calculatePeriodChange(period: string) {\n\t\tconst date = this.validDateValue;\n\n\t\tif (period === this._periods[0].label && date.getHours() >= 12) {\n\t\t\tdate.setHours(date.getHours() - 12);\n\t\t} if (period === this._periods[1].label && date.getHours() < 12) {\n\t\t\tdate.setHours(date.getHours() + 12);\n\t\t}\n\t\tthis.setValue(date);\n\t}\n\n\t/**\n\t * Shifts hours value with +/- 12 depending on hour value and day period.\n\t *\n\t * @param {number} hours current hours\n\t * @returns {number} shifted hours\n\t */\n\t_shiftHours(hours: number) {\n\t\tif (this._period === this.periodsArray[0]) { // AM\n\t\t\thours = hours === 12 ? 0 : hours;\n\t\t} else if (this._period === this.periodsArray[1]) { // PM\n\t\t\thours = hours === 12 ? hours : hours + 12;\n\t\t}\n\t\treturn hours;\n\t}\n\n\t/**\n\t * Clears the currently existing cooldown period and starts new one if requested.\n\t *\n\t * @param {boolean} startNewCooldown whether to start new cooldown period after clearing previous one\n\t */\n\t_resetCooldown(startNewCooldown: boolean) {\n\t\tif (!TYPE_COOLDOWN_DELAY) {\n\t\t\treturn; // if delay is 0, cooldown is disabled\n\t\t}\n\t\tif (this._typeCooldownId) {\n\t\t\tclearTimeout(this._typeCooldownId);\n\t\t}\n\t\tif (startNewCooldown) {\n\t\t\tthis._startCooldown();\n\t\t}\n\t}\n\n\t/**\n\t * Starts new cooldown period.\n\t */\n\t_startCooldown() {\n\t\tif (!TYPE_COOLDOWN_DELAY) {\n\t\t\treturn; // if delay is 0, cooldown is disabled\n\t\t}\n\t\tthis._typeCooldownId = setTimeout(() => {\n\t\t\tthis._keyboardBuffer = \"\";\n\t\t\tthis._typeCooldownId = undefined;\n\t\t\tif (this._exactMatch) {\n\t\t\t\tthis._setExactMatch();\n\t\t\t\tthis._exactMatch = undefined;\n\t\t\t}\n\t\t}, TYPE_COOLDOWN_DELAY);\n\t}\n\n\t/**\n\t * Sets the exact match value. Override if necessary.\n\t */\n\t_setExactMatch() {}\n}\n\nTimePickerInternals.define();\n\nexport default TimePickerInternals;\nexport type {\n\tTimePickerComponentIndexMap,\n\tTimeSelectionChangeEventDetail,\n};\n"]}