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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (393) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/cypress/specs/Form.cy.ts +288 -23
  3. package/cypress/specs/Input.cy.ts +32 -0
  4. package/cypress/specs/Toolbar.cy.ts +26 -0
  5. package/dist/.tsbuildinfo +1 -1
  6. package/dist/ComboBox.js +6 -3
  7. package/dist/ComboBox.js.map +1 -1
  8. package/dist/Dialog.d.ts +4 -5
  9. package/dist/Dialog.js +4 -5
  10. package/dist/Dialog.js.map +1 -1
  11. package/dist/Form.d.ts +74 -3
  12. package/dist/Form.js +163 -7
  13. package/dist/Form.js.map +1 -1
  14. package/dist/FormGroup.d.ts +0 -1
  15. package/dist/FormGroup.js +0 -5
  16. package/dist/FormGroup.js.map +1 -1
  17. package/dist/FormItem.d.ts +0 -4
  18. package/dist/FormItem.js +0 -7
  19. package/dist/FormItem.js.map +1 -1
  20. package/dist/Input.js +6 -2
  21. package/dist/Input.js.map +1 -1
  22. package/dist/List.d.ts +3 -0
  23. package/dist/List.js +34 -2
  24. package/dist/List.js.map +1 -1
  25. package/dist/RadioButton.d.ts +5 -2
  26. package/dist/RadioButton.js +6 -3
  27. package/dist/RadioButton.js.map +1 -1
  28. package/dist/RadioButtonGroup.d.ts +2 -2
  29. package/dist/RadioButtonGroup.js +56 -34
  30. package/dist/RadioButtonGroup.js.map +1 -1
  31. package/dist/SliderBase.js +2 -2
  32. package/dist/SliderBase.js.map +1 -1
  33. package/dist/ToolbarSpacer.js +2 -2
  34. package/dist/ToolbarSpacer.js.map +1 -1
  35. package/dist/css/themes/Avatar.css +1 -1
  36. package/dist/css/themes/AvatarGroup.css +1 -1
  37. package/dist/css/themes/Bar.css +1 -1
  38. package/dist/css/themes/Breadcrumbs.css +1 -1
  39. package/dist/css/themes/BusyIndicator.css +1 -1
  40. package/dist/css/themes/Button.css +1 -1
  41. package/dist/css/themes/Calendar.css +1 -1
  42. package/dist/css/themes/CalendarHeader.css +1 -1
  43. package/dist/css/themes/CalendarLegend.css +1 -1
  44. package/dist/css/themes/CalendarLegendItem.css +1 -1
  45. package/dist/css/themes/Card.css +1 -1
  46. package/dist/css/themes/CardHeader.css +1 -1
  47. package/dist/css/themes/Carousel.css +1 -1
  48. package/dist/css/themes/CheckBox.css +1 -1
  49. package/dist/css/themes/ColorPalette.css +1 -1
  50. package/dist/css/themes/ColorPaletteItem.css +1 -1
  51. package/dist/css/themes/ColorPalettePopover.css +1 -1
  52. package/dist/css/themes/ColorPicker.css +1 -1
  53. package/dist/css/themes/ComboBox.css +1 -1
  54. package/dist/css/themes/ComboBoxItem.css +1 -1
  55. package/dist/css/themes/DatePicker.css +1 -1
  56. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  57. package/dist/css/themes/DayPicker.css +1 -1
  58. package/dist/css/themes/Dialog.css +1 -1
  59. package/dist/css/themes/FileUploader.css +1 -1
  60. package/dist/css/themes/Form.css +1 -1
  61. package/dist/css/themes/FormItem.css +1 -1
  62. package/dist/css/themes/FormItemSpan.css +1 -0
  63. package/dist/css/themes/GrowingButton.css +1 -1
  64. package/dist/css/themes/Icon.css +1 -1
  65. package/dist/css/themes/Input.css +1 -1
  66. package/dist/css/themes/InputIcon.css +1 -1
  67. package/dist/css/themes/InputSharedStyles.css +1 -1
  68. package/dist/css/themes/Link.css +1 -1
  69. package/dist/css/themes/List.css +1 -1
  70. package/dist/css/themes/ListItem.css +1 -1
  71. package/dist/css/themes/ListItemBase.css +1 -1
  72. package/dist/css/themes/ListItemCustom.css +1 -1
  73. package/dist/css/themes/ListItemGroup.css +1 -1
  74. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  75. package/dist/css/themes/ListItemIcon.css +1 -1
  76. package/dist/css/themes/Menu.css +1 -1
  77. package/dist/css/themes/MenuItem.css +1 -1
  78. package/dist/css/themes/MessageStrip.css +1 -1
  79. package/dist/css/themes/MonthPicker.css +1 -1
  80. package/dist/css/themes/MultiComboBox.css +1 -1
  81. package/dist/css/themes/MultiComboBoxItem.css +1 -1
  82. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  83. package/dist/css/themes/MultiInput.css +1 -1
  84. package/dist/css/themes/NavigationMenu.css +1 -1
  85. package/dist/css/themes/NavigationMenuItem.css +1 -1
  86. package/dist/css/themes/OptionBase.css +1 -1
  87. package/dist/css/themes/Panel.css +1 -1
  88. package/dist/css/themes/Popover.css +1 -1
  89. package/dist/css/themes/PopupsCommon.css +1 -1
  90. package/dist/css/themes/ProgressIndicator.css +1 -1
  91. package/dist/css/themes/RadioButton.css +1 -1
  92. package/dist/css/themes/RangeSlider.css +1 -1
  93. package/dist/css/themes/RatingIndicator.css +1 -1
  94. package/dist/css/themes/ResponsivePopover.css +1 -1
  95. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  96. package/dist/css/themes/SegmentedButton.css +1 -1
  97. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  98. package/dist/css/themes/Select.css +1 -1
  99. package/dist/css/themes/SliderBase.css +1 -1
  100. package/dist/css/themes/SplitButton.css +1 -1
  101. package/dist/css/themes/StepInput.css +1 -1
  102. package/dist/css/themes/SuggestionItem.css +1 -1
  103. package/dist/css/themes/SuggestionItemCustom.css +1 -1
  104. package/dist/css/themes/Switch.css +1 -1
  105. package/dist/css/themes/TabContainer.css +1 -1
  106. package/dist/css/themes/TabInOverflow.css +1 -1
  107. package/dist/css/themes/TabInStrip.css +1 -1
  108. package/dist/css/themes/TabSemanticIcon.css +1 -1
  109. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  110. package/dist/css/themes/Table.css +1 -1
  111. package/dist/css/themes/TableCellBase.css +1 -1
  112. package/dist/css/themes/TableHeaderRow.css +1 -1
  113. package/dist/css/themes/TableRow.css +1 -1
  114. package/dist/css/themes/TableRowBase.css +1 -1
  115. package/dist/css/themes/Tag.css +1 -1
  116. package/dist/css/themes/Text.css +1 -1
  117. package/dist/css/themes/TextArea.css +1 -1
  118. package/dist/css/themes/TimePicker.css +1 -1
  119. package/dist/css/themes/Toast.css +1 -1
  120. package/dist/css/themes/ToggleButton.css +1 -1
  121. package/dist/css/themes/Token.css +1 -1
  122. package/dist/css/themes/Tokenizer.css +1 -1
  123. package/dist/css/themes/TokenizerPopover.css +1 -1
  124. package/dist/css/themes/Toolbar.css +1 -1
  125. package/dist/css/themes/ToolbarPopover.css +1 -1
  126. package/dist/css/themes/TreeItem.css +1 -1
  127. package/dist/css/themes/ValueStateMessage.css +1 -1
  128. package/dist/css/themes/YearPicker.css +1 -1
  129. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  130. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  131. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  132. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  133. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  134. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  135. package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
  136. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  137. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  138. package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
  139. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  140. package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
  141. package/dist/custom-elements-internal.json +30 -10
  142. package/dist/custom-elements.json +29 -10
  143. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  144. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  145. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  146. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  147. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  148. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  149. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  150. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  151. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  152. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  153. package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
  154. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  155. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  156. package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
  157. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  158. package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
  159. package/dist/generated/templates/RadioButtonTemplate.lit.js +1 -1
  160. package/dist/generated/templates/RadioButtonTemplate.lit.js.map +1 -1
  161. package/dist/generated/themes/Avatar.css.js +1 -1
  162. package/dist/generated/themes/Avatar.css.js.map +1 -1
  163. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  164. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  165. package/dist/generated/themes/Bar.css.js +1 -1
  166. package/dist/generated/themes/Bar.css.js.map +1 -1
  167. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  168. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  169. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  170. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  171. package/dist/generated/themes/Button.css.js +1 -1
  172. package/dist/generated/themes/Button.css.js.map +1 -1
  173. package/dist/generated/themes/Calendar.css.js +1 -1
  174. package/dist/generated/themes/Calendar.css.js.map +1 -1
  175. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  176. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  177. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  178. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  179. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  180. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  181. package/dist/generated/themes/Card.css.js +1 -1
  182. package/dist/generated/themes/Card.css.js.map +1 -1
  183. package/dist/generated/themes/CardHeader.css.js +1 -1
  184. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  185. package/dist/generated/themes/Carousel.css.js +1 -1
  186. package/dist/generated/themes/Carousel.css.js.map +1 -1
  187. package/dist/generated/themes/CheckBox.css.js +1 -1
  188. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  189. package/dist/generated/themes/ColorPalette.css.js +1 -1
  190. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  191. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  192. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  193. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  194. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  195. package/dist/generated/themes/ColorPicker.css.js +1 -1
  196. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  197. package/dist/generated/themes/ComboBox.css.js +1 -1
  198. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  199. package/dist/generated/themes/ComboBoxItem.css.js +1 -1
  200. package/dist/generated/themes/ComboBoxItem.css.js.map +1 -1
  201. package/dist/generated/themes/DatePicker.css.js +1 -1
  202. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  203. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  204. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  205. package/dist/generated/themes/DayPicker.css.js +1 -1
  206. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  207. package/dist/generated/themes/Dialog.css.js +1 -1
  208. package/dist/generated/themes/Dialog.css.js.map +1 -1
  209. package/dist/generated/themes/FileUploader.css.js +1 -1
  210. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  211. package/dist/generated/themes/Form.css.js +1 -1
  212. package/dist/generated/themes/Form.css.js.map +1 -1
  213. package/dist/generated/themes/FormItem.css.js +1 -1
  214. package/dist/generated/themes/FormItem.css.js.map +1 -1
  215. package/dist/generated/themes/FormItemSpan.css.js +9 -0
  216. package/dist/generated/themes/FormItemSpan.css.js.map +1 -0
  217. package/dist/generated/themes/GrowingButton.css.js +1 -1
  218. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  219. package/dist/generated/themes/Icon.css.js +1 -1
  220. package/dist/generated/themes/Icon.css.js.map +1 -1
  221. package/dist/generated/themes/Input.css.js +1 -1
  222. package/dist/generated/themes/Input.css.js.map +1 -1
  223. package/dist/generated/themes/InputIcon.css.js +1 -1
  224. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  225. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  226. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  227. package/dist/generated/themes/Link.css.js +1 -1
  228. package/dist/generated/themes/Link.css.js.map +1 -1
  229. package/dist/generated/themes/List.css.js +1 -1
  230. package/dist/generated/themes/List.css.js.map +1 -1
  231. package/dist/generated/themes/ListItem.css.js +1 -1
  232. package/dist/generated/themes/ListItem.css.js.map +1 -1
  233. package/dist/generated/themes/ListItemBase.css.js +1 -1
  234. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  235. package/dist/generated/themes/ListItemCustom.css.js +1 -1
  236. package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
  237. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  238. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  239. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  240. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  241. package/dist/generated/themes/ListItemIcon.css.js +1 -1
  242. package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
  243. package/dist/generated/themes/Menu.css.js +1 -1
  244. package/dist/generated/themes/Menu.css.js.map +1 -1
  245. package/dist/generated/themes/MenuItem.css.js +1 -1
  246. package/dist/generated/themes/MenuItem.css.js.map +1 -1
  247. package/dist/generated/themes/MessageStrip.css.js +1 -1
  248. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  249. package/dist/generated/themes/MonthPicker.css.js +1 -1
  250. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  251. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  252. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  253. package/dist/generated/themes/MultiComboBoxItem.css.js +1 -1
  254. package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -1
  255. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  256. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  257. package/dist/generated/themes/MultiInput.css.js +1 -1
  258. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  259. package/dist/generated/themes/NavigationMenu.css.js +1 -1
  260. package/dist/generated/themes/NavigationMenu.css.js.map +1 -1
  261. package/dist/generated/themes/NavigationMenuItem.css.js +1 -1
  262. package/dist/generated/themes/NavigationMenuItem.css.js.map +1 -1
  263. package/dist/generated/themes/OptionBase.css.js +1 -1
  264. package/dist/generated/themes/OptionBase.css.js.map +1 -1
  265. package/dist/generated/themes/Panel.css.js +1 -1
  266. package/dist/generated/themes/Panel.css.js.map +1 -1
  267. package/dist/generated/themes/Popover.css.js +1 -1
  268. package/dist/generated/themes/Popover.css.js.map +1 -1
  269. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  270. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  271. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  272. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  273. package/dist/generated/themes/RadioButton.css.js +1 -1
  274. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  275. package/dist/generated/themes/RangeSlider.css.js +1 -1
  276. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  277. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  278. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  279. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  280. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  281. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  282. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  283. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  284. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  285. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  286. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  287. package/dist/generated/themes/Select.css.js +1 -1
  288. package/dist/generated/themes/Select.css.js.map +1 -1
  289. package/dist/generated/themes/SliderBase.css.js +1 -1
  290. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  291. package/dist/generated/themes/SplitButton.css.js +1 -1
  292. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  293. package/dist/generated/themes/StepInput.css.js +1 -1
  294. package/dist/generated/themes/StepInput.css.js.map +1 -1
  295. package/dist/generated/themes/SuggestionItem.css.js +1 -1
  296. package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
  297. package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
  298. package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
  299. package/dist/generated/themes/Switch.css.js +1 -1
  300. package/dist/generated/themes/Switch.css.js.map +1 -1
  301. package/dist/generated/themes/TabContainer.css.js +1 -1
  302. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  303. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  304. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  305. package/dist/generated/themes/TabInStrip.css.js +1 -1
  306. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  307. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  308. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  309. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  310. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  311. package/dist/generated/themes/Table.css.js +1 -1
  312. package/dist/generated/themes/Table.css.js.map +1 -1
  313. package/dist/generated/themes/TableCellBase.css.js +1 -1
  314. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  315. package/dist/generated/themes/TableHeaderRow.css.js +1 -1
  316. package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
  317. package/dist/generated/themes/TableRow.css.js +1 -1
  318. package/dist/generated/themes/TableRow.css.js.map +1 -1
  319. package/dist/generated/themes/TableRowBase.css.js +1 -1
  320. package/dist/generated/themes/TableRowBase.css.js.map +1 -1
  321. package/dist/generated/themes/Tag.css.js +1 -1
  322. package/dist/generated/themes/Tag.css.js.map +1 -1
  323. package/dist/generated/themes/Text.css.js +1 -1
  324. package/dist/generated/themes/Text.css.js.map +1 -1
  325. package/dist/generated/themes/TextArea.css.js +1 -1
  326. package/dist/generated/themes/TextArea.css.js.map +1 -1
  327. package/dist/generated/themes/TimePicker.css.js +1 -1
  328. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  329. package/dist/generated/themes/Toast.css.js +1 -1
  330. package/dist/generated/themes/Toast.css.js.map +1 -1
  331. package/dist/generated/themes/ToggleButton.css.js +1 -1
  332. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  333. package/dist/generated/themes/Token.css.js +1 -1
  334. package/dist/generated/themes/Token.css.js.map +1 -1
  335. package/dist/generated/themes/Tokenizer.css.js +1 -1
  336. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  337. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  338. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  339. package/dist/generated/themes/Toolbar.css.js +1 -1
  340. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  341. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  342. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  343. package/dist/generated/themes/TreeItem.css.js +1 -1
  344. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  345. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  346. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  347. package/dist/generated/themes/YearPicker.css.js +1 -1
  348. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  349. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  350. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  351. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  352. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  353. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  354. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  355. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  356. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  357. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  358. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  359. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  360. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  361. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
  362. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
  363. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  364. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
  365. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  366. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  367. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +1 -1
  368. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
  369. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  370. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  371. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
  372. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
  373. package/dist/vscode.html-custom-data.json +11 -6
  374. package/dist/web-types.json +21 -11
  375. package/package.json +10 -10
  376. package/src/RadioButton.hbs +1 -1
  377. package/src/i18n/messagebundle_en.properties +2 -0
  378. package/src/i18n/messagebundle_en_US_sappsd.properties +2 -0
  379. package/src/i18n/messagebundle_en_US_saprigi.properties +2 -0
  380. package/src/i18n/messagebundle_en_US_saptrc.properties +2 -0
  381. package/src/themes/Dialog.css +1 -0
  382. package/src/themes/Form.css +1 -1
  383. package/src/themes/FormItem.css +31 -1
  384. package/src/themes/FormItemSpan.css +59 -0
  385. package/src/themes/TabContainer.css +1 -1
  386. package/src/themes/Tokenizer.css +17 -18
  387. package/src/themes/base/Form-parameters.css +1 -13
  388. package/src/themes/base/Tokenizer-parameters.css +2 -0
  389. package/dist/css/themes/FormLabelSpan.css +0 -1
  390. package/dist/generated/themes/FormLabelSpan.css.js +0 -9
  391. package/dist/generated/themes/FormLabelSpan.css.js.map +0 -1
  392. package/src/themes/FormLabelSpan.css +0 -267
  393. /package/dist/generated/themes/{FormLabelSpan.css.d.ts → FormItemSpan.css.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.js","sourceRoot":"","sources":["../src/Dialog.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport clamp from \"@ui5/webcomponents-base/dist/util/clamp.js\";\nimport getEffectiveScrollbarStyle from \"@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js\";\nimport {\n\tisUp, isDown, isLeft, isRight,\n\tisUpShift, isDownShift, isLeftShift, isRightShift,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport Popup from \"./Popup.js\";\nimport type { PopupBeforeCloseEventDetail as DialogBeforeCloseEventDetail } from \"./Popup.js\";\nimport Icon from \"./Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/resize-corner.js\";\nimport \"@ui5/webcomponents-icons/dist/error.js\";\nimport \"@ui5/webcomponents-icons/dist/alert.js\";\nimport \"@ui5/webcomponents-icons/dist/sys-enter-2.js\";\nimport \"@ui5/webcomponents-icons/dist/information.js\";\n\nimport {\n\tDIALOG_HEADER_ARIA_ROLE_DESCRIPTION,\n\tDIALOG_HEADER_ARIA_DESCRIBEDBY_RESIZABLE,\n\tDIALOG_HEADER_ARIA_DESCRIBEDBY_DRAGGABLE,\n\tDIALOG_HEADER_ARIA_DESCRIBEDBY_DRAGGABLE_RESIZABLE,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Template\nimport DialogTemplate from \"./generated/templates/DialogTemplate.lit.js\";\n// Styles\nimport PopupsCommonCss from \"./generated/themes/PopupsCommon.css.js\";\nimport dialogCSS from \"./generated/themes/Dialog.css.js\";\nimport PopupAccessibleRole from \"./types/PopupAccessibleRole.js\";\n\n/**\n * Defines the step size at which this component would change by when being dragged or resized with the keyboard.\n */\nconst STEP_SIZE = 16;\n\ntype ValueStateWithIcon = ValueState.Negative | ValueState.Critical | ValueState.Positive | ValueState.Information;\n/**\n * Defines the icons corresponding to the dialog's state.\n */\nconst ICON_PER_STATE: Record<ValueStateWithIcon, string> = {\n\t[ValueState.Negative]: \"error\",\n\t[ValueState.Critical]: \"alert\",\n\t[ValueState.Positive]: \"sys-enter-2\",\n\t[ValueState.Information]: \"information\",\n};\n\n/**\n * @class\n * ### Overview\n * The `ui5-dialog` component is used to temporarily display some information in a\n * size-limited window in front of the regular app screen.\n * It is used to prompt the user for an action or a confirmation.\n * The `ui5-dialog` interrupts the current app processing as it is the only focused UI element and\n * the main screen is dimmed/blocked.\n * The dialog combines concepts known from other technologies where the windows have\n * names such as dialog box, dialog window, pop-up, pop-up window, alert box, or message box.\n *\n * The `ui5-dialog` is modal, which means that a user action is required before it is possible to return to the parent window.\n * To open multiple dialogs, each dialog element should be separate in the markup. This will ensure the correct modal behavior. Avoid nesting dialogs within each other.\n * The content of the `ui5-dialog` is fully customizable.\n *\n * ### Structure\n * A `ui5-dialog` consists of a header, content, and a footer for action buttons.\n * The `ui5-dialog` is usually displayed at the center of the screen.\n * Its position can be changed by the user. To enable this, you need to set the property `draggable` accordingly.\n\n *\n * ### Responsive Behavior\n * The `stretch` property can be used to stretch the\n * `ui5-dialog` on full screen.\n *\n * **Note:** When a `ui5-bar` is used in the header or in the footer, you should remove the default dialog's paddings.\n *\n * For more information see the sample \"Bar in Header/Footer\".\n\n * ### Keyboard Handling\n *\n * #### Basic Navigation\n * When the `ui5-dialog` has the `draggable` property set to `true` and the header is focused, the user can move the dialog\n * with the following keyboard shortcuts:\n *\n * - [Up] or [Down] arrow keys - Move the dialog up/down.\n * - [Left] or [Right] arrow keys - Move the dialog left/right.\n *\n * #### Resizing\n * When the `ui5-dialog` has the `resizable` property set to `true` and the header is focused, the user can change the size of the dialog\n * with the following keyboard shortcuts:\n *\n * - [Shift] + [Up] or [Down] - Decrease/Increase the height of the dialog.\n * - [Shift] + [Left] or [Right] - Decrease/Increase the width of the dialog.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Dialog\";`\n *\n * @constructor\n * @extends Popup\n * @public\n * @csspart header - Used to style the header of the component\n * @csspart content - Used to style the content of the component\n * @csspart footer - Used to style the footer of the component\n */\n@customElement({\n\ttag: \"ui5-dialog\",\n\ttemplate: DialogTemplate,\n\tstyles: [\n\t\tPopup.styles,\n\t\tPopupsCommonCss,\n\t\tdialogCSS,\n\t\tgetEffectiveScrollbarStyle(),\n\t],\n\tdependencies: [\n\t\tIcon,\n\t\t...Popup.dependencies,\n\t],\n})\nclass Dialog extends Popup {\n\t/**\n\t * Defines the header text.\n\t *\n\t * **Note:** If `header` slot is provided, the `headerText` is ignored.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\theaderText?: string;\n\n\t/**\n\t * Determines whether the component should be stretched to fullscreen.\n\t *\n\t * **Note:** The component will be stretched to approximately\n\t * 90% of the viewport.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tstretch = false;\n\n\t/**\n\t * Determines whether the component is draggable.\n\t * If this property is set to true, the Dialog will be draggable by its header.\n\t *\n\t * **Note:** The component can be draggable only in desktop mode.\n\t *\n\t * **Note:** This property overrides the default HTML \"draggable\" attribute native behavior.\n\t * When \"draggable\" is set to true, the native browser \"draggable\"\n\t * behavior is prevented and only the Dialog custom logic (\"draggable by its header\") works.\n\t * @default false\n\t * @since 1.0.0-rc.9\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdraggable = false;\n\n\t/**\n\t * Configures the component to be resizable.\n\t * If this property is set to true, the Dialog will have a resize handle in its bottom right corner in LTR languages.\n\t * In RTL languages, the resize handle will be placed in the bottom left corner.\n\t *\n\t * **Note:** The component can be resizable only in desktop mode.\n\t *\n\t * **Note:** Upon resizing, externally defined height and width styling will be ignored.\n\t * @default false\n\t * @since 1.0.0-rc.10\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tresizable = false;\n\n\t/**\n\t * Defines the state of the `Dialog`.\n\t *\n\t * **Note:** If `\"Negative\"` and `\"Critical\"` states is set, it will change the\n\t * accessibility role to \"alertdialog\", if the accessibleRole property is set to `\"Dialog\"`.\n\t * @default \"None\"\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\tstate: `${ValueState}` = \"None\";\n\n\t_screenResizeHandler: () => void;\n\t_dragMouseMoveHandler: (e: MouseEvent) => void;\n\t_dragMouseUpHandler: (e: MouseEvent) => void;\n\t_resizeMouseMoveHandler: (e: MouseEvent) => void;\n\t_resizeMouseUpHandler: (e: MouseEvent) => void;\n\t_dragStartHandler: (e: DragEvent) => void;\n\t_y?: number;\n\t_x?: number;\n\t_isRTL?: boolean;\n\t_screenResizeHandlerAttached?: boolean;\n\t_initialX?: number;\n\t_initialY?: number;\n\t_initialWidth?: number;\n\t_initialHeight?: number;\n\t_initialTop?: number;\n\t_initialLeft?: number;\n\t_minWidth?: number;\n\t_cachedMinHeight?: number;\n\t_draggedOrResized = false;\n\n\t/**\n\t * Defines the header HTML Element.\n\t *\n\t * **Note:** When a `ui5-bar` is used in the header, you should remove the default dialog's paddings.\n\t *\n\t * **Note:** If `header` slot is provided, the labelling of the dialog is a responsibility of the application developer.\n\t * `accessibleName` should be used.\n\t * @public\n\t */\n\t@slot()\n\theader!: Array<HTMLElement>;\n\n\t/**\n\t * Defines the footer HTML Element.\n\t *\n\t * **Note:** When a `ui5-bar` is used in the footer, you should remove the default dialog's paddings.\n\t * @public\n\t */\n\t@slot()\n\tfooter!: Array<HTMLElement>;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._screenResizeHandler = this._screenResize.bind(this);\n\n\t\tthis._dragMouseMoveHandler = this._onDragMouseMove.bind(this);\n\t\tthis._dragMouseUpHandler = this._onDragMouseUp.bind(this);\n\n\t\tthis._resizeMouseMoveHandler = this._onResizeMouseMove.bind(this);\n\t\tthis._resizeMouseUpHandler = this._onResizeMouseUp.bind(this);\n\n\t\tthis._dragStartHandler = this._handleDragStart.bind(this);\n\t}\n\n\tstatic _isHeader(element: HTMLElement) {\n\t\treturn element.classList.contains(\"ui5-popup-header-root\") || element.getAttribute(\"slot\") === \"header\";\n\t}\n\n\tget isModal() {\n\t\treturn true;\n\t}\n\n\tget _ariaLabelledBy() {\n\t\tlet ariaLabelledById;\n\n\t\tif (this.headerText && !this._ariaLabel) {\n\t\t\tariaLabelledById = \"ui5-popup-header-text\";\n\t\t}\n\n\t\treturn ariaLabelledById;\n\t}\n\n\tget ariaRoleDescriptionHeaderText() {\n\t\treturn (this.resizable || this.draggable) ? Dialog.i18nBundle.getText(DIALOG_HEADER_ARIA_ROLE_DESCRIPTION) : undefined;\n\t}\n\n\tget effectiveAriaDescribedBy() {\n\t\treturn (this.resizable || this.draggable) ? `${this._id}-descr` : undefined;\n\t}\n\n\tget ariaDescribedByHeaderTextResizable() {\n\t\treturn Dialog.i18nBundle.getText(DIALOG_HEADER_ARIA_DESCRIBEDBY_RESIZABLE);\n\t}\n\n\tget ariaDescribedByHeaderTextDraggable() {\n\t\treturn Dialog.i18nBundle.getText(DIALOG_HEADER_ARIA_DESCRIBEDBY_DRAGGABLE);\n\t}\n\n\tget ariaDescribedByHeaderTextDraggableAndResizable() {\n\t\treturn Dialog.i18nBundle.getText(DIALOG_HEADER_ARIA_DESCRIBEDBY_DRAGGABLE_RESIZABLE);\n\t}\n\n\t/**\n\t * Determines if the header should be shown.\n\t */\n\tget _displayHeader() {\n\t\treturn this.header.length || this.headerText || this.draggable || this.resizable;\n\t}\n\n\tget _movable() {\n\t\treturn !this.stretch && this.onDesktop && (this.draggable || this.resizable);\n\t}\n\n\tget _headerTabIndex() {\n\t\treturn this._movable ? \"0\" : undefined;\n\t}\n\n\tget _showResizeHandle() {\n\t\treturn this.resizable && this.onDesktop;\n\t}\n\n\tget _minHeight() {\n\t\tlet minHeight = Number.parseInt(window.getComputedStyle(this.contentDOM).minHeight);\n\n\t\tconst header = this._root.querySelector<HTMLElement>(\".ui5-popup-header-root\");\n\t\tif (header) {\n\t\t\tminHeight += header.offsetHeight;\n\t\t}\n\n\t\tconst footer = this._root.querySelector<HTMLElement>(\".ui5-popup-footer-root\");\n\t\tif (footer) {\n\t\t\tminHeight += footer.offsetHeight;\n\t\t}\n\n\t\treturn minHeight;\n\t}\n\n\tget hasValueState() {\n\t\treturn this.state !== ValueState.None;\n\t}\n\n\tget _dialogStateIcon() {\n\t\treturn ICON_PER_STATE[this.state as ValueStateWithIcon];\n\t}\n\n\tget _role(): string | undefined {\n\t\tif (this.accessibleRole === PopupAccessibleRole.None) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (this.state === ValueState.Negative || this.state === ValueState.Critical) {\n\t\t\treturn PopupAccessibleRole.AlertDialog.toLowerCase();\n\t\t}\n\n\t\treturn this.accessibleRole.toLowerCase();\n\t}\n\n\t_show() {\n\t\tsuper._show();\n\t\tthis._center();\n\t}\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\n\t\tthis._isRTL = this.effectiveDir === \"rtl\";\n\t}\n\n\tonEnterDOM() {\n\t\tsuper.onEnterDOM();\n\t\tthis._attachScreenResizeHandler();\n\n\t\tthis.addEventListener(\"dragstart\", this._dragStartHandler);\n\t}\n\n\tonExitDOM() {\n\t\tsuper.onExitDOM();\n\t\tthis._detachScreenResizeHandler();\n\n\t\tthis.removeEventListener(\"dragstart\", this._dragStartHandler);\n\t}\n\n\t/**\n\t * @override\n\t */\n\t_resize() {\n\t\tsuper._resize();\n\n\t\tif (!this._draggedOrResized) {\n\t\t\tthis._center();\n\t\t}\n\t}\n\n\t_screenResize() {\n\t\tthis._center();\n\t}\n\n\t_attachScreenResizeHandler() {\n\t\tif (!this._screenResizeHandlerAttached) {\n\t\t\twindow.addEventListener(\"resize\", this._screenResizeHandler);\n\t\t\tthis._screenResizeHandlerAttached = true;\n\t\t}\n\t}\n\n\t_detachScreenResizeHandler() {\n\t\tif (this._screenResizeHandlerAttached) {\n\t\t\twindow.removeEventListener(\"resize\", this._screenResizeHandler);\n\t\t\tthis._screenResizeHandlerAttached = false; // prevent dialog from repositioning during resizing\n\t\t}\n\t}\n\n\t_center() {\n\t\tconst height = window.innerHeight - this.offsetHeight,\n\t\t\twidth = window.innerWidth - this.offsetWidth;\n\n\t\tObject.assign(this.style, {\n\t\t\ttop: `${Math.round(height / 2)}px`,\n\t\t\tleft: `${Math.round(width / 2)}px`,\n\t\t});\n\t}\n\n\t_revertSize = () => {\n\t\tObject.assign(this.style, {\n\t\t\ttop: \"\",\n\t\t\tleft: \"\",\n\t\t\twidth: \"\",\n\t\t\theight: \"\",\n\t\t});\n\t}\n\n\t/**\n\t * Event handlers\n\t */\n\t_onDragMouseDown(e: DragEvent) {\n\t\t// allow dragging only on the header\n\t\tif (!this._movable || !this.draggable || !Dialog._isHeader(e.target as HTMLElement)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst {\n\t\t\ttop,\n\t\t\tleft,\n\t\t} = this.getBoundingClientRect();\n\t\tconst {\n\t\t\twidth,\n\t\t\theight,\n\t\t} = window.getComputedStyle(this);\n\n\t\tObject.assign(this.style, {\n\t\t\ttop: `${top}px`,\n\t\t\tleft: `${left}px`,\n\t\t\twidth: `${Math.round(Number.parseFloat(width) * 100) / 100}px`,\n\t\t\theight: `${Math.round(Number.parseFloat(height) * 100) / 100}px`,\n\t\t});\n\n\t\tthis._x = e.clientX;\n\t\tthis._y = e.clientY;\n\n\t\tthis._draggedOrResized = true;\n\t\tthis._attachMouseDragHandlers();\n\t}\n\n\t_onDragMouseMove(e: MouseEvent) {\n\t\te.preventDefault();\n\n\t\tconst { clientX, clientY } = e;\n\t\tconst calcX = this._x! - clientX;\n\t\tconst calcY = this._y! - clientY;\n\t\tconst {\n\t\t\tleft,\n\t\t\ttop,\n\t\t} = this.getBoundingClientRect();\n\n\t\tObject.assign(this.style, {\n\t\t\tleft: `${Math.floor(left - calcX)}px`,\n\t\t\ttop: `${Math.floor(top - calcY)}px`,\n\t\t});\n\n\t\tthis._x = clientX;\n\t\tthis._y = clientY;\n\t}\n\n\t_onDragMouseUp() {\n\t\tdelete this._x;\n\t\tdelete this._y;\n\n\t\tthis._detachMouseDragHandlers();\n\t}\n\n\t_onDragOrResizeKeyDown(e: KeyboardEvent) {\n\t\tif (!this._movable || !Dialog._isHeader(e.target as HTMLElement)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.draggable && [isUp, isDown, isLeft, isRight].some(key => key(e))) {\n\t\t\tthis._dragWithEvent(e);\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.resizable && [isUpShift, isDownShift, isLeftShift, isRightShift].some(key => key(e))) {\n\t\t\tthis._resizeWithEvent(e);\n\t\t}\n\t}\n\n\t_dragWithEvent(e: KeyboardEvent) {\n\t\tconst {\n\t\t\ttop,\n\t\t\tleft,\n\t\t\twidth,\n\t\t\theight,\n\t\t} = this.getBoundingClientRect();\n\n\t\tlet newPos = 0;\n\t\tlet posDirection: \"top\" | \"left\" = \"top\";\n\n\t\tswitch (true) {\n\t\tcase isUp(e):\n\t\t\tnewPos = top - STEP_SIZE;\n\t\t\tposDirection = \"top\";\n\t\t\tbreak;\n\t\tcase isDown(e):\n\t\t\tnewPos = top + STEP_SIZE;\n\t\t\tposDirection = \"top\";\n\t\t\tbreak;\n\t\tcase isLeft(e):\n\t\t\tnewPos = left - STEP_SIZE;\n\t\t\tposDirection = \"left\";\n\t\t\tbreak;\n\t\tcase isRight(e):\n\t\t\tnewPos = left + STEP_SIZE;\n\t\t\tposDirection = \"left\";\n\t\t\tbreak;\n\t\t}\n\n\t\tnewPos = clamp(\n\t\t\tnewPos,\n\t\t\t0,\n\t\t\tposDirection === \"left\" ? window.innerWidth - width : window.innerHeight - height,\n\t\t);\n\n\t\tthis.style[posDirection] = `${newPos}px`;\n\t}\n\n\t_resizeWithEvent(e: KeyboardEvent) {\n\t\tthis._draggedOrResized = true;\n\t\tthis.addEventListener(\"ui5-before-close\", this._revertSize, { once: true });\n\n\t\tconst { top, left } = this.getBoundingClientRect(),\n\t\t\tstyle = window.getComputedStyle(this),\n\t\t\tminWidth = Number.parseFloat(style.minWidth),\n\t\t\tmaxWidth = window.innerWidth - left,\n\t\t\tmaxHeight = window.innerHeight - top;\n\n\t\tlet width = Number.parseFloat(style.width),\n\t\t\theight = Number.parseFloat(style.height);\n\n\t\tswitch (true) {\n\t\tcase isUpShift(e):\n\t\t\theight -= STEP_SIZE;\n\t\t\tbreak;\n\t\tcase isDownShift(e):\n\t\t\theight += STEP_SIZE;\n\t\t\tbreak;\n\t\tcase isLeftShift(e):\n\t\t\twidth -= STEP_SIZE;\n\t\t\tbreak;\n\t\tcase isRightShift(e):\n\t\t\twidth += STEP_SIZE;\n\t\t\tbreak;\n\t\t}\n\n\t\twidth = clamp(width, minWidth, maxWidth);\n\t\theight = clamp(height, this._minHeight, maxHeight);\n\n\t\tObject.assign(this.style, {\n\t\t\twidth: `${width}px`,\n\t\t\theight: `${height}px`,\n\t\t});\n\t}\n\n\t_attachMouseDragHandlers() {\n\t\twindow.addEventListener(\"mousemove\", this._dragMouseMoveHandler);\n\t\twindow.addEventListener(\"mouseup\", this._dragMouseUpHandler);\n\t}\n\n\t_detachMouseDragHandlers() {\n\t\twindow.removeEventListener(\"mousemove\", this._dragMouseMoveHandler);\n\t\twindow.removeEventListener(\"mouseup\", this._dragMouseUpHandler);\n\t}\n\n\t_onResizeMouseDown(e: MouseEvent) {\n\t\tif (!this._movable || !this.resizable) {\n\t\t\treturn;\n\t\t}\n\n\t\te.preventDefault();\n\n\t\tconst {\n\t\t\ttop,\n\t\t\tleft,\n\t\t} = this.getBoundingClientRect();\n\t\tconst {\n\t\t\twidth,\n\t\t\theight,\n\t\t\tminWidth,\n\t\t} = window.getComputedStyle(this);\n\n\t\tthis._initialX = e.clientX;\n\t\tthis._initialY = e.clientY;\n\t\tthis._initialWidth = Number.parseFloat(width);\n\t\tthis._initialHeight = Number.parseFloat(height);\n\t\tthis._initialTop = top;\n\t\tthis._initialLeft = left;\n\t\tthis._minWidth = Number.parseFloat(minWidth);\n\t\tthis._cachedMinHeight = this._minHeight;\n\n\t\tObject.assign(this.style, {\n\t\t\ttop: `${top}px`,\n\t\t\tleft: `${left}px`,\n\t\t});\n\n\t\tthis._draggedOrResized = true;\n\t\tthis._attachMouseResizeHandlers();\n\t}\n\n\t_onResizeMouseMove(e: MouseEvent) {\n\t\tconst { clientX, clientY } = e;\n\n\t\tlet newWidth,\n\t\t\tnewLeft;\n\n\t\tif (this._isRTL) {\n\t\t\tnewWidth = clamp(\n\t\t\t\tthis._initialWidth! - (clientX - this._initialX!),\n\t\t\t\tthis._minWidth!,\n\t\t\t\tthis._initialLeft! + this._initialWidth!,\n\t\t\t);\n\n\t\t\tnewLeft = clamp(\n\t\t\t\tthis._initialLeft! + (clientX - this._initialX!),\n\t\t\t\t0,\n\t\t\t\tthis._initialX! + this._initialWidth! - this._minWidth!,\n\t\t\t);\n\t\t} else {\n\t\t\tnewWidth = clamp(\n\t\t\t\tthis._initialWidth! + (clientX - this._initialX!),\n\t\t\t\tthis._minWidth!,\n\t\t\t\twindow.innerWidth - this._initialLeft!,\n\t\t\t);\n\t\t}\n\n\t\tconst newHeight = clamp(\n\t\t\tthis._initialHeight! + (clientY - this._initialY!),\n\t\t\tthis._cachedMinHeight!,\n\t\t\twindow.innerHeight - this._initialTop!,\n\t\t);\n\n\t\tObject.assign(this.style, {\n\t\t\theight: `${newHeight}px`,\n\t\t\twidth: `${newWidth}px`,\n\t\t\tleft: newLeft ? `${newLeft}px` : undefined,\n\t\t});\n\t}\n\n\t_onResizeMouseUp() {\n\t\tdelete this._initialX;\n\t\tdelete this._initialY;\n\t\tdelete this._initialWidth;\n\t\tdelete this._initialHeight;\n\t\tdelete this._initialTop;\n\t\tdelete this._initialLeft;\n\t\tdelete this._minWidth;\n\t\tdelete this._cachedMinHeight;\n\n\t\tthis._detachMouseResizeHandlers();\n\t}\n\n\t_handleDragStart(e: DragEvent) {\n\t\tif (this.draggable) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_attachMouseResizeHandlers() {\n\t\twindow.addEventListener(\"mousemove\", this._resizeMouseMoveHandler);\n\t\twindow.addEventListener(\"mouseup\", this._resizeMouseUpHandler);\n\t\tthis.addEventListener(\"ui5-before-close\", this._revertSize, { once: true });\n\t}\n\n\t_detachMouseResizeHandlers() {\n\t\twindow.removeEventListener(\"mousemove\", this._resizeMouseMoveHandler);\n\t\twindow.removeEventListener(\"mouseup\", this._resizeMouseUpHandler);\n\t}\n}\n\nDialog.define();\n\nexport default Dialog;\nexport type {\n\tDialogBeforeCloseEventDetail,\n};\n"]}
1
+ {"version":3,"file":"Dialog.js","sourceRoot":"","sources":["../src/Dialog.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport clamp from \"@ui5/webcomponents-base/dist/util/clamp.js\";\nimport getEffectiveScrollbarStyle from \"@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js\";\nimport {\n\tisUp, isDown, isLeft, isRight,\n\tisUpShift, isDownShift, isLeftShift, isRightShift,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport Popup from \"./Popup.js\";\nimport type { PopupBeforeCloseEventDetail as DialogBeforeCloseEventDetail } from \"./Popup.js\";\nimport Icon from \"./Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/resize-corner.js\";\nimport \"@ui5/webcomponents-icons/dist/error.js\";\nimport \"@ui5/webcomponents-icons/dist/alert.js\";\nimport \"@ui5/webcomponents-icons/dist/sys-enter-2.js\";\nimport \"@ui5/webcomponents-icons/dist/information.js\";\n\nimport {\n\tDIALOG_HEADER_ARIA_ROLE_DESCRIPTION,\n\tDIALOG_HEADER_ARIA_DESCRIBEDBY_RESIZABLE,\n\tDIALOG_HEADER_ARIA_DESCRIBEDBY_DRAGGABLE,\n\tDIALOG_HEADER_ARIA_DESCRIBEDBY_DRAGGABLE_RESIZABLE,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Template\nimport DialogTemplate from \"./generated/templates/DialogTemplate.lit.js\";\n// Styles\nimport PopupsCommonCss from \"./generated/themes/PopupsCommon.css.js\";\nimport dialogCSS from \"./generated/themes/Dialog.css.js\";\nimport PopupAccessibleRole from \"./types/PopupAccessibleRole.js\";\n\n/**\n * Defines the step size at which this component would change by when being dragged or resized with the keyboard.\n */\nconst STEP_SIZE = 16;\n\ntype ValueStateWithIcon = ValueState.Negative | ValueState.Critical | ValueState.Positive | ValueState.Information;\n/**\n * Defines the icons corresponding to the dialog's state.\n */\nconst ICON_PER_STATE: Record<ValueStateWithIcon, string> = {\n\t[ValueState.Negative]: \"error\",\n\t[ValueState.Critical]: \"alert\",\n\t[ValueState.Positive]: \"sys-enter-2\",\n\t[ValueState.Information]: \"information\",\n};\n\n/**\n * @class\n * ### Overview\n * The `ui5-dialog` component is used to temporarily display some information in a\n * size-limited window in front of the regular app screen.\n * It is used to prompt the user for an action or a confirmation.\n * The `ui5-dialog` interrupts the current app processing as it is the only focused UI element and\n * the main screen is dimmed/blocked.\n * The dialog combines concepts known from other technologies where the windows have\n * names such as dialog box, dialog window, pop-up, pop-up window, alert box, or message box.\n *\n * The `ui5-dialog` is modal, which means that a user action is required before it is possible to return to the parent window.\n * To open multiple dialogs, each dialog element should be separate in the markup. This will ensure the correct modal behavior. Avoid nesting dialogs within each other.\n * The content of the `ui5-dialog` is fully customizable.\n *\n * ### Structure\n * A `ui5-dialog` consists of a header, content, and a footer for action buttons.\n * The `ui5-dialog` is usually displayed at the center of the screen.\n * Its position can be changed by the user. To enable this, you need to set the property `draggable` accordingly.\n\n *\n * ### Responsive Behavior\n * The `stretch` property can be used to stretch the `ui5-dialog` to full screen. For better usability, it's recommended to stretch the dialog to full screen on phone devices.\n *\n * **Note:** When a `ui5-bar` is used in the header or in the footer, you should remove the default dialog's paddings.\n *\n * For more information see the sample \"Bar in Header/Footer\".\n\n * ### Keyboard Handling\n *\n * #### Basic Navigation\n * When the `ui5-dialog` has the `draggable` property set to `true` and the header is focused, the user can move the dialog\n * with the following keyboard shortcuts:\n *\n * - [Up] or [Down] arrow keys - Move the dialog up/down.\n * - [Left] or [Right] arrow keys - Move the dialog left/right.\n *\n * #### Resizing\n * When the `ui5-dialog` has the `resizable` property set to `true` and the header is focused, the user can change the size of the dialog\n * with the following keyboard shortcuts:\n *\n * - [Shift] + [Up] or [Down] - Decrease/Increase the height of the dialog.\n * - [Shift] + [Left] or [Right] - Decrease/Increase the width of the dialog.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Dialog\";`\n *\n * @constructor\n * @extends Popup\n * @public\n * @csspart header - Used to style the header of the component\n * @csspart content - Used to style the content of the component\n * @csspart footer - Used to style the footer of the component\n */\n@customElement({\n\ttag: \"ui5-dialog\",\n\ttemplate: DialogTemplate,\n\tstyles: [\n\t\tPopup.styles,\n\t\tPopupsCommonCss,\n\t\tdialogCSS,\n\t\tgetEffectiveScrollbarStyle(),\n\t],\n\tdependencies: [\n\t\tIcon,\n\t\t...Popup.dependencies,\n\t],\n})\nclass Dialog extends Popup {\n\t/**\n\t * Defines the header text.\n\t *\n\t * **Note:** If `header` slot is provided, the `headerText` is ignored.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\theaderText?: string;\n\n\t/**\n\t * Determines if the dialog will be stretched to full screen on mobile. On desktop,\n\t * the dialog will be stretched to approximately 90% of the viewport.\n\t *\n\t * **Note:** For better usability of the component it is recommended to set this property to \"true\" when the dialog is opened on phone.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tstretch = false;\n\n\t/**\n\t * Determines whether the component is draggable.\n\t * If this property is set to true, the Dialog will be draggable by its header.\n\t *\n\t * **Note:** The component can be draggable only in desktop mode.\n\t *\n\t * **Note:** This property overrides the default HTML \"draggable\" attribute native behavior.\n\t * When \"draggable\" is set to true, the native browser \"draggable\"\n\t * behavior is prevented and only the Dialog custom logic (\"draggable by its header\") works.\n\t * @default false\n\t * @since 1.0.0-rc.9\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdraggable = false;\n\n\t/**\n\t * Configures the component to be resizable.\n\t * If this property is set to true, the Dialog will have a resize handle in its bottom right corner in LTR languages.\n\t * In RTL languages, the resize handle will be placed in the bottom left corner.\n\t *\n\t * **Note:** The component can be resizable only in desktop mode.\n\t *\n\t * **Note:** Upon resizing, externally defined height and width styling will be ignored.\n\t * @default false\n\t * @since 1.0.0-rc.10\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tresizable = false;\n\n\t/**\n\t * Defines the state of the `Dialog`.\n\t *\n\t * **Note:** If `\"Negative\"` and `\"Critical\"` states is set, it will change the\n\t * accessibility role to \"alertdialog\", if the accessibleRole property is set to `\"Dialog\"`.\n\t * @default \"None\"\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\tstate: `${ValueState}` = \"None\";\n\n\t_screenResizeHandler: () => void;\n\t_dragMouseMoveHandler: (e: MouseEvent) => void;\n\t_dragMouseUpHandler: (e: MouseEvent) => void;\n\t_resizeMouseMoveHandler: (e: MouseEvent) => void;\n\t_resizeMouseUpHandler: (e: MouseEvent) => void;\n\t_dragStartHandler: (e: DragEvent) => void;\n\t_y?: number;\n\t_x?: number;\n\t_isRTL?: boolean;\n\t_screenResizeHandlerAttached?: boolean;\n\t_initialX?: number;\n\t_initialY?: number;\n\t_initialWidth?: number;\n\t_initialHeight?: number;\n\t_initialTop?: number;\n\t_initialLeft?: number;\n\t_minWidth?: number;\n\t_cachedMinHeight?: number;\n\t_draggedOrResized = false;\n\n\t/**\n\t * Defines the header HTML Element.\n\t *\n\t * **Note:** When a `ui5-bar` is used in the header, you should remove the default dialog's paddings.\n\t *\n\t * **Note:** If `header` slot is provided, the labelling of the dialog is a responsibility of the application developer.\n\t * `accessibleName` should be used.\n\t * @public\n\t */\n\t@slot()\n\theader!: Array<HTMLElement>;\n\n\t/**\n\t * Defines the footer HTML Element.\n\t *\n\t * **Note:** When a `ui5-bar` is used in the footer, you should remove the default dialog's paddings.\n\t * @public\n\t */\n\t@slot()\n\tfooter!: Array<HTMLElement>;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._screenResizeHandler = this._screenResize.bind(this);\n\n\t\tthis._dragMouseMoveHandler = this._onDragMouseMove.bind(this);\n\t\tthis._dragMouseUpHandler = this._onDragMouseUp.bind(this);\n\n\t\tthis._resizeMouseMoveHandler = this._onResizeMouseMove.bind(this);\n\t\tthis._resizeMouseUpHandler = this._onResizeMouseUp.bind(this);\n\n\t\tthis._dragStartHandler = this._handleDragStart.bind(this);\n\t}\n\n\tstatic _isHeader(element: HTMLElement) {\n\t\treturn element.classList.contains(\"ui5-popup-header-root\") || element.getAttribute(\"slot\") === \"header\";\n\t}\n\n\tget isModal() {\n\t\treturn true;\n\t}\n\n\tget _ariaLabelledBy() {\n\t\tlet ariaLabelledById;\n\n\t\tif (this.headerText && !this._ariaLabel) {\n\t\t\tariaLabelledById = \"ui5-popup-header-text\";\n\t\t}\n\n\t\treturn ariaLabelledById;\n\t}\n\n\tget ariaRoleDescriptionHeaderText() {\n\t\treturn (this.resizable || this.draggable) ? Dialog.i18nBundle.getText(DIALOG_HEADER_ARIA_ROLE_DESCRIPTION) : undefined;\n\t}\n\n\tget effectiveAriaDescribedBy() {\n\t\treturn (this.resizable || this.draggable) ? `${this._id}-descr` : undefined;\n\t}\n\n\tget ariaDescribedByHeaderTextResizable() {\n\t\treturn Dialog.i18nBundle.getText(DIALOG_HEADER_ARIA_DESCRIBEDBY_RESIZABLE);\n\t}\n\n\tget ariaDescribedByHeaderTextDraggable() {\n\t\treturn Dialog.i18nBundle.getText(DIALOG_HEADER_ARIA_DESCRIBEDBY_DRAGGABLE);\n\t}\n\n\tget ariaDescribedByHeaderTextDraggableAndResizable() {\n\t\treturn Dialog.i18nBundle.getText(DIALOG_HEADER_ARIA_DESCRIBEDBY_DRAGGABLE_RESIZABLE);\n\t}\n\n\t/**\n\t * Determines if the header should be shown.\n\t */\n\tget _displayHeader() {\n\t\treturn this.header.length || this.headerText || this.draggable || this.resizable;\n\t}\n\n\tget _movable() {\n\t\treturn !this.stretch && this.onDesktop && (this.draggable || this.resizable);\n\t}\n\n\tget _headerTabIndex() {\n\t\treturn this._movable ? \"0\" : undefined;\n\t}\n\n\tget _showResizeHandle() {\n\t\treturn this.resizable && this.onDesktop;\n\t}\n\n\tget _minHeight() {\n\t\tlet minHeight = Number.parseInt(window.getComputedStyle(this.contentDOM).minHeight);\n\n\t\tconst header = this._root.querySelector<HTMLElement>(\".ui5-popup-header-root\");\n\t\tif (header) {\n\t\t\tminHeight += header.offsetHeight;\n\t\t}\n\n\t\tconst footer = this._root.querySelector<HTMLElement>(\".ui5-popup-footer-root\");\n\t\tif (footer) {\n\t\t\tminHeight += footer.offsetHeight;\n\t\t}\n\n\t\treturn minHeight;\n\t}\n\n\tget hasValueState() {\n\t\treturn this.state !== ValueState.None;\n\t}\n\n\tget _dialogStateIcon() {\n\t\treturn ICON_PER_STATE[this.state as ValueStateWithIcon];\n\t}\n\n\tget _role(): string | undefined {\n\t\tif (this.accessibleRole === PopupAccessibleRole.None) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (this.state === ValueState.Negative || this.state === ValueState.Critical) {\n\t\t\treturn PopupAccessibleRole.AlertDialog.toLowerCase();\n\t\t}\n\n\t\treturn this.accessibleRole.toLowerCase();\n\t}\n\n\t_show() {\n\t\tsuper._show();\n\t\tthis._center();\n\t}\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\n\t\tthis._isRTL = this.effectiveDir === \"rtl\";\n\t}\n\n\tonEnterDOM() {\n\t\tsuper.onEnterDOM();\n\t\tthis._attachScreenResizeHandler();\n\n\t\tthis.addEventListener(\"dragstart\", this._dragStartHandler);\n\t}\n\n\tonExitDOM() {\n\t\tsuper.onExitDOM();\n\t\tthis._detachScreenResizeHandler();\n\n\t\tthis.removeEventListener(\"dragstart\", this._dragStartHandler);\n\t}\n\n\t/**\n\t * @override\n\t */\n\t_resize() {\n\t\tsuper._resize();\n\n\t\tif (!this._draggedOrResized) {\n\t\t\tthis._center();\n\t\t}\n\t}\n\n\t_screenResize() {\n\t\tthis._center();\n\t}\n\n\t_attachScreenResizeHandler() {\n\t\tif (!this._screenResizeHandlerAttached) {\n\t\t\twindow.addEventListener(\"resize\", this._screenResizeHandler);\n\t\t\tthis._screenResizeHandlerAttached = true;\n\t\t}\n\t}\n\n\t_detachScreenResizeHandler() {\n\t\tif (this._screenResizeHandlerAttached) {\n\t\t\twindow.removeEventListener(\"resize\", this._screenResizeHandler);\n\t\t\tthis._screenResizeHandlerAttached = false; // prevent dialog from repositioning during resizing\n\t\t}\n\t}\n\n\t_center() {\n\t\tconst height = window.innerHeight - this.offsetHeight,\n\t\t\twidth = window.innerWidth - this.offsetWidth;\n\n\t\tObject.assign(this.style, {\n\t\t\ttop: `${Math.round(height / 2)}px`,\n\t\t\tleft: `${Math.round(width / 2)}px`,\n\t\t});\n\t}\n\n\t_revertSize = () => {\n\t\tObject.assign(this.style, {\n\t\t\ttop: \"\",\n\t\t\tleft: \"\",\n\t\t\twidth: \"\",\n\t\t\theight: \"\",\n\t\t});\n\t}\n\n\t/**\n\t * Event handlers\n\t */\n\t_onDragMouseDown(e: DragEvent) {\n\t\t// allow dragging only on the header\n\t\tif (!this._movable || !this.draggable || !Dialog._isHeader(e.target as HTMLElement)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst {\n\t\t\ttop,\n\t\t\tleft,\n\t\t} = this.getBoundingClientRect();\n\t\tconst {\n\t\t\twidth,\n\t\t\theight,\n\t\t} = window.getComputedStyle(this);\n\n\t\tObject.assign(this.style, {\n\t\t\ttop: `${top}px`,\n\t\t\tleft: `${left}px`,\n\t\t\twidth: `${Math.round(Number.parseFloat(width) * 100) / 100}px`,\n\t\t\theight: `${Math.round(Number.parseFloat(height) * 100) / 100}px`,\n\t\t});\n\n\t\tthis._x = e.clientX;\n\t\tthis._y = e.clientY;\n\n\t\tthis._draggedOrResized = true;\n\t\tthis._attachMouseDragHandlers();\n\t}\n\n\t_onDragMouseMove(e: MouseEvent) {\n\t\te.preventDefault();\n\n\t\tconst { clientX, clientY } = e;\n\t\tconst calcX = this._x! - clientX;\n\t\tconst calcY = this._y! - clientY;\n\t\tconst {\n\t\t\tleft,\n\t\t\ttop,\n\t\t} = this.getBoundingClientRect();\n\n\t\tObject.assign(this.style, {\n\t\t\tleft: `${Math.floor(left - calcX)}px`,\n\t\t\ttop: `${Math.floor(top - calcY)}px`,\n\t\t});\n\n\t\tthis._x = clientX;\n\t\tthis._y = clientY;\n\t}\n\n\t_onDragMouseUp() {\n\t\tdelete this._x;\n\t\tdelete this._y;\n\n\t\tthis._detachMouseDragHandlers();\n\t}\n\n\t_onDragOrResizeKeyDown(e: KeyboardEvent) {\n\t\tif (!this._movable || !Dialog._isHeader(e.target as HTMLElement)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.draggable && [isUp, isDown, isLeft, isRight].some(key => key(e))) {\n\t\t\tthis._dragWithEvent(e);\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.resizable && [isUpShift, isDownShift, isLeftShift, isRightShift].some(key => key(e))) {\n\t\t\tthis._resizeWithEvent(e);\n\t\t}\n\t}\n\n\t_dragWithEvent(e: KeyboardEvent) {\n\t\tconst {\n\t\t\ttop,\n\t\t\tleft,\n\t\t\twidth,\n\t\t\theight,\n\t\t} = this.getBoundingClientRect();\n\n\t\tlet newPos = 0;\n\t\tlet posDirection: \"top\" | \"left\" = \"top\";\n\n\t\tswitch (true) {\n\t\tcase isUp(e):\n\t\t\tnewPos = top - STEP_SIZE;\n\t\t\tposDirection = \"top\";\n\t\t\tbreak;\n\t\tcase isDown(e):\n\t\t\tnewPos = top + STEP_SIZE;\n\t\t\tposDirection = \"top\";\n\t\t\tbreak;\n\t\tcase isLeft(e):\n\t\t\tnewPos = left - STEP_SIZE;\n\t\t\tposDirection = \"left\";\n\t\t\tbreak;\n\t\tcase isRight(e):\n\t\t\tnewPos = left + STEP_SIZE;\n\t\t\tposDirection = \"left\";\n\t\t\tbreak;\n\t\t}\n\n\t\tnewPos = clamp(\n\t\t\tnewPos,\n\t\t\t0,\n\t\t\tposDirection === \"left\" ? window.innerWidth - width : window.innerHeight - height,\n\t\t);\n\n\t\tthis.style[posDirection] = `${newPos}px`;\n\t}\n\n\t_resizeWithEvent(e: KeyboardEvent) {\n\t\tthis._draggedOrResized = true;\n\t\tthis.addEventListener(\"ui5-before-close\", this._revertSize, { once: true });\n\n\t\tconst { top, left } = this.getBoundingClientRect(),\n\t\t\tstyle = window.getComputedStyle(this),\n\t\t\tminWidth = Number.parseFloat(style.minWidth),\n\t\t\tmaxWidth = window.innerWidth - left,\n\t\t\tmaxHeight = window.innerHeight - top;\n\n\t\tlet width = Number.parseFloat(style.width),\n\t\t\theight = Number.parseFloat(style.height);\n\n\t\tswitch (true) {\n\t\tcase isUpShift(e):\n\t\t\theight -= STEP_SIZE;\n\t\t\tbreak;\n\t\tcase isDownShift(e):\n\t\t\theight += STEP_SIZE;\n\t\t\tbreak;\n\t\tcase isLeftShift(e):\n\t\t\twidth -= STEP_SIZE;\n\t\t\tbreak;\n\t\tcase isRightShift(e):\n\t\t\twidth += STEP_SIZE;\n\t\t\tbreak;\n\t\t}\n\n\t\twidth = clamp(width, minWidth, maxWidth);\n\t\theight = clamp(height, this._minHeight, maxHeight);\n\n\t\tObject.assign(this.style, {\n\t\t\twidth: `${width}px`,\n\t\t\theight: `${height}px`,\n\t\t});\n\t}\n\n\t_attachMouseDragHandlers() {\n\t\twindow.addEventListener(\"mousemove\", this._dragMouseMoveHandler);\n\t\twindow.addEventListener(\"mouseup\", this._dragMouseUpHandler);\n\t}\n\n\t_detachMouseDragHandlers() {\n\t\twindow.removeEventListener(\"mousemove\", this._dragMouseMoveHandler);\n\t\twindow.removeEventListener(\"mouseup\", this._dragMouseUpHandler);\n\t}\n\n\t_onResizeMouseDown(e: MouseEvent) {\n\t\tif (!this._movable || !this.resizable) {\n\t\t\treturn;\n\t\t}\n\n\t\te.preventDefault();\n\n\t\tconst {\n\t\t\ttop,\n\t\t\tleft,\n\t\t} = this.getBoundingClientRect();\n\t\tconst {\n\t\t\twidth,\n\t\t\theight,\n\t\t\tminWidth,\n\t\t} = window.getComputedStyle(this);\n\n\t\tthis._initialX = e.clientX;\n\t\tthis._initialY = e.clientY;\n\t\tthis._initialWidth = Number.parseFloat(width);\n\t\tthis._initialHeight = Number.parseFloat(height);\n\t\tthis._initialTop = top;\n\t\tthis._initialLeft = left;\n\t\tthis._minWidth = Number.parseFloat(minWidth);\n\t\tthis._cachedMinHeight = this._minHeight;\n\n\t\tObject.assign(this.style, {\n\t\t\ttop: `${top}px`,\n\t\t\tleft: `${left}px`,\n\t\t});\n\n\t\tthis._draggedOrResized = true;\n\t\tthis._attachMouseResizeHandlers();\n\t}\n\n\t_onResizeMouseMove(e: MouseEvent) {\n\t\tconst { clientX, clientY } = e;\n\n\t\tlet newWidth,\n\t\t\tnewLeft;\n\n\t\tif (this._isRTL) {\n\t\t\tnewWidth = clamp(\n\t\t\t\tthis._initialWidth! - (clientX - this._initialX!),\n\t\t\t\tthis._minWidth!,\n\t\t\t\tthis._initialLeft! + this._initialWidth!,\n\t\t\t);\n\n\t\t\tnewLeft = clamp(\n\t\t\t\tthis._initialLeft! + (clientX - this._initialX!),\n\t\t\t\t0,\n\t\t\t\tthis._initialX! + this._initialWidth! - this._minWidth!,\n\t\t\t);\n\t\t} else {\n\t\t\tnewWidth = clamp(\n\t\t\t\tthis._initialWidth! + (clientX - this._initialX!),\n\t\t\t\tthis._minWidth!,\n\t\t\t\twindow.innerWidth - this._initialLeft!,\n\t\t\t);\n\t\t}\n\n\t\tconst newHeight = clamp(\n\t\t\tthis._initialHeight! + (clientY - this._initialY!),\n\t\t\tthis._cachedMinHeight!,\n\t\t\twindow.innerHeight - this._initialTop!,\n\t\t);\n\n\t\tObject.assign(this.style, {\n\t\t\theight: `${newHeight}px`,\n\t\t\twidth: `${newWidth}px`,\n\t\t\tleft: newLeft ? `${newLeft}px` : undefined,\n\t\t});\n\t}\n\n\t_onResizeMouseUp() {\n\t\tdelete this._initialX;\n\t\tdelete this._initialY;\n\t\tdelete this._initialWidth;\n\t\tdelete this._initialHeight;\n\t\tdelete this._initialTop;\n\t\tdelete this._initialLeft;\n\t\tdelete this._minWidth;\n\t\tdelete this._cachedMinHeight;\n\n\t\tthis._detachMouseResizeHandlers();\n\t}\n\n\t_handleDragStart(e: DragEvent) {\n\t\tif (this.draggable) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_attachMouseResizeHandlers() {\n\t\twindow.addEventListener(\"mousemove\", this._resizeMouseMoveHandler);\n\t\twindow.addEventListener(\"mouseup\", this._resizeMouseUpHandler);\n\t\tthis.addEventListener(\"ui5-before-close\", this._revertSize, { once: true });\n\t}\n\n\t_detachMouseResizeHandlers() {\n\t\twindow.removeEventListener(\"mousemove\", this._resizeMouseMoveHandler);\n\t\twindow.removeEventListener(\"mouseup\", this._resizeMouseUpHandler);\n\t}\n}\n\nDialog.define();\n\nexport default Dialog;\nexport type {\n\tDialogBeforeCloseEventDetail,\n};\n"]}
package/dist/Form.d.ts CHANGED
@@ -7,7 +7,6 @@ import type FormItemSpacing from "./types/FormItemSpacing.js";
7
7
  * @since 2.0.0
8
8
  */
9
9
  interface IFormItem extends UI5Element {
10
- labelSpan: string;
11
10
  itemSpacing: `${FormItemSpacing}`;
12
11
  readonly isGroup: boolean;
13
12
  colsXl?: number;
@@ -101,6 +100,56 @@ type ItemsInfo = {
101
100
  *
102
101
  * **For example:** To always place the labels on top set: `labelSpan="S12 M12 L12 XL12"` property.
103
102
  *
103
+ * ### Items Empty Span
104
+ *
105
+ * By default, a form item spans 12 cells, fully divided between its label and field, with no empty space at the end:
106
+ * - **Label:** occupies 4 cells.
107
+ * - **Field:** occupies 8 cells.
108
+ *
109
+ * The `emptySpan` property provides additional layout flexibility by defining empty space at the form item’s end.
110
+ *
111
+ * **For example:** Setting "S0 M0 L3 XL3" (or just "L3 XL3") adjusts the layout as follows:
112
+ * - **Label:** remains 4 cells.
113
+ * - **Field:** is reduced to 5 cells.
114
+ * - **Empty space:** 3 cells are added at the end.
115
+ *
116
+ * Greater values increase the empty space at the end of the form item, reducing the space available for the label and its field.
117
+ * However, setting `emptySpan` to 1 cell is recommended and typically sufficient to achieve a balanced layout.
118
+ *
119
+ * ### Navigation flow
120
+ *
121
+ * The Form component supports two layout options for keyboard navigation:
122
+ *
123
+ * #### Simple form
124
+ *
125
+ * In this "simple form" layout, each `ui5-form-item` acts as a standalone group
126
+ * with one item, so focus moves horizontally across the grid from one `ui5-form-item` to the next.
127
+ * This layout is ideal for simpler forms and supports custom arrangements, e.g.,
128
+ *
129
+ * ```
130
+ * | 1 | 2 |
131
+ * | 3 |
132
+ * | 4 | 5 |
133
+ * ```
134
+ *
135
+ * #### Complex form
136
+ *
137
+ * In this layout, items are grouped into `ui5-form-group` elements, allowing more complex configurations:
138
+ *
139
+ * - **Single-Column Group**: Focus moves vertically down from one item to the next.
140
+ * ```
141
+ * | 1 |
142
+ * | 2 |
143
+ * | 3 |
144
+ * ```
145
+ *
146
+ * - **Multi-Column Group**: Focus moves horizontally within each row, advancing to the next row after completing the current one.
147
+ * ```
148
+ * | 1 | 4 |
149
+ * | 2 | 5 |
150
+ * | 3 | 6 |
151
+ * ```
152
+ *
104
153
  * ### Keyboard Handling
105
154
  *
106
155
  * - [Tab] - Moves the focus to the next interactive element within the Form/FormGroup (if available) or to the next element in the tab chain outside the Form
@@ -138,7 +187,7 @@ declare class Form extends UI5Element {
138
187
  */
139
188
  layout: string;
140
189
  /**
141
- * Defines the width proportion of the labels and fields of a FormItem by breakpoint.
190
+ * Defines the width proportion of the labels and fields of a form item by breakpoint.
142
191
  *
143
192
  * By default, the labels take 4/12 (or 1/3) of the form item in M,L and XL sizes,
144
193
  * and 12/12 in S size, e.g in S the label is on top of its associated field.
@@ -146,10 +195,26 @@ declare class Form extends UI5Element {
146
195
  * The supported values are between 1 and 12. Greater the number, more space the label will use.
147
196
  *
148
197
  * **Note:** If "12" is set, the label will be displayed on top of its assosiated field.
198
+ *
149
199
  * @default "S12 M4 L4 XL4"
150
200
  * @public
151
201
  */
152
202
  labelSpan: string;
203
+ /**
204
+ * Defines the number of cells that are empty at the end of each form item, configurable by breakpoint.
205
+ *
206
+ * By default, a form item spans 12 cells, fully divided between its label (4 cells) and field (8 cells), with no empty space at the end.
207
+ * The `emptySpan` provides additional layout flexibility by defining empty space at the form item’s end.
208
+ *
209
+ * **Note:**
210
+ * - The maximum allowable empty space is 10 cells. At least 1 cell each must remain for the label and the field.
211
+ * - When `emptySpan` is specified (greater than 0), ensure that the combined value of `emptySpan` and `labelSpan` does not exceed 11. This guarantees a minimum of 1 cell for the field.
212
+ *
213
+ * @default "S0 M0 L0 XL0"
214
+ * @since 2.5.0
215
+ * @public
216
+ */
217
+ emptySpan: string;
153
218
  /**
154
219
  * Defines the header text of the component.
155
220
  *
@@ -190,16 +255,22 @@ declare class Form extends UI5Element {
190
255
  */
191
256
  columnsS: number;
192
257
  labelSpanS: number;
258
+ emptySpanS: number;
193
259
  columnsM: number;
194
260
  labelSpanM: number;
261
+ emptySpanM: number;
195
262
  columnsL: number;
196
263
  labelSpanL: number;
264
+ emptySpanL: number;
197
265
  columnsXl: number;
198
266
  labelSpanXl: number;
267
+ emptySpanXl: number;
199
268
  onBeforeRendering(): void;
200
269
  onAfterRendering(): void;
201
270
  setColumnLayout(): void;
202
- setLabelSpan(): void;
271
+ parseFormItemSpan(): void;
272
+ setFormItemLayout(): void;
273
+ isValidFormItemLayout(labelSpan: number, emptySpan: number): boolean;
203
274
  setFastNavGroup(): void;
204
275
  setGroupsColSpan(): void;
205
276
  getGroupsColSpan(cols: number, groups: number, index: number, group: IFormItem): number;
package/dist/Form.js CHANGED
@@ -7,6 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
8
8
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
9
9
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
10
+ import { getScopedVarName } from "@ui5/webcomponents-base/dist/CustomElementsScope.js";
10
11
  import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
11
12
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
12
13
  // Template
@@ -21,6 +22,10 @@ const StepColumn = {
21
22
  "L": 3,
22
23
  "XL": 6,
23
24
  };
25
+ const breakpoints = ["S", "M", "L", "Xl"];
26
+ const MAX_FORM_ITEM_CELLS = 12;
27
+ const DEFAULT_FORM_ITEM_LAYOUT = "4fr 8fr 0fr";
28
+ const DEFAULT_FORM_ITEM_LAYOUT_S = "1fr";
24
29
  /**
25
30
  * @class
26
31
  *
@@ -96,6 +101,56 @@ const StepColumn = {
96
101
  *
97
102
  * **For example:** To always place the labels on top set: `labelSpan="S12 M12 L12 XL12"` property.
98
103
  *
104
+ * ### Items Empty Span
105
+ *
106
+ * By default, a form item spans 12 cells, fully divided between its label and field, with no empty space at the end:
107
+ * - **Label:** occupies 4 cells.
108
+ * - **Field:** occupies 8 cells.
109
+ *
110
+ * The `emptySpan` property provides additional layout flexibility by defining empty space at the form item’s end.
111
+ *
112
+ * **For example:** Setting "S0 M0 L3 XL3" (or just "L3 XL3") adjusts the layout as follows:
113
+ * - **Label:** remains 4 cells.
114
+ * - **Field:** is reduced to 5 cells.
115
+ * - **Empty space:** 3 cells are added at the end.
116
+ *
117
+ * Greater values increase the empty space at the end of the form item, reducing the space available for the label and its field.
118
+ * However, setting `emptySpan` to 1 cell is recommended and typically sufficient to achieve a balanced layout.
119
+ *
120
+ * ### Navigation flow
121
+ *
122
+ * The Form component supports two layout options for keyboard navigation:
123
+ *
124
+ * #### Simple form
125
+ *
126
+ * In this "simple form" layout, each `ui5-form-item` acts as a standalone group
127
+ * with one item, so focus moves horizontally across the grid from one `ui5-form-item` to the next.
128
+ * This layout is ideal for simpler forms and supports custom arrangements, e.g.,
129
+ *
130
+ * ```
131
+ * | 1 | 2 |
132
+ * | 3 |
133
+ * | 4 | 5 |
134
+ * ```
135
+ *
136
+ * #### Complex form
137
+ *
138
+ * In this layout, items are grouped into `ui5-form-group` elements, allowing more complex configurations:
139
+ *
140
+ * - **Single-Column Group**: Focus moves vertically down from one item to the next.
141
+ * ```
142
+ * | 1 |
143
+ * | 2 |
144
+ * | 3 |
145
+ * ```
146
+ *
147
+ * - **Multi-Column Group**: Focus moves horizontally within each row, advancing to the next row after completing the current one.
148
+ * ```
149
+ * | 1 | 4 |
150
+ * | 2 | 5 |
151
+ * | 3 | 6 |
152
+ * ```
153
+ *
99
154
  * ### Keyboard Handling
100
155
  *
101
156
  * - [Tab] - Moves the focus to the next interactive element within the Form/FormGroup (if available) or to the next element in the tab chain outside the Form
@@ -135,7 +190,7 @@ let Form = class Form extends UI5Element {
135
190
  */
136
191
  this.layout = "S1 M1 L2 XL3";
137
192
  /**
138
- * Defines the width proportion of the labels and fields of a FormItem by breakpoint.
193
+ * Defines the width proportion of the labels and fields of a form item by breakpoint.
139
194
  *
140
195
  * By default, the labels take 4/12 (or 1/3) of the form item in M,L and XL sizes,
141
196
  * and 12/12 in S size, e.g in S the label is on top of its associated field.
@@ -143,10 +198,26 @@ let Form = class Form extends UI5Element {
143
198
  * The supported values are between 1 and 12. Greater the number, more space the label will use.
144
199
  *
145
200
  * **Note:** If "12" is set, the label will be displayed on top of its assosiated field.
201
+ *
146
202
  * @default "S12 M4 L4 XL4"
147
203
  * @public
148
204
  */
149
205
  this.labelSpan = "S12 M4 L4 XL4";
206
+ /**
207
+ * Defines the number of cells that are empty at the end of each form item, configurable by breakpoint.
208
+ *
209
+ * By default, a form item spans 12 cells, fully divided between its label (4 cells) and field (8 cells), with no empty space at the end.
210
+ * The `emptySpan` provides additional layout flexibility by defining empty space at the form item’s end.
211
+ *
212
+ * **Note:**
213
+ * - The maximum allowable empty space is 10 cells. At least 1 cell each must remain for the label and the field.
214
+ * - When `emptySpan` is specified (greater than 0), ensure that the combined value of `emptySpan` and `labelSpan` does not exceed 11. This guarantees a minimum of 1 cell for the field.
215
+ *
216
+ * @default "S0 M0 L0 XL0"
217
+ * @since 2.5.0
218
+ * @public
219
+ */
220
+ this.emptySpan = "S0 M0 L0 XL0";
150
221
  /**
151
222
  * Defines the vertical spacing between form items.
152
223
  *
@@ -163,18 +234,22 @@ let Form = class Form extends UI5Element {
163
234
  */
164
235
  this.columnsS = 1;
165
236
  this.labelSpanS = 12;
237
+ this.emptySpanS = 0;
166
238
  this.columnsM = 1;
167
239
  this.labelSpanM = 4;
240
+ this.emptySpanM = 0;
168
241
  this.columnsL = 2;
169
242
  this.labelSpanL = 4;
243
+ this.emptySpanL = 0;
170
244
  this.columnsXl = 3;
171
245
  this.labelSpanXl = 4;
246
+ this.emptySpanXl = 0;
172
247
  }
173
248
  onBeforeRendering() {
174
249
  // Parse the layout and set it to the FormGroups/FormItems.
175
250
  this.setColumnLayout();
176
- // Parse the labelSpan and set it to the FormGroups/FormItems.
177
- this.setLabelSpan();
251
+ // Parse the labelSpan and emptySpan and set it to the FormGroups/FormItems.
252
+ this.setFormItemLayout();
178
253
  // Define how many columns a group should take.
179
254
  this.setGroupsColSpan();
180
255
  }
@@ -200,7 +275,7 @@ let Form = class Form extends UI5Element {
200
275
  }
201
276
  });
202
277
  }
203
- setLabelSpan() {
278
+ parseFormItemSpan() {
204
279
  this.labelSpan.split(" ").forEach((breakpoint) => {
205
280
  if (breakpoint.startsWith("S")) {
206
281
  this.labelSpanS = parseInt(breakpoint.slice(1));
@@ -215,11 +290,59 @@ let Form = class Form extends UI5Element {
215
290
  this.labelSpanXl = parseInt(breakpoint.slice(2));
216
291
  }
217
292
  });
218
- this.items.forEach((item) => {
219
- item.labelSpan = this.labelSpan;
220
- item.itemSpacing = this.itemSpacing;
293
+ this.emptySpan.split(" ").forEach((breakpoint) => {
294
+ if (breakpoint.startsWith("S")) {
295
+ this.emptySpanS = parseInt(breakpoint.slice(1));
296
+ }
297
+ else if (breakpoint.startsWith("M")) {
298
+ this.emptySpanM = parseInt(breakpoint.slice(1));
299
+ }
300
+ else if (breakpoint.startsWith("L")) {
301
+ this.emptySpanL = parseInt(breakpoint.slice(1));
302
+ }
303
+ else if (breakpoint.startsWith("XL")) {
304
+ this.emptySpanXl = parseInt(breakpoint.slice(2));
305
+ }
306
+ });
307
+ }
308
+ setFormItemLayout() {
309
+ this.parseFormItemSpan();
310
+ [
311
+ {
312
+ breakpoint: "S",
313
+ labelSpan: this.labelSpanS,
314
+ emptySpan: this.emptySpanS,
315
+ },
316
+ {
317
+ breakpoint: "M",
318
+ labelSpan: this.labelSpanM,
319
+ emptySpan: this.emptySpanM,
320
+ },
321
+ {
322
+ breakpoint: "L",
323
+ labelSpan: this.labelSpanL,
324
+ emptySpan: this.emptySpanL,
325
+ },
326
+ {
327
+ breakpoint: "XL",
328
+ labelSpan: this.labelSpanXl,
329
+ emptySpan: this.emptySpanXl,
330
+ },
331
+ ].forEach(layout => {
332
+ if (this.isValidFormItemLayout(layout.labelSpan, layout.emptySpan)) {
333
+ const formItemLayout = layout.labelSpan === MAX_FORM_ITEM_CELLS ? `1fr` : `${layout.labelSpan}fr ${MAX_FORM_ITEM_CELLS - (layout.labelSpan + layout.emptySpan)}fr ${layout.emptySpan}fr`;
334
+ this.style.setProperty(getScopedVarName(`--ui5-form-item-layout-${layout.breakpoint}`), formItemLayout);
335
+ }
336
+ else {
337
+ // eslint-disable-next-line
338
+ console.warn(`Form :: invalid usage of emptySpan and/or labelSpan in ${layout.breakpoint} size. The labelSpan must be <=12 and when emptySpace is used - their combined values must not exceed 11.`);
339
+ this.style.setProperty(getScopedVarName(`--ui5-form-item-layout-${layout.breakpoint}`), layout.breakpoint === "S" ? DEFAULT_FORM_ITEM_LAYOUT_S : DEFAULT_FORM_ITEM_LAYOUT);
340
+ }
221
341
  });
222
342
  }
343
+ isValidFormItemLayout(labelSpan, emptySpan) {
344
+ return emptySpan === 0 ? labelSpan <= MAX_FORM_ITEM_CELLS : labelSpan + emptySpan <= MAX_FORM_ITEM_CELLS - 1;
345
+ }
223
346
  setFastNavGroup() {
224
347
  if (this.hasGroupItems) {
225
348
  this.removeAttribute("data-sap-ui-fastnavgroup");
@@ -285,6 +408,24 @@ let Form = class Form extends UI5Element {
285
408
  }
286
409
  get groupItemsInfo() {
287
410
  return this.items.map((groupItem) => {
411
+ const items = this.getItemsInfo(Array.from(groupItem.children));
412
+ breakpoints.forEach(breakpoint => {
413
+ const cols = ((groupItem[`cols${breakpoint}`]) || 1);
414
+ const rows = Math.ceil(items.length / cols);
415
+ const total = cols * rows;
416
+ const lastRowColumns = (cols - (total - items.length) - 1); // all other indecies start from 0
417
+ let currentItem = 0;
418
+ for (let i = 0; i < total; i++) {
419
+ const column = Math.floor(i / rows);
420
+ const row = i % rows;
421
+ if (row === rows - 1 && column > lastRowColumns) {
422
+ // eslint-disable-next-line no-continue
423
+ continue;
424
+ }
425
+ items[currentItem].item.style.setProperty(getScopedVarName(`--ui5-form-item-order-${breakpoint}`), `${column + row * cols}`);
426
+ currentItem++;
427
+ }
428
+ });
288
429
  return {
289
430
  groupItem,
290
431
  accessibleNameRef: groupItem.headerText ? `${groupItem._id}-group-header-text` : undefined,
@@ -377,6 +518,9 @@ __decorate([
377
518
  __decorate([
378
519
  property()
379
520
  ], Form.prototype, "labelSpan", void 0);
521
+ __decorate([
522
+ property()
523
+ ], Form.prototype, "emptySpan", void 0);
380
524
  __decorate([
381
525
  property()
382
526
  ], Form.prototype, "headerText", void 0);
@@ -400,24 +544,36 @@ __decorate([
400
544
  __decorate([
401
545
  property({ type: Number })
402
546
  ], Form.prototype, "labelSpanS", void 0);
547
+ __decorate([
548
+ property({ type: Number })
549
+ ], Form.prototype, "emptySpanS", void 0);
403
550
  __decorate([
404
551
  property({ type: Number })
405
552
  ], Form.prototype, "columnsM", void 0);
406
553
  __decorate([
407
554
  property({ type: Number })
408
555
  ], Form.prototype, "labelSpanM", void 0);
556
+ __decorate([
557
+ property({ type: Number })
558
+ ], Form.prototype, "emptySpanM", void 0);
409
559
  __decorate([
410
560
  property({ type: Number })
411
561
  ], Form.prototype, "columnsL", void 0);
412
562
  __decorate([
413
563
  property({ type: Number })
414
564
  ], Form.prototype, "labelSpanL", void 0);
565
+ __decorate([
566
+ property({ type: Number })
567
+ ], Form.prototype, "emptySpanL", void 0);
415
568
  __decorate([
416
569
  property({ type: Number })
417
570
  ], Form.prototype, "columnsXl", void 0);
418
571
  __decorate([
419
572
  property({ type: Number })
420
573
  ], Form.prototype, "labelSpanXl", void 0);
574
+ __decorate([
575
+ property({ type: Number })
576
+ ], Form.prototype, "emptySpanXl", void 0);
421
577
  Form = __decorate([
422
578
  customElement({
423
579
  tag: "ui5-form",