@ui5/webcomponents 0.0.0-323968e1b → 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 (730) hide show
  1. package/CHANGELOG.md +717 -1
  2. package/README.md +144 -41
  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 +3 -2
  7. package/dist/Avatar.js +224 -40
  8. package/dist/AvatarGroup.js +603 -0
  9. package/dist/Badge.js +48 -28
  10. package/dist/Breadcrumbs.js +563 -0
  11. package/dist/BreadcrumbsItem.js +109 -0
  12. package/dist/BusyIndicator.js +172 -19
  13. package/dist/Button.js +180 -49
  14. package/dist/Calendar.js +345 -554
  15. package/dist/CalendarDate.js +45 -0
  16. package/dist/CalendarHeader.js +133 -64
  17. package/dist/CalendarPart.js +111 -0
  18. package/dist/Card.js +47 -161
  19. package/dist/CardHeader.js +288 -0
  20. package/dist/Carousel.js +681 -0
  21. package/dist/CheckBox.js +154 -54
  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 +664 -107
  27. package/dist/ComboBoxFilters.js +8 -1
  28. package/dist/ComboBoxGroupItem.js +70 -0
  29. package/dist/ComboBoxItem.js +33 -30
  30. package/dist/CustomListItem.js +38 -9
  31. package/dist/DateComponentBase.js +170 -0
  32. package/dist/DatePicker.js +468 -384
  33. package/dist/DateRangePicker.js +328 -0
  34. package/dist/DateTimePicker.js +430 -0
  35. package/dist/DayPicker.js +513 -438
  36. package/dist/Dialog.js +501 -47
  37. package/dist/DurationPicker.js +312 -0
  38. package/dist/FileUploader.js +532 -0
  39. package/dist/GroupHeaderListItem.js +36 -8
  40. package/dist/Icon.js +221 -43
  41. package/dist/Input.js +796 -127
  42. package/dist/Interfaces.js +192 -0
  43. package/dist/Label.js +27 -12
  44. package/dist/Link.js +143 -35
  45. package/dist/List.js +560 -73
  46. package/dist/ListItem.js +139 -30
  47. package/dist/ListItemBase.js +53 -9
  48. package/dist/MessageStrip.js +82 -93
  49. package/dist/MonthPicker.js +181 -184
  50. package/dist/MultiComboBox.js +625 -200
  51. package/dist/MultiComboBoxItem.js +43 -0
  52. package/dist/MultiInput.js +301 -0
  53. package/dist/Option.js +48 -5
  54. package/dist/Panel.js +123 -41
  55. package/dist/Popover.js +314 -234
  56. package/dist/Popup.js +382 -287
  57. package/dist/ProgressIndicator.js +235 -0
  58. package/dist/RadioButton.js +153 -66
  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 +117 -61
  63. package/dist/SegmentedButton.js +290 -0
  64. package/dist/SegmentedButtonItem.js +109 -0
  65. package/dist/Select.js +500 -110
  66. package/dist/Slider.js +320 -0
  67. package/dist/SliderBase.js +842 -0
  68. package/dist/StandardListItem.js +46 -24
  69. package/dist/StepInput.js +684 -0
  70. package/dist/SuggestionGroupItem.js +64 -0
  71. package/dist/SuggestionItem.js +146 -0
  72. package/dist/SuggestionListItem.js +76 -0
  73. package/dist/Switch.js +62 -48
  74. package/dist/Tab.js +184 -18
  75. package/dist/TabContainer.js +337 -235
  76. package/dist/TabSeparator.js +2 -1
  77. package/dist/Table.js +492 -39
  78. package/dist/TableCell.js +13 -15
  79. package/dist/TableColumn.js +18 -7
  80. package/dist/TableGroupRow.js +160 -0
  81. package/dist/TableRow.js +254 -31
  82. package/dist/TextArea.js +314 -38
  83. package/dist/TimePicker.js +166 -0
  84. package/dist/TimePickerBase.js +463 -0
  85. package/dist/TimeSelection.js +493 -0
  86. package/dist/Title.js +18 -10
  87. package/dist/Toast.js +63 -37
  88. package/dist/ToggleButton.js +21 -13
  89. package/dist/Token.js +87 -49
  90. package/dist/Tokenizer.js +250 -65
  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 +435 -0
  95. package/dist/YearPicker.js +201 -258
  96. package/dist/api.json +6877 -0
  97. package/dist/features/ColorPaletteMoreColors.js +42 -0
  98. package/dist/features/InputElementsFormSupport.js +35 -1
  99. package/dist/features/InputSuggestions.js +294 -52
  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 -0
  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 -13
  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 -5
  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 +16 -0
  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 -5
  182. package/dist/generated/templates/CustomListItemTemplate.lit.js +13 -12
  183. package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +7 -4
  184. package/dist/generated/templates/DatePickerTemplate.lit.js +6 -5
  185. package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js +12 -0
  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 +10 -0
  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 -6
  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 -12
  197. package/dist/generated/templates/ListTemplate.lit.js +12 -8
  198. package/dist/generated/templates/MessageStripTemplate.lit.js +6 -22
  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 -11
  212. package/dist/generated/templates/SegmentedButtonItemTemplate.lit.js +8 -0
  213. package/dist/generated/templates/SegmentedButtonTemplate.lit.js +7 -0
  214. package/dist/generated/templates/SelectPopoverTemplate.lit.js +20 -6
  215. package/dist/generated/templates/SelectTemplate.lit.js +6 -4
  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 -18
  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 -8
  223. package/dist/generated/templates/TabContainerTemplate.lit.js +16 -18
  224. package/dist/generated/templates/TabInOverflowTemplate.lit.js +9 -0
  225. package/dist/generated/templates/TabInStripTemplate.lit.js +11 -0
  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 -6
  232. package/dist/generated/templates/TableTemplate.lit.js +13 -8
  233. package/dist/generated/templates/TextAreaPopoverTemplate.lit.js +11 -0
  234. package/dist/generated/templates/TextAreaTemplate.lit.js +8 -8
  235. package/dist/generated/templates/TimePickerPopoverTemplate.lit.js +7 -0
  236. package/dist/generated/templates/TimePickerTemplate.lit.js +9 -0
  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 +10 -0
  247. package/dist/generated/templates/YearPickerTemplate.lit.js +6 -6
  248. package/dist/generated/themes/Avatar.css.js +6 -7
  249. package/dist/generated/themes/AvatarGroup.css.js +8 -0
  250. package/dist/generated/themes/Badge.css.js +6 -7
  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 +6 -7
  255. package/dist/generated/themes/Button.css.js +6 -7
  256. package/dist/generated/themes/Button.ie11.css.js +8 -0
  257. package/dist/generated/themes/Calendar.css.js +6 -7
  258. package/dist/generated/themes/CalendarHeader.css.js +6 -7
  259. package/dist/generated/themes/Card.css.js +6 -7
  260. package/dist/generated/themes/CardHeader.css.js +8 -0
  261. package/dist/generated/themes/Carousel.css.js +8 -0
  262. package/dist/generated/themes/CheckBox.css.js +6 -7
  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 +6 -7
  269. package/dist/generated/themes/ComboBoxPopover.css.js +6 -7
  270. package/dist/generated/themes/CustomListItem.css.js +6 -7
  271. package/dist/generated/themes/DatePicker.css.js +6 -7
  272. package/dist/generated/themes/DatePickerPopover.css.js +6 -7
  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 +8 -0
  276. package/dist/generated/themes/DayPicker.css.js +6 -7
  277. package/dist/generated/themes/Dialog.css.js +6 -7
  278. package/dist/generated/themes/FileUploader.css.js +8 -0
  279. package/dist/generated/themes/GroupHeaderListItem.css.js +6 -7
  280. package/dist/generated/themes/GrowingButton.css.js +8 -0
  281. package/dist/generated/themes/Icon.css.js +6 -7
  282. package/dist/generated/themes/Input.css.js +6 -7
  283. package/dist/generated/themes/InputIcon.css.js +6 -7
  284. package/dist/generated/themes/InvisibleTextStyles.css.js +6 -7
  285. package/dist/generated/themes/Label.css.js +6 -7
  286. package/dist/generated/themes/Link.css.js +6 -7
  287. package/dist/generated/themes/List.css.js +6 -7
  288. package/dist/generated/themes/ListItem.css.js +6 -7
  289. package/dist/generated/themes/ListItemBase.css.js +6 -7
  290. package/dist/generated/themes/MessageStrip.css.js +6 -7
  291. package/dist/generated/themes/MonthPicker.css.js +6 -7
  292. package/dist/generated/themes/MultiComboBox.css.js +6 -7
  293. package/dist/generated/themes/MultiInput.css.js +8 -0
  294. package/dist/generated/themes/Panel.css.js +6 -7
  295. package/dist/generated/themes/Popover.css.js +6 -7
  296. package/dist/generated/themes/Popup.css.js +6 -7
  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 +6 -7
  302. package/dist/generated/themes/RatingIndicator.css.js +8 -0
  303. package/dist/generated/themes/ResponsivePopover.css.js +6 -7
  304. package/dist/generated/themes/ResponsivePopoverCommon.css.js +6 -7
  305. package/dist/generated/themes/SegmentedButton.css.js +8 -0
  306. package/dist/generated/themes/Select.css.js +6 -7
  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 +6 -7
  312. package/dist/generated/themes/Tab.css.js +6 -7
  313. package/dist/generated/themes/TabContainer.css.js +6 -7
  314. package/dist/generated/themes/TabInOverflow.css.js +8 -0
  315. package/dist/generated/themes/TabInStrip.css.js +8 -0
  316. package/dist/generated/themes/Table.css.js +6 -7
  317. package/dist/generated/themes/TableCell.css.js +6 -7
  318. package/dist/generated/themes/TableColumn.css.js +6 -7
  319. package/dist/generated/themes/TableGroupRow.css.js +8 -0
  320. package/dist/generated/themes/TableRow.css.js +6 -7
  321. package/dist/generated/themes/TapHighlightColor.css.js +8 -0
  322. package/dist/generated/themes/TextArea.css.js +6 -7
  323. package/dist/generated/themes/TimePicker.css.js +8 -0
  324. package/dist/generated/themes/TimePickerPopover.css.js +8 -0
  325. package/dist/generated/themes/TimeSelection.css.js +8 -0
  326. package/dist/generated/themes/Title.css.js +6 -7
  327. package/dist/generated/themes/Toast.css.js +6 -7
  328. package/dist/generated/themes/ToggleButton.css.js +6 -7
  329. package/dist/generated/themes/ToggleButton.ie11.css.js +8 -0
  330. package/dist/generated/themes/Token.css.js +6 -7
  331. package/dist/generated/themes/Tokenizer.css.js +6 -7
  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 +8 -0
  335. package/dist/generated/themes/WheelSlider.css.js +8 -0
  336. package/dist/generated/themes/YearPicker.css.js +6 -7
  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 -0
  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 +103 -0
  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 +40 -0
  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 +8 -1
  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 +40 -0
  425. package/dist/types/TabLayout.js +40 -0
  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 -8
  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 -81
  719. package/dist/TimelineItem.js +0 -163
  720. package/dist/generated/templates/ComboBoxItemTemplate.lit.js +0 -7
  721. package/dist/generated/templates/TimelineItemTemplate.lit.js +0 -12
  722. package/dist/generated/templates/TimelineTemplate.lit.js +0 -8
  723. package/dist/generated/themes/ComboBoxItem.css.js +0 -9
  724. package/dist/generated/themes/TabContainerPopup.css.js +0 -9
  725. package/dist/generated/themes/Timeline.css.js +0 -9
  726. package/dist/generated/themes/TimelineItem.css.js +0 -9
  727. package/dist/popup-utils/PopupUtils.js +0 -42
  728. package/dist/types/AvatarFitType.js +0 -40
  729. package/dist/webcomponentsjs/package.json +0 -46
  730. package/index.js +0 -2
package/dist/Popup.js CHANGED
@@ -1,49 +1,36 @@
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/events/PseudoEvents.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";
15
+ import staticAreaStyles from "./generated/themes/PopupStaticAreaStyles.css.js";
16
+ import globalStyles from "./generated/themes/PopupGlobal.css.js";
10
17
 
11
18
  /**
12
19
  * @public
13
20
  */
14
21
  const metadata = {
22
+ managedSlots: true,
15
23
  slots: /** @lends sap.ui.webcomponents.main.Popup.prototype */ {
16
24
 
17
25
  /**
18
- * Defines the content of the Web Component.
19
- * @type {Node[]}
20
- * @slot
21
- * @public
22
- */
23
- "default": {
24
- type: Node,
25
- },
26
-
27
- /**
28
- * Defines the header HTML Element.
29
- *
26
+ * Defines the content of the Popup.
30
27
  * @type {HTMLElement[]}
31
28
  * @slot
32
29
  * @public
33
30
  */
34
- header: {
35
- type: HTMLElement,
36
- },
37
-
38
- /**
39
- * Defines the footer HTML Element.
40
- *
41
- * @type {HTMLElement[]}
42
- * @slot
43
- * @public
44
- */
45
- footer: {
31
+ "default": {
46
32
  type: HTMLElement,
33
+ propertyName: "content",
47
34
  },
48
35
  },
49
36
  properties: /** @lends sap.ui.webcomponents.main.Popup.prototype */ {
@@ -51,7 +38,7 @@ const metadata = {
51
38
  * Defines the ID of the HTML Element, which will get the initial focus.
52
39
  *
53
40
  * @type {string}
54
- * @defaultvalue: ""
41
+ * @defaultvalue ""
55
42
  * @public
56
43
  */
57
44
  initialFocus: {
@@ -59,32 +46,38 @@ const metadata = {
59
46
  },
60
47
 
61
48
  /**
62
- * Defines the header text.
63
- * <br><b>Note:</b> If <code>header</code> slot is provided, the <code>headerText</code> is ignored.
64
- *
65
- * @type {string}
66
- * @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
67
53
  * @public
68
- */
69
- headerText: {
70
- type: String,
54
+ * @since 1.0.0-rc.8
55
+ */
56
+ preventFocusRestore: {
57
+ type: Boolean,
71
58
  },
72
59
 
73
60
  /**
74
- * Indicates if the elements is on focus
61
+ * Indicates if the element is open
75
62
  * @private
63
+ * @type {boolean}
64
+ * @defaultvalue false
76
65
  */
77
66
  opened: {
78
67
  type: Boolean,
79
68
  },
80
69
 
81
- _zIndex: {
82
- type: Integer,
83
- noAttribute: true,
84
- },
85
- _hideBlockLayer: {
86
- type: Boolean,
87
- 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,
88
81
  },
89
82
 
90
83
  /**
@@ -93,130 +86,98 @@ const metadata = {
93
86
  _disableInitialFocus: {
94
87
  type: Boolean,
95
88
  },
89
+
90
+ _blockLayerHidden: {
91
+ type: Boolean,
92
+ },
96
93
  },
97
94
  events: /** @lends sap.ui.webcomponents.main.Popup.prototype */ {
98
95
 
99
96
  /**
100
- * 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>
101
98
  *
102
99
  * @public
103
- * @event
100
+ * @event sap.ui.webcomponents.main.Popup#before-open
101
+ * @allowPreventDefault
104
102
  */
103
+ "before-open": {},
105
104
 
106
- beforeOpen: {},
107
105
  /**
108
- * Fired after the component is opened.
106
+ * Fired after the component is opened. <b>This event does not bubble.</b>
109
107
  *
110
108
  * @public
111
- * @event
109
+ * @event sap.ui.webcomponents.main.Popup#after-open
112
110
  */
111
+ "after-open": {},
113
112
 
114
- afterOpen: {},
115
113
  /**
116
- * 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>
117
115
  *
118
116
  * @public
119
- * @event
120
- * @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.
121
120
  */
122
-
123
- beforeClose: {
124
- escPressed: { type: Boolean },
121
+ "before-close": {
122
+ detail: {
123
+ escPressed: { type: Boolean },
124
+ },
125
125
  },
126
126
 
127
127
  /**
128
- * Fired after the component is closed.
128
+ * Fired after the component is closed. <b>This event does not bubble.</b>
129
129
  *
130
130
  * @public
131
- * @event
131
+ * @event sap.ui.webcomponents.main.Popup#after-close
132
132
  */
133
- afterClose: {},
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
140
+ */
141
+ "scroll": {},
134
142
  },
135
143
  };
136
144
 
137
- const openedPopups = [];
138
- let currentZIndex = 100;
139
- let isBodyScrollingDisabled = false;
140
- let customBLyBackStyleInserted = false;
141
-
142
- function getParentHost(node) {
143
- while (node && !node.host) {
144
- node = node.parentNode;
145
- }
146
-
147
- return node && node.host;
148
- }
149
-
150
- function createBLyBackStyle() {
151
- if (customBLyBackStyleInserted) {
152
- return;
153
- }
154
-
155
- customBLyBackStyleInserted = true;
156
-
157
- const bodyStyleSheet = document.createElement("style");
158
- bodyStyleSheet.type = "text/css";
159
- bodyStyleSheet.innerHTML = `
160
- .ui5-popup-BLy--back {
161
- width: 100%;
162
- height: 100%;
163
- position: fixed;
164
- overflow: hidden;
165
- }
166
- `;
167
- document.head.appendChild(bodyStyleSheet);
168
- }
169
-
170
- function updateBlockLayers() {
171
- let popup,
172
- i,
173
- hasModal = false;
174
-
175
- for (i = openedPopups.length - 1; i >= 0; i--) {
176
- popup = openedPopups[i];
177
- if (hasModal) {
178
- popup._hideBlockLayer = true;
179
- } else {
180
- if (popup.isModal()) { // eslint-disable-line
181
- popup._hideBlockLayer = false;
182
- hasModal = true;
183
- }
184
- }
185
- }
186
-
187
- updateBodyScrolling(hasModal);
188
- }
189
-
190
- function updateBodyScrolling(hasModal) {
191
- if (isBodyScrollingDisabled === hasModal) {
192
- return;
145
+ const createBlockingStyle = () => {
146
+ if (!hasStyle("data-ui5-popup-scroll-blocker")) {
147
+ createStyle(globalStyles, "data-ui5-popup-scroll-blocker");
193
148
  }
149
+ };
194
150
 
195
- createBLyBackStyle();
196
-
197
- if (hasModal) {
198
- addBodyStyles();
199
- } else {
200
- removeBodyStyles();
201
- }
202
- isBodyScrollingDisabled = hasModal;
203
- }
204
-
205
- function addBodyStyles() {
206
- document.body.style.top = `-${window.pageYOffset}px`;
207
- document.body.classList.add("ui5-popup-BLy--back");
208
- }
151
+ createBlockingStyle();
209
152
 
210
- function removeBodyStyles() {
211
- document.body.classList.remove("ui5-popup-BLy--back");
212
- window.scrollTo(0, -parseFloat(document.body.style.top));
213
- document.body.style.top = "";
214
- }
153
+ const bodyScrollingBlockers = new Set();
215
154
 
216
155
  /**
217
156
  * @class
218
157
  * <h3 class="comment-api-title">Overview</h3>
219
- * 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)
220
181
  *
221
182
  * @constructor
222
183
  * @author SAP SE
@@ -229,243 +190,377 @@ class Popup extends UI5Element {
229
190
  return metadata;
230
191
  }
231
192
 
193
+ static get render() {
194
+ return litRender;
195
+ }
196
+
232
197
  static get styles() {
233
198
  return styles;
234
199
  }
235
200
 
236
- static getNextZIndex() {
237
- currentZIndex += 2;
238
- return currentZIndex;
201
+ static get template() {
202
+ return PopupTemplate;
239
203
  }
240
204
 
241
- static hitTest(popup, event) {
242
- const indexOf = openedPopups.indexOf(popup);
243
- let openedPopup;
244
-
245
- for (let i = indexOf; i < openedPopups.length; i++) {
246
- openedPopup = openedPopups[i];
247
- if (openedPopup.hitTest(event)) {
248
- return true;
249
- }
250
- }
205
+ static get staticAreaTemplate() {
206
+ return PopupBlockLayer;
207
+ }
251
208
 
252
- return false;
209
+ static get staticAreaStyles() {
210
+ return staticAreaStyles;
253
211
  }
254
212
 
255
- static hasModalPopup() {
256
- for (let i = 0; i < openedPopups.length; i++) {
257
- if (openedPopups[i].isModal()) {
258
- return true;
259
- }
213
+ onEnterDOM() {
214
+ if (!this.isOpen()) {
215
+ this._blockLayerHidden = true;
260
216
  }
261
-
262
- return false;
263
217
  }
264
218
 
265
- constructor() {
266
- super();
267
-
268
- this._documentKeyDownHandler = this.documentKeyDown.bind(this);
219
+ onExitDOM() {
220
+ if (this.isOpen()) {
221
+ Popup.unblockBodyScrolling(this);
222
+ this._removeOpenedPopup();
223
+ }
269
224
  }
270
225
 
271
- isTopPopup() {
272
- return openedPopups.indexOf(this) === openedPopups.length - 1;
226
+ get _displayProp() {
227
+ return "block";
273
228
  }
274
229
 
275
- isModal() {
276
- return true;
230
+ /**
231
+ * Prevents the user from interacting with the content under the block layer
232
+ */
233
+ _preventBlockLayerFocus(event) {
234
+ event.preventDefault();
277
235
  }
278
236
 
279
- documentKeyDown(event) {
280
- if (isEscape(event) && this.isTopPopup()) {
281
- this.escPressed = true;
282
- 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`;
283
250
  }
251
+ document.body.classList.add("ui5-popup-scroll-blocker");
284
252
  }
285
253
 
286
- getPopupDomRef() {
287
- const domRef = this.getDomRef();
288
- 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 = "";
289
268
  }
290
269
 
291
- hitTest(_event) {
292
- return true;
270
+ _scroll(e) {
271
+ this.fireEvent("scroll", {
272
+ scrollTop: e.target.scrollTop,
273
+ targetRef: e.target,
274
+ });
293
275
  }
294
276
 
295
- open() {
296
- this.fireEvent("beforeOpen", { });
277
+ _onkeydown(e) {
278
+ if (e.target === this._root && isTabPrevious(e)) {
279
+ e.preventDefault();
280
+ }
281
+ }
297
282
 
298
- 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
+ }
299
290
 
300
- this._zIndex = Popup.getNextZIndex();
301
- openedPopups.push(this);
302
- addOpenedPopup(this);
291
+ _onmousedown(e) {
292
+ this._root.removeAttribute("tabindex");
303
293
 
294
+ if (this.shadowRoot.contains(e.target)) {
295
+ this._shouldFocusRoot = true;
296
+ } else {
297
+ this._shouldFocusRoot = false;
298
+ }
299
+ }
304
300
 
305
- 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
+ }
306
309
  }
307
310
 
308
- close() {
309
- this.fireEvent("beforeClose", {
310
- escPressed: this.escPressed,
311
- }, true);
311
+ /**
312
+ * Focus trapping
313
+ * @private
314
+ */
315
+ async forwardToFirst() {
316
+ const firstFocusable = await getFirstFocusableElement(this);
312
317
 
313
- this.escPressed = false;
318
+ if (firstFocusable) {
319
+ firstFocusable.focus();
320
+ } else {
321
+ this._root.focus();
322
+ }
323
+ }
314
324
 
315
- const index = openedPopups.indexOf(this);
316
- openedPopups.splice(index, 1);
325
+ /**
326
+ * Focus trapping
327
+ * @private
328
+ */
329
+ async forwardToLast() {
330
+ const lastFocusable = await getLastFocusableElement(this);
317
331
 
318
- if (this.opened) {
319
- removeOpenedPopup(this);
332
+ if (lastFocusable) {
333
+ lastFocusable.focus();
334
+ } else {
335
+ this._root.focus();
320
336
  }
321
-
322
- updateBlockLayers();
323
337
  }
324
338
 
325
- initInitialFocus() {
326
- const initialFocus = this.initialFocus;
327
- let initialFocusDomRef = this.initialFocus;
328
-
329
- if (initialFocus && typeof initialFocus === "string") {
330
- 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
+ }
331
346
 
332
- if (!initialFocusDomRef) {
333
- const parentHost = getParentHost(this);
334
- if (parentHost) {
335
- initialFocusDomRef = parentHost.shadowRoot.querySelector(`#${initialFocus}`);
336
- }
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;
337
365
  }
366
+ element.focus();
338
367
  }
339
-
340
- this._initialFocusDomRef = initialFocusDomRef;
341
368
  }
342
369
 
343
- onFirstTimeAfterRendering() {
344
- if (this.isTopPopup()) {
345
- this.initInitialFocus();
346
- this.setInitialFocus(this.getPopupDomRef());
347
- }
370
+ /**
371
+ * Tells if the component is opened
372
+ * @public
373
+ * @returns {boolean}
374
+ */
375
+ isOpen() {
376
+ return this.opened;
377
+ }
348
378
 
349
- this.fireEvent("afterOpen", {});
379
+ isFocusWithin() {
380
+ return isFocusedElementWithinNode(this.shadowRoot.querySelector(".ui5-popup-root"));
350
381
  }
351
382
 
352
- onAfterRendering() {
353
- 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) {
354
390
  return;
355
391
  }
356
392
 
357
- if (!this._isFirstTimeRendered) {
358
- this.onFirstTimeAfterRendering();
359
- 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);
360
398
  }
361
- }
362
399
 
363
- setInitialFocus(container) {
364
- if (this._disableInitialFocus) {
365
- return;
366
- }
400
+ this._zIndex = getNextZIndex();
401
+ this.style.zIndex = this._zIndex;
402
+ this._focusedElementBeforeOpen = getFocusedElement();
367
403
 
368
- if (this._initialFocusDomRef) {
369
- if (this._initialFocusDomRef !== document.activeElement) {
370
- this._initialFocusDomRef.focus();
371
- }
372
- return;
373
- }
404
+ this._show();
374
405
 
375
- if (!container) {
376
- return;
406
+ if (!this._disableInitialFocus && !preventInitialFocus) {
407
+ this.applyInitialFocus();
377
408
  }
378
409
 
379
- const focusableElement = getFirstFocusableElement(container);
410
+ this._addOpenedPopup();
380
411
 
381
- if (focusableElement) {
382
- focusableElement.focus();
383
- } else {
384
- container.focus();
385
- }
412
+ this.opened = true;
413
+
414
+ await renderFinished();
415
+ this.fireEvent("after-open", {}, false, false);
386
416
  }
387
417
 
388
- onfocusin(event) {
389
- this.preserveFocus(event, this.getPopupDomRef());
418
+ /**
419
+ * Adds the popup to the "opened popups registry"
420
+ * @protected
421
+ */
422
+ _addOpenedPopup() {
423
+ addOpenedPopup(this);
390
424
  }
391
425
 
392
- preserveFocus(event, container) {
393
- 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) {
394
432
  return;
395
433
  }
396
434
 
397
- let target = event.target;
435
+ const prevented = !this.fireEvent("before-close", { escPressed }, true, false);
436
+ if (prevented) {
437
+ return;
438
+ }
398
439
 
399
- while (target.shadowRoot && target.shadowRoot.activeElement) {
400
- target = target.shadowRoot.activeElement;
440
+ if (this.isModal) {
441
+ this._blockLayerHidden = true;
442
+ Popup.unblockBodyScrolling(this);
401
443
  }
402
444
 
403
- let focusableElement;
404
- let isSpecialCase = false;
405
-
406
- switch (target.id) {
407
- case `${this._id}-firstfe`:
408
- focusableElement = getLastFocusableElement(container);
409
- isSpecialCase = true;
410
- break;
411
- case `${this._id}-lastfe`:
412
- focusableElement = getFirstFocusableElement(container);
413
- isSpecialCase = true;
414
- break;
415
- case `${this._id}-blocklayer`:
416
- focusableElement = this._currentFocusedElement
417
- || getFirstFocusableElement(container);
418
- isSpecialCase = true;
419
- break;
445
+ this.hide();
446
+ this.opened = false;
447
+
448
+ if (!preventRegistryUpdate) {
449
+ this._removeOpenedPopup();
420
450
  }
421
451
 
422
- if (focusableElement) {
423
- focusableElement.focus();
424
- } else if (isSpecialCase) {
425
- container.focus();
452
+ if (!this.preventFocusRestore && !preventFocusRestore) {
453
+ this.resetFocus();
426
454
  }
427
455
 
428
- this._currentFocusedElement = focusableElement || document.activeElement;
456
+ this.fireEvent("after-close", {}, false, false);
429
457
  }
430
458
 
431
- storeCurrentFocus() {
432
- let element = document.activeElement;
433
-
434
- while (element.shadowRoot && element.shadowRoot.activeElement) {
435
- element = element.shadowRoot.activeElement;
436
- }
437
-
438
- 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);
439
465
  }
440
466
 
467
+ /**
468
+ * Returns the focus to the previously focused element
469
+ * @protected
470
+ */
441
471
  resetFocus() {
442
- if (!this._lastFocusableElement) {
472
+ if (!this._focusedElementBeforeOpen) {
443
473
  return;
444
474
  }
445
475
 
446
- const lastFocusableElement = this._lastFocusableElement;
447
- if (lastFocusableElement) {
448
- lastFocusableElement.focus();
449
- }
476
+ this._focusedElementBeforeOpen.focus();
477
+ this._focusedElementBeforeOpen = null;
478
+ }
450
479
 
451
- 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;
452
486
  }
453
487
 
454
- onExitDOM() {
455
- 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;
456
539
  }
457
540
 
458
- get hasHeader() {
459
- const hasHeaderText = this.headerText && this.headerText.length;
460
- return !!(hasHeaderText || this.header.length);
541
+ get _root() {
542
+ return this.shadowRoot.querySelector(".ui5-popup-root");
461
543
  }
462
544
 
463
- get hasFooter() {
464
- return !!this.footer.length;
545
+ get styles() {
546
+ return {
547
+ root: {},
548
+ content: {},
549
+ blockLayer: {
550
+ "zIndex": (this._zIndex - 1),
551
+ },
552
+ };
465
553
  }
466
554
 
467
- get role() {
468
- return "heading";
555
+ get classes() {
556
+ return {
557
+ root: {
558
+ "ui5-popup-root": true,
559
+ },
560
+ content: {
561
+ "ui5-popup-content": true,
562
+ },
563
+ };
469
564
  }
470
565
  }
471
566