@sapudex/web-components 2.4.2 → 2.5.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 (217) hide show
  1. package/dist/MastheadItem.d.ts +3 -0
  2. package/dist/MastheadItem.js +17 -1
  3. package/dist/MastheadItem.js.map +1 -1
  4. package/dist/MastheadMenu.d.ts +2 -1
  5. package/dist/MastheadMenu.js +16 -11
  6. package/dist/MastheadMenu.js.map +1 -1
  7. package/dist/MastheadMobileMenu.d.ts +4 -0
  8. package/dist/MastheadMobileMenu.js +44 -6
  9. package/dist/MastheadMobileMenu.js.map +1 -1
  10. package/dist/MastheadShell.d.ts +61 -16
  11. package/dist/MastheadShell.js +48 -68
  12. package/dist/MastheadShell.js.map +1 -1
  13. package/dist/SearchableListBase.js +4 -0
  14. package/dist/SearchableListBase.js.map +1 -1
  15. package/dist/TagGroup.js +3 -2
  16. package/dist/TagGroup.js.map +1 -1
  17. package/dist/assets/{InputSuggestions-BaPMxFm1.js → InputSuggestions-RQHqFxZ9.js} +1 -1
  18. package/dist/assets/{ListItemStandardExpandableTextTemplate-87ypSvqu.js → ListItemStandardExpandableTextTemplate-ClcY2jB2.js} +1 -1
  19. package/dist/assets/{bundle.esm-CoBHnkfj.js → bundle.esm-DGH8Pvav.js} +176 -176
  20. package/dist/assets/messagebundle_ar-C39XMRa3.js +1 -0
  21. package/dist/assets/messagebundle_bg-CFuqxDUo.js +1 -0
  22. package/dist/assets/messagebundle_cs-HZFdxP5k.js +1 -0
  23. package/dist/assets/messagebundle_da-Cb19y_UU.js +1 -0
  24. package/dist/assets/messagebundle_de-BPtfcnG8.js +1 -0
  25. package/dist/assets/messagebundle_el-BfR2BVvB.js +1 -0
  26. package/dist/assets/messagebundle_es-DEz3xznF.js +1 -0
  27. package/dist/assets/messagebundle_et-BHSda64J.js +1 -0
  28. package/dist/assets/messagebundle_fi-DTkxmWJb.js +1 -0
  29. package/dist/assets/messagebundle_fr-BEq1Nxlj.js +1 -0
  30. package/dist/assets/messagebundle_hr-BzWPMYA7.js +1 -0
  31. package/dist/assets/messagebundle_hu-DQvndOA8.js +1 -0
  32. package/dist/assets/messagebundle_it-Bx7wA4HY.js +1 -0
  33. package/dist/assets/messagebundle_iw-L2hZONxh.js +1 -0
  34. package/dist/assets/messagebundle_ko-D4ckbm7i.js +1 -0
  35. package/dist/assets/messagebundle_lt-BriAnQM8.js +1 -0
  36. package/dist/assets/messagebundle_lv-Di1Ng3Tk.js +1 -0
  37. package/dist/assets/messagebundle_nl-Bhq20VT1.js +1 -0
  38. package/dist/assets/messagebundle_no-bTeyeWYl.js +1 -0
  39. package/dist/assets/messagebundle_pl-BnBUJpAL.js +1 -0
  40. package/dist/assets/messagebundle_pt-Cd_ey78V.js +1 -0
  41. package/dist/assets/messagebundle_ro-Cy-zHe5i.js +1 -0
  42. package/dist/assets/messagebundle_ru-CiDd56L1.js +1 -0
  43. package/dist/assets/messagebundle_sk-DJS6mahY.js +1 -0
  44. package/dist/assets/messagebundle_sl-BUi3OLzP.js +1 -0
  45. package/dist/assets/messagebundle_sr-BtodsTa0.js +1 -0
  46. package/dist/assets/messagebundle_sv-CVVuFZcm.js +1 -0
  47. package/dist/assets/messagebundle_tr-CqVlQ8yY.js +1 -0
  48. package/dist/assets/messagebundle_uk-aDyDoabO.js +1 -0
  49. package/dist/assets/messagebundle_zh_CN-CTb6-Dhs.js +1 -0
  50. package/dist/assets/messagebundle_zh_TW-DtT5REQh.js +1 -0
  51. package/dist/css/themes/MastheadItem.css +1 -1
  52. package/dist/css/themes/MastheadShell.css +1 -1
  53. package/dist/css/themes/RatingIndicator.css +1 -1
  54. package/dist/css/themes/Slider.css +1 -1
  55. package/dist/custom-elements-internal.json +172 -47
  56. package/dist/custom-elements.json +168 -47
  57. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  58. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  59. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  60. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  61. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  62. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  63. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  64. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  65. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  66. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  67. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  68. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  69. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  70. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  71. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  72. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  73. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  74. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  75. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  76. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  77. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  78. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  79. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  80. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  81. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  82. package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
  83. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  84. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  85. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  86. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  87. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  88. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js +11 -11
  89. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js.map +1 -1
  90. package/dist/generated/templates/MastheadShellTemplate.lit.js +17 -14
  91. package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
  92. package/dist/generated/themes/MastheadItem.css.d.ts +1 -1
  93. package/dist/generated/themes/MastheadItem.css.js +1 -1
  94. package/dist/generated/themes/MastheadItem.css.js.map +1 -1
  95. package/dist/generated/themes/MastheadShell.css.d.ts +1 -1
  96. package/dist/generated/themes/MastheadShell.css.js +1 -1
  97. package/dist/generated/themes/MastheadShell.css.js.map +1 -1
  98. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  99. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  100. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  101. package/dist/generated/themes/Slider.css.d.ts +1 -1
  102. package/dist/generated/themes/Slider.css.js +1 -1
  103. package/dist/generated/themes/Slider.css.js.map +1 -1
  104. package/dist/messagebundle_ar.properties +3 -0
  105. package/dist/messagebundle_bg.properties +3 -0
  106. package/dist/messagebundle_cs.properties +3 -0
  107. package/dist/messagebundle_da.properties +3 -0
  108. package/dist/messagebundle_de.properties +3 -0
  109. package/dist/messagebundle_el.properties +3 -0
  110. package/dist/messagebundle_es.properties +3 -0
  111. package/dist/messagebundle_et.properties +3 -0
  112. package/dist/messagebundle_fi.properties +3 -0
  113. package/dist/messagebundle_fr.properties +3 -0
  114. package/dist/messagebundle_hr.properties +3 -0
  115. package/dist/messagebundle_hu.properties +3 -0
  116. package/dist/messagebundle_it.properties +3 -0
  117. package/dist/messagebundle_iw.properties +3 -1
  118. package/dist/messagebundle_ko.properties +3 -0
  119. package/dist/messagebundle_lt.properties +3 -0
  120. package/dist/messagebundle_lv.properties +3 -0
  121. package/dist/messagebundle_nl.properties +3 -0
  122. package/dist/messagebundle_no.properties +3 -0
  123. package/dist/messagebundle_pl.properties +3 -0
  124. package/dist/messagebundle_pt.properties +3 -0
  125. package/dist/messagebundle_pt_BR.properties +3 -0
  126. package/dist/messagebundle_ro.properties +3 -0
  127. package/dist/messagebundle_ru.properties +3 -0
  128. package/dist/messagebundle_sk.properties +3 -0
  129. package/dist/messagebundle_sl.properties +3 -0
  130. package/dist/messagebundle_sr.properties +3 -1
  131. package/dist/messagebundle_sv.properties +3 -0
  132. package/dist/messagebundle_tr.properties +3 -0
  133. package/dist/messagebundle_uk.properties +3 -0
  134. package/dist/messagebundle_zh_CN.properties +3 -1
  135. package/dist/messagebundle_zh_TW.properties +3 -0
  136. package/dist/vscode.html-custom-data.json +31 -1
  137. package/dist/web-types.json +86 -18
  138. package/package.json +1 -1
  139. package/src/MastheadItem.ts +21 -2
  140. package/src/MastheadMenu.ts +22 -12
  141. package/src/MastheadMobileMenu.hbs +12 -0
  142. package/src/MastheadMobileMenu.ts +50 -7
  143. package/src/MastheadShell.hbs +35 -1
  144. package/src/MastheadShell.ts +105 -29
  145. package/src/SearchableListBase.ts +4 -0
  146. package/src/TagGroup.ts +3 -2
  147. package/src/generated/templates/MastheadMobileMenuTemplate.lit.ts +11 -11
  148. package/src/generated/templates/MastheadShellTemplate.lit.ts +17 -14
  149. package/src/generated/themes/MastheadItem.css.ts +1 -1
  150. package/src/generated/themes/MastheadShell.css.ts +1 -1
  151. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  152. package/src/generated/themes/Slider.css.ts +1 -1
  153. package/src/i18n/messagebundle_ar.properties +3 -0
  154. package/src/i18n/messagebundle_bg.properties +3 -0
  155. package/src/i18n/messagebundle_cs.properties +3 -0
  156. package/src/i18n/messagebundle_da.properties +3 -0
  157. package/src/i18n/messagebundle_de.properties +3 -0
  158. package/src/i18n/messagebundle_el.properties +3 -0
  159. package/src/i18n/messagebundle_es.properties +3 -0
  160. package/src/i18n/messagebundle_et.properties +3 -0
  161. package/src/i18n/messagebundle_fi.properties +3 -0
  162. package/src/i18n/messagebundle_fr.properties +3 -0
  163. package/src/i18n/messagebundle_hr.properties +3 -0
  164. package/src/i18n/messagebundle_hu.properties +3 -0
  165. package/src/i18n/messagebundle_it.properties +3 -0
  166. package/src/i18n/messagebundle_iw.properties +3 -1
  167. package/src/i18n/messagebundle_ko.properties +3 -0
  168. package/src/i18n/messagebundle_lt.properties +3 -0
  169. package/src/i18n/messagebundle_lv.properties +3 -0
  170. package/src/i18n/messagebundle_nl.properties +3 -0
  171. package/src/i18n/messagebundle_no.properties +3 -0
  172. package/src/i18n/messagebundle_pl.properties +3 -0
  173. package/src/i18n/messagebundle_pt.properties +3 -0
  174. package/src/i18n/messagebundle_pt_BR.properties +3 -0
  175. package/src/i18n/messagebundle_ro.properties +3 -0
  176. package/src/i18n/messagebundle_ru.properties +3 -0
  177. package/src/i18n/messagebundle_sk.properties +3 -0
  178. package/src/i18n/messagebundle_sl.properties +3 -0
  179. package/src/i18n/messagebundle_sr.properties +3 -1
  180. package/src/i18n/messagebundle_sv.properties +3 -0
  181. package/src/i18n/messagebundle_tr.properties +3 -0
  182. package/src/i18n/messagebundle_uk.properties +3 -0
  183. package/src/i18n/messagebundle_zh_CN.properties +3 -1
  184. package/src/i18n/messagebundle_zh_TW.properties +3 -0
  185. package/src/themes/MastheadItem.css +1 -0
  186. package/src/themes/MastheadShell.css +38 -4
  187. package/dist/assets/messagebundle_ar-9zPDAqTU.js +0 -1
  188. package/dist/assets/messagebundle_bg-DWxB0fCn.js +0 -1
  189. package/dist/assets/messagebundle_cs-C_ZNAcZs.js +0 -1
  190. package/dist/assets/messagebundle_da-CRRThnbQ.js +0 -1
  191. package/dist/assets/messagebundle_de-CEztl_Bk.js +0 -1
  192. package/dist/assets/messagebundle_el-dli9W3Ld.js +0 -1
  193. package/dist/assets/messagebundle_es-BKJxfGUS.js +0 -1
  194. package/dist/assets/messagebundle_et-CEgPnb-F.js +0 -1
  195. package/dist/assets/messagebundle_fi-CB9L6Ted.js +0 -1
  196. package/dist/assets/messagebundle_fr-DV0xFXy7.js +0 -1
  197. package/dist/assets/messagebundle_hr-CxG6YfU9.js +0 -1
  198. package/dist/assets/messagebundle_hu-BD5GvMh2.js +0 -1
  199. package/dist/assets/messagebundle_it-CcnIcv1Q.js +0 -1
  200. package/dist/assets/messagebundle_iw-njoSdOP-.js +0 -1
  201. package/dist/assets/messagebundle_ko-BsIdyV2m.js +0 -1
  202. package/dist/assets/messagebundle_lt-Cx5dKaVi.js +0 -1
  203. package/dist/assets/messagebundle_lv-CjYkt6X6.js +0 -1
  204. package/dist/assets/messagebundle_nl-BxcksDMG.js +0 -1
  205. package/dist/assets/messagebundle_no-6rWbHkD4.js +0 -1
  206. package/dist/assets/messagebundle_pl-CdoiDA_-.js +0 -1
  207. package/dist/assets/messagebundle_pt-DtbX15Ym.js +0 -1
  208. package/dist/assets/messagebundle_ro-C5ojQbzO.js +0 -1
  209. package/dist/assets/messagebundle_ru-BcLhFIo9.js +0 -1
  210. package/dist/assets/messagebundle_sk-B4D9Y2b-.js +0 -1
  211. package/dist/assets/messagebundle_sl-D43o0FSO.js +0 -1
  212. package/dist/assets/messagebundle_sr-Co2xNpod.js +0 -1
  213. package/dist/assets/messagebundle_sv-4hT4lgLu.js +0 -1
  214. package/dist/assets/messagebundle_tr-DxFj6Icf.js +0 -1
  215. package/dist/assets/messagebundle_uk-Sdu5cmOP.js +0 -1
  216. package/dist/assets/messagebundle_zh_CN-CuN02AOJ.js +0 -1
  217. package/dist/assets/messagebundle_zh_TW-CRXaxYip.js +0 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
3
3
  "name": "@sapudex/web-components",
4
- "version": "2.4.2",
4
+ "version": "2.5.0",
5
5
  "description-markup": "markdown",
6
6
  "contributions": {
7
7
  "html": {
@@ -3695,7 +3695,7 @@
3695
3695
  },
3696
3696
  {
3697
3697
  "name": "udex-masthead-shell",
3698
- "description": "<h3 class=\"comment-api-title\">Overview</h3>\n\n\n<h3>Usage</h3>\n\nFor the <code>udex-masthead-shell</code>\n<h3>ES6 Module Import</h3>\n\n<code>import \"@sapudex/web-components/dist/MastheadShell.js\";</code>\n---\n\n\n### **Events:**\n - **mobile-menu-open** - Fired event when the user clicks the mobile menu button opener.\n- **mobile-menu-close** - Fired event when the user clicks the mobile menu button closer.\n- **search-click** - Fired event when the user clicks the search button trigger.\n- **search-close-click** - Fired event when the user clicks the search close button.\n- **search-opened** - Fired event when the search panel is opened.\n- **search-closed** - Fired event when the search panel is closed.\n- **cart-click** - Fired event when the user clicks the cart button trigger.\n- **support-click** - Fired event when the user clicks the support button trigger.\n- **profile-click** - Fired event when the user clicks the profile button trigger.\n- **country-selector-click** - Fired event when the user clicks the country selector button trigger.\n- **logo-click** - Fired event when the user clicks the logo.\n- **site-label-click** - Fired event when the user clicks the site label.\n\n### **Methods:**\n - **closeSearch(): _void_** - Close the search panel.\n- **openSearch(): _void_** - Open the search panel.\n- **openMobileMenu(): _void_** - Open the mobile menu panel.\n- **closeMobileMenu(): _void_** - Close the mobile menu panel.\n\n### **Slots:**\n - **countrySelector** - Slot for country selector item.\n- **mobileMenu** - Slot for mobile menu\n- **default** - Slot for main menu items.\n- **search** - Slot for search component - will be visible on search icon click.\nNote: search component should be hidden by default.\nNote: search icon won't be visible if this slot would be empty\n- **exploreSAP** - Slot for 'Explore SAP' menu\n- **cart** - Slot for cart menu\n- **profile** - Slot for avatar\n- **support** - Slot for support",
3698
+ "description": "<h3 class=\"comment-api-title\">Overview</h3>\n\n\n<h3>Usage</h3>\n\nFor the <code>udex-masthead-shell</code>\n<h3>ES6 Module Import</h3>\n\n<code>import \"@sapudex/web-components/dist/MastheadShell.js\";</code>\n---\n\n\n### **Events:**\n - **mobile-menu-open** - Fired event when the user clicks the mobile menu button opener.\n- **mobile-menu-close** - Fired event when the user clicks the mobile menu button closer.\n- **search-click** - Fired event when the user clicks the search button trigger.\n- **search-close-click** - Fired event when the user clicks the search close button.\n- **search-opened** - Fired event when the search panel is opened.\n- **search-closed** - Fired event when the search panel is closed.\n- **cart-click** - Fired event when the user clicks the cart button trigger.\n- **support-click** - Fired event when the user clicks the support button trigger.\n- **profile-click** - Fired event when the user clicks the profile button trigger.\n- **country-selector-click** - Fired event when the user clicks the country selector button trigger.\n- **logo-click** - Fired event when the user clicks the logo.\n- **site-label-click** - Fired event when the user clicks the site label.\n- **co-brand-click** - Fired event when the user clicks the co-brand.\n\n### **Methods:**\n - **closeSearch(): _void_** - Close the search panel.\n- **openSearch(): _void_** - Open the search panel.\n- **openMobileMenu(): _void_** - Open the mobile menu panel.\n- **closeMobileMenu(): _void_** - Close the mobile menu panel.\n\n### **Slots:**\n - **countrySelector** - Slot for country selector item.\n- **mobileMenu** - Slot for mobile menu\n- **default** - Slot for main menu items.\n- **search** - Slot for search component - will be visible on search icon click.\nNote: search component should be hidden by default.\nNote: search icon won't be visible if this slot would be empty\n- **exploreSAP** - Slot for 'Explore SAP' menu\n- **cart** - Slot for cart menu\n- **profile** - Slot for avatar\n- **support** - Slot for support",
3699
3699
  "doc-url": "",
3700
3700
  "attributes": [
3701
3701
  {
@@ -3706,7 +3706,7 @@
3706
3706
  {
3707
3707
  "name": "site-label-url",
3708
3708
  "description": "Defines URL for site label. It will be used as a link on a logo and a site label",
3709
- "value": { "type": "string", "default": "\"\"" }
3709
+ "value": { "type": "string | undefined", "default": "undefined" }
3710
3710
  },
3711
3711
  {
3712
3712
  "name": "body-overflow",
@@ -3723,40 +3723,70 @@
3723
3723
  "description": "Defines sticky position for component",
3724
3724
  "value": { "type": "boolean", "default": "\"\"" }
3725
3725
  },
3726
+ {
3727
+ "name": "co-brand-image",
3728
+ "description": "Defines the co-brand image",
3729
+ "value": { "type": "string | undefined", "default": "undefined" }
3730
+ },
3731
+ {
3732
+ "name": "co-brand-alt",
3733
+ "description": "Defines an alt text for the co-brand image",
3734
+ "value": { "type": "string | undefined", "default": "undefined" }
3735
+ },
3736
+ {
3737
+ "name": "co-brand-url",
3738
+ "description": "Defines the co-brand URL",
3739
+ "value": { "type": "string | undefined", "default": "undefined" }
3740
+ },
3741
+ {
3742
+ "name": "co-brand-title",
3743
+ "description": "Defines the default tooltip title for co-brand",
3744
+ "value": { "type": "string | undefined", "default": "undefined" }
3745
+ },
3746
+ {
3747
+ "name": "co-brand-aria-label",
3748
+ "description": "Defines an aria label for the co-brand link",
3749
+ "value": { "type": "string | undefined", "default": "undefined" }
3750
+ },
3726
3751
  {
3727
3752
  "name": "logo-url",
3728
3753
  "description": "Defines the Logo image URL",
3729
- "value": { "type": "string", "default": "\"\"" }
3754
+ "value": { "type": "string | undefined", "default": "undefined" }
3730
3755
  },
3731
3756
  {
3732
3757
  "name": "logo-title",
3733
3758
  "description": "Defines the Logo default title",
3734
- "value": { "type": "string", "default": "\"\"" }
3759
+ "value": { "type": "string | undefined", "default": "undefined" }
3760
+ },
3761
+ {
3762
+ "name": "site-label-title",
3763
+ "description": "Defines the default tooltip title for site label",
3764
+ "value": { "type": "string | undefined", "default": "undefined" }
3735
3765
  },
3736
3766
  {
3737
3767
  "name": "site-label",
3738
3768
  "description": "Defines a site label. It will be displayed next to a logo.",
3739
- "value": { "type": "string", "default": "\"\"" }
3769
+ "value": { "type": "string | undefined", "default": "undefined" }
3740
3770
  },
3741
3771
  {
3742
3772
  "name": "logo-alt",
3743
3773
  "description": "Defines an alt text for logo",
3744
- "value": { "type": "string", "default": "\"\"" }
3774
+ "value": { "type": "string | undefined", "default": "undefined" }
3745
3775
  },
3746
3776
  {
3747
3777
  "name": "close-button-accessible-name",
3748
3778
  "description": "Defines an accessible name for close icon for the search bar",
3749
- "value": { "type": "string", "default": "\"\"" }
3779
+ "value": { "type": "string | undefined", "default": "undefined" }
3750
3780
  },
3751
3781
  {
3752
3782
  "name": "homepage-aria-label",
3753
3783
  "description": "Defines an aria label for the homepage link",
3754
- "value": { "type": "string", "default": "\"\"" }
3784
+ "value": { "type": "string | undefined", "default": "undefined" }
3755
3785
  },
3756
3786
  {
3757
3787
  "name": "site-label-aria-label",
3758
3788
  "description": "Defines an aria label for the site label",
3759
- "value": { "type": "string", "default": "\"\"" }
3789
+ "value": { "type": "string | undefined", "default": "undefined" }
3760
3790
  }
3761
3791
  ],
3762
3792
  "slots": [
@@ -3826,6 +3856,10 @@
3826
3856
  {
3827
3857
  "name": "site-label-click",
3828
3858
  "description": "Fired event when the user clicks the site label."
3859
+ },
3860
+ {
3861
+ "name": "co-brand-click",
3862
+ "description": "Fired event when the user clicks the co-brand."
3829
3863
  }
3830
3864
  ],
3831
3865
  "js": {
@@ -3838,7 +3872,7 @@
3838
3872
  {
3839
3873
  "name": "site-label-url",
3840
3874
  "description": "Defines URL for site label. It will be used as a link on a logo and a site label",
3841
- "value": { "type": "string" }
3875
+ "value": { "type": "string | undefined" }
3842
3876
  },
3843
3877
  {
3844
3878
  "name": "body-overflow",
@@ -3855,40 +3889,70 @@
3855
3889
  "description": "Defines sticky position for component",
3856
3890
  "value": { "type": "boolean" }
3857
3891
  },
3892
+ {
3893
+ "name": "co-brand-image",
3894
+ "description": "Defines the co-brand image",
3895
+ "value": { "type": "string | undefined" }
3896
+ },
3897
+ {
3898
+ "name": "co-brand-alt",
3899
+ "description": "Defines an alt text for the co-brand image",
3900
+ "value": { "type": "string | undefined" }
3901
+ },
3902
+ {
3903
+ "name": "co-brand-url",
3904
+ "description": "Defines the co-brand URL",
3905
+ "value": { "type": "string | undefined" }
3906
+ },
3907
+ {
3908
+ "name": "co-brand-title",
3909
+ "description": "Defines the default tooltip title for co-brand",
3910
+ "value": { "type": "string | undefined" }
3911
+ },
3912
+ {
3913
+ "name": "co-brand-aria-label",
3914
+ "description": "Defines an aria label for the co-brand link",
3915
+ "value": { "type": "string | undefined" }
3916
+ },
3858
3917
  {
3859
3918
  "name": "logo-url",
3860
3919
  "description": "Defines the Logo image URL",
3861
- "value": { "type": "string" }
3920
+ "value": { "type": "string | undefined" }
3862
3921
  },
3863
3922
  {
3864
3923
  "name": "logo-title",
3865
3924
  "description": "Defines the Logo default title",
3866
- "value": { "type": "string" }
3925
+ "value": { "type": "string | undefined" }
3926
+ },
3927
+ {
3928
+ "name": "site-label-title",
3929
+ "description": "Defines the default tooltip title for site label",
3930
+ "value": { "type": "string | undefined" }
3867
3931
  },
3868
3932
  {
3869
3933
  "name": "site-label",
3870
3934
  "description": "Defines a site label. It will be displayed next to a logo.",
3871
- "value": { "type": "string" }
3935
+ "value": { "type": "string | undefined" }
3872
3936
  },
3873
3937
  {
3874
3938
  "name": "logo-alt",
3875
3939
  "description": "Defines an alt text for logo",
3876
- "value": { "type": "string" }
3940
+ "value": { "type": "string | undefined" }
3877
3941
  },
3878
3942
  {
3879
3943
  "name": "close-button-accessible-name",
3880
3944
  "description": "Defines an accessible name for close icon for the search bar",
3881
- "value": { "type": "string" }
3945
+ "value": { "type": "string | undefined" }
3882
3946
  },
3883
3947
  {
3884
3948
  "name": "homepage-aria-label",
3885
3949
  "description": "Defines an aria label for the homepage link",
3886
- "value": { "type": "string" }
3950
+ "value": { "type": "string | undefined" }
3887
3951
  },
3888
3952
  {
3889
3953
  "name": "site-label-aria-label",
3890
3954
  "description": "Defines an aria label for the site label",
3891
- "value": { "type": "string" }
3955
+ "value": { "type": "string | undefined" }
3892
3956
  }
3893
3957
  ],
3894
3958
  "events": [
@@ -3939,6 +4003,10 @@
3939
4003
  {
3940
4004
  "name": "site-label-click",
3941
4005
  "description": "Fired event when the user clicks the site label."
4006
+ },
4007
+ {
4008
+ "name": "co-brand-click",
4009
+ "description": "Fired event when the user clicks the co-brand."
3942
4010
  }
3943
4011
  ]
3944
4012
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@sapudex/web-components",
4
- "version": "2.4.2",
4
+ "version": "2.5.0",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
7
7
  },
@@ -10,6 +10,7 @@ import "@ui5/webcomponents-icons/dist/search.js";
10
10
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
11
11
  import { isEscape } from "@ui5/webcomponents-base/dist/Keys.js";
12
12
  import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
13
+ import { getFirstFocusableElement } from "@ui5/webcomponents-base/dist/util/FocusableElements.js";
13
14
  import {
14
15
  OPENS_IN_A_NEW_WINDOW, PROFILE, CART, COUNTRY_SELECTOR, SUPPORT, SEARCH,
15
16
  } from "./generated/i18n/i18n-defaults.js";
@@ -22,7 +23,6 @@ import { UDExTarget } from "./types/common.js";
22
23
  import { BreakpointUtils } from "./utils/Breakpoints.js";
23
24
  import parseArrayFromString from "./utils/parseArrayFromString.js";
24
25
  import AnalyticsName from "./types/AnalyticsName.js";
25
-
26
26
  // Styles
27
27
  import MastheadItemCss from "./generated/themes/MastheadItem.css.js";
28
28
 
@@ -312,6 +312,10 @@ class UDExMastheadItem extends UI5Element implements IMastheadItem {
312
312
  this.setDropdownInsetStart();
313
313
  }
314
314
 
315
+ if (this.shouldFocusFirstElement) {
316
+ this.applyFocusToFirstElement();
317
+ }
318
+
315
319
  this.handleOutsideClick();
316
320
  }
317
321
 
@@ -419,7 +423,7 @@ class UDExMastheadItem extends UI5Element implements IMastheadItem {
419
423
  }
420
424
 
421
425
  setDropdownInsetStart(): void {
422
- const dropdown = this.getDomElement(".udex-masthead-item__dropdown");
426
+ const dropdown = this.dropdownHolder;
423
427
  if (dropdown) {
424
428
  const rect = dropdown.getBoundingClientRect();
425
429
  const marginInlineStart = this.calculateMarginInlineStart(rect);
@@ -468,6 +472,13 @@ class UDExMastheadItem extends UI5Element implements IMastheadItem {
468
472
  this.fireDropdownCloseEvent(this.accessibleName || this.eventItemTitle, UDExMastheadDropdownItemAction.Close);
469
473
  }
470
474
 
475
+ async applyFocusToFirstElement(): Promise<void> {
476
+ const focusedElement = await getFirstFocusableElement(this.dropdownHolder);
477
+ if (focusedElement) {
478
+ focusedElement.focus();
479
+ }
480
+ }
481
+
471
482
  getDomElement(selector: string): HTMLElement | undefined | null {
472
483
  return this.shadowRoot?.querySelector(`${selector}`);
473
484
  }
@@ -498,6 +509,10 @@ class UDExMastheadItem extends UI5Element implements IMastheadItem {
498
509
  || this.isNavItemTarget(target);
499
510
  }
500
511
 
512
+ get dropdownHolder(): HTMLElement {
513
+ return this.getDomElement(".udex-masthead-item__dropdown")!;
514
+ }
515
+
501
516
  get mastheadShell(): UDExMastheadShell {
502
517
  return document.querySelector<UDExMastheadShell>("[udex-masthead-shell]")!;
503
518
  }
@@ -549,6 +564,10 @@ class UDExMastheadItem extends UI5Element implements IMastheadItem {
549
564
  return labels.length ? labels.join(" ").trim() : undefined;
550
565
  }
551
566
 
567
+ get shouldFocusFirstElement(): boolean {
568
+ return this.isDropdownOpened && !this._preventFocusOut;
569
+ }
570
+
552
571
  get isDropdownOpened(): boolean {
553
572
  return this.hasDropdownSlot && this.selected;
554
573
  }
@@ -9,6 +9,7 @@ import "@ui5/webcomponents-icons/dist/action.js";
9
9
  import { isUp, isDown } from "@ui5/webcomponents-base/dist/Keys.js";
10
10
  import UDExBadge from "./Badge.js";
11
11
  import UDExMastheadMenuItem, { UDExItemType } from "./MastheadMenuItem.js";
12
+ import type UDExMastheadItem from "./MastheadItem.js";
12
13
  import UDExDivider from "./Divider.js";
13
14
  import MastheadMenuTemplate from "./generated/templates/MastheadMenuTemplate.lit.js";
14
15
  import parseArrayFromString from "./utils/parseArrayFromString.js";
@@ -38,9 +39,10 @@ export type MenuItem = {
38
39
 
39
40
  type UDExMastheadMenuMenuItemClickEventDetail = {
40
41
  category?: string,
42
+ analyticsPath: Array<string>,
43
+ analyticsName: AnalyticsName,
41
44
  originalEvent: PointerEvent,
42
45
  item: UDExMastheadMenuItem,
43
- analyticsName: AnalyticsName,
44
46
  sourceNode: HTMLElement,
45
47
  }
46
48
 
@@ -129,18 +131,26 @@ class UDExMastheadMenu extends UI5Element {
129
131
  }
130
132
 
131
133
  handleMenuItemClick(e: PointerEvent): void {
132
- const item = e.target as UDExMastheadMenuItem;
133
- const { url, type } = item;
134
- if (url?.length) {
135
- const list = item.closest(".udex-masthead-menu__list") as HTMLElement;
136
- this.fireDecoratorEvent("menu-item-click", {
137
- sourceNode: item.shadowRoot?.querySelector(".udex-masthead-menu-item") as HTMLElement,
138
- analyticsName: AnalyticsName.Header,
139
- item,
140
- originalEvent: e,
141
- ...(type !== UDExItemType.Heading && { category: list?.getAttribute("category") || "" }),
142
- });
134
+ const menuItem = e.target as UDExMastheadMenuItem;
135
+ if (!menuItem.url?.length) {
136
+ return;
143
137
  }
138
+
139
+ const mainItem = this.closest("[udex-masthead-item]") as UDExMastheadItem;
140
+ const menuList = menuItem.closest(".udex-masthead-menu__list") as HTMLElement;
141
+ const sourceNode = menuItem.shadowRoot?.querySelector(".udex-masthead-menu-item") as HTMLElement;
142
+ const category = menuList?.getAttribute("category") || "";
143
+
144
+ const eventDetail: UDExMastheadMenuMenuItemClickEventDetail = {
145
+ analyticsPath: [mainItem?.label, category, menuItem.label].filter(Boolean),
146
+ analyticsName: AnalyticsName.Header,
147
+ originalEvent: e,
148
+ item: menuItem,
149
+ sourceNode,
150
+ ...(menuItem.type !== UDExItemType.Heading && { category }),
151
+ };
152
+
153
+ this.fireDecoratorEvent("menu-item-click", eventDetail);
144
154
  }
145
155
 
146
156
  focusPreviousItem(item: UDExMastheadMenuItem): void {
@@ -18,6 +18,7 @@
18
18
  @click="{{handleExploreBackToMenuItems}}"
19
19
  label="{{_clickedItem.innerText}}"
20
20
  type="Button"
21
+ is-back
21
22
  has-border
22
23
  icon-start
23
24
  is-explore-back>
@@ -39,6 +40,7 @@
39
40
  label="{{_clickedItem.innerText}}"
40
41
  aria-has-popup="true"
41
42
  type="Button"
43
+ is-back
42
44
  has-border
43
45
  icon-start
44
46
  is-back-to-nav>
@@ -59,6 +61,7 @@
59
61
  aria-has-popup="true"
60
62
  has-border
61
63
  icon-start
64
+ is-back
62
65
  is-back-to-categories>
63
66
  </udex-masthead-menu-item>
64
67
  </li>
@@ -76,6 +79,7 @@
76
79
  accessible-role-text="button"
77
80
  aria-has-popup="true"
78
81
  type="Button"
82
+ first-level-btn
79
83
  first-level
80
84
  icon-end
81
85
  is-explore
@@ -95,6 +99,8 @@
95
99
  aria-has-popup="true"
96
100
  id="{{this._id}}"
97
101
  type="Button"
102
+ first-level-btn
103
+ first-level
98
104
  has-border
99
105
  icon-end
100
106
  first-level>
@@ -106,6 +112,7 @@
106
112
  url="{{this.href}}"
107
113
  label="{{this.innerText}}"
108
114
  target="{{this.target}}"
115
+ first-level
109
116
  has-border>
110
117
  </udex-masthead-menu-item>
111
118
  {{/if}}
@@ -121,6 +128,7 @@
121
128
  url="{{_clickedItem.href}}"
122
129
  label="{{overviewLinkText}}"
123
130
  @click="{{handleMobileItemEvent}}"
131
+ second-level
124
132
  has-border>
125
133
  </udex-masthead-menu-item>
126
134
  </li>
@@ -136,6 +144,7 @@
136
144
  label="{{this.category}}"
137
145
  aria-has-popup="true"
138
146
  type="Button"
147
+ second-level-btn
139
148
  second-level
140
149
  has-border
141
150
  icon-end>
@@ -149,6 +158,7 @@
149
158
  @click="{{../handleMobileItemEvent}}"
150
159
  url="{{this.url}}"
151
160
  label="{{this.title}}"
161
+ second-level
152
162
  has-border>
153
163
  </udex-masthead-menu-item>
154
164
  </li>
@@ -165,6 +175,7 @@
165
175
  @click="{{../handleMobileCategoryItemEvent}}"
166
176
  url="{{this._category.url}}"
167
177
  label="{{overviewLinkText}}"
178
+ third-level
168
179
  has-border>
169
180
  </udex-masthead-menu-item>
170
181
  </li>
@@ -177,6 +188,7 @@
177
188
  @click="{{../handleMobileCategoryItemEvent}}"
178
189
  label="{{this.title}}"
179
190
  url="{{this.url}}"
191
+ third-level
180
192
  has-border>
181
193
  </udex-masthead-menu-item>
182
194
  </li>
@@ -24,7 +24,9 @@ type UDExMastheadMobileMenuItemClickEventDetail = {
24
24
  item: UDExMastheadMenuItem,
25
25
  category?: string,
26
26
  isMobile: boolean,
27
+ isBack: boolean,
27
28
  analyticsName: AnalyticsName,
29
+ analyticsPath: Array<string>,
28
30
  sourceNode: HTMLElement,
29
31
  }
30
32
 
@@ -127,6 +129,7 @@ class UDExMastheadMobileMenu extends UI5Element {
127
129
  _shouldFocusItemByIndex!: boolean;
128
130
  _shouldFocusExploreBtn!: boolean;
129
131
  _focusedItemIndex!: number;
132
+ _navItem?: UDExMastheadMenuItem;
130
133
 
131
134
  onAfterRendering() {
132
135
  this.handleMenuMode();
@@ -299,12 +302,12 @@ class UDExMastheadMobileMenu extends UI5Element {
299
302
  this.fireMobileItemEvent(e);
300
303
  }
301
304
 
302
- if (target.hasAttribute("first-level")) {
305
+ if (target.hasAttribute("first-level-btn")) {
303
306
  this.openCategories(item);
304
307
  this.fireMobileItemEvent(e);
305
308
  }
306
309
 
307
- if (target.hasAttribute("second-level")) {
310
+ if (target.hasAttribute("second-level-btn")) {
308
311
  this.openCategoryItems(e);
309
312
  this.fireMobileItemEvent(e);
310
313
  }
@@ -416,15 +419,19 @@ class UDExMastheadMobileMenu extends UI5Element {
416
419
 
417
420
  fireMobileItemEvent(e: PointerEvent | KeyboardEvent, category?: string) {
418
421
  const item = e.target as UDExMastheadMenuItem;
419
-
420
- this.fireDecoratorEvent("item-click", {
421
- isMobile: true,
422
+ const isBack = item.hasAttribute("is-back");
423
+ const eventDetail: UDExMastheadMobileMenuItemClickEventDetail = {
424
+ ...(category && { category }),
422
425
  item,
426
+ isMobile: true,
427
+ isBack,
428
+ analyticsPath: this.buildAnalyticsPath(item),
423
429
  originalEvent: e,
424
430
  analyticsName: AnalyticsName.Header,
425
431
  sourceNode: item.shadowRoot?.querySelector(".udex-masthead-menu-item") as HTMLElement,
426
- ...(category && { category }),
427
- });
432
+ };
433
+
434
+ this.fireDecoratorEvent("item-click", eventDetail);
428
435
  }
429
436
 
430
437
  fireExploreSapMobileButton(e: PointerEvent | KeyboardEvent) {
@@ -483,6 +490,42 @@ class UDExMastheadMobileMenu extends UI5Element {
483
490
  });
484
491
  }
485
492
 
493
+ buildAnalyticsPath(item: UDExMastheadMenuItem): Array<string> {
494
+ const category = this.getListItemByIndex(0).label.trim();
495
+ const isFirstLevel = item.hasAttribute("first-level");
496
+ const isSecondLevel = item.hasAttribute("second-level");
497
+ const isThirdLevel = item.hasAttribute("third-level");
498
+ const isBackToCategories = item.hasAttribute("is-back-to-categories");
499
+ const shouldResetPath = item.hasAttribute("is-back-to-nav") || this._hideExploreSapBtn;
500
+ const isExploreMode = !this.showExploreBtn && !!this.items.length;
501
+ const clickedLabel = item.label.trim();
502
+ const analyticsPath: Array<string> = [];
503
+
504
+ if (shouldResetPath) {
505
+ this._navItem = undefined;
506
+ analyticsPath.length = 0;
507
+ }
508
+
509
+ if (isFirstLevel) {
510
+ this._navItem = item;
511
+ analyticsPath.push(clickedLabel);
512
+ } else if (isSecondLevel) {
513
+ analyticsPath.push(...(this._navItem ? [category, clickedLabel] : [clickedLabel]));
514
+ } else if (isThirdLevel) {
515
+ analyticsPath.push(...(this._navItem ? [this._navItem.label.trim(), category, clickedLabel] : [category, clickedLabel]));
516
+ } else if (isBackToCategories) {
517
+ if (this._navItem) {
518
+ analyticsPath.push(this._navItem.label.trim());
519
+ }
520
+ }
521
+
522
+ if (isExploreMode) {
523
+ analyticsPath.unshift(this.exploreItem.label);
524
+ }
525
+
526
+ return analyticsPath;
527
+ }
528
+
486
529
  get exploreBtnMenu(): UDExMastheadMenuItem {
487
530
  return this.shadowRoot!.querySelector<UDExMastheadMenuItem>(".udex-masthead-mobile-menu__explore-btn")!;
488
531
  }
@@ -1,5 +1,5 @@
1
1
  <header
2
- class="udex-masthead-shell"
2
+ class="{{mainClass}}"
3
3
  @keydown="{{handleKeyDown}}">
4
4
  <div class="udex-masthead-shell__main-content">
5
5
  <div class="udex-masthead-shell__landing-wrap">
@@ -10,6 +10,10 @@
10
10
  {{#if siteLabel}}
11
11
  {{>siteLabel}}
12
12
  {{/if}}
13
+
14
+ {{#if coBrandImage}}
15
+ {{>coBrand}}
16
+ {{/if}}
13
17
  </div>
14
18
 
15
19
  {{#if isMainMenuVisible}}
@@ -166,6 +170,7 @@
166
170
  @click="{{handleSiteLabelClick}}"
167
171
  role="link"
168
172
  href="{{siteLabelUrl}}"
173
+ title="{{siteLabelTitle}}"
169
174
  target="_self"
170
175
  aria-label="{{siteLabelAriaLabel}}"
171
176
  class="udex-masthead-shell__site-label udex-masthead-shell__site-label--link">
@@ -175,3 +180,32 @@
175
180
  <div class="udex-masthead-shell__site-label">{{siteLabel}}</div>
176
181
  {{/if}}
177
182
  {{/inline}}
183
+
184
+ {{#*inline "coBrand"}}
185
+ {{#if coBrandUrl}}
186
+ <div class="udex-masthead-shell__co-brand">
187
+ <a
188
+ class="udex-masthead-shell__co-brand-link"
189
+ @click="{{handleCoBrandClick}}"
190
+ href="{{coBrandUrl}}"
191
+ title="{{coBrandTitle}}"
192
+ aria-label="{{coBrandAriaLabel}}"
193
+ target="_self"
194
+ role="link">
195
+ <img
196
+ class="udex-masthead-shell__co-brand-image"
197
+ src="{{coBrandImage}}"
198
+ alt="{{coBrandAlt}}"
199
+ />
200
+ </a>
201
+ </div>
202
+ {{else}}
203
+ <div class="udex-masthead-shell__co-brand">
204
+ <img
205
+ class="udex-masthead-shell__co-brand-image"
206
+ src="{{coBrandImage}}"
207
+ alt="{{coBrandAlt}}"
208
+ />
209
+ </div>
210
+ {{/if}}
211
+ {{/inline}}