@ui5/webcomponents 1.22.0-rc.2 → 1.22.0-rc.3

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 (385) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/AvatarGroup.d.ts +1 -1
  4. package/dist/AvatarGroup.js +5 -5
  5. package/dist/AvatarGroup.js.map +1 -1
  6. package/dist/Breadcrumbs.d.ts +1 -15
  7. package/dist/Breadcrumbs.js +10 -79
  8. package/dist/Breadcrumbs.js.map +1 -1
  9. package/dist/BreadcrumbsItem.d.ts +3 -0
  10. package/dist/BreadcrumbsItem.js +4 -0
  11. package/dist/BreadcrumbsItem.js.map +1 -1
  12. package/dist/DatePicker.d.ts +5 -1
  13. package/dist/DatePicker.js +33 -6
  14. package/dist/DatePicker.js.map +1 -1
  15. package/dist/DateTimePicker.d.ts +1 -7
  16. package/dist/DateTimePicker.js +6 -17
  17. package/dist/DateTimePicker.js.map +1 -1
  18. package/dist/Interfaces.d.ts +7 -1
  19. package/dist/Interfaces.js +1 -0
  20. package/dist/Interfaces.js.map +1 -1
  21. package/dist/Popover.js +6 -6
  22. package/dist/Popover.js.map +1 -1
  23. package/dist/TimePickerInternals.d.ts +1 -0
  24. package/dist/TimePickerInternals.js.map +1 -1
  25. package/dist/TimeSelectionClocks.d.ts +18 -17
  26. package/dist/TimeSelectionClocks.js +49 -18
  27. package/dist/TimeSelectionClocks.js.map +1 -1
  28. package/dist/Toast.d.ts +1 -8
  29. package/dist/Toast.js +21 -19
  30. package/dist/Toast.js.map +1 -1
  31. package/dist/Toolbar.js +1 -1
  32. package/dist/Toolbar.js.map +1 -1
  33. package/dist/ToolbarSelect.js +4 -4
  34. package/dist/ToolbarSelect.js.map +1 -1
  35. package/dist/bundle.esm.js.map +1 -1
  36. package/dist/css/themes/Avatar.css +1 -1
  37. package/dist/css/themes/AvatarGroup.css +1 -1
  38. package/dist/css/themes/Badge.css +1 -1
  39. package/dist/css/themes/Breadcrumbs.css +1 -1
  40. package/dist/css/themes/BusyIndicator.css +1 -1
  41. package/dist/css/themes/Button.css +1 -1
  42. package/dist/css/themes/Calendar.css +1 -1
  43. package/dist/css/themes/CalendarHeader.css +1 -1
  44. package/dist/css/themes/Card.css +1 -1
  45. package/dist/css/themes/CardHeader.css +1 -1
  46. package/dist/css/themes/Carousel.css +1 -1
  47. package/dist/css/themes/CheckBox.css +1 -1
  48. package/dist/css/themes/ColorPalette.css +1 -1
  49. package/dist/css/themes/ColorPaletteItem.css +1 -1
  50. package/dist/css/themes/ColorPalettePopover.css +1 -1
  51. package/dist/css/themes/ColorPicker.css +1 -1
  52. package/dist/css/themes/ComboBox.css +1 -1
  53. package/dist/css/themes/CustomListItem.css +1 -1
  54. package/dist/css/themes/DatePicker.css +1 -1
  55. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  56. package/dist/css/themes/DayPicker.css +1 -1
  57. package/dist/css/themes/Dialog.css +1 -1
  58. package/dist/css/themes/FileUploader.css +1 -1
  59. package/dist/css/themes/GroupHeaderListItem.css +1 -1
  60. package/dist/css/themes/GrowingButton.css +1 -1
  61. package/dist/css/themes/Icon.css +1 -1
  62. package/dist/css/themes/Input.css +1 -1
  63. package/dist/css/themes/InputIcon.css +1 -1
  64. package/dist/css/themes/InputSharedStyles.css +1 -1
  65. package/dist/css/themes/Link.css +1 -1
  66. package/dist/css/themes/List.css +1 -1
  67. package/dist/css/themes/ListItem.css +1 -1
  68. package/dist/css/themes/ListItemBase.css +1 -1
  69. package/dist/css/themes/Menu.css +1 -1
  70. package/dist/css/themes/MessageStrip.css +1 -1
  71. package/dist/css/themes/MonthPicker.css +1 -1
  72. package/dist/css/themes/MultiComboBox.css +1 -1
  73. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  74. package/dist/css/themes/MultiInput.css +1 -1
  75. package/dist/css/themes/NavigationMenu.css +1 -1
  76. package/dist/css/themes/Panel.css +1 -1
  77. package/dist/css/themes/Popover.css +1 -1
  78. package/dist/css/themes/PopupStaticAreaStyles.css +1 -1
  79. package/dist/css/themes/PopupsCommon.css +1 -1
  80. package/dist/css/themes/ProgressIndicator.css +1 -1
  81. package/dist/css/themes/RadioButton.css +1 -1
  82. package/dist/css/themes/RangeSlider.css +1 -1
  83. package/dist/css/themes/RatingIndicator.css +1 -1
  84. package/dist/css/themes/ResponsivePopover.css +1 -1
  85. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  86. package/dist/css/themes/SegmentedButton.css +1 -1
  87. package/dist/css/themes/Select.css +1 -1
  88. package/dist/css/themes/SelectMenu.css +1 -1
  89. package/dist/css/themes/SelectPopover.css +1 -1
  90. package/dist/css/themes/SliderBase.css +1 -1
  91. package/dist/css/themes/SplitButton.css +1 -1
  92. package/dist/css/themes/StepInput.css +1 -1
  93. package/dist/css/themes/Switch.css +1 -1
  94. package/dist/css/themes/TabContainer.css +1 -1
  95. package/dist/css/themes/TabInOverflow.css +1 -1
  96. package/dist/css/themes/TabInStrip.css +1 -1
  97. package/dist/css/themes/TabSemanticIcon.css +1 -1
  98. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  99. package/dist/css/themes/Table.css +1 -1
  100. package/dist/css/themes/TableCell.css +1 -1
  101. package/dist/css/themes/TableColumn.css +1 -1
  102. package/dist/css/themes/TableGroupRow.css +1 -1
  103. package/dist/css/themes/TableRow.css +1 -1
  104. package/dist/css/themes/TextArea.css +1 -1
  105. package/dist/css/themes/TimePicker.css +1 -1
  106. package/dist/css/themes/TimePickerPopover.css +1 -1
  107. package/dist/css/themes/TimeSelectionClocks.css +1 -1
  108. package/dist/css/themes/Toast.css +1 -1
  109. package/dist/css/themes/ToggleButton.css +1 -1
  110. package/dist/css/themes/Token.css +1 -1
  111. package/dist/css/themes/Tokenizer.css +1 -1
  112. package/dist/css/themes/TokenizerPopover.css +1 -1
  113. package/dist/css/themes/Toolbar.css +1 -1
  114. package/dist/css/themes/ToolbarPopover.css +1 -1
  115. package/dist/css/themes/TreeItem.css +1 -1
  116. package/dist/css/themes/ValueStateMessage.css +1 -1
  117. package/dist/css/themes/WheelSlider.css +1 -1
  118. package/dist/css/themes/YearPicker.css +1 -1
  119. package/dist/css/themes/sap_belize/parameters-bundle.css +1 -1
  120. package/dist/css/themes/sap_belize_hcb/parameters-bundle.css +1 -1
  121. package/dist/css/themes/sap_belize_hcw/parameters-bundle.css +1 -1
  122. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  123. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  124. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  125. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  126. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  127. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  128. package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
  129. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  130. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  131. package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
  132. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  133. package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
  134. package/dist/custom-elements-internal.json +127 -3
  135. package/dist/custom-elements.json +66 -2
  136. package/dist/generated/assets/themes/sap_belize/parameters-bundle.css.json +1 -1
  137. package/dist/generated/assets/themes/sap_belize_hcb/parameters-bundle.css.json +1 -1
  138. package/dist/generated/assets/themes/sap_belize_hcw/parameters-bundle.css.json +1 -1
  139. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  140. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  141. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  142. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  143. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  144. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  145. package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
  146. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  147. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  148. package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
  149. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  150. package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
  151. package/dist/generated/templates/BreadcrumbsTemplate.lit.js +3 -3
  152. package/dist/generated/templates/BreadcrumbsTemplate.lit.js.map +1 -1
  153. package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js +1 -1
  154. package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js.map +1 -1
  155. package/dist/generated/templates/TimeSelectionClocksTemplate.lit.js +3 -3
  156. package/dist/generated/templates/TimeSelectionClocksTemplate.lit.js.map +1 -1
  157. package/dist/generated/templates/ToastTemplate.lit.js +2 -2
  158. package/dist/generated/templates/ToastTemplate.lit.js.map +1 -1
  159. package/dist/generated/themes/Avatar.css.js +1 -1
  160. package/dist/generated/themes/Avatar.css.js.map +1 -1
  161. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  162. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  163. package/dist/generated/themes/Badge.css.js +1 -1
  164. package/dist/generated/themes/Badge.css.js.map +1 -1
  165. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  166. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  167. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  168. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  169. package/dist/generated/themes/Button.css.js +1 -1
  170. package/dist/generated/themes/Button.css.js.map +1 -1
  171. package/dist/generated/themes/Calendar.css.js +1 -1
  172. package/dist/generated/themes/Calendar.css.js.map +1 -1
  173. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  174. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  175. package/dist/generated/themes/Card.css.js +1 -1
  176. package/dist/generated/themes/Card.css.js.map +1 -1
  177. package/dist/generated/themes/CardHeader.css.js +1 -1
  178. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  179. package/dist/generated/themes/Carousel.css.js +1 -1
  180. package/dist/generated/themes/Carousel.css.js.map +1 -1
  181. package/dist/generated/themes/CheckBox.css.js +1 -1
  182. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  183. package/dist/generated/themes/ColorPalette.css.js +1 -1
  184. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  185. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  186. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  187. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  188. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  189. package/dist/generated/themes/ColorPicker.css.js +1 -1
  190. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  191. package/dist/generated/themes/ComboBox.css.js +1 -1
  192. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  193. package/dist/generated/themes/CustomListItem.css.js +1 -1
  194. package/dist/generated/themes/CustomListItem.css.js.map +1 -1
  195. package/dist/generated/themes/DatePicker.css.js +1 -1
  196. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  197. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  198. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  199. package/dist/generated/themes/DayPicker.css.js +1 -1
  200. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  201. package/dist/generated/themes/Dialog.css.js +1 -1
  202. package/dist/generated/themes/Dialog.css.js.map +1 -1
  203. package/dist/generated/themes/FileUploader.css.js +1 -1
  204. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  205. package/dist/generated/themes/GroupHeaderListItem.css.js +1 -1
  206. package/dist/generated/themes/GroupHeaderListItem.css.js.map +1 -1
  207. package/dist/generated/themes/GrowingButton.css.js +1 -1
  208. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  209. package/dist/generated/themes/Icon.css.js +1 -1
  210. package/dist/generated/themes/Icon.css.js.map +1 -1
  211. package/dist/generated/themes/Input.css.js +1 -1
  212. package/dist/generated/themes/Input.css.js.map +1 -1
  213. package/dist/generated/themes/InputIcon.css.js +1 -1
  214. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  215. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  216. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  217. package/dist/generated/themes/Link.css.js +1 -1
  218. package/dist/generated/themes/Link.css.js.map +1 -1
  219. package/dist/generated/themes/List.css.js +1 -1
  220. package/dist/generated/themes/List.css.js.map +1 -1
  221. package/dist/generated/themes/ListItem.css.js +1 -1
  222. package/dist/generated/themes/ListItem.css.js.map +1 -1
  223. package/dist/generated/themes/ListItemBase.css.js +1 -1
  224. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  225. package/dist/generated/themes/Menu.css.js +1 -1
  226. package/dist/generated/themes/Menu.css.js.map +1 -1
  227. package/dist/generated/themes/MessageStrip.css.js +1 -1
  228. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  229. package/dist/generated/themes/MonthPicker.css.js +1 -1
  230. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  231. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  232. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  233. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  234. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  235. package/dist/generated/themes/MultiInput.css.js +1 -1
  236. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  237. package/dist/generated/themes/NavigationMenu.css.js +1 -1
  238. package/dist/generated/themes/NavigationMenu.css.js.map +1 -1
  239. package/dist/generated/themes/Panel.css.js +1 -1
  240. package/dist/generated/themes/Panel.css.js.map +1 -1
  241. package/dist/generated/themes/Popover.css.js +1 -1
  242. package/dist/generated/themes/Popover.css.js.map +1 -1
  243. package/dist/generated/themes/PopupStaticAreaStyles.css.js +1 -1
  244. package/dist/generated/themes/PopupStaticAreaStyles.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/TimePickerPopover.css.js +1 -1
  300. package/dist/generated/themes/TimePickerPopover.css.js.map +1 -1
  301. package/dist/generated/themes/TimeSelectionClocks.css.js +1 -1
  302. package/dist/generated/themes/TimeSelectionClocks.css.js.map +1 -1
  303. package/dist/generated/themes/Toast.css.js +1 -1
  304. package/dist/generated/themes/Toast.css.js.map +1 -1
  305. package/dist/generated/themes/ToggleButton.css.js +1 -1
  306. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  307. package/dist/generated/themes/Token.css.js +1 -1
  308. package/dist/generated/themes/Token.css.js.map +1 -1
  309. package/dist/generated/themes/Tokenizer.css.js +1 -1
  310. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  311. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  312. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  313. package/dist/generated/themes/Toolbar.css.js +1 -1
  314. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  315. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  316. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  317. package/dist/generated/themes/TreeItem.css.js +1 -1
  318. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  319. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  320. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  321. package/dist/generated/themes/WheelSlider.css.js +1 -1
  322. package/dist/generated/themes/WheelSlider.css.js.map +1 -1
  323. package/dist/generated/themes/YearPicker.css.js +1 -1
  324. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  325. package/dist/generated/themes/sap_belize/parameters-bundle.css.js +1 -1
  326. package/dist/generated/themes/sap_belize/parameters-bundle.css.js.map +1 -1
  327. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js +1 -1
  328. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js.map +1 -1
  329. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js +1 -1
  330. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js.map +1 -1
  331. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  332. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  333. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  334. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  335. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  336. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  337. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  338. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  339. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  340. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  341. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  342. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  343. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
  344. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
  345. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  346. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
  347. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  348. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  349. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +1 -1
  350. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
  351. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  352. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  353. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
  354. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
  355. package/package.json +12 -11
  356. package/src/Breadcrumbs.hbs +4 -16
  357. package/src/DateTimePickerPopover.hbs +8 -11
  358. package/src/TimeSelectionClocks.hbs +5 -1
  359. package/src/Toast.hbs +2 -10
  360. package/src/themes/Breadcrumbs.css +1 -16
  361. package/src/themes/DateTimePickerPopover.css +10 -1
  362. package/src/themes/PopupStaticAreaStyles.css +1 -2
  363. package/src/themes/PopupsCommon.css +2 -0
  364. package/src/themes/SplitButton.css +3 -3
  365. package/src/themes/TabInStrip.css +1 -1
  366. package/src/themes/TimePickerPopover.css +4 -0
  367. package/src/themes/TimeSelectionClocks.css +3 -5
  368. package/src/themes/Toast.css +24 -23
  369. package/src/themes/base/PopupStaticAreaStyles-parameters.css +3 -0
  370. package/src/themes/base/sizes-parameters.css +6 -2
  371. package/src/themes/sap_belize/parameters-bundle.css +1 -0
  372. package/src/themes/sap_belize_hcb/parameters-bundle.css +1 -0
  373. package/src/themes/sap_belize_hcw/parameters-bundle.css +1 -0
  374. package/src/themes/sap_fiori_3/parameters-bundle.css +1 -0
  375. package/src/themes/sap_fiori_3_dark/parameters-bundle.css +1 -0
  376. package/src/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -0
  377. package/src/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -0
  378. package/src/themes/sap_horizon/Breadcrumbs-parameters.css +1 -1
  379. package/src/themes/sap_horizon/parameters-bundle.css +1 -0
  380. package/src/themes/sap_horizon_dark/Breadcrumbs-parameters.css +1 -1
  381. package/src/themes/sap_horizon_dark/parameters-bundle.css +1 -0
  382. package/src/themes/sap_horizon_dark_exp/Breadcrumbs-parameters.css +1 -1
  383. package/src/themes/sap_horizon_exp/Breadcrumbs-parameters.css +1 -1
  384. package/src/themes/sap_horizon_hcb/parameters-bundle.css +1 -0
  385. package/src/themes/sap_horizon_hcw/parameters-bundle.css +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"TimeSelectionClocks.js","sourceRoot":"","sources":["../src/TimeSelectionClocks.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport \"@ui5/webcomponents-localization/dist/features/calendar/Gregorian.js\"; // default calendar for bundling\nimport {\n\tisDown,\n\tisUp,\n\tisDownAlt,\n\tisUpAlt,\n\tisPageUp,\n\tisPageDown,\n\tisPageUpShift,\n\tisPageDownShift,\n\tisPageUpShiftCtrl,\n\tisPageDownShiftCtrl,\n\tisSpace,\n\tisEnter,\n\tisKeyA,\n\tisKeyP,\n\tisNumber,\n\tisColon,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport TimePickerInternals from \"./TimePickerInternals.js\";\nimport TimePickerClock from \"./TimePickerClock.js\";\nimport ToggleSpinButton from \"./ToggleSpinButton.js\";\nimport SegmentedButton from \"./SegmentedButton.js\";\nimport type { TimePickerClockChangeEventDetail } from \"./TimePickerClock.js\";\n\n// Template\nimport TimeSelectionClocksTemplate from \"./generated/templates/TimeSelectionClocksTemplate.lit.js\";\n\n// Styles\nimport TimeSelectionClocksCss from \"./generated/themes/TimeSelectionClocks.css.js\";\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * <code>ui5-time-selection-clocks</code> is component that contains all the <code>ui5-time-picker-clock</code> components\n * necessary for the <code>ui5-time-picker</code> as well as all necessary <code>ui5-toggle-spin-button</code> components\n * used for switching between different clocks.\n * <code>ui5-time-picker-clock</code> components and <code>ui5-toggle-spin-button</code> depend on the time format set to\n * <code>ui5-time-picker</code> component.\n *\n * This component should not be used separately.\n *\n * @constructor\n * @extends TimePickerInternals\n * @abstract\n * @since 1.15.0\n * @private\n */\n@customElement({\n\ttag: \"ui5-time-selection-clocks\",\n\trenderer: litRender,\n\tstyles: TimeSelectionClocksCss,\n\ttemplate: TimeSelectionClocksTemplate,\n\tdependencies: [\n\t\tTimePickerClock,\n\t\tToggleSpinButton,\n\t\tSegmentedButton,\n\t],\n})\n\nclass TimeSelectionClocks extends TimePickerInternals {\n\t/**\n\t * Flag for pressed Space key\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_spacePressed!: boolean;\n\n\tonBeforeRendering() {\n\t\tthis._createComponents();\n\t}\n\n\t/**\n\t * Returns ToggleSpinButton component by index or name.\n\t *\n\t * @param indexOrName the index or name of the component\n\t * @returns component (if exists) or undefined\n\t */\n\t_buttonComponent(indexOrName: number | string): ToggleSpinButton | undefined | null {\n\t\tconst index = typeof indexOrName === \"string\" ? this._indexFromName(indexOrName) : indexOrName;\n\t\tconst entity = this._entities[index].entity;\n\t\treturn entity ? this.shadowRoot?.querySelector<ToggleSpinButton>(`#${this._id}_button_${entity}`) : undefined;\n\t}\n\n\t/**\n\t * Returns TimePickerClock component by index or name.\n\t *\n\t * @param indexOrName the index or name of the component\n\t * @returns component (if exists) or undefined\n\t */\n\t_clockComponent(indexOrName: number | string): TimePickerClock | undefined | null {\n\t\tconst index = typeof indexOrName === \"string\" ? this._indexFromName(indexOrName) : indexOrName;\n\t\tconst entity = this._entities[index].entity;\n\t\treturn entity ? this.shadowRoot?.querySelector<TimePickerClock>(`#${this._id}_clock_${entity}`) : undefined;\n\t}\n\n\t/**\n\t * TimePickerClocks focusin event handler. Focuses the active button and switches to active clock.\n\t *\n\t * @param evt Event object\n\t */\n\t_clocksFocusIn(evt: Event) {\n\t\tconst target = evt.target as HTMLElement;\n\t\tif (target.id === this._id) {\n\t\t\tthis._switchClock(this._activeIndex);\n\t\t}\n\t}\n\n\t/**\n\t * ToggleSpinButton focusin event handler.Switches to clock which button is being focused.\n\t *\n\t * @param evt Event object\n\t */\n\t_buttonFocusIn(evt: Event) {\n\t\tconst target = evt.target as HTMLElement;\n\t\tconst name = this._getNameFromId(target.id);\n\t\tif (name) {\n\t\t\tthis._switchTo(name);\n\t\t}\n\t}\n\n\t/**\n\t * keyup event handler.\n\t *\n\t * @param evt Event object\n\t */\n\t_onkeyup(evt: KeyboardEvent) {\n\t\tif (isSpace(evt)) {\n\t\t\tthis._spacePressed = false;\n\t\t}\n\t}\n\n\t/**\n\t * keydown event handler.\n\t *\n\t * @param evt Event object\n\t */\n\t_onkeydown(evt: KeyboardEvent) {\n\t\tlet clock;\n\t\tconst toggleSpinButtonTarget = evt.target && (evt.target as HTMLElement).tagName.toLowerCase().indexOf(\"segmented\") === -1;\n\n\t\tif (isEnter(evt)) {\n\t\t\t// Accept the time and close the popover\n\t\t\tthis.fireEvent(\"close-picker\");\n\t\t} else if (isSpace(evt) && toggleSpinButtonTarget && !this._spacePressed) {\n\t\t\tevt.preventDefault();\n\t\t\tthis._spacePressed = true;\n\t\t\tthis._keyboardBuffer = \"\";\n\t\t\tthis._resetCooldown(true);\n\t\t\tthis._switchNextClock(true);\n\t\t} else if ((isUp(evt) || isDown(evt)) && !isUpAlt(evt) && !isDownAlt(evt)) {\n\t\t\t// Arrows up/down increase/decrease currently active clock\n\t\t\tclock = this._clockComponent(this._activeIndex);\n\t\t\tclock && !clock.disabled && clock._modifyValue(isUp(evt));\n\t\t\tevt.preventDefault();\n\t\t} else if (isPageUp(evt) || isPageDown(evt)) {\n\t\t\t// PageUp/PageDown increase/decrease hours clock\n\t\t\tclock = this._clockComponent(\"hours\");\n\t\t\tif (clock && !clock.disabled) {\n\t\t\t\tthis._switchTo(\"hours\");\n\t\t\t\tclock._modifyValue(isPageUp(evt));\n\t\t\t}\n\t\t\tevt.preventDefault();\n\t\t} else if (isPageUpShift(evt) || isPageDownShift(evt)) {\n\t\t\t// Shift+PageUp/Shift+PageDown increase/decrease minutes clock\n\t\t\tclock = this._clockComponent(\"minutes\");\n\t\t\tif (clock && !clock.disabled) {\n\t\t\t\tthis._switchTo(\"minutes\");\n\t\t\t\tclock._modifyValue(isPageUpShift(evt));\n\t\t\t}\n\t\t\tevt.preventDefault();\n\t\t} else if (isPageUpShiftCtrl(evt) || isPageDownShiftCtrl(evt)) {\n\t\t\t// Ctrl+Shift+PageUp/Ctrl+Shift+PageDown increase/decrease seconds clock\n\t\t\tclock = this._clockComponent(\"seconds\");\n\t\t\tif (clock && !clock.disabled) {\n\t\t\t\tthis._switchTo(\"seconds\");\n\t\t\t\tclock._modifyValue(isPageUpShiftCtrl(evt));\n\t\t\t}\n\t\t\tevt.preventDefault();\n\t\t} else if (isKeyA(evt) || isKeyP(evt)) {\n\t\t\t// A/P selects AM/PM segmented button item\n\t\t\tconst buttonAmPm = this._buttonAmPm();\n\t\t\tif (buttonAmPm) {\n\t\t\t\tbuttonAmPm.items[0].pressed = isKeyA(evt);\n\t\t\t\tbuttonAmPm.items[1].pressed = isKeyP(evt);\n\t\t\t\tconst period = isKeyA(evt) ? buttonAmPm.items[0].textContent : buttonAmPm.items[1].textContent;\n\t\t\t\tperiod && this._calculatePeriodChange(period);\n\t\t\t}\n\t\t\tevt.preventDefault();\n\t\t} else if (isColon(evt)) {\n\t\t\t// Colon (:) - Switch to next clock\n\t\t\tthis._keyboardBuffer = \"\";\n\t\t\tthis._exactMatch = undefined;\n\t\t\tthis._resetCooldown(true);\n\t\t\tthis._switchNextClock(true);\n\t\t} else if (isNumber(evt) && this._entities[this._activeIndex]) {\n\t\t\t// Direct number entry\n\t\t\tthis._exactMatch = undefined;\n\t\t\tthis._resetCooldown(true);\n\t\t\tthis._numbersInput(evt);\n\t\t}\n\t}\n\n\t/**\n\t * Handles direct numbers entry.\n\t *\n\t * @param evt Event object\n\t */\n\t_numbersInput(evt: KeyboardEvent) {\n\t\tconst char = evt.key;\n\t\tconst bufferStr = this._keyboardBuffer + char;\n\t\tconst bufferNum = parseInt(bufferStr);\n\t\tconst entity = this._entities[this._activeIndex];\n\t\tlet activeClock = this._clockComponent(this._activeIndex);\n\n\t\tif (!entity || !entity.attributes) {\n\t\t\treturn;\n\t\t}\n\t\tif (bufferNum > entity.attributes.max) {\n\t\t\t// value accumulated in the buffer (old entry + new entry) is greater than the clock maximum value,\n\t\t\t// so assign old entry to the current clock and then switch to the next clock, and add new entry as an old value\n\t\t\tactiveClock && activeClock._setSelectedValue(parseInt(this._keyboardBuffer));\n\t\t\tthis._switchNextClock();\n\t\t\tthis._keyboardBuffer = char;\n\t\t\tactiveClock = this._clockComponent(this._activeIndex);\n\t\t\tactiveClock && activeClock._setSelectedValue(parseInt(char));\n\t\t\tthis._resetCooldown(true);\n\t\t} else {\n\t\t\t// value is less than clock's max value, so add new entry to the buffer\n\t\t\tthis._keyboardBuffer = bufferStr;\n\t\t\tactiveClock && activeClock._setSelectedValue(parseInt(this._keyboardBuffer));\n\t\t\tif (this._keyboardBuffer.length === 2 || parseInt(`${this._keyboardBuffer}0`) > entity.attributes.max) {\n\t\t\t\t// if buffer length is 2, or buffer value + one more (any) number is greater than clock's max value\n\t\t\t\t// there is no place for more entry - just set buffer as a value, and switch to the next clock\n\t\t\t\tthis._resetCooldown(this._keyboardBuffer.length !== 2);\n\t\t\t\tthis._keyboardBuffer = \"\";\n\t\t\t\tthis._switchNextClock();\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Focuses the first available button.\n\t */\n\t_focusFirstButton() {\n\t\tthis._activeIndex = 0;\n\t\tthis._buttonComponent(0)!.focus();\n\t}\n\n\t/**\n\t * Sets the exact match value. Must be overriden.\n\t */\n\t_setExactMatch() {\n\t\tconst clock = this._clockComponent(this._activeIndex);\n\t\tclock && this._exactMatch !== undefined && clock._setSelectedValue(this._exactMatch);\n\t}\n\n\t/**\n\t * Creates clock and button components according to the display format pattern.\n\t */\n\t_createComponents() {\n\t\tconst time = {\n\t\t\thours: parseInt(this._hours),\n\t\t\tminutes: parseInt(this._minutes),\n\t\t\tseconds: parseInt(this._seconds),\n\t\t};\n\n\t\tthis._entities = [];\n\t\tthis._periods = [];\n\t\tthis._componentMap = {\n\t\t\thours: -1,\n\t\t\tminutes: -1,\n\t\t\tseconds: -1,\n\t\t};\n\t\tif (this._hasHoursComponent) {\n\t\t\t// add Hours clock\n\t\t\tthis._componentMap.hours = this._entities.length;\n\t\t\tthis._entities.push({\n\t\t\t\t\"label\": this.hoursLabel,\n\t\t\t\t\"entity\": \"hours\",\n\t\t\t\t\"itemMin\": 1,\n\t\t\t\t\"itemMax\": 12,\n\t\t\t\t\"value\": time.hours,\n\t\t\t\t\"stringValue\": this._hours,\n\t\t\t\t\"textValue\": `${time.hours} ${this.hoursLabel}`,\n\t\t\t\t\"displayStep\": 1,\n\t\t\t\t\"lastItemReplacement\": this._hoursConfiguration.isTwelveHoursFormat ? -1 : 0,\n\t\t\t\t\"showInnerCircle\": !this._hoursConfiguration.isTwelveHoursFormat,\n\t\t\t\t\"prependZero\": this._zeroPaddedHours,\n\t\t\t\t\"hasSeparator\": this._entities.length > 0,\n\t\t\t\t\"active\": false,\n\t\t\t\t\"attributes\": {\n\t\t\t\t\t\"min\": this._hoursConfiguration.minHour,\n\t\t\t\t\t\"max\": this._hoursConfiguration.maxHour,\n\t\t\t\t\t\"step\": 1,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t\tif (this._hasMinutesComponent) {\n\t\t\t// add Minutes clock\n\t\t\tthis._componentMap.minutes = this._entities.length;\n\t\t\tthis._entities.push({\n\t\t\t\t\"label\": this.minutesLabel,\n\t\t\t\t\"entity\": \"minutes\",\n\t\t\t\t\"itemMin\": 1,\n\t\t\t\t\"itemMax\": 60,\n\t\t\t\t\"value\": time.minutes,\n\t\t\t\t\"stringValue\": this._minutes,\n\t\t\t\t\"textValue\": `${time.minutes} ${this.minutesLabel}`, // possible concatenation\n\t\t\t\t\"displayStep\": 5,\n\t\t\t\t\"lastItemReplacement\": 0,\n\t\t\t\t\"showInnerCircle\": false,\n\t\t\t\t\"prependZero\": false,\n\t\t\t\t\"hasSeparator\": this._entities.length > 0,\n\t\t\t\t\"active\": false,\n\t\t\t\t\"attributes\": {\n\t\t\t\t\t\"min\": 0,\n\t\t\t\t\t\"max\": 59,\n\t\t\t\t\t\"step\": 1,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t\tif (this._hasSecondsComponent) {\n\t\t\t// add Seconds clock\n\t\t\tthis._componentMap.seconds = this._entities.length;\n\t\t\tthis._entities.push({\n\t\t\t\t\"label\": this.secondsLabel,\n\t\t\t\t\"entity\": \"seconds\",\n\t\t\t\t\"itemMin\": 1,\n\t\t\t\t\"itemMax\": 60,\n\t\t\t\t\"value\": time.seconds,\n\t\t\t\t\"stringValue\": this._seconds,\n\t\t\t\t\"textValue\": `${time.seconds} ${this.secondsLabel}`, // possible concatenation\n\t\t\t\t\"displayStep\": 5,\n\t\t\t\t\"lastItemReplacement\": 0,\n\t\t\t\t\"showInnerCircle\": false,\n\t\t\t\t\"prependZero\": false,\n\t\t\t\t\"hasSeparator\": this._entities.length > 0,\n\t\t\t\t\"active\": false,\n\t\t\t\t\"attributes\": {\n\t\t\t\t\t\"min\": 0,\n\t\t\t\t\t\"max\": 59,\n\t\t\t\t\t\"step\": 1,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t\tthis._entities[this._activeIndex].active = true;\n\t\tthis._createPeriodComponent();\n\t}\n\n\t/**\n\t * Switches to the specific clock by name.\n\t *\n\t * @param clockName the name of the clock\n\t */\n\t_switchTo(clockName: string) {\n\t\tconst key = this._componentKey(clockName);\n\t\tif (this._componentMap[key] !== undefined) {\n\t\t\tthis._switchClock(this._componentMap[key]);\n\t\t}\n\t}\n\n\t/**\n\t * Switches to the specific clock by its index in _clocks property.\n\t *\n\t * @param clockIndex the index of the clock\n\t */\n\t_switchClock(clockIndex: number) {\n\t\tconst newButton = this._buttonComponent(clockIndex);\n\n\t\tif (this._entities.length && clockIndex < this._entities.length && newButton) {\n\t\t\tthis._entities[this._activeIndex].active = false;\n\t\t\tthis._activeIndex = clockIndex;\n\t\t\tthis._entities[this._activeIndex].active = true;\n\t\t\tnewButton.focus();\n\t\t}\n\t}\n\n\t/**\n\t * Switches to the next available clock.\n\t *\n\t * @param wrapAround whether to switch to the first clock if there are no next clock\n\t */\n\t_switchNextClock(wrapAround = false) {\n\t\tlet activeIndex = this._activeIndex;\n\t\tconst startActiveIndex = activeIndex;\n\t\tconst activeClock = this._clockComponent(activeIndex);\n\n\t\tdo {\n\t\t\tactiveIndex++;\n\t\t\tif (activeIndex >= this._entities.length) {\n\t\t\t\tactiveIndex = wrapAround ? 0 : this._entities.length - 1;\n\t\t\t}\n\t\t// false-positive finding of no-unmodified-loop-condition rule\n\t\t// eslint-disable-next-line no-unmodified-loop-condition\n\t\t} while (activeClock && activeClock.disabled && activeIndex !== startActiveIndex && (wrapAround || activeIndex < this._entities.length - 1));\n\n\t\tconst newClock = this._clockComponent(activeIndex);\n\n\t\tif (activeIndex !== startActiveIndex && newClock && !newClock.disabled) {\n\t\t\tthis._switchClock(activeIndex);\n\t\t}\n\t}\n\n\t/**\n\t * Clock 'change' event handler.\n\t *\n\t * @param evt Event object\n\t */\n\t_clockChange(evt: CustomEvent<TimePickerClockChangeEventDetail>) {\n\t\tconst index = this._getIndexFromId((evt.target as HTMLElement).id);\n\t\tconst stringValue = evt.detail.stringValue;\n\t\tconst value = evt.detail.value;\n\t\tconst button = this._buttonComponent(index);\n\n\t\tif (!button) {\n\t\t\treturn;\n\t\t}\n\t\tthis._entities[index].stringValue = stringValue;\n\t\tthis._entities[index].value = value;\n\t\tthis._entities = JSON.parse(JSON.stringify(this._entities));\n\t\tswitch (index) {\n\t\tcase this._componentMap.hours:\n\t\t\tthis._hoursChange(value);\n\t\t\tbreak;\n\t\tcase this._componentMap.minutes:\n\t\t\tthis._minutesChange(value);\n\t\t\tbreak;\n\t\tcase this._componentMap.seconds:\n\t\t\tthis._secondsChange(value);\n\t\t\tbreak;\n\t\t}\n\t\tif (evt.detail.finalChange) {\n\t\t\tif (this._activeIndex < this._entities.length - 1) {\n\t\t\t\tthis._switchNextClock();\n\t\t\t} else {\n\t\t\t\tbutton.focus();\n\t\t\t}\n\t\t}\n\t}\n}\n\nTimeSelectionClocks.define();\n\nexport default TimeSelectionClocks;\n"]}
1
+ {"version":3,"file":"TimeSelectionClocks.js","sourceRoot":"","sources":["../src/TimeSelectionClocks.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,kDAAkD,CAAC;AACrE,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,qEAAqE,CAAC,CAAC,gCAAgC;AAC9G,OAAO,EACN,MAAM,EACN,IAAI,EACJ,SAAS,EACT,OAAO,EACP,QAAQ,EACR,UAAU,EACV,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,OAAO,EACP,OAAO,EACP,MAAM,EACN,MAAM,EACN,QAAQ,EACR,OAAO,GACP,MAAM,sCAAsC,CAAC;AAC9C,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,eAAe,MAAM,sBAAsB,CAAC;AACnD,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAGnD,WAAW;AACX,OAAO,2BAA2B,MAAM,0DAA0D,CAAC;AAEnG,SAAS;AACT,OAAO,sBAAsB,MAAM,+CAA+C,CAAC;AAEnF;;GAEG;AAkCH,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,mBAAmB;IAmBpD,iBAAiB;QAChB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACH,gBAAgB,CAAC,WAA4B;QAC5C,MAAM,KAAK,GAAG,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QAC/F,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;QAC5C,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAmB,IAAI,IAAI,CAAC,GAAG,WAAW,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/G,CAAC;IAED;;;;;OAKG;IACH,eAAe,CAAC,WAA4B;QAC3C,MAAM,KAAK,GAAG,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QAC/F,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;QAC5C,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAkB,IAAI,IAAI,CAAC,GAAG,UAAU,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7G,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,GAAU;QACxB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAqB,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,EAAE;YAC3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACrC;IACF,CAAC;IAED,eAAe;QACd,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,GAAU;QACxB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAqB,CAAC;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,IAAI,EAAE;YACT,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SACrB;IACF,CAAC;IAED;;OAEG;IACH,YAAY;QACX,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,aAAa;QACZ,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,GAAkB;QAC1B,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;YACjB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;SAC3B;IACF,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,GAAkB;QAC5B,IAAI,KAAK,CAAC;QACV,MAAM,sBAAsB,GAAG,GAAG,CAAC,MAAM,IAAK,GAAG,CAAC,MAAsB,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAE3H,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;YACjB,wCAAwC;YACxC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;SAC/B;aAAM,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,sBAAsB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACzE,GAAG,CAAC,cAAc,EAAE,CAAC;YACrB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;SAC5B;aAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YAC1E,0DAA0D;YAC1D,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAChD,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAChF,GAAG,CAAC,cAAc,EAAE,CAAC;SACrB;aAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE;YAC5C,gDAAgD;YAChD,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YACtC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBAC7B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBACxB,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;aAClC;YACD,GAAG,CAAC,cAAc,EAAE,CAAC;SACrB;aAAM,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE;YACtD,8DAA8D;YAC9D,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YACxC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBAC7B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBAC1B,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;aACvC;YACD,GAAG,CAAC,cAAc,EAAE,CAAC;SACrB;aAAM,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE;YAC9D,wEAAwE;YACxE,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YACxC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBAC7B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBAC1B,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;aAC3C;YACD,GAAG,CAAC,cAAc,EAAE,CAAC;SACrB;aAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE;YACtC,0CAA0C;YAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACtC,IAAI,UAAU,EAAE;gBACf,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC1C,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;gBAC/F,MAAM,IAAI,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;aAC9C;YACD,GAAG,CAAC,cAAc,EAAE,CAAC;SACrB;aAAM,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;YACxB,mCAAmC;YACnC,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;YAC7B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;SAC5B;aAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;YAC9D,sBAAsB;YACtB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;YAC7B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;SACxB;IACF,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,GAAkB;QAC/B,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC;QACrB,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9C,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAE1D,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;YAClC,OAAO;SACP;QACD,IAAI,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YACtC,mGAAmG;YACnG,gHAAgH;YAChH,WAAW,IAAI,WAAW,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;YAC7E,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACtD,WAAW,IAAI,WAAW,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7D,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;SAC1B;aAAM;YACN,uEAAuE;YACvE,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;YACjC,WAAW,IAAI,WAAW,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;YAC7E,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,GAAG,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;gBACtG,mGAAmG;gBACnG,8FAA8F;gBAC9F,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;gBACvD,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;gBAC1B,IAAI,CAAC,gBAAgB,EAAE,CAAC;aACxB;SACD;IACF,CAAC;IAED;;OAEG;IACH,iBAAiB;QAChB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAE,CAAC,KAAK,EAAE,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,cAAc;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtD,KAAK,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtF,CAAC;IAED;;OAEG;IACH,iBAAiB;QAChB,MAAM,IAAI,GAAG;YACZ,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;YAC5B,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;YAChC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;SAChC,CAAC;QAEF,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,GAAG;YACpB,KAAK,EAAE,CAAC,CAAC;YACT,OAAO,EAAE,CAAC,CAAC;YACX,OAAO,EAAE,CAAC,CAAC;SACX,CAAC;QACF,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC5B,kBAAkB;YAClB,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YACjD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,IAAI,CAAC,UAAU;gBACxB,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,CAAC;gBACZ,SAAS,EAAE,EAAE;gBACb,OAAO,EAAE,IAAI,CAAC,KAAK;gBACnB,aAAa,EAAE,IAAI,CAAC,MAAM;gBAC1B,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE;gBAC/C,aAAa,EAAE,CAAC;gBAChB,qBAAqB,EAAE,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5E,iBAAiB,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,mBAAmB;gBAChE,aAAa,EAAE,IAAI,CAAC,gBAAgB;gBACpC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;gBACzC,QAAQ,EAAE,KAAK;gBACf,YAAY,EAAE;oBACb,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,OAAO;oBACvC,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,OAAO;oBACvC,MAAM,EAAE,CAAC;iBACT;aACD,CAAC,CAAC;SACH;QACD,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC9B,oBAAoB;YACpB,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YACnD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,IAAI,CAAC,YAAY;gBAC1B,QAAQ,EAAE,SAAS;gBACnB,SAAS,EAAE,CAAC;gBACZ,SAAS,EAAE,EAAE;gBACb,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,aAAa,EAAE,IAAI,CAAC,QAAQ;gBAC5B,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnD,aAAa,EAAE,CAAC;gBAChB,qBAAqB,EAAE,CAAC;gBACxB,iBAAiB,EAAE,KAAK;gBACxB,aAAa,EAAE,KAAK;gBACpB,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;gBACzC,QAAQ,EAAE,KAAK;gBACf,YAAY,EAAE;oBACb,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,EAAE;oBACT,MAAM,EAAE,CAAC;iBACT;aACD,CAAC,CAAC;SACH;QACD,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC9B,oBAAoB;YACpB,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YACnD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,IAAI,CAAC,YAAY;gBAC1B,QAAQ,EAAE,SAAS;gBACnB,SAAS,EAAE,CAAC;gBACZ,SAAS,EAAE,EAAE;gBACb,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,aAAa,EAAE,IAAI,CAAC,QAAQ;gBAC5B,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnD,aAAa,EAAE,CAAC;gBAChB,qBAAqB,EAAE,CAAC;gBACxB,iBAAiB,EAAE,KAAK;gBACxB,aAAa,EAAE,KAAK;gBACpB,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;gBACzC,QAAQ,EAAE,KAAK;gBACf,YAAY,EAAE;oBACb,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,EAAE;oBACT,MAAM,EAAE,CAAC;iBACT;aACD,CAAC,CAAC;SACH;QACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;QAChD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QAChF,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,SAAiB;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;YAC1C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;SAC3C;IACF,CAAC;IAED;;;;OAIG;IACH,YAAY,CAAC,UAAkB;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAEpD,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,SAAS,EAAE;YAC7E,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;YACjD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;YAClD,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC;YAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;YAChD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;YAChF,SAAS,CAAC,KAAK,EAAE,CAAC;SAClB;IACF,CAAC;IAED;;;;OAIG;IACH,gBAAgB,CAAC,UAAU,GAAG,KAAK;QAClC,IAAI,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;QACpC,MAAM,gBAAgB,GAAG,WAAW,CAAC;QACrC,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAEtD,GAAG;YACF,WAAW,EAAE,CAAC;YACd,IAAI,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;gBACzC,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;aACzD;YACF,8DAA8D;YAC9D,wDAAwD;SACvD,QAAQ,WAAW,IAAI,WAAW,CAAC,QAAQ,IAAI,WAAW,KAAK,gBAAgB,IAAI,CAAC,UAAU,IAAI,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;QAE7I,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAEnD,IAAI,WAAW,KAAK,gBAAgB,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACvE,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;SAC/B;IACF,CAAC;IAED;;;;OAIG;IACH,YAAY,CAAC,GAAkD;QAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAE,GAAG,CAAC,MAAsB,CAAC,EAAE,CAAC,CAAC;QACnE,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC;QAC3C,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAE5C,IAAI,CAAC,MAAM,EAAE;YACZ,OAAO;SACP;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,WAAW,GAAG,WAAW,CAAC;QAChD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5D,QAAQ,KAAK,EAAE;YACf,KAAK,IAAI,CAAC,aAAa,CAAC,KAAK;gBAC5B,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACzB,MAAM;YACP,KAAK,IAAI,CAAC,aAAa,CAAC,OAAO;gBAC9B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBAC3B,MAAM;YACP,KAAK,IAAI,CAAC,aAAa,CAAC,OAAO;gBAC9B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBAC3B,MAAM;SACN;QACD,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE;YAC3B,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClD,IAAI,CAAC,gBAAgB,EAAE,CAAC;aACxB;iBAAM;gBACN,MAAM,CAAC,KAAK,EAAE,CAAC;aACf;SACD;IACF,CAAC;CACD,CAAA;AAxZA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;0DACvB;AAMxB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;qDAC5B;AAMnB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;yDACxB;AAjBlB,mBAAmB;IAjCxB,KAAK,CAAC,cAAc,CAAC;IAEtB;;;;;;;;;;;;;;;;;;OAkBG;;IACF,aAAa,CAAC;QACd,GAAG,EAAE,2BAA2B;QAChC,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,sBAAsB;QAC9B,QAAQ,EAAE,2BAA2B;QACrC,YAAY,EAAE;YACb,eAAe;YACf,gBAAgB;YAChB,eAAe;SACf;KACD,CAAC;GAEI,mBAAmB,CA6ZxB;AAED,mBAAmB,CAAC,MAAM,EAAE,CAAC;AAE7B,eAAe,mBAAmB,CAAC","sourcesContent":["import 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 litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport \"@ui5/webcomponents-localization/dist/features/calendar/Gregorian.js\"; // default calendar for bundling\nimport {\n\tisDown,\n\tisUp,\n\tisDownAlt,\n\tisUpAlt,\n\tisPageUp,\n\tisPageDown,\n\tisPageUpShift,\n\tisPageDownShift,\n\tisPageUpShiftCtrl,\n\tisPageDownShiftCtrl,\n\tisSpace,\n\tisEnter,\n\tisKeyA,\n\tisKeyP,\n\tisNumber,\n\tisColon,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport TimePickerInternals from \"./TimePickerInternals.js\";\nimport TimePickerClock from \"./TimePickerClock.js\";\nimport ToggleSpinButton from \"./ToggleSpinButton.js\";\nimport SegmentedButton from \"./SegmentedButton.js\";\nimport type { TimePickerClockChangeEventDetail } from \"./TimePickerClock.js\";\n\n// Template\nimport TimeSelectionClocksTemplate from \"./generated/templates/TimeSelectionClocksTemplate.lit.js\";\n\n// Styles\nimport TimeSelectionClocksCss from \"./generated/themes/TimeSelectionClocks.css.js\";\n\n/**\n * Fired when the picker is being closed.\n */\n@event(\"close-picker\")\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * <code>ui5-time-selection-clocks</code> is component that contains all the <code>ui5-time-picker-clock</code> components\n * necessary for the <code>ui5-time-picker</code> as well as all necessary <code>ui5-toggle-spin-button</code> components\n * used for switching between different clocks.\n * <code>ui5-time-picker-clock</code> components and <code>ui5-toggle-spin-button</code> depend on the time format set to\n * <code>ui5-time-picker</code> component.\n *\n * This component should not be used separately.\n *\n * @constructor\n * @extends TimePickerInternals\n * @abstract\n * @since 1.15.0\n * @private\n */\n@customElement({\n\ttag: \"ui5-time-selection-clocks\",\n\trenderer: litRender,\n\tstyles: TimeSelectionClocksCss,\n\ttemplate: TimeSelectionClocksTemplate,\n\tdependencies: [\n\t\tTimePickerClock,\n\t\tToggleSpinButton,\n\t\tSegmentedButton,\n\t],\n})\n\nclass TimeSelectionClocks extends TimePickerInternals {\n\t/**\n\t * Flag for pressed Space key\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_spacePressed!: boolean;\n\n\t/**\n\t * Flag for focused state of Clocks component\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_focused!: boolean;\n\n\t/**\n\t * Flag for focused state of AM/PM segmented button\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_amPmFocused!: boolean;\n\n\tonBeforeRendering() {\n\t\tthis._createComponents();\n\t}\n\n\t/**\n\t * Returns ToggleSpinButton component by index or name.\n\t *\n\t * @param indexOrName the index or name of the component\n\t * @returns component (if exists) or undefined\n\t */\n\t_buttonComponent(indexOrName: number | string): ToggleSpinButton | undefined | null {\n\t\tconst index = typeof indexOrName === \"string\" ? this._indexFromName(indexOrName) : indexOrName;\n\t\tconst entity = this._entities[index].entity;\n\t\treturn entity ? this.shadowRoot?.querySelector<ToggleSpinButton>(`#${this._id}_button_${entity}`) : undefined;\n\t}\n\n\t/**\n\t * Returns TimePickerClock component by index or name.\n\t *\n\t * @param indexOrName the index or name of the component\n\t * @returns component (if exists) or undefined\n\t */\n\t_clockComponent(indexOrName: number | string): TimePickerClock | undefined | null {\n\t\tconst index = typeof indexOrName === \"string\" ? this._indexFromName(indexOrName) : indexOrName;\n\t\tconst entity = this._entities[index].entity;\n\t\treturn entity ? this.shadowRoot?.querySelector<TimePickerClock>(`#${this._id}_clock_${entity}`) : undefined;\n\t}\n\n\t/**\n\t * TimePickerClocks focusin event handler. Focuses the active button and switches to active clock.\n\t *\n\t * @param evt Event object\n\t */\n\t_clocksFocusIn(evt: Event) {\n\t\tconst target = evt.target as HTMLElement;\n\t\tthis._focused = true;\n\t\tif (target.id === this._id) {\n\t\t\tthis._switchClock(this._activeIndex);\n\t\t}\n\t}\n\n\t_clocksFocusOut() {\n\t\tthis._focused = false;\n\t}\n\n\t/**\n\t * ToggleSpinButton focusin event handler.Switches to clock which button is being focused.\n\t *\n\t * @param evt Event object\n\t */\n\t_buttonFocusIn(evt: Event) {\n\t\tconst target = evt.target as HTMLElement;\n\t\tconst name = this._getNameFromId(target.id);\n\t\tif (name) {\n\t\t\tthis._switchTo(name);\n\t\t}\n\t}\n\n\t/**\n\t * AM/PM segmented button focusin event handler.\n\t */\n\t_amPmFocusIn() {\n\t\tthis._amPmFocused = true;\n\t}\n\n\t/**\n\t * AM/PM segmented button focusout event handler.\n\t */\n\t_amPmFocusOut() {\n\t\tthis._amPmFocused = false;\n\t}\n\n\t/**\n\t * keyup event handler.\n\t *\n\t * @param evt Event object\n\t */\n\t_onkeyup(evt: KeyboardEvent) {\n\t\tif (isSpace(evt)) {\n\t\t\tthis._spacePressed = false;\n\t\t}\n\t}\n\n\t/**\n\t * keydown event handler.\n\t *\n\t * @param evt Event object\n\t */\n\t_onkeydown(evt: KeyboardEvent) {\n\t\tlet clock;\n\t\tconst toggleSpinButtonTarget = evt.target && (evt.target as HTMLElement).tagName.toLowerCase().indexOf(\"segmented\") === -1;\n\n\t\tif (isEnter(evt)) {\n\t\t\t// Accept the time and close the popover\n\t\t\tthis.fireEvent(\"close-picker\");\n\t\t} else if (isSpace(evt) && toggleSpinButtonTarget && !this._spacePressed) {\n\t\t\tevt.preventDefault();\n\t\t\tthis._spacePressed = true;\n\t\t\tthis._keyboardBuffer = \"\";\n\t\t\tthis._resetCooldown(true);\n\t\t\tthis._switchNextClock(true);\n\t\t} else if ((isUp(evt) || isDown(evt)) && !isUpAlt(evt) && !isDownAlt(evt)) {\n\t\t\t// Arrows up/down increase/decrease currently active clock\n\t\t\tclock = this._clockComponent(this._activeIndex);\n\t\t\tclock && !clock.disabled && !this._amPmFocused && clock._modifyValue(isUp(evt));\n\t\t\tevt.preventDefault();\n\t\t} else if (isPageUp(evt) || isPageDown(evt)) {\n\t\t\t// PageUp/PageDown increase/decrease hours clock\n\t\t\tclock = this._clockComponent(\"hours\");\n\t\t\tif (clock && !clock.disabled) {\n\t\t\t\tthis._switchTo(\"hours\");\n\t\t\t\tclock._modifyValue(isPageUp(evt));\n\t\t\t}\n\t\t\tevt.preventDefault();\n\t\t} else if (isPageUpShift(evt) || isPageDownShift(evt)) {\n\t\t\t// Shift+PageUp/Shift+PageDown increase/decrease minutes clock\n\t\t\tclock = this._clockComponent(\"minutes\");\n\t\t\tif (clock && !clock.disabled) {\n\t\t\t\tthis._switchTo(\"minutes\");\n\t\t\t\tclock._modifyValue(isPageUpShift(evt));\n\t\t\t}\n\t\t\tevt.preventDefault();\n\t\t} else if (isPageUpShiftCtrl(evt) || isPageDownShiftCtrl(evt)) {\n\t\t\t// Ctrl+Shift+PageUp/Ctrl+Shift+PageDown increase/decrease seconds clock\n\t\t\tclock = this._clockComponent(\"seconds\");\n\t\t\tif (clock && !clock.disabled) {\n\t\t\t\tthis._switchTo(\"seconds\");\n\t\t\t\tclock._modifyValue(isPageUpShiftCtrl(evt));\n\t\t\t}\n\t\t\tevt.preventDefault();\n\t\t} else if (isKeyA(evt) || isKeyP(evt)) {\n\t\t\t// A/P selects AM/PM segmented button item\n\t\t\tconst buttonAmPm = this._buttonAmPm();\n\t\t\tif (buttonAmPm) {\n\t\t\t\tbuttonAmPm.items[0].pressed = isKeyA(evt);\n\t\t\t\tbuttonAmPm.items[1].pressed = isKeyP(evt);\n\t\t\t\tconst period = isKeyA(evt) ? buttonAmPm.items[0].textContent : buttonAmPm.items[1].textContent;\n\t\t\t\tperiod && this._calculatePeriodChange(period);\n\t\t\t}\n\t\t\tevt.preventDefault();\n\t\t} else if (isColon(evt)) {\n\t\t\t// Colon (:) - Switch to next clock\n\t\t\tthis._keyboardBuffer = \"\";\n\t\t\tthis._exactMatch = undefined;\n\t\t\tthis._resetCooldown(true);\n\t\t\tthis._switchNextClock(true);\n\t\t} else if (isNumber(evt) && this._entities[this._activeIndex]) {\n\t\t\t// Direct number entry\n\t\t\tthis._exactMatch = undefined;\n\t\t\tthis._resetCooldown(true);\n\t\t\tthis._numbersInput(evt);\n\t\t}\n\t}\n\n\t/**\n\t * Handles direct numbers entry.\n\t *\n\t * @param evt Event object\n\t */\n\t_numbersInput(evt: KeyboardEvent) {\n\t\tconst char = evt.key;\n\t\tconst bufferStr = this._keyboardBuffer + char;\n\t\tconst bufferNum = parseInt(bufferStr);\n\t\tconst entity = this._entities[this._activeIndex];\n\t\tlet activeClock = this._clockComponent(this._activeIndex);\n\n\t\tif (!entity || !entity.attributes) {\n\t\t\treturn;\n\t\t}\n\t\tif (bufferNum > entity.attributes.max) {\n\t\t\t// value accumulated in the buffer (old entry + new entry) is greater than the clock maximum value,\n\t\t\t// so assign old entry to the current clock and then switch to the next clock, and add new entry as an old value\n\t\t\tactiveClock && activeClock._setSelectedValue(parseInt(this._keyboardBuffer));\n\t\t\tthis._switchNextClock();\n\t\t\tthis._keyboardBuffer = char;\n\t\t\tactiveClock = this._clockComponent(this._activeIndex);\n\t\t\tactiveClock && activeClock._setSelectedValue(parseInt(char));\n\t\t\tthis._resetCooldown(true);\n\t\t} else {\n\t\t\t// value is less than clock's max value, so add new entry to the buffer\n\t\t\tthis._keyboardBuffer = bufferStr;\n\t\t\tactiveClock && activeClock._setSelectedValue(parseInt(this._keyboardBuffer));\n\t\t\tif (this._keyboardBuffer.length === 2 || parseInt(`${this._keyboardBuffer}0`) > entity.attributes.max) {\n\t\t\t\t// if buffer length is 2, or buffer value + one more (any) number is greater than clock's max value\n\t\t\t\t// there is no place for more entry - just set buffer as a value, and switch to the next clock\n\t\t\t\tthis._resetCooldown(this._keyboardBuffer.length !== 2);\n\t\t\t\tthis._keyboardBuffer = \"\";\n\t\t\t\tthis._switchNextClock();\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Focuses the first available button.\n\t */\n\t_focusFirstButton() {\n\t\tthis._activeIndex = 0;\n\t\tthis._buttonComponent(0)!.focus();\n\t}\n\n\t/**\n\t * Sets the exact match value. Must be overriden.\n\t */\n\t_setExactMatch() {\n\t\tconst clock = this._clockComponent(this._activeIndex);\n\t\tclock && this._exactMatch !== undefined && clock._setSelectedValue(this._exactMatch);\n\t}\n\n\t/**\n\t * Creates clock and button components according to the display format pattern.\n\t */\n\t_createComponents() {\n\t\tconst time = {\n\t\t\thours: parseInt(this._hours),\n\t\t\tminutes: parseInt(this._minutes),\n\t\t\tseconds: parseInt(this._seconds),\n\t\t};\n\n\t\tthis._entities = [];\n\t\tthis._periods = [];\n\t\tthis._componentMap = {\n\t\t\thours: -1,\n\t\t\tminutes: -1,\n\t\t\tseconds: -1,\n\t\t};\n\t\tif (this._hasHoursComponent) {\n\t\t\t// add Hours clock\n\t\t\tthis._componentMap.hours = this._entities.length;\n\t\t\tthis._entities.push({\n\t\t\t\t\"label\": this.hoursLabel,\n\t\t\t\t\"entity\": \"hours\",\n\t\t\t\t\"itemMin\": 1,\n\t\t\t\t\"itemMax\": 12,\n\t\t\t\t\"value\": time.hours,\n\t\t\t\t\"stringValue\": this._hours,\n\t\t\t\t\"textValue\": `${time.hours} ${this.hoursLabel}`,\n\t\t\t\t\"displayStep\": 1,\n\t\t\t\t\"lastItemReplacement\": this._hoursConfiguration.isTwelveHoursFormat ? -1 : 0,\n\t\t\t\t\"showInnerCircle\": !this._hoursConfiguration.isTwelveHoursFormat,\n\t\t\t\t\"prependZero\": this._zeroPaddedHours,\n\t\t\t\t\"hasSeparator\": this._entities.length > 0,\n\t\t\t\t\"active\": false,\n\t\t\t\t\"attributes\": {\n\t\t\t\t\t\"min\": this._hoursConfiguration.minHour,\n\t\t\t\t\t\"max\": this._hoursConfiguration.maxHour,\n\t\t\t\t\t\"step\": 1,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t\tif (this._hasMinutesComponent) {\n\t\t\t// add Minutes clock\n\t\t\tthis._componentMap.minutes = this._entities.length;\n\t\t\tthis._entities.push({\n\t\t\t\t\"label\": this.minutesLabel,\n\t\t\t\t\"entity\": \"minutes\",\n\t\t\t\t\"itemMin\": 1,\n\t\t\t\t\"itemMax\": 60,\n\t\t\t\t\"value\": time.minutes,\n\t\t\t\t\"stringValue\": this._minutes,\n\t\t\t\t\"textValue\": `${time.minutes} ${this.minutesLabel}`, // possible concatenation\n\t\t\t\t\"displayStep\": 5,\n\t\t\t\t\"lastItemReplacement\": 0,\n\t\t\t\t\"showInnerCircle\": false,\n\t\t\t\t\"prependZero\": false,\n\t\t\t\t\"hasSeparator\": this._entities.length > 0,\n\t\t\t\t\"active\": false,\n\t\t\t\t\"attributes\": {\n\t\t\t\t\t\"min\": 0,\n\t\t\t\t\t\"max\": 59,\n\t\t\t\t\t\"step\": 1,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t\tif (this._hasSecondsComponent) {\n\t\t\t// add Seconds clock\n\t\t\tthis._componentMap.seconds = this._entities.length;\n\t\t\tthis._entities.push({\n\t\t\t\t\"label\": this.secondsLabel,\n\t\t\t\t\"entity\": \"seconds\",\n\t\t\t\t\"itemMin\": 1,\n\t\t\t\t\"itemMax\": 60,\n\t\t\t\t\"value\": time.seconds,\n\t\t\t\t\"stringValue\": this._seconds,\n\t\t\t\t\"textValue\": `${time.seconds} ${this.secondsLabel}`, // possible concatenation\n\t\t\t\t\"displayStep\": 5,\n\t\t\t\t\"lastItemReplacement\": 0,\n\t\t\t\t\"showInnerCircle\": false,\n\t\t\t\t\"prependZero\": false,\n\t\t\t\t\"hasSeparator\": this._entities.length > 0,\n\t\t\t\t\"active\": false,\n\t\t\t\t\"attributes\": {\n\t\t\t\t\t\"min\": 0,\n\t\t\t\t\t\"max\": 59,\n\t\t\t\t\t\"step\": 1,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t\tthis._entities[this._activeIndex].active = true;\n\t\tthis._entities[this._activeIndex].focused = this._focused && !this._amPmFocused;\n\t\tthis._createPeriodComponent();\n\t}\n\n\t/**\n\t * Switches to the specific clock by name.\n\t *\n\t * @param clockName the name of the clock\n\t */\n\t_switchTo(clockName: string) {\n\t\tconst key = this._componentKey(clockName);\n\t\tif (this._componentMap[key] !== undefined) {\n\t\t\tthis._switchClock(this._componentMap[key]);\n\t\t}\n\t}\n\n\t/**\n\t * Switches to the specific clock by its index in _clocks property.\n\t *\n\t * @param clockIndex the index of the clock\n\t */\n\t_switchClock(clockIndex: number) {\n\t\tconst newButton = this._buttonComponent(clockIndex);\n\n\t\tif (this._entities.length && clockIndex < this._entities.length && newButton) {\n\t\t\tthis._entities[this._activeIndex].active = false;\n\t\t\tthis._entities[this._activeIndex].focused = false;\n\t\t\tthis._activeIndex = clockIndex;\n\t\t\tthis._entities[this._activeIndex].active = true;\n\t\t\tthis._entities[this._activeIndex].focused = this._focused && !this._amPmFocused;\n\t\t\tnewButton.focus();\n\t\t}\n\t}\n\n\t/**\n\t * Switches to the next available clock.\n\t *\n\t * @param wrapAround whether to switch to the first clock if there are no next clock\n\t */\n\t_switchNextClock(wrapAround = false) {\n\t\tlet activeIndex = this._activeIndex;\n\t\tconst startActiveIndex = activeIndex;\n\t\tconst activeClock = this._clockComponent(activeIndex);\n\n\t\tdo {\n\t\t\tactiveIndex++;\n\t\t\tif (activeIndex >= this._entities.length) {\n\t\t\t\tactiveIndex = wrapAround ? 0 : this._entities.length - 1;\n\t\t\t}\n\t\t// false-positive finding of no-unmodified-loop-condition rule\n\t\t// eslint-disable-next-line no-unmodified-loop-condition\n\t\t} while (activeClock && activeClock.disabled && activeIndex !== startActiveIndex && (wrapAround || activeIndex < this._entities.length - 1));\n\n\t\tconst newClock = this._clockComponent(activeIndex);\n\n\t\tif (activeIndex !== startActiveIndex && newClock && !newClock.disabled) {\n\t\t\tthis._switchClock(activeIndex);\n\t\t}\n\t}\n\n\t/**\n\t * Clock 'change' event handler.\n\t *\n\t * @param evt Event object\n\t */\n\t_clockChange(evt: CustomEvent<TimePickerClockChangeEventDetail>) {\n\t\tconst index = this._getIndexFromId((evt.target as HTMLElement).id);\n\t\tconst stringValue = evt.detail.stringValue;\n\t\tconst value = evt.detail.value;\n\t\tconst button = this._buttonComponent(index);\n\n\t\tif (!button) {\n\t\t\treturn;\n\t\t}\n\t\tthis._entities[index].stringValue = stringValue;\n\t\tthis._entities[index].value = value;\n\t\tthis._entities = JSON.parse(JSON.stringify(this._entities));\n\t\tswitch (index) {\n\t\tcase this._componentMap.hours:\n\t\t\tthis._hoursChange(value);\n\t\t\tbreak;\n\t\tcase this._componentMap.minutes:\n\t\t\tthis._minutesChange(value);\n\t\t\tbreak;\n\t\tcase this._componentMap.seconds:\n\t\t\tthis._secondsChange(value);\n\t\t\tbreak;\n\t\t}\n\t\tif (evt.detail.finalChange) {\n\t\t\tif (this._activeIndex < this._entities.length - 1) {\n\t\t\t\tthis._switchNextClock();\n\t\t\t} else {\n\t\t\t\tbutton.focus();\n\t\t\t}\n\t\t}\n\t}\n}\n\nTimeSelectionClocks.define();\n\nexport default TimeSelectionClocks;\n"]}
package/dist/Toast.d.ts CHANGED
@@ -92,6 +92,7 @@ declare class Toast extends UI5Element {
92
92
  focused: boolean;
93
93
  _reopen: boolean;
94
94
  constructor();
95
+ onBeforeRendering(): void;
95
96
  onAfterRendering(): void;
96
97
  /**
97
98
  * Shows the component.
@@ -106,14 +107,6 @@ declare class Toast extends UI5Element {
106
107
  * @private
107
108
  */
108
109
  get effectiveDuration(): number;
109
- get styles(): {
110
- root: {
111
- "transition-duration": string;
112
- "transition-delay": string;
113
- opacity: string;
114
- "z-index": number | undefined;
115
- };
116
- };
117
110
  _initiateOpening(): void;
118
111
  _ontransitionend(): void;
119
112
  _onmouseover(): void;
package/dist/Toast.js CHANGED
@@ -22,9 +22,10 @@ const MIN_DURATION = 500;
22
22
  const MAX_DURATION = 1000;
23
23
  const openedToasts = [];
24
24
  let opener;
25
+ let globalListenerAdded = false;
25
26
  const handleGlobalKeydown = (e) => {
26
27
  const isCtrl = e.metaKey || (!isMac() && e.ctrlKey);
27
- const isMKey = e.key.toLowerCase() === "m";
28
+ const isMKey = e.key && e.key.toLowerCase() === "m";
28
29
  const isCombinationPressed = isCtrl && e.shiftKey && isMKey;
29
30
  const hasOpenToast = openedToasts.length;
30
31
  if (isCombinationPressed) {
@@ -42,7 +43,6 @@ const handleGlobalKeydown = (e) => {
42
43
  }
43
44
  }
44
45
  };
45
- document.addEventListener("keydown", handleGlobalKeydown);
46
46
  /**
47
47
  * @class
48
48
  *
@@ -85,6 +85,25 @@ let Toast = class Toast extends UI5Element {
85
85
  constructor() {
86
86
  super();
87
87
  this._reopen = false;
88
+ this.addEventListener("focusin", this._onfocusin.bind(this));
89
+ this.addEventListener("focusout", this._onfocusout.bind(this));
90
+ this.addEventListener("keydown", this._onkeydown.bind(this));
91
+ this.addEventListener("mouseover", this._onmouseover.bind(this));
92
+ this.addEventListener("mouseleave", this._onmouseleave.bind(this));
93
+ this.addEventListener("transitionend", this._ontransitionend.bind(this));
94
+ }
95
+ onBeforeRendering() {
96
+ // Transition duration (animation) should be a third of the duration
97
+ // property, but not bigger than the maximum allowed (1000ms).
98
+ const transitionDuration = Math.min(this.effectiveDuration / 3, MAX_DURATION);
99
+ this.style.transitionDuration = this.open ? `${transitionDuration}ms` : "";
100
+ this.style.transitionDelay = this.open ? `${this.effectiveDuration - transitionDuration}ms` : "";
101
+ this.style.opacity = this.open && !this.hover && !this.focused ? "0" : "";
102
+ this.style.zIndex = `${getNextZIndex()}`;
103
+ if (!globalListenerAdded) {
104
+ document.addEventListener("keydown", handleGlobalKeydown);
105
+ globalListenerAdded = true;
106
+ }
88
107
  }
89
108
  onAfterRendering() {
90
109
  if (this._reopen) {
@@ -125,22 +144,6 @@ let Toast = class Toast extends UI5Element {
125
144
  get effectiveDuration() {
126
145
  return this.duration < MIN_DURATION ? MIN_DURATION : this.duration;
127
146
  }
128
- get styles() {
129
- // Transition duration (animation) should be a third of the duration
130
- // property, but not bigger than the maximum allowed (1000ms).
131
- const transitionDuration = Math.min(this.effectiveDuration / 3, MAX_DURATION);
132
- return {
133
- root: {
134
- "transition-duration": this.open ? `${transitionDuration}ms` : "",
135
- // Transition delay is the duration property minus the
136
- // transition duration (animation).
137
- "transition-delay": this.open ? `${this.effectiveDuration - transitionDuration}ms` : "",
138
- // We alter the opacity property, in order to trigger transition
139
- "opacity": this.open && !this.hover && !this.focused ? "0" : "",
140
- "z-index": getNextZIndex(),
141
- },
142
- };
143
- }
144
147
  _initiateOpening() {
145
148
  this.domRendered = true;
146
149
  requestAnimationFrame(() => {
@@ -157,7 +160,6 @@ let Toast = class Toast extends UI5Element {
157
160
  this.open = false;
158
161
  this.focusable = false;
159
162
  this.focused = false;
160
- openedToasts.pop();
161
163
  }
162
164
  _onmouseover() {
163
165
  this.hover = true;
package/dist/Toast.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.js","sourceRoot":"","sources":["../src/Toast.ts"],"names":[],"mappings":"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","sourcesContent":["import Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { getNextZIndex } from \"@ui5/webcomponents-base/dist/util/PopupUtils.js\";\nimport { isEscape } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isMac } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport ToastPlacement from \"./types/ToastPlacement.js\";\n\n// Template\nimport ToastTemplate from \"./generated/templates/ToastTemplate.lit.js\";\n\n// Styles\nimport ToastCss from \"./generated/themes/Toast.css.js\";\n\n// Constants\nconst MIN_DURATION = 500;\nconst MAX_DURATION = 1000;\nconst openedToasts: Array<Toast> = [];\nlet opener: HTMLElement | null;\n\nconst handleGlobalKeydown = (e: KeyboardEvent) => {\n\tconst isCtrl = e.metaKey || (!isMac() && e.ctrlKey);\n\tconst isMKey = e.key.toLowerCase() === \"m\";\n\tconst isCombinationPressed = isCtrl && e.shiftKey && isMKey;\n\tconst hasOpenToast = openedToasts.length;\n\n\tif (isCombinationPressed) {\n\t\te.preventDefault();\n\n\t\tif (hasOpenToast) {\n\t\t\topenedToasts[0].focusable = true;\n\n\t\t\tif (openedToasts[0].focused) {\n\t\t\t\topenedToasts[0].focused = false;\n\t\t\t\topener?.focus();\n\t\t\t} else {\n\t\t\t\topener = (document.activeElement as HTMLElement);\n\t\t\t\topenedToasts[0].focus();\n\t\t\t}\n\t\t}\n\t}\n};\n\ndocument.addEventListener(\"keydown\", handleGlobalKeydown);\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>ui5-toast</code> is a small, non-disruptive popup for success or information messages that\n * disappears automatically after a few seconds.\n *\n *\n * <h3>Usage</h3>\n *\n * <h4>When to use:</h4>\n * <ul>\n * <li>You want to display a short success or information message.</li>\n * <li>You do not want to interrupt users while they are performing an action.</li>\n * <li>You want to confirm a successful action.</li>\n * </ul>\n * <h4>When not to use:</h4>\n * <ul>\n * <li>You want to display error or warning message.</li>\n * <li>You want to interrupt users while they are performing an action.</li>\n * <li>You want to make sure that users read the message before they leave the page.</li>\n * <li>You want users to be able to copy some part of the message text.</li>\n * </ul>\n *\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@ui5/webcomponents/dist/Toast\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n * @since 1.0.0-rc.6\n * @slot {Array<Node>} default\n * Defines the text of the component.\n * <br><br>\n * <b>Note:</b> Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\n */\n@customElement({\n\ttag: \"ui5-toast\",\n\trenderer: litRender,\n\tstyles: ToastCss,\n\ttemplate: ToastTemplate,\n})\nclass Toast extends UI5Element {\n\t/**\n\t * Defines the duration in milliseconds for which component\n\t * remains on the screen before it's automatically closed.\n\t * <br><br>\n\t * <b>Note:</b> The minimum supported value is <code>500</code> ms\n\t * and even if a lower value is set, the duration would remain <code>500</code> ms.\n\t *\n\t * @default 3000\n\t * @public\n\t */\n\t@property({ validator: Integer, defaultValue: 3000 })\n\tduration!: number;\n\n\t/**\n\t * Defines the placement of the component.\n\t * <br><br>\n\t *\n\t * @default \"BottomCenter\"\n\t * @public\n\t */\n\t@property({ type: ToastPlacement, defaultValue: ToastPlacement.BottomCenter })\n\tplacement!: `${ToastPlacement}`;\n\n\t/**\n\t * Indicates whether the component is open (visible).\n\t *\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\topen!: boolean;\n\n\t/**\n\t * Indicates whether the component is hovered.\n\t *\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\thover!: boolean;\n\n\t/**\n\t * Indicates whether the component DOM is rendered.\n\t *\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tdomRendered!: boolean;\n\n\t/**\n\t * Indicates whether the toast could be focused\n\t * This happens when ctr / command + shift + m is pressed\n\t *\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfocusable!: boolean;\n\n\t/**\n\t * Indicates whether the toast is focused\n\t * This happens when ctr / command + shift + m is pressed\n\t *\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfocused!: boolean;\n\n\t_reopen: boolean;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._reopen = false;\n\t}\n\n\tonAfterRendering() {\n\t\tif (this._reopen) {\n\t\t\tthis._reopen = false;\n\t\t\tthis._initiateOpening();\n\t\t}\n\t}\n\n\t/**\n\t * Shows the component.\n\t * @public\n\t */\n\tshow(): void {\n\t\tif (this.open) {\n\t\t\t// If the Toast is already opened, we set the _reopen flag to true, in\n\t\t\t// order to trigger re-rendering after an animation frame\n\t\t\t// in the onAfterRendering hook.\n\t\t\t// This is needed for properly resetting the opacity transition.\n\t\t\tthis._reopen = true;\n\t\t\tthis.open = false;\n\t\t} else {\n\t\t\tthis._initiateOpening();\n\t\t}\n\t}\n\n\t_onfocusin() {\n\t\tif (this.focusable) {\n\t\t\tthis.focused = true;\n\t\t}\n\t}\n\n\t_onfocusout() {\n\t\tthis.focused = false;\n\t}\n\n\t/**\n\t * If the minimum duration is lower than 500ms, we force\n\t * it to be 500ms, as described in the documentation.\n\t * @private\n\t */\n\tget effectiveDuration() {\n\t\treturn this.duration < MIN_DURATION ? MIN_DURATION : this.duration;\n\t}\n\n\tget styles() {\n\t\t// Transition duration (animation) should be a third of the duration\n\t\t// property, but not bigger than the maximum allowed (1000ms).\n\t\tconst transitionDuration = Math.min(this.effectiveDuration / 3, MAX_DURATION);\n\n\t\treturn {\n\t\t\troot: {\n\t\t\t\t\"transition-duration\": this.open ? `${transitionDuration}ms` : \"\",\n\n\t\t\t\t// Transition delay is the duration property minus the\n\t\t\t\t// transition duration (animation).\n\t\t\t\t\"transition-delay\": this.open ? `${this.effectiveDuration - transitionDuration}ms` : \"\",\n\n\t\t\t\t// We alter the opacity property, in order to trigger transition\n\t\t\t\t\"opacity\": this.open && !this.hover && !this.focused ? \"0\" : \"\",\n\n\t\t\t\t\"z-index\": getNextZIndex(),\n\t\t\t},\n\t\t};\n\t}\n\n\t_initiateOpening() {\n\t\tthis.domRendered = true;\n\t\trequestAnimationFrame(() => {\n\t\t\tthis.open = true;\n\t\t\topenedToasts.pop();\n\t\t\topenedToasts.push(this);\n\t\t});\n\t}\n\n\t_ontransitionend() {\n\t\tif (this.hover || this.focused) {\n\t\t\treturn;\n\t\t}\n\t\tthis.domRendered = false;\n\t\tthis.open = false;\n\t\tthis.focusable = false;\n\t\tthis.focused = false;\n\t\topenedToasts.pop();\n\t}\n\n\t_onmouseover() {\n\t\tthis.hover = true;\n\t}\n\n\t_onmouseleave() {\n\t\tthis.hover = false;\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isEscape(e)) {\n\t\t\tthis.focused = false;\n\t\t\topener?.focus();\n\t\t}\n\t}\n\n\tget _tabindex() {\n\t\treturn this.focused ? \"0\" : \"-1\";\n\t}\n}\n\nToast.define();\n\nexport default Toast;\n"]}
1
+ {"version":3,"file":"Toast.js","sourceRoot":"","sources":["../src/Toast.ts"],"names":[],"mappings":"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","sourcesContent":["import Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { getNextZIndex } from \"@ui5/webcomponents-base/dist/util/PopupUtils.js\";\nimport { isEscape } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isMac } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport ToastPlacement from \"./types/ToastPlacement.js\";\n\n// Template\nimport ToastTemplate from \"./generated/templates/ToastTemplate.lit.js\";\n\n// Styles\nimport ToastCss from \"./generated/themes/Toast.css.js\";\n\n// Constants\nconst MIN_DURATION = 500;\nconst MAX_DURATION = 1000;\nconst openedToasts: Array<Toast> = [];\nlet opener: HTMLElement | null;\n\nlet globalListenerAdded = false;\nconst handleGlobalKeydown = (e: KeyboardEvent) => {\n\tconst isCtrl = e.metaKey || (!isMac() && e.ctrlKey);\n\tconst isMKey = e.key && e.key.toLowerCase() === \"m\";\n\tconst isCombinationPressed = isCtrl && e.shiftKey && isMKey;\n\tconst hasOpenToast = openedToasts.length;\n\n\tif (isCombinationPressed) {\n\t\te.preventDefault();\n\n\t\tif (hasOpenToast) {\n\t\t\topenedToasts[0].focusable = true;\n\n\t\t\tif (openedToasts[0].focused) {\n\t\t\t\topenedToasts[0].focused = false;\n\t\t\t\topener?.focus();\n\t\t\t} else {\n\t\t\t\topener = (document.activeElement as HTMLElement);\n\t\t\t\topenedToasts[0].focus();\n\t\t\t}\n\t\t}\n\t}\n};\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>ui5-toast</code> is a small, non-disruptive popup for success or information messages that\n * disappears automatically after a few seconds.\n *\n *\n * <h3>Usage</h3>\n *\n * <h4>When to use:</h4>\n * <ul>\n * <li>You want to display a short success or information message.</li>\n * <li>You do not want to interrupt users while they are performing an action.</li>\n * <li>You want to confirm a successful action.</li>\n * </ul>\n * <h4>When not to use:</h4>\n * <ul>\n * <li>You want to display error or warning message.</li>\n * <li>You want to interrupt users while they are performing an action.</li>\n * <li>You want to make sure that users read the message before they leave the page.</li>\n * <li>You want users to be able to copy some part of the message text.</li>\n * </ul>\n *\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@ui5/webcomponents/dist/Toast\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n * @since 1.0.0-rc.6\n * @slot {Array<Node>} default\n * Defines the text of the component.\n * <br><br>\n * <b>Note:</b> Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\n */\n@customElement({\n\ttag: \"ui5-toast\",\n\trenderer: litRender,\n\tstyles: ToastCss,\n\ttemplate: ToastTemplate,\n})\nclass Toast extends UI5Element {\n\t/**\n\t * Defines the duration in milliseconds for which component\n\t * remains on the screen before it's automatically closed.\n\t * <br><br>\n\t * <b>Note:</b> The minimum supported value is <code>500</code> ms\n\t * and even if a lower value is set, the duration would remain <code>500</code> ms.\n\t *\n\t * @default 3000\n\t * @public\n\t */\n\t@property({ validator: Integer, defaultValue: 3000 })\n\tduration!: number;\n\n\t/**\n\t * Defines the placement of the component.\n\t * <br><br>\n\t *\n\t * @default \"BottomCenter\"\n\t * @public\n\t */\n\t@property({ type: ToastPlacement, defaultValue: ToastPlacement.BottomCenter })\n\tplacement!: `${ToastPlacement}`;\n\n\t/**\n\t * Indicates whether the component is open (visible).\n\t *\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\topen!: boolean;\n\n\t/**\n\t * Indicates whether the component is hovered.\n\t *\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\thover!: boolean;\n\n\t/**\n\t * Indicates whether the component DOM is rendered.\n\t *\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tdomRendered!: boolean;\n\n\t/**\n\t * Indicates whether the toast could be focused\n\t * This happens when ctr / command + shift + m is pressed\n\t *\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfocusable!: boolean;\n\n\t/**\n\t * Indicates whether the toast is focused\n\t * This happens when ctr / command + shift + m is pressed\n\t *\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfocused!: boolean;\n\n\t_reopen: boolean;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._reopen = false;\n\n\t\tthis.addEventListener(\"focusin\", this._onfocusin.bind(this));\n\t\tthis.addEventListener(\"focusout\", this._onfocusout.bind(this));\n\t\tthis.addEventListener(\"keydown\", this._onkeydown.bind(this));\n\t\tthis.addEventListener(\"mouseover\", this._onmouseover.bind(this));\n\t\tthis.addEventListener(\"mouseleave\", this._onmouseleave.bind(this));\n\t\tthis.addEventListener(\"transitionend\", this._ontransitionend.bind(this));\n\t}\n\n\tonBeforeRendering() {\n\t\t// Transition duration (animation) should be a third of the duration\n\t\t// property, but not bigger than the maximum allowed (1000ms).\n\t\tconst transitionDuration = Math.min(this.effectiveDuration / 3, MAX_DURATION);\n\n\t\tthis.style.transitionDuration = this.open ? `${transitionDuration}ms` : \"\";\n\t\tthis.style.transitionDelay = this.open ? `${this.effectiveDuration - transitionDuration}ms` : \"\";\n\t\tthis.style.opacity = this.open && !this.hover && !this.focused ? \"0\" : \"\";\n\t\tthis.style.zIndex = `${getNextZIndex()}`;\n\n\t\tif (!globalListenerAdded) {\n\t\t\tdocument.addEventListener(\"keydown\", handleGlobalKeydown);\n\t\t\tglobalListenerAdded = true;\n\t\t}\n\t}\n\n\tonAfterRendering() {\n\t\tif (this._reopen) {\n\t\t\tthis._reopen = false;\n\t\t\tthis._initiateOpening();\n\t\t}\n\t}\n\n\t/**\n\t * Shows the component.\n\t * @public\n\t */\n\tshow(): void {\n\t\tif (this.open) {\n\t\t\t// If the Toast is already opened, we set the _reopen flag to true, in\n\t\t\t// order to trigger re-rendering after an animation frame\n\t\t\t// in the onAfterRendering hook.\n\t\t\t// This is needed for properly resetting the opacity transition.\n\t\t\tthis._reopen = true;\n\t\t\tthis.open = false;\n\t\t} else {\n\t\t\tthis._initiateOpening();\n\t\t}\n\t}\n\n\t_onfocusin() {\n\t\tif (this.focusable) {\n\t\t\tthis.focused = true;\n\t\t}\n\t}\n\n\t_onfocusout() {\n\t\tthis.focused = false;\n\t}\n\n\t/**\n\t * If the minimum duration is lower than 500ms, we force\n\t * it to be 500ms, as described in the documentation.\n\t * @private\n\t */\n\tget effectiveDuration() {\n\t\treturn this.duration < MIN_DURATION ? MIN_DURATION : this.duration;\n\t}\n\n\t_initiateOpening() {\n\t\tthis.domRendered = true;\n\t\trequestAnimationFrame(() => {\n\t\t\tthis.open = true;\n\t\t\topenedToasts.pop();\n\t\t\topenedToasts.push(this);\n\t\t});\n\t}\n\n\t_ontransitionend() {\n\t\tif (this.hover || this.focused) {\n\t\t\treturn;\n\t\t}\n\t\tthis.domRendered = false;\n\t\tthis.open = false;\n\t\tthis.focusable = false;\n\t\tthis.focused = false;\n\t}\n\n\t_onmouseover() {\n\t\tthis.hover = true;\n\t}\n\n\t_onmouseleave() {\n\t\tthis.hover = false;\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isEscape(e)) {\n\t\t\tthis.focused = false;\n\t\t\topener?.focus();\n\t\t}\n\t}\n\n\tget _tabindex() {\n\t\treturn this.focused ? \"0\" : \"-1\";\n\t}\n}\n\nToast.define();\n\nexport default Toast;\n"]}
package/dist/Toolbar.js CHANGED
@@ -345,7 +345,6 @@ let Toolbar = Toolbar_1 = class Toolbar extends UI5Element {
345
345
  onInteract(e) {
346
346
  const target = e.target;
347
347
  const item = target.closest(".ui5-tb-item") || target.closest(".ui5-tb-popover-item");
348
- const eventType = e.type;
349
348
  if (target === this.overflowButtonDOM) {
350
349
  this.toggleOverflow();
351
350
  return;
@@ -356,6 +355,7 @@ let Toolbar = Toolbar_1 = class Toolbar extends UI5Element {
356
355
  const refItemId = target.getAttribute("data-ui5-external-action-item-id");
357
356
  if (refItemId) {
358
357
  const abstractItem = this.getItemByID(refItemId);
358
+ const eventType = e.type.replace("ui5-", "");
359
359
  const prevented = !abstractItem?.fireEvent(eventType, e.detail, true);
360
360
  const eventOptions = abstractItem?.subscribedEvents.get(eventType);
361
361
  if (prevented || abstractItem?.preventOverflowClosing || eventOptions?.preventClosing) {
@@ -1 +1 @@
1
- {"version":3,"file":"Toolbar.js","sourceRoot":"","sources":["../src/Toolbar.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element, { ChangeInfo } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport \"@ui5/webcomponents-icons/dist/overflow.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getScopedVarName } from \"@ui5/webcomponents-base/dist/CustomElementsScope.js\";\n\nimport {\n\tTOOLBAR_OVERFLOW_BUTTON_ARIA_LABEL,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nimport ToolbarTemplate from \"./generated/templates/ToolbarTemplate.lit.js\";\nimport ToolbarCss from \"./generated/themes/Toolbar.css.js\";\n\nimport ToolbarPopoverTemplate from \"./generated/templates/ToolbarPopoverTemplate.lit.js\";\nimport ToolbarPopoverCss from \"./generated/themes/ToolbarPopover.css.js\";\n\nimport ToolbarAlign from \"./types/ToolbarAlign.js\";\nimport ToolbarItemOverflowBehavior from \"./types/ToolbarItemOverflowBehavior.js\";\nimport HasPopup from \"./types/HasPopup.js\";\n\nimport ToolbarItem from \"./ToolbarItem.js\";\nimport type ToolbarSeparator from \"./ToolbarSeparator.js\";\n\nimport {\n\tgetRegisteredToolbarItem,\n\tgetRegisteredStyles,\n\tgetRegisteredStaticAreaStyles,\n\tgetRegisteredDependencies,\n} from \"./ToolbarRegistry.js\";\n\nimport Button from \"./Button.js\";\nimport Popover from \"./Popover.js\";\n\nfunction calculateCSSREMValue(styleSet: CSSStyleDeclaration, propertyName: string): number {\n\treturn Number(styleSet.getPropertyValue(propertyName).replace(\"rem\", \"\")) * parseInt(getComputedStyle(document.body).getPropertyValue(\"font-size\"));\n}\n\nfunction parsePxValue(styleSet: CSSStyleDeclaration, propertyName: string): number {\n\treturn Number(styleSet.getPropertyValue(propertyName).replace(\"px\", \"\"));\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>ui5-toolbar</code> component is used to create a horizontal layout with items.\n * The items can be overflowing in a popover, when the space is not enough to show all of them.\n *\n * <h3>Keyboard Handling</h3>\n * The <code>ui5-toolbar</code> provides advanced keyboard handling.\n * <br>\n * <ul>\n * <li>The control is not interactive, but can contain of interactive elements </li>\n * <li>[TAB] - iterates through elements</li>\n * </ul>\n * <br>\n *\n * <h3>ES6 Module Import</h3>\n * <code>import \"@ui5/webcomponents/dist/Toolbar\";</code>\n * @constructor\n * @extends UI5Element\n * @public\n * @since 1.17.0\n */\n@customElement({\n\ttag: \"ui5-toolbar\",\n\tlanguageAware: true,\n\trenderer: litRender,\n\ttemplate: ToolbarTemplate,\n\tstaticAreaTemplate: ToolbarPopoverTemplate,\n})\nclass Toolbar extends UI5Element {\n\tstatic i18nBundle: I18nBundle;\n\n\t/**\n\t * Indicated the direction in which the Toolbar items will be aligned.\n\t *\n\t * @public\n\t * @default \"End\"\n\t */\n\t@property({ type: ToolbarAlign, defaultValue: ToolbarAlign.End })\n\talignContent!: `${ToolbarAlign}`;\n\n\t/**\n\t * Calculated width of the whole toolbar.\n\t * @private\n\t * @default undefined\n\t */\n\t@property({ validator: Integer })\n\twidth?: number;\n\n\t/**\n\t * Calculated width of the toolbar content.\n\t * @private\n\t * @default undefined\n\t */\n\t@property({ validator: Integer })\n\tcontentWidth?: number;\n\n\t/**\n\t * Notifies the toolbar if it should show the items in a reverse way if Toolbar Popover needs to be placed on \"Top\" position.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\treverseOverflow!: boolean;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t *\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\taccessibleName!: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the input.\n\t *\n\t * @default \"\"\n\t * @public\n\t */\n\t@property({ defaultValue: \"\" })\n\taccessibleNameRef!: string;\n\n\t/**\n\t * Defines the items of the component.\n *\n * <b>Note:</b> Currently only <code>ui5-toolbar-button</code>, <code>ui5-toolbar-select</code>, <code>ui5-toolbar-separator</code> and <code>ui5-toolbar-spacer</code> are allowed here.\n\t *\n\t * @public\n\t */\n\t@slot({ \"default\": true, type: HTMLElement, invalidateOnChildChange: true })\n\titems!: Array<ToolbarItem>\n\n\t_onResize!: ResizeObserverCallback;\n\t_onInteract!: EventListener;\n\titemsToOverflow: Array<ToolbarItem> = [];\n\titemsWidth = 0;\n\tpopoverOpen = false;\n\titemsWidthMeasured = false;\n\n\tITEMS_WIDTH_MAP: Map<string, number> = new Map();\n\n\tstatic get styles() {\n\t\tconst styles = getRegisteredStyles();\n\t\treturn [\n\t\t\tToolbarCss,\n\t\t\t...styles,\n\t\t];\n\t}\n\n\tstatic get staticAreaStyles() {\n\t\tconst styles = getRegisteredStaticAreaStyles();\n\t\treturn [\n\t\t\tToolbarPopoverCss,\n\t\t\t...styles,\n\t\t];\n\t}\n\n\tstatic get dependencies() {\n\t\tconst deps = getRegisteredDependencies();\n\t\treturn [\n\t\t\tPopover,\n\t\t\tButton,\n\t\t\t...deps,\n\t\t];\n\t}\n\n\tstatic async onDefine() {\n\t\tToolbar.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._onResize = this.onResize.bind(this);\n\t\tthis._onInteract = (e: Event) => this.onInteract(e as CustomEvent);\n\t}\n\n\t/**\n\t * Read-only members\n\t */\n\n\tget overflowButtonSize(): number {\n\t\treturn this.overflowButtonDOM?.getBoundingClientRect().width || 0;\n\t}\n\n\tget padding(): number {\n\t\tconst toolbarComputedStyle = getComputedStyle(this.getDomRef()!);\n\t\treturn calculateCSSREMValue(toolbarComputedStyle, getScopedVarName(\"--_ui5-toolbar-padding-left\"))\n\t\t\t+ calculateCSSREMValue(toolbarComputedStyle, getScopedVarName(\"--_ui5-toolbar-padding-right\"));\n\t}\n\n\tget subscribedEvents() {\n\t\treturn this.items\n\t\t\t.map((item: ToolbarItem) => Array.from(item.subscribedEvents.keys()))\n\t\t\t.flat()\n\t\t\t// remove duplicates\n\t\t\t.filter((value, index, self) => self.indexOf(value) === index);\n\t}\n\n\tget alwaysOverflowItems() {\n\t\treturn this.items.filter((item: ToolbarItem) => item.overflowPriority === ToolbarItemOverflowBehavior.AlwaysOverflow);\n\t}\n\n\tget movableItems() {\n\t\treturn this.items.filter((item: ToolbarItem) => item.overflowPriority !== ToolbarItemOverflowBehavior.AlwaysOverflow && item.overflowPriority !== ToolbarItemOverflowBehavior.NeverOverflow);\n\t}\n\n\tget overflowItems() {\n\t\t// spacers are ignored\n\t\tconst overflowItems = this.getItemsInfo(this.itemsToOverflow.filter(item => !item.ignoreSpace));\n\t\treturn this.reverseOverflow ? overflowItems.reverse() : overflowItems;\n\t}\n\n\tget standardItems() {\n\t\treturn this.getItemsInfo(this.items.filter(item => this.itemsToOverflow.indexOf(item) === -1));\n\t}\n\n\tget hideOverflowButton() {\n\t\treturn this.itemsToOverflow.filter(item => !(item.ignoreSpace || item.isSeparator)).length === 0;\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\titems: {\n\t\t\t\t\"ui5-tb-items\": true,\n\t\t\t\t\"ui5-tb-items-full-width\": this.hasFlexibleSpacers,\n\t\t\t},\n\t\t\toverflow: {\n\t\t\t\t\"ui5-overflow-list--alignleft\": this.hasItemWithText,\n\t\t\t},\n\t\t\toverflowButton: {\n\t\t\t\t\"ui5-tb-item\": true,\n\t\t\t\t\"ui5-tb-overflow-btn\": true,\n\t\t\t\t\"ui5-tb-overflow-btn-hidden\": this.hideOverflowButton,\n\t\t\t},\n\t\t};\n\t}\n\n\tget interactiveItemsCount() {\n\t\treturn this.items.filter((item: ToolbarItem) => item.isInteractive).length;\n\t}\n\n\t/**\n\t * Accessibility\n\t */\n\n\tget hasAriaSemantics() {\n\t\treturn this.interactiveItemsCount > 1;\n\t}\n\n\tget accessibleRole() {\n\t\treturn this.hasAriaSemantics ? \"toolbar\" : undefined;\n\t}\n\n\tget ariaLabelText() {\n\t\treturn this.hasAriaSemantics ? getEffectiveAriaLabelText(this) : undefined;\n\t}\n\n\tget accInfo() {\n\t\treturn {\n\t\t\troot: {\n\t\t\t\trole: this.accessibleRole,\n\t\t\t\taccessibleName: this.ariaLabelText,\n\t\t\t},\n\t\t\toverflowButton: {\n\t\t\t\taccessibleName: Toolbar.i18nBundle.getText(TOOLBAR_OVERFLOW_BUTTON_ARIA_LABEL),\n\t\t\t\ttooltip: Toolbar.i18nBundle.getText(TOOLBAR_OVERFLOW_BUTTON_ARIA_LABEL),\n\t\t\t\taccessibilityAttributes: {\n\t\t\t\t\texpanded: this.overflowButtonDOM?.accessibilityAttributes.expanded,\n\t\t\t\t\thasPopup: HasPopup.Menu,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * Toolbar Overflow Popover\n\t */\n\n\tget overflowButtonDOM(): Button | null {\n\t\treturn this.shadowRoot!.querySelector(\".ui5-tb-overflow-btn\");\n\t}\n\n\tget itemsDOM() {\n\t\treturn this.shadowRoot!.querySelector(\".ui5-tb-items\");\n\t}\n\n\tget hasItemWithText(): boolean {\n\t\treturn this.itemsToOverflow.some((item: ToolbarItem) => item.containsText);\n\t}\n\n\tget hasFlexibleSpacers() {\n\t\treturn this.items.some((item: ToolbarItem) => item.hasFlexibleWidth);\n\t}\n\n\t/**\n\t * Lifecycle methods\n\t */\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._onResize);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._onResize);\n\t}\n\n\tonInvalidation(changeInfo: ChangeInfo) {\n\t\tif (changeInfo.reason === \"childchange\" && changeInfo.child === this.itemsToOverflow[0]) {\n\t\t\tthis.onToolbarItemChange();\n\t\t}\n\t}\n\n\tonBeforeRendering() {\n\t\tthis.detachListeners();\n\t\tthis.attachListeners();\n\t}\n\n\tasync onAfterRendering() {\n\t\tawait renderFinished();\n\n\t\tthis.storeItemsWidth();\n\t\tthis.processOverflowLayout();\n\t}\n\n\t/**\n\t * Returns if the overflow popup is open.\n\t *\n\t * @public\n\t */\n\tasync isOverflowOpen(): Promise<boolean> {\n\t\tconst overflowPopover = await this.getOverflowPopover();\n\t\treturn overflowPopover!.isOpen();\n\t}\n\n\tasync openOverflow(): Promise<void> {\n\t\tconst overflowPopover = await this.getOverflowPopover();\n\t\toverflowPopover!.showAt(this.overflowButtonDOM!);\n\t\tthis.reverseOverflow = overflowPopover!.actualPlacementType === \"Top\";\n\t}\n\n\tasync closeOverflow() {\n\t\tconst overflowPopover = await this.getOverflowPopover();\n\t\toverflowPopover!.close();\n\t}\n\n\ttoggleOverflow() {\n\t\tif (this.popoverOpen) {\n\t\t\tthis.closeOverflow();\n\t\t} else {\n\t\t\tthis.openOverflow();\n\t\t}\n\t}\n\n\tasync getOverflowPopover(): Promise<Popover | null> {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\treturn staticAreaItem!.querySelector<Popover>(\".ui5-overflow-popover\");\n\t}\n\n\t/**\n\t * Layout management\n\t */\n\n\tprocessOverflowLayout() {\n\t\tconst containerWidth = this.offsetWidth - this.padding;\n\t\tconst contentWidth = this.itemsWidth;\n\t\tconst overflowSpace = contentWidth - containerWidth + this.overflowButtonSize;\n\n\t\t// skip calculation if the width has not been changed or if the items width has not been changed\n\t\tif (this.width === containerWidth && this.contentWidth === contentWidth) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.distributeItems(overflowSpace);\n\t\tthis.width = containerWidth;\n\t\tthis.contentWidth = contentWidth;\n\t}\n\n\tstoreItemsWidth() {\n\t\tlet totalWidth = 0;\n\n\t\tthis.items.forEach((item: ToolbarItem) => {\n\t\t\tconst itemWidth = this.getItemWidth(item);\n\t\t\ttotalWidth += itemWidth;\n\t\t\tthis.ITEMS_WIDTH_MAP.set(item._id, itemWidth);\n\t\t});\n\n\t\tthis.itemsWidth = totalWidth;\n\t}\n\n\tdistributeItems(overflowSpace = 0) {\n\t\tconst movableItems = this.movableItems.reverse();\n\t\tlet index = 0;\n\t\tlet currentItem = movableItems[index];\n\n\t\tthis.itemsToOverflow = [];\n\n\t\t// distribute items that always overflow\n\t\tthis.distributeItemsThatAlwaysOverflow();\n\n\t\twhile (overflowSpace > 0 && currentItem) {\n\t\t\tthis.itemsToOverflow.unshift(currentItem);\n\t\t\toverflowSpace -= this.getCachedItemWidth(currentItem?._id) || 0;\n\t\t\tindex++;\n\t\t\tcurrentItem = movableItems[index];\n\t\t}\n\n\t\t// If the last bar item is a spacer, force it to the overflow even if there is enough space for it\n\t\tif (index < movableItems.length) {\n\t\t\tlet lastItem = movableItems[index];\n\t\t\twhile (index <= movableItems.length - 1 && lastItem.isSeparator) {\n\t\t\t\tthis.itemsToOverflow.unshift(lastItem);\n\t\t\t\tindex++;\n\t\t\t\tlastItem = movableItems[index];\n\t\t\t}\n\t\t}\n\n\t\tthis.setSeperatorsVisibilityInOverflow();\n\t}\n\n\tdistributeItemsThatAlwaysOverflow() {\n\t\tthis.alwaysOverflowItems.forEach((item: ToolbarItem) => {\n\t\t\tthis.itemsToOverflow.push(item);\n\t\t});\n\t}\n\n\tsetSeperatorsVisibilityInOverflow() {\n\t\tthis.itemsToOverflow.forEach((item, idx, items) => {\n\t\t\tif (item.isSeparator) {\n\t\t\t\t(item as ToolbarSeparator).visible = this.shouldShowSeparatorInOverflow(idx, items);\n\t\t\t}\n\t\t});\n\t}\n\n\tshouldShowSeparatorInOverflow(separatorIdx: number, overflowItems: Array<ToolbarItem>) {\n\t\tlet foundPrevNonSeparatorItem = false;\n\t\tlet foundNextNonSeperatorItem = false;\n\n\t\t// search for non-separator item before and after the seperator\n\t\toverflowItems.forEach((item, idx) => {\n\t\t\tif (idx < separatorIdx && !item.isSeparator) {\n\t\t\t\tfoundPrevNonSeparatorItem = true;\n\t\t\t}\n\t\t\tif (idx > separatorIdx && !item.isSeparator) {\n\t\t\t\tfoundNextNonSeperatorItem = true;\n\t\t\t}\n\t\t});\n\n\t\treturn foundPrevNonSeparatorItem && foundNextNonSeperatorItem;\n\t}\n\n\t/**\n\t * Event Handlers\n\t */\n\n\tonOverflowPopoverClosed() {\n\t\tthis.popoverOpen = false;\n\t\tif (this.overflowButtonDOM) {\n\t\t\tthis.overflowButtonDOM.accessibilityAttributes.expanded = \"false\";\n\t\t}\n\t}\n\n\tonOverflowPopoverOpened() {\n\t\tthis.popoverOpen = true;\n\t\tif (this.overflowButtonDOM) {\n\t\t\tthis.overflowButtonDOM.accessibilityAttributes.expanded = \"true\";\n\t\t}\n\t}\n\n\tonResize() {\n\t\tif (!this.itemsWidth) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.closeOverflow();\n\t\tthis.processOverflowLayout();\n\t}\n\n\tonInteract(e: CustomEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\tconst item = target.closest<ToolbarItem>(\".ui5-tb-item\") || target.closest<ToolbarItem>(\".ui5-tb-popover-item\");\n\t\tconst eventType: string = e.type;\n\n\t\tif (target === this.overflowButtonDOM) {\n\t\t\tthis.toggleOverflow();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!item) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst refItemId = target.getAttribute(\"data-ui5-external-action-item-id\");\n\n\t\tif (refItemId) {\n\t\t\tconst abstractItem = this.getItemByID(refItemId);\n\t\t\tconst prevented = !abstractItem?.fireEvent(eventType, e.detail, true);\n\t\t\tconst eventOptions = abstractItem?.subscribedEvents.get(eventType);\n\n\t\t\tif (prevented || abstractItem?.preventOverflowClosing || eventOptions?.preventClosing) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.closeOverflow();\n\t\t}\n\t}\n\n\t/**\n\t * Private members\n\t */\n\n\tasync attachListeners() {\n\t\tconst popover = await this.getOverflowPopover();\n\n\t\tthis.subscribedEvents.forEach((e: string) => {\n\t\t\tthis.itemsDOM?.addEventListener(e, this._onInteract);\n\t\t\tpopover?.addEventListener(e, this._onInteract);\n\t\t});\n\t}\n\n\tasync detachListeners() {\n\t\tconst popover = await this.getOverflowPopover();\n\n\t\tthis.subscribedEvents.forEach((e: string) => {\n\t\t\tthis.itemsDOM?.removeEventListener(e, this._onInteract);\n\t\t\tpopover?.removeEventListener(e, this._onInteract);\n\t\t});\n\t}\n\n\tonToolbarItemChange() {\n\t\t// some items were updated reset the cache and trigger a re-render\n\t\tthis.itemsToOverflow = [];\n\t\tthis.contentWidth = 0; // re-render\n\t}\n\n\tgetItemsInfo(items: Array<ToolbarItem>) {\n\t\treturn items.map((item: ToolbarItem) => {\n\t\t\tconst ElementClass = getRegisteredToolbarItem(item.constructor.name);\n\n\t\t\tif (!ElementClass) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst toolbarItem = {\n\t\t\t\ttoolbarTemplate: executeTemplate(ElementClass.toolbarTemplate, item),\n\t\t\t\ttoolbarPopoverTemplate: executeTemplate(ElementClass.toolbarPopoverTemplate, item),\n\t\t\t};\n\n\t\t\treturn toolbarItem;\n\t\t});\n\t}\n\n\tgetItemWidth(item: ToolbarItem): number {\n\t\t// Spacer width - always 0 for flexible spacers, so that they shrink, otherwise - measure the width normally\n\t\tif (item.ignoreSpace || item.isSeparator) {\n\t\t\treturn 0;\n\t\t}\n\t\tconst id: string = item._id;\n\t\t// Measure rendered width for spacers with width, and for normal items\n\t\tconst renderedItem = this.getRegisteredToolbarItemByID(id);\n\n\t\tlet itemWidth = 0;\n\n\t\tif (renderedItem) {\n\t\t\tconst ItemCSSStyleSet = getComputedStyle(renderedItem);\n\t\t\titemWidth = renderedItem.offsetWidth + parsePxValue(ItemCSSStyleSet, \"margin-inline-end\")\n\t\t\t\t+ parsePxValue(ItemCSSStyleSet, \"margin-inline-start\");\n\t\t} else {\n\t\t\titemWidth = this.getCachedItemWidth(id) || 0;\n\t\t}\n\n\t\treturn Math.ceil(itemWidth);\n\t}\n\n\tgetCachedItemWidth(id: string) {\n\t\treturn this.ITEMS_WIDTH_MAP.get(id);\n\t}\n\n\tgetItemByID(id: string) {\n\t\treturn this.items.find(item => item._id === id);\n\t}\n\n\tgetRegisteredToolbarItemByID(id: string): HTMLElement | null {\n\t\treturn this.itemsDOM!.querySelector(`[data-ui5-external-action-item-id=\"${id}\"]`);\n\t}\n}\n\nToolbar.define();\n\nexport default Toolbar;\n"]}
1
+ {"version":3,"file":"Toolbar.js","sourceRoot":"","sources":["../src/Toolbar.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element, { ChangeInfo } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport \"@ui5/webcomponents-icons/dist/overflow.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getScopedVarName } from \"@ui5/webcomponents-base/dist/CustomElementsScope.js\";\n\nimport {\n\tTOOLBAR_OVERFLOW_BUTTON_ARIA_LABEL,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nimport ToolbarTemplate from \"./generated/templates/ToolbarTemplate.lit.js\";\nimport ToolbarCss from \"./generated/themes/Toolbar.css.js\";\n\nimport ToolbarPopoverTemplate from \"./generated/templates/ToolbarPopoverTemplate.lit.js\";\nimport ToolbarPopoverCss from \"./generated/themes/ToolbarPopover.css.js\";\n\nimport ToolbarAlign from \"./types/ToolbarAlign.js\";\nimport ToolbarItemOverflowBehavior from \"./types/ToolbarItemOverflowBehavior.js\";\nimport HasPopup from \"./types/HasPopup.js\";\n\nimport ToolbarItem from \"./ToolbarItem.js\";\nimport type ToolbarSeparator from \"./ToolbarSeparator.js\";\n\nimport {\n\tgetRegisteredToolbarItem,\n\tgetRegisteredStyles,\n\tgetRegisteredStaticAreaStyles,\n\tgetRegisteredDependencies,\n} from \"./ToolbarRegistry.js\";\n\nimport Button from \"./Button.js\";\nimport Popover from \"./Popover.js\";\n\nfunction calculateCSSREMValue(styleSet: CSSStyleDeclaration, propertyName: string): number {\n\treturn Number(styleSet.getPropertyValue(propertyName).replace(\"rem\", \"\")) * parseInt(getComputedStyle(document.body).getPropertyValue(\"font-size\"));\n}\n\nfunction parsePxValue(styleSet: CSSStyleDeclaration, propertyName: string): number {\n\treturn Number(styleSet.getPropertyValue(propertyName).replace(\"px\", \"\"));\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>ui5-toolbar</code> component is used to create a horizontal layout with items.\n * The items can be overflowing in a popover, when the space is not enough to show all of them.\n *\n * <h3>Keyboard Handling</h3>\n * The <code>ui5-toolbar</code> provides advanced keyboard handling.\n * <br>\n * <ul>\n * <li>The control is not interactive, but can contain of interactive elements </li>\n * <li>[TAB] - iterates through elements</li>\n * </ul>\n * <br>\n *\n * <h3>ES6 Module Import</h3>\n * <code>import \"@ui5/webcomponents/dist/Toolbar\";</code>\n * @constructor\n * @extends UI5Element\n * @public\n * @since 1.17.0\n */\n@customElement({\n\ttag: \"ui5-toolbar\",\n\tlanguageAware: true,\n\trenderer: litRender,\n\ttemplate: ToolbarTemplate,\n\tstaticAreaTemplate: ToolbarPopoverTemplate,\n})\nclass Toolbar extends UI5Element {\n\tstatic i18nBundle: I18nBundle;\n\n\t/**\n\t * Indicated the direction in which the Toolbar items will be aligned.\n\t *\n\t * @public\n\t * @default \"End\"\n\t */\n\t@property({ type: ToolbarAlign, defaultValue: ToolbarAlign.End })\n\talignContent!: `${ToolbarAlign}`;\n\n\t/**\n\t * Calculated width of the whole toolbar.\n\t * @private\n\t * @default undefined\n\t */\n\t@property({ validator: Integer })\n\twidth?: number;\n\n\t/**\n\t * Calculated width of the toolbar content.\n\t * @private\n\t * @default undefined\n\t */\n\t@property({ validator: Integer })\n\tcontentWidth?: number;\n\n\t/**\n\t * Notifies the toolbar if it should show the items in a reverse way if Toolbar Popover needs to be placed on \"Top\" position.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\treverseOverflow!: boolean;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t *\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\taccessibleName!: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the input.\n\t *\n\t * @default \"\"\n\t * @public\n\t */\n\t@property({ defaultValue: \"\" })\n\taccessibleNameRef!: string;\n\n\t/**\n\t * Defines the items of the component.\n *\n * <b>Note:</b> Currently only <code>ui5-toolbar-button</code>, <code>ui5-toolbar-select</code>, <code>ui5-toolbar-separator</code> and <code>ui5-toolbar-spacer</code> are allowed here.\n\t *\n\t * @public\n\t */\n\t@slot({ \"default\": true, type: HTMLElement, invalidateOnChildChange: true })\n\titems!: Array<ToolbarItem>\n\n\t_onResize!: ResizeObserverCallback;\n\t_onInteract!: EventListener;\n\titemsToOverflow: Array<ToolbarItem> = [];\n\titemsWidth = 0;\n\tpopoverOpen = false;\n\titemsWidthMeasured = false;\n\n\tITEMS_WIDTH_MAP: Map<string, number> = new Map();\n\n\tstatic get styles() {\n\t\tconst styles = getRegisteredStyles();\n\t\treturn [\n\t\t\tToolbarCss,\n\t\t\t...styles,\n\t\t];\n\t}\n\n\tstatic get staticAreaStyles() {\n\t\tconst styles = getRegisteredStaticAreaStyles();\n\t\treturn [\n\t\t\tToolbarPopoverCss,\n\t\t\t...styles,\n\t\t];\n\t}\n\n\tstatic get dependencies() {\n\t\tconst deps = getRegisteredDependencies();\n\t\treturn [\n\t\t\tPopover,\n\t\t\tButton,\n\t\t\t...deps,\n\t\t];\n\t}\n\n\tstatic async onDefine() {\n\t\tToolbar.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._onResize = this.onResize.bind(this);\n\t\tthis._onInteract = (e: Event) => this.onInteract(e as CustomEvent);\n\t}\n\n\t/**\n\t * Read-only members\n\t */\n\n\tget overflowButtonSize(): number {\n\t\treturn this.overflowButtonDOM?.getBoundingClientRect().width || 0;\n\t}\n\n\tget padding(): number {\n\t\tconst toolbarComputedStyle = getComputedStyle(this.getDomRef()!);\n\t\treturn calculateCSSREMValue(toolbarComputedStyle, getScopedVarName(\"--_ui5-toolbar-padding-left\"))\n\t\t\t+ calculateCSSREMValue(toolbarComputedStyle, getScopedVarName(\"--_ui5-toolbar-padding-right\"));\n\t}\n\n\tget subscribedEvents() {\n\t\treturn this.items\n\t\t\t.map((item: ToolbarItem) => Array.from(item.subscribedEvents.keys()))\n\t\t\t.flat()\n\t\t\t// remove duplicates\n\t\t\t.filter((value, index, self) => self.indexOf(value) === index);\n\t}\n\n\tget alwaysOverflowItems() {\n\t\treturn this.items.filter((item: ToolbarItem) => item.overflowPriority === ToolbarItemOverflowBehavior.AlwaysOverflow);\n\t}\n\n\tget movableItems() {\n\t\treturn this.items.filter((item: ToolbarItem) => item.overflowPriority !== ToolbarItemOverflowBehavior.AlwaysOverflow && item.overflowPriority !== ToolbarItemOverflowBehavior.NeverOverflow);\n\t}\n\n\tget overflowItems() {\n\t\t// spacers are ignored\n\t\tconst overflowItems = this.getItemsInfo(this.itemsToOverflow.filter(item => !item.ignoreSpace));\n\t\treturn this.reverseOverflow ? overflowItems.reverse() : overflowItems;\n\t}\n\n\tget standardItems() {\n\t\treturn this.getItemsInfo(this.items.filter(item => this.itemsToOverflow.indexOf(item) === -1));\n\t}\n\n\tget hideOverflowButton() {\n\t\treturn this.itemsToOverflow.filter(item => !(item.ignoreSpace || item.isSeparator)).length === 0;\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\titems: {\n\t\t\t\t\"ui5-tb-items\": true,\n\t\t\t\t\"ui5-tb-items-full-width\": this.hasFlexibleSpacers,\n\t\t\t},\n\t\t\toverflow: {\n\t\t\t\t\"ui5-overflow-list--alignleft\": this.hasItemWithText,\n\t\t\t},\n\t\t\toverflowButton: {\n\t\t\t\t\"ui5-tb-item\": true,\n\t\t\t\t\"ui5-tb-overflow-btn\": true,\n\t\t\t\t\"ui5-tb-overflow-btn-hidden\": this.hideOverflowButton,\n\t\t\t},\n\t\t};\n\t}\n\n\tget interactiveItemsCount() {\n\t\treturn this.items.filter((item: ToolbarItem) => item.isInteractive).length;\n\t}\n\n\t/**\n\t * Accessibility\n\t */\n\n\tget hasAriaSemantics() {\n\t\treturn this.interactiveItemsCount > 1;\n\t}\n\n\tget accessibleRole() {\n\t\treturn this.hasAriaSemantics ? \"toolbar\" : undefined;\n\t}\n\n\tget ariaLabelText() {\n\t\treturn this.hasAriaSemantics ? getEffectiveAriaLabelText(this) : undefined;\n\t}\n\n\tget accInfo() {\n\t\treturn {\n\t\t\troot: {\n\t\t\t\trole: this.accessibleRole,\n\t\t\t\taccessibleName: this.ariaLabelText,\n\t\t\t},\n\t\t\toverflowButton: {\n\t\t\t\taccessibleName: Toolbar.i18nBundle.getText(TOOLBAR_OVERFLOW_BUTTON_ARIA_LABEL),\n\t\t\t\ttooltip: Toolbar.i18nBundle.getText(TOOLBAR_OVERFLOW_BUTTON_ARIA_LABEL),\n\t\t\t\taccessibilityAttributes: {\n\t\t\t\t\texpanded: this.overflowButtonDOM?.accessibilityAttributes.expanded,\n\t\t\t\t\thasPopup: HasPopup.Menu,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * Toolbar Overflow Popover\n\t */\n\n\tget overflowButtonDOM(): Button | null {\n\t\treturn this.shadowRoot!.querySelector(\".ui5-tb-overflow-btn\");\n\t}\n\n\tget itemsDOM() {\n\t\treturn this.shadowRoot!.querySelector(\".ui5-tb-items\");\n\t}\n\n\tget hasItemWithText(): boolean {\n\t\treturn this.itemsToOverflow.some((item: ToolbarItem) => item.containsText);\n\t}\n\n\tget hasFlexibleSpacers() {\n\t\treturn this.items.some((item: ToolbarItem) => item.hasFlexibleWidth);\n\t}\n\n\t/**\n\t * Lifecycle methods\n\t */\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._onResize);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._onResize);\n\t}\n\n\tonInvalidation(changeInfo: ChangeInfo) {\n\t\tif (changeInfo.reason === \"childchange\" && changeInfo.child === this.itemsToOverflow[0]) {\n\t\t\tthis.onToolbarItemChange();\n\t\t}\n\t}\n\n\tonBeforeRendering() {\n\t\tthis.detachListeners();\n\t\tthis.attachListeners();\n\t}\n\n\tasync onAfterRendering() {\n\t\tawait renderFinished();\n\n\t\tthis.storeItemsWidth();\n\t\tthis.processOverflowLayout();\n\t}\n\n\t/**\n\t * Returns if the overflow popup is open.\n\t *\n\t * @public\n\t */\n\tasync isOverflowOpen(): Promise<boolean> {\n\t\tconst overflowPopover = await this.getOverflowPopover();\n\t\treturn overflowPopover!.isOpen();\n\t}\n\n\tasync openOverflow(): Promise<void> {\n\t\tconst overflowPopover = await this.getOverflowPopover();\n\t\toverflowPopover!.showAt(this.overflowButtonDOM!);\n\t\tthis.reverseOverflow = overflowPopover!.actualPlacementType === \"Top\";\n\t}\n\n\tasync closeOverflow() {\n\t\tconst overflowPopover = await this.getOverflowPopover();\n\t\toverflowPopover!.close();\n\t}\n\n\ttoggleOverflow() {\n\t\tif (this.popoverOpen) {\n\t\t\tthis.closeOverflow();\n\t\t} else {\n\t\t\tthis.openOverflow();\n\t\t}\n\t}\n\n\tasync getOverflowPopover(): Promise<Popover | null> {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\treturn staticAreaItem!.querySelector<Popover>(\".ui5-overflow-popover\");\n\t}\n\n\t/**\n\t * Layout management\n\t */\n\n\tprocessOverflowLayout() {\n\t\tconst containerWidth = this.offsetWidth - this.padding;\n\t\tconst contentWidth = this.itemsWidth;\n\t\tconst overflowSpace = contentWidth - containerWidth + this.overflowButtonSize;\n\n\t\t// skip calculation if the width has not been changed or if the items width has not been changed\n\t\tif (this.width === containerWidth && this.contentWidth === contentWidth) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.distributeItems(overflowSpace);\n\t\tthis.width = containerWidth;\n\t\tthis.contentWidth = contentWidth;\n\t}\n\n\tstoreItemsWidth() {\n\t\tlet totalWidth = 0;\n\n\t\tthis.items.forEach((item: ToolbarItem) => {\n\t\t\tconst itemWidth = this.getItemWidth(item);\n\t\t\ttotalWidth += itemWidth;\n\t\t\tthis.ITEMS_WIDTH_MAP.set(item._id, itemWidth);\n\t\t});\n\n\t\tthis.itemsWidth = totalWidth;\n\t}\n\n\tdistributeItems(overflowSpace = 0) {\n\t\tconst movableItems = this.movableItems.reverse();\n\t\tlet index = 0;\n\t\tlet currentItem = movableItems[index];\n\n\t\tthis.itemsToOverflow = [];\n\n\t\t// distribute items that always overflow\n\t\tthis.distributeItemsThatAlwaysOverflow();\n\n\t\twhile (overflowSpace > 0 && currentItem) {\n\t\t\tthis.itemsToOverflow.unshift(currentItem);\n\t\t\toverflowSpace -= this.getCachedItemWidth(currentItem?._id) || 0;\n\t\t\tindex++;\n\t\t\tcurrentItem = movableItems[index];\n\t\t}\n\n\t\t// If the last bar item is a spacer, force it to the overflow even if there is enough space for it\n\t\tif (index < movableItems.length) {\n\t\t\tlet lastItem = movableItems[index];\n\t\t\twhile (index <= movableItems.length - 1 && lastItem.isSeparator) {\n\t\t\t\tthis.itemsToOverflow.unshift(lastItem);\n\t\t\t\tindex++;\n\t\t\t\tlastItem = movableItems[index];\n\t\t\t}\n\t\t}\n\n\t\tthis.setSeperatorsVisibilityInOverflow();\n\t}\n\n\tdistributeItemsThatAlwaysOverflow() {\n\t\tthis.alwaysOverflowItems.forEach((item: ToolbarItem) => {\n\t\t\tthis.itemsToOverflow.push(item);\n\t\t});\n\t}\n\n\tsetSeperatorsVisibilityInOverflow() {\n\t\tthis.itemsToOverflow.forEach((item, idx, items) => {\n\t\t\tif (item.isSeparator) {\n\t\t\t\t(item as ToolbarSeparator).visible = this.shouldShowSeparatorInOverflow(idx, items);\n\t\t\t}\n\t\t});\n\t}\n\n\tshouldShowSeparatorInOverflow(separatorIdx: number, overflowItems: Array<ToolbarItem>) {\n\t\tlet foundPrevNonSeparatorItem = false;\n\t\tlet foundNextNonSeperatorItem = false;\n\n\t\t// search for non-separator item before and after the seperator\n\t\toverflowItems.forEach((item, idx) => {\n\t\t\tif (idx < separatorIdx && !item.isSeparator) {\n\t\t\t\tfoundPrevNonSeparatorItem = true;\n\t\t\t}\n\t\t\tif (idx > separatorIdx && !item.isSeparator) {\n\t\t\t\tfoundNextNonSeperatorItem = true;\n\t\t\t}\n\t\t});\n\n\t\treturn foundPrevNonSeparatorItem && foundNextNonSeperatorItem;\n\t}\n\n\t/**\n\t * Event Handlers\n\t */\n\n\tonOverflowPopoverClosed() {\n\t\tthis.popoverOpen = false;\n\t\tif (this.overflowButtonDOM) {\n\t\t\tthis.overflowButtonDOM.accessibilityAttributes.expanded = \"false\";\n\t\t}\n\t}\n\n\tonOverflowPopoverOpened() {\n\t\tthis.popoverOpen = true;\n\t\tif (this.overflowButtonDOM) {\n\t\t\tthis.overflowButtonDOM.accessibilityAttributes.expanded = \"true\";\n\t\t}\n\t}\n\n\tonResize() {\n\t\tif (!this.itemsWidth) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.closeOverflow();\n\t\tthis.processOverflowLayout();\n\t}\n\n\tonInteract(e: CustomEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\tconst item = target.closest<ToolbarItem>(\".ui5-tb-item\") || target.closest<ToolbarItem>(\".ui5-tb-popover-item\");\n\n\t\tif (target === this.overflowButtonDOM) {\n\t\t\tthis.toggleOverflow();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!item) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst refItemId = target.getAttribute(\"data-ui5-external-action-item-id\");\n\n\t\tif (refItemId) {\n\t\t\tconst abstractItem = this.getItemByID(refItemId);\n\t\t\tconst eventType: string = e.type.replace(\"ui5-\", \"\");\n\t\t\tconst prevented = !abstractItem?.fireEvent(eventType, e.detail, true);\n\t\t\tconst eventOptions = abstractItem?.subscribedEvents.get(eventType);\n\n\t\t\tif (prevented || abstractItem?.preventOverflowClosing || eventOptions?.preventClosing) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.closeOverflow();\n\t\t}\n\t}\n\n\t/**\n\t * Private members\n\t */\n\n\tasync attachListeners() {\n\t\tconst popover = await this.getOverflowPopover();\n\n\t\tthis.subscribedEvents.forEach((e: string) => {\n\t\t\tthis.itemsDOM?.addEventListener(e, this._onInteract);\n\t\t\tpopover?.addEventListener(e, this._onInteract);\n\t\t});\n\t}\n\n\tasync detachListeners() {\n\t\tconst popover = await this.getOverflowPopover();\n\n\t\tthis.subscribedEvents.forEach((e: string) => {\n\t\t\tthis.itemsDOM?.removeEventListener(e, this._onInteract);\n\t\t\tpopover?.removeEventListener(e, this._onInteract);\n\t\t});\n\t}\n\n\tonToolbarItemChange() {\n\t\t// some items were updated reset the cache and trigger a re-render\n\t\tthis.itemsToOverflow = [];\n\t\tthis.contentWidth = 0; // re-render\n\t}\n\n\tgetItemsInfo(items: Array<ToolbarItem>) {\n\t\treturn items.map((item: ToolbarItem) => {\n\t\t\tconst ElementClass = getRegisteredToolbarItem(item.constructor.name);\n\n\t\t\tif (!ElementClass) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst toolbarItem = {\n\t\t\t\ttoolbarTemplate: executeTemplate(ElementClass.toolbarTemplate, item),\n\t\t\t\ttoolbarPopoverTemplate: executeTemplate(ElementClass.toolbarPopoverTemplate, item),\n\t\t\t};\n\n\t\t\treturn toolbarItem;\n\t\t});\n\t}\n\n\tgetItemWidth(item: ToolbarItem): number {\n\t\t// Spacer width - always 0 for flexible spacers, so that they shrink, otherwise - measure the width normally\n\t\tif (item.ignoreSpace || item.isSeparator) {\n\t\t\treturn 0;\n\t\t}\n\t\tconst id: string = item._id;\n\t\t// Measure rendered width for spacers with width, and for normal items\n\t\tconst renderedItem = this.getRegisteredToolbarItemByID(id);\n\n\t\tlet itemWidth = 0;\n\n\t\tif (renderedItem) {\n\t\t\tconst ItemCSSStyleSet = getComputedStyle(renderedItem);\n\t\t\titemWidth = renderedItem.offsetWidth + parsePxValue(ItemCSSStyleSet, \"margin-inline-end\")\n\t\t\t\t+ parsePxValue(ItemCSSStyleSet, \"margin-inline-start\");\n\t\t} else {\n\t\t\titemWidth = this.getCachedItemWidth(id) || 0;\n\t\t}\n\n\t\treturn Math.ceil(itemWidth);\n\t}\n\n\tgetCachedItemWidth(id: string) {\n\t\treturn this.ITEMS_WIDTH_MAP.get(id);\n\t}\n\n\tgetItemByID(id: string) {\n\t\treturn this.items.find(item => item._id === id);\n\t}\n\n\tgetRegisteredToolbarItemByID(id: string): HTMLElement | null {\n\t\treturn this.itemsDOM!.querySelector(`[data-ui5-external-action-item-id=\"${id}\"]`);\n\t}\n}\n\nToolbar.define();\n\nexport default Toolbar;\n"]}
@@ -44,9 +44,9 @@ let ToolbarSelect = class ToolbarSelect extends ToolbarItem {
44
44
  get subscribedEvents() {
45
45
  const map = new Map();
46
46
  map.set("click", { preventClosing: true });
47
- map.set("change", { preventClosing: false });
48
- map.set("open", { preventClosing: true });
49
- map.set("close", { preventClosing: true });
47
+ map.set("ui5-change", { preventClosing: false });
48
+ map.set("ui5-open", { preventClosing: true });
49
+ map.set("ui5-close", { preventClosing: true });
50
50
  return map;
51
51
  }
52
52
  constructor() {
@@ -70,7 +70,7 @@ let ToolbarSelect = class ToolbarSelect extends ToolbarItem {
70
70
  });
71
71
  }
72
72
  _onEventHandler(e) {
73
- if (e.type === "change") {
73
+ if (e.type === "ui5-change") {
74
74
  // update options
75
75
  const selectedOption = e.detail.selectedOption;
76
76
  const selectedOptionIndex = Number(selectedOption?.getAttribute("data-ui5-external-action-item-index"));
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarSelect.js","sourceRoot":"","sources":["../src/ToolbarSelect.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport CSSSize from \"@ui5/webcomponents-base/dist/types/CSSSize.js\";\n\nimport { registerToolbarItem } from \"./ToolbarRegistry.js\";\n\n// Templates\n\nimport ToolbarSelectTemplate from \"./generated/templates/ToolbarSelectTemplate.lit.js\";\nimport ToolbarPopoverSelectTemplate from \"./generated/templates/ToolbarPopoverSelectTemplate.lit.js\";\nimport ToolbarItem from \"./ToolbarItem.js\";\nimport Select from \"./Select.js\";\nimport Option from \"./Option.js\";\nimport type ToolbarSelectOption from \"./ToolbarSelectOption.js\";\nimport type { SelectChangeEventDetail } from \"./Select.js\";\n\ntype ToolbarSelectChangeEventDetail = SelectChangeEventDetail;\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n * The <code>ui5-toolbar-select</code> component is used to create a toolbar drop-down list.\n * The items inside the <code>ui5-toolbar-select</code> define the available options by using the <code>ui5-toolbar-select-option</code> component.\n *\n * <h3>ES6 Module Import</h3>\n * <code>import \"@ui5/webcomponents/dist/ToolbarSelect\";</code>\n * <br>\n * <code>import \"@ui5/webcomponents/dist/ToolbarSelectOption\";</code> (comes with <code>ui5-toolbar-select</code>)\n * @constructor\n * @abstract\n * @extends ToolbarItem\n * @public\n * @since 1.17.0\n */\n@customElement({\n\ttag: \"ui5-toolbar-select\",\n\tdependencies: [Select, Option],\n})\n\n/**\n * Fired when the selected option changes.\n *\n * @allowPreventDefault\n * @param {HTMLElement} selectedOption the selected option.\n * @public\n */\n@event<ToolbarSelectChangeEventDetail>(\"change\", {\n\tdetail: {\n\t\t/**\n\t\t* @public\n\t\t*/\n\t\tselectedOption: { type: HTMLElement },\n\t},\n})\n\n/**\n * Fired after the component's dropdown menu opens.\n *\n * @public\n */\n@event(\"open\")\n/**\n * Fired after the component's dropdown menu closes.\n *\n * @public\n */\n@event(\"close\")\n\nclass ToolbarSelect extends ToolbarItem {\n\t/**\n\t * Defines the width of the select.\n\t * <br><br>\n\t *\n\t * <b>Note:</b> all CSS sizes are supported - 'percentage', 'px', 'rem', 'auto', etc.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property({ validator: CSSSize })\n\twidth?: string;\n\n\t/**\n\t * Defines the component options.\n\t *\n\t * <br><br>\n\t * <b>Note:</b> Only one selected option is allowed.\n\t * If more than one option is defined as selected, the last one would be considered as the selected one.\n\t *\n\t * <br><br>\n\t * <b>Note:</b> Use the <code>ui5-toolbar-select-option</code> component to define the desired options.\n\t * @public\n\t */\n\t@slot({ \"default\": true, type: HTMLElement, invalidateOnChildChange: true })\n\toptions!: Array<ToolbarSelectOption>;\n\n\t/**\n\t * Defines the value state of the component.\n\t * <br><br>\n\t *\n\t * @default \"None\"\n\t * @public\n\t */\n\t@property({ type: ValueState, defaultValue: ValueState.None })\n\tvalueState!: `${ValueState}`;\n\n\t/**\n\t * Defines whether the component is in disabled state.\n\t * <br><br>\n\t * <b>Note:</b> A disabled component is noninteractive.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled!: boolean;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t *\n\t * @public\n\t * @default \"\"\n\t */\n\t@property()\n\taccessibleName!: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the select.\n\t *\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\taccessibleNameRef!: string;\n\n\t_onEvent: EventListener\n\n\tstatic get toolbarTemplate() {\n\t\treturn ToolbarSelectTemplate;\n\t}\n\n\tstatic get toolbarPopoverTemplate() {\n\t\treturn ToolbarPopoverSelectTemplate;\n\t}\n\n\tget subscribedEvents() {\n\t\tconst map = new Map();\n\n\t\tmap.set(\"click\", { preventClosing: true });\n\t\tmap.set(\"change\", { preventClosing: false });\n\t\tmap.set(\"open\", { preventClosing: true });\n\t\tmap.set(\"close\", { preventClosing: true });\n\n\t\treturn map;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._onEvent = this._onEventHandler.bind(this);\n\t}\n\n\tonEnterDOM(): void {\n\t\tthis.attachEventListeners();\n\t}\n\n\tonExitDOM(): void {\n\t\tthis.detachEventListeners();\n\t}\n\n\tattachEventListeners(): void {\n\t\t[...this.subscribedEvents.keys()].forEach(e => {\n\t\t\tthis.addEventListener(e, this._onEvent);\n\t\t});\n\t}\n\n\tdetachEventListeners(): void {\n\t\t[...this.subscribedEvents.keys()].forEach(e => {\n\t\t\tthis.removeEventListener(e, this._onEvent);\n\t\t});\n\t}\n\n\t_onEventHandler(e: Event): void {\n\t\tif (e.type === \"change\") {\n\t\t\t// update options\n\t\t\tconst selectedOption = (e as CustomEvent<ToolbarSelectChangeEventDetail>).detail.selectedOption;\n\t\t\tconst selectedOptionIndex = Number(selectedOption?.getAttribute(\"data-ui5-external-action-item-index\"));\n\t\t\tthis.options.forEach((option: ToolbarSelectOption, index: number) => {\n\t\t\t\tif (index === selectedOptionIndex) {\n\t\t\t\t\toption.setAttribute(\"selected\", \"\");\n\t\t\t\t} else {\n\t\t\t\t\toption.removeAttribute(\"selected\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\twidth: this.width,\n\t\t};\n\t}\n}\n\nregisterToolbarItem(ToolbarSelect);\n\nToolbarSelect.define();\n\nexport default ToolbarSelect;\n\nexport type {\n\tToolbarSelectChangeEventDetail,\n};\n"]}
1
+ {"version":3,"file":"ToolbarSelect.js","sourceRoot":"","sources":["../src/ToolbarSelect.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport CSSSize from \"@ui5/webcomponents-base/dist/types/CSSSize.js\";\n\nimport { registerToolbarItem } from \"./ToolbarRegistry.js\";\n\n// Templates\n\nimport ToolbarSelectTemplate from \"./generated/templates/ToolbarSelectTemplate.lit.js\";\nimport ToolbarPopoverSelectTemplate from \"./generated/templates/ToolbarPopoverSelectTemplate.lit.js\";\nimport ToolbarItem from \"./ToolbarItem.js\";\nimport Select from \"./Select.js\";\nimport Option from \"./Option.js\";\nimport type ToolbarSelectOption from \"./ToolbarSelectOption.js\";\nimport type { SelectChangeEventDetail } from \"./Select.js\";\n\ntype ToolbarSelectChangeEventDetail = SelectChangeEventDetail;\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n * The <code>ui5-toolbar-select</code> component is used to create a toolbar drop-down list.\n * The items inside the <code>ui5-toolbar-select</code> define the available options by using the <code>ui5-toolbar-select-option</code> component.\n *\n * <h3>ES6 Module Import</h3>\n * <code>import \"@ui5/webcomponents/dist/ToolbarSelect\";</code>\n * <br>\n * <code>import \"@ui5/webcomponents/dist/ToolbarSelectOption\";</code> (comes with <code>ui5-toolbar-select</code>)\n * @constructor\n * @abstract\n * @extends ToolbarItem\n * @public\n * @since 1.17.0\n */\n@customElement({\n\ttag: \"ui5-toolbar-select\",\n\tdependencies: [Select, Option],\n})\n\n/**\n * Fired when the selected option changes.\n *\n * @allowPreventDefault\n * @param {HTMLElement} selectedOption the selected option.\n * @public\n */\n@event<ToolbarSelectChangeEventDetail>(\"change\", {\n\tdetail: {\n\t\t/**\n\t\t* @public\n\t\t*/\n\t\tselectedOption: { type: HTMLElement },\n\t},\n})\n\n/**\n * Fired after the component's dropdown menu opens.\n *\n * @public\n */\n@event(\"open\")\n/**\n * Fired after the component's dropdown menu closes.\n *\n * @public\n */\n@event(\"close\")\n\nclass ToolbarSelect extends ToolbarItem {\n\t/**\n\t * Defines the width of the select.\n\t * <br><br>\n\t *\n\t * <b>Note:</b> all CSS sizes are supported - 'percentage', 'px', 'rem', 'auto', etc.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property({ validator: CSSSize })\n\twidth?: string;\n\n\t/**\n\t * Defines the component options.\n\t *\n\t * <br><br>\n\t * <b>Note:</b> Only one selected option is allowed.\n\t * If more than one option is defined as selected, the last one would be considered as the selected one.\n\t *\n\t * <br><br>\n\t * <b>Note:</b> Use the <code>ui5-toolbar-select-option</code> component to define the desired options.\n\t * @public\n\t */\n\t@slot({ \"default\": true, type: HTMLElement, invalidateOnChildChange: true })\n\toptions!: Array<ToolbarSelectOption>;\n\n\t/**\n\t * Defines the value state of the component.\n\t * <br><br>\n\t *\n\t * @default \"None\"\n\t * @public\n\t */\n\t@property({ type: ValueState, defaultValue: ValueState.None })\n\tvalueState!: `${ValueState}`;\n\n\t/**\n\t * Defines whether the component is in disabled state.\n\t * <br><br>\n\t * <b>Note:</b> A disabled component is noninteractive.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled!: boolean;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t *\n\t * @public\n\t * @default \"\"\n\t */\n\t@property()\n\taccessibleName!: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the select.\n\t *\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\taccessibleNameRef!: string;\n\n\t_onEvent: EventListener\n\n\tstatic get toolbarTemplate() {\n\t\treturn ToolbarSelectTemplate;\n\t}\n\n\tstatic get toolbarPopoverTemplate() {\n\t\treturn ToolbarPopoverSelectTemplate;\n\t}\n\n\tget subscribedEvents() {\n\t\tconst map = new Map();\n\n\t\tmap.set(\"click\", { preventClosing: true });\n\t\tmap.set(\"ui5-change\", { preventClosing: false });\n\t\tmap.set(\"ui5-open\", { preventClosing: true });\n\t\tmap.set(\"ui5-close\", { preventClosing: true });\n\n\t\treturn map;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._onEvent = this._onEventHandler.bind(this);\n\t}\n\n\tonEnterDOM(): void {\n\t\tthis.attachEventListeners();\n\t}\n\n\tonExitDOM(): void {\n\t\tthis.detachEventListeners();\n\t}\n\n\tattachEventListeners(): void {\n\t\t[...this.subscribedEvents.keys()].forEach(e => {\n\t\t\tthis.addEventListener(e, this._onEvent);\n\t\t});\n\t}\n\n\tdetachEventListeners(): void {\n\t\t[...this.subscribedEvents.keys()].forEach(e => {\n\t\t\tthis.removeEventListener(e, this._onEvent);\n\t\t});\n\t}\n\n\t_onEventHandler(e: Event): void {\n\t\tif (e.type === \"ui5-change\") {\n\t\t\t// update options\n\t\t\tconst selectedOption = (e as CustomEvent<ToolbarSelectChangeEventDetail>).detail.selectedOption;\n\t\t\tconst selectedOptionIndex = Number(selectedOption?.getAttribute(\"data-ui5-external-action-item-index\"));\n\t\t\tthis.options.forEach((option: ToolbarSelectOption, index: number) => {\n\t\t\t\tif (index === selectedOptionIndex) {\n\t\t\t\t\toption.setAttribute(\"selected\", \"\");\n\t\t\t\t} else {\n\t\t\t\t\toption.removeAttribute(\"selected\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\twidth: this.width,\n\t\t};\n\t}\n}\n\nregisterToolbarItem(ToolbarSelect);\n\nToolbarSelect.define();\n\nexport default ToolbarSelect;\n\nexport type {\n\tToolbarSelectChangeEventDetail,\n};\n"]}