@sapudex/web-components 2.61.0 → 2.63.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 (467) hide show
  1. package/cypress/specs/AccordionSpotlight.cy.tsx +43 -2
  2. package/cypress/specs/Carousel.cy.tsx +88 -0
  3. package/cypress/specs/CountrySelector.cy.tsx +233 -6
  4. package/cypress/specs/FilterMenu.cy.tsx +39 -45
  5. package/cypress/specs/List.cy.tsx +624 -10
  6. package/cypress/specs/ListItem.cy.tsx +50 -0
  7. package/cypress/specs/MastheadCountrySelector.cy.tsx +177 -0
  8. package/cypress/specs/SelectBox.cy.tsx +239 -131
  9. package/cypress/specs/SelectBoxAccessibility.cy.tsx +3109 -0
  10. package/cypress/specs/SideNavigation.cy.tsx +49 -0
  11. package/cypress/specs/SideNavigationMobile.cy.tsx +69 -0
  12. package/cypress/specs/TagGroup.cy.tsx +168 -0
  13. package/cypress/support/component-imports.instrumented.ts +4 -0
  14. package/cypress/support/component-imports.src.ts +4 -0
  15. package/dist/AccordionItemTemplate.js +1 -1
  16. package/dist/AccordionItemTemplate.js.map +1 -1
  17. package/dist/AccordionSpotlight.d.ts +7 -2
  18. package/dist/AccordionSpotlight.js +31 -6
  19. package/dist/AccordionSpotlight.js.map +1 -1
  20. package/dist/AccordionSpotlightItem.d.ts +3 -1
  21. package/dist/AccordionSpotlightItem.js +3 -1
  22. package/dist/AccordionSpotlightItem.js.map +1 -1
  23. package/dist/Carousel.d.ts +1 -0
  24. package/dist/Carousel.js +19 -3
  25. package/dist/Carousel.js.map +1 -1
  26. package/dist/CountrySelector.js +1 -3
  27. package/dist/CountrySelector.js.map +1 -1
  28. package/dist/List.d.ts +2 -0
  29. package/dist/List.js +22 -4
  30. package/dist/List.js.map +1 -1
  31. package/dist/ListGroupHeader.js +5 -1
  32. package/dist/ListGroupHeader.js.map +1 -1
  33. package/dist/ListGroupHeaderBase.d.ts +2 -0
  34. package/dist/ListGroupHeaderBase.js +15 -2
  35. package/dist/ListGroupHeaderBase.js.map +1 -1
  36. package/dist/ListGroupHeaderTemplate.js +14 -22
  37. package/dist/ListGroupHeaderTemplate.js.map +1 -1
  38. package/dist/ListItem.d.ts +1 -2
  39. package/dist/ListItem.js +14 -12
  40. package/dist/ListItem.js.map +1 -1
  41. package/dist/ListItemBase.d.ts +5 -0
  42. package/dist/ListItemBase.js +11 -1
  43. package/dist/ListItemBase.js.map +1 -1
  44. package/dist/ListItemTemplate.js +1 -1
  45. package/dist/ListItemTemplate.js.map +1 -1
  46. package/dist/ListSelectAllTemplate.js +1 -1
  47. package/dist/ListSelectAllTemplate.js.map +1 -1
  48. package/dist/ListTemplate.js +2 -1
  49. package/dist/ListTemplate.js.map +1 -1
  50. package/dist/MastheadCountrySelector.d.ts +14 -0
  51. package/dist/MastheadCountrySelector.js +6 -0
  52. package/dist/MastheadCountrySelector.js.map +1 -1
  53. package/dist/MastheadCountrySelectorTemplate.js +1 -1
  54. package/dist/MastheadCountrySelectorTemplate.js.map +1 -1
  55. package/dist/MessageStrip.d.ts +1 -0
  56. package/dist/MessageStrip.js +6 -0
  57. package/dist/MessageStrip.js.map +1 -1
  58. package/dist/Search.d.ts +13 -3
  59. package/dist/Search.js +36 -11
  60. package/dist/Search.js.map +1 -1
  61. package/dist/SearchTemplate.js +1 -1
  62. package/dist/SearchTemplate.js.map +1 -1
  63. package/dist/SearchableListBase.d.ts +2 -0
  64. package/dist/SearchableListBase.js +13 -3
  65. package/dist/SearchableListBase.js.map +1 -1
  66. package/dist/SearchableListBaseTemplate.js +42 -33
  67. package/dist/SearchableListBaseTemplate.js.map +1 -1
  68. package/dist/SelectBase.d.ts +18 -33
  69. package/dist/SelectBase.js +124 -139
  70. package/dist/SelectBase.js.map +1 -1
  71. package/dist/SelectBox.d.ts +3 -0
  72. package/dist/SelectBox.js +19 -7
  73. package/dist/SelectBox.js.map +1 -1
  74. package/dist/SelectBoxTemplate.js +3 -3
  75. package/dist/SelectBoxTemplate.js.map +1 -1
  76. package/dist/SideNavigation.d.ts +9 -0
  77. package/dist/SideNavigation.js +9 -0
  78. package/dist/SideNavigation.js.map +1 -1
  79. package/dist/SideNavigationItem.js +2 -0
  80. package/dist/SideNavigationItem.js.map +1 -1
  81. package/dist/SideNavigationItemTemplate.d.ts +2 -0
  82. package/dist/SideNavigationItemTemplate.js +15 -0
  83. package/dist/SideNavigationItemTemplate.js.map +1 -0
  84. package/dist/SideNavigationMobile.d.ts +19 -0
  85. package/dist/SideNavigationMobile.js +33 -3
  86. package/dist/SideNavigationMobile.js.map +1 -1
  87. package/dist/SideNavigationMobileTemplate.js +1 -2
  88. package/dist/SideNavigationMobileTemplate.js.map +1 -1
  89. package/dist/SideNavigationSubItem.d.ts +4 -1
  90. package/dist/SideNavigationSubItem.js +22 -10
  91. package/dist/SideNavigationSubItem.js.map +1 -1
  92. package/dist/SideNavigationSubItemTemplate.js +1 -2
  93. package/dist/SideNavigationSubItemTemplate.js.map +1 -1
  94. package/dist/SideNavigationTemplate.d.ts +2 -0
  95. package/dist/SideNavigationTemplate.js +6 -0
  96. package/dist/SideNavigationTemplate.js.map +1 -0
  97. package/dist/TagGroup.d.ts +3 -0
  98. package/dist/TagGroup.js +31 -0
  99. package/dist/TagGroup.js.map +1 -1
  100. package/dist/TagGroupTemplate.js +1 -1
  101. package/dist/TagGroupTemplate.js.map +1 -1
  102. package/dist/assets/{InputSuggestions-1OnUn6pM.js → InputSuggestions-6S5UueXO.js} +2 -2
  103. package/dist/assets/{ListItemStandardExpandableTextTemplate-CoBAMp_v.js → ListItemStandardExpandableTextTemplate-OidrwM_d.js} +2 -2
  104. package/dist/assets/{bundle.esm-BqaVWFKf.js → bundle.esm-DaFsZANO.js} +237 -239
  105. package/dist/assets/messagebundle_ar-22dGHdkl.js +1 -0
  106. package/dist/assets/messagebundle_ar-DbxuUDUB.js +1 -0
  107. package/dist/assets/messagebundle_bg-CaaOz5e4.js +1 -0
  108. package/dist/assets/messagebundle_bg-QOUvq6-8.js +1 -0
  109. package/dist/assets/messagebundle_ca-D-8eSg1w.js +1 -0
  110. package/dist/assets/messagebundle_ca-jsUpFfNJ.js +1 -0
  111. package/dist/assets/messagebundle_cnr-BdSolJRo.js +1 -0
  112. package/dist/assets/messagebundle_cnr-rtr9Ox4O.js +1 -0
  113. package/dist/assets/messagebundle_cs-CbM7zJ23.js +1 -0
  114. package/dist/assets/messagebundle_cy-D5E7e9o1.js +1 -0
  115. package/dist/assets/messagebundle_cy-hajQLyoj.js +1 -0
  116. package/dist/assets/messagebundle_da-C3PD-hWQ.js +1 -0
  117. package/dist/assets/messagebundle_da-DFzvQYW2.js +1 -0
  118. package/dist/assets/messagebundle_de-C106E9io.js +1 -0
  119. package/dist/assets/messagebundle_de-C36z5lgV.js +1 -0
  120. package/dist/assets/messagebundle_el-BLHqa1_J.js +1 -0
  121. package/dist/assets/messagebundle_el-k8W9FVQI.js +1 -0
  122. package/dist/assets/messagebundle_en-ClXds397.js +1 -0
  123. package/dist/assets/messagebundle_en-DgPtAFO8.js +1 -0
  124. package/dist/assets/messagebundle_en_GB-DxulA9qE.js +1 -0
  125. package/dist/assets/messagebundle_en_GB-LxAIZigF.js +1 -0
  126. package/dist/assets/{messagebundle_en_US_sappsd-Se8GgI58.js → messagebundle_en_US_sappsd-TZz2y4pV.js} +1 -1
  127. package/dist/assets/messagebundle_en_US_sappsd-oE0A2op2.js +1 -0
  128. package/dist/assets/messagebundle_en_US_saprigi-C6FsbpF8.js +1 -0
  129. package/dist/assets/{messagebundle_en_US_saprigi-CbfvaHUL.js → messagebundle_en_US_saprigi-CkPhuOLS.js} +1 -1
  130. package/dist/assets/messagebundle_en_US_saptrc-CFSYKuS7.js +1 -0
  131. package/dist/assets/messagebundle_en_US_saptrc-CNZe1wPP.js +1 -0
  132. package/dist/assets/messagebundle_es-C3ijAvKG.js +1 -0
  133. package/dist/assets/messagebundle_es-wi4P-8Bo.js +1 -0
  134. package/dist/assets/messagebundle_es_MX-JEoOD2AD.js +1 -0
  135. package/dist/assets/messagebundle_es_MX-qDQ65ei9.js +1 -0
  136. package/dist/assets/messagebundle_et-C3wgDmm9.js +1 -0
  137. package/dist/assets/messagebundle_et-D4r4iubd.js +1 -0
  138. package/dist/assets/messagebundle_fi-BjyQcbRb.js +1 -0
  139. package/dist/assets/messagebundle_fi-CivJKH9k.js +1 -0
  140. package/dist/assets/messagebundle_fr-BxDSBfD5.js +1 -0
  141. package/dist/assets/messagebundle_fr-JN2VAe-b.js +1 -0
  142. package/dist/assets/messagebundle_fr_CA-FkrcsWH5.js +1 -0
  143. package/dist/assets/messagebundle_fr_CA-phd0XOeR.js +1 -0
  144. package/dist/assets/messagebundle_hi-B_pehoTp.js +1 -0
  145. package/dist/assets/messagebundle_hi-CVOoC3dA.js +1 -0
  146. package/dist/assets/messagebundle_hr-BYS-ya62.js +1 -0
  147. package/dist/assets/messagebundle_hr-DHuCJjK8.js +1 -0
  148. package/dist/assets/messagebundle_hu-Crn0Y1hl.js +1 -0
  149. package/dist/assets/messagebundle_hu-DJL3QHT4.js +1 -0
  150. package/dist/assets/messagebundle_id-BJEG-7Up.js +1 -0
  151. package/dist/assets/messagebundle_id-CgbG2IVb.js +1 -0
  152. package/dist/assets/messagebundle_it-B-E3gO1k.js +1 -0
  153. package/dist/assets/messagebundle_it-DHwy0JuE.js +1 -0
  154. package/dist/assets/messagebundle_iw-BFfL9nZy.js +1 -0
  155. package/dist/assets/messagebundle_iw-BgyHu_0a.js +1 -0
  156. package/dist/assets/messagebundle_ja-BDNEwBMO.js +1 -0
  157. package/dist/assets/messagebundle_ja-eyoqeb4r.js +1 -0
  158. package/dist/assets/messagebundle_kk-BA_1qhYv.js +1 -0
  159. package/dist/assets/messagebundle_kk-CTAXqbPN.js +1 -0
  160. package/dist/assets/messagebundle_ko-C1tsjQMn.js +1 -0
  161. package/dist/assets/messagebundle_ko-CkiNi7iV.js +1 -0
  162. package/dist/assets/messagebundle_lt-Dp0c8r7p.js +1 -0
  163. package/dist/assets/{messagebundle_lt-BGK5mpcm.js → messagebundle_lt-bNum-ekg.js} +1 -1
  164. package/dist/assets/messagebundle_lv-B9UWTGX9.js +1 -0
  165. package/dist/assets/messagebundle_lv-D02PBhtR.js +1 -0
  166. package/dist/assets/messagebundle_mk--Xt_Ciey.js +1 -0
  167. package/dist/assets/messagebundle_mk-D6s2Tr95.js +1 -0
  168. package/dist/assets/messagebundle_ms-BAqsvtp5.js +1 -0
  169. package/dist/assets/messagebundle_ms-BobJaFPp.js +1 -0
  170. package/dist/assets/messagebundle_nl-BJCykHj1.js +1 -0
  171. package/dist/assets/messagebundle_nl-Dj7LaMyb.js +1 -0
  172. package/dist/assets/messagebundle_no-CR_uQXUz.js +1 -0
  173. package/dist/assets/messagebundle_no-CnwJbEW8.js +1 -0
  174. package/dist/assets/messagebundle_pl-D6FQ-6EC.js +1 -0
  175. package/dist/assets/messagebundle_pl-eJC2NE6N.js +1 -0
  176. package/dist/assets/messagebundle_pt-CbdPbTKR.js +1 -0
  177. package/dist/assets/messagebundle_pt-n8LcOyWG.js +1 -0
  178. package/dist/assets/messagebundle_pt_PT-B17ziKL9.js +1 -0
  179. package/dist/assets/messagebundle_pt_PT-BVpS4lrC.js +1 -0
  180. package/dist/assets/messagebundle_ro-C0jrNva4.js +1 -0
  181. package/dist/assets/messagebundle_ro-ixITTbJt.js +1 -0
  182. package/dist/assets/messagebundle_ru-Bh6RMNe2.js +1 -0
  183. package/dist/assets/messagebundle_ru-Dbxms1Xm.js +1 -0
  184. package/dist/assets/messagebundle_sh-CMDXUWge.js +1 -0
  185. package/dist/assets/messagebundle_sh-Cb-sVI_0.js +1 -0
  186. package/dist/assets/messagebundle_sk-DZkkgRSd.js +1 -0
  187. package/dist/assets/{messagebundle_sk-CXOF1RuF.js → messagebundle_sk-Dqb_XwMg.js} +1 -1
  188. package/dist/assets/messagebundle_sl-DIl-2Lb1.js +1 -0
  189. package/dist/assets/messagebundle_sl-Dx6UWXni.js +1 -0
  190. package/dist/assets/messagebundle_sr-DstlyDjZ.js +1 -0
  191. package/dist/assets/messagebundle_sr-yQWBd9jR.js +1 -0
  192. package/dist/assets/messagebundle_sv-Dr2hDyEO.js +1 -0
  193. package/dist/assets/messagebundle_sv-iHKWgaRg.js +1 -0
  194. package/dist/assets/messagebundle_th-DbWfCb5y.js +1 -0
  195. package/dist/assets/messagebundle_th-yLU2SE6L.js +1 -0
  196. package/dist/assets/messagebundle_tr-CIoGg6uY.js +1 -0
  197. package/dist/assets/messagebundle_tr-lAQvvdUi.js +1 -0
  198. package/dist/assets/messagebundle_uk-DIBItAKu.js +1 -0
  199. package/dist/assets/messagebundle_uk-j_sqGY4D.js +1 -0
  200. package/dist/assets/messagebundle_vi-C40OW2eC.js +1 -0
  201. package/dist/assets/messagebundle_vi-xWTpoKPI.js +1 -0
  202. package/dist/assets/messagebundle_zh_CN-CmeOlVfl.js +1 -0
  203. package/dist/assets/messagebundle_zh_CN-U8Z0kuQb.js +1 -0
  204. package/dist/assets/messagebundle_zh_TW-B_1_vc8O.js +1 -0
  205. package/dist/assets/messagebundle_zh_TW-hwHN6ElU.js +1 -0
  206. package/dist/assets/{parameters-bundle.css-Cv89y49I.js → parameters-bundle.css-2ZsUlBNO.js} +299 -151
  207. package/dist/assets/parameters-bundle.css-31Bw5XOG.js +2 -0
  208. package/dist/assets/parameters-bundle.css-BJp4ZvSQ.js +2 -0
  209. package/dist/assets/{parameters-bundle.css-vNsSPPU5.js → parameters-bundle.css-BKlkVfkE.js} +742 -494
  210. package/dist/assets/parameters-bundle.css-BMOU75LU.js +2 -0
  211. package/dist/assets/parameters-bundle.css-BZF5sWSb.js +1 -0
  212. package/dist/assets/{parameters-bundle.css-DmEWEk0u.js → parameters-bundle.css-Bf1GOISM.js} +786 -513
  213. package/dist/assets/parameters-bundle.css-BpWLGMCI.js +2 -0
  214. package/dist/assets/parameters-bundle.css-BsoxE2UF.js +2 -0
  215. package/dist/assets/parameters-bundle.css-CAhrGUcA.js +2 -0
  216. package/dist/assets/{parameters-bundle.css-C3eDVARm.js → parameters-bundle.css-CDJt5bvS.js} +176 -89
  217. package/dist/assets/parameters-bundle.css-CIr3BQBD.js +2 -0
  218. package/dist/assets/parameters-bundle.css-CVUmNgQM.js +2 -0
  219. package/dist/assets/parameters-bundle.css-C_pu3Dce.js +2 -0
  220. package/dist/assets/parameters-bundle.css-ChtqHIDX.js +2 -0
  221. package/dist/assets/parameters-bundle.css-CvaMQVtq.js +1 -0
  222. package/dist/assets/parameters-bundle.css-Cwz89dEH.js +2 -0
  223. package/dist/assets/parameters-bundle.css-CyCovTbK.js +2 -0
  224. package/dist/assets/parameters-bundle.css-Cyf5K2-Q.js +2 -0
  225. package/dist/assets/parameters-bundle.css-DdDLbfHl.js +2 -0
  226. package/dist/assets/{parameters-bundle.css-C5V2Zp_F.js → parameters-bundle.css-Dfz9lgd6.js} +131 -95
  227. package/dist/assets/{parameters-bundle.css-K-MvKimD.js → parameters-bundle.css-DjW0INFD.js} +139 -88
  228. package/dist/assets/parameters-bundle.css-JyFiyY-_.js +2 -0
  229. package/dist/assets/parameters-bundle.css-tf-z7jv9.js +2 -0
  230. package/dist/css/themes/AccordionSpotlight.css +1 -1
  231. package/dist/css/themes/ListGroupHeader.css +1 -1
  232. package/dist/css/themes/MastheadShell.css +1 -1
  233. package/dist/css/themes/SideNavigation.css +1 -1
  234. package/dist/css/themes/SideNavigationItem.css +1 -1
  235. package/dist/css/themes/SideNavigationMobile.css +1 -1
  236. package/dist/css/themes/SideNavigationSubItem.css +1 -1
  237. package/dist/css/themes/Slider.css +1 -1
  238. package/dist/css/themes/Table.css +1 -1
  239. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +0 -1
  240. package/dist/css/themes/sap_glow/parameters-bundle.css +0 -1
  241. package/dist/css/themes/sap_horizon/parameters-bundle.css +0 -1
  242. package/dist/custom-elements-internal.json +1443 -7
  243. package/dist/custom-elements.json +1497 -28
  244. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  245. package/dist/generated/assets/themes/sap_glow/parameters-bundle.css.json +1 -1
  246. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  247. package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
  248. package/dist/generated/i18n/i18n-defaults.js +2 -1
  249. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  250. package/dist/generated/themes/AccordionSpotlight.css.d.ts +1 -1
  251. package/dist/generated/themes/AccordionSpotlight.css.js +1 -1
  252. package/dist/generated/themes/AccordionSpotlight.css.js.map +1 -1
  253. package/dist/generated/themes/ListGroupHeader.css.d.ts +1 -1
  254. package/dist/generated/themes/ListGroupHeader.css.js +1 -1
  255. package/dist/generated/themes/ListGroupHeader.css.js.map +1 -1
  256. package/dist/generated/themes/MastheadShell.css.d.ts +1 -1
  257. package/dist/generated/themes/MastheadShell.css.js +1 -1
  258. package/dist/generated/themes/MastheadShell.css.js.map +1 -1
  259. package/dist/generated/themes/SideNavigation.css.d.ts +1 -1
  260. package/dist/generated/themes/SideNavigation.css.js +1 -1
  261. package/dist/generated/themes/SideNavigation.css.js.map +1 -1
  262. package/dist/generated/themes/SideNavigationItem.css.d.ts +1 -1
  263. package/dist/generated/themes/SideNavigationItem.css.js +1 -1
  264. package/dist/generated/themes/SideNavigationItem.css.js.map +1 -1
  265. package/dist/generated/themes/SideNavigationMobile.css.d.ts +1 -1
  266. package/dist/generated/themes/SideNavigationMobile.css.js +1 -1
  267. package/dist/generated/themes/SideNavigationMobile.css.js.map +1 -1
  268. package/dist/generated/themes/SideNavigationSubItem.css.d.ts +1 -1
  269. package/dist/generated/themes/SideNavigationSubItem.css.js +1 -1
  270. package/dist/generated/themes/SideNavigationSubItem.css.js.map +1 -1
  271. package/dist/generated/themes/Slider.css.d.ts +1 -1
  272. package/dist/generated/themes/Slider.css.js +1 -1
  273. package/dist/generated/themes/Slider.css.js.map +1 -1
  274. package/dist/generated/themes/Table.css.d.ts +1 -1
  275. package/dist/generated/themes/Table.css.js +1 -1
  276. package/dist/generated/themes/Table.css.js.map +1 -1
  277. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  278. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  279. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  280. package/dist/generated/themes/sap_glow/parameters-bundle.css.d.ts +1 -1
  281. package/dist/generated/themes/sap_glow/parameters-bundle.css.js +1 -1
  282. package/dist/generated/themes/sap_glow/parameters-bundle.css.js.map +1 -1
  283. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  284. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  285. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  286. package/dist/messagebundle.properties +3 -0
  287. package/dist/vscode.html-custom-data.json +16 -6
  288. package/dist/web-types.json +41 -11
  289. package/package.json +8 -8
  290. package/src/AccordionItemTemplate.tsx +1 -0
  291. package/src/AccordionSpotlight.ts +35 -6
  292. package/src/AccordionSpotlightItem.ts +3 -1
  293. package/src/Carousel.ts +22 -3
  294. package/src/CountrySelector.ts +1 -3
  295. package/src/List.ts +21 -4
  296. package/src/ListGroupHeader.ts +5 -1
  297. package/src/ListGroupHeaderBase.ts +16 -2
  298. package/src/ListGroupHeaderTemplate.tsx +29 -47
  299. package/src/ListItem.ts +14 -13
  300. package/src/ListItemBase.ts +14 -1
  301. package/src/ListItemTemplate.tsx +4 -4
  302. package/src/ListSelectAllTemplate.tsx +10 -8
  303. package/src/ListTemplate.tsx +14 -10
  304. package/src/MastheadCountrySelector.ts +18 -0
  305. package/src/MastheadCountrySelectorTemplate.tsx +2 -0
  306. package/src/MessageStrip.ts +7 -0
  307. package/src/Search.ts +48 -13
  308. package/src/SearchTemplate.tsx +3 -1
  309. package/src/SearchableListBase.ts +15 -3
  310. package/src/SearchableListBaseTemplate.tsx +54 -39
  311. package/src/SelectBase.ts +130 -144
  312. package/src/SelectBox.ts +21 -7
  313. package/src/SelectBoxTemplate.tsx +10 -9
  314. package/src/SideNavigation.ts +17 -0
  315. package/src/SideNavigationItem.ts +2 -0
  316. package/src/SideNavigationItemTemplate.tsx +97 -0
  317. package/src/SideNavigationMobile.ts +53 -2
  318. package/src/SideNavigationMobileTemplate.tsx +3 -5
  319. package/src/SideNavigationSubItem.ts +19 -6
  320. package/src/SideNavigationSubItemTemplate.tsx +10 -7
  321. package/src/SideNavigationTemplate.tsx +17 -0
  322. package/src/TagGroup.ts +32 -0
  323. package/src/TagGroupTemplate.tsx +1 -1
  324. package/src/generated/i18n/i18n-defaults.ts +2 -2
  325. package/src/generated/themes/AccordionSpotlight.css.ts +1 -1
  326. package/src/generated/themes/ListGroupHeader.css.ts +1 -1
  327. package/src/generated/themes/MastheadShell.css.ts +1 -1
  328. package/src/generated/themes/SideNavigation.css.ts +1 -1
  329. package/src/generated/themes/SideNavigationItem.css.ts +1 -1
  330. package/src/generated/themes/SideNavigationMobile.css.ts +1 -1
  331. package/src/generated/themes/SideNavigationSubItem.css.ts +1 -1
  332. package/src/generated/themes/Slider.css.ts +1 -1
  333. package/src/generated/themes/Table.css.ts +1 -1
  334. package/src/generated/themes/sap_fiori_3/parameters-bundle.css.ts +1 -1
  335. package/src/generated/themes/sap_glow/parameters-bundle.css.ts +1 -1
  336. package/src/generated/themes/sap_horizon/parameters-bundle.css.ts +1 -1
  337. package/src/i18n/messagebundle.properties +3 -0
  338. package/src/themes/AccordionSpotlight.css +9 -9
  339. package/src/themes/ListGroupHeader.css +2 -43
  340. package/src/themes/MastheadShell.css +13 -1
  341. package/src/themes/SideNavigation.css +43 -8
  342. package/src/themes/SideNavigationItem.css +56 -6
  343. package/src/themes/SideNavigationMobile.css +62 -15
  344. package/src/themes/SideNavigationSubItem.css +14 -109
  345. package/src/themes/Slider.css +25 -11
  346. package/src/themes/Table.css +6 -1
  347. package/dist/assets/messagebundle_ar-C3EXytoC.js +0 -1
  348. package/dist/assets/messagebundle_ar-DmZrrjEF.js +0 -1
  349. package/dist/assets/messagebundle_bg-BaZ97Q_b.js +0 -1
  350. package/dist/assets/messagebundle_bg-CgU7GPvK.js +0 -1
  351. package/dist/assets/messagebundle_ca-BwjVUbUA.js +0 -1
  352. package/dist/assets/messagebundle_ca-YiUGbO_8.js +0 -1
  353. package/dist/assets/messagebundle_cnr-CN2hPZIN.js +0 -1
  354. package/dist/assets/messagebundle_cnr-zdEdPJvc.js +0 -1
  355. package/dist/assets/messagebundle_cs-CGbnEjza.js +0 -1
  356. package/dist/assets/messagebundle_cy-BF0YH9Iz.js +0 -1
  357. package/dist/assets/messagebundle_cy-CUiGsjO6.js +0 -1
  358. package/dist/assets/messagebundle_da-CWKLQJiq.js +0 -1
  359. package/dist/assets/messagebundle_da-bTkr4pUc.js +0 -1
  360. package/dist/assets/messagebundle_de-BmnClk4G.js +0 -1
  361. package/dist/assets/messagebundle_de-vB6qhgvG.js +0 -1
  362. package/dist/assets/messagebundle_el-DKdItEgW.js +0 -1
  363. package/dist/assets/messagebundle_el-Gv1Ly8aj.js +0 -1
  364. package/dist/assets/messagebundle_en-DbKo-Dkl.js +0 -1
  365. package/dist/assets/messagebundle_en-DcV886MF.js +0 -1
  366. package/dist/assets/messagebundle_en_GB-Be93_Z4H.js +0 -1
  367. package/dist/assets/messagebundle_en_GB-CFh7e8hQ.js +0 -1
  368. package/dist/assets/messagebundle_en_US_sappsd-HCarC-Yr.js +0 -1
  369. package/dist/assets/messagebundle_en_US_saprigi-CCHFk7YZ.js +0 -1
  370. package/dist/assets/messagebundle_en_US_saptrc-B8AIRzlo.js +0 -1
  371. package/dist/assets/messagebundle_en_US_saptrc-yJ3PcdEm.js +0 -1
  372. package/dist/assets/messagebundle_es-BH-a8BxO.js +0 -1
  373. package/dist/assets/messagebundle_es-Dt93wbGV.js +0 -1
  374. package/dist/assets/messagebundle_es_MX-BedlYlF3.js +0 -1
  375. package/dist/assets/messagebundle_es_MX-COPqooo9.js +0 -1
  376. package/dist/assets/messagebundle_et-BsYgDw46.js +0 -1
  377. package/dist/assets/messagebundle_et-UwpqUE-p.js +0 -1
  378. package/dist/assets/messagebundle_fi-BN3UWEz0.js +0 -1
  379. package/dist/assets/messagebundle_fi-Cwf7Puui.js +0 -1
  380. package/dist/assets/messagebundle_fr-43w09LAE.js +0 -1
  381. package/dist/assets/messagebundle_fr-CVRaf9_H.js +0 -1
  382. package/dist/assets/messagebundle_fr_CA-BM04X6xU.js +0 -1
  383. package/dist/assets/messagebundle_fr_CA-CdnVYumi.js +0 -1
  384. package/dist/assets/messagebundle_hi-DfeonbAH.js +0 -1
  385. package/dist/assets/messagebundle_hi-JRJlP9Uh.js +0 -1
  386. package/dist/assets/messagebundle_hr-CKOnn34q.js +0 -1
  387. package/dist/assets/messagebundle_hr-CbyIBlH3.js +0 -1
  388. package/dist/assets/messagebundle_hu-DF1gQudE.js +0 -1
  389. package/dist/assets/messagebundle_hu-D_IQ9kTy.js +0 -1
  390. package/dist/assets/messagebundle_id-B0K1usj4.js +0 -1
  391. package/dist/assets/messagebundle_id-gDJYoaGq.js +0 -1
  392. package/dist/assets/messagebundle_it-B80_R2Ih.js +0 -1
  393. package/dist/assets/messagebundle_it-CVqU4g6t.js +0 -1
  394. package/dist/assets/messagebundle_iw-BoelOIS4.js +0 -1
  395. package/dist/assets/messagebundle_iw-iMDtLxaa.js +0 -1
  396. package/dist/assets/messagebundle_ja-BlRbv4vb.js +0 -1
  397. package/dist/assets/messagebundle_ja-BrDH-19-.js +0 -1
  398. package/dist/assets/messagebundle_kk-C7VPek1-.js +0 -1
  399. package/dist/assets/messagebundle_kk-DhAT_bim.js +0 -1
  400. package/dist/assets/messagebundle_ko-CIqP8x6n.js +0 -1
  401. package/dist/assets/messagebundle_ko-DgD6uyZ5.js +0 -1
  402. package/dist/assets/messagebundle_lt-BV0kKrY0.js +0 -1
  403. package/dist/assets/messagebundle_lv-5IcjoxWD.js +0 -1
  404. package/dist/assets/messagebundle_lv-DDBi7iKe.js +0 -1
  405. package/dist/assets/messagebundle_mk-BUrn04sZ.js +0 -1
  406. package/dist/assets/messagebundle_mk-P5veRdg2.js +0 -1
  407. package/dist/assets/messagebundle_ms-9VDLR5en.js +0 -1
  408. package/dist/assets/messagebundle_ms-CB8sQUg2.js +0 -1
  409. package/dist/assets/messagebundle_nl-BaAgPO7h.js +0 -1
  410. package/dist/assets/messagebundle_nl-f1Up3dB9.js +0 -1
  411. package/dist/assets/messagebundle_no-C-_ldp7o.js +0 -1
  412. package/dist/assets/messagebundle_no-DRSqWQ-C.js +0 -1
  413. package/dist/assets/messagebundle_pl-BQoPaokq.js +0 -1
  414. package/dist/assets/messagebundle_pl-DBO1atMe.js +0 -1
  415. package/dist/assets/messagebundle_pt-BNEglYxa.js +0 -1
  416. package/dist/assets/messagebundle_pt-DgAMHmW-.js +0 -1
  417. package/dist/assets/messagebundle_pt_PT-BtYzp9KB.js +0 -1
  418. package/dist/assets/messagebundle_pt_PT-D1Ef8kUU.js +0 -1
  419. package/dist/assets/messagebundle_ro-CuDPp2fe.js +0 -1
  420. package/dist/assets/messagebundle_ro-D591wJ6f.js +0 -1
  421. package/dist/assets/messagebundle_ru-D0NridWi.js +0 -1
  422. package/dist/assets/messagebundle_ru-I8YLCfrn.js +0 -1
  423. package/dist/assets/messagebundle_sh-BswdbSRi.js +0 -1
  424. package/dist/assets/messagebundle_sh-Dw2y_oct.js +0 -1
  425. package/dist/assets/messagebundle_sk-BG4S4ZVk.js +0 -1
  426. package/dist/assets/messagebundle_sl-CAnJO_8X.js +0 -1
  427. package/dist/assets/messagebundle_sl-kpVWxIp_.js +0 -1
  428. package/dist/assets/messagebundle_sr-BTWvO8VQ.js +0 -1
  429. package/dist/assets/messagebundle_sr-VJmRSdj4.js +0 -1
  430. package/dist/assets/messagebundle_sv-B-RCgnW_.js +0 -1
  431. package/dist/assets/messagebundle_sv-Bd4wCcDb.js +0 -1
  432. package/dist/assets/messagebundle_th-CMHmLdI3.js +0 -1
  433. package/dist/assets/messagebundle_th-CZ1imsCy.js +0 -1
  434. package/dist/assets/messagebundle_tr-BfWAYIdW.js +0 -1
  435. package/dist/assets/messagebundle_tr-D-BnBirv.js +0 -1
  436. package/dist/assets/messagebundle_uk-DhxIThVl.js +0 -1
  437. package/dist/assets/messagebundle_uk-HU8hI0yj.js +0 -1
  438. package/dist/assets/messagebundle_vi-BUTqUKd4.js +0 -1
  439. package/dist/assets/messagebundle_vi-D1El4_Wj.js +0 -1
  440. package/dist/assets/messagebundle_zh_CN-Dt0azUea.js +0 -1
  441. package/dist/assets/messagebundle_zh_CN-Ofgx2uXY.js +0 -1
  442. package/dist/assets/messagebundle_zh_TW-5lv7yYS1.js +0 -1
  443. package/dist/assets/messagebundle_zh_TW-LSErOAsd.js +0 -1
  444. package/dist/assets/parameters-bundle.css-B68EyCuR.js +0 -278
  445. package/dist/assets/parameters-bundle.css-BkJSEiFx.js +0 -278
  446. package/dist/assets/parameters-bundle.css-CI4HNvFw.js +0 -1
  447. package/dist/assets/parameters-bundle.css-COeynv6D.js +0 -277
  448. package/dist/assets/parameters-bundle.css-CRa5DITh.js +0 -1
  449. package/dist/assets/parameters-bundle.css-CnIzAMdG.js +0 -3
  450. package/dist/assets/parameters-bundle.css-CsV5qbZp.js +0 -3
  451. package/dist/assets/parameters-bundle.css-DCvHNL3s.js +0 -3
  452. package/dist/assets/parameters-bundle.css-DK40uKOQ.js +0 -3
  453. package/dist/assets/parameters-bundle.css-DMfTAqMv.js +0 -2
  454. package/dist/assets/parameters-bundle.css-DO35k9r0.js +0 -2
  455. package/dist/assets/parameters-bundle.css-Df7wtRW4.js +0 -2
  456. package/dist/assets/parameters-bundle.css-DvAfqdlT.js +0 -3
  457. package/dist/assets/parameters-bundle.css-KoXGNyLG.js +0 -3
  458. package/dist/assets/parameters-bundle.css-P_M_rm9z.js +0 -3
  459. package/dist/assets/parameters-bundle.css-UJIxXHL5.js +0 -2
  460. package/dist/assets/parameters-bundle.css-co26r5Nz.js +0 -3
  461. package/dist/assets/parameters-bundle.css-uT62L0va.js +0 -3
  462. package/dist/css/themes/SideNavigationMobileDropdown.css +0 -1
  463. package/dist/generated/themes/SideNavigationMobileDropdown.css.d.ts +0 -2
  464. package/dist/generated/themes/SideNavigationMobileDropdown.css.js +0 -8
  465. package/dist/generated/themes/SideNavigationMobileDropdown.css.js.map +0 -1
  466. package/src/generated/themes/SideNavigationMobileDropdown.css.ts +0 -9
  467. package/src/themes/SideNavigationMobileDropdown.css +0 -36
@@ -1,4 +1,4 @@
1
- import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "@ui5/webcomponents-base/jsx-runtime";
1
+ import { jsxs as _jsxs, jsx as _jsx } from "@ui5/webcomponents-base/jsx-runtime";
2
2
  import UDExTagGroup from "./TagGroup.js";
3
3
  import UDExTag from "./Tag.js";
4
4
  import UDExStatusMessage from "./StatusMessage.js";
@@ -9,7 +9,7 @@ import UI5PopoverHAlign from "@ui5/webcomponents/dist/types/PopoverHorizontalAli
9
9
  import { cleanLabel } from "./utils/listItemLabelUtils.js";
10
10
  import PopupAccessibleRole from "@ui5/webcomponents/dist/types/PopupAccessibleRole.js";
11
11
  export default function SelectBoxTemplate() {
12
- return (_jsx("div", { class: this._rootClass, children: _jsxs("div", { class: "udex-text-field__container", children: [_jsxs("div", { class: "udex-text-field__wrap", ...(this.displayonly ? { displayonly: "" } : {}), children: [this.showMultiSelectedOptions && renderTagGroup.call(this), _jsxs("div", { class: "udex-text-field__input", onFocusIn: this.handleInputFocusIn, onFocusOut: this.handleInputFocusOut, ...(this.readonly ? { readonly: "" } : {}), ...(this.isDisabled ? { disabled: "" } : {}), ...(this._open ? { open: "" } : {}), children: [this.label && (_jsxs(_Fragment, { children: [_jsxs("label", { for: "search-input", class: this.labelClass, children: [this.label, this.required && " * "] }), _jsx("span", { class: "hidden", id: `${this._id}-aria-describedby`, children: this.ariaDescribedbyText })] })), this.showImageFlags && this.countryFlag, _jsxs("div", { class: "udex-text-field__holder", children: [_jsx("input", { role: "combobox", type: "text", id: "search-input", name: "search", class: "udex-text-field__search", value: this._inputValue, onInput: this.handleSearchChange, onClick: this.handleInputClick, onKeyDown: this.handleKeyDownSearch, disabled: this.isDisabled, readonly: this.isReadOrDisplayOnly, "aria-label": this.accInfo.ariaLabel, "aria-readonly": this.isReadOrDisplayOnly, "aria-disabled": this.disabled, "aria-required": this.required, "aria-haspopup": this.listboxRole, "aria-controls": this.listAriaControlsId, "aria-expanded": this._open, "aria-activedescendant": this._activeDescendantItem ? this._activeDescendantItem._id : undefined, "aria-autocomplete": this._ariaAutoComplete, "aria-describedby": `${this._id}-aria-describedby`, autocomplete: "off" }), this._selectedOption && (_jsx("div", { class: "udex-text-field__text-holder", children: _jsx("span", { class: "udex-text-field__single-label", "aria-hidden": "true", dangerouslySetInnerHTML: { __html: this._selectedOption } }) }))] }), !this.displayonly && (_jsx("button", { onClick: this.handleButtonClick, disabled: this.isDisabled, "aria-label": this.accInfo.ariaLabel, class: "udex-text-field__trigger", tabindex: -1, children: _jsx(UI5Icon, { mode: "Decorative", name: "navigation-down-arrow" }) })), _jsxs(UI5Popover, { id: this.popoverId, accessibleRole: PopupAccessibleRole.None, "allow-target-overlap": this.allowTargetOverlap, onKeyDown: this.handleKeyDownDropdown, ...{
12
+ return (_jsx("div", { class: this._rootClass, children: _jsxs("div", { class: "udex-text-field__container", children: [_jsxs("div", { class: "udex-text-field__wrap", ...(this.displayonly ? { displayonly: "" } : {}), children: [this.showMultiSelectedOptions && renderTagGroup.call(this), _jsxs("div", { class: "udex-text-field__input", onFocusIn: this.handleInputFocusIn, onFocusOut: this.handleInputFocusOut, ...(this.readonly ? { readonly: "" } : {}), ...(this.isDisabled ? { disabled: "" } : {}), ...(this._open ? { open: "" } : {}), children: [this.label && (_jsxs("label", { for: "search-input", class: this.labelClass, children: [this.label, this.required && " * "] })), _jsx("span", { class: "hidden", id: `${this._id}-aria-describedby`, children: this.ariaDescribedbyText }), this.showImageFlags && this.countryFlag, _jsxs("div", { class: "udex-text-field__holder", children: [_jsx("input", { role: "combobox", type: "text", id: "search-input", name: "search", class: "udex-text-field__search", value: this._inputValue, onInput: this.handleSearchChange, onClick: this.handleInputClick, onKeyDown: this.handleKeyDownSearch, disabled: this.isDisabled, readonly: this.isReadOrDisplayOnly, "aria-label": this.accInfo.ariaLabel, "aria-readonly": this.isReadOrDisplayOnly, "aria-disabled": this.disabled, "aria-required": this.required, "aria-haspopup": this.listboxRole, "aria-controls": this.listAriaControlsId, "aria-expanded": this._open, "aria-activedescendant": this._activeDescendantItem ? this._activeDescendantItem.id : undefined, "aria-autocomplete": this._ariaAutoComplete, "aria-describedby": `${this._id}-aria-describedby`, autocomplete: "off" }), this._selectedOption && (_jsx("div", { class: "udex-text-field__text-holder", children: _jsx("span", { class: "udex-text-field__single-label", "aria-hidden": "true", dangerouslySetInnerHTML: { __html: this._selectedOption } }) }))] }), !this.displayonly && (_jsx("button", { onClick: this.handleButtonClick, disabled: this.isDisabled, "aria-label": this.accInfo.ariaLabel, class: "udex-text-field__trigger", tabindex: -1, children: _jsx(UI5Icon, { mode: "Decorative", name: "navigation-down-arrow" }) })), _jsxs(UI5Popover, { id: this.popoverId, accessibleRole: PopupAccessibleRole.None, "allow-target-overlap": this.allowTargetOverlap, onKeyDown: this.handleKeyDownDropdown, onClick: this.handleDropdownClick, ...{
13
13
  onSelectAll: this.handleSelectAll,
14
14
  onItemPress: this.handleItemPress,
15
15
  onHeaderPress: this.handleHeaderPress,
@@ -20,7 +20,7 @@ export default function SelectBoxTemplate() {
20
20
  function renderTagGroup() {
21
21
  return (_jsx(UDExTagGroup, { class: "udex-tag-group", displayonly: this.displayonly, readonly: this.readonly, disabled: this.disabled, onFocusOut: this.resetTagsTabIndexes, "tooltip-placement": this.tooltipPlacement, onTagIconClick: this.handleRemoveTag, onTagClick: this.handleTagClick, onShowMoreTags: this.handlerShowMoreItems, onTagKeydown: this.handleKeyDownTag, "tokenizer-expanded": this.tokenizerExpanded, "_skip-more-button-focus": true, children: this.selectedItems
22
22
  .filter(item => !item.isGroup)
23
- .map((item, index) => (item.label ? (_jsx(UDExTag, { text: cleanLabel(item.label), id: item._id, icon: "decline" }, index)) : (_jsx(UDExTag, { text: `${item.rating} ${this.startsText}`, id: item._id, icon: "decline" }, index)))) }));
23
+ .map((item, index) => (item.label ? (_jsx(UDExTag, { text: cleanLabel(item.label), id: `${this._id}-tag-${item._id}`, "data-id": item._id, icon: "decline" }, index)) : (_jsx(UDExTag, { text: `${item.rating} ${this.startsText}`, id: `${this._id}-tag-${item._id}`, "data-id": item._id, icon: "decline" }, index)))) }));
24
24
  }
25
25
  function renderTruncatableTagContent() {
26
26
  return (_jsxs("div", { class: "udex-truncatable-tag-content", children: [_jsx("span", { class: "udex-truncatable-tag-content__label", children: this.truncatableTagLabel }), _jsx(UI5Icon, { onClick: this.handleRemoveTruncatableTag, class: "udex-truncatable-tag-content__icon", mode: "Decorative", name: "decline" })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"SelectBoxTemplate.js","sourceRoot":"","sources":["../src/SelectBoxTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type UDExSelectBox from \"./SelectBox.js\";\nimport UDExTagGroup from \"./TagGroup.js\";\nimport UDExTag from \"./Tag.js\";\nimport UDExStatusMessage from \"./StatusMessage.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport UI5Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport UI5PopoverPlacement from \"@ui5/webcomponents/dist/types/PopoverPlacement.js\";\nimport UI5PopoverHAlign from \"@ui5/webcomponents/dist/types/PopoverHorizontalAlign.js\";\nimport { cleanLabel } from \"./utils/listItemLabelUtils.js\";\nimport PopupAccessibleRole from \"@ui5/webcomponents/dist/types/PopupAccessibleRole.js\";\n\nexport default function SelectBoxTemplate(this: UDExSelectBox) {\n return (\n <div class={this._rootClass}>\n <div class=\"udex-text-field__container\">\n <div class=\"udex-text-field__wrap\" {...(this.displayonly ? { displayonly: \"\" } : {})}>\n {this.showMultiSelectedOptions && renderTagGroup.call(this)}\n <div\n class=\"udex-text-field__input\"\n onFocusIn={this.handleInputFocusIn}\n onFocusOut={this.handleInputFocusOut}\n {...(this.readonly ? { readonly: \"\" } : {})}\n {...(this.isDisabled ? { disabled: \"\" } : {})}\n {...(this._open ? { open: \"\" } : {})}>\n {this.label && (\n <>\n <label for=\"search-input\" class={this.labelClass}>\n {this.label}{this.required && \" * \"}\n </label>\n <span class=\"hidden\" id={`${this._id}-aria-describedby`}>{this.ariaDescribedbyText}</span>\n </>\n )}\n {this.showImageFlags && this.countryFlag}\n <div class=\"udex-text-field__holder\">\n <input\n role=\"combobox\"\n type=\"text\"\n id=\"search-input\"\n name=\"search\"\n class=\"udex-text-field__search\"\n value={this._inputValue}\n onInput={this.handleSearchChange}\n onClick={this.handleInputClick}\n onKeyDown={this.handleKeyDownSearch}\n disabled={this.isDisabled}\n readonly={this.isReadOrDisplayOnly}\n aria-label={this.accInfo.ariaLabel}\n aria-readonly={this.isReadOrDisplayOnly}\n aria-disabled={this.disabled}\n aria-required={this.required}\n aria-haspopup={this.listboxRole}\n aria-controls={this.listAriaControlsId}\n aria-expanded={this._open}\n aria-activedescendant={this._activeDescendantItem ? this._activeDescendantItem._id : undefined}\n aria-autocomplete={this._ariaAutoComplete}\n aria-describedby={`${this._id}-aria-describedby`}\n autocomplete=\"off\"\n />\n {this._selectedOption && (\n <div class=\"udex-text-field__text-holder\">\n <span\n class=\"udex-text-field__single-label\"\n aria-hidden=\"true\"\n dangerouslySetInnerHTML={{ __html: this._selectedOption }}>\n </span>\n </div>\n )}\n </div>\n {!this.displayonly && (\n <button\n onClick={this.handleButtonClick}\n disabled={this.isDisabled}\n aria-label={this.accInfo.ariaLabel}\n class=\"udex-text-field__trigger\"\n tabindex={-1}>\n <UI5Icon mode=\"Decorative\" name=\"navigation-down-arrow\"></UI5Icon>\n </button>\n )}\n <UI5Popover\n id={this.popoverId}\n accessibleRole={PopupAccessibleRole.None}\n allow-target-overlap={this.allowTargetOverlap}\n onKeyDown={this.handleKeyDownDropdown}\n {...({\n onSelectAll: this.handleSelectAll,\n onItemPress: this.handleItemPress,\n onHeaderPress: this.handleHeaderPress,\n } as any)}\n onBeforeOpen={this.handleDropdownBeforeOpen}\n onOpen={this.handleDropdownOpen}\n onBeforeClose={this.handleDropdownBeforeClose}\n onClose={this.handleDropdownClose}\n class=\"udex-select-box__dropdown\"\n horizontal-align={UI5PopoverHAlign.Start}\n placement={UI5PopoverPlacement.Bottom}\n prevent-focus-restore\n prevent-initial-focus\n hide-arrow>\n {this._showTagsDropdownContent\n ? renderTruncatableTagContent.call(this)\n : this.searchableList}\n {this.hasFooter && <slot name=\"footer\" slot=\"footer\" />}\n </UI5Popover>\n <span aria-live=\"polite\" aria-atomic=\"true\" class=\"hidden\">{this._liveRegionText}</span>\n </div>\n </div>\n {this.supportingText && (\n <UDExStatusMessage\n disabled={this.disabled}\n supporting-text={this.supportingText}\n value-state={this.valueState}>\n </UDExStatusMessage>\n )}\n </div>\n </div>\n );\n}\n\nfunction renderTagGroup(this: UDExSelectBox) {\n return (\n <UDExTagGroup\n class=\"udex-tag-group\"\n displayonly={this.displayonly}\n readonly={this.readonly}\n disabled={this.disabled}\n onFocusOut={this.resetTagsTabIndexes}\n tooltip-placement={this.tooltipPlacement}\n onTagIconClick={this.handleRemoveTag}\n onTagClick={this.handleTagClick}\n onShowMoreTags={this.handlerShowMoreItems}\n onTagKeydown={this.handleKeyDownTag}\n tokenizer-expanded={this.tokenizerExpanded}\n _skip-more-button-focus>\n {this.selectedItems\n .filter(item => !item.isGroup)\n .map((item, index) => (\n item.label ? (\n <UDExTag\n key={index}\n text={cleanLabel(item.label)}\n id={item._id}\n icon=\"decline\">\n </UDExTag>\n ) : (\n <UDExTag\n key={index}\n text={`${item.rating} ${this.startsText}`}\n id={item._id}\n icon=\"decline\">\n </UDExTag>\n )\n ))\n }\n </UDExTagGroup>\n );\n}\n\nfunction renderTruncatableTagContent(this: UDExSelectBox) {\n return (\n <div class=\"udex-truncatable-tag-content\">\n <span class=\"udex-truncatable-tag-content__label\">{this.truncatableTagLabel}</span>\n <UI5Icon\n onClick={this.handleRemoveTruncatableTag}\n class=\"udex-truncatable-tag-content__icon\"\n mode=\"Decorative\"\n name=\"decline\">\n </UI5Icon>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"SelectBoxTemplate.js","sourceRoot":"","sources":["../src/SelectBoxTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type UDExSelectBox from \"./SelectBox.js\";\nimport UDExTagGroup from \"./TagGroup.js\";\nimport UDExTag from \"./Tag.js\";\nimport UDExStatusMessage from \"./StatusMessage.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport UI5Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport UI5PopoverPlacement from \"@ui5/webcomponents/dist/types/PopoverPlacement.js\";\nimport UI5PopoverHAlign from \"@ui5/webcomponents/dist/types/PopoverHorizontalAlign.js\";\nimport { cleanLabel } from \"./utils/listItemLabelUtils.js\";\nimport PopupAccessibleRole from \"@ui5/webcomponents/dist/types/PopupAccessibleRole.js\";\n\nexport default function SelectBoxTemplate(this: UDExSelectBox) {\n return (\n <div class={this._rootClass}>\n <div class=\"udex-text-field__container\">\n <div class=\"udex-text-field__wrap\" {...(this.displayonly ? { displayonly: \"\" } : {})}>\n {this.showMultiSelectedOptions && renderTagGroup.call(this)}\n <div\n class=\"udex-text-field__input\"\n onFocusIn={this.handleInputFocusIn}\n onFocusOut={this.handleInputFocusOut}\n {...(this.readonly ? { readonly: \"\" } : {})}\n {...(this.isDisabled ? { disabled: \"\" } : {})}\n {...(this._open ? { open: \"\" } : {})}>\n {this.label && (\n <label for=\"search-input\" class={this.labelClass}>\n {this.label}{this.required && \" * \"}\n </label>\n )}\n <span class=\"hidden\" id={`${this._id}-aria-describedby`}>{this.ariaDescribedbyText}</span>\n {this.showImageFlags && this.countryFlag}\n <div class=\"udex-text-field__holder\">\n <input\n role=\"combobox\"\n type=\"text\"\n id=\"search-input\"\n name=\"search\"\n class=\"udex-text-field__search\"\n value={this._inputValue}\n onInput={this.handleSearchChange}\n onClick={this.handleInputClick}\n onKeyDown={this.handleKeyDownSearch}\n disabled={this.isDisabled}\n readonly={this.isReadOrDisplayOnly}\n aria-label={this.accInfo.ariaLabel}\n aria-readonly={this.isReadOrDisplayOnly}\n aria-disabled={this.disabled}\n aria-required={this.required}\n aria-haspopup={this.listboxRole}\n aria-controls={this.listAriaControlsId}\n aria-expanded={this._open}\n aria-activedescendant={this._activeDescendantItem ? this._activeDescendantItem.id : undefined}\n aria-autocomplete={this._ariaAutoComplete}\n aria-describedby={`${this._id}-aria-describedby`}\n autocomplete=\"off\"\n />\n {this._selectedOption && (\n <div class=\"udex-text-field__text-holder\">\n <span\n class=\"udex-text-field__single-label\"\n aria-hidden=\"true\"\n dangerouslySetInnerHTML={{ __html: this._selectedOption }}>\n </span>\n </div>\n )}\n </div>\n {!this.displayonly && (\n <button\n onClick={this.handleButtonClick}\n disabled={this.isDisabled}\n aria-label={this.accInfo.ariaLabel}\n class=\"udex-text-field__trigger\"\n tabindex={-1}>\n <UI5Icon mode=\"Decorative\" name=\"navigation-down-arrow\"></UI5Icon>\n </button>\n )}\n <UI5Popover\n id={this.popoverId}\n accessibleRole={PopupAccessibleRole.None}\n allow-target-overlap={this.allowTargetOverlap}\n onKeyDown={this.handleKeyDownDropdown}\n onClick={this.handleDropdownClick}\n {...({\n onSelectAll: this.handleSelectAll,\n onItemPress: this.handleItemPress,\n onHeaderPress: this.handleHeaderPress,\n } as any)}\n onBeforeOpen={this.handleDropdownBeforeOpen}\n onOpen={this.handleDropdownOpen}\n onBeforeClose={this.handleDropdownBeforeClose}\n onClose={this.handleDropdownClose}\n class=\"udex-select-box__dropdown\"\n horizontal-align={UI5PopoverHAlign.Start}\n placement={UI5PopoverPlacement.Bottom}\n prevent-focus-restore\n prevent-initial-focus\n hide-arrow>\n {this._showTagsDropdownContent\n ? renderTruncatableTagContent.call(this)\n : this.searchableList}\n {this.hasFooter && <slot name=\"footer\" slot=\"footer\" />}\n </UI5Popover>\n <span aria-live=\"polite\" aria-atomic=\"true\" class=\"hidden\">{this._liveRegionText}</span>\n </div>\n </div>\n {this.supportingText && (\n <UDExStatusMessage\n disabled={this.disabled}\n supporting-text={this.supportingText}\n value-state={this.valueState}>\n </UDExStatusMessage>\n )}\n </div>\n </div>\n );\n}\n\nfunction renderTagGroup(this: UDExSelectBox) {\n return (\n <UDExTagGroup\n class=\"udex-tag-group\"\n displayonly={this.displayonly}\n readonly={this.readonly}\n disabled={this.disabled}\n onFocusOut={this.resetTagsTabIndexes}\n tooltip-placement={this.tooltipPlacement}\n onTagIconClick={this.handleRemoveTag}\n onTagClick={this.handleTagClick}\n onShowMoreTags={this.handlerShowMoreItems}\n onTagKeydown={this.handleKeyDownTag}\n tokenizer-expanded={this.tokenizerExpanded}\n _skip-more-button-focus>\n {this.selectedItems\n .filter(item => !item.isGroup)\n .map((item, index) => (\n item.label ? (\n <UDExTag\n key={index}\n text={cleanLabel(item.label)}\n id={`${this._id}-tag-${item._id}`}\n data-id={item._id}\n icon=\"decline\">\n </UDExTag>\n ) : (\n <UDExTag\n key={index}\n text={`${item.rating} ${this.startsText}`}\n id={`${this._id}-tag-${item._id}`}\n data-id={item._id}\n icon=\"decline\">\n </UDExTag>\n )\n ))\n }\n </UDExTagGroup>\n );\n}\n\nfunction renderTruncatableTagContent(this: UDExSelectBox) {\n return (\n <div class=\"udex-truncatable-tag-content\">\n <span class=\"udex-truncatable-tag-content__label\">{this.truncatableTagLabel}</span>\n <UI5Icon\n onClick={this.handleRemoveTruncatableTag}\n class=\"udex-truncatable-tag-content__icon\"\n mode=\"Decorative\"\n name=\"decline\">\n </UI5Icon>\n </div>\n );\n}\n"]}
@@ -1,3 +1,4 @@
1
+ import type { Slot } from "@ui5/webcomponents-base/dist/UI5Element.js";
1
2
  import SideNavigation from "@ui5/webcomponents-fiori/dist/SideNavigation.js";
2
3
  export declare enum UDExSideNavigationVariant {
3
4
  Full = "Full",
@@ -46,6 +47,14 @@ declare class UDExSideNavigation extends SideNavigation {
46
47
  * @public
47
48
  */
48
49
  placement: `${UDExSideNavigationPlacement}`;
50
+ /**
51
+ * Defines additional free-form content rendered in a dedicated area at the bottom
52
+ * of the component, below the navigation items.
53
+ *
54
+ * @public
55
+ */
56
+ additionalContent: Slot<HTMLElement>;
49
57
  onBeforeRendering(): void;
58
+ get hasAdditionalContent(): boolean;
50
59
  }
51
60
  export default UDExSideNavigation;
@@ -7,7 +7,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
8
8
  import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
9
9
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
10
+ import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
10
11
  import SideNavigation from "@ui5/webcomponents-fiori/dist/SideNavigation.js";
12
+ import SideNavigationTemplate from "./SideNavigationTemplate.js";
11
13
  // Styles
12
14
  import SideNavigationCss from "./generated/themes/SideNavigation.css.js";
13
15
  export var UDExSideNavigationVariant;
@@ -61,6 +63,9 @@ let UDExSideNavigation = class UDExSideNavigation extends SideNavigation {
61
63
  item.setAttribute("variant", this.variant);
62
64
  });
63
65
  }
66
+ get hasAdditionalContent() {
67
+ return !!this.additionalContent && this.additionalContent.length > 0;
68
+ }
64
69
  };
65
70
  __decorate([
66
71
  property({ type: Boolean })
@@ -71,10 +76,14 @@ __decorate([
71
76
  __decorate([
72
77
  property()
73
78
  ], UDExSideNavigation.prototype, "placement", void 0);
79
+ __decorate([
80
+ slot({ type: HTMLElement, invalidateOnChildChange: true })
81
+ ], UDExSideNavigation.prototype, "additionalContent", void 0);
74
82
  UDExSideNavigation = __decorate([
75
83
  customElement({
76
84
  tag: "udex-side-navigation",
77
85
  renderer: jsxRenderer,
86
+ template: SideNavigationTemplate,
78
87
  styles: [SideNavigation.styles, SideNavigationCss],
79
88
  })
80
89
  ], UDExSideNavigation);
@@ -1 +1 @@
1
- {"version":3,"file":"SideNavigation.js","sourceRoot":"","sources":["../src/SideNavigation.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAC/E,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,cAAc,MAAM,iDAAiD,CAAC;AAE7E,SAAS;AACT,OAAO,iBAAiB,MAAM,0CAA0C,CAAC;AAEzE,MAAM,CAAN,IAAY,yBAGX;AAHD,WAAY,yBAAyB;IACnC,0CAAa,CAAA;IACb,gDAAmB,CAAA;AACrB,CAAC,EAHW,yBAAyB,KAAzB,yBAAyB,QAGpC;AAED,MAAM,CAAN,IAAY,2BAGX;AAHD,WAAY,2BAA2B;IACrC,4CAAa,CAAA;IACb,8CAAe,CAAA;AACjB,CAAC,EAHW,2BAA2B,KAA3B,2BAA2B,QAGtC;AAED;;;;;;;;;;;;;;;;GAgBG;AAOH,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,cAAc;IAA/C;;QAUE;;;;;WAKG;QAED,YAAO,GAAmC,yBAAyB,CAAC,IAAI,CAAC;QAE3E;;;;;WAKG;QAED,cAAS,GAAqC,2BAA2B,CAAC,IAAI,CAAC;IAQnF,CAAC;IANC,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,gBAAgB,CAAC,8DAA8D,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACnG,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AA1BG;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0DACD;AASzB;IADD,QAAQ,EAAE;mDACgE;AASzE;IADD,QAAQ,EAAE;qDACsE;AA1B7E,kBAAkB;IANvB,aAAa,CAAC;QACb,GAAG,EAAE,sBAAsB;QAC3B,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,iBAAiB,CAAC;KACnD,CAAC;GAEI,kBAAkB,CAkCvB;AAED,kBAAkB,CAAC,MAAM,EAAE,CAAC;AAE5B,eAAe,kBAAkB,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport SideNavigation from \"@ui5/webcomponents-fiori/dist/SideNavigation.js\";\n\n// Styles\nimport SideNavigationCss from \"./generated/themes/SideNavigation.css.js\";\n\nexport enum UDExSideNavigationVariant {\n Full = \"Full\",\n Content = \"Content\",\n}\n\nexport enum UDExSideNavigationPlacement {\n Left = \"Left\",\n Right = \"Right\",\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-side-navigation</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/SideNavigation.js\";</code>\n *\n * @constructor\n * @extends SideNavigation\n * @public\n */\n@customElement({\n tag: \"udex-side-navigation\",\n renderer: jsxRenderer,\n styles: [SideNavigation.styles, SideNavigationCss],\n})\n\nclass UDExSideNavigation extends SideNavigation {\n /**\n * Defines if Side Navigation is fixed in place or scrollable with the content.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n isFixedInPlace!: boolean;\n\n /**\n * Defines the variant of the component.\n *\n * @default \"Full\"\n * @public\n */\n @property()\n variant: `${UDExSideNavigationVariant}` = UDExSideNavigationVariant.Full;\n\n /**\n * Defines which side the navigation panel is on.\n *\n * @default \"Left\"\n * @public\n */\n @property()\n placement: `${UDExSideNavigationPlacement}` = UDExSideNavigationPlacement.Left;\n\n onBeforeRendering() {\n super.onBeforeRendering();\n this.querySelectorAll(\"[udex-side-navigation-item], [udex-side-navigation-sub-item]\").forEach(item => {\n item.setAttribute(\"variant\", this.variant);\n });\n }\n}\n\nUDExSideNavigation.define();\n\nexport default UDExSideNavigation;\n"]}
1
+ {"version":3,"file":"SideNavigation.js","sourceRoot":"","sources":["../src/SideNavigation.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAC/E,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,wDAAwD,CAAC;AAE1E,OAAO,cAAc,MAAM,iDAAiD,CAAC;AAC7E,OAAO,sBAAsB,MAAM,6BAA6B,CAAC;AAEjE,SAAS;AACT,OAAO,iBAAiB,MAAM,0CAA0C,CAAC;AAEzE,MAAM,CAAN,IAAY,yBAGX;AAHD,WAAY,yBAAyB;IACnC,0CAAa,CAAA;IACb,gDAAmB,CAAA;AACrB,CAAC,EAHW,yBAAyB,KAAzB,yBAAyB,QAGpC;AAED,MAAM,CAAN,IAAY,2BAGX;AAHD,WAAY,2BAA2B;IACrC,4CAAa,CAAA;IACb,8CAAe,CAAA;AACjB,CAAC,EAHW,2BAA2B,KAA3B,2BAA2B,QAGtC;AAED;;;;;;;;;;;;;;;;GAgBG;AAQH,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,cAAc;IAA/C;;QAUE;;;;;WAKG;QAED,YAAO,GAAmC,yBAAyB,CAAC,IAAI,CAAC;QAE3E;;;;;WAKG;QAED,cAAS,GAAqC,2BAA2B,CAAC,IAAI,CAAC;IAqBnF,CAAC;IAVC,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,gBAAgB,CAAC,8DAA8D,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACnG,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,oBAAoB;QACtB,OAAO,CAAC,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;IACvE,CAAC;CACF,CAAA;AAvCG;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0DACD;AASzB;IADD,QAAQ,EAAE;mDACgE;AASzE;IADD,QAAQ,EAAE;qDACsE;AAS/E;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC;6DACnB;AAnCpC,kBAAkB;IAPvB,aAAa,CAAC;QACb,GAAG,EAAE,sBAAsB;QAC3B,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,sBAAsB;QAChC,MAAM,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,iBAAiB,CAAC;KACnD,CAAC;GAEI,kBAAkB,CA+CvB;AAED,kBAAkB,CAAC,MAAM,EAAE,CAAC;AAE5B,eAAe,kBAAkB,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport type { Slot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport SideNavigation from \"@ui5/webcomponents-fiori/dist/SideNavigation.js\";\nimport SideNavigationTemplate from \"./SideNavigationTemplate.js\";\n\n// Styles\nimport SideNavigationCss from \"./generated/themes/SideNavigation.css.js\";\n\nexport enum UDExSideNavigationVariant {\n Full = \"Full\",\n Content = \"Content\",\n}\n\nexport enum UDExSideNavigationPlacement {\n Left = \"Left\",\n Right = \"Right\",\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-side-navigation</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/SideNavigation.js\";</code>\n *\n * @constructor\n * @extends SideNavigation\n * @public\n */\n@customElement({\n tag: \"udex-side-navigation\",\n renderer: jsxRenderer,\n template: SideNavigationTemplate,\n styles: [SideNavigation.styles, SideNavigationCss],\n})\n\nclass UDExSideNavigation extends SideNavigation {\n /**\n * Defines if Side Navigation is fixed in place or scrollable with the content.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n isFixedInPlace!: boolean;\n\n /**\n * Defines the variant of the component.\n *\n * @default \"Full\"\n * @public\n */\n @property()\n variant: `${UDExSideNavigationVariant}` = UDExSideNavigationVariant.Full;\n\n /**\n * Defines which side the navigation panel is on.\n *\n * @default \"Left\"\n * @public\n */\n @property()\n placement: `${UDExSideNavigationPlacement}` = UDExSideNavigationPlacement.Left;\n\n /**\n * Defines additional free-form content rendered in a dedicated area at the bottom\n * of the component, below the navigation items.\n *\n * @public\n */\n @slot({ type: HTMLElement, invalidateOnChildChange: true })\n additionalContent!: Slot<HTMLElement>;\n\n onBeforeRendering() {\n super.onBeforeRendering();\n this.querySelectorAll(\"[udex-side-navigation-item], [udex-side-navigation-sub-item]\").forEach(item => {\n item.setAttribute(\"variant\", this.variant);\n });\n }\n\n get hasAdditionalContent(): boolean {\n return !!this.additionalContent && this.additionalContent.length > 0;\n }\n}\n\nUDExSideNavigation.define();\n\nexport default UDExSideNavigation;\n"]}
@@ -7,6 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
8
8
  import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
9
9
  import SideNavigationItem from "@ui5/webcomponents-fiori/dist/SideNavigationItem.js";
10
+ import SideNavigationItemTemplate from "./SideNavigationItemTemplate.js";
10
11
  // Styles
11
12
  import SideNavigationItemCss from "./generated/themes/SideNavigationItem.css.js";
12
13
  import { isDesktop } from "@ui5/webcomponents-base";
@@ -112,6 +113,7 @@ UDExSideNavigationItem = __decorate([
112
113
  customElement({
113
114
  tag: "udex-side-navigation-item",
114
115
  renderer: jsxRenderer,
116
+ template: SideNavigationItemTemplate,
115
117
  styles: [SideNavigationItem.styles, SideNavigationItemCss],
116
118
  })
117
119
  ], UDExSideNavigationItem);
@@ -1 +1 @@
1
- {"version":3,"file":"SideNavigationItem.js","sourceRoot":"","sources":["../src/SideNavigationItem.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport SideNavigationItem from \"@ui5/webcomponents-fiori/dist/SideNavigationItem.js\";\nimport type SideNavigationItemBase from \"@ui5/webcomponents-fiori/dist/SideNavigationItemBase.js\";\nimport type SideNavigationSelectableItemBase from \"@ui5/webcomponents-fiori/dist/SideNavigationSelectableItemBase.js\";\nimport type UDExSideNavigationSubItem from \"./SideNavigationSubItem.js\";\n\n// Styles\nimport SideNavigationItemCss from \"./generated/themes/SideNavigationItem.css.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base\";\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-side-navigation-item</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/SideNavigationItem.js\";</code>\n *\n * @constructor\n * @extends SideNavigationItem\n * @public\n */\n@customElement({\n tag: \"udex-side-navigation-item\",\n renderer: jsxRenderer,\n styles: [SideNavigationItem.styles, SideNavigationItemCss],\n})\n\nclass UDExSideNavigationItem extends SideNavigationItem {\n get _selected() {\n if (this.sideNavCollapsed) {\n return this.selected || this.items.some(item => item.selected);\n }\n return this.selected;\n }\n\n get focusableItems(): Array<SideNavigationItemBase> {\n // Recurse one level into expanded level-2 sub-items so their level-3 children join\n // the Side Navigation's keyboard focus set (UI5's base getter is flat). Only one level\n // of recursion is needed because the component supports at most three nesting levels.\n if (!this.sideNavCollapsed && this.expanded) {\n return [this, ...this.items.reduce((result, item) => {\n return result.concat((item as UDExSideNavigationSubItem).focusableItems || [item]);\n }, new Array<SideNavigationItemBase>())];\n }\n return super.focusableItems;\n }\n\n get selectableItems(): Array<SideNavigationSelectableItemBase> {\n // Recurse one level into level-2 sub-items so their level-3 children are part of the\n // Side Navigation's selection registry (UI5's base getter is flat). Without this the\n // selection sweep in SideNavigation._selectItem never reaches level 3, so selecting a\n // level-3 item would not deselect items at other levels, and vice versa.\n return this.items.reduce((result, item) => {\n return result.concat((item as UDExSideNavigationSubItem).selectableItems || [item]);\n }, new Array<SideNavigationSelectableItemBase>(this));\n }\n\n get allItems(): Array<SideNavigationItemBase> {\n // Recurse one level into level-2 sub-items so level-3 children are enumerated by\n // SideNavigation._getAllItems. That loop wires `sideNavigation` (and collapsed state)\n // onto every item; without this, level-3 items never get `sideNavigation` set and\n // their click handler cannot reach SideNavigation._handleItemClick to fire selection-change.\n return this.items.reduce((result, item) => {\n return result.concat((item as UDExSideNavigationSubItem).allItems || [item]);\n }, new Array<SideNavigationItemBase>(this));\n }\n\n _initialExpandDone = false;\n\n onBeforeRendering() {\n super.onBeforeRendering();\n // Open the group once on initial render if it contains a selected child, so the\n // selection is visible. Do not re-apply on later renders — that would prevent the\n // user from collapsing a group while one of its children stays selected.\n if (!this._initialExpandDone) {\n this._initialExpandDone = true;\n if (!this.sideNavCollapsed && !this.expanded && this.items.some(item => item.selected)) {\n this.expanded = true;\n }\n }\n }\n\n _onclick(e: MouseEvent) {\n // A grouping item (one with sub-items) toggles expand/collapse on click and\n // never navigates — a parent with children must not have an href. Only leaf\n // items navigate, so they fall through to the base handler.\n if (this.hasSubItems && !this.sideNavCollapsed) {\n e.preventDefault();\n e.stopPropagation();\n this.expanded = !this.expanded;\n return;\n }\n super._onclick(e);\n }\n\n _onToggleClick(e: CustomEvent) {\n e.preventDefault();\n super._onToggleClick(e);\n }\n\n onEnterDOM() {\n this.setAttribute(\"id\", this._id);\n\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n\n this.items.map(item => {\n if (this.icon) {\n item.setAttribute(\"with-icon\", \"true\");\n }\n return item;\n });\n }\n}\n\nUDExSideNavigationItem.define();\n\nexport default UDExSideNavigationItem;\n"]}
1
+ {"version":3,"file":"SideNavigationItem.js","sourceRoot":"","sources":["../src/SideNavigationItem.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport SideNavigationItem from \"@ui5/webcomponents-fiori/dist/SideNavigationItem.js\";\nimport type SideNavigationItemBase from \"@ui5/webcomponents-fiori/dist/SideNavigationItemBase.js\";\nimport type SideNavigationSelectableItemBase from \"@ui5/webcomponents-fiori/dist/SideNavigationSelectableItemBase.js\";\nimport type UDExSideNavigationSubItem from \"./SideNavigationSubItem.js\";\nimport SideNavigationItemTemplate from \"./SideNavigationItemTemplate.js\";\n\n// Styles\nimport SideNavigationItemCss from \"./generated/themes/SideNavigationItem.css.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base\";\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-side-navigation-item</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/SideNavigationItem.js\";</code>\n *\n * @constructor\n * @extends SideNavigationItem\n * @public\n */\n@customElement({\n tag: \"udex-side-navigation-item\",\n renderer: jsxRenderer,\n template: SideNavigationItemTemplate,\n styles: [SideNavigationItem.styles, SideNavigationItemCss],\n})\n\nclass UDExSideNavigationItem extends SideNavigationItem {\n get _selected() {\n if (this.sideNavCollapsed) {\n return this.selected || this.items.some(item => item.selected);\n }\n return this.selected;\n }\n\n get focusableItems(): Array<SideNavigationItemBase> {\n // Recurse one level into expanded level-2 sub-items so their level-3 children join\n // the Side Navigation's keyboard focus set (UI5's base getter is flat). Only one level\n // of recursion is needed because the component supports at most three nesting levels.\n if (!this.sideNavCollapsed && this.expanded) {\n return [this, ...this.items.reduce((result, item) => {\n return result.concat((item as UDExSideNavigationSubItem).focusableItems || [item]);\n }, new Array<SideNavigationItemBase>())];\n }\n return super.focusableItems;\n }\n\n get selectableItems(): Array<SideNavigationSelectableItemBase> {\n // Recurse one level into level-2 sub-items so their level-3 children are part of the\n // Side Navigation's selection registry (UI5's base getter is flat). Without this the\n // selection sweep in SideNavigation._selectItem never reaches level 3, so selecting a\n // level-3 item would not deselect items at other levels, and vice versa.\n return this.items.reduce((result, item) => {\n return result.concat((item as UDExSideNavigationSubItem).selectableItems || [item]);\n }, new Array<SideNavigationSelectableItemBase>(this));\n }\n\n get allItems(): Array<SideNavigationItemBase> {\n // Recurse one level into level-2 sub-items so level-3 children are enumerated by\n // SideNavigation._getAllItems. That loop wires `sideNavigation` (and collapsed state)\n // onto every item; without this, level-3 items never get `sideNavigation` set and\n // their click handler cannot reach SideNavigation._handleItemClick to fire selection-change.\n return this.items.reduce((result, item) => {\n return result.concat((item as UDExSideNavigationSubItem).allItems || [item]);\n }, new Array<SideNavigationItemBase>(this));\n }\n\n _initialExpandDone = false;\n\n onBeforeRendering() {\n super.onBeforeRendering();\n // Open the group once on initial render if it contains a selected child, so the\n // selection is visible. Do not re-apply on later renders — that would prevent the\n // user from collapsing a group while one of its children stays selected.\n if (!this._initialExpandDone) {\n this._initialExpandDone = true;\n if (!this.sideNavCollapsed && !this.expanded && this.items.some(item => item.selected)) {\n this.expanded = true;\n }\n }\n }\n\n _onclick(e: MouseEvent) {\n // A grouping item (one with sub-items) toggles expand/collapse on click and\n // never navigates — a parent with children must not have an href. Only leaf\n // items navigate, so they fall through to the base handler.\n if (this.hasSubItems && !this.sideNavCollapsed) {\n e.preventDefault();\n e.stopPropagation();\n this.expanded = !this.expanded;\n return;\n }\n super._onclick(e);\n }\n\n _onToggleClick(e: CustomEvent) {\n e.preventDefault();\n super._onToggleClick(e);\n }\n\n onEnterDOM() {\n this.setAttribute(\"id\", this._id);\n\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n\n this.items.map(item => {\n if (this.icon) {\n item.setAttribute(\"with-icon\", \"true\");\n }\n return item;\n });\n }\n}\n\nUDExSideNavigationItem.define();\n\nexport default UDExSideNavigationItem;\n"]}
@@ -0,0 +1,2 @@
1
+ import type UDExSideNavigationItem from "./SideNavigationItem.js";
2
+ export default function SideNavigationItemTemplate(this: UDExSideNavigationItem): import("@ui5/webcomponents-base").JSX.Element;
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@ui5/webcomponents-base/jsx-runtime";
2
+ import Icon from "@ui5/webcomponents/dist/Icon.js";
3
+ import navRightArrow from "@ui5/webcomponents-icons/dist/navigation-right-arrow.js";
4
+ import arrowRight from "@ui5/webcomponents-icons/dist/arrow-right.js";
5
+ export default function SideNavigationItemTemplate() {
6
+ if (this.sideNavCollapsed) {
7
+ return ItemTemplate.call(this);
8
+ }
9
+ return (_jsx("li", { id: this._id, class: "ui5-sn-list-li", role: "none", children: ItemTemplate.call(this) }));
10
+ }
11
+ function ItemTemplate() {
12
+ const EffectiveTag = this._effectiveTag;
13
+ return (_jsxs(_Fragment, { children: [_jsxs(EffectiveTag, { id: this._id, "data-sap-focus-ref": true, class: `ui5-sn-item ui5-sn-item-level1 ${this._classes}`, role: this.ariaRole, onKeyDown: this._onkeydown, onKeyUp: this._onkeyup, onClick: this._onclick, onFocusIn: this._onfocusin, tabIndex: this.effectiveTabIndex, "aria-current": this._ariaCurrent, "aria-selected": this._ariaSelected, title: this._tooltip, "aria-disabled": this.effectiveDisabled, href: this._href, target: this._target, "aria-haspopup": this._ariaHasPopup, onFocusOut: this._onfocusout, onMouseEnter: this._onmouseenter, onMouseLeave: this._onmouseleave, "aria-checked": this._ariaChecked, "aria-owns": this._groupId, "aria-label": this._ariaLabel, "aria-expanded": this._expanded, "aria-labelledby": this._textId, "aria-describedby": this._describedBy, children: [this.sideNavCollapsed ? (_jsx(Icon, { class: "ui5-sn-item-icon", name: this.icon })) : (this.icon && _jsx(Icon, { class: "ui5-sn-item-icon", name: this.icon })), _jsx("div", { class: "ui5-sn-item-text", id: this._textId, children: this.text }), this.hasTag && (_jsx("div", { id: this._tagId, class: "ui5-sn-item-tag-slot", children: _jsx("slot", { name: "tag" }) })), this.sideNavCollapsed ? (!!this.items.length && (_jsx("div", { class: "ui5-sn-item-toggle-icon-wrap", children: _jsx(Icon, { class: "ui5-sn-item-toggle-icon", name: navRightArrow }) }))) : (!!this.items.length && (_jsx("div", { class: "ui5-sn-item-toggle-icon-wrap", children: _jsx(Icon, { class: "ui5-sn-item-toggle-icon", name: navRightArrow, accessibleName: this._arrowTooltip, showTooltip: true, onClick: this._onToggleClick }) }))), this.isExternalLink && (_jsx(Icon, { class: "ui5-sn-item-external-link-icon", name: arrowRight }))] }), !this.sideNavCollapsed && !!this.items.length && (_jsx("ul", { id: this._groupId, class: "ui5-sn-item-ul", "aria-label": this.accessibleName || this.text, role: "group", children: _jsx("slot", {}) })), this._selectableItemDescriptionText && (_jsx("span", { id: this._selectableItemDescriptionId, class: "ui5-hidden-text", children: this._selectableItemDescriptionText }))] }));
14
+ }
15
+ //# sourceMappingURL=SideNavigationItemTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SideNavigationItemTemplate.js","sourceRoot":"","sources":["../src/SideNavigationItemTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport navRightArrow from \"@ui5/webcomponents-icons/dist/navigation-right-arrow.js\";\nimport arrowRight from \"@ui5/webcomponents-icons/dist/arrow-right.js\";\nimport type UDExSideNavigationItem from \"./SideNavigationItem.js\";\n\nexport default function SideNavigationItemTemplate(this: UDExSideNavigationItem) {\n if (this.sideNavCollapsed) {\n return ItemTemplate.call(this);\n }\n\n return (\n <li id={this._id} class=\"ui5-sn-list-li\" role=\"none\">\n {ItemTemplate.call(this)}\n </li>\n );\n}\n\nfunction ItemTemplate(this: UDExSideNavigationItem) {\n const EffectiveTag = this._effectiveTag;\n\n return (\n <>\n <EffectiveTag\n id={this._id}\n data-sap-focus-ref\n class={`ui5-sn-item ui5-sn-item-level1 ${this._classes}`}\n role={this.ariaRole}\n onKeyDown={this._onkeydown}\n onKeyUp={this._onkeyup}\n onClick={this._onclick}\n onFocusIn={this._onfocusin}\n tabIndex={this.effectiveTabIndex}\n aria-current={this._ariaCurrent}\n aria-selected={this._ariaSelected}\n title={this._tooltip}\n aria-disabled={this.effectiveDisabled}\n href={this._href}\n target={this._target}\n aria-haspopup={this._ariaHasPopup}\n onFocusOut={this._onfocusout}\n onMouseEnter={this._onmouseenter}\n onMouseLeave={this._onmouseleave}\n aria-checked={this._ariaChecked}\n aria-owns={this._groupId}\n aria-label={this._ariaLabel}\n aria-expanded={this._expanded}\n aria-labelledby={this._textId}\n aria-describedby={this._describedBy}>\n {this.sideNavCollapsed ? (\n <Icon class=\"ui5-sn-item-icon\" name={this.icon} />\n ) : (\n this.icon && <Icon class=\"ui5-sn-item-icon\" name={this.icon} />\n )}\n <div class=\"ui5-sn-item-text\" id={this._textId}>{this.text}</div>\n {this.hasTag && (\n <div id={this._tagId} class=\"ui5-sn-item-tag-slot\">\n <slot name=\"tag\" />\n </div>\n )}\n {this.sideNavCollapsed ? (\n !!this.items.length && (\n <div class=\"ui5-sn-item-toggle-icon-wrap\">\n <Icon class=\"ui5-sn-item-toggle-icon\" name={navRightArrow} />\n </div>\n )\n ) : (\n !!this.items.length && (\n <div class=\"ui5-sn-item-toggle-icon-wrap\">\n <Icon\n class=\"ui5-sn-item-toggle-icon\"\n name={navRightArrow}\n accessibleName={this._arrowTooltip}\n showTooltip={true}\n onClick={this._onToggleClick}\n />\n </div>\n )\n )}\n {this.isExternalLink && (\n <Icon class=\"ui5-sn-item-external-link-icon\" name={arrowRight} />\n )}\n </EffectiveTag>\n {!this.sideNavCollapsed && !!this.items.length && (\n <ul\n id={this._groupId}\n class=\"ui5-sn-item-ul\"\n aria-label={this.accessibleName || this.text}\n role=\"group\">\n <slot />\n </ul>\n )}\n {this._selectableItemDescriptionText && (\n <span id={this._selectableItemDescriptionId} class=\"ui5-hidden-text\">{this._selectableItemDescriptionText}</span>\n )}\n </>\n );\n}\n"]}
@@ -30,6 +30,13 @@ declare class UDExSideNavigationMobile extends UI5Element {
30
30
  * @private
31
31
  */
32
32
  _dropdownOpened: boolean;
33
+ /**
34
+ * Holds the computed max-height of the opened dropdown, so it spans from below the
35
+ * trigger down to a fixed gap above the viewport bottom (matching the mobile secondary navigation).
36
+ *
37
+ * @private
38
+ */
39
+ _dropdownHeight?: string;
33
40
  /**
34
41
  * Defines the main items of the `ui5-side-navigation`. Use the `ui5-side-navigation-item` component
35
42
  * for the top-level items, and the `ui5-side-navigation-sub-item` component for second-level items, nested
@@ -47,6 +54,13 @@ declare class UDExSideNavigationMobile extends UI5Element {
47
54
  * @public
48
55
  */
49
56
  fixedItems: Slot<UDExSideNavigationItem | UDExSideNavigationGroup>;
57
+ /**
58
+ * Defines additional free-form content rendered in a dedicated area at the bottom
59
+ * of the dropdown, below the navigation items.
60
+ *
61
+ * @public
62
+ */
63
+ additionalContent: Slot<HTMLElement>;
50
64
  /**
51
65
  * Indicates selected item element
52
66
  *
@@ -55,7 +69,11 @@ declare class UDExSideNavigationMobile extends UI5Element {
55
69
  */
56
70
  _selectedItem: SelectedItem;
57
71
  _navItems: Array<UDExSideNavigationItem | UDExSideNavigationGroup>;
72
+ _additionalContentNodes: Array<HTMLElement>;
58
73
  _dropdown: UDExDropdown;
74
+ _boundUpdateDropdownHeight: () => void;
75
+ constructor();
76
+ onExitDOM(): void;
59
77
  onBeforeRendering(): void;
60
78
  onAfterRendering(): void;
61
79
  _setNavItems: (sideNavigation: HTMLElement | null) => void;
@@ -63,6 +81,7 @@ declare class UDExSideNavigationMobile extends UI5Element {
63
81
  _afterDropdownOpen(): void;
64
82
  _afterDropdownClose(): void;
65
83
  handleTriggerClick(): void;
84
+ _updateDropdownHeight(): void;
66
85
  handleKeydown(event: KeyboardEvent): void;
67
86
  _handleSelectionChanged(event: {
68
87
  detail: {
@@ -12,7 +12,8 @@ import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
12
12
  import SideNavigationMobileTemplate from "./SideNavigationMobileTemplate.js";
13
13
  // Styles
14
14
  import SideNavigationMobileCss from "./generated/themes/SideNavigationMobile.css.js";
15
- import SideNavigationMobileDropdownCss from "./generated/themes/SideNavigationMobileDropdown.css.js";
15
+ // Gap (in px) kept between the bottom of the opened dropdown and the viewport bottom.
16
+ const DROPDOWN_BOTTOM_GAP = 24;
16
17
  /**
17
18
  * @class
18
19
  *
@@ -32,7 +33,7 @@ import SideNavigationMobileDropdownCss from "./generated/themes/SideNavigationMo
32
33
  */
33
34
  let UDExSideNavigationMobile = class UDExSideNavigationMobile extends UI5Element {
34
35
  constructor() {
35
- super(...arguments);
36
+ super();
36
37
  this._setNavItems = (sideNavigation) => {
37
38
  if (!sideNavigation) {
38
39
  return;
@@ -42,7 +43,16 @@ let UDExSideNavigationMobile = class UDExSideNavigationMobile extends UI5Element
42
43
  sideNavigation.appendChild(item);
43
44
  }
44
45
  });
46
+ this._additionalContentNodes?.forEach(node => {
47
+ if (node.parentElement !== sideNavigation) {
48
+ sideNavigation.appendChild(node);
49
+ }
50
+ });
45
51
  };
52
+ this._boundUpdateDropdownHeight = this._updateDropdownHeight.bind(this);
53
+ }
54
+ onExitDOM() {
55
+ window.removeEventListener("resize", this._boundUpdateDropdownHeight);
46
56
  }
47
57
  onBeforeRendering() {
48
58
  const items = this.getSlottedNodes("navItems");
@@ -54,6 +64,7 @@ let UDExSideNavigationMobile = class UDExSideNavigationMobile extends UI5Element
54
64
  if (!this._selectedItem && this._navItems?.length) {
55
65
  this._selectedItem = this.getSelectedItem() || null;
56
66
  }
67
+ this._additionalContentNodes = this.getSlottedNodes("additionalContent");
57
68
  }
58
69
  onAfterRendering() {
59
70
  this._dropdown = this._getResponsePopover();
@@ -63,13 +74,26 @@ let UDExSideNavigationMobile = class UDExSideNavigationMobile extends UI5Element
63
74
  }
64
75
  _afterDropdownOpen() {
65
76
  this._dropdownOpened = true;
77
+ window.addEventListener("resize", this._boundUpdateDropdownHeight);
66
78
  }
67
79
  _afterDropdownClose() {
68
80
  this._dropdownOpened = false;
81
+ window.removeEventListener("resize", this._boundUpdateDropdownHeight);
69
82
  }
70
83
  handleTriggerClick() {
84
+ if (!this._dropdown.open) {
85
+ this._updateDropdownHeight();
86
+ }
71
87
  this._dropdown.open = !this._dropdown.open;
72
88
  }
89
+ _updateDropdownHeight() {
90
+ const trigger = this.shadowRoot.querySelector(".udex-side-navigation-mobile__trigger");
91
+ if (!trigger) {
92
+ return;
93
+ }
94
+ const { bottom } = trigger.getBoundingClientRect();
95
+ this._dropdownHeight = `${window.innerHeight - bottom - DROPDOWN_BOTTOM_GAP}px`;
96
+ }
73
97
  handleKeydown(event) {
74
98
  if ((event.key === "Enter" || event.key === " ")) {
75
99
  this.handleTriggerClick();
@@ -90,12 +114,18 @@ let UDExSideNavigationMobile = class UDExSideNavigationMobile extends UI5Element
90
114
  __decorate([
91
115
  property({ noAttribute: true, type: Boolean })
92
116
  ], UDExSideNavigationMobile.prototype, "_dropdownOpened", void 0);
117
+ __decorate([
118
+ property({ noAttribute: true })
119
+ ], UDExSideNavigationMobile.prototype, "_dropdownHeight", void 0);
93
120
  __decorate([
94
121
  slot({ type: HTMLElement, invalidateOnChildChange: true, "default": true })
95
122
  ], UDExSideNavigationMobile.prototype, "navItems", void 0);
96
123
  __decorate([
97
124
  slot({ type: HTMLElement, invalidateOnChildChange: true })
98
125
  ], UDExSideNavigationMobile.prototype, "fixedItems", void 0);
126
+ __decorate([
127
+ slot({ type: HTMLElement, invalidateOnChildChange: true })
128
+ ], UDExSideNavigationMobile.prototype, "additionalContent", void 0);
99
129
  __decorate([
100
130
  property({ noAttribute: true, type: Object })
101
131
  ], UDExSideNavigationMobile.prototype, "_selectedItem", void 0);
@@ -104,7 +134,7 @@ UDExSideNavigationMobile = __decorate([
104
134
  tag: "udex-side-navigation-mobile",
105
135
  renderer: jsxRenderer,
106
136
  template: SideNavigationMobileTemplate,
107
- styles: [SideNavigationMobileCss, SideNavigationMobileDropdownCss],
137
+ styles: [SideNavigationMobileCss],
108
138
  })
109
139
  ], UDExSideNavigationMobile);
110
140
  UDExSideNavigationMobile.define();
@@ -1 +1 @@
1
- {"version":3,"file":"SideNavigationMobile.js","sourceRoot":"","sources":["../src/SideNavigationMobile.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot, Slot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport SideNavigationMobileTemplate from \"./SideNavigationMobileTemplate.js\";\nimport type UDExDropdown from \"./Dropdown.js\";\nimport type UDExSideNavigationItem from \"./SideNavigationItem.js\";\nimport type UDExSideNavigationSubItem from \"./SideNavigationSubItem.js\";\nimport type UDExSideNavigationGroup from \"./SideNavigationGroup.js\";\n\n// Styles\nimport SideNavigationMobileCss from \"./generated/themes/SideNavigationMobile.css.js\";\nimport SideNavigationMobileDropdownCss from \"./generated/themes/SideNavigationMobileDropdown.css.js\";\n\nexport type SelectedItem = UDExSideNavigationItem | UDExSideNavigationSubItem | null;\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-side-navigation-mobile</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/SideNavigation.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-side-navigation-mobile\",\n renderer: jsxRenderer,\n template: SideNavigationMobileTemplate,\n styles: [SideNavigationMobileCss, SideNavigationMobileDropdownCss],\n})\n\nclass UDExSideNavigationMobile extends UI5Element {\n /**\n * Indicates if dropdown is opened\n *\n * @default false\n * @private\n */\n @property({ noAttribute: true, type: Boolean })\n _dropdownOpened!: boolean;\n\n /**\n * Defines the main items of the `ui5-side-navigation`. Use the `ui5-side-navigation-item` component\n * for the top-level items, and the `ui5-side-navigation-sub-item` component for second-level items, nested\n * inside the items.\n *\n * @public\n */\n @slot({ type: HTMLElement, invalidateOnChildChange: true, \"default\": true })\n navItems!: DefaultSlot<UDExSideNavigationItem | UDExSideNavigationGroup>;\n\n /**\n * Defines the fixed items at the bottom of the `ui5-side-navigation`. Use the `ui5-side-navigation-item` component\n * for the fixed items, and optionally the `ui5-side-navigation-sub-item` component to provide second-level items inside them.\n *\n * **Note:** In order to achieve the best user experience, it is recommended that you keep the fixed items \"flat\" (do not pass sub-items)\n *\n * @public\n */\n @slot({ type: HTMLElement, invalidateOnChildChange: true })\n fixedItems!: Slot<UDExSideNavigationItem | UDExSideNavigationGroup>;\n\n /**\n * Indicates selected item element\n *\n * @default false\n * @private\n */\n @property({ noAttribute: true, type: Object })\n _selectedItem!: SelectedItem;\n\n _navItems!: Array<UDExSideNavigationItem | UDExSideNavigationGroup>;\n _dropdown!: UDExDropdown;\n\n onBeforeRendering() {\n const items = this.getSlottedNodes<UDExSideNavigationItem | UDExSideNavigationGroup>(\"navItems\");\n const fixedItems = this.getSlottedNodes<UDExSideNavigationItem | UDExSideNavigationGroup>(\"fixedItems\");\n const allItems = items.concat(fixedItems);\n if (allItems.length > 0) {\n this._navItems = allItems;\n }\n if (!this._selectedItem && this._navItems?.length) {\n this._selectedItem = this.getSelectedItem() || null;\n }\n }\n\n onAfterRendering() {\n this._dropdown = this._getResponsePopover();\n }\n\n _setNavItems = (sideNavigation: HTMLElement | null) => {\n if (!sideNavigation) {\n return;\n }\n this._navItems?.forEach(item => {\n if (item.parentElement !== sideNavigation) {\n sideNavigation.appendChild(item);\n }\n });\n };\n\n _getResponsePopover(): UDExDropdown {\n return this.shadowRoot!.querySelector<UDExDropdown>(`[udex-dropdown]`)!;\n }\n\n _afterDropdownOpen() {\n this._dropdownOpened = true;\n }\n\n _afterDropdownClose() {\n this._dropdownOpened = false;\n }\n\n handleTriggerClick() {\n this._dropdown.open = !this._dropdown.open;\n }\n\n handleKeydown(event: KeyboardEvent) {\n if ((event.key === \"Enter\" || event.key === \" \")) {\n this.handleTriggerClick();\n }\n }\n\n _handleSelectionChanged(event: {detail: { item: UDExSideNavigationItem | UDExSideNavigationSubItem }}) {\n this._dropdown = this._getResponsePopover();\n this._dropdown.open = false;\n this._selectedItem = event.detail.item;\n }\n\n getSelectedItem(): UDExSideNavigationItem | UDExSideNavigationSubItem | undefined {\n const items = this._navItems.reduce((result, item) => {\n return (result).concat((item.allItems as UDExSideNavigationSubItem[]) || []);\n }, new Array<UDExSideNavigationItem | UDExSideNavigationSubItem>());\n return items.find(item => item?._selected);\n }\n}\n\nUDExSideNavigationMobile.define();\n\nexport default UDExSideNavigationMobile;\n"]}
1
+ {"version":3,"file":"SideNavigationMobile.js","sourceRoot":"","sources":["../src/SideNavigationMobile.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot, Slot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport SideNavigationMobileTemplate from \"./SideNavigationMobileTemplate.js\";\nimport type UDExDropdown from \"./Dropdown.js\";\nimport type UDExSideNavigationItem from \"./SideNavigationItem.js\";\nimport type UDExSideNavigationSubItem from \"./SideNavigationSubItem.js\";\nimport type UDExSideNavigationGroup from \"./SideNavigationGroup.js\";\n\n// Styles\nimport SideNavigationMobileCss from \"./generated/themes/SideNavigationMobile.css.js\";\n\nexport type SelectedItem = UDExSideNavigationItem | UDExSideNavigationSubItem | null;\n\n// Gap (in px) kept between the bottom of the opened dropdown and the viewport bottom.\nconst DROPDOWN_BOTTOM_GAP = 24;\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-side-navigation-mobile</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/SideNavigation.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-side-navigation-mobile\",\n renderer: jsxRenderer,\n template: SideNavigationMobileTemplate,\n styles: [SideNavigationMobileCss],\n})\n\nclass UDExSideNavigationMobile extends UI5Element {\n /**\n * Indicates if dropdown is opened\n *\n * @default false\n * @private\n */\n @property({ noAttribute: true, type: Boolean })\n _dropdownOpened!: boolean;\n\n /**\n * Holds the computed max-height of the opened dropdown, so it spans from below the\n * trigger down to a fixed gap above the viewport bottom (matching the mobile secondary navigation).\n *\n * @private\n */\n @property({ noAttribute: true })\n _dropdownHeight?: string;\n\n /**\n * Defines the main items of the `ui5-side-navigation`. Use the `ui5-side-navigation-item` component\n * for the top-level items, and the `ui5-side-navigation-sub-item` component for second-level items, nested\n * inside the items.\n *\n * @public\n */\n @slot({ type: HTMLElement, invalidateOnChildChange: true, \"default\": true })\n navItems!: DefaultSlot<UDExSideNavigationItem | UDExSideNavigationGroup>;\n\n /**\n * Defines the fixed items at the bottom of the `ui5-side-navigation`. Use the `ui5-side-navigation-item` component\n * for the fixed items, and optionally the `ui5-side-navigation-sub-item` component to provide second-level items inside them.\n *\n * **Note:** In order to achieve the best user experience, it is recommended that you keep the fixed items \"flat\" (do not pass sub-items)\n *\n * @public\n */\n @slot({ type: HTMLElement, invalidateOnChildChange: true })\n fixedItems!: Slot<UDExSideNavigationItem | UDExSideNavigationGroup>;\n\n /**\n * Defines additional free-form content rendered in a dedicated area at the bottom\n * of the dropdown, below the navigation items.\n *\n * @public\n */\n @slot({ type: HTMLElement, invalidateOnChildChange: true })\n additionalContent!: Slot<HTMLElement>;\n\n /**\n * Indicates selected item element\n *\n * @default false\n * @private\n */\n @property({ noAttribute: true, type: Object })\n _selectedItem!: SelectedItem;\n\n _navItems!: Array<UDExSideNavigationItem | UDExSideNavigationGroup>;\n _additionalContentNodes!: Array<HTMLElement>;\n _dropdown!: UDExDropdown;\n _boundUpdateDropdownHeight: () => void;\n\n constructor() {\n super();\n this._boundUpdateDropdownHeight = this._updateDropdownHeight.bind(this);\n }\n\n onExitDOM() {\n window.removeEventListener(\"resize\", this._boundUpdateDropdownHeight);\n }\n\n onBeforeRendering() {\n const items = this.getSlottedNodes<UDExSideNavigationItem | UDExSideNavigationGroup>(\"navItems\");\n const fixedItems = this.getSlottedNodes<UDExSideNavigationItem | UDExSideNavigationGroup>(\"fixedItems\");\n const allItems = items.concat(fixedItems);\n if (allItems.length > 0) {\n this._navItems = allItems;\n }\n if (!this._selectedItem && this._navItems?.length) {\n this._selectedItem = this.getSelectedItem() || null;\n }\n this._additionalContentNodes = this.getSlottedNodes<HTMLElement>(\"additionalContent\");\n }\n\n onAfterRendering() {\n this._dropdown = this._getResponsePopover();\n }\n\n _setNavItems = (sideNavigation: HTMLElement | null) => {\n if (!sideNavigation) {\n return;\n }\n this._navItems?.forEach(item => {\n if (item.parentElement !== sideNavigation) {\n sideNavigation.appendChild(item);\n }\n });\n this._additionalContentNodes?.forEach(node => {\n if (node.parentElement !== sideNavigation) {\n sideNavigation.appendChild(node);\n }\n });\n };\n\n _getResponsePopover(): UDExDropdown {\n return this.shadowRoot!.querySelector<UDExDropdown>(`[udex-dropdown]`)!;\n }\n\n _afterDropdownOpen() {\n this._dropdownOpened = true;\n window.addEventListener(\"resize\", this._boundUpdateDropdownHeight);\n }\n\n _afterDropdownClose() {\n this._dropdownOpened = false;\n window.removeEventListener(\"resize\", this._boundUpdateDropdownHeight);\n }\n\n handleTriggerClick() {\n if (!this._dropdown.open) {\n this._updateDropdownHeight();\n }\n this._dropdown.open = !this._dropdown.open;\n }\n\n _updateDropdownHeight() {\n const trigger = this.shadowRoot!.querySelector<HTMLElement>(\".udex-side-navigation-mobile__trigger\");\n if (!trigger) {\n return;\n }\n const { bottom } = trigger.getBoundingClientRect();\n this._dropdownHeight = `${window.innerHeight - bottom - DROPDOWN_BOTTOM_GAP}px`;\n }\n\n handleKeydown(event: KeyboardEvent) {\n if ((event.key === \"Enter\" || event.key === \" \")) {\n this.handleTriggerClick();\n }\n }\n\n _handleSelectionChanged(event: {detail: { item: UDExSideNavigationItem | UDExSideNavigationSubItem }}) {\n this._dropdown = this._getResponsePopover();\n this._dropdown.open = false;\n this._selectedItem = event.detail.item;\n }\n\n getSelectedItem(): UDExSideNavigationItem | UDExSideNavigationSubItem | undefined {\n const items = this._navItems.reduce((result, item) => {\n return (result).concat((item.allItems as UDExSideNavigationSubItem[]) || []);\n }, new Array<UDExSideNavigationItem | UDExSideNavigationSubItem>());\n return items.find(item => item?._selected);\n }\n}\n\nUDExSideNavigationMobile.define();\n\nexport default UDExSideNavigationMobile;\n"]}
@@ -5,7 +5,6 @@ import UDExSideNavigation from "./SideNavigation.js";
5
5
  import { PopoverActualHorizontalAlign, PopoverActualPlacement } from "@ui5/webcomponents/Popover.js";
6
6
  import slimArrowDown from "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
7
7
  export default function SideNavigationMobileTemplate() {
8
- return (_jsxs(_Fragment, { children: [_jsxs("div", { id: `udex-${this._id}-side-navigation-mobile__opener`, class: "udex-side-navigation-mobile__trigger", "aria-haspopup": "true", tabindex: 0, onKeyDown: this.handleKeydown, onClick: this.handleTriggerClick, "accessible-role": "button", "active": this._dropdownOpened || undefined, children: [_jsx("div", { class: "udex-side-navigation-mobile__selected-item", children: this._selectedItem ? (_jsxs(_Fragment, { children: [this._selectedItem.icon ? (_jsx(Icon, { class: "udex-side-navigation-mobile__selected-item-icon", name: this._selectedItem.icon })) : undefined, _jsx("span", { children: this._selectedItem.text })] })) : undefined }), _jsx(Icon, { class: "udex-side-navigation-mobile__trigger-toggle-icon", name: slimArrowDown })] }), _jsx(UDExDropdown, { id: `udex-${this._id}-side-navigation-mobile__popover`, class: "udex-side-navigation-mobile__popover", placement: PopoverActualPlacement.Bottom, onOpen: this._afterDropdownOpen, onClose: this._afterDropdownClose, horizontalAlign: PopoverActualHorizontalAlign.Stretch, height: "none", "opener": `udex-${this._id}-side-navigation-mobile__opener`,
9
- "disable-target-overlap": "true", children: _jsx(UDExSideNavigation, { ref: this._setNavItems, onSelectionChange: this._handleSelectionChanged, "in-mobile": "" }) })] }));
8
+ return (_jsxs(_Fragment, { children: [_jsxs("div", { id: `udex-${this._id}-side-navigation-mobile__opener`, class: "udex-side-navigation-mobile__trigger", "aria-haspopup": "true", tabindex: 0, onKeyDown: this.handleKeydown, onClick: this.handleTriggerClick, "accessible-role": "button", "active": this._dropdownOpened || undefined, children: [_jsx("div", { class: "udex-side-navigation-mobile__selected-item", children: this._selectedItem ? (_jsxs(_Fragment, { children: [this._selectedItem.icon ? (_jsx(Icon, { class: "udex-side-navigation-mobile__selected-item-icon", name: this._selectedItem.icon })) : undefined, _jsx("span", { children: this._selectedItem.text })] })) : undefined }), _jsx(Icon, { class: "udex-side-navigation-mobile__trigger-toggle-icon", name: slimArrowDown })] }), _jsx(UDExDropdown, { id: `udex-${this._id}-side-navigation-mobile__popover`, class: "udex-side-navigation-mobile__popover", placement: PopoverActualPlacement.Bottom, onOpen: this._afterDropdownOpen, onClose: this._afterDropdownClose, horizontalAlign: PopoverActualHorizontalAlign.Stretch, height: this._dropdownHeight, opener: `udex-${this._id}-side-navigation-mobile__opener`, "disable-target-overlap": "true", children: _jsx(UDExSideNavigation, { ref: this._setNavItems, onSelectionChange: this._handleSelectionChanged, "in-mobile": "" }) })] }));
10
9
  }
11
10
  //# sourceMappingURL=SideNavigationMobileTemplate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SideNavigationMobileTemplate.js","sourceRoot":"","sources":["../src/SideNavigationMobileTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,kBAAkB,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACrG,OAAO,aAAa,MAAM,kDAAkD,CAAC;AAE7E,MAAM,CAAC,OAAO,UAAU,4BAA4B;IAClD,OAAO,CACL,8BACE,eACE,EAAE,EAAE,QAAQ,IAAI,CAAC,GAAG,iCAAiC,EACrD,KAAK,EAAC,sCAAsC,mBAC9B,MAAM,EACpB,QAAQ,EAAE,CAAC,EACX,SAAS,EAAE,IAAI,CAAC,aAAa,EAC7B,OAAO,EAAE,IAAI,CAAC,kBAAkB,qBAChB,QAAQ,EAEtB,QAAQ,EAAE,IAAI,CAAC,eAAe,IAAI,SAAS,aAE7C,cAAK,KAAK,EAAC,4CAA4C,YACpD,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CACpB,8BACG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CACzB,KAAC,IAAI,IACH,KAAK,EAAC,iDAAiD,EACvD,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,GACxB,CACR,CAAC,CAAC,CAAC,SAAS,EACb,yBAAO,IAAI,CAAC,aAAa,CAAC,IAAI,GAAQ,IACrC,CACJ,CAAC,CAAC,CAAC,SAAS,GACT,EACN,KAAC,IAAI,IACH,KAAK,EAAC,kDAAkD,EACxD,IAAI,EAAE,aAAa,GACd,IACH,EACN,KAAC,YAAY,IACX,EAAE,EAAE,QAAQ,IAAI,CAAC,GAAG,kCAAkC,EACtD,KAAK,EAAC,sCAAsC,EAC5C,SAAS,EAAE,sBAAsB,CAAC,MAAM,EACxC,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAC/B,OAAO,EAAE,IAAI,CAAC,mBAAmB,EACjC,eAAe,EAAE,4BAA4B,CAAC,OAAO,EACrD,MAAM,EAAC,MAAM,EAEX,QAAQ,EAAE,QAAQ,IAAI,CAAC,GAAG,iCAAiC;gBAC3D,wBAAwB,EAAE,MAAM,YAElC,KAAC,kBAAkB,IACjB,GAAG,EAAE,IAAI,CAAC,YAAY,EACtB,iBAAiB,EAAE,IAAI,CAAC,uBAA8B,EAChD,WAAW,EAAE,EAAE,GACF,GACR,IACd,CACJ,CAAC;AACJ,CAAC","sourcesContent":["import type UDExSideNavigationMobile from \"./SideNavigationMobile.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport UDExDropdown from \"./Dropdown.js\";\nimport UDExSideNavigation from \"./SideNavigation.js\";\nimport { PopoverActualHorizontalAlign, PopoverActualPlacement } from \"@ui5/webcomponents/Popover.js\";\nimport slimArrowDown from \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\n\nexport default function SideNavigationMobileTemplate(this: UDExSideNavigationMobile) {\n return (\n <>\n <div\n id={`udex-${this._id}-side-navigation-mobile__opener`}\n class=\"udex-side-navigation-mobile__trigger\"\n aria-haspopup=\"true\"\n tabindex={0}\n onKeyDown={this.handleKeydown}\n onClick={this.handleTriggerClick}\n accessible-role=\"button\"\n {...{\n \"active\": this._dropdownOpened || undefined,\n }}>\n <div class=\"udex-side-navigation-mobile__selected-item\">\n {this._selectedItem ? (\n <>\n {this._selectedItem.icon ? (\n <Icon\n class=\"udex-side-navigation-mobile__selected-item-icon\"\n name={this._selectedItem.icon}>\n </Icon>\n ) : undefined}\n <span>{this._selectedItem.text}</span>\n </>\n ) : undefined}\n </div>\n <Icon\n class=\"udex-side-navigation-mobile__trigger-toggle-icon\"\n name={slimArrowDown}>\n </Icon>\n </div>\n <UDExDropdown\n id={`udex-${this._id}-side-navigation-mobile__popover`}\n class=\"udex-side-navigation-mobile__popover\"\n placement={PopoverActualPlacement.Bottom}\n onOpen={this._afterDropdownOpen}\n onClose={this._afterDropdownClose}\n horizontalAlign={PopoverActualHorizontalAlign.Stretch}\n height=\"none\"\n {...{\n \"opener\": `udex-${this._id}-side-navigation-mobile__opener`,\n \"disable-target-overlap\": \"true\",\n }}>\n <UDExSideNavigation\n ref={this._setNavItems}\n onSelectionChange={this._handleSelectionChanged as any}\n {...{ \"in-mobile\": \"\" }}>\n </UDExSideNavigation>\n </UDExDropdown>\n </>\n );\n}\n"]}
1
+ {"version":3,"file":"SideNavigationMobileTemplate.js","sourceRoot":"","sources":["../src/SideNavigationMobileTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,kBAAkB,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACrG,OAAO,aAAa,MAAM,kDAAkD,CAAC;AAE7E,MAAM,CAAC,OAAO,UAAU,4BAA4B;IAClD,OAAO,CACL,8BACE,eACE,EAAE,EAAE,QAAQ,IAAI,CAAC,GAAG,iCAAiC,EACrD,KAAK,EAAC,sCAAsC,mBAC9B,MAAM,EACpB,QAAQ,EAAE,CAAC,EACX,SAAS,EAAE,IAAI,CAAC,aAAa,EAC7B,OAAO,EAAE,IAAI,CAAC,kBAAkB,qBAChB,QAAQ,EAEtB,QAAQ,EAAE,IAAI,CAAC,eAAe,IAAI,SAAS,aAE7C,cAAK,KAAK,EAAC,4CAA4C,YACpD,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CACpB,8BACG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CACzB,KAAC,IAAI,IACH,KAAK,EAAC,iDAAiD,EACvD,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,GACxB,CACR,CAAC,CAAC,CAAC,SAAS,EACb,yBAAO,IAAI,CAAC,aAAa,CAAC,IAAI,GAAQ,IACrC,CACJ,CAAC,CAAC,CAAC,SAAS,GACT,EACN,KAAC,IAAI,IACH,KAAK,EAAC,kDAAkD,EACxD,IAAI,EAAE,aAAa,GACd,IACH,EACN,KAAC,YAAY,IACX,EAAE,EAAE,QAAQ,IAAI,CAAC,GAAG,kCAAkC,EACtD,KAAK,EAAC,sCAAsC,EAC5C,SAAS,EAAE,sBAAsB,CAAC,MAAM,EACxC,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAC/B,OAAO,EAAE,IAAI,CAAC,mBAAmB,EACjC,eAAe,EAAE,4BAA4B,CAAC,OAAO,EACrD,MAAM,EAAE,IAAI,CAAC,eAAe,EAC5B,MAAM,EAAE,QAAQ,IAAI,CAAC,GAAG,iCAAiC,4BAClC,MAAM,YAC7B,KAAC,kBAAkB,IACjB,GAAG,EAAE,IAAI,CAAC,YAAY,EACtB,iBAAiB,EAAE,IAAI,CAAC,uBAA8B,EAChD,WAAW,EAAE,EAAE,GACF,GACR,IACd,CACJ,CAAC;AACJ,CAAC","sourcesContent":["import type UDExSideNavigationMobile from \"./SideNavigationMobile.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport UDExDropdown from \"./Dropdown.js\";\nimport UDExSideNavigation from \"./SideNavigation.js\";\nimport { PopoverActualHorizontalAlign, PopoverActualPlacement } from \"@ui5/webcomponents/Popover.js\";\nimport slimArrowDown from \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\n\nexport default function SideNavigationMobileTemplate(this: UDExSideNavigationMobile) {\n return (\n <>\n <div\n id={`udex-${this._id}-side-navigation-mobile__opener`}\n class=\"udex-side-navigation-mobile__trigger\"\n aria-haspopup=\"true\"\n tabindex={0}\n onKeyDown={this.handleKeydown}\n onClick={this.handleTriggerClick}\n accessible-role=\"button\"\n {...{\n \"active\": this._dropdownOpened || undefined,\n }}>\n <div class=\"udex-side-navigation-mobile__selected-item\">\n {this._selectedItem ? (\n <>\n {this._selectedItem.icon ? (\n <Icon\n class=\"udex-side-navigation-mobile__selected-item-icon\"\n name={this._selectedItem.icon}>\n </Icon>\n ) : undefined}\n <span>{this._selectedItem.text}</span>\n </>\n ) : undefined}\n </div>\n <Icon\n class=\"udex-side-navigation-mobile__trigger-toggle-icon\"\n name={slimArrowDown}>\n </Icon>\n </div>\n <UDExDropdown\n id={`udex-${this._id}-side-navigation-mobile__popover`}\n class=\"udex-side-navigation-mobile__popover\"\n placement={PopoverActualPlacement.Bottom}\n onOpen={this._afterDropdownOpen}\n onClose={this._afterDropdownClose}\n horizontalAlign={PopoverActualHorizontalAlign.Stretch}\n height={this._dropdownHeight}\n opener={`udex-${this._id}-side-navigation-mobile__opener`}\n disable-target-overlap=\"true\">\n <UDExSideNavigation\n ref={this._setNavItems}\n onSelectionChange={this._handleSelectionChanged as any}\n {...{ \"in-mobile\": \"\" }}>\n </UDExSideNavigation>\n </UDExDropdown>\n </>\n );\n}\n"]}
@@ -1,3 +1,4 @@
1
+ import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
1
2
  import type { DefaultSlot } from "@ui5/webcomponents-base/dist/UI5Element.js";
2
3
  import SideNavigationSubItem from "@ui5/webcomponents-fiori/dist/SideNavigationSubItem.js";
3
4
  /**
@@ -30,11 +31,13 @@ declare class UDExSideNavigationSubItem extends SideNavigationSubItem {
30
31
  * @public
31
32
  */
32
33
  subItems: DefaultSlot<UDExSideNavigationSubItem>;
34
+ static i18nBundle: I18nBundle;
35
+ onBeforeRendering(): void;
33
36
  get hasSubItems(): boolean;
34
37
  get focusableItems(): Array<UDExSideNavigationSubItem>;
35
38
  get selectableItems(): Array<UDExSideNavigationSubItem>;
36
39
  get allItems(): Array<UDExSideNavigationSubItem>;
37
- onBeforeRendering(): void;
40
+ get _arrowTooltip(): string;
38
41
  get _subGroupId(): string | undefined;
39
42
  get _subExpanded(): boolean | undefined;
40
43
  _onToggleClick(e: Event): void;
@@ -4,15 +4,19 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
+ var UDExSideNavigationSubItem_1;
7
8
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
8
9
  import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
9
10
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
10
11
  import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
12
+ import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
11
13
  import { isLeft, isRight, isMinus, isPlus, } from "@ui5/webcomponents-base/dist/Keys.js";
12
14
  import SideNavigationSubItem from "@ui5/webcomponents-fiori/dist/SideNavigationSubItem.js";
13
15
  import SideNavigationSubItemTemplate from "./SideNavigationSubItemTemplate.js";
16
+ import { EXPAND, COLLAPSE } from "./generated/i18n/i18n-defaults.js";
14
17
  // Styles
15
18
  import SideNavigationSubItemCss from "./generated/themes/SideNavigationSubItem.css.js";
19
+ import SideNavigationItemCss from "./generated/themes/SideNavigationItem.css.js";
16
20
  /**
17
21
  * @class
18
22
  *
@@ -30,7 +34,7 @@ import SideNavigationSubItemCss from "./generated/themes/SideNavigationSubItem.c
30
34
  * @extends SideNavigationSubItem
31
35
  * @public
32
36
  */
33
- let UDExSideNavigationSubItem = class UDExSideNavigationSubItem extends SideNavigationSubItem {
37
+ let UDExSideNavigationSubItem = UDExSideNavigationSubItem_1 = class UDExSideNavigationSubItem extends SideNavigationSubItem {
34
38
  constructor() {
35
39
  super(...arguments);
36
40
  /**
@@ -41,6 +45,14 @@ let UDExSideNavigationSubItem = class UDExSideNavigationSubItem extends SideNavi
41
45
  */
42
46
  this.expanded = false;
43
47
  }
48
+ onBeforeRendering() {
49
+ super.onBeforeRendering();
50
+ this.subItems.forEach(subItem => {
51
+ if (!subItem.hasAttribute("nested")) {
52
+ subItem.setAttribute("nested", "");
53
+ }
54
+ });
55
+ }
44
56
  get hasSubItems() {
45
57
  return this.subItems.length > 0;
46
58
  }
@@ -61,13 +73,10 @@ let UDExSideNavigationSubItem = class UDExSideNavigationSubItem extends SideNavi
61
73
  // click handler has no `sideNavigation` reference and cannot fire selection-change.
62
74
  return this.hasSubItems ? [this, ...this.subItems] : [this];
63
75
  }
64
- onBeforeRendering() {
65
- super.onBeforeRendering();
66
- this.subItems.forEach(subItem => {
67
- if (!subItem.hasAttribute("nested")) {
68
- subItem.setAttribute("nested", "");
69
- }
70
- });
76
+ get _arrowTooltip() {
77
+ return this.expanded
78
+ ? UDExSideNavigationSubItem_1.i18nBundle.getText(COLLAPSE)
79
+ : UDExSideNavigationSubItem_1.i18nBundle.getText(EXPAND);
71
80
  }
72
81
  get _subGroupId() {
73
82
  return this.hasSubItems ? `${this._id}-group` : undefined;
@@ -129,12 +138,15 @@ __decorate([
129
138
  __decorate([
130
139
  slot({ type: HTMLElement, invalidateOnChildChange: true, "default": true })
131
140
  ], UDExSideNavigationSubItem.prototype, "subItems", void 0);
132
- UDExSideNavigationSubItem = __decorate([
141
+ __decorate([
142
+ i18n("@sapudex/web-components")
143
+ ], UDExSideNavigationSubItem, "i18nBundle", void 0);
144
+ UDExSideNavigationSubItem = UDExSideNavigationSubItem_1 = __decorate([
133
145
  customElement({
134
146
  tag: "udex-side-navigation-sub-item",
135
147
  renderer: jsxRenderer,
136
148
  template: SideNavigationSubItemTemplate,
137
- styles: [SideNavigationSubItem.styles, SideNavigationSubItemCss],
149
+ styles: [SideNavigationSubItem.styles, SideNavigationItemCss, SideNavigationSubItemCss],
138
150
  dependencies: [UDExSideNavigationSubItem],
139
151
  })
140
152
  ], UDExSideNavigationSubItem);