@ui5/webcomponents 1.2.4 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (729) hide show
  1. package/CHANGELOG.md +72 -0
  2. package/README.md +6 -1
  3. package/dist/Breadcrumbs.js +52 -2
  4. package/dist/Button.js +13 -10
  5. package/dist/CardHeader.js +0 -6
  6. package/dist/CheckBox.js +12 -0
  7. package/dist/ColorPicker.js +14 -10
  8. package/dist/ComboBox.js +13 -9
  9. package/dist/DatePicker.js +12 -5
  10. package/dist/DateTimePicker.js +3 -0
  11. package/dist/Icon.js +4 -9
  12. package/dist/Input.js +36 -4
  13. package/dist/Interfaces.js +10 -0
  14. package/dist/Link.js +1 -1
  15. package/dist/List.js +54 -5
  16. package/dist/ListItem.js +28 -5
  17. package/dist/ListItemBase.js +3 -1
  18. package/dist/Menu.js +500 -0
  19. package/dist/MenuItem.js +162 -0
  20. package/dist/MultiComboBox.js +229 -25
  21. package/dist/MultiInput.js +20 -9
  22. package/dist/Option.js +10 -0
  23. package/dist/Popover.js +8 -5
  24. package/dist/Popup.js +4 -0
  25. package/dist/RadioButton.js +10 -1
  26. package/dist/ResponsivePopover.js +4 -0
  27. package/dist/Select.js +3 -0
  28. package/dist/SliderBase.js +7 -4
  29. package/dist/SplitButton.js +13 -6
  30. package/dist/Tab.js +78 -4
  31. package/dist/TabContainer.js +193 -41
  32. package/dist/Table.js +240 -44
  33. package/dist/TableGroupRow.js +4 -1
  34. package/dist/TableRow.js +33 -66
  35. package/dist/TimePickerBase.js +11 -2
  36. package/dist/Token.js +2 -1
  37. package/dist/Tokenizer.js +26 -16
  38. package/dist/WheelSlider.js +7 -0
  39. package/dist/api.json +231 -9
  40. package/dist/css/themes/Avatar.css +1 -1
  41. package/dist/css/themes/Badge.css +1 -1
  42. package/dist/css/themes/BreadcrumbsPopover.css +1 -1
  43. package/dist/css/themes/Button.css +1 -1
  44. package/dist/css/themes/CalendarHeader.css +1 -1
  45. package/dist/css/themes/Card.css +1 -1
  46. package/dist/css/themes/CardHeader.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/ColorPalettePopover.css +1 -1
  50. package/dist/css/themes/ColorPicker.css +1 -1
  51. package/dist/css/themes/ComboBox.css +1 -1
  52. package/dist/css/themes/DatePicker.css +1 -1
  53. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  54. package/dist/css/themes/Dialog.css +1 -1
  55. package/dist/css/themes/Icon.css +1 -1
  56. package/dist/css/themes/Input.css +1 -1
  57. package/dist/css/themes/InputIcon.css +1 -1
  58. package/dist/css/themes/Label.css +1 -1
  59. package/dist/css/themes/Link.css +1 -1
  60. package/dist/css/themes/ListItem.css +1 -1
  61. package/dist/css/themes/Menu.css +1 -0
  62. package/dist/css/themes/MessageStrip.css +1 -1
  63. package/dist/css/themes/MultiComboBox.css +1 -1
  64. package/dist/css/themes/MultiInput.css +1 -1
  65. package/dist/css/themes/Panel.css +1 -1
  66. package/dist/css/themes/PopupsCommon.css +1 -1
  67. package/dist/css/themes/RadioButton.css +1 -1
  68. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  69. package/dist/css/themes/SegmentedButton.css +1 -1
  70. package/dist/css/themes/Select.css +1 -1
  71. package/dist/css/themes/SplitButton.css +1 -1
  72. package/dist/css/themes/StepInput.css +1 -1
  73. package/dist/css/themes/Suggestions.css +1 -1
  74. package/dist/css/themes/TabContainer.css +1 -1
  75. package/dist/css/themes/TabInOverflow.css +1 -1
  76. package/dist/css/themes/TabInStrip.css +1 -1
  77. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  78. package/dist/css/themes/Table.css +1 -1
  79. package/dist/css/themes/TableCell.css +1 -1
  80. package/dist/css/themes/TableColumn.css +1 -1
  81. package/dist/css/themes/TableGroupRow.css +1 -1
  82. package/dist/css/themes/TableRow.css +1 -1
  83. package/dist/css/themes/TextArea.css +1 -1
  84. package/dist/css/themes/TimePicker.css +1 -1
  85. package/dist/css/themes/Title.css +1 -1
  86. package/dist/css/themes/Toast.css +1 -1
  87. package/dist/css/themes/ToggleButton.css +1 -1
  88. package/dist/css/themes/TreeListItem.css +1 -1
  89. package/dist/css/themes/ValueStateMessage.css +1 -1
  90. package/dist/css/themes/sap_belize/parameters-bundle.css +1 -1
  91. package/dist/css/themes/sap_belize_hcb/parameters-bundle.css +1 -1
  92. package/dist/css/themes/sap_belize_hcw/parameters-bundle.css +1 -1
  93. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  94. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  95. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  96. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  97. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  98. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  99. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  100. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  101. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  102. package/dist/features/InputElementsFormSupport.js +8 -5
  103. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  104. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  105. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  106. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  107. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  108. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  109. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  110. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  111. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  112. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  113. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  114. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  115. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  116. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  117. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  118. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  119. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  120. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  121. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  122. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  123. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  124. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  125. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  126. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  127. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  128. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  129. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  130. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  131. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  132. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  133. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  134. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  135. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  136. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  137. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  138. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  139. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  140. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  141. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  142. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  143. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  144. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  145. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  146. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  147. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  148. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  149. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  150. package/dist/generated/assets/themes/sap_belize/parameters-bundle.css.json +1 -1
  151. package/dist/generated/assets/themes/sap_belize_hcb/parameters-bundle.css.json +1 -1
  152. package/dist/generated/assets/themes/sap_belize_hcw/parameters-bundle.css.json +1 -1
  153. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  154. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  155. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  156. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  157. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  158. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  159. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  160. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  161. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  162. package/dist/generated/i18n/i18n-defaults.js +2 -2
  163. package/dist/generated/templates/AvatarGroupTemplate.lit.js +1 -1
  164. package/dist/generated/templates/AvatarTemplate.lit.js +1 -1
  165. package/dist/generated/templates/BadgeTemplate.lit.js +1 -1
  166. package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js +2 -2
  167. package/dist/generated/templates/BreadcrumbsTemplate.lit.js +3 -3
  168. package/dist/generated/templates/BusyIndicatorTemplate.lit.js +1 -1
  169. package/dist/generated/templates/ButtonTemplate.lit.js +2 -2
  170. package/dist/generated/templates/CalendarHeaderTemplate.lit.js +1 -1
  171. package/dist/generated/templates/CalendarTemplate.lit.js +1 -1
  172. package/dist/generated/templates/CardHeaderTemplate.lit.js +4 -4
  173. package/dist/generated/templates/CardTemplate.lit.js +1 -1
  174. package/dist/generated/templates/CarouselTemplate.lit.js +4 -4
  175. package/dist/generated/templates/CheckBoxTemplate.lit.js +3 -3
  176. package/dist/generated/templates/ColorPaletteDialogTemplate.lit.js +1 -1
  177. package/dist/generated/templates/ColorPalettePopoverTemplate.lit.js +1 -1
  178. package/dist/generated/templates/ColorPaletteTemplate.lit.js +3 -3
  179. package/dist/generated/templates/ColorPickerTemplate.lit.js +1 -1
  180. package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js +6 -6
  181. package/dist/generated/templates/ComboBoxTemplate.lit.js +3 -4
  182. package/dist/generated/templates/CustomListItemTemplate.lit.js +8 -8
  183. package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +3 -3
  184. package/dist/generated/templates/DatePickerTemplate.lit.js +2 -2
  185. package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js +4 -4
  186. package/dist/generated/templates/DialogTemplate.lit.js +1 -1
  187. package/dist/generated/templates/FileUploaderPopoverTemplate.lit.js +2 -2
  188. package/dist/generated/templates/FileUploaderTemplate.lit.js +1 -1
  189. package/dist/generated/templates/InputPopoverTemplate.lit.js +8 -8
  190. package/dist/generated/templates/InputTemplate.lit.js +6 -7
  191. package/dist/generated/templates/LabelTemplate.lit.js +1 -1
  192. package/dist/generated/templates/ListItemTemplate.lit.js +8 -8
  193. package/dist/generated/templates/ListTemplate.lit.js +2 -2
  194. package/dist/generated/templates/MenuTemplate.lit.js +15 -0
  195. package/dist/generated/templates/MessageStripTemplate.lit.js +2 -2
  196. package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +10 -10
  197. package/dist/generated/templates/MultiComboBoxTemplate.lit.js +4 -5
  198. package/dist/generated/templates/MultiInputTemplate.lit.js +7 -8
  199. package/dist/generated/templates/PanelTemplate.lit.js +3 -3
  200. package/dist/generated/templates/PopoverTemplate.lit.js +1 -1
  201. package/dist/generated/templates/ProgressIndicatorTemplate.lit.js +2 -2
  202. package/dist/generated/templates/RadioButtonTemplate.lit.js +2 -2
  203. package/dist/generated/templates/RangeSliderTemplate.lit.js +1 -1
  204. package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +4 -4
  205. package/dist/generated/templates/SegmentedButtonItemTemplate.lit.js +1 -1
  206. package/dist/generated/templates/SelectPopoverTemplate.lit.js +5 -5
  207. package/dist/generated/templates/SelectTemplate.lit.js +2 -2
  208. package/dist/generated/templates/SliderTemplate.lit.js +1 -1
  209. package/dist/generated/templates/SplitButtonTemplate.lit.js +1 -1
  210. package/dist/generated/templates/StandardListItemTemplate.lit.js +11 -11
  211. package/dist/generated/templates/StepInputTemplate.lit.js +3 -3
  212. package/dist/generated/templates/SuggestionListItemTemplate.lit.js +11 -11
  213. package/dist/generated/templates/SwitchTemplate.lit.js +3 -3
  214. package/dist/generated/templates/TabContainerPopoverTemplate.lit.js +2 -5
  215. package/dist/generated/templates/TabContainerTemplate.lit.js +10 -12
  216. package/dist/generated/templates/TabInOverflowTemplate.lit.js +3 -2
  217. package/dist/generated/templates/TabInStripTemplate.lit.js +5 -3
  218. package/dist/generated/templates/TabSeparatorInOverflowTemplate.lit.js +1 -1
  219. package/dist/generated/templates/TabTemplate.lit.js +2 -1
  220. package/dist/generated/templates/TableRowTemplate.lit.js +1 -1
  221. package/dist/generated/templates/TableTemplate.lit.js +3 -3
  222. package/dist/generated/templates/TextAreaPopoverTemplate.lit.js +1 -1
  223. package/dist/generated/templates/TimePickerPopoverTemplate.lit.js +1 -1
  224. package/dist/generated/templates/TimePickerTemplate.lit.js +2 -2
  225. package/dist/generated/templates/TimeSelectionTemplate.lit.js +4 -4
  226. package/dist/generated/templates/ToggleButtonTemplate.lit.js +2 -2
  227. package/dist/generated/templates/TokenTemplate.lit.js +1 -1
  228. package/dist/generated/templates/TokenizerPopoverTemplate.lit.js +5 -5
  229. package/dist/generated/templates/TreeListItemTemplate.lit.js +11 -11
  230. package/dist/generated/templates/TreeTemplate.lit.js +2 -2
  231. package/dist/generated/templates/WheelSliderTemplate.lit.js +1 -1
  232. package/dist/generated/themes/Avatar.css.js +1 -1
  233. package/dist/generated/themes/Badge.css.js +1 -1
  234. package/dist/generated/themes/BreadcrumbsPopover.css.js +1 -1
  235. package/dist/generated/themes/Button.css.js +1 -1
  236. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  237. package/dist/generated/themes/Card.css.js +1 -1
  238. package/dist/generated/themes/CardHeader.css.js +1 -1
  239. package/dist/generated/themes/CheckBox.css.js +1 -1
  240. package/dist/generated/themes/ColorPalette.css.js +1 -1
  241. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  242. package/dist/generated/themes/ColorPicker.css.js +1 -1
  243. package/dist/generated/themes/ComboBox.css.js +1 -1
  244. package/dist/generated/themes/DatePicker.css.js +1 -1
  245. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  246. package/dist/generated/themes/Dialog.css.js +1 -1
  247. package/dist/generated/themes/Icon.css.js +1 -1
  248. package/dist/generated/themes/Input.css.js +1 -1
  249. package/dist/generated/themes/InputIcon.css.js +1 -1
  250. package/dist/generated/themes/Label.css.js +1 -1
  251. package/dist/generated/themes/Link.css.js +1 -1
  252. package/dist/generated/themes/ListItem.css.js +1 -1
  253. package/dist/generated/themes/Menu.css.js +8 -0
  254. package/dist/generated/themes/MessageStrip.css.js +1 -1
  255. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  256. package/dist/generated/themes/MultiInput.css.js +1 -1
  257. package/dist/generated/themes/Panel.css.js +1 -1
  258. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  259. package/dist/generated/themes/RadioButton.css.js +1 -1
  260. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  261. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  262. package/dist/generated/themes/Select.css.js +1 -1
  263. package/dist/generated/themes/SplitButton.css.js +1 -1
  264. package/dist/generated/themes/StepInput.css.js +1 -1
  265. package/dist/generated/themes/Suggestions.css.js +1 -1
  266. package/dist/generated/themes/TabContainer.css.js +1 -1
  267. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  268. package/dist/generated/themes/TabInStrip.css.js +1 -1
  269. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  270. package/dist/generated/themes/Table.css.js +1 -1
  271. package/dist/generated/themes/TableCell.css.js +1 -1
  272. package/dist/generated/themes/TableColumn.css.js +1 -1
  273. package/dist/generated/themes/TableGroupRow.css.js +1 -1
  274. package/dist/generated/themes/TableRow.css.js +1 -1
  275. package/dist/generated/themes/TextArea.css.js +1 -1
  276. package/dist/generated/themes/TimePicker.css.js +1 -1
  277. package/dist/generated/themes/Title.css.js +1 -1
  278. package/dist/generated/themes/Toast.css.js +1 -1
  279. package/dist/generated/themes/ToggleButton.css.js +1 -1
  280. package/dist/generated/themes/TreeListItem.css.js +1 -1
  281. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  282. package/dist/generated/themes/sap_belize/parameters-bundle.css.js +1 -1
  283. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js +1 -1
  284. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js +1 -1
  285. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  286. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  287. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  288. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  289. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  290. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  291. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  292. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  293. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  294. package/dist/i18n/messagebundle.properties +8 -0
  295. package/dist/i18n/messagebundle_ar.properties +6 -0
  296. package/dist/i18n/messagebundle_bg.properties +6 -0
  297. package/dist/i18n/messagebundle_ca.properties +6 -0
  298. package/dist/i18n/messagebundle_cs.properties +6 -0
  299. package/dist/i18n/messagebundle_cy.properties +6 -0
  300. package/dist/i18n/messagebundle_da.properties +6 -0
  301. package/dist/i18n/messagebundle_de.properties +6 -0
  302. package/dist/i18n/messagebundle_el.properties +6 -0
  303. package/dist/i18n/messagebundle_en.properties +6 -0
  304. package/dist/i18n/messagebundle_en_GB.properties +6 -0
  305. package/dist/i18n/messagebundle_en_US_sappsd.properties +6 -0
  306. package/dist/i18n/messagebundle_en_US_saprigi.properties +7 -0
  307. package/dist/i18n/messagebundle_en_US_saptrc.properties +6 -0
  308. package/dist/i18n/messagebundle_es.properties +6 -0
  309. package/dist/i18n/messagebundle_es_MX.properties +6 -0
  310. package/dist/i18n/messagebundle_et.properties +6 -0
  311. package/dist/i18n/messagebundle_fi.properties +6 -0
  312. package/dist/i18n/messagebundle_fr.properties +6 -0
  313. package/dist/i18n/messagebundle_fr_CA.properties +6 -0
  314. package/dist/i18n/messagebundle_hi.properties +6 -0
  315. package/dist/i18n/messagebundle_hr.properties +6 -0
  316. package/dist/i18n/messagebundle_hu.properties +6 -0
  317. package/dist/i18n/messagebundle_id.properties +6 -0
  318. package/dist/i18n/messagebundle_it.properties +6 -0
  319. package/dist/i18n/messagebundle_iw.properties +6 -0
  320. package/dist/i18n/messagebundle_ja.properties +6 -0
  321. package/dist/i18n/messagebundle_kk.properties +6 -0
  322. package/dist/i18n/messagebundle_ko.properties +6 -0
  323. package/dist/i18n/messagebundle_lt.properties +6 -0
  324. package/dist/i18n/messagebundle_lv.properties +6 -0
  325. package/dist/i18n/messagebundle_ms.properties +6 -0
  326. package/dist/i18n/messagebundle_nl.properties +6 -0
  327. package/dist/i18n/messagebundle_no.properties +6 -0
  328. package/dist/i18n/messagebundle_pl.properties +6 -0
  329. package/dist/i18n/messagebundle_pt.properties +6 -0
  330. package/dist/i18n/messagebundle_pt_PT.properties +6 -0
  331. package/dist/i18n/messagebundle_ro.properties +6 -0
  332. package/dist/i18n/messagebundle_ru.properties +6 -0
  333. package/dist/i18n/messagebundle_sh.properties +6 -0
  334. package/dist/i18n/messagebundle_sk.properties +6 -0
  335. package/dist/i18n/messagebundle_sl.properties +6 -0
  336. package/dist/i18n/messagebundle_sv.properties +6 -0
  337. package/dist/i18n/messagebundle_th.properties +6 -0
  338. package/dist/i18n/messagebundle_tr.properties +6 -0
  339. package/dist/i18n/messagebundle_uk.properties +6 -0
  340. package/dist/i18n/messagebundle_vi.properties +6 -0
  341. package/dist/i18n/messagebundle_zh_CN.properties +6 -0
  342. package/dist/i18n/messagebundle_zh_TW.properties +6 -0
  343. package/dist/types/ListGrowingMode.js +36 -3
  344. package/dist/types/TableGrowingMode.js +35 -2
  345. package/package.json +7 -10
  346. package/src/Badge.hbs +0 -1
  347. package/src/Breadcrumbs.hbs +5 -3
  348. package/src/Breadcrumbs.js +52 -2
  349. package/src/BreadcrumbsPopover.hbs +1 -0
  350. package/src/Button.hbs +0 -1
  351. package/src/Button.js +13 -10
  352. package/src/CalendarHeader.hbs +1 -4
  353. package/src/Card.hbs +0 -1
  354. package/src/CardHeader.hbs +18 -15
  355. package/src/CardHeader.js +0 -6
  356. package/src/CheckBox.hbs +1 -1
  357. package/src/CheckBox.js +12 -0
  358. package/src/ColorPicker.hbs +2 -2
  359. package/src/ColorPicker.js +14 -10
  360. package/src/ComboBox.hbs +1 -5
  361. package/src/ComboBox.js +13 -9
  362. package/src/ComboBoxPopover.hbs +2 -1
  363. package/src/DatePicker.js +12 -5
  364. package/src/DateTimePicker.js +3 -0
  365. package/src/DateTimePickerPopover.hbs +1 -1
  366. package/src/Icon.js +4 -9
  367. package/src/Input.hbs +1 -5
  368. package/src/Input.js +36 -4
  369. package/src/InputPopover.hbs +2 -1
  370. package/src/Interfaces.js +10 -0
  371. package/src/Label.hbs +1 -2
  372. package/src/Link.js +1 -1
  373. package/src/List.hbs +1 -0
  374. package/src/List.js +54 -5
  375. package/src/ListItem.hbs +1 -1
  376. package/src/ListItem.js +28 -5
  377. package/src/ListItemBase.js +3 -1
  378. package/src/Menu.hbs +100 -0
  379. package/src/Menu.js +500 -0
  380. package/src/MenuItem.js +162 -0
  381. package/src/MultiComboBox.hbs +2 -6
  382. package/src/MultiComboBox.js +229 -25
  383. package/src/MultiInput.hbs +1 -1
  384. package/src/MultiInput.js +20 -9
  385. package/src/Option.js +10 -0
  386. package/src/Panel.hbs +0 -1
  387. package/src/Popover.hbs +1 -1
  388. package/src/Popover.js +8 -5
  389. package/src/Popup.js +4 -0
  390. package/src/RadioButton.hbs +1 -1
  391. package/src/RadioButton.js +10 -1
  392. package/src/ResponsivePopover.js +4 -0
  393. package/src/Select.hbs +1 -1
  394. package/src/Select.js +3 -0
  395. package/src/SelectPopover.hbs +1 -0
  396. package/src/SliderBase.js +7 -4
  397. package/src/SplitButton.js +13 -6
  398. package/src/StandardListItem.hbs +2 -2
  399. package/src/Switch.hbs +1 -1
  400. package/src/Tab.hbs +5 -1
  401. package/src/Tab.js +78 -4
  402. package/src/TabContainer.hbs +11 -13
  403. package/src/TabContainer.js +193 -41
  404. package/src/TabContainerPopover.hbs +4 -10
  405. package/src/TabInOverflow.hbs +15 -8
  406. package/src/TabInStrip.hbs +19 -2
  407. package/src/TabSeparatorInOverflow.hbs +1 -0
  408. package/src/Table.hbs +7 -2
  409. package/src/Table.js +240 -44
  410. package/src/TableGroupRow.js +4 -1
  411. package/src/TableRow.js +33 -66
  412. package/src/TimePickerBase.js +11 -2
  413. package/src/Token.js +2 -1
  414. package/src/Tokenizer.js +26 -16
  415. package/src/TokenizerPopover.hbs +16 -17
  416. package/src/WheelSlider.js +7 -0
  417. package/src/features/InputElementsFormSupport.js +8 -5
  418. package/src/i18n/messagebundle.properties +8 -0
  419. package/src/i18n/messagebundle_ar.properties +6 -0
  420. package/src/i18n/messagebundle_bg.properties +6 -0
  421. package/src/i18n/messagebundle_ca.properties +6 -0
  422. package/src/i18n/messagebundle_cs.properties +6 -0
  423. package/src/i18n/messagebundle_cy.properties +6 -0
  424. package/src/i18n/messagebundle_da.properties +6 -0
  425. package/src/i18n/messagebundle_de.properties +6 -0
  426. package/src/i18n/messagebundle_el.properties +6 -0
  427. package/src/i18n/messagebundle_en.properties +6 -0
  428. package/src/i18n/messagebundle_en_GB.properties +6 -0
  429. package/src/i18n/messagebundle_en_US_sappsd.properties +6 -0
  430. package/src/i18n/messagebundle_en_US_saprigi.properties +7 -0
  431. package/src/i18n/messagebundle_en_US_saptrc.properties +6 -0
  432. package/src/i18n/messagebundle_es.properties +6 -0
  433. package/src/i18n/messagebundle_es_MX.properties +6 -0
  434. package/src/i18n/messagebundle_et.properties +6 -0
  435. package/src/i18n/messagebundle_fi.properties +6 -0
  436. package/src/i18n/messagebundle_fr.properties +6 -0
  437. package/src/i18n/messagebundle_fr_CA.properties +6 -0
  438. package/src/i18n/messagebundle_hi.properties +6 -0
  439. package/src/i18n/messagebundle_hr.properties +6 -0
  440. package/src/i18n/messagebundle_hu.properties +6 -0
  441. package/src/i18n/messagebundle_id.properties +6 -0
  442. package/src/i18n/messagebundle_it.properties +6 -0
  443. package/src/i18n/messagebundle_iw.properties +6 -0
  444. package/src/i18n/messagebundle_ja.properties +6 -0
  445. package/src/i18n/messagebundle_kk.properties +6 -0
  446. package/src/i18n/messagebundle_ko.properties +6 -0
  447. package/src/i18n/messagebundle_lt.properties +6 -0
  448. package/src/i18n/messagebundle_lv.properties +6 -0
  449. package/src/i18n/messagebundle_ms.properties +6 -0
  450. package/src/i18n/messagebundle_nl.properties +6 -0
  451. package/src/i18n/messagebundle_no.properties +6 -0
  452. package/src/i18n/messagebundle_pl.properties +6 -0
  453. package/src/i18n/messagebundle_pt.properties +6 -0
  454. package/src/i18n/messagebundle_pt_PT.properties +6 -0
  455. package/src/i18n/messagebundle_ro.properties +6 -0
  456. package/src/i18n/messagebundle_ru.properties +6 -0
  457. package/src/i18n/messagebundle_sh.properties +6 -0
  458. package/src/i18n/messagebundle_sk.properties +6 -0
  459. package/src/i18n/messagebundle_sl.properties +6 -0
  460. package/src/i18n/messagebundle_sv.properties +6 -0
  461. package/src/i18n/messagebundle_th.properties +6 -0
  462. package/src/i18n/messagebundle_tr.properties +6 -0
  463. package/src/i18n/messagebundle_uk.properties +6 -0
  464. package/src/i18n/messagebundle_vi.properties +6 -0
  465. package/src/i18n/messagebundle_zh_CN.properties +6 -0
  466. package/src/i18n/messagebundle_zh_TW.properties +6 -0
  467. package/src/themes/Avatar.css +37 -52
  468. package/src/themes/Badge.css +1 -7
  469. package/src/themes/BreadcrumbsPopover.css +4 -0
  470. package/src/themes/Button.css +62 -87
  471. package/src/themes/CalendarHeader.css +2 -7
  472. package/src/themes/Card.css +7 -4
  473. package/src/themes/CardHeader.css +24 -26
  474. package/src/themes/CheckBox.css +8 -24
  475. package/src/themes/ColorPalette.css +2 -0
  476. package/src/themes/ColorPalettePopover.css +4 -0
  477. package/src/themes/ColorPicker.css +16 -0
  478. package/src/themes/ComboBox.css +1 -0
  479. package/src/themes/DateTimePickerPopover.css +5 -1
  480. package/src/themes/Dialog.css +20 -6
  481. package/src/themes/Icon.css +15 -3
  482. package/src/themes/Input.css +174 -131
  483. package/src/themes/InputIcon.css +12 -3
  484. package/src/themes/Label.css +1 -7
  485. package/src/themes/Link.css +32 -15
  486. package/src/themes/ListItem.css +8 -38
  487. package/src/themes/Menu.css +101 -0
  488. package/src/themes/MessageStrip.css +17 -47
  489. package/src/themes/MultiComboBox.css +1 -0
  490. package/src/themes/Panel.css +21 -14
  491. package/src/themes/PopupsCommon.css +12 -11
  492. package/src/themes/RadioButton.css +74 -8
  493. package/src/themes/ResponsivePopoverCommon.css +50 -50
  494. package/src/themes/SegmentedButton.css +36 -10
  495. package/src/themes/Select.css +1 -5
  496. package/src/themes/SplitButton.css +143 -32
  497. package/src/themes/StepInput.css +10 -8
  498. package/src/themes/Suggestions.css +4 -0
  499. package/src/themes/TabContainer.css +35 -2
  500. package/src/themes/TabInOverflow.css +15 -9
  501. package/src/themes/TabInStrip.css +67 -28
  502. package/src/themes/TabSeparatorInOverflow.css +2 -1
  503. package/src/themes/Table.css +7 -2
  504. package/src/themes/TableCell.css +2 -6
  505. package/src/themes/TableColumn.css +1 -3
  506. package/src/themes/TableGroupRow.css +6 -4
  507. package/src/themes/TableRow.css +28 -20
  508. package/src/themes/TextArea.css +93 -36
  509. package/src/themes/Title.css +7 -7
  510. package/src/themes/Toast.css +1 -1
  511. package/src/themes/ToggleButton.css +90 -50
  512. package/src/themes/TreeListItem.css +1 -7
  513. package/src/themes/ValueStateMessage.css +8 -10
  514. package/src/themes/base/Avatar-parameters.css +19 -0
  515. package/src/themes/base/Button-parameters.css +5 -0
  516. package/src/themes/base/Card-parameters.css +5 -3
  517. package/src/themes/base/CheckBox-parameters.css +5 -2
  518. package/src/themes/base/Dialog-parameters.css +5 -4
  519. package/src/themes/base/Input-parameters.css +44 -44
  520. package/src/themes/base/InputIcon-parameters.css +10 -2
  521. package/src/themes/base/Link-parameters.css +7 -1
  522. package/src/themes/base/MessageStrip-parameters.css +4 -7
  523. package/src/themes/base/Panel-parameters.css +4 -4
  524. package/src/themes/base/PopupsCommon-parameters.css +1 -3
  525. package/src/themes/base/RadioButton-parameters.css +18 -2
  526. package/src/themes/base/SegmentedButtton-parameters.css +3 -2
  527. package/src/themes/base/SplitButton-parameters.css +17 -0
  528. package/src/themes/base/StepInput-parameters.css +1 -0
  529. package/src/themes/base/TabContainer-parameters.css +15 -0
  530. package/src/themes/base/Table-parameters.css +2 -0
  531. package/src/themes/base/TableGroupRow-parameters.css +4 -0
  532. package/src/themes/base/TextArea-parameters.css +8 -6
  533. package/src/themes/base/ValueStateMessage-parameters.css +6 -0
  534. package/src/themes/base/rtl-parameters.css +16 -0
  535. package/src/themes/base/sizes-parameters.css +47 -6
  536. package/src/themes/sap_belize/Card-parameters.css +5 -0
  537. package/src/themes/sap_belize/Input-parameters.css +16 -1
  538. package/src/themes/sap_belize/InputIcon-parameters.css +1 -1
  539. package/src/themes/sap_belize/Panel-parameters.css +12 -0
  540. package/src/themes/sap_belize/PopupsCommon-parameters.css +5 -0
  541. package/src/themes/sap_belize/SplitButton-parameters.css +6 -0
  542. package/src/themes/sap_belize/TableRow-parameters.css +5 -0
  543. package/src/themes/sap_belize/parameters-bundle.css +8 -5
  544. package/src/themes/sap_belize/sizes-parameters.css +15 -0
  545. package/src/themes/sap_belize_hcb/Button-parameters.css +2 -2
  546. package/src/themes/sap_belize_hcb/Card-parameters.css +2 -1
  547. package/src/themes/sap_belize_hcb/Input-parameters.css +19 -0
  548. package/src/themes/sap_belize_hcb/InputIcon-parameters.css +1 -1
  549. package/src/themes/sap_belize_hcb/Link-parameters.css +2 -1
  550. package/src/themes/sap_belize_hcb/MessageStrip-parameters.css +0 -1
  551. package/src/themes/sap_belize_hcb/Panel-parameters.css +8 -0
  552. package/src/themes/sap_belize_hcb/PopupsCommon-parameters.css +5 -0
  553. package/src/themes/sap_belize_hcb/RadioButton-parameters.css +6 -2
  554. package/src/themes/sap_belize_hcb/SplitButton-parameters.css +10 -0
  555. package/src/themes/sap_belize_hcb/TableRow-parameters.css +1 -0
  556. package/src/themes/sap_belize_hcb/TextArea-parameters.css +3 -0
  557. package/src/themes/sap_belize_hcb/ValueStateMessage-parameters.css +2 -0
  558. package/src/themes/sap_belize_hcb/parameters-bundle.css +6 -3
  559. package/src/themes/sap_belize_hcb/sizes-parameters.css +15 -0
  560. package/src/themes/sap_belize_hcw/Button-parameters.css +2 -2
  561. package/src/themes/sap_belize_hcw/Card-parameters.css +2 -1
  562. package/src/themes/sap_belize_hcw/Input-parameters.css +19 -0
  563. package/src/themes/sap_belize_hcw/InputIcon-parameters.css +1 -1
  564. package/src/themes/sap_belize_hcw/Link-parameters.css +2 -1
  565. package/src/themes/sap_belize_hcw/MessageStrip-parameters.css +0 -1
  566. package/src/themes/sap_belize_hcw/Panel-parameters.css +8 -0
  567. package/src/themes/sap_belize_hcw/PopupsCommon-parameters.css +5 -0
  568. package/src/themes/sap_belize_hcw/RadioButton-parameters.css +5 -1
  569. package/src/themes/sap_belize_hcw/SplitButton-parameters.css +10 -0
  570. package/src/themes/sap_belize_hcw/TableRow-parameters.css +1 -0
  571. package/src/themes/sap_belize_hcw/TextArea-parameters.css +3 -0
  572. package/src/themes/sap_belize_hcw/ValueStateMessage-parameters.css +2 -0
  573. package/src/themes/sap_belize_hcw/parameters-bundle.css +7 -4
  574. package/src/themes/sap_belize_hcw/sizes-parameters.css +15 -0
  575. package/src/themes/sap_fiori_3/Button-parameters.css +1 -0
  576. package/src/themes/sap_fiori_3/Input-parameters.css +0 -2
  577. package/src/themes/sap_fiori_3/Link-parameters.css +0 -1
  578. package/src/themes/sap_fiori_3/Panel-parameters.css +0 -1
  579. package/src/themes/sap_fiori_3/TabContainer-parameters.css +1 -0
  580. package/src/themes/sap_fiori_3/parameters-bundle.css +4 -1
  581. package/src/themes/sap_fiori_3_dark/Button-parameters.css +1 -0
  582. package/src/themes/sap_fiori_3_dark/Input-parameters.css +0 -2
  583. package/src/themes/sap_fiori_3_dark/Link-parameters.css +0 -1
  584. package/src/themes/sap_fiori_3_dark/Panel-parameters.css +0 -1
  585. package/src/themes/sap_fiori_3_dark/TabContainer-parameters.css +1 -0
  586. package/src/themes/sap_fiori_3_dark/parameters-bundle.css +4 -1
  587. package/src/themes/sap_fiori_3_hcb/Button-parameters.css +3 -2
  588. package/src/themes/sap_fiori_3_hcb/Input-parameters.css +14 -7
  589. package/src/themes/sap_fiori_3_hcb/Link-parameters.css +4 -1
  590. package/src/themes/sap_fiori_3_hcb/MessageStrip-parameters.css +0 -1
  591. package/src/themes/sap_fiori_3_hcb/RadioButton-parameters.css +5 -1
  592. package/src/themes/sap_fiori_3_hcb/SplitButton-parameters.css +12 -0
  593. package/src/themes/sap_fiori_3_hcb/TextArea-parameters.css +3 -0
  594. package/src/themes/sap_fiori_3_hcb/ValueStateMessage-parameters.css +2 -0
  595. package/src/themes/sap_fiori_3_hcb/parameters-bundle.css +7 -4
  596. package/src/themes/sap_fiori_3_hcb/sizes-parameters.css +8 -0
  597. package/src/themes/sap_fiori_3_hcw/Button-parameters.css +3 -2
  598. package/src/themes/sap_fiori_3_hcw/Input-parameters.css +14 -7
  599. package/src/themes/sap_fiori_3_hcw/Link-parameters.css +4 -1
  600. package/src/themes/sap_fiori_3_hcw/MessageStrip-parameters.css +0 -1
  601. package/src/themes/sap_fiori_3_hcw/RadioButton-parameters.css +5 -1
  602. package/src/themes/sap_fiori_3_hcw/SplitButton-parameters.css +12 -0
  603. package/src/themes/sap_fiori_3_hcw/TextArea-parameters.css +3 -0
  604. package/src/themes/sap_fiori_3_hcw/ValueStateMessage-parameters.css +2 -0
  605. package/src/themes/sap_fiori_3_hcw/parameters-bundle.css +7 -4
  606. package/src/themes/sap_fiori_3_hcw/sizes-parameters.css +8 -0
  607. package/src/themes/sap_horizon/Avatar-parameters.css +47 -27
  608. package/src/themes/sap_horizon/BusyIndicator-parameters.css +1 -1
  609. package/src/themes/sap_horizon/Button-parameters.css +6 -7
  610. package/src/themes/sap_horizon/Card-parameters.css +8 -3
  611. package/src/themes/sap_horizon/CheckBox-parameters.css +38 -23
  612. package/src/themes/sap_horizon/Dialog-parameters.css +6 -6
  613. package/src/themes/sap_horizon/Icon-parameters.css +3 -0
  614. package/src/themes/sap_horizon/Input-parameters.css +28 -29
  615. package/src/themes/sap_horizon/InputIcon-parameters.css +11 -4
  616. package/src/themes/sap_horizon/Link-parameters.css +6 -2
  617. package/src/themes/sap_horizon/MessageStrip-parameters.css +1 -5
  618. package/src/themes/sap_horizon/Panel-parameters.css +2 -3
  619. package/src/themes/sap_horizon/RadioButton-parameters.css +10 -4
  620. package/src/themes/sap_horizon/SegmentedButtton-parameters.css +1 -1
  621. package/src/themes/sap_horizon/SplitButton-parameters.css +17 -0
  622. package/src/themes/sap_horizon/TabContainer-parameters.css +13 -4
  623. package/src/themes/sap_horizon/Table-parameters.css +2 -1
  624. package/src/themes/sap_horizon/TableGroupRow-parameters.css +6 -0
  625. package/src/themes/sap_horizon/TextArea-parameters.css +1 -6
  626. package/src/themes/sap_horizon/ToggleButton-parameters.css +1 -11
  627. package/src/themes/sap_horizon/ValueStateMessage-parameters.css +4 -1
  628. package/src/themes/sap_horizon/parameters-bundle.css +5 -3
  629. package/src/themes/sap_horizon/sizes-parameters.css +10 -0
  630. package/src/themes/sap_horizon_dark/Avatar-parameters.css +47 -27
  631. package/src/themes/sap_horizon_dark/BusyIndicator-parameters.css +1 -1
  632. package/src/themes/sap_horizon_dark/Button-parameters.css +6 -7
  633. package/src/themes/sap_horizon_dark/Card-parameters.css +8 -3
  634. package/src/themes/sap_horizon_dark/CheckBox-parameters.css +38 -23
  635. package/src/themes/sap_horizon_dark/Dialog-parameters.css +6 -6
  636. package/src/themes/sap_horizon_dark/Icon-parameters.css +3 -0
  637. package/src/themes/sap_horizon_dark/Input-parameters.css +27 -28
  638. package/src/themes/sap_horizon_dark/InputIcon-parameters.css +11 -4
  639. package/src/themes/sap_horizon_dark/Link-parameters.css +6 -2
  640. package/src/themes/sap_horizon_dark/MessageStrip-parameters.css +1 -5
  641. package/src/themes/sap_horizon_dark/Panel-parameters.css +2 -3
  642. package/src/themes/sap_horizon_dark/RadioButton-parameters.css +10 -4
  643. package/src/themes/sap_horizon_dark/SegmentedButtton-parameters.css +1 -1
  644. package/src/themes/sap_horizon_dark/SplitButton-parameters.css +17 -0
  645. package/src/themes/sap_horizon_dark/Table-parameters.css +2 -1
  646. package/src/themes/sap_horizon_dark/TableGroupRow-parameters.css +6 -0
  647. package/src/themes/sap_horizon_dark/TextArea-parameters.css +1 -6
  648. package/src/themes/sap_horizon_dark/ToggleButton-parameters.css +1 -11
  649. package/src/themes/sap_horizon_dark/ValueStateMessage-parameters.css +4 -1
  650. package/src/themes/sap_horizon_dark/parameters-bundle.css +5 -3
  651. package/src/themes/sap_horizon_dark/sizes-parameters.css +10 -0
  652. package/src/themes/sap_horizon_exp/Input-parameters.css +34 -37
  653. package/src/themes/sap_horizon_exp/InputIcon-parameters.css +4 -0
  654. package/src/themes/sap_horizon_exp/Link-parameters.css +1 -1
  655. package/src/themes/sap_horizon_exp/Panel-parameters.css +0 -1
  656. package/src/themes/sap_horizon_exp/Popover-parameters.css +0 -1
  657. package/src/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  658. package/src/themes/sap_horizon_hcb/Avatar-parameters.css +44 -15
  659. package/src/themes/sap_horizon_hcb/BusyIndicator-parameters.css +5 -0
  660. package/src/themes/sap_horizon_hcb/Button-parameters.css +6 -6
  661. package/src/themes/sap_horizon_hcb/Card-parameters.css +6 -1
  662. package/src/themes/sap_horizon_hcb/CheckBox-parameters.css +46 -10
  663. package/src/themes/sap_horizon_hcb/Dialog-parameters.css +2 -3
  664. package/src/themes/sap_horizon_hcb/Input-parameters.css +17 -7
  665. package/src/themes/sap_horizon_hcb/InputIcon-parameters.css +7 -1
  666. package/src/themes/sap_horizon_hcb/Link-parameters.css +4 -1
  667. package/src/themes/sap_horizon_hcb/MessageStrip-parameters.css +1 -1
  668. package/src/themes/sap_horizon_hcb/Panel-parameters.css +3 -0
  669. package/src/themes/sap_horizon_hcb/RadioButton-parameters.css +9 -3
  670. package/src/themes/sap_horizon_hcb/SegmentedButtton-parameters.css +9 -0
  671. package/src/themes/sap_horizon_hcb/SplitButton-parameters.css +12 -0
  672. package/src/themes/sap_horizon_hcb/Table-parameters.css +4 -0
  673. package/src/themes/sap_horizon_hcb/TableGroupRow-parameters.css +6 -0
  674. package/src/themes/sap_horizon_hcb/TextArea-parameters.css +7 -0
  675. package/src/themes/sap_horizon_hcb/ToggleButton-parameters.css +1 -6
  676. package/src/themes/sap_horizon_hcb/ValueStateMessage-parameters.css +8 -0
  677. package/src/themes/sap_horizon_hcb/parameters-bundle.css +6 -3
  678. package/src/themes/sap_horizon_hcb/sizes-parameters.css +8 -0
  679. package/src/themes/sap_horizon_hcw/Avatar-parameters.css +44 -15
  680. package/src/themes/sap_horizon_hcw/BusyIndicator-parameters.css +5 -0
  681. package/src/themes/sap_horizon_hcw/Button-parameters.css +7 -7
  682. package/src/themes/sap_horizon_hcw/Card-parameters.css +6 -1
  683. package/src/themes/sap_horizon_hcw/CheckBox-parameters.css +46 -10
  684. package/src/themes/sap_horizon_hcw/Dialog-parameters.css +2 -3
  685. package/src/themes/sap_horizon_hcw/Input-parameters.css +17 -7
  686. package/src/themes/sap_horizon_hcw/InputIcon-parameters.css +7 -1
  687. package/src/themes/sap_horizon_hcw/Link-parameters.css +4 -1
  688. package/src/themes/sap_horizon_hcw/MessageStrip-parameters.css +1 -1
  689. package/src/themes/sap_horizon_hcw/Panel-parameters.css +4 -0
  690. package/src/themes/sap_horizon_hcw/RadioButton-parameters.css +11 -1
  691. package/src/themes/sap_horizon_hcw/SegmentedButtton-parameters.css +9 -0
  692. package/src/themes/sap_horizon_hcw/SplitButton-parameters.css +12 -0
  693. package/src/themes/sap_horizon_hcw/Table-parameters.css +4 -0
  694. package/src/themes/sap_horizon_hcw/TableGroupRow-parameters.css +6 -0
  695. package/src/themes/sap_horizon_hcw/TextArea-parameters.css +7 -0
  696. package/src/themes/sap_horizon_hcw/ToggleButton-parameters.css +1 -6
  697. package/src/themes/sap_horizon_hcw/ValueStateMessage-parameters.css +8 -0
  698. package/src/themes/sap_horizon_hcw/parameters-bundle.css +6 -3
  699. package/src/themes/sap_horizon_hcw/sizes-parameters.css +8 -0
  700. package/src/types/ListGrowingMode.js +36 -3
  701. package/src/types/TableGrowingMode.js +35 -2
  702. package/dist/webcomponentsjs/CHANGELOG.md +0 -61
  703. package/dist/webcomponentsjs/LICENSE.md +0 -19
  704. package/dist/webcomponentsjs/README.md +0 -246
  705. package/dist/webcomponentsjs/bundles/webcomponents-ce.js +0 -63
  706. package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +0 -1
  707. package/dist/webcomponentsjs/bundles/webcomponents-pf_dom.js +0 -60
  708. package/dist/webcomponentsjs/bundles/webcomponents-pf_dom.js.map +0 -1
  709. package/dist/webcomponentsjs/bundles/webcomponents-pf_js.js +0 -95
  710. package/dist/webcomponentsjs/bundles/webcomponents-pf_js.js.map +0 -1
  711. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +0 -360
  712. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +0 -1
  713. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +0 -228
  714. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +0 -1
  715. package/dist/webcomponentsjs/bundles/webcomponents-sd.js +0 -185
  716. package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +0 -1
  717. package/dist/webcomponentsjs/custom-elements-es5-adapter.js +0 -15
  718. package/dist/webcomponentsjs/webcomponents-bundle.js +0 -370
  719. package/dist/webcomponentsjs/webcomponents-bundle.js.map +0 -1
  720. package/dist/webcomponentsjs/webcomponents-loader.js +0 -206
  721. package/src/themes/base/Title-parameters.css +0 -8
  722. package/src/themes/sap_belize_hcb/Dialog-parameters.css +0 -7
  723. package/src/themes/sap_belize_hcw/Dialog-parameters.css +0 -7
  724. package/src/themes/sap_fiori_3_hcb/Dialog-parameters.css +0 -7
  725. package/src/themes/sap_fiori_3_hcb/InputIcon-parameters.css +0 -5
  726. package/src/themes/sap_fiori_3_hcw/Dialog-parameters.css +0 -7
  727. package/src/themes/sap_fiori_3_hcw/InputIcon-parameters.css +0 -5
  728. package/src/themes/sap_horizon/PopupsCommon-parameters.css +0 -9
  729. package/src/themes/sap_horizon_dark/PopupsCommon-parameters.css +0 -10
package/dist/List.js CHANGED
@@ -5,7 +5,12 @@ import ItemNavigation from "@ui5/webcomponents-base/dist/delegate/ItemNavigation
5
5
  import { isIE } from "@ui5/webcomponents-base/dist/Device.js";
6
6
  import { renderFinished } from "@ui5/webcomponents-base/dist/Render.js";
7
7
  import { getLastTabbableElement } from "@ui5/webcomponents-base/dist/util/TabbableElements.js";
8
- import { isTabNext, isSpace, isEnter } from "@ui5/webcomponents-base/dist/Keys.js";
8
+ import {
9
+ isTabNext,
10
+ isSpace,
11
+ isEnter,
12
+ isTabPrevious,
13
+ } from "@ui5/webcomponents-base/dist/Keys.js";
9
14
  import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
10
15
  import NavigationMode from "@ui5/webcomponents-base/dist/types/NavigationMode.js";
11
16
  import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AriaLabelHelper.js";
@@ -759,9 +764,17 @@ class List extends UI5Element {
759
764
  }
760
765
 
761
766
  if (isTabNext(event)) {
762
- this.setPreviouslyFocusedItem(event.target);
763
767
  this.focusAfterElement();
764
768
  }
769
+
770
+ if (isTabPrevious(event)) {
771
+ if (this.getPreviouslyFocusedItem()) {
772
+ this.focusPreviouslyFocusedItem();
773
+ } else {
774
+ this.focusFirstItem();
775
+ }
776
+ event.preventDefault();
777
+ }
765
778
  }
766
779
 
767
780
  _onLoadMoreKeyup(event) {
@@ -824,8 +837,9 @@ class List extends UI5Element {
824
837
  }
825
838
 
826
839
  _onfocusin(event) {
840
+ const target = this.getNormalizedTarget(event.target);
827
841
  // If the focusin event does not origin from one of the 'triggers' - ignore it.
828
- if (!this.isForwardElement(this.getNormalizedTarget(event.target))) {
842
+ if (!this.isForwardElement(target)) {
829
843
  event.stopImmediatePropagation();
830
844
  return;
831
845
  }
@@ -833,7 +847,11 @@ class List extends UI5Element {
833
847
  // The focus arrives in the List for the first time.
834
848
  // If there is selected item - focus it or focus the first item.
835
849
  if (!this.getPreviouslyFocusedItem()) {
836
- this.focusFirstItem();
850
+ if (this.growsWithButton && this.isForwardAfterElement(target)) {
851
+ this.focusGrowingButton();
852
+ } else {
853
+ this.focusFirstItem();
854
+ }
837
855
  event.stopImmediatePropagation();
838
856
  return;
839
857
  }
@@ -841,6 +859,12 @@ class List extends UI5Element {
841
859
  // The focus returns to the List,
842
860
  // focus the first selected item or the previously focused element.
843
861
  if (!this.getForwardingFocus()) {
862
+ if (this.growsWithButton && this.isForwardAfterElement(target)) {
863
+ this.focusGrowingButton();
864
+ event.stopImmediatePropagation();
865
+ return;
866
+ }
867
+
844
868
  this.focusPreviouslyFocusedItem();
845
869
  event.stopImmediatePropagation();
846
870
  }
@@ -850,13 +874,19 @@ class List extends UI5Element {
850
874
 
851
875
  isForwardElement(node) {
852
876
  const nodeId = node.id;
853
- const afterElement = this.getAfterElement();
854
877
  const beforeElement = this.getBeforeElement();
855
878
 
856
879
  if (this._id === nodeId || (beforeElement && beforeElement.id === nodeId)) {
857
880
  return true;
858
881
  }
859
882
 
883
+ return this.isForwardAfterElement(node);
884
+ }
885
+
886
+ isForwardAfterElement(node) {
887
+ const nodeId = node.id;
888
+ const afterElement = this.getAfterElement();
889
+
860
890
  return afterElement && afterElement.id === nodeId;
861
891
  }
862
892
 
@@ -920,6 +950,9 @@ class List extends UI5Element {
920
950
 
921
951
  if (!this.growsWithButton) {
922
952
  this.focusAfterElement();
953
+ } else {
954
+ this.focusGrowingButton();
955
+ event.preventDefault();
923
956
  }
924
957
  }
925
958
 
@@ -933,6 +966,22 @@ class List extends UI5Element {
933
966
  this.getAfterElement().focus();
934
967
  }
935
968
 
969
+ focusGrowingButton() {
970
+ const growingBtn = this.getGrowingButton();
971
+
972
+ if (growingBtn) {
973
+ growingBtn.focus();
974
+ }
975
+ }
976
+
977
+ getGrowingButton() {
978
+ return this.shadowRoot.querySelector(`#${this._id}-growing-btn`);
979
+ }
980
+
981
+ /**
982
+ * Focuses the first list item and sets its tabindex to "0" via the ItemNavigation
983
+ * @protected
984
+ */
936
985
  focusFirstItem() {
937
986
  // only enabled items are focusable
938
987
  const firstItem = this.getFirstItem(x => !x.disabled);
package/dist/ListItem.js CHANGED
@@ -87,10 +87,29 @@ const metadata = {
87
87
  defaultValue: "listitem",
88
88
  },
89
89
 
90
+ /**
91
+ * Used to define the role of the list item.
92
+ *
93
+ * @private
94
+ * @type {string}
95
+ * @defaultvalue ""
96
+ * @since 1.3.0
97
+ *
98
+ */
99
+ accessibleRole: {
100
+ type: String,
101
+ },
102
+
90
103
  _mode: {
91
104
  type: ListMode,
92
105
  defaultValue: ListMode.None,
93
106
  },
107
+
108
+ _ariaHasPopup: {
109
+ type: String,
110
+ noAttribute: true,
111
+ },
112
+
94
113
  },
95
114
  events: /** @lends sap.ui.webcomponents.main.ListItem.prototype */ {
96
115
  /**
@@ -148,6 +167,13 @@ class ListItem extends ListItemBase {
148
167
  this.active = false;
149
168
  }
150
169
  };
170
+
171
+ this._ontouchstart = {
172
+ handleEvent(event) {
173
+ this._onmousedown(event);
174
+ },
175
+ passive: true,
176
+ };
151
177
  }
152
178
 
153
179
  onBeforeRendering(...params) {
@@ -212,10 +238,6 @@ class ListItem extends ListItemBase {
212
238
  this.deactivate();
213
239
  }
214
240
 
215
- _ontouchstart(event) {
216
- this._onmousedown(event);
217
- }
218
-
219
241
  _ontouchend(event) {
220
242
  this._onmouseup(event);
221
243
  }
@@ -354,12 +376,13 @@ class ListItem extends ListItemBase {
354
376
 
355
377
  get _accInfo() {
356
378
  return {
357
- role: this.role,
379
+ role: this.accessibleRole || this.role,
358
380
  ariaExpanded: undefined,
359
381
  ariaLevel: undefined,
360
382
  ariaLabel: ListItem.i18nBundle.getText(ARIA_LABEL_LIST_ITEM_CHECKBOX),
361
383
  ariaLabelRadioButton: ListItem.i18nBundle.getText(ARIA_LABEL_LIST_ITEM_RADIO_BUTTON),
362
384
  ariaSelectedText: this.ariaSelectedText,
385
+ ariaHaspopup: this._ariaHasPopup || undefined,
363
386
  };
364
387
  }
365
388
 
@@ -117,7 +117,9 @@ class ListItemBase extends UI5Element {
117
117
  const target = event.target;
118
118
 
119
119
  if (this.shouldForwardTabAfter(target)) {
120
- this.fireEvent("_forward-after", { item: target });
120
+ if (!this.fireEvent("_forward-after", { item: target }, true)) {
121
+ event.preventDefault();
122
+ }
121
123
  }
122
124
  }
123
125
 
package/dist/Menu.js ADDED
@@ -0,0 +1,500 @@
1
+ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
+ import {
3
+ isLeft,
4
+ isRight,
5
+ isEnter,
6
+ } from "@ui5/webcomponents-base/dist/Keys.js";
7
+ import {
8
+ isPhone,
9
+ isTablet,
10
+ isDesktop,
11
+ } from "@ui5/webcomponents-base/dist/Device.js";
12
+ import {
13
+ getI18nBundle,
14
+ } from "@ui5/webcomponents-base/dist/i18nBundle.js";
15
+ import "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
16
+ import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
17
+ import ResponsivePopover from "./ResponsivePopover.js";
18
+ import Button from "./Button.js";
19
+ import List from "./List.js";
20
+ import StandardListItem from "./StandardListItem.js";
21
+ import Icon from "./Icon.js";
22
+ import staticAreaMenuTemplate from "./generated/templates/MenuTemplate.lit.js";
23
+ import {
24
+ MENU_BACK_BUTTON_ARIA_LABEL,
25
+ MENU_CLOSE_BUTTON_ARIA_LABEL,
26
+ } from "./generated/i18n/i18n-defaults.js";
27
+
28
+ // Styles
29
+ import staticAreaMenuCss from "./generated/themes/Menu.css.js";
30
+
31
+ /**
32
+ * @public
33
+ */
34
+ const metadata = {
35
+ tag: "ui5-menu",
36
+ properties: /** @lends sap.ui.webcomponents.main.Menu.prototype */ {
37
+ /**
38
+ * Defines the header text of the menu (displayed on mobile).
39
+ * @type {string}
40
+ * @defaultvalue ""
41
+ * @public
42
+ */
43
+ headerText: {
44
+ type: String,
45
+ },
46
+
47
+ /**
48
+ * Defines if the menu is sub-menu (not first-level).
49
+ * @type {boolean}
50
+ * @defaultvalue false
51
+ * @private
52
+ */
53
+ _isSubMenu: {
54
+ type: Boolean,
55
+ noAttribute: true,
56
+ },
57
+
58
+ /**
59
+ * Stores parent menu item (if there is such).
60
+ * @type {object}
61
+ * @private
62
+ */
63
+ _parentMenuItem: {
64
+ type: Object,
65
+ },
66
+
67
+ /**
68
+ * Stores menu item that have sub-menu opened.
69
+ * @type {object}
70
+ * @private
71
+ */
72
+ _openedSubMenuItem: {
73
+ type: Object,
74
+ },
75
+
76
+ /**
77
+ * Stores id of a list item that opened sub-menu.
78
+ * @type {string}
79
+ * @private
80
+ */
81
+ _subMenuOpenerId: {
82
+ type: String,
83
+ },
84
+
85
+ /**
86
+ * Defines the currently available menu items.
87
+ * (in case of non-phone devices these are the items of the menu,
88
+ * but for phone devices the items of the currently opened sub-menu
89
+ * will be populated here)
90
+ * @type {array}
91
+ * @private
92
+ */
93
+ _currentItems: {
94
+ type: Object,
95
+ multiple: true,
96
+ },
97
+
98
+ /**
99
+ * Stores a list of parent menu items for each sub-menu (on phone).
100
+ * @type {array}
101
+ * @private
102
+ */
103
+ _parentItemsStack: {
104
+ type: Object,
105
+ multiple: true,
106
+ },
107
+
108
+ /**
109
+ * Stores a responsive popover when it is opened.
110
+ * @type {object}
111
+ * @private
112
+ */
113
+ _popover: {
114
+ type: Object,
115
+ },
116
+ },
117
+ managedSlots: true,
118
+ slots: /** @lends sap.ui.webcomponents.main.Menu.prototype */ {
119
+ /**
120
+ * Defines the items of this component.
121
+ *
122
+ * @type {sap.ui.webcomponents.main.IMenuItem[]}
123
+ * @slot items
124
+ * @public
125
+ */
126
+ "default": {
127
+ propertyName: "items",
128
+ type: HTMLElement,
129
+ invalidateOnChildChange: true,
130
+ },
131
+ },
132
+ events: /** @lends sap.ui.webcomponents.main.Menu.prototype */ {
133
+ /**
134
+ * Fired when an item is being clicked.
135
+ *
136
+ * @event sap.ui.webcomponents.main.Menu#item-click
137
+ * @param {object} item The currently clicked menu item.
138
+ * @param {string} text The text of the currently clicked menu item.
139
+ * @public
140
+ */
141
+ "item-click": {
142
+ detail: {
143
+ item: {
144
+ type: Object,
145
+ },
146
+ text: {
147
+ type: String,
148
+ },
149
+ },
150
+ },
151
+ },
152
+ };
153
+
154
+ /**
155
+ * @class
156
+ *
157
+ * <h3 class="comment-api-title">Overview</h3>
158
+ *
159
+ * <code>ui5-menu</code> component represents a hierarchical menu structure.
160
+ *
161
+ * <h3>Usage</h3>
162
+ *
163
+ * <code>ui5-menu</code> contains <code>ui5-menu-item</code> components.
164
+ * An arbitrary hierarchy structure can be represented by recursively nesting menu items.
165
+ *
166
+ * <h3>Keyboard Handling</h3>
167
+ *
168
+ * The <code>ui5-menu</code> provides advanced keyboard handling.
169
+ * The user can use the following keyboard shortcuts in order to navigate trough the tree:
170
+ * <ul>
171
+ * <li><code>Arrow Up</code> / <code>Arrow Down</code> - Navigates up and down the menu items that are currently visible.</li>
172
+ * <li><code>Arrow Right</code>, <code>Space</code> or <code>Enter</code> - Opens a sub-menu if there are menu items nested
173
+ * in the currently clicked menu item.</li>
174
+ * <li><code>Arrow Left</code> or <code>Escape</code> - Closes the currently opened sub-menu.</li>
175
+ * </ul>
176
+ * Note: if the text ditrection is set to Right-to-left (RTL), <code>Arrow Right</code> and <code>Arrow Left</code> functionality is swapped.
177
+ * <br>
178
+ *
179
+ * <h3>ES6 Module Import</h3>
180
+ *
181
+ * <code>import @ui5/webcomponents/dist/Menu.js";</code>
182
+ *
183
+ * @constructor
184
+ * @author SAP SE
185
+ * @alias sap.ui.webcomponents.main.Menu
186
+ * @extends UI5Element
187
+ * @tagname ui5-menu
188
+ * @appenddocs MenuItem
189
+ * @since 1.3.0
190
+ * @public
191
+ */
192
+ class Menu extends UI5Element {
193
+ static get metadata() {
194
+ return metadata;
195
+ }
196
+
197
+ static get render() {
198
+ return litRender;
199
+ }
200
+
201
+ static get staticAreaStyles() {
202
+ return staticAreaMenuCss;
203
+ }
204
+
205
+ static get staticAreaTemplate() {
206
+ return staticAreaMenuTemplate;
207
+ }
208
+
209
+ static get dependencies() {
210
+ return [
211
+ ResponsivePopover,
212
+ Button,
213
+ List,
214
+ StandardListItem,
215
+ Icon,
216
+ ];
217
+ }
218
+
219
+ static async onDefine() {
220
+ Menu.i18nBundle = await getI18nBundle("@ui5/webcomponents");
221
+ }
222
+
223
+ get itemsWithChildren() {
224
+ return !!this._currentItems.filter(item => item.item.items.length).length;
225
+ }
226
+
227
+ get itemsWithIcon() {
228
+ return !!this._currentItems.filter(item => item.item.icon !== "").length;
229
+ }
230
+
231
+ get isRtl() {
232
+ return this.effectiveDir === "rtl";
233
+ }
234
+
235
+ get placementType() {
236
+ const placement = this.isRtl ? "Left" : "Right";
237
+ return this._isSubMenu ? placement : "Bottom";
238
+ }
239
+
240
+ get verticalAlign() {
241
+ return this._isSubMenu ? "Top" : "Bottom";
242
+ }
243
+
244
+ get labelBack() {
245
+ return Menu.i18nBundle.getText(MENU_BACK_BUTTON_ARIA_LABEL);
246
+ }
247
+
248
+ get labelClose() {
249
+ return Menu.i18nBundle.getText(MENU_CLOSE_BUTTON_ARIA_LABEL);
250
+ }
251
+
252
+ get isPhone() {
253
+ return isPhone();
254
+ }
255
+
256
+ get isSubMenuOpened() {
257
+ return !!this._parentMenuItem;
258
+ }
259
+
260
+ get menuHeaderTextPhone() {
261
+ return this.isSubMenuOpened ? this._parentMenuItem.text : this.headerText;
262
+ }
263
+
264
+ onBeforeRendering() {
265
+ !isPhone() && this._prepareCurrentItems(this.items);
266
+
267
+ const itemsWithChildren = this.itemsWithChildren;
268
+ const itemsWithIcon = this.itemsWithIcon;
269
+
270
+ this._currentItems.forEach(item => {
271
+ item.item._siblingsWithChildren = itemsWithChildren;
272
+ item.item._siblingsWithIcon = itemsWithIcon;
273
+ });
274
+ }
275
+
276
+ /**
277
+ * Shows the Menu near the opener element.
278
+ * @param {HTMLElement} opener the element that the popover is shown at
279
+ * @public
280
+ */
281
+ async showAt(opener) {
282
+ if (isPhone()) {
283
+ this._prepareCurrentItems(this.items);
284
+ this._parentItemsStack = [];
285
+ }
286
+ if (!this._isSubMenu) {
287
+ this._parentMenuItem = undefined;
288
+ }
289
+ await this._getPopover();
290
+ this._popover.initialFocus = "";
291
+ for (let index = 0; index < this._currentItems.length; index++) {
292
+ if (!this._currentItems[index].item.disabled) {
293
+ this._popover.initialFocus = `${this._id}-menu-item-${index}`;
294
+ break;
295
+ }
296
+ }
297
+ this._popover.showAt(opener);
298
+ }
299
+
300
+ /**
301
+ * Closes the Menu.
302
+ * @public
303
+ */
304
+ close() {
305
+ if (Object.keys(this._popover).length) {
306
+ if (isPhone()) {
307
+ this._parentItemsStack = [];
308
+ }
309
+ this._popover.close();
310
+ this._popover.resetFocus();
311
+ }
312
+ }
313
+
314
+ async _getPopover() {
315
+ this._popover = (await this.getStaticAreaItemDomRef()).querySelector("[ui5-responsive-popover]");
316
+ return this._popover;
317
+ }
318
+
319
+ _beforePopoverClose() {
320
+ if (Object.keys(this._openedSubMenuItem).length) {
321
+ this._openedSubMenuItem._preventSubMenuClose = false;
322
+ this._closeItemSubMenu(this._openedSubMenuItem);
323
+ }
324
+ }
325
+
326
+ _navigateBack() {
327
+ const parentMenuItem = this._parentItemsStack.pop();
328
+
329
+ this.focus();
330
+ if (parentMenuItem) {
331
+ this._prepareCurrentItems(parentMenuItem.parentElement.items);
332
+ this._parentMenuItem = this._parentItemsStack.length ? this._parentItemsStack[this._parentItemsStack.length - 1] : undefined;
333
+ }
334
+ }
335
+
336
+ _prepareCurrentItems(items) {
337
+ this._currentItems = items.map((item, index) => {
338
+ return {
339
+ item,
340
+ position: index + 1,
341
+ ariaHasPopup: item.hasChildren ? "menu" : undefined,
342
+ };
343
+ });
344
+ }
345
+
346
+ _createSubMenu(item, openerId) {
347
+ const subMenu = document.createElement(this.constructor.getMetadata().getTag());
348
+ const fragment = document.createDocumentFragment();
349
+
350
+ subMenu._isSubMenu = true;
351
+ subMenu.setAttribute("id", `submenu-${openerId}`);
352
+ subMenu._parentMenuItem = item;
353
+ const subItems = item.children;
354
+ let clonedItem,
355
+ idx;
356
+ for (idx = 0; idx < subItems.length; idx++) {
357
+ clonedItem = subItems[idx].cloneNode(true);
358
+ fragment.appendChild(clonedItem);
359
+ }
360
+ subMenu.appendChild(fragment);
361
+ this.staticAreaItem.shadowRoot.querySelector(".ui5-menu-submenus").appendChild(subMenu);
362
+ item._subMenu = subMenu;
363
+ }
364
+
365
+ _openItemSubMenu(item, opener, actionId) {
366
+ item._subMenu.showAt(opener);
367
+ item._preventSubMenuClose = true;
368
+ this._openedSubMenuItem = item;
369
+ this._subMenuOpenerId = actionId;
370
+ }
371
+
372
+ _closeItemSubMenu(item, forceClose) {
373
+ if (Object.keys(item).length) {
374
+ if (forceClose) {
375
+ item._preventSubMenuClose = false;
376
+ this._closeSubMenuPopover(item._subMenu, true);
377
+ } else {
378
+ setTimeout(() => this._closeSubMenuPopover(item._subMenu), 0);
379
+ }
380
+ }
381
+ }
382
+
383
+ _closeSubMenuPopover(subMenu, forceClose) {
384
+ if (subMenu && Object.keys(subMenu).length) {
385
+ const parentItem = subMenu._parentMenuItem;
386
+
387
+ if (forceClose || !parentItem._preventSubMenuClose) {
388
+ subMenu.close();
389
+ subMenu.remove();
390
+ parentItem._subMenu = {};
391
+ this._openedSubMenuItem = {};
392
+ this._subMenuOpenerId = "";
393
+ }
394
+ }
395
+ }
396
+
397
+ _prepareSubMenuDesktopTablet(item, opener, actionId) {
398
+ if (actionId !== this._subMenuOpenerId || item.hasChildren) {
399
+ // close opened sub-menu if there is any opened
400
+ this._closeItemSubMenu(this._openedSubMenuItem, true);
401
+ }
402
+ if (item.hasChildren) {
403
+ // create new sub-menu
404
+ this._createSubMenu(item, actionId);
405
+ this._openItemSubMenu(item, opener, actionId);
406
+ }
407
+ if (this._parentMenuItem) {
408
+ this._parentMenuItem._preventSubMenuClose = true;
409
+ }
410
+ }
411
+
412
+ _prepareSubMenuPhone(item) {
413
+ this._prepareCurrentItems(item.items);
414
+ this._parentMenuItem = item;
415
+ this._parentItemsStack.push(item);
416
+ }
417
+
418
+ _itemMouseOver(event) {
419
+ if (isDesktop()) {
420
+ // respect mouseover only on desktop
421
+ const opener = event.target;
422
+ const item = opener.associatedItem;
423
+ const hoverId = opener.getAttribute("id");
424
+
425
+ opener.focus();
426
+ this._prepareSubMenuDesktopTablet(item, opener, hoverId);
427
+ }
428
+ }
429
+
430
+ _itemMouseOut(event) {
431
+ if (isDesktop()) {
432
+ // respect mouseover only on desktop
433
+ const item = event.target.associatedItem;
434
+
435
+ if (item.hasChildren && item._subMenu) {
436
+ // try to close the sub-menu
437
+ item._preventSubMenuClose = false;
438
+ this._closeItemSubMenu(item);
439
+ }
440
+ }
441
+ }
442
+
443
+ _itemKeyDown(event) {
444
+ const isMenuClose = this.isRtl ? isRight(event) : isLeft(event);
445
+ const isMenuOpen = this.isRtl ? isLeft(event) : isRight(event);
446
+
447
+ if (isEnter(event)) {
448
+ event.preventDefault();
449
+ }
450
+ if (isMenuOpen) {
451
+ const opener = event.target;
452
+ const item = opener.associatedItem;
453
+ const hoverId = opener.getAttribute("id");
454
+
455
+ item.hasChildren && this._prepareSubMenuDesktopTablet(item, opener, hoverId);
456
+ } else if (isMenuClose && this._isSubMenu && this._parentMenuItem) {
457
+ this._parentMenuItem.parentElement._closeItemSubMenu(this._parentMenuItem, true);
458
+ }
459
+ }
460
+
461
+ _itemClick(event) {
462
+ const opener = event.detail.item;
463
+ const item = opener.associatedItem;
464
+ const actionId = opener.getAttribute("id");
465
+
466
+ if (!item.hasChildren) {
467
+ // click on an item that doesn't have sub-items fires an "item-click" event
468
+ if (!this._isSubMenu) {
469
+ if (isPhone()) {
470
+ this._parentMenuItem = undefined;
471
+ }
472
+ // fire event if the click is on top-level menu item
473
+ this.fireEvent("item-click", {
474
+ "item": item,
475
+ "text": item.text,
476
+ });
477
+ this._popover.close();
478
+ } else {
479
+ // find top-level menu and redirect event to it
480
+ let parentMenu = item.parentElement;
481
+ while (parentMenu._parentMenuItem) {
482
+ parentMenu._parentMenuItem._preventSubMenuClose = false;
483
+ this._closeItemSubMenu(parentMenu._parentMenuItem);
484
+ parentMenu = parentMenu._parentMenuItem.parentElement;
485
+ }
486
+ parentMenu._itemClick(event);
487
+ }
488
+ } else if (isPhone()) {
489
+ // prepares and opens sub-menu on phone
490
+ this._prepareSubMenuPhone(item);
491
+ } else if (isTablet()) {
492
+ // prepares and opens sub-menu on tablet
493
+ this._prepareSubMenuDesktopTablet(item, opener, actionId);
494
+ }
495
+ }
496
+ }
497
+
498
+ Menu.define();
499
+
500
+ export default Menu;