@ui5/webcomponents 0.0.0-39bd3067f → 0.0.0-4180fe799

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 (732) hide show
  1. package/CHANGELOG.md +610 -1
  2. package/README.md +144 -52
  3. package/csp.js +7 -0
  4. package/customI18n.js +50 -0
  5. package/dist/Assets-static.js +6 -0
  6. package/dist/Assets.js +2 -1
  7. package/dist/Avatar.js +197 -46
  8. package/dist/AvatarGroup.js +603 -0
  9. package/dist/Badge.js +44 -22
  10. package/dist/Breadcrumbs.js +563 -0
  11. package/dist/BreadcrumbsItem.js +109 -0
  12. package/dist/BusyIndicator.js +159 -20
  13. package/dist/Button.js +132 -69
  14. package/dist/Calendar.js +342 -546
  15. package/dist/CalendarDate.js +45 -0
  16. package/dist/CalendarHeader.js +133 -62
  17. package/dist/CalendarPart.js +111 -0
  18. package/dist/Card.js +44 -158
  19. package/dist/CardHeader.js +288 -0
  20. package/dist/Carousel.js +272 -76
  21. package/dist/CheckBox.js +149 -49
  22. package/dist/ColorPalette.js +493 -0
  23. package/dist/ColorPaletteItem.js +137 -0
  24. package/dist/ColorPalettePopover.js +219 -0
  25. package/dist/ColorPicker.js +524 -0
  26. package/dist/ComboBox.js +603 -94
  27. package/dist/ComboBoxFilters.js +8 -1
  28. package/dist/ComboBoxGroupItem.js +70 -0
  29. package/dist/ComboBoxItem.js +12 -24
  30. package/dist/CustomListItem.js +38 -9
  31. package/dist/DateComponentBase.js +170 -0
  32. package/dist/DatePicker.js +418 -403
  33. package/dist/DateRangePicker.js +328 -0
  34. package/dist/DateTimePicker.js +111 -384
  35. package/dist/DayPicker.js +509 -431
  36. package/dist/Dialog.js +497 -50
  37. package/dist/DurationPicker.js +170 -317
  38. package/dist/FileUploader.js +217 -24
  39. package/dist/GroupHeaderListItem.js +24 -19
  40. package/dist/Icon.js +197 -36
  41. package/dist/Input.js +660 -167
  42. package/dist/Interfaces.js +192 -0
  43. package/dist/Label.js +27 -12
  44. package/dist/Link.js +138 -28
  45. package/dist/List.js +501 -110
  46. package/dist/ListItem.js +110 -28
  47. package/dist/ListItemBase.js +42 -8
  48. package/dist/MessageStrip.js +56 -70
  49. package/dist/MonthPicker.js +180 -182
  50. package/dist/MultiComboBox.js +583 -207
  51. package/dist/MultiComboBoxItem.js +8 -5
  52. package/dist/MultiInput.js +301 -0
  53. package/dist/Option.js +48 -5
  54. package/dist/Panel.js +100 -37
  55. package/dist/Popover.js +255 -224
  56. package/dist/Popup.js +381 -284
  57. package/dist/ProgressIndicator.js +235 -0
  58. package/dist/RadioButton.js +131 -51
  59. package/dist/RadioButtonGroup.js +53 -29
  60. package/dist/RangeSlider.js +769 -0
  61. package/dist/RatingIndicator.js +291 -0
  62. package/dist/ResponsivePopover.js +73 -46
  63. package/dist/SegmentedButton.js +127 -60
  64. package/dist/SegmentedButtonItem.js +109 -0
  65. package/dist/Select.js +448 -107
  66. package/dist/Slider.js +320 -0
  67. package/dist/SliderBase.js +842 -0
  68. package/dist/StandardListItem.js +44 -22
  69. package/dist/StepInput.js +684 -0
  70. package/dist/SuggestionGroupItem.js +64 -0
  71. package/dist/SuggestionItem.js +37 -31
  72. package/dist/SuggestionListItem.js +76 -0
  73. package/dist/Switch.js +60 -42
  74. package/dist/Tab.js +55 -24
  75. package/dist/TabContainer.js +241 -82
  76. package/dist/TabSeparator.js +1 -0
  77. package/dist/Table.js +480 -35
  78. package/dist/TableCell.js +11 -13
  79. package/dist/TableColumn.js +13 -3
  80. package/dist/TableGroupRow.js +160 -0
  81. package/dist/TableRow.js +244 -18
  82. package/dist/TextArea.js +153 -55
  83. package/dist/TimePicker.js +55 -644
  84. package/dist/TimePickerBase.js +463 -0
  85. package/dist/TimeSelection.js +493 -0
  86. package/dist/Title.js +16 -9
  87. package/dist/Toast.js +24 -13
  88. package/dist/ToggleButton.js +21 -13
  89. package/dist/Token.js +84 -45
  90. package/dist/Tokenizer.js +246 -64
  91. package/dist/Tree.js +443 -0
  92. package/dist/TreeItem.js +168 -0
  93. package/dist/TreeListItem.js +332 -0
  94. package/dist/WheelSlider.js +79 -59
  95. package/dist/YearPicker.js +199 -255
  96. package/dist/api.json +6877 -1
  97. package/dist/features/ColorPaletteMoreColors.js +42 -0
  98. package/dist/features/InputElementsFormSupport.js +0 -1
  99. package/dist/features/InputSuggestions.js +276 -53
  100. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  101. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  102. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  103. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  104. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -0
  105. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  106. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  107. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  108. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  109. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -0
  110. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -0
  111. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -0
  112. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -0
  113. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  114. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -0
  115. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  116. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  117. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  118. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -0
  119. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  120. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  121. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  122. package/dist/generated/assets/i18n/messagebundle_in.json +1 -0
  123. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  124. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  125. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  126. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  127. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  128. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  129. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  130. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  131. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  132. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  133. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  134. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  135. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -0
  136. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  137. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  138. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  139. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  140. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  141. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  142. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  143. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  144. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  145. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  146. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  147. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  148. package/dist/generated/assets/themes/sap_belize/parameters-bundle.css.json +1 -1
  149. package/dist/generated/assets/themes/sap_belize_hcb/parameters-bundle.css.json +1 -1
  150. package/dist/generated/assets/themes/sap_belize_hcw/parameters-bundle.css.json +1 -1
  151. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  152. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  153. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -0
  154. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -0
  155. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -0
  156. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -0
  157. package/dist/generated/i18n/i18n-defaults.js +2 -2
  158. package/dist/generated/json-imports/Themes-static.js +35 -0
  159. package/dist/generated/json-imports/Themes.js +23 -15
  160. package/dist/generated/json-imports/i18n-static.js +162 -0
  161. package/dist/generated/json-imports/i18n.js +113 -89
  162. package/dist/generated/templates/AvatarGroupTemplate.lit.js +9 -0
  163. package/dist/generated/templates/AvatarTemplate.lit.js +9 -9
  164. package/dist/generated/templates/BadgeTemplate.lit.js +5 -6
  165. package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js +8 -0
  166. package/dist/generated/templates/BreadcrumbsTemplate.lit.js +9 -0
  167. package/dist/generated/templates/BusyIndicatorTemplate.lit.js +7 -6
  168. package/dist/generated/templates/ButtonTemplate.lit.js +6 -6
  169. package/dist/generated/templates/CalendarHeaderTemplate.lit.js +6 -4
  170. package/dist/generated/templates/CalendarTemplate.lit.js +4 -4
  171. package/dist/generated/templates/CardHeaderTemplate.lit.js +12 -0
  172. package/dist/generated/templates/CardTemplate.lit.js +5 -8
  173. package/dist/generated/templates/CarouselTemplate.lit.js +13 -12
  174. package/dist/generated/templates/CheckBoxTemplate.lit.js +7 -7
  175. package/dist/generated/templates/ColorPaletteDialogTemplate.lit.js +7 -0
  176. package/dist/generated/templates/ColorPaletteItemTemplate.lit.js +7 -0
  177. package/dist/generated/templates/ColorPalettePopoverTemplate.lit.js +8 -0
  178. package/dist/generated/templates/ColorPaletteTemplate.lit.js +12 -0
  179. package/dist/generated/templates/ColorPickerTemplate.lit.js +7 -0
  180. package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js +20 -5
  181. package/dist/generated/templates/ComboBoxTemplate.lit.js +8 -6
  182. package/dist/generated/templates/CustomListItemTemplate.lit.js +13 -13
  183. package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +7 -6
  184. package/dist/generated/templates/DatePickerTemplate.lit.js +6 -5
  185. package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js +9 -12
  186. package/dist/generated/templates/DayPickerTemplate.lit.js +13 -11
  187. package/dist/generated/templates/DialogTemplate.lit.js +9 -8
  188. package/dist/generated/templates/FileUploaderPopoverTemplate.lit.js +10 -0
  189. package/dist/generated/templates/FileUploaderTemplate.lit.js +7 -7
  190. package/dist/generated/templates/GroupHeaderListItemTemplate.lit.js +4 -4
  191. package/dist/generated/templates/IconTemplate.lit.js +6 -6
  192. package/dist/generated/templates/InputPopoverTemplate.lit.js +24 -23
  193. package/dist/generated/templates/InputTemplate.lit.js +9 -8
  194. package/dist/generated/templates/LabelTemplate.lit.js +4 -4
  195. package/dist/generated/templates/LinkTemplate.lit.js +5 -5
  196. package/dist/generated/templates/ListItemTemplate.lit.js +13 -13
  197. package/dist/generated/templates/ListTemplate.lit.js +12 -9
  198. package/dist/generated/templates/MessageStripTemplate.lit.js +6 -27
  199. package/dist/generated/templates/MonthPickerTemplate.lit.js +6 -6
  200. package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +23 -7
  201. package/dist/generated/templates/MultiComboBoxTemplate.lit.js +10 -8
  202. package/dist/generated/templates/MultiInputTemplate.lit.js +16 -0
  203. package/dist/generated/templates/PanelTemplate.lit.js +9 -6
  204. package/dist/generated/templates/PopoverTemplate.lit.js +9 -9
  205. package/dist/generated/templates/PopupBlockLayerTemplate.lit.js +7 -0
  206. package/dist/generated/templates/PopupTemplate.lit.js +4 -4
  207. package/dist/generated/templates/ProgressIndicatorTemplate.lit.js +17 -0
  208. package/dist/generated/templates/RadioButtonTemplate.lit.js +7 -7
  209. package/dist/generated/templates/RangeSliderTemplate.lit.js +13 -0
  210. package/dist/generated/templates/RatingIndicatorTemplate.lit.js +14 -0
  211. package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +16 -14
  212. package/dist/generated/templates/SegmentedButtonItemTemplate.lit.js +8 -0
  213. package/dist/generated/templates/SegmentedButtonTemplate.lit.js +4 -11
  214. package/dist/generated/templates/SelectPopoverTemplate.lit.js +20 -6
  215. package/dist/generated/templates/SelectTemplate.lit.js +6 -5
  216. package/dist/generated/templates/SliderBaseTemplate.lit.js +11 -0
  217. package/dist/generated/templates/SliderTemplate.lit.js +12 -0
  218. package/dist/generated/templates/StandardListItemTemplate.lit.js +21 -19
  219. package/dist/generated/templates/StepInputTemplate.lit.js +10 -0
  220. package/dist/generated/templates/SuggestionListItemTemplate.lit.js +27 -0
  221. package/dist/generated/templates/SwitchTemplate.lit.js +8 -6
  222. package/dist/generated/templates/TabContainerPopoverTemplate.lit.js +6 -6
  223. package/dist/generated/templates/TabContainerTemplate.lit.js +16 -14
  224. package/dist/generated/templates/TabInOverflowTemplate.lit.js +6 -17
  225. package/dist/generated/templates/TabInStripTemplate.lit.js +6 -30
  226. package/dist/generated/templates/TabSeparatorTemplate.lit.js +4 -4
  227. package/dist/generated/templates/TabTemplate.lit.js +4 -4
  228. package/dist/generated/templates/TableCellTemplate.lit.js +4 -4
  229. package/dist/generated/templates/TableColumnTemplate.lit.js +4 -4
  230. package/dist/generated/templates/TableGroupRowTemplate.lit.js +7 -0
  231. package/dist/generated/templates/TableRowTemplate.lit.js +12 -10
  232. package/dist/generated/templates/TableTemplate.lit.js +13 -8
  233. package/dist/generated/templates/TextAreaPopoverTemplate.lit.js +8 -8
  234. package/dist/generated/templates/TextAreaTemplate.lit.js +8 -8
  235. package/dist/generated/templates/TimePickerPopoverTemplate.lit.js +4 -8
  236. package/dist/generated/templates/TimePickerTemplate.lit.js +6 -5
  237. package/dist/generated/templates/TimeSelectionTemplate.lit.js +11 -0
  238. package/dist/generated/templates/TitleTemplate.lit.js +10 -10
  239. package/dist/generated/templates/ToastTemplate.lit.js +5 -4
  240. package/dist/generated/templates/ToggleButtonTemplate.lit.js +6 -6
  241. package/dist/generated/templates/TokenTemplate.lit.js +7 -5
  242. package/dist/generated/templates/TokenizerPopoverTemplate.lit.js +12 -0
  243. package/dist/generated/templates/TokenizerTemplate.lit.js +6 -6
  244. package/dist/generated/templates/TreeListItemTemplate.lit.js +21 -0
  245. package/dist/generated/templates/TreeTemplate.lit.js +8 -0
  246. package/dist/generated/templates/WheelSliderTemplate.lit.js +7 -7
  247. package/dist/generated/templates/YearPickerTemplate.lit.js +6 -6
  248. package/dist/generated/themes/Avatar.css.js +5 -5
  249. package/dist/generated/themes/AvatarGroup.css.js +8 -0
  250. package/dist/generated/themes/Badge.css.js +5 -5
  251. package/dist/generated/themes/Breadcrumbs.css.js +8 -0
  252. package/dist/generated/themes/BreadcrumbsPopover.css.js +8 -0
  253. package/dist/generated/themes/BrowserScrollbar.css.js +8 -0
  254. package/dist/generated/themes/BusyIndicator.css.js +5 -5
  255. package/dist/generated/themes/Button.css.js +5 -5
  256. package/dist/generated/themes/Button.ie11.css.js +8 -0
  257. package/dist/generated/themes/Calendar.css.js +5 -5
  258. package/dist/generated/themes/CalendarHeader.css.js +5 -5
  259. package/dist/generated/themes/Card.css.js +5 -5
  260. package/dist/generated/themes/CardHeader.css.js +8 -0
  261. package/dist/generated/themes/Carousel.css.js +5 -5
  262. package/dist/generated/themes/CheckBox.css.js +5 -5
  263. package/dist/generated/themes/ColorPalette.css.js +8 -0
  264. package/dist/generated/themes/ColorPaletteItem.css.js +8 -0
  265. package/dist/generated/themes/ColorPalettePopover.css.js +8 -0
  266. package/dist/generated/themes/ColorPaletteStaticArea.css.js +8 -0
  267. package/dist/generated/themes/ColorPicker.css.js +8 -0
  268. package/dist/generated/themes/ComboBox.css.js +5 -5
  269. package/dist/generated/themes/ComboBoxPopover.css.js +5 -5
  270. package/dist/generated/themes/CustomListItem.css.js +5 -5
  271. package/dist/generated/themes/DatePicker.css.js +5 -5
  272. package/dist/generated/themes/DatePickerPopover.css.js +5 -5
  273. package/dist/generated/themes/DateRangePicker.css.js +8 -0
  274. package/dist/generated/themes/DateTimePicker.css.js +8 -0
  275. package/dist/generated/themes/DateTimePickerPopover.css.js +5 -5
  276. package/dist/generated/themes/DayPicker.css.js +5 -5
  277. package/dist/generated/themes/Dialog.css.js +5 -5
  278. package/dist/generated/themes/FileUploader.css.js +5 -5
  279. package/dist/generated/themes/GroupHeaderListItem.css.js +5 -5
  280. package/dist/generated/themes/GrowingButton.css.js +8 -0
  281. package/dist/generated/themes/Icon.css.js +5 -5
  282. package/dist/generated/themes/Input.css.js +5 -5
  283. package/dist/generated/themes/InputIcon.css.js +5 -5
  284. package/dist/generated/themes/InvisibleTextStyles.css.js +5 -5
  285. package/dist/generated/themes/Label.css.js +5 -5
  286. package/dist/generated/themes/Link.css.js +5 -5
  287. package/dist/generated/themes/List.css.js +5 -5
  288. package/dist/generated/themes/ListItem.css.js +5 -5
  289. package/dist/generated/themes/ListItemBase.css.js +5 -5
  290. package/dist/generated/themes/MessageStrip.css.js +5 -5
  291. package/dist/generated/themes/MonthPicker.css.js +5 -5
  292. package/dist/generated/themes/MultiComboBox.css.js +5 -5
  293. package/dist/generated/themes/MultiInput.css.js +8 -0
  294. package/dist/generated/themes/Panel.css.js +5 -5
  295. package/dist/generated/themes/Popover.css.js +5 -5
  296. package/dist/generated/themes/Popup.css.js +5 -5
  297. package/dist/generated/themes/PopupGlobal.css.js +8 -0
  298. package/dist/generated/themes/PopupStaticAreaStyles.css.js +8 -0
  299. package/dist/generated/themes/PopupsCommon.css.js +8 -0
  300. package/dist/generated/themes/ProgressIndicator.css.js +8 -0
  301. package/dist/generated/themes/RadioButton.css.js +5 -5
  302. package/dist/generated/themes/RatingIndicator.css.js +8 -0
  303. package/dist/generated/themes/ResponsivePopover.css.js +5 -5
  304. package/dist/generated/themes/ResponsivePopoverCommon.css.js +5 -5
  305. package/dist/generated/themes/SegmentedButton.css.js +5 -5
  306. package/dist/generated/themes/Select.css.js +5 -5
  307. package/dist/generated/themes/SelectPopover.css.js +8 -0
  308. package/dist/generated/themes/SliderBase.css.js +8 -0
  309. package/dist/generated/themes/StepInput.css.js +8 -0
  310. package/dist/generated/themes/Suggestions.css.js +8 -0
  311. package/dist/generated/themes/Switch.css.js +5 -5
  312. package/dist/generated/themes/Tab.css.js +5 -5
  313. package/dist/generated/themes/TabContainer.css.js +5 -5
  314. package/dist/generated/themes/TabInOverflow.css.js +5 -5
  315. package/dist/generated/themes/TabInStrip.css.js +5 -5
  316. package/dist/generated/themes/Table.css.js +5 -5
  317. package/dist/generated/themes/TableCell.css.js +5 -5
  318. package/dist/generated/themes/TableColumn.css.js +5 -5
  319. package/dist/generated/themes/TableGroupRow.css.js +8 -0
  320. package/dist/generated/themes/TableRow.css.js +5 -5
  321. package/dist/generated/themes/TapHighlightColor.css.js +8 -0
  322. package/dist/generated/themes/TextArea.css.js +5 -5
  323. package/dist/generated/themes/TimePicker.css.js +5 -5
  324. package/dist/generated/themes/TimePickerPopover.css.js +5 -5
  325. package/dist/generated/themes/TimeSelection.css.js +8 -0
  326. package/dist/generated/themes/Title.css.js +5 -5
  327. package/dist/generated/themes/Toast.css.js +5 -5
  328. package/dist/generated/themes/ToggleButton.css.js +5 -5
  329. package/dist/generated/themes/ToggleButton.ie11.css.js +8 -0
  330. package/dist/generated/themes/Token.css.js +5 -5
  331. package/dist/generated/themes/Tokenizer.css.js +5 -5
  332. package/dist/generated/themes/Tree.css.js +8 -0
  333. package/dist/generated/themes/TreeListItem.css.js +8 -0
  334. package/dist/generated/themes/ValueStateMessage.css.js +5 -5
  335. package/dist/generated/themes/WheelSlider.css.js +5 -5
  336. package/dist/generated/themes/YearPicker.css.js +5 -5
  337. package/dist/generated/themes/sap_belize/parameters-bundle.css.js +1 -1
  338. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js +1 -1
  339. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js +1 -1
  340. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  341. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  342. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -0
  343. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -0
  344. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -0
  345. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -0
  346. package/dist/i18n/messagebundle.properties +335 -0
  347. package/dist/i18n/messagebundle_ar.properties +224 -0
  348. package/dist/i18n/messagebundle_bg.properties +224 -0
  349. package/dist/i18n/messagebundle_ca.properties +224 -0
  350. package/dist/i18n/messagebundle_cs.properties +224 -0
  351. package/dist/i18n/messagebundle_cy.properties +224 -0
  352. package/dist/i18n/messagebundle_da.properties +224 -0
  353. package/dist/i18n/messagebundle_de.properties +224 -0
  354. package/dist/i18n/messagebundle_el.properties +224 -0
  355. package/dist/i18n/messagebundle_en.properties +224 -0
  356. package/dist/i18n/messagebundle_en_GB.properties +224 -0
  357. package/dist/i18n/messagebundle_en_US_sappsd.properties +224 -0
  358. package/dist/i18n/messagebundle_en_US_saprigi.properties +224 -0
  359. package/dist/i18n/messagebundle_en_US_saptrc.properties +224 -0
  360. package/dist/i18n/messagebundle_es.properties +224 -0
  361. package/dist/i18n/messagebundle_es_MX.properties +224 -0
  362. package/dist/i18n/messagebundle_et.properties +224 -0
  363. package/dist/i18n/messagebundle_fi.properties +224 -0
  364. package/dist/i18n/messagebundle_fr.properties +224 -0
  365. package/dist/i18n/messagebundle_fr_CA.properties +224 -0
  366. package/dist/i18n/messagebundle_hi.properties +224 -0
  367. package/dist/i18n/messagebundle_hr.properties +224 -0
  368. package/dist/i18n/messagebundle_hu.properties +224 -0
  369. package/dist/i18n/messagebundle_id.properties +224 -0
  370. package/dist/i18n/messagebundle_in.properties +172 -0
  371. package/dist/i18n/messagebundle_it.properties +224 -0
  372. package/dist/i18n/messagebundle_iw.properties +224 -0
  373. package/dist/i18n/messagebundle_ja.properties +224 -0
  374. package/dist/i18n/messagebundle_kk.properties +224 -0
  375. package/dist/i18n/messagebundle_ko.properties +224 -0
  376. package/dist/i18n/messagebundle_lt.properties +224 -0
  377. package/dist/i18n/messagebundle_lv.properties +224 -0
  378. package/dist/i18n/messagebundle_ms.properties +224 -0
  379. package/dist/i18n/messagebundle_nl.properties +224 -0
  380. package/dist/i18n/messagebundle_no.properties +224 -0
  381. package/dist/i18n/messagebundle_pl.properties +224 -0
  382. package/dist/i18n/messagebundle_pt.properties +224 -0
  383. package/dist/i18n/messagebundle_pt_PT.properties +224 -0
  384. package/dist/i18n/messagebundle_ro.properties +224 -0
  385. package/dist/i18n/messagebundle_ru.properties +224 -0
  386. package/dist/i18n/messagebundle_sh.properties +224 -0
  387. package/dist/i18n/messagebundle_sk.properties +224 -0
  388. package/dist/i18n/messagebundle_sl.properties +224 -0
  389. package/dist/i18n/messagebundle_sv.properties +224 -0
  390. package/dist/i18n/messagebundle_th.properties +224 -0
  391. package/dist/i18n/messagebundle_tr.properties +224 -0
  392. package/dist/i18n/messagebundle_uk.properties +224 -0
  393. package/dist/i18n/messagebundle_vi.properties +224 -0
  394. package/dist/i18n/messagebundle_zh_CN.properties +224 -0
  395. package/dist/i18n/messagebundle_zh_TW.properties +224 -0
  396. package/dist/popup-utils/OpenedPopupsRegistry.js +18 -13
  397. package/dist/popup-utils/PopoverRegistry.js +55 -21
  398. package/dist/timepicker-utils/TimeSlider.js +15 -13
  399. package/dist/types/{AvatarBackgroundColor.js → AvatarColorScheme.js} +9 -9
  400. package/dist/types/AvatarGroupType.js +43 -0
  401. package/dist/types/AvatarShape.js +1 -1
  402. package/dist/types/AvatarSize.js +1 -1
  403. package/dist/types/BreadcrumbsDesign.js +42 -0
  404. package/dist/types/BreadcrumbsSeparatorStyle.js +69 -0
  405. package/dist/types/BusyIndicatorSize.js +1 -1
  406. package/dist/types/ButtonDesign.js +8 -1
  407. package/dist/types/CalendarSelectionMode.js +47 -0
  408. package/dist/types/CarouselArrowsPlacement.js +3 -3
  409. package/dist/types/GrowingMode.js +48 -0
  410. package/dist/types/InputType.js +7 -7
  411. package/dist/types/LinkDesign.js +1 -1
  412. package/dist/types/ListGrowingMode.js +15 -0
  413. package/dist/types/ListItemType.js +2 -2
  414. package/dist/types/ListMode.js +9 -1
  415. package/dist/types/ListSeparators.js +1 -1
  416. package/dist/types/{MessageStripType.js → MessageStripDesign.js} +7 -7
  417. package/dist/types/PanelAccessibleRole.js +1 -1
  418. package/dist/types/PopoverHorizontalAlign.js +1 -1
  419. package/dist/types/PopoverPlacementType.js +2 -2
  420. package/dist/types/PopoverVerticalAlign.js +1 -2
  421. package/dist/types/Priority.js +55 -0
  422. package/dist/types/SemanticColor.js +1 -1
  423. package/dist/types/SwitchDesign.js +40 -0
  424. package/dist/types/TabContainerTabsPlacement.js +5 -5
  425. package/dist/types/TabLayout.js +1 -1
  426. package/dist/types/TableGrowingMode.js +15 -0
  427. package/dist/types/TableMode.js +47 -0
  428. package/dist/types/TableRowType.js +40 -0
  429. package/dist/types/TitleLevel.js +1 -1
  430. package/dist/types/ToastPlacement.js +1 -2
  431. package/dist/types/WrappingType.js +41 -0
  432. package/dist/webcomponentsjs/CHANGELOG.md +61 -0
  433. package/dist/webcomponentsjs/README.md +64 -47
  434. package/dist/webcomponentsjs/bundles/webcomponents-ce.js +38 -38
  435. package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +1 -1
  436. package/dist/webcomponentsjs/bundles/webcomponents-pf_dom.js +60 -0
  437. package/dist/webcomponentsjs/bundles/webcomponents-pf_dom.js.map +1 -0
  438. package/dist/webcomponentsjs/bundles/webcomponents-pf_js.js +95 -0
  439. package/dist/webcomponentsjs/bundles/webcomponents-pf_js.js.map +1 -0
  440. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +292 -229
  441. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +1 -1
  442. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +190 -170
  443. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +1 -1
  444. package/dist/webcomponentsjs/bundles/webcomponents-sd.js +151 -132
  445. package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +1 -1
  446. package/dist/webcomponentsjs/custom-elements-es5-adapter.js +2 -2
  447. package/dist/webcomponentsjs/webcomponents-bundle.js +302 -230
  448. package/dist/webcomponentsjs/webcomponents-bundle.js.map +1 -1
  449. package/dist/webcomponentsjs/webcomponents-loader.js +49 -28
  450. package/package-scripts.js +1 -0
  451. package/package.json +23 -6
  452. package/src/Assets-static.js +6 -0
  453. package/src/Assets.js +7 -0
  454. package/src/Avatar.hbs +20 -0
  455. package/src/Avatar.js +392 -0
  456. package/src/AvatarGroup.hbs +30 -0
  457. package/src/AvatarGroup.js +603 -0
  458. package/src/Badge.hbs +14 -0
  459. package/src/Badge.js +165 -0
  460. package/src/Breadcrumbs.hbs +42 -0
  461. package/src/Breadcrumbs.js +563 -0
  462. package/src/BreadcrumbsItem.js +109 -0
  463. package/src/BreadcrumbsPopover.hbs +28 -0
  464. package/src/BusyIndicator.hbs +32 -0
  465. package/src/BusyIndicator.js +269 -0
  466. package/src/Button.hbs +45 -0
  467. package/src/Button.js +463 -0
  468. package/src/Calendar.hbs +69 -0
  469. package/src/Calendar.js +489 -0
  470. package/src/CalendarDate.js +45 -0
  471. package/src/CalendarHeader.hbs +54 -0
  472. package/src/CalendarHeader.js +209 -0
  473. package/src/CalendarPart.js +111 -0
  474. package/src/Card.hbs +14 -0
  475. package/src/Card.js +160 -0
  476. package/src/CardHeader.hbs +35 -0
  477. package/src/CardHeader.js +288 -0
  478. package/src/Carousel.hbs +85 -0
  479. package/src/Carousel.js +681 -0
  480. package/src/CheckBox.hbs +44 -0
  481. package/src/CheckBox.js +424 -0
  482. package/src/ColorPalette.hbs +52 -0
  483. package/src/ColorPalette.js +493 -0
  484. package/src/ColorPaletteDialog.hbs +18 -0
  485. package/src/ColorPaletteItem.hbs +11 -0
  486. package/src/ColorPaletteItem.js +137 -0
  487. package/src/ColorPalettePopover.hbs +29 -0
  488. package/src/ColorPalettePopover.js +219 -0
  489. package/src/ColorPicker.hbs +98 -0
  490. package/src/ColorPicker.js +524 -0
  491. package/src/ComboBox.hbs +49 -0
  492. package/src/ComboBox.js +1041 -0
  493. package/src/ComboBoxFilters.js +40 -0
  494. package/src/ComboBoxGroupItem.js +70 -0
  495. package/src/ComboBoxItem.js +49 -0
  496. package/src/ComboBoxPopover.hbs +125 -0
  497. package/src/CustomListItem.hbs +5 -0
  498. package/src/CustomListItem.js +99 -0
  499. package/src/DateComponentBase.js +170 -0
  500. package/src/DatePicker.hbs +44 -0
  501. package/src/DatePicker.js +823 -0
  502. package/src/DatePickerPopover.hbs +63 -0
  503. package/src/DateRangePicker.js +328 -0
  504. package/src/DateTimePicker.js +430 -0
  505. package/src/DateTimePickerPopover.hbs +74 -0
  506. package/src/DayPicker.hbs +66 -0
  507. package/src/DayPicker.js +754 -0
  508. package/src/Dialog.hbs +35 -0
  509. package/src/Dialog.js +601 -0
  510. package/src/DurationPicker.js +312 -0
  511. package/src/FileUploader.hbs +40 -0
  512. package/src/FileUploader.js +532 -0
  513. package/src/FileUploaderPopover.hbs +25 -0
  514. package/src/GroupHeaderListItem.hbs +15 -0
  515. package/src/GroupHeaderListItem.js +94 -0
  516. package/src/Icon.hbs +25 -0
  517. package/src/Icon.js +373 -0
  518. package/src/Input.hbs +78 -0
  519. package/src/Input.js +1381 -0
  520. package/src/InputPopover.hbs +118 -0
  521. package/src/Interfaces.js +192 -0
  522. package/src/Label.hbs +13 -0
  523. package/src/Label.js +152 -0
  524. package/src/Link.hbs +20 -0
  525. package/src/Link.js +349 -0
  526. package/src/List.hbs +89 -0
  527. package/src/List.js +1056 -0
  528. package/src/ListItem.hbs +102 -0
  529. package/src/ListItem.js +371 -0
  530. package/src/ListItemBase.js +179 -0
  531. package/src/MessageStrip.hbs +34 -0
  532. package/src/MessageStrip.js +227 -0
  533. package/src/MonthPicker.hbs +29 -0
  534. package/src/MonthPicker.js +299 -0
  535. package/src/MultiComboBox.hbs +78 -0
  536. package/src/MultiComboBox.js +1091 -0
  537. package/src/MultiComboBoxItem.js +43 -0
  538. package/src/MultiComboBoxPopover.hbs +133 -0
  539. package/src/MultiInput.hbs +41 -0
  540. package/src/MultiInput.js +301 -0
  541. package/src/Option.js +115 -0
  542. package/src/Panel.hbs +63 -0
  543. package/src/Panel.js +462 -0
  544. package/src/Popover.hbs +25 -0
  545. package/src/Popover.js +786 -0
  546. package/src/Popup.hbs +34 -0
  547. package/src/Popup.js +567 -0
  548. package/src/PopupBlockLayer.hbs +7 -0
  549. package/src/ProgressIndicator.hbs +35 -0
  550. package/src/ProgressIndicator.js +235 -0
  551. package/src/RadioButton.hbs +33 -0
  552. package/src/RadioButton.js +494 -0
  553. package/src/RadioButtonGroup.js +205 -0
  554. package/src/RangeSlider.hbs +70 -0
  555. package/src/RangeSlider.js +769 -0
  556. package/src/RatingIndicator.hbs +33 -0
  557. package/src/RatingIndicator.js +291 -0
  558. package/src/ResponsivePopover.hbs +39 -0
  559. package/src/ResponsivePopover.js +206 -0
  560. package/src/SegmentedButton.hbs +17 -0
  561. package/src/SegmentedButton.js +290 -0
  562. package/src/SegmentedButtonItem.hbs +42 -0
  563. package/src/SegmentedButtonItem.js +109 -0
  564. package/src/Select.hbs +45 -0
  565. package/src/Select.js +834 -0
  566. package/src/SelectPopover.hbs +89 -0
  567. package/src/Slider.hbs +42 -0
  568. package/src/Slider.js +320 -0
  569. package/src/SliderBase.hbs +38 -0
  570. package/src/SliderBase.js +842 -0
  571. package/src/StandardListItem.hbs +44 -0
  572. package/src/StandardListItem.js +191 -0
  573. package/src/StepInput.hbs +80 -0
  574. package/src/StepInput.js +684 -0
  575. package/src/SuggestionGroupItem.js +64 -0
  576. package/src/SuggestionItem.js +146 -0
  577. package/src/SuggestionListItem.hbs +33 -0
  578. package/src/SuggestionListItem.js +76 -0
  579. package/src/Switch.hbs +50 -0
  580. package/src/Switch.js +262 -0
  581. package/src/Tab.hbs +3 -0
  582. package/src/Tab.js +334 -0
  583. package/src/TabContainer.hbs +93 -0
  584. package/src/TabContainer.js +679 -0
  585. package/src/TabContainerPopover.hbs +24 -0
  586. package/src/TabInOverflow.hbs +22 -0
  587. package/src/TabInStrip.hbs +43 -0
  588. package/src/TabSeparator.hbs +1 -0
  589. package/src/TabSeparator.js +44 -0
  590. package/src/Table.hbs +99 -0
  591. package/src/Table.js +761 -0
  592. package/src/TableCell.hbs +7 -0
  593. package/src/TableCell.js +88 -0
  594. package/src/TableColumn.hbs +8 -0
  595. package/src/TableColumn.js +136 -0
  596. package/src/TableGroupRow.hbs +12 -0
  597. package/src/TableGroupRow.js +160 -0
  598. package/src/TableRow.hbs +61 -0
  599. package/src/TableRow.js +388 -0
  600. package/src/TextArea.hbs +50 -0
  601. package/src/TextArea.js +691 -0
  602. package/src/TextAreaPopover.hbs +28 -0
  603. package/src/TimePicker.hbs +35 -0
  604. package/src/TimePicker.js +166 -0
  605. package/src/TimePickerBase.js +463 -0
  606. package/src/TimePickerPopover.hbs +34 -0
  607. package/src/TimeSelection.hbs +60 -0
  608. package/src/TimeSelection.js +493 -0
  609. package/src/Title.hbs +47 -0
  610. package/src/Title.js +132 -0
  611. package/src/Toast.hbs +13 -0
  612. package/src/Toast.js +243 -0
  613. package/src/ToggleButton.hbs +5 -0
  614. package/src/ToggleButton.js +84 -0
  615. package/src/Token.hbs +30 -0
  616. package/src/Token.js +219 -0
  617. package/src/Tokenizer.hbs +27 -0
  618. package/src/Tokenizer.js +414 -0
  619. package/src/TokenizerPopover.hbs +50 -0
  620. package/src/Tree.hbs +42 -0
  621. package/src/Tree.js +443 -0
  622. package/src/TreeItem.js +168 -0
  623. package/src/TreeListItem.hbs +48 -0
  624. package/src/TreeListItem.js +332 -0
  625. package/src/WheelSlider.hbs +48 -0
  626. package/src/WheelSlider.js +435 -0
  627. package/src/YearPicker.hbs +27 -0
  628. package/src/YearPicker.js +324 -0
  629. package/src/features/ColorPaletteMoreColors.js +42 -0
  630. package/src/features/InputElementsFormSupport.js +88 -0
  631. package/src/features/InputSuggestions.js +530 -0
  632. package/src/i18n/messagebundle.properties +335 -0
  633. package/src/i18n/messagebundle_ar.properties +224 -0
  634. package/src/i18n/messagebundle_bg.properties +224 -0
  635. package/src/i18n/messagebundle_ca.properties +224 -0
  636. package/src/i18n/messagebundle_cs.properties +224 -0
  637. package/src/i18n/messagebundle_cy.properties +224 -0
  638. package/src/i18n/messagebundle_da.properties +224 -0
  639. package/src/i18n/messagebundle_de.properties +224 -0
  640. package/src/i18n/messagebundle_el.properties +224 -0
  641. package/src/i18n/messagebundle_en.properties +224 -0
  642. package/src/i18n/messagebundle_en_GB.properties +224 -0
  643. package/src/i18n/messagebundle_en_US_sappsd.properties +224 -0
  644. package/src/i18n/messagebundle_en_US_saprigi.properties +224 -0
  645. package/src/i18n/messagebundle_en_US_saptrc.properties +224 -0
  646. package/src/i18n/messagebundle_es.properties +224 -0
  647. package/src/i18n/messagebundle_es_MX.properties +224 -0
  648. package/src/i18n/messagebundle_et.properties +224 -0
  649. package/src/i18n/messagebundle_fi.properties +224 -0
  650. package/src/i18n/messagebundle_fr.properties +224 -0
  651. package/src/i18n/messagebundle_fr_CA.properties +224 -0
  652. package/src/i18n/messagebundle_hi.properties +224 -0
  653. package/src/i18n/messagebundle_hr.properties +224 -0
  654. package/src/i18n/messagebundle_hu.properties +224 -0
  655. package/src/i18n/messagebundle_id.properties +224 -0
  656. package/src/i18n/messagebundle_in.properties +172 -0
  657. package/src/i18n/messagebundle_it.properties +224 -0
  658. package/src/i18n/messagebundle_iw.properties +224 -0
  659. package/src/i18n/messagebundle_ja.properties +224 -0
  660. package/src/i18n/messagebundle_kk.properties +224 -0
  661. package/src/i18n/messagebundle_ko.properties +224 -0
  662. package/src/i18n/messagebundle_lt.properties +224 -0
  663. package/src/i18n/messagebundle_lv.properties +224 -0
  664. package/src/i18n/messagebundle_ms.properties +224 -0
  665. package/src/i18n/messagebundle_nl.properties +224 -0
  666. package/src/i18n/messagebundle_no.properties +224 -0
  667. package/src/i18n/messagebundle_pl.properties +224 -0
  668. package/src/i18n/messagebundle_pt.properties +224 -0
  669. package/src/i18n/messagebundle_pt_PT.properties +224 -0
  670. package/src/i18n/messagebundle_ro.properties +224 -0
  671. package/src/i18n/messagebundle_ru.properties +224 -0
  672. package/src/i18n/messagebundle_sh.properties +224 -0
  673. package/src/i18n/messagebundle_sk.properties +224 -0
  674. package/src/i18n/messagebundle_sl.properties +224 -0
  675. package/src/i18n/messagebundle_sv.properties +224 -0
  676. package/src/i18n/messagebundle_th.properties +224 -0
  677. package/src/i18n/messagebundle_tr.properties +224 -0
  678. package/src/i18n/messagebundle_uk.properties +224 -0
  679. package/src/i18n/messagebundle_vi.properties +224 -0
  680. package/src/i18n/messagebundle_zh_CN.properties +224 -0
  681. package/src/i18n/messagebundle_zh_TW.properties +224 -0
  682. package/src/popup-utils/OpenedPopupsRegistry.js +50 -0
  683. package/src/popup-utils/PopoverRegistry.js +145 -0
  684. package/src/timepicker-utils/TimeSlider.js +103 -0
  685. package/src/types/AvatarColorScheme.js +104 -0
  686. package/src/types/AvatarGroupType.js +43 -0
  687. package/src/types/AvatarShape.js +41 -0
  688. package/src/types/AvatarSize.js +67 -0
  689. package/src/types/BreadcrumbsDesign.js +42 -0
  690. package/src/types/BreadcrumbsSeparatorStyle.js +69 -0
  691. package/src/types/BusyIndicatorSize.js +47 -0
  692. package/src/types/ButtonDesign.js +68 -0
  693. package/src/types/CalendarSelectionMode.js +47 -0
  694. package/src/types/CarouselArrowsPlacement.js +40 -0
  695. package/src/types/GrowingMode.js +48 -0
  696. package/src/types/InputType.js +68 -0
  697. package/src/types/LinkDesign.js +47 -0
  698. package/src/types/ListGrowingMode.js +15 -0
  699. package/src/types/ListItemType.js +47 -0
  700. package/src/types/ListMode.js +77 -0
  701. package/src/types/ListSeparators.js +46 -0
  702. package/src/types/MessageStripDesign.js +54 -0
  703. package/src/types/PanelAccessibleRole.js +48 -0
  704. package/src/types/PopoverHorizontalAlign.js +54 -0
  705. package/src/types/PopoverPlacementType.js +54 -0
  706. package/src/types/PopoverVerticalAlign.js +54 -0
  707. package/src/types/Priority.js +55 -0
  708. package/src/types/SemanticColor.js +61 -0
  709. package/src/types/SwitchDesign.js +40 -0
  710. package/src/types/TabContainerTabsPlacement.js +40 -0
  711. package/src/types/TabLayout.js +40 -0
  712. package/src/types/TableGrowingMode.js +15 -0
  713. package/src/types/TableMode.js +47 -0
  714. package/src/types/TableRowType.js +40 -0
  715. package/src/types/TitleLevel.js +68 -0
  716. package/src/types/ToastPlacement.js +91 -0
  717. package/src/types/WrappingType.js +41 -0
  718. package/dist/Timeline.js +0 -97
  719. package/dist/TimelineItem.js +0 -161
  720. package/dist/generated/templates/ComboBoxItemTemplate.lit.js +0 -7
  721. package/dist/generated/templates/DurationPickerPopoverTemplate.lit.js +0 -8
  722. package/dist/generated/templates/DurationPickerTemplate.lit.js +0 -8
  723. package/dist/generated/templates/TimelineItemTemplate.lit.js +0 -12
  724. package/dist/generated/templates/TimelineTemplate.lit.js +0 -8
  725. package/dist/generated/themes/ComboBoxItem.css.js +0 -8
  726. package/dist/generated/themes/DurationPicker.css.js +0 -8
  727. package/dist/generated/themes/DurationPickerPopover.css.js +0 -8
  728. package/dist/generated/themes/Timeline.css.js +0 -8
  729. package/dist/generated/themes/TimelineItem.css.js +0 -8
  730. package/dist/popup-utils/PopupUtils.js +0 -55
  731. package/dist/types/AvatarFitType.js +0 -40
  732. package/dist/webcomponentsjs/package.json +0 -46
package/dist/Popover.js CHANGED
@@ -1,16 +1,18 @@
1
- import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
- import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
3
- import { getFirstFocusableElement, getLastFocusableElement } from "@ui5/webcomponents-base/dist/util/FocusableElements.js";
4
1
  import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
5
- import PopoverTemplate from "./generated/templates/PopoverTemplate.lit.js";
2
+ import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
3
+ import { getClosedPopupParent } from "@ui5/webcomponents-base/dist/util/PopupUtils.js";
4
+ import clamp from "@ui5/webcomponents-base/dist/util/clamp.js";
5
+ import Popup from "./Popup.js";
6
6
  import PopoverPlacementType from "./types/PopoverPlacementType.js";
7
7
  import PopoverVerticalAlign from "./types/PopoverVerticalAlign.js";
8
8
  import PopoverHorizontalAlign from "./types/PopoverHorizontalAlign.js";
9
-
10
9
  import { addOpenedPopover, removeOpenedPopover } from "./popup-utils/PopoverRegistry.js";
11
- import { getFocusedElement, getClosedPopupParent, getNextZIndex } from "./popup-utils/PopupUtils.js";
12
10
 
11
+ // Template
12
+ import PopoverTemplate from "./generated/templates/PopoverTemplate.lit.js";
13
13
  // Styles
14
+ import browserScrollbarCSS from "./generated/themes/BrowserScrollbar.css.js";
15
+ import PopupsCommonCss from "./generated/themes/PopupsCommon.css.js";
14
16
  import PopoverCss from "./generated/themes/Popover.css.js";
15
17
 
16
18
  const arrowSize = 8;
@@ -21,17 +23,6 @@ const arrowSize = 8;
21
23
  const metadata = {
22
24
  tag: "ui5-popover",
23
25
  properties: /** @lends sap.ui.webcomponents.main.Popover.prototype */ {
24
- /**
25
- * Defines the ID of the HTML Element, which will get the initial focus.
26
- *
27
- * @type {string}
28
- * @defaultvalue ""
29
- * @public
30
- */
31
- initialFocus: {
32
- type: String,
33
- },
34
-
35
26
  /**
36
27
  * Defines the header text.
37
28
  * <br><br>
@@ -46,7 +37,7 @@ const metadata = {
46
37
  },
47
38
 
48
39
  /**
49
- * Determines on which side the <code>ui5-popover</code> is placed at.
40
+ * Determines on which side the component is placed at.
50
41
  * <br><br>
51
42
  * Available options are:
52
43
  * <ul>
@@ -66,7 +57,7 @@ const metadata = {
66
57
  },
67
58
 
68
59
  /**
69
- * Determines the horizontal alignment of the <code>ui5-popover</code>.
60
+ * Determines the horizontal alignment of the component.
70
61
  * <br><br>
71
62
  * Available options are:
72
63
  * <ul>
@@ -86,7 +77,7 @@ const metadata = {
86
77
  },
87
78
 
88
79
  /**
89
- * Determines the vertical alignment of the <code>ui5-popover</code>.
80
+ * Determines the vertical alignment of the component.
90
81
  * <br><br>
91
82
  * Available options are:
92
83
  * <ul>
@@ -106,7 +97,7 @@ const metadata = {
106
97
  },
107
98
 
108
99
  /**
109
- * Defines whether the <code>ui5-popover</code> should close when
100
+ * Defines whether the component should close when
110
101
  * clicking/tapping outside of the popover.
111
102
  * If enabled, it blocks any interaction with the background.
112
103
  *
@@ -119,18 +110,30 @@ const metadata = {
119
110
  },
120
111
 
121
112
  /**
122
- * Determines whether the <code>ui5-popover</code> arrow is hidden.
113
+ * Defines whether the block layer will be shown if modal property is set to true.
114
+ * @type {boolean}
115
+ * @defaultvalue false
116
+ * @public
117
+ * @since 1.0.0-rc.10
118
+ */
119
+ hideBackdrop: {
120
+ type: Boolean,
121
+ },
122
+
123
+ /**
124
+ * Determines whether the component arrow is hidden.
123
125
  *
124
126
  * @type {boolean}
125
127
  * @defaultvalue false
126
128
  * @public
129
+ * @since 1.0.0-rc.15
127
130
  */
128
- noArrow: {
131
+ hideArrow: {
129
132
  type: Boolean,
130
133
  },
131
134
 
132
135
  /**
133
- * Determines if there is no enough space, the <code>ui5-popover</code> can be placed
136
+ * Determines if there is no enough space, the component can be placed
134
137
  * over the target.
135
138
  *
136
139
  * @type {boolean}
@@ -141,6 +144,17 @@ const metadata = {
141
144
  type: Boolean,
142
145
  },
143
146
 
147
+ /**
148
+ * Defines whether the content is scrollable.
149
+ *
150
+ * @type {boolean}
151
+ * @defaultvalue false
152
+ * @private
153
+ */
154
+ disableScrolling: {
155
+ type: Boolean,
156
+ },
157
+
144
158
  /**
145
159
  * Sets the X translation of the arrow
146
160
  *
@@ -173,34 +187,17 @@ const metadata = {
173
187
  defaultValue: PopoverPlacementType.Right,
174
188
  },
175
189
 
176
- /**
177
- * Defines whether the <code>ui5-popover</code> is open
178
- *
179
- * @private
180
- */
181
- opened: { type: Boolean },
182
-
183
- _maxContentHeight: { type: Integer },
184
-
185
- /**
186
- * @private
187
- */
188
- _disableInitialFocus: {
189
- type: Boolean,
190
+ _maxContentHeight: {
191
+ type: Integer,
192
+ noAttribute: true,
193
+ },
194
+ _maxContentWidth: {
195
+ type: Integer,
196
+ noAttribute: true,
190
197
  },
191
198
  },
192
199
  managedSlots: true,
193
200
  slots: /** @lends sap.ui.webcomponents.main.Popover.prototype */ {
194
- /**
195
- * Defines the content of the Web Component.
196
- * @type {Node[]}
197
- * @slot
198
- * @public
199
- */
200
- "default": {
201
- type: HTMLElement,
202
- },
203
-
204
201
  /**
205
202
  * Defines the header HTML Element.
206
203
  *
@@ -224,40 +221,6 @@ const metadata = {
224
221
  },
225
222
  },
226
223
  events: /** @lends sap.ui.webcomponents.main.Popover.prototype */ {
227
- /**
228
- * Fired before the component is opened.
229
- *
230
- * @public
231
- * @event
232
- */
233
- beforeOpen: {},
234
-
235
- /**
236
- * Fired after the component is opened.
237
- *
238
- * @public
239
- * @event
240
- */
241
- afterOpen: {},
242
-
243
- /**
244
- * Fired before the component is closed.
245
- *
246
- * @public
247
- * @event
248
- * @param {Boolean} escPressed Indicates that <code>ESC</code> key has triggered the event.
249
- */
250
- beforeClose: {
251
- escPressed: { type: Boolean },
252
- },
253
-
254
- /**
255
- * Fired after the component is closed.
256
- *
257
- * @public
258
- * @event
259
- */
260
- afterClose: {},
261
224
  },
262
225
  };
263
226
 
@@ -292,135 +255,84 @@ const metadata = {
292
255
  * @constructor
293
256
  * @author SAP SE
294
257
  * @alias sap.ui.webcomponents.main.Popover
295
- * @extends UI5Element
258
+ * @extends Popup
296
259
  * @tagname ui5-popover
297
260
  * @since 1.0.0-rc.6
298
261
  * @public
299
262
  */
300
- class Popover extends UI5Element {
301
- static get metadata() {
302
- return metadata;
263
+ class Popover extends Popup {
264
+ constructor() {
265
+ super();
266
+
267
+ this._handleResize = this.handleResize.bind(this);
303
268
  }
304
269
 
305
- static get render() {
306
- return litRender;
270
+ static get metadata() {
271
+ return metadata;
307
272
  }
308
273
 
309
274
  static get styles() {
310
- return PopoverCss;
275
+ return [browserScrollbarCSS, PopupsCommonCss, PopoverCss];
311
276
  }
312
277
 
313
278
  static get template() {
314
279
  return PopoverTemplate;
315
280
  }
316
281
 
317
- forwardToFirst() {
318
- const firstFocusable = getFirstFocusableElement(this.contentDOM);
319
-
320
- if (firstFocusable) {
321
- firstFocusable.focus();
322
- }
282
+ static get VIEWPORT_MARGIN() {
283
+ return 10; // px
323
284
  }
324
285
 
325
- forwardToLast() {
326
- const lastFocusable = getLastFocusableElement(this.contentDOM);
286
+ onEnterDOM() {
287
+ ResizeHandler.register(this, this._handleResize);
288
+ }
327
289
 
328
- if (lastFocusable) {
329
- lastFocusable.focus();
330
- }
290
+ onExitDOM() {
291
+ ResizeHandler.deregister(this, this._handleResize);
331
292
  }
332
293
 
333
294
  isOpenerClicked(event) {
334
295
  const target = event.target;
335
- return target === this._opener || (target.getFocusDomRef && target.getFocusDomRef() === this._opener);
296
+ return target === this._opener || (target.getFocusDomRef && target.getFocusDomRef() === this._opener) || event.composedPath().indexOf(this._opener) > -1;
336
297
  }
337
298
 
338
299
  /**
339
- * Opens the popover.
340
- * @param {HTMLElement} opener the element that the popover is opened by
300
+ * Shows the popover.
301
+ * @param {HTMLElement} opener the element that the popover is shown at
302
+ * @param {boolean} preventInitialFocus prevents applying the focus inside the popover
341
303
  * @public
304
+ * @async
305
+ * @returns {Promise} Resolved when the popover is open
342
306
  */
343
- openBy(opener) {
307
+ async showAt(opener, preventInitialFocus = false) {
344
308
  if (!opener || this.opened) {
345
309
  return;
346
310
  }
347
311
 
348
312
  this._opener = opener;
349
- this._focusedElementBeforeOpen = getFocusedElement();
350
- this.style.zIndex = getNextZIndex();
351
-
352
- this.fireEvent("beforeOpen", {});
353
- this.reposition();
354
- this.applyInitialFocus();
313
+ this._openerRect = opener.getBoundingClientRect();
355
314
 
356
- addOpenedPopover(this);
357
-
358
- this.opened = true;
359
- this.fireEvent("afterOpen", {});
315
+ await super._open(preventInitialFocus);
360
316
  }
361
317
 
362
318
  /**
363
- * Closes the popover.
364
- * @public
319
+ * Override for the _addOpenedPopup hook, which would otherwise just call addOpenedPopup(this)
320
+ * @private
365
321
  */
366
- close(escPressed = false, preventRegitryUpdate = false, preventFocusRestore = false) {
367
- if (!this.opened) {
368
- return;
369
- }
370
-
371
- this.fireEvent("beforeClose", {
372
- escPressed,
373
- }, true);
374
-
375
-
376
- this.opened = false;
377
-
378
- if (!preventRegitryUpdate) {
379
- removeOpenedPopover(this);
380
- }
381
-
382
- if (!preventFocusRestore) {
383
- this.resetFocus();
384
- }
385
-
386
- this.hide();
387
- this.fireEvent("afterClose", {});
388
- }
389
-
390
- get focusedElement() {
391
- let element = document.activeElement;
392
-
393
- while (element.shadowRoot && element.shadowRoot.activeElement) {
394
- element = element.shadowRoot.activeElement;
395
- }
396
-
397
- return (element && typeof element.focus === "function") ? element : null;
398
- }
399
-
400
- applyInitialFocus() {
401
- if (this._disableInitialFocus) {
402
- return;
403
- }
404
-
405
- const element = this.getRootNode().getElementById(this.initialFocus) || document.getElementById(this.initialFocus) || getFirstFocusableElement(this.contentDOM);
406
-
407
- if (element) {
408
- element.focus();
409
- }
322
+ _addOpenedPopup() {
323
+ addOpenedPopover(this);
410
324
  }
411
325
 
412
- resetFocus() {
413
- if (!this._focusedElementBeforeOpen) {
414
- return;
415
- }
416
-
417
- this._focusedElementBeforeOpen.focus();
418
- this._focusedElementBeforeOpen = null;
326
+ /**
327
+ * Override for the _removeOpenedPopup hook, which would otherwise just call removeOpenedPopup(this)
328
+ * @private
329
+ */
330
+ _removeOpenedPopup() {
331
+ removeOpenedPopover(this);
419
332
  }
420
333
 
421
- shouldCloseDueOverflow(placement, openerRect) {
334
+ shouldCloseDueToOverflow(placement, openerRect) {
422
335
  const threshold = 32;
423
-
424
336
  const limits = {
425
337
  "Right": openerRect.right,
426
338
  "Left": openerRect.left,
@@ -432,7 +344,7 @@ class Popover extends UI5Element {
432
344
  let overflowsBottom = false;
433
345
  let overflowsTop = false;
434
346
 
435
- if (closedPopupParent.openBy) {
347
+ if (closedPopupParent.showAt) {
436
348
  const contentRect = closedPopupParent.contentDOM.getBoundingClientRect();
437
349
  overflowsBottom = openerRect.top > (contentRect.top + contentRect.height);
438
350
  overflowsTop = (openerRect.top + openerRect.height) < contentRect.top;
@@ -441,73 +353,133 @@ class Popover extends UI5Element {
441
353
  return (limits[placement] < 0 || (limits[placement] + threshold > closedPopupParent.innerHeight)) || overflowsBottom || overflowsTop;
442
354
  }
443
355
 
444
- reposition() {
445
- const popoverSize = this.popoverSize;
446
- const openerRect = this._opener.getBoundingClientRect();
447
- const placement = this.calcPlacement(openerRect, popoverSize);
448
- const streching = this.horizontalAlign === PopoverHorizontalAlign.Stretch;
356
+ shouldCloseDueToNoOpener(openerRect) {
357
+ return openerRect.top === 0
358
+ && openerRect.bottom === 0
359
+ && openerRect.left === 0
360
+ && openerRect.right === 0;
361
+ }
449
362
 
450
- if (this._preventRepositionAndClose) {
451
- return this.close();
363
+ handleResize() {
364
+ if (this.opened) {
365
+ this.reposition();
452
366
  }
367
+ }
453
368
 
454
- if (this._oldPlacement && (this._oldPlacement.left === placement.left) && (this._oldPlacement.top === placement.top) && streching) {
455
- this.style.display = "inline-block";
456
- this.style.width = this._width;
369
+ reposition() {
370
+ this._show();
371
+ }
372
+
373
+ _show() {
374
+ let placement;
375
+ const popoverSize = this.getPopoverSize();
376
+
377
+ if (popoverSize.width === 0 || popoverSize.height === 0) {
378
+ // size can not be determined properly at this point, popover will be shown with the next reposition
457
379
  return;
458
380
  }
459
381
 
460
- this._oldPlacement = placement;
382
+ if (this.isOpen()) {
383
+ // update opener rect if it was changed during the popover being opened
384
+ this._openerRect = this._opener.getBoundingClientRect();
385
+ }
386
+
387
+ if (this.shouldCloseDueToNoOpener(this._openerRect) && this.isFocusWithin()) {
388
+ // reuse the old placement as the opener is not available,
389
+ // but keep the popover open as the focus is within
390
+ placement = this._oldPlacement;
391
+ } else {
392
+ placement = this.calcPlacement(this._openerRect, popoverSize);
393
+ }
394
+
395
+ const stretching = this.horizontalAlign === PopoverHorizontalAlign.Stretch;
461
396
 
397
+ if (this._preventRepositionAndClose) {
398
+ return this.close();
399
+ }
400
+
401
+ this._oldPlacement = placement;
462
402
  this.actualPlacementType = placement.placementType;
463
- this.arrowTranslateX = placement.arrowX;
464
- this.arrowTranslateY = placement.arrowY;
465
403
 
466
- this.style.left = `${this._left}px`;
467
- this.style.top = `${this._top}px`;
468
- this.style.display = "inline-block";
404
+ let left = clamp(
405
+ this._left,
406
+ Popover.VIEWPORT_MARGIN,
407
+ document.documentElement.clientWidth - popoverSize.width - Popover.VIEWPORT_MARGIN,
408
+ );
469
409
 
470
- if (streching && this._width) {
471
- this.style.width = this._width;
410
+ if (this.actualPlacementType === PopoverPlacementType.Right) {
411
+ left = Math.max(left, this._left);
472
412
  }
473
- }
474
413
 
475
- hide() {
476
- this.style.display = "none";
477
- }
414
+ let top = clamp(
415
+ this._top,
416
+ Popover.VIEWPORT_MARGIN,
417
+ document.documentElement.clientHeight - popoverSize.height - Popover.VIEWPORT_MARGIN,
418
+ );
478
419
 
479
- get popoverSize() {
480
- let width,
481
- height;
482
- let rect = this.getBoundingClientRect();
420
+ if (this.actualPlacementType === PopoverPlacementType.Bottom) {
421
+ top = Math.max(top, this._top);
422
+ }
483
423
 
484
- if (this.opened) {
485
- width = rect.width;
486
- height = rect.height;
424
+ let { arrowX, arrowY } = placement;
425
+ const isVertical = this.actualPlacementType === PopoverPlacementType.Top
426
+ || this.actualPlacementType === PopoverPlacementType.Bottom;
487
427
 
488
- return { width, height };
428
+ if (isVertical) {
429
+ const popoverOnLeftBorderOffset = Popover.VIEWPORT_MARGIN - this._left;
430
+ const popoverOnRightBorderOffset = this._left + popoverSize.width + Popover.VIEWPORT_MARGIN - document.documentElement.clientWidth;
431
+ if (popoverOnLeftBorderOffset > 0) {
432
+ arrowX -= popoverOnLeftBorderOffset;
433
+ } else if (popoverOnRightBorderOffset > 0) {
434
+ arrowX += popoverOnRightBorderOffset;
435
+ }
436
+ }
437
+ this.arrowTranslateX = Math.round(arrowX);
438
+
439
+ if (!isVertical) {
440
+ const popoverOnTopBorderOffset = Popover.VIEWPORT_MARGIN - this._top;
441
+ const popoverOnBottomBorderOffset = this._top + popoverSize.height + Popover.VIEWPORT_MARGIN - document.documentElement.clientHeight;
442
+ if (popoverOnTopBorderOffset > 0) {
443
+ arrowY -= popoverOnTopBorderOffset;
444
+ } else if (popoverOnBottomBorderOffset > 0) {
445
+ arrowY += popoverOnBottomBorderOffset;
446
+ }
489
447
  }
448
+ this.arrowTranslateY = Math.round(arrowY);
490
449
 
491
- this.style.visibility = "hidden";
492
- this.style.display = "inline-block";
450
+ Object.assign(this.style, {
451
+ top: `${top}px`,
452
+ left: `${left}px`,
453
+ });
454
+ super._show();
493
455
 
494
- rect = this.getBoundingClientRect();
456
+ if (stretching && this._width) {
457
+ this.style.width = this._width;
458
+ }
459
+ }
495
460
 
496
- width = rect.width;
497
- height = rect.height;
461
+ getPopoverSize() {
462
+ if (!this.opened) {
463
+ Object.assign(this.style, {
464
+ display: "block",
465
+ top: "-10000px",
466
+ left: "-10000px",
467
+ });
468
+ }
498
469
 
499
- this.style.display = "none";
500
- this.style.visibility = "visible";
470
+ const rect = this.getBoundingClientRect(),
471
+ width = rect.width,
472
+ height = rect.height;
501
473
 
502
474
  return { width, height };
503
475
  }
504
476
 
505
477
  get contentDOM() {
506
- return this.shadowRoot.querySelector(".ui5-popover-content");
478
+ return this.shadowRoot.querySelector(".ui5-popup-content");
507
479
  }
508
480
 
509
481
  get arrowDOM() {
510
- return this.shadowRoot.querySelector(".ui5-popover-arr");
482
+ return this.shadowRoot.querySelector(".ui5-popover-arrow");
511
483
  }
512
484
 
513
485
  calcPlacement(targetRect, popoverSize) {
@@ -519,13 +491,14 @@ class Popover extends UI5Element {
519
491
  const clientHeight = document.documentElement.clientHeight;
520
492
 
521
493
  let maxHeight = clientHeight;
494
+ let maxWidth = clientWidth;
522
495
 
523
496
  let width = "";
524
497
  let height = "";
525
498
 
526
499
  const placementType = this.getActualPlacementType(targetRect, popoverSize);
527
500
 
528
- this._preventRepositionAndClose = this.shouldCloseDueOverflow(placementType, targetRect);
501
+ this._preventRepositionAndClose = this.shouldCloseDueToNoOpener(targetRect) || this.shouldCloseDueToOverflow(placementType, targetRect);
529
502
 
530
503
  const isVertical = placementType === PopoverPlacementType.Top
531
504
  || placementType === PopoverPlacementType.Bottom;
@@ -541,7 +514,7 @@ class Popover extends UI5Element {
541
514
  this._width = width;
542
515
  this._height = height;
543
516
 
544
- const arrowOffset = this.noArrow ? 0 : arrowSize;
517
+ const arrowOffset = this.hideArrow ? 0 : arrowSize;
545
518
 
546
519
  // calc popover positions
547
520
  switch (placementType) {
@@ -566,12 +539,17 @@ class Popover extends UI5Element {
566
539
  case PopoverPlacementType.Left:
567
540
  left = Math.max(targetRect.left - popoverSize.width - arrowOffset, 0);
568
541
  top = this.getHorizontalTop(targetRect, popoverSize);
542
+
543
+ if (!allowTargetOverlap) {
544
+ maxWidth = targetRect.left - arrowOffset;
545
+ }
569
546
  break;
570
547
  case PopoverPlacementType.Right:
571
548
  if (allowTargetOverlap) {
572
549
  left = Math.max(Math.min(targetRect.left + targetRect.width + arrowOffset, clientWidth - popoverSize.width), 0);
573
550
  } else {
574
551
  left = targetRect.left + targetRect.width + arrowOffset;
552
+ maxWidth = clientWidth - targetRect.right - arrowOffset;
575
553
  }
576
554
 
577
555
  top = this.getHorizontalTop(targetRect, popoverSize);
@@ -593,23 +571,21 @@ class Popover extends UI5Element {
593
571
  }
594
572
  }
595
573
 
596
- let maxContentHeight = Math.round(maxHeight);
574
+ let maxContentHeight = maxHeight;
597
575
 
598
- const hasHeader = this.header.length || this.headerText;
599
-
600
- if (hasHeader) {
601
- const headerDomRef = this.shadowRoot.querySelector(".ui5-popover-header-root")
576
+ if (this._displayHeader) {
577
+ const headerDomRef = this.shadowRoot.querySelector(".ui5-popup-header-root")
602
578
  || this.shadowRoot.querySelector(".ui5-popup-header-text");
603
579
 
604
580
  if (headerDomRef) {
605
- maxContentHeight = Math.round(maxHeight - headerDomRef.offsetHeight);
581
+ maxContentHeight = maxHeight - headerDomRef.offsetHeight;
606
582
  }
607
583
  }
608
584
 
609
- this._maxContentHeight = maxContentHeight;
585
+ this._maxContentHeight = Math.round(maxContentHeight - Popover.VIEWPORT_MARGIN);
586
+ this._maxContentWidth = Math.round(maxWidth - Popover.VIEWPORT_MARGIN);
610
587
 
611
- const arrowTranslateX = isVertical ? targetRect.left + targetRect.width / 2 - left - popoverSize.width / 2 : 0;
612
- const arrowTranslateY = !isVertical ? targetRect.top + targetRect.height / 2 - top - popoverSize.height / 2 : 0;
588
+ const arrowPos = this.getArrowPosition(targetRect, popoverSize, left, top, isVertical);
613
589
 
614
590
  if (this._left === undefined || Math.abs(this._left - left) > 1.5) {
615
591
  this._left = Math.round(left);
@@ -620,14 +596,51 @@ class Popover extends UI5Element {
620
596
  }
621
597
 
622
598
  return {
623
- arrowX: Math.round(arrowTranslateX),
624
- arrowY: Math.round(arrowTranslateY),
599
+ arrowX: arrowPos.x,
600
+ arrowY: arrowPos.y,
625
601
  top: this._top,
626
602
  left: this._left,
627
603
  placementType,
628
604
  };
629
605
  }
630
606
 
607
+ /**
608
+ * Calculates the position for the arrow.
609
+ * @private
610
+ * @param targetRect BoundingClientRect of the target element
611
+ * @param popoverSize Width and height of the popover
612
+ * @param left Left offset of the popover
613
+ * @param top Top offset of the popover
614
+ * @param isVertical if the popover is positioned vertically to the target element
615
+ * @returns {{x: number, y: number}} Arrow's coordinates
616
+ */
617
+ getArrowPosition(targetRect, popoverSize, left, top, isVertical) {
618
+ let arrowXCentered = this.horizontalAlign === PopoverHorizontalAlign.Center || this.horizontalAlign === PopoverHorizontalAlign.Stretch;
619
+
620
+ if (this.horizontalAlign === PopoverHorizontalAlign.Right && left <= targetRect.left) {
621
+ arrowXCentered = true;
622
+ }
623
+
624
+ if (this.horizontalAlign === PopoverHorizontalAlign.Left && left + popoverSize.width >= targetRect.left + targetRect.width) {
625
+ arrowXCentered = true;
626
+ }
627
+
628
+ let arrowTranslateX = 0;
629
+ if (isVertical && arrowXCentered) {
630
+ arrowTranslateX = targetRect.left + targetRect.width / 2 - left - popoverSize.width / 2;
631
+ }
632
+
633
+ let arrowTranslateY = 0;
634
+ if (!isVertical) {
635
+ arrowTranslateY = targetRect.top + targetRect.height / 2 - top - popoverSize.height / 2;
636
+ }
637
+
638
+ return {
639
+ x: Math.round(arrowTranslateX),
640
+ y: Math.round(arrowTranslateY),
641
+ };
642
+ }
643
+
631
644
  /**
632
645
  * Fallbacks to new placement, prioritizing <code>Left</code> and <code>Right</code> placements.
633
646
  * @private
@@ -691,6 +704,7 @@ class Popover extends UI5Element {
691
704
  switch (this.horizontalAlign) {
692
705
  case PopoverHorizontalAlign.Center:
693
706
  case PopoverHorizontalAlign.Stretch:
707
+
694
708
  left = targetRect.left - (popoverSize.width - targetRect.width) / 2;
695
709
  break;
696
710
  case PopoverHorizontalAlign.Left:
@@ -723,15 +737,32 @@ class Popover extends UI5Element {
723
737
  return top;
724
738
  }
725
739
 
740
+ get isModal() { // Required by Popup.js
741
+ return this.modal;
742
+ }
743
+
744
+ get shouldHideBackdrop() { // Required by Popup.js
745
+ return this.hideBackdrop;
746
+ }
747
+
748
+ get _ariaLabelledBy() { // Required by Popup.js
749
+ return this.accessibleName ? undefined : "ui5-popup-header";
750
+ }
751
+
752
+ get _ariaModal() { // Required by Popup.js
753
+ return true;
754
+ }
755
+
726
756
  get styles() {
727
757
  return {
758
+ ...super.styles,
728
759
  content: {
729
760
  "max-height": `${this._maxContentHeight}px`,
761
+ "max-width": `${this._maxContentWidth}px`,
730
762
  },
731
763
  arrow: {
732
764
  transform: `translate(${this.arrowTranslateX}px, ${this.arrowTranslateY}px)`,
733
765
  },
734
- root: { },
735
766
  };
736
767
  }
737
768
 
@@ -739,7 +770,7 @@ class Popover extends UI5Element {
739
770
  * Hook for descendants to hide header.
740
771
  */
741
772
  get _displayHeader() {
742
- return true;
773
+ return this.header.length || this.headerText;
743
774
  }
744
775
 
745
776
  /**