@sapudex/web-components 2.54.0 → 2.56.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 (415) hide show
  1. package/cypress/specs/Breadcrumbs.cy.tsx +3 -1
  2. package/cypress/specs/FilterMenu.cy.tsx +34 -2
  3. package/cypress/specs/Footer.cy.tsx +59 -0
  4. package/cypress/specs/HeroBanner.cy.tsx +35 -1
  5. package/cypress/specs/List.cy.tsx +63 -1
  6. package/cypress/specs/ListItem.cy.tsx +44 -0
  7. package/cypress/specs/MastheadShell.cy.tsx +39 -0
  8. package/cypress/specs/MediaPlayer.cy.tsx +58 -0
  9. package/cypress/specs/PhoneNumberField.cy.tsx +29 -1
  10. package/cypress/specs/SecondaryNavigationDesktop.cy.tsx +2 -2
  11. package/cypress/specs/SelectBox.cy.tsx +173 -0
  12. package/dist/BreadcrumbsTemplate.js +1 -1
  13. package/dist/BreadcrumbsTemplate.js.map +1 -1
  14. package/dist/CountrySelectorTemplate.js +1 -1
  15. package/dist/CountrySelectorTemplate.js.map +1 -1
  16. package/dist/FilterMenu.d.ts +1 -1
  17. package/dist/FilterMenu.js +11 -7
  18. package/dist/FilterMenu.js.map +1 -1
  19. package/dist/Footer.d.ts +20 -1
  20. package/dist/Footer.js +40 -3
  21. package/dist/Footer.js.map +1 -1
  22. package/dist/FooterTemplate.js +7 -2
  23. package/dist/FooterTemplate.js.map +1 -1
  24. package/dist/HeroBanner.d.ts +12 -0
  25. package/dist/HeroBanner.js +54 -0
  26. package/dist/HeroBanner.js.map +1 -1
  27. package/dist/List.d.ts +5 -0
  28. package/dist/List.js +13 -6
  29. package/dist/List.js.map +1 -1
  30. package/dist/ListGroupHeader.js +12 -5
  31. package/dist/ListGroupHeader.js.map +1 -1
  32. package/dist/ListGroupHeaderBase.d.ts +1 -1
  33. package/dist/ListGroupHeaderBase.js +2 -2
  34. package/dist/ListGroupHeaderBase.js.map +1 -1
  35. package/dist/ListGroupHeaderTemplate.d.ts +2 -0
  36. package/dist/ListGroupHeaderTemplate.js +33 -0
  37. package/dist/ListGroupHeaderTemplate.js.map +1 -0
  38. package/dist/ListItem.d.ts +1 -1
  39. package/dist/ListItem.js +9 -4
  40. package/dist/ListItem.js.map +1 -1
  41. package/dist/ListItemBase.d.ts +1 -0
  42. package/dist/ListItemBase.js +8 -4
  43. package/dist/ListItemBase.js.map +1 -1
  44. package/dist/ListItemTemplate.d.ts +2 -0
  45. package/dist/ListItemTemplate.js +18 -0
  46. package/dist/ListItemTemplate.js.map +1 -0
  47. package/dist/ListSelectAll.js +4 -5
  48. package/dist/ListSelectAll.js.map +1 -1
  49. package/dist/ListSelectAllTemplate.d.ts +2 -0
  50. package/dist/ListSelectAllTemplate.js +6 -0
  51. package/dist/ListSelectAllTemplate.js.map +1 -0
  52. package/dist/ListTemplate.d.ts +2 -0
  53. package/dist/ListTemplate.js +11 -0
  54. package/dist/ListTemplate.js.map +1 -0
  55. package/dist/MastheadShell.d.ts +7 -0
  56. package/dist/MastheadShell.js +38 -0
  57. package/dist/MastheadShell.js.map +1 -1
  58. package/dist/MediaPlayer.js +6 -0
  59. package/dist/MediaPlayer.js.map +1 -1
  60. package/dist/PhoneNumberField.d.ts +3 -3
  61. package/dist/PhoneNumberField.js +18 -21
  62. package/dist/PhoneNumberField.js.map +1 -1
  63. package/dist/PhoneNumberFieldTemplate.d.ts +2 -0
  64. package/dist/PhoneNumberFieldTemplate.js +12 -0
  65. package/dist/PhoneNumberFieldTemplate.js.map +1 -0
  66. package/dist/Search.d.ts +2 -0
  67. package/dist/Search.js +21 -0
  68. package/dist/Search.js.map +1 -1
  69. package/dist/SearchableListBase.d.ts +4 -0
  70. package/dist/SearchableListBase.js +66 -6
  71. package/dist/SearchableListBase.js.map +1 -1
  72. package/dist/SearchableListBaseTemplate.js +1 -1
  73. package/dist/SearchableListBaseTemplate.js.map +1 -1
  74. package/dist/SelectBase.js +14 -22
  75. package/dist/SelectBase.js.map +1 -1
  76. package/dist/SelectBox.js +31 -0
  77. package/dist/SelectBox.js.map +1 -1
  78. package/dist/SelectBoxTemplate.js +3 -2
  79. package/dist/SelectBoxTemplate.js.map +1 -1
  80. package/dist/StatusMessage.d.ts +2 -2
  81. package/dist/StatusMessage.js +1 -1
  82. package/dist/StatusMessage.js.map +1 -1
  83. package/dist/TextAreaTemplate.js +1 -1
  84. package/dist/TextAreaTemplate.js.map +1 -1
  85. package/dist/TextFieldTemplate.js +1 -1
  86. package/dist/TextFieldTemplate.js.map +1 -1
  87. package/dist/Upload.js +6 -9
  88. package/dist/Upload.js.map +1 -1
  89. package/dist/UploadItem.d.ts +2 -2
  90. package/dist/UploadItem.js +6 -9
  91. package/dist/UploadItem.js.map +1 -1
  92. package/dist/UploadItemTemplate.d.ts +2 -0
  93. package/dist/UploadItemTemplate.js +14 -0
  94. package/dist/UploadItemTemplate.js.map +1 -0
  95. package/dist/UploadTemplate.d.ts +2 -0
  96. package/dist/UploadTemplate.js +11 -0
  97. package/dist/UploadTemplate.js.map +1 -0
  98. package/dist/assets/{InputSuggestions-CqOrRXxa.js → InputSuggestions-ChhTxYh4.js} +1 -1
  99. package/dist/assets/{ListItemStandardExpandableTextTemplate-DKUm4L2B.js → ListItemStandardExpandableTextTemplate-Bh1HxZfH.js} +1 -1
  100. package/dist/assets/{bundle-C7Yft7IG.css → bundle-CdO3MnjQ.css} +1 -1
  101. package/dist/assets/{bundle.esm-CI60uvdr.js → bundle.esm-DCX_ohoZ.js} +277 -265
  102. package/dist/assets/messagebundle_en-B0P3kkb6.js +1 -0
  103. package/dist/assets/messagebundle_it-BML2SC0W.js +1 -0
  104. package/dist/assets/messagebundle_ja-zyFfZHcj.js +1 -0
  105. package/dist/assets/messagebundle_ko-BCPaSqNp.js +1 -0
  106. package/dist/assets/messagebundle_lt-DB4b6FVx.js +1 -0
  107. package/dist/assets/messagebundle_lv-tAOia5tU.js +1 -0
  108. package/dist/assets/messagebundle_uk-CCv57GhV.js +1 -0
  109. package/dist/css/themes/AccordionItem.css +1 -1
  110. package/dist/css/themes/AccordionSpotlight.css +1 -1
  111. package/dist/css/themes/Avatar.css +1 -1
  112. package/dist/css/themes/Breadcrumbs.css +1 -1
  113. package/dist/css/themes/BreadcrumbsPopover.css +1 -1
  114. package/dist/css/themes/CountrySelector.css +1 -1
  115. package/dist/css/themes/EventRibbon.css +1 -1
  116. package/dist/css/themes/FilterMenu.css +1 -1
  117. package/dist/css/themes/Footer.css +1 -1
  118. package/dist/css/themes/HeroBanner.css +1 -1
  119. package/dist/css/themes/ImageGridTicker.css +1 -1
  120. package/dist/css/themes/Link.css +1 -1
  121. package/dist/css/themes/ListGroupHeader.css +1 -1
  122. package/dist/css/themes/ListItem.css +1 -1
  123. package/dist/css/themes/MastheadCountrySelector.css +1 -1
  124. package/dist/css/themes/MastheadItem.css +1 -1
  125. package/dist/css/themes/MastheadProfileMenu.css +1 -1
  126. package/dist/css/themes/MastheadShell.css +1 -1
  127. package/dist/css/themes/MediaPlayer.css +1 -1
  128. package/dist/css/themes/Modal.css +1 -1
  129. package/dist/css/themes/PhoneNumberField.css +1 -1
  130. package/dist/css/themes/Search.css +1 -1
  131. package/dist/css/themes/SecondaryNavigationItem.css +1 -1
  132. package/dist/css/themes/SelectBase.css +1 -1
  133. package/dist/css/themes/StepInput.css +1 -1
  134. package/dist/css/themes/TabInOverflow.css +1 -1
  135. package/dist/css/themes/TabNavigation.css +1 -1
  136. package/dist/css/themes/TableCellBase.css +1 -1
  137. package/dist/css/themes/TagGroup.css +1 -1
  138. package/dist/css/themes/TextArea.css +1 -1
  139. package/dist/css/themes/TextField.css +1 -1
  140. package/dist/css/themes/Wizard.css +1 -1
  141. package/dist/custom-elements-internal.json +1191 -82
  142. package/dist/custom-elements.json +818 -127
  143. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  144. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  145. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  146. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  147. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  148. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  149. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  150. package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
  151. package/dist/generated/i18n/i18n-defaults.js +2 -1
  152. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  153. package/dist/generated/themes/AccordionItem.css.d.ts +1 -1
  154. package/dist/generated/themes/AccordionItem.css.js +1 -1
  155. package/dist/generated/themes/AccordionItem.css.js.map +1 -1
  156. package/dist/generated/themes/AccordionSpotlight.css.d.ts +1 -1
  157. package/dist/generated/themes/AccordionSpotlight.css.js +1 -1
  158. package/dist/generated/themes/AccordionSpotlight.css.js.map +1 -1
  159. package/dist/generated/themes/Avatar.css.d.ts +1 -1
  160. package/dist/generated/themes/Avatar.css.js +1 -1
  161. package/dist/generated/themes/Avatar.css.js.map +1 -1
  162. package/dist/generated/themes/Breadcrumbs.css.d.ts +1 -1
  163. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  164. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  165. package/dist/generated/themes/BreadcrumbsPopover.css.d.ts +1 -1
  166. package/dist/generated/themes/BreadcrumbsPopover.css.js +1 -1
  167. package/dist/generated/themes/BreadcrumbsPopover.css.js.map +1 -1
  168. package/dist/generated/themes/CountrySelector.css.d.ts +1 -1
  169. package/dist/generated/themes/CountrySelector.css.js +1 -1
  170. package/dist/generated/themes/CountrySelector.css.js.map +1 -1
  171. package/dist/generated/themes/EventRibbon.css.d.ts +1 -1
  172. package/dist/generated/themes/EventRibbon.css.js +1 -1
  173. package/dist/generated/themes/EventRibbon.css.js.map +1 -1
  174. package/dist/generated/themes/FilterMenu.css.d.ts +1 -1
  175. package/dist/generated/themes/FilterMenu.css.js +1 -1
  176. package/dist/generated/themes/FilterMenu.css.js.map +1 -1
  177. package/dist/generated/themes/Footer.css.d.ts +1 -1
  178. package/dist/generated/themes/Footer.css.js +1 -1
  179. package/dist/generated/themes/Footer.css.js.map +1 -1
  180. package/dist/generated/themes/HeroBanner.css.d.ts +1 -1
  181. package/dist/generated/themes/HeroBanner.css.js +1 -1
  182. package/dist/generated/themes/HeroBanner.css.js.map +1 -1
  183. package/dist/generated/themes/ImageGridTicker.css.d.ts +1 -1
  184. package/dist/generated/themes/ImageGridTicker.css.js +1 -1
  185. package/dist/generated/themes/ImageGridTicker.css.js.map +1 -1
  186. package/dist/generated/themes/Link.css.d.ts +1 -1
  187. package/dist/generated/themes/Link.css.js +1 -1
  188. package/dist/generated/themes/Link.css.js.map +1 -1
  189. package/dist/generated/themes/ListGroupHeader.css.d.ts +1 -1
  190. package/dist/generated/themes/ListGroupHeader.css.js +1 -1
  191. package/dist/generated/themes/ListGroupHeader.css.js.map +1 -1
  192. package/dist/generated/themes/ListItem.css.d.ts +1 -1
  193. package/dist/generated/themes/ListItem.css.js +1 -1
  194. package/dist/generated/themes/ListItem.css.js.map +1 -1
  195. package/dist/generated/themes/MastheadCountrySelector.css.d.ts +1 -1
  196. package/dist/generated/themes/MastheadCountrySelector.css.js +1 -1
  197. package/dist/generated/themes/MastheadCountrySelector.css.js.map +1 -1
  198. package/dist/generated/themes/MastheadItem.css.d.ts +1 -1
  199. package/dist/generated/themes/MastheadItem.css.js +1 -1
  200. package/dist/generated/themes/MastheadItem.css.js.map +1 -1
  201. package/dist/generated/themes/MastheadProfileMenu.css.d.ts +1 -1
  202. package/dist/generated/themes/MastheadProfileMenu.css.js +1 -1
  203. package/dist/generated/themes/MastheadProfileMenu.css.js.map +1 -1
  204. package/dist/generated/themes/MastheadShell.css.d.ts +1 -1
  205. package/dist/generated/themes/MastheadShell.css.js +1 -1
  206. package/dist/generated/themes/MastheadShell.css.js.map +1 -1
  207. package/dist/generated/themes/MediaPlayer.css.d.ts +1 -1
  208. package/dist/generated/themes/MediaPlayer.css.js +1 -1
  209. package/dist/generated/themes/MediaPlayer.css.js.map +1 -1
  210. package/dist/generated/themes/Modal.css.d.ts +1 -1
  211. package/dist/generated/themes/Modal.css.js +1 -1
  212. package/dist/generated/themes/Modal.css.js.map +1 -1
  213. package/dist/generated/themes/PhoneNumberField.css.d.ts +1 -1
  214. package/dist/generated/themes/PhoneNumberField.css.js +1 -1
  215. package/dist/generated/themes/PhoneNumberField.css.js.map +1 -1
  216. package/dist/generated/themes/Search.css.d.ts +1 -1
  217. package/dist/generated/themes/Search.css.js +1 -1
  218. package/dist/generated/themes/Search.css.js.map +1 -1
  219. package/dist/generated/themes/SecondaryNavigationItem.css.d.ts +1 -1
  220. package/dist/generated/themes/SecondaryNavigationItem.css.js +1 -1
  221. package/dist/generated/themes/SecondaryNavigationItem.css.js.map +1 -1
  222. package/dist/generated/themes/SelectBase.css.d.ts +1 -1
  223. package/dist/generated/themes/SelectBase.css.js +1 -1
  224. package/dist/generated/themes/SelectBase.css.js.map +1 -1
  225. package/dist/generated/themes/StepInput.css.d.ts +1 -1
  226. package/dist/generated/themes/StepInput.css.js +1 -1
  227. package/dist/generated/themes/StepInput.css.js.map +1 -1
  228. package/dist/generated/themes/TabInOverflow.css.d.ts +1 -1
  229. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  230. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  231. package/dist/generated/themes/TabNavigation.css.d.ts +1 -1
  232. package/dist/generated/themes/TabNavigation.css.js +1 -1
  233. package/dist/generated/themes/TabNavigation.css.js.map +1 -1
  234. package/dist/generated/themes/TableCellBase.css.d.ts +1 -1
  235. package/dist/generated/themes/TableCellBase.css.js +1 -1
  236. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  237. package/dist/generated/themes/TagGroup.css.d.ts +1 -1
  238. package/dist/generated/themes/TagGroup.css.js +1 -1
  239. package/dist/generated/themes/TagGroup.css.js.map +1 -1
  240. package/dist/generated/themes/TextArea.css.d.ts +1 -1
  241. package/dist/generated/themes/TextArea.css.js +1 -1
  242. package/dist/generated/themes/TextArea.css.js.map +1 -1
  243. package/dist/generated/themes/TextField.css.d.ts +1 -1
  244. package/dist/generated/themes/TextField.css.js +1 -1
  245. package/dist/generated/themes/TextField.css.js.map +1 -1
  246. package/dist/generated/themes/Wizard.css.d.ts +1 -1
  247. package/dist/generated/themes/Wizard.css.js +1 -1
  248. package/dist/generated/themes/Wizard.css.js.map +1 -1
  249. package/dist/messagebundle.properties +1 -0
  250. package/dist/messagebundle_en.properties +1 -0
  251. package/dist/messagebundle_it.properties +123 -0
  252. package/dist/messagebundle_ja.properties +127 -1
  253. package/dist/messagebundle_ko.properties +126 -0
  254. package/dist/messagebundle_lt.properties +126 -0
  255. package/dist/messagebundle_lv.properties +9 -0
  256. package/dist/messagebundle_uk.properties +8 -0
  257. package/dist/types/FooterAskJoulePosition.d.ts +5 -0
  258. package/dist/types/FooterAskJoulePosition.js +7 -0
  259. package/dist/types/FooterAskJoulePosition.js.map +1 -0
  260. package/dist/utils/searchBackdrop.d.ts +1 -0
  261. package/dist/utils/searchBackdrop.js +23 -0
  262. package/dist/utils/searchBackdrop.js.map +1 -0
  263. package/dist/vscode.html-custom-data.json +176 -3
  264. package/dist/web-types.json +396 -8
  265. package/package.json +1 -1
  266. package/src/BreadcrumbsTemplate.tsx +12 -10
  267. package/src/CountrySelectorTemplate.tsx +2 -2
  268. package/src/FilterMenu.ts +11 -7
  269. package/src/Footer.ts +41 -3
  270. package/src/FooterTemplate.tsx +28 -4
  271. package/src/HeroBanner.ts +66 -0
  272. package/src/List.ts +16 -8
  273. package/src/ListGroupHeader.ts +12 -5
  274. package/src/ListGroupHeaderBase.ts +3 -3
  275. package/src/ListGroupHeaderTemplate.tsx +228 -0
  276. package/src/ListItem.ts +10 -5
  277. package/src/ListItemBase.ts +9 -4
  278. package/src/ListItemTemplate.tsx +193 -0
  279. package/src/ListSelectAll.ts +4 -5
  280. package/src/ListSelectAllTemplate.tsx +38 -0
  281. package/src/ListTemplate.tsx +60 -0
  282. package/src/MastheadShell.ts +44 -0
  283. package/src/MediaPlayer.ts +6 -0
  284. package/src/PhoneNumberField.ts +23 -22
  285. package/src/PhoneNumberFieldTemplate.tsx +128 -0
  286. package/src/Search.ts +21 -1
  287. package/src/SearchableListBase.ts +62 -7
  288. package/src/SearchableListBaseTemplate.tsx +1 -0
  289. package/src/SelectBase.ts +14 -21
  290. package/src/SelectBox.ts +34 -0
  291. package/src/SelectBoxTemplate.tsx +3 -1
  292. package/src/StatusMessage.ts +4 -3
  293. package/src/TextAreaTemplate.tsx +1 -1
  294. package/src/TextFieldTemplate.tsx +1 -1
  295. package/src/Upload.ts +7 -10
  296. package/src/UploadItem.ts +7 -9
  297. package/src/UploadItemTemplate.tsx +62 -0
  298. package/src/UploadTemplate.tsx +53 -0
  299. package/src/generated/i18n/i18n-defaults.ts +2 -2
  300. package/src/generated/themes/AccordionItem.css.ts +1 -1
  301. package/src/generated/themes/AccordionSpotlight.css.ts +1 -1
  302. package/src/generated/themes/Avatar.css.ts +1 -1
  303. package/src/generated/themes/Breadcrumbs.css.ts +1 -1
  304. package/src/generated/themes/BreadcrumbsPopover.css.ts +1 -1
  305. package/src/generated/themes/CountrySelector.css.ts +1 -1
  306. package/src/generated/themes/EventRibbon.css.ts +1 -1
  307. package/src/generated/themes/FilterMenu.css.ts +1 -1
  308. package/src/generated/themes/Footer.css.ts +1 -1
  309. package/src/generated/themes/HeroBanner.css.ts +1 -1
  310. package/src/generated/themes/ImageGridTicker.css.ts +1 -1
  311. package/src/generated/themes/Link.css.ts +1 -1
  312. package/src/generated/themes/ListGroupHeader.css.ts +1 -1
  313. package/src/generated/themes/ListItem.css.ts +1 -1
  314. package/src/generated/themes/MastheadCountrySelector.css.ts +1 -1
  315. package/src/generated/themes/MastheadItem.css.ts +1 -1
  316. package/src/generated/themes/MastheadProfileMenu.css.ts +1 -1
  317. package/src/generated/themes/MastheadShell.css.ts +1 -1
  318. package/src/generated/themes/MediaPlayer.css.ts +1 -1
  319. package/src/generated/themes/Modal.css.ts +1 -1
  320. package/src/generated/themes/PhoneNumberField.css.ts +1 -1
  321. package/src/generated/themes/Search.css.ts +1 -1
  322. package/src/generated/themes/SecondaryNavigationItem.css.ts +1 -1
  323. package/src/generated/themes/SelectBase.css.ts +1 -1
  324. package/src/generated/themes/StepInput.css.ts +1 -1
  325. package/src/generated/themes/TabInOverflow.css.ts +1 -1
  326. package/src/generated/themes/TabNavigation.css.ts +1 -1
  327. package/src/generated/themes/TableCellBase.css.ts +1 -1
  328. package/src/generated/themes/TagGroup.css.ts +1 -1
  329. package/src/generated/themes/TextArea.css.ts +1 -1
  330. package/src/generated/themes/TextField.css.ts +1 -1
  331. package/src/generated/themes/Wizard.css.ts +1 -1
  332. package/src/i18n/messagebundle.properties +1 -0
  333. package/src/i18n/messagebundle_en.properties +1 -0
  334. package/src/i18n/messagebundle_it.properties +123 -0
  335. package/src/i18n/messagebundle_ja.properties +127 -1
  336. package/src/i18n/messagebundle_ko.properties +126 -0
  337. package/src/i18n/messagebundle_lt.properties +126 -0
  338. package/src/i18n/messagebundle_lv.properties +9 -0
  339. package/src/i18n/messagebundle_uk.properties +8 -0
  340. package/src/themes/AccordionItem.css +1 -1
  341. package/src/themes/AccordionSpotlight.css +1 -1
  342. package/src/themes/Avatar.css +1 -1
  343. package/src/themes/Breadcrumbs.css +46 -5
  344. package/src/themes/BreadcrumbsPopover.css +65 -0
  345. package/src/themes/CountrySelector.css +12 -2
  346. package/src/themes/EventRibbon.css +1 -1
  347. package/src/themes/FilterMenu.css +3 -2
  348. package/src/themes/Footer.css +98 -1
  349. package/src/themes/HeroBanner.css +1 -1
  350. package/src/themes/ImageGridTicker.css +1 -1
  351. package/src/themes/Link.css +127 -8
  352. package/src/themes/ListGroupHeader.css +6 -3
  353. package/src/themes/ListItem.css +10 -2
  354. package/src/themes/MastheadCountrySelector.css +1 -1
  355. package/src/themes/MastheadItem.css +1 -1
  356. package/src/themes/MastheadProfileMenu.css +1 -1
  357. package/src/themes/MastheadShell.css +1 -1
  358. package/src/themes/MediaPlayer.css +10 -10
  359. package/src/themes/Modal.css +5 -3
  360. package/src/themes/PhoneNumberField.css +16 -6
  361. package/src/themes/Search.css +9 -9
  362. package/src/themes/SecondaryNavigationItem.css +1 -1
  363. package/src/themes/SelectBase.css +2 -2
  364. package/src/themes/StepInput.css +1 -1
  365. package/src/themes/TabInOverflow.css +2 -2
  366. package/src/themes/TabNavigation.css +7 -7
  367. package/src/themes/TableCellBase.css +1 -1
  368. package/src/themes/TagGroup.css +1 -1
  369. package/src/themes/TextArea.css +1 -1
  370. package/src/themes/TextField.css +1 -1
  371. package/src/themes/Wizard.css +1 -1
  372. package/src/types/FooterAskJoulePosition.ts +6 -0
  373. package/src/utils/searchBackdrop.ts +23 -0
  374. package/dist/assets/messagebundle_en-DoNTK1BE.js +0 -1
  375. package/dist/assets/messagebundle_it-BhrBdOd4.js +0 -1
  376. package/dist/assets/messagebundle_ja-5P5L7sQ1.js +0 -1
  377. package/dist/assets/messagebundle_ko-B9H5YQlC.js +0 -1
  378. package/dist/assets/messagebundle_lt-BJ5gr_LF.js +0 -1
  379. package/dist/assets/messagebundle_lv-D06tlATH.js +0 -1
  380. package/dist/assets/messagebundle_uk-GmdhsMsP.js +0 -1
  381. package/dist/generated/templates/ListGroupHeaderTemplate.lit.d.ts +0 -3
  382. package/dist/generated/templates/ListGroupHeaderTemplate.lit.js +0 -30
  383. package/dist/generated/templates/ListGroupHeaderTemplate.lit.js.map +0 -1
  384. package/dist/generated/templates/ListItemTemplate.lit.d.ts +0 -3
  385. package/dist/generated/templates/ListItemTemplate.lit.js +0 -49
  386. package/dist/generated/templates/ListItemTemplate.lit.js.map +0 -1
  387. package/dist/generated/templates/ListSelectAllTemplate.lit.d.ts +0 -3
  388. package/dist/generated/templates/ListSelectAllTemplate.lit.js +0 -7
  389. package/dist/generated/templates/ListSelectAllTemplate.lit.js.map +0 -1
  390. package/dist/generated/templates/ListTemplate.lit.d.ts +0 -3
  391. package/dist/generated/templates/ListTemplate.lit.js +0 -11
  392. package/dist/generated/templates/ListTemplate.lit.js.map +0 -1
  393. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.d.ts +0 -3
  394. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js +0 -16
  395. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js.map +0 -1
  396. package/dist/generated/templates/UploadItemTemplate.lit.d.ts +0 -3
  397. package/dist/generated/templates/UploadItemTemplate.lit.js +0 -12
  398. package/dist/generated/templates/UploadItemTemplate.lit.js.map +0 -1
  399. package/dist/generated/templates/UploadTemplate.lit.d.ts +0 -3
  400. package/dist/generated/templates/UploadTemplate.lit.js +0 -10
  401. package/dist/generated/templates/UploadTemplate.lit.js.map +0 -1
  402. package/src/List.hbs +0 -38
  403. package/src/ListGroupHeader.hbs +0 -188
  404. package/src/ListItem.hbs +0 -166
  405. package/src/ListSelectAll.hbs +0 -31
  406. package/src/PhoneNumberField.hbs +0 -119
  407. package/src/Upload.hbs +0 -21
  408. package/src/UploadItem.hbs +0 -32
  409. package/src/generated/templates/ListGroupHeaderTemplate.lit.ts +0 -34
  410. package/src/generated/templates/ListItemTemplate.lit.ts +0 -53
  411. package/src/generated/templates/ListSelectAllTemplate.lit.ts +0 -11
  412. package/src/generated/templates/ListTemplate.lit.ts +0 -15
  413. package/src/generated/templates/PhoneNumberFieldTemplate.lit.ts +0 -20
  414. package/src/generated/templates/UploadItemTemplate.lit.ts +0 -16
  415. package/src/generated/templates/UploadTemplate.lit.ts +0 -14
@@ -2,7 +2,7 @@ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
2
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
3
3
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
4
4
  import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
5
- import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
5
+ import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
6
6
  import { UDExListItemSize, UDExListMode, UDExListStyleType } from "./types/List.js";
7
7
  import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
8
8
  import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
@@ -37,7 +37,7 @@ type UDExListItemBaseAccordionClickEventDetail = {
37
37
  * @public
38
38
  */
39
39
  @customElement({
40
- renderer: litRender,
40
+ renderer: jsxRenderer,
41
41
  })
42
42
 
43
43
  /**
@@ -261,17 +261,22 @@ class UDExListItemBase extends UI5Element {
261
261
  @i18n("@sapudex/web-components")
262
262
  static i18nBundle: I18nBundle;
263
263
 
264
- onEnterDOM() {
264
+ onAfterRendering() {
265
265
  if (!this.collapsible) {
266
266
  return;
267
267
  }
268
268
  this.contentElement = this.shadowRoot?.querySelector<HTMLElement>(".udex-list__group-list__content");
269
269
  if (this.contentElement) {
270
- ResizeHandler.register(this.contentElement, this._resizeHandler);
271
270
  this.setContentHeight();
272
271
  }
273
272
  }
274
273
 
274
+ onEnterDOM() {
275
+ if (this.contentElement && this.collapsible) {
276
+ ResizeHandler.register(this.contentElement, this._resizeHandler);
277
+ }
278
+ }
279
+
275
280
  onExitDOM(): void {
276
281
  if (this.contentElement && this.collapsible) {
277
282
  ResizeHandler.deregister(this.contentElement, this._resizeHandler);
@@ -0,0 +1,193 @@
1
+ import type { AriaRole } from "@ui5/webcomponents-base/dist/types.js";
2
+ import type UDExListItem from "./ListItem.js";
3
+ import UDExCheckbox from "./Checkbox.js";
4
+ import UDExRadioButton from "./RadioButton.js";
5
+ import Icon from "@ui5/webcomponents/dist/Icon.js";
6
+ import UDExAvatar from "./Avatar.js";
7
+ import UDExStatusBadge from "./StatusBadge.js";
8
+ import UDExRatingIndicator from "./RatingIndicator.js";
9
+ import UDExButton from "./Button.js";
10
+ import UDExButtonSize from "./types/ButtonSize.js";
11
+ import UDExButtonDesign from "./types/ButtonDesign.js";
12
+ import slimArrowRight from "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
13
+
14
+ function ContentList(this: UDExListItem) {
15
+ return (
16
+ <div
17
+ class="udex-list__content-wrap"
18
+ {...({ "_id": this._id } as object)}
19
+ aria-labelledby={`${this._id}-invisibleText`}
20
+ aria-label={this.accessibleListItemName}>
21
+ {this.flag && (
22
+ <div class="udex-list__flag-wrap">
23
+ <span class="udex-list__flag" style={{ backgroundPosition: this.flagPosition }}></span>
24
+ </div>
25
+ )}
26
+ {this.typeNumber && <span class="udex-list__number">{this.numberOfItem}.</span>}
27
+ {this.typeCircle && <span class="udex-list__circle">&#x2022;</span>}
28
+ {this.typeIcon && (
29
+ <Icon
30
+ name={this._icon}
31
+ class="udex-list__icon"
32
+ accessible-role="presentation"
33
+ aria-hidden="true"
34
+ part="icon"
35
+ />
36
+ )}
37
+ {this.image && (
38
+ <UDExAvatar
39
+ class="udex-list__avatar"
40
+ part="avatar"
41
+ shape={this.imageShape}
42
+ size={this.imageSize}>
43
+ {this.imageBadgeState && (
44
+ <UDExStatusBadge
45
+ slot="badge"
46
+ value-state={this.imageBadgeState}
47
+ size={this.imageSize}
48
+ />
49
+ )}
50
+ <img src={this.image} alt={this.imageAlt} />
51
+ </UDExAvatar>
52
+ )}
53
+ <div class="udex-list__content" part="content">
54
+ {this.label ? (
55
+ <>
56
+ <div class="udex-list__text-holder">
57
+ <span part="title" {...({ innerHTML: this.label } as object)}></span>
58
+ {this.supportingText && (
59
+ <span class="udex-list__supporting-text" part="supporting">{this.supportingText}</span>
60
+ )}
61
+ <slot part="content"></slot>
62
+ {this.hasRating && (
63
+ <UDExRatingIndicator
64
+ aria-label={this.ratingAriaLabel}
65
+ value={this.rating !== undefined ? Number(this.rating) : undefined}
66
+ rating-count={this.ratingCount}
67
+ total-count={this.totalCount}
68
+ max={this.ratingMax}
69
+ display={this._displayRating}
70
+ disabled
71
+ readonly
72
+ />
73
+ )}
74
+ </div>
75
+ {this.additionalText && (
76
+ <div class="udex-list__add-text" part="additional-text">{this.additionalText}</div>
77
+ )}
78
+ <div class="udex-list__btn-wrap">
79
+ {this.hasFirstIcon && <slot name="firstIcon" onClick={this._fireIconClickEvent as EventListener}></slot>}
80
+ {this.hasSecondIcon && <slot name="secondIcon" onClick={this._fireIconClickEvent as EventListener}></slot>}
81
+ </div>
82
+ </>
83
+ ) : (
84
+ <>
85
+ <div class="udex-list__text-holder">
86
+ <slot part="content"></slot>
87
+ {this.supportingText && (
88
+ <span class="udex-list__supporting-text" part="supporting">{this.supportingText}</span>
89
+ )}
90
+ {this.hasRating && (
91
+ <UDExRatingIndicator
92
+ aria-label={this.ratingAriaLabel}
93
+ value={this.rating !== undefined ? Number(this.rating) : undefined}
94
+ rating-count={this.ratingCount}
95
+ total-count={this.totalCount}
96
+ max={this.ratingMax}
97
+ display={this._displayRating}
98
+ disabled
99
+ readonly
100
+ />
101
+ )}
102
+ </div>
103
+ {this.additionalText && (
104
+ <div class="udex-list__add-text" part="additional-text">{this.additionalText}</div>
105
+ )}
106
+ <div class="udex-list__btn-wrap">
107
+ {this.hasFirstIcon && <slot name="firstIcon" onClick={this._fireIconClickEvent as EventListener}></slot>}
108
+ {this.hasSecondIcon && <slot name="secondIcon" onClick={this._fireIconClickEvent as EventListener}></slot>}
109
+ </div>
110
+ </>
111
+ )}
112
+ {this.collapsible && (
113
+ <div class="udex-list__group-heading__icon-wrapper">
114
+ <UDExButton
115
+ class="udex-list__group-heading__icon"
116
+ size={UDExButtonSize.Small}
117
+ design={UDExButtonDesign.Tertiary}
118
+ onMouseDown={this.handleCollapseIconMouseDown}
119
+ onClick={this.handleCollapseIconClick as EventListener}
120
+ tabindex={-1}
121
+ accessible-name={this.expandButtonAccessibleName}
122
+ {...({ "mode": "Interactive" } as object)}
123
+ icon={slimArrowRight}
124
+ />
125
+ </div>
126
+ )}
127
+ </div>
128
+ <div class="hidden" id={`${this._id}-invisibleText`}>{this.accessibleListItemName}</div>
129
+ <div class="hidden" id={`${this._id}-invisibleText-describedby`}>{this.itemState}</div>
130
+ </div>
131
+ );
132
+ }
133
+
134
+ export default function ListItemTemplate(this: UDExListItem) {
135
+ return (
136
+ <>
137
+ {this.modeSelected && (
138
+ <div
139
+ part="item"
140
+ tabIndex={Number(this._effectiveTabIndex)}
141
+ aria-disabled={this._ariaDisabled}
142
+ class={this.className}
143
+ role={this.roleItem as AriaRole}
144
+ aria-checked={this.ariaCheckedValue}
145
+ aria-selected={this.ariaSelectedValue}
146
+ aria-expanded={this.ariaExpandedValue}
147
+ onFocusIn={this.handleFocusIn}
148
+ onFocusOut={this.handleFocusOut}
149
+ onClick={this.handleItemClick}
150
+ onMouseDown={this.handleMouseDown}
151
+ onMouseUp={this.handleMouseUp}
152
+ onKeyUp={this.handleKeyUp}
153
+ onKeyDown={this.handleKeyDown}
154
+ {...({ divider: this.divider, "_id": this._id } as object)}
155
+ data-selected={this.selected}
156
+ aria-describedby={this.itemDescribedBy}>
157
+ {this.modeMultiSelect && (
158
+ <UDExCheckbox
159
+ class="udex-list__checkbox"
160
+ part="checkbox"
161
+ tabindex={-1}
162
+ indeterminate={this.indeterminate}
163
+ accessible-name={`checkbox ${this.stateAccessibleName}`}
164
+ checked={this.selected}
165
+ disabled={this.disabled}
166
+ aria-hidden={this.checkboxAriaHidden ? "true" : undefined}
167
+ />
168
+ )}
169
+ {this.modeRadioGroup && (
170
+ <UDExRadioButton
171
+ class="udex-list__radio"
172
+ part="radio"
173
+ tabindex={-1}
174
+ accessible-name={`radio ${this.stateAccessibleName}`}
175
+ checked={this.selected}
176
+ disabled={this.disabled}
177
+ />
178
+ )}
179
+ {ContentList.call(this)}
180
+ </div>
181
+ )}
182
+ {this.modeSingleContent && (
183
+ <div
184
+ part="item"
185
+ role={this.roleItem as AriaRole}
186
+ aria-selected={this.selected}
187
+ class={this.className}>
188
+ {ContentList.call(this)}
189
+ </div>
190
+ )}
191
+ </>
192
+ );
193
+ }
@@ -1,14 +1,13 @@
1
1
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
2
2
  import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
3
- import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
3
+ import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
4
4
  import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
5
5
  import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
6
6
  import { isEnter, isSpace } from "@ui5/webcomponents-base/dist/Keys.js";
7
7
  import UDExListGroupHeaderBase from "./ListGroupHeaderBase.js";
8
8
  import { UDExListMode } from "./types/List.js";
9
9
  import { SELECT_ALL } from "./generated/i18n/i18n-defaults.js";
10
- import ListSelectAllTemplate from "./generated/templates/ListSelectAllTemplate.lit.js";
11
- import UDExListItem from "./ListItem.js";
10
+ import ListSelectAllTemplate from "./ListSelectAllTemplate.js";
12
11
  import type { UDExListItemBaseEvents } from "./ListItemBase.js";
13
12
  import translate from "./utils/translate.js";
14
13
 
@@ -41,10 +40,10 @@ type UDExListSelectAllSelectAllEventDetail = {
41
40
  */
42
41
  @customElement({
43
42
  tag: "udex-list-select-all",
44
- renderer: litRender,
43
+ renderer: jsxRenderer,
44
+ languageAware: true,
45
45
  styles: ListGroupHeaderCss,
46
46
  template: ListSelectAllTemplate,
47
- dependencies: [UDExListItem],
48
47
  })
49
48
  /**
50
49
  * Fired when the user clicks on the Select All header.
@@ -0,0 +1,38 @@
1
+ import type UDExListSelectAll from "./ListSelectAll.js";
2
+ import UDExListItem from "./ListItem.js";
3
+
4
+ export default function ListSelectAllTemplate(this: UDExListSelectAll) {
5
+ return (
6
+ <div
7
+ part="item"
8
+ class="udex-list__group"
9
+ role="group"
10
+ aria-labelledby="group-select-all">
11
+ <div
12
+ role="listbox"
13
+ aria-label="select-all-group"
14
+ class={this.groupListClassName}
15
+ onui5-item-press={this.handleSelectAllGroupItemsPress}>
16
+ <UDExListItem
17
+ role="group"
18
+ part="group-item"
19
+ accessible-role="option"
20
+ mode={this.multiselectMode}
21
+ onClick={this.handleSelectAllPress}
22
+ class={this.className}
23
+ selected={this.selected}
24
+ aria-current={this.selected}
25
+ indeterminate={this.indeterminate}
26
+ controlled={this.controlled}
27
+ onKeyDown={this.handleKeyDownPress}
28
+ _tab-index={Number(this._effectiveTabIndex)}
29
+ _additional-class-name={this.additionalClassName}
30
+ supportingText={this.supportingText}
31
+ divider>
32
+ {this.selectAllLabel}
33
+ </UDExListItem>
34
+ <slot></slot>
35
+ </div>
36
+ </div>
37
+ );
38
+ }
@@ -0,0 +1,60 @@
1
+ import type UDExList from "./List.js";
2
+ import type { AriaRole } from "@ui5/webcomponents-base/types.js";
3
+
4
+ export default function ListTemplate(this: UDExList) {
5
+ return (
6
+ <>
7
+ {this.modeSelected && (
8
+ <div
9
+ class="udex-list-root"
10
+ onKeyDown={this.handleKeyDown}
11
+ style={{ height: this.holderHeight }}
12
+ onui5-item-press={this.handleItemPress}
13
+ onui5-header-press={this.handleItemPress}>
14
+ <div class="udex-list__scroll-container">
15
+ {HeaderText.call(this)}
16
+ <span id={`${this._id}-mode-label`} class="udex-list__hidden-text">
17
+ {this.ariaLabelModeText}
18
+ </span>
19
+ <div
20
+ id="udex-list"
21
+ class="udex-list"
22
+ role={this.effectiveAccessibleRole as AriaRole}
23
+ aria-labelledby={this.ariaLabelledBy}
24
+ aria-multiselectable={this._listAriaMultiSelectable as "true" | undefined}
25
+ aria-busy={(this.ariaBusy ?? undefined) as "true" | "false" | undefined}>
26
+ <slot></slot>
27
+ </div>
28
+ </div>
29
+ </div>
30
+ )}
31
+ {this.modeSingleContent && (
32
+ <>
33
+ {HeaderText.call(this)}
34
+ <div
35
+ id="udex-list"
36
+ class="udex-list"
37
+ role={this.singleContentRole as AriaRole}
38
+ aria-label={this.singleContentAriaLabel}
39
+ aria-busy={(this.ariaBusy ?? undefined) as "true" | "false" | undefined}>
40
+ <slot></slot>
41
+ </div>
42
+ </>
43
+ )}
44
+ </>
45
+ );
46
+ }
47
+
48
+ function HeaderText(this: UDExList) {
49
+ if (!this.headerText) {
50
+ return null;
51
+ }
52
+ return (
53
+ <header
54
+ id={`${this._id}-mode-label`}
55
+ class="udex-list__header-text"
56
+ part="header">
57
+ {this.headerText}
58
+ </header>
59
+ );
60
+ }
@@ -29,6 +29,7 @@ import { BreakpointUtils } from "./utils/Breakpoints.js";
29
29
  import AnalyticsName from "./types/AnalyticsName.js";
30
30
  import MastheadShellTemplate from "./generated/templates/MastheadShellTemplate.lit.js";
31
31
  import translate from "./utils/translate.js";
32
+ import ensureSearchBackdropStyles from "./utils/searchBackdrop.js";
32
33
 
33
34
  // Styles
34
35
  import MastheadShellCss from "./generated/themes/MastheadShell.css.js";
@@ -550,11 +551,16 @@ class UDExMastheadShell extends UI5Element {
550
551
  _rootHolder!: HTMLElement | null | undefined;
551
552
  _shouldHandleResize!: boolean;
552
553
  _isVisible!: boolean;
554
+ _handleSuggestionOpenedBound!: () => void;
555
+ _handleSuggestionClosedBound!: () => void;
556
+ _bodyBackdropEl: HTMLElement | null = null;
553
557
 
554
558
  constructor() {
555
559
  super();
556
560
  this._handleResizeBound = this._handleResize.bind(this);
557
561
  this._handleWindowResizeBound = this._handleWindowResize.bind(this);
562
+ this._handleSuggestionOpenedBound = this._showSearchBackdrop.bind(this);
563
+ this._handleSuggestionClosedBound = this._hideSearchBackdrop.bind(this);
558
564
  }
559
565
 
560
566
  onBeforeRendering() {
@@ -585,6 +591,8 @@ class UDExMastheadShell extends UI5Element {
585
591
  onEnterDOM(): void {
586
592
  ResizeHandler.register(this, this._handleResizeBound);
587
593
  window.addEventListener("resize", this._handleWindowResizeBound);
594
+ this.addEventListener("suggestion-popover-opened", this._handleSuggestionOpenedBound);
595
+ this.addEventListener("suggestion-popover-closed", this._handleSuggestionClosedBound);
588
596
  if (isDesktop()) {
589
597
  this.setAttribute("desktop", "");
590
598
  }
@@ -593,6 +601,10 @@ class UDExMastheadShell extends UI5Element {
593
601
  onExitDOM(): void {
594
602
  ResizeHandler.deregister(this, this._handleResizeBound);
595
603
  window.removeEventListener("resize", this._handleWindowResizeBound);
604
+ this.removeEventListener("suggestion-popover-opened", this._handleSuggestionOpenedBound);
605
+ this.removeEventListener("suggestion-popover-closed", this._handleSuggestionClosedBound);
606
+ this._bodyBackdropEl?.remove();
607
+ this._bodyBackdropEl = null;
596
608
  }
597
609
 
598
610
  _handleWindowResize(): void {
@@ -985,6 +997,38 @@ class UDExMastheadShell extends UI5Element {
985
997
  this.fireMastheadEvent("search-opened");
986
998
  }
987
999
 
1000
+ private _getBackdropEl(): HTMLElement {
1001
+ if (!this._bodyBackdropEl) {
1002
+ ensureSearchBackdropStyles(this.ownerDocument);
1003
+ const el = this.ownerDocument.createElement("div");
1004
+ el.className = "udex-search-backdrop";
1005
+ el.addEventListener("click", () => this.handleBackdropClick());
1006
+ this.ownerDocument.body.appendChild(el);
1007
+ this._bodyBackdropEl = el;
1008
+ }
1009
+ return this._bodyBackdropEl;
1010
+ }
1011
+
1012
+ private _showSearchBackdrop(): void {
1013
+ if (!this.showSearchByDefault && this.isMobileMenuMode) {
1014
+ return;
1015
+ }
1016
+ const backdrop = this._getBackdropEl();
1017
+ const top = this.getBoundingClientRect().bottom;
1018
+ backdrop.style.top = `${top}px`;
1019
+ backdrop.style.display = "block";
1020
+ }
1021
+
1022
+ private _hideSearchBackdrop(): void {
1023
+ if (this._bodyBackdropEl) {
1024
+ this._bodyBackdropEl.style.display = "none";
1025
+ }
1026
+ }
1027
+
1028
+ handleBackdropClick(): void {
1029
+ this._desktopSearch?.onClosePopover();
1030
+ }
1031
+
988
1032
  /**
989
1033
  * Open the mobile menu panel.
990
1034
  * @public
@@ -371,6 +371,9 @@ class UDExMediaPlayer extends UI5Element {
371
371
  });
372
372
 
373
373
  player.on("ended", () => {
374
+ this.video25 = false;
375
+ this.video50 = false;
376
+ this.video75 = false;
374
377
  this.fireDecoratorEvent("videoComplete");
375
378
  });
376
379
 
@@ -621,6 +624,9 @@ class UDExMediaPlayer extends UI5Element {
621
624
 
622
625
  handleEmbedVideoEnded() {
623
626
  this._embedVideoStartFired = false;
627
+ this.video25 = false;
628
+ this.video50 = false;
629
+ this.video75 = false;
624
630
  this.fireDecoratorEvent("videoComplete");
625
631
  }
626
632
 
@@ -1,34 +1,32 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
2
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
3
3
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
4
- import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
4
+ import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
5
5
  import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
6
6
  import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
7
7
  import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
8
8
  import type { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
9
9
  import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
10
10
  import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
11
+ import { isEnter } from "@ui5/webcomponents-base/dist/Keys.js";
11
12
  import {
12
13
  COUNTRY_SELECT, READ_ONLY, VALUE_STATE_ERROR, VALUE_STATE_SUCCESS,
13
14
  } from "./generated/i18n/i18n-defaults.js";
14
15
  import type { Country } from "./data/CountryListISO3166.js";
15
16
  import { CountryListDB } from "./data/CountryListISO3166.js";
16
- import UDExDropdown from "./Dropdown.js";
17
- import UDExList from "./List.js";
18
- import UDExListItem from "./ListItem.js";
19
- import UDExButton from "./Button.js";
20
- import UDExStatusMessage from "./StatusMessage.js";
17
+ import type UDExDropdown from "./Dropdown.js";
18
+ import type UDExList from "./List.js";
19
+ import type UDExButton from "./Button.js";
21
20
  import translate from "./utils/translate.js";
22
21
 
23
22
  import "@ui5/webcomponents/dist/Icon.js";
24
23
  import "@ui5/webcomponents-icons/dist/slim-arrow-up.js";
25
24
  import "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
26
25
 
27
- import PhoneNumberFieldTemplate from "./generated/templates/PhoneNumberFieldTemplate.lit.js";
26
+ import PhoneNumberFieldTemplate from "./PhoneNumberFieldTemplate.js";
28
27
 
29
28
  // Styles
30
29
  import PhoneNumberFieldCss from "./generated/themes/PhoneNumberField.css.js";
31
- import { isEnter } from "@ui5/webcomponents-base/dist/Keys.js";
32
30
 
33
31
  export interface ExtendedCountriesListPhoneNumberData extends Country {
34
32
  selected?: boolean;
@@ -66,16 +64,9 @@ const digitsLimit: number = 15;
66
64
  */
67
65
  @customElement({
68
66
  tag: "udex-phone-number-field",
69
- renderer: litRender,
67
+ renderer: jsxRenderer,
70
68
  styles: PhoneNumberFieldCss,
71
69
  template: PhoneNumberFieldTemplate,
72
- dependencies: [
73
- UDExDropdown,
74
- UDExList,
75
- UDExListItem,
76
- UDExButton,
77
- UDExStatusMessage,
78
- ],
79
70
  })
80
71
  /**
81
72
  * Fired when the value of the component changes at each keystroke.
@@ -323,13 +314,22 @@ class UDExPhoneNumberField extends UI5Element {
323
314
  }
324
315
 
325
316
  onBeforeRendering() {
326
- this.applyPlaceholder();
327
-
328
317
  if (this.blockedCountryCodes?.length) {
329
318
  const blockedCountryCodesArray = this.blockedCountryCodes.split(",").map(code => code.trim().toUpperCase());
330
319
  this.countriesList = this.countriesList
331
320
  .filter(country => !blockedCountryCodesArray?.includes(country.iso.toUpperCase()));
332
321
  }
322
+
323
+ if (this.value) {
324
+ if (this.selectedIso && !this.value.startsWith(this.selectedPhonePrefix)) {
325
+ this.selectedIso = "";
326
+ }
327
+ if (!this.selectedIso) {
328
+ this.autoSelectCountry(this.value);
329
+ }
330
+ }
331
+
332
+ this.applyPlaceholder();
333
333
  }
334
334
 
335
335
  onAfterRendering() {
@@ -430,7 +430,8 @@ class UDExPhoneNumberField extends UI5Element {
430
430
  handleSelect(e: CustomEvent) {
431
431
  this._dropdown.open = false;
432
432
  this.selectedIso = e.detail.item.id;
433
- this.applyPhoneMask();
433
+ this.value = this.selectedPhonePrefix;
434
+ this.maxlength = this.calculateMaxLength(this.selectedPhonePrefix, this.selectedPlaceholder);
434
435
  this.getInputField().focus();
435
436
  this.fireDecoratorEvent("change");
436
437
  }
@@ -585,7 +586,7 @@ class UDExPhoneNumberField extends UI5Element {
585
586
  }
586
587
 
587
588
  get ariaInvalid(): string | null {
588
- return this.valueState === "Error" ? "true" : null;
589
+ return this.valueState === UDExPhoneNumberFieldValueState.Error ? "true" : null;
589
590
  }
590
591
 
591
592
  get isInputReadonly(): boolean {
@@ -619,11 +620,11 @@ class UDExPhoneNumberField extends UI5Element {
619
620
  }
620
621
 
621
622
  get hasValueState(): boolean {
622
- return this.valueState !== "Standard";
623
+ return this.valueState !== UDExPhoneNumberFieldValueState.Standard;
623
624
  }
624
625
 
625
626
  get valueStateText(): string | undefined {
626
- return this.valueState !== "Standard" ? this.valueStateTypeMappings[this.valueState] : undefined;
627
+ return this.valueState !== UDExPhoneNumberFieldValueState.Standard ? this.valueStateTypeMappings[this.valueState] : undefined;
627
628
  }
628
629
 
629
630
  get readOnlyStateText() {