@sapudex/web-components 2.24.0 → 2.25.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 (379) hide show
  1. package/bundle.esm.js +2 -0
  2. package/cypress/downloads/downloads.html +0 -0
  3. package/cypress/specs/EventRibbon.cy.tsx +7 -7
  4. package/cypress/specs/ImageGridTable.cy.tsx +41 -0
  5. package/cypress/specs/ImageGridTableItem.cy.tsx +101 -0
  6. package/cypress/specs/ImageGridTickerItem.cy.tsx +1 -2
  7. package/cypress/specs/MastheadProfileMenu.cy.tsx +16 -0
  8. package/cypress/specs/UploadItem.cy.tsx +14 -5
  9. package/cypress/support/component-imports.instrumented.ts +4 -0
  10. package/cypress/support/component-imports.src.ts +4 -0
  11. package/dist/Accordion.js +3 -2
  12. package/dist/Accordion.js.map +1 -1
  13. package/dist/Avatar.js +4 -3
  14. package/dist/Avatar.js.map +1 -1
  15. package/dist/Breadcrumbs.js +4 -3
  16. package/dist/Breadcrumbs.js.map +1 -1
  17. package/dist/Button.js +3 -2
  18. package/dist/Button.js.map +1 -1
  19. package/dist/Carousel.d.ts +1 -0
  20. package/dist/Carousel.js +6 -4
  21. package/dist/Carousel.js.map +1 -1
  22. package/dist/CarouselTemplate.js +1 -1
  23. package/dist/CarouselTemplate.js.map +1 -1
  24. package/dist/Checkbox.js +3 -2
  25. package/dist/Checkbox.js.map +1 -1
  26. package/dist/Contact.js +5 -4
  27. package/dist/Contact.js.map +1 -1
  28. package/dist/CountrySelector.d.ts +1 -1
  29. package/dist/CountrySelector.js +1 -1
  30. package/dist/CountrySelector.js.map +1 -1
  31. package/dist/DatePicker.js +3 -2
  32. package/dist/DatePicker.js.map +1 -1
  33. package/dist/EventRibbon.d.ts +2 -2
  34. package/dist/EventRibbon.js.map +1 -1
  35. package/dist/FeedItem.js +2 -1
  36. package/dist/FeedItem.js.map +1 -1
  37. package/dist/FilterMenu.js +5 -4
  38. package/dist/FilterMenu.js.map +1 -1
  39. package/dist/Footer.js +15 -14
  40. package/dist/Footer.js.map +1 -1
  41. package/dist/ImageGridTable.d.ts +57 -0
  42. package/dist/ImageGridTable.js +120 -0
  43. package/dist/ImageGridTable.js.map +1 -0
  44. package/dist/ImageGridTableItem.d.ts +89 -0
  45. package/dist/ImageGridTableItem.js +108 -0
  46. package/dist/ImageGridTableItem.js.map +1 -0
  47. package/dist/ImageGridTableItemTemplate.d.ts +2 -0
  48. package/dist/ImageGridTableItemTemplate.js +13 -0
  49. package/dist/ImageGridTableItemTemplate.js.map +1 -0
  50. package/dist/ImageGridTableTemplate.d.ts +2 -0
  51. package/dist/ImageGridTableTemplate.js +5 -0
  52. package/dist/ImageGridTableTemplate.js.map +1 -0
  53. package/dist/ImageGridTicker.js +3 -2
  54. package/dist/ImageGridTicker.js.map +1 -1
  55. package/dist/ImageGridTickerItem.d.ts +4 -0
  56. package/dist/ImageGridTickerItem.js +14 -0
  57. package/dist/ImageGridTickerItem.js.map +1 -1
  58. package/dist/ImageGridTickerItemTemplate.js +1 -1
  59. package/dist/ImageGridTickerItemTemplate.js.map +1 -1
  60. package/dist/InputGroup.js +3 -2
  61. package/dist/InputGroup.js.map +1 -1
  62. package/dist/List.js +2 -1
  63. package/dist/List.js.map +1 -1
  64. package/dist/ListItem.d.ts +0 -2
  65. package/dist/ListItem.js +4 -9
  66. package/dist/ListItem.js.map +1 -1
  67. package/dist/ListSelectAll.js +2 -1
  68. package/dist/ListSelectAll.js.map +1 -1
  69. package/dist/MastheadCountrySelector.js +3 -2
  70. package/dist/MastheadCountrySelector.js.map +1 -1
  71. package/dist/MastheadItem.js +8 -7
  72. package/dist/MastheadItem.js.map +1 -1
  73. package/dist/MastheadMenuItem.js +2 -1
  74. package/dist/MastheadMenuItem.js.map +1 -1
  75. package/dist/MastheadMobileMenu.js +2 -1
  76. package/dist/MastheadMobileMenu.js.map +1 -1
  77. package/dist/MastheadProfileMenu.js +6 -5
  78. package/dist/MastheadProfileMenu.js.map +1 -1
  79. package/dist/MastheadShell.d.ts +17 -0
  80. package/dist/MastheadShell.js +42 -13
  81. package/dist/MastheadShell.js.map +1 -1
  82. package/dist/MessageStrip.js +2 -1
  83. package/dist/MessageStrip.js.map +1 -1
  84. package/dist/MessageStripTemplate.js +1 -1
  85. package/dist/MessageStripTemplate.js.map +1 -1
  86. package/dist/Pagination.d.ts +0 -2
  87. package/dist/Pagination.js +16 -29
  88. package/dist/Pagination.js.map +1 -1
  89. package/dist/PhoneNumberField.js +7 -6
  90. package/dist/PhoneNumberField.js.map +1 -1
  91. package/dist/ProgressBar.js +5 -4
  92. package/dist/ProgressBar.js.map +1 -1
  93. package/dist/PromoTile.js +3 -2
  94. package/dist/PromoTile.js.map +1 -1
  95. package/dist/RadioButton.js +5 -4
  96. package/dist/RadioButton.js.map +1 -1
  97. package/dist/RatingBar.js +2 -1
  98. package/dist/RatingBar.js.map +1 -1
  99. package/dist/RatingIndicator.js +2 -1
  100. package/dist/RatingIndicator.js.map +1 -1
  101. package/dist/Review.d.ts +1 -1
  102. package/dist/Review.js +3 -3
  103. package/dist/Review.js.map +1 -1
  104. package/dist/ReviewItem.js +2 -1
  105. package/dist/ReviewItem.js.map +1 -1
  106. package/dist/Search.d.ts +2 -0
  107. package/dist/Search.js +34 -19
  108. package/dist/Search.js.map +1 -1
  109. package/dist/SearchTemplate.js +1 -1
  110. package/dist/SearchTemplate.js.map +1 -1
  111. package/dist/SearchableListBase.d.ts +1 -1
  112. package/dist/SearchableListBase.js +4 -3
  113. package/dist/SearchableListBase.js.map +1 -1
  114. package/dist/SecondaryNavigation.js +2 -1
  115. package/dist/SecondaryNavigation.js.map +1 -1
  116. package/dist/SecondaryNavigationSubItem.js +2 -1
  117. package/dist/SecondaryNavigationSubItem.js.map +1 -1
  118. package/dist/SelectBase.d.ts +4 -11
  119. package/dist/SelectBase.js +4 -11
  120. package/dist/SelectBase.js.map +1 -1
  121. package/dist/SelectBox.d.ts +1 -1
  122. package/dist/SelectBox.js +1 -1
  123. package/dist/SelectBox.js.map +1 -1
  124. package/dist/SocialMediaButton.js +2 -1
  125. package/dist/SocialMediaButton.js.map +1 -1
  126. package/dist/StatusBadge.js +7 -6
  127. package/dist/StatusBadge.js.map +1 -1
  128. package/dist/StepInput.js +9 -2
  129. package/dist/StepInput.js.map +1 -1
  130. package/dist/StepInputTemplate.js +1 -1
  131. package/dist/StepInputTemplate.js.map +1 -1
  132. package/dist/Tab.js +2 -1
  133. package/dist/Tab.js.map +1 -1
  134. package/dist/TabNavigation.js +2 -1
  135. package/dist/TabNavigation.js.map +1 -1
  136. package/dist/Table.d.ts +2 -2
  137. package/dist/Table.js +5 -15
  138. package/dist/Table.js.map +1 -1
  139. package/dist/TableCell.js +3 -3
  140. package/dist/TableCell.js.map +1 -1
  141. package/dist/TableCellBase.js +1 -3
  142. package/dist/TableCellBase.js.map +1 -1
  143. package/dist/TableCellTemplate.d.ts +2 -0
  144. package/dist/TableCellTemplate.js +9 -0
  145. package/dist/TableCellTemplate.js.map +1 -0
  146. package/dist/TableGroupRow.d.ts +1 -1
  147. package/dist/TableGroupRow.js +3 -6
  148. package/dist/TableGroupRow.js.map +1 -1
  149. package/dist/TableGroupRowTemplate.d.ts +2 -0
  150. package/dist/TableGroupRowTemplate.js +7 -0
  151. package/dist/TableGroupRowTemplate.js.map +1 -0
  152. package/dist/TableHeaderCell.js +3 -4
  153. package/dist/TableHeaderCell.js.map +1 -1
  154. package/dist/TableHeaderCellTemplate.d.ts +2 -0
  155. package/dist/TableHeaderCellTemplate.js +6 -0
  156. package/dist/TableHeaderCellTemplate.js.map +1 -0
  157. package/dist/TableHeaderRow.js +3 -5
  158. package/dist/TableHeaderRow.js.map +1 -1
  159. package/dist/TableHeaderRowTemplate.d.ts +2 -0
  160. package/dist/TableHeaderRowTemplate.js +5 -0
  161. package/dist/TableHeaderRowTemplate.js.map +1 -0
  162. package/dist/TableRow.js +3 -4
  163. package/dist/TableRow.js.map +1 -1
  164. package/dist/TableRowBase.d.ts +1 -1
  165. package/dist/TableRowBase.js +0 -2
  166. package/dist/TableRowBase.js.map +1 -1
  167. package/dist/TableRowTemplate.d.ts +2 -0
  168. package/dist/TableRowTemplate.js +5 -0
  169. package/dist/TableRowTemplate.js.map +1 -0
  170. package/dist/TableTemplate.d.ts +2 -0
  171. package/dist/TableTemplate.js +20 -0
  172. package/dist/TableTemplate.js.map +1 -0
  173. package/dist/TextArea.js +9 -8
  174. package/dist/TextArea.js.map +1 -1
  175. package/dist/TextField.js +7 -6
  176. package/dist/TextField.js.map +1 -1
  177. package/dist/Toast.d.ts +3 -1
  178. package/dist/Toast.js +15 -9
  179. package/dist/Toast.js.map +1 -1
  180. package/dist/ToastTemplate.d.ts +2 -0
  181. package/dist/ToastTemplate.js +11 -0
  182. package/dist/ToastTemplate.js.map +1 -0
  183. package/dist/TruncatedText.js +3 -2
  184. package/dist/TruncatedText.js.map +1 -1
  185. package/dist/Upload.js +2 -1
  186. package/dist/Upload.js.map +1 -1
  187. package/dist/UploadItem.d.ts +7 -0
  188. package/dist/UploadItem.js +14 -3
  189. package/dist/UploadItem.js.map +1 -1
  190. package/dist/assets/{InputSuggestions-63QG0i9j.js → InputSuggestions-DF_pzCn9.js} +1 -1
  191. package/dist/assets/{ListItemStandardExpandableTextTemplate-B1CpqSCb.js → ListItemStandardExpandableTextTemplate-DOYL5Szm.js} +1 -1
  192. package/dist/assets/{bundle.esm-lUYJDofa.js → bundle.esm-CWBg8c5Q.js} +269 -267
  193. package/dist/assets/messagebundle_en-mjqY85LY.js +1 -0
  194. package/dist/css/themes/ImageGridTable.css +1 -0
  195. package/dist/css/themes/ImageGridTableItem.css +1 -0
  196. package/dist/css/themes/ImageGridTicker.css +1 -1
  197. package/dist/css/themes/MastheadItem.css +1 -1
  198. package/dist/css/themes/MastheadShell.css +1 -1
  199. package/dist/css/themes/RatingIndicator.css +1 -1
  200. package/dist/css/themes/Slider.css +1 -1
  201. package/dist/custom-elements-internal.json +9292 -7325
  202. package/dist/custom-elements.json +6574 -5095
  203. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  204. package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
  205. package/dist/generated/i18n/i18n-defaults.js +4 -3
  206. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  207. package/dist/generated/templates/MastheadShellTemplate.lit.js +8 -7
  208. package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
  209. package/dist/generated/templates/UploadItemTemplate.lit.js +1 -1
  210. package/dist/generated/templates/UploadItemTemplate.lit.js.map +1 -1
  211. package/dist/generated/themes/ImageGridTable.css.d.ts +2 -0
  212. package/dist/generated/themes/ImageGridTable.css.js +8 -0
  213. package/dist/generated/themes/ImageGridTable.css.js.map +1 -0
  214. package/dist/generated/themes/ImageGridTableItem.css.d.ts +2 -0
  215. package/dist/generated/themes/ImageGridTableItem.css.js +8 -0
  216. package/dist/generated/themes/ImageGridTableItem.css.js.map +1 -0
  217. package/dist/generated/themes/ImageGridTicker.css.d.ts +1 -1
  218. package/dist/generated/themes/ImageGridTicker.css.js +1 -1
  219. package/dist/generated/themes/ImageGridTicker.css.js.map +1 -1
  220. package/dist/generated/themes/MastheadItem.css.d.ts +1 -1
  221. package/dist/generated/themes/MastheadItem.css.js +1 -1
  222. package/dist/generated/themes/MastheadItem.css.js.map +1 -1
  223. package/dist/generated/themes/MastheadShell.css.d.ts +1 -1
  224. package/dist/generated/themes/MastheadShell.css.js +1 -1
  225. package/dist/generated/themes/MastheadShell.css.js.map +1 -1
  226. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  227. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  228. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  229. package/dist/generated/themes/Slider.css.d.ts +1 -1
  230. package/dist/generated/themes/Slider.css.js +1 -1
  231. package/dist/generated/themes/Slider.css.js.map +1 -1
  232. package/dist/messagebundle.properties +6 -2
  233. package/dist/messagebundle_en.properties +3 -2
  234. package/dist/types/CustomTranslations.d.ts +3 -0
  235. package/dist/types/CustomTranslations.js +2 -0
  236. package/dist/types/CustomTranslations.js.map +1 -0
  237. package/dist/types/EventRibbon.d.ts +1 -1
  238. package/dist/types/EventRibbon.js +39 -39
  239. package/dist/types/EventRibbon.js.map +1 -1
  240. package/dist/utils/translate.d.ts +7 -0
  241. package/dist/utils/translate.js +15 -0
  242. package/dist/utils/translate.js.map +1 -0
  243. package/dist/vscode.html-custom-data.json +207 -7
  244. package/dist/web-types.json +541 -12
  245. package/package.json +1 -1
  246. package/src/Accordion.ts +3 -2
  247. package/src/Avatar.ts +5 -3
  248. package/src/Breadcrumbs.ts +4 -3
  249. package/src/Button.ts +3 -2
  250. package/src/Carousel.ts +7 -4
  251. package/src/CarouselTemplate.tsx +2 -1
  252. package/src/Checkbox.ts +3 -2
  253. package/src/Contact.ts +5 -4
  254. package/src/CountrySelector.ts +1 -1
  255. package/src/DatePicker.ts +3 -2
  256. package/src/EventRibbon.ts +2 -2
  257. package/src/FeedItem.ts +2 -1
  258. package/src/FilterMenu.ts +5 -4
  259. package/src/Footer.ts +15 -14
  260. package/src/ImageGridTable.ts +151 -0
  261. package/src/ImageGridTableItem.ts +148 -0
  262. package/src/ImageGridTableItemTemplate.tsx +48 -0
  263. package/src/ImageGridTableTemplate.tsx +9 -0
  264. package/src/ImageGridTicker.ts +4 -2
  265. package/src/ImageGridTickerItem.ts +20 -0
  266. package/src/ImageGridTickerItemTemplate.tsx +1 -0
  267. package/src/InputGroup.ts +3 -2
  268. package/src/List.ts +2 -1
  269. package/src/ListItem.ts +4 -11
  270. package/src/ListSelectAll.ts +2 -1
  271. package/src/MastheadCountrySelector.ts +3 -2
  272. package/src/MastheadItem.ts +8 -7
  273. package/src/MastheadMenuItem.ts +2 -1
  274. package/src/MastheadMobileMenu.ts +2 -1
  275. package/src/MastheadProfileMenu.ts +6 -5
  276. package/src/MastheadShell.hbs +38 -29
  277. package/src/MastheadShell.ts +57 -13
  278. package/src/MessageStrip.ts +2 -1
  279. package/src/MessageStripTemplate.tsx +1 -1
  280. package/src/Pagination.ts +15 -28
  281. package/src/PhoneNumberField.ts +7 -6
  282. package/src/ProgressBar.ts +5 -4
  283. package/src/PromoTile.ts +3 -2
  284. package/src/RadioButton.ts +5 -4
  285. package/src/RatingBar.ts +2 -1
  286. package/src/RatingIndicator.ts +2 -1
  287. package/src/Review.ts +4 -3
  288. package/src/ReviewItem.ts +2 -1
  289. package/src/Search.ts +36 -19
  290. package/src/SearchTemplate.tsx +1 -1
  291. package/src/SearchableListBase.ts +4 -3
  292. package/src/SecondaryNavigation.ts +2 -1
  293. package/src/SecondaryNavigationSubItem.ts +2 -1
  294. package/src/SelectBase.ts +6 -12
  295. package/src/SelectBox.ts +1 -1
  296. package/src/SocialMediaButton.ts +2 -1
  297. package/src/StatusBadge.ts +7 -6
  298. package/src/StepInput.ts +9 -2
  299. package/src/StepInputTemplate.tsx +6 -2
  300. package/src/Tab.ts +2 -1
  301. package/src/TabNavigation.ts +2 -1
  302. package/src/Table.ts +7 -15
  303. package/src/TableCell.ts +3 -3
  304. package/src/TableCellBase.ts +1 -3
  305. package/src/TableCellTemplate.tsx +21 -0
  306. package/src/TableGroupRow.ts +4 -6
  307. package/src/TableGroupRowTemplate.tsx +36 -0
  308. package/src/TableHeaderCell.ts +3 -4
  309. package/src/TableHeaderCellTemplate.tsx +36 -0
  310. package/src/TableHeaderRow.ts +3 -5
  311. package/src/TableHeaderRowTemplate.tsx +13 -0
  312. package/src/TableRow.ts +3 -4
  313. package/src/TableRowBase.ts +1 -2
  314. package/src/TableRowTemplate.tsx +13 -0
  315. package/src/TableTemplate.tsx +94 -0
  316. package/src/TextArea.ts +8 -8
  317. package/src/TextField.ts +7 -6
  318. package/src/Toast.ts +17 -8
  319. package/src/ToastTemplate.tsx +42 -0
  320. package/src/TruncatedText.ts +3 -2
  321. package/src/Upload.ts +2 -1
  322. package/src/UploadItem.hbs +1 -1
  323. package/src/UploadItem.ts +13 -3
  324. package/src/generated/i18n/i18n-defaults.ts +2 -2
  325. package/src/generated/templates/MastheadShellTemplate.lit.ts +8 -7
  326. package/src/generated/templates/UploadItemTemplate.lit.ts +1 -1
  327. package/src/generated/themes/ImageGridTable.css.ts +9 -0
  328. package/src/generated/themes/ImageGridTableItem.css.ts +9 -0
  329. package/src/generated/themes/ImageGridTicker.css.ts +1 -1
  330. package/src/generated/themes/MastheadItem.css.ts +1 -1
  331. package/src/generated/themes/MastheadShell.css.ts +1 -1
  332. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  333. package/src/generated/themes/Slider.css.ts +1 -1
  334. package/src/i18n/messagebundle.properties +6 -2
  335. package/src/i18n/messagebundle_en.properties +3 -2
  336. package/src/themes/ImageGridTable.css +47 -0
  337. package/src/themes/ImageGridTableItem.css +102 -0
  338. package/src/themes/ImageGridTicker.css +1 -0
  339. package/src/themes/MastheadItem.css +1 -0
  340. package/src/themes/MastheadShell.css +1 -0
  341. package/src/types/CustomTranslations.ts +1 -0
  342. package/src/types/EventRibbon.ts +1 -1
  343. package/src/utils/translate.ts +21 -0
  344. package/dist/assets/messagebundle_en-D_yCmNrd.js +0 -1
  345. package/dist/generated/templates/TableCellTemplate.lit.d.ts +0 -3
  346. package/dist/generated/templates/TableCellTemplate.lit.js +0 -8
  347. package/dist/generated/templates/TableCellTemplate.lit.js.map +0 -1
  348. package/dist/generated/templates/TableGroupRowTemplate.lit.d.ts +0 -3
  349. package/dist/generated/templates/TableGroupRowTemplate.lit.js +0 -9
  350. package/dist/generated/templates/TableGroupRowTemplate.lit.js.map +0 -1
  351. package/dist/generated/templates/TableHeaderCellTemplate.lit.d.ts +0 -3
  352. package/dist/generated/templates/TableHeaderCellTemplate.lit.js +0 -11
  353. package/dist/generated/templates/TableHeaderCellTemplate.lit.js.map +0 -1
  354. package/dist/generated/templates/TableHeaderRowTemplate.lit.d.ts +0 -3
  355. package/dist/generated/templates/TableHeaderRowTemplate.lit.js +0 -8
  356. package/dist/generated/templates/TableHeaderRowTemplate.lit.js.map +0 -1
  357. package/dist/generated/templates/TableRowTemplate.lit.d.ts +0 -3
  358. package/dist/generated/templates/TableRowTemplate.lit.js +0 -8
  359. package/dist/generated/templates/TableRowTemplate.lit.js.map +0 -1
  360. package/dist/generated/templates/TableTemplate.lit.d.ts +0 -3
  361. package/dist/generated/templates/TableTemplate.lit.js +0 -13
  362. package/dist/generated/templates/TableTemplate.lit.js.map +0 -1
  363. package/dist/generated/templates/ToastTemplate.lit.d.ts +0 -3
  364. package/dist/generated/templates/ToastTemplate.lit.js +0 -10
  365. package/dist/generated/templates/ToastTemplate.lit.js.map +0 -1
  366. package/src/Table.hbs +0 -45
  367. package/src/TableCell.hbs +0 -4
  368. package/src/TableGroupRow.hbs +0 -24
  369. package/src/TableHeaderCell.hbs +0 -19
  370. package/src/TableHeaderRow.hbs +0 -3
  371. package/src/TableRow.hbs +0 -3
  372. package/src/Toast.hbs +0 -20
  373. package/src/generated/templates/TableCellTemplate.lit.ts +0 -12
  374. package/src/generated/templates/TableGroupRowTemplate.lit.ts +0 -13
  375. package/src/generated/templates/TableHeaderCellTemplate.lit.ts +0 -15
  376. package/src/generated/templates/TableHeaderRowTemplate.lit.ts +0 -12
  377. package/src/generated/templates/TableRowTemplate.lit.ts +0 -12
  378. package/src/generated/templates/TableTemplate.lit.ts +0 -17
  379. package/src/generated/templates/ToastTemplate.lit.ts +0 -14
package/bundle.esm.js CHANGED
@@ -53,6 +53,8 @@ import "./dist/ImageGridCloud.js";
53
53
  import "./dist/ImageGridCloudItem.js";
54
54
  import "./dist/ImageGridTicker.js";
55
55
  import "./dist/ImageGridTickerItem.js";
56
+ import "./dist/ImageGridTable.js";
57
+ import "./dist/ImageGridTableItem.js";
56
58
  import "./dist/InputGroup.js";
57
59
  import "./dist/Link.js";
58
60
  import "./dist/LinkList.js";
Binary file
@@ -1,12 +1,12 @@
1
1
  import { UDExEventRibbon } from "../support/component-imports.js";
2
2
  import { eventLink } from "../fixtures/event-ribbon-links.js";
3
- import { UDExEventRibbonColorSheme } from "../../src/types/EventRibbon.js";
3
+ import { UDExEventRibbonColorScheme } from "../../src/types/EventRibbon.js";
4
4
 
5
5
  const defaultEventRibbon = <UDExEventRibbon
6
6
  eventText="Get your free all-access pass to a network of latest innovations and insights"
7
7
  eventLogo="now"
8
8
  eventLink={JSON.stringify(eventLink)}
9
- backgroundColorScheme={UDExEventRibbonColorSheme.Blue1}>
9
+ backgroundColorScheme={UDExEventRibbonColorScheme.Blue1}>
10
10
  </UDExEventRibbon>
11
11
 
12
12
  const linkIconEventRibbon = <UDExEventRibbon
@@ -14,7 +14,7 @@ const linkIconEventRibbon = <UDExEventRibbon
14
14
  eventText="Get your free all-access pass to a network of latest innovations and insights"
15
15
  eventLogo="now"
16
16
  eventLink={JSON.stringify(eventLink)}
17
- backgroundColorScheme={UDExEventRibbonColorSheme.Blue3}>
17
+ backgroundColorScheme={UDExEventRibbonColorScheme.Blue3}>
18
18
  </UDExEventRibbon>
19
19
 
20
20
  const linkIconMediaEventRibbon = <UDExEventRibbon
@@ -22,7 +22,7 @@ const linkIconMediaEventRibbon = <UDExEventRibbon
22
22
  eventText="Get your free all-access pass to a network of latest innovations and insights"
23
23
  eventLogo="now"
24
24
  eventLink={JSON.stringify(eventLink)}
25
- backgroundColorScheme={UDExEventRibbonColorSheme.Blue3}>
25
+ backgroundColorScheme={UDExEventRibbonColorScheme.Blue3}>
26
26
  </UDExEventRibbon>
27
27
 
28
28
  const darkEventRibbon = <UDExEventRibbon
@@ -30,14 +30,14 @@ const darkEventRibbon = <UDExEventRibbon
30
30
  eventText="Get your free all-access pass to a network of latest innovations and insights"
31
31
  eventLogo="now"
32
32
  eventLink={JSON.stringify(eventLink)}
33
- backgroundColorScheme={UDExEventRibbonColorSheme.Raspberry2}>
33
+ backgroundColorScheme={UDExEventRibbonColorScheme.Raspberry2}>
34
34
  </UDExEventRibbon>
35
35
 
36
36
  const imageEventRibbon = <UDExEventRibbon
37
37
  eventText="Get your free all-access pass to a network of latest innovations and insights"
38
38
  eventLogo="now"
39
39
  eventLink={JSON.stringify(eventLink)}
40
- backgroundColorScheme={UDExEventRibbonColorSheme.Blue1}
40
+ backgroundColorScheme={UDExEventRibbonColorScheme.Blue1}
41
41
  backgroundImage="https://cdn.udex.services.sap.com/dds/design-tokens/assets/logos/sap-logo.svg">
42
42
  </UDExEventRibbon>
43
43
 
@@ -46,7 +46,7 @@ const customLogoEventRibbon = <UDExEventRibbon
46
46
  customEventLogo="https://cdn.udex.services.sap.com/dds/design-tokens/assets/logos/sap-logo.svg"
47
47
  customEventLogoAltText="SAP Logo"
48
48
  eventLink={JSON.stringify(eventLink)}
49
- backgroundColorScheme={UDExEventRibbonColorSheme.Blue1}>
49
+ backgroundColorScheme={UDExEventRibbonColorScheme.Blue1}>
50
50
  </UDExEventRibbon>
51
51
 
52
52
  describe("EventRibbon", () => {
@@ -0,0 +1,41 @@
1
+ import { UDExImageGridTable, UDExImageGridTableItem } from "../support/component-imports.js";
2
+
3
+ const imageGridTable = <UDExImageGridTable id="image-grid-table">
4
+ <UDExImageGridTableItem href="https://www.sap.com" src="./stories/image-grid/chiesi-customer-logo.svg" alt="chiesi logo" link-label="Support Accreditation" headline="Support Accreditation">Self-enablement learning to make the best out of SAP's support offerings.</UDExImageGridTableItem>
5
+ <UDExImageGridTableItem href="https://www.sap.com" src="./stories/image-grid/embecta-customer-logo.png" alt="embecta logo" link-label="Webcasts" headline="Webcasts">Find all upcoming and on-demand webcasts and conferences by categories</UDExImageGridTableItem>
6
+ <UDExImageGridTableItem href="https://www.sap.com" src="./stories/image-grid/mj-quinn-customer-logo.svg" alt="mj quinn logo" link-label="Work with CIC" headline="SAP Support">Get the most from your SAP Support with Customer Interaction Center</UDExImageGridTableItem>
7
+ <UDExImageGridTableItem href="https://www.sap.com" src="./stories/image-grid/mk-group-logo.png" alt="mk group logo" link-label="New S-user ID" headline="What to do with new User ID">Learn what you can access from your new SAP Support User (S-User) ID</UDExImageGridTableItem>
8
+ <UDExImageGridTableItem href="https://www.sap.com" src="./stories/image-grid/natura-and-co-customer-logo.svg" alt="natura and co logo" link-label="Events" headline="Events">Find all upcoming virtual events</UDExImageGridTableItem>
9
+ <UDExImageGridTableItem href="https://www.sap.com" src="./stories/image-grid/banco-galicia-customer-logo.png" alt="galicia logo" link-label="Resource Centers" headline="Onboarding Resource Centers">Get started with your SAP product.</UDExImageGridTableItem>
10
+ <UDExImageGridTableItem href="https://www.sap.com" src="./stories/image-grid/kind-customer-logo.svg" alt="kind logo" link-label="Webcasts" headline="Webcasts">Find all upcoming and on-demand webcasts and conferences by categories</UDExImageGridTableItem>
11
+ <UDExImageGridTableItem href="https://www.sap.com" src="./stories/image-grid/BSH-customer-logo.png" alt="bsh logo" link-label="New S-user ID" headline="What to do with new User ID">Learn what you can access from your new SAP Support User (S-User) ID</UDExImageGridTableItem>
12
+ </UDExImageGridTable>
13
+
14
+ describe("Image Grid Table", () => {
15
+ beforeEach(() => {
16
+ cy.mount(imageGridTable);
17
+ cy.get("[udex-image-grid-table]").shadow().as("image-grid-table");
18
+ });
19
+
20
+ it("is correctly rendered", () => {
21
+ cy.get("@image-grid-table")
22
+ .find(".udex-image-grid-table")
23
+ .should("be.visible");
24
+ });
25
+
26
+ it("renders the correct number of items", () => {
27
+ cy.get("[udex-image-grid-table]")
28
+ .find("[udex-image-grid-table-item]")
29
+ .should("have.length", 8);
30
+ });
31
+
32
+ it("renders items in grayscale when enabled", () => {
33
+ cy.get("[udex-image-grid-table]")
34
+ .invoke("attr", "grayscale", "true");
35
+
36
+ cy.get("[udex-image-grid-table]")
37
+ .find("[udex-image-grid-table-item]")
38
+ .first().shadow().find(".udex-image-grid-table-item__image-holder")
39
+ .should("have.css", "filter", "grayscale(1)");
40
+ });
41
+ });
@@ -0,0 +1,101 @@
1
+ import { UDExImageGridTableItem } from "../support/component-imports.js";
2
+
3
+ const itemHref = "https://www.sap.com";
4
+ const itemSrc = "./stories/image-grid/chiesi-customer-logo.svg";
5
+ const itemAlt = "chiesi logo";
6
+ const tooltip = "Chiesi";
7
+ const headline = "Headline Text";
8
+ const linkLabel = "Link Text";
9
+
10
+ const imageGridTableItem = <UDExImageGridTableItem
11
+ href={itemHref}
12
+ src={itemSrc}
13
+ alt={itemAlt}
14
+ tooltip={tooltip}
15
+ headline={headline}
16
+ linkLabel={linkLabel}>
17
+ </UDExImageGridTableItem>
18
+
19
+ describe("Image Grid Table Item", () => {
20
+ beforeEach(() => {
21
+ cy.mount(imageGridTableItem);
22
+ cy.get("[udex-image-grid-table-item]").shadow().as("image-grid-table-item");
23
+ });
24
+
25
+ it("is correctly rendered", () => {
26
+ cy.get("@image-grid-table-item")
27
+ .find(".udex-image-grid-table-item")
28
+ .should("be.visible");
29
+ });
30
+
31
+ it("renders an image element with correct attributes", () => {
32
+ cy.get("@image-grid-table-item")
33
+ .find(".udex-image-grid-table-item__image")
34
+ .should("have.attr", "src", itemSrc)
35
+ .and("have.attr", "alt", itemAlt)
36
+ .and("have.attr", "title", tooltip);
37
+ });
38
+
39
+ it("renders the headline with correct text", () => {
40
+ cy.get("@image-grid-table-item")
41
+ .find(".udex-image-grid-table-item__headline")
42
+ .should("have.text", headline);
43
+ });
44
+
45
+ it("renders the link with correct target", () => {
46
+ cy.get("@image-grid-table-item")
47
+ .find(".udex-image-grid-table-item__link")
48
+ .should("have.attr", "target", "_self");
49
+ });
50
+
51
+ it("renders the link label with correct text", () => {
52
+ cy.get("@image-grid-table-item")
53
+ .find(".udex-image-grid-table-item__link")
54
+ .should("have.text", linkLabel);
55
+ });
56
+
57
+ it("renders a link when href is provided", () => {
58
+ cy.get("@image-grid-table-item")
59
+ .find(".udex-image-grid-table-item__link")
60
+ .should("have.attr", "href", itemHref);
61
+ });
62
+
63
+ it("does not render link when link label is empty", () => {
64
+ const noLinkItem = (
65
+ <UDExImageGridTableItem src={itemSrc} alt={itemAlt}/>
66
+ );
67
+ cy.mount(noLinkItem);
68
+
69
+ cy.get("@image-grid-table-item")
70
+ .find(".udex-image-grid-table-item__link")
71
+ .should("not.exist");
72
+
73
+ cy.get("@image-grid-table-item")
74
+ .find(".udex-image-grid-table-item__image-holder")
75
+ .should("exist");
76
+ });
77
+
78
+ it("defines the hover scale for the image link", () => {
79
+ const logoLink = (
80
+ <UDExImageGridTableItem src={itemSrc} alt={itemAlt} href={itemHref}/>
81
+ );
82
+ cy.mount(logoLink);
83
+
84
+ cy.get("@image-grid-table-item")
85
+ .find("a.udex-image-grid-table-item__image-holder")
86
+ .should("have.css", "transition")
87
+ .and("include", "transform");
88
+ });
89
+
90
+ it("test the item has custom \"item-click\" event with mouse click on the link", () => {
91
+ cy.get("@image-grid-table-item")
92
+ .find(".udex-image-grid-table-item__link")
93
+ .then($link => {
94
+ $link.get(0).addEventListener("item-click", event => {
95
+ expect(event.type).to.equal("item-click");
96
+ });
97
+ });
98
+
99
+ cy.get("@image-grid-table-item").find(".udex-image-grid-table-item__link").click();
100
+ });
101
+ });
@@ -1,4 +1,4 @@
1
- import { UDExImageGridTickerItem } from "../support/component-imports.js";
1
+ import {UDExImageGridTickerItem} from "../support/component-imports.js";
2
2
 
3
3
  const itemHref = "https://www.sap.com";
4
4
  const itemSrc = "./stories/image-grid/chiesi-customer-logo.svg";
@@ -24,7 +24,6 @@ describe("Image Grid Ticker Item", () => {
24
24
  .should("be.visible");
25
25
  });
26
26
 
27
-
28
27
  it("renders an image element with correct attributes", () => {
29
28
  cy.get("@image-grid-ticker-item")
30
29
  .find(".udex-image-grid-ticker-item__img")
@@ -171,4 +171,20 @@ describe("Masthead Profile Menu", () => {
171
171
  expect(idsUser).to.equal(identities[0].idsUser);
172
172
  });
173
173
  });
174
+
175
+ it("renders default translated logout text", () => {
176
+ cy.mount(simpleProfileMenu);
177
+ cy.get("#masthead-profile-menu-simple").shadow().find(".udex-masthead-profile-menu__actions").find("udex-masthead-menu-item").eq(0).shadow().find(".udex-masthead-menu-item__label").should("have.text", "Logout");
178
+ });
179
+
180
+ it("renders custom logout text", () => {
181
+ window["udex-config"] = {
182
+ translations: {
183
+ LOGOUT: "Sign Out"
184
+ }
185
+ };
186
+
187
+ cy.mount(simpleProfileMenu);
188
+ cy.get("#masthead-profile-menu-simple").shadow().find(".udex-masthead-profile-menu__actions").find("udex-masthead-menu-item").eq(0).shadow().find(".udex-masthead-menu-item__label").should("have.text", "Sign Out");
189
+ })
174
190
  });
@@ -1,14 +1,19 @@
1
1
  import { UDExUploadItem } from "../support/component-imports.js";
2
+ import UDExFileUploadState from "../../src/types/FileUploadState.js";
3
+ import { UDExTarget } from "../../src/types/common.js";
2
4
 
3
- const uploadingUploadItem = <UDExUploadItem id="uploadingItem" fileName="File1" uploadState="Uploading" uploadPercentage={33}>
5
+ const file = "File1";
6
+ const target = UDExTarget._blank;
7
+
8
+ const uploadingUploadItem = <UDExUploadItem id="uploadingItem" fileName={file} uploadState={UDExFileUploadState.Uploading} uploadPercentage={33}>
4
9
  <span>Uploaded On: 1/1/2025 · File Size: 103 KB</span>
5
10
  </UDExUploadItem>
6
11
 
7
- const errorUploadItem = <UDExUploadItem id="errorItem" fileName="File1" uploadState="Error" uploadPercentage={44}>
12
+ const errorUploadItem = <UDExUploadItem id="errorItem" fileName={file} uploadState={UDExFileUploadState.Error} uploadPercentage={44}>
8
13
  <span>Error message</span>
9
14
  </UDExUploadItem>
10
15
 
11
- const uploadedUploadItem = <UDExUploadItem id="uploadedItem" fileName="File1" uploadState="Uploaded" uploadPercentage={55}>
16
+ const uploadedUploadItem = <UDExUploadItem id="uploadedItem" fileName={file} uploadState={UDExFileUploadState.Uploaded} uploadPercentage={55} fileTarget={target}>
12
17
  </UDExUploadItem>
13
18
 
14
19
  describe("UploadItem", () => {
@@ -75,13 +80,17 @@ describe("UploadItem", () => {
75
80
  .find(".ui5-link-root").should("have.attr", "download", "true");
76
81
  });
77
82
 
83
+ it("displays file target property in link", () => {
84
+ cy.get("#uploadedItem").shadow().find("[udex-link]").should("have.attr", "target", target);
85
+ });
86
+
78
87
  it("emits request-delete event when delete button is clicked", () => {
79
88
  const handleDelete = cy.stub().as("deleteHandler");
80
89
  cy.mount(
81
90
  <UDExUploadItem
82
91
  id="uploadedItem"
83
- fileName="File1"
84
- uploadState="Uploaded"
92
+ fileName={file}
93
+ uploadState={UDExFileUploadState.Uploaded}
85
94
  uploadPercentage={33}
86
95
  onRequestDelete={handleDelete}
87
96
  />
@@ -25,6 +25,8 @@ import UDExImageGridCloud from "../../instrumented/ImageGridCloud.js";
25
25
  import UDExImageGridCloudItem from "../../instrumented/ImageGridCloudItem.js";
26
26
  import UDExImageGridTicker from "../../instrumented/ImageGridTicker.js";
27
27
  import UDExImageGridTickerItem from "../../instrumented/ImageGridTickerItem.js";
28
+ import UDExImageGridTable from "../../instrumented/ImageGridTable.js";
29
+ import UDExImageGridTableItem from "../../instrumented/ImageGridTableItem.js";
28
30
  import UDExInputGroup from "../../instrumented/InputGroup.js";
29
31
  import UDExLink from "../../instrumented/Link.js";
30
32
  import UDExLinkList from "../../instrumented/LinkList.js";
@@ -96,6 +98,8 @@ export {
96
98
  UDExImageGridCloudItem,
97
99
  UDExImageGridTicker,
98
100
  UDExImageGridTickerItem,
101
+ UDExImageGridTable,
102
+ UDExImageGridTableItem,
99
103
  UDExInputGroup,
100
104
  UDExLink,
101
105
  UDExLinkList,
@@ -25,6 +25,8 @@ import UDExImageGridCloud from "../../src/ImageGridCloud.js";
25
25
  import UDExImageGridCloudItem from "../../src/ImageGridCloudItem.js";
26
26
  import UDExImageGridTicker from "../../src/ImageGridTicker.js";
27
27
  import UDExImageGridTickerItem from "../../src/ImageGridTickerItem.js";
28
+ import UDExImageGridTable from "../../src/ImageGridTable.js";
29
+ import UDExImageGridTableItem from "../../src/ImageGridTableItem.js";
28
30
  import UDExInputGroup from "../../src/InputGroup.js";
29
31
  import UDExLink from "../../src/Link.js";
30
32
  import UDExLinkList from "../../src/LinkList.js";
@@ -96,6 +98,8 @@ export {
96
98
  UDExImageGridCloudItem,
97
99
  UDExImageGridTicker,
98
100
  UDExImageGridTickerItem,
101
+ UDExImageGridTable,
102
+ UDExImageGridTableItem,
99
103
  UDExInputGroup,
100
104
  UDExLink,
101
105
  UDExLinkList,
package/dist/Accordion.js CHANGED
@@ -16,6 +16,7 @@ import "@ui5/webcomponents-icons/dist/feeder-arrow.js";
16
16
  import { isEnter, isSpace, isEnd, isHome, isTabPrevious, isTabNext, isDown, isUp, } from "@ui5/webcomponents-base/dist/Keys.js";
17
17
  import AccordionTemplate from "./AccordionTemplate.js";
18
18
  import { COLLAPSE_ALL, EXPAND_ALL } from "./generated/i18n/i18n-defaults.js";
19
+ import translate from "./utils/translate.js";
19
20
  // Styles
20
21
  import AccordionCss from "./generated/themes/Accordion.css.js";
21
22
  export var UDExAccordionHeadlineLevel;
@@ -146,8 +147,8 @@ let UDExAccordion = UDExAccordion_1 = class UDExAccordion extends UI5Element {
146
147
  }
147
148
  get toggleAllText() {
148
149
  return this._allExpanded
149
- ? UDExAccordion_1.i18nBundle.getText(COLLAPSE_ALL)
150
- : UDExAccordion_1.i18nBundle.getText(EXPAND_ALL);
150
+ ? translate(UDExAccordion_1, COLLAPSE_ALL)
151
+ : translate(UDExAccordion_1, EXPAND_ALL);
151
152
  }
152
153
  get items() {
153
154
  return this._items.map(el => {
@@ -1 +1 @@
1
- {"version":3,"file":"Accordion.js","sourceRoot":"","sources":["../src/Accordion.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAEnE,OAAO,WAAW,MAAM,iDAAiD,CAAC;AAC1E,OAAO,+CAA+C,CAAC;AACvD,OAAO,EACL,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,GACxE,MAAM,sCAAsC,CAAC;AAC9C,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAE7E,SAAS;AACT,OAAO,YAAY,MAAM,qCAAqC,CAAC;AAE/D,MAAM,CAAN,IAAY,0BAOX;AAPD,WAAY,0BAA0B;IACpC,uCAAS,CAAA;IACT,uCAAS,CAAA;IACT,uCAAS,CAAA;IACT,uCAAS,CAAA;IACT,uCAAS,CAAA;IACT,uCAAS,CAAA;AACX,CAAC,EAPW,0BAA0B,KAA1B,0BAA0B,QAOrC;AAMD;;;;;;;;;;;;;;;;;;GAkBG;AAgBH,IAAM,aAAa,qBAAnB,MAAM,aAAc,SAAQ,UAAU;IA8DpC;QACE,KAAK,EAAE,CAAC;QAxBV;;;;;WAKG;QAED,kBAAa,GAA+B,0BAA0B,CAAC,EAAE,CAAC;QAkB1E,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED,UAAU;QACR,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACjC,CAAC;IAED,gBAAgB,CAAC,CAAQ;QACvB,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;QACvC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxC,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,eAAe,CAAC,MAAe;QAC7B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACzB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,mBAAmB,CAAC,CAAgB;QAClC,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,cAAc,CAAC,CAAgB;QAC7B,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAED,YAAY,CAAC,CAAgB;QAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACtD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACpE,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,KAAK,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAErD,MAAM,cAAc,GAAG,CAAC,QAA6B,EAAE,KAAa,EAAE,EAAE;YACtE,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;QACvE,CAAC,CAAC;QAEF,MAAM,sBAAsB,GAAG,CAAC,IAAiB,EAAE,EAAE;YACnD,MAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;YACrF,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,CAAC,CAAC;QAEF,MAAM,mBAAmB,GAAG,CAAC,aAA4B,EAAE,EAAE;YAC3D,IAAI,UAAU,IAAI,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACjE,cAAc,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;gBACzD,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAI,CAAC,UAAU,EAAE,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;mBACrC,CAAC,YAAY,EAAE,QAAQ,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;mBAC5C,CAAC,WAAW,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvC,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC;gBAC7B,cAAc,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC;YAC1D,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,MAAM,WAAW,GAAG,CAAC,SAAiB,EAAE,EAAE;YACxC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACpC,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;YACjC,IAAI,EAAE,UAAU,EAAE,aAAa,CAAC,8BAA8B,CAAiB,EAAE,KAAK,EAAE,CAAC;QAC5F,CAAC,CAAC;QAEF,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAE/B,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACd,WAAW,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QAED,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACvB,CAAC;QAED,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,WAAW,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAC/E,CAAC;QAED,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YACjB,WAAW,CAAC,IAAI,CAAC,gBAAgB,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,gBAAgB,CAAC,CAAc;QAC7B,MAAM,MAAM,GAAG,CAAC,CAAC,MAA2B,CAAC;QAC7C,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,uBAAuB;QACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,YAAY;YACtB,CAAC,CAAC,eAAa,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC;YAChD,CAAC,CAAC,eAAa,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAC1B,OAAO;gBACL,IAAI,EAAE,EAAE;aACT,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAjLG;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;mDACtB;AASvB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;uDACC;AAQ3B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;iDACL;AASpB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+CACP;AASlB;IADD,QAAQ,EAAE;oDACiE;AAS1E;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;6CAChC;AAG7B;IADN,IAAI,CAAC,yBAAyB,CAAC;uCACF;AA1D1B,aAAa;IAflB,aAAa,CAAC;QACb,GAAG,EAAE,gBAAgB;QACrB,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,YAAY;QACpB,QAAQ,EAAE,iBAAiB;KAC5B,CAAC;IAEF;;;;;OAKG;;IACF,KAAK,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;GAEnC,aAAa,CA4LlB;AAED,aAAa,CAAC,MAAM,EAAE,CAAC;AAEvB,eAAe,aAAa,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport \"@ui5/webcomponents-icons/dist/feeder-arrow.js\";\nimport {\n isEnter, isSpace, isEnd, isHome, isTabPrevious, isTabNext, isDown, isUp,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport AccordionTemplate from \"./AccordionTemplate.js\";\nimport type UDExAccordionItem from \"./AccordionItem.js\";\nimport { COLLAPSE_ALL, EXPAND_ALL } from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport AccordionCss from \"./generated/themes/Accordion.css.js\";\n\nexport enum UDExAccordionHeadlineLevel {\n H1 = \"H1\",\n H2 = \"H2\",\n H3 = \"H3\",\n H4 = \"H4\",\n H5 = \"H5\",\n H6 = \"H6\"\n}\n\ntype UDExAccordionToggleItemsEventDetail = {\n isOpen: 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-accordion</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Accordion.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-accordion\n * @public\n */\n@customElement({\n tag: \"udex-accordion\",\n renderer: jsxRenderer,\n styles: AccordionCss,\n template: AccordionTemplate,\n})\n\n/**\n * Triggered when the user clicks on the Expand/Collapse All button..\n *\n * @public\n * @param {boolean} isOpen Indicates whether all items are expanded or collapsed\n */\n@event(\"toggle-items\", { bubbles: true })\n\nclass UDExAccordion extends UI5Element {\n eventDetails!: {\n \"toggle-items\": UDExAccordionToggleItemsEventDetail,\n };\n\n /**\n * Used internally to store expand/collapse button state.\n *\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n _allExpanded!: boolean;\n\n /**\n * Defines if expandAll button should be displayed.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n hideExpandButton!: boolean;\n\n /**\n * Defines direction of the accordion component.\n *\n * @private\n */\n @property({ type: String })\n _direction?: string;\n\n /**\n * Defines the headline text of the accordion component.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n headline!: string;\n\n /**\n * Defines the semantic level of the headline.\n *\n * @default UDExAccordionHeadlineLevel.h3\n * @public\n */\n @property()\n headlineLevel: UDExAccordionHeadlineLevel = UDExAccordionHeadlineLevel.H3;\n\n /**\n * Slot for accordion items.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true, individualSlots: true })\n _items!: Array<UDExAccordionItem>;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _activeItemIndex: number;\n\n constructor() {\n super();\n this._allExpanded = false;\n this._activeItemIndex = -1;\n }\n\n onEnterDOM() {\n this.updateAllExpandedStatus();\n }\n\n toggleAllHandler(e: Event) {\n e.preventDefault();\n this._allExpanded = !this._allExpanded;\n this.toggleOpenItems(this._allExpanded);\n this.fireDecoratorEvent(\"toggle-items\", { isOpen: this._allExpanded });\n }\n\n toggleOpenItems(isOpen: boolean) {\n this._items.forEach(item => {\n item.expanded = isOpen;\n });\n }\n\n toggleKeyAllHandler(e: KeyboardEvent) {\n if (isEnter(e) || isSpace(e)) {\n this.toggleAllHandler(e);\n }\n }\n\n keydownHandler(e: KeyboardEvent) {\n if (isDown(e) || isUp(e)) {\n return;\n }\n\n this.handleTabKey(e);\n }\n\n handleTabKey(e: KeyboardEvent) {\n const activeItem = this._items[this._activeItemIndex];\n const previousItem = this._items[this._activeItemIndex - 1];\n const isLastItem = this._activeItemIndex === this._items.length - 1;\n const isFirstItem = this._activeItemIndex === 0;\n const lastItem = this._items[this._items.length - 1];\n\n const updateTabIndex = (elements: NodeListOf<Element>, value: string) => {\n elements.forEach(element => element.setAttribute(\"tabindex\", value));\n };\n\n const getInteractiveElements = (item: HTMLElement) => {\n const selectors = [\"button\", \"a[href]\", \"input\", \"select\", \"textarea\", \"[tabindex]\"];\n return item.querySelectorAll(selectors.join(\",\"));\n };\n\n const handleTabNavigation = (keyboardEvent: KeyboardEvent) => {\n if (isLastItem && isTabNext(keyboardEvent) && !lastItem.expanded) {\n updateTabIndex(getInteractiveElements(activeItem), \"-1\");\n return true;\n }\n\n if ((activeItem?.expanded && isTabNext(e))\n || (previousItem?.expanded && isTabPrevious(e))\n || (isFirstItem && isTabPrevious(e))) {\n return true;\n }\n\n if (isEnter(e) && isLastItem) {\n updateTabIndex(getInteractiveElements(activeItem), \"0\");\n }\n\n return false;\n };\n\n const focusOnItem = (itemIndex: number) => {\n const item = this._items[itemIndex];\n this._activeItemIndex = itemIndex;\n (item?.shadowRoot?.querySelector(\".udex-accordion-item__header\") as HTMLElement)?.focus();\n };\n\n if (handleTabNavigation(e)) {\n return;\n }\n\n e.preventDefault();\n const len = this._items.length;\n\n if (isHome(e)) {\n focusOnItem(0);\n }\n\n if (isEnd(e)) {\n focusOnItem(len - 1);\n }\n\n if (isTabPrevious(e)) {\n focusOnItem(this._activeItemIndex > 0 ? this._activeItemIndex - 1 : len - 1);\n }\n\n if (isTabNext(e)) {\n focusOnItem(this._activeItemIndex < len - 1 ? this._activeItemIndex + 1 : 0);\n }\n }\n\n itemFocusHandler(e: CustomEvent) {\n const target = e.target as UDExAccordionItem;\n if (target) {\n this._activeItemIndex = this._items?.indexOf(target) ?? -1;\n }\n }\n\n updateAllExpandedStatus() {\n this._allExpanded = this._items.every(item => item.expanded);\n }\n\n get toggleAllText(): string {\n return this._allExpanded\n ? UDExAccordion.i18nBundle.getText(COLLAPSE_ALL)\n : UDExAccordion.i18nBundle.getText(EXPAND_ALL);\n }\n\n get items(): {item: UDExAccordionItem}[] {\n return this._items.map(el => {\n return {\n item: el,\n };\n });\n }\n}\n\nUDExAccordion.define();\n\nexport default UDExAccordion;\nexport type { UDExAccordionToggleItemsEventDetail };\n"]}
1
+ {"version":3,"file":"Accordion.js","sourceRoot":"","sources":["../src/Accordion.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport \"@ui5/webcomponents-icons/dist/feeder-arrow.js\";\nimport {\n isEnter, isSpace, isEnd, isHome, isTabPrevious, isTabNext, isDown, isUp,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport AccordionTemplate from \"./AccordionTemplate.js\";\nimport type UDExAccordionItem from \"./AccordionItem.js\";\nimport { COLLAPSE_ALL, EXPAND_ALL } from \"./generated/i18n/i18n-defaults.js\";\nimport translate from \"./utils/translate.js\";\n\n// Styles\nimport AccordionCss from \"./generated/themes/Accordion.css.js\";\n\nexport enum UDExAccordionHeadlineLevel {\n H1 = \"H1\",\n H2 = \"H2\",\n H3 = \"H3\",\n H4 = \"H4\",\n H5 = \"H5\",\n H6 = \"H6\"\n}\n\ntype UDExAccordionToggleItemsEventDetail = {\n isOpen: 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-accordion</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Accordion.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-accordion\n * @public\n */\n@customElement({\n tag: \"udex-accordion\",\n renderer: jsxRenderer,\n styles: AccordionCss,\n template: AccordionTemplate,\n})\n\n/**\n * Triggered when the user clicks on the Expand/Collapse All button..\n *\n * @public\n * @param {boolean} isOpen Indicates whether all items are expanded or collapsed\n */\n@event(\"toggle-items\", { bubbles: true })\n\nclass UDExAccordion extends UI5Element {\n eventDetails!: {\n \"toggle-items\": UDExAccordionToggleItemsEventDetail,\n };\n\n /**\n * Used internally to store expand/collapse button state.\n *\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n _allExpanded!: boolean;\n\n /**\n * Defines if expandAll button should be displayed.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n hideExpandButton!: boolean;\n\n /**\n * Defines direction of the accordion component.\n *\n * @private\n */\n @property({ type: String })\n _direction?: string;\n\n /**\n * Defines the headline text of the accordion component.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n headline!: string;\n\n /**\n * Defines the semantic level of the headline.\n *\n * @default UDExAccordionHeadlineLevel.h3\n * @public\n */\n @property()\n headlineLevel: UDExAccordionHeadlineLevel = UDExAccordionHeadlineLevel.H3;\n\n /**\n * Slot for accordion items.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true, individualSlots: true })\n _items!: Array<UDExAccordionItem>;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _activeItemIndex: number;\n\n constructor() {\n super();\n this._allExpanded = false;\n this._activeItemIndex = -1;\n }\n\n onEnterDOM() {\n this.updateAllExpandedStatus();\n }\n\n toggleAllHandler(e: Event) {\n e.preventDefault();\n this._allExpanded = !this._allExpanded;\n this.toggleOpenItems(this._allExpanded);\n this.fireDecoratorEvent(\"toggle-items\", { isOpen: this._allExpanded });\n }\n\n toggleOpenItems(isOpen: boolean) {\n this._items.forEach(item => {\n item.expanded = isOpen;\n });\n }\n\n toggleKeyAllHandler(e: KeyboardEvent) {\n if (isEnter(e) || isSpace(e)) {\n this.toggleAllHandler(e);\n }\n }\n\n keydownHandler(e: KeyboardEvent) {\n if (isDown(e) || isUp(e)) {\n return;\n }\n\n this.handleTabKey(e);\n }\n\n handleTabKey(e: KeyboardEvent) {\n const activeItem = this._items[this._activeItemIndex];\n const previousItem = this._items[this._activeItemIndex - 1];\n const isLastItem = this._activeItemIndex === this._items.length - 1;\n const isFirstItem = this._activeItemIndex === 0;\n const lastItem = this._items[this._items.length - 1];\n\n const updateTabIndex = (elements: NodeListOf<Element>, value: string) => {\n elements.forEach(element => element.setAttribute(\"tabindex\", value));\n };\n\n const getInteractiveElements = (item: HTMLElement) => {\n const selectors = [\"button\", \"a[href]\", \"input\", \"select\", \"textarea\", \"[tabindex]\"];\n return item.querySelectorAll(selectors.join(\",\"));\n };\n\n const handleTabNavigation = (keyboardEvent: KeyboardEvent) => {\n if (isLastItem && isTabNext(keyboardEvent) && !lastItem.expanded) {\n updateTabIndex(getInteractiveElements(activeItem), \"-1\");\n return true;\n }\n\n if ((activeItem?.expanded && isTabNext(e))\n || (previousItem?.expanded && isTabPrevious(e))\n || (isFirstItem && isTabPrevious(e))) {\n return true;\n }\n\n if (isEnter(e) && isLastItem) {\n updateTabIndex(getInteractiveElements(activeItem), \"0\");\n }\n\n return false;\n };\n\n const focusOnItem = (itemIndex: number) => {\n const item = this._items[itemIndex];\n this._activeItemIndex = itemIndex;\n (item?.shadowRoot?.querySelector(\".udex-accordion-item__header\") as HTMLElement)?.focus();\n };\n\n if (handleTabNavigation(e)) {\n return;\n }\n\n e.preventDefault();\n const len = this._items.length;\n\n if (isHome(e)) {\n focusOnItem(0);\n }\n\n if (isEnd(e)) {\n focusOnItem(len - 1);\n }\n\n if (isTabPrevious(e)) {\n focusOnItem(this._activeItemIndex > 0 ? this._activeItemIndex - 1 : len - 1);\n }\n\n if (isTabNext(e)) {\n focusOnItem(this._activeItemIndex < len - 1 ? this._activeItemIndex + 1 : 0);\n }\n }\n\n itemFocusHandler(e: CustomEvent) {\n const target = e.target as UDExAccordionItem;\n if (target) {\n this._activeItemIndex = this._items?.indexOf(target) ?? -1;\n }\n }\n\n updateAllExpandedStatus() {\n this._allExpanded = this._items.every(item => item.expanded);\n }\n\n get toggleAllText(): string {\n return this._allExpanded\n ? translate(UDExAccordion, COLLAPSE_ALL)\n : translate(UDExAccordion, EXPAND_ALL);\n }\n\n get items(): {item: UDExAccordionItem}[] {\n return this._items.map(el => {\n return {\n item: el,\n };\n });\n }\n}\n\nUDExAccordion.define();\n\nexport default UDExAccordion;\nexport type { UDExAccordionToggleItemsEventDetail };\n"]}
package/dist/Avatar.js CHANGED
@@ -13,6 +13,7 @@ import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
13
13
  import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
14
14
  import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
15
15
  import { ATTENTION_BADGE, AVATAR_TEXT, DISABLED } from "./generated/i18n/i18n-defaults.js";
16
+ import translate from "./utils/translate.js";
16
17
  // Template
17
18
  import AvatarTemplate from "./AvatarTemplate.js";
18
19
  // Styles
@@ -164,9 +165,9 @@ let UDExAvatar = UDExAvatar_1 = class UDExAvatar extends UI5Element {
164
165
  return avatarClass;
165
166
  }
166
167
  get avatarAccessibleName() {
167
- let accName = `${this.accessibleName ? this.accessibleName : `${UDExAvatar_1.i18nBundle.getText(AVATAR_TEXT)} ${this.initials}`}`;
168
- accName += ` ${this.disabled ? UDExAvatar_1.i18nBundle.getText(DISABLED) : ""}`;
169
- accName += ` ${this.showAttentionBadge ? UDExAvatar_1.i18nBundle.getText(ATTENTION_BADGE) : ""}`;
168
+ let accName = `${this.accessibleName ? this.accessibleName : `${translate(UDExAvatar_1, AVATAR_TEXT)} ${this.initials}`}`;
169
+ accName += ` ${this.disabled ? translate(UDExAvatar_1, DISABLED) : ""}`;
170
+ accName += ` ${this.showAttentionBadge ? translate(UDExAvatar_1, ATTENTION_BADGE) : ""}`;
170
171
  return accName;
171
172
  }
172
173
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.js","sourceRoot":"","sources":["../src/Avatar.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { ATTENTION_BADGE, AVATAR_TEXT, DISABLED } from \"./generated/i18n/i18n-defaults.js\";\nimport type AvatarColorScheme from \"@ui5/webcomponents/dist/types/AvatarColorScheme.js\";\n// Template\nimport AvatarTemplate from \"./AvatarTemplate.js\";\n\n// Styles\nimport AvatarCss from \"./generated/themes/Avatar.css.js\";\n\nexport enum UDExAvatarColorScheme {\n Mango = \"Mango\",\n Red = \"Red\",\n Raspberry = \"Raspberry\",\n Pink = \"Pink\",\n Indigo = \"Indigo\",\n Blue = \"Blue\",\n Teal = \"Teal\",\n Green = \"Green\",\n Grey = \"Grey\",\n Transparent = \"Transparent\",\n Neutral = \"Neutral\",\n}\n\nexport enum UDExAvatarShape {\n Circle = \"Circle\",\n Square = \"Square\",\n}\n\nexport enum UDExAvatarSize {\n XS = \"XS\",\n S = \"S\",\n M = \"M\",\n L = \"L\",\n XL = \"XL\",\n}\n\nconst UDExToUi5ColorSchemeMap = {\n Mango: \"Accent1\",\n Red: \"Accent2\",\n Raspberry: \"Accent3\",\n Pink: \"Accent4\",\n Indigo: \"Accent5\",\n Blue: \"Accent6\",\n Transparent: \"Accent6\",\n Neutral: \"Accent6\",\n Teal: \"Accent7\",\n Green: \"Accent8\",\n Grey: \"Accent10\",\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-avatar</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Avatar.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-avatar\",\n renderer: jsxRenderer,\n styles: AvatarCss,\n template: AvatarTemplate,\n})\n\n/**\n * Fires when the avatar is clicked.\n *\n * @public\n */\n@event(\"click\", { bubbles: true })\n\nclass UDExAvatar extends UI5Element {\n eventDetails!: {\n \"click\": void,\n };\n /**\n * Defines the displayed initials.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n initials: string = \"\";\n\n /**\n * Defines if the avatar is interactive (focusable and pressable).\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n interactive!: boolean;\n\n /**\n * Defines the text alternative of the component.\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n accessibleName?: string;\n\n /**\n * Defines the design of the component.\n *\n * @default \"Blue\"\n * @public\n */\n @property()\n colorScheme: `${UDExAvatarColorScheme}` = UDExAvatarColorScheme.Blue;\n\n /**\n * Defines whether the component is disabled.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Defines the name of the fallback icon.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n fallbackIcon: string = \"\";\n\n /**\n * Defines the name of the UI5 Icon, that will be displayed.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n icon: string = \"\";\n\n /**\n * Defines the shape of the component.\n *\n * @default \"Circle\"\n * @public\n */\n @property()\n shape: `${UDExAvatarShape}` = UDExAvatarShape.Circle;\n\n /**\n * Defines predefined size of the component.\n *\n * @default \"S\"\n * @public\n */\n @property()\n size: `${UDExAvatarSize}` = UDExAvatarSize.S;\n\n /**\n * Defines the displaying attention badge.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n showAttentionBadge!: boolean;\n\n /**\n * Receives the desired <img> tag\n *\n * @slot image\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n image!: Array<HTMLElement>;\n\n /**\n * Defines the optional badge that will be used for visual affordance.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement })\n badge!: Array<HTMLElement>;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n onAfterRendering(): void {\n this.title = this.initials;\n }\n handleClick(e: Event) {\n e.stopPropagation();\n if (this.interactive) {\n this.fireDecoratorEvent(\"click\");\n }\n }\n\n /**\n * Returns the effective avatar size.\n * @default \"S\"\n * @private\n */\n get effectiveSize(): UDExAvatarSize {\n // we read the attribute, because the \"size\" property will always have a default value\n return this.getAttribute(\"size\") as UDExAvatarSize || this.size;\n }\n\n /**\n * Returns the effective background color.\n * @default \"Blue\"\n * @private\n */\n get effectiveBackgroundColor(): UDExAvatarColorScheme {\n // we read the attribute, because the \"background-color\" property will always have a default value\n return this.getAttribute(\"color-scheme\") as UDExAvatarColorScheme || this.colorScheme;\n }\n\n get getUDExAvatarColorScheme(): AvatarColorScheme {\n return UDExToUi5ColorSchemeMap[this.colorScheme] as AvatarColorScheme;\n }\n\n get imageSlot(): boolean {\n return !!this.image.length;\n }\n\n get badgeSlot(): boolean {\n return !!this.badge.length;\n }\n\n get udexAvatarClass(): string {\n let avatarClass = \"udex-avatar\";\n\n if (this.imageSlot) {\n avatarClass += \" udex-avatar--with-image\";\n }\n\n return avatarClass;\n }\n\n get avatarAccessibleName(): string {\n let accName = `${this.accessibleName ? this.accessibleName : `${UDExAvatar.i18nBundle.getText(AVATAR_TEXT)} ${this.initials}`}`;\n accName += ` ${this.disabled ? UDExAvatar.i18nBundle.getText(DISABLED) : \"\"}`;\n accName += ` ${this.showAttentionBadge ? UDExAvatar.i18nBundle.getText(ATTENTION_BADGE) : \"\"}`;\n return accName;\n }\n}\n\nUDExAvatar.define();\n\nexport default UDExAvatar;\n"]}
1
+ {"version":3,"file":"Avatar.js","sourceRoot":"","sources":["../src/Avatar.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,WAAW,MAAM,iDAAiD,CAAC;AAC1E,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAE3F,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAE7C,WAAW;AACX,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAEjD,SAAS;AACT,OAAO,SAAS,MAAM,kCAAkC,CAAC;AAEzD,MAAM,CAAN,IAAY,qBAYX;AAZD,WAAY,qBAAqB;IAC/B,wCAAe,CAAA;IACf,oCAAW,CAAA;IACX,gDAAuB,CAAA;IACvB,sCAAa,CAAA;IACb,0CAAiB,CAAA;IACjB,sCAAa,CAAA;IACb,sCAAa,CAAA;IACb,wCAAe,CAAA;IACf,sCAAa,CAAA;IACb,oDAA2B,CAAA;IAC3B,4CAAmB,CAAA;AACrB,CAAC,EAZW,qBAAqB,KAArB,qBAAqB,QAYhC;AAED,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,oCAAiB,CAAA;IACjB,oCAAiB,CAAA;AACnB,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B;AAED,MAAM,CAAN,IAAY,cAMX;AAND,WAAY,cAAc;IACxB,2BAAS,CAAA;IACT,yBAAO,CAAA;IACP,yBAAO,CAAA;IACP,yBAAO,CAAA;IACP,2BAAS,CAAA;AACX,CAAC,EANW,cAAc,KAAd,cAAc,QAMzB;AAED,MAAM,uBAAuB,GAAG;IAC9B,KAAK,EAAE,SAAS;IAChB,GAAG,EAAE,SAAS;IACd,SAAS,EAAE,SAAS;IACpB,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,SAAS;IACjB,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,SAAS;IACtB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,UAAU;CACjB,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AAeH,IAAM,UAAU,kBAAhB,MAAM,UAAW,SAAQ,UAAU;IAAnC;;QAIE;;;;;WAKG;QAED,aAAQ,GAAW,EAAE,CAAC;QAoBxB;;;;;WAKG;QAED,gBAAW,GAA+B,qBAAqB,CAAC,IAAI,CAAC;QAWvE;;;;;WAKG;QAED,iBAAY,GAAW,EAAE,CAAC;QAE5B;;;;;WAKG;QAED,SAAI,GAAW,EAAE,CAAC;QAEpB;;;;;WAKG;QAED,UAAK,GAAyB,eAAe,CAAC,MAAM,CAAC;QAEvD;;;;;WAKG;QAED,SAAI,GAAwB,cAAc,CAAC,CAAC,CAAC;IA0FjD,CAAC;IA1DC,gBAAgB;QACd,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC7B,CAAC;IACD,WAAW,CAAC,CAAQ;QAClB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,IAAI,aAAa;QACf,sFAAsF;QACtF,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAmB,IAAI,IAAI,CAAC,IAAI,CAAC;IAClE,CAAC;IAED;;;;OAIG;IACH,IAAI,wBAAwB;QAC1B,kGAAkG;QAClG,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAA0B,IAAI,IAAI,CAAC,WAAW,CAAC;IACxF,CAAC;IAED,IAAI,wBAAwB;QAC1B,OAAO,uBAAuB,CAAC,IAAI,CAAC,WAAW,CAAsB,CAAC;IACxE,CAAC;IAED,IAAI,SAAS;QACX,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,IAAI,eAAe;QACjB,IAAI,WAAW,GAAG,aAAa,CAAC;QAEhC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,WAAW,IAAI,0BAA0B,CAAC;QAC5C,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,IAAI,oBAAoB;QACtB,IAAI,OAAO,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,YAAU,EAAE,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QACxH,OAAO,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,YAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACtE,OAAO,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,YAAU,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACvF,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAA;AAlKG;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4CACH;AAStB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;+CACJ;AAStB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;kDACD;AASxB;IADD,QAAQ,EAAE;+CAC4D;AASrE;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;4CACP;AASnB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gDACC;AAS1B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wCACP;AASlB;IADD,QAAQ,EAAE;yCAC4C;AASrD;IADD,QAAQ,EAAE;wCACoC;AAS3C;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;sDACG;AAS/B;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;yCAChB;AAS3B;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;yCACC;AAGtB;IADN,IAAI,CAAC,yBAAyB,CAAC;oCACF;AAjH1B,UAAU;IAdf,aAAa,CAAC;QACb,GAAG,EAAE,aAAa;QAClB,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,cAAc;KACzB,CAAC;IAEF;;;;OAIG;;IACF,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;GAE5B,UAAU,CA6Kf;AAED,UAAU,CAAC,MAAM,EAAE,CAAC;AAEpB,eAAe,UAAU,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { ATTENTION_BADGE, AVATAR_TEXT, DISABLED } from \"./generated/i18n/i18n-defaults.js\";\nimport type AvatarColorScheme from \"@ui5/webcomponents/dist/types/AvatarColorScheme.js\";\nimport translate from \"./utils/translate.js\";\n\n// Template\nimport AvatarTemplate from \"./AvatarTemplate.js\";\n\n// Styles\nimport AvatarCss from \"./generated/themes/Avatar.css.js\";\n\nexport enum UDExAvatarColorScheme {\n Mango = \"Mango\",\n Red = \"Red\",\n Raspberry = \"Raspberry\",\n Pink = \"Pink\",\n Indigo = \"Indigo\",\n Blue = \"Blue\",\n Teal = \"Teal\",\n Green = \"Green\",\n Grey = \"Grey\",\n Transparent = \"Transparent\",\n Neutral = \"Neutral\",\n}\n\nexport enum UDExAvatarShape {\n Circle = \"Circle\",\n Square = \"Square\",\n}\n\nexport enum UDExAvatarSize {\n XS = \"XS\",\n S = \"S\",\n M = \"M\",\n L = \"L\",\n XL = \"XL\",\n}\n\nconst UDExToUi5ColorSchemeMap = {\n Mango: \"Accent1\",\n Red: \"Accent2\",\n Raspberry: \"Accent3\",\n Pink: \"Accent4\",\n Indigo: \"Accent5\",\n Blue: \"Accent6\",\n Transparent: \"Accent6\",\n Neutral: \"Accent6\",\n Teal: \"Accent7\",\n Green: \"Accent8\",\n Grey: \"Accent10\",\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-avatar</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Avatar.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-avatar\",\n renderer: jsxRenderer,\n styles: AvatarCss,\n template: AvatarTemplate,\n})\n\n/**\n * Fires when the avatar is clicked.\n *\n * @public\n */\n@event(\"click\", { bubbles: true })\n\nclass UDExAvatar extends UI5Element {\n eventDetails!: {\n \"click\": void,\n };\n /**\n * Defines the displayed initials.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n initials: string = \"\";\n\n /**\n * Defines if the avatar is interactive (focusable and pressable).\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n interactive!: boolean;\n\n /**\n * Defines the text alternative of the component.\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n accessibleName?: string;\n\n /**\n * Defines the design of the component.\n *\n * @default \"Blue\"\n * @public\n */\n @property()\n colorScheme: `${UDExAvatarColorScheme}` = UDExAvatarColorScheme.Blue;\n\n /**\n * Defines whether the component is disabled.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Defines the name of the fallback icon.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n fallbackIcon: string = \"\";\n\n /**\n * Defines the name of the UI5 Icon, that will be displayed.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n icon: string = \"\";\n\n /**\n * Defines the shape of the component.\n *\n * @default \"Circle\"\n * @public\n */\n @property()\n shape: `${UDExAvatarShape}` = UDExAvatarShape.Circle;\n\n /**\n * Defines predefined size of the component.\n *\n * @default \"S\"\n * @public\n */\n @property()\n size: `${UDExAvatarSize}` = UDExAvatarSize.S;\n\n /**\n * Defines the displaying attention badge.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n showAttentionBadge!: boolean;\n\n /**\n * Receives the desired <img> tag\n *\n * @slot image\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n image!: Array<HTMLElement>;\n\n /**\n * Defines the optional badge that will be used for visual affordance.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement })\n badge!: Array<HTMLElement>;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n onAfterRendering(): void {\n this.title = this.initials;\n }\n handleClick(e: Event) {\n e.stopPropagation();\n if (this.interactive) {\n this.fireDecoratorEvent(\"click\");\n }\n }\n\n /**\n * Returns the effective avatar size.\n * @default \"S\"\n * @private\n */\n get effectiveSize(): UDExAvatarSize {\n // we read the attribute, because the \"size\" property will always have a default value\n return this.getAttribute(\"size\") as UDExAvatarSize || this.size;\n }\n\n /**\n * Returns the effective background color.\n * @default \"Blue\"\n * @private\n */\n get effectiveBackgroundColor(): UDExAvatarColorScheme {\n // we read the attribute, because the \"background-color\" property will always have a default value\n return this.getAttribute(\"color-scheme\") as UDExAvatarColorScheme || this.colorScheme;\n }\n\n get getUDExAvatarColorScheme(): AvatarColorScheme {\n return UDExToUi5ColorSchemeMap[this.colorScheme] as AvatarColorScheme;\n }\n\n get imageSlot(): boolean {\n return !!this.image.length;\n }\n\n get badgeSlot(): boolean {\n return !!this.badge.length;\n }\n\n get udexAvatarClass(): string {\n let avatarClass = \"udex-avatar\";\n\n if (this.imageSlot) {\n avatarClass += \" udex-avatar--with-image\";\n }\n\n return avatarClass;\n }\n\n get avatarAccessibleName(): string {\n let accName = `${this.accessibleName ? this.accessibleName : `${translate(UDExAvatar, AVATAR_TEXT)} ${this.initials}`}`;\n accName += ` ${this.disabled ? translate(UDExAvatar, DISABLED) : \"\"}`;\n accName += ` ${this.showAttentionBadge ? translate(UDExAvatar, ATTENTION_BADGE) : \"\"}`;\n return accName;\n }\n}\n\nUDExAvatar.define();\n\nexport default UDExAvatar;\n"]}
@@ -24,6 +24,7 @@ import UDExBreadcrumbsItem from "./BreadcrumbsItem.js";
24
24
  import UDExDropdown from "./Dropdown.js";
25
25
  import UDExLink from "./Link.js";
26
26
  import { AVAILABLE_VALUES, BREADCRUMBS_ARIA_LABEL, BREADCRUMBS_OVERFLOW_ARIA_LABEL, } from "./generated/i18n/i18n-defaults.js";
27
+ import translate from "./utils/translate.js";
27
28
  // Styles
28
29
  import BreadcrumbsCss from "./generated/themes/Breadcrumbs.css.js";
29
30
  import BreadcrumbsPopoverCss from "./generated/themes/BreadcrumbsPopover.css.js";
@@ -203,13 +204,13 @@ let UDExBreadcrumbs = UDExBreadcrumbs_1 = class UDExBreadcrumbs extends UI5Eleme
203
204
  return this._dropdownOpened ? `${rootClass} ${rootClass}__trigger--opened` : rootClass;
204
205
  }
205
206
  get _breadcrumbsAccessibleNameText() {
206
- return UDExBreadcrumbs_1.i18nBundle.getText(BREADCRUMBS_ARIA_LABEL);
207
+ return translate(UDExBreadcrumbs_1, BREADCRUMBS_ARIA_LABEL);
207
208
  }
208
209
  get _dropdownArrowAccessibleNameText() {
209
- return UDExBreadcrumbs_1.i18nBundle.getText(BREADCRUMBS_OVERFLOW_ARIA_LABEL);
210
+ return translate(UDExBreadcrumbs_1, BREADCRUMBS_OVERFLOW_ARIA_LABEL);
210
211
  }
211
212
  get _dropdownAccessibleNameText() {
212
- return UDExBreadcrumbs_1.i18nBundle.getText(AVAILABLE_VALUES);
213
+ return translate(UDExBreadcrumbs_1, AVAILABLE_VALUES);
213
214
  }
214
215
  };
215
216
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"Breadcrumbs.js","sourceRoot":"","sources":["../src/Breadcrumbs.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport { isTabNext, isTabPrevious, isEscape } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport type { LinkClickEventDetail } from \"@ui5/webcomponents/dist/Link.js\";\nimport NavigationMode from \"@ui5/webcomponents-base/dist/types/NavigationMode.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport UI5BreadcrumbsCss from \"@ui5/webcomponents/dist/generated/themes/Breadcrumbs.css.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\nimport \"@ui5/webcomponents-icons/dist/home.js\";\nimport BreadcrumbsTemplate from \"./BreadcrumbsTemplate.js\";\nimport UDExBreadcrumbsItem from \"./BreadcrumbsItem.js\";\nimport UDExDropdown from \"./Dropdown.js\";\nimport UDExLink from \"./Link.js\";\nimport {\n AVAILABLE_VALUES,\n BREADCRUMBS_ARIA_LABEL,\n BREADCRUMBS_OVERFLOW_ARIA_LABEL,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport BreadcrumbsCss from \"./generated/themes/Breadcrumbs.css.js\";\nimport BreadcrumbsPopoverCss from \"./generated/themes/BreadcrumbsPopover.css.js\";\n\ntype UDExBreadcrumbsItemClickEventDetail = {\n item: UDExBreadcrumbsItem;\n altKey?: boolean;\n ctrlKey?: boolean;\n metaKey?: boolean;\n shiftKey?: 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-breadcrumbs</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Breadcrumbs.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-breadcrumbs\",\n renderer: jsxRenderer,\n styles: [UI5BreadcrumbsCss, BreadcrumbsCss, BreadcrumbsPopoverCss],\n template: BreadcrumbsTemplate,\n dependencies: [UDExBreadcrumbsItem, UDExLink, UDExDropdown, UI5Icon],\n})\n/**\n * @public\n * @param { UDExBreadcrumbsItem } item The clicked breadcrumb item\n * @param { boolean } altKey\n * @param { boolean } ctrlKey\n * @param { boolean } metaKey\n * @param { boolean } shiftKey\n */\n@event(\"item-click\", { cancelable: true, bubbles: true })\n\n/**\n * Fired after the dropdown is opened.\n *\n * @public\n */\n@event(\"open\", { bubbles: true })\n\n/**\n * Fired after the dropdown is closed.\n *\n * @public\n */\n@event(\"close\", { bubbles: true })\n\nclass UDExBreadcrumbs extends UI5Element {\n eventDetails!: {\n \"item-click\": UDExBreadcrumbsItemClickEventDetail,\n \"open\": void,\n \"close\": void,\n };\n /**\n * Defines how many breadcrumb items should be visible\n *\n * @default 3\n * @public\n */\n @property({ type: Number })\n showItems: number = 3;\n\n /**\n * Indicates if dropdown is opened\n *\n * @default false\n * @private\n */\n @property({ noAttribute: true, type: Boolean })\n _dropdownOpened!: boolean;\n\n /**\n * Defines the component items.\n *\n * **Note:** Use the `udex-breadcrumbs-item` component to define the desired items.\n * @public\n */\n @slot({ type: HTMLElement, invalidateOnChildChange: true, \"default\": true })\n items!: Array<UDExBreadcrumbsItem>;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _responsivePopover?: UDExDropdown;\n _itemNavigation?: ItemNavigation;\n _shouldFocusFirstVisibleItem!: boolean;\n _rootClass: string;\n\n constructor() {\n super();\n this._rootClass = \"udex-breadcrumbs\";\n }\n\n onBeforeRendering(): void {\n this._preprocessItems();\n }\n\n onAfterRendering(): void {\n this._responsivePopover = this._getResponsePopover();\n this._initItemNavigation();\n this._dropdownArrowLink.forcedTabIndex = \"0\";\n this._handleOutsideClick();\n\n if (this._shouldFocusFirstVisibleItem) {\n this._getFocusableItems()[1].focus();\n this._shouldFocusFirstVisibleItem = false;\n }\n }\n\n _preprocessItems(): void {\n this.items.forEach(item => {\n item._getRealDomRef = () => this.getDomRef()!.querySelector(`[data-ui5-stable*=${item.stableDomRef}]`)!;\n });\n }\n\n _getResponsePopover(): UDExDropdown {\n return this.shadowRoot!.querySelector<UDExDropdown>(`#udex-${this.__id!}-breadcrumbs__popover`)!;\n }\n\n _getFocusableItems(): Array<UDExLink> {\n const items = this._links;\n items.unshift(this._dropdownArrowLink);\n\n return items;\n }\n\n _initItemNavigation(): void {\n if (!this._itemNavigation) {\n this._itemNavigation = new ItemNavigation(this, {\n navigationMode: NavigationMode.Horizontal,\n getItemsCallback: () => this._getFocusableItems(),\n });\n }\n }\n\n _getItems(): Array<UDExBreadcrumbsItem> {\n return this.getSlottedNodes<UDExBreadcrumbsItem>(\"items\");\n }\n\n _onDropdownLinkPress(e: CustomEvent<LinkClickEventDetail>): void {\n const listItem = e.target as HTMLElement,\n items = this._getItems(),\n item = items.find(x => `${x._id}-li` === listItem.id)!;\n\n if (item._isCurrentPageItem) {\n return;\n }\n\n if (this.fireDecoratorEvent(\"item-click\", { item })) {\n window.open(item.href, item.target || \"_self\", \"noopener,noreferrer\");\n this._toggleDropdown();\n }\n\n this.setDropdownCloseState();\n }\n\n _onLinkPress(e: CustomEvent<LinkClickEventDetail>): void {\n const link = e.target as UDExLink,\n items = this._getItems(),\n item = items.find(x => `${x._id}-link` === link.id)!,\n {\n altKey,\n ctrlKey,\n metaKey,\n shiftKey,\n } = e.detail;\n\n if (!this.fireDecoratorEvent(\"item-click\", {\n item,\n altKey,\n ctrlKey,\n metaKey,\n shiftKey,\n })) {\n e.preventDefault();\n }\n\n this.setDropdownCloseState();\n }\n\n _isItemVisible(item: UDExBreadcrumbsItem): boolean {\n return !item.hidden;\n }\n\n _afterDropdownOpen(): void {\n this._dropdownOpened = true;\n this.fireDecoratorEvent(\"open\");\n }\n\n _afterDropdownClose(): void {\n this._dropdownOpened = false;\n this.fireDecoratorEvent(\"close\");\n }\n\n _toggleDropdown(): void {\n if (this._responsivePopover) {\n this._responsivePopover.open = !this._responsivePopover.open;\n this._dropdownOpened = !this._dropdownOpened;\n }\n }\n\n _onfocusin(e: FocusEvent): void {\n const currentItem = e.target as UDExLink;\n\n this._itemNavigation?.setCurrentItem(currentItem);\n }\n\n _handleKeydown(e: KeyboardEvent): void {\n const itemIndex = (e.target as HTMLElement).getAttribute(\"data-index\");\n const isLastItem = itemIndex === (this.items.length - 2).toString();\n const isFirstItem = itemIndex === \"0\";\n\n if (isTabNext(e) && isLastItem) {\n this._shouldFocusFirstVisibleItem = true;\n this._toggleDropdown();\n return;\n }\n\n if ((isTabNext(e) && isLastItem) || (isTabPrevious(e) && isFirstItem) || isEscape(e)) {\n this._toggleDropdown();\n }\n }\n\n _handleOutsideClick(): void {\n document.addEventListener(\"mousedown\", (e: Event) => {\n if (e.target !== this) {\n this.setDropdownCloseState();\n }\n });\n }\n\n setDropdownCloseState(): void {\n if (this._responsivePopover) {\n this._dropdownOpened = false;\n }\n }\n\n /**\n * Getter for the interactive element that opens the overflow\n * @private\n */\n get _dropdownArrowLink(): UDExLink {\n return this.shadowRoot!.querySelector<UDExLink>(\".udex-breadcrumbs__trigger\")!;\n }\n\n /**\n * Getter for the list of links corresponding to the abstract breadcrumb items\n */\n get _links(): Array<UDExLink> {\n return Array.from(this.shadowRoot!.querySelectorAll<UDExLink>(\".udex-breadcrumbs__link-wrapper [udex-link]\"));\n }\n\n /**\n * Getter for the list of abstract breadcrumb items to be rendered as links outside the overflow\n */\n get _linksData(): Array<UDExBreadcrumbsItem> {\n const items = this._visibleItems;\n const itemsCount = items.length;\n\n return items\n .map((item, index) => {\n item._isCurrentPageItem = index === (itemsCount - 1);\n return item;\n });\n }\n\n get _visibleItems(): Array<UDExBreadcrumbsItem> {\n const items = this._getItems();\n const itemsLength = this.showItems ?? 0;\n\n return this._getItems()\n .slice(Math.max(items.length - itemsLength - 1, 0))\n .filter(i => this._isItemVisible(i));\n }\n\n get _dropdownItems(): Array<UDExBreadcrumbsItem> {\n return this._getItems().filter(i => this._isItemVisible(i));\n }\n\n get _triggerClass(): string {\n const rootClass = \"udex-breadcrumbs\";\n return this._dropdownOpened ? `${rootClass} ${rootClass}__trigger--opened` : rootClass;\n }\n\n get _breadcrumbsAccessibleNameText(): string {\n return UDExBreadcrumbs.i18nBundle.getText(BREADCRUMBS_ARIA_LABEL);\n }\n\n get _dropdownArrowAccessibleNameText(): string {\n return UDExBreadcrumbs.i18nBundle.getText(BREADCRUMBS_OVERFLOW_ARIA_LABEL);\n }\n\n get _dropdownAccessibleNameText(): string {\n return UDExBreadcrumbs.i18nBundle.getText(AVAILABLE_VALUES);\n }\n}\n\nUDExBreadcrumbs.define();\n\nexport default UDExBreadcrumbs;\nexport type { UDExBreadcrumbsItemClickEventDetail };\n"]}
1
+ {"version":3,"file":"Breadcrumbs.js","sourceRoot":"","sources":["../src/Breadcrumbs.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport { isTabNext, isTabPrevious, isEscape } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport type { LinkClickEventDetail } from \"@ui5/webcomponents/dist/Link.js\";\nimport NavigationMode from \"@ui5/webcomponents-base/dist/types/NavigationMode.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport UI5BreadcrumbsCss from \"@ui5/webcomponents/dist/generated/themes/Breadcrumbs.css.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\nimport \"@ui5/webcomponents-icons/dist/home.js\";\nimport BreadcrumbsTemplate from \"./BreadcrumbsTemplate.js\";\nimport UDExBreadcrumbsItem from \"./BreadcrumbsItem.js\";\nimport UDExDropdown from \"./Dropdown.js\";\nimport UDExLink from \"./Link.js\";\nimport {\n AVAILABLE_VALUES,\n BREADCRUMBS_ARIA_LABEL,\n BREADCRUMBS_OVERFLOW_ARIA_LABEL,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport translate from \"./utils/translate.js\";\n\n// Styles\nimport BreadcrumbsCss from \"./generated/themes/Breadcrumbs.css.js\";\nimport BreadcrumbsPopoverCss from \"./generated/themes/BreadcrumbsPopover.css.js\";\n\ntype UDExBreadcrumbsItemClickEventDetail = {\n item: UDExBreadcrumbsItem;\n altKey?: boolean;\n ctrlKey?: boolean;\n metaKey?: boolean;\n shiftKey?: 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-breadcrumbs</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Breadcrumbs.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-breadcrumbs\",\n renderer: jsxRenderer,\n styles: [UI5BreadcrumbsCss, BreadcrumbsCss, BreadcrumbsPopoverCss],\n template: BreadcrumbsTemplate,\n dependencies: [UDExBreadcrumbsItem, UDExLink, UDExDropdown, UI5Icon],\n})\n/**\n * @public\n * @param { UDExBreadcrumbsItem } item The clicked breadcrumb item\n * @param { boolean } altKey\n * @param { boolean } ctrlKey\n * @param { boolean } metaKey\n * @param { boolean } shiftKey\n */\n@event(\"item-click\", { cancelable: true, bubbles: true })\n\n/**\n * Fired after the dropdown is opened.\n *\n * @public\n */\n@event(\"open\", { bubbles: true })\n\n/**\n * Fired after the dropdown is closed.\n *\n * @public\n */\n@event(\"close\", { bubbles: true })\n\nclass UDExBreadcrumbs extends UI5Element {\n eventDetails!: {\n \"item-click\": UDExBreadcrumbsItemClickEventDetail,\n \"open\": void,\n \"close\": void,\n };\n /**\n * Defines how many breadcrumb items should be visible\n *\n * @default 3\n * @public\n */\n @property({ type: Number })\n showItems: number = 3;\n\n /**\n * Indicates if dropdown is opened\n *\n * @default false\n * @private\n */\n @property({ noAttribute: true, type: Boolean })\n _dropdownOpened!: boolean;\n\n /**\n * Defines the component items.\n *\n * **Note:** Use the `udex-breadcrumbs-item` component to define the desired items.\n * @public\n */\n @slot({ type: HTMLElement, invalidateOnChildChange: true, \"default\": true })\n items!: Array<UDExBreadcrumbsItem>;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _responsivePopover?: UDExDropdown;\n _itemNavigation?: ItemNavigation;\n _shouldFocusFirstVisibleItem!: boolean;\n _rootClass: string;\n\n constructor() {\n super();\n this._rootClass = \"udex-breadcrumbs\";\n }\n\n onBeforeRendering(): void {\n this._preprocessItems();\n }\n\n onAfterRendering(): void {\n this._responsivePopover = this._getResponsePopover();\n this._initItemNavigation();\n this._dropdownArrowLink.forcedTabIndex = \"0\";\n this._handleOutsideClick();\n\n if (this._shouldFocusFirstVisibleItem) {\n this._getFocusableItems()[1].focus();\n this._shouldFocusFirstVisibleItem = false;\n }\n }\n\n _preprocessItems(): void {\n this.items.forEach(item => {\n item._getRealDomRef = () => this.getDomRef()!.querySelector(`[data-ui5-stable*=${item.stableDomRef}]`)!;\n });\n }\n\n _getResponsePopover(): UDExDropdown {\n return this.shadowRoot!.querySelector<UDExDropdown>(`#udex-${this.__id!}-breadcrumbs__popover`)!;\n }\n\n _getFocusableItems(): Array<UDExLink> {\n const items = this._links;\n items.unshift(this._dropdownArrowLink);\n\n return items;\n }\n\n _initItemNavigation(): void {\n if (!this._itemNavigation) {\n this._itemNavigation = new ItemNavigation(this, {\n navigationMode: NavigationMode.Horizontal,\n getItemsCallback: () => this._getFocusableItems(),\n });\n }\n }\n\n _getItems(): Array<UDExBreadcrumbsItem> {\n return this.getSlottedNodes<UDExBreadcrumbsItem>(\"items\");\n }\n\n _onDropdownLinkPress(e: CustomEvent<LinkClickEventDetail>): void {\n const listItem = e.target as HTMLElement,\n items = this._getItems(),\n item = items.find(x => `${x._id}-li` === listItem.id)!;\n\n if (item._isCurrentPageItem) {\n return;\n }\n\n if (this.fireDecoratorEvent(\"item-click\", { item })) {\n window.open(item.href, item.target || \"_self\", \"noopener,noreferrer\");\n this._toggleDropdown();\n }\n\n this.setDropdownCloseState();\n }\n\n _onLinkPress(e: CustomEvent<LinkClickEventDetail>): void {\n const link = e.target as UDExLink,\n items = this._getItems(),\n item = items.find(x => `${x._id}-link` === link.id)!,\n {\n altKey,\n ctrlKey,\n metaKey,\n shiftKey,\n } = e.detail;\n\n if (!this.fireDecoratorEvent(\"item-click\", {\n item,\n altKey,\n ctrlKey,\n metaKey,\n shiftKey,\n })) {\n e.preventDefault();\n }\n\n this.setDropdownCloseState();\n }\n\n _isItemVisible(item: UDExBreadcrumbsItem): boolean {\n return !item.hidden;\n }\n\n _afterDropdownOpen(): void {\n this._dropdownOpened = true;\n this.fireDecoratorEvent(\"open\");\n }\n\n _afterDropdownClose(): void {\n this._dropdownOpened = false;\n this.fireDecoratorEvent(\"close\");\n }\n\n _toggleDropdown(): void {\n if (this._responsivePopover) {\n this._responsivePopover.open = !this._responsivePopover.open;\n this._dropdownOpened = !this._dropdownOpened;\n }\n }\n\n _onfocusin(e: FocusEvent): void {\n const currentItem = e.target as UDExLink;\n\n this._itemNavigation?.setCurrentItem(currentItem);\n }\n\n _handleKeydown(e: KeyboardEvent): void {\n const itemIndex = (e.target as HTMLElement).getAttribute(\"data-index\");\n const isLastItem = itemIndex === (this.items.length - 2).toString();\n const isFirstItem = itemIndex === \"0\";\n\n if (isTabNext(e) && isLastItem) {\n this._shouldFocusFirstVisibleItem = true;\n this._toggleDropdown();\n return;\n }\n\n if ((isTabNext(e) && isLastItem) || (isTabPrevious(e) && isFirstItem) || isEscape(e)) {\n this._toggleDropdown();\n }\n }\n\n _handleOutsideClick(): void {\n document.addEventListener(\"mousedown\", (e: Event) => {\n if (e.target !== this) {\n this.setDropdownCloseState();\n }\n });\n }\n\n setDropdownCloseState(): void {\n if (this._responsivePopover) {\n this._dropdownOpened = false;\n }\n }\n\n /**\n * Getter for the interactive element that opens the overflow\n * @private\n */\n get _dropdownArrowLink(): UDExLink {\n return this.shadowRoot!.querySelector<UDExLink>(\".udex-breadcrumbs__trigger\")!;\n }\n\n /**\n * Getter for the list of links corresponding to the abstract breadcrumb items\n */\n get _links(): Array<UDExLink> {\n return Array.from(this.shadowRoot!.querySelectorAll<UDExLink>(\".udex-breadcrumbs__link-wrapper [udex-link]\"));\n }\n\n /**\n * Getter for the list of abstract breadcrumb items to be rendered as links outside the overflow\n */\n get _linksData(): Array<UDExBreadcrumbsItem> {\n const items = this._visibleItems;\n const itemsCount = items.length;\n\n return items\n .map((item, index) => {\n item._isCurrentPageItem = index === (itemsCount - 1);\n return item;\n });\n }\n\n get _visibleItems(): Array<UDExBreadcrumbsItem> {\n const items = this._getItems();\n const itemsLength = this.showItems ?? 0;\n\n return this._getItems()\n .slice(Math.max(items.length - itemsLength - 1, 0))\n .filter(i => this._isItemVisible(i));\n }\n\n get _dropdownItems(): Array<UDExBreadcrumbsItem> {\n return this._getItems().filter(i => this._isItemVisible(i));\n }\n\n get _triggerClass(): string {\n const rootClass = \"udex-breadcrumbs\";\n return this._dropdownOpened ? `${rootClass} ${rootClass}__trigger--opened` : rootClass;\n }\n\n get _breadcrumbsAccessibleNameText(): string {\n return translate(UDExBreadcrumbs, BREADCRUMBS_ARIA_LABEL);\n }\n\n get _dropdownArrowAccessibleNameText(): string {\n return translate(UDExBreadcrumbs, BREADCRUMBS_OVERFLOW_ARIA_LABEL);\n }\n\n get _dropdownAccessibleNameText(): string {\n return translate(UDExBreadcrumbs, AVAILABLE_VALUES);\n }\n}\n\nUDExBreadcrumbs.define();\n\nexport default UDExBreadcrumbs;\nexport type { UDExBreadcrumbsItemClickEventDetail };\n"]}
package/dist/Button.js CHANGED
@@ -16,6 +16,7 @@ import UDExButtonSize from "./types/ButtonSize.js";
16
16
  import UDExButtonDesign from "./types/ButtonDesign.js";
17
17
  // Styles
18
18
  import ButtonCss from "./generated/themes/Button.css.js";
19
+ import translate from "./utils/translate.js";
19
20
  /**
20
21
  * @class
21
22
  *
@@ -83,9 +84,9 @@ let UDExButton = UDExButton_1 = class UDExButton extends Button {
83
84
  || designValue === UDExButtonDesign.Warning || designValue === UDExButtonDesign.Attention;
84
85
  let typeText;
85
86
  if (designValue) {
86
- typeText = shouldReadDesign ? UDExButton_1.i18nBundle.getText(UDExButton_1.typeTextMappings()[designValue]) : "";
87
+ typeText = shouldReadDesign ? translate(UDExButton_1, UDExButton_1.typeTextMappings()[designValue]) : "";
87
88
  }
88
- return `${typeText} ${this.toggled ? UDExButton_1.i18nBundle.getText(TOGGLED) : ""}`.trim();
89
+ return `${typeText} ${this.toggled ? translate(UDExButton_1, TOGGLED) : ""}`.trim();
89
90
  }
90
91
  get designValue() {
91
92
  return this.getAttribute("design");