@ui5/webcomponents 2.0.0-rc.3 → 2.0.0-rc.5

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 (927) hide show
  1. package/.env.testing +4 -0
  2. package/CHANGELOG.md +273 -0
  3. package/README.md +1 -34
  4. package/dist/.tsbuildinfo +1 -1
  5. package/dist/Avatar.d.ts +2 -2
  6. package/dist/AvatarGroup.d.ts +4 -4
  7. package/dist/Breadcrumbs.d.ts +1 -1
  8. package/dist/Breadcrumbs.js +10 -5
  9. package/dist/Breadcrumbs.js.map +1 -1
  10. package/dist/Button.d.ts +27 -13
  11. package/dist/Button.js +38 -18
  12. package/dist/Button.js.map +1 -1
  13. package/dist/Calendar.d.ts +10 -5
  14. package/dist/Calendar.js +81 -26
  15. package/dist/Calendar.js.map +1 -1
  16. package/dist/CalendarDate.d.ts +2 -1
  17. package/dist/CalendarDate.js.map +1 -1
  18. package/dist/CalendarDateRange.d.ts +31 -0
  19. package/dist/CalendarDateRange.js +36 -0
  20. package/dist/CalendarDateRange.js.map +1 -0
  21. package/dist/CalendarHeader.js +8 -8
  22. package/dist/CalendarHeader.js.map +1 -1
  23. package/dist/CheckBox.d.ts +8 -17
  24. package/dist/CheckBox.js +14 -22
  25. package/dist/CheckBox.js.map +1 -1
  26. package/dist/ColorPalette.d.ts +19 -0
  27. package/dist/ColorPalette.js +112 -13
  28. package/dist/ColorPalette.js.map +1 -1
  29. package/dist/ColorPaletteItem.d.ts +16 -0
  30. package/dist/ColorPaletteItem.js +10 -0
  31. package/dist/ColorPaletteItem.js.map +1 -1
  32. package/dist/ColorPalettePopover.d.ts +5 -0
  33. package/dist/ColorPalettePopover.js +15 -0
  34. package/dist/ColorPalettePopover.js.map +1 -1
  35. package/dist/ColorPicker.d.ts +13 -1
  36. package/dist/ColorPicker.js +10 -0
  37. package/dist/ColorPicker.js.map +1 -1
  38. package/dist/ComboBox.d.ts +23 -11
  39. package/dist/ComboBox.js +156 -58
  40. package/dist/ComboBox.js.map +1 -1
  41. package/dist/ComboBoxItem.d.ts +5 -5
  42. package/dist/ComboBoxItem.js +3 -7
  43. package/dist/ComboBoxItem.js.map +1 -1
  44. package/dist/{ComboBoxGroupItem.d.ts → ComboBoxItemGroup.d.ts} +11 -3
  45. package/dist/{ComboBoxGroupItem.js → ComboBoxItemGroup.js} +24 -9
  46. package/dist/ComboBoxItemGroup.js.map +1 -0
  47. package/dist/CustomListItem.d.ts +7 -0
  48. package/dist/CustomListItem.js +7 -2
  49. package/dist/CustomListItem.js.map +1 -1
  50. package/dist/DatePicker.d.ts +9 -18
  51. package/dist/DatePicker.js +19 -15
  52. package/dist/DatePicker.js.map +1 -1
  53. package/dist/DateRangePicker.d.ts +5 -1
  54. package/dist/DateRangePicker.js +21 -0
  55. package/dist/DateRangePicker.js.map +1 -1
  56. package/dist/DateTimePicker.d.ts +4 -1
  57. package/dist/DateTimePicker.js +14 -0
  58. package/dist/DateTimePicker.js.map +1 -1
  59. package/dist/DayPicker.js +6 -4
  60. package/dist/DayPicker.js.map +1 -1
  61. package/dist/Dialog.d.ts +0 -16
  62. package/dist/Dialog.js +0 -21
  63. package/dist/Dialog.js.map +1 -1
  64. package/dist/FileUploader.d.ts +6 -23
  65. package/dist/FileUploader.js +15 -46
  66. package/dist/FileUploader.js.map +1 -1
  67. package/dist/Form.d.ts +199 -0
  68. package/dist/Form.js +359 -0
  69. package/dist/Form.js.map +1 -0
  70. package/dist/FormGroup.d.ts +64 -0
  71. package/dist/FormGroup.js +87 -0
  72. package/dist/FormGroup.js.map +1 -0
  73. package/dist/FormItem.d.ts +63 -0
  74. package/dist/FormItem.js +77 -0
  75. package/dist/FormItem.js.map +1 -0
  76. package/dist/Input.d.ts +17 -30
  77. package/dist/Input.js +46 -48
  78. package/dist/Input.js.map +1 -1
  79. package/dist/Label.d.ts +1 -1
  80. package/dist/Label.js +1 -1
  81. package/dist/Label.js.map +1 -1
  82. package/dist/Link.d.ts +6 -5
  83. package/dist/Link.js +3 -2
  84. package/dist/Link.js.map +1 -1
  85. package/dist/List.d.ts +3 -2
  86. package/dist/List.js +45 -0
  87. package/dist/List.js.map +1 -1
  88. package/dist/ListItem.d.ts +8 -15
  89. package/dist/ListItem.js +25 -34
  90. package/dist/ListItem.js.map +1 -1
  91. package/dist/ListItemBase.d.ts +24 -2
  92. package/dist/ListItemBase.js +54 -13
  93. package/dist/ListItemBase.js.map +1 -1
  94. package/dist/ListItemGroup.d.ts +6 -1
  95. package/dist/ListItemGroup.js +4 -1
  96. package/dist/ListItemGroup.js.map +1 -1
  97. package/dist/ListItemGroupHeader.d.ts +2 -0
  98. package/dist/ListItemGroupHeader.js +9 -0
  99. package/dist/ListItemGroupHeader.js.map +1 -1
  100. package/dist/Menu.d.ts +11 -90
  101. package/dist/Menu.js +65 -324
  102. package/dist/Menu.js.map +1 -1
  103. package/dist/MenuItem.d.ts +88 -23
  104. package/dist/MenuItem.js +111 -23
  105. package/dist/MenuItem.js.map +1 -1
  106. package/dist/MonthPicker.d.ts +1 -0
  107. package/dist/MonthPicker.js +10 -6
  108. package/dist/MonthPicker.js.map +1 -1
  109. package/dist/MultiComboBox.d.ts +17 -3
  110. package/dist/MultiComboBox.js +63 -25
  111. package/dist/MultiComboBox.js.map +1 -1
  112. package/dist/MultiInput.d.ts +18 -4
  113. package/dist/MultiInput.js +56 -31
  114. package/dist/MultiInput.js.map +1 -1
  115. package/dist/NavigationMenu.d.ts +1 -6
  116. package/dist/NavigationMenu.js +3 -47
  117. package/dist/NavigationMenu.js.map +1 -1
  118. package/dist/NavigationMenuItem.d.ts +22 -3
  119. package/dist/NavigationMenuItem.js +29 -4
  120. package/dist/NavigationMenuItem.js.map +1 -1
  121. package/dist/Option.d.ts +21 -33
  122. package/dist/Option.js +41 -19
  123. package/dist/Option.js.map +1 -1
  124. package/dist/OptionCustom.d.ts +52 -0
  125. package/dist/OptionCustom.js +69 -0
  126. package/dist/OptionCustom.js.map +1 -0
  127. package/dist/Panel.d.ts +1 -1
  128. package/dist/Popover.d.ts +8 -21
  129. package/dist/Popover.js +32 -44
  130. package/dist/Popover.js.map +1 -1
  131. package/dist/Popup.d.ts +23 -23
  132. package/dist/Popup.js +58 -66
  133. package/dist/Popup.js.map +1 -1
  134. package/dist/RadioButton.d.ts +17 -28
  135. package/dist/RadioButton.js +20 -32
  136. package/dist/RadioButton.js.map +1 -1
  137. package/dist/RadioButtonGroup.js +6 -5
  138. package/dist/RadioButtonGroup.js.map +1 -1
  139. package/dist/RangeSlider.d.ts +3 -1
  140. package/dist/RangeSlider.js +7 -0
  141. package/dist/RangeSlider.js.map +1 -1
  142. package/dist/ResponsivePopover.d.ts +4 -16
  143. package/dist/ResponsivePopover.js +17 -30
  144. package/dist/ResponsivePopover.js.map +1 -1
  145. package/dist/SegmentedButtonItem.d.ts +6 -1
  146. package/dist/SegmentedButtonItem.js +7 -4
  147. package/dist/SegmentedButtonItem.js.map +1 -1
  148. package/dist/Select.d.ts +28 -82
  149. package/dist/Select.js +84 -231
  150. package/dist/Select.js.map +1 -1
  151. package/dist/Slider.d.ts +3 -1
  152. package/dist/Slider.js +4 -0
  153. package/dist/Slider.js.map +1 -1
  154. package/dist/SliderBase.d.ts +11 -1
  155. package/dist/SliderBase.js +6 -0
  156. package/dist/SliderBase.js.map +1 -1
  157. package/dist/StandardListItem.d.ts +7 -0
  158. package/dist/StandardListItem.js +3 -0
  159. package/dist/StandardListItem.js.map +1 -1
  160. package/dist/StepInput.d.ts +6 -15
  161. package/dist/StepInput.js +7 -11
  162. package/dist/StepInput.js.map +1 -1
  163. package/dist/Switch.d.ts +8 -17
  164. package/dist/Switch.js +13 -21
  165. package/dist/Switch.js.map +1 -1
  166. package/dist/TabContainer.js +11 -5
  167. package/dist/TabContainer.js.map +1 -1
  168. package/dist/Tag.d.ts +1 -1
  169. package/dist/Tag.js.map +1 -1
  170. package/dist/TextArea.d.ts +9 -18
  171. package/dist/TextArea.js +22 -15
  172. package/dist/TextArea.js.map +1 -1
  173. package/dist/TimePicker.d.ts +24 -23
  174. package/dist/TimePicker.js +48 -57
  175. package/dist/TimePicker.js.map +1 -1
  176. package/dist/TimeSelectionClocks.js +2 -0
  177. package/dist/TimeSelectionClocks.js.map +1 -1
  178. package/dist/TimeSelectionInputs.js +2 -0
  179. package/dist/TimeSelectionInputs.js.map +1 -1
  180. package/dist/Toast.d.ts +1 -1
  181. package/dist/Toast.js +2 -2
  182. package/dist/Toast.js.map +1 -1
  183. package/dist/ToggleSpinButton.d.ts +1 -1
  184. package/dist/ToggleSpinButton.js +1 -1
  185. package/dist/ToggleSpinButton.js.map +1 -1
  186. package/dist/Token.d.ts +5 -0
  187. package/dist/Token.js +3 -0
  188. package/dist/Token.js.map +1 -1
  189. package/dist/Tokenizer.d.ts +11 -5
  190. package/dist/Tokenizer.js +93 -71
  191. package/dist/Tokenizer.js.map +1 -1
  192. package/dist/Toolbar.d.ts +5 -0
  193. package/dist/Toolbar.js +16 -4
  194. package/dist/Toolbar.js.map +1 -1
  195. package/dist/ToolbarButton.d.ts +11 -3
  196. package/dist/ToolbarButton.js +2 -2
  197. package/dist/ToolbarButton.js.map +1 -1
  198. package/dist/TreeItemBase.d.ts +8 -1
  199. package/dist/TreeItemBase.js +3 -1
  200. package/dist/TreeItemBase.js.map +1 -1
  201. package/dist/TreeItemCustom.js +4 -2
  202. package/dist/TreeItemCustom.js.map +1 -1
  203. package/dist/bundle.esm.d.ts +0 -1
  204. package/dist/bundle.esm.js +5 -3
  205. package/dist/bundle.esm.js.map +1 -1
  206. package/dist/css/themes/Avatar.css +1 -1
  207. package/dist/css/themes/AvatarGroup.css +1 -1
  208. package/dist/css/themes/Bar.css +1 -1
  209. package/dist/css/themes/Breadcrumbs.css +1 -1
  210. package/dist/css/themes/BusyIndicator.css +1 -1
  211. package/dist/css/themes/Button.css +1 -1
  212. package/dist/css/themes/Calendar.css +1 -1
  213. package/dist/css/themes/CalendarHeader.css +1 -1
  214. package/dist/css/themes/CalendarLegend.css +1 -1
  215. package/dist/css/themes/CalendarLegendItem.css +1 -1
  216. package/dist/css/themes/Card.css +1 -1
  217. package/dist/css/themes/CardHeader.css +1 -1
  218. package/dist/css/themes/Carousel.css +1 -1
  219. package/dist/css/themes/CheckBox.css +1 -1
  220. package/dist/css/themes/ColorPalette.css +1 -1
  221. package/dist/css/themes/ColorPaletteItem.css +1 -1
  222. package/dist/css/themes/ColorPalettePopover.css +1 -1
  223. package/dist/css/themes/ColorPicker.css +1 -1
  224. package/dist/css/themes/ComboBox.css +1 -1
  225. package/dist/css/themes/CustomListItem.css +1 -1
  226. package/dist/css/themes/DatePicker.css +1 -1
  227. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  228. package/dist/css/themes/DayPicker.css +1 -1
  229. package/dist/css/themes/Dialog.css +1 -1
  230. package/dist/css/themes/FileUploader.css +1 -1
  231. package/dist/css/themes/Form.css +1 -0
  232. package/dist/css/themes/FormItem.css +1 -0
  233. package/dist/css/themes/FormLabelSpan.css +1 -0
  234. package/dist/css/themes/FormLayout.css +1 -0
  235. package/dist/css/themes/GrowingButton.css +1 -1
  236. package/dist/css/themes/Icon.css +1 -1
  237. package/dist/css/themes/Input.css +1 -1
  238. package/dist/css/themes/InputIcon.css +1 -1
  239. package/dist/css/themes/InputSharedStyles.css +1 -1
  240. package/dist/css/themes/Label.css +1 -1
  241. package/dist/css/themes/Link.css +1 -1
  242. package/dist/css/themes/List.css +1 -1
  243. package/dist/css/themes/ListItem.css +1 -1
  244. package/dist/css/themes/ListItemAdditionalText.css +1 -0
  245. package/dist/css/themes/ListItemBase.css +1 -1
  246. package/dist/css/themes/ListItemGroup.css +1 -1
  247. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  248. package/dist/css/themes/ListItemIcon.css +1 -0
  249. package/dist/css/themes/Menu.css +1 -1
  250. package/dist/css/themes/MenuItem.css +1 -0
  251. package/dist/css/themes/MessageStrip.css +1 -1
  252. package/dist/css/themes/MonthPicker.css +1 -1
  253. package/dist/css/themes/MultiComboBox.css +1 -1
  254. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  255. package/dist/css/themes/MultiInput.css +1 -1
  256. package/dist/css/themes/NavigationMenu.css +1 -1
  257. package/dist/css/themes/NavigationMenuItem.css +1 -0
  258. package/dist/css/themes/OptionBase.css +1 -0
  259. package/dist/css/themes/Panel.css +1 -1
  260. package/dist/css/themes/Popover.css +1 -1
  261. package/dist/css/themes/Popup.css +1 -1
  262. package/dist/css/themes/PopupsCommon.css +1 -1
  263. package/dist/css/themes/ProgressIndicator.css +1 -1
  264. package/dist/css/themes/RadioButton.css +1 -1
  265. package/dist/css/themes/RangeSlider.css +1 -1
  266. package/dist/css/themes/RatingIndicator.css +1 -1
  267. package/dist/css/themes/ResponsivePopover.css +1 -1
  268. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  269. package/dist/css/themes/SegmentedButton.css +1 -1
  270. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  271. package/dist/css/themes/Select.css +1 -1
  272. package/dist/css/themes/SelectPopover.css +1 -1
  273. package/dist/css/themes/SliderBase.css +1 -1
  274. package/dist/css/themes/SplitButton.css +1 -1
  275. package/dist/css/themes/StepInput.css +1 -1
  276. package/dist/css/themes/Switch.css +1 -1
  277. package/dist/css/themes/TabContainer.css +1 -1
  278. package/dist/css/themes/TabInOverflow.css +1 -1
  279. package/dist/css/themes/TabInStrip.css +1 -1
  280. package/dist/css/themes/TabSemanticIcon.css +1 -1
  281. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  282. package/dist/css/themes/Tag.css +1 -1
  283. package/dist/css/themes/Text.css +1 -1
  284. package/dist/css/themes/TextArea.css +1 -1
  285. package/dist/css/themes/TimePicker.css +1 -1
  286. package/dist/css/themes/Toast.css +1 -1
  287. package/dist/css/themes/ToggleButton.css +1 -1
  288. package/dist/css/themes/Token.css +1 -1
  289. package/dist/css/themes/Tokenizer.css +1 -1
  290. package/dist/css/themes/TokenizerPopover.css +1 -1
  291. package/dist/css/themes/Toolbar.css +1 -1
  292. package/dist/css/themes/ToolbarPopover.css +1 -1
  293. package/dist/css/themes/TreeItem.css +1 -1
  294. package/dist/css/themes/ValueStateMessage.css +1 -1
  295. package/dist/css/themes/YearPicker.css +1 -1
  296. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  297. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  298. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  299. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  300. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  301. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  302. package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
  303. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  304. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  305. package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
  306. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  307. package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
  308. package/dist/custom-elements-internal.json +2425 -1770
  309. package/dist/custom-elements.json +1994 -1511
  310. package/dist/features/InputSuggestions.js +3 -1
  311. package/dist/features/InputSuggestions.js.map +1 -1
  312. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  313. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  314. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  315. package/dist/generated/assets/i18n/messagebundle_cnr.json +1 -1
  316. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  317. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  318. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  319. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  320. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  321. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  322. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  323. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  324. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  325. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  326. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  327. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  328. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  329. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  330. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  331. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  332. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  333. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  334. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  335. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  336. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  337. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  338. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  339. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  340. package/dist/generated/assets/i18n/messagebundle_mk.json +1 -1
  341. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  342. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  343. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  344. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  345. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  346. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  347. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  348. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  349. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  350. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  351. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  352. package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
  353. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  354. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  355. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  356. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  357. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  358. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  359. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  360. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  361. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  362. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  363. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  364. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  365. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  366. package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
  367. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  368. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  369. package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
  370. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  371. package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
  372. package/dist/generated/i18n/i18n-defaults.d.ts +6 -2
  373. package/dist/generated/i18n/i18n-defaults.js +6 -2
  374. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  375. package/dist/generated/templates/BreadcrumbsTemplate.lit.js +2 -2
  376. package/dist/generated/templates/BreadcrumbsTemplate.lit.js.map +1 -1
  377. package/dist/generated/templates/BusyIndicatorTemplate.lit.js +2 -2
  378. package/dist/generated/templates/BusyIndicatorTemplate.lit.js.map +1 -1
  379. package/dist/generated/templates/ButtonTemplate.lit.js +3 -2
  380. package/dist/generated/templates/ButtonTemplate.lit.js.map +1 -1
  381. package/dist/generated/templates/CalendarTemplate.lit.js +1 -1
  382. package/dist/generated/templates/CalendarTemplate.lit.js.map +1 -1
  383. package/dist/generated/templates/CheckBoxTemplate.lit.js +1 -1
  384. package/dist/generated/templates/CheckBoxTemplate.lit.js.map +1 -1
  385. package/dist/generated/templates/ColorPaletteItemTemplate.lit.js +2 -2
  386. package/dist/generated/templates/ColorPaletteItemTemplate.lit.js.map +1 -1
  387. package/dist/generated/templates/ColorPalettePopoverTemplate.lit.js +1 -1
  388. package/dist/generated/templates/ColorPalettePopoverTemplate.lit.js.map +1 -1
  389. package/dist/generated/templates/ColorPaletteTemplate.lit.js +1 -1
  390. package/dist/generated/templates/ColorPaletteTemplate.lit.js.map +1 -1
  391. package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js +12 -9
  392. package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js.map +1 -1
  393. package/dist/generated/templates/ComboBoxTemplate.lit.js +14 -11
  394. package/dist/generated/templates/ComboBoxTemplate.lit.js.map +1 -1
  395. package/dist/generated/templates/DatePickerInputTemplate.lit.js +2 -2
  396. package/dist/generated/templates/DatePickerInputTemplate.lit.js.map +1 -1
  397. package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +1 -1
  398. package/dist/generated/templates/DatePickerPopoverTemplate.lit.js.map +1 -1
  399. package/dist/generated/templates/DatePickerTemplate.lit.js +2 -2
  400. package/dist/generated/templates/DatePickerTemplate.lit.js.map +1 -1
  401. package/dist/generated/templates/DateRangePickerTemplate.lit.d.ts +4 -0
  402. package/dist/generated/templates/DateRangePickerTemplate.lit.js +9 -0
  403. package/dist/generated/templates/DateRangePickerTemplate.lit.js.map +1 -0
  404. package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js +1 -1
  405. package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js.map +1 -1
  406. package/dist/generated/templates/DateTimePickerTemplate.lit.js +2 -2
  407. package/dist/generated/templates/DateTimePickerTemplate.lit.js.map +1 -1
  408. package/dist/generated/templates/DialogTemplate.lit.js +1 -1
  409. package/dist/generated/templates/DialogTemplate.lit.js.map +1 -1
  410. package/dist/generated/templates/FileUploaderPopoverTemplate.lit.js +1 -1
  411. package/dist/generated/templates/FileUploaderPopoverTemplate.lit.js.map +1 -1
  412. package/dist/generated/templates/FileUploaderTemplate.lit.js +5 -7
  413. package/dist/generated/templates/FileUploaderTemplate.lit.js.map +1 -1
  414. package/dist/generated/templates/FormItemTemplate.lit.d.ts +4 -0
  415. package/dist/generated/templates/FormItemTemplate.lit.js +6 -0
  416. package/dist/generated/templates/FormItemTemplate.lit.js.map +1 -0
  417. package/dist/generated/templates/FormTemplate.lit.d.ts +4 -0
  418. package/dist/generated/templates/FormTemplate.lit.js +13 -0
  419. package/dist/generated/templates/FormTemplate.lit.js.map +1 -0
  420. package/dist/generated/templates/InputPopoverTemplate.lit.js +2 -2
  421. package/dist/generated/templates/InputPopoverTemplate.lit.js.map +1 -1
  422. package/dist/generated/templates/InputTemplate.lit.js +4 -4
  423. package/dist/generated/templates/InputTemplate.lit.js.map +1 -1
  424. package/dist/generated/templates/{MenuListItemTemplate.lit.d.ts → ListItemBaseTemplate.lit.d.ts} +2 -2
  425. package/dist/generated/templates/ListItemBaseTemplate.lit.js +5 -0
  426. package/dist/generated/templates/ListItemBaseTemplate.lit.js.map +1 -0
  427. package/dist/generated/templates/ListItemGroupHeaderTemplate.lit.js +1 -1
  428. package/dist/generated/templates/ListItemGroupHeaderTemplate.lit.js.map +1 -1
  429. package/dist/generated/templates/ListItemGroupTemplate.lit.js +1 -1
  430. package/dist/generated/templates/ListItemGroupTemplate.lit.js.map +1 -1
  431. package/dist/generated/templates/MenuItemTemplate.lit.d.ts +4 -0
  432. package/dist/generated/templates/{MenuListItemTemplate.lit.js → MenuItemTemplate.lit.js} +23 -15
  433. package/dist/generated/templates/MenuItemTemplate.lit.js.map +1 -0
  434. package/dist/generated/templates/MenuTemplate.lit.js +6 -8
  435. package/dist/generated/templates/MenuTemplate.lit.js.map +1 -1
  436. package/dist/generated/templates/MonthPickerTemplate.lit.js +1 -1
  437. package/dist/generated/templates/MonthPickerTemplate.lit.js.map +1 -1
  438. package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +2 -2
  439. package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js.map +1 -1
  440. package/dist/generated/templates/MultiComboBoxTemplate.lit.js +4 -4
  441. package/dist/generated/templates/MultiComboBoxTemplate.lit.js.map +1 -1
  442. package/dist/generated/templates/MultiInputTemplate.lit.js +28 -27
  443. package/dist/generated/templates/MultiInputTemplate.lit.js.map +1 -1
  444. package/dist/generated/templates/NavigationMenuItemTemplate.lit.d.ts +4 -0
  445. package/dist/generated/templates/NavigationMenuItemTemplate.lit.js +57 -0
  446. package/dist/generated/templates/NavigationMenuItemTemplate.lit.js.map +1 -0
  447. package/dist/generated/templates/NavigationMenuTemplate.lit.js +6 -19
  448. package/dist/generated/templates/NavigationMenuTemplate.lit.js.map +1 -1
  449. package/dist/generated/templates/OptionCustomTemplate.lit.d.ts +4 -0
  450. package/dist/generated/templates/OptionCustomTemplate.lit.js +5 -0
  451. package/dist/generated/templates/OptionCustomTemplate.lit.js.map +1 -0
  452. package/dist/generated/templates/OptionTemplate.lit.d.ts +4 -0
  453. package/dist/generated/templates/OptionTemplate.lit.js +7 -0
  454. package/dist/generated/templates/OptionTemplate.lit.js.map +1 -0
  455. package/dist/generated/templates/PopoverTemplate.lit.js +1 -1
  456. package/dist/generated/templates/PopoverTemplate.lit.js.map +1 -1
  457. package/dist/generated/templates/PopupTemplate.lit.js +1 -1
  458. package/dist/generated/templates/PopupTemplate.lit.js.map +1 -1
  459. package/dist/generated/templates/RadioButtonTemplate.lit.js +1 -1
  460. package/dist/generated/templates/RadioButtonTemplate.lit.js.map +1 -1
  461. package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +3 -3
  462. package/dist/generated/templates/ResponsivePopoverTemplate.lit.js.map +1 -1
  463. package/dist/generated/templates/SegmentedButtonItemTemplate.lit.js +1 -1
  464. package/dist/generated/templates/SegmentedButtonItemTemplate.lit.js.map +1 -1
  465. package/dist/generated/templates/SelectPopoverTemplate.lit.js +6 -7
  466. package/dist/generated/templates/SelectPopoverTemplate.lit.js.map +1 -1
  467. package/dist/generated/templates/SelectTemplate.lit.js +8 -9
  468. package/dist/generated/templates/SelectTemplate.lit.js.map +1 -1
  469. package/dist/generated/templates/StepInputTemplate.lit.js +3 -3
  470. package/dist/generated/templates/StepInputTemplate.lit.js.map +1 -1
  471. package/dist/generated/templates/SwitchTemplate.lit.js +1 -1
  472. package/dist/generated/templates/SwitchTemplate.lit.js.map +1 -1
  473. package/dist/generated/templates/TabContainerTemplate.lit.js +2 -2
  474. package/dist/generated/templates/TabContainerTemplate.lit.js.map +1 -1
  475. package/dist/generated/templates/TextAreaPopoverTemplate.lit.js +1 -1
  476. package/dist/generated/templates/TextAreaPopoverTemplate.lit.js.map +1 -1
  477. package/dist/generated/templates/TextAreaTemplate.lit.js +2 -2
  478. package/dist/generated/templates/TextAreaTemplate.lit.js.map +1 -1
  479. package/dist/generated/templates/TimePickerPopoverTemplate.lit.js +2 -2
  480. package/dist/generated/templates/TimePickerPopoverTemplate.lit.js.map +1 -1
  481. package/dist/generated/templates/TimePickerTemplate.lit.js +3 -3
  482. package/dist/generated/templates/TimePickerTemplate.lit.js.map +1 -1
  483. package/dist/generated/templates/ToggleButtonTemplate.lit.js +3 -2
  484. package/dist/generated/templates/ToggleButtonTemplate.lit.js.map +1 -1
  485. package/dist/generated/templates/ToggleSpinButtonTemplate.lit.js +3 -2
  486. package/dist/generated/templates/ToggleSpinButtonTemplate.lit.js.map +1 -1
  487. package/dist/generated/templates/TokenizerPopoverTemplate.lit.js +4 -3
  488. package/dist/generated/templates/TokenizerPopoverTemplate.lit.js.map +1 -1
  489. package/dist/generated/templates/TokenizerTemplate.lit.js +4 -3
  490. package/dist/generated/templates/TokenizerTemplate.lit.js.map +1 -1
  491. package/dist/generated/templates/ToolbarButtonTemplate.lit.js +1 -1
  492. package/dist/generated/templates/ToolbarButtonTemplate.lit.js.map +1 -1
  493. package/dist/generated/templates/ToolbarPopoverButtonTemplate.lit.js +1 -1
  494. package/dist/generated/templates/ToolbarPopoverButtonTemplate.lit.js.map +1 -1
  495. package/dist/generated/templates/ToolbarPopoverTemplate.lit.js +1 -1
  496. package/dist/generated/templates/ToolbarPopoverTemplate.lit.js.map +1 -1
  497. package/dist/generated/templates/ToolbarTemplate.lit.js +1 -1
  498. package/dist/generated/templates/ToolbarTemplate.lit.js.map +1 -1
  499. package/dist/generated/templates/YearPickerTemplate.lit.js +1 -1
  500. package/dist/generated/templates/YearPickerTemplate.lit.js.map +1 -1
  501. package/dist/generated/themes/Avatar.css.js +1 -1
  502. package/dist/generated/themes/Avatar.css.js.map +1 -1
  503. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  504. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  505. package/dist/generated/themes/Bar.css.js +1 -1
  506. package/dist/generated/themes/Bar.css.js.map +1 -1
  507. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  508. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  509. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  510. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  511. package/dist/generated/themes/Button.css.js +1 -1
  512. package/dist/generated/themes/Button.css.js.map +1 -1
  513. package/dist/generated/themes/Calendar.css.js +1 -1
  514. package/dist/generated/themes/Calendar.css.js.map +1 -1
  515. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  516. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  517. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  518. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  519. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  520. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  521. package/dist/generated/themes/Card.css.js +1 -1
  522. package/dist/generated/themes/Card.css.js.map +1 -1
  523. package/dist/generated/themes/CardHeader.css.js +1 -1
  524. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  525. package/dist/generated/themes/Carousel.css.js +1 -1
  526. package/dist/generated/themes/Carousel.css.js.map +1 -1
  527. package/dist/generated/themes/CheckBox.css.js +1 -1
  528. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  529. package/dist/generated/themes/ColorPalette.css.js +1 -1
  530. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  531. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  532. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  533. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  534. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  535. package/dist/generated/themes/ColorPicker.css.js +1 -1
  536. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  537. package/dist/generated/themes/ComboBox.css.js +1 -1
  538. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  539. package/dist/generated/themes/CustomListItem.css.js +1 -1
  540. package/dist/generated/themes/CustomListItem.css.js.map +1 -1
  541. package/dist/generated/themes/DatePicker.css.js +1 -1
  542. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  543. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  544. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  545. package/dist/generated/themes/DayPicker.css.js +1 -1
  546. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  547. package/dist/generated/themes/Dialog.css.js +1 -1
  548. package/dist/generated/themes/Dialog.css.js.map +1 -1
  549. package/dist/generated/themes/FileUploader.css.js +1 -1
  550. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  551. package/dist/generated/themes/Form.css.js +9 -0
  552. package/dist/generated/themes/Form.css.js.map +1 -0
  553. package/dist/generated/themes/FormItem.css.js +9 -0
  554. package/dist/generated/themes/FormItem.css.js.map +1 -0
  555. package/dist/generated/themes/FormLabelSpan.css.js +9 -0
  556. package/dist/generated/themes/FormLabelSpan.css.js.map +1 -0
  557. package/dist/generated/themes/FormLayout.css.d.ts +3 -0
  558. package/dist/generated/themes/FormLayout.css.js +9 -0
  559. package/dist/generated/themes/FormLayout.css.js.map +1 -0
  560. package/dist/generated/themes/GrowingButton.css.js +1 -1
  561. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  562. package/dist/generated/themes/Icon.css.js +1 -1
  563. package/dist/generated/themes/Icon.css.js.map +1 -1
  564. package/dist/generated/themes/Input.css.js +1 -1
  565. package/dist/generated/themes/Input.css.js.map +1 -1
  566. package/dist/generated/themes/InputIcon.css.js +1 -1
  567. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  568. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  569. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  570. package/dist/generated/themes/Label.css.js +1 -1
  571. package/dist/generated/themes/Label.css.js.map +1 -1
  572. package/dist/generated/themes/Link.css.js +1 -1
  573. package/dist/generated/themes/Link.css.js.map +1 -1
  574. package/dist/generated/themes/List.css.js +1 -1
  575. package/dist/generated/themes/List.css.js.map +1 -1
  576. package/dist/generated/themes/ListItem.css.js +1 -1
  577. package/dist/generated/themes/ListItem.css.js.map +1 -1
  578. package/dist/generated/themes/ListItemAdditionalText.css.d.ts +3 -0
  579. package/dist/generated/themes/{SelectMenu.css.js → ListItemAdditionalText.css.js} +2 -2
  580. package/dist/generated/themes/ListItemAdditionalText.css.js.map +1 -0
  581. package/dist/generated/themes/ListItemBase.css.js +1 -1
  582. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  583. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  584. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  585. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  586. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  587. package/dist/generated/themes/ListItemIcon.css.d.ts +3 -0
  588. package/dist/generated/themes/ListItemIcon.css.js +9 -0
  589. package/dist/generated/themes/ListItemIcon.css.js.map +1 -0
  590. package/dist/generated/themes/Menu.css.js +1 -1
  591. package/dist/generated/themes/Menu.css.js.map +1 -1
  592. package/dist/generated/themes/MenuItem.css.d.ts +3 -0
  593. package/dist/generated/themes/MenuItem.css.js +9 -0
  594. package/dist/generated/themes/MenuItem.css.js.map +1 -0
  595. package/dist/generated/themes/MessageStrip.css.js +1 -1
  596. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  597. package/dist/generated/themes/MonthPicker.css.js +1 -1
  598. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  599. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  600. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  601. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  602. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  603. package/dist/generated/themes/MultiInput.css.js +1 -1
  604. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  605. package/dist/generated/themes/NavigationMenu.css.js +1 -1
  606. package/dist/generated/themes/NavigationMenu.css.js.map +1 -1
  607. package/dist/generated/themes/NavigationMenuItem.css.d.ts +3 -0
  608. package/dist/generated/themes/NavigationMenuItem.css.js +9 -0
  609. package/dist/generated/themes/NavigationMenuItem.css.js.map +1 -0
  610. package/dist/generated/themes/OptionBase.css.d.ts +3 -0
  611. package/dist/generated/themes/{SelectMenuOption.css.js → OptionBase.css.js} +3 -2
  612. package/dist/generated/themes/{SelectMenu.css.js.map → OptionBase.css.js.map} +1 -1
  613. package/dist/generated/themes/Panel.css.js +1 -1
  614. package/dist/generated/themes/Panel.css.js.map +1 -1
  615. package/dist/generated/themes/Popover.css.js +1 -1
  616. package/dist/generated/themes/Popover.css.js.map +1 -1
  617. package/dist/generated/themes/Popup.css.js +1 -1
  618. package/dist/generated/themes/Popup.css.js.map +1 -1
  619. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  620. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  621. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  622. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  623. package/dist/generated/themes/RadioButton.css.js +1 -1
  624. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  625. package/dist/generated/themes/RangeSlider.css.js +1 -1
  626. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  627. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  628. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  629. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  630. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  631. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  632. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  633. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  634. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  635. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  636. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  637. package/dist/generated/themes/Select.css.js +1 -1
  638. package/dist/generated/themes/Select.css.js.map +1 -1
  639. package/dist/generated/themes/SelectPopover.css.js +1 -1
  640. package/dist/generated/themes/SelectPopover.css.js.map +1 -1
  641. package/dist/generated/themes/SliderBase.css.js +1 -1
  642. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  643. package/dist/generated/themes/SplitButton.css.js +1 -1
  644. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  645. package/dist/generated/themes/StepInput.css.js +1 -1
  646. package/dist/generated/themes/StepInput.css.js.map +1 -1
  647. package/dist/generated/themes/Switch.css.js +1 -1
  648. package/dist/generated/themes/Switch.css.js.map +1 -1
  649. package/dist/generated/themes/TabContainer.css.js +1 -1
  650. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  651. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  652. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  653. package/dist/generated/themes/TabInStrip.css.js +1 -1
  654. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  655. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  656. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  657. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  658. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  659. package/dist/generated/themes/Tag.css.js +1 -1
  660. package/dist/generated/themes/Tag.css.js.map +1 -1
  661. package/dist/generated/themes/Text.css.js +1 -1
  662. package/dist/generated/themes/Text.css.js.map +1 -1
  663. package/dist/generated/themes/TextArea.css.js +1 -1
  664. package/dist/generated/themes/TextArea.css.js.map +1 -1
  665. package/dist/generated/themes/TimePicker.css.js +1 -1
  666. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  667. package/dist/generated/themes/Toast.css.js +1 -1
  668. package/dist/generated/themes/Toast.css.js.map +1 -1
  669. package/dist/generated/themes/ToggleButton.css.js +1 -1
  670. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  671. package/dist/generated/themes/Token.css.js +1 -1
  672. package/dist/generated/themes/Token.css.js.map +1 -1
  673. package/dist/generated/themes/Tokenizer.css.js +1 -1
  674. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  675. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  676. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  677. package/dist/generated/themes/Toolbar.css.js +1 -1
  678. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  679. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  680. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  681. package/dist/generated/themes/TreeItem.css.js +1 -1
  682. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  683. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  684. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  685. package/dist/generated/themes/YearPicker.css.js +1 -1
  686. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  687. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  688. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  689. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  690. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  691. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  692. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  693. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  694. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  695. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  696. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  697. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  698. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  699. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
  700. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
  701. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  702. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
  703. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  704. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  705. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +1 -1
  706. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
  707. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  708. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  709. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
  710. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
  711. package/dist/popup-utils/OpenedPopupsRegistry.js +1 -1
  712. package/dist/popup-utils/OpenedPopupsRegistry.js.map +1 -1
  713. package/dist/popup-utils/PopoverRegistry.js +5 -4
  714. package/dist/popup-utils/PopoverRegistry.js.map +1 -1
  715. package/dist/styles/Icon.css +33 -0
  716. package/dist/styles/Icon.module.css +33 -0
  717. package/dist/types/FormItemSpacing.d.ts +19 -0
  718. package/dist/types/FormItemSpacing.js +21 -0
  719. package/dist/types/FormItemSpacing.js.map +1 -0
  720. package/dist/types/{HighlightTypes.d.ts → Highlight.d.ts} +3 -3
  721. package/dist/types/Highlight.js +30 -0
  722. package/dist/types/Highlight.js.map +1 -0
  723. package/dist/types/InputType.d.ts +7 -1
  724. package/dist/types/InputType.js +6 -0
  725. package/dist/types/InputType.js.map +1 -1
  726. package/dist/types/LinkAccessibleRole.d.ts +19 -0
  727. package/dist/types/LinkAccessibleRole.js +21 -0
  728. package/dist/types/LinkAccessibleRole.js.map +1 -0
  729. package/dist/vscode.html-custom-data.json +312 -163
  730. package/dist/web-types.json +736 -378
  731. package/package.json +10 -10
  732. package/src/Breadcrumbs.hbs +4 -2
  733. package/src/BusyIndicator.hbs +1 -1
  734. package/src/Button.hbs +12 -2
  735. package/src/Calendar.hbs +2 -2
  736. package/src/CheckBox.hbs +0 -2
  737. package/src/ColorPalette.hbs +3 -1
  738. package/src/ColorPaletteItem.hbs +1 -1
  739. package/src/ColorPalettePopover.hbs +2 -1
  740. package/src/ComboBox.hbs +3 -2
  741. package/src/ComboBoxPopover.hbs +15 -4
  742. package/src/DatePickerInput.hbs +1 -3
  743. package/src/DatePickerPopover.hbs +3 -3
  744. package/src/DateRangePicker.hbs +23 -0
  745. package/src/DateTimePickerPopover.hbs +2 -2
  746. package/src/FileUploader.hbs +10 -16
  747. package/src/FileUploaderPopover.hbs +1 -1
  748. package/src/Form.hbs +37 -0
  749. package/src/FormItem.hbs +14 -0
  750. package/src/Input.hbs +2 -3
  751. package/src/InputPopover.hbs +5 -5
  752. package/src/ListItemBase.hbs +21 -0
  753. package/src/ListItemGroup.hbs +12 -12
  754. package/src/ListItemGroupHeader.hbs +0 -1
  755. package/src/Menu.hbs +17 -49
  756. package/src/MenuItem.hbs +111 -0
  757. package/src/MonthPicker.hbs +2 -2
  758. package/src/MultiComboBox.hbs +3 -2
  759. package/src/MultiComboBoxPopover.hbs +4 -4
  760. package/src/MultiInput.hbs +4 -2
  761. package/src/NavigationMenu.hbs +14 -101
  762. package/src/NavigationMenuItem.hbs +124 -0
  763. package/src/Option.hbs +15 -0
  764. package/src/OptionCustom.hbs +5 -0
  765. package/src/Popup.hbs +1 -0
  766. package/src/RadioButton.hbs +0 -1
  767. package/src/ResponsivePopover.hbs +6 -5
  768. package/src/SegmentedButtonItem.hbs +1 -1
  769. package/src/Select.hbs +2 -3
  770. package/src/SelectPopover.hbs +9 -20
  771. package/src/StepInput.hbs +2 -4
  772. package/src/Switch.hbs +0 -1
  773. package/src/TabContainer.hbs +4 -4
  774. package/src/TextArea.hbs +0 -2
  775. package/src/TextAreaPopover.hbs +1 -1
  776. package/src/TimePicker.hbs +4 -5
  777. package/src/TimePickerPopover.hbs +7 -5
  778. package/src/TokenizerPopover.hbs +9 -7
  779. package/src/ToolbarButton.hbs +1 -1
  780. package/src/ToolbarPopover.hbs +2 -2
  781. package/src/ToolbarPopoverButton.hbs +1 -1
  782. package/src/YearPicker.hbs +1 -1
  783. package/src/i18n/messagebundle.properties +11 -3
  784. package/src/i18n/messagebundle_ar.properties +13 -3
  785. package/src/i18n/messagebundle_bg.properties +13 -3
  786. package/src/i18n/messagebundle_ca.properties +13 -3
  787. package/src/i18n/messagebundle_cnr.properties +13 -3
  788. package/src/i18n/messagebundle_cs.properties +13 -3
  789. package/src/i18n/messagebundle_cy.properties +13 -3
  790. package/src/i18n/messagebundle_da.properties +13 -3
  791. package/src/i18n/messagebundle_de.properties +13 -3
  792. package/src/i18n/messagebundle_el.properties +13 -3
  793. package/src/i18n/messagebundle_en.properties +13 -3
  794. package/src/i18n/messagebundle_en_GB.properties +13 -3
  795. package/src/i18n/messagebundle_en_US_saprigi.properties +13 -3
  796. package/src/i18n/messagebundle_es.properties +13 -3
  797. package/src/i18n/messagebundle_es_MX.properties +13 -3
  798. package/src/i18n/messagebundle_et.properties +13 -3
  799. package/src/i18n/messagebundle_fi.properties +13 -3
  800. package/src/i18n/messagebundle_fr.properties +13 -3
  801. package/src/i18n/messagebundle_fr_CA.properties +13 -3
  802. package/src/i18n/messagebundle_hi.properties +13 -3
  803. package/src/i18n/messagebundle_hr.properties +13 -3
  804. package/src/i18n/messagebundle_hu.properties +13 -3
  805. package/src/i18n/messagebundle_id.properties +13 -3
  806. package/src/i18n/messagebundle_it.properties +14 -4
  807. package/src/i18n/messagebundle_iw.properties +13 -3
  808. package/src/i18n/messagebundle_ja.properties +13 -3
  809. package/src/i18n/messagebundle_kk.properties +13 -3
  810. package/src/i18n/messagebundle_ko.properties +13 -3
  811. package/src/i18n/messagebundle_lt.properties +13 -3
  812. package/src/i18n/messagebundle_lv.properties +13 -3
  813. package/src/i18n/messagebundle_mk.properties +13 -3
  814. package/src/i18n/messagebundle_ms.properties +13 -3
  815. package/src/i18n/messagebundle_nl.properties +13 -3
  816. package/src/i18n/messagebundle_no.properties +13 -3
  817. package/src/i18n/messagebundle_pl.properties +13 -3
  818. package/src/i18n/messagebundle_pt.properties +13 -3
  819. package/src/i18n/messagebundle_pt_PT.properties +13 -3
  820. package/src/i18n/messagebundle_ro.properties +13 -3
  821. package/src/i18n/messagebundle_ru.properties +13 -3
  822. package/src/i18n/messagebundle_sh.properties +13 -3
  823. package/src/i18n/messagebundle_sk.properties +13 -3
  824. package/src/i18n/messagebundle_sl.properties +13 -3
  825. package/src/i18n/messagebundle_sr.properties +13 -3
  826. package/src/i18n/messagebundle_sv.properties +13 -3
  827. package/src/i18n/messagebundle_th.properties +13 -3
  828. package/src/i18n/messagebundle_tr.properties +13 -3
  829. package/src/i18n/messagebundle_uk.properties +17 -7
  830. package/src/i18n/messagebundle_vi.properties +13 -3
  831. package/src/i18n/messagebundle_zh_CN.properties +13 -3
  832. package/src/i18n/messagebundle_zh_TW.properties +13 -3
  833. package/src/styles/Icon.module.css +1 -0
  834. package/src/themes/Button.css +7 -10
  835. package/src/themes/Calendar.css +1 -0
  836. package/src/themes/CalendarLegendItem.css +4 -1
  837. package/src/themes/ColorPalette.css +11 -6
  838. package/src/themes/ColorPaletteItem.css +55 -27
  839. package/src/themes/Form.css +50 -0
  840. package/src/themes/FormItem.css +65 -0
  841. package/src/themes/FormLabelSpan.css +267 -0
  842. package/src/themes/FormLayout.css +159 -0
  843. package/src/themes/GrowingButton.css +1 -1
  844. package/src/themes/Input.css +20 -20
  845. package/src/themes/InputIcon.css +6 -13
  846. package/src/themes/InputSharedStyles.css +15 -16
  847. package/src/themes/Label.css +7 -4
  848. package/src/themes/Link.css +5 -5
  849. package/src/themes/ListItem.css +6 -57
  850. package/src/themes/ListItemAdditionalText.css +10 -0
  851. package/src/themes/ListItemBase.css +61 -46
  852. package/src/themes/ListItemIcon.css +6 -0
  853. package/src/themes/Menu.css +0 -10
  854. package/src/themes/{MenuListItem.css → MenuItem.css} +13 -1
  855. package/src/themes/MonthPicker.css +23 -0
  856. package/src/themes/NavigationMenu.css +7 -65
  857. package/src/themes/NavigationMenuItem.css +54 -0
  858. package/src/themes/OptionBase.css +3 -0
  859. package/src/themes/Popover.css +1 -1
  860. package/src/themes/Popup.css +1 -1
  861. package/src/themes/RadioButton.css +8 -8
  862. package/src/themes/ResponsivePopover.css +3 -3
  863. package/src/themes/ResponsivePopoverCommon.css +3 -3
  864. package/src/themes/SegmentedButton.css +2 -3
  865. package/src/themes/SegmentedButtonItem.css +0 -8
  866. package/src/themes/SelectPopover.css +1 -9
  867. package/src/themes/TimePicker.css +1 -24
  868. package/src/themes/base/ColorPalette-parameters.css +10 -4
  869. package/src/themes/base/Form-parameters.css +20 -0
  870. package/src/themes/base/sizes-parameters.css +25 -7
  871. package/src/themes/sap_fiori_3/parameters-bundle.css +2 -2
  872. package/src/themes/sap_fiori_3/sizes-parameters.css +6 -0
  873. package/src/themes/sap_fiori_3_dark/parameters-bundle.css +2 -2
  874. package/src/themes/sap_fiori_3_dark/sizes-parameters.css +6 -0
  875. package/src/themes/sap_fiori_3_hcb/Tag-parameters.css +102 -0
  876. package/src/themes/sap_fiori_3_hcw/Tag-parameters.css +102 -0
  877. package/src/themes/sap_horizon/ColorPalette-parameters.css +7 -4
  878. package/src/themes/sap_horizon/parameters-bundle.css +1 -0
  879. package/src/themes/sap_horizon/sizes-parameters.css +4 -2
  880. package/src/themes/sap_horizon_dark/ColorPalette-parameters.css +7 -4
  881. package/src/themes/sap_horizon_dark/sizes-parameters.css +4 -2
  882. package/src/themes/sap_horizon_dark_exp/ColorPalette-parameters.css +5 -4
  883. package/src/themes/sap_horizon_dark_exp/sizes-parameters.css +1 -2
  884. package/src/themes/sap_horizon_exp/ColorPalette-parameters.css +5 -4
  885. package/src/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  886. package/src/themes/sap_horizon_exp/sizes-parameters.css +1 -2
  887. package/src/themes/sap_horizon_hcb/ColorPalette-parameters.css +8 -0
  888. package/src/themes/sap_horizon_hcb/Tag-parameters.css +9 -9
  889. package/src/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  890. package/src/themes/sap_horizon_hcw/ColorPalette-parameters.css +8 -0
  891. package/src/themes/sap_horizon_hcw/Tag-parameters.css +9 -9
  892. package/src/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  893. package/dist/ComboBoxGroupItem.js.map +0 -1
  894. package/dist/MenuListItem.d.ts +0 -61
  895. package/dist/MenuListItem.js +0 -71
  896. package/dist/MenuListItem.js.map +0 -1
  897. package/dist/SelectMenu.d.ts +0 -102
  898. package/dist/SelectMenu.js +0 -237
  899. package/dist/SelectMenu.js.map +0 -1
  900. package/dist/SelectMenuOption.d.ts +0 -94
  901. package/dist/SelectMenuOption.js +0 -78
  902. package/dist/SelectMenuOption.js.map +0 -1
  903. package/dist/css/themes/MenuListItem.css +0 -1
  904. package/dist/css/themes/SelectMenu.css +0 -1
  905. package/dist/css/themes/SelectMenuOption.css +0 -0
  906. package/dist/features/InputElementsFormSupport.d.ts +0 -41
  907. package/dist/features/InputElementsFormSupport.js +0 -134
  908. package/dist/features/InputElementsFormSupport.js.map +0 -1
  909. package/dist/generated/templates/MenuListItemTemplate.lit.js.map +0 -1
  910. package/dist/generated/templates/SelectMenuTemplate.lit.d.ts +0 -4
  911. package/dist/generated/templates/SelectMenuTemplate.lit.js +0 -15
  912. package/dist/generated/templates/SelectMenuTemplate.lit.js.map +0 -1
  913. package/dist/generated/themes/MenuListItem.css.js +0 -9
  914. package/dist/generated/themes/MenuListItem.css.js.map +0 -1
  915. package/dist/generated/themes/SelectMenuOption.css.js.map +0 -1
  916. package/dist/styles/Input.css +0 -0
  917. package/dist/styles/Input.module.css +0 -0
  918. package/dist/types/HighlightTypes.js +0 -30
  919. package/dist/types/HighlightTypes.js.map +0 -1
  920. package/src/MenuListItem.hbs +0 -35
  921. package/src/SelectMenu.hbs +0 -57
  922. package/src/styles/Input.module.css +0 -0
  923. package/src/themes/SelectMenu.css +0 -16
  924. package/src/themes/SelectMenuOption.css +0 -0
  925. /package/dist/generated/themes/{MenuListItem.css.d.ts → Form.css.d.ts} +0 -0
  926. /package/dist/generated/themes/{SelectMenu.css.d.ts → FormItem.css.d.ts} +0 -0
  927. /package/dist/generated/themes/{SelectMenuOption.css.d.ts → FormLabelSpan.css.d.ts} +0 -0
package/dist/Popup.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Popup.js","sourceRoot":"","sources":["../src/Popup.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,KAAK,MAAM,kDAAkD,CAAC;AACrE,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAE3E,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACvF,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,wDAAwD,CAAC;AAC3H,OAAO,EAAE,yBAAyB,EAAE,MAAM,sDAAsD,CAAC;AACjG,OAAO,0BAA0B,MAAM,iEAAiE,CAAC;AACzG,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AACtF,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAChH,OAAO,aAAa,MAAM,wDAAwD,CAAC;AAEnF,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,4CAA4C,CAAC;AACvE,OAAO,mBAAmB,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE1F,SAAS;AACT,OAAO,WAAW,MAAM,iCAAiC,CAAC;AAC1D,OAAO,qBAAqB,MAAM,2CAA2C,CAAC;AAC9E,OAAO,YAAY,MAAM,uCAAuC,CAAC;AAEjE,MAAM,mBAAmB,GAAG,GAAS,EAAE;IACtC,IAAI,CAAC,QAAQ,CAAC,+BAA+B,CAAC,EAAE;QAC/C,WAAW,CAAC,YAAY,EAAE,+BAA+B,CAAC,CAAC;KAC3D;AACF,CAAC,CAAC;AAEF,mBAAmB,EAAE,CAAC;AAEtB,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAS,CAAC;AAW/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AA+CH,IAAe,KAAK,aAApB,MAAe,KAAM,SAAQ,UAAU;IAkFtC;QACC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9C,IAAI,CAAC,cAAc,GAAG,GAAG,EAAE;YAC1B,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAc,gBAAgB,CAAE,CAAC;QACvE,CAAC,CAAC;IACH,CAAC;IAED,gBAAgB;QACf,cAAc,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;YAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,UAAU;QACT,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACvC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAClD,IAAI,SAAS,EAAE,EAAE;YAChB,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;SACjC;IACF,CAAC;IAED,SAAS;QACR,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;YAClB,OAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC1B;QAED,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACrD,CAAC;IAED;;;;;OAKG;IAEH,IAAI,IAAI,CAAC,KAAc;QACtB,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;YAC3B,OAAO;SACP;QAED,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAErB,IAAI,KAAK,EAAE;YACV,IAAI,CAAC,SAAS,EAAE,CAAC;SACjB;aAAM;YACN,IAAI,CAAC,KAAK,EAAE,CAAC;SACb;IACF,CAAC;IAED,IAAI,IAAI;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,SAAS;QACd,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,OAAO;QACN,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,uBAAuB,CAAC,CAA6B;QACpD,CAAC,CAAC,cAAc,EAAE,CAAC;IACpB,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,kBAAkB,CAAC,KAAY;QACrC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEjC,IAAI,qBAAqB,CAAC,IAAI,KAAK,CAAC,EAAE;YACrC,OAAO;SACP;QAED,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACpE,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,oBAAoB,CAAC,KAAY;QACvC,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEpC,IAAI,qBAAqB,CAAC,IAAI,KAAK,CAAC,EAAE;YACrC,OAAO;SACP;QAED,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,CAAC,CAAQ;QACf,IAAI,CAAC,SAAS,CAAyB,QAAQ,EAAE;YAChD,SAAS,EAAG,CAAC,CAAC,MAAsB,CAAC,SAAS;YAC9C,SAAS,EAAE,CAAC,CAAC,MAAqB;SAClC,CAAC,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,CAAgB;QAC1B,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;QACpE,oHAAoH;QACpH,MAAM,yBAAyB,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAE/D,IAAI,eAAe,IAAI,yBAAyB,EAAE;YACjD,CAAC,CAAC,cAAc,EAAE,CAAC;SACnB;IACF,CAAC;IAED,WAAW,CAAC,CAAa;QACxB,iGAAiG;QACjG,qFAAqF;QACrF,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE;YACrB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;SAC7B;IACF,CAAC;IAED,YAAY,CAAC,CAAa;QACzB,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,qCAAqC;YACvD,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;SACvC;QAED,IAAI,IAAI,CAAC,UAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAqB,CAAC,EAAE;YACvD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;SAC7B;aAAM;YACN,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;SAC9B;IACF,CAAC;IAED,UAAU;QACT,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,qCAAqC;YACvD,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;SACzB;QAED,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAC1B,IAAI,QAAQ,EAAE,EAAE;gBACf,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;aACnB;YACD,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;SAC9B;IACF,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc;QACnB,MAAM,cAAc,GAAG,MAAM,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAE5D,IAAI,cAAc,EAAE;YACnB,cAAc,CAAC,KAAK,EAAE,CAAC;SACvB;aAAM;YACN,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;SACnB;IACF,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa;QAClB,MAAM,aAAa,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAE1D,IAAI,aAAa,EAAE;YAClB,aAAa,CAAC,KAAK,EAAE,CAAC;SACtB;aAAM;YACN,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;SACnB;IACF,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,iBAAiB,CAAC,mBAA4B;QACnD,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,mBAAmB,EAAE;YACvD,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;SACxB;IACF,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU;QACf,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;YAChC,OAAO;SACP;QAED,IAAI,OAAO,CAAC;QAEZ,IAAI,IAAI,CAAC,YAAY,EAAE;YACtB,OAAO,GAAI,IAAI,CAAC,WAAW,EAAe,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC;mBACzE,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC9C;QAED,OAAO,GAAG,OAAO,IAAI,MAAM,wBAAwB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,iDAAiD;QAE1H,IAAI,OAAO,EAAE;YACZ,IAAI,OAAO,KAAK,IAAI,CAAC,KAAK,EAAE;gBAC3B,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;aACtB;YACD,OAAO,CAAC,KAAK,EAAE,CAAC;SAChB;IACF,CAAC;IAED;;;OAGG;IACH,MAAM;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IAClB,CAAC;IAED,aAAa;QACZ,OAAO,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK,CAAC,mBAA4B;QACvC,IAAI,IAAI,CAAC,SAAS,EAAE;YACnB,OAAO;SACP;QAED,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAElE,IAAI,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE;YAChC,OAAO;SACP;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC7C,OAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;SAC/B;QAED,IAAI,CAAC,yBAAyB,GAAG,iBAAiB,EAAE,CAAC;QAErD,IAAI,CAAC,KAAK,EAAE,CAAC;QAEb,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;YACrB,IAAI,CAAC,iBAAiB,EAAE,CAAC;SACzB;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,0DAA0D;QAC1D,MAAM,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;QAElD,MAAM,cAAc,EAAE,CAAC;QAEvB,2DAA2D;QAC3D,MAAM,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;QAElD,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IAED,iBAAiB;QAChB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,EAAG,CAAC,WAAW,CAAC,CAAC;IAChH,CAAC;IAED;;;OAGG;IACH,eAAe;QACd,cAAc,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU,GAAG,KAAK,EAAE,qBAAqB,GAAG,KAAK,EAAE,mBAAmB,GAAG,KAAK;QACnF,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACpB,OAAO;SACP;QAED,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAA8B,cAAc,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC5G,IAAI,SAAS,EAAE;YACd,OAAO;SACP;QAED,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAEvB,IAAI,IAAI,CAAC,OAAO,EAAE;YACjB,OAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;SACjC;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAElB,IAAI,CAAC,qBAAqB,EAAE;YAC3B,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC1B;QAED,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,mBAAmB,EAAE;YACtD,IAAI,CAAC,UAAU,EAAE,CAAC;SAClB;QAED,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;IAED;;;OAGG;IACH,kBAAkB;QACjB,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,UAAU;QACT,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE;YACpC,OAAO;SACP;QAED,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,CAAC;QACvC,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;IACvC,CAAC;IAED;;;OAGG;IACH,KAAK;QACJ,IAAI,IAAI,CAAC,WAAW,EAAE;YACrB,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACvC,IAAI,CAAC,WAAW,EAAE,CAAC;SACnB;IACF,CAAC;IAED;;;OAGG;IACH,IAAI;QACH,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;IACxC,CAAC;IAoBD;;;OAGG;IACH,IAAI,UAAU;QACb,OAAO,yBAAyB,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAC,iBAAiB,CAAE,CAAC;IAC3D,CAAC;IAED,IAAI,KAAK;QACR,OAAO,CAAC,IAAI,CAAC,cAAc,KAAK,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;IAC3G,CAAC;IAED,IAAI,UAAU;QACb,OAAO,IAAI,CAAC,cAAc,KAAK,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9E,CAAC;IAED,IAAI,UAAU;QACb,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAC,oBAAoB,CAAE,CAAC;IAC9D,CAAC;IAED,IAAI,MAAM;QACT,OAAO;YACN,IAAI,EAAE,EAAE;YACR,OAAO,EAAE,EAAE;SACX,CAAC;IACH,CAAC;IAED,IAAI,OAAO;QACV,OAAO;YACN,IAAI,EAAE;gBACL,gBAAgB,EAAE,IAAI;gBACtB,+BAA+B,EAAE,0BAA0B,EAAE;aAC7D;YACD,OAAO,EAAE;gBACR,mBAAmB,EAAE,IAAI;aACzB;SACD,CAAC;IACH,CAAC;CACD,CAAA;AAhfA;IADC,QAAQ,EAAE;2CACW;AAUtB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;kDACE;AAS9B;IADC,QAAQ,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;6CACd;AASxB;IADC,QAAQ,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;gDACJ;AAS3B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,YAAY,EAAE,mBAAmB,CAAC,MAAM,EAAE,CAAC;6CACxC;AAO1C;IADC,QAAQ,EAAE;yCACS;AAMpB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;mDACG;AAU/B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;8CACrB;AAO1B;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;sCACjB;AAgD5B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;iCAa3B;AAtIa,KAAK;IA9CnB,aAAa,CAAC;QACd,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,CAAC,WAAW,EAAE,qBAAqB,CAAC;QAC5C,QAAQ,EAAE,aAAa;KACvB,CAAC;IACF;;;;OAIG;;IACF,KAAK,CAAC,aAAa,CAAC;IAErB;;;OAGG;;IACF,KAAK,CAAC,YAAY,CAAC;IAEpB;;;;;OAKG;;IACF,KAAK,CAA8B,cAAc,EAAE;QACnD,MAAM,EAAE;YACP;;eAEG;YACH,UAAU,EAAE;gBACX,IAAI,EAAE,OAAO;aACb;SACD;KACD,CAAC;IAEF;;;OAGG;;IACF,KAAK,CAAC,aAAa,CAAC;IAErB;;;OAGG;;IACF,KAAK,CAAC,QAAQ,CAAC;GACD,KAAK,CAufnB;AAED,eAAe,KAAK,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport type { ClassMap } from \"@ui5/webcomponents-base/dist/types.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport { isChrome, isSafari, isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { getFirstFocusableElement, getLastFocusableElement } from \"@ui5/webcomponents-base/dist/util/FocusableElements.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport getEffectiveScrollbarStyle from \"@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js\";\nimport { hasStyle, createStyle } from \"@ui5/webcomponents-base/dist/ManagedStyles.js\";\nimport { isEnter, isTabPrevious } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getFocusedElement, isFocusedElementWithinNode } from \"@ui5/webcomponents-base/dist/util/PopupUtils.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport MediaRange from \"@ui5/webcomponents-base/dist/MediaRange.js\";\nimport PopupTemplate from \"./generated/templates/PopupTemplate.lit.js\";\nimport PopupAccessibleRole from \"./types/PopupAccessibleRole.js\";\nimport { addOpenedPopup, removeOpenedPopup } from \"./popup-utils/OpenedPopupsRegistry.js\";\n\n// Styles\nimport popupStlyes from \"./generated/themes/Popup.css.js\";\nimport popupBlockLayerStyles from \"./generated/themes/PopupBlockLayer.css.js\";\nimport globalStyles from \"./generated/themes/PopupGlobal.css.js\";\n\nconst createBlockingStyle = (): void => {\n\tif (!hasStyle(\"data-ui5-popup-scroll-blocker\")) {\n\t\tcreateStyle(globalStyles, \"data-ui5-popup-scroll-blocker\");\n\t}\n};\n\ncreateBlockingStyle();\n\nconst pageScrollingBlockers = new Set<Popup>();\n\ntype PopupScrollEventDetail = {\n\tscrollTop: number;\n\ttargetRef: HTMLElement;\n}\n\ntype PopupBeforeCloseEventDetail = {\n\tescPressed: boolean;\n}\n\n/**\n * @class\n * ### Overview\n * Base class for all popup Web Components.\n *\n * If you need to create your own popup-like custom UI5 Web Components, it is highly recommended that you extend\n * at least Popup in order to have consistency with other popups in terms of modal behavior and z-index management.\n *\n * 1. The Popup class handles modality:\n * - The \"isModal\" getter can be overridden by derivatives to provide their own conditions when they are modal or not\n * - Derivatives may call the \"blockPageScrolling\" and \"unblockPageScrolling\" static methods to temporarily remove scrollbars on the html element\n * - Derivatives may call the \"open\" and \"close\" methods which handle focus, manage the popup registry and for modal popups, manage the blocking layer\n *\n * 2. Provides blocking layer (relevant for modal popups only):\n * - It is in the static area\n * - Controlled by the \"open\" and \"close\" methods\n *\n * 3. The Popup class \"traps\" focus:\n * - Derivatives may call the \"applyInitialFocus\" method (usually when opening, to transfer focus inside the popup)\n *\n * 4. The Popup class automatically assigns \"z-index\"\n * - Each time a popup is opened, it gets a higher than the previously opened popup z-index\n *\n * 5. The template of this component exposes two inline partials you can override in derivatives:\n * - beforeContent (upper part of the box, useful for header/title/close button)\n * - afterContent (lower part, useful for footer/action buttons)\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n\trenderer: litRender,\n\tstyles: [popupStlyes, popupBlockLayerStyles],\n\ttemplate: PopupTemplate,\n})\n/**\n * Fired before the component is opened. This event can be cancelled, which will prevent the popup from opening. **This event does not bubble.**\n * @public\n * @allowPreventDefault\n */\n@event(\"before-open\")\n\n/**\n * Fired after the component is opened. **This event does not bubble.**\n * @public\n */\n@event(\"after-open\")\n\n/**\n * Fired before the component is closed. This event can be cancelled, which will prevent the popup from closing. **This event does not bubble.**\n * @public\n * @allowPreventDefault\n * @param {boolean} escPressed Indicates that `ESC` key has triggered the event.\n */\n@event<PopupBeforeCloseEventDetail>(\"before-close\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tescPressed: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n})\n\n/**\n * Fired after the component is closed. **This event does not bubble.**\n * @public\n */\n@event(\"after-close\")\n\n/**\n * Fired whenever the popup content area is scrolled\n * @private\n */\n@event(\"scroll\")\nabstract class Popup extends UI5Element {\n\t/**\n\t * Defines the ID of the HTML Element, which will get the initial focus.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tinitialFocus!: string;\n\n\t/**\n\t * Defines if the focus should be returned to the previously focused element,\n\t * when the popup closes.\n\t * @default false\n\t * @public\n\t * @since 1.0.0-rc.8\n\t*/\n\t@property({ type: Boolean })\n\tpreventFocusRestore!: boolean;\n\n\t/**\n\t * Defines the accessible name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property({ defaultValue: undefined })\n\taccessibleName?: string;\n\n\t/**\n\t * Defines the IDs of the elements that label the component.\n\t * @default \"\"\n\t * @public\n\t * @since 1.1.0\n\t */\n\t@property({ defaultValue: \"\" })\n\taccessibleNameRef!: string;\n\n\t/**\n\t * Allows setting a custom role.\n\t * @default \"Dialog\"\n\t * @public\n\t * @since 1.10.0\n\t */\n\t@property({ type: PopupAccessibleRole, defaultValue: PopupAccessibleRole.Dialog })\n\taccessibleRole!: `${PopupAccessibleRole}`;\n\n\t/**\n\t * Defines the current media query size.\n\t * @private\n\t */\n\t@property()\n\tmediaRange!: string;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_disableInitialFocus!: boolean;\n\n\t/**\n\t * Indicates if the element is the top modal popup\n\t *\n\t * This property is calculated automatically\n\t * @private\n\t * @default false\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\tisTopModalPopup!: boolean;\n\n\t/**\n\t * Defines the content of the Popup.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, \"default\": true })\n\tcontent!: Array<HTMLElement>\n\n\t_resizeHandler: ResizeObserverCallback;\n\t_shouldFocusRoot?: boolean;\n\t_focusedElementBeforeOpen?: HTMLElement | null;\n\t_isOpened!: boolean;\n\t_opened!: boolean;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._resizeHandler = this._resize.bind(this);\n\n\t\tthis._getRealDomRef = () => {\n\t\t\treturn this.shadowRoot!.querySelector<HTMLElement>(\"[root-element]\")!;\n\t\t};\n\t}\n\n\tonAfterRendering() {\n\t\trenderFinished().then(() => {\n\t\t\tthis._updateMediaRange();\n\t\t});\n\t}\n\n\tonEnterDOM() {\n\t\tthis.setAttribute(\"popover\", \"manual\");\n\t\tResizeHandler.register(this, this._resizeHandler);\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\t}\n\n\tonExitDOM() {\n\t\tif (this.isOpen()) {\n\t\t\tPopup.unblockPageScrolling(this);\n\t\t\tthis._removeOpenedPopup();\n\t\t}\n\n\t\tResizeHandler.deregister(this, this._resizeHandler);\n\t}\n\n\t/**\n\t * Indicates if the element is open\n\t * @public\n\t * @default false\n\t * @since 1.2.0\n\t */\n\t@property({ type: Boolean })\n\tset open(value: boolean) {\n\t\tif (this._opened === value) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._opened = value;\n\n\t\tif (value) {\n\t\t\tthis.openPopup();\n\t\t} else {\n\t\t\tthis.close();\n\t\t}\n\t}\n\n\tget open() : boolean {\n\t\treturn this._opened;\n\t}\n\n\tasync openPopup() {\n\t\tawait this._open(false);\n\t}\n\n\t_resize() {\n\t\tthis._updateMediaRange();\n\t}\n\n\t/**\n\t * Prevents the user from interacting with the content under the block layer\n\t */\n\t_preventBlockLayerFocus(e: KeyboardEvent | MouseEvent) {\n\t\te.preventDefault();\n\t}\n\n\t/**\n\t * Temporarily removes scrollbars from the html element\n\t * @protected\n\t */\n\tstatic blockPageScrolling(popup: Popup) {\n\t\tpageScrollingBlockers.add(popup);\n\n\t\tif (pageScrollingBlockers.size !== 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tdocument.documentElement.classList.add(\"ui5-popup-scroll-blocker\");\n\t}\n\n\t/**\n\t * Restores scrollbars on the html element, if needed\n\t * @protected\n\t */\n\tstatic unblockPageScrolling(popup: Popup) {\n\t\tpageScrollingBlockers.delete(popup);\n\n\t\tif (pageScrollingBlockers.size !== 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tdocument.documentElement.classList.remove(\"ui5-popup-scroll-blocker\");\n\t}\n\n\t_scroll(e: Event) {\n\t\tthis.fireEvent<PopupScrollEventDetail>(\"scroll\", {\n\t\t\tscrollTop: (e.target as HTMLElement).scrollTop,\n\t\t\ttargetRef: e.target as HTMLElement,\n\t\t});\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst isTabOutAttempt = e.target === this._root && isTabPrevious(e);\n\t\t// if the popup is closed, focus is already moved, so Enter keydown may result in click on the newly focused element\n\t\tconst isEnterOnClosedPopupChild = isEnter(e) && !this.isOpen();\n\n\t\tif (isTabOutAttempt || isEnterOnClosedPopupChild) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onfocusout(e: FocusEvent) {\n\t\t// relatedTarget is the element, which will get focus. If no such element exists, focus the root.\n\t\t// This happens after the mouse is released in order to not interrupt text selection.\n\t\tif (!e.relatedTarget) {\n\t\t\tthis._shouldFocusRoot = true;\n\t\t}\n\t}\n\n\t_onmousedown(e: MouseEvent) {\n\t\tif (!isSafari()) { // Remove when adopting native dialog\n\t\t\tthis._root.removeAttribute(\"tabindex\");\n\t\t}\n\n\t\tif (this.shadowRoot!.contains(e.target as HTMLElement)) {\n\t\t\tthis._shouldFocusRoot = true;\n\t\t} else {\n\t\t\tthis._shouldFocusRoot = false;\n\t\t}\n\t}\n\n\t_onmouseup() {\n\t\tif (!isSafari()) { // Remove when adopting native dialog\n\t\t\tthis._root.tabIndex = -1;\n\t\t}\n\n\t\tif (this._shouldFocusRoot) {\n\t\t\tif (isChrome()) {\n\t\t\t\tthis._root.focus();\n\t\t\t}\n\t\t\tthis._shouldFocusRoot = false;\n\t\t}\n\t}\n\n\t/**\n\t * Focus trapping\n\t * @private\n\t */\n\tasync forwardToFirst() {\n\t\tconst firstFocusable = await getFirstFocusableElement(this);\n\n\t\tif (firstFocusable) {\n\t\t\tfirstFocusable.focus();\n\t\t} else {\n\t\t\tthis._root.focus();\n\t\t}\n\t}\n\n\t/**\n\t * Focus trapping\n\t * @private\n\t */\n\tasync forwardToLast() {\n\t\tconst lastFocusable = await getLastFocusableElement(this);\n\n\t\tif (lastFocusable) {\n\t\t\tlastFocusable.focus();\n\t\t} else {\n\t\t\tthis._root.focus();\n\t\t}\n\t}\n\n\t/**\n\t * Use this method to focus the element denoted by \"initialFocus\", if provided, or the first focusable element otherwise.\n\t * @protected\n\t */\n\tasync applyInitialFocus(preventInitialFocus: boolean) {\n\t\tif (!this._disableInitialFocus && !preventInitialFocus) {\n\t\t\tawait this.applyFocus();\n\t\t}\n\t}\n\n\t/**\n\t * Focuses the element denoted by `initialFocus`, if provided,\n\t * or the first focusable element otherwise.\n\t * @public\n\t * @returns Promise that resolves when the focus is applied\n\t */\n\tasync applyFocus(): Promise<void> {\n\t\tawait this._waitForDomRef();\n\n\t\tif (this.getRootNode() === this) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet element;\n\n\t\tif (this.initialFocus) {\n\t\t\telement = (this.getRootNode() as Document).getElementById(this.initialFocus)\n\t\t\t|| document.getElementById(this.initialFocus);\n\t\t}\n\n\t\telement = element || await getFirstFocusableElement(this) || this._root; // in case of no focusable content focus the root\n\n\t\tif (element) {\n\t\t\tif (element === this._root) {\n\t\t\t\telement.tabIndex = -1;\n\t\t\t}\n\t\t\telement.focus();\n\t\t}\n\t}\n\n\t/**\n\t * Tells if the component is opened\n\t * @public\n\t */\n\tisOpen() : boolean {\n\t\treturn this.open;\n\t}\n\n\tisFocusWithin() {\n\t\treturn isFocusedElementWithinNode(this._root);\n\t}\n\n\t/**\n\t * Shows the block layer (for modal popups only) and sets the correct z-index for the purpose of popup stacking\n\t * @protected\n\t */\n\tasync _open(preventInitialFocus: boolean) {\n\t\tif (this._isOpened) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst prevented = !this.fireEvent(\"before-open\", {}, true, false);\n\n\t\tif (prevented || this._isOpened) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isOpened = true;\n\n\t\tif (this.isModal && !this.shouldHideBackdrop) {\n\t\t\tPopup.blockPageScrolling(this);\n\t\t}\n\n\t\tthis._focusedElementBeforeOpen = getFocusedElement();\n\n\t\tthis._show();\n\n\t\tif (this.getDomRef()) {\n\t\t\tthis._updateMediaRange();\n\t\t}\n\n\t\tthis._addOpenedPopup();\n\n\t\tthis.open = true;\n\n\t\t// initial focus, if focused element is statically created\n\t\tawait this.applyInitialFocus(preventInitialFocus);\n\n\t\tawait renderFinished();\n\n\t\t// initial focus, if focused element is dynamically created\n\t\tawait this.applyInitialFocus(preventInitialFocus);\n\n\t\tthis.fireEvent(\"after-open\", {}, false, false);\n\t}\n\n\t_updateMediaRange() {\n\t\tthis.mediaRange = MediaRange.getCurrentRange(MediaRange.RANGESETS.RANGE_4STEPS, this.getDomRef()!.offsetWidth);\n\t}\n\n\t/**\n\t * Adds the popup to the \"opened popups registry\"\n\t * @protected\n\t */\n\t_addOpenedPopup() {\n\t\taddOpenedPopup(this);\n\t}\n\n\t/**\n\t * Closes the popup.\n\t * @public\n\t */\n\tclose(escPressed = false, preventRegistryUpdate = false, preventFocusRestore = false): void {\n\t\tif (!this._isOpened) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst prevented = !this.fireEvent<PopupBeforeCloseEventDetail>(\"before-close\", { escPressed }, true, false);\n\t\tif (prevented) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isOpened = false;\n\n\t\tif (this.isModal) {\n\t\t\tPopup.unblockPageScrolling(this);\n\t\t}\n\n\t\tthis.hide();\n\t\tthis.open = false;\n\n\t\tif (!preventRegistryUpdate) {\n\t\t\tthis._removeOpenedPopup();\n\t\t}\n\n\t\tif (!this.preventFocusRestore && !preventFocusRestore) {\n\t\t\tthis.resetFocus();\n\t\t}\n\n\t\tthis.fireEvent(\"after-close\", {}, false, false);\n\t}\n\n\t/**\n\t * Removes the popup from the \"opened popups registry\"\n\t * @protected\n\t */\n\t_removeOpenedPopup() {\n\t\tremoveOpenedPopup(this);\n\t}\n\n\t/**\n\t * Returns the focus to the previously focused element\n\t * @protected\n\t */\n\tresetFocus() {\n\t\tif (!this._focusedElementBeforeOpen) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._focusedElementBeforeOpen.focus();\n\t\tthis._focusedElementBeforeOpen = null;\n\t}\n\n\t/**\n\t * Sets \"block\" display to the popup. The property can be overriden by derivatives of Popup.\n\t * @protected\n\t */\n\t_show() {\n\t\tif (this.isConnected) {\n\t\t\tthis.setAttribute(\"popover\", \"manual\");\n\t\t\tthis.showPopover();\n\t\t}\n\t}\n\n\t/**\n\t * Sets \"none\" display to the popup\n\t * @protected\n\t */\n\thide() {\n\t\tthis.isConnected && this.hidePopover();\n\t}\n\n\t/**\n\t * Implement this getter with relevant logic regarding the modality of the popup (e.g. based on a public property)\n\t * @protected\n\t */\n\tabstract get isModal(): boolean\n\n\t/**\n\t * Implement this getter with relevant logic in order to hide the block layer (f.e. based on a public property)\n\t * @protected\n\t */\n\tabstract get shouldHideBackdrop(): boolean\n\n\t/**\n\t * Return the ID of an element in the shadow DOM that is going to label this popup\n\t * @protected\n\t */\n\tabstract get _ariaLabelledBy(): string | undefined\n\n\t/**\n\t * Ensures ariaLabel is never null or empty string\n\t * @protected\n\t */\n\tget _ariaLabel() {\n\t\treturn getEffectiveAriaLabelText(this);\n\t}\n\n\tget _root(): HTMLElement {\n\t\treturn this.shadowRoot!.querySelector(\".ui5-popup-root\")!;\n\t}\n\n\tget _role(): string | undefined {\n\t\treturn (this.accessibleRole === PopupAccessibleRole.None) ? undefined : this.accessibleRole.toLowerCase();\n\t}\n\n\tget _ariaModal(): string | undefined {\n\t\treturn this.accessibleRole === PopupAccessibleRole.None ? undefined : \"true\";\n\t}\n\n\tget contentDOM(): HTMLElement {\n\t\treturn this.shadowRoot!.querySelector(\".ui5-popup-content\")!;\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\troot: {},\n\t\t\tcontent: {},\n\t\t};\n\t}\n\n\tget classes(): ClassMap {\n\t\treturn {\n\t\t\troot: {\n\t\t\t\t\"ui5-popup-root\": true,\n\t\t\t\t\"ui5-content-native-scrollbars\": getEffectiveScrollbarStyle(),\n\t\t\t},\n\t\t\tcontent: {\n\t\t\t\t\"ui5-popup-content\": true,\n\t\t\t},\n\t\t};\n\t}\n}\n\nexport default Popup;\n\nexport type {\n\tPopupScrollEventDetail,\n\tPopupBeforeCloseEventDetail,\n};\n"]}
1
+ {"version":3,"file":"Popup.js","sourceRoot":"","sources":["../src/Popup.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport type { ClassMap } from \"@ui5/webcomponents-base/dist/types.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport {\n\tisChrome,\n\tisDesktop,\n\tisPhone,\n} from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { getFirstFocusableElement, getLastFocusableElement } from \"@ui5/webcomponents-base/dist/util/FocusableElements.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport getEffectiveScrollbarStyle from \"@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js\";\nimport { hasStyle, createStyle } from \"@ui5/webcomponents-base/dist/ManagedStyles.js\";\nimport { isEnter, isTabPrevious } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getFocusedElement, isFocusedElementWithinNode } from \"@ui5/webcomponents-base/dist/util/PopupUtils.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport MediaRange from \"@ui5/webcomponents-base/dist/MediaRange.js\";\nimport PopupTemplate from \"./generated/templates/PopupTemplate.lit.js\";\nimport PopupAccessibleRole from \"./types/PopupAccessibleRole.js\";\nimport { addOpenedPopup, removeOpenedPopup } from \"./popup-utils/OpenedPopupsRegistry.js\";\n\n// Styles\nimport popupStlyes from \"./generated/themes/Popup.css.js\";\nimport popupBlockLayerStyles from \"./generated/themes/PopupBlockLayer.css.js\";\nimport globalStyles from \"./generated/themes/PopupGlobal.css.js\";\n\nconst createBlockingStyle = (): void => {\n\tif (!hasStyle(\"data-ui5-popup-scroll-blocker\")) {\n\t\tcreateStyle(globalStyles, \"data-ui5-popup-scroll-blocker\");\n\t}\n};\n\ncreateBlockingStyle();\n\nconst pageScrollingBlockers = new Set<Popup>();\n\ntype PopupScrollEventDetail = {\n\tscrollTop: number;\n\ttargetRef: HTMLElement;\n}\n\ntype PopupBeforeCloseEventDetail = {\n\tescPressed: boolean;\n}\n\n/**\n * @class\n * ### Overview\n * Base class for all popup Web Components.\n *\n * If you need to create your own popup-like custom UI5 Web Components, it is highly recommended that you extend\n * at least Popup in order to have consistency with other popups in terms of modal behavior and z-index management.\n *\n * 1. The Popup class handles modality:\n * - The \"isModal\" getter can be overridden by derivatives to provide their own conditions when they are modal or not\n * - Derivatives may call the \"blockPageScrolling\" and \"unblockPageScrolling\" static methods to temporarily remove scrollbars on the html element\n * - Derivatives may call the \"openPopup\" and \"closePopup\" methods which handle focus, manage the popup registry and for modal popups, manage the blocking layer\n *\n * 2. Provides blocking layer (relevant for modal popups only):\n * - It is in the static area\n * - Controlled by the \"open\" and \"close\" methods\n *\n * 3. The Popup class \"traps\" focus:\n * - Derivatives may call the \"applyInitialFocus\" method (usually when opening, to transfer focus inside the popup)\n *\n * 4. The Popup class automatically assigns \"z-index\"\n * - Each time a popup is opened, it gets a higher than the previously opened popup z-index\n *\n * 5. The template of this component exposes two inline partials you can override in derivatives:\n * - beforeContent (upper part of the box, useful for header/title/close button)\n * - afterContent (lower part, useful for footer/action buttons)\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n\trenderer: litRender,\n\tstyles: [popupStlyes, popupBlockLayerStyles],\n\ttemplate: PopupTemplate,\n})\n/**\n * Fired before the component is opened. This event can be cancelled, which will prevent the popup from opening. **This event does not bubble.**\n * @public\n * @allowPreventDefault\n */\n@event(\"before-open\")\n\n/**\n * Fired after the component is opened. **This event does not bubble.**\n * @public\n */\n@event(\"open\")\n\n/**\n * Fired before the component is closed. This event can be cancelled, which will prevent the popup from closing. **This event does not bubble.**\n * @public\n * @allowPreventDefault\n * @param {boolean} escPressed Indicates that `ESC` key has triggered the event.\n */\n@event<PopupBeforeCloseEventDetail>(\"before-close\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tescPressed: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n})\n\n/**\n * Fired after the component is closed. **This event does not bubble.**\n * @public\n */\n@event(\"close\")\n\n/**\n * Fired whenever the popup content area is scrolled\n * @private\n */\n@event(\"scroll\")\nabstract class Popup extends UI5Element {\n\t/**\n\t * Defines the ID of the HTML Element, which will get the initial focus.\n\t *\n\t * **Note:** If an element with `autofocus` attribute is added inside the component,\n\t * `initialFocus` won't take effect.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tinitialFocus!: string;\n\n\t/**\n\t * Defines if the focus should be returned to the previously focused element,\n\t * when the popup closes.\n\t * @default false\n\t * @public\n\t * @since 1.0.0-rc.8\n\t*/\n\t@property({ type: Boolean })\n\tpreventFocusRestore!: boolean;\n\n\t/**\n\t * Defines the accessible name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property({ defaultValue: undefined })\n\taccessibleName?: string;\n\n\t/**\n\t * Defines the IDs of the elements that label the component.\n\t * @default \"\"\n\t * @public\n\t * @since 1.1.0\n\t */\n\t@property({ defaultValue: \"\" })\n\taccessibleNameRef!: string;\n\n\t/**\n\t * Allows setting a custom role.\n\t * @default \"Dialog\"\n\t * @public\n\t * @since 1.10.0\n\t */\n\t@property({ type: PopupAccessibleRole, defaultValue: PopupAccessibleRole.Dialog })\n\taccessibleRole!: `${PopupAccessibleRole}`;\n\n\t/**\n\t * Defines the current media query size.\n\t * @private\n\t */\n\t@property()\n\tmediaRange!: string;\n\n\t/**\n\t * Indicates whether initial focus should be prevented.\n\t * @public\n\t * @default false\n\t * @since 2.0.0\n\t */\n\t@property({ type: Boolean })\n\tpreventInitialFocus!: boolean;\n\n\t/**\n\t * Indicates if the element is the top modal popup\n\t *\n\t * This property is calculated automatically\n\t * @private\n\t * @default false\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\tisTopModalPopup!: boolean;\n\n\t/**\n\t * Defines the content of the Popup.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, \"default\": true })\n\tcontent!: Array<HTMLElement>;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tonPhone!: boolean;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tonDesktop!: boolean;\n\n\t_resizeHandler: ResizeObserverCallback;\n\t_shouldFocusRoot?: boolean;\n\t_focusedElementBeforeOpen?: HTMLElement | null;\n\t_opened!: boolean;\n\t_open!: boolean;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._resizeHandler = this._resize.bind(this);\n\n\t\tthis._getRealDomRef = () => {\n\t\t\treturn this.shadowRoot!.querySelector<HTMLElement>(\"[root-element]\")!;\n\t\t};\n\t}\n\n\tonBeforeRendering() {\n\t\tthis.onPhone = isPhone();\n\t\tthis.onDesktop = isDesktop();\n\t}\n\n\tonAfterRendering() {\n\t\trenderFinished().then(() => {\n\t\t\tthis._updateMediaRange();\n\t\t});\n\t}\n\n\tonEnterDOM() {\n\t\tthis.setAttribute(\"popover\", \"manual\");\n\t\tResizeHandler.register(this, this._resizeHandler);\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\n\t\tthis.tabIndex = -1;\n\t}\n\n\tonExitDOM() {\n\t\tif (this._opened) {\n\t\t\tPopup.unblockPageScrolling(this);\n\t\t\tthis._removeOpenedPopup();\n\t\t}\n\n\t\tResizeHandler.deregister(this, this._resizeHandler);\n\t}\n\n\t/**\n\t * Indicates if the element is open\n\t * @public\n\t * @default false\n\t * @since 1.2.0\n\t */\n\t@property({ type: Boolean })\n\tset open(value: boolean) {\n\t\tif (this._open === value) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._open = value;\n\n\t\tif (value) {\n\t\t\tthis.openPopup();\n\t\t} else {\n\t\t\tthis.closePopup();\n\t\t}\n\t}\n\n\tget open() : boolean {\n\t\treturn this._open;\n\t}\n\n\tasync openPopup() {\n\t\tif (this._opened) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst prevented = !this.fireEvent(\"before-open\", {}, true, false);\n\n\t\tif (prevented || this._opened) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._opened = true;\n\n\t\tif (this.isModal) {\n\t\t\tPopup.blockPageScrolling(this);\n\t\t}\n\n\t\tthis._focusedElementBeforeOpen = getFocusedElement();\n\n\t\tthis._show();\n\n\t\tif (this.getDomRef()) {\n\t\t\tthis._updateMediaRange();\n\t\t}\n\n\t\tthis._addOpenedPopup();\n\n\t\tthis.open = true;\n\n\t\t// initial focus, if focused element is statically created\n\t\tawait this.applyInitialFocus();\n\n\t\tawait renderFinished();\n\n\t\t// initial focus, if focused element is dynamically created\n\t\tawait this.applyInitialFocus();\n\n\t\tthis.fireEvent(\"open\", {}, false, false);\n\t}\n\n\t_resize() {\n\t\tthis._updateMediaRange();\n\t}\n\n\t/**\n\t * Prevents the user from interacting with the content under the block layer\n\t */\n\t_preventBlockLayerFocus(e: KeyboardEvent | MouseEvent) {\n\t\te.preventDefault();\n\t}\n\n\t/**\n\t * Temporarily removes scrollbars from the html element\n\t * @protected\n\t */\n\tstatic blockPageScrolling(popup: Popup) {\n\t\tpageScrollingBlockers.add(popup);\n\n\t\tif (pageScrollingBlockers.size !== 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tdocument.documentElement.classList.add(\"ui5-popup-scroll-blocker\");\n\t}\n\n\t/**\n\t * Restores scrollbars on the html element, if needed\n\t * @protected\n\t */\n\tstatic unblockPageScrolling(popup: Popup) {\n\t\tpageScrollingBlockers.delete(popup);\n\n\t\tif (pageScrollingBlockers.size !== 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tdocument.documentElement.classList.remove(\"ui5-popup-scroll-blocker\");\n\t}\n\n\t_scroll(e: Event) {\n\t\tthis.fireEvent<PopupScrollEventDetail>(\"scroll\", {\n\t\t\tscrollTop: (e.target as HTMLElement).scrollTop,\n\t\t\ttargetRef: e.target as HTMLElement,\n\t\t});\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst isTabOutAttempt = e.target === this._root && isTabPrevious(e);\n\t\t// if the popup is closed, focus is already moved, so Enter keydown may result in click on the newly focused element\n\t\tconst isEnterOnClosedPopupChild = isEnter(e) && !this.open;\n\n\t\tif (isTabOutAttempt || isEnterOnClosedPopupChild) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onfocusout(e: FocusEvent) {\n\t\t// relatedTarget is the element, which will get focus. If no such element exists, focus the root.\n\t\t// This happens after the mouse is released in order to not interrupt text selection.\n\t\tif (!e.relatedTarget) {\n\t\t\tthis._shouldFocusRoot = true;\n\t\t}\n\t}\n\n\t_onmousedown(e: MouseEvent) {\n\t\tif (this.shadowRoot!.contains(e.target as HTMLElement)) {\n\t\t\tthis._shouldFocusRoot = true;\n\t\t} else {\n\t\t\tthis._shouldFocusRoot = false;\n\t\t}\n\t}\n\n\t_onmouseup() {\n\t\tif (this._shouldFocusRoot) {\n\t\t\tif (isChrome()) {\n\t\t\t\tthis._root.focus();\n\t\t\t}\n\t\t\tthis._shouldFocusRoot = false;\n\t\t}\n\t}\n\n\t/**\n\t * Focus trapping\n\t * @private\n\t */\n\tasync forwardToFirst() {\n\t\tconst firstFocusable = await getFirstFocusableElement(this);\n\n\t\tif (firstFocusable) {\n\t\t\tfirstFocusable.focus();\n\t\t} else {\n\t\t\tthis._root.focus();\n\t\t}\n\t}\n\n\t/**\n\t * Focus trapping\n\t * @private\n\t */\n\tasync forwardToLast() {\n\t\tconst lastFocusable = await getLastFocusableElement(this);\n\n\t\tif (lastFocusable) {\n\t\t\tlastFocusable.focus();\n\t\t} else {\n\t\t\tthis._root.focus();\n\t\t}\n\t}\n\n\t/**\n\t * Use this method to focus the element denoted by \"initialFocus\", if provided,\n\t * or the first focusable element otherwise.\n\t * @protected\n\t */\n\tasync applyInitialFocus() {\n\t\tif (!this.preventInitialFocus) {\n\t\t\tawait this.applyFocus();\n\t\t}\n\t}\n\n\t/**\n\t * Focuses the element denoted by `initialFocus`, if provided,\n\t * or the first focusable element otherwise.\n\t * @public\n\t * @returns Promise that resolves when the focus is applied\n\t */\n\tasync applyFocus(): Promise<void> {\n\t\t// do nothing if the standard HTML autofocus is used\n\t\tif (this.querySelector(\"[autofocus]\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tawait this._waitForDomRef();\n\n\t\tif (this.getRootNode() === this) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet element;\n\n\t\tif (this.initialFocus) {\n\t\t\telement = (this.getRootNode() as Document).getElementById(this.initialFocus)\n\t\t\t|| document.getElementById(this.initialFocus);\n\t\t}\n\n\t\telement = element || await getFirstFocusableElement(this) || this._root; // in case of no focusable content focus the root\n\n\t\tif (element) {\n\t\t\telement.focus();\n\t\t}\n\t}\n\n\tisFocusWithin() {\n\t\treturn isFocusedElementWithinNode(this._root);\n\t}\n\n\t_updateMediaRange() {\n\t\tthis.mediaRange = MediaRange.getCurrentRange(MediaRange.RANGESETS.RANGE_4STEPS, this.getDomRef()!.offsetWidth);\n\t}\n\n\t/**\n\t * Adds the popup to the \"opened popups registry\"\n\t * @protected\n\t */\n\t_addOpenedPopup() {\n\t\taddOpenedPopup(this);\n\t}\n\n\t/**\n\t * Closes the popup.\n\t */\n\tclosePopup(escPressed = false, preventRegistryUpdate = false, preventFocusRestore = false): void {\n\t\tif (!this._opened) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst prevented = !this.fireEvent<PopupBeforeCloseEventDetail>(\"before-close\", { escPressed }, true, false);\n\t\tif (prevented) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._opened = false;\n\n\t\tif (this.isModal) {\n\t\t\tPopup.unblockPageScrolling(this);\n\t\t}\n\n\t\tthis.hide();\n\t\tthis.open = false;\n\n\t\tif (!preventRegistryUpdate) {\n\t\t\tthis._removeOpenedPopup();\n\t\t}\n\n\t\tif (!this.preventFocusRestore && !preventFocusRestore) {\n\t\t\tthis.resetFocus();\n\t\t}\n\n\t\tthis.fireEvent(\"close\", {}, false, false);\n\t}\n\n\t/**\n\t * Removes the popup from the \"opened popups registry\"\n\t * @protected\n\t */\n\t_removeOpenedPopup() {\n\t\tremoveOpenedPopup(this);\n\t}\n\n\t/**\n\t * Returns the focus to the previously focused element\n\t * @protected\n\t */\n\tresetFocus() {\n\t\tif (!this._focusedElementBeforeOpen) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._focusedElementBeforeOpen.focus();\n\t\tthis._focusedElementBeforeOpen = null;\n\t}\n\n\t/**\n\t * Sets \"block\" display to the popup. The property can be overriden by derivatives of Popup.\n\t * @protected\n\t */\n\t_show() {\n\t\tif (this.isConnected) {\n\t\t\tthis.setAttribute(\"popover\", \"manual\");\n\t\t\tthis.showPopover();\n\t\t}\n\t}\n\n\t/**\n\t * Sets \"none\" display to the popup\n\t * @protected\n\t */\n\thide() {\n\t\tthis.isConnected && this.hidePopover();\n\t}\n\n\t/**\n\t * Implement this getter with relevant logic regarding the modality of the popup (e.g. based on a public property)\n\t * @protected\n\t */\n\tabstract get isModal(): boolean\n\n\t/**\n\t * Return the ID of an element in the shadow DOM that is going to label this popup\n\t * @protected\n\t */\n\tabstract get _ariaLabelledBy(): string | undefined\n\n\t/**\n\t * Ensures ariaLabel is never null or empty string\n\t * @protected\n\t */\n\tget _ariaLabel() {\n\t\treturn getEffectiveAriaLabelText(this);\n\t}\n\n\tget _root(): HTMLElement {\n\t\treturn this.shadowRoot!.querySelector(\".ui5-popup-root\")!;\n\t}\n\n\tget _role(): string | undefined {\n\t\treturn (this.accessibleRole === PopupAccessibleRole.None) ? undefined : this.accessibleRole.toLowerCase();\n\t}\n\n\tget _ariaModal(): string | undefined {\n\t\treturn this.accessibleRole === PopupAccessibleRole.None ? undefined : \"true\";\n\t}\n\n\tget contentDOM(): HTMLElement {\n\t\treturn this.shadowRoot!.querySelector(\".ui5-popup-content\")!;\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\troot: {},\n\t\t\tcontent: {},\n\t\t};\n\t}\n\n\tget classes(): ClassMap {\n\t\treturn {\n\t\t\troot: {\n\t\t\t\t\"ui5-popup-root\": true,\n\t\t\t\t\"ui5-content-native-scrollbars\": getEffectiveScrollbarStyle(),\n\t\t\t},\n\t\t\tcontent: {\n\t\t\t\t\"ui5-popup-content\": true,\n\t\t\t},\n\t\t};\n\t}\n}\n\nexport default Popup;\n\nexport type {\n\tPopupScrollEventDetail,\n\tPopupBeforeCloseEventDetail,\n};\n"]}
@@ -1,8 +1,8 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
2
  import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
3
3
  import ValueState from "@ui5/webcomponents-base/dist/types/ValueState.js";
4
+ import type { IFormInputElement } from "@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js";
4
5
  import WrappingType from "./types/WrappingType.js";
5
- import type { IFormElement } from "./features/InputElementsFormSupport.js";
6
6
  /**
7
7
  * @class
8
8
  *
@@ -34,7 +34,7 @@ import type { IFormElement } from "./features/InputElementsFormSupport.js";
34
34
  * @csspart outer-ring - Used to style the outer ring of the `ui5-radio-button`.
35
35
  * @csspart inner-ring - Used to style the inner ring of the `ui5-radio-button`.
36
36
  */
37
- declare class RadioButton extends UI5Element implements IFormElement {
37
+ declare class RadioButton extends UI5Element implements IFormInputElement {
38
38
  /**
39
39
  * Defines whether the component is disabled.
40
40
  *
@@ -85,21 +85,15 @@ declare class RadioButton extends UI5Element implements IFormElement {
85
85
  */
86
86
  valueState: `${ValueState}`;
87
87
  /**
88
- * Defines the name of the component.
89
- * Radio buttons with the same `name` will form a radio button group.
88
+ * Determines the name by which the component will be identified upon submission in an HTML form.
90
89
  *
91
- * **Note:**
92
- * The selection can be changed with `ARROW_UP/DOWN` and `ARROW_LEFT/RIGHT` keys between radio buttons in same group.
90
+ * Radio buttons with the same `name` will form a radio button group.
93
91
  *
94
- * **Note:**
95
- * Only one radio button can be selected per group.
92
+ * **Note:** By this name the component will be identified upon submission in an HTML form.
96
93
  *
97
- * **Important:** For the `name` property to have effect when submitting forms, you must add the following import to your project:
98
- * `import "@ui5/webcomponents/dist/features/InputElementsFormSupport.js";`
94
+ * **Note:** The selection can be changed with `ARROW_UP/DOWN` and `ARROW_LEFT/RIGHT` keys between radio buttons in same group.
99
95
  *
100
- * **Note:** When set, a native `input` HTML element
101
- * will be created inside the component so that it can be submitted as
102
- * part of an HTML form.
96
+ * **Note:** Only one radio button can be selected per group.
103
97
  * @default ""
104
98
  * @public
105
99
  */
@@ -108,9 +102,6 @@ declare class RadioButton extends UI5Element implements IFormElement {
108
102
  * Defines the form value of the component.
109
103
  * When a form with a radio button group is submitted, the group's value
110
104
  * will be the value of the currently selected radio button.
111
- *
112
- * **Important:** For the `value` property to have effect, you must add the following import to your project:
113
- * `import "@ui5/webcomponents/dist/features/InputElementsFormSupport.js";`
114
105
  * @default ""
115
106
  * @public
116
107
  */
@@ -119,7 +110,7 @@ declare class RadioButton extends UI5Element implements IFormElement {
119
110
  * Defines whether the component text wraps when there is not enough space.
120
111
  *
121
112
  * **Note:** for option "Normal" the text will wrap and the words will not be broken based on hyphenation.
122
- * @default "None"
113
+ * @default "Normal"
123
114
  * @public
124
115
  */
125
116
  wrappingType: `${WrappingType}`;
@@ -145,27 +136,26 @@ declare class RadioButton extends UI5Element implements IFormElement {
145
136
  */
146
137
  active: boolean;
147
138
  /**
148
- * The slot is used to render native `input` HTML element within Light DOM to enable form submit,
149
- * when `name` property is set.
139
+ * Defines if the component is selected in specific group
140
+ * @default false
150
141
  * @private
151
142
  */
152
- formSupport: Array<HTMLElement>;
143
+ _groupChecked: boolean;
144
+ _groupRequired: boolean;
153
145
  _deactivate: () => void;
154
146
  _name: string;
155
147
  _checked: boolean;
156
- _internals: ElementInternals;
157
- static get formAssociated(): boolean;
148
+ get formValidityMessage(): string;
149
+ get formValidity(): ValidityStateFlags;
150
+ formElementAnchor(): Promise<HTMLElement | undefined>;
151
+ get formFormattedValue(): string | null;
158
152
  static i18nBundle: I18nBundle;
159
153
  constructor();
160
154
  static onDefine(): Promise<void>;
161
- onBeforeRendering(): void;
155
+ onAfterRendering(): void;
162
156
  onEnterDOM(): void;
163
157
  onExitDOM(): void;
164
158
  syncGroup(forceRemove?: boolean): void;
165
- _enableFormSupport(): void;
166
- _setFormValue(): void;
167
- _resetFormValidity(): void;
168
- _invalidateForm(): void;
169
159
  _onclick(): this;
170
160
  _handleDown(e: KeyboardEvent): void;
171
161
  _handleUp(e: KeyboardEvent): void;
@@ -186,7 +176,6 @@ declare class RadioButton extends UI5Element implements IFormElement {
186
176
  get effectiveAriaDescribedBy(): string | undefined;
187
177
  get hasValueState(): boolean;
188
178
  get valueStateText(): string;
189
- get radioButtonGroupRequiredText(): string;
190
179
  get effectiveTabIndex(): string;
191
180
  }
192
181
  export default RadioButton;
@@ -6,11 +6,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  var RadioButton_1;
8
8
  import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
9
- import { getFeature } from "@ui5/webcomponents-base/dist/FeaturesRegistry.js";
10
9
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
11
10
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
12
11
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
13
- import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
14
12
  import event from "@ui5/webcomponents-base/dist/decorators/event.js";
15
13
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
16
14
  import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
@@ -23,7 +21,7 @@ import WrappingType from "./types/WrappingType.js";
23
21
  // Template
24
22
  import RadioButtonTemplate from "./generated/templates/RadioButtonTemplate.lit.js";
25
23
  // i18n
26
- import { VALUE_STATE_ERROR, VALUE_STATE_WARNING, VALUE_STATE_SUCCESS, VALUE_STATE_INFORMATION, RADIO_BUTTON_GROUP_REQUIRED, } from "./generated/i18n/i18n-defaults.js";
24
+ import { VALUE_STATE_ERROR, VALUE_STATE_WARNING, VALUE_STATE_SUCCESS, VALUE_STATE_INFORMATION, FORM_SELECTABLE_REQUIRED2, } from "./generated/i18n/i18n-defaults.js";
27
25
  // Styles
28
26
  import radioButtonCss from "./generated/themes/RadioButton.css.js";
29
27
  let isGlobalHandlerAttached = false;
@@ -60,12 +58,20 @@ let activeRadio;
60
58
  * @csspart inner-ring - Used to style the inner ring of the `ui5-radio-button`.
61
59
  */
62
60
  let RadioButton = RadioButton_1 = class RadioButton extends UI5Element {
63
- static get formAssociated() {
64
- return true;
61
+ get formValidityMessage() {
62
+ return RadioButton_1.i18nBundle.getText(FORM_SELECTABLE_REQUIRED2);
63
+ }
64
+ get formValidity() {
65
+ return { valueMissing: this._groupRequired && !this._groupChecked };
66
+ }
67
+ async formElementAnchor() {
68
+ return this.getFocusDomRefAsync();
69
+ }
70
+ get formFormattedValue() {
71
+ return this.checked ? (this.value || "on") : null;
65
72
  }
66
73
  constructor() {
67
74
  super();
68
- this._internals = this.attachInternals();
69
75
  this._deactivate = () => {
70
76
  if (activeRadio) {
71
77
  activeRadio.active = false;
@@ -79,9 +85,8 @@ let RadioButton = RadioButton_1 = class RadioButton extends UI5Element {
79
85
  static async onDefine() {
80
86
  RadioButton_1.i18nBundle = await getI18nBundle("@ui5/webcomponents");
81
87
  }
82
- onBeforeRendering() {
88
+ onAfterRendering() {
83
89
  this.syncGroup();
84
- this._enableFormSupport();
85
90
  }
86
91
  onEnterDOM() {
87
92
  if (isDesktop()) {
@@ -118,24 +123,6 @@ let RadioButton = RadioButton_1 = class RadioButton extends UI5Element {
118
123
  this._name = this.name;
119
124
  this._checked = this.checked;
120
125
  }
121
- _enableFormSupport() {
122
- const formSupport = getFeature("FormSupport");
123
- if (formSupport) {
124
- this._setFormValue();
125
- }
126
- else if (this.value) {
127
- console.warn(`In order for the "value" property to have effect, you should also: import "@ui5/webcomponents/dist/features/InputElementsFormSupport.js";`); // eslint-disable-line
128
- }
129
- }
130
- _setFormValue() {
131
- this._internals.setFormValue(this.checked ? this.value : null);
132
- }
133
- _resetFormValidity() {
134
- this._internals.setValidity({});
135
- }
136
- _invalidateForm() {
137
- this._internals.setValidity({ valueMissing: true }, this.radioButtonGroupRequiredText, this.shadowRoot.firstElementChild);
138
- }
139
126
  _onclick() {
140
127
  return this.toggle();
141
128
  }
@@ -236,9 +223,6 @@ let RadioButton = RadioButton_1 = class RadioButton extends UI5Element {
236
223
  return "";
237
224
  }
238
225
  }
239
- get radioButtonGroupRequiredText() {
240
- return RadioButton_1.i18nBundle.getText(RADIO_BUTTON_GROUP_REQUIRED);
241
- }
242
226
  get effectiveTabIndex() {
243
227
  const tabindex = this.getAttribute("tabindex");
244
228
  if (this.disabled) {
@@ -275,7 +259,7 @@ __decorate([
275
259
  property()
276
260
  ], RadioButton.prototype, "value", void 0);
277
261
  __decorate([
278
- property({ type: WrappingType, defaultValue: WrappingType.None })
262
+ property({ type: WrappingType, defaultValue: WrappingType.Normal })
279
263
  ], RadioButton.prototype, "wrappingType", void 0);
280
264
  __decorate([
281
265
  property()
@@ -290,12 +274,16 @@ __decorate([
290
274
  property({ type: Boolean })
291
275
  ], RadioButton.prototype, "active", void 0);
292
276
  __decorate([
293
- slot()
294
- ], RadioButton.prototype, "formSupport", void 0);
277
+ property({ type: Boolean, noAttribute: true })
278
+ ], RadioButton.prototype, "_groupChecked", void 0);
279
+ __decorate([
280
+ property({ type: Boolean, noAttribute: true })
281
+ ], RadioButton.prototype, "_groupRequired", void 0);
295
282
  RadioButton = RadioButton_1 = __decorate([
296
283
  customElement({
297
284
  tag: "ui5-radio-button",
298
285
  languageAware: true,
286
+ formAssociated: true,
299
287
  renderer: litRender,
300
288
  template: RadioButtonTemplate,
301
289
  styles: radioButtonCss,
@@ -1 +1 @@
1
- {"version":3,"file":"RadioButton.js","sourceRoot":"","sources":["../src/RadioButton.ts"],"names":[],"mappings":"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","sourcesContent":["import { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { getFeature } from \"@ui5/webcomponents-base/dist/FeaturesRegistry.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport {\n\tisSpace,\n\tisEnter,\n\tisDown,\n\tisLeft,\n\tisUp,\n\tisRight,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport Label from \"./Label.js\";\nimport RadioButtonGroup from \"./RadioButtonGroup.js\";\nimport WrappingType from \"./types/WrappingType.js\";\nimport type { IFormElement } from \"./features/InputElementsFormSupport.js\";\nimport type FormSupport from \"./features/InputElementsFormSupport.js\";\n\n// Template\nimport RadioButtonTemplate from \"./generated/templates/RadioButtonTemplate.lit.js\";\n\n// i18n\nimport {\n\tVALUE_STATE_ERROR,\n\tVALUE_STATE_WARNING,\n\tVALUE_STATE_SUCCESS,\n\tVALUE_STATE_INFORMATION,\n\tRADIO_BUTTON_GROUP_REQUIRED,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport radioButtonCss from \"./generated/themes/RadioButton.css.js\";\n\nlet isGlobalHandlerAttached = false;\nlet activeRadio: RadioButton;\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-radio-button` component enables users to select a single option from a set of options.\n * When a `ui5-radio-button` is selected by the user, the\n * `change` event is fired.\n * When a `ui5-radio-button` that is within a group is selected, the one\n * that was previously selected gets automatically deselected. You can group radio buttons by using the `name` property.\n *\n * **Note:** If `ui5-radio-button` is not part of a group, it can be selected once, but can not be deselected back.\n *\n * ### Keyboard Handling\n *\n * Once the `ui5-radio-button` is on focus, it might be selected by pressing the Space and Enter keys.\n *\n * The Arrow Down/Arrow Up and Arrow Left/Arrow Right keys can be used to change selection between next/previous radio buttons in one group,\n * while TAB and SHIFT + TAB can be used to enter or leave the radio button group.\n *\n * **Note:** On entering radio button group, the focus goes to the currently selected radio button.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/RadioButton\";`\n * @constructor\n * @extends UI5Element\n * @public\n * @csspart outer-ring - Used to style the outer ring of the `ui5-radio-button`.\n * @csspart inner-ring - Used to style the inner ring of the `ui5-radio-button`.\n */\n@customElement({\n\ttag: \"ui5-radio-button\",\n\tlanguageAware: true,\n\trenderer: litRender,\n\ttemplate: RadioButtonTemplate,\n\tstyles: radioButtonCss,\n\tdependencies: [Label],\n})\n/**\n * Fired when the component checked state changes.\n * @public\n * @since 1.0.0-rc.15\n */\n@event(\"change\")\n\nclass RadioButton extends UI5Element implements IFormElement {\n\t/**\n\t * Defines whether the component is disabled.\n\t *\n\t * **Note:** A disabled component is completely noninteractive.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled!: boolean;\n\n\t/**\n\t * Defines whether the component is read-only.\n\t *\n\t * **Note:** A read-only component is not editable,\n\t * but still provides visual feedback upon user interaction.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\treadonly!: boolean;\n\n\t/**\n\t * Defines whether the component is required.\n\t * @default false\n\t * @public\n\t * @since 1.9.0\n\t */\n\t@property({ type: Boolean })\n\trequired!: boolean;\n\n\t/**\n\t * Defines whether the component is checked or not.\n\t *\n\t * **Note:** The property value can be changed with user interaction,\n\t * either by clicking/tapping on the component,\n\t * or by using the Space or Enter key.\n\t * @default false\n\t * @formEvents change\n\t * @formProperty\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property({ type: Boolean })\n\tchecked!: boolean;\n\n\t/**\n\t * Defines the text of the component.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\ttext!: string;\n\n\t/**\n\t * Defines the value state of the component.\n\t * @default \"None\"\n\t * @public\n\t */\n\t@property({ type: ValueState, defaultValue: ValueState.None })\n\tvalueState!: `${ValueState}`;\n\n\t/**\n\t * Defines the name of the component.\n\t * Radio buttons with the same `name` will form a radio button group.\n\t *\n\t * **Note:**\n\t * The selection can be changed with `ARROW_UP/DOWN` and `ARROW_LEFT/RIGHT` keys between radio buttons in same group.\n\t *\n\t * **Note:**\n\t * Only one radio button can be selected per group.\n\t *\n\t * **Important:** For the `name` property to have effect when submitting forms, you must add the following import to your project:\n\t * `import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";`\n\t *\n\t * **Note:** When set, a native `input` HTML element\n\t * will be created inside the component so that it can be submitted as\n\t * part of an HTML form.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tname!: string;\n\n\t/**\n\t * Defines the form value of the component.\n\t * When a form with a radio button group is submitted, the group's value\n\t * will be the value of the currently selected radio button.\n\t *\n\t * **Important:** For the `value` property to have effect, you must add the following import to your project:\n\t * `import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";`\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tvalue!: string;\n\n\t/**\n\t * Defines whether the component text wraps when there is not enough space.\n\t *\n\t * **Note:** for option \"Normal\" the text will wrap and the words will not be broken based on hyphenation.\n\t * @default \"None\"\n\t * @public\n\t */\n\t@property({ type: WrappingType, defaultValue: WrappingType.None })\n\twrappingType!: `${WrappingType}`;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default \"\"\n\t * @public\n\t * @since 1.6.0\n\t */\n\t@property()\n\taccessibleName!: string;\n\n\t/**\n\t * Defines the IDs of the elements that label the component.\n\t * @default \"\"\n\t * @public\n\t * @since 1.1.0\n\t */\n\t@property()\n\taccessibleNameRef!: string;\n\n\t@property({ defaultValue: \"-1\", noAttribute: true })\n\t_tabIndex!: string;\n\n\t/**\n\t * Defines the active state (pressed or not) of the component.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tactive!: boolean;\n\n\t/**\n\t * The slot is used to render native `input` HTML element within Light DOM to enable form submit,\n\t * when `name` property is set.\n\t * @private\n\t */\n\t@slot()\n\tformSupport!: Array<HTMLElement>;\n\n\t_deactivate: () => void;\n\t_name!: string;\n\t_checked!: boolean;\n\t_internals: ElementInternals;\n\n\tstatic get formAssociated() {\n\t\treturn true;\n\t}\n\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._internals = this.attachInternals();\n\n\t\tthis._deactivate = () => {\n\t\t\tif (activeRadio) {\n\t\t\t\tactiveRadio.active = false;\n\t\t\t}\n\t\t};\n\n\t\tif (!isGlobalHandlerAttached) {\n\t\t\tdocument.addEventListener(\"mouseup\", this._deactivate);\n\t\t\tisGlobalHandlerAttached = true;\n\t\t}\n\t}\n\n\tstatic async onDefine() {\n\t\tRadioButton.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tonBeforeRendering() {\n\t\tthis.syncGroup();\n\n\t\tthis._enableFormSupport();\n\t}\n\n\tonEnterDOM() {\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\t}\n\n\tonExitDOM() {\n\t\tthis.syncGroup(true);\n\t}\n\n\tsyncGroup(forceRemove?: boolean) {\n\t\tconst oldGroup = this._name;\n\t\tconst currentGroup = this.name;\n\t\tconst oldChecked = this._checked;\n\t\tconst currentChecked = this.checked;\n\n\t\tif (forceRemove) {\n\t\t\tRadioButtonGroup.removeFromGroup(this, oldGroup);\n\t\t}\n\n\t\tif (currentGroup !== oldGroup) {\n\t\t\tif (oldGroup) {\n\t\t\t\t// remove the control from the previous group\n\t\t\t\tRadioButtonGroup.removeFromGroup(this, oldGroup);\n\t\t\t}\n\n\t\t\tif (currentGroup) {\n\t\t\t\t// add the control to the existing group\n\t\t\t\tRadioButtonGroup.addToGroup(this, currentGroup);\n\t\t\t}\n\t\t} else if (currentGroup) {\n\t\t\tRadioButtonGroup.enforceSingleSelection(this, currentGroup);\n\t\t}\n\n\t\tif (this.name && currentChecked !== oldChecked) {\n\t\t\tRadioButtonGroup.updateTabOrder(this.name);\n\t\t}\n\n\t\tthis._name = this.name;\n\t\tthis._checked = this.checked;\n\t}\n\n\t_enableFormSupport() {\n\t\tconst formSupport = getFeature<typeof FormSupport>(\"FormSupport\");\n\n\t\tif (formSupport) {\n\t\t\tthis._setFormValue();\n\t\t} else if (this.value) {\n\t\t\tconsole.warn(`In order for the \"value\" property to have effect, you should also: import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";`); // eslint-disable-line\n\t\t}\n\t}\n\n\t_setFormValue() {\n\t\tthis._internals.setFormValue(this.checked ? this.value : null);\n\t}\n\n\t_resetFormValidity() {\n\t\tthis._internals.setValidity({});\n\t}\n\n\t_invalidateForm() {\n\t\tthis._internals.setValidity(\n\t\t\t{ valueMissing: true },\n\t\t\tthis.radioButtonGroupRequiredText,\n\t\t\tthis.shadowRoot!.firstElementChild as HTMLElement,\n\t\t);\n\t}\n\n\t_onclick() {\n\t\treturn this.toggle();\n\t}\n\n\t_handleDown(e: KeyboardEvent) {\n\t\tconst currentGroup = this.name;\n\n\t\tif (!currentGroup) {\n\t\t\treturn;\n\t\t}\n\n\t\te.preventDefault();\n\t\tRadioButtonGroup.selectNextItem(this, currentGroup);\n\t}\n\n\t_handleUp(e: KeyboardEvent) {\n\t\tconst currentGroup = this.name;\n\n\t\tif (!currentGroup) {\n\t\t\treturn;\n\t\t}\n\n\t\te.preventDefault();\n\t\tRadioButtonGroup.selectPreviousItem(this, currentGroup);\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis.active = true;\n\t\t\treturn e.preventDefault();\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tthis.active = true;\n\t\t\treturn this.toggle();\n\t\t}\n\n\t\tconst isRTL = this.effectiveDir === \"rtl\";\n\n\t\tif (isDown(e) || (!isRTL && isRight(e)) || (isRTL && isLeft(e))) {\n\t\t\tthis._handleDown(e);\n\t\t}\n\n\t\tif (isUp(e) || (!isRTL && isLeft(e)) || (isRTL && isRight(e))) {\n\t\t\tthis._handleUp(e);\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis.toggle();\n\t\t}\n\n\t\tthis.active = false;\n\t}\n\n\t_onmousedown() {\n\t\tthis.active = true;\n\t\tactiveRadio = this; // eslint-disable-line\n\t}\n\n\t_onmouseup() {\n\t\tthis.active = false;\n\t}\n\n\t_onfocusout() {\n\t\tthis.active = false;\n\t}\n\n\ttoggle() {\n\t\tif (!this.canToggle()) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif (!this.name) {\n\t\t\tthis.checked = !this.checked;\n\t\t\tthis.fireEvent(\"change\");\n\t\t\treturn this;\n\t\t}\n\n\t\tRadioButtonGroup.selectItem(this, this.name);\n\t\treturn this;\n\t}\n\n\tcanToggle() {\n\t\treturn !(this.disabled || this.readonly || this.checked);\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tinner: {\n\t\t\t\t\"ui5-radio-inner--hoverable\": !this.disabled && !this.readonly && isDesktop(),\n\t\t\t},\n\t\t};\n\t}\n\n\tget effectiveAriaDisabled() {\n\t\treturn this.disabled ? \"true\" : null;\n\t}\n\n\tget ariaLabelText() {\n\t\treturn [getEffectiveAriaLabelText(this), this.text].filter(Boolean).join(\" \");\n\t}\n\n\tget effectiveAriaDescribedBy() {\n\t\treturn this.hasValueState ? `${this._id}-descr` : undefined;\n\t}\n\n\tget hasValueState() {\n\t\treturn this.valueState !== ValueState.None;\n\t}\n\n\tget valueStateText() {\n\t\tswitch (this.valueState) {\n\t\tcase ValueState.Negative:\n\t\t\treturn RadioButton.i18nBundle.getText(VALUE_STATE_ERROR);\n\t\tcase ValueState.Critical:\n\t\t\treturn RadioButton.i18nBundle.getText(VALUE_STATE_WARNING);\n\t\tcase ValueState.Positive:\n\t\t\treturn RadioButton.i18nBundle.getText(VALUE_STATE_SUCCESS);\n\t\tcase ValueState.Information:\n\t\t\treturn RadioButton.i18nBundle.getText(VALUE_STATE_INFORMATION);\n\t\tdefault:\n\t\t\treturn \"\";\n\t\t}\n\t}\n\n\tget radioButtonGroupRequiredText(): string {\n\t\treturn RadioButton.i18nBundle.getText(RADIO_BUTTON_GROUP_REQUIRED);\n\t}\n\n\tget effectiveTabIndex() {\n\t\tconst tabindex = this.getAttribute(\"tabindex\");\n\n\t\tif (this.disabled) {\n\t\t\treturn \"-1\";\n\t\t}\n\n\t\tif (this.name) {\n\t\t\treturn this._tabIndex;\n\t\t}\n\n\t\treturn tabindex || \"0\";\n\t}\n}\n\nRadioButton.define();\n\nexport default RadioButton;\n"]}
1
+ {"version":3,"file":"RadioButton.js","sourceRoot":"","sources":["../src/RadioButton.ts"],"names":[],"mappings":"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","sourcesContent":["import { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport type { IFormInputElement } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport {\n\tisSpace,\n\tisEnter,\n\tisDown,\n\tisLeft,\n\tisUp,\n\tisRight,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport Label from \"./Label.js\";\nimport RadioButtonGroup from \"./RadioButtonGroup.js\";\nimport WrappingType from \"./types/WrappingType.js\";\n\n// Template\nimport RadioButtonTemplate from \"./generated/templates/RadioButtonTemplate.lit.js\";\n\n// i18n\nimport {\n\tVALUE_STATE_ERROR,\n\tVALUE_STATE_WARNING,\n\tVALUE_STATE_SUCCESS,\n\tVALUE_STATE_INFORMATION,\n\tFORM_SELECTABLE_REQUIRED2,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport radioButtonCss from \"./generated/themes/RadioButton.css.js\";\n\nlet isGlobalHandlerAttached = false;\nlet activeRadio: RadioButton;\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-radio-button` component enables users to select a single option from a set of options.\n * When a `ui5-radio-button` is selected by the user, the\n * `change` event is fired.\n * When a `ui5-radio-button` that is within a group is selected, the one\n * that was previously selected gets automatically deselected. You can group radio buttons by using the `name` property.\n *\n * **Note:** If `ui5-radio-button` is not part of a group, it can be selected once, but can not be deselected back.\n *\n * ### Keyboard Handling\n *\n * Once the `ui5-radio-button` is on focus, it might be selected by pressing the Space and Enter keys.\n *\n * The Arrow Down/Arrow Up and Arrow Left/Arrow Right keys can be used to change selection between next/previous radio buttons in one group,\n * while TAB and SHIFT + TAB can be used to enter or leave the radio button group.\n *\n * **Note:** On entering radio button group, the focus goes to the currently selected radio button.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/RadioButton\";`\n * @constructor\n * @extends UI5Element\n * @public\n * @csspart outer-ring - Used to style the outer ring of the `ui5-radio-button`.\n * @csspart inner-ring - Used to style the inner ring of the `ui5-radio-button`.\n */\n@customElement({\n\ttag: \"ui5-radio-button\",\n\tlanguageAware: true,\n\tformAssociated: true,\n\trenderer: litRender,\n\ttemplate: RadioButtonTemplate,\n\tstyles: radioButtonCss,\n\tdependencies: [Label],\n})\n/**\n * Fired when the component checked state changes.\n * @public\n * @since 1.0.0-rc.15\n */\n@event(\"change\")\n\nclass RadioButton extends UI5Element implements IFormInputElement {\n\t/**\n\t * Defines whether the component is disabled.\n\t *\n\t * **Note:** A disabled component is completely noninteractive.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled!: boolean;\n\n\t/**\n\t * Defines whether the component is read-only.\n\t *\n\t * **Note:** A read-only component is not editable,\n\t * but still provides visual feedback upon user interaction.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\treadonly!: boolean;\n\n\t/**\n\t * Defines whether the component is required.\n\t * @default false\n\t * @public\n\t * @since 1.9.0\n\t */\n\t@property({ type: Boolean })\n\trequired!: boolean;\n\n\t/**\n\t * Defines whether the component is checked or not.\n\t *\n\t * **Note:** The property value can be changed with user interaction,\n\t * either by clicking/tapping on the component,\n\t * or by using the Space or Enter key.\n\t * @default false\n\t * @formEvents change\n\t * @formProperty\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property({ type: Boolean })\n\tchecked!: boolean;\n\n\t/**\n\t * Defines the text of the component.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\ttext!: string;\n\n\t/**\n\t * Defines the value state of the component.\n\t * @default \"None\"\n\t * @public\n\t */\n\t@property({ type: ValueState, defaultValue: ValueState.None })\n\tvalueState!: `${ValueState}`;\n\n\t/**\n\t * Determines the name by which the component will be identified upon submission in an HTML form.\n\t *\n\t * Radio buttons with the same `name` will form a radio button group.\n\t *\n\t * **Note:** By this name the component will be identified upon submission in an HTML form.\n\t *\n\t * **Note:** The selection can be changed with `ARROW_UP/DOWN` and `ARROW_LEFT/RIGHT` keys between radio buttons in same group.\n\t *\n\t * **Note:** Only one radio button can be selected per group.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tname!: string;\n\n\t/**\n\t * Defines the form value of the component.\n\t * When a form with a radio button group is submitted, the group's value\n\t * will be the value of the currently selected radio button.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tvalue!: string;\n\n\t/**\n\t * Defines whether the component text wraps when there is not enough space.\n\t *\n\t * **Note:** for option \"Normal\" the text will wrap and the words will not be broken based on hyphenation.\n\t * @default \"Normal\"\n\t * @public\n\t */\n\t@property({ type: WrappingType, defaultValue: WrappingType.Normal })\n\twrappingType!: `${WrappingType}`;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default \"\"\n\t * @public\n\t * @since 1.6.0\n\t */\n\t@property()\n\taccessibleName!: string;\n\n\t/**\n\t * Defines the IDs of the elements that label the component.\n\t * @default \"\"\n\t * @public\n\t * @since 1.1.0\n\t */\n\t@property()\n\taccessibleNameRef!: string;\n\n\t@property({ defaultValue: \"-1\", noAttribute: true })\n\t_tabIndex!: string;\n\n\t/**\n\t * Defines the active state (pressed or not) of the component.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tactive!: boolean;\n\n\t/**\n\t * Defines if the component is selected in specific group\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_groupChecked!: boolean;\n\t@property({ type: Boolean, noAttribute: true })\n\t_groupRequired!: boolean;\n\n\t_deactivate: () => void;\n\t_name!: string;\n\t_checked!: boolean;\n\n\tget formValidityMessage() {\n\t\treturn RadioButton.i18nBundle.getText(FORM_SELECTABLE_REQUIRED2);\n\t}\n\n\tget formValidity(): ValidityStateFlags {\n\t\treturn { valueMissing: this._groupRequired && !this._groupChecked };\n\t}\n\n\tasync formElementAnchor() {\n\t\treturn this.getFocusDomRefAsync();\n\t}\n\n\tget formFormattedValue() {\n\t\treturn this.checked ? (this.value || \"on\") : null;\n\t}\n\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._deactivate = () => {\n\t\t\tif (activeRadio) {\n\t\t\t\tactiveRadio.active = false;\n\t\t\t}\n\t\t};\n\n\t\tif (!isGlobalHandlerAttached) {\n\t\t\tdocument.addEventListener(\"mouseup\", this._deactivate);\n\t\t\tisGlobalHandlerAttached = true;\n\t\t}\n\t}\n\n\tstatic async onDefine() {\n\t\tRadioButton.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tonAfterRendering() {\n\t\tthis.syncGroup();\n\t}\n\n\tonEnterDOM() {\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\t}\n\n\tonExitDOM() {\n\t\tthis.syncGroup(true);\n\t}\n\n\tsyncGroup(forceRemove?: boolean) {\n\t\tconst oldGroup = this._name;\n\t\tconst currentGroup = this.name;\n\t\tconst oldChecked = this._checked;\n\t\tconst currentChecked = this.checked;\n\n\t\tif (forceRemove) {\n\t\t\tRadioButtonGroup.removeFromGroup(this, oldGroup);\n\t\t}\n\n\t\tif (currentGroup !== oldGroup) {\n\t\t\tif (oldGroup) {\n\t\t\t\t// remove the control from the previous group\n\t\t\t\tRadioButtonGroup.removeFromGroup(this, oldGroup);\n\t\t\t}\n\n\t\t\tif (currentGroup) {\n\t\t\t\t// add the control to the existing group\n\t\t\t\tRadioButtonGroup.addToGroup(this, currentGroup);\n\t\t\t}\n\t\t} else if (currentGroup) {\n\t\t\tRadioButtonGroup.enforceSingleSelection(this, currentGroup);\n\t\t}\n\n\t\tif (this.name && currentChecked !== oldChecked) {\n\t\t\tRadioButtonGroup.updateTabOrder(this.name);\n\t\t}\n\n\t\tthis._name = this.name;\n\t\tthis._checked = this.checked;\n\t}\n\n\t_onclick() {\n\t\treturn this.toggle();\n\t}\n\n\t_handleDown(e: KeyboardEvent) {\n\t\tconst currentGroup = this.name;\n\n\t\tif (!currentGroup) {\n\t\t\treturn;\n\t\t}\n\n\t\te.preventDefault();\n\t\tRadioButtonGroup.selectNextItem(this, currentGroup);\n\t}\n\n\t_handleUp(e: KeyboardEvent) {\n\t\tconst currentGroup = this.name;\n\n\t\tif (!currentGroup) {\n\t\t\treturn;\n\t\t}\n\n\t\te.preventDefault();\n\t\tRadioButtonGroup.selectPreviousItem(this, currentGroup);\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis.active = true;\n\t\t\treturn e.preventDefault();\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tthis.active = true;\n\t\t\treturn this.toggle();\n\t\t}\n\n\t\tconst isRTL = this.effectiveDir === \"rtl\";\n\n\t\tif (isDown(e) || (!isRTL && isRight(e)) || (isRTL && isLeft(e))) {\n\t\t\tthis._handleDown(e);\n\t\t}\n\n\t\tif (isUp(e) || (!isRTL && isLeft(e)) || (isRTL && isRight(e))) {\n\t\t\tthis._handleUp(e);\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis.toggle();\n\t\t}\n\n\t\tthis.active = false;\n\t}\n\n\t_onmousedown() {\n\t\tthis.active = true;\n\t\tactiveRadio = this; // eslint-disable-line\n\t}\n\n\t_onmouseup() {\n\t\tthis.active = false;\n\t}\n\n\t_onfocusout() {\n\t\tthis.active = false;\n\t}\n\n\ttoggle() {\n\t\tif (!this.canToggle()) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif (!this.name) {\n\t\t\tthis.checked = !this.checked;\n\t\t\tthis.fireEvent(\"change\");\n\t\t\treturn this;\n\t\t}\n\n\t\tRadioButtonGroup.selectItem(this, this.name);\n\t\treturn this;\n\t}\n\n\tcanToggle() {\n\t\treturn !(this.disabled || this.readonly || this.checked);\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tinner: {\n\t\t\t\t\"ui5-radio-inner--hoverable\": !this.disabled && !this.readonly && isDesktop(),\n\t\t\t},\n\t\t};\n\t}\n\n\tget effectiveAriaDisabled() {\n\t\treturn this.disabled ? \"true\" : null;\n\t}\n\n\tget ariaLabelText() {\n\t\treturn [getEffectiveAriaLabelText(this), this.text].filter(Boolean).join(\" \");\n\t}\n\n\tget effectiveAriaDescribedBy() {\n\t\treturn this.hasValueState ? `${this._id}-descr` : undefined;\n\t}\n\n\tget hasValueState() {\n\t\treturn this.valueState !== ValueState.None;\n\t}\n\n\tget valueStateText() {\n\t\tswitch (this.valueState) {\n\t\tcase ValueState.Negative:\n\t\t\treturn RadioButton.i18nBundle.getText(VALUE_STATE_ERROR);\n\t\tcase ValueState.Critical:\n\t\t\treturn RadioButton.i18nBundle.getText(VALUE_STATE_WARNING);\n\t\tcase ValueState.Positive:\n\t\t\treturn RadioButton.i18nBundle.getText(VALUE_STATE_SUCCESS);\n\t\tcase ValueState.Information:\n\t\t\treturn RadioButton.i18nBundle.getText(VALUE_STATE_INFORMATION);\n\t\tdefault:\n\t\t\treturn \"\";\n\t\t}\n\t}\n\n\tget effectiveTabIndex() {\n\t\tconst tabindex = this.getAttribute(\"tabindex\");\n\n\t\tif (this.disabled) {\n\t\t\treturn \"-1\";\n\t\t}\n\n\t\tif (this.name) {\n\t\t\treturn this._tabIndex;\n\t\t}\n\n\t\treturn tabindex || \"0\";\n\t}\n}\n\nRadioButton.define();\n\nexport default RadioButton;\n"]}
@@ -71,11 +71,12 @@ class RadioButtonGroup {
71
71
  if (!group) {
72
72
  return;
73
73
  }
74
- group.forEach(r => r._resetFormValidity());
75
- const groupRequiresValue = group.some(r => r.required) && group.every(r => !r.checked);
76
- if (groupRequiresValue) {
77
- group[0]._invalidateForm();
78
- }
74
+ const hasRequired = group.some(r => r.required);
75
+ const hasChecked = group.some(r => r.checked);
76
+ group.forEach(r => {
77
+ r._groupChecked = hasChecked;
78
+ r._groupRequired = hasRequired;
79
+ });
79
80
  }
80
81
  static updateTabOrder(groupName) {
81
82
  const group = this.getGroup(groupName);
@@ -1 +1 @@
1
- {"version":3,"file":"RadioButtonGroup.js","sourceRoot":"","sources":["../src/RadioButtonGroup.ts"],"names":[],"mappings":"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","sourcesContent":["import type RadioButton from \"./RadioButton.js\";\n\nclass RadioButtonGroup {\n\tstatic _groups: Map<string, Array<RadioButton>>;\n\tstatic _checkedRadios: Map<string, RadioButton | null>;\n\n\tstatic hasGroup(groupName: string) {\n\t\treturn this.groups.has(groupName);\n\t}\n\n\tstatic getGroup(groupName: string) {\n\t\treturn this.groups.get(groupName);\n\t}\n\n\tstatic getCheckedRadioFromGroup(groupName: string) {\n\t\treturn this.checkedRadios.get(groupName);\n\t}\n\n\tstatic removeGroup(groupName: string) {\n\t\tthis.checkedRadios.delete(groupName);\n\t\treturn this.groups.delete(groupName);\n\t}\n\n\tstatic addToGroup(radioBtn: RadioButton, groupName: string) {\n\t\tif (this.hasGroup(groupName)) {\n\t\t\tthis.enforceSingleSelection(radioBtn, groupName);\n\t\t\tif (this.getGroup(groupName)) {\n\t\t\t\tthis.getGroup(groupName)!.push(radioBtn);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.createGroup(radioBtn, groupName);\n\t\t}\n\n\t\tthis.updateTabOrder(groupName);\n\t}\n\n\tstatic removeFromGroup(radioBtn: RadioButton, groupName: string) {\n\t\tconst group = this.getGroup(groupName);\n\n\t\tif (!group) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst checkedRadio = this.getCheckedRadioFromGroup(groupName);\n\n\t\t// Remove the radio button from the given group\n\t\tgroup.forEach((_radioBtn, idx, arr) => {\n\t\t\tif (radioBtn._id === _radioBtn._id) {\n\t\t\t\treturn arr.splice(idx, 1);\n\t\t\t}\n\t\t});\n\n\t\tif (checkedRadio === radioBtn) {\n\t\t\tthis.checkedRadios.set(groupName, null);\n\t\t}\n\n\t\t// Remove the group if it is empty\n\t\tif (!group.length) {\n\t\t\tthis.removeGroup(groupName);\n\t\t}\n\n\t\tthis.updateTabOrder(groupName);\n\t}\n\n\tstatic createGroup(radioBtn: RadioButton, groupName: string) {\n\t\tif (radioBtn.checked) {\n\t\t\tthis.checkedRadios.set(groupName, radioBtn);\n\t\t}\n\n\t\tthis.groups.set(groupName, [radioBtn]);\n\t}\n\n\tstatic selectNextItem(item: RadioButton, groupName: string) {\n\t\tconst group = this.getGroup(groupName);\n\t\tif (!group) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst groupLength = group.length,\n\t\t\tcurrentItemPosition = group.indexOf(item);\n\n\t\tif (groupLength <= 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst nextItemToSelect = this._nextSelectable(currentItemPosition, group);\n\t\tif (!nextItemToSelect) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.updateSelectionInGroup(nextItemToSelect, groupName);\n\t}\n\n\tstatic updateFormValidity(groupName: string) {\n\t\tconst group = this.getGroup(groupName);\n\n\t\tif (!group) {\n\t\t\treturn;\n\t\t}\n\n\t\tgroup.forEach(r => r._resetFormValidity());\n\n\t\tconst groupRequiresValue = group.some(r => r.required) && group.every(r => !r.checked);\n\t\tif (groupRequiresValue) {\n\t\t\tgroup[0]._invalidateForm();\n\t\t}\n\t}\n\n\tstatic updateTabOrder(groupName: string) {\n\t\tconst group = this.getGroup(groupName);\n\n\t\tif (!group) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst hasCheckedRadio = group.some(radioBtn => radioBtn.checked);\n\n\t\tgroup.filter(radioBtn => !radioBtn.disabled).forEach((radioBtn, idx) => {\n\t\t\tif (hasCheckedRadio) {\n\t\t\t\tradioBtn._tabIndex = radioBtn.checked ? \"0\" : \"-1\";\n\t\t\t} else {\n\t\t\t\tradioBtn._tabIndex = idx === 0 ? \"0\" : \"-1\";\n\t\t\t}\n\t\t});\n\t}\n\n\tstatic selectPreviousItem(item: RadioButton, groupName: string) {\n\t\tconst group = this.getGroup(groupName);\n\n\t\tif (!group) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst groupLength = group.length,\n\t\t\tcurrentItemPosition = group.indexOf(item);\n\n\t\tif (groupLength <= 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst previousItemToSelect = this._previousSelectable(currentItemPosition, group);\n\t\tif (!previousItemToSelect) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.updateSelectionInGroup(previousItemToSelect, groupName);\n\t}\n\n\tstatic selectItem(item: RadioButton, groupName: string) {\n\t\tthis.updateSelectionInGroup(item, groupName);\n\t\tthis.updateTabOrder(groupName);\n\t}\n\n\tstatic updateSelectionInGroup(radioBtnToSelect: RadioButton, groupName: string) {\n\t\tconst checkedRadio = this.getCheckedRadioFromGroup(groupName);\n\n\t\tif (checkedRadio) {\n\t\t\tthis._deselectRadio(checkedRadio);\n\t\t}\n\n\t\tthis._selectRadio(radioBtnToSelect);\n\t\tthis.checkedRadios.set(groupName, radioBtnToSelect);\n\t}\n\n\tstatic _deselectRadio(radioBtn: RadioButton) {\n\t\tif (radioBtn) {\n\t\t\tradioBtn.checked = false;\n\t\t}\n\t}\n\n\tstatic _selectRadio(radioBtn: RadioButton) {\n\t\tif (radioBtn) {\n\t\t\tradioBtn.focus();\n\t\t\tradioBtn.checked = true;\n\t\t\tradioBtn._checked = true;\n\t\t\tradioBtn.fireEvent(\"change\");\n\t\t}\n\t}\n\n\tstatic _nextSelectable(pos: number, group: RadioButton[]): RadioButton | null {\n\t\tif (!group) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst groupLength = group.length;\n\t\tlet nextRadioToSelect = null;\n\n\t\tif (pos === groupLength - 1) {\n\t\t\tif (group[0].disabled || group[0].readonly) {\n\t\t\t\treturn this._nextSelectable(1, group);\n\t\t\t}\n\t\t\tnextRadioToSelect = group[0];\n\t\t} else if (group[pos + 1].disabled || group[pos + 1].readonly) {\n\t\t\treturn this._nextSelectable(pos + 1, group);\n\t\t} else {\n\t\t\tnextRadioToSelect = group[pos + 1];\n\t\t}\n\n\t\treturn nextRadioToSelect;\n\t}\n\n\tstatic _previousSelectable(pos: number, group: RadioButton[]): RadioButton | null {\n\t\tconst groupLength = group.length;\n\t\tlet previousRadioToSelect = null;\n\t\tif (pos === 0) {\n\t\t\tif (group[groupLength - 1].disabled || group[groupLength - 1].readonly) {\n\t\t\t\treturn this._previousSelectable(groupLength - 1, group);\n\t\t\t}\n\t\t\tpreviousRadioToSelect = group[groupLength - 1];\n\t\t} else if (group[pos - 1].disabled || group[pos - 1].readonly) {\n\t\t\treturn this._previousSelectable(pos - 1, group);\n\t\t} else {\n\t\t\tpreviousRadioToSelect = group[pos - 1];\n\t\t}\n\n\t\treturn previousRadioToSelect;\n\t}\n\n\tstatic enforceSingleSelection(radioBtn: RadioButton, groupName: string) {\n\t\tconst checkedRadio = this.getCheckedRadioFromGroup(groupName);\n\n\t\tif (radioBtn.checked) {\n\t\t\tif (!checkedRadio) {\n\t\t\t\tthis.checkedRadios.set(groupName, radioBtn);\n\t\t\t} else if (radioBtn !== checkedRadio) {\n\t\t\t\tthis._deselectRadio(checkedRadio);\n\t\t\t\tthis.checkedRadios.set(groupName, radioBtn);\n\t\t\t}\n\t\t} else if (radioBtn === checkedRadio) {\n\t\t\tthis.checkedRadios.set(groupName, null);\n\t\t}\n\n\t\tthis.updateTabOrder(groupName);\n\t\tthis.updateFormValidity(groupName);\n\t}\n\n\tstatic get groups() {\n\t\tif (!this._groups) {\n\t\t\tthis._groups = new Map();\n\t\t}\n\t\treturn this._groups;\n\t}\n\n\tstatic get checkedRadios() {\n\t\tif (!this._checkedRadios) {\n\t\t\tthis._checkedRadios = new Map();\n\t\t}\n\t\treturn this._checkedRadios;\n\t}\n}\n\nexport default RadioButtonGroup;\n"]}
1
+ {"version":3,"file":"RadioButtonGroup.js","sourceRoot":"","sources":["../src/RadioButtonGroup.ts"],"names":[],"mappings":"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","sourcesContent":["import type RadioButton from \"./RadioButton.js\";\n\nclass RadioButtonGroup {\n\tstatic _groups: Map<string, Array<RadioButton>>;\n\tstatic _checkedRadios: Map<string, RadioButton | null>;\n\n\tstatic hasGroup(groupName: string) {\n\t\treturn this.groups.has(groupName);\n\t}\n\n\tstatic getGroup(groupName: string) {\n\t\treturn this.groups.get(groupName);\n\t}\n\n\tstatic getCheckedRadioFromGroup(groupName: string) {\n\t\treturn this.checkedRadios.get(groupName);\n\t}\n\n\tstatic removeGroup(groupName: string) {\n\t\tthis.checkedRadios.delete(groupName);\n\t\treturn this.groups.delete(groupName);\n\t}\n\n\tstatic addToGroup(radioBtn: RadioButton, groupName: string) {\n\t\tif (this.hasGroup(groupName)) {\n\t\t\tthis.enforceSingleSelection(radioBtn, groupName);\n\t\t\tif (this.getGroup(groupName)) {\n\t\t\t\tthis.getGroup(groupName)!.push(radioBtn);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.createGroup(radioBtn, groupName);\n\t\t}\n\n\t\tthis.updateTabOrder(groupName);\n\t}\n\n\tstatic removeFromGroup(radioBtn: RadioButton, groupName: string) {\n\t\tconst group = this.getGroup(groupName);\n\n\t\tif (!group) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst checkedRadio = this.getCheckedRadioFromGroup(groupName);\n\n\t\t// Remove the radio button from the given group\n\t\tgroup.forEach((_radioBtn, idx, arr) => {\n\t\t\tif (radioBtn._id === _radioBtn._id) {\n\t\t\t\treturn arr.splice(idx, 1);\n\t\t\t}\n\t\t});\n\n\t\tif (checkedRadio === radioBtn) {\n\t\t\tthis.checkedRadios.set(groupName, null);\n\t\t}\n\n\t\t// Remove the group if it is empty\n\t\tif (!group.length) {\n\t\t\tthis.removeGroup(groupName);\n\t\t}\n\n\t\tthis.updateTabOrder(groupName);\n\t}\n\n\tstatic createGroup(radioBtn: RadioButton, groupName: string) {\n\t\tif (radioBtn.checked) {\n\t\t\tthis.checkedRadios.set(groupName, radioBtn);\n\t\t}\n\n\t\tthis.groups.set(groupName, [radioBtn]);\n\t}\n\n\tstatic selectNextItem(item: RadioButton, groupName: string) {\n\t\tconst group = this.getGroup(groupName);\n\t\tif (!group) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst groupLength = group.length,\n\t\t\tcurrentItemPosition = group.indexOf(item);\n\n\t\tif (groupLength <= 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst nextItemToSelect = this._nextSelectable(currentItemPosition, group);\n\t\tif (!nextItemToSelect) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.updateSelectionInGroup(nextItemToSelect, groupName);\n\t}\n\n\tstatic updateFormValidity(groupName: string) {\n\t\tconst group = this.getGroup(groupName);\n\n\t\tif (!group) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst hasRequired = group.some(r => r.required);\n\t\tconst hasChecked = group.some(r => r.checked);\n\n\t\tgroup.forEach(r => {\n\t\t\tr._groupChecked = hasChecked;\n\t\t\tr._groupRequired = hasRequired;\n\t\t});\n\t}\n\n\tstatic updateTabOrder(groupName: string) {\n\t\tconst group = this.getGroup(groupName);\n\n\t\tif (!group) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst hasCheckedRadio = group.some(radioBtn => radioBtn.checked);\n\n\t\tgroup.filter(radioBtn => !radioBtn.disabled).forEach((radioBtn, idx) => {\n\t\t\tif (hasCheckedRadio) {\n\t\t\t\tradioBtn._tabIndex = radioBtn.checked ? \"0\" : \"-1\";\n\t\t\t} else {\n\t\t\t\tradioBtn._tabIndex = idx === 0 ? \"0\" : \"-1\";\n\t\t\t}\n\t\t});\n\t}\n\n\tstatic selectPreviousItem(item: RadioButton, groupName: string) {\n\t\tconst group = this.getGroup(groupName);\n\n\t\tif (!group) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst groupLength = group.length,\n\t\t\tcurrentItemPosition = group.indexOf(item);\n\n\t\tif (groupLength <= 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst previousItemToSelect = this._previousSelectable(currentItemPosition, group);\n\t\tif (!previousItemToSelect) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.updateSelectionInGroup(previousItemToSelect, groupName);\n\t}\n\n\tstatic selectItem(item: RadioButton, groupName: string) {\n\t\tthis.updateSelectionInGroup(item, groupName);\n\t\tthis.updateTabOrder(groupName);\n\t}\n\n\tstatic updateSelectionInGroup(radioBtnToSelect: RadioButton, groupName: string) {\n\t\tconst checkedRadio = this.getCheckedRadioFromGroup(groupName);\n\n\t\tif (checkedRadio) {\n\t\t\tthis._deselectRadio(checkedRadio);\n\t\t}\n\n\t\tthis._selectRadio(radioBtnToSelect);\n\t\tthis.checkedRadios.set(groupName, radioBtnToSelect);\n\t}\n\n\tstatic _deselectRadio(radioBtn: RadioButton) {\n\t\tif (radioBtn) {\n\t\t\tradioBtn.checked = false;\n\t\t}\n\t}\n\n\tstatic _selectRadio(radioBtn: RadioButton) {\n\t\tif (radioBtn) {\n\t\t\tradioBtn.focus();\n\t\t\tradioBtn.checked = true;\n\t\t\tradioBtn._checked = true;\n\t\t\tradioBtn.fireEvent(\"change\");\n\t\t}\n\t}\n\n\tstatic _nextSelectable(pos: number, group: RadioButton[]): RadioButton | null {\n\t\tif (!group) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst groupLength = group.length;\n\t\tlet nextRadioToSelect = null;\n\n\t\tif (pos === groupLength - 1) {\n\t\t\tif (group[0].disabled || group[0].readonly) {\n\t\t\t\treturn this._nextSelectable(1, group);\n\t\t\t}\n\t\t\tnextRadioToSelect = group[0];\n\t\t} else if (group[pos + 1].disabled || group[pos + 1].readonly) {\n\t\t\treturn this._nextSelectable(pos + 1, group);\n\t\t} else {\n\t\t\tnextRadioToSelect = group[pos + 1];\n\t\t}\n\n\t\treturn nextRadioToSelect;\n\t}\n\n\tstatic _previousSelectable(pos: number, group: RadioButton[]): RadioButton | null {\n\t\tconst groupLength = group.length;\n\t\tlet previousRadioToSelect = null;\n\t\tif (pos === 0) {\n\t\t\tif (group[groupLength - 1].disabled || group[groupLength - 1].readonly) {\n\t\t\t\treturn this._previousSelectable(groupLength - 1, group);\n\t\t\t}\n\t\t\tpreviousRadioToSelect = group[groupLength - 1];\n\t\t} else if (group[pos - 1].disabled || group[pos - 1].readonly) {\n\t\t\treturn this._previousSelectable(pos - 1, group);\n\t\t} else {\n\t\t\tpreviousRadioToSelect = group[pos - 1];\n\t\t}\n\n\t\treturn previousRadioToSelect;\n\t}\n\n\tstatic enforceSingleSelection(radioBtn: RadioButton, groupName: string) {\n\t\tconst checkedRadio = this.getCheckedRadioFromGroup(groupName);\n\n\t\tif (radioBtn.checked) {\n\t\t\tif (!checkedRadio) {\n\t\t\t\tthis.checkedRadios.set(groupName, radioBtn);\n\t\t\t} else if (radioBtn !== checkedRadio) {\n\t\t\t\tthis._deselectRadio(checkedRadio);\n\t\t\t\tthis.checkedRadios.set(groupName, radioBtn);\n\t\t\t}\n\t\t} else if (radioBtn === checkedRadio) {\n\t\t\tthis.checkedRadios.set(groupName, null);\n\t\t}\n\n\t\tthis.updateTabOrder(groupName);\n\t\tthis.updateFormValidity(groupName);\n\t}\n\n\tstatic get groups() {\n\t\tif (!this._groups) {\n\t\t\tthis._groups = new Map();\n\t\t}\n\t\treturn this._groups;\n\t}\n\n\tstatic get checkedRadios() {\n\t\tif (!this._checkedRadios) {\n\t\t\tthis._checkedRadios = new Map();\n\t\t}\n\t\treturn this._checkedRadios;\n\t}\n}\n\nexport default RadioButtonGroup;\n"]}
@@ -1,4 +1,5 @@
1
1
  import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
2
+ import type { IFormInputElement } from "@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js";
2
3
  import SliderBase from "./SliderBase.js";
3
4
  type AriaHandlesText = {
4
5
  startHandleText?: string;
@@ -59,7 +60,7 @@ type AffectedValue = "startValue" | "endValue";
59
60
  * @csspart progress-bar - Used to style the progress bar, which shows the progress of the `ui5-range-slider`.
60
61
  * @csspart handle - Used to style the handles of the `ui5-range-slider`.
61
62
  */
62
- declare class RangeSlider extends SliderBase {
63
+ declare class RangeSlider extends SliderBase implements IFormInputElement {
63
64
  /**
64
65
  * Defines start point of a selection - position of a first handle on the slider.
65
66
  * @default 0
@@ -91,6 +92,7 @@ declare class RangeSlider extends SliderBase {
91
92
  _selectedRange?: number;
92
93
  _reversedValues: boolean;
93
94
  static i18nBundle: I18nBundle;
95
+ get formFormattedValue(): FormData;
94
96
  constructor();
95
97
  get tooltipStartValue(): string;
96
98
  get tooltipEndValue(): string;
@@ -72,6 +72,12 @@ import rangeSliderStyles from "./generated/themes/RangeSlider.css.js";
72
72
  * @csspart handle - Used to style the handles of the `ui5-range-slider`.
73
73
  */
74
74
  let RangeSlider = RangeSlider_1 = class RangeSlider extends SliderBase {
75
+ get formFormattedValue() {
76
+ const formData = new FormData();
77
+ formData.append(this.name, this.startValue.toString());
78
+ formData.append(this.name, this.endValue.toString());
79
+ return formData;
80
+ }
75
81
  constructor() {
76
82
  super();
77
83
  this._isPressInCurrentRange = false;
@@ -712,6 +718,7 @@ RangeSlider = RangeSlider_1 = __decorate([
712
718
  customElement({
713
719
  tag: "ui5-range-slider",
714
720
  languageAware: true,
721
+ formAssociated: true,
715
722
  template: RangeSliderTemplate,
716
723
  dependencies: [Icon],
717
724
  styles: [SliderBase.styles, rangeSliderStyles],