@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/dist/Toast.js CHANGED
@@ -4,19 +4,21 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
+ var UDExToast_1;
7
8
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
8
9
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
9
- import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
10
+ import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
10
11
  import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
12
+ import i18n from "@ui5/webcomponents-base/decorators/i18n.js";
11
13
  import Toast from "@ui5/webcomponents/dist/Toast.js";
12
- import Icon from "@ui5/webcomponents/dist/Icon.js";
13
14
  import "@ui5/webcomponents-icons/dist/sys-enter-2.js";
14
15
  import "@ui5/webcomponents-icons/dist/error.js";
15
16
  import "@ui5/webcomponents-icons/dist/alert.js";
16
17
  import "@ui5/webcomponents-icons/dist/decline.js";
17
- import UDExButton from "./Button.js";
18
18
  import IconDesign from "@ui5/webcomponents/dist/types/IconDesign.js";
19
- import ToastTemplate from "./generated/templates/ToastTemplate.lit.js";
19
+ import ToastTemplate from "./ToastTemplate.js";
20
+ import { TOAST_CLOSE_ACCESSIBLE_NAME } from "./generated/i18n/i18n-defaults.js";
21
+ import translate from "./utils/translate.js";
20
22
  // Styles
21
23
  import ToastCss from "./generated/themes/Toast.css.js";
22
24
  export var UDExToastValueState;
@@ -31,7 +33,6 @@ export var UDExToastValueState;
31
33
  *
32
34
  * <h3 class="comment-api-title">Overview</h3>
33
35
  *
34
- *
35
36
  * <h3>Usage</h3>
36
37
  *
37
38
  * For the <code>udex-toast</code>
@@ -43,7 +44,7 @@ export var UDExToastValueState;
43
44
  * @extends Toast
44
45
  * @public
45
46
  */
46
- let UDExToast = class UDExToast extends Toast {
47
+ let UDExToast = UDExToast_1 = class UDExToast extends Toast {
47
48
  constructor() {
48
49
  super(...arguments);
49
50
  /**
@@ -98,6 +99,9 @@ let UDExToast = class UDExToast extends Toast {
98
99
  this.open = false;
99
100
  this.fireDecoratorEvent("close");
100
101
  }
102
+ get closeAccessibleName() {
103
+ return translate(UDExToast_1, TOAST_CLOSE_ACCESSIBLE_NAME);
104
+ }
101
105
  };
102
106
  __decorate([
103
107
  property()
@@ -108,13 +112,15 @@ __decorate([
108
112
  __decorate([
109
113
  property({ type: Boolean })
110
114
  ], UDExToast.prototype, "open", void 0);
111
- UDExToast = __decorate([
115
+ __decorate([
116
+ i18n("@sapudex/web-components")
117
+ ], UDExToast, "i18nBundle", void 0);
118
+ UDExToast = UDExToast_1 = __decorate([
112
119
  customElement({
113
120
  tag: "udex-toast",
114
- renderer: litRender,
121
+ renderer: jsxRenderer,
115
122
  styles: [Toast.styles, ToastCss],
116
123
  template: ToastTemplate,
117
- dependencies: [Icon, UDExButton],
118
124
  })
119
125
  ], UDExToast);
120
126
  UDExToast.define();
package/dist/Toast.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.js","sourceRoot":"","sources":["../src/Toast.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport Toast from \"@ui5/webcomponents/dist/Toast.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/sys-enter-2.js\";\nimport \"@ui5/webcomponents-icons/dist/error.js\";\nimport \"@ui5/webcomponents-icons/dist/alert.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport UDExButton from \"./Button.js\";\nimport IconDesign from \"@ui5/webcomponents/dist/types/IconDesign.js\";\nimport ToastTemplate from \"./generated/templates/ToastTemplate.lit.js\";\n\n// Styles\nimport ToastCss from \"./generated/themes/Toast.css.js\";\n\nexport enum UDExToastValueState {\n Action = \"Action\",\n Success = \"Success\",\n Warning = \"Warning\",\n Error = \"Error\"\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-toast</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Toast.js\";</code>\n *\n * @constructor\n * @extends Toast\n * @public\n */\n@customElement({\n tag: \"udex-toast\",\n renderer: litRender,\n styles: [Toast.styles, ToastCss],\n template: ToastTemplate,\n dependencies: [Icon, UDExButton],\n})\nclass UDExToast extends Toast {\n /**\n * Defines design state of component\n *\n * @public\n * @default \"Action\"\n */\n @property()\n valueState: `${UDExToastValueState}` = UDExToastValueState.Action;\n\n /**\n * Defines if close icon should be visible\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n showCloseIcon!: boolean;\n\n /**\n * Indicates whether the component is open (visible).\n * @default false\n * @public\n * @since 2.0.0\n */\n @property({ type: Boolean })\n open = false;\n\n onEnterDOM(): void {\n super.onEnterDOM();\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n get withIcon(): boolean {\n return this.valueState !== UDExToastValueState.Action;\n }\n\n get iconName(): string {\n switch (this.valueState) {\n case UDExToastValueState.Success:\n return \"sys-enter-2\";\n case UDExToastValueState.Error:\n return \"error\";\n case UDExToastValueState.Warning:\n return \"alert\";\n default:\n return \"\";\n }\n }\n\n get iconDesign(): IconDesign {\n switch (this.valueState) {\n case UDExToastValueState.Success:\n return IconDesign.Positive;\n case UDExToastValueState.Error:\n return IconDesign.Negative;\n case UDExToastValueState.Warning:\n return IconDesign.Critical;\n default:\n return IconDesign.Default;\n }\n }\n\n closeToast() {\n this.open = false;\n this.fireDecoratorEvent(\"close\");\n }\n}\n\nUDExToast.define();\n\nexport default UDExToast;\n"]}
1
+ {"version":3,"file":"Toast.js","sourceRoot":"","sources":["../src/Toast.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport i18n from \"@ui5/webcomponents-base/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/i18nBundle.js\";\nimport Toast from \"@ui5/webcomponents/dist/Toast.js\";\nimport \"@ui5/webcomponents-icons/dist/sys-enter-2.js\";\nimport \"@ui5/webcomponents-icons/dist/error.js\";\nimport \"@ui5/webcomponents-icons/dist/alert.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport IconDesign from \"@ui5/webcomponents/dist/types/IconDesign.js\";\nimport ToastTemplate from \"./ToastTemplate.js\";\nimport { TOAST_CLOSE_ACCESSIBLE_NAME } from \"./generated/i18n/i18n-defaults.js\";\nimport translate from \"./utils/translate.js\";\n\n// Styles\nimport ToastCss from \"./generated/themes/Toast.css.js\";\n\nexport enum UDExToastValueState {\n Action = \"Action\",\n Success = \"Success\",\n Warning = \"Warning\",\n Error = \"Error\"\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-toast</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Toast.js\";</code>\n *\n * @constructor\n * @extends Toast\n * @public\n */\n\n@customElement({\n tag: \"udex-toast\",\n renderer: jsxRenderer,\n styles: [Toast.styles, ToastCss],\n template: ToastTemplate,\n})\n\nclass UDExToast extends Toast {\n /**\n * Defines design state of component\n *\n * @public\n * @default \"Action\"\n */\n @property()\n valueState: `${UDExToastValueState}` = UDExToastValueState.Action;\n\n /**\n * Defines if close icon should be visible\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n showCloseIcon!: boolean;\n\n /**\n * Indicates whether the component is open (visible).\n * @default false\n * @public\n * @since 2.0.0\n */\n @property({ type: Boolean })\n open = false;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n onEnterDOM(): void {\n super.onEnterDOM();\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n get withIcon(): boolean {\n return this.valueState !== UDExToastValueState.Action;\n }\n\n get iconName(): string {\n switch (this.valueState) {\n case UDExToastValueState.Success:\n return \"sys-enter-2\";\n case UDExToastValueState.Error:\n return \"error\";\n case UDExToastValueState.Warning:\n return \"alert\";\n default:\n return \"\";\n }\n }\n\n get iconDesign(): IconDesign {\n switch (this.valueState) {\n case UDExToastValueState.Success:\n return IconDesign.Positive;\n case UDExToastValueState.Error:\n return IconDesign.Negative;\n case UDExToastValueState.Warning:\n return IconDesign.Critical;\n default:\n return IconDesign.Default;\n }\n }\n\n closeToast(): void {\n this.open = false;\n this.fireDecoratorEvent(\"close\");\n }\n\n get closeAccessibleName(): string {\n return translate(UDExToast, TOAST_CLOSE_ACCESSIBLE_NAME);\n }\n}\n\nUDExToast.define();\n\nexport default UDExToast;\n"]}
@@ -0,0 +1,2 @@
1
+ import type Toast from "./Toast.js";
2
+ export default function ToastTemplate(this: Toast): import("@ui5/webcomponents-base").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@ui5/webcomponents-base/jsx-runtime";
2
+ import UI5Icon from "@ui5/webcomponents/dist/Icon.js";
3
+ import UDExButton from "./Button.js";
4
+ import UDExButtonSize from "./types/ButtonSize.js";
5
+ import UDExButtonDesign from "./types/ButtonDesign.js";
6
+ import decline from "@ui5/webcomponents-icons/dist/decline.js";
7
+ export default function ToastTemplate() {
8
+ const rootClass = "udex-toast";
9
+ return (_jsx(_Fragment, { children: this.open && (_jsxs("div", { className: `${rootClass} ui5-toast-root`, role: "alert", tabIndex: 0, children: [this.withIcon && (_jsx(UI5Icon, { class: `${rootClass}__icon`, name: this.iconName, design: this.iconDesign })), _jsx("bdi", { children: _jsx("slot", {}) }), this.showCloseIcon && (_jsx(UDExButton, { class: `${rootClass}__button`, size: UDExButtonSize.Small, icon: decline, design: UDExButtonDesign.Tertiary, accessibleName: this.closeAccessibleName, onClick: this.closeToast }))] })) }));
10
+ }
11
+ //# sourceMappingURL=ToastTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToastTemplate.js","sourceRoot":"","sources":["../src/ToastTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,OAAO,MAAM,iCAAiC,CAAC;AACtD,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,cAAc,MAAM,uBAAuB,CAAC;AACnD,OAAO,gBAAgB,MAAM,yBAAyB,CAAC;AACvD,OAAO,OAAO,MAAM,0CAA0C,CAAC;AAE/D,MAAM,CAAC,OAAO,UAAU,aAAa;IACnC,MAAM,SAAS,GAAG,YAAY,CAAC;IAE/B,OAAO,CACL,4BACG,IAAI,CAAC,IAAI,IAAI,CACZ,eACE,SAAS,EAAE,GAAG,SAAS,iBAAiB,EACxC,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAE,CAAC,aACV,IAAI,CAAC,QAAQ,IAAI,CAChB,KAAC,OAAO,IACN,KAAK,EAAE,GAAG,SAAS,QAAQ,EAC3B,IAAI,EAAE,IAAI,CAAC,QAAQ,EACnB,MAAM,EAAE,IAAI,CAAC,UAAU,GACf,CACX,EACD,wBACE,gBAAa,GACT,EACL,IAAI,CAAC,aAAa,IAAI,CACrB,KAAC,UAAU,IACT,KAAK,EAAE,GAAG,SAAS,UAAU,EAC7B,IAAI,EAAE,cAAc,CAAC,KAAK,EAC1B,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,gBAAgB,CAAC,QAAQ,EACjC,cAAc,EAAE,IAAI,CAAC,mBAAmB,EACxC,OAAO,EAAE,IAAI,CAAC,UAAU,GACb,CACd,IACG,CACP,GACA,CACJ,CAAC;AACJ,CAAC","sourcesContent":["import type Toast from \"./Toast.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport UDExButton from \"./Button.js\";\nimport UDExButtonSize from \"./types/ButtonSize.js\";\nimport UDExButtonDesign from \"./types/ButtonDesign.js\";\nimport decline from \"@ui5/webcomponents-icons/dist/decline.js\";\n\nexport default function ToastTemplate(this: Toast) {\n const rootClass = \"udex-toast\";\n\n return (\n <>\n {this.open && (\n <div\n className={`${rootClass} ui5-toast-root`}\n role=\"alert\"\n tabIndex={0}>\n {this.withIcon && (\n <UI5Icon\n class={`${rootClass}__icon`}\n name={this.iconName}\n design={this.iconDesign}>\n </UI5Icon>\n )}\n <bdi>\n <slot></slot>\n </bdi>\n {this.showCloseIcon && (\n <UDExButton\n class={`${rootClass}__button`}\n size={UDExButtonSize.Small}\n icon={decline}\n design={UDExButtonDesign.Tertiary}\n accessibleName={this.closeAccessibleName}\n onClick={this.closeToast}>\n </UDExButton>\n )}\n </div>\n )}\n </>\n );\n}\n"]}
@@ -13,6 +13,7 @@ import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
13
13
  import { READ_LESS, READ_MORE } from "./generated/i18n/i18n-defaults.js";
14
14
  import UDExButton from "./Button.js";
15
15
  import TruncatedTextTemplate from "./TruncatedTextTemplate.js";
16
+ import translate from "./utils/translate.js";
16
17
  // Styles
17
18
  import TruncatedTextCss from "./generated/themes/TruncatedText.css.js";
18
19
  export var ErrorVariableName;
@@ -52,8 +53,8 @@ let UDExTruncatedText = UDExTruncatedText_1 = class UDExTruncatedText extends UI
52
53
  }
53
54
  get buttonLabel() {
54
55
  return this.initiallyExpanded
55
- ? UDExTruncatedText_1.i18nBundle.getText(READ_LESS)
56
- : UDExTruncatedText_1.i18nBundle.getText(READ_MORE);
56
+ ? translate(UDExTruncatedText_1, READ_LESS)
57
+ : translate(UDExTruncatedText_1, READ_MORE);
57
58
  }
58
59
  get validatedCharLimit() {
59
60
  return (Number(this.charLimit) < 0) ? 0 : this.charLimit;
@@ -1 +1 @@
1
- {"version":3,"file":"TruncatedText.js","sourceRoot":"","sources":["../src/TruncatedText.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 i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { READ_LESS, READ_MORE } from \"./generated/i18n/i18n-defaults.js\";\nimport UDExButton from \"./Button.js\";\nimport TruncatedTextTemplate from \"./TruncatedTextTemplate.js\";\n\n// Styles\nimport TruncatedTextCss from \"./generated/themes/TruncatedText.css.js\";\n\nexport enum ErrorVariableName {\n charLimit = \"char-limit\"\n}\n\nconst ellipsisSymbols = \"...\";\nconst lineEndRegExp = new RegExp(/($)|([,.]+)$|([,.]+)?\\s+(\\S*)$/);\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code> udex-truncated-text </code> component is a component used to limit and toggle text visibility.\n *\n * @constructor\n * @extends UI5Element\n * @tagname udex-truncated-text\n * @public\n */\n@customElement({\n tag: \"udex-truncated-text\",\n renderer: jsxRenderer,\n styles: TruncatedTextCss,\n template: TruncatedTextTemplate,\n dependencies: [UDExButton],\n})\n\nclass UDExTruncatedText extends UI5Element {\n /**\n * Defines if the text is initially expanded.\n *\n * @public\n */\n @property({ type: Boolean })\n initiallyExpanded!: boolean;\n\n /**\n * Defines direction of the text.\n *\n * @private\n */\n @property({ type: String })\n _direction?: string;\n\n /**\n * Indicates the element text\n *\n * @public\n */\n @property({ type: String })\n text!: string;\n\n /**\n * Indicates the limit for chars\n *\n * @public\n * @default 150\n */\n @property({ type: Number })\n charLimit: number = 150;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n get visibleText(): string {\n return this.initiallyExpanded ? `${this.text} ` : this.truncatedText;\n }\n\n get truncatedText(): string {\n return this.text.substring(0, this.cropAfter()).replace(lineEndRegExp, ellipsisSymbols);\n }\n\n get buttonLabel(): string {\n return this.initiallyExpanded\n ? UDExTruncatedText.i18nBundle.getText(READ_LESS)\n : UDExTruncatedText.i18nBundle.getText(READ_MORE);\n }\n\n get validatedCharLimit(): number {\n return (Number(this.charLimit) < 0) ? 0 : this.charLimit;\n }\n\n onBeforeRendering(): void {\n this.validateVariables(ErrorVariableName.charLimit, Number(this.charLimit));\n }\n\n cropAfter(): number {\n return this.text.substring(0, Number(this.validatedCharLimit)).trim().length;\n }\n\n validateVariables(name: string, value: number): void {\n if (value < 0) {\n console.warn(`The variable ${name} cannot take a negative value`);\n }\n }\n\n onToggleClick(): void {\n this.initiallyExpanded = !this.initiallyExpanded;\n }\n}\n\nUDExTruncatedText.define();\n\nexport default UDExTruncatedText;\n"]}
1
+ {"version":3,"file":"TruncatedText.js","sourceRoot":"","sources":["../src/TruncatedText.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 i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { READ_LESS, READ_MORE } from \"./generated/i18n/i18n-defaults.js\";\nimport UDExButton from \"./Button.js\";\nimport TruncatedTextTemplate from \"./TruncatedTextTemplate.js\";\nimport translate from \"./utils/translate.js\";\n\n// Styles\nimport TruncatedTextCss from \"./generated/themes/TruncatedText.css.js\";\n\nexport enum ErrorVariableName {\n charLimit = \"char-limit\"\n}\n\nconst ellipsisSymbols = \"...\";\nconst lineEndRegExp = new RegExp(/($)|([,.]+)$|([,.]+)?\\s+(\\S*)$/);\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code> udex-truncated-text </code> component is a component used to limit and toggle text visibility.\n *\n * @constructor\n * @extends UI5Element\n * @tagname udex-truncated-text\n * @public\n */\n@customElement({\n tag: \"udex-truncated-text\",\n renderer: jsxRenderer,\n styles: TruncatedTextCss,\n template: TruncatedTextTemplate,\n dependencies: [UDExButton],\n})\n\nclass UDExTruncatedText extends UI5Element {\n /**\n * Defines if the text is initially expanded.\n *\n * @public\n */\n @property({ type: Boolean })\n initiallyExpanded!: boolean;\n\n /**\n * Defines direction of the text.\n *\n * @private\n */\n @property({ type: String })\n _direction?: string;\n\n /**\n * Indicates the element text\n *\n * @public\n */\n @property({ type: String })\n text!: string;\n\n /**\n * Indicates the limit for chars\n *\n * @public\n * @default 150\n */\n @property({ type: Number })\n charLimit: number = 150;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n get visibleText(): string {\n return this.initiallyExpanded ? `${this.text} ` : this.truncatedText;\n }\n\n get truncatedText(): string {\n return this.text.substring(0, this.cropAfter()).replace(lineEndRegExp, ellipsisSymbols);\n }\n\n get buttonLabel(): string {\n return this.initiallyExpanded\n ? translate(UDExTruncatedText, READ_LESS)\n : translate(UDExTruncatedText, READ_MORE);\n }\n\n get validatedCharLimit(): number {\n return (Number(this.charLimit) < 0) ? 0 : this.charLimit;\n }\n\n onBeforeRendering(): void {\n this.validateVariables(ErrorVariableName.charLimit, Number(this.charLimit));\n }\n\n cropAfter(): number {\n return this.text.substring(0, Number(this.validatedCharLimit)).trim().length;\n }\n\n validateVariables(name: string, value: number): void {\n if (value < 0) {\n console.warn(`The variable ${name} cannot take a negative value`);\n }\n }\n\n onToggleClick(): void {\n this.initiallyExpanded = !this.initiallyExpanded;\n }\n}\n\nUDExTruncatedText.define();\n\nexport default UDExTruncatedText;\n"]}
package/dist/Upload.js CHANGED
@@ -20,6 +20,7 @@ import UDExButtonSize from "./types/ButtonSize.js";
20
20
  import UDExList from "./List.js";
21
21
  import UDExUploadItem from "./UploadItem.js";
22
22
  import UploadTemplate from "./generated/templates/UploadTemplate.lit.js";
23
+ import translate from "./utils/translate.js";
23
24
  // Styles
24
25
  import UploadCss from "./generated/themes/Upload.css.js";
25
26
  import { BreakpointUtils } from "./utils/Breakpoints.js";
@@ -179,7 +180,7 @@ let UDExUpload = UDExUpload_1 = class UDExUpload extends UI5Element {
179
180
  return uploader.shadowRoot.querySelector("input");
180
181
  }
181
182
  get uploadButtonAriaLabel() {
182
- return UDExUpload_1.i18nBundle.getText(UPLOAD_BUTTON_LABEL);
183
+ return translate(UDExUpload_1, UPLOAD_BUTTON_LABEL);
183
184
  }
184
185
  get listBusy() {
185
186
  return !this.items.length;
@@ -1 +1 @@
1
- {"version":3,"file":"Upload.js","sourceRoot":"","sources":["../src/Upload.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\n\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.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport FileUploader from \"@ui5/webcomponents/dist/FileUploader.js\";\nimport type { FileUploaderChangeEventDetail } from \"@ui5/webcomponents/dist/FileUploader.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { UPLOAD_BUTTON_LABEL } from \"./generated/i18n/i18n-defaults.js\";\nimport UDExButton from \"./Button.js\";\nimport UDExButtonSize from \"./types/ButtonSize.js\";\nimport UDExList from \"./List.js\";\nimport UDExUploadItem from \"./UploadItem.js\";\nimport UploadTemplate from \"./generated/templates/UploadTemplate.lit.js\";\nimport type FileData from \"./types/FileData.js\";\n\n// Styles\nimport UploadCss from \"./generated/themes/Upload.css.js\";\nimport { BreakpointUtils } from \"./utils/Breakpoints.js\";\n\nconst convertBytesToMegabytes = (bytes: number) => (bytes / 1024) / 1024;\n\ntype UDExUploadBaseEventDetail = {\n files: Array<FileData>\n}\n\ntype UDExUploadFileDeleteEventDetail = {\n file: UDExUploadItem,\n}\n\ntype UDExUploadFileChangeEventDetail = {\n files: Array<UDExUploadItem>\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-upload</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Upload.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-upload\",\n renderer: litRender,\n styles: UploadCss,\n template: UploadTemplate,\n dependencies: [FileUploader, UDExList, UDExButton, UDExUploadItem],\n})\n\n/**\n * Triggered when the uploaded file exceeds the maximum allowed size.\n *\n * @public\n * @param {Array<FileData>} files An array of files that exceed the maximum allowed size.\n */\n@event(\"file-size-exceed\", { bubbles: true })\n\n/**\n * Triggered when the user deletes the uploaded item.\n *\n * @public\n * @param {UDExUploadItem} file The deleted upload item.\n */\n@event(\"file-delete\", { bubbles: true })\n\n/**\n * Triggered when the user uploads the item.\n *\n * @public\n * @param {Array<UDExUploadItem>} files An array of the uploaded items.\n */\n@event(\"file-change\", { bubbles: true })\n\n/**\n * Triggered when the user attempts to upload a duplicate file.\n *\n * @public\n * @param {Array<FileData>} files An array of duplicate files.\n */\n@event(\"file-duplicate\", { bubbles: true })\n\n/**\n * Triggered when the user attempts to upload a file.\n *\n * @public\n * @param {FileList} files The uploaded files.\n */\n@event(\"change\", { bubbles: true })\n\nclass UDExUpload extends UI5Element {\n eventDetails!: {\n \"file-size-exceed\": UDExUploadBaseEventDetail,\n \"file-delete\": UDExUploadFileDeleteEventDetail,\n \"file-change\": UDExUploadFileChangeEventDetail,\n \"file-duplicate\": UDExUploadBaseEventDetail,\n \"change\": FileUploaderChangeEventDetail\n };\n /**\n * Defines the title of the upload.\n *\n * @public\n */\n @property({ type: String })\n uploadTitle!: string;\n\n /**\n * Defines an optional upporting message shown in 2 cases, both in single uplaod mode.\n * 1) When more than one file is uploaded and the button for uploading is clicked.\n * 2) When the button for uploading is disabled and a file has already been uploaded.\n *\n * @public\n */\n @property({ type: String })\n supportingText!: string;\n\n /**\n * Defines if uploader is required.\n *\n * @public\n */\n @property({ type: Boolean })\n required: boolean = false;\n\n /**\n * Defines if the button for uploading is disabled.\n *\n * @public\n */\n @property({ type: Boolean })\n disabled: boolean = false;\n\n /**\n * Defines if uploading multiple files is allowed.\n *\n * @public\n */\n @property({ type: Boolean })\n multiple!: boolean;\n\n /**\n * Defines the acceptable file formats for uploading.\n *\n * @public\n */\n @property({ type: String })\n accept!: string;\n\n /**\n * Defines the maximum allowed size of the file for uploading.\n *\n * @default undefined\n * @public\n */\n @property({ type: Number })\n maxFileSize!: number;\n\n /**\n * Defines the additional text below the title of the upload.\n *\n * @public\n */\n @property({ type: String })\n additionalText!: string;\n\n /**\n * Defines the text in the upload button.\n *\n * @public\n */\n @property({ type: String })\n uploadButtonText!: string;\n\n /**\n * Defines if a file is already uploaded when multiple is false.\n *\n * @private\n */\n @property({ type: Boolean })\n _filesFull: boolean = false;\n\n /**\n * Defines the uploaded files.\n *\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n items!: Array<UDExUploadItem>;\n\n /**\n * Defines the percentage of the upload.\n *\n * @default \"Large\"\n * @private\n */\n @property({ type: String })\n _buttonSize: `${UDExButtonSize}` = UDExButtonSize.Large;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _uploadedFiles: FileData[] = [];\n _handleResizeBound: ResizeObserverCallback;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this, this._handleResizeBound);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n onAfterRendering(): void {\n if (this._filesFull) {\n this._filesFull = this.fileNumberExceeded;\n }\n }\n\n handleUploadClick(e: Event) {\n this._filesFull = this.fileNumberExceeded;\n if (this.fileNumberExceeded) {\n e.preventDefault();\n }\n }\n\n handleUploadFile(e: CustomEvent<FileUploaderChangeEventDetail>) {\n const { files } = e.target as HTMLInputElement;\n if (!files?.length || this.fileNumberExceeded) {\n e.stopPropagation();\n }\n\n const duplicateFiles = this._getDuplicateFiles(files!);\n if (duplicateFiles.length) {\n e.stopPropagation();\n this.fireDecoratorEvent(\"file-duplicate\", {\n files: duplicateFiles,\n });\n this.fileUploader.value = \"\";\n return;\n }\n\n const newFiles = Array.from(files!).map(file => ({\n fileName: file.name,\n fileSize: file.size,\n }));\n\n this._uploadedFiles = [...this._uploadedFiles, ...newFiles];\n\n const exceededFilesData = this.maxFileSize ? this._getExceededFiles(files!) : [];\n if (exceededFilesData.length) {\n e.stopPropagation();\n this.fireDecoratorEvent(\"file-size-exceed\", {\n files: exceededFilesData,\n });\n return;\n }\n\n this.fireEvent(\"change\", { files });\n }\n\n handleSelectionChange(e: CustomEvent) {\n const uploadedFiles = e.detail.listItems as UDExUploadItem[];\n this.fireDecoratorEvent(\"file-change\", { files: uploadedFiles });\n this.fileUploader.value = \"\";\n }\n\n _handleResize() {\n this._buttonSize = BreakpointUtils.isAtMost(\"S\") ? UDExButtonSize.Medium : UDExButtonSize.Large;\n }\n\n handleRemoveFile(e: CustomEvent) {\n const removedFile = e.target as UDExUploadItem;\n this.fireDecoratorEvent(\"file-delete\", { file: removedFile });\n this._uploadedFiles = this._uploadedFiles.filter(file => file.fileName !== removedFile.fileName);\n this.fileUploader.value = \"\";\n }\n\n _isDuplicateFile(file: string): boolean {\n return this._uploadedFiles.some(uploadedFile => uploadedFile.fileName === file);\n }\n\n _getExceededFiles(files: FileList): Array<FileData> {\n const filesArray = Array.from(files);\n const exceededFiles: Array<FileData> = [];\n\n for (let i = 0; i < filesArray.length; i++) {\n const fileSize = convertBytesToMegabytes(filesArray[i].size);\n if (fileSize > this.maxFileSize) {\n exceededFiles.push({\n fileName: filesArray[i].name,\n fileSize,\n });\n }\n }\n return exceededFiles;\n }\n\n _getDuplicateFiles(files: FileList): Array<FileData> {\n const filesArray = Array.from(files);\n const duplicateFiles: Array<FileData> = [];\n\n for (let i = 0; i < filesArray.length; i++) {\n const fileSize = convertBytesToMegabytes(filesArray[i].size);\n const { name } = filesArray[i];\n\n const potentialDuplicate: FileData = {\n fileSize,\n fileName: name,\n };\n\n if (this._isDuplicateFile(potentialDuplicate.fileName)) {\n duplicateFiles.push(potentialDuplicate);\n }\n }\n\n return duplicateFiles;\n }\n\n get showSupportingText(): boolean {\n return this.disabled || this._filesFull;\n }\n\n get supportingTextClasses(): string {\n if (this.disabled && !!this.supportingText) {\n return \"udex-upload__supporting-text\";\n }\n return \"udex-upload__supporting-error-text\";\n }\n\n get fileUploader(): HTMLInputElement {\n const uploader = this.shadowRoot!.querySelector<FileUploader>(\"[ui5-file-uploader]\")!;\n return uploader.shadowRoot!.querySelector(\"input\")!;\n }\n\n get uploadButtonAriaLabel(): string {\n return UDExUpload.i18nBundle.getText(UPLOAD_BUTTON_LABEL);\n }\n\n get listBusy(): boolean {\n return !this.items.length;\n }\n\n get fileNumberExceeded(): boolean {\n return !this.multiple && this.items.length >= 1;\n }\n}\n\nUDExUpload.define();\n\nexport default UDExUpload;\nexport type { UDExUploadBaseEventDetail, UDExUploadFileChangeEventDetail, UDExUploadFileDeleteEventDetail };\n"]}
1
+ {"version":3,"file":"Upload.js","sourceRoot":"","sources":["../src/Upload.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AAEpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,EAAE,IAAI,EAAE,MAAM,4CAA4C,CAAC;AAElE,OAAO,aAAa,MAAM,wDAAwD,CAAC;AACnF,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,YAAY,MAAM,yCAAyC,CAAC;AAEnE,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAEnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,cAAc,MAAM,uBAAuB,CAAC;AACnD,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,cAAc,MAAM,iBAAiB,CAAC;AAC7C,OAAO,cAAc,MAAM,6CAA6C,CAAC;AAEzE,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAE7C,SAAS;AACT,OAAO,SAAS,MAAM,kCAAkC,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,uBAAuB,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;AAczE;;;;;;;;;;;;;;;;GAgBG;AAiDH,IAAM,UAAU,kBAAhB,MAAM,UAAW,SAAQ,UAAU;IAkHjC;QACE,KAAK,EAAE,CAAC;QAzFV;;;;WAIG;QAED,aAAQ,GAAY,KAAK,CAAC;QAE5B;;;;WAIG;QAED,aAAQ,GAAY,KAAK,CAAC;QA2C5B;;;;WAIG;QAED,eAAU,GAAY,KAAK,CAAC;QAU9B;;;;;WAKG;QAED,gBAAW,GAAwB,cAAc,CAAC,KAAK,CAAC;QAK1D,mBAAc,GAAe,EAAE,CAAC;QAK9B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED,UAAU;QACR,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACxD,CAAC;IAED,SAAS;QACP,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC1D,CAAC;IAED,gBAAgB;QACd,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,iBAAiB,CAAC,CAAQ;QACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAC1C,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,CAAC,CAAC,cAAc,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAED,gBAAgB,CAAC,CAA6C;QAC5D,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,MAA0B,CAAC;QAC/C,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC9C,CAAC,CAAC,eAAe,EAAE,CAAC;QACtB,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAM,CAAC,CAAC;QACvD,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;YAC1B,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE;gBACxC,KAAK,EAAE,cAAc;aACtB,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/C,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,QAAQ,EAAE,IAAI,CAAC,IAAI;SACpB,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,QAAQ,CAAC,CAAC;QAE5D,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjF,IAAI,iBAAiB,CAAC,MAAM,EAAE,CAAC;YAC7B,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,EAAE;gBAC1C,KAAK,EAAE,iBAAiB;aACzB,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,qBAAqB,CAAC,CAAc;QAClC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,SAA6B,CAAC;QAC7D,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,EAAE,CAAC;IAC/B,CAAC;IAED,aAAa;QACX,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC;IAClG,CAAC;IAED,gBAAgB,CAAC,CAAc;QAC7B,MAAM,WAAW,GAAG,CAAC,CAAC,MAAwB,CAAC;QAC/C,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,WAAW,CAAC,QAAQ,CAAC,CAAC;QACjG,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,EAAE,CAAC;IAC/B,CAAC;IAED,gBAAgB,CAAC,IAAY;QAC3B,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;IAClF,CAAC;IAED,iBAAiB,CAAC,KAAe;QAC/B,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,aAAa,GAAoB,EAAE,CAAC;QAE1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,QAAQ,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC7D,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBAChC,aAAa,CAAC,IAAI,CAAC;oBACjB,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI;oBAC5B,QAAQ;iBACT,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,kBAAkB,CAAC,KAAe;QAChC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,cAAc,GAAoB,EAAE,CAAC;QAE3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,QAAQ,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC7D,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAE/B,MAAM,kBAAkB,GAAa;gBACnC,QAAQ;gBACR,QAAQ,EAAE,IAAI;aACf,CAAC;YAEF,IAAI,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACvD,cAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC;IAC1C,CAAC;IAED,IAAI,qBAAqB;QACvB,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YAC3C,OAAO,8BAA8B,CAAC;QACxC,CAAC;QACD,OAAO,oCAAoC,CAAC;IAC9C,CAAC;IAED,IAAI,YAAY;QACd,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAW,CAAC,aAAa,CAAe,qBAAqB,CAAE,CAAC;QACtF,OAAO,QAAQ,CAAC,UAAW,CAAC,aAAa,CAAC,OAAO,CAAE,CAAC;IACtD,CAAC;IAED,IAAI,qBAAqB;QACvB,OAAO,SAAS,CAAC,YAAU,EAAE,mBAAmB,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IAClD,CAAC;CACF,CAAA;AAtPG;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+CACJ;AAUrB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;kDACD;AAQxB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;4CACA;AAQ1B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;4CACA;AAQ1B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;4CACP;AAQnB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0CACT;AAShB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+CACJ;AAQrB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;kDACD;AAQxB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oDACC;AAQ1B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;8CACE;AAQ5B;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;yCACb;AAS9B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+CAC+B;AAGnD;IADN,IAAI,CAAC,yBAAyB,CAAC;oCACF;AA7G1B,UAAU;IAhDf,aAAa,CAAC;QACb,GAAG,EAAE,aAAa;QAClB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,cAAc;QACxB,YAAY,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,CAAC;KACnE,CAAC;IAEF;;;;;OAKG;;IACF,KAAK,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAE7C;;;;;OAKG;;IACF,KAAK,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAExC;;;;;OAKG;;IACF,KAAK,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAExC;;;;;OAKG;;IACF,KAAK,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAE3C;;;;;OAKG;;IACF,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;GAE7B,UAAU,CAoQf;AAED,UAAU,CAAC,MAAM,EAAE,CAAC;AAEpB,eAAe,UAAU,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\n\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.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport FileUploader from \"@ui5/webcomponents/dist/FileUploader.js\";\nimport type { FileUploaderChangeEventDetail } from \"@ui5/webcomponents/dist/FileUploader.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { UPLOAD_BUTTON_LABEL } from \"./generated/i18n/i18n-defaults.js\";\nimport UDExButton from \"./Button.js\";\nimport UDExButtonSize from \"./types/ButtonSize.js\";\nimport UDExList from \"./List.js\";\nimport UDExUploadItem from \"./UploadItem.js\";\nimport UploadTemplate from \"./generated/templates/UploadTemplate.lit.js\";\nimport type FileData from \"./types/FileData.js\";\nimport translate from \"./utils/translate.js\";\n\n// Styles\nimport UploadCss from \"./generated/themes/Upload.css.js\";\nimport { BreakpointUtils } from \"./utils/Breakpoints.js\";\n\nconst convertBytesToMegabytes = (bytes: number) => (bytes / 1024) / 1024;\n\ntype UDExUploadBaseEventDetail = {\n files: Array<FileData>\n}\n\ntype UDExUploadFileDeleteEventDetail = {\n file: UDExUploadItem,\n}\n\ntype UDExUploadFileChangeEventDetail = {\n files: Array<UDExUploadItem>\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-upload</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Upload.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-upload\",\n renderer: litRender,\n styles: UploadCss,\n template: UploadTemplate,\n dependencies: [FileUploader, UDExList, UDExButton, UDExUploadItem],\n})\n\n/**\n * Triggered when the uploaded file exceeds the maximum allowed size.\n *\n * @public\n * @param {Array<FileData>} files An array of files that exceed the maximum allowed size.\n */\n@event(\"file-size-exceed\", { bubbles: true })\n\n/**\n * Triggered when the user deletes the uploaded item.\n *\n * @public\n * @param {UDExUploadItem} file The deleted upload item.\n */\n@event(\"file-delete\", { bubbles: true })\n\n/**\n * Triggered when the user uploads the item.\n *\n * @public\n * @param {Array<UDExUploadItem>} files An array of the uploaded items.\n */\n@event(\"file-change\", { bubbles: true })\n\n/**\n * Triggered when the user attempts to upload a duplicate file.\n *\n * @public\n * @param {Array<FileData>} files An array of duplicate files.\n */\n@event(\"file-duplicate\", { bubbles: true })\n\n/**\n * Triggered when the user attempts to upload a file.\n *\n * @public\n * @param {FileList} files The uploaded files.\n */\n@event(\"change\", { bubbles: true })\n\nclass UDExUpload extends UI5Element {\n eventDetails!: {\n \"file-size-exceed\": UDExUploadBaseEventDetail,\n \"file-delete\": UDExUploadFileDeleteEventDetail,\n \"file-change\": UDExUploadFileChangeEventDetail,\n \"file-duplicate\": UDExUploadBaseEventDetail,\n \"change\": FileUploaderChangeEventDetail\n };\n /**\n * Defines the title of the upload.\n *\n * @public\n */\n @property({ type: String })\n uploadTitle!: string;\n\n /**\n * Defines an optional upporting message shown in 2 cases, both in single uplaod mode.\n * 1) When more than one file is uploaded and the button for uploading is clicked.\n * 2) When the button for uploading is disabled and a file has already been uploaded.\n *\n * @public\n */\n @property({ type: String })\n supportingText!: string;\n\n /**\n * Defines if uploader is required.\n *\n * @public\n */\n @property({ type: Boolean })\n required: boolean = false;\n\n /**\n * Defines if the button for uploading is disabled.\n *\n * @public\n */\n @property({ type: Boolean })\n disabled: boolean = false;\n\n /**\n * Defines if uploading multiple files is allowed.\n *\n * @public\n */\n @property({ type: Boolean })\n multiple!: boolean;\n\n /**\n * Defines the acceptable file formats for uploading.\n *\n * @public\n */\n @property({ type: String })\n accept!: string;\n\n /**\n * Defines the maximum allowed size of the file for uploading.\n *\n * @default undefined\n * @public\n */\n @property({ type: Number })\n maxFileSize!: number;\n\n /**\n * Defines the additional text below the title of the upload.\n *\n * @public\n */\n @property({ type: String })\n additionalText!: string;\n\n /**\n * Defines the text in the upload button.\n *\n * @public\n */\n @property({ type: String })\n uploadButtonText!: string;\n\n /**\n * Defines if a file is already uploaded when multiple is false.\n *\n * @private\n */\n @property({ type: Boolean })\n _filesFull: boolean = false;\n\n /**\n * Defines the uploaded files.\n *\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n items!: Array<UDExUploadItem>;\n\n /**\n * Defines the percentage of the upload.\n *\n * @default \"Large\"\n * @private\n */\n @property({ type: String })\n _buttonSize: `${UDExButtonSize}` = UDExButtonSize.Large;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _uploadedFiles: FileData[] = [];\n _handleResizeBound: ResizeObserverCallback;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this, this._handleResizeBound);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n onAfterRendering(): void {\n if (this._filesFull) {\n this._filesFull = this.fileNumberExceeded;\n }\n }\n\n handleUploadClick(e: Event) {\n this._filesFull = this.fileNumberExceeded;\n if (this.fileNumberExceeded) {\n e.preventDefault();\n }\n }\n\n handleUploadFile(e: CustomEvent<FileUploaderChangeEventDetail>) {\n const { files } = e.target as HTMLInputElement;\n if (!files?.length || this.fileNumberExceeded) {\n e.stopPropagation();\n }\n\n const duplicateFiles = this._getDuplicateFiles(files!);\n if (duplicateFiles.length) {\n e.stopPropagation();\n this.fireDecoratorEvent(\"file-duplicate\", {\n files: duplicateFiles,\n });\n this.fileUploader.value = \"\";\n return;\n }\n\n const newFiles = Array.from(files!).map(file => ({\n fileName: file.name,\n fileSize: file.size,\n }));\n\n this._uploadedFiles = [...this._uploadedFiles, ...newFiles];\n\n const exceededFilesData = this.maxFileSize ? this._getExceededFiles(files!) : [];\n if (exceededFilesData.length) {\n e.stopPropagation();\n this.fireDecoratorEvent(\"file-size-exceed\", {\n files: exceededFilesData,\n });\n return;\n }\n\n this.fireEvent(\"change\", { files });\n }\n\n handleSelectionChange(e: CustomEvent) {\n const uploadedFiles = e.detail.listItems as UDExUploadItem[];\n this.fireDecoratorEvent(\"file-change\", { files: uploadedFiles });\n this.fileUploader.value = \"\";\n }\n\n _handleResize() {\n this._buttonSize = BreakpointUtils.isAtMost(\"S\") ? UDExButtonSize.Medium : UDExButtonSize.Large;\n }\n\n handleRemoveFile(e: CustomEvent) {\n const removedFile = e.target as UDExUploadItem;\n this.fireDecoratorEvent(\"file-delete\", { file: removedFile });\n this._uploadedFiles = this._uploadedFiles.filter(file => file.fileName !== removedFile.fileName);\n this.fileUploader.value = \"\";\n }\n\n _isDuplicateFile(file: string): boolean {\n return this._uploadedFiles.some(uploadedFile => uploadedFile.fileName === file);\n }\n\n _getExceededFiles(files: FileList): Array<FileData> {\n const filesArray = Array.from(files);\n const exceededFiles: Array<FileData> = [];\n\n for (let i = 0; i < filesArray.length; i++) {\n const fileSize = convertBytesToMegabytes(filesArray[i].size);\n if (fileSize > this.maxFileSize) {\n exceededFiles.push({\n fileName: filesArray[i].name,\n fileSize,\n });\n }\n }\n return exceededFiles;\n }\n\n _getDuplicateFiles(files: FileList): Array<FileData> {\n const filesArray = Array.from(files);\n const duplicateFiles: Array<FileData> = [];\n\n for (let i = 0; i < filesArray.length; i++) {\n const fileSize = convertBytesToMegabytes(filesArray[i].size);\n const { name } = filesArray[i];\n\n const potentialDuplicate: FileData = {\n fileSize,\n fileName: name,\n };\n\n if (this._isDuplicateFile(potentialDuplicate.fileName)) {\n duplicateFiles.push(potentialDuplicate);\n }\n }\n\n return duplicateFiles;\n }\n\n get showSupportingText(): boolean {\n return this.disabled || this._filesFull;\n }\n\n get supportingTextClasses(): string {\n if (this.disabled && !!this.supportingText) {\n return \"udex-upload__supporting-text\";\n }\n return \"udex-upload__supporting-error-text\";\n }\n\n get fileUploader(): HTMLInputElement {\n const uploader = this.shadowRoot!.querySelector<FileUploader>(\"[ui5-file-uploader]\")!;\n return uploader.shadowRoot!.querySelector(\"input\")!;\n }\n\n get uploadButtonAriaLabel(): string {\n return translate(UDExUpload, UPLOAD_BUTTON_LABEL);\n }\n\n get listBusy(): boolean {\n return !this.items.length;\n }\n\n get fileNumberExceeded(): boolean {\n return !this.multiple && this.items.length >= 1;\n }\n}\n\nUDExUpload.define();\n\nexport default UDExUpload;\nexport type { UDExUploadBaseEventDetail, UDExUploadFileChangeEventDetail, UDExUploadFileDeleteEventDetail };\n"]}
@@ -1,6 +1,7 @@
1
1
  import type { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
2
2
  import ValueState from "@ui5/webcomponents-base/dist/types/ValueState.js";
3
3
  import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
4
+ import { UDExTarget } from "./types/common.js";
4
5
  import UDExListItem from "./ListItem.js";
5
6
  import UDExLink from "./Link.js";
6
7
  import UDExButtonSize from "./types/ButtonSize.js";
@@ -40,6 +41,12 @@ declare class UDExUploadItem extends UDExListItem {
40
41
  * @public
41
42
  */
42
43
  fileLink?: string;
44
+ /**
45
+ * Defines the file target.
46
+ *
47
+ * @public
48
+ */
49
+ fileTarget: `${UDExTarget}`;
43
50
  /**
44
51
  * Defines the percentage of the upload.
45
52
  *
@@ -14,6 +14,7 @@ import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
14
14
  import ValueState from "@ui5/webcomponents-base/dist/types/ValueState.js";
15
15
  import { isEnter, isSpace } from "@ui5/webcomponents-base/dist/Keys.js";
16
16
  import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
17
+ import { UDExTarget } from "./types/common.js";
17
18
  import { REMOVE_FILE_TEXT, TERMINATED_FILE_STATUS_TEXT, UPLOADING_FILE_STATUS_TEXT } from "./generated/i18n/i18n-defaults.js";
18
19
  import UDExListItem from "./ListItem.js";
19
20
  import UDExProgressBar from "./ProgressBar.js";
@@ -21,6 +22,7 @@ import UDExLink from "./Link.js";
21
22
  import UDExButton from "./Button.js";
22
23
  import UDExButtonSize from "./types/ButtonSize.js";
23
24
  import UploadItemTemplate from "./generated/templates/UploadItemTemplate.lit.js";
25
+ import translate from "./utils/translate.js";
24
26
  // Styles
25
27
  import UploadItemCss from "./generated/themes/UploadItem.css.js";
26
28
  import UDExFileUploadState from "./types/FileUploadState.js";
@@ -46,6 +48,12 @@ const BreakpointSizeM = 1279;
46
48
  let UDExUploadItem = UDExUploadItem_1 = class UDExUploadItem extends UDExListItem {
47
49
  constructor() {
48
50
  super();
51
+ /**
52
+ * Defines the file target.
53
+ *
54
+ * @public
55
+ */
56
+ this.fileTarget = UDExTarget._self;
49
57
  /**
50
58
  * Defines the percentage of the upload.
51
59
  *
@@ -90,7 +98,7 @@ let UDExUploadItem = UDExUploadItem_1 = class UDExUploadItem extends UDExListIte
90
98
  return this.shadowRoot.querySelector("[udex-link]");
91
99
  }
92
100
  get removeButtonAccessibleName() {
93
- return UDExUploadItem_1.i18nBundle.getText(REMOVE_FILE_TEXT);
101
+ return translate(UDExUploadItem_1, REMOVE_FILE_TEXT);
94
102
  }
95
103
  get showUploadProgress() {
96
104
  return this.uploadState === UDExFileUploadState.Error || this.uploadState === UDExFileUploadState.Uploading;
@@ -103,9 +111,9 @@ let UDExUploadItem = UDExUploadItem_1 = class UDExUploadItem extends UDExListIte
103
111
  }
104
112
  get uploadStatus() {
105
113
  if (this.uploadState === UDExFileUploadState.Uploading) {
106
- return `${UDExUploadItem_1.i18nBundle.getText(UPLOADING_FILE_STATUS_TEXT)} ${this.uploadPercentage}%`;
114
+ return `${translate(UDExUploadItem_1, UPLOADING_FILE_STATUS_TEXT)} ${this.uploadPercentage}%`;
107
115
  }
108
- return `${UDExUploadItem_1.i18nBundle.getText(TERMINATED_FILE_STATUS_TEXT)} ${this.uploadPercentage}%`;
116
+ return `${translate(UDExUploadItem_1, TERMINATED_FILE_STATUS_TEXT)} ${this.uploadPercentage}%`;
109
117
  }
110
118
  get fileInteractive() {
111
119
  return this.uploadState === UDExFileUploadState.Uploaded;
@@ -123,6 +131,9 @@ __decorate([
123
131
  __decorate([
124
132
  property({ type: String })
125
133
  ], UDExUploadItem.prototype, "fileLink", void 0);
134
+ __decorate([
135
+ property({ type: String })
136
+ ], UDExUploadItem.prototype, "fileTarget", void 0);
126
137
  __decorate([
127
138
  property({ type: Number })
128
139
  ], UDExUploadItem.prototype, "uploadPercentage", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"UploadItem.js","sourceRoot":"","sources":["../src/UploadItem.ts"],"names":[],"mappings":"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","sourcesContent":["import 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.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport { isEnter, isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { REMOVE_FILE_TEXT, TERMINATED_FILE_STATUS_TEXT, UPLOADING_FILE_STATUS_TEXT } from \"./generated/i18n/i18n-defaults.js\";\nimport UDExListItem from \"./ListItem.js\";\nimport UDExProgressBar from \"./ProgressBar.js\";\nimport UDExLink from \"./Link.js\";\nimport UDExButton from \"./Button.js\";\nimport UDExButtonSize from \"./types/ButtonSize.js\";\nimport UploadItemTemplate from \"./generated/templates/UploadItemTemplate.lit.js\";\n\n// Styles\nimport UploadItemCss from \"./generated/themes/UploadItem.css.js\";\nimport UDExFileUploadState from \"./types/FileUploadState.js\";\n\nconst BreakpointSizeS: number = 979;\nconst BreakpointSizeM: number = 1279;\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-upload-item</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/UploadItem.js\";</code>\n *\n * @constructor\n * @extends UDExListItemBase\n * @public\n */\n@customElement({\n tag: \"udex-upload-item\",\n renderer: litRender,\n styles: UploadItemCss,\n template: UploadItemTemplate,\n dependencies: [UDExLink, UDExListItem, UDExProgressBar, UDExButton],\n})\n\n/**\n * Triggered when the upload item is deleted.\n *\n * @public\n */\n@event(\"request-delete\", { bubbles: true })\n\nclass UDExUploadItem extends UDExListItem {\n eventDetails!: {\n \"request-delete\": void\n } & UDExListItem[\"eventDetails\"];\n /**\n * Defines the name of the uploaded file.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n fileName!: string;\n\n /**\n * Defines the link of the uploaded file.\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n fileLink?: string;\n\n /**\n * Defines the percentage of the upload.\n *\n * @default 0\n * @public\n */\n @property({ type: Number })\n uploadPercentage!: number;\n\n /**\n * Defines the percentage of the upload.\n *\n * @default \"Uploaded\"\n * @public\n */\n @property()\n uploadState: `${UDExFileUploadState}` = UDExFileUploadState.Uploaded;\n\n /**\n * Slot for information about the uploaded file.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true }) uploadInfo!: Array<HTMLElement>;\n\n /**\n * Defines the percentage of the upload.\n *\n * @default \"Large\"\n * @private\n */\n @property()\n _buttonSize!: `${UDExButtonSize}`;\n\n /**\n * Defines if the screen is at the M breakpoint.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _breakpointM!: boolean;\n\n /**\n * Defines if the screen is at the L breakpoint.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _breakpointL!: boolean;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _handleResizeBound: ResizeObserverCallback;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this, this._handleResizeBound);\n this.fireDecoratorEvent(\"item-press\", {\n selected: false,\n item: this,\n });\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n onAfterRendering(): void {\n const fileLink = this.fileLinkComponent;\n if (fileLink) {\n fileLink._setCustomAttributes([{ attribute: \"download\", value: \"true\" }]);\n }\n }\n\n handleButtonClick(e: Event) {\n e.stopImmediatePropagation();\n this.fireDecoratorEvent(\"request-delete\");\n }\n\n handleButtonKeydown(e: KeyboardEvent) {\n if (isEnter(e) || isSpace(e)) {\n e.stopImmediatePropagation();\n this.fireDecoratorEvent(\"request-delete\");\n }\n }\n\n _handleResize() {\n this._buttonSize = window.innerWidth <= BreakpointSizeS ? UDExButtonSize.Medium : UDExButtonSize.Large;\n this._breakpointL = window.innerWidth > BreakpointSizeM;\n this._breakpointM = !this._breakpointL ? true : !this._breakpointL && this.uploadState === UDExFileUploadState.Uploaded;\n }\n\n get fileLinkComponent(): UDExLink {\n return this.shadowRoot!.querySelector<UDExLink>(\"[udex-link]\")!;\n }\n\n get removeButtonAccessibleName(): string {\n return UDExUploadItem.i18nBundle.getText(REMOVE_FILE_TEXT);\n }\n\n get showUploadProgress(): boolean {\n return this.uploadState === UDExFileUploadState.Error || this.uploadState === UDExFileUploadState.Uploading;\n }\n\n get uploadProgressState(): ValueState {\n if (this.uploadState === UDExFileUploadState.Uploading) {\n return ValueState.Information;\n }\n\n return ValueState.Negative;\n }\n\n get uploadStatus(): string {\n if (this.uploadState === UDExFileUploadState.Uploading) {\n return `${UDExUploadItem.i18nBundle.getText(UPLOADING_FILE_STATUS_TEXT)} ${this.uploadPercentage}%`;\n }\n\n return `${UDExUploadItem.i18nBundle.getText(TERMINATED_FILE_STATUS_TEXT)} ${this.uploadPercentage}%`;\n }\n\n get fileInteractive(): boolean {\n return this.uploadState === UDExFileUploadState.Uploaded;\n }\n\n get additionalInfoClasses(): string {\n return `udex-upload-item__info ${this.uploadState === UDExFileUploadState.Error ? \"udex-upload-item__error\" : \"\"}`;\n }\n\n get uploadItemClasses(): string {\n return this.uploadState === \"Uploaded\" ? \"udex-upload-item__info-uploaded\" : \"\";\n }\n}\n\nUDExUploadItem.define();\n\nexport default UDExUploadItem;\n"]}
1
+ {"version":3,"file":"UploadItem.js","sourceRoot":"","sources":["../src/UploadItem.ts"],"names":[],"mappings":"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","sourcesContent":["import 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.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport { isEnter, isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { UDExTarget } from \"./types/common.js\";\nimport { REMOVE_FILE_TEXT, TERMINATED_FILE_STATUS_TEXT, UPLOADING_FILE_STATUS_TEXT } from \"./generated/i18n/i18n-defaults.js\";\nimport UDExListItem from \"./ListItem.js\";\nimport UDExProgressBar from \"./ProgressBar.js\";\nimport UDExLink from \"./Link.js\";\nimport UDExButton from \"./Button.js\";\nimport UDExButtonSize from \"./types/ButtonSize.js\";\nimport UploadItemTemplate from \"./generated/templates/UploadItemTemplate.lit.js\";\nimport translate from \"./utils/translate.js\";\n\n// Styles\nimport UploadItemCss from \"./generated/themes/UploadItem.css.js\";\nimport UDExFileUploadState from \"./types/FileUploadState.js\";\n\nconst BreakpointSizeS: number = 979;\nconst BreakpointSizeM: number = 1279;\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-upload-item</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/UploadItem.js\";</code>\n *\n * @constructor\n * @extends UDExListItemBase\n * @public\n */\n@customElement({\n tag: \"udex-upload-item\",\n renderer: litRender,\n styles: UploadItemCss,\n template: UploadItemTemplate,\n dependencies: [UDExLink, UDExListItem, UDExProgressBar, UDExButton],\n})\n\n/**\n * Triggered when the upload item is deleted.\n *\n * @public\n */\n@event(\"request-delete\", { bubbles: true })\n\nclass UDExUploadItem extends UDExListItem {\n eventDetails!: {\n \"request-delete\": void\n } & UDExListItem[\"eventDetails\"];\n /**\n * Defines the name of the uploaded file.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n fileName!: string;\n\n /**\n * Defines the link of the uploaded file.\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n fileLink?: string;\n\n /**\n * Defines the file target.\n *\n * @public\n */\n @property({ type: String })\n fileTarget: `${UDExTarget}` = UDExTarget._self;\n\n /**\n * Defines the percentage of the upload.\n *\n * @default 0\n * @public\n */\n @property({ type: Number })\n uploadPercentage!: number;\n\n /**\n * Defines the percentage of the upload.\n *\n * @default \"Uploaded\"\n * @public\n */\n @property()\n uploadState: `${UDExFileUploadState}` = UDExFileUploadState.Uploaded;\n\n /**\n * Slot for information about the uploaded file.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true }) uploadInfo!: Array<HTMLElement>;\n\n /**\n * Defines the percentage of the upload.\n *\n * @default \"Large\"\n * @private\n */\n @property()\n _buttonSize!: `${UDExButtonSize}`;\n\n /**\n * Defines if the screen is at the M breakpoint.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _breakpointM!: boolean;\n\n /**\n * Defines if the screen is at the L breakpoint.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _breakpointL!: boolean;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _handleResizeBound: ResizeObserverCallback;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this, this._handleResizeBound);\n this.fireDecoratorEvent(\"item-press\", {\n selected: false,\n item: this,\n });\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n onAfterRendering(): void {\n const fileLink = this.fileLinkComponent;\n if (fileLink) {\n fileLink._setCustomAttributes([{ attribute: \"download\", value: \"true\" }]);\n }\n }\n\n handleButtonClick(e: Event) {\n e.stopImmediatePropagation();\n this.fireDecoratorEvent(\"request-delete\");\n }\n\n handleButtonKeydown(e: KeyboardEvent) {\n if (isEnter(e) || isSpace(e)) {\n e.stopImmediatePropagation();\n this.fireDecoratorEvent(\"request-delete\");\n }\n }\n\n _handleResize() {\n this._buttonSize = window.innerWidth <= BreakpointSizeS ? UDExButtonSize.Medium : UDExButtonSize.Large;\n this._breakpointL = window.innerWidth > BreakpointSizeM;\n this._breakpointM = !this._breakpointL ? true : !this._breakpointL && this.uploadState === UDExFileUploadState.Uploaded;\n }\n\n get fileLinkComponent(): UDExLink {\n return this.shadowRoot!.querySelector<UDExLink>(\"[udex-link]\")!;\n }\n\n get removeButtonAccessibleName(): string {\n return translate(UDExUploadItem, REMOVE_FILE_TEXT);\n }\n\n get showUploadProgress(): boolean {\n return this.uploadState === UDExFileUploadState.Error || this.uploadState === UDExFileUploadState.Uploading;\n }\n\n get uploadProgressState(): ValueState {\n if (this.uploadState === UDExFileUploadState.Uploading) {\n return ValueState.Information;\n }\n\n return ValueState.Negative;\n }\n\n get uploadStatus(): string {\n if (this.uploadState === UDExFileUploadState.Uploading) {\n return `${translate(UDExUploadItem, UPLOADING_FILE_STATUS_TEXT)} ${this.uploadPercentage}%`;\n }\n\n return `${translate(UDExUploadItem, TERMINATED_FILE_STATUS_TEXT)} ${this.uploadPercentage}%`;\n }\n\n get fileInteractive(): boolean {\n return this.uploadState === UDExFileUploadState.Uploaded;\n }\n\n get additionalInfoClasses(): string {\n return `udex-upload-item__info ${this.uploadState === UDExFileUploadState.Error ? \"udex-upload-item__error\" : \"\"}`;\n }\n\n get uploadItemClasses(): string {\n return this.uploadState === \"Uploaded\" ? \"udex-upload-item__info-uploaded\" : \"\";\n }\n}\n\nUDExUploadItem.define();\n\nexport default UDExUploadItem;\n"]}
@@ -1,2 +1,2 @@
1
- import{r as w,j as l,a as c,p as x,d as P,b as R,s as p,m as v,u as S,v as y,w as O,x as L,D,c as A,z as G,I as b,A as I,F as H,B as f,R as E,C as V,G as $,H as B,J as N}from"./bundle.esm-lUYJDofa.js";const F=n=>n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");function _(n,e,t,s){return n.replaceAll(new RegExp(F(e),`${s?"i":""}g`),t)}function M(n,e){if(!n||!e)return n;const t=r=>{const[a,d]=r.split("");for(;n.indexOf(r)>=0||e.indexOf(r)>=0;)r=`${a}${r}${d}`;return r},s=t("12"),i=t("34");let o=w(_(n,e,r=>`${s}${r}${i}`,!0));return[[s,"<b>"],[i,"</b>"]].forEach(([r,a])=>{o=_(o,r,a,!1)}),o}function z(n,e){const t=(n==null?void 0:n.listItemContent)||q;return l("li",{part:"native-li","data-sap-focus-ref":!0,tabindex:this._effectiveTabIndex,class:this.classes.main,draggable:this.movable,role:e==null?void 0:e.role,title:e==null?void 0:e.title,onFocusIn:this._onfocusin,onKeyUp:this._onkeyup,onKeyDown:this._onkeydown,onClick:this._onclick,children:t.call(this)})}function q(){return l("div",{part:"content",id:`${this._id}-content`,class:"ui5-li-content",children:l("div",{class:"ui5-li-text-wrapper",children:l("span",{part:"title",class:"ui5-li-title",children:l("slot",{})})})})}function U(){return[z.call(this,{listItemContent:K},{role:"option"})]}function K(){return l("div",{part:"content",id:"content",class:"ui5-li-content",children:c("div",{class:"ui5-li-text-wrapper",children:[l("span",{part:"title",className:"ui5-li-title",dangerouslySetInnerHTML:{__html:this.markupText}}),this.additionalText&&l("span",{part:"additional-text",class:"ui5-li-additional-text",children:this.additionalText})]})})}x("@ui5/webcomponents-theming","sap_horizon",async()=>P);x("@ui5/webcomponents","sap_horizon",async()=>R);const W=`:host([ui5-suggestion-item]){height:auto;min-height:var(--_ui5-v2-17-0_list_item_base_height)}:host([ui5-suggestion-item]) .ui5-li-root{min-height:var(--_ui5-v2-17-0_list_item_base_height)}:host([ui5-suggestion-item]) .ui5-li-content{padding-bottom:.5rem;padding-top:.5rem;box-sizing:border-box}
1
+ import{r as w,j as l,a as c,p as x,d as P,b as R,s as p,m as v,u as S,v as y,w as O,x as L,D,c as A,z as G,I as b,A as I,F as H,B as f,R as E,C as V,G as $,H as B,J as N}from"./bundle.esm-CWBg8c5Q.js";const F=n=>n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");function _(n,e,t,s){return n.replaceAll(new RegExp(F(e),`${s?"i":""}g`),t)}function M(n,e){if(!n||!e)return n;const t=r=>{const[a,d]=r.split("");for(;n.indexOf(r)>=0||e.indexOf(r)>=0;)r=`${a}${r}${d}`;return r},s=t("12"),i=t("34");let o=w(_(n,e,r=>`${s}${r}${i}`,!0));return[[s,"<b>"],[i,"</b>"]].forEach(([r,a])=>{o=_(o,r,a,!1)}),o}function z(n,e){const t=(n==null?void 0:n.listItemContent)||q;return l("li",{part:"native-li","data-sap-focus-ref":!0,tabindex:this._effectiveTabIndex,class:this.classes.main,draggable:this.movable,role:e==null?void 0:e.role,title:e==null?void 0:e.title,onFocusIn:this._onfocusin,onKeyUp:this._onkeyup,onKeyDown:this._onkeydown,onClick:this._onclick,children:t.call(this)})}function q(){return l("div",{part:"content",id:`${this._id}-content`,class:"ui5-li-content",children:l("div",{class:"ui5-li-text-wrapper",children:l("span",{part:"title",class:"ui5-li-title",children:l("slot",{})})})})}function U(){return[z.call(this,{listItemContent:K},{role:"option"})]}function K(){return l("div",{part:"content",id:"content",class:"ui5-li-content",children:c("div",{class:"ui5-li-text-wrapper",children:[l("span",{part:"title",className:"ui5-li-title",dangerouslySetInnerHTML:{__html:this.markupText}}),this.additionalText&&l("span",{part:"additional-text",class:"ui5-li-additional-text",children:this.additionalText})]})})}x("@ui5/webcomponents-theming","sap_horizon",async()=>P);x("@ui5/webcomponents","sap_horizon",async()=>R);const W=`:host([ui5-suggestion-item]){height:auto;min-height:var(--_ui5-v2-17-0_list_item_base_height)}:host([ui5-suggestion-item]) .ui5-li-root{min-height:var(--_ui5-v2-17-0_list_item_base_height)}:host([ui5-suggestion-item]) .ui5-li-content{padding-bottom:.5rem;padding-top:.5rem;box-sizing:border-box}
2
2
  `;var g=function(n,e,t,s){var i=arguments.length,o=i<3?e:s===null?s=Object.getOwnPropertyDescriptor(e,t):s,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,s);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(i<3?r(o):i>3?r(e,t,o):r(e,t))||o);return i>3&&o&&Object.defineProperty(e,t,o),o};let h=class extends S{constructor(){super(...arguments),this.markupText=""}onEnterDOM(){y()&&this.setAttribute("desktop","")}get _effectiveTabIndex(){return-1}};g([p()],h.prototype,"text",void 0);g([p()],h.prototype,"additionalText",void 0);g([p()],h.prototype,"markupText",void 0);h=g([v({tag:"ui5-suggestion-item",template:U,styles:[S.styles,W]})],h);h.define();function J(n){const e=(n==null?void 0:n.items)||X;return c("ul",{role:"group",class:"ui5-group-li-root",onDragEnter:this._ondragenter,onDragOver:this._ondragover,onDrop:this._ondrop,onDragLeave:this._ondragleave,children:[this.hasHeader&&l(L,{focused:this.focused,part:"header",accessibleRole:O.Group,children:this.hasFormattedHeader?l("slot",{name:"header"}):this.headerText}),e.call(this),l(D,{orientation:"Horizontal",ownerReference:this})]})}function X(){return l("slot",{})}var T=function(n,e,t,s){var i=arguments.length,o=i<3?e:s===null?s=Object.getOwnPropertyDescriptor(e,t):s,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,s);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(i<3?r(o):i>3?r(e,t,o):r(e,t))||o);return i>3&&o&&Object.defineProperty(e,t,o),o};let m=class extends G{};T([A({default:!0,invalidateOnChildChange:!0,type:HTMLElement})],m.prototype,"items",void 0);m=T([v({tag:"ui5-suggestion-item-group",template:J})],m);m.define();function j(n){const e=(n==null?void 0:n.suggestionsList)||Q,t=n==null?void 0:n.mobileHeader,s=n==null?void 0:n.valueStateMessage,i=n==null?void 0:n.valueStateMessageInputIcon;return c(E,{class:this.classes.popover,hideArrow:!0,preventFocusRestore:!0,preventInitialFocus:!0,placement:"Bottom",horizontalAlign:"Start",tabindex:-1,style:this.styles.suggestionsPopover,onOpen:this._afterOpenPicker,onClose:this._afterClosePicker,onScroll:this._scroll,open:this.open,opener:this,accessibleName:this._popupLabel,children:[this._isPhone&&l(H,{children:c("div",{slot:"header",class:"ui5-responsive-popover-header",children:[l("div",{class:"row",children:l("span",{children:this._headerTitleText})}),l("div",{class:"row",children:c("div",{class:"input-root-phone native-input-wrapper",children:[l(b,{class:"ui5-input-inner-phone",type:this.inputType,value:this.value,showClearIcon:this.showClearIcon,placeholder:this.placeholder,onInput:this._handleInput}),t==null?void 0:t.call(this)]})}),this.hasValueStateMessage&&c("div",{class:this.classes.popoverValueState,style:this.styles.suggestionPopoverHeader,children:[l(I,{class:"ui5-input-value-state-message-icon",name:i==null?void 0:i.call(this)}),this.open&&(s==null?void 0:s.call(this))]})]})}),!this._isPhone&&this.hasValueStateMessage&&c("div",{slot:"header",class:{"ui5-responsive-popover-header":!0,...this.classes.popoverValueState},style:this.styles.suggestionPopoverHeader,children:[l(I,{class:"ui5-input-value-state-message-icon",name:i==null?void 0:i.call(this)}),this.open&&(s==null?void 0:s.call(this))]}),this.showSuggestions&&e.call(this),this._isPhone&&c("div",{slot:"footer",class:"ui5-responsive-popover-footer",children:[l(f,{design:"Emphasized",onClick:this._confirmMobileValue,children:this._suggestionsOkButtonText}),l(f,{class:"ui5-responsive-popover-close-btn",design:"Transparent",onClick:this._cancelMobileValue,children:this._suggestionsCancelButtonText})]})]})}function Q(){return l($,{accessibleRole:V.ListBox,separators:this.suggestionSeparators,selectionMode:"Single",onMouseDown:this.onItemMouseDown,onItemClick:this._handleSuggestionItemPress,onSelectionChange:this._handleSelectionChange,children:l("slot",{})})}class u{get template(){return j}constructor(e,t,s,i){this.component=e,this.slotName=t,this.handleFocus=i,this.highlight=s,this.selectedItemIndex=-1}onUp(e,t){e.preventDefault();const s=!this.isOpened&&this._hasValueState&&t===-1?0:t;return this._handleItemNavigation(!1,s),!0}onDown(e,t){e.preventDefault();const s=!this.isOpened&&this._hasValueState&&t===-1?0:t;return this._handleItemNavigation(!0,s),!0}onSpace(e){return this._isItemOnTarget()?(e.preventDefault(),this.onItemSelected(this._selectedItem,!0),!0):!1}onEnter(e){return this._isGroupItem?(e.preventDefault(),!1):this._isItemOnTarget()?(this.onItemSelected(this._selectedItem,!0),!0):!1}onPageUp(e){e.preventDefault();const t=this.selectedItemIndex-10>-1;return this._moveItemSelection(this.selectedItemIndex,t?this.selectedItemIndex-=10:this.selectedItemIndex=0),!0}onPageDown(e){e.preventDefault();const t=this._getItems();if(!t)return!0;const s=t.length-1,i=this.selectedItemIndex+10<=s;return this._moveItemSelection(this.selectedItemIndex,i?this.selectedItemIndex+=10:this.selectedItemIndex=s),!0}onHome(e){return e.preventDefault(),this._moveItemSelection(this.selectedItemIndex,this.selectedItemIndex=0),!0}onEnd(e){e.preventDefault();const t=this._getItems().length-1;return t&&this._moveItemSelection(this.selectedItemIndex,this.selectedItemIndex=t),!0}onTab(){return this._isItemOnTarget()?(this.onItemSelected(this._selectedItem,!0),!0):!1}toggle(e,t){(e!==void 0?e:!this.isOpened())?this._getComponent().open=!0:this.close(t.preventFocusRestore)}get _selectedItem(){return this._getNonGroupItems().find(e=>e.selected)}_isScrollable(){const e=this._getScrollContainer();return e.offsetHeight<e.scrollHeight}close(e=!1){const t=this._getItems()&&this._getItems()[this.selectedItemIndex];this._getComponent().open=!1;const s=this._getPicker();s.preventFocusRestore=e,s.open=!1,t&&t.focused&&(t.focused=!1)}updateSelectedItemPosition(e){this.selectedItemIndex=e}onItemSelected(e,t){const s=e,i=this._getNonGroupItems();s&&(this.accInfo={isGroup:s.hasAttribute("ui5-suggestion-item-group"),currentPos:i.indexOf(s)+1,listSize:i.length,itemText:s.text||"",additionalText:s.additionalText},this._getComponent().onItemSelected(s,t),this._getComponent().open=!1)}onItemSelect(e){this._getComponent().onItemSelect(e)}onItemPress(e){let t;const s=e.type==="ui5-item-click";s&&!e.detail.item.selected||this._handledPress&&!s||(s&&e.detail.item.selected?(t=e.detail.item,this._handledPress=!0):t=e.detail.selectedItems[0],this.onItemSelected(t,!1))}_onClose(){this._handledPress=!1}_isItemOnTarget(){return this.isOpened()&&this.selectedItemIndex!==null&&this.selectedItemIndex!==-1&&!this._isGroupItem}get _isGroupItem(){const e=this._getItems();return!e||!e[this.selectedItemIndex]?!1:e[this.selectedItemIndex].hasAttribute("ui5-suggestion-item-group")}isOpened(){var e;return!!((e=this._getPicker())!=null&&e.open)}_handleItemNavigation(e,t){this.selectedItemIndex=t,this._getItems().length&&(e?this._selectNextItem():this._selectPreviousItem())}_selectNextItem(){const e=this._getItems().length,t=this.selectedItemIndex;t!==-1&&t+1>e-1||this._moveItemSelection(t,++this.selectedItemIndex)}_selectPreviousItem(){const e=this._getItems(),t=this.selectedItemIndex;if(!(t===-1||t===null)){if(t-1<0){(e[t].hasAttribute("ui5-suggestion-item")||e[t].hasAttribute("ui5-suggestion-item-custom"))&&(e[t].selected=!1),e[t].focused=!1,this.component.focused=!0,this.component.hasSuggestionItemSelected=!1,this.selectedItemIndex-=1;return}this._moveItemSelection(t,--this.selectedItemIndex)}}_moveItemSelection(e,t){const s=this._getItems(),i=s[t],o=s[e],r=this._getNonGroupItems(),a=i.hasAttribute("ui5-suggestion-item-group");if(!i)return;this.component.focused=!1;const d=this._getItems()[this.selectedItemIndex];if(this.accInfo={isGroup:a,currentPos:s.indexOf(i)+1,itemText:(a?d.headerText:d.text)||""},(i.hasAttribute("ui5-suggestion-item")||i.hasAttribute("ui5-suggestion-item-custom"))&&(this.accInfo.additionalText=i.additionalText||"",this.accInfo.currentPos=r.indexOf(i)+1,this.accInfo.listSize=r.length),o&&(o.focused=!1),(o!=null&&o.hasAttribute("ui5-suggestion-item")||o!=null&&o.hasAttribute("ui5-suggestion-item-custom"))&&(o.selected=!1),i&&(i.focused=!0,a||(i.selected=!0),this.handleFocus&&i.focus()),this.component.hasSuggestionItemSelected=!0,this.onItemSelect(i),!this._isItemIntoView(i)){const C=this._isGroupItem?i.shadowRoot.querySelector("[ui5-li-group-header]"):i;this._scrollItemIntoView(C)}}_deselectItems(){this._getItems().forEach(t=>{t.hasAttribute("ui5-suggestion-item")&&(t.selected=!1),t.focused=!1})}_clearItemFocus(){const e=this._getItems().find(t=>t.focused);e&&(e.focused=!1)}_isItemIntoView(e){const t=e.getDomRef().getBoundingClientRect(),s=this._getComponent().getDomRef().getBoundingClientRect(),i=window.innerHeight||document.documentElement.clientHeight;let o=0;return this._hasValueState&&(o=this._getPicker().querySelector("[slot=header]").getBoundingClientRect().height),t.top+u.SCROLL_STEP<=i&&t.top>=s.top+o}_scrollItemIntoView(e){e.scrollIntoView({behavior:"auto",block:"nearest",inline:"nearest"})}_getScrollContainer(){return this._scrollContainer||(this._scrollContainer=this._getPicker().shadowRoot.querySelector(".ui5-popup-content")),this._scrollContainer}_getItems(){return this._getComponent().getSlottedNodes("suggestionItems").flatMap(t=>t.hasAttribute("ui5-suggestion-item-group")?[t,...t.items]:[t])}_getNonGroupItems(){return this._getItems().filter(e=>!e.hasAttribute("ui5-suggestion-item-group"))}_getComponent(){return this.component}_getList(){return this._getPicker().querySelector("[ui5-list]")}_getListWidth(){var e;return(e=this._getList())==null?void 0:e.offsetWidth}_getPicker(){return this._getComponent().shadowRoot.querySelector("[ui5-responsive-popover]")}get itemSelectionAnnounce(){if(!this.accInfo)return"";if(this.accInfo.isGroup)return`${u.i18nBundle.getText(B)} ${this.accInfo.itemText}`;const e=u.i18nBundle.getText(N,this.accInfo.currentPos||0,this.accInfo.listSize||0);return`${this.accInfo.additionalText} ${e}`}hightlightInput(e,t){return M(e,t)}get _hasValueState(){return this.component.hasValueStateMessage}_clearSelectedSuggestionAndaccInfo(){this.accInfo=void 0,this.selectedItemIndex=0}}u.SCROLL_STEP=60;b.SuggestionsClass=u;export{u as default};
@@ -1,3 +1,3 @@
1
- import{j as o,a as _,F as y,p as m,d as b,b as E,s as x,c as C,i as P,m as O,y as B,e as w,f as I,t as A,E as L,g as R,L as S,R as M,B as N,h as F,k as D,l as X,n as j,o as z,q as k}from"./bundle.esm-lUYJDofa.js";var T;(function(t){t.InPlace="InPlace",t.Popover="Popover"})(T||(T={}));const $=T;var g;(function(t){t.Off="Off",t.On="On"})(g||(g={}));const H=g;function W(){return o(y,{children:o("span",{children:this._renderEmptyIndicator?_(y,{children:[o("span",{className:"empty-indicator","aria-hidden":"true",children:this._emptyIndicatorSymbol}),o("span",{className:"empty-indicator-aria-label",children:this._emptyIndicatorAriaLabel})]}):o("slot",{})})})}m("@ui5/webcomponents-theming","sap_horizon",async()=>b);m("@ui5/webcomponents","sap_horizon",async()=>E);const q=`:host{max-width:100%;font-size:var(--sapFontSize);font-family:var(--sapFontFamily);color:var(--sapTextColor);line-height:normal;cursor:text;overflow:hidden}:host([max-lines="1"]){display:inline-block;text-overflow:ellipsis;white-space:nowrap}:host(:not([max-lines="1"])){display:-webkit-box;-webkit-line-clamp:var(--_ui5-v2-17-0_text_max_lines);line-clamp:var(--_ui5-v2-17-0_text_max_lines);-webkit-box-orient:vertical;white-space:normal;word-wrap:break-word}.empty-indicator-aria-label{position:absolute!important;clip:rect(1px,1px,1px,1px);user-select:none;left:0;top:0;font-size:0}
1
+ import{j as o,a as _,F as y,p as m,d as b,b as E,s as x,c as C,i as P,m as O,y as B,e as w,f as I,t as A,E as L,g as R,L as S,R as M,B as N,h as F,k as D,l as X,n as j,o as z,q as k}from"./bundle.esm-CWBg8c5Q.js";var T;(function(t){t.InPlace="InPlace",t.Popover="Popover"})(T||(T={}));const $=T;var g;(function(t){t.Off="Off",t.On="On"})(g||(g={}));const H=g;function W(){return o(y,{children:o("span",{children:this._renderEmptyIndicator?_(y,{children:[o("span",{className:"empty-indicator","aria-hidden":"true",children:this._emptyIndicatorSymbol}),o("span",{className:"empty-indicator-aria-label",children:this._emptyIndicatorAriaLabel})]}):o("slot",{})})})}m("@ui5/webcomponents-theming","sap_horizon",async()=>b);m("@ui5/webcomponents","sap_horizon",async()=>E);const q=`:host{max-width:100%;font-size:var(--sapFontSize);font-family:var(--sapFontFamily);color:var(--sapTextColor);line-height:normal;cursor:text;overflow:hidden}:host([max-lines="1"]){display:inline-block;text-overflow:ellipsis;white-space:nowrap}:host(:not([max-lines="1"])){display:-webkit-box;-webkit-line-clamp:var(--_ui5-v2-17-0_text_max_lines);line-clamp:var(--_ui5-v2-17-0_text_max_lines);-webkit-box-orient:vertical;white-space:normal;word-wrap:break-word}.empty-indicator-aria-label{position:absolute!important;clip:rect(1px,1px,1px,1px);user-select:none;left:0;top:0;font-size:0}
2
2
  `;var u=function(t,e,n,s){var a=arguments.length,i=a<3?e:s===null?s=Object.getOwnPropertyDescriptor(e,n):s,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(t,e,n,s);else for(var d=t.length-1;d>=0;d--)(l=t[d])&&(i=(a<3?l(i):a>3?l(e,n,i):l(e,n))||i);return a>3&&i&&Object.defineProperty(e,n,i),i},f;let p=f=class extends w{constructor(){super(...arguments),this.maxLines=1/0,this.emptyIndicatorMode="Off"}onBeforeRendering(){this.style.setProperty(I("--_ui5_text_max_lines"),`${this.maxLines}`)}get hasText(){return A(this.text)}get _renderEmptyIndicator(){return!this.hasText&&this.emptyIndicatorMode===H.On}get _emptyIndicatorAriaLabel(){return f.i18nBundle.getText(L)}get _emptyIndicatorSymbol(){return f.i18nBundle.getText(R)}};u([x({type:Number})],p.prototype,"maxLines",void 0);u([x()],p.prototype,"emptyIndicatorMode",void 0);u([C({type:Node,default:!0})],p.prototype,"text",void 0);u([P("@ui5/webcomponents")],p,"i18nBundle",void 0);p=f=u([O({tag:"ui5-text",renderer:B,template:W,styles:q})],p);p.define();const v=p;function Y(){return _("div",{children:[o(v,{class:"ui5-exp-text-text",emptyIndicatorMode:this.emptyIndicatorMode,children:this._displayedText}),this._maxCharactersExceeded&&_(y,{children:[o("span",{class:"ui5-exp-text-ellipsis",children:this._ellipsisText}),o(S,{id:"toggle",class:"ui5-exp-text-toggle",accessibleRole:"Button",accessibleName:this._accessibleNameForToggle,accessibilityAttributes:this._accessibilityAttributesForToggle,onClick:this._handleToggleClick,children:this._textForToggle}),this._usePopover&&_(M,{open:this._expanded,opener:"toggle",accessibleNameRef:"popover-text",contentOnlyOnDesktop:!0,_hideHeader:!0,class:"ui5-exp-text-popover",onClose:this._handlePopoverClose,children:[o(v,{id:"popover-text",children:this.text}),o("div",{slot:"footer",class:"ui5-exp-text-footer",children:o(N,{design:"Transparent",onClick:this._handleCloseButtonClick,children:this._closeButtonText})})]})]})]})}m("@ui5/webcomponents-theming","sap_horizon",async()=>b);m("@ui5/webcomponents","sap_horizon",async()=>E);const V=`:host{display:inline-block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);color:var(--sapTextColor)}:host([hidden]){display:none}.ui5-exp-text-text{display:inline}.ui5-exp-text-text,.ui5-exp-text-toggle{font-family:inherit;font-size:inherit}.ui5-exp-text-text,.ui5-exp-text-ellipsis{color:inherit}.ui5-exp-text-popover::part(content){padding-inline:1rem}.ui5-exp-text-footer{width:100%;display:flex;align-items:center;justify-content:flex-end}
3
3
  `;var h=function(t,e,n,s){var a=arguments.length,i=a<3?e:s===null?s=Object.getOwnPropertyDescriptor(e,n):s,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(t,e,n,s);else for(var d=t.length-1;d>=0;d--)(l=t[d])&&(i=(a<3?l(i):a>3?l(e,n,i):l(e,n))||i);return a>3&&i&&Object.defineProperty(e,n,i),i},c;let r=c=class extends w{constructor(){super(...arguments),this.maxCharacters=100,this.overflowMode="InPlace",this.emptyIndicatorMode="Off",this._expanded=!1}getFocusDomRef(){var e,n;return this._usePopover?(e=this.shadowRoot)==null?void 0:e.querySelector("[ui5-responsive-popover]"):(n=this.shadowRoot)==null?void 0:n.querySelector("[ui5-link]")}get _displayedText(){var e;return this._expanded&&!this._usePopover?this.text:(e=this.text)==null?void 0:e.substring(0,this.maxCharacters)}get _maxCharactersExceeded(){var e;return(((e=this.text)==null?void 0:e.length)||0)>this.maxCharacters}get _usePopover(){return this.overflowMode===$.Popover}get _ellipsisText(){return this._expanded&&!this._usePopover?" ":"... "}get _textForToggle(){return this._expanded?c.i18nBundle.getText(F):c.i18nBundle.getText(D)}get _closeButtonText(){return c.i18nBundle.getText(X)}get _accessibilityAttributesForToggle(){return this._usePopover?{expanded:this._expanded,hasPopup:"dialog"}:{expanded:this._expanded}}get _accessibleNameForToggle(){if(this._usePopover)return this._expanded?c.i18nBundle.getText(j):c.i18nBundle.getText(z)}_handlePopoverClose(){k()||(this._expanded=!1)}_handleToggleClick(){this._expanded=!this._expanded}_handleCloseButtonClick(e){this._expanded=!1,e.stopPropagation()}};h([x()],r.prototype,"text",void 0);h([x({type:Number})],r.prototype,"maxCharacters",void 0);h([x()],r.prototype,"overflowMode",void 0);h([x()],r.prototype,"emptyIndicatorMode",void 0);h([x({type:Boolean})],r.prototype,"_expanded",void 0);h([P("@ui5/webcomponents")],r,"i18nBundle",void 0);r=c=h([O({tag:"ui5-expandable-text",renderer:B,styles:V,template:Y})],r);r.define();function Q(t){const{className:e,text:n,maxCharacters:s,part:a}=t;return o(r,{part:a,class:e,text:n,maxCharacters:s})}export{Q as default};