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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (732) hide show
  1. package/CHANGELOG.md +610 -1
  2. package/README.md +144 -52
  3. package/csp.js +7 -0
  4. package/customI18n.js +50 -0
  5. package/dist/Assets-static.js +6 -0
  6. package/dist/Assets.js +2 -1
  7. package/dist/Avatar.js +197 -46
  8. package/dist/AvatarGroup.js +603 -0
  9. package/dist/Badge.js +44 -22
  10. package/dist/Breadcrumbs.js +563 -0
  11. package/dist/BreadcrumbsItem.js +109 -0
  12. package/dist/BusyIndicator.js +159 -20
  13. package/dist/Button.js +132 -69
  14. package/dist/Calendar.js +342 -546
  15. package/dist/CalendarDate.js +45 -0
  16. package/dist/CalendarHeader.js +133 -62
  17. package/dist/CalendarPart.js +111 -0
  18. package/dist/Card.js +44 -158
  19. package/dist/CardHeader.js +288 -0
  20. package/dist/Carousel.js +272 -76
  21. package/dist/CheckBox.js +149 -49
  22. package/dist/ColorPalette.js +493 -0
  23. package/dist/ColorPaletteItem.js +137 -0
  24. package/dist/ColorPalettePopover.js +219 -0
  25. package/dist/ColorPicker.js +524 -0
  26. package/dist/ComboBox.js +603 -94
  27. package/dist/ComboBoxFilters.js +8 -1
  28. package/dist/ComboBoxGroupItem.js +70 -0
  29. package/dist/ComboBoxItem.js +12 -24
  30. package/dist/CustomListItem.js +38 -9
  31. package/dist/DateComponentBase.js +170 -0
  32. package/dist/DatePicker.js +418 -403
  33. package/dist/DateRangePicker.js +328 -0
  34. package/dist/DateTimePicker.js +111 -384
  35. package/dist/DayPicker.js +509 -431
  36. package/dist/Dialog.js +497 -50
  37. package/dist/DurationPicker.js +170 -317
  38. package/dist/FileUploader.js +217 -24
  39. package/dist/GroupHeaderListItem.js +24 -19
  40. package/dist/Icon.js +197 -36
  41. package/dist/Input.js +660 -167
  42. package/dist/Interfaces.js +192 -0
  43. package/dist/Label.js +27 -12
  44. package/dist/Link.js +138 -28
  45. package/dist/List.js +501 -110
  46. package/dist/ListItem.js +110 -28
  47. package/dist/ListItemBase.js +42 -8
  48. package/dist/MessageStrip.js +56 -70
  49. package/dist/MonthPicker.js +180 -182
  50. package/dist/MultiComboBox.js +583 -207
  51. package/dist/MultiComboBoxItem.js +8 -5
  52. package/dist/MultiInput.js +301 -0
  53. package/dist/Option.js +48 -5
  54. package/dist/Panel.js +100 -37
  55. package/dist/Popover.js +255 -224
  56. package/dist/Popup.js +381 -284
  57. package/dist/ProgressIndicator.js +235 -0
  58. package/dist/RadioButton.js +131 -51
  59. package/dist/RadioButtonGroup.js +53 -29
  60. package/dist/RangeSlider.js +769 -0
  61. package/dist/RatingIndicator.js +291 -0
  62. package/dist/ResponsivePopover.js +73 -46
  63. package/dist/SegmentedButton.js +127 -60
  64. package/dist/SegmentedButtonItem.js +109 -0
  65. package/dist/Select.js +448 -107
  66. package/dist/Slider.js +320 -0
  67. package/dist/SliderBase.js +842 -0
  68. package/dist/StandardListItem.js +44 -22
  69. package/dist/StepInput.js +684 -0
  70. package/dist/SuggestionGroupItem.js +64 -0
  71. package/dist/SuggestionItem.js +37 -31
  72. package/dist/SuggestionListItem.js +76 -0
  73. package/dist/Switch.js +60 -42
  74. package/dist/Tab.js +55 -24
  75. package/dist/TabContainer.js +241 -82
  76. package/dist/TabSeparator.js +1 -0
  77. package/dist/Table.js +480 -35
  78. package/dist/TableCell.js +11 -13
  79. package/dist/TableColumn.js +13 -3
  80. package/dist/TableGroupRow.js +160 -0
  81. package/dist/TableRow.js +244 -18
  82. package/dist/TextArea.js +153 -55
  83. package/dist/TimePicker.js +55 -644
  84. package/dist/TimePickerBase.js +463 -0
  85. package/dist/TimeSelection.js +493 -0
  86. package/dist/Title.js +16 -9
  87. package/dist/Toast.js +24 -13
  88. package/dist/ToggleButton.js +21 -13
  89. package/dist/Token.js +84 -45
  90. package/dist/Tokenizer.js +246 -64
  91. package/dist/Tree.js +443 -0
  92. package/dist/TreeItem.js +168 -0
  93. package/dist/TreeListItem.js +332 -0
  94. package/dist/WheelSlider.js +79 -59
  95. package/dist/YearPicker.js +199 -255
  96. package/dist/api.json +6877 -1
  97. package/dist/features/ColorPaletteMoreColors.js +42 -0
  98. package/dist/features/InputElementsFormSupport.js +0 -1
  99. package/dist/features/InputSuggestions.js +276 -53
  100. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  101. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  102. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  103. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  104. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -0
  105. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  106. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  107. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  108. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  109. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -0
  110. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -0
  111. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -0
  112. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -0
  113. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  114. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -0
  115. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  116. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  117. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  118. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -0
  119. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  120. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  121. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  122. package/dist/generated/assets/i18n/messagebundle_in.json +1 -0
  123. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  124. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  125. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  126. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  127. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  128. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  129. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  130. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  131. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  132. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  133. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  134. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  135. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -0
  136. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  137. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  138. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  139. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  140. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  141. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  142. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  143. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  144. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  145. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  146. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  147. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  148. package/dist/generated/assets/themes/sap_belize/parameters-bundle.css.json +1 -1
  149. package/dist/generated/assets/themes/sap_belize_hcb/parameters-bundle.css.json +1 -1
  150. package/dist/generated/assets/themes/sap_belize_hcw/parameters-bundle.css.json +1 -1
  151. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  152. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  153. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -0
  154. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -0
  155. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -0
  156. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -0
  157. package/dist/generated/i18n/i18n-defaults.js +2 -2
  158. package/dist/generated/json-imports/Themes-static.js +35 -0
  159. package/dist/generated/json-imports/Themes.js +23 -15
  160. package/dist/generated/json-imports/i18n-static.js +162 -0
  161. package/dist/generated/json-imports/i18n.js +113 -89
  162. package/dist/generated/templates/AvatarGroupTemplate.lit.js +9 -0
  163. package/dist/generated/templates/AvatarTemplate.lit.js +9 -9
  164. package/dist/generated/templates/BadgeTemplate.lit.js +5 -6
  165. package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js +8 -0
  166. package/dist/generated/templates/BreadcrumbsTemplate.lit.js +9 -0
  167. package/dist/generated/templates/BusyIndicatorTemplate.lit.js +7 -6
  168. package/dist/generated/templates/ButtonTemplate.lit.js +6 -6
  169. package/dist/generated/templates/CalendarHeaderTemplate.lit.js +6 -4
  170. package/dist/generated/templates/CalendarTemplate.lit.js +4 -4
  171. package/dist/generated/templates/CardHeaderTemplate.lit.js +12 -0
  172. package/dist/generated/templates/CardTemplate.lit.js +5 -8
  173. package/dist/generated/templates/CarouselTemplate.lit.js +13 -12
  174. package/dist/generated/templates/CheckBoxTemplate.lit.js +7 -7
  175. package/dist/generated/templates/ColorPaletteDialogTemplate.lit.js +7 -0
  176. package/dist/generated/templates/ColorPaletteItemTemplate.lit.js +7 -0
  177. package/dist/generated/templates/ColorPalettePopoverTemplate.lit.js +8 -0
  178. package/dist/generated/templates/ColorPaletteTemplate.lit.js +12 -0
  179. package/dist/generated/templates/ColorPickerTemplate.lit.js +7 -0
  180. package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js +20 -5
  181. package/dist/generated/templates/ComboBoxTemplate.lit.js +8 -6
  182. package/dist/generated/templates/CustomListItemTemplate.lit.js +13 -13
  183. package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +7 -6
  184. package/dist/generated/templates/DatePickerTemplate.lit.js +6 -5
  185. package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js +9 -12
  186. package/dist/generated/templates/DayPickerTemplate.lit.js +13 -11
  187. package/dist/generated/templates/DialogTemplate.lit.js +9 -8
  188. package/dist/generated/templates/FileUploaderPopoverTemplate.lit.js +10 -0
  189. package/dist/generated/templates/FileUploaderTemplate.lit.js +7 -7
  190. package/dist/generated/templates/GroupHeaderListItemTemplate.lit.js +4 -4
  191. package/dist/generated/templates/IconTemplate.lit.js +6 -6
  192. package/dist/generated/templates/InputPopoverTemplate.lit.js +24 -23
  193. package/dist/generated/templates/InputTemplate.lit.js +9 -8
  194. package/dist/generated/templates/LabelTemplate.lit.js +4 -4
  195. package/dist/generated/templates/LinkTemplate.lit.js +5 -5
  196. package/dist/generated/templates/ListItemTemplate.lit.js +13 -13
  197. package/dist/generated/templates/ListTemplate.lit.js +12 -9
  198. package/dist/generated/templates/MessageStripTemplate.lit.js +6 -27
  199. package/dist/generated/templates/MonthPickerTemplate.lit.js +6 -6
  200. package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +23 -7
  201. package/dist/generated/templates/MultiComboBoxTemplate.lit.js +10 -8
  202. package/dist/generated/templates/MultiInputTemplate.lit.js +16 -0
  203. package/dist/generated/templates/PanelTemplate.lit.js +9 -6
  204. package/dist/generated/templates/PopoverTemplate.lit.js +9 -9
  205. package/dist/generated/templates/PopupBlockLayerTemplate.lit.js +7 -0
  206. package/dist/generated/templates/PopupTemplate.lit.js +4 -4
  207. package/dist/generated/templates/ProgressIndicatorTemplate.lit.js +17 -0
  208. package/dist/generated/templates/RadioButtonTemplate.lit.js +7 -7
  209. package/dist/generated/templates/RangeSliderTemplate.lit.js +13 -0
  210. package/dist/generated/templates/RatingIndicatorTemplate.lit.js +14 -0
  211. package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +16 -14
  212. package/dist/generated/templates/SegmentedButtonItemTemplate.lit.js +8 -0
  213. package/dist/generated/templates/SegmentedButtonTemplate.lit.js +4 -11
  214. package/dist/generated/templates/SelectPopoverTemplate.lit.js +20 -6
  215. package/dist/generated/templates/SelectTemplate.lit.js +6 -5
  216. package/dist/generated/templates/SliderBaseTemplate.lit.js +11 -0
  217. package/dist/generated/templates/SliderTemplate.lit.js +12 -0
  218. package/dist/generated/templates/StandardListItemTemplate.lit.js +21 -19
  219. package/dist/generated/templates/StepInputTemplate.lit.js +10 -0
  220. package/dist/generated/templates/SuggestionListItemTemplate.lit.js +27 -0
  221. package/dist/generated/templates/SwitchTemplate.lit.js +8 -6
  222. package/dist/generated/templates/TabContainerPopoverTemplate.lit.js +6 -6
  223. package/dist/generated/templates/TabContainerTemplate.lit.js +16 -14
  224. package/dist/generated/templates/TabInOverflowTemplate.lit.js +6 -17
  225. package/dist/generated/templates/TabInStripTemplate.lit.js +6 -30
  226. package/dist/generated/templates/TabSeparatorTemplate.lit.js +4 -4
  227. package/dist/generated/templates/TabTemplate.lit.js +4 -4
  228. package/dist/generated/templates/TableCellTemplate.lit.js +4 -4
  229. package/dist/generated/templates/TableColumnTemplate.lit.js +4 -4
  230. package/dist/generated/templates/TableGroupRowTemplate.lit.js +7 -0
  231. package/dist/generated/templates/TableRowTemplate.lit.js +12 -10
  232. package/dist/generated/templates/TableTemplate.lit.js +13 -8
  233. package/dist/generated/templates/TextAreaPopoverTemplate.lit.js +8 -8
  234. package/dist/generated/templates/TextAreaTemplate.lit.js +8 -8
  235. package/dist/generated/templates/TimePickerPopoverTemplate.lit.js +4 -8
  236. package/dist/generated/templates/TimePickerTemplate.lit.js +6 -5
  237. package/dist/generated/templates/TimeSelectionTemplate.lit.js +11 -0
  238. package/dist/generated/templates/TitleTemplate.lit.js +10 -10
  239. package/dist/generated/templates/ToastTemplate.lit.js +5 -4
  240. package/dist/generated/templates/ToggleButtonTemplate.lit.js +6 -6
  241. package/dist/generated/templates/TokenTemplate.lit.js +7 -5
  242. package/dist/generated/templates/TokenizerPopoverTemplate.lit.js +12 -0
  243. package/dist/generated/templates/TokenizerTemplate.lit.js +6 -6
  244. package/dist/generated/templates/TreeListItemTemplate.lit.js +21 -0
  245. package/dist/generated/templates/TreeTemplate.lit.js +8 -0
  246. package/dist/generated/templates/WheelSliderTemplate.lit.js +7 -7
  247. package/dist/generated/templates/YearPickerTemplate.lit.js +6 -6
  248. package/dist/generated/themes/Avatar.css.js +5 -5
  249. package/dist/generated/themes/AvatarGroup.css.js +8 -0
  250. package/dist/generated/themes/Badge.css.js +5 -5
  251. package/dist/generated/themes/Breadcrumbs.css.js +8 -0
  252. package/dist/generated/themes/BreadcrumbsPopover.css.js +8 -0
  253. package/dist/generated/themes/BrowserScrollbar.css.js +8 -0
  254. package/dist/generated/themes/BusyIndicator.css.js +5 -5
  255. package/dist/generated/themes/Button.css.js +5 -5
  256. package/dist/generated/themes/Button.ie11.css.js +8 -0
  257. package/dist/generated/themes/Calendar.css.js +5 -5
  258. package/dist/generated/themes/CalendarHeader.css.js +5 -5
  259. package/dist/generated/themes/Card.css.js +5 -5
  260. package/dist/generated/themes/CardHeader.css.js +8 -0
  261. package/dist/generated/themes/Carousel.css.js +5 -5
  262. package/dist/generated/themes/CheckBox.css.js +5 -5
  263. package/dist/generated/themes/ColorPalette.css.js +8 -0
  264. package/dist/generated/themes/ColorPaletteItem.css.js +8 -0
  265. package/dist/generated/themes/ColorPalettePopover.css.js +8 -0
  266. package/dist/generated/themes/ColorPaletteStaticArea.css.js +8 -0
  267. package/dist/generated/themes/ColorPicker.css.js +8 -0
  268. package/dist/generated/themes/ComboBox.css.js +5 -5
  269. package/dist/generated/themes/ComboBoxPopover.css.js +5 -5
  270. package/dist/generated/themes/CustomListItem.css.js +5 -5
  271. package/dist/generated/themes/DatePicker.css.js +5 -5
  272. package/dist/generated/themes/DatePickerPopover.css.js +5 -5
  273. package/dist/generated/themes/DateRangePicker.css.js +8 -0
  274. package/dist/generated/themes/DateTimePicker.css.js +8 -0
  275. package/dist/generated/themes/DateTimePickerPopover.css.js +5 -5
  276. package/dist/generated/themes/DayPicker.css.js +5 -5
  277. package/dist/generated/themes/Dialog.css.js +5 -5
  278. package/dist/generated/themes/FileUploader.css.js +5 -5
  279. package/dist/generated/themes/GroupHeaderListItem.css.js +5 -5
  280. package/dist/generated/themes/GrowingButton.css.js +8 -0
  281. package/dist/generated/themes/Icon.css.js +5 -5
  282. package/dist/generated/themes/Input.css.js +5 -5
  283. package/dist/generated/themes/InputIcon.css.js +5 -5
  284. package/dist/generated/themes/InvisibleTextStyles.css.js +5 -5
  285. package/dist/generated/themes/Label.css.js +5 -5
  286. package/dist/generated/themes/Link.css.js +5 -5
  287. package/dist/generated/themes/List.css.js +5 -5
  288. package/dist/generated/themes/ListItem.css.js +5 -5
  289. package/dist/generated/themes/ListItemBase.css.js +5 -5
  290. package/dist/generated/themes/MessageStrip.css.js +5 -5
  291. package/dist/generated/themes/MonthPicker.css.js +5 -5
  292. package/dist/generated/themes/MultiComboBox.css.js +5 -5
  293. package/dist/generated/themes/MultiInput.css.js +8 -0
  294. package/dist/generated/themes/Panel.css.js +5 -5
  295. package/dist/generated/themes/Popover.css.js +5 -5
  296. package/dist/generated/themes/Popup.css.js +5 -5
  297. package/dist/generated/themes/PopupGlobal.css.js +8 -0
  298. package/dist/generated/themes/PopupStaticAreaStyles.css.js +8 -0
  299. package/dist/generated/themes/PopupsCommon.css.js +8 -0
  300. package/dist/generated/themes/ProgressIndicator.css.js +8 -0
  301. package/dist/generated/themes/RadioButton.css.js +5 -5
  302. package/dist/generated/themes/RatingIndicator.css.js +8 -0
  303. package/dist/generated/themes/ResponsivePopover.css.js +5 -5
  304. package/dist/generated/themes/ResponsivePopoverCommon.css.js +5 -5
  305. package/dist/generated/themes/SegmentedButton.css.js +5 -5
  306. package/dist/generated/themes/Select.css.js +5 -5
  307. package/dist/generated/themes/SelectPopover.css.js +8 -0
  308. package/dist/generated/themes/SliderBase.css.js +8 -0
  309. package/dist/generated/themes/StepInput.css.js +8 -0
  310. package/dist/generated/themes/Suggestions.css.js +8 -0
  311. package/dist/generated/themes/Switch.css.js +5 -5
  312. package/dist/generated/themes/Tab.css.js +5 -5
  313. package/dist/generated/themes/TabContainer.css.js +5 -5
  314. package/dist/generated/themes/TabInOverflow.css.js +5 -5
  315. package/dist/generated/themes/TabInStrip.css.js +5 -5
  316. package/dist/generated/themes/Table.css.js +5 -5
  317. package/dist/generated/themes/TableCell.css.js +5 -5
  318. package/dist/generated/themes/TableColumn.css.js +5 -5
  319. package/dist/generated/themes/TableGroupRow.css.js +8 -0
  320. package/dist/generated/themes/TableRow.css.js +5 -5
  321. package/dist/generated/themes/TapHighlightColor.css.js +8 -0
  322. package/dist/generated/themes/TextArea.css.js +5 -5
  323. package/dist/generated/themes/TimePicker.css.js +5 -5
  324. package/dist/generated/themes/TimePickerPopover.css.js +5 -5
  325. package/dist/generated/themes/TimeSelection.css.js +8 -0
  326. package/dist/generated/themes/Title.css.js +5 -5
  327. package/dist/generated/themes/Toast.css.js +5 -5
  328. package/dist/generated/themes/ToggleButton.css.js +5 -5
  329. package/dist/generated/themes/ToggleButton.ie11.css.js +8 -0
  330. package/dist/generated/themes/Token.css.js +5 -5
  331. package/dist/generated/themes/Tokenizer.css.js +5 -5
  332. package/dist/generated/themes/Tree.css.js +8 -0
  333. package/dist/generated/themes/TreeListItem.css.js +8 -0
  334. package/dist/generated/themes/ValueStateMessage.css.js +5 -5
  335. package/dist/generated/themes/WheelSlider.css.js +5 -5
  336. package/dist/generated/themes/YearPicker.css.js +5 -5
  337. package/dist/generated/themes/sap_belize/parameters-bundle.css.js +1 -1
  338. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js +1 -1
  339. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js +1 -1
  340. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  341. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  342. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -0
  343. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -0
  344. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -0
  345. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -0
  346. package/dist/i18n/messagebundle.properties +335 -0
  347. package/dist/i18n/messagebundle_ar.properties +224 -0
  348. package/dist/i18n/messagebundle_bg.properties +224 -0
  349. package/dist/i18n/messagebundle_ca.properties +224 -0
  350. package/dist/i18n/messagebundle_cs.properties +224 -0
  351. package/dist/i18n/messagebundle_cy.properties +224 -0
  352. package/dist/i18n/messagebundle_da.properties +224 -0
  353. package/dist/i18n/messagebundle_de.properties +224 -0
  354. package/dist/i18n/messagebundle_el.properties +224 -0
  355. package/dist/i18n/messagebundle_en.properties +224 -0
  356. package/dist/i18n/messagebundle_en_GB.properties +224 -0
  357. package/dist/i18n/messagebundle_en_US_sappsd.properties +224 -0
  358. package/dist/i18n/messagebundle_en_US_saprigi.properties +224 -0
  359. package/dist/i18n/messagebundle_en_US_saptrc.properties +224 -0
  360. package/dist/i18n/messagebundle_es.properties +224 -0
  361. package/dist/i18n/messagebundle_es_MX.properties +224 -0
  362. package/dist/i18n/messagebundle_et.properties +224 -0
  363. package/dist/i18n/messagebundle_fi.properties +224 -0
  364. package/dist/i18n/messagebundle_fr.properties +224 -0
  365. package/dist/i18n/messagebundle_fr_CA.properties +224 -0
  366. package/dist/i18n/messagebundle_hi.properties +224 -0
  367. package/dist/i18n/messagebundle_hr.properties +224 -0
  368. package/dist/i18n/messagebundle_hu.properties +224 -0
  369. package/dist/i18n/messagebundle_id.properties +224 -0
  370. package/dist/i18n/messagebundle_in.properties +172 -0
  371. package/dist/i18n/messagebundle_it.properties +224 -0
  372. package/dist/i18n/messagebundle_iw.properties +224 -0
  373. package/dist/i18n/messagebundle_ja.properties +224 -0
  374. package/dist/i18n/messagebundle_kk.properties +224 -0
  375. package/dist/i18n/messagebundle_ko.properties +224 -0
  376. package/dist/i18n/messagebundle_lt.properties +224 -0
  377. package/dist/i18n/messagebundle_lv.properties +224 -0
  378. package/dist/i18n/messagebundle_ms.properties +224 -0
  379. package/dist/i18n/messagebundle_nl.properties +224 -0
  380. package/dist/i18n/messagebundle_no.properties +224 -0
  381. package/dist/i18n/messagebundle_pl.properties +224 -0
  382. package/dist/i18n/messagebundle_pt.properties +224 -0
  383. package/dist/i18n/messagebundle_pt_PT.properties +224 -0
  384. package/dist/i18n/messagebundle_ro.properties +224 -0
  385. package/dist/i18n/messagebundle_ru.properties +224 -0
  386. package/dist/i18n/messagebundle_sh.properties +224 -0
  387. package/dist/i18n/messagebundle_sk.properties +224 -0
  388. package/dist/i18n/messagebundle_sl.properties +224 -0
  389. package/dist/i18n/messagebundle_sv.properties +224 -0
  390. package/dist/i18n/messagebundle_th.properties +224 -0
  391. package/dist/i18n/messagebundle_tr.properties +224 -0
  392. package/dist/i18n/messagebundle_uk.properties +224 -0
  393. package/dist/i18n/messagebundle_vi.properties +224 -0
  394. package/dist/i18n/messagebundle_zh_CN.properties +224 -0
  395. package/dist/i18n/messagebundle_zh_TW.properties +224 -0
  396. package/dist/popup-utils/OpenedPopupsRegistry.js +18 -13
  397. package/dist/popup-utils/PopoverRegistry.js +55 -21
  398. package/dist/timepicker-utils/TimeSlider.js +15 -13
  399. package/dist/types/{AvatarBackgroundColor.js → AvatarColorScheme.js} +9 -9
  400. package/dist/types/AvatarGroupType.js +43 -0
  401. package/dist/types/AvatarShape.js +1 -1
  402. package/dist/types/AvatarSize.js +1 -1
  403. package/dist/types/BreadcrumbsDesign.js +42 -0
  404. package/dist/types/BreadcrumbsSeparatorStyle.js +69 -0
  405. package/dist/types/BusyIndicatorSize.js +1 -1
  406. package/dist/types/ButtonDesign.js +8 -1
  407. package/dist/types/CalendarSelectionMode.js +47 -0
  408. package/dist/types/CarouselArrowsPlacement.js +3 -3
  409. package/dist/types/GrowingMode.js +48 -0
  410. package/dist/types/InputType.js +7 -7
  411. package/dist/types/LinkDesign.js +1 -1
  412. package/dist/types/ListGrowingMode.js +15 -0
  413. package/dist/types/ListItemType.js +2 -2
  414. package/dist/types/ListMode.js +9 -1
  415. package/dist/types/ListSeparators.js +1 -1
  416. package/dist/types/{MessageStripType.js → MessageStripDesign.js} +7 -7
  417. package/dist/types/PanelAccessibleRole.js +1 -1
  418. package/dist/types/PopoverHorizontalAlign.js +1 -1
  419. package/dist/types/PopoverPlacementType.js +2 -2
  420. package/dist/types/PopoverVerticalAlign.js +1 -2
  421. package/dist/types/Priority.js +55 -0
  422. package/dist/types/SemanticColor.js +1 -1
  423. package/dist/types/SwitchDesign.js +40 -0
  424. package/dist/types/TabContainerTabsPlacement.js +5 -5
  425. package/dist/types/TabLayout.js +1 -1
  426. package/dist/types/TableGrowingMode.js +15 -0
  427. package/dist/types/TableMode.js +47 -0
  428. package/dist/types/TableRowType.js +40 -0
  429. package/dist/types/TitleLevel.js +1 -1
  430. package/dist/types/ToastPlacement.js +1 -2
  431. package/dist/types/WrappingType.js +41 -0
  432. package/dist/webcomponentsjs/CHANGELOG.md +61 -0
  433. package/dist/webcomponentsjs/README.md +64 -47
  434. package/dist/webcomponentsjs/bundles/webcomponents-ce.js +38 -38
  435. package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +1 -1
  436. package/dist/webcomponentsjs/bundles/webcomponents-pf_dom.js +60 -0
  437. package/dist/webcomponentsjs/bundles/webcomponents-pf_dom.js.map +1 -0
  438. package/dist/webcomponentsjs/bundles/webcomponents-pf_js.js +95 -0
  439. package/dist/webcomponentsjs/bundles/webcomponents-pf_js.js.map +1 -0
  440. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +292 -229
  441. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +1 -1
  442. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +190 -170
  443. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +1 -1
  444. package/dist/webcomponentsjs/bundles/webcomponents-sd.js +151 -132
  445. package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +1 -1
  446. package/dist/webcomponentsjs/custom-elements-es5-adapter.js +2 -2
  447. package/dist/webcomponentsjs/webcomponents-bundle.js +302 -230
  448. package/dist/webcomponentsjs/webcomponents-bundle.js.map +1 -1
  449. package/dist/webcomponentsjs/webcomponents-loader.js +49 -28
  450. package/package-scripts.js +1 -0
  451. package/package.json +23 -6
  452. package/src/Assets-static.js +6 -0
  453. package/src/Assets.js +7 -0
  454. package/src/Avatar.hbs +20 -0
  455. package/src/Avatar.js +392 -0
  456. package/src/AvatarGroup.hbs +30 -0
  457. package/src/AvatarGroup.js +603 -0
  458. package/src/Badge.hbs +14 -0
  459. package/src/Badge.js +165 -0
  460. package/src/Breadcrumbs.hbs +42 -0
  461. package/src/Breadcrumbs.js +563 -0
  462. package/src/BreadcrumbsItem.js +109 -0
  463. package/src/BreadcrumbsPopover.hbs +28 -0
  464. package/src/BusyIndicator.hbs +32 -0
  465. package/src/BusyIndicator.js +269 -0
  466. package/src/Button.hbs +45 -0
  467. package/src/Button.js +463 -0
  468. package/src/Calendar.hbs +69 -0
  469. package/src/Calendar.js +489 -0
  470. package/src/CalendarDate.js +45 -0
  471. package/src/CalendarHeader.hbs +54 -0
  472. package/src/CalendarHeader.js +209 -0
  473. package/src/CalendarPart.js +111 -0
  474. package/src/Card.hbs +14 -0
  475. package/src/Card.js +160 -0
  476. package/src/CardHeader.hbs +35 -0
  477. package/src/CardHeader.js +288 -0
  478. package/src/Carousel.hbs +85 -0
  479. package/src/Carousel.js +681 -0
  480. package/src/CheckBox.hbs +44 -0
  481. package/src/CheckBox.js +424 -0
  482. package/src/ColorPalette.hbs +52 -0
  483. package/src/ColorPalette.js +493 -0
  484. package/src/ColorPaletteDialog.hbs +18 -0
  485. package/src/ColorPaletteItem.hbs +11 -0
  486. package/src/ColorPaletteItem.js +137 -0
  487. package/src/ColorPalettePopover.hbs +29 -0
  488. package/src/ColorPalettePopover.js +219 -0
  489. package/src/ColorPicker.hbs +98 -0
  490. package/src/ColorPicker.js +524 -0
  491. package/src/ComboBox.hbs +49 -0
  492. package/src/ComboBox.js +1041 -0
  493. package/src/ComboBoxFilters.js +40 -0
  494. package/src/ComboBoxGroupItem.js +70 -0
  495. package/src/ComboBoxItem.js +49 -0
  496. package/src/ComboBoxPopover.hbs +125 -0
  497. package/src/CustomListItem.hbs +5 -0
  498. package/src/CustomListItem.js +99 -0
  499. package/src/DateComponentBase.js +170 -0
  500. package/src/DatePicker.hbs +44 -0
  501. package/src/DatePicker.js +823 -0
  502. package/src/DatePickerPopover.hbs +63 -0
  503. package/src/DateRangePicker.js +328 -0
  504. package/src/DateTimePicker.js +430 -0
  505. package/src/DateTimePickerPopover.hbs +74 -0
  506. package/src/DayPicker.hbs +66 -0
  507. package/src/DayPicker.js +754 -0
  508. package/src/Dialog.hbs +35 -0
  509. package/src/Dialog.js +601 -0
  510. package/src/DurationPicker.js +312 -0
  511. package/src/FileUploader.hbs +40 -0
  512. package/src/FileUploader.js +532 -0
  513. package/src/FileUploaderPopover.hbs +25 -0
  514. package/src/GroupHeaderListItem.hbs +15 -0
  515. package/src/GroupHeaderListItem.js +94 -0
  516. package/src/Icon.hbs +25 -0
  517. package/src/Icon.js +373 -0
  518. package/src/Input.hbs +78 -0
  519. package/src/Input.js +1381 -0
  520. package/src/InputPopover.hbs +118 -0
  521. package/src/Interfaces.js +192 -0
  522. package/src/Label.hbs +13 -0
  523. package/src/Label.js +152 -0
  524. package/src/Link.hbs +20 -0
  525. package/src/Link.js +349 -0
  526. package/src/List.hbs +89 -0
  527. package/src/List.js +1056 -0
  528. package/src/ListItem.hbs +102 -0
  529. package/src/ListItem.js +371 -0
  530. package/src/ListItemBase.js +179 -0
  531. package/src/MessageStrip.hbs +34 -0
  532. package/src/MessageStrip.js +227 -0
  533. package/src/MonthPicker.hbs +29 -0
  534. package/src/MonthPicker.js +299 -0
  535. package/src/MultiComboBox.hbs +78 -0
  536. package/src/MultiComboBox.js +1091 -0
  537. package/src/MultiComboBoxItem.js +43 -0
  538. package/src/MultiComboBoxPopover.hbs +133 -0
  539. package/src/MultiInput.hbs +41 -0
  540. package/src/MultiInput.js +301 -0
  541. package/src/Option.js +115 -0
  542. package/src/Panel.hbs +63 -0
  543. package/src/Panel.js +462 -0
  544. package/src/Popover.hbs +25 -0
  545. package/src/Popover.js +786 -0
  546. package/src/Popup.hbs +34 -0
  547. package/src/Popup.js +567 -0
  548. package/src/PopupBlockLayer.hbs +7 -0
  549. package/src/ProgressIndicator.hbs +35 -0
  550. package/src/ProgressIndicator.js +235 -0
  551. package/src/RadioButton.hbs +33 -0
  552. package/src/RadioButton.js +494 -0
  553. package/src/RadioButtonGroup.js +205 -0
  554. package/src/RangeSlider.hbs +70 -0
  555. package/src/RangeSlider.js +769 -0
  556. package/src/RatingIndicator.hbs +33 -0
  557. package/src/RatingIndicator.js +291 -0
  558. package/src/ResponsivePopover.hbs +39 -0
  559. package/src/ResponsivePopover.js +206 -0
  560. package/src/SegmentedButton.hbs +17 -0
  561. package/src/SegmentedButton.js +290 -0
  562. package/src/SegmentedButtonItem.hbs +42 -0
  563. package/src/SegmentedButtonItem.js +109 -0
  564. package/src/Select.hbs +45 -0
  565. package/src/Select.js +834 -0
  566. package/src/SelectPopover.hbs +89 -0
  567. package/src/Slider.hbs +42 -0
  568. package/src/Slider.js +320 -0
  569. package/src/SliderBase.hbs +38 -0
  570. package/src/SliderBase.js +842 -0
  571. package/src/StandardListItem.hbs +44 -0
  572. package/src/StandardListItem.js +191 -0
  573. package/src/StepInput.hbs +80 -0
  574. package/src/StepInput.js +684 -0
  575. package/src/SuggestionGroupItem.js +64 -0
  576. package/src/SuggestionItem.js +146 -0
  577. package/src/SuggestionListItem.hbs +33 -0
  578. package/src/SuggestionListItem.js +76 -0
  579. package/src/Switch.hbs +50 -0
  580. package/src/Switch.js +262 -0
  581. package/src/Tab.hbs +3 -0
  582. package/src/Tab.js +334 -0
  583. package/src/TabContainer.hbs +93 -0
  584. package/src/TabContainer.js +679 -0
  585. package/src/TabContainerPopover.hbs +24 -0
  586. package/src/TabInOverflow.hbs +22 -0
  587. package/src/TabInStrip.hbs +43 -0
  588. package/src/TabSeparator.hbs +1 -0
  589. package/src/TabSeparator.js +44 -0
  590. package/src/Table.hbs +99 -0
  591. package/src/Table.js +761 -0
  592. package/src/TableCell.hbs +7 -0
  593. package/src/TableCell.js +88 -0
  594. package/src/TableColumn.hbs +8 -0
  595. package/src/TableColumn.js +136 -0
  596. package/src/TableGroupRow.hbs +12 -0
  597. package/src/TableGroupRow.js +160 -0
  598. package/src/TableRow.hbs +61 -0
  599. package/src/TableRow.js +388 -0
  600. package/src/TextArea.hbs +50 -0
  601. package/src/TextArea.js +691 -0
  602. package/src/TextAreaPopover.hbs +28 -0
  603. package/src/TimePicker.hbs +35 -0
  604. package/src/TimePicker.js +166 -0
  605. package/src/TimePickerBase.js +463 -0
  606. package/src/TimePickerPopover.hbs +34 -0
  607. package/src/TimeSelection.hbs +60 -0
  608. package/src/TimeSelection.js +493 -0
  609. package/src/Title.hbs +47 -0
  610. package/src/Title.js +132 -0
  611. package/src/Toast.hbs +13 -0
  612. package/src/Toast.js +243 -0
  613. package/src/ToggleButton.hbs +5 -0
  614. package/src/ToggleButton.js +84 -0
  615. package/src/Token.hbs +30 -0
  616. package/src/Token.js +219 -0
  617. package/src/Tokenizer.hbs +27 -0
  618. package/src/Tokenizer.js +414 -0
  619. package/src/TokenizerPopover.hbs +50 -0
  620. package/src/Tree.hbs +42 -0
  621. package/src/Tree.js +443 -0
  622. package/src/TreeItem.js +168 -0
  623. package/src/TreeListItem.hbs +48 -0
  624. package/src/TreeListItem.js +332 -0
  625. package/src/WheelSlider.hbs +48 -0
  626. package/src/WheelSlider.js +435 -0
  627. package/src/YearPicker.hbs +27 -0
  628. package/src/YearPicker.js +324 -0
  629. package/src/features/ColorPaletteMoreColors.js +42 -0
  630. package/src/features/InputElementsFormSupport.js +88 -0
  631. package/src/features/InputSuggestions.js +530 -0
  632. package/src/i18n/messagebundle.properties +335 -0
  633. package/src/i18n/messagebundle_ar.properties +224 -0
  634. package/src/i18n/messagebundle_bg.properties +224 -0
  635. package/src/i18n/messagebundle_ca.properties +224 -0
  636. package/src/i18n/messagebundle_cs.properties +224 -0
  637. package/src/i18n/messagebundle_cy.properties +224 -0
  638. package/src/i18n/messagebundle_da.properties +224 -0
  639. package/src/i18n/messagebundle_de.properties +224 -0
  640. package/src/i18n/messagebundle_el.properties +224 -0
  641. package/src/i18n/messagebundle_en.properties +224 -0
  642. package/src/i18n/messagebundle_en_GB.properties +224 -0
  643. package/src/i18n/messagebundle_en_US_sappsd.properties +224 -0
  644. package/src/i18n/messagebundle_en_US_saprigi.properties +224 -0
  645. package/src/i18n/messagebundle_en_US_saptrc.properties +224 -0
  646. package/src/i18n/messagebundle_es.properties +224 -0
  647. package/src/i18n/messagebundle_es_MX.properties +224 -0
  648. package/src/i18n/messagebundle_et.properties +224 -0
  649. package/src/i18n/messagebundle_fi.properties +224 -0
  650. package/src/i18n/messagebundle_fr.properties +224 -0
  651. package/src/i18n/messagebundle_fr_CA.properties +224 -0
  652. package/src/i18n/messagebundle_hi.properties +224 -0
  653. package/src/i18n/messagebundle_hr.properties +224 -0
  654. package/src/i18n/messagebundle_hu.properties +224 -0
  655. package/src/i18n/messagebundle_id.properties +224 -0
  656. package/src/i18n/messagebundle_in.properties +172 -0
  657. package/src/i18n/messagebundle_it.properties +224 -0
  658. package/src/i18n/messagebundle_iw.properties +224 -0
  659. package/src/i18n/messagebundle_ja.properties +224 -0
  660. package/src/i18n/messagebundle_kk.properties +224 -0
  661. package/src/i18n/messagebundle_ko.properties +224 -0
  662. package/src/i18n/messagebundle_lt.properties +224 -0
  663. package/src/i18n/messagebundle_lv.properties +224 -0
  664. package/src/i18n/messagebundle_ms.properties +224 -0
  665. package/src/i18n/messagebundle_nl.properties +224 -0
  666. package/src/i18n/messagebundle_no.properties +224 -0
  667. package/src/i18n/messagebundle_pl.properties +224 -0
  668. package/src/i18n/messagebundle_pt.properties +224 -0
  669. package/src/i18n/messagebundle_pt_PT.properties +224 -0
  670. package/src/i18n/messagebundle_ro.properties +224 -0
  671. package/src/i18n/messagebundle_ru.properties +224 -0
  672. package/src/i18n/messagebundle_sh.properties +224 -0
  673. package/src/i18n/messagebundle_sk.properties +224 -0
  674. package/src/i18n/messagebundle_sl.properties +224 -0
  675. package/src/i18n/messagebundle_sv.properties +224 -0
  676. package/src/i18n/messagebundle_th.properties +224 -0
  677. package/src/i18n/messagebundle_tr.properties +224 -0
  678. package/src/i18n/messagebundle_uk.properties +224 -0
  679. package/src/i18n/messagebundle_vi.properties +224 -0
  680. package/src/i18n/messagebundle_zh_CN.properties +224 -0
  681. package/src/i18n/messagebundle_zh_TW.properties +224 -0
  682. package/src/popup-utils/OpenedPopupsRegistry.js +50 -0
  683. package/src/popup-utils/PopoverRegistry.js +145 -0
  684. package/src/timepicker-utils/TimeSlider.js +103 -0
  685. package/src/types/AvatarColorScheme.js +104 -0
  686. package/src/types/AvatarGroupType.js +43 -0
  687. package/src/types/AvatarShape.js +41 -0
  688. package/src/types/AvatarSize.js +67 -0
  689. package/src/types/BreadcrumbsDesign.js +42 -0
  690. package/src/types/BreadcrumbsSeparatorStyle.js +69 -0
  691. package/src/types/BusyIndicatorSize.js +47 -0
  692. package/src/types/ButtonDesign.js +68 -0
  693. package/src/types/CalendarSelectionMode.js +47 -0
  694. package/src/types/CarouselArrowsPlacement.js +40 -0
  695. package/src/types/GrowingMode.js +48 -0
  696. package/src/types/InputType.js +68 -0
  697. package/src/types/LinkDesign.js +47 -0
  698. package/src/types/ListGrowingMode.js +15 -0
  699. package/src/types/ListItemType.js +47 -0
  700. package/src/types/ListMode.js +77 -0
  701. package/src/types/ListSeparators.js +46 -0
  702. package/src/types/MessageStripDesign.js +54 -0
  703. package/src/types/PanelAccessibleRole.js +48 -0
  704. package/src/types/PopoverHorizontalAlign.js +54 -0
  705. package/src/types/PopoverPlacementType.js +54 -0
  706. package/src/types/PopoverVerticalAlign.js +54 -0
  707. package/src/types/Priority.js +55 -0
  708. package/src/types/SemanticColor.js +61 -0
  709. package/src/types/SwitchDesign.js +40 -0
  710. package/src/types/TabContainerTabsPlacement.js +40 -0
  711. package/src/types/TabLayout.js +40 -0
  712. package/src/types/TableGrowingMode.js +15 -0
  713. package/src/types/TableMode.js +47 -0
  714. package/src/types/TableRowType.js +40 -0
  715. package/src/types/TitleLevel.js +68 -0
  716. package/src/types/ToastPlacement.js +91 -0
  717. package/src/types/WrappingType.js +41 -0
  718. package/dist/Timeline.js +0 -97
  719. package/dist/TimelineItem.js +0 -161
  720. package/dist/generated/templates/ComboBoxItemTemplate.lit.js +0 -7
  721. package/dist/generated/templates/DurationPickerPopoverTemplate.lit.js +0 -8
  722. package/dist/generated/templates/DurationPickerTemplate.lit.js +0 -8
  723. package/dist/generated/templates/TimelineItemTemplate.lit.js +0 -12
  724. package/dist/generated/templates/TimelineTemplate.lit.js +0 -8
  725. package/dist/generated/themes/ComboBoxItem.css.js +0 -8
  726. package/dist/generated/themes/DurationPicker.css.js +0 -8
  727. package/dist/generated/themes/DurationPickerPopover.css.js +0 -8
  728. package/dist/generated/themes/Timeline.css.js +0 -8
  729. package/dist/generated/themes/TimelineItem.css.js +0 -8
  730. package/dist/popup-utils/PopupUtils.js +0 -55
  731. package/dist/types/AvatarFitType.js +0 -40
  732. package/dist/webcomponentsjs/package.json +0 -46
package/dist/Popup.js CHANGED
@@ -1,13 +1,19 @@
1
+ import { renderFinished } from "@ui5/webcomponents-base/dist/Render.js";
2
+ import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
1
3
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
4
+ import { isChrome } from "@ui5/webcomponents-base/dist/Device.js";
2
5
  import { getFirstFocusableElement, getLastFocusableElement } from "@ui5/webcomponents-base/dist/util/FocusableElements.js";
3
- import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
4
- import { isEscape } from "@ui5/webcomponents-base/dist/Keys.js";
6
+ import { hasStyle, createStyle } from "@ui5/webcomponents-base/dist/ManagedStyles.js";
7
+ import { isTabPrevious } from "@ui5/webcomponents-base/dist/Keys.js";
8
+ import { getNextZIndex, getFocusedElement, isFocusedElementWithinNode } from "@ui5/webcomponents-base/dist/util/PopupUtils.js";
9
+ import PopupTemplate from "./generated/templates/PopupTemplate.lit.js";
10
+ import PopupBlockLayer from "./generated/templates/PopupBlockLayerTemplate.lit.js";
11
+ import { addOpenedPopup, removeOpenedPopup } from "./popup-utils/OpenedPopupsRegistry.js";
5
12
 
6
13
  // Styles
7
14
  import styles from "./generated/themes/Popup.css.js";
8
-
9
- import { addOpenedPopup, removeOpenedPopup } from "./popup-utils/OpenedPopupsRegistry.js";
10
- import { getNextZIndex } from "./popup-utils/PopupUtils.js";
15
+ import staticAreaStyles from "./generated/themes/PopupStaticAreaStyles.css.js";
16
+ import globalStyles from "./generated/themes/PopupGlobal.css.js";
11
17
 
12
18
  /**
13
19
  * @public
@@ -17,35 +23,14 @@ const metadata = {
17
23
  slots: /** @lends sap.ui.webcomponents.main.Popup.prototype */ {
18
24
 
19
25
  /**
20
- * Defines the content of the Web Component.
21
- * @type {Node[]}
22
- * @slot
23
- * @public
24
- */
25
- "default": {
26
- type: HTMLElement,
27
- },
28
-
29
- /**
30
- * Defines the header HTML Element.
31
- *
32
- * @type {HTMLElement[]}
33
- * @slot
34
- * @public
35
- */
36
- header: {
37
- type: HTMLElement,
38
- },
39
-
40
- /**
41
- * Defines the footer HTML Element.
42
- *
26
+ * Defines the content of the Popup.
43
27
  * @type {HTMLElement[]}
44
28
  * @slot
45
29
  * @public
46
30
  */
47
- footer: {
31
+ "default": {
48
32
  type: HTMLElement,
33
+ propertyName: "content",
49
34
  },
50
35
  },
51
36
  properties: /** @lends sap.ui.webcomponents.main.Popup.prototype */ {
@@ -61,34 +46,38 @@ const metadata = {
61
46
  },
62
47
 
63
48
  /**
64
- * Defines the header text.
65
- * <br><br>
66
- * <b>Note:</b> If <code>header</code> slot is provided, the <code>headerText</code> is ignored.
67
- *
68
- * @type {string}
69
- * @defaultvalue ""
49
+ * Defines if the focus should be returned to the previously focused element,
50
+ * when the popup closes.
51
+ * @type {boolean}
52
+ * @defaultvalue false
70
53
  * @public
71
- */
72
- headerText: {
73
- type: String,
54
+ * @since 1.0.0-rc.8
55
+ */
56
+ preventFocusRestore: {
57
+ type: Boolean,
74
58
  },
75
59
 
76
60
  /**
77
- * Indicates if the elements is on focus
61
+ * Indicates if the element is open
78
62
  * @private
63
+ * @type {boolean}
64
+ * @defaultvalue false
79
65
  */
80
66
  opened: {
81
67
  type: Boolean,
82
68
  },
83
69
 
84
- _zIndex: {
85
- type: Integer,
86
- noAttribute: true,
87
- },
88
-
89
- _hideBlockLayer: {
90
- type: Boolean,
91
- noAttribute: true,
70
+ /**
71
+ * Sets the accessible aria name of the component.
72
+ *
73
+ * @type {String}
74
+ * @defaultvalue ""
75
+ * @public
76
+ * @since 1.0.0-rc.15
77
+ */
78
+ accessibleName: {
79
+ type: String,
80
+ defaultValue: undefined,
92
81
  },
93
82
 
94
83
  /**
@@ -97,129 +86,98 @@ const metadata = {
97
86
  _disableInitialFocus: {
98
87
  type: Boolean,
99
88
  },
89
+
90
+ _blockLayerHidden: {
91
+ type: Boolean,
92
+ },
100
93
  },
101
94
  events: /** @lends sap.ui.webcomponents.main.Popup.prototype */ {
102
95
 
103
96
  /**
104
- * Fired before the component is opened.
97
+ * Fired before the component is opened. This event can be cancelled, which will prevent the popup from opening. <b>This event does not bubble.</b>
105
98
  *
106
99
  * @public
107
- * @event
100
+ * @event sap.ui.webcomponents.main.Popup#before-open
101
+ * @allowPreventDefault
108
102
  */
103
+ "before-open": {},
109
104
 
110
- beforeOpen: {},
111
105
  /**
112
- * Fired after the component is opened.
106
+ * Fired after the component is opened. <b>This event does not bubble.</b>
113
107
  *
114
108
  * @public
115
- * @event
109
+ * @event sap.ui.webcomponents.main.Popup#after-open
116
110
  */
111
+ "after-open": {},
117
112
 
118
- afterOpen: {},
119
113
  /**
120
- * Fired before the component is closed.
114
+ * Fired before the component is closed. This event can be cancelled, which will prevent the popup from closing. <b>This event does not bubble.</b>
121
115
  *
122
116
  * @public
123
- * @event
124
- * @param {Boolean} escPressed Indicates that <code>ESC</code> key has triggered the event.
117
+ * @event sap.ui.webcomponents.main.Popup#before-close
118
+ * @allowPreventDefault
119
+ * @param {boolean} escPressed Indicates that <code>ESC</code> key has triggered the event.
125
120
  */
126
-
127
- beforeClose: {
128
- escPressed: { type: Boolean },
121
+ "before-close": {
122
+ detail: {
123
+ escPressed: { type: Boolean },
124
+ },
129
125
  },
130
126
 
131
127
  /**
132
- * Fired after the component is closed.
128
+ * Fired after the component is closed. <b>This event does not bubble.</b>
133
129
  *
134
130
  * @public
135
- * @event
131
+ * @event sap.ui.webcomponents.main.Popup#after-close
132
+ */
133
+ "after-close": {},
134
+
135
+ /**
136
+ * Fired whenever the popup content area is scrolled
137
+ *
138
+ * @private
139
+ * @event sap.ui.webcomponents.main.Popup#scroll
136
140
  */
137
- afterClose: {},
141
+ "scroll": {},
138
142
  },
139
143
  };
140
144
 
141
- const openedPopups = [];
142
- let isBodyScrollingDisabled = false;
143
- let customBLyBackStyleInserted = false;
144
-
145
- function getParentHost(node) {
146
- while (node && !node.host) {
147
- node = node.parentNode;
148
- }
149
-
150
- return node && node.host;
151
- }
152
-
153
- function createBLyBackStyle() {
154
- if (customBLyBackStyleInserted) {
155
- return;
156
- }
157
-
158
- customBLyBackStyleInserted = true;
159
-
160
- const bodyStyleSheet = document.createElement("style");
161
- bodyStyleSheet.type = "text/css";
162
- bodyStyleSheet.innerHTML = `
163
- .ui5-popup-BLy--back {
164
- width: 100%;
165
- height: 100%;
166
- position: fixed;
167
- overflow: hidden;
168
- }
169
- `;
170
- document.head.appendChild(bodyStyleSheet);
171
- }
172
-
173
- function updateBlockLayers() {
174
- let popup,
175
- i,
176
- hasModal = false;
177
-
178
- for (i = openedPopups.length - 1; i >= 0; i--) {
179
- popup = openedPopups[i];
180
- if (hasModal) {
181
- popup._hideBlockLayer = true;
182
- } else {
183
- if (popup.isModal()) { // eslint-disable-line
184
- popup._hideBlockLayer = false;
185
- hasModal = true;
186
- }
187
- }
188
- }
189
-
190
- updateBodyScrolling(hasModal);
191
- }
192
-
193
- function updateBodyScrolling(hasModal) {
194
- if (isBodyScrollingDisabled === hasModal) {
195
- return;
196
- }
197
-
198
- createBLyBackStyle();
199
-
200
- if (hasModal) {
201
- addBodyStyles();
202
- } else {
203
- removeBodyStyles();
145
+ const createBlockingStyle = () => {
146
+ if (!hasStyle("data-ui5-popup-scroll-blocker")) {
147
+ createStyle(globalStyles, "data-ui5-popup-scroll-blocker");
204
148
  }
205
- isBodyScrollingDisabled = hasModal;
206
- }
149
+ };
207
150
 
208
- function addBodyStyles() {
209
- document.body.style.top = `-${window.pageYOffset}px`;
210
- document.body.classList.add("ui5-popup-BLy--back");
211
- }
151
+ createBlockingStyle();
212
152
 
213
- function removeBodyStyles() {
214
- document.body.classList.remove("ui5-popup-BLy--back");
215
- window.scrollTo(0, -parseFloat(document.body.style.top));
216
- document.body.style.top = "";
217
- }
153
+ const bodyScrollingBlockers = new Set();
218
154
 
219
155
  /**
220
156
  * @class
221
157
  * <h3 class="comment-api-title">Overview</h3>
222
- * Represents a base class for all popup Web Components.
158
+ * Base class for all popup Web Components.
159
+ *
160
+ * If you need to create your own popup-like custom UI5 Web Components, it is highly recommended that you extend
161
+ * at least Popup in order to have consistency with other popups in terms of modal behavior and z-index management.
162
+ *
163
+ * 1. The Popup class handles modality:
164
+ * - The "isModal" getter can be overridden by derivatives to provide their own conditions when they are modal or not
165
+ * - Derivatives may call the "blockBodyScrolling" and "unblockBodyScrolling" static methods to temporarily remove scrollbars on the body
166
+ * - Derivatives may call the "open" and "close" methods which handle focus, manage the popup registry and for modal popups, manage the blocking layer
167
+ *
168
+ * 2. Provides blocking layer (relevant for modal popups only):
169
+ * - It is in the static area
170
+ * - Controlled by the "open" and "close" methods
171
+ *
172
+ * 3. The Popup class "traps" focus:
173
+ * - Derivatives may call the "applyInitialFocus" method (usually when opening, to transfer focus inside the popup)
174
+ *
175
+ * 4. The Popup class automatically assigns "z-index"
176
+ * - Each time a popup is opened, it gets a higher than the previously opened popup z-index
177
+ *
178
+ * 5. The template of this component exposes two inline partials you can override in derivatives:
179
+ * - beforeContent (upper part of the box, useful for header/title/close button)
180
+ * - afterContent (lower part, useful for footer/action buttons)
223
181
  *
224
182
  * @constructor
225
183
  * @author SAP SE
@@ -232,238 +190,377 @@ class Popup extends UI5Element {
232
190
  return metadata;
233
191
  }
234
192
 
193
+ static get render() {
194
+ return litRender;
195
+ }
196
+
235
197
  static get styles() {
236
198
  return styles;
237
199
  }
238
200
 
239
- static hitTest(popup, event) {
240
- const indexOf = openedPopups.indexOf(popup);
241
- let openedPopup;
201
+ static get template() {
202
+ return PopupTemplate;
203
+ }
242
204
 
243
- for (let i = indexOf; i < openedPopups.length; i++) {
244
- openedPopup = openedPopups[i];
245
- if (openedPopup.hitTest(event)) {
246
- return true;
247
- }
248
- }
205
+ static get staticAreaTemplate() {
206
+ return PopupBlockLayer;
207
+ }
249
208
 
250
- return false;
209
+ static get staticAreaStyles() {
210
+ return staticAreaStyles;
251
211
  }
252
212
 
253
- static hasModalPopup() {
254
- for (let i = 0; i < openedPopups.length; i++) {
255
- if (openedPopups[i].isModal()) {
256
- return true;
257
- }
213
+ onEnterDOM() {
214
+ if (!this.isOpen()) {
215
+ this._blockLayerHidden = true;
258
216
  }
259
-
260
- return false;
261
217
  }
262
218
 
263
- constructor() {
264
- super();
265
-
266
- this._documentKeyDownHandler = this.documentKeyDown.bind(this);
219
+ onExitDOM() {
220
+ if (this.isOpen()) {
221
+ Popup.unblockBodyScrolling(this);
222
+ this._removeOpenedPopup();
223
+ }
267
224
  }
268
225
 
269
- isTopPopup() {
270
- return openedPopups.indexOf(this) === openedPopups.length - 1;
226
+ get _displayProp() {
227
+ return "block";
271
228
  }
272
229
 
273
- isModal() {
274
- return true;
230
+ /**
231
+ * Prevents the user from interacting with the content under the block layer
232
+ */
233
+ _preventBlockLayerFocus(event) {
234
+ event.preventDefault();
275
235
  }
276
236
 
277
- documentKeyDown(event) {
278
- if (isEscape(event) && this.isTopPopup()) {
279
- this.escPressed = true;
280
- this.close();
237
+ /**
238
+ * Temporarily removes scrollbars from the body
239
+ * @protected
240
+ */
241
+ static blockBodyScrolling(popup) {
242
+ bodyScrollingBlockers.add(popup);
243
+
244
+ if (bodyScrollingBlockers.size !== 1) {
245
+ return;
246
+ }
247
+
248
+ if (window.pageYOffset > 0) {
249
+ document.body.style.top = `-${window.pageYOffset}px`;
281
250
  }
251
+ document.body.classList.add("ui5-popup-scroll-blocker");
282
252
  }
283
253
 
284
- getPopupDomRef() {
285
- const domRef = this.getDomRef();
286
- return domRef && domRef.querySelector(".ui5-popup-root");
254
+ /**
255
+ * Restores scrollbars on the body, if needed
256
+ * @protected
257
+ */
258
+ static unblockBodyScrolling(popup) {
259
+ bodyScrollingBlockers.delete(popup);
260
+
261
+ if (bodyScrollingBlockers.size !== 0) {
262
+ return;
263
+ }
264
+
265
+ document.body.classList.remove("ui5-popup-scroll-blocker");
266
+ window.scrollTo(0, -parseFloat(document.body.style.top));
267
+ document.body.style.top = "";
287
268
  }
288
269
 
289
- hitTest(_event) {
290
- return true;
270
+ _scroll(e) {
271
+ this.fireEvent("scroll", {
272
+ scrollTop: e.target.scrollTop,
273
+ targetRef: e.target,
274
+ });
291
275
  }
292
276
 
293
- open() {
294
- this.fireEvent("beforeOpen", { });
277
+ _onkeydown(e) {
278
+ if (e.target === this._root && isTabPrevious(e)) {
279
+ e.preventDefault();
280
+ }
281
+ }
295
282
 
296
- this._isFirstTimeRendered = false;
283
+ _onfocusout(e) {
284
+ // relatedTarget is the element, which will get focus. If no such element exists, focus the root.
285
+ // This happens after the mouse is released in order to not interrupt text selection.
286
+ if (!e.relatedTarget) {
287
+ this._shouldFocusRoot = true;
288
+ }
289
+ }
297
290
 
298
- this._zIndex = getNextZIndex();
299
- openedPopups.push(this);
300
- addOpenedPopup(this);
291
+ _onmousedown(e) {
292
+ this._root.removeAttribute("tabindex");
301
293
 
294
+ if (this.shadowRoot.contains(e.target)) {
295
+ this._shouldFocusRoot = true;
296
+ } else {
297
+ this._shouldFocusRoot = false;
298
+ }
299
+ }
302
300
 
303
- updateBlockLayers();
301
+ _onmouseup() {
302
+ this._root.tabIndex = -1;
303
+ if (this._shouldFocusRoot) {
304
+ if (isChrome()) {
305
+ this._root.focus();
306
+ }
307
+ this._shouldFocusRoot = false;
308
+ }
304
309
  }
305
310
 
306
- close() {
307
- this.fireEvent("beforeClose", {
308
- escPressed: this.escPressed,
309
- }, true);
311
+ /**
312
+ * Focus trapping
313
+ * @private
314
+ */
315
+ async forwardToFirst() {
316
+ const firstFocusable = await getFirstFocusableElement(this);
310
317
 
311
- this.escPressed = false;
318
+ if (firstFocusable) {
319
+ firstFocusable.focus();
320
+ } else {
321
+ this._root.focus();
322
+ }
323
+ }
312
324
 
313
- const index = openedPopups.indexOf(this);
314
- openedPopups.splice(index, 1);
325
+ /**
326
+ * Focus trapping
327
+ * @private
328
+ */
329
+ async forwardToLast() {
330
+ const lastFocusable = await getLastFocusableElement(this);
315
331
 
316
- if (this.opened) {
317
- removeOpenedPopup(this);
332
+ if (lastFocusable) {
333
+ lastFocusable.focus();
334
+ } else {
335
+ this._root.focus();
318
336
  }
319
-
320
- updateBlockLayers();
321
337
  }
322
338
 
323
- initInitialFocus() {
324
- const initialFocus = this.initialFocus;
325
- let initialFocusDomRef = this.initialFocus;
326
-
327
- if (initialFocus && typeof initialFocus === "string") {
328
- initialFocusDomRef = document.getElementById(initialFocus);
339
+ /**
340
+ * Use this method to focus the element denoted by "initialFocus", if provided, or the first focusable element otherwise.
341
+ * @protected
342
+ */
343
+ async applyInitialFocus() {
344
+ await this.applyFocus();
345
+ }
329
346
 
330
- if (!initialFocusDomRef) {
331
- const parentHost = getParentHost(this);
332
- if (parentHost) {
333
- initialFocusDomRef = parentHost.shadowRoot.querySelector(`#${initialFocus}`);
334
- }
347
+ /**
348
+ * Focuses the element denoted by <code>initialFocus</code>, if provided,
349
+ * or the first focusable element otherwise.
350
+ * @public
351
+ * @async
352
+ * @returns {Promise} Promise that resolves when the focus is applied
353
+ */
354
+ async applyFocus() {
355
+ await this._waitForDomRef();
356
+
357
+ const element = this.getRootNode().getElementById(this.initialFocus)
358
+ || document.getElementById(this.initialFocus)
359
+ || await getFirstFocusableElement(this)
360
+ || this._root; // in case of no focusable content focus the root
361
+
362
+ if (element) {
363
+ if (element === this._root) {
364
+ element.tabIndex = -1;
335
365
  }
366
+ element.focus();
336
367
  }
337
-
338
- this._initialFocusDomRef = initialFocusDomRef;
339
368
  }
340
369
 
341
- onFirstTimeAfterRendering() {
342
- if (this.isTopPopup()) {
343
- this.initInitialFocus();
344
- this.setInitialFocus(this.getPopupDomRef());
345
- }
370
+ /**
371
+ * Tells if the component is opened
372
+ * @public
373
+ * @returns {boolean}
374
+ */
375
+ isOpen() {
376
+ return this.opened;
377
+ }
346
378
 
347
- this.fireEvent("afterOpen", {});
379
+ isFocusWithin() {
380
+ return isFocusedElementWithinNode(this.shadowRoot.querySelector(".ui5-popup-root"));
348
381
  }
349
382
 
350
- onAfterRendering() {
351
- if (!this.opened) {
383
+ /**
384
+ * Shows the block layer (for modal popups only) and sets the correct z-index for the purpose of popup stacking
385
+ * @protected
386
+ */
387
+ async _open(preventInitialFocus) {
388
+ const prevented = !this.fireEvent("before-open", {}, true, false);
389
+ if (prevented) {
352
390
  return;
353
391
  }
354
392
 
355
- if (!this._isFirstTimeRendered) {
356
- this.onFirstTimeAfterRendering();
357
- this._isFirstTimeRendered = true;
393
+ if (this.isModal && !this.shouldHideBackdrop) {
394
+ // create static area item ref for block layer
395
+ this.getStaticAreaItemDomRef();
396
+ this._blockLayerHidden = false;
397
+ Popup.blockBodyScrolling(this);
358
398
  }
359
- }
360
399
 
361
- setInitialFocus(container) {
362
- if (this._disableInitialFocus) {
363
- return;
364
- }
400
+ this._zIndex = getNextZIndex();
401
+ this.style.zIndex = this._zIndex;
402
+ this._focusedElementBeforeOpen = getFocusedElement();
365
403
 
366
- if (this._initialFocusDomRef) {
367
- if (this._initialFocusDomRef !== document.activeElement) {
368
- this._initialFocusDomRef.focus();
369
- }
370
- return;
371
- }
404
+ this._show();
372
405
 
373
- if (!container) {
374
- return;
406
+ if (!this._disableInitialFocus && !preventInitialFocus) {
407
+ this.applyInitialFocus();
375
408
  }
376
409
 
377
- const focusableElement = getFirstFocusableElement(container);
410
+ this._addOpenedPopup();
378
411
 
379
- if (focusableElement) {
380
- focusableElement.focus();
381
- } else {
382
- container.focus();
383
- }
412
+ this.opened = true;
413
+
414
+ await renderFinished();
415
+ this.fireEvent("after-open", {}, false, false);
384
416
  }
385
417
 
386
- _onfocusin(event) {
387
- this.preserveFocus(event, this.getPopupDomRef());
418
+ /**
419
+ * Adds the popup to the "opened popups registry"
420
+ * @protected
421
+ */
422
+ _addOpenedPopup() {
423
+ addOpenedPopup(this);
388
424
  }
389
425
 
390
- preserveFocus(event, container) {
391
- if (!this.isTopPopup()) {
426
+ /**
427
+ * Hides the block layer (for modal popups only)
428
+ * @public
429
+ */
430
+ close(escPressed = false, preventRegistryUpdate = false, preventFocusRestore = false) {
431
+ if (!this.opened) {
392
432
  return;
393
433
  }
394
434
 
395
- let target = event.target;
435
+ const prevented = !this.fireEvent("before-close", { escPressed }, true, false);
436
+ if (prevented) {
437
+ return;
438
+ }
396
439
 
397
- while (target.shadowRoot && target.shadowRoot.activeElement) {
398
- target = target.shadowRoot.activeElement;
440
+ if (this.isModal) {
441
+ this._blockLayerHidden = true;
442
+ Popup.unblockBodyScrolling(this);
399
443
  }
400
444
 
401
- let focusableElement;
402
- let isSpecialCase = false;
403
-
404
- switch (target.id) {
405
- case `${this._id}-firstfe`:
406
- focusableElement = getLastFocusableElement(container);
407
- isSpecialCase = true;
408
- break;
409
- case `${this._id}-lastfe`:
410
- focusableElement = getFirstFocusableElement(container);
411
- isSpecialCase = true;
412
- break;
413
- case `${this._id}-blocklayer`:
414
- focusableElement = this._currentFocusedElement
415
- || getFirstFocusableElement(container);
416
- isSpecialCase = true;
417
- break;
445
+ this.hide();
446
+ this.opened = false;
447
+
448
+ if (!preventRegistryUpdate) {
449
+ this._removeOpenedPopup();
418
450
  }
419
451
 
420
- if (focusableElement) {
421
- focusableElement.focus();
422
- } else if (isSpecialCase) {
423
- container.focus();
452
+ if (!this.preventFocusRestore && !preventFocusRestore) {
453
+ this.resetFocus();
424
454
  }
425
455
 
426
- this._currentFocusedElement = focusableElement || document.activeElement;
456
+ this.fireEvent("after-close", {}, false, false);
427
457
  }
428
458
 
429
- storeCurrentFocus() {
430
- let element = document.activeElement;
431
-
432
- while (element.shadowRoot && element.shadowRoot.activeElement) {
433
- element = element.shadowRoot.activeElement;
434
- }
435
-
436
- this._lastFocusableElement = (element && typeof element.focus === "function") ? element : null;
459
+ /**
460
+ * Removes the popup from the "opened popups registry"
461
+ * @protected
462
+ */
463
+ _removeOpenedPopup() {
464
+ removeOpenedPopup(this);
437
465
  }
438
466
 
467
+ /**
468
+ * Returns the focus to the previously focused element
469
+ * @protected
470
+ */
439
471
  resetFocus() {
440
- if (!this._lastFocusableElement) {
472
+ if (!this._focusedElementBeforeOpen) {
441
473
  return;
442
474
  }
443
475
 
444
- const lastFocusableElement = this._lastFocusableElement;
445
- if (lastFocusableElement) {
446
- lastFocusableElement.focus();
447
- }
476
+ this._focusedElementBeforeOpen.focus();
477
+ this._focusedElementBeforeOpen = null;
478
+ }
448
479
 
449
- this._lastFocusableElement = null;
480
+ /**
481
+ * Sets "block" display to the popup. The property can be overriden by derivatives of Popup.
482
+ * @protected
483
+ */
484
+ _show() {
485
+ this.style.display = this._displayProp;
450
486
  }
451
487
 
452
- onExitDOM() {
453
- removeBodyStyles();
488
+ /**
489
+ * Sets "none" display to the popup
490
+ * @protected
491
+ */
492
+ hide() {
493
+ this.style.display = "none";
494
+ }
495
+
496
+ /**
497
+ * Implement this getter with relevant logic regarding the modality of the popup (e.g. based on a public property)
498
+ *
499
+ * @protected
500
+ * @abstract
501
+ * @returns {boolean}
502
+ */
503
+ get isModal() {} // eslint-disable-line
504
+
505
+ /**
506
+ * Implement this getter with relevant logic in order to hide the block layer (f.e. based on a public property)
507
+ *
508
+ * @protected
509
+ * @abstract
510
+ * @returns {boolean}
511
+ */
512
+ get shouldHideBackdrop() {} // eslint-disable-line
513
+
514
+ /**
515
+ * Return the ID of an element in the shadow DOM that is going to label this popup
516
+ *
517
+ * @protected
518
+ * @abstract
519
+ * @returns {String}
520
+ */
521
+ get _ariaLabelledBy() {} // eslint-disable-line
522
+
523
+ /**
524
+ * Return the value for aria-modal for this popup
525
+ *
526
+ * @protected
527
+ * @abstract
528
+ * @returns {String}
529
+ */
530
+ get _ariaModal() {} // eslint-disable-line
531
+
532
+ /**
533
+ * Ensures ariaLabel is never null or empty string
534
+ * @returns {String|undefined}
535
+ * @protected
536
+ */
537
+ get _ariaLabel() {
538
+ return this.accessibleName || undefined;
454
539
  }
455
540
 
456
- get hasHeader() {
457
- const hasHeaderText = this.headerText && this.headerText.length;
458
- return !!(hasHeaderText || this.header.length);
541
+ get _root() {
542
+ return this.shadowRoot.querySelector(".ui5-popup-root");
459
543
  }
460
544
 
461
- get hasFooter() {
462
- return !!this.footer.length;
545
+ get styles() {
546
+ return {
547
+ root: {},
548
+ content: {},
549
+ blockLayer: {
550
+ "zIndex": (this._zIndex - 1),
551
+ },
552
+ };
463
553
  }
464
554
 
465
- get role() {
466
- return "heading";
555
+ get classes() {
556
+ return {
557
+ root: {
558
+ "ui5-popup-root": true,
559
+ },
560
+ content: {
561
+ "ui5-popup-content": true,
562
+ },
563
+ };
467
564
  }
468
565
  }
469
566