@sapudex/web-components 0.117.1 → 0.127.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/bundle.esm.js +3 -0
  2. package/config/wdio.conf.js +19 -8
  3. package/dist/AccordionItem.d.ts +2 -1
  4. package/dist/AccordionItem.js +3 -3
  5. package/dist/AccordionItem.js.map +1 -1
  6. package/dist/Avatar.d.ts +12 -0
  7. package/dist/Avatar.js +22 -1
  8. package/dist/Avatar.js.map +1 -1
  9. package/dist/AvatarGroup.d.ts +28 -0
  10. package/dist/AvatarGroup.js +126 -0
  11. package/dist/AvatarGroup.js.map +1 -0
  12. package/dist/Dropdown.d.ts +11 -1
  13. package/dist/Dropdown.js +15 -3
  14. package/dist/Dropdown.js.map +1 -1
  15. package/dist/FilterMenu.d.ts +7 -1
  16. package/dist/FilterMenu.js +4 -1
  17. package/dist/FilterMenu.js.map +1 -1
  18. package/dist/Footer.d.ts +27 -0
  19. package/dist/Footer.js +27 -36
  20. package/dist/Footer.js.map +1 -1
  21. package/dist/HeroBanner.js +3 -0
  22. package/dist/HeroBanner.js.map +1 -1
  23. package/dist/MastheadItem.d.ts +1 -0
  24. package/dist/MastheadItem.js +5 -11
  25. package/dist/MastheadItem.js.map +1 -1
  26. package/dist/MastheadShell.d.ts +8 -0
  27. package/dist/MastheadShell.js +10 -0
  28. package/dist/MastheadShell.js.map +1 -1
  29. package/dist/MessageStrip.js +1 -1
  30. package/dist/MessageStrip.js.map +1 -1
  31. package/dist/Pagination.d.ts +3 -0
  32. package/dist/Pagination.js +16 -4
  33. package/dist/Pagination.js.map +1 -1
  34. package/dist/PasswordField.d.ts +14 -4
  35. package/dist/PasswordField.js +24 -15
  36. package/dist/PasswordField.js.map +1 -1
  37. package/dist/PhoneNumberField.d.ts +6 -0
  38. package/dist/PhoneNumberField.js +6 -1
  39. package/dist/PhoneNumberField.js.map +1 -1
  40. package/dist/RatingBar.d.ts +53 -0
  41. package/dist/RatingBar.js +96 -0
  42. package/dist/RatingBar.js.map +1 -0
  43. package/dist/Review.d.ts +71 -0
  44. package/dist/Review.js +108 -0
  45. package/dist/Review.js.map +1 -0
  46. package/dist/Search.d.ts +49 -1
  47. package/dist/Search.js +32 -3
  48. package/dist/Search.js.map +1 -1
  49. package/dist/SearchableListBase.d.ts +1 -1
  50. package/dist/SearchableListBase.js +1 -1
  51. package/dist/SearchableListBase.js.map +1 -1
  52. package/dist/SecondaryNavigation.d.ts +8 -8
  53. package/dist/SecondaryNavigation.js +51 -39
  54. package/dist/SecondaryNavigation.js.map +1 -1
  55. package/dist/SecondaryNavigationItem.d.ts +1 -1
  56. package/dist/SecondaryNavigationItem.js +15 -5
  57. package/dist/SecondaryNavigationItem.js.map +1 -1
  58. package/dist/SecondaryNavigationItemBase.d.ts +16 -2
  59. package/dist/SecondaryNavigationItemBase.js +27 -1
  60. package/dist/SecondaryNavigationItemBase.js.map +1 -1
  61. package/dist/SecondaryNavigationSubItem.d.ts +2 -1
  62. package/dist/SecondaryNavigationSubItem.js +5 -2
  63. package/dist/SecondaryNavigationSubItem.js.map +1 -1
  64. package/dist/SelectBox.js +2 -0
  65. package/dist/SelectBox.js.map +1 -1
  66. package/dist/StatusBadge.d.ts +5 -5
  67. package/dist/StatusBadge.js.map +1 -1
  68. package/dist/Switch.d.ts +1 -0
  69. package/dist/Switch.js +3 -0
  70. package/dist/Switch.js.map +1 -1
  71. package/dist/Tab.d.ts +8 -0
  72. package/dist/Tab.js +3 -0
  73. package/dist/Tab.js.map +1 -1
  74. package/dist/TabNavigation.d.ts +20 -20
  75. package/dist/TabNavigation.js +82 -101
  76. package/dist/TabNavigation.js.map +1 -1
  77. package/dist/Tag.d.ts +13 -6
  78. package/dist/Tag.js +34 -20
  79. package/dist/Tag.js.map +1 -1
  80. package/dist/TextArea.d.ts +1 -1
  81. package/dist/TextArea.js +3 -0
  82. package/dist/TextArea.js.map +1 -1
  83. package/dist/TextField.d.ts +9 -0
  84. package/dist/TextField.js +16 -0
  85. package/dist/TextField.js.map +1 -1
  86. package/dist/Tooltip.d.ts +2 -2
  87. package/dist/Tooltip.js +3 -3
  88. package/dist/Tooltip.js.map +1 -1
  89. package/dist/assets/bundle.esm-7d53f4f2.js +314 -0
  90. package/dist/assets/messagebundle_en-6dcc9ab4.js +1 -0
  91. package/dist/assets/parameters-bundle.css-de55cf62.js +2 -0
  92. package/dist/css/themes/AccordionItem.css +1 -1
  93. package/dist/css/themes/Avatar.css +1 -1
  94. package/dist/css/themes/Badge.css +1 -1
  95. package/dist/css/themes/Divider.css +1 -1
  96. package/dist/css/themes/Footer.css +1 -1
  97. package/dist/css/themes/HeroBanner.css +1 -1
  98. package/dist/css/themes/MastheadShell.css +1 -1
  99. package/dist/css/themes/Modal.css +1 -1
  100. package/dist/css/themes/Pagination.css +1 -1
  101. package/dist/css/themes/PhoneNumberField.css +1 -1
  102. package/dist/css/themes/RatingBar.css +1 -0
  103. package/dist/css/themes/RatingIndicator.css +1 -1
  104. package/dist/css/themes/Review.css +1 -0
  105. package/dist/css/themes/Search.css +1 -1
  106. package/dist/css/themes/SecondaryNavigation.css +1 -1
  107. package/dist/css/themes/SecondaryNavigationItem.css +1 -1
  108. package/dist/css/themes/SelectBox.css +1 -1
  109. package/dist/css/themes/Slider.css +1 -1
  110. package/dist/css/themes/StepInput.css +1 -1
  111. package/dist/css/themes/TabNavigation.css +1 -1
  112. package/dist/css/themes/Tag.css +1 -1
  113. package/dist/css/themes/TextField.css +1 -1
  114. package/dist/css/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css +1 -1
  115. package/dist/custom-elements-internal.json +670 -100
  116. package/dist/custom-elements.json +594 -67
  117. package/dist/data/CountryListISO3166.js +162 -162
  118. package/dist/data/CountryListISO3166.js.map +1 -1
  119. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  120. package/dist/generated/assets/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.json +1 -1
  121. package/dist/generated/i18n/i18n-defaults.d.ts +9 -1
  122. package/dist/generated/i18n/i18n-defaults.js +13 -5
  123. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  124. package/dist/generated/templates/AccordionItemTemplate.lit.js +1 -1
  125. package/dist/generated/templates/AccordionItemTemplate.lit.js.map +1 -1
  126. package/dist/generated/templates/DatePickerTemplate.lit.js +1 -1
  127. package/dist/generated/templates/DatePickerTemplate.lit.js.map +1 -1
  128. package/dist/generated/templates/DropdownTemplate.lit.js +2 -2
  129. package/dist/generated/templates/DropdownTemplate.lit.js.map +1 -1
  130. package/dist/generated/templates/FilterMenuTemplate.lit.js +1 -1
  131. package/dist/generated/templates/FilterMenuTemplate.lit.js.map +1 -1
  132. package/dist/generated/templates/FooterTemplate.lit.js +26 -28
  133. package/dist/generated/templates/FooterTemplate.lit.js.map +1 -1
  134. package/dist/generated/templates/HeroBannerTemplate.lit.js +9 -8
  135. package/dist/generated/templates/HeroBannerTemplate.lit.js.map +1 -1
  136. package/dist/generated/templates/MastheadItemTemplate.lit.js +3 -3
  137. package/dist/generated/templates/MastheadItemTemplate.lit.js.map +1 -1
  138. package/dist/generated/templates/MastheadShellTemplate.lit.js +2 -2
  139. package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
  140. package/dist/generated/templates/PaginationTemplate.lit.js +1 -1
  141. package/dist/generated/templates/PaginationTemplate.lit.js.map +1 -1
  142. package/dist/generated/templates/PasswordFieldTemplate.lit.js +1 -2
  143. package/dist/generated/templates/PasswordFieldTemplate.lit.js.map +1 -1
  144. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js +3 -3
  145. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js.map +1 -1
  146. package/dist/generated/templates/RatingBarTemplate.lit.d.ts +4 -0
  147. package/dist/generated/templates/RatingBarTemplate.lit.js +6 -0
  148. package/dist/generated/templates/RatingBarTemplate.lit.js.map +1 -0
  149. package/dist/generated/templates/ReviewTemplate.lit.d.ts +4 -0
  150. package/dist/generated/templates/ReviewTemplate.lit.js +10 -0
  151. package/dist/generated/templates/ReviewTemplate.lit.js.map +1 -0
  152. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js +1 -1
  153. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js.map +1 -1
  154. package/dist/generated/templates/SearchTemplate.lit.js +7 -7
  155. package/dist/generated/templates/SearchTemplate.lit.js.map +1 -1
  156. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js +3 -3
  157. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js.map +1 -1
  158. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js +5 -4
  159. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js.map +1 -1
  160. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +3 -3
  161. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +1 -1
  162. package/dist/generated/templates/SelectBoxTemplate.lit.js +2 -2
  163. package/dist/generated/templates/SelectBoxTemplate.lit.js.map +1 -1
  164. package/dist/generated/templates/SwitchTemplate.lit.js +2 -2
  165. package/dist/generated/templates/SwitchTemplate.lit.js.map +1 -1
  166. package/dist/generated/templates/TabInOverflowTemplate.lit.js +2 -2
  167. package/dist/generated/templates/TabInOverflowTemplate.lit.js.map +1 -1
  168. package/dist/generated/templates/TabNavigationPopoverTemplate.lit.js +1 -1
  169. package/dist/generated/templates/TabNavigationPopoverTemplate.lit.js.map +1 -1
  170. package/dist/generated/templates/TabNavigationTemplate.lit.js +2 -2
  171. package/dist/generated/templates/TabNavigationTemplate.lit.js.map +1 -1
  172. package/dist/generated/templates/TagTemplate.lit.js +9 -3
  173. package/dist/generated/templates/TagTemplate.lit.js.map +1 -1
  174. package/dist/generated/templates/TextAreaTemplate.lit.js +1 -1
  175. package/dist/generated/templates/TextAreaTemplate.lit.js.map +1 -1
  176. package/dist/generated/templates/TextFieldTemplate.lit.js +2 -2
  177. package/dist/generated/templates/TextFieldTemplate.lit.js.map +1 -1
  178. package/dist/generated/templates/TooltipTemplate.lit.js +1 -1
  179. package/dist/generated/templates/TooltipTemplate.lit.js.map +1 -1
  180. package/dist/generated/themes/AccordionItem.css.js +1 -1
  181. package/dist/generated/themes/AccordionItem.css.js.map +1 -1
  182. package/dist/generated/themes/Avatar.css.js +1 -1
  183. package/dist/generated/themes/Avatar.css.js.map +1 -1
  184. package/dist/generated/themes/Badge.css.js +1 -1
  185. package/dist/generated/themes/Badge.css.js.map +1 -1
  186. package/dist/generated/themes/Divider.css.js +1 -1
  187. package/dist/generated/themes/Divider.css.js.map +1 -1
  188. package/dist/generated/themes/Footer.css.js +1 -1
  189. package/dist/generated/themes/Footer.css.js.map +1 -1
  190. package/dist/generated/themes/HeroBanner.css.js +1 -1
  191. package/dist/generated/themes/HeroBanner.css.js.map +1 -1
  192. package/dist/generated/themes/MastheadShell.css.js +1 -1
  193. package/dist/generated/themes/MastheadShell.css.js.map +1 -1
  194. package/dist/generated/themes/Modal.css.js +1 -1
  195. package/dist/generated/themes/Modal.css.js.map +1 -1
  196. package/dist/generated/themes/Pagination.css.js +1 -1
  197. package/dist/generated/themes/Pagination.css.js.map +1 -1
  198. package/dist/generated/themes/PhoneNumberField.css.js +1 -1
  199. package/dist/generated/themes/PhoneNumberField.css.js.map +1 -1
  200. package/dist/generated/themes/RatingBar.css.js +9 -0
  201. package/dist/generated/themes/RatingBar.css.js.map +1 -0
  202. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  203. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  204. package/dist/generated/themes/Review.css.d.ts +3 -0
  205. package/dist/generated/themes/Review.css.js +9 -0
  206. package/dist/generated/themes/Review.css.js.map +1 -0
  207. package/dist/generated/themes/Search.css.js +1 -1
  208. package/dist/generated/themes/Search.css.js.map +1 -1
  209. package/dist/generated/themes/SecondaryNavigation.css.js +1 -1
  210. package/dist/generated/themes/SecondaryNavigation.css.js.map +1 -1
  211. package/dist/generated/themes/SecondaryNavigationItem.css.js +1 -1
  212. package/dist/generated/themes/SecondaryNavigationItem.css.js.map +1 -1
  213. package/dist/generated/themes/SelectBox.css.js +1 -1
  214. package/dist/generated/themes/SelectBox.css.js.map +1 -1
  215. package/dist/generated/themes/Slider.css.js +1 -1
  216. package/dist/generated/themes/Slider.css.js.map +1 -1
  217. package/dist/generated/themes/StepInput.css.js +1 -1
  218. package/dist/generated/themes/StepInput.css.js.map +1 -1
  219. package/dist/generated/themes/TabNavigation.css.js +1 -1
  220. package/dist/generated/themes/TabNavigation.css.js.map +1 -1
  221. package/dist/generated/themes/Tag.css.js +1 -1
  222. package/dist/generated/themes/Tag.css.js.map +1 -1
  223. package/dist/generated/themes/TextField.css.js +1 -1
  224. package/dist/generated/themes/TextField.css.js.map +1 -1
  225. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js +1 -1
  226. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js.map +1 -1
  227. package/dist/i18n/messagebundle.properties +28 -4
  228. package/dist/i18n/messagebundle_en.properties +12 -4
  229. package/dist/vscode.html-custom-data.json +112 -17
  230. package/dist/web-types.json +215 -33
  231. package/package.json +8 -8
  232. package/src/AccordionItem.hbs +1 -4
  233. package/src/AccordionItem.ts +5 -4
  234. package/src/Avatar.ts +24 -1
  235. package/src/AvatarGroup.ts +135 -0
  236. package/src/DatePicker.hbs +0 -1
  237. package/src/Dropdown.hbs +5 -2
  238. package/src/Dropdown.ts +24 -3
  239. package/src/FilterMenu.hbs +3 -0
  240. package/src/FilterMenu.ts +10 -2
  241. package/src/Footer.hbs +12 -37
  242. package/src/Footer.ts +64 -51
  243. package/src/HeroBanner.hbs +18 -14
  244. package/src/HeroBanner.ts +3 -0
  245. package/src/MastheadItem.hbs +3 -3
  246. package/src/MastheadItem.ts +10 -4
  247. package/src/MastheadShell.hbs +4 -0
  248. package/src/MastheadShell.ts +18 -0
  249. package/src/MessageStrip.ts +1 -1
  250. package/src/Pagination.hbs +4 -2
  251. package/src/Pagination.ts +19 -4
  252. package/src/PasswordField.hbs +6 -17
  253. package/src/PasswordField.ts +31 -23
  254. package/src/PhoneNumberField.hbs +8 -3
  255. package/src/PhoneNumberField.ts +11 -1
  256. package/src/RatingBar.hbs +11 -0
  257. package/src/RatingBar.ts +113 -0
  258. package/src/Review.hbs +44 -0
  259. package/src/Review.ts +140 -0
  260. package/src/Search.hbs +19 -14
  261. package/src/Search.ts +72 -2
  262. package/src/SearchSuggestions.hbs +1 -0
  263. package/src/SearchableListBase.ts +1 -1
  264. package/src/SecondaryNavigation.hbs +5 -1
  265. package/src/SecondaryNavigation.ts +67 -49
  266. package/src/SecondaryNavigationItem.hbs +3 -2
  267. package/src/SecondaryNavigationItem.ts +15 -5
  268. package/src/SecondaryNavigationItemBase.ts +41 -3
  269. package/src/SecondaryNavigationSubItem.hbs +13 -10
  270. package/src/SecondaryNavigationSubItem.ts +6 -2
  271. package/src/SelectBox.hbs +75 -76
  272. package/src/SelectBox.ts +2 -0
  273. package/src/StatusBadge.ts +2 -2
  274. package/src/Switch.hbs +3 -3
  275. package/src/Switch.ts +4 -0
  276. package/src/Tab.ts +10 -0
  277. package/src/TabInOverflow.hbs +3 -2
  278. package/src/TabNavigation.hbs +12 -10
  279. package/src/TabNavigation.ts +92 -116
  280. package/src/TabNavigationPopover.hbs +1 -0
  281. package/src/Tag.hbs +60 -26
  282. package/src/Tag.ts +54 -34
  283. package/src/TextArea.hbs +3 -4
  284. package/src/TextArea.ts +3 -0
  285. package/src/TextField.hbs +40 -36
  286. package/src/TextField.ts +24 -0
  287. package/src/Tooltip.hbs +2 -2
  288. package/src/Tooltip.ts +4 -4
  289. package/src/data/CountryListISO3166.ts +162 -162
  290. package/src/generated/i18n/i18n-defaults.ts +2 -2
  291. package/src/generated/templates/AccordionItemTemplate.lit.ts +1 -1
  292. package/src/generated/templates/DatePickerTemplate.lit.ts +1 -1
  293. package/src/generated/templates/DropdownTemplate.lit.ts +2 -2
  294. package/src/generated/templates/FilterMenuTemplate.lit.ts +1 -1
  295. package/src/generated/templates/FooterTemplate.lit.ts +26 -28
  296. package/src/generated/templates/HeroBannerTemplate.lit.ts +9 -8
  297. package/src/generated/templates/MastheadItemTemplate.lit.ts +3 -3
  298. package/src/generated/templates/MastheadShellTemplate.lit.ts +2 -2
  299. package/src/generated/templates/PaginationTemplate.lit.ts +1 -1
  300. package/src/generated/templates/PasswordFieldTemplate.lit.ts +1 -2
  301. package/src/generated/templates/PhoneNumberFieldTemplate.lit.ts +3 -3
  302. package/src/generated/templates/RatingBarTemplate.lit.ts +11 -0
  303. package/src/generated/templates/ReviewTemplate.lit.ts +15 -0
  304. package/src/generated/templates/SearchSuggestionsTemplate.lit.ts +1 -1
  305. package/src/generated/templates/SearchTemplate.lit.ts +7 -7
  306. package/src/generated/templates/SecondaryNavigationItemTemplate.lit.ts +3 -3
  307. package/src/generated/templates/SecondaryNavigationSubItemTemplate.lit.ts +5 -4
  308. package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +3 -3
  309. package/src/generated/templates/SelectBoxTemplate.lit.ts +2 -2
  310. package/src/generated/templates/SwitchTemplate.lit.ts +2 -2
  311. package/src/generated/templates/TabInOverflowTemplate.lit.ts +2 -2
  312. package/src/generated/templates/TabNavigationPopoverTemplate.lit.ts +1 -1
  313. package/src/generated/templates/TabNavigationTemplate.lit.ts +2 -2
  314. package/src/generated/templates/TagTemplate.lit.ts +9 -3
  315. package/src/generated/templates/TextAreaTemplate.lit.ts +1 -1
  316. package/src/generated/templates/TextFieldTemplate.lit.ts +2 -2
  317. package/src/generated/templates/TooltipTemplate.lit.ts +1 -1
  318. package/src/generated/themes/AccordionItem.css.ts +1 -1
  319. package/src/generated/themes/Avatar.css.ts +1 -1
  320. package/src/generated/themes/Badge.css.ts +1 -1
  321. package/src/generated/themes/Divider.css.ts +1 -1
  322. package/src/generated/themes/Footer.css.ts +1 -1
  323. package/src/generated/themes/HeroBanner.css.ts +1 -1
  324. package/src/generated/themes/MastheadShell.css.ts +1 -1
  325. package/src/generated/themes/Modal.css.ts +1 -1
  326. package/src/generated/themes/Pagination.css.ts +1 -1
  327. package/src/generated/themes/PhoneNumberField.css.ts +1 -1
  328. package/src/generated/themes/RatingBar.css.ts +13 -0
  329. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  330. package/src/generated/themes/Review.css.ts +13 -0
  331. package/src/generated/themes/Search.css.ts +1 -1
  332. package/src/generated/themes/SecondaryNavigation.css.ts +1 -1
  333. package/src/generated/themes/SecondaryNavigationItem.css.ts +1 -1
  334. package/src/generated/themes/SelectBox.css.ts +1 -1
  335. package/src/generated/themes/Slider.css.ts +1 -1
  336. package/src/generated/themes/StepInput.css.ts +1 -1
  337. package/src/generated/themes/TabNavigation.css.ts +1 -1
  338. package/src/generated/themes/Tag.css.ts +1 -1
  339. package/src/generated/themes/TextField.css.ts +1 -1
  340. package/src/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.ts +1 -1
  341. package/src/i18n/messagebundle.properties +28 -4
  342. package/src/i18n/messagebundle_en.properties +12 -4
  343. package/src/themes/AccordionItem.css +6 -4
  344. package/src/themes/Avatar.css +24 -7
  345. package/src/themes/Badge.css +1 -1
  346. package/src/themes/Divider.css +6 -2
  347. package/src/themes/Footer.css +93 -168
  348. package/src/themes/HeroBanner.css +52 -24
  349. package/src/themes/MastheadShell.css +25 -29
  350. package/src/themes/Modal.css +6 -0
  351. package/src/themes/Pagination.css +7 -0
  352. package/src/themes/PhoneNumberField.css +1 -0
  353. package/src/themes/RatingBar.css +52 -0
  354. package/src/themes/Review.css +196 -0
  355. package/src/themes/Search.css +37 -25
  356. package/src/themes/SecondaryNavigation.css +33 -4
  357. package/src/themes/SecondaryNavigationItem.css +3 -2
  358. package/src/themes/SelectBox.css +17 -24
  359. package/src/themes/StepInput.css +5 -2
  360. package/src/themes/TabNavigation.css +7 -1
  361. package/src/themes/Tag.css +180 -148
  362. package/src/themes/TextField.css +75 -55
  363. package/dist/assets/bundle.esm-f65ae7da.js +0 -315
  364. package/dist/assets/messagebundle_en-7249941b.js +0 -1
  365. package/dist/assets/parameters-bundle.css-76ef62fa.js +0 -2
  366. package/dist/css/themes/PasswordField.css +0 -1
  367. package/dist/generated/themes/PasswordField.css.js +0 -9
  368. package/dist/generated/themes/PasswordField.css.js.map +0 -1
  369. package/src/generated/themes/PasswordField.css.ts +0 -13
  370. package/src/themes/PasswordField.css +0 -29
  371. /package/dist/generated/themes/{PasswordField.css.d.ts → RatingBar.css.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"FilterMenu.js","sourceRoot":"","sources":["../src/FilterMenu.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,KAAK,MAAM,kDAAkD,CAAC;AACrE,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,eAAe,MAAM,0DAA0D,CAAC;AACvF,OAAO,iCAAiC,CAAC;AACzC,OAAO,wDAAwD,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAO,OAAO,MAAM,+CAA+C,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAC1F,OAAO,mBAAmB,MAAM,sDAAsD,CAAC;AACvF,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,mBAAmB,MAAM,sBAAsB,CAAC;AACvD,OAAO,kBAAkB,MAAM,qBAAqB,CAAC;AACrD,OAAO,yBAAyB,MAAM,4BAA4B,CAAC;AACnE,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,sBAAsB,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,uBAAuB,MAAM,0BAA0B,CAAC;AAC/D,OAAO,iBAAiB,MAAM,oBAAoB,CAAC;AACnD,OAAO,SAAS,MAAM,YAAY,CAAC;AAGnC,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACxF,OAAO,kBAAkB,MAAM,iDAAiD,CAAC;AACjF,OAAO,0BAA0B,MAAM,yDAAyD,CAAC;AAEjG,SAAS;AACT,OAAO,aAAa,MAAM,sCAAsC,CAAC;AACjE,OAAO,iBAAiB,MAAM,0CAA0C,CAAC;AAEzE;;;;;;;;;;;;;;;;;GAiBG;AAqFH,IAAM,cAAc,sBAApB,MAAM,cAAe,SAAQ,sBAAsB;IAAnD;;QAmGI,UAAK,GAAa,KAAK,CAAC;IA0N5B,CAAC;IA7KC,gBAAgB;QACd,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC;IACjD,CAAC;IAED,UAAU;QACR,IAAI,SAAS,EAAE,EAAE;YACf,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;SAClC;IACH,CAAC;IAED,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;IAC5B,CAAC;IAED,eAAe,CAAC,CAAa;QAC3B,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAC/B,CAAC;IAED,eAAe,CAAC,CAAa;QAC3B,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB;IACH,CAAC;IAED,iBAAiB,CAAC,CAAa;QAC7B,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,iBAAiB,CAAC,CAAa;QAC7B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,WAAW;QACT,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE;YAC5B,aAAa,EAAE,IAAI,CAAC,aAAa;SAClC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,YAAY;QACV,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC3B,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE;gBAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;aAClC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,iBAAiB,CAAC,CAAgB;QAChC,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC;QAC/D,MAAM,cAAc,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QAEzD,IAAI,cAAc,IAAI,cAAc,EAAE;YACpC,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB;IACH,CAAC;IAED,mBAAmB,CAAC,CAAc;QAChC,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAuB,CAAC;QAC3C,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACjD,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB;IACH,CAAC;IAED,sBAAsB,CAAC,CAAgB;QACrC,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrC,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB;IACH,CAAC;IAED,qBAAqB,CAAC,CAAgB;QACpC,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE;YAChB,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB;IACH,CAAC;IAED,eAAe;QACb,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;YACvB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;SAC1B;IACH,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAe,eAAe,CAAE,CAAC;IACxE,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAa,aAAa,CAAE,CAAC;IACpE,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAC/B,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IACjC,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC;IACzC,CAAC;IAED,IAAI,kBAAkB;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,KAAK,WAAW,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;QACvF,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,gBAAc,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1F,CAAC;IAED,IAAI,iBAAiB;QACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,KAAK,WAAW,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;QACrF,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAc,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAClF,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IACvD,CAAC;IAED,IAAI,uBAAuB;QACzB,OAAO,gBAAc,CAAC,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,eAAe,CAAC,gBAAc,CAAC,0BAA0B,EAAE,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,CAAC;IACjD,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC;IACzE,CAAC;IAED,IAAI,YAAY;QACd,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC;IACxD,CAAC;IAED,IAAI,WAAW;QACb,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;IAC5B,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,eAAe,CAAmB,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,KAAK,0BAA0B;QACnC,OAAO,0BAA0B,CAAC;IACpC,CAAC;CACF,CAAA;AAtTG;IADD,QAAQ,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;kDACX;AAUpB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;4DACK;AAO/B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8CACT;AAShB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC;qDACjC;AASnC;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,CAAC,IAAI,EAAE,CAAC;uDAC/B;AASvC;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,CAAC;4CAC3C;AASrB;IADD,QAAQ,EAAE;qDACc;AASvB;IADD,QAAQ,EAAE;sDACe;AASxB;IADD,QAAQ,EAAE;kDACW;AASpB;IADD,QAAQ,EAAE;wDACiB;AAS1B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;gDACP;AAGnB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;6CACF;AAWxB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;qDACF;AAWxB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;oDACH;AASvB;IADD,QAAQ,EAAE;sDACe;AAQxB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,YAAY,EAAE,mBAAmB,CAAC,MAAM,EAAE,CAAC;sDACtC;AA1IxC,cAAc;IApFnB,aAAa,CAAC;QACb,GAAG,EAAE,kBAAkB;QACvB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,CAAC,aAAa,EAAE,iBAAiB,CAAC;QAC1C,QAAQ,EAAE,kBAAkB;QAC5B,YAAY,EAAE;YACZ,kBAAkB;YAClB,yBAAyB;YACzB,uBAAuB;YACvB,YAAY;YACZ,QAAQ;YACR,iBAAiB;YACjB,YAAY;YACZ,mBAAmB;YACnB,SAAS;YACT,UAAU;YACV,SAAS;SACV;KACF,CAAC;IAEF;;;;;OAKG;;IACF,KAAK,CAAC,aAAa,EAAE;QACpB,MAAM,EAAE;YACN,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;SAC/B;KACF,CAAC;IAEF;;;;;OAKG;;IACF,KAAK,CAAC,cAAc,EAAE;QACrB,MAAM,EAAE;YACN,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;SAC/B;KACF,CAAC;IAEF;;;;;OAKG;;IACF,KAAK,CAAC,YAAY,CAAC;IAEpB;;;;;OAKG;;IACF,KAAK,CAAC,aAAa,CAAC;IAErB;;;;;OAKG;;IACF,KAAK,CAAC,YAAY,CAAC;IAEpB;;;;;OAKG;;IACF,KAAK,CAAC,cAAc,CAAC;IAEtB;;;;;OAKG;;IACF,KAAK,CAAC,aAAa,CAAC;GAEf,cAAc,CA6TnB;AAED,cAAc,CAAC,MAAM,EAAE,CAAC;AAExB,eAAe,cAAc,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-down-arrow.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport { isTabPrevious, isTabNext, isEscape } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport PopupAccessibleRole from \"@ui5/webcomponents/dist/types/PopupAccessibleRole.js\";\nimport UDExDropdown from \"./Dropdown.js\";\nimport UDExList from \"./List.js\";\nimport UDExListItem from \"./ListItem.js\";\nimport UDExListGroupHeader from \"./ListGroupHeader.js\";\nimport UDExFilterMenuItem from \"./FilterMenuItem.js\";\nimport UDExFilterMenuGroupHeader from \"./FilterMenuGroupHeader.js\";\nimport UDExSearch from \"./Search.js\";\nimport UDEButton from \"./Button.js\";\nimport UDExSearchableListBase from \"./SearchableListBase.js\";\nimport { PlacementType, HorizontalAlign } from \"./types/Dropdown.js\";\nimport { ListMode } from \"./types/List.js\";\nimport UDExFilterMenuSelectAll from \"./FilterMenuSelectAll.js\";\nimport UDExListSelectAll from \"./ListSelectAll.js\";\nimport UDExBadge from \"./Badge.js\";\nimport UDExListItemBase from \"./ListItemBase.js\";\n\nimport { RESET, SHOW_RESULTS, SELECT_OPTIONS } from \"./generated/i18n/i18n-defaults.js\";\nimport FilterMenuTemplate from \"./generated/templates/FilterMenuTemplate.lit.js\";\nimport SearchableListBaseTemplate from \"./generated/templates/SearchableListBaseTemplate.lit.js\";\n\n// Styles\nimport FilterMenuCss from \"./generated/themes/FilterMenu.css.js\";\nimport SearchableListCss from \"./generated/themes/SearchableList.css.js\";\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-filter-menu</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/UDExFilterMenu.js\";</code>\n *\n * @constructor\n * @extends UDExSearchableListBase\n * @tagname udex-filter-menu\n * @public\n */\n@customElement({\n tag: \"udex-filter-menu\",\n renderer: litRender,\n styles: [FilterMenuCss, SearchableListCss],\n template: FilterMenuTemplate,\n dependencies: [\n UDExFilterMenuItem,\n UDExFilterMenuGroupHeader,\n UDExFilterMenuSelectAll,\n UDExDropdown,\n UDExList,\n UDExListSelectAll,\n UDExListItem,\n UDExListGroupHeader,\n UDExBadge,\n UDExSearch,\n UDEButton,\n ],\n})\n\n/**\n * Fired event when the user click on a reset button on the footer.\n *\n * @event sap.ui.webc.web-components.UDExFilterMenu#resetClick\n * @public\n */\n@event(\"reset-click\", {\n detail: {\n restoredItems: { type: Array },\n },\n})\n\n/**\n * Fired event when the user click on a result button on the footer.\n *\n * @event sap.ui.webc.web-components.UDExFilterMenu#resultClick\n * @public\n */\n@event(\"result-click\", {\n detail: {\n selectedItems: { type: Array },\n },\n})\n\n/**\n * Fired event when the user click on Select All header item.\n *\n * @event sap.ui.webc.web-components.UDExFilterMenu#selectAll\n * @public\n */\n@event(\"select-all\")\n\n/**\n * Fired before the dropdown pane is opened.\n *\n * @event sap.ui.webc.web-components.UDExFilterMenu#beforeOpen\n * @public\n */\n@event(\"before-open\")\n\n/**\n * Fired after the dropdown pane is opened.\n *\n * @event sap.ui.webc.web-components.UDExFilterMenu#afterOpen\n * @public\n */\n@event(\"after-open\")\n\n/**\n * Fired before the dropdown pane is closed.\n *\n * @event sap.ui.webc.web-components.UDExFilterMenu#beforeClose\n * @public\n */\n@event(\"before-close\")\n\n/**\n * Fired after the dropdown pane is closed.\n *\n * @event sap.ui.webc.web-components.UDExFilterMenu#afterClose\n * @public\n */\n@event(\"after-close\")\n\nclass UDExFilterMenu extends UDExSearchableListBase {\n /**\n * Determines the value of the badge.\n *\n * @public\n */\n @property({ validator: Integer })\n badgeValue?: number;\n\n /**\n * Determines if there is no enough space, the component can be placed\n * over the target.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disableTargetOverlap?: boolean;\n\n /**\n * Allows control over the height.\n * @public\n */\n @property({ type: String })\n height?: string;\n\n /**\n * Determines on which side the component is placed at.\n *\n * @default \"Bottom\"\n * @public\n */\n @property({ type: PlacementType, defaultValue: PlacementType.Bottom })\n placementType!: `${PlacementType}`;\n\n /**\n * Determines the horizontal alignment of the component.\n *\n * @default \"Left\"\n * @public\n */\n @property({ type: HorizontalAlign, defaultValue: HorizontalAlign.Left })\n horizontalAlign!: `${HorizontalAlign}`;\n\n /**\n * Defines the mode of the component.\n *\n * @default \"SingleSelect\"\n * @public\n */\n @property({ type: ListMode, defaultValue: ListMode.SingleSelect })\n mode!: `${ListMode}`;\n\n /**\n * Defines the label of the button reset in the footer.\n *\n * @default \"Reset\"\n * @public\n */\n @property()\n resetBtnLabel!: string;\n\n /**\n * Defines the label of the button result in the footer.\n *\n * @default \"Show Result\"\n * @public\n */\n @property()\n resultBtnLabel!: string;\n\n /**\n * Defines the filter name of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n filterName!: string;\n\n /**\n * Defines the filter name prefix of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n filterNamePrefix!: string;\n\n /**\n * Defines whether the component is in disabled state.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n @property({ type: Boolean })\n _open?: boolean = false;\n\n /**\n * Hides the result button in the footer.\n *\n * @type {boolean}\n * @name sap.ui.webc.web-components.UDExFilterMenu.prototype.hideResultBtn\n * @defaultvalue false\n * @public\n */\n @property({ type: Boolean })\n hideResultBtn!: boolean;\n\n /**\n * Hides the reset button in the footer.\n *\n * @type {boolean}\n * @name sap.ui.webc.web-components.UDExFilterMenu.prototype.hideResetBtn\n * @defaultvalue false\n * @public\n */\n @property({ type: Boolean })\n hideResetBtn!: boolean;\n\n /**\n * Defines the accessible ARIA name of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n accessibleName!: string;\n\n /**\n * Allows setting a custom role.\n * @default \"Dialog\"\n * @public\n */\n @property({ type: PopupAccessibleRole, defaultValue: PopupAccessibleRole.Dialog })\n accessibleRole!: `${PopupAccessibleRole}`;\n\n _dropdown!: UDExDropdown;\n _search!: UDExSearch;\n _hasFooterButtons!: boolean;\n\n onAfterRendering() {\n this._dropdown = this.getDropdown();\n this._search = this.getSearch();\n this._hasFooterButtons = this.hasFooterButtons;\n }\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n onBeforeRendering() {\n super.onBeforeRendering();\n }\n\n handleSelectAll(e:CustomEvent) {\n this.onFilterSelectAllHeaderPress(e);\n this.fireEvent(\"select-all\");\n }\n\n handleItemPress(e:CustomEvent) {\n this.onItemPress(e);\n\n if (this.modeSingleSelect) {\n this.onDropdownClose();\n }\n }\n\n handleHeaderPress(e:CustomEvent) {\n this.onHeaderPress(e);\n }\n\n handleValueSearch(e:CustomEvent) {\n this.onSearch(e);\n }\n\n handleSubmitSearch() {\n this.onDropdownClose();\n this.onSubmitSearch();\n }\n\n handleResetSearch() {\n this.onResetSearch();\n }\n\n handleReset() {\n this.fireEvent(\"reset-click\", {\n restoredItems: this.selectedItems,\n });\n this.onReset();\n }\n\n handleResult() {\n if (!this.disabledResultBtn) {\n this._dropdown.onClose();\n this.fireEvent(\"result-click\", {\n selectedItems: this.selectedItems,\n });\n }\n }\n\n handleKeyDownList(e: KeyboardEvent) {\n const isTabNextPress = isTabNext(e) && !this._hasFooterButtons;\n const isTabPrevPress = isTabPrevious(e) && !this._search;\n\n if (isTabNextPress || isTabPrevPress) {\n this.onDropdownClose();\n }\n }\n\n handleKeyDownSearch(e: CustomEvent) {\n const keyEvent = e.detail as KeyboardEvent;\n if (isTabPrevious(keyEvent) || isEscape(keyEvent)) {\n this.onDropdownClose();\n }\n }\n\n handleKeyDownResultBtn(e: KeyboardEvent) {\n e.stopPropagation();\n if (isTabNext(e) && !this.hasResetBtn) {\n this.onDropdownClose();\n }\n }\n\n handleKeyDownResetBtn(e: KeyboardEvent) {\n e.stopPropagation();\n if (isTabNext(e)) {\n this.onDropdownClose();\n }\n }\n\n onDropdownClose() {\n if (this._dropdown.open) {\n this._dropdown.onClose();\n }\n }\n\n getDropdown(): UDExDropdown {\n return this.shadowRoot!.querySelector<UDExDropdown>(\"udex-dropdown\")!;\n }\n\n getSearch(): UDExSearch {\n return this.shadowRoot!.querySelector<UDExSearch>(\"udex-search\")!;\n }\n\n _dropdownBeforeOpen() {\n this._open = true;\n this.fireEvent(\"before-open\");\n }\n\n _dropdownAfterOpen() {\n this.fireEvent(\"after-open\");\n }\n\n _dropdownBeforeClose() {\n this.fireEvent(\"before-close\");\n }\n\n _dropdownAfterClose() {\n this._open = false;\n this.fireEvent(\"after-close\");\n }\n\n get hasFilterNamePrefix(): boolean {\n return !!this.filterNamePrefix?.length;\n }\n\n get getResultLabelText(): string {\n const hasLabel = this.resultBtnLabel !== \"undefined\" && this.resultBtnLabel.length > 0;\n return hasLabel ? this.resultBtnLabel : UDExFilterMenu.i18nBundle.getText(SHOW_RESULTS);\n }\n\n get getResetLabelText(): string {\n const hasLabel = this.resetBtnLabel !== \"undefined\" && this.resetBtnLabel.length > 0;\n return hasLabel ? this.resetBtnLabel : UDExFilterMenu.i18nBundle.getText(RESET);\n }\n\n get disabledResultBtn() {\n return !this.selectedItems.length && !this.selectAll;\n }\n\n get _iconAccessibleNameText() {\n return UDExFilterMenu.i18nBundle.getText(SELECT_OPTIONS);\n }\n\n get searchableList() {\n return executeTemplate(UDExFilterMenu.searchableListBaseTemplate, this);\n }\n\n get hideActionBar(): boolean {\n return this.hideResultBtn && this.hideResetBtn;\n }\n\n get hasFooterButtons(): boolean {\n return (this.hasResultBtn || this.hasResetBtn) && this.modeMultiSelect;\n }\n\n get hasResultBtn(): boolean {\n return !this.hideResultBtn && !this.disabledResultBtn;\n }\n\n get hasResetBtn(): boolean {\n return !this.hideResetBtn;\n }\n\n getItems(): Array<UDExListItemBase> {\n return this.getSlottedNodes<UDExListItemBase>(\"items\");\n }\n\n static get searchableListBaseTemplate() {\n return SearchableListBaseTemplate;\n }\n}\n\nUDExFilterMenu.define();\n\nexport default UDExFilterMenu;\n"]}
1
+ {"version":3,"file":"FilterMenu.js","sourceRoot":"","sources":["../src/FilterMenu.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-down-arrow.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport { isTabPrevious, isTabNext, isEscape } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport PopupAccessibleRole from \"@ui5/webcomponents/dist/types/PopupAccessibleRole.js\";\nimport UDExDropdown from \"./Dropdown.js\";\nimport UDExList from \"./List.js\";\nimport UDExListItem from \"./ListItem.js\";\nimport UDExListGroupHeader from \"./ListGroupHeader.js\";\nimport UDExFilterMenuItem from \"./FilterMenuItem.js\";\nimport UDExFilterMenuGroupHeader from \"./FilterMenuGroupHeader.js\";\nimport UDExSearch from \"./Search.js\";\nimport UDEButton from \"./Button.js\";\nimport UDExSearchableListBase from \"./SearchableListBase.js\";\nimport { PlacementType, HorizontalAlign } from \"./types/Dropdown.js\";\nimport { ListMode } from \"./types/List.js\";\nimport UDExFilterMenuSelectAll from \"./FilterMenuSelectAll.js\";\nimport UDExListSelectAll from \"./ListSelectAll.js\";\nimport UDExBadge from \"./Badge.js\";\nimport UDExListItemBase from \"./ListItemBase.js\";\n\nimport { RESET, SHOW_RESULTS, SELECT_OPTIONS } from \"./generated/i18n/i18n-defaults.js\";\nimport FilterMenuTemplate from \"./generated/templates/FilterMenuTemplate.lit.js\";\nimport SearchableListBaseTemplate from \"./generated/templates/SearchableListBaseTemplate.lit.js\";\n\n// Styles\nimport FilterMenuCss from \"./generated/themes/FilterMenu.css.js\";\nimport SearchableListCss from \"./generated/themes/SearchableList.css.js\";\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-filter-menu</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/UDExFilterMenu.js\";</code>\n *\n * @constructor\n * @extends UDExSearchableListBase\n * @tagname udex-filter-menu\n * @public\n */\n@customElement({\n tag: \"udex-filter-menu\",\n renderer: litRender,\n styles: [FilterMenuCss, SearchableListCss],\n template: FilterMenuTemplate,\n dependencies: [\n UDExFilterMenuItem,\n UDExFilterMenuGroupHeader,\n UDExFilterMenuSelectAll,\n UDExDropdown,\n UDExList,\n UDExListSelectAll,\n UDExListItem,\n UDExListGroupHeader,\n UDExBadge,\n UDExSearch,\n UDEButton,\n ],\n})\n\n/**\n * Fired event when the user click on a reset button on the footer.\n *\n * @event sap.ui.webc.web-components.UDExFilterMenu#resetClick\n * @public\n */\n@event(\"reset-click\", {\n detail: {\n restoredItems: { type: Array },\n },\n})\n\n/**\n * Fired event when the user click on a result button on the footer.\n *\n * @event sap.ui.webc.web-components.UDExFilterMenu#resultClick\n * @public\n */\n@event(\"result-click\", {\n detail: {\n selectedItems: { type: Array },\n },\n})\n\n/**\n * Fired event when the user click on Select All header item.\n *\n * @event sap.ui.webc.web-components.UDExFilterMenu#selectAll\n * @public\n */\n@event(\"select-all\")\n\n/**\n * Fired before the dropdown pane is opened.\n *\n * @event sap.ui.webc.web-components.UDExFilterMenu#beforeOpen\n * @public\n */\n@event(\"before-open\")\n\n/**\n * Fired after the dropdown pane is opened.\n *\n * @event sap.ui.webc.web-components.UDExFilterMenu#afterOpen\n * @public\n */\n@event(\"after-open\")\n\n/**\n * Fired before the dropdown pane is closed.\n *\n * @event sap.ui.webc.web-components.UDExFilterMenu#beforeClose\n * @public\n */\n@event(\"before-close\")\n\n/**\n * Fired after the dropdown pane is closed.\n *\n * @event sap.ui.webc.web-components.UDExFilterMenu#afterClose\n * @public\n */\n@event(\"after-close\")\n\nclass UDExFilterMenu extends UDExSearchableListBase {\n /**\n * Determines the value of the badge.\n *\n * @public\n */\n @property({ validator: Integer })\n badgeValue?: number;\n\n /**\n * Determines if there is no enough space, the component can be placed\n * over the target.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disableTargetOverlap?: boolean;\n\n /**\n * Allows control over the height.\n * @public\n */\n @property({ type: String })\n height?: string;\n\n /**\n * Determines on which side the component is placed at.\n *\n * @default \"Bottom\"\n * @public\n */\n @property({ type: PlacementType, defaultValue: PlacementType.Bottom })\n placementType!: `${PlacementType}`;\n\n /**\n * Determines the horizontal alignment of the component.\n *\n * @default \"Left\"\n * @public\n */\n @property({ type: HorizontalAlign, defaultValue: HorizontalAlign.Left })\n horizontalAlign!: `${HorizontalAlign}`;\n\n /**\n * Defines the mode of the component.\n *\n * @default \"SingleSelect\"\n * @public\n */\n @property({ type: ListMode, defaultValue: ListMode.SingleSelect })\n mode!: `${ListMode}`;\n\n /**\n * Defines the label of the button reset in the footer.\n *\n * @default \"Reset\"\n * @public\n */\n @property()\n resetBtnLabel!: string;\n\n /**\n * Defines the label of the button result in the footer.\n *\n * @default \"Show Result\"\n * @public\n */\n @property()\n resultBtnLabel!: string;\n\n /**\n * Defines the filter name of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n filterName!: string;\n\n /**\n * Defines the filter name prefix of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n filterNamePrefix!: string;\n\n /**\n * Defines whether the component is in disabled state.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n @property({ type: Boolean })\n _open?: boolean = false;\n\n /**\n * Hides the result button in the footer.\n *\n * @type {boolean}\n * @name sap.ui.webc.web-components.UDExFilterMenu.prototype.hideResultBtn\n * @defaultvalue false\n * @public\n */\n @property({ type: Boolean })\n hideResultBtn!: boolean;\n\n /**\n * Hides the reset button in the footer.\n *\n * @type {boolean}\n * @name sap.ui.webc.web-components.UDExFilterMenu.prototype.hideResetBtn\n * @defaultvalue false\n * @public\n */\n @property({ type: Boolean })\n hideResetBtn!: boolean;\n\n /**\n * Defines the accessible ARIA name of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n accessibleName!: string;\n\n /**\n * Allows setting a custom role.\n * @default \"None\"\n * @public\n */\n @property({ type: PopupAccessibleRole, defaultValue: PopupAccessibleRole.None })\n accessibleRole!: `${PopupAccessibleRole}`;\n\n /**\n * Allows setting a custom role for dropdown trigger.\n * @default \"combobox\"\n * @public\n */\n @property({ type: String, defaultValue: \"combobox\" })\n triggerAccessibleRole!: string;\n\n _dropdown!: UDExDropdown;\n _search!: UDExSearch;\n _hasFooterButtons!: boolean;\n\n onAfterRendering() {\n this._dropdown = this.getDropdown();\n this._search = this.getSearch();\n this._hasFooterButtons = this.hasFooterButtons;\n }\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n onBeforeRendering() {\n super.onBeforeRendering();\n }\n\n handleSelectAll(e:CustomEvent) {\n this.onFilterSelectAllHeaderPress(e);\n this.fireEvent(\"select-all\");\n }\n\n handleItemPress(e:CustomEvent) {\n this.onItemPress(e);\n\n if (this.modeSingleSelect) {\n this.onDropdownClose();\n }\n }\n\n handleHeaderPress(e:CustomEvent) {\n this.onHeaderPress(e);\n }\n\n handleValueSearch(e:CustomEvent) {\n this.onSearch(e);\n }\n\n handleSubmitSearch() {\n this.onDropdownClose();\n this.onSubmitSearch();\n }\n\n handleResetSearch() {\n this.onResetSearch();\n }\n\n handleReset() {\n this.fireEvent(\"reset-click\", {\n restoredItems: this.selectedItems,\n });\n this.onReset();\n }\n\n handleResult() {\n if (!this.disabledResultBtn) {\n this._dropdown.onClose();\n this.fireEvent(\"result-click\", {\n selectedItems: this.selectedItems,\n });\n }\n }\n\n handleKeyDownList(e: KeyboardEvent) {\n const isTabNextPress = isTabNext(e) && !this._hasFooterButtons;\n const isTabPrevPress = isTabPrevious(e) && !this._search;\n\n if (isTabNextPress || isTabPrevPress) {\n this.onDropdownClose();\n }\n }\n\n handleKeyDownSearch(e: CustomEvent) {\n const keyEvent = e.detail as KeyboardEvent;\n if (isTabPrevious(keyEvent) || isEscape(keyEvent)) {\n this.onDropdownClose();\n }\n }\n\n handleKeyDownResultBtn(e: KeyboardEvent) {\n e.stopPropagation();\n if (isTabNext(e) && !this.hasResetBtn) {\n this.onDropdownClose();\n }\n }\n\n handleKeyDownResetBtn(e: KeyboardEvent) {\n e.stopPropagation();\n if (isTabNext(e)) {\n this.onDropdownClose();\n }\n }\n\n onDropdownClose() {\n if (this._dropdown.open) {\n this._dropdown.onClose();\n }\n }\n\n getDropdown(): UDExDropdown {\n return this.shadowRoot!.querySelector<UDExDropdown>(\"udex-dropdown\")!;\n }\n\n getSearch(): UDExSearch {\n return this.shadowRoot!.querySelector<UDExSearch>(\"udex-search\")!;\n }\n\n _dropdownBeforeOpen() {\n this._open = true;\n this.fireEvent(\"before-open\");\n }\n\n _dropdownAfterOpen() {\n this.fireEvent(\"after-open\");\n }\n\n _dropdownBeforeClose() {\n this.fireEvent(\"before-close\");\n }\n\n _dropdownAfterClose() {\n this._open = false;\n this.fireEvent(\"after-close\");\n }\n\n get hasFilterNamePrefix(): boolean {\n return !!this.filterNamePrefix?.length;\n }\n\n get getResultLabelText(): string {\n const hasLabel = this.resultBtnLabel !== \"undefined\" && this.resultBtnLabel.length > 0;\n return hasLabel ? this.resultBtnLabel : UDExFilterMenu.i18nBundle.getText(SHOW_RESULTS);\n }\n\n get getResetLabelText(): string {\n const hasLabel = this.resetBtnLabel !== \"undefined\" && this.resetBtnLabel.length > 0;\n return hasLabel ? this.resetBtnLabel : UDExFilterMenu.i18nBundle.getText(RESET);\n }\n\n get disabledResultBtn() {\n return !this.selectedItems.length && !this.selectAll;\n }\n\n get _iconAccessibleNameText() {\n return UDExFilterMenu.i18nBundle.getText(SELECT_OPTIONS);\n }\n\n get searchableList() {\n return executeTemplate(UDExFilterMenu.searchableListBaseTemplate, this);\n }\n\n get hideActionBar(): boolean {\n return this.hideResultBtn && this.hideResetBtn;\n }\n\n get hasFooterButtons(): boolean {\n return (this.hasResultBtn || this.hasResetBtn) && this.modeMultiSelect;\n }\n\n get hasResultBtn(): boolean {\n return !this.hideResultBtn && !this.disabledResultBtn;\n }\n\n get hasResetBtn(): boolean {\n return !this.hideResetBtn;\n }\n\n getItems(): Array<UDExListItemBase> {\n return this.getSlottedNodes<UDExListItemBase>(\"items\");\n }\n\n static get searchableListBaseTemplate() {\n return SearchableListBaseTemplate;\n }\n}\n\nUDExFilterMenu.define();\n\nexport default UDExFilterMenu;\n"]}
package/dist/Footer.d.ts CHANGED
@@ -18,6 +18,15 @@ export type FooterContactNumber = {
18
18
  number: string;
19
19
  country: string;
20
20
  };
21
+ export type FooterDetailedClickEvent = {
22
+ originalEvent: PointerEvent;
23
+ name: string;
24
+ id?: string;
25
+ sourceNode: HTMLElement;
26
+ };
27
+ export type FooterBaseEventEvent = {
28
+ originalEvent: PointerEvent;
29
+ };
21
30
  export declare const FooterBaseEvent: {
22
31
  detail: {
23
32
  originalEvent: {
@@ -39,6 +48,9 @@ export declare const FooterDetailedEvent: {
39
48
  name: {
40
49
  type: StringConstructor;
41
50
  };
51
+ id: {
52
+ type: StringConstructor;
53
+ };
42
54
  sourceNode: {
43
55
  type: {
44
56
  new (): HTMLElement;
@@ -67,6 +79,13 @@ export declare const FooterDetailedEvent: {
67
79
  * @public
68
80
  */
69
81
  declare class UDExFooter extends UI5Element {
82
+ /**
83
+ * Defines the Logo default title
84
+ *
85
+ * @default ""
86
+ * @public
87
+ */
88
+ logoTitle: string;
70
89
  /**
71
90
  * Defines the Logo URL
72
91
  *
@@ -151,6 +170,12 @@ declare class UDExFooter extends UI5Element {
151
170
  * @public
152
171
  */
153
172
  logoAlt: string;
173
+ /**
174
+ * Defines an aria label for the logo link
175
+ *
176
+ * @public
177
+ */
178
+ logoAriaLabel: string;
154
179
  /**
155
180
  * Defines should render the mobile navigation.
156
181
  *
@@ -197,5 +222,7 @@ declare class UDExFooter extends UI5Element {
197
222
  _onAboutSapClick(e: Event): void;
198
223
  _onSiteInformationClick(e: Event): void;
199
224
  _onSocialMediaLinkClick(e: Event): void;
225
+ fireFooterBaseEvent(e: Event, eventName: string): void;
226
+ fireFooterDetailedClickEvent(e: Event, eventName: string): void;
200
227
  }
201
228
  export default UDExFooter;
package/dist/Footer.js CHANGED
@@ -34,6 +34,7 @@ export const FooterDetailedEvent = {
34
34
  detail: {
35
35
  originalEvent: { type: PointerEvent },
36
36
  name: { type: String },
37
+ id: { type: String },
37
38
  sourceNode: { type: HTMLElement },
38
39
  },
39
40
  };
@@ -147,65 +148,52 @@ let UDExFooter = UDExFooter_1 = class UDExFooter extends UI5Element {
147
148
  return window.innerWidth <= BreakpointSizeS;
148
149
  }
149
150
  _onLogoClick(e) {
150
- this.fireEvent("logo-click", { originalEvent: e }, true);
151
+ this.fireFooterBaseEvent(e, "logo-click");
151
152
  }
152
153
  _onContactPhoneClick(e) {
153
- this.fireEvent("contact-phone-click", { originalEvent: e }, true);
154
+ this.fireFooterBaseEvent(e, "contact-phone-click");
154
155
  }
155
156
  _onContactPhoneLocalNumbersClick(e) {
156
- this.fireEvent("contact-phone-local-numbers-click", { originalEvent: e }, true);
157
+ this.fireFooterBaseEvent(e, "contact-phone-local-numbers-click");
157
158
  }
158
159
  _onContactEmailClick(e) {
159
- this.fireEvent("contact-email-click", { originalEvent: e }, true);
160
+ this.fireFooterBaseEvent(e, "contact-email-click");
160
161
  }
161
162
  _onContactChatClick(e) {
162
- this.fireEvent("contact-chat-click", { originalEvent: e }, true);
163
+ this.fireFooterBaseEvent(e, "contact-chat-click");
163
164
  }
164
165
  _onQuickLinksClick(e) {
165
- const sourceNode = e.composedPath()[0];
166
- this.fireEvent("quick-links-click", {
167
- name: sourceNode.innerText,
168
- originalEvent: e,
169
- sourceNode,
170
- }, true);
166
+ this.fireFooterDetailedClickEvent(e, "quick-links-click");
171
167
  }
172
168
  _onTrendingClick(e) {
173
- const sourceNode = e.composedPath()[0];
174
- this.fireEvent("trending-click", {
175
- name: sourceNode.innerText,
176
- originalEvent: e,
177
- sourceNode,
178
- }, true);
169
+ this.fireFooterDetailedClickEvent(e, "trending-click");
179
170
  }
180
171
  _onAboutSapClick(e) {
181
- const sourceNode = e.composedPath()[0];
182
- this.fireEvent("about-sap-click", {
183
- name: sourceNode.innerText,
184
- originalEvent: e,
185
- sourceNode,
186
- }, true);
172
+ this.fireFooterDetailedClickEvent(e, "about-sap-click");
187
173
  }
188
174
  _onSiteInformationClick(e) {
189
- const sourceNode = e.composedPath()[0];
190
- this.fireEvent("site-information-click", {
191
- name: sourceNode.innerText,
192
- originalEvent: e,
193
- sourceNode,
194
- }, true);
175
+ this.fireFooterDetailedClickEvent(e, "site-information-click");
195
176
  }
196
177
  _onSocialMediaLinkClick(e) {
197
- const nodes = e.composedPath();
198
- let sourceNode = nodes[0];
199
- if (nodes[0] instanceof HTMLImageElement) {
200
- sourceNode = nodes[1];
201
- }
202
- this.fireEvent("social-media-link-click", {
203
- name: sourceNode?.dataset?.name,
178
+ this.fireFooterDetailedClickEvent(e, "social-media-link-click");
179
+ }
180
+ fireFooterBaseEvent(e, eventName) {
181
+ this.fireEvent(eventName, { originalEvent: e }, true);
182
+ }
183
+ fireFooterDetailedClickEvent(e, eventName) {
184
+ const sourceNode = e.composedPath()[0];
185
+ const { innerText, dataset: { id, name } } = sourceNode;
186
+ this.fireEvent(eventName, {
187
+ ...(!!id?.length && { id }),
188
+ name: innerText.length ? innerText : name,
204
189
  originalEvent: e,
205
190
  sourceNode,
206
191
  }, true);
207
192
  }
208
193
  };
194
+ __decorate([
195
+ property({ type: String, defaultValue: "" })
196
+ ], UDExFooter.prototype, "logoTitle", void 0);
209
197
  __decorate([
210
198
  property({ type: String, defaultValue: "" })
211
199
  ], UDExFooter.prototype, "logoUrl", void 0);
@@ -242,6 +230,9 @@ __decorate([
242
230
  __decorate([
243
231
  property({ type: String, defaultValue: "" })
244
232
  ], UDExFooter.prototype, "logoAlt", void 0);
233
+ __decorate([
234
+ property({ type: String })
235
+ ], UDExFooter.prototype, "logoAriaLabel", void 0);
245
236
  __decorate([
246
237
  property({ type: Boolean })
247
238
  ], UDExFooter.prototype, "_shouldRenderMobileMenu", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"Footer.js","sourceRoot":"","sources":["../src/Footer.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport ResizeHandler, { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\n\nimport \"@ui5/webcomponents-icons/dist/headset.js\";\nimport \"@ui5/webcomponents-icons/dist/email.js\";\nimport \"@ui5/webcomponents-icons/dist/back-to-top.js\";\nimport \"@ui5/webcomponents-icons/dist/discussion-2.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-right-arrow.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\n\n// Template\nimport FooterTemplate from \"./generated/templates/FooterTemplate.lit.js\";\n\n// Styles\nimport FooterCss from \"./generated/themes/Footer.css\";\nimport UDExAccordionItem from \"./AccordionItem.js\";\nimport {\n ABOUT_SAP,\n CHAT_WITH_US,\n CONTACT_US,\n EMAIL,\n LOCAL_COUNTRY_NAMES,\n PHONE_NUMBER,\n QUICK_LINKS,\n SEE_COMPLETE_LIST,\n SITE_INFORMATION,\n SOCIAL_LINK_ICON,\n TRENDING,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nconst BreakpointSizeS: number = 979;\n\nexport type FooterLink = {\n title: string;\n url: string;\n};\n\nexport type FooterSocialLink = {\n url: string;\n iconUrl: string;\n};\n\nexport type FooterContactNumber = {\n number: string;\n country: string;\n};\n\nexport const FooterBaseEvent = {\n detail: {\n originalEvent: { type: PointerEvent },\n },\n};\n\nexport const FooterDetailedEvent = {\n detail: {\n originalEvent: { type: PointerEvent },\n name: { type: String },\n sourceNode: { type: HTMLElement },\n },\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-footer</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import @udex/web-components/dist/Footer.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-footer\n * @public\n */\n@customElement({\n tag: \"udex-footer\",\n renderer: litRender,\n styles: [FooterCss],\n template: FooterTemplate,\n dependencies: [UDExAccordionItem],\n})\n/**\n * Triggered on click interaction with logo in footer\n * @public\n * @allowPreventDefault\n */\n@event(\"logo-click\", FooterBaseEvent)\n/**\n * Triggered on click interaction with \"Back to Top\" button\n * @public\n * @allowPreventDefault\n */\n@event(\"back-to-top-click\", FooterBaseEvent)\n\n/**\n * Triggered on click interaction with phone number link in footer\n * @public\n * @allowPreventDefault\n */\n@event(\"contact-phone-click\", FooterBaseEvent)\n/**\n * Triggered on click interaction with local country numbers list link\n * @public\n * @allowPreventDefault\n */\n@event(\"contact-phone-local-numbers-click\", FooterBaseEvent)\n/**\n * Triggered on click interaction with \"Contact us by email\" link\n * @public\n * @allowPreventDefault\n */\n@event(\"contact-email-click\", FooterBaseEvent)\n/**\n * Triggered on click interaction with \"Contact us by chat\" link\n * @public\n * @allowPreventDefault\n */\n@event(\"contact-chat-click\", FooterBaseEvent)\n\n/**\n * Triggered on click interaction with a link within \"Quick Links\" category\n * @public\n * @allowPreventDefault\n */\n@event(\"quick-links-click\", FooterDetailedEvent)\n/**\n * Triggered on click interaction with a link within \"Trending\" category\n * @public\n * @allowPreventDefault\n */\n@event(\"trending-click\", FooterDetailedEvent)\n/**\n * Triggered on click interaction with a link within \"About SAP\" category\n * @public\n * @allowPreventDefault\n */\n@event(\"about-sap-click\", FooterDetailedEvent)\n/**\n * Triggered on click interaction with a link within \"Site Information\" category\n * @public\n * @allowPreventDefault\n */\n@event(\"site-information-click\", FooterDetailedEvent)\n\n/**\n * Triggered on click interaction with any of the social media links within footer\n * @public\n * @allowPreventDefault\n */\n@event(\"social-media-link-click\", FooterDetailedEvent)\nclass UDExFooter extends UI5Element {\n /**\n * Defines the Logo URL\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n logoUrl!: string;\n\n /**\n * Defines the optional component href link for the logo.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n logoLink?: string;\n\n /**\n * List of the Quick links\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n quickLinks!: string;\n\n /**\n * List of the Trending links\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n trendingLinks!: string;\n\n /**\n * List of the About SAP links\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n aboutLinks!: string;\n\n /**\n * List of the Site Information links\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n siteInformationLinks!: string;\n\n /**\n * List of the contact numbers\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n contactNumbersList!: string;\n\n /**\n * Defines the local country numbers link's href\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n localCountryNumbersLink!: string;\n\n /**\n * Defines the Contact us link's href\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n contactUsLink!: string;\n\n /**\n * Defines the Chat with us link's href\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n chatWithUsLink!: string;\n\n /**\n * List of the Social links and their icons\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n socialLinks!: string;\n\n /**\n * Alt for Logo\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n logoAlt!: string;\n\n /**\n * Defines should render the mobile navigation.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _shouldRenderMobileMenu!: boolean;\n\n static i18nBundle: I18nBundle;\n\n static async onDefine(): Promise<void> {\n UDExFooter.i18nBundle = await getI18nBundle(\"sap-ui-webcomponents-bundle\");\n }\n\n _handleResizeBound: ResizeObserverCallback;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n onEnterDOM() {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n ResizeHandler.register(this, this._handleResizeBound);\n }\n\n _handleResize(): void {\n this._shouldRenderMobileMenu = this.isMobile;\n }\n\n onBackToTopClick(e: Event): void {\n this.fireEvent(\"back-to-top-click\", { originalEvent: e }, true);\n\n window.scrollTo(0, 0);\n }\n\n parseArrayFromString<T>(string: string): T[] {\n return string ? JSON.parse(string) as T[] : [];\n }\n\n get parsedRef() {\n return (this.logoLink && this.logoLink.length > 0) ? this.logoLink : undefined;\n }\n\n get quickLinksArray(): FooterLink[] {\n return this.parseArrayFromString<FooterLink>(this.quickLinks);\n }\n\n get trendingLinksArray(): FooterLink[] {\n return this.parseArrayFromString<FooterLink>(this.trendingLinks);\n }\n\n get aboutLinksArray(): FooterLink[] {\n return this.parseArrayFromString<FooterLink>(this.aboutLinks);\n }\n\n get siteInformationLinksArray(): FooterLink[] {\n return this.parseArrayFromString<FooterLink>(this.siteInformationLinks);\n }\n\n get contactNumbersArray(): FooterContactNumber[] {\n return this.parseArrayFromString<FooterContactNumber>(this.contactNumbersList);\n }\n\n get socialLinksArray(): FooterSocialLink[] {\n return this.parseArrayFromString<FooterSocialLink>(this.socialLinks);\n }\n\n get isContactContainerVisible(): boolean {\n return !!this.contactNumbersArray.length || !!this.contactUsLink || !!this.chatWithUsLink;\n }\n\n get socialIconAccessibleName() {\n return ` ${UDExFooter.i18nBundle.getText(SOCIAL_LINK_ICON)}`;\n }\n\n get phoneNumberAccessibleName() {\n return `${UDExFooter.i18nBundle.getText(PHONE_NUMBER)} `;\n }\n\n get contactUsAccessibleName() {\n return UDExFooter.i18nBundle.getText(CONTACT_US);\n }\n\n get contactUsAccessibleLabel() {\n if (this.contactUsLink.includes(\"mailto:\")) {\n return `${this.contactUsAccessibleName} ${UDExFooter.i18nBundle.getText(EMAIL)}`;\n }\n return `${this.contactUsAccessibleName}`;\n }\n\n get chatWithUsAccessibleName() {\n return UDExFooter.i18nBundle.getText(CHAT_WITH_US);\n }\n\n get quickLinksTitle() {\n return UDExFooter.i18nBundle.getText(QUICK_LINKS);\n }\n\n get trendingTitle() {\n return UDExFooter.i18nBundle.getText(TRENDING);\n }\n\n get aboutSapTitle() {\n return UDExFooter.i18nBundle.getText(ABOUT_SAP);\n }\n\n get siteInformationTitle() {\n return UDExFooter.i18nBundle.getText(SITE_INFORMATION);\n }\n\n get completeListTitle() {\n return `${UDExFooter.i18nBundle.getText(SEE_COMPLETE_LIST)} `;\n }\n\n get localCountryTitle() {\n return UDExFooter.i18nBundle.getText(LOCAL_COUNTRY_NAMES);\n }\n\n get isMobile(): boolean {\n return window.innerWidth <= BreakpointSizeS;\n }\n\n _onLogoClick(e: Event): void {\n this.fireEvent(\"logo-click\", { originalEvent: e }, true);\n }\n\n _onContactPhoneClick(e: Event): void {\n this.fireEvent(\"contact-phone-click\", { originalEvent: e }, true);\n }\n _onContactPhoneLocalNumbersClick(e: Event): void {\n this.fireEvent(\"contact-phone-local-numbers-click\", { originalEvent: e }, true);\n }\n _onContactEmailClick(e: Event): void {\n this.fireEvent(\"contact-email-click\", { originalEvent: e }, true);\n }\n _onContactChatClick(e: Event): void {\n this.fireEvent(\"contact-chat-click\", { originalEvent: e }, true);\n }\n\n _onQuickLinksClick(e: Event): void {\n const sourceNode = e.composedPath()[0]as HTMLElement;\n\n this.fireEvent(\"quick-links-click\", {\n name: sourceNode.innerText,\n originalEvent: e,\n sourceNode,\n }, true);\n }\n\n _onTrendingClick(e: Event): void {\n const sourceNode = e.composedPath()[0]as HTMLElement;\n\n this.fireEvent(\"trending-click\", {\n name: sourceNode.innerText,\n originalEvent: e,\n sourceNode,\n }, true);\n }\n\n _onAboutSapClick(e: Event): void {\n const sourceNode = e.composedPath()[0]as HTMLElement;\n\n this.fireEvent(\"about-sap-click\", {\n name: sourceNode.innerText,\n originalEvent: e,\n sourceNode,\n }, true);\n }\n\n _onSiteInformationClick(e: Event): void {\n const sourceNode = e.composedPath()[0]as HTMLElement;\n\n this.fireEvent(\"site-information-click\", {\n name: sourceNode.innerText,\n originalEvent: e,\n sourceNode,\n }, true);\n }\n\n _onSocialMediaLinkClick(e: Event): void {\n const nodes = e.composedPath() as HTMLElement[];\n let sourceNode = nodes[0];\n\n if (nodes[0] instanceof HTMLImageElement) { sourceNode = nodes[1]; }\n\n this.fireEvent(\"social-media-link-click\", {\n name: sourceNode?.dataset?.name,\n originalEvent: e,\n sourceNode,\n }, true);\n }\n}\n\nUDExFooter.define();\n\nexport default UDExFooter;\n"]}
1
+ {"version":3,"file":"Footer.js","sourceRoot":"","sources":["../src/Footer.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport ResizeHandler, { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\n\nimport \"@ui5/webcomponents-icons/dist/headset.js\";\nimport \"@ui5/webcomponents-icons/dist/email.js\";\nimport \"@ui5/webcomponents-icons/dist/back-to-top.js\";\nimport \"@ui5/webcomponents-icons/dist/discussion-2.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-right-arrow.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\n\n// Template\nimport FooterTemplate from \"./generated/templates/FooterTemplate.lit.js\";\n\n// Styles\nimport FooterCss from \"./generated/themes/Footer.css\";\nimport UDExAccordionItem from \"./AccordionItem.js\";\nimport {\n ABOUT_SAP,\n CHAT_WITH_US,\n CONTACT_US,\n EMAIL,\n LOCAL_COUNTRY_NAMES,\n PHONE_NUMBER,\n QUICK_LINKS,\n SEE_COMPLETE_LIST,\n SITE_INFORMATION,\n SOCIAL_LINK_ICON,\n TRENDING,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nconst BreakpointSizeS: number = 979;\n\nexport type FooterLink = {\n title: string;\n url: string;\n};\n\nexport type FooterSocialLink = {\n url: string;\n iconUrl: string;\n};\n\nexport type FooterContactNumber = {\n number: string;\n country: string;\n};\n\nexport type FooterDetailedClickEvent = {\n originalEvent: PointerEvent,\n name: string;\n id?: string;\n sourceNode: HTMLElement;\n}\n\nexport type FooterBaseEventEvent = {\n originalEvent: PointerEvent,\n}\n\nexport const FooterBaseEvent = {\n detail: {\n originalEvent: { type: PointerEvent },\n },\n};\n\nexport const FooterDetailedEvent = {\n detail: {\n originalEvent: { type: PointerEvent },\n name: { type: String },\n id: { type: String },\n sourceNode: { type: HTMLElement },\n },\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-footer</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import @udex/web-components/dist/Footer.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-footer\n * @public\n */\n@customElement({\n tag: \"udex-footer\",\n renderer: litRender,\n styles: [FooterCss],\n template: FooterTemplate,\n dependencies: [UDExAccordionItem],\n})\n/**\n * Triggered on click interaction with logo in footer\n * @public\n * @allowPreventDefault\n */\n@event<FooterBaseEventEvent>(\"logo-click\", FooterBaseEvent)\n/**\n * Triggered on click interaction with \"Back to Top\" button\n * @public\n * @allowPreventDefault\n */\n@event<FooterBaseEventEvent>(\"back-to-top-click\", FooterBaseEvent)\n\n/**\n * Triggered on click interaction with phone number link in footer\n * @public\n * @allowPreventDefault\n */\n@event<FooterBaseEventEvent>(\"contact-phone-click\", FooterBaseEvent)\n/**\n * Triggered on click interaction with local country numbers list link\n * @public\n * @allowPreventDefault\n */\n@event<FooterBaseEventEvent>(\"contact-phone-local-numbers-click\", FooterBaseEvent)\n/**\n * Triggered on click interaction with \"Contact us by email\" link\n * @public\n * @allowPreventDefault\n */\n@event<FooterBaseEventEvent>(\"contact-email-click\", FooterBaseEvent)\n/**\n * Triggered on click interaction with \"Contact us by chat\" link\n * @public\n * @allowPreventDefault\n */\n@event<FooterBaseEventEvent>(\"contact-chat-click\", FooterBaseEvent)\n\n/**\n * Triggered on click interaction with a link within \"Quick Links\" category\n * @public\n * @allowPreventDefault\n */\n@event<FooterDetailedClickEvent>(\"quick-links-click\", FooterDetailedEvent)\n/**\n * Triggered on click interaction with a link within \"Trending\" category\n * @public\n * @allowPreventDefault\n */\n@event<FooterDetailedClickEvent>(\"trending-click\", FooterDetailedEvent)\n/**\n * Triggered on click interaction with a link within \"About SAP\" category\n * @public\n * @allowPreventDefault\n */\n@event<FooterDetailedClickEvent>(\"about-sap-click\", FooterDetailedEvent)\n/**\n * Triggered on click interaction with a link within \"Site Information\" category\n * @public\n * @allowPreventDefault\n */\n@event<FooterDetailedClickEvent>(\"site-information-click\", FooterDetailedEvent)\n\n/**\n * Triggered on click interaction with any of the social media links within footer\n * @public\n * @allowPreventDefault\n */\n@event<FooterDetailedClickEvent>(\"social-media-link-click\", FooterDetailedEvent)\n\nclass UDExFooter extends UI5Element {\n /**\n * Defines the Logo default title\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n logoTitle!: string;\n\n /**\n * Defines the Logo URL\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n logoUrl!: string;\n\n /**\n * Defines the optional component href link for the logo.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n logoLink?: string;\n\n /**\n * List of the Quick links\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n quickLinks!: string;\n\n /**\n * List of the Trending links\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n trendingLinks!: string;\n\n /**\n * List of the About SAP links\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n aboutLinks!: string;\n\n /**\n * List of the Site Information links\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n siteInformationLinks!: string;\n\n /**\n * List of the contact numbers\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n contactNumbersList!: string;\n\n /**\n * Defines the local country numbers link's href\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n localCountryNumbersLink!: string;\n\n /**\n * Defines the Contact us link's href\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n contactUsLink!: string;\n\n /**\n * Defines the Chat with us link's href\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n chatWithUsLink!: string;\n\n /**\n * List of the Social links and their icons\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n socialLinks!: string;\n\n /**\n * Alt for Logo\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n logoAlt!: string;\n\n /**\n * Defines an aria label for the logo link\n *\n * @public\n */\n @property({ type: String })\n logoAriaLabel!: string;\n\n /**\n * Defines should render the mobile navigation.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _shouldRenderMobileMenu!: boolean;\n\n static i18nBundle: I18nBundle;\n\n static async onDefine(): Promise<void> {\n UDExFooter.i18nBundle = await getI18nBundle(\"sap-ui-webcomponents-bundle\");\n }\n\n _handleResizeBound: ResizeObserverCallback;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n ResizeHandler.register(this, this._handleResizeBound);\n }\n\n _handleResize(): void {\n this._shouldRenderMobileMenu = this.isMobile;\n }\n\n onBackToTopClick(e: Event): void {\n this.fireEvent(\"back-to-top-click\", { originalEvent: e }, true);\n\n window.scrollTo(0, 0);\n }\n\n parseArrayFromString<T>(string: string): T[] {\n return string ? JSON.parse(string) as T[] : [];\n }\n\n get parsedRef(): string | undefined {\n return (this.logoLink && this.logoLink.length > 0) ? this.logoLink : undefined;\n }\n\n get quickLinksArray(): FooterLink[] {\n return this.parseArrayFromString<FooterLink>(this.quickLinks);\n }\n\n get trendingLinksArray(): FooterLink[] {\n return this.parseArrayFromString<FooterLink>(this.trendingLinks);\n }\n\n get aboutLinksArray(): FooterLink[] {\n return this.parseArrayFromString<FooterLink>(this.aboutLinks);\n }\n\n get siteInformationLinksArray(): FooterLink[] {\n return this.parseArrayFromString<FooterLink>(this.siteInformationLinks);\n }\n\n get contactNumbersArray(): FooterContactNumber[] {\n return this.parseArrayFromString<FooterContactNumber>(this.contactNumbersList);\n }\n\n get socialLinksArray(): FooterSocialLink[] {\n return this.parseArrayFromString<FooterSocialLink>(this.socialLinks);\n }\n\n get isContactContainerVisible(): boolean {\n return !!this.contactNumbersArray.length || !!this.contactUsLink || !!this.chatWithUsLink;\n }\n\n get socialIconAccessibleName() {\n return ` ${UDExFooter.i18nBundle.getText(SOCIAL_LINK_ICON)}`;\n }\n\n get phoneNumberAccessibleName() {\n return `${UDExFooter.i18nBundle.getText(PHONE_NUMBER)} `;\n }\n\n get contactUsAccessibleName() {\n return UDExFooter.i18nBundle.getText(CONTACT_US);\n }\n\n get contactUsAccessibleLabel() {\n if (this.contactUsLink.includes(\"mailto:\")) {\n return `${this.contactUsAccessibleName} ${UDExFooter.i18nBundle.getText(EMAIL)}`;\n }\n return `${this.contactUsAccessibleName}`;\n }\n\n get chatWithUsAccessibleName() {\n return UDExFooter.i18nBundle.getText(CHAT_WITH_US);\n }\n\n get quickLinksTitle() {\n return UDExFooter.i18nBundle.getText(QUICK_LINKS);\n }\n\n get trendingTitle() {\n return UDExFooter.i18nBundle.getText(TRENDING);\n }\n\n get aboutSapTitle() {\n return UDExFooter.i18nBundle.getText(ABOUT_SAP);\n }\n\n get siteInformationTitle() {\n return UDExFooter.i18nBundle.getText(SITE_INFORMATION);\n }\n\n get completeListTitle() {\n return `${UDExFooter.i18nBundle.getText(SEE_COMPLETE_LIST)} `;\n }\n\n get localCountryTitle() {\n return UDExFooter.i18nBundle.getText(LOCAL_COUNTRY_NAMES);\n }\n\n get isMobile(): boolean {\n return window.innerWidth <= BreakpointSizeS;\n }\n\n _onLogoClick(e: Event): void {\n this.fireFooterBaseEvent(e, \"logo-click\");\n }\n\n _onContactPhoneClick(e: Event): void {\n this.fireFooterBaseEvent(e, \"contact-phone-click\");\n }\n _onContactPhoneLocalNumbersClick(e: Event): void {\n this.fireFooterBaseEvent(e, \"contact-phone-local-numbers-click\");\n }\n _onContactEmailClick(e: Event): void {\n this.fireFooterBaseEvent(e, \"contact-email-click\");\n }\n _onContactChatClick(e: Event): void {\n this.fireFooterBaseEvent(e, \"contact-chat-click\");\n }\n\n _onQuickLinksClick(e: Event): void {\n this.fireFooterDetailedClickEvent(e, \"quick-links-click\");\n }\n\n _onTrendingClick(e: Event): void {\n this.fireFooterDetailedClickEvent(e, \"trending-click\");\n }\n\n _onAboutSapClick(e: Event): void {\n this.fireFooterDetailedClickEvent(e, \"about-sap-click\");\n }\n\n _onSiteInformationClick(e: Event): void {\n this.fireFooterDetailedClickEvent(e, \"site-information-click\");\n }\n\n _onSocialMediaLinkClick(e: Event): void {\n this.fireFooterDetailedClickEvent(e, \"social-media-link-click\");\n }\n\n fireFooterBaseEvent(e: Event, eventName: string): void {\n this.fireEvent(eventName, { originalEvent: e }, true);\n }\n\n fireFooterDetailedClickEvent(e: Event, eventName: string): void {\n const sourceNode = e.composedPath()[0] as HTMLElement;\n const { innerText, dataset: { id, name } } = sourceNode;\n\n this.fireEvent(eventName, {\n ...(!!id?.length && { id }),\n name: innerText.length ? innerText : name,\n originalEvent: e,\n sourceNode,\n }, true);\n }\n}\n\nUDExFooter.define();\n\nexport default UDExFooter;\n"]}
@@ -92,6 +92,9 @@ let UDExHeroBanner = class UDExHeroBanner extends UI5Element {
92
92
  }
93
93
  onEnterDOM() {
94
94
  if (this.backgroundVideo) {
95
+ if (this.backgroundColor) {
96
+ this.style.setProperty("--udexHeroBannerBackgroundVideoColor", `${this.wrapperBackgroundColor}`);
97
+ }
95
98
  this._video?.addEventListener("play", () => {
96
99
  this._calculateMediaButtonState();
97
100
  });
@@ -1 +1 @@
1
- {"version":3,"file":"HeroBanner.js","sourceRoot":"","sources":["../src/HeroBanner.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element 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.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/media-play.js\";\nimport \"@ui5/webcomponents-icons/dist/media-pause.js\";\n\nimport HeroBannerTemplate from \"./generated/templates/HeroBannerTemplate.lit.js\";\n\n// Styles\nimport HeroBannerCss from \"./generated/themes/HeroBanner.css.js\";\n\nexport enum imageLoadingStrategies {\n eager = \"eager\",\n lazy = \"lazy\",\n}\n\n/**\n * @class\n *\n * @constructor\n * @extends UI5Element\n * @tagname udex-hero-banner\n * @public\n */\n@customElement({\n tag: \"udex-hero-banner\",\n renderer: litRender,\n styles: HeroBannerCss,\n template: HeroBannerTemplate,\n})\nclass UDExHeroBanner extends UI5Element {\n /**\n * Allows control over the background image source.\n *\n * @public\n */\n @property({ type: String })\n backgroundImage?: string;\n\n /**\n * Allows control over the background image loading strategy.\n *\n * @public\n */\n @property({\n type: imageLoadingStrategies,\n defaultValue: imageLoadingStrategies.eager,\n })\n backgroundImageLoadingStrategy?: `${imageLoadingStrategies}`;\n\n /**\n * Used as the label for background image.\n *\n * @public\n */\n @property({ type: String })\n backgroundImageLabel?: string;\n\n /**\n * Allows control over the background video source.\n *\n * @public\n */\n @property({ type: String })\n backgroundVideo?: string;\n\n /**\n * Used as the label for background video.\n *\n * @public\n */\n @property({ type: String })\n backgroundVideoLabel?: string;\n\n /**\n * Allows control over the background color.\n * Value provided should be compatible with standard CSS rendering, e.g:\n * - HEX: \"#FFF\", \"#FFFFFF\", \"FFFFFFFF\"\n * - RGB/A: \"rgb(255, 255, 255)\", \"rgba(255, 255, 255, 1)\"\n * - HSL/A: \"hsl(0, 100%, 100%)\", \"hsla(0, 100%, 100%, 1\"\n * - Variables: \"var(--sapShell_Background)\", \"var(--udexColorNeutralWhite)\"\n * - Text values: \"white\", \"red\"\n *\n * @public\n */\n @property({ type: String })\n backgroundColor?: string;\n\n @property({ type: Boolean, noAttribute: true })\n _isVideoRunning?: boolean;\n\n /**\n * Slot for primary content.\n *\n * @slot\n * @public\n */\n @slot()\n content?: Array<HTMLElement>;\n\n /**\n * Slot for any additional content.\n *\n * @slot\n * @public\n */\n @slot()\n additionalContent?: Array<HTMLElement>;\n\n /**\n * Slot background picture override.\n *\n * @slot\n * @public\n */\n @slot()\n backgroundPicture?: Array<HTMLElement>;\n\n get hasBackgroundImage() {\n return !!this.backgroundImage;\n }\n get hasBackgroundVideo() {\n return !!this.backgroundVideo;\n }\n get wrapperBackgroundColor() {\n return this.backgroundColor ? this.backgroundColor : \"transparent\";\n }\n\n /**\n * Determines if the video should autoplay based on the user's global preference.\n */\n get shouldVideoAutoplay() {\n return !window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n }\n\n get heroBannerClasses(): string {\n const heroBannerClasses = [\"udex-hero-banner\"];\n if (this.hasBackgroundVideo) {\n heroBannerClasses.push(\"udex-hero-banner--video\");\n }\n return heroBannerClasses.join(\" \");\n }\n get hasAdditionalContent() {\n return !!this.additionalContent?.length;\n }\n\n get hasCustomBackgroundPicture() {\n return !!this.backgroundPicture?.length;\n }\n\n get mediaButtonIconName() {\n return this._isVideoRunning ? \"media-pause\" : \"media-play\";\n }\n get _video() {\n return this.shadowRoot?.querySelector<HTMLVideoElement>(\"video\");\n }\n\n _toggleMediaButton(): void {\n if (this._video?.paused) {\n this._video?.play();\n } else {\n this._video?.pause();\n }\n this._calculateMediaButtonState();\n }\n\n _calculateMediaButtonState() {\n this._isVideoRunning = !this._video?.paused ?? false;\n }\n\n _isHTMLDivElement = (element: HTMLElement): element is HTMLDivElement => {\n return element.tagName === \"DIV\";\n };\n\n _handleKeydown(event: KeyboardEvent): void {\n const target = <HTMLElement>event.target;\n if (this._isHTMLDivElement(target) && isSpace(event)) {\n event.preventDefault();\n event.stopPropagation();\n this._toggleMediaButton();\n }\n }\n\n onEnterDOM() {\n if (this.backgroundVideo) {\n this._video?.addEventListener(\"play\", () => {\n this._calculateMediaButtonState();\n });\n }\n }\n}\nUDExHeroBanner.define();\n\nexport default UDExHeroBanner;\n"]}
1
+ {"version":3,"file":"HeroBanner.js","sourceRoot":"","sources":["../src/HeroBanner.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element 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.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/media-play.js\";\nimport \"@ui5/webcomponents-icons/dist/media-pause.js\";\n\nimport HeroBannerTemplate from \"./generated/templates/HeroBannerTemplate.lit.js\";\n\n// Styles\nimport HeroBannerCss from \"./generated/themes/HeroBanner.css.js\";\n\nexport enum imageLoadingStrategies {\n eager = \"eager\",\n lazy = \"lazy\",\n}\n\n/**\n * @class\n *\n * @constructor\n * @extends UI5Element\n * @tagname udex-hero-banner\n * @public\n */\n@customElement({\n tag: \"udex-hero-banner\",\n renderer: litRender,\n styles: HeroBannerCss,\n template: HeroBannerTemplate,\n})\nclass UDExHeroBanner extends UI5Element {\n /**\n * Allows control over the background image source.\n *\n * @public\n */\n @property({ type: String })\n backgroundImage?: string;\n\n /**\n * Allows control over the background image loading strategy.\n *\n * @public\n */\n @property({\n type: imageLoadingStrategies,\n defaultValue: imageLoadingStrategies.eager,\n })\n backgroundImageLoadingStrategy?: `${imageLoadingStrategies}`;\n\n /**\n * Used as the label for background image.\n *\n * @public\n */\n @property({ type: String })\n backgroundImageLabel?: string;\n\n /**\n * Allows control over the background video source.\n *\n * @public\n */\n @property({ type: String })\n backgroundVideo?: string;\n\n /**\n * Used as the label for background video.\n *\n * @public\n */\n @property({ type: String })\n backgroundVideoLabel?: string;\n\n /**\n * Allows control over the background color.\n * Value provided should be compatible with standard CSS rendering, e.g:\n * - HEX: \"#FFF\", \"#FFFFFF\", \"FFFFFFFF\"\n * - RGB/A: \"rgb(255, 255, 255)\", \"rgba(255, 255, 255, 1)\"\n * - HSL/A: \"hsl(0, 100%, 100%)\", \"hsla(0, 100%, 100%, 1\"\n * - Variables: \"var(--sapShell_Background)\", \"var(--udexColorNeutralWhite)\"\n * - Text values: \"white\", \"red\"\n *\n * @public\n */\n @property({ type: String })\n backgroundColor?: string;\n\n @property({ type: Boolean, noAttribute: true })\n _isVideoRunning?: boolean;\n\n /**\n * Slot for primary content.\n *\n * @slot\n * @public\n */\n @slot()\n content?: Array<HTMLElement>;\n\n /**\n * Slot for any additional content.\n *\n * @slot\n * @public\n */\n @slot()\n additionalContent?: Array<HTMLElement>;\n\n /**\n * Slot background picture override.\n *\n * @slot\n * @public\n */\n @slot()\n backgroundPicture?: Array<HTMLElement>;\n\n get hasBackgroundImage() {\n return !!this.backgroundImage;\n }\n get hasBackgroundVideo() {\n return !!this.backgroundVideo;\n }\n get wrapperBackgroundColor() {\n return this.backgroundColor ? this.backgroundColor : \"transparent\";\n }\n\n /**\n * Determines if the video should autoplay based on the user's global preference.\n */\n get shouldVideoAutoplay() {\n return !window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n }\n\n get heroBannerClasses(): string {\n const heroBannerClasses = [\"udex-hero-banner\"];\n if (this.hasBackgroundVideo) {\n heroBannerClasses.push(\"udex-hero-banner--video\");\n }\n return heroBannerClasses.join(\" \");\n }\n get hasAdditionalContent() {\n return !!this.additionalContent?.length;\n }\n\n get hasCustomBackgroundPicture() {\n return !!this.backgroundPicture?.length;\n }\n\n get mediaButtonIconName() {\n return this._isVideoRunning ? \"media-pause\" : \"media-play\";\n }\n get _video() {\n return this.shadowRoot?.querySelector<HTMLVideoElement>(\"video\");\n }\n\n _toggleMediaButton(): void {\n if (this._video?.paused) {\n this._video?.play();\n } else {\n this._video?.pause();\n }\n this._calculateMediaButtonState();\n }\n\n _calculateMediaButtonState() {\n this._isVideoRunning = !this._video?.paused ?? false;\n }\n\n _isHTMLDivElement = (element: HTMLElement): element is HTMLDivElement => {\n return element.tagName === \"DIV\";\n };\n\n _handleKeydown(event: KeyboardEvent): void {\n const target = <HTMLElement>event.target;\n if (this._isHTMLDivElement(target) && isSpace(event)) {\n event.preventDefault();\n event.stopPropagation();\n this._toggleMediaButton();\n }\n }\n\n onEnterDOM() {\n if (this.backgroundVideo) {\n if (this.backgroundColor) {\n this.style.setProperty(\"--udexHeroBannerBackgroundVideoColor\", `${this.wrapperBackgroundColor}`);\n }\n this._video?.addEventListener(\"play\", () => {\n this._calculateMediaButtonState();\n });\n }\n }\n}\nUDExHeroBanner.define();\n\nexport default UDExHeroBanner;\n"]}
@@ -161,6 +161,7 @@ declare class UDExMastheadItem extends UI5Element implements IMastheadItem {
161
161
  get hasArrowDown(): boolean;
162
162
  get isProfileBtn(): boolean;
163
163
  get isExploreBtn(): boolean;
164
+ get accessibleLabel(): string;
164
165
  get isMenuItem(): boolean;
165
166
  get isMobile(): boolean;
166
167
  }
@@ -19,6 +19,7 @@ import "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
19
19
  import MastheadItemTemplate from "./generated/templates/MastheadItemTemplate.lit.js";
20
20
  // Styles
21
21
  import MastheadItemCss from "./generated/themes/MastheadItem.css.js";
22
+ const breakpointSizeM = 1279;
22
23
  /**
23
24
  * @class
24
25
  *
@@ -37,16 +38,6 @@ import MastheadItemCss from "./generated/themes/MastheadItem.css.js";
37
38
  * @public
38
39
  */
39
40
  let UDExMastheadItem = class UDExMastheadItem extends UI5Element {
40
- constructor() {
41
- super(...arguments);
42
- /**
43
- * Defines an alt text for item icon
44
- *
45
- * @default ""
46
- * @public
47
- */
48
- this.iconAlt = "";
49
- }
50
41
  onEnterDOM() {
51
42
  if (isDesktop()) {
52
43
  this.setAttribute("desktop", "");
@@ -189,11 +180,14 @@ let UDExMastheadItem = class UDExMastheadItem extends UI5Element {
189
180
  get isExploreBtn() {
190
181
  return this.getAttribute("slot") === "exploreSAP";
191
182
  }
183
+ get accessibleLabel() {
184
+ return this.accessibleName || this.innerText;
185
+ }
192
186
  get isMenuItem() {
193
187
  return true;
194
188
  }
195
189
  get isMobile() {
196
- return window.innerWidth < 1279;
190
+ return window.innerWidth < breakpointSizeM;
197
191
  }
198
192
  };
199
193
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"MastheadItem.js","sourceRoot":"","sources":["../src/MastheadItem.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element 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.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/search.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { isEscape } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport UDExMastheadMenu from \"./MastheadMenu.js\";\nimport UDExAvatar from \"./Avatar.js\";\nimport MastheadShell from \"./MastheadShell.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\n\nimport MastheadItemTemplate from \"./generated/templates/MastheadItemTemplate.lit.js\";\n\n// Styles\nimport MastheadItemCss from \"./generated/themes/MastheadItem.css.js\";\n\nexport interface IMastheadItem {\n text?: string;\n selected?: boolean;\n icon?: string;\n avatar?: Array<HTMLElement>;\n href?: string;\n}\n\nexport type CategoryItem = {\n title: string;\n url: string;\n externalLink: boolean;\n};\n\nexport type SubMenuLinkItem = {\n category: string;\n url?: string;\n items: CategoryItem[];\n};\n\nexport type MenuItem = {\n subMenuLinkItems: SubMenuLinkItem[];\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-masthead-item</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/MastheadItem.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-masthead-item\",\n renderer: litRender,\n styles: MastheadItemCss,\n template: MastheadItemTemplate,\n dependencies: [\n UDExMastheadMenu,\n UI5Icon,\n ],\n})\n\n/**\n * Fires when item is clicked\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"click\")\nclass UDExMastheadItem extends UI5Element implements IMastheadItem {\n /**\n * Defines sub items for item\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n subItems!: string;\n\n /**\n * Defines a title for sub menu items\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n menuTitle!: string;\n\n /**\n * Defines the text of item.\n *\n * @public\n * @default \"\"\n */\n @property({ type: String, defaultValue: \"\" })\n text!: string;\n\n /**\n * Defines the selected item.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n selected!: boolean;\n\n /**\n * Defines the icon in the item.\n *\n * @public\n * @default \"\"\n */\n @property({ type: String, defaultValue: \"\" })\n icon!: string;\n\n /**\n * Defines the href of the item.\n *\n * @public\n */\n @property({ type: String })\n href!: string;\n\n /**\n * Define the target of the item\n * <b>Note:</b> Standard hyperlink behavior is supported.\n * @public\n */\n @property({ type: String })\n target!: string;\n\n /**\n * Controls the ARIA name of the item\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n accessibleName!: string;\n\n /**\n * Controls the ARIA role of the item\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n accessibleRole!: string;\n\n /**\n * Defines an alt text for item icon\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n iconAlt?: string = \"\";\n\n /**\n * Hide active border for item\n *\n * @default \"\"\n * @public\n */\n @property({ type: Boolean })\n hideActiveBorder?: boolean;\n\n /**\n * Defines direction of the text.\n *\n * @private\n */\n @property({ type: String })\n _direction?: string;\n\n /**\n * Slot for the dropdown\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement })\n dropdown?: Array<HTMLElement>;\n\n /**\n * Slot for any content\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n content?: Array<HTMLElement>;\n\n _profileAvatar!: UDExAvatar;\n\n onEnterDOM() {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n onAfterRendering() {\n this._profileAvatar = this.profileAvatar;\n this.handleDirection();\n if (this.selected && this.hasDropdownSlot && !this.isMobile && !this.isExploreBtn) {\n this.setDropdownInsetStart();\n }\n }\n\n onClick(e: Event): void {\n e.stopPropagation();\n this.fireEvent(\"click\", { item: this });\n this.selected = this.isMobile ? true : !this.selected;\n }\n\n handleKeyDown(e: KeyboardEvent): void {\n if (isEscape(e) && this.hasDropdownSlot) {\n if (this.isMobile) {\n this.handleKeyEscapeMobile();\n } else {\n this.handleKeyEscape();\n }\n }\n }\n\n handleKeyEscape() {\n this.selected = false;\n if (this.isProfileBtn) {\n this._profileAvatar.focus();\n } else {\n this.focus();\n }\n }\n\n handleKeyEscapeMobile() {\n const mastheadShell: MastheadShell | null = document.querySelector(\"udex-masthead-shell\");\n const mobileMenu = mastheadShell?.mastheadMobileMenu;\n mastheadShell?.removeActiveMobileClass();\n mastheadShell?.mobileBtn?.focus();\n this.selected = false;\n\n if (mobileMenu) {\n mobileMenu.showFirstLevelMenu();\n }\n }\n\n setDropdownInsetStart(): void {\n const dropdown = this.getDomElement(\".udex-masthead-item__dropdown\");\n if (dropdown) {\n const rect = dropdown.getBoundingClientRect();\n const dropdownHolder = this.getDomElement(\".udex-masthead-item__dropdown-holder\");\n const marginInlineStart = this.calculateMarginInlineStart(rect);\n\n if (marginInlineStart !== null && dropdownHolder) {\n dropdownHolder.style.marginInlineStart = `${marginInlineStart - 3}px`;\n }\n }\n }\n\n calculateMarginInlineStart(rect: DOMRect): number | null {\n const { left, right } = rect;\n\n if (this.isLtrDirection && left < 0) {\n return left * -1 + 15;\n }\n\n if (this.isRtlDirection && left < 0) {\n return left - 15;\n }\n\n if (this.isRtlDirection && right > window.innerWidth) {\n return right - window.innerWidth + 15;\n }\n\n if (this.isLtrDirection && right > window.innerWidth) {\n return window.innerWidth - right - 15;\n }\n\n return null;\n }\n\n handleDirection(): void {\n const directionStyles = window\n .getComputedStyle(this)\n .getPropertyValue(\"direction\");\n if (!directionStyles) {\n this._direction = \"ltr\";\n } else {\n this._direction = directionStyles;\n }\n }\n\n getDomElement(selector: string): HTMLElement | undefined | null {\n return this.shadowRoot?.querySelector(`${selector}`);\n }\n\n parseArrayFromString<T>(string: string): T[] {\n return string ? JSON.parse(string) as T[] : [];\n }\n\n getSubItems(): Array<MenuItem> {\n return this.parseArrayFromString(this.subItems);\n }\n\n get additionalClass(): string {\n const iconClass = this.icon ? \"udex-masthead-item__button--icon\" : \"\";\n const profileClass = this.isProfileBtn ? \"udex-masthead-item__button--profile\" : \"\";\n const exploreClass = this.isExploreBtn ? \"udex-masthead-item__button--explore\" : \"\";\n return `udex-masthead-item ${iconClass} ${profileClass} ${exploreClass}`;\n }\n\n get profileAvatar(): UDExAvatar {\n return this.querySelector(\"udex-avatar\")!;\n }\n\n get isRtlDirection(): boolean {\n return this._direction === \"rtl\";\n }\n\n get isLtrDirection(): boolean {\n return this._direction === \"ltr\";\n }\n\n get hasHref(): boolean {\n return !!this.href.length;\n }\n\n get accessibleRoleName(): string {\n return this.accessibleRole ? this.accessibleRole : \"button\";\n }\n\n get selectedClass(): string {\n return this.selected ? \" udex-masthead-item__button--active\" : \"\";\n }\n\n get ariaLabelledBy(): string {\n const labels = [];\n\n if (this.text) {\n labels.push(`${this.__id}-text`);\n }\n\n if (this.icon) {\n labels.push(`${this.__id}-icon`);\n }\n\n return labels.join(\" \");\n }\n\n get showDropdown(): boolean {\n return this.hasDropdownSlot && this.selected;\n }\n\n get hasDropdownSlot(): boolean {\n return !!this.getSlottedNodes(\"dropdown\").length;\n }\n\n get hasArrowDown(): boolean {\n return this.hasDropdownSlot && !this.isProfileBtn && !this.icon.length;\n }\n\n get isProfileBtn():boolean {\n return this.getAttribute(\"slot\") === \"profile\";\n }\n\n get isExploreBtn():boolean {\n return this.getAttribute(\"slot\") === \"exploreSAP\";\n }\n\n get isMenuItem(): boolean {\n return true;\n }\n\n get isMobile(): boolean {\n return window.innerWidth < 1279;\n }\n}\n\nUDExMastheadItem.define();\n\nexport default UDExMastheadItem;\n"]}
1
+ {"version":3,"file":"MastheadItem.js","sourceRoot":"","sources":["../src/MastheadItem.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element 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.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/search.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { isEscape } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport UDExMastheadMenu from \"./MastheadMenu.js\";\nimport UDExAvatar from \"./Avatar.js\";\nimport MastheadShell from \"./MastheadShell.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\n\nimport MastheadItemTemplate from \"./generated/templates/MastheadItemTemplate.lit.js\";\n\n// Styles\nimport MastheadItemCss from \"./generated/themes/MastheadItem.css.js\";\n\nconst breakpointSizeM: number = 1279;\n\nexport interface IMastheadItem {\n text?: string;\n selected?: boolean;\n icon?: string;\n avatar?: Array<HTMLElement>;\n href?: string;\n}\n\nexport type CategoryItem = {\n title: string;\n url: string;\n externalLink: boolean;\n};\n\nexport type SubMenuLinkItem = {\n category: string;\n url?: string;\n items: CategoryItem[];\n};\n\nexport type MenuItem = {\n subMenuLinkItems: SubMenuLinkItem[];\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-masthead-item</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/MastheadItem.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-masthead-item\",\n renderer: litRender,\n styles: MastheadItemCss,\n template: MastheadItemTemplate,\n dependencies: [\n UDExMastheadMenu,\n UI5Icon,\n ],\n})\n\n/**\n * Fires when item is clicked\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"click\")\nclass UDExMastheadItem extends UI5Element implements IMastheadItem {\n /**\n * Defines sub items for item\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n subItems!: string;\n\n /**\n * Defines a title for sub menu items\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n menuTitle!: string;\n\n /**\n * Defines the text of item.\n *\n * @public\n * @default \"\"\n */\n @property({ type: String, defaultValue: \"\" })\n text!: string;\n\n /**\n * Defines the selected item.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n selected!: boolean;\n\n /**\n * Defines the icon in the item.\n *\n * @public\n * @default \"\"\n */\n @property({ type: String, defaultValue: \"\" })\n icon!: string;\n\n /**\n * Defines the href of the item.\n *\n * @public\n */\n @property({ type: String })\n href!: string;\n\n /**\n * Define the target of the item\n * <b>Note:</b> Standard hyperlink behavior is supported.\n * @public\n */\n @property({ type: String })\n target!: string;\n\n /**\n * Controls the ARIA name of the item\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n accessibleName!: string;\n\n /**\n * Controls the ARIA role of the item\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n accessibleRole!: string;\n\n /**\n * Defines an alt text for item icon\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n iconAlt?: string;\n\n /**\n * Hide active border for item\n *\n * @default \"\"\n * @public\n */\n @property({ type: Boolean })\n hideActiveBorder?: boolean;\n\n /**\n * Defines direction of the text.\n *\n * @private\n */\n @property({ type: String })\n _direction?: string;\n\n /**\n * Slot for the dropdown\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement })\n dropdown?: Array<HTMLElement>;\n\n /**\n * Slot for any content\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n content?: Array<HTMLElement>;\n\n _profileAvatar!: UDExAvatar;\n\n onEnterDOM() {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n onAfterRendering() {\n this._profileAvatar = this.profileAvatar;\n this.handleDirection();\n if (this.selected && this.hasDropdownSlot && !this.isMobile && !this.isExploreBtn) {\n this.setDropdownInsetStart();\n }\n }\n\n onClick(e: Event): void {\n e.stopPropagation();\n this.fireEvent(\"click\", { item: this });\n this.selected = this.isMobile ? true : !this.selected;\n }\n\n handleKeyDown(e: KeyboardEvent): void {\n if (isEscape(e) && this.hasDropdownSlot) {\n if (this.isMobile) {\n this.handleKeyEscapeMobile();\n } else {\n this.handleKeyEscape();\n }\n }\n }\n\n handleKeyEscape() {\n this.selected = false;\n if (this.isProfileBtn) {\n this._profileAvatar.focus();\n } else {\n this.focus();\n }\n }\n\n handleKeyEscapeMobile() {\n const mastheadShell: MastheadShell | null = document.querySelector(\"udex-masthead-shell\");\n const mobileMenu = mastheadShell?.mastheadMobileMenu;\n mastheadShell?.removeActiveMobileClass();\n mastheadShell?.mobileBtn?.focus();\n this.selected = false;\n\n if (mobileMenu) {\n mobileMenu.showFirstLevelMenu();\n }\n }\n\n setDropdownInsetStart(): void {\n const dropdown = this.getDomElement(\".udex-masthead-item__dropdown\");\n if (dropdown) {\n const rect = dropdown.getBoundingClientRect();\n const dropdownHolder = this.getDomElement(\".udex-masthead-item__dropdown-holder\");\n const marginInlineStart = this.calculateMarginInlineStart(rect);\n\n if (marginInlineStart !== null && dropdownHolder) {\n dropdownHolder.style.marginInlineStart = `${marginInlineStart - 3}px`;\n }\n }\n }\n\n calculateMarginInlineStart(rect: DOMRect): number | null {\n const { left, right } = rect;\n\n if (this.isLtrDirection && left < 0) {\n return left * -1 + 15;\n }\n\n if (this.isRtlDirection && left < 0) {\n return left - 15;\n }\n\n if (this.isRtlDirection && right > window.innerWidth) {\n return right - window.innerWidth + 15;\n }\n\n if (this.isLtrDirection && right > window.innerWidth) {\n return window.innerWidth - right - 15;\n }\n\n return null;\n }\n\n handleDirection(): void {\n const directionStyles = window\n .getComputedStyle(this)\n .getPropertyValue(\"direction\");\n if (!directionStyles) {\n this._direction = \"ltr\";\n } else {\n this._direction = directionStyles;\n }\n }\n\n getDomElement(selector: string): HTMLElement | undefined | null {\n return this.shadowRoot?.querySelector(`${selector}`);\n }\n\n parseArrayFromString<T>(string: string): T[] {\n return string ? JSON.parse(string) as T[] : [];\n }\n\n getSubItems(): Array<MenuItem> {\n return this.parseArrayFromString(this.subItems);\n }\n\n get additionalClass(): string {\n const iconClass = this.icon ? \"udex-masthead-item__button--icon\" : \"\";\n const profileClass = this.isProfileBtn ? \"udex-masthead-item__button--profile\" : \"\";\n const exploreClass = this.isExploreBtn ? \"udex-masthead-item__button--explore\" : \"\";\n return `udex-masthead-item ${iconClass} ${profileClass} ${exploreClass}`;\n }\n\n get profileAvatar(): UDExAvatar {\n return this.querySelector(\"udex-avatar\")!;\n }\n\n get isRtlDirection(): boolean {\n return this._direction === \"rtl\";\n }\n\n get isLtrDirection(): boolean {\n return this._direction === \"ltr\";\n }\n\n get hasHref(): boolean {\n return !!this.href.length;\n }\n\n get accessibleRoleName(): string {\n return this.accessibleRole ? this.accessibleRole : \"button\";\n }\n\n get selectedClass(): string {\n return this.selected ? \" udex-masthead-item__button--active\" : \"\";\n }\n\n get ariaLabelledBy(): string {\n const labels = [];\n\n if (this.text) {\n labels.push(`${this.__id}-text`);\n }\n\n if (this.icon) {\n labels.push(`${this.__id}-icon`);\n }\n\n return labels.join(\" \");\n }\n\n get showDropdown(): boolean {\n return this.hasDropdownSlot && this.selected;\n }\n\n get hasDropdownSlot(): boolean {\n return !!this.getSlottedNodes(\"dropdown\").length;\n }\n\n get hasArrowDown(): boolean {\n return this.hasDropdownSlot && !this.isProfileBtn && !this.icon.length;\n }\n\n get isProfileBtn(): boolean {\n return this.getAttribute(\"slot\") === \"profile\";\n }\n\n get isExploreBtn(): boolean {\n return this.getAttribute(\"slot\") === \"exploreSAP\";\n }\n\n get accessibleLabel(): string {\n return this.accessibleName || this.innerText;\n }\n\n get isMenuItem(): boolean {\n return true;\n }\n\n get isMobile(): boolean {\n return window.innerWidth < breakpointSizeM;\n }\n}\n\nUDExMastheadItem.define();\n\nexport default UDExMastheadItem;\n"]}
@@ -97,6 +97,13 @@ declare class UDExMastheadShell extends UI5Element {
97
97
  * @public
98
98
  */
99
99
  logoUrl: string;
100
+ /**
101
+ * Defines the Logo default title
102
+ *
103
+ * @default ""
104
+ * @public
105
+ */
106
+ logoTitle: string;
100
107
  /**
101
108
  * Defines a site label. It will be displayed next to a logo.
102
109
  *
@@ -183,5 +190,6 @@ declare class UDExMastheadShell extends UI5Element {
183
190
  get hasCart(): boolean;
184
191
  get hasSearch(): boolean;
185
192
  get hasMobileMenuButtons(): boolean;
193
+ get isMobileView(): boolean;
186
194
  }
187
195
  export default UDExMastheadShell;
@@ -25,6 +25,7 @@ import MastheadShellTemplate from "./generated/templates/MastheadShellTemplate.l
25
25
  // Styles
26
26
  import MastheadShellCss from "./generated/themes/MastheadShell.css.js";
27
27
  const mobileMenuActiveClass = "udex-masthead-shell_mobile-menu-open";
28
+ const breakpointSizeM = 1279;
28
29
  /**
29
30
  * @class
30
31
  *
@@ -66,6 +67,9 @@ let UDExMastheadShell = class UDExMastheadShell extends UI5Element {
66
67
  ResizeHandler.deregister(this, this._handleResizeBound);
67
68
  }
68
69
  _handleResize() {
70
+ if (this.isMobileView) {
71
+ this._isSearchVisible = false;
72
+ }
69
73
  if (this._shouldHandleResize) {
70
74
  this._mobileMenu?.showFirstLevelMenu();
71
75
  this.removeOverflowBody();
@@ -241,6 +245,9 @@ let UDExMastheadShell = class UDExMastheadShell extends UI5Element {
241
245
  get hasMobileMenuButtons() {
242
246
  return !!this.mobileMenu.length;
243
247
  }
248
+ get isMobileView() {
249
+ return window.innerWidth <= breakpointSizeM;
250
+ }
244
251
  };
245
252
  __decorate([
246
253
  slot({ type: HTMLElement })
@@ -275,6 +282,9 @@ __decorate([
275
282
  __decorate([
276
283
  property({ type: String, defaultValue: "" })
277
284
  ], UDExMastheadShell.prototype, "logoUrl", void 0);
285
+ __decorate([
286
+ property({ type: String, defaultValue: "" })
287
+ ], UDExMastheadShell.prototype, "logoTitle", void 0);
278
288
  __decorate([
279
289
  property({ type: String, defaultValue: "" })
280
290
  ], UDExMastheadShell.prototype, "siteLabel", void 0);