@sapudex/web-components 2.9.0 → 2.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (367) hide show
  1. package/bundle.esm.js +2 -0
  2. package/cypress/fixtures/footer-links.ts +32 -33
  3. package/cypress/specs/Accordion.cy.tsx +19 -0
  4. package/cypress/specs/AccordionItem.cy.tsx +9 -0
  5. package/cypress/specs/CountrySelector.cy.tsx +5 -2
  6. package/cypress/specs/FilterMenu.cy.tsx +884 -0
  7. package/cypress/specs/Footer.cy.tsx +54 -18
  8. package/cypress/specs/PromoTile.cy.tsx +124 -0
  9. package/cypress/specs/Quote.cy.tsx +65 -0
  10. package/cypress/specs/SocialMediaButton.cy.tsx +44 -0
  11. package/cypress/specs/Table.cy.tsx +8 -2
  12. package/cypress/specs/TextField.cy.tsx +11 -4
  13. package/cypress/support/component-imports.instrumented.ts +15 -1
  14. package/cypress/support/component-imports.src.ts +15 -1
  15. package/dist/Accordion.d.ts +15 -0
  16. package/dist/Accordion.js +19 -0
  17. package/dist/Accordion.js.map +1 -1
  18. package/dist/AccordionItem.d.ts +19 -0
  19. package/dist/AccordionItem.js +23 -0
  20. package/dist/AccordionItem.js.map +1 -1
  21. package/dist/AccordionItemTemplate.js +7 -2
  22. package/dist/AccordionItemTemplate.js.map +1 -1
  23. package/dist/AccordionTemplate.js +21 -1
  24. package/dist/AccordionTemplate.js.map +1 -1
  25. package/dist/Assets.d.ts +1 -0
  26. package/dist/Assets.js +1 -0
  27. package/dist/Assets.js.map +1 -1
  28. package/dist/CountrySelector.d.ts +2 -2
  29. package/dist/CountrySelector.js +6 -3
  30. package/dist/CountrySelector.js.map +1 -1
  31. package/dist/DatePicker.js +2 -2
  32. package/dist/DatePicker.js.map +1 -1
  33. package/dist/FilterMenu.d.ts +13 -2
  34. package/dist/FilterMenu.js +59 -13
  35. package/dist/FilterMenu.js.map +1 -1
  36. package/dist/Footer.d.ts +50 -6
  37. package/dist/Footer.js +44 -22
  38. package/dist/Footer.js.map +1 -1
  39. package/dist/MastheadItem.d.ts +12 -0
  40. package/dist/MastheadItem.js +6 -0
  41. package/dist/MastheadItem.js.map +1 -1
  42. package/dist/MastheadShell.d.ts +13 -3
  43. package/dist/MastheadShell.js +17 -4
  44. package/dist/MastheadShell.js.map +1 -1
  45. package/dist/PromoTile.d.ts +143 -0
  46. package/dist/PromoTile.js +198 -0
  47. package/dist/PromoTile.js.map +1 -0
  48. package/dist/PromoTileTemplate.d.ts +2 -0
  49. package/dist/PromoTileTemplate.js +22 -0
  50. package/dist/PromoTileTemplate.js.map +1 -0
  51. package/dist/Quote.d.ts +11 -0
  52. package/dist/Quote.js +18 -3
  53. package/dist/Quote.js.map +1 -1
  54. package/dist/Search.d.ts +3 -1
  55. package/dist/Search.js +1 -0
  56. package/dist/Search.js.map +1 -1
  57. package/dist/SelectBox.d.ts +0 -1
  58. package/dist/SelectBox.js +2 -2
  59. package/dist/SelectBox.js.map +1 -1
  60. package/dist/SocialMediaButton.d.ts +73 -0
  61. package/dist/SocialMediaButton.js +135 -0
  62. package/dist/SocialMediaButton.js.map +1 -0
  63. package/dist/SocialMediaButtonTemplate.d.ts +2 -0
  64. package/dist/SocialMediaButtonTemplate.js +6 -0
  65. package/dist/SocialMediaButtonTemplate.js.map +1 -0
  66. package/dist/StepInput.d.ts +2 -1
  67. package/dist/StepInput.js +6 -0
  68. package/dist/StepInput.js.map +1 -1
  69. package/dist/StepInputTemplate.js +1 -1
  70. package/dist/StepInputTemplate.js.map +1 -1
  71. package/dist/TableRow.d.ts +11 -0
  72. package/dist/TableRow.js +16 -0
  73. package/dist/TableRow.js.map +1 -1
  74. package/dist/TextArea.d.ts +3 -8
  75. package/dist/TextArea.js +12 -5
  76. package/dist/TextArea.js.map +1 -1
  77. package/dist/TextField.d.ts +20 -11
  78. package/dist/TextField.js +44 -31
  79. package/dist/TextField.js.map +1 -1
  80. package/dist/assets/{InputSuggestions-BmjyLzkP.js → InputSuggestions-9WQMOg4t.js} +1 -1
  81. package/dist/assets/{ListItemStandardExpandableTextTemplate-CDt3iORy.js → ListItemStandardExpandableTextTemplate-BQaMMo_n.js} +1 -1
  82. package/dist/assets/ar-CUjm9SSI.js +1 -0
  83. package/dist/assets/ar_EG-DQlFzN6x.js +1 -0
  84. package/dist/assets/ar_SA-lp21-ovF.js +1 -0
  85. package/dist/assets/bg-BMgSEqKu.js +1 -0
  86. package/dist/assets/{bundle.esm-Dz11sAJe.js → bundle.esm-ZNiP-jPI.js} +211 -209
  87. package/dist/assets/ca-BEgqToWu.js +1 -0
  88. package/dist/assets/cnr-IJYa9RjY.js +1 -0
  89. package/dist/assets/cs-DcM44PeB.js +1 -0
  90. package/dist/assets/da-D81rJc1N.js +1 -0
  91. package/dist/assets/de-eQRPkDbn.js +1 -0
  92. package/dist/assets/de_AT-Ag3CVI5m.js +1 -0
  93. package/dist/assets/de_CH-DgRYNg0p.js +1 -0
  94. package/dist/assets/el-W3XNt9Wl.js +1 -0
  95. package/dist/assets/el_CY-BfNIiYpU.js +1 -0
  96. package/dist/assets/en-CrBjXhTl.js +1 -0
  97. package/dist/assets/en_AU-Br7ytKW4.js +1 -0
  98. package/dist/assets/en_GB-DfnNoCgD.js +1 -0
  99. package/dist/assets/en_HK-Cyj9DPsW.js +1 -0
  100. package/dist/assets/en_IE-B5FpEUby.js +1 -0
  101. package/dist/assets/en_IN-C3XmKnWe.js +1 -0
  102. package/dist/assets/en_NZ-COJ5ycaE.js +1 -0
  103. package/dist/assets/en_PG-BB-Cmgcm.js +1 -0
  104. package/dist/assets/en_SG-Dfevg5da.js +1 -0
  105. package/dist/assets/en_ZA-BgOSNy0v.js +1 -0
  106. package/dist/assets/es-CRcVj7aR.js +1 -0
  107. package/dist/assets/es_AR-CFf6aWC5.js +1 -0
  108. package/dist/assets/es_BO-DNFEED1o.js +1 -0
  109. package/dist/assets/es_CL-DZhLyidG.js +1 -0
  110. package/dist/assets/es_CO-uWf-1tom.js +1 -0
  111. package/dist/assets/es_MX-C_wDRcT-.js +1 -0
  112. package/dist/assets/es_PE-QQsdF6EB.js +1 -0
  113. package/dist/assets/es_UY-CWhNSkyr.js +1 -0
  114. package/dist/assets/es_VE-hweLK9Ws.js +1 -0
  115. package/dist/assets/et-B3fco2O5.js +1 -0
  116. package/dist/assets/fa-oRguSKlL.js +1 -0
  117. package/dist/assets/fi-Daa_vlE5.js +1 -0
  118. package/dist/assets/fr-CANfYyyO.js +1 -0
  119. package/dist/assets/fr_BE-CCxD_K6m.js +1 -0
  120. package/dist/assets/fr_CA-BEtkRJZv.js +1 -0
  121. package/dist/assets/fr_CH-CrBmdh_n.js +1 -0
  122. package/dist/assets/fr_LU-CDcjZueC.js +1 -0
  123. package/dist/assets/he-CVUhin6m.js +1 -0
  124. package/dist/assets/hi-DF2PyuOw.js +1 -0
  125. package/dist/assets/hr-b6c4wXpD.js +1 -0
  126. package/dist/assets/hu-B7IWSU6b.js +1 -0
  127. package/dist/assets/id-GxIydI_w.js +1 -0
  128. package/dist/assets/it-DAjzvm2X.js +1 -0
  129. package/dist/assets/it_CH-BvNuHKQK.js +1 -0
  130. package/dist/assets/ja-DhVA6Wxm.js +1 -0
  131. package/dist/assets/kk-BSxmnq67.js +1 -0
  132. package/dist/assets/ko-ZT8Z04Uq.js +1 -0
  133. package/dist/assets/lt-BVWqkFr_.js +1 -0
  134. package/dist/assets/lv-DyXyW37Y.js +1 -0
  135. package/dist/assets/messagebundle_en-DwlTjyni.js +1 -0
  136. package/dist/assets/mk-ChbdOzZI.js +1 -0
  137. package/dist/assets/ms-H9bJ42GA.js +1 -0
  138. package/dist/assets/nb-Dgkq7ozi.js +1 -0
  139. package/dist/assets/nl-DZqLtAXS.js +1 -0
  140. package/dist/assets/nl_BE-Dx4AxOFo.js +1 -0
  141. package/dist/assets/pl-MzEgIfvm.js +1 -0
  142. package/dist/assets/pt-2N8dosOm.js +1 -0
  143. package/dist/assets/pt_PT-CIcj5FsJ.js +1 -0
  144. package/dist/assets/ro-CZHCJKTk.js +1 -0
  145. package/dist/assets/ru-BcU9rFqC.js +1 -0
  146. package/dist/assets/ru_UA-aH_wNrwj.js +1 -0
  147. package/dist/assets/sk-DYn5gXzA.js +1 -0
  148. package/dist/assets/sl-RYb_KlOx.js +1 -0
  149. package/dist/assets/sr-Bap_3nyz.js +1 -0
  150. package/dist/assets/sr_Latn-FYOU_tQB.js +1 -0
  151. package/dist/assets/sv-CeQXZ1qM.js +1 -0
  152. package/dist/assets/th-C5mRgAid.js +1 -0
  153. package/dist/assets/tr-vCU3KUkO.js +1 -0
  154. package/dist/assets/uk-CKvdHIrD.js +1 -0
  155. package/dist/assets/vi-0BxthtV1.js +1 -0
  156. package/dist/assets/zh_CN-BV9PXZ7J.js +1 -0
  157. package/dist/assets/zh_HK-kGfo3-wS.js +1 -0
  158. package/dist/assets/zh_SG-B8bEKxnm.js +1 -0
  159. package/dist/assets/zh_TW-BshO-JEe.js +1 -0
  160. package/dist/css/themes/AccordionItem.css +1 -1
  161. package/dist/css/themes/BreadcrumbsPopover.css +1 -1
  162. package/dist/css/themes/CountrySelector.css +1 -1
  163. package/dist/css/themes/DatePicker.css +1 -1
  164. package/dist/css/themes/Divider.css +1 -1
  165. package/dist/css/themes/Dropdown.css +1 -1
  166. package/dist/css/themes/FilterMenu.css +1 -1
  167. package/dist/css/themes/Footer.css +1 -1
  168. package/dist/css/themes/HeroBanner.css +1 -1
  169. package/dist/css/themes/Link.css +1 -1
  170. package/dist/css/themes/MastheadItem.css +1 -1
  171. package/dist/css/themes/MastheadMenu.css +1 -1
  172. package/dist/css/themes/PromoTile.css +1 -0
  173. package/dist/css/themes/Quote.css +1 -1
  174. package/dist/css/themes/RatingIndicator.css +1 -1
  175. package/dist/css/themes/SelectBox.css +1 -1
  176. package/dist/css/themes/Slider.css +1 -1
  177. package/dist/css/themes/SocialMediaButton.css +1 -0
  178. package/dist/css/themes/Tag.css +1 -1
  179. package/dist/css/themes/TextField.css +1 -1
  180. package/dist/custom-elements-internal.json +894 -232
  181. package/dist/custom-elements.json +858 -215
  182. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  183. package/dist/generated/i18n/i18n-defaults.d.ts +4 -2
  184. package/dist/generated/i18n/i18n-defaults.js +4 -2
  185. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  186. package/dist/generated/templates/CountrySelectorTemplate.lit.js +1 -2
  187. package/dist/generated/templates/CountrySelectorTemplate.lit.js.map +1 -1
  188. package/dist/generated/templates/DatePickerTemplate.lit.js +4 -5
  189. package/dist/generated/templates/DatePickerTemplate.lit.js.map +1 -1
  190. package/dist/generated/templates/FilterMenuTemplate.lit.js +2 -2
  191. package/dist/generated/templates/FilterMenuTemplate.lit.js.map +1 -1
  192. package/dist/generated/templates/FooterTemplate.lit.js +33 -32
  193. package/dist/generated/templates/FooterTemplate.lit.js.map +1 -1
  194. package/dist/generated/templates/HeroBannerTemplate.lit.js +1 -1
  195. package/dist/generated/templates/HeroBannerTemplate.lit.js.map +1 -1
  196. package/dist/generated/templates/MastheadItemTemplate.lit.js +3 -3
  197. package/dist/generated/templates/MastheadItemTemplate.lit.js.map +1 -1
  198. package/dist/generated/templates/MastheadShellTemplate.lit.js +1 -1
  199. package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
  200. package/dist/generated/templates/SearchableListBaseTemplate.lit.js +1 -1
  201. package/dist/generated/templates/SearchableListBaseTemplate.lit.js.map +1 -1
  202. package/dist/generated/templates/SelectBoxTemplate.lit.js +4 -4
  203. package/dist/generated/templates/SelectBoxTemplate.lit.js.map +1 -1
  204. package/dist/generated/templates/TextFieldTemplate.lit.js +2 -2
  205. package/dist/generated/templates/TextFieldTemplate.lit.js.map +1 -1
  206. package/dist/generated/themes/AccordionItem.css.d.ts +1 -1
  207. package/dist/generated/themes/AccordionItem.css.js +1 -1
  208. package/dist/generated/themes/AccordionItem.css.js.map +1 -1
  209. package/dist/generated/themes/BreadcrumbsPopover.css.d.ts +1 -1
  210. package/dist/generated/themes/BreadcrumbsPopover.css.js +1 -1
  211. package/dist/generated/themes/BreadcrumbsPopover.css.js.map +1 -1
  212. package/dist/generated/themes/CountrySelector.css.d.ts +1 -1
  213. package/dist/generated/themes/CountrySelector.css.js +1 -1
  214. package/dist/generated/themes/CountrySelector.css.js.map +1 -1
  215. package/dist/generated/themes/DatePicker.css.d.ts +1 -1
  216. package/dist/generated/themes/DatePicker.css.js +1 -1
  217. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  218. package/dist/generated/themes/Divider.css.d.ts +1 -1
  219. package/dist/generated/themes/Divider.css.js +1 -1
  220. package/dist/generated/themes/Divider.css.js.map +1 -1
  221. package/dist/generated/themes/Dropdown.css.d.ts +1 -1
  222. package/dist/generated/themes/Dropdown.css.js +1 -1
  223. package/dist/generated/themes/Dropdown.css.js.map +1 -1
  224. package/dist/generated/themes/FilterMenu.css.d.ts +1 -1
  225. package/dist/generated/themes/FilterMenu.css.js +1 -1
  226. package/dist/generated/themes/FilterMenu.css.js.map +1 -1
  227. package/dist/generated/themes/Footer.css.d.ts +1 -1
  228. package/dist/generated/themes/Footer.css.js +1 -1
  229. package/dist/generated/themes/Footer.css.js.map +1 -1
  230. package/dist/generated/themes/HeroBanner.css.d.ts +1 -1
  231. package/dist/generated/themes/HeroBanner.css.js +1 -1
  232. package/dist/generated/themes/HeroBanner.css.js.map +1 -1
  233. package/dist/generated/themes/Link.css.d.ts +1 -1
  234. package/dist/generated/themes/Link.css.js +1 -1
  235. package/dist/generated/themes/Link.css.js.map +1 -1
  236. package/dist/generated/themes/MastheadItem.css.d.ts +1 -1
  237. package/dist/generated/themes/MastheadItem.css.js +1 -1
  238. package/dist/generated/themes/MastheadItem.css.js.map +1 -1
  239. package/dist/generated/themes/MastheadMenu.css.d.ts +1 -1
  240. package/dist/generated/themes/MastheadMenu.css.js +1 -1
  241. package/dist/generated/themes/MastheadMenu.css.js.map +1 -1
  242. package/dist/generated/themes/PromoTile.css.d.ts +2 -0
  243. package/dist/generated/themes/PromoTile.css.js +8 -0
  244. package/dist/generated/themes/PromoTile.css.js.map +1 -0
  245. package/dist/generated/themes/Quote.css.d.ts +1 -1
  246. package/dist/generated/themes/Quote.css.js +1 -1
  247. package/dist/generated/themes/Quote.css.js.map +1 -1
  248. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  249. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  250. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  251. package/dist/generated/themes/SelectBox.css.d.ts +1 -1
  252. package/dist/generated/themes/SelectBox.css.js +1 -1
  253. package/dist/generated/themes/SelectBox.css.js.map +1 -1
  254. package/dist/generated/themes/Slider.css.d.ts +1 -1
  255. package/dist/generated/themes/Slider.css.js +1 -1
  256. package/dist/generated/themes/Slider.css.js.map +1 -1
  257. package/dist/generated/themes/SocialMediaButton.css.d.ts +2 -0
  258. package/dist/generated/themes/SocialMediaButton.css.js +8 -0
  259. package/dist/generated/themes/SocialMediaButton.css.js.map +1 -0
  260. package/dist/generated/themes/Tag.css.d.ts +1 -1
  261. package/dist/generated/themes/Tag.css.js +1 -1
  262. package/dist/generated/themes/Tag.css.js.map +1 -1
  263. package/dist/generated/themes/TextField.css.d.ts +1 -1
  264. package/dist/generated/themes/TextField.css.js +1 -1
  265. package/dist/generated/themes/TextField.css.js.map +1 -1
  266. package/dist/messagebundle.properties +9 -3
  267. package/dist/messagebundle_en.properties +3 -1
  268. package/dist/types/PromoTile.d.ts +60 -0
  269. package/dist/types/PromoTile.js +63 -0
  270. package/dist/types/PromoTile.js.map +1 -0
  271. package/dist/types/SocialMediaButtonType.d.ts +9 -0
  272. package/dist/types/SocialMediaButtonType.js +11 -0
  273. package/dist/types/SocialMediaButtonType.js.map +1 -0
  274. package/dist/utils/debounce.d.ts +3 -1
  275. package/dist/utils/debounce.js +16 -4
  276. package/dist/utils/debounce.js.map +1 -1
  277. package/dist/vscode.html-custom-data.json +152 -1
  278. package/dist/web-types.json +341 -11
  279. package/package.json +2 -1
  280. package/src/Accordion.ts +19 -0
  281. package/src/AccordionItem.ts +28 -0
  282. package/src/AccordionItemTemplate.tsx +25 -10
  283. package/src/AccordionTemplate.tsx +22 -1
  284. package/src/Assets.ts +1 -0
  285. package/src/CountrySelector.hbs +3 -9
  286. package/src/CountrySelector.ts +7 -4
  287. package/src/DatePicker.hbs +17 -26
  288. package/src/DatePicker.ts +2 -2
  289. package/src/FilterMenu.hbs +33 -37
  290. package/src/FilterMenu.ts +69 -15
  291. package/src/Footer.hbs +39 -43
  292. package/src/Footer.ts +88 -14
  293. package/src/HeroBanner.hbs +0 -1
  294. package/src/MastheadItem.hbs +2 -2
  295. package/src/MastheadItem.ts +18 -0
  296. package/src/MastheadShell.hbs +3 -2
  297. package/src/MastheadShell.ts +28 -7
  298. package/src/PromoTile.ts +290 -0
  299. package/src/PromoTileTemplate.tsx +68 -0
  300. package/src/Quote.ts +17 -3
  301. package/src/Search.ts +1 -0
  302. package/src/SearchableListBase.hbs +1 -1
  303. package/src/SelectBox.hbs +11 -13
  304. package/src/SelectBox.ts +2 -2
  305. package/src/SocialMediaButton.ts +152 -0
  306. package/src/SocialMediaButtonTemplate.tsx +18 -0
  307. package/src/StepInput.ts +8 -1
  308. package/src/StepInputTemplate.tsx +1 -2
  309. package/src/TableRow.ts +27 -1
  310. package/src/TextArea.ts +14 -7
  311. package/src/TextField.hbs +5 -5
  312. package/src/TextField.ts +87 -66
  313. package/src/generated/i18n/i18n-defaults.ts +2 -2
  314. package/src/generated/templates/CountrySelectorTemplate.lit.ts +1 -2
  315. package/src/generated/templates/DatePickerTemplate.lit.ts +4 -5
  316. package/src/generated/templates/FilterMenuTemplate.lit.ts +2 -2
  317. package/src/generated/templates/FooterTemplate.lit.ts +33 -32
  318. package/src/generated/templates/HeroBannerTemplate.lit.ts +1 -1
  319. package/src/generated/templates/MastheadItemTemplate.lit.ts +3 -3
  320. package/src/generated/templates/MastheadShellTemplate.lit.ts +1 -1
  321. package/src/generated/templates/SearchableListBaseTemplate.lit.ts +1 -1
  322. package/src/generated/templates/SelectBoxTemplate.lit.ts +4 -4
  323. package/src/generated/templates/TextFieldTemplate.lit.ts +2 -2
  324. package/src/generated/themes/AccordionItem.css.ts +1 -1
  325. package/src/generated/themes/BreadcrumbsPopover.css.ts +1 -1
  326. package/src/generated/themes/CountrySelector.css.ts +1 -1
  327. package/src/generated/themes/DatePicker.css.ts +1 -1
  328. package/src/generated/themes/Divider.css.ts +1 -1
  329. package/src/generated/themes/Dropdown.css.ts +1 -1
  330. package/src/generated/themes/FilterMenu.css.ts +1 -1
  331. package/src/generated/themes/Footer.css.ts +1 -1
  332. package/src/generated/themes/HeroBanner.css.ts +1 -1
  333. package/src/generated/themes/Link.css.ts +1 -1
  334. package/src/generated/themes/MastheadItem.css.ts +1 -1
  335. package/src/generated/themes/MastheadMenu.css.ts +1 -1
  336. package/src/generated/themes/PromoTile.css.ts +9 -0
  337. package/src/generated/themes/Quote.css.ts +1 -1
  338. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  339. package/src/generated/themes/SelectBox.css.ts +1 -1
  340. package/src/generated/themes/Slider.css.ts +1 -1
  341. package/src/generated/themes/SocialMediaButton.css.ts +9 -0
  342. package/src/generated/themes/Tag.css.ts +1 -1
  343. package/src/generated/themes/TextField.css.ts +1 -1
  344. package/src/i18n/messagebundle.properties +9 -3
  345. package/src/i18n/messagebundle_en.properties +3 -1
  346. package/src/themes/AccordionItem.css +61 -22
  347. package/src/themes/BreadcrumbsPopover.css +2 -1
  348. package/src/themes/CountrySelector.css +4 -0
  349. package/src/themes/DatePicker.css +0 -5
  350. package/src/themes/Divider.css +2 -1
  351. package/src/themes/Dropdown.css +1 -1
  352. package/src/themes/FilterMenu.css +2 -2
  353. package/src/themes/Footer.css +44 -25
  354. package/src/themes/HeroBanner.css +34 -32
  355. package/src/themes/Link.css +4 -1
  356. package/src/themes/MastheadItem.css +2 -1
  357. package/src/themes/MastheadMenu.css +4 -4
  358. package/src/themes/PromoTile.css +152 -0
  359. package/src/themes/Quote.css +21 -24
  360. package/src/themes/SelectBox.css +1 -1
  361. package/src/themes/SocialMediaButton.css +50 -0
  362. package/src/themes/Tag.css +18 -24
  363. package/src/themes/TextField.css +0 -15
  364. package/src/types/PromoTile.ts +61 -0
  365. package/src/types/SocialMediaButtonType.ts +10 -0
  366. package/src/utils/debounce.ts +19 -4
  367. package/dist/assets/messagebundle_en-CKeTZNW3.js +0 -1
@@ -4,30 +4,35 @@ import IconMode from "@ui5/webcomponents/dist/types/IconMode.js";
4
4
  import slimArrowRight from "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
5
5
  import { UDExNumberBadgeDesign, UDExSizeBadgeDesign, UDExTypeBadgeDesign } from "./types/BadgeDesign.js";
6
6
  import UDExBadge from "./Badge.js";
7
+ import UDExDivider from "./Divider.js";
7
8
 
8
9
  export default function AccordionItemTemplate(this: AccordionItem) {
9
10
  const ariaControlsId = `udex-accordion-item__${this._id}-content`;
10
11
  const ariaLabelledbyId = `udex-accordion-item__${this._id}`;
11
12
  const rootClass = "udex-accordion-item";
13
+ const titleClass = this.labelIcon ? `${rootClass}--with-title` : "";
14
+ const headlineClass = `${rootClass}__header ${rootClass}__header--${this.labelSize.toLowerCase()}`;
12
15
 
13
16
  return (
14
17
  <>
15
18
  <button
16
19
  id={ariaLabelledbyId}
17
20
  aria-controls={ariaControlsId}
18
- className={`${rootClass}__header`}
21
+ className={`${headlineClass}`}
19
22
  onFocusIn={this.focusHandler}
20
23
  onClick={this.itemClickHandler}
21
24
  onKeyDown={this.keydownHandler}
22
25
  aria-expanded={this.expanded}
23
26
  type="button">
24
- <div className={`${rootClass}__icon-wrapper`}>
25
- <UI5Icon
26
- class={`${rootClass}__icon`}
27
- mode={IconMode.Decorative}
28
- name={slimArrowRight}>
29
- </UI5Icon>
30
- </div>
27
+ {this.labelIcon ?
28
+ <div className={`${rootClass}__icon-wrapper ${rootClass}__label-icon-wrapper`}>
29
+ <UI5Icon
30
+ class={`${rootClass}__icon ${rootClass}__label-icon`}
31
+ mode={IconMode.Decorative}
32
+ name={this.labelIcon}>
33
+ </UI5Icon>
34
+ </div>
35
+ : ""}
31
36
  <span className={`${rootClass}__title`}>
32
37
  {this.label}
33
38
  {this.numberBadge &&
@@ -40,15 +45,25 @@ export default function AccordionItemTemplate(this: AccordionItem) {
40
45
  </UDExBadge>
41
46
  }
42
47
  </span>
48
+ <div className={`${rootClass}__icon-wrapper`}>
49
+ <UI5Icon
50
+ class={`${rootClass}__icon`}
51
+ mode={IconMode.Decorative}
52
+ name={slimArrowRight}>
53
+ </UI5Icon>
54
+ </div>
43
55
  </button>
44
56
  <div
45
57
  id={ariaControlsId}
46
58
  aria-labelledby={ariaLabelledbyId}
47
- className={`${rootClass}__content`}
59
+ className={`${rootClass}__content ${titleClass}`}
48
60
  onKeyDown={this.contentKeydown}
49
61
  role="region">
50
- <slot></slot>
62
+ <div className={`${rootClass}__content-inner`}>
63
+ <slot></slot>
64
+ </div>
51
65
  </div>
66
+ <UDExDivider></UDExDivider>
52
67
  </>
53
68
  );
54
69
  }
@@ -2,6 +2,7 @@ import type Accordion from "./Accordion.js";
2
2
  import UDExButton from "./Button.js";
3
3
  import UDExButtonSize from "./types/ButtonSize.js";
4
4
  import UDExButtonDesign from "./types/ButtonDesign.js";
5
+ import { UDExAccordionHeadlineLevel } from "./Accordion.js";
5
6
 
6
7
  export default function AccordionTemplate(this: Accordion) {
7
8
  const rootClass = "udex-accordion";
@@ -14,7 +15,7 @@ export default function AccordionTemplate(this: Accordion) {
14
15
  onui5-accordion-item-focus={this.itemFocusHandler}>
15
16
  <div className={`${rootClass}__head`} part="head">
16
17
  {this.headline &&
17
- <h3 className={`${rootClass}__headline`}>{this.headline}</h3>
18
+ headline.call(this, rootClass)
18
19
  }
19
20
  {!this.hideExpandButton &&
20
21
  <UDExButton class={`${rootClass}__btn`}
@@ -35,3 +36,23 @@ export default function AccordionTemplate(this: Accordion) {
35
36
  </div>
36
37
  );
37
38
  }
39
+
40
+ function headline(this: Accordion, rootClass: string) {
41
+ const { headline: title, headlineLevel } = this;
42
+ switch (headlineLevel) {
43
+ case UDExAccordionHeadlineLevel.H1:
44
+ return <h1 className={`${rootClass}__headline`}>{title}</h1>;
45
+ case UDExAccordionHeadlineLevel.H2:
46
+ return <h2 className={`${rootClass}__headline`}>{title}</h2>;
47
+ case UDExAccordionHeadlineLevel.H3:
48
+ return <h3 className={`${rootClass}__headline`}>{title}</h3>;
49
+ case UDExAccordionHeadlineLevel.H4:
50
+ return <h4 className={`${rootClass}__headline`}>{title}</h4>;
51
+ case UDExAccordionHeadlineLevel.H5:
52
+ return <h5 className={`${rootClass}__headline`}>{title}</h5>;
53
+ case UDExAccordionHeadlineLevel.H6:
54
+ return <h6 className={`${rootClass}__headline`}>{title}</h6>;
55
+ default:
56
+ return <h3 className={`${rootClass}__headline`}>{title}</h3>;
57
+ }
58
+ }
package/src/Assets.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import "@ui5/webcomponents-theming/dist/Assets.js"; // Theming
2
+ import "@ui5/webcomponents-localization/dist/Assets.js";
2
3
 
3
4
  // own web-components package assets
4
5
  import "./generated/json-imports/Themes.js";
@@ -17,13 +17,6 @@
17
17
  @keydown="{{handleKeyDownDropdown}}">
18
18
  {{searchableList}}
19
19
  </udex-dropdown>
20
- {{#if supportingText}}
21
- <udex-status-message
22
- ?disabled="{{disabled}}"
23
- supporting-text="{{supportingText}}"
24
- value-state="{{valueState}}">
25
- </udex-status-message>
26
- {{/if}}
27
20
  </div>
28
21
 
29
22
  {{#*inline "trigger"}}
@@ -45,12 +38,12 @@
45
38
  class="udex-country-selector__text"
46
39
  value="{{selectedCountryName}}"
47
40
  value-state="{{valueState}}"
41
+ supporting-text="{{supportingText}}"
48
42
  direction="left"
49
43
  aria-label="{{effectiveAriaLabel}}"
50
44
  accessible-name="{{supportingText}}"
51
45
  accessible-name-ref="{{accessibleNameRef}}"
52
46
  aria-controls="{{ariaControls}}"
53
- role="combobox"
54
47
  aria-haspopup="true"
55
48
  aria-expanded="{{_open}}"
56
49
  ?required="{{required}}"
@@ -61,7 +54,8 @@
61
54
  @mousedown="{{handleInputMouseDown}}"
62
55
  icon="{{triggerIcon}}"
63
56
  accessible-icon-name="{{effectiveAriaLabel}}"
64
- maxlength="0">
57
+ maxlength="0"
58
+ _is-combobox-role>
65
59
  </udex-text-field>
66
60
  </div>
67
61
  {{/inline}}
@@ -348,7 +348,7 @@ class UDExCountrySelector extends UDExSearchableListBase {
348
348
  }
349
349
 
350
350
  handleCloseSearch() {
351
- this.getInput()?.shadowRoot!.querySelector<Button>("[udex-control-button]")?.focus();
351
+ this.getTextField()?.shadowRoot!.querySelector<Button>("[udex-control-button]")?.focus();
352
352
  }
353
353
 
354
354
  handleItemPress(e: CustomEvent) {
@@ -373,6 +373,7 @@ class UDExCountrySelector extends UDExSearchableListBase {
373
373
 
374
374
  handleTriggerClick() {
375
375
  if (!this.isOpenerDisabled) {
376
+ this._dropdown.opener = this.getTextField()._inputHolder;
376
377
  this._dropdown.open = !this._dropdown.open;
377
378
  }
378
379
  }
@@ -456,8 +457,10 @@ class UDExCountrySelector extends UDExSearchableListBase {
456
457
  return this.getCountryLabel(this.selectedCountry?.countryName, this.selectedCountry?.localName) || "None";
457
458
  }
458
459
 
459
- get triggerIcon(): string {
460
- return this._open ? "navigation-up-arrow" : "navigation-down-arrow";
460
+ get triggerIcon(): string | undefined {
461
+ if (!this.displayonly) {
462
+ return this._open ? "navigation-up-arrow" : "navigation-down-arrow";
463
+ }
461
464
  }
462
465
 
463
466
  get countrySelectorClasses(): string {
@@ -504,7 +507,7 @@ class UDExCountrySelector extends UDExSearchableListBase {
504
507
  return this.shadowRoot!.querySelector<UDExDropdown>("[udex-dropdown]")!;
505
508
  }
506
509
 
507
- getInput(): UDExTextField {
510
+ getTextField(): UDExTextField {
508
511
  return this.shadowRoot!.querySelector<UDExTextField>("[udex-text-field]")!;
509
512
  }
510
513
 
@@ -1,28 +1,19 @@
1
- <div
2
- class="udex-date-picker__container">
3
- <udex-text-field
4
- class="udex-date-picker__input"
5
- _aria-has-popup="grid"
6
- icon="appointment-2"
7
- value="{{value}}"
8
- label="{{label}}"
9
- accessible-name="{{dateAccessibleName}}"
10
- accessible-name-ref="{{accessibleNameRef}}"
11
- accessible-icon-name="{{accessibleIconName}}"
12
- ?disabled="{{disabled}}"
13
- ?required="{{required}}"
14
- ?readonly="{{readonly}}"
15
- @ui5-click-icon="{{handleInputClick}}"
16
- @ui5-change="{{_onInputChange}}"
17
- value-state="{{valueState}}">
18
- </udex-text-field>
19
- {{#if supportingText}}
20
- <udex-status-message
21
- ?disabled="{{disabled}}"
22
- supporting-text="{{supportingText}}"
23
- value-state="{{valueState}}">
24
- </udex-status-message>
25
- {{/if}}
26
- </div>
1
+ <udex-text-field
2
+ class="udex-date-picker__input"
3
+ _aria-has-popup="grid"
4
+ icon="appointment-2"
5
+ value="{{value}}"
6
+ label="{{label}}"
7
+ accessible-name="{{dateAccessibleName}}"
8
+ accessible-name-ref="{{accessibleNameRef}}"
9
+ accessible-icon-name="{{accessibleIconName}}"
10
+ ?disabled="{{disabled}}"
11
+ ?required="{{required}}"
12
+ ?readonly="{{readonly}}"
13
+ @ui5-click-icon="{{handleInputClick}}"
14
+ @ui5-change="{{_onInputChange}}"
15
+ value-state="{{valueState}}"
16
+ supporting-text="{{supportingText}}">
17
+ </udex-text-field>
27
18
 
28
19
  {{>include "./DatePickerPopover.hbs"}}
package/src/DatePicker.ts CHANGED
@@ -225,7 +225,7 @@ class UDExDatePicker extends DateComponentBase {
225
225
  * @private
226
226
  */
227
227
  get _dropdownTrigger(): UDExTextField {
228
- return this.shadowRoot!.querySelector<UDExTextField>(".udex-date-picker__input")!;
228
+ return this.shadowRoot!.querySelector<UDExTextField>("[udex-text-field]")!;
229
229
  }
230
230
 
231
231
  _afterDropdownClose(): void {
@@ -248,7 +248,7 @@ class UDExDatePicker extends DateComponentBase {
248
248
  _openRespPopover(): void {
249
249
  this._dropdownTrigger.active = true;
250
250
  this.responsivePopover = this._getResponsePopover();
251
- this.responsivePopover.opener = this._dropdownTrigger;
251
+ this.responsivePopover.opener = this._dropdownTrigger._inputHolder;
252
252
  this.responsivePopover.open = true;
253
253
  }
254
254
 
@@ -1,39 +1,39 @@
1
1
  <div>
2
2
  <button
3
- id="filterMenuTrigger"
4
- @click="{{handleTriggerClick}}"
5
- @keydown="{{handleTriggerKeydown}}"
6
- aria-label="{{triggerButtonAccessibleName}}"
7
- aria-labelledby="{{accessibleNameRef}}"
8
- aria-expanded="{{_open}}"
9
- aria-haspopup="true"
10
- role="{{triggerAccessibleRole}}"
11
- aria-controls="{{this._id}}_udex-filter-menu-dropdown"
12
- ?disabled="{{disabled}}"
13
- class="udex-filter-menu__trigger"
14
- tabindex="0">
15
- {{#if hasFilterNamePrefix}}
16
- <span class="udex-filter-menu__trigger-prefix">{{filterNamePrefix}}</span>
17
- {{/if}}
18
- <span class="udex-filter-menu__trigger-wrap" ?disabled="{{disabled}}">
19
- <span class="udex-filter-menu__trigger-name">{{filterName}}</span>
20
- {{#if badgeValue}}
21
- <udex-badge
22
- class="udex-filter-menu__badge"
23
- type="Number"
24
- design="Info"
25
- size="Small">
26
- {{badgeValue}}
27
- </udex-badge>
3
+ id="filterMenuTrigger"
4
+ @click="{{handleTriggerClick}}"
5
+ @keydown="{{handleTriggerKeydown}}"
6
+ aria-label="{{triggerButtonAccessibleName}}"
7
+ aria-labelledby="{{accessibleNameRef}}"
8
+ aria-expanded="{{_open}}"
9
+ aria-haspopup="true"
10
+ role="{{triggerAccessibleRole}}"
11
+ aria-controls="{{this._id}}_udex-filter-menu-dropdown"
12
+ ?disabled="{{disabled}}"
13
+ class="udex-filter-menu__trigger"
14
+ tabindex="0">
15
+ {{#if hasFilterNamePrefix}}
16
+ <span class="udex-filter-menu__trigger-prefix">{{filterNamePrefix}}</span>
28
17
  {{/if}}
29
- <ui5-icon
30
- class="udex-filter-menu__trigger-icon"
31
- name="navigation-down-arrow"
32
- mode="Decorative"
33
- accessible-name="{{_iconAccessibleNameText}}">
34
- </ui5-icon>
35
- </span>
36
- </button>
18
+ <span class="udex-filter-menu__trigger-wrap" ?disabled="{{disabled}}">
19
+ <span class="udex-filter-menu__trigger-name">{{filterName}}</span>
20
+ {{#if badgeValue}}
21
+ <udex-badge
22
+ class="udex-filter-menu__badge"
23
+ type="Number"
24
+ design="Info"
25
+ size="Small">
26
+ {{badgeValue}}
27
+ </udex-badge>
28
+ {{/if}}
29
+ <ui5-icon
30
+ class="udex-filter-menu__trigger-icon"
31
+ name="navigation-down-arrow"
32
+ mode="Decorative"
33
+ accessible-name="{{_iconAccessibleNameText}}">
34
+ </ui5-icon>
35
+ </span>
36
+ </button>
37
37
  <ui5-popover
38
38
  id="{{this._id}}_udex-filter-menu-dropdown"
39
39
  hide-arrow
@@ -60,8 +60,6 @@
60
60
  </ui5-popover>
61
61
  </div>
62
62
 
63
-
64
-
65
63
  {{#*inline "buttons"}}
66
64
  {{#unless hideActionBar}}
67
65
  <div class="udex-filter-menu__footer" slot="footer" name="footer">
@@ -70,7 +68,6 @@
70
68
  class="udex-filter-menu__result-btn"
71
69
  size="Medium"
72
70
  design="Primary"
73
- ?disabled="{{disabledButtons}}"
74
71
  @keydown="{{handleKeyDownResultBtn}}"
75
72
  @click="{{handleResult}}">
76
73
  {{getResultLabelText}}
@@ -82,7 +79,6 @@
82
79
  size="Medium"
83
80
  design="Tertiary"
84
81
  @keydown="{{handleKeyDownResetBtn}}"
85
- ?disabled="{{disabledButtons}}"
86
82
  @click="{{handleReset}}">
87
83
  {{getResetLabelText}}
88
84
  </udex-button>
package/src/FilterMenu.ts CHANGED
@@ -37,6 +37,7 @@ import SearchableListBaseTemplate from "./generated/templates/SearchableListBase
37
37
  import FilterMenuCss from "./generated/themes/FilterMenu.css.js";
38
38
  import SearchableListCss from "./generated/themes/SearchableList.css.js";
39
39
  import getEffectiveScrollbarStyle from "./utils/getEffectiveScrollbarStyle.js";
40
+ import type UDExListGroupHeaderBase from "./ListGroupHeaderBase.js";
40
41
 
41
42
  type UDExFilterMenuResultClickEventDetail = {
42
43
  selectedItems: Array<UDExListItemBase>,
@@ -46,6 +47,12 @@ type UDExFilterMenuResetClickEventDetail = {
46
47
  restoredItems: Array<UDExListItemBase>,
47
48
  }
48
49
 
50
+ type initialItemState = {
51
+ id: string,
52
+ selected: boolean,
53
+ indeterminate?: boolean,
54
+ }
55
+
49
56
  /**
50
57
  * @class
51
58
  *
@@ -296,10 +303,17 @@ class UDExFilterMenu extends UDExSearchableListBase {
296
303
  @property({ type: String })
297
304
  triggerAccessibleRole: string = "combobox";
298
305
 
306
+ @property({ type: Boolean })
307
+ _shouldApplyFilter: boolean = false;
308
+
309
+ @property({ type: Boolean, noAttribute: true })
310
+ _requestRender = false;
311
+
299
312
  _trigger!: UDExButton;
300
313
  _search!: UDExSearch;
301
314
  _popover!: Popover;
302
315
  _breakpointSizeXS = 640;
316
+ _initialState: Array<initialItemState> = [];
303
317
 
304
318
  onEnterDOM(): void {
305
319
  if (isDesktop()) {
@@ -348,6 +362,7 @@ class UDExFilterMenu extends UDExSearchableListBase {
348
362
  }
349
363
 
350
364
  handleReset(): void {
365
+ this.onDropdownClose();
351
366
  this.fireDecoratorEvent("reset-click", {
352
367
  restoredItems: this.selectedItems,
353
368
  });
@@ -355,12 +370,11 @@ class UDExFilterMenu extends UDExSearchableListBase {
355
370
  }
356
371
 
357
372
  handleResult(): void {
358
- if (!this.disabledButtons) {
359
- this._popover.open = false;
360
- this.fireDecoratorEvent("result-click", {
361
- selectedItems: this.selectedItems,
362
- });
363
- }
373
+ this._shouldApplyFilter = true;
374
+ this.onDropdownClose();
375
+ this.fireDecoratorEvent("result-click", {
376
+ selectedItems: this.selectedItems,
377
+ });
364
378
  }
365
379
 
366
380
  handleKeyDownList(e: KeyboardEvent): void {
@@ -438,6 +452,7 @@ class UDExFilterMenu extends UDExSearchableListBase {
438
452
  this._setContentHeight();
439
453
  }
440
454
 
455
+ this._initialState = this._getInitialState(this.items);
441
456
  this.fireDecoratorEvent("before-open");
442
457
  }
443
458
 
@@ -449,6 +464,44 @@ class UDExFilterMenu extends UDExSearchableListBase {
449
464
  this.fireDecoratorEvent("after-open");
450
465
  }
451
466
 
467
+ _getInitialState(items: Array<UDExListItemBase | UDExListGroupHeaderBase>): Array<initialItemState> {
468
+ return items.flatMap(item => {
469
+ if (item.isGroup) {
470
+ const groupState: initialItemState = {
471
+ id: item._id,
472
+ selected: item.selected,
473
+ indeterminate: item.indeterminate,
474
+ };
475
+ const subItemsState = (item as UDExListGroupHeaderBase).getItems().map(subItem => ({
476
+ id: subItem._id,
477
+ selected: subItem.selected,
478
+ }));
479
+ return [groupState, ...subItemsState];
480
+ }
481
+ return {
482
+ id: item._id,
483
+ selected: item.selected,
484
+ };
485
+ });
486
+ }
487
+
488
+ _setInitialListState(): void {
489
+ this.getSlottedItems(this.items).forEach((item, index) => {
490
+ const initialState = this._initialState[index];
491
+ if (item._id === initialState?.id) {
492
+ item.selected = initialState.selected;
493
+ if (item.isGroup) {
494
+ item.indeterminate = initialState.indeterminate;
495
+ }
496
+ }
497
+ });
498
+ }
499
+
500
+ _setInitialState(): void {
501
+ this._setInitialListState();
502
+ this._requestRender = true;
503
+ }
504
+
452
505
  _dropdownBeforeClose(): void {
453
506
  this.fireDecoratorEvent("before-close");
454
507
  }
@@ -459,6 +512,11 @@ class UDExFilterMenu extends UDExSearchableListBase {
459
512
  this._managePopupListeners(UDExPopoverPart.Footer, "removeEventListener");
460
513
  }
461
514
 
515
+ if (!this._shouldApplyFilter && this.modeMultiSelect && !this.modeSelectAll) {
516
+ this._setInitialState();
517
+ }
518
+
519
+ this._shouldApplyFilter = false;
462
520
  this._open = false;
463
521
  this._trigger.classList.remove("udex-filter-menu__trigger-active");
464
522
  this.fireDecoratorEvent("after-close");
@@ -480,10 +538,6 @@ class UDExFilterMenu extends UDExSearchableListBase {
480
538
  return this.resetBtnLabel !== undefined && this.resetBtnLabel.length > 0 ? this.resetBtnLabel : UDExFilterMenu.i18nBundle.getText(RESET);
481
539
  }
482
540
 
483
- get disabledButtons(): boolean {
484
- return !this.selectedItems.length && !this.selectAll;
485
- }
486
-
487
541
  get _iconAccessibleNameText(): string {
488
542
  return UDExFilterMenu.i18nBundle.getText(SELECT_OPTIONS);
489
543
  }
@@ -501,17 +555,17 @@ class UDExFilterMenu extends UDExSearchableListBase {
501
555
  }
502
556
 
503
557
  get hasFooterButtons(): boolean {
504
- return (this.hasResultBtn || this.hasResetBtn) && !this.disabledButtons;
505
- }
506
-
507
- get hasResultBtn(): boolean {
508
- return !this.hideResultBtn && !this.disabledButtons;
558
+ return !!this.shadowRoot!.querySelector("[udex-button]");
509
559
  }
510
560
 
511
561
  get hasResetBtn(): boolean {
512
562
  return !this.hideResetBtn;
513
563
  }
514
564
 
565
+ get modeSelectAll(): boolean {
566
+ return !!this.querySelector<UDExFilterMenuSelectAll>("[udex-filter-menu-select-all]");
567
+ }
568
+
515
569
  getTriggerButton(): UDExButton {
516
570
  return this.shadowRoot!.querySelector<UDExButton>("#filterMenuTrigger")!;
517
571
  }
package/src/Footer.hbs CHANGED
@@ -1,14 +1,17 @@
1
1
  <footer class="udex-footer">
2
2
  <div class="udex-footer__content">
3
3
  <div class="udex-footer__contact-social">
4
- {{#if logoUrl}}
4
+ {{#if hasLogo}}
5
5
  <div class="udex-footer__logo">
6
- {{#if logoLink}}
7
- <a href="{{parsedRef}}" @click="{{_onLogoClick}}" title="{{logoTitle}}" aria-label="{{logoAriaLabel}}">
8
- <img id="udex-footer__logo-image" src="{{logoUrl}}" class="udex-footer__logo-image" alt="{{logoAlt}}"/>
9
- </a>
6
+ {{#if hasLogoLink}}
7
+ <a href="{{logoHref}}" @click="{{_onLogoClick}}" title="{{logoTitle}}" aria-label="{{logoAriaLabel}}">
8
+ <img id="udex-footer__logo-image" src="{{currentLogoUrl}}" class="{{logoClass}}" alt="{{logoAlt}}"/>
9
+ </a>
10
10
  {{else}}
11
- <img id="udex-footer__logo-image" src="{{logoUrl}}" class="udex-footer__logo-image" alt="{{logoAlt}}"/>
11
+ <img id="udex-footer__logo-image" src="{{currentLogoUrl}}" class="{{logoClass}}" alt="{{logoAlt}}"/>
12
+ {{/if}}
13
+ {{#if hasTagline}}
14
+ <img id="udex-footer__tagline-image" src="{{currentTaglineUrl}}" class="{{taglineClass}}" alt="{{taglineAlt}}"/>
12
15
  {{/if}}
13
16
  </div>
14
17
  {{/if}}
@@ -83,47 +86,40 @@
83
86
  {{/if}}
84
87
 
85
88
  <udex-divider class="udex-footer__divider"></udex-divider>
89
+ </div>
86
90
 
87
- <div class="udex-footer__copyright">
88
- {{#if isChineseLang}}
89
- <span class="udex-footer__copyright-chinese-text">
90
- <a
91
- href="{{chineseIcpNumberLink}}"
92
- title="{{chineseICPNumber}}"
93
- class="udex-footer__copyright-chinese-link"
94
- target="_blank">
95
- {{chineseICPNumber}}
96
- </a>
97
- {{chineseSecurityNetworkNumber}}
98
- </span>
99
- {{/if}}
100
- <span class="udex-footer__copyright-text">{{copyrightText}}</span>
101
- </div>
102
-
103
- {{#if socialLinksArray.length}}
104
- <div class="udex-footer__social-container">
105
- {{#each socialLinksArray}}
106
- <a
107
- target="{{target}}"
108
- href="{{this.url}}"
109
- class="udex-footer__social-icon"
110
- data-name="{{this.name}}"
111
- data-id="{{this.id}}"
112
- @click="{{../_onSocialMediaLinkClick}}"
113
- >
114
- <img
115
- data-name="{{this.name}}"
116
- data-id="{{this.id}}"
117
- alt="{{this.name}} {{../socialIconAccessibleName}}"
118
- src="{{this.iconUrl}}"
119
- loading="lazy"
120
- />
121
- </a>
122
- {{/each}}
123
- </div>
91
+ <div class="udex-footer__copyright">
92
+ {{#if isChineseLang}}
93
+ <span class="udex-footer__copyright-chinese-text">
94
+ <a
95
+ href="{{chineseIcpNumberLink}}"
96
+ title="{{chineseICPNumber}}"
97
+ class="udex-footer__copyright-chinese-link"
98
+ target="_blank">
99
+ {{chineseICPNumber}}
100
+ </a>
101
+ {{chineseSecurityNetworkNumber}}
102
+ </span>
124
103
  {{/if}}
104
+ <span class="udex-footer__copyright-text">{{copyrightText}}</span>
125
105
  </div>
126
106
 
107
+ {{#if socialLinksArray.length}}
108
+ <div class="udex-footer__social-container">
109
+ {{#each socialLinksArray}}
110
+ <udex-social-media-button
111
+ type="{{this.name}}"
112
+ url="{{this.url}}"
113
+ target="{{this.target}}"
114
+ accessible-name="{{this.accessibleName}}"
115
+ data-name="{{this.name}}"
116
+ data-id="{{this.id}}"
117
+ @ui5-click="{{../_onSocialMediaLinkClick}}"
118
+ ></udex-social-media-button>
119
+ {{/each}}
120
+ </div>
121
+ {{/if}}
122
+
127
123
  <udex-button
128
124
  class="udex-footer__back-to-top-button"
129
125
  icon="back-to-top"