@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
@@ -10,12 +10,18 @@ import { UDExListMode } from "./types/List.js";
10
10
  import type UDExListItemBase from "./ListItemBase.js";
11
11
  import "@ui5/webcomponents-icons/dist/navigation-down-arrow.js";
12
12
  import SearchableListBaseTemplate from "./generated/templates/SearchableListBaseTemplate.lit.js";
13
+ import type UDExListGroupHeaderBase from "./ListGroupHeaderBase.js";
13
14
  type UDExFilterMenuResultClickEventDetail = {
14
15
  selectedItems: Array<UDExListItemBase>;
15
16
  };
16
17
  type UDExFilterMenuResetClickEventDetail = {
17
18
  restoredItems: Array<UDExListItemBase>;
18
19
  };
20
+ type initialItemState = {
21
+ id: string;
22
+ selected: boolean;
23
+ indeterminate?: boolean;
24
+ };
19
25
  /**
20
26
  * @class
21
27
  *
@@ -162,10 +168,13 @@ declare class UDExFilterMenu extends UDExSearchableListBase {
162
168
  * @public
163
169
  */
164
170
  triggerAccessibleRole: string;
171
+ _shouldApplyFilter: boolean;
172
+ _requestRender: boolean;
165
173
  _trigger: UDExButton;
166
174
  _search: UDExSearch;
167
175
  _popover: Popover;
168
176
  _breakpointSizeXS: number;
177
+ _initialState: Array<initialItemState>;
169
178
  onEnterDOM(): void;
170
179
  onBeforeRendering(): void;
171
180
  onAfterRendering(): void;
@@ -187,20 +196,22 @@ declare class UDExFilterMenu extends UDExSearchableListBase {
187
196
  onDropdownClose(e?: KeyboardEvent): void;
188
197
  _dropdownBeforeOpen(): void;
189
198
  _dropdownAfterOpen(): void;
199
+ _getInitialState(items: Array<UDExListItemBase | UDExListGroupHeaderBase>): Array<initialItemState>;
200
+ _setInitialListState(): void;
201
+ _setInitialState(): void;
190
202
  _dropdownBeforeClose(): void;
191
203
  _dropdownAfterClose(): void;
192
204
  get disableAllowTargetOverlap(): boolean;
193
205
  get hasFilterNamePrefix(): boolean;
194
206
  get getResultLabelText(): string;
195
207
  get getResetLabelText(): string;
196
- get disabledButtons(): boolean;
197
208
  get _iconAccessibleNameText(): string;
198
209
  get triggerButtonAccessibleName(): string;
199
210
  get searchableList(): object;
200
211
  get hideActionBar(): boolean;
201
212
  get hasFooterButtons(): boolean;
202
- get hasResultBtn(): boolean;
203
213
  get hasResetBtn(): boolean;
214
+ get modeSelectAll(): boolean;
204
215
  getTriggerButton(): UDExButton;
205
216
  getItems(): Array<UDExListItemBase>;
206
217
  static get searchableListBaseTemplate(): typeof SearchableListBaseTemplate;
@@ -122,7 +122,10 @@ let UDExFilterMenu = UDExFilterMenu_1 = class UDExFilterMenu extends UDExSearcha
122
122
  * @public
123
123
  */
124
124
  this.triggerAccessibleRole = "combobox";
125
+ this._shouldApplyFilter = false;
126
+ this._requestRender = false;
125
127
  this._breakpointSizeXS = 640;
128
+ this._initialState = [];
126
129
  }
127
130
  onEnterDOM() {
128
131
  if (isDesktop()) {
@@ -161,18 +164,18 @@ let UDExFilterMenu = UDExFilterMenu_1 = class UDExFilterMenu extends UDExSearcha
161
164
  this.onResetSearch();
162
165
  }
163
166
  handleReset() {
167
+ this.onDropdownClose();
164
168
  this.fireDecoratorEvent("reset-click", {
165
169
  restoredItems: this.selectedItems,
166
170
  });
167
171
  this.onReset();
168
172
  }
169
173
  handleResult() {
170
- if (!this.disabledButtons) {
171
- this._popover.open = false;
172
- this.fireDecoratorEvent("result-click", {
173
- selectedItems: this.selectedItems,
174
- });
175
- }
174
+ this._shouldApplyFilter = true;
175
+ this.onDropdownClose();
176
+ this.fireDecoratorEvent("result-click", {
177
+ selectedItems: this.selectedItems,
178
+ });
176
179
  }
177
180
  handleKeyDownList(e) {
178
181
  const isTabNextPress = isTabNext(e) && !this.hasFooterButtons;
@@ -240,6 +243,7 @@ let UDExFilterMenu = UDExFilterMenu_1 = class UDExFilterMenu extends UDExSearcha
240
243
  if (this.height) {
241
244
  this._setContentHeight();
242
245
  }
246
+ this._initialState = this._getInitialState(this.items);
243
247
  this.fireDecoratorEvent("before-open");
244
248
  }
245
249
  _dropdownAfterOpen() {
@@ -249,6 +253,41 @@ let UDExFilterMenu = UDExFilterMenu_1 = class UDExFilterMenu extends UDExSearcha
249
253
  }
250
254
  this.fireDecoratorEvent("after-open");
251
255
  }
256
+ _getInitialState(items) {
257
+ return items.flatMap(item => {
258
+ if (item.isGroup) {
259
+ const groupState = {
260
+ id: item._id,
261
+ selected: item.selected,
262
+ indeterminate: item.indeterminate,
263
+ };
264
+ const subItemsState = item.getItems().map(subItem => ({
265
+ id: subItem._id,
266
+ selected: subItem.selected,
267
+ }));
268
+ return [groupState, ...subItemsState];
269
+ }
270
+ return {
271
+ id: item._id,
272
+ selected: item.selected,
273
+ };
274
+ });
275
+ }
276
+ _setInitialListState() {
277
+ this.getSlottedItems(this.items).forEach((item, index) => {
278
+ const initialState = this._initialState[index];
279
+ if (item._id === initialState?.id) {
280
+ item.selected = initialState.selected;
281
+ if (item.isGroup) {
282
+ item.indeterminate = initialState.indeterminate;
283
+ }
284
+ }
285
+ });
286
+ }
287
+ _setInitialState() {
288
+ this._setInitialListState();
289
+ this._requestRender = true;
290
+ }
252
291
  _dropdownBeforeClose() {
253
292
  this.fireDecoratorEvent("before-close");
254
293
  }
@@ -257,6 +296,10 @@ let UDExFilterMenu = UDExFilterMenu_1 = class UDExFilterMenu extends UDExSearcha
257
296
  this._managePopupListeners(UDExPopoverPart.Header, "removeEventListener");
258
297
  this._managePopupListeners(UDExPopoverPart.Footer, "removeEventListener");
259
298
  }
299
+ if (!this._shouldApplyFilter && this.modeMultiSelect && !this.modeSelectAll) {
300
+ this._setInitialState();
301
+ }
302
+ this._shouldApplyFilter = false;
260
303
  this._open = false;
261
304
  this._trigger.classList.remove("udex-filter-menu__trigger-active");
262
305
  this.fireDecoratorEvent("after-close");
@@ -273,9 +316,6 @@ let UDExFilterMenu = UDExFilterMenu_1 = class UDExFilterMenu extends UDExSearcha
273
316
  get getResetLabelText() {
274
317
  return this.resetBtnLabel !== undefined && this.resetBtnLabel.length > 0 ? this.resetBtnLabel : UDExFilterMenu_1.i18nBundle.getText(RESET);
275
318
  }
276
- get disabledButtons() {
277
- return !this.selectedItems.length && !this.selectAll;
278
- }
279
319
  get _iconAccessibleNameText() {
280
320
  return UDExFilterMenu_1.i18nBundle.getText(SELECT_OPTIONS);
281
321
  }
@@ -289,14 +329,14 @@ let UDExFilterMenu = UDExFilterMenu_1 = class UDExFilterMenu extends UDExSearcha
289
329
  return this.hideResultBtn && this.hideResetBtn;
290
330
  }
291
331
  get hasFooterButtons() {
292
- return (this.hasResultBtn || this.hasResetBtn) && !this.disabledButtons;
293
- }
294
- get hasResultBtn() {
295
- return !this.hideResultBtn && !this.disabledButtons;
332
+ return !!this.shadowRoot.querySelector("[udex-button]");
296
333
  }
297
334
  get hasResetBtn() {
298
335
  return !this.hideResetBtn;
299
336
  }
337
+ get modeSelectAll() {
338
+ return !!this.querySelector("[udex-filter-menu-select-all]");
339
+ }
300
340
  getTriggerButton() {
301
341
  return this.shadowRoot.querySelector("#filterMenuTrigger");
302
342
  }
@@ -358,6 +398,12 @@ __decorate([
358
398
  __decorate([
359
399
  property({ type: String })
360
400
  ], UDExFilterMenu.prototype, "triggerAccessibleRole", void 0);
401
+ __decorate([
402
+ property({ type: Boolean })
403
+ ], UDExFilterMenu.prototype, "_shouldApplyFilter", void 0);
404
+ __decorate([
405
+ property({ type: Boolean, noAttribute: true })
406
+ ], UDExFilterMenu.prototype, "_requestRender", void 0);
361
407
  UDExFilterMenu = UDExFilterMenu_1 = __decorate([
362
408
  customElement({
363
409
  tag: "udex-filter-menu",
@@ -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,yDAAyD,CAAC;AAC5E,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,eAAe,MAAM,0DAA0D,CAAC;AACvF,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAO,EACL,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GACrD,MAAM,sCAAsC,CAAC;AAC9C,OAAO,mBAAmB,MAAM,sDAAsD,CAAC;AACvF,OAAO,OAAO,MAAM,oCAAoC,CAAC;AACzD,OAAO,aAAa,MAAM,0CAA0C,CAAC;AACrE,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,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;AAEnE,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,OAAO,sBAAsB,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,uBAAuB,MAAM,0BAA0B,CAAC;AAC/D,OAAO,iBAAiB,MAAM,oBAAoB,CAAC;AACnD,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACxF,OAAO,wDAAwD,CAAC;AAChE,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;AACzE,OAAO,0BAA0B,MAAM,uCAAuC,CAAC;AAU/E;;;;;;;;;;;;;;;;;GAiBG;AAwEH,IAAM,cAAc,sBAApB,MAAM,cAAe,SAAQ,sBAAsB;IAAnD;;QA2BE;;;;;WAKG;QAED,cAAS,GAAmB,SAAS,CAAC,MAAM,CAAC;QAE/C;;;;;WAKG;QAED,oBAAe,GAAyB,eAAe,CAAC,KAAK,CAAC;QAEhE;;;;;WAKG;QAED,SAAI,GAAsB,YAAY,CAAC,YAAY,CAAC;QAsCtD;;;;;WAKG;QAED,aAAQ,GAAY,KAAK,CAAC;QAE5B;;;;;WAKG;QAED,UAAK,GAAY,KAAK,CAAC;QAEzB;;;;;;WAMG;QAED,kBAAa,GAAY,KAAK,CAAC;QAEjC;;;;;;WAMG;QAED,iBAAY,GAAY,KAAK,CAAC;QAmBhC;;;;WAIG;QAED,mBAAc,GAA6B,mBAAmB,CAAC,IAAI,CAAC;QAEtE;;;;WAIG;QAED,0BAAqB,GAAW,UAAU,CAAC;QAK7C,sBAAiB,GAAG,GAAG,CAAC;IAgO1B,CAAC;IA9NC,UAAU;QACR,IAAI,SAAS,EAAE,EAAE,CAAC;YAChB,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;IAC5B,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1C,CAAC;IAED,eAAe,CAAC,CAAa;QAC3B,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC;IAED,eAAe,CAAC,CAAa;QAC3B,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;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,kBAAkB,CAAC,aAAa,EAAE;YACrC,aAAa,EAAE,IAAI,CAAC,aAAa;SAClC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,YAAY;QACV,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE;gBACtC,aAAa,EAAE,IAAI,CAAC,aAAa;aAClC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,iBAAiB,CAAC,CAAgB;QAChC,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAC9D,MAAM,cAAc,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QACzD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAqB,CAAC;QACvC,MAAM,oBAAoB,GAAG,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC;QACrD,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,oBAAoB,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,cAAc,EAAE,CAAC;YACtF,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,mBAAmB,CAAC,QAAmD;QACrE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC;QACnC,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,sBAAsB,CAAC,CAAgB;QACrC,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtC,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED,qBAAqB,CAAC,CAAgB;QACpC,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED,oBAAoB,CAAC,CAAgB;QACnC,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QAEzB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;YAChE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED,eAAe,CAAC,CAAiB;QAC/B,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3C,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAED,mBAAmB;QACjB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;YACvE,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;QACzE,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;IACzC,CAAC;IAED,kBAAkB;QAChB,MAAM,iBAAiB,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3E,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,wCAAwC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAClG,CAAC;QACD,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAC1C,CAAC;IAED,mBAAmB;QACjB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;YAC1E,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;QAC5E,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAC;QACnE,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,yBAAyB;QAC3B,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC;IACpC,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC;IACzC,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,cAAc,KAAK,SAAS,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,gBAAc,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC5K,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAc,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3I,CAAC;IAED,IAAI,eAAe;QACjB,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,2BAA2B;QAC7B,OAAO,IAAI,CAAC,cAAc,IAAI,gBAAc,CAAC,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAClF,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,CAAC,IAAI,CAAC,eAAe,CAAC;IAC1E,CAAC;IAED,IAAI,YAAY;QACd,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;IACtD,CAAC;IAED,IAAI,WAAW;QACb,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;IAC5B,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAa,oBAAoB,CAAE,CAAC;IAC3E,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;AArXG;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;kDACL;AAUpB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;4DACK;AAS/B;IADD,QAAQ,EAAE;iDACoC;AAS7C;IADD,QAAQ,EAAE;uDACqD;AAS9D;IADD,QAAQ,EAAE;4CAC2C;AASpD;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;gDACA;AAS1B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;6CACH;AAUvB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;qDACK;AAU/B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;oDACI;AAS9B;IADD,QAAQ,EAAE;sDACe;AASxB;IADD,QAAQ,EAAE;yDACkB;AAO3B;IADD,QAAQ,EAAE;sDAC2D;AAQpE;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6DACkB;AA/JzC,cAAc;IAvEnB,aAAa,CAAC;QACb,GAAG,EAAE,kBAAkB;QACvB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,CAAC,aAAa,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,CAAC;QACxE,QAAQ,EAAE,kBAAkB;QAC5B,YAAY,EAAE;YACZ,OAAO;YACP,IAAI;YACJ,aAAa;YACb,kBAAkB;YAClB,yBAAyB;YACzB,uBAAuB;YACvB,QAAQ;YACR,iBAAiB;YACjB,YAAY;YACZ,mBAAmB;YACnB,SAAS;YACT,UAAU;YACV,UAAU;SACX;KACF,CAAC;IAEF;;;;OAIG;;IACF,KAAK,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAExC;;;;OAIG;;IACF,KAAK,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAEzC;;;;OAIG;;IACF,KAAK,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAEvC;;;;OAIG;;IACF,KAAK,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAExC;;;;OAIG;;IACF,KAAK,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAEvC;;;;OAIG;;IACF,KAAK,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAEzC;;;;OAIG;;IACF,KAAK,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;GAElC,cAAc,CAoYnB;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-strict.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 { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport {\n isTabPrevious, isTabNext, isEscape, isSpace, isEnter,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport PopupAccessibleRole from \"@ui5/webcomponents/dist/types/PopupAccessibleRole.js\";\nimport Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport BusyIndicator from \"@ui5/webcomponents/dist/BusyIndicator.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.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 type { UDExSearchKeydownEventDetail } from \"./Search.js\";\nimport UDExSearch from \"./Search.js\";\nimport UDExButton from \"./Button.js\";\nimport type { UDExSearchableListBaseEvents } from \"./SearchableListBase.js\";\nimport UDExSearchableListBase from \"./SearchableListBase.js\";\nimport { UDExPopoverPart } from \"./types/SearchableListBase.js\";\nimport { Placement, HorizontalAlign } from \"./types/Dropdown.js\";\nimport { UDExListMode } from \"./types/List.js\";\nimport UDExFilterMenuSelectAll from \"./FilterMenuSelectAll.js\";\nimport UDExListSelectAll from \"./ListSelectAll.js\";\nimport UDExBadge from \"./Badge.js\";\nimport type UDExListItemBase from \"./ListItemBase.js\";\nimport { RESET, SHOW_RESULTS, SELECT_OPTIONS } from \"./generated/i18n/i18n-defaults.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-down-arrow.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\";\nimport getEffectiveScrollbarStyle from \"./utils/getEffectiveScrollbarStyle.js\";\n\ntype UDExFilterMenuResultClickEventDetail = {\n selectedItems: Array<UDExListItemBase>,\n}\n\ntype UDExFilterMenuResetClickEventDetail = {\n restoredItems: Array<UDExListItemBase>,\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-filter-menu</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/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, getEffectiveScrollbarStyle()],\n template: FilterMenuTemplate,\n dependencies: [\n Popover,\n Icon,\n BusyIndicator,\n UDExFilterMenuItem,\n UDExFilterMenuGroupHeader,\n UDExFilterMenuSelectAll,\n UDExList,\n UDExListSelectAll,\n UDExListItem,\n UDExListGroupHeader,\n UDExBadge,\n UDExSearch,\n UDExButton,\n ],\n})\n\n/**\n * Fired event when the user click on a reset button on the footer.\n *\n * @public\n */\n@event(\"reset-click\", { bubbles: true })\n\n/**\n * Fired event when the user click on a result button on the footer.\n *\n * @public\n */\n@event(\"result-click\", { bubbles: true })\n\n/**\n * Fired event when the user click on Select All header item.\n *\n * @public\n */\n@event(\"select-all\", { bubbles: true })\n\n/**\n * Fired before the dropdown pane is opened.\n *\n * @public\n */\n@event(\"before-open\", { bubbles: true })\n\n/**\n * Fired after the dropdown pane is opened.\n *\n * @public\n */\n@event(\"after-open\", { bubbles: true })\n\n/**\n * Fired before the dropdown pane is closed.\n *\n * @public\n */\n@event(\"before-close\", { bubbles: true })\n\n/**\n * Fired after the dropdown pane is closed.\n *\n * @public\n */\n@event(\"after-close\", { bubbles: true })\n\nclass UDExFilterMenu extends UDExSearchableListBase {\n eventDetails!: {\n \"result-click\": UDExFilterMenuResultClickEventDetail,\n \"reset-click\": UDExFilterMenuResetClickEventDetail,\n \"before-open\": void,\n \"after-open\": void,\n \"before-close\": void,\n \"after-close\": void,\n } & UDExSearchableListBaseEvents;\n /**\n * Determines the value of the badge.\n *\n * @public\n */\n @property({ type: Number })\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 * Determines on which side the component is placed at.\n *\n * @default \"Bottom\"\n * @public\n */\n @property()\n placement: `${Placement}` = Placement.Bottom;\n\n /**\n * Determines the horizontal alignment of the component.\n *\n * @default \"Left\"\n * @public\n */\n @property()\n horizontalAlign: `${HorizontalAlign}` = HorizontalAlign.Start;\n\n /**\n * Defines the mode of the component.\n *\n * @default \"SingleSelect\"\n * @public\n */\n @property()\n mode: `${UDExListMode}` = UDExListMode.SingleSelect;\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 = false;\n\n /**\n * Defines whether the dropdown is open or not.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _open: boolean = false;\n\n /**\n * Hides the result button in the footer.\n *\n * @type {boolean}\n * @default false\n * @public\n */\n @property({ type: Boolean })\n hideResultBtn: boolean = false;\n\n /**\n * Hides the reset button in the footer.\n *\n * @type {boolean}\n * @default false\n * @public\n */\n @property({ type: Boolean })\n hideResetBtn: boolean = false;\n\n /**\n * Defines the accessible ARIA name of the component.\n *\n * @default undefined\n * @public\n */\n @property()\n accessibleName?: string;\n\n /**\n * Defines id (or many ids) of the elements that contain the ARIA name of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n accessibleNameRef!: string;\n /**\n * Allows setting a custom role.\n * @default \"None\"\n * @public\n */\n @property()\n accessibleRole: `${PopupAccessibleRole}` = PopupAccessibleRole.None;\n\n /**\n * Allows setting a custom role for dropdown trigger.\n * @default \"combobox\"\n * @public\n */\n @property({ type: String })\n triggerAccessibleRole: string = \"combobox\";\n\n _trigger!: UDExButton;\n _search!: UDExSearch;\n _popover!: Popover;\n _breakpointSizeXS = 640;\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n onBeforeRendering() {\n super.onBeforeRendering();\n }\n\n onAfterRendering() {\n this._search = this.getSearch();\n this._popover = this.getPopover();\n this._trigger = this.getTriggerButton();\n }\n\n handleSelectAll(e:CustomEvent): void {\n this.onFilterSelectAllHeaderPress(e);\n this.fireDecoratorEvent(\"select-all\");\n }\n\n handleItemPress(e:CustomEvent): void {\n this.onItemPress(e);\n\n if (this.modeSingleSelect) {\n this.onDropdownClose();\n }\n }\n\n handleHeaderPress(e:CustomEvent): void {\n this.onHeaderPress(e);\n }\n\n handleValueSearch(e:CustomEvent): void {\n this.onSearch(e);\n }\n\n handleSubmitSearch(): void {\n this.onDropdownClose();\n this.onSubmitSearch();\n }\n\n handleResetSearch(): void {\n this.onResetSearch();\n }\n\n handleReset(): void {\n this.fireDecoratorEvent(\"reset-click\", {\n restoredItems: this.selectedItems,\n });\n this.onReset();\n }\n\n handleResult(): void {\n if (!this.disabledButtons) {\n this._popover.open = false;\n this.fireDecoratorEvent(\"result-click\", {\n selectedItems: this.selectedItems,\n });\n }\n }\n\n handleKeyDownList(e: KeyboardEvent): void {\n const isTabNextPress = isTabNext(e) && !this.hasFooterButtons;\n const isTabPrevPress = isTabPrevious(e) && !this._search;\n const target = e.target as HTMLElement;\n const isSearchResetTrigger = target === this._search;\n if ((isTabNextPress && (!isSearchResetTrigger || this.isListEmpty)) || isTabPrevPress) {\n this.onDropdownClose(e);\n }\n }\n\n handleKeyDownSearch(keyEvent: CustomEvent<UDExSearchKeydownEventDetail>): void {\n const { detail: { e } } = keyEvent;\n if (isTabPrevious(e) || isEscape(e)) {\n this.onDropdownClose(e);\n }\n }\n\n handleKeyDownResultBtn(e: KeyboardEvent): void {\n e.stopPropagation();\n if (isTabNext(e) && !this.hasResetBtn) {\n this.onDropdownClose();\n }\n }\n\n handleKeyDownResetBtn(e: KeyboardEvent): void {\n e.stopPropagation();\n if (isTabNext(e)) {\n this.onDropdownClose();\n }\n }\n\n handleTriggerClick(): void {\n this.toggleDropdown();\n }\n\n handleTriggerKeydown(e: KeyboardEvent): void {\n if (isSpace(e) || isEnter(e)) {\n e.preventDefault();\n this.toggleDropdown();\n }\n }\n\n toggleDropdown(): void {\n this._open = !this._open;\n\n if (this._open) {\n this._trigger.classList.add(\"udex-filter-menu__trigger-active\");\n this._popover.opener = this._trigger;\n this._popover.open = true;\n } else {\n this.onDropdownClose();\n }\n }\n\n onDropdownClose(e?: KeyboardEvent): void {\n if (this._popover.open) {\n if (e && (isTabPrevious(e) || isEscape(e))) {\n e.preventDefault();\n this._popover.open = false;\n } else {\n this._popover.open = false;\n }\n }\n }\n\n _dropdownBeforeOpen(): void {\n if (this.preventPageScroll) {\n this._managePopupListeners(UDExPopoverPart.Header, \"addEventListener\");\n this._managePopupListeners(UDExPopoverPart.Footer, \"addEventListener\");\n }\n\n if (this.height) {\n this._setContentHeight();\n }\n\n this.fireDecoratorEvent(\"before-open\");\n }\n\n _dropdownAfterOpen(): void {\n const popoverLeftOffset = +this._popover.style.left.split(\"px\")[0];\n if (this._popover.offsetWidth + popoverLeftOffset < this._breakpointSizeXS) {\n this.style.setProperty(\"--udex-filter-menu-popover-left-offset\", `${this._popover.style.left}`);\n }\n this.fireDecoratorEvent(\"after-open\");\n }\n\n _dropdownBeforeClose(): void {\n this.fireDecoratorEvent(\"before-close\");\n }\n\n _dropdownAfterClose(): void {\n if (this.preventPageScroll) {\n this._managePopupListeners(UDExPopoverPart.Header, \"removeEventListener\");\n this._managePopupListeners(UDExPopoverPart.Footer, \"removeEventListener\");\n }\n\n this._open = false;\n this._trigger.classList.remove(\"udex-filter-menu__trigger-active\");\n this.fireDecoratorEvent(\"after-close\");\n }\n\n get disableAllowTargetOverlap(): boolean {\n return !this.disableTargetOverlap;\n }\n\n get hasFilterNamePrefix(): boolean {\n return !!this.filterNamePrefix?.length;\n }\n\n get getResultLabelText(): string {\n return this.resultBtnLabel !== undefined && this.resultBtnLabel.length > 0 && this.resultBtnLabel ? this.resultBtnLabel : UDExFilterMenu.i18nBundle.getText(SHOW_RESULTS);\n }\n\n get getResetLabelText(): string {\n return this.resetBtnLabel !== undefined && this.resetBtnLabel.length > 0 ? this.resetBtnLabel : UDExFilterMenu.i18nBundle.getText(RESET);\n }\n\n get disabledButtons(): boolean {\n return !this.selectedItems.length && !this.selectAll;\n }\n\n get _iconAccessibleNameText(): string {\n return UDExFilterMenu.i18nBundle.getText(SELECT_OPTIONS);\n }\n\n get triggerButtonAccessibleName(): string {\n return this.accessibleName || 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.disabledButtons;\n }\n\n get hasResultBtn(): boolean {\n return !this.hideResultBtn && !this.disabledButtons;\n }\n\n get hasResetBtn(): boolean {\n return !this.hideResetBtn;\n }\n\n getTriggerButton(): UDExButton {\n return this.shadowRoot!.querySelector<UDExButton>(\"#filterMenuTrigger\")!;\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-strict.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 { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport {\n isTabPrevious, isTabNext, isEscape, isSpace, isEnter,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport PopupAccessibleRole from \"@ui5/webcomponents/dist/types/PopupAccessibleRole.js\";\nimport Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport BusyIndicator from \"@ui5/webcomponents/dist/BusyIndicator.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.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 type { UDExSearchKeydownEventDetail } from \"./Search.js\";\nimport UDExSearch from \"./Search.js\";\nimport UDExButton from \"./Button.js\";\nimport type { UDExSearchableListBaseEvents } from \"./SearchableListBase.js\";\nimport UDExSearchableListBase from \"./SearchableListBase.js\";\nimport { UDExPopoverPart } from \"./types/SearchableListBase.js\";\nimport { Placement, HorizontalAlign } from \"./types/Dropdown.js\";\nimport { UDExListMode } from \"./types/List.js\";\nimport UDExFilterMenuSelectAll from \"./FilterMenuSelectAll.js\";\nimport UDExListSelectAll from \"./ListSelectAll.js\";\nimport UDExBadge from \"./Badge.js\";\nimport type UDExListItemBase from \"./ListItemBase.js\";\nimport { RESET, SHOW_RESULTS, SELECT_OPTIONS } from \"./generated/i18n/i18n-defaults.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-down-arrow.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\";\nimport getEffectiveScrollbarStyle from \"./utils/getEffectiveScrollbarStyle.js\";\nimport type UDExListGroupHeaderBase from \"./ListGroupHeaderBase.js\";\n\ntype UDExFilterMenuResultClickEventDetail = {\n selectedItems: Array<UDExListItemBase>,\n}\n\ntype UDExFilterMenuResetClickEventDetail = {\n restoredItems: Array<UDExListItemBase>,\n}\n\ntype initialItemState = {\n id: string,\n selected: boolean,\n indeterminate?: boolean,\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-filter-menu</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/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, getEffectiveScrollbarStyle()],\n template: FilterMenuTemplate,\n dependencies: [\n Popover,\n Icon,\n BusyIndicator,\n UDExFilterMenuItem,\n UDExFilterMenuGroupHeader,\n UDExFilterMenuSelectAll,\n UDExList,\n UDExListSelectAll,\n UDExListItem,\n UDExListGroupHeader,\n UDExBadge,\n UDExSearch,\n UDExButton,\n ],\n})\n\n/**\n * Fired event when the user click on a reset button on the footer.\n *\n * @public\n */\n@event(\"reset-click\", { bubbles: true })\n\n/**\n * Fired event when the user click on a result button on the footer.\n *\n * @public\n */\n@event(\"result-click\", { bubbles: true })\n\n/**\n * Fired event when the user click on Select All header item.\n *\n * @public\n */\n@event(\"select-all\", { bubbles: true })\n\n/**\n * Fired before the dropdown pane is opened.\n *\n * @public\n */\n@event(\"before-open\", { bubbles: true })\n\n/**\n * Fired after the dropdown pane is opened.\n *\n * @public\n */\n@event(\"after-open\", { bubbles: true })\n\n/**\n * Fired before the dropdown pane is closed.\n *\n * @public\n */\n@event(\"before-close\", { bubbles: true })\n\n/**\n * Fired after the dropdown pane is closed.\n *\n * @public\n */\n@event(\"after-close\", { bubbles: true })\n\nclass UDExFilterMenu extends UDExSearchableListBase {\n eventDetails!: {\n \"result-click\": UDExFilterMenuResultClickEventDetail,\n \"reset-click\": UDExFilterMenuResetClickEventDetail,\n \"before-open\": void,\n \"after-open\": void,\n \"before-close\": void,\n \"after-close\": void,\n } & UDExSearchableListBaseEvents;\n /**\n * Determines the value of the badge.\n *\n * @public\n */\n @property({ type: Number })\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 * Determines on which side the component is placed at.\n *\n * @default \"Bottom\"\n * @public\n */\n @property()\n placement: `${Placement}` = Placement.Bottom;\n\n /**\n * Determines the horizontal alignment of the component.\n *\n * @default \"Left\"\n * @public\n */\n @property()\n horizontalAlign: `${HorizontalAlign}` = HorizontalAlign.Start;\n\n /**\n * Defines the mode of the component.\n *\n * @default \"SingleSelect\"\n * @public\n */\n @property()\n mode: `${UDExListMode}` = UDExListMode.SingleSelect;\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 = false;\n\n /**\n * Defines whether the dropdown is open or not.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _open: boolean = false;\n\n /**\n * Hides the result button in the footer.\n *\n * @type {boolean}\n * @default false\n * @public\n */\n @property({ type: Boolean })\n hideResultBtn: boolean = false;\n\n /**\n * Hides the reset button in the footer.\n *\n * @type {boolean}\n * @default false\n * @public\n */\n @property({ type: Boolean })\n hideResetBtn: boolean = false;\n\n /**\n * Defines the accessible ARIA name of the component.\n *\n * @default undefined\n * @public\n */\n @property()\n accessibleName?: string;\n\n /**\n * Defines id (or many ids) of the elements that contain the ARIA name of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n accessibleNameRef!: string;\n /**\n * Allows setting a custom role.\n * @default \"None\"\n * @public\n */\n @property()\n accessibleRole: `${PopupAccessibleRole}` = PopupAccessibleRole.None;\n\n /**\n * Allows setting a custom role for dropdown trigger.\n * @default \"combobox\"\n * @public\n */\n @property({ type: String })\n triggerAccessibleRole: string = \"combobox\";\n\n @property({ type: Boolean })\n _shouldApplyFilter: boolean = false;\n\n @property({ type: Boolean, noAttribute: true })\n _requestRender = false;\n\n _trigger!: UDExButton;\n _search!: UDExSearch;\n _popover!: Popover;\n _breakpointSizeXS = 640;\n _initialState: Array<initialItemState> = [];\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n onBeforeRendering() {\n super.onBeforeRendering();\n }\n\n onAfterRendering() {\n this._search = this.getSearch();\n this._popover = this.getPopover();\n this._trigger = this.getTriggerButton();\n }\n\n handleSelectAll(e:CustomEvent): void {\n this.onFilterSelectAllHeaderPress(e);\n this.fireDecoratorEvent(\"select-all\");\n }\n\n handleItemPress(e:CustomEvent): void {\n this.onItemPress(e);\n\n if (this.modeSingleSelect) {\n this.onDropdownClose();\n }\n }\n\n handleHeaderPress(e:CustomEvent): void {\n this.onHeaderPress(e);\n }\n\n handleValueSearch(e:CustomEvent): void {\n this.onSearch(e);\n }\n\n handleSubmitSearch(): void {\n this.onDropdownClose();\n this.onSubmitSearch();\n }\n\n handleResetSearch(): void {\n this.onResetSearch();\n }\n\n handleReset(): void {\n this.onDropdownClose();\n this.fireDecoratorEvent(\"reset-click\", {\n restoredItems: this.selectedItems,\n });\n this.onReset();\n }\n\n handleResult(): void {\n this._shouldApplyFilter = true;\n this.onDropdownClose();\n this.fireDecoratorEvent(\"result-click\", {\n selectedItems: this.selectedItems,\n });\n }\n\n handleKeyDownList(e: KeyboardEvent): void {\n const isTabNextPress = isTabNext(e) && !this.hasFooterButtons;\n const isTabPrevPress = isTabPrevious(e) && !this._search;\n const target = e.target as HTMLElement;\n const isSearchResetTrigger = target === this._search;\n if ((isTabNextPress && (!isSearchResetTrigger || this.isListEmpty)) || isTabPrevPress) {\n this.onDropdownClose(e);\n }\n }\n\n handleKeyDownSearch(keyEvent: CustomEvent<UDExSearchKeydownEventDetail>): void {\n const { detail: { e } } = keyEvent;\n if (isTabPrevious(e) || isEscape(e)) {\n this.onDropdownClose(e);\n }\n }\n\n handleKeyDownResultBtn(e: KeyboardEvent): void {\n e.stopPropagation();\n if (isTabNext(e) && !this.hasResetBtn) {\n this.onDropdownClose();\n }\n }\n\n handleKeyDownResetBtn(e: KeyboardEvent): void {\n e.stopPropagation();\n if (isTabNext(e)) {\n this.onDropdownClose();\n }\n }\n\n handleTriggerClick(): void {\n this.toggleDropdown();\n }\n\n handleTriggerKeydown(e: KeyboardEvent): void {\n if (isSpace(e) || isEnter(e)) {\n e.preventDefault();\n this.toggleDropdown();\n }\n }\n\n toggleDropdown(): void {\n this._open = !this._open;\n\n if (this._open) {\n this._trigger.classList.add(\"udex-filter-menu__trigger-active\");\n this._popover.opener = this._trigger;\n this._popover.open = true;\n } else {\n this.onDropdownClose();\n }\n }\n\n onDropdownClose(e?: KeyboardEvent): void {\n if (this._popover.open) {\n if (e && (isTabPrevious(e) || isEscape(e))) {\n e.preventDefault();\n this._popover.open = false;\n } else {\n this._popover.open = false;\n }\n }\n }\n\n _dropdownBeforeOpen(): void {\n if (this.preventPageScroll) {\n this._managePopupListeners(UDExPopoverPart.Header, \"addEventListener\");\n this._managePopupListeners(UDExPopoverPart.Footer, \"addEventListener\");\n }\n\n if (this.height) {\n this._setContentHeight();\n }\n\n this._initialState = this._getInitialState(this.items);\n this.fireDecoratorEvent(\"before-open\");\n }\n\n _dropdownAfterOpen(): void {\n const popoverLeftOffset = +this._popover.style.left.split(\"px\")[0];\n if (this._popover.offsetWidth + popoverLeftOffset < this._breakpointSizeXS) {\n this.style.setProperty(\"--udex-filter-menu-popover-left-offset\", `${this._popover.style.left}`);\n }\n this.fireDecoratorEvent(\"after-open\");\n }\n\n _getInitialState(items: Array<UDExListItemBase | UDExListGroupHeaderBase>): Array<initialItemState> {\n return items.flatMap(item => {\n if (item.isGroup) {\n const groupState: initialItemState = {\n id: item._id,\n selected: item.selected,\n indeterminate: item.indeterminate,\n };\n const subItemsState = (item as UDExListGroupHeaderBase).getItems().map(subItem => ({\n id: subItem._id,\n selected: subItem.selected,\n }));\n return [groupState, ...subItemsState];\n }\n return {\n id: item._id,\n selected: item.selected,\n };\n });\n }\n\n _setInitialListState(): void {\n this.getSlottedItems(this.items).forEach((item, index) => {\n const initialState = this._initialState[index];\n if (item._id === initialState?.id) {\n item.selected = initialState.selected;\n if (item.isGroup) {\n item.indeterminate = initialState.indeterminate;\n }\n }\n });\n }\n\n _setInitialState(): void {\n this._setInitialListState();\n this._requestRender = true;\n }\n\n _dropdownBeforeClose(): void {\n this.fireDecoratorEvent(\"before-close\");\n }\n\n _dropdownAfterClose(): void {\n if (this.preventPageScroll) {\n this._managePopupListeners(UDExPopoverPart.Header, \"removeEventListener\");\n this._managePopupListeners(UDExPopoverPart.Footer, \"removeEventListener\");\n }\n\n if (!this._shouldApplyFilter && this.modeMultiSelect && !this.modeSelectAll) {\n this._setInitialState();\n }\n\n this._shouldApplyFilter = false;\n this._open = false;\n this._trigger.classList.remove(\"udex-filter-menu__trigger-active\");\n this.fireDecoratorEvent(\"after-close\");\n }\n\n get disableAllowTargetOverlap(): boolean {\n return !this.disableTargetOverlap;\n }\n\n get hasFilterNamePrefix(): boolean {\n return !!this.filterNamePrefix?.length;\n }\n\n get getResultLabelText(): string {\n return this.resultBtnLabel !== undefined && this.resultBtnLabel.length > 0 && this.resultBtnLabel ? this.resultBtnLabel : UDExFilterMenu.i18nBundle.getText(SHOW_RESULTS);\n }\n\n get getResetLabelText(): string {\n return this.resetBtnLabel !== undefined && this.resetBtnLabel.length > 0 ? this.resetBtnLabel : UDExFilterMenu.i18nBundle.getText(RESET);\n }\n\n get _iconAccessibleNameText(): string {\n return UDExFilterMenu.i18nBundle.getText(SELECT_OPTIONS);\n }\n\n get triggerButtonAccessibleName(): string {\n return this.accessibleName || 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.shadowRoot!.querySelector(\"[udex-button]\");\n }\n\n get hasResetBtn(): boolean {\n return !this.hideResetBtn;\n }\n\n get modeSelectAll(): boolean {\n return !!this.querySelector<UDExFilterMenuSelectAll>(\"[udex-filter-menu-select-all]\");\n }\n\n getTriggerButton(): UDExButton {\n return this.shadowRoot!.querySelector<UDExButton>(\"#filterMenuTrigger\")!;\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
@@ -1,5 +1,6 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
2
  import type { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
3
+ import type { UDExSocialMediaButtonType } from "./types/SocialMediaButtonType.js";
3
4
  import type { UDExTarget } from "./types/common.js";
4
5
  import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
5
6
  import "@ui5/webcomponents-icons/dist/headset.js";
@@ -14,9 +15,11 @@ export type FooterLink = {
14
15
  target: UDExTarget;
15
16
  };
16
17
  export type FooterSocialLink = {
18
+ name?: UDExSocialMediaButtonType;
17
19
  url: string;
18
- iconUrl: string;
19
- target: UDExTarget;
20
+ target?: UDExTarget;
21
+ accessibleName?: string;
22
+ id?: string;
20
23
  };
21
24
  export type FooterContactNumber = {
22
25
  number: string;
@@ -72,14 +75,14 @@ declare class UDExFooter extends UI5Element {
72
75
  * @default ""
73
76
  * @public
74
77
  */
75
- logoTitle: string;
78
+ logoTitle?: string;
76
79
  /**
77
80
  * Defines the Logo URL
78
81
  *
79
82
  * @default ""
80
83
  * @public
81
84
  */
82
- logoUrl: string;
85
+ logoUrl?: string;
83
86
  /**
84
87
  * Defines the optional component href link for the logo.
85
88
  *
@@ -87,6 +90,41 @@ declare class UDExFooter extends UI5Element {
87
90
  * @public
88
91
  */
89
92
  logoLink: string;
93
+ /**
94
+ * Defines the tagline alt text.
95
+ *
96
+ * @default ""
97
+ * @public
98
+ */
99
+ taglineAlt?: string;
100
+ /**
101
+ * Defines the tagline url.
102
+ *
103
+ * @default ""
104
+ * @public
105
+ */
106
+ taglineUrl?: string;
107
+ /**
108
+ * Defines the chinese tagline url.
109
+ *
110
+ * @default ""
111
+ * @public
112
+ */
113
+ chineseTaglineUrl?: string;
114
+ /**
115
+ * Defines the chinese logo url
116
+ *
117
+ * @default ""
118
+ * @public
119
+ */
120
+ chineseLogoUrl?: string;
121
+ /**
122
+ * Defines the optional component href link for the chinese logo.
123
+ *
124
+ * @default ""
125
+ * @public
126
+ */
127
+ chineseLogoLink?: string;
90
128
  /**
91
129
  * List of the Quick links
92
130
  *
@@ -208,7 +246,6 @@ declare class UDExFooter extends UI5Element {
208
246
  onEnterDOM(): void;
209
247
  _handleResize(): void;
210
248
  onBackToTopClick(e: PointerEvent): void;
211
- get parsedRef(): string | undefined;
212
249
  get quickLinksArray(): FooterLink[];
213
250
  get trendingLinksArray(): FooterLink[];
214
251
  get aboutLinksArray(): FooterLink[];
@@ -216,7 +253,6 @@ declare class UDExFooter extends UI5Element {
216
253
  get contactNumbersArray(): FooterContactNumber[];
217
254
  get socialLinksArray(): FooterSocialLink[];
218
255
  get isContactContainerVisible(): boolean;
219
- get socialIconAccessibleName(): string;
220
256
  get phoneNumberAccessibleName(): string;
221
257
  get contactUsAccessibleName(): string;
222
258
  get contactUsAccessibleLabel(): string;
@@ -232,6 +268,14 @@ declare class UDExFooter extends UI5Element {
232
268
  get chineseSecurityNetworkNumber(): string;
233
269
  get isMobile(): boolean;
234
270
  get isChineseLang(): boolean;
271
+ get hasLogo(): boolean;
272
+ get hasLogoLink(): boolean;
273
+ get currentLogoUrl(): string | undefined;
274
+ get logoHref(): string;
275
+ get hasTagline(): boolean;
276
+ get currentTaglineUrl(): string | undefined;
277
+ get taglineClass(): string;
278
+ get logoClass(): string;
235
279
  _onLogoClick(e: PointerEvent): void;
236
280
  _onContactPhoneClick(e: PointerEvent): void;
237
281
  _onContactPhoneLocalNumbersClick(e: PointerEvent): void;
package/dist/Footer.js CHANGED
@@ -19,6 +19,7 @@ import UDExButton from "./Button.js";
19
19
  import UDExAccordion from "./Accordion.js";
20
20
  import UDExLink from "./Link.js";
21
21
  import UDExDivider from "./Divider.js";
22
+ import UDExSocialMediaButton from "./SocialMediaButton.js";
22
23
  import { BreakpointUtils } from "./utils/Breakpoints.js";
23
24
  import parseArrayFromString from "./utils/parseArrayFromString.js";
24
25
  // Template
@@ -26,7 +27,7 @@ import FooterTemplate from "./generated/templates/FooterTemplate.lit.js";
26
27
  // Styles
27
28
  import FooterCss from "./generated/themes/Footer.css.js";
28
29
  import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
29
- import { ABOUT_SAP, CHAT_WITH_US, CONTACT_US, EMAIL, LOCAL_COUNTRY_NAMES, PHONE_NUMBER, QUICK_LINKS, SEE_COMPLETE_LIST, SITE_INFORMATION, SOCIAL_LINK_ICON, TRENDING, COPYRIGHT, PUBLIC_SECURITY_NETWORK_NUMBER, ICP_NUMBER, } from "./generated/i18n/i18n-defaults.js";
30
+ import { ABOUT_SAP, CHAT_WITH_US, CONTACT_US, EMAIL, LOCAL_COUNTRY_NAMES, PHONE_NUMBER, QUICK_LINKS, SEE_COMPLETE_LIST, SITE_INFORMATION, TRENDING, COPYRIGHT, PUBLIC_SECURITY_NETWORK_NUMBER, ICP_NUMBER, } from "./generated/i18n/i18n-defaults.js";
30
31
  import "@ui5/webcomponents-icons/dist/headset.js";
31
32
  import "@ui5/webcomponents-icons/dist/email.js";
32
33
  import "@ui5/webcomponents-icons/dist/back-to-top.js";
@@ -55,20 +56,6 @@ export const chineseICPDefaultLink = "https://beian.miit.gov.cn/";
55
56
  let UDExFooter = UDExFooter_1 = class UDExFooter extends UI5Element {
56
57
  constructor() {
57
58
  super();
58
- /**
59
- * Defines the Logo default title
60
- *
61
- * @default ""
62
- * @public
63
- */
64
- this.logoTitle = "";
65
- /**
66
- * Defines the Logo URL
67
- *
68
- * @default ""
69
- * @public
70
- */
71
- this.logoUrl = "";
72
59
  /**
73
60
  * Defines the optional component href link for the logo.
74
61
  *
@@ -177,9 +164,6 @@ let UDExFooter = UDExFooter_1 = class UDExFooter extends UI5Element {
177
164
  this.fireFooterBaseEvent(e, "back-to-top-click");
178
165
  window.scrollTo(0, 0);
179
166
  }
180
- get parsedRef() {
181
- return (this.logoLink && this.logoLink.length > 0) ? this.logoLink : undefined;
182
- }
183
167
  get quickLinksArray() {
184
168
  return parseArrayFromString(this.quickLinks);
185
169
  }
@@ -201,9 +185,6 @@ let UDExFooter = UDExFooter_1 = class UDExFooter extends UI5Element {
201
185
  get isContactContainerVisible() {
202
186
  return !!this.contactNumbersArray.length || !!this.contactUsLink || !!this.chatWithUsLink;
203
187
  }
204
- get socialIconAccessibleName() {
205
- return ` ${UDExFooter_1.i18nBundle.getText(SOCIAL_LINK_ICON)}`;
206
- }
207
188
  get phoneNumberAccessibleName() {
208
189
  return `${UDExFooter_1.i18nBundle.getText(PHONE_NUMBER)} `;
209
190
  }
@@ -252,6 +233,32 @@ let UDExFooter = UDExFooter_1 = class UDExFooter extends UI5Element {
252
233
  get isChineseLang() {
253
234
  return getLanguage()?.toLowerCase() === "zh_cn";
254
235
  }
236
+ get hasLogo() {
237
+ return !!(this.logoUrl || this.chineseLogoUrl);
238
+ }
239
+ get hasLogoLink() {
240
+ return !!(this.logoLink || this.chineseLogoLink);
241
+ }
242
+ get currentLogoUrl() {
243
+ return this.isChineseLang && this.chineseLogoUrl ? this.chineseLogoUrl : this.logoUrl;
244
+ }
245
+ get logoHref() {
246
+ return this.isChineseLang && this.chineseLogoLink ? this.chineseLogoLink : this.logoLink;
247
+ }
248
+ get hasTagline() {
249
+ return !!(this.taglineUrl || this.chineseTaglineUrl);
250
+ }
251
+ get currentTaglineUrl() {
252
+ return this.isChineseLang && this.chineseTaglineUrl ? this.chineseTaglineUrl : this.taglineUrl;
253
+ }
254
+ get taglineClass() {
255
+ const root = "udex-footer__tagline-image";
256
+ return this.isChineseLang && this.chineseTaglineUrl ? `${root}-chinese` : root;
257
+ }
258
+ get logoClass() {
259
+ const root = "udex-footer__logo-image";
260
+ return this.isChineseLang && this.chineseLogoUrl ? `${root}-chinese` : root;
261
+ }
255
262
  _onLogoClick(e) {
256
263
  this.fireFooterBaseEvent(e, "logo-click");
257
264
  }
@@ -305,6 +312,21 @@ __decorate([
305
312
  __decorate([
306
313
  property({ type: String })
307
314
  ], UDExFooter.prototype, "logoLink", void 0);
315
+ __decorate([
316
+ property({ type: String })
317
+ ], UDExFooter.prototype, "taglineAlt", void 0);
318
+ __decorate([
319
+ property({ type: String })
320
+ ], UDExFooter.prototype, "taglineUrl", void 0);
321
+ __decorate([
322
+ property({ type: String })
323
+ ], UDExFooter.prototype, "chineseTaglineUrl", void 0);
324
+ __decorate([
325
+ property({ type: String })
326
+ ], UDExFooter.prototype, "chineseLogoUrl", void 0);
327
+ __decorate([
328
+ property({ type: String })
329
+ ], UDExFooter.prototype, "chineseLogoLink", void 0);
308
330
  __decorate([
309
331
  property({ type: String })
310
332
  ], UDExFooter.prototype, "quickLinks", void 0);
@@ -366,7 +388,7 @@ UDExFooter = UDExFooter_1 = __decorate([
366
388
  renderer: litRender,
367
389
  styles: [FooterCss],
368
390
  template: FooterTemplate,
369
- dependencies: [UDExAccordion, UDExAccordionItem, Icon, UDExButton, UDExDivider, UDExLink],
391
+ dependencies: [UDExAccordion, UDExAccordionItem, Icon, UDExButton, UDExDivider, UDExLink, UDExSocialMediaButton],
370
392
  })
371
393
  /**
372
394
  * Triggered on click interaction with logo in footer