@sapudex/web-components 0.147.0 → 0.173.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 (492) hide show
  1. package/.eslintignore +1 -0
  2. package/bundle.esm.js +9 -0
  3. package/dist/AvatarGroup.js +0 -6
  4. package/dist/AvatarGroup.js.map +1 -1
  5. package/dist/Badge.d.ts +21 -14
  6. package/dist/Badge.js +20 -26
  7. package/dist/Badge.js.map +1 -1
  8. package/dist/Breadcrumbs.d.ts +23 -21
  9. package/dist/Breadcrumbs.js +58 -40
  10. package/dist/Breadcrumbs.js.map +1 -1
  11. package/dist/BreadcrumbsItem.js +0 -1
  12. package/dist/BreadcrumbsItem.js.map +1 -1
  13. package/dist/Checkbox.js +0 -1
  14. package/dist/Checkbox.js.map +1 -1
  15. package/dist/CountrySelector.d.ts +2 -2
  16. package/dist/CountrySelector.js +20 -12
  17. package/dist/CountrySelector.js.map +1 -1
  18. package/dist/DatePicker.d.ts +2 -2
  19. package/dist/DatePicker.js.map +1 -1
  20. package/dist/Dropdown.js +0 -3
  21. package/dist/Dropdown.js.map +1 -1
  22. package/dist/Footer.d.ts +53 -10
  23. package/dist/Footer.js +41 -11
  24. package/dist/Footer.js.map +1 -1
  25. package/dist/Link.d.ts +2 -5
  26. package/dist/Link.js +4 -8
  27. package/dist/Link.js.map +1 -1
  28. package/dist/List.d.ts +16 -1
  29. package/dist/List.js +154 -100
  30. package/dist/List.js.map +1 -1
  31. package/dist/ListItem.d.ts +1 -0
  32. package/dist/ListItem.js +3 -0
  33. package/dist/ListItem.js.map +1 -1
  34. package/dist/MastheadItem.d.ts +12 -2
  35. package/dist/MastheadItem.js +34 -7
  36. package/dist/MastheadItem.js.map +1 -1
  37. package/dist/MastheadMenu.d.ts +1 -0
  38. package/dist/MastheadMenu.js +13 -4
  39. package/dist/MastheadMenu.js.map +1 -1
  40. package/dist/MastheadMenuItem.d.ts +10 -0
  41. package/dist/MastheadMenuItem.js +24 -3
  42. package/dist/MastheadMenuItem.js.map +1 -1
  43. package/dist/MastheadMobileMenu.js +2 -2
  44. package/dist/MastheadMobileMenu.js.map +1 -1
  45. package/dist/MastheadProfileMenu.js +2 -2
  46. package/dist/MastheadProfileMenu.js.map +1 -1
  47. package/dist/MastheadShell.d.ts +4 -0
  48. package/dist/MastheadShell.js +21 -5
  49. package/dist/MastheadShell.js.map +1 -1
  50. package/dist/Pagination.d.ts +13 -3
  51. package/dist/Pagination.js +90 -57
  52. package/dist/Pagination.js.map +1 -1
  53. package/dist/PhoneNumberField.d.ts +3 -0
  54. package/dist/PhoneNumberField.js +9 -4
  55. package/dist/PhoneNumberField.js.map +1 -1
  56. package/dist/RangeSlider.js +0 -1
  57. package/dist/RangeSlider.js.map +1 -1
  58. package/dist/Search.d.ts +5 -4
  59. package/dist/Search.js +12 -12
  60. package/dist/Search.js.map +1 -1
  61. package/dist/SearchableListBase.d.ts +7 -1
  62. package/dist/SearchableListBase.js +47 -4
  63. package/dist/SearchableListBase.js.map +1 -1
  64. package/dist/SecondaryNavigation.d.ts +2 -2
  65. package/dist/SecondaryNavigation.js +20 -10
  66. package/dist/SecondaryNavigation.js.map +1 -1
  67. package/dist/SecondaryNavigationItem.d.ts +6 -3
  68. package/dist/SecondaryNavigationItem.js +50 -26
  69. package/dist/SecondaryNavigationItem.js.map +1 -1
  70. package/dist/SecondaryNavigationSubItem.d.ts +1 -0
  71. package/dist/SecondaryNavigationSubItem.js +3 -0
  72. package/dist/SecondaryNavigationSubItem.js.map +1 -1
  73. package/dist/SegmentedButton.d.ts +2 -2
  74. package/dist/SegmentedButton.js.map +1 -1
  75. package/dist/SelectBox.js.map +1 -1
  76. package/dist/SideNavigationGroup.js +0 -1
  77. package/dist/SideNavigationGroup.js.map +1 -1
  78. package/dist/SideNavigationItem.js +0 -1
  79. package/dist/SideNavigationItem.js.map +1 -1
  80. package/dist/SideNavigationSubItem.js +0 -1
  81. package/dist/SideNavigationSubItem.js.map +1 -1
  82. package/dist/Slider.js +0 -1
  83. package/dist/Slider.js.map +1 -1
  84. package/dist/TabNavigation.js +2 -2
  85. package/dist/TabNavigation.js.map +1 -1
  86. package/dist/Tag.d.ts +1 -4
  87. package/dist/Tag.js +1 -5
  88. package/dist/Tag.js.map +1 -1
  89. package/dist/Tile.d.ts +1 -1
  90. package/dist/Tile.js +1 -1
  91. package/dist/Tile.js.map +1 -1
  92. package/dist/Toast.d.ts +0 -1
  93. package/dist/Toast.js +4 -3
  94. package/dist/Toast.js.map +1 -1
  95. package/dist/Wizard.js +1 -1
  96. package/dist/Wizard.js.map +1 -1
  97. package/dist/WizardTab.js +0 -1
  98. package/dist/WizardTab.js.map +1 -1
  99. package/dist/assets/{bundle.esm-6e8e301d.js → bundle.esm-c4ffd46a.js} +187 -189
  100. package/dist/assets/messagebundle_ar-bb470511.js +1 -0
  101. package/dist/assets/messagebundle_bg-a533dfab.js +1 -0
  102. package/dist/assets/messagebundle_cs-c70a7f36.js +1 -0
  103. package/dist/assets/messagebundle_da-e292cac5.js +1 -0
  104. package/dist/assets/messagebundle_de-5c108de6.js +1 -0
  105. package/dist/assets/messagebundle_el-44746e0b.js +1 -0
  106. package/dist/assets/messagebundle_en-4997b226.js +1 -0
  107. package/dist/assets/messagebundle_es-c0c1060f.js +1 -0
  108. package/dist/assets/messagebundle_et-a5f15d3b.js +1 -0
  109. package/dist/assets/messagebundle_fi-f4b8eb82.js +1 -0
  110. package/dist/assets/messagebundle_fr-af18ac46.js +1 -0
  111. package/dist/assets/messagebundle_hr-d893e46d.js +1 -0
  112. package/dist/assets/messagebundle_hu-230c58c9.js +1 -0
  113. package/dist/assets/messagebundle_it-5bf1436c.js +1 -0
  114. package/dist/assets/messagebundle_iw-dd60afc4.js +1 -0
  115. package/dist/assets/messagebundle_ko-c450bda3.js +1 -0
  116. package/dist/assets/messagebundle_lt-87ab0529.js +1 -0
  117. package/dist/assets/messagebundle_lv-fc413852.js +1 -0
  118. package/dist/assets/messagebundle_nl-34d7e236.js +1 -0
  119. package/dist/assets/messagebundle_no-f22648fb.js +1 -0
  120. package/dist/assets/messagebundle_pl-10303f09.js +1 -0
  121. package/dist/assets/messagebundle_pt-b7a40c67.js +1 -0
  122. package/dist/assets/messagebundle_ro-94628623.js +1 -0
  123. package/dist/assets/messagebundle_ru-1f6595ba.js +1 -0
  124. package/dist/assets/messagebundle_sk-89eabac1.js +1 -0
  125. package/dist/assets/messagebundle_sl-d56532f1.js +1 -0
  126. package/dist/assets/messagebundle_sr-cf7f3b32.js +1 -0
  127. package/dist/assets/messagebundle_sv-3a3b20d3.js +1 -0
  128. package/dist/assets/messagebundle_tr-33b16d09.js +1 -0
  129. package/dist/assets/messagebundle_uk-82e1f2c1.js +1 -0
  130. package/dist/assets/messagebundle_zh_CN-15ca05aa.js +1 -0
  131. package/dist/assets/messagebundle_zh_TW-ad6445e7.js +1 -0
  132. package/dist/css/themes/Badge.css +1 -1
  133. package/dist/css/themes/BreadcrumbsPopover.css +1 -1
  134. package/dist/css/themes/Button.css +1 -1
  135. package/dist/css/themes/DatePickerPopover.css +1 -1
  136. package/dist/css/themes/FilterMenu.css +1 -1
  137. package/dist/css/themes/Footer.css +1 -1
  138. package/dist/css/themes/MastheadItem.css +1 -1
  139. package/dist/css/themes/MastheadMenu.css +1 -1
  140. package/dist/css/themes/MastheadMenuItem.css +1 -1
  141. package/dist/css/themes/MastheadShell.css +1 -1
  142. package/dist/css/themes/MediaPlayer.css +1 -1
  143. package/dist/css/themes/Modal.css +1 -1
  144. package/dist/css/themes/RatingIndicator.css +1 -1
  145. package/dist/css/themes/ReviewItem.css +1 -1
  146. package/dist/css/themes/Slider.css +1 -1
  147. package/dist/css/themes/TableCell.css +1 -1
  148. package/dist/css/themes/TableCellBase.css +1 -1
  149. package/dist/css/themes/TextArea.css +1 -1
  150. package/dist/custom-elements-internal.json +232 -31
  151. package/dist/custom-elements.json +224 -30
  152. package/dist/features/SearchSuggestionsPopover.d.ts +16 -0
  153. package/dist/features/SearchSuggestionsPopover.js +49 -0
  154. package/dist/features/SearchSuggestionsPopover.js.map +1 -1
  155. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -0
  156. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -0
  157. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -0
  158. package/dist/generated/assets/i18n/messagebundle_da.json +1 -0
  159. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  160. package/dist/generated/assets/i18n/messagebundle_el.json +1 -0
  161. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  162. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  163. package/dist/generated/assets/i18n/messagebundle_et.json +1 -0
  164. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -0
  165. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  166. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -0
  167. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -0
  168. package/dist/generated/assets/i18n/messagebundle_it.json +1 -0
  169. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -0
  170. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -0
  171. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -0
  172. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -0
  173. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -0
  174. package/dist/generated/assets/i18n/messagebundle_no.json +1 -0
  175. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -0
  176. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -0
  177. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -0
  178. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -0
  179. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -0
  180. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -0
  181. package/dist/generated/assets/i18n/messagebundle_sr.json +1 -0
  182. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -0
  183. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -0
  184. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -0
  185. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -0
  186. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -0
  187. package/dist/generated/i18n/i18n-defaults.d.ts +7 -1
  188. package/dist/generated/i18n/i18n-defaults.js +7 -1
  189. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  190. package/dist/generated/json-imports/i18n-static.js +86 -2
  191. package/dist/generated/json-imports/i18n-static.js.map +1 -1
  192. package/dist/generated/json-imports/i18n.js +58 -2
  193. package/dist/generated/json-imports/i18n.js.map +1 -1
  194. package/dist/generated/templates/BadgeTemplate.lit.js +4 -4
  195. package/dist/generated/templates/BadgeTemplate.lit.js.map +1 -1
  196. package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js +3 -3
  197. package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js.map +1 -1
  198. package/dist/generated/templates/CountrySelectorTemplate.lit.js +1 -1
  199. package/dist/generated/templates/CountrySelectorTemplate.lit.js.map +1 -1
  200. package/dist/generated/templates/FooterTemplate.lit.js +12 -11
  201. package/dist/generated/templates/FooterTemplate.lit.js.map +1 -1
  202. package/dist/generated/templates/ListItemTemplate.lit.js +2 -2
  203. package/dist/generated/templates/ListItemTemplate.lit.js.map +1 -1
  204. package/dist/generated/templates/ListTemplate.lit.js +3 -3
  205. package/dist/generated/templates/ListTemplate.lit.js.map +1 -1
  206. package/dist/generated/templates/MastheadItemTemplate.lit.js +17 -16
  207. package/dist/generated/templates/MastheadItemTemplate.lit.js.map +1 -1
  208. package/dist/generated/templates/MastheadMenuItemTemplate.lit.js +15 -14
  209. package/dist/generated/templates/MastheadMenuItemTemplate.lit.js.map +1 -1
  210. package/dist/generated/templates/MastheadMenuTemplate.lit.js +3 -3
  211. package/dist/generated/templates/MastheadMenuTemplate.lit.js.map +1 -1
  212. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js +1 -1
  213. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js.map +1 -1
  214. package/dist/generated/templates/MastheadShellTemplate.lit.js +10 -9
  215. package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
  216. package/dist/generated/templates/PaginationTemplate.lit.js +3 -3
  217. package/dist/generated/templates/PaginationTemplate.lit.js.map +1 -1
  218. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js +1 -1
  219. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js.map +1 -1
  220. package/dist/generated/templates/RatingBarTemplate.lit.js +1 -1
  221. package/dist/generated/templates/RatingBarTemplate.lit.js.map +1 -1
  222. package/dist/generated/templates/ReviewItemTemplate.lit.js +1 -1
  223. package/dist/generated/templates/ReviewItemTemplate.lit.js.map +1 -1
  224. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js +1 -1
  225. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js.map +1 -1
  226. package/dist/generated/templates/SearchableListBaseTemplate.lit.js +2 -2
  227. package/dist/generated/templates/SearchableListBaseTemplate.lit.js.map +1 -1
  228. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js +3 -3
  229. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js.map +1 -1
  230. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js +3 -3
  231. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js.map +1 -1
  232. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +1 -1
  233. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +1 -1
  234. package/dist/generated/templates/StepInputTemplate.lit.js +1 -1
  235. package/dist/generated/templates/StepInputTemplate.lit.js.map +1 -1
  236. package/dist/generated/templates/WizardTemplate.lit.js +1 -1
  237. package/dist/generated/templates/WizardTemplate.lit.js.map +1 -1
  238. package/dist/generated/themes/Badge.css.js +1 -1
  239. package/dist/generated/themes/Badge.css.js.map +1 -1
  240. package/dist/generated/themes/BreadcrumbsPopover.css.js +1 -1
  241. package/dist/generated/themes/BreadcrumbsPopover.css.js.map +1 -1
  242. package/dist/generated/themes/Button.css.js +1 -1
  243. package/dist/generated/themes/Button.css.js.map +1 -1
  244. package/dist/generated/themes/DatePickerPopover.css.js +1 -1
  245. package/dist/generated/themes/DatePickerPopover.css.js.map +1 -1
  246. package/dist/generated/themes/FilterMenu.css.js +1 -1
  247. package/dist/generated/themes/FilterMenu.css.js.map +1 -1
  248. package/dist/generated/themes/Footer.css.js +1 -1
  249. package/dist/generated/themes/Footer.css.js.map +1 -1
  250. package/dist/generated/themes/MastheadItem.css.js +1 -1
  251. package/dist/generated/themes/MastheadItem.css.js.map +1 -1
  252. package/dist/generated/themes/MastheadMenu.css.js +1 -1
  253. package/dist/generated/themes/MastheadMenu.css.js.map +1 -1
  254. package/dist/generated/themes/MastheadMenuItem.css.js +1 -1
  255. package/dist/generated/themes/MastheadMenuItem.css.js.map +1 -1
  256. package/dist/generated/themes/MastheadShell.css.js +1 -1
  257. package/dist/generated/themes/MastheadShell.css.js.map +1 -1
  258. package/dist/generated/themes/MediaPlayer.css.js +1 -1
  259. package/dist/generated/themes/MediaPlayer.css.js.map +1 -1
  260. package/dist/generated/themes/Modal.css.js +1 -1
  261. package/dist/generated/themes/Modal.css.js.map +1 -1
  262. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  263. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  264. package/dist/generated/themes/ReviewItem.css.js +1 -1
  265. package/dist/generated/themes/ReviewItem.css.js.map +1 -1
  266. package/dist/generated/themes/Slider.css.js +1 -1
  267. package/dist/generated/themes/Slider.css.js.map +1 -1
  268. package/dist/generated/themes/TableCell.css.js +1 -1
  269. package/dist/generated/themes/TableCell.css.js.map +1 -1
  270. package/dist/generated/themes/TableCellBase.css.js +1 -1
  271. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  272. package/dist/generated/themes/TextArea.css.js +1 -1
  273. package/dist/generated/themes/TextArea.css.js.map +1 -1
  274. package/dist/i18n/messagebundle.properties +10 -0
  275. package/dist/i18n/messagebundle_ar.properties +1 -0
  276. package/dist/i18n/messagebundle_bg.properties +1 -0
  277. package/dist/i18n/messagebundle_cs.properties +1 -0
  278. package/dist/i18n/messagebundle_da.properties +1 -0
  279. package/dist/i18n/messagebundle_de.properties +1 -0
  280. package/dist/i18n/messagebundle_el.properties +1 -0
  281. package/dist/i18n/messagebundle_en.properties +4 -0
  282. package/dist/i18n/messagebundle_es.properties +1 -0
  283. package/dist/i18n/messagebundle_et.properties +1 -0
  284. package/dist/i18n/messagebundle_fi.properties +1 -0
  285. package/dist/i18n/messagebundle_fr.properties +1 -0
  286. package/dist/i18n/messagebundle_hr.properties +1 -0
  287. package/dist/i18n/messagebundle_hu.properties +1 -0
  288. package/dist/i18n/messagebundle_it.properties +1 -0
  289. package/dist/i18n/messagebundle_iw.properties +2 -0
  290. package/dist/i18n/messagebundle_ko.properties +1 -0
  291. package/dist/i18n/messagebundle_lt.properties +1 -0
  292. package/dist/i18n/messagebundle_lv.properties +1 -0
  293. package/dist/i18n/messagebundle_nl.properties +1 -0
  294. package/dist/i18n/messagebundle_no.properties +1 -0
  295. package/dist/i18n/messagebundle_pl.properties +1 -0
  296. package/dist/i18n/messagebundle_pt.properties +1 -0
  297. package/dist/i18n/messagebundle_pt_BR.properties +1 -0
  298. package/dist/i18n/messagebundle_ro.properties +1 -0
  299. package/dist/i18n/messagebundle_ru.properties +1 -0
  300. package/dist/i18n/messagebundle_sk.properties +1 -0
  301. package/dist/i18n/messagebundle_sl.properties +1 -0
  302. package/dist/i18n/messagebundle_sr.properties +2 -0
  303. package/dist/i18n/messagebundle_sv.properties +1 -0
  304. package/dist/i18n/messagebundle_tr.properties +1 -0
  305. package/dist/i18n/messagebundle_uk.properties +1 -0
  306. package/dist/i18n/messagebundle_zh_CN.properties +4 -0
  307. package/dist/i18n/messagebundle_zh_TW.properties +1 -0
  308. package/dist/types/BadgeDesign.d.ts +15 -0
  309. package/dist/types/BadgeDesign.js +18 -0
  310. package/dist/types/BadgeDesign.js.map +1 -0
  311. package/dist/types/IconPlacement.d.ts +5 -0
  312. package/dist/types/IconPlacement.js +7 -0
  313. package/dist/types/IconPlacement.js.map +1 -0
  314. package/dist/types/List.d.ts +8 -0
  315. package/dist/types/List.js.map +1 -1
  316. package/dist/utils/isLetterKeyPressed.d.ts +2 -0
  317. package/dist/utils/isLetterKeyPressed.js +5 -0
  318. package/dist/utils/isLetterKeyPressed.js.map +1 -0
  319. package/dist/utils/listItemLabelStartsWithKeyFocus.d.ts +3 -0
  320. package/dist/utils/listItemLabelStartsWithKeyFocus.js +55 -0
  321. package/dist/utils/listItemLabelStartsWithKeyFocus.js.map +1 -0
  322. package/dist/utils/listItemLabelUtils.d.ts +7 -0
  323. package/dist/utils/listItemLabelUtils.js +36 -0
  324. package/dist/utils/listItemLabelUtils.js.map +1 -0
  325. package/dist/vscode.html-custom-data.json +63 -26
  326. package/dist/web-types.json +113 -38
  327. package/package.json +1 -1
  328. package/src/AvatarGroup.ts +0 -7
  329. package/src/Badge.hbs +16 -5
  330. package/src/Badge.ts +36 -19
  331. package/src/Breadcrumbs.ts +92 -66
  332. package/src/BreadcrumbsItem.ts +0 -1
  333. package/src/BreadcrumbsPopover.hbs +11 -9
  334. package/src/Checkbox.ts +0 -1
  335. package/src/CountrySelector.hbs +0 -1
  336. package/src/CountrySelector.ts +30 -16
  337. package/src/DatePicker.ts +2 -2
  338. package/src/Dropdown.ts +0 -2
  339. package/src/Footer.hbs +52 -28
  340. package/src/Footer.ts +81 -22
  341. package/src/Link.ts +5 -9
  342. package/src/List.hbs +2 -2
  343. package/src/List.ts +182 -112
  344. package/src/ListItem.hbs +2 -2
  345. package/src/ListItem.ts +4 -0
  346. package/src/MastheadItem.hbs +14 -4
  347. package/src/MastheadItem.ts +42 -9
  348. package/src/MastheadMenu.hbs +4 -4
  349. package/src/MastheadMenu.ts +20 -8
  350. package/src/MastheadMenuItem.hbs +10 -2
  351. package/src/MastheadMenuItem.ts +28 -1
  352. package/src/MastheadMobileMenu.ts +2 -2
  353. package/src/MastheadProfileMenu.hbs +1 -0
  354. package/src/MastheadProfileMenu.ts +3 -2
  355. package/src/MastheadShell.hbs +25 -19
  356. package/src/MastheadShell.ts +25 -5
  357. package/src/Pagination.hbs +3 -2
  358. package/src/Pagination.ts +110 -60
  359. package/src/PhoneNumberField.hbs +3 -3
  360. package/src/PhoneNumberField.ts +16 -8
  361. package/src/RangeSlider.ts +0 -1
  362. package/src/RatingBar.hbs +1 -1
  363. package/src/ReviewItem.hbs +1 -1
  364. package/src/Search.hbs +10 -10
  365. package/src/Search.ts +17 -17
  366. package/src/SearchSuggestions.hbs +1 -0
  367. package/src/SearchableListBase.hbs +3 -1
  368. package/src/SearchableListBase.ts +57 -6
  369. package/src/SecondaryNavigation.hbs +1 -0
  370. package/src/SecondaryNavigation.ts +23 -16
  371. package/src/SecondaryNavigationItem.hbs +10 -7
  372. package/src/SecondaryNavigationItem.ts +58 -28
  373. package/src/SecondaryNavigationSubItem.hbs +3 -0
  374. package/src/SecondaryNavigationSubItem.ts +3 -0
  375. package/src/SegmentedButton.ts +2 -2
  376. package/src/SelectBox.ts +1 -1
  377. package/src/SideNavigationGroup.ts +0 -1
  378. package/src/SideNavigationItem.ts +0 -1
  379. package/src/SideNavigationSubItem.ts +0 -1
  380. package/src/Slider.ts +0 -1
  381. package/src/StepInput.hbs +16 -16
  382. package/src/TabNavigation.ts +2 -2
  383. package/src/Tag.ts +1 -5
  384. package/src/Tile.ts +2 -2
  385. package/src/Toast.ts +4 -3
  386. package/src/Wizard.hbs +1 -0
  387. package/src/Wizard.ts +1 -1
  388. package/src/WizardTab.ts +0 -1
  389. package/src/features/SearchSuggestionsPopover.ts +67 -1
  390. package/src/generated/i18n/i18n-defaults.ts +2 -2
  391. package/src/generated/json-imports/i18n-static.ts +86 -2
  392. package/src/generated/json-imports/i18n.ts +59 -3
  393. package/src/generated/templates/BadgeTemplate.lit.ts +3 -3
  394. package/src/generated/templates/BreadcrumbsPopoverTemplate.lit.ts +3 -3
  395. package/src/generated/templates/CountrySelectorTemplate.lit.ts +1 -1
  396. package/src/generated/templates/FooterTemplate.lit.ts +12 -11
  397. package/src/generated/templates/ListItemTemplate.lit.ts +2 -2
  398. package/src/generated/templates/ListTemplate.lit.ts +3 -3
  399. package/src/generated/templates/MastheadItemTemplate.lit.ts +17 -16
  400. package/src/generated/templates/MastheadMenuItemTemplate.lit.ts +15 -14
  401. package/src/generated/templates/MastheadMenuTemplate.lit.ts +3 -3
  402. package/src/generated/templates/MastheadProfileMenuTemplate.lit.ts +1 -1
  403. package/src/generated/templates/MastheadShellTemplate.lit.ts +10 -9
  404. package/src/generated/templates/PaginationTemplate.lit.ts +3 -3
  405. package/src/generated/templates/PhoneNumberFieldTemplate.lit.ts +1 -1
  406. package/src/generated/templates/RatingBarTemplate.lit.ts +1 -1
  407. package/src/generated/templates/ReviewItemTemplate.lit.ts +1 -1
  408. package/src/generated/templates/SearchSuggestionsTemplate.lit.ts +1 -1
  409. package/src/generated/templates/SearchableListBaseTemplate.lit.ts +2 -2
  410. package/src/generated/templates/SecondaryNavigationItemTemplate.lit.ts +3 -3
  411. package/src/generated/templates/SecondaryNavigationSubItemTemplate.lit.ts +3 -3
  412. package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +1 -1
  413. package/src/generated/templates/StepInputTemplate.lit.ts +1 -1
  414. package/src/generated/templates/WizardTemplate.lit.ts +1 -1
  415. package/src/generated/themes/Badge.css.ts +1 -1
  416. package/src/generated/themes/BreadcrumbsPopover.css.ts +1 -1
  417. package/src/generated/themes/Button.css.ts +1 -1
  418. package/src/generated/themes/DatePickerPopover.css.ts +1 -1
  419. package/src/generated/themes/FilterMenu.css.ts +1 -1
  420. package/src/generated/themes/Footer.css.ts +1 -1
  421. package/src/generated/themes/MastheadItem.css.ts +1 -1
  422. package/src/generated/themes/MastheadMenu.css.ts +1 -1
  423. package/src/generated/themes/MastheadMenuItem.css.ts +1 -1
  424. package/src/generated/themes/MastheadShell.css.ts +1 -1
  425. package/src/generated/themes/MediaPlayer.css.ts +1 -1
  426. package/src/generated/themes/Modal.css.ts +1 -1
  427. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  428. package/src/generated/themes/ReviewItem.css.ts +1 -1
  429. package/src/generated/themes/Slider.css.ts +1 -1
  430. package/src/generated/themes/TableCell.css.ts +1 -1
  431. package/src/generated/themes/TableCellBase.css.ts +1 -1
  432. package/src/generated/themes/TextArea.css.ts +1 -1
  433. package/src/i18n/messagebundle.properties +10 -0
  434. package/src/i18n/messagebundle_ar.properties +1 -0
  435. package/src/i18n/messagebundle_bg.properties +1 -0
  436. package/src/i18n/messagebundle_cs.properties +1 -0
  437. package/src/i18n/messagebundle_da.properties +1 -0
  438. package/src/i18n/messagebundle_de.properties +1 -0
  439. package/src/i18n/messagebundle_el.properties +1 -0
  440. package/src/i18n/messagebundle_en.properties +4 -0
  441. package/src/i18n/messagebundle_es.properties +1 -0
  442. package/src/i18n/messagebundle_et.properties +1 -0
  443. package/src/i18n/messagebundle_fi.properties +1 -0
  444. package/src/i18n/messagebundle_fr.properties +1 -0
  445. package/src/i18n/messagebundle_hr.properties +1 -0
  446. package/src/i18n/messagebundle_hu.properties +1 -0
  447. package/src/i18n/messagebundle_it.properties +1 -0
  448. package/src/i18n/messagebundle_iw.properties +2 -0
  449. package/src/i18n/messagebundle_ko.properties +1 -0
  450. package/src/i18n/messagebundle_lt.properties +1 -0
  451. package/src/i18n/messagebundle_lv.properties +1 -0
  452. package/src/i18n/messagebundle_nl.properties +1 -0
  453. package/src/i18n/messagebundle_no.properties +1 -0
  454. package/src/i18n/messagebundle_pl.properties +1 -0
  455. package/src/i18n/messagebundle_pt.properties +1 -0
  456. package/src/i18n/messagebundle_pt_BR.properties +1 -0
  457. package/src/i18n/messagebundle_ro.properties +1 -0
  458. package/src/i18n/messagebundle_ru.properties +1 -0
  459. package/src/i18n/messagebundle_sk.properties +1 -0
  460. package/src/i18n/messagebundle_sl.properties +1 -0
  461. package/src/i18n/messagebundle_sr.properties +2 -0
  462. package/src/i18n/messagebundle_sv.properties +1 -0
  463. package/src/i18n/messagebundle_tr.properties +1 -0
  464. package/src/i18n/messagebundle_uk.properties +1 -0
  465. package/src/i18n/messagebundle_zh_CN.properties +4 -0
  466. package/src/i18n/messagebundle_zh_TW.properties +1 -0
  467. package/src/themes/Badge.css +48 -52
  468. package/src/themes/BreadcrumbsPopover.css +1 -0
  469. package/src/themes/Button.css +13 -0
  470. package/src/themes/DatePickerPopover.css +9 -0
  471. package/src/themes/FilterMenu.css +6 -6
  472. package/src/themes/Footer.css +22 -3
  473. package/src/themes/MastheadItem.css +4 -0
  474. package/src/themes/MastheadMenu.css +1 -1
  475. package/src/themes/MastheadMenuItem.css +4 -0
  476. package/src/themes/MastheadShell.css +5 -0
  477. package/src/themes/MediaPlayer.css +2 -1
  478. package/src/themes/Modal.css +1 -0
  479. package/src/themes/ReviewItem.css +0 -2
  480. package/src/themes/TableCell.css +0 -2
  481. package/src/themes/TableCellBase.css +1 -0
  482. package/src/themes/TextArea.css +1 -1
  483. package/src/types/BadgeDesign.ts +17 -0
  484. package/src/types/IconPlacement.ts +6 -0
  485. package/src/types/List.ts +9 -0
  486. package/src/utils/isLetterKeyPressed.ts +5 -0
  487. package/src/utils/listItemLabelStartsWithKeyFocus.ts +74 -0
  488. package/src/utils/listItemLabelUtils.ts +50 -0
  489. package/dist/assets/messagebundle_de-8158912e.js +0 -1
  490. package/dist/assets/messagebundle_en-c677773a.js +0 -1
  491. package/dist/assets/messagebundle_es-8dab6565.js +0 -1
  492. package/dist/assets/messagebundle_fr-669aca6d.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Footer.js","sourceRoot":"","sources":["../src/Footer.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport ResizeHandler, { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\n\nimport \"@ui5/webcomponents-icons/dist/headset.js\";\nimport \"@ui5/webcomponents-icons/dist/email.js\";\nimport \"@ui5/webcomponents-icons/dist/back-to-top.js\";\nimport \"@ui5/webcomponents-icons/dist/discussion-2.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-right-arrow.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\n\n// Template\nimport FooterTemplate from \"./generated/templates/FooterTemplate.lit.js\";\n\n// Styles\nimport FooterCss from \"./generated/themes/Footer.css\";\nimport UDExAccordionItem from \"./AccordionItem.js\";\nimport {\n ABOUT_SAP,\n CHAT_WITH_US,\n CONTACT_US,\n EMAIL,\n LOCAL_COUNTRY_NAMES,\n PHONE_NUMBER,\n QUICK_LINKS,\n SEE_COMPLETE_LIST,\n SITE_INFORMATION,\n SOCIAL_LINK_ICON,\n TRENDING,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nconst BreakpointSizeS: number = 979;\n\nexport enum Target {\n _blank = \"_blank\",\n _parent = \"_parent\",\n _self = \"_self\",\n _top = \"_top\",\n}\n\nexport type FooterLink = {\n title: string;\n url: string;\n target: Target;\n};\n\nexport type FooterSocialLink = {\n url: string;\n iconUrl: string;\n target: Target;\n};\n\nexport type FooterContactNumber = {\n number: string;\n country: string;\n};\n\nexport type FooterDetailedClickEvent = {\n originalEvent: PointerEvent,\n name: string;\n id?: string;\n sourceNode: HTMLElement;\n}\n\nexport type FooterBaseEventEvent = {\n originalEvent: PointerEvent,\n}\n\nexport const FooterBaseEvent = {\n detail: {\n originalEvent: { type: PointerEvent },\n },\n};\n\nexport const FooterDetailedEvent = {\n detail: {\n originalEvent: { type: PointerEvent },\n name: { type: String },\n id: { type: String },\n sourceNode: { type: HTMLElement },\n },\n};\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-footer</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/Footer.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-footer\n * @public\n */\n@customElement({\n tag: \"udex-footer\",\n renderer: litRender,\n styles: [FooterCss],\n template: FooterTemplate,\n dependencies: [UDExAccordionItem],\n})\n/**\n * Triggered on click interaction with logo in footer\n * @public\n * @allowPreventDefault\n */\n@event<FooterBaseEventEvent>(\"logo-click\", FooterBaseEvent)\n/**\n * Triggered on click interaction with \"Back to Top\" button\n * @public\n * @allowPreventDefault\n */\n@event<FooterBaseEventEvent>(\"back-to-top-click\", FooterBaseEvent)\n\n/**\n * Triggered on click interaction with phone number link in footer\n * @public\n * @allowPreventDefault\n */\n@event<FooterBaseEventEvent>(\"contact-phone-click\", FooterBaseEvent)\n/**\n * Triggered on click interaction with local country numbers list link\n * @public\n * @allowPreventDefault\n */\n@event<FooterBaseEventEvent>(\"contact-phone-local-numbers-click\", FooterBaseEvent)\n/**\n * Triggered on click interaction with \"Contact us by email\" link\n * @public\n * @allowPreventDefault\n */\n@event<FooterBaseEventEvent>(\"contact-email-click\", FooterBaseEvent)\n/**\n * Triggered on click interaction with \"Contact us by chat\" link\n * @public\n * @allowPreventDefault\n */\n@event<FooterBaseEventEvent>(\"contact-chat-click\", FooterBaseEvent)\n\n/**\n * Triggered on click interaction with a link within \"Quick Links\" category\n * @public\n * @allowPreventDefault\n */\n@event<FooterDetailedClickEvent>(\"quick-links-click\", FooterDetailedEvent)\n/**\n * Triggered on click interaction with a link within \"Trending\" category\n * @public\n * @allowPreventDefault\n */\n@event<FooterDetailedClickEvent>(\"trending-click\", FooterDetailedEvent)\n/**\n * Triggered on click interaction with a link within \"About SAP\" category\n * @public\n * @allowPreventDefault\n */\n@event<FooterDetailedClickEvent>(\"about-sap-click\", FooterDetailedEvent)\n/**\n * Triggered on click interaction with a link within \"Site Information\" category\n * @public\n * @allowPreventDefault\n */\n@event<FooterDetailedClickEvent>(\"site-information-click\", FooterDetailedEvent)\n\n/**\n * Triggered on click interaction with any of the social media links within footer\n * @public\n * @allowPreventDefault\n */\n@event<FooterDetailedClickEvent>(\"social-media-link-click\", FooterDetailedEvent)\n\nclass UDExFooter extends UI5Element {\n /**\n * Defines the Logo default title\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n logoTitle!: string;\n\n /**\n * Defines the Logo URL\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n logoUrl!: string;\n\n /**\n * Defines the optional component href link for the logo.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n logoLink?: string;\n\n /**\n * List of the Quick links\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n quickLinks!: string;\n\n /**\n * List of the Trending links\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n trendingLinks!: string;\n\n /**\n * List of the About SAP links\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n aboutLinks!: string;\n\n /**\n * List of the Site Information links\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n siteInformationLinks!: string;\n\n /**\n * List of the contact numbers\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n contactNumbersList!: string;\n\n /**\n * Defines the local country numbers link's href\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n localCountryNumbersLink!: string;\n\n /**\n * Defines the Contact us link's href\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n contactUsLink!: string;\n\n /**\n * Defines the Chat with us link's href\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n chatWithUsLink!: string;\n\n /**\n * List of the Social links and their icons\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n socialLinks!: string;\n\n /**\n * Alt for Logo\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n logoAlt!: string;\n\n /**\n * Defines an aria label for the logo link\n *\n * @public\n */\n @property({ type: String })\n logoAriaLabel!: string;\n\n /**\n * Defines should render the mobile navigation.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _shouldRenderMobileMenu!: boolean;\n\n static i18nBundle: I18nBundle;\n\n static async onDefine(): Promise<void> {\n UDExFooter.i18nBundle = await getI18nBundle(\"@udex/web-components\");\n }\n\n _handleResizeBound: ResizeObserverCallback;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n ResizeHandler.register(this, this._handleResizeBound);\n }\n\n _handleResize(): void {\n this._shouldRenderMobileMenu = this.isMobile;\n }\n\n onBackToTopClick(e: Event): void {\n this.fireEvent(\"back-to-top-click\", { originalEvent: e }, true);\n\n window.scrollTo(0, 0);\n }\n\n parseArrayFromString<T>(string: string): T[] {\n return string ? JSON.parse(string) as T[] : [];\n }\n\n get parsedRef(): string | undefined {\n return (this.logoLink && this.logoLink.length > 0) ? this.logoLink : undefined;\n }\n\n get quickLinksArray(): FooterLink[] {\n return this.parseArrayFromString<FooterLink>(this.quickLinks);\n }\n\n get trendingLinksArray(): FooterLink[] {\n return this.parseArrayFromString<FooterLink>(this.trendingLinks);\n }\n\n get aboutLinksArray(): FooterLink[] {\n return this.parseArrayFromString<FooterLink>(this.aboutLinks);\n }\n\n get siteInformationLinksArray(): FooterLink[] {\n return this.parseArrayFromString<FooterLink>(this.siteInformationLinks);\n }\n\n get contactNumbersArray(): FooterContactNumber[] {\n return this.parseArrayFromString<FooterContactNumber>(this.contactNumbersList);\n }\n\n get socialLinksArray(): FooterSocialLink[] {\n return this.parseArrayFromString<FooterSocialLink>(this.socialLinks);\n }\n\n get isContactContainerVisible(): boolean {\n return !!this.contactNumbersArray.length || !!this.contactUsLink || !!this.chatWithUsLink;\n }\n\n get socialIconAccessibleName() {\n return ` ${UDExFooter.i18nBundle.getText(SOCIAL_LINK_ICON)}`;\n }\n\n get phoneNumberAccessibleName() {\n return `${UDExFooter.i18nBundle.getText(PHONE_NUMBER)} `;\n }\n\n get contactUsAccessibleName() {\n return UDExFooter.i18nBundle.getText(CONTACT_US);\n }\n\n get contactUsAccessibleLabel() {\n if (this.contactUsLink.includes(\"mailto:\")) {\n return `${this.contactUsAccessibleName} ${UDExFooter.i18nBundle.getText(EMAIL)}`;\n }\n return `${this.contactUsAccessibleName}`;\n }\n\n get chatWithUsAccessibleName() {\n return UDExFooter.i18nBundle.getText(CHAT_WITH_US);\n }\n\n get quickLinksTitle() {\n return UDExFooter.i18nBundle.getText(QUICK_LINKS);\n }\n\n get trendingTitle() {\n return UDExFooter.i18nBundle.getText(TRENDING);\n }\n\n get aboutSapTitle() {\n return UDExFooter.i18nBundle.getText(ABOUT_SAP);\n }\n\n get siteInformationTitle() {\n return UDExFooter.i18nBundle.getText(SITE_INFORMATION);\n }\n\n get completeListTitle() {\n return `${UDExFooter.i18nBundle.getText(SEE_COMPLETE_LIST)} `;\n }\n\n get localCountryTitle() {\n return UDExFooter.i18nBundle.getText(LOCAL_COUNTRY_NAMES);\n }\n\n get isMobile(): boolean {\n return window.innerWidth <= BreakpointSizeS;\n }\n\n _onLogoClick(e: Event): void {\n this.fireFooterBaseEvent(e, \"logo-click\");\n }\n\n _onContactPhoneClick(e: Event): void {\n this.fireFooterBaseEvent(e, \"contact-phone-click\");\n }\n _onContactPhoneLocalNumbersClick(e: Event): void {\n this.fireFooterBaseEvent(e, \"contact-phone-local-numbers-click\");\n }\n _onContactEmailClick(e: Event): void {\n this.fireFooterBaseEvent(e, \"contact-email-click\");\n }\n _onContactChatClick(e: Event): void {\n this.fireFooterBaseEvent(e, \"contact-chat-click\");\n }\n\n _onQuickLinksClick(e: Event): void {\n this.fireFooterDetailedClickEvent(e, \"quick-links-click\");\n }\n\n _onTrendingClick(e: Event): void {\n this.fireFooterDetailedClickEvent(e, \"trending-click\");\n }\n\n _onAboutSapClick(e: Event): void {\n this.fireFooterDetailedClickEvent(e, \"about-sap-click\");\n }\n\n _onSiteInformationClick(e: Event): void {\n this.fireFooterDetailedClickEvent(e, \"site-information-click\");\n }\n\n _onSocialMediaLinkClick(e: Event): void {\n this.fireFooterDetailedClickEvent(e, \"social-media-link-click\");\n }\n\n fireFooterBaseEvent(e: Event, eventName: string): void {\n this.fireEvent(eventName, { originalEvent: e }, true);\n }\n\n fireFooterDetailedClickEvent(e: Event, eventName: string): void {\n const sourceNode = e.composedPath()[0] as HTMLElement;\n const { innerText, dataset: { id, name } } = sourceNode;\n\n this.fireEvent(eventName, {\n ...(!!id?.length && { id }),\n name: innerText.length ? innerText : name,\n originalEvent: e,\n sourceNode,\n }, true);\n }\n}\n\nUDExFooter.define();\n\nexport default UDExFooter;\n"]}
1
+ {"version":3,"file":"Footer.js","sourceRoot":"","sources":["../src/Footer.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport ResizeHandler, { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\n\nimport \"@ui5/webcomponents-icons/dist/headset.js\";\nimport \"@ui5/webcomponents-icons/dist/email.js\";\nimport \"@ui5/webcomponents-icons/dist/back-to-top.js\";\nimport \"@ui5/webcomponents-icons/dist/discussion-2.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-right-arrow.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getLanguage } from \"@ui5/webcomponents-base/dist/config/Language.js\";\n\n// Template\nimport FooterTemplate from \"./generated/templates/FooterTemplate.lit.js\";\n\n// Styles\nimport FooterCss from \"./generated/themes/Footer.css\";\nimport UDExAccordionItem from \"./AccordionItem.js\";\nimport {\n ABOUT_SAP,\n CHAT_WITH_US,\n CONTACT_US,\n EMAIL,\n LOCAL_COUNTRY_NAMES,\n PHONE_NUMBER,\n QUICK_LINKS,\n SEE_COMPLETE_LIST,\n SITE_INFORMATION,\n SOCIAL_LINK_ICON,\n TRENDING,\n COPYRIGHT,\n PUBLIC_SECURITY_NETWORK_NUMBER,\n ICP_NUMBER,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nconst BreakpointSizeS: number = 979;\nexport const chineseICPDefaultLink = \"https://beian.miit.gov.cn/\";\n\nexport enum Target {\n _blank = \"_blank\",\n _parent = \"_parent\",\n _self = \"_self\",\n _top = \"_top\",\n}\n\nexport type FooterLink = {\n title: string;\n url: string;\n target: Target;\n};\n\nexport type FooterSocialLink = {\n url: string;\n iconUrl: string;\n target: Target;\n};\n\nexport type FooterContactNumber = {\n number: string;\n country: string;\n};\n\nexport type FooterDetailedClickEvent = {\n originalEvent: Event,\n name: string;\n id?: string;\n sourceNode: HTMLElement;\n}\n\nexport type FooterBaseEventEvent = {\n originalEvent: Event,\n}\n\nexport const FooterBaseEvent = {\n detail: {\n originalEvent: { type: Event },\n },\n};\n\nexport const FooterDetailedEvent = {\n detail: {\n originalEvent: { type: Event },\n name: { type: String },\n id: { type: String },\n sourceNode: { type: HTMLElement },\n },\n};\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-footer</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/Footer.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-footer\n * @public\n */\n@customElement({\n languageAware: true,\n tag: \"udex-footer\",\n renderer: litRender,\n styles: [FooterCss],\n template: FooterTemplate,\n dependencies: [UDExAccordionItem],\n})\n/**\n * Triggered on click interaction with logo in footer\n * @public\n * @allowPreventDefault\n */\n@event<FooterBaseEventEvent>(\"logo-click\", FooterBaseEvent)\n/**\n * Triggered on click interaction with \"Back to Top\" button\n * @public\n * @allowPreventDefault\n */\n@event<FooterBaseEventEvent>(\"back-to-top-click\", FooterBaseEvent)\n/**\n * Triggered on click interaction with phone number link in footer\n * @public\n * @allowPreventDefault\n */\n@event<FooterBaseEventEvent>(\"contact-phone-click\", FooterBaseEvent)\n/**\n * Triggered on click interaction with local country numbers list link\n * @public\n * @allowPreventDefault\n */\n@event<FooterBaseEventEvent>(\"contact-phone-local-numbers-click\", FooterBaseEvent)\n/**\n * Triggered on click interaction with \"Contact us by email\" link\n * @public\n * @allowPreventDefault\n */\n@event<FooterBaseEventEvent>(\"contact-email-click\", FooterBaseEvent)\n/**\n * Triggered on click interaction with \"Contact us by chat\" link\n * @public\n * @allowPreventDefault\n */\n@event<FooterBaseEventEvent>(\"contact-chat-click\", FooterBaseEvent)\n/**\n * Triggered on click interaction with a link within \"Quick Links\" category\n * @public\n * @allowPreventDefault\n */\n@event<FooterDetailedClickEvent>(\"quick-links-click\", FooterDetailedEvent)\n/**\n * Triggered on click interaction with a link within \"Trending\" category\n * @public\n * @allowPreventDefault\n */\n@event<FooterDetailedClickEvent>(\"trending-click\", FooterDetailedEvent)\n/**\n * Triggered on click interaction with a link within \"About SAP\" category\n * @public\n * @allowPreventDefault\n */\n@event<FooterDetailedClickEvent>(\"about-sap-click\", FooterDetailedEvent)\n/**\n * Triggered on click interaction with a link within \"Site Information\" category\n * @public\n * @allowPreventDefault\n */\n@event<FooterDetailedClickEvent>(\"site-information-click\", FooterDetailedEvent)\n/**\n * Triggered on click interaction with any of the social media links within footer\n * @public\n * @allowPreventDefault\n */\n@event<FooterDetailedClickEvent>(\"social-media-link-click\", FooterDetailedEvent)\n\nclass UDExFooter extends UI5Element {\n /**\n * Defines the Logo default title\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n logoTitle!: string;\n\n /**\n * Defines the Logo URL\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n logoUrl!: string;\n\n /**\n * Defines the optional component href link for the logo.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n logoLink?: string;\n\n /**\n * List of the Quick links\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n quickLinks!: string;\n\n /**\n * List of the Trending links\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n trendingLinks!: string;\n\n /**\n * List of the About SAP links\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n aboutLinks!: string;\n\n /**\n * List of the Site Information links\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n siteInformationLinks!: string;\n\n /**\n * List of the contact numbers\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n contactNumbersList!: string;\n\n /**\n * Defines the local country numbers link's href\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n localCountryNumbersLink!: string;\n\n /**\n * Defines the Contact us link's href\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n contactUsLink!: string;\n\n /**\n * Defines the Chat with us link's href\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n chatWithUsLink!: string;\n\n /**\n * List of the Social links and their icons\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String, defaultValue: \"[]\" })\n socialLinks!: string;\n\n /**\n * Alt for Logo\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n logoAlt!: string;\n\n /**\n * Defines an aria label for the logo link\n *\n * @public\n */\n @property({ type: String })\n logoAriaLabel!: string;\n\n /**\n * Defines an quick links column title\n *\n * @public\n */\n @property({ type: String })\n quickLinksTitle?: string;\n\n /**\n * Defines a trending column title\n *\n * @public\n */\n @property({ type: String })\n trendingTitle?: string;\n\n /**\n * Defines an \"about Sap\" column title\n *\n * @public\n */\n @property({ type: String })\n aboutSapTitle?: string;\n\n /**\n * Defines a site information column title\n *\n * @public\n */\n @property({ type: String })\n siteInformationTitle?: string;\n\n /**\n * Defines a href for the chinese ICP Number link\n *\n * @public\n */\n @property({ type: String, defaultValue: chineseICPDefaultLink })\n chineseIcpNumberLink!: string;\n\n /**\n * Defines should render the mobile navigation.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _shouldRenderMobileMenu!: boolean;\n\n static i18nBundle: I18nBundle;\n\n static async onDefine(): Promise<void> {\n UDExFooter.i18nBundle = await getI18nBundle(\"@udex/web-components\");\n }\n\n _handleResizeBound: ResizeObserverCallback;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n ResizeHandler.register(this, this._handleResizeBound);\n }\n\n _handleResize(): void {\n this._shouldRenderMobileMenu = this.isMobile;\n }\n\n onBackToTopClick(e: Event): void {\n this.fireEvent(\"back-to-top-click\", { originalEvent: e }, true);\n\n window.scrollTo(0, 0);\n }\n\n parseArrayFromString<T>(string: string): T[] {\n return string ? JSON.parse(string) as T[] : [];\n }\n\n get parsedRef(): string | undefined {\n return (this.logoLink && this.logoLink.length > 0) ? this.logoLink : undefined;\n }\n\n get quickLinksArray(): FooterLink[] {\n return this.parseArrayFromString<FooterLink>(this.quickLinks);\n }\n\n get trendingLinksArray(): FooterLink[] {\n return this.parseArrayFromString<FooterLink>(this.trendingLinks);\n }\n\n get aboutLinksArray(): FooterLink[] {\n return this.parseArrayFromString<FooterLink>(this.aboutLinks);\n }\n\n get siteInformationLinksArray(): FooterLink[] {\n return this.parseArrayFromString<FooterLink>(this.siteInformationLinks);\n }\n\n get contactNumbersArray(): FooterContactNumber[] {\n return this.parseArrayFromString<FooterContactNumber>(this.contactNumbersList);\n }\n\n get socialLinksArray(): FooterSocialLink[] {\n return this.parseArrayFromString<FooterSocialLink>(this.socialLinks);\n }\n\n get isContactContainerVisible(): boolean {\n return !!this.contactNumbersArray.length || !!this.contactUsLink || !!this.chatWithUsLink;\n }\n\n get socialIconAccessibleName(): string {\n return ` ${UDExFooter.i18nBundle.getText(SOCIAL_LINK_ICON)}`;\n }\n\n get phoneNumberAccessibleName(): string {\n return `${UDExFooter.i18nBundle.getText(PHONE_NUMBER)} `;\n }\n\n get contactUsAccessibleName(): string {\n return UDExFooter.i18nBundle.getText(CONTACT_US);\n }\n\n get contactUsAccessibleLabel(): string {\n if (this.contactUsLink.includes(\"mailto:\")) {\n return `${this.contactUsAccessibleName} ${UDExFooter.i18nBundle.getText(EMAIL)}`;\n }\n return `${this.contactUsAccessibleName}`;\n }\n\n get chatWithUsAccessibleName(): string {\n return UDExFooter.i18nBundle.getText(CHAT_WITH_US);\n }\n\n get _quickLinksTitle() {\n return this.quickLinksTitle || UDExFooter.i18nBundle.getText(QUICK_LINKS);\n }\n\n get _trendingTitle() {\n return this.trendingTitle || UDExFooter.i18nBundle.getText(TRENDING);\n }\n\n get _aboutSapTitle() {\n return this.aboutSapTitle || UDExFooter.i18nBundle.getText(ABOUT_SAP);\n }\n\n get _siteInformationTitle() {\n return this.siteInformationTitle || UDExFooter.i18nBundle.getText(SITE_INFORMATION);\n }\n\n get completeListTitle(): string {\n return `${UDExFooter.i18nBundle.getText(SEE_COMPLETE_LIST)} `;\n }\n\n get localCountryTitle(): string {\n return UDExFooter.i18nBundle.getText(LOCAL_COUNTRY_NAMES);\n }\n\n get copyrightText(): string {\n return UDExFooter.i18nBundle.getText(COPYRIGHT, new Date().getFullYear());\n }\n\n get chineseICPNumber(): string {\n return `${UDExFooter.i18nBundle.getText(ICP_NUMBER)} `;\n }\n\n get chineseSecurityNetworkNumber(): string {\n return UDExFooter.i18nBundle.getText(PUBLIC_SECURITY_NETWORK_NUMBER);\n }\n\n get isMobile(): boolean {\n return window.innerWidth <= BreakpointSizeS;\n }\n\n get isChineseLang(): boolean {\n return getLanguage()?.toLowerCase() === \"zh_cn\";\n }\n\n _onLogoClick(e: Event): void {\n this.fireFooterBaseEvent(e, \"logo-click\");\n }\n\n _onContactPhoneClick(e: Event): void {\n this.fireFooterBaseEvent(e, \"contact-phone-click\");\n }\n _onContactPhoneLocalNumbersClick(e: Event): void {\n this.fireFooterBaseEvent(e, \"contact-phone-local-numbers-click\");\n }\n _onContactEmailClick(e: Event): void {\n this.fireFooterBaseEvent(e, \"contact-email-click\");\n }\n _onContactChatClick(e: Event): void {\n this.fireFooterBaseEvent(e, \"contact-chat-click\");\n }\n\n _onQuickLinksClick(e: Event): void {\n this.fireFooterDetailedClickEvent(e, \"quick-links-click\");\n }\n\n _onTrendingClick(e: Event): void {\n this.fireFooterDetailedClickEvent(e, \"trending-click\");\n }\n\n _onAboutSapClick(e: Event): void {\n this.fireFooterDetailedClickEvent(e, \"about-sap-click\");\n }\n\n _onSiteInformationClick(e: Event): void {\n this.fireFooterDetailedClickEvent(e, \"site-information-click\");\n }\n\n _onSocialMediaLinkClick(e: Event): void {\n this.fireFooterDetailedClickEvent(e, \"social-media-link-click\");\n }\n\n fireFooterBaseEvent(e: Event, eventName: string): void {\n this.fireEvent(eventName, { originalEvent: e }, true);\n }\n\n fireFooterDetailedClickEvent(e: Event, eventName: string): void {\n const sourceNode = e.composedPath()[0] as HTMLElement;\n const { innerText, dataset: { id, name } } = sourceNode;\n\n this.fireEvent(eventName, {\n ...(!!id?.length && { id }),\n name: innerText.length ? innerText : name,\n originalEvent: e,\n sourceNode,\n }, true);\n }\n}\n\nUDExFooter.define();\n\nexport default UDExFooter;\n"]}
package/dist/Link.d.ts CHANGED
@@ -1,8 +1,5 @@
1
1
  import Link from "@ui5/webcomponents/dist/Link.js";
2
- export declare enum IconPlacement {
3
- start = "start",
4
- end = "end"
5
- }
2
+ import IconPlacement from "./types/IconPlacement.js";
6
3
  /**
7
4
  * @class
8
5
  *
@@ -33,7 +30,7 @@ declare class UDExLink extends Link {
33
30
  * Used as the label for background image.
34
31
  *
35
32
  * @public
36
- * @default "end"
33
+ * @default "End"
37
34
  */
38
35
  iconPlacement?: `${IconPlacement}`;
39
36
  get startIcon(): boolean | "" | undefined;
package/dist/Link.js CHANGED
@@ -12,11 +12,7 @@ import linkCss from "@ui5/webcomponents/dist/generated/themes/Link.css.js";
12
12
  import LinkTemplate from "./generated/templates/LinkTemplate.lit.js";
13
13
  // Styles
14
14
  import LinkCss from "./generated/themes/Link.css.js";
15
- export var IconPlacement;
16
- (function (IconPlacement) {
17
- IconPlacement["start"] = "start";
18
- IconPlacement["end"] = "end";
19
- })(IconPlacement || (IconPlacement = {}));
15
+ import IconPlacement from "./types/IconPlacement.js";
20
16
  /**
21
17
  * @class
22
18
  *
@@ -38,10 +34,10 @@ export var IconPlacement;
38
34
  */
39
35
  let UDExLink = class UDExLink extends Link {
40
36
  get startIcon() {
41
- return this.icon && this.iconPlacement === IconPlacement.start;
37
+ return this.icon && this.iconPlacement === IconPlacement.Start;
42
38
  }
43
39
  get endIcon() {
44
- return this.icon && this.iconPlacement === IconPlacement.end;
40
+ return this.icon && this.iconPlacement === IconPlacement.End;
45
41
  }
46
42
  get linkClass() {
47
43
  return this.icon ? "udex-link udex-link--with-icon" : "udex-link";
@@ -51,7 +47,7 @@ __decorate([
51
47
  property({ type: String })
52
48
  ], UDExLink.prototype, "icon", void 0);
53
49
  __decorate([
54
- property({ type: IconPlacement, defaultValue: IconPlacement.end })
50
+ property({ type: IconPlacement, defaultValue: IconPlacement.End })
55
51
  ], UDExLink.prototype, "iconPlacement", void 0);
56
52
  UDExLink = __decorate([
57
53
  customElement({
package/dist/Link.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Link.js","sourceRoot":"","sources":["../src/Link.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,IAAI,MAAM,iCAAiC,CAAC;AAEnD,OAAO,OAAO,MAAM,sDAAsD,CAAC;AAC3E,OAAO,YAAY,MAAM,2CAA2C,CAAC;AAErE,SAAS;AACT,OAAO,OAAO,MAAM,gCAAgC,CAAC;AAErD,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,gCAAe,CAAA;IACf,4BAAW,CAAA;AACb,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AAQH,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,IAAI;IAkBvB,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,KAAK,aAAa,CAAC,KAAK,CAAC;IACjE,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,KAAK,aAAa,CAAC,GAAG,CAAC;IAC/D,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,WAAW,CAAC;IACpE,CAAC;CACJ,CAAA;AAtBK;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;sCACX;AASd;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC;+CAC9B;AAhBnC,QAAQ;IAPb,aAAa,CAAC;QACb,GAAG,EAAE,WAAW;QAChB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;QAC1B,QAAQ,EAAE,YAAY;KACvB,CAAC;GAEI,QAAQ,CA6Bb;AAED,QAAQ,CAAC,MAAM,EAAE,CAAC;AAElB,eAAe,QAAQ,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport Link from \"@ui5/webcomponents/dist/Link.js\";\n\nimport linkCss from \"@ui5/webcomponents/dist/generated/themes/Link.css.js\";\nimport LinkTemplate from \"./generated/templates/LinkTemplate.lit.js\";\n\n// Styles\nimport LinkCss from \"./generated/themes/Link.css.js\";\n\nexport enum IconPlacement {\n start = \"start\",\n end = \"end\"\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-link</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/Link.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends Link\n * @tagname udex-link\n * @public\n */\n@customElement({\n tag: \"udex-link\",\n renderer: litRender,\n styles: [linkCss, LinkCss],\n template: LinkTemplate,\n})\n\nclass UDExLink extends Link {\n /**\n * Used as the label for background image.\n *\n * @public\n */\n @property({ type: String })\n icon?: string;\n\n /**\n * Used as the label for background image.\n *\n * @public\n * @default \"end\"\n */\n @property({ type: IconPlacement, defaultValue: IconPlacement.end })\n iconPlacement?: `${IconPlacement}`;\n\n get startIcon() {\n return this.icon && this.iconPlacement === IconPlacement.start;\n }\n\n get endIcon() {\n return this.icon && this.iconPlacement === IconPlacement.end;\n }\n\n get linkClass() {\n return this.icon ? \"udex-link udex-link--with-icon\" : \"udex-link\";\n }\n}\n\nUDExLink.define();\n\nexport default UDExLink;\n"]}
1
+ {"version":3,"file":"Link.js","sourceRoot":"","sources":["../src/Link.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,IAAI,MAAM,iCAAiC,CAAC;AAEnD,OAAO,OAAO,MAAM,sDAAsD,CAAC;AAC3E,OAAO,YAAY,MAAM,2CAA2C,CAAC;AAErE,SAAS;AACT,OAAO,OAAO,MAAM,gCAAgC,CAAC;AACrD,OAAO,aAAa,MAAM,0BAA0B,CAAC;AAErD;;;;;;;;;;;;;;;;;;GAkBG;AAQH,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,IAAI;IAkBvB,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,KAAK,aAAa,CAAC,KAAK,CAAC;IACjE,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,KAAK,aAAa,CAAC,GAAG,CAAC;IAC/D,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,WAAW,CAAC;IACpE,CAAC;CACJ,CAAA;AAtBK;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;sCACX;AASd;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC;+CAC9B;AAhBnC,QAAQ;IAPb,aAAa,CAAC;QACb,GAAG,EAAE,WAAW;QAChB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;QAC1B,QAAQ,EAAE,YAAY;KACvB,CAAC;GAEI,QAAQ,CA6Bb;AAED,QAAQ,CAAC,MAAM,EAAE,CAAC;AAElB,eAAe,QAAQ,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport Link from \"@ui5/webcomponents/dist/Link.js\";\n\nimport linkCss from \"@ui5/webcomponents/dist/generated/themes/Link.css.js\";\nimport LinkTemplate from \"./generated/templates/LinkTemplate.lit.js\";\n\n// Styles\nimport LinkCss from \"./generated/themes/Link.css.js\";\nimport IconPlacement from \"./types/IconPlacement.js\";\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-link</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/Link.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends Link\n * @tagname udex-link\n * @public\n */\n@customElement({\n tag: \"udex-link\",\n renderer: litRender,\n styles: [linkCss, LinkCss],\n template: LinkTemplate,\n})\n\nclass UDExLink extends Link {\n /**\n * Used as the label for background image.\n *\n * @public\n */\n @property({ type: String })\n icon?: string;\n\n /**\n * Used as the label for background image.\n *\n * @public\n * @default \"End\"\n */\n @property({ type: IconPlacement, defaultValue: IconPlacement.End })\n iconPlacement?: `${IconPlacement}`;\n\n get startIcon() {\n return this.icon && this.iconPlacement === IconPlacement.Start;\n }\n\n get endIcon() {\n return this.icon && this.iconPlacement === IconPlacement.End;\n }\n\n get linkClass() {\n return this.icon ? \"udex-link udex-link--with-icon\" : \"udex-link\";\n }\n}\n\nUDExLink.define();\n\nexport default UDExLink;\n"]}
package/dist/List.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
2
  import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
3
3
  import UDExListItem from "./ListItem.js";
4
- import { ListStyleType, ListMode } from "./types/List.js";
4
+ import { ListStyleType, ListMode, LetterPressedHandlerObj } from "./types/List.js";
5
5
  import UDExListGroupHeader from "./ListGroupHeader.js";
6
6
  export type UDExListItemBase = UDExListItem & UDExListGroupHeader;
7
7
  /**
@@ -86,7 +86,13 @@ declare class UDExList extends UI5Element {
86
86
  */
87
87
  items: Array<UDExListItemBase>;
88
88
  static i18nBundle: I18nBundle;
89
+ _pressedKey: string;
90
+ _pressedCount: number;
91
+ _lastFoundPosition: number;
92
+ _focusableListItems: Array<UDExListItemBase>;
93
+ _letterKeyHandlerObj: LetterPressedHandlerObj;
89
94
  static onDefine(): Promise<void>;
95
+ resetFocusLetterHandlers(): void;
90
96
  onBeforeRendering(): void;
91
97
  handleItemPress(e: CustomEvent): void;
92
98
  handleKeyDown(e: KeyboardEvent): void;
@@ -95,11 +101,20 @@ declare class UDExList extends UI5Element {
95
101
  handleDownArrow(e: KeyboardEvent): void;
96
102
  handleHomeKey(e: KeyboardEvent): void;
97
103
  handleEndKey(e: KeyboardEvent): void;
104
+ handleLetterKey(e: KeyboardEvent): void;
98
105
  onItemPress(clickedItem: UDExListItemBase): void;
99
106
  revertSelectedItems(items: Array<UDExListItemBase>): void;
107
+ focusSelectedItem(): void;
100
108
  focusHeader(item: UDExListItemBase): void;
101
109
  unsetTabIndexByIndex(items: UDExListItemBase[], index: number): void;
102
110
  setTabIndexByIndex(items: UDExListItemBase[], index: number): void;
111
+ setPressedKey(value: string): void;
112
+ getPressedKey(): string;
113
+ setPressedCount(value: number): void;
114
+ getPressedCount(): number;
115
+ setLastFoundPosition(value: number): void;
116
+ getLastFoundPosition(): number;
117
+ getLetterKeyObjHandler(): LetterPressedHandlerObj;
103
118
  getItems(): Array<UDExListItemBase>;
104
119
  getSelectedItems(): Array<UDExListItemBase>;
105
120
  getCurrentIndex(items: Array<UDExListItemBase>, item: UDExListItemBase): number;
package/dist/List.js CHANGED
@@ -19,6 +19,8 @@ import { ARIA_LABEL_LIST_MULTISELECTABLE, ARIA_LABEL_LIST_SELECTABLE, } from "./
19
19
  import ListTemplate from "./generated/templates/ListTemplate.lit.js";
20
20
  // Styles
21
21
  import ListCss from "./generated/themes/List.css.js";
22
+ import isLetterKey from "./utils/isLetterKeyPressed.js";
23
+ import listItemLabelStartsWithKeyFocus from "./utils/listItemLabelStartsWithKeyFocus.js";
22
24
  /**
23
25
  * @class
24
26
  *
@@ -42,134 +44,151 @@ let UDExList = UDExList_1 = class UDExList extends UI5Element {
42
44
  static async onDefine() {
43
45
  UDExList_1.i18nBundle = await getI18nBundle("@udex/web-components");
44
46
  }
47
+ resetFocusLetterHandlers() {
48
+ this.setPressedCount(0);
49
+ this.setPressedKey("");
50
+ this.setLastFoundPosition(0);
51
+ }
45
52
  onBeforeRendering() {
46
53
  this.prepareListItemsMode();
54
+ this.resetFocusLetterHandlers();
55
+ this._focusableListItems = this.getItemsWithoutHeader();
56
+ this._letterKeyHandlerObj = this.getLetterKeyObjHandler();
47
57
  }
48
58
  handleItemPress(e) {
49
59
  const clickedItem = e.detail.item;
50
60
  this.onItemPress(clickedItem);
51
61
  }
52
62
  handleKeyDown(e) {
53
- this.handleUpArrow(e);
54
- this.handleDownArrow(e);
55
- this.handleHomeKey(e);
56
- this.handleEndKey(e);
57
- this.handleEnterOrSpace(e);
58
- }
59
- handleEnterOrSpace(e) {
63
+ if (isUp(e)) {
64
+ this.handleUpArrow(e);
65
+ }
66
+ if (isDown(e)) {
67
+ this.handleDownArrow(e);
68
+ }
69
+ if (isHome(e)) {
70
+ this.handleHomeKey(e);
71
+ }
72
+ if (isEnd(e)) {
73
+ this.handleEndKey(e);
74
+ }
60
75
  if (isEnter(e) || isSpace(e)) {
61
- e.preventDefault();
62
- const clickedItem = e.target;
63
- this.onItemPress(clickedItem);
76
+ this.handleEnterOrSpace(e);
77
+ }
78
+ if (isLetterKey(e.key)) {
79
+ this.handleLetterKey(e);
64
80
  }
65
81
  }
82
+ handleEnterOrSpace(e) {
83
+ e.preventDefault();
84
+ const clickedItem = e.target;
85
+ this.onItemPress(clickedItem);
86
+ }
66
87
  handleUpArrow(e) {
67
- if (isUp(e)) {
68
- e.preventDefault();
69
- const items = this.getKeyboardNavigationItems();
70
- const currentSelectedIndex = this.getCurrentIndex(items, e.target);
71
- const lastItemIndex = items.length - 1;
72
- const previousSelectIndex = currentSelectedIndex - 1 < 0 ? lastItemIndex : currentSelectedIndex - 1;
73
- const isHeaderItem = items[previousSelectIndex].isGroup;
74
- const nonInteractiveHeader = items[previousSelectIndex].nonInteractive;
75
- if (nonInteractiveHeader && previousSelectIndex === 0) {
76
- this.unsetTabIndexByIndex(items, currentSelectedIndex);
77
- this.setTabIndexByIndex(items, lastItemIndex);
78
- items[lastItemIndex].focus();
79
- return;
80
- }
81
- if (nonInteractiveHeader) {
82
- this.unsetTabIndexByIndex(items, currentSelectedIndex);
83
- this.setTabIndexByIndex(items, previousSelectIndex - 1);
84
- items[previousSelectIndex - 1].focus();
85
- return;
86
- }
87
- if (isHeaderItem) {
88
- this.unsetTabIndexByIndex(items, currentSelectedIndex);
89
- this.setTabIndexByIndex(items, previousSelectIndex);
90
- this.focusHeader(items[previousSelectIndex]);
91
- return;
92
- }
93
- if (this.modeRadioGroup) {
94
- items[currentSelectedIndex].selected = false;
95
- items[previousSelectIndex].selected = true;
96
- }
88
+ e.preventDefault();
89
+ const items = this.getKeyboardNavigationItems();
90
+ const currentSelectedIndex = this.getCurrentIndex(items, e.target);
91
+ const lastItemIndex = items.length - 1;
92
+ const previousSelectIndex = currentSelectedIndex - 1 < 0 ? lastItemIndex : currentSelectedIndex - 1;
93
+ const isHeaderItem = items[previousSelectIndex].isGroup;
94
+ const nonInteractiveHeader = items[previousSelectIndex].nonInteractive;
95
+ if (nonInteractiveHeader && previousSelectIndex === 0) {
96
+ this.unsetTabIndexByIndex(items, currentSelectedIndex);
97
+ this.setTabIndexByIndex(items, lastItemIndex);
98
+ items[lastItemIndex].focus();
99
+ return;
100
+ }
101
+ if (nonInteractiveHeader) {
102
+ this.unsetTabIndexByIndex(items, currentSelectedIndex);
103
+ this.setTabIndexByIndex(items, previousSelectIndex - 1);
104
+ items[previousSelectIndex - 1].focus();
105
+ return;
106
+ }
107
+ if (isHeaderItem) {
97
108
  this.unsetTabIndexByIndex(items, currentSelectedIndex);
98
109
  this.setTabIndexByIndex(items, previousSelectIndex);
99
- items[previousSelectIndex].focus();
110
+ this.focusHeader(items[previousSelectIndex]);
111
+ return;
100
112
  }
113
+ if (this.modeRadioGroup) {
114
+ items[currentSelectedIndex].selected = false;
115
+ items[previousSelectIndex].selected = true;
116
+ }
117
+ this.unsetTabIndexByIndex(items, currentSelectedIndex);
118
+ this.setTabIndexByIndex(items, previousSelectIndex);
119
+ items[previousSelectIndex].focus();
101
120
  }
102
121
  handleDownArrow(e) {
103
- if (isDown(e)) {
104
- e.preventDefault();
105
- const items = this.getKeyboardNavigationItems();
106
- const currentSelectedIndex = this.getCurrentIndex(items, e.target);
107
- const nextSelectIndex = currentSelectedIndex + 1 > items.length - 1 ? 0 : currentSelectedIndex + 1;
108
- const isHeaderItem = items[nextSelectIndex].isGroup;
109
- const nonInteractiveHeader = items[nextSelectIndex].nonInteractive;
110
- if (nonInteractiveHeader) {
111
- this.unsetTabIndexByIndex(items, currentSelectedIndex);
112
- this.setTabIndexByIndex(items, nextSelectIndex + 1);
113
- items[nextSelectIndex + 1].focus();
114
- return;
115
- }
116
- if (isHeaderItem) {
117
- this.unsetTabIndexByIndex(items, currentSelectedIndex);
118
- this.setTabIndexByIndex(items, nextSelectIndex);
119
- this.focusHeader(items[nextSelectIndex]);
120
- return;
121
- }
122
- if (this.modeRadioGroup) {
123
- items[currentSelectedIndex].selected = false;
124
- items[nextSelectIndex].selected = true;
125
- }
122
+ e.preventDefault();
123
+ const items = this.getKeyboardNavigationItems();
124
+ const currentSelectedIndex = this.getCurrentIndex(items, e.target);
125
+ const nextSelectIndex = currentSelectedIndex + 1 > items.length - 1 ? 0 : currentSelectedIndex + 1;
126
+ const isHeaderItem = items[nextSelectIndex].isGroup;
127
+ const nonInteractiveHeader = items[nextSelectIndex].nonInteractive;
128
+ if (nonInteractiveHeader) {
129
+ this.unsetTabIndexByIndex(items, currentSelectedIndex);
130
+ this.setTabIndexByIndex(items, nextSelectIndex + 1);
131
+ items[nextSelectIndex + 1].focus();
132
+ return;
133
+ }
134
+ if (isHeaderItem) {
126
135
  this.unsetTabIndexByIndex(items, currentSelectedIndex);
127
136
  this.setTabIndexByIndex(items, nextSelectIndex);
128
- items[nextSelectIndex].focus();
137
+ this.focusHeader(items[nextSelectIndex]);
138
+ return;
129
139
  }
140
+ if (this.modeRadioGroup) {
141
+ items[currentSelectedIndex].selected = false;
142
+ items[nextSelectIndex].selected = true;
143
+ }
144
+ this.unsetTabIndexByIndex(items, currentSelectedIndex);
145
+ this.setTabIndexByIndex(items, nextSelectIndex);
146
+ items[nextSelectIndex].focus();
130
147
  }
131
148
  handleHomeKey(e) {
132
- if (isHome(e)) {
133
- e.preventDefault();
134
- const items = this.getKeyboardNavigationItems();
135
- const currentSelectedIndex = this.getCurrentIndex(items, e.target);
136
- const firstItem = items[0];
137
- const isHeaderItem = firstItem.isGroup;
138
- const nonInteractiveItem = firstItem.nonInteractive;
139
- if (nonInteractiveItem) {
140
- this.unsetTabIndexByIndex(items, currentSelectedIndex);
141
- this.setTabIndexByIndex(items, 1);
142
- items[1].focus();
143
- return;
144
- }
145
- if (isHeaderItem) {
146
- this.unsetTabIndexByIndex(items, currentSelectedIndex);
147
- this.setTabIndexByIndex(items, 0);
148
- this.focusHeader(items[0]);
149
- return;
150
- }
151
- if (this.modeRadioGroup) {
152
- items[currentSelectedIndex].selected = false;
153
- items[0].selected = true;
154
- }
149
+ e.preventDefault();
150
+ const items = this.getKeyboardNavigationItems();
151
+ const currentSelectedIndex = this.getCurrentIndex(items, e.target);
152
+ const firstItem = items[0];
153
+ const isHeaderItem = firstItem.isGroup;
154
+ const nonInteractiveItem = firstItem.nonInteractive;
155
+ if (nonInteractiveItem) {
156
+ this.unsetTabIndexByIndex(items, currentSelectedIndex);
157
+ this.setTabIndexByIndex(items, 1);
158
+ items[1].focus();
159
+ return;
160
+ }
161
+ if (isHeaderItem) {
155
162
  this.unsetTabIndexByIndex(items, currentSelectedIndex);
156
163
  this.setTabIndexByIndex(items, 0);
157
- items[0].focus();
164
+ this.focusHeader(items[0]);
165
+ return;
166
+ }
167
+ if (this.modeRadioGroup) {
168
+ items[currentSelectedIndex].selected = false;
169
+ items[0].selected = true;
158
170
  }
171
+ this.unsetTabIndexByIndex(items, currentSelectedIndex);
172
+ this.setTabIndexByIndex(items, 0);
173
+ items[0].focus();
159
174
  }
160
175
  handleEndKey(e) {
161
- if (isEnd(e)) {
162
- e.preventDefault();
163
- const items = this.getKeyboardNavigationItems();
164
- const currentSelectedIndex = this.getCurrentIndex(items, e.target);
165
- if (this.modeRadioGroup) {
166
- items[currentSelectedIndex].selected = false;
167
- items[items.length - 1].selected = true;
168
- }
169
- this.unsetTabIndexByIndex(items, currentSelectedIndex);
170
- this.setTabIndexByIndex(items, items.length - 1);
171
- items[items.length - 1].focus();
176
+ e.preventDefault();
177
+ const items = this.getKeyboardNavigationItems();
178
+ const currentSelectedIndex = this.getCurrentIndex(items, e.target);
179
+ if (this.modeRadioGroup) {
180
+ items[currentSelectedIndex].selected = false;
181
+ items[items.length - 1].selected = true;
172
182
  }
183
+ this.unsetTabIndexByIndex(items, currentSelectedIndex);
184
+ this.setTabIndexByIndex(items, items.length - 1);
185
+ items[items.length - 1].focus();
186
+ }
187
+ handleLetterKey(e) {
188
+ const letterKey = e.key;
189
+ e.stopPropagation();
190
+ e.preventDefault();
191
+ listItemLabelStartsWithKeyFocus(letterKey, this._focusableListItems, this._letterKeyHandlerObj);
173
192
  }
174
193
  onItemPress(clickedItem) {
175
194
  if (this.modeSingleSelect && !this.controlled) {
@@ -197,6 +216,13 @@ let UDExList = UDExList_1 = class UDExList extends UI5Element {
197
216
  }
198
217
  });
199
218
  }
219
+ focusSelectedItem() {
220
+ const selectedItemIndex = this.items.findIndex(item => item.selected);
221
+ this.resetTabIndexes();
222
+ if (selectedItemIndex !== -1 && this.modeSingleSelect) {
223
+ this.setTabIndexByIndex(this.items, selectedItemIndex);
224
+ }
225
+ }
200
226
  focusHeader(item) {
201
227
  const header = item.shadowRoot?.querySelector(".udex-list__group-header");
202
228
  header.focus();
@@ -207,6 +233,34 @@ let UDExList = UDExList_1 = class UDExList extends UI5Element {
207
233
  setTabIndexByIndex(items, index) {
208
234
  items[index]._tabIndex = "0";
209
235
  }
236
+ setPressedKey(value) {
237
+ this._pressedKey = value;
238
+ }
239
+ getPressedKey() {
240
+ return this._pressedKey;
241
+ }
242
+ setPressedCount(value) {
243
+ this._pressedCount = value;
244
+ }
245
+ getPressedCount() {
246
+ return this._pressedCount;
247
+ }
248
+ setLastFoundPosition(value) {
249
+ this._lastFoundPosition = value;
250
+ }
251
+ getLastFoundPosition() {
252
+ return this._lastFoundPosition;
253
+ }
254
+ getLetterKeyObjHandler() {
255
+ return {
256
+ getPressedKey: () => this.getPressedKey(),
257
+ setPressedKey: (arg) => this.setPressedKey(arg),
258
+ getPressedCount: () => this.getPressedCount(),
259
+ setPressedCount: (arg) => this.setPressedCount(arg),
260
+ getLastFoundPosition: () => this.getLastFoundPosition(),
261
+ setLastFoundPosition: (arg) => this.setLastFoundPosition(arg),
262
+ };
263
+ }
210
264
  getItems() {
211
265
  return this.getSlottedNodes("items");
212
266
  }