@sapudex/web-components 0.114.2 → 0.127.6

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 (456) hide show
  1. package/bundle.esm.js +6 -0
  2. package/config/wdio.conf.js +19 -8
  3. package/dist/AccordionItem.d.ts +2 -1
  4. package/dist/AccordionItem.js +3 -3
  5. package/dist/AccordionItem.js.map +1 -1
  6. package/dist/Avatar.d.ts +20 -1
  7. package/dist/Avatar.js +26 -2
  8. package/dist/Avatar.js.map +1 -1
  9. package/dist/AvatarGroup.d.ts +28 -0
  10. package/dist/AvatarGroup.js +126 -0
  11. package/dist/AvatarGroup.js.map +1 -0
  12. package/dist/CountrySelector.d.ts +1 -0
  13. package/dist/CountrySelector.js +3 -0
  14. package/dist/CountrySelector.js.map +1 -1
  15. package/dist/Dropdown.d.ts +11 -1
  16. package/dist/Dropdown.js +15 -3
  17. package/dist/Dropdown.js.map +1 -1
  18. package/dist/FilterMenu.d.ts +21 -5
  19. package/dist/FilterMenu.js +50 -8
  20. package/dist/FilterMenu.js.map +1 -1
  21. package/dist/Footer.d.ts +27 -0
  22. package/dist/Footer.js +27 -36
  23. package/dist/Footer.js.map +1 -1
  24. package/dist/HeroBanner.js +3 -0
  25. package/dist/HeroBanner.js.map +1 -1
  26. package/dist/InputGroup.js.map +1 -1
  27. package/dist/List.d.ts +7 -0
  28. package/dist/List.js +78 -18
  29. package/dist/List.js.map +1 -1
  30. package/dist/ListItem.d.ts +0 -1
  31. package/dist/ListItem.js +0 -6
  32. package/dist/ListItem.js.map +1 -1
  33. package/dist/ListItemBase.d.ts +3 -0
  34. package/dist/ListItemBase.js +12 -0
  35. package/dist/ListItemBase.js.map +1 -1
  36. package/dist/MastheadItem.d.ts +1 -0
  37. package/dist/MastheadItem.js +5 -11
  38. package/dist/MastheadItem.js.map +1 -1
  39. package/dist/MastheadShell.d.ts +8 -0
  40. package/dist/MastheadShell.js +10 -0
  41. package/dist/MastheadShell.js.map +1 -1
  42. package/dist/MessageStrip.js +1 -1
  43. package/dist/MessageStrip.js.map +1 -1
  44. package/dist/Pagination.d.ts +3 -0
  45. package/dist/Pagination.js +16 -4
  46. package/dist/Pagination.js.map +1 -1
  47. package/dist/PasswordField.d.ts +14 -4
  48. package/dist/PasswordField.js +24 -15
  49. package/dist/PasswordField.js.map +1 -1
  50. package/dist/PhoneNumberField.d.ts +6 -0
  51. package/dist/PhoneNumberField.js +6 -1
  52. package/dist/PhoneNumberField.js.map +1 -1
  53. package/dist/RatingBar.d.ts +53 -0
  54. package/dist/RatingBar.js +96 -0
  55. package/dist/RatingBar.js.map +1 -0
  56. package/dist/Review.d.ts +71 -0
  57. package/dist/Review.js +108 -0
  58. package/dist/Review.js.map +1 -0
  59. package/dist/Search.d.ts +51 -0
  60. package/dist/Search.js +65 -11
  61. package/dist/Search.js.map +1 -1
  62. package/dist/SearchableListBase.d.ts +1 -1
  63. package/dist/SearchableListBase.js +1 -1
  64. package/dist/SearchableListBase.js.map +1 -1
  65. package/dist/SecondaryNavigation.d.ts +35 -47
  66. package/dist/SecondaryNavigation.js +158 -167
  67. package/dist/SecondaryNavigation.js.map +1 -1
  68. package/dist/SecondaryNavigationItem.d.ts +101 -0
  69. package/dist/SecondaryNavigationItem.js +297 -0
  70. package/dist/SecondaryNavigationItem.js.map +1 -0
  71. package/dist/SecondaryNavigationItemBase.d.ts +82 -0
  72. package/dist/SecondaryNavigationItemBase.js +104 -0
  73. package/dist/SecondaryNavigationItemBase.js.map +1 -0
  74. package/dist/SecondaryNavigationSubItem.d.ts +53 -0
  75. package/dist/SecondaryNavigationSubItem.js +105 -0
  76. package/dist/SecondaryNavigationSubItem.js.map +1 -0
  77. package/dist/SelectBox.d.ts +1 -0
  78. package/dist/SelectBox.js +15 -1
  79. package/dist/SelectBox.js.map +1 -1
  80. package/dist/StatusBadge.d.ts +67 -0
  81. package/dist/StatusBadge.js +104 -0
  82. package/dist/StatusBadge.js.map +1 -0
  83. package/dist/Switch.d.ts +1 -0
  84. package/dist/Switch.js +3 -0
  85. package/dist/Switch.js.map +1 -1
  86. package/dist/Tab.d.ts +8 -0
  87. package/dist/Tab.js +4 -1
  88. package/dist/Tab.js.map +1 -1
  89. package/dist/TabNavigation.d.ts +20 -20
  90. package/dist/TabNavigation.js +82 -101
  91. package/dist/TabNavigation.js.map +1 -1
  92. package/dist/Tag.d.ts +13 -6
  93. package/dist/Tag.js +34 -20
  94. package/dist/Tag.js.map +1 -1
  95. package/dist/TextArea.d.ts +1 -1
  96. package/dist/TextArea.js +3 -0
  97. package/dist/TextArea.js.map +1 -1
  98. package/dist/TextField.d.ts +9 -0
  99. package/dist/TextField.js +16 -0
  100. package/dist/TextField.js.map +1 -1
  101. package/dist/Tooltip.d.ts +2 -2
  102. package/dist/Tooltip.js +3 -3
  103. package/dist/Tooltip.js.map +1 -1
  104. package/dist/assets/bundle.esm-7d53f4f2.js +314 -0
  105. package/dist/assets/messagebundle_en-6dcc9ab4.js +1 -0
  106. package/dist/assets/parameters-bundle.css-de55cf62.js +2 -0
  107. package/dist/css/themes/AccordionItem.css +1 -1
  108. package/dist/css/themes/Avatar.css +1 -1
  109. package/dist/css/themes/Badge.css +1 -1
  110. package/dist/css/themes/Checkbox.css +1 -1
  111. package/dist/css/themes/CountrySelector.css +1 -1
  112. package/dist/css/themes/Divider.css +1 -1
  113. package/dist/css/themes/Dropdown.css +1 -1
  114. package/dist/css/themes/FilterMenu.css +1 -1
  115. package/dist/css/themes/Footer.css +1 -1
  116. package/dist/css/themes/HeroBanner.css +1 -1
  117. package/dist/css/themes/MastheadShell.css +1 -1
  118. package/dist/css/themes/MediaPlayer.css +1 -1
  119. package/dist/css/themes/Modal.css +1 -1
  120. package/dist/css/themes/Pagination.css +1 -1
  121. package/dist/css/themes/PhoneNumberField.css +1 -1
  122. package/dist/css/themes/RatingBar.css +1 -0
  123. package/dist/css/themes/RatingIndicator.css +1 -1
  124. package/dist/css/themes/Review.css +1 -0
  125. package/dist/css/themes/Search.css +1 -1
  126. package/dist/css/themes/SecondaryNavigation.css +1 -1
  127. package/dist/css/themes/SecondaryNavigationItem.css +1 -0
  128. package/dist/css/themes/SecondaryNavigationSubItem.css +1 -0
  129. package/dist/css/themes/SelectBox.css +1 -1
  130. package/dist/css/themes/Slider.css +1 -1
  131. package/dist/css/themes/StatusBadge.css +1 -0
  132. package/dist/css/themes/StepInput.css +1 -1
  133. package/dist/css/themes/TabNavigation.css +1 -1
  134. package/dist/css/themes/Tag.css +1 -1
  135. package/dist/css/themes/TextField.css +1 -1
  136. package/dist/css/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css +1 -1
  137. package/dist/custom-elements-internal.json +1291 -119
  138. package/dist/custom-elements.json +1298 -199
  139. package/dist/data/CountryListISO3166.js +162 -162
  140. package/dist/data/CountryListISO3166.js.map +1 -1
  141. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  142. package/dist/generated/assets/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.json +1 -1
  143. package/dist/generated/i18n/i18n-defaults.d.ts +16 -1
  144. package/dist/generated/i18n/i18n-defaults.js +20 -5
  145. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  146. package/dist/generated/templates/AccordionItemTemplate.lit.js +1 -1
  147. package/dist/generated/templates/AccordionItemTemplate.lit.js.map +1 -1
  148. package/dist/generated/templates/CountrySelectorTemplate.lit.js +1 -1
  149. package/dist/generated/templates/CountrySelectorTemplate.lit.js.map +1 -1
  150. package/dist/generated/templates/DatePickerTemplate.lit.js +1 -1
  151. package/dist/generated/templates/DatePickerTemplate.lit.js.map +1 -1
  152. package/dist/generated/templates/DropdownTemplate.lit.js +2 -2
  153. package/dist/generated/templates/DropdownTemplate.lit.js.map +1 -1
  154. package/dist/generated/templates/FilterMenuTemplate.lit.js +3 -3
  155. package/dist/generated/templates/FilterMenuTemplate.lit.js.map +1 -1
  156. package/dist/generated/templates/FooterTemplate.lit.js +26 -28
  157. package/dist/generated/templates/FooterTemplate.lit.js.map +1 -1
  158. package/dist/generated/templates/HeroBannerTemplate.lit.js +9 -8
  159. package/dist/generated/templates/HeroBannerTemplate.lit.js.map +1 -1
  160. package/dist/generated/templates/ListGroupHeaderTemplate.lit.js +4 -4
  161. package/dist/generated/templates/ListGroupHeaderTemplate.lit.js.map +1 -1
  162. package/dist/generated/templates/ListItemTemplate.lit.js +1 -1
  163. package/dist/generated/templates/ListItemTemplate.lit.js.map +1 -1
  164. package/dist/generated/templates/ListSelectAllTemplate.lit.js +1 -1
  165. package/dist/generated/templates/ListSelectAllTemplate.lit.js.map +1 -1
  166. package/dist/generated/templates/MastheadItemTemplate.lit.js +3 -3
  167. package/dist/generated/templates/MastheadItemTemplate.lit.js.map +1 -1
  168. package/dist/generated/templates/MastheadShellTemplate.lit.js +2 -2
  169. package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
  170. package/dist/generated/templates/PaginationTemplate.lit.js +1 -1
  171. package/dist/generated/templates/PaginationTemplate.lit.js.map +1 -1
  172. package/dist/generated/templates/PasswordFieldTemplate.lit.js +1 -2
  173. package/dist/generated/templates/PasswordFieldTemplate.lit.js.map +1 -1
  174. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js +3 -3
  175. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js.map +1 -1
  176. package/dist/generated/templates/RatingBarTemplate.lit.d.ts +4 -0
  177. package/dist/generated/templates/RatingBarTemplate.lit.js +6 -0
  178. package/dist/generated/templates/RatingBarTemplate.lit.js.map +1 -0
  179. package/dist/generated/templates/ReviewTemplate.lit.d.ts +4 -0
  180. package/dist/generated/templates/ReviewTemplate.lit.js +10 -0
  181. package/dist/generated/templates/ReviewTemplate.lit.js.map +1 -0
  182. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js +1 -1
  183. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js.map +1 -1
  184. package/dist/generated/templates/SearchTemplate.lit.js +7 -7
  185. package/dist/generated/templates/SearchTemplate.lit.js.map +1 -1
  186. package/dist/generated/templates/SearchableListBaseTemplate.lit.js +2 -2
  187. package/dist/generated/templates/SearchableListBaseTemplate.lit.js.map +1 -1
  188. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.d.ts +4 -0
  189. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js +11 -0
  190. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js.map +1 -0
  191. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.d.ts +4 -0
  192. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js +10 -0
  193. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js.map +1 -0
  194. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +7 -10
  195. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +1 -1
  196. package/dist/generated/templates/SelectBoxTemplate.lit.js +2 -2
  197. package/dist/generated/templates/SelectBoxTemplate.lit.js.map +1 -1
  198. package/dist/generated/templates/StatusBadgeTemplate.lit.d.ts +4 -0
  199. package/dist/generated/templates/StatusBadgeTemplate.lit.js +5 -0
  200. package/dist/generated/templates/StatusBadgeTemplate.lit.js.map +1 -0
  201. package/dist/generated/templates/SwitchTemplate.lit.js +2 -2
  202. package/dist/generated/templates/SwitchTemplate.lit.js.map +1 -1
  203. package/dist/generated/templates/TabInOverflowTemplate.lit.js +2 -2
  204. package/dist/generated/templates/TabInOverflowTemplate.lit.js.map +1 -1
  205. package/dist/generated/templates/TabNavigationPopoverTemplate.lit.js +1 -1
  206. package/dist/generated/templates/TabNavigationPopoverTemplate.lit.js.map +1 -1
  207. package/dist/generated/templates/TabNavigationTemplate.lit.js +2 -2
  208. package/dist/generated/templates/TabNavigationTemplate.lit.js.map +1 -1
  209. package/dist/generated/templates/TagTemplate.lit.js +9 -3
  210. package/dist/generated/templates/TagTemplate.lit.js.map +1 -1
  211. package/dist/generated/templates/TextAreaTemplate.lit.js +1 -1
  212. package/dist/generated/templates/TextAreaTemplate.lit.js.map +1 -1
  213. package/dist/generated/templates/TextFieldTemplate.lit.js +2 -2
  214. package/dist/generated/templates/TextFieldTemplate.lit.js.map +1 -1
  215. package/dist/generated/templates/TooltipTemplate.lit.js +1 -1
  216. package/dist/generated/templates/TooltipTemplate.lit.js.map +1 -1
  217. package/dist/generated/themes/AccordionItem.css.js +1 -1
  218. package/dist/generated/themes/AccordionItem.css.js.map +1 -1
  219. package/dist/generated/themes/Avatar.css.js +1 -1
  220. package/dist/generated/themes/Avatar.css.js.map +1 -1
  221. package/dist/generated/themes/Badge.css.js +1 -1
  222. package/dist/generated/themes/Badge.css.js.map +1 -1
  223. package/dist/generated/themes/Checkbox.css.js +1 -1
  224. package/dist/generated/themes/Checkbox.css.js.map +1 -1
  225. package/dist/generated/themes/CountrySelector.css.js +1 -1
  226. package/dist/generated/themes/CountrySelector.css.js.map +1 -1
  227. package/dist/generated/themes/Divider.css.js +1 -1
  228. package/dist/generated/themes/Divider.css.js.map +1 -1
  229. package/dist/generated/themes/Dropdown.css.js +1 -1
  230. package/dist/generated/themes/Dropdown.css.js.map +1 -1
  231. package/dist/generated/themes/FilterMenu.css.js +1 -1
  232. package/dist/generated/themes/FilterMenu.css.js.map +1 -1
  233. package/dist/generated/themes/Footer.css.js +1 -1
  234. package/dist/generated/themes/Footer.css.js.map +1 -1
  235. package/dist/generated/themes/HeroBanner.css.js +1 -1
  236. package/dist/generated/themes/HeroBanner.css.js.map +1 -1
  237. package/dist/generated/themes/MastheadShell.css.js +1 -1
  238. package/dist/generated/themes/MastheadShell.css.js.map +1 -1
  239. package/dist/generated/themes/MediaPlayer.css.js +1 -1
  240. package/dist/generated/themes/MediaPlayer.css.js.map +1 -1
  241. package/dist/generated/themes/Modal.css.js +1 -1
  242. package/dist/generated/themes/Modal.css.js.map +1 -1
  243. package/dist/generated/themes/Pagination.css.js +1 -1
  244. package/dist/generated/themes/Pagination.css.js.map +1 -1
  245. package/dist/generated/themes/PhoneNumberField.css.js +1 -1
  246. package/dist/generated/themes/PhoneNumberField.css.js.map +1 -1
  247. package/dist/generated/themes/RatingBar.css.js +9 -0
  248. package/dist/generated/themes/RatingBar.css.js.map +1 -0
  249. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  250. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  251. package/dist/generated/themes/Review.css.d.ts +3 -0
  252. package/dist/generated/themes/Review.css.js +9 -0
  253. package/dist/generated/themes/Review.css.js.map +1 -0
  254. package/dist/generated/themes/Search.css.js +1 -1
  255. package/dist/generated/themes/Search.css.js.map +1 -1
  256. package/dist/generated/themes/SecondaryNavigation.css.js +1 -1
  257. package/dist/generated/themes/SecondaryNavigation.css.js.map +1 -1
  258. package/dist/generated/themes/SecondaryNavigationItem.css.d.ts +3 -0
  259. package/dist/generated/themes/SecondaryNavigationItem.css.js +9 -0
  260. package/dist/generated/themes/SecondaryNavigationItem.css.js.map +1 -0
  261. package/dist/generated/themes/SecondaryNavigationSubItem.css.d.ts +3 -0
  262. package/dist/generated/themes/SecondaryNavigationSubItem.css.js +9 -0
  263. package/dist/generated/themes/SecondaryNavigationSubItem.css.js.map +1 -0
  264. package/dist/generated/themes/SelectBox.css.js +1 -1
  265. package/dist/generated/themes/SelectBox.css.js.map +1 -1
  266. package/dist/generated/themes/Slider.css.js +1 -1
  267. package/dist/generated/themes/Slider.css.js.map +1 -1
  268. package/dist/generated/themes/StatusBadge.css.d.ts +3 -0
  269. package/dist/generated/themes/StatusBadge.css.js +9 -0
  270. package/dist/generated/themes/StatusBadge.css.js.map +1 -0
  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/TabNavigation.css.js +1 -1
  274. package/dist/generated/themes/TabNavigation.css.js.map +1 -1
  275. package/dist/generated/themes/Tag.css.js +1 -1
  276. package/dist/generated/themes/Tag.css.js.map +1 -1
  277. package/dist/generated/themes/TextField.css.js +1 -1
  278. package/dist/generated/themes/TextField.css.js.map +1 -1
  279. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js +1 -1
  280. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js.map +1 -1
  281. package/dist/i18n/messagebundle.properties +40 -5
  282. package/dist/i18n/messagebundle_en.properties +20 -5
  283. package/dist/vscode.html-custom-data.json +239 -16
  284. package/dist/web-types.json +405 -25
  285. package/package.json +8 -8
  286. package/src/AccordionItem.hbs +1 -4
  287. package/src/AccordionItem.ts +5 -4
  288. package/src/Avatar.ts +35 -3
  289. package/src/AvatarGroup.ts +135 -0
  290. package/src/CountrySelector.hbs +2 -1
  291. package/src/CountrySelector.ts +4 -1
  292. package/src/DatePicker.hbs +0 -1
  293. package/src/Dropdown.hbs +5 -3
  294. package/src/Dropdown.ts +24 -3
  295. package/src/FilterMenu.hbs +8 -1
  296. package/src/FilterMenu.ts +70 -12
  297. package/src/Footer.hbs +12 -37
  298. package/src/Footer.ts +64 -51
  299. package/src/HeroBanner.hbs +28 -21
  300. package/src/HeroBanner.ts +3 -0
  301. package/src/InputGroup.ts +6 -5
  302. package/src/List.ts +92 -21
  303. package/src/ListGroupHeader.hbs +9 -5
  304. package/src/ListItem.hbs +2 -1
  305. package/src/ListItem.ts +0 -7
  306. package/src/ListItemBase.ts +14 -0
  307. package/src/ListSelectAll.hbs +1 -0
  308. package/src/MastheadItem.hbs +3 -3
  309. package/src/MastheadItem.ts +10 -4
  310. package/src/MastheadShell.hbs +4 -0
  311. package/src/MastheadShell.ts +18 -0
  312. package/src/MessageStrip.ts +1 -1
  313. package/src/Pagination.hbs +4 -2
  314. package/src/Pagination.ts +19 -4
  315. package/src/PasswordField.hbs +6 -17
  316. package/src/PasswordField.ts +31 -23
  317. package/src/PhoneNumberField.hbs +8 -3
  318. package/src/PhoneNumberField.ts +12 -2
  319. package/src/RatingBar.hbs +11 -0
  320. package/src/RatingBar.ts +113 -0
  321. package/src/Review.hbs +44 -0
  322. package/src/Review.ts +140 -0
  323. package/src/Search.hbs +20 -14
  324. package/src/Search.ts +107 -10
  325. package/src/SearchSuggestions.hbs +2 -1
  326. package/src/SearchableListBase.hbs +2 -0
  327. package/src/SearchableListBase.ts +1 -1
  328. package/src/SecondaryNavigation.hbs +53 -71
  329. package/src/SecondaryNavigation.ts +192 -198
  330. package/src/SecondaryNavigationItem.hbs +64 -0
  331. package/src/SecondaryNavigationItem.ts +368 -0
  332. package/src/SecondaryNavigationItemBase.ts +153 -0
  333. package/src/SecondaryNavigationSubItem.hbs +44 -0
  334. package/src/SecondaryNavigationSubItem.ts +127 -0
  335. package/src/SelectBox.hbs +76 -76
  336. package/src/SelectBox.ts +18 -1
  337. package/src/StatusBadge.hbs +9 -0
  338. package/src/StatusBadge.ts +129 -0
  339. package/src/Switch.hbs +3 -3
  340. package/src/Switch.ts +4 -0
  341. package/src/Tab.ts +11 -1
  342. package/src/TabInOverflow.hbs +3 -2
  343. package/src/TabNavigation.hbs +12 -10
  344. package/src/TabNavigation.ts +92 -116
  345. package/src/TabNavigationPopover.hbs +1 -0
  346. package/src/Tag.hbs +60 -26
  347. package/src/Tag.ts +54 -34
  348. package/src/TextArea.hbs +3 -4
  349. package/src/TextArea.ts +3 -0
  350. package/src/TextField.hbs +40 -36
  351. package/src/TextField.ts +24 -0
  352. package/src/Tooltip.hbs +2 -2
  353. package/src/Tooltip.ts +4 -4
  354. package/src/data/CountryListISO3166.ts +162 -162
  355. package/src/generated/i18n/i18n-defaults.ts +2 -2
  356. package/src/generated/templates/AccordionItemTemplate.lit.ts +1 -1
  357. package/src/generated/templates/CountrySelectorTemplate.lit.ts +1 -1
  358. package/src/generated/templates/DatePickerTemplate.lit.ts +1 -1
  359. package/src/generated/templates/DropdownTemplate.lit.ts +2 -2
  360. package/src/generated/templates/FilterMenuTemplate.lit.ts +3 -3
  361. package/src/generated/templates/FooterTemplate.lit.ts +26 -28
  362. package/src/generated/templates/HeroBannerTemplate.lit.ts +9 -8
  363. package/src/generated/templates/ListGroupHeaderTemplate.lit.ts +4 -4
  364. package/src/generated/templates/ListItemTemplate.lit.ts +1 -1
  365. package/src/generated/templates/ListSelectAllTemplate.lit.ts +1 -1
  366. package/src/generated/templates/MastheadItemTemplate.lit.ts +3 -3
  367. package/src/generated/templates/MastheadShellTemplate.lit.ts +2 -2
  368. package/src/generated/templates/PaginationTemplate.lit.ts +1 -1
  369. package/src/generated/templates/PasswordFieldTemplate.lit.ts +1 -2
  370. package/src/generated/templates/PhoneNumberFieldTemplate.lit.ts +3 -3
  371. package/src/generated/templates/RatingBarTemplate.lit.ts +11 -0
  372. package/src/generated/templates/ReviewTemplate.lit.ts +15 -0
  373. package/src/generated/templates/SearchSuggestionsTemplate.lit.ts +1 -1
  374. package/src/generated/templates/SearchTemplate.lit.ts +7 -7
  375. package/src/generated/templates/SearchableListBaseTemplate.lit.ts +2 -2
  376. package/src/generated/templates/SecondaryNavigationItemTemplate.lit.ts +16 -0
  377. package/src/generated/templates/SecondaryNavigationSubItemTemplate.lit.ts +15 -0
  378. package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +7 -10
  379. package/src/generated/templates/SelectBoxTemplate.lit.ts +2 -2
  380. package/src/generated/templates/StatusBadgeTemplate.lit.ts +10 -0
  381. package/src/generated/templates/SwitchTemplate.lit.ts +2 -2
  382. package/src/generated/templates/TabInOverflowTemplate.lit.ts +2 -2
  383. package/src/generated/templates/TabNavigationPopoverTemplate.lit.ts +1 -1
  384. package/src/generated/templates/TabNavigationTemplate.lit.ts +2 -2
  385. package/src/generated/templates/TagTemplate.lit.ts +9 -3
  386. package/src/generated/templates/TextAreaTemplate.lit.ts +1 -1
  387. package/src/generated/templates/TextFieldTemplate.lit.ts +2 -2
  388. package/src/generated/templates/TooltipTemplate.lit.ts +1 -1
  389. package/src/generated/themes/AccordionItem.css.ts +1 -1
  390. package/src/generated/themes/Avatar.css.ts +1 -1
  391. package/src/generated/themes/Badge.css.ts +1 -1
  392. package/src/generated/themes/Checkbox.css.ts +1 -1
  393. package/src/generated/themes/CountrySelector.css.ts +1 -1
  394. package/src/generated/themes/Divider.css.ts +1 -1
  395. package/src/generated/themes/Dropdown.css.ts +1 -1
  396. package/src/generated/themes/FilterMenu.css.ts +1 -1
  397. package/src/generated/themes/Footer.css.ts +1 -1
  398. package/src/generated/themes/HeroBanner.css.ts +1 -1
  399. package/src/generated/themes/MastheadShell.css.ts +1 -1
  400. package/src/generated/themes/MediaPlayer.css.ts +1 -1
  401. package/src/generated/themes/Modal.css.ts +1 -1
  402. package/src/generated/themes/Pagination.css.ts +1 -1
  403. package/src/generated/themes/PhoneNumberField.css.ts +1 -1
  404. package/src/generated/themes/RatingBar.css.ts +13 -0
  405. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  406. package/src/generated/themes/Review.css.ts +13 -0
  407. package/src/generated/themes/Search.css.ts +1 -1
  408. package/src/generated/themes/SecondaryNavigation.css.ts +1 -1
  409. package/src/generated/themes/SecondaryNavigationItem.css.ts +13 -0
  410. package/src/generated/themes/SecondaryNavigationSubItem.css.ts +13 -0
  411. package/src/generated/themes/SelectBox.css.ts +1 -1
  412. package/src/generated/themes/Slider.css.ts +1 -1
  413. package/src/generated/themes/StatusBadge.css.ts +13 -0
  414. package/src/generated/themes/StepInput.css.ts +1 -1
  415. package/src/generated/themes/TabNavigation.css.ts +1 -1
  416. package/src/generated/themes/Tag.css.ts +1 -1
  417. package/src/generated/themes/TextField.css.ts +1 -1
  418. package/src/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.ts +1 -1
  419. package/src/i18n/messagebundle.properties +40 -5
  420. package/src/i18n/messagebundle_en.properties +20 -5
  421. package/src/themes/AccordionItem.css +6 -4
  422. package/src/themes/Avatar.css +43 -6
  423. package/src/themes/Badge.css +1 -1
  424. package/src/themes/Checkbox.css +12 -0
  425. package/src/themes/CountrySelector.css +4 -0
  426. package/src/themes/Divider.css +6 -2
  427. package/src/themes/Dropdown.css +2 -0
  428. package/src/themes/FilterMenu.css +10 -0
  429. package/src/themes/Footer.css +93 -168
  430. package/src/themes/HeroBanner.css +84 -20
  431. package/src/themes/MastheadShell.css +25 -29
  432. package/src/themes/MediaPlayer.css +3 -2
  433. package/src/themes/Modal.css +6 -0
  434. package/src/themes/Pagination.css +7 -0
  435. package/src/themes/PhoneNumberField.css +5 -0
  436. package/src/themes/RatingBar.css +52 -0
  437. package/src/themes/Review.css +196 -0
  438. package/src/themes/Search.css +37 -21
  439. package/src/themes/SecondaryNavigation.css +64 -293
  440. package/src/themes/SecondaryNavigationItem.css +221 -0
  441. package/src/themes/SecondaryNavigationSubItem.css +118 -0
  442. package/src/themes/SelectBox.css +17 -24
  443. package/src/themes/StatusBadge.css +135 -0
  444. package/src/themes/StepInput.css +5 -2
  445. package/src/themes/TabNavigation.css +7 -1
  446. package/src/themes/Tag.css +180 -148
  447. package/src/themes/TextField.css +75 -55
  448. package/dist/assets/bundle.esm-ab45813e.js +0 -312
  449. package/dist/assets/messagebundle_en-26cd7a92.js +0 -1
  450. package/dist/assets/parameters-bundle.css-76ef62fa.js +0 -2
  451. package/dist/css/themes/PasswordField.css +0 -1
  452. package/dist/generated/themes/PasswordField.css.js +0 -9
  453. package/dist/generated/themes/PasswordField.css.js.map +0 -1
  454. package/src/generated/themes/PasswordField.css.ts +0 -13
  455. package/src/themes/PasswordField.css +0 -29
  456. /package/dist/generated/themes/{PasswordField.css.d.ts → RatingBar.css.d.ts} +0 -0
@@ -0,0 +1,368 @@
1
+ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
2
+ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
3
+ import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
4
+ import event from "@ui5/webcomponents-base/dist/decorators/event.js";
5
+ import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
6
+ import UI5Icon from "@ui5/webcomponents/dist/Icon.js";
7
+ import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
8
+ import {
9
+ isLeft,
10
+ isRight,
11
+ isUp,
12
+ isDown,
13
+ isEscape,
14
+ isSpace,
15
+ isEnter,
16
+ isHome,
17
+ isEnd,
18
+ } from "@ui5/webcomponents-base/dist/Keys.js";
19
+ import UDExSecondaryNavigationSubItem from "./SecondaryNavigationSubItem.js";
20
+ import UDExSecondaryNavigationItemBase, { NavItem } from "./SecondaryNavigationItemBase.js";
21
+ import "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
22
+
23
+ import SecondaryNavigationItemTemplate from "./generated/templates/SecondaryNavigationItemTemplate.lit.js";
24
+
25
+ // Styles
26
+ import SecondaryNavigationItemCss from "./generated/themes/SecondaryNavigationItem.css.js";
27
+
28
+ export const menuItemRole: string = "menuitem";
29
+
30
+ /**
31
+ * @class
32
+ *
33
+ * <h3 class="comment-api-title">Overview</h3>
34
+ *
35
+ *
36
+ * <h3>Usage</h3>
37
+ *
38
+ * For the <code>udex-secondary-navigation-item</code>
39
+ * <h3>ES6 Module Import</h3>
40
+ *
41
+ * <code>import "@udex/web-components/dist/SecondaryNavigationItem.js";</code>
42
+ *
43
+ * @constructor
44
+ * @extends UDExSecondaryNavigationItemBase
45
+ * @tagname udex-secondary-navigation-item
46
+ * @private
47
+ */
48
+ @customElement({
49
+ tag: "udex-secondary-navigation-item",
50
+ renderer: litRender,
51
+ styles: SecondaryNavigationItemCss,
52
+ template: SecondaryNavigationItemTemplate,
53
+ dependencies: [UI5Icon, UDExSecondaryNavigationSubItem],
54
+ })
55
+
56
+ /**
57
+ * Fires when item is clicked
58
+ *
59
+ * @allowPreventDefault
60
+ * @public
61
+ */
62
+ @event("nav-item-click", {
63
+ detail: {
64
+ item: { type: HTMLElement },
65
+ index: { type: Integer },
66
+ },
67
+ })
68
+
69
+ /**
70
+ * Fires when dropdown item is clicked
71
+ *
72
+ * @allowPreventDefault
73
+ * @public
74
+ */
75
+ @event("sub-item-click", {
76
+ detail: {
77
+ item: { type: Object },
78
+ index: { type: Integer },
79
+ },
80
+ })
81
+
82
+ class UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBase {
83
+ /**
84
+ * Defines an aria label for item
85
+ *
86
+ * @public
87
+ */
88
+ @property({ type: String })
89
+ ariaLabel!: string;
90
+
91
+ /**
92
+ * Defines a role for item
93
+ *
94
+ * @public
95
+ */
96
+ @property({ type: String })
97
+ role!: string;
98
+
99
+ /**
100
+ * Defines the content of the item.
101
+ *
102
+ * @slot content
103
+ * @public
104
+ */
105
+ @slot({ type: HTMLElement })
106
+ buttons!: Array<HTMLElement>;
107
+
108
+ /**
109
+ * List of the sub items
110
+ *
111
+ * @default "[]"
112
+ * @public
113
+ */
114
+ @property({ type: Object, multiple: true })
115
+ subItems!: Array<NavItem>;
116
+
117
+ /**
118
+ * Defines if dropdown is opened.
119
+ *
120
+ * @public
121
+ * @default false
122
+ */
123
+ @property({ type: Boolean })
124
+ isOpen!: boolean;
125
+
126
+ /**
127
+ * Defines processed items.
128
+ *
129
+ * @private
130
+ * @default []
131
+ */
132
+ @property({ type: Object })
133
+ _processedItems: Array<NavItem> = [];
134
+
135
+ _dropdownHistory: Array<Array<NavItem>> = [];
136
+ _shouldFocusFirstSubItem!: boolean;
137
+ _subTitle!: string | undefined;
138
+
139
+ onAfterRendering(): void {
140
+ if (this._shouldFocusFirstSubItem && this.isOpen) {
141
+ this.onFirstSubItemFocus();
142
+ this._shouldFocusFirstSubItem = false;
143
+ }
144
+ }
145
+
146
+ onBeforeRendering() : void {
147
+ this._subTitle = this.subActiveItemTitle || this._subTitle;
148
+ }
149
+
150
+ onItemClick(): void {
151
+ if (this.hasNestedItems) {
152
+ this.setDropdownItems();
153
+ this.toggleDropdown();
154
+ }
155
+
156
+ this.fireEvent("nav-item-click", {
157
+ item: this,
158
+ index: this.index,
159
+ });
160
+ }
161
+
162
+ onSubItemClick(e: Event): void {
163
+ const { index } = e.target as UDExSecondaryNavigationSubItem;
164
+ const clickedItem = this._processedItems[index];
165
+
166
+ if (clickedItem.items) {
167
+ this.setDropdownHistory();
168
+ this.setNestedItems(clickedItem);
169
+ }
170
+
171
+ this.fireEvent("sub-item-click", {
172
+ item: clickedItem,
173
+ index,
174
+ });
175
+ }
176
+
177
+ onBackClick(): void {
178
+ this.setPrevNestedItems();
179
+ }
180
+
181
+ toggleDropdown(): void {
182
+ this.isOpen = !this.isOpen;
183
+ }
184
+
185
+ closeDropdown(): void {
186
+ this.isOpen = false;
187
+ }
188
+
189
+ handleItemLinkKeyDown(e: KeyboardEvent): void {
190
+ if (isEnter(e) || isSpace(e)) {
191
+ e.preventDefault();
192
+ this.onItemClick();
193
+ }
194
+ }
195
+
196
+ handleItemButtonKeyDown(e: KeyboardEvent): void {
197
+ if (isEnter(e) || isSpace(e)) {
198
+ this.onShouldFocusFirstSubItem();
199
+ }
200
+ }
201
+
202
+ handleSubItemKeyDown(e: KeyboardEvent): void {
203
+ e.stopPropagation();
204
+ if (isEscape(e)) {
205
+ this.handleEscapeKey();
206
+ }
207
+ if (isLeft(e)) {
208
+ this.handleLeftArrow(e);
209
+ }
210
+ if (isRight(e)) {
211
+ this.handleRightArrow(e);
212
+ }
213
+ if (isUp(e)) {
214
+ e.preventDefault();
215
+ this.handleUpArrow(e);
216
+ }
217
+ if (isDown(e)) {
218
+ e.preventDefault();
219
+ this.handleDownArrow(e);
220
+ }
221
+ if (isHome(e)) {
222
+ e.preventDefault();
223
+ this.onFirstSubItemFocus();
224
+ }
225
+ if (isEnd(e)) {
226
+ e.preventDefault();
227
+ this.onLastSubItemFocus();
228
+ }
229
+ if (isEnter(e) || isSpace(e)) {
230
+ e.preventDefault();
231
+ this.handleEnterAndSpace(e);
232
+ }
233
+ }
234
+
235
+ handleUpArrow(e: KeyboardEvent): void {
236
+ const { index } = e.target as UDExSecondaryNavigationSubItem;
237
+ const lastIndex = this.domNavItems.length - 1;
238
+ const previousIndex = index - 1 < 0 ? lastIndex : index - 1;
239
+ if (!(lastIndex === previousIndex)) {
240
+ this.domNavItems[previousIndex].focus();
241
+ }
242
+ }
243
+
244
+ handleDownArrow(e: KeyboardEvent): void {
245
+ const { index } = e.target as UDExSecondaryNavigationSubItem;
246
+ const nextIndex = index + 1 > this.domNavItems.length - 1 ? 0 : index + 1;
247
+ if (!(nextIndex === 0)) {
248
+ this.domNavItems[nextIndex].focus();
249
+ }
250
+ }
251
+
252
+ handleLeftArrow(e: KeyboardEvent): void {
253
+ const { isBack } = e.target as UDExSecondaryNavigationSubItem;
254
+ if (isBack) {
255
+ this.setPrevNestedItems();
256
+ this.onShouldFocusFirstSubItem();
257
+ }
258
+ }
259
+
260
+ handleRightArrow(e: KeyboardEvent): void {
261
+ const { hasItems, isBack } = e.target as UDExSecondaryNavigationSubItem;
262
+ if (hasItems && !isBack) {
263
+ this.onSubItemClick(e);
264
+ this.onShouldFocusFirstSubItem();
265
+ }
266
+ }
267
+
268
+ handleEnterAndSpace(e: KeyboardEvent): void {
269
+ const { hasItems, isBack } = e.target as UDExSecondaryNavigationSubItem;
270
+ if (isBack) {
271
+ this.onBackClick();
272
+ this.onShouldFocusFirstSubItem();
273
+ return;
274
+ }
275
+
276
+ this.onSubItemClick(e);
277
+
278
+ if (hasItems) {
279
+ this.onShouldFocusFirstSubItem();
280
+ } else {
281
+ this.closeDropdown();
282
+ this.focus();
283
+ }
284
+ }
285
+
286
+ handleEscapeKey(): void {
287
+ this.closeDropdown();
288
+ this.focus();
289
+ }
290
+
291
+ setDropdownHistory(): void {
292
+ this._dropdownHistory.push(this._processedItems);
293
+ }
294
+
295
+ setPrevNestedItems(): void {
296
+ this._processedItems = this._dropdownHistory.pop()!;
297
+ }
298
+
299
+ setNestedItems({ title, items, mobileLinkTitle } : NavItem): void {
300
+ if (items) {
301
+ this._processedItems = [{ title, mobileLinkTitle, isBack: true }, ...items];
302
+ }
303
+ }
304
+
305
+ setDropdownItems(): void {
306
+ this._processedItems = this.subItems;
307
+ }
308
+
309
+ onFirstSubItemFocus(): void {
310
+ this.domNavItems[0].focus();
311
+ }
312
+
313
+ onLastSubItemFocus(): void {
314
+ this.domNavItems[this.domNavItems.length - 1].focus();
315
+ }
316
+
317
+ onShouldFocusFirstSubItem(): void {
318
+ this._shouldFocusFirstSubItem = true;
319
+ }
320
+
321
+ get domNavItems(): Array<UDExSecondaryNavigationSubItem> {
322
+ const domNavItems = this.shadowRoot?.querySelectorAll<UDExSecondaryNavigationSubItem>("udex-secondary-navigation-sub-item");
323
+ return domNavItems ? Array.from(domNavItems) : [];
324
+ }
325
+
326
+ get hasNestedItems(): boolean {
327
+ return this.subItems.length > 0;
328
+ }
329
+
330
+ get isSubItemActive(): boolean {
331
+ return !!this.subActiveItem?.active;
332
+ }
333
+
334
+ get isActive(): boolean {
335
+ return this.isSubItemActive || this.active;
336
+ }
337
+
338
+ get subActiveItemTitle(): string | undefined {
339
+ if (this.subActiveItem) {
340
+ const { title, mobileLinkTitle } = this.subActiveItem;
341
+ return this._isMobileView ? mobileLinkTitle : title;
342
+ }
343
+ }
344
+
345
+ get subActiveItem(): NavItem | undefined {
346
+ return this.getActiveSubItem(this.subItems);
347
+ }
348
+
349
+ get isLink(): boolean {
350
+ return !this.hasNestedItems && !!this.path;
351
+ }
352
+
353
+ get itemRole(): string {
354
+ return this.role ? this.role : this.menuItemRole;
355
+ }
356
+
357
+ get menuItemRole(): string {
358
+ return menuItemRole;
359
+ }
360
+
361
+ get title(): string {
362
+ return this.label;
363
+ }
364
+ }
365
+
366
+ UDExSecondaryNavigationItem.define();
367
+
368
+ export default UDExSecondaryNavigationItem;
@@ -0,0 +1,153 @@
1
+ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
+ import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
3
+ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
4
+ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
5
+ import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
6
+ import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
7
+ import ResizeHandler, { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
8
+ import { breakpointSizeS } from "./SecondaryNavigation.js";
9
+
10
+ export enum Target {
11
+ _blank = "_blank",
12
+ _parent = "_parent",
13
+ _self = "_self",
14
+ _top = "_top",
15
+ }
16
+
17
+ export type NavItem = {
18
+ path?: string;
19
+ mobileLinkTitle: string;
20
+ target?: Target;
21
+ title: string;
22
+ active?: boolean;
23
+ isBack?: boolean;
24
+ items?: Array<NavItem>;
25
+ }
26
+
27
+ /**
28
+ * @class
29
+ *
30
+ * A class to serve as a foundation
31
+ * for the <code>UDExSecondaryNavigationItem</code> and <code>UDExSecondaryNavigationSubItem</code> classes.
32
+ *
33
+ * @constructor
34
+ * @author SAP SE
35
+ * @extends UI5Element
36
+ * @public
37
+ */
38
+
39
+ @customElement({
40
+ renderer: litRender,
41
+ })
42
+
43
+ class UDExSecondaryNavigationItemBase extends UI5Element {
44
+ /**
45
+ * Defines an aria label for item
46
+ *
47
+ * @public
48
+ */
49
+ @property({ type: String })
50
+ mobileLinkTitle!: string;
51
+
52
+ /**
53
+ * Defines active state for the item
54
+ *
55
+ * @public
56
+ */
57
+ @property({ type: Boolean })
58
+ active!: boolean;
59
+
60
+ /**
61
+ * Defines path for the item
62
+ *
63
+ * @public
64
+ */
65
+ @property({ type: String })
66
+ path!: string;
67
+
68
+ /**
69
+ * Defines target for the item
70
+ *
71
+ * @public
72
+ */
73
+ @property({ type: Target, defaultValue: Target._self })
74
+ target!: Target;
75
+
76
+ /**
77
+ * Defines subTitle for the item
78
+ *
79
+ * @public
80
+ */
81
+ @property({ type: String })
82
+ subTitle!: string;
83
+
84
+ /**
85
+ * Defines label for the item
86
+ *
87
+ * @public
88
+ */
89
+ @property({ type: String })
90
+ label!: string;
91
+
92
+ /**
93
+ * Defines the index for the item.
94
+ *
95
+ * @public
96
+ */
97
+ @property({ validator: Integer })
98
+ index!: number;
99
+
100
+ @property({ type: Boolean })
101
+ _isMobileView!: boolean;
102
+
103
+ _handleResizeBound: ResizeObserverCallback;
104
+
105
+ constructor() {
106
+ super();
107
+ this._isMobileView = this.isMobile;
108
+ this._handleResizeBound = this._handleResize.bind(this);
109
+ }
110
+
111
+ _handleResize(): void {
112
+ this._isMobileView = this.isMobile;
113
+ }
114
+
115
+ onEnterDOM(): void {
116
+ if (isDesktop()) {
117
+ this.setAttribute("desktop", "");
118
+ }
119
+ ResizeHandler.register(this, this._handleResizeBound);
120
+ }
121
+
122
+ onExitDOM(): void {
123
+ ResizeHandler.deregister(this, this._handleResizeBound);
124
+ }
125
+
126
+ getActiveSubItem(data: Array<NavItem>): NavItem | undefined {
127
+ let activeItem;
128
+ const findActiveItem = (array: Array<NavItem>) => {
129
+ array.forEach(item => {
130
+ if (item.active === true) {
131
+ activeItem = item;
132
+ return;
133
+ }
134
+ if (item.items) {
135
+ findActiveItem(item.items);
136
+ }
137
+ });
138
+ };
139
+
140
+ findActiveItem(data);
141
+ return activeItem;
142
+ }
143
+
144
+ get itemLabel(): string {
145
+ return this._isMobileView ? this.mobileLinkTitle : this.label;
146
+ }
147
+
148
+ get isMobile(): boolean {
149
+ return window.innerWidth <= breakpointSizeS;
150
+ }
151
+ }
152
+
153
+ export default UDExSecondaryNavigationItemBase;
@@ -0,0 +1,44 @@
1
+ {{#if isBack}}
2
+ <button
3
+ @click="{{onBackItemClick}}"
4
+ role="menuitem"
5
+ aria-label="{{backButtonAriaLabel}}"
6
+ aria-haspopup="true"
7
+ is-back
8
+ class="udex-secondary-navigation__dropdown-item">
9
+ <ui5-icon
10
+ class="udex-secondary-navigation__dropdown-icon udex-secondary-navigation__dropdown-icon_back"
11
+ name="slim-arrow-left">
12
+ </ui5-icon>
13
+ {{itemLabel}}
14
+ </button>
15
+ {{else}}
16
+ {{#if isButton}}
17
+ <button
18
+ @click="{{onItemClick}}"
19
+ role="menuitem"
20
+ aria-haspopup="{{hasItems}}"
21
+ ?sub-active="{{isSubItemActive}}"
22
+ aria-label="{{label}}"
23
+ ?active="{{isActive}}"
24
+ class="udex-secondary-navigation__dropdown-item">
25
+ {{itemLabel}}
26
+ {{#if hasItems}}
27
+ <ui5-icon
28
+ class="udex-secondary-navigation__dropdown-icon"
29
+ name="slim-arrow-right">
30
+ </ui5-icon>
31
+ {{/if}}
32
+ </button>
33
+ {{else}}
34
+ <a
35
+ @click="{{onItemClick}}"
36
+ role="menuitem"
37
+ href="{{path}}"
38
+ target="{{target}}"
39
+ ?active="{{isActive}}"
40
+ class="udex-secondary-navigation__dropdown-item">
41
+ {{itemLabel}}
42
+ </a>
43
+ {{/if}}
44
+ {{/if}}
@@ -0,0 +1,127 @@
1
+ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
2
+ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
3
+ import event from "@ui5/webcomponents-base/dist/decorators/event.js";
4
+ import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
5
+ import UI5Icon from "@ui5/webcomponents/dist/Icon.js";
6
+ import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
7
+ import "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
8
+ import "@ui5/webcomponents-icons/dist/slim-arrow-left.js";
9
+ import UDExSecondaryNavigationItemBase, { NavItem } from "./SecondaryNavigationItemBase.js";
10
+ import { BACK_BUTTON_LABEL } from "./generated/i18n/i18n-defaults.js";
11
+
12
+ import SecondaryNavigationSubItemTemplate from "./generated/templates/SecondaryNavigationSubItemTemplate.lit.js";
13
+
14
+ // Styles
15
+ import SecondaryNavigationSubItemCss from "./generated/themes/SecondaryNavigationSubItem.css.js";
16
+
17
+ /**
18
+ * @class
19
+ *
20
+ * <h3 class="comment-api-title">Overview</h3>
21
+ *
22
+ *
23
+ * <h3>Usage</h3>
24
+ *
25
+ * For the <code>udex-secondary-navigation-sub-item</code>
26
+ * <h3>ES6 Module Import</h3>
27
+ *
28
+ * <code>import "@udex/web-components/dist/SecondaryNavigationSubItem.js";</code>
29
+ *
30
+ * @constructor
31
+ * @extends UDExSecondaryNavigationItemBase
32
+ * @tagname udex-secondary-navigation-sub-item
33
+ * @public
34
+ */
35
+ @customElement({
36
+ tag: "udex-secondary-navigation-sub-item",
37
+ renderer: litRender,
38
+ styles: SecondaryNavigationSubItemCss,
39
+ template: SecondaryNavigationSubItemTemplate,
40
+ dependencies: [UI5Icon],
41
+ })
42
+
43
+ /**
44
+ * Fires when item is clicked
45
+ *
46
+ * @allowPreventDefault
47
+ * @public
48
+ */
49
+ @event("sub-item-click", {
50
+ detail: {
51
+ item: { type: HTMLElement },
52
+ },
53
+ })
54
+
55
+ /**
56
+ * Fires when back item is clicked
57
+ *
58
+ * @allowPreventDefault
59
+ * @public
60
+ */
61
+ @event("back-item-click")
62
+
63
+ class UDExSecondaryNavigationSubItem extends UDExSecondaryNavigationItemBase {
64
+ /**
65
+ * Defines active item.
66
+ *
67
+ * @public
68
+ * @default false
69
+ */
70
+ @property({ type: Boolean })
71
+ isActive!: boolean;
72
+
73
+ /**
74
+ * Defines back item.
75
+ *
76
+ * @public
77
+ * @default false
78
+ */
79
+ @property({ type: Boolean })
80
+ isBack!: boolean;
81
+
82
+ /**
83
+ * List of the nested items
84
+ *
85
+ * @default "[]"
86
+ * @public
87
+ */
88
+ @property({ type: Object, multiple: true })
89
+ nestedItems!: Array<NavItem>;
90
+
91
+ static i18nBundle: any;
92
+
93
+ static async onDefine(): Promise<void> {
94
+ UDExSecondaryNavigationSubItem.i18nBundle = await getI18nBundle("udex-secondary-navigation-sub-item");
95
+ }
96
+
97
+ onItemClick(): void {
98
+ this.fireEvent("sub-item-click", {
99
+ item: this,
100
+ });
101
+ }
102
+
103
+ onBackItemClick(): void {
104
+ this.fireEvent("back-item-click");
105
+ }
106
+
107
+ get hasItems(): boolean {
108
+ return !!this.nestedItems.length;
109
+ }
110
+
111
+ get isButton(): boolean {
112
+ return this.hasItems || !this.path;
113
+ }
114
+
115
+ get isSubItemActive(): boolean {
116
+ return !!this.getActiveSubItem(this.nestedItems)?.active;
117
+ }
118
+
119
+ get backButtonAriaLabel(): string {
120
+ const label = UDExSecondaryNavigationSubItem.i18nBundle.getText(BACK_BUTTON_LABEL) as string;
121
+ return `${label} ${this.itemLabel}`;
122
+ }
123
+ }
124
+
125
+ UDExSecondaryNavigationSubItem.define();
126
+
127
+ export default UDExSecondaryNavigationSubItem;