@sapudex/web-components 0.117.1 → 0.138.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 (536) hide show
  1. package/bundle.esm.js +5 -0
  2. package/config/wdio.conf.js +19 -8
  3. package/dist/Accordion.d.ts +1 -1
  4. package/dist/Accordion.js +1 -1
  5. package/dist/Accordion.js.map +1 -1
  6. package/dist/AccordionItem.d.ts +3 -2
  7. package/dist/AccordionItem.js +4 -4
  8. package/dist/AccordionItem.js.map +1 -1
  9. package/dist/Avatar.d.ts +12 -0
  10. package/dist/Avatar.js +22 -1
  11. package/dist/Avatar.js.map +1 -1
  12. package/dist/AvatarGroup.d.ts +28 -0
  13. package/dist/AvatarGroup.js +126 -0
  14. package/dist/AvatarGroup.js.map +1 -0
  15. package/dist/Checkbox.d.ts +1 -1
  16. package/dist/Checkbox.js +1 -1
  17. package/dist/Checkbox.js.map +1 -1
  18. package/dist/CountrySelector.d.ts +24 -6
  19. package/dist/CountrySelector.js +25 -7
  20. package/dist/CountrySelector.js.map +1 -1
  21. package/dist/DatePicker.d.ts +1 -0
  22. package/dist/DatePicker.js +4 -1
  23. package/dist/DatePicker.js.map +1 -1
  24. package/dist/Dropdown.d.ts +12 -2
  25. package/dist/Dropdown.js +18 -6
  26. package/dist/Dropdown.js.map +1 -1
  27. package/dist/FilterMenu.d.ts +26 -6
  28. package/dist/FilterMenu.js +61 -21
  29. package/dist/FilterMenu.js.map +1 -1
  30. package/dist/Footer.d.ts +36 -1
  31. package/dist/Footer.js +35 -37
  32. package/dist/Footer.js.map +1 -1
  33. package/dist/HeroBanner.js +3 -0
  34. package/dist/HeroBanner.js.map +1 -1
  35. package/dist/Link.d.ts +1 -1
  36. package/dist/Link.js +1 -1
  37. package/dist/Link.js.map +1 -1
  38. package/dist/List.d.ts +1 -1
  39. package/dist/List.js +17 -1
  40. package/dist/List.js.map +1 -1
  41. package/dist/ListGroupHeader.d.ts +2 -2
  42. package/dist/ListGroupHeader.js +2 -2
  43. package/dist/ListGroupHeader.js.map +1 -1
  44. package/dist/ListItem.d.ts +3 -3
  45. package/dist/ListItem.js +6 -7
  46. package/dist/ListItem.js.map +1 -1
  47. package/dist/ListSelectAll.d.ts +1 -1
  48. package/dist/ListSelectAll.js +1 -1
  49. package/dist/ListSelectAll.js.map +1 -1
  50. package/dist/MastheadItem.d.ts +10 -1
  51. package/dist/MastheadItem.js +29 -18
  52. package/dist/MastheadItem.js.map +1 -1
  53. package/dist/MastheadMenu.d.ts +5 -0
  54. package/dist/MastheadMenu.js +24 -0
  55. package/dist/MastheadMenu.js.map +1 -1
  56. package/dist/MastheadMenuItem.d.ts +2 -3
  57. package/dist/MastheadMenuItem.js +2 -17
  58. package/dist/MastheadMenuItem.js.map +1 -1
  59. package/dist/MastheadMobileMenu.d.ts +25 -5
  60. package/dist/MastheadMobileMenu.js +135 -21
  61. package/dist/MastheadMobileMenu.js.map +1 -1
  62. package/dist/MastheadProfileMenu.d.ts +13 -4
  63. package/dist/MastheadProfileMenu.js +40 -9
  64. package/dist/MastheadProfileMenu.js.map +1 -1
  65. package/dist/MastheadShell.d.ts +11 -0
  66. package/dist/MastheadShell.js +52 -8
  67. package/dist/MastheadShell.js.map +1 -1
  68. package/dist/MediaPlayer.d.ts +3 -3
  69. package/dist/MediaPlayer.js +115 -25
  70. package/dist/MediaPlayer.js.map +1 -1
  71. package/dist/MessageStrip.js +1 -1
  72. package/dist/MessageStrip.js.map +1 -1
  73. package/dist/Pagination.d.ts +3 -0
  74. package/dist/Pagination.js +16 -4
  75. package/dist/Pagination.js.map +1 -1
  76. package/dist/PasswordField.d.ts +14 -4
  77. package/dist/PasswordField.js +24 -15
  78. package/dist/PasswordField.js.map +1 -1
  79. package/dist/PhoneNumberField.d.ts +32 -0
  80. package/dist/PhoneNumberField.js +51 -2
  81. package/dist/PhoneNumberField.js.map +1 -1
  82. package/dist/RatingBar.d.ts +53 -0
  83. package/dist/RatingBar.js +96 -0
  84. package/dist/RatingBar.js.map +1 -0
  85. package/dist/Review.d.ts +71 -0
  86. package/dist/Review.js +108 -0
  87. package/dist/Review.js.map +1 -0
  88. package/dist/ReviewItem.d.ts +105 -0
  89. package/dist/ReviewItem.js +157 -0
  90. package/dist/ReviewItem.js.map +1 -0
  91. package/dist/Search.d.ts +64 -2
  92. package/dist/Search.js +62 -8
  93. package/dist/Search.js.map +1 -1
  94. package/dist/SearchableListBase.d.ts +1 -1
  95. package/dist/SearchableListBase.js +1 -1
  96. package/dist/SearchableListBase.js.map +1 -1
  97. package/dist/SecondaryNavigation.d.ts +9 -8
  98. package/dist/SecondaryNavigation.js +59 -46
  99. package/dist/SecondaryNavigation.js.map +1 -1
  100. package/dist/SecondaryNavigationItem.d.ts +1 -1
  101. package/dist/SecondaryNavigationItem.js +15 -5
  102. package/dist/SecondaryNavigationItem.js.map +1 -1
  103. package/dist/SecondaryNavigationItemBase.d.ts +16 -2
  104. package/dist/SecondaryNavigationItemBase.js +27 -1
  105. package/dist/SecondaryNavigationItemBase.js.map +1 -1
  106. package/dist/SecondaryNavigationSubItem.d.ts +2 -1
  107. package/dist/SecondaryNavigationSubItem.js +5 -2
  108. package/dist/SecondaryNavigationSubItem.js.map +1 -1
  109. package/dist/SelectBox.d.ts +33 -9
  110. package/dist/SelectBox.js +121 -60
  111. package/dist/SelectBox.js.map +1 -1
  112. package/dist/StatusBadge.d.ts +5 -5
  113. package/dist/StatusBadge.js.map +1 -1
  114. package/dist/Switch.d.ts +20 -0
  115. package/dist/Switch.js +22 -0
  116. package/dist/Switch.js.map +1 -1
  117. package/dist/Tab.d.ts +9 -1
  118. package/dist/Tab.js +4 -1
  119. package/dist/Tab.js.map +1 -1
  120. package/dist/TabNavigation.d.ts +21 -21
  121. package/dist/TabNavigation.js +83 -102
  122. package/dist/TabNavigation.js.map +1 -1
  123. package/dist/Tag.d.ts +22 -7
  124. package/dist/Tag.js +52 -21
  125. package/dist/Tag.js.map +1 -1
  126. package/dist/TagGroup.d.ts +94 -0
  127. package/dist/TagGroup.js +174 -0
  128. package/dist/TagGroup.js.map +1 -0
  129. package/dist/TextArea.d.ts +14 -1
  130. package/dist/TextArea.js +18 -0
  131. package/dist/TextArea.js.map +1 -1
  132. package/dist/TextField.d.ts +32 -13
  133. package/dist/TextField.js +32 -2
  134. package/dist/TextField.js.map +1 -1
  135. package/dist/Tooltip.d.ts +3 -3
  136. package/dist/Tooltip.js +4 -4
  137. package/dist/Tooltip.js.map +1 -1
  138. package/dist/assets/bundle.esm-bb1c7413.js +316 -0
  139. package/dist/assets/messagebundle_en-c677773a.js +1 -0
  140. package/dist/assets/parameters-bundle.css-c897ae23.js +2 -0
  141. package/dist/assets/video.es-60bfb78c.js +228 -0
  142. package/dist/css/themes/AccordionItem.css +1 -1
  143. package/dist/css/themes/Avatar.css +1 -1
  144. package/dist/css/themes/Badge.css +1 -1
  145. package/dist/css/themes/CountrySelector.css +1 -1
  146. package/dist/css/themes/Divider.css +1 -1
  147. package/dist/css/themes/FilterMenu.css +1 -1
  148. package/dist/css/themes/Footer.css +1 -1
  149. package/dist/css/themes/HeroBanner.css +1 -1
  150. package/dist/css/themes/ListItem.css +1 -1
  151. package/dist/css/themes/MastheadItem.css +1 -1
  152. package/dist/css/themes/MastheadMobileMenu.css +1 -1
  153. package/dist/css/themes/MastheadShell.css +1 -1
  154. package/dist/css/themes/Modal.css +1 -1
  155. package/dist/css/themes/Pagination.css +1 -1
  156. package/dist/css/themes/PhoneNumberField.css +1 -1
  157. package/dist/css/themes/RatingBar.css +1 -0
  158. package/dist/css/themes/RatingIndicator.css +1 -1
  159. package/dist/css/themes/Review.css +1 -0
  160. package/dist/css/themes/ReviewItem.css +1 -0
  161. package/dist/css/themes/Search.css +1 -1
  162. package/dist/css/themes/SecondaryNavigation.css +1 -1
  163. package/dist/css/themes/SecondaryNavigationItem.css +1 -1
  164. package/dist/css/themes/SecondaryNavigationSubItem.css +1 -1
  165. package/dist/css/themes/SelectBox.css +1 -1
  166. package/dist/css/themes/Slider.css +1 -1
  167. package/dist/css/themes/StepInput.css +1 -1
  168. package/dist/css/themes/TabNavigation.css +1 -1
  169. package/dist/css/themes/Tag.css +1 -1
  170. package/dist/css/themes/TagGroup.css +1 -0
  171. package/dist/css/themes/TextArea.css +1 -1
  172. package/dist/css/themes/TextField.css +1 -1
  173. package/dist/css/themes/Toast.css +1 -1
  174. package/dist/css/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css +1 -1
  175. package/dist/custom-elements-internal.json +1435 -444
  176. package/dist/custom-elements.json +1267 -358
  177. package/dist/data/CountryListISO3166.js +162 -162
  178. package/dist/data/CountryListISO3166.js.map +1 -1
  179. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  180. package/dist/generated/assets/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.json +1 -1
  181. package/dist/generated/i18n/i18n-defaults.d.ts +11 -1
  182. package/dist/generated/i18n/i18n-defaults.js +18 -8
  183. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  184. package/dist/generated/templates/AccordionItemTemplate.lit.js +1 -1
  185. package/dist/generated/templates/AccordionItemTemplate.lit.js.map +1 -1
  186. package/dist/generated/templates/CountrySelectorTemplate.lit.js +3 -3
  187. package/dist/generated/templates/CountrySelectorTemplate.lit.js.map +1 -1
  188. package/dist/generated/templates/DatePickerTemplate.lit.js +1 -1
  189. package/dist/generated/templates/DatePickerTemplate.lit.js.map +1 -1
  190. package/dist/generated/templates/DropdownTemplate.lit.js +2 -2
  191. package/dist/generated/templates/DropdownTemplate.lit.js.map +1 -1
  192. package/dist/generated/templates/FilterMenuTemplate.lit.js +1 -1
  193. package/dist/generated/templates/FilterMenuTemplate.lit.js.map +1 -1
  194. package/dist/generated/templates/FooterTemplate.lit.js +26 -28
  195. package/dist/generated/templates/FooterTemplate.lit.js.map +1 -1
  196. package/dist/generated/templates/HeroBannerTemplate.lit.js +7 -7
  197. package/dist/generated/templates/HeroBannerTemplate.lit.js.map +1 -1
  198. package/dist/generated/templates/ListItemTemplate.lit.js +6 -6
  199. package/dist/generated/templates/ListItemTemplate.lit.js.map +1 -1
  200. package/dist/generated/templates/ListSelectAllTemplate.lit.js +1 -1
  201. package/dist/generated/templates/ListSelectAllTemplate.lit.js.map +1 -1
  202. package/dist/generated/templates/MastheadItemTemplate.lit.js +3 -3
  203. package/dist/generated/templates/MastheadItemTemplate.lit.js.map +1 -1
  204. package/dist/generated/templates/MastheadMenuItemTemplate.lit.js +1 -1
  205. package/dist/generated/templates/MastheadMenuItemTemplate.lit.js.map +1 -1
  206. package/dist/generated/templates/MastheadMenuTemplate.lit.js +2 -2
  207. package/dist/generated/templates/MastheadMenuTemplate.lit.js.map +1 -1
  208. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js +16 -12
  209. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js.map +1 -1
  210. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js +2 -2
  211. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js.map +1 -1
  212. package/dist/generated/templates/MastheadShellTemplate.lit.js +8 -8
  213. package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
  214. package/dist/generated/templates/MediaPlayerTemplate.lit.js +2 -2
  215. package/dist/generated/templates/MediaPlayerTemplate.lit.js.map +1 -1
  216. package/dist/generated/templates/PaginationTemplate.lit.js +1 -1
  217. package/dist/generated/templates/PaginationTemplate.lit.js.map +1 -1
  218. package/dist/generated/templates/PasswordFieldTemplate.lit.js +1 -2
  219. package/dist/generated/templates/PasswordFieldTemplate.lit.js.map +1 -1
  220. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js +6 -3
  221. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js.map +1 -1
  222. package/dist/generated/templates/RatingBarTemplate.lit.d.ts +4 -0
  223. package/dist/generated/templates/RatingBarTemplate.lit.js +6 -0
  224. package/dist/generated/templates/RatingBarTemplate.lit.js.map +1 -0
  225. package/dist/generated/templates/ReviewItemTemplate.lit.d.ts +4 -0
  226. package/dist/generated/templates/ReviewItemTemplate.lit.js +8 -0
  227. package/dist/generated/templates/ReviewItemTemplate.lit.js.map +1 -0
  228. package/dist/generated/templates/ReviewTemplate.lit.d.ts +4 -0
  229. package/dist/generated/templates/ReviewTemplate.lit.js +10 -0
  230. package/dist/generated/templates/ReviewTemplate.lit.js.map +1 -0
  231. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js +1 -1
  232. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js.map +1 -1
  233. package/dist/generated/templates/SearchTemplate.lit.js +7 -7
  234. package/dist/generated/templates/SearchTemplate.lit.js.map +1 -1
  235. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js +3 -3
  236. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js.map +1 -1
  237. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js +5 -4
  238. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js.map +1 -1
  239. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +7 -6
  240. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +1 -1
  241. package/dist/generated/templates/SelectBoxTemplate.lit.js +2 -2
  242. package/dist/generated/templates/SelectBoxTemplate.lit.js.map +1 -1
  243. package/dist/generated/templates/SwitchTemplate.lit.js +2 -2
  244. package/dist/generated/templates/SwitchTemplate.lit.js.map +1 -1
  245. package/dist/generated/templates/TabHeaderTemplate.lit.js +2 -2
  246. package/dist/generated/templates/TabHeaderTemplate.lit.js.map +1 -1
  247. package/dist/generated/templates/TabInOverflowTemplate.lit.js +6 -6
  248. package/dist/generated/templates/TabInOverflowTemplate.lit.js.map +1 -1
  249. package/dist/generated/templates/TabNavigationPopoverTemplate.lit.js +1 -1
  250. package/dist/generated/templates/TabNavigationPopoverTemplate.lit.js.map +1 -1
  251. package/dist/generated/templates/TabNavigationTemplate.lit.js +4 -2
  252. package/dist/generated/templates/TabNavigationTemplate.lit.js.map +1 -1
  253. package/dist/generated/templates/TagGroupTemplate.lit.d.ts +4 -0
  254. package/dist/generated/templates/TagGroupTemplate.lit.js +8 -0
  255. package/dist/generated/templates/TagGroupTemplate.lit.js.map +1 -0
  256. package/dist/generated/templates/TagTemplate.lit.js +13 -3
  257. package/dist/generated/templates/TagTemplate.lit.js.map +1 -1
  258. package/dist/generated/templates/TextAreaTemplate.lit.js +1 -1
  259. package/dist/generated/templates/TextAreaTemplate.lit.js.map +1 -1
  260. package/dist/generated/templates/TextFieldTemplate.lit.js +2 -2
  261. package/dist/generated/templates/TextFieldTemplate.lit.js.map +1 -1
  262. package/dist/generated/templates/TooltipTemplate.lit.js +1 -1
  263. package/dist/generated/templates/TooltipTemplate.lit.js.map +1 -1
  264. package/dist/generated/themes/AccordionItem.css.js +1 -1
  265. package/dist/generated/themes/AccordionItem.css.js.map +1 -1
  266. package/dist/generated/themes/Avatar.css.js +1 -1
  267. package/dist/generated/themes/Avatar.css.js.map +1 -1
  268. package/dist/generated/themes/Badge.css.js +1 -1
  269. package/dist/generated/themes/Badge.css.js.map +1 -1
  270. package/dist/generated/themes/CountrySelector.css.js +1 -1
  271. package/dist/generated/themes/CountrySelector.css.js.map +1 -1
  272. package/dist/generated/themes/Divider.css.js +1 -1
  273. package/dist/generated/themes/Divider.css.js.map +1 -1
  274. package/dist/generated/themes/FilterMenu.css.js +1 -1
  275. package/dist/generated/themes/FilterMenu.css.js.map +1 -1
  276. package/dist/generated/themes/Footer.css.js +1 -1
  277. package/dist/generated/themes/Footer.css.js.map +1 -1
  278. package/dist/generated/themes/HeroBanner.css.js +1 -1
  279. package/dist/generated/themes/HeroBanner.css.js.map +1 -1
  280. package/dist/generated/themes/ListItem.css.js +1 -1
  281. package/dist/generated/themes/ListItem.css.js.map +1 -1
  282. package/dist/generated/themes/MastheadItem.css.js +1 -1
  283. package/dist/generated/themes/MastheadItem.css.js.map +1 -1
  284. package/dist/generated/themes/MastheadMobileMenu.css.js +1 -1
  285. package/dist/generated/themes/MastheadMobileMenu.css.js.map +1 -1
  286. package/dist/generated/themes/MastheadShell.css.js +1 -1
  287. package/dist/generated/themes/MastheadShell.css.js.map +1 -1
  288. package/dist/generated/themes/Modal.css.js +1 -1
  289. package/dist/generated/themes/Modal.css.js.map +1 -1
  290. package/dist/generated/themes/Pagination.css.js +1 -1
  291. package/dist/generated/themes/Pagination.css.js.map +1 -1
  292. package/dist/generated/themes/PhoneNumberField.css.js +1 -1
  293. package/dist/generated/themes/PhoneNumberField.css.js.map +1 -1
  294. package/dist/generated/themes/RatingBar.css.js +9 -0
  295. package/dist/generated/themes/RatingBar.css.js.map +1 -0
  296. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  297. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  298. package/dist/generated/themes/Review.css.d.ts +3 -0
  299. package/dist/generated/themes/Review.css.js +9 -0
  300. package/dist/generated/themes/Review.css.js.map +1 -0
  301. package/dist/generated/themes/ReviewItem.css.d.ts +3 -0
  302. package/dist/generated/themes/ReviewItem.css.js +9 -0
  303. package/dist/generated/themes/ReviewItem.css.js.map +1 -0
  304. package/dist/generated/themes/Search.css.js +1 -1
  305. package/dist/generated/themes/Search.css.js.map +1 -1
  306. package/dist/generated/themes/SecondaryNavigation.css.js +1 -1
  307. package/dist/generated/themes/SecondaryNavigation.css.js.map +1 -1
  308. package/dist/generated/themes/SecondaryNavigationItem.css.js +1 -1
  309. package/dist/generated/themes/SecondaryNavigationItem.css.js.map +1 -1
  310. package/dist/generated/themes/SecondaryNavigationSubItem.css.js +1 -1
  311. package/dist/generated/themes/SecondaryNavigationSubItem.css.js.map +1 -1
  312. package/dist/generated/themes/SelectBox.css.js +1 -1
  313. package/dist/generated/themes/SelectBox.css.js.map +1 -1
  314. package/dist/generated/themes/Slider.css.js +1 -1
  315. package/dist/generated/themes/Slider.css.js.map +1 -1
  316. package/dist/generated/themes/StepInput.css.js +1 -1
  317. package/dist/generated/themes/StepInput.css.js.map +1 -1
  318. package/dist/generated/themes/TabNavigation.css.js +1 -1
  319. package/dist/generated/themes/TabNavigation.css.js.map +1 -1
  320. package/dist/generated/themes/Tag.css.js +1 -1
  321. package/dist/generated/themes/Tag.css.js.map +1 -1
  322. package/dist/generated/themes/TagGroup.css.d.ts +3 -0
  323. package/dist/generated/themes/TagGroup.css.js +9 -0
  324. package/dist/generated/themes/TagGroup.css.js.map +1 -0
  325. package/dist/generated/themes/TextArea.css.js +1 -1
  326. package/dist/generated/themes/TextArea.css.js.map +1 -1
  327. package/dist/generated/themes/TextField.css.js +1 -1
  328. package/dist/generated/themes/TextField.css.js.map +1 -1
  329. package/dist/generated/themes/Toast.css.js +1 -1
  330. package/dist/generated/themes/Toast.css.js.map +1 -1
  331. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js +1 -1
  332. package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js.map +1 -1
  333. package/dist/i18n/messagebundle.properties +35 -7
  334. package/dist/i18n/messagebundle_en.properties +17 -7
  335. package/dist/vscode.html-custom-data.json +260 -95
  336. package/dist/web-types.json +605 -183
  337. package/package.json +9 -9
  338. package/src/Accordion.ts +1 -1
  339. package/src/AccordionItem.hbs +1 -4
  340. package/src/AccordionItem.ts +6 -5
  341. package/src/Avatar.ts +24 -1
  342. package/src/AvatarGroup.ts +135 -0
  343. package/src/Checkbox.ts +1 -1
  344. package/src/CountrySelector.hbs +19 -15
  345. package/src/CountrySelector.ts +42 -9
  346. package/src/DatePicker.hbs +7 -9
  347. package/src/DatePicker.ts +14 -10
  348. package/src/Dropdown.hbs +8 -2
  349. package/src/Dropdown.ts +27 -6
  350. package/src/FilterMenu.hbs +58 -56
  351. package/src/FilterMenu.ts +101 -39
  352. package/src/Footer.hbs +21 -37
  353. package/src/Footer.ts +74 -52
  354. package/src/HeroBanner.hbs +22 -15
  355. package/src/HeroBanner.ts +3 -0
  356. package/src/Link.ts +1 -1
  357. package/src/List.ts +43 -23
  358. package/src/ListGroupHeader.ts +2 -2
  359. package/src/ListItem.hbs +4 -2
  360. package/src/ListItem.ts +8 -10
  361. package/src/ListSelectAll.hbs +1 -1
  362. package/src/ListSelectAll.ts +1 -1
  363. package/src/MastheadItem.hbs +7 -5
  364. package/src/MastheadItem.ts +44 -11
  365. package/src/MastheadMenu.hbs +4 -2
  366. package/src/MastheadMenu.ts +30 -0
  367. package/src/MastheadMenuItem.hbs +0 -2
  368. package/src/MastheadMenuItem.ts +2 -16
  369. package/src/MastheadMobileMenu.hbs +36 -10
  370. package/src/MastheadMobileMenu.ts +162 -22
  371. package/src/MastheadProfileMenu.hbs +6 -2
  372. package/src/MastheadProfileMenu.ts +66 -20
  373. package/src/MastheadShell.hbs +14 -4
  374. package/src/MastheadShell.ts +67 -8
  375. package/src/MediaPlayer.hbs +1 -3
  376. package/src/MediaPlayer.ts +122 -26
  377. package/src/MessageStrip.ts +1 -1
  378. package/src/Pagination.hbs +4 -2
  379. package/src/Pagination.ts +19 -4
  380. package/src/PasswordField.hbs +6 -17
  381. package/src/PasswordField.ts +31 -23
  382. package/src/PhoneNumberField.hbs +26 -6
  383. package/src/PhoneNumberField.ts +77 -2
  384. package/src/RatingBar.hbs +11 -0
  385. package/src/RatingBar.ts +113 -0
  386. package/src/Review.hbs +44 -0
  387. package/src/Review.ts +140 -0
  388. package/src/ReviewItem.hbs +20 -0
  389. package/src/ReviewItem.ts +227 -0
  390. package/src/Search.hbs +19 -14
  391. package/src/Search.ts +113 -6
  392. package/src/SearchSuggestions.hbs +1 -0
  393. package/src/SearchableListBase.ts +1 -1
  394. package/src/SecondaryNavigation.hbs +14 -8
  395. package/src/SecondaryNavigation.ts +76 -56
  396. package/src/SecondaryNavigationItem.hbs +3 -2
  397. package/src/SecondaryNavigationItem.ts +15 -5
  398. package/src/SecondaryNavigationItemBase.ts +41 -3
  399. package/src/SecondaryNavigationSubItem.hbs +13 -10
  400. package/src/SecondaryNavigationSubItem.ts +6 -2
  401. package/src/SelectBox.hbs +84 -83
  402. package/src/SelectBox.ts +155 -72
  403. package/src/StatusBadge.ts +2 -2
  404. package/src/Switch.hbs +3 -3
  405. package/src/Switch.ts +25 -0
  406. package/src/Tab.ts +11 -1
  407. package/src/TabHeader.hbs +3 -1
  408. package/src/TabInOverflow.hbs +19 -6
  409. package/src/TabNavigation.hbs +22 -12
  410. package/src/TabNavigation.ts +93 -117
  411. package/src/TabNavigationPopover.hbs +1 -0
  412. package/src/Tag.hbs +76 -26
  413. package/src/Tag.ts +77 -36
  414. package/src/TagGroup.hbs +48 -0
  415. package/src/TagGroup.ts +222 -0
  416. package/src/TextArea.hbs +36 -34
  417. package/src/TextArea.ts +28 -0
  418. package/src/TextField.hbs +45 -39
  419. package/src/TextField.ts +73 -17
  420. package/src/Tooltip.hbs +2 -2
  421. package/src/Tooltip.ts +5 -5
  422. package/src/data/CountryListISO3166.ts +162 -162
  423. package/src/generated/i18n/i18n-defaults.ts +2 -2
  424. package/src/generated/templates/AccordionItemTemplate.lit.ts +1 -1
  425. package/src/generated/templates/CountrySelectorTemplate.lit.ts +3 -3
  426. package/src/generated/templates/DatePickerTemplate.lit.ts +1 -1
  427. package/src/generated/templates/DropdownTemplate.lit.ts +2 -2
  428. package/src/generated/templates/FilterMenuTemplate.lit.ts +1 -1
  429. package/src/generated/templates/FooterTemplate.lit.ts +26 -28
  430. package/src/generated/templates/HeroBannerTemplate.lit.ts +7 -7
  431. package/src/generated/templates/ListItemTemplate.lit.ts +6 -6
  432. package/src/generated/templates/ListSelectAllTemplate.lit.ts +1 -1
  433. package/src/generated/templates/MastheadItemTemplate.lit.ts +3 -3
  434. package/src/generated/templates/MastheadMenuItemTemplate.lit.ts +1 -1
  435. package/src/generated/templates/MastheadMenuTemplate.lit.ts +2 -2
  436. package/src/generated/templates/MastheadMobileMenuTemplate.lit.ts +16 -12
  437. package/src/generated/templates/MastheadProfileMenuTemplate.lit.ts +2 -2
  438. package/src/generated/templates/MastheadShellTemplate.lit.ts +8 -8
  439. package/src/generated/templates/MediaPlayerTemplate.lit.ts +2 -2
  440. package/src/generated/templates/PaginationTemplate.lit.ts +1 -1
  441. package/src/generated/templates/PasswordFieldTemplate.lit.ts +1 -2
  442. package/src/generated/templates/PhoneNumberFieldTemplate.lit.ts +6 -3
  443. package/src/generated/templates/RatingBarTemplate.lit.ts +11 -0
  444. package/src/generated/templates/ReviewItemTemplate.lit.ts +13 -0
  445. package/src/generated/templates/ReviewTemplate.lit.ts +15 -0
  446. package/src/generated/templates/SearchSuggestionsTemplate.lit.ts +1 -1
  447. package/src/generated/templates/SearchTemplate.lit.ts +7 -7
  448. package/src/generated/templates/SecondaryNavigationItemTemplate.lit.ts +3 -3
  449. package/src/generated/templates/SecondaryNavigationSubItemTemplate.lit.ts +5 -4
  450. package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +7 -6
  451. package/src/generated/templates/SelectBoxTemplate.lit.ts +2 -2
  452. package/src/generated/templates/SwitchTemplate.lit.ts +2 -2
  453. package/src/generated/templates/TabHeaderTemplate.lit.ts +2 -2
  454. package/src/generated/templates/TabInOverflowTemplate.lit.ts +6 -6
  455. package/src/generated/templates/TabNavigationPopoverTemplate.lit.ts +1 -1
  456. package/src/generated/templates/TabNavigationTemplate.lit.ts +4 -2
  457. package/src/generated/templates/TagGroupTemplate.lit.ts +13 -0
  458. package/src/generated/templates/TagTemplate.lit.ts +13 -3
  459. package/src/generated/templates/TextAreaTemplate.lit.ts +1 -1
  460. package/src/generated/templates/TextFieldTemplate.lit.ts +2 -2
  461. package/src/generated/templates/TooltipTemplate.lit.ts +1 -1
  462. package/src/generated/themes/AccordionItem.css.ts +1 -1
  463. package/src/generated/themes/Avatar.css.ts +1 -1
  464. package/src/generated/themes/Badge.css.ts +1 -1
  465. package/src/generated/themes/CountrySelector.css.ts +1 -1
  466. package/src/generated/themes/Divider.css.ts +1 -1
  467. package/src/generated/themes/FilterMenu.css.ts +1 -1
  468. package/src/generated/themes/Footer.css.ts +1 -1
  469. package/src/generated/themes/HeroBanner.css.ts +1 -1
  470. package/src/generated/themes/ListItem.css.ts +1 -1
  471. package/src/generated/themes/MastheadItem.css.ts +1 -1
  472. package/src/generated/themes/MastheadMobileMenu.css.ts +1 -1
  473. package/src/generated/themes/MastheadShell.css.ts +1 -1
  474. package/src/generated/themes/Modal.css.ts +1 -1
  475. package/src/generated/themes/Pagination.css.ts +1 -1
  476. package/src/generated/themes/PhoneNumberField.css.ts +1 -1
  477. package/src/generated/themes/RatingBar.css.ts +13 -0
  478. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  479. package/src/generated/themes/Review.css.ts +13 -0
  480. package/src/generated/themes/ReviewItem.css.ts +13 -0
  481. package/src/generated/themes/Search.css.ts +1 -1
  482. package/src/generated/themes/SecondaryNavigation.css.ts +1 -1
  483. package/src/generated/themes/SecondaryNavigationItem.css.ts +1 -1
  484. package/src/generated/themes/SecondaryNavigationSubItem.css.ts +1 -1
  485. package/src/generated/themes/SelectBox.css.ts +1 -1
  486. package/src/generated/themes/Slider.css.ts +1 -1
  487. package/src/generated/themes/StepInput.css.ts +1 -1
  488. package/src/generated/themes/TabNavigation.css.ts +1 -1
  489. package/src/generated/themes/Tag.css.ts +1 -1
  490. package/src/generated/themes/TagGroup.css.ts +13 -0
  491. package/src/generated/themes/TextArea.css.ts +1 -1
  492. package/src/generated/themes/TextField.css.ts +1 -1
  493. package/src/generated/themes/Toast.css.ts +1 -1
  494. package/src/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.ts +1 -1
  495. package/src/i18n/messagebundle.properties +35 -7
  496. package/src/i18n/messagebundle_en.properties +17 -7
  497. package/src/themes/AccordionItem.css +6 -4
  498. package/src/themes/Avatar.css +24 -7
  499. package/src/themes/Badge.css +1 -1
  500. package/src/themes/CountrySelector.css +49 -26
  501. package/src/themes/Divider.css +6 -2
  502. package/src/themes/FilterMenu.css +52 -15
  503. package/src/themes/Footer.css +93 -168
  504. package/src/themes/HeroBanner.css +52 -24
  505. package/src/themes/ListItem.css +4 -0
  506. package/src/themes/MastheadItem.css +12 -2
  507. package/src/themes/MastheadMobileMenu.css +4 -0
  508. package/src/themes/MastheadShell.css +25 -29
  509. package/src/themes/Modal.css +6 -0
  510. package/src/themes/Pagination.css +7 -0
  511. package/src/themes/PhoneNumberField.css +15 -1
  512. package/src/themes/RatingBar.css +52 -0
  513. package/src/themes/Review.css +196 -0
  514. package/src/themes/ReviewItem.css +121 -0
  515. package/src/themes/Search.css +46 -25
  516. package/src/themes/SecondaryNavigation.css +41 -13
  517. package/src/themes/SecondaryNavigationItem.css +6 -4
  518. package/src/themes/SecondaryNavigationSubItem.css +5 -5
  519. package/src/themes/SelectBox.css +51 -24
  520. package/src/themes/StepInput.css +5 -2
  521. package/src/themes/TabNavigation.css +7 -1
  522. package/src/themes/Tag.css +200 -148
  523. package/src/themes/TagGroup.css +90 -0
  524. package/src/themes/TextArea.css +13 -0
  525. package/src/themes/TextField.css +97 -60
  526. package/src/themes/Toast.css +4 -0
  527. package/dist/assets/bundle.esm-f65ae7da.js +0 -315
  528. package/dist/assets/messagebundle_en-7249941b.js +0 -1
  529. package/dist/assets/parameters-bundle.css-76ef62fa.js +0 -2
  530. package/dist/assets/video.es-17aecf95.js +0 -219
  531. package/dist/css/themes/PasswordField.css +0 -1
  532. package/dist/generated/themes/PasswordField.css.js +0 -9
  533. package/dist/generated/themes/PasswordField.css.js.map +0 -1
  534. package/src/generated/themes/PasswordField.css.ts +0 -13
  535. package/src/themes/PasswordField.css +0 -29
  536. /package/dist/generated/themes/{PasswordField.css.d.ts → RatingBar.css.d.ts} +0 -0
@@ -25,6 +25,7 @@ import MastheadShellTemplate from "./generated/templates/MastheadShellTemplate.l
25
25
  // Styles
26
26
  import MastheadShellCss from "./generated/themes/MastheadShell.css.js";
27
27
  const mobileMenuActiveClass = "udex-masthead-shell_mobile-menu-open";
28
+ const breakpointSizeM = 1279;
28
29
  /**
29
30
  * @class
30
31
  *
@@ -66,9 +67,11 @@ let UDExMastheadShell = class UDExMastheadShell extends UI5Element {
66
67
  ResizeHandler.deregister(this, this._handleResizeBound);
67
68
  }
68
69
  _handleResize() {
69
- if (this._shouldHandleResize) {
70
- this._mobileMenu?.showFirstLevelMenu();
71
- this.removeOverflowBody();
70
+ if (this.isMobileView) {
71
+ this._isSearchVisible = false;
72
+ }
73
+ if (this._shouldHandleResize && this.isMobileView) {
74
+ this.resetMobileMenuOpenState();
72
75
  return;
73
76
  }
74
77
  this._shouldHandleResize = true;
@@ -94,6 +97,12 @@ let UDExMastheadShell = class UDExMastheadShell extends UI5Element {
94
97
  }
95
98
  }
96
99
  }
100
+ handleLogoClick(e) {
101
+ this.fireEvent("logo-click", { originalEvent: e });
102
+ }
103
+ handleSiteLabelClick(e) {
104
+ this.fireEvent("site-label-click", { originalEvent: e });
105
+ }
97
106
  handleSearchClick(e) {
98
107
  e.stopPropagation();
99
108
  this._isSearchVisible = true;
@@ -105,12 +114,10 @@ let UDExMastheadShell = class UDExMastheadShell extends UI5Element {
105
114
  }
106
115
  handleCartClick(e) {
107
116
  e.stopPropagation();
108
- this.setSelectedItem(e);
109
117
  this.fireEvent("cart-click");
110
118
  }
111
119
  handleProfileClick(e) {
112
120
  e.stopPropagation();
113
- this.setSelectedItem(e);
114
121
  this.fireEvent("profile-click");
115
122
  }
116
123
  handleMobileMenuClick(e) {
@@ -214,6 +221,14 @@ let UDExMastheadShell = class UDExMastheadShell extends UI5Element {
214
221
  const { body: { style } } = document;
215
222
  style.removeProperty("overflow");
216
223
  }
224
+ resetMobileMenuOpenState() {
225
+ this.removeActiveMobileClass();
226
+ this.resetSelectedItems();
227
+ this._mobileMenu?.showFirstLevelMenu();
228
+ if (this.bodyOverflow) {
229
+ this.removeOverflowBody();
230
+ }
231
+ }
217
232
  get searchOpener() {
218
233
  return this.shadowRoot?.querySelector(".udex-masthead-shell__search-btn");
219
234
  }
@@ -241,6 +256,9 @@ let UDExMastheadShell = class UDExMastheadShell extends UI5Element {
241
256
  get hasMobileMenuButtons() {
242
257
  return !!this.mobileMenu.length;
243
258
  }
259
+ get isMobileView() {
260
+ return window.innerWidth <= breakpointSizeM;
261
+ }
244
262
  };
245
263
  __decorate([
246
264
  slot({ type: HTMLElement })
@@ -275,6 +293,9 @@ __decorate([
275
293
  __decorate([
276
294
  property({ type: String, defaultValue: "" })
277
295
  ], UDExMastheadShell.prototype, "logoUrl", void 0);
296
+ __decorate([
297
+ property({ type: String, defaultValue: "" })
298
+ ], UDExMastheadShell.prototype, "logoTitle", void 0);
278
299
  __decorate([
279
300
  property({ type: String, defaultValue: "" })
280
301
  ], UDExMastheadShell.prototype, "siteLabel", void 0);
@@ -313,7 +334,6 @@ UDExMastheadShell = __decorate([
313
334
  /**
314
335
  * Fired event when the user clicks the search button trigger.
315
336
  *
316
- * @event sap.ui.webc.web-components.UDExMastheadShell#searchClick
317
337
  * @public
318
338
  */
319
339
  ,
@@ -321,7 +341,6 @@ UDExMastheadShell = __decorate([
321
341
  /**
322
342
  * Fired event when the user clicks the cart button trigger.
323
343
  *
324
- * @event sap.ui.webc.web-components.UDExMastheadShell#cartClick
325
344
  * @public
326
345
  */
327
346
  ,
@@ -329,11 +348,36 @@ UDExMastheadShell = __decorate([
329
348
  /**
330
349
  * Fired event when the user clicks the profile button trigger.
331
350
  *
332
- * @event sap.ui.webc.web-components.UDExMastheadShell#profileClick
333
351
  * @public
334
352
  */
335
353
  ,
336
354
  event("profile-click")
355
+ /**
356
+ * Fired event when the user clicks the logo.
357
+ *
358
+ * @public
359
+ */
360
+ ,
361
+ event("logo-click", {
362
+ detail: {
363
+ originalEvent: {
364
+ type: PointerEvent,
365
+ },
366
+ },
367
+ })
368
+ /**
369
+ * Fired event when the user clicks the site label.
370
+ *
371
+ * @public
372
+ */
373
+ ,
374
+ event("site-label-click", {
375
+ detail: {
376
+ originalEvent: {
377
+ type: PointerEvent,
378
+ },
379
+ },
380
+ })
337
381
  ], UDExMastheadShell);
338
382
  UDExMastheadShell.define();
339
383
  export default UDExMastheadShell;
@@ -1 +1 @@
1
- {"version":3,"file":"MastheadShell.js","sourceRoot":"","sources":["../src/MastheadShell.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport ResizeHandler, { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { isLeft, isRight } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport \"@ui5/webcomponents-icons/dist/menu2.js\";\nimport \"@ui5/webcomponents-icons/dist/search.js\";\nimport \"@ui5/webcomponents-icons/dist/cart.js\";\nimport UDExMastheadItem from \"./MastheadItem.js\";\nimport UDExMastheadMenu from \"./MastheadMenu.js\";\nimport UDExControlButton from \"./ControlButton.js\";\nimport UDExSearch from \"./Search.js\";\nimport UDExMastheadMobileMenu from \"./MastheadMobileMenu.js\";\n\nimport MastheadShellTemplate from \"./generated/templates/MastheadShellTemplate.lit.js\";\n\n// Styles\nimport MastheadShellCss from \"./generated/themes/MastheadShell.css.js\";\n\nconst mobileMenuActiveClass: string = \"udex-masthead-shell_mobile-menu-open\";\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-masthead-shell</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/MastheadShell.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-masthead-shell\",\n renderer: litRender,\n styles: MastheadShellCss,\n template: MastheadShellTemplate,\n dependencies: [\n UDExMastheadMobileMenu,\n UDExControlButton,\n UDExMastheadItem,\n UDExMastheadMenu,\n UI5Icon,\n ],\n})\n\n/**\n * Fired event when the user clicks the search button trigger.\n *\n * @event sap.ui.webc.web-components.UDExMastheadShell#searchClick\n * @public\n */\n@event(\"search-click\")\n\n/**\n * Fired event when the user clicks the cart button trigger.\n *\n * @event sap.ui.webc.web-components.UDExMastheadShell#cartClick\n * @public\n */\n@event(\"cart-click\")\n\n/**\n * Fired event when the user clicks the profile button trigger.\n *\n * @event sap.ui.webc.web-components.UDExMastheadShell#profileClick\n * @public\n */\n@event(\"profile-click\")\nclass UDExMastheadShell extends UI5Element {\n /**\n * Slot for mobile menu\n *\n * @public\n */\n @slot({ type: HTMLElement })\n mobileMenu!: Array<Node>;\n\n /**\n * Slot for main menu items.\n *\n * @public\n */\n @slot({ type: HTMLElement, individualSlots: true, \"default\": true })\n menuItems!: Array<UDExMastheadItem>;\n\n /**\n * Slot for search component - will be visible on search icon click.\n * Note: search component should be hidden by default.\n * Note: search icon won't be visible if this slot would be empty\n *\n * @public\n */\n @slot({ type: Node })\n search!: Array<Node>;\n\n /**\n * Slot for 'Explore SAP' menu\n *\n * @public\n */\n @slot({ type: HTMLElement })\n exploreSAP!: Array<UDExMastheadItem>;\n\n /**\n * Slot for cart menu\n *\n * @public\n */\n @slot({ type: HTMLElement })\n cart!: Array<UDExMastheadItem>;\n\n /**\n * Slot for avatar\n *\n * @public\n */\n @slot({ type: HTMLElement })\n profile!: Array<UDExMastheadItem>;\n\n /**\n * Defines URL to homepage. It will be used as a link on a logo and a site label\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n homeUrl!: string;\n\n /**\n * Defines URL for site label. It will be used as a link on a logo and a site label\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n siteLabelUrl!: string;\n\n /**\n * Defines overflow style for the body after clicking mobile menu opener button\n *\n * @default \"\"\n * @public\n */\n @property({ type: Boolean })\n bodyOverflow!: boolean;\n\n /**\n * Defines sticky position for component\n *\n * @default \"\"\n * @public\n */\n @property({ type: Boolean })\n stickyPosition!: boolean;\n\n /**\n * Defines the Logo image URL\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n logoUrl!: string;\n\n /**\n * Defines a site label. It will be displayed next to a logo.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n siteLabel!: string;\n\n /**\n * Defines an alt text for logo\n *\n * @public\n */\n @property({ type: String })\n logoAlt!: string;\n\n /**\n * Defines an accessible name for close icon for the search bar\n *\n * default: \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n closeButtonAccessibleName?: string;\n\n /**\n * Defines an aria label for the homepage link\n *\n * @public\n */\n @property({ type: String })\n homepageAriaLabel!: string;\n\n /**\n * Defines an aria label for the site label\n *\n * @public\n */\n @property({ type: String })\n siteLabelAriaLabel!: string;\n\n /**\n * Defines if the search container is visible\n *\n * @private\n */\n @property({ type: Boolean })\n _isSearchVisible!: boolean;\n\n /**\n * Defines if the close button was clicked\n *\n * @private\n */\n @property({ type: Boolean })\n _closeBtnClicked!: boolean;\n\n _searchOpener!: UDExMastheadItem | null | undefined;\n _mobileMenu!: UDExMastheadMobileMenu | null | undefined;\n _handleResizeBound: ResizeObserverCallback;\n _rootHolder!: HTMLElement | null | undefined;\n _shouldHandleResize!: boolean;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n onAfterRendering() {\n this._rootHolder = this.mastheadHolder;\n this._searchOpener = this.searchOpener;\n this._mobileMenu = this.mastheadMobileMenu;\n\n this.handleOutsideClick();\n\n if (this._isSearchVisible) {\n this.focusSearchInput();\n }\n\n if (this._closeBtnClicked) {\n this.focusSearchBtn();\n }\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 _handleResize(): void {\n if (this._shouldHandleResize) {\n this._mobileMenu?.showFirstLevelMenu();\n this.removeOverflowBody();\n return;\n }\n this._shouldHandleResize = true;\n }\n\n handleKeyDown(e: KeyboardEvent) {\n e.stopPropagation();\n this.handleLeftArrow(e);\n this.handleRightArrow(e);\n }\n\n handleLeftArrow(e: KeyboardEvent): void {\n if (isLeft(e)) {\n const currentItem = e.target as UDExMastheadItem;\n if (this.isNavigationItem(currentItem)) {\n this.focusPreviousMenuItem(currentItem);\n }\n }\n }\n\n handleRightArrow(e: KeyboardEvent): void {\n if (isRight(e)) {\n const currentItem = e.target as UDExMastheadItem;\n if (this.isNavigationItem(currentItem)) {\n this.focusNextMenuItem(currentItem);\n }\n }\n }\n\n handleSearchClick(e: CustomEvent): void {\n e.stopPropagation();\n this._isSearchVisible = true;\n this.resetSelectedItems();\n if (this._searchOpener) {\n this._searchOpener.selected = false;\n }\n this.fireEvent(\"search-click\");\n }\n\n handleCartClick(e: CustomEvent) {\n e.stopPropagation();\n this.setSelectedItem(e);\n this.fireEvent(\"cart-click\");\n }\n\n handleProfileClick(e: CustomEvent): void {\n e.stopPropagation();\n this.setSelectedItem(e);\n this.fireEvent(\"profile-click\");\n }\n\n handleMobileMenuClick(e: CustomEvent) {\n e.stopPropagation();\n this.setSelectedItem(e);\n this.addActiveMobileClass();\n\n if (this.bodyOverflow) {\n this.setOverflowBody();\n }\n }\n\n handleMobileCloseClick(e: CustomEvent) {\n e.preventDefault();\n this.removeActiveMobileClass();\n this.setSelectedItem(e);\n this._mobileMenu?.showFirstLevelMenu();\n\n if (this.bodyOverflow) {\n this.removeOverflowBody();\n }\n }\n\n handleOutsideClick(): void {\n document.addEventListener(\"click\", (e: MouseEvent) => {\n const el = e.target as UDExMastheadItem;\n const isMobile = window.innerWidth < 1280;\n const isDropdownSlot = el.getAttribute(\"slot\") === \"dropdown\";\n if (!isDropdownSlot && !el.isMenuItem && !isMobile) {\n this.resetSelectedItems();\n }\n });\n }\n\n focusSearchInput(): void {\n const searchSlot = this.querySelector<UDExSearch>(\"udex-search\");\n if (searchSlot) {\n const input = searchSlot.shadowRoot!.querySelector<HTMLElement>(\"input\");\n input?.focus();\n }\n }\n\n focusPreviousMenuItem(item: UDExMastheadItem): void {\n const currentSelectedIndex = this.getCurrentIndex(item);\n const lastItemIndex = this.menuItems.length - 1;\n const previousSelectIndex = currentSelectedIndex - 1 < 0 ? lastItemIndex : currentSelectedIndex - 1;\n this.menuItems[previousSelectIndex].focus();\n }\n\n focusNextMenuItem(item: UDExMastheadItem): void {\n const currentSelectedIndex = this.getCurrentIndex(item);\n const nextSelectIndex = currentSelectedIndex + 1 > this.menuItems.length - 1 ? 0 : currentSelectedIndex + 1;\n this.menuItems[nextSelectIndex].focus();\n }\n\n resetSelectedItems(): void {\n this.getSelectedItems().forEach(item => {\n item.selected = false;\n });\n }\n\n addActiveMobileClass() {\n this._rootHolder?.classList.add(mobileMenuActiveClass);\n }\n\n removeActiveMobileClass() {\n this._rootHolder?.classList.remove(mobileMenuActiveClass);\n }\n\n setSelectedItem(e: CustomEvent): void {\n const clickedItem: UDExMastheadItem = e.detail.item;\n if (!clickedItem) {\n return;\n }\n\n this.getSelectedItems().forEach(item => {\n if (item._id !== clickedItem._id) {\n item.selected = false;\n }\n });\n }\n\n focusSearchBtn(): void {\n if (this._searchOpener) {\n this._searchOpener.focus();\n }\n }\n\n hideSearch(): void {\n this._isSearchVisible = false;\n this._closeBtnClicked = true;\n }\n\n getCurrentIndex(item: UDExMastheadItem): number {\n return this.menuItems.indexOf(item);\n }\n\n getSelectedItems(): Array<UDExMastheadItem> {\n const buttonsArray: Array<UDExMastheadItem> = [\n ...this.menuItems,\n ...this.exploreSAP,\n ...this.cart,\n ...this.profile,\n ...(this.mobileBtn && this.closeBtn ? [this.mobileBtn, this.closeBtn] : []),\n ];\n\n return buttonsArray.filter(({ selected }) => selected);\n }\n\n isNavigationItem(item: UDExMastheadItem): boolean {\n return this.menuItems.some(menuItem => menuItem === item);\n }\n\n setOverflowBody() {\n const { body: { style } } = document;\n this._shouldHandleResize = false;\n style.overflow = \"hidden\";\n }\n\n removeOverflowBody() {\n const { body: { style } } = document;\n style.removeProperty(\"overflow\");\n }\n\n get searchOpener(): UDExMastheadItem | null | undefined {\n return this.shadowRoot?.querySelector(\".udex-masthead-shell__search-btn\");\n }\n\n get mastheadHolder(): HTMLElement | null | undefined {\n return this.shadowRoot?.querySelector(\".udex-masthead-shell\");\n }\n\n get mastheadMobileMenu(): UDExMastheadMobileMenu | null {\n return this.querySelector(\"[udex-masthead-mobile-menu]\");\n }\n\n get mobileBtn(): UDExMastheadItem | null | undefined {\n return this.shadowRoot?.querySelector(\".udex-masthead-shell__menu-btn\");\n }\n\n get closeBtn(): UDExMastheadItem | null | undefined {\n return this.shadowRoot?.querySelector(\".udex-masthead-shell__close-btn\");\n }\n\n get hasProfile(): boolean {\n return !!this.profile.length;\n }\n\n get hasCart(): boolean {\n return !!this.cart.length;\n }\n\n get hasSearch(): boolean {\n return !!this.search.length;\n }\n\n get hasMobileMenuButtons(): boolean {\n return !!this.mobileMenu.length;\n }\n}\n\nUDExMastheadShell.define();\n\nexport default UDExMastheadShell;\n"]}
1
+ {"version":3,"file":"MastheadShell.js","sourceRoot":"","sources":["../src/MastheadShell.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport ResizeHandler, { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { isLeft, isRight } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport \"@ui5/webcomponents-icons/dist/menu2.js\";\nimport \"@ui5/webcomponents-icons/dist/search.js\";\nimport \"@ui5/webcomponents-icons/dist/cart.js\";\nimport UDExMastheadItem from \"./MastheadItem.js\";\nimport UDExMastheadMenu from \"./MastheadMenu.js\";\nimport UDExControlButton from \"./ControlButton.js\";\nimport UDExSearch from \"./Search.js\";\nimport UDExMastheadMobileMenu from \"./MastheadMobileMenu.js\";\n\nimport MastheadShellTemplate from \"./generated/templates/MastheadShellTemplate.lit.js\";\n\n// Styles\nimport MastheadShellCss from \"./generated/themes/MastheadShell.css.js\";\n\nconst mobileMenuActiveClass: string = \"udex-masthead-shell_mobile-menu-open\";\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-masthead-shell</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/MastheadShell.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-masthead-shell\",\n renderer: litRender,\n styles: MastheadShellCss,\n template: MastheadShellTemplate,\n dependencies: [\n UDExMastheadMobileMenu,\n UDExControlButton,\n UDExMastheadItem,\n UDExMastheadMenu,\n UI5Icon,\n ],\n})\n\n/**\n * Fired event when the user clicks the search button trigger.\n *\n * @public\n */\n@event(\"search-click\")\n\n/**\n * Fired event when the user clicks the cart button trigger.\n *\n * @public\n */\n@event(\"cart-click\")\n\n/**\n * Fired event when the user clicks the profile button trigger.\n *\n * @public\n */\n@event(\"profile-click\")\n\n/**\n * Fired event when the user clicks the logo.\n *\n * @public\n */\n@event(\"logo-click\", {\n detail: {\n originalEvent: {\n type: PointerEvent,\n },\n },\n})\n\n/**\n * Fired event when the user clicks the site label.\n *\n * @public\n */\n@event(\"site-label-click\", {\n detail: {\n originalEvent: {\n type: PointerEvent,\n },\n },\n})\n\nclass UDExMastheadShell extends UI5Element {\n /**\n * Slot for mobile menu\n *\n * @public\n */\n @slot({ type: HTMLElement })\n mobileMenu!: Array<Node>;\n\n /**\n * Slot for main menu items.\n *\n * @public\n */\n @slot({ type: HTMLElement, individualSlots: true, \"default\": true })\n menuItems!: Array<UDExMastheadItem>;\n\n /**\n * Slot for search component - will be visible on search icon click.\n * Note: search component should be hidden by default.\n * Note: search icon won't be visible if this slot would be empty\n *\n * @public\n */\n @slot({ type: Node })\n search!: Array<Node>;\n\n /**\n * Slot for 'Explore SAP' menu\n *\n * @public\n */\n @slot({ type: HTMLElement })\n exploreSAP!: Array<UDExMastheadItem>;\n\n /**\n * Slot for cart menu\n *\n * @public\n */\n @slot({ type: HTMLElement })\n cart!: Array<UDExMastheadItem>;\n\n /**\n * Slot for avatar\n *\n * @public\n */\n @slot({ type: HTMLElement })\n profile!: Array<UDExMastheadItem>;\n\n /**\n * Defines URL to homepage. It will be used as a link on a logo and a site label\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n homeUrl!: string;\n\n /**\n * Defines URL for site label. It will be used as a link on a logo and a site label\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n siteLabelUrl!: string;\n\n /**\n * Defines overflow style for the body after clicking mobile menu opener button\n *\n * @default \"\"\n * @public\n */\n @property({ type: Boolean })\n bodyOverflow!: boolean;\n\n /**\n * Defines sticky position for component\n *\n * @default \"\"\n * @public\n */\n @property({ type: Boolean })\n stickyPosition!: boolean;\n\n /**\n * Defines the Logo image URL\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n logoUrl!: string;\n\n /**\n * Defines the Logo default title\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n logoTitle!: string;\n\n /**\n * Defines a site label. It will be displayed next to a logo.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n siteLabel!: string;\n\n /**\n * Defines an alt text for logo\n *\n * @public\n */\n @property({ type: String })\n logoAlt!: string;\n\n /**\n * Defines an accessible name for close icon for the search bar\n *\n * default: \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n closeButtonAccessibleName?: string;\n\n /**\n * Defines an aria label for the homepage link\n *\n * @public\n */\n @property({ type: String })\n homepageAriaLabel!: string;\n\n /**\n * Defines an aria label for the site label\n *\n * @public\n */\n @property({ type: String })\n siteLabelAriaLabel!: string;\n\n /**\n * Defines if the search container is visible\n *\n * @private\n */\n @property({ type: Boolean })\n _isSearchVisible!: boolean;\n\n /**\n * Defines if the close button was clicked\n *\n * @private\n */\n @property({ type: Boolean })\n _closeBtnClicked!: boolean;\n\n _searchOpener!: UDExMastheadItem | null | undefined;\n _mobileMenu!: UDExMastheadMobileMenu | null | undefined;\n _handleResizeBound: ResizeObserverCallback;\n _rootHolder!: HTMLElement | null | undefined;\n _shouldHandleResize!: boolean;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n onAfterRendering() {\n this._rootHolder = this.mastheadHolder;\n this._searchOpener = this.searchOpener;\n this._mobileMenu = this.mastheadMobileMenu;\n\n this.handleOutsideClick();\n\n if (this._isSearchVisible) {\n this.focusSearchInput();\n }\n\n if (this._closeBtnClicked) {\n this.focusSearchBtn();\n }\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 _handleResize(): void {\n if (this.isMobileView) {\n this._isSearchVisible = false;\n }\n\n if (this._shouldHandleResize && this.isMobileView) {\n this.resetMobileMenuOpenState();\n return;\n }\n\n this._shouldHandleResize = true;\n }\n\n handleKeyDown(e: KeyboardEvent) {\n e.stopPropagation();\n this.handleLeftArrow(e);\n this.handleRightArrow(e);\n }\n\n handleLeftArrow(e: KeyboardEvent): void {\n if (isLeft(e)) {\n const currentItem = e.target as UDExMastheadItem;\n if (this.isNavigationItem(currentItem)) {\n this.focusPreviousMenuItem(currentItem);\n }\n }\n }\n\n handleRightArrow(e: KeyboardEvent): void {\n if (isRight(e)) {\n const currentItem = e.target as UDExMastheadItem;\n if (this.isNavigationItem(currentItem)) {\n this.focusNextMenuItem(currentItem);\n }\n }\n }\n\n handleLogoClick(e: CustomEvent): void {\n this.fireEvent(\"logo-click\", { originalEvent: e });\n }\n\n handleSiteLabelClick(e: CustomEvent): void {\n this.fireEvent(\"site-label-click\", { originalEvent: e });\n }\n\n handleSearchClick(e: CustomEvent): void {\n e.stopPropagation();\n this._isSearchVisible = true;\n this.resetSelectedItems();\n if (this._searchOpener) {\n this._searchOpener.selected = false;\n }\n this.fireEvent(\"search-click\");\n }\n\n handleCartClick(e: CustomEvent) {\n e.stopPropagation();\n this.fireEvent(\"cart-click\");\n }\n\n handleProfileClick(e: CustomEvent): void {\n e.stopPropagation();\n this.fireEvent(\"profile-click\");\n }\n\n handleMobileMenuClick(e: CustomEvent) {\n e.stopPropagation();\n this.setSelectedItem(e);\n this.addActiveMobileClass();\n\n if (this.bodyOverflow) {\n this.setOverflowBody();\n }\n }\n\n handleMobileCloseClick(e: CustomEvent) {\n e.preventDefault();\n this.removeActiveMobileClass();\n this.setSelectedItem(e);\n this._mobileMenu?.showFirstLevelMenu();\n\n if (this.bodyOverflow) {\n this.removeOverflowBody();\n }\n }\n\n handleOutsideClick(): void {\n document.addEventListener(\"click\", (e: MouseEvent) => {\n const el = e.target as UDExMastheadItem;\n const isMobile = window.innerWidth < 1280;\n const isDropdownSlot = el.getAttribute(\"slot\") === \"dropdown\";\n if (!isDropdownSlot && !el.isMenuItem && !isMobile) {\n this.resetSelectedItems();\n }\n });\n }\n\n focusSearchInput(): void {\n const searchSlot = this.querySelector<UDExSearch>(\"udex-search\");\n if (searchSlot) {\n const input = searchSlot.shadowRoot!.querySelector<HTMLElement>(\"input\");\n input?.focus();\n }\n }\n\n focusPreviousMenuItem(item: UDExMastheadItem): void {\n const currentSelectedIndex = this.getCurrentIndex(item);\n const lastItemIndex = this.menuItems.length - 1;\n const previousSelectIndex = currentSelectedIndex - 1 < 0 ? lastItemIndex : currentSelectedIndex - 1;\n this.menuItems[previousSelectIndex].focus();\n }\n\n focusNextMenuItem(item: UDExMastheadItem): void {\n const currentSelectedIndex = this.getCurrentIndex(item);\n const nextSelectIndex = currentSelectedIndex + 1 > this.menuItems.length - 1 ? 0 : currentSelectedIndex + 1;\n this.menuItems[nextSelectIndex].focus();\n }\n\n resetSelectedItems(): void {\n this.getSelectedItems().forEach(item => {\n item.selected = false;\n });\n }\n\n addActiveMobileClass() {\n this._rootHolder?.classList.add(mobileMenuActiveClass);\n }\n\n removeActiveMobileClass() {\n this._rootHolder?.classList.remove(mobileMenuActiveClass);\n }\n\n setSelectedItem(e: CustomEvent): void {\n const clickedItem: UDExMastheadItem = e.detail.item;\n if (!clickedItem) {\n return;\n }\n\n this.getSelectedItems().forEach(item => {\n if (item._id !== clickedItem._id) {\n item.selected = false;\n }\n });\n }\n\n focusSearchBtn(): void {\n if (this._searchOpener) {\n this._searchOpener.focus();\n }\n }\n\n hideSearch(): void {\n this._isSearchVisible = false;\n this._closeBtnClicked = true;\n }\n\n getCurrentIndex(item: UDExMastheadItem): number {\n return this.menuItems.indexOf(item);\n }\n\n getSelectedItems(): Array<UDExMastheadItem> {\n const buttonsArray: Array<UDExMastheadItem> = [\n ...this.menuItems,\n ...this.exploreSAP,\n ...this.cart,\n ...this.profile,\n ...(this.mobileBtn && this.closeBtn ? [this.mobileBtn, this.closeBtn] : []),\n ];\n\n return buttonsArray.filter(({ selected }) => selected);\n }\n\n isNavigationItem(item: UDExMastheadItem): boolean {\n return this.menuItems.some(menuItem => menuItem === item);\n }\n\n setOverflowBody() {\n const { body: { style } } = document;\n this._shouldHandleResize = false;\n style.overflow = \"hidden\";\n }\n\n removeOverflowBody() {\n const { body: { style } } = document;\n style.removeProperty(\"overflow\");\n }\n\n resetMobileMenuOpenState(): void {\n this.removeActiveMobileClass();\n this.resetSelectedItems();\n this._mobileMenu?.showFirstLevelMenu();\n\n if (this.bodyOverflow) {\n this.removeOverflowBody();\n }\n }\n\n get searchOpener(): UDExMastheadItem | null | undefined {\n return this.shadowRoot?.querySelector(\".udex-masthead-shell__search-btn\");\n }\n\n get mastheadHolder(): HTMLElement | null | undefined {\n return this.shadowRoot?.querySelector(\".udex-masthead-shell\");\n }\n\n get mastheadMobileMenu(): UDExMastheadMobileMenu | null {\n return this.querySelector(\"[udex-masthead-mobile-menu]\");\n }\n\n get mobileBtn(): UDExMastheadItem | null | undefined {\n return this.shadowRoot?.querySelector(\".udex-masthead-shell__menu-btn\");\n }\n\n get closeBtn(): UDExMastheadItem | null | undefined {\n return this.shadowRoot?.querySelector(\".udex-masthead-shell__close-btn\");\n }\n\n get hasProfile(): boolean {\n return !!this.profile.length;\n }\n\n get hasCart(): boolean {\n return !!this.cart.length;\n }\n\n get hasSearch(): boolean {\n return !!this.search.length;\n }\n\n get hasMobileMenuButtons(): boolean {\n return !!this.mobileMenu.length;\n }\n\n get isMobileView(): boolean {\n return window.innerWidth <= breakpointSizeM;\n }\n}\n\nUDExMastheadShell.define();\n\nexport default UDExMastheadShell;\n"]}
@@ -33,7 +33,7 @@ export interface VideoJSPlayer extends Player {
33
33
  * For the <code>udex-media-player</code>
34
34
  * <h3>ES6 Module Import</h3>
35
35
  *
36
- * <code>import @udex/web-components/dist/MediaPlayer.js";</code>
36
+ * <code>import "@udex/web-components/dist/MediaPlayer.js";</code>
37
37
  *
38
38
  * @constructor
39
39
  * @author SAP SE
@@ -160,8 +160,8 @@ declare class UDExMediaPlayer extends UI5Element {
160
160
  * @public
161
161
  */
162
162
  getPlayer(): HTMLVideoElement | HTMLAudioElement | YT.Player | VimeoPlayer | null;
163
- get optionsValue(): any;
164
- get dataSetup(): string;
163
+ setupHotkeys(e: KeyboardEvent, player: VideoJSPlayer): void;
164
+ getOptionsValue(): any;
165
165
  setupLanguage(language: string): Promise<any>;
166
166
  onAfterRendering(): void;
167
167
  handleEmbedPlay(): void;
@@ -38,7 +38,7 @@ export var AspectRatio;
38
38
  * For the <code>udex-media-player</code>
39
39
  * <h3>ES6 Module Import</h3>
40
40
  *
41
- * <code>import @udex/web-components/dist/MediaPlayer.js";</code>
41
+ * <code>import "@udex/web-components/dist/MediaPlayer.js";</code>
42
42
  *
43
43
  * @constructor
44
44
  * @author SAP SE
@@ -153,38 +153,127 @@ let UDExMediaPlayer = class UDExMediaPlayer extends UI5Element {
153
153
  }
154
154
  return this.shadowRoot?.querySelector(".video-js video") || this.shadowRoot?.querySelector(".video-js audio") || null;
155
155
  }
156
- get optionsValue() {
156
+ setupHotkeys(e, player) {
157
+ // Back to start
158
+ if (e.key === "0") {
159
+ e.preventDefault();
160
+ e.stopPropagation();
161
+ player.currentTime(0);
162
+ player.play();
163
+ return;
164
+ }
165
+ // Full screen toggle
166
+ if (e.key.toLowerCase() === "f") {
167
+ e.preventDefault();
168
+ e.stopPropagation();
169
+ if (!player.isFullscreen()) {
170
+ player.requestFullscreen();
171
+ }
172
+ else {
173
+ player.exitFullscreen();
174
+ }
175
+ return;
176
+ }
177
+ // Mute / Unmute
178
+ if (e.key.toLowerCase() === "m") {
179
+ e.preventDefault();
180
+ e.stopPropagation();
181
+ player.muted(!player.muted());
182
+ return;
183
+ }
184
+ // Play / Pause
185
+ if (e.key === " ") {
186
+ e.preventDefault();
187
+ e.stopPropagation();
188
+ if (player.paused()) {
189
+ player.play();
190
+ }
191
+ else {
192
+ player.pause();
193
+ }
194
+ return;
195
+ }
196
+ // Speed up the video - set higher playback rate
197
+ if (e.key === "ArrowRight" && e.shiftKey) {
198
+ e.preventDefault();
199
+ e.stopPropagation();
200
+ const playbackRatesOptions = player.options_.playbackRates;
201
+ const currentRateIndex = playbackRatesOptions.indexOf(player.playbackRate() ?? 1);
202
+ if (currentRateIndex < playbackRatesOptions.length - 1) {
203
+ const newPlaybackRate = currentRateIndex + 1;
204
+ player.playbackRate(playbackRatesOptions[newPlaybackRate]);
205
+ }
206
+ return;
207
+ }
208
+ // Slow down the video - set lower playback rate
209
+ if (e.key === "ArrowLeft" && e.shiftKey) {
210
+ e.preventDefault();
211
+ e.stopPropagation();
212
+ const playbackRatesOptions = player.options_.playbackRates;
213
+ const currentRateIndex = playbackRatesOptions.indexOf(player.playbackRate() ?? 1);
214
+ if (currentRateIndex > 0) {
215
+ const newPlaybackRate = currentRateIndex - 1;
216
+ player.playbackRate(playbackRatesOptions[newPlaybackRate]);
217
+ }
218
+ return;
219
+ }
220
+ // Skip forward / Skip backward
221
+ if (e.key === "ArrowRight" || e.key === "ArrowLeft") {
222
+ e.preventDefault();
223
+ e.stopPropagation();
224
+ const stepSeconds = player.controlBar.progressControl.seekBar.options_.stepSeconds;
225
+ const duration = player.duration() ?? 0;
226
+ const currentTime = player.currentTime() ?? 0;
227
+ const delta = (e.key === "ArrowRight" ? stepSeconds : -stepSeconds);
228
+ const newTime = Math.min(Math.max(currentTime + delta, 0), duration);
229
+ player.currentTime(newTime);
230
+ return;
231
+ }
232
+ // Volume change
233
+ if (((e.key === "ArrowUp" || e.key === "ArrowDown") && e.ctrlKey)
234
+ || ((e.key === "ArrowUp" || e.key === "ArrowDown") && e.metaKey)) {
235
+ e.preventDefault();
236
+ e.stopPropagation();
237
+ const volumeStep = 0.1;
238
+ const volume = player.volume() ?? 0;
239
+ let newVolume = volume + (e.key === "ArrowUp" ? volumeStep : -volumeStep);
240
+ newVolume = Math.min(Math.max(newVolume, 0), 1);
241
+ player.volume(newVolume);
242
+ }
243
+ }
244
+ getOptionsValue() {
157
245
  const baseOptions = {
158
246
  playbackRates: [1, 1.5, 2],
159
247
  controls: true,
160
- audioOnly: this.audioOnly,
161
248
  poster: this.poster,
249
+ audioOnly: this.audioOnly,
162
250
  controlBar: {
163
- children: [
164
- "PlayToggle",
165
- "VolumePanel",
166
- "ProgressControl",
167
- "RemainingTimeDisplay",
168
- "SubsCapsButton",
169
- "PlaybackRateMenuButton",
170
- "FullscreenToggle",
171
- "MediaLoader",
172
- ],
251
+ playToggle: true,
252
+ volumePanel: true,
253
+ progressControl: {
254
+ seekBar: {
255
+ stepSeconds: 10,
256
+ },
257
+ },
258
+ remainingTimeDisplay: true,
259
+ subsCapsButton: true,
260
+ playbackRateMenuButton: true,
261
+ fullscreenToggle: true,
262
+ pictureInPictureToggle: false,
173
263
  },
174
264
  userActions: {
175
- hotkeys: true,
265
+ hotkeys: (e) => {
266
+ this.setupHotkeys(e, this.player);
267
+ },
176
268
  },
177
269
  };
178
- if (typeof this.options === "string") {
179
- return this.options ? {
180
- ...baseOptions,
181
- ...JSON.parse(this.options),
182
- } : baseOptions;
270
+ if (!this.options) {
271
+ return baseOptions;
183
272
  }
184
- return this.options;
185
- }
186
- get dataSetup() {
187
- return JSON.stringify(this.optionsValue);
273
+ return {
274
+ ...baseOptions,
275
+ ...JSON.parse(this.options),
276
+ };
188
277
  }
189
278
  async setupLanguage(language) {
190
279
  try {
@@ -202,11 +291,12 @@ let UDExMediaPlayer = class UDExMediaPlayer extends UI5Element {
202
291
  if (this.enableGlobalDependency) {
203
292
  window.videojs = videojs;
204
293
  }
205
- const language = this.optionsValue?.language;
294
+ const options = this.getOptionsValue();
295
+ const language = options?.language;
206
296
  if (language) {
207
297
  videojs.addLanguage(language, await this.setupLanguage(language));
208
298
  }
209
- this.player = videojs(this.shadowRoot?.querySelector(".video-js") || "");
299
+ this.player = videojs(this.shadowRoot?.querySelector(".video-js") || "", options);
210
300
  this.attachListeners(this.player);
211
301
  if (this.audioOnly) {
212
302
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"MediaPlayer.js","sourceRoot":"","sources":["../src/MediaPlayer.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport \"@ui5/webcomponents-icons/dist/play.js\";\nimport \"@ui5/webcomponents-icons/dist/v5/play.svg\";\nimport Player from \"video.js/dist/types/player.js\";\nimport type SeekBar from \"video.js/dist/types/control-bar/progress-control/seek-bar\";\nimport UDExMediaPlayerYoutube from \"./MediaPlayerYoutube.js\";\nimport UDExMediaPlayerVimeo, { VimeoPlayer } from \"./MediaPlayerVimeo.js\";\n\n// Template\nimport MediaPlayerTemplate from \"./generated/templates/MediaPlayerTemplate.lit.js\";\n\n// Styles\nimport MediaPlayerCss from \"./generated/themes/MediaPlayer.css\";\n\ndeclare global {\n interface Window {\n videojs: any;\n }\n}\n\nexport enum AspectRatio {\n \"16:9\" = \"16:9\",\n \"9:16\" = \"9:16\",\n \"4:3\" = \"4:3\",\n \"1:1\" = \"1:1\",\n \"none\" = \"none\",\n}\n\nexport interface VideoJSPlayer extends Player{\n qualityLevels?: () => any;\n textTracks?: () => any;\n controlBar?: any;\n bigPlayButton?: any;\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-media-player</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import @udex/web-components/dist/MediaPlayer.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-media-player\n * @public\n */\n@customElement({\n tag: \"udex-media-player\",\n renderer: litRender,\n styles: MediaPlayerCss,\n template: MediaPlayerTemplate,\n dependencies: [UDExMediaPlayerYoutube, UDExMediaPlayerVimeo],\n})\n/**\n * Fires when video is played\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"videoStart\")\n/**\n * Fires when video is paused\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"videoPause\")\n/**\n * Fires when video is watched\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"videoComplete\")\n/**\n * Fires when video is ready\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"videoReady\")\n/**\n * Fires when video watching progress changed\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"videoProgress\")\n/**\n * Fires when 25% of video is watched\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"video25\")\n/**\n * Fires when 50% of video is watched\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"video50\")\n/**\n * Fires when 75% of video is watched\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"video75\")\nclass UDExMediaPlayer extends UI5Element {\n /**\n * Defines the options object of video.js element\n * accepts following properties: https://videojs.com/guides/options\n *\n * @public\n */\n @property({ type: String })\n options!: string;\n /**\n * Defines the source of the video or audio\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n source!: string;\n /**\n * Defines the video/audio type (examples: \"video/mp4\" for mp4, \"application/x-mpegURL\" for m3u8, \"audio/mp3\" for mp3) more information https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source\n *\n * @default \"video/mp4\"\n * @public\n */\n @property({ type: String, defaultValue: \"video/mp4\" })\n type!: string;\n /**\n * Defines a title for youtube video\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n title!: string;\n /**\n * Defines if only audio should be played\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n audioOnly!: boolean;\n /**\n * Defines the poster url\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n poster!: string;\n /**\n * Placeholder for all html `track` elements to provide video subtitles.\n * Example: `<track kind='captions' src='./videoSubtitles.vtt' srclang='en' label='English' default />`\n * More information: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/track\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true, individualSlots: true })\n caption!: Array<HTMLElement>;\n /**\n * Defines video width. Used for YouTube and Vimeo videos only.\n * Regular video and audio sizes are control by CSS variables.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n width!: string;\n /**\n * Defines video height. Used for YouTube and Vimeo videos only.\n * Regular video and audio sizes are control by CSS variables.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n height!: string;\n /**\n * Defines id of html element that videojs will be initialized with\n *\n * @default \"udex-media-player\"\n * @public\n */\n @property({ type: String, defaultValue: \"udex-media-player\" })\n playerid!: string;\n /**\n * Defines aspect ratio of video. If set, video will be display in fluid mode.\n * Possible values: \"16:9\" , \"9:16\", \"4:3\", \"1:1\", \"none\"\n *\n * @default \"16:9\"\n * @public\n */\n @property({ type: AspectRatio, defaultValue: \"16:9\" })\n aspectRatio!: `${AspectRatio}`;\n /**\n * If this property is set, whenever user will focus on udex-media-player element, focus will be redirected into Big Play Button element.\n *\n * @default \"\"\n * @public\n */\n @property({ type: Boolean })\n playButtonInitialFocus!: boolean;\n /**\n * Enable videojs instance to be added to global window object\n *\n * @default \"\"\n * @public\n */\n @property({ type: Boolean })\n enableGlobalDependency!: boolean;\n /**\n * @private\n */\n @property({ type: Boolean })\n _allowIframeLoad!: boolean;\n\n player!: VideoJSPlayer;\n video25!: boolean;\n video50!: boolean;\n video75!: boolean;\n videoCompleted!: boolean;\n videoStart!: boolean;\n videoReady!: boolean;\n videoProgress!: number;\n\n getPlayedTime = (target: EventTarget): number => {\n const progressControl: SeekBar = (target as any)?.player.controlBar?.ProgressControl?.childNameIndex_.seekBar;\n if (!progressControl) {\n return 0;\n }\n\n return Math.round(progressControl.getPercent() * 100);\n };\n\n calculateVideoProgress(timeWatched: number) {\n if (timeWatched >= 25 && !this.video25) {\n this.fireEvent(\"video25\");\n this.video25 = true;\n }\n\n if (timeWatched >= 50 && !this.video50) {\n this.fireEvent(\"video50\");\n this.video50 = true;\n }\n\n if (timeWatched >= 75 && !this.video75) {\n this.fireEvent(\"video75\");\n this.video75 = true;\n }\n\n this.fireEvent(\"videoProgress\", { progress: timeWatched });\n }\n\n checkCaptionsAvailability(player: VideoJSPlayer) {\n player.on(\"loadedmetadata\", () => {\n if (!player?.textTracks) { return; }\n\n const tracks = player?.textTracks();\n let captionsAvailable = false;\n for (let i = 0; i < tracks.length; i++) {\n if (tracks[i].kind === \"captions\" || tracks[i].kind === \"subtitles\") {\n captionsAvailable = true;\n }\n }\n\n if (!captionsAvailable && !this._tracks.length) {\n player.controlBar?.removeChild(\"SubsCapsButton\");\n }\n });\n }\n\n applyScrollIntoTheView() {\n const bigPlayButton = this.player.bigPlayButton?.el();\n bigPlayButton.addEventListener(\"focus\", () => {\n this.player.el().scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n });\n }\n\n attachListeners(player: Player) {\n player.on(\"timeupdate\", (e: Event) => {\n if (!e.target) {\n return;\n }\n\n const timeWatched = this.getPlayedTime(e.target);\n if (timeWatched >= 0) {\n this.calculateVideoProgress(timeWatched);\n }\n });\n\n player.on(\"play\", () => {\n this.fireEvent(\"videoStart\");\n });\n\n player.on(\"ended\", () => {\n this.fireEvent(\"videoComplete\");\n });\n\n player.on(\"pause\", () => {\n this.fireEvent(\"videoPause\");\n });\n\n player.on(\"ready\", () => {\n this.checkCaptionsAvailability(player);\n this.applyScrollIntoTheView();\n this.fireEvent(\"videoReady\");\n });\n\n if (this.playButtonInitialFocus) {\n this.addEventListener(\"focus\", () => {\n (async () => {\n await player.getChild(\"BigPlayButton\")?.el_.focus();\n })();\n });\n }\n }\n\n /**\n * Returns video element\n * @public\n */\n getPlayer(): HTMLVideoElement | HTMLAudioElement | YT.Player | VimeoPlayer | null {\n if (this._youtubeSrc) {\n const player = this.shadowRoot?.querySelector(\"udex-media-player-youtube\") as UDExMediaPlayerYoutube;\n return player?.getPlayer() || null;\n }\n if (this._vimeoSrc) {\n const player = this.shadowRoot?.querySelector(\"udex-media-player-vimeo\") as UDExMediaPlayerVimeo;\n return player?.getPlayer() || null;\n }\n return this.shadowRoot?.querySelector(\".video-js video\") as HTMLVideoElement || this.shadowRoot?.querySelector(\".video-js audio\") || null;\n }\n\n get optionsValue() {\n const baseOptions = {\n playbackRates: [1, 1.5, 2],\n controls: true,\n audioOnly: this.audioOnly,\n poster: this.poster,\n controlBar: {\n children: [\n \"PlayToggle\",\n \"VolumePanel\",\n \"ProgressControl\",\n \"RemainingTimeDisplay\",\n \"SubsCapsButton\",\n \"PlaybackRateMenuButton\",\n \"FullscreenToggle\",\n \"MediaLoader\",\n ],\n },\n userActions: {\n hotkeys: true,\n },\n };\n\n if (typeof this.options === \"string\") {\n return this.options ? {\n ...baseOptions,\n ...JSON.parse(this.options),\n } : baseOptions;\n }\n\n return this.options;\n }\n\n get dataSetup() {\n return JSON.stringify(this.optionsValue);\n }\n\n async setupLanguage(language: string) {\n try {\n return await import(`video.js/dist/lang/${language}.json`);\n } catch (err) {\n console.warn(\"Cannot load language file\", err);\n }\n }\n\n onAfterRendering(): void {\n if (this._youtubeSrc || this._vimeoSrc) {\n return;\n }\n\n import(\"video.js\").then(async ({ \"default\": videojs }) => {\n if (this.enableGlobalDependency) {\n window.videojs = videojs;\n }\n const language: string = this.optionsValue?.language;\n if (language) {\n videojs.addLanguage(language, await this.setupLanguage(language));\n }\n\n this.player = videojs(this.shadowRoot?.querySelector(\".video-js\") || \"\");\n this.attachListeners(this.player);\n\n if (this.audioOnly) { return; }\n\n const backgroundOpacityElement = this.shadowRoot?.querySelector<HTMLOptionElement>(\".vjs-bg-opacity > select > option[value=\\\"0.5\\\"]\");\n if (backgroundOpacityElement) {\n backgroundOpacityElement.value = \"0.7\";\n backgroundOpacityElement.selected = true;\n }\n\n const fontSizeElement = this.shadowRoot?.querySelector<HTMLOptionElement>(\".vjs-font-percent > select > option[value=\\\"1.00\\\"]\");\n if (fontSizeElement) { fontSizeElement.value = \"1.2245\"; }\n\n const playbackSpeed = this.shadowRoot?.querySelector<HTMLOptionElement>(\".vjs-playback-rate .vjs-playback-rate-value\");\n playbackSpeed?.setAttribute(\"aria-hidden\", \"true\");\n });\n }\n\n handleEmbedPlay() {\n this._allowIframeLoad = true;\n }\n\n handleEmbedVideoReady() {\n this.fireEvent(\"videoReady\");\n }\n\n handleEmbedVideoPlaying = (embedEvent: CustomEvent) => {\n if (!this.videoStart) {\n this.fireEvent(\"videoStart\");\n this.videoStart = true;\n }\n const playedTime = Math.round(embedEvent.detail.percentPlayed as number);\n this.calculateVideoProgress(playedTime);\n };\n\n handleEmbedVideoEnded() {\n this.fireEvent(\"videoComplete\");\n }\n\n handleEmbedVideoPause() {\n this.fireEvent(\"videoPause\");\n }\n\n get _iframePosterPreload() {\n const shouldBlockIframe = this._iframeLoad && this.poster;\n if (this._allowIframeLoad) {\n return false;\n }\n if (!shouldBlockIframe) {\n this._allowIframeLoad = true;\n }\n return shouldBlockIframe;\n }\n\n get _iframeLoad() {\n return this._youtubeSrc || this._vimeoSrc;\n }\n\n get _tracks() {\n return this.getSlottedNodes(\"caption\");\n }\n\n get _vimeoSrc() {\n return this.source.includes(\"vimeo\");\n }\n\n get _youtubeSrc() {\n return this.source.includes(\"youtube\");\n }\n\n get aspectRatioClass() {\n switch (this.aspectRatio) {\n case AspectRatio[\"16:9\"]:\n return \"vjs-16-9 udex-media-player__fluid vjs-fluid\";\n case AspectRatio[\"9:16\"]:\n return \"vjs-9-16 udex-media-player__fluid vjs-fluid\";\n case AspectRatio[\"4:3\"]:\n return \"vjs-4-3 udex-media-player__fluid vjs-fluid\";\n case AspectRatio[\"1:1\"]:\n return \"vjs-1-1 udex-media-player__fluid vjs-fluid\";\n default:\n return \"\";\n }\n }\n\n get embedVideoFluidClass() {\n if (this.aspectRatio === AspectRatio[\"16:9\"] || this.aspectRatio === AspectRatio[\"9:16\"] || this.aspectRatio === AspectRatio[\"4:3\"] || this.aspectRatio === AspectRatio[\"1:1\"]) {\n return true;\n }\n return false;\n }\n\n get playerElementId(): string {\n return this.playerid || \"udex-media-player\";\n }\n\n onExitDOM(): void {\n if (this.player) {\n this.player.dispose();\n }\n }\n}\n\nUDExMediaPlayer.define();\n\nexport default UDExMediaPlayer;\n"]}
1
+ {"version":3,"file":"MediaPlayer.js","sourceRoot":"","sources":["../src/MediaPlayer.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAwD;AACxD,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,kDAAkD,CAAC;AACrE,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,uCAAuC,CAAC;AAC/C,OAAO,2CAA2C,CAAC;AAGnD,OAAO,sBAAsB,MAAM,yBAAyB,CAAC;AAC7D,OAAO,oBAAqC,MAAM,uBAAuB,CAAC;AAE1E,WAAW;AACX,OAAO,mBAAmB,MAAM,kDAAkD,CAAC;AAEnF,SAAS;AACT,OAAO,cAAc,MAAM,oCAAoC,CAAC;AAQhE,MAAM,CAAN,IAAY,WAMX;AAND,WAAY,WAAW;IACrB,4BAAe,CAAA;IACf,4BAAe,CAAA;IACf,0BAAa,CAAA;IACb,0BAAa,CAAA;IACb,4BAAe,CAAA;AACjB,CAAC,EANW,WAAW,KAAX,WAAW,QAMtB;AASD;;;;;;;;;;;;;;;;;;GAkBG;AAgEH,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,UAAU;IAAxC;;QA6HE,kBAAa,GAAG,CAAC,MAAmB,EAAU,EAAE;YAC9C,MAAM,eAAe,GAAa,MAAc,EAAE,MAAM,CAAC,UAAU,EAAE,eAAe,EAAE,eAAe,CAAC,OAAO,CAAC;YAC9G,IAAI,CAAC,eAAe,EAAE;gBACpB,OAAO,CAAC,CAAC;aACV;YAED,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,UAAU,EAAE,GAAG,GAAG,CAAC,CAAC;QACxD,CAAC,CAAC;QA8RF,4BAAuB,GAAG,CAAC,UAAuB,EAAE,EAAE;YACpD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACpB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;gBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aACxB;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,aAAuB,CAAC,CAAC;YACzE,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC,CAAC;IAoEJ,CAAC;IAvWC,sBAAsB,CAAC,WAAmB;QACxC,IAAI,WAAW,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACtC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;QAED,IAAI,WAAW,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACtC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;QAED,IAAI,WAAW,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACtC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;QAED,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,yBAAyB,CAAC,MAAqB;QAC7C,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;YAC/B,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE;gBAAE,OAAO;aAAE;YAEpC,MAAM,MAAM,GAAG,MAAM,EAAE,UAAU,EAAE,CAAC;YACpC,IAAI,iBAAiB,GAAG,KAAK,CAAC;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACtC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE;oBACnE,iBAAiB,GAAG,IAAI,CAAC;iBAC1B;aACF;YAED,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;gBAC9C,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC;aAClD;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,sBAAsB;QACpB,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,EAAE,CAAC;QACtD,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YAC3C,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC;gBAC9B,QAAQ,EAAE,QAAQ;gBAClB,KAAK,EAAE,QAAQ;aAChB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,MAAc;QAC5B,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,CAAQ,EAAE,EAAE;YACnC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE;gBACb,OAAO;aACR;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,WAAW,IAAI,CAAC,EAAE;gBACpB,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;aAC1C;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YACrB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACtB,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACtB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACtB,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;YACvC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC/B,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;gBAClC,CAAC,KAAK,IAAI,EAAE;oBACV,MAAM,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;gBACtD,CAAC,CAAC,EAAE,CAAC;YACP,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED;;;OAGG;IACH,SAAS;QACP,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,2BAA2B,CAA2B,CAAC;YACrG,OAAO,MAAM,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC;SACpC;QACD,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,yBAAyB,CAAyB,CAAC;YACjG,OAAO,MAAM,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC;SACpC;QACD,OAAO,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,iBAAiB,CAAqB,IAAI,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC;IAC5I,CAAC;IAED,YAAY,CAAC,CAAgB,EAAE,MAAqB;QAClD,gBAAgB;QAChB,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE;YACjB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,OAAO;SACR;QAED,qBAAqB;QACrB,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE;YAC/B,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE;gBAC1B,MAAM,CAAC,iBAAiB,EAAE,CAAC;aAC5B;iBAAM;gBACL,MAAM,CAAC,cAAc,EAAE,CAAC;aACzB;YACD,OAAO;SACR;QAED,gBAAgB;QAChB,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE;YAC/B,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAC9B,OAAO;SACR;QAED,eAAe;QACf,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE;YACjB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE;gBACnB,MAAM,CAAC,IAAI,EAAE,CAAC;aACf;iBAAM;gBACL,MAAM,CAAC,KAAK,EAAE,CAAC;aAChB;YACD,OAAO;SACR;QAED,gDAAgD;QAChD,IAAI,CAAC,CAAC,GAAG,KAAK,YAAY,IAAI,CAAC,CAAC,QAAQ,EAAE;YACxC,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,MAAM,oBAAoB,GAAkB,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC1E,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;YAClF,IAAI,gBAAgB,GAAG,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE;gBACtD,MAAM,eAAe,GAAG,gBAAgB,GAAG,CAAC,CAAC;gBAC7C,MAAM,CAAC,YAAY,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC,CAAC;aAC5D;YACD,OAAO;SACR;QAED,gDAAgD;QAChD,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,IAAI,CAAC,CAAC,QAAQ,EAAE;YACvC,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,MAAM,oBAAoB,GAAkB,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC1E,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;YAClF,IAAI,gBAAgB,GAAG,CAAC,EAAE;gBACxB,MAAM,eAAe,GAAG,gBAAgB,GAAG,CAAC,CAAC;gBAC7C,MAAM,CAAC,YAAY,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC,CAAC;aAC5D;YACD,OAAO;SACR;QAED,+BAA+B;QAC/B,IAAI,CAAC,CAAC,GAAG,KAAK,YAAY,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,EAAE;YACnD,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;YACnF,MAAM,QAAQ,GAAW,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAChD,MAAM,WAAW,GAAW,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACtD,MAAM,KAAK,GAAW,CAAC,CAAC,CAAC,GAAG,KAAK,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,KAAK,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YACrE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO;SACR;QAED,gBAAgB;QAChB,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;eAC5D,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE;YAClE,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,MAAM,UAAU,GAAW,GAAG,CAAC;YAC/B,MAAM,MAAM,GAAW,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC5C,IAAI,SAAS,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC1E,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SAC1B;IACH,CAAC;IAED,eAAe;QACb,MAAM,WAAW,GAAG;YAClB,aAAa,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;YAC1B,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE;gBACV,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,IAAI;gBACjB,eAAe,EAAE;oBACf,OAAO,EAAE;wBACP,WAAW,EAAE,EAAE;qBAChB;iBACF;gBACD,oBAAoB,EAAE,IAAI;gBAC1B,cAAc,EAAE,IAAI;gBACpB,sBAAsB,EAAE,IAAI;gBAC5B,gBAAgB,EAAE,IAAI;gBACtB,sBAAsB,EAAE,KAAK;aAC9B;YACD,WAAW,EAAE;gBACX,OAAO,EAAE,CAAC,CAAgB,EAAE,EAAE;oBAC5B,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBACpC,CAAC;aACF;SACF,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,OAAO,WAAW,CAAC;SACpB;QAED,OAAO;YACL,GAAG,WAAW;YACd,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;SAC5B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAgB;QAClC,IAAI;YACF,OAAO,MAAM,MAAM,CAAC,sBAAsB,QAAQ,OAAO,CAAC,CAAC;SAC5D;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,CAAC,IAAI,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;SAChD;IACH,CAAC;IAED,gBAAgB;QACd,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,EAAE;YACtC,OAAO;SACR;QAED,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;YACvD,IAAI,IAAI,CAAC,sBAAsB,EAAE;gBAC/B,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;aAC1B;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAW,OAAO,EAAE,QAAQ,CAAC;YAC3C,IAAI,QAAQ,EAAE;gBACZ,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;aACnE;YAED,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;YAClF,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAElC,IAAI,IAAI,CAAC,SAAS,EAAE;gBAAE,OAAO;aAAE;YAE/B,MAAM,wBAAwB,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAoB,kDAAkD,CAAC,CAAC;YACvI,IAAI,wBAAwB,EAAE;gBAC5B,wBAAwB,CAAC,KAAK,GAAG,KAAK,CAAC;gBACvC,wBAAwB,CAAC,QAAQ,GAAG,IAAI,CAAC;aAC1C;YAED,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAoB,qDAAqD,CAAC,CAAC;YACjI,IAAI,eAAe,EAAE;gBAAE,eAAe,CAAC,KAAK,GAAG,QAAQ,CAAC;aAAE;YAE1D,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAoB,6CAA6C,CAAC,CAAC;YACvH,aAAa,EAAE,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe;QACb,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAC/B,CAAC;IAED,qBAAqB;QACnB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAC/B,CAAC;IAWD,qBAAqB;QACnB,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAClC,CAAC;IAED,qBAAqB;QACnB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,oBAAoB;QACtB,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC;QAC1D,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,OAAO,KAAK,CAAC;SACd;QACD,IAAI,CAAC,iBAAiB,EAAE;YACtB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;SAC9B;QACD,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC;IAC5C,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,gBAAgB;QAClB,QAAQ,IAAI,CAAC,WAAW,EAAE;YAC1B,KAAK,WAAW,CAAC,MAAM,CAAC;gBACtB,OAAO,6CAA6C,CAAC;YACvD,KAAK,WAAW,CAAC,MAAM,CAAC;gBACtB,OAAO,6CAA6C,CAAC;YACvD,KAAK,WAAW,CAAC,KAAK,CAAC;gBACrB,OAAO,4CAA4C,CAAC;YACtD,KAAK,WAAW,CAAC,KAAK,CAAC;gBACrB,OAAO,4CAA4C,CAAC;YACtD;gBACE,OAAO,EAAE,CAAC;SACX;IACH,CAAC;IAED,IAAI,oBAAoB;QACtB,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,KAAK,CAAC,EAAE;YAC9K,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,QAAQ,IAAI,mBAAmB,CAAC;IAC9C,CAAC;IAED,SAAS;QACP,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;SACvB;IACH,CAAC;CACF,CAAA;AAreG;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gDACR;AAQjB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;+CAC3B;AAQhB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;6CACtC;AAQd;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;8CAC5B;AAQf;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;kDACN;AAQpB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;+CAC3B;AAUhB;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;gDACrC;AAS7B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;8CAC5B;AASf;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;+CAC3B;AAQhB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC;iDAC1C;AASlB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;oDACrB;AAQ/B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;+DACO;AAQjC;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;+DACO;AAKjC;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;yDACC;AAlHzB,eAAe;IA/DpB,aAAa,CAAC;QACb,GAAG,EAAE,mBAAmB;QACxB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,cAAc;QACtB,QAAQ,EAAE,mBAAmB;QAC7B,YAAY,EAAE,CAAC,sBAAsB,EAAE,oBAAoB,CAAC;KAC7D,CAAC;IACF;;;;;OAKG;;IACF,KAAK,CAAC,YAAY,CAAC;IACpB;;;;;OAKG;;IACF,KAAK,CAAC,YAAY,CAAC;IACpB;;;;;OAKG;;IACF,KAAK,CAAC,eAAe,CAAC;IACvB;;;;;OAKG;;IACF,KAAK,CAAC,YAAY,CAAC;IACpB;;;;;OAKG;;IACF,KAAK,CAAC,eAAe,CAAC;IACvB;;;;;OAKG;;IACF,KAAK,CAAC,SAAS,CAAC;IACjB;;;;;OAKG;;IACF,KAAK,CAAC,SAAS,CAAC;IACjB;;;;;OAKG;;IACF,KAAK,CAAC,SAAS,CAAC;GACX,eAAe,CA6epB;AAED,eAAe,CAAC,MAAM,EAAE,CAAC;AAEzB,eAAe,eAAe,CAAC","sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport \"@ui5/webcomponents-icons/dist/play.js\";\nimport \"@ui5/webcomponents-icons/dist/v5/play.svg\";\nimport Player from \"video.js/dist/types/player.js\";\nimport type SeekBar from \"video.js/dist/types/control-bar/progress-control/seek-bar\";\nimport UDExMediaPlayerYoutube from \"./MediaPlayerYoutube.js\";\nimport UDExMediaPlayerVimeo, { VimeoPlayer } from \"./MediaPlayerVimeo.js\";\n\n// Template\nimport MediaPlayerTemplate from \"./generated/templates/MediaPlayerTemplate.lit.js\";\n\n// Styles\nimport MediaPlayerCss from \"./generated/themes/MediaPlayer.css\";\n\ndeclare global {\n interface Window {\n videojs: any;\n }\n}\n\nexport enum AspectRatio {\n \"16:9\" = \"16:9\",\n \"9:16\" = \"9:16\",\n \"4:3\" = \"4:3\",\n \"1:1\" = \"1:1\",\n \"none\" = \"none\",\n}\n\nexport interface VideoJSPlayer extends Player{\n qualityLevels?: () => any;\n textTracks?: () => any;\n controlBar?: any;\n bigPlayButton?: any;\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-media-player</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/MediaPlayer.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-media-player\n * @public\n */\n@customElement({\n tag: \"udex-media-player\",\n renderer: litRender,\n styles: MediaPlayerCss,\n template: MediaPlayerTemplate,\n dependencies: [UDExMediaPlayerYoutube, UDExMediaPlayerVimeo],\n})\n/**\n * Fires when video is played\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"videoStart\")\n/**\n * Fires when video is paused\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"videoPause\")\n/**\n * Fires when video is watched\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"videoComplete\")\n/**\n * Fires when video is ready\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"videoReady\")\n/**\n * Fires when video watching progress changed\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"videoProgress\")\n/**\n * Fires when 25% of video is watched\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"video25\")\n/**\n * Fires when 50% of video is watched\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"video50\")\n/**\n * Fires when 75% of video is watched\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"video75\")\nclass UDExMediaPlayer extends UI5Element {\n /**\n * Defines the options object of video.js element\n * accepts following properties: https://videojs.com/guides/options\n *\n * @public\n */\n @property({ type: String })\n options!: string;\n /**\n * Defines the source of the video or audio\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n source!: string;\n /**\n * Defines the video/audio type (examples: \"video/mp4\" for mp4, \"application/x-mpegURL\" for m3u8, \"audio/mp3\" for mp3) more information https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source\n *\n * @default \"video/mp4\"\n * @public\n */\n @property({ type: String, defaultValue: \"video/mp4\" })\n type!: string;\n /**\n * Defines a title for youtube video\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n title!: string;\n /**\n * Defines if only audio should be played\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n audioOnly!: boolean;\n /**\n * Defines the poster url\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n poster!: string;\n /**\n * Placeholder for all html `track` elements to provide video subtitles.\n * Example: `<track kind='captions' src='./videoSubtitles.vtt' srclang='en' label='English' default />`\n * More information: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/track\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true, individualSlots: true })\n caption!: Array<HTMLElement>;\n /**\n * Defines video width. Used for YouTube and Vimeo videos only.\n * Regular video and audio sizes are control by CSS variables.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n width!: string;\n /**\n * Defines video height. Used for YouTube and Vimeo videos only.\n * Regular video and audio sizes are control by CSS variables.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n height!: string;\n /**\n * Defines id of html element that videojs will be initialized with\n *\n * @default \"udex-media-player\"\n * @public\n */\n @property({ type: String, defaultValue: \"udex-media-player\" })\n playerid!: string;\n /**\n * Defines aspect ratio of video. If set, video will be display in fluid mode.\n * Possible values: \"16:9\" , \"9:16\", \"4:3\", \"1:1\", \"none\"\n *\n * @default \"16:9\"\n * @public\n */\n @property({ type: AspectRatio, defaultValue: \"16:9\" })\n aspectRatio!: `${AspectRatio}`;\n /**\n * If this property is set, whenever user will focus on udex-media-player element, focus will be redirected into Big Play Button element.\n *\n * @default \"\"\n * @public\n */\n @property({ type: Boolean })\n playButtonInitialFocus!: boolean;\n /**\n * Enable videojs instance to be added to global window object\n *\n * @default \"\"\n * @public\n */\n @property({ type: Boolean })\n enableGlobalDependency!: boolean;\n /**\n * @private\n */\n @property({ type: Boolean })\n _allowIframeLoad!: boolean;\n\n player!: VideoJSPlayer;\n video25!: boolean;\n video50!: boolean;\n video75!: boolean;\n videoCompleted!: boolean;\n videoStart!: boolean;\n videoReady!: boolean;\n videoProgress!: number;\n\n getPlayedTime = (target: EventTarget): number => {\n const progressControl: SeekBar = (target as any)?.player.controlBar?.ProgressControl?.childNameIndex_.seekBar;\n if (!progressControl) {\n return 0;\n }\n\n return Math.round(progressControl.getPercent() * 100);\n };\n\n calculateVideoProgress(timeWatched: number) {\n if (timeWatched >= 25 && !this.video25) {\n this.fireEvent(\"video25\");\n this.video25 = true;\n }\n\n if (timeWatched >= 50 && !this.video50) {\n this.fireEvent(\"video50\");\n this.video50 = true;\n }\n\n if (timeWatched >= 75 && !this.video75) {\n this.fireEvent(\"video75\");\n this.video75 = true;\n }\n\n this.fireEvent(\"videoProgress\", { progress: timeWatched });\n }\n\n checkCaptionsAvailability(player: VideoJSPlayer) {\n player.on(\"loadedmetadata\", () => {\n if (!player?.textTracks) { return; }\n\n const tracks = player?.textTracks();\n let captionsAvailable = false;\n for (let i = 0; i < tracks.length; i++) {\n if (tracks[i].kind === \"captions\" || tracks[i].kind === \"subtitles\") {\n captionsAvailable = true;\n }\n }\n\n if (!captionsAvailable && !this._tracks.length) {\n player.controlBar?.removeChild(\"SubsCapsButton\");\n }\n });\n }\n\n applyScrollIntoTheView() {\n const bigPlayButton = this.player.bigPlayButton?.el();\n bigPlayButton.addEventListener(\"focus\", () => {\n this.player.el().scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n });\n }\n\n attachListeners(player: Player) {\n player.on(\"timeupdate\", (e: Event) => {\n if (!e.target) {\n return;\n }\n\n const timeWatched = this.getPlayedTime(e.target);\n if (timeWatched >= 0) {\n this.calculateVideoProgress(timeWatched);\n }\n });\n\n player.on(\"play\", () => {\n this.fireEvent(\"videoStart\");\n });\n\n player.on(\"ended\", () => {\n this.fireEvent(\"videoComplete\");\n });\n\n player.on(\"pause\", () => {\n this.fireEvent(\"videoPause\");\n });\n\n player.on(\"ready\", () => {\n this.checkCaptionsAvailability(player);\n this.applyScrollIntoTheView();\n this.fireEvent(\"videoReady\");\n });\n\n if (this.playButtonInitialFocus) {\n this.addEventListener(\"focus\", () => {\n (async () => {\n await player.getChild(\"BigPlayButton\")?.el_.focus();\n })();\n });\n }\n }\n\n /**\n * Returns video element\n * @public\n */\n getPlayer(): HTMLVideoElement | HTMLAudioElement | YT.Player | VimeoPlayer | null {\n if (this._youtubeSrc) {\n const player = this.shadowRoot?.querySelector(\"udex-media-player-youtube\") as UDExMediaPlayerYoutube;\n return player?.getPlayer() || null;\n }\n if (this._vimeoSrc) {\n const player = this.shadowRoot?.querySelector(\"udex-media-player-vimeo\") as UDExMediaPlayerVimeo;\n return player?.getPlayer() || null;\n }\n return this.shadowRoot?.querySelector(\".video-js video\") as HTMLVideoElement || this.shadowRoot?.querySelector(\".video-js audio\") || null;\n }\n\n setupHotkeys(e: KeyboardEvent, player: VideoJSPlayer) {\n // Back to start\n if (e.key === \"0\") {\n e.preventDefault();\n e.stopPropagation();\n player.currentTime(0);\n player.play();\n return;\n }\n\n // Full screen toggle\n if (e.key.toLowerCase() === \"f\") {\n e.preventDefault();\n e.stopPropagation();\n if (!player.isFullscreen()) {\n player.requestFullscreen();\n } else {\n player.exitFullscreen();\n }\n return;\n }\n\n // Mute / Unmute\n if (e.key.toLowerCase() === \"m\") {\n e.preventDefault();\n e.stopPropagation();\n player.muted(!player.muted());\n return;\n }\n\n // Play / Pause\n if (e.key === \" \") {\n e.preventDefault();\n e.stopPropagation();\n if (player.paused()) {\n player.play();\n } else {\n player.pause();\n }\n return;\n }\n\n // Speed up the video - set higher playback rate\n if (e.key === \"ArrowRight\" && e.shiftKey) {\n e.preventDefault();\n e.stopPropagation();\n const playbackRatesOptions: Array<number> = player.options_.playbackRates;\n const currentRateIndex = playbackRatesOptions.indexOf(player.playbackRate() ?? 1);\n if (currentRateIndex < playbackRatesOptions.length - 1) {\n const newPlaybackRate = currentRateIndex + 1;\n player.playbackRate(playbackRatesOptions[newPlaybackRate]);\n }\n return;\n }\n\n // Slow down the video - set lower playback rate\n if (e.key === \"ArrowLeft\" && e.shiftKey) {\n e.preventDefault();\n e.stopPropagation();\n const playbackRatesOptions: Array<number> = player.options_.playbackRates;\n const currentRateIndex = playbackRatesOptions.indexOf(player.playbackRate() ?? 1);\n if (currentRateIndex > 0) {\n const newPlaybackRate = currentRateIndex - 1;\n player.playbackRate(playbackRatesOptions[newPlaybackRate]);\n }\n return;\n }\n\n // Skip forward / Skip backward\n if (e.key === \"ArrowRight\" || e.key === \"ArrowLeft\") {\n e.preventDefault();\n e.stopPropagation();\n const stepSeconds = player.controlBar.progressControl.seekBar.options_.stepSeconds;\n const duration: number = player.duration() ?? 0;\n const currentTime: number = player.currentTime() ?? 0;\n const delta: number = (e.key === \"ArrowRight\" ? stepSeconds : -stepSeconds);\n const newTime = Math.min(Math.max(currentTime + delta, 0), duration);\n player.currentTime(newTime);\n return;\n }\n\n // Volume change\n if (((e.key === \"ArrowUp\" || e.key === \"ArrowDown\") && e.ctrlKey)\n || ((e.key === \"ArrowUp\" || e.key === \"ArrowDown\") && e.metaKey)) {\n e.preventDefault();\n e.stopPropagation();\n const volumeStep: number = 0.1;\n const volume: number = player.volume() ?? 0;\n let newVolume = volume + (e.key === \"ArrowUp\" ? volumeStep : -volumeStep);\n newVolume = Math.min(Math.max(newVolume, 0), 1);\n player.volume(newVolume);\n }\n }\n\n getOptionsValue() {\n const baseOptions = {\n playbackRates: [1, 1.5, 2],\n controls: true,\n poster: this.poster,\n audioOnly: this.audioOnly,\n controlBar: {\n playToggle: true,\n volumePanel: true,\n progressControl: {\n seekBar: {\n stepSeconds: 10,\n },\n },\n remainingTimeDisplay: true,\n subsCapsButton: true,\n playbackRateMenuButton: true,\n fullscreenToggle: true,\n pictureInPictureToggle: false,\n },\n userActions: {\n hotkeys: (e: KeyboardEvent) => {\n this.setupHotkeys(e, this.player);\n },\n },\n };\n\n if (!this.options) {\n return baseOptions;\n }\n\n return {\n ...baseOptions,\n ...JSON.parse(this.options),\n };\n }\n\n async setupLanguage(language: string) {\n try {\n return await import(`video.js/dist/lang/${language}.json`);\n } catch (err) {\n console.warn(\"Cannot load language file\", err);\n }\n }\n\n onAfterRendering(): void {\n if (this._youtubeSrc || this._vimeoSrc) {\n return;\n }\n\n import(\"video.js\").then(async ({ \"default\": videojs }) => {\n if (this.enableGlobalDependency) {\n window.videojs = videojs;\n }\n\n const options = this.getOptionsValue();\n const language: string = options?.language;\n if (language) {\n videojs.addLanguage(language, await this.setupLanguage(language));\n }\n\n this.player = videojs(this.shadowRoot?.querySelector(\".video-js\") || \"\", options);\n this.attachListeners(this.player);\n\n if (this.audioOnly) { return; }\n\n const backgroundOpacityElement = this.shadowRoot?.querySelector<HTMLOptionElement>(\".vjs-bg-opacity > select > option[value=\\\"0.5\\\"]\");\n if (backgroundOpacityElement) {\n backgroundOpacityElement.value = \"0.7\";\n backgroundOpacityElement.selected = true;\n }\n\n const fontSizeElement = this.shadowRoot?.querySelector<HTMLOptionElement>(\".vjs-font-percent > select > option[value=\\\"1.00\\\"]\");\n if (fontSizeElement) { fontSizeElement.value = \"1.2245\"; }\n\n const playbackSpeed = this.shadowRoot?.querySelector<HTMLOptionElement>(\".vjs-playback-rate .vjs-playback-rate-value\");\n playbackSpeed?.setAttribute(\"aria-hidden\", \"true\");\n });\n }\n\n handleEmbedPlay() {\n this._allowIframeLoad = true;\n }\n\n handleEmbedVideoReady() {\n this.fireEvent(\"videoReady\");\n }\n\n handleEmbedVideoPlaying = (embedEvent: CustomEvent) => {\n if (!this.videoStart) {\n this.fireEvent(\"videoStart\");\n this.videoStart = true;\n }\n const playedTime = Math.round(embedEvent.detail.percentPlayed as number);\n this.calculateVideoProgress(playedTime);\n };\n\n handleEmbedVideoEnded() {\n this.fireEvent(\"videoComplete\");\n }\n\n handleEmbedVideoPause() {\n this.fireEvent(\"videoPause\");\n }\n\n get _iframePosterPreload() {\n const shouldBlockIframe = this._iframeLoad && this.poster;\n if (this._allowIframeLoad) {\n return false;\n }\n if (!shouldBlockIframe) {\n this._allowIframeLoad = true;\n }\n return shouldBlockIframe;\n }\n\n get _iframeLoad() {\n return this._youtubeSrc || this._vimeoSrc;\n }\n\n get _tracks() {\n return this.getSlottedNodes(\"caption\");\n }\n\n get _vimeoSrc() {\n return this.source.includes(\"vimeo\");\n }\n\n get _youtubeSrc() {\n return this.source.includes(\"youtube\");\n }\n\n get aspectRatioClass() {\n switch (this.aspectRatio) {\n case AspectRatio[\"16:9\"]:\n return \"vjs-16-9 udex-media-player__fluid vjs-fluid\";\n case AspectRatio[\"9:16\"]:\n return \"vjs-9-16 udex-media-player__fluid vjs-fluid\";\n case AspectRatio[\"4:3\"]:\n return \"vjs-4-3 udex-media-player__fluid vjs-fluid\";\n case AspectRatio[\"1:1\"]:\n return \"vjs-1-1 udex-media-player__fluid vjs-fluid\";\n default:\n return \"\";\n }\n }\n\n get embedVideoFluidClass() {\n if (this.aspectRatio === AspectRatio[\"16:9\"] || this.aspectRatio === AspectRatio[\"9:16\"] || this.aspectRatio === AspectRatio[\"4:3\"] || this.aspectRatio === AspectRatio[\"1:1\"]) {\n return true;\n }\n return false;\n }\n\n get playerElementId(): string {\n return this.playerid || \"udex-media-player\";\n }\n\n onExitDOM(): void {\n if (this.player) {\n this.player.dispose();\n }\n }\n}\n\nUDExMediaPlayer.define();\n\nexport default UDExMediaPlayer;\n"]}
@@ -101,7 +101,7 @@ let UDExMessageStrip = UDExMessageStrip_1 = class UDExMessageStrip extends Messa
101
101
  }
102
102
  }
103
103
  get _closeButtonText() {
104
- return this.getTranslation(MESSAGE_STRIP_CLOSE_BUTTON);
104
+ return `${this.textStatus ?? ""} ${this.getTranslation(MESSAGE_STRIP_CLOSE_BUTTON)}`;
105
105
  }
106
106
  get iconProvided() {
107
107
  return this.icon.length > 0;
@@ -1 +1 @@
1
- {"version":3,"file":"MessageStrip.js","sourceRoot":"","sources":["../src/MessageStrip.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n getI18nBundle,\n I18nText,\n} from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport MessageStrip from \"@ui5/webcomponents/dist/MessageStrip.js\";\nimport messageStripCss from \"@ui5/webcomponents/dist/generated/themes/MessageStrip.css.js\";\nimport UDExButton from \"./Button.js\";\nimport {\n MESSAGE_STRIP_CLOSE_BUTTON,\n MESSAGE_STRIP_ERROR,\n MESSAGE_STRIP_INFORMATION,\n MESSAGE_STRIP_SUCCESS,\n MESSAGE_STRIP_WARNING,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nimport MessageStripTemplate from \"./generated/templates/MessageStripTemplate.lit.js\";\n\n// Styles\nimport MessageStripCss from \"./generated/themes/MessageStrip.css.js\";\n\nexport enum MessageStripDesign {\n /**\n * Message should be just an information\n * @public\n */\n Information = \"Information\",\n /**\n * Message is a success message\n * @public\n */\n Positive = \"Positive\",\n /**\n * Message is an error\n * @public\n */\n Negative = \"Negative\",\n /**\n * Message is a warning\n * @public\n */\n Warning = \"Warning\",\n /**\n * Message is an action\n * @public\n */\n Action = \"Action\",\n}\n\nexport enum UdexMessageStripStatusType {\n Icon = \"Icon\",\n Text = \"Text\",\n None = \"None\",\n}\n\ntype textStatusType = Record<Exclude<MessageStripDesign, \"Action\">, string>;\n\n/**\n * @class\n *\n * @constructor\n * @extends MessageStrip\n * @tagname udex-message-strip\n * @public\n */\n@customElement({\n tag: \"udex-message-strip\",\n renderer: litRender,\n styles: [messageStripCss, MessageStripCss],\n template: MessageStripTemplate,\n dependencies: [UDExButton],\n})\n/**\n * Fired when the close button is pressed either with a\n * click/tap or by using the Enter or Space key.\n *\n * @public\n */\n@event(\"close\")\nclass UDExMessageStrip extends MessageStrip {\n /**\n * Defines the component type.\n *\n * @public\n */\n @property({\n type: MessageStripDesign,\n defaultValue: MessageStripDesign.Action,\n })\n /** @ts-expect-error */\n design!: `${MessageStripDesign}`;\n\n /**\n * Defines the component Status Type.\n *\n * @public\n */\n @property({\n type: UdexMessageStripStatusType,\n defaultValue: UdexMessageStripStatusType.Icon,\n })\n statusType!: `${UdexMessageStripStatusType}`;\n\n /**\n * Defines whether the MessageStrip renders close button.\n *\n * @public\n */\n @property({ type: Boolean })\n hideCloseButton!: boolean;\n\n /**\n * Defines display the icon for the Message Strip.\n *\n * @private\n */\n @property({ type: Boolean })\n hideIcon!: boolean;\n\n /**\n * Defines the content of the component.\n *\n * @slot\n * @public\n */\n @slot({ type: Node }) default!: Node;\n\n static i18nBundle: I18nBundle;\n\n static async onDefine() {\n UDExMessageStrip.i18nBundle = await getI18nBundle(\n \"sap-ui-webcomponents-bundle\",\n );\n }\n\n getTranslation(text: I18nText): string {\n return UDExMessageStrip.i18nBundle.getText(text);\n }\n\n textStatusTypeMapping(): textStatusType {\n return {\n Information: this.getTranslation(MESSAGE_STRIP_INFORMATION),\n Positive: this.getTranslation(MESSAGE_STRIP_SUCCESS),\n Negative: this.getTranslation(MESSAGE_STRIP_ERROR),\n Warning: this.getTranslation(MESSAGE_STRIP_WARNING),\n };\n }\n\n onBeforeRendering() {\n if (\n this.isDesignAction()\n || this.statusType !== UdexMessageStripStatusType.Icon\n ) {\n this.hideIcon = true;\n }\n }\n\n isDesignAction() {\n return this.design === MessageStripDesign.Action;\n }\n\n get shouldHideIcon() {\n if (\n this.isDesignAction()\n || this.statusType !== UdexMessageStripStatusType.Icon\n ) {\n return this.hideIcon || this.icon.length === 0;\n }\n\n return this.hideIcon;\n }\n\n get hideTextStatus() {\n return (\n this.statusType !== UdexMessageStripStatusType.Text\n || this.isDesignAction()\n );\n }\n\n get textStatus(): string | undefined {\n if (this.design !== MessageStripDesign.Action) {\n return this.textStatusTypeMapping()[this.design];\n }\n }\n\n get _closeButtonText() {\n return this.getTranslation(MESSAGE_STRIP_CLOSE_BUTTON);\n }\n\n get iconProvided() {\n return this.icon.length > 0;\n }\n\n _closeClick() {\n this.fireEvent(\"close\");\n }\n}\n\nUDExMessageStrip.define();\n\nexport default UDExMessageStrip;\n"]}
1
+ {"version":3,"file":"MessageStrip.js","sourceRoot":"","sources":["../src/MessageStrip.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n getI18nBundle,\n I18nText,\n} from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport MessageStrip from \"@ui5/webcomponents/dist/MessageStrip.js\";\nimport messageStripCss from \"@ui5/webcomponents/dist/generated/themes/MessageStrip.css.js\";\nimport UDExButton from \"./Button.js\";\nimport {\n MESSAGE_STRIP_CLOSE_BUTTON,\n MESSAGE_STRIP_ERROR,\n MESSAGE_STRIP_INFORMATION,\n MESSAGE_STRIP_SUCCESS,\n MESSAGE_STRIP_WARNING,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nimport MessageStripTemplate from \"./generated/templates/MessageStripTemplate.lit.js\";\n\n// Styles\nimport MessageStripCss from \"./generated/themes/MessageStrip.css.js\";\n\nexport enum MessageStripDesign {\n /**\n * Message should be just an information\n * @public\n */\n Information = \"Information\",\n /**\n * Message is a success message\n * @public\n */\n Positive = \"Positive\",\n /**\n * Message is an error\n * @public\n */\n Negative = \"Negative\",\n /**\n * Message is a warning\n * @public\n */\n Warning = \"Warning\",\n /**\n * Message is an action\n * @public\n */\n Action = \"Action\",\n}\n\nexport enum UdexMessageStripStatusType {\n Icon = \"Icon\",\n Text = \"Text\",\n None = \"None\",\n}\n\ntype textStatusType = Record<Exclude<MessageStripDesign, \"Action\">, string>;\n\n/**\n * @class\n *\n * @constructor\n * @extends MessageStrip\n * @tagname udex-message-strip\n * @public\n */\n@customElement({\n tag: \"udex-message-strip\",\n renderer: litRender,\n styles: [messageStripCss, MessageStripCss],\n template: MessageStripTemplate,\n dependencies: [UDExButton],\n})\n/**\n * Fired when the close button is pressed either with a\n * click/tap or by using the Enter or Space key.\n *\n * @public\n */\n@event(\"close\")\nclass UDExMessageStrip extends MessageStrip {\n /**\n * Defines the component type.\n *\n * @public\n */\n @property({\n type: MessageStripDesign,\n defaultValue: MessageStripDesign.Action,\n })\n /** @ts-expect-error */\n design!: `${MessageStripDesign}`;\n\n /**\n * Defines the component Status Type.\n *\n * @public\n */\n @property({\n type: UdexMessageStripStatusType,\n defaultValue: UdexMessageStripStatusType.Icon,\n })\n statusType!: `${UdexMessageStripStatusType}`;\n\n /**\n * Defines whether the MessageStrip renders close button.\n *\n * @public\n */\n @property({ type: Boolean })\n hideCloseButton!: boolean;\n\n /**\n * Defines display the icon for the Message Strip.\n *\n * @private\n */\n @property({ type: Boolean })\n hideIcon!: boolean;\n\n /**\n * Defines the content of the component.\n *\n * @slot\n * @public\n */\n @slot({ type: Node }) default!: Node;\n\n static i18nBundle: I18nBundle;\n\n static async onDefine() {\n UDExMessageStrip.i18nBundle = await getI18nBundle(\n \"sap-ui-webcomponents-bundle\",\n );\n }\n\n getTranslation(text: I18nText): string {\n return UDExMessageStrip.i18nBundle.getText(text);\n }\n\n textStatusTypeMapping(): textStatusType {\n return {\n Information: this.getTranslation(MESSAGE_STRIP_INFORMATION),\n Positive: this.getTranslation(MESSAGE_STRIP_SUCCESS),\n Negative: this.getTranslation(MESSAGE_STRIP_ERROR),\n Warning: this.getTranslation(MESSAGE_STRIP_WARNING),\n };\n }\n\n onBeforeRendering() {\n if (\n this.isDesignAction()\n || this.statusType !== UdexMessageStripStatusType.Icon\n ) {\n this.hideIcon = true;\n }\n }\n\n isDesignAction() {\n return this.design === MessageStripDesign.Action;\n }\n\n get shouldHideIcon() {\n if (\n this.isDesignAction()\n || this.statusType !== UdexMessageStripStatusType.Icon\n ) {\n return this.hideIcon || this.icon.length === 0;\n }\n\n return this.hideIcon;\n }\n\n get hideTextStatus() {\n return (\n this.statusType !== UdexMessageStripStatusType.Text\n || this.isDesignAction()\n );\n }\n\n get textStatus(): string | undefined {\n if (this.design !== MessageStripDesign.Action) {\n return this.textStatusTypeMapping()[this.design];\n }\n }\n\n get _closeButtonText() {\n return `${this.textStatus ?? \"\"} ${this.getTranslation(MESSAGE_STRIP_CLOSE_BUTTON)}`;\n }\n\n get iconProvided() {\n return this.icon.length > 0;\n }\n\n _closeClick() {\n this.fireEvent(\"close\");\n }\n}\n\nUDExMessageStrip.define();\n\nexport default UDExMessageStrip;\n"]}