@ui5/webcomponents 2.19.0-rc.0 → 2.19.0-rc.2

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 (653) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/README.md +1 -1
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/Calendar.js +1 -1
  5. package/dist/Calendar.js.map +1 -1
  6. package/dist/ColorPicker.d.ts +5 -0
  7. package/dist/ColorPicker.js +12 -0
  8. package/dist/ColorPicker.js.map +1 -1
  9. package/dist/ColorPickerTemplate.js +1 -1
  10. package/dist/ColorPickerTemplate.js.map +1 -1
  11. package/dist/DateTimePicker.js +4 -3
  12. package/dist/DateTimePicker.js.map +1 -1
  13. package/dist/Input.d.ts +12 -9
  14. package/dist/Input.js +94 -57
  15. package/dist/Input.js.map +1 -1
  16. package/dist/InputTemplate.js +1 -1
  17. package/dist/InputTemplate.js.map +1 -1
  18. package/dist/Link.d.ts +0 -7
  19. package/dist/Link.js +1 -5
  20. package/dist/Link.js.map +1 -1
  21. package/dist/ListBoxItemGroupTemplate.js +1 -1
  22. package/dist/ListBoxItemGroupTemplate.js.map +1 -1
  23. package/dist/ListItemGroup.d.ts +2 -1
  24. package/dist/ListItemGroup.js +2 -0
  25. package/dist/ListItemGroup.js.map +1 -1
  26. package/dist/Menu.d.ts +1 -1
  27. package/dist/Menu.js +3 -3
  28. package/dist/Menu.js.map +1 -1
  29. package/dist/MenuItem.d.ts +1 -1
  30. package/dist/MenuItem.js +3 -3
  31. package/dist/MenuItem.js.map +1 -1
  32. package/dist/MenuItemTemplate.js +1 -2
  33. package/dist/MenuItemTemplate.js.map +1 -1
  34. package/dist/MenuTemplate.js +3 -3
  35. package/dist/MenuTemplate.js.map +1 -1
  36. package/dist/MultiComboBox.d.ts +6 -1
  37. package/dist/MultiComboBox.js +29 -5
  38. package/dist/MultiComboBox.js.map +1 -1
  39. package/dist/Popover.d.ts +23 -2
  40. package/dist/Popover.js +77 -12
  41. package/dist/Popover.js.map +1 -1
  42. package/dist/PopoverResize.d.ts +62 -0
  43. package/dist/PopoverResize.js +276 -0
  44. package/dist/PopoverResize.js.map +1 -0
  45. package/dist/PopoverTemplate.js +5 -2
  46. package/dist/PopoverTemplate.js.map +1 -1
  47. package/dist/SegmentedButtonItem.js +1 -0
  48. package/dist/SegmentedButtonItem.js.map +1 -1
  49. package/dist/StepInput.d.ts +17 -0
  50. package/dist/StepInput.js +79 -16
  51. package/dist/StepInput.js.map +1 -1
  52. package/dist/StepInputTemplate.js +1 -1
  53. package/dist/StepInputTemplate.js.map +1 -1
  54. package/dist/Table.js +4 -6
  55. package/dist/Table.js.map +1 -1
  56. package/dist/TableCell.d.ts +1 -1
  57. package/dist/TableCell.js +15 -13
  58. package/dist/TableCell.js.map +1 -1
  59. package/dist/TableCustomAnnouncement.js.map +1 -1
  60. package/dist/TableHeaderCell.d.ts +0 -1
  61. package/dist/TableHeaderCell.js +1 -8
  62. package/dist/TableHeaderCell.js.map +1 -1
  63. package/dist/TableHeaderCellActionBase.js.map +1 -1
  64. package/dist/TreeItemBaseTemplate.js +2 -2
  65. package/dist/TreeItemBaseTemplate.js.map +1 -1
  66. package/dist/bundle.common.bootstrap.d.ts +0 -1
  67. package/dist/bundle.common.bootstrap.js +2 -1
  68. package/dist/bundle.common.bootstrap.js.map +1 -1
  69. package/dist/css/themes/Avatar.css +1 -1
  70. package/dist/css/themes/AvatarGroup.css +1 -1
  71. package/dist/css/themes/Bar.css +1 -1
  72. package/dist/css/themes/Breadcrumbs.css +1 -1
  73. package/dist/css/themes/BusyIndicator.css +1 -1
  74. package/dist/css/themes/Button.css +1 -1
  75. package/dist/css/themes/ButtonBadge.css +1 -1
  76. package/dist/css/themes/Calendar.css +1 -1
  77. package/dist/css/themes/CalendarHeader.css +1 -1
  78. package/dist/css/themes/CalendarLegend.css +1 -1
  79. package/dist/css/themes/CalendarLegendItem.css +1 -1
  80. package/dist/css/themes/Card.css +1 -1
  81. package/dist/css/themes/CardHeader.css +1 -1
  82. package/dist/css/themes/Carousel.css +1 -1
  83. package/dist/css/themes/CheckBox.css +1 -1
  84. package/dist/css/themes/ColorPalette.css +1 -1
  85. package/dist/css/themes/ColorPaletteItem.css +1 -1
  86. package/dist/css/themes/ColorPalettePopover.css +1 -1
  87. package/dist/css/themes/ColorPicker.css +1 -1
  88. package/dist/css/themes/ComboBox.css +1 -1
  89. package/dist/css/themes/ComboBoxItem.css +1 -1
  90. package/dist/css/themes/DatePicker.css +1 -1
  91. package/dist/css/themes/DatePickerPopover.css +1 -1
  92. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  93. package/dist/css/themes/DayPicker.css +1 -1
  94. package/dist/css/themes/Dialog.css +1 -1
  95. package/dist/css/themes/DynamicDateRange.css +1 -1
  96. package/dist/css/themes/DynamicDateRangePopover.css +1 -1
  97. package/dist/css/themes/FileUploader.css +1 -1
  98. package/dist/css/themes/Form.css +1 -1
  99. package/dist/css/themes/FormItem.css +1 -1
  100. package/dist/css/themes/FormItemSpan.css +1 -1
  101. package/dist/css/themes/GrowingButton.css +1 -1
  102. package/dist/css/themes/Icon.css +1 -1
  103. package/dist/css/themes/Input.css +1 -1
  104. package/dist/css/themes/InputIcon.css +1 -1
  105. package/dist/css/themes/InputSharedStyles.css +1 -1
  106. package/dist/css/themes/Link.css +1 -1
  107. package/dist/css/themes/List.css +1 -1
  108. package/dist/css/themes/ListItem.css +1 -1
  109. package/dist/css/themes/ListItemBase.css +1 -1
  110. package/dist/css/themes/ListItemCustom.css +1 -1
  111. package/dist/css/themes/ListItemGroup.css +1 -1
  112. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  113. package/dist/css/themes/ListItemIcon.css +1 -1
  114. package/dist/css/themes/Menu.css +1 -1
  115. package/dist/css/themes/MenuItem.css +1 -1
  116. package/dist/css/themes/MessageStrip.css +1 -1
  117. package/dist/css/themes/MonthPicker.css +1 -1
  118. package/dist/css/themes/MultiComboBox.css +1 -1
  119. package/dist/css/themes/MultiComboBoxItem.css +1 -1
  120. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  121. package/dist/css/themes/MultiInput.css +1 -1
  122. package/dist/css/themes/OptionBase.css +1 -1
  123. package/dist/css/themes/Panel.css +1 -1
  124. package/dist/css/themes/Popover.css +1 -1
  125. package/dist/css/themes/PopupsCommon.css +1 -1
  126. package/dist/css/themes/ProgressIndicator.css +1 -1
  127. package/dist/css/themes/RadioButton.css +1 -1
  128. package/dist/css/themes/RangeSlider.css +1 -1
  129. package/dist/css/themes/RatingIndicator.css +1 -1
  130. package/dist/css/themes/ResponsivePopover.css +1 -1
  131. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  132. package/dist/css/themes/SegmentedButton.css +1 -1
  133. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  134. package/dist/css/themes/Select.css +1 -1
  135. package/dist/css/themes/SliderBase.css +1 -1
  136. package/dist/css/themes/SplitButton.css +1 -1
  137. package/dist/css/themes/StepInput.css +1 -1
  138. package/dist/css/themes/SuggestionItem.css +1 -1
  139. package/dist/css/themes/SuggestionItemCustom.css +1 -1
  140. package/dist/css/themes/Switch.css +1 -1
  141. package/dist/css/themes/TabContainer.css +1 -1
  142. package/dist/css/themes/TabInOverflow.css +1 -1
  143. package/dist/css/themes/TabInStrip.css +1 -1
  144. package/dist/css/themes/TabSemanticIcon.css +1 -1
  145. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  146. package/dist/css/themes/TableCellBase.css +1 -1
  147. package/dist/css/themes/TableHeaderRow.css +1 -1
  148. package/dist/css/themes/TableRow.css +1 -1
  149. package/dist/css/themes/TableRowActionBase.css +1 -1
  150. package/dist/css/themes/TableRowBase.css +1 -1
  151. package/dist/css/themes/Tag.css +1 -1
  152. package/dist/css/themes/Text.css +1 -1
  153. package/dist/css/themes/TextArea.css +1 -1
  154. package/dist/css/themes/TimePicker.css +1 -1
  155. package/dist/css/themes/Toast.css +1 -1
  156. package/dist/css/themes/ToggleButton.css +1 -1
  157. package/dist/css/themes/Token.css +1 -1
  158. package/dist/css/themes/Tokenizer.css +1 -1
  159. package/dist/css/themes/TokenizerPopover.css +1 -1
  160. package/dist/css/themes/Toolbar.css +1 -1
  161. package/dist/css/themes/ToolbarButton.css +1 -1
  162. package/dist/css/themes/ToolbarPopover.css +1 -1
  163. package/dist/css/themes/ToolbarSeparator.css +1 -1
  164. package/dist/css/themes/TreeItem.css +1 -1
  165. package/dist/css/themes/ValueStateMessage.css +1 -1
  166. package/dist/css/themes/ValueStateVariables.css +1 -1
  167. package/dist/css/themes/YearPicker.css +1 -1
  168. package/dist/css/themes/YearRangePicker.css +1 -1
  169. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  170. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  171. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  172. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  173. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  174. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  175. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  176. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  177. package/dist/custom-elements-internal.json +218 -13
  178. package/dist/custom-elements.json +154 -8
  179. package/dist/features/InputSuggestions.d.ts +1 -0
  180. package/dist/features/InputSuggestions.js +9 -6
  181. package/dist/features/InputSuggestions.js.map +1 -1
  182. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  183. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  184. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  185. package/dist/generated/assets/i18n/messagebundle_cnr.json +1 -1
  186. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  187. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  188. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  189. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  190. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  191. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  192. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  193. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  194. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  195. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  196. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  197. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  198. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  199. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  200. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  201. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  202. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  203. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  204. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  205. package/dist/generated/assets/i18n/messagebundle_id.json +1 -1
  206. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  207. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  208. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  209. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  210. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  211. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  212. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  213. package/dist/generated/assets/i18n/messagebundle_mk.json +1 -1
  214. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  215. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  216. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  217. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  218. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  219. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  220. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  221. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  222. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  223. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  224. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  225. package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
  226. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  227. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  228. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  229. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  230. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  231. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  232. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  233. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  234. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  235. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  236. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  237. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  238. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  239. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  240. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  241. package/dist/generated/i18n/i18n-defaults.d.ts +2 -2
  242. package/dist/generated/i18n/i18n-defaults.js +2 -2
  243. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  244. package/dist/generated/themes/Avatar.css.d.ts +1 -1
  245. package/dist/generated/themes/Avatar.css.js +1 -1
  246. package/dist/generated/themes/Avatar.css.js.map +1 -1
  247. package/dist/generated/themes/AvatarGroup.css.d.ts +1 -1
  248. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  249. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  250. package/dist/generated/themes/Bar.css.d.ts +1 -1
  251. package/dist/generated/themes/Bar.css.js +1 -1
  252. package/dist/generated/themes/Bar.css.js.map +1 -1
  253. package/dist/generated/themes/Breadcrumbs.css.d.ts +1 -1
  254. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  255. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  256. package/dist/generated/themes/BusyIndicator.css.d.ts +1 -1
  257. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  258. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  259. package/dist/generated/themes/Button.css.d.ts +1 -1
  260. package/dist/generated/themes/Button.css.js +1 -1
  261. package/dist/generated/themes/Button.css.js.map +1 -1
  262. package/dist/generated/themes/ButtonBadge.css.d.ts +1 -1
  263. package/dist/generated/themes/ButtonBadge.css.js +1 -1
  264. package/dist/generated/themes/ButtonBadge.css.js.map +1 -1
  265. package/dist/generated/themes/Calendar.css.d.ts +1 -1
  266. package/dist/generated/themes/Calendar.css.js +1 -1
  267. package/dist/generated/themes/Calendar.css.js.map +1 -1
  268. package/dist/generated/themes/CalendarHeader.css.d.ts +1 -1
  269. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  270. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  271. package/dist/generated/themes/CalendarLegend.css.d.ts +1 -1
  272. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  273. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  274. package/dist/generated/themes/CalendarLegendItem.css.d.ts +1 -1
  275. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  276. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  277. package/dist/generated/themes/Card.css.d.ts +1 -1
  278. package/dist/generated/themes/Card.css.js +1 -1
  279. package/dist/generated/themes/Card.css.js.map +1 -1
  280. package/dist/generated/themes/CardHeader.css.d.ts +1 -1
  281. package/dist/generated/themes/CardHeader.css.js +1 -1
  282. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  283. package/dist/generated/themes/Carousel.css.d.ts +1 -1
  284. package/dist/generated/themes/Carousel.css.js +1 -1
  285. package/dist/generated/themes/Carousel.css.js.map +1 -1
  286. package/dist/generated/themes/CheckBox.css.d.ts +1 -1
  287. package/dist/generated/themes/CheckBox.css.js +1 -1
  288. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  289. package/dist/generated/themes/ColorPalette.css.d.ts +1 -1
  290. package/dist/generated/themes/ColorPalette.css.js +1 -1
  291. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  292. package/dist/generated/themes/ColorPaletteItem.css.d.ts +1 -1
  293. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  294. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  295. package/dist/generated/themes/ColorPalettePopover.css.d.ts +1 -1
  296. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  297. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  298. package/dist/generated/themes/ColorPicker.css.d.ts +1 -1
  299. package/dist/generated/themes/ColorPicker.css.js +1 -1
  300. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  301. package/dist/generated/themes/ComboBox.css.d.ts +1 -1
  302. package/dist/generated/themes/ComboBox.css.js +1 -1
  303. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  304. package/dist/generated/themes/ComboBoxItem.css.d.ts +1 -1
  305. package/dist/generated/themes/ComboBoxItem.css.js +1 -1
  306. package/dist/generated/themes/ComboBoxItem.css.js.map +1 -1
  307. package/dist/generated/themes/DatePicker.css.d.ts +1 -1
  308. package/dist/generated/themes/DatePicker.css.js +1 -1
  309. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  310. package/dist/generated/themes/DatePickerPopover.css.d.ts +1 -1
  311. package/dist/generated/themes/DatePickerPopover.css.js +1 -1
  312. package/dist/generated/themes/DatePickerPopover.css.js.map +1 -1
  313. package/dist/generated/themes/DateTimePickerPopover.css.d.ts +1 -1
  314. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  315. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  316. package/dist/generated/themes/DayPicker.css.d.ts +1 -1
  317. package/dist/generated/themes/DayPicker.css.js +1 -1
  318. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  319. package/dist/generated/themes/Dialog.css.d.ts +1 -1
  320. package/dist/generated/themes/Dialog.css.js +1 -1
  321. package/dist/generated/themes/Dialog.css.js.map +1 -1
  322. package/dist/generated/themes/DynamicDateRange.css.d.ts +1 -1
  323. package/dist/generated/themes/DynamicDateRange.css.js +1 -1
  324. package/dist/generated/themes/DynamicDateRange.css.js.map +1 -1
  325. package/dist/generated/themes/DynamicDateRangePopover.css.d.ts +1 -1
  326. package/dist/generated/themes/DynamicDateRangePopover.css.js +1 -1
  327. package/dist/generated/themes/DynamicDateRangePopover.css.js.map +1 -1
  328. package/dist/generated/themes/FileUploader.css.d.ts +1 -1
  329. package/dist/generated/themes/FileUploader.css.js +1 -1
  330. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  331. package/dist/generated/themes/Form.css.d.ts +1 -1
  332. package/dist/generated/themes/Form.css.js +1 -1
  333. package/dist/generated/themes/Form.css.js.map +1 -1
  334. package/dist/generated/themes/FormItem.css.d.ts +1 -1
  335. package/dist/generated/themes/FormItem.css.js +1 -1
  336. package/dist/generated/themes/FormItem.css.js.map +1 -1
  337. package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
  338. package/dist/generated/themes/FormItemSpan.css.js +1 -1
  339. package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
  340. package/dist/generated/themes/GrowingButton.css.d.ts +1 -1
  341. package/dist/generated/themes/GrowingButton.css.js +1 -1
  342. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  343. package/dist/generated/themes/Icon.css.d.ts +1 -1
  344. package/dist/generated/themes/Icon.css.js +1 -1
  345. package/dist/generated/themes/Icon.css.js.map +1 -1
  346. package/dist/generated/themes/Input.css.d.ts +1 -1
  347. package/dist/generated/themes/Input.css.js +1 -1
  348. package/dist/generated/themes/Input.css.js.map +1 -1
  349. package/dist/generated/themes/InputIcon.css.d.ts +1 -1
  350. package/dist/generated/themes/InputIcon.css.js +1 -1
  351. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  352. package/dist/generated/themes/InputSharedStyles.css.d.ts +1 -1
  353. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  354. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  355. package/dist/generated/themes/Link.css.d.ts +1 -1
  356. package/dist/generated/themes/Link.css.js +1 -1
  357. package/dist/generated/themes/Link.css.js.map +1 -1
  358. package/dist/generated/themes/List.css.d.ts +1 -1
  359. package/dist/generated/themes/List.css.js +1 -1
  360. package/dist/generated/themes/List.css.js.map +1 -1
  361. package/dist/generated/themes/ListItem.css.d.ts +1 -1
  362. package/dist/generated/themes/ListItem.css.js +1 -1
  363. package/dist/generated/themes/ListItem.css.js.map +1 -1
  364. package/dist/generated/themes/ListItemBase.css.d.ts +1 -1
  365. package/dist/generated/themes/ListItemBase.css.js +1 -1
  366. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  367. package/dist/generated/themes/ListItemCustom.css.d.ts +1 -1
  368. package/dist/generated/themes/ListItemCustom.css.js +1 -1
  369. package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
  370. package/dist/generated/themes/ListItemGroup.css.d.ts +1 -1
  371. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  372. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  373. package/dist/generated/themes/ListItemGroupHeader.css.d.ts +1 -1
  374. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  375. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  376. package/dist/generated/themes/ListItemIcon.css.d.ts +1 -1
  377. package/dist/generated/themes/ListItemIcon.css.js +1 -1
  378. package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
  379. package/dist/generated/themes/Menu.css.d.ts +1 -1
  380. package/dist/generated/themes/Menu.css.js +1 -1
  381. package/dist/generated/themes/Menu.css.js.map +1 -1
  382. package/dist/generated/themes/MenuItem.css.d.ts +1 -1
  383. package/dist/generated/themes/MenuItem.css.js +1 -1
  384. package/dist/generated/themes/MenuItem.css.js.map +1 -1
  385. package/dist/generated/themes/MessageStrip.css.d.ts +1 -1
  386. package/dist/generated/themes/MessageStrip.css.js +1 -1
  387. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  388. package/dist/generated/themes/MonthPicker.css.d.ts +1 -1
  389. package/dist/generated/themes/MonthPicker.css.js +1 -1
  390. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  391. package/dist/generated/themes/MultiComboBox.css.d.ts +1 -1
  392. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  393. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  394. package/dist/generated/themes/MultiComboBoxItem.css.d.ts +1 -1
  395. package/dist/generated/themes/MultiComboBoxItem.css.js +1 -1
  396. package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -1
  397. package/dist/generated/themes/MultiComboBoxPopover.css.d.ts +1 -1
  398. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  399. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  400. package/dist/generated/themes/MultiInput.css.d.ts +1 -1
  401. package/dist/generated/themes/MultiInput.css.js +1 -1
  402. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  403. package/dist/generated/themes/OptionBase.css.d.ts +1 -1
  404. package/dist/generated/themes/OptionBase.css.js +1 -1
  405. package/dist/generated/themes/OptionBase.css.js.map +1 -1
  406. package/dist/generated/themes/Panel.css.d.ts +1 -1
  407. package/dist/generated/themes/Panel.css.js +1 -1
  408. package/dist/generated/themes/Panel.css.js.map +1 -1
  409. package/dist/generated/themes/Popover.css.d.ts +1 -1
  410. package/dist/generated/themes/Popover.css.js +1 -1
  411. package/dist/generated/themes/Popover.css.js.map +1 -1
  412. package/dist/generated/themes/PopupsCommon.css.d.ts +1 -1
  413. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  414. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  415. package/dist/generated/themes/ProgressIndicator.css.d.ts +1 -1
  416. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  417. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  418. package/dist/generated/themes/RadioButton.css.d.ts +1 -1
  419. package/dist/generated/themes/RadioButton.css.js +1 -1
  420. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  421. package/dist/generated/themes/RangeSlider.css.d.ts +1 -1
  422. package/dist/generated/themes/RangeSlider.css.js +1 -1
  423. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  424. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  425. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  426. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  427. package/dist/generated/themes/ResponsivePopover.css.d.ts +1 -1
  428. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  429. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  430. package/dist/generated/themes/ResponsivePopoverCommon.css.d.ts +1 -1
  431. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  432. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  433. package/dist/generated/themes/SegmentedButton.css.d.ts +1 -1
  434. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  435. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  436. package/dist/generated/themes/SegmentedButtonItem.css.d.ts +1 -1
  437. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  438. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  439. package/dist/generated/themes/Select.css.d.ts +1 -1
  440. package/dist/generated/themes/Select.css.js +1 -1
  441. package/dist/generated/themes/Select.css.js.map +1 -1
  442. package/dist/generated/themes/SliderBase.css.d.ts +1 -1
  443. package/dist/generated/themes/SliderBase.css.js +1 -1
  444. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  445. package/dist/generated/themes/SplitButton.css.d.ts +1 -1
  446. package/dist/generated/themes/SplitButton.css.js +1 -1
  447. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  448. package/dist/generated/themes/StepInput.css.d.ts +1 -1
  449. package/dist/generated/themes/StepInput.css.js +1 -1
  450. package/dist/generated/themes/StepInput.css.js.map +1 -1
  451. package/dist/generated/themes/SuggestionItem.css.d.ts +1 -1
  452. package/dist/generated/themes/SuggestionItem.css.js +1 -1
  453. package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
  454. package/dist/generated/themes/SuggestionItemCustom.css.d.ts +1 -1
  455. package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
  456. package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
  457. package/dist/generated/themes/Switch.css.d.ts +1 -1
  458. package/dist/generated/themes/Switch.css.js +1 -1
  459. package/dist/generated/themes/Switch.css.js.map +1 -1
  460. package/dist/generated/themes/TabContainer.css.d.ts +1 -1
  461. package/dist/generated/themes/TabContainer.css.js +1 -1
  462. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  463. package/dist/generated/themes/TabInOverflow.css.d.ts +1 -1
  464. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  465. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  466. package/dist/generated/themes/TabInStrip.css.d.ts +1 -1
  467. package/dist/generated/themes/TabInStrip.css.js +1 -1
  468. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  469. package/dist/generated/themes/TabSemanticIcon.css.d.ts +1 -1
  470. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  471. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  472. package/dist/generated/themes/TabSeparatorInOverflow.css.d.ts +1 -1
  473. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  474. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  475. package/dist/generated/themes/TableCellBase.css.d.ts +1 -1
  476. package/dist/generated/themes/TableCellBase.css.js +1 -1
  477. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  478. package/dist/generated/themes/TableHeaderRow.css.d.ts +1 -1
  479. package/dist/generated/themes/TableHeaderRow.css.js +1 -1
  480. package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
  481. package/dist/generated/themes/TableRow.css.d.ts +1 -1
  482. package/dist/generated/themes/TableRow.css.js +1 -1
  483. package/dist/generated/themes/TableRow.css.js.map +1 -1
  484. package/dist/generated/themes/TableRowActionBase.css.d.ts +1 -1
  485. package/dist/generated/themes/TableRowActionBase.css.js +1 -1
  486. package/dist/generated/themes/TableRowActionBase.css.js.map +1 -1
  487. package/dist/generated/themes/TableRowBase.css.d.ts +1 -1
  488. package/dist/generated/themes/TableRowBase.css.js +1 -1
  489. package/dist/generated/themes/TableRowBase.css.js.map +1 -1
  490. package/dist/generated/themes/Tag.css.d.ts +1 -1
  491. package/dist/generated/themes/Tag.css.js +1 -1
  492. package/dist/generated/themes/Tag.css.js.map +1 -1
  493. package/dist/generated/themes/Text.css.d.ts +1 -1
  494. package/dist/generated/themes/Text.css.js +1 -1
  495. package/dist/generated/themes/Text.css.js.map +1 -1
  496. package/dist/generated/themes/TextArea.css.d.ts +1 -1
  497. package/dist/generated/themes/TextArea.css.js +1 -1
  498. package/dist/generated/themes/TextArea.css.js.map +1 -1
  499. package/dist/generated/themes/TimePicker.css.d.ts +1 -1
  500. package/dist/generated/themes/TimePicker.css.js +1 -1
  501. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  502. package/dist/generated/themes/Toast.css.d.ts +1 -1
  503. package/dist/generated/themes/Toast.css.js +1 -1
  504. package/dist/generated/themes/Toast.css.js.map +1 -1
  505. package/dist/generated/themes/ToggleButton.css.d.ts +1 -1
  506. package/dist/generated/themes/ToggleButton.css.js +1 -1
  507. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  508. package/dist/generated/themes/Token.css.d.ts +1 -1
  509. package/dist/generated/themes/Token.css.js +1 -1
  510. package/dist/generated/themes/Token.css.js.map +1 -1
  511. package/dist/generated/themes/Tokenizer.css.d.ts +1 -1
  512. package/dist/generated/themes/Tokenizer.css.js +1 -1
  513. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  514. package/dist/generated/themes/TokenizerPopover.css.d.ts +1 -1
  515. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  516. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  517. package/dist/generated/themes/Toolbar.css.d.ts +1 -1
  518. package/dist/generated/themes/Toolbar.css.js +1 -1
  519. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  520. package/dist/generated/themes/ToolbarButton.css.d.ts +1 -1
  521. package/dist/generated/themes/ToolbarButton.css.js +1 -1
  522. package/dist/generated/themes/ToolbarButton.css.js.map +1 -1
  523. package/dist/generated/themes/ToolbarPopover.css.d.ts +1 -1
  524. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  525. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  526. package/dist/generated/themes/ToolbarSeparator.css.d.ts +1 -1
  527. package/dist/generated/themes/ToolbarSeparator.css.js +1 -1
  528. package/dist/generated/themes/ToolbarSeparator.css.js.map +1 -1
  529. package/dist/generated/themes/TreeItem.css.d.ts +1 -1
  530. package/dist/generated/themes/TreeItem.css.js +1 -1
  531. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  532. package/dist/generated/themes/ValueStateMessage.css.d.ts +1 -1
  533. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  534. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  535. package/dist/generated/themes/ValueStateVariables.css.d.ts +1 -1
  536. package/dist/generated/themes/ValueStateVariables.css.js +1 -1
  537. package/dist/generated/themes/ValueStateVariables.css.js.map +1 -1
  538. package/dist/generated/themes/YearPicker.css.d.ts +1 -1
  539. package/dist/generated/themes/YearPicker.css.js +1 -1
  540. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  541. package/dist/generated/themes/YearRangePicker.css.d.ts +1 -1
  542. package/dist/generated/themes/YearRangePicker.css.js +1 -1
  543. package/dist/generated/themes/YearRangePicker.css.js.map +1 -1
  544. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  545. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  546. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  547. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  548. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  549. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  550. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  551. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  552. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  553. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  554. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  555. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  556. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  557. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  558. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  559. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  560. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  561. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  562. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  563. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  564. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  565. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  566. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  567. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  568. package/dist/popup-utils/PopoverRegistry.js +6 -4
  569. package/dist/popup-utils/PopoverRegistry.js.map +1 -1
  570. package/dist/types/InputSuggestionsFilter.d.ts +27 -0
  571. package/dist/types/InputSuggestionsFilter.js +29 -0
  572. package/dist/types/InputSuggestionsFilter.js.map +1 -0
  573. package/dist/vscode.html-custom-data.json +34 -4
  574. package/dist/web-types.json +65 -11
  575. package/package.json +9 -9
  576. package/src/ColorPickerTemplate.tsx +1 -1
  577. package/src/InputTemplate.tsx +1 -1
  578. package/src/ListBoxItemGroupTemplate.tsx +1 -1
  579. package/src/MenuItemTemplate.tsx +16 -8
  580. package/src/MenuTemplate.tsx +11 -7
  581. package/src/PopoverTemplate.tsx +10 -0
  582. package/src/StepInputTemplate.tsx +1 -0
  583. package/src/TreeItemBaseTemplate.tsx +2 -2
  584. package/src/i18n/messagebundle.properties +2 -2
  585. package/src/i18n/messagebundle_ar.properties +24 -0
  586. package/src/i18n/messagebundle_bg.properties +24 -0
  587. package/src/i18n/messagebundle_ca.properties +24 -0
  588. package/src/i18n/messagebundle_cnr.properties +24 -0
  589. package/src/i18n/messagebundle_cs.properties +24 -0
  590. package/src/i18n/messagebundle_cy.properties +24 -0
  591. package/src/i18n/messagebundle_da.properties +24 -0
  592. package/src/i18n/messagebundle_de.properties +25 -1
  593. package/src/i18n/messagebundle_el.properties +27 -3
  594. package/src/i18n/messagebundle_en.properties +8 -326
  595. package/src/i18n/messagebundle_en_GB.properties +24 -0
  596. package/src/i18n/messagebundle_en_US_sappsd.properties +8 -0
  597. package/src/i18n/messagebundle_en_US_saprigi.properties +8 -0
  598. package/src/i18n/messagebundle_en_US_saptrc.properties +8 -0
  599. package/src/i18n/messagebundle_es.properties +24 -0
  600. package/src/i18n/messagebundle_es_MX.properties +34 -10
  601. package/src/i18n/messagebundle_et.properties +24 -0
  602. package/src/i18n/messagebundle_fi.properties +24 -0
  603. package/src/i18n/messagebundle_fr.properties +24 -0
  604. package/src/i18n/messagebundle_fr_CA.properties +24 -0
  605. package/src/i18n/messagebundle_hi.properties +24 -0
  606. package/src/i18n/messagebundle_hr.properties +24 -0
  607. package/src/i18n/messagebundle_hu.properties +24 -0
  608. package/src/i18n/messagebundle_id.properties +24 -0
  609. package/src/i18n/messagebundle_it.properties +25 -1
  610. package/src/i18n/messagebundle_iw.properties +24 -0
  611. package/src/i18n/messagebundle_ja.properties +24 -0
  612. package/src/i18n/messagebundle_kk.properties +24 -0
  613. package/src/i18n/messagebundle_ko.properties +24 -0
  614. package/src/i18n/messagebundle_lt.properties +24 -0
  615. package/src/i18n/messagebundle_lv.properties +24 -0
  616. package/src/i18n/messagebundle_mk.properties +26 -2
  617. package/src/i18n/messagebundle_ms.properties +24 -0
  618. package/src/i18n/messagebundle_nl.properties +24 -0
  619. package/src/i18n/messagebundle_no.properties +24 -0
  620. package/src/i18n/messagebundle_pl.properties +24 -0
  621. package/src/i18n/messagebundle_pt.properties +24 -0
  622. package/src/i18n/messagebundle_pt_PT.properties +24 -0
  623. package/src/i18n/messagebundle_ro.properties +24 -0
  624. package/src/i18n/messagebundle_ru.properties +25 -1
  625. package/src/i18n/messagebundle_sh.properties +24 -0
  626. package/src/i18n/messagebundle_sk.properties +24 -0
  627. package/src/i18n/messagebundle_sl.properties +24 -0
  628. package/src/i18n/messagebundle_sr.properties +24 -0
  629. package/src/i18n/messagebundle_sv.properties +24 -0
  630. package/src/i18n/messagebundle_th.properties +24 -0
  631. package/src/i18n/messagebundle_tr.properties +24 -0
  632. package/src/i18n/messagebundle_uk.properties +24 -0
  633. package/src/i18n/messagebundle_vi.properties +24 -0
  634. package/src/i18n/messagebundle_zh_CN.properties +24 -0
  635. package/src/i18n/messagebundle_zh_TW.properties +24 -0
  636. package/src/themes/Button.css +3 -2
  637. package/src/themes/Dialog.css +0 -16
  638. package/src/themes/Form.css +1 -1
  639. package/src/themes/FormItem.css +0 -1
  640. package/src/themes/FormItemSpan.css +2 -2
  641. package/src/themes/Menu.css +17 -0
  642. package/src/themes/MenuItem.css +9 -0
  643. package/src/themes/Popover.css +77 -0
  644. package/src/themes/PopupsCommon.css +16 -0
  645. package/src/themes/SegmentedButton.css +2 -2
  646. package/src/themes/SegmentedButtonItem.css +0 -4
  647. package/src/themes/TableCellBase.css +4 -0
  648. package/src/themes/TreeItem.css +10 -2
  649. package/src/themes/base/sizes-parameters.css +6 -58
  650. package/src/themes/sap_fiori_3/sizes-parameters.css +0 -8
  651. package/src/themes/sap_fiori_3_dark/sizes-parameters.css +0 -5
  652. package/src/themes/sap_fiori_3_hcb/sizes-parameters.css +0 -5
  653. package/src/themes/sap_fiori_3_hcw/sizes-parameters.css +0 -5
package/dist/Popover.d.ts CHANGED
@@ -3,6 +3,8 @@ import Popup from "./Popup.js";
3
3
  import PopoverPlacement from "./types/PopoverPlacement.js";
4
4
  import PopoverVerticalAlign from "./types/PopoverVerticalAlign.js";
5
5
  import PopoverHorizontalAlign from "./types/PopoverHorizontalAlign.js";
6
+ import PopoverResize from "./PopoverResize.js";
7
+ import type { ResizeHandlePlacement } from "./PopoverResize.js";
6
8
  type PopoverSize = {
7
9
  width: number;
8
10
  height: number;
@@ -94,7 +96,7 @@ declare class Popover extends Popup {
94
96
  verticalAlign: `${PopoverVerticalAlign}`;
95
97
  /**
96
98
  * Defines whether the component should close when
97
- * clicking/tapping outside of the popover.
99
+ * clicking/tapping outside the popover.
98
100
  * If enabled, it blocks any interaction with the background.
99
101
  * @default false
100
102
  * @public
@@ -114,6 +116,14 @@ declare class Popover extends Popup {
114
116
  * @public
115
117
  */
116
118
  allowTargetOverlap: boolean;
119
+ /**
120
+ * Determines whether the component is resizable.
121
+ * **Note:** This property is effective only on desktop devices.
122
+ * @default false
123
+ * @public
124
+ * @since 2.19.0
125
+ */
126
+ resizable: boolean;
117
127
  /**
118
128
  * Sets the X translation of the arrow
119
129
  * @private
@@ -131,6 +141,7 @@ declare class Popover extends Popup {
131
141
  actualPlacement: `${PopoverActualPlacement}`;
132
142
  _maxHeight?: number;
133
143
  _maxWidth?: number;
144
+ _resizeHandlePlacement?: `${ResizeHandlePlacement}`;
134
145
  /**
135
146
  * Defines the header HTML Element.
136
147
  * @public
@@ -149,6 +160,9 @@ declare class Popover extends Popup {
149
160
  _oldPlacement?: CalculatedPlacement;
150
161
  _width?: string;
151
162
  _height?: string;
163
+ _popoverResize: PopoverResize;
164
+ _initialWidth?: string;
165
+ _initialHeight?: string;
152
166
  static get VIEWPORT_MARGIN(): number;
153
167
  constructor();
154
168
  /**
@@ -162,7 +176,9 @@ declare class Popover extends Popup {
162
176
  set opener(value: HTMLElement | string | null);
163
177
  get opener(): HTMLElement | string | null | undefined;
164
178
  openPopup(): Promise<void>;
179
+ closePopup(escPressed?: boolean, preventRegistryUpdate?: boolean, preventFocusRestore?: boolean): void;
165
180
  isOpenerClicked(e: MouseEvent): boolean;
181
+ isClicked(e: MouseEvent): boolean;
166
182
  /**
167
183
  * Override for the _addOpenedPopup hook, which would otherwise just call addOpenedPopup(this)
168
184
  * @private
@@ -181,6 +197,7 @@ declare class Popover extends Popup {
181
197
  * @override
182
198
  */
183
199
  _resize(): void;
200
+ get _viewportMargin(): number;
184
201
  reposition(): void;
185
202
  _show(): Promise<void>;
186
203
  /**
@@ -203,6 +220,7 @@ declare class Popover extends Popup {
203
220
  * @private
204
221
  */
205
222
  calcPlacement(targetRect: DOMRect, popoverSize: PopoverSize): CalculatedPlacement;
223
+ get isVertical(): boolean;
206
224
  getRTLCorrectionLeft(): number;
207
225
  /**
208
226
  * Calculates the position for the arrow.
@@ -247,7 +265,10 @@ declare class Popover extends Popup {
247
265
  get _displayFooter(): boolean;
248
266
  get isRtl(): boolean;
249
267
  get _actualHorizontalAlign(): PopoverActualHorizontalAlign;
268
+ get _showResizeHandle(): boolean;
269
+ get resizeHandlePlacement(): "TopLeft" | "TopRight" | "BottomLeft" | "BottomRight" | undefined;
270
+ _onResizeMouseDown(e: MouseEvent): void;
250
271
  }
251
272
  declare const instanceOfPopover: (object: any) => object is Popover;
252
273
  export default Popover;
253
- export { instanceOfPopover };
274
+ export { instanceOfPopover, PopoverActualPlacement, PopoverActualHorizontalAlign };
package/dist/Popover.js CHANGED
@@ -10,7 +10,7 @@ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement
10
10
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
11
11
  import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
12
12
  import { isIOS } from "@ui5/webcomponents-base/dist/Device.js";
13
- import { getClosedPopupParent } from "@ui5/webcomponents-base/dist/util/PopupUtils.js";
13
+ import { isClickInRect, getClosedPopupParent } from "@ui5/webcomponents-base/dist/util/PopupUtils.js";
14
14
  import clamp from "@ui5/webcomponents-base/dist/util/clamp.js";
15
15
  import DOMReferenceConverter from "@ui5/webcomponents-base/dist/converters/DOMReference.js";
16
16
  import { renderFinished } from "@ui5/webcomponents-base/dist/Render.js";
@@ -19,6 +19,7 @@ import PopoverPlacement from "./types/PopoverPlacement.js";
19
19
  import PopoverVerticalAlign from "./types/PopoverVerticalAlign.js";
20
20
  import PopoverHorizontalAlign from "./types/PopoverHorizontalAlign.js";
21
21
  import { addOpenedPopover, removeOpenedPopover } from "./popup-utils/PopoverRegistry.js";
22
+ import PopoverResize from "./PopoverResize.js";
22
23
  // Template
23
24
  import PopoverTemplate from "./PopoverTemplate.js";
24
25
  // Styles
@@ -100,7 +101,7 @@ let Popover = Popover_1 = class Popover extends Popup {
100
101
  this.verticalAlign = "Center";
101
102
  /**
102
103
  * Defines whether the component should close when
103
- * clicking/tapping outside of the popover.
104
+ * clicking/tapping outside the popover.
104
105
  * If enabled, it blocks any interaction with the background.
105
106
  * @default false
106
107
  * @public
@@ -120,6 +121,14 @@ let Popover = Popover_1 = class Popover extends Popup {
120
121
  * @public
121
122
  */
122
123
  this.allowTargetOverlap = false;
124
+ /**
125
+ * Determines whether the component is resizable.
126
+ * **Note:** This property is effective only on desktop devices.
127
+ * @default false
128
+ * @public
129
+ * @since 2.19.0
130
+ */
131
+ this.resizable = false;
123
132
  /**
124
133
  * Sets the X translation of the arrow
125
134
  * @private
@@ -135,6 +144,7 @@ let Popover = Popover_1 = class Popover extends Popup {
135
144
  * @private
136
145
  */
137
146
  this.actualPlacement = "Right";
147
+ this._popoverResize = new PopoverResize(this);
138
148
  }
139
149
  /**
140
150
  * Defines the ID or DOM Reference of the element at which the popover is shown.
@@ -170,9 +180,20 @@ let Popover = Popover_1 = class Popover extends Popup {
170
180
  this.fireDecoratorEvent("close");
171
181
  return;
172
182
  }
183
+ this._initialWidth = this.style.width;
184
+ this._initialHeight = this.style.height;
173
185
  this._openerRect = opener.getBoundingClientRect();
174
186
  await super.openPopup();
175
187
  }
188
+ closePopup(escPressed = false, preventRegistryUpdate = false, preventFocusRestore = false) {
189
+ Object.assign(this.style, {
190
+ width: this._initialWidth,
191
+ height: this._initialHeight,
192
+ });
193
+ this._popoverResize.reset();
194
+ delete this._resizeHandlePlacement;
195
+ super.closePopup(escPressed, preventRegistryUpdate, preventFocusRestore);
196
+ }
176
197
  isOpenerClicked(e) {
177
198
  const target = e.target;
178
199
  const opener = this.getOpenerHTMLElement(this.opener);
@@ -187,6 +208,15 @@ let Popover = Popover_1 = class Popover extends Popup {
187
208
  }
188
209
  return e.composedPath().indexOf(opener) > -1;
189
210
  }
211
+ isClicked(e) {
212
+ if (this._showResizeHandle) {
213
+ const resizeHandle = this.shadowRoot.querySelector(".ui5-popover-resize-handle");
214
+ if (resizeHandle === e.composedPath()[0]) {
215
+ return true;
216
+ }
217
+ }
218
+ return isClickInRect(e, this.getBoundingClientRect());
219
+ }
190
220
  /**
191
221
  * Override for the _addOpenedPopup hook, which would otherwise just call addOpenedPopup(this)
192
222
  * @private
@@ -261,8 +291,14 @@ let Popover = Popover_1 = class Popover extends Popup {
261
291
  this.reposition();
262
292
  }
263
293
  }
294
+ get _viewportMargin() {
295
+ return Popover_1.VIEWPORT_MARGIN;
296
+ }
264
297
  reposition() {
265
298
  this._show();
299
+ if (this.resizable) {
300
+ this._resizeHandlePlacement = this._popoverResize.getResizeHandlePlacement();
301
+ }
266
302
  }
267
303
  async _show() {
268
304
  super._show();
@@ -319,6 +355,9 @@ let Popover = Popover_1 = class Popover extends Popup {
319
355
  top: `${top}px`,
320
356
  left: `${left}px`,
321
357
  });
358
+ if (this._popoverResize.isResized) {
359
+ return;
360
+ }
322
361
  if (this.horizontalAlign === PopoverHorizontalAlign.Stretch && this._width) {
323
362
  this.style.width = this._width;
324
363
  }
@@ -391,13 +430,15 @@ let Popover = Popover_1 = class Popover extends Popup {
391
430
  this._preventRepositionAndClose = this.shouldCloseDueToNoOpener(targetRect) || this.shouldCloseDueToOverflow(actualPlacement, targetRect);
392
431
  const isVertical = actualPlacement === PopoverActualPlacement.Top
393
432
  || actualPlacement === PopoverActualPlacement.Bottom;
394
- if (this.horizontalAlign === PopoverHorizontalAlign.Stretch && isVertical) {
395
- popoverSize.width = targetRect.width;
396
- this._width = `${targetRect.width}px`;
397
- }
398
- else if (this.verticalAlign === PopoverVerticalAlign.Stretch && !isVertical) {
399
- popoverSize.height = targetRect.height;
400
- this._height = `${targetRect.height}px`;
433
+ if (!this._popoverResize.isResized) {
434
+ if (this.horizontalAlign === PopoverHorizontalAlign.Stretch && isVertical) {
435
+ popoverSize.width = targetRect.width;
436
+ this._width = `${targetRect.width}px`;
437
+ }
438
+ else if (this.verticalAlign === PopoverVerticalAlign.Stretch && !isVertical) {
439
+ popoverSize.height = targetRect.height;
440
+ this._height = `${targetRect.height}px`;
441
+ }
401
442
  }
402
443
  const arrowOffset = this.hideArrow ? 0 : ARROW_SIZE;
403
444
  // calc popover positions
@@ -472,6 +513,9 @@ let Popover = Popover_1 = class Popover extends Popup {
472
513
  actualPlacement,
473
514
  };
474
515
  }
516
+ get isVertical() {
517
+ return this.placement === PopoverPlacement.Top || this.placement === PopoverPlacement.Bottom;
518
+ }
475
519
  getRTLCorrectionLeft() {
476
520
  return parseFloat(window.getComputedStyle(this).left) - this.getBoundingClientRect().left;
477
521
  }
@@ -534,7 +578,6 @@ let Popover = Popover_1 = class Popover extends Popup {
534
578
  }
535
579
  getActualPlacement(targetRect) {
536
580
  const placement = this.placement;
537
- const isVertical = placement === PopoverPlacement.Top || placement === PopoverPlacement.Bottom;
538
581
  const popoverSize = this.getPopoverSize(!this.allowTargetOverlap);
539
582
  let actualPlacement = PopoverActualPlacement.Right;
540
583
  switch (placement) {
@@ -554,7 +597,7 @@ let Popover = Popover_1 = class Popover extends Popup {
554
597
  const clientWidth = document.documentElement.clientWidth;
555
598
  let clientHeight = document.documentElement.clientHeight;
556
599
  let popoverHeight = popoverSize.height;
557
- if (isVertical) {
600
+ if (this.isVertical) {
558
601
  popoverHeight += this.hideArrow ? 0 : ARROW_SIZE;
559
602
  clientHeight -= Popover_1.VIEWPORT_MARGIN;
560
603
  }
@@ -591,6 +634,7 @@ let Popover = Popover_1 = class Popover extends Popup {
591
634
  case PopoverActualHorizontalAlign.Center:
592
635
  case PopoverActualHorizontalAlign.Stretch:
593
636
  left = targetRect.left - (popoverSize.width - targetRect.width) / 2;
637
+ left = this._popoverResize.getCorrectedLeft(left);
594
638
  break;
595
639
  case PopoverActualHorizontalAlign.Left:
596
640
  left = targetRect.left;
@@ -607,6 +651,7 @@ let Popover = Popover_1 = class Popover extends Popup {
607
651
  case PopoverVerticalAlign.Center:
608
652
  case PopoverVerticalAlign.Stretch:
609
653
  top = targetRect.top - (popoverSize.height - targetRect.height) / 2;
654
+ top = this._popoverResize.getCorrectedTop(top);
610
655
  break;
611
656
  case PopoverVerticalAlign.Top:
612
657
  top = targetRect.top;
@@ -641,6 +686,10 @@ let Popover = Popover_1 = class Popover extends Popup {
641
686
  get classes() {
642
687
  const allClasses = super.classes;
643
688
  allClasses.root["ui5-popover-root"] = true;
689
+ allClasses.root["ui5-popover-rtl"] = this.isRtl;
690
+ if (this.resizable) {
691
+ this._popoverResize.setCorrectResizeHandleClass(allClasses);
692
+ }
644
693
  return allClasses;
645
694
  }
646
695
  /**
@@ -671,6 +720,16 @@ let Popover = Popover_1 = class Popover extends Popup {
671
720
  return PopoverActualHorizontalAlign.Center;
672
721
  }
673
722
  }
723
+ get _showResizeHandle() {
724
+ return this.resizable && this.onDesktop;
725
+ }
726
+ get resizeHandlePlacement() {
727
+ return this._resizeHandlePlacement;
728
+ }
729
+ _onResizeMouseDown(e) {
730
+ this._popoverResize.onResizeMouseDown(e);
731
+ this._resizeHandlePlacement = this._popoverResize.getResizeHandlePlacement();
732
+ }
674
733
  };
675
734
  __decorate([
676
735
  property()
@@ -693,6 +752,9 @@ __decorate([
693
752
  __decorate([
694
753
  property({ type: Boolean })
695
754
  ], Popover.prototype, "allowTargetOverlap", void 0);
755
+ __decorate([
756
+ property({ type: Boolean })
757
+ ], Popover.prototype, "resizable", void 0);
696
758
  __decorate([
697
759
  property({ type: Number, noAttribute: true })
698
760
  ], Popover.prototype, "arrowTranslateX", void 0);
@@ -708,6 +770,9 @@ __decorate([
708
770
  __decorate([
709
771
  property({ type: Number, noAttribute: true })
710
772
  ], Popover.prototype, "_maxWidth", void 0);
773
+ __decorate([
774
+ property({ noAttribute: true })
775
+ ], Popover.prototype, "_resizeHandlePlacement", void 0);
711
776
  __decorate([
712
777
  slot({ type: HTMLElement })
713
778
  ], Popover.prototype, "header", void 0);
@@ -733,5 +798,5 @@ const instanceOfPopover = (object) => {
733
798
  };
734
799
  Popover.define();
735
800
  export default Popover;
736
- export { instanceOfPopover };
801
+ export { instanceOfPopover, PopoverActualPlacement, PopoverActualHorizontalAlign };
737
802
  //# sourceMappingURL=Popover.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Popover.js","sourceRoot":"","sources":["../src/Popover.ts"],"names":[],"mappings":"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","sourcesContent":["import { instanceOfUI5Element } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport { isIOS } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { getClosedPopupParent } from \"@ui5/webcomponents-base/dist/util/PopupUtils.js\";\nimport clamp from \"@ui5/webcomponents-base/dist/util/clamp.js\";\nimport DOMReferenceConverter from \"@ui5/webcomponents-base/dist/converters/DOMReference.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport Popup from \"./Popup.js\";\nimport PopoverPlacement from \"./types/PopoverPlacement.js\";\nimport PopoverVerticalAlign from \"./types/PopoverVerticalAlign.js\";\nimport PopoverHorizontalAlign from \"./types/PopoverHorizontalAlign.js\";\nimport { addOpenedPopover, removeOpenedPopover } from \"./popup-utils/PopoverRegistry.js\";\n\n// Template\nimport PopoverTemplate from \"./PopoverTemplate.js\";\n// Styles\nimport PopupsCommonCss from \"./generated/themes/PopupsCommon.css.js\";\nimport PopoverCss from \"./generated/themes/Popover.css.js\";\n\nconst ARROW_SIZE = 8;\n\ntype PopoverSize = {\n\twidth: number;\n\theight: number;\n}\n\ntype ArrowPosition = {\n\tx: number;\n\ty: number;\n}\n\nenum PopoverActualHorizontalAlign {\n\tCenter = \"Center\",\n\tLeft = \"Left\",\n\tRight = \"Right\",\n\tStretch = \"Stretch\",\n}\n\nenum PopoverActualPlacement {\n\tLeft = \"Left\",\n\tRight = \"Right\",\n\tTop = \"Top\",\n\tBottom = \"Bottom\",\n}\n\ntype CalculatedPlacement = {\n\tarrow: ArrowPosition,\n\ttop: number,\n\tleft: number,\n\tactualPlacement: `${PopoverActualPlacement}`,\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-popover` component displays additional information for an object\n * in a compact way and without leaving the page.\n * The Popover can contain various UI elements, such as fields, tables, images, and charts.\n * It can also include actions in the footer.\n *\n * ### Structure\n *\n * The popover has three main areas:\n *\n * - Header (optional)\n * - Content\n * - Footer (optional)\n *\n * **Note:** The `ui5-popover` is closed when the user clicks\n * or taps outside the popover\n * or selects an action within the popover. You can prevent this with the\n * `modal` property.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Popover.js\";`\n *\n * @constructor\n * @extends Popup\n * @since 1.0.0-rc.6\n * @public\n * @csspart header - Used to style the header of the component\n * @csspart content - Used to style the content of the component\n * @csspart footer - Used to style the footer of the component\n */\n@customElement({\n\ttag: \"ui5-popover\",\n\tstyles: [\n\t\tPopup.styles,\n\t\tPopupsCommonCss,\n\t\tPopoverCss,\n\t],\n\ttemplate: PopoverTemplate,\n})\nclass Popover extends Popup {\n\teventDetails!: Popup[\"eventDetails\"];\n\t/**\n\t * Defines the header text.\n\t *\n\t * **Note:** If `header` slot is provided, the `headerText` is ignored.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\theaderText?: string;\n\n\t/**\n\t * Determines on which side the component is placed at.\n\t * @default \"End\"\n\t * @public\n\t */\n\t@property()\n\tplacement: `${PopoverPlacement}` = \"End\";\n\n\t/**\n\t * Determines the horizontal alignment of the component.\n\t * @default \"Center\"\n\t * @public\n\t */\n\t@property()\n\thorizontalAlign: `${PopoverHorizontalAlign}` = \"Center\";\n\n\t/**\n\t * Determines the vertical alignment of the component.\n\t * @default \"Center\"\n\t * @public\n\t */\n\t@property()\n\tverticalAlign: `${PopoverVerticalAlign}` = \"Center\";\n\n\t/**\n\t * Defines whether the component should close when\n\t * clicking/tapping outside of the popover.\n\t * If enabled, it blocks any interaction with the background.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tmodal = false;\n\n\t/**\n\t * Determines whether the component arrow is hidden.\n\t * @default false\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property({ type: Boolean })\n\thideArrow = false;\n\n\t/**\n\t * Determines if there is no enough space, the component can be placed\n\t * over the target.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tallowTargetOverlap = false;\n\n\t/**\n\t * Sets the X translation of the arrow\n\t * @private\n\t */\n\t@property({ type: Number, noAttribute: true })\n\tarrowTranslateX = 0;\n\n\t/**\n\t * Sets the Y translation of the arrow\n\t * @private\n\t */\n\t@property({ type: Number, noAttribute: true })\n\tarrowTranslateY = 0;\n\n\t/**\n\t * Returns the calculated placement depending on the free space\n\t * @private\n\t */\n\t@property()\n\tactualPlacement: `${PopoverActualPlacement}` = \"Right\";\n\n\t@property({ type: Number, noAttribute: true })\n\t_maxHeight?: number;\n\n\t@property({ type: Number, noAttribute: true })\n\t_maxWidth?: number;\n\n\t/**\n\t * Defines the header HTML Element.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\theader!: Array<HTMLElement>;\n\n\t/**\n\t * Defines the footer HTML Element.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\tfooter!: Array<HTMLElement>;\n\n\t_opener?: HTMLElement | string | null | undefined;\n\t_openerRect?: DOMRect;\n\t_preventRepositionAndClose?: boolean;\n\t_top?: number;\n\t_left?: number;\n\t_oldPlacement?: CalculatedPlacement;\n\t_width?: string;\n\t_height?: string;\n\n\tstatic get VIEWPORT_MARGIN() {\n\t\treturn 10; // px\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\t/**\n\t * Defines the ID or DOM Reference of the element at which the popover is shown.\n\t * When using this attribute in a declarative way, you must only use the `id` (as a string) of the element at which you want to show the popover.\n\t * You can only set the `opener` attribute to a DOM Reference when using JavaScript.\n\t * @public\n\t * @default undefined\n\t * @since 1.2.0\n\t */\n\t@property({ converter: DOMReferenceConverter })\n\tset opener(value: HTMLElement | string | null) {\n\t\tif (this._opener === value) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._opener = value;\n\n\t\tif (value && this.open) {\n\t\t\tthis.openPopup();\n\t\t}\n\t}\n\n\tget opener(): HTMLElement | string | null | undefined {\n\t\treturn this._opener;\n\t}\n\n\tasync openPopup() {\n\t\tif (this._opened) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst opener = this.getOpenerHTMLElement(this.opener);\n\n\t\tif (!opener) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!opener || this.isOpenerOutsideViewport(opener.getBoundingClientRect())) {\n\t\t\tawait renderFinished();\n\t\t\tthis.open = false;\n\t\t\tthis.fireDecoratorEvent(\"close\");\n\t\t\treturn;\n\t\t}\n\n\t\tthis._openerRect = opener.getBoundingClientRect();\n\n\t\tawait super.openPopup();\n\t}\n\n\tisOpenerClicked(e: MouseEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\tconst opener = this.getOpenerHTMLElement(this.opener);\n\n\t\tif (!opener) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (target === opener) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (this._isUI5AbstractElement(target) && target.getFocusDomRef() === opener) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn e.composedPath().indexOf(opener) > -1;\n\t}\n\n\t/**\n\t * Override for the _addOpenedPopup hook, which would otherwise just call addOpenedPopup(this)\n\t * @private\n\t */\n\t_addOpenedPopup() {\n\t\taddOpenedPopover(this);\n\t}\n\n\t/**\n\t * Override for the _removeOpenedPopup hook, which would otherwise just call removeOpenedPopup(this)\n\t * @private\n\t */\n\t_removeOpenedPopup() {\n\t\tremoveOpenedPopover(this);\n\t}\n\n\tgetOpenerHTMLElement(opener: HTMLElement | string | null | undefined): HTMLElement | null | undefined {\n\t\tif (opener === undefined || opener === null) {\n\t\t\treturn opener;\n\t\t}\n\n\t\tif (opener instanceof HTMLElement) {\n\t\t\treturn this._isUI5AbstractElement(opener) ? opener.getFocusDomRef() : opener;\n\t\t}\n\n\t\tlet rootNode = this.getRootNode();\n\n\t\tif (rootNode === this) {\n\t\t\trootNode = document;\n\t\t}\n\n\t\tlet openerHTMLElement = (rootNode as Document | ShadowRoot).getElementById(opener);\n\n\t\tif (rootNode instanceof ShadowRoot && !openerHTMLElement) {\n\t\t\topenerHTMLElement = document.getElementById(opener);\n\t\t}\n\n\t\tif (openerHTMLElement) {\n\t\t\treturn this._isUI5AbstractElement(openerHTMLElement) ? openerHTMLElement.getFocusDomRef() : openerHTMLElement;\n\t\t}\n\n\t\treturn openerHTMLElement;\n\t}\n\n\tshouldCloseDueToOverflow(placement: `${PopoverActualPlacement}`, openerRect: DOMRect): boolean {\n\t\tconst threshold = 32;\n\t\tconst limits = {\n\t\t\t\"Left\": openerRect.right,\n\t\t\t\"Right\": openerRect.left,\n\t\t\t\"Top\": openerRect.top,\n\t\t\t\"Bottom\": openerRect.bottom,\n\t\t};\n\n\t\tconst opener = this.getOpenerHTMLElement(this.opener);\n\t\tconst closedPopupParent = getClosedPopupParent(opener!);\n\t\tlet overflowsBottom = false;\n\t\tlet overflowsTop = false;\n\n\t\tif (closedPopupParent instanceof Popover) {\n\t\t\tconst contentRect = closedPopupParent.getBoundingClientRect();\n\t\t\toverflowsBottom = openerRect.top > (contentRect.top + contentRect.height);\n\t\t\toverflowsTop = (openerRect.top + openerRect.height) < contentRect.top;\n\t\t}\n\n\t\treturn (limits[placement] < 0 || (limits[placement] + threshold > (closedPopupParent as unknown as Window).innerHeight)) || overflowsBottom || overflowsTop;\n\t}\n\n\tshouldCloseDueToNoOpener(openerRect: DOMRect): boolean {\n\t\treturn openerRect.top === 0\n\t\t\t&& openerRect.bottom === 0\n\t\t\t&& openerRect.left === 0\n\t\t\t&& openerRect.right === 0;\n\t}\n\n\tisOpenerOutsideViewport(openerRect: DOMRect): boolean {\n\t\treturn openerRect.bottom < 0\n\t\t\t|| openerRect.top > window.innerHeight\n\t\t\t|| openerRect.right < 0\n\t\t\t|| openerRect.left > window.innerWidth;\n\t}\n\n\t/**\n\t * @override\n\t */\n\t_resize() {\n\t\tsuper._resize();\n\n\t\tif (this.open) {\n\t\t\tthis.reposition();\n\t\t}\n\t}\n\n\treposition() {\n\t\tthis._show();\n\t}\n\n\tasync _show() {\n\t\tsuper._show();\n\n\t\tconst opener = this.getOpenerHTMLElement(this.opener);\n\n\t\tif (!opener) {\n\t\t\tObject.assign(this.style, {\n\t\t\t\ttop: `0px`,\n\t\t\t\tleft: `0px`,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tif (opener && instanceOfUI5Element(opener) && !opener.getDomRef()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._opened) {\n\t\t\tthis._showOutsideViewport();\n\t\t}\n\n\t\tconst popoverSize = this.getPopoverSize();\n\t\tlet placement;\n\n\t\tif (popoverSize.width === 0 || popoverSize.height === 0) {\n\t\t\t// size can not be determined properly at this point, popover will be shown with the next reposition\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.open) {\n\t\t\t// update opener rect if it was changed during the popover being opened\n\t\t\tthis._openerRect = opener.getBoundingClientRect();\n\t\t}\n\n\t\tif (this._oldPlacement && this.shouldCloseDueToNoOpener(this._openerRect!) && this.isFocusWithin()) {\n\t\t\t// reuse the old placement as the opener is not available,\n\t\t\t// but keep the popover open as the focus is within\n\t\t\tplacement = this._oldPlacement;\n\t\t} else {\n\t\t\tplacement = this.calcPlacement(this._openerRect!, popoverSize);\n\t\t}\n\n\t\tif (this._preventRepositionAndClose || this.isOpenerOutsideViewport(this._openerRect!)) {\n\t\t\tawait this._waitForDomRef();\n\t\t\treturn this.closePopup();\n\t\t}\n\n\t\tthis._oldPlacement = placement;\n\t\tthis.actualPlacement = placement.actualPlacement;\n\n\t\tlet left = clamp(\n\t\t\tthis._left!,\n\t\t\tPopover.VIEWPORT_MARGIN,\n\t\t\tdocument.documentElement.clientWidth - popoverSize.width - Popover.VIEWPORT_MARGIN,\n\t\t);\n\n\t\tif (this.actualPlacement === PopoverActualPlacement.Right) {\n\t\t\tleft = Math.max(left, this._left!);\n\t\t}\n\n\t\tlet top = clamp(\n\t\t\tthis._top!,\n\t\t\tPopover.VIEWPORT_MARGIN,\n\t\t\tdocument.documentElement.clientHeight - popoverSize.height - Popover.VIEWPORT_MARGIN,\n\t\t);\n\n\t\tif (this.actualPlacement === PopoverActualPlacement.Bottom) {\n\t\t\ttop = Math.max(top, this._top!);\n\t\t}\n\n\t\tthis.arrowTranslateX = placement.arrow.x;\n\t\tthis.arrowTranslateY = placement.arrow.y;\n\n\t\ttop = this._adjustForIOSKeyboard(top);\n\n\t\tObject.assign(this.style, {\n\t\t\ttop: `${top}px`,\n\t\t\tleft: `${left}px`,\n\t\t});\n\n\t\tif (this.horizontalAlign === PopoverHorizontalAlign.Stretch && this._width) {\n\t\t\tthis.style.width = this._width;\n\t\t}\n\n\t\tif (this.verticalAlign === PopoverVerticalAlign.Stretch && this._height) {\n\t\t\tthis.style.height = this._height;\n\t\t}\n\t}\n\n\t/**\n\t * Adjust the desired top position to compensate for shift of the screen\n\t * caused by opened keyboard on iOS which affects all elements with position:fixed.\n\t * @private\n\t * @param top The target top in px.\n\t * @returns The adjusted top in px.\n\t */\n\t_adjustForIOSKeyboard(top: number): number {\n\t\tif (!isIOS()) {\n\t\t\treturn top;\n\t\t}\n\n\t\tconst actualTop = Math.ceil(this.getBoundingClientRect().top);\n\n\t\treturn top + (Number.parseInt(this.style.top || \"0\") - actualTop);\n\t}\n\n\tgetPopoverSize(calcScrollHeight: boolean = false): PopoverSize {\n\t\tconst rect = this.getBoundingClientRect();\n\t\tconst width = rect.width;\n\t\tlet height;\n\n\t\tconst domRef = this.getDomRef();\n\n\t\tif (calcScrollHeight && domRef) {\n\t\t\tconst header = domRef.querySelector(\".ui5-popup-header-root\");\n\t\t\tconst content = domRef.querySelector(\".ui5-popup-content\");\n\t\t\tconst footer = domRef.querySelector(\".ui5-popup-footer-root\");\n\n\t\t\theight = content?.scrollHeight || 0;\n\t\t\theight += header?.scrollHeight || 0;\n\t\t\theight += footer?.scrollHeight || 0;\n\t\t} else {\n\t\t\theight = rect.height;\n\t\t}\n\n\t\treturn { width, height };\n\t}\n\n\t_showOutsideViewport() {\n\t\tObject.assign(this.style, {\n\t\t\ttop: \"-10000px\",\n\t\t\tleft: \"-10000px\",\n\t\t});\n\t}\n\n\t_isUI5AbstractElement(el: HTMLElement): el is UI5Element {\n\t\treturn instanceOfUI5Element(el) && el.isUI5AbstractElement;\n\t}\n\n\tget arrowDOM() {\n\t\treturn this.shadowRoot!.querySelector(\".ui5-popover-arrow\")!;\n\t}\n\n\t/**\n\t * @protected\n\t */\n\tfocusOpener() {\n\t\tthis.getOpenerHTMLElement(this.opener)?.focus();\n\t}\n\n\t/**\n\t * @private\n\t */\n\tcalcPlacement(targetRect: DOMRect, popoverSize: PopoverSize): CalculatedPlacement {\n\t\tlet left = Popover.VIEWPORT_MARGIN;\n\t\tlet top = 0;\n\t\tconst allowTargetOverlap = this.allowTargetOverlap;\n\n\t\tconst clientWidth = document.documentElement.clientWidth;\n\t\tconst clientHeight = document.documentElement.clientHeight;\n\n\t\tlet maxHeight = clientHeight;\n\t\tlet maxWidth = clientWidth;\n\n\t\tconst actualPlacement = this.getActualPlacement(targetRect);\n\n\t\tthis._preventRepositionAndClose = this.shouldCloseDueToNoOpener(targetRect) || this.shouldCloseDueToOverflow(actualPlacement, targetRect);\n\n\t\tconst isVertical = actualPlacement === PopoverActualPlacement.Top\n\t\t\t|| actualPlacement === PopoverActualPlacement.Bottom;\n\n\t\tif (this.horizontalAlign === PopoverHorizontalAlign.Stretch && isVertical) {\n\t\t\tpopoverSize.width = targetRect.width;\n\t\t\tthis._width = `${targetRect.width}px`;\n\t\t} else if (this.verticalAlign === PopoverVerticalAlign.Stretch && !isVertical) {\n\t\t\tpopoverSize.height = targetRect.height;\n\t\t\tthis._height = `${targetRect.height}px`;\n\t\t}\n\n\t\tconst arrowOffset = this.hideArrow ? 0 : ARROW_SIZE;\n\n\t\t// calc popover positions\n\t\tswitch (actualPlacement) {\n\t\tcase PopoverActualPlacement.Top:\n\t\t\tleft = this.getVerticalLeft(targetRect, popoverSize);\n\t\t\ttop = Math.max(targetRect.top - popoverSize.height - arrowOffset, 0);\n\n\t\t\tif (!allowTargetOverlap) {\n\t\t\t\tmaxHeight = targetRect.top - arrowOffset;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase PopoverActualPlacement.Bottom:\n\t\t\tleft = this.getVerticalLeft(targetRect, popoverSize);\n\t\t\ttop = targetRect.bottom + arrowOffset;\n\n\t\t\tif (allowTargetOverlap) {\n\t\t\t\ttop = Math.max(Math.min(top, clientHeight - popoverSize.height), 0);\n\t\t\t} else {\n\t\t\t\tmaxHeight = clientHeight - targetRect.bottom - arrowOffset;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase PopoverActualPlacement.Left:\n\t\t\tleft = Math.max(targetRect.left - popoverSize.width - arrowOffset, 0);\n\t\t\ttop = this.getHorizontalTop(targetRect, popoverSize);\n\n\t\t\tif (!allowTargetOverlap) {\n\t\t\t\tmaxWidth = targetRect.left - arrowOffset;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase PopoverActualPlacement.Right:\n\t\t\tleft = targetRect.left + targetRect.width + arrowOffset;\n\t\t\ttop = this.getHorizontalTop(targetRect, popoverSize);\n\n\t\t\tif (allowTargetOverlap) {\n\t\t\t\tleft = Math.max(Math.min(left, clientWidth - popoverSize.width), 0);\n\t\t\t} else {\n\t\t\t\tmaxWidth = clientWidth - targetRect.right - arrowOffset;\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\n\t\t// correct popover positions\n\t\tif (isVertical) {\n\t\t\tif (popoverSize.width > clientWidth || left < Popover.VIEWPORT_MARGIN) {\n\t\t\t\tleft = Popover.VIEWPORT_MARGIN;\n\t\t\t} else if (left + popoverSize.width > clientWidth - Popover.VIEWPORT_MARGIN) {\n\t\t\t\tleft = clientWidth - Popover.VIEWPORT_MARGIN - popoverSize.width;\n\t\t\t}\n\t\t} else {\n\t\t\tif (popoverSize.height > clientHeight || top < Popover.VIEWPORT_MARGIN) { // eslint-disable-line\n\t\t\t\ttop = Popover.VIEWPORT_MARGIN;\n\t\t\t} else if (top + popoverSize.height > clientHeight - Popover.VIEWPORT_MARGIN) {\n\t\t\t\ttop = clientHeight - Popover.VIEWPORT_MARGIN - popoverSize.height;\n\t\t\t}\n\t\t}\n\n\t\tthis._maxHeight = Math.round(maxHeight - Popover.VIEWPORT_MARGIN);\n\t\tthis._maxWidth = Math.round(maxWidth - Popover.VIEWPORT_MARGIN);\n\n\t\tif (this._left === undefined || Math.abs(this._left - left) > 1.5) {\n\t\t\tthis._left = Math.round(left);\n\t\t}\n\n\t\tif (this._top === undefined || Math.abs(this._top - top) > 1.5) {\n\t\t\tthis._top = Math.round(top);\n\t\t}\n\n\t\tconst borderRadius = Number.parseInt(window.getComputedStyle(this).getPropertyValue(\"border-radius\"));\n\t\tconst arrowPos = this.getArrowPosition(targetRect, popoverSize, left, top, isVertical, borderRadius);\n\n\t\tthis._left += this.getRTLCorrectionLeft();\n\n\t\treturn {\n\t\t\tarrow: arrowPos,\n\t\t\ttop: this._top,\n\t\t\tleft: this._left,\n\t\t\tactualPlacement,\n\t\t};\n\t}\n\n\tgetRTLCorrectionLeft() {\n\t\treturn parseFloat(window.getComputedStyle(this).left) - this.getBoundingClientRect().left;\n\t}\n\n\t/**\n\t * Calculates the position for the arrow.\n\t * @private\n\t * @param targetRect BoundingClientRect of the target element\n\t * @param popoverSize Width and height of the popover\n\t * @param left Left offset of the popover\n\t * @param top Top offset of the popover\n\t * @param isVertical If the popover is positioned vertically to the target element\n\t * @param borderRadius Value of the border-radius property\n\t * @returns Arrow's coordinates\n\t */\n\tgetArrowPosition(targetRect: DOMRect, popoverSize: PopoverSize, left: number, top: number, isVertical: boolean, borderRadius: number): ArrowPosition {\n\t\tconst actualHorizontalAlign = this._actualHorizontalAlign;\n\t\tlet arrowXCentered = actualHorizontalAlign === PopoverActualHorizontalAlign.Center || actualHorizontalAlign === PopoverActualHorizontalAlign.Stretch;\n\n\t\tif (actualHorizontalAlign === PopoverActualHorizontalAlign.Right && left <= targetRect.left) {\n\t\t\tarrowXCentered = true;\n\t\t}\n\n\t\tif (actualHorizontalAlign === PopoverActualHorizontalAlign.Left && left + popoverSize.width >= targetRect.left + targetRect.width) {\n\t\t\tarrowXCentered = true;\n\t\t}\n\n\t\tlet arrowTranslateX = 0;\n\t\tif (isVertical && arrowXCentered) {\n\t\t\tarrowTranslateX = targetRect.left + targetRect.width / 2 - left - popoverSize.width / 2;\n\t\t}\n\n\t\tlet arrowTranslateY = 0;\n\t\tif (!isVertical) {\n\t\t\tarrowTranslateY = targetRect.top + targetRect.height / 2 - top - popoverSize.height / 2;\n\t\t}\n\n\t\t// Restricts the arrow's translate value along each dimension,\n\t\t// so that the arrow does not clip over the popover's rounded borders.\n\t\tconst safeRangeForArrowY = popoverSize.height / 2 - borderRadius - ARROW_SIZE / 2 - 2;\n\t\tarrowTranslateY = clamp(\n\t\t\tarrowTranslateY,\n\t\t\t-safeRangeForArrowY,\n\t\t\tsafeRangeForArrowY,\n\t\t);\n\n\t\tconst safeRangeForArrowX = popoverSize.width / 2 - borderRadius - ARROW_SIZE / 2 - 2;\n\t\tarrowTranslateX = clamp(\n\t\t\tarrowTranslateX,\n\t\t\t-safeRangeForArrowX,\n\t\t\tsafeRangeForArrowX,\n\t\t);\n\n\t\treturn {\n\t\t\tx: Math.round(arrowTranslateX),\n\t\t\ty: Math.round(arrowTranslateY),\n\t\t};\n\t}\n\n\t/**\n\t * Fallbacks to new placement, prioritizing `Left` and `Right` placements.\n\t * @private\n\t */\n\tfallbackPlacement(clientWidth: number, clientHeight: number, targetRect: DOMRect, popoverSize: PopoverSize): PopoverActualPlacement | undefined {\n\t\tif (targetRect.left > popoverSize.width) {\n\t\t\treturn PopoverActualPlacement.Left;\n\t\t}\n\n\t\tif (clientWidth - targetRect.right > targetRect.left) {\n\t\t\treturn PopoverActualPlacement.Right;\n\t\t}\n\n\t\tif (clientHeight - targetRect.bottom > popoverSize.height) {\n\t\t\treturn PopoverActualPlacement.Bottom;\n\t\t}\n\n\t\tif (clientHeight - targetRect.bottom < targetRect.top) {\n\t\t\treturn PopoverActualPlacement.Top;\n\t\t}\n\t}\n\n\tgetActualPlacement(targetRect: DOMRect): `${PopoverActualPlacement}` {\n\t\tconst placement = this.placement;\n\t\tconst isVertical = placement === PopoverPlacement.Top || placement === PopoverPlacement.Bottom;\n\t\tconst popoverSize = this.getPopoverSize(!this.allowTargetOverlap);\n\n\t\tlet actualPlacement: PopoverActualPlacement = PopoverActualPlacement.Right;\n\n\t\tswitch (placement) {\n\t\tcase PopoverPlacement.Start:\n\t\t\tactualPlacement = this.isRtl ? PopoverActualPlacement.Right : PopoverActualPlacement.Left;\n\t\t\tbreak;\n\t\tcase PopoverPlacement.End:\n\t\t\tactualPlacement = this.isRtl ? PopoverActualPlacement.Left : PopoverActualPlacement.Right;\n\t\t\tbreak;\n\t\tcase PopoverPlacement.Top:\n\t\t\tactualPlacement = PopoverActualPlacement.Top;\n\t\t\tbreak;\n\t\tcase PopoverPlacement.Bottom:\n\t\t\tactualPlacement = PopoverActualPlacement.Bottom;\n\t\t\tbreak;\n\t\t}\n\n\t\tconst clientWidth = document.documentElement.clientWidth;\n\t\tlet clientHeight = document.documentElement.clientHeight;\n\t\tlet popoverHeight = popoverSize.height;\n\n\t\tif (isVertical) {\n\t\t\tpopoverHeight += this.hideArrow ? 0 : ARROW_SIZE;\n\t\t\tclientHeight -= Popover.VIEWPORT_MARGIN;\n\t\t}\n\n\t\tswitch (actualPlacement) {\n\t\tcase PopoverActualPlacement.Top:\n\t\t\tif (targetRect.top < popoverHeight\n\t\t\t\t&& targetRect.top < clientHeight - targetRect.bottom) {\n\t\t\t\tactualPlacement = PopoverActualPlacement.Bottom;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase PopoverActualPlacement.Bottom:\n\t\t\tif (clientHeight - targetRect.bottom < popoverHeight\n\t\t\t\t&& clientHeight - targetRect.bottom < targetRect.top) {\n\t\t\t\tactualPlacement = PopoverActualPlacement.Top;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase PopoverActualPlacement.Left:\n\t\t\tif (targetRect.left < popoverSize.width) {\n\t\t\t\tactualPlacement = this.fallbackPlacement(clientWidth, clientHeight, targetRect, popoverSize) || actualPlacement;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase PopoverActualPlacement.Right:\n\t\t\tif (clientWidth - targetRect.right < popoverSize.width) {\n\t\t\t\tactualPlacement = this.fallbackPlacement(clientWidth, clientHeight, targetRect, popoverSize) || actualPlacement;\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\n\t\treturn actualPlacement;\n\t}\n\n\tgetVerticalLeft(targetRect: DOMRect, popoverSize: PopoverSize): number {\n\t\tconst actualHorizontalAlign = this._actualHorizontalAlign;\n\t\tlet left = Popover.VIEWPORT_MARGIN;\n\n\t\tswitch (actualHorizontalAlign) {\n\t\tcase PopoverActualHorizontalAlign.Center:\n\t\tcase PopoverActualHorizontalAlign.Stretch:\n\t\t\tleft = targetRect.left - (popoverSize.width - targetRect.width) / 2;\n\t\t\tbreak;\n\t\tcase PopoverActualHorizontalAlign.Left:\n\t\t\tleft = targetRect.left;\n\t\t\tbreak;\n\t\tcase PopoverActualHorizontalAlign.Right:\n\t\t\tleft = targetRect.right - popoverSize.width;\n\t\t\tbreak;\n\t\t}\n\n\t\treturn left;\n\t}\n\n\tgetHorizontalTop(targetRect: DOMRect, popoverSize: PopoverSize): number {\n\t\tlet top = 0;\n\n\t\tswitch (this.verticalAlign) {\n\t\tcase PopoverVerticalAlign.Center:\n\t\tcase PopoverVerticalAlign.Stretch:\n\t\t\ttop = targetRect.top - (popoverSize.height - targetRect.height) / 2;\n\t\t\tbreak;\n\t\tcase PopoverVerticalAlign.Top:\n\t\t\ttop = targetRect.top;\n\t\t\tbreak;\n\t\tcase PopoverVerticalAlign.Bottom:\n\t\t\ttop = targetRect.bottom - popoverSize.height;\n\t\t\tbreak;\n\t\t}\n\n\t\treturn top;\n\t}\n\n\tget isModal() { // Required by Popup.js\n\t\treturn this.modal;\n\t}\n\n\tget _ariaLabelledBy() { // Required by Popup.js\n\t\tif (!this._ariaLabel && this._displayHeader) {\n\t\t\treturn \"ui5-popup-header\";\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\t...super.styles,\n\t\t\troot: {\n\t\t\t\t\"max-height\": this._maxHeight ? `${this._maxHeight}px` : \"\",\n\t\t\t\t\"max-width\": this._maxWidth ? `${this._maxWidth}px` : \"\",\n\t\t\t},\n\t\t\tarrow: {\n\t\t\t\ttransform: `translate(${this.arrowTranslateX}px, ${this.arrowTranslateY}px)`,\n\t\t\t},\n\t\t};\n\t}\n\n\tget classes() {\n\t\tconst allClasses = super.classes;\n\t\tallClasses.root[\"ui5-popover-root\"] = true;\n\n\t\treturn allClasses;\n\t}\n\n\t/**\n\t * Hook for descendants to hide header.\n\t */\n\tget _displayHeader() {\n\t\treturn !!(this.header.length || this.headerText);\n\t}\n\n\t/**\n\t * Hook for descendants to hide footer.\n\t */\n\tget _displayFooter() {\n\t\treturn true;\n\t}\n\n\tget isRtl() {\n\t\treturn this.effectiveDir === \"rtl\";\n\t}\n\n\tget _actualHorizontalAlign() : PopoverActualHorizontalAlign {\n\t\tswitch (this.horizontalAlign) {\n\t\tcase PopoverHorizontalAlign.Start:\n\t\t\treturn this.isRtl ? PopoverActualHorizontalAlign.Right : PopoverActualHorizontalAlign.Left;\n\t\tcase PopoverHorizontalAlign.End:\n\t\t\treturn this.isRtl ? PopoverActualHorizontalAlign.Left : PopoverActualHorizontalAlign.Right;\n\t\tcase PopoverHorizontalAlign.Stretch:\n\t\t\treturn PopoverActualHorizontalAlign.Stretch;\n\t\tcase PopoverHorizontalAlign.Center:\n\t\tdefault:\n\t\t\treturn PopoverActualHorizontalAlign.Center;\n\t\t}\n\t}\n}\n\nconst instanceOfPopover = (object: any): object is Popover => {\n\treturn \"opener\" in object;\n};\n\nPopover.define();\n\nexport default Popover;\n\nexport { instanceOfPopover };\n"]}
1
+ {"version":3,"file":"Popover.js","sourceRoot":"","sources":["../src/Popover.ts"],"names":[],"mappings":"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","sourcesContent":["import { instanceOfUI5Element } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport { isIOS } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { isClickInRect, getClosedPopupParent } from \"@ui5/webcomponents-base/dist/util/PopupUtils.js\";\nimport clamp from \"@ui5/webcomponents-base/dist/util/clamp.js\";\nimport DOMReferenceConverter from \"@ui5/webcomponents-base/dist/converters/DOMReference.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport Popup from \"./Popup.js\";\nimport PopoverPlacement from \"./types/PopoverPlacement.js\";\nimport PopoverVerticalAlign from \"./types/PopoverVerticalAlign.js\";\nimport PopoverHorizontalAlign from \"./types/PopoverHorizontalAlign.js\";\nimport { addOpenedPopover, removeOpenedPopover } from \"./popup-utils/PopoverRegistry.js\";\nimport PopoverResize from \"./PopoverResize.js\";\nimport type { ResizeHandlePlacement } from \"./PopoverResize.js\";\n\n// Template\nimport PopoverTemplate from \"./PopoverTemplate.js\";\n// Styles\nimport PopupsCommonCss from \"./generated/themes/PopupsCommon.css.js\";\nimport PopoverCss from \"./generated/themes/Popover.css.js\";\n\nconst ARROW_SIZE = 8;\n\ntype PopoverSize = {\n\twidth: number;\n\theight: number;\n}\n\ntype ArrowPosition = {\n\tx: number;\n\ty: number;\n}\n\nenum PopoverActualHorizontalAlign {\n\tCenter = \"Center\",\n\tLeft = \"Left\",\n\tRight = \"Right\",\n\tStretch = \"Stretch\",\n}\n\nenum PopoverActualPlacement {\n\tLeft = \"Left\",\n\tRight = \"Right\",\n\tTop = \"Top\",\n\tBottom = \"Bottom\",\n}\n\ntype CalculatedPlacement = {\n\tarrow: ArrowPosition,\n\ttop: number,\n\tleft: number,\n\tactualPlacement: `${PopoverActualPlacement}`,\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-popover` component displays additional information for an object\n * in a compact way and without leaving the page.\n * The Popover can contain various UI elements, such as fields, tables, images, and charts.\n * It can also include actions in the footer.\n *\n * ### Structure\n *\n * The popover has three main areas:\n *\n * - Header (optional)\n * - Content\n * - Footer (optional)\n *\n * **Note:** The `ui5-popover` is closed when the user clicks\n * or taps outside the popover\n * or selects an action within the popover. You can prevent this with the\n * `modal` property.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Popover.js\";`\n *\n * @constructor\n * @extends Popup\n * @since 1.0.0-rc.6\n * @public\n * @csspart header - Used to style the header of the component\n * @csspart content - Used to style the content of the component\n * @csspart footer - Used to style the footer of the component\n */\n@customElement({\n\ttag: \"ui5-popover\",\n\tstyles: [\n\t\tPopup.styles,\n\t\tPopupsCommonCss,\n\t\tPopoverCss,\n\t],\n\ttemplate: PopoverTemplate,\n})\nclass Popover extends Popup {\n\teventDetails!: Popup[\"eventDetails\"];\n\t/**\n\t * Defines the header text.\n\t *\n\t * **Note:** If `header` slot is provided, the `headerText` is ignored.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\theaderText?: string;\n\n\t/**\n\t * Determines on which side the component is placed at.\n\t * @default \"End\"\n\t * @public\n\t */\n\t@property()\n\tplacement: `${PopoverPlacement}` = \"End\";\n\n\t/**\n\t * Determines the horizontal alignment of the component.\n\t * @default \"Center\"\n\t * @public\n\t */\n\t@property()\n\thorizontalAlign: `${PopoverHorizontalAlign}` = \"Center\";\n\n\t/**\n\t * Determines the vertical alignment of the component.\n\t * @default \"Center\"\n\t * @public\n\t */\n\t@property()\n\tverticalAlign: `${PopoverVerticalAlign}` = \"Center\";\n\n\t/**\n\t * Defines whether the component should close when\n\t * clicking/tapping outside the popover.\n\t * If enabled, it blocks any interaction with the background.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tmodal = false;\n\n\t/**\n\t * Determines whether the component arrow is hidden.\n\t * @default false\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property({ type: Boolean })\n\thideArrow = false;\n\n\t/**\n\t * Determines if there is no enough space, the component can be placed\n\t * over the target.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tallowTargetOverlap = false;\n\n\t/**\n\t * Determines whether the component is resizable.\n\t * **Note:** This property is effective only on desktop devices.\n\t * @default false\n\t * @public\n\t * @since 2.19.0\n\t */\n\t@property({ type: Boolean })\n\tresizable = false;\n\n\t/**\n\t * Sets the X translation of the arrow\n\t * @private\n\t */\n\t@property({ type: Number, noAttribute: true })\n\tarrowTranslateX = 0;\n\n\t/**\n\t * Sets the Y translation of the arrow\n\t * @private\n\t */\n\t@property({ type: Number, noAttribute: true })\n\tarrowTranslateY = 0;\n\n\t/**\n\t * Returns the calculated placement depending on the free space\n\t * @private\n\t */\n\t@property()\n\tactualPlacement: `${PopoverActualPlacement}` = \"Right\";\n\n\t@property({ type: Number, noAttribute: true })\n\t_maxHeight?: number;\n\n\t@property({ type: Number, noAttribute: true })\n\t_maxWidth?: number;\n\n\t@property({ noAttribute: true })\n\t_resizeHandlePlacement?: `${ResizeHandlePlacement}`;\n\n\t/**\n\t * Defines the header HTML Element.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\theader!: Array<HTMLElement>;\n\n\t/**\n\t * Defines the footer HTML Element.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\tfooter!: Array<HTMLElement>;\n\n\t_opener?: HTMLElement | string | null | undefined;\n\t_openerRect?: DOMRect;\n\t_preventRepositionAndClose?: boolean;\n\t_top?: number;\n\t_left?: number;\n\t_oldPlacement?: CalculatedPlacement;\n\t_width?: string;\n\t_height?: string;\n\n\t_popoverResize: PopoverResize;\n\n\t_initialWidth?: string;\n\t_initialHeight?: string;\n\n\tstatic get VIEWPORT_MARGIN() {\n\t\treturn 10; // px\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._popoverResize = new PopoverResize(this);\n\t}\n\n\t/**\n\t * Defines the ID or DOM Reference of the element at which the popover is shown.\n\t * When using this attribute in a declarative way, you must only use the `id` (as a string) of the element at which you want to show the popover.\n\t * You can only set the `opener` attribute to a DOM Reference when using JavaScript.\n\t * @public\n\t * @default undefined\n\t * @since 1.2.0\n\t */\n\t@property({ converter: DOMReferenceConverter })\n\tset opener(value: HTMLElement | string | null) {\n\t\tif (this._opener === value) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._opener = value;\n\n\t\tif (value && this.open) {\n\t\t\tthis.openPopup();\n\t\t}\n\t}\n\n\tget opener(): HTMLElement | string | null | undefined {\n\t\treturn this._opener;\n\t}\n\n\tasync openPopup() {\n\t\tif (this._opened) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst opener = this.getOpenerHTMLElement(this.opener);\n\n\t\tif (!opener) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!opener || this.isOpenerOutsideViewport(opener.getBoundingClientRect())) {\n\t\t\tawait renderFinished();\n\t\t\tthis.open = false;\n\t\t\tthis.fireDecoratorEvent(\"close\");\n\t\t\treturn;\n\t\t}\n\n\t\tthis._initialWidth = this.style.width;\n\t\tthis._initialHeight = this.style.height;\n\n\t\tthis._openerRect = opener.getBoundingClientRect();\n\n\t\tawait super.openPopup();\n\t}\n\n\tclosePopup(escPressed = false, preventRegistryUpdate = false, preventFocusRestore = false) : void {\n\t\tObject.assign(this.style, {\n\t\t\twidth: this._initialWidth,\n\t\t\theight: this._initialHeight,\n\t\t});\n\n\t\tthis._popoverResize.reset();\n\t\tdelete this._resizeHandlePlacement;\n\n\t\tsuper.closePopup(escPressed, preventRegistryUpdate, preventFocusRestore);\n\t}\n\n\tisOpenerClicked(e: MouseEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\tconst opener = this.getOpenerHTMLElement(this.opener);\n\n\t\tif (!opener) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (target === opener) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (this._isUI5AbstractElement(target) && target.getFocusDomRef() === opener) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn e.composedPath().indexOf(opener) > -1;\n\t}\n\n\tisClicked(e: MouseEvent) {\n\t\tif (this._showResizeHandle) {\n\t\t\tconst resizeHandle = this.shadowRoot!.querySelector(\".ui5-popover-resize-handle\");\n\t\t\tif (resizeHandle === e.composedPath()[0]) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn isClickInRect(e, this.getBoundingClientRect());\n\t}\n\n\t/**\n\t * Override for the _addOpenedPopup hook, which would otherwise just call addOpenedPopup(this)\n\t * @private\n\t */\n\t_addOpenedPopup() {\n\t\taddOpenedPopover(this);\n\t}\n\n\t/**\n\t * Override for the _removeOpenedPopup hook, which would otherwise just call removeOpenedPopup(this)\n\t * @private\n\t */\n\t_removeOpenedPopup() {\n\t\tremoveOpenedPopover(this);\n\t}\n\n\tgetOpenerHTMLElement(opener: HTMLElement | string | null | undefined): HTMLElement | null | undefined {\n\t\tif (opener === undefined || opener === null) {\n\t\t\treturn opener;\n\t\t}\n\n\t\tif (opener instanceof HTMLElement) {\n\t\t\treturn this._isUI5AbstractElement(opener) ? opener.getFocusDomRef() : opener;\n\t\t}\n\n\t\tlet rootNode = this.getRootNode();\n\n\t\tif (rootNode === this) {\n\t\t\trootNode = document;\n\t\t}\n\n\t\tlet openerHTMLElement = (rootNode as Document | ShadowRoot).getElementById(opener);\n\n\t\tif (rootNode instanceof ShadowRoot && !openerHTMLElement) {\n\t\t\topenerHTMLElement = document.getElementById(opener);\n\t\t}\n\n\t\tif (openerHTMLElement) {\n\t\t\treturn this._isUI5AbstractElement(openerHTMLElement) ? openerHTMLElement.getFocusDomRef() : openerHTMLElement;\n\t\t}\n\n\t\treturn openerHTMLElement;\n\t}\n\n\tshouldCloseDueToOverflow(placement: `${PopoverActualPlacement}`, openerRect: DOMRect): boolean {\n\t\tconst threshold = 32;\n\t\tconst limits = {\n\t\t\t\"Left\": openerRect.right,\n\t\t\t\"Right\": openerRect.left,\n\t\t\t\"Top\": openerRect.top,\n\t\t\t\"Bottom\": openerRect.bottom,\n\t\t};\n\n\t\tconst opener = this.getOpenerHTMLElement(this.opener);\n\t\tconst closedPopupParent = getClosedPopupParent(opener!);\n\t\tlet overflowsBottom = false;\n\t\tlet overflowsTop = false;\n\n\t\tif (closedPopupParent instanceof Popover) {\n\t\t\tconst contentRect = closedPopupParent.getBoundingClientRect();\n\t\t\toverflowsBottom = openerRect.top > (contentRect.top + contentRect.height);\n\t\t\toverflowsTop = (openerRect.top + openerRect.height) < contentRect.top;\n\t\t}\n\n\t\treturn (limits[placement] < 0 || (limits[placement] + threshold > (closedPopupParent as unknown as Window).innerHeight)) || overflowsBottom || overflowsTop;\n\t}\n\n\tshouldCloseDueToNoOpener(openerRect: DOMRect): boolean {\n\t\treturn openerRect.top === 0\n\t\t\t&& openerRect.bottom === 0\n\t\t\t&& openerRect.left === 0\n\t\t\t&& openerRect.right === 0;\n\t}\n\n\tisOpenerOutsideViewport(openerRect: DOMRect): boolean {\n\t\treturn openerRect.bottom < 0\n\t\t\t|| openerRect.top > window.innerHeight\n\t\t\t|| openerRect.right < 0\n\t\t\t|| openerRect.left > window.innerWidth;\n\t}\n\n\t/**\n\t * @override\n\t */\n\t_resize() {\n\t\tsuper._resize();\n\n\t\tif (this.open) {\n\t\t\tthis.reposition();\n\t\t}\n\t}\n\n\tget _viewportMargin() {\n\t\treturn Popover.VIEWPORT_MARGIN;\n\t}\n\n\treposition() {\n\t\tthis._show();\n\n\t\tif (this.resizable) {\n\t\t\tthis._resizeHandlePlacement = this._popoverResize.getResizeHandlePlacement();\n\t\t}\n\t}\n\n\tasync _show() {\n\t\tsuper._show();\n\n\t\tconst opener = this.getOpenerHTMLElement(this.opener);\n\n\t\tif (!opener) {\n\t\t\tObject.assign(this.style, {\n\t\t\t\ttop: `0px`,\n\t\t\t\tleft: `0px`,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tif (opener && instanceOfUI5Element(opener) && !opener.getDomRef()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._opened) {\n\t\t\tthis._showOutsideViewport();\n\t\t}\n\n\t\tconst popoverSize = this.getPopoverSize();\n\t\tlet placement;\n\n\t\tif (popoverSize.width === 0 || popoverSize.height === 0) {\n\t\t\t// size can not be determined properly at this point, popover will be shown with the next reposition\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.open) {\n\t\t\t// update opener rect if it was changed during the popover being opened\n\t\t\tthis._openerRect = opener.getBoundingClientRect();\n\t\t}\n\n\t\tif (this._oldPlacement && this.shouldCloseDueToNoOpener(this._openerRect!) && this.isFocusWithin()) {\n\t\t\t// reuse the old placement as the opener is not available,\n\t\t\t// but keep the popover open as the focus is within\n\t\t\tplacement = this._oldPlacement;\n\t\t} else {\n\t\t\tplacement = this.calcPlacement(this._openerRect!, popoverSize);\n\t\t}\n\n\t\tif (this._preventRepositionAndClose || this.isOpenerOutsideViewport(this._openerRect!)) {\n\t\t\tawait this._waitForDomRef();\n\t\t\treturn this.closePopup();\n\t\t}\n\n\t\tthis._oldPlacement = placement;\n\t\tthis.actualPlacement = placement.actualPlacement;\n\n\t\tlet left = clamp(\n\t\t\tthis._left!,\n\t\t\tPopover.VIEWPORT_MARGIN,\n\t\t\tdocument.documentElement.clientWidth - popoverSize.width - Popover.VIEWPORT_MARGIN,\n\t\t);\n\n\t\tif (this.actualPlacement === PopoverActualPlacement.Right) {\n\t\t\tleft = Math.max(left, this._left!);\n\t\t}\n\n\t\tlet top = clamp(\n\t\t\tthis._top!,\n\t\t\tPopover.VIEWPORT_MARGIN,\n\t\t\tdocument.documentElement.clientHeight - popoverSize.height - Popover.VIEWPORT_MARGIN,\n\t\t);\n\n\t\tif (this.actualPlacement === PopoverActualPlacement.Bottom) {\n\t\t\ttop = Math.max(top, this._top!);\n\t\t}\n\n\t\tthis.arrowTranslateX = placement.arrow.x;\n\t\tthis.arrowTranslateY = placement.arrow.y;\n\n\t\ttop = this._adjustForIOSKeyboard(top);\n\n\t\tObject.assign(this.style, {\n\t\t\ttop: `${top}px`,\n\t\t\tleft: `${left}px`,\n\t\t});\n\n\t\tif (this._popoverResize.isResized) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.horizontalAlign === PopoverHorizontalAlign.Stretch && this._width) {\n\t\t\tthis.style.width = this._width;\n\t\t}\n\n\t\tif (this.verticalAlign === PopoverVerticalAlign.Stretch && this._height) {\n\t\t\tthis.style.height = this._height;\n\t\t}\n\t}\n\n\t/**\n\t * Adjust the desired top position to compensate for shift of the screen\n\t * caused by opened keyboard on iOS which affects all elements with position:fixed.\n\t * @private\n\t * @param top The target top in px.\n\t * @returns The adjusted top in px.\n\t */\n\t_adjustForIOSKeyboard(top: number): number {\n\t\tif (!isIOS()) {\n\t\t\treturn top;\n\t\t}\n\n\t\tconst actualTop = Math.ceil(this.getBoundingClientRect().top);\n\n\t\treturn top + (Number.parseInt(this.style.top || \"0\") - actualTop);\n\t}\n\n\tgetPopoverSize(calcScrollHeight: boolean = false): PopoverSize {\n\t\tconst rect = this.getBoundingClientRect();\n\t\tconst width = rect.width;\n\t\tlet height;\n\n\t\tconst domRef = this.getDomRef();\n\n\t\tif (calcScrollHeight && domRef) {\n\t\t\tconst header = domRef.querySelector(\".ui5-popup-header-root\");\n\t\t\tconst content = domRef.querySelector(\".ui5-popup-content\");\n\t\t\tconst footer = domRef.querySelector(\".ui5-popup-footer-root\");\n\n\t\t\theight = content?.scrollHeight || 0;\n\t\t\theight += header?.scrollHeight || 0;\n\t\t\theight += footer?.scrollHeight || 0;\n\t\t} else {\n\t\t\theight = rect.height;\n\t\t}\n\n\t\treturn { width, height };\n\t}\n\n\t_showOutsideViewport() {\n\t\tObject.assign(this.style, {\n\t\t\ttop: \"-10000px\",\n\t\t\tleft: \"-10000px\",\n\t\t});\n\t}\n\n\t_isUI5AbstractElement(el: HTMLElement): el is UI5Element {\n\t\treturn instanceOfUI5Element(el) && el.isUI5AbstractElement;\n\t}\n\n\tget arrowDOM() {\n\t\treturn this.shadowRoot!.querySelector(\".ui5-popover-arrow\")!;\n\t}\n\n\t/**\n\t * @protected\n\t */\n\tfocusOpener() {\n\t\tthis.getOpenerHTMLElement(this.opener)?.focus();\n\t}\n\n\t/**\n\t * @private\n\t */\n\tcalcPlacement(targetRect: DOMRect, popoverSize: PopoverSize): CalculatedPlacement {\n\t\tlet left = Popover.VIEWPORT_MARGIN;\n\t\tlet top = 0;\n\t\tconst allowTargetOverlap = this.allowTargetOverlap;\n\n\t\tconst clientWidth = document.documentElement.clientWidth;\n\t\tconst clientHeight = document.documentElement.clientHeight;\n\n\t\tlet maxHeight = clientHeight;\n\t\tlet maxWidth = clientWidth;\n\n\t\tconst actualPlacement = this.getActualPlacement(targetRect);\n\n\t\tthis._preventRepositionAndClose = this.shouldCloseDueToNoOpener(targetRect) || this.shouldCloseDueToOverflow(actualPlacement, targetRect);\n\n\t\tconst isVertical = actualPlacement === PopoverActualPlacement.Top\n\t\t\t|| actualPlacement === PopoverActualPlacement.Bottom;\n\n\t\tif (!this._popoverResize.isResized) {\n\t\t\tif (this.horizontalAlign === PopoverHorizontalAlign.Stretch && isVertical) {\n\t\t\t\tpopoverSize.width = targetRect.width;\n\t\t\t\tthis._width = `${targetRect.width}px`;\n\t\t\t} else if (this.verticalAlign === PopoverVerticalAlign.Stretch && !isVertical) {\n\t\t\t\tpopoverSize.height = targetRect.height;\n\t\t\t\tthis._height = `${targetRect.height}px`;\n\t\t\t}\n\t\t}\n\n\t\tconst arrowOffset = this.hideArrow ? 0 : ARROW_SIZE;\n\n\t\t// calc popover positions\n\t\tswitch (actualPlacement) {\n\t\tcase PopoverActualPlacement.Top:\n\t\t\tleft = this.getVerticalLeft(targetRect, popoverSize);\n\t\t\ttop = Math.max(targetRect.top - popoverSize.height - arrowOffset, 0);\n\n\t\t\tif (!allowTargetOverlap) {\n\t\t\t\tmaxHeight = targetRect.top - arrowOffset;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase PopoverActualPlacement.Bottom:\n\t\t\tleft = this.getVerticalLeft(targetRect, popoverSize);\n\t\t\ttop = targetRect.bottom + arrowOffset;\n\n\t\t\tif (allowTargetOverlap) {\n\t\t\t\ttop = Math.max(Math.min(top, clientHeight - popoverSize.height), 0);\n\t\t\t} else {\n\t\t\t\tmaxHeight = clientHeight - targetRect.bottom - arrowOffset;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase PopoverActualPlacement.Left:\n\t\t\tleft = Math.max(targetRect.left - popoverSize.width - arrowOffset, 0);\n\t\t\ttop = this.getHorizontalTop(targetRect, popoverSize);\n\n\t\t\tif (!allowTargetOverlap) {\n\t\t\t\tmaxWidth = targetRect.left - arrowOffset;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase PopoverActualPlacement.Right:\n\t\t\tleft = targetRect.left + targetRect.width + arrowOffset;\n\t\t\ttop = this.getHorizontalTop(targetRect, popoverSize);\n\n\t\t\tif (allowTargetOverlap) {\n\t\t\t\tleft = Math.max(Math.min(left, clientWidth - popoverSize.width), 0);\n\t\t\t} else {\n\t\t\t\tmaxWidth = clientWidth - targetRect.right - arrowOffset;\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\n\t\t// correct popover positions\n\t\tif (isVertical) {\n\t\t\tif (popoverSize.width > clientWidth || left < Popover.VIEWPORT_MARGIN) {\n\t\t\t\tleft = Popover.VIEWPORT_MARGIN;\n\t\t\t} else if (left + popoverSize.width > clientWidth - Popover.VIEWPORT_MARGIN) {\n\t\t\t\tleft = clientWidth - Popover.VIEWPORT_MARGIN - popoverSize.width;\n\t\t\t}\n\t\t} else {\n\t\t\tif (popoverSize.height > clientHeight || top < Popover.VIEWPORT_MARGIN) { // eslint-disable-line\n\t\t\t\ttop = Popover.VIEWPORT_MARGIN;\n\t\t\t} else if (top + popoverSize.height > clientHeight - Popover.VIEWPORT_MARGIN) {\n\t\t\t\ttop = clientHeight - Popover.VIEWPORT_MARGIN - popoverSize.height;\n\t\t\t}\n\t\t}\n\n\t\tthis._maxHeight = Math.round(maxHeight - Popover.VIEWPORT_MARGIN);\n\t\tthis._maxWidth = Math.round(maxWidth - Popover.VIEWPORT_MARGIN);\n\n\t\tif (this._left === undefined || Math.abs(this._left - left) > 1.5) {\n\t\t\tthis._left = Math.round(left);\n\t\t}\n\n\t\tif (this._top === undefined || Math.abs(this._top - top) > 1.5) {\n\t\t\tthis._top = Math.round(top);\n\t\t}\n\n\t\tconst borderRadius = Number.parseInt(window.getComputedStyle(this).getPropertyValue(\"border-radius\"));\n\t\tconst arrowPos = this.getArrowPosition(targetRect, popoverSize, left, top, isVertical, borderRadius);\n\n\t\tthis._left += this.getRTLCorrectionLeft();\n\n\t\treturn {\n\t\t\tarrow: arrowPos,\n\t\t\ttop: this._top,\n\t\t\tleft: this._left,\n\t\t\tactualPlacement,\n\t\t};\n\t}\n\n\tget isVertical() : boolean {\n\t\treturn this.placement === PopoverPlacement.Top || this.placement === PopoverPlacement.Bottom;\n\t}\n\n\tgetRTLCorrectionLeft() {\n\t\treturn parseFloat(window.getComputedStyle(this).left) - this.getBoundingClientRect().left;\n\t}\n\n\t/**\n\t * Calculates the position for the arrow.\n\t * @private\n\t * @param targetRect BoundingClientRect of the target element\n\t * @param popoverSize Width and height of the popover\n\t * @param left Left offset of the popover\n\t * @param top Top offset of the popover\n\t * @param isVertical If the popover is positioned vertically to the target element\n\t * @param borderRadius Value of the border-radius property\n\t * @returns Arrow's coordinates\n\t */\n\tgetArrowPosition(targetRect: DOMRect, popoverSize: PopoverSize, left: number, top: number, isVertical: boolean, borderRadius: number): ArrowPosition {\n\t\tconst actualHorizontalAlign = this._actualHorizontalAlign;\n\t\tlet arrowXCentered = actualHorizontalAlign === PopoverActualHorizontalAlign.Center || actualHorizontalAlign === PopoverActualHorizontalAlign.Stretch;\n\n\t\tif (actualHorizontalAlign === PopoverActualHorizontalAlign.Right && left <= targetRect.left) {\n\t\t\tarrowXCentered = true;\n\t\t}\n\n\t\tif (actualHorizontalAlign === PopoverActualHorizontalAlign.Left && left + popoverSize.width >= targetRect.left + targetRect.width) {\n\t\t\tarrowXCentered = true;\n\t\t}\n\n\t\tlet arrowTranslateX = 0;\n\t\tif (isVertical && arrowXCentered) {\n\t\t\tarrowTranslateX = targetRect.left + targetRect.width / 2 - left - popoverSize.width / 2;\n\t\t}\n\n\t\tlet arrowTranslateY = 0;\n\t\tif (!isVertical) {\n\t\t\tarrowTranslateY = targetRect.top + targetRect.height / 2 - top - popoverSize.height / 2;\n\t\t}\n\n\t\t// Restricts the arrow's translate value along each dimension,\n\t\t// so that the arrow does not clip over the popover's rounded borders.\n\t\tconst safeRangeForArrowY = popoverSize.height / 2 - borderRadius - ARROW_SIZE / 2 - 2;\n\t\tarrowTranslateY = clamp(\n\t\t\tarrowTranslateY,\n\t\t\t-safeRangeForArrowY,\n\t\t\tsafeRangeForArrowY,\n\t\t);\n\n\t\tconst safeRangeForArrowX = popoverSize.width / 2 - borderRadius - ARROW_SIZE / 2 - 2;\n\t\tarrowTranslateX = clamp(\n\t\t\tarrowTranslateX,\n\t\t\t-safeRangeForArrowX,\n\t\t\tsafeRangeForArrowX,\n\t\t);\n\n\t\treturn {\n\t\t\tx: Math.round(arrowTranslateX),\n\t\t\ty: Math.round(arrowTranslateY),\n\t\t};\n\t}\n\n\t/**\n\t * Fallbacks to new placement, prioritizing `Left` and `Right` placements.\n\t * @private\n\t */\n\tfallbackPlacement(clientWidth: number, clientHeight: number, targetRect: DOMRect, popoverSize: PopoverSize): PopoverActualPlacement | undefined {\n\t\tif (targetRect.left > popoverSize.width) {\n\t\t\treturn PopoverActualPlacement.Left;\n\t\t}\n\n\t\tif (clientWidth - targetRect.right > targetRect.left) {\n\t\t\treturn PopoverActualPlacement.Right;\n\t\t}\n\n\t\tif (clientHeight - targetRect.bottom > popoverSize.height) {\n\t\t\treturn PopoverActualPlacement.Bottom;\n\t\t}\n\n\t\tif (clientHeight - targetRect.bottom < targetRect.top) {\n\t\t\treturn PopoverActualPlacement.Top;\n\t\t}\n\t}\n\n\tgetActualPlacement(targetRect: DOMRect): `${PopoverActualPlacement}` {\n\t\tconst placement = this.placement;\n\t\tconst popoverSize = this.getPopoverSize(!this.allowTargetOverlap);\n\n\t\tlet actualPlacement: PopoverActualPlacement = PopoverActualPlacement.Right;\n\n\t\tswitch (placement) {\n\t\tcase PopoverPlacement.Start:\n\t\t\tactualPlacement = this.isRtl ? PopoverActualPlacement.Right : PopoverActualPlacement.Left;\n\t\t\tbreak;\n\t\tcase PopoverPlacement.End:\n\t\t\tactualPlacement = this.isRtl ? PopoverActualPlacement.Left : PopoverActualPlacement.Right;\n\t\t\tbreak;\n\t\tcase PopoverPlacement.Top:\n\t\t\tactualPlacement = PopoverActualPlacement.Top;\n\t\t\tbreak;\n\t\tcase PopoverPlacement.Bottom:\n\t\t\tactualPlacement = PopoverActualPlacement.Bottom;\n\t\t\tbreak;\n\t\t}\n\n\t\tconst clientWidth = document.documentElement.clientWidth;\n\t\tlet clientHeight = document.documentElement.clientHeight;\n\t\tlet popoverHeight = popoverSize.height;\n\n\t\tif (this.isVertical) {\n\t\t\tpopoverHeight += this.hideArrow ? 0 : ARROW_SIZE;\n\t\t\tclientHeight -= Popover.VIEWPORT_MARGIN;\n\t\t}\n\n\t\tswitch (actualPlacement) {\n\t\tcase PopoverActualPlacement.Top:\n\t\t\tif (targetRect.top < popoverHeight\n\t\t\t\t&& targetRect.top < clientHeight - targetRect.bottom) {\n\t\t\t\tactualPlacement = PopoverActualPlacement.Bottom;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase PopoverActualPlacement.Bottom:\n\t\t\tif (clientHeight - targetRect.bottom < popoverHeight\n\t\t\t\t&& clientHeight - targetRect.bottom < targetRect.top) {\n\t\t\t\tactualPlacement = PopoverActualPlacement.Top;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase PopoverActualPlacement.Left:\n\t\t\tif (targetRect.left < popoverSize.width) {\n\t\t\t\tactualPlacement = this.fallbackPlacement(clientWidth, clientHeight, targetRect, popoverSize) || actualPlacement;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase PopoverActualPlacement.Right:\n\t\t\tif (clientWidth - targetRect.right < popoverSize.width) {\n\t\t\t\tactualPlacement = this.fallbackPlacement(clientWidth, clientHeight, targetRect, popoverSize) || actualPlacement;\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\n\t\treturn actualPlacement;\n\t}\n\n\tgetVerticalLeft(targetRect: DOMRect, popoverSize: PopoverSize): number {\n\t\tconst actualHorizontalAlign = this._actualHorizontalAlign;\n\t\tlet left = Popover.VIEWPORT_MARGIN;\n\n\t\tswitch (actualHorizontalAlign) {\n\t\tcase PopoverActualHorizontalAlign.Center:\n\t\tcase PopoverActualHorizontalAlign.Stretch:\n\t\t\tleft = targetRect.left - (popoverSize.width - targetRect.width) / 2;\n\t\t\tleft = this._popoverResize.getCorrectedLeft(left);\n\t\t\tbreak;\n\t\tcase PopoverActualHorizontalAlign.Left:\n\t\t\tleft = targetRect.left;\n\t\t\tbreak;\n\t\tcase PopoverActualHorizontalAlign.Right:\n\t\t\tleft = targetRect.right - popoverSize.width;\n\t\t\tbreak;\n\t\t}\n\n\t\treturn left;\n\t}\n\n\tgetHorizontalTop(targetRect: DOMRect, popoverSize: PopoverSize): number {\n\t\tlet top = 0;\n\n\t\tswitch (this.verticalAlign) {\n\t\tcase PopoverVerticalAlign.Center:\n\t\tcase PopoverVerticalAlign.Stretch:\n\t\t\ttop = targetRect.top - (popoverSize.height - targetRect.height) / 2;\n\t\t\ttop = this._popoverResize.getCorrectedTop(top);\n\t\t\tbreak;\n\t\tcase PopoverVerticalAlign.Top:\n\t\t\ttop = targetRect.top;\n\t\t\tbreak;\n\t\tcase PopoverVerticalAlign.Bottom:\n\t\t\ttop = targetRect.bottom - popoverSize.height;\n\t\t\tbreak;\n\t\t}\n\n\t\treturn top;\n\t}\n\n\tget isModal() { // Required by Popup.js\n\t\treturn this.modal;\n\t}\n\n\tget _ariaLabelledBy() { // Required by Popup.js\n\t\tif (!this._ariaLabel && this._displayHeader) {\n\t\t\treturn \"ui5-popup-header\";\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\t...super.styles,\n\t\t\troot: {\n\t\t\t\t\"max-height\": this._maxHeight ? `${this._maxHeight}px` : \"\",\n\t\t\t\t\"max-width\": this._maxWidth ? `${this._maxWidth}px` : \"\",\n\t\t\t},\n\t\t\tarrow: {\n\t\t\t\ttransform: `translate(${this.arrowTranslateX}px, ${this.arrowTranslateY}px)`,\n\t\t\t},\n\t\t};\n\t}\n\n\tget classes() {\n\t\tconst allClasses = super.classes;\n\t\tallClasses.root[\"ui5-popover-root\"] = true;\n\t\tallClasses.root[\"ui5-popover-rtl\"] = this.isRtl;\n\n\t\tif (this.resizable) {\n\t\t\tthis._popoverResize.setCorrectResizeHandleClass(allClasses);\n\t\t}\n\n\t\treturn allClasses;\n\t}\n\n\t/**\n\t * Hook for descendants to hide header.\n\t */\n\tget _displayHeader() {\n\t\treturn !!(this.header.length || this.headerText);\n\t}\n\n\t/**\n\t * Hook for descendants to hide footer.\n\t */\n\tget _displayFooter() {\n\t\treturn true;\n\t}\n\n\tget isRtl() {\n\t\treturn this.effectiveDir === \"rtl\";\n\t}\n\n\tget _actualHorizontalAlign() : PopoverActualHorizontalAlign {\n\t\tswitch (this.horizontalAlign) {\n\t\tcase PopoverHorizontalAlign.Start:\n\t\t\treturn this.isRtl ? PopoverActualHorizontalAlign.Right : PopoverActualHorizontalAlign.Left;\n\t\tcase PopoverHorizontalAlign.End:\n\t\t\treturn this.isRtl ? PopoverActualHorizontalAlign.Left : PopoverActualHorizontalAlign.Right;\n\t\tcase PopoverHorizontalAlign.Stretch:\n\t\t\treturn PopoverActualHorizontalAlign.Stretch;\n\t\tcase PopoverHorizontalAlign.Center:\n\t\tdefault:\n\t\t\treturn PopoverActualHorizontalAlign.Center;\n\t\t}\n\t}\n\n\tget _showResizeHandle() {\n\t\treturn this.resizable && this.onDesktop;\n\t}\n\n\tget resizeHandlePlacement() {\n\t\treturn this._resizeHandlePlacement;\n\t}\n\n\t_onResizeMouseDown(e: MouseEvent) {\n\t\tthis._popoverResize.onResizeMouseDown(e);\n\t\tthis._resizeHandlePlacement = this._popoverResize.getResizeHandlePlacement();\n\t}\n}\n\nconst instanceOfPopover = (object: any): object is Popover => {\n\treturn \"opener\" in object;\n};\n\nPopover.define();\n\nexport default Popover;\n\nexport { instanceOfPopover, PopoverActualPlacement, PopoverActualHorizontalAlign };\n"]}
@@ -0,0 +1,62 @@
1
+ import type { ClassMap } from "@ui5/webcomponents-base/dist/types.js";
2
+ import type Popover from "./Popover.js";
3
+ declare enum ResizeHandlePlacement {
4
+ TopLeft = "TopLeft",
5
+ TopRight = "TopRight",
6
+ BottomLeft = "BottomLeft",
7
+ BottomRight = "BottomRight"
8
+ }
9
+ /**
10
+ * Manages resize functionality for Popover components
11
+ * @private
12
+ */
13
+ declare class PopoverResize {
14
+ private _popover;
15
+ private _resizeMouseMoveHandler;
16
+ private _resizeMouseUpHandler;
17
+ _initialClientX?: number;
18
+ _initialClientY?: number;
19
+ _initialBoundingRect?: DOMRect;
20
+ _minWidth?: number;
21
+ _minHeight?: number;
22
+ _resized: boolean;
23
+ _currentDeltaX?: number;
24
+ _currentDeltaY?: number;
25
+ _totalDeltaX?: number;
26
+ _totalDeltaY?: number;
27
+ constructor(popover: Popover);
28
+ /**
29
+ * Resets the resize state
30
+ */
31
+ reset(): void;
32
+ /**
33
+ * Returns whether the popover has been resized
34
+ */
35
+ get isResized(): boolean;
36
+ getCorrectedLeft(left: number): number;
37
+ getCorrectedTop(top: number): number;
38
+ setCorrectResizeHandleClass(allClasses: ClassMap): void;
39
+ getResizeHandlePlacement(): "TopLeft" | "TopRight" | "BottomLeft" | "BottomRight" | ResizeHandlePlacement | undefined;
40
+ /**
41
+ * Handles mouse down event on resize handle
42
+ */
43
+ onResizeMouseDown(e: MouseEvent): void;
44
+ /**
45
+ * Handles mouse move event during resize
46
+ */
47
+ private _onResizeMouseMove;
48
+ /**
49
+ * Handles mouse up event after resize
50
+ */
51
+ private _onResizeMouseUp;
52
+ /**
53
+ * Attaches mouse event handlers for resize
54
+ */
55
+ private _attachMouseResizeHandlers;
56
+ /**
57
+ * Detaches mouse event handlers for resize
58
+ */
59
+ private _detachMouseResizeHandlers;
60
+ }
61
+ export { ResizeHandlePlacement };
62
+ export default PopoverResize;